IK skeletal mesh not firing hit events unless hit actor is simulating physics (Blueprints)

Does anyone know why this is happening? I have a full IK skeletal mesh tracking the hmd and controllers. Static meshes simulating physics get blocked by the skeletal mesh hands and fire hit events but the hit events don’t fire if simulate physics is turned off. I expected the hit event to fire and the hand to pass through the object due to the IK animation setting the bone transform to the controller transform.

The skeletal mesh has a Pawn object type, query/physics collision enabled, is set to generate hit events, and block the PhysicsBody object type.

The static mesh BP has a PhysicsBody object type, query/physics collision enabled, is set to generate hit events, and block the Pawn object type.

Thanks for looking!

Same problem…
I’m new here and I have the same problem with a Skeletical Mesh door. Cant set collide to the door… and cant start an onclicked event to it.

Can you please give us a light?

When moving without simulating, are you using Sweep or CharacterMovement?

“Hit Event called when a component hits (or is hit by) something solid. This could happen due to things like Character movement, using Set Location with ‘sweep’ enabled, or physics simulation.”

For further details see
http://www.recursiveblueprints.fun/inside-unreal-physics/

Rigid Bodies
There are 3 kinds of bodies in the simulation:

  • Dynamic(PxRigidDynamic) - These are the standard rigid bodies, affected by forces and collision.
  • Kinematic(PxRigidDynamic) - These are Dynamic bodies that have infinite mass and inertia. If moved with setKinematicTarget they will affect dynamic bodies. These are good for dynamic objects that are moved by your code instead of by the physics simulation. e.g. moving platform. If a body is not simulating physics and is not set to static mobility, it will be kinematic.
  • Static(PxRigidStatic)- This is for stuff that doesnt move. e.g. level geometry. If they are moved, the spatial partitioning structure must be rebuilt (unlike Kinematic bodies) which has a cost. In addition, when they are moved they do NOT affect dynamic bodies. This type of body is created in UE when the Mobility type is set to static. Most of the WorldStatic geometry in the scene is typically Static.

If one or both bodies is Dynamic, then collisions occurs.
If both are static then no collision occurs.
If one is kinematic and the other is Kinematic or Static, then you must move the kinematic with Sweep checked in order for collision to occur.

Thanks for the help OptimisticMonkey. Great link! I now know why the Skeletal mesh doesn’t trigger hits with other kinematic actors - It’s not the root component. I’ll have to settle for overlaps instead.

which system are you using, I need a body on my VR pawn so the AI can shoot and me and I can take damage but I cant figure out how to do it

I’m using mordentral’s vr expansion plugin.

Its not because it isn’t the root component, its because you aren’t sweeping the collision body by setting its bone transforms. You can simulate the bone but set its physics blend weight to 0.0 (locking it to the animation) and it will actually throw simulated hit events though if you really need it mesh side.

Thanks for the input M! I’ll take a look next time I work on that project.

Just open the Physics asset select all collisions, go into details and check the option to generate HIT collision events and collision response.

1 Like

How do you do this please ?