PDA

View Full Version : inverse chain control


DracoDralion
03-15-2008, 02:02 PM
This is something that's been bothering me for quite a while now. Take a chain with one bone for example, to keep it all easy. Now, the translation of the effector is used for IK and the rotation of the bone is for FK, pretty straight forward. But what if you want to rotate the bone while the effector stays stationary and the root moves. Logically I would say, just rotate the effector. Well, as you all know, that doesn't work in XSI.

One solution is to create another chain, which is the inverse of the other chain, so the root becomes the effector and vice versa (lets call this new chain the inverse chain from now on). Then the root of the first chain is position constrained to the effector of the inverse chain and the effector to the root. If the bone of the inverse chain is rotated, the first chain will follow, which is what I want.

And now comes the great BUT. Because of the constraints the first bone can't be rotated any more. Is there a way to get around this? Would making clips be a possibility, and if so, how would that work? Or do I need some scripting, and again, how would that work? Or is there an easier solution, and once again, what would that be and how would it work?

The same solution really is working with nulls instead of another chain, btw.

Comparing with other software:
Maya can just rotate the effector and the bone will follow, which doesn't work in XSI as stated before.

3Ds Max can create another rotation layer from what I've seen in a tutorial. Is this possible in XSI? I guess it's not, but if it is, please let me know. But I'm sure if you came to this part of this thread, you probably would tell me anyway.. I hope.

Loolarge
03-15-2008, 05:13 PM
I don't have any solution for you, but i am curious about this. What exactly do you need this for? And how did you get it working in Maya, because i quickly tried it without success. Would be nice to have it working in XSI :)

DracoDralion
03-15-2008, 10:35 PM
I don't have any solution for you, but i am curious about this. What exactly do you need this for? And how did you get it working in Maya, because i quickly tried it without success. Would be nice to have it working in XSI :)

IK handle tool single chain solver.

Well, I'm following a tutorial for maya here, "animation friendly rigging" by Jason Schleifer. He makes a hand where you can "press" the fingers down on a surface while lifting the hand palm. So he has three joints to represent the handpalm and the fingers. He creates two single chain solvers with the IK handle tool and groups them together. Then he creates a locator lines it up with the second joint and makes it a parent of the joints. when he then rotates the locator the first joint will rotate with it and create the wanted effect.

I never really used Maya to be honnest, but I can't really see how this would work in xsi. I guess the grouping of the two handles does the trick..

tc
03-16-2008, 12:25 PM
I'm not really sure of what you want to do... but whatever you wanna do is better do not state like you did, because it can mislead other users...

I'm not totally sure I understand your question... but try the following...:
Make a null, select the Effector, constraints>pose constraint>pick the null.
Your constraint will have a blend weight by default, so you use it to blend back to the original behavior.
This way you can move the root and the effector will stay on the pose... And if you have an upvector you can rotate the joint... (or whatever using the bone roll/rotation too)

I use Maya too and the process is basically the same... The difference in XSI you don't need to have a group (or a transform group in XSI). And also you can easily put a switcher on this constraint, so when you want to "lock" the fingers on a surface you just activate this switcher, then you move the hand and the fingers are locked. Blend back and the swticher will make the fingers move togheter with the hand.

Let me know how this work for you.

DracoDralion
03-16-2008, 05:24 PM
I'm not really sure of what you want to do... but whatever you wanna do is better do not state like you did, because it can mislead other users...

What do you mean exactly? Is it the title that's misleading? Or is it something I said? Just want to make sure I don't make the same mistake in the future.

I'm not totally sure I understand your question... but try the following...:
Make a null, select the Effector, constraints>pose constraint>pick the null.
Your constraint will have a blend weight by default, so you use it to blend back to the original behavior.
This way you can move the root and the effector will stay on the pose... And if you have an upvector you can rotate the joint... (or whatever using the bone roll/rotation too)

Let me know how this work for you.

Unfortunatally it doesn't. You see, the problem with that is, that you can't rotate the bone anymore. And it actually didn't solve my problem in the first place, I can't rotate the bone in an inverse way. I know I can translate the root, but that won't give me the ability to create a nice arc.

But you know what, I think I was just confused really. In maya it would be the same problem as in XSI. I was assuming that, in the tutorial, he could bend the fingers, but I guess I was wrong. I'm going to try to explain it, but I'm not really good in it, so if you don't understand what I'm saying, just ignore it or ask to be a bit more clearer..

There we go. Actually it uses your method, only takes it further. So you have this one chain, which represents the hand palm. with the effector constrained to the null. I also parented the root to this null. I created another single chain bone which represents the fingers. The root of the finger chain is parented to the effector of the hand chain. I created another null which constrains the effector of the fingers. if the first null is rotated now, the handpalm will rotate with it.

To move the hand I created another null and parented the two previous created nulls to it. When we move or rotate this new null, the hand will follow.

Now the problem is that I couldn't rotate the fingers anymore. Well, actually it's soooo easy. Just create another finger chain (with three bones this time, to represent the bones in the finger) and parent the root to the first finger root. Now we can rotate the bones of the new chain. One problem we still have is, when we lift the palm by rotating that one null (can you still follow, please say yes), the new finger chain will follow. If you select the root of that chain go to the local trasform properties > Options tab, uncheck the Orientation box under Constrain. This should do the job.

Now we can move the hand, lift the palm (and with a few more nulls bank it from side to side) and curl the fingers. Good ay! I really hope this was a bit clear. If not, please do ask for a better explanation (and I will probably be even less clear). Anyway, I'm glad you got this far in reading this all, that means something.. I guess.

tc
03-17-2008, 05:24 AM
no problem... is more the way you said that made it sounds like it can't be done in XSI...
anyaway, sounds like you find a solution for it... or make it work somehow.
I'm not sure I understand exactly because it's quite confusing talk about nulls and chains without any image or something else explaining.

I think what you are saying is in fact the nature of the IK Solver, than a problem on how IK/FKs are being handled in XSI or Maya.
IK is by itself an equasion that in the end just pass the rotation of the bones in the chain, based on the position of the end effector.
People do tricks to make this "equation" flexible and cover the limitations... and this is Probably all these groups and constraints you see in the DVD... it's all about how to make this flexible and go further with something that starts with an IK solver.

So I think you should think on hand rigging as an entire thing...
Hands are quite an advanced context in rigging... You'll end up with a few chains and lots of nulls to switch constraints and control specific things. And thats how you should go, in my opinion.

Sil3
03-17-2008, 01:11 PM
Good ay! I really hope this was a bit clear. If not, please do ask for a better explanation (and I will probably be even less clear). Anyway, I'm glad you got this far in reading this all, that means something.. I guess.


:)

Can you post some examples, like an animated gif or simple screenshoots :p

I dont know what Tutorial you are refering too, last thing I saw in Tutorial terms from jason was the Fast Animation Rigs done some years ago, I didnt even knew he had more Rigging DVDs (interesting :P)

CGTalk Moderation
03-17-2008, 01:11 PM
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.