MultiSphere Trace hit result not returning Impact Point

I’ve been trying to get the actual impact location from a MultiSphere Trace in blueprint but without success. In the first image you can see the Impact point (black dot) which I get from the Break Hit Result(FHitResult) and the sphere start/end point(green) + bounds (red). I’m expecting the black dot to be on the wall showing the actual collision point instead.

I’ve tried setting TraceComplex already but still get the same result. The Location is the same as the impact point. I can get the bone names, actors etc correctly against skeleton meshes but the impact point still always stay at the sphere origin. Wonder if this is a bug or me doing it wrong? I’ve attached the blueprint below.

Thanks.

4295-impact+point+%282%29.png

I’ve had the same problem with my traces too. If the object touches the far trace object it comes back with the actual hit location, but if it hits the starting trace object it returns the center of the object (or the start trace location ) and not the hit location. I’m not sure if its a bug or just how traces work (I don’t really have a lot of experience with traces).

If I use MultiLine trace it works fine and the impact point will be at the wall.

Hm it does indeed seem like a bug, it’s as if the only part which results in a correct Impact Point is in between the hemispheres.

Also you do not need to draw a debug point as it is supposed to do so automatically when you select a Draw Debug Type.
Could you report it as a bug in the Bug Reports section?

edit: it also applies to the Multi Capsule Trace

I’ve opened a post on the bug report section in answers.

One of our internal technical artists ran into this recently as well, so the good news is that it’s already on our list to fix. Sorry for the trouble!

Thanks!
By the way I tried it with C++ and have the same problem using GetWorld()->SweepMulti(…). Posted on the answers page.

Still running with this BUG, I saw many and many topics in this forum and in UE4 Answer Hub, some staff says that is a Bug indeed, but others just say is not a bug.

I tried many different ways to get this work, the component begin overlap don’t work with Sweep Result->Impact Point.
Now on in same case of this topic, if the Start Sphere gets the HIT, it just return the trace origin point instead the Impact Position! If this is not a bug I don’t know what it really is!

Other similar topics:

https://answers.unrealengine.com/questions/30952/multisphere-trace-fhitresult-location-same-as-impa.html
https://answers.unrealengine.com/questions/358247/beginend-overlap-going-weird-again.html
https://answers.unrealengine.com/questions/421052/sweep-collision-doesnt-work-if-the-start-loc-and-e.html
https://answers.unrealengine.com/questions/437970/sphere-trace-for-object-impact-point-is-false.html?sort=oldest

Note that if a sphere sweep starts overlapping, it can’t generate an impact point, because there is an overlap ‘volume’ not a single point. Zak M replied with this info in one of the AH threads you mention, and added a flag to Break Hit Result so you can know when that case occurs. Hopefully that helps!

1 Like

Thank you for the information!

Do you have a tip to do for get the impact point with precision? I don’t know if exist like an sphere trace that changes its radius or something like that?

Hey guys,

So I just bumped into to this issue, I did some testing and No the spherical Trace does not output a hit location it does output an Hit Normal. Inverting this will give you a vector that points to the location that was hit. So after you get a Hit from the Sphere Trace you can do a line trace in the direction of the hit Normal with the length of the Sphere Radius. Which will look like this:
Skip the Loop here and have the Variable that will be your Radius for your Sphere Trace also be the Value that you multiply with the Out Hit Normal and then Subtract from the Original Trace Location.