gamebox

unityとかゲームとか

【unity】スカートはこれで決まり!「Magica Cloth」導入編(MeshCloth)【アセット】

unityの布アセット「Magica Cloth」マギカクロスを使ってみよう

スカートのアセット決定版「Magica Cloth」

足が貫通しない。動きがゆるふわで素晴らしい。破綻しにくいと超凄いアセットです。

この記事ではスカート(布)を動かす為の説明を書きます。

まずはGIFを御覧ください。

f:id:rgamebox:20200118075025g:plain

f:id:rgamebox:20200118080641g:plain

 

未だかつてここまで破綻(足貫通、ずり落ち、遅延など)なくスカートを再現できる仕組みがあっただろうか?いや。ない。

 

Magica Clothとは

◆アセットストア

 

 

◆公式サイト(マニュアル)

Magica Cloth – Magica Soft

 

◆概要
Magica Cloth(マギカ・クロス)はUnity Job system+Burstコンパイラにより動作する高速なクロスシミュレーション(揺れものアセット)です。


◆特徴
・Unity Job system + Burstコンパイラによる高速なクロスシミュレーション
・WebGLを除くすべてのプラットフォームで動作可能
・ボーンで駆動するBone Clothとメッシュで駆動するMesh Clothを装備
・Mesh Clothはスキニングメッシュ上でも動作可能
・簡単で直感的なインターフェースによりすぐにセットアップ可能
・スローなどの時間操作が可能
・フルソースコード付き

◆価格とバージョン
・25$ (2020/1/18現在)
・リリース日 2020/1/15(最近!)  ver 1.0.0

◆この記事で使用したunityバージョン
・unity 2019.2.6f1
・記述日 2020/1/18
・Magica Clothバージョン 1.0.0

アセット落とす前に準備してね

 まずはアセットをストアからダウンロードしたくなるけど、その前にいくつか準備必要です。

 公式のマニュアルに日本語で書いているのでこちらを御覧ください。

インストールガイド – Magica Soft

上記に日本語で書いてあるので、詳しくは書きませんがプロジェクト設定の変更とunityパッケージの導入が必要です。

※プレビュー版パッケージも使用しています。jobs

 

それが終わったらアセットをダウンロードします。

 

シーンの作成(コピー)

できるだけ簡潔に説明したいので、アセットのExampleシーンを流用します。

f:id:rgamebox:20200118104559p:plain

元のシーンは残したいので、

unityメニュー → File → Save As で”MagicaTestScene”の様な別の名前をつけてシーンを保存しましょう。

 

キャラ配置。この記事ではキャラクターはレオニスちゃんを使いますがどのキャラでも良いです

 

f:id:rgamebox:20200118104018p:plain

 

 https://booth.pm/ja/items/1561818
この記事ではBoothで販売されているロングスカートの可愛いキャラ、Project AQ様のレオニスちゃん(2500円)を使いますが、
unityちゃんの短いスカートやちっぱい動かしてもいいです。
meshを動かすので、モデルはなんでもよくって、腕自体を動かしてゴムゴムのダルシムにしてもいいです。

 

◆レオニスちゃんのパッケージを入れて、Hierarchyに配置。

シーンのunitychanの表示を消します。(参考にするのでDeleteはしちゃだめ)

そしてHierarchyレオニスモデルを選択して、missingのスクリプトをRemoveします。

これはVRCのスクリプトやDynamicBoneのスクリプトですが、ここでは使用しません。

いろいろな箇所、Armature以下などにあるので全部探して消してください。

f:id:rgamebox:20200118105615p:plain

 

あと、バグっているunity標準のclothを消します!

スカート爆発してますよね!? unityさん。

Skirtについてるclothコンポーネントを削除。
(そもそもunityのクロスがバグっていなければ皆幸せになれるのに…)

f:id:rgamebox:20200118110418p:plain

 

MagicaCloth設定開始:RENDER DEFORMERのセットアップ

前置きが少し長くなりましたが、いよいよアセットを本格的に設定します。

非表示にしたサンプルのunitychanが参考になります。

基本的には公式マニュアルのこちらをなぞればできます。日本語マニュアル素晴らしい!

MeshClothスタートガイド – Magica Soft

 

・SkirtにMagicaRenderDeformerをAdd Compornentします。

f:id:rgamebox:20200118111240p:plain

AddCompornentさえすれば何もしなくて良いです。Createボタンも押さなくてもよい。

 

VIRTUAL DEFORMERのセットアップ

次にVirtual Deformerをセットアップします。

これの説明をかんたんにすると、頂点全てを処理すると非常に重いので、近い頂点を結合した計算用の仮想クロスを作成する為の設定です。

ヒエラルキービューのレオニスを右クリックして

CreateOther→Magica Cloth Magica Virtual Deformerでアドコンポーネントします。

f:id:rgamebox:20200118112123p:plain

 

◆MagicaVirtualDeformerの設定

・RenderDeformerListに1をいれて、Skirtのモデルをドラッグ&ドロップ。

・OpenClothMonitorボタンを押して適応しているメッシュを表示

・MergeTriangleDistanceで結合する頂点の距離を調整。ここでは0.025を設定。
 ※画像は0.015ですが、0.025にしました

