Tips

Tips

modoでウェイトマップをパーティクルサイズマップにリマップ

modo 15.0でRemap Weightのターゲットに「パーティクル サイズマップ」と「パーティクル ディゾルブマップ」が追加されました。パーティクル サイズマップを使ってReplicatorで複製したアイテムをアニメーションする方法について書いてみます。

 

 

パーティクル サイズブマップを使用したアニメーション

サンプルファイル

スケマティックはこんな感じです。

 

Set Weightを使ってウェイトマップを作成し、Grow Weightのステップを使用してウェイトマップをアニメーションしています。
modo 15.0で追加されたSmooth Weightでウェイトを滑らかにした後、Remap Weightでウェイトをパーティクルサイズマップに変換してます。

Spikeを使用しているのはポリゴンの中心にアイテムを配置するためです。Replicatorのソースモードには「ポリゴンを使用」という設定がありポリゴンの中心にアニテムを複製することができるのですが、残念ながらパーティクルサイズマップの読み取りに対応していません。

このためSpikeを使用してポリゴンの中心に頂点を作成して、Remap WeightにSelect by Previous Operationを使ってSpikeで作った頂点にだけパーティクルサイズを設定しています。ちょっと回りくどいですね。

 

 

Surface Particle Generatorにはウェイトマップをパーティクルサイズマップとして使用する機能があります。ランダムにアイテムを複製したい場合は、Surface Particle Generatorを使用した方がノードが単純です。

サンプルファイル

 

modo 14から15にかけて頂点マップ系のノードが増えて便利になってます。この調子でマップ制御系のノードを充実して欲しいですね。

Tips

Affinity Designer 移行メモ

デザイン作業するときIllustrator CS6からAffinity Designerに切り替え用と思ったので、移行するときに調べた機能をまとめました。

Illustratorは歴史があってそれなりに便利なのですが、動作が重いのとAdobe XDに比べると便利機能が足りなくなっていて、スライス書き出しできるAffinity Designerに切り替えようと思いました。

Mac環境だとSketchが鉄板のようですが、Windows環境だと選択肢が少ないのが残念ですね。

ツール

ツールに関するメモです。

ノードツール

なげげなわ選択

ポイントを選択する場合にAlt+ドラッグでなげなわ選択になる。

 

ハンドル制御
  • 直線をドラッグするとカーブになる
  • 鋭角なポイントをカーブにしたい場合は「スムーズに変換」ボタンを押す
  • ポイントAlt+ダブルクリックで「シャープに変換」
  • ベジェハンドルSift+ドラッグで45°スナップ

 

コーナーツール

非破壊的にRを追加したり面取りできる。コーナーの形状を指定可能。

ペンツール

カーブ終了はダブルクリック、またはESCキー。スマートモードを切り替えるとAfterEffectsのオートベジェのような動作に変更することができる。

 

ラバーバンド(輪ゴム)モードをONにすると、パスをプレビューすることができる。

 

ブラシツール

スタビライザを使用すると手ぶれ補正できる。

  • ロープモード : ZBrushのレイジーマウスのような手ぶれ補正。
  • ウィンドウモード : ロープに比べて弾性がある。角が丸まりやすい。

 

輪郭ツール

シェイプに厚みを設定できる。パスと塗りで効果が違う。

 

非破壊合体を使用するとメタボールのような表現が可能になる。

 

スライスツール

複数の解像度を一度に出力することができる。複数フォーマットも出力可能。アイコンファイル作成に便利。

 

 

編集

編集操作に関するメモです。

シンボル

XDのようにオブジェクトをインスタンス化できる。

 

アピアランス

境界線を追加、または複製して多重に線を描くことができる。

 

レスポンシブレイアウト変更

スケールに応じてレスポンシブにオブジェクトのレイアウトを変更したい場合は「制約」パネルを使用する。

スケーリング矢印

矢印はオブジェクトのスケール方向の制限。

最小フィット/最大フィット

現在より大きくなる場合、または小さくなる場合にスケールする。

アンカーライン

アンカーラインはオブジェクトを寄せる方向の指定。

「制約」パネルは複数選択で編集すると、全てのオブジェクトの設定が置き換わってしまうので、部分的な設定は個別に指定する必要がある。

 

ブール演算と非破壊的合成

Illustratorのパスファインダーのようにパスを合体する場合は、オブジェクトを選択して合体ボタンを押す。

Adobe Xdのように非破壊で合体したい場合はAlt+合体ボタンを押す。レイヤーで合成方法を後から変更することができる。

描画モードを「消去」に設定すると似たような効果を得られるが、「消去」を使用するとEPSやPDF出力時にライスタライズされるので使わない方がよい。

 

プリミティブを編集可能なパスに変換

図形プリミティブを編集可能なパスにする場合は、コンテキストツールバーの「カーブに変換」を押す。

 

レイヤー クリッピング

レイヤーのドロップ位置でクリッピングの動作が変わる。

  • レイヤークリッピング : レイヤー名前にドラッグアンドドロップ。ペイントソフトでいうところの「下のレイヤーでクリップ」のような動作
  • ベクトルマスク:レイヤーのサムネイルにドラッグアンドドロップ。XDの「シェイプでマスク」の動作。

 

反復複製

複製の位置、回転、スケールを繰り返し複製する場合はAlt+ ラッグ 後に、Ctrl+Jを押す。リピートグリッドの代わりに使う感じ?

位置を移動して反復複製。

 

