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を利用する場合、以下の手順を行います。

  1. CubismFadeControllerをアタッチ
  2. 「モデル名.fadeMotionList」を設定
  3. 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の設定でフェードします。

この記事に関するご意見・
ご要望をお聞かせください。