Upgrade Guide
LiveStudio SDK + VirgoMotion is distributed as an experimental version (-exp), and an upgrade can change the structure of projects or assets in a breaking way.
This page summarizes, for each version with a breaking change, what changed and how to adapt your existing project and assets.
If you're upgrading across multiple versions, check every version newer than your current one, oldest first.
For what's lost on the Studio app user side (live scenes and settings), see App Upgrade Guide.
Upgrade Flow
- Back up your project. If you're using Git or another VCS, commit your changes first.
- On this page, check the changes between your current version and the version you're upgrading to.
- Update the packages.
- Open the project in Unity and follow the steps for each version.
- Confirm there are no errors in the console, and verify behavior in Play mode.
- Re-export any assets (props, sets, etc.) that need re-exporting, using the latest SDK.
Changes and Steps by Version
0.26.0 ← 0.25.3
Where remotely addable prefabs are registered, and how lights are exposed, have changed. The scripting API has also been renamed from "Exposed" to "Live".
What changed
| Change | Impact |
|---|---|
| Where prefabs addable from the Remote App's "+" are registered moved from the UI definition to a LiveClassAsset | Prefabs registered in the UI definition are discarded the next time the UI definition is saved |
The dedicated light exposure class (LiveLight) was removed; lights are now exposed as a plain GameObject with a Light component | The shadow and parent (follow target) settings saved in existing live scenes are not carried over. The shadow setting changed from on/off to a choice of shadow type |
RemoteControl's Exposed* attributes and types were renamed to Live* | Scripts using the old names will fail to compile |
Animation bundles (*.anim.lsb) were generalized into asset packs (*.pack.lsb) | Existing *.anim.lsb files can still be loaded |
The Project Settings page names changed to Lilium Live Studio / Lilium Remote Control, and the Assets > Create menu moved under a Live Studio submenu | Only the location of the operations changes |
Steps
- Re-register any prefabs you had registered in the UI definition as a LiveClassAsset (note them down before saving the UI definition again). See Expose Any Property with a LiveClassAsset for how to use it.
- If your own scenes contain lights, re-set the shadow type and parent (follow target) for each light, then save the live scene again. Bundled scenes have already been migrated.
- If your own scripts use
[ExposedClass]or similar, replace them withLive*. See Migrating from the Old Names for the mapping.
This version also includes other API renames and removals. Check whether you're using any of the following. See the API tab's Remote Control / Live Studio / Live Studio Virgo release notes for details.
ExposedCamera/ExposedLight→LiveCamera(LiveLightwas removed)ICameraController→CameraControllerBaseFrameRecorderControllermoved tojp.lilium.remotecontrol;FrameRecorderProject→LiveDataRecorderProject- Observer interfaces such as
IVRMLoadObserverwere removed in favor of C# events LiveRecipes.RegisterResolver→AddResolver[LiveFunction]calls are no longer recorded to a take unless you declarelane = FrameLane.Event- The REST API root moved from
/api/*to/live/*, and dedicated routes for cameras, expressions, VRM loading, etc. were consolidated into the generic live-object API
0.25.3 ← 0.24.3
How avatar override clips are specified and socket names have changed, and LiveStudioBundleSample was merged into the template.
What changed
| Change | Impact |
|---|---|
| Removed choosing override clips from the inspector's preset array for avatars | Clips registered in the preset array can no longer be selected |
Avatar attachment socket names now have an S_ prefix (S_Hips / S_Spine / S_Chest / S_Head / S_Neck / S_WristLeft / S_WristRight) | Props and cameras referencing old socket names lose their follow target |
Removed LiveStudioBundleSample, and merged its sample Props, Sets, and lighting environments into VirgoMotionStudioTemplate | LiveStudioBundleSample will no longer be updated |
| Removed the liltoon dependency from the template | Assets that use liltoon shaders will turn pink because the shader can't be found |
Steps
- Move the animation clips you used for override clips into a
Resourcesfolder, or export them as an animation bundle. - For props and cameras (bone follow, LookAt, orbit camera target, etc.) that reference an old socket name, re-select the
S_-prefixed socket. - If you built sets or props in
LiveStudioBundleSample, move them toVirgoMotionStudioTemplateand re-export. See Export the Sample Sets and Props for the steps. - If you bring in assets that use liltoon, add liltoon to your project separately.
0.24.0 ← 0.23.6
The internal structure of avatar props has changed.
What changed
| Change | Impact |
|---|---|
| Split the internal component structure of avatar props into a part responsible for socket following etc. and a part responsible for behavior (VRChat Prop Builder follows suit) | Props exported with an older SDK (.prop.lsb) will not work correctly |
Steps
- Re-export existing props with the latest SDK. See Export a Prop for the steps.
0.23.1 ← 0.22.1
Scene bundles were renamed to "Sets".
What changed
| Change | Impact |
|---|---|
Renamed the scene bundle export to "Set". The export menu is now Assets > Lilium Live Studio > Export Set Bundle (.set.lsb), with the extension .set.lsb | Existing .scene.lsb files can still be loaded |
Steps
- No action is required. Just use the new menu the next time you export.
Update the Packages
How you update the SDK packages depends on how the project was created.
Projects Created from the Template
VirgoMotionStudioTemplate fetches the SDK packages from GitHub, as described in Packages/manifest.json. The tag at the end of the URL, such as #v0.25.3, indicates the version.
With Unity closed, open Packages/manifest.json in a text editor and rewrite the tag on each of the four lines starting with jp.lilium. to the version you want to update to.
"jp.lilium.livestudio": "https://github.com/you-ri/LiveStudio.git?path=/Packages/LiveStudio#v0.26.0",
"jp.lilium.livestudio.virgo": "https://github.com/you-ri/LiveStudio.git?path=/Packages/LiveStudioVirgo#v0.26.0",
"jp.lilium.nativegamepad": "https://github.com/you-ri/LiveStudio.git?path=/Packages/NativeGamepad#v0.26.0",
"jp.lilium.remotecontrol": "https://github.com/you-ri/LiveStudio.git?path=/Packages/RemoteControl#v0.26.0",
- The packages depend on each other, so make sure all four are set to the same version.
- Tags don't carry suffixes like
-exp.1(release notes'0.26.0-exp.1corresponds to tagv0.26.0). You can check the available tags on the LiveStudio Tags page. - Packages added via a Git URL can't be updated with the Update button in the Package Manager window.
Only the SDK packages are updated this way. The template's scenes and samples under Assets are not updated. If you want to use newer samples, get the new VirgoMotionStudioTemplate from Booth and copy the assets you need.
Projects Added via VPM
For projects where you added Lilium VRChat Avatar Transfer or Lilium Live Studio Virgo Extension via VCC or ALCOM, open the project in your VPM client and re-select the version of the Lilium packages. If you have multiple Lilium packages installed, set them all to the same version.
In VCC, you need to turn on Settings > Packages > Show Pre-release Packages to see newer versions.
Troubleshooting
- Package download fails … Resolving the template's Git URL requires Git to be installed on your PC.
- Compile errors after updating … Check that the Lilium packages' versions all match. For errors in your own scripts, check the API changes for each version above.
- You want to revert to a previous version … Restore from a backup, or set the tag in
manifest.json(or the version in VPM) back to the original. Scenes and assets saved with a newer version may not open in an older one.