Animate Avatar (VMC Connection, OBS Integration)

Animate your avatar with a webcam and motion capture

This page has been machine translated and may contain inaccuracies.
In this guide, the avatar display app of VRC Avatar Viewer is referred to as the "Viewer App", and the motion capture app (Motion Capture for VRC Avatar Viewer) is referred to as the "Capture App".

By combining the VRC Avatar Viewer and Motion Capture for VRC Avatar Viewer (hereinafter referred to as "Capture App"), you can reflect movements from a webcam or iPhone (iFacialMocap) onto your avatar. You can also use it for streaming with OBS Studio and other tools. This guide will walk you through the setup in the following steps.

Note that the Capture App processes camera footage and iFacialMocap received data locally. Except for explicit VMC and VRChat OSC communication initiated by the user, there is no communication with external servers.

Motion Capture and Face Tracking
Motion Capture and Face Tracking
OBS Integration
OBS Integration
  1. Track your movements and facial expressions with the Capture App
  2. Send them to the Avatar Viewer via VMC protocol to animate your avatar
  3. Integrate the Avatar Viewer into OBS and use it as a broadcast source (optional)

What You Need

  • VRC Avatar Viewer (main application)
  • Motion Capture for VRC Avatar Viewer (Capture App / distributed on BOOTH)
  • Webcam (if you want to move your body and arms. 720p or higher recommended)
  • Face ID-compatible iPhone or iPad Pro + iFacialMocap (if you want to move only facial expressions and head without a webcam, or to improve facial expression accuracy)
  • Streaming software such as OBS Studio (optional)
[Webcam] → [Capture App] →VMC / UDP→ [Avatar Viewer] →Spout / Transparent Window→ [OBS]
[iPhone (iFacialMocap)] → [Capture App] →VMC / UDP→ [Avatar Viewer]
Tips
  • This guide first explains a configuration where everything runs on a single PC. If you want to separate the streaming PC and capture PC, there is a supplement at the end of Step 2
  • If you use only iFacialMocap without a webcam, you can move your avatar's facial expressions, head movements, and gaze. A webcam is required for body, arm, and lower body movements
  • For information about installing the Avatar Viewer itself and loading avatars, please first refer to From Avatar Export to Display
1

Prepare the Capture App

The Capture App is a Windows application that estimates body, arms, fingers, and facial expressions from webcam footage and transmits them externally via the VMC protocol. Even without a webcam, you can use iFacialMocap to transmit facial expressions, head position, and gaze.

Capture App Screen
Capture App Screen

1-1. Download and Launch

  1. Download the Capture App ZIP from the BOOTH distribution page
  2. Extract the ZIP and double-click Capture.exe to launch

1-2. Start the Webcam

  1. Select "Camera", "Resolution", and "FPS"
  2. Click the "Start Camera" button
  3. Confirm that you appear in the preview
  4. Stand in front of the camera in a natural posture, as you will press "Initial Calibration" in Step 2
Start the Webcam
Start the Webcam
Tips
  • Position yourself so that your upper body is visible in the frame.
  • Keep the background as simple as possible, and ensure there is enough light for your face to be clearly visible

1-3. Use without Webcam (iFacialMocap Only)

If you don't have a webcam, select "No Camera (Use iFacialMocap)" from the camera dropdown. In this mode, you don't use the "Start Camera" button, and only transmit facial expressions, head direction, and gaze received from your iPhone.

  1. Launch iFacialMocap on your iPhone and note the IP address displayed on the screen
  2. In the Capture App, select "No Camera (Use iFacialMocap)" from the "Camera" dropdown
  3. Enter your iPhone's IP address in "iFacialMocap IP Address"
  4. Turn "Use iFacialMocap" ON
  5. When the status shows "Receiving", press "Initial Calibration"
  6. After calibration, press "Start Transmission"
What Moves in This Mode
  • Facial expressions, head, and gaze can be obtained from iFacialMocap
  • Arms, upper body, and lower body require a webcam. If using iFacialMocap only, focus on transmitting facial expressions and head

1-4. Adjust Movements

If movements don't look right, you can adjust them using the Motion Adjustment sliders at the bottom of the screen. Parameters are divided by section: upper body, arms, hands, and eyes.

