システム概要

ここではMagicaClothの構成やキーワードの説明を行います。
基本的にはこれらの事項を熟知する必要はありませんが、今後のガイドを読むためにある程度のキーワードを把握しておく必要があります。

Magica Clothの構成要素

MagicaClothは以下のコンポーネントから構成されています。
用途により使用するコンポーネントが変わります。

名称 アイコン 説明
MagicaPhysicsManager システム全体をコントロールするマネージャです。
物理演算の更新方法を制御します。
シーンに必ず1つ必要です。
MagicaBoneCloth ボーンクロス。
ボーン(Transform)を制御してクロスシミュレーションを行います。
すでにボーン入りの髪の毛などを揺らす場合に最適です。
負荷は軽いです。
MagicaBoneSpring ボーンスプリング。
ボーン(Transform)を制御してスプリングシミュレーションを行います。
ボーンによる胸揺れなどに最適です。
負荷はとても軽いです。
MagicaRenderDeformer レンダーデフォーマー。
モデルのメッシュを変形させるためのコンポーネントです。
MeshCloth/MeshSpring使用時には必須となります。
負荷は重いです。
MagicaVirtualDeformer バーチャルデフォーマ。
複数のレンダーデフォーマーを結合し頂点削減(リダクション)を行い、1つの仮想的なメッシュとして再構成されたものです。
MeshCloth/MeshSpringではこのバーチャルデフォーマーに対して変形処理を行い、その結果を各レンダーデフォーマーに反映することでメッシュの変形を行います。
MeshCloth/MeshSpring使用時には必須となります。

負荷は重いです。
MagicaMeshCloth メッシュクロス。
メッシュ頂点に対してクロスシミュレーションを行います。
頂点単位となるためボーンクロスには出来ない細かなクロス制御が可能です。
スカートなどの制御に最適です。
バーチャルデフォーマーと連動します。
負荷は重いです。
MagicaMeshSpring メッシュスプリング。
メッシュ頂点に対してスプリングシミュレーションを行います。
ボーンが入っていないメッシュの胸揺れなどに最適です。
バーチャルデフォーマーと連動します。
負荷は中程度です。
MagicaSphereCollider 球コライダー。
球形の物理衝突を検出しパーティクルの侵入を防ぎます。
MagicaCapsuleCollider カプセルコライダー。
カプセル型の物理衝突を検出しパーティクルの侵入を防ぎます。
MagicaPlaneCollider プレーンコライダー。
板状の物理衝突を検出しパーティクルの侵入を防ぎます。
プレーンは無限遠の面として扱われます。

 

Magica Clothの物理エンジン

MagicaClothの物理演算はUnityの物理エンジンとは完全に切り離された、独自の物理エンジンによって制御されます。
従ってUnityの物理システムとは一切干渉しません。

 

物理マネージャ

MagicaClothの動作にはシーンに1つMagicaPhysicsManagerコンポーネントが必要となります。
PhysicsManagerはクロスチーム全体の管理と、物理演算の時間管理を行います。

 

クロスチーム

物理制御を行う次の4つのクロスコンポーネントを「クロスチーム」と呼びます。

  • MagicaBoneCloth
  • MagicaBoneSpring
  • MagicaMeshCloth
  • MagicaMeshSpring

MagicaClothでは物理演算はクロスチームごとに独立して実行されます。
また各クロスチームはお互いに干渉しません。

 

デフォーマ

メッシュを変形するさせる機能を「デフォーマ」と呼びます。
MagicaClothではこのデフォーマをレンダラーに装着し、メッシュの頂点変形を実行します。
デフォーマはMeshCloth / MeshSpring では必須のコンポーネントとなります。

パーティクル

物理エンジンにより制御される1つ1つのポイントをパーティクルと呼びます。

 

サンプルシーン

各コンポーネントについての簡単なサンプルシーンが用意されています。
サンプルシーンの中身をみることで、各コンポーネントの大体の動きが把握できるかと思います。
サンプルシーンはExsample/Sceneフォルダにあります。

サンプルシーン名 説明
BoneClothSample ボーンクロスの簡単なサンプルです。
BoneSpringSample ボーンスプリングの簡単なサンプルです。
MeshClothSample メッシュクロスの簡単なサンプルです。
メッシュクロスがRenderDeformer/VirtualDeformerと連動していることに着目してください。
MeshSpringSample メッシュスプリングの簡単なサンプルです。
UnityChanClothSample UnityちゃんにBoneCloth/MeshCloth/MeshSpringを組み込んだサンプルです。
BoneClothは髪とリボンの制御、MeshClothはスカートの制御、MeshSpringは胸揺れの制御に使用されています。
VirtualDeformerが複数のRenderDeformerと連動していることに着目してください。

またExsampleフォルダはMagicaClothの実行には必要が無いため削除可能です。

 

プリセット

クロスを制御するパラメータには多くのプロパティがあり、最初からすべてを把握するのは困難です。
そこで、使用頻度の高いクロス制御(髪、小物、スカートなど)のパラメータをプリセットとして収録してあります。
クロスのセットアップではまずこのプリセットを読み込み、その上で動きを見ながら調整していくのが簡単です。
また、プリセットは独自に保存が可能なため、ユーザーが自分用のプリセットを作成し再利用したり、自身のプリセットを他のユーザーに配布することも可能です。
ビルドインのプリセットファイルはMagicaCloth/Presetフォルダに収録されています。

 

クロスモニター

各コンポーネントの状態や、現在の物理マネージャの状態を確認するために「クロスモニター」があります。

 

クロスモニターによりクロスチームやデフォーマの状態をSceneビューにギズモ表示することができます。
これはMagicaClothの調整には不可欠なツールとなります。
起動にはメニューの Tools/Magica Cloth/Cloth Monitor を選択するか、各コンポーネントの[Open Cloth Monitor]ボタンを押してください。

ギズモが見ずらい場合は、シーンビューをワイヤーフレーム表示に切り替えると見やすくなります。

バージョンの確認

MagicaClothのバージョンはメニューのTools/Magica Cloth/About により確認が可能です。