I am on a journey of trying to make semi realistic neutonian space phyiscs, one of the things I decided on making is turning ships with vector forces offset from center of mass, rather than using allign orientation.
For both strafing and turning (to stop ship from sliding around), I needed a reliable way to measure ship’s local velocity and local angular velocity, relative to it’s look vector and roll.
Regular local velocity was pretty easy, I just used:
local LocalShipVeclocity = VehicleSeat.CFrame:VectorToObjectSpace(VehicleSeat.Velocity)
I’ve tried the same for angular velocity:
print(VehicleSeat.CFrame:VectorToObjectSpace(VehicleSeat.AssemblyAngularVelocity))
But getting angular velocity local to ship seems to be more complex. What I am trying to get is a vector 3 like this:
That’s what I am trying to get, but instead, angular velocity of an assembly is measured relative to the word, rather than it’s own roll, pitch and yaw.
Essentially I am trying to get turning rates in every direction to counter them with forces.