Download

Can't get hit event to fire.

I have the following setup:

All actors use ‘simulate physics’ set to off and all use the ‘Block All’ (incl pawn) collision preset. My Hit events will just not fire and I have no idea why? As soon as I switch ‘simulate physics’ the ‘event hit’ fires just fine.

Overlap works fine as well. Is this expected - hit events only work on physics? It might be a trivial question but would like to get it confirmed so I’ll stop digging around here… :slight_smile:

Thanks for input!

Hmm, looks like google actually gave me a good match this time (promise, I did do a search :)):

https://forums.unrealengine.com/showthread.php?15258-Event-hit-dont-fire-when-one-Actor-moves-into-another-Actor

This user has the exact same problem - without physics hit events won’t work, and with overlaps I can’t get hit normals - which is the main reason I’d want to use a hit event.

There doesn’t seem like there is a good solution (?). I can do a trace from my pawn to the overlapped object to get the normal but my pawn and blockers’ shapes are fairly complex and I’d need to trace to and from the hitpoints to be sure I get the correct hit normal… so AFAIK the best option I have is to break up my pawn into small components (so that I can trace from at least a slightly better starting point) and also the same for my blockers. I assume the starting and end point for the trace will be from the transform points so there’s a chance a complex shape will return a normal that’s not close to what I’d need.

I really do think there should be a way to get better hit normals without having to use physics though.

:confused:

I am posting here again to explain my problem better in case it’s solvable after all (Rama just made me hopeful…).

My blue pawn hits the green obstacle, a ray is shot out but towards the RootComponent of the obstacle in question and therefore returns an unwanted (marked as ‘actual’ in the image) normal.

OverlapProblem.jpg

This is what I have at the moment, it’s a problem as I’m forced to break my map into small components to get slightly better traces (the trace can go to the pivot of a component).

Thanks.

hi
it will be helpful if you can post a screen shot of your blueprint ( hit event and trace)

Didn’t post any BP’s since I’ve been and am away from my working comp. I’m not sure how useful it’ll be though - the hit events won’t fire unless it’s a physics object, my setup just has an overlapping object with ‘generate hit events’ checked on, which doesn’t do anything unless it’s a physics object (tooltip and manual confirms this). Pretty standard setup.

The trace just traces from pawn actor to overlapped component and functions as expected, but it shows the basic problem above. I can’t trace to the hit location as I know of no way of getting that info but I can trace to the overlapping component’s location which often gets me the wrong normal for reasons illustrated above.

I can’t get hit location through either hit event or trace, what I’m hoping for is a fundamentally different solution.

Do you think I should be able to get a hit point, or the normal at the hit point somehow (named ‘Wanted returned normal’ in the pic above) without using physics?

without physics impossible , you need hit events or trace , but for trace you need to build a complex traces system to detect collision and get what hit events gives you .

Well trace won’t actually give me an accurate hit point, nor a normal at the overlap point… and traces don’t return hit events, they return a hit result which does give me a hit point (aka impact point) and normal. Both will be wrong data, not at the overlap point, for reasons mentioned afaik.

I can randomly shoot traces out in the general direction towards the obstacle and see which one is the closest to my pawn, but I’d have to hide those nodes from anyone looking over my shoulder as it’s such an embarrassing hack. E.g in the pictured example above I’d have to cover a 180 degree angle to get a decent hit point vector with certainty.

At the moment it’s my only idea though, apart from just saying I’m happy with dodgy collisions that may or may not cause whacky gameplay.

I think I’ve found the first thing I can’t elegantly do with UE4. Not bad really.

I changed my pawn to a character and now the capsule that pops up as a result sees collisions. I’m trying to add multiple capsules now but those don’t fire hit events, the settings are the same as my capsule in the same character BP that does fire hit events. Is that expected?

The second capsule also causes some wonky behaviour when moved in the component editor part - it rotates the whole character when translated live (dragged). Setting the translation values by typing in number is fine.