はじめに
MagicaClothは2Dゲームで利用することも可能です。
ここではUnity標準の2DAnimationでの利用方法について解説します。
なお、正式に対応しているのは2DAnimationのみとなりますが、他の2Dシステムでも同様の設定で利用できると思われます。
更新モードの変更
最初にMagicaClothのシミュレーション更新場所を変更する必要があります。
通常はLateUpdateの後に更新されますが、2DAnimation利用時にはこれをLateUpdateの前に変更する必要があります。
これは2DAnimationの形状変更がLateUpdateで行われるためです。
Unityのイベント実行順序についてはライフサイクルを参照してください。
シミュレーション更新場所を変更するにはAPIを利用するか、もしくは次のようにMagicaSettingsコンポーネントをシーンに配置します。
UpdateLocationを”Before Late Update“に変更することで準備は完了です。
MagicaClothの設定
準備が整えば後は3Dと同じ要領でMagicaClothが利用可能です。
2DAnimationでの特別な設定などはありません。
次の動画は2DAnimationのモンスターの頭部にBoneClothを適用した例となります。
Transformの方向
2DAnimationでBoneClothを利用する場合は、各Transformを最終的にどの方向に向けるかが非常に重要になります。
これはRotationControlと呼ばれインスペクターの次の箇所で変更が可能です。
初期設定では親子関係を見てその平均角度に調整するようになっています。
2DAnimationでは各ボーンの影響ウエイトに合わせてこの値を適切に設定する必要があります。
詳しくはRotationControlを参照してください。
キャラクターの反転
一般的に2Dキャラクターを反転させるには2つの方法があります。
(1) キャラクターの向きを180度回転させる
(2) キャラクターのスケールをマイナスに設定して反転させる
MagicaClothでは(1)(2)の両方に対応しています。
ただし(2)はMagicaCloth2.8.0以上のバージョンが必要です。
次の動画は髪の毛にMagicaClothをセットアップし、キャラクター全体をマイナススケールにより反転させています。
反転時は位置・速度・慣性などがすべて反転され、まるで反転がなかったかのように振る舞うのが特徴です。