Locomotion in VR
Goals
- Snap Turn and Teleporting
- Continuous Movement
- Character Controller
- Custom Movements
Solution
Here you can find the solution app. Download the .apk file and test it in the Quest for reference.
Additional Material
Point List (max 5 points)
- Teleport and Snap Turn with Left Hand (0.5 point)
- Continuous Movement and Turn with Right Hand (0.5 point)
- Teleport to Ceiling (0.5 point)
- Cannot move through walls, but can crouch underneath (0.5 point)
- Arm Swinging movement with both trigger buttons (0.5 point)
- Add sound design (0.5 point)
- Custom Movement (2 points)
Instructions
Setup VR
- Setup XR Interaction Toolkit
- Add XR-Rig (Device-based)
- Add floor plane
Create App
Snap Turns
- Add XR -> Device-based -> Locomotion System
- Go to Locomotion System -> Snap Turn Provider -> Controllers: Set to size to 2
- Drag in LeftHandController to Element 0 and 1.
- Test snap turn with thumb stick.
Teleportation
- Add Teleportation Area component to floor
- Test teleportation with grip button
Walking on the ceiling
- Add a flying platform to the scene. Flip the platform such that y is down.
- Add a teleportation area/anchor. Set Teleportation Configuration -> Match Orientation to Target Up.
Continuous Movement
- Add Continuous Move Provider to Locomotion System. Configure Controller.
- Add Continuous Turn Provider to Locomotion System. Configure Controller.
- Disable Strafe on Continuous Move.
Crouching Movement
- Make a wall with some space underneath (e.g., 50 cm)
- Add Character Controller. Now you cannot walk through walls anymore
- Add Character Controller Driver to Locomotion System. Now you can crouch underneath the wall.
Arm Swinging Movement
- Copy DeviceBasedContinuousMoveProvider to ArmSwingMoveProvider
- Get Device Velocity
- Get Device Trigger
- Flip movement direction
- Add Forward Source (instead of the main camera)
- Test also walking up a slope by adding a tilted plane
Add Sound Design
- Add teleportation sound to Teleportation area
- Play sound on Select Exited
- Add background ambient soundscape
- Add WalkingSounds Object in XR Rig. Add Audio Source. Add new script “PlayWalkingSounds”.
- Add multiple walking clips to script.
- Get CharacterContoller. Play walking sound when CharacterController velocity is positive.
- Wait some time between playing clips.
Extra Task
- Add Custom Recticle in Teleportation Area and change appearance XR Ray Interactor (0.5 points),
- Add vignette to continuous movement (0.5 point)
- Make world grabbing movement with inertia (0.5 point)
- Jumping Movement including jumping between platforms (1 point)
- Create Terrain/Level and test whether you can walk up gentle hills (1 points)
Extra Hard Task
- Ghost Mode, where you can temporarily dash through walls (1 point)
- Make climbing movement (1 point)
- Make Paddling, or flapping movement (1 point)
- Invent another custom movement (up to 2 points)