・Createボタンを押すと、MergeTriangleDistanceの設定に従った結合が行われます。

頂点が多く/少なくなりすぎないように値を調整して、クリエイトを何度か繰り返すのがよいです。

f:id:rgamebox:20200118112046p:plain

 

・ちなみにOpenClothMonitorで頂点結合情報が見られます

f:id:rgamebox:20200118112745p:plain

 

MESH CLOTHのセットアップ

上と同じ要領でメッシュクロスを追加します。

ヒエラルキービューのレオニスを右クリックして

CreateOther→Magica Cloth → Magica Mesh Clothでアドコンポーネント

f:id:rgamebox:20200118112804p:plain

◆AddされたMagicaMeshClothの設定。下の画像では2つのことをやっていて、

f:id:rgamebox:20200118113150p:plain

・Virtual Deformerに先程つくった、Magica Virtual DeformerをD&D
・スカートの揺れ方設定のLoadで、サンプルのスカート設定を読み込みます

 

動く頂点・動かない(フリーズさせる)頂点・関係ない頂点の設定

動かす頂点の設定。3Dツールのウェイトペイント的な感じで塗り塗りしていきます。

f:id:rgamebox:20200118113525p:plain

 ・InvalidPoint:布の動きとは関係のない頂点

・FixedPoint:固定させる為の頂点

・MovePoint:ひらひらさせる部分の頂点

の3つを使いわけて塗ります。

 

◆スカートモデルは殆どの部分が揺れるので、"Move Point"を選択して、Fillを押します。

f:id:rgamebox:20200118113950p:plain

・すると、全て動く緑色でペイントされます。

f:id:rgamebox:20200118114000p:plain

 

・一部の頂点を固定しないとスカートがストンと全て落ちてしまうので、上の方を固定します。

FixedPointを選択して塗っていきます。

f:id:rgamebox:20200118114325p:plain

 

注意点は2つ

・頂点を塗っている最中は視点を回転させられないので、一度EndPointSelectionを押してから、回転して全方向塗ります

 

・しっかり丁寧に塗りましょう。

一個でもおかしなFixedPointやMovePoint、InvalidPointがあると動きが破綻します。

 

スカートは殆ど可動部&固定部なので、”InvalidPoint"塗りはしていませんが、

揺れと全く関係のない箇所はInvalidで塗って処理負荷を下げてください。

 

 ◆頂点を塗り終わったら、Createを押しましょう。

すると、左上の様に揺れもの設定がなされます

f:id:rgamebox:20200118114917p:plain

 

 

モーションを動かす為のUIなどの設定

サンプルではModelControllerというのを使ってモーション切り替えを行っているのですが、もともとあったユニティちゃんに設定されているので、そこの設定を変えていきましょう。

f:id:rgamebox:20200118115201p:plain

 

◆次にUIのボタンの設定

NextボタンをレオニスちゃんのModelControllerのスクリプトの関数を呼ぶようにします。

f:id:rgamebox:20200118115452p:plain

 

◆Backボタンも上と同様に設定してください

 

◆レオニスちゃんにAnimatorの設定

アニメーターもサンプルに入っていた物を流用します。

UnityChanActionのアニメーターコントローラーを入れます。

f:id:rgamebox:20200118115733p:plain

 

初めての再生

再生してみます!

f:id:rgamebox:20200118120131g:plain

 

動いた! しかし…

動きは悪くないんですが、足が貫通しています…

もうちっとだけ続くんじゃ

 

コリジョンの設定

足がスカートを貫通しないように専用のコリジョンを追加します。

Magicaのコリジョンは単体ではオフセット座標を設定できないので、

レオニスちゃんのUpperLeg.Lの下に空のGameObjectを作成して、そのオブジェクトに

"MagicaCapsuleCollider"をアドします。

 

◆まずは左足のふともも部分から。

f:id:rgamebox:20200118121127p:plain

 

・パラメーターはこんな感じ。画像を参考にしてください。

f:id:rgamebox:20200118121328p:plain

 

◆右足も同じ様に設定

f:id:rgamebox:20200118121540p:plain

 

◆更に同様の作業で、左脛、右脛(足の下部)にもコリジョンを追加します。

LowerLegの下にオブジェクトを作ってカプセルコライダを追加してください。

どのボーンの下にあるか注意して、親子関係を間違えないようにしてください。

f:id:rgamebox:20200118121936p:plain

 

◆Magica Mesh Clothを再び選択して、CollderListを4に設定。

そして、上で作った4つのコリダーを登録します。

f:id:rgamebox:20200118175951p:plain

 

完成!

はい。足も抜けずにいい感じです。

お疲れさまでした。

f:id:rgamebox:20200118123017g:plain

 

このアセットが25$はホント安いので、皆さん買って作者に還元し、

さらなるバージョンアップに期待しましょう!

 

 

f:id:rgamebox:20200118123257g:plain

 

f:id:rgamebox:20200118123407g:plain



 

余談

冒頭で走っていた可愛い女の子はクラムちゃんです。

こちらもBoothで購入できます。

f:id:rgamebox:20200118125359p:plain

 

booth.pm