【研究課題レポート抜粋】拡張現実感を用いたアプリケーションの開発 | サイバーエージェント 公式エンジニアブログ
これは第3回研究課題(2009年前半期)におけるICHIRO氏のレポートからの抜粋です。

概要
 拡張現実感(Augmented Reality,AR)を用いたアプリケーションが注目を集めている.
AR 技術の概要説明を行い,その後,実際にAR を用いたアプリケーションを作成する.
Java およびFlash(ActionScript) の2 種類の言語のAR ライブラリを使用し,2 つのアプリ
ケーションを作成した.
Java のAR ライブラリであるNyARToolkit for Java を用いて,カメラ画像にゲーム盤をオー
バレイし,マウスアクションで操作するリバーシゲームを作成した.
Flash のAR ライブラリであるFLARToolkit を用いて,カメラ画像にAmeba Pigg のキャラク
タをオーバレイし,マウス操作によりキャラクターを移動させることができるアプリケーションを
作成した.

1 はじめに
 インターネットやモバイル機器の未来に大きな影響を与えうる技術として拡張現実感(AR,
Augmented Reality) が注目されている[1].
AR は2007 年頃から専門研究者以外にもその概念が広く知られるようになったと言われており,
その理由の一つがNHK 教育テレビで2007 年5 月から放送されたアニメ「電脳コイル」であると
考えられている.また,AR アプリケーションを使った映像がニコニコ動画やYouTube にアップ
ロードされ話題になったこともAR の認知を広げる助けとなった.
各種プログラミング言語のAR ライブラリの開発も盛んに行われ,研究者以外の人がAR アプ
リケーションを開発する機会も増えてきている.

2 AR 技術の概要
 AR 技術を利用したアプリケーションの多くは,カメラ画像(連続画像、動画)などの現実世界
に3D オブジェクトなどの仮想的な物体をオーバーレイし,アプリケーション使用者に対して提示
する機能をもっている.たとえば,ニコニコ動画にアップロードされる映像で人気があるもので
は,実際に生活している空間に「初音ミク」という仮想的な人物オブジェクトを表示するというも
のがある.実際に初音ミクの3D モデルを表示した例をFig.1 に示す.

$サイバーエージェント 公式エンジニアブログ

Fig.1 AR を用いて初音ミクの3D モデルを表示した例


 AR 技術にはマーカ型とマーカレス型がある.マーカ型はモデルを表示する位置情報として,コ
ンピュータが認識できるマーカを使用する形式であり,マーカレス型はマーカを必要としない形式
である.
 マーカ型AR のライブラリとしてはARToolkit[2] がある.ARToolkit はC/C++ のライブラ
リであるが,各種言語にも移植されており,Java やFlash 版も存在している.マーカレス型AR
としてはPTAM[3] がある.PTAM を使ったデモ動画が著者のWEB ページやYouTube にアッ
プロードされ話題となった.特に京都・龍安寺の石庭でダースベイダー風のキャラクターが動き回
るシーンは注目を集めた*1(Fig.2).

$サイバーエージェント 公式エンジニアブログ

Fig.2 PTAM デモ動画のワンシーン[3]


 AR 技術を応用し,すでに商品化・サービス化されているものとしては芸者東京エンターテイン
メント株式会社の「電脳フィギュアARis」,頓智・株式会社の「セカイカメラ」,
KDDI 株式会社の「実空間透視ケータイ」,SPRXmobile の「Layar」などがある.
次章以降で実際にJava,Flash(ActionScript) を用いたAR アプリケーションを作成していく.

3 AR アプリケーションの作成
3.1 システム基本構成
 AR アプリケーションではPC などの演算装置,USB カメラなどの動画撮影デバイスを使
用する.本稿ではPC としてDell のノートPC・studio1555 およびLogicool のQcam Pro for
Notebooks を使用した.また,ARToolkit およびその移植版ライブラリを使用する際には紙に印
刷したマーカが使用される.

3.2 ARToolkit
 ARToolkit はAR アプリケーションの実装を手助けするC/C++ 用のプログラミングラ
