Skip to content

Releases: CyberNord/PSE_VR_Project_WS23

Prototype 2

22 Jan 15:38
Compare
Choose a tag to compare

Educational VR — Prototype 2

General

Available for PC-VR and Standalone-VR.
Generally speaking, the PC-VR version is running much more smooth.

Interaction part

  • Array of size 9
  • Player can choose between two sorting algorithms: BubbleSort and QuickSort
  • Speed control
  • Shuffle the array automatically

Quiz part

  • 3 Quiz rooms with different tasks to solve
  • Grading according to speed
  • Reset the quiz and return to start

Summary

In this prototype, the overall content can be experienced.
Even though classified as beta, the overall flow of this application has been implemented.
The ReadMe.md has to be done and will be released at latest for version 1.0

Again a short showcase of the prototypes content can be seen here


Prototype 1

10 Dec 16:07
Compare
Choose a tag to compare
Prototype 1 Pre-release
Pre-release

Educational VR - Prototype 1

Basic Functionality

Initially, our focus was on implementing fundamental features for a Virtual Reality (VR) environment. We began by creating an XR Origin using the XR Interaction Toolkit. To enhance user interaction, the ability to grasp objects within the virtual world was essential. This was achieved by hovering over a designated "grabbable" item and activating the trigger.

We introduced dynamic attach functionality, allowing users to grasp objects from any location, even the edges of a cube, for example. Another crucial basic function involved enabling user movement within the virtual space. We accomplished this using the XR Locomotion System, allowing users to navigate predefined teleportation areas to stay within the level boundaries.

To move, users simply push the movement stick forward, point the ray to a chosen area (red indicating inaccessible areas, while white indicates viable ones), release the stick, and seamlessly transport to the desired location. Turning can be achieved by physically turning or using the left and right control sticks.

Two additional basic functions were implemented. Firstly, the socket functionality permits the insertion of a "key" into a lock system. Currently represented by a cube for simplicity, the cube and socket utilize a specific layer for interaction. The XR Socket Interactor facilitates this interaction. Secondly, grabbed objects can be made to glow if necessary. Utilizing the Listener System, when an object is grasped, the listener triggers an event that alters the object's texture to a glowing state and resets upon release.

With these foundational functions in place, we progressed to implementing the practical components for this seminar in our master project.

Interaction part

The final objective of the interaction component is to provide users with a visual representation of sorting algorithms, such as BubbleSort or QuickSort, in action. Users will be able to observe a graphical depiction of an array and have the ability to manipulate the values, either by repositioning existing ones or introducing new ones.

To realize this, a collection of objects and C# scripts were developed. The array is symbolized as a series of sockets (Socket Interactor), each representing a specific position within the array. Values are depicted as spheres(ValueBall), with each sphere holding a distinct value. Presently, these spheres do not have textures and are therefore showcased using red, green, and blue.
Each socket monitors changes, detecting when a ValueBall is added or removed (with a maximum of one ValueBall per socket). The textual representation of the array is updated accordingly. It is important to note that the current textual representation serves a functional purpose and will be reworked in the future to align with our chosen graphical style.

Thus far, users can actively engage with the array, modifying both values and the array structure. The ArrayManager recognizes these alterations, ensuring the array's representation is kept up to date.
Another important feature for the final application is the user's ability to being able to see the spheres being swapped. To achieve this, a method was implemented to interchange the positions of two spheres. Although currently hard-coded to switch positions 0 and 2 in the array, the method is designed to swap any two chosen positions within the array.
This method elevates the spheres, performs the position swap, and smoothly returns them to their new locations.

With these implemented functionalities, the "Interaction" segment of the application is feasible.
Our upcoming milestone is to develop the next playable prototype by January 2024.

Quiz part

A UI canvas was designed for the quiz section, containing a question template and a key activation and door lock system. Initially, the key isn't accessible to the user as the
XR Grab Interactable component is inactive. The door's button needs to be pressed to activate it.

To prevent the teleport controllers from interfering with the UI interfaces, the
"Enable Interaction with UI Game Objects" feature within the XR Ray Interactor component was turned off. Furthermore, a pointing controller also designed in the form of a ray was implemented specifically for interacting with the UI elements. To actually press the button, virtually the trigger button on one of the controllers needs to be pressed.

To unlock the door, the red cube representing the key must be placed into its corresponding socket. Therefore, the user grabs the key pressing the grab button on one of the controllers and releases it near the key socket. In order to distinguish the key and key socket from other socket types, an additional Interaction Layer Mask called “KeySocket” was implemented… Once this is achieved, the XR Grab Interactable component, initially disabled on the door handle, becomes active, allowing the user to open the door and teleport into the next room.

Summary

In this prototype, almost all technical requirements for the final app should be covered. The goal for prototype 2, which is due on 24.01.2024, is to create different game levels in detail, potentially also starting already with visual design. Also, potential feedback will be considered and incorporated.

A short showcase can be seen here