Becoming a Butterfly
Part I: The Body
This NatureSims post is focused on the creation of the monarch butterfly player avatar, or the butterfly body players will occupy when they enter the simulation. This will be a fairly high-level overview of this process, so don’t expect lots of code snippets or details about various Unity settings. (That said, if you have specific questions about any of these things, feel free to ask!)
The traditional way to handle this sort of thing in a game environment would be to do it in the third person, like having a camera floating over the body of the monarch butterfly you are controlling as though you were looking on from above. But that’s not what we’re going for here. In order to make full use of our VR capabilities, we want a first person avatar that allows players to see the virtual world from the perspective of our (virtual) butterfly, and interact with it in much the same way that a butterfly would.
In other words, when you put your headset on and start the game, your head (in the virtual world) should be where the butterfly’s head would be, and if you flap your right arm up and down like a wing, the right wing of the virtual butterfly should move accordingly. If you turn your body to the left in the real world, the butterfly’s body should also turn to the left in the virtual world.
Here’s a short clip of this month’s prototype — the grounded monarch:
There are three basic parts to this process: (1) creating the butterfly model using Blender for 3D modeling, (2) creating materials for the model using Substance Alchemist and Painter and (3) integrating VR functionality into the model using the Unity game engine. While we’ll discuss them in a linear fashion below, it’s worth noting that this wasn’t actually a linear process. In reality, there’s a whole lot of iteration going on, i.e. creating a basic model in Blender and then testing it in Unity, then making fixes to the model and testing it again, then trying a first-draft of the materials and testing again. Repeat, repeat, repeat.