ZV DYNAMICS 2.0

What is 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!

License: Freeware

Help

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?

Essentially you get the same dynamic effect whether you choose “Particle”, “nParticle” or “Runge-Kutta”. So… should you roll 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 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 made it dynamic...

Now you have a couple of new objects:

  • “yourobject_DYN” in which “yourobject” is parented.
  • “yourobject_INIT”

“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”.