4
$\begingroup$

So, i'm finally getting a handle on rigging in Blender and am doing pretty well except for one thing. My brother is doing the animating and had a few complaints/requests, so I went in and tried to fix it.

The spline IK controls have to be on a separate armature than the other bones. My brother would like all the controls on the same armature so he can access all controls at once and have them all on the same list in the dope sheet.

I tried creating all controls on a separate armature for the rig, but this results in double tranforms for everything and i'm having serious trouble keeping things parented. The finger controls won't follow the wrist control for example without throwing the deformation rig out of wack (with childof constraints on the fingers, and the controls for the fingers parented to the wrist, it just doesn't work)....

Is there a way to do this? (have all controls including splineIK on the same armature).

$\endgroup$
  • $\begingroup$ You can find all the armature properties in the N panel $\endgroup$ – Igor Tatarnikov Aug 10 '15 at 7:12
  • $\begingroup$ Its why I generally avoid spline IK. It is possible however to tie spline control points to bones. Look into the hook modifier. $\endgroup$ – beiller Aug 10 '15 at 13:46
10
$\begingroup$

It's possible, here is a flow chart of the dependencies:

www.draw.io

  • You want all your bones in your Control rig (deform and non-deform), except your Spline IK bones.

  • The control rig will control Curve vertices with Hook modifiers.

  • The Curve controls IK Splines in deform rig. You want to copy all the deform bones from Control rig to Deform rig and copy transforms from Control.

  • The Deform rig now should have all the bones to deform character. Bind the mesh to this armature.

  • Parent everything to Control rig. You can hide the Curve and Deform rig from view and render.

$\endgroup$
  • 1
    $\begingroup$ That's great! Thank you very much :) Very clear answer and it all makes sense. $\endgroup$ – allen Aug 10 '15 at 16:13
  • $\begingroup$ I wonder if it wouldn't be an optimisation on this setup (to avoid having to duplicate bones outside of the spline-IK chain) to have two Armature modifiers: one for the Spline-IK bones and another for all the other bones in the control rig which can directly deform. You'd use the multi-modifier option and a vertex group to exclude the spine vertices between the two modifers. I'm not sure if there's a way to measure the efficiency. $\endgroup$ – R. Navega Feb 23 '18 at 1:21
  • $\begingroup$ The problem with this is what if you have bones that need to be controlled, but whose position depends on the curve? Consider a pelvis->skull spline IK spine. The location and orientation of the clavicle depends on the curve itself. Your control clavicle will end up misleading the animator about position, rotation, and most importantly local axes. Am I missing something? $\endgroup$ – Nathan Jun 22 '18 at 6:16
  • $\begingroup$ @Nathan You parent your clavicle controls to your chest control in the control rig, they connect to the chest bone, not the spine. But you are right that if you wanted a control dependent on the curve, that would be too much to ask from Blender. You would have to write a script to do that functionality and basically have your own IK spine engine to do the relations to avoid Blender's dependencies. $\endgroup$ – Jaroslav Jerryno Novotny Jun 22 '18 at 10:49
3
$\begingroup$

As of this commit the new dependency graph system has been merged into master. It is now possible to have everything in a single armature, and there will be no dependency cycles.

For more details, check the wiki

$\endgroup$
  • $\begingroup$ I have bad news, new dependency graph will not support this. Tested it, didn't work, send a bug report, it's not bug and will not be supported. $\endgroup$ – Jaroslav Jerryno Novotny Oct 19 '15 at 12:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.