note.x

ASCOLLADAでGoogleSketchUpからのDAEを扱う

PV3Dにも参加してるTim Knip氏が開発中のASCOLLADAで、GoogleSketchUpからエクスポートしたkmzファイルに含まれるdaeファイルを、比較的まともにPV3Dで読めるようになってたので忘れないようにメモ。
使ったPV3Dのリビジョンはrev.243。

ASCOLLADA自体は、svnから落とす。

http://ascollada.googlecode.com/svn/as3/

(前述のTim氏によるエントリに記載されてるURLは古いので注意)
PV3DでASCOLLADAを使う場合は、上記svnからpapervision3d拡張用のクラスファイルも全て落とした上で、それぞれ所定のディレクトリに置く。

Googleの3DWareHouseから適当なデータの「Google Earth形式(.kmz)」を落とす。オレの場合は、Corn Exchange National Bankを落とした。

.kmzファイルの実態はzip形式のアーカイブなので、拡張子を.zipに書き換えるとかして展開。中には

  • doc.kml
  • textures.txt
  • imagesフォルダ(テクスチャ)
  • modelsフォルダ(daeファイル)

が入ってるので、modelsフォルダ内のdaeファイルをPV3Dで読み込めばよし。
Tim氏のエントリにあるように

var dae:DAE = new DAE( “somedae.dae” );
scene.addChild( dae );

とかやればいい。
注意点として、GoogleSketchUpでテクスチャをタイリング処理してあることが多いので、それに対処するためには、MaterialObjectのtiledプロパティを「true」にする必要がある。面倒な場合は、org/papervision3d/core/proto/
MaterialObject3D.asの79行目を

public var tiled :Boolean = true;

に書き換えておく。デフォルトは「false」なので必要ない時は戻したほうがいいかも。

結果は以下の通り。

e_ascollada.jpg

obj_Collada.swf(要:FlashPlayer9)

手ぇ抜いてマテリアルをデフォルトのままにしたもんだから、テクスチャ歪みまくり。
PreciseBitmapMaterialで設定し直したほうが美しいだろうな…かなりめんどくさいけど。
今回は出来あいのkmzからdaeを拝借したけど、GoogleSketchUpで作った形状をkmzでエクスポートしても多分読めると思う。ただ、GoogleWareHouseで公開されてるデータが全部まともに読めるわけではないので、何かの機能を使うことでASCOLLADAで読めないものになるみたいだ。この辺は要調査。
とはいえ、そこそこ使えそう。これで貧乏人のためのモデリングツールがまたひとつ増えたかな?


Trackback URL : http://blog.r3c7.net/as3-software-rendering/113/trackback/

Leave a Reply