and move my head forward, the node is moved forward, which from the view of the camera, is moved left.
Ok i belive your head rotations + translation move VRHeadset Spatial(or rather camera controlled by it), nothing else.
Assuming this is truth and assuming VRHeadset is child of ObserverNode:
observerNode.rotate(0, 90, 0)
after this, VRHeadset Spatial when you move your head forward, move left.
And this is Correct! Because Forward for child is globally Left
What is incorrect, seems that camera rotation is incorrect(VR camera front should be now rotated as well). I dont know VRHeadset camera behaviour, but i assume camera lookAt Global position instead local based on what you say.(or maybe you provided somewhere rootNode instead of ObserverNode in VR settings as “relative node”)
You said you cant manipulate camera, right? but when you rotate character left or right, you want camera to rotate center of view as well if i good understand. In this case i would seek answer in VR settings or some VRHeadset setting that would allow change “front camera direction” where you would just copy ObserverNode “front vector” into it.
in short words, i belive Camera rotation is not trully affected by VRHeadset, but have global rotation / look at point.