For both Physbone versions 1.0 and 1.1, the world immobile behavior has been reliant on ignoring any position data from the root of the avatar, but the main issue is that it still inherits the model's rotational velocity. The idea I would like to propose is something that is in the newest version of Magica Cloth 2 which is to have a game object's transform be referenced as an anchor in relation to the assigned root transform for the physbone. The idea of having an anchor referenced can help with the issue of physbones and calculating rotational data for the scripts to ignore. For the world immobile it could grab the avatar descriptor and auto assign that as the anchor point for the physbones to ignore, allowing IK transforms and animations to behave properly. Best way to sum up the idea is:
  • All Motion:
Reduces any motion as calculated from the root transform's parent
  • World Immobile v2:
(old method) Reduces position movement from locomotion, any movement due to animations or IK still affect bones normally.
(new method) Reduces any motion based on the avatar descriptor's location in the hierarchy, any movement from animations or IK still affects bones normally.
  • Anchor
Reduces any motion calculated in relation between the root transform and the anchor's transform, any movement from animations or IK will affect bones depending on the anchor's location.
Edit: Basically like with the new VRC Constraints adding something like a Source Transform component where the physics would be calculated from. This in turn would make it so if you were to freeze a physbone component in World Space with the new VRC Constraints, when you move the physbones physics wouldn't be calculated.