Juegos en blender:FPS primera parte

Gracias a el magnifico tutorial de SDL que esta publicando fanta https://mierda.tv/tag/sdl/ (muy recomendable para quien quiera aventurarse en ese mundillo). me ha vuelto a entrar el gusanillo de terminar algún proyecto de juegos libres de los que tengo por hay pendientes y he pensado que hacer un tuto sobre un sencillo diseño de un fps(doom,quake,tremulus,etc..) en blender a lo mejor resultaba interesante.

Blender aunque no es algo especifico para crear videojuegos, nos permite hacerlo desde el GE(Game Engine) que trae, por defecto, así que vamos al lio.

Nota: Es importante estar “algo” familiarizado con la interfaz de blender, para no acabar como el típico meme de “travolta” xDD

Abrimos blender y nos cargamos el cubo que se genera por defecto seleccionándolo y pulsando la tecla X.

Ahora vamos a crear un cubo que simule ser nuestro personaje, en este caso nuestro personaje no sera visible puesto que normalmente en los fps no se suele ver una vista de el personaje solo el arma o el brazo que lo sujeta, pero es necesario realizar ese personaje para poder situar correctamente la vista de cámara tan típica de estos juegos.

Nos situamos en la vista de cámara frontal(numpad1) y creamos un cubo, simplemente pulsando espacio y escribiendo “cube”

Ahora que tenemos nuestro cubo que representa a nuestro personaje vamos a darle algo de forma rectangular, puesto que evidentemente el cubo es demasiado “bajo”, para ello bajos a “extruir” una cara del cubo hacia arriba. Con el cubo seleccionado pulsamos tab para entrar en el modo de edición de objeto, a continuación pulsamos a para de-seleccionar todas las caras y nos vamos a la vista desde izquierda (numpad3)

Necesitamos que nuestro cubo se convierta en una especie de prisma, por lo que vamos a realizar el proceso de extrusión, imprescindible en blender para transformar objetos sobre la cara superior de el cubo para “estirarlo” hacia arriba.
Para ello primero en la barra de selección de debajo seleccionamos caras, como podemos ver en la imagen.

Después volvemos a la vista desde arriba y seleccionamos la cara superior de nuestro cubo pulsando en ella con el botón derecho del ratón. Ahora con la cara seleccionada volvemos a nuestra vista desde la izquierda, y cambiamos la selección de caras a lados.

Empezamos nuestro proceso de extrusión simplemente pulsando la tecla e y moviendo el ratón hacia el eje de la z desplazándolo hacia arriba.

Ahora que disponemos de nuestro prisma, aunque algo raro(luego lo arreglaremos) necesitamos crear una superficie donde podamos desplazarnos, para ello bajamos a crear un plano debajo de nuestro prisma.
Nos situamos en la vista desde debajo(numpad7),cambiamos el modo de visión de nuestro objeto de solido a alambre y situamos el cursor 3d, en el centro de la base de nuestro prisma(todo ello siempre en el modo de edición).

Vamos a crear nuestro “suelo” creando un plano justo debajo, para ello simplemente pulsamos la tecla espacio y tecleamos “add plane”, ahora con nuestro plano seleccionado pulsamos la tecla s para escalarlo al tamaño que deseemos.

Recordar que estáis en le vista desde abajo, por lo que si queréis ver como queda vuestro suelo tendréis que cambiar de vista nuevamente.

Movimiento

Ahora que tenemos nuestro “suelo” vamos a dotar de movimiento a nuestro prisma para que se desplace por el, no importa si nuestro suelo es pequeño, puesto que podemos escalarlo sin problemas después.

Salimos de nuestro modo de edición, pulsado la tecla taby escalamos nuestro plano y prisma a unas dimensiones mas acordes. Ahora para poder dotar de movimiento necesitamos activar el menú de “logic mode” pero como no queremos perder el menú de la vista3d que es esencial, en blender, para ello blender nos permite re-dimensionar,crear,dividir menús, para facilitarnos el trabajo,vamos a posicionarnos sobre la barra del menu3d hasta que aparezca una cruz, y al pinchar sobre ella nos permita duplicar dicho menú. Ahora que tenemos dos menús, seleccionamos en uno de ellos el menu “logic mode” y lo maximizamos con el botón central del ratón para verlo correctamente.

