Kinect Joint Orientations

Does anyone have an example of actually using the joint orientations to puppet a skeleton? I believe that every joint orientation is supposed to be relative to its parent, but I can’t make it all work out. I’m particularly confused about why the joint translations don’t seem to be named the same way as the orientations… and the orientations don’t seem to match what’s on this page: msdn.microsoft.com/en-us/library/hh973073.aspx

There are things like pelvis_r and pelvis_l and clavicle_r and clavicle_l. I assume that pelvis_r and pelvis_l connect directly to the root? Or do they connect to spine1? Why are there only rotations for spine1 and spine2, but not spine? etc. etc.

Our channels are named for the bone, not the joint. The reason being for example there is 2 bones coming off hip center. But it needs to have a different rotation for the left/right, so we don’t have a hip center, we have a left/right for it.
You don’t want mix the rotations with the translations that come out of Kinect. You’ll want to use one or the other to drive your skeleton, but not both. The translations are in world space, while the rotations are relative to the bone it’s connected to.

To expand on what Malcolm said, we used all the orientations, and the only translate we used was on the hip to move the character around the scene.

Im a bit rusty off the top of my head, but I believe an example of the correlation between that MS doc and the TouchDesigner channels would be like:

MS doc - TD channel
Wrist L/R - L/R Hand
Elbow L/R - L/R ForeArm
Ankle L/R - L/R Foot
Knee L/R - L/R Leg
etc

Really depends on your model’s skeleton as well. Our rigs were quite different than the humanoid rig that is in the kinect game dev pack (can’t remember the name) that people on the web keep referring to and a bit different than the model they have in that picture. The most amount of time we spent was actually in getting the shoulders working right, which was solved mostly by re-rigging and weighting the skin in those areas.

Legs were a bit strange as well, because our model had a different hip structure, so we actually had to do some Pre-Transforms to spin the legs so that they were facing the right direction (at first the joints were working but the legs were pointing to the air instead of the ground!).

We imported the models via FBX, which for the most part worked pretty seamlessly. Texturing them was pretty straightforward as well.

Hope that helps!

Thanks. Never quite got it working right… ended up using object chops and some math to determine the angles between joints (in one dimension only). Ended up being good enough for what I was attempting. Eventually I’d love to get this working the right way.