Neos-Metaverse / NeosPublic

A public issue/wiki only repository for the NeosVR project
197 stars 9 forks source link

Teleport/shift/bump locomotion rework #461

Open shiftyscales opened 4 years ago

shiftyscales commented 4 years ago

Inspired by comments made by Reiko9, it occurred that teleportation should be abstracted from a discrete locomotion mode to a toggle/setting on other locomotion methods. E.g. Fly, walk/run, zero-g, etc. would all have access to teleportation/shift/bump/smooth locomotion as determined via user setting/preferences.

This solves a few problems and accessibility concerns. Teleportation locomotion is often preferred by those first getting into VR, and those susceptible to motion/VR sickness.

Having teleportation as a separate locomotion mode often has left users that need it stranded in the case of worlds that don't have it enabled.

Teleport would act largely as it does now, but might need reworked to be usable in combination with fly mode- alternatively it could be made unavailable in fly mode in favor of shift or bump locomotion.

Shift locomotion, like in Half-Life: Alyx will move the user along a path between their starting point, and the end point they mark as a middle ground between smooth locomotion and teleport.

Bump locomotion will move the user in the direction they hold by a fixed (user-defined?) amount as based on either head or controller direction.

Smooth locomotion would remain about as it is now.

In having four levels of locomotion (in order of increasing comfort): Smooth, shift, bump, and teleport, we offer users the chance to experience the Metaverse in whatever means they find most comfortable while also opening up the value of other locomotion modes like flight to all users without compromising on their comfort.

Enverex commented 4 years ago

May be worth changing the default speeds in Neos for walking/running in smooth locomotion too. By default you zip around like you have rockets for feet and it's a bit odd and leads to a lot of everyone bumping into each other by accident, especially if people are new. The default walk speed in Neos is 8 but in reality it should probably be 3 or so (which feels like a quick walk / jog).

shiftyscales commented 4 years ago

I'd agree with the walk/run speeds being lowered considering if a host/world creator desires, they can speed things up, and also because fly locomotion can be used to quickly traverse a landscape.

Frooxius commented 4 years ago

I can change the defaults, but it will only affect new worlds. What do you feel would be good defaults?

TehTurk commented 4 years ago

I've always found 15 to be good, and twin stick is 30. But these are my personal settings because I just like to walk vs zip everywhere.

Enverex commented 4 years ago

Well 8 is already far too fast, so 15 would be crazy. I'd recommend 3 if you want something that feels like normal "jogging" speed and is on par with most other VR games.

TehTurk commented 4 years ago

The issue is the default smoothing too, not just speed, you don't want to also reduce peoples max speed if they need to run.

shiftyscales commented 4 years ago

It's worth noting that the speed value is in meters per second. A value between 3-4 represents a pretty good average "running" speed, and felt pretty nice while moving around various worlds that I tried.

If you need to cross large areas, you can always switch locomotion mode, or if you're the world creator/builder you can set it on the locomotion module.

TehTurk commented 4 years ago

This sounds pretty good, and true I just don't know if personal locomotion settings would be overrided by the world settings.

shiftyscales commented 4 years ago

I feel like in general user-values should be respected except in the cases where a world creator explicitly forces one otherwise. It would be nice if users could set their preferred speed. It could have a default value that's the same as the locomotion module.

If we do decide to change the default speed on the component- it would also mean that users could pick whatever speed feels most comfortable to them in their settings menu much in the same way that they define their turn speed, etc. through the settings.

Anomalous commented 4 years ago

I think this is outside the scope of this particular issue, but Shifty suggested I post it here, so here goes:

There's been some discussion lately about changing or tweaking locomotion modes, so I want to toss out the idea that there should be a physical flight mode in addition to the current 'fly' mode, which is more like no-clip mode.

The problem with using the current no-clip fly mode casually is the it breaks all sorts of interactions. Character colliders, character parenters, any tool or device that applies physics to the character, etc. Everyone wants to be able to fly around, and I certainly don't want to take that away from them. So a standard way of allowing flight while otherwise respecting physics seems worthwhile to me.

The current fly mode is certainly needed for development use, so I wouldn't want to see that go away. Just not be the default for everyone to use in casual settings. Maybe rename it to 'no-clip' or something else that indicates it's going to ignore all the physical interactions.

Frooxius commented 4 years ago

I changed the default speed to 4 on the 2020.4.19.195 build, should auto-upgrade all instances of physical locomotion that had the previous default.

Other changes will require more significant rework of bits, so that'll have to come later.

kobaj commented 3 years ago

Just to +1, I would really appreciate the ability to always have teleport (or teleport-like) locomotion as requested in the original Issue. IE, making it some sort of setting (or at the very least an always allowed option). Maps that remove or block teleport locomotion are rather unusable and exclude a majority of individuals that get motion sick easily.