All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
5-r.1 - 2024-03-26
- Add function
ModF()
to compute floating-point remainder inCubismMath
class.
- Change the
Reset()
function ofCubismPose
class to public. - Change some processes in the renderer to be handled as functions.
- Change to output log if the argument
MotionQueueEntry
isNULL
in theUpdateFadeWeight()
function of theACubismMotion
class.
- Deprecate the
_fadeWeight
variable and theGetFadeWeight()
function of theCubismExpressionMotion
class.- The
_fadeWeight
variable of theCubismExpressionMotion
class can cause problems. - Please use the
GetFadeWeight()
function of theCubismExpressionMotionManager
class with one argument from now on.
- The
- The
StartMotion()
function of theCubismMotionQueueManager
class with the unnecessary third argumentuserTimeSeconds
is deprecated.- Please use the
StartMotion()
function with two arguments from now on.
- Please use the
- Fix a typo in
SetParameterValue()
. - Fix an issue that the override keyword is not specified for some functions of classes inheriting from
CubismRenderer
. - Fix operator overloading in the
CubismId
class from being private to public. - Fix a bug that caused incorrect weight values when expression motions were shared by multiple models.
- Change the way fadeWeight is managed for expression motions.
- Fix shader build error when running nmake in Vulkan.
- Remove
CubismSetupMaskedShaderUniforms
,CubismNormalShaderUniforms
,CubismMaskedShaderUniforms
andCubismFragMaskedShaderUniforms
from Metal and merged them intoCubismMaskedShaderUniforms
.
5-r.1-beta.4 - 2024-01-25
- Fix memory leak in DX11.
- Fix an issue where models with a specific number of masks could not be drawn correctly.
- Fix to check for null when reading json.
- Fix an issue that caused some graphics drivers to not render correctly in Vulkan.
- Fix errors related to semaphore waiting stages.
- Fix errors that occurs when building with x86 in vulkan.
5-r.1-beta.3 - 2023-10-12
- Add
clamp()
to CubismMath.
5-r.1-beta.2 - 2023-09-28
- Add a function to the
ACubismMotion
class that sets arbitrary data in the callback. by @MizunagiKB - Add a comment for clarity for the function whose usage is not intuitive.
- Change getter functions to get some datas without
GetIdManager
inCubismModel
.
- Fix a typo in a variable related to the bezier handle restriction state.
5-r.1-beta.1 - 2023-08-17
- Add the function to get the ID of a given parameter.(
CubismModel::GetParameterId
) - Add the
CubismExpressionMotionManager
class. - Add a Renderer for Vulkan API in Windows.
- Unify Offscreen drawing-related terminology with
OffscreenSurface
. - Change comment guidelines for headers in the
Framework
directory.
- Fix a bug that caused cocos2d-x culling to not be performed correctly.
- Fix the structure of the class in renderer.
- Separate the high precision mask process from the clipping mask setup process.
- Separate shader class from CubismRenderer files for Cocos2d-x, Metal, OpenGL.
- Fix Metal rendering results on macOS to be similar to OpenGL.
- If you want to apply the previous Metal rendering results, change
mipFilter
inMTLSamplerDescriptor
fromMTLSamplerMipFilterLinear
toMTLSamplerMipFilterNotMipmapped
.
- If you want to apply the previous Metal rendering results, change
- Fix a bug that the value applied by multiply was not appropriate during expression transitions.
- Remove several arguments of
DrawMesh
function.
4-r.7 - 2023-05-25
- Add some function for checking consistency of MOC3.
- Add the function of checking consistency on reviving a MOC3. (
CubismMoc::Create
) - Add the function of checking consistency from unrevived MOC3. (
CubismMoc::HasMocConsistencyFromUnrevivedMoc
)
- Add the function of checking consistency on reviving a MOC3. (
- Add some functions to change Multiply and Screen colors on a per part basis.
- Change access specifier for
CubismExpressionMotion
. - Change to get opacity according to the current time of the motion.
4-r.6.2 - 2023-03-16
- Fix a bug that caused double and triple buffering to be disabled on DirectX systems due to multiple render textures in 4-r.6.
- Fix the condition of splitting the mask buffer according to the number of masks used to be in accordance with the specification.
- Fix some problems related to Cubism Core.
- See
CHANGELOG.md
in Core.
- See
4-r.6.1 - 2023-03-10
- Add function to validate MOC3 files.
4-r.6 - 2023-02-21
- Add API to allow users to configure culling.
- The number of render textures used can now be increased arbitrarily.
- The maximum number of masks when using multiple render textures has been increased to "number of render textures * 32".
- Fix a bug that models with culling were not rendered correctly in Metal.
- Fix a bug that caused some masks to be rendered incorrectly when using 17 or more masks in DirectX systems.
- Remove unnecessary variable
modelToWorldF
in renderer.
4-r.5.1 - 2022-09-15
- Fix a bug that caused a crash if an empty array existed in json.
4-r.5 - 2022-09-08
- Add immediate stabilization of physics.
- Add the multilingual supported documents.
- Fix a memory leak that occurred when defining a Vector with size 0.
4-r.5-beta.5 - 2022-08-04
- Fix a bug in which processing was interrupted when an invalid vertex was specified in the middle of a physics operation.
- Fix physics system input to be split by the physics setting time.
- Fix a tiny memory leak in Cubism physics.
4-r.5-beta.4.1 - 2022-07-08
- Fix Core API called in GetDrawableParentPartIndex function.
4-r.5-beta.4 - 2022-07-07
- Add a function to get the latest .moc3 Version and the .moc3 Version of the loaded model.
- Add a function to get the type of parameters of the model.
- Add a function to get the parent part of the model's Drawable.
- Disable ARC in Metal renderer.
- Fix dangling pointer in
GetRenderPassDescriptor
function for Metal.
4-r.5-beta.3 - 2022-06-16
GetDrawableTextureIndices
function inCubismModel
has been renamed toGetDrawableTextureIndex
because the name was not correct.GetDrawableTextureIndices
function is marked as deprecated.
- Fix physics system behaviour when exists Physics Fps Setting in .physics3.json.
- Fix force close problem when invalid
physics3.json
is read. - Fixed memory leak in Cocos2d-x.
4-r.5-beta.2 - 2022-06-02
- Fixed a bug that caused Multiply Color / Screen Color of different objects to be applied.
- See
CHANGELOG.md
in Core. - No modifications to Samples and Framework.
- See
4-r.5-beta.1 - 2022-05-19
- Add processing related to Multiply Color / Screen Color added in Cubism 4.2.
- Add a function to reset the physics states.
- Fix GetTextureDirectory() to return the directory name of the 0th texture path.
4-r.4 - 2021-12-09
-
Add the rendering options on Metal:
USE_RENDER_TARGET
USE_MODEL_RENDER_TARGET
-
Add anisotropic filtering to Metal.
-
Add a macro to toggle the precision of floating point numbers in OpenGL fragment shaders.
-
Add a function to check
.cdi3.json
exists from.model3.json
. -
Add
CubismJsonHolder
, a common class used to instantiate and check the validity ofCubismJson
.- Each Json parser will now warn if an class of
CubismJson
is invalid.
- Each Json parser will now warn if an class of
- Change each Json parser inherits a common class
CubismJsonHolder
.
- Fix renderer for Cocos2d-x v4.0.
RenderTexture
was empty when usingUSE_MODEL_RENDER_TARGET
.
- Fix motions with different fade times from switching properly.
- Fix a bug that motions currently played do not fade out when play a motion.
4-r.4-beta.1 - 2021-10-07
- Add a function to parse the opacity from
.motion3.json
. - Add a Renderer for Metal API in iOS.
- There are some restrictions, see NOTICE.md.
- Fix return correct error values for out-of-index arguments in cubismjson by @cocor-au-lait.
- Fix a warning when
SegmentType
could not be obtained when loading motion. - Fix renderer for Cocos2d-x v4.0.
- Rendering didn't work when using
USE_RENDER_TARGET
and high precision masking.
- Rendering didn't work when using
4-r.3 - 2021-06-10
4-r.3-beta.1 - 2021-05-13
- Add a Renderer for Cocos2d-x v4.0.
- Implement a function to get the correct value when the time axis of the Bezier handle cannot be linear.
- Add an argument to the function
SetClippingMaskBufferSize
to set the height and width of the clipping mask buffer.
- Improve the quality of Clipping Mask on high precision masking.
4-r.2 - 2021-02-17
- Implement anisotropic filtering for DirectX-based Renderer.
- Implement get pixel size and
PixelsPerUnit
of the model
- Check pointer before use to avoid crash by @Xrysnow
- Fix Physics input reflect flag on evaluate.
- Fix renderer for OpenGL.
- Add delete mask buffer when renderer instance is destroyed.
- Fix delay in starting fade-out for expressions.
- Fix memory bug causing segmentation fault when reallocating memory by @adrianiainlam
- Fix reference size of model matrix.
- Fix memory leaking the color buffer on destroyed
CubismOffscreenFrame_OpenGLES2
. - Fix argument name typo at
CubismEyeBlink::SetBlinkingInterval()
.
4-r.1 - 2020-01-30
- Add the callback function called on finished motion playback.
- Include header files in CMake.
<GL/glew>
is not included on macOS ifCSM_TARGET_COCOS
is defined.
- Fix rendering not working properly on Android devices with Tegra.
- Use
target_include_directories
instead of usingFRAMEWORK_XXX_INCLUDE_PATH
variable in application CMake. - Use
target_compile_definitions
instead of usingFRAMEWORK_DEFINITIOINS
variable in application CMake. - Specify
FRAMEWORK_SOURCE
variable also in OpenGL application CMake.
4-beta.2 - 2019-11-14
- Add the includes to
Framework
for Linux build.
- Refactoring
CMakeLists.txt
- Fix renderer for DirectX 9 / 11.
- Add missing implementation: Check the dynamic flags.
4-beta.1 - 2019-09-04
- Support new Inverted Masking features.
- Add
.editorconfig
and.gitattributes
to manage file formats. - Add
.gitignore
. - Add
CHANGELOG.md
.
- Convert all file formats according to
.editorconfig
.
- Fix typo of
CubismCdiJson
. - Fix invalid expressions of
CubismCdiJson
.