Hi, I’m having trouble understanding collision and when hit events are generated inside unreal. I made a scene with 2 skeletal meshes A with collision as on picture, I then have 4 scenarios:
- An actor B1 thrown into a scene with InterpToMovement (generates hit events)
- The same actor B2 grabbed with a physics handle with simulate physics enabled (collides but doesn’t generate hit event
- Actor B3 attached using AttachActorToActor to my pawn (doesn’t collide nor generate hit events)
- Component C attached to the camera of my actor (doesn’t collide nor generate hit events)
Why doesn’t hit event fire for the last 3 scenarios? How do I attach an actor to an actor so that it generates hit events?
I’m attaching an image with collision setup + a video that shows the problem
Can you show the actors setup?
Is the collision the root of your actor that needs to generate the hit event?
For pawn movement there’s a primary collision. This collision is the only one that will “Block”. You can see this clearly in all the character projects… Third person and first person provided by Epic games.
All other collision components added to the character will only provide “overlap” results/returns.
Actors w/collision that are “attached” to the pawn will interfere with the movement of the pawn. Usually heavy jitter is the result. An example would be a weapon attached to hand. Thus collision on these actors must not block the pawns movement collision component.
You should create a custom object channel for the pawns movement collision (e.g. Pawn Capsule). Do so in project settings → collision.
Custom channels enable more granular control over the collision components.
Actors w/physics should be using physics handles.
Hi, I tried setting custom collision channels to the ones shown below but This only caused B2 to work the same as B3 and C, it just started going through A completly ignoring the fact that they are both setup to block each other - still no hit event generated on any of the actors or components. Is there anything that I’m doing wrong?