A continuación tenéis una lista con las entidades presentes en el motor de Quake. Puede seros muy útil cuando ya tengáis unos conocimientos básicos del editor y busquéis conseguir efectos más elaborados para vuestros niveles. Tampoco os olvidéis de los mapas de ejemplo que incluye este tutorial, que pueden resultar un buen complemento a lo tratado aquí.
Bien, las entidades se muestran por orden alfabético:
Poca cosa. Su función se limita a emitir de forma continua pequeñas burbujas ascendentes durante el juego. Pueden ser interesantes en escenarios subacuáticos, pero por lo demás no tienen mucho uso.
Se explica por sí mismo, ¿no? Tenemos los siguientes:
Se trata del rayo con el que destruimos a Cthon —el monstruo del primer episodio—. Su funcionamiento no es tan complicado como parece...
Lo primero es colocar alguna entidad de tipo event_lightning
en cualquier lugar del mapa —sí, en cualquiera, da lo mismo el sitio concreto—, y darle un atributo Name
; por ejemplo, "rayo
". Entonces creamos los brushes que harán de electrodos; esto es, los dos puntos entre los cuales aparecerá el rayo. Estos electrodos son dos bloques convertidos en entidades de tipo func_door
; en su atributo Name
deberemos introducir un valor único y que no haya sido activado en todo el nivel.
También hay que dar a ambos electrodos un valor de "lightning
" en target
... Pero vaya, parece que este atributo no existe en las entidades de tipo func_door
, ¿no? Pues nada, lo creamos. En las propiedades de los dos electrodos, clicamos sobre el botoncito Smart Edit
. Luego en add
, y en el campo Key
escribimos target
, y lightning
en Value
.
Una imagen para que no os perdáis:
Por último, hay que poner algún activador —un botón, un lugar en el que pises, etc— que actúe sobre la entidad event_lightning
que pusimos antes. Por ejemplo, podría ser un trigger_multiple
cuyo Target
fuese "rayo
" —el Name
del event_lightning
que hemos mencionado más arriba—.
El rayo aparecerá entre ambos electrodos, siempre un poco por debajo de su extremo inferior —unas 12 unidades, si no me equivoco—. Consultad el mapa de ejemplo si tenéis dudas.
Esta entidad aparecerá a no ser que el jugador posea las cuatro runas. El ejemplo más notorio lo tenemos en el Quake original, con esa porción de suelo que desaparece cuando hemos completado todos los episodios, dejando vía libre para ir a por Shub-Niggurath.
Pues eso, un botón para activar eventos. Es necesario especificar el ángulo en el que se moverá el botón cuando lo pulsamos.
Namecoincida con lo puesto aquí—.
Un teletransporte que sólo aparece en las partidas deathmatch.
Esta entidad es básica y la vamos a utilizar mucho para construir objetos móviles..., y no necesariamente puertas; se le pueden dar muchos más usos —por ejemplo, ascensores que descienden desde una posición elevada, etc—.
Tampoco hay que perder de vista los flags que pueden asignarse a la puertas, para modificar su comportamiento:
func_dooradyacentes no se activarán al hacerlo ésta —por defecto lo hacen; véase la puerta de doble hoja que construimos en el capítulo anterior—.
Esta entidad crea una puerta secreta, que sólo puede abrirse de dos modos: mediante un activador, o causándole daño con disparos. Tiene algunas opciones —flags— que la hacen distinta de la entidad func_door
normal:
La entidad aparecerá si el jugador posee la runa apropiada. Esto se usa, por ejemplo, en el Quake original para bloquear la entrada a los episodios que ya hemos completado. Hay que señalar que el efecto empieza a funcionar no cuando consigamos la runa en cuestión, sino al empezar a jugar un mapa determinado.
Los flags se explican por sí mismos:
Se trata de un bloque que parece sólido, pero no lo es. Útil para conseguir efectos extraños como paredes falsas, trampas camufladas, etc.
Lo usaremos para crear ascensores que, partiendo de la posición más baja, nos conducen a algún lugar elevado; ya construimos uno en el capítulo Entidades y Objetos móviles (II). Ojo, si lo que deseamos es lo contrario —una plataforma que descienda— deberemos utilizar una entidad de tipo func_door
con los valores apropiados (véanse los mapas de ejemplo).
Cuando estemos trabajando en el editor construiremos el func_plat
en su posición elevada. Su atributo height
indicará, en unidades, la distancia recorrida durante su movimiento. El punto de partida del elevador se calcula restando la altura especificada en height
a su posición en el editor.
Como ya vimos en el capítulo Entidades y Objetos móviles (II), se trata de la entidad necesaria para hacer plataformas que se muevan siguiendo una ruta determinada. Dicha ruta se especifica mediante entidades de tipo path_corner
, que son precisamente los puntos entre los que se desplazará el func_train
.
Sus atributos más importantes son los siguientes:
path_cornerde la ruta, y no comenzará a moverse hasta que activemos el evento correspondiente —que puede ser un botón o cualquier otro activador—. Si lo dejamos en blanco, la plataforma se moverá sin interrupción durante toda la partida.
path_cornerde la ruta de nuestra plataforma móvil. Obligatorio especificarlo.
Un bloque sólido como cualquier otro. La gracia está en que podemos podemos hacer que aparezca o no en distintos niveles de dificultad, o en partidas deathmatch... Lo que en la práctica nos permitiría modificar nuestro nivel según el estilo de juego.
Inserta una cámara que será usada para la pantalla de puntuaciones que encontramos al finalizar cada mapa. Veamos su uso con detalle, porque no es nada obvio.
El lugar en el que coloquemos la entidad info_intermission
será la posición de la cámara. No obstante, también hay que especificar la dirección en la que estará mirando..., y esto se hace añadiendo un atributo llamado mangle
, que tendrá tres valores numéricos separados por espacios; nos referiremos a ellos como "x y z":
Anglede cualquier otra entidad; a saber,
90
se refiere al norte, 180
al oeste, etc.90
, veríamos el escenario como si la cámara estuviese tumbada de lado.Si hay varias entidades de tipo info_intermission
en el mismo nivel, el juego escogerá una aleatoriamente para la pantalla de estadísticas. Si no hay ninguna, se tomará como cámara el punto de inicio del jugador.
Si tenéis dudas, echad una ojeada al mapa de ejemplo, "camara.map".
Poco importantes, se emplean en luces dirigidas —cosa que no he explicado en este tutorial, entre otros motivos porque no conozco su uso—.
info_player_*:
Esto incluye varios tipos de entidades utilizados para marcar los puntos de inicio de los jugadores. Así, tenemos los siguientes:
Esta entidad marca el lugar en el que aparecemos tras usar un teletransporte. Podéis echarle una ojeada al que preparamos en el capítulo de Entidades y Objetos móviles (II).
item_*):
Aquí podemos encontrar un amplio repertorio de entidades, que representan los distintos objetos y bonus que encontraremos en nuestras partidas de Quake; armaduras (item_armor
, etc), llaves (item_key1
e item_key2
; plata y oro, respectivamente)...
Algunos pueden parecer dudosos. Así, item_sigil
hace referencia a una runa —de qué runa en concreto se trata, lo especificaremos en sus flags—. Item_weapon
indica un "arma genérica"; se trata de una entidad interna del motor de Quake que no debemos usar en nuestros mapas.
Y por último, las llaves. Ambas —plateada y dorada— pueden tener varios estilos; las hay medievales, tarjetas electrónicas futuristas, y rúnicas. Escogeremos uno de los tres seleccionando, en el menú Map
del Worldcraft, la opción de Map Properties...
light_*):
Pues eso, las fuentes de luz imprescindibles para que nuestros mapas no sean negros como el fondo de un pozo. Hay un tipo de luz genérica —light
—, y otros que incluyen ciertas características concretas:
Cada uno de estos tipos de luz puede tener distintos valores en sus atributos. De ellos, targetname
es opcional, y nos servirá para que hacer que algún evento actúe sobre la luz en cuestión; útil, por ejemplo, para añadir luces que se apaguen al pulsar un botón, etc.
Por otra parte encontramos el atributo style
o appearance
, que nos permite modificar el comportamiento de la fuente de luz. Tiene un valor numérico, a escoger entre los siguientes:
Por último, mencionaré la posibilidad de colocar luces apagadas al comienzo de la partida, y que no se enciendan hasta que no se active cierto evento. Para hacer que una luz esté apagada por defecto, hay que activar el flag de Initially dark
.
Consultad el mapa de ejemplo sw_luz.map si queréis comprobar cómo funcionan los eventos con luces...
monster_*):
¿Obvio, no? Con estas entidades colocaremos diversos enemigos que necesita todo mapa de Quake. Como detalle especial, el zombi —monster_zombie
— se convertirá en un engendro crucificado si le activamos el flag de crucified
.
Podemos hacer monstruos que patrullen un área determinada, combinándolos con entidades de tipo path_corner
; el método es similar al que ya vimos en el capítulo de Entidades y Objetos móviles (II), cuando preparamos la plataforma móvil. En este caso, el atributo target
del enemigo que nos interese deberá tener el mismo valor que el Name
del primer path_corner
de la ruta que seguirá.
En el mapa de ejemplo monstros.map tenéis un par de interesantes eventos activados mediante monstruos —un pilar que baja al eliminar a los cinco soldados, etc—. Si queréis saber cómo funcionan, examinadlos, prestando atención a los atributos de las entidades.
Contenedores explosivos —como los que aparecen en el E1M1 del juego original, sin ir más lejos—.
Una pequeña bola de fuego, que emite luz y puede causar daño al jugador.
Emite diversos ruidos... Nada demasiado útil, realmente.
Se trata de la bola espinosa que da vueltas en torno a Shub-Niggurath —quienes no hayan llegado al final de Quake no sabrán de qué estoy hablando—. Probablemente funcionará de forma semejante a los bloques de tipo func_train
o a los monstruos que patrullan; esto es, siguiendo una ruta trazada por entidades de tipo path_corner
.
La entidad necesaria para definir las rutas que seguirán los func_train
—plataformas móviles— o los enemigos en sus patrullas. Sus atributos son los siguientes:
path_corneren cuestión.
path_cornerdel recorrido.
path_corner. Si su valor es -1 se detendrá.
El trap_shooter
disparará clavos a un ritmo constante, en la dirección indicada por su atributo angle
; no necesita ser activado. La entidad trap_spikeshooter
, en cambio, disparará solamente cuando reciba algún evento —un botón, un jugador cruzando un bloque activador, etc—.
Por lo demás, el tipo de disparo que harán ambas entidades puede cambiarse en sus flags. En algunos escenarios nos interesará más que, en lugar de los consabidos clavos, disparen rayos láser.
En el mapa trampas.map veréis este efecto en acción...
Cuando el jugador toque esta entidad el mapa terminará. El atributo map
indica el nivel que se cargará a continuación —hay que introducir el nombre del archivo .BSP—.
Se trata de un contador que, tras ser activado x veces, activa a su vez otro evento. Se utiliza en juegos de palancas complejos, que requieren varios pasos antes de completarse; por ejemplo, una puerta que no se abrirá hasta que se pulsen tres botones.
Sus atributos más importantes son los siguientes:
trigger_counterque recibirá los eventos de botones y activadores.
trigger_counterhaya sido activado las veces necesarias, se activará el evento especificado aquí.
trigger_counterpara que actúe.
Por otra parte, si activamos el flag llamado nomessage
, los típicos textos del estilo de only one more to go...
no aparecerán —lo habitual es que sí que lo hagan—.
Cuando el jugador entre en contacto con este bloque-entidad sufrirá x puntos de daño. Podemos especificar cuánto exactamente en su atributo dmg
o damage
.
El monstruo que lo pise dará un salto en la dirección especificada por el atributo angle
. Las propiedades speed
y height
controlan el impulso que tendrá dicho salto hacia adelante y hacia arriba, respectivamente.
trigger_once, etc):
Ahora veremos las tres entidades genéricas —creadas a partir de bloques— que tenemos para activar eventos, cuyo uso deberíamos conocer bien. Son las siguientes:
Y los atributos que podemos configurar:
targeten tener lugar.
trigger_multiple; el intervalo de tiempo, en segundos, que debe transcurrir antes de que el activador vuelva a estar operativo.
Impulsa al jugador en la dirección especificada en el atributo angle
. Esto se usa, por ejemplo, en el nivel E3M5 de Quake para conseguir el efecto de los tubos de aire —jugad el mapa si no sabéis de qué estoy hablando—. El atributo speed
indica la fuerza que tendrá dicho impulso. El flag push_once
, por otra parte, hará que esta entidad actúe sólo una vez.
El primero —trigger_relay
— tiene las mismas propiedades que un activador genérico como los que hemos visto un par de párrafos más arriba, pero sólo puede ser activado por otra entidad, y no directamente por el jugador. El segundo —trigger_secret
— actúa también como un trigger normal, pero al activarse puntúa como un secreto descubierto. Exacto, se utiliza para marcar los rincones secretos de cada nivel.
Cambia el nivel de dificultad de la partida. Utilizado, por ejemplo, en el escenario de presentación de Quake.
Teletransporte —ver el capítulo de Entidades y Objetos móviles (II), en el que se explica el efecto con detalle—. Se utiliza junto con una entidad de tipo info_teleport_destination
, que indica el punto de destino.
En los flags tenemos un par de opciones interesantes. Por ejemplo, si activamos player_only
el teletransporte sólo podrán usarlo los jugadores, y no los monstruos. Por otra parte, silent
hace que el efecto sea totalmente silencioso..., indicado para sorpresas desagradables.
weapon_*):
No hacen falta explicaciones sobre esto, ¿verdad? Pues eso, las entidades que representan las diferentes armas de Quake; la escopeta de dos cañones, el lanzagranadas, etc.
Podéis copiar libremente cualquier contenido de esta página. Si se trata del texto o las imágenes, mencionad la fuente (www.arcades3d.net)...