Mostrando entradas con la etiqueta GDSsript. Mostrar todas las entradas
Mostrando entradas con la etiqueta GDSsript. Mostrar todas las entradas

sábado, 28 de marzo de 2026

GDSsript, detalles de animacion de personaje, muy importantes;

 extends Node3D


var animacion_actual = "AGACHAPREPARA"


func _ready():

$AnimationPlayer.play(animacion_actual)


func _physics_process(_delta):


# NUEVO CÓDIGO: Salir del juego al presionar la tecla Escape

if Input.is_action_just_pressed("ui_cancel"):

get_tree().quit()

var alguna_tecla_pulsada = false



# Comprobamos si alguna de las acciones está siendo presionada

if Input.is_action_pressed("achazo") or \

   Input.is_action_pressed("mouse_left") or \

   Input.is_action_pressed("mouse_right") or \

   Input.is_action_pressed("DESDEABAJOPUÑETASO") or \

   Input.is_action_pressed("ANDAALANTECONW") or \

   Input.is_action_pressed("ANDAATRASCONS") or \

   Input.is_action_pressed("DESDEABAJOPUÑETASO") or \

   Input.is_action_pressed("DESDEABAJOPUÑETASO") or \

   Input.is_action_pressed("CORRECACA") or \

   Input.is_action_pressed("ui_accept") or \

   Input.is_action_pressed("PATADAMEDIA") or \

   Input.is_action_pressed("DESDEABAJOPUÑETASO") or \

   Input.is_action_pressed("ui_accept") or \

   Input.is_action_pressed("A") or \

   Input.is_action_pressed("D"):

alguna_tecla_pulsada = true


# Animación de ESPADAZO

if Input.is_action_pressed("achazo") or Input.is_action_pressed("mouse_left"):

if animacion_actual != "PUÑETAZO":

$AnimationPlayer.play("PUÑETAZO")

#$AnimationPlayer/AudioStreamPlayer3D.play("MakeHuman default skeleton|ESPADAZO")

animacion_actual = "PUÑETAZO"


# Animación de ATRABESAR

elif Input.is_action_pressed("mouse_right") or Input.is_action_pressed("DESDEABAJOPUÑETASO"):

if animacion_actual != "INSPECCIONA":

$AnimationPlayer.play("INSPECCIONA", 0.0)

animacion_actual = "INSPECCIONA"


# Animación de ANDAR

elif Input.is_action_pressed("ANDAALANTECONW") or Input.is_action_pressed("A") or Input.is_action_pressed("D"):

if animacion_actual != "CAMINA":

$AnimationPlayer.play("CAMINA")

animacion_actual = "CAMINA"

elif Input.is_action_pressed("ANDAATRASCONS") or Input.is_action_pressed("A") or Input.is_action_pressed("D"):

if animacion_actual != "SALTA":

$AnimationPlayer.play("SALTA")

animacion_actual = "SALTA"

elif Input.is_action_pressed("PUÑETAZO") or Input.is_action_pressed("A") or Input.is_action_pressed("D"):

if animacion_actual != "CAMINA":

$AnimationPlayer.play("CAMINA")

animacion_actual = "CAMINA"

elif Input.is_action_pressed("CORRECACA") or Input.is_action_pressed("E") or Input.is_action_pressed("E"):

if animacion_actual != "INSPECCIONA":

$AnimationPlayer.play("INSPECCIONA")

animacion_actual = "INSPECCIONA"

elif Input.is_action_pressed("ui_accept") or Input.is_action_pressed("E") or Input.is_action_pressed("E"):

if animacion_actual != "INSPECCIONA":

$AnimationPlayer.play("INSPECCIONA")

animacion_actual = "INSPECCIONA"


elif Input.is_action_pressed("PATADAMEDIA") or Input.is_action_pressed("R") or Input.is_action_pressed("R"):

if animacion_actual != "PUÑETAZO":

$AnimationPlayer.play("PUÑETAZO")

animacion_actual = "PUÑETAZO"




elif Input.is_action_pressed("ui_accept") or Input.is_action_pressed("A") or Input.is_action_pressed("D"):

if animacion_actual != "CAMINA":

$AnimationPlayer.play("CAMINA")

animacion_actual = "CAMINA"


elif Input.is_action_just_pressed("PUÑETAZO") or Input.is_action_pressed("A") or Input.is_action_pressed("D"):

if animacion_actual != "CAMINA":

$AnimationPlayer.play("CAMINA")

animacion_actual = "CAMINA"



# Si no se presiona ninguna tecla, volvemos a la animación de descanso

elif not alguna_tecla_pulsada:

if animacion_actual != "AGACHAPREPARA":

$AnimationPlayer.play("AGACHAPREPARA", 1.5)

animacion_actual = "AGACHAPREPARA"

elif Input.is_action_pressed("achazo") or Input.is_action_pressed("A") or Input.is_action_pressed("D"):

if animacion_actual != "CAMINA":

$AnimationPlayer.play("CAMINA")

animacion_actual = "CAMINA"

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

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

Explicacion: en mi juego la animacion del personaje habeces hace cambios bruscos al pasar de una animacion a otra, consulte con la IA como solucionarlo. en mi juego por ejemplo al disparar el personaje levanta el brazo y cuando termino el disparo lo vaja bruscamente casi al instante , queda muy mal nada natural.......en el trozo de texto del codigo de color amarillo un simple cambio de valor soluciono el problema ese "1,5" añadido a la linea.......hay que corregir de esta forma los cambios bruscos de una animacion hacia otra, ¡menuda herramienta la IA!.

$AnimationPlayer.play("AGACHAPREPARA", 1.5)