Download

ComponentHit creates Impulse on wrong mesh.

Hi,

I am getting very confused about the OnComponentHit and the Hit breakdown.
There’s two meshes that have physics bodies that in gameplay collide with each other. (think fighting game)
I am currently considering everything happening after/in OnComponentHit to be affecting [self]. I am triggering an Impulse using the hit data** but the impulse always seems to affect the wrong mesh.**
Ie if Player2’s head gets punched in the head Player1’s head gets the impulse. And I am not sure why?

This is roughly what I am doing,

and

For ‘Target’ on the impulse I have tried both OnComponentHit->HitComponent and Hit(broken up)->HitComponent

Does anyone know why this is not working as expected?

Another thing that is confusing me is, why is OnComponentHit->OtherComp == Hit(broken)->HitComponent ?
I would expect them to be opposite and OnComponentHit->HitComponent == Hit(broken)->HitComponent.
(note the ‘other’)

Cheers
Fred

Remember, there can be 2 hits generated for a collision, one for each party.

In the context of that blueprint HitComponent is on the self, other component is on other actor.

Yep I have been checking for that. Still the impulse should not be happening on the wrong head in a hand-to-head collision, as it is clearly visible which head is being hit.

So a great way to troubleshoot is to print out the hit component and the other component to the screen

Yes I have been doing that and other verifications, which is why I came to the confusing conclusion in my final OP paragraph.

But it seems like the vars, like Hit Bone Name on the breakout ‘Hit’ struct refers to the [other], ie not self.
Which means that I cannot assume that what I am doing in the blueprint is intended for [self].
Ie I have to build it as if it is a hit on the [other]. (since there’s no Bone Name var for [self])

EDIT: After realising that Bone Name also referred to [other] then it all seems to have fallen into place. But I had to do some extra stuff to set my partial ragdoll stuff also on the [other].
Once I did these things it all seemed to start working.