Hit Bone reversed since 4.11

I’m attempting to update a project from 4.11 to 4.14, and I’ve noticed some strange behavior surrounding hit events.

In 4.11, when I would capture hit events on a skeletal mesh, the hit result contained a parameter, hit bone, which would give the bone of the skeletal mesh that hit something. In 4.14, this appears to be reversed. It now gives the bone name of the bone that the skeletal mesh hit, if it hit another skeletal mesh.

So actor A hits actor B. In 4.11, hit result gave the bone of actor A. In 4.14, hit result gives the bone of actor B.

If there is no info in the hit event’s hit result that gives the full picture, then is there a lightweight way to do this when I need to?

You can see the game I’m converting here: Game Jolt - Games for the love of it

Thanks, everyone

Yeah I guess that makes sense. Am I going crazy? When called on Actor A, it used to give Actor A’s bone. I have a project in 4.11 where this is the case, and when ported to 4.14, it starts giving the opposite.

Hi BrianMay,

I guess it would depend on where the Hit Result was called. In your scenario, is actor A or B calling the Hit Result?

If it is actor A, then the results you are seeing in 4.14 are correct. The Hit Result should return the bone of the other actor.

It’s possible this was changed or fixed with a version after 4.11. For example, if you look through the 4.12 Release Notes it has quite a few changes to bones and a couple for hit events.

Hey guys!

Any details on why it was done so? It is quite uncomfortable in some scenarios (for instance - if you are trying to get the name of the bone in your vehicle, that hit the static wall). Any info on how to revert this behavior will be much appreciated.

There isn’t a way to revert the behavior unless you go back to using 4.11, however; I’m not sure why you were seeing this behavior to begin with. Every version of the engine I’ve used has the behavior that I explained above. Maybe 4.11 had a bug that I didn’t know about?

Most people that create realistic car wreckage in UE4 use a series over overlapping boxes and on overlap they swap (or sometimes morph) different parts of the car to simulate damage.

You may also be able to accomplish this by using a GetClosestPointOnPhysicsAsset based off the BreakHitResult. But you would have to set up your vehicle from scratch to work with this method. You will see what I mean if you play around with the setup in the Advanced Vehicle template.

4.11 had this behavior 100%. I bet previous versions also had this behavior (however I’m not that sure about it).
Thanks for a proposed solution, however it’s not an option for us. We’ve started with this option, however found that making it more or less realistically requires more advanced behavior. We use specially rigged skeletal meshes for our cars and we do need that info, when car hits wall or any other actor that isn’t a skeletal mesh.
Maybe you could advise us where to look in code to revert that behavior? Any advise on reverting it would be really helpful.

More than reverting to the old behavior (which still only gets us half the story) I’d love to update Hit Results to have more information included.

When skeletal mesh of actor A collides with skeletal mesh of actor B, I would love for the hit result to include

  • Actor A
  • Component of Actor A
  • Bone of Actor A
  • Actor B
  • Component of Actor B
  • Bone of Actor B

Right now we get all of this except for Bone of Actor A. But as we’ve discussed, we used to get all of this except for Bone of Actor B.

Where can we request a change this super specific to a function like this? Thanks!

Does anyone has any info on how to revert this behavior (making changes in the code is not a problem)? Really need that