domingo, 15 de septiembre de 2024

Borrar particulas alos pocos segundos para no saturar la memoria en Godot 4.3;

 extends CPUParticles3D

var tiempo_transcurrido = 0.0


# 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:

rotate_y(0.8)

tiempo_transcurrido += delta


if tiempo_transcurrido >= 11.0:

queue_free()  # Elimina el nodo de la escena

jueves, 12 de septiembre de 2024

DOS SCRIPTS GDSCRIPT PARA INSTANCIAR UNA CAMARA EN GODOT 4.3, Y QUE ESTA SE MUEVA Y AGA UN ENFOQUE;

 extends Camera3D


var tiempo_transcurrido = 0.0


# Llamado cuando el nodo entra en el árbol de escena por primera vez.

func _ready() -> void:

pass # Replace with function body.


# Llamado cada cuadro. 'delta' es el tiempo transcurrido desde el cuadro anterior.

func _process(delta: float) -> void:

rotate_x(0.00005)

tiempo_transcurrido += delta


if tiempo_transcurrido >= 16.0:

queue_free()  # Elimina el nodo de la escena


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

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

Explicacion: El script superior solo es para una camara, tiene un temporizador para que se borre transcurridos unos segundos y a la vez hace un leve giro rotatorio en el eje x...................


El script inferior , instancia esa camara, entre otras cosas, tambien instancia una puerta rota en 2 partes , mi idea con Godot es jugar con enfoques de camara porque me gusta mucho el cine y con Godot me gustan los resultados, en el inspector la camara tiene activada la casilla  Current, eso indica prioridad, por que estamos casi todo el tiempo trabajando con la camara que lleva el player detras como hijo, esta no esta activada en Current, pero como es la unica es la que sale constantemente, ahora bien al atravesar cierta puerta, ago que se instancie esta camara con el Current activado que significa prioridad, y entonces ago un cambio de enfoque momentaneo  que enfoca un personaje concreto del juego ,ya que dicha camara al pasar unos segundos se destrulle sola, y retorna la vista del juego a la camara que lleva el player como hijo........y se enfoca  de nuevo el juego como al comienzo, esta operacion la puedo repetir y emplear infinidad de veces, cada vez estoy mas entusiasmado con 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/LOCA CORDEROS/camera_3d_2enfocabocabozal.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()


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.


PRONTO A LA VENTA EN perico415.itch.io;JUEGO DE TERROR EN DESARROLLO CON GODOT 4.3;


 

miércoles, 11 de septiembre de 2024

Ejemplo de borrar en GDScript al entrar en un Area3d;

 extends Area3D


# Referencia al objeto que queremos borrar

#onready var objeto_a_borrar = $"Almoadasparet-2-SANGINOLUENTA2"


func _ready():

pass





func _on_area_entered(area: Area3D) -> void:

$"../StaticBody3D8 ALMOADAS ABITACION/Almoadasparet cara principal2".queue_free()

#$"Almoadasparet-2-SANGINOLUENTA2".rotate_z(22)

$"../StaticBody3D8 ALMOADAS ABITACION/Almoadasparet8 PADREPARETIZQUIERDA2".queue_free()

$"../StaticBody3D8 ALMOADAS ABITACION/Almoadasparet7 PADRE LA DERECHA2".queue_free()

$"Almoadasparet19---REY2".queue_free()

$CollisionShape3DJAJA.queue_free()


pass # Replace with function body.





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

------------------------------------------------ampliando elemento que se borrara-----------------------------------------------------------------------------------------------------------------------------------------------------

extends Area3D


# Referencia al objeto que queremos borrar

#onready var objeto_a_borrar = $"Almoadasparet-2-SANGINOLUENTA2"


func _ready():

pass





func _on_area_entered(area: Area3D) -> void:

$"../StaticBody3D8 ALMOADAS ABITACION/Almoadasparet cara principal2".queue_free()

#$"Almoadasparet-2-SANGINOLUENTA2".rotate_z(22)

$"../StaticBody3D8 ALMOADAS ABITACION/Almoadasparet8 PADREPARETIZQUIERDA2".queue_free()

$"../StaticBody3D8 ALMOADAS ABITACION/Almoadasparet7 PADRE LA DERECHA2".queue_free()

$"Almoadasparet19---REY2".queue_free()

$"../StaticBody3D8 ALMOADAS ABITACION/Almoadasparet25 PADRE SUELO ALMOADA2".queue_free()

$CollisionShape3DJAJA.queue_free()


pass # Replace with function body.



lunes, 9 de septiembre de 2024

Estudio de script GDScript; contiene explicacion del tema añadir objetos a huesos especificos en Godot 4.3;

 extends Node3D


func _ready() -> void:

# Reproducir la animación

$AnimationPlayer.play("MakeHuman default skeleton|CHIFLADA")


# Nombres de los nodos (ajústalos según tu escena)

var mano_name = "MakeHuman default skeleton/Skeleton3D/clavicle.L"

var objeto_name = "MakeHuman default skeleton/Skeleton3D/clavicle.L/StaticBody3Dcuerda"


# Obtener los nodos

var mano = get_node(mano_name)

var objeto = get_node(objeto_name)


# Verificar si los nodos existen y agregar el objeto como hijo de la mano

if mano and objeto:

mano.add_child(objeto)

# Ajustar la posición del objeto (ajusta el valor según tus necesidades)

objeto.global_transform.origin = mano.global_transform.origin + Vector3(0, 0.1, 0)

else:

print("Uno o ambos nodos no se encontraron. Verifica los nombres y la jerarquía de la escena.")


func _process(delta: float) -> void:

pass



-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Explicacion: Este script en GDScript esta correctamente escrito segun Godot 4.3, pero no consigo que un objeto se pege al hueso de una mano y siga su movimiento , un palo o un arma por ejemplo, no se si es porque Godot 4.3 aun no soporta poder hacer eso o es por desconocimiento mio, tampoco se encontrar informacion por internet del tema, en fin tengo otros medios para hacerlo pero son a costa de mas trabajo y mas horas de desarrollo de cualquier idea, no me queda otra que modelar en el propio cuerpo de un player, con blender un palo un arma o un escudo desde el propio player manipulando y modelando la maya,,,,,se que puedo hacerlo pero claro cuesta mas horas y mas trabajo.....en fin de momento me boy a centrar en mis conocimientos para mi juego actual, si e de aprender y desarrollar las dos cosas a la vez ire aun mas lento, y mi idea es publicar un juego al mes o cada dos meses en Itch,io un juego completo y que al menos yame la atencion......