Skip to main content

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.

tip

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​

  1. Back up your project. If you're using Git or another VCS, commit your changes first.
  2. On this page, check the changes between your current version and the version you're upgrading to.
  3. Update the packages.
  4. Open the project in Unity and follow the steps for each version.
  5. Confirm there are no errors in the console, and verify behavior in Play mode.
  6. 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

ChangeImpact
Where prefabs addable from the Remote App's "+" are registered moved from the UI definition to a LiveClassAssetPrefabs 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 componentThe 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 submenuOnly the location of the operations changes

Steps

  1. 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.
  2. 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.
  3. If your own scripts use [ExposedClass] or similar, replace them with Live*. See Migrating from the Old Names for the mapping.
If you use the SDK from scripts

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 (LiveLight was removed)
  • ICameraController → CameraControllerBase
  • FrameRecorderController moved to jp.lilium.remotecontrol; FrameRecorderProject → LiveDataRecorderProject
  • Observer interfaces such as IVRMLoadObserver were removed in favor of C# events
  • LiveRecipes.RegisterResolver → AddResolver
  • [LiveFunction] calls are no longer recorded to a take unless you declare lane = 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

ChangeImpact
Removed choosing override clips from the inspector's preset array for avatarsClips 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 VirgoMotionStudioTemplateLiveStudioBundleSample will no longer be updated
Removed the liltoon dependency from the templateAssets that use liltoon shaders will turn pink because the shader can't be found

Steps

  1. Move the animation clips you used for override clips into a Resources folder, or export them as an animation bundle.
  2. For props and cameras (bone follow, LookAt, orbit camera target, etc.) that reference an old socket name, re-select the S_-prefixed socket.
  3. If you built sets or props in LiveStudioBundleSample, move them to VirgoMotionStudioTemplate and re-export. See Export the Sample Sets and Props for the steps.
  4. 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

ChangeImpact
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

  1. 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

ChangeImpact
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.lsbExisting .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.1 corresponds to tag v0.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.
note

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.