位置、回転、スケールを変更して反復複製。

 

色の一括変更

ファイル内の色をまとめて変更したい場合は、選択メニューの「塗り潰しカラー」「輪郭線カラー」を実行して色を変更する。
XDにはカラーアセットというファイル内の色をまとめて管理編集できる機能があるのですが、残念ながらAffinity Designerには色の管理機能がありません。選択して色変更という2ステップの工程が必要になります。

選択メニュー / 同一を選択 / 塗り潰しカラー 、輪郭線カラー

 

また、白色と黒色はカラーパレットのHSLを記憶しているため、RGB値が同じ白(255)や黒(0)でも選択対象にならない場合があるので注意が必要です。

 

パスのアウトライン

Illustratorの「パスのアウトライン」のように線をアウトライン化したい場合は、「輪郭線を展開」を実行する。

レイヤーメニュー / 輪郭線を展開

 

アウトラインをスケール

Illustratorの「線と効果も拡大・縮小」のように線をスケールしたい場合は、境界線パネルの「オブジェクトとともにスケーリング」をONにする。

 

重ね順ボタン

レイヤーの重ね順変更。コンテキストツールバーの重ね順ボタンを使用すると連続して変更しやすい。

 

等間隔に分布

Illustratorの等間隔に分布するには「自動等間隔配置」を使用する。

 

色のスポイト

カラーパネルでスポイトアイコンをドラッグ。

 

表示

表示に関するメモです。

キャンバス回転をリセット

Illustratorのズームの癖でAlt + マウスホイール操作してしまうと、キャンバスが回転してしまう。リセットする場合はCtrl+Alt +Shift+R 押す。

 

Alt+マウスホイールは環境設定の「Alt +スクロールホイールによるキャンバス回転を有効化」をOFFにすると無効にできる。

編集メニュー / 環境設定 / ツール / Alt +スクロールホイールによるキャンバス回転を有効化

 

環境設定

環境設定に関するメモです。

 

選択ツール

Illustrator同様に矩形選択で少しでも範囲に含まれるオブジェクトを選択したい場合は、「選択マーキーと交差するオブジェクトを選択する」をONにする。

編集メニュー / 環境設定 / ツール / 選択マーキーと交差するオブジェクトを選択する

 

ズームにマウスホイールを使用

キャンバスのズームをマウスホイールで行いたい場合は「ズームにマウスホイールを使用」をONにする。

編集メニュー / 環境設定 / ツール / ズームにマウスホイールを使用

 

グリッドの単位をピクセルに変更

グリッドの単位をピクセルに変更したい場合は、「ドキュメント設定...」でドキュメント単位を「ピクセル」に変更する。

 

使用した感想

バージョン 1.9.2の時点でいい部分と不満に感じる部分です。

ポジティブ

  • 価格が手頃
  • 以下の機能が便利
    • シンボル
    • 非破壊合体
    • 制約 (レスポンシブ)
    • スライスツール
    • コーナーツール
    • シェイプツール (プリミティブの図形)
    • ショートカット設定の制限が少ないのが便利

 

ネガティブ

  • ヘルプ、チュートリアル、UIラベルでそれぞれ機能名が異なる場合がある(許容範囲)
  • Adobe製品と変形操作のモディファイヤキーが微妙に異なる(少し混乱する)
  • ビューの拡大率によって線端の表示が変わることがある

 

デフォルトの状態だとオブジェクトが多くなると複製や移動時に引っかかるようになり、動作が遅く感じることがありました(GPUが古くOpenCLが使用できないのが原因かも知れない)。
具体的にはアプリケーション内のアイコンのような物を1ファイル内で30個作ると、アイテムの選択や複製時に一秒程度の処理待ちが発生します。レイヤーパネルのスクロールも遅くなりました。

環境設定にあるパフォーマンスのRetinaレンダリングを「低品質」にしたら改善することができました。

 

参考

チュートリアル
https://affinity.serif.com/ja-jp/tutorials/designer/desktop/

 

Tips

modoのスナッピング

modoのスナップ機能について書いてみます。

modoは強力なスナップ機能を搭載していて、グリッド、頂点、エッジ、ポリゴン、カーブなどのエレメントに対して、柔軟にスナッピングすることができます。
スナップは機械的なモデリングで頂点やポリゴンをぴったりくっつける場合に便利です。また、モデリングだけでなく、アイテムモードでアイテムを配置する場合にも便利に使えます。

スナップの使用方法

スナップ機能はツールバーの「スナッピング」をONにすると有効になります。

modoのトランスフォームツール(移動、回転、スケール)は、ツールをアクティブにし状態でビューポートをクリックすると、クリックした位置を基準に動作します(アクションセンターが設定されていない場合)。
「スナッピング」をONにするとメッシュのエレメント(頂点、エッジ、ポリゴン)にアクションセンターがスナップするようになり、スナップしやすい動作に切り替わります。

 

スナップする対象は「スナッピング」ポップアップで設定します。ポップアップはツールバーの「スナッピング」ボタンをAlt を押しながらクリック、またはツールプロパティの「スナッピング」ボタンで表示することができます。

 

スナップ対象はアイテムモード、コンポーネントモードで個別に設定することができます。グローバルを使用すると、アイテムモードとコンポーネントモードの両方のスナップ対象を設定することができます。

 

ツールがアクティブな状態でXキーを押したままにすると、キーを押してる間だけスナップを有効にすることができます。

 

スナップタイプ

