|Description||The face-locked viewport ("tunnel") displays continuous motion and allows the user to steer the player like an FPS-style game. The peripheral view remains at the point of origin, so there is no controller-induced vection in the periphery.|
|Pros||Reduces VR sickness when moving with controller / gamepad|
This experimental technique is called Tunneling (because of its similarity to "tunnel vision") is an attempt to marry the strengths of both continuous and instantaneous locomotion. The idea is to confine controller induced vection to only a small central region of the view. This little face-locked viewport ("tunnel") displays continuous motion and allows the user to steer the player just like they normally would in an FPS-style game. Meanwhile, the peripheral view remains at the point of origin, so there is no controller-induced vection in the periphery. This allows the user to feel grounded and motionless while simultaneously steering the player with the first-person viewport. After the movement is complete, the periphery automatically snaps to the new player position, but the snap feels seamless because there is no disruption in the forward view. It simply expands to fully engulf the user.
So how does it feel? Not too bad in my opinion. The visuals can be slightly confusing if you are not prepared for it or if you pay attention to the periphery. But when you become engaged in the center view, the sides fade away from your attention - just as the "tunnel-vision" namesake suggests, and controlling the character feels as natural as any FPS. Once you stop to get your bearings, the periphery snaps to your location affording you a fully immersive view exactly when you need it. It's a pretty good compromise, or as one of my colleagues put it ... "hey you know, this doesn't completely suck." Which is about all you can hope for when dealing with the intractable problem of VR locomotion.
- The technique is scalable. You can increase or decrease the size of the tunnel view to increase or decrease vection - although in practice once the view gets too small it's a bit unusable for navigation.
- There is a potentially big rendering penalty. In the naive implementation you have to render two completely different views and composite them. However the lower FOV of the center view makes it less costly to render. Low resolution rendering of the periphery is an obvious optimization that should be considered. For an extreme optimization it might be possible to render the periphery monoscopically or simply as a cube map - although those techniques have potential downside in terms of incorrect parallax.