2 - 'Cut Brushes' y 'Models':

'Cut brushes' se refiere a los 'brushes' (cubos, conos, esferas, etc...) que utilizaremos para introducir en otros 'brushes' para realizar recortes en estos.

Con 'Models' se podrán asociar uno o varios 'brushes' bajo un mismo nombre para ser utilizados en ciertas entidades.


Ahora ya estamos listos para crear nuestra segunda habitación, que uniremos a la primera a través de un pasadizo.


Activar el modo 'template' en la barra y seleccionar la pestaña 'template', crear una segunda caja de la misma forma que lo hicimos anteriormente. Para este ejemplo asegúrate de que las dos habitaciones tienen las mismas dimensiones para evitar problemas de unión al compilar el nivel.


Ahora realizaremos el pasadizo. Crea una tercera caja y únela entre las dos habitaciones que ya tenemos creadas:




Ahora tenemos tres habitaciones juntas, pero sin ninguna conexión entre ellas. Es el momento de crear un 'Cut Brush' para recortar un par de puertas en dos paredes del pasillo para conectar el pasillo con las dos habitaciones.

Utiliza el mismo botón que hemos utilizado hasta ahora para crear una habitación, pero en lugar de marcar 'Hollow' marcaremos 'Solid' y también 'Cut Brush'. Coloca esta caja como se indica a continuación, para evitar posibles errores llamados 'leaks' en la compilación del nivel:



Si has utilizado un 'Cut Brush' para recortar un bloque y parte de ese recorte no da al interior de tu escenario, en la consola de compilación te aparecerá un error como este:


*****************************************
* *** LEAK *** *
* Level is NOT sealed. *
* Optimal removal will not be performed.*
*****************************************
Failed to remove hidden leafs.
Compile Failed: GBSP_CreateBSP encountered an error, GBSPLib.Dll.

No debes dejar ninguna zona de tu escenario expuesta al vacío, de lo contrario te aparecerá el error anterior. Para resolver esto comprueba en tu escenario que los 'brushes' que quieres recortar están perfectamente unidos a otros 'brushes'.

Aquí puedes ver una situación que presentaría ese error en nuestro ejemplo:



Continuando con nuestro ejemplo, con este cubo sólido 'Cut Brush' colocado de tal manera que entra en las paredes de las dos habitaciones, se producen unas aberturas en esas paredes de las habitaciones y en el pasillo que las une.


Ahora salva y compila para apreciar en profundidad y en primera persona el aspecto de tu creación.
Cuando estés satisfecho con tu trabajo, a continuación crearemos algún tipo de decoración para nuestro nivel, pero si quieres, experimenta por ti mismo con lo que ya sabes. No hay límites, excepto las limitaciones físicas del propio motor 3D.


Bien, cuando hayas finalizado tus experimentos, construiremos un mueble con una puerta que se abrirá y cerrará cuando alguien se acerque.

Crearemos una caja sólida con las dimensiones de un armario aproximadamente, más o menos la mitad de la altura de la habitación.

Después de aplicarle la adecuada textura, creamos otra caja sólida, pero esta vez con 'Cut brush' marcado, para realizar un hueco en la anterior caja, para representar el espacio interior del mueble. Así que reescala esta caja 'Cut brush' hasta tener las dimensiones de lo que sería el espacio interior del mueble. Seguidamente colócala en el interior de la caja que representa nuestro mueble. De la misma forma que sucedió con el pasadizo, al insertar este 'Cut brush' en el interior de otro 'brush', se ha realizado un hueco en este último.

Realiza una compilación para comprobar el resultado, tienes que poder ver un armario vacío:



A continuación crearemos una puerta (otra caja sólida) sin demasiado grosor (no olvides reducir el parámetro 'Wall Thickness') y la pondremos justo en frente de la abertura de nuestro mueble. Ahora asegúrate de tener seleccionado este 'brush' que representa la puerta de nuestro armario, que será lo que se abrirá cuando alguien se acerque:



Nota: Si creas puertas que se abren en bisagra, como esta, es conveniente que establezcas estas puertas como 'Window' en lugar de 'Solid', de lo contrario el personaje tendrá muchos problemas para pasar:


Ahora vamos a transformar un 'brush' en un 'model' que posteriormente animaremos. Selecciona la pestaña 'Models', pulsa 'Add Model' y dale un nombre a nuestro modelo, por ejemplo 'mueblepuerta01'. En previsión de que podamos tener docenas de puertas en nuestro mundo, es conveniente que estos nombres tengan algún sentido con lo que acabamos de asociar como 'model' para una fácil identificación en medio de diversos tipos de 'models'. El número que ponemos al final también nos facilitará la tarea de enumerar los distintos 'models'.


