TheNexusAvenger / Nexus-VR-Character-Model

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

Presence of custom StarterCharacter stops Nexus VR from loading #25

Closed xIcee closed 1 year ago

xIcee commented 1 year ago

I use the Oculus Quest 2, with both touch controllers on the Roblox Beta app.

When a custom StarterCharacter model is present ingame, Nexus VR ceases to work altogether, resulting in the character loading as if the Nexus VR script wasn't present at all. I unfortunately couldn't tell you exactly what the problem is, all I know is that several info logs appear in the developer console, and nothing happens.

Here's an example RBXL in which the problem occurs. (zipped because github has a filetype whitelist) NexusVRExampleCaseProblem.zip

TheNexusAvenger commented 1 year ago

I unfortunately couldn't tell you exactly what the problem is, all I know is that several info logs appear in the developer console, and nothing happens.

I am sensing an incompatibility with the StarterCharacter model. Can you post the logs you see?

xIcee commented 1 year ago

I unfortunately couldn't tell you exactly what the problem is, all I know is that several info logs appear in the developer console, and nothing happens.

I am sensing an incompatibility with the StarterCharacter model. Can you post the logs you see?

Here's a copy of logs when I test the game in VR.

  14:48:28.963  Requiring asset 10728814921.
Callstack:
Workspace.NexusVRCharacterModelLoader, line 90
  -  Server - NexusVRCharacterModelLoader:90
  14:48:29.306  Requiring asset 10728805649.
Callstack:
required_asset_10728814921.MainModule.NexusVRCharacterModel, line 116 - Load
Workspace.NexusVRCharacterModelLoader, line 95
  -  Server - NexusVRCharacterModel:116
  14:48:33.093  Unhandled Promise rejection:

-- Promise.Error(ExecutionError) --
CoreGui.RobloxGui.CoreScripts/FaceChatSelfieView:281: attempt to index nil with 'FindFirstChild'
CoreGui.RobloxGui.CoreScripts/FaceChatSelfieView:281 function updateSelfViewButtonVisibility
CoreGui.RobloxGui.CoreScripts/FaceChatSelfieView:398
CoreGui.RobloxGui.Modules.Settings.getCamMicPermissions:90 function requestPermissions
CoreGui.RobloxGui.Modules.Settings.getCamMicPermissions:276
CorePackages.Packages._Index.Promise340.Promise340:175 function runExecutor
CorePackages.Packages._Index.Promise340.Promise340:184
CorePackages.Packages._Index.Promise340.Promise340:1248
CorePackages.Packages._Index.Promise340.Promise340:175 function runExecutor
CorePackages.Packages._Index.Promise340.Promise340:302

Promise created at:

CoreGui.RobloxGui.Modules.Settings.getCamMicPermissions:275 function getCamMicPermissions
CoreGui.RobloxGui.CoreScripts/FaceChatSelfieView:405 function getPermissions
CoreGui.RobloxGui.CoreScripts/FaceChatSelfieView:2027 function Initialize
CoreGui.RobloxGui.CoreScripts/FaceChatSelfieView:2108

CoreGui.RobloxGui.Modules.Settings.getCamMicPermissions:275 function getCamMicPermissions
CoreGui.RobloxGui.CoreScripts/FaceChatSelfieView:405 function getPermissions
CoreGui.RobloxGui.CoreScripts/FaceChatSelfieView:2027 function Initialize
CoreGui.RobloxGui.CoreScripts/FaceChatSelfieView:2108
  -  Client - Promise340:1849
  14:48:35.870  Requiring asset 6738245247.
Callstack:
cloud_2971874773.Atmos.PluginUpdates, line 36
cloud_2971874773.Atmos.PluginUpdates, line 35 - getLatestVersion
cloud_2971874773.Atmos.Script, line 322
  -  Server
  14:48:39.924  Infinite yield possible on 'Workspace.xIcee0.Humanoid:WaitForChild("BodyDepthScale")'  -  Studio
  14:48:39.925  Stack Begin  -  Studio
  14:48:39.925  Script 'ReplicatedStorage.NexusVRCharacterModel.Character', Line 159 - function new  -  Studio - Character:159
  14:48:39.925  Script 'ReplicatedStorage.NexusVRCharacterModel.State.CharacterService', Line 68 - function GetCharacter  -  Studio - CharacterService:68
  14:48:39.925  Script 'ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController', Line 52 - function UpdateCharacterReference  -  Studio - BaseController:52
  14:48:39.925  Script 'ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController', Line 66 - function Enable  -  Studio - BaseController:66
  14:48:39.925  Script 'ReplicatedStorage.NexusVRCharacterModel.Character.Controller.TeleportController', Line 39 - function Enable  -  Studio - TeleportController:39
  14:48:39.925  Script 'ReplicatedStorage.NexusVRCharacterModel.State.ControlService', Line 87 - function SetActiveController  -  Studio - ControlService:87
  14:48:39.925  Script 'Players.xIcee0.PlayerScripts.NexusVRCharacterModelClientLoader', Line 79  -  Studio - NexusVRCharacterModelClientLoader:79
  14:48:39.926  Stack End  -  Studio

I just inserted a default R15 StarterCharacter rig into StarterPlayer, so I don't see why this shouldn't work.

TheNexusAvenger commented 1 year ago

Infinite yield possible on 'Workspace.xIcee0.Humanoid:WaitForChild("BodyDepthScale")' - Studio

This is the problem. Nexus VR Character Model assumes that the NumberValues for scaling are provided, which isn't in this case (lines 158-163 in Character). For anyone looking to fix this, my recommendation would be to add a function to Character to get the scaling (returns the value or 1 if it doesn't exist), then using it in BaseController and TeleportController.

xIcee commented 1 year ago

Well, at least for now this isn't too big of a problem, just make sure that your StarterHumanoid has those values inside of it.

TheNexusAvenger commented 1 year ago

Resolved in version 2.7.0.