TheNexusAvenger / Nexus-VR-Character-Model

Maps Roblox characters to the VR inputs of players.
MIT License
67 stars 12 forks source link

Roblox compatibility with Nexus VR issue #17

Closed Funrollercoaster606 closed 2 years ago

Funrollercoaster606 commented 2 years ago

When using the newest release in the Nexus VR demo place, it will for some reason not work on ONLY this game. https://www.roblox.com/games/11486504255/Beat-Sword The Roblox gui pops up, i cannot access the Nexus VR settings menu, and its always ThirdPerson without tracking movements. This only occurs with a StarterCharacter. But i need the startercharacter as i do not know how to attach parts to a rig before its spawned.

TheNexusAvenger commented 2 years ago

There isn't enough information to go on. The system assumes the Roblox character model, which may not be valid with the StarterCharacter you have. Most likely you will have a warning from a WaitForChild.

Funrollercoaster606 commented 2 years ago

I do not get any errors, and when LocalCharacterTransparency = 1, it will put me in first person, yet i cannot access Nexus Menu, but the little green pointers for ClickDetectors appear, and i can hold tools. Yet the real rig, does not move. And the "Put on headset" appears when the headset is not attached. Heres my code. Hopefully this can help.

--[[ TheNexusAvenger

Loads Nexus VR Character Model. GitHub: TheNexusAvenger/Nexus-VR-Character-Model --]]

local Configuration = { Appearance = { --Transparency of the character when in first person. LocalCharacterTransparency = 0.5,

    --If true, arms will be allowed to disconnect.
    --Recommended to be true locally so that the controllers match the hands,
    --and false for other players so that arms appear normal.
    LocalAllowArmDisconnection = true,
    NonLocalAllowArmDisconnection = true,

    --Maximum angle the neck can turn before the torso turns.
    MaxNeckRotation = math.rad(35),
    MaxNeckSeatedRotation = math.rad(60),

    --Maximum angle the neck can tilt before the torso tilts.
    MaxNeckTilt = math.rad(60),

    --Maximum angle the center of the torso can bend.
    MaxTorsoBend = math.rad(10),
},
Camera = {
    --Options for the camera that can be enabled by the user.
    EnabledCameraOptions = {
        "Default",
        "ThirdPersonTrack",
    },

    --Default camera option.
    DefaultCameraOption = "Default",
},
Movement = {
    --Movement methods that can be enabled by the user.
    EnabledMovementMethods = {
        "Teleport",
        "SmoothLocomotion",
        --"None", --Disables controls but still allows character updates. Intended for stationary games or momentarily freezing players.
    },

    --Default movement method.
    DefaultMovementMethod = "Teleport",

    --Blur effect for snap turning and teleports.
    SnapTeleportBlur = true,
},
Menu = {
    --If true, a gesture will be active for opening
    --the Nexus VR Character Model menu. If you manually
    --set this to false, you will lock players from being
    --able to change camera options, movement options,
    --recallibration, and chat.
    MenuToggleGestureActive = true,
},
Output = {
    --To suppress warnings from Nexus VR Character Model
    --where supported (missing configuration entries),
    --the names of the warnings can be added here.
    --Add "All" to suppress all warnings.
    SuppressWarnings = {},

    --If true, clients can check the client output to see
    --if Nexus VR Character Model is loaded. In order for
    --the message to appear, the client must hold down Ctrl
    --(left or right) when opening the F9 developer console.
    AllowClientToOutputLoadedMessage = true,
},
Extra = {
    --If true, Nexus VR Backpack (https://github.com/TheNexusAvenger/Nexus-VR-Backpack)
    --will be inserted into the game and loaded. This replaces
    --the default Roblox backpack.
    NexusVRBackpackEnabled = true,
},

}

--Load the Nexus VR Character Model module. local NexusVRCharacterModelModule local MainModule = script:FindFirstChild("MainModule") if MainModule then NexusVRCharacterModelModule = require(MainModule) else NexusVRCharacterModelModule = require(10728814921) end

--Load Nexus VR Character Model. NexusVRCharacterModelModule:SetConfiguration(Configuration) NexusVRCharacterModelModule:Load()

TheNexusAvenger commented 2 years ago

That still isn't enough information for me to go on. All I can assume from this is you have the loader somewhere in a game I can't access. There isn't any information about the StarterCharacter that I can go with.

Funrollercoaster606 commented 2 years ago

Ill uncopylock the game so you can take a peek.

Funrollercoaster606 commented 2 years ago

Heres the uncopylocked place link: https://www.roblox.com/games/11486504255/Beat-Sword

TheNexusAvenger commented 2 years ago

Nexus VR Character Model assumes the Humanoid has the following that are not present: BodyDepthScale, BodyWidthScale, BodyHeightScale, and HeadScale and leads to infinite yielding. Either those values need to be added or a pull request is required to make Nexus VR Character Model only read them if they exist and default to 1 if they don't.

Funrollercoaster606 commented 2 years ago

So what do i need to do to fix this?

TheNexusAvenger commented 2 years ago

Without changing Nexus VR Character Model, add those listed NumberValues to the Humanoid in the starter character with a value of 1.

With changing Nexus VR Character Model, create a pull request that removes any WaitForChilds on those values and fetches the values when needed.

Funrollercoaster606 commented 2 years ago

Okay! Ill try this. Thanks for all the help!

Funrollercoaster606 commented 2 years ago

It worked! Have a nice day!