Puertas rotatorias
De LiTHiUM
Tutorial Avanzado #1 (GoldSrc) Título completo: Puertas rotatorias simples y avanzadas Requisitos: Se supone un manejo fluido del WorldCraft/Hammer y las entidades del Half-Life
Tabla de contenidos |
Introducción
Recuerda que las puertas rotatorias son entidades, con lo que la luz las atraviesa (esto es un fallo enorme del motor 3D del Half-Life) así que deberemos cuidar mucho la iluminación del nivel para intentar disimular este fallo.
Ahora haremos una puerta rotatoria simple que una la primera habitación que vamos a crear con otra segunda.
Puerta rotatoria simple
Primero crearemos una habitacion de 256x256x256, con una salida para Terroristas y otra con salida para Antiterroristas.
Ahora nos vamos al explorador de texturas y escribimos "do" (sin comillas) de door (puerta). Aparecerán varias puertas. Yo he elegido "FIFTIES_DOOR01" que tiene un tamaño de 96x128. Ahora, para que los lados no queden feos con la textura de la puerta descolocada, hacemos el sólido de 96x128x32 con la textura "CSTRIKE_MET4METL". Luego colocamos la textura de la puerta que hemos elegido, "FIFTIES_DOOR01" a cada lado. Queda esto:
Entonces la colocamos a ras del suelo y hacemos "Carve" en la pared con la puerta. Entonces redimensionamos la puerta y la dejamos en 96x128x8. Ahora creamos un pasillo de 160x160x160 y lo ahuecamos con un valor de -16. Desagrupamos el pasillo y eliminamos la cara que une el pasillo y la pared de la puerta y ajustamos el tamaño del techo y el suelo.
¡Ten mucho cuidado con el Carve, ya que si lo haces con objetos complejos puedes crear excesivos cortes y hacer que caigan los FPS!
Vamos de nuevo con la puerta. Colocaremos un solido que simula las visagras, esto es, el eje de rotación de la puerta. Entonces nos vamos al explorador de texturas y seleccionamos la textura "ORIGIN", que es una cara verde :) Entonces hacemos un sólido de 16x16x64 por ejemplo y lo colocamos a un lado de la puerta. Recuerda que ese lado será el que se quede fijo. Quedaría esto:
¡Es muy importante colocar bien las visagras ya que si no, al abrir la puerta, se irá al quinto pino!
Ahora seleccionamos la puerta y el eje (pulsando Control + click izquierdo del ratón) y lo convertimos en "func_door_rotating". Entramos en sus propiedades y en el campo "Name" (nombre) ponemos por ejemplo "puerta01" (sin comillas). Para darle realismo, en el campo "Move Sound" y "Stop Sound" podemos poner "Squeaky" (chirriante) y "Chunk" respectivamente, que son sonidos metálicos, como la puerta. Ahora ve al campo "Distance (deg)" (distancia en grados que girará) y asegurate que está en 90.
Para finalizar es necesario un sólido-entidad que haga de activador para que la puerta se abra, como las células que están en los ascensores que abren las puertas si se comienzan a cerrar y tu las atraviesas... ^^'
Entonces ve al explorador de texturas y busca la polivalente textura "AAATRIGGER". Crea un sólido de 24x84x64 y transfórmalo en la entidad "trigger_multiple" (se puede activar múltiples veces). Colócalo de tal forma que sobresalga por los dos lados de la puerta (así en vez de hacer 2 activadores, uno a cada lado, haces solo 1 ;) Entra en sus propiedades y en "Target" pon el nombre de la puerta, "puerta01" (sin comillas). Y en "Delay before reset" (tiempo de retardo hasta que reinicia su estado) pon 1, así podrá ser activado una vez por segundo. Una vez colocado, quedaría así:
Ya tenemos la puerta rotatoria acabada. Fíjate que se abre con sólo acercarnos. Ahora puedes trastear con los parámetros (dentro de las propiedades de la puerta), para modificar su comportamiento:
- En "Speed" (velocidad de apertura/cierre) vemos que hay un valor de 100 pero podremos poner menos o más si queremos que la puerta se abra mas despacio o mas deprisa.
- En "Delay before close, -1 stay open" (retardo antes de que se cierre la puerta, -1 la deja abierta) es el retardo que tiene la puerta, lo que tarda en cerrarse desde que nosotros la abrimos. El valor que tiene el 4, pero podemos poner otro valor. Si ponemos -1 significará que la puerta quedará abierta, como indica la propiedad misma.
- En "Damage inflicted when blocked" (daño producido si se bloquea) podremos poner un valor que será la cantidad de vida que la puerta nos quitará si cuando está cerrando nos ponemos en medio. Si es una puerta pequeña un daño realista podría ser 10 (nos pillamos los dedos), mientras que si es una puerta más grande o doble, puede ser 50 (casi nos espachurra 8)
- En "Healt (shoot open)" (vida de la puerta, se abre si la disparamos) podemos poner un valor de 25 por ejemplo, y para abrirla tendremos que dispararla hasta que la dañemos en 25 puntos de vida. Esto anula otras opciones como la de "Use only".
- Y por ejemplo, si ponemos una "Distance (deg)" de menos de 90 (grados), la puerta no se abrirá completamente y se quedará entreabierta, por ejemplo con un valor de 75 ó 60, como si algo la estuviera bloqueando...
Además si en la solapa "Flags" activamos "Starts Open" entonces la puerta estará abierta al cargar el nivel. Si seleccionamos "X Axis" o "Y Axis" la puerta rotará en esos ejes (por ejemplo para hacer rotar partes de una papelera como una tapa), y no en el Z (es el que rota por defecto, como cualquier puerta normal).
Puerta rotatoria con cristales
Ahora crearemos una puerta rotatoria con cristales. Usaremos el mismo mapa que hemos usado ahora. Borra la puerta anterior y busca en el explorador de texturas una puerta que tenga zonas que puedan llevar cristales. Yo he elegido la puerta "OUT_W1DR1" (puedes ver como no siempre funciona el filtro para buscar texturas ;) Tiene un tamaño de 64x96, con lo que es mas pequeña que la de antes (quedará mas realista). Entonces crea un sólido de 64x96x8 con la textura de metal de siempre, para evitar el feo efecto de la textura de la puerta mal colocada en los cantos. Ahora coloca la textura de la puerta en las 2 caras del sólido y encuádralas.
Ahora viene la parte mas laboriosa, que es hacer los orificios para los cristales en la puerta. Como ves, deberemos hacer 2 orificios. Entonces haremos un sólido con la textura de cristal para aprovecharlo luego. La textura de cristal que he elegido ha sido "GLASSBLUE1". Este es el momento de usar intensivamente la herramienta "Camera" (cámara). La malla la he puesto a 1 para tener una mayor precisión.
¡Ten mucho cuidado al mapear con la malla a 1... puedes mover paredes sin querer y crear geniales agujeros llamados LEAKS!
Tras unas cuantas pruebas, el hueco superior me ha salido de un tamaño de 8x44x51. La inferior tiene un tamaño de 8x44x17. Los cristales los haremos un poco mas finos que la puerta, con lo que los sólidos (cristales) con los que hemos perforado tendrán unos valores de 4x44x51 (el de arriba) y 4x44x17 (el de abajo). Ten en cuenta que las texturas no son perfectas ni simétricas, así que los números que obtendremos al perforarlas serán un poco raros.
NOTA: También podemos usar un solo cristal de 4x44x76 pero puede producir a lo lejos efectos visuales no deseados (que se vea el cristal a través de la puerta).
No hace falta que transformes los cristales en entidades "func_wall" para hacerlos trasparentes, pues eso lo haremos al agrupar el sólido con la textura de cristal con el eje y transformarlos en entidad. Ahora coloca los ejes. Serán 3, pues cada parte de la puerta llevará su propio eje, su propia visagra. Seleccionamos la textura "ORIGIN" y hacemos 3 visagras pequeñas, asi:
¡Recuerda que es muy importante colocar bien las visagras ya que si no, al abrir la puerta, se irá al quinto pino!
Ahora hay que agrupar (Control + click en cada sólido) cada eje con su solido y los hacemos entidad "func_door_rotating". El eje de arriba con el sólido del cristal de arriba, el eje del medio con el sólido de la puerta, y el eje inferior con el sólido del cristal de abajo. Entonces tendremos 3 entidades puerta rotatoria. Ahora debemos configurar las propiedades exactamente igual para las 3 entidades o si no cada puerta irá a su aire. Pondremos en las 3 el mismo "Name" (nombre) por ejemplo, "puerta02" (sin comillas), el mismo valor de "Speed" (velocidad de apertura/cierre), los mismos sonidos, el mismo retardo de cierre, etc.
La única diferencia será que las opciones de "Render Mode" y "FX Amount" de las 2 entidades "func_door_rotating" de cristal, las configuraremos para simular la trasparencia del cristal (modo "Texture" y un valor de 100, por ejemplo...).
Para finalizar colocaremos el activador como antes. Selecciona la textura "AAATRIGGER". Crea un sólido de 16x54x56 y transfórmalo en la entidad "trigger_multiple". Colócalo de tal forma que sobresalga por los dos lados de la puerta como antes. Entra en sus propiedades y en "Target" pon el nombre de la puerta, "puerta02" (sin comillas). Y en "Delay before reset" (tiempo de espera) pon 1, así podrá ser activado una vez por segundo. Una vez colocado, quedaría:
Lo mejor para aprender es praticar... ¿recuerdas los botones del tutorial anterior que activaban luces y sonidos?¿podríamos abrir y cerrar puertas con interruptores?... Inténtalo tu mismo ;)
... pero de todas formas, si tienes cualquier duda acude al Foro de LiTH o mandanos un e-mail.
Mapa de ejemplo
Si quieres bajarte el mapa creado para este tutorial, haz click aquí.
