El Animator Override Controller es un tipo de asse que le permite a usted extender un Animator Controller existente, remplazando la animación específica utilizada pero reteniendo la estructura original, parámetros y lógica.
Esto le permite a usted crear multiples variantes del mismo state machine (maquina de estado), pero con cada una utilizando diferentes conjuntos de animaciones. Por ejemplo, su juego puede tener una variedad de tipos NPC viviendo en el mundo, pero cada tipo (goblin, ogre, elfo, etc) tiene sus propias animaciones únicas para caminar, idling (sin actividad), sentarse, etc.
Al crear un Animator Controller “base” conteniendo la lógica para todos los tipos NPC, usted podría luego crear un override para cada tipo y soltar sus archivos de animación respectivos.
Para demostrar, aquí un asset típico Animator Controller:
Este representa un Animator Controller conteniendo una simple state machine (maquina de estado) con un blend tree (árbol de mezcla) controlando animaciones en cuatro direcciones, además de una animación idle (sin movimiento), que se ve así:
Para extender este state machine NPC general para que utilice animaciones únicas que solo apliquen a - digamos - un personaje de tipo ogre, usted puede crear un Animator Override Controller y soltar los clips de animación del Ogre como reemplazos a los clips de animación originales. El Ogre puede tener una diferente manera de idle (sin actividad) y moverse alrededor, tal vez con un movimiento más suave, pesado y más muscular. Sin embargo, al utilizar un Animator Override Controller, la lógica básica para cómo hacer una transición y mezclar entre estados de movimientos se puede compartir entre diferentes personajes con diferentes conjuntos de animación, reduciendo el trabajo requerido para construir y modificar en sí las state machines (maquinas de estado).
Para crear un nuevo Animator Override Controller, utilice el menú Assets -> Create, o el Create button en la vista Project, y seleccione Animator Override Controller.
El Animator Override Controller tiene un icono muy similar al Animator Controller, excepto de que tiene un símbolo de “más (+) ” en vez de un símbolo de “reproducir” en la esquina del icono:
Cuando usted selecciona el nuevo Animator Override Controller en el inspector, este estará inicialmente sin asignar, y se verá así:
Para comentar a utilizar el Override Controller, usted necesita asignar el asset del controller original al nuevo Override Controller en el inspector. Una vez esto se ha hecho, todas las animaciones utilizadas en el controller original se mostrarán como una lista ene l inspector del override controller:
Usted puede asignar nuevos clips de animación para anular los clips originales. En este ejemplo, todos los clips han sido anulados con versiones “Ogre” de la animación.
Este Override Controller puede ahora ser utilizado en el componente Animator en el Game Object del personaje Ogre como si fuera un Animator Controller. Este usará la misma lógica que el Animator Controller original, pero va a reproducir las nuevas animaciones asignadas en vez de las originales.