2016-04-18 5 views
0

私はThree.jsシーンにモデルをインポートしました。私は骨を動かすことができますが、モデルのジオメトリは骨で動かない。インポートされたJSONジオメトリは骨で動かない

ここで私は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ファイルには重みが含まので、私はそれらを自分で追加する必要がありましたとは思いませんでした。スケルトンをメッシュにバインドすることは何でもできますか? https://jsfiddle.net/joeob61k/1/(。スクリプトと新しいリンク、感謝@Mr Polywhirl)

あなたが見ることができるように、GUIコントロールの「Bone_2は」骨の一つではなく、メッシュを動かす - ここ

は私のコードへのリンクです。

EDIT:render()関数でメッシュのボーンにアクセスしようとしました。私は、私は次のエラーを取得、次のコード行を使用して

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

を行っている:「未定義の(...) 『』プロパティを読み取ることができません」スケルトンが未定義だったメッシュの変数です。使用する必要があるSkinnedMeshのボーンにアクセスする新しい方法がありますか?

+1

、それが仕事に、次のことが必要であり、ラインで

materials.skinning = true; 

だった私は[あなたのJSFiddle](httpsに不足しているスクリプトを追加しました:// jsfiddle。 net/joeob61k/1 /)誰かがそれを処理したい場合。 –

+0

@ Mr.Polywhirlこの問題を解決する方法はありますか?スクリプトを追加していただきありがとうございます! – skelto

答えて

0

問題が

materials[0].skinning = true; 
関連する問題