MeshClothによるスカート

 

概要

ここではMeshClothを使用したスカートの設定例を解説します。
すでにMeshClothの設定方法は習得済みで進めますので、まだの場合はMeshClothスタートガイドを一読してください。
(※MagicaClothは必ず最新バージョンを使用してください)

MeshClothではメッシュの頂点単位でクロスシミュレーションを行うことでリアルな揺れを表現できます。
次の動画はその効果を表しています、スカートの揺れに注目してください。

 

スカートメッシュの設定

まずはスカートのメッシュにRenderDeformerを割り当てます。

今回使用するモデルのスカートは上図のようにプリーツスカートとなっているため、細かい凹凸があります。

次にスカートのRenderDeformerをまとめたVirtualDeformerを作成します。
上記のように今回は元のメッシュに細かい凹凸があります。
このままのではシミュレーション時に近くの頂点が意図しない重なりを起こす場合があり、あまり良くありません。
また計算頂点が多いと無駄にパフォーマンスを浪費してしまいます。

そこでVirtualDeformerの設定を調整し、細かい凹凸が無くなる程度にリダクションを行います。
これにより計算頂点が減少するのと、まとめられた頂点は周囲の形状を保持するため形状が崩れにくくなります。
VirtualDeformerのリダクションは主に次の2つのパラメータから行います。

Merge Vertex Distance 特に制限なく近くの頂点をまとめます。
Merge Triangle Distance ポリゴンの構造に沿った形で近くの頂点をまとめます。
あまりポリゴンの形状を変えたくない場合に有用です。

最終的に次のようにVirtualDeformerを作成しました。

細かい凹凸がほとんどなくなっている点に注目してください。

 

MeshClothの組み込み

それではスカートのVirtualDeformerに対してMeshClothを設定します。
頂点ペイントを行い、固定点と移動点を設定します。

クロスパラメータの設定は、まずはプリセットを適用するのが早いです。
プリセットから[MeshCloth_Skirt]を選択して適用してください。
大体のパラメータが設定されます。

 

World Influence に腰ボーンを指定

必須ではありませんが、World Influenceパラメータの Influence Target に腰ボーンを指定しておくことをお勧めします。
これにより腰ボーンを中心として移動影響を制御できるようになります。

例えば Influence Targetに腰のボーンを割り当て、[Movement Influence]と[Rotation Influence]を低い値に設定すれば、本体が激しいアニメーションや移動を行ってもスカートがほとんど揺れなくなります。

 

ローテーションラインについて

クロスパラメータのClampRotatin / RestoreRotation で重要となるのがこのローテーションラインです。
ローテーションラインは固定頂点から移動頂点の終点に伸びるラインで、このラインを基準に回転角度制御を行っています。

MeshClothのローテーションラインは、VirtualDeformerのメッシュの形状と固定頂点と移動頂点情報から自動生成されます。
例えば今回のスカートのVirtualDeformerからは、次のようなローテーションラインが生成されました。

これはクロスモニターの[Rotation Line]にチェックを入れることで確認可能です。

 

Clamp Rotationの設定

必須ではありませんが、Clamp Rotationによりスカートが曲がる角度を制限しておいた方が良い結果が得られます。
これによりスカートの形状が保たれます。
今回は次のように設定しました。

これはローテーションラインの始点(固定パーティクル)は20度まで、先端は50度まで曲げられることを意味しています。
ただ、この制限よりも衝突判定による押し出しの方が優先順位が高い点に注意してください。

 

Restore Rotationの設定

これも必須ではありませんが、Restore Rotationによりスカートの曲がりをもとに戻す力を与えたほうが良い結果が得られます。
これによりスカートが常に元の形状を保とうとします。

値は低いですが0.012はかなり強い力で形状を元に戻します。

 

Restore Distanceの設定

スカートのRestore DistanceではBend設定を行い、なるべく形状を保つように設定した方が良い結果が得られます。

Bend設定を行うことで、ポリゴンの接続を1つまたいだ頂点と復元ラインが結ばれます。
これにより形状が崩れにくくなります。
今回は次のように設定しました。
画像の青いラインがBend接続ラインとなります。
(水色のラインはStructで元のポリゴン構造の復元ラインです)

MeshClothにおいてはNear接続はあまり意味をなしません。
すでにポリゴンの接続ラインに合わせてStruct復元ラインが追加されているためです。

 

Triangle Bendの設定

Triangle Bendは接続する2つのポリゴンの角度を元に戻す処理を行います。
これにより形状が崩れにくくなります。
MeshClothの場合、Triangle Bendはほぼ必須の機能となります。
ポリゴンの形状を強固に保ちます。
今回は画像のように強さ(Bend Power)を0.5にしましたが、形状を保ちたい場合は1.0でも問題ありません。

 

コライダーの設定

後はコライダーを追加していきます。
まずは両足のカプセルコライダーを追加し、必要ならば腰まわりのコライダーも追加します。
ここで重要なのが腰の上に大きな球コライダーを1つ追加することです。

これはスカートのパーティクルが激しい動きにより本体にめり込むのを防止する蓋の役目をします。
必須ではありませんが、なるべく追加しておいた方が無難です。

 

動作テスト

ここからは実際に実行してみてトライアンドエラーでパラメータを調整していきます。
パラメータは実行中にも変更可能なので、実際に動かしながら調整していくのが簡単です。

 

めり込みの防止

実行中にスカートが体や足にめり込む場合は、次の調整をテストしてみて下さい。

(1)コライダーの位置と大きさの調整

(2)パーティクルの大きさの調整

(3)回転補間の調整

回転補間は Rotation Interpolationパラメータで次の項目を設定できます。

Fixed Non-Rotation ONにすると固定パーティクルが一切回転しなくなります。
Line Avarage Rotation ONにするとラインの回転を接続する親子構造からの平均回転に補間します。
※ポリゴン構造では意味がありません。

(4)VirtualDeformerのリダクション調整

状況によってはシミュレーションするパーティクルの数が少なすぎる、もしくは多すぎる可能性もあります。
この場合はVirtualDeformerのリダクション設定を色々変えながら調整すると良い結果になる場合もあります。

(5)Surface / Collider Penetrationの設定

パーティクルが浸透できる距離を制限し、めり込みを防止します。
突き抜けの防止

 

以上でMeshClothによるスカートガイドは終了です。