Download

Need Blocking Collision Clarification

I just had an enormous amount of trouble generating a simple blocking hit on one of my actors. The issue was resolved by setting the static mesh as root. I previously had a blank Scene Component as root, with the StaticMeshComponent as a child, and nothing would generate a blocking hit (even when I manually tested collision responses). It makes sense in hindsight but I’d like to fully understand what’s going on here.

This actor also has several other static mesh components as children (with the same collision settings) and they won’t generate a blocking hit. Using the same settings, they IGNORE the channels that the RootComponent blocks (overlap events won’t even fire). However, if I set these child static mesh components’ collision response to OVERLAP, then overlap events fire just fine.

My questions are:
Do you need a PrimitveComponent (ie. StaticMeshComponent) to be Root for blocking collision to take place?
Does blocking collision does work on non-root Components?
Is there somewhere I can look that better describes this relationship?

I would love any kind of insight regarding the collision relationship. There is a very good chance I missed something while reading so if this is clarified somewhere in documentation or elsewhere I’d love a link! I’m using the newest version (4.24)