Mecanimでモーションフェードを有効にする
最終更新: 2020年1月30日
このページでは、CubismのモデルにMotionFadeを利用し、UnityのMecanimで再生したアニメーションにCubismのフェードを適用させる手順を説明します。
以下は「SDKをインポート」を行なったプロジェクトに追加することを前提としています。
概要
motion3.jsonに設定されたモーションフェードやパラメータフェードなどのフェード機能をUnity上で利用するには、Cubism SDK for Unity では「MotionFade」を利用します。
Cubismのフェード機能を使用すると、モーションとモーションが切り替わる際のブレンド比率がカーブを描いてなめらかに切り替わったり、特定のパラメータのみ切り替わる時間を変えたりすることができます。
フェード機能の詳細については 「フェード値の設定」をご覧ください。
Unityエディターメニューの「Live2D/Cubism/OrignalWorkflow/Should Import As Original Workflow」をチェックした状態でインポートしたモデル
である場合、モデルにMotionFadeが設定されます。
上記の設定をしていないモデルにMotionFadeを利用する場合、以下の手順を行います。
- CubismFadeControllerをアタッチ
- 「モデル名.fadeMotionList」を設定
- AnimatorControllerの各レイヤーにCubismFadeStateObserverをアタッチ
1. CubismFadeControllerをアタッチ
モデルのルートとなるGameObjectに、フェードを制御する「CubismFadeController」をアタッチします。
– Cubism Fade Motion List:「モデル名.fadeMotionList」を設定します。詳細は手順の2で説明します。
2. 「モデル名.fadeMotionList」を設定
モデルを選択し、InspectorビューからCubismFadeControllerの「Cubism Fade Motion List」に、「モデル名.fadeMotionList」をドラッグ・アンド・ドロップします。
※「モデル名.fadeMotionList」はAnimationClipのInstanceIdと「.fade」アセットを関連付けてリストにまとめたアセットです。
※ 「.fade」アセットはモーションデータを保存するアセットです。motion3.jsonから自動生成されます。
3. AnimatorControllerの各レイヤーにCubismFadeStateObserverをアタッチ
AnimatiorControllerを選択し、Animatorウインドウで各レイヤーのInspectorビューに「CubismFadeStateObserver」をアタッチします。
以上でMotionFadeを利用してフェードを制御する設定は完了です。
この状態でSceneを実行すると、アニメーションがフェードする際にCubismEditor上で設定したフェード値が適用されます。
以下はTransitionの値を0にしたAnimator Controllerを、MotionFadeを設定したモデルとしないモデルで再生したものです。
左はMotionFadeを設定していないため、Transitionに設定した0秒で終了しています。
右はMotionFadeを設定しているため、AnimatorによるTransitionをCubismのモーションフェード、パラメータフェードで上書きしています。
※ CubismFadeStateObserverがアタッチされてないレイヤーのアニメーションフェードはTransitionの設定でフェードします。