Animating Your Avatar In VR

That was unexpected! :happy3:

Awesome update! It will save everyone some time by making a VR system a core-feature! I’m just wondering if this feature will be toggled on everywhere after some time.

:star: Thank you Roblox!

33 Likes

Never expected something like that to come.

19 Likes

Really good! Now VR games don’t need anymore to make an entire VR system to move players avatars.

18 Likes

This is a dream come true! I can finally feel embodied in VR :slight_smile:

17 Likes

Love to see further development on the VR side of things, hope to see more.

10 Likes

This is awesome. It solves the big use case that Nexus VR Character Model has tried to solve: immersion. Ever since the Meta Quest’s launch, I’ve been critical about how immersion-breaking not having your character’s movements match your real movements was. This existing and being native with a single property change is huge.

But… it isn’t perfect. As of my testing yesterday, teleporting players is completely broken. If you happen to move the character by using movement inputs (joystick, probably keyboard), you are fine. Once you use HumanoidRootPart.CFrame = ..., instead of your camera and character moving, your character moves, and then tries to move back to where your camera was. That is until you start moving, then the camera snaps to where the character is.

I can reproduce this on a baseplate with a simple “Button X to teleport” script.

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)

It is harder to see, but doing game.Players.LocalPlayer.CameraMode = Enum.CameraMode.LockFirstPerson will also yield the same result.

For those who use Nexus VR Character Model, all versions (V1 to V2.10) are probably incompatible with this. V3 will exist at some point to provide some feature parity (teleport controls, custom backpack, and a bit more) while supporting this. (Edit: For the adventurous, a preview version is out)

52 Likes

how do i enable VRSERVICE? i reallyyyy want it…

5 Likes

This is cool. Nice that we finally dont have to write our own code to make this work. How would animations look with gestures active though? And does it work for R6? (probably not)

5 Likes

it doesnt show for me.
image

4 Likes

You have to enable it, its in the announcement:

5 Likes

will you make a new version to nexus after this? or nope

9 Likes

alright! i didnt see this. thanks

6 Likes

Yes, eventually.

However, if you don’t need the teleport controls it might be time to switch off. The custom backpack is not tied directly to Nexus VR Character Model, and I think Roblox’s implementation is going to be enough for most cases (maybe not roller coasters though, as I don’t recall the camera being allowed to roll with the seat you are on).

(Edit: I mistook HeadLocked for Camera.VRTiltAndRollEnabled, which Nexus VR Character Model already enables.)

12 Likes

:happy1: A new version of nexus after a year! :woot: :+1:

6 Likes

Cool, exploiters don’t need to call :BreakJoints() on their character to render custom animations anymore

9 Likes

This is an option you can enable! Camera | Documentation - Roblox Creator Hub

7 Likes

Probably not, we don’t even have animated heads for r6…

7 Likes

This will forever be default false for existing places, but we are considering toggling the templates in studio to true.

16 Likes

I’ve not wanted to do the work to add VR to my games but this makes that a much easier possibility.

6 Likes

Good point, this current uses detected input in the control module to decide whether the camera should follow the character or the character should try to align with the VR camera. I’ll try playing around with saving root part position or distance limits.

11 Likes