I’m finding that a character / character limb will interact poorly with (won’t push) a PhysicsObject if the bones doing the hit have any amount of physics blending applied to them. No amount of CCD, physics substepping, or other tweaking is fixing the problem. The amount of physics blend on the hitting bones can be as low as 0.0001 - any amount over zero seems to generate the same behavior. If the blended limb is used to slowly push the physics object - that object might rise until it is above the limb, letting the character pass underneath it. But in general the blended limb can not push the object on X and Y unless the user gets very lucky. Usually the limb passes thru the object, maybe disturbing it slightly in the process.
[Here is a simple test project demonstrating the problem.]
In this example the state machine has been frozen so the character will slide around while in a static A pose. The majority of the character has no physics blend enabled and the collision capsule is small in radius so the arms protrude. The Left arm (from upperarm to hand) has a very slight amount of physics blend enabled.
Play the project and use the right hand/arm to push the tall cube physics object around. This behaves very nicely. The left arm with blended physics - not so much.
The project is using PhysicsCollisionHandler and the character is configured to use its PhysicsAsset.
The issue of “Setting Physics Blend Weight to anything between 0 and 1” has already been reported as UE-19252 (I tried this with your sample with the blend set to 1 and it did work as expected.) Hence, I added your example and repro steps to further illustrate the issue and report that community interest has increased. You can expect this to be addressed in a near future version of the engine.
Thanks for providing a great sample and concise repro steps!
Great to hear this - thanks much.
What is my reason for using a Physics Blend of 0.01 on a character PhysicAsset? It is a hack to generates collision hit events when the character mesh collides with static objects.
With a blend of 0 the character mesh will push PhysicsObjects and generate Hit events. But collisions with the static objects typically used for walls and furnishings are completely silent. It is odd and seemingly computationally wasteful to add 0.01 blend to the character just to get more hit notifications - and the blend has unwanted side effects.
Of course the character feet are probably always on a static floor object and that could result in annoying hit events that I don’t want. This seems easy to fix by identifying flooring as flooring using a tag or special Collision Preset designed for the purpose.
I suspect that Epic might tell me to make a feature request but from this seat it feels like a bug - not getting hit notifications when a user controlled animated character mesh is colliding with BlockAll objects.
While this issue has not been forgotten, I have made a note in the bug report that community interest has increased. Thanks for the feedback!