BoneClothによるスカート

 

概要

ここではBoneClothを使用したスカートの設定例を解説します。
すでにBoneClothの設定方法は習得済みで勧めますので、まだの場合はBoneClothスタートガイドを一読してください。

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

MagicaClothにはMeshClothがあり、メッシュ頂点単位でクロスシミュレーションを行うことも可能です。
しかし、BoneClothにはMeshClothに比べて遥かに軽量でパフォーマンスが優れている最大の利点があります。

 

スカートボーンの確認

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

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

まず、このボーンが適切な位置と間隔で組み込まれているか確認します。
もしボーンの位置がスカートの形状から逸脱していたり、正しく頂点ウエイトが設定されていない場合は動作が不安定になる可能性があります。
また、ボーンの間隔があまりに空いている場合は、衝突判定時の精度が低下する問題もあります。

BoneClothの組み込み

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

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

 

ボーン形状からメッシュを作成する

BoneClothでスカートなどの形状を揺らす場合には、縦だけではなく横同士の接続がとても重要になります。
横のボーン同士を接続することでスカートがメッシュ形状となり、これにより相互作用が引き起こされ動作がより自然なものになります。
また、衝突判定も強固になります。

横同士のボーンを接続して、メッシュの形状を作成するには次の接続モードを[Mesh]に設定します。

これによりスカートのボーンから自動でメッシュデータが作成され接続されます。

画像の紫のラインが作成されたメッシュ構造です。

 

WorldInfluenceに腰ボーンを指定

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

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

 

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

クロスパラメータのClampRotatin / RestoreRotation で重要となるのがこのローテーションラインです。
ローテーションラインは固定頂点から移動頂点の終点に伸びるラインで、このラインを基準に回転角度制御を行っています。
ローテーションラインはデータ作成時に自動的に生成されます。
例えば今回のスカートのボーン構造ではローテーションラインは次のようになります。

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

 

ClampRotationの設定

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

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

 

RestoreRotationの設定

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

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

 

コライダーの設定

後はコライダーを追加していきます。
まずは両足にカプセルコライダーを追加し、必要ならばお尻や腰回りのコライダーを追加してください。

 

めり込みの防止

スカートなどは特にコライダーへのめり込みを防止する必要があります。
このときに活躍するのがPenetration機能です。
これは予めパーティクルごとに近接のコライダーの情報を記憶しておき、実行時にそのコライダーの裏面に回り込むのを防止します。
Penetrationの詳細は次のページを参照してください。

突き抜けの防止

今回のスカートには次のように設定しました。

これにより激しい動きを行ってもパーティクルがコライダーを突き抜ける問題がほぼ改善します。

 

動作テスト

設定が完了したら[Create]ボタンを押してデータを作成します。
あとは実際に実行してトライアンドエラーでパラメータを調整していきます。
パラメータは実行中にも変更可能なので、実際に動かしながら調整していくのが簡単です。

 

調整のヒント

スカートの動作が固いと感じる場合は、RestoreDistanceのStructStiffnessの値を下げてみてください。
またGravityを下げることで、動作が柔らかくなります。
Dragを上げることで重量感を出すこともできます。

 

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