UnityでLive2Dモデルのパラメータを直接設定する
2020/09/27
Live2D
Unity
CubismSdkForUnityでLive2Dモデルのパラメータを直接設定する方法。
環境
- Unity 2020.1.3f1
- CubismSdkForUnity-4.r.1
実装
CubismModelクラスがParametersフィールドにパラメータを持っているので、それを直接編集すれば良い。
private CubismModel mode;
private void LateUpdate(){
float value = 0.5f;
model.Parameters[3].Value = value;
}
Parametersの添え字は対象モデルの子オブジェクトのParametersにぶら下がっているオブジェクトの順番に依存している。
CubismParameterクラスはIdのゲッターを持っているので、例えば、modal.Parameters.First(p => p.Id == "ParamEyeLOpen").Value = v;
のようにすれば、名称指定で設定できる(もちろんパフォーマンス的には良くないのでキャッシュしようね)
パラメータの更新はAnimatorによっても変更されるので、更新をUpdateに書くと上書きされることがあるのでLateUpdateに書くことが推奨されている[1]。 更新処理が環境依存で変わるようで、ビルド後に挙動が変わったりして特定しにくいバグを埋めやすい。気を付けよう。