Closed Charliebaby019 closed 1 month ago
smh i solved it immediatly!! after asking not sure why, but i can actually pose the model with ONLY this
if (currentVrm) { currentVrm.update(delta); } if (mixer) { mixer.update(delta); } }
i think i can handle rthe rest from here UNLESS. anyone STILL has any advice (i guess ill leave this open)
not really a problem just general question spent alot of time trying to proper order the animation steps regarding vrm models in webxr , model loads fine. animation cycles start with idle cycle i point to location on floor, model walks stops and idles correctly (missing all the springbone animations) i grab a limb in webxr with my hand terminating the animation cycles and can control a transformcontroller gizmo, moving the body and body part just fine (missing all the springbone animations)
Ive gone through so many variations of steps as those exampled below that its difficult to recall , let alone provide accurate examples of various similar situations , but generally speaking , im assuming the loadMixamoAnimation.js might be what causing issues with the sping bone animations
my goal is to always have springbones working, wether its during animation cycles, or while iksolving customized poses. can anyone point out or suggest solutions from the my animation rending loop sample below
// custom injector // reads script modules' functions and animation functions // injects animation code into the main rendering loop addAnimationCallback(() => { delta = clock.getDelta();
TWEEN.update();
if (mixer) mixer.update(delta);
//idle cycle and walk cycle through loadMixamoAnimation.js
//turns model to intersect point location, executes walk cycle, stops cycles and returns to idle animation cycle if(!modelready){}else{if (!modelMesh.quaternion.equals(targetQuaternion)) { modelMesh.quaternion.rotateTowards(targetQuaternion, delta * 10) } }
if (currentIK) { if (needIKSolve) {
if (currentVrm) { currentIK.solve(); currentVrm.update(delta); } } else {
currentIK.ikChains.forEach((chain) => { chain.effector.getWorldPosition(chain.goal.position); }) }
} /end/ });
so, im aware that currentVrm.update(delta); is in most likely an awkard location, but again I just can't get the springbones to work WITH the others well, at all. suggestions?