miércoles, 11 de junio de 2014

Unity: inconveniente con "the animation clip used by the animation component must be marked as legacy" y script para animación

Para el uso tradicional de animaciones en Unity nos encontramos con el siguiente mensaje de error: "the animation clip used by the animation component must be marked as legacy" esto indica que el método del script está llamando a una animación la cual no es "legacy" sino que se encuentra como "mecanim".




Este inconveniente se da desde las versiones superiores a 4.3 en Unity.

En mi caso he querido hacer que al ingresar a la zona sensible de un cubo, este tenga una ligera animación.

El script usado es el siguiente en JS
------------------------------------------------------------------------
var  objeto: GameObject; //Objeto que se desea animar
var animacion : String; //animación a efectuar

function OnTriggerEnter(){
objeto.animation.Play(animacion);
}
------------------------------------------------------------------------

Este script lo debe de usar la zona sensible a la cual el player ingresará, y las dos variables deben de ser llenadas con el objeto que se desea animar. El objeto que se desea animar debe de tener la propiedad de BoxCollider (o cualquier otro tipo de collider) el mismo que debe de tener activo la opción Is Trigger, y además debe de tener un componente de "Animation" con la animación que se desea ejecutar.


Ahora vamos a revisar el mensaje de error que nos sale al momento de ejecutar y nos indica que la animación no es "Legacy". 


Al visualizar este mensaje debemos de seleccionar la animación, ir al menu de la parte superior del Inspector, dar clic y seleccionar Debug.


Luego cambiar en el tipo de animación de 2 (mecanim) que viene por defecto desde la versión 4.3 en adelante a 1 (legacy).

Y con ese cambio solucionado el inconveniente. Ya no sale el mensaje de error, y se efectúa la animación al entrar a la zona sensible.

Información adicional: El sistema de animación Legacy es un sistema previo al Mecanim, y es compatible con versiones anteriores de unity y por lo tanto todavía está disponible. Este sistema también es conocido como de acciones heredadas.
El sistema Mecanim es más actualizado y dispone de fácil flujo de trabajo y configuración de las animaciones de personas humanoides (en este caso no aplicaba), tiene también la posibilidad de aplicar animaciones de un modelo de personaje a otro, vista previa de las animaciones.

En lo personal he trabajado con Mecanim para animación de personajes, y con Legacy para animación de objetos en el juego como bloques, esferas y cualquier otra cosa que no son personajes.

No hay comentarios:

Publicar un comentario