Moment of inertia reduced from 4.8

This issue first appears in UE 4.9, but I have marked it as UE 4.10, as the issue is still present, and that is the engine version I am currently using.

The issue is that for a given impulse applied to a physics simulating object (not on an object’s center of mass, to produce change in angular velocity), the same impulse induces a much larger change in angular velocity for engine versions 4.9 and 4.10 than it does under exactly the same conditions in UE 4.8 (i.e. the moment of inertia is smaller for an identical object in 4.9 and 4.10).

I have produced a minimal example:
This video shows an impulse of (0, 60000, 0) applied to the physics-simulating object at location (0, 0, 0), slightly below the objects center of mass, in UE 4.8:


This is exactly the same conditions, and the same impulse in UE 4.10:

As you can see, the object is rotating much faster in 4.10 than it is in 4.8, but it’s linear velocity is the same.

I logged the values of the linear and angular velocity after the impulse for both engine versions:
in UE 4.8:
Linear Velocity: X=0.000 Y=399.967 Z=0.000
Angular Velocity: X=399.995 Y=-0.001 Z=2.000

in UE 4.10:
Linear Velocity: X=0.000 Y=399.967 Z=0.000
Angular Velocity: X=696.273 Y=-0.001 Z=3.481

The speed of rotation from this same impulse in 4.9 and 4.10 seems unreasonably high to me, also I can’t imagine any reason to deliberately cause this change with the engine update, so I assume this is a bug.

Otherwise, could someone tell me if there is a way to manually alter a physics object’s moment of inertia?, as my game uses ragdoll physics integrally, and having just updated to UE 4.10 from UE 4.8, all the ragdolls are spinning erratically at the slightlest provocation.

Hi Jonwood,

What you are seeing in the second video is by design and working with what we would expect from PhysX 3.3.3. 4.9 introduced many new Physics features and bug fixes, along with the full upgrade to PhysX 3.3.3.

If you intend to use 4.9 or 4.10, I recommend reworking how you are manipulating your physics object (impulse strength, etc) and see if you can fix the issue that way.

The other option would be to continue developing your game with 4.8. Unless you need any of the new features or fixes of the newer versions, you could stay with 4.8. Or use the Source version and only merge in the fixes that you need.

With that said, if what you mentioned below is far worse than the second video from above:

having just updated to UE 4.10 from UE 4.8, all the ragdolls are spinning erratically at the slightlest provocation.

Please include another video or test project with that specific issue and we can help investigate further.

Cheers,

TJ

Hi TJ,

Thanks for the reply. Having seen your answer, I’ve actually done the same test again with a cube, worked out what angular velocity you would expect, using the formula for the moment of inertia for a cube, and UE4.10 complies exactly with the angular velocity you would expect, whereas UE4.8 doesn’t, so, as you say, what I am seeing is a bug fix, not a bug.

The issue I’m seeing in my game is almost certainly the same thing, it just happens to cause issues in my game, so I’ll just find some kind of workaround.

Sorry for the false alarm!

Thanks,
Jon