0
$\begingroup$

I'm trying to make motion capture thanks to Royal Skies' tutorials, using a Xbox One Kinect. Here's the tutorial part (1,38min in total) : https://www.youtube.com/watch?v=2FGu-g8qsww

So I have a Kinect rig, which is animated. I also have a character with his proper rig. So I need to put every bone of the Animated Kinect Rig at the same position of their equivalents in my character rig. Then I just have to check that my animation still works well before linking both rigs together but it is not the subject here

So Royal Skies goes in Edit mode, select a bone and snap it to the correct position, in Front View.

If I do the same, and then check the animation of the Kinect Rig, it is completely messed up, especially because of the UpperArm Bones. Of course, before the snapping step in Edit Mode, the animation is perfectly captured by the Kinect rig. Please check my gif to see what it looks like : https://ibb.co/kSVmfBq (yes there's a big offset between the rigs while playing the animation but thats not a problem).

I have two ideas:

  1. It is a Bone Roll problem. In fact, snapping a Kinect bone to the position of my character's rig bones changes the bone roll. But first, resetting the bone roll to the original one (by writing it on paper before snapping a bone) does not fix the issue. Secondly, I tried every "Recalculate Bone Roll" option, and it does not fix it either. I really don't want to enter a "guess the bone roll angle" game here.
  2. My character rig is in A pose, whilst the Kinect rig is in T pose. Maybe it is part of the issue. I don't want to set my character to a T pose.

Anyway, can you help me please, I'm running out of ideas here...

$\endgroup$

1 Answer 1

1
$\begingroup$

To understand your problem, let we simplify: suppose that rotating the left arm from T pose to A pose is happening with a 45 degrees rot on X axis arm bone; 90 degrees will take the arm vertical, along the body. If the animation data store a value of 90 starting from a T pose, the same animation data will take the arm inside the body if applied to an A pose rig.

So there are many ways to solve the problem. The simpliest is to set your character to a rest T pose, matching the Kinect rig rest position (as it is in the video tutorial).

If you really don't want that you will have to create an empty in the loc of the Kinect bone and child of it. Then you set a copy rot constraint to your CharacterBone targeting the empty.

Once the setup is established you set the Kinect rig in rest pose and rotate the empty until the two arm bones are perfectly aligned in their T pose, so that when the animation says 0 degrees you get a T pose, when it says 45 degrees you get A pose, when it says 90 degrees you get the arm along the body, as expected.

You will have to trim the empty on the other 2 axis of rotation also, and repeat the operation for all involved bones.

$\endgroup$
4
  • $\begingroup$ Ok so I wasn't wrong saying it is a roll + T pose issue ? At the end of the day, I have to guess the value of every new roll degree, for each bone. Damn. I was afraid to receive that kind of answer... Can't I just manually roll each bone so that it matches with the original animation ? I'll try it before giving a try to your answer (which is a little bit complicated for me haha) Thx $\endgroup$
    – Pdhm
    Nov 16, 2020 at 16:08
  • $\begingroup$ Roll is not enough, it's only one of the three wrong rotations in rest pose. $\endgroup$ Nov 16, 2020 at 20:06
  • $\begingroup$ Ok, I'm not sure I've understood everything you explained earlier, but I'll give it a try $\endgroup$
    – Pdhm
    Nov 17, 2020 at 20:29
  • $\begingroup$ Ok I've made a lot of tries, and yeah, you were absolutely right saying that reshaping the character and all of its clothes in T-pose was the easy way to go hahaha. I had bad times trying to figure out how to make my rig properly follow the kinect rig. It was never perfect in the end. So I've decided to go for the T-pose. Thanks a lot for your help ! $\endgroup$
    – Pdhm
    Dec 9, 2020 at 9:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .