viernes, 11 de octubre de 2024

Reflexiones, soluciones o trucos para aprobechar ciertos GDScript en Godot 4.3;

 extends Area3D

var Esferauno = preload("res://PUERTAS Y PUERTAS REVENTADAS/PUERTAROTA.tscn")

var Esferauno2 = preload("res://PUERTAS Y PUERTAS REVENTADAS/PUERTAROTA2.tscn")

var Esferauno3 = preload("res://PERSONAJES/EL AHORCADO MUERTO/camera_3d_FENIX-100.tscn")


# Called when the node enters the scene tree for the first time.

func _ready() -> void:

pass # Replace with function body.



# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta: float) -> void:

pass



func _on_area_entered(area):


var parent = get_parent()


var CollisionShape3Dcubo = parent.get_node("CollisionShape3D")



get_node("RigidBody3D PUERTA EMPUJO--INTENTARE BISAGRA").queue_free()


#get_node("RigidBody3D PUERTA EMPUJO--INTENTARE BISAGRA").queue_free()


get_node("CollisionShape3D2").queue_free()

get_node("Label3D").queue_free()

pass # Replace with function body.



func _on_area_exited(area):


var Esferauno = Esferauno.instantiate()


add_child(Esferauno)


var Esferauno2 = Esferauno2.instantiate()


add_child(Esferauno2)



var Esferauno3 = Esferauno3.instantiate()


add_child(Esferauno3)





pass # Replace with function body.




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

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

Notas interesantes sobre programar con GDScript:


Desarrollando mi actual videojuego en Godot 4.3 me e dado cuenta que habeces hay soluciones que son sorprendentemente muy muy sencillas, cosas de novato, aun no llevo 1 año con Godot y en este GDScript que se trata de instanciar unos objetos y de borrar de pantalla otros la idea era de borrar una puerta de una habitacion, eso en un principio, pero luego la habitacion tiene un techo que necesitaba borrar al destruirse la puerta y me estaba devanando los sesos para escribir codigo que hiciese esa funcion, al igual que el pomo de la puerta, escribir codigo para que ese pomo se borrase al chocar algo en la puerta y escribir codigo para que se borrase el techo al tocar algo la puerta………...pues nada simplemente pòniendo esos objetos de hijos de la puerta principal que se borra cuando el playe pasa por ella , y ya esta¡¡¡¡¡¡¡¡¡ ahora puedo poner un timbre un decorado en la puerta un ojo de buey lo que se tercie……..y solo necesito la linea de codigo que destruye la puerta principal.¡¡¡¡¡¡¡



domingo, 6 de octubre de 2024

Ejemplo de hacer una animación con blender y pasarla a Godot 4.3,;

 

Boy a explicar un ejemplo de hacer una animación con blender y pasarla a Godot 4.3,

he puesto un video mio también en el blog con mi voz para explicar de forma breve como lo voy haciendo, en blender primero de todo, ago un hueso el cual extruyo, o mas bien partiendo de el, ago otro que esta unido a el, y así sucesivamente se pueden dar formas que se quieran dar, un brazo en este caso, con unos dedos, cada hueso lo embuelbo con un cilindro que voy modelando, estos mas adelante se pueden unir o si se sabe muy bien utilizar blender a partir de la base de uno solo seleccionado las caras y con mucho trabajo y paciencia y dandole formas de brazo antebrazo mano y dedos.


En el video se puede ver también como selecciono los cilindros y los huesos y los fusiono para que cuando se aga la animación, el cilindro siga el movimiento del hueso……



Cuando e conseguido lo que buscaba lo pase a Godot4.3 en formato fbx, si usáis Godot 4.2 mejor usáis formato glTF.



Pongo también un video en el que se ve mejor los pasos de fusionas formas con huesos en blender.






El archivo fbx que contiene, que pase a Godot 4.3 tiene un script para que aga la animación, es el siguiente,,,,,,,



extends Node3D



# Called when the node enters the scene tree for the first time.

func _ready() -> void:

$AnimationPlayer.play("Esqueleto|MANOSADICA")

pass # Replace with function body.



# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta: float) -> void:

pass







Es muy sencillo de hacer, de escribir y un detalle es que la animación antes de pasarla a escena para que funcione con godot le marquéis la opción de PingPong para que se reproduzca continuamente en bucle y que estén también marcadas de azul las dos flechillas que recuerdan el símbolo del ying y del yang, esto en animación del Godot4.3 lo seleccionáis hay,,,, podría alargar mas estas explicaciones, pero es solo una pequeña vase para entender como funciona el tema, el resto a de ser ponerse delante del pc y practicar y practicar y practicar……...



jueves, 3 de octubre de 2024

Interesante script GDScript, para hacer un circuito cerrado por el que un objeto se mueve continuamente;

 extends PathFollow3D


var speedd =0.07

# Called when the node enters the scene tree for the first time.

func _ready() -> void:

pass # Replace with function body.



# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta: float) -> void:

progress_ratio +=delta *speedd

pass



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

EXPLICACION: ago una silla que se mueve sola en una habitacion, utilizo los nodos de padre Path3D de hijo PathFollow3D de nieto un tscn una escena de una silla o un obj, el script lo contiene el nodo PathFollow3D y con este script la silla va moviéndose sola por el escenario......este tema es novedoso para mi lo acabo de probar ahora y me funciona ya iré profundizando mas en el tema.....lo vi en un video de YouTube, lo del tema PathFollow3D y bueno e de practicar y practicar a la primera funciona pero sale diferente de lo que se busca.......



viernes, 27 de septiembre de 2024

Con GDScript para Godot 4.3 ago que un texto vibre tipo Label3D;

 extends Label3D


var strength = 0.009 # Intensidad del temblor

var speed = 0.009     # Velocidad del temblor


func _process(delta):

# Calculamos una pequeña variación aleatoria en las coordenadas X e Y

var random_x = randf_range(-strength, strength)

var random_y = randf_range(-strength, strength)


# Aplicamos la variación al nodo

global_position += Vector3(random_x, random_y, 0.0)