我有一个角色的FBX模型。我也下载了一个简单的步行动画从Mixamo,没有皮肤。下面是我如何加载角色和动画:
const loader = new THREE.FBXLoader();
let mixer;
loader.load( 'Assets/T-Pose.fbx', function ( object ) {
let anim = new THREE.FBXLoader();
anim.load('Assets/Walking.fbx', function(anim){
mixer = new THREE.AnimationMixer(object);
let walking = mixer.clipAction(anim.animations[0]);
walking.play();
})
scene.add( object );
} );
在我的渲染循环中,我只是更新混频器。
function render(){
...
if (mixer) mixer.update();
}
当我加载我的场景,虽然这是我看到的:
角色被困在这个框架上,不再继续动画的其余部分。我在这里做错了什么?
发布于 2022-10-25 19:07:14
当调用mixer.update()
时,您需要给它以秒为单位的时间:
const clock = new THREE.Clock();
function render(){
...
let mixerUpdateDelta = clock.getDelta();
if (mixer) mixer.update(mixerUpdateDelta);
}
您可以看到关于动画的three.js文档:https://threejs.org/docs/?q=animation#manual/en/introduction/Animation-system
https://stackoverflow.com/questions/74157340
复制相似问题