PDA

View Full Version : Twohands Armcontrol Setup?


Matte
11-28-2005, 08:24 PM
Hey peeps, been lurking in these forums forever, never had the need to post anything, so this will be my first post at cgtalk.

Been trying to figure out how to solve this one myself for some time, but havent found a good solution as of yet. What iam trying to achieve is a good way to control both hands at the same time. Like if you were holding a twohanded sword for example. And to be able to switch between using them individually/both in useful way. So that you dont have to counteranimate anything here and there. I have been using both normal parenting and different kind of constraints to try and get what i want, with no real luck as of yet.

If you use the standard parenting approach, for example, every move you make with the parent controller, an object named BothHands for example with right and left down below, affects the children. Nothing strange about that, fully normal. But if i want to move the BothHands controller "ahead" in the animationsequence, for example, to the position where i would like the 2 hands to meet later in the sequence. Then i have to counteranimate the individual hands when i move the BothHands controller ahead, since they are childern under the BothHands controller.

The other approach, using parent constraints, can solve this temporarly. If you fiddle a little with the Enable Rest Position boolean ie. But eventually you get a pop when switching from individual mode/both hand mode anyway, since parent constraints also is a type of "weighted" parenting. So when you weight between 0 -> 1 /0 -> 1 over and over you are stil moveing the handcontrollers between different coordinate systemes, which will at some point cause poping no matter what you do.

I have also tried different combinations of both, with no real luck either.

So what i have been thinking about is a system where the BothHands controller is a kind of a goal or override. For example, when i set the weightvalue to 1 both handcontrollers snap to the position of the BothHands controller, regardless of how much i have moved the BothHands controller previous in time or plan to. They just try to be at the same location as the BothHands controller as long as the value is 1. An absolute position in a way, and the handcontrollers just try to be at that location as best they can, without careing if it is relative to its own internal coordinate system or not. Like a particle goal in a way, which doesnt really have any coordinate system. The particles just try to be at a certain location all the time. Havent really worked much with goals/particles but thats how i understood that the general idea is with goals.

Hope thats understandable, hehe. Anyone got a solution maybee? Ideas?

/Matte

utpal
11-28-2005, 08:59 PM
what if you do this?
assuming your arms are controlled by ik; and that you are using curves to control the translation and rotation of your rig. so, take a curve, put it at same distance from both left hand and right hand controller curves. then, select the curve you intend to use to control the left hand, select the BothHands controller, and point and orient constraint. the maintain offset option is off. so, immediately your left hand will move to a position half way between your LeftHand and BothHands controller. then, turn the constrain weight attributes for BothHands to 0. so now the arm moves back to the LeftHand controller.
make an SDK setup, call it BothHandsOnOff; where you can switch the attributes for LeftHand and BOthHands controller on and off. the min max values are 0 to 10; so that when the value is at 5, the constrain weights for both the control curves is .5, .5. this would mean that the arm as well has moved half way between both the controllers.
now, when you need to move your LeftArm to BothHands position, just animate the SDK over a few frames to go from 0 to 10. and, your left arm should move smoothly from the position of LeftHand controller to BothArms. and when you need to switch the control back to LEftHand, just keyframe the SDK value back to 0.
do the same setup for RightArm. use the same SDK.

so now, when the BothHandsOnOff SDK switch is off, you could move your BothHands controller wherever you want, it wouldn't affect the position of your arms. same way, when you are BothArms to swing a sword, you can place the Ik based controllers of your arms wherever you want before you switch back. this setup also gives you the convinience to use both the controllers to animate your arm, if that's what you want. just put the SDK switch half way..

i hope this is what you were looking for...

Matte
12-02-2005, 09:23 PM
Yeah, i guess it would have to be something similar to that. I have tried a similar approach before. For this specfic ocassion i actually ended up using a expression solution, was the only way i could get around the cycle problem. Thx for the idea/workflow anyhow.

/Matte

CGTalk Moderation
12-02-2005, 09:23 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.