Personal reflections - Sandra Grzelak (310093)
My personal reflections on XRD course.
The main goal of this course was to develop games using augmented reality (AR) and virtual reality (VR). Prior to this course, I had no previous experience or knowledge in either AR or VR since I can enroll on GMD course only next semester. Because of the lack of familiarity, I found the course to be incredibly challenging at first, however with each project I gained more and more knowledge.
Before deciding on any game idea we brainstormed and presented the game ideas we came up with and voted in order to select the best one, we will proceed with. I really like how the whole communication process looked among my teammates. Prior the development stage we were having a meeting in order to divide tasks among group members. We also updated each other once we implemented a feature so that others can move on with their task.
The first project we worked on involved using AR to create a ping pong game. During the development I learned about Markerbase AR and Vuforia Engine. We used a QR code in order to trigger our game component to appear on the phone. Once the QR code is scanned using the phone camera, the phone loads the game objects and we can start playing. The goal of this project was to display and interact with virtual objects in the real world using a mobile device and its camera. My contribution to this project involved adding score in order to track points and display them as well as adding a start button. To implement these features I worked with Unity scripts and the UI system.
The second project we worked on involved using ARCore to create a bowling game in Unity. I was responsible for this project repository on github. My contribution to this project involved adding a plane detection in order to scan the surroundings to place a bowling alley. The plane detection is a component of AR Core and it uses the phone's camera and sensors to detect planes in the real world, like floor. I also created the scripts that interact with the UI in order to select our preferred ball type (heavy, light).
The third project we developed was a VR project - a Goalkeeper game. For this project, my contribution was to add hand models with animations and rigid bodies in order to collide with the ball. To control the hand animations I used the XR controller (action based) from XR Interaction toolkit. Trigger and grip action was used to animate the hands accordingly. To set it up I created XR Rig game component and placed each of the hand models on the child objects. Additionally I also worked on environment components such as the goal gate. However, those componenets were not included in the final version instead, XRRayInteractor and XRGrabInteractable components were implemented. Which means that the player has to point the ray at the ball and press a button to catch the ball. For this to happen the ball object has the XRGrabInteractable component and the hand controllers have the XRRayInteractor. The player has also the ability to move using the joystick on the controller which is provided from the locomotion system component. Although the player doesnt have to move too much it can still cause him some motion sickness. We are also using the tracked device graphic raycaster component to the canvas so that the rays will interact with the UI. We also used Oculus for this project, which required from us to spend more time in the lab together in order to configure and test the project.
The fourth project we worked on was another VR project that involved creating a set of puzzle games - the Arcade game. During brainstorming ideas we found it a bit challenging to differenciate between VR and AR in order to come up with some ideas. We decided to create a set of mini games. My contribution to this project was a memory game. The purpose of this game is as follows: User can see a set of cards, each card has a corresponding pair - a fruit and tries to memorise their position on the board. After some time, all the cards turn back and the user has to guess the matching pairs based on how well he memorised their position. I designed the card models and textures using Blender and photoshop. I exported a UV map from the blender model and put a drawing with a fruit on it in photoshop. I also added necessary card components like box collider and XR Simple interactable. This time I'm using XRRayInteractor on the hand controllers in order to point at the cards and interact with them. Inside the simple interactable component I make use of events such as:
-Hover, to change the material of the card to make a highlighted effect.
-Select Entered event, to trigger rotation script and show the front face of a card (with a fruit).
I found implementing card rotation and checking for their match most challenging. In order to make the rotation process smooth I used lerp to ease the transition between two values over time, using delta time property from unity, therefore it took me some time to get familiar and understand how to use it. The controllers are again action based and I find them particularly useful because of their compatibility which gives me the possibility to build the game on multiple platforms without changing the controller game objects. This feature is available from Unity XR plug in.
While testing the game I found the cards bigger than I expected therefore I had to change their size.
Those last two projects were my favourite ones, since I started working on it at the end of a course, I could showcase what I have already learnt and the whole developing process was way easier than at the begining due to knowledge I gained through working on the previous projects.
Summing up, I found the XRD course to be a valuable learning experience
and I enjoyed the opportunity to learn about AR and VR technology in order to develop multiple exciting projects, some of them with both educational and entertaining purposes. This was also the first time I had a pleasure to play with the Oculus. Because of a lot of "firsts" times in this course I wish there was some kind of introduction for the students who havent been able to take the GMD course yet to help them get started with the Unity.
Discover our comprehensive (XR)Extended Reality development services, from immersive VR content creation to groundbreaking AR app development and Web AR integration. Explore iMeta Technologies’ cross-platform XR solutions and spatial computing innovations. Elevate your experiences with our simulator development expertise. Dive into a new dimension of interactions with our cutting-edge XR addon services.
ReplyDelete