In this tutorial I will show you how to make a wake up sequence that allows realistic "getting up" movement from multiple positions through the use of a prop_dynamic.
- Entity List
Please note: I have not yet fully explored the potential of this method so it may contain a few bugs. I am working on fixes. One such bug is a slight jump from where the sequence finishes to the player's camera. Any suggested fixes would be appreciated. Leave them in the comments.
1. Entity List
This is for a wake-up from sitting on the floor. Other animations can be used but may require movement of the "Info_player_start"
- Place your "Info_player_start" where you wish the player to wake up from. Leave this default.
- Create a "Prop_dynamic" named Wakeup_prop and select an appropriate human model. I have used "Barney.mdl" as he is fairly high poly, and this is good as the player sees his arms very close up. You however may choose to download a Gordon Freeman model, as this makes the arms consistent with the HL2 view models.
- Place the "Prop_dynamic" so that it is in the same place as the "Player_info_start". Also set the flag "Start with collisions disabled".
- Place the "Point_Viewcontrol" near the player. This does not need to be aligned. Name it Wakeup_Cam and set its parent to "Wakeup_prop". Set the "Freeze player" "Infinite hold time" "Snap to goal angles" and "Make player non-solid" flags to true.
- Create a "Env_fade" and name it Wakeup_fade Set the "Fade From" flag to true. The fade duration and colour can be changed to create the desired effect. I have gone for white and 2 seconds fade time.
- Create your "Logic_auto" and set the following outputs:
Compile your map and run!
It's best if you don't give the player the suit or any weapons to start, as this causes a pretty jarring transition from the wake-up to the real game, unless you know enough to apply an overlay to the view, but I haven't tested that yet
Sorry if this tutorial is a bit basic, but I haven't finished playing around with the set-up yet, and I've never done one before.