BlendShapeを操作する
Mon, Apr 16, 2018スクリプトからBlendShapeを適用する
var proxy=GetComponent<VRMBlendShapeProxy>();
// enumで呼び出し
proxy.SetValue(BlendShapePreset.A, 1.0f); // 0から1で指定
// stringで呼び出し
proxy.SetValue("A", 1.0f);
複数のBlendShapeをまとめて適用する
たとえば
Blink_Lが
- MeshAのeye_L=100
- MeshAのeye_R=1
Blink_Rが
- MeshAのeye_L=1
- MeshAのeye_R=100
で定義されている場合に両方を有効にする意図で下記のようにすると、後からセットしたものだけが適用されてしまいます。
proxy.SetValue(BlendShapePreset.Blink_L, 1.0f);
proxy.SetValue(BlendShapePreset.Blink_R, 1.0f);
この場合は、以下のようにできます。
proxy.SetValue(BlendShapePreset.Blink_L, 1.0f, false); // すぐに適用せずにたくわえる
proxy.SetValue(BlendShapePreset.Blink_R, 1.0f, false);
proxy.Apply(); // 蓄積した値をまとめて適用する