BoneClothによるスカート

 

概要

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

通常スカートを履いた人体モデルでは、スカートを制御するためのボーンが組み込まれていることが多いです。
BoneClothではこのスカートボーンを動かすことで揺れを表現します。

MagicaClothにはMeshClothもあり、これを使えばメッシュの頂点単位でクロスシミュレーションを行うことも可能です。
実際MeshClothの方が様々な点でクオリティが高くなります。
しかし、BoneClothにはMeshClothに比べて遥かに軽量でパフォーマンスが優れている最大の利点があります。

スカートボーンの確認

まず事前にスカートのボーンを確認しておきます。

今回使用するモデルには下の画像のようにボーンが組み込まれていました。

まず、このボーンが適切な位置と間隔で組み込まれているか確認します。
もしボーンの位置がスカートの形状から逸脱していたり、ボーンの間隔があまりに空いている場合は、衝突判定時の精度が著しく低下します。
最低でも上図の程度のボーン間隔が必要です。
もしこの問題がある場合には、BoneClothではなくMeshClothによる頂点ベースのスカート制御を行うほうが良い結果が得られます。

 

BoneClothの組み込み

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

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

 

World Influence に腰ボーンを指定

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

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

 

Near接続で横同士のボーンを接続する

BoneClothでスカートを表現する時に最も重要なのがこの作業です。
通常スカートのボーンは親子構造により縦には連動していますが横には連動していません。
スカートは隣接する横のボーンの動きに合わせて各パーティクルが連動するため、ボーン同士を横につなぐ必要があります。
また、この横同士のボーンを接続しないと衝突判定の精度が著しく低下します。

この設定は Restore Distance の Near Point パラメータにより行います。

この設定をONにしてクロスデータを作成してください。
どこまでの距離と深さのボーンを繋ぐかは[Near Max Connection]と[Near Max Depth]および[Near Point Length]で制御します。
これはボーンの形状に依存するため、少し試行錯誤が必要です。

今回のモデルでは次のように接続しました。

画像の薄い紫のラインがNear接続による復元ラインで、オレンジのラインがボーンの親子構造による復元ライン(ローテーションライン)となります。

Near接続のラインはクロスモニターの[Near Distance Line]をONにすることで確認できます。

 

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

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

BoneClothのローテーションラインは単純にTransformの親子構造から自動生成されます。
例えば今回のスカートのボーン構造ではローテーションラインは次のようになります。

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

 

Clamp Rotationの設定

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

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

 

Restore Rotationの設定

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

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

 

コライダーの設定

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

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

 

動作テスト

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

 

めり込みの防止

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

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

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

(3)回転補間の調整

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

Fixed Non-Rotation ONにすると固定パーティクルが一切回転しなくなります。
Line Avarage Rotation ONにするとボーンの回転を接続する親子構造からの平均回転に補間します。

モデルによりスカートのボーンのウエイト付けは様々なタイプがあるため、この2つのチェックを組み合わせることで形状やめり込みが改善する場合があります。

(4)Surface / Collider Penetrationの設定

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

 

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