Motion Adjustment
Motion Adjustment
Section Parameter Effect
Upper Body Stabilization Reduces jitter (higher values cause slower tracking)
Upper Body Responsiveness Tracking response to sudden movements (higher values make movements more agile)
Upper Body Motion Amount Magnitude of output movement (lower values are more subtle)
Arms Stabilization Reduces fine arm jitter (higher values cause slower tracking)
Arms Responsiveness Tracking response of arms to sudden movements (higher values make movements more agile)
Arms Motion Amount Magnitude of arm movement (lower values are more subtle)
Hands Front/Back Adjusts whether hands tend to move forward or backward from the body
Eyes Motion Amount Adjusts the magnitude of gaze movement
Eyes Vertical Position Adjusts the baseline position of gaze in the vertical direction
Eyes Ease of Closing Adjusts how readily blinking and eye closing occur
Eyes Ease of Opening Makes the avatar's eyes open more readily in the normal open state

Settings are automatically saved when the app closes. The eye parameters affect gaze and blinking output regardless of whether you use a webcam or iFacialMocap for facial expressions.

1-5. When There's a Mismatch Between Human and Avatar Posture

Pressing the "Recalibrate" button will restart the reference posture after a countdown of the specified number of seconds. The first time it says "Initial Calibration", and from the second time onward it says "Recalibrate".

1-6. Select Body Parts to Transmit

Use the "Body Parts to Transmit" checkboxes in the External Transmission section to individually turn ON/OFF which body parts are reflected on your avatar. Body parts turned OFF will remain static in their default pose.

Select Body Parts to Transmit
Select Body Parts to Transmit
Body Part Description
Facial Expressions Face tracking results including blinking, mouth, and gaze
Head Head direction (neck rotation)
Arms Arm and finger movements
Upper Body Upper torso tilting, shoulder movements
Lower Body Hip and leg movements
Usage Examples
  • If streaming while sitting in a chair, turning OFF Lower Body can reduce misdetections of standing and sitting
  • If using a different tool (such as VRCFaceTracking) for facial expression tracking, you can turn OFF Facial Expressions to avoid conflicts
  • If using only iFacialMocap, you can turn ON Facial Expressions and Head, and turn OFF Arms, Upper Body, and Lower Body for clearer operation

1-7. Lip Sync

A feature that generates mouth movements (lip sync) from microphone audio. It responds faster than webcam face tracking, resulting in more natural mouth movements. This is useful for singing streams or streaming while wearing a mask.

Lip Sync
Lip Sync

How to Use

  1. Turn ON the "Enable" toggle in the "Lip Sync" section
  2. Select the input device to use from the "Microphone" dropdown
  3. Speak and confirm that the volume meter next to it responds
Tips
  • While Lip Sync is ON, microphone volume and vowel analysis results take priority over webcam mouth movements
  • If the microphone is not responding, check Windows sound settings to confirm the input device is enabled
2

Integrate with Avatar Viewer and Animate Your Avatar

Motion is transmitted from the Capture App to the Avatar Viewer via the VMC Protocol (OSC over UDP). Simply enable reception on the Avatar Viewer side and specify the transmission destination on the Capture App side to integrate them.

2-1. Avatar Viewer Side: Start Reception in Streaming Mode

  1. Display your avatar in the Avatar Viewer
  2. Click the Streaming Mode button in the toolbar
  3. If needed, open "Face Tracking" and set the type to match the Capture App's "Face Tracking"
  4. Confirm that the VMC Reception Port is set to 39539
  5. Press the "Start" button for reception
Streaming Mode Screen
Streaming Mode Screen

Main Items in the Streaming Panel

ItemContent
IKTurns arm position correction ON/OFF. Standard is OFF. If wrist or arm direction looks unnatural, leave it OFF
Field of ViewAdjusts the camera angle of the streaming view. Smaller values are more flat and suitable for VTuber streaming, larger values are wider angle
Zoom StrengthAdjusts the strength of zoom changes in response to head forward/backward movement
Face ForwardResets only the avatar's direction to face forward without moving its position
Camera Position: Save / RestoreSaves the current streaming camera position and field of view, allowing you to return to the same composition later
When Using VRCFT
  • Setting the face tracking type to VRCFT makes the Viewer side also use the VRChat OSC Reception Port in addition to VMC. You can normally keep it at 9000
  • If another application like the VRChat client is using the same OSC port, reception may fail. In that case, change the port

