Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 导入的JSON几何体不随骨骼移动_Javascript_Json_Three.js_Geometry_Mesh - Fatal编程技术网

Javascript 导入的JSON几何体不随骨骼移动

Javascript 导入的JSON几何体不随骨骼移动,javascript,json,three.js,geometry,mesh,Javascript,Json,Three.js,Geometry,Mesh,我已经将一个模型导入到我的Three.js场景中。我可以移动和旋转骨骼,但模型的几何体不会随骨骼一起移动 下面是我用来导入JSON文件并将其添加到场景中的代码 /*load JSON file*/ // instantiate a loader var loader = new THREE.JSONLoader(); loader.load( 'https://cdn.rawgit.com/wpdildine/wpdildine.github.com/master/models/cylinder

我已经将一个模型导入到我的Three.js场景中。我可以移动和旋转骨骼,但模型的几何体不会随骨骼一起移动

下面是我用来导入JSON文件并将其添加到场景中的代码

/*load JSON file*/
// instantiate a loader
var loader = new THREE.JSONLoader();
loader.load( 'https://cdn.rawgit.com/wpdildine/wpdildine.github.com/master/models/cylinder.json', addModel );

var helpset;
var scaleVal = 3;

function addModel( geometry,  materials ){

    materials.skinning = true;

    var cs = scaleVal * Math.random();

    mesh = new THREE.SkinnedMesh( geometry, new THREE.MeshFaceMaterial(materials) );

    scene.add(mesh);
    helpset = new THREE.SkeletonHelper(mesh);
    scene.add(helpset);     

}
我导入的JSON文件包含权重,因此我认为我不必自己添加权重。是否与将骨架绑定到网格有关

这是我的代码链接-(与脚本的新链接,谢谢@Mr.Polywhill)

如您所见,GUI控件中的“Bone_2”会移动其中一个骨骼,但不会移动网格

编辑:我已尝试在render()函数中访问网格的骨骼。我使用以下代码行完成了这项工作

mesh.skeleton.bones[2].rotation = 0.1;

我得到以下错误:'无法读取未定义(…)'的属性'skeleton',Wes undefined是网格变量。有没有一种新的方法可以访问我需要使用的SkindMesh骨骼?

问题在于线路

materials.skinning = true;
需要以下几点才能起作用:

materials[0].skinning = true;

我将缺少的脚本添加到了“如果有人想解决它”。@polywhill先生,您对如何解决此问题有何想法?感谢添加脚本!