イブラリである.ARToolkit はもともと加藤博一らによって開発され,現在はワシントン
大学のHIT Lab(Human Interface Technology Laboratory),カンタベリー大学のHIT Lab
NZ,ARToolworks.Inc らの手によって研究が進められている.ARToolkit は公式サイト
(http://www.hitl.washington.edu/artoolkit/) より無償でダウンロードができ,そのソースコー
ドはオープンソースとして提供されている.ARToolkit はカメラ画像からマーカを判別し,マー
カを基準とした座標系にモデルを表示(オーバレイ) させることができるライブラリである.
ARToolkit は判別したマーカの座標系からカメラ座標系への変換行列を算出できるので,使用者
はマーカ座標系での物体表示位置の調整や物体の操作などを比較的簡単に行うことができる[4].

3.3 NyARToolkit for Java を使用したアプリケーション
 ARToolkit のJava 移植版であるNyARToolkit for Java を使用してリバーシゲームを作成し
た.3D 描画ライブラリにはOpenGL を使用した.ビデオソース読み込みにはJMF(JavaMedi-
aFramework)*2を使用した.
NyARToolkit にはマウスクリックイベントを取得してマーカ座標系におけるクリック位置を取
得するメソッド(関数)がないので,ARToolkit での例を参考に作成した.

$サイバーエージェント 公式エンジニアブログ

$サイバーエージェント 公式エンジニアブログ

Fig.3 AR リバーシ


3.4 FLARToolkit を用いたAR アプリケーション
 ARToolkit のFlash 移植版であるFLARToolkit を使用して,同じくFlash で動作するAmeba
Pigg のアプリケーションを作成した.キャラクターの移動と移動に伴うアニメーションを実装し
た.Pigg はクウォータビューでの擬似的3 次元の世界なので,キャラクター画像を平面オブジェ
クトに対して表裏に張り合わせたオブジェクトを使用した.さらに左右の別をつけ,移動方向に
よって向きが変わるよう実装した.

$サイバーエージェント 公式エンジニアブログ

Fig.4 AR Pigg


$サイバーエージェント 公式エンジニアブログ

Fig.5 AR Pigg : 移動の様子


$サイバーエージェント 公式エンジニアブログ

Fig.6 AR Pigg : マーカを回転させた時の様子



4 まとめ
 Java で作成したアプリケーションではOpenGL をJava から使用するためのJOGL にはUtil
系のライブラリがC/C++ 用のutil ほど充実していなかったので,マーカ座標系でクリック位置
を取得するための行列変換に苦労した.また,ビデオソースの読み込みのための関連クラスロー
ド,初期化に時間がかかるようでアプリケーション立ち上げまでの時間が長くかかった.
 一方,Flash での実装では,Papervision3D のUtil が充実していることもあり,比較的容易に
マーカ座標系でのクリック位置の取得ができた.ビデオソースの読み込みまでの時間もJava での
実装に比べ短い時間でのアプリケーション立ち上げができた.
 Flash でのAR アプリケーション開発は比較的容易に可能であり,FlashPlayer があれば特にプ
ラグインなどの導入の必要もないため,Flash でのAR アプリケーション開発は有望であると考え
られる.


参考文献
*1 http://www.robots.ox.ac.uk/~gk/youtube.html
*2 http://java.sun.com/javase/technologies/desktop/media/jmf/

[1] 日経コミュニケーション編,"AR のすべて,"2009, 日経BP.
[2] 加藤博一,"拡張現実感システム構築ツールARToolKit の開発,"Technical report of IEICE.
PRMU,101(652),pp.79-86,2002.
[3] Georg Klein,David Murray,"Parallel Tracking and Mapping for Small AR
Workspaces,"ISMAR,2007.
[4] 橋本直,"3D キャラクターが現実世界に誕生! ARToolKit 拡張現実感プログラミング入
門,"2008, アスキー・メディアワークス.
[5] 工学ナビ- 「攻殻機動隊」「電脳コイル」の世界を実現! - ARToolKit を使った拡張現実感プ
ログラミング,"http://kougaku-navi.net/ARToolKit.html".