Creating a wake-up bed

From Valve Developer Community
Jump to: navigation, search
Portal Level Creation
Русский

Introduction

Creating a wake-up bed is extremely easy. If you have decompiled the first level and analyzed it, you may have noticed a bunch of extra entities, which over complicate it.

Models

Create two prop_dynamic entities. One should be models\props\bed_body_reference.mdl and the other models\props\bed_cover_reference.mdl. Call the cover bed_cover. Disable shadows on both.

Blackout

Create another prop_dynamic. Call it blackout, with the model models\blackin.mdl. This model will provide the movement for the camera. Place the blackout model as shown. Disable shadows on the model.

Start

Placing the info_player_start

Put a info_player_start, so it shares the exact origin of the blackout model. Their origins are highlighted here. The player should form a right angle with the blackout model's origin. The position of this is very important so the transition is as smooth as possible.

Camera

Place a point_viewcontrol somewhere near the bed. Its position does not matter. Do not rotate the camera, leave it at the default rotation. Call it blackout_cam and set its parent to blackout. Have only these three flags checked: Freeze player, Infinite hold time, and Snap to goal angles.

Other Entities

Add a env_fade, set to fade from. Call it blackout_fade

Add an ambient_generic, call it bed_cover_sound, set its sound origin to bed_cover, and set its sound to Doors.FullClose14.

Logic

Final Setup

Create a logic_auto with the following outputs:

Output named Target entities Via this input Parameter Delay
Io11.png OnMapSpawn blackout_cam SetParentAttachment vehicle_driver_eyes 0.00
Io11.png OnMapSpawn blackout_cam Enable 0.00
Io11.png OnMapSpawn blackout_fade Fade 0.00
Io11.png OnMapSpawn bed_cover SetAnimation opening 5.00
Io11.png OnMapSpawn bed_cover SetDefaultAnimation open 5.00
Io11.png OnMapSpawn bed_cover_sound PlaySound 5.00
Io11.png OnMapSpawn blackout SetAnimation exit1 5.00

Set these for the blackout model:

Output named Target entities Via this input Parameter Delay
Io11.png OnAnimationDone bed_cover SetAnimation closing 0.00
Io11.png OnAnimationDone bed_cover_sound PlaySound 0.00
Io11.png OnAnimationDone blackout_cam Disable 0.00
Io11.png OnAnimationDone bed_cover SetDefaultAnimation idle 0.00

Conclusion

This has the exact same function as the bed in the first chamber. It uses 1 sound entity (as the open and close sound are the exact same). It does not involve a teleporter, as it serves no logical purpose.

See also

External links

  • Example map Example map using this tutorial. VMF included.