Tutorial JKRadiant
Tutorial JKRadiant
Tutorial JKRadiant
hacer un mapa y se encuentran por medio otro idioma, y dedica con más
ímpetu a Kotf y a Kotfspa.
Espero que os sea útil y saludos de Han Solo for Kotfspa, ya me debes una
nene xD
Página oficial del editor más famoso para Q3, y creador del tanto para JK3 como
JK2, ya que el motor de JK se basa en el del Q3
Q3Build. Este es un programa que te permite compilar los mapas desde una
aplicación que no sea el propio editor. Además te permite añadir bots a tu mapa.
Arena Master: Te permite editar los ficheros .arena que dicen el juego de que tipo
es tu mapa, bots que juegan, etc.
Q3 ASE. Editor de Shaders realmente útil para editar o crear tus propios shaders.
Además te crea el script necesario para cada shader automáticamente.
Estos tres últimos archivos los encontraras aquí como un amplio tutorial en
español sobre la creación de mapas
http://www.pbgtkradiant.da.ru/
Vamos al tema, el tutorial de arriba esta un poco pasado ya que es de la versión 1.2
del programa
Ventana 2D: Es en esta ventana donde trabajaremos gran parte del tiempo. El
rombo con las 2 líneas en ángulo representa nuestra cámara, el ángulo nos indica el
campo de visión, lo que en ese momento estemos viendo en la ventana 3D. Para
poder movernos en esta ventana podemos usar las flechas para mover nuestro
punto de vista y si pinchamos con el botón derecho del ratón en cualquier parte de
la ventana y arrastramos, moveremos la cuadricula y podremos ver partes que
antes no entrasen en la pantalla. El botón Changue View nos será muy útil
cuando estemos en esta vista, ya que nos permitirá cambiar los ejes de
representación de esta ventana. Por defecto se representan el eje X y el eje Y (Para
complementar a el Eje Z en su propia ventana), pero con el botón Change view
podremos ver desde los ejes X y Z y los ejes Y y Z. Cada vez que se pulse el botón
cambian los ejes mediante una secuencia cíclica.
Ventana 3D: Aquí veremos evolucionar nuestro mapa en 3D. Nos podremos mover
en todas direcciones usando el ratón y las flechas, como si estuviésemos en el juego,
pero como espectador, solo que aquí podremos atravesar las paredes y esas cosas
(útil para ciertas cosas). Para poder movernos en esta ventana situaremos el cursor
en la Vista3D y pulsaremos el botón derecho del ratón. Una pequeña cruz
aparecerá en la pantalla (como si fuera el punto de mira) y ya podremos movernos
usando las flechas y el ratón. Para dejar de movernos (veréis que el cursor
desaparece y no podréis editar mientras estéis "navegando el mapa") hay que
volver a dar al botón derecho del ratón. Desde esta vista se pueden seleccionar los
poliedros (brush-brushes) que conforman vuestro mapa. Solo hay que
seleccionarlos con el b. izquierdo del ratón con el shift pulsado (se pueden
seleccionar mas de uno a la vez). También podremos seleccionar una sola cara de
nuestro "brush" pulsando el control y el shift a la vez que se selecciona la cara
deseada con el ratón (botón izquierdo). Si lo que queremos es seleccionar varias
caras, además del control y el shift, pulsaremos el alt y las caras que deseemos con
el B.I del ratón. Por ahora con esto es mas que suficiente de la vista 3D.
Ventana Eje Z: Esta ventana nos mostrara las alturas de nuestros poliedros del
mapa. Será útil para igualar poliedros a la misma altura o subir alguno a un
determinado nivel (haciendo uso de las marcas numéricas que tiene tan cerca).
Hay que aclarar que esta ventana siempre muestra las alturas con respecto al eje
Z. Por mucho que se le de al botón de Change View (ver más arriba) esta ventana
quedará inalterada.
Botones del editor: En esta parte del tutorial nos fijaremos en los botones que hay
justo debajo de los menús del editor
El programa auto salvará cada 5 min. por defecto (ver Preferencias), si no,
puedes darle a aquí para que lo haga cuando tu quieras
Este botón nos permitirá cambiar la vista de la ventana 2D para poder ver
nuestro mapa desde distintos planos.
Este botón sirve para cambiar la forma en la que vemos las texturas en la
ventana 3D. Desde no ver ninguna hasta verlas con filtro trilineal. Es útil
si no disponemos de un buen pc y al ver algunos mapas muy lentos de
mover en la vista 3D.
Esta otra herramienta es muy útil para mapas muy grandes o pc poco
potentes, ya que afecta a la ventana 3D haciendo que no se dibuje todo a la
vez, si no que solo dibuja los poliedros que están a una determinada
distancia, ignorando el resto (y aumentando la velocidad de la vista 3D.
Con este botón los patches de tu mapa se mostraran como una malla de
alambre.
Usa este botón cuando quieras tapar las bases de un cilindro, el exterior
del arco... lo puedes seleccionar desde el menú que te aparece...
Este botón viene pulsado por defecto y creo que sirve para que al mover
las aristas de un poliedro, se muevan todos los vértices a la vez (o algo)
Este botón viene pulsado por defecto y creo que sirve para mover vértices
que estén en línea o algo así.
Barra Espaciadora: Te hartarás de usar esta tecla, por que una ves seleccionado
cualquier elemento del mapa (poliedros, modelos, entidades, patches,...) lo que
sea y en cualquier medida, si pulsamos la tecla espaciadora, el editor creará una
copia exacta de lo que tengas seleccionado. Con una sola pulsación creamos el
mismo efecto que si hiciésemos el control+c y el control+v.
Básico:
¿Qué es un mapa?
Para empezar a editar hay que tener un concepto muy claro, y es que qué es un
mapa. Un mapa es un espacio cerrado formado por poliedros, patches, entidades,...
en el que el jugador tiene libertad para moverse e ir superando retos. Una cosa que
tendremos en cuenta es que no puede haber ninguna abertura hacia la parte
exterior, hacia donde no hay nada. Si esto ocurriera, el mapa se consideraría
"leaked". El editor nos avisaría mostrando una flecha hacia el agujero. Esto es un
error de principiante y deberemos de evitarlo al máximo (muy útil la herramienta
de hollow). A la hora de compilar el mapa, el programa navega el mismo viendo
que es lo que se ve en cada lugar, y así saber que se ve en cada sitio y solo dibujar
esa parte si el jugador se encuentra ahí. Esta es una manera de mejorar la
velocidad del juego, pero que hace que compilar el mapa sea algo lento.
Texturas y Shaders
Que no os asusten los nombres de estos 2 elementos. Las texturas no son más que
imágenes en formato digital, en .jpg y en .tga en su mayoría. La elección de la
textura adecuada es algo que solo se puede conseguir con algo de práctica y sobre
todo sabiendo, mas o menos, que textura esta en cada categoría. ¿Pero cómo se
eligen las texturas? En la barra de menús, bajo el nombre Textures veremos una
primera parte de opciones y des pues las texturas organizadas alfabéticamente por
categorías. Seguramente, nada mas instalar tu Quake 3 y tu GTK, no dispongas de
tantas categorías como las que aparecen en la imagen, a mi me aparecen tantas por
que cada vez que instalas un .pk3 de un mapa con texturas propias, se crea una
categoría con el nombre del mapa. Veamos las opciones. Los shaders ya son harina
de otro costal. Si, están basados en texturas, pero lo bueno es que esas texturas
pueden tener transparencia, efectos como girar o cambiar de tamaño, etc. Podrás
identificar que texturas son shaders por que en la ventana de texturas, éstas están
rodeadas por un recuadro blanco. Las que estén con un recuadro verde, es que ya
se han usado. Como apunte final de shaders decir que las que tengan fondo negro,
éste se vuelve transparente ofreciendo un buen numero de posibilidades creativas.
Para poder aplicar una textura a una cara o poliedro, primero se selecciona este y
después se pincha en la textura deseada. Verás que en la vista 3D aparece la
textura en el poliedro.
Show In Use: Con esta opción marcada, solo aparecerán en la ventana de texturas,
las que se hayan usado hasta el momento en el mapa en el que se trabaje.
Show All: Cuidado al seleccionar esta opción, ya que cuando arranque el editor, no
estará listo hasta que no cargue todas las texturas. Si tenemos en cuenta que por lo
menos, en mi lista, hay más de 250 megas en texturas, el editor tardaría un rato en
cargarlas. Además, nuestra Ram desaparecería a pasos agigantados. Y si solo
disponemos de 128 megas (lo mínimo para el editor) será un horror trabajar.
Show Shaders: Con este botón dejaremos aparecen a los shaders en nuestra
ventana de texturas.
Directory List: Lista todos los directorios donde el GTK encuentre texturas.
Render Quality: Nos da la posibilidad de elegir la calidad con la que las texturas se
nos mostrarán en la vista 3D. En ordenadores poco potentes esta opción les
ahorrará uso de CPU.
Texture Lock: Bloquea las texturas para impedir que se giren o se desplacen
cuando se hacen transformaciones en los poliedros.
Los Modelos
Las Entidades
No todo en un mapa son poliedros, patches y modelos. Veremos las más comunes.
Debemos introducir elementos para poder indicarle al mapa las zonas iluminadas,
los spawn (de donde salen los jugadores al principio del juego o cada vez que los
matan y vuelven a salir. También es necesario indicarle al mapa detalles como
donde poner las armas, la minución, los items). Además de lo indicado
anteriormente, las entidades abarcan cosas más técnicas como las funciones
asociadas a piliedros y a texturas. Empecemos por una de las entidades más
usadas: las luces. Las encontraremos pinchando con el botón derecho del ratón en
la ventada 2D. Una vez pinchemos en la opción en light veremos la ventana donde
podremos indicar la cantidad de luz que emitirá la entidad. Si deseamos cambiar el
color a la luz, la seleccionamos y pulsamos la tecla "K". La manera de representar
las luces en el editor se hace mediante la forma de un diamante. Otra entidad que
usaremos mucho será la de los info_player_... Estas entidades indican de donde
saldrán los jugadores durante el juego. Se encuentran dentro de la categoría info.
info_player_start: Esta entidad es la que se usa por defecto para el spawn de los
jugadores, y sobretodo para poder probar los mapas antes de poner todo lo
necesario. Un mapa no cargara si no existe por lo menos el info_player_start.
Ammo: Aquí se clasifican las entidades que se usan para poner munición en el mapa. Si
ya has jugado al quake 3, verás que las municiones que aquí aparecen, son las del juego,
así que no me extenderé en explicarlas una por una. Si no has jugado, juega antes de
ponerte a hacer mapas :P.
Func: Es en este menú donde se encuentran la mayoría de las entidades que se aplican a
un con junto de poliedros. Estas entidades necesitan de configuración adicional para
definir velocidad y cosas por el estilo. Esto se hace siempre seleccionando la entidad (si
es un grupo de poliedros se seleccionarán todos a la vez si se selecciona solo uno) y
pulsando la tecla "N" (ver atajos del teclado). Para aplicar una función a un grupo de
poliedros, los seleccionamos y pinchando encima de ellos con el botón derecho
seleccionamos la función que deseemos. Hay que tener en cuenta que las funciones van
asociadas a poliedros, si deseamos que tab se mueva un modelo con la función hay que
indicarlos con el kay model y el valor del path donde se encuentre, ven la ayuda de la
ventana. Veamos de qué funciones disponemos.
func_bobbing: Esta función se usa para que el poliedro o el grupo de poliedros a los que
se aplican oscilen en el mapa en cualquiera de los 3 ejes del espacio. Pulsando la tecla
"N" veremos que podemos elegir el eje, la velocidad de oscilación (ver la pequeña
ventana de ayuda que sale en la ventana de entidades), la fase, etc.
func_button: Esta función se usa para activar otras funciones o elementos del mapa.
Esta función hace que el poliedro o poliedros asociados se muevan a la hora de que un
jugador los toque. Esto hace activar cualquier cosa que tenga un targetname que
coincida con el target del botón. Esto del target y targetname es nuevo en tutorial, así
que nos extenderemos un poco. Esto de los targer se usa para que entidades se apunten
unas a otras, para que las luces apunten a un determinado lugar, una plataforma que se
mueva de un lado a otro. etc. Para hacer que una entidad apunte a otra, seleccionamos la
primera, luego la segunda y pulsamos control+k. Veremos una línea verde con una
flecha entre las 2 entidades. También se puede hacer a mano, pero es un coñazo enorme.
func_door: Con esta entidad podremos crear el efecto del una puerta que se abre
automáticamente según nos acerquemos. Una vez que se pone la puerta, deberemos de
indicarle la dirección en la que se abre, la velocidad, el tiempo hasta que se cierre de
nuevo, esas cosas. Podemos crear dos juntas, ponerles direcciones opuestas y tener una
puerta doble.
func_group: Se usa para poder elegir un conjunto de poliedros con un solo clic. Para
estructuras complejas es bastante útil.
func_pendulum: Como su propio nombre indica se usa para hacer péndulos. Es muy
parecido a la función bobbing, de hecho necesita los mismos parámetros. Pero además
hace falta una cosa más, y es un eje de giro. Para definir este eje de giro, necesitamos
colocar un poliedro especial altes de crear la función. Este poliedro se crea en donde
queramos que esté el eje de giro (ho hace falta que sea muy grande) y se le aplica la
textura "origin" que podemos encontrar dentro de las Common textures. Una vez hecho
esto se le aplica al conjunto la función bobbing. Esto tendrá que hacerse también para la
func_rotating.
func_plat: Esta función existía ya para quake II. Lo que hace es que cuando el jugador
se sitúa encima sube hasta una altura máxima que se puede definir. También se puede
elegir el tiempo de espera hasta que pueda bajar y esas cosas...
func_static: La verdad es que nunca he usado esta función, pero su uso tiene es para
crear paredes o modelos condicionales, es decir, su aplicamos es función a un poliedro,
este se vuelve no-sólido. Con un trigger sencillo, podemos hacer que ese muro sea
sólido y cosas por el estilo
func_timer: Para poder realizar funciones controladas por el tiempo, podemos usar esta
función. Desde desencadenar funciones cada cierto tiempo o hacer que estas sean
parcialmente aleatorias. Con el key wait elegimos el tiempo y con el random el intervalo
de variación mínimo y máximo que se usará como aleatorio.
func_train: Esta es una función que tiene su gracia debido a que podremos crear
plataformas móviles. Podremos elegir velocidad y trayectoria. Lo primero se hace desde
la ventana de entidad ("N"). Para ver en más detalle que necesita ver la pequeña pantalla
de ayuda que hay. Para poder elegir la trayectoria debemos crearla con path_corners y
proceder así. Apuntamos la plataforma hacia el primer path. Ese lo apuntamos al
siguiente y al siguiente, etc. Cuando lleguemos al último de ellos, lo apuntamos al
anterior, y ese al anterior, hasta llegar al primero, pero cuidado, no apuntemos el
primero hacia la plataforma. Recordar que para hacer esto de una manera rápida y
sencilla es elegir el primer elemento (seleccionarlo) después seleccionamos el segundo
sin deseleccionar el primero. Tras esto pulsamos control+"K" y veremos una línea verde
que une los dos, así de fácil. Con un par de pruebas se ve que no es difícil.
Holdable: En este menú encontraremos los items del juego que podremos llevar y
activar cuando creamos necesario. Dependiendo de la versión del juego que tengamos
(si solo el quake III o con las modificaciones del team arena) este menú puede cambiar
un poco. Veremos 2 de estos items que seguro que seguro que estarán.
Info: En este menú encontraremos las entidades para colocar los spawns básicos.
info_player_deathmatch, info_player_start e info_player_intermision. Este último se usa
para la vista que tendrán los jugadores entre mapa y mapa (donde se muestran las
puntuaciones). Para las partidas CTF deberemos insertar los spawns del menú CTF.
Item: En este menú se reúnen los items que se pueden incluir en el mapa, para que los
puedan coger los jugadores.
Misc: Aquí podrás encontrar el menú model con el que se insertan los modelos. Pero
hay más...
Path -> path_corner: Entidad que se usa para indicar direcciones o lugares al
compilador. Puede estar asociado a multitud de cosas. Uno de los usos más frecuentes
es el de indicar el camino una func_train. Pero eso ya se ha visto anteriormente.
shooter: Las entidades de este menú se usan para crear "cañones" que disparen solos.
Dependiendo de la entidad usada, el arma dispara será diferente. Hay que tener en
cuenta que es necesario que lo "dispare" algo. Lo más usual para que dispare cada cierto
tiempo es usar una func_timer o un trigger_multiple.
shooter_plasma: Usa esta entidad para que dispare como una plaspa gun.
Target: Dentro de este menú encontraremos entidades muy útiles a la hora de crear los
mapas. Hay muchas y muy variadas, y la verdad no estoy muy seguro de lo que hacen
todas. Como último recurso siempre podéis leer la ayuda de la pantalla de entidades.
target_delay: Es como el target_relay, (para hacer funcionar cosas cada cierto tiempo),
pero se diferencia en que este tienen que ser activado para que funciones... es como
activar un temporizador, pero claro, hay que activarlo.
target_give: Esta entidad da algo (arma, munición, powerups, lo que sea) al jugador que
active esta entidad tocando el trigger que lo active. Para más info, consultar la pantalla
de entidades dándole a la "N" con la entidad seleccionada.
target_kill: Si queremos que el jugador "muera" cuando active algo, necesitaremos que
ese algo apunte a esta entidad. El jugador será entonces historia.
target_location: Para poder definir zonas en un mapa (muy útil para las partidas CTF).
Solo debamos situar la entidad en la zona determinada. Además deberemos de usar la
key message y poner el nombre de la zona en la que se ha puesto la entidad. Cuando se
juegue, el jugador se encontrará en la zona del target_location más cercano.
target_push: Se usa para crear jumps_pads. La dirección se ajusta con el key angle, pero
también se puede hacer apuntando a un target_position o a un info_nonull. Por defecto
no funcionará al arrancar el mapa. Hay que activarlo para que funcione. Los jumpads
siempre funcionan.
target_relay: Este target se debe de activar. Entonces el relay activa sus propias
entidades y trigger y lo que sea o algo.
target_score: Este target se usa para dar puntos al jugador que lo active. Se puede
activar con los info_player_loquesea y los CTF respawns. También, con cualquier otro
trigger se puede activar.
Team: Aquí encontraremos entidades relacionadas con los mapas de CTF, tales como los
respawn y las banderas.
team_CTF_blueplayer: A la hora de hacer los spawn de CTF, tenemos que poner dos
clases de entidades. Con esta, la blueplayer ponemos donde saldrán los jugadores del
equipo azul por primera vez, nada más cargar el mapa. Pero ya no se vuelven usar. Para
poner los respawns debemos de usar el bluespawn.
team_CTF_redspawn: Con este es con el que sí que se colocan los respawn del equipo
rojo, como bluespawn para el azul.
Trigger: En este menú encontraremos los elementos necesarios para activar entidades o
eventos en el mapa.
trigger_always: Esta entidad activa las entidades del mapa a las que apunta nada mas
cargarse el mapa. Por eso de lo de always (siempre).
trigger_hurt: Esta entidad se usa para que cuando un jugador la toca se hace un
determinado daño. Para poder usarlo hay hay que aplicarlo aun poliedro con la textura
trigger.
trigger_teleport: Como los anteriores esta entidad se aplica a un poliedro con textura
trigger (seleccionando el poliedro y pulsando el botón derecho del ratón encima de él y
seleccionando esta entidad). Se apunta a misc_teleporter_dest y en el momento en que
el jugador toque el poliedro se teletransportará al lugar donde se ponga el
misc_teleporter_dest.
Weapon: Para poder incluir armas en el mapa deberemos entrar en este menú. Están
todas y es tan sencillo como seleccionarlas y ponerlas en el mapa.
Las texturas Common
Además de con los shaders, se pueden obtener grandes efectos en nuestros mapas
gracias a las texturas common. Hay que tener en cuenta que estas texturas se muestran
en la vista 3D tal y como son en la vista de texturas, pero ojo, no se muestran tal y como
quedarán compiladas. Con ellas podremos crear espejos, superficies resbaladizas,
indicar el eje de giro de una func_rotating... y asi muchas cosas que darán vidilla a
nuestro mapa. Aquí se muestran las más.
Bot do not Enter: Utiliza un poliedro con esta textura y colócalo en la parte del mapa
donde no quieras que los bots entren, un pasillo, una sala, lo que sea. Ellos no pasarán
por hay.
Cluster Portal: Pero para poder explicar que es lo que hace habría que describir la
estructura del árbol BSP (el mapa compilado). Por encima, el árbol bsp "explica" que es
lo que ve el jugador en cada una de las partes "jugables" del mapa. Pues bien, la textura
cluster portal bloquea una parte del árbol bsp para que el jugador no lo vea, o lo que es
lo mismo, para que el motor gráfico del quake 3 no lo renderize, y por tanto que valla
más rápido. Pero, ¿dónde usarlos? Bien, no os comáis el tarro. Si hay pasillos que unen
salas en tu mapa y estos tienen ángulos en su recorrido, poner un poliedro de esta
textura en los vanos de las puertas que comunican dichas habitaciones. Esto combinado
con la textura hint, ayudamos al motor gráfico a ahorrar tiempo de dibujo en pantalla.
Cushion: Cuando en la parte de modelos se comentaba que era necesario rodearlos con
la textura de la que hablamos ahora, es por que el efecto que produce es, si la aplicamos
a un poliedro, este, dentro del mapa no se ve, pero es sólido. Por eso se usa con los
modelos para que estos no sean "atravesables". Si por ejemplo quisiéramos hacer una
plataforma invisible, o cualquier otra cosa, usamos la textura cushion con los poliedros
adecuados en cada ocasión.
Hint: Esta textura se usa para crear poliedros limitadores de regiones de dibujo. Se
tienen que poner ocupando todo el espacio de las regiones que forman un todo en el
mapa (que solo se dibujan en pantalla cuando se esta muy cerca de ellas o si estamos en
ellas). Se usa para optimizar el tiempo que se usa para mover el mapa.
Mirror1: Esta textura se usa para crear superficies reflectantes para crear el efecto de
espejo. Como nota, y para aquellos de mentes más retorcidas, hay que decir que el
efecto de infinitos reflejos al poner un espejo delante de otro, no funciona, así que no
penséis ya en cosas raras. Aquí podéis ver como se crea.
No Draw: Textura muy útil si se usa con shaders con transparencia. Supongamos que
usamos una textura de tipo "grate" (rejilla). Usamos la textura en cuestión en una cara, y
en el resto usamos la no draw para que no se vea y parezca una sola cara con la textura
de rejilla. Las otras serán sólidas pero no producirán partículas si las disparamos. La
diferencia con la textura cushion es que ésta si que produce partículas.
No Draw Non Solid: Esta textura tiene el mismo efecto que la anterior, pero con la
ventaja, de que esta convierte al poliedro en cuestión atravesable por el jugador. Esto se
usa para hacer el efecto de "light beam" rayo de luz, los halos de luz que salen de las
luces...
Origin: (origen) Como su propio nombre indica, esta textura se usa para indicarle al
editor el centro de algunas funciones, como la de func_rotating (hacer rotar los
poliedros respecto a un eje). Hay un apartado que explica las funciones.
Slick: Esta textura hace que los poliedros a los que se aplique se vuelvan transparentes,
pero el si se coloca justo encima del suelo, este se volverá MUY resbaladizo, haciendo
el efecto de una pista de patinaje. Es relativamente divertido si no se abusa de él.
Terrain: Esta textura es la que indica al compilador que a lo que esta aplicado es una
entidad. De hecho es una entidad terrain y una entidad funcgroup. El caso es que esta se
suele aplicar sola al usar el plugin GenSurf, para generar terrenos, y el compilador usa
las texturas que le indiques en relación con la altura.
Trigger: Esta es una textura de muchas aplicaciones. Cuando un poliedro tiene esta
textura, este poliedro puede realizar muchas funciones. El caso es que esta textura se
utiliza para indicar al compilador que va a estar asociado a una determinada función. No
todas las funciones se aplican usando la textura Trigger, pero una gran parte (y algunas
muy importantes) se usan usando poliedros con textura trigger. Ver el apartado de
funciones.
1- Para crear nuestra primera debemos de crear un cubo de un tamaño medio, unos 256
de alto, unos 500 de largo y otros 256 de ancho. Para crear el cubo o poliedro solo
debemos pinchar con el botón izquierdo del ratón en la ventana 2D y arrastrar, como ya
deberíamos de saber. Para ajustar la altura podemos hacerlo desde la vista del eje Z o
cambiando la vista de la ventana 2D. Una vez este creado (seguramente en una textura
azul y negra -shader not found-) lo seleccionamos todo y le damos textura caulk a todo
el cubo.
Una vez que ya tengamos el cubo en rosa (caulk) buscaremos el botón Hollow y lo
pulsamos. Veremos que el cubo se ahueca y de ha un espacio en su interior. El tamaño
de las paredes (en unidades) será igual que el valor del Grid que tengamos puesto en el
editor (ver Menú Grid. Nota: Yo suelo trabajar en grid 8, pero para detalles en grid 2 e
incluso en grid .50 -para ajustar vértices-).
Ahora deberemos texturizar las caras interiores del cubo, que serán las caras que
veremos a la hora de jugar nuestro primer mapa. Para ello deberemos seleccionar solo
las caras (control+alt+shift y pinchar con el ratón la cara adecuada de la vista 3D ). Para
poner las texturas de las paredes, las seleccionamos y cargamos las texturas de base
base_wall. En las paredes he puesto c_met7_2, en el suelo atech1_f y en el suelo
floor_wall_3 (sólo si queréis que vuestra habitación sea como la del ejemplo, pero
poned la textura que os de la gana, ir probando).
Deberemos ahora de incluir luces a nuestro mapa. Si no pusiéramos ni luces ni texturas
con luz, el mapa nos quedaría en negro. Pero hay una manera más de incluir luz en un
mapa, y es usando texturas de "cielo". Si por ejemplo, en vez de usar la textura de techo
que hemos puesto, ponemos una de el menú "sky" (por ejemplo hellsky) esta iluminará
el mapa con luz, muy parecida a la natural o a la de un posible sol. En nuestro caso
pondremos 4 luces (para ponerlas solo deberemos pinchar con el botón derecho en la
ventana 2D y elegir light) de entre 100 y 170 de cantidad de luz. Veremos que al poner
la luz en el mapa se nos abre una ventana para poder elegir la cantidad de luz (como se
ve en la imagen). Si quisiéramos cambiar la cantidad de luz sin tener que borrar y volver
a crear, pulsamos la tecla "N" y en key ponemos light y en value el que queramos darle
de cantidad de luz, como si fuera la ventana que decíamos antes
Para que podamos entrar en nuestro mapa hay que poner un info_player_start (dentro
del menú info del menú que sale pulsando con el botón derecho del ratón. Creo que
empezaré a llamarle menú de la ventana 2D). Si queremos cambiar la dirección de la
flecha (hacia donde mirará el jugador cuando salga por ahí) pulsamos la tecla "N" y
elegimos el ángulo en los botones de la esquina inferior izquierda. Para poder compilar
y jugar nuestro mapa deberemos hacer antes un par de cosas. La primera, guardar el
mapa con el nombre que sea e ir a edit->preferences->BSP monitoring y seleccionar
"Run engine after compile". Esto hará que ejecute el quake 3 con el mapa una vez lo
hayamos compilado. Ahora deberemos darle al menú BSP y elegir -vis -light (hará el
render de poliedros quitando las caras que nos e ven y la iluminación).
Para comenzar a aprender como se usa la niebla, primero debemos de crear un mapa en
donde ponerla. Y nada más sencillo que usar nuestra primera habitación. La cargamos y
abrimos las texturas SFX.
Ahora creamos un poliedro de la altura la mitad de la entidad info_player_start (para
que a la hora de jugar veamos la niebla a la altura de nuestras rodillas. Si queremos una
zona abierta con efecto niebla al estilo Londres solo debemos hacer que los elementos
del mapa queden dentro del cubo de niebla. Ahora, con nuestro "cubo de niebla" creado
y seleccionado le ponemos a TODAS sus caras la textura FOG. Hay varias, de varios
colores, que representan el color de la niebla que veremos en el mapa. Que no os engañe
el aspecto del poliedro... una vez compilado el poliedro es atravesable.
Creación de rebotadores:
Antes de crear un pad necesitamos crear una habitación. En la imagen se ve una sala
bastante alta con una plataforma elevada, que es a la que queremos llegar con el pad.
Ahora creamos un poliedro de 64x64 y lo colocamos en el suelo. Por ahora la textura da
igual.
Ahora le prestaremos atención a la textura que vamos a usar. Nos vamos a SFX dentro
del menú textures. Navegamos un poco y buscamos las texturas circulares, como las de
las imágenes. Seleccionamos la cara de arriba de nuestro poliedro del suelo y le
aplicamos dicha textura. Si a la hora de aplicarla aparece movida, como en la imagen,
pulsamos la tecla del surface inspector, Le das a la "S" y pulsas el botoncito que pone
"FIT" (el marcado en rojo). Verás que la textura se ajusta automáticamente (acuérdate
de esto que es MUY útil a la hora de hacer un mapa).
Para darle un efecto menos cuadrado al pad, lo que hemos hecho es mostrar las aristas
del poliedro y estirar las de abajo un poco. Se puede ver como tiene que quedar (aunque
es solo un ejemplo) pero es una idea.
Bien, ahora hay que explicar un par de pasos. Se supone que con poner un poliedro
encima de nuestro pad y darle la textura trigger (dentro de common) bastaría, pero para
ajustarlo a la forma del circulo le he dado a brush y después a 8 sided. Lo que hemos
hecho es coger un poliedro de 4 lados y convertirlo en uno de 8 lados. No hace falta
ponerle más, para ahorrarle vétices al motor del juego. Bueno, total, le damos la textura
de trigger y le asignamos una trigger_push (pulsar con el botón derecho del ratón en el
poliedro seleccionado desde la vista 2D).
Vale, ahora que ya tenemos el push tenemos que elegir hasta donde va a empujar a el
jugador. Creamos un target_position (desde el menú de la pantalla 2D entramos en
target). Fíjate donde esta puesto en la imagen y asi te podrás orientar un poco.
Hacer líquidos:
Bienvenidos a este nuevo tutorial sobre GTK Radiant. Esta vez la cosa va de líquidos,
de como se crean un mapa y esas cosas. Para empezar a trabajar es necesario que
creemos un mapa. Lo más sencillo es coger nuestra primera habitación y empezar por
ahí. En nuestro caso hemos quitado las luces y cambiado la textura del techo por textura
de cielo (hellsky). Tendremos iluminación y un efecto chachi. No será un habitáculo
cerrado y angosto, ahora será del mismo tamaño, pero parecerá más grande. También
hemos metido un par de bañeras para retener el líquido. Es aconsejable que sea así para
darle un aspecto real al mapa, porque salvo en el espacio el líquido sin recipiente se
desparrama.
Bueno, al lió. Creamos un poliedro con la forma y el tamaño que queramos que tenga el
agua dentro de las bañeras. Normalmente, yo, antes de dar textura de agua a un poliedro
lo selecciono todo con textura no draw, es una manía, no es necesario, pero no se... lo
hago así y ya esta.
Hay 2 maneras de usar la textura de agua (dentro de liquids en textures). Una, que es la
más rápida, es dar toda la textura al poliedro. La desventaja es que si unimos 2 bloques
de agua (por ejemplo para hacer un conducto de agua) las caras que se toquen harán un
efecto raro. Para evitar esto, se hace de una segunda manera. Se da textura no draw a
todo el poliedro menos a la cara que se va a ver por los jugadores (ahora me acuerdo por
que pongo siempre no draw antes de poner textura de agua). Y así se evita el efecto raro
ese.
Vamos ahora a poner lava (que hace pupa). Ponemos un poliedro con la forma y el
tamaño que tendrá la lava. Damos textura no draw a todo el poliedro menos a la cara
que van a ver lo jugadores. En esa cara ponemos la textura de lava que mas nos guste
(que este rodeada con rectángulo blanco para que sea un shader).
En esta imagen se ve la textura que hemos escogido para poner en la bañera. Recuerda,
solo en la cara que van a ver los jugadores.
Ahora creamos un poliedro igual que el de la lava, pero un poquito más bajo. Le damos
textura de trigger. Le damos la propiedad de trigger_hurt (tal y como lo hacíamos con el
trigger_teleporter). Con el poliedro trigger_hurt damos a la "N" y abrimos las opciones
de la entidad. Ahí podremos definir cuanto daño hace nuestra lava (no pongáis
demasiado :D)
INTRODUCCIÓN:
Antes de empezar este tutorial, tengo que advertiros que es de los mas difíciles de
explicar por que es el que mas teoría sobre mapas tiene. Con teoría me refiero a la
manera en que "funciona" y se almacena un mapa, tanto en .map, como en .bsp. Todas
las explicaciones que se dan en este tutorial son muy por encima y simplificando mucho
para no aburriros con cosas que ni yo entiendo. Para introduciros un poco en el tema os
diré que los mapas se almacenan en el famoso árbol binario del bsp. Este árbol
almacena la información en ramas. Cada una de estas ramas son las posiciones que
puede ocupar el jugador en el mapa. Desde cada una de esas posiciones hay
determinados elementos (poliedros y demás historias que se han guardado solo su
información de las caras que poseen divididas en triángulos) que se ven y que no se ven.
Pues bien, en esas posiciones solo se guardan los que se ven, y así se evita al motor
gráfico del juego que se dibuje todo el mapa a la vez.
Para empezar a compilar es necesario tener una serie de archivos mínimos para
completar toda la fase de compilación. Estos se instalan (sobre todo los de la imagen)
cuando se instala el GTK Radiant, quedando colocados en una carpeta que crea el
programa llamada radiant dentro de el directorio ...\Quake III Arena\Radiant.
Cada uno de estos archivos tiene sus propias funciones. El .map almacena nuestro mapa
y lo crea el Radiant. El bspc.exe es el que navega nuestro mapa UNA VEZ
COMPILADO para ver por donde pueden ir los bots. Y el q3map es el más importante
de todos, ya que nos permite hacer los 3 pasos necesarios para pasar de un .map a un
.bsp, que es el mapa compilado. Estos tres pasos son el -bsp, el -vis y el -light. El
primero de ellos crea el bsp sin ningún tipo de optimización, o lo que es lo mismo, sin
borrar las caras que no se ven desde la vista de los jugadores. El siguiente paso, el -vis,
es que optimiza el arbol bsp y las caras que no se ven, etc... El tercer paso es el de
iluminación (aquí es donde os explicaría que es eso que sale de portalclusters,
numportals, etc... pero es que muuuuy laaaargo de explicar y no me apetece. Si queréis
enteraros, mandadme un mail). En este paso, se cogen las entidades light, las
surfacelight, los shaders, y en definitiva, todo lo que da luz, y se miden las distancias a
las paredes cercadas de cada una de las entidades. Dependiendo de la distancia se crea
un patrón de colores en 24 bit y se le va cambiando el brillo dependiendo de la distancia
que haya hasta la luz que le ilumina. Esto es a grandes (muy grandes rasgos) lo que pasa
a la hora de compilar, por eso hay que hacerlo en máquinas rápidas para no eternizarnos.
Pero metámonos en la parte práctica, que al fin y al cabo es la que vamos a usar, las que
vienen por defecto en el GTK. La imagen de la izquierda esta sacada directamente del
menú bsp del programa. Aquí se encuentran las opciones más comunes de compilación.
Pasemos a explicar las que mas se usan:
6.- BSP,-vist -fast,-light -extra: Una de las opciones mas raras. Crea, el bsp, lo optimiza
poco (fast) y luego lo ilumina a tutiplen (extra) no lo suelo usar mucho por que tarda
tela para el resultado que da.
7.- BSP: Sólo crea el bsp. Es el mas rápido. Lo uso para ver como están quedando las
cosas en cuanto a texturas se refiere sin poner luces, ya que NO ilumina.
8.- -light -extra: Ilumina el mapa "chachimente" siempre que hayamos creado el bsp
antes. Eso lo sabe el programa mirando si esta el fichero nombremapa.prt, que se crea
como referencia desde el bsp para iluminarlo.
Ahora bien, no todo está terminado aquí, ni mucho menos. Ahora es la parte del bspc, es
decir, el programita que permite coger tu bsp y crear el fichero .ass, que es el que carga
el juego para mover los bots por pantalla. Yo, su os digo la verdad, no me preocuparía
mucho por el tema. ya que con el GTKBUILD (ver sección de descargas) se hace
dándole a un botón (básicamente). Pulsamos directamente sobre el botón de advanced
(A). Se nos abre otra ventanita. Seleccionamos desde la lista 1 el bsp deseado y
directamente le damos a build (B) (toquetead las opciones cuando ya tengas un .ass
definitivo). Cuando termine (saldrá una ventanita de consola de comandos) al lado de
donde tengamos nuestro archivo .bsp, tendremos nuestro .ass. Con ese fichero podremos
crear nuestros mapas con bots. No hay que hacer nada especial, si no que solo tenemos
que asegurarnos el el quakeIII cargue el ass junto con el mapa. Si carga el mapa y el ass
esta en la misma carpeta os aseguro que cargará.
Pues esta es la base para compilar un mapa. Si queréis que se ejecute el juego con el
mapa que acabais de compilar iros al menú edit->preferences, lugo en el arbol pulsais
bsp y después en las opciones, "run engine after compile". Satara el quakeIII con tu
mapa en cuanto termine de compilar.
Creando el PK3 archivar una vez que hayas acabado tu mapa que es hora de convertirlo
del archivo estándar de .bsp
a un archivo .pk3. Tendrás que hacer esto si deseas publicar tu mapa y dejas siempre a la
gente jugarlo. PakScape es la utilidad de la opción que comprimirá tu trabajo y lo hará
substancialmente más pequeño para la transferencia directa.
Si has utilizado siempre una herramienta de la compresión del archivo como Winzip
entonces tú tiene una idea básica sobre archivos de compresión y transferencias directas
uncompressing del archivo. PakScape hace la misma cosa pero apoya el formato .pk3
que la identificación utiliza contraer los mapas dentro del juego. Tu mapa de encargo
debe conformarse con un formato específico de la carpeta para que el juego para utilizar
el nivel que has creado. La mayoría de los mapas nuevos publicaron venido hoy con la
ayuda del en-juego que permiten que el usuario desabroche simplemente el archivo en
la carpeta baseq3 y utilice la “sola opción del jugador/de la escaramuza” dentro del
juego para jugar el mapa. Esto es lo que demostraré te a cómo lograr.
El primer paso es conseguir PakScape descargándolo aquí. El paso siguiente será crear
una carpeta en “mis documentos” llamados “mi mapa”. Desearás crear las carpetas
siguientes dentro de esta carpeta como sigue.
Si entras la carpeta arena III “temblor/baseq3” encontrarás todos los archivos necesarios
después de que se ahorre tu mapa. los “levelshots” demuestran la imagen exhibida
cuando el mapa carga. los “mapas” tienen el archivo de .bsp y de .ass que dibuja el
mapa con la ayuda del BOT. las “escrituras” son donde el archivo de .arena se reclina
permitiendo la ayuda del en-juego. los “sonidos” son donde tendrás tus propios archivos
de .wav para el sonido. las “texturas” son donde reside cualquier textura de encargo que
hayas utilizado. Ir a continuación y lanzar PakSacape y reducir el programa a una
ventana que sea exhibida en tu tablero del escritorio. Después abrir la carpeta de “mi
mapa” en “mis documentos” y hacer igual de modo que la ventana esté sobre PakScape
como el tiro abajo
Ahora copiar los archivos de la carpeta baseq3 en las carpetas apropiadas en tu carpeta
de “mis mapas”. Una vez que ésta sea fricción justa hecha las carpetas en PakScape y
excepto el entero sortean pues un archivo .pk3. El objetivo es mímico la estructura de
archivo en el juego dentro de tu archivo .pk3. El único archivo adicional a agregar será
“me leyó” el archivo que explica al usuario cómo instalar el mapa y algunos detalles
sobre cómo el mapa fue hecho incluyendo créditos a cualquier persona ti pidieron
prestados de.
Esto podía incluir texturas, las casas prefabricadas, o los modelos. Por un ejemplo del
“leerme” archivo chascan aquí. Apenas abrir la libreta en la sección de los accesorios de
Windows para escribir el archivo.
Entonces tomar “me leen” archivo junto con tu .pk3 y lo comprimen otra vez pero ahora
que usa PakScape excepto la combinación como archivo de .zip de modo que la gente
pueda descargarlo y utilizar
Crear teletrasportes:
esta sección te demostrará cómo hacer un teleporter básico y lanzar en otros cuartos.
Teleporters es bastante fácil de crear. ¡Son como los saltadores en su funcion pero en
vez de saltar te manda a otra sala! La primera cosa que necesitaremos es un modelo del
transportador. Derecho clikear encendido la ventana del wireframe donde quisieras que
el modelo fuera seleccionar “misceláneo”, entonces “misc_model”. Ir a la carpeta del
teleporter y seleccionar “teleporter.md3”. Esto demostrará para arriba como modelo
rosado del wireframe en tu mapa con una caja de limitación alrededor de él. El postition
el modelo en tu mapa que se cerciora de él es llano ahora con el cepillo del piso.
Clikenado “n” traerás para arriba el menú del enity que permitirá que rotes el modelo
usando las llaves en la esquina izquierda más baja. Puedes seleccionar 180.360, o lo que
para hacer frente al modelo a tu tener gusto. En el cuadro debajo de ti puede ver la
trayectoria deseada en el otro cuarto
Una vez que se ponga el modelo crear un cepillo que cubra la columna en el centro del modelo.
Cerciorarte de que el cepillo amplíe apenas poco sobre la caja de limitación del modelo para
corregir futuro. Ahora con el cepillo todavía seleccionado van a la opción de las texturas en el
toolbar y cargan el “campo común” y entonces la textura del “disparador”. Ahora con el tecleo
derecho todavía seleccionado del cepillo tu ratón y elige la opción del “disparador”, entonces
“trigger_teleport”. Traer para arriba el menú del enity golpeando “n” y en el campo dominante
incorporar la “blanco”. En el campo de valor incorporar “trans1”. Esto hará el cepillo un enity
teleporting cuando está tocada.
El valor de “trans1” podía ser cualquier cosa. Es justo el nombre de tu teleporter y se utiliza
alinearlo para arriba con la destinación apropiada. Ahora es hora de acabar la segunda mitad
Ahora es hora de hacer una destinación para usted nuevo teleporter.
No reelija el cepillo sobre el que usted solamente trabajaba por golpeando el chasquido 'esc'
clave y derecho sobre la ventana wireframe en la destinación deseada. Seleccione 'el objetivo' y
luego la opción 'target_teleporter'. Usted verá una pequeña caja aparecer lo que puede ser
movido alrededor. Ponga la caja alrededor de la misma altura que el modelo de teleporter y con
ello todavía siendo seleccionado, el clike boton derecho. Seleccione la opción 'objetivo' y luego
'target_teleporter'. En el campo clave entran en 'targetname' y en el campo de valor entran en
'trans1'. Esto corresponderá ambas entidades por usando el mismo valor. No reelija la caja por
hitting'esc '.
Usted ahora debería ver una línea verde ir del teleporter a su caja objetivo. No preocúpese si la
línea examina paredes y tal, esto es solamente una línea directa al objetivo. La única cosa dejada
para hacer ahora es de hacer los lados del teleporter sólidos.
Siempre que use modelos recuerdan que los jugadores no pueden correr directamente por ellos
a no ser que su hecho sólido. El método que uso es de solamente dibujar un cepillo alrededor de
la parte del modelo del que usted quiere obstruirse. Entonces acérquese a la opción de texturas
en la barra de tareas y cargue la sección 'común'. Seleccione la textura 'de cojín' para cubrir sus
nuevos cepillos y luego deslect cuando terminado. Los cepillos serán invisibles, pero sólidos en
el juego
Conectar salas:
Comenzar con la fabricación de un cuarto simple:
Ahora seleccionar una de las paredes y utilizar la herramienta del truncamiento ,
cortan un agujero en la pared en la forma del pasillo que deseas.
Ahora crear un cuarto idéntico pero hacer frente a la dirección opuesta (puedes
seleccionar todos los cepillos en el cuarto por shift+click, después duplicas con el
“espacio”, y finalmente rotas con ):
Usando un método similar a lo que hacías tu sitio inicial; crear un cuarto largo,
ampliable (paredes, techo y piso del IE 2) ese los ajustes los agujeros en tus
cuartos principales:
Puertas:
3 Agregar una llave del ángulo, o la prensa justa una de los botones de la dirección. La
puerta no se moverá a menos que tenga un ángulo válido de la abertura.
4 Agregar una llave del soundset para oír sonidos cuando la puerta se mueve. Los
nombres de los soundsets de la puerta del paria de Jedi se enumeran abajo
2-Volver a clasificar según el tamaño el disparador para caber dentro de las paredes.
Cerciorarte de que sea bastante grande para que camine el jugador o el npc a través.
4-Agregar una llave de la espera al disparador y hacerla levemente más larga que el
tiempo de la espera de la puerta. Esto para el disparador que activa mientras que la
puerta está abierta.
2-Colocar el botón de modo que sea no vaya completamente la pared cuando esté
activado. Aumentar tu característica del labio para prevenir esto.
3-Fijar el ángulo móvil del botón de modo que se mueva en la pared cuando esté
activado.
4- Crear un acoplamiento de la activación del botón a la puerta, como en el ejemplo
arriba.
1-Crear una entidad del disparador que el jugador pueda estar parado adentro mientras
que toca el interruptor.
5-Agregar una llave del targetname a cada panel, usando el mismo nombre que la llave
de la blanco del disparador
7-Colocar ambos paneles sobre uno a de modo que puedan cambiar mientras que
aparezcan ser un solo interruptor.
9-Este interruptor, como la mayoría en el paria de Jedi, no cambia detrás después de que
la puerta se cierre. Ese tipo es manejado mejor por una escritura.
Vision superior
Características del panel de "OFF" Características del panel de "ON"
Características de la puerta
Banderas
GOODIE: Se abre solamente si el activador tiene una llave de la fuente del “goodie”
en su inventario.
INACTIVO: Debe ser utilizado por un target_activate antes de que pueda ser
utilizado.
Llavellaves
Targetname: Nombre del botón o del campo alejado del disparador que activa la
puerta.
Espera: Segundos a esperar antes de volver (el defecto es 3, nunca vuelve es -1).
Dmg: Dañar para infligir cuando está bloqueado (el defecto es 2, fijó a la negativa
para ningún daño).
Linear: Fijar a 1 para que la puerta se mueva linear más bien que con la aceleración
(el defecto es 0).
Localización de averías
1- La puerta no se mueve.
Fijar un ángulo de la abertura en las características de la puerta. Debe haber una flecha en el
centro de la puerta.
4- El disparador no trabaja.
Comprobar tu tamaño. Cerciorarte de que el jugador o el npc pueda tocarlo.