首页 文章

如何在最后一个版本中处理和播放three.js中的骨架动画

提问于
浏览
1

我知道有skinning_blending模型,但因为它有gui控件(dat.gui和所有其他threejs例子一样)所以代码变得太复杂了,我无法得到像我之前发现的旧三个简单方法像这样的版本:

var loader = new THREE.JSONLoader();
                loader.load('../assets/models/simpleManMesh2.json', function (model, mat) {

                   var mat = new THREE.MeshLambertMaterial({color: 0xF0C8C9, skinning: true});
                    mesh = new THREE.SkinnedMesh(model, mat);


                    // register the animation
                   THREE.AnimationHandler.add(model.animation);

                   var animation = new THREE.Animation(mesh, "saluuut");

                    scene.add(mesh);

                    // start the animation
                    animation.play();

                }, '../assets/models');

与其他许多人一样,我得到了错误:

THREE.AnimationHandler.add()已被弃用 .

所以我要求的是一个相同的简单代码(没有任何gui控件),但它适用于最新版本 . 最好的祝福 .

1 回答

  • 2

    它刚才是 THREE.Animation()

    loader.load('yourfile.json',function(geometry,materials){
        for(var i in materials)materials[i].skinning=true;
    
        mesh=new THREE.SkinnedMesh(
            geometry,
            new THREE.MeshFaceMaterial(materials)
        );
        scene.add(mesh);
    
        animation=new THREE.Animation(mesh,geometry.animations[0]);
    
        animation.play();
    });
    

相关问题