Creating One-Way Blocking

Hey all,

Not sure if this is really the appropriate place to post given that I’m looking to avoid having to write C++ code for this (although I’d be willing to do so if necessary).
In past engine versions one thing that level designers seemed to find useful was a blocking volume that was one-directional – Players might be able to pass through the volume, but once beyond it could not backtrack as they’d hit the collision.
Having some kind of triggered blocking generally would work here for singleplayer, but does not seem workable in multiplayer environments.

In the past this was possible to do using sheets, since you could have collision against the normal of the sheet, but players could pass through seamlessly in the other direction. Sheets don’t seem to exist (at least as brushes) anymore, so I’m trying to think about how this can be implemented in UE4. It might be possible to create a brush with manually edited normals, but I’m not sure if that would work. With native level access though it should definitely be possible to hook directly into the collision system and check for collisions manually using dot products to determine whether the directionality of the collision is towards or against the given surface normal.

In the use cases I envision, it’s only player / pawn collisions that would need to be checked against, but if possible I’d like to keep the behavior as general as possible since I’m sure there are uses I’m not envisioning yet.
Anyone have any thoughts on the best direction to explore to create this?

This still works with per polygon collision. You can create a basic quad mesh and in the collision properties of that mesh set it’s collision to use complex collision for simple. It’ll now do per poly collision and let you travel through the backfaces. I’m not sure if there’s a more elegant solution.

1 Like