# Inertia bounce in Maya

#1

I’ve been using an expression in after effects that calculates inertia based on 2 keyframes on a given property. You can find the expression here under inertial bounce:

I’m not too keen on scripting in Maya, so I was wondering if it’s possible to convert this expression to something Maya can use. Here’s the expression if the link isn’t working:
// Inertial Bounce (moves settle into place after bouncing around a little)
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time){
n–;
}
}
if (n == 0){
t = 0;
}else{
t = time - key(n).time;
}

if (n > 0){
v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
amp = .05;
freq = 4.0;
decay = 2.0;
value + vampMath.sin(freqt2Math.PI)/Math.exp(decayt);
}else{
value;
}

Thank you!

#2

#3

Not quite what i’m looking for. This expression would take 2 keyframes and calculate inertia, then automatically create a sort of decaying sine wave until it settles into the value of the last keyframe. For example, if i added it to 2 rotation keyframes, it would overshoot the last value of the keyframe, then bounce back to a little before the value of the last keyframe, the bounce forward again etc. until it finally settles into place. It could be applied to any keyframe w/ numerical value including scale, position, rotation, even bend handle values, etc…

#4

There’s an usefull free set of tools called red9 for animation purposes, it has a key randomizer feature, well take a look and decide by yourself

http://red9-consultancy.blogspot.com/2013/06/new-interactive-curve-filter-and.html

#5

Thanks mustique, finally had a chance to check out that pack and while definitely useful, isn’t what I’m looking for.

#6

Jonathan, if you’re still looking for a way to accomplish something like this , I thought I should share some insights on the matter.

The main problem on doing a wiggle like you suggested in Maya arises from the fact that an attiribute can only be plugged in from one source ie. keyframe ( which is an animation node’s output btw ) or an expression , not both.

You can of course build up huge networks of nodes which contribute to your final animation and then connect that to your attribute but to build up this kinda “works with any keyed attribute anywhere in Maya” - solution would be insanely laborious, in my humble opinion.

Instead I encourage you to seek solutions based on your exact needs, for example if you need a wiggle on transformation, use the deformer or if you need a wiggle in scale, write an expression. You can use animation layers, character nodes to get nonlinear trax clips and so on and so forth. The way you can animate in Maya is so much more broader than in AE.

In time you’ll learn how Maya’s DG works and you can refine the methods used but for starters I recommend on reading about it from the manuals.

perhaps this :

and about the basics of Maya’s DG & DAG :

and finally about the technicalities, MEL & expression :

I know that the road may seem long but trust me, it’s well worth it

Hope this helps.

/risto

#7

You’ll be a happier man if you buy Maya MASH:
https://mash.mainframe.co.uk/

I have lost track of all the things you can do with it, but inertia effects is one of them since the beginning (the spring node). Also, the guy who is behind MASH I believe is one of the few who made an inertia expression for maya many years ago. I am serious, MASH is one of the top plugins ever invented for maya : )

#8

Adam Burke wrote a script years ago called jabPendulate that did something similar to what your expression does. I cant find it online anywhere, so I hope Adam doesn’t mind me uploading it here.

If you feel like spending \$35, Chad Vernon has a great jiggle deformer tutorial on cgcircuit that would really be of interest to you if you did want to learn some python api coding. Possibly too advanced if you are just starting out. Or maybe not. The deformer works on component level, but he also does some prototyping that shows the same math applied at a transform level. Its a great tutorial

David