Anima is a mobile VR project developed for Questionable Quality Ltd.. The project aims to explore the possibility to use 2D assets in a VR environment. In this project, I teamed up with Radu-Adrian Marcu and Tyler Haskins, handled the backend coding and animations.
The project is a just a technical demo, shows that we can use just 2D graphics to build up a 3D scene for VR use by providing a 2 minutes short film with a few user interactions.
VR scene with 2D graphics only
In order to build a scene for VR with 2D graphics only, we chose to make a circular scene which has the player fixed at the centre surrounding by the sprites.

Circular scene with 2D sprites only

To simulate the depth of the forest, we simply duplicated the trees to place them in 3 different levels, and set different order in layer for these sprites.
Bone animations
Anima2D has been use here to create the bone animations for the characters

Anima2D for characters bone animations

Gaze pointer interactions
Since Google VR SDK does not come with any simple, open and use method to implement the interactions between player and the game objects by using the gaze pointer, I have developed a pattern to simplify the implementation, and also standardise the behaviour of each interaction.
Gaze Input Pattern
This pattern is splited into 2 parts, the player side and the game object side.
First, on the player side, the player object of each scene can simply apply the GvrPointerHoverEvent to set up the progress indicator which will show up while the gaze pointer enters the object.
Then, on the game object side, you need to create a script that extends the GazeHoverBehaviour, and override Execute(), OnHover(), and OnHoverExit() to implement your own actions.
Lastly, attach the script you just created to the game object, indicate the player object for the script, then go to Event Trigger, set OnGazePointerEnter() for event PointerEnter, and OnGazePointerExit() for event PointerExit.
PS: This pattern is far from perfect yet imo. I’ll try to make a standalone release on Unity Asset Store when I’m free.
Source code
Unity 5.6.0f3, Google VR SDK for Unity, and Anima2D are used to develop this project.
Our client is nice enough to let us make this a opensource project, so feel free to use the code. No license is applied to this project yet, but remember that you are not allowed to include the graphic assets contain in our repository as those graphics are own by our client.
Back to Top