Why do people say they encounter gimbal lock in engine when that should be impossible?

Title. It seems like a waste of memory to use quaternions as its seemingly impossible to even intentionally cause gimbal lock unless you were to use an actual gimbal, or base 1 axis off a completely different space than another (Like in a gimbal, worldspace, then object space twice off 2 different objects) See here for more details: Gimbal - Wikipedia

I’ve encountered gimbal lock so many times this post wounds me.

You’re right that it shouldn’t be happening in the engine. But it happens anyways.

It’s a very inconsistent bug. But when it starts happening, it will keep happening until you fix it. Typically any object with a child component could gimbal lock. The fix could be simply, remove the child -> readd the child. Or it could be adding a new object to the hierarchy like a scene component.

Why would you think quaternions are a waste of memory? They only take 4 float values, should be fairly optimized in terms of memory (e.g. compared to matrices).

Ah. That makes sense that it makes no sense but happens anyway, if that makes sense.

@Bits360 i am currently struggling with Blueprints and gimbal lock and no solutions…

have an external USB device that sends 6dof location/rotation to UE. setrelativelocation works fine, setrelativerotation, however, will flip like crazy on the 180’ axis due to gimbal lock. no apparent way to fix this. i cannot use addrelativerotation due to this being a sensor data not an button input

Very easy to fix, you can use quats in blueprint.

1 Like