| On this page | |
| Since | 19.0 |
このノードは、入力サーフェスジオメトリのピース毎に反復して、そのピースがアニメーションする場合にはInitialization Frameでフリーズして、Tet Conformを使って各ピースを四面体メッシュに変換します。
この変換は以下の場合に役立ちます:
-
シミュレーション中に体積を維持したい
-
自然な感じのソフトボディの挙動と揺れの効果を表現したい
-
適切に筋肉が収縮するようにしたい
Muscles & Tissueシステムでは、Muscleは ソリッド(中身の詰まった) 四面体構造であることが必須ですが、この Muscle Solidify SOP ノードはRemesh Surfaces設定または内部のデフォルトの再メッシュの仕組みを使用して自動的にサーフェスを三角形に変換するので、入力サーフェスが三角形でテセレーションされている必要はありません。
最良の結果を得たいのであれば、 Muscle Solidify SOP ノードには備わっていない テセレーション品質 を制御するパラメータがRemesh SOPノードにはあるので、外部でそれを使用して入力サーフェスを三角形に変換した後に四面体化することを推奨します。
Warning
どれかの四面体に体積が非常に小さいものがあると、ソルバが失敗する可能性があります。
微小な四面体が検出されると、このノードから警告が表示され、その四面体がtiny_tetsというグループに出力されます。
これらは通常では薄い部分や鋭い部分のサーフェス付近で発生します。
リメッシュ設定を調整しても(Iterationsを増やしたり、Max Tet Sizeを減らしたりなど)問題が解決しない場合は、Muscle Solidify SOPの前に、 Use Minimum Thickness を有効にしたMuscle Adjust Volume SOPを使用してみてください。
Warning
ソリッド四面体ジオメトリに変形を加えると、 反転した四面体 (隣接コンポーネントが重なり、マイナスの符号の体積を持つ四面体)が生成されてしまう可能性があります。 反転した四面体が含まれたソリッドジオメトリを使用した場合、うまく行くMuscleシミュレーションを生成することはできません。
How-to ¶
| To... | Do this |
|---|---|
|
Muscleの挙動を最適化するために、内部および表面の四面体構造を修正する |
|
|
Muscle四面体化処理を複数のプロセッサコアに分散させることで、パフォーマンスを向上させる |
必要に応じて、 |
|
自動または手動によるサーフェスリメッシュを使用する |
自動によるサーフェスリメッシュ
手動によるサーフェスリメッシュ
Note Muscle Solidify SOPとRemesh SOPでは、Min Size/Max Sizeのパラメータの順序が逆になっています
|
|
シミュレーションエラーを引き起こす可能性のあるMuscleジオメトリの自己交差を修正する |
|
|
ファイルを開いた時に再クックされないようにMuscle Solidifyの結果をキャッシュ化する |
|
アトリビュート ¶
|
|
primitive |
Muscleの四面体の外側の厚み(四面体の層)を測定して格納します。 これは、Muscle系の拘束が取り付け強度を可変させる際に使用されます。 |
|
|
point |
Muscle全体の厚みを測定して格納します。 これは、Thickness ThresholdなどのMuscleプロパティが筋肉のどの部分が腱なのかを決定する際に使用されます。 |
|
|
point |
Muscleの静止位置または Tポーズ 姿勢を設定して格納します。 |
パラメータ ¶
Max Tet Size
個々に生成される四面体の上限サイズを設定します。 正四面体の体積は、 辺の長さ で求まります。 正四面体の辺の長さから Muscle Solidify SOP で生成される四面体の最大体積が求まるので、 Max Tet Size には、その正四面体の辺の長さを指定します。
Muscleの表面の三角形のサイズから内部四面体のサイズが必ずしも求まるわけではありません。 現在の Max Tet Size 設定次第でMuscleの表面の三角形のサイズを大きく、内部四面体のサイズを小さくすることができます。
下図の例では、表面の三角形のサイズは一定なままで、内部四面体のサイズと数は Max Tet Size 設定次第で変わります。
Use Local Feature Size
サーフェス上の三角形のサイズに基づいて、サーフェスの四面体のサイズを決定します。
Local Feature Scale
三角形のサイズに乗算されるスケール係数で、これによってサーフェス上の四面体のサイズが決定されます。
At Most One Surface Face per Tet
このオプションは、各四面体が最大1つの三角形フェースを四面体メッシュのサーフェスに寄与することを保証します。 つまり、四面体メッシュサーフェス上の目立った三角形を単一四面体のフェースにすることはできません。 このオプションは、四面体メッシュ上のUV座標などのVertexアトリビュートを維持したい時に役立ちます。
T-Pose
静止位置または Tポーズ として使用するMuscleジオメトリポーズを指定します。 Muscleは、四面体化した時点でTポーズ位置にある必要があります。
Use Initialization Frame
指定した Initialization Frame におけるMuscleジオメトリポーズを使用します。
From Attribute
指定した T-Pose Attribute で定義されたMuscleジオメトリポーズを使用します。
Initialization Frame
入力Muscleジオメトリを評価し、それを静的な状態に維持しつつ、四面体メッシュに変換するフレーム番号を指定します。
デフォルトでは、この Initialization Frame にはプレイバックバーの範囲の最初のフレーム($FSTART)が設定されています。
このパラメータは、 T-Pose が Use Initialization Frame に設定されている場合にのみ利用可能です。
T-Pose Attribute
入力Muscleジオメトリを評価し、それを静的な状態に維持しつつ、四面体メッシュに変換するTポーズが格納されたアトリビュートの名前を指定します。
デフォルトでは、このアトリビュートはtposeです。
このパラメータは、 T-Pose が From T-Pose に設定されている場合にのみ利用可能です。
Enable Multithreading
有効にすると、このノードは、スレッド毎に1個のmuscle_idをシステムのマルチスレッド能力に最大限に割り振ることで同時にすべてのMuscleの四面体化を試みます。
この処理は、順次的な処理よりも非常に高速です。
Enable Multithreading はデフォルトで オン になっています。
無効にすると、このノードは、順々にMuscleを1個ずつ四面体化して行きます。
この処理は、muscle_id順に繰り返して、1個のMuscleの四面体化が完了するのを待ってから次のMuscleを処理します。
Interpolate Point Attributes
サーフェスのPointアトリビュート値を内部へ転送します。
Point Attribute Method
Pointアトリビュート値を内部へ転送する方法。
Closest Surface Location
各内部ポイントには、最も近いサーフェス位置のアトリビュート値を使用します。
Smoothly Varying
内部ポイントは、サーフェスのアトリビュート値を可能な限り滑らかに補間します。 サーフェスに近い内部ポイントは、最も近いサーフェスのアトリビュート値とかなり正確に一致します。 内部のより奥にある値は、互いに混ざり合います。
サーフェスのリメッシュ ¶
リメッシュ処理を制御するための方法が2つあります: 内部でのリメッシュと外部でのリメッシュ。
外部でリメッシュを行なう場合、このMuscle Solidifyノードを使用する前に、リメッシュ処理を完了させてください。 外部でRemesh SOPを使用する場合、Muscle Solidify SOPとRemesh SOPでは、Min/Max Sizeパラメータの順番は逆です:
-
Muscle Solidify: Min Size → Max Size
-
Remesh SOP: Max Size → Min Size
-
内部でのリメッシュ(デフォルト):
-
このノードのビルトインのリメッシュ設定を使用することで、操作が簡素化されます。
-
自己交差を自動的に処理します。
-
Remesh Surfacesパラメータから制御します。
-
-
外部でのリメッシュ:
-
コントロールが多い外部の
Remesh SOPを使用します。
-
自己交差を手動で制御する必要があります。
-
サーフェスのテセレーションを細かく制御することができます。
Remesh Surfaces
有効にすると、入力Muscleサーフェスが三角形に変換されます。
以下のパラメータは、各Muscleサーフェスの三角形のサイズと数を制御します。
Note
四面体サイズの調整は、計算負荷が高くなってしまいます。 この処理は1度だけ実行すれば済むので、パフォーマンスを良くしたいのであれば、その結果をキャッシュ化することを推奨します。
Iterations
反復回数を増やすと、生成されるメッシュの品質は向上しますが、時間がかかります。 反復回数が多すぎると、形状やアトリビュートの保持に悪影響を及ぼす可能性があります。 最初の数回の反復は、それ以降の反復よりも処理に時間がかかりますが、それ以降の反復では得られる効果が徐々に減少していきます。
Min Size
Muscleピースの表面上の三角形の目標とする最小エッジ長。この値を上げると三角形が大きくなります。
Max Size
Muscleピースの表面上の三角形の目標とする最大エッジ長。この値を下げると三角形が小さくなります。
Relative Density
Muscleピースの表面上の三角形のサイズと数を決めます。 値が大きいほど、サイズが小さくて数が多い三角形が生成されます。 1未満の値は、Muscleピースの表面上に欠落/粗末な結果を招きます。 Gradation は、 Relative Density の効果も緩めます。
Gradation
ある表面三角形から隣の表面三角形までの変化を許容するエッジ長の割合。 値が大きいほど生成される三角形が少なくなりますが、Muscleピース表面の全体的な品質も下がります。
Re-Transfer Attributes from Source Mesh
リメッシング後、ソースメッシュからアトリビュートを転送します。 これを行なわないと、リメッシング処理によって既存のアトリビュートの精度が変わる可能性があります。
-
入力 ¶
Input 1
サーフェスを四面体メッシュに変換するMuscleジオメトリ。
入力Muscleジオメトリ上にmuscleidアトリビュートもtposeアトリビュートも存在しなかった場合、 Muscle Solidify SOP は以下の事を行ないます:
-
tposeアトリビュートを作成し、Initialization Frameにおけるジオメトリのポーズの値を設定します。 -
入力ジオメトリ内の繋がったプリミティブの集合体(Muscle)毎に
muscle_idアトリビュートを作成し、そのアトリビュートにデフォルトのMuscle ID(例えば、muscle_0,muscle_1,muscle_2など)を割り当てます。
出力 ¶
Output 1
-
Muscle毎に静的な四面体メッシュ。
-
maxthicknessPointアトリビュートとmusclethicknessPrimitiveアトリビュート。
| See also |