VRM - humanoid 3d avatar format for VR
  •  Use BlendShape(en)
  • BlendShapeを操作する

    スクリプトから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(); // 蓄積した値をまとめて適用する
    VRM - humanoid 3d avatar format for VR