I just tested this in 4.11 3rdPersonTemplate using the below setup. The Normal / Impact Normal that OP mentioned output correctly. Could you provide repro steps and/or a test project showing the results that you are seeing?
I had the same issue while trying to get multiplayer networked – the ComponentOverlap hit result for the server would work fine, but the clients wouldn’t. If the ComponentOverlap doesn’t fire immediately, then the 2 areas can merge slightly. In this case, there are infinitely many overlapping points so it chooses (0,0,0) for vectors. I solved this by having a point on my projectile that it chooses if the location vector is (0,0,0).
Hi everyone I have the same problem I’m using ue 4.14.1 and coding in c++, SweepResult values are not populated although the overlap event occurred also I happen to know that these values can also be invalid for example impact point is not correct as it says that overlap occurred next to component bounds. This is happening only in certain situations for example if there is a frame drop just before overlap, when another application becomes active just before overlap event, when UE editor window loses input just before overlap event, when you drag and move UE application just before overlap event, this is also true for packed project when App looses focus just before overlap event, when you drag application window just before overlap event
EDIT: This also happens when your objects begin play close to each other
And here where the values are incorrect impact point X should be 466.0 and not 466.000031 this is also true when object moves very close to the other object OverlapEvent is fired although objects do not overlap
You would probably have better luck getting help with this is you posted it as a new question in the C++ section of AnswerHub. Feel free to include a link to this issue so other know a similar BP issue has been reported.
Overlap takes place as collision volumes occupy the same space, not on contact.
A “Hit Location” isn’t given because it would be a ‘volume’ rather than a point location.
– Solution.
Duplicate the Overlap volume as a Hit volume of a slightly smaller scale (disabled collision by default)
On the Overlap, enable the smaller volume’s collision and trigger a ‘growth’ in relative scale using [x] Sweep.
It will eventually ‘Hit’ the same object that overlapped the original, and will have a hit location/normal to use.
–
If precision is important (must hit an external point) - you can use the normal and the hit location to solve for a vector pointing back at the colliding object…
Tracing in on that vector to the “Overlap” volume to find the point it would have hit on that volume.
(^ this part may not make as much sense as it does in my head, I’m caffeine deprived)
According to the code (OverlapInfo.h), if the From Sweep pin is outputting False, then none of the Sweep Result pins are valid other than the Hit Component, Hit Actor, and Hit Item.
When moving the actor I think you’ll have to ensure sweeping is enabled on whatever moves it in order to get anything out of the sweep result. For example, the Projectile Movement Component has an explicit “Sweep Collision” option: