When rotating your head with DK1 or with DK2 but without positional tracking a neck model is applied to incorporate some natural movement. It is however not clear where the pivot is. You would think you can just centre the rig on where you want the rotation point to be but the actual pivot seems to be behind it. To illustrate, looking forward the eye cameras are beside the rig. Rotating right you see the eyes move back and their position with respect to the rig changes:
If you rotate all the way to look behind you you see the effect best. I added some debug lines to show the distance from their original center:
This is not a problem until you put the rig on an avatar. Starting out your head is above the neck. But when you look off center, suddenly you are floating beside your body, even if it rotates with you! This is even the case in Tuscany which i used to make the screenshots, but there it isn't visible because your body has no mesh. You could see it because the camera position changes with respect to the collider, so looking at different angles you can come a little bit closer to things.
So experimentally i found that the pivot seems to lie about 0.06 units behind the camera rig's position, give or take. But why is it there? The neck measurements from the config utility are 0.075 units vertical and 0.0805 units horizontal. As an aside, it's unclear how you would get these values. The statements below both return defaults, even if i change them in the config util:
But, even if i leave them at the defaults then how would i use them to compute where the real pivot is? Or is there some other function i'm missing? In my specific case i don't minde the head floating off because the user leans in any direction, but i do mind the head changing position with respect to the body when all you do is rotate your head.