I set the upvector to (0,0,-1) and I’m getting more of the results I would expect but there are still some weird stragglers in the group, look at the slight roll in the center column midway down
I thought the point of the lookAt function was: given an object and an arbitrary point in space, make the object face that point in space
That makes me think there shouldnt be roll involved. I guess the function I’m imagining takes an up vector and a forward vector for the object it’s reorienting
You could also do this with a Quaternion;
take the vector they are facing before the transform ( 0, 0, 1) as argument one and the vector between the target and their position as argument two.