xpanel, lxde, linux, fbpanel opensuse, linux, instalacion gtk3, gnome, ambienti grafici PS3, mandos, Play Station, Linux edubuntu, ubuntu, linux fedora, linux, discapacitados visuales fuduntu, fedora, ubuntu, linux, distribuciones inkscape, grafica, linux, editor tux, tuz, iconos, mascota, linux artistx, distro, linux, artistas, graficos

Como desarrollar videojuegos en 3D con Blender.

blender logoModelo del arma y la mano con su correspondiente rigging.
 
Si vamos a hacer un juego FPS es fundamental el detalle que debe tener el arma y la mano en el juego. Sabiendo que es el modelo visible es donde más se acentúa el detalle.
El programa fue inicialmente distribuido de forma gratuita pero sin el código fuente, con un manual disponible para la venta, aunque posteriormente pasó a ser software libre. Actualmente es compatible con todas las versiones de Windows, Mac OS X, Linux, Solaris, FreeBSD e IRIX.Tiene una muy peculiar interfaz gráfica de usuario, y se puede realizar la configuración personalizada de la distribución de los menús y vistas de cámara.
Parece una obviedad, pero el detalle tiene un límite, ya que no pueden usarse herramientas de subdivisión de malla, ni pueden superar una cantidad de polígonos, lo ideal sería que no supere los 4.000 sumando el arma y la mano.
Un ejemplo de detalle sería el Call of Duty donde el arma y la mano no superan los 5000 polígonos. 

La magia detrás de esto, lo hacen los mapas normales para obtener mayor resolución sin tener que sobrecargar el modelo con mas detalles, sino fuera por esta técnica, serían muy pocas las maquinas que soportarían los juegos.
Blender ademas de modelar y animar, tiene un motor de juego excelente, Blender Game Engine, uno de los motores para el desarrollo de videojuegos y animación en 3d.

Blender como tal integra toda la animación y los modelos 3d en su entorno de juego pudiendo así interactuar directamente con lo que se realiza. Entre la muchas características de BGE, también integra una serie de bloques lógicos, de modo que aun quien no sepa nada de programación puede hacer un juego completamente profesional.




Se crea el modelo de un arma, en este caso una Glock 17 con sus respectivas texturas,
desde la opción Normal dentro del campo de Texture le doy un relieve a la pistola.

Lo mismo con la mano, para poder ver las texturas en el BGE debemos activar la opción
GLSL dentro las preferencias de Display presionando la tecla N.

Pasamos ahora a unir los dos modelos y se añade un sistema de huesos a la pistola para poder
animarla.

La animación se compone de 9 frames, esto es importante ya que se debe tener una idea de
cuanto tiempo dura cada disparo.

Se puede utilizar un video para tener noción del tiempo:


 
Luego la animación terminada,
Hay que redimensionar los frames para que tengan un velocidad normal así que los dejé en 9.
Abriendo el Game Engine.

1) Pasamos del modo Default al BGE.
2) Cambiamos la ventana de render a Blender Game.
3) Apartado del editor, aqui crearemos los scripts que luego utilizaremos en nuestros juegos.
4) Logic Bricks, la parte lógica del BGE.

5) En la primer columna del Logic Bricks se encuentran los sensores, estos son los dispositivos de
entrada, Mouse, teclado, joystick, como también los elementos de detección de impactos, radar,
propiedades etc.
6) Funciones lógicas del motor, And, OR, XOR,XNAN... Ademas de usar propiedades y los scripts
de Python.
7) Actuators, en está columna controlaremos las acciones de los personajes y sus movimientos.
De igual forma con todo lo que interactue dentro del escenario del juego.
En la última imagen he seleccionado el Armature que controla a la mano, la pistola está emparentada
a los Huesos de la mano, o sea que toda la acción dentro del motor de juegos estará sujeta a lo
que acontezca al Armature "mano".

