Align Orientation Align Type Ignoring Direction

I’m working on a custom character and I’m using an AlignOrientation instance to handle the characters rotation. The AlignOrientation’s AlignType property is configured to PrimaryAxisPerpendicualr which causes the AlignOrienation to face away from the camera while only applying torque around the Y axis.
The AlignOrientation’s CFrame is set like so: alignOrientation.CFrame = camera.CFrame every frame

My issue is the AlignOrientation doesn’t seem to care about the look vector of the cameras CFrame and will align the front or back of the character (whichever is closer) to the target axis. I’ve attached a video which showcases the issue and a screenshot of the AlignOrientation’s properties



To reproduce the issue, join this experience and flick your camera 180 degrees really fast

2 Likes

I also have this issue 2 years later. It seems to be a built in behavior. But why would it? It’s not aligning the orientation in that case.

Its behavior is so weird, I never ended up solving it directly. I stopped using PrimaryAxisPerpendicular and instead switched to AllAxes while manually calculating how I wanted the character to align.

Two years later looking back at the docs, there is PrimaryAxisLookAt and i’m not sure if I tested it but it might be worth a shot. Also might be a good idea to try out a BodyGyro since I believe it handles this case correctly (although its deprecated)

The modern body movers are extremely buggy and inconsistent. Most of the time I’ve attempted to use them over the years, I’ve gotten frustrated and ended up going back to BodyGyro/BodyVelocity because they’re actually reliable.

Kinda ridiculous really.