前回、前々回のエントリで、多分大半の人がFLARToolKitで好きなモデルを表示出来るようになって、「さ?て、次はどんなオリジナルコンテンツを作ろうかな?」と言う状態であるに違いないと楽観的なことを考えているが、一応、Metasequioaモデルの表示と言う当初の予定を果たそう。
Metasequoiaファイルの表示
Metasequoiaファイルの表示には、rch850氏作の「Metasequoia.as」を使う。Metasequoia.as
もSubversion上にあるので、「http://www.libspark.org/svn/as3/Metasequoia」をチェックアウトし、FlashDevelopのClasspathsタブで、「Metasequoia\src
」をクラスパスに入れ、プロジェクトのツリー部分に出ている事を確認する。
準備が終わったら、Metasequoia.asは簡単に使える。
- var mqo:Metasequoia = new Metasequoia();
- mqo.addEventListener(Event.COMPLETE , イベントハンドラ関数);
- mqo.load(Metasequoiaファイルへのパス);
これで、自動的にMetasequoiaファイルと模様マップの画像をダウンロードし、モデルとして組み上げてくれる。勿論、importは忘れずに。
なお、Metasequoia.asは、模様マップは読めるが透明マップ/バンプマップは読めないので、例えば、模様マップ部分にアルファ情報を含んだTGAファイルを使うなど、注意が必要。
で、読み込み&解析が完了したらEvent.COMPLETE
が出てくるので、そしたらサンプルのthis._transGrp
に登録すればよい。というか、別に読み込みも解析も完了してなくても、いきなり登録しても問題ない。その場合、解析が完了したら勝手に表示される。なので、サンプルを最も簡単に変更するとこういう感じになる。
- this._transGrp = this._scene.addChild(new DisplayObject3D()) as DisplayObject3D;
- var mqo:Metasequoia = new Metasequoia();
- mqo.load(Metasequoiaファイルへのパス);
- this_transGrp.addChild(mqo);
では、早速「ファイル保管庫@七葉」からはちゅねミクのモデルでもダウンロードしてきて、実行を試みて欲しい。見事、はちゅねミクがマーカー上に表示されたのではないだろうか?寝っ転がって。
寝っ転がる理由は前回のエントリに書いたとおりで、MetasequoiaではYが上下を表しているが、FLARToolKitでは(もしくはこのサンプルでは)Zが上下を表しているから。と言う事で、
- this._transGrp = this._scene.addChild(new DisplayObject3D()) as DisplayObject3D;
- var mqo:Metasequoia = new Metasequoia();
- mqo.load(Metasequoiaファイルへのパス);
- mqo.rotationX = -90;
- mqo.rotationZ = -90;
- this_transGrp.addChild(mqo);
こんな感じで、モデルをくるっと回しとけば良い。
ついでに、マーカーの向きと合うようにZ方向回転もしといた。
あと、モデルが大きすぎて入らないと言う場合、Metasequoia#load
の第2引数で倍率を指定できるので、
- mqo.load(Metasequoiaファイルへのパス,0.5);//元のモデルの半分の大きさで読み込む
等とすればよい。はちゅねミクは、0.3倍で読んでいる。
ここまでで、Metasequoiaモデルも簡単に読める事が分かったかと思う。と言う事で次回は、サンプルを改造してどんなモデルでも読めるクラスに変更しーますの巻。