図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に供給する。入力情報取得部72はさらに、HMD18の加速度センサ64から計測値を受信し、情報処理部76に供給する。
撮影画像取得部74は、ステレオ画像など、撮像装置12が動画撮影して得られる撮影画像のデータを所定のレートで取得する。撮影画像取得部74はさらに、入力情報取得部72が取得したユーザからの処理開始/終了要求に従い、撮像装置12における撮影の開始/終了を制御したり、情報処理部76における処理の結果に応じて、撮像装置12から取得するデータの種類を制御したりしてもよい。
位置情報取得部80は、撮影画像から所定の対象物の像を検出することにより、ユーザの位置情報を所定のレートで取得する。例えばHMD18や入力装置14に設けた発光マーカーの像に基づきユーザの頭部や手の実空間での位置を取得する。あるいはユーザの体の一部を、輪郭線を利用して追跡したり、顔や特定の模様を有する対象物をパターンマッチングにより認識したりする画像解析技術を組み合わせてもよい。また撮像装置12の構成によっては上述のとおり、赤外線の反射を計測することによりユーザの距離を特定してもよい。
情報処理部76は、ユーザが指定したゲームなどの電子コンテンツを処理する。この処理には、位置情報取得部80が取得した、ユーザの位置情報の利用が含まれる。情報処理部76は必要に応じて、HMD18の加速度センサによる計測結果などを統合することにより、ユーザの姿勢を特定してもよい。なお上述のように、入力装置14を介したユーザ操作やユーザの動きに応じて、情報処理部76が行う後段の情報処理の内容は特に限定されない。
出力データ生成部78は、情報処理部76からの要求に従い、情報処理の結果として出力すべき画像や音声のデータを生成する。例えばユーザの頭部の位置や姿勢に対応する視点から見た仮想世界を左右の視差画像として生成する。この視差画像をHMD18において左右の目の前に表示させたり、仮想世界での音声を出力したりすれば、ユーザはあたかも仮想世界に入り込んだような感覚を得られる。情報処理部76における情報処理や出力データ生成部78におけるデータ生成処理に必要なプログラムや画像・音声のデータはコンテンツデータ記憶部84に格納しておく。
警告状況判定部82は、位置情報取得部80が取得したユーザの位置情報に基づき、警告を与える状況の発生を常時監視し、その発生を判定する。具体的には、実世界の3次元空間に直接的あるいは間接的に設定したプレイエリアに対する内外判定を実施し、ユーザがプレイエリアから出たときに警告が必要であると判定する。本実施の形態では、撮影画像を利用して位置情報を取得するため、ユーザがカメラの画角内にいることを前提として情報処理が進捗する。
ところが図2に示したようなHMDを装着したユーザには、周囲の状況、ひいては自分が画角内にいるかどうかが認識しづらい。正常な情報処理を継続するためには、そのような実世界に係る情報を何らかの手段により与える必要があるが、コンテンツが表現する世界観を損なうことになりかねない。そのための方策として、画角から出そうなときのみユーザに警告を与えることが考えられる。しかしながらこのタイミングが早すぎれば、少しの移動で頻繁に警告が与えられ、実質的に可動範囲を狭めてしまうことになる。一方で、タイミングが遅いと画角から外れることを免れず、位置情報が得られない期間が発生し得る。
そこで本実施の形態では上述のとおり、警告を発生させるタイミングを実世界でプレイエリアとして設定した領域に対する内外判定により判断し、さらにプレイエリアと画角との関係を調整することにより、可動範囲と処理精度のバランスを状況に応じて最適化する。プレイエリアの設定情報はあらかじめ、エリア設定情報記憶部85に格納しておく。具体的な設定内容については後に述べる。警告状況判定部82は、警告が必要と判定したとき、その旨を出力データ生成部78に通知する。
このとき出力データ生成部78は、警告を表す部品画像を表示画像に追加で描画する。警告状況判定部82はまた、ユーザが正常な位置に戻るなどして、警告の必要がなくなったことを判定し、その旨を出力データ生成部78に通知する。これに応じて出力データ生成部78は、警告を表す部品画像を非表示とする。なお警告は画像のみならず、音声を伴っていてもよい。出力データ送信部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の双方を追跡しなくてもよい。
このように発光マーカーの像を利用する場合、直接得られるのは、厳密にはHMD18や入力装置14の発光マーカーの位置である。ただしHMD18はユーザが頭部に装着しているため、ユーザの頭部の位置と捉えることもできる。発光マーカー以外の被写体を拠り所として位置を特定する場合も、厳密にはそれらの被写体の位置が求められ、ユーザの重心位置などはそれらの情報から必要に応じて推定される。
以後の説明で「ユーザの位置」とは、ユーザ自身の位置でもよいし、位置取得の拠り所となる被写体の位置でもよい。また入力装置14がプレイエリア外に出ても、HMD18が出ていなければ警告の必要はないとするなど、被写体の性質や状況に応じて判定基準に係る規則を設けてもよい。
図7は、警告状況判定部82が警告の必要性を判定するときに参照する、プレイエリアの設定例を模式的に示している。同図は実空間を俯瞰した状態を示しており、撮像装置12に正対するようにユーザ120が存在している。撮像装置12のカメラの水平画角θhによって、点線で示した視野の境界面182a、182bが定まる。ステレオカメラの場合、両者の画角の積集合とする。このような視野の垂直方向の境界面を基準として、プレイエリア184の境界面を所定の規則で設定する。警告状況判定部82はユーザがプレイエリア184の外に出たとき、警告の必要が発生したと判定する。
図示する例では、撮像装置12からの距離ZがZ1≦Z<Z3の範囲において、視野の境界面182a、182bより内側にプレイエリア184を設定している。撮像装置12に近いZ1≦Z<Z2の範囲では、カメラの光軸を中心に距離Zに比例するように幅を増加させ、Z2≦Z<Z3の範囲では一定の幅Wを有するように設定している。Z1≦Z<Z2の範囲のプレイエリアの境界を決定づける垂直面186a、186bはすなわち、奥行き方向の位置によらず撮影画像上で左右の端より所定量、内側に結像する位置に対応する。したがって少なくとも垂直面186a、186bより内側をプレイエリアとすることで、画像上で当該所定量分をマージン領域として、ユーザが画角から外れる前の余裕を見たタイミングで警告を与えることができる。
撮像装置12に近くなるほど、視野が狭くなるため可動範囲も狭くなる。そのため撮像装置12に近い範囲では垂直面186a、186bより内側とする条件を最大限活用することで、警告を出さずにすむ範囲を広くとる。一方、撮像装置12から離れた位置では視野が広がるため、画角から外れたか否かを基準とした場合、垂直面186a、186bより内側をプレイエリアとすれば、より広い範囲で警告を出さずにすむ。しかしながら図示する例では、情報処理の適性や周囲の物の存在などを考慮して、それより狭い幅Wでプレイエリアを限定している。
このようにプレイエリア184は、画角からの逸脱可能性を低める以外に、適正な可動範囲を設定する役割も同時に備えることができる。またプレイエリアをカメラからの距離範囲に応じて異なる規則で設定することにより、視野の狭い領域では可動範囲を優先し、視野の広い領域ではコンテンツの事情などその他の要素を優先させる、といった優先順位の変化に適応できる。
図8は、プレイエリアの設定の別の例を模式的に示している。同図は実空間をユーザの左側面から見た状態を示しており、撮像装置12に正対するようにユーザ120が存在している。撮像装置12のカメラの垂直画角θvによって、点線で示した視野の境界面192a、192bが定まる。このような視野の水平方向の境界面を基準として、撮像装置12からの距離ZがZ1≦Z<Z3の範囲にプレイエリアの境界面を設定する。
同図の例では、Z1≦Z<Z3の範囲にわたり、視野の境界面192a、192bをプレイエリア194の境界面と一致させている。すなわち図7で示したプレイエリアと比較し、視野の境界面との間にマージン領域を設定しない。つまり撮影画像上で上下の端より所定量、内側に結像する水平面196a、196bのような余裕分をも設けず、撮影画像の上端から下端に対応する領域をプレイエリアとしている。このようにすると、画角から外れるのと同時に警告が与えられる結果となるため、微小時間であっても位置取得が不能となる可能性が高くなる。一方で、より広い範囲で警告を出さずにすむことになる。
このような設定は、画角が狭いカメラにおいて有効である。画角が狭い場合、図7に示すようにマージン領域を設定すると、少しの動きで警告が頻繁に出てしまうことがあり得る。そのため多少の情報処理の精度悪化を犠牲にしても、広いプレイエリアを確保することにより快適性を優先できる。例えば水平画角は広く、垂直画角は狭い特性を有するカメラを使用する場合、図7および図8で示したように、実空間での方向に応じて視野の境界面に対するプレイエリアの境界面の位置関係を異ならせれば、情報処理精度と快適な操作環境とのバランスを好適にとることができる。
図9は、マージン領域の有無による処理への影響を説明するための図である。同図上段の(a)は視野に対しマージン領域を設けてプレイエリアを設定した場合、下段の(b)は視野とプレイエリアを一致させた場合の、ユーザの動きと各処理のタイムチャートである。すなわち右側に模式的に示すように、撮像装置12に対し白抜きで示したプレイエリアを設定するが、(a)は黒色で示す視野外の領域との間に網掛けで示したマージン領域を設けている。タイムチャートにおける「位置」の段の白、網掛け、黒の矩形はそれぞれ、ユーザがプレイエリア、マージン領域、視野外にいる時間を表す。
比較のため両者の設定において、ユーザが時刻t2で視野外に出るとし、警告を同じ時間だけ表示した結果、ユーザがプレイエリアに戻るとしている。このようなユーザの動きに対し、位置情報取得部80が位置情報を取得できる期間を「位置取得」の段に、警告表示がなされる期間を「警告」の段に、矩形で表している。(a)の場合、視野外へ出る時刻t2より前の時刻t1でプレイエリアから出るため、その時点から時刻t3でプレイエリアへ戻るまでの間、警告が表示される。一方(b)の場合、マージン領域を設定しないため、視野外へ出ている時刻t2から時刻t4までの間に警告が表示される。
図示するように、(a)においては、警告が表示された後も位置情報を取得できるため、当該情報を根拠としてプレイエリア外にいることが保障される。(b)の場合、警告と同時に位置情報も取得できなくなるため、警告を表示している期間においてその妥当性が保障されない。したがって、例えば視野境界においてオクルージョンなどでユーザの像が検出されなかったことを、視野外に出たと誤認し警告を表示させてしまう可能性がある。
また(a)と(b)で警告が表示されてから同じタイミングでプレイエリアに戻っても、(b)では位置情報を取得できない期間が長くなる。図示する例では、(a)においても視野外へ出る期間が発生しているが、マージン領域の幅によっては、ユーザが視野外へ出る前に警告表示に応じて戻る可能性があるため、(b)の場合と比較し位置情報を取得できない期間が発生しにくい。一方で、同じように移動しても(a)の場合はより早い時刻t1で警告が表示されるため、ユーザに対する拘束条件が厳しくなる。これらの特性を踏まえ、警告を出さずにすむ領域を極限まで広げたいか、そのようにせずとも領域に余裕があるか、など、状況に応じた優先順位によって最適なプレイエリアを設定することが望ましい。
なおマージン領域を設けるか否かのみならず、マージン領域の幅やプレイエリアの形状も、想定される状況や実空間での方向に応じて最適化してよい。例えばゲームなどコンテンツの内容や環境によって想定されるユーザの姿勢、具体的には立って遊ぶか座って遊ぶか、机に向かっているかソファに座っているか、といった状況に応じて、同じ画角でもプレイエリアの形状を変化させてよい。
また図7、図8の設定を同時に適用した場合、設定されるプレイエリアはカメラからの距離Zに対し四辺形の断面を有するような形状であったが、本実施の形態をそれに限る主旨ではなく、円筒形など任意の形状でよい。また光軸が水平方向にない場合、カメラからの距離Zは床面と水平でなくなる。このときプレイエリアの形状は、光軸方向の距離で定義してもよいし、実空間での水平方向の距離で定義してもよい。カメラの光軸と実空間の水平面とのなす角度を、撮像装置12に内蔵させた加速度センサなどにより計測すれば、座標変換は容易に実現できる。3次元空間での領域を設定するための具体的なデータ形式については、様々考えられることは当業者には理解されるところである。
一方で、プレイエリアに対応する領域を画像平面で規定することにより、プレイエリアを間接的に設定してもよい。図10は、画像平面におけるプレイエリアの設定手法を説明するための図である。同図は被写空間に対向するカメラの視野、ひいては撮影画像の平面を表しており、上段(a)が単眼カメラ、下段(b)がステレオカメラの場合である。単眼カメラの場合、撮影画像300の平面に対し、所定幅xを有する左右両端をマージン領域とし、それを除く領域302をプレイエリア対応領域として定義する。
この領域302により規定される3次元空間での領域は、奥行き方向の距離Zに比例して水平方向の幅が増加する領域304である。すなわち水平方向に着目した場合、領域302を設定することにより、図8で示した垂直面186a、186bの内側をプレイエリアとして設定したことになる。このように画像平面上でプレイエリア対応領域302を設定した場合、実空間でのプレイエリアの断面は、距離Zに応じたサイズの相似形となるため、実空間に直接設定する場合と比較して設定形状の自由度が少なくなる。
一方、撮影画像上での像とプレイエリア対応領域302との内外判定により直接、警告の必要性を判定できるため、ユーザの位置情報を介するより誤差の生じる余地が少なくなる。図示する例は水平方向にマージン領域を設けた場合であったが、垂直方向にマージン領域を設ける場合も同様である。また上述と同様の理由により、マージン領域を設けるか否か、およびその幅xの調整を、方向によって独立に行ってよい。それらの要素をコンテンツの内容や状況に応じて変化させてもよい。
(b)で示したステレオカメラの場合、ユーザがカメラの視野の左端にいるか右端にいるかにより、先に視野から外れるカメラが異なる。例えばユーザがカメラの視野の右端近傍にいる場合、図示するように、右視点のカメラの画像306bにおける像308bより、左視点のカメラの画像306aにおける像308aの方が右端に近くなる。したがってこのままユーザが右方向に移動した場合、左視点のカメラの視野から先に外れることになる。ユーザがカメラの視野の左端近傍にいる場合は逆に、右視点のカメラの視野から先に外れる。
したがってステレオカメラのどちらにも写るような視野内にプレイエリアを設定する場合、左視点のカメラの撮影画像平面における、右端の所定幅xのマージン領域を除く領域310aと、右視点のカメラの撮影画像平面における、左端の所定幅xのマージン領域を除く領域310bとを、プレイエリア対応領域として同時に設定する。そしてどちらかの画像において、ユーザの像がプレイエリア対応領域から出たことをもって、警告の必要性を判定する。
図11は、警告状況判定部82が、警告が必要であると判定した際に生成される表示画面を例示している。表示画面200は、ゲーム画面などコンテンツの画像に警告を表す警告画像202を追加した構成を有する。警告画像202は図示する例では、「Out of play area」なる文字情報によりプレイエリアの外に出たことを表している。さらに危険を表すマークも含めることで緊急性を表現している。
ただし警告画像202の形態をこれに限る主旨ではなく、色や形状を工夫することで図形やマークのみで表したり、そのような図形やマークと文字情報を組み合わせたりしてもよい。また警告画像202をコンテンツごとに、あるいはその時点での表示の内容に応じて、変化させてもよい。ユーザに気づきを与える性質上、警告画像202はコンテンツの画像に重畳表示することを基本とする。一方で、コンテンツの画像が奥行き感を伴う仮想世界であった場合は特に、奥行き感のない部品画像が突然、目前に出現することにより、ユーザが驚いたり不快な気持ちになったりすることが考えられる。
そこで図示するように警告画像202の周縁を、ブラー処理やαブレンディングなどによってぼかす。警告画像202全体を半透明としてもよい。これにより前面にありながらも背後に表現されている仮想世界との親和性を高められる。また突然視線を遮られた感覚を与えないよう、視点を避けた位置に警告画像202を表示することが望ましい。例えばユーザの視線に合わせて視野を変化させる表示形態では、必然的に視点が画面中央に固定されるため、画面中央から所定距離以上、離れた位置に表示する。
また人は目線を上げるより下げる方が楽に行えるため、表示形態によらず、画面の下半分の領域(上下方向の中心線Cより下の領域)に警告画像202を表示することにより、注視点をコンテンツの画像から無理なく移動させていくことができる。これらのことにより、突然出現した画像に目の焦点が合わず認識するのに時間を要したり、細かい眼球の動きにより酔ってしまったりするのも防止できる。
次にこれまで述べた構成によって実現できる、情報処理装置10の動作について説明する。図12は、本実施の形態において情報処理装置がユーザの動きに応じた出力データを生成する処理手順を示すフローチャートである。このフローチャートは、ユーザが入力装置14を介して情報処理装置10に処理の開始を要求したときなどに開始される。
まず情報処理装置10の撮影画像取得部74は、撮像装置12に撮影の開始を要求し、それに応じて撮像装置12が撮影し出力した撮影画像のデータの取得を開始する(S10)。一方、警告状況判定部82は、エリア設定情報記憶部85からプレイエリアに係る設定情報を読み出す(S12)。このとき、ユーザが選択するなどした実施すべきコンテンツに対応づけられた設定情報を選択してもよい。また撮影画像を解析するなどしてユーザが着座しているか否かや、周囲の状況などを特定し、それらの情報によって設定情報を選択してもよい。
次に情報処理部76は、撮影画像取得部74が取得したリアルタイムの撮影画像をHMD18に出力するように、出力データ生成部78に要求する。撮影画像をHMD18に表示させることにより、周囲に障害物がないかの確認をユーザに促す(S14、S16)。このとき出力データ生成部78は、「危ない物はありませんか?」といった文字情報と、ユーザが確認した旨を入力するためのGUI(Graphical User Interface)を撮影画像に重畳表示する。これによりユーザは事前にカメラの画角を認識できるため、プレイエリアと同等の領域を念頭に置いた動きができる。
プレイエリアを知ることで自分の可動範囲が明確になり、周囲に存在する物が障害物となり得るかの判断も可能になる。ユーザが必要に応じて物を退かせたうえで、確認した旨の入力を行うことを条件に以後の処理を行うようにすれば、カメラの視野外への逸脱監視と同時に、障害物への衝突監視も行っていることになる。ユーザから確認の入力がない間は撮影画像を表示し続ける(S16のN、S14)。
ユーザから確認の入力がなされたら(S16のY)、位置情報取得部80は、撮影画像に基づきユーザの位置情報の取得を開始する(S18)。そして当該情報を用いて情報処理部76が情報処理を行い、出力データ生成部78がその結果としてコンテンツの表示画像を描画する(S20)。一方、警告状況判定部82は、ユーザがプレイエリアを出たか否かを監視する(S22)。ユーザがプレイエリアから出たとする判定は、厳密にはユーザが装着しているHMD18、あるいはユーザが把持する入力装置14に設けたマーカーがプレイエリアから出たときに行う。
ただし当該判定の基準は、ユーザの位置情報取得手段によって様々であってよい。例えばステレオ画像におけるユーザの像自体からデプスマップを作成するなどして位置情報とする場合は、ユーザの重心がプレイエリアから出たときとしてもよい。輪郭線を追跡している場合も同様である。また顔検出処理などのパターンマッチングにより追跡している場合は、プレイエリア内で顔が認識されなくなったときなどでもよい。
ユーザがプレイエリアから出ていなければ(S22のN)、出力データ送信部86は、S20で描画されたコンテンツの画像をそのままHMD18に出力する(S26)。ユーザがプレイエリアから出た場合(S22のY)、警告状況判定部82が出力データ生成部78にその旨を通知することにより、出力データ生成部78がコンテンツの画像に警告画像を重畳させる(S24)。そして出力データ送信部86は、警告画像が重畳された画像をHMD18に出力する(S26)。なおS26の処理では、同時に音声のデータも出力してよい。
ユーザにより処理の停止要求があるなど処理を終了させる必要が生じない期間、位置情報に基づきコンテンツの画像を描画し、必要に応じて警告画像を重畳させてHMD18に出力する処理を、所定のレートで繰り返す(S28のN、S20〜S26)。そして処理を終了させる必要が生じたら、全ての処理を終了させる(S28のY)。
なお同図のフローチャートでは、ユーザがプレイエリア外にいる期間と、警告画像を重畳させている期間が一致している。すなわちユーザがプレイエリア内に戻ったことをきっかけに警告画像が非表示となる。一方、警告画像を非表示とする条件を、表示する条件と独立に設けてもよい。図13は、警告画像の表示/非表示の状態遷移を模式的に示している。まず警告画像が表示されていない状態から表示された状態とするときの判定基準はこれまで述べたように、ユーザがプレイエリアから出たこととする(右方向矢印)。
一方、警告画像が表示されている状態から表示されない状態とするときの判定基準は、プレイエリアに入ったことではなく、別途設定した条件を満たしたときとする(左方向矢印)。例えば、プレイエリアより狭い範囲として警告非表示エリアを設定しておき、当該エリアに入ったときに警告画像を非表示とする。あるいはプレイエリアに入ってから所定時間経過したときとする。このようにすることで、一旦、表示された警告は非表示とされにくくなる。結果として、ユーザがプレイエリアの境界近傍にいるときなどに、僅かな動きでプレイエリアに対する内外判定結果が切り替わり、警告が表示されたり消えたりを繰り消すチャタリングを防止できる。
以上述べた本実施の形態によれば、撮影画像における像に基づきユーザの位置情報を取得し、その結果を利用して情報処理を行うシステムにおいて、実世界の3次元空間にプレイエリアを設定し、ユーザが当該プレイエリアから出たときにその旨の警告を表示などでユーザに提示する。これによりユーザがHMDを装着して外界が見えなかったり、表示されている仮想世界に没頭したりして、いつの間にかカメラの視野から外れ、情報処理に破綻を来すことを防止できる。
ここでプレイエリアは、カメラの視野を基準として設定する。このときプレイエリアを、視野に対しマージン領域を見込んで内側に設定するか、視野と同一とするか、またマージン領域を見込む場合はその幅、といった要素を最適化する。このようにマージン領域を調整することは、警告なしに移動できる範囲を規定していると同時に、ユーザが視野外に出てしまい位置情報が取得できなくなる頻度、ひいては位置情報取得精度を調整していることに他ならない。そのため、多少の位置情報取得精度の悪化を犠牲にしても極力広い範囲の移動を許容するか、範囲を限定的としても位置情報取得精度を維持するか、といった優先順位と合致した設定が可能となる。
このような優先順位は、カメラの水平/垂直画角、情報処理の内容、ユーザやその周囲の状況などに依存して変化するため、それぞれに対し設定を最適化することにより、位置情報の取得精度とユーザの快適性を両立させることができる。またプレイエリアの形状は特に限定されないため、形状やサイズを適切に設定すれば、カメラの視野からの逸脱防止以外に、ゲームなどのコンテンツから想定される移動量の適正値の遵守や、周囲の障害物への衝突回避など役割を同時に果たすことができる。
警告を表示する際は、ゲーム画面など本来の表示画像上に、警告を表す部品画像を重畳表示する。このとき、周縁をぼかしたり半透明にしたりすることで、本来の表示画像との親和性を高め、突然、関連性のない画像が出現することによる違和感を少なくする。また、視点から所定の距離を設けたり画面の下半分の位置に表示させたりすることにより、視線が遮られることによる不快感や酔いの発生が抑制され、負担なく視線を合わせ、状況を認識させることができる。
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。