GLTFLoader не может прочитать всю анимацию из 3dmax? - PullRequest
0 голосов
/ 06 августа 2020

Я создал модель с 3dsmax и экспортирую как FBX, затем перевожу ее в GLTF, и я могу загрузить модель с тремя js, но когда я хочу загрузить анимацию, что-то не так, каждый объект в моей модели с анимацией дает мне THREE.PropertyBinding: Trying to update property for track: xxxx.position but it wasn't found. все объекты go неверно, вот мой проект 3dsmax: 3DSMAXPROJECT , а вот когда я запускаю в chrome и модель, и ее анимацию А вот мой код html и javascript

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>THreeGLTF</title>
    <script src="three.js"></script>
    <script src="GLTFLoader.js"></script>
    <script src="OrbitControls.js"></script>

   
</head>
<body>
    <script>
        var container,controls;
        var camera,scene,renderer,light;
        var clock = new THREE.Clock();
        var mixer;
        function init(){
            container =document.createElement("div");
            document.body.appendChild(container);

            //
            camera=new THREE.PerspectiveCamera(45,window.innerWidth/window.innerHeight,0.25,1000);
            camera.position.set(0, 311, 565);//
            //
                window.addEventListener( 'resize', onWindowResize, false );
            //
            renderer=new THREE.WebGLRenderer({
                antailias:true
            });
            renderer.setPixelRatio(window.devicePixelRatio);
            renderer.setSize(window.innerWidth,window.innerHeight);
            container.appendChild(renderer.domElement);
            //
             controls=new THREE.OrbitControls(camera,renderer.domElement);
             controls.target.set(0, 42, 33);
             controls.update();
            //
            scene=new THREE.Scene();
            //
            light=new THREE.HemisphereLight(0xbbbbff,0x444422);
            light.position.set(0,1,0);
            scene.add(light);

            var loader=new THREE.GLTFLoader().setPath("modles/gaizi3_out/");
                gltf.scene.scale.set(50,50,50);
                gltf.scene.position.set(0,0,0);
                mixer=new THREE.AnimationMixer(gltf);
                mixer.clipAction(gltf.animations[0]).play();
                scene.add(gltf.scene);
                
            });
            //
            var axesHelper=new THREE.AxesHelper();//
            scene.add(axesHelper);
        }
        function onWindowResize() {
                camera.aspect = window.innerWidth / window.innerHeight;
                camera.updateProjectionMatrix();

                renderer.setSize( window.innerWidth*0.9, window.innerHeight*0.9);
            }
        init();
        animate();
        function animate(){
            requestAnimationFrame(animate);
            renderer.render(scene,camera);
            var delta = clock.getDelta();
            if(mixer){
                mixer.update( delta );
            }
        }
    </script>
    
</body>
</html>

Спасибо, если бы я мог дать мне совет!

...