Up vectors for lookAt node children

This is probably just a simple math question about the upVector in the lookAt method. I have a node that I’m trying to point at a position, but it’s a child of a node that points where the camera is looking:

Is the upVector supposed to be the 0, 1, 0 expressed relative to the node I’m trying to rotate? If so, how do I find it? I thought I could just negate the camera’s up direction but that doesn’t seem to have the correct effect.

What happens when you use 0,1,0 as the child’s up vector?

If I use (0, 1, 0) the child looks in different directions when I move the mouse when I want it to stay pointed in the same direction.

I think the problem probably is that the thing you are trying to look at is in world space. I’m not sure spatial.lookAt() is smart enough to take the world → local transformation into account but I haven’t looked at the code, either. (Looking at code, it doesn’t look like it.) Translation yes, rotation, no.