3D модель GLTF не анимируется, когда это должно быть - PullRequest
0 голосов
/ 01 июля 2019

Итак, цель проста: я хочу анимировать 3D-модель, импортированную в виде файла .gltf (в ней всего 1 анимация).

Я следовал инструкциям по документации:

https://threejs.org/docs/#manual/en/introduction/Animation-system

И некоторые другие примеры от интернированных, все они выглядят почти одинаково, только несколько измененных вещей, но идея всегда одна и та же.

Мой код (закомментированы неудачные попытки):

                let loader = new THREE.GLTFLoader();
                loader.load('scene.gltf', function ( gltf ) {
                        GLTF = gltf;
                        let xMesh = gltf.scene.children[0];
                        scene.add(xMesh);//arWorldRoot.add(xMesh);
                        animation = new THREE.AnimationMixer(xMesh);
               animation.clipAction(gltf.animations[0]).setDuration(8).play();
                        //scene.add( gltf.scene );
                        //animation = new THREE.AnimationMixer(gltf.scene);
                        //animation.clipAction(gltf.animations[0]).play();
                        //gltf.animations.forEach(( clip ) => {
                        //animation.clipAction(clip).play();
                        //});
                        //render();
                }, undefined, function ( error ) {
                        console.error( error );
                } );
....
....
....
 function render() {
            requestAnimationFrame(render);
            var delta = new THREE.Clock().getDelta();
            if (animation != null) {
                animation.update(delta);
            };
            renderer.render(scene, camera);
 }

Вывод, который я получаю от всех этих попыток, заключается в том, что 3D-модель отображается, но не анимируется. В devTools нет ошибок / предупреждений.

Это довольно странно следовать официальной документации и не работать, но я уверен, что что-то упустил ...

1 Ответ

0 голосов
/ 02 июля 2019

Я попробовал тот же код, и у меня возникла та же проблема.В моем случае getDelta () возвращала 0, поэтому анимация не двигалась вперед.Чтобы проверить работоспособность анимации, я просто вручную ввел значение в animation.update (), т.е. animation.update (0.01).

...