Hola Visitante

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - bizarman

Páginas: [1]
1
Tutoriales / Servidor Godot, Cliente Python
« en: Ayer a las 12:58 »

Espero se den una idea de como usar sockets en Godot
con este sencillo ejemplo.


Comenzamos con el script de python
https://drive.google.com/file/d/1_PArON1iJ00BqCxhh3H1XRm9O7p8g8jA/view?usp=sharing

Descarga, abre, escribe tu ip, escribe el puerto, guarda cambios
cierra.



Ahora la escena de Godot
https://drive.google.com/file/d/17yyA9w99mc4mp_0LZZG8wUNBggWCGr_t/view?usp=sharing

Descarga, descomprime, copia Servidor.tscn, Servidor.gd
y pega esos dos archivos en la carpeta de tu proyecto,
Reproduce la escena, escribe tu ip, escribe el puerto, activa,
en una terminal ejecuta el script de python,
ahora ya puedes comenzar a chatear.



Nota:
Funciona en Godot 3.1.

2
Tutoriales / Abre y no reproduce
« en: 15 de Mayo del 2019, 00:32 »

Abrimos el proyecto, y al momento de Reproducir nos dice:
"El controlador de la tarjeta de video no es compatible con ninguna de
las versiones de OpenGL compatibles.
Actualice sus controladores o si tiene una GPU muy antigua, actualícela".




Cerramos Godot completamente, nos vamos a la carpeta del proyecto
y abrimos el archivo "project.godot".




Buscamos la sección de "[rendering]" y agregamos las siguientes
lineas:
quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false




¡Listo! ya podemos reproducir nuestro el proyecto
hecho con GLES3 teniendo GLES2.



Nota:
No en todas las ocasiones se podrá funcionar esto
pero si en proyectos sencillos a nivel gráfico, que por suerte
son muchos.
Funciona en Godot 3.1.

3
GUI / Teclado virtual para Godot
« en: 13 de Mayo del 2019, 21:07 »
Para los juegos que usan control (Joystick).
Funciona en Godot 3.1.





¿Como lo abro?
Descarga, descomprime, copia Teclado.gd, Teclado.tscn
y pega esos dos archivos en la carpeta de tu proyecto
https://drive.google.com/file/d/1xyOU54OInr5c37U_oQcpmhLyNRqCm5UJ/view?usp=sharing



4
Tutoriales / Godot 3D, Caras que no se ven
« en: 09 de Mayo del 2019, 23:06 »
Aveces al importar nos encontramos un problema, las caras no se ven.




La solución es simple, comenzamos por poner o cargar un
"SpatialMaterial", yo cargare uno que ya tengo.



Editamos el material.




Desplegamos "Parameters", en "Cull Mode", podemos seleccionar
"Front" o "Disable", prueba con ambas.



Nota:
Funciona en Godot 3.1.

5
Tutoriales / Exportar animación hecha en Godot a imágenes
« en: 09 de Mayo del 2019, 08:53 »
Después de terminar nuestra animación en Godot, podemos exportarla
a imágenes para posteriormente convertirla en vídeo, pero deben
tener en cuenta los siguientes puntos:

-Por defecto las animaciones están a 10 fotogramas por segundo.
-La conversión de las imágenes a vídeo se hace con otro programa.
-Funciona en la versión 3.1.


Como se ve en la imagen, clic en la imagen para ver mas grande, cuando termines
tu animación agrega un nodo "Timer" como hermano de "AnimationPlayer".


Posicionamos la aguja al comienzo de la animación.




Ponemos el código al nodo padre de la escena como lo muestra
la primera imagen.

Código: [Seleccionar]
extends Node2D


var reproductor
var animacion
var pista
var duracion
var salto


var contador = 0
var temporizador


func crear_fotograma():
   var nombre = "frame_"
   var numero = str(contador * 10)
   var extencion = ".png"
   var img = get_viewport().get_texture().get_data()
   img.flip_y()
   img.save_png(nombre + numero + extencion)
   print("Frame: " + str(numero))




func avanza(_a):
   reproductor.seek(contador, true)
   reproductor.stop()
   crear_fotograma()
   contador += salto




func inicia():
   if contador >= duracion:
      reproductor.play(animacion)
      temporizador.stop()
      print("¡listo =)!")
   else:
      reproductor.play(animacion)




func _ready():
   #Nodo: AnimationPlayer
   reproductor = get_node("AnimationPlayer")
   #Nombre de tu animacion
   animacion = "subeybaja"
   pista = reproductor.get_animation(animacion)
   duracion = pista.get_length()
   salto = pista.get_step()
   reproductor.connect("animation_started", self, "avanza")
   temporizador = get_node("Timer")
   temporizador.set_wait_time(3.0)
   temporizador.connect("timeout", self, "inicia")
   temporizador.start()

Corremos la escena.


De forma automática la animación se ejecuta en cámara lenta
al mismo tiempo que se generan los fotogramas,
al terminar verán la palabra:
"¡listo =)!".


Las imágenes se encuentran en la carpeta del proyecto.


Nota:
Haz clic en la imágenes para verlas mas grandes.
Si estas en Linux, puedes convertir las imágenes a vídeo
con el comando:
ffmpeg -framerate 10 -i frame_%d.png Project.mp4

6
Tutoriales / Exporta de Blender a Godot 3D
« en: 08 de Mayo del 2019, 17:09 »

