MeshClothの使い方

はじめに


このガイドはBoneClothの使い方の続きとなります。
そのためすでに説明された項目は省略して進めますので、このガイドの前にBoneClothの使い方を読むようにしてください。

 

MeshClothとは?


MeshClothはメッシュの頂点をクロスシミュレーションする手法です。
BoneClothよりもよりリアルな揺れを表現可能です。
ただしその分負荷が高くなります。

  • メッシュの頂点を操作することで揺れを表現します
  • メッシュにボーンが含まれていなくても利用可能です
  • 処理負荷が高いため主にデスクトップPCやハイエンドコンソール機向きです

 

MeshClothの導入


ここではサンプルにあるUnityChanKAGURAのスカートを例にセットアップを解説します。

まずBoneClothと同じくHierarchyの右クリックメニューからMagica Clothコンポーネントを追加します。

そしてCloth Typeを[Mesh Cloth]に変更してください。
これでインスペクターがMeshCloth用に切り替わります。

MeshClothのインスペクターは次のようにMain設定部分のみがBoneClothと異なります。
それ以外のパラメーターやギズモ表示設定はBoneClothとまったく同じです。

 

レンダーメッシュとプロキシメッシュ


MeshClothを扱う場合に重要な概念がプロキシメッシュです。
MagicaClothではレンダーメッシュ、つまり表示用メッシュをそのままシミュレーションに利用しません。
これは主に次の理由からです。

  • レンダーメッシュをそのまま利用すると頂点数が多すぎてシミュレーションの負荷が膨大になる
    (単純に見えるメッシュでも頂点数が1万を超えることが珍しくありません)
  • トライアングルの接続構造が大体においてシミュレーションに適さない
  • 表現の都合でメッシュが分割されているケースが多い
    (例:スカートの裏と表でマテリアルを分けるために分割など)

このような問題を解決するのがプロキシメッシュ(代理メッシュ)です。
プロキシメッシュはレンダーメッシュを元にシミュレーション用に頂点を大きく削減した仮想メッシュです。
このプロキシメッシュは実行時にメモリ上にのみ存在します。

次の図は元のレンダーメッシュ(上)と簡素化されたプロキシメッシュ(下)の関係です。

下段のプロキシメッシュは頂点が大幅に削減され形状が簡素になっているのが分かると思います。
MeshClothではシミュレーションはすべてこのプロキシメッシュで実行されます。
そしてその結果が元のレンダーメッシュにフィードバックされ画面に表示される仕組みとなっています。
これはとても重要な概念であるため覚えておいてください。

 

レンダーメッシュの設定


ではプロキシメッシュの元となるレンダーメッシュを登録していきましょう。

 

リダクション


★リダクションの重要性について説明

★2つのパラメータの役割について説明

シーンビューを見ながら調整

★スカートの完成したプロキシメッシュ図

 

頂点ペイント


BoneClothに比べてMeshClothの頂点ペイントは重要です。
それはBoneClothと違いMeshClothではパーティクル属性がすべて無効属性で初期化されているためです。
そのためMeshClothでは必ず頂点ペイントを行い各パーティクルの属性を決定する必要があります。

難しい説明はさておき、ここで行うべきことは固定属性と移動属性の区分けです。

★固定と移動の簡単な説明

頂点ペイントの起動

ペイントパネルの簡単な説明

塗りつぶし

★慣性されたスカートのペイント図

 

 

パラメータ設定


 

動作確認


 

この次は?


 

 

end.