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