top of page

Collision Design

Improving Movement and Feel in a First-Person Shooter

Problem

In the past, when creating assets, Unreal Engine's auto-collision generation was accurate enough. In my recent efforts to develop my design skills, I created a fast-paced, low-gravity game series called the Teka Games in UEFN. I created all the environment assets, which were inspired by Tron Legacy. The assets needed to have much more accurate collisions because the movement mechanics leaned on mantling, grappling, and wall-running (more recent additions to Fortnite’s movement abilities). I found that with the auto-collisions, these actions were occurring offset and in unexpected places from where they should be. This proved very frustrating in gameplay.

This diamond-shaped platform is an example of an asset I was having collision issues with. In this image it is the fixed version:

GrappleMantleSmallv1.gif

These are other assets I eventually created, also with custom collisions.

Here’s an example of how the collisions were auto-generating in Unreal Engine.

image.png
image.png

Options and Challenges

Initially, I attempted to manipulate the auto-generation to get the results I wanted. I tried the K-DOP Simplified Collision Generators. This didn’t work at all. I then tried the Auto Convex Collision and applied a few settings, trying the extremes to see if I could get something decent. The resulting geometry was wasteful and still not accurate enough. I figured there must be a way to custom-design the collisions, so I started researching. 


I found in the Unreal Engine documentation directions on how to import a custom convex mesh. I figured this would be the best method to implement in the long run to achieve precise, controlled results.

UE Documentation:

image.png

Asset Naming In Blender:

image.png

This particular diamond mesh was in two parts, and the top part worked immediately. But the bottom did not. I started by reshaping the tip and letting it extend to a point in the collision. I figured maybe the engine was interpreting that as a non-convex structure, and it worked. Since this extended point would have no negative effect on gameplay, I didn’t spend any more time trying to match the diamond's shape exactly.

Final Solution

This is in Blender. The left is the model and the right is the collision mesh.

image.png

How it ended up importing into Unreal:

image.png

If I were to adjust anything now, I would pre-triangulate the bottom half in Blender. Unreal, added some unnecessary triangles when it triangulated the quads. This is a view from inside the mesh.

image.png

Thanks!

bottom of page