there is no need to create a vdb, but it works yes
Super taf! ;)
Ted Bundy's car? :D
Dries Deryckere talked about the solution, which helped him to create amazing procedurally destructible car system. It’s hard to imagine what students’ can do with modern technology these days. Dries Deryckere most recently published an amazing project (which you can actually get for free or for a couple of bucks at Gumroad), which features a fully procedurally destructible car. It’s all achieved through an intricate setup of blueprints. We’ve talked with Dries about this system and he shared how he managed to create it and what problems he had along the way.
My name is Dries Deryckere and I’m a student at Digital Art and Entertainment (DAE). DAE is a course provided by the Howest College in Kortijk, Belgium. I’m currently doing an internship in Valencia. I’ve freelanced a bit left and right, including for beffio.com. I’ve never worked on a big title or project, as I’m still a student and I’m still finding my way in the industry.
Building Procedurally Destructible Car
The project itself is actually my graduation work for DAE. I researched different ways on how to do procedural deformation and finally settled with a system I put in place myself. The system works as following:
UE4 has a skeletal mesh system which allows the user to import rigged objects using fbx files. These objects can be given physics and can be simulated like a ragdoll. What I’ve done is I’ve taken a skeletal mesh and I’ve given it very high damping. This renders the rigged object inanimate, except when another physics object collides with it with a certain speed and mass (and thus force).
Problem is that the skinned object does not fall to the ground and has no other physics than the deformation. So I looked for a way to make it simulate in a local space. I achieved this by taking the same mesh, unskinned, and setting it as a simple static mesh. I give this static mesh physics like a normal static mesh, so it falls to the ground and behaves like you would just set “simulate physics” to true.
And then, using blueprints I teleport the skeletal mesh construct to the simulated static mesh. And then I only render the skeletal mesh. Both the the skeletal and the static mesh have collision boxes for the other physicsobjects that collide with the deformable plate, but collision is disabled between the static mesh and the skeletalmesh.
So to make a long story short: Skeletalmesh with high damping -> teleport to -> simulated staticmesh.
All the elements of the car (including the parts that hinge and can deform) are held in place with physics constraints.
Current problems with the project:
- Cars can’t collide with each other (fixable but will take some work).
- Deformation is a bit unpredictable and objects need to be heavy to have real impact. (fixeable but would require to change all the paramaters)
- Some missing elements on the car.
- Very performance heavy with 6+ cars on scene.
- Not user friendly and creating a different car would require making the system again from scratch, because everything depends on the mesh. There is no way to create a “generate” button.
- All elements in this project are textured using substance painter. The wrinkle effect in the normals is done with a dynamic material that blends in a normal when a hit is registered.
- Each bendable material is unwrapped in a way that the main wrinkle texture used for all materials makes sense.Same for the paint that gets destroyed.
- Dynamic materials are not really hard to pull of in UE4. Some quick reading in the UE4 documentation tells everything.
Be sure to download the project and try it out on your own. It’s a great way to learn how to do some more incredible stuff in UE4. Be careful though, the download is almost 1 gigabyte.