1. Live2DViewerEX
  2. News

Live2DViewerEX News

2026.2.19 Update

[h3]Version: 2026.2.14[/h3][p][/p]
  • [p]Widget: Added system font support for Digital Clock[/p]
  • [p]Widget: Added date display format options for Digital Clock[/p]
  • [p]Effect: Added position (Front/Back) options for Visualizers[/p]
  • [p]EX Studio: Added support for cdi3.json (Live2D)[/p]
  • [p]Control Panel: Workshop browser now supports manual page input by clicking the page number[/p]
  • [p]Control Panel: Added "First Page" and "Last Page" navigation buttons to the Workshop browser[/p]
[h3][/h3][p][/p][p][/p][p][/p][p][/p][p][/p]

2026.2.14 Update

[h3]Version: 2026.2.14[/h3][p][/p]
  • [p]Widget: Added buttons to adjust the order of desktop icons[/p]
  • [p]Widget: Added "Arguments" and "Working Directory" attributes to desktop icon commands[/p]
  • [p]Widget: UI optimizations[/p]
  • [p]Control Panel: Fixed an issue with incorrect tag count display[/p]
  • [p]General: Fixed a compatibility issue where legacy model configurations failed to support Live2D expression overlaying[/p]
[h3][/h3][p][/p][p][/p]

2026.1.6 Update: Download Code Service

[h3]Version: 2026.1.18[/h3][p][/p]
  • [p]Json Config: Adjusted commands: set_skins/add_skins/remove_skins changed to skins set/add/remove[/p]
  • [p]Json Config: Added a new parameter to skins commands to disable automatic slot resetting, resolving animation flickering issues[/p]
  • [p]General: Added Download Code functionality[/p]
  • [p]General: Bug fixes and code optimization[/p]
[h3][/h3][p][/p][p]About Download Code Service[/p]
  • [p]The Model Download Code Service is a model distribution solution designed specifically for creators on the EX platform. Whether distributing paid models, rewarding subscribers, or conducting small-scale private tests, the simple "download code" mechanism enables fast distribution and permission control.[/p]
  • [p]For more details please refer to: https://live2d.pavostudio.com/doc/en-us/dlcode/[/p]
[p][/p][p][/p][p][/p]

2026.1.6 Update: Engine and Cubism SDK update

[h3]Version: 2026.1.6[/h3][p][/p]
  • [p]General: Updated engine to Unity 6.0[/p]
  • [p]General: Updated Cubism SDK to version 5r4[/p]
  • [p]General: Hovering over a model slot number now displays the name of the currently loaded model[/p]
  • [p]General: Optimized the User Tag functionality[/p]
  • [p]General: Improved click detection logic to resolve issues where excessive overlapping click areas prevented certain regions from being triggered[/p]
  • [p]General: Optimized the cache file size for the Steam Workshop list[/p]
  • [p]General: Fixed an issue where thumbnails would display incorrectly when Workshop items were modified[/p]
  • [p]General: Fixed a bug where switching tags in the Quick Menu prevented non-tagged models from loading in the Control Panel[/p]
  • [p]Control Panel: Fixed the year display issue for Workshop files[/p]
  • [p]Control Panel: The Tag Edit page now displays the number of items associated with each tag[/p]
  • [p]EX Studio: Added options related to Cubism Masking[/p]
[p][/p][p][/p][h3]Note[/h3][p][/p][p]About Engine[/p]
  • [p]This update, coming after a seven-year interval, upgrades the engine from Unity 2019 to Unity 6.0. The purpose is to adapt to the latest SDKs, enhance compatibility with modern computer hardware, and prepare for full native support for Apple Silicon[/p]
  • [p]Due to the significant leap between engine versions, there is a possibility of instability or unknown issues occurring[/p]
[p][/p][p]About Cubism SDK[/p]
  • [p]This SDK update may cause issues with some older models; if you encounter any, please feel free to provide feedback[/p]
