Posing models with babylon-mmd

Hi there i was wondering if someone managed to make an IK system that works with babylon-mmd.
I want to create an webxr animation app but i want to be able to move bones via ik or something else. I tried several ways (more than 2 weeks) but never got a good working system. Maybe someone here can help… actually i made more progress with Three.js but Babylon.js is so much better. @noname0310 made a terrific work creating loaders and stuff! Mad skill.

I want to do something like this VRM Test

There is no much code provide. I tried Claude Sonner 4 and ChatGpt 5 belive me they have no idea eighter. Thanks!

A broken sandbox to start with: https://playground.babylonjs.com/#UD0IPN#1

Hello, just to confirm and let you know, this doesn’t seem to be an babylon-mmd dependency issue. It looks like you’re just trying to work with the Babylon.js Skeleton.
Therefore, I think modifying the title to be more general will reach a wider audience.

The skeleton system of VRM is FK, not IK. Actually it is the original skeleton and bone, not even including fk controllers.

I did some investigation about how to support FK and IK controller to VRM model on blender. And the result is not easy to support controllers with original bones, you should add more layers about DEFINES, MCH, TWEAKS, FK, IK to support that animation design system. That is not worth for me, so I stop digging.

If you want to support mmd likely IK system, you should study the design of mmd IK skeleton layers first, then you can evaluate the cost. I don’t think the AI can provide helps on this very narrow area.

Good luck.

No it’s not a problem with the library. I want to work with MMD models becouse that the one that has most assets for now. I’m trying .bpmx too. I just was wondering if anyone has tried to make an editor as we already have a viewer.

For example seems like you support IK for feet but if i try to move the IK bone it doesnt… maybe there is an extra step that I’m missing something like making skeleton dirty and stuff. https://playground.babylonjs.com/#UD0IPN#8

let IKBone = Poser.getBone(['左つま先IK']);
console.log('Original IK position', IKBone.position);
IKBone.position.set(0.5, -1, -1);
IKBone.setPosition(new BABYLON.Vector3(1,1,1))
console.log('New IK position', IKBone.position);

IK is a runtime component. Use MmdRuntime.
For details, refer to this reference.

While the latter sections are still under development, you can gain sufficient context from what’s available.