View Full Version : Shadow Bones? 2 Skeletons?

08 August 2007, 07:05 AM
A Quick question about sth I saw in a couple of free rigs...

There's always 2 Skeletons... 1 with all the rig and controllers and the other is a simple FK Skeleton
the FK Skeleton is constrained (Position and orientation) to each respective bone in the rig skeleton. and the Skinning is binding the geometry to the FK Skeleton.

I was woundering what's the point of doing that??
Why not bind the geometry to the Rig Skeleton??
I'm basically a lighting artist in a small team... so being a "Jack of all trades" I have to rig a couple of characters. and..
I'm just woundering if binding the geometry to the Rig skeleton might introduce some problems down the road??

p.s: if it makes any difference I'm rigging these characters in Maya 8.5


08 August 2007, 10:53 AM
Well maybe it is used for IK/FK switching ...

... I don't think they are any issues with binding the rig directly, it must be setup for some "fancy controls" like IK/FK

08 August 2007, 11:08 AM
You can also use it as another way of version control. If you decide that you need to update the character in the scene you don't have to delete the whole rig, just the constrained rig. Then you can import a new character with the FK bones and constrain that back to the animated rig again.

08 August 2007, 11:27 AM
Yeah, this could be for fancy controls.

It's also an option, say if you have a "base" skeleton, then controls for different characters on top. Sort of a slot-in system;

BASE SKELETON > Choice of control rigs

... If that makes any sense!?!?!

Binding to the rig itself is not an issue in most cases I don't think!

08 August 2007, 11:33 AM
Thanks for your reply,

I usually add an attribute to my Foot Ctrl (for example) that switches all the IK's on the leg on and off (same for the hands and Spine)...
Are there any draw backs of switcjing between IK and FK this way??
Should I consider that Fancy setup with multiple skeletons Instead??

About using the constrained rig as a way of version control... is it really easy to change the character version?? reconstraning Joint by joint would be tedios, Do you automate that process??


08 August 2007, 12:38 PM
first questions first
-the only drawback I`m concerned of is that the animation pops when you switch from ik to fk.... What i do is write custom scripts that does the switching without popping.
-about whether you should use multiple rigs or not - PEN mentioned it but i`ll add to that. If you implement that workflow - using control and bind rig as two separated rigs this could make it much more easier. The first thing that is most important is that the animators can start animating even before the final model is done. That`s the most important strenght in that pipeline... but It`s only usable if you have tight deadlines and if you have a whole team of animators waiting for you to complete your rig. Otherwise... just stick with a one rig setup.
-reconstraining joint by joint is tedious, that`s why MEL is nice :D.... but that leads to another problem - the naming conventions you use... you should stick to one that makes that "snapping" process easy.

I just thought of another case where the multiple rig pipeline is best - at the moment we use control rig for a character and a mocap rig for the same character... and then retarget the one or the another to the bind rig /wich is only one/
Hope that`s of any help

08 August 2007, 12:40 PM
If the base skeleton is guaranteed not to change for the duration of a production then it could be a very good idea. Also, if there are multiple character using that same base it's handy to just slot on a control rig, and have only that base skeleton skinned and taking all movement information.

I would use an automated process for the control rig. So, the animators would import the model with base skeleton. Click a button, and a control rig would be dropped onto it, and all of the constraints etc would be taken care of during the automation.

I don't think this is too uncommon in rigs. A lot of the Maya tutorials for setting up a reverse foot use one skeleton which is constrained to an FK skeleton and an IK skeleton, then the constraint blend is animated. Looking at it this way it's exactly like that , but used all over the body!

As for which you should use I think this is something that you have to decide for yourself. If it works without it, then I woulnd't bother. If it's something that could be needed than it may be worth doing!

Hope that helps out.


- Stu

08 August 2007, 02:01 PM
Thanks everyone,
(my first time here at the rigging section of CGTalk, quite a "welcome" I get... hope I could be helpful to any of you one day at the lighting section -if my knowlage allows it :) )

scroll-lock, First things First :)
Wt does that custom IK/FK switching script do? I'm gussing if it's switcjing from IK to FK, it would Key the Ik Handle/controler, place a key on the Rotation of the bones, and lastly switch to FK and Key the switch itself at the current fram (value=Zero) and at the next frame (value=1)
Did I guess correctly?? wt if it's switching from FK to IK, is it also automated or the animator will have to manually place the Ik handle at the correct position??

