Mostrando entradas con la etiqueta GDScript animacion de un nodo3d de un personaje en godot 4.7;. Mostrar todas las entradas
Mostrando entradas con la etiqueta GDScript animacion de un nodo3d de un personaje en godot 4.7;. Mostrar todas las entradas

domingo, 27 de septiembre de 2026

GDScript animacion de un nodo3d de un personaje en godot 4.7;

 extends Node3D


var anim_player: AnimationPlayer


func _ready() -> void:

# Busca el AnimationPlayer ÚNICAMENTE dentro de este nodo y sus hijos (self)

anim_player = buscar_animation_player_propio(self)

if anim_player:

print("¡AnimationPlayer propio del personaje encontrado con éxito!")

else:

print("ERROR: No se encuentra ningún AnimationPlayer dentro de este personaje.")


# Función que busca solo dentro de la rama local del personaje

func buscar_animation_player_propio(nodo: Node) -> AnimationPlayer:

if nodo is AnimationPlayer:

return nodo as AnimationPlayer

for hijo in nodo.get_children():

var resultado = buscar_animation_player_propio(hijo)

if resultado:

return resultado

return null


func _unhandled_input(event: InputEvent) -> void:

if not anim_player or not event is InputEventKey or not event.pressed or event.echo:

return


match event.keycode:

KEY_I:

reproducir("MakeHuman default skeleton|FURIA")

KEY_O:

reproducir("MakeHuman default skeleton|SACAZARPA")

KEY_P:

reproducir("MakeHuman default skeleton|ZARPAZO")


func reproducir(nombre: String) -> void:

if anim_player.has_animation(nombre):

anim_player.stop()

anim_player.play(nombre)

print("Reproduciendo en escena principal: ", nombre)

else:

print("La animación '", nombre, "' no existe en este AnimationPlayer.")



-----------------------------------------------------------------------------------------------------

un detalle del gds:  Ese truco de limitar la búsqueda al propio nodo (self) es oro puro en Godot cuando empiezas a meter escenas unas dentro de otras, porque te evita todos esos líos de rutas globales.

Ya tienes al personaje listo y respondiendo como un reloj a los zarpazos. ¡A seguir dándole caña al juego! Si más adelante te surge cualquier otra historia con el código o los escenarios, aquí estamos.