FLARToolKit:FlashとWebカメラで拡張現実

最近、Flashクリエイターのブログで「FLARToolKit」という言葉をよく見かけるようになりました。FLARToolKitとは、「拡張現実」というものをFlashで実現するためのフレームワークのようです。一体どのようなことができるのか、FLARToolKitの作者である「さくーしゃ」さんに話を伺いました。

Edge:FLARToolKitとはどういったものなのでしょうか、何ができるのでしょうか?

さくーしゃ:FLARToolKitとは何かを説明する前に、まずは「AR」について説明しておいた方がよさそうですね。ARとは、Augmented Realityの略で、日本語でいうと「拡張現実」という意味になります。簡単に言うと、実写の上にリアルタイムでいろいろな情報をのせる技術です。攻殻機動隊とか、電脳コイルのメガネとかをイメージすると分かりやすいかもしれませんね。

もともと、C言語で書かれた「ARToolKit」というARを実現するためのフレームワークがありました。Flashでこれが使えたら面白いなぁと思って、移植にトライしてみたのですが、その時は難しすぎて挫折しました。ところが、2008年の3月にARToolKitをJavaに移植した「NyARToolkit」が登場したんです。JavaとActionScript 3.0は言語的に近いので、「これならいけるんじゃ?」と思ってトライしてみたらできました。それが2008年の5月でした。

FLARToolKitが提供する機能は「マーカーを認識して3次元空間での位置を計算する」というところまでです。映像上に表示する3Dオブジェクトのレンダリングには、別のライブラリを使います。レンダリングエンジンとして標準で対応しているのはPapervision 3D (rev.815 以降) ですが、Away3Dへも対応作業が進んでいます。Flash CS4ネイティブの3Dへの対応も可能だと思いますが、今のところ予定していません。

言葉だけではイメージしづらいと思うので、デモムービーをお見せしましょう。これは、ちゃぶ台さんがFLARToolKitを使って作成した作品です。Flashコンテンツの中でWebカメラの映像を表示させて、そこに紙の上に描いたマーカーを映し出すと、マーカー部分にクリスマスツリーが登場するという内容です。

Edge:FLARToolKitの使い方を勉強するにはどうすればいいでしょうか?

さくーしゃ:コード自体はSpark projectで公開されています。Adobe MAXでの講演に向けてスタートアップガイドを用意したので、そちらを参考にしてください。それと、タロタローグの太郎さんやちゃぶ台さんのブログで詳しく解説されているので、そちらも参考にしてみてください。

Edge:FLARToolKitを利用する上で何か注意点はありますか?

さくーしゃ:一番気を付けなければいけないのは、「マーカーの認識に結構なマシンパワーが必要となる」ということですね。そのため、あまり複雑なオブジェクトを表示させようとすると、動作が非常に重たくなります。Flash (AS3) の性能上、ネイティブアプリとして動作するオリジナルのARToolKitほどには複雑なオブジェクトを扱うことができません。FLARToolKit側でFlash Player 10特有のVectorを使ったり、Pixel Benderを使った並列処理などを取り入れたりして高速化すれば 、この問題もある程度解決できる可能性はありますが、今のところそうする予定はないのです……。

あと、ライセンスにも注意が必要です。ARToolKitからの派生物ということで、ARToolKitが取り入れているGPLがそのままFLARToolKitにも適用されます。簡単に言うと、「FLARToolKitを使ったコンテンツは、そのソースコードを公開しなければならない」のです(※GPLの詳細については、必ず原文を読んでください。日本語訳もありますが、あくまで参考と考えた方がいいでしょう)。ただ、GPLだと商用サイトには非常に使いづらいので、現在、ARToolKitのライセンスを全て保有しているARToolworksと商用ライセンスについて協議を進めています。

Edge:マーカーの形状にルールや制約などがありますか?

さくーしゃ:基本的には、下図のように外と中が 2 : 1 の黒枠にし、中の絵柄は点対称にならないようにデザインします。点対称だとマーカーの向きが判断できなくなるからです。

マーカーの形状

実は、上級者レベルになれば、枠の太さの比率やマーカーの認識精度を変更したりすることもできます。ただ、最初のうちは基本ルールに沿ってマーカーを作成した方がいいでしょうね。

また、オリジナルのARToolKitと同様にFLARToolKitでも複数のマーカーの同時認識も可能ですが、Flashの処理性能からすると1マーカーにした方が実用的です。将来のバージョンアップで、複数マーカーでもある程度実用的な処理速度レベルになるように改善するかもしれません。

Edge:FLARToolKitを使った作品をいくつか紹介していただけますか。

さくーしゃ:これは、ちょっと実験的にやってみた程度のものですが、クリックするとマーカーから小さな花火が打ち上がるようになっています。


Desktop Fireworks

この時は、まだあまりFLARToolKitを使いこなせていなくて、打ち上がった後のものもマーカーにくっついてくるので、何か違和感があったり。あとカメラが完全に固定されているのでAR感があまりないですが……。こういう系のARは、カメラがブレている方が臨場感・存在感が増すでしょうね。実際にみなさんも試せるようになっているので、サイトにアクセスしてください。

それともう1つ。私が所属しているKatamari Inc.とそのグループ会社であるAID-DCC Inc.の2009年のお年賀コンテンツです。FLARToolKit自体は2008年の5月にリリースしていたものの、ちゃんとコンテンツとして成立させることができていなかったので何かに使いたいと思っていましたし、年賀状という紙媒体を送るイベントとのマッチングもいいよねってことで、FLARToolKitを使ったお年賀コンテンツを企画しました。


「HAPPY NEW YEAR '09

年賀状には、サイトのURLとマーカーが印刷されているだけです。一見、何のことやら意味不明ですが、いざそのURLにアクセスしてWebカメラで年賀状を写してみるとあら不思議、弊社メンバーの今年の抱負が年賀状からヒュオオロロローと飛び出します。こちらも、みなさんが試せるようになっています。年賀状は上のサイトから印刷できます。

Edge:FLARToolKit(あるいはAR)の可能性についてどう思いますか?

さくーしゃ:AR自体は昨年から徐々に盛り上がってきていて、昨年末にはMINIがARを使ったWebキャンペーン「Das neue MINI Cabrio」をやっていますね。これはActiveXプラグインを別途インストールする必要がありましたが。

OOH(屋外広告など)と携帯電話を絡めたようなものとか、流行りのデジタルサイネージとか、そんな感じで今年はAR的コンテンツがもっと身近にいろいろと登場してくるんじゃないでしょうか。「カメラで写すだけ」という単純な行為で、かなりのインパクトを与えられるっていうところは、いろいろと効果的ですよね。特に広告分野とか。

FLARToolKitはできることが限られている反面、Flash PlayerとWebカメラさえあればWebサイト上で手軽に試せるので、AR的なコンテンツの魅力を知ってもらうきっかけになればな、と思っています。

関連情報


さくーしゃ氏

さくーしゃ / Saqoosha (小山智彦)

Katamari Inc.でFlashやってます。大阪で。最近だとこんなサイト作ったり。
http://www.express.nec.co.jp/seguente/mini-special/
Saqoosha.netでブログ書いてます。新しもの好きで飽きっぽいGeek。なのでFLARToolKitもいつ飽きることやら。
Twitter

僕にタグをつけると:Flash, Katamari, Technology, iPhone, 赤, 中田ヤスタカ, てら子, これはすごい, これはひどい, かぶりもの, 先生じゃないのに先生って呼ばれる