A deep dive into Unreal Engine 5's Chaos Destruction system

The goal of this project was to expand my knowledge and experience with unreal engine 5.


Unreal Engine is very unique. No other engines I have tried are quite like it. I has a lot of very powerful tools that come pre-packaged with it, the one that interested me most; the chaos destruction system.

During my time of experimentation I was working on a project that involved the use of grenades and explosives. I had always loved explosions and nothing is more satisfying than seeing a cool explosion with environment destruction. However there was limited information on how to go about creating what I envisioned, but this is fairly common for Unreal Engine and should not discourage you.

Unreal Engine's Chaos Destruction system tutorial

A demonstartion of a projectile impact causing an box to fracture and break

Source: Epic Games

While there were extensive guides on how to make projectiles themselves cause breakage, there was far less on creating a radial impulse that an explosion would have. So I had to do some experimenting. But I won't bore you with the details, instead this was my first (working!) attempt:

A grenade exploding a pallete of bricks and a mysterious figure

Slowed for effect

The use cases of this are pretty extensive given you have the computational budget, as they can add a ton to explosions and also make it look so much cooler.

A grenade exploding beside a wall and fracturing it into pieces that are sent flying

Not bad... Not bad

Creation

This is how I created my actor, and the components I attached.

Component list for BP_ChaosExplosionField showing a FieldSystem with RadialVector, CullingField, and RadialFalloff.

This is the setup I chose for making my blueprint actor

Here is the blueprint graph which I will explain:

Blueprint graph in Unreal Engine showing a chaos explosion field setup with sections for constructor, debug, begin play, and falloff creation. Includes nodes for setting field properties, debug visualization, and applying radial forces.

This is the setup for the eventgraph of the blueprint

Firstly we need to create a transient field, and create it using a "set radial falloff" node, which I am using the grenade's explosion radius and magnitude to pass into the ChaosExplosionField object. This initial node handles the breaking force that's being applied. An important note here is this has nothing to to do with impulse, only causes an object to be able to break.

The second transient field we add is what adds linear velocity scaled by the distance to the center of the explosion, however it's crucial to note that if you do not use a culling field it will have infinite radius.

Re-usability

Firstly to make our ChaosField have an effect on something we need to define how it fractures.

A pointer to the selection menu in unreal engine

Once you selected the actor you want to fracture change to the fracture mode

Next step is to create a fracture asset:

The new button on a generate tab of the fracture panel

Once fracture mode is enabled a new side panel will show up with the new button.

You should see a pop-up, we can just leave all this default.

Unreal engine pop up

The pop-up in question:

Next we can go apply a type of fracture, for this I chose uniform.

Menu with pointer to the Uniform fracture button

You can find this under the fracture sub-category.

And we have our final result!

A Cargo container that has been fractured uniformly

All those lines you see are the subdivisons of each piece it will break into.

Lastly we can uncheck "Show Bone Colors" and then go ahead and blow up our new fractured object.

A cargo container being shattered by an explosion

Kaboom

Design & code by Cole Dorman