How to: Exploding zombies and flame throwers!
Graham Collier and Adrian Vickers give us a little rundown of what went into making the Zombie Army 4 trailer including the use of Houdini’s Finite Element Methods.
Graham Collier: My favourite part of the day: exploding zombies in Houdini 😀
On previous trailers I used Houdini’s Finite Element Methods (FEM) to fracture and create soft body simulations of exploding chunks of flesh.
This time I wanted to test the new Vellum tools in Houdini 17.5 especially the Vellum Tetrahedral Fiber Constraints. After a few tests I found that I could get similar results as FEM but with much faster simulation times. This was really useful as we had multiple zombie meshes to simulate and we needed to create fast iterations.
To control the fracturing of the Vellum soft bodies I had to set up groups containing areas of impact and impact velocities. I used these groups to add Pin to Target constraints to constrain the mesh to the incoming animation. Within the DOP simulation I then used Vellum Constraint Properties to remove the Pin constraints on the impact frames. I also used Geometry Wrangle nodes to adjust Break Thresholds and add in the Custom Velocities. This enabled me to direct several impacts on the zombies and gave me enough control with the fracturing. The simulation was very fast which enabled me to create several iterations before I was happy with the result.
Previously I used Houdini POP networks for blood simulations, but this time we wanted to go further with Fluid Implicit Particles(FLIP). These fluid simulations were emitted from the internal fractured surfaces. I used a Sign Distance Field (SDF) with a small offset to check if the internal surface was enclosed or open. If open I then scattered points onto the surface and set velocities based on the Normal’s and movement. This data was then used as a FLIP source. The fluid simulation itself made use of Viscosity, Collision Velocity Blending and Surface Tension which all really helped control the flow of the blood.
Finally these simulations were all exported as Alembic caches and rendered in 3DS-Max with VRay.
Houdini users can download this cut down Vellum setup showing a single impact simulation using Tetrahedral Fiber Constraints.
Adrian Vickers: First I exported the character using alembic from 3ds Max, also exporting the camera and any collision geometry I might need.
To start I created a point at the end of the flamethrower nozzle with a normal vector in the direction of spray and also an up vector, this enabled me to copy a remeshed polygon circle, with a rest attribute, onto this point. Custom velocity and density attributes were then created with various controls, enabling me to adjust spread, inner and outer flow, randomized scale and overall strength, plus move the emitter geometry further in or out from the nozzle.
This went into a fairly straight forward popnet, using gravity, collision geometry and various pop forces, scaling the turbulent forces by the points age. These pop points were then seperated into 2 streams in sops, flamethrower spray and collided points. I was then able to create fuel, temperature, velocity and pscale attributes based on there normalized age, giving me more control of each effect. These points then got fed directly into a dopnet for the fire and smoke sim.
The pyro sim then used various gas micro solvers to shape the flamethrower effect, several gas particle to field, gas disturbance based on velocity, gas shred and gas vortex confinement among them.
This was then exported from Houdini as vdb’s and rendered in 3ds Max with Vray using a volume grid, but my initial tests were rendered in Mantra.