jure / aframe-blink-controls

A teleport (blink with rotation) component for A-Frame
https://jure.github.io/aframe-blink-controls
MIT License
50 stars 17 forks source link

Added position-warp option #29

Open thedart76 opened 1 year ago

thedart76 commented 1 year ago

Hi Jure,

As anticipated over X (Twitter), this PR implements a simple edit to your component to add the position warp option.

Reference on the Oculus Techniques and Best Practices: https://developer.oculus.com/resources/locomotion-design-turns-teleportation/#position-warp

I added the positionWarpDuration property to the component's schema so the users can tweak it as they want or need. I initially set its default value to 0.5 sec, but after using this locomotion method in immersive mode for a few minutes, I changed it to 1 sec as it provides more comfort.

NOTE: rather than a fixed speed, the fixed animation duration is an intended design choice: the resulting variable movement speed (proportional to the distance of the selected destinations) is indeed what makes this locomotion method feel natural, producing the result of "walking" to closer destinations and "running" to the ones farther away from the initial position of the user. This is, at least, what I wanted and needed to achieve in my prototype for an in-house project 🙂