Home About Scripts Plugins Tutorials Home Gallery Links

 

PROCEDURAL ANIMATION EXPERIMENT #4, SENTINEL

 

Making believable organic movements has been always a challenge for animators, but even that kind of movements can be reduced to some sorts of equations with a few variables, obviously there is stiil ages of researching and AI intelligence development before any machine can replace the job of any animator, or maybe it will never happen. anyway, there is some of the skillset that animators have that can be slightly simulated inside an algorythm.

When i was learning animation i was wondering about how to make my character movements more fluid and organic. I found some information about the 12 principles of animation and other stuff like that, doing that i found the basic techniques that an animator should have in order to make a good animation (beside the fact of being a talented artist). one of those that i found pretty useful is called succesive breaking of joints, and that means making slights offtets of the rotation of the joints of a character when it makes a specific movement, changing the amount of that offset can define several behaviours, like how strong is the movement, the weight, how relaxed is the limb, etc.

I started to use that a lot, and mostly animating tails, ponytails, tentacles. It was a simple principle, just offseting transformation, so it was easy to implement it inside an equation for procedural animation purposes:

(sin (t*Frecuency+Offset))*Amplitude

Being "t" the current time. The frecuency and the amplitude will be controlled by a spinner and the offset will be defined depending on the node of the chain, the last one having the biggest amount of offset. the amplitude will be the maximum transformation that a node will have, in the case of tentacle, the amplitude will be the maximum rotation per each oscillation. having this in mind the equation can be taken even further adding some parameters to independently set the amplitude of the nodes that are in the end of the chain:

(sin(F*Frec+Phase+Offset*(i-1)/(n-1)))*(AB*(i-1)/(n-1)+AE*(1.0-(i/n)))

The phase will be useful to offset the whole animation. AB is the Amount of amplitude in the beggining of the chain, AE the amplitude in the ending, i is the number of the bone with respect to the hierarchy and n is the numbers of nodes. The Effect of AB is small in the ending bones of the chain and the Effect of AE will be bigger in those and Vice versa. With the (i-1)/(n-1) multiplying the offset the equation will set the offset to zero in the first bone and gradually it will increment it until it reaches it maximum amount in the last bone.

using maxscript the whole process of the chaing creation, expression and parameters assigment can be made automatically.

in this video you can see how it works, and how it can be implemented in a character setup:

 

The character have tentacles that can blend between the procedural motion and a spline driven motion, or both transformation can be added to have full control of the chain. I achieved that using a kind of fk-ik blending having two chains, the procedural one, and the spline driven one, the tentacle will add both motions using orientation constraints.

The script used in this video can be found here: Tentacle_1.00.ms
The one used in the video is in spanish but the downloadable one is in English.

 

 

 

 

Copyright 2010, Felix Joleanes.