top of page
Search

Destructible Objects

  • jamesghholt
  • Apr 26, 2022
  • 2 min read

Updated: May 18, 2022

Usually handled in external 3D packages, the most known being Houdini. However, I used Unreal Engines included plugin. Providing additional control within engine. Unfortunately, Unreal lacks control over "how" the mesh is destroyed- in comparison to external 3D packages.



Unreal calculates how a mesh is destroyed through the application of Voronoi noise, this noise is essentially random points scattered within 2D or 3D space, then a pattern is generated based on the points proximity to one another. Forming the chunks of the mesh.

Using these random points we can create random destruction within our mesh. Controlling the mesh stems from the number of cells and the random seed of the Voronoi noise. Unfortunately, this is the limit of control you have, within Unreal alone. Because of this, if your mesh doesn't shatter like ceramic or glass, this method will produce unlikely results.


Fortunately, using software such as Blender you can specify these chunks manually, and import them into Unreal, for more complex destruction.


Houdini takes the best of both worlds; through this software you can manually fracture the mesh and simulate its destruction, behaving as a skeletal mesh within engine. Therefore, removing the needed physic simulation within Unreal, but removing the randomness and varied interaction with said mesh. Perfect for cutscenes and pre-determined fractures. Heavily used in simulated destructive VFX.

For example a barrel wouldn't shatter like a pot, it would seperate into it's various planks and the metal rings would retain their shape. To do this, the model would have to be created with destruction in mind. These seperate pieces are exported as individual pieces and inherited under the full static mesh of the asset, the collisions and forces can be manually specified also. Alternatively, this can be managed underneath Unreals destructible mesh plugin. Doing so, will make it harder to create custom effects in response to destruction.



Unreal supplies the user with quick and easy sliders to manipulate the features of the destructible mesh, greatly assissting in the setup of such process. Such as the damage required to destroy the mesh, if this damage accumulates, the damage of impact and the lifetime of the produced debris. The primary issue I ran into, using this plugin, was the lack of interaction between the characters projectile.



To overcome this; this small bit of code was implemented. It simply multiplies the velocity of the ball, when it hits against the destructible mesh, agaist the destructible mesh itself. Therefore making it react accordingly to the balls impact.



This task wasn't too challenging as Unreal greatly assists in setting the foundations for accomplishing such effect. However, refining said destructible objects, fine tuning their interactions was rather "fiddly". I still think more could of been achieved with destructible assets, and they could of been implemented more heavily-- unfortunately, there was no need for this.


The final effect adds a layer of interactivity to the environment, which was previously missing. As the environment can feel rather static- especially in comparison to the fast paced, dynamic game being played between the players. This effect is suitably aimed towards a younger age. But, who doesn't like breaking pots!

References


 
 
 

Comments


©2022 by James Holt. Proudly created with Wix.com

bottom of page