About me
ZV Dynamics 2.0
What's ZV Dynamics?

ZV Dynamics is a little useful script for making cool dynamic effects!
It adds a nice inertial behavior to transform nodes. Watch the video to see how it works!

You can download the script from CreativeCrash.com.

License: Freeware

Dynamics tab

How to use ZV Dynamics
ZV Dynamics is really easy to use:
  1. Select an object (you can select meshes, surfaces, clusters, cameras, curves... whatever has a transform node on it).

  2. Choose your "Method".

  3. Click on "Make objects dynamic".
That's it! You can just leave the parameters as they are... You can play with them later to set the behavior the way you like.

OK but... which "Method" should I choose?
Basically you get the same dynamic effect either you choose "Particle", "nParticle" or "Runge-Kutta".
So... should I throw the dice? Well... not necessarily.
The decision is mainly a matter of compatibility and trade-offs. Keep the following in mind:
  • "Particle" and "nParticle" are exactly the same thing except that "nParticle" is the new cool particle system introduced in Maya 2009.
    So if you want to open the file in a previous version of Maya... it won't work at all!
    On the other hand, a file that uses "Particle" method will run perfectly on previous versions of Maya too.

  • Both "Particle" and "nParticle" methods use a particle and an expression to do the trick. So... if you don't like expressions or particles don't use these methods!

  • "Runge-Kutta" is a plugin I introduced in the 2.0 version of ZVD. It calculates all the dynamic stuff in one (cool =D) node. No particles, no expressions are used here, just simple node connections! The result is a cleaner file.

  • "Runge-Kutta" node doesn't support fields. So if for instance you want to add a gravity field... then it's better you choose a particle method.

  • All the 3 methods support baking. So, once your animation is completed and you are ready to render, you can convert the dynamics into keyframes.
My suggestion: unless you need to add some field, you may choose "Runge-Kutta" method.

Transfer Shapes
Turn on this option if you want to enhance your character rig adding a dynamic effect to one or more translational controls (i.e. IK controls).
Check the carrot rig in the presentation video.

Once you make your object dynamic
You have basically a couple of new objects:
  • "yourobject_DYN" in which "yourobject" is parented.
  • "yourobject_INIT" (hidden).

"yourobject_DYN" is the one you should animate and put the keys on. If you click play or do an interactive playback, you can see that "yourobject" will follow "yourobject_DYN" with some inertia.

The INIT object
In the case you selected one of the particle methods, "yourobject_INIT" will be the particle object. This is where you should attach the fields to (if any).
In the case you choose "Runge-Kutta" method, you will not be able to apply any field to it.

In any case it's important for you to understand where in the hierarchy you should place this object.
Basically the position of "yourobject_INIT" in the hierarchy determines the dynamics space.

Let's suppose you applied ZVD to the IK control of your character's hand. Suppose also that this control is parented under the pelvis and the pelvis under the character's main control.
Now, if you move the hand or any of its parents you will get the inertial behavior as expected. Good.
But what if you don't want to have the dynamic effect when moving the main control?
The only thing you need is to parent "yourobject_INIT" to the main control. Now if you move the hand or the pelvis you'll have your dynamics, but if you move the main control you won't see any effect.

"yourobject_DYN" attributes

"Particle" method

"Runge-Kutta" method
"Particle" method:
  • Dynamics Blend [0, 1]: turn on/off dynamics.

  • Weight [0, 1]: attraction strength, 0 = not moving, 1 = locked to the target.

  • Conserve [0, 1]: 0 = not springy, 1 = very springy.

"Runge-Kutta" method:
  • Iterations [1, 5]: accuracy value, set it greater than 1 if your animation is fast.

  • Dynamics Blend [0, 1]: turn on/off dynamics.

  • Stiffness [0, +inf]: attraction strength, 0 = not moving.

  • Damping Ratio [0, 1]: 0 = perpetual motion, 1 = not springy.

"yourobject" attributes

"Particle" method

"Runge-Kutta" method
ZVD adds a new vector attribute to "yourobject". This is just for your personal use. It displays the velocity vector values of "yourobject" in "yourobject_INIT"'s space.
In the case you left "yourobject_INIT" unparented or if it's parented to something that is not moving. This velocity vector is the world space velocity vector.

Baking tab

Whenever you need to get rid of ZV Dynamics nodes and convert the dynamics into animation keys, just select the object you applied ZVD to and click "Bake".