図1は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム8は、対象物を撮影する撮像装置12、撮影した画像に基づき情報処理を行う情報処理装置10、情報処理の結果として得られた画像を表示する平板型ディスプレイ16およびHMD18、ユーザが操作する入力装置14を含む。
情報処理装置10と、撮像装置12、入力装置14、平板型ディスプレイ16、HMD18とは、有線ケーブルで接続されても、Bluetooth(登録商標)など既知の無線通信技術により接続されてもよい。また情報処理装置10が実施する情報処理によっては、平板型ディスプレイ16はなくてもよい。またこれらの装置の外観形状は図示するものに限らない。さらにこれらのうち2つ以上の装置を一体的に備えた装置としてもよい。例えば情報処理装置10、入力装置14、平板型ディスプレイ16を、それらを備えた携帯端末などで実現してもよい。
撮像装置12は、ユーザなどの対象物を所定のフレームレートで撮影するカメラと、その出力信号にデモザイク処理など一般的な処理を施すことにより撮影画像の出力データを生成し、情報処理装置10に送出する機構とを有する。カメラはCCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサなど、一般的なデジタルカメラ、デジタルビデオカメラで利用されている可視光センサを備える。撮像装置12が備えるカメラは1つのみでもよいし、図示するように2つのカメラを既知の間隔で左右に配置したいわゆるステレオカメラでもよい。
あるいは単眼のカメラと、赤外線などの参照光を対象物に照射しその反射光を測定する装置との組み合わせで撮像装置12を構成してもよい。ステレオカメラや反射光の測定機構を導入した場合、対象物の位置を3次元の実空間に対し求めることができ、情報処理装置10による情報処理や表示装置による画像表示をより多様化させることができる。ステレオカメラが左右の視点から撮影したステレオ画像を用いて、三角測量の原理により被写体のカメラからの距離を特定する手法、参照光の反射を測定することによりTOF(Time of Flight)やパターン照射の方式で被写体のカメラからの距離を特定する手法はいずれも広く知られている。
以後では主に、撮像装置12がステレオ画像を撮影する態様について説明するが、上記のとおり本実施の形態をそれに限る主旨ではなく、撮像装置12には少なくとも一つのカメラが含まれていればよい。情報処理装置10は、撮像装置12から送信されたデータを用いて必要な情報処理を行い、画像や音声などの出力データを生成する。ここで情報処理装置10が行う処理の内容は特に限定されず、ユーザが求める機能、アプリケーション、電子コンテンツなどによって適宜決定してよい。
情報処理装置10は例えば、撮影画像に対し一般的な顔検出や追跡処理を施すことにより、対象物であるユーザの動作を反映させたキャラクタが登場するゲームを進捗させたり、ユーザの動きをコマンド入力に変換して情報処理を行ったりする。このとき入力装置14に設けたマーカーを利用して入力装置14の動きを取得してもよい。またHMD18の外面に設けた複数のマーカーを追跡することにより、HMD18を装着したユーザの頭部の位置や姿勢を特定し、それに対応して動く視点から見た仮想世界をHMD18に表示させてもよい。情報処理装置10が生成した出力データは、少なくともHMD18に送信される。
HMD18は、ユーザが頭に装着することによりその眼前に位置する有機ELパネルなどの表示パネルに画像を表示する表示装置である。例えば左右の視点から見た視差画像を生成し、表示画面を2分割してなる左右の領域にそれぞれ表示させることにより、画像を立体視させてもよい。ただし本実施の形態をこれに限る主旨ではなく、表示画面全体に1つの画像を表示させてもよい。HMD18はさらに、ユーザの耳に対応する位置に音声を出力するスピーカーやイヤホンを内蔵していてもよい。
平板型ディスプレイ16は、2次元の画像を出力するディスプレイおよび音声を出力するスピーカーを有するテレビでよく、例えば液晶テレビ、有機ELテレビ、プラズマテレビ、PCディスプレイ等である。あるいはタブレット端末や携帯端末のディスプレイおよびスピーカーであってもよい。入力装置14は、ユーザが操作することにより、処理の開始、終了、機能の選択、各種コマンド入力などの要求を受け付け、情報処理装置10に電気信号として供給する。
入力装置14は、ゲームコントローラ、キーボード、マウス、ジョイスティック、平板型ディスプレイ16の表示画面上に設けたタッチパッドなど、一般的な入力装置のいずれか、またはそれらの組み合わせによって実現してよい。入力装置14はさらに、所定の色で発光する素子またはその集合からなる発光マーカーを備えていてもよい。この場合、情報処理装置10が撮影画像を用いてマーカーの動きを追跡することにより、入力装置14自体の動きをユーザ操作とすることができる。なお入力装置14を、発光マーカーとそれを把持する機構のみで構成してもよい。
図2はHMD18の外観形状の例を示している。この例においてHMD18は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。装着バンド106は各ユーザの頭囲に合わせて長さの調節が可能な素材または構造とする。例えばゴムなどの弾性体としてもよいし、バックルや歯車などを利用してもよい。
出力機構部102は、HMD18をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。そして筐体108の外面には、発光マーカー110a、110b、110c、110d、などを設ける。発光マーカーの数や配置は特に限定されないが、本実施の形態では出力機構部102の筐体前面の4隅に設ける。
さらに、装着バンド106後方の両側面にも発光マーカー110e、110fを設ける。このように発光マーカーを配置することにより、撮像装置12に対しユーザが横を向いたり後ろを向いたりしても、撮影画像における発光マーカーの像の数や位置関係に基づきそれらの状況を特定できる。なお発光マーカー110c、110dは出力機構部102の下側、発光マーカー110e、110fは装着バンド106の外側にあり、図2の視点からは本来は見えないため、外周を点線で表している。
図3は情報処理装置10の内部回路構成を示している。情報処理装置10は、CPU(Central Processing Unit)22、GPU(Graphics Processing Unit)24、メインメモリ26を含む。これらの各部は、バス30を介して相互に接続されている。バス30にはさらに入出力インターフェース28が接続されている。入出力インターフェース28には、USBやIEEE1394などの周辺機器インターフェースや、有線又は無線LANのネットワークインターフェースからなる通信部32、ハードディスクドライブや不揮発性メモリなどの記憶部34、平板型ディスプレイ16やHMD18へデータを出力する出力部36、撮像装置12、入力装置14、およびHMD18からデータを入力する入力部38、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部40が接続される。
CPU22は、記憶部34に記憶されているオペレーティングシステムを実行することにより情報処理装置10の全体を制御する。CPU22はまた、リムーバブル記録媒体から読み出されてメインメモリ26にロードされた、あるいは通信部32を介してダウンロードされた各種プログラムを実行する。GPU24は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU22からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部36に出力する。メインメモリ26はRAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
図4はHMD18の内部回路構成を示している。HMD18は、CPU50、メインメモリ52、表示部54、音声出力部56を含む。これらの各部はバス58を介して相互に接続されている。バス58にはさらに入出力インターフェース60が接続されている。入出力インターフェース60には、有線又は無線LANのネットワークインターフェースからなる通信部62、加速度センサ64、発光部66が接続される。
CPU50は、バス58を介してHMD18の各部から取得した情報を処理し、出力データを表示部54や音声出力部56に供給する。メインメモリ52はCPU50における処理に必要なプログラムやデータを格納する。ただし実行するアプリケーションや装置の設計によっては、情報処理装置10がほぼ全ての処理を行い、HMD18では情報処理装置10から送信されたデータを出力するのみで十分な場合がある。この場合、CPU50やメインメモリ52は、より簡易なデバイスで置き換えることができる。
表示部54は、液晶パネルや有機ELパネルなどの表示パネルで構成され、HMD18を装着したユーザの眼前に画像を表示する。上述したように左右の目に対応する領域に一対の視差画像を表示することにより立体視を実現してもよい。表示部54はさらに、HMD18装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する一対のレンズを含んでもよい。
音声出力部56は、HMD18の装着時にユーザの耳に対応する位置に設けたスピーカーやイヤホンで構成され、ユーザに音声を聞かせる。出力される音声のチャンネル数は特に限定されず、モノラル、ステレオ、サラウンドのいずれでもよい。通信部62は、情報処理装置10や平板型ディスプレイ16との間でデータを送受するためのインターフェースであり、例えばBluetooth(登録商標)などの既知の無線通信技術を用いて実現できる。
加速度センサ64は、所定軸方向の重力加速度を計測することによりHMD18の傾きを検出する。HMD18にはさらに、ジャイロセンサなどその他の各種センサを設けてよい。センサによる測定値は通信部62を介して情報処理装置10に送信される。発光部66は、所定の色で発光する素子またはその集合であり、図2で示したようにHMD18の外面の複数箇所に設ける。これをマーカーとして追跡することによりHMD18の位置を取得するほか、撮影画像におけるその像の数や位置関係からHMD18の姿勢を取得する。
情報処理装置10は、加速度センサ64および発光部66といった複数の手段により得られた情報を統合することにより、より高い精度でユーザの頭の位置や姿勢を取得することができる。一方、本実施の形態では、場合によっては加速度センサ64を省略することもできる。
図5は情報処理装置10の機能ブロックの構成を示している。図5に示す各機能ブロックは、ハードウェア的には、図3に示したCPU、GPU、各種メモリ、データバスなどの構成で実現でき、ソフトウェア的には、記録媒体などからメモリにロードした、データ入力機能、データ保持機能、画像処理機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
情報処理装置10は、入力装置14およびHMD18からの入力情報を取得する入力情報取得部72、撮像装置12から撮影画像のデータを取得する撮影画像取得部74、ゲームなどコンテンツに応じた情報処理を行う情報処理部76、出力すべきデータを生成する出力データ生成部78、情報処理や画像の生成に必要なデータを格納したコンテンツデータ記憶部84を含む。情報処理装置10はさらに、撮影画像などに基づきユーザの位置や姿勢の情報を取得する位置・姿勢情報取得部80、実空間におけるユーザの状況に係る情報をユーザガイドとして生成するユーザガイド生成部82、ユーザガイドの提示規則や出力に必要なデータを格納したガイド用データ記憶部85、および、出力すべきデータをHMD18に送信する出力データ送信部86を含む。
入力情報取得部72は、ユーザ操作の内容を入力装置14から取得する。ここでユーザ操作とは、実行するアプリケーションやコンテンツの選択、処理の開始/終了、コマンド入力など、一般的な情報処理装置でなされるもののほか、後述するユーザガイドの表示/非表示、ユーザガイドとして表示する画像の向きの切り替えなど、ユーザガイドに対する操作も含まれる。入力情報取得部72は入力装置14から取得した情報を、その内容に応じて撮影画像取得部74、情報処理部76、またはユーザガイド生成部82に供給する。入力情報取得部72はさらに、HMD18の加速度センサ64から計測値を所定のレートで受信し、位置・姿勢情報取得部80に供給する。
撮影画像取得部74は、ステレオ画像など、撮像装置12が動画撮影して得られる撮影画像のデータを所定のレートで取得する。撮影画像取得部74はさらに、入力情報取得部72が取得したユーザからの処理開始/終了要求に従い、撮像装置12における撮影の開始/終了を制御したり、情報処理部76における処理の結果に応じて、撮像装置12から取得するデータの種類を制御したりしてもよい。
位置・姿勢情報取得部80は、撮影画像から所定の対象物の像を検出することにより、ユーザの位置および姿勢の情報を所定のレートで取得する。例えばHMD18や入力装置14に設けた発光マーカーの像に基づきユーザの頭部や手の実空間での位置を取得する。あるいはユーザの体の一部を、輪郭線を利用して追跡したり、顔や特定の模様を有する対象物をパターンマッチングにより検出したりする画像解析技術を適宜組み合わせてもよい。また撮像装置12の構成によっては上述のとおり、赤外線の反射を計測することによりユーザの距離を特定してもよい。位置・姿勢情報取得部80はさらに、HMD18の加速度センサによる計測結果を統合し、ユーザの頭部の姿勢をより詳細に特定してもよい。さらに後述するように、提示するユーザガイドの内容によっては、位置・姿勢情報取得部80はユーザ以外の被写体の位置も検出してよい。
情報処理部76は、ユーザが指定したゲームなどの電子コンテンツを処理する。この処理には、位置・姿勢情報取得部80が取得した、ユーザの位置や姿勢の情報の利用が含まれる。なお上述のように、入力装置14を介したユーザ操作やユーザの動きに応じて、情報処理部76が行う後段の情報処理の内容は特に限定されない。
出力データ生成部78は、情報処理部76からの要求に従い、情報処理の結果として出力すべき画像や音声のデータを生成する。例えばユーザの頭部の位置や姿勢に対応する視点から見た仮想世界を左右の視差画像として生成する。この視差画像をHMD18において左右の目の前に表示させたり、仮想世界での音声を出力したりすれば、ユーザはあたかも仮想世界に入り込んだような感覚を得られる。情報処理部76における情報処理や出力データ生成部78におけるデータ生成処理に必要な、プログラムや画像・音声のデータは、コンテンツデータ記憶部84に格納しておく。
ユーザガイド生成部82は、位置・姿勢情報取得部80が取得した、ユーザやその他の被写体の位置や姿勢の情報に基づき、実世界における周囲の状況を確認させたり、その後とるべき行動についての示唆を与えたりするためのユーザガイド提示に係る処理を行う。例えば撮像装置12との相対位置、ユーザの位置の好適な範囲(以後、「プレイエリア」と呼ぶ)、プレイエリアの中央などに戻るための移動方向、といった情報を、図解するなど理解しやすい形式で提示されるようにする。
このような情報を表したユーザガイドを、実行中のゲーム画面などに重畳表示させることにより、ゲームの途中などであってもHMDを外すことなく実世界における状況を把握できるようにする。ユーザガイド生成部82は、ユーザによるユーザガイド表示操作に応じて、随時ユーザガイドが表示されるようにする。あるいは危険性を警告するなど状況によっては、ユーザ操作と関わりなくユーザガイドを表示させるようにしてもよい。
撮像装置12のカメラの画角や、それに対するプレイエリアの設定、ユーザガイドを出力する条件や提示する内容などの設定情報、ユーザガイドの生成に必要な画像データなどは、ガイド用データ記憶部85に格納しておき必要に応じて読み出す。カメラの画角以外の情報は、情報処理部76が実施する情報処理の内容などに対応づけてそれぞれ設定してもよい。ユーザガイド生成部82は、画像表示以外に音声によってユーザガイドを提示させてもよい。この場合、状況に応じて出力すべき音声データについてもガイド用データ記憶部85に格納しておく。ユーザガイドの具体例については後に述べる。
ユーザガイド生成部82は、生成したユーザガイドのデータを出力データ生成部78に供給する。ユーザガイドには、ユーザの位置等、状況の変化が常に反映されるようにする。したがってユーザガイド生成部82は、ユーザガイドを表示すべき条件が満たされている期間、所定のレートでデータを生成し供給し続ける。出力データ生成部78は、供給されたユーザガイドの画像や音声を、情報処理部76の情報処理の結果として生成した画像や音声に重畳させる。出力データ送信部86は、出力データ生成部78が生成した出力データを順次取得し、必要に応じて成形したうえ、HMD18に送信する。
図6は、本実施の形態において撮影画像から取得できる情報を説明するための図である。同図においてユーザ120は、入力装置14を把持しHMD18を装着している。入力装置14は、操作に適した持ち方で把持したときに撮像装置12に正対する位置に発光マーカー122を備える。HMD18の発光マーカーは図2で示したとおりである。撮像装置12をステレオカメラとした場合、ステレオ画像における像の視差に基づき、撮像装置12の撮像面から各発光マーカーまでの距離Zが求められる。また、どちらかの撮影画像の画像平面(XY平面)における発光マーカーの像の位置は、撮像装置12からの見かけ上の位置を表している。
これらの情報を統合する、具体的にはXY平面における位置を撮像装置12からの距離Zを用いて逆射影することにより、実世界の3次元空間における各発光マーカーの位置が求められる。さらにHMD18の発光マーカーの像の数や位置関係からHMD18の実空間における姿勢(ベクトルva)が、入力装置14の発光マーカー122の像の形状から入力装置14の実空間における姿勢(ベクトルvb)が求められる。
情報処理装置10の情報処理部76は、これらの装置の実空間における位置および姿勢に基づき、ユーザ120の顔の向きに応じて視野が変化する仮想世界や、入力装置14の動きに応じて画像内のオブジェクトが動く様などを表現することができる。なおマーカーの見かけ上の大きさによって撮像装置12からの距離を推定する場合は、撮像装置12はステレオカメラでなくてよい。参照光を利用した距離測定技術を導入する場合も同様である。また必ずしもHMD18と入力装置14の双方を追跡しなくてもよい。
このような系においてユーザガイド生成部82は、HMD18の位置および姿勢をユーザの位置および頭部の姿勢として認識し、ユーザの立場から把握できるように周囲の状況を図示する。図7は、ユーザガイドとして俯瞰図を表示する場合の画像を例示している。同図(a)、(b)のユーザガイドはいずれも、撮像装置とユーザを含む実空間を俯瞰した状態を略図で表しており、(a)は撮像装置の位置を基準とした画像、(b)はユーザの向きを基準とした画像である。両図において、撮像装置を表す矩形130、ユーザを表す丸印132が、実際の位置関係や向きを反映させるように表される。
ユーザを表す丸印132には、ユーザが実際に向いている方向を示す棒線を付加している。両画像にはさらに、カメラの画角等によって定まる水平方向のプレイエリアを表す領域134、およびユーザが移動すべき方向を表す矢印136も示される。プレイエリアは基本的に、水平方向や垂直方向においてカメラの画角と一致させるか、それより狭く情報処理に好適な位置の範囲を設定する。またカメラからの奥行き方向においては、距離の取得精度を十分に保てる範囲、あるいはそれより狭く情報処理に好適な位置の範囲を設定する。プレイエリアの形状や大きさは、実施するゲームなどの情報処理の内容や部屋の広さなどによって切り替えたりユーザが選択したりできるようにしてもよい。
(a)の画像は、撮像装置を表す矩形130を常に上側中央に据え置くような表現をしている。ユーザはこの画像により、自分がプレイエリアの左端で撮像装置12に対し比較的後方にいることを確認できる。そしてこれ以上、左や後方に移動すれば、プレイエリアから逸脱してしまうことや、プレイエリアの中央に戻るための移動方向を認識できる。このようなユーザガイドを表示させた状態でユーザが実際に動くことにより、ユーザを表す丸印132も連動するように移動させる。このようにユーザの動きを反映させた俯瞰図を表すことにより、撮像装置やプレイエリアとユーザとの相対位置が明確になるほか、感覚的で曖昧さを含む歩幅や方向などが視覚的かつ客観的に表現される。これにより、情報処理装置10が認識している「場」と、ユーザ自身の動きの感覚とを合致させることができる。
(a)のような表現の場合、ユーザが撮像装置12に正対していない状態では、ユーザ自身の前後左右と画像の上下左右が一致しない。そのため矢印136の方向に動こうと思っても、そのように動けないことが考えられる。これに対し(b)の画像は、ユーザの向いている方向が常に画像の垂直上向きになるような表現をしている。この場合、ユーザの向きが変化すると、矩形130や領域134を含む場自体が相対的に逆方向に回転することになる。このようにすると、ユーザ自身の前後左右と画像の上下左右が常に一致するため、矢印136の方向が自分の方向感覚と一致し、正確にその方向に移動しやすくなる。
なお図示した画像において表される撮像装置などの図形はこれに限定されるものではない。また設定するプレイエリアの形状、矢印等によって誘導するか否か、誘導する場合はその方向、といった設定情報は、情報処理部76による情報処理の内容や状況によって様々であってよい。さらに誘導の内容によっては、矢印はU字などの曲線でもよい。矢印の長さによって移動すべき距離をあらわしてもよい。俯瞰図の向きの基準を撮像装置とするかユーザの向きとするかは、情報処理の内容によって切り替えてもよいし、ユーザが入力装置14などを介して切り替えてもよい。以後、例示するユーザガイドについても同様である。
図8は、ユーザガイドの画像を表示させた表示画面を例示している。表示画面200は、ゲーム画面などコンテンツの画像に、図7で例示したようなユーザガイド202を重畳表示した構成を有する。ユーザガイド生成部82は、ユーザがユーザガイドを表示させる操作を行った時点でユーザガイド202を表示させ、表示を終了させる操作を行った時点でユーザガイド202を非表示とする。あるいは状況によってはユーザ操作と関わりなく表示させる。
いずれにしろ元のコンテンツの画像にユーザガイドを重畳表示することで、視線を大きく動かすことなく、示されている情報を確認することができる。一方で、コンテンツの画像が奥行き感を伴う仮想世界であった場合は特に、奥行き感のない部品画像が目前に出現することにより、ユーザが驚いたり不快な気持ちになったりすることが考えられる。
そこで図示するようにユーザガイド202の周縁を、ブラー処理やαブレンディングなどによってぼかすことにより、前面にありながらも背後に表現されている仮想世界との親和性を高める。ユーザガイド202全体を半透明としてもよい。さらに、緊急性を伴う情報表示でない限り、ユーザガイド202は注視点を避けた位置に表示することが望ましい。例えばユーザの視線に合わせて視野を変化させる表示形態では、必然的に視点が画面中央に固定されるため、画面中央から所定距離以上、離れた位置に表示する。
また人は目線を上げるより下げる方が楽に行えるため、ユーザガイド202を画面の下半分の領域(上下方向の中心線Cより下の領域)に表示することにより、注視点をコンテンツの画像から無理なく移動させていくことができる。あるいは注視点をコンテンツ画像に据え置いたまま、ユーザガイド202を目端で確認することで、ゲーム操作等をそのまま続けることも可能である。これらの工夫により、表示させたユーザガイドに目の焦点が即座に合わなかったり、細かい眼球の動きにより酔ってしまったりするのも防止できる。
図9は、ユーザガイドとして側面図を表示する場合の画像を例示している。この例では、撮像装置とユーザを含む実空間をユーザの左側面から見た状態の略図を表している。すなわち撮像装置を表す矩形140、およびユーザを表すオブジェクト142が、実際の距離や向きを反映させるように表される。当該画像ではさらに、カメラの画角等によって定まる、垂直方向のプレイエリアを表す領域144、およびユーザがとるべき動きの方向を表す矢印146も示される。
このような表示によっても、図7を参照して説明したような状況の把握が可能になる。例えばユーザは、撮像装置に近づきすぎて頭部が画角から出そうであったり、離れすぎて処理精度が保てなかったりすることを把握できる。さらに情報処理の内容によって姿勢が規定されている場合に、そのほかの姿勢をとっているユーザに正しい姿勢を促せる。例えば着座していることが前提のゲームにおいて、ユーザが急に立ち上がった場合に、矢印146を表示することで着座を促せる。
この例は図7で示した画像と比較し、ユーザの姿をより詳細なオブジェクトとして表している。これによりユーザの実際の姿勢を詳細に反映させることができるが、表示すべき内容によっては図7で例示したような簡素な図形としてもよい。またそのようなオブジェクトや図形を変化させるアニメーションにより、正しい姿勢をとるように促してもよい。例えば、図形が拡大するアニメーションにより立ち上がることを促したり、縮小するアニメーションにより着座することを促したりしてもよい。
図10は、ユーザガイドとして俯瞰図を表示する場合の別の画像例を示している。この例は図7の画像と同様、撮像装置を表す矩形150とユーザを表す丸印152が、実際の位置関係や向きを反映させるように表されている。一方、同図では、プレイエリアの代わりにカメラの画角に係る情報を線154により表している。具体的には、カメラの画角を4等分する方位を表す放射状の直線と、撮像装置からの距離を所定間隔ごとに表す同心円弧を表している。
カメラの視野に入る領域を全てプレイエリアとする場合は、線154により、およそプレイエリアを示していることにもなる。例えばゲームなどの情報処理を実行する前にHMD18を装着した状態でこのようなユーザガイドを表示させ、ユーザがそれを見ながら実際に動いてみることで、カメラの視野に対する自分の移動量や方向と、歩幅や方向認識などの感覚との対応を理解することができる。情報処理の前に限らず、HMDに表示させた仮想世界にこのようなユーザガイドを重畳表示することで、仮想世界の景色と、カメラの視野における自分の位置とを対応づけ、それを念頭に動作することができる。
なお図示する例は、撮像装置を上側に据え置いた俯瞰図であったが、同様の構成で、図7の(b)のようにユーザの向きを垂直上向きとした俯瞰図としてもよい。また図9のような側面図において、垂直方向の画角を等分する線と撮像装置からの距離を表す線を示してもよい。さらに、水平方向および垂直方向で画角を等分する面や撮像装置からの等距離面からなる3次元の構造物を定義し、それを所望の視点から見た状態を描画してもよい。そのような構造物をユーザ側から見た状態を、HMD18に表示されている仮想世界の画像に重畳して表示することにより、画角と仮想世界との対応が一見してわかるようにしてもよい。
図11は、ユーザガイドとして俯瞰図を表示する場合の別の画像例を示している。この例では、ユーザの向いている方向が常に垂直方向上向きになる表現としている。したがってユーザを表す丸印162が画像下端の中央に、撮像装置を表す矩形160が、ユーザとの相対位置を反映した位置に、それぞれ表されている。さらに同図では、図10のカメラの画角に係る情報の代わりに、ユーザの視野に係る情報を線164により表している。
具体的には、ユーザの有効視野角を4等分する方位を表す放射状の直線と、ユーザからの距離を所定間隔ごとに表す同心円弧を表している。ここで有効視野角は、脳で物体を正確に認識できる角度を表す一般的な数値である。このようなユーザガイドにより、HMDによって実世界が見えていなくても、本来の視野には何があるのか、撮像装置が当該視野のどの位置にあるのか、といったことを容易に理解できる。これにより、どの方向にどの程度動けば撮像装置に正対するか、といったことを感覚的に判断できる。なお図示する例は、ユーザの向きを基準とした俯瞰図であったが、図10と同様に撮像装置を上側に据え置いた俯瞰図としてもよい。また図10、11で示した画像に、ユーザを誘導するための矢印をさらに表示させてもよい。
図12は、ユーザガイドとしてポイントクラウドを表示する場合の画像を例示している。図7、9、10、11に示した例は、実世界を俯瞰したり側面から見たりした平面的な図であったが、実世界を斜めから見た状態を示すことにより、3次元空間として捉えやすいようにしてもよい。図12はその一例であり、撮像装置を表す図形170とともに、被写体を表すポイントクラウド172を、実世界に対応する3次元空間に表し、それを画像として描画している。ここで表されるポイントクラウド172は、ユーザを含む被写体のデプスマップを3次元空間に逆射影して得られる、被写体の表面を表す点の集合である。
デプスマップは、上述のようにステレオ画像の視差に基づき奥行き方向の距離を画素ごとに取得し、その値を画素値として表した画像であり、位置・姿勢情報取得部80が生成する。ユーザガイド生成部82は、当該デプスマップの各画素を、画素値が表す距離に基づき仮想の3次元空間にプロットしていくことにより、ポイントクラウド172を構成する点をグローバル座標系に配置する。当該3次元空間には撮像装置のオブジェクトや床面を表す平面なども配置する。そしてそれらを、所定のスクリーン座標系に投影することにより、図示するような画像を生成できる。
ユーザやその他の被写体の位置や姿勢の変化に応じて、デプスマップが変化し、ひいてはポイントクラウド172も変化する。結果としてこれまで述べた例と同様、撮像装置に対する自分の位置や動きを客観的に把握することができる。また、スクリーン面の位置や姿勢を変化させるユーザ操作を受け付け可能とすることにより、ユーザは、自分が理解しやすい角度から相対位置を確認できる。
さらにステレオ画像全体から像を抽出してデプスマップを作成する場合、ユーザ以外の被写体も同時に描画されるため、周囲に障害物があるか、子供やペットなどがプレイエリアに侵入していないか、といったことも確認できる。なお図示する例は、撮像装置を表す図形170とポイントクラウド172のみで構成されていたが、これまでの例と同様、プレイエリアやカメラの画角を表したり、ユーザが移動すべき方向を矢印で示したりしてもよい。
図13は、ユーザガイドとして俯瞰図を表示する場合の別の画像例を示している。この例は図7の画像と同様、撮像装置を表す矩形180、ユーザを表す丸印182、プレイエリアを表す領域184が、実際の位置関係や向きを反映させるように表されている。さらに同図では、プレイエリア内のユーザ以外の物の存在を、それぞれに対応づけられた図形で表している。具体的には、入力装置を表す丸印186、障害物を表すバツ印188が表されている。
入力装置や障害物の位置は、上述のデプスマップ、あるいは背景差分法などにより、ユーザの像以外の像を抽出することにより求められる。そのうち入力装置は、外部に備えた発光マーカーや、入力装置自体の形状などによって他の物と区別できる。またユーザ以外で動いている物については、前のフレームとの動き差分をとることにより抽出できる。このようなユーザガイドにより、ユーザが入力装置を置き忘れたり、情報処理の途中で入力装置が必要になったりしても、HMDを外さずに入力装置の場所まで移動して把持することができる。また周囲に障害物があったり、子供やペットなどがプレイエリアに入ったりしても、それを認識して退かすなどの事前対処により衝突等の危険を避けられる。
同図の例では、入力装置を表す図形と障害物を表す図形を同時に示していたが、当然、状況に応じてどちらか一方を表してよい。特にプレイエリア内で障害物が検出された場合など危険を伴う状況では、その位置を図形で示したユーザガイドを、画面中央などユーザが気づきやすい位置にユーザ操作と関わりなく表示させてもよい。なおユーザ、入力装置、および障害物を表す図形は、一見して区別が可能な形態とすることが望ましい。図示するように形状を大きく異ならせるほか、色を区別したり様々な異なる加工を施したりしてもよい。
また状況に応じて、図形を点滅させたり微小振動させたりするアニメーションで表現してもよい。例えばユーザがプレイエリアから出そうなときや、障害物がプレイエリアに侵入してきたときなどに、そのようなアニメーション表示とすることで、ユーザに注意を喚起できる。なお撮像装置12自体が何らかの外力により落下したり向きが変わったりしたら、撮像装置を表す矩形180を点滅させるなどしてユーザに通知してもよい。撮像装置12のそのような変化は、撮像装置12に内蔵した加速度センサによる計測値を、別途、撮影画像取得部74が取得することで、位置・姿勢情報取得部80またはユーザガイド生成部82が検知すればよい。
次にこれまで述べた構成によって実現できる、情報処理装置10の動作について説明する。図14は、本実施の形態において情報処理装置がユーザの動きに応じた出力データを生成する処理手順を示すフローチャートである。このフローチャートは、ユーザが入力装置14を介して情報処理装置10に処理の開始を要求したときなどに開始される。
まず情報処理装置10の撮影画像取得部74は、撮像装置12に撮影の開始を要求し、それに応じて撮像装置12が撮影し出力した画像のデータの取得を開始する(S10)。一方、ユーザガイド生成部82は、ガイド用データ記憶部85から、撮像装置12のカメラの画角、それに対するプレイエリア、ユーザガイドを表示すべきタイミングやそれに応じて表示すべき内容などの設定情報を読み出す(S12)。このとき、ユーザが選択するなどした、実施すべきコンテンツに対応づけられた設定情報を選択して読み出してもよい。
次に位置・姿勢情報取得部80は、撮影画像に基づき、ユーザの位置や姿勢の情報を取得する(S14)。そして当該情報を用いて情報処理部76が情報処理を行い、出力データ生成部78がその結果としてコンテンツの表示画像を描画する(S16)。一方、ユーザガイド生成部82は、その時点での状況がユーザガイドを表示すべき条件を満たしているか否かを確認する(S18)。ここでユーザガイドを表示すべき条件とは、ユーザガイドを表示させるユーザ操作がなされたときのほか、プレイエリアに障害物が存在するなどの危険があるときや、撮像装置12の向きの異常など情報処理の正常な進捗を妨げる要因を検知したときなどがある。
ユーザガイド生成部82は例えば、そのような状態が発生したときに内部のレジスタ等に保持するフラグを立て、そのような状態が解消したときに当該フラグを下げるなどして、フラグの値に基づき処理を条件分岐させる。ユーザガイドを表示すべき条件を満たしていなければ(S18のN)、出力データ送信部86は、S16で描画されたコンテンツの画像をそのままHMD18に出力する(S20)。ユーザガイドを表示すべき条件を満たしているとき(S18のY)、ユーザガイド生成部82は、位置・姿勢情報取得部80が取得した位置や姿勢の情報に基づきユーザガイドの画像を生成する。
そして当該データを出力データ生成部78に供給することにより、出力データ生成部78がコンテンツの画像にユーザガイドの画像を重畳させる(S20)。そして出力データ送信部86は、ユーザガイドが重畳された画像をHMD18に出力する(S22)。なおS20の処理では同時に、ユーザガイドの音声データもコンテンツの音声データに重畳させてよい。例えば「しゃがんでください」、「右に移動してください」、といった言葉による具体的な表現や指示でもよいし、ユーザがプレイエリアの境界線に近づいたときに、所定の警告音を当該境界線上に定位させて発生させるなど、音像の定位技術を利用してもよい。
ユーザガイドとして出力するデータは、画像と音声を組み合わせてもよいし、どちらか一方でもよい。また設定によっては、撮像装置12が撮影した画像をユーザガイドとしてそのままHMD18に出力するようにしてもよい。これによりユーザは、カメラの視野内に障害物があるか、カメラの設置に異常がないか、といったことを実際の映像から判断できる。この場合、ユーザガイド生成部82は、「危ない物はありませんか?」といった文字情報と、ユーザが確認した旨を入力するためのGUI(Graphical User Interface)を撮影画像に重畳表示し、ユーザに確認入力を促してもよい。
ユーザにより処理の停止要求があるなど処理を終了させる必要が生じない期間、位置情報に基づきコンテンツの画像を描画し、条件に合致している期間はユーザガイドを重畳させてHMD18に出力する処理を、所定のレートで繰り返す(S24のN、S14〜S22)。そして処理を終了させる必要が生じたら、全ての処理を終了させる(S24のY)。
以上述べた本実施の形態によれば、撮影画像における像に基づきユーザの位置情報を取得し、その結果を利用して情報処理を行うシステムにおいて、実世界でのユーザの周囲の状況に係る情報をユーザガイドとして提示する。これにより、ユーザがHMDを装着して外界が見えない状態であっても、実世界での自分のいる位置や移動方向などを認識できるため、カメラの画角や想定されるプレイエリアから外れ、情報処理に不具合が生じたり、画角外にある物に衝突したりする可能性を抑えることができる。またユーザガイドとしてユーザ以外の物の状態も同時に提示することにより、プレイエリア内での衝突なども回避できる。
HMDを外さずに上記のような確認を行えるため、現状認識や危険回避に係るユーザの負担が少ない。さらに必要なときに画面内の好適な位置に重畳表示させることにより、HMDで表現されているコンテンツの画像を見ながらでも確認でき、その世界観を損ないにくい。さらに歩幅や移動方向など感覚に頼らざるを得なかったものが、実世界での撮像装置の位置やプレイエリアの範囲に対応づけて視覚化されるため、適切な動きを習得しやすくなる。また本来の情報処理で用いる位置や姿勢の情報を利用するため、少ない処理負荷で実現できる。
また俯瞰図を表示する場合の向きの基準や、3次元空間を表示する場合の視点をユーザが切り替え可能とすることで、ユーザ自身が理解しやすい表示により自分の移動すべき方向などを直感的に判断できる。さらに矢印や音声などでユーザに動きの指針を与えることにより、年齢や理解力を問わず対応が可能となる。
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
例えば実施の形態では、ユーザの撮像装置に対する位置関係が理解されるような画像をユーザガイドとして提示した。一方、ユーザを撮影する撮像装置以外の手段、例えばHMDに装着されたカメラやモーションセンサなどでユーザの位置を特定する場合などは特に、撮像装置以外の物との位置関係を表してよい。例えばプレイエリアが何らかの規則で設定される場合、プレイエリアにおけるユーザの位置を示すのみでもよい。あるいは実空間に遊具等を設置したり他のユーザがいたりして、それらとの位置関係を情報処理に反映させる場合は、撮像装置の代わりにそれらの物や人の位置をユーザガイドに表してもよい。