View Full Version : Multi functional spine

01 January 2011, 11:43 PM
I'm running into a problem here. Probably I have one option left, but I'd like to understand what's happening and why it doesn't work.

For a fish rig I have successfully set up a bone chain (spine) which is path constrained to a curve with a constant length. This curve is curve deformed by by another curve with clusters (point) center constrained to several nulls. Moving around these nulls gives me the position for the bone chain I want. Everything works fine.

But to automate the tail movement I need to bring in another spine which is oscillating. So the bone chain is constrained to its "bone" curve. The "bone curve" is constrained to the oscillating curve. The oscillating curve's nulls are constrained to the main deformer curve by an ICE compound. The ICE compound which is part of the main ICE tree on the one and only point cloud is although responsible for the oscillation of these nulls. Theoretically everything should work fine. My main curve deforms the oscillating curve, which is also swing around as expected, which deforms my bone curve. This works as expected. Fine!

But the bones don't follow there bone curve anymore!? I didn't changed the relationship of the bones to the chain in any way. I'd say it's because the deformations before bringing in the ICE oscillation where done traditionally, while the oscillation is done via ICE. Probably these deformations take place at different computation times, so the bones don't get the proper deformation and stay in place, not knowing what to do.

So I replaced the pathCons by an ICE tree on each bone doing the same thing. But now everything goes screwy. Even if the bones shouldn't have to do anything with the curve deformation, the curves get screwed up, collapsing more or less in space till you can't see or find them anymore.

No idea how I could solve this.

Can somebody please explain why the pathCons doesn't work anymore or give me another solution for this rig? My only idea is to replace the bone chain with nulls constrained to the curve. But this needs more computation time as the length of the curve might need to get re-evaluated all the time. Bones won't change their length, so the spine will always have the same length.



01 January 2011, 11:57 PM
If it's not too much trouble, it would probably help if you could post a scene illustrating the problem.

01 January 2011, 12:49 AM
Hope it helps a bit.

01 January 2011, 05:52 AM
My guess is that your ICE tree is in the simulation stack, while all other classic constraints are evaluated in the animation stack, which is evaluated before simulation.

If that is the case, then maybe you could try moving your ICE tree into the modeling stack or the shape modeling stack to guarantee that it's evaluated before anything else. If the ICE tree is in an object that doesn't have a modeling stack, like a null for example, then move the whole tree to something that does have one, like a polygon mesh or what have you, and then give it a try.


01 January 2011, 11:48 PM
Well, that's something I had in mind, but I didn't know the order of the whole evaluation. So I tried to push around my ICE trees, but no success. I even replaced the bones with "envelope" nulls. Doesn't work for me.

How would you do this properly? This is my first rig in SI and for sure I might have not taken the right direction at each crossroad.

What I need is to have an oscillating spine which deforms either bones or envelope nulls constrained to it or a curve parented/constrained to the oscillating spine. On the spine I parented fishbones with curves center clustered to its ends. On these curves are additional envelope null and secondary bone chains for the fins. All constrained and deformed by my ICE.

The oscillating spine needs to be deformed by my "master" spine curve which is responsible for the main body pose. So this kind of evaluation needs to take place at the very beginning of all ICE computations.

Anybody a guess or an example for this kind of work?

Cheers and a good start into the new week!

01 January 2011, 01:03 AM
My guess is that your ICE tree is in the simulation stack, while all other classic constraints are evaluated in the animation stack, which is evaluated before simulation.
For the record, constraints afaik are part of the scene DAG, so they will pull on demand based on what's using them, but this would be before stack order (which is per geo) is even considered.

CGTalk Moderation
01 January 2011, 01:03 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.