How should I make a Player Character for VR?

Hello. I’d like to integrate VR support into a project that I am working on, but I am unsure on how to make the player character mesh so that it doesn’t feel unusual to the player. I wanted to integrate motion controls for peripherals like the Sixense Stem and Oculus Touch and I was wondering whether or not I should have the players hands floating instead of having arms because these peripherals cannot track the whole arm. In many Oculus demos I’ve seen that the hands are floating in front of the player and it seems natural despite not having arms. On the other hand, if the player has arms, while that would be more realistic, the motion tracking peripherals can’t track the whole arm and I’d have to guess where the elbows are based on the position of the hands.I was wondering what the best approach would be for doing this so that the player can have a natural and immersive experience. Thanks for your help. :slight_smile:

Use a “third-person” character, remove the head, position camera where the head should be :slight_smile:

This method is also known (now) as “True First Person”

Thanks. I was unsure if having the avatar’s movements not corresponding with your own would be disorienting, but it may not be as much of a problem as I think. I’ll try working on it as soon as I can.

I would say that it basically depends on the freedom of movement that you are prepared to give to your user in real-life while playing your VR experience.

What i mean by that is that if your user is allowed to physically turn or walk around then it’s very difficult to correctly infer the position of the torso (and therefore the arms) with only head and hand tracking. In this case it’s less immersion-breaking to have an invisible avatar with floating hands than an avatar that behaves strangely. I believe this is the main reason why all HTC Vive demos and also the Oculus Touch ToyBox demo don’t show a full avatar.

On the other hand if you tell your user that he cannot move his feet to walk or turn around and that he has to navigate the virtual world only by using some sort of controller, then you can assume that his hips are going to be more or less static and it’s possible to get a reasonably accurate pose of the torso and arms using IK, see First-Person VR Template for a working example (without the hand-tracking).

I think that once we have the ability to track the user’s torso/hips we will be able to move freely in VR and also have full-body avatars, but for now it’s gonna have to be either one or the other.

In our VR game, we built out the complete character mesh. The head is a separate mesh from the rest of the body and its position and orientation are placed at the HMD position and orientation. We render the head because the player may look into a reflective surface (such as a mirror) and they need to see their head. We also render the whole body because the player is controlling the camera. If they look down, they should be able to see their complete body.

We’ve also integrated leap motion with the characters hands, so when you move your hands, your character hands mirror your hand positions exactly. From user testing, we’ve found that this is a really positive and exciting feature. My favorite reaction so far was from a PM at Amazon:
Him: “Okay, VR is pretty cool…”
Me: “Now move your hands in front of your face.”
Him: “WHUT?!”

One thing we found is that you want to be really careful with your character hand animations when the character is running. The hands should not come close to the characters eyes! This causes people to get motion sickness and generally just irritates people.