8) A la izquierda estan las propiedades que podemos añadirle al juego, para dar un ejemplo práctico. si queremos que el arma solo tenga 20 tiros, vamos a añadirle una propiedad Integer con el valor 20 que luego
utilizaremos.
Integer: propiedad que solo admite números enteros (Integer): 1 1000 -1 -369....
Float: admite números con decimal: 3,1416. 25,59...
String: "cadena" propiedad usada para los textos.
Boolean: Operador lógico que solo admite dos estados, True y False (verdadero o falso)
Botón presionado... True.... Botón no presionado.... False.
Timmer: contador de tiempo.

9) Vamos a crear una propiedad tipo Integer para poder llevar el tiempo que dura la animación del disparo.
Esto es para que no se encimen las animaciones y para que no se entrecorte el sonido
al apretar sucesivamente el mouse.
Se pone el nombre de "disparo" con un valor de 9 (tiempo que dura la animacion). Luego se activa la venta-
nita a la derecha del número para poder observar su acción dentro del motor de juegos. (Primero hay
que agregar Show debug Poperty dentro de la opción Game arriba a la izquierda de la pantalla).
10) Añadimos un sensor para el mouse, al ratón le daremos un evento Left botton, para que controlemos la acción pulsando el botón izquierdo del mouse.
11) Ahora le toca el turno a que la computadora piense, se agrega un controlador expression y le pondremos
los valores que se ven en la imagen.
Si al presionar el botón izquierdo del mouse: Mouse == True
Y si la propiedad de disparo es igual a 9, entonces se ejecuta la acción, de lo contrario hay que esperar que
el proceso termine.
12) Se agrega un Actuator, Action con el nombre de la animación correspondiente, configurando el tiempo
inicial y final, activando también la propiedad "disparo", esto hará que la propiedad sea controlada
por los frames que tiene el Action.
Por último se selecciona primeramente la pistola, luego con el botón secundario y el Shift mantenido.
Seleccionamos el hueso Armature mano, ahora nos habilitará la opción de poder linckear
la pistola, con la salida de la expresiónn que controla la acción.
Se finaliza con un sonido que se puede descargar de SoundBible, y dandole play end.
en las opciones, linkeandolo con la expression.

Contando las Balas que se utilizan
Dijimos que las propiedades nos permiten controlar los valores que le podemos asignar a los objetos.
Vamos a crear un contador de balas, si las balas llegan a 0 la acción se corta.

13) Agregaremos una propiedad interger con el valor 20 que serán las balas disponibles
14) Le asignamos la expresión "balas >0" para que la secuencia continúe mientras "balas" sea mayor
que "0".
15) En Actuators pondremos una propiedad colocando "balas" en el campo property, le daremos "add"
y que vaya restando balas con -1.
Presionamos P, y vemos como el cargador de balas va bajando a medida que disparamos.

Botón de recarga

Para terminar la secuencia de disparo.
Se agrega un Sensor Mouse con el evento del botón derecho, se crea otra expression,
Donde le diremos a la maquina que se active si el botón derecho está presionado
Mouse1==True y las balas sean igual a cero, balas==0.
Pasando a la propiedad, con la opción Assign y un valor de 20.
Bueno hasta aquí son los controles simple de la mano y su arma, luego esto sigue... pero esto
ya es otra historia....
 
Búsqueda personalizada
 
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Espero que esta publicación te haya gustado. Si tienes alguna duda, consulta o quieras complementar este post, no dudes en escribir en la zona de comentarios. También puedes visitar Facebook, Twitter, Google +, Linkedin, Instagram, Pinterest y Feedly donde encontrarás información complementaria a este blog. COMPARTE EN!

0 comentarios:

Publicar un comentario

No insertes enlaces clicables, de lo contrario se eliminará el comentario. Si quieres ser advertido via email de los nuevos comentarios marca la casilla "Avisarme". Si te ayudé con la publicación o con las respuestas a los comentarios, compártelo en Facebook,Twitter o Instagram. Gracias.

Archivo