UED2 Main

UED2 Tutorial - Destroyable walls/windows

Destroyable walls is in reality not destroyable at all.
What you do is that you trigger a specific actor, ExplodingWall,
which erupt in bits and pieces of glass/wood or walls.

What you actually do when you create most exploding windows and walls
is that you use a mover that is triggered by damage and then
move the mover out of sight of the player.
The mover then trigger the "ExplodingWall" actor.

This is some of the properties you can adjust:

Property Specific
+Effects
bOnlytriggerable If the actor is to be triggered by other trigger or by damage.


+ExplodingWall
BreakingSound The sound effect to be played when triggered.
bTranslucentGlass If glass pieces should be transparent.
bUnlitGlass Glass pieces affected by light.
ExplDimension Explosion area.
ExplosionSize Explosion area.
GlassParticleSize Size of the pieces.
GlassTexture Texture used on glass pieces.
Health Do not seem to be used, expl wall need to be triggered.
NumGlassChunks Amount of glass pieces to be created.
NumWallChunks Amount of wall pieces to be created.
NumWoodChunks Amount of wood pieces to be created.
WallParticleSize Size of the pieces.
WallTexture Texture used on wall pieces.
WoodParticleSize Size of the pieces.
WoodTexture Texture used on wood pieces.



Collision:
The "ExplodingWall" and "BreakingGlass" actor will block
bullets.
Make sure it do not block weapon fire by setting "+Collision",
"bCollideActor" and "bProjTarget" false.

Creating breakable windows/walls:
First create two rooms 256x256x256 with a 16 unit wide gap.
Then create a small brush 128x128x16 and subtract it between
the two rooms creating a small opening.

Texture and light it as you wish.

Screenshot

Now we will start to create the mover.
Create a sheet sized 128x128 and AX_Xaxis.

Place this sheet in the middle of one of the rooms, in mid air.
Select any glass texture you want (some good ones in GenIn.utx),
and press "Add special brush". Select Regular Brush, check for
Transparent and press Ok.

Create another idetical brush 16 units apart from the first one.

Now create a brush 127x127x15 and place it exactly in between
both window sheets.
Press "Add special brush", select invisible collision hull and
then Ok.

You should now have a "chunk" of window in mid air.
Screenshot

Now create a brush 200x200x32 and make it surround both sheets and the
collision hull.
Press the "Intersect" button and you should have a nice brush.

Move this brush in the opening of the two rooms and add it as a mover.

When done delete the three objects we created in the middle of the room.
Screenshot

Now select the keyframe 1 for the mover and move it outside of the level where
no-one will be able to see it. Select keyframe 0 again and it will be back
inside the opening.

Now open the properties window for the mover and expand "Object".
For "InitalState" you select "TriggerControl".
Then expand "Mover".
For "MoveTime" you set 0, "bTriggerOnceOnly" and "bDamageTrigger" to True
and "DamageThreshold" to 10.

This mover will now only be triggered if an amount of damage is inflicted equal
or greater than 10.

But no shards will come from this.

Expand "Events" and type "broken" for "Event".

Now open the actor browser, expand "Effects" and "Exploding wall".
Select "Breaking glass" and add it in the middle of the opening/mover.
(If you wanted to create breakable walls you select "Exploding wall" instead).
Screenshot

Open the properties for the "Breakable glass" actor and expand "Events".
For the "Tag" you type "broken".
This connects the actor with the mover.

Expand "Effects" and select True for "bOnlyTriggerable".
Expand "ExplodingWall", select True for "bTranslucentGlass" and
"bUnlitGlass".
Also add the texture you used for the sheets to the property "GlassTexture".

You also need to check all options under "Collision" false or the "Breaking glass"
actor itself will stop bullets, which we do not want.

Now it should be complete.

If you want to try it, add a player start and rebuild.

What we have done is simply a mover that will be triggered when we inflict
10 or more damage to it.
The mover will then trigger the "broken" event when it has completed its
move cycle, which take zero seconds.

In the end the "Breakable glass" actor will create and spread lots of glass
looking effects around, giving the player a firm illusion of destroying a window.

Destroyable mechanics:
To create mechanics that break is more or less pretty much the same thing.
If you take a look at AS-Frigate you will see that the pressure pump only
change appearance and smoke suddenly show when it is destroyed.

This is how it is done...
Screenshot

(I have moved the mover a few steps to the right. It should be in the middle of
the 'pump').

The players only see one side of the mover which show an intact machine.
When they shoot at the pump the 'fortstandard' will be 'destroyed' and trigger
an event.
This event triggers the mover which only flips side in zero seconds.
The other side of the mover has a texture of a broken machine giving players
the illusion of destroying the pump.

What about the smoke and the sound?

You will also see in this picture a horse/griffin head infront of the pump.
This is a 'SmokeHose' and has a 'SmokeHoseDest' close to the roof of that room.
The SmokeHose is 'InitiallyActive' false and is activated when triggered.

In the left corner you can see a "SpecialEvent" (triggerclass) which is triggered
at the same time as the rest and it contain one ambient sound;
'AmbModern.Looping.steam3'.

Smokehose properties:
Property Specific
+Smokehose
Basepuffsize Size of each 'cloud'.
bInitiallyActive If the smoke hose should be active from start or when triggered.
SizeVariance Variance in size of each 'cloud'.
SmokeAccel[] Increased speed in specific direction.
SmokeDelay Time between each 'cloud'.
SmokeDelayVariance Variance in time between each 'cloud'.
SmokeSpeed Base speed of each 'cloud'.
SpeedVariance Variance in speed of each 'cloud'.
TotalNumPuffs Total amount of 'clouds' before smokehose stops.

Explosions:
If you want to create explosions you need to use 'ExplosionChain' actors.
As with 'ExplodingWalls' you need to have 'bOnlyTriggerable' true or false.

Here is the properties you can adjust:
Property Specific
+ExplosionChain
Damage Amount of damage inflicted upon players.
DelayTime Delay after triggerd and the actual explosion.
MomentumTransfer Power from the blast.
Size Size of the explosion.