En el anterior articulo dejamos definidos el movimiento de nuestro personaje en las direcciones de arriba,abajo,izquierda y derecha, estos movimientos son básicos en los fps, pero se necesitan además movimientos especiales como correo,saltar,etc.. Nosotros vamos a definir simplemente el movimiento de saltar y correr, de forma muy sencilla. Para definir «saltar» tan solo tenemos que definir una secuencia lógica como la que definimos en los demás movimientos, pero en vez en incrementar las coordenadas simplemente marcamos la pestaña «jump» Para definir «correr» también lo hacemos de manera sencilla, lo definimos igual que «up» pero simplemente incrementamos el eje de la Y en 0.20 o 0.30 en vez de 0.10 para que nuestro personaje avance el doble o triple de lo que avanza normalmente.
Definiendo nuestro personaje y cámara
Bien ya tenemos definido a nuestro personaje y su movimiento, pero esto no tiene pinta de fps todavía por lo que vamos a ello. Para empezar nuestro personaje necesita un arma, que podríamos modelar, pero que nos llevaría a otro tema por lo que mejor es usar cualquiera de los repositorios libres de recursos 3d en blender, donde podéis obtener todo tipo de construcciones,personajes,armas,vehículos,etc.. como estos https://free3d.com/3d-models/weapons https://www.blender-models.com/model-downloads/weapons/ Para ello simplemente descargamos el archivo .blend y lo importamos a blender.
Para importarlo pulsamos en el menu «append» accedemos al directorio donde se encuentre nuestro archivo y pulsamos en «append from library» En mi caso voy a importar un rifle que podéis bajar de aquí Con el rifle seleccionado, pulsamos g y movemos el rifle y con la tecla r lo rotamos, para que quede colocado mas o menos como la siguiente imagen:
Para ver si estamos colocando correctamente el rifle en la posición donde se moverá nuestro personaje, nos vamos a la vista desde arriba(numpad7) y activamos el game engine con p y movemos nuestro personaje arriba y abajo, aunque realmente si nos fijamos en el eje de coordenadas que tenemos en la vista3d no necesitamos esto.
Ahora colocamos nuestro rifle dentro de nuestro personaje moviéndolo con la letra g, pero restringiendo el movimiento solo al eje x pulsando la tecla x para que quede mas o menos así:
Camara Si cambiáis a la vista de cámara(numpad0) veréis que nos muestra una vista desde arriba donde se ve nuestro personaje(el prisma) y el rifle, pero esta no es la vista de cámara que tienen los fps, por lo que vamos a eliminar nuestra cámara, para crear otra que situaremos apuntando al rifle.
Para eliminar la cámara simplemente la seleccionamos y pulsamos la tecla x (tendréis que minimizar la vista para verla)
Vamos a crear nuestra cámara, para ello primero nos situamos en la vista desde arriba(numpad7), situamos el cursor3d en una posición paralela a nuestro rifle, y añadimos la cámara pulsando la tecla espacio y escribiendo «add camera» una vez creada nuestra cámara la movemos y rotamos para que quede como mas o menos como en la siguiente imagen:
Para que cuando pasemos a la vista de cámara(numpad0) tengamos una vista parecida a esta:
Ahora ya tenemos una vista mas típica de un fps, pero claro tenemos un problema si empezamos a avanzar nuestro personaje, perdemos la vista de cámara y el rifle, para que esto no ocurra tenemos que configurar una serie de cosas:
Establecer relación padre/hijo entre nuestra cámara y nuestro personaje y nuestra cámara y el rifle:
- Cámara/personaje: Tan solo tenemos que seleccionar nuestro cámara, mantener pulsado la tecla shift y seleccionar nuestro personaje(el prisma) ahora con ellos seleccionados pulsamos ctrl+p y seleccionamos la opción object(la primera que aparece).
- Rifle/cámara: De-seleccionamos la anterior pulsamos en la tecla a y hacemos lo mismo que antes pulsamos nuestro rifle, mantenemos shift y pulsamos en nuestra cámara usamos ctrl+p y seleccionamos object.
Ahora si pulsamos p para activar el game engine y movemos nuestro personaje veremos que el rifle se viene con nosotros.
Moviendo la cámara
Con las relaciones establecidas que tenemos necesitamos dotar de movimiento a a la propia cámara para que esta no solo se encargue se seguir a nuestro personaje, si no que también se mueva con el, para ello encontré un sencillo script que podéis bajar de aqui
Ahora vamos a crear en nuestro editor lógico una serie de controles y sensores que actuaran con el script para permitirnos esto.
-
Seleccionamos nuestro personaje(cubo/prisma) y creamos un sensor de tipo simple motion llamado LeftRight este es el nombre que tiene en el script de python, si queréis cambiarlo por otro también tendréis que cambiarlo en el script.
-
De-seleccionamos todo y seleccionamos nuestra cámara creamos un sensor del tipo mouse «movement» llamado MouseLook, un controlador python y un actuador simple motion llamado UpDown(este es el nombre que tiene en el script de python, si queréis cambiarlo por otro también tendréis que cambiarlo en el script como el ejemplo anterior) Y teniendo seleccionados nuestro personaje y la cámara, creamos el siguiente enlace mediante las flechas.
OJO:Tenemos que tener los dos objetos seleccionados porque el actuador llamado LeftRight es del objeto cubo(nuestro personaje)
Scripting
El engine de blender BGE permite usar scripts en python para programar todas las tareas lógicas, de forma muy sencilla tan solo tenemos que cargar el script y indicarlo en el controlador Mouselook.py donde lo queramos usar, como siempre para no liarnos con el interfaz lo mejor es crear otra ventana donde carguemos el script.
Ahora una vez cargado le indicamos el nombre del archivo en el controlador:
Si Seleccionamos tanto la cámara, como nuestro personaje(cubo/prisma) el esquema tiene que quedar como el siguiente:
Si hemos echo todo correctamente tan solo tendremos que acudir a nuestra vista podremos mover la cámara con el ratón y nuestro personaje con las flechas de dirección, sin que la cámara nos pierda de vista.
Para arreglar la vista en la vista de camara(numpad0) tendremos que subir la lampara un poco mas arriba para que le de luz a nuestro personaje y el rifle y escalar nuestro personaje para reducirlo, para ello tenemos que usar la secuencias que aprendimos en otros capítulos de la letra s para escalar y g para mover, una vez que tengamos una vista tal que así.
Ahora si volvemos a la vista de camera(numpad0) y cambiamos el modo solido, tendremos una vista de nuestro rifle como esta:
Probar a moveros por el escenario, usando las flechas de dirección y la vista de cámara usando el ratón,en el próximo capitulo veremos el disparo y las colisiones con otros objetos.
Espero no ser un quejicoso…pero el problema de Blender como motor de videojuegos, es que no se puede exportar de manera «muy estándar» a distintas plataformas.
Pero no obstante, gracias por el tutorial.
si tienes el «codigo» se puede «jugar»directo sin exportar
otra entrada mas y me pongo a cacharear… gracias por la labor
que maravilla . Buen curre :).
no me deja usar el movimiento del mouse y revise 7 veces y no puedo
¿Has comprobado que el gamelogic esta enlazado correctamente? https://elbinario.net/wp-content/uploads/2017/05/tuto_blender_12-600×107.png y que el nombre del script en python esta escrito de manera correcta?
como se llama el script?? que no cacho
Tengo una duda, yo ya tengo un juego, y la exporte, pero la quiero compartir con amigos, al compartir todos los archivos necesarios de mi juego de blender a ellos les aparece un error que no se pueden meter ¿Cómo puedo compartir mi juego?
Buenas, ¿exportaste el player ? https://docs.blender.org/manual/en/2.79/game_engine/blender_player.html
Tambien puedes tener problemas si no tienes incluidas las texturas de tus modelos dentro del archivo blend.
Suerte, un saludo
como se llama el script? que no cacho nada porfa
Mouselook.py comprueba que el nombre esta teclado correctamente en el GameLogic y enlazado al sensor de la camara y a el movimiento.
Un saludo