スナップする対象は13種類あります。このうち3種類はペンツールでしか動作しません。

 

グリッド

ビューポートのグリッドにスナップします。「固定グリッドを使用」を使用すると任意のグリッドサイズを指定することができます。

 

頂点

メッシュやカーブの頂点にスナップします。「固定スナップ」を使用すると常にスナップした状態にすることができるので便利です。

 

エッジ

エッジやカーブにスナップします。

 

エッジの中心

エッジの中心や、カーブの中心にスナップします。

 

ポリゴン

ポリゴンやカーブにスナップします。

 

ポリゴンの中心

ポリゴンの中心にスナップします。カーブの場合はよくわからない位置にスナップします。

 

交差

ポリゴンが交差した所にスナップします。カーブの場合は頂点間を直線としてあつかうようです。

 

エッジを選択した場合は、選択したエッジの交点にスナップします。

 

ボックス

メッシュのバウンディングボックスにスナップします。バウンディングボックスの四隅と、辺の中心にスナップします。

 

ピボット

アイテムのピボットにスナップします。センターにはスナップしません。

 

ワールド軸

XYZ軸方向にスナップします。ペンツールとミラーツール専用です。

 

直線

2頂点間の直線上にスナップします。ペンジェネレータ系のツール専用です。

 

直角

辺に対して直角にスナップします。ペンジェネレータ系のツール専用です。

 

ガイド

ガイドラインにスナップします。メッシュコンストレイントにまとめられていますが、機能的にはスナップ用の機能です。ガイドにスナップさせるには「スナッピング」をONにする必要があります(スナップタイプの設定は不要です)。

 

ガイドは無限に続く直線です。あまり便利な使い道が思いつかないのと、modo 15.0では動作が不安定になっていてクラッシュしやすいので、あまりお勧めしません。

 

スナップツール

ツールバーの移動ツール、回転ツールボタンを長押しすると、あらかじめスナップがセットされた便利ツールを使用することができます。

 

特にドラッグ スナップ リジッドは便利なのでお勧めです。

 

頂点、エッジ、ポリゴンのスナップは使用頻度が高いので忘れることはないですが、交差、直線、直角は忘れがちなので動作をまとめてみました。

2軸だけスナップさせる「2Dスナップ」や、スナップ対象を距離で指定する「深度制限」など、スナップのオプション機能が充実してるのも便利ですね。

 

参考

 

Tips

modoのアイテム配置に便利なツール紹介

modoのアイテム配置に便利なツールの紹介です。

3Dソフトを使用していると、シーンにアイテムを配置するという作業が多いです。そこでmodoの便利なアイテムの操作方法として、アクションセンター、スナップ、トランスフォーム配列ツールを紹介したいと思います。

アクションセンターを使用したアイテム操作

アクションセンターはツールの基点を指定する機能です。アクションセンターはmodoの強力なモデリング機能の1つとして紹介したことがありますが、アイテムを配置する場合にも便利に使用することができます。

移動ツール

アクションセンター「ローカル」を使用すると、アイテムのローカルの角度ごとに移動することができます。
これは他の3Dソフトでもよく見る定番の動作です。

 

回転ツール

アクションセンター「自動」を使用すると、選択中のアイテムをまとめて回転することができます。
ツールプロパティの「位置のみ」をONにすると、アイテムの角度を維持した状態で位置座標を回転することができます。

 

スケールツール

アクションセンター「自動」を使用すると、選択中のアイテム+アイテムの座標をスケールすることができます。
ツールプロパティの「位置のみ」をONにすると、アイテムのスケールを維持した状態で位置座標をスケールすることができます。

 

スナップを使用したアイテム操作

モデリングで便利なスナップ機能はアイテム配置にも使えます。グリッド、頂点、エッジ中心、ポリゴン中心、バウンディングボックス、など様々な条件でスナップすることができます。

 

トランスフォームツールを使用したアイテム操作

モデルツールタブの「複製」にはアイテム配置に使えるトランスフォームツールがあります。トランスフォームツールを使用するとアイテムの配置で便利に使えます。

カーブトランスフォーム

アイテムをカーブ上に配置することができます。

 

トランスフォームスキャッタ

アイテムをランダムに移動、回転、スケールすることができます。ジッターツールも同じようなことができます。

 

トランスフォーム配列

アイテムを等間隔に配置することができます。

 

トランスフォームラディアル配列

アイテムを放射状に配置することができます。らせん状にオフセットすることもできます。

 

 

modoは他にも「ソフト移動」「シアー」「ツイスト」「ベンド」など変形ツールを使用してアイテムの位置を編集することができます。

 

今回紹介したトランスフォームツールや変形ツールを使用したアイテム操作は、静止画用途だけでなくアニメーション作成にも使用することができるので知ってると便利だと思います。

Tips

After Effectsでフォルダ内の複数のシーケンスを読み込む方法

After Effectsで複数のシーケンスを読み込む便利スクリプト「ST_Smart Import」を紹介します。

After Effectsで画像シーケンスを読み込む場合、ファイルメニューの「読み込み」、またはWindows エクスプローラからフォルダをドラッグすることが多いんじゃないかと思います。

 

フォルダをドラッグ アンド ドロップでシーケンス読み込み

画像シーケンスが入ってるフォルダを、プロジェクトにD&Dすると画像シーケンスを読み込むことができます。

 

しかし、フォルダ内に複数種類のシーケンスが含まれている場合は最初のシーケンスしか読み込むことができません。

 

