Comandos
Para vistas en perspectiva
Con boton derecho del ratón S, W, D
Nodos de geometrías constructivas de sólidos (CSG)
Nos permiten incluir en nuestro mundo geometrías simples. vamos a agregar un CSGBox y los vamos a duplicar con Ctrl+D y los vamos a posicionar y escalar de la siguiente forma
Luego agregamos el nodo CSGCombiner y arrastramos los objetos necesarios
Al objeto que agregaremos el material debemos crearle un "Nuevo SpatialMaterial". Luego arrastramos las texturas donde corresponda
Entre las opciones del inspector tenemos el "Depth Range" que sirve para definir la optimización de la luz y las sombras que podemos activar
Colisión
Fuerzas
Agregaremos un visual script al personaje
Lo que queremos hacer es que el cuerpo rígido se mueva mediante el motor de físicas pero solo cuando el usuario presione las teclas de dirección. Para ello:
1. Agregamos el nodo "physics_prosses (float)" desde el icono de la carpeta a la derecha de "funciones"
2. Agregaremos un nodo para restringir las acciones a una tecla determinada llamado "condition" y lo unimos con el puerto de salida de la función "physics process"
3. Agregamos el nodo "action" y lo conectamos a la entrada "bol" del nodo condition. Luego en inspector debemos definir al tecla que en nuestro caso será el "ui_up"
4. Ahora necesitamos un nodo que nos permite aplicar una fuerza a nuestro cuerpo rígido para que se mueva en una dirección determinada. Usaremos el nodo "Add central Force (vector3)", modificamos la fuerza en el eje z de este nodo a -2 y lo conectaremos con la salida true del nodo condition
5. Ahora debemos pasar el mismo código al resto de teclas de dirección. Para ello los tres nodos (Action, Condition y add_central_force) los duplicaremos con Ctrl+D
6. Cambiaremos la tecla de cada nodo action y la fuerza de cada uno:
ui_down - force: x0, y0, z2,
ui_left - force: x-2, y0, z0
ui_right - force: x-2, y0, z0
7. Para no limitar el movimiento y ejecutar varias acciones a la vez para desconectaremos el nodo funcion del primer nodo, agregaremos el nodo "sequence", en inspector aumentaremos el numero de steps a 4, y desde las 4 salidas que se han agregado los conectaremos con cada entrada If de cada nodo dondition respectivamente
8. Finalmente uniremos el nodo "physics_prosses (float)" con el "sequence"
Cámara
Agregamos un nodo cámara como hijo del nodo principal, en inspector activamos Current para que ésta cámara sea la principal, luego la ajustamos y en vista previa podemos ver la captura de la cámara
Ahora necesitamos que la cámara siga a nuestro personaje principal, para ello agregaremos un visual script a la cámara y haremos los siguientes pasos:
1. Agregamos la función "prosses (float)" desde el icono de la carpeta a la derecha de "funciones" que nos permitirá ejecutar el código en un bucle cuya velocidad depende de los fotogramas pro segundo del video juego
2. Agregaremos el nodo "Look At" que nos permite que la cámara mire siempre hacia una zona determinada, entonces unimos lso puertos de suencia de ambos nodos
3. El nodo Look at tiene dos puertos de entrada de datos. El puerto target permite especificar el punto al que debe mirar la cámara. Nosotros queremos que este sea el personaje, por lo tanto seleccionaremos el cuerpo rígido y desde inspector arrastraremos la propiedad de traslación hacia la ventana de scrip con Ctrl presionado para obtener el vector traslation. El nodo creado lo vamos conectar con la entrada target del nodo Look at
4. El segundo puerto de entrada dle nodo Look at permite especificar el vector de rotación Debemos modificar el valor de Y a 1 ya que este representa el eje vertical y positivo de la cámara
Nodo Área
Agregaremos un nodo "Area" como hijo del nodo principal, lo posicionaremos y agregaremos un objeto con su material y sus dimensiones pertinentes, luego agregaremos el nodo collision shape como cilindro y lo ajustamos
Animación
Ahora crearemos la animación de éste ítem agregando el nodo "AnimationPlayer", y luego en la nueva ventana creada agregaremos una nueva animación
Luego pulsamos el botón en agregar pista y seleccionamos "pista de propiedades". Allí buscamos primeramente el objeto que presenta la animación que es el item, aceptamos y luego buscamos el tipo de animación que queremos hacer que es "rotación"
Extendemos el tiempo a 4 segundos y habilitaremos la opción loop para que la animación sea constante, luego agregaremos un fotograma clave en 0, luego rotaremos el item 180° en el eje Y y añadiremos un keyframe en el 2, luego rotaremos 360 en el eje Y y añadiremos un keyframe en el 4. Finalmente activaremos la opción "Auto reproducir al cargar"
Sistema de partículas
Vamos a agregar un sistema de partículas que se active cuando haya collision con la moneda, para ello vamos a agregar el nodo "particles" como hijo del ítem. Teniendo seleccionado el nodo vamos a "inspector" y modificaremos las siguientes propiedades:
1. En "Draw passes" vamos a escoger un tipo de geometría que en nuestro caso será "Quad mesh"
2. En Geometry vamos a agregar un "Special material"
3. Dentro del material le daremos una textura (que en nuestro caso será una estrella)
4. Dentro del material en las opciones de Flags activaremos transparencia para que elimine el fondo trasparenete de la imagen png y "unshaded" para que evite que las iluminación afecte a la imagen
5. Dentro del material en la ventana "vertex color" activaremos la opción "usar como albedo" que nos permitirá modificar la textura usando la propiedad color del sistema de partículas
6. Dentro de la pestaña parameters iremos a la opción Billboard Mode y activaremos la opción "Billboard particle". De ésta forma la imagen de partículas siempre estará orientada a la dirección de la cámara
7. Volviendo a las propiedades del sistema de partículas vamos a crear un material físico para que procese las partículas. Para ello en la pestaña process material agregaremos un "nuevo material de partículas"
8. Dentro del material vamos a modificar la dirección de emisión para lanzar las partículas hacia arriba. X 0, Y 1, Z 0
9. Dentro del material modificaremos Initial velocity a 2
10. Dentro del material modificaremos la escala a 0.1 y crearemos un "Nuevo scale curve texture"
11. Ahora podemos decirle a Godot que cada partícula disminuirá su tamaño en el tiempo desde 0.1 unidad hasta 0.05 unidades. Para ello abrimos la curva y la ajustamos agregando puntos
12. Ahora agregaremos una rampa de color en color ramp creamos un "Nuevo Gradient texture". Sobre la textura creada,
13. Seleccionando el nuevo Gradient texture crearemos un "Nueva gradient" y los ajustaremos poniendo primeramente un blanco y terminando con transparencia para que las particulas se desvanezcan al final de su vida
13. Ahora necesitamos que las partículas solo se emitan una vez como si se tratara de una explosión. Para ello, en time, activaremos la opción "One shot" y aumentaremos a 1 el "Explosiveness"
14. Para activar el sistema de partículas activamos "Emithing"
Interacción
Necesitamos crear una acción cuando el nodo rígido entre en contacto con el nodo area. Para ello vamos a crear un script de visualscript en el item:
1. Teniendo seleccionado el item vamos a las opciones de señales, seleccionamos "Body_entred (Body: Node) y lo conectamos con el mismo item
2. Para identificar si el cuerpo rígido a entrado en contacto con el area debemos agregar el nodo "type cast", y los conectamos respectivamente
3. Teniendo el nodo "type cast" seleccionado iremos a la propiedad "base script" de la ventana inspector y añadiremos desde el icono de carpeta el script del personaje
4. Como queremos hacer invisible la moneda al entrar el contacto seleccionaremos la moneda y arrastraremos al propiedad "Visibility" desde inspector y lo uniremos con el puerto de secuencia de salida del nodo type cast y desabilitamos la visibilidad colocando "false"
5. Seleccionamos el nodo collision y arrastraremos la propiedad "desable" desde inspector y los conectaremos como secuencia y lo habilitaremos con "True"
6. Seleccionamos el nodo "particles" y arrastraremos la propiedad "Emitting" desde inspector y los conectaremos como secuencia y lo habilitaremos con "True"
7. Seleccionamos el nodo de sonido que tengamos y arrastraremos la propiedad "playing" desde inspector y los conectaremos como secuencia y lo habilitaremos con "True"
Fuera del juego
Crearemos un nodo área y dentro de este un nodo collision. Al nodo collision debemos cambiarle la forma a boxshape, lo ajustamos y lo posicionaremos en el lugar donde el personaje estará fuera de juego que en este caso a bajo del agujero
Ahora agregamos un script con los siguientes pasos:
1. Agregamos la señal body_entered (body: Node)
2. Agregamos el nodo "type cast", en "base script" agregamos el script del personaje y conectamso e nodo por ambos puertos en secuencia del nodo body_entered
3. Hacemos clic sobre el cuerpo rígido del personaje y arrastraremos al propiedad traslación desde la ventana inspector y lo conectamos con el nodo de secuencia de salida Yes del nodo type cast. Ésto es para resetear la posición
4. Para frenar la velocidad arrastraremos la propiedad velocity linear y la propiedad velocity angular y los conectaremos como secuencia
Entorno
Para crear un entorno agregamos el nodo "WorlEnviroment" y en inspector cargamos uno nuevo
Si le damos clic al enviroment abriremos todas las propiedades.
Background. Aquí podemos elegir un fondo para nuestro escenario 3d. Si agregamos skype nos dará un cielo azul a nuestro fondo agregando un "Nuevo procedural skype". Si queremos cambiar las propiedades del cielo como la tonalidad, el tamaño y la orientación del sol le damos clic al procedural skype creado
Screen space reflection. Permite añadir reflecciones a nuestro escenario pero consume hartos recursos. Para mejorar la calidad aumentamos el valor de la propiedad "Max steps"
Screen space ambient oclusion. Permite atenuar la luz en aquellas zonas que se encuentran ocluidas como habitaciones
Compilación
Permite traducir las instrucciones del código de un programa a un lenguaje conocido como "lenguaje maquina". Gracias a este lenguaje la plataforma de juego puede interpretar las instrucciones y ejecutar la aplicación. Éste "lenguaje maquina" depende de la plataforma a la que irá destinada el juego. Para ello debemos ir a "exportar" de proyecto y en añadir seleccionamos la plataforma a utilizar
Cuando es la primera vez que intentamos exportar un proyecto la aplicación nos informará que actualmente no existen plantillas de información, las cuales permiten traducir el código fuente al lenguaje maquina. Para usar estas plantillas debemos descargarlas. Para ello debemos ir primeramente a "Administrar Plantillas de Exportación"
Luego de que se complete la descarga cerramos
Apuntes tomados del siguiente tutorial:
https://www.youtube.com/watch?v=5Ipz6VW4fZE&list=PL2FA591jQnK-m2DtY4FShePYX6iW1HuTh&index=34
Para vistas en perspectiva
Con boton derecho del ratón S, W, D
Nodos de geometrías constructivas de sólidos (CSG)
Nos permiten incluir en nuestro mundo geometrías simples. vamos a agregar un CSGBox y los vamos a duplicar con Ctrl+D y los vamos a posicionar y escalar de la siguiente forma
Vamos a agregar un cubo que atraviese el suelo y activaremos la opción subtraction para poder hacer una boleana
Luego agregamos el nodo CSGCombiner y arrastramos los objetos necesarios
Luego descargaremos y arrastraremos unas texturas a una carpeta que crearemos
Al objeto que agregaremos el material debemos crearle un "Nuevo SpatialMaterial". Luego arrastramos las texturas donde corresponda
Para generar un mapa UVque tenga en cuenta la escala y orientación de los planos debemos activar la opción tripleanar y podemos cambiar los valores
Luz
Tenemos tres tipos de luz, la luz omnidireccional, la luz discrecional que es como un sol que no varía según su posición si no su rotación, y la luz foco. Vamos a usar la luz direccional
Entre las opciones del inspector tenemos el "Depth Range" que sirve para definir la optimización de la luz y las sombras que podemos activar
RigiBody
Colisión
Fuerzas
Agregaremos un visual script al personaje
Lo que queremos hacer es que el cuerpo rígido se mueva mediante el motor de físicas pero solo cuando el usuario presione las teclas de dirección. Para ello:
1. Agregamos el nodo "physics_prosses (float)" desde el icono de la carpeta a la derecha de "funciones"
2. Agregaremos un nodo para restringir las acciones a una tecla determinada llamado "condition" y lo unimos con el puerto de salida de la función "physics process"
3. Agregamos el nodo "action" y lo conectamos a la entrada "bol" del nodo condition. Luego en inspector debemos definir al tecla que en nuestro caso será el "ui_up"
4. Ahora necesitamos un nodo que nos permite aplicar una fuerza a nuestro cuerpo rígido para que se mueva en una dirección determinada. Usaremos el nodo "Add central Force (vector3)", modificamos la fuerza en el eje z de este nodo a -2 y lo conectaremos con la salida true del nodo condition
5. Ahora debemos pasar el mismo código al resto de teclas de dirección. Para ello los tres nodos (Action, Condition y add_central_force) los duplicaremos con Ctrl+D
6. Cambiaremos la tecla de cada nodo action y la fuerza de cada uno:
ui_down - force: x0, y0, z2,
ui_left - force: x-2, y0, z0
ui_right - force: x-2, y0, z0
7. Para no limitar el movimiento y ejecutar varias acciones a la vez para desconectaremos el nodo funcion del primer nodo, agregaremos el nodo "sequence", en inspector aumentaremos el numero de steps a 4, y desde las 4 salidas que se han agregado los conectaremos con cada entrada If de cada nodo dondition respectivamente
8. Finalmente uniremos el nodo "physics_prosses (float)" con el "sequence"
Cámara
Agregamos un nodo cámara como hijo del nodo principal, en inspector activamos Current para que ésta cámara sea la principal, luego la ajustamos y en vista previa podemos ver la captura de la cámara
Ahora necesitamos que la cámara siga a nuestro personaje principal, para ello agregaremos un visual script a la cámara y haremos los siguientes pasos:
1. Agregamos la función "prosses (float)" desde el icono de la carpeta a la derecha de "funciones" que nos permitirá ejecutar el código en un bucle cuya velocidad depende de los fotogramas pro segundo del video juego
2. Agregaremos el nodo "Look At" que nos permite que la cámara mire siempre hacia una zona determinada, entonces unimos lso puertos de suencia de ambos nodos
3. El nodo Look at tiene dos puertos de entrada de datos. El puerto target permite especificar el punto al que debe mirar la cámara. Nosotros queremos que este sea el personaje, por lo tanto seleccionaremos el cuerpo rígido y desde inspector arrastraremos la propiedad de traslación hacia la ventana de scrip con Ctrl presionado para obtener el vector traslation. El nodo creado lo vamos conectar con la entrada target del nodo Look at
4. El segundo puerto de entrada dle nodo Look at permite especificar el vector de rotación Debemos modificar el valor de Y a 1 ya que este representa el eje vertical y positivo de la cámara
Nodo Área
Agregaremos un nodo "Area" como hijo del nodo principal, lo posicionaremos y agregaremos un objeto con su material y sus dimensiones pertinentes, luego agregaremos el nodo collision shape como cilindro y lo ajustamos
Animación
Ahora crearemos la animación de éste ítem agregando el nodo "AnimationPlayer", y luego en la nueva ventana creada agregaremos una nueva animación
Extendemos el tiempo a 4 segundos y habilitaremos la opción loop para que la animación sea constante, luego agregaremos un fotograma clave en 0, luego rotaremos el item 180° en el eje Y y añadiremos un keyframe en el 2, luego rotaremos 360 en el eje Y y añadiremos un keyframe en el 4. Finalmente activaremos la opción "Auto reproducir al cargar"
Sistema de partículas
Vamos a agregar un sistema de partículas que se active cuando haya collision con la moneda, para ello vamos a agregar el nodo "particles" como hijo del ítem. Teniendo seleccionado el nodo vamos a "inspector" y modificaremos las siguientes propiedades:
1. En "Draw passes" vamos a escoger un tipo de geometría que en nuestro caso será "Quad mesh"
2. En Geometry vamos a agregar un "Special material"
3. Dentro del material le daremos una textura (que en nuestro caso será una estrella)
4. Dentro del material en las opciones de Flags activaremos transparencia para que elimine el fondo trasparenete de la imagen png y "unshaded" para que evite que las iluminación afecte a la imagen
5. Dentro del material en la ventana "vertex color" activaremos la opción "usar como albedo" que nos permitirá modificar la textura usando la propiedad color del sistema de partículas
6. Dentro de la pestaña parameters iremos a la opción Billboard Mode y activaremos la opción "Billboard particle". De ésta forma la imagen de partículas siempre estará orientada a la dirección de la cámara
7. Volviendo a las propiedades del sistema de partículas vamos a crear un material físico para que procese las partículas. Para ello en la pestaña process material agregaremos un "nuevo material de partículas"
8. Dentro del material vamos a modificar la dirección de emisión para lanzar las partículas hacia arriba. X 0, Y 1, Z 0
9. Dentro del material modificaremos Initial velocity a 2
10. Dentro del material modificaremos la escala a 0.1 y crearemos un "Nuevo scale curve texture"
11. Ahora podemos decirle a Godot que cada partícula disminuirá su tamaño en el tiempo desde 0.1 unidad hasta 0.05 unidades. Para ello abrimos la curva y la ajustamos agregando puntos
12. Ahora agregaremos una rampa de color en color ramp creamos un "Nuevo Gradient texture". Sobre la textura creada,
13. Seleccionando el nuevo Gradient texture crearemos un "Nueva gradient" y los ajustaremos poniendo primeramente un blanco y terminando con transparencia para que las particulas se desvanezcan al final de su vida
14. Para activar el sistema de partículas activamos "Emithing"
Interacción
Necesitamos crear una acción cuando el nodo rígido entre en contacto con el nodo area. Para ello vamos a crear un script de visualscript en el item:
1. Teniendo seleccionado el item vamos a las opciones de señales, seleccionamos "Body_entred (Body: Node) y lo conectamos con el mismo item
2. Para identificar si el cuerpo rígido a entrado en contacto con el area debemos agregar el nodo "type cast", y los conectamos respectivamente
3. Teniendo el nodo "type cast" seleccionado iremos a la propiedad "base script" de la ventana inspector y añadiremos desde el icono de carpeta el script del personaje
4. Como queremos hacer invisible la moneda al entrar el contacto seleccionaremos la moneda y arrastraremos al propiedad "Visibility" desde inspector y lo uniremos con el puerto de secuencia de salida del nodo type cast y desabilitamos la visibilidad colocando "false"
5. Seleccionamos el nodo collision y arrastraremos la propiedad "desable" desde inspector y los conectaremos como secuencia y lo habilitaremos con "True"
6. Seleccionamos el nodo "particles" y arrastraremos la propiedad "Emitting" desde inspector y los conectaremos como secuencia y lo habilitaremos con "True"
7. Seleccionamos el nodo de sonido que tengamos y arrastraremos la propiedad "playing" desde inspector y los conectaremos como secuencia y lo habilitaremos con "True"
Fuera del juego
Crearemos un nodo área y dentro de este un nodo collision. Al nodo collision debemos cambiarle la forma a boxshape, lo ajustamos y lo posicionaremos en el lugar donde el personaje estará fuera de juego que en este caso a bajo del agujero
Ahora agregamos un script con los siguientes pasos:
1. Agregamos la señal body_entered (body: Node)
2. Agregamos el nodo "type cast", en "base script" agregamos el script del personaje y conectamso e nodo por ambos puertos en secuencia del nodo body_entered
3. Hacemos clic sobre el cuerpo rígido del personaje y arrastraremos al propiedad traslación desde la ventana inspector y lo conectamos con el nodo de secuencia de salida Yes del nodo type cast. Ésto es para resetear la posición
4. Para frenar la velocidad arrastraremos la propiedad velocity linear y la propiedad velocity angular y los conectaremos como secuencia
Entorno
Para crear un entorno agregamos el nodo "WorlEnviroment" y en inspector cargamos uno nuevo
Si le damos clic al enviroment abriremos todas las propiedades.
Background. Aquí podemos elegir un fondo para nuestro escenario 3d. Si agregamos skype nos dará un cielo azul a nuestro fondo agregando un "Nuevo procedural skype". Si queremos cambiar las propiedades del cielo como la tonalidad, el tamaño y la orientación del sol le damos clic al procedural skype creado
Screen space reflection. Permite añadir reflecciones a nuestro escenario pero consume hartos recursos. Para mejorar la calidad aumentamos el valor de la propiedad "Max steps"
Screen space ambient oclusion. Permite atenuar la luz en aquellas zonas que se encuentran ocluidas como habitaciones
Compilación
Permite traducir las instrucciones del código de un programa a un lenguaje conocido como "lenguaje maquina". Gracias a este lenguaje la plataforma de juego puede interpretar las instrucciones y ejecutar la aplicación. Éste "lenguaje maquina" depende de la plataforma a la que irá destinada el juego. Para ello debemos ir a "exportar" de proyecto y en añadir seleccionamos la plataforma a utilizar
Cuando es la primera vez que intentamos exportar un proyecto la aplicación nos informará que actualmente no existen plantillas de información, las cuales permiten traducir el código fuente al lenguaje maquina. Para usar estas plantillas debemos descargarlas. Para ello debemos ir primeramente a "Administrar Plantillas de Exportación"
Luego de que se complete la descarga cerramos
Ahora seleccionamos el window destok, la carpeta de destino, realizamos los ajusten necesarios y exportamos proyecto
Apuntes tomados del siguiente tutorial:
https://www.youtube.com/watch?v=5Ipz6VW4fZE&list=PL2FA591jQnK-m2DtY4FShePYX6iW1HuTh&index=34
No hay comentarios:
Publicar un comentario