The VRChat Documentation Hub

Welcome to the VRChat Documentation hub. You'll find comprehensive guides and documentation to help you start working with VRChat as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Full-Body Tracking

VRChat supports additional tracking points using the HTC Vive Trackers. These work with the Lighthouse ecosystem to permit these two additional modes of motion capture:

  • Four-Point (4PT): Tracking headset, two controllers, and one hip tracker
  • Six-Point (6PT): Tracking headset, two controllers, hip tracker, and one tracker on each foot

At this time, VRChat supports a maximum of three additional trackers in addition to the headset and controllers. VRChat does not officially support any other method of Full-Body Tracking.

Some users have found success with various other methods using other hardware (such as the Kinect). We don't support these methods, but if it works for you, that's fine! We will be unable to help you via VRChat Support with these alternate methods, however.

❗️

Experimental Implementation

This system is experimental and is subject to change or overhaul that may deprecate or modify previous behavior! If you're using this system, pay close attention to updates to ensure you are adapting to new behavior and requirements.

Initial Setup

In order to avoid issues with mixed-up trackers and controllers, it is considered best practice to define which tracker goes where in SteamVR. Here's how you do this:

  1. Launch SteamVR and turn on all your tracking devices.
  2. Launch VRChat.
  3. In SteamVR, select Devices and then Configure Controller. You may need to select VRChat as the game to configure.
  4. Your trackers may appear as "Vive Tracker in Hand". Select one of the trackers, and click "Manage".
  5. On the Manage Trackers page, select "Held in Hand". Change it to the appropriate location. For VRChat, this is going to be one of these three: "Left Foot", "Right Foot", and "Waist"
  6. Repeat steps 4 and 5 for each Vive Tracker. It may be helpful to label your trackers or keep track of them somehow so you always use them for the appropriate tracking location.

Using Full-Body Tracking in VRChat

When you boot-up VRChat with the required trackers paired with SteamVR, it will automatically detect that you are in "Full-Body" mode. Once loaded in, your avatar will be in a T-Pose, and you will have small spheres on the points where your trackers are located. This is called Calibration Mode.

🚧

Be careful while calibrating!

Make sure you aren't going to walk into a wall or object while calibrating! If your model is in an odd spot to calibrate, move into a better position, open your Quick Menu and click "Calibrate". This will reset the process.

To Calibrate, it is easiest to follow this procedure.

  1. Enter Calibration mode by booting into VRChat while wearing Full-Body tracking, changing to a new avatar, or clicking the "Calibrate" button in the Quick Menu.
  2. Ensure your Height setting in the Settings menu is correct. If this is incorrect, your feet may go through the floor!
  3. Make sure your playspace is calibrated properly and isn't offset by tools like OpenVR Advanced Settings or Playspace Mover.
  4. Your avatar will be attached or "pinned" to your HMD. This allows your viewpoint to always be correct, assuming you've set it correctly in the SDK.
  5. Look down and ensure your feet are properly lined-up with the tracker balls. Keep in mind that when you look back up, your avatar will move forward slightly-- so don't worry if the feet trackers are a bit too far forward. If you want to look at your IRL feet to ensure positioning, separating them by the width of one of your feet is usually good enough.
  6. Check your hip tracker and ensure it is in a reasonable location for your hip tracker.
  7. Optionally, align your arms with your avatar's arms. This helps ensure your body rotation is on point. You don't have to have your hands/arms aligned with your avatar's hands/arms during calibration, so don't worry about them too much.
  8. Look directly forward! No need to worry about your viewpoint-- it will always be "as good as it can be". If you're looking down when you press the triggers, your viewpoint will be off.
  9. Click both Interact buttons (typically Trigger) on your controllers simultaneously.
  10. Done!

If you want to use the old "legacy" method of calibrating, you can launch VRChat using the --legacy-fbt-calibrate launch option.

  1. Enter Calibration mode by booting into VRChat while wearing Full-Body tracking, changing to a new avatar, or clicking the "Calibrate" button in the Quick Menu.
  2. Align yourself with your avatar so you're "inside" of it.
  3. Align your feet with your avatar's feet using the spheres. If your legs are too long on your avatar, this may appear as if you are putting your feet in your shins. That's OK, but you'll be on "stilts".
  4. Align your hip tracker with the approximate position of your tracker on your own hip.
  5. Optionally, align your arms with your avatar's arms. This helps ensure your body rotation is on point.
  6. Look directly forward! Ensure your viewpoint is in roughly the right position. If it isn't, you might want to try adjusting your "User Height" in Settings and then restart calibration. This occurs when the avatar you're using doesn't have the proportions set right. This isn't ideal, but works for avatars that aren't proportioned very well. If you do adjust your User Height before calibration, set it back to your real height after calibration is complete.
  7. Click both Interact buttons (typically Trigger) on your controllers simultaneously.

Congratulations, you are now calibrated for Full-Body!

Rigging Requirements

There are special considerations if you are using Full-Body tracking. There are several recommendations that will ensure that your avatar works well when using Full-Body tracking. If you are using an avatar that hasn't had these refinements/checks performed, you may run into odd behavior.

