Download

Physics in Actor Space for simulated bones

Hello,

this might sound like a very complicated (or stupid) question, but is there a way or feature to get simulated bones not in world space, but in the local space of the parent actor?
Let me explain:

We have a weapon system, where we attach weapons to the hand bones of our characters. The character has all the required animations for walking, shooting, reloading, etc. The weapon has animations for shooting and reloading, but only in local space of the weapon and only for features of the weapon that move in these animations (like the magazine when reloading). The weapon itself doesn’t move during these animation, as the actor is directly attached to the right hand of the character. So far so good.

Now comes the problem: Some of our weapons have some loose parts, like chain links or pieces of cloth attached to them. Those should be moved by physics.
I tried using simulated bones in the physics asset, but it seems the moving parts are way too small for PhysX to handle them correctly. When the character moves fast, the chain links start to disconnect from the main mesh or simply jump around weirdly. The best description would be “going crazy”. It seems especially movements along the Z axis are a problem, as these moving parts are especially prone to go crazy on stairs or ladders. It seems the problem is mostly that all the calculations are done in world space. Which is normally a good thing for physics calculations, in this specific case I am mostly interested in the movement of the character via animation, not his translation in the world.

Next I tried to use relatively newly introduced Anim Dynamics. This time I have the opposite problem: As Anim Dynamics are only local space of the animating mesh, it is absolutely impossible to get anything on a weapon moving, because all the moving is done in it’s parent actor, the character. The weapon itself doesn’t move locally, thus I have no forces applied to the chain links.

What I need is a way to calculate physics in the local space of the parenting actor, or at least converting the component space of the weapon relative to the component space of the character in the AnimBP right before the Anim Dynamics. Unfortunately I have not found a way to do this.

So if anyone has an idea on how to handle these kinds of issues, it would be nice to hear it. I already spent a few days on this feature without making any big progress.

Emanuel