JP2023118379A - 情報処理装置および情報処理方法 - Google Patents
情報処理装置および情報処理方法 Download PDFInfo
- Publication number
- JP2023118379A JP2023118379A JP2022021304A JP2022021304A JP2023118379A JP 2023118379 A JP2023118379 A JP 2023118379A JP 2022021304 A JP2022021304 A JP 2022021304A JP 2022021304 A JP2022021304 A JP 2022021304A JP 2023118379 A JP2023118379 A JP 2023118379A
- Authority
- JP
- Japan
- Prior art keywords
- play area
- user
- mounted display
- head
- boundary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims description 19
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000001514 detection method Methods 0.000 claims description 68
- 238000000034 method Methods 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 18
- 238000012937 correction Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 14
- 210000003128 head Anatomy 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000005484 gravity Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 210000005069 ears Anatomy 0.000 description 2
- 210000000887 face Anatomy 0.000 description 2
- 238000007654 immersion Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/213—Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/25—Output arrangements for video game devices
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/85—Providing additional services to players
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Architecture (AREA)
- Signal Processing (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】ヘッドマウントディスプレイを装着したユーザが移動可能なプレイエリアを、容易かつ適切に設定する。
【解決手段】画像生成装置は、ヘッドマウントディスプレイのステレオカメラによる撮影画像に基づき周囲にある障害物を検出し、ヘッドマウントディスプレイを装着したユーザが移動可能なプレイエリアの境界72を設定する。プレイエリアの内側に新たな障害物を検出したとき、床面上での観測地点Hから、障害物の輪郭80への接線82a、82bを生成し、それらと、輪郭80のうち接点ABの間とで構成される線により、新たなプレイエリアの境界86を設定する。
【選択図】図13
【解決手段】画像生成装置は、ヘッドマウントディスプレイのステレオカメラによる撮影画像に基づき周囲にある障害物を検出し、ヘッドマウントディスプレイを装着したユーザが移動可能なプレイエリアの境界72を設定する。プレイエリアの内側に新たな障害物を検出したとき、床面上での観測地点Hから、障害物の輪郭80への接線82a、82bを生成し、それらと、輪郭80のうち接点ABの間とで構成される線により、新たなプレイエリアの境界86を設定する。
【選択図】図13
Description
本発明は、ヘッドマウントディスプレイに係るデータを処理する情報処理装置および情報処理方法に関する。
ヘッドマウントディスプレイを装着したユーザが対象空間を自由な視点から鑑賞できる画像表示システムが普及している。例えば仮想3次元空間を表示対象とし、ユーザの視線方向に応じた画像がヘッドマウントディスプレイに表示されるようにすることで仮想現実(Virtual Reality:VR)を実現する電子コンテンツが知られている。ヘッドマウントディスプレイを利用することで、映像への没入感を高めたり、ゲーム等のアプリケーションの操作性を向上させたりすることもできる。また、ヘッドマウントディスプレイを装着したユーザが物理的に移動することで、映像として表示された空間内を仮想的に歩き回ることのできるウォークスルーシステムも開発されている。
ヘッドマウントディスプレイを装着したユーザがアプリケーションのプレイ中に移動可能な範囲は、ユーザの部屋のサイズや、ユーザの部屋に設置された家具や荷物等の環境に応じて制限される必要がある。一方で、過剰な制限により、コンテンツが本来有する娯楽性が損なわれたり、ユーザにストレスを与えたりするジレンマがある。
本発明はこうした課題に鑑みてなされたものであり、その目的は、ヘッドマウントディスプレイを装着したユーザが移動可能なプレイエリアを、容易かつ適切に設定できる技術を提供することにある。
上記課題を解決するために、本発明のある態様は情報処理装置に関する。この情報処理装置は、ヘッドマウントディスプレイが搭載するカメラにより撮影された、ユーザの周囲空間を映したカメラ画像のデータを取得するカメラ画像取得部と、カメラ画像に基づいて周囲空間における障害物を検出し、その結果に基づき、ユーザが移動可能なプレイエリアを設定するプレイエリア設定部と、ヘッドマウントディスプレイを用いたアプリケーションをプレイ中のユーザの位置とプレイエリアの境界との関係に応じて、ユーザに対する警告処理を実行する警告処理部と、を備え、プレイエリア設定部は、設定したプレイエリアの境界と、新たに検出した障害物との位置関係を特定し、その結果に応じてプレイエリアの境界を修正するか否かを決定することを特徴とする。
本発明の別の態様は情報処理方法に関する。この情報処理方法は、ヘッドマウントディスプレイが搭載するカメラにより撮影された、ユーザの周囲空間を映したカメラ画像のデータを取得するステップと、カメラ画像に基づいて周囲空間における障害物を検出し、その結果に基づき、ユーザが移動可能なプレイエリアを設定するステップと、ヘッドマウントディスプレイを用いたアプリケーションをプレイ中のユーザの位置とプレイエリアの境界との関係に応じて、ユーザに対する警告処理を実行するステップと、を含み、プレイエリアを設定するステップは、設定したプレイエリアの境界と、新たに検出した障害物との位置関係を特定し、その結果に応じてプレイエリアの境界を修正するか否かを決定することを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、コンピュータプログラム、コンピュータプログラムを読み取り可能に記録した記録媒体、データ構造などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、ヘッドマウントディスプレイを装着したユーザが移動可能なプレイエリアを、容易かつ適切に設定できる。
本実施の形態は、ユーザの頭部に装着されたヘッドマウントディスプレイにアプリケーションの画像を表示する画像表示システムに関する。図1は、ヘッドマウントディスプレイ100の外観例を示す。本実施の形態のヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。
出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。本実施の形態のヘッドマウントディスプレイ100の表示パネルは、透過性がないものとする。すなわちヘッドマウントディスプレイ100は、光不透過型のヘッドマウントディスプレイである。
筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する接眼レンズを備えてよい。ヘッドマウントディスプレイ100はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。また、ヘッドマウントディスプレイ100は、モーションセンサを内蔵し、ヘッドマウントディスプレイ100を装着したユーザの頭部の並進運動や回転運動、ひいては各時刻の位置や姿勢を検出する。
また、ヘッドマウントディスプレイ100は、筐体108の前面にステレオカメラ110を備える。ステレオカメラ110は、ユーザの視線に対応する視野で周囲の実空間を動画撮影する。撮影した画像を即時に表示させれば、ユーザが向いた方向の実空間の様子がそのまま見える、いわゆるビデオシースルーを実現できる。さらに撮影画像に映っている実物体の像上に仮想オブジェクトを描画すれば拡張現実(Augmented Reality:AR)を実現できる。
図2は、本実施の形態の画像表示システムの構成例を示す。画像表示システムは、ヘッドマウントディスプレイ100、画像生成装置200、コントローラ140を備える。ヘッドマウントディスプレイ100は、無線通信により画像生成装置200に接続される。画像生成装置200は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションのデータを画像生成装置200に提供してもよい。
画像生成装置200は、ヘッドマウントディスプレイ100を装着したユーザの頭部の位置や姿勢に基づき視点の位置や視線の方向を特定し、それに応じた視野となるように表示画像を生成してヘッドマウントディスプレイ100に出力する情報処理装置である。例えば、画像生成装置200は、電子ゲームを進捗させつつゲームの舞台である仮想世界を表示画像として生成してもよいし、仮想世界か実世界かに関わらず観賞や情報提供のために動画像を表示させてもよい。また、ユーザの視点を中心に広い画角のパノラマ画像をヘッドマウントディスプレイ100に表示させることによって、表示世界への深い没入感をユーザに与えることができる。なお、画像生成装置200は、据置型ゲーム機であってもよく、PCであってもよい。
コントローラ140は、ユーザの手に把持され、画像生成装置200における画像生成や、ヘッドマウントディスプレイ100における画像表示を制御するためのユーザの操作が入力されるコントローラ(例えばゲームコントローラ)である。コントローラ140は、無線通信により画像生成装置200に接続される。変形例として、ヘッドマウントディスプレイ100とコントローラ140の一方、または両方は、信号ケーブル等を介した有線通信により画像生成装置200に接続されてもよい。
図3は、画像生成装置200がヘッドマウントディスプレイ100に表示させる画像世界の例を説明するための図である。この例では、ユーザ12が仮想空間である部屋にいる状態を作り出している。仮想空間を定義するワールド座標系には、図示するように、壁、床、窓、テーブル、テーブル上の物などのオブジェクトを配置している。画像生成装置200は、当該ワールド座標系に、ユーザ12の視点の位置や視線の方向に応じてビュースクリーン14を定義し、そこにオブジェクトの像を表すことで表示画像を描画する。
画像生成装置200は、ユーザ12の視点の位置や視線の方向(以後、これらを包括的に「視点」と呼ぶ場合がある)を所定のレートでヘッドマウントディスプレイ100から取得し、これに応じてビュースクリーン14の位置や方向を変化させる。これにより、ユーザの視点に対応する視野で画像をヘッドマウントディスプレイ100に表示させることができる。また、画像生成装置200は、視差を有するステレオ画像を生成し、ヘッドマウントディスプレイ100の表示パネルの左右の領域にステレオ画像を表示させれば、仮想空間をユーザ12に立体視させることもできる。これにより、ユーザ12は、あたかも表示世界の部屋の中にいるような仮想現実を体験することができる。
図4は、画像生成装置200の内部回路構成を示す。画像生成装置200は、CPU(Central Processing Unit)222、GPU(Graphics Processing Unit)224、メインメモリ226を含む。これらの各部は、バス230を介して相互に接続される。バス230にはさらに入出力インターフェース228が接続される。入出力インターフェース228には、通信部232、記憶部234、出力部236、入力部238、記録媒体駆動部240が接続される。
通信部232は、USBやIEEE1394などの周辺機器インターフェースや、有線LANまたは無線LAN等のネットワークインターフェースを含む。記憶部234は、ハードディスクドライブや不揮発性メモリ等を含む。出力部236は、ヘッドマウントディスプレイ100へのデータを出力する。入力部238は、ヘッドマウントディスプレイ100からのデータ入力を受け付け、また、コントローラ140からのデータ入力を受け付ける。記録媒体駆動部240は、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する。
CPU222は、記憶部234に記憶されているオペレーティングシステムを実行することにより画像生成装置200の全体を制御する。また、CPU222は、記憶部234またはリムーバブル記録媒体から読み出されてメインメモリ226にロードされた、あるいは通信部232を介してダウンロードされた各種プログラム(例えばVRゲームアプリケーション等)を実行する。GPU224は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、CPU222からの描画命令にしたがって描画処理を行い、描画結果を出力部236に出力する。メインメモリ226は、RAM(Random Access Memory)により構成され、処理に必要なプログラムやデータを記憶する。
図5は、ヘッドマウントディスプレイ100の内部回路構成を示す。ヘッドマウントディスプレイ100は、CPU120、メインメモリ122、表示部124、音声出力部126を含む。これらの各部はバス128を介して相互に接続されている。バス128にはさらに入出力インターフェース130が接続されている。入出力インターフェース130には、無線通信のインターフェースを含む通信部132、モーションセンサ134、およびステレオカメラ110が接続される。
CPU120は、バス128を介してヘッドマウントディスプレイ100の各部から取得した情報を処理するとともに、画像生成装置200から取得した表示画像や音声のデータを表示部124や音声出力部126に供給する。メインメモリ122は、CPU120における処理に必要なプログラムやデータを格納する。
表示部124は、液晶パネルや有機ELパネルなどの表示パネルを含み、ヘッドマウントディスプレイ100を装着したユーザの眼前に画像を表示する。表示部124は、左右の目に対応する領域に一対のステレオ画像を表示することにより立体視を実現してもよい。表示部124はさらに、ヘッドマウントディスプレイ100装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する一対のレンズを含んでもよい。
音声出力部126は、ヘッドマウントディスプレイ100の装着時にユーザの耳に対応する位置に設けたスピーカーやイヤホンで構成され、ユーザに音声を聞かせる。通信部132は、画像生成装置200との間でデータを送受するためのインターフェースであり、Bluetooth(登録商標)などの既知の無線通信技術により通信を実現する。モーションセンサ134はジャイロセンサおよび加速度センサを含み、ヘッドマウントディスプレイ100の角速度や加速度を取得する。
ステレオカメラ110は、図1で示したとおり、ユーザの視点に対応する視野で周囲の実空間を左右の視点から撮影するビデオカメラの対である。ステレオカメラ110により撮像された画像であり、ユーザの周囲空間を映した画像を以下「カメラ画像」とも呼ぶ。カメラ画像は、ユーザの視線方向(典型的にはユーザの正面)に存在する物体が映る画像とも言える。モーションセンサ134による計測値や、ステレオカメラ110による撮影画像(カメラ画像)のデータは、必要に応じて、通信部132を介して画像生成装置200へ送信される。
本実施の形態の画像表示システムでは、ヘッドマウントディスプレイ100を装着したユーザがアプリケーションのプレイ中に移動可能な実世界の範囲を規定したプレイエリアが設定される。プレイエリアは、ユーザの周囲空間(ユーザの周囲に広がる実世界の空間)のうち、ユーザが仮想現実の画像(以下「VR画像」とも呼ぶ。)を視聴中に動き回ることが許可されたエリアまたは範囲と言える。アプリケーションのプレイ中にユーザがプレイエリアを逸脱しようとする場合や逸脱した場合、画像表示システムは、注意を促す内容、または、プレイエリアへの復帰を促す内容の警告をユーザに提供する。
上記のアプリケーションは、VR画像をヘッドマウントディスプレイ100に表示させるゲームアプリケーションであることとし、以下「VRゲーム」とも呼ぶ。例えば、VRゲームは、仮想世界のテニスコートを示すVR画像を表示させ、実世界でのユーザの移動(歩行等)に伴って、仮想世界のテニスコートにおけるキャラクタの位置を変化させるテニスゲームであってもよい。
本実施の形態において画像生成装置200は、ヘッドマウントディスプレイ100を装着したユーザがアプリケーションのプレイ中に移動可能なプレイエリアを自動検出する。この際、画像生成装置200は、ヘッドマウントディスプレイ100のステレオカメラ110が撮影した実空間における周囲の物の位置や形状を特定することで、ユーザがそれらの物に衝突することなく移動できる範囲を決定する。画像生成装置200はさらに、自動検出されたプレイエリアを編集するユーザの操作を受け付け、その操作に応じてプレイエリアの形状を変更してもよい。これにより、ユーザが任意形状のプレイエリアを効率的に設定できる。
図6は、画像生成装置の機能ブロックを示すブロック図である。上述したように、画像生成装置200は、VRゲームの進行やサーバとの通信等、一般的な情報処理を実行するが、図6では特に、プレイエリアの設定に関する機能ブロックを詳細に示している。なお、図6に示す画像生成装置200の機能のうち少なくとも一部は、ネットワークを介して画像生成装置200に接続されたサーバに実装されてもよい。
また、図6に示す複数の機能ブロックは、ハードウェア的には、図4に示したCPU222、GPU224、メインメモリ226、記憶部234等の構成で実現でき、ソフトウェア的には、複数の機能ブロックの機能を実装したコンピュータプログラムにより実現できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
画像生成装置200は、データ処理部250とデータ記憶部252を備える。データ処理部250は、各種のデータ処理を実行する。データ処理部250は、図4に示した通信部232、出力部236、入力部238を介して、ヘッドマウントディスプレイ100およびコントローラ140とデータを送受信する。データ記憶部252は、データ処理部250により参照または更新されるデータを記憶する。
データ記憶部252は、App記憶部254、プレイエリア記憶部256、マップ記憶部258を備える。App記憶部254は、VR画像を生成するアプリケーション(実施形態ではVRゲーム)のデータを記憶する。プレイエリア記憶部256は、プレイエリアに関するデータを記憶する。プレイエリアに関するデータは、プレイエリアの境界を構成する点群の位置を示すデータ(例えばワールド座標系における各点の座標値)を含む。
マップ記憶部258は、ヘッドマウントディスプレイ100の位置(すなわちヘッドマウントディスプレイ100を装着したユーザの位置)を推定するためのマップデータを記憶する。本実施の形態のマップデータは、ユーザがVRゲームをプレイする部屋が映る画像(当該画像に映る特徴点)であり、位置関係(位置および方向)が判明している画像(当該画像に映る特徴点)の集合を含む。具体的には、マップデータは、ヘッドマウントディスプレイ100の位置、視線方向、およびキーフレームを対応付けた組を複数組含む。なお、マップデータは、いわゆる自己位置推定に必要な他の項目を含んでもよい。
或る組のキーフレームは、同じ組の位置および視線方向で見える像の特徴を示すデータである。キーフレームは、ヘッドマウントディスプレイ100のステレオカメラ110により撮像されたカメラ画像をもとに生成された画像であり、かつ、所定個数以上の特徴点を含む画像である。キーフレームに含まれるべき特徴点の個数は24個以上であってもよい。特徴点は、公知のコーナー検出法により検出されたコーナーを含んでもよく、また、輝度の勾配に基づいて検出されてもよい。キーフレームは、カメラ画像から切り出された部分画像の集合とも言える。
データ処理部250は、システム部260、App実行部290、表示制御部292を備える。これら複数の機能ブロックの機能は、コンピュータプログラムに実装されてもよい。画像生成装置200のCPU222とGPU224は、上記コンピュータプログラムを記憶部234や記録媒体からメインメモリ226に読み出して実行することにより上記複数の機能ブロックの機能を発揮してもよい。
App実行部290は、ユーザにより選択されたアプリケーション(実施形態ではVRゲーム)のデータをApp記憶部254から読み出し、ユーザにより選択されたアプリケーションを実行する。表示制御部292は、システム部260およびApp実行部290により生成された様々な画像(例えばVR画像やAR画像)のデータをヘッドマウントディスプレイ100へ送信し、それらの画像をヘッドマウントディスプレイ100の表示部124(表示パネル)に表示させる。
システム部260は、ヘッドマウントディスプレイ100に関するシステムの処理を実行する。システム部260は、ヘッドマウントディスプレイ100用の複数のアプリケーション(例えばVRゲーム)に対して共通のサービスを提供する。システム部260は、カメラ画像取得部262、プレイエリア設定部264、マップ生成部274、通知部278、位置推定部280、警告処理部282を含む。
カメラ画像取得部262は、ヘッドマウントディスプレイ100から送信された、ヘッドマウントディスプレイ100のステレオカメラ110により撮像されたカメラ画像を取得する。プレイエリア設定部264は、プレイエリアの設定に係る各種処理を実行する。具体的にはプレイエリア設定部264は、カメラ画像取得部262により取得されたカメラ画像と、コントローラ140を介して入力されたユーザの操作とに基づいて、プレイエリアを設定する。プレイエリア設定部264は、プレイエリア検出部266、床面設定部268、プレイエリア編集部270を含む。
プレイエリア検出部266は、カメラ画像取得部262により取得されたカメラ画像に基づいて、ヘッドマウントディスプレイ100を装着したユーザの周囲空間からプレイエリアを自動検出する。床面設定部268は、プレイエリア検出部266によりプレイエリアとして検出された床面の高さを編集するユーザの操作を受け付け、その操作に応じて床面の高さを変更する。
プレイエリア編集部270は、プレイエリア検出部266により自動検出されたプレイエリアを編集するユーザの操作を受け付け、その操作に応じてプレイエリアの形状を変更する。例えば、プレイエリア編集部270は、プレイエリア検出部266により自動検出されたプレイエリアを、ユーザの操作に応じて縮小する。
マップ生成部274は、プレイエリア検出部266がプレイエリアを検出することと並行して、カメラ画像取得部262により取得されたカメラ画像に基づいて、ユーザの位置を推定するためのマップを生成する。マップ生成部274は、生成したマップデータをマップ記憶部258に格納する。マップ生成部274は、ユーザの周囲空間を複数の方向から映した複数枚のカメラ画像であって、予め定められた枚数以上のカメラ画像が入力された場合、マップの生成を終了する。
通知部278は、App実行部290によるVRゲームの実行に必要な情報をApp実行部290へ通知する。位置推定部280は、マップ記憶部258に記憶されたマップデータと、カメラ画像取得部262により取得されたカメラ画像とに基づいて、実世界におけるユーザの位置を推定し、言い換えれば、プレイエリアにおけるユーザの位置を推定する。
例えば、位置推定部280は、マップデータに含まれる複数のキーフレームとカメラ画像とを照合し、その照合結果と、各キーフレームに対応付けられたヘッドマウントディスプレイ100の位置および視線方向とに基づいて、ユーザの位置を推定してもよい。また、位置推定部280は、SLAM(Simultaneous Localization and Mapping)等、公知の自己位置推定技術を用いてユーザの位置を推定してもよい。警告処理部282は、プレイエリアの境界と、ユーザの位置との関係に応じて、ユーザに対する警告処理を実行する。
次に、以上の構成によって実現される画像表示システムの動作を説明する。図7は、プレイエリアを設定する際の画像生成装置200の動作を示すフローチャートである。ユーザは、ヘッドマウントディスプレイ100のシステムの設定メニューの中で、プレイエリアの初期設定または再設定を選択可能である。プレイエリアの初期設定または再設定が選択された場合、画像生成装置200のプレイエリア設定部264は、表示制御部292を介して、周囲を見回すよう促す内容のメッセージをヘッドマウントディスプレイ100に表示させる。
これに応じてユーザが、ヘッドマウントディスプレイ100を頭部に装着して周囲を見回しつつ移動すると、ヘッドマウントディスプレイ100は、複数のカメラ画像のデータを画像生成装置200へ逐次送信する。複数のカメラ画像のデータのそれぞれは、各カメラ画像生成時のセンサデータを含む。センサデータは、モーションセンサ134による計測値を含み、例えば、ヘッドマウントディスプレイ100の角速度や加速度を含む。画像生成装置200のカメラ画像取得部262は、ヘッドマウントディスプレイ100から送信されたカメラ画像のデータを取得する(S10)。
画像生成装置200のプレイエリア検出部266は、S10で取得されたカメラ画像に基づいて、ユーザの周囲空間におけるプレイエリアを自動検出する(S12)。具体的には、プレイエリア検出部266は、カメラ画像と、そのカメラ画像に対応するセンサデータとに基づいて、公知の手法によりユーザの部屋の3次元形状を推定してもよい。プレイエリア検出部266は、推定した部屋の3次元形状をもとに、センサデータが示す重力方向に対して垂直な平面(典型的には床面)を検出し、検出した同じ高さの複数の平面を合成した結果をプレイエリアとして検出してもよい。プレイエリア検出部266は、プレイエリアの境界を構成する点群の座標値を含むプレイエリアデータをプレイエリア記憶部256に格納する。
プレイエリア検出部266は、プレイエリア検出時、プレイエリアとしての床面の高さを検出する。床面の高さは、例えば、重力方向における床面とヘッドマウントディスプレイ100との距離であってもよい。プレイエリア検出部266は、床面の高さを示すデータをプレイエリア記憶部256に格納する。ヘッドマウントディスプレイ100の位置が原点の場合、床面の高さはマイナス1メートル等であってもよい。
画像生成装置200のマップ生成部274は、S12の処理と並行して、S10で取得されたカメラ画像に基づいて、ユーザの位置を推定するためのマップを生成する(S14)。ユーザの位置を推定するのに十分なマップデータが得られたことを示す所定条件が満たされるまで、プレイエリア検出部266およびマップ生成部274は、新たなカメラ画像を用いてS12、S14の処理を繰り返す(S16のN)。十分なマップデータが得られたら、プレイエリア検出部266は、プレイエリアの検出処理を終了し、マップ生成部274は、マップの生成処理を終了する(S16のY)。
次に、画像生成装置200の床面設定部268は、プレイエリア記憶部256に記憶された床面の高さを示すデータに基づいて、床面調整画面を生成する。床面調整画面は、カメラ画像取得部262により取得されたカメラ画像に床面を示すオブジェクト(例えば半透明の格子状のオブジェクト)を重畳したAR画像を含んでもよい。床面設定部268は、表示制御部292を介して、ヘッドマウントディスプレイ100の表示パネルに床面調整画面を表示させる。床面設定部268は、床面調整画面に入力された床面の高さを調整するユーザの操作を受け付け、ユーザの操作にしたがって床面の高さを変更する。床面設定部268は、変更後の床面の高さを示すデータをプレイエリア記憶部256に格納する(S18)。
続いて画像生成装置200のプレイエリア編集部270は、プレイエリア検出部266により自動検出されたプレイエリアを示す画像を生成する。具体的には、プレイエリア編集部270は、プレイエリア記憶部256に格納されたプレイエリアデータに基づいて、プレイエリア編集画面を生成する。プレイエリア編集画面は、カメラ画像取得部262により取得されたカメラ画像の上にプレイエリアを示すオブジェクトを重畳したAR画像を含む。画像生成装置200の表示制御部292は、プレイエリア編集画面をヘッドマウントディスプレイ100の表示パネルに表示させる(S20)。
プレイエリア編集部270は、プレイエリア編集画面60に入力されたプレイエリアを編集するユーザの操作を受け付ける(S22)。具体的にはプレイエリア編集部270は、ユーザの操作に応じてプレイエリアの形状を変更し、すなわち、ユーザの操作に応じてプレイエリアを拡大または縮小する。プレイエリア編集部270は、形状変更後のプレイエリアのデータ(例えば境界を構成する点群の座標値)をプレイエリア記憶部256に格納することにより、プレイエリア記憶部256に記憶されたプレイエリアデータを更新する。
図8は、図7のS10~S14のループ処理におけるユーザの行動を模式的に示す。部屋30の中で、ユーザは、ヘッドマウントディスプレイ100を頭部に装着して周囲を見回しつつ移動する。図8のユーザ32は、このときのユーザの位置を示している。なお図8に示すユーザ32は、ユーザが移動した位置の全てを表すものではなく、次に説明するキーフレームが生成された位置に限って表されている。矢印34は、ユーザの視線方向を示している。プレイエリア36は、設定されるプレイエリアの一例を示している。図示するようにユーザが移動している間、画像生成装置200のプレイエリア設定部264は、カメラ画像取得部262により取得されたカメラ画像を、表示制御部292を介して、ヘッドマウントディスプレイ100の表示パネルに表示させ、すなわち、ユーザが向いた方向の実空間の様子をそのままユーザに見せるビデオシースルーを行う。これによりユーザの安全性を高める。
図9は、図7のS10の処理においてカメラ画像取得部262が取得するカメラ画像の例を示す。また図10は、図9のカメラ画像から生成されるキーフレームのデータ例を示す。マップ生成部274は、コーナー検出法等の公知の手法を用いてカメラ画像40に含まれる複数の特徴点44を抽出し、抽出した複数の特徴点44を示すキーフレーム42を生成する。マップ生成部274は、1枚のカメラ画像40から24個以上の特徴点44を抽出した場合、抽出した24個以上の特徴点44を含むキーフレーム42を、センサデータにより特定されるユーザの位置および視線方向と対応付けてマップ記憶部258に格納する。
マップ生成部274はまた、各カメラ画像から抽出した特徴点の3次元空間での位置座標を、ステレオマッチングなど周知の技術により取得することで、周囲にある物の配置や形状を特定する。当該3次元の空間情報は、いわゆる環境地図として知られている。マップ生成部274は、特定した3次元の空間情報も、マップデータとしてマップ記憶部258に格納する。
マップ生成部274は、ユーザの周囲空間のうち入力されたカメラ画像(実施形態ではカメラ画像から生成されたキーフレーム)によりカバーされる割合に関するスコアを導出するための複数の基準(以下「ビン」と呼ぶ。)を記憶する。複数のビンは、ユーザの周囲空間を異なる態様で分割した複数の基準である。
図11は、本実施の形態で採用できる複数のビンを示す。ビン50、ビン52、ビン54のそれぞれは、中心をユーザの位置とし、ユーザの周囲空間を、重力方向を軸として分割したものである。ビン50は、プレイエリア設定開始時のユーザの視線方向と、視線方向に垂直な方向とに基づいて、ユーザの周囲空間を中心角90度で4分割した基準である。ビン52は、ビン50に対して位相を45度ずらしたものである。ビン54は、ユーザの周囲空間を中心角22.5度で16分割した基準である。以下、ビン50、ビン52、ビン54のそれぞれで規定された、ユーザの周囲空間における分割されたエリアを「分割エリア」と呼ぶ。
マップ生成部274は、ビン50、ビン52、ビン54に基づいて、ユーザの周囲空間のうち入力された複数枚のカメラ画像(実施形態ではカメラ画像から生成されたキーフレーム)によりカバーされる割合に関するスコアを導出する。マップ生成部274は例えば、図7のS16において、当該スコアが予め定められた閾値以上になった場合、十分なマップデータが得られたと判定してマップの生成処理を終了する。
具体的には、マップ生成部274は、カメラ画像からキーフレームを生成した場合、ビン50、ビン52、ビン54のそれぞれについて、当該キーフレームが得られた視線方向に合致する分割エリアが埋まったこととし、各ビンにおいて分割エリアが埋まった個数の合計をスコアとしてカウントする。マップ生成部274は、新たなキーフレームを生成すると、同様のアルゴリズムにより、各ビンにおいて新たに分割エリアが埋まった個数をスコアに加算する。
例えばマップ生成部274は、スコアが閾値「10」未満のとき、マップデータが十分でないと判定する。これによりプレイエリアの検出処理とマップの生成処理が継続される。スコアが閾値「10」以上になった場合、マップ生成部274はマップデータが十分に取得できたと判定し、マップの生成処理を終了する。これによりプレイエリアの検出処理も終了となる。スコアの閾値「10」は、ヘッドマウントディスプレイ100を装着したユーザが自身の周囲180度をぐるりと見渡せばクリアできる値であるが、ユーザが周囲を見渡さない場合にはクリアできない値として定められたものである。
このように、マップデータが十分取得されたことが判定されるまでの期間、マップ生成部274がマップデータを生成するのと並行して、プレイエリア検出部266はプレイエリアの境界を徐々に設定していく。図12は、プレイエリア検出部266がプレイエリアの境界を設定する様子を模式的に示している。プレイエリア検出部266は基本的に、マップ生成部274が生成しているマップにおいて、床面に対し略垂直方向の面を検出することで、そこに物があることを特定する。
図の例では、ヘッドマウントディスプレイ100を装着したユーザが周囲を見回すにつれ、その視線方向(例えば方向S、S’)で撮影された障害物(例えば障害物70a、70b)の特徴点の3次元位置座標が徐々に特定される。その結果、障害物の存在が判明した実空間の領域が広がっていき、それとともにプレイエリア検出部266は、検出された障害物の手前などにプレイエリアの境界72を設定していく。なお図ではプレイエリアの境界72を床上の線で表しているが、実際には床面に対し垂直方向の面を有してよい。
上述したビンなどを用いた基準に基づき、十分なマップデータが得られたことが判定されるまでは、プレイエリア検出部266は、障害物の新規検出に応じてプレイエリアの境界72を適宜更新する。ここで図に示すように、一旦、設定したプレイエリアの境界72の手前、すなわちプレイエリアの内側に、さらに障害物74が検出される場合がある。例えば障害物74の高さが低く、奥の障害物70bが検出された際、ステレオカメラ110の視野に障害物74が入らなかった場合がこれに当たる。
このときプレイエリア検出部266は、プレイエリアの境界72を、障害物74より手前の境界76に変更することが考えられる。しかしながらこの場合、プレイエリアが必要以上に狭まり、ゲームの楽しさが半減してしまうことも考えられる。そこでプレイエリア検出部266は、プレイエリアが必要以上に狭くならないような規則でプレイエリアを修正する。
具体的にはプレイエリア検出部266は、障害物74を検出した際のヘッドマウントディスプレイ100から見たときの、障害物74とその背後の領域を限定し、当該領域をプレイエリアから除くようにプレイエリア境界を修正する。換言すれば、プレイエリア検出部266は、ヘッドマウントディスプレイ100から見たときの、障害物74の左右の領域(脇の領域)を、プレイエリアから除外しないようにする。
図13は、プレイエリア検出部266が、設定したプレイエリアの内部に別の障害物を検出した際の、プレイエリアの修正手順の例を説明するための図である。(a)は、図12と同様、暫定的なプレイエリアの境界72の手前に新たな障害物が検出された状況を示している。ここで輪郭80は、新たに検出された障害物の3次元形状を床面へ射影したときの輪郭を示す。プレイエリア検出部266は、障害物の特徴点の3次元位置座標に基づき輪郭80を生成する。
またプレイエリア検出部266は、新たな障害物を検出したときのヘッドマウントディスプレイ100の、重心からの垂線が床面と交わる位置を、観測地点Hとして求める。観測地点Hは、床面上でのユーザの位置に対応する。次にプレイエリア検出部266は(b)に示すように、観測地点Hから輪郭80への接線82a、82bを生成し、その接点A、Bおよび、接線82a、82bと境界72との交点C、Dを求める。
そしてプレイエリア検出部266は(c)に示すように、元の境界72のうち交点C、Dの間の部分を削除するとともに、太線で示した、直線ACおよび直線BDと、輪郭80のうち、観測地点Hに近い側の、接点A、Bの間の部分とを、新たな境界とする。その結果、(d)に示すように、新たに検出した障害物とその背後の領域84が除かれた、新たなプレイエリアの境界86が形成される。このような手順によりプレイエリアを修正することにより、ユーザが障害物の脇まで移動するのを最大限許容しつつ、障害物との衝突を回避できる。
なお図では床面上の2次元での処理を表しているが、上述のとおりプレイエリアの境界は床面と垂直方向の軸を含む、3次元空間で設定される。すなわち新たなプレイエリアの境界86は、実際には床面と垂直方向の面で構成してよい。この場合、観測地点Hは、障害物が検出された際のヘッドマウントディスプレイ100またはユーザの位置、輪郭80への接線82a、82bは、障害物に接する2つの鉛直面ともいえる。また輪郭80のうち接点A、Bの間の部分は、障害物に沿うように外接し、ユーザ側で2つの鉛直面と交わる第3の鉛直面ともいえる。図14、15に示す境界も同様である。
図14は、新たな障害物が2つ検出された場合の、修正後のプレイエリアを模式的に示している。プレイエリア検出部266は、障害物300a、300bに対し、それぞれ図13と同様の手順でのプレイエリア境界の修正を独立に適用する。これにより形成される新たな境界301によれば、障害物300a、300bの間の領域を、極力、プレイエリアとして残すことができる。結果として、それらの障害物との衝突を回避しつつプレイエリアの削減量を抑えられる。障害物が3つ以上検出された場合も同様である。
図13に示したプレイエリア境界の修正手順によれば、修正後の境界の形状は、新たに障害物を検出した際の、ヘッドマウントディスプレイ100の位置に依存する。定性的には、障害物を検出した際のヘッドマウントディスプレイ100の位置が、当該障害物から遠いほど、見かけ上の障害物の幅が狭くなるため、削除されるプレイエリアの幅も狭くできる。
例えばユーザがダイナミックに移動しないゲームであれば、ゲームプレイ中もヘッドマウントディスプレイ100と当該障害物との距離がある程度維持されると見込める。そのため当該障害物の周囲のプレイエリアをいくらか広めに残しておいても、勢いでプレイエリアから逸脱し障害物に衝突する可能性が低いという意味で、遠くで検出された障害物に対しプレイエリアの削減量が抑えられることは理に適っているといえる。
一方、逆に近距離で障害物を検出し、その見かけ上の幅が広くなると、背後の領域をプレイエリアから必要以上に除外してしまう恐れがある。そこでプレイエリア検出部266は、障害物を検出した際の、ヘッドマウントディスプレイ100との距離を所定の指標により確認し、プレイエリア境界の修正手順を切り替える。これにより、障害物検出時のヘッドマウントディスプレイ100位置に依存して、プレイエリアが必要以上に削減される状況を回避し、安定的にプレイエリアを確保できるようにする。
図15は、プレイエリア検出部266が、設定したプレイエリアの内部に別の障害物を検出した際の、プレイエリアの修正手順の別の例を説明するための図である。図の表し方は図13と同様であり、(a)は、暫定的なプレイエリアの境界72の手前に新たな障害物が検出された状況を示している。輪郭302は新たに検出された障害物の3次元形状を床面へ射影したときの輪郭、観測地点Hは、新たな障害物を検出したときのヘッドマウントディスプレイ100の、重心からの垂線が床面と交わる位置を表す。
プレイエリア検出部266は、新たに障害物を検出したときの、ヘッドマウントディスプレイ100との距離を所定の指標により評価し、所定基準より近いと判定したとき、本図の修正手順を採用する。図では、観測地点Hから輪郭302への接線304a、304bを生成し、そのいずれかと、観測地点Hから輪郭302の内部領域の中心点306を通る中心線308とのなす角度θoを、ヘッドマウントディスプレイ100と障害物との距離の指標としている。
当然、角度θoが大きいほど距離が近いことを意味する。この指標は、障害物の本来の大きさも加味しており、総合的な観点で、必要以上にプレイエリアが削減される可能性の高さを示す指標と捉えることもできる。ただし用いる指標はこれに限定されず、単に観測地点Hと輪郭302との距離などを採用してもよい。角度θoを指標とする場合、例えば角度θoが45°など閾値θthより大きいとき、プレイエリア検出部266は、ヘッドマウントディスプレイ100と障害物との距離が近く、ひいては図13の手法ではプレイエリアが必要以上に削減される可能性が高いと判定する。
なお角度θoには閾値θthより大きい上限の閾値も設定してよい。すなわち角度θoが180°に近いとき、観測地点Hは輪郭302に接していたり輪郭302の内部領域に重なっていたりすることが考えられる。この場合、輪郭302は真の障害物のものではなく、ユーザ自身の身体に由来する可能性が高い。そこで角度θoが180°に近い所定の閾値より大きいとき、プレイエリア検出部266は、プレイエリア境界の修正を行わない。指標として観測地点Hと輪郭302との距離を利用する場合は、当該距離が0などの閾値以下のとき、プレイエリア検出部266は、プレイエリア境界の修正を行わない。
角度θoが上限の閾値以下で、45°など修正手法切り替え用の閾値θthより大きい場合、プレイエリア検出部266は(b)に示すように、本来の接線304a、304bの代わりに、互いのなす角度2θo’が角度2θoより小さい、新たな接線312a、312bを生成する。接線312a、312bは、観測地点Hを通る中心線308に対称に、当該中心線308とのなす角度がθo’(<θo)である線310a、310bを、輪郭302に接するように平行移動させた線である。
角度θo’は例えば25°などとする。そしてプレイエリア検出部266は、新たな接線312a、312bと輪郭302との接点A’、B’および、接線312a、312bと境界72との交点C’、D’を求める。そしてプレイエリア検出部266は(c)に示すように、元の境界72のうち交点C’、D’の間の部分を削除するとともに、直線A’C’および直線B’D’と、輪郭302のうち観測地点Hに近い側の、接点A’、B’の間の部分とを、新たな境界とする。
その結果、(d)に示すように、新たに検出した障害物とその背後の領域314が除かれた、新たなプレイエリアの境界316が形成される。これにより、元の接線304a、304bを用いてプレイエリアを修正するのと比較し、プレイエリアの削減量を抑えられる。なお図示する手順は一例であり、例えば輪郭302と接する線は折れ線や曲線でもよい。ただし図示する手法によれば、簡易な計算で確実にプレイエリアから障害物を除外できる。
図16は、プレイエリア検出部266がプレイエリアを検出する処理手順を示すフローチャートである。この処理は、図7のS12に対応する。プレイエリア検出部266は、カメラ画像から抽出した特徴点に基づき、新たな障害物、あるいは検出済みの障害物の新たな面が検出されたか否かを判定する(S30)。検出されなければ、プレイエリア検出部266は処理を終了する(S30のN)。新たな障害物や面が検出されたら(S30のY)、プレイエリア検出部266は、検出された障害物あるいは面が、暫定的に設定したプレイエリア境界の手前、すなわちプレイエリアの内側にあるか否かを判定する(S32)。
詳細にはプレイエリア検出部266は、S30で障害物を検出した際のヘッドマウントディスプレイ100と、暫定的に設定したプレイエリアの境界との間に、当該障害物が位置するか否かを確認する。そのような位置関係になければ(S32のN)、プレイエリア検出部266はその方角でのプレイエリア境界が未設定であるとして、障害物の手前にプレイエリア境界を設定して処理を終える(S36)。なお図では省略しているが、検出した障害物が、すでに設定されたプレイエリア境界の奥にある場合は、プレイエリア検出部266はそのまま処理を終了させてよい。
検出した障害物あるいは面がプレイエリアの内側にあるとき(S32のY)、プレイエリア検出部266は、S30で障害物を検出した際のヘッドマウントディスプレイ100と当該障害物との距離が基準以上であるか否かを判定する(S34)。図15の例では角度θoを指標とし、それが閾値θth以下のとき、距離が基準以上であると判定する。ヘッドマウントディスプレイ100と障害物との距離が基準以上の場合(S34のY)、プレイエリア検出部266は図13で示したように、観測地点Hを通る、障害物の輪郭の接線によりプレイエリア境界を修正する(S38)。
具体的には障害物の輪郭のうち接点間の部分と、接点を端点とする接線の一部とで新たな境界を生成する。ヘッドマウントディスプレイ100と障害物との距離が基準より小さい場合(S34のN)、プレイエリア検出部266は図15で示したように、観測地点Hを通る接線より角度を狭めた、障害物の輪郭の接線によりプレイエリア境界を修正する(S40)。
具体的にはプレイエリア検出部266は、S38の接線より小さい角度をなし、障害物の輪郭の中心線に対称な2つの線を生成し、当該輪郭に接する位置まで平行移動させる。そして障害物の輪郭のうち接点の間の部分と、接点を端点とする接線の一部とで新たな境界を生成する。図示する処理を、新たな障害物が検出される都度、繰り返すことにより、最終的にはプレイエリアの境界を完成させることができる。上述のとおりプレイエリア検出部266が設定したプレイエリアは、ユーザにより調整できるようにすることが望ましい。
図17は、プレイエリア編集画面の例を示す。プレイエリア編集画面60は、プレイエリア62と境界64を含む。プレイエリア62は、プレイエリア(典型的には障害物のない床面)を示す画像であり、例えば半透明の格子状のオブジェクトを示す画像であってもよい。境界64は、プレイエリア62の境界を示す画像であり、プレイエリア62の境界においてプレイエリアに垂直に交わる画像である。境界64も、例えば半透明の格子状のオブジェクトであってもよい。上述のとおり、プレイエリア編集部270は、表示されたプレイエリアを変形させたり拡大、縮小させたりするユーザ操作を受け付け、編集後のプレイエリアのデータをプレイエリア記憶部256に格納する。
図18は、VRゲーム実行時の画像生成装置200の動作を示すフローチャートである。このフローチャートは、ユーザがヘッドマウントディスプレイ100を装着し、画像生成装置200に対してVRゲームの起動操作を行うことにより開始される。これに応じて画像生成装置200の通知部278は、プレイエリア記憶部256に記憶されたプレイエリアのデータ、例えば、プレイエリアの形状およびサイズを示すデータをApp実行部290へ送信する(S50)。
そしてApp実行部290は、App記憶部254からVRゲームのプログラムデータを読み出し、VRゲームを開始する(S52)。例えば、App実行部290は、ゲーム世界を描いた仮想空間の中でプレイエリアの範囲内にゲームアイテムを配置することによりユーザにそのアイテムを取得させてもよい。表示制御部292は、App実行部290により生成されたVRゲームの画像(例えばVR画像)をヘッドマウントディスプレイ100の表示パネルに表示させる。
画像生成装置200のカメラ画像取得部262は、ヘッドマウントディスプレイ100から逐次送信されたカメラ画像を逐次取得し、位置推定部280は、実世界におけるユーザの位置および視線方向を逐次推定する(S54)。通知部278は、位置推定部280により推定されたユーザの位置および視線方向をApp実行部290へ通知する(S56)。App実行部290は、推定されたユーザの位置および視線方向に応じてVRゲームを進行させる(S58)。例えばApp実行部290は、実世界(言い換えればプレイエリア内)におけるユーザの位置の変化に応じて、VRゲーム内のユーザキャラクタを移動させてもよい。
画像生成装置200の警告処理部282は、実世界におけるユーザの位置がプレイエリアの境界近傍に至った場合、例えば、ユーザに装着されたヘッドマウントディスプレイ100からプレイエリアの境界までの距離が所定の閾値(例えば30センチ)以下になった場合(S60のY)、そのことを検出する。このとき警告処理部282は、ユーザに対する所定の警告処理を実行する(S62)。
例えば、警告処理部282は、ユーザの位置がプレイエリアの境界近傍に至った場合、プレイエリアの境界を示す画像(例えば図17に示した境界64)を表示制御部292に渡してもよい。表示制御部292は、App実行部290により生成されたゲーム画像に、プレイエリアの境界を示す画像を重畳したものを表示画像としてヘッドマウントディスプレイ100の表示パネルに表示させてもよい。また、警告処理部282は、実世界におけるユーザの位置がプレイエリアの境界近傍に至った場合やプレイエリアの境界を超えてしまった場合、表示制御部292を介してヘッドマウントディスプレイ100の表示パネルにビデオシースルー画像を表示させてもよい。
また、警告処理部282は、実世界におけるユーザの位置がプレイエリアの境界近傍に至った場合(例えば30センチ)、最初にプレイエリアの境界を示す画像を表示させ、実世界におけるユーザの位置がさらにプレイエリアの境界近傍に至った場合(例えば10センチ)は、ビデオシースルー画像を表示させても良い 。一方、実世界におけるユーザの位置がプレイエリアの境界近傍でなければ(S60のN)、S62をスキップする。ユーザによりVRゲームの実行が停止された場合等、所定の終了条件を満たした場合(S64のY)、本図のフローを終了する。終了条件が満たされなければ(S64のN)、S54に戻り、VRゲームを続行する。
以上述べた本実施の形態によれば、画像生成装置は、ヘッドマウントディスプレイを装着したユーザが安全に動き回ることのできるプレイエリアを設定する。具体的には画像生成装置は、ヘッドマウントディスプレイに搭載されたステレオカメラによる撮影画像に基づき障害物を検出し、それを除くようにプレイエリアの境界を設定していく。この際、一旦設定したプレイエリアの内部に、新たな障害物が検出されたら、画像生成装置は、検出時点でのヘッドマウントディスプレイから当該障害物の輪郭に向かう接線を利用して、新たなプレイエリア境界を設定する。
これにより、障害物と、ヘッドマウントディスプレイから見てその背後の領域、という必要最小限の領域をプレイエリアから除外できる。検出時のヘッドマウントディスプレイの位置は、ゲームプレイなどコンテンツの実行時におけるユーザの位置に近いと推定されるため、障害物の手前をプレイエリアに残し、背後を除外することで、実質的なプレイエリアの削減量を極力抑えながら、障害物との衝突を回避できる。
また、検出時の障害物とヘッドマウントディスプレイとの距離が近いと判定された場合は、接線のなす角度を狭めることにより、プレイエリアから除外される範囲の拡張を抑える。これにより、障害物検出時のヘッドマウントディスプレイの位置がプレイエリアの大小に与える影響を極力排除でき、状況によらず、必要十分なプレイエリアを容易に設定できる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
100 ヘッドマウントディスプレイ、 200 画像生成装置、 256 プレイエリア記憶部、 264 プレイエリア設定部、 266 プレイエリア検出部、 270 プレイエリア編集部、 274 マップ生成部、 280 位置推定部、 282 警告処理部、 292 表示制御部。
Claims (10)
- ヘッドマウントディスプレイが搭載するカメラにより撮影された、ユーザの周囲空間を映したカメラ画像のデータを取得するカメラ画像取得部と、
前記カメラ画像に基づいて前記周囲空間における障害物を検出し、その結果に基づき、ユーザが移動可能なプレイエリアを設定するプレイエリア設定部と、
前記ヘッドマウントディスプレイを用いたアプリケーションをプレイ中のユーザの位置と前記プレイエリアの境界との関係に応じて、ユーザに対する警告処理を実行する警告処理部と、
を備え、
前記プレイエリア設定部は、設定したプレイエリアの境界と、新たに検出した障害物との位置関係を特定し、その結果に応じて前記プレイエリアの境界を修正するか否かを決定することを特徴とする情報処理装置。 - 前記プレイエリア設定部は、前記障害物が前記プレイエリアの内側にあるとき、検出時の前記ヘッドマウントディスプレイから見たときの当該障害物とその背後の領域を限定し、前記プレイエリアから除くように前記境界を修正することを特徴とする請求項1に記載の情報処理装置。
- 前記プレイエリア設定部は、床面において、検出時の前記ヘッドマウントディスプレイの位置を通り前記障害物の輪郭に接する2つの接線と、当該輪郭のうち前記ヘッドマウントディスプレイに近い側の、各接点の間の部分とで構成される線を、修正後の前記境界とすることを特徴とする請求項2に記載の情報処理装置。
- 前記プレイエリア設定部は、前記障害物と、検出時の前記ヘッドマウントディスプレイとの距離を所定の指標により確認し、その結果に応じて、前記境界の修正手法を切り替えることを特徴とする請求項2または3に記載の情報処理装置。
- 前記プレイエリア設定部は、前記障害物と、検出時の前記ヘッドマウントディスプレイとの距離を所定の指標により確認し、基準より近いと判定したとき、前記ヘッドマウントディスプレイの位置を通る前記2つの接線のなす角度より小さい角度をなす、別の2つの接線を用いて、修正後の前記境界を決定することを特徴とする請求項3に記載の情報処理装置。
- 前記プレイエリア設定部は、検出時の前記ヘッドマウントディスプレイの位置を通り、前記輪郭の中心線に対称な所定角度をなす2つの線を、前記輪郭に接するように平行移動させることにより、前記別の2つの接線を生成することを特徴とする請求項5に記載の情報処理装置。
- 前記プレイエリア設定部は、前記ヘッドマウントディスプレイの位置を通る前記2つの接線のなす角度の大きさを指標として、前記距離の近さを判定することを特徴とする請求項4から6のいずれかに記載の情報処理装置。
- 前記プレイエリア設定部は、前記プレイエリアの内側に複数の前記障害物があるとき、それぞれ独立に、各障害物とその背後の領域を限定し前記プレイエリアから除くように前記境界を修正することを特徴とする請求項2から7のいずれかに記載の情報処理装置。
- ヘッドマウントディスプレイが搭載するカメラにより撮影された、ユーザの周囲空間を映したカメラ画像のデータを取得するステップと、
前記カメラ画像に基づいて前記周囲空間における障害物を検出し、その結果に基づき、ユーザが移動可能なプレイエリアを設定するステップと、
前記ヘッドマウントディスプレイを用いたアプリケーションをプレイ中のユーザの位置と前記プレイエリアの境界との関係に応じて、ユーザに対する警告処理を実行するステップと、
を含み、
前記プレイエリアを設定するステップは、設定したプレイエリアの境界と、新たに検出した障害物との位置関係を特定し、その結果に応じて前記プレイエリアの境界を修正するか否かを決定することを特徴とする情報処理方法。 - ヘッドマウントディスプレイが搭載するカメラにより撮影された、ユーザの周囲空間を映したカメラ画像のデータを取得する機能と、
前記カメラ画像に基づいて前記周囲空間における障害物を検出し、その結果に基づき、ユーザが移動可能なプレイエリアを設定する機能と、
前記ヘッドマウントディスプレイを用いたアプリケーションをプレイ中のユーザの位置と前記プレイエリアの境界との関係に応じて、ユーザに対する警告処理を実行する機能と、
をコンピュータに実現させ、
前記プレイエリアを設定する機能は、設定したプレイエリアの境界と、新たに検出した障害物との位置関係を特定し、その結果に応じて前記プレイエリアの境界を修正するか否かを決定することを特徴とするコンピュータプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022021304A JP2023118379A (ja) | 2022-02-15 | 2022-02-15 | 情報処理装置および情報処理方法 |
PCT/JP2022/047634 WO2023157471A1 (ja) | 2022-02-15 | 2022-12-23 | 情報処理装置および情報処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022021304A JP2023118379A (ja) | 2022-02-15 | 2022-02-15 | 情報処理装置および情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023118379A true JP2023118379A (ja) | 2023-08-25 |
Family
ID=87578006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022021304A Pending JP2023118379A (ja) | 2022-02-15 | 2022-02-15 | 情報処理装置および情報処理方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2023118379A (ja) |
WO (1) | WO2023157471A1 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10803663B2 (en) * | 2017-08-02 | 2020-10-13 | Google Llc | Depth sensor aided estimation of virtual reality environment boundaries |
CN113284258B (zh) * | 2021-07-13 | 2021-11-16 | 北京京东方技术开发有限公司 | 安全区域的设置方法、装置和虚拟现实设备 |
-
2022
- 2022-02-15 JP JP2022021304A patent/JP2023118379A/ja active Pending
- 2022-12-23 WO PCT/JP2022/047634 patent/WO2023157471A1/ja unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023157471A1 (ja) | 2023-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7181316B2 (ja) | Hmd環境での高速中心窩レンダリングのための予測及びgpuに対する最新の更新を伴う視線追跡 | |
JP5148660B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP4242318B2 (ja) | 3次元画像生成装置および3次元画像生成プログラム | |
KR20180113576A (ko) | 정보 처리 장치, 정보 처리 시스템, 정보 처리 방법 및 컴퓨터 프로그램 | |
US20050219239A1 (en) | Method and apparatus for processing three-dimensional images | |
US8520901B2 (en) | Image generation system, image generation method, and information storage medium | |
JP6824579B2 (ja) | 画像生成装置および画像生成方法 | |
JP2019175323A (ja) | シミュレーションシステム及びプログラム | |
JP7349256B2 (ja) | 画像生成装置および情報提示方法 | |
TW201928761A (zh) | 影像擷取之設備及方法 | |
JP2012104021A (ja) | 画像処理装置、画像処理プログラム、及び画像処理方法 | |
JP2024061769A (ja) | 情報処理装置および警告提示方法 | |
JP2021507425A (ja) | ビュー画像を生成するための装置および方法 | |
JP2012223357A (ja) | ビデオゲーム装置およびビデオゲーム制御方法 | |
WO2023157471A1 (ja) | 情報処理装置および情報処理方法 | |
JP2955989B2 (ja) | ゲーム装置 | |
JP3951246B2 (ja) | ゲーム装置 | |
JP2024019911A (ja) | ヘッドマウントディスプレイおよび画像表示方法 | |
WO2023149126A1 (ja) | 情報処理装置および情報処理方法 | |
JP3763220B2 (ja) | ゲーム装置 | |
WO2024038787A1 (ja) | 情報処理装置および情報処理方法 | |
WO2023002793A1 (ja) | 情報処理装置、情報処理方法およびコンピュータプログラム | |
WO2023002792A1 (ja) | 情報処理装置、情報処理方法およびコンピュータプログラム | |
WO2023140004A1 (ja) | 情報処理装置および情報処理方法 | |
WO2023002652A1 (ja) | 情報処理装置、情報処理方法およびコンピュータプログラム |