Cinema 4D Tutorial – Springy Motion in Cinema 4D
Someone on FXPHD recently asked me if there was a way to add some springiness to their Cinema 4D animation, you know the kind where an object overshoots it’s keyframed position (or any animated parameter). It can be overused, but if applied with some subtlety, it can offer a wonderful secondary motion which can really enhance your work.
I’ve uploaded a file which demonstrates three ways to achieve this affect, they all have advantages and disadvantages depending on the application.
Firstly I used the Jiggle Deformer. This deformer is so powerful, there are a million things you can do with it. In this most basic of examples, the jiggle deformer simply moves the object vertices as the velocity changes using some internal springs. It works fine on parametric objects, but the real power is unleashed when you use polygon objects. You then have the opportunity to fine tune the jiggliness based on selections and vertex maps. This means you can weight your mesh depending on which part should be jigglier. Imagine a character with a big belly, by weighting the belly considerably higher than the rest of the body you can ensure that the belly will bounce around as your character moves. The jiggle deformer also allows you to include forces and gravity to give your objects cloth or dynamic motion, more on that another day.
Secondly I chose to use a spring constraint. This allows you to connect one object to another by a virtual spring, as you move one or other object the connection stretches until the spring reaches full length and then it will pull the other object towards it, along with some inertial type motion to make it all feel quite natural. Great thing with the spring constraint is that you can add several targets, so your object might be connected to two or three objects, leaving it suspended between them. Another neat trick is to create a chain of spring constraints, so object a to object b, object b to object c, etc. If you do this with some null objects and then connect them with a tracer, you’ve essentially built a dynamics spline. Great if you don’t have the hair module and need a dynamic spline!
Finally I used the MoGraph Delay effector. By building a small Xpresso setup, you can use the Data Node to link the global matrix of the Delay effector to the global matrix of your objects. With a little bit more effort you can link this to any parameter on an object. Simply split the matrix into a vector and then vector to real and you can isolate a single axis and apply the delay to things like Z Movement on an Extrude.
You can download the file here. I hope it’s useful to some of you.