Pages - Menu

domingo, 4 de agosto de 2013

Creación de un mapa de Left 4 Dead (IV): Agrupar, light_spot y testear un mapa

En el anterior post pudimos ver como ir añadiendo entidades estáticas gracias a la clase prop_static. Durante el desarrollo podremos comprobar que necesitamos mover muchos elementos a la vez y que mantengan su orientación y posición relativa. Hoy vamos a ir añadiendo nuevos elementos al escenario y a irlos agrupando a la vez que vamos creando nuevas luces.


El mapa del tutorial anterior puede descargarse de éste enlace.

Lo primero que vamos a hacer es redimensionar un poco el escenario, necesitamos más espacio. Podemos darle al suelo y techo unas dimensiones de 1568 de largo, 1120 ancho y mantener los 16 píxeles de grosor. Debería quedar algo así:


El escenario que vamos a crear va a ser un aparcamiento privado, por ejemplo el de un patio de vecinos o el de una comisaria.

Creando nuevas entidades.

Añadiremos algunas farolas, para ello vamos a hacer lo siguiente:

- Añadir una entidad de la clase prop_static cuyo modelo sea lamppost03a_on. 
- Añadir una entidad nueva, su clase será light_spot.

La clase light_spot es otra entidad de luz, la cual simula ser la luz de un foco, sus propiedades son las siguientes:


La propiedad Brightness es exactamente igual que la de la entidad light, es decir, escribimos los tres dígitos RGB y después el brillo. Yo para la luz de una farola suelo poner 3500, no obstante se puede ajustar perfectamente.

La otra propiedad interesante que tiene esta entidad es la de Appearance, la cual indica la apariencia de la luz, esto es muy útil por si queremos luces intermitentes, brillantes, de fuego, etc. Por ahora lo dejaremos como está, en "Normal".

NOTA: En la web de Valve se puede ver un ejemplo de las distintas apariencias que admite la entidad light_spot, el enlace es éste.

El último paso es mover y girar la entidad light_spot hacia la farola de tal forma que sea la farola quien emita la luz.


Agrupando elementos.

Ahora que tenemos las dos entidades creadas procederemos a agruparlas como una sola. Lo primero que debemos hacer es seleccionar ambas ya continuación pulsar en el botón agrupar  para formar un grupo consistente en la farola y la luz.

Ahora cuando queramos mover, rotar o duplicar este grupo tan sólo hay que seleccionarlo y realizar la operación, esto hará que se mueva, rote o duplique el grupo completo.

Vamos a crear un total de seis grupos de farola y luz, y a distribuirlos por el escenario de la siguiente forma:


Desagrupando elementos.

Vamos a editar uno de los grupos para añadir un efecto de luz distinto del resto. Primero debemos seleccionar la farola que queramos editar, después hay que pulsar en el botón desagrupar , esto hará que las dos entidades sean de nuevo independientes.

Editando el light_spot.

Vamos a añadir un efecto nuevo a ésta entidad, nos vamos a las propiedades del lightspot que acabamos de desagrupar y en Appearance seleccionamos "Fluorescent flicker", después volvemos a agrupar ambos elementos.

Añadiendo la entidad info_player_start

Para poder probar el mapa debemos especificar donde se lanzarán los personajes dentro de un mapa simple, para ello debemos crear una entidad llamada  info_player_start y posicionarla junto a los cuatro supervivientes, de tal forma que quede así:


Probando el mapa.

Hasta ahora hemos ido trabajando en tiempo de desarrollo nada más, no hemos tenido oportunidad de ver el mapa funcionando.

Para testear el mapa pulsamos F9, nos saldrá una ventana como ésta:


Dejamos las opciones de compilación y ejecución tal y como se muestran en la imagen. Pulsamos el botón "OK" y esperamos. El editor compilará el mapa y se abrirá dentro de Left 4 Dead.

Lo primero que notaremos es que sale un mensaje de error en la pantalla


Éste error es debido a que aún no hemos definido la rejilla de navegación, por lo tanto ni los infectados ni los bots podrán moverse o aparecer. De momento no hace falta que hagamos mucho caso al respecto, pulsamos en "Continuar" y exploramos el nivel.


Todo parece correcto, excepto una cosa, la camioneta que hemos puesto no sale.

Esto es debido a que la camioneta no es posible emplazarla como prop_static, debe crearse como una entidad de otra clase.

prop_dynamic.

La clase prop_dynamic está pensada para aquellas entidades susceptibles de poseer alguna clase de interacción con cualquier otro elemento del entorno, ya sean las balas, los supervivientes, los infectados o algún tipo de evento.

La creación de un prop_dynamic es exactamente igual que un prop_static excepto por la clase.

Emplazamos la camioneta como prop_dynamic y pulsamos de nuevo el botón F9.


Ahora la camioneta se visualiza correctamente, hemos corregido el error y podemos continuar explorando el mapa sin preocupaciones.

Guardamos el archivo como PVHammerTutorial04.

Conclusiones.

En éste capítulo hemos podido agrupar distintos elementos para trabajr con ellos como si fueran uno sólo. También hemos podido experimentar un poco con la entidad light_spot, añadir la entidad de inicio de jugadores, diferenciar entre prop_static y prop_dynamic y testear el mapa. 

En el siguiente post le daremos al mapa un toque más de diseño trabajando con las paredes para adecuarlas al escenario que queremos obtener, además comenzaremos a usar el Skybox para poner cielo en nuestro escenario.

¿Qué posibilidades ves en el uso de prop_static y prop_dynamic?