ST_Smart Import

ST_Smart Importを使用すると指定したディレクトリ内のシーケンスを一度に読み込むことができます。

https://www.aenhancers.com/viewtopic.php?t=2479

 

ST_Smart ImportはAfter Effectsに標準で入ってるSmart Import.jsxを強化したスクリプトで、いくつか機能が強化されてます。

  • 読み込むシーケンスのフレームレート指定
  • 重複したシーケンスの読み込みをスキップ
  • フォルダ内の複数シーケンスの読み込みに対応

 

インストール方法

ダウンロードしたファイル「ST_Smart Import - v1.2.jsx」をAfter Effectsの「Scripts」フォルダにコピーするとします。

C:\Program Files\Adobe\Adobe After Effects CS6\Support Files\Scripts

「スクリプトを実行」から毎回ファイルを指定する方法もありますが、「Scripts」フォルダにコピーするとスクリプトがメニューにリストされるようになります。

 

歯抜けシーケンスを読み込む

歯抜けシーケンス(見つからないフレーム)を詰めて読み込みたい場合は、読み込みの「アルファベット順にする」に該当するオプションをスクリプトの143行目に追加します。ただし、このオプションを使用すると、読み込んだシーケンス名にフォルダ名が使用されます。

importOptions.forceAlphabetical = true;

 

 

 

3Dソフトでは同じディレクトリに複数のシーケンスを保存する場合があります。ST_Smart Importを使用すると、複数のフォルダ、同じフォルダ内の複数のシーケンスを一度に読み込むことができるので便利です。

より高度な読み込みがしたい場合には、有料のスクリプトを使用するのがいいかも知れません。

https://aescripts.com/immigration/

 

ちなみに、1つのフォルダ内の複数シーケンスに限ればファイル読み込みダイアログで「複数シーケンス」オプションを使用することもできます。

Tips

modoの出力パターン

modoでレンダリングした画像のファイル名を決定する出力パターンについて書いてみます。出力パターンを使用するとレンダー出力ごとにフォルダを分けることができて便利ます。

 

出力パターンとは

出力パターンとはレンダリングした画像を保存するときの連番ファイル名を指定する機能です。レンダーパス名やレンダー出力名を追加して、ファイル保存を便利に設定するための機能です。

デフォルトでは以下のように「レンダーパス名」「レンダー出力名」「ステレオスコピックの左右」「フレーム番号の桁数」が設定されています。「レンダーパス名」「ステレオスコピック」などレンダリングで使用してない場合は無視されます。

[<pass>][<output>][<LR>]<FFFF>

 

出力パターンが使用されるケース

出力パターンは「アニメーションをレンダー」を実行したときに使用されます。

modoはレンダー出力を使用してDepth、Specular、Diffuse、Cryptomatteなど様々なレンダリング要素を出力することができます。レンダー出力のプロパティではレンダー出力ごと個別にファイルパスやファイル名を設定することができますが、毎回個別にパスを設定するのは面倒です。

 

レンダー出力のファイルパスが設定されていない状態で「アニメーションをレンダー」を実行すると、保存先に指定したパスに「出力パターン」を使用して画像を保存してくれます。

 

ファイル出力時にフォルダをわける

レンダー出力が1つのフォルダに全て入ってると、不便に感じることがあるかも知れません。そんな時は「出力パターン」にスラッシュを追加すると、レンダー出力ごとにフォルダをわけて連番を保存することができます。

[<output>/][<output>_]<FFFF>

 

「アニメーションをレンダー」を実行すると「ファイル保存名+レンダー出力名」でフォルダが作成されます。

 

残念ながら保存した画像ファイルに Cut_001 のような任意の文字列を追加する方法がわかりませんでした。

出力パターンはMayaのFile Name Prefixと同じような機能ですが、Mayaに比べると使用できるトークンが少ないのが残念ですね。Mayaの場合はカメラ名やシーンファイル名などを使用することができます。
ファイル出力の自由度を上げたい場合は、Render Output Managerなどスクリプトで対応する必要がありそうです。

 

余談ですがmodo 15.0から出力パターンがドット区切りに変更になったようです。

.[<pass>.][<output>.][<LR>.]<FFFF>

modo 14.2以前の状態に戻したい場合は、初期設定の「デフォルト出力パターン」で変更することができます。

[<pass>][<output>][<LR>]<FFFF>

Tips

modoでパーティクルクラウドをフリーズする方法

modoでパーティクルクラウドと、サーフェイスパーティクルジェネレータをフリーズする方法について書いてみます。

パーティクルクラウドやサーフェイスパーティクルジェネレータは、いわゆる後から再編集可能なプロシージャルオブジェクトです。プロシージャルオブジェクトをモデリングツールで編集可能にするにはフリーズする必要があります。

 

Particle Cloudをフリーズ

Particle Cloudをフリーズする場合は、particle.freezeCloud コマンドを実行します。

particle.freezeCloud

 

Surface Particle Generatorをフリーズ

Surface Particle Generatorをフリーズする場合は、アイテムメニュー /リプリケータで「パーティクルジェネレータ」を実行します。

 

ちなみに同じメニューにある「サーフェイス ジェネレータ」はシェーダーツリーを使ったパーティクルジェネレータをフリーズするコマンドです。

 

サーフェイスパーティクルジェネレータはメニューからアクセスできますが、パーティクルクラウドのフリーズはメニューにないのでメモとして書いておこうと思いました。

Tips

modoの頂点カラーでリプリケータを制御

