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.
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.
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- The debug:true option creates a wireframe around each physics body. If you don't see a wireframe, | |
the physics system may be unable to parse your model without a shape:box or shape:hull option. --> | |
<a-scene physics="debug: true"> | |
<!-- Camera --> | |
<a-entity camera look-controls></a-entity> | |
<!-- Floor --> | |
<a-plane static-body></a-plane> | |
<!-- Immovable box --> | |
<a-box static-body position="0 0.5 -5" width="3" height="1" depth="1"></a-box> | |
<!-- Dynamic box --> | |
<a-box dynamic-body position="5 0.5 0" width="1" height="1" depth="1"></a-box> | |
</a-scene> |
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
Post a Comment