Ahora con nuestro prisma seleccionado vamos a crear los sensores y controladores adecuados, para permitir su movimiento, con el teclado, para ello definimos el esquema lógico.

Primero vamos a probar el movimiento sobre nuestro objeto de manera muy sencilla, simplemente seleccionamos nuestro prisma en modo objeto y pulsamos la tecla g que nos va a permitir desplazar a nuestro objeto por la pantalla, si quermos restringir el movimiento a solo una dirección del eje, pulsamos a continuación la letra x(para el eje de la x) y(para el eje de la y) o z(para el eje de la z)

Por ejemplo si queremos que nuestro cubo avance hacia arriba, lo movemos restringiéndolo al eje de la Y, donde los valores positivos indicaran avanzar y los negativos retroceder.

El esquema es muy sencillo, elegimos en sensor(en nuestro caso keyboard) un controlador y un actuador, en la imagen veis que hemos elegido un sensor del tipo keyboard,porque queremos que este sea el que accione el movimiento,definiendo el movimiento como “up”, esto unido con un controlador and, desencadena en un actuador del tipo motion, donde indicamos que el objeto se desplaze 0.10 en la escala de la Y sobre el plano, si creamos la secuencia y unimos las flechas de la siguiente manera:

Y pulsáis p para activar el modo engine, veréis que no funciona, lo primero es que estamos en el modo render, no en el game engine, por lo que tendremos que cambiar el tipo de ventana arriba.

Ahora que estamos en el modo engine tenemso que definir nuestro objeto como carácter, para ello tenemos que acudir al menu derecho y elegir del tipo character.

Ahora ya podréis mover vuestro objeto sobre el eje de la Y, así que definimos también las direcciones abajo,izquierda,derecha.

Como veis lo único que tenemos que hacer es elegir el eje sobre el que nos queremos mover y si queremos mover, eligiendo números negativos o positivos.

Ahora ya podéis ver como vuestro prisma se mueve en todas las direcciones que hemos definido, en el siguiente tutorial veremos como ampliar este movimiento, y la cámara.

puppetmaster Written by:

6 Comments

  1. Mayo 10
    Reply

    Buena cosa :). Blender siempre.
    Hace unos años llegué a hacer algo sencillo con el BGE, en plan paseo virtual más que juego, nada serio.
    La verdad es que sorprende que blender valga para tantas cosas y que incluso sirva para crear juegos.

    • puppetmaster
      puppetmaster
      Mayo 12
      Reply

      La verdad es que es un “programazo” del que te das cuenta que sabes el 1% de lo que puede ofrecer,porque vale simplemente para todo xDD

  2. Chema Alonso
    Chema Alonso
    Mayo 10
    Reply

    nunca tuve una máquina medio decente para poder probarlo, pero tengo en muy buena consideración este programa. Hay cortos hechos con Blender que son una maravilla.

    gracias por la info puppet, como siempre :)

    • puppetmaster
      puppetmaster
      Mayo 12
      Reply

      Chema no requiere mucho, yo lo tengo funcionando en casa en un portátil de hace mas de 10 años, sin problemas, eso si tengo 8GB de ram y supongo que eso suplirá las carencias de procesador y gráfica ;) .

      • Mayo 12
        Reply

        Con 512 megas de ram puedes hacer cositas :). Yo tengo blender en amigaOS4.1 sobre una SAM440 con 512Mb de RAM y puedo perfectamente hacer cosas (aunque siempre el renderizar mejor que no sean muy complejas que se tirará mucho tiempo). Pero lo que es ejecutarlo y probar con cualquier mierda de ordenador sirve.

  3. portaro
    Mayo 11
    Reply

    Gracias por compartir.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax