この記事でのバージョン
Unity 2019.4.14f1
Magica Cloth 1.10.2
はじめに
今回は髪や胸、スカート等を簡単かつ自然に揺らせるMagica Clothというアセットの紹介です!
Magica Cloth | Physics | Unity Asset Store |
イメージとしては以下のような感じで、かなり自然な揺れものを実装する事が可能で、
ちょっと使ってみた感じ同系統の人気アセットDynamic Boneより簡単に使えます。
しかもドキュメントは日本語対応でかなり分かりやすいです。
ただし、Unity2018.4.0(LTS)以上でないと使えません。
ちなみにVRで使う事も可能です。
今週の #ピクシーファームVR 進捗!
— カン@ゲームクリエイター(Unity/VR/Switch/Steam) (@Kan_Kikuchi) 2021年7月24日
スカートや髪にMagica Clothを使ってみるなど。
(※よく揺れてる方がMagica Cloth使用)
多少調整は必要だけど、調整無しでこれなら揺れ物はMagica Cloth一択やな🤔#screenshotsaturday #VR #madewithunity#indiegame #solodev
Steamhttps://t.co/sBS5WdtEnD pic.twitter.com/rTgtXvQtST
なお、記事中では以下のアセットを使っています。
Dreamscape Nature: Meadows | 3D Fantasy | Unity Asset Store |
準備
Magica Clothを使うには最初にちょっとした準備が必要です。
なお、Unityのバージョンによって微妙にやり方が異なるので詳しくはドキュメントを参照の事。
(今回はUnity 2019.4.14f1を使用)
まずはお馴染みPackage Managerで、
Burstをインストールします。
続いてJobsもインストールします。
なお、AdvancedからShow preview packagesにチェックを入れる必要があります。
最後にMagicaPhysicsManagerというPrefabをHierarchyに設置します。
揺れ物の実装方法
ここからは本題の揺れ物の実装方法です。
Magica Clothにはボーン単体を揺らすBoneSpring、Meshの頂点を揺らすMeshSpring、
メッシュにボーンが組み込まれた髪などを揺らすBoneCloth等、
いくつもの機能があるのですが、今回は例としてMeshClothという
スカートなどの複雑な動きと衝突判定をシミュレーションする機能の実装方法を紹介します。
まず、モデルのアセットのRead/Write Enabledにチェックを入れます。
次にMagicaRenderDeformerというコンポーネントを
スカートのRendererと同じオブジェクトにAddします。
なお、以下の例のようにスカートと体のRendererが一緒になっていても大丈夫です。
さらにMagica Virtual Deformerというオブジェクトを作成し、
先程追加したMagicaRenderDeformerを登録します。
ここでCreateボタンを押すとデータが作成され、さらにOpen Cloth Monitorボタンを押すと、
Scene上で仮想メッシュのポリゴンの形状が表示されます。
上記の例のように細かいメッシュになると負荷が高くなってしまうため
以下の2つのパラメータを調整して許容出来るぐらいまでメッシュを荒くします。
(てきとうにメッシュを減らし、動きがおかしかったら増やしていく感じ)
次はMagica Mesh Clothを作成し、
先程作成したMagica Virtual Deformerを登録します。
さらにMagica Mesh ClothのStart Point Selectionボタンを押して、
各ポイントの調整を行います。
なおポイントの種類は3種類あり、緑が動くポイント、赤が動かないポイント、
灰色がそもそも無視する(処理しない)ポイントで、各色ボタンを押した後、
Scene上で各ポイントをドラックし、色を変える感じです。
色が設定し終わったらEnd Point Selectionを押すのも忘れずに。
各ポイントの動きはParametersから設定するのですが、細かい設定は難しいので、
とりあえずPresetから好きな設定を選び、Createを押してMesh Clothの生成を完了させます。
(あとは動きを見ながらParametersを調整する感じ)
最後にMesh Clothが衝突するコライダーを設定します。
コライダーはUnity標準の物ではなく、Magica Cloth特有の物があります。
これを手や足などのスカートにぶつかりそうな場所に配置し、
当たり判定を行いたいMagica Mesh ClothのCollider Listに登録します。
これで最初のようなスカートの動きになります。