SDK Components
When working with the VirgoMotion template, you will see the names VirgoMotion, LiveStudio, and RemoteControl appear together. Each one has a different role, so let's clarify them here.
For tasks like "I want to make my own avatar move" or "I want to swap out the scene," you don't need to know the internals to get the work done. But knowing which package is responsible for what will help you avoid getting lost when troubleshooting or customizing.
- VirgoMotion … The name of the entire product that captures motion from the iPhone camera and drives the avatar on the PC.
- LiveStudio … The foundational package set (open source) for building VTuber streaming apps. The VirgoMotion streaming app is built on top of it.
- RemoteControl … A feature within LiveStudio that lets external apps control the inside of Unity.
- LiveStudio SDK + VirgoMotion … A configuration that combines the LiveStudio SDK with the VirgoMotion integration adapter. This is the main subject of this documentation.
Virgo Motion
VirgoMotion is a set of applications that combine motion capture — capturing your movements with a single iPhone — and a VTuber Studio that reflects them onto a 3D avatar on a PC.
| Element | Role |
|---|---|
| Capture app (iPhone) | Analyzes posture from the camera image and sends it to the PC |
| Fusion app (PC) | Refines the capture results into avatar motion data. Holds the license information. Runs as a background process that starts and stops automatically, so you usually don't need to be aware of it. |
| Studio app (PC) | The main application that displays and streams the avatar. |
| Remote app (PC) | An app that uses the RemoteControl mechanism to operate the Studio and Fusion apps. |
Inter-App Connection Diagram
The VirgoMotionStudioTemplate distributed with the SDK is a starter template for the Studio app portion.
Live Studio SDK
LiveStudio SDK is an open-source Unity package set for building VTuber / avatar streaming apps.
Looking inside VirgoMotionStudioTemplate, you will find the following LiveStudio-related packages:
| Package | Role |
|---|---|
jp.lilium.livestudio | The shared streaming-app foundation: camera, lights, scene, screen control, build process, localization, etc. |
jp.lilium.livestudio.virgo | An adapter that pipes VirgoMotion motion into LiveStudio |
jp.lilium.remotecontrol | A mechanism for operating Unity apps from outside |
jp.lilium.nativegamepad | Allows Windows gamepads to be recognized even in the background |
jp.lilium.vrchatavatartransfer | Editor tool for taking VRChat avatars into non-VRChat environments |
The LiveStudio SDK itself is not VirgoMotion-specific. Swap out the motion input source and it can serve as the foundation for other streaming apps.
The functionality for connecting with VirgoMotion is handled by the jp.lilium.livestudio.virgo package.
Component Diagram
Here is the Studio app broken down by package:
Remote Control
RemoteControl is a mechanism for operating an app that embeds the LiveStudio SDK from outside. Using this, you can move the camera, change the lighting, or switch facial expressions during streaming without touching the Studio app itself.
The Remote App (VirgoMotionRemote) provides a UI that uses this mechanism to control the Studio app.