Foundryのフォーラムでウェイトマップを使用してリプリケータを制御できないのか?というスレッドを見かけたのでまねてみました。

https://community.foundry.com/discuss/post/1215164

 

現在modoではParticle Sieve Modifierだけウェイトマップを読み取ることができますが、残念ながらParticle Sieve Modifierはリプリケータを消すことしかできません。また、Weight Map Falloffパーティクル モディファイヤで動作しないようです。


そこでウェイトマップの代わりに、頂点カラーとParticle Expression Modifierを使用する方法が提案されていました。

Particle Expression Modifierを使うと、CR、CG、CBという変数を使用してRGBマップから値を読み取ることができます。頂点カラーツールを使用してリプリケータのトランスフォームを編集することができます。

サンプルファイル

 

スケマティックではRGBそれぞれParticle Expression Modifierをわけてますが、エクスプレッションはサンプルが少ないので、どう式を書けばいいのかよくわからないです。
単純な計算A+B程度なら問題ないですが、1つのノード内でCR、CG、CB全部の計算結果を出力できるのか?とか、記述をミスった場合に何が問題なのかフィードバックがないので使うのが難しいです。

とりあえず、Particle Expression Modifierノードを使うと他のパーティクル モディファイヤでアクセスできないチャンネルを読み取ることができるようです。

 

関連

今回はParticle Expression Modifierの使い方みたいな記事でしたが、単純にリプリケータを個別に編集したい場合はパーティクルペイントツールパーティクルマップを使用すると頂点単位でリプリケータを編集することができて便利です。

modo 14.2からプロシージャルウェイトマップが強化されたので、今後ウェイトマップとパーティクルモディファイヤが連携できると、アニメーション用途で面白い使い方ができそうですね。

Tips

Bifrost 2.0でシミュレーション キャッシュを保存する方法

Bifrostのシミュレーション キャッシュの保存方法に関するメモです。シミュレーションを試そうと思った時に、キャッシュの保存方法がわからなかったので調べました。

BifrostはMayaや3ds Maxに標準搭載されているに流体シミュレーションソフトです。元々Naiadという流体シミュレーションソフトで、2012年にAutodeskが買収した後、Bifrostに名称を変えてMayaやMaxに機能追加されました。
Bifrostは2.0からビジュアルプログラミング環境として大きな変更が加わり、以前のバージョンからキャッシュの保存方法が変わってます。

 

file_cache

シミュレーション キャッシュを保存する場合はfile_cacheノードを使用します。

本来はwrite_OpenVDB_volumeのようにwrite系のノードを使用する物らしいですが、サンプルを見るとfile_cacheが使用されていました。
file_cacheノードは現在のところ実験的な機能で、将来的に変更される可能性があるとのことです。

 

Mode

キャッシュの書き込み、読み込みを設定します。Write Modeでキャッシュを作成した後、Read Modeに切り替えるとタイムラインのスクラブが可能になります。

 

Filename

キャッシュファイルの保存先を設定します。キャッシュファイルはアニメーションを再生すると自動的に保存されます。

  • ファイル名には#を入れます。#入れないとフレームごとに連番保存できません。
  • キャッシュの保存形式は拡張子(.bob、.vdb、.abc)で指定します。

 

Propertys

保存するシミュレーションデータプロパティの指定です。Propertysに保存したいプロパティ名をスペース区切りで記述します。*の場合すべてのプロパティを保存されます。

使用可能なプロパティ名はノードのライン上で右クリックしてWatch Pointを追加すると確認できます。

 

Bifrostのシミュレーション結果をvdbで保存してaiVolumeに読み込むと、プロパティが読み込まれるのが確認できました。

 

modoのVDBVoxelでも同じプロパティが読み込まれるのが確認できます。

 

参考

Bifrost 2.0チュートリアル
https://area.autodesk.com/tutorials/?tag=bifrost

https://area.autodesk.jp/product/maya/bifrost2/

Tips

modoでおきあがりこぼし

mdooのダイナミクスでおきあがりこぼしの作り方について書いてみます。ダイナミクスの特長を使った小ネタです。

サンプルファイル

mdooのリジッドボディ ダイナミクス(Bullet Dynamics)は、アイテムのセンターを中心に回転します。この特長を利用してセンターをアイテム底に配置すると、アイテムをおきあがりこぼしのように倒れにくくすることができます。

倒れないドミノも作れます。


特に使い道のあるTipsではありませんが、もしかするとモーショングラフィックで役立つかもしれません。

 

参考

Tips

modoでプロシージャルなドミノ倒し

modoでプロシージャルなドミノ倒しの作り方について書いてみます。

 

ダイナミクスのチュートリアルでよく見かけるドミノ倒しですが、1個ずつドミノを並べるのは面倒です。カーブを使用してドミノを配置すると、カーブを編集するだけで手軽に並べ替えができるようになって便利です。

サンプルファイル

 

スケマティックはこんな感じです。

大まかな流れとしてカーブからパーティクルを発生させます。ドミノにはコリジョンを設定したいので、Dynamic Replicatorを使用してドミノ通しが衝突するように設定しています。

このとき問題になるのが、ドミノをカーブに沿って配置する方法です。modoにはCurve Particle Generatorというカーブに沿ってアイテムを配置する便利なノードがあります。

残念なことにCurve Particle Generatorを元にパーティクルを発生させても、回転した状態でパーティクルを発生させることができません。下の画像のような方法ではカーブに沿わせることができない。

