Neos-Metaverse / NeosPublic

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

Locomotion wheel #2502

Open Cometstreak opened 3 years ago

Cometstreak commented 3 years ago

Describe the bug

Once a slot on a character's locomotion modules' index gets deleted, any of the modules that had a higher index ended up deleted. In addition, once deleted no more locomotion modules can be added, no matter the methods that I tried. Respawning will reset the effect, as well as restarting the world. The effect also affects the Logix for the Change Locomotion Node, likely due to the same issue that affects the Locomotion Wheel.

Relevant issues

None that I could find.

To Reproduce

(skip to second part if using world file) Start a new world session copy one of the existing locomotion's for your character check the locomotion wheel. Create an empty object, and add the physical locomotion module Using Local User and a locomotion attached to an empty object, with logiX use the "Install Locomotion Module" with the pulse trigger. Save world. (Second Part) using the pulse, install any number of modules, checking the count on the locomotion wheel. Make sure to check the final count. Then in the inspector, remove any of the locomotion modules (except for the bottom one), at least 1, only 1 is needed to cause the error check the inspector, it should show all the ones below the deleted one to be missing. Try using the pulse to create new modules. check the count on the locomotion wheel.

Using the world save, you can repeat for any number of locomotion objects.

in addition, trying to clone one of the existing modules results in no added modules, so try that too.

Expected behavior

Only the Locomotion Object that was deleted should be missing, the others should still be there. In addition, the ability to add more and install more of them onto the character should still work after deleting one of the objects.

Log Files

DESKTOP-BBVJOV9 - 2021.6.18.4 - 2021-06-17 23_22_08.log

Screenshots / Video

image image

Bug information (please complete the following information):

Additional context

I was trying to setup a way to change the local character's speed.

My guess is that whatever is supposed to determine what locomotion is available, cuts the rest of the objects off from the deletion point, and prevents more once it is cut off.

Reporters:

Comet: (Comet Streak Da Floof Derg#4267 (discord) CometDerg (Neos Account) CometStreak (steam)) no one else that I know of.

shiftyscales commented 3 years ago

Why/how are the locomotion module slots being deleted from the user @Cometstreak ? You mentioned: "I was trying to setup a way to change the local character's speed." so presumably that means you were installing a locomotion module onto them, and switching to it, yeah?

Was it because you were trying to uninstall/remove that module after the fact? If so, an issue was just opened, #2711 which should help with that use-case.

zkxs commented 3 years ago

This happens when you destroy the slot a of an installed locomotion module. When you do this the LocomotionController ends up with a nulled reference, which it isn't very good at handling and it causes some strange behavior. If you remove modules with the ClearExisting input of a Install Locomotion Modules node, things work fine. #2725 is also relevant to this.