Soft angular constraints solve velocity like hard constraints

Hi,

For constraints with soft angular limits, the angular velocity is solved like a hard constraint, which prevents the kind of springy motion that you would normally get from a soft constraint. That used to be the case for soft linear limits as well, but was fixed a while ago by this change: https://github.com/EpicGames/UnrealEngine/commit/ed20624aed46b7834eebfceb51d98b1d6169b10c I wonder if an equivalent change is required in FPBDJointCachedSolver::ApplyAngularVelocityConstraints()?

Best,

Max

Steps to Reproduce
Create a static mesh actor, enable simulate physics.

Create a physics constraint actor, set constraint actor 1 to the static mesh, and in the angular limits section: swing 1 motion = limited, advanced > stiffness = 0.1, advanced > damping = 0

In the level blueprint, on beginplay, set physics angular velocity in radians to 0, 0, 10 on the static mesh

Instead of rotating past the 45 degree limit and springing back as I expect, the body just stops at 45 degrees.

I have observed the same behaviour. I solve it by using motors on the constraint. Maybe the stiffnes is a leftover from physx .

Hello [mention removed]​

Thank you for reaching out and bringing this issue to our attention.

I was able to reproduce the described behavior.

I also noticed that if the Physics Constraint Actor is not perfectly aligned to the Static Mesh on the X and Y axes, there is angular movement.

I’ll investigate more before making a bug report, and I’ll share the trackable link once I have it.

All the best,

[mention removed]​

Hello [mention removed]​

I’ve made a JIRA report at: Unreal Engine Issues and Bug Tracker (UE\-305724)

Please note that it can take some time to be made publicly accessible.

We don’t provide updates on EPS, but if you would like to track the resolution, check the link for the status.

I believe we don’t have further actionable issues, so I’ll close the case.

Feel free to reply if you have anything else to add.

All the best,

[mention removed]​