Para hacer eso posible necesitamos instalar un complemento,
funciona en Blender 2.70 en adelante.
https://github.com/godotengine/collada-exporter/archive/master.zip



Descargamos, descomprimimos y copiamos la carpeta: "io_scene_dae"
junto con el archivo: "godot_export_manager.py".




Dentro de la carpeta en la que se encuentra Blender, hay una carpeta
con el número de versión, en mi caso yo uso Blender 2.78, entonces
accedemos a la carpeta "2.78", ahora en la carpeta "scripts",
pegamos en la carpeta "addons". Si estas usando Linux
e instalastes Blender desde los repositorios entonces, pega en
"/usr/share/blender/scripts/addons/".




Abrimos Blender, desplegamos el menú "Archivo", seleccionamos
"Preferencias de usuario", nos vamos a la pestaña "Agregados",
en el buscador escribimos "collada", marcamos la casilla de la opción
"Import-Export: Better Collada Exporter", clic en "Guardar preferencias
de usuario".




Para exportar nos vamos al menú "Archivo" bajamos hasta "Exportar",
le damos en "Better Collada (.dae)", recuerda exportarlo en la carpeta
de nuestro proyecto godot.




Revisamos las opciones, en caso de que tu personaje tenga alguna
animación marca la casilla de "Export Animation", ahora seguimos
con "Export DAE".




Lo exportado se abre como una escena, abrimos el menú "Escenas",
presionamos "Abrir escena", lo seleccionamos, lo abrimos.



Nos aparece una ventana a la que le decimos "Nueva escena heredada".




Clic izquierdo sobre el nodo padre, "Cambiar tipo"
seleccionamos "Spatial", o el que necesitamos.



Guardamos la escena y esta lista para ser usada.


Nota:
Haz clic sobre la imagen para incrementar su tamaño.

7
Tutoriales / Godot 3D, Cámara de seguridad
« en: 07 de Mayo del 2019, 05:49 »
  La cámara sigue al personaje pero sin moverse.
Godot 3.1.

 

El orden de los nodos es el siguiente:



Código: [Seleccionar]

extends Camera



onready var protagonista = get_parent().get_node("Personaje")


func _physics_process(_delta):
var cliente = protagonista.get_global_transform().origin
var pos = get_global_transform().origin
var eje = Vector3(0, 1, 0)

var diferencia = pos - cliente
pos = cliente + diferencia
look_at_from_position(pos, cliente, eje)

8
Tutoriales / Godot 3D, Seguir un personaje
« en: 03 de Mayo del 2019, 01:30 »
  Un nodo seguidor



La parte frontal va en sentido contrario al Gizmo de: Z.



El Nodo que sigue se llama "Rastreador", el nodo seguido se llama "Personaje" y ambos son hermanos.



Código: [Seleccionar]

extends KinematicBody



var velocidad = 300 # Unidades / segundo


func _physics_process(delta):
#Nodo al que queremos seguir
var objetivo = get_parent().get_node("Personaje").get_translation()
look_at(objetivo, Vector3(0, 1, 0))
var mueve = (objetivo - get_translation()).normalized() * velocidad

move_and_slide(mueve * delta)

9
Tutoriales / Godot 3D, Cámara con retraso
« en: 02 de Mayo del 2019, 20:49 »
  Un seguimiento de cámara con retraso muy sencillo.
Godot 3.1.






Código: [Seleccionar]
extends Camera


var retraso = 30 # medio segundo


#Nodo al que queremos seguir
onready var cliente = get_parent().get_node("Personaje").get_translation()
onready var posicion = get_translation()
onready var separacion = posicion - cliente
var recorrido = []


func _physics_process(_delta):
cliente = get_parent().get_node("Personaje").get_translation()
recorrido.append(cliente + separacion)
if recorrido.size() >= retraso:
posicion = recorrido[0]
set_translation(posicion)
recorrido.remove(0)

10
Tutoriales / Godot 3D, Un personaje simple
« en: 02 de Mayo del 2019, 18:22 »

No hace uso del motor de física que trae Godot, esto puede ser útil para ahorrar recursos de la máquina.
Gira, se mueve adelante, se mueve para atrás, gira mientras se mueve, salta, se mueve mientras salta.
Godot 3.1.





Código: [Seleccionar]
extends KinematicBody


var gravedad = -9.8
var caida = 0
var velocidad_salto = 500 # Unidades / segundo
var velocidad_frontal = 300 # Unidades / segundo
var velocidad_rotacion = 20 # Grados / segundo
var giro = 0


func _physics_process(delta):
var direccion = 0

if Input.is_action_pressed("ui_left"):
giro += deg2rad(velocidad_rotacion * delta)
rotate_y(deg2rad(velocidad_rotacion * delta))

if Input.is_action_pressed("ui_right"):
giro -= deg2rad(velocidad_rotacion * delta)
rotate_y(-deg2rad(velocidad_rotacion * delta))

if Input.is_action_pressed("ui_up"):
direccion = -velocidad_frontal

if Input.is_action_pressed("ui_down"):
direccion = velocidad_frontal

var mover = Vector3(direccion, caida, 0).rotated(Vector3(0, 1, 0), giro) * delta
move_and_slide(mover, Vector3(0, 1, 0))

if is_on_floor():
caida = 0
if Input.is_action_pressed("ui_accept"):
caida = velocidad_salto
else:
caida += gravedad

func _ready():
pass

Páginas: [1]