操作する値の保存/復元を行う
最終更新: 2020年1月30日
概要
このページでは、CubismのモデルにParameterStoreを利用してパラメータの値とパーツの不透明度を保存/復元する手順を説明します。
以下は「SDKをインポート」「UpdateControllerの設定」を行なったプロジェクトに追加することを前提としています。
CubismParameterStoreについて
Unityエディターメニューの「Live2D/Cubism/OrignalWorkflow/Should Import As Original Workflow」にチェックを入れた状態でモデルをインポートした場合、生成するPrefabにはCubismParameterStoreコンポーネントが設定されます。
CubismParameterStoreは、AnimationClipが再生される前後でCubismモデルのパラメータの値やパーツの不透明度を復元、保存するコンポーネントです。
これを使用することで、他のCubismのコンポーネントがAdditiveやMultiplyといった相対的に値を操作するときに発生する不具合を回避することができます。
Cubismのコンポーネントが行うAdditiveやMultiplyのブレンドでの値操作は、直前のフレームで行った値操作がリセットされていることを前提とした仕様になっています。
AnimationClipによって値が上書きされるのであれば、直前の値操作は上書きされるためCubismのコンポーネントによる値操作は正常に動作します。
しかし、仮に再生されたアニメーションがその値を操作しない場合、直前に操作した値がそのまま次の更新時にも残ってしまい、計算する値が重複するため期待通りの動作にならないことがあります。
CubismParameterStoreは、アニメーションの処理直後のLateUpdate()のタイミングに、自身がアタッチされたモデルのすべてのパラメータ値を保存し、次のフレームのUpdate()で保存した値を復元します。
これによってアニメーションによって値が上書きされないパラメータに対してもコンポーネントから正常な操作ができます。
以下では従来方式で生成したモデルでパラメータの値とパーツの不透明度を保存/復元させる場合、以下の手順を行います。
※ ParameterStoreを利用するには「UpdateControllerの設定」が必要です。
CubismParameterStoreをアタッチ
モデルのルートとなるGameObjectに、値を保存/復元する「CubismParameterStore」をアタッチします。