Disable transform inheritance for rigidbody

By default in Unity3d transforms that have attached rigidbody still inherit position and rotation changes from parent. Is there a way to somehow disable this behaviour, other than breaking the hierarchy?

Here is an example when this inheritance movement is unwanted:

I have a ragdoll on my character, and the character holds weapons in his hands, that have free moving parts. I have animation for the character, and thus for the main part of the character body isKinematic is turned on, but I want the weapons movement to be modelled. The inheritance deprives the poor weapon of its inertia, making it follow the hand. But breaking the inheritance will also cause me problems, as sometimes I want to manually set local transform for the weapon.

A bit lagging video example. The weapon sure behaves badly.

Pretty obvious workaround is making the “clones” of the weapon outside the hierarchy, and than copying their global coordinates on the actual weapon objects, but the situation seems rather standard and so it seems there might be a better solution to it.

Hi @sadenly. A related topic actually just arose internally today. If you’re wanting the handle the character is holding to be animated, and only the dangling part to be physical, you should be able to simply unparent the physical parts when the game starts. Physics are ultimately calculated in world space anyway, so your joint’s definition at creation time (i.e. when the game starts) will not be affected by your transform topology.