レビュー

芸者は電脳フィギュアの夢を見るかアリスの限界と可能性(2/4 ページ)

世界初の拡張現実フィギュア「ARis」が発売された。おそらく日本でなければ製品化されることはなかったであろう“電脳フィギュア”を通じて、近未来の技術を考えてみる。

なでたりプレゼントをあげたり

 このスティックの裏面は「てのひら」のマーカーがついている。アリスを(紳士的な意味で)なでたいときは「ゆび」スティックのほうなので注意してほしい。間違って「てのひら」側を使うと家族などに見られたときにいろいろと面倒なことになりかねない。もちろん、間違わずに「てのひら」を使う分にはまったく問題ない。

AMP 非対応のコンテンツです。こちらからご覧ください。

てのひらで触ると無条件にこういうことになる……。

 当然、いきなりこういうことをすると、電脳フィギュアとはいえよろしくない関係になる(すぐ忘れるようだが)ため、ここは1つ機嫌を取る方法も説明しておこう。3種あるカードのうち、GIFTと書かれているのがプレゼントカードだ。カードのマーカーが認識されるとカードを上書きするようにプレゼントの内容が表示されるので「ゆび」でカードに触れてプレゼントを選択し、「てのひら」で決定するとアリスにプレゼントを贈ることができる。プレゼントの中には明らかにあげてはいけなそうなものも含まれているが。

advertisement

AMP 非対応のコンテンツです。こちらからご覧ください。

関係を良好にする方法の1つはプレゼントを渡すこと。物によってはこんなことになることも。

 なお、この際カードとアリスの位置関係は動作に影響しない。アリスにプレゼントを手渡そうとして誤ってアリスを「てのひら」で触れてしまうなど、「関係を修復しようとして余計に墓穴を掘る」ような無用なリアリティには注意しよう。カードはそのほかにCLOSETとSTOPがある。CLOSETは着替えを指示するもので、STOPはアリスの動作を一時停止させるためのものだ。

AMP 非対応のコンテンツです。こちらからご覧ください。

クロゼットカードで着替え。生着替えではないので安心してほしい。

CLOSETの衣装の種類はアリスとの関係が良好になっていくと増えていく(画面=左)。私服風の衣装(画面=右)
スク水。衣装はそれぞれ3色ずつ用意されている(4色目があるというウワサも)。
STOPカードの上にボタンが表示される。青は通常状態、赤は停止状態(画面=左)。プレゼントの中にはどこでもドアのようなタイムマシンもある(画面=中央)。巨大アリス用のマーカーを自作してみた。32×32の白黒画像で今回はExcelを使用した。結果は下の動画(画面=右)

AMP 非対応のコンテンツです。こちらからご覧ください。

赤の状態でもキューブを動かせば追従する。ボタンをスティックで押せば時は動き出す。

AMP 非対応のコンテンツです。こちらからご覧ください。

巨大アリス。マーカーをカメラに収めなければならないため、巨大化が進むと足下しか画面には映らなくなる。

意外にハイスペックなPCを要求するアリス

 実際の動作については動画を見ていただいたほうが早いだろう。なるべく正確なフレームレートを伝えるため、キャプチャは別PCで行っている。また、キャプチャ時のフレームレートが分かりやすいよう、左下にアニメーションバーを設置した。評価に使用したPCはPhenom 9500(2.2GHz)、4Gバイトメモリ、Radeon HD 3450、Windows XP Professinal(SP3)という構成だ。

AMP 非対応のコンテンツです。こちらからご覧ください。

4コアでの負荷状況。1番上のバーがトータル、下の4つが各コアのCPU使用率を示している。トータルの中の赤い部分がARisのプロセスによるもの。

 数回のアップデートを経て、デュアルコアでもCPU使用率は50%に抑えられるようになったものの、まだ「重たい」という印象を持つ人は少なくないようだ。これは実際のCPU使用率もさることながら、GPUを有効に活用しているのだろうかという疑問、それに加えてフレームレートが頭打ちになっていること、マーカーをロストするとアリスが消失するため、頻繁に点滅することがあるなど、演出面の問題もあるように思える。

 おそらくマーカー検出~三次元平面算出などの処理部分が大きく、GPUを生かしてない、というよりはむしろ、GPUの負荷がそもそも高くないと推測されるが、「重たい」印象を軽減するために、マーカー検出頻度とアリス描画のフレームレートを分けてしまう、つまりアリスは30fpsで描画されるがマーカーのサンプリングは10fpsにする、といったことはできなかったのだろうか。

 さらに、マーカーをロストした際にアリスを消去するまでの猶予をもっと長くしたり、マーカーの検出位置が瞬間的に移動した場合は過去のマーカー位置情報を採用してアリスの位置変更を遅らせるなどの工夫 (ARToolKitでいうところの“arGetTransMatCont()”に類するもの) をもっと盛り込むべきだろう。

※記事初出時の内容において、arGetTransMatCont()の機能に関するあいまいな記述があるため、現在記事の内容を再度確認しております。追って修正をいたします(11月6日20時)。

ARToolkitのarGetTransMatCont()では、本文の文脈で意図した“正確さを犠牲にして負荷を軽くする工夫”という意味が必ずしも成り立たない、という指摘を読者から頂きました。このため、該当部分を修正、打ち消しております。おわびして訂正いたします(参考:「ITmediaさんの記事の間違い」/A虎@Hatena::Diary)(11月7日1時34)。

 そのほか、デスクトップフィギュアとして常に画面に表示させておきたいというニーズを考慮し、キューブの動きの多寡やユーザーからのちょっかいの頻度によって、マーカースキャンレートを動的に変化させ、1秒以上のインターバルをおいたり、それを不自然に見せないような演出を加える(「ぼーっとしてました」とか「集中していて気づきませんでした」とか)ことでCPU使用率の削減するといった配慮も欲しかった。

 研究室での開発であれば正確さは重要なファクターだが、エンターテインメント向けであれば正確さよりも自然さが重要だ。3Dモデリングにかかる処理自体は現行PCではほとんど問題のないレベルのはずなのだから、「PCが貧弱だからアリスがカクカクしている」ではなく、「PCが貧弱だからアリスがキューブのないところに立っている」のほうが受け入れられやすいのではないだろうか。

Copyright © ITmedia, Inc. All Rights Reserved.