top of page

Game Environment

Final Fantasy VII Production Process

Adrienne Bulos, Brooke Floyd, Emmalie Hall, Kekoa Hopkins, and Beatrice Wells

Planning

For our Game environment, my team decided to emulate the Belly of the Beast from the Final Fantasy VII Remake. In a very general sense, we split up the work so that two people were covering organic models, two were covering large set pieces, and one covered the room itself. Everyone chipped in for smaller set dressing pieces and decorations. We used a spreadsheet to assign each item to a specific teammate, but these sign ups very quickly adapted and constantly changed depending on how quickly or slowly someone was able to cover said item. I modeled the room and any affiliated wall decorations. Beatrice modeled the tree, tree capsule, and staircase, Kekoa modeled small plants, trash cans, the map, and various cafeteria menus. Adrienne modeled the cafeteria area with help modeling decorations from Brooke, who also made the plant pods, tables, chairs, and plant seats. Each member textured their respective models for ease of use, since they had uv unwrapped them, however some textures were shared among members. I headlined lighting and utilized a particle effect to boost my lighting, as well as making use of emissive materials. I concerned myself greatly with keeping track of the scene's details and heaviness, while Beatrice created builds and recordings for our deliverables. Kekoa worked on LOD set pieces and set dressing organic items. Overall, we worked hard together to reach the finished result, and we are proud to present it to you.

White Boxing

Because the scaling differences between Maya and Unreal are so vast, I decided to create the white box in unreal first. When it was complete, I transferred it over to Maya as an fbx for my other teammates to use as a scale reference. Inside Unreal engine, there is a human-sized hit box that I used for ensuring the pieces were to scale. Simple cubes and cylinders were the only shapes I needed to accomplish this white box, and the creation process familiarized me with how to work in-engine. This taste-test was extremely useful down the line, and I hope it was as useful to my team as it was for me.

Room Modeling

Using the white box I created, I got started on modeling the room. For several hours, I switched between reference photos and recorded videos to ensure my pieces were as accurate as possible. The room being as huge as it is, this became a challenge, as I would never be able to see everything at once and often had to merely interpolate as I went, drawing diagrams from time to time and endlessly replaying the relevant clips. I am forever thankful to Brooke for the recording she provided us, as it slowed down the pace at which the character walked throughout the room. To save on poly count, I modeled our room with planes instead of cubes, and this turned out to be doubly useful for lighting/texturing. Unreal engine defaults to showing one-sided objects with a transparent back-face culling, so you could see the overall room without having the camera inside of it. Anyway, once I had blocked out the basic plane shapes of the walls, I utilized a combination of the multi-cut tool, extrusions, and beveling to reach the desired look. The trim are separate plane models that had the same treatment. Wall insets and holes were created as needed, and I was constantly monitoring the cleanliness of my mesh and polygons. The floor was made of two simple planes, one rectangle with an oval on top, the topology redrawn to only contain quads. The ceiling was made with the exact same method as the walls, blocked out with simple planes that were cut, extruded, and beveled to reach the desired effect. I left indentations in the ceiling for placing emissive lights down the line. All in all, my room only contained 8000 polygons, leaving a ton of room for my classmates in terms of budget.

Decoration Modeling

I created the wall decorations next (not all pictured above). This included railing, scaffolding, piping, and light shapes. Since these pieces are all placed high above the ground, somewhere the player would typically not see, I made sure they saved on polygons when they could, again to put less strain on our budget. Every model was created with a cylinder as a base and the end faces would just be extruded along the profile of the model according to available references. Exact calculations were difficult to make, as the only available footage is from the ground, where the wall decorations are much more difficult to see. I created two iterations of railing (one straight, one curved), two iterations of scaffolding (one large, one small), three iterations of light beams (curved, straight, and circular), and five different iterations of piping that I would adjust the size, positioning, angle, and scale of in-engine. These took 12000 polygons, meaning I was able to accomplish my models with a little over 20,000 faces.

Set Dressing

Since I had started the project out in-engine, created the white box, and created the room, I was naturally willing to do a good portion of the set-dressing. While I did not necessarily bring every model in by myself, I adjusted any existing models to match the references and created instances of models like the tables and chairs, arranging them in ways that reads as natural and not repeated. Organic set dressing goes to Kekoa, and Beatrice definitely helped me out by placing her tree and staircase models as close to perfect as possible, so I only had to make minor changes and monitor our progress.

