L4D Level Design/Finale Events Part 3
- Getting Started
- Your First L4D Level
- Ladders
- Visibility
- Nav Meshes
- Checkpoints
- Checkpoint Rooms
- Outdoor Levels
- Level Organization
- Level Standards
- Clip Brushes
- Elevators
- Panic Events
- Breakable Walls
- Finale Events Part 1
- Finale Events Part 2
- Finale Events Part 3
- Additional Finale Components
- Nav Flow
- Advanced Nav Editing
- Versus Maps
[edit] Creating an Outro
The Outro is when the survivors escape the finale. Typically, the camera switches from 1st person to somewhere to watch the vehicle move out of the area.
Let's start by placing the camera.
Go to the Entity Creation Tool and select "point_viewcontrol_multiplayer" from the Objects list.
Position the camera so that it's where you want to show the escape from.
Open up its properties.
Change the Name to "train_camera".
You can also change the Field of view field. The Field of view will be tighter with a smaller number and wider with a larger number.
Change the Seconds to reach FOV target to 0. This is the time it takes to transition from the normal FOV (which is 90) to the new one.
Go back to the Entity Creation Tool and select "env_fade" from the Objects list.
Open up its properties.
Change the Name to "fade_outro_1".
Change the Duration (seconds) to "0.2".
This is the time it will take the screen to fade.
Change the Hold Fade (seconds) to "0.3".
This is the time it keeps the fade.
Place a second env_fade (or you can duplicate fade_outro_1) and open its properties.
Change the Name to "fade_outro_2".
Change the Duration to "0.2"
Switch to the Flags tab.
Check the Fade From box.
This will fade the screen back the game from black.
Go back to the fade_outro_1 env_fade and switch to the Outputs tab.
Add an output with the following:
- My output named "OnBeginFade"
- Targets entities named "fade_outro_2"
- Via this input "Fade"
- After a delay in seconds of "0.30"
This will start to fade the scene back from black 0.3 seconds after fade_outro_1 starts to fade. These 2 env_fades just fade to black and fade back very quickly.
Go back to the train_continue_relay. Open it and switch to the Outputs tab.
Add an output with the following:
- My output named "OnTrigger"
- Targets entities named "train_camera"
- Via this input "Enable"
- After a delay in seconds of "0.30"
This will change the players' views to the train_camera view.
Add another output with the following:
- My output named "OnTrigger"
- Targets entities named "fade_outro_1"
- Via this input "Fade"
This will start the env_fade to black just before the outro camera starts so that the switch won't be jarring.
Now, we need to add a fade to black when the train is leaving.
Place another env_fade (or duplicate fade_outro_1) and open up its properties.
Change the Name to "fade_outro_3".
Change the Duration (seconds) to "0.3"
Switch to the Flags tab.
Check the Stay Out box.
This means that it will stay black once it fades to it.
Once the screen fades, it kind of ruins the effect to still see instructor messages. Let's place an info_game_event_proxy to disable the instructor messages.
Go to the Entity Creation Tool and select "info_game_event_proxy" from the Objects list.
Place it in the Camera viewport and open up its properties.
Change the Name to "gameinstructor_disable".
Change the Name of the event to generate to "gameinstructor_nodraw".
This is a string that's already set to not draw any instructor messages.
There's also an entity we can place called "env_outtro_stats" to display the end credits where the stats are shown for the campaign.
Go to the Entity Creation Tool and select "env_outtro_stats" from the Objects list.
Place it in the Camera viewport and open up its properties.
Change the Name to "outro".
Go back to the train_end_relay and open its properties.
Switch to the Outputs tab.
Add the following outputs:
- My output named "OnTrigger"
- Targets entities named "gameinstructor_disable"
- Via this input "GenerateGameEvent"
- My output named "OnTrigger"
- Targets entities named "fade_outro_3"
- Via this input "Fade"
- After a delay in seconds of "5"
- My output named "OnTrigger"
- Targets entities named "outro"
- Via this input "RollStatsCrawl"
- After a delay in seconds of "10"
Click on Apply and close the properties window.
Save and compile to test your outro.