まずBlenderでThree.js用に以下のJSONを出力しました。
json
1"materials":[{ 2 "DbgName":"IFC______3_", 3 "opacity":1, 4 "colorEmissive":[0,0,0], 5 "DbgColor":15597568, 6 "transparent":false, 7 "visible":true, 8 "colorDiffuse":[0.5,0.5,0.5], 9 "shading":"phong", 10 "wireframe":false, 11 "blending":"NormalBlending", 12 "depthWrite":true, 13 "DbgIndex":1, 14 "colorSpecular":[0.5,0.5,0.5], 15 "depthTest":true, 16 "specularCoef":50 17},{ 18・・・(略)・・・
new THREE.JSONLoader()
でJSONを読み込んで表示するところまではできています。
opacityやwireframeは効くのに、オブジェクトの色が変えられないのです。
javascript
1// 効く 2model.material.materials.transparent = true; 3model.material.materials.opacity = 0.5; 4model.material.materials.wireframe = true; 5 6// 効かない 7model.material.materials.colorDiffuse = [0.8,0.2,0.2]; // 赤っぽくなるはず・・・
非常に重いのですがvimで直接colorDiffuseを変更してあげると、赤っぽくなりました。ただしこれだと、ユーザーのクリックイベントに応じて色を変えたい時に対応できません。JSONファイルを直接書き換えるのではなく、JavaScriptでどうにかしたいのですが、どうすれば良いでしょうか?
###補足情報(言語/FW/ツール等のバージョンなど)
Three.js r78
Blender 2.77
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。