Player Collisions

Collisions were something I noticed pretty early on, and I wanted to make sure I avoided making it impossible to walk around in the scene for our deliverables. With the room being such an odd shape, many of the automatically calculated hit boxes were too big and interpolating incorrect boundaries. With Bea's help, we discovered we are able to make simplified collisions use more complex projections. This makes the bounding boxes much more accurate. To save our processing power, I left simplified collisions as is where appropriate and even deleted unnecessary collisions for things the player would never be able to reach, such as the scaffolding. I also created an invisible wall at the top of the stairs, blocking the player from exploring our pseudo-second floor.

Texturing

As my only textures are repeated tiles, bricks, marble, and wood panels, I decided to start off in Substance Designer for this project. Most of the designer textures were simple enough, just tile generators with appropriate noise maps utilized for the desired effect, but the wood paneling presented a new challenge to me. I wanted to make sure there was enough variation in the tile generators to avoid it looking too fake, so I created five iterations of the direction and luminance combinations, adding randomized masks for layering purposes. To fill in holes, I would use 2D transformation nodes and places them by hand. I believe these little imperfections inherent in human creation allowed a lot more authenticity. Once completed, each material was made into an sbsar file for use in Substance painter. I made use of color id maps to keep each material cleanly separated for the insets and flooring. Andre said my marble was looking kind of unconvincing, so I decided to use a mixture of my designer texture and an existing marble smart material, blending the two together and editing parameters with enough randomization until I felt satisfied with the results. I also overlaid many of the textures with a roughness grunge/overlay to keep them from being too shiny or perfect in-engine. However, this environment is meant to be, for the most part, pristine, so I had to find a very subtle balance between unrealistically perfect and realistically messy. It's kind of in an uncanny valley in the reference, so this took a lot of careful observation and tweaking.

Lighting

The lighting for this environment is kind of intense, there are tons of spotlights, and the high reflectivity of everything in scene means there is a lot of processing power going into the lighting alone. However, I do not have an accurate viewpoint on this, performance-wise, as my macbook's performance has always been affected from the get-go. My computer is not powerful and is missing a key development tool that greatly affects its speed and processing in-engine. Other teammates are likely having a much better go of this on their end, and perhaps the amount of lights in-scene is not affecting them as much as it affected me. The lighting setup in the reference does seem fairly straightforward, which is nice. Every light source is either visible or the effect of it is clearly visible, so I was able to block out lighting fairly easily. I utilized a combination of instanced light actors and meshes with emissive textures to accomplish the above effect. Cool  blue spots on the higher wall insets, warm yellow brick spotlights, white spots emitting from the base of the tree, and several neon light bars and letters. The fill lights can fairly easily be adjusted for visibility's sake, but I will have to wait on every texture to be placed in-scene prior to making these adjustments, that way I can see the effect on the end product. Any updates will be visible in the video at the bottom of this page.

Effects

My final touch to the scene was to utilize an existing particle effect in Unreal for the tree capsule's atmospheric fog. I tried messing with volumetric lighting and atmospheric fog effects prior to this, but there was seemingly no way to contain the effect in one smaller volume. So, to accomplish the below fog, I used a steam particle system, scaled it to the desired size and placed it inside the pod. The effect was moving far too quickly, so I adjusted the lifetime parameters so the particles would behave less erratically, and give off an air of passively existing, not actively moving about in the scene. Movements in the x and z direction are locked, so the steam only moves up and down, billowing in on itself. For the longest time I could not understand how to make the fog brighter. It almost seemed as though it was casting shadows on itself, making the bottom darker than the top. Eventually, I realized that the source of the issue was back in the material placed on the particle system. I changed its blending mode to additive, and this allowed the fog to stay a nice light blue throughout, and even to be lit up by my pod lights. After shifting down the value of the particle colors I was able to bring down the opacity of the effect and allow the tree to be more visible.

Game Environment: Featured Work
Screen Shot 2020-10-28 at 9.15.10 PM.png

Finished Product

Game Environment: Video

Game Environment Recording

Game Environment: Video
bottom of page