[p][/p][p]About Cubism masking options[/p]
  • [p]This update is intended solely to provide experienced creators with more detailed options. Modifying Cubism masks under certain settings can severely impact performance; please do not make adjustments unless necessary or if you are unsure of the usage[/p]
  • [p]Instead of increasing the mask size, it is recommended to first try increasing the number of mask textures. Total mask resolution = number of mask textures × mask size. In some cases, six 1024-sized textures can achieve the same visual quality as one 4096-sized texture. In such scenarios, the former is preferred because the total resolution is lower, resulting in a smaller impact on performance[/p]
[p][/p][p][/p][p][/p]

2025.9.25 Update: Submodel feature and Model Slot Editing

[h3]Version:2025.9.25[/h3][p][/p]
  • [p]Json Config: Added "add_submodel" and "remove_submodel" commands[/p]
  • [p]Json Config: Renamed "change_cos" command to "change_model"[/p]
  • [p]EX Studio: Merged Live2D/Spine editor and uploader[/p]
  • [p]EX Studio: User interface optimization[/p]
  • [p]Common: Added submodel feature[/p]
  • [p]Common: Added model slot editing feature[/p]
  • [p]Common: Bug fixes[/p]
[h3][/h3][p][/p][h3]About Model Slot Editing[/h3][p][/p][p]Mainly used to configure the default position, size, etc. of models when they are loaded into a specific slot. When a model is loaded for the first time, it will use this slot setting.[/p][p][/p][p]In the Control Panel or Quick Menu, click Edit Model Slot to open the editing panel, where you can configure the default position, size, and other settings of a model slot. You can switch model slots using the menu in the upper-left corner. Drag the crosshair intersection or adjust the X/Y values in the panel to set the default position. The Reset All Model Transforms button resets all models’ position, size, and related settings for the current model slot.[/p][p][/p][p]Use case:[/p][p]If a user wants all models to be placed in the corner of the screen without editing each one individually, they can move the model slot to the corner and click the 'Reset all model transforms' button. After that, all models loaded for the first time will default to this position.[/p][p][/p][p][/p][p][/p][h3]About Merging Live2D and Spine Editors[/h3][p][/p][p]After the merge, you can freely switch between Live2D and Spine models, including switching via the change_model command. Submodels of different types can also be displayed simultaneously.[/p][p][/p][p][/p][h3]About Submodels[/h3][p][/p][p]Use cases[/p]
  • [p]Some models separate the background and character. You can set the character as the parent model and load the background on startup, allowing both models to move and scale as a single unit.[/p]
  • [p]When creating models, you can separate UI, character, and background to reduce complexity of a single model. This also enables dynamic switching of backgrounds or characters, offering greater flexibility than simply replacing textures.[/p]
[p][/p][p]Limitations[/p]
  • [p]Submodels can only be added or removed by the parent model through commands. Submodels cannot have their own submodels. When the parent model is removed, its submodels are removed as well.[/p]
  • [p]When adding a submodel, you can set its display order from -3 to 3. The parent model is at position 0, positive values display in front, negative values display behind. Multiple models can occupy the same position, but overlapping may cause display issues.[/p]
  • [p]Users cannot adjust the position or size of submodels; only initial position and size can be set in the Json configuration. Submodels will follow the parent model’s movement and scaling.[/p]
  • [p]Since there is no dedicated editing panel for submodels, you cannot change expressions or adjust mesh opacity from the editor; these can only be changed via commands.[/p]
  • [p]Submodels use the parent model’s text box for text display, so if multiple models display text at the same time, they may compete for the same text box.[/p]
  • [p]When using Workshop items or WPK files, submodels share the parent model’s save data, meaning changes to floating-point variables, affinity, etc., affect both. With LPK or Json files, the submodel’s save data is separate from the parent model.[/p]
  • [p]Submodels and parent models can be different types (e.g., parent is Live2D, submodel is Spine).[/p]
  • [p]To ensure performance and prevent abuse, a maximum of 6 submodels can be added.[/p]
[p][/p][p]How to use[/p]
  • [p]Add submodel: add_submodel config.json 1 (1 is the position, an integer in the range -3 to 3. The parent model is at position 0; values greater than 0 display in front, values less than 0 display behind.)[/p]
  • [p]Remove submodel: remove_submodel config.json (removes all submodels with the configuration name config.json)[/p]
[p][/p][p][/p][p][/p]