Lumberyard
Guía del usuario (Version 1.21)

Personalización de direccionamiento de máquina de estado con conjuntos de movimientos dispersos

Esta característica está en versión preliminar y está sujeta a cambios.

Puede darse el caso de que tenga diferentes personajes que no tengan los mismos movimientos que el personaje para el que haya creado el gráfico de animación. En lugar de duplicar grandes partes o crear nuevos gráficos de animación para diferentes personajes, puede compartir el mismo gráfico de animación entre todos los personajes.

Puede permitir o denegar transiciones y rutas a estados de movimiento en una maquinaria de estado, en función de la existencia de la entrada del movimiento en concreto.

Conjuntos de movimientos dispersos

Un conjunto de movimientos contiene una lista de entradas de movimiento. Cada entrada de movimiento tiene un ID de movimiento que puede definir. Por ejemplo, puede asignar un nombre a un ID de movimiento, Walk (Caminar) o Jump (Saltar). La entrada de movimiento asigna el ID de movimiento personalizado como Walk (Caminar) a un archivo de movimiento específico, como /SampleProject/Animations/Human_Walk.motion.

Puede agregar entradas de movimiento a un conjunto de movimientos con el icono + o el icono de carpeta en la ventana del conjunto de movimientos. El icono + crea una nueva entrada de movimiento en la que puede especificar el ID de movimiento, pero no puede asignarlo a un archivo de movimiento. Puede hacer clic en el icono de carpeta para seleccionar un movimiento que añadir. Basándose en el nombre del archivo de movimiento, se genera un ID de movimiento predeterminado.

El conjunto de movimientos dispersos se corresponde con entradas de movimiento que no tienen un archivo de movimiento asignado.

Cuando elija una entrada de movimiento no asignada en un estado de movimiento en una maquinaria de estado, el movimiento mostrará un borde rojo alrededor del nodo. Si el estado de movimiento está activado, el personaje pasa a una postura de reposo. En el siguiente ejemplo, el gráfico de animación del personaje no pasa de estar inactivo a saltar, ya que el nodo Jump (Saltar) utiliza un conjunto de movimientos dispersos; no se asigna ningún archivo de movimiento. El personaje permanece en el nodo Idle (Inactivo).


                Puede especificar una entrada de movimiento no asignada para un conjunto de movimientos dispersos.

Conjuntos de movimientos jerárquicos y sobrescritura de entradas de movimiento

Un conjunto de movimientos pueden contener conjuntos de movimiento secundarios que se almacenan en el mismo archivo. Los conjuntos de movimientos secundarios heredan todas las entradas de movimiento del conjunto principal.

En el siguiente ejemplo, el conjunto de movimientos jerárquicos tiene el movimiento Human (Humano) en el nivel raíz. El conjunto de movimientos Zombie es un conjunto secundario que hereda del conjunto de movimientos Human (Humano). El conjunto de movimientos Zombie no tiene una entrada de movimiento para Jump.

ejemplo : conjunto de movimientos jerárquico

Human (conjunto de movimientos)

  • + Idle (Inactivo): GenericIdle.motion

  • + Walk (Caminar): GenericWalk.motion

  • + Jump (Saltar): GenericJump.motion

    Zombie (conjunto de movimientos)

    • + Walk (Caminar): ZombieWalk.motion

Dado que el conjunto de movimientos principal define la entrada de movimiento Jump con un archivo de movimientos, el conjunto de movimientos secundarios hereda dicho movimiento. Esto significa que, cuando el conjunto de movimientos Zombie se activa, los personajes con dicho conjunto de movimientos realizan el movimiento humano Jump.

Si no desea que los personajes zombis salten, puede deshabilitar la herencia de ese movimiento concreto. Puede crear una entrada de movimiento nueva en el conjunto de movimientos secundarios denominada Jump y, a continuación, marcarla como no asignada. De esta forma, puede anular la entrada de movimiento del conjunto principal, al no asignarla al conjunto de movimientos secundario.

ejemplo : conjunto de movimientos secundarios con movimiento de salto

Human (conjunto de movimientos)

  • + Idle (Inactivo): GenericIdle.motion

  • + Walk (Caminar): GenericWalk.motion

  • + Jump (Saltar): GenericJump.motion

    Zombie (conjunto de movimientos)

    • + Walk (Caminar): ZombieWalk.motion

    • + Jump (Saltar): no asignado

El conjunto de movimientos Zombie utiliza el movimiento Idle del conjunto de movimientos principal, personaliza el movimiento Walk y deshabilita el movimiento Jump.

Para conjuntos de movimientos jerárquicos, puede crear una entrada de movimiento y desasignarla para deshabilitar la herencia del conjunto de movimientos principal. Si no va a utilizar conjuntos de movimientos jerárquicos, esto es igual que no tener una entrada de movimiento con el ID de movimiento especificado.

Personalización de las máquinas de estado basada en conjuntos de movimientos

Los gráficos de animaciones pueden compartirse entre personajes. Dos personajes diferentes que utilicen el mismo gráfico de animación pueden usarse con dos conjuntos de movimientos diferentes. Por ejemplo, puede tener un personaje humano que utilice el conjunto de movimientos humano y un personaje zombi que utilice el conjunto de movimientos Zombie. Ambos personajes pueden utilizar el mismo gráfico de animación.

Puede configurar la máquina de estado para evitar estados de movimiento no asignados. En este ejemplo, no desea que el zombi pase al estado Jump (Saltar), ya que este movimiento no se asignó para el conjunto de movimientos zombi.

Para configurar la máquina de estado para impedir conjuntos de movimientos

  1. En Anim Graph (Gráfico de animación), elija la línea de transición entre los nodos de movimiento. Por ejemplo, puede seleccionar la línea de transición entre los nodos Idle (Inactivo) y Jump (Saltar).

  2. En el panel Attributes (Atributos), haga clic en Add Condition (Agregar condición) y, a continuación, seleccione Motion Condition (Condición de movimiento).

  3. Para Motion (Movimiento), seleccione el estado Jump (Saltar).

  4. Para Test Function (Función de prueba), seleccione Is Motion Assigned? (¿El movimiento está asignado?).

    
                        Añada condiciones de movimiento para que algunos estados de movimiento se queden sin asignar.

    Dado que el conjunto de movimientos Zombie no tiene un archivo de movimientos asignado para Jump, el personaje no puede pasar del estado Idle al estado Jump. El semáforo de condición se muestra en rojo y bloquea la transición. Esto permite controlar si un personaje puede pasar o no a un estado de movimiento específico.

    
                        Personalice las máquinas de estado basándose en conjuntos de movimientos.