在 3D 建模应用程序(例如 Autodesk® Maya®)中设置好混合形状后:
0 表示混合形状没有影响。100 表示混合形状具有最大影响。要创建混合动画,请执行以下操作:
通过调整关键帧和混合权重来创建所需的动画。
要预览动画,请在 Editor 窗口或 Animation 窗口中单击 Play。
也可以使用 GetBlendShapeWeight 和 SetBlendShapeWeight 等函数来通过脚本设置混合权重。
要检查网格有多少混合形状,请使用 blendShapeCount 变量。
以下代码示例展示了连接到具有三个或更多混合形状的游戏对象时,如何随着时间推移将默认形状与其他两个混合形状混合在一起:
using UnityEngine;
using System.Collections;
 
public class BlendShapeExample : MonoBehaviour
{
    int blendShapeCount;
    SkinnedMeshRenderer skinnedMeshRenderer;
    Mesh skinnedMesh;
    float blendOne = 0f;
    float blendTwo = 0f;
    float blendSpeed = 1f;
    bool blendOneFinished = false;
    void Awake ()
    {
        skinnedMeshRenderer = GetComponent<SkinnedMeshRenderer> ();
        skinnedMesh = GetComponent<SkinnedMeshRenderer> ().sharedMesh;
    }
    void Start ()
    {
        blendShapeCount = skinnedMesh.blendShapeCount; 
    }
    void Update ()
    {
        if (blendShapeCount > 2) {
            if (blendOne < 100f) {
                skinnedMeshRenderer.SetBlendShapeWeight (0, blendOne);
                blendOne += blendSpeed;
            } else {
                blendOneFinished = true;
            }
            if (blendOneFinished == true && blendTwo < 100f) {
                skinnedMeshRenderer.SetBlendShapeWeight (1, blendTwo);
                blendTwo += blendSpeed;
            }
        }
    }
}