vyntax, is it difficult to automate the process of "Droppin in" the control rig??
(all the mel I know is the "Copy & Paste Mel") wt do you mean by dropping in the control rig, Do you import it from another file??


08 August 2007, 02:43 PM
In my characters I`m using 3 joint chains for IK/FK switching. That would be :
IK joint chain /controled by ik controls/
FK joint chain /controlled by fk controls/
the actual joint chain /its controlled either by the IK chain or the FK chain trough animated orient constraints - weights/
So It`s a little tricky if you haven`t rigged yet. Basically if you switch from IK to FK:
-set the weights of the IK orients to 0
-get the rotation values of the IK joints
-apply them to the FK joints
-set the weights of the FK orients to 1

FK to IK:
-set the weights of the fk Orients to 0
-position the IK control at the end of the FK joint chain
-set the weights of the ik Orients to 1

so that makes the change without popping /wich the animators including me hate/
But my advice would be to ask yourself what you need to accomplish the animation. If you don`t need these switching, why bother with this? The easiest solution is always the best, otherwise you can make yourself drink tones of coffee and smoke thousands of ciggaretes before even you have a complete rig. So if your task doesn`t need something - just don`t do it :)

By "dropping" I think vyntax meant "snapping" to the control rig :) And yes, either you import it or reference it... That`s my oppinion.

08 August 2007, 08:35 PM
I was woundering what's the point of doing that??
Why not bind the geometry to the Rig Skeleton??

It just leaves it more open ended for you to adjust either of the skeletons without affecting the other. I use it when the jobs get bigger and more complexe and invovle more asset managment, but will just bind strait to rigging joints on little things and one offs.

08 August 2007, 12:27 AM
You can also use it as another way of version control. If you decide that you need to update the character in the scene you don't have to delete the whole rig, just the constrained rig. Then you can import a new character with the FK bones and constrain that back to the animated rig again.

Woah, thats a good prodcutive idea :D I think I have much to learn yet :)

08 August 2007, 07:10 AM
So this is sort of what I was talking about. We take our base skeleton:

Then we have a floating dialog box which allows the animators to choose which rig setup they need. When the animator clicks the button the script runs through the scene and checks for all the nodes (in this case bones) it needs. It then places locators/point helpers at each joint. From there it builds a rig to fit the locators. Once this is done the scene includes both the base skeleton and the rig. At this point the rig does not drive the skeleton, they are two seperate hierarchies that have no constraints between them. So, lastly, the script will run through and orient constrain/position constrain the base skeleton to the rig.

We now have 2 seperate hierarchies, with the rig hierarchy driving the base skeleton.

Obviously, this can be done without scripting if it's a one off character. But if you have multiple characters you will need to script it, so some knowledge of scripting would be advantageous for this.

I hope this helps some, or at least outlines my thoughts on it a little better! :)

08 August 2007, 08:10 AM
vyntax- almost zero scriptting knowlage for me, can't do that... yet I have another Idea for version switching.... it's a bit tedious, but once it's done it's flexiable to use.

take the arm IK for example in some cases the animators will need it parented to the collar bone, in other cases they'll need it parented to the top most node.

I've done a Rig before that had both options with a blend attribute (you can't go wrong with options), but the problem with it was it got too many options that it seemed complicated to the animators.

what I'm planing to do this time, is basically the same.. but I'll keep all the (Major) blending attributes on the top most node, I'm also planing to make those blending attribute control the Visiabilty of the appropriate controller.

the end result is a "Rig switching Panel", the animators can choose wich rig they need before they start animating, even more.. in a complicated shot where they need to switch the rig, those attributes are animatable.

I think this will do, for version switching... but it won't work for "auto rigging" multiple characters (I'l need scripting knowlage for that anyway).

Scroll-lock, is it possiable to script sth that makes the switch from Ik to FK and vice versa without using the 2 chains setup??


08 August 2007, 11:28 AM
Woah, thats a good prodcutive idea :D I think I have much to learn yet :)

Here is the tool that I use to bring a skinning character into a shot and bind it to an animation rig.

It is all based on INI files that describe what gets bound to what. I can also use it as version control as it will check if the skinned rig already exists and delete it if it does.

CGTalk Moderation
08 August 2007, 11:28 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.