February 6, 2010
Im working on an ordered theory for building rigs and loading animation. This is a general approach that isn’t reliant on rig construction at all, just an paradigm for ordered processes.
‘parent > system > index’
The theory follows some basic strict rules to determine an objects id in a system, and generalize relationship – not in any way its physical parent etc (though i can be used for it). An object is first represented by its parent, then the system its in and finally its index of that system. A root object for example can look something like so:
‘011’ or  or system – the first part denotes the systems parent, in this case ‘0’ represents nothing or ‘undefined’, the second part is the system index – in this case its the first system of the rig. Lastly the index denotes that its the first object in that system. Note that the parent index, and the last part ‘index’ and co-habit with each other. This will be explained now:
Once a root/base/first system has been establishes with its id; 011 extending this to cover new relationships is easy. Adding a leg system to this can be referred to as:
parent|system|index| – |system|index|
Reading this id (right to left) we can see its the 1st bone of the 2nd system, which is in turn parented to the 1st bone of the 1st system, which has no parent.
System can have multiple objects , we just need to determine there index. On creation of a system, an index of 1 always follows as a system or object cannot exist without one or the other. Object represented by an index do not need to be parented – they can if need be, but its not necessary.
Rigging information such as the how the object in the system are setup is purposefully left off, as this is more of a generalized approach than a finite one. Addition information about the system could be held in a’custom’ variable such as #(“leg”, “ikfk”,poleVector”) etc.. This is to allow a system be constructed in any manner we see fit I.e. there maybe a system for the entire leg, or one up to the ankle and another for the foot. Crucially its dependant on how you want to build your systems.
Constructing a system we first build the base system and object, ‘root’ in this case. Addition systems need to know about the system there connected to, and as before this does not need to be a physical parent just a connection to the entire system.