Aún estamos en la pestaña 'Models'. Para evitar tener que fijar posteriormente la posición de origen del modelo, pulsaremos en 'Set Origin' para fijarla. Ahora mueve la cruz azul a la posición deseada en cualquiera de las ventanas de edición (yo prefiero la vista 'Top'). Debes colocarla donde estarían las bisagras de nuestra puerta. Confirma esta posición pulsando 'Done' y activa 'Lock Origin':



La mitad del trabajo ya está hecho, ahora vamos a crear la animación de abrir y cerrar la puerta.


Seguimos en la pestaña de 'models', activamos 'Animate' y colocamos la puerta en la posición que tendría completamente abierta.

Para ello puedes utilizar 'Move' o 'Rotate' en la vista 'top'. El botón 'Rotate' nos permite rotar en saltos de 45°, el sentido de la rotación (X, Y o Z) se producirá en función de la ventana de edición donde estemos realizando la rotación. Pulsa 'Stop Animation' cuando ya tengas fijada la posición final de la puerta, te aparecerá una caja para que entres un valor que expresa el tiempo que durará la acción (en nuestro caso abrir completamente la puerta). Puedes entrar el valor de 5, que serán los segundos que fijaremos para esta animación en concreto. Puedes realizar animaciones más suaves insertando posiciones intermedias de la puerta con valores progresivos hasta llegar al 5. Esto se realizaría utilizando 'Animate' y 'Stop Animation' para cada posición intermedia de la puerta.

Si lo que queremos es que la puerta permanezca abierta un tiempo, realizaremos un 'Animate' y 'Stop Animation' seguidos, por lo tanto sin modificar la posición del objeto animado y entrando el valor (en segundos) hasta donde deseamos que el objeto permanezca de esa forma (sin moverse), por ejemplo 10:


Ahora vamos a añadir un nuevo 'frame' o paso, que fijará la última posición de la puerta en nuestra animación (puerta otra vez cerrada). Antes de activar 'Animate' seleccionamos el primer 'frame' (normalmente el que es 'K 0.00'), ahora si, pulsamos 'Animate' y sin hacer nada pulsamos 'Stop animating' ya que la secuencia final de nuestra animación es la misma que la primera. El valor lo podemos fijar en 15. Ya hemos creado un modelo animado que su duración total será de 15 segundos.


Si piensas un instante en en este mecanismo de animación, ya te habrás hecho una idea de la cantidad de posibilidades de animación que podrás realizar en tu mundo.

Pero nuestra puerta aún no está lista, de hecho tenemos una puerta, pero nunca se abrirá si no la asociamos a una entidad 'Door' en nuestro mundo. Es la hora otra vez de crear una entidad al estilo de la 'DeathMatchStart' que pusimos anteriormente.


Activa el modo 'template' desde la barra y selecciona la pestaña 'template', selecciona la entidad 'Door' de la lista de entidades. Pulsa en la bombilla y coloca la cruz que representa esta entidad en frente de la puerta. No te olvides de pulsar 'Enter' para que la entidad entre realmente en nuestro mundo.


Ahora abre el cuadro de diálogo 'Entity Dialog' pulsando en la barra. Selecciona 'Door1' de la lista de entidades que hemos añadido en nuestro mundo, selecciona el parámetro 'Model'. Ahora seleccionamos 'mueblepuerta01' que es nuestro modelo para la puerta . De esta forma cualquiera que se acerque a nuestro mueble producirá la animación que hemos creado para la puerta.
Sólo nos queda compilar nuestro nivel para ver el resultado.

¿ Funciona ?


Pues entonces salva el trabajo.


Si por ejemplo quisieras que otro 'brush' siguiera el mismo movimiento que la puerta, para que pareciese un solo objeto, deberíamos seleccionar ese otro 'brush' y en la pestaña 'models' y con nuestro modelo seleccionado, utilizar 'Add Brushes'. Un buen ejercicio es crear una esfera con los parámetros (radius 20, Wall Thickness 2, horizontal stripes 8) que insertaremos parcialmente en la puerta de manera que crearemos una protuberancia en la misma.


Cuando hayas finalizado, salva tu trabajo y continua con el punto 3 - Espejos, ventanas y líquidos.