Pages - Menu

jueves, 10 de octubre de 2013

Tutorial Portal 2: Emancipation Grid (II)

En el post del día anterior pudimos ver cómo crear un Emancipation Grid de una forma sencilla, el cual nos reseteaba los portales y destruía los objetos que llevásemos si pasábamos por él, pero hay veces en los que éste elemento forma parte del puzzle y debemos poder activarlo o desactivarlo. En éste tutorial vamos a ver cómo crear un Emancipation Grid dinámico.


Emancipation Grid dinámico.

Para poder crear un Emancipation Grid dinámico hay que seguir los siguientes pasos:

- Creamos dos entidades y e asignamos la clase prop_dynamic.
- Modificamos los atributos para que quede de la siguiente forma:

World Model: models/props/fizzler_dynamic.mdl
Name: fizzlers
HoldAnimation: true
Collision: Not Solid

- Situamos las entidades pegadas a la pared y de tal forma que estén una frente a la otra.

- Creamos un muro que vaya de una entidad a otra y lo transformamos con Control+T en una entidad de la clase trigger_portal_cleanser.

- En sus propiedades ponemos:

Name: fizzler_brush
Visible: yes

- En la pestaña Flags marcamos las siguientes casillas:

Clients
NPCs
Physics Objects

- Creamos una entidad de la clase logic_relay y en la propiedad Name le asignamos el valor "relay_fizzler_enable".

- Abrimos sus atributos y en la pestaña Outputs pulsamos "Add...":

My Output Named: OnTrigger
Target Entity Named: fizzler_brush
Via this Output: Enable

My Output Named: OnTrigger
Target Entity Named: fizzlers
Via this Output: SetAnimation
Parameter: open

- Creamos una nueva entidad logic_relay y en el atributo Name le asignamos el valor "relay_fizzler_disable".

- Abrimos sus atributos y en la pestaña Outputs pulsamos "Add...":

My Output Named: OnTrigger
Target Entity Named: fizzler_brush
Via this Output: Disable

My Output Named: OnTrigger
Target Entity Named: fizzlers
Via this Output: SetAnimation
Parameter: close

Con esto tenemos creada el Emancipation Grid dinámico perfectamente, ahora vamos a crear un botón de suelo que lo active o desactive.

- Creamos una entidad de la clase prop_floor_button

- Abrimos sus propiedades y en la pestaña Outputs pulsamos "Add...":

My Output Named: OnPressed
Target Entity Named: relay_fizzler_disable
Via this Output: Trigger

My Output Named: OnUnPressed
Target Entity Named: relay_fizzler_enable
Via this Output: Trigger

Pulsa F9 para testear el mapa, prueba a ponerte encima del botón.

¿Qué clase de mapas para Portal 2 se te ocurren que usen un Emancipation Grid dinámico?