For the past few days I have been working on the destruction part of this project. I started with some test in Unreal engine’s Chaos system:

The chaos system is pretty easy to use and setup, however the fracturing in Unreal Engine is somewhat limited. So i decided to do the fracturing in Houdini so i have better control over how the wall gets fractured and how the wall fragments get clustered. Then when the wall has been fractured in Houdini i will bring it back in the chaos system to keep everything real-time instead of baking and exporting an animation from Houdini.
I started with making the wall in Houdini as well so i can make a HDA that will generate a fractured wall directly in Unreal Engine. The wall generator is fairly simple but if anyone is interested in the Houdini files I can share them.

Next up is fracturing the wall and setting up geometry collections for Unreal Engine. The wall consists of two layers the bricks and the backing wall. I wanted to fracture these separately so the bricks would stay mostly intact and the backing wall would break and fracture. So I fractured the backing wall using the voronoi fracture node in Houdini. This node also creates an attribute for the different fractured pieces which is necessary if we want to use this in the chaos system later. however the bricks don’t have this attribute becuase the fracture only affects the backing wall. but the bricks still need to be affected by chaos. So I had to manually set this attribute to the bricks as well
Now that the wall is fractured and the pieces have been assigned to a attribute we can start preparing them so unreal engine can read them. For a more detailed documentation you can read this Houdini doc: Geometry Collections (Chaos)
But to summarize we need to set a few attributes that unreal can understand. First we need to assign every single piece that has to be affected by chaos physics to the unreal_gc_piece attribute.
This way unreal engine can see the different pieces instead of the wall being one singular piece.
we can also setup clusters, this will group certain pieces together which will try to stay together longer during fracturing. we can do that using the unreal_gc_cluster attribute.
And finally we have to set some more attributes so unreal engine can see how the different pieces will behave inside the engine. These are mostly physics related:
Now we have everything we need to pack the HDA for use in Unreal engine. The HDA will now generate a wall, fracture it and automatically setup the chaos system.

And besides that chaos is completely procedural and real-time it has another benefit. We can use chaos data inside Niagara to spawn particles. The data chaos data I will be using is: Breaking and trailing. Breaking data spawns particles when a break occurs in the chaos system while trailing continuously spawns particles on moving chaos pieces. For a quick visualization the red particles are breaking data and the green particles are trailing data:

The final result for now:


Now that all the technical stuff is in place i will be focusing on polishing the visuals like textures and improving the VFX.
If you have any questions, feedback or if there are any files you want me to share please let me know!