Prehensive tail rigging

Hello! I wonder if someone already had the experience to rig a prehensive tail? For exemple a monkey that use his tail like a hand. The problem that i have is the center of gravity control parenting the root of the tail but when the tail grab branches i need the new pivot also control the cog control from the branches space. And so i run into cycle theory. I also need to get roll and sliding. Does anybody can help with some ideas?

Cheers!

First, please other people chime in with your ideas, too!

I’d say don’t have a pivot connected to the tail. Make a completely free-floating pivot, not connected with any specific part of the rig. If you’re making a monkey swinging through the trees, an animator just has to place the free pivot at whatever branch it’s grabbing, whether it’s with hands/feet/tail/teeth/whatever.

One way to do this would be to just have a secondary COG. One of the setups I worked with had:
World (sits at origin except for special cases), Character (moves the entire character including Ik handles), COG (the COG that you’re used to), Base (the rest of the rig is parented under this). This lets an animator offset the base from the COG to do exactly what I’m talking about, especially if you have space switching on the IK limbs.

Rolling and sliding?
The first thing I would try would be like ribbon spline setup with a reverse foot. The reverse foot means there’s a free-floating section between the hip and “ankle”. Then the “foot” is the part that would wrap around things.
Then if you’re feeling fancy, you could make secondary splines from hip to ankle and ankle to toe to get the lengths. Then you can dynamically offset the UV values of the surface constraints on the joints based upon both user controls, and the lengths of those secondary splines to get sliding and rolling.

Or, If you’re feeling really really brave, I’ve got a spline plugin that handles all that. Everything I’ve tested works great, but it hasn’t been in production, and I might not have the time to fix any bugs you find. That said, I don’t think there’s major bugs, but I won’t be certain 'till it’s better tested.

Hello! Thank you very much for the answer! My first idea was to use a variable Fk layered with some Ik. And i was thinking about create a whole module on top of the chain to drive control in offset.

But this was not solving the ‘reverse’ mode setup. For the roll and sliding i had in mind the fact the tail can roll keeping the contact with the branch ( hope it makes sense ), and then animator can offset the roll playing with the translate of controls. The whole fk rig have to sliding, not only the rivets joints. I think your idea to have a floating pivot is a must have, i will definitively keep it! i couldn’t find a way to have a interdepent relationship ( and i think even it would be possible, maybe playing with direct connections on pivotTranslate, it wouldn’t be stable enough) . For the COG, based on what you suggest, Do you it’s ok if i connect the position of the locator in the rotate pivot of the COG or should have a spaceSwitch rig instead of?

Cheers!

For the COG, I prefer using space switching, but that doesn’t mean it’s the only way.

For the tail rig, why do you think the FK controls themselves need to slide? What behavior am I not understanding?

When I think of a spline rig, I think of controls that position a curve (or ribbon). Then completely separate are the joints that ride the curve. (I say “ride” because I think of them like a roller coaster). Each rider has a U value where it starts, and then an expression that adds or subtracts from that initial U value to slide it along the curve.
So in my mind it doesn’t matter if the rig is FK, IK, free floating, or whatever else. Sliding would be handled by system that is separate from the controls.

Then, if you need to dynamically switch behaviors, you can build multiple rigs with locators as riders, then constrain the skinned joints between them. If you’re feeling really fancy, you can build setup that switches between the control rigs starting from the tip of the tail and going towards the body controlled by a single attribute.

Hello! :slight_smile: Thank for the spline, i will try it, curiosity :)! I think we have a similar thing in my company so the ik spline is ok.

You understand it all :)! It’s just that based on this ref https://youtu.be/pC17gBquysE?t=116, sometimes it seems he’s coiling his tail. He put his tail at a certain position then he coils the tail keeping the same pivot reference. That’s i call ’ sliding’, it’s more a coil effect i think, i should say ‘coil’ effect instead, sorry.

so, in a quick resume:

  • have a floating pivot for the COG, or a point with a spaceSwitch to drive the COG position.
  • have a extra chain reverse, driving the tail in a reverse way
  • separate the tail in two part, of is the main tail, the second is the “hand” part.
  • have FK/IK layered, with some sliding effect in IK.
  • and last i need to find a way for the coil effect?

Maybe FK variable does the tricks?

“Space Switch” is you keyword :slight_smile:

Do some research about this, you’ll find everything you need about “having multiples COG” :slight_smile:

Yep, i mentioned it earlier for the space switch. I’m thinking about creating a whole rig, connected on top of the tail rig, on the offsets of controls. Something like a module that you could animate in world, with fk and fk reverse and then connect it to the tail, a module that animators could pose and connect in their shots and then delete after the tail is posed, or even bake the result on top of the tail controls.