There is HAX way of doing it:
- assuming that ALL movement is at tiny distances (not too fast and done on event tick), not too fast is below 250m/second range, so comparable to character pawn running speed
- You have center of sphere, and location of pawn
- From center to location you can create vector, which would be also Normal vector (just normalize it)
- then create flat and perpendicular plane (to that vector/normal) going trough pawn location
- now you have plane of motion, so move your pawn on that place
- after moving ADJUST location of pawn to be exactly diameter of sphere
Yes some vector math is needed, but no gimbal lock and no POLE singularity.
TL/DR:
- on sphere find plane your pawn is moving on, move a tiny bit, adjust radius/disstance from center. Repeat on next tick.