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]。 更新処理が環境依存で変わるようで、ビルド後に挙動が変わったりして特定しにくいバグを埋めやすい。気を付けよう。

© 2019-2022 hassakulab.com, built with Gatsby