Home > flash > Metasequoia クラスで bmp ファイルのテクスチャを読み込む

Metasequoia クラスで bmp ファイルのテクスチャを読み込む

  • Posted by: non
  • 2008年2月18日 21:45
  • flash

タロタローグの太郎さんの記事で、メタセコイアファイル(.mqo)のビューワはチュートリアルのプレビューレベルを想定していると書かれていた。でも、実際に三次元CG@七葉の保管庫などで公開されているテクスチャには bmp ファイルがよく用いられてるので、読み込めた方が良いんだろうなーと思って改造してみた。

まぁ、用途的にはインタラクティブ性があるだけで美しさは無いので、チュートリアルのプレビューレベルに使えればいいか?とかそんな感じ、もしくは三次元CG@七葉のような掲示板で練習中の作品を見せ合うために使うとかだろう。が、そう言った場合に木構造表示機能はあったほうがいいのか、それとも不要なのか?といった疑問に答えてくれる人が周りにいないので、今一開発が迷走してるように思える。

タロタローグ ブログ » AS3版メタセコビューワ作った。

といっても、Flash は普通の方法では外部 bmp ファイルをロードできないので、便利な BMPDecoder クラスを使う。

改造する Metasequoia クラスのリビジョンは 233。

まず BMPDecoder クラスをインポートする。

import com.voidelement.images.BMPDecoder;

次に bmp ファイルのロード用に loadBMPMaterial というメソッドを追加する。

private function loadBMPMaterial(url:String):BitmapMaterial {
    var material:BitmapMaterial = new BitmapMaterial();
    var loader:URLLoader = new URLLoader();
    loader.dataFormat = URLLoaderDataFormat.BINARY;
    loader.addEventListener(Event.COMPLETE, function(event:Event):void {
        var bmpLoader:URLLoader = event.target as URLLoader;
        var decoder:BMPDecoder = new BMPDecoder();
        material.bitmap = decoder.decode(bmpLoader.data);
        material.maxU = material.maxV = 1;
        material.resetMapping();
    });
    loader.load(new URLRequest(url));
    return material;
}

最後に mqo ファイルのテクスチャに bmp ファイルが指定されていた場合の分岐を増やす。

if (tex.toLowerCase().search(/\.tga$/) != -1) {
    material = loadTGAMaterial(path + tex);
} else if (tex.toLowerCase().search(/\.bmp$/) != -1) {
    material = loadBMPMaterial(path + tex);
} else {
    // テクスチャの URL を絶対にして読み込む
    material = new BitmapFileMaterial(path + tex);
    material.addEventListener(FileLoadEvent.LOAD_COMPLETE, materialLoadCompleteHandler);
    material.addEventListener(FileLoadEvent.LOAD_ERROR, materialLoadErrorHandler);
}

サンプル

テクスチャの総ファイルサイズが前回のものと比べて10倍になってしまった...。Web上でビューワとして利用するなら、やっぱり jpeg や png などの軽いテクスチャに限定した方がいいのかもしれない。

heteml banner

Comments:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Trackbacks:0

TrackBack URL for this entry
http://nondelion.com/cms/mt-tb.cgi/103
Listed below are links to weblogs that reference
Metasequoia クラスで bmp ファイルのテクスチャを読み込む from nondelion.com

Home > flash > Metasequoia クラスで bmp ファイルのテクスチャを読み込む

Search
Feeds

Return to page top