praydog / UEVR

Universal Unreal Engine VR Mod (4.8 - 5.4)
http://uevr.io
3.04k stars 157 forks source link

[FEATURE REQUEST] Teleport movement with laser pointer #54

Open nucleiis opened 9 months ago

nucleiis commented 9 months ago

Thank you for UEVR, it is already great but adding teleport will make it greater because there are tons of people cannot overcome or adapt VR nausea.

Since most UE4/5 games use the same character movement component, I guess it would be quite possible to add some laser pointer which can be controlled via VR controller and event handlers overriding character position / rotation using raycast on the floor (i.e UCharacterMovementComponent::FindFloor).

For VR newbies, this will make UEVR much more comfortable and enjoyable!

praydog commented 9 months ago

@narknon thoughts? Do all UE games have consistent raycast flags that are always going to hit a surface correctly?

praydog commented 9 months ago

Though if it is part of a FindFloor function for a built-in engine movement component that seems like it would work

narknon commented 8 months ago

I think FindFloor is more for directly under the movement component. Most games do use a child class of the UE movement component, but some don't so that may not always work.

I think the ideal setup would be either the projectile slope calculation function, two line traces for max tp distance then down to floor, or a single linetrace straight out from pointer if not doing a max distance option (having max distance feels like it would allow for better mods overall so you can't just tp across the map).

To check if it is a valid TP location you can check if there is nav data on the spot, though that should probably be a toggle for whether to check it or not because some games use weird custom nav.

emile0909 commented 7 months ago

If implementing teleport is relative complex, I have some thought which is inspired by how VRChat teleports and I myself feel comfortable. VRChat teleport

We can have a key bind to switch between normal mode and teleport mode. When user is in teleport mode, if user pushes left joystick, the camera position freezes; if user releases left joystick, camera position doesn't freeze and then teleports to the new location.

I suppose this need less effort to experiment and we can see if user is satisfied with this work around.

carlobs commented 1 week ago

Unfortunately I don't use UEVR because I suffer from nausea without Teleport... so I hope this feature will open UEVR to many players