BoneClothの使い方

はじめに


ここからはMagicaClothの使い方についてのガイダンスとなります。
各機能について少しずつ順を追って説明していきます。
解説を円滑に進めるために各項目についての詳細説明は省きます。
詳細については別途リファレンスページを参照してください。
まずは最も使用頻度の高いBone Clothから始めましょう!

 

BoneClothとは?


BoneClothはUnityのTransform構造を元にクロスシミュレーションを行う仕組みです。
メッシュにボーンが組み込まれた髪やアクセサリーを揺らすのに最適です。

  • Transformを操作することで揺れを表現します
  • 処理負荷が低いため大量に利用することが可能です

 

BoneClothの導入


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

まずキャラクターにMagicaClothコンポーネントを追加します。
キャラクターを選択しHierarchyウインドウで右クリックメニューを開きます。
次のようにメニューからCreate Other/Magica Cloth2/Magica Clothを選択してください。

これでMagicaClothゲームオブジェクトが生成されます。

MagicaClothコンポーネントの配置場所については特に制限は無いため自由に配置してください。

 

インスペクター概要


MagicaClothのインスペクターは次のように4つのブロックから構成されています。
…情報ウインドウ
…シミュレーション対象の設定
…動作パラメーター設定
…SceneViewへのギズモ表示設定

数は多いですが設定に関係するのは青と緑の部分だけです。
まず青の部分でシミュレーション対象の設定を行い、次に緑の部分で揺れの動作を設定するという流れになります。

 

BoneClothの利用設定


最初に行うことはコンポーネントのタイプをBoneClothに変更することです。
次のようにCloth Typeを[Bone Cloth]に変更してください。

これでインスペクターがBoneCloth用に切り替わります。

 

Transformの設定


BoneClothにシミュレーションの対象となるTransformを登録する必要があります。KAGURAでは次のように腰帯用に10個のTransformが存在しています。

BoneClothではこのうち階層の起点となるTransformのみを登録します。
腰帯では[DB_Wing_01_L]と[DB_Wing_01_R]の2つのTransformになります。

この2つのTransformをRoot Bonesのリストに追加してください。

この時点でSceneビューには次のように赤と白の球と水色のラインでTransform構造が可視化されます。

この赤と白の球はシミュレーション頂点の属性を表しています。
そして水色のラインはTransformの接続構造を表しています。

 

ギズモの表示切り替え


シーンビューに表示されるギズモの種類はインスペクターの一番下にあるGizmosパネルで切り替えが可能です。
Enableチェックを外すとギズモが表示されなくなるので注意してください。
詳細については別ページで解説します。

 

頂点属性とペイント


MagicaClothではシミュレーション頂点は3つの行動属性に分かれます。

固定 オリジナル位置から移動しない頂点
移動頂点を繋ぎ止めるために必要です
移動 白 or 自由に移動する頂点
視認性のためペイント中は緑で表されます
無視

シミュレーションから完全に無視される頂点

BoneClothではRoot Bonesに追加されたTransformを固定属性に設定し、それ以外を移動属性に自動的に設定します。
この設定を変更したい場合は頂点属性を手動で書き換えることも可能です。
その場合は次のようにペンマークをクリックして頂点ペイントモードを立ち上げます。

シーンビューにペイントウインドウが表示され頂点属性を変更することができます。

このガイドでは頂点ペイントについて詳しく説明しません。
頂点ペイントについてはMeshClothの使い方で詳しく解説します。

 

パラメータ設定


Transformと頂点属性の設定が終われば後は動きを制御するパラメータを設定するだけです。
このパラメータが理想の動きを実現するために欠かせない重要な項目となります。
しかしインスペクターを見てわかるようにパラメータは数が多く全体を把握するにはある程度の経験と慣れが必要です。
そのため、最初は予め用意されたプリセットを使い簡単にセットアップするのが良いでしょう。
これはインスペクターの[Preset]メニューから選択可能です。

Presetボタンを押し[tail]プリセットを選んでください。

これでtailのプリセット内容がパラメータに展開されました。

 

動作確認


後はUnityエディタのPlayボタンを押すだけです。
それでは実行してみましょう!
実行中にキャラクターを動かして腰帯が揺れていれば成功です!

 

実行時の遅延


実行に関して触れておくべき事項が1つあります。
MagicaCloth2ではVer1と異なり実行時にクロスデータがその場で作成されます。
このクロスデータの作成はバックグラウンドスレッドで行われますが少し時間が掛かります。
そのためキャラクターが登場してから実際にシミュレーションが開始するまでに数フレームの遅延が発生することになります。
この点を覚えておいてください。

 

この次は?


今回は簡単にBoneClothの実行まで行いましたが、理想の動きに近づけるにはまだ多くの作業が必要です。
まずはMeshClothの使い方について読み進めてください。
メッシュを利用したクロスシミュレーションと頂点ペイントについて解説されています。