top of page

Experimentation

01

Experimentation

Map

When I tried to export the map from Blender, I have encountered some issues with the texture and collisions. To fix the texture, I had to go to the export menu, then toggle the copy texture and check the texture button. I have also checked the "Export selected" checkbox to make sure nothing extra gets exported. When the map got exported and then imported to Unreal Engine, I have tried to go to edit mode and apply convex collision to the maximum. because the map got exported into 100 different pieces, I thought that the collisions would match perfectly. However I was incorrect. The collisions took hours to generate, often causing crashes and blue screen of death sometimes on the computer. I have decided to use a different computer at home but also encountered the same issues. After a few hours, the collisions were able to generate. I have tried to move around and test the collisions. The map had uneven and unmatched collisions with sometimes being able to go through the floor. Because I didn't have much time left, I decided to find a simple forest-looking map on a built in plugin called FAB in Unreal Engine. With the map I have found, I have removed all of the built in nature assets and replaced them with our models instead.

​

Technical Achievement: Through this exercise I learned two important lessons about importing geometry into Unreal engine from external applications. The first is that generating convex collision can be extremely computationally expensive for complex meshes. The way my map came in was as 100 individual Blender objects, each attempting to compute a convex hull which, at 100 complex objects, takes far too much time and is incredibly unstable and often crashes the engine. For a walkable environment you should never try to generate a convex hull on any complex meshes; instead, the methods to approach this issue are either to create a simplified invisible mesh in Blender that approximates the geometry and has few enough polygons or to create a convex collision mesh that approximates the geometry of the visible object. It is often better to create the collision mesh separately, since using automatic methods can easily result in a highly inefficient or "blocky" collision. Another method for walkable environments, terrain, can be handled directly within UE5's landscape tool (which can generate walkable collision automatically) or through use of pre-built asset that may include walkable collision, which is what I ended up doing. The second thing that this exercise taught me was the necessity of technical experimentation early in a project and ideally in a throwaway prototype; I ended up spending several days developing an approach to generating collision which ultimately didn't work but a few hours testing this approach in week 1 would have allowed me to plan around this technical limitation.

image.png
Screenshot 2026-05-14 171937.png
Screenshot 2026-05-13 112415.png

02

Experimentation

Building

While creating the building, I faced some challenges with the nodes. Creating the building took some time with the texturing. I had to create all of the parts of the building, then with the nodes, match each piece to the correct block. After spending multiple weeks trying to build it, I have realised I did not have enough time to fully build the nodes together. So instead I have decided to use the front of the building for show, and restricting the rear view of the building.

​

Technical Result: Geometry Nodes is a system of procedural modelling that generates geometry via a node network rather than traditional hand modelling techniques. For the modular building the theory was good; the concept was that I could make a wall panel node, a window node, and a ledge node, and then use instancing to duplicate them down and across the building façade procedurally. Where I went wrong was how materials are applied in Geometry Nodes versus in a traditional mesh. On a normal mesh you can select groups of faces and apply materials to these; in Geometry Nodes you assign them at a certain point in the node network using a Set Material node, and every piece of geometry must have a separate material chain attached to it. Without realizing this distinction my geometry would come out with either no material, or the incorrect material applied to the incorrect geometry and debugging a procedural graph is a much slower process than debugging a traditional mesh because the results are not directly editable. I should have just stuck with traditional meshing for this project, manually constructing each architectural element (window frame, wall panel, pipe, ledge etc.) as a separate mesh object and them joining them together. While this would take me longer to set up I would have had total control over the end result and an easily debuggable system, Geometry Nodes is fantastic, but you need to have spent a lot of time working with it, time that I didn't have for the production, and the outcome is I now know what it is and where I can use it.

Screenshot 2026-05-06 121643.png
Screenshot 2026-05-05 141633.png
Screenshot 2026-05-05 141121.png

02

Experimentation

Robot

Because Alex was very busy with his models, I had to texture the robot. For the robot, I only made simple textures. Making the robot grey/silver while the joints white. While texturing, I thought that I was able to colour the whole thing at once. However, in Blender, you can only texture each part individually if you don't have a UV map. I have applied a texture to each individual party to make the robot.

​

Technical Outcome: What this taught me is how to tell the difference between two very different ways of approaching texturing in Blender. Per-face material assignment – what I did-involves selecting faces in Edit Mode and assigning each face or group of faces to a named material slot. It is quick and easy to set up, resulting in perfectly flat, single color faces. This is good for very simple geometry, or for getting a rough sense of color at the start of development. Every face in the same material slot will look identical-there is no room for surface variation, weathering or grime, scratches, panel lines or anything else to distinguish surface across the area. UV unwrapping-which is the industry standard approach-involves cutting the surface of the 3D mesh into pieces like a pattern of flat shapes (which are then unfolded) and then painting a texture map on to those shapes and assigning the texture to the mesh so that it applies correctly to the surface. This allows for every detail to be put into the 2D image and appear on the 3D mesh-rust streaks, scratches, rivets, dirt collected in recesses in the metal surface and so on. If I had used a metal texture with surface detail this robot enemy would look much better. I used per-face material assignment simply because it was the quickest method in the given time-UV unwrapping an object with multiple parts requires marking and unmarking seams to unwrap each piece and then packing all the uv islands compactly and then painting or acquiring the texture; doing all this efficiently within the time given was difficult to achieve so using the simple method, despite its many drawbacks, was necessary. I would try to build the workflow into the schedule next time, rather than having the choice to make under time pressure.

WhatsApp Image 2026-05-15 at 00.59.47.jpeg
WhatsApp Image 2026-05-15 at 00.48.16.jpeg
bottom of page