<aside> πŸ’‘ Locomotion determines the method by which a player moves from point A to point B. A player can wear a 6DOF device, moving in the real world as is, and they also need auxiliary interactions to reach locations that are inaccessible due to the spatial limitations of the real world

</aside>

To read this documentation in dark mode, press ctrl+shift+L [Win] or cmd+shift+L [Mac]


Current solutions

In virtual reality, the widely used locomotion solutions can be essentially simplified into two types:

Strictly speaking, both teleportation and translation are forms of indirect manipulation since they both rely on an intermediary medium to achieve movement (using a fishing line or moving joystick). Drifting is a common solution in traditional screen-space video games, but in VR, it can cause motion sickness in new players without conforming to body-eye coordination. The latter is a mode of movement that does not exist in the real world, and in terms of user experience, it breaks the immersion of virtual reality.

To maintain a consistent user experience with the rest of the direct manipulation components, Project Touch introduces a new type of interaction - Tugging


Tugging

Moving through a surface using tugging

Moving through a surface using tugging

The inertia of locomotion

The inertia of locomotion

Tugging with zero gravity

Tugging with zero gravity

Using tugging, players move their avatars in virtual reality by grabbing an empty space and "pulling" themselves in that direction. This method of locomotion is similar to climbing in the real world. Imagine that the air in VR is filled with countless invisible handles for a player to climb. A player moves their avatar by grabbing these invisible handles.

The advantages of tugging include:

However, tugging also has its imperfections:


Gravity

By allowing players to actively switch gravity on and off, we can further expand the potential of tugging. Zero-gravity locomotion can bring the following advantages:

ζœ‰ι‡εŠ›ζ—ΆοΌŒι€šθΏ‡ζŠ“ε–ηš„δ½η§»

ζœ‰ι‡εŠ›ζ—ΆοΌŒι€šθΏ‡ζŠ“ε–ηš„δ½η§»