Creating an incinerator: Difference between revisions
Thunder4ik (talk | contribs) m (Unicodifying, replaced: [[Image: → [[File: (20)) |
|||
(47 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{back | Portal Level Creation}} | |||
{{DISPLAYTITLE: Portal - Tutorial - Incinerator}} | |||
== Introduction == | == Introduction == | ||
In this tutorial you will learn how to create an Aperture Science Emergency Intelligence Incinerator. | |||
In this tutorial you will learn how to | |||
== Instructions == | == Instructions == | ||
=== | ===The Incinerator=== | ||
< | Create a [[prop_dynamic]] entity | ||
< | Set the world model to <code>models/props_bts/glados_aperturedoor.mdl</code> | ||
: | |||
Change its name to <code> model_incinerator_door </code> | |||
| | Choose <code>Collisions</code> and choose <code>Not Solid</code> | ||
| | |||
===The Floor=== | |||
Make a floor, Two brushes are <code>192w*64l*16h</code> and the other 2 are <code>40w*128l*16h</code> | |||
[[File:Incinerator_floor.PNG|thumb|right|200px|The floor of the incinerator]] {{clr}} | |||
< | |||
===The Little Room=== | |||
[[File:Incinerator_tinyroom.PNG|thumb|right|200px|The Small Room of the incinerator]] | |||
Make a little room, the walls for each side contain 2 brushes. | |||
2 walls are <code>152w*16*128h</code> brushes. | |||
| | |||
| | The top part of the walls have the texture <code>metalwall_bts_006a</code> and | ||
the bottom part has the texture <code>metalwall_bts_006b_gradient</code>. | |||
< | |||
: | Rotate the faces by 180 degrees. Align the textures with the texture tool with Texture Shift. | ||
| | The floor of the little room is <code>128w*128l*16h</code> and the top face texture is <code>light_orange001</code> {{clr}} | ||
| | |||
| | ===Fire Particles=== | ||
| | [[File:Incinerator_particles.PNG |thumb|right|200px|The Position of the Fire Particle]] | ||
| | |||
Create a [[info_particle_system]] entity | |||
< | |||
< | Set its name to <code>fire_particles</code> | ||
< | |||
< | Set the angles to <code>0 270 0</code> | ||
< | |||
</ | Set <code>Particle System Name</code> to <code>fire_incinerator_door</code> | ||
Put this particle in the hole of the incinerator doors {{clr}} | |||
===Manual Collision=== | |||
[[File:Incinerator arch1.PNG |thumb|right|200px|Manual Collision]] | |||
Create a <code>208*208l*16h</code> arch with the <code>invisible</code> 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==== | |||
[[File:Incinerator arch2_3.PNG |thumb|right|150px|Manual Collision]] | |||
[[File:Incinerator arch2.PNG |thumb|right|150px|Manual Collision]] | |||
[[File:Incinerator arch2_2.PNG |thumb|right|150px|Manual Collision]] | |||
Create a <code>144*144l*192h</code> arch with the <code>invisible</code> 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 <code>30 degree cut</code> 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.}} {{clr}} | |||
===Fire Damage to Player=== | |||
Create a <code>152w*128*l*224h</code> brush with the trigger texture. | |||
Tie it to a [[trigger_hurt]] entity. | |||
Set <code>Damage</code> and <code>Damage Cap</code> to <code>100</code> | |||
Change <code>Damage Type</code> to <code>BURN</code> | |||
Set <code>Zero Damage Force</code> to <code>Yes</code> | |||
{{clr}} | |||
===Nudging The Box=== | |||
[[File:Incinerator_Trigger_Placement.PNG |thumb|right|200px|Nudging the box]] | |||
Create a <code>128s*128l*8h</code> brush with the trigger texture. Tie it to a [[trigger_multiple]]. | |||
Set its name to <code>nudge_boxes</code> | |||
Set its <code>filter_name</code> to <code>filter_boxes</code> | |||
Go to flags and check <code>Physics Objects</code> and uncheck <code>clients</code>. | |||
Go to outputs and enter the following: | |||
{| {{OutputsTable}} | |||
| [[File: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 its 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=== | |||
Make <code>128s*128l*8h</code> brush with the invisible texture. | |||
Tie it to a [[func_brush]] entity. | |||
Name it <code>incinerator_collision_door</code> | |||
Hold Ctrl + M and change the x value to 25 | |||
Position it just like this | |||
[[File:Incinerator_funcbrush.PNG |thumb|left|200px|Door Collision]] | |||
{{clr}} | |||
===Sounds=== | |||
Make an [[ambient_generic]] entity and name it to <code>sound_incinerator</code>. | |||
Set its <code>Sound Name</code> to <code>Portalgun.pedestal_rotate</code> | |||
Set its <code>SourceEntityName</code> to <code>model_incinerator_door</code> | |||
{{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 <code>relay_incinerator_open</code>, <code>relay_incinerator_close</code>, and <code>relay_euthanization</code> | |||
On <code>relay_incinerator_open</code> add the following outputs: | |||
{| {{OutputsTable}} | |||
| [[File:Io11.png]] || OnTrigger || fire_particles || Start || || 0.00 || No | |||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || incinerator_collision_door || Disable || || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || model_incinerator_door || setanimation || open || 0.00 || No | ||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnTrigger || sound_incinerator || playsound || || 0.00 || No | ||
|} | |} | ||
< | On <code>relay_incinerator_close</code> add the following outputs: | ||
[[ | |||
{| {{OutputsTable}} | |||
| [[File:Io11.png]] || OnTrigger || fire_particles || stop || || 0.00 || No | |||
|- | |- | ||
| | | [[File:Io11.png]] || OnTrigger || incinerator_collision_door || Enable || || 0.00 || No | ||
[[ | |||
|- | |- | ||
| | | [[File:Io11.png]] || OnTrigger || model_incinerator_door || setanimation || close || 0.00 || No | ||
|- | |- | ||
| | | [[File:Io11.png]] || OnTrigger || sound_incinerator || playsound || || 0.00 || No | ||
|} | |} | ||
< | ===Killing the Box=== | ||
Make <code>128s*128l*48h</code> brush with the trigger texture. | |||
Tie it to a trigger_once entity. | |||
| [[ | |||
Name it to <code>trigger_killbox</code> | |||
Set its <code>Filter Name</code> to <code>filter_boxes</code> | |||
Go to flags and check <code>physics objects</code> and uncheck <code>Clients</code> | |||
Enter the following in outputs: | |||
{| {{OutputsTable}} | |||
| [[File:Io11.png]] || OnStartTouch || !activator || kill || || 0.00 || No | |||
|- | |- | ||
| [[ | | [[File:Io11.png]] || OnStartTouch || relay_euthanization || Trigger || || 0.00 || No | ||
|} | |} | ||
< | ==Implementation== | ||
Have a certain object trigger <code>relay_incinerator_open</code> to open the incinerator | |||
When that certain object deactivates, trigger <code>relay_incinerator_close</code>. | |||
If that certain object can't deactivate, make <code>relay_euthanization</code> trigger the <code>relay_incinerator_close</code>. | |||
</ | |||
== See also == | == See also == | ||
* [[Portal Level Creation]] | * [[Portal Level Creation]] | ||
[[Category:Portal]] | [[Category:Portal]] | ||
[[Category:Level Design]] | |||
[[Category:Tutorials]] |
Latest revision as of 00:17, 7 January 2024
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 its 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 Little Room
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
Create a info_particle_system entity
Set its 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
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
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.

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
Create a 128s*128l*8h
brush with the trigger texture. Tie it to a trigger_multiple.
Set its name to nudge_boxes
Set its 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 | |
---|---|---|---|---|---|---|
![]() |
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 its 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
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 its Sound Name
to Portalgun.pedestal_rotate
Set its SourceEntityName
to model_incinerator_door

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:
On relay_incinerator_close
add the following outputs:
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 its 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 | |
---|---|---|---|---|---|---|
![]() |
OnStartTouch | !activator | kill | 0.00 | No | |
![]() |
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 relay_euthanization
trigger the relay_incinerator_close
.