メタセコイア → Flash
以前から課題にしていた、メタセコイアで製作した 3D モデルを Flash にて表示を行うライブラリ製作にとりかかりました。
世には Papervision3D 用にメタセコイアファイルを読み込むライブラリが公開されており、どのような解析を行うのか等を参考にさせてもらいつつ進めています。
■ Papervision 3D 用 Metasequoia クラス
http://www.libspark.org/wiki/rch850/Metasequoia
http://www.libspark.org/svn/as3/Metasequoia/src/org/libspark/pv3d/Metasequoia.as
メタセコイアはシェアウェア版を用いて 3D モデルを製作することにしました。
シェアウェア版とはいえ、無料で利用可能な機能のみを用いています。
http://www.metaseq.net/metaseq/index.html
メタセコイアファイル(mqo)はテキストファイルで開くことが可能で、ファイル内は以下のファイルフォーマット通りになっています。
http://www.metaseq.net/metaseq/format.html
mqo ファイルは テキストファイルとして Flash から読み込むことが可能です。
mqo ファイル読み込み後はファイルフォーマットに従い、Material チャンクや Object チャンクといった内部の情報をそのままクラスファイルにし、その後、独自の 3D 表現ライブラリで使用できるように変換します。
3D 描画を行う際の難点として以下の(a)(b)がありました。
(a)メタセコイアのY軸とZ軸の向きが Flash の座標軸と逆
(b)メタセコイアと Flash とでは面表示規則(上面はどちらかの判定)が逆
ひとまずとして以下の対処で解決しました。
(aの対処)
Flash 上では 各頂点座標を X軸を中心として 180 度回転させる
(bの対処)
面にテクスチャを表示する際は TriangleCulling.NEGATIVE を用いて描画を行う
今回サンプルとしてメタセコイアで作成した簡単な 3D モデルのスクリーションショットが以下となります。
このメタセコイアファイルを Flash 上に読み込み表示を行ったものが以下となります。
http://www.dango-itimi.com/blog/swf/103/dpzl.swf
【 カメラ操作方法 】
[マウスドラッグ] --- 回転
[マウスドラッグ + Shift] --- 拡大縮小
[マウスドラッグ + Ctrl] --- 焦点位置変更
どの面が手前にくるかのソート処理はまだ組み込んでいないため、常に三角面体が手前に表示されます。
[ FLASH ] [ tips ] [ update ] 投稿者 siratama : 2010年09月26日 19:34