View Full Version : Character's arms not moving properly
08-15-2009, 03:51 PM
Ok, so I am rigging my first ever character for an assignment and I have stumbled into a problem with the arms.
I created the left arm first then mirrored the behavior, so when I move them up, down, forwards, backwards they go in the same direction.
I then created six NURBS circles to use as controllers (one for each joint) moved them into position froze the transformations then Parent Constrained one joint to each circle. After that I parented the controllers to each other Shoulder->Elbow->Wrist.
The problem is that now when I select both shoulders and try to rotate them up one moves up and the other moves down. I thought maybe I made a mistake along the way but I repeated the process a number of times. When I rotate them along the Z axis they both move in the same direction.
Hoping somone can help me out here, it's 1:00am and my brain is about to explode.
08-16-2009, 12:28 AM
The problem is that the circle controllers that you created do not have the same orientation as your joints. Make sure you take care to mirror them correctly as well.
An alternative to parent constraints would be to parent the shape of your circles to the joints themselves and you won't have to orient/mirror them at all. Select the nurbsCircleShape, then the joint, then type "parent -r -s" into the command line.
08-16-2009, 02:52 AM
Thanks for that Marcos, but it doesn't seem to be working. I blew away all my old arm controllers and tried what you said. However as soon as I enter that command the circles jump off the joints and behave in the opposite way to what i need (ie, I move the circle nothing happens to the joint, i move the joint and the circle moves). I even tried selecting the joint first then the circle and the joint moved :(.
Just to make it a little more clear, my arms are at roughly a 45 degree angle, so I put my circles at the same angle. My lecturer said not to freeze the rotation when I freeze transformations. Not sure if this makes a difference or not.
Also this is probably a really elementary question but how do I mirror and orient my controllers correctly?
08-16-2009, 08:21 AM
Sounds like you didn't select the shape node of the nurbsCircle. Try this: select the circle controller and then press the down arrow on your keyboard. This action selects the next child node of the nurbsCircle object, the nurbsCircleShape (objects are made of two nodes, the Transform node and the Shape node). Now that the nurbsCircleShape is selected, shift-select the joint and perform the "parent -r -s" command.
Mirroring controls is dependent on the behaviour that makes the most sense. Controls that rotate should converge/diverge toward/away from each other when they're rotated. Copying the animation from one rotate control to it's matching controller should give a natural predictable result. Controls that translate in world space shouldn't be mirrored at all. If I grab two IK leg controls and translate in X I would expect them to both translate in X and not move in opposite directions. Controls that translate within the character's space should be mirrored in the YZ plane. Imagine translatable controls on a character's face. I would expect the controls on the corners of the mouth to translate toward each other in X and translate in the same direction in Y and Z.
Mirroring controls tends use offset groups to create the mirroring. Let's say you're mirroring an translate control like in the face example above.
Select the first control and duplicate it.
Create an empty group (ctrl+g with nothing selected)
Parent the controller to the group (the controller should be a child of the group).
Now scale the group -1 in X.
If you need to, Freeze Transforms on the control.
The only way I know to mirror FK controls is to use the mirrored joint. That is, you mirror the arm joint chain using "behavior" setting and use it to orient your offset groups.
Create an empty group and parent it to a mirrored joint (the group is the child of the joint).
Zero out the translates and rotates of the group; it should now be sitting perfectly on the joint.
Unparent the group.
Now parent your controller to the group. The control's rotation should now be mirrored like the joint.
Sorry, my responses can get a bit wordy. Hope that solves it for you.
08-16-2009, 07:45 PM
Yeah it's like gonzalimator said.
I do rig mirroring like that (http://forums.cgsociety.org/showthread.php?f=88&t=789176)
Different riggers can orient controls differently in the same situation, it depends on their prefers and some prons/cons of choice.
08-16-2009, 07:45 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.
vBulletin v3.0.5, Copyright ©2000-2013, Jelsoft Enterprises Ltd.