この問題を回避するためにCurves to ArrayとArray Element By Indexを使用します。
ドミノのスケマティックではParticle Generatorを使用してX方向にパーティクルを生成します。Curves to Arrayでカーブの挑戦数を設定して、Array Element By Indexを使って頂点の「位置」と「回転」をParticle Operatorに出力します。

「回転」はそのままParticle Operatorに繋ぐことができますが、「位置」はMatrix Vectorを使ってマトリクスからベクターチャンネルに変換してからParticle Operatorに接続します。

こうすることでカーブに沿ったパーティクルを発生させることができるようになり、手続き的にドミノを配置することができます。

 

Replicatorをフリーズしてダイナミクス適用する方法もありますが、今回はパーティクルを使用する方法を紹介してみました。ちょっと複雑ですが、パーティクルに回転を渡したい場合、Arrayを使うといいようです。
modoには様々なノードがありますが、似た役割のノードでも読み取れる情報に差があるため無駄に複雑に感じることがあります。似た機能のノードは全て同じ情報にアクセスできるように機能を統一して欲しいですね。

 

参考

今回のカーブに沿って回転したパーティクルの発生方法は、Warrenさんが公開していたファイルを参考にしています。
https://community.foundry.com/discuss/post/1214020

Tips

modoのパーティクルオペレータ タイプ

modoのパーティクルオペレータ タイプについて書いてみます。

パーティクルを制御するパーティクルオペレータには「タイプ」というチャンネルがあります。タイプには「適用」「統合」「新規」「トリガー」の4種類があり、タイプによってパーティクルオペレータの適用方法が変わります。

 

まずは比較のためにパーティクルオペレータを使用していない状態のパーティクルシミュレーションです。平面の頂点からパーティクルが発生し続けます。変化がわかりやすいようにパーティクルは発生位置にとどまるようにしました。

 

 

適用

「適用」は毎フレーム値を設定します。

このスケマティックでは「位置 Y」に 2m、「回転 Z」に45°の値を設定してます。

 

 

統合

「統合」は毎フレーム値を加算します。

このスケマティックでは「位置 Y」に 2m、「回転 Z」に45°の値を設定してます。毎フレーム値が加算されるため、パーティクルはY軸方向に移動します。
回転が加算されないのはよくわからないです。「サイズ」「速度」は加算されるので行列チャンネルは非対応なのかな?

 

新規

「 新規」はパーティクル発生時に1度だけ値を設定します。

このスケマティックでは「位置 Y」に 2m、「回転 Z」にTimeノードを使用して毎フレーム異なる値を設定してます。

 

トリガー

「トリガー」はトリガーチャンネルがTrueになったフレームで値を設定します。

このスケマティックでは「位置 Y」に 2m、「回転 Z」にに45°の値を設定してます。
トリガーチャンネルにキーフレームを設定したチャンネルを接続して、1秒間隔でTrueを設定してます。

 

 

オペレーターの接続順

Particle SimulationのOperatorは接続された順番で計算します。

例えば画像のようにSource Emitter、Particle Operatorの順番で接続した場合、Source Emitterが先に計算されるため、平面の頂点位置にパーティクルが発生し、次のフレームでParticle Operatorの「位置」と「回転」が計算されるため一瞬だけ平面上にパーティクルが発生してるのがわかります。

Particle Operatorの順番は重要で「新規」を使用する場合は、エミッターよりも先にParticle Operatorを接続していないとパーティクル特性が動かないように見えます。

 

パーティクルオペレータ タイプの「新規」を使用すると、螺旋のように少しずつ角度の違うパーティクルを発生させることができて便利です。

サンプルファイル

Tips

modoでキャラクターリグ作ってみた

modoの機能を使用してキャラクターリグを作ってみたので紹介したいと思います。

modoにはコマンド範囲などリグ作成やアニメーションに便利な機能が色々搭載されていますが、あまりキャラクターリグ関連のデモを見かけないように思います。modoの機能をフル活用してキャラクターリグを作るとどうなるかチャレンジしてみました。

 

modoのアニメーション機能

このビデオではmodoのキャラクターアニメーション機能紹介を簡単に紹介してます。

 

アクション

アクションは1つのシーンで複数のアニメーションを管理する機能です。今回はリグ紹介用のアニメーションを管理するのに使用しています。
アクションはFBXファイルにマルチテイクとして出力することができるため、Unityに複数のAnimationが作成された状態でインポートできるので便利です。

アクションはいわゆるアニメーションレイヤーのような機能ですが、まだ開発途上の機能のためmodo 14.2 ではアニメーションのブレンドはできません。アニメーションの管理に使用するのが実用的です。

関連記事

 

 

Rig Clay

Rig Clayはクレイアニメのようにモデルをダイレクトに操作する感覚で制御するリグです。コマンド範囲を使用して非表示状態の制御用ロケータを選択しています。

コマンド範囲はmodoのコマンドをメッシュをクリックして実行できる自由度の高いリグ機能です。複数のアイテムを選択するしたり、アイテムの表示を切り替えたり、ポップアップメニューを表示したり、スクリプトを実行するなど、modoの多くのコマンドを実行することができます。

Mayaや3ds Maxなどではキャラクター制御用のカーブアイテムが大量にビューポートに表示されているのを見かけることが多いと思います。現在のキャラクターリグでは主流ですが、コントローラが多いとモデルが見づらい、数が多いとアイテム選択しづらい、ビューポートのパフォーマンスが低下するなどの問題もあります。

