As a final project for my Intermediate Graphics class this semester, I decided to write a plugin for UE4 to help facilitate the art-to-screen pipeline by giving artists and level designers an easier way to lay out large scenes by tiling objects.
Mesh Placer allows the user to easily select any static meshes currently in the level and tile them a user-defined number of times in each axis. Depending on the dimensions of the object, the user can also choose to offset each copy of the object by a number of units (cm) in each axis. In the demonstration posted below, the floor tiles were tiled 30×30 with a 100×100 offset on the X and Y axis while each cluster of table and chairs was tiled 4×4 with an offset of 500×500 on the X and Y axis.
The plugin supports undo/redo commands if you want to test out some values to see if they produce the result you are looking for as well as a mesh merging function. I used the Unreal Engine mesh merging function library included in the source code to write my own mesh merging function for this plugin. It’s a simple one-button solution that merges all the meshes you tiled together into one mesh. This is important if you plan to use a tool like this for a large-scale game where rendering optimizations become critical. By merging all the meshes into one, it makes both mesh rendering and lighting calculations much simpler as Unreal only needs to calculate those for one mesh instead of 10, 50, 100, or however many you’ve tiled.
In the example scene posted above, there were easily over 1,000 separate meshes once I was done tiling, so the ability to merge meshes together could increase performance greatly.
If you would like to check out the source code for the plugin, here is a link to my GitHub repo with all the files you need to test it out or install it yourself.
Leave a Reply