Broken MorphTarget in VRM(glb) Model

Hi.

I have created babylon-vrm-loader which is babylon.js glTF Loader extension library.

VRM is glTF extension for Humanoid Model. Detail is here.

I have an issue about MorphTarget, Issue #1 · virtual-cast/babylon-vrm-loader.

Some of VRM files has invalid position when MorphTarget.influence = 1.

Reproduction

  1. Download this AliciaSolid.glb Model(model license is here(ja)).
    • This model is familiar sample VRM model and replaced extension from .vrm to .glb. Original is here.
  2. Go to babylon.js SandBox with Google Chrome
  3. Drop AliciaSolid.glb
  4. Open Development Console(F12)
  5. Type below
BABYLON.Engine.LastCreatedScene.morphTargetManagers[1]._targets[0].influence = 1;

Expected

The mouse opens like A.

Actual

face mesh disappeared(actually mesh has gone to Y+ some meters).


Expected image is created by rgrdn/three-vrm. This library has any problem.

How can I solve this issue? I need help to forum members.

Thanks.

In addition, another MorphTargetManager(means another primitive) is properly working.

like:

BABYLON.Engine.LastCreatedScene.morphTargetManagers[0]._targets[1].influence = 1;

ping @bghgary

Fixed in PR: Fix bug with morph target data in glTF loader by bghgary · Pull Request #6361 · BabylonJS/Babylon.js · GitHub

Thanks for the bug report!

2 Likes