このためPixarの「Presto」ドリームワークスなどインハウスのアニメーションソフトでは、コントローラを使用するのではなく、モデルを直接操作するようなリグが試されてました。最近だと「Rumba」も同じような機能が搭載されていますね。

コマンド範囲は901で追加されましたが、modo 14.2で機能拡張されて表示や使い勝手が良くなりました。今回はじめて本格的に使って見ましたが14.2ではマウスオーバー表示に問題があるのと選択中のアイテムがわかりにくいので、もう少し改善が必用に感じます。

ちなみに「Rig Clay」という名称はPixarのキャラクターTDだったRichardさんがmodo向けに考案したワードのようです。

関連記事

 

 

アイテム表示用のポップアップ

ビューポートのアイテム表示やデフォーマの計算を切り替えるポップアップです。このポップアップはロケータにユーザーチャンネルを追加して、ロケータが選択された場合にチャンネルポップアップを表示するコマンド item.channelPopover を実行してます。

 

アイテムの表示はグループの「可視」チャンネルを使って切り替えています。modoには複数のアイテムを管理するためにアイテムリストとは別にグループビューポートがあります。
グループを使用するとアイテムの表示をまとめて切り替えたり、選択したり、ロックしたり、チャンネルにキーを作成したりと色々できて便利です。

 

アイテムごとにデフォーマをON/OFFする機能もつけました。これは不要な計算を省きたいときに使用すると便利です。デフォーマはNormalizing Folder の「有効」を制御することで、フォルダ内のインフルエンスをまとめてON/OFFすることができます。

関連記事

 

 

アイテムピッカー

アイテム選択を便利にするアイテムピッカーです。Webビューを使用してコマンドを実行しています。

WebビューはHTMLからコマンドを実行できる自由度の高いビューポートです。ビューポートで選択し難いアイテムを選択する場合に便利です。アイテムのトランスフォームにキーの追加/削除、ポーズのリセットなどアニメーションで便利なボタンを追加しています。

関連記事

 

 

スケマティック

modoのリグ構築に使うスケマティックビューポートです。スケマティックはリグごとにワークスペースを分けることができるので処理を管理するのが楽です。またフェイシャルリグのスライダーのようなパーツはアセンブリとして使い回すことができて便利です。

modoのスケマティックはオブジェクト、プロシージャルモデリング、マテリアル、シェーダーノード、パーティクルなど多くの機能を全て同じように使うことができるので便利です。ノードやバックドロップに色を設定したり、コメントノードを使用したりグラフィカルに管理することができます。

関連記事

 

 

キャラクターリグ

今回作ったキャラクターリグの紹介です。元々素体用の簡素なモデルを作ってたのですが、modoのアニメーション機能をテストするうち楽しくなって過剰に自動制御のリグを追加してしまいました。
本職のリガーやTDさんが公開しているビデオを参考に、見よう見まねで作りましたがそれっぽく動かせてる気がします。

キャラクターリグのベースにはCharacterBoxを使用しています。CharacterBoxはモジュラーリグプラグインで、いくつかのリグを組み合わせてオリジナルのキャラクターリグを作ることができます。

 

フェイシャルリグ

表情はスライダーを使用して複数のモーフを制御してます。モーフはリニアに補完されるためモーフを単純にミックスするとメッシュがめり込むことがあります。スライダーを使用することでモーフの中間で変形を補正するモーフを加えて表情をブレンドしてます。

モーフで表情を制御する場合は他のソフトでは左右別々にモーフを作成するのが一般的だと思いますが、条件式ノードを使ってフォールオフを回転して左右のどちらか一方向のモーフの影響をマスクしてみました。
モーフマップを左右分けて管理する必要がないのでモーフの数が少なくてすみ、モーフの修正も楽になります。

 

表情を微調整するためのコントローラも仕込んでます。これはmodo標準のトランスフォーム デフォーマを使用しています。
赤色のロケータは頂点コンストレイントを使用してモーフに合わせて移動してます。本来は微調整用の緑色のロケータを赤色のロケータにペアレントしたかったのですが上手くいかなかったです。

眼球の動きに合わせてまぶたを動かす処理も入れてみたのですが、あまり効果が感じられなかったかも。

キャラの髪はCharacterBoxの尾リグを使ってます。キーは全部同じフレームに作成してますが、遅延の設定をリグごとに少しずらして動きにバリエーションを持たせてます。

関連記事

 

 

ボディーリグ

スケルトンだけ表示したビデオ。

 

体はCharacterBoxをベースにしていますが、プリセットそのまま使うのではなくカスタムした構造にしました。例えば鎖骨、手の甲の骨は関節数が1つの指リグを追加して、IKで制御できるようにしています。

好みの問題ですが鎖骨や手の甲にアニメーションをつけるとき、移動と回転でツールを切り替えるのが面倒です。CharacterBox標準の鎖骨は使用せず、移動ツールで制御できる指リグに置き換えました。

腕や脚のツイストはCharacterBoxのセグメントを使用してます。メッシュの細かさによりますがセグメント数は3~5個くらいあると綺麗にツイストできる気がします。

関節はホース状につぶれないように変形を補助するボーンを4個追加して、角度に合わせて自動で動くように制御してます。筋肉の収縮や皮膚のスライドも補助ボーンを使用して制御しています。この補助ボーンは全てチャンネル リレーションシップを使って制御してます。

