Blowout Doors

From Valve Developer Community
Jump to navigation Jump to search
English (en)Translate (Translate)

This tutorial details how to create a normal door which, when triggered, becomes a physical object and is blown out from the door frame.

Construction

The Door

Fig. 1
Fig. 2
  1. Create a door as needed. See Doors.
  2. Once the door has been created, build a door frame. To do this, use three brushes to create an outline of the door. For ideal performance, use vertex manipulation to slot the pieces of the frame together, as in fig. 1.
Note.pngNote:This will either have a very negligible or no performance benefit, it is safe to ignore this instruction.
  1. Once the frame is complete, select all the pieces, press Ctrl+T to tie them to an entity, and select func_brush from the list. Then select Never Solid in the Solidity field. The door and its frame should now be exactly like in fig. 2.

Transformation

In order to transform the door to a physically simulated version, the phys_convert entity is used.

Place this entity near to the door and set the following values:

  • Name: door_converter
  • Entity to convert: door

The Explosion

To create the 'blowout' effect, two explosion entities need to be created. To do so, follow these steps:

  1. Place an env_explosion entity on whichever side the door should be blown from. If it is placed behind the door, the door will blow towards the player. Name this entity door_explosion.
  2. To create the movement of the door, place an env_physexplosion entity in the same place as the env_explosion. This entity should also be named door_explosion.
Tip.pngTip:The arrows and shift key can be used together to duplicate an entity in the exact same position as another one.
  1. The setup should now be similar to the setup in fig. 3.
Fig. 3

Triggering the Effect

Place a logic_relay entity near to the door and name it relay_door_blow. Check the "Only trigger once" flag in the Flags tab. Switch to the Outputs tab and add two new records:

My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger door_converter ConvertTarget   0 No
Io11.png OnTrigger door_explosion Explode   0.05 No

To trigger the effect, trigger relay_door_blow, preferably with an entity that can only trigger once (e.g. with a trigger_once).