Creación de Videojuegos. Godot Engine. Reproducimos una animación.

Tema 9. Godot Engine. Reproducimos una animación.

En temas anteriores hemos creado diferentes animaciones para nuestro personaje. Ahora vamos a animarlo en el escenario  en función de las teclas que pulsemos.

En el tema anterior habíamos definido el siguiente código en el script:

func _process(delta):
if Input.is_action_pressed(“Personaje_LEFT”):
print(“Personaje LEFT”)
if Input.is_action_pressed(“Personaje_RIGHT”):
print(“Personaje RIGHT”)

Ahora modificaremos el print por código que nos permitirá animar al personaje.

$Animation.play(“nombre de animación”) es la instrucción que nos permite hacerlo.

Fijémonos como tal y como vamos escribiendo ya nos van apareciendo las instrucciones de forma automática en nuestro editor. Por lo tanto nuestro código quedará así. 

func _process(delta):
if Input.is_action_pressed(“Personaje_LEFT”):
$AnimationPlayer.play(“Left”)
if Input.is_action_pressed(“Personaje_RIGHT”):
$AnimationPlayer.play(“Right”)

Ahora probaremos a ejecutar el código y el personaje aparece por defecto moviéndose hacia la derecha en función de lo que hayamos seleccionado en el node Animation propiedad: Current Animation

AnimationPlayer en Godot
AnimationPlayer en Godot

Ahora el personaje aparece “parado” y mirando hacia la derecha.

Personaje mirando hacia la derecha

Si pulsamos la tecla ‘z’ o tecla flecha izquierda, entonces el personaje cambiará de dirección:

Personaje mirando hacia la izquierda

Si mantenemos las teclas pulsada observaremos que el personaje se anima (movimiento derecha o izquierda en función de la tecla pulsada) de forma constante.

Ojo, si deseamos que el personaje se anime nada más iniciamos el programa y dicha animación no se pare, entonces deberemos ir a cada una de las animaciones del nodo AnimationPlayer, Left y Right y activar el loop . Recordemos que el botón loop son las dobles flechas que están a la parte derecha del editor.

Nodo AnimationPlayer, Left y Right y activar el loop
Nodo AnimationPlayer, Left y Right y activar el loop

Ahora observaremos que la animación tarda un poco en cambiar de izquierda a derecha porque la marca (check_box)  flip_h que está debajo del personaje se encuentra situada al final de los frames en el 0.4

Tendremos que desplazar el check de la animación derecha y situarlo al principio de los frames:

Por lo tanto ambas animaciones quedarán así:

LEFT

Animación personaje hacia la izquierda. Godot
Animación personaje hacia la izquierda. Godot

RIGHT

Animación personaje hacia la derecha. Godot
Animación personaje hacia la derecha. Godot

Fijarse como el check flip_h que hay debajo del personaje lo hemos desplazado al principio del frame 0.

ES POSIBLE USAR UN NODO AnimatedSprite con AnimationPlayer

Creamos el nodo AnimatedSprite y creamos sus respectivas animaciones, en este ejemplo, idle y run

Creamos un nodo hijo de AnimatedSprite: AnimationPlayer

Nodo AnimatedSprite con Nodo hijo AnimationPlayer. Godot
Nodo AnimatedSprite con Nodo hijo AnimationPlayer. Godot

Ahora en AnimationPlayer, tenemos que ir creando cada animación que tenemos en AnimatedSprite. Seleccionamos AnimatedSprite, y a la vez hacemos un click en el menú inferior Animación.

Con el Nodo AnimatedSprite seleccionado, hacemos Click en el menú inferior Animación. Godot
Con el Nodo AnimatedSprite seleccionado, hacemos Click en el menú inferior Animación. Godot

Ahora en las propiedades de AnimatedSprite seleccionamos qué Animación queremos añadir al AnimationPlayer. Si queremos usar idle, seleccionamos idle y posteriormente hacemos un click en la llave Animation: idle

Godot. Se muestra la LLave en Animation Idle
Godot. Se muestra la LLave en Animation Idle

Y a partir de ahora ya podemos ir añadiendo los frames en el AnimationPlayer haciendo click en la llave de cada Frame que vamos seleccionando:

Seleccionamos los Frames de la animación. Godot
Seleccionamos los Frames de la animación. Godot

Aquí vemos el resultado con idle:

Animación completa en el editor de Animación de Godot.
Animación completa en el editor de Animación de Godot.

ÍNDICE


0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x