Puedes usar una combinación de recursos proxy, de tabla de proxy y tabla de selección para compilar una lógica de selección dinámica de recursos que controle las animaciones en función de las variables de tu proyecto. Por ejemplo, puedes usar los recursos proxy y la tabla de proxy para seleccionar qué tipo de conjunto de animación debería cargarse y usarse para tu personaje, por ejemplo, diferentes conjuntos de armas. También puedes usar tablas de selección para elegir de forma dinámica recursos de animación individuales, como distintas reacciones a los impactos en función de la posición en la que se golpee a tu personaje, usando variables contextuales de tu proyecto.
Consulta el siguiente documento para obtener más información sobre cómo configurar un sistema de selección dinámica de animaciones en Unreal Engine.
Aunque esta documentación se centra en el uso de tablas de selección y de proxy para seleccionar recursos relacionados con la animación, como secuencias de animación, montajes o clases AnimInstance, el sistema en sí es genérico y puede usarse para seleccionar cualquier tipo de recurso, objeto o clase.
Requisitos previos
Habilita el complemento Chooser. En la barra de menús, ve a Editar > Complementos y busca Chooser en la sección Animación o usa la barra de búsqueda. Habilita el complemento y reinicia el editor.
Tu proyecto contiene un conjunto de animaciones que quieres seleccionar dinámicamente en tiempo de ejecución en función de la situación contextual. Podrían ser conjuntos únicos de animaciones cosméticas, animaciones de jugabilidad relevantes, como animaciones contextuales, o conjuntos de animaciones relevantes para elementos equipables, como armas.
Tu proyecto contiene un blueprint de animación funcional en el que puedes compilar una lógica de selección dinámica de animaciones.
Configura un sistema de selección de animaciones
Aquí encontrarás información sobre cómo configurar un sistema de selección de animaciones en tu proyecto para seleccionar dinámicamente la reproducción de animaciones de reacción ante impactos en función del contexto de tu proyecto en tiempo de ejecución.
Crea un recurso de proxy
Un recurso de proxy se usa para almacenar información contextual sobre qué recurso de tabla de proxy está activo y otras variables relevantes.
Para crear un recurso de proxy, usa (+) Añadir en el explorador de contenido y luego ve a Varios > Recurso de proxy.
Crea un recurso de proxy para cada conjunto de animaciones del que quieras seleccionar dinámicamente animaciones para controlar al personaje, como un conjunto de reposo, marcha o carrera.
Después de crear los recursos de proxy, abre cada uno para acceder a sus ajustes.
Para cada recurso de proxy, establece la propiedad Tipo como el tipo de recurso de animación que estés usando, en este caso AnimSequenceBase.
Establece la propiedad Datos de contexto en la opción Blueprint de animación añadiendo una nueva matriz Índice usando (+) Añadir y eligiendo la opción Clase de tipo de objeto de contexto.
Expande los ajustes de la matriz Índice y establece la propiedad Clase para usar tu blueprint de animación, en este caso ABP_Manny. Después, verifica que la propiedad Dirección esté establecida en Lectura.
Configuración de blueprint de animación
Después de ajustar tu recurso de proxy, debes crear una variable en el blueprint de animación de tu personaje para almacenar la tabla de proxy activa durante el tiempo de ejecución. Para crear esta variable, abre el blueprint de animación de tu personaje y crea una nueva variable en el panel My Blueprint usando (+) Añadir. A continuación, establece que el tipo de variable como una referencia de objeto de tabla proxy. Después de crear la variable, guarda y compila tu blueprint de animación.
Un nodo Evaluate Proxy usará la variable de tabla de proxy en tu grafo de animación para determinar la tabla de proxy activa en tiempo de ejecución.
Crea recursos de tablas de proxy
Un recurso de tabla de proxy se usa para almacenar los conjuntos de recursos de animación que pueden seleccionarse dinámicamente en tiempo de ejecución. Por ejemplo, una tabla de proxy puede almacenar las animaciones de reposo de un personaje, mientras que otra puede almacenar su conjunto de animaciones de marcha o carrera.
Para crear un recurso de tabla de proxy, usa (+) Añadir en el explorador de contenido y luego ve a Varios > Tabla de proxy.
Crea un recurso de tabla de proxy para cada situación contextual en la que se necesite un conjunto de animaciones diferente, como conjuntos de animaciones de locomoción para personajes desarmados o personajes que empuñen una pistola o un rifle.
Después de crear un recurso de tabla proxy, abre el recurso para acceder a sus valores.
En ProxyTable, añade una entrada para cada recurso de proxy con (+) Añadir fila y selecciona recurso. A continuación, puedes asignar el recurso de animación asociado del conjunto usando la columna Valor.
En el siguiente ejemplo de proceso de trabajo, se asignan a un recurso ProxyTable_Unarmed las animaciones Unarmed_Idle y Unarmed_Walk en las respectivas filas ProxyAsset_Idle y ProxyAsset_Walk. Luego, en un recurso ProxyTable_Pistol, se asignan las mismas filas de recursos de proxy con las animaciones Pistol_Idle y Pistol_Walk respectivamente.
La columna Valor también puede contener una referencia de clase, un recurso de selección o un proxy de búsqueda para más sistemas de selección dinámica de animaciones.
Uso de tablas de proxy en tiempo de ejecución
Puedes usar los recursos de las tablas de proxy en tiempo de ejecución usando una función de nodo de animación en un nodo Sequence Player. Para crear una nueva función que seleccione un recurso de tabla de proxy, selecciona el nodo Sequence Player y añade una nueva función en la vinculación On Update.
Añade un nodo Evaluate Proxy desde el nodo On Update.
A continuación, selecciona el nodo y elige el recurso de proxy en la propiedad Proxy usando el menú desplegable.
Después convierte el resultado en una variable y conecta la salida al nodo Sequence Player.
A continuación, puedes establecer el recurso de tabla de proxy activo en el nodo Evaluate Proxy usando diversos métodos, como una tabla de selección, para cambiar dinámicamente el conjunto de animaciones que controla al personaje.
Crea un recurso de tabla de selección
Un recurso de selección se usa para almacenar conjuntos de datos de animación que comprenden varias iteraciones de una animación y que pueden seleccionarse y reproducirse según el contexto. Por ejemplo, una tabla de selección puede contener un conjunto de animaciones de reacción a impactos en las que cada entrada es una animación que reacciona en función de una parte distinta del cuerpo (brazos, piernas, pecho, cabeza) que reciba el impacto y que luego puede seleccionarse basándose en una variable contextual, como la ubicación del impacto.
Para crear un recurso de tabla de selección, usa (+) Añadir en el explorador de contenido y luego ve a Varios > Tabla de selección.
Después de crear una tabla de selección, puedes abrir el recurso para acceder a sus propiedades.
Crea un nuevo elemento Matriz en la propiedad Datos de contexto usando (+) Añadir y eligiendo la opción Clase de tipo de objeto de contexto para la propiedad. Luego expande la matriz Índice, establece la propiedad Clase en el blueprint de animación de tu personaje y verifica que la propiedad Dirección esté configurada como Lectura. A continuación, puedes establecer el tipo de objeto de salida como el recurso de animación que estés usando. Este proceso de trabajo de ejemplo usa secuencias de animación, por lo que se ha seleccionado la opción de clase AnimSequenceBase.
En el panel Tabla de selección, puedes empezar a añadir columnas. Para establecer las variables del blueprint de animación que quieres que influyan en el proceso de selección, haz clic en el botón (+) Añadir columna. Después de crear una columna, puedes definir qué variable de tu blueprint de animación puede influir en la selección y los valores o estados de la variable que deben alcanzarse para seleccionar el recurso de secuencia de animación dentro de cada fila.
En este ejemplo de proceso de trabajo, la variable booleana IsCrouching seleccionará la animación MM_HangingIdle cuando no esté activada y MM_Rifle_Walk_Left cuando sí lo esté. La variable MoveemntAngle seleccionará la animación MM_HangingIdle cuando el valor esté entre -100 y 100, mientras que la animación MM_Rilfe_Walk_Left solo se seleccionará cuando el valor sea 0.0.
Para controlar las animaciones de los personajes mediante este proceso de selección, debes establecer tu entrada de la tabla de proxy como Evaluar selector y asignar el recurso de tabla de selección.
Ahora la animación seleccionada cambiará en función del recurso de tabla de proxy activo y de la selección realizada por la tabla de selección.