ExtendRealityLtd / VRTK

An example of how to use the Tilia packages to create great content with VRTK v4.
https://www.vrtk.io/
MIT License
3.69k stars 993 forks source link

Problems with Axis movement Locomotion #2093

Closed MrChickenBacon closed 3 years ago

MrChickenBacon commented 4 years ago

Environment

Steps to reproduce

  1. Download v4 and go into sample farm scene.
  2. Start play mode and go open options-menu -> slide locomotion options to "axis movement".
  3. Walk into the barn and climb up the ladder.
  4. Try to move to the Zip Wire. Now when you move on the 2nd floor of the barn the controls will start to freeze and become unresponsive, there's also problem with snap turning when this happens, when this happens no movement buttons work correctly, but you can still spawn the options menu and select an other locomotion option to get out of the stuck. One time i also got teleported from inside the barn and out of the building and back to the starting position, and then the controls started to move me horizontally to the left automatically.

Expected behavior

That axis movement should work normally without becoming unresponsive. And that snap turns still work as expected.

Current behavior

The axis movement controls become unresponsive and certain parts. And feels buggy and should be looked into. Snap turns also malfunction when this happens. There are no errors being reported in the unity console when these issues happens.

You can also get the "player gets moved automatically to the left" bug when you replace the environment and enable axis movement as default locomotion.

I recorded what happens: https://streamable.com/uxcf8

In the video you can see me move to the barn and on the second floor there are control stutters. Then when i move out of the barn. I start sliding to the left, without pushing the joystick. You can see me leaving the touch controllers in front of me, but still it moves the player to the left.

MrChickenBacon commented 4 years ago

Check out this slack thread for a possible solution: https://vrtoolkit.slack.com/archives/C1EFUH55K/p1580086565489900 PatrickM has a technical explanation to what might be the cause of this. And helped me with a temporary fix.

BelieveXiaoShuai commented 4 years ago

I could not go into the link

thestonefox commented 4 years ago

Yeah don't post slack links as slack is deleted. instead post on the vrtk forum https://forum.vrtk.io as it is persistent

L4Z3RC47 commented 4 years ago

@thestonefox your link is broken, looks like your forums are here : https://flarum.vrtk.io/

MrChickenBacon commented 4 years ago

I could not go into the link

Taken from Slack: PatrickM Jan 27th at 1:56 AM @ChickenBacon Source of issue: Something is breaking the connection between your real inputs and the internal inputs on AxesToVector3. These are float actions that live at AxesToVector3->Internal->AxisData->AxisInput. When working properly these float actions have their sources set to whatever inputs you specified in the facade by the AxesToVector3Processor.cs script. Workaround: Prevent AxesToVector3Processor from running the ConfigureAxisSources method and manually set the input sources to your real inputs, bypassing the facade. Real fix: Something is amiss with the ConfigureAxisSources method in AxesToVector3Processor. When this runs in the script's onenable, the line "LateralAxis.RunWhenActiveAndEnabled(() => LateralAxis.AddSource(Facade.LateralAxis))" and the line "LongitudinalAxis.RunWhenActiveAndEnabled(() => LongitudinalAxis.AddSource(Facade.LongitudinalAxis));" are not actually performing this task. It should do this, and actually add the sources.

thestonefox commented 4 years ago

@thestonefox your link is broken, looks like your forums are here : https://flarum.vrtk.io/

sorry, the forum.vrtk.io isn't a https link, so http://forum.vrtk.io will work (and just forward to the https https://flarum.vrtk.io/)

BelieveXiaoShuai commented 4 years ago

I could not go into the link

Taken from Slack: PatrickM Jan 27th at 1:56 AM @Chickenbacon Source of issue: Something is breaking the connection between your real inputs and the internal inputs on AxesToVector3. These are float actions that live at AxesToVector3->Internal->AxisData->AxisInput. When working properly these float actions have their sources set to whatever inputs you specified in the facade by the AxesToVector3Processor.cs script. Workaround: Prevent AxesToVector3Processor from running the ConfigureAxisSources method and manually set the input sources to your real inputs, bypassing the facade. Real fix: Something is amiss with the ConfigureAxisSources method in AxesToVector3Processor. When this runs in the script's onenable, the line "LateralAxis.RunWhenActiveAndEnabled(() => LateralAxis.AddSource(Facade.LateralAxis))" and the line "LongitudinalAxis.RunWhenActiveAndEnabled(() => LongitudinalAxis.AddSource(Facade.LongitudinalAxis));" are not actually performing this task. It should do this, and actually add the sources.

When do I need to call AddSource manually?