creo que con esfuerzo y mucha practica se pueden hacer animaciones manualmente para hacer juegos, y a la larga con mas facilidad y personalidad que usando programas o descargando animaciones ya construidas, bueno hay estoy, soy Indie, no doy a vasto e de saber de todo e de hacer de todo, programar en GDScript, pintar y texturizar, iluminar escenarios, construirlos, hacer guiones y pensar ideas, subir juegos a plataformas webs especializadas, y ahora estoy obsesionado con la animacion y hacer scripts que me la agan funcionar a la perfeccion, se que tengo para años todabia, no se acaba nunca de aprender...
I think that with effort and a lot of practice you can make animations manually to make games, and in the long run with more ease and personality than using programs or downloading already built animations, well here I am, I'm Indie, I don't give a lot of knowledge of everything and from doing everything, programming in GDScript, painting and texturing, lighting scenarios, building them, writing scripts and thinking of ideas, uploading games to specialized web platforms, and now I am obsessed with animation and making scripts that make it work perfectly, I know I still have years to go, learning never ends...Godot, scripts para Godot estudios y aprendizajes, Creacion de videojuegos. Creacion y publicacion de videojuegos en internet. Como hacer videojuegos. C# unity. Animaciones unity blender. Personajes videojuegos graficos dibujos. Diseño grafico. Comic. Animaciones gif. Dibujo de retratos. Realidad virtual. Cine y realidad virtual.
lunes, 12 de agosto de 2024
Animar personaje con blender;
lunes, 5 de agosto de 2024
CollisionShape3D script gdscript para escalar aleatoria y constantemente;
extends CollisionShape3D
var escala_minima = 0.25 # Tamaño mínimo de escala
var escala_maxima = 1.0 # Tamaño máximo de escala
var tiempo_cambio_escala = 1.0 # Tiempo en segundos entre cambios de escala
var tiempo_transcurrido = 0.0 # Tiempo transcurrido desde el último cambio
func _process(delta):
tiempo_transcurrido += delta
if tiempo_transcurrido >= tiempo_cambio_escala:
tiempo_transcurrido = 0.0
var nueva_escala = Vector3(randf_range(escala_minima, escala_maxima),
randf_range(escala_minima, escala_maxima),
randf_range(escala_minima, escala_maxima))
scale = nueva_escala
domingo, 4 de agosto de 2024
GDScript para Godot 4.2, muy simple activa una animacion constante y ademas borra el nodo transcurridos unos 16 segundos;
extends Node3D
var tiempo_transcurrido = 0.0
# Llamado cuando el nodo entra en el árbol de escena por primera vez.
func _ready():
$AnimationPlayer.play("GESTICULACION")
# Llamado cada cuadro. 'delta' es el tiempo transcurrido desde el cuadro anterior.
func _process(delta):
tiempo_transcurrido += delta
if tiempo_transcurrido >= 16.0:
queue_free() # Elimina el nodo de la escena
domingo, 28 de julio de 2024
Borra una puerta, la quema, borra elemetos de una puerta y sus StaticBody3D con su CollisionShape3D; en GDScript para Godot 4.2;
extends Area3D
var Esferauno = preload("res://ARRANCA PERSONAJE ANDANDO Y MOVIENDOSE/BORRALO.tscn")
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _on_area_entered(area):
var parent = get_parent()
var CollisionShape3Dcubo = parent.get_node("CollisionShape3D")
get_node("CollisionShape3D").queue_free()
#$"../../SILLA OFICINA9 ARDERAAAAAAAAAAAAAAAAAAAAAAAAAA3".queue_free()
$"../CSGTorus3D2 AQUEMAR2".queue_free()
$"../CSGTorus3D2 AQUEMAR3".queue_free()
$"../CSGTorus3D2 AQUEMAR4".queue_free()
$"../CSGTorus3D2 AQUEMAR5".queue_free()
$"../CSGTorus3D2 AQUEMAR6".queue_free()
$"../StaticBody3D".queue_free()
pass # Replace with function body.
func _on_area_exited(area):
var Esferauno = Esferauno.instantiate()
add_child(Esferauno)
pass # Replace with function body.
-----------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------
EXPLICACION: Un personaje a de atravesar una puerta, el script instancia un fuego ya que el personaje representa que la quema con un lanzallamas, a la vez borra elementos de dicha puerta sus StaticBody3D con su CollisionShape3D, ese fuego se apagara en unos segundos pero eso lo hace desde su propio script, ya que ese fuego es de una escena diferente que fue instanciada con este script. "res://ARRANCA PERSONAJE ANDANDO Y MOVIENDOSE/BORRALO.tscn" pongo mas abajo el script de borrar por tiempo la escena BORRALO.tscn sus graficos representan fuego y esta asociado un sonido de quemar a estos graficos para dar mas realismo y ambiente
extends RigidBody3D
var tiempo_transcurrido = 0.0 # Variable para almacenar el tiempo transcurrido
func _process(delta):
tiempo_transcurrido += delta
if tiempo_transcurrido >= 5.0:
queue_free() # Elimina el nodo de la escena
-----------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------
extends CPUParticles3D
var tiempo_transcurrido = 0.0 # Variable para almacenar el tiempo transcurrido
func _process(delta):
tiempo_transcurrido += delta
if tiempo_transcurrido >= 5.0:
queue_free() # Elimina el nodo de la escena
Script en GDScript para godot4.2, combinacion de mouse y teclado para ejecutar diversas animaciones de un personaje;
extends Node3D
var animacion_actual = "OTROBRAZOMUEVE"
func _ready():
$AnimationPlayer2.play("UNAMASDEPRUEBASDEMASDEUNA")
pass # Replace with function body.
func _input(event):
if event is InputEventMouseButton:
if event.button_index == 1 and event.pressed :
$AnimationPlayer.play("ARMAENMANO")
animacion_actual = "ARMAENMANO"
func _physics_process(delta):
# Agacharse
if Input.is_action_pressed("ui_down"):
if animacion_actual != "OTROBRAZOMUEVE":
#$AnimationPlayer.play("LEBANTAPIE")
$AnimationPlayer.play("OTROBRAZOMUEVE")
animacion_actual = "OTROBRAZOMUEVE"
elif Input.is_action_pressed("agacharse"):
if animacion_actual != "LEBANTABRAZO":
$AnimationPlayer.play("LEBANTABRAZO")
animacion_actual = "LEBANTABRAZO"
elif Input.is_action_pressed("ui_accept"):
if animacion_actual != "GIRATRONCO":
$AnimationPlayer.play("GIRATRONCO")
animacion_actual = "GIRATRONCO"
elif Input.is_action_pressed("detenerse"):
if animacion_actual != "PASOJASON":
$AnimationPlayer.play("PASOJASON")
animacion_actual = "PASOJASON"
#elif Input.is_action_just_pressed("DISPARAR"):
#elif Input.is_action_released("DISPARAR"):
elif Input.is_action_pressed("DISPARAR"):
if animacion_actual != "ARMAENMANO":
$AnimationPlayer.play("ARMAENMANO")
animacion_actual = "ARMAENMANO"
elif Input.is_action_pressed("DISPARAR2"):
if animacion_actual != "ARMAENMANO":
$AnimationPlayer.play("ARMAENMANO")
animacion_actual = "ARMAENMANO"
# Moverse hacia la derecha
#elif Input.is_action_just_pressed("ui_right"):
#elif Input.is_action_just_pressed("andaradelante"):# este funciona
#elif Input.is_action_just_pressed("ui_right"):
func _unhandled_input(event):# pruebas pero funciona
if event is InputEventKey and event.pressed:# pruebas pero funciona
#if event.keycode == KEY_W or event.keycode == KEY_A or event.keycode == KEY_O or event.keycode == KEY_D:
if event.keycode == KEY_W:# pruebas pero funciona
#if animacion_actual != "ANDADEMIXAMO":# este funciona
$AnimationPlayer.play("ANDADEMIXAMO")
animacion_actual = "ANDADEMIXAMO"
if event is InputEventKey and event.pressed:# pruebas pero funciona
if event.keycode == KEY_A:# pruebas pero funciona
$AnimationPlayer.play("ANDADEMIXAMO")
animacion_actual = "ANDADEMIXAMO"
if event is InputEventKey and event.pressed:# pruebas pero funciona
if event.keycode == KEY_D:# pruebas pero funciona
$AnimationPlayer.play("ANDADEMIXAMO")
animacion_actual = "ANDADEMIXAMO"
if event is InputEventKey and event.pressed:# pruebas pero funciona
if event.keycode == KEY_X:# pruebas pero funciona
$AnimationPlayer.play("OTROBRAZOMUEVE")
animacion_actual = "OTROBRAZOMUEVE"
---------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------
ampliado con presion del mouse boton 1 boton2 y presionar rueda del mouse
-------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
extends Node3D
var animacion_actual = "OTROBRAZOMUEVE"
func _ready():
$AnimationPlayer2.play("UNAMASDEPRUEBASDEMASDEUNA")
pass # Replace with function body.
func _input(event):
if event is InputEventMouseButton:
if event.button_index == 1 and event.pressed :
$AnimationPlayer.play("ARMAENMANO")
animacion_actual = "ARMAENMANO"
if event.button_index == 2 and event.pressed :
$AnimationPlayer.play("ARMAENMANO")
animacion_actual = "ARMAENMANO"
if event.button_index == 3 and event.pressed :
$AnimationPlayer.play("ARMAENMANO")
animacion_actual = "ARMAENMANO"
func _physics_process(delta):
# Agacharse
if Input.is_action_pressed("ui_down"):
if animacion_actual != "OTROBRAZOMUEVE":
#$AnimationPlayer.play("LEBANTAPIE")
$AnimationPlayer.play("OTROBRAZOMUEVE")
animacion_actual = "OTROBRAZOMUEVE"
elif Input.is_action_pressed("agacharse"):
if animacion_actual != "LEBANTABRAZO":
$AnimationPlayer.play("LEBANTABRAZO")
animacion_actual = "LEBANTABRAZO"
elif Input.is_action_pressed("ui_accept"):
if animacion_actual != "GIRATRONCO":
$AnimationPlayer.play("GIRATRONCO")
animacion_actual = "GIRATRONCO"
elif Input.is_action_pressed("detenerse"):
if animacion_actual != "PASOJASON":
$AnimationPlayer.play("PASOJASON")
animacion_actual = "PASOJASON"
#elif Input.is_action_just_pressed("DISPARAR"):
#elif Input.is_action_released("DISPARAR"):
elif Input.is_action_pressed("DISPARAR"):
if animacion_actual != "ARMAENMANO":
$AnimationPlayer.play("ARMAENMANO")
animacion_actual = "ARMAENMANO"
elif Input.is_action_pressed("DISPARAR2"):
if animacion_actual != "ARMAENMANO":
$AnimationPlayer.play("ARMAENMANO")
animacion_actual = "ARMAENMANO"
# Moverse hacia la derecha
#elif Input.is_action_just_pressed("ui_right"):
#elif Input.is_action_just_pressed("andaradelante"):# este funciona
#elif Input.is_action_just_pressed("ui_right"):
func _unhandled_input(event):# pruebas pero funciona
if event is InputEventKey and event.pressed:# pruebas pero funciona
#if event.keycode == KEY_W or event.keycode == KEY_A or event.keycode == KEY_O or event.keycode == KEY_D:
if event.keycode == KEY_W:# pruebas pero funciona
#if animacion_actual != "ANDADEMIXAMO":# este funciona
$AnimationPlayer.play("ANDADEMIXAMO")
animacion_actual = "ANDADEMIXAMO"
if event is InputEventKey and event.pressed:# pruebas pero funciona
if event.keycode == KEY_A:# pruebas pero funciona
$AnimationPlayer.play("ANDADEMIXAMO")
animacion_actual = "ANDADEMIXAMO"
if event is InputEventKey and event.pressed:# pruebas pero funciona
if event.keycode == KEY_D:# pruebas pero funciona
$AnimationPlayer.play("ANDADEMIXAMO")
animacion_actual = "ANDADEMIXAMO"
if event is InputEventKey and event.pressed:# pruebas pero funciona
if event.keycode == KEY_X:# pruebas pero funciona
$AnimationPlayer.play("OTROBRAZOMUEVE")
animacion_actual = "OTROBRAZOMUEVE"
sábado, 27 de julio de 2024
Gdscript 3 ejemplos de una accion con el mouse, boton 1 el 2 y la rueda el 3 al ser prersionada;
extends Area3D
var Bullet = preload("res://ARRANCA PERSONAJE ANDANDO Y MOVIENDOSE/proyectildefuego-1-tscn.tscn")
func _ready():
pass # Replace with function body.
func _input(event):
if event is InputEventMouseButton:
if event.button_index == 1 and event.pressed :
var bullet = Bullet.instantiate()
add_child(bullet)
if event.button_index == 2 and event.pressed :
var bullet = Bullet.instantiate()
add_child(bullet)
if event.button_index == 3 and event.pressed :
var bullet = Bullet.instantiate()
add_child(bullet)
func _unhandled_input(event):
if event is InputEventKey and event.pressed:
if event.keycode == KEY_W:
translate(Vector3(0, 0, 0) * get_process_delta_time()) # Temporary movement (consider physics)
#if event.keycode == KEY_
#apply_impulse(Vector3(0,40,4))#ORIGINAL
if event.keycode == KEY_Z:
rotate_x(0.02)
#pass
if event.keycode == KEY_X:
rotate_x(-0.02)
#pass
func _on_area_entered(area):
pass # Replace with function body.
Gdscript destruir por tiempo; con Godot 4.2; 2 ejemplos mas;
extends Node3D
# Contador para llevar el tiempo
var timer = 0.0
func _physics_process(delta):
# Incrementa el contador con el tiempo transcurrido
timer += delta
# Si el tiempo es mayor o igual a 5 segundos
if timer >= 5.0:
# Busca todos los nodos hijos de tipo CollisionShape3D
for child in get_children():
if child is CollisionShape3D:
# Quita el nodo del árbol de escena
child.queue_free()
# Reinicia el timer para evitar que se ejecute nuevamente
timer = 0.0