えー、AdobeMAXでちらっとSaqooshaさんのFLARToolkitにものっかります的な話をしたんですが以下がそれです。Saqooshaさんが「FLARToolkitスタートガイド」を用意してくださっていたので、Frocessing版をつくってみました。つくったと言ってもほとんど変えてないですけど。カメラんとことか、計算結果の行列アテぐらいです。
とりあえずビデオはこんな感じ。(というか vimeo 使ってみたかっただけというか…)
ダウンロード
まとめたものです。マーカーはSaqooshaさんのブログのやつと同じです。
//nutsu.com/spark/FLAR_F5_start.zip
※何気に動かなくなっていたので「FLARToolkit 2.5.3」版で更新しました(2010/5/25)
使い方
とりあえず、遊んでみるには「SimpleCubeF5.as」の以下のところを適当に書いてみてください。FrocessingはY軸が反対なのに注意です。
//始まるまえに一度呼ばれます override protected function setup3d(fg:F5Graphics3D):void { //なにかしら初期化 fg.rectMode( FC.CENTER ); } //enterframeで呼ばれます override protected function draw3d( fg:F5Graphics3D ):void { //なにかしら描画:以下はビデオのもの fg.noFill(); fg.stroke( 255, 0, 0 ); fg.strokeWeight( 2 ); fg.rect( 0, 0, 80, 80 ); //axis fg.rect( 0, 0, 40, 40 ); fg.stroke( 0xff0000 ); fg.line3d( 0, 0, 0, 50, 0, 0 ); //X fg.stroke( 0xff0000ff ); fg.line3d( 0, 0, 0, 0, 50, 0 ); //Y fg.stroke( 0xff00ff00 ); fg.line3d( 0, 0, 0, 0, 0, 50 ); //Z fg.translate( 0, 0, 20 ); fg.fill( 255, 0, 0, 0.5 ); fg.stroke(255); fg.strokeWeight( 0 ); fg.box(40); }
その他
Frocessing版といっても、先ほど書いたようにカメラんとことかしかいじってないです。なので、他の3D系ライブラリにもすんなりいけるんじゃないかと。
まずは、F5ARApp.as(元は PV3DARApp.as)の65行目の認識結果取得のところ。
this._detector.getTransformMatrix(this._resultMat);
ここで「_resultMat」に計算結果の変換行列が入ってくるので、あてるライブラリに適用します(ライブラリによって座標系が違うのでその辺いい感じに)
次に、F5ARApp.as の _initCamera() でプロジェクションの設定をする感じです。
正直、僕のはなんとなくやってるんですが…多分あやしい。本家の「org.libspark.flartoolkit.pv3d.FLARCamera3D」の結果を適用するくだりを参考にするとよいと思います。
それではぁ。