Complimentary Victory Lift

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

This tutorial will show how to create the complimentary victory lift seen in the Portal test chambers. The lift usually starts in its raised position, and lowers when a certain object is activated, such as an energy pellet catcher or a switch. The lift then raises when the player steps on it.

Construction

Step 1

The lift brush

Create a 16w*16l*128h brush textured with tools/toolsinvisible. Tie this brush to a func_door entity and make sure all of its flags are unchecked. Next, set the following keyvalues on it:

Property Name Value
Name lift
Speed 20
Start Sound apc_engine_start
Stop Sound apc_engine_stop
Delay Before Reset -1
Move Direction 90 0 0

Step 2

The brush_lift brush

Create a 24w*24l*136h 12-sided cylinder and position it so it's in the same place as the lift brush. Tie it to a func_brush and set its Name to brush_lift and its Parent to lift.

Finally, texture the sides of the cylinder with metal/metal_lift001.

Step 3

The model_lift_platform entity
Positioning of the model_lift_platform entity

Create a prop_dynamic entity and set its Name to model_lift_platform, its Parent to lift and its World Model to models/props/lift_platform.mdl. Position it on top of the brush_lift brush so its origin is 2 units below the top of the brush.

Step 4

The glass brush
Positioning of the glass brush

Create a 120w*120l*1h brush. Texture the top and bottom sides of the brush with glass/glasswindow_frosted_003, and texture all of the sides with [[Tool textures#nodraw|tools/toolsnodraw. Position the brush so its in the middle of the model_lift_platform entity, with its bottom side being 6 units above the origin of model_lift_platform.

Playerclip brush
Positioning of the playerclip brush

Next, create a 128w*128l*4h brush textured with tools/toolsplayerclip. Position it so it surrounds the <code>model_lift_platform entity with its bottom side being 4 units above the origin of model_lift_platform.

Now, select both the glass brush and the playerclip brush and tie them to a single func_brush entity. Set its Name to lift_brush_2 and set its Parent to lift.

Step 5

Trigger brush
Positioning of the trigger brush

Create a 112w*128l*92h brush textured with [[Tool textures#trigger|tools/toolstrigger. Tie it to a trigger_multiple entity and set its Name to lift_up_trigger, its Parent to lift and Start Disabled to Yes. Next, add the following outputs to it:

  My Output > Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger lift Close   0.00 No
Io11.png OnEndTouch lift Open   0.00 No

The victory lift is now completed and ready to be implemente in a map.

Implementation

Victory lift in-game

Step 1

Place the lift where it should be in the map. The top of the lift_brush_2 playerclip brush should be 2 units below the floor level of the upper floor. If the lift needs to travel more than 128 units, stretch the brush_lift and lift brushes down to the lower floor level. The length of the lift brush determines how far the victory lift travels.

Step 2

Add an output to the entity that will activate the lift that sends the Open input to lift and the Enable input to lift_up_trigger.

See Also