« Flash Badge | メイン | macのマウスホイール for as3 »

SketchUpのCollada読み込み関連

どうもpapervision3d関連のネタはリソースが少なく、需要があるっぽいので、
たまには人の役にたちそうなことを書くだけ書いておきます。

■material関連
Google SketchUpのcolladaを読み込むと
SketchUpの書き出しが下手なのか、
Colladaクラス内のパース処理がうまくいっていないのかわからないけれど
materialが反映されないかった。
なので以下のように手動でmaterial(今回はColorMaterial)を割り当てた。

var colladaObj:Collada; //すでに読み込み済みのColladaオブジェクト
var material:ColorMaterial = new ColorMaterial(myColor); //myColorは任意の色
var myMaterials:MaterialsList = new MaterialsList();
for each(var child in colladaObj.children){
for each(var grandchild in child.children){
for ( var materialName in grandchild.materials.materialsByName){
myMaterials.addMaterial(material, materialName);
}
grandchild.materials = myMaterials;
}
}

■z-sort関連
Google SketchUpのcolladaを読み込むとz-sortがメチャメチャになった。
DisplayObject3Dクラスのproject()関数内をtraceしてみると
"Camera"という名前のオブジェクトが返す値(おそらくscreenZの値)がNaNになってしまっている。
この"Camera"はいったい何に使われるのかよくわからないが、
なくなっても大丈夫っぽかったので、削除した。

for (var childName in colladaObj.children){
if(childName=="Camera"){
colladaObj.removeChild(colladaObj.getChildByName(childName));
}
}

まだ制作途中なので、以上のことで何か不具合おこったら追記します。

トラックバック

このエントリーのトラックバックURL:
http://www.horned.org/mt/mt-tb.cgi/19

コメントを投稿

About

2007年07月02日 22:59に投稿されたエントリーのページです。

ひとつ前の投稿は「Flash Badge」です。

次の投稿は「macのマウスホイール for as3」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。