■後藤弘茂のWeekly海外ニュース■
MicrosoftがXbox 360向けに開発している、新しいユーザーインターフェイス「Project Natal(プロジェクトナタル)」は、コントローラを使わない。ジェスチャーと音声で、ゲームをコントロールする、究極のナチュラルユーザーインターフェイスだ。Natalを実現するハードウェアは、Natalセンサーと呼ばれるセンサー群で、中でも重要なのは深度センサーだ。
Natalの採用する深度センサーは、センサーデバイスから赤外線光のパルスの反射を使うと見られている。反射光によって、カメラ位置から見た物体の形状を検知するだけでなく、光が戻ってくるまでの飛行時間によって、カメラから物体までの位置を計算する。本格的な深度センサーだ。
Microsoftが、深度センサーを採用するのは、それがMicrosoftの目指すナチュラルインターフェイスにとって重要だと見たためだと推定される。深度、つまり、カメラから物体までの距離(z値)を測定できれば、現実空間での絶対座標を特定できる。絶対座標を特定できれば、ジェスチャを始めとした、さまざまな認識処理が容易になるからだ。
しかし、深度の検知は、低コストに解決する手法が確立していない。そして、今回、Microsoftとソニー・コンピュータエンタテインメント(SCE)で、その手法が分かれた。
Project Natal | MicrosoftのNatalのデモ映像とイメージ映像 |
●z値をスフィアのサイズで検出するSCEの手法
SCEも以前からNatalと同じような3Dセンサーの研究を行なってきた。例えば、SCEが2004年のGDCで行なった「PS9」と題したセッションでは、3Dセンサーを使ってNatalと同様の深度検知を行なうインターフェイスのデモを行なっている。
また、SCEはコントローラについて膨大な数の特許を申請しているが、その中にも「US20090122146 METHOD AND APPARATUS FOR TRACKING THREE-DIMENSIONAL MOVEMENTS OF AN OBJECT USING A DEPTH SENSING CAMERA」のように深度カメラに言及しているものもある。あるいは、「US20080261693 DETERMINATION OF CONTROLLER THREE-DIMENSIONAL LOCATION USING IMAGE ANALYSIS AND ULTRASONIC COMMUNICATION」のように超音波を使った測定に関する申請もある。SCEが、あらゆる可能性を検討してきたことが伺える。
こうして見ると、深度の検出が、インターフェイスの改革を目指すゲームコンソールベンダーにとって、技術のカギになっていることがわかる。そして、MicrosoftとSCEはそこで道が分かれた。Microsoftは3Dカメラによる、ハードウェアでのz値の測定を採用。SCEはPlayStation Eyeカメラによる、ソフトウェア処理でのz値の測定を選んだ。
SCEは、z値の検出を画像認識だけで行なっている。PlayStation EyeカメラでキャプチャしたPlayStation Moveモーションコントローラのスフィアから検出している。スフィアは、PlayStation Moveモーションコントローラの先端についている、光るボールだ。PlayStation Moveシステムでは、キャプチャ画面上のスフィアが大きければカメラに近く、小さければ遠いと計算する。
PlayStation Moveモーションコントローラのエッジ検出 |
GDC会場デモでは、この手法でmm単位での検出が可能だとしていたが、単純に考えてもこれは難しい。例えば、640×480ピクセルのカメラで3mの深度を、画面上のスフィアのピクセル数だけで検知する場合。ラフに計算すると、縦解像度を限界値として考えると、精度はcmを切るものの2~3mmといった精度は達成できないように見える。
そのため、SCEはカメラでキャプチャしたスフィアのピクセルを補完して、スフィアのエッジを算出して、より正確な深度を検出しているとGDCでは説明していた。アルゴリズムの詳細は不明だが、ピクセルの濃淡からアンチエイリアシングの逆のような手法でエッジを割り出していると見られる。もし、そうした手法を取るなら、サブピクセル単位でスフィアのサイズを測ることができるだろう。もちろん、計算負荷は高くなるはずだが、効果は高い。
●困難を抱えたMicrosoftのNatalの舞台裏SCEの採った手法では、深度の検知にどうしてもスフィアが必要になる。それに対して、Microsoftの採った深度センサーを使う手法では、一切コントローラが不要になる。そのため、MicrosoftはSF映画「マイノリティ・リポート」に出てきたような、ジェスチャ認識のインターフェイスを実現できる。Microsoftは、昨年のE3で、SF映画ばりのNatalのインターフェイスを大々的にアピール。先進性を強く印象づけた。
ところが、Natalが実際にデベロッパの前に出てきた時には、いくつかの問題を抱えていた。業界関係者によると、CPUの占有率とメモリフットプリントが大きく、レイテンシが長く、アプリケーションによっては精度上の問題が発生する場合があるといった指摘がなされてたという。また、複数ユーザーが同時にコントロールすることが難しいことも欠点とする声もある。
これらの問題のいくつかは、Natalの実装の変更によるものだと考えられる。もともと、Natalでは、認識処理のベースのプロセッシングは、デバイス側に搭載するカスタムプロセッサで行なう仕様だとされていた。ハードウェア処理を行なうため、Xbox 360本体側の負担は最小で済むと報道されていた。だが、昨年夏の段階で、すでに、NatalはXbox 360でソフトウェア処理を行なう仕様になっていた。
その理由は不明だが、コスト面から変更された可能性がある。Natalセンサーでは、3Dセンサー自体が高くつくため、低コストにするためにはデバイスコストをできるだけ切り詰めた方がいいからだ。ゲームコンソールのオプションとして提供できる範囲の価格に見合うコストに納める必要がある。そのため、カスタムプロセッサでの処理を、Xbox 360本体のプロセッサ側で行なうことにしたのかもしれない。
深度自体はハードウェアで検知するため、ピクセルだけからジェスチャを認識するのと較べると、負荷ははるかに軽い。それが3Dセンサーの利点だ。とはいえ、ジェスチャに加えて音声の認識はコンピューティングの負荷が高い。どうしても、処理は重くなる。
昨年(2009年)の夏が終わる頃には、NatalがXbox 360の3つのCPUコアのうち、ほぼ1個分のコアを占有してしまうと話が広まった。そのため、かなり限定された簡単なゲームしか作れないで終わるのではないかと話す業界関係者もいた。同時に、その頃からSCE関係者は、PS3ならコンピューティングパフォーマンスがふんだんにあるため、ナチュラルヒューマンインターフェイスを、もっと低占有率でできると言う声が聞こえてきた。
レイテンシも問題とされた。昨年の段階では、Natalのレイテンシは100ms台だと複数の業界関係者が語っていた。現在のPlayStation Moveのレイテンシの4倍に相当する数字だ。PlayStation Moveのメインメモリフットプリントは2MB(前回の記事では当初この数字が大きく間違えていた)だが、Natalはそれよりずっと大きいという。
●Microsoftの本気度が試されるNatalの立ち上げしかし、状況は変わりつつある。Microsoftは、常にSDKを急ピッチでアップデートしており、問題点の解決に努めていると言われる。実際、昨年末頃には、CPU占有率は当初よりかなり改善されたと、ある業界関係者が語っていた。最終的にどの程度の占有率になるのかわからない。
また、MicrosoftのCPU占有率は、じつはそれほど悪くはない。Xbox 360 CPUのコア1個は、SIMD演算ピークパフォーマンスで比較すればPS3のCell B.E.のSPU(Synergistic Processor Unit) 1個分に相当する。ジェスチャと音声ベースのユーザーインターフェイスを、その程度の処理量で抑えたとしても、かなりの成果だ。
問題は、もともとXbox 360 CPUの設計が、対称型のマルチコアであり、Cell B.E.のように演算性能に特化したヘテロジニアス(Heterogeneous:異種混合)マルチコア設計になっていない点にある。CPU全体での演算パフォーマンスでは、Cell B.E.の方がはるかに高い。この問題は、Microsoftの本体ハードウェアが次世代へと移行すれば、自然に解決するだろう。ただし、そのためには現行世代でのNatalを成功させなければならないというジレンマをMicrosoftは抱えている。
レイテンシについては、別な考え方もある。ゲームとレイテンシは常に戦いの歴史で、典型的な例は3Dゲームになった時だった。特に格闘ゲームなどで、2Dのレスポンスに馴れたユーザーの一部は、3Dのレイテンシに拒否感を示した。Natalも同様で、そのレイテンシが許容できるかどうかは、ゲームの作り方やユーザーの感覚の問題かもしれないと指摘する声もある。もっとも、これについては、実際にどういう評価が下されるのか、まだわからない。最上の手段は、Microsoftが率先して、対応タイトルでこの問題に取り組んだ結果を出すことだろう。
●3社で互換性のない新ユーザーインターフェイスもっと大局的に見ると、NatalとPlayStation Moveの差は、より本質的なものであるとも言える。どちらも、深度の検知を重要技術としているが、実現している操作体系は全く異なるからだ。目指すゴールも、おそらく異なる。「Natalでは、やろうとしていることが全く違う。同列に較べることはできない」とあるMicrosoft関係者は語る。
Microsoftのコンセプトは、E3で紹介された「Milo(マイロ)」というプロジェクトに濃縮されていた。これは、仮想キャラクタの少年Miloと自然言語で対話的にコミュニケーションするデモだ。こうしたデモでMicrosoftが見せてきたのは、既存のゲームの概念を崩す、自然なインタラクティブ性だった。ただし、実際のソフトウェアで、Microsoftが目指しているものを実現できるかどうかは、まだわからない。
コンピュータ科学的に見るなら、より本質的なインターフェイスの改革はMicrosoftのNatalの方だ。何と言ってもコントローラレスの意味は大きい。しかし、ゲーム機のインターフェイスという部分に限って見た場合に、Natalが現状で適しているかどうかは、まだ証明されていない。
その意味では、SCEのPlayStation Moveの方が現実解だ。また、SCEはPlayStation Moveモーションコントローラによる認識に加えて、顔認識やヘッドトラッキングといった技術も組み合わせることができるようにする。より発展的な認識処理もプラスして行く方針だ。これには、従来SCEがカンファレンスなどで紹介してきたライブラリが含まれている。顔認識を使うには、SPUが1個必要になるという。Cell B.E.の場合はコンピューティングパフォーマンスに余裕があるため、付加的な処理を加えて行くことが比較的容易にできる。
PlayStation Moveの顔検出 |
●ユーザーインターフェイスの非互換性が産まれる
技術を離れて、ゲームのマーケティングという観点からすると、SCEのアプローチにもいくつもの課題がある。1つは、デベロッパにとって、任天堂のアプローチとの差別化が難しいという点だ。性能の差はあっても、スティック型のコントロールデバイスという形状は同じ。タイトルのアイデアは似通ったものになって来てしまうとある業界関係者は言う。
その場合、任天堂のWiiは、Wiiリモコンが標準でついて、すでに数千万台のインストールドベースがある。それに対して、SCEはこれからPlayStation Moveを立ち上げるという不利がある。デベロッパにとって、PlayStation Moveが乗りやすいかというと、かなり難しそうだ。
ポイントはサードパーティタイトル。サードパーティがPlayStation Moveに本気のタイトルを持ってくれば、うまく回り始める。しかし、サードパーティが様子見タイトルに止めるなら、暗雲が漂い始めることになる。そして、サードパーティを巻き込むためには、SCEのファーストパーティタイトルでのPlayStation Move対応を充実させる必要がある。
マーケティングの観点から見ると、MicrosoftのNatalは、SCEや任天堂とはアプローチが全く異なる点が有利に働く可能性がある。アイデア次第で差別化がしやすいためで、アイデアで目立とうとするデベロッパにとっては魅力がある。
しかし、マルチプラットフォームタイトルを作ろうとするデベロッパにとっては、こうした差は、逆に問題になる。3社3様のアプローチであるため、互換性が問題になるからだ。例えば、Natalでジェスチャだけを使ってSCEや任天堂のコントローラと同じような操作を実現したとしても、トリガーとなるボタンの問題が残る。SCEと任天堂はどちらもコントローラに物理的なボタンがある。しかし、Microsoftの場合はコントローラレスであるため、コマンドは音声かジェスチャに頼るしかない。
こうしてみると、Wiiによって始まったゲームコンソールのユーザーインターフェイスの改革は広く行き渡り始めるものの、簡単には行かない問題を多数はらんでいる。GPUやCPUの違いと同じように、インターフェイス面でのプラットフォームによる違いが発生しつつある。これは、差を比較的簡単に埋めることができた従来のコントローラとは大きく異なる。