私は、io_threeを使って、Torus、Sphere、Suzanne(Money Head)、カメラ、Light of Point (ランプ)。私が取得JSONファイルには、子供のように、それらの要素が含まれています。Three.js:JSONカメラと光の読み込み
"object":{
"type":"Scene",
"matrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],
"uuid":"3FF28BA1-D2C4-4191-B85E-6CF740855E1C",
"children":[{
"name":"Camera",
"uuid":"B7190F03-3E64-4CE9-80C4-4C4830CDE149",
"matrix":[-0.685881,-0.0108168,0.727634,0,0.31737,0.895343,0.312469,0,-0.654862,0.445245,-0.610666,0,-8.96977,10.5794,-7.42916,1],
"visible":true,
"type":"PerspectiveCamera",
"far":100,
"near":0.1,
"aspect":1.77778,
"fov":28.8415
},{
"name":"Sphere",
"uuid":"0BD547AA-5356-467A-B9B9-F14F1E6B14F3",
"matrix":[-1,0,0,0,0,0,1,0,0,1,0,0,2.73509,4.09248,-1.14813,1],
"visible":true,
"type":"Mesh",
"material":"F6D51381-509B-460A-9468-D7FB4011BAEF",
"castShadow":true,
"receiveShadow":true,
"geometry":"7953F05E-3773-435D-9C37-1F2F004F2328"
},{
"name":"Suzanne",
"uuid":"B195305E-3E34-484F-BC36-9F7E2F25C8C3",
"matrix":[-1,0,0,0,0,0,1,0,0,1,0,0,-0.0103972,6.33829,0.0395848,1],
"visible":true,
"type":"Mesh",
"material":"9B00D2EB-ABD8-44CB-9CB9-C9CD431BE867",
"castShadow":true,
"receiveShadow":true,
"geometry":"2264D3C6-FBE8-4ED2-927A-DC8B9261DCEE"
},{
"name":"Lamp",
"uuid":"68A14BA0-1A6D-41B2-9DE3-D96F954A6939",
"matrix":[0.290865,-0.0551891,0.955171,0,0.771101,0.604525,-0.199883,0,-0.566393,0.794672,0.218391,0,-4.07625,5.90386,1.00545,1],
"visible":true,
"type":"PointLight",
"color":16777215,
"intensity":1,
"distance":0,
"decayExponent":2
},{
"name":"Torus",
"uuid":"B4469FFE-114C-4FA8-91F3-A14E4186C74A",
"matrix":[-1,0,0,0,0,0,1,0,0,1,0,0,0.0785838,1.71657,3.25101,1],
"visible":true,
"type":"Mesh",
"material":"4C8B09D5-5C78-431A-815E-B5D94C4B9CFF",
"castShadow":true,
"receiveShadow":true,
"geometry":"9BC4AAA5-E636-42F8-80AF-AD2AC955A727"
}]
}
私は今の代わりに個々のオブジェクトを、一度にすべてを取得するには、オブジェクトローダーを使用してシーンをインポートしています:
var Sphere;
var Monkey;
var BlenderCam;
var loader = new THREE.ObjectLoader();
// load a resource
loader.load(
// resource URL
'models/suzane/scene.json',
// Function when resource is loaded
function (loadedScene) {
scene.add(loadedScene);
//Getting the objects. This works fine and I can handle them:
Sphere = loadedScene.getObjectByName("Sphere", true);
Monkey = loadedScene.getObjectByName("Suzanne", true);
//Trying to get the camera object. The camera doesn's seem to be found
BlenderCam = loadedScene.children[ 0 ];
loop();
}
);
私が成功したことができますトーラス、スザンヌ、スフェアなど、どんなメッシュでも処理できます。しかし、私はカメラやランプを扱う方法を見つけることができません。私も、このプロパティを使用して、それぞれの子を探して試してみました
:
BlenderCam = loadedScene.children[ 0 ];
私は(5人の子供がある)0から4までの数字を試してみましたが、Three.jsはそれらの3を認識しています。それはカメラとランプを無視しています。私は、JSONファイル内のLampオブジェクトの位置を変更して、違いがあるかどうかを確認しましたが、children [0]、children [1]、およびchildren [2]カメラ、しかし球。したがって、カメラは無視されています。
ので、ご質問は以下のとおりです。
- はJSONファイルに設定されているカメラを使用する方法がありますか?
- JSONファイルにランプを使用する方法はありますか?
基本的に、私はBlenderですべての作業を行い、シーン全体をThree.js(オブジェクト、カメラ、ライト)にインポートしたいと考えています。 私に教えていただけるお手伝いをさせていただきます。あなたの時間の前にありがとう!