SDK Compatibility and Limitations of Cubism 5.3 Features
Updated: 08/26/2025
This page contains statements regarding the beta version.
Summary
This section describes the following points about SDK compatibility with Cubism 5.
- What changes were made in the 5.3 SDK?
- What notes or changes are needed for compatibility with the existing 5 SDK?
About the Names
- 5 SDK refers to Cubism 5 SDK R4 and earlier.
- 5.3 SDK refers to Cubism 5 SDK R5 beta1 or later.
Table of new features in Editor 5.2 and their support by the 5.3 SDK
5 Editor new features | SDK support [support date] |
---|---|
Parameter Controller | × Not supported (to be supported in the near future) |
Paste inverted shape | No SDK support, as this is Cubism Editor functionality. |
Loop editing support | No SDK support, as this is Cubism Editor functionality. |
Restore deformer shape | No SDK support, as this is Cubism Editor functionality. |
Blend mode | △ Supported (some Native platforms and Web, Unity only from beta1) |
Offscreen drawing | △ Supported (some Native platforms and Web, Unity only from beta1) |
Enhanced brush tools | No SDK support, as this is Cubism Editor functionality. |
Warp deformer resizing aid | No SDK support, as this is Cubism Editor functionality. |
WebM format added to video output settings | No SDK support, as this is Cubism Editor functionality. |
Fixes affecting compatibility
- Change in class structure of Renderer-related processes (other than Unity)
- Rendering Method for Models Using New Cubism 5.3 Features (Unity)
- Cubism Core API Changes
Compatibility
Backward compatibility
Blend mode and offscreen drawing
Since this is a new feature, there is no explanation regarding compatibility.
Change in class structure of Renderer-related processes (other than Unity)
For Native and for Web, the structure of Renderer-related classes and some functions have been changed to improve maintainability of Renderer-related processing.
Replacing only the framework will result in a build error.
The specific modifications are explained in “Change in class structure of Renderer-related processes.”
Rendering Method for Models Using New Cubism 5.3 Features (Unity)
Models that utilize the Blend mode or offscreen drawing added in Cubism 5.3 are rendered using a new rendering method that differs from models using only features available in Cubism 5.2 and earlier versions.
The specific modifications are detailed in “Rendering Method for Models Using New Cubism 5.3 Features (Unity)“.
Update from the existing 5 SDK
Updating to the 5.3 SDK works by replacing all files as usual.
For Native and Web, the caller needs to be modified due to the renaming of some classes in the SDK Framework.
Forward compatibility with existing 5 SDKs
Please note that MOC files exported for 5.3 cannot be read.
When attempting to read a MOC file exported for 5.3, the following error is output when calling the csmReviveMocInPlace function and the csmMocConsistency function.
[CSM] [E]csmReviveMocInPlace is failed. The Core unsupport later than moc3 ver:[5]. This moc3 ver is [6]. [CSM][E]Inconsistent MOC3.
Change in class structure of Renderer-related processes
For Native and for Web, the structure of Renderer-related classes and some functions have been changed to improve maintainability of Renderer-related processing.
The specific changes are as follows:
- CubismOffscreenSurface_xx class was renamed to CubismRenderTarget_xx class (Native).
- A new base class was created for the CubismRenderTarget_xx class and common processing was moved (Native).
- The drawing process structure was changed for the CubismRenderer class (Native and Web).
- Change in Blend Mode Retrieval Method.
In the unlikely event that you have customized the SDK and are having difficulty updating as usual, please refer to the following changes.
CubismOffscreenSurface_xx class was renamed to CubismRenderTarget_xx class (Native)
The CubismOffscreenSurface_xx class has been renamed to the CubismRenderTarget_xx class.
This is to avoid naming conflicts in the program due to the addition of offscreen drawing as a new feature.
This change requires fixing a call to the CubismOffscreenSurface_xx class outside of the SDK Framework.
A new base class was created for the RenderTarget class and common processing was moved (Native)
Created a new base class CubismRenderTarget class from the CubismRenderTarget_xx class file and moved processes that could be common.
This change improves the readability and maintainability of the CubismRenderTarget_xx class file.
The drawing process structure was changed for the CubismRenderer class (Native and Web)
The structure of the drawing process in the CubismRenderer_xx class has been significantly changed since Offscreen were added to the drawable objects in the 5.3 SDK, whereas only Drawable was available until the 5 SDK.
Additionally, the specification has been changed so that the window size Width and Height are passed to the CubismRenderer_xx class constructor. Accordingly, it is necessary to pass Width and Height to the CreateRenderer function of the CubismUserModel class.
Change in Blend Mode Retrieval Method
Starting from 5.3 SDK, the blend method has been incorporated into blend mode, changing the retrieval method from csmGetDrawableConstantFlags to csmGetDrawableBlendModes.
This change enables the handling of blend modes introduced in 5.3 SDK and later versions.
Model Rendering Method Using New Cubism 5.3 Features (Unity)
Rendering Method for Models Using Blend Mode or Offscreen Drawing
Models utilizing Blend mode or offscreen drawing have all drawing objects first rendered to a RenderTexture, then finally drawn onto a single Plane.
Models that do not utilize either blend mode or offscreen features are rendered using the traditional rendering method.
Differences Between Traditional Rendering Method and New Rendering Method Using Cubism 5.3 Features
Traditional Rendering Method
- Each Drawable uses Unity’s Mesh Filter component and is drawn as individual Unity objects.
- Each Drawable object can be sorted using Transform.localPosition.z such as BackToFrontZ.
- Mask drawing is performed using the preprocessing mask method.
Rendering Method Using New Features
- Mask drawing is performed using the high-precision mask method.
- Each drawing object (Drawable/Offscreen) performs drawing processing within CubismRenderer.DrawObject().
- Each drawing object is drawn to a single RenderTexture, then rendered by applying the RenderTexture drawing to a Plane.
- Each drawing object is sorted by either BackToFrontOrder or FrontToBackOrder.
Impact of Using the New Rendering Method
With the new rendering method for models using these features, it becomes impossible to perform processes that insert Unity objects into the drawing using MeshRenderer.sortingOrder or Transform.localPosition.z, such as “Put Another Sprite between the Drawables of the Model“
Extension features to mitigate these impacts are planned for future implementation.
Cubism Core API Changes
The csmGetDrawableRenderOrders function has been eliminated and a new csmGetRenderOrders function has been added.
Please refer to the Live2D Cubism Core API Reference for more information.
About load
Blend mode
Regarding the blend mode load, using even one blend mode will cause a negligible load on the entire model. In addition, the load increases with each number of modes used.
The load depends on the type and version of the drawing API being used. As an example, in the case of OpenGL, if glTextureBarrier is available, the load is reduced compared to environments where it is not available.
Offscreen drawing
Regarding the offscreen drawing load, each use of one generates a screen-sized offscreen, which generates a load.
Also, if even one offscreen drawing is used, the model loading speed is greatly reduced because the analysis of the model structure is processed at model loading time.
Restrictions
Cubism SDK (general)
With the overwrite function for multiply and screen colors in the Cubism SDK, the multiply and screen colors transmitted from the parent of the part’s parent-child hierarchy will not be applied to objects set to offscreen. In addition, models using the new drawing method added in Cubism 5.3 will automatically have the high-definition mask setting.
Native
In beta1, OpenGL only on Windows, macOS, iOS, and Android supports the Cubism 5.3 functions. Platforms other than those listed above that exist in the Cubism 5 SDK R5 beta1 package do not support the included Cubism Core and may not run the functions properly. Support is scheduled for beta2 or later.
Web
None in particular.
Unity
As noted above, models using the new drawing method added in Cubism 5.3 will have the high-definition mask setting. Therefore, models using the new drawing method in the Cubism SDK for Unity do not use GlobalMaskTexture shared by all models, but by default use the CubismMaskTexture asset generated by each model at import time and have no limitations on the number of masks.
However, the following other restrictions apply.
- Hit areas do not work properly.
- Objects outside the model canvas are not drawn and are cropped.
Note that even models exported with Cubism 5.3 or later versions will use the previous method if the new drawing method is not used. If the new drawing method is not used, the above restrictions have no effect.
Other
Cubism SDKs other than those listed above are not compatible with the Cubism 5.3 functions. Support will be provided in due course.