FLARToolKitを使ったAR系Flashの作り方

第1回 FLARToolKitことはじめ

この記事を読むのに必要な時間:およそ 4 分

ARとは?

最近よく目にするARとはAugmented Realityの略で,日本語にすると「拡張現実」と言います。昔はやったVR(Virtual Reality)とよく間違われるのですが,こちらは「仮想現実」。ARとは違います。

Wikipediaによると,ARは次のように定義されています。

拡張現実とは現実環境にコンピュータを用いて情報を付加提示する技術,および情報を付加提示された環境そのものを示す。

難解な文章でよくわからないですよね。具体的なモノでいうと,アレです,ドラゴンボールに出てくる「スカウター」です。スカウターを通して見ると現実環境に相手の戦闘能力が付加提示されて見える,と。実写に完全にシンクロさせてリアルタイムにCGなどを合成するという技術なのです。

FLARToolKitとは?

さて,本稿で解説するFLARToolKit(えふえるえーあーるつーるきっと)とは,このARという技術を容易に実現するために開発されたARToolKitというものをFlash(ActionScript3.0)に移植したものです※1)。

※1
FLARToolKitは,ARToolKitをJavaに移植したNyARToolkitをベースにしています。

実際にFLARToolKitがやってくれるのは実写画像から3次元空間の位置を計算するところまでで,その計算結果を使って3Dオブジェクトを表示するためには別途Papervision3Dなどの3Dライブラリが必要になります。現在FLARToolKitが対応しているのはPapervision3D(rev.815以降)だけですが,近日中にAway3D 2.3への対応も予定しています。

FLARToolKitは日本最大のFlash/ActionScriptオープンソースコミュニティ,Spark projectに参加しています。最新版のソースコードはリポジトリからダウンロード可能ですFLARToolKitのページはこちら)。

ライセンス

ライセンスは移植元のARToolKitがGPLで公開されているため,必然的にFLARToolKitもGPLでの配布となります。

また,GPLではソースコードの公開が必要であったため,企業サイト等には導入しづらかったのですが,2月16日にARToolKitの開発元のARToolworks,Inc.からFLARToolKitとNyARToolkit向けの商用ライセンスが発表されました。この商用ライセンスを利用すればソースコードの公開は必要ないため,企業のキャンペーンサイトなどにも導入しやすくなったと思います。

FLARToolKitの仕組み

FLARToolKitを使うまえに,FLARToolKitの仕組みを解説しておきましょう。

FLARToolKitはどのようにして実写内の空間を認識するのでしょうか。ヒントはマーカーと呼ばれる特徴のある画像です図1)。

図1 FLARToolKitで利用するマーカー

図1 FLARToolKitで利用するマーカー

マーカーでは,黒い四角い枠のなかに任意の絵柄を描きます※2)。FLARToolKitは実写内に写ったマーカーを見つけて,そのマーカーが3次元的にどの方向を向いているのかを計算する,という仕組みになっています。そのため,まったく何もない空間だけでは認識できません。必ずマーカーが必要になります。

※2
ちなみに,図1はオリジナルのARToolKitにデフォルトで付属してるマーカーなのですが,どうしてHiroと書いてあるかというとARToolKitの開発者が「加藤博一(かとうひろかず)」さんだからだとか,なんとか。

FLARToolKitをさわってみよう

FLARToolKitを使用するうえで,準備するものは以下ものです。

まず,なにはともあれFlash。FLARToolKitはActionScript3.0で書かれているため,Flash CS3以降が必要です(実際には.flaには素材的なものは何も含まれていないので,Flex BuilderやFlashDevelopでも簡単にできます)。

次にWebカメラ。Flashから使えるものであれば安いものでも問題ありませんが,露出補正機能がついているもののほうが明るさの変化に対応してくれて認識しやすくなるのでおすすめです。

そしてFLARToolKitスタートキット。これは僕のブログの記事FLARToolKitスタートアップガイドのためにファイル一式をまとめたものですが,必要なファイルがまとまって入っているので今回も手始めにこのデータを使います。

最後にマーカー。スターターキットにflarlogo-marker.pdfというのが入っているので,適当な紙に拡大縮小せずにそのままのサイズ(80mm×80mm)で印刷してください。厚めの紙のほうが曲がったりしなくてよいのでおすすめです。

FLARToolKitスタートキットを利用した手順

それでは,始めます。

  1. SimpleCube.flaを開きます。
  2. Ctrl+Enter(MacならCommand+Enter)でパブリッシュプレビューします。
  3. カメラ画像が表示されるのを確認。表示されてない場合はカメラを選び直す必要があるので,ステージを右クリックしてコンテキストメニューから「設定」,カメラアイコンの描いてあるタブを選んで,プルダウンから適当なものを選択してください。MacBookなどの内蔵カメラは「USB Video Class Video」という名前です。また,カメラ設定の詳しい説明はAdobeのサイトを参考にしてください。
  4. カメラからの映像が映ったら,カメラの前に印刷しておいたマーカーをかざします!

すると,図2のような感じでマーカーの上にピンクのCubeが乗って表示されます! 現実が拡張されてます! マーカーを動かしてもピッタリくっついてきますムービーで見てみる)。

図2 ピンクのCubeが乗っているように表示される

図2 ピンクのCubeが乗っているように表示される

上手に認識されないときは部屋の照明を明るくしてみてください。光が反射して黒い部分が光ってしまっていてもダメです。白と黒のコントラストがはっきり出るようにしてみましょう。

著者プロフィール

さくーしゃ

大阪のKatamari Inc.っていうWeb屋でFlashやってます。Saqoosha.netでブログ書いてます。新しもの好きで飽きっぽいGeek。

コメント

  • 3Dソフトで作った外部データの読み込みの件

    はじめまして、記事を読ませてもらい、実際にテストしてみたのですが、読み込んだ外部データに陰影や影が表示できないのですが、どのように設定すれば良いのでしょうか?

    お手数ですがよろしくお願いします。

    吉谷

    Commented : #1  吉谷英雄 (2010/09/29, 10:41)

コメントの記入