¿Cómo lograr que un personaje permanezca mirando en la última dirección en que ha visto?
Al crear animaciones para personajes en videojuegos, es común querer que un personaje mantenga una apariencia coherente al detenerse. Es decir, cuando deja de moverse, debería seguir mirando hacia la última dirección en la que estuvo mirando. Esto no solo mejora la estética del juego, sino que aumenta la inmersión del jugador. Para lograr esto, primero es necesario crear varias animaciones que representen al personaje mirando en cada dirección cardinal: abajo, izquierda, derecha y arriba.
- Creación de variantes de facing:
- Con el jugador seleccionado, además de las animaciones existentes (
down
, left
, right
, up
, e idle
), crea nuevas variantes: player facing down
, player facing left
, player facing right
, y player facing up
.
- Asignación de sprites:
- Asigna la imagen del personaje mirando hacia cada dirección correspondiente.
¿Cómo crear un blend tree para mejorar el movimiento del personaje?
Para gestionar muchas animaciones eficientemente y mejorar la configuración del movimiento del personaje, se utiliza una herramienta esencial en la animación llamada "Blend Tree". Un Blend Tree
es una estructura que permite mezclar varias animaciones de una manera que parezca fluida y continua.
- Limpieza de estados anteriores:
- Borra los estados de animación anteriores en
Animator
, dejando solo el estado idle
.
- Creación del Blend Tree:
- Haz clic derecho en
Animator
y selecciona "Create State" para crear un nuevo estado a partir de un new blend tree
.
- Cambia el nombre del
Blend Tree
a algo significativo como playerMovement
.
¿Cómo configurar las transiciones entre estados?
La configuración correcta de las transiciones es fundamental para garantizar que los cambios de estado ocurran según las condiciones definidas.
- Transición de
idle
a playerMovement
:
- Establece la condición para la transición de
idle
a playerMovement
basada en una variable booleana llamada walking
.
- Si
walking
es true
, la transición ocurre.
- Transición de
playerMovement
a idle
:
- La condición inversa también debe configurarse para que, si
walking
es false
, el estado vuelva a idle
.
- Configurar parámetros y animaciones:
- Desactiva el
exit time
de ambos para evitar demoras indeseadas.
- En las transiciones, desactiva la duración fija para que los cambios ocurran rápidamente.
¿Cómo manejo el movimiento y la dirección usando Blend Tree?
Al estar en el Blend Tree
, se observa una interfaz diferente. Aquí es donde se determinan las animaciones que se reproducirán según las entradas de movimiento del jugador.
-
Configurar dos dimensiones:
-
Cambia el tipo de árbol a two dimensional simple directional
para manejar horizontal
y vertical
.
-
Añade motions fields
para las animaciones que se reproducirán según las diferentes combinaciones de X
e Y
.
-
Configurar posiciones de movimientos:
-
Según las entradas horizontales y verticales (X
y Y
), mapea las animaciones:
- X positiva y Y cero:
playerRight
.
- X negativa y Y cero:
playerLeft
.
- X cero y Y positiva:
playerUp
.
- X cero y Y negativa:
playerDown
.
¿Cómo crear otro Blend Tree para el estado estático?
Para el caso en que el personaje deje de moverse, se debe crear otro Blend Tree
similar, pero que utilice las variaciones de estar mirando en una dirección sin moverse.
- Modificar parámetros:
- Cambia las variables
Horizontal
y Vertical
por Last Horizontal
y Last Vertical
.
- Reemplaza las animaciones actuales en el
Blend Tree
por aquellas que representan al personaje en estado estático.
Esto permitirá que el personaje mantenga la dirección en la que estaba mirando al quedarse quieto, proporcionando una transición más suave y menos disonante para quienes interactúan con el juego. Siéntete libre de experimentar y ajustar estas configuraciones para personalizar el comportamiento del personaje según las necesidades del proyecto creativo.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?