Creating Portal Piston Types Designing

From Valve Developer Community
Jump to: navigation, search



Portal Behind The Scenes Level Creation

Introduction

This page is for developers so we can create Creating Portal Piston Types.

Small Pistons

Small pistons are always vertical.

Piston Type 1

Create a prop_static and enter the following properties.

Piston Base
Property Name Value
World Model models/props_bts/vertical_small_piston_base.mdl
Disable Shadows Yes
Piston Body

Create a prop_dynamic and enter the following properties.

Property Name Value
Parent crusher_1
World Model models/props_bts/vertical_small_piston_body.mdl
Disable Shadows Yes
Collisions Not Solid
Lighting Origin crusher_lighting_1

Create a 32*32*288 brush with the nodraw texture and create a 146*146*4 Cylinder with 16 sides with the nodraw texture. Position the brushes as seen in the screenshot.

The func_door positioned

After positioning the brushes, select both brushes and tie them to a func_door and enter the following properties

Property Name Value
Name crusher_1
Delay Before Reset -1
Lip 128
Blocking Damage 25
Force Closed Yes
Move Direction 90 0 0
My Output Target Entity Target Input Parameter Delay Only Once
Io12.png OnFullyClosed relay_stop_sound_room_1 Trigger <none> 0.00 No
Io11.png OnFullyClosed !self Open <none> 0.50 No
Io12.png OnFullyOpen relay_stop_sound_room_1 Trigger <none> 0.00 No
Io11.png OnFullyOpen !self Open <none> 0.50 No

Do not miss the Delay.

Create a 146*146*322 cylinder with 16 sides with the playerclip texture and set tie it to a func_brush. Set its parent to crusher_1.

The func_brush on the piston body

Create a logic_relay entity and enter the following properties

Property Name Value
Name relay_stop_sound_room_1
Start Disabled Yes

Enter this output

My Output Target Entity Target Input Parameter Delay Only Once
Io12.png OnTrigger stop_sound_room_1 Playsound <none> 0.00 No
Completed Piston

Create an ambient_generic and enter the following properties.

Property Name Value
Name stop_sound_room_1
Sound Name Portal.giant_piston
Pitch 200
Start Pitch 200
SourceEntityName crusher_1

Create an info_target and set its name to crusher_lighting_1. This is the light source of the piston body model. Place this in a logical spot like near the piston base model.

Implementation

To start the piston, enable the relay_stop_sound_room_1 entity and open crusher_1. When the player gets considerably far away from the piston, disable the relay_stop_sound_room_1 entity.


Piston Type 2

Piston Base

These pistons were specifically used to block off an entry in escape_00. Create a prop_static and enter the following properties

Property Name Value
World Model models/props_bts/vertical_med_piston_base.mdl
Disable Shadows Yes
Piston

Create a prop_dynamic and enter the following properties

Property Name Value
Parent crusher_blocker_1
World Model models/props_bts/vertical_med_piston_body.mdl
Disable Shadows Yes
Lighting Origin crusher_blocker_lighting_1
Piston Door

Create a 32*32*384 brush with the invisible texture, tie it to a func_door and enter the following properties

Property Name Value
Name crusher_blocker_1
Speed 80
Delay Before Reset -1
Lip 288
Blocking Damage 25
Force Closed Yes
Move Direction 90 0 0

Go to flags and check Passable and Door Silent

My Output Target Entity Target Input Parameter Delay Only Once
Io12.png OnFullyClosed relay_stop_sound_room_1 Trigger <none> 0.00 No
Io11.png OnFullyClosed !self Open <none> 0.50 No
Io12.png OnFullyOpen relay_stop_sound_room_1 Trigger <none> 0.00 No
Io11.png OnFullyOpen !self Open <none> 0.50 No

Do not miss the Delay.

Create a logic_relay entity and enter the following properties

Property Name Value
Name relay_stop_sound_room_1
Start Disabled Yes

Enter this output

My Output Target Entity Target Input Parameter Delay Only Once
Io12.png OnTrigger stop_sound_room_1 Playsound <none> 0.00 No
Completed Piston

Create an ambient_generic and enter the following properties.

Property Name Value
Name stop_sound_room_1
Sound Name Portal.giant_piston
Pitch 200
Start Pitch 200
SourceEntityName crusher_blocker_1

Create an info_target and set its name to crusher_blocker_lighting_1. This is the light source of the piston body model. Place this in a logical spot like near the piston base model.

Implementation

To start the piston, enable the relay_stop_sound_room_1 entity and open crusher_blocker_1. When the player gets considerably far away from the piston, disable the relay_stop_sound_room_1 entity.

Big Pistons

Vertical Pistons

Horizontal Pistons

Fast Piston

Normal Speed Piston

Other Pistons

Mini Pistons

These pistons are only seen in testchmb_a_15 after exiting and falling down the elevator shaft.

Tiny Pistons

These pistons are seen in escape_00 after flinging up high.

See Also