Skip to content

Posts tagged ‘Forward Kinematics’

Rigging retrospective (part one)

August 20, 2007


So Ive been away on vacation over the past two weeks in beautiful Montreal (an amazing city). I had time to think about rigging, ways to break it up and what it is at its heart: intergrating systems.

Rigging can be regarded as modular in one sence and choatic in another. It can also be though of a group of systems that interact with each other in simple and hybrid types of ways. There are three main ‘Driven Systems’ at its heart:

Kinematic – the animator drives the rig with keyframes, purely controlling the puppet and f-curves

Procedural – the animator drives values which adds automatic driven motion, the wave if you will doesnt however have to be procedural and handmade in a fourier synthetic way.

Dynamic – the animator drives controls in which there ‘children’ act in a physically based way. The controls themselves could also act dynamic.

Theses are the bases, but many hybrid versions of these can be combined, waves driving dynamics for instance. A rig should only support this if its really really neccesary – we need to understand what a rig needs. At its heart is what the animator wants, especially interms of control. But we can also make our own assumptions and give some basic rules in constructing a rig:

1. A rig is a series of systems.

This can be a hard idea to understand, but if we treat a part of a rig as a system than a series of joints (more of an outwardly looking in analysis), we can work out what we need. A good example is a tentacle – because were are treating this entirely as a system – e.g. a splineIK base with a layer of FK controls. The tentacle is treated as a whole unit and this is how we should look at it when rigging. Lets break it down:

A tentacle that needs to be fk, dynamic, driven and procedural – we’ll first off we can pair these together fk/procedural and dynamic/driven as a system. By doing this we can see that the fk/procedural can ‘ride’ the dynamic driven system. And this dynamic driven system itself can be treated as one: A dynamic chain solution that rides a bezier spline based on tension, and a fk procedural system that rides this in tern.

A tentacle is essentially an easy example as we regard it as unit, but can this be the same for a wing, leg or even spine? A spine or torso can be summed up as three independant units that are glued together either or additionally by a positon or a main control. It can be regarded as a system. A wing is essentially an arm, that feathers ride along and intern have dynamics (air resistance etc)

Using weak referencing and transform spaces for unifying FK/IK.

May 19, 2007


I thought about an idea for unifying an fk/ik system today – using a single fk chain driven by a detached wrist to define a hypotenuse, to make it act like IK. And driving the same wrist with weak node referencing, and storing two matrix3 values driving its transform space so it stays glued to the end of the elbow joint. Rotation would use the same method.

So you would move the wrist, and in doing so define the 3 lengths needed for ik solution (2 of the lengths are constant unless you introduce stretching). And when you rotate the bones – on another float_list (bezier controller) you drive the transform positional space of the wrist, keeping it glues to the end of the elbow.

Weak referencing could also be used for gluing the knee control to the knee, and also a control at the elbow to break it, stretch it etc.

 Some issues maybe doubling of transforms, plus controlling the elbow. Also pulling the wrist too far from the the ik solution – this i think could be fixed.