First, a short glossary:

  • Bone Head - The bone's position. In Blender and most other 3D software, there is a Head and Tail to any given bone. Unity only uses the "tail" or "length" of a bone to determine the rotation of the bone transform. The Head determines the location of the bone transform.
  • IK-driven Bone - Any bone that is mapped in the Mechanim Rigging Configuration screen.
  • Bone Roll - The rotation of the bone along its local Y (up/down) axis.

Full-Body Tracking works best when:

The avatar being used is proportional to a typical human being in regards to limb and torso length. This is not a hard requirement, but it is ideal. If your limbs are disproportionate, you may experience behavior like "arm pull" (your avatar's arms are too short), "stilts" (your avatar's legs are too long), or other strange behavior. You may also have trouble aligning your viewpoint when calibrating if your general Legs>Hips>Spine>Chest>Neck>Head chain proportions are off.

The avatar's rig does not deviate greatly from the example rig given in the SDK named tpose-new.fbx.

"Roll" on all IK-driven bones should be set to zero. In reality, it doesn't really matter what value this is-- as long as all IK-driven bones have the same value.

There are no "Full-Body Hacks" in use such as flipped hips, extra leg bones, zero-length or unweighted necks, or other similar changes. These changes can have greatly detrimental effects to rig behavior, and will eventually break with future Full-Body Tracking changes.

Your User Height is set properly in Settings, and you do not crouch while calibrating. In addition, ensure that your playspace is "zeroed out"-- as in, you're not using Playspace Mover or OpenVR Advanced Settings to have an offset before calibrating. Doing so will cause significant issues.

The distance between bones is greater than zero. You shouldn't ever stack bones on top of each other when they're part of the IK-driven armature and are parented/children of each other. This is especially important for the Hip>Spine>Chest>Neck>Head chain!

The bottom of your hip bone should be above the top of your upper leg bones. The Hip should always be above the top of the leg bones! Don't move it too far, or you may run into issues where your hip "flips" upward during locomotion.

Move the hip up above the line established by the two upper leg bones.

In addition, if you experience "hip tilt", you will want to try making your Spine bone longer while retaining the root position of your Hip. In other words, move the head of the Spine bone downward towards the Hip, and move the tail of the Hip down to match (just to keep things orderly, remember that it doesn't much matter where the tail is in Unity).

Don't make your Hip bone too small (that'd mean your Spine is too close to the Hip) but try lengthening the spine to fix hip tilt issues.

📘

Keep in mind that Unity does not care about the "tail" or "length" of a bone as described in Blender and other 3D software, aside from using it to determine the rotation of the bone transform.

There is a very slight bend in the knee and elbows. This is required for the IK solver to operate properly. The bend can be extremely small, but it should bend "dominantly" in the appropriate direction. The bend for the elbows should be towards the back of the rig, and the bend for the knees should be towards the front of the rig. In other words, the corner formed at the elbow by the rig bones should always be pointing to the back, and the corner formed at the knee by the rig bones should always be pointing forward. Additionally, your legs should not be buckled inward-outward when viewed from in-front.

Here's some examples of what you should be aiming for:

Orthographic Side/Front View. Example for Leg bones. The bone below the Lower Leg is the Ankle/Foot.

Orthographic Top View. Example for Arm bones.

Tweaking your Rig

Although the full-body tracking system in VRChat is quite robust, it works especially well when you perform some tweaks. If you're interested in fixing up some common issues with your rig and making it feel perfect in Full Body Tracking, check out Kung's guide. It is extremely well-made, and very easy to follow given some basic existing knowledge of Unity and Blender.

Any of the fixes labeled "RIG HACK" are not recommended, however-- if you do use them, you should expect your rig to have issues if VRChat makes tweaks or changes in the future.

Avatars 3.0 Features

When you're creating an avatar with Avatars 3.0, you will have two new options that may be relevant to you while using Full-Body Tracking.

Use Auto Footstep

This option is on by default. It only applies to 3-point or 4-point tracking. Turning it off means you're disabling the procedural lower body animation for room-scale movement. This procedural animation is what plays when you move around in room-space while in 3 or 4-point tracking.

Leaving "Auto Footsteps" on (which is the default state) will still allow you to enable/disable tracking via the Tracking Control state behavior.

If "Use Auto Footsteps" is off, enabling/disabling tracking on your legs and hips won't do anything, and you're relying on your animations to drive your lower body at all times.

Force Locomotion Animations

This option is on by default. It only applies to 6-point tracking.

When "Locomotion Animations" is on, locomoting in FBT (as in, moving your joysticks) will play a walking/running animation, as it does in Live currently.

When "Locomotion Animations" is off, locomoting in FBT will NOT play the walking/running animation. This is useful if you wish to "mime" your walking with your full-body tracking movement.

If you are turning off "Locomotion Animations", do not use the default Base and Additive layers. You're expected to make your own!

Updated 2 days ago


Full-Body Tracking


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.