Car Explosions
Introduction
This tutorial will explain how to create an explosion effect for an automobile. You will require basic knowledge of the Valve Hammer Editor. This tutorial is not hard to follow and is an extended function of trigger_push.
The Car
To start, create a prop_physics_override with the following settings.
- Name: Car1
- World Model: (In the prop_vehicles folder, choose a car with a physic model.)
- MinDamageToHurt: 90 (explained later)
Once the vehicle is created, it must be placed above the ground level.
In order to add more realism and interactivity, a fuel tank should be placed close to the car that will explode if shot.
Create a brush on the car wherever the fuel tank may be located, choose a good texture for a fuel tank and make the fuel tank a func_breakable.
- Name: FuelTankCar1
- Parent: Car1
- MaterialType: Metal
For design purposes, the fuel tank may be a cylinder or another similar shape.
The Effects
Create five env_explosion entities and place them at five points around the vehicle, like on a die, i.e. the sides, front, back, and bottom.
- Name: ExplosionCar1
- Parent: Car1
- Magnitude: 100
Then create an env_physexplosion entity at the center of the vehicle.
- Name: PhysExplosionCar1
- Parent: Car1
- Magnitude: 500
Create an env_smokestack entity and place it where the smoke will be emitted.
- Name: SmokeCar1
- Parent: Car1
- Color: You may choose any color you wish.
The Thrust
Though there are several explosion entities in place surrounding the car, it is still not enough to lift the car due to its weight.
Create a brush at the center of the vehicle and make it large enough to encompass the top side while starting from the bottom. Apply the trigger texture and TieToEntity trigger_push. The car will fly as high as the trigger is configured.
- Name: PushCar1
- Parent: Car1
- PushDirection: Up
- StartDisabled: Yes
- Speed of push: 1500
- Flags: OnlyOnce, Physics objects, Physics debris, Pushables
The Outputs
At this point, the explosion effect will not work. The outputs of the car entity must now be configured in order for this to happen.
First, go in the car's properties.
MinDamageToHurt allows entities to ignore all damage less than a specified amount and 90 is best for explosions like grenades and rockets.
The outputs of the car entity should be as followed:
The car will now ignore damage less than 90 and therefore, when a damage amount above 90 is applied to the car, the explosions ignite, the smoke starts, the fuel tank is destroyed, and the trigger_push entity loses its parents. If it is still parented to car1, the entity would pursue the car up in an infinite cycle.
To destroy the Fuel Tank, the outputs of the car can be reused with OnHealthChanged changed to OnBreak to destroy it, like so:
The car outputs are not disabled by the fuel tank explosion such that the explosions would inflict damage to the car and cause a second explosion for added effect.
The map can now be compiled and tested.
Other Suggestions
Spinning Car/ Car flips in air
If you place a brush textured with the tools/toolsinvisible texture, and place it closely above your car(as close as you can get while not touching, keep in mind the car will ricochet off of this), when the car 'explodes' and is thrusted upwards, it will collide with the brush and spin off of it. Note: The brush should not cover the entire vehicle, it should only cover a small portion. If you cover too much, the car will not be able to get off of the ground.
Fallout-esque explosion
One may also trigger smoke before the explosion, giving all explosions and pushes a delay (say, 2-3 seconds), and afterwards spawning more smoke and fire.
It is suggested that all of the previous is tested before you drop the final version into your mod (if this is your first time).