Creating an incinerator

From Valve Developer Community
Jump to: navigation, search
Portal Level Creation

Introduction

In this tutorial you will learn how to create an Aperture Science Emergency Intelligence Incinerator.

Instructions

The Incinerator

Create a prop_dynamic entity Set the world model to models/props_bts/glados_aperturedoor.mdl

Change it's name to model_incinerator_door Choose Collisions and choose Not Solid

The Floor

Make a floor, Two brushes are 192w*64l*16h and the other 2 are 40w*128l*16h

The floor of the incinerator

The Little Room

The Small Room of the incinerator

Make a little room, the walls for each side contain 2 brushes.

2 walls are 152w*16*128h brushes.

The top part of the walls have the texture metalwall_bts_006a and the bottom part has the texture metalwall_bts_006b_gradient.

Rotate the faces by 180 degrees. Align the textures with the texture tool with Texture Shift.

The floor of the little room is 128w*128l*16h and the top face texture is light_orange001

Fire Particles

The Position of the Fire Particle

Create a info_particle_system entity

Set it's name to fire_particles

Set the angles to 0 270 0

Set Particle System Name to fire_incinerator_door

Put this particle in the hole of the incinerator doors

Manual Collision

Manual Collision

Create a 208*208l*16h arch with the invisible texture and set wall width to "40", Number of sides = 16, Arc = 360, Start Angle = 0

Select the brushes and hold 'ctrl + m' choose the X value and type "25"

Tie the entire shape to a func_detail

Position the brushes just like this.

Second Part of Manual Collision

Manual Collision
Manual Collision
Manual Collision

Create a 144*144l*192h arch with the invisible texture

Set Number of sides to 16

Set wall width to 16

Set Arc to 360

Set Start Angle to 0


Select the clipping tool, from the top right of the shape, make a 30 degree cut from right to left. Then cut off the top side of the shape.

Tie the shape to a func_detail

Now do your best to fit the shape into the incinerator.

Note: These brushes are for collision so do your best to fit them out.

Fire Damage to Player

Create a 152w*128*l*224h brush with the trigger texture.

Tie it to a trigger_hurt entity.

Set Damage and Damage Cap to 100

Change Damage Type to BURN

Set Zero Damage Force to Yes

Nudging The Box

Nudging the box

Create a 128s*128l*8h brush with the trigger texture. Tie it to a trigger_multiple.

Set it's name to nudge_boxes

Set it's filter_name to filter_boxes

Go to flags and check Physics Objects and uncheck clients.

Go to outputs and enter the following:

  My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger  !activator Wake 0.00 No


Copy and paste the trigger_multiple and make it a trigger_push Remove the Output from the "Outputs" tab

Set it's move direction to 24 90 0 and leave everything else as it is.


Put the two triggers in the same spot and press ctrl + m. Choose the X value and type "25".

Position them just like this.

Door Collision

Door Collision

Make 128s*128l*8h brush with the invisible texture. Tie it to a func_brush entity.

Name it incinerator_collision_door

Hold Ctrl + M and change the x value to 25 Position it just like this.

Sounds

Make an ambient_generic entity and name it to sound_incinerator.

Set it's Sound Name to Portalgun.pedestal_rotate

Set it's SourceEntityName to model_incinerator_door

Note: The sounds are only used in the GLaDOS boss fight, so adding/changing the sound is completely up to you.

Making the Incinerator Functional

Create 3 logic_relay entities

Name them relay_incinerator_open, relay_incinerator_close, and relay_euthanization

On relay_incinerator_open add the following outputs:

  My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger fire_particles Start 0.00 No
Io11.png OnTrigger incinerator_collision_door Disable 0.00 No
Io11.png OnTrigger model_incinerator_door setanimation open 0.00 No
Io11.png OnTrigger sound_incinerator playsound 0.00 No

On relay_incinerator_close add the following outputs:

  My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger fire_particles stop 0.00 No
Io11.png OnTrigger incinerator_collision_door Enable 0.00 No
Io11.png OnTrigger model_incinerator_door setanimation close 0.00 No
Io11.png OnTrigger sound_incinerator playsound 0.00 No

Killing the Box

Make 128s*128l*48h brush with the trigger texture. Tie it to a trigger_once entity.

Name it to trigger_killbox

Set it's Filter Name to filter_boxes

Go to flags and check physics objects and uncheck Clients

Enter the following in outputs:

  My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouch  !activator kill 0.00 No
Io11.png OnStartTouch relay_euthanization Trigger 0.00 No

Implementation

Have a certain object trigger relay_incinerator_open to open the incinerator

When that certain object deactivates, trigger relay_incinerator_close.

If that certain object can't deactivate, make incinerator relay_euthanization trigger the relay_incinerator_close.

See also