| On this page |
このワークフローでは、 Otis Muscle & Tissue システム内でのMuscleのセットアップ、構成、反復的な微調整を説明します。
必要なアセット ¶
筋肉を構成してシミュレーションでテストするには、いくつかのアセットとセットアップが必要です:
-
Muscleサーフェスジオメトリ - 彫刻されるMuscleサーフェスは、現実世界のスケール(1 Houdini単位 = 1メートル)でモデリングされた交差のないマニフォールド(穴やブリッジがない)なポリゴンジオメトリにしてください。
-
アニメーションするボーンサーフェス - ポリゴンのボーンサーフェスは、現実世界のスケール(1 Houdini単位 = 1メートル)でモデリングしてください。
-
Tポーズのボーンサーフェス(Restポジション) 。Muscles & Tissue生成プロセスを通じてジオメトリをTポーズ位置に戻せるように、キャラクタのボーンとMuscleにRestポジションまたはTポーズを記録する必要があります。
Note
Tポーズのボーンサーフェスは三角形化され、アニメーションボーンサーフェスと同じトポロジーを持つ必要があります。
-
最終レンダースキン/メッシュ - シミュレーションの最終結果を表示するための、高ポリゴンでプロダクションレベルのレンダースキン/メッシュ。
必要なアセットの前提条件となるセットアップとして、筋肉をキャラクタに転送するワークフローに従うことができます。自分のキャラクタが二足歩行で、Muscleジオメトリを持っていない場合は、Test Geometry: Otto Muscle Transferレシピを使用して、Ottoの筋肉をキャラクタに転送することができます。詳細は、Muscle用のジオメトリを準備するを参照してください。
Muscleセットアップワークフロー ¶
Muscle & Tissueシミュレーションを素早く立ち上げて実行するための、2つのStarterレシピがあります。ゼロから始めるよりも、アセットをこれらのレシピに接続する方がお勧めです。
この例とワークフローは、Otis Muscle and Tissue Simulationレシピをテンプレートとして使用しています。レシピは、SOPタブメニューの Character FX → Muscles → Otis Muscle and Tissue Simulation から利用できます。
初期セットアップ ¶
初期セットアップでは、Muscleサーフェスジオメトリを四面体メッシュに変換して、繊維グルームをペイントします。
-
シミュレーションで筋肉を再現する各Muscleのサーフェス(自己完結した一連の繋がったプリミティブ)は、四面体化される前に、
muscle_idアトリビュートまたは名前を持っている必要があります。このためには、Muscle ID SOPを使用します。
-
入力のMuscleサーフェスはきれいな正三角形でテセレーションされています。Muscleサーフェスは、四面体化する前に三角形化する必要があります。これを行なうには、
Muscle Solidify SOPノード内の Remesh Surface パラメータを使用します。これは、リメッシュと四角形化を1つのノードに組み合わせたものです。
-
任意の手順として、 Muscle Solidify SOP の後に
File Cache SOPを作成すると、シーンファイルを開く度に再クックされるのを防げます。 Time Dependent Cache をオフにした後で、 Save to Disk をクリックします。
-
筋肉は曲がると、繊維ベクトルの方向に収縮します。この繊維ベクトルは、Muscleのローカル軸の向きを定義します。筋肉を期待した方向に収縮させたいのであれば、明確に独自の繊維方向ベクトルを定義する必要があります。
Fiber Groom SOPノードを使用することで、Muscleに対してその繊維方向ベクトルをペイントすることができます。
プロパティ、アタッチメント、拘束のセットアップ ¶
これらのステップでは、Muscleの物理プロパティを設定して、MuscleのOtis拘束のレイヤを変更します。詳細は、ジオメトリのシミュレーションの仕組みを理解するおよびアタッチメント(取り付け)の仕組みを参照してください。
-
Muscleの物理プロパティは、筋肉の形状変化に対する受容性や抵抗性、筋肉のどの領域が腱なのか、筋肉の剛性や柔軟性、筋肉が収縮した時の膨らみ具合など、Muscleの物理的特性を決定します。これを行なうには、
Muscle Properties Otis SOPを使用します。詳細は、Muscleプロパティの割り当てを使用するを参照してください。
1枚目 の Number of Assignments マルチパラメータタブですべての筋肉に関する 一般パラメータ の設定を行なってから、次のマルチパラメータタブで個々のMuscleまたはMuscleグループに関する 特定の プロパティ設定を行なうことを推奨します。これは、マルチパラメータタブは左から右に適用されるためです。Houdini 21では、タブをクリックしてドラッグすることで、マルチパラメータタブの順番を変更できるようになりました。
Important Note
Absolute バージョンと Relative バージョンのパラメータは異なる挙動をすることに注意してください。 Absolute バージョンのパラメータ値は 上書き で適用されるのに対して、 Relative バージョンのパラメータ値は(前のマルチパラメータタブで)既に設定された値またはデフォルト値の乗数として適用されます。
-
Muscle Constraint Properties Otis SOPノードは、筋肉Otis拘束の複数レイヤを駆動するアトリビュートを作成および変更します。
-
筋肉の両端 を拘束して、柔軟性を低くし、ボーンのアニメーションに密接に追従するようにします。
-
Muscle Glue を使用して、筋肉をまとめて強くアタッチします。
-
筋肉を皮下組織 に拘束して、筋肉が互いに、かつボーンから離れないようにします。
-
-
キャラクタのMuscleジオメトリが片側(両側ではなく、左側のみ、または右側のみ)しかなくてキャラクタが対称である場合、
Muscle Mirror SOPノードを使用することで、欠落した側にMuscleをミラー化または複製することができます。複製したMuscleが重複しないように、中央のMuscleがグループから除外されていることを確認します。
筋緊張ラインと屈曲 ¶
Otis Muscles & Tissue システムは、
Muscle Auto Tension Lines SOPを使用して緊張ラインを自動的に作成できます。旧バージョンのように、それぞれの筋肉に手動でラインを引く必要はありません。これらの緊張ラインはその後、
Muscle Tension Lines Activate SOPおよび
Muscle Flex SOPノードに渡され、シミュレーション中の筋肉の屈曲動作を設定します。
-
Muscle Auto Tension Lines SOPノードは、各入力のMuscleに自動的に緊張ラインを作成します。緊張ラインは、各Muscleの指定した両端の間で、最長のラインを検索することで算出されます。
-
このノードで生成された各緊張ラインを各Muscleに自動的にリンクさせるには、
Muscle Flex SOPで Match Tension Lines by Name がオンになっていることを確認します。独自の Muscle ID Attribute を使用する場合は、Muscle Flexの Attribute to Match フィールドで同じアトリビュートが指定されていることを確認します。
-
-
Muscle Tension Lines Activate SOPノードは、入力筋緊張ラインのアクティベーション値を設定します。
-
このノードは、旧バージョンの
Muscle Flex SOPよりもMuscleのアクティブ化を詳細に制御できます。前の Muscle Flex では緊張ライン毎に1つのパラメータだったのに対し、複数のパラメータを設定できます。また、現在は非推奨になった Muscle Flex Activation Ratio(アクティベーション率)のインターフェースよりもシンプルで、緊張ライン毎に1つのパラメータではなく、複数のラインのアクティベーション設定を同時に行なうことができます。さらに、Muscleではなくラインを使用してアクティベーション値をプレビューするため、素早いクックが可能です。
-
ビューポートで緊張ラインを選択して分離する際は、 Isolate Current Tab Selection をオンにします。
-
-
Muscle Flexパラメータを使用すると、
Muscle Solverで使用される
muscletensionアトリビュートをアニメーションさせて、ショットアニメーション中に筋肉が収縮と緩和をしようとする タイミング を決めるのに役立ちます。このアニメーションは、Muscle Tension Lines単独またはMuscle Flexパラメータのキーフレームと組み合わせることで、 自動的に 作成することができます。これらのパラメータ値にキーフレームを打つことで、Muscleをアクティブ化させるタイミングとさせないタイミングをソルバに伝えることができます。または、 Blend パラメータを使用してすべてのアクティベーションにキーフレームを設定することもできます。
Fascia(筋膜)のセットアップ ¶
このワークフローで扱うのは筋肉だけですが、 Otis Muscles & Tissue システムは筋肉と皮下組織を単一の統一パスとしてシミュレーションするため、デフォルトのFasciaセットアップを用意しておくことが重要です。Fasciaのセットアップがないと、筋肉が不自然に挙動したり、シミュレーション時に垂れ下がったり、ボーンから離れてしまったりします。詳細は、ジオメトリのシミュレーションの仕組みを理解するを参照してください。
レシピは、よりシンプルな構成でシミュレーションも速いことから、デフォルトで Fascia を使用するように設定されています。テストや構成を行なっているこの段階では、Fasciaを使用するだけで、Muscleのセットアップや構成の結果を十分に確認することができます。剛性、減衰、繊維方向、アクティブ化といったMuscleの挙動を調整して、後からTissueのセットアップに転送することもできます。
レシピでは、switch_sim_tissueノードが fascia_setup に設定されていることを確認します。これはデフォルト設定です。また、下流で
Otis Configure Muscle and Tissue SOPノードに接続されていることも確認してください。
Fasciaのセットアップワークフローの全容は、Fascia & Tissueのセットアップを参照してください。
Otis構成とシミュレーション ¶
ワークフローの最後のステップは、シミュレーションの前に行なう
Otis Muscle and Tissue Configure SOPノードでの最終準備です。これはその後、シミュレーションのために
Otis Solver SOPノードに入力されます。
ワークフローの次のステップについては、Otis構成とシミュレーションのワークフローを参照してください。
Muscleの反復的な微調整 ¶
このMuscleのセットアップワークフローで説明されているMuscleのセットアップと構成を行なった後は、この反復的な微調整プロセスに従って、シミュレーション時にMuscleを微調整することができます。
これらの反復的なステップには、以下が含まれます:
-
シミュレーション - 現在の構成を使用して、シミュレーションを実行します。
-
最初のテストでは、24fpsで Otis Solver ノードの Substeps を40、 Iterations を10で開始します。
-
-
観測 - シミュレーション結果を視覚的に検査します。
-
Otis Configure Muscle and Tissue SOP ノードで、 Visualizations を見つけて Always Show Visualizations をオンにします。これは、特定のアタッチメントや高速のトラブルシューティングに便利です。
-
適切に変形していない、硬すぎる、または垂れ下がっている筋肉をチェックします。
-
Muscle Flex ノードで、Muscleが適切にアクティブ化していることを確認します。これらは、シミュレーション時にオレンジ色/赤色で表示されます。
-
-
微調整 - 観測に基づいて、集中的な調整を行ないます。
-
このセクションでは説明しないものも含め、多くの調整が必要になる場合があります。まず、以下を調整します:
-
Muscle Constraints Properties Otis SOP ノードで、拘束を修正します。
-
緊張ラインや、緊張ラインのアクティベーション設定、Muscle Flexシステムを調整します。
-
Muscle Properties Otis ノードで、剛性や減衰を調整します。
-
-
-
反復 - 再度シミュレーションを実行して、再評価します。
-
キャラクタを微調整するには、このイテレーションループを何度か繰り返すことになることを想定しておきましょう。
-
最良の結果を得るために、このプロセスを様々なアニメーションで繰り返して、筋肉が色々なモーションに対してどのように振る舞うかを確認してください。
-
| See also |