The past few weeks I have been researching and exploring different ways that we interact with information and how this can be translated into the VR space. I took some times to watch an incredible talk by Bret Victor called "Inventing on Principle". His examples and perspective really opened my eyes to the possibility of creating user interaction that not only conveys what they are doing, but enables them to be a more powerful creator. His golden rule being show the data and show comparisons. Lots of his examples used a custom framework he built that allowed users to manipulate code in real time and see the effects it would have on in engine variables. This powerful tool gave "creators and immediate connection" and the ability to see new concepts or patterns they might not have seen before. With all this in mind, I would like to structure the prototyping of UI concept for VR with the means of doing exactly that. Give users the ability to see immediate connection to the data they are adjusting and show comparisons.
Storyboarding UI
With a new perspective on how to have users interact with data, I went to creating some storyboards for a few concepts I had. I have since received feedback on these designs and plan on revisiting the them later for adjustments, but over the next few weeks I plan on prototyping these in engine to get an idea of what experience they provide to the user.
My first concept was for a "Push Dial". I wanted to start simple and create a means of interacting with a number. Often these numbers are in some sort of range, but I wanted an object that did not have a set range and could be adjusted as needed by the creator. we often use dials like these for volume, settings, and safe combinations. In VR, the movement of rotating your hand is natural to most and with the feedback dials provide, such as clicking, resistance, and visual cues, I think it could translate nicely into a VR space. Having the number being adjusted on the dial also adds a easy visual to watch while adjusting a value. The idea for pushing the dial in and out to set the value is still something I would like to experiment and might be adjusted to fill a different meaning.
Overall I think this could be a core instrument to variable input for any VR game.
To show how the dial could be used for more intricate applications, I created a calendar UI to show off how it might function. Having ample amount of visual feedback is important for a system like this. Adding highlights for current date selected and visual cues for change give the user a clear understanding of what they are adjusting. While I'm not completed sold on the Push Dials use in this example, I think it would be a fun prototype to create and explore with the right implementation.
Finally I created a system for choosing between two variables. Often this might be used for "Yes or No" questions. The natural movement of looking towards your selection and shaking your head is something we do in our everyday lives. Shaking your head yes or no is a universal sign that we sometimes even do subconsciously when listening to others or watching an event take place. Integrating gestures through the hands has been a common user experience implementation for VR, but I think it doesn't feel as natural. The biggest risk with this concept is correctly reading what gesture the payer is enacting, but with the large difference in vertical and horizontal movement between a yes or no head shake, I think it could be done consistently.
Time To Prototype!
With some mock ups created and a clear direction on where to start, I will begin prototyping these and other ideas in VR. Over the next few weeks I plan to create basic examples of data manipulation and how it can be done in a natural way in VR. My main focus being the feedback a user receives when adjusting data. As Bret Victor said, showing the data and providing comparison is important to understanding the differences you are making. With UI in VR this is no exception. I can't wait to start prototyping and hope to come back with some interesting ways to play with data in VR! Until next time, it's time to get coding!
Comments