Version: 2018.4
Opciones Adicionales para los Blend Trees (Árboles de Mezclas)
Animator Override Controllers

Animation Blend Shapes

Preparando las Ilustraciones

Once you have your Blend Shapes set up in Autodesk® Maya®:

  • Exporte su selección a FBX asegurándose que la casilla de animación esté marcada y blend shapes debajo de deformed models esté marcado.

  • Import your FBX file into Unity (from the main Unity menu: Assets > Import New Asset and then choose your file).

  • Drag the Asset into the hierarchy window. If you select your object in the hierarchy and look in the inspector, you will see your Blend Shapes are listed under the SkinnedMeshRenderer component. Here you can adjust the influence of the blend shape to the default shape, 0 means the blend shape has no influence and 100 means the blend shape has full influence.

Cree Animaciones en Unity

También es posible utilizar la ventana de Animación de Unity para crear animaciones mezcladas, aquí están los pasos:

  • Open the Animation window under Window > Animation > Animation.

  • A la izquierda de la ventana haga click en ‘Add Curve’ y agregue un Blend Shape que estará debajo del Skinned Mesh Renderer.

De aquí usted puede manipular los keyframes y Blend Weights (pesos de la Mezcla) para crear la animación requerida.

Una vez usted haya terminado de editar su animación usted puede hacer click play en la ventana del editor o la ventana de animación para pre-visualizar su animación.

Acceso a través del Scripting

También es posible configurar los pesos de la mezcla a través de código utilizando las funciones como GetBlendShapeWeight y SetBlendShapeWeight.

Usted también puede revisar qué tantas blend shapes un mesh tiene al acceder la variable blendShapeCount al igual que con otras funciones útiles.

Este es un ejemplo de un código que mezcla una figura predeterminada a dos otras Blend Shapes a lo largo del tiempo cuando es adjuntada a un gameobject que tenga 3 o más blend shapes:

//Using C#
 
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;
                 }
 
          }
       }
}
Opciones Adicionales para los Blend Trees (Árboles de Mezclas)
Animator Override Controllers