AnyPortrait > マニュアル > 「Mecanim」利用

「Mecanim」利用


1.0.4

ゲームを作成するとき、多くのゲームプロデューサはステートマシンを使用してアニメーションを作成します。
Unityで「Mecanim」がこのような開発プロセスで使用されます。
スクリプトの伝統的なアニメーションの制御とは異なり、状態マシンによってアニメーションが切り替わります。
バージョン1.0.4からAnyPortraitはUnityの「Mecanim」がアニメーションを制御する機能をサポートします。
「Animator」コンポーネントを使用する「Mecanim」システムは、基本的にはUnityのHumanoid3Dのモデルに最も適しています。
したがってAnyPortraitは「Mecanim」のすべての機能と互換性がありませんので、この点に注意してください。




まず、AnyPortraitでアニメーションを作成します。
従来の方法と同様に作成します。




Bakeダイアログボックスで 「Is Mecanim Animation」をチェックしてください。
AnyPortraitはアニメーションを「Animation Clip」に変換して保存するので、それらのアセットを保存するパスを設定する必要があります。




「Mecanim」を使用する方法で保存すると、自動的に「Animator」コンポーネントが追加されます。
Animator」コンポーネントが初めて追加されると、「Animation Controller」が自動的に作成されます。




「Animator」エディタを開くと、(1)State」が自動的に作成されます。
(2) 各「State」の「Motion」のソースである「Animation Clip」が作成され、設定されたパスに保存されます。




注意すべき点があります。
AnyPortraitは 「Mecanim」の 「Empty State」を認識しません。
したがって、 「Empty」という名前の生成された 「Animation Clip」を含む状態を使用する必要があります。
Empty state」を使用する場合は、必ず「Empty」という名前の「Animation Clip」を「Motion」として使用してください。




「Animator」エディタで 「Transition」などを設定して 「Animator」を編集します。
(「Sub-State Machine」と「Blend Tree」は正式にサポートされていません。)




Animatorにレイヤーを追加する


複数のアニメーションをレイヤーとしてセットアップして同時に実行できます。
「走ったりジャンプ中に銃を撃つ」のようなアニメーションを作成することができます。
AnyPortraitの既存のアニメーションスクリプトは、レイヤー機能をサポートし、「Mecanim」もでもそれをサポートします。
次のような方法でレイヤーを追加して構成することができます。




「Animator」では、レイヤーを追加してステートマシンを構成します。
基本的には、「マージしていないレイヤの状態」に対して「Empty state」を作成することをお勧めします。
上記のように、 「Empty」という名前の 「Animation Clip」を使用して 「State」を作成します。
また、 「Blending」と 「Weight」を設定します。




apPortraitインスペクタの「Mecanim」設定項目を確認してください。
ここで "Mecanim"情報を変更する必要があります。
(1) 「Refresh Layers」ボタンを押します。
(2) 作成したレイヤーが追加されていることがわかります。
レイヤーの追加、削除、または「Blending」モードが変更された場合は、常に「Refresh Layers」ボタンを押してください。






Animator Override Controller


Animator Override Controller」はメカさんの「Animator Controller」をそのまま使用しながらアニメーションクリップだけ交換することができる機能を提供します。
AnyPortraitで自動的に生成されたアニメーションクリップを利用して「Animator Override Controller」を適用する方法を、以下の説明で確認してみてください。
(「Animator Override Controller」には、「公式マニュアル」で詳細な説明を見ることができます。)




「Mecanim」が適用された二つのキャラクターがいます。
(1) スライムキャラクターには、 (2) 上記のようなステートを持つ「Mecanim」が作成された状態です。
(3) ドラゴンのキャラクターにはステートと同じように動作する「Mecanim」を「Animator Override Controller」を利用して実装してみましょう。




基準となるキャラクターのアニメーションと同じように、アニメーションクリップが用意されている必要があります。
アニメーションの長さなどは同じしなくてもかまいません。
「Mecanim」を使用するように設定して、それぞれ「Bake」をした場合は、アニメーションクリップが作成されていることです。




(1)Project」ウィンドウから右クリックをして「Create > Animator Override Controller」を押して、新しい「Animator Override Controller」アセットを作成します。




(1) 生成されたアセットを選択します。
(2)Controller」属性に基準となる「スライムキャラクターのAnimator Controller」を適用します。




スライムキャラクターのアニメーションに対応するドラゴンのキャラクターのアニメーションクリップをそれぞれ指定します。




(1) ドラゴンのキャラクターを選択します。
「Mecanim」オプションをオンにして「Bake」をしたら、「Animator」コンポーネントが作成されていることです。
(そうでなければ「Animator」コンポーネントを直接追加したり、Bakeを再する必要があります。)
(2)Controller」属性に、既存の「Animator Controller」の代わりに、先に直接作成した「Animator Override Controller」に置き換えて設定します。




現在のゲームを実行すると、スライムとドラゴンが同じステートマシンを共有しながら再生されるのを見ることができます。