概要
Magica Clothには着せ替えのシステムがあります。
着せ替えシステムを使用すると、キャラクタに様々な衣装をアタッチすることが可能です。
例えば本体に様々な髪や衣服を追加/削除できるようになります。
この機能はMagicaClothのコンポーネントの有無に関係なく利用することができます。
AvatarとAvatarParts
着せ替えを行うにはAvatarとAvatarPartsの2つのコンポーネントが必要となります。
コンポーネント | 説明 |
MagicaAvatar | キャラクタの本体を管理します。 着せ替え元のキャラクタにはこのコンポーネントをアタッチしておく必要があります。 着せ替え以外にも利用されます。 |
MagicaAvatarParts | 着せ替えパーツを管理します。 着せ替え用に分離したアセットにはこのコンポーネントをアタッチしておく必要があります。 |
モデルを本体とパーツに分離する
ここでは「SDユニティちゃん」モデルを例にして着せ替えアセットの作成手順を説明していきます。
まず、モデルを本体(Avatar)とパーツ(AvatarParts)に分離する必要があります。
今回の例ではモデルを4つに分離してみました。
パーツ | コンポーネント | 説明 |
本体 | MagicaAvatar | キャラクタ本体です。 着せ替えの元となるため、アニメーションに必要な骨格のみとなります。 |
髪 | MagicaAvatarParts | 髪のパーツです。 |
顔 | MagicaAvatarParts | 顔のパーツです。 |
衣服 | MagicaAvatarParts | ボディのパーツです。 |
まずはモデルをこの4つのアセットに分離していきます。
本体
本体はアニメーションに必要なGameObjectのみを残して不要なものはすべて削除します。
もちろん必要なものがあればそのまま残しておいても問題ありません。
本体のアセットは次のようになりました。
髪
髪に必要なGameObjectとレンダラーのみを残して不要なものを削除します。
そして、髪を揺らすためにBoneClothと幾つかのコライダーを追加しました。
顔
顔も同じく不要なGameObjectとレンダラーを削除します。
衣服
衣服も同じく不要なGameObjectとレンダラーを削除します。
そして、スカートを揺らすためにRenderDeformer / VirtualDeformer / MeshCloth と幾つかのコライダーを追加しました。
本体にAvatarコンポーネントをアタッチする
準備が整ったら、まず本体となるアセットにMagicaAvatarコンポーネントをアタッチします。
MagicaAvatarは本体の着せ替え以外にも、本体の様々な情報を管理する核となるコンポーネントとなります。
本体アセットのトップに次のようにMagicaAvatarコンポーネントをアタッチしてください。
問題がなければ次のようにヒエラルキーにアイコンが付き、インスペクタが表示されます。
インスペクタに[No Problem]が表示されていれば問題ありません。
問題が発生している場合は、本体のGameObjectの名前が衝突しています。
着せ替えを行う場合は、GameObjectの名前により位置を検索するため、GameObject名が重複すると正常に動作しない可能性があります。
上の例では[bone_eye_L]という名前のGameObjectが2つ以上重複していることになります。
警告が表示された場合は、GameObjectの名前を変更し重複しないように再設定してください。
すべての設定が完了したらアセットをプレハブ化しておきます。
髪、顔、衣服にAvatarPartsコンポーネントをアタッチする
着せ替えのパーツとなる、髪、顔、衣服にはMagicaAvatarPartsコンポーネントをアタッチします。
本体と同じ用に、パーツアセットのトップに次のようにMagicaAvatarPartsコンポーネントをアタッチしてください。
問題がなければ次のようにヒエラルキーにアイコンが付き、インスペクタが表示されます。
インスペクタに[No Problem]が表示されていれば問題ありません。
問題が発生している場合は、本体と同じくGameObjectの名前が重複しています。
GameObjectの名前を変更して重複しないように再設定してください。
すべての設定が完了したらアセットをプレハブ化しておきます。
これで本体とパーツのセットアップは完了です。
サンプルとして本体と8つのパーツを用意
プロジェクトにはサンプルとして「SDユニティちゃん」の本体と8つのパーツを収録しています。
パーツは MaigcaCloth/Example (Can be deleted)/SD_Kohaku_chanzにあります。
参考として使用してください。
実行時の着せ替えテスト
通常では着せ替えを行う場合にはAPI(プログラム)の手続きが必要です。
しかし、プログラムを作成しなくとも簡単なテストが可能です。
まず、本体Avatarをシーンに配置しエディタを実行してください。
すると、Avatarのインスペクタが次のように変化します。
この[Drag & Drap]パネルにアバターパーツをドロップすると、簡単に着せ替えをテストすることができます。
試しに先程作成した髪パーツをドロップしてみましょう。
ドロップ後に本体に髪パーツがアタッチされたことが確認できるはずです。
また、Avatarインスペクタにも現在アタッチされてるパーツ一覧が表示されます。
本体のヒエラルキーを確認すると、画像のように本体に髪のアセットがマージされていることが確認できるはずです。
パーツを削除する場合はインスペクタの[Remove]ボタンを押します。
これで本体からアバターパーツのGameObjectが取り除かれます。
もしGameObjectが複数のパーツから参照されている場合は、その参照数が0になった場合のみ削除されます。
コライダーの結合
クロスコンポーネントのコライダーグループには[Merge Avatar Collider]チェックがあります。
このチェックがONの場合は、AvatarPartsがアタッチされると本体についてあるコライダーをマージします。
これにより本体に予めコライダーを配置しておき、そのコライダーをAvatarPartsのコンポーネントが利用できるようになります。
API
ゲームでは通常API(プログラム)により着せ替えを実行します。
アバターを操作するAPIについては次の API/MagicaAvatar ページを参照してください。
サンプルシーン
パッケージには着せ替えのサンプルとして[DressUpSample]シーンを収録しています。
実際の動作やAPIについてはこのサンプルを参考にしてください。
以上で、着せ替えのセットアップは完了です。