-
fixed crash caused by models without IK solver or morphtarget in WASM single-threaded runtime
-
fix WGSL minification not applied to esm package
-
make motion load exception catchable
-
add
AudioElementPool
for better html audio resource management
-
fix
MmdCamera
animation loading error -
fix
MmdCamera.onCurrentAnimationChangedObservable
not triggered when animation is removed -
fix
onCurrentAnimationChangedObservable
not triggered when animation is overwrited byMmdModel.addAnimation
,MmdWasmModel.addAnimation
,MmdCamera.addAnimation
-
change orphan body constraint creation behaviour in
MmdPhysics
,MmdAmmoPhysics
,MmdWasmPhysics
-
fix crash when remove animation from
MmdModel
,MmdWasmModel
,MmdCamera
-
update rust dependencies (might affect wasm runtime)
-
fix wasm runtime diagnostic logging not showing up
-
fix orphan rigidbody creation behavior in
MmdPhysics
,MmdAmmoPhysics
,MmdWasmPhysics
- fix mmd wasm instance initialization on browser native module loading
- add
MmdOutlineRenderer.zOffset
,MmdOutlineRenderer.zOffsetUnits
for resolve outline z-fighting issue
-
fix wrong return value when unmute
-
fix animation duration not updated when audio player is changed to null
-
dynamic loader import support for better chunk splitting and lazy loading see Babylon.js Async/dynamic loader factories
-
handle empty animation data
-
add
VmdLoader.optimizeEmptyTracks
option for disable empty track optimization -
umd output disable chunk splitting for prevent script loading error
-
TextureAlphaChecker
,MmdStandardMaterial
,MmdOutlineRenderer
now supports WebGPU wgsl shader -
Support Babylon.js 7.20.1 SceneLoader Options see SceneLoader Options
-
Support Babylon.js 7.21.0 WebGPU PluginMaterial API Changes
-
fix
MmdOutlineRenderer
not work properly when using WebGPU Non Compatibility Mode -
MmdOutlineRenderer
now supports baked vertex animation -
handle zero scale matrix in WASM integrated physics runtime
-
fix BPMX converter does not serialize model with shared toon texture correctly
-
cache key infomation is omitted from mmd texture name
-
fix BPMX sdef parameter serialization
-
sdef r0 and r0 parameters are now preserved in geometry vertex data
-
mark
MmdModel.dispose
as internal -
add
MmdRuntime.initializeMmdModelPhysics
andMmdRuntime.initializeAllMmdModelsPhysics
for manual physics initialization -
add
MmdRuntime.autoPhysicsInitialization
option to turn off automatic physics initialization which is enabled by default
-
prevents infinite loops when validating bones
-
fix
BpmxConverter
serialize incorrect bone metadata when bone name is not unique -
support babylon.js serialization for following classes
MmdStandardMaterial
MmdPluginMaterial
MmdCamera
-
support cloning for following classes
SdefMesh
BezierAnimation
-
implement wasm diagnostic logging
-
fix wasm physics initialization when using buffered evaluation mode
-
clamp
MmdStandardMaterial.alpha
value to 0.0 .. 1.0 for better result- you can disable this behavior by setting
MmdStandardMaterial.clampAlpha
tofalse
- you can disable this behavior by setting
-
handle zero vector limit axis
-
introduce WASM integrated physics runtime
MmdWasmInstanceTypeMPD
/MmdWasmInstanceTypeMPR
/MmdWasmInstanceTypeSPD
/MmdWasmInstanceTypeSPR
- package.json update for npm publish
-
include wasm version of ammo.js in the package
- you can find the wasm version of ammo.js in
babylon-mmd/esm/Runtime/Physics/External/ammo.wasm
- this distribution of ammo.js has been modified to work with bundlers like Webpack
- you can find the wasm version of ammo.js in
-
BPMX format updated to 2.2.0. Files of version 2.1.0 and 2.0.0 are still compatible
- fix bpmx converter does not serialize bone flags correctly
-
handle axis limit in mmd runtime for reproduce mmd twist bone behavior
-
improve CreateMmdModelOptions parameter type
-
improve wasm runtime multi-threading stability
-
fix wasm runtime physics memory leak
-
fix an issue with body being disposed twice
- use double precision on wasm runtime ik solver computation for jitter free result
- fix wasm runtime ik solver computation
-
refactor runtime behavior to be more similar to MMD
-
sub group morph is now ignored when resolving morph target
-
completly rework the world matrix computation
-
-
introduce
OiComputeTransformInjector
to update the transform matrix of an mmd model with an unsorted skeleton, without mmd runtime
- handle zero volume rigidbody in
MmdAmmoPhysics
-
fix pmd model sphere texture loading
-
fix rigidbody bone index resolution when the bone index is out of range
-
fix
MmdAmmoPhysics
rigidbody collision mask not applied when the mask value is zero -
fix bpmx evaluated transparency not applied to the material when the material does not have a diffuse texture
- fix multiply mode sphere texture with alpha not rendered correctly
-
fix
MmdAmmoPhysics
rigidbody initialization -
fix uv morph load error
- fix physics body transform not applied to bone when models bone are not sorted by index
-
fix mmdOutline not rendered as alpha blended on opaque material
-
havok physics improve spring constraint initialization
-
introduce
MmdAmmoPhysics
for Ammo.js driven MMD physics simulation
- mmdOutline now supports
MirrorTexture
for rendering outline on mirror reflection
-
fix SDEF shader injection on
ShaderMaterial
-
fix mmdOutline shader compilation error when use with clipping plane
-
replace animation when the same name animation is added to
MmdModel
orMmdWasmModel
-
fix wrong alpha accumulation in
MmdStandardMaterial
when using sphere texture -
fix
BpmxLoader
alpha evaluation not working with asset which created from non-PMX model -
backface culling is no longer affected by a material's transparency (same as MMD's behavior)
-
fix material morph color accumulation method as same as MMD
-
mesh with 0 alpha value is now automatically hidden by
MmdRuntime
-
refactor
MmdOutlineRenderer
to have the same behavior as MMD's outline -
apply ambient color to diffuse color when using
MmdStandardMaterial
for make it same as MMD -
use RGB texture format instead of RGBA for sphere and toon texture
-
introduce
MmdStandardMaterialShadingMethod
to specify shading method forMmdStandardMaterial
-
now all mmd model loaders are share the static
MmdStandardMaterialBuilder
instance by default -
BPMX format updated to 2.1.0. Files of version 2.0.0 are still compatible
- evaluatedTransparency is now store that weather the material is completely opaque or not
- multi-material support added
-
pmx converter now converts pmx file into bpmx 2.1.0 format
-
fix shader compilation error when using WebGPU with non SDEF model
-
give unique name to
MmdOutlineRenderer
to prevent name collision withOutlineRenderer
-
fix alpha texture evaluation for uv coordinate out of range (0, 1)
-
fix group morph not working on wasm runtime
-
support Babylon.js 6.46.0
-
add missing uv morph y axis inversion
- wasm runtime stabilization
-
wasm buffered evaluate stabilization
-
fix animation duration update when camera animation is changed
-
improve mmd model state reset method
- now, mmd models morph and ik solver state are reset when animation is change and start playing
-
morph target recompliation problem fixed
-
introduce WASM threaded runtime
MmdWasmInstanceTypeMD
/MmdWasmInstanceTypeMR
-
fix issues with
PhysicsBody
sleeping. now,PhysicsBody
is always active (which is the same as MMD)
-
remove rust bound check in
MmdWasmRuntime
for better performance -
introduce
MmdWasmInstanceType
to specify WASM binary type. for now, debug and release are available
- add missing PMD toon texture remapping
-
export missing new types
-
fix wrong shared toon texture loading
-
fix
BpmxConverter
does not serialize shared toon texture index
-
introduce
MmdWasmRuntime
for WASM driven MMD animation runtime (experimental) -
breaking change
MmdRuntime
now requiresScene
instance to be passed to constructor
-
apply typed array on ik solver state for better performance
- now, for toggling the ik solver, you need to use
MmdModel.ikSolverStates
instead ofMmdModel.sortedBones[i].ikSolver.enabled
- now, for toggling the ik solver, you need to use
-
typed array optimization on world matrix computation
- recommended to use
MmdModel.finalTransformMatrices
orMmdModel.runtimeBones[i].getWorldMatrixToRef()
instead ofMmdModel.mesh.skeleton.bones[i].getFinalMatrix()
- recommended to use
-
optimize to split the SubMesh into individual meshes at load time.
- Because of this, to receiveShadows, you now need to change
mmdMesh.receiveShadows = true;
tofor (const mesh of mmdMesh.metadata.meshes) mesh.receiveShadows = true;
- Because of this, to receiveShadows, you now need to change
-
fixed a bug where textures were not evaluated properly in texture alpha evaluation by
TextureAlphaChecker
-
improve
TextureAlphaChecker
performance by usingRenderTargetTexture
-
apply the changes made to the Animation in Babylon.js to the Bezier Animation
-
add
MmdModelLoader.preserveSerializationData
option for serialize model in bpmx 2.0.0 format -
breaking change BPMX format updated to 2.0.0. Files of version 1.0.x are no longer compatible. Please re-convert PMX files
-
remove dead code
-
more strict bound check in
MmdRuntime
to prevent crash by invalid data
-
fix
MmdCompositeAnimation
Quaternion animation biending not working with weight which is smaller than 1.0 -
fix
IkSolver
wrong rotation computation
-
introduce
MmdCompositeAnimation
to blend multiple animations frame perfectly -
fix
MmdPlayerControl
time formatting -
improve model loading shader compilation performance
-
fix animation not playing at start on audio player with zero duration
-
fix invalid body dispose null check
-
fix
MmdModel.removeAnimation
missing pose reset
- fix wrong camera view matrix computation when distance is zero or positive value
- ignore collision with zero volume body
-
fix signature validation
- some PMX files have "PMXP" signature instead of "PMX " (with space)
-
fix
PmxLoader
/PmdLoader
load texture from file edge case
-
fix
MmdStandardMaterial
not affected by light intensity -
fix application of linked transform nodes being applied one frame late in
HumanoidMmd
-
support old vmd format
-
introduce
HumanoidMmd
to support MMD on generic humanoid model
-
auto pose initialization in mmd runtime for play multiple animations in single model
-
introduce
VpdLoader
to load VPD file -
introduce
PmdLoader
to load PMD file -
improve physics
PhysicsWithBone
behaviour -
make angular limit clamp adjustable
- try increase
MmdPhysics.angularLimitClampThreshold
for fix odd bended constraints
- try increase
-
pmx converter now supports pmd file format
-
fix pmx converter tail bone type mismatch (bpmx format updated to 1.1.0)
tailPosition
is not currently in use at runtime, so there is no need to update existing bpmx files
-
fix crash when loading model with no vertices
-
improve performance of
MmdPlayerControl
by minimizing time display updates -
fix rigidbody bouncing glitch
- There seems to be a problem with the algorithm by which babylon js bone updates the local matrix. Bypass it and perform the optimal operation
-
fix body offset computation in
PhysicsWithBone
-
clamp physics constraint angular limit for better result
-
improve mmd runtime performance
-
introduce
AnimationRetargeter
to retarget any humanoid animation to mmd model
-
fix append transform position computation
-
support non-PMX model append transform rotation
-
MmdPlayerControl
fix time display initialization -
#8 support babylon.js animation runtime
-
some GC optimizations in animation runtime
-
improve physics damping parameter import
-
improve parse speed of PMX, BPMX and VMD
-
big-endian device support
-
introduce
MmdCameraAnimationGroup
andMmdModelAnimationGroup
to use MMD animation runtime with babylon.jsAnimation
container
-
#11 shows the mesh when all texture loads and shaders are compiled
-
fix constraints axis calculation
-
#5 improve physics parameter import
-
now you need import "babylon-mmd/esm/Runtime/Animation/mmdRuntimeCameraAnimation" and "babylon-mmd/esm/Runtime/Animation/mmdRuntimeModelAnimation" side effect to use MMD animation runtime
-
breaking change BVMD format updated to 2.0.0. Files of version 1.0.0 are no longer compatible. Please re-convert VMD files
-
BvmdLoader.loadFromBufferAsync
is removed because it ended in less than 1 ms
-
fix object freezing in place to set physics body linear damping to 6.0
- this is a temporary fix until this issue is resolved
-
fix animated rigidbody collision detection
- use
PhysicsBody.setTargetTransform
which is added in @babylonjs/havok 1.1.2
- use
-
change 6DofSpringConstraint build method more similar to MMD
-
now minimum required version of @babylonjs/core is 6.15.0 (was 6.14.0) and @babylonjs/havok is 1.1.2 (was 1.1.1)
-
fix TGA texture loading
- fix Image loading failure when using custom texture loader
-
support custom texture format on alpha texture evaluation
-
umd unoptimized bundle is now available