Skip to main content

Control Scheme Research

For the first sprint, I looked into possible control schemes that could be used with A-Frame, then at existing libraries for implementing these controls, and physics systems that could be implemented in A-Frame.  As the initial idea is to have the finder use desktop, we want to support keyboard and mouse, as well as controller (the standard PS/Xbox configuration) based interaction.  Since we were not sure whether A-Frame supports controllers by default I set out to find out what level of support was integrated, and what libraries could be used for controller support.

The first step was checking the A-Frame documentation on Interactions and Controllers.  Here I learned that A-Frame fully supports all common VR controllers, but it only supports conventional controllers through custom controllers, however, the library aframe-extras includes code for working with game-pads.  Since implementing our own code for controllers will be time consuming and the A-Frame documentation recommends the add-on we will likely use it for our experience.

Furthermore, since the experience will involve working with parts in a realistic environment we will need some kind of physics system, which A-Frame does not implement by default.  The most popular physics system in A-Frame is the aframe-physics add-on, which adds simple 'static-body' and 'dynamic-body' tags that can be added to most primitive elements as seen in the code below.


An example of aframe-extras and aframe-physics used in conjunction to simulate throwing a ball.

Ideally, these two systems will create a strong foundation for us to build off of as we begin to hammer out the details of our VR experience.


Comments

Popular posts from this blog

Building the Shelf and Chairs

With the final submission looming closer, most of my effort was directed at replacing some hard-coded game-play functionality with dynamic data from the Builder and Finder systems (~3 hours), assisting my team with issues they encountered (~2-3 hours), and getting the shelf and chair ready to be built by the players (~8 hours). The Builder and Finder systems still had a few hard-coded values from the Beta build of the project that were specific to constructing the table, so I worked on replacing those with the data that is contained in the instructions arrays that Priscilla and Maxime created this week.  I was initially have problems accessing this array before I discovered that JavaScript arrays can be accessed by string, which simplified it a lot.  Below is an example of the before and after of this process. // Before socket . on ( 'setFurn' , function ( data ) { this . current = data . id ; // Where data.id was always "table" this . step = ...

[WEEK 6] Back from Reading Week

We got back from Reading Week and reviewed what each of us accomplished. Expected deliverables for this week include: moodboards for the Living Room and the Warehouse, basic recolouring for the Living Room, a completed final Warehouse environment, and a working spawning objects prototype.

JavaScript Libraries and Flow Charts

This sprint we focused on the laying the groundwork for the project and writing the design document.   For the design document, I outlined the Technical Requirements, Technical Features, Interaction Features, and created a user experience flow chart (~4-5 hours).   The rest of the sprint was spent testing the JavaScript packages we plan to, or are interested in, implementing in the project (~4-6 hours).    Creating the user experience flow chart took a few iterations as we weren’t certain of the final gameplay.   The current version is fairly linear, but the gameplay is straight forward to make it easy to pick up and play.    A part of the final user experience flow chart. The packages I tested for our project were aframe-extras , aframe-physics , and aframe-click-drag-component .   ‘Extras’, as the name suggests, adds some extra functionality to A-Frame, including controller support, ‘Physics’ adds a physics system, while ‘C...