proper animation procedures with mixer #1503
Unanswered
Charliebaby019
asked this question in
Help
Replies: 1 comment
-
smh if (currentVrm) { currentVrm.update(delta); } i think i can handle rthe rest from here |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
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?
Beta Was this translation helpful? Give feedback.
All reactions