PivotOffset for Hinge constraint in a model uses the wrong coordinate space

This is on a PC, but I'm sure it doesn't matter. I found the bug while investigating what all the XML tags and properties do when creating a custom model.

Example class/models/{name}.xml file:
<ModelBrand>
<PhysicsModel>
<Body
ModelFrame="red"
Mass="0"
>
<Body
ModelFrame="blue"
Mass="200"
>
<Constraint
Type="Hinge"
PivotOffset="(2;0;1)"
AxisLocal="(0;0;1)"
/>
</Body>
</Body>
</PhysicsModel>
</ModelBrand>

In this case, I expect the pivot of the hinge to be offset by (2; 0; 1) in the "blue" frame's coordinate space. However, the pivot is offset by (2; 0; 1) in the global coordinate space instead. If I rotate the model in the map editor, the pivot moves around within the model since the offset is not relative to the model.

Community Manager

Hey @Chris-Nelson ! This behaviour is actually intentional. That's why parameter is called "PivotOffset" instead of "PivotOffsetLocal". World offset is helpful in some cases while local offset is better in others.
Thank you for investigating and pointing this out 😃

I forgot to mention that PivotOffset for the Ragdoll constraint correctly uses the model frame's coordinate space. It is only the Hinge constraint that uses the global coordinate space.

Looks like your connection to Focus Home Interactive - Official Forums was lost, please wait while we try to reconnect.