For the past several weeks I've been focused on making a working UI system for our VR horror game. There have been plenty of ups and downs throughout this process and I wanted to take a brief moment to talk about the important takeaways I've gotten from the past couple of weeks.
The first of these is that creating UI in Unity is really easy. Unity makes it super easy to create buttons and sliders that do things and are easy to access from scripts. Once I got my buttons into place for my menu it was far easier than I had anticipated to make them load new scenes. This saved me a lot of headaches and for that I give the Unity program two large thumbs up. The second takeaway is that putting UI into the actual world space is really difficult. Due to our game being in VR it doesn't make sense to project our UI right onto the eyes of our players. This would probably just blind them and hurt to overall game experience. In order to avoid this issue, we need to put the UI a little bit in front of the player in the actual world space of our game. This of course leads to a whole host of problems in order for the menu to work. The menu can't be too far away from the player or too close. You have to work with the scaling of the graphics to make sure the menu doesn't accidentally stretch across the sky. We need to disable player movement around the menu so they don't accidental wonder off and can't find their way back. All these things need to be taken into consideration and sorted out slowly through mostly trial and error. There is no quicker way to make the UI work than applying some parameters and seeing what fits. These are the two biggest things I noticed while creating UI. You need to have patience when setting up your menu to work in VR. Thankfully once you find those perfect parameters the rest should come easily thanks to Unity's fantastic UI system. -What I've been working on -The joy of Unity UI -The patience of creating UI for VR
0 Comments
This week we continued to make really good progress both on 3d models and the coding side of our project. we were finally able to finish simplifying models for our demo GAD room. This means that's when you load the GAD room you get significantly less lag. The file was reduced in size from 233 MB to 536 KB.
We also got a lot of things working in VR this week. After a frustrating couple of weeks struggling to get VR items to work, it was a breath of fresh air for things to function well on the first pass at making them. We imported doors into the GAD room scene and were able to make a working, intractable door prefab. We could then clone this prefab around the scene and have multiple working door. By the end of the week you could walk around the GAD room and interact with many objects. You can now open doors and pick up items such as keyboards and recycling bins. For my share of the work this week I finished making the grasping animation for the hands. After that, with the Unity side of things going for smoothly I decided to start making a couple of promotional pieces of artwork while I wait for the chicken model to be complete. The first piece I made was a simple logo-like chicken head. It turned out well enough that I decided it would be a good header for my Blog page. Now that I'm warmed up in photoshop I should be able to make several more of these logos to be used as promotional items or possibly in the game's minimap to show you item locations. Next week I plan to: -Create logos for more key items and enemies within the game -Start working on animations for the chicken monster as soon as it's model has been completed This week we finally solved our first big problem we've had to deal with on the coding side of our VR project: getting the controllers to work. This is a problem we've been having since last year with the computer at school. For some reason the code we were using to track the controllers and keep them active in the scene simply didn't work. We tried many fixes trying to both debug it ourselves as well as scanning the internet for possible problems with our code. The code we use is from VRTK, Unity's basic VR codes asset package.
This problem get weirder over the summer. One of our team members got a Vive and started working on the code at his house. A couple weeks from the end of summer he was able to get the controllers to work. As soon as we got back to school, we put his method to the test. He found that the VRTK script had worked perfectly well on his computer and so we looked to see if the asset store had simply updated the VRTK package over the summer. This failed. There was no new updates in the asset store and when we re-downloaded the package nothing changed. Confused we decided the quickest way to figure out if this was a computer problem would be to directly copy it from our team member's personal computer and send it to the one we have at school. After finagling trough our school's system, we were able to get the code into the school computer. It still didn't work. Finally we found the answer on a random forum that told us to download it off of gethub because the asset store didn't have the right version. When we did this the controllers were tracking and working at last. Thus we ended our long struggle and showed that even seemingly impossible problems can always get figured out with enough persistence. Next Week: -Import codes into gad demo scene -Import audio into Gad Demo scene Frustrated by some difficulties we came across in designing our first tutorial, we decided to take a day this week and look back at the work last year's CTE class did in VR. Their goal was to create a simulation for a prison to advocate it's renovation into a senior citizen's home for veterans. This project was a large undertaking and the first of its kind in the game design pathway.
To complete this project, last year's students modeled out the prison taking many trips there to measure and photograph the area. Creating models of everything in the prison, they then took those models and put custom textures to them making the prison come alive. This is how I think my group will create Durham School of the Arts next year so it was useful to see how well it had worked in the past. Another thing we were able to find in the old project was how they decided to move the player around. Using a point-and-click method, the player could navigate between prepositioned anchors letting them explore the whole facility with out having to move around their play area too much. This might be useful once we start programming our game next year and explore options for how our player should be able to move around. -What CTE worked on last year -How they made it -What we can use from it Over the last school week we worked on using Unity in VR. To do this we obviously had to start by setting up our VR rig and this led us to the first major problem of our project: none of us know how to coil wires properly. While this might not seem to be a big problem at first you have to consider how much we will be setting up and taking down our rig. Everyday we want to be able to work in Unity requires us to set up the rig at the beginning then take it down at the end of the period. This means that tangled or messily-stored wires will not only waste a lot of time but also damage the wires. The solution to this problem is simple. We just need someone to learn the proper wire coiling technique so that the rest of us can learn how to make sure our wires are neat and safe from damage. This is the role I decided to take and here is what I've found:
For thin wires the coiling technique is pretty simple. You make a loop, then keep loops the wire around without doing anything special. This just makes sure the wire is neat and organized when you put it back into its container. Thick wire are more complex. If you coil a thick wire the way you would coil a small one you risk the twists damaging the thicker cable. To start you must make a loop just like in the small coil. Make sure the coil is loose enough to not do any damage to the wire. Then instead of looping around like you normally would, grab a piece of wire a distance away from your original loop and bring your hand straight to the top of the loop. The wire should naturally loop around forming a new looped section. After that alternate between looping normally and using the new technique and voila you now have a beautifully (or not-so beautifully if it's your first time) coiled wire. -Why I'm looking at wire coiling -How to coil thin wires How to coil thick wires Next year for my senior project, a several people (including me) will be building a VR tour of our school in Unity. To do this, we’ll need to push our skills as designers farther than ever before to create something truly amazing. I decided to get a little bit of a head start though and do a bit of research on how VR works in Unity and if I could find any tutorials that would get me ready for next year.
What I found was super encouraging. There was plenty of support on the Unity website for designers looking to get started in Unity VR. I even found a tutorial series for VR games which I intend to try and complete before the end of this school year so I will be comfortable coding when the time comes next year. The only worry I have now is about the specs requirements for VR and our school computers. I think we will be able to run Unity VR but I’m worried it will be glitchy due to the bad graphics cards on our school computers. Either way we’ll find a way to make things work and I’m very excited to see where this project takes me. unity3d.com/learn/tutorials/topics/virtual-reality/vr-overview -My senior project -Fruits of my VR research -My worries During a white elephant gift exchange I was able to get my hands on a pair of cheap phone-based VR goggles. Don't get me wrong these weren't anything fancy; mostly just a plastic covering with glass lenses. Still, I was excited to explore what I could do now and set our to find what the internet had to offer in terms of free VR experiences.
What I found online was a little demoralizing. Most "VR" videos were either a normal video configured to be seen with VR goggles (in other words no moving your head to look around) or used the phone's gyroscope but lacked the ability to be seen through the VR goggles. The simple lack of material that provided both was sad. This was the greatest weakness I found in the goggles. There simply aren't enough free websites offering interactive experiences. After this, I turned to apps. Here I found much more of what I was looking for. Due to google cardboard there were already many apps out that had the same format for viewing as my goggles used. There was a problem though. I couldn't touch the screen at all while viewing a video or game. This meant that games were nearly unplayable and it took a lot of time to stop and start videos. This meant that while I could use some apps to there full capacity, (such as one in which I just got to sit on one, never changing, spot on the moon) for many others I had to compromise my experience for the practical issues I had to endure. All was not lost however, Eventually I stumbled upon the discovery channel VR app. In this app I could watch documentaries in my goggles in the right format. Not only that, but they also had included a unique way to stop and start videos by using a look and go UI system. Overall while the goggles don't have as much support as I'd initially hoped, they were still fun to use and mess around with. Beyond that there is a lot of room to grow in this field and I look forward to what developments will happen in the future for VR. |
AuthorSamuel Henry is a Senior at DSA in NC. He has 3 years of prior experience in the game design pathway and he's looking forward to becoming a great game designer. The views and opinions expressed in this blog are solely those of the author and do not represent those of Durham School of the Arts or Durham Public Schools Categories
All
Archives
May 2019
|