Keep your head on: Automating scaling in KinectToPin with Z-axis data

I’ve spent a lot of time recently creating the latest version of KinectToPin’s UI Panel for After Effects. It has a ton of great new features, and makes things a lot easier to use.

But now that that’s out, I’m working on something new that gets around one of the biggest remaining issues with rigging 2.5D Kinect characters: automating layer scaling based on Z-distance. It’s one of the most annoying things to deal with, and until now the best options were “stay in one depth plane” or “manually scale things up and down.” Ugh.

The guy on the left is what happened if you walked back and forth toward the camera and didn’t account for it:

KinectToPin - AutoZ 1

KinectToPin - AutoZ 2

The little expression I came up with this morning turns the same character with the same mocap data into the guy on the right.

Keep in mind this is an experimental feature and at the moment only works for camera-facing characters. It won’t be added to the UI Panel until I’ve worked out the necessary layer space transforms and a couple bugs. In the meantime, if you’d like to try it out, do the following: The new code will be added to the UI Panel shortly, but if you’re eager to try it out, here it is:

In the 3D template, set this as the “mocap” layer’s position expression:

mocap = thisLayer;
try{cam = thisComp.activeCamera;}catch(err){ cam = mocap};
torso = mocap.effect("torso")("3D Point");
tW = mocap.toWorld(torso);
fW = cam.fromWorld(tW);
[value[0],value[1],value[2]+(1500-fW[2])*2]

I swear, it seems like the main thing I’ve been doing for the last year and a half is finding ways to make people’s heads stop flying off. This is yet another.

One thought on “Keep your head on: Automating scaling in KinectToPin with Z-axis data”

  1. Hello Victoria,
    I am so confused.. I downloaded all the software and drivers to get Kinect to pin to show me more than a black screen when recording motion. Then I tried using Synapse with it which works perfectly for liv animation with Animata as does NI MATE but for some reason I cannot get my mo cap figure to appear in Kinect to Pin.. Ive got a huge animation job ahead and am new to programming,… help??
    Running of an IMAC. Is there anyway to by step Osceleton, Processing etc and simply connect KInect to Pin with Synapse or NI MATE?

Leave a Reply