補助ボーンの設定についてはMayaのウェビナーが参考になると思います。

 

スケルトンの角度を取り出す方法は以前書いたワールド回転からローカル角度を計算する方法と同じで、ヒジやヒザのように1方向にしか回転しない関節はMatrix To Eulerの「回転順」を変更して欲しい軸の角度を取得しています。肩や股関節のように回転軸が多い関節はTwist Extractorを使用するのが便利だと思います。

角度とチャンネル リレーションシップ使ってスケルトンの位置、回転、スケールを制御しました。チャンネル リレーションシップを使うと自動制御はとても簡単に作成することができます。

 

自動制御は体の左右で同じ制御を使いたいので、ノードをインスタンスコピーして管理や修正が楽になるようにしています。下の画像では紫色のリレーションシップがインスタンスされたノードです。

自動制御にはCharacterBoxの単体のスケルトンを使用してます。modo標準のスケルトンを使用してもリグは作れるのですが、筋肉のようにスケールしたときmodo標準のスケルトンは変化がわかり難いのでCharacterBoxのスケルトンを使用してます。

 

耳、胸、二の腕、腹、太もも、ふくらはぎはCharacterBox のマッスルで揺らしてます。

 

呼吸っぽくお腹動かすリグも仕込みましたが、少し効果がわかり難かったですね。

 

アニメーション

作ったリグを使用して簡単にアニメーションつけてみました。スカートはSyflex

 

 

3ds MaxやMayaには標準で人形リグが入っててポーズやアニメーションのコピーやミラーに対応してたりしますが、カスタムで追加したリグは自分で何とかする必要があります。運よく作ったリグで動くコピースクリプトが見つればいいのですが、スクリプト書けないとカスタムリグを作るのは面倒です。

その点CharacterBoxは1.2.0からカスタム追加したロケータやスケルトンに簡単に対称編集やポーズのコピーができるようになり、スクリプトを書かなくてもカスタムリグの構築が楽にできるようになりました。
この機能を使用するとフェイシャルで微調整用のロケータを対称編集したり、ミラーコピーがプラグイン任せできるようになります。

今回手の込んだキャラクターリグを作ってみようと思えたのは、セットアップするときに面倒くさいカスタムリグの対称編集をプラグイン任せにできるというのが大きな理由です。

補助ボーンの自動制御やコマンド範囲の設定はそれほど難しいことはないので単純に根気です。コマンド範囲はとても可能性を感じる機能なので、自動生成する機能を標準で追加して欲しいですね。

 

以上ザックリとした紹介と解説ですが、modoを使ったリギングがどんなものか参考になったなら嬉しいです。

Tips

modoのテクスチャオフセット

modoのテクスチャオフセットについて書いてみます。テクスチャオフセットはレイヤーをテクスチャを使って歪める機能です。

modoには他のソフトに比べて数多くのプロシージャルテクスチャが入っていますが、タイルのように規則的なテクスチャを使うと、正確すぎてCGっぽく感じることがあります。テクスチャオフセットを使用するとノイズテクスチャを使ってランダムに揺らぎを加えることができて便利です。

サンプルファイル

 

テクスチャオフセットを使用する場合は、変形したいテクスチャの下にレイヤーを移動して、レイヤーエフェクトを「テクスチャオフセット」に変更します。次に歪みを加えたいテクスチャロケータのプロパティで「テクスチャオフセット強度」を変更します。10.0 で元の位置から 最大 100% オフセットされます。

 

テクスチャによっては「乱れ」というノイズを加えるプロパティがある場合もありますが、テクスチャオフセットはグラディエントなど様々なテクスチャに歪みを加えることができます。

例えばオブジェクトにウェイトマップを設定してVertex Map Textureで色を設定。Vertex Map Textureにはテクスチャレケータがないので、グラディエントで再度色づけしたものにテクスチャオフセットで歪みを加える。というような使い方ができます。

 

modoのシェーダーツリーは便利な機能が多くて助かりますね。

 

参考

Tips

modoのFlood WeightとGrow Weight

modo 14.2では14.1に引き続きプロシージャルウェイトマップが強化されました。

  • Flood Weight
  • Grow Weight
  • Jitter Weight
  • Remap Weight

なかでもFlood WeightとGrow Weightが面白いので簡単に紹介してみます。

 

Flood Weight

Flood Weightはポリゴンアイランド単位でウェイト値を最大または最小値で塗りつぶすノードです。

下の画像では等高線状にポリゴンを分割して、テクスチャ使ってSet WeightしたものをFlood Weightで塗りつぶした物です。Flood WeightがOFFの場合はノイズテクスチャの濃淡でウェイトが設定されてますが、Flood Weightを使うと繋がったポリゴン単位で同じウェイト値が設定されます。

Gradientで地形っぽい色を設定すると山岳立体模型キットみたいな感じになります。

 

Grow Weight

Grow Weightはウェイトマップを成長させる定番のノードです。境界マップを使うとウェイトの成長を止めることができるのが面白いですね。

ウェイトマップはウェイトマップテクスチャと組み合わせて質感を設定できるので、指先から質感が変わるアニメーションやエフェクトのような効果が手軽に作れるようになりました。

 

古いバージョンもTransfer Vertex Map選択モディファイヤを使うとウェイトマップをアニメーションすることができましたが、Grow Weightの方がカーブを使用してなめらかなグラデーション状のウェイトマップを作ることができて便利です。

後はウェイトマップとシミュレーションとの連携が簡単になれば完璧ですね。