ダイナミック ジオメトリ アトリビュート: クイック スタート チュートリアル

このチュートリアルでは、変形メッシュで張力の可視化を設定し、リギングおよびキャラクタ FX のパイプラインでダイナミック ジオメトリ アトリビュートを使用するための主要なワークフローについて学習します。最終的に、メッシュ上の伸長データと収縮データを可視化する方法を理解できます。

ダイナミック ジオメトリ アトリビュートのワークフロー

始める前に

必要なもの:

手順 1: シーンをセットアップする

単純なテスト シーンを作成して、張力の動作を確認します。

  1. ビューポートに十分な解像度のポリゴン円柱を作成します。
    • 張力を視覚的にわかりやすくするには、高さ(Height)を 6、高さのサブディビジョン(Height Subdivisions)を 12 以上に設定します。
    • 半径のサブディビジョン(Radius Subdivisions)を 8 以上に設定します。
  2. 円柱にスカッシュデフォーマを追加します(デフォーム > ノンリニア > 収縮 (Deform > Nonlinear > Squash))。
  3. スカッシュ デフォーマの係数(Factor)アトリビュートをアニメートし(-2 から 2 の間の値を試します)、円柱が圧縮、伸長する様子を確認します。
  4. : タイムライン コントロールでキャッシュの再生(Cache Playback)が無効になっていることを確認してください。

これにより、時間の経過とともに変形するメッシュが得られ、張力の計算に最適です。

手順 2: ノード エディタを準備する

必要なすべての接続が表示されるようにノード エディタを設定します。

  1. ノード エディタを開きます(ウィンドウ > ノードエディタ(Windows > Node Editor))。
  2. アウトライナ(Outliner)で円柱シェイプ ノードを選択し、ノード エディタ(Node Editor)に追加します。
  3. 展開矢印(ノード エディタ(Node Editor)の右上)を複数回クリックすると、デフォーマで作成されたオリジナル ジオメトリを含め、すべての接続が表示されます。
  4. これで、変形した円柱シェイプと元のジオメトリ ノードの両方が表示されます。

手順 3: 張力ノードを作成する

メッシュで伸長と収縮が発生している場所を計算します。

  1. ノード エディタ(Node Editor)で、Tab キーを押すか、右クリックして dgaTension ノードを作成します。
  2. 重要: dgaTension ノードを右クリックし、すべてのアトリビュートを表示(Show All Attributes)を選択します(一部のノードでは既定で出力のみが表示されます)。
  3. 次の接続を行います。
    • オリジナル ジオメトリの outMesh を dgaTension の元のジオメトリ(Original Geometry)入力に接続します。
    • スカッシュ デフォーマで outputGeometry を展開し、出力ジオメトリ(Output Geometry)[0]を dgaTension の入力ジオメトリ(Input Geometry)に接続します。

dgaTension ノードは、変形したメッシュを元のメッシュと比較し、その変形に基づいて表面張力を計算します。

手順 4: 結果を可視化する

これらの張力の値を、次のものに変換します。

  1. ノード エディタで dgaVisualizer ノードを作成します。
  2. dgaVisualizer ノードを選択します。
  3. dgaVisualizer ノードのアトリビュート エディタ(Attribute Editor)を開きます。
  4. 可視化アトリビュート(Visualization Attributes)セクションでソロ アトリビュート(Solo Attribute)を探します。
  5. 次の接続を行います。
    • dgaTension の出力アトリビュート(Output Attributes)を dgaVisualizer の入力アトリビュートに接続します。
    • dgaTension の出力ジオメトリ(Output Geometry)を dgaVisualizer の入力ジオメトリに接続します。
    • dgaVisualizer の出力ジオメトリ(Output Geometry)を円柱シェイプの inMesh 入力に接続します。
  6. ソロ アトリビュート(Solo Attribute)の値を伸長(Stretch)に設定します。
  7. ノード エディタ(Node Editor)で dgaVisualizer ノードを右クリックし、すべてのアトリビュートを表示(Show All Attributes)を選択します。
  8. カラー表示を有効化: モデリング(Modeling)モード(左上のメニュー セット)に切り替えて、メッシュ表示 > 表示カラー アトリビュートの切り替え(Mesh Display > Toggle Display Colors Attribute)に移動します。
  9. タイムラインをスクラブします。これで、円柱が変形するときの張力を示すヒート マップが円柱に表示されます。

可視化を微調整する

より良い結果を得るには、可視化を調整します。

  1. dgaTension ノードを選択し、アトリビュート エディタ(Attribute Editor)を開きます。
  2. 別の設定を試します。
    • 張力モード(Tension Mode): UV
    • 張力の正規化(Normalize Tensions): 有効にすると、一貫性のある可視化が可能になります。
    • 最大収縮(Max Squash)/伸長(Stretch): 範囲をより正確にキャプチャするには、これらを期待値に調整します。
  3. dgaVisualizer ノードを選択し、次のように調整します。
    • 可視化モード(Visualization Mode): 張力、伸長、収縮を切り替えます。
    • 正規化モード(Normalization Mode): 「ダイナミック(Dynamic)」に設定します。
    • カラー ランプ(Color Ramp): 好みに合わせてカラー グラデーションをカスタマイズします。

トラブルシューティング

メッシュにカラーが表示されない場合:

ノードに入力アトリビュートが表示されない場合:

スクラブしても色が更新されない場合:

次のトピック

基本的なワークフローを理解したところで、次のアイデアを試してみてください。

詳細設定: Arnold との統合(オプション)

スクリプト作成に慣れているユーザーの場合、張力データを Arnold に書き出すことができます。

  1. dgaToArray ノードを作成します。
  2. dgaTension の出力アトリビュート(Output Attributes)を展開し、出力値(Output Values) を dgaToArray のDouble 型入力値(Input Double Values)に接続します。
  3. ジオメトリを dgaToArray の入力ジオメトリ(Input Geometry)に接続します。
  4. MEL を使用してカスタム アトリビュートを作成します。
    addAttr -ln "mtoa_varying_tension" -dt "doubleArray" yourMeshShape;
    注: 命名規則の詳細については、Arnold userData のドキュメントを参照してください。
  5. dgaToArray の出力をカスタム アトリビュートに接続します。
  6. マテリアル グラフで aiUserDataFloat を「tension」というアトリビュート名で使用します。

ダイナミック ジオメトリ アトリビュート(Dynamic Geometry Attributes)を使用すると、キャラクタの変形方法を正確にコントロールできます。問題のあるスキニングの修正、リアルな布地のしわの作成、プロシージャル サーフェスのディテールの追加など、このツールセットで自在に操作できます。