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 still 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 skill set that animators have that can be slightly simulated inside an algorithm.
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 successive breaking of joints, and that means making slights offsets of the rotation of the joints of a character when it makes a specific movement, changing the amount of that offset can define several behaviors, 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 offsetting transformation, so it was easy to implement it inside an equation for procedural animation purposes:
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 successive breaking of joints, and that means making slights offsets of the rotation of the joints of a character when it makes a specific movement, changing the amount of that offset can define several behaviors, 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 offsetting transformation, so it was easy to implement it inside an equation for procedural animation purposes:
(sin (t*Frequency+Offset))*Amplitude
Being "t" the current time. The frequency 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*Freq+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 beginning 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 verse. 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 chain creation, expression and parameters assignment can be made automatically.
in this video you can see how it works, and how it can be implemented in a character setup:
using maxscript the whole process of the chain creation, expression and parameters assignment 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 | |
File Size: | 3 kb |
File Type: | ms |
The one used in the video is in Spanish but the downloadable one is in English.