Ich habe ein Modell in meine Three.js-Szene importiert. Ich kann die Knochen bewegen und drehen, aber die Geometrie des Modells bewegt sich nicht mit den Knochen.Importierte JSON-Geometrie bewegt sich nicht mit Knochen
Hier ist der Code, den ich verwendet habe die JSON-Datei und fügen Sie sie in die Szene zu importieren,
/*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);
}
Die JSON-Datei, die ich importiert enthält Gewichte so habe ich ich sie selbst nicht denken musste hinzufügen . Würde es etwas damit zu tun haben, das Skelett an das Netz zu binden? Hier
ist ein Link zu meinem Code - https://jsfiddle.net/joeob61k/1/ (Neuer Link mit Skripten, dank @Mr Polywhirl.)
Wie Sie sehen können, 'Bone_2' in den GUI-Controls bewegt sich einer der Knochen, aber nicht das Netz .
EDIT: Ich habe versucht, Zugriff auf die Knochen des Netzes in der render() -Funktion. Ich habe mithilfe der folgenden Codezeile so getan,
mesh.skeleton.bones[2].rotation = 0.1;
bekomme ich folgende Fehlermeldung: Skelett ‚undefinierter (...)‚‘nicht Eigentum lesen‘ wurden, ist nicht definiert die Maschen variabel. Gibt es eine neue Möglichkeit, auf die Knochen einer SkinnedMesh zuzugreifen, die ich verwenden muss?
Ich habe die fehlenden Skripte [Ihre JSFiddle] (https: // jsfiddle. net/joeob61k/1 /) Wenn jemand davon arbeiten will. –
@ Mr.Polywhirl hätten Sie eine Idee, wie Sie dieses Problem lösen können? Danke, dass du die Skripte hinzugefügt hast! – skelto