Futuclass

For a few months I worked at a start-up that develops educational VR experiences meant to supplement school curriculums. The experience mainly consisted of work-station areas that consisted of interactable models or contraptions where learning of specific concepts or tasks took place. When I joined the team then they had some low-fidelity prototypes of few workstations. My assignments could roughly be divided into three: Art direction/world building, Station puzzles design creation and Documentation, station creation workflow development/best practices.

Art direction/world building

The end-goal was to develop a coherent visual style for the whole game - assets and environments. Very little was established on the visual front so I had to start from scratch. I began by devising three very high level descriptions of general directions we could go towards so we would have something to start our discussions with. In couple of paragraphs I tried to envision brief background narrative that could either be used for environmental storytelling, a hint for designing objects and to provide future opportunities for developing it further and incorporating some additional narrative elements for player engagement. Also the overall ideas for designing models and potential characters for various purposes, such as providing guidance and making the player feel less alone in a otherwise lifeless environment. Example of one can be seen on the right. 

Some inspiration examples from already existing games were "The Lab" by Valve, “I Expect You to Die” and "Control". 

After some discussion we decided to go more of a realistic direction but that the overall feeling should be bright, airy, modular stations with some mechanical details to make them visually and tactilely interesting when viewed in VR. So I started gathering moodboards and references for overall environment shapes, layouts, lighting, materials, textures etc and making some mockups. 

Briefly I would describe that direction as somewhat inspired by brutalist architecture but more triangles and more cheerful. After some discussion the team proposed to also try a more warehouse-cubicle-like look and to break the assets even into smaller pieces for modularity so environments could be composed in Unity. So I started generating many pieces for creating various rooms. 

Of course quite early on I picked a color palette for main objects and a font for the game. In addition to the main colors there were some additional ones for contrast and to draw the players attention to certain possible actions. I also composed a library of main textures that included beige wood for adding a bit more warmth and natural look to a generally uncluttered and scientific looking areas. 

Station puzzles design and creation

The purpose of each learning station was to teach something specific to the player, such as how does pressure in gases change under certain conditions or how to balance the equation of a chemical reaction, mostly they were from the field of chemistry and physics. I designed around 10 stations, some had multiple high-detail prototypes. Also a wide range of other assets - props, set-pieces etc.

Overall process looked like this: I got a description of some chemical process or principle of physics that the user should learn and some didactic tips how it is usually taught. Sometimes a sketch or a rough mock-up of what elements it could contain, all the design process starting from the mechanical actions what the learner is required to do till all the way to modeling, rigging, animating and texturing of the final model. 

Rigging and animations; I added multi-part mechanical contraptions that moved according to user interactions. The interactable surfaces were color coded for ease of use. 

So we limited each object to have 3 different colors, but additional details could be added by darkening the masks. Also AO and metallicity maps vere utilised. And for more specific needs any image could be added with an Alpha mask. 

Finally, the asset was imported into Unity and a preliminary setup was made, like adjusting the materials, animations etc and overall making sure it worked in engine, after that it was handed over to programmers. 

I positioned required elements and information, devised rough shapes of other elements and control positions that the user interacted with, how objects would move and animate and made a rough 3D mock-up of the station that went under review. After it passed review, high-detail models were made.

After modelling and UV unwrapping in Blender the models were exported to Substance Painter for texture and various map generation. We used a custom Unity shader that accepted a 3 color mask which enabled to quickly change and fine-tune the main colors of all the assets to make them uniform and enable final adjustments in engine. 

High-fidelity prototype for teaching the concept of pressure. 

Animation demonstration in Blender for showing programmers how it is supposed to work in the end.

End result after setup in Unity. 

Also some game engine optimised effects. (for mobile VR)

Documentation and workflow developemnt/best practices 

I composed and maintained many documents regarding asset creation, implementation and visual guides. 

Starting from all things regarding art direction that was developed and agreed upon, so us as a team could keep up to date with it all and also for onboarding new members. 

And from a more technical side all the rules for asset creation, such topics as: modelling best practices, UV unwrapping tips, texturing in Substance Painter to conform with our custom shader (3 color mask, AO, detail map, Alpha/transparency, Metallic), Blender setup for exporting to Unity (object transforms, shapekey and animation setup), nomenclature, folder structure, initial setup in Unity to be handed over to programmers.

Also, with every station a detailed description was included how exactly is the station to be used, what do various screens and levers/buttons do, how the animations are supposed to be set up, how the effects should look like, what should appear and when etc.