I was the technical lead for a collaborative project for Gulfstream. The goal for the project was to create an interactive cabin configurator for the G450 aircraft on a mobile device. Along with creating a new UI style, different than the current style Gulfstream was using. The team was comprised of people in visual effects, game development, interactive design and sound design. We were given assets from a visual effects scene they had created for a pre-rendered fly though of the aircraft. The time frame was 8 weeks to optimize the given assets for mobile, create customization systems, and integrate a new UI.
The initial scenes that we were given to us had 1,620,347 triangles in them. To insure 30 fps on the Ipad4 the triangle count for the scene had to be below 500,000 triangles (ref to ue4 doc). We wanted to insure the new optimized assets would be prepped for larger aircrafts that require more assets to be loaded. Our target triangle count for the G450 scene was 250,000 triangles. This meant we needed to reduce each model’s triangle count by 80%-90% and create unique maps for any details lost.
Original 94,902 Triangles; Optimized 9,448 Triangles; Optimized with Normal Map
A key feature that Gulfstream wanted was, to allow the user to select the furniture configuration for each of the zones inside the aircraft. I made a system that is modular, easy to use and is expansive for future use. It is broken down to interactive assets inside of side-zones that are inside of zone configurations. Each of these have a parent class that they are derived from. Allowing to make large changes quickly and have flexible customization. When the user wants to change the configuration a script runs and changes the selected zone configuration.
A larger goal was to allow the user to define the color, pattern, and material of large sections of the interior together. I implemented a system where the user selects an interactive asset it generates a menu. While the menu loads, it references a spread sheet specific to the materials that can be applied in the area. In the menu the user can adjust any of these parameters inside of the material that is assigned. After selecting any change in the material, it updates to all objects that are using the same material, while preserving per model texture maps.