Is it possible to get Hit Events from kinematic (non-simulated) collisions?

Hi everyone,

This is my situation.

I have a sphere collision component within my character that I want to receive OnHitComponent events for when it collides with any static meshes in the game world, such as the walls/floors/props/etc.

This component is attached to a hand bone in my character that moves with the bone when I perform a melee animation. Hence, this animated motion, and subsequent collisions, are being driven kinematically.

I have ensured that both the static meshes in the world and my sphere component are set to “BlockAll” in their collision preset, with collisions enabled.

However, I have discovered that the only way for me to actually get hit events is if one of the two colliders is “Simulating Physics”, and the sphere is set to “Simulation Generates Hit Events”.

However, I don’t want the meshes in the world, nor the sphere to have simulated physics. I simply want to detect a collision.

One workaround is to setup the sphere to detect an “overlap” instead. This works fine, but I would much prefer a hit event, because I don’t want to have to set every single static mesh in my world to “Generate Overlap Events”. Also, I’ve read that hit events provide more data than overlap events.

I have read mixed messages on this topic from the forums and the documentation, so I’d like a definitive answer on this if possible.

Can I receive hit events on components when I’m not simulating physics, or is the ‘hit event’ feature limited to ‘simulated physics’ objects only?

I have a similar problem with my kinematic setup. Had you solved your problem, after all?

The hit event is not limited to physics simulated bodies. You can test this for yourself by kinematically moving two simple cube actors into each other with an On Hit event set up (assuming they BOTH have the same collision channel set to be Blocking; if either one has Overlap then it will fire Overlap events but not Hit events).

I am not sure why it is not detecting the Hit from the Component though. It may be that the Root Component has to be moving (i.e. the Actor itself has to be moving) in order to detect any collisions. I’m not sure.

Have you tried making the weapon a separate Actor attached to the socket, rather than a Component of the same Actor?