2-2. Capture App Side: Start Transmission After Calibration

  1. Set the Capture App's "Transmission Destination IP" to 127.0.0.1 and "VMC Port" to 39539
  2. If using VRCFT, also set "VRC OSC Port" to the same value as the Viewer's VRChat OSC Reception Port (normally 9000)
  3. Prepare to receive from your webcam or iFacialMocap
  4. Press the "Initial Calibration" button
  5. Wait for the countdown to finish and record your initial posture
  6. Press the "Start Transmission" button
Calibration
Calibration
Start Motion Transmission
Start Motion Transmission

Your avatar will now begin moving in sync with your movements. If using iFacialMocap only, facial expressions, head, and gaze will be reflected.

Conditions for "Start Transmission" Button to Be Enabled
  • When using a webcam: The camera is active and initial calibration is complete
  • When using iFacialMocap only: The camera is set to "No Camera (Use iFacialMocap)", iFacialMocap is Receiving, and initial calibration is complete
  • When using iFacialMocap only, the "Start Camera" button is disabled. This is normal behavior
About Transmission Type
  • Below the "Start Transmission" button, a caption showing "Transmission Type: VMC" or "Transmission Type: VMC + VRChat OSC" appears. This indicates your current transmission protocol
  • The caption changes based on your selection of facial expression transmission format (VRM Standard / Perfect Sync / VRCFT). Only when VRCFT is selected does face tracking data flow to both VMC and VRChat OSC
  • For more details about facial expression tracking, see the Facial Expression Tracking or VRCFaceTracking Integration guides
Tips
  • If movements appear stiff, open "Motion Smoothing" in the Viewer's streaming mode to adjust smoothing for head, body, hands/arms, gaze, blinking, eyebrows, and mouth individually
  • Moving the slider to the right makes movements smoother and reduces trembling. However, this increases latency
  • When using VRCFT, facial expression smoothing is disabled
Motion Smoothing
Motion Smoothing

2-3. When Movements Don't Work Properly

Check items for issues such as being unable to start transmission, avatar or facial expressions not moving, iFacialMocap remaining in connection standby, or movements freezing are compiled in the Streaming Mode FAQ.

2-4. When You Want to Transmit from a Different PC

If you want to use separate PCs for capture and streaming, set the Capture App's "Transmission Destination IP" to the IP address of the Avatar Viewer PC. Allow UDP 39539 reception in the Avatar Viewer PC's firewall. Same LAN with wired connection is recommended.

3

Facial Expression Tracking

Facial expression tracking is covered in separate guides.

4

Import Avatar into OBS Studio

There are two methods to import the Avatar Viewer as a broadcast source in OBS Studio (hereafter OBS). The Spout2 method is recommended as it offers better image quality and performance, but you can also use the "Window Capture" method which doesn't require plugin installation.

Method A: Output to OBS Using Spout2 (Recommended)

Spout is a mechanism for directly sharing video between applications on Windows. It allows you to pass your avatar to OBS with high quality and low latency.

  1. OBS Side Preparation Install Spout2 Plugin for OBS Studio and restart OBS
  2. Avatar Viewer Side Open Streaming Mode and start Spout broadcasting
  3. OBS Side Add a source, select "Spout2 Capture", and choose the output being sent from the Avatar Viewer
Tips
  • Spout can also pass the alpha channel (transparency information), so you can composite with a transparent background in OBS
  • Spout output has anti-aliasing applied just like normal display

Method B: Transparent Background Mode + Window Capture

This method is suitable if you don't want to install plugins or want to use it as a desktop mascot as well.

  1. Turn ON Transparent Background Mode from the Avatar Viewer toolbar (the background disappears, leaving only the avatar)
  2. Add a "Window Capture" source in OBS and select the Avatar Viewer window
  3. Adjust cropping and size to position the avatar as desired
Tips
  • You can still control the avatar camera with the mouse while in transparent background mode
  • You can open streaming mode even in transparent background mode, allowing you to animate the avatar on your desktop while streaming