Hello! I've got a rigged character which I'm planning to use with motion capture and then refine the animation manually. I wanted to avoid directly rotating/transforming the joints and created a set of NURBS curves for controls. These are structured in a hierarchy mostly identical to the joint hierarchy and affect the joints thought parent constraints - the skeleton follows the curves just fine.
I'm also using HumanIK to drive the mocap data. When applying the motion capture to the skeleton the character moves correctly but the curves don't follow along with the body... I attempted moving the curves under their respective joints in the hierarchy and then constraining but that didn't work at all.
Directly moving the joints is always an option I suppose but I'd be grateful for any suggestions!
Solved! Go to Solution.
Solved by mcw0. Go to Solution.
You need a node above your control curves that accepts the mocap data. That will allow your controls to be an offset of the mocap.
Select each of your control curves. And group it to itself ( ctrl G ). Then constrain this new group to the appropriate mocap joint. Mostly, it will be an orient constraint. Only the root will be a parent constraint since that's usually where the translation is on mocap skeletons.
Thanks for elaborating! Just gave that a quick try and things seem to break as soon as I get to constraining... As you can see in the screenshot the joints just go way off. I'm setting the joints as the parent and the groups as the child. I've tried doing this in ascending/descending order along the joint chains. I've also tried turning 'Maintain offset' on and off in the constraint settings. Not sure what I'm doing wrong?
When you say "setting the joints as the parent and the groups as the child", I'm not seeing that in the outliner. I'm seeing the group and the control under the group. I see the group being orient constrained. I don't see the joints. But actually, you don't want to have your controls in your joint hierarchy. At least I don't. I like to keep things clean. And I like to keep the original mocap skeleton untouched.
Are your controls aligned to the mocap skeleton? It's strange that with only an orient constraint, that the joint would move.
Forgot to mention that the pivot of the group should match the pivot of your control.
Sorry I should have worded that better - I'm orient constraining the groups to follow the joints.
This character was made in Character Creator 3 and came with its own skinned skeleton when exported. Unfortunately it didn't come with a set of controls hence my efforts here hahaha...I am using mixamo files to drive the character skeleton.
I did not in fact line up the group pivots with the joints, hopefully that will sort it. Will give it another try and report back! 🙂
Snap the pivots of the groups to the controls and then try constraining again. If you had "maintain offset" on, it shouldn't have moved. But in any case, the pivots should match.
Hello, me again. I went and made sure all the group pivots match exactly with the curve pivots (which also match the joints) however that's not really fixed the issue... I made a couple of very short videos to illustrate what's happening, felt that would explain better... Unfortunately the dialog windows with the constraint settings aren't visible in the recording but I have annotated instead 🙂
A couple of things I noticed in your videos. First is you have keyframes on your group. There should be no keys on the group nodes. Only a constraint to drive them. Second, I'm surprised that Maya didn't complain about a cycle. You are constraining a group to a joint that is itself constrained to the child of the group.
You are not constraining the group to the character skeleton. You are constraining the group to the mocap skeleton. The one with the animation. I didn't see a mocap skeleton in your scene. The mocap is going to drive your character. And the group nodes is how they connect. The controls under the groups allows for offsets from the mocap animation.
Ooooh okay yeah the mocap skeleton is hidden away in a group at the time of the recording, I didn't think I'd be constraining anything to it but that makes a lot of sense. I must have accidentally created keyframes on the groups at some point. (slippery fingers :D)
Finally got it to work properly! After constraining to the mocap skeleton rather than the character skeleton all has fallen into place. Thanks so much!!
Can't find what you're looking for? Ask the community or share your knowledge.