The Weakest Golem by Andres De Mingo
Breaking a Stone Golem using new features in
Pulldownit, You can read the Case Study below how Andres de Mingo broke the animated Golem in dynamics and other technical details about this funny shot.
Modeling the environment
The environment of the scene was modeled in 3d Max using polygonals modifiers and adding roughness to the mountains in ZBrush, for not increasing too much the poly count, I applied the changes as a normal map when coming back to 3D Max.
Shading was applied using the Polypaint tool of ZBrush using several HD pictures of stones as a basis. For the little stones here and there I used a particle system in 3d Max to spread them over the ground and instancing them as geometry. The sky is a simple plane with an animated FFD modifier to get the feeling of clouds are moving on the background.
Modeling the Golem
I started modeling the Golem in Max creating a low poly version of the overall shape. I had to convert this solid shape in another one made of different size stones, my first idea was using shatter it tool for doing it, uniform shatter style of PDI worked well however I wanted the fragments on the hands and feet of the golem to look like fingers and this wasn’t possible using Shatter it, besides I liked the Golem to be hollow inside to enhance the feeling of weakness when it breaks, so I figured out a different way. I took the bigger fragments generated by Shatter it on the surface for only one side of the character, making them thinner and flat, modifying its shape when necessary. That was a patience job but I got a good cover of large flat stones.
Mirroring this side of the character I got the whole model covered by stones nicely, I had just to fix a few stones on the middle for not interpenetrating each other. There were still a few little holes over the surface, to fix it I generated some particles over the holes and instanced them as geometry to cover these little areas.
After unwrapping the model I exported it to Zbrush for adding surface detail and texturing it, I used the great Polypaint tool of Zbrush for texturing it.Once again in Max, I built the rigging to can animate the Golem, I did a simple system of bones with IK Handlers, grouping the stones and linking the groups to the nearest bones.
Breaking the Golem in Dynamics
At this point I had a character made of 400 pieces, rigged and animated and I wanted the arms to break when hitting the rock in the middle. First thing I did was reshattering the pieces on the arms in about 5 shards each one to get more fragments when breaking it. I set the rock as a static convex PDi rigid body, the ground as PDi static mesh and selecting all fragments of the character I created a fracture body for it.
When simulating the scene, computation was very slow, checking the scene I discovered my ground was a high tessellate plane made of about 500000 faces! I applied a multires modifier to it cutting down the faces count to just 5000 while topology was preserved pretty well. After Updating the new ground object in PDi the simulation was much faster, however the arm of the character did strange motions when breaking and the whole character started to collapse too soon.
I decided to set up the simulation again with only the right arm of the golem in dynamics and of course the rock, after some testing I discovered that the problem was the arm motion was too fast for computing dynamics correctly, so I simply rescaled the time for making the animation 10 times slower, and this time it worked perfectly so adding the ground to Pdi and computing again I got the right arm breaking nicely.
I followed the same strategy for breaking the other arm and the chest, that is, I deleted all current Pdi bodies, setting the left arm in dynamics and simulating it along with the rock and the ground, doing in the same way for the chest of the golem after that. To take in account the flying fragments could eventually collide with those already on the ground, I set those fragments as kinematic Pdi bodies aswell.
When all the destruction job was done, I simply rescaled the time again to be 10 times faster for coming back to my original timing. But after doing it some fragments were trembling strangely over the ground so I had to cut off its motion by hand deleting its keys after the frame I wanted them to keep still. Finally I wanted the head of the Golem to bounce and roll towards the camera after breaking, for this I removed the parenting of the head and set it as a pdi body of type capsule, it was easy to make it rolling by assigning it a suited initial velocity.
Conclusions
I know breaking an animated character in dynamics is a difficult task with any tool. Pdi behaved well for shattering and dynamics, Im happy with the final result , however the setup of the scene was plenty of issues, like having to perform the simulation in 3 diferent steps. Pulldownit is an excellent plugin I wish it improves in the future to break animated characters more easily.
Author:
Andres de Mingo