Saqoosha

  1. About
  2. Archives
  3. Search
  4. Say
Language:

FLARToolKit スタートガイド

必要なもの

・Adobe Flash CS3 以降
FLARToolKit
Papervision3D (rev.814 以降)
・Web カメラ
・印刷したマーカー & マーカーデータ

ダウンロード

めんどいので一式をまとめたものを置いときました。はい。
http://saqoosha.net/lab/FLARToolKit/FLARToolKit-starter-kit.zip
追記(2009/2/8 1:50):ぎゃー、マーカーの PDF 入れ忘れてた。いれといた & マーカーだけアップしたのでこれをお使いくだせい。

イントロダクション

Papervision3D が使える人なら非常に簡単。サンプルのメイン部分はほぼ Papervinios3D の設定だけ。使えない人もこのサンプルはめっちゃシンプルなので難しくない。大丈夫。
ただ、1 点だけ注意。座標系が Papervision3D とちょっと違います。Papervision3D でレンダリングするのでグローバル座標系はもちろん左手座標系なんだけど、マーカーにのっかるオブジェクトは↓の図みたいなかんじで、マーカーを正面に見たときに右手座標系になる。 上方向が  +X、右方向が +Y、手前方向が +Z になる。(追記 2009/3/2:すいませんめっちゃ間違ってました、、、)

marker-axis

サンプルソースの解説

手順を追って書くほど難しくないのでソースを細かく解説。SimpleCube.as がメインで、その他のソースは特に見る必要ナッシング。なので SimpleCube.as を説明していきます。

17 行目

this.init('Data/camera_para.dat', 'Data/flarlogo.pat');

FLARToolKit を初期化します。第 1 引数にはカメラ補正ファイルへのパス、これは FLARToolKit に付属のものを指定しておけば OK。第 2 引数はマーカーのパターン定義ファイル、これは使用するマーカーに対応するパターン定義ファイルを指定。flarlogo.pat てのは flarlogo-marker.pdf 用。

20 行目

protected override function onInit():void {

init 呼んだあと、初期化が問題なく終わると最終的にこの関数が呼び出される。3D オブジェクトの設定はこの中ですればいい。パターンファイルが存在しなかったり Web カメラが接続されてないとこれが呼ばれるまでにエラーが出る。

24, 25 行目

var wmat:WireframeMaterial = new WireframeMaterial(0xff0000, 1, 2);
this._plane = new Plane(wmat, 80, 80);

マーカーが正常に認識できているか確認しやすいように、マーカーと全く同じサイズの Plane を作ってみる。赤色、2px のライン。80 てのがマーカーのサイズ。80mm。

26 行目

this._plane.rotationX = 180;

さっき書いたように座標系が違うのでこっち向ける。

27 行目

this._baseNode.addChild(this._plane);

通常、Papervision3D では Scene3DaddChild しますが、FLARToolKit ではマーカーに追従して 3D オブジェクトを動かすために特別なノードに addChild する必要があります。それが _baseNode。これに addChild することで自動的にマーカーに追従して動くようになります。

36, 37 行目

var fmat:FlatShadeMaterial = new FlatShadeMaterial(light, 0xff22aa, 0x75104e);
this._cube = new Cube(new MaterialsList({all: fmat}), 40, 40, 40);

マーカーの上に Cube をのっけてみます。ピンク色。サイズは 40mm x 40mm x 40mm。マーカーの半分のサイズ。

38 行目

this._cube.z = 20;

Cube は原点中心に作られるので、+Z 方向、つまりマーカー上方向に 20 移動させると、マーカーにちょうどのっかってるようになる。

動かしてみる

SimpleCube.fla を開いてパブリッシュすると Web カメラからの画像が表示されます。Web カメラつないでないとエラー出ます。つないでるのに絵が出ないってひとは右クリック→設定→カメラアイコン、で適当なカメラを選んでください。(MacBook とかの内蔵カメラは USB Video Class Video っていう名前になってます。)
印刷されたマーカー全体がカメラに写るようにするとオブジェクトが表示されます。マーカーにぴったりくっついてますね。ほら、簡単でしょう?

まとめ

サンプルを見てわかるようにマーカーに追従してオブジェクトを動かすってだけなら、Papervision3D でオブジェクトを作るコードを書くだけでできちゃうから、みんなも FLARToolKit はじめようー。みたいな。こんなんでいいすか?