This currently does not have foot planting, and I plan to drop it as part of the V3 release as I don’t want to mess with the character when Roblox is managing it. Not sure if Roblox plans to address foot planting with these types of small movements, but it would help both VR and other first-person games with strafing.
Okay, this is awesome! After a Roblox Studio update (or something) completely broke Nexus VR Character Model, I couldn’t really “test” anything in virtual reality anymore. Nexus said something about talking to Roblox about an official way to move the player’s hand and head, which made me hope that they would do it.
Recently, Roblox posted the spring 2024 roadmap and one thing caught my attention, VR avatar movement? An official counterpart to the character model?
I thought it would be a couple months before that cool feature was released, but I didn’t expect it to come so soon!
I’ve read about the limitations of this feature in this topic, but I’m still feeling interested in trying it myself (as soon as I find my Meta Quest 2).
If there’s one thing I’m still wondering about this, it’s whether the movements are visible server-side. With Nexus VR Character Model, characters were almost completely motionless on the server, but since this is native, perhaps it actually replicates? I would love that!
I feel as if not many developers will take advantage of this, however.
I suggest either having a little popup to let people know of the new VRService features, or to be a little more intrusive keep the new gestures active by default (activates on next publish). Developers could obviously disable it before publishing if it is a problem.
game.UserInputService.InputBegan:Connect(function(Input)
if Input.KeyCode == Enum.KeyCode.ButtonX then
local HumanoidRootPart = game.Players.LocalPlayer.Character.HumanoidRootPart
HumanoidRootPart.CFrame = CFrame.new(0, 0, -10) * HumanoidRootPart.CFrame
end
end)
There’s an easy fix to this:
game.UserInputService.InputBegan:Connect(function(Input)
if Input.KeyCode == Enum.KeyCode.ButtonX then
local HumanoidRootPart = game.Players.LocalPlayer.Character.HumanoidRootPart
HumanoidRootPart.CFrame = CFrame.new(0, 0, -10) * HumanoidRootPart.CFrame
workspace.CurrentCamera.CFrame = CFrame.new(0, 0, -10) * HumanoidRootPart.CFrame
end
end)
All you have to do is teleport the camera with the HumanoidRootPart so the character wont walk back to it
Some accessories may obscure the view
in first person if you are wearing specific accessories then your view may be obscured
local player = game.Players.LocalPlayer
player.CharacterAdded:Connect(function(character)
game:GetService("RunService").RenderStepped:Connect(function()
for i, Accessory in character:GetChildren() do
if Accessory:IsA("Accessory") then
if Accessory.AccessoryType == Enum.AccessoryType.Face or Accessory.AccessoryType == Enum.AccessoryType.Hat or Accessory.AccessoryType == Enum.AccessoryType.Hair then
if (character.Head.CFrame.Position - workspace.CurrentCamera.CFrame.Position).Magnitude < 6 then
Accessory.Handle.LocalTransparencyModifier = 1
else
Accessory.Handle.LocalTransparencyModifier = 0
end
end
end
end
end)
end)
If your avatar still obscures your view maybe relax a bit with the accessories
Great addition! I always wanted a “native” VR implementation rather than relying on NexusVR, mostly because i want to keep my game as custom as possible without using 3rd party modules or scripts.
However… Knowing that this just released, i also had some expectations when it comes to the implementation of it, considering the fact that its not a beta release.
Overall it works… Nothing crazy about it, but it has some important game-breaking bugs that need immediate attention. Moving on, i discovered a couple of issues as soon as i started using it in generic scenarios of the game, so those are not really “hard to reproduce” bugs.
Firstly, when using the “3rd person camera view” mode, as i get close to a wall, the character instantly moves on its own smashing into the part, becoming slightly uncontrollable.
Secondly, the first person mode has serios issues when it comes to teleporting. It takes significantly longer to move the avatar to the destination.
As soon as it change the view to third person, it gets back to normal.
Also the first person mode (and this is the craziest issue it has) refuses to work with simulated assemblies such as vehicles that have seats attached to it. In my case, testing the seat function makes the train jump and move like crazy, causing a massive derail, as if the player position forces the seat to move with it. I have not tested it yet with other simulated vehicles such as A-Chassis, but it might give similar results. (Also a funny thing, i get those white parts in my hands when the train despawns or when i get off a seat)
And lastly, the third person camera mode works with seats on assemblies, but as soon as i change the mode to first person view, it instantly throws me in all directions.
In conclusion, overall its ok… But i would have flagged it as a beta instead, because it cant be used in production like this…
This is truly wonderful! I’m excited to test this out!
Out of curiosity, will we ever get support for turning our character based on where our head is facing?
Last I knew, when you turn your head it doesn’t mean you’ll move forward in the direction you’re looking, which can make it extremely easy to get disoriented if you like to turn with your body rather than the joystick.
Yes, the controller models can be hidden; Nexus VR Character Model did it using this code (DefaultCursorService seems to be part of the module, so I commented it out):
--Disable the native VR controller models.
--Done in a pcall in case the SetCore is not registered or is removed.
task.spawn(function()
for i = 1, 600 do
local Worked = pcall(function()
StarterGui:SetCore("VREnableControllerModels", false)
-- DefaultCursorService:SetCursorState("Detect")
end)
if Worked then break end
task.wait(0.1)
end
end)
I’m getting the feeling that I’ve shown sometime else this code before and Nexus didn’t recommend using this code or something.
Thank you so so so much for this!!! This will make creating VR games in Roblox so much easier! I hope we will get alot more great VR content as there is not many right now! Thank you Roblox for finally giving us something we really wanted