BioShock – Level design project – Lighthouse

Hello there,

In this post I’ll be briefly going through some of the static meshes that I modeled for the Lighthouse and exported to UE5 as part of the Bathysphere Maintenance level design project.

Recreating the Lighthouse

As I showed in the previous post, I used reference images as a starting point to recreate the individual meshes that the Lighthouse is made up of. I couldn’t be sure if some of the original Lighthouse was made from BSP alongside static meshes (which I assume it was) so I mainly worked in Maya to recreate what I could and then tested in Unreal.

I’m pretty terrible and organic modelling so I didn’t attempt to model any of the statues or busts of Andrew Ryan that are part of the lighthouse but managed to find some fan versions which worked for setting the scene. The gallery below shows a sample of some of the recreated meshes:

Fig. 1 – Selection of remodeled static meshes for the Lighthouse

Metrics and scale

At the beginning of the project, I made sure to setup Maya to match Unreal to allow me to set my base player dimensions. I used the following:

  • 1uu = 1cm or 1 grid unit in unreal
  • I left Maya in centimeters and adjusted my grid to allow for grid lines every 100 units and subdivisions every 10 units.
  • I used “scale guy” for my character scale reference. Scale guy dimensions are:180h x 50w x 50d  

As I modelled, I kept “scale guy” in my scene for reference and then I would export to unreal periodically to check that I was being consistent with scale.

Testing In Unreal

Fig. 2 – Testing in Unreal

Vid.1 – Testing assets
Vid.2 – More testing assets

Collison’s in UE5

Some of the assets I created for the Lighthouse didn’t particularly behave too well in UE5 when generating collision meshes. As an example, the outside stairs which lead up to the lighthouse produced odd results when generating collision meshes within the static mesh editor.

Fig.1 – Auto generated collision in unreal

To resolve this, I created some three custom collision meshes in Maya for the stairs (fig.2). Unreal requires a specific naming convention to be used for these meshes, the prefix being UCX_. This specific prefix allows unreal to distinguish between normal in game geometry and collision meshes during the import. For example, the stairs for lighthouse are named ExternalStairs so I used UCX_ExternalStairs_XX for each collision mesh (in this case there were three pieces).

Fig.2 – Three custom collision meshes

Well I think that wraps up this post. My next posts will focus more on setting up some events using blueprints and my level design process.

I’m always trying to get better to any feedback is always appreciated.


Leave a Reply