Skip to main content

Posts

Showing posts from February, 2020

[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.

Aframe Systems and Networked-Aframe

This week saw less direct contribution to the project, and had a greater testing and learning component to it.  Most of my time in the past week was devoted to a different Aframe project that involved a multi-user interaction with a cooperative and competitive component.  I used this project as a guinea pig to test out Networked-Aframe and some more 'advanced' Aframe design patterns (~25 hours). Networked-Aframe is a framework built on top of Aframe that integrates WebSockets and component syncing to streamline the process of creating multi-user Aframe projects.  The main feature of Networked-Aframe we are interested in was the voice chat support, as we feel it could be a great feature to have for playing the game with friends remotely.  However, I also set out to see if there are other features in the framework that could be useful in developing our project.  An element I did find useful was component syncing, which uses HTML <template/> tags to create entities that ha

Sound Design

It was difficult this week to find time to work on the term project when there were also other more heavily weighted assignments due and a midterm to study for. I hope that I will have a bit more time after this week. For the Living Room, we can use a looped ambient living room soundtrack I found for now because there are considerably fewer sounds expected for this environment. To accomplish this, an entity will need to be created for the purpose of sound source. This will likely be placed on the ceiling plane to have a consistent sound throughout the entire space. Additionally, some sound effects should be linked to when collisions occur between different materials. Resources for playing sound effects on collision: https://github.com/donmccurdy/aframe-extras/issues/48 https://www.c4dcafe.com/ipb/forums/topic/77891-how-to-play-sound-when-a-collision-happens/ For the Warehouse, I will still need to make a looping soundtrack using the sound effects I found. I aim to make it

Sprint 5 - Finishing the Furniture

This week, I completed modelling (4hrs) and texturing (7hrs) the furniture that will be used in the scene. It took longer than I expected because I had difficulty nailing down an art style while also working with new techniques in Substance Painter that I wasn't familiar with. A big challenge was finding a style that I really liked and understanding how to achieve that. My experience is more in realistic modelling and texturing where it's easy to see where things don't look right. However, with stylized pieces, it's up to my own interpretation. I'm also working with a very base, low-resolution mesh because I want to avoid creating too much detail through normal or height maps. The simpler, the better, but, the simpler, the less there is to work with. The grand solution in nailing down a flexible art style was through the use of ambient occlusion. By baking the same model over itself, I get an AO map, which already improves the look dramatically as it removes

Polishing Snapping and Spawning Objects

Finishing the alpha prototype made up the majority of the work completed this week (~20 hours), but even after the alpha presentation there was still some more work and polishing to do with snapping components together (~4 hours), and then work began on dynamically spawning modular furniture (~2 hours) pieces and that will be the focus of this coming week. Creating the snapping functionality we desired for our alpha prototype proved to be quite the challenge, and this was not because of the logic or technical requirements behind snapping objects, but rather due to some limitations of the A-Frame Physics System library.  Before going into these limitations I will go over the two approaches taken to try and create this functionality.   The original approach was to take the smaller piece that was attached parent it to the larger object, and then apply translations to the piece to line it up correctly.  However, in practice sometimes the transformations would not apply to the component

Sprint 4 - Alpha Presentation and Furniture

This week, the team presented our proposal for our project as well as demonstrated the alpha build. In its current state, the living room and warehouse environments are at their most primitive states and will be developed further over time. In future plans, I will have to redesign the living room to allocate more space to the user. It's currently too small and claustrophobic, which makes it difficult for a VR user to have enough building space. I spent the days prior to the presentation polishing the design comps then producing OBJ files of the environments to insert into A-Frame. I did this by going back and forth between a-frame and Maya and resizing the scene until it was the ideal size. This way, Mitchell is able to simply drag and drop the obj into the project without having to tweak the transformations (~5hrs). Table Model with UVs Chair Model with UVs Shelf Model with UVs After the presentations, I began working on modelling the 3 pieces of furniture that pl

Alpha Presentation and Sound Libraries

Up until the Alpha presentation on Friday, I worked on bringing in Maxime's Living Room environment obj-model into Mitchell's A-frame prototype. This required importing the obj, positioning it appropriately, setting materials, and adding some lights into the scene (~2hrs). There were some issues at first with the model being small enough but feeling very cramped; there was not enough space to really build furniture. This model will need to be adjusted in the near future to fix this. Another issue was that the materials were not loading properly and adding lights turned everything black. Some experimentation with the light types, positioning, and intensity helped to solve this to be sufficient enough for the Alpha prototype, which can be seen in the image below. I also worked on helping to try debug the code for the snapping function (~2hrs), which involves a snap to the correct position when two furniture pieces collide at the appropriate location (i.e. table leg touches t

[WEEK 4 + 5] Reading Week Work

Lots to do this week despite it supposedly being a break from school (yay, assignments during Reading Week!). We still need to make the game more functional and update the 3D models. The majority (if not all) the sound design will also happen this week and will likely continue onto Week 5. We will also be reviewing the feedback from the Alpha prototype presentations once we receive it.

The Alpha Prototype

This week began with adding some finishing touches to the project design document, (~2 hours) , coming up with a plan for implementing the alpha prototype (~5 hours), and then the rest of the week was spent starting to implement that plan (~3 hours). We decided that the biggest hurdle for this project is going to be creating pieces of furniture that can snap together to create a single piece of furniture, so this is what we want to have completed for the alpha prototype.   There are a couple approaches that could be made to achieve this effect, and most of the planning was spent trying to determine what worked best for us in terms of effort, functionality, and modularity.     The first option was to try and use some existing functionality from an existing component, but the best existing library we found is the aframe-snapto-component , which doesn't quite have the functionality we are looking for in that the snapping can cause performance hits if performed continuously,

Sprint 3 - Design Comps

This week, a large majority of both environments have been modelled (~2hrs)  to their fundamentals. The main focus for me was producing the design comps, which I did by setting up a camera in one angle of the environment that captures a scene from the wireframe. All objects in that shot are UV mapped (~4hrs) then brought to Substance Painter for texturing and rendering (~7hrs). The final results are seen below. The warehouse will contain a wide space for the user to work with. The green platform as seen on the right-hand side of the design comp is a dropbox for them to deliver the correct components, which are found in the scaffolded aisles. These aisles are labelled by the icon by its front, which determines what parts for which piece of furniture is found. The living room has a more simple design that will probably be tweaked and improved over time. Boxes containing the building components sent from the warehouse and are delivered through the chimney. Both of these design c

Storyboard and Physical Layout

I finished up on some graphical elements for the user interaction specification component of the proposal due this coming Friday. This includes the storyboard panels and the physical layout diagram. As I was researching Oculus Rift physical setups, I had to determine how many sensors we would need for our game. I believe that 2 sensors will be sufficient, since we do not need a true 360 degrees experience as the Builder player will primarily be focused on the 180 degree space in front of them (i.e. the fireplace, the TV, and building the furniture). Our game is not an action packed game with any running or shooting. Of course, the player will still be able to fully look around but they shouldn't have a great need to move in the other 180 degrees of space. This would also take into consideration accessibility to our game, because it costs extra to buy a third sensor (the Rift only comes with 2) as well as requiring adapters and wire extensions. I spent about 4 hours researching

[WEEK 3] Illustrations and Alpha Prototype

This week, we need to complete the user interaction specification document, which contains many graphical components that need to be created. This includes the storyboard/wireframes, design compositions, and the architectural flow of our game. Additionally, the Alpha prototype is due next Friday! This is a huge priority and at this point, we will be relying on Mitchell to work on coding majority of the functional elements. Primitive environments have been prepared by Maxime, but they need to be tested in a VR environment (i.e. for scale). Priscilla will be putting together all the parts of the proposal document and supporting both Mitchell and Maxime with their tasks.

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 ‘Click-and-Drag’ is supposed to add mouse