What are the units for angular velocity in Physics Constraint Angular Velocity Drives?

I have a physics constraint driving the orientation of a static mesh using an Angular Velocity Drive, and I’m not getting reasonable spin rates from the angular velocity setpoints I’m giving it. I initially thought the units of the angular velocity setpoint would be deg/s like the rest of the engine, but that doesn’t seem to be the case.

When I input <0,0,0.25> for the target, then use blueprints to print out the “Physics Angular Velocity”, the print out says <0,0,90>. Is the unit of Angular Velocity for a physics constraint really in revolutions/second??? Where does this convention come from? Where is this listed in the documentation? Why is this information not in the hover-text comment over that field in Blueprints?

That doesn’t help me at all.

Hence my passive aggressive tone :stuck_out_tongue:

There is basically no documentation on angular velocity in the engine

The only hint I found is a conversion away from revolutions to radians in ConstraintInstance.cpp line 666. Looks like angular velocities are accepted in units of revolutions per second, then converted to radians/second before going into PhysX code… this is a pretty weird convention considering all rotations are otherwise measured in either degrees or radians (or Quaternions).

Update: The convention is axis of rotation scaled by revolution/second rotational speed. This answer was figured out here: https://udn.unrealengine.com/questions/442004/what-is-unreals-convention-for-angular-rotational.html

ALSO: apparently on FConstraintInstances that are part of a skeletal mesh’s physics asset, the rotational velocity target is the inverse of what you’re probably expecting it to be. The target seems to be defined as the rotational velocity of the parent body w.r.t. the child body?