[Request] Character: allow non-Root components for the main collision detection

Hi, talking with other UE4 devs I saw I’m not the only one who wants this: it would be nice that there was a bool to active or deactive this: allow that any component, not just the “[ROOT]” one, is taken into account for collision detections in a Character (or other blueprints).

Until now I’ve faced the problem that secondary capsules, the mesh, or wathever component in the Character that is not the root, only fires collision events if the RootComponent is also firing them.

In my case, to try to solve that, and suggested by Doublezer0, I’m using a huge Root CapsuleComponent that is bigger than the character, so all the secondary components’ Hit events will be processed if it blocks into another character because the Root is bigger and will be colliding too. This works but the problem is that there’s headaches with world and other actors collision with this huge capsule, as it has to be blocking in order to allow the other components to fire Hit events and prevent the character from falling as it didn’t have collision (even if the secondary components are blocking ones).

So, returning to the main issue, I think it would be great to add a bool that lets us choose if we want to stay with only the Root CapsuleComponent being the dealer of the collisions or want to allow any component inside the character (or at least those we choose) to participate in collision events like Hit.

2 Likes

Any comments?

I would love this.

The problem with the root Capsule Component is that it can’t be moved. You want to position your capsule around a mesh, not position your mesh inside a capsule making everything off-origin.

If it were reasonably easy to apply some form of displacement to all actors, then there wouldn’t be a need for this. Im getting tired of dropping my characters into the world and then having to re-place them because fitting them inside the capsule makes them clip-through terrain geometry.

I’ve been trying to make a child component trigger collisions (use as a trigger, not actually a blocking trigger), but after reading this I realize it is not possible. Good post and great request. I’d definitely want something similar.

this would be extremely useful. I really hope this is a feature eventually.

i wish you could set a property on any mesh or collision component to bWeldToRoot, adding it to the root blocking collision shape of a pawn, but so far, pawn movement components only recognize 1 collision primitive at a time. currently, there is no good way to add components like wheels or legs to a pawn, and have them physically stop the component from penetrating.

without this feature, making something like kerbal space program, or banjo kazooie nuts and bolts, is impossible with out creating custom movement components in C++.

I posted a Feature Request on the forums:

1 Like