BackgroundThe goal of this project was to create an interactive experience while also making it meaningful and relatable to a real-life cause: resource scarcity. We completed that by enabling the user to deliver different resources (such as water, trees, etc.) to planets in need.
MY CONTRIBUTIONS: - Development of Ship movement interaction - Modeling Low Poly Main Ship in Maya - Designing Main Ship in Substance Painter - Environment Design of two worlds - Lighting of scenes - Environment Shader Graph Effects |
|
3D Modeling
I created the main battleship in Autodesk Maya with a polygon count of fewer than 3000 faces. Certain objects such as the main hull or body were separated into multiple UV maps that were given different material names. These differing material names would then be recognized in substance painter, allowing the design process to be more organized and capable of displaying higher resolution details.
Painting
Texturing was created in Substance Painter. Height and normal maps provide a sense of depth without using extra polygons, alongside emissive maps, generators, masks, and other details.
Ship Interaction
The VR application was built using the Unity 3D Game Engine and the Oculus Integration package. The basis of the interaction is to move the ship's position on the x and y-axis, where the forward direction and rotation of the ship are not influenced by the user (somewhat similar to Galaga). A Raycast is sent from the users palm that would be detected by the collider of the sphere control. Using 3D Vectors, I assigned the distance between left-hand anchor and the sphere control transform positions and applied that difference to the rotational value of the sphere. The sphere's rotational value then influences the movement of the ship gradually using a Lerp function.
Environment Design
Each planet environment was created using the terrain game object with the help of some default textures that can be found in the Unity Standard Assets package. Trees were created using Unity's default tree asset.
Lighting
Any applicable objects were marked as static while reflection probes, light probes, and lights were set to baked/mixed, as opposed to performance demanding real-time lighting option. We used the default Unity game engine render pipeline.