(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

髪や胸、スカート等を簡単かつ自然に揺らせる Magica Cloth【Unity】【アセット】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 2019.4.14f1
Magica Cloth 1.10.2


はじめに

今回は髪や胸、スカート等を簡単かつ自然に揺らせるMagica Clothというアセットの紹介です!

Magica Cloth | Physics | Unity Asset Store


イメージとしては以下のような感じで、かなり自然な揺れものを実装する事が可能で、

ちょっと使ってみた感じ同系統の人気アセットDynamic Boneより簡単に使えます。

しかもドキュメントは日本語対応でかなり分かりやすいです。

ただし、Unity2018.4.0(LTS)以上でないと使えません。


※現在は後継のMagica Cloth 2が出ているので、今から使う場合はこちらがオススメです。

Magica Cloth 2 - Unity Asset Store


ちなみにVRで使う事も可能です。



なお、記事中では以下のアセットを使っています。

Dreamscape Nature : Meadows : Stylized Open World Environment | 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に登録します。


これで最初のようなスカートの動きになります。