(57)【要約】【課題】仮想空間におけるエンタテイメント性を向上させる。【解決手段】コンピュータを用いてヘッドマウントディスプレイ（以下、ＨＭＤ）にユーザが没入する仮想空間を提供する方法であって、仮想空間内の第１位置に、視界領域を決定するための仮想カメラを定義するステップと、仮想カメラの移動先を特定するための移動入力を受け付けるステップと、移動入力の経時的状態を特定するステップと、経時的状態に基づいて、仮想カメラを第１位置から仮想空間内の第２位置に移動させるステップと、を含む方法。 【選択図】図１２
2017162309.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを用いてヘッドマウントディスプレイ（以下、ＨＭＤ）にユーザが没入する仮想空間を提供する方法であって、
前記ユーザが没入する仮想空間を定義するステップと、
前記仮想空間内の第１位置に、視界領域を決定するための仮想カメラを定義するステップと、
前記ユーザの基準視線を特定するステップと、
前記基準視線に基づいて、前記仮想カメラの向きを特定するステップと、
前記仮想空間のうち、前記視界領域に相当する視界画像を生成し、前記ＨＭＤに出力するステップと、
前記仮想カメラの移動先を特定するための移動入力を受け付けるステップと、
前記移動入力の経時的状態を特定するステップと、
前記経時的状態に基づいて、前記仮想カメラを前記第１位置から前記仮想空間内の第２位置に移動させるステップと、
前記第２位置に配置された前記仮想カメラに基づいて前記視界領域を更新するステップと、
更新された前記視界領域に基づいて前記視界画像を生成し、前記ＨＭＤに出力するステップと、
を含む方法。
【請求項２】
前記移動入力は、前記コンピュータに接続されたコントローラからの出力である、
請求項１の方法。
【請求項３】
前記出力は、前記コントローラに対する入力が継続された時間を特定するための情報を含み、
前記経時的状態は、前記入力が継続された時間であり、
前記第２位置は、前記入力が継続された時間が長いほど、前記第１位置から遠くなるように設定される、
請求項２の方法。
【請求項４】
前記出力は、所定時間内に前記コントローラに対する入力が実行された回数を特定するための情報を含み、
前記経時的状態は、前記入力が実行された回数であり、
前記第２位置は、前記回数が多いほど、前記第１位置から遠くなるように設定される、
請求項２の方法。
【請求項５】
前記ＨＭＤの傾きを検知することにより視界方向を特定するステップ、および／または、前記ユーザの視線方向を特定するステップをさらに含み、
前記基準視線は、前記視界方向および／または前記視線方向に基づいて特定され、
前記移動入力は、前記視界方向または前記視線方向が滞留した時間を特定する情報を含み、
前記経時的状態は、前記視界方向または前記視線方向が滞留した時間であり、
前記第２位置は、前記視界方向または前記視線方向が滞留した時間が長いほど、前記第１位置から遠くなるように設定される、
請求項１〜４のいずれかの方法。
【請求項６】
前記ＨＭＤの傾きを検知することにより視界方向を特定するステップ、および／または、前記ユーザの視線方向を特定するステップをさらに含み、
前記基準視線は、前記視界方向および／または前記視線方向に基づいて特定され、
前記視界方向または前記視線方向に、前記経時的状態に基づく経時的表示を表示させる、
請求項１〜５のいずれかの方法。
【請求項７】
前記経時的表示を、前記仮想カメラと前記第２位置の間に表示させる、
請求項６の方法。
【請求項８】
前記経時的表示を、前記仮想カメラから前記第２位置に延びるように表示させる、
請求項６または７の方法。
【請求項９】
請求項１〜８のいずれかの方法を、前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザがヘッドマウントディスプレイ（Ｈｅａｄ−Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ：ＨＭＤ）を用いて没入する仮想空間を、コンピュータに提供させる方法、および、プログラムに関するものである。
【背景技術】
【０００２】
特許文献１には、ＨＭＤを用いてユーザに映像コンテンツを提供する際の視点を、三人称視点から映像コンテンツに登場する撮影対象からの視点である一人称視点に切り替えることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１２７９８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示されたような映像コンテンツをＨＭＤで楽しむ場合と異なり、ＨＭＤを装着したユーザの頭部の動きに連動させて視界を変更する仮想現実（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ  ：  ＶＲ）コンテンツを提供するに当たっては、視点位置を変更する際にエンタテイメント性が損なわれないように留意する必要がある。例えばアクションゲーム等を提供する場合には、ＶＲ空間を自由に動き回れるようにすることが好ましい。しかし、移動に何ら制限を加えない場合、敵キャラクタの後方等に自由に移動できてしまうなど、ゲームを攻略する上での戦略を練る楽しみが失われることが懸念される。
【０００５】
本発明は、仮想空間におけるエンタテイメント性を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
本発明によれば、コンピュータを用いてヘッドマウントディスプレイ（以下、ＨＭＤ）にユーザが没入する仮想空間を提供する方法であって、前記ユーザが没入する仮想空間を定義するステップと、前記仮想空間内の第１位置に、視界領域を決定するための仮想カメラを定義するステップと、前記ユーザの基準視線を特定するステップと、前記基準視線に基づいて、前記仮想カメラの向きを特定するステップと、前記仮想空間のうち、前記視界領域に相当する視界画像を生成し、前記ＨＭＤに出力するステップと、前記仮想カメラの移動先を特定するための移動入力を受け付けるステップと、前記移動入力の経時的状態を特定するステップと、前記経時的状態に基づいて、前記仮想カメラを前記第１位置から前記仮想空間内の第２位置に移動させるステップと、前記第２位置に配置された前記仮想カメラに基づいて前記視界領域を更新するステップと、更新された前記視界領域に基づいて前記視界画像を生成し、前記ＨＭＤに出力するステップと、を含む方法、が提供される。
【発明の効果】
【０００７】
本発明によれば、エンタテイメント性の高い仮想空間を提供し得る。
【図面の簡単な説明】
【０００８】
【図１】本実施形態によるＨＭＤシステムを例示する図である。
【図２】制御回路部のハードウェア構成を例示する図である。
【図３】ＨＭＤを装着しているユーザの視野座標系を例示する図である。
【図４】仮想空間の一例を示すＸＹＺ空間を例示する図である。
【図５】視線方向を決定する方法を例示する図である。
【図６】ＨＭＤシステムに仮想空間を提供させるための、制御回路部の機能を例示するブロック図である。
【図７】ＨＭＤシステムにおいて実行される処理を例示するフローチャートである。
【図８】視界領域をＸ方向から見たＹＺ断面図である。
【図９】視界領域をＹ方向から見たＸＺ断面図である。
【図１０】ＨＭＤシステムにおいて実行される処理を例示するフローチャートである。
【図１１】第１位置に仮想カメラが配置された状態における仮想空間を例示する図である。
【図１２】第１位置に仮想カメラが配置された状態における仮想空間を例示する図である。
【図１３】第２位置に仮想カメラが配置された状態における仮想空間を例示する図である。
【図１４】第２位置に仮想カメラが配置された状態における仮想空間を例示する図である。
【図１５】ＨＭＤシステムにおいて実行される処理を例示するフローチャートである。
【図１６】第１位置に仮想カメラが配置された状態における仮想空間を例示する図である。
【発明を実施するための形態】
【０００９】
［本発明の実施形態の説明］
最初に、本発明の実施形態の内容を列記して説明する。本発明の一実施形態によるＨＭＤを制御するための方法、および、プログラムは、以下のような構成を備える。
（項目１）
コンピュータを用いてヘッドマウントディスプレイ（以下、ＨＭＤ）にユーザが没入する仮想空間を提供する方法であって、
前記ユーザが没入する仮想空間を定義するステップと、
前記仮想空間内の第１位置に、視界領域を決定するための仮想カメラを定義するステップと、
前記ユーザの基準視線を特定するステップと、
前記基準視線に基づいて、前記仮想カメラの向きを特定するステップと、
前記仮想空間のうち、前記視界領域に相当する視界画像を生成し、前記ＨＭＤに出力するステップと、
前記仮想カメラの移動先を特定するための移動入力を受け付けるステップと、
前記移動入力の経時的状態を特定するステップと、
前記経時的状態に基づいて、前記仮想カメラを前記第１位置から前記仮想空間内の第２位置に移動させるステップと、
前記第２位置に配置された前記仮想カメラに基づいて前記視界領域を更新するステップと、
更新された前記視界領域に基づいて前記視界画像を生成し、前記ＨＭＤに出力するステップと、
を含む方法。
本項目の方法によれば、移動入力の経時的状態に基づいて仮想カメラを移動させるため、設定される第２位置の態様によっては、移動入力を行うタイミングを適切に見極める必要がある。例えば、アクションゲーム等においては、移動入力を行う操作が敵キャラクタ等から狙われる隙となり得るため、第２位置を適切に設定し、または、移動入力を行うタイミングを見極める必要がある。従って、エンタテイメント性の高い仮想空間を提供し得る。
（項目２）
前記移動入力は、前記コンピュータに接続されたコントローラからの出力である、
請求項１の方法。
本項目の方法によれば、コントローラを活用してエンタテイメント性の高い仮想空間を提供し得る。
（項目３）
前記出力は、前記コントローラに対する入力が継続された時間を特定する情報を含み、
前記経時的状態は、前記入力が継続された時間であり、
前記第２位置は、前記入力が継続された時間が長いほど、前記第１位置から遠くなるように設定される、
請求項２の方法。
本項目の方法によれば、コントローラを活用してエンタテイメント性の高い仮想空間を提供し得る。
（項目４）
前記出力は、所定時間内に前記コントローラに対する入力が実行された回数を特定する情報を含み、
前記経時的状態は、前記入力が実行された回数であり、
前記第２位置は、前記回数が多いほど、前記第１位置から遠くなるように設定される、
請求項２の方法。
本項目の方法によれば、コントローラを活用してエンタテイメント性の高い仮想空間を提供し得る。
（項目５）
前記ＨＭＤの傾きを検知することにより視界方向を特定するステップ、および／または、前記ユーザの視線方向を特定するステップをさらに含み、
前記基準視線は、前記視界方向および／または前記視線方向に基づいて特定され、
前記移動入力は、前記視界方向または前記視線方向が滞留した時間を特定する情報を含み、
前記経時的状態は、前記視界方向または前記視線方向が滞留した時間であり、
前記第２位置は、前記視界方向または前記視線方向が滞留した時間が長いほど、前記第１位置から遠くなるように設定される、
請求項１〜４のいずれかの方法。
本項目の方法によれば、ユーザが注意を向けた方向をも加味して、エンタテイメント性の高い仮想空間を提供し得る。
（項目６）
前記ＨＭＤの傾きを検知することにより視界方向を特定するステップ、および／または、前記ユーザの視線方向を特定するステップをさらに含み、
前記基準視線は、前記視界方向および／または前記視線方向に基づいて特定され、
前記視界方向または前記視線方向に、前記経時的状態に基づく経時的表示を表示させる、
請求項１〜５のいずれかの方法。
本項目の方法によれば、仮想カメラが移動入力によって移動する方向を、ユーザは経時的表示に基づいて予測することができるため、仮想カメラの移動による映像酔い（所謂、ＶＲ酔い）が緩和され得る。
（項目７）
前記経時的表示を、前記仮想カメラと前記第２位置の間に表示させる、
請求項６の方法。
本項目の方法によれば、仮想カメラの移動による映像酔いが緩和され得る。
（項目８）
前記経時的表示を、前記仮想カメラから前記第２位置に延びるように表示させる、
請求項６または７の方法。
本項目の方法によれば、仮想カメラの移動による映像酔いが緩和され得る。
（項目９）
請求項１〜８のいずれかの方法を、前記コンピュータに実行させるプログラム。
【００１０】
［本発明の実施形態の詳細］
本発明の実施形態に係るＨＭＤを制御するための方法、および、プログラムの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
【００１１】
図１は、ＨＭＤシステム１００を示す。ＨＭＤシステム１００は、ユーザの頭部に装着されるＨＭＤ１１０と、制御回路部１２０と、動きセンサ１３０と、注視センサ１４０と、コントローラ１５０とを備える。
【００１２】
ＨＭＤ１１０は、非透過型の表示装置であるディスプレイ１１２と、センサ部１１４と、注視センサ１４０を含む。制御回路部１２０は、ディスプレイ１１２に右目用画像と左目用画像を表示することにより、両目の視差を利用した３次元画像を仮想空間として提供する。ディスプレイ１１２がユーザの眼前に配置されることによって、ユーザは仮想空間に没入できる。仮想空間は、背景やユーザが操作可能な各種オブジェクト、メニュー画像等を含む。
【００１３】
ディスプレイ１１２は、右目用画像を提供する右目用サブディスプレイと、左目用画像を提供する左目用サブディスプレイを含んでもよい。また、右目用画像と左目用画像を提供できれば、１つの表示装置で構成されていても良い。例えば、表示画像が一方の目にしか認識できないようにするシャッターを高速に切り替えることにより、右目用画像と左目用画像を独立して提供し得る。
【００１４】
制御回路部１２０は、ＨＭＤ１１０に仮想空間を提供させるためのコンピュータである。図２に示すように、制御回路部１２０は、データ伝送路としてのバスで互いに接続されたプロセッサと、メモリと、ストレージと、入出力インターフェースと、通信インターフェースを含む。プロセッサは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＰＵ（Ｍｉｃｒｏ−ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等を含んで構成され、制御回路部１２０およびＨＭＤシステム１００全体の動作を制御する。メモリは主記憶として機能し、プロセッサが処理するプログラムや演算パラメータなどの制御用データを一時的に記憶する。メモリはＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を含んで構成され得る。ストレージは補助記憶として機能し、ＨＭＤシステム１００全体の動作を制御するためのプログラム、各種シミュレーションプログラムやユーザの認証プログラムの他、仮想空間を定義するための各種画像やオブジェクトに関するデータが格納され、さらに、各種データを管理するためのテーブルを含むデータベースが構築されていてもよい。ストレージはフラッシュメモリやＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）等を含んで構成され得る。入出力インターフェースは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子やＤＶＩ（Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）端子やＨＤＭＩ（登録商標）（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子等の各種有線接続端子や、無線接続のための各種処理回路を含んで構成され、ＨＭＤ１１０や動きセンサ１３０を含む各種センサ、コントローラ１５０等を接続する。通信インターフェースは、ネットワークＮＷを介して外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んで構成され、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネットを介して通信するための各種通信規格・プロトコルに適合するように構成されている。
【００１５】
制御回路部１２０は、ストレージに格納された所定のアプリケーションプログラムをメモリにロードして実行することにより、ＨＭＤ１１０のディスプレイ１１２に仮想空間を提示する。また、メモリやストレージには、当該仮想空間内に表示される各種オブジェクトを操作したり、各種メニュー画像等を表示・制御するためのプログラムが格納される。制御回路部１２０はＨＭＤ１１０に搭載されていなくてもよく、別のハードウェア（例えば公知のパーソナルコンピュータ、ネットワークを通じたサーバ・コンピュータ）として構成してもよいし、複数のハードウェアによって１または複数の機能が実装されてもよい。また、制御回路部１２０は、一部の機能のみをＨＭＤ１１０に実装し、残りの機能を別のハードウェアに実装してもよい。
【００１６】
動きセンサ１３０は、ＨＭＤ１１０の位置や傾きに関する情報を検出する。図３は、動きセンサ１３０によって取得されるＨＭＤ１１０の位置や傾きの検知データを例示する。ＨＭＤ１１０を装着したユーザの頭部を中心として、３次元のｕｖｗ視野座標系を規定する。ユーザが直立する垂直方向をヨー方向（ｖ）とし、ヨー方向と直交しディスプレイ１１２の中心とユーザを結ぶ前後方向をロール方向（ｗ）とし、ヨー方向およびロール方向と直交する横方向をピッチ方向（ｕ）とする。これにより、ユーザの３次元空間内における位置および傾きの経時変化が取得される。また、ピッチ方向周りのＨＭＤ１１０の傾き角度としてのピッチ角（θｕ）、ヨー方向周りのＨＭＤ１１０の傾き角度としてのヨー角（θｖ）、ロール方向周りのＨＭＤ１１０の傾き角度としてのロール角（θｗ）が取得される。
【００１７】
動きセンサ１３０は、センサ部１１４と、検知部１３２を含む。センサ部１１４は、複数の光源を含んでもよい。光源は、例えば赤外線を発するＬＥＤである。検知部１３２は例えば赤外線センサであり、光源からの赤外線をＨＭＤ１１０の検知点として検知することで、ユーザの動きに応じたＨＭＤ１１０の現実空間内における位置や角度に関する情報を経時的に検出する。そして、検知部１３２により検出された情報の経時的変化に基づいて、制御回路部１２０はＨＭＤ１１０の位置や角度の時間変化を決定し、ＨＭＤ１１０の動きに関する情報を特定することができる。ＨＭＤ１１０の現実空間内における位置は、検知部１３２で取得される赤外線の光強度や複数の検知点間の相対位置関係（検知点間の距離等）に基づいて、検知部１３２に対する相対位置として特定されてもよく、これに基づいてｕｖｗ視野座標系の原点が特定されてもよい。また、複数の検知点間の相対位置関係に基づいてＨＭＤ１１０の現実空間内における傾きを特定し、ｕｖｗ視野座標系の向きが特定されてもよい。
【００１８】
動きセンサ１３０は、ディスプレイ１１２の近くに固定されたセンサ部１１４と、検知部１３２の、一方のみから構成されてもよい。センサ部１１４が、地磁気センサ、加速度センサ、ジャイロセンサであってもよく、これらの少なくとも１つを用いて、ユーザの頭部に装着されたＨＭＤ１１０の位置および傾きを検出する。これにより、ＨＭＤ１１０の動きに関する情報を検出することができる。例えば、角速度センサは、ＨＭＤ１１０の動きに応じて、ＨＭＤ１１０の３軸回りの角速度を経時的に検出し、各軸回りの角度の時間変化を決定することができる。この場合には、検知部１３２は不要である。また、検知部１３２は光学カメラを含んで構成されても良い。この場合には、画像情報に基づいてＨＭＤ１１０の動きに関する情報を検出することができ、センサ部１１４は不要である。
【００１９】
図４に、制御回路部１２０の制御によって提供される仮想空間２とＨＭＤ１１０（動きセンサ１３０）との関係を示す。仮想空間２は、中心２１の３６０°方向を覆う全天球状に定義される（図４において、上半分の天球のみを例示する）。天球には略正方形または略長方形の複数のメッシュが関連付けられており、映像コンテンツ等の画像がレンダリングされることによって仮想空間２が視認可能に提供される。仮想空間２は、中心２１を原点とするＸＹＺ空間座標系が関連付けられており、各メッシュの仮想空間２における空間情報が特定される。本実施形態では、初期状態において中心２１に仮想カメラ１が配置されており、ＨＭＤ１１０の動きに連動して仮想カメラ１の位置および向きが特定される。従って、ＨＭＤ１１０の現実空間におけるｕｖｗ視野座標系に連動するように、仮想カメラ１の仮想空間２内におけるｕｖｗ視野座標系が定義される。また、ＨＭＤ１１０を装着したユーザの現実空間における移動に連動して、仮想カメラ１を仮想空間２内において移動させてもよい。そして、仮想カメラ１の仮想空間２内における位置及び向きに基づいて、仮想空間２のうちＨＭＤ１１０のディスプレイ１１２に投影されることによってユーザが視認する視界領域２３が特定される。
【００２０】
仮想カメラ１は、右眼用画像を提供する右眼用仮想カメラと、左眼用画像を提供する左眼用仮想カメラを含むことが好ましく、２つの仮想カメラにはユーザが三次元の仮想空間２を認識できるように適切な視差が設定されていることが好ましい。本実施形態においては、このような２つの仮想カメラのロール方向が合成されることによって生成されるロール方向（ｗ）がＨＭＤ１１０のロール方向（ｗ）に適合されるような仮想カメラ１のみを代表して図示、および、説明するものとする。
【００２１】
注視センサ１４０は、ユーザの右目および左目の視線が向けられる方向を検出するアイトラッキング機能を有する。図５に示すように、注視センサ１４０はユーザＵの右目および左目の視線が向けられている方向を検知する。ユーザＵが近くを見ている場合には視線Ｒ１およびＬ１が検知され、両者の交点である注視点Ｎ１が特定される。また、ユーザが遠くを見ている場合には、視線Ｒ１およびＬ１よりロール方向（ｗ）とのなす角が小さい視線Ｒ２およびＬ２が特定される。注視点Ｎ１が特定されると、ユーザＵの視線方向Ｎ０が特定される。視線方向Ｎ０はユーザＵが両目により実際に視線が向けられている方向である。視線方向Ｎ０は、例えばユーザＵの右目Ｒおよび左目Ｌの中心と中心点Ｎ１が通る直線の伸びる方向として定義される。注視センサ１４０はアイトラッキング機能を有する公知のセンサを採用することができ、例えば、右目及び左目に赤外光を照射し、角膜や虹彩からの反射光を取得することにより、眼球の回転角を求めることとしても良い。注視センサ１４０は、右目用センサと左目用センサを備えていることが好ましい。
【００２２】
コントローラ１５０は、制御回路部１２０に対して各種指令を送ることができるように接続されたデバイスであり、有線または無線通信が可能な携帯端末で構成されてもよい。コントローラ１５０は、例えば、スマートフォン、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、タブレット型コンピュータ、ゲーム用コンソール、汎用のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等を適用可能である。コントローラ１５０は、タッチパネルを備えるデバイスであることが好ましく、互いにバス接続されたプロセッサ、メモリ、ストレージ、通信部、表示部と入力部が一体として構成されたタッチパネル、を備える任意の端末が採用され得る。ユーザは、コントローラ１５０のタッチパネルに対し、タップ、スワイプおよびホールドを含む各種タッチ動作を入力することにより、仮想空間２に配置される各種オブジェクトやＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）に対して影響を及ぼすことができる。
【００２３】
ＨＭＤシステム１００はいずれかの要素にマイクやスピーカを備えていても良い。これにより、ユーザは仮想空間２内に対して、音声による指示を与えることができる。また、仮想空間内の仮想テレビにテレビ番組の放送を受信するために、ＨＭＤシステム１００はいずれかの要素にテレビジョン受像機を含んでいても良い。また、ユーザが取得した電子メール等を表示させるための、通信機能等を含んでいても良い。
【００２４】
図６は、ＨＭＤシステム１００に対して仮想空間２を提供するための、制御回路部１２０の機能を示すブロック図である。制御回路部１２０は、主に動きセンサ１３０、注視センサ１４０、コントローラ１５０からの出力データに基づいて、ディスプレイ１１２への出力画像を制御する。制御回路部１２０は、図２に示した各ハードウェアの協働によって、表示制御部２００と、オブジェクト制御部３００と、通信制御部４００と、記憶部５００と、として機能する。表示制御部２００、および、オブジェクト制御部３００は、主としてプロセッサおよびメモリの協働によってその機能が実現され得る。通信制御部４００は、主としてプロセッサ、および、通信インターフェースの協働によってその機能が実現され得る。記憶部５００は、主としてメモリ、および、ストレージの協働によってその機能が実現され得る。
【００２５】
表示制御部２００は、仮想空間定義部２１０と、ＨＭＤ動作検知部２２０と、視界方向特定部２２０ａと、視線検知部２３０と、視線方向特定部２３０ａと、基準視線特定部２４０と、視界領域決定部２５０と、視界画像生成部２６０と、を含む。オブジェクト制御部３００は、仮想カメラ制御部３１０と、キャラクタ制御部３２０と、入力検知部３３０と、経時的表示制御部３４０と、判定部３５０と、描画部３６０と、を含む。通信制御部４００は、外部機器１６０にネットワークＮＷを介して各種データを要求する要求部４１０と、要求部４１０および外部機器との通信を処理する通信処理部４２０とを含む。記憶部５００は、空間情報格納部５１０と、オブジェクト情報格納部５２０と、ユーザ情報管理部５３０とを含む。
【００２６】
図６，図７を参照して、仮想空間２を提供するためにＨＭＤシステム１００において実行される処理を説明する。仮想空間２は、ＨＭＤ１１０および制御回路部１２０の相互作用によって提供され得る。
【００２７】
仮想空間定義部２１０は、ユーザ情報管理部５３０を参照して、ユーザに提供すべき仮想空間２を特定する。そして、仮想空間定義部２１０は空間情報格納部５１０を参照することにより、ユーザが没入する仮想空間２を構成するための仮想空間画像２２に関する仮想空間画像データを特定する（Ｓ１２０−１）。これにより、ユーザが没入する仮想空間２が制御回路部１２０によって定義される。
【００２８】
仮想カメラ制御部１３０は、仮想空間２内における初期位置（図４における中心２１等）に、仮想カメラ１を配置させる。その際、仮想カメラ１はＨＭＤ１１０のｕｖｗ視野座標系に連動させるように仮想カメラ１の向きを設定しても良いし、仮想空間２内の所定の方向を向くように仮想カメラ１の向きを設定してもよい。これにより、仮想空間２において、仮想カメラ１が初期化される（Ｓ１２０−２）。仮想カメラ１のｕｖｗ視野座標系に基づいて、視界領域決定部２５０は後述するように視界領域２３を決定する。視界画像生成部２６０は、仮想空間２の視界領域２３に相当する領域が投影された部分を視界画像として生成し、視界画像データをＨＭＤ１１０に出力する（Ｓ１２０−３）。ＨＭＤ１１０はこれを受信すると、ディスプレイ１１２に視界画像を表示される（Ｓ１１２−１）。
【００２９】
ユーザからＨＭＤ１１０に移動や傾きといった動作が入力されると、動きセンサ１３０によってＨＭＤ１１０の位置や傾きが検知される（Ｓ１３０−１）。動きセンサ１３０の動き検知データは制御回路部１２０に送信され、ＨＭＤ動作検出部２２０により、ＨＭＤ１１０の位置情報や傾き情報が受け付けられる。視界方向特定部２２０ａは、ＨＭＤ１１０の位置情報や傾き情報に基づいてｕｖｗ視野座標系を特定し、ロール方向（ｗ）を視界方向として特定する（Ｓ１２０−４）。
【００３０】
注視センサ１４０がユーザの左右の目の視線を検出すると（Ｓ１４０−１）、当該情報が制御回路部１２０に送信される。視線検知部２３０は、右目および左目の視線が向けられる方向を特定し、ユーザが実際に注視している視線方向Ｎ０が特定される（Ｓ１２０−５）。
【００３１】
基準視線特定部２４０は、視界方向、または、視線方向Ｎ０を基準視線５として特定する（Ｓ１２０−６）。本実施形態においては、視界方向を基準視線５として特定することとする。基準視線５の位置（基点）、または、向きが、仮想カメラ１の初期状態から変動している場合には、変動後の基準視線５に基づいて、仮想カメラ１の向きおよび位置（第１位置）を決定する（Ｓ１２０−７）。
【００３２】
視界領域決定部２５０は、仮想カメラ１の向きおよび位置に基づいて、視界領域２３を決定する（Ｓ１２０−８）。図４に示すように、視界領域２３は仮想空間２のうちＨＭＤ１１０を装着するユーザの視界を構成する部分である。視界領域２３は基準視線５に基づいて定められる。
【００３３】
図８は視界領域２３をＸ方向から見たＹＺ断面図であり、図９は視界領域２３をＹ方向から見たＸＺ断面図である。視界領域２３は、基準視線５と仮想空間画像２２のＹＺ断面によって定義される範囲である第１領域２４（図８参照）と、基準視線５と仮想空間画像２２のＸＺ断面によって定義される範囲である第２領域２５（図９参照）とを有する。第１領域２４は、基準視線５を中心として極角αを含む範囲として設定される。第２領域２５は、基準視線５を中心として方位角βを含む範囲として設定される。
【００３４】
視界画像生成部２６０は、視界領域２３に基づいて視界画像２６を生成し、ディスプレイ１１２に出力する（Ｓ１２０−９）。ＨＭＤ１１０は視野画像データを受信し、ディスプレイ１１２に表示される視野画像を更新する（Ｓ１１２−２）。
【００３５】
図６、および、図１０以降を参照して、ユーザに提供される仮想空間２の具体例、および、当該仮想空間２をユーザに提供するためにＨＭＤシステム１００において実行される処理を例示する。図１０，図１５は、ＨＭＤシステム１００において実行される処理を例示するフローチャートである。図１１〜図１４，図１６は、（ａ）に視界画像を示し、（ｂ）に当該視界画像を生成するための仮想カメラ１の位置および向きを示す。本実施形態において、ＨＭＤシステム１００においてアクションゲームの一場面としての仮想空間２を例示する。ユーザは仮想空間２内の木オブジェクトＴＯを活用して身を隠しながら、銃等の武器を用いて敵キャラクタＥＣを討伐することを目的とするものとする。ユーザはＨＭＤ１１０を介して、敵キャラクタＥＣを討伐するキャラクタの１人称視点を体験できるものである。この場合、ユーザが体験するプレイヤキャラクタの位置が仮想カメラ１の位置と同視される。
【００３６】
図１１において、（ｂ）に図示されるように、仮想カメラ１は第１位置Ｐ１に配置されている。この場合、視界画像ＶＧ１には、敵キャラクタＥＣと、２つの木オブジェクトＴＯと、背景となる仮想空間画像２２のうち視界領域２３に含まれる部分が含まれる。
【００３７】
ユーザは、敵キャラクタＥＣを木オブジェクトＴＯの陰から討伐することを目指すものとする。この場合、ユーザはプレイヤキャラクタ（即ち、本実施形態においては仮想カメラ１）を移動させるための操作をコントローラ１５０に対して入力する。コントローラ１５０は、当該操作を受け付けると、操作情報を制御回路部１２０に出力する（Ｓ１５０−１）。
【００３８】
コントローラ１５０から出力される操作情報は、操作入力の経時的状態を特定するための情報を含む。例えば、コントローラ１５０に対して入力された操作が、コントローラ１５０のタッチパネルに対する継続的な接触操作や、ゲーム用コンソールの所定のボタンに対する長押し操作である場合には、経時的状態は当該接触操作や長押し操作が継続された時間である。コントローラ１５０に対して入力された操作が、コントローラ１５０のタッチパネルに対する連続的なタップ操作や、ゲーム用コンソールの所定のボタンに対する連続的な押下操作である場合には、経時的状態は当該タップ操作や押下操作が所定時間内に入力された回数である。
【００３９】
制御回路部１２０がコントローラ１５０からの上記出力を受信すると、入力検知部３３０は当該出力を移動入力として受け付ける（Ｓ１２０−１０）。判定部３５０は、当該移動入力に含まれる経時的状態を特定する（Ｓ１２０−１１）。経時的表示制御部３４０は、経時的状態に基づいて、図１２中（ｂ）に示すような経時的表示ＴＤ１を生成する。描画部３６０は視界画像ＶＧ１に経時的表示ＴＤ１が含まれるように視界画像ＶＧ１を生成し、ＨＭＤ１１０に出力する（Ｓ１２０−１２）。ＨＭＤ１１０はこれを受信してディスプレイ１１２に表示させることにより、視界画像ＶＧ１を更新する（Ｓ１１０−１）。
【００４０】
判定部３５０は、移動入力に含まれる経時的状態に基づいて、仮想カメラ１の移動先となる第２位置Ｐ２を特定する（Ｓ１２０−１３）。本実施形態において、経時的状態が、コントローラ１５０に対する操作入力が継続された時間であると特定された場合には、当該継続された時間に基づいて第２位置Ｐ２が特定される。具体的には、当該継続された時間が長いほど第２位置Ｐ２が第１位置Ｐ１から遠くなるように設定され、継続された時間に対して比例的に遠くなるようにされても良いし、指数関数的に遠くなるようにされても良いし、継続された時間が長くなるほど遠くなる変化量が減少するようにされていても良い。経時的状態が、コントローラ１５０に対する操作入力が所定時間内に入力された回数であると特定された場合には、当該入力された回数に基づいて第２位置Ｐ２が特定される。具体的には、当該継入力された回数が多いほど第２位置Ｐ２が第１位置Ｐ１から遠くなるように設定され、入力された回数に対して比例的に遠くなるようにされても良いし、指数関数的に遠くなるようにされても良いし、入力された回数が多くなるほど遠くなる変化量が減少するようにされていても良い。
【００４１】
また、判定部３５０は、第２位置Ｐ２の方向を、基準視線５に基づいて特定してもよい。具体的には、図１２に示されるように、第２位置Ｐ２の方向を視界方向に基づいて特定してもよい。この場合、プレイヤキャラクタが陸上を歩行または走行するなどして移動するキャラクタである場合には、視界方向をＸＹ面に投影し、第２位置Ｐ２の方向を特定することが好ましい。プレイヤキャラクタが飛行可能である場合には、視界方向に向けて第２位置Ｐ２の方向を特定してもよい。
【００４２】
このようにして第２位置Ｐ２が特定された場合、経時的表示制御部３４０は、経時的表示ＴＤ１を仮想カメラ１の位置（即ち、第１位置Ｐ１）と第２位置Ｐ２の間に表示させることが好ましい。特に、経時的表示制御部３４０は、図１２に示されるように棒状の経時的表示ＴＤ１が仮想カメラ１から第２位置Ｐ２へと延びるように表示させることが好ましい。これにより、ユーザはコントローラ１５０に対して移動するための操作を入力した結果、プレイヤキャラクタ（仮想カメラ１）が移動する移動先を容易に把握することができる。また、後述するように仮想カメラ１を第２位置Ｐ２に移動させる際に、視界が移動する方向をユーザは予測することが可能になるため、仮想カメラ１の移動による映像酔い（所謂、ＶＲ酔い）が緩和され得る。
【００４３】
図１３に示されるように、仮想カメラ制御部３１０は、仮想カメラ１を現在位置（第１位置Ｐ１）から第２位置Ｐ２に移動させる。そして、基準視線特定部２４０は、前述したようにＨＭＤ１１０の動きを検知することによって基準視線５を特定する（Ｓ１２０−１４）。この場合、基準視線５の基点は第２位置Ｐ２であり、基準視線５の向きはＨＭＤ１１０の傾きに基づいて決定される。これにより、仮想カメラ１の位置、および向きに基づいてｕｖｗ視界座標系が特定される。視界領域決定部２５０は、前述したように基準視線５に基づいて視界領域２３を特定する。視界画像生成部２６０は、前述したように視界領域２３に基づいて視界画像ＶＧ１を生成し、ＨＭＤ１１０に出力する（Ｓ１２０−１５）。ＨＭＤ１１０はこれを受信してディスプレイ１１２に表示させることにより、視界画像ＶＧ１を視界画像ＶＧ２に更新する（Ｓ１１０−２）。
【００４４】
なお、仮想カメラ１が第１位置Ｐ１から第２位置Ｐ２に移動させる過渡期においては、ＨＭＤ１１０の動作と視野画像ＶＧ１の更新動作が一致しないため、ユーザがＶＲ酔いを起こす恐れがある。従って、当該過渡期においても、仮想カメラ１の少なくとも向きについてはＨＭＤ１１０の動きに連動させることが好ましい。また、当該過渡期においては、視界画像ＶＧ１からユーザが視認する情報量を低減させる処理（解像度を低下させる、ブラーをかける、輝度を低下させる、明るさを低下させる、視界の一部に目隠しをする、等）を実行させてもよい。
【００４５】
第２位置Ｐ２に仮想カメラ１が移動されたら、ユーザはＨＭＤ１１０を動かすことにより、図１４に示されるように視界画像ＶＧ’に敵キャラクタＥＣを収めるとよい。そして、武器の照準Ｓを敵キャラクタＥＣに合わせて、攻撃動作を実行する。ユーザはプレイヤキャラクタを木オブジェクトＴＯの陰に配置することによって、敵キャラクタＥＣに気づかれることを防止しつつ、敵キャラクタＥＣを討伐できる。
【００４６】
本実施形態における移動入力は、上述したコントローラ１５０から出力された操作情報に限定されず、ＨＭＤ１１０から出力された視界方向および／または視線方向を含んでいてもよい。図１５は、ＨＭＤ１１０からの出力に基づいて仮想カメラの移動先を特定する場合の、ＨＭＤシステム１００に実行される処理を示す。図１０と概ね共通する処理については破線で示し、重複する説明を繰り返さない。
【００４７】
図１５に示されるように、入力検知部３３０はコントローラ１５０からの操作情報を受け付けることにより、ＨＭＤ１１０から出力される視界方向および／または視線方向を、移動入力として受け付けるように設定する（Ｓ１５０−１）。また、入力検知部３３０は、ＨＭＤ１１０において検出された視界方向および／または視線方向に関するデータを受け付ける（Ｓ１１０−３）。本実施形態においては、ＨＭＤ１１０の傾きに応じて特定される視界方向に基づいて基準視線５を決定し、視線方向Ｎ０を移動入力として受け付ける場合を例示して説明する。
【００４８】
ＨＭＤ１１０から出力される視線検知データは、当該視線方向の経時的状態を特定するための情報を含む。視線検知部２３０は、右眼および左眼の視線が向けられた方向に関するデータを受信すると、視線方向特定部２３０ａが前述のように視線方向Ｎ０を特定する。さらに、判定部３５０は、視線方向Ｎ０が所定方向に滞留した時間を特定する（Ｓ１２０−１６）。これにより、入力検知部３３０は、コントローラ１５０からの操作情報、および、視線情報を、移動入力として受け付ける（Ｓ１２０−１７）。
【００４９】
判定部３５０は、視線方向Ｎ０が所定方向に滞留した時間を、移動入力の経時的状態として特定する（Ｓ１２０−１８）。経時的表示制御部３４０は、当該経時的状態に基づいて、図１６中（ｂ）に示すような経時的表示ＴＤ２を生成する。描画部３６０は視界画像ＶＧ３に経時的表示ＴＤ２が含まれるように視界画像ＶＧ３を生成し、ＨＭＤ１１０に出力する（Ｓ１２０−１９）。ＨＭＤ１１０はこれを受信してディスプレイ１１２に表示させることにより、視界画像ＶＧ３を更新する（Ｓ１１０−１）。
【００５０】
判定部３５０は、移動入力に含まれる経時的状態に基づいて、仮想カメラ１の移動先となる第２位置Ｐ２を特定する（Ｓ１２０−１３）。本実施形態において、視線方向Ｎ０が所定方向に滞留した時間に基づいて第２位置Ｐ２が特定される。具体的には、当該滞留した時間が長いほど第２位置Ｐ２が第１位置Ｐ１から遠くなるように設定され、滞留した時間に対して比例的に遠くなるようにされても良いし、指数関数的に遠くなるようにされても良いし、滞留した時間が長くなるほど遠くなる変化量が減少するようにされていても良い。
【００５１】
判定部３５０は、第２位置Ｐ２の方向を、視線方向Ｎ０に基づいて特定する。具体的には、図１６に示されるように、視界画像ＶＧ３を基準視線５（本例においては、視界方向）に基づいて生成するとともに、第２位置Ｐ２の方向を視線方向Ｎ０に基づいて特定する。これにより、ユーザは視界画像ＶＧ３内における任意の位置を、視線の移動によって仮想カメラ１の移動先として指定することができる。
【００５２】
なお、本例においては図１２に示した例と比較して、第１位置Ｐ１と第２位置Ｐ２との間の距離が大きくなるように設定されている。即ち、視線方向Ｎ０の滞留時間を長くすることにより、一度の移動入力操作により、遠くのまで仮想カメラ１を移動させることができる。しかし、この場合には移動させるための操作を入力するために多くの時間を要するため、本実施形態におけるアクションゲームのような形態においては、敵キャラクタＥＣに対して隙を作ることとなってしまう。図１６中の（ａ）においては、これによりプレイヤキャラクタが敵キャラクタＥＣからの攻撃を受けてしまった場合が示されている。このように、移動入力の経時的状態に基づいて仮想カメラ１を移動させることにより、設定される第２位置Ｐ２の態様によっては、移動入力を行うタイミングを適切に見極める必要がある。従って、本実施形態によれば、エンタテイメント性の高い仮想空間を提供し得る。
【００５３】
以上、本発明の実施の形態について説明したが、本発明は上記実施形態に限定されるものではない。前述の請求項に記載されるこの発明の精神及び範囲から逸脱することなく、様々な実施形態の変更がなされ得ることを当業者は理解するであろう。
【００５４】
例えば、上述の実施形態においては、基準視線５が視界方向に基づいて特定される例を説明したが、基準視線５は視線方向によって特定されてもよい。また、視線方向によって視界領域２３が特定された上で、視界方向に基づいて第２位置Ｐ２の方向が特定されるようにしてもよい。
【符号の説明】
【００５５】
１００…ヘッドマウントディスプレイ（ＨＭＤ）システム、１１０…ＨＭＤ、１１２…ディスプレイ、１１４…センサ部、１２０…制御回路部、１３０…動きセンサ、１３２…検知部、１４０…注視センサ、１５０…コントローラ、２００…表示制御部、３００…オブジェクト制御部、４００・・・通信制御部、５００…記憶部、１…仮想カメラ、２…仮想空間、５…基準視線、２２…仮想空間画像、２３…視界領域、ＶＧ１〜３…視界画像、ＴＤ１〜２…経時的表示。
【図１】
2017162309.tif 000003
【図２】
2017162309.tif 000004
【図３】
2017162309.tif 000005
【図４】
2017162309.tif 000006
【図５】
2017162309.tif 000007
【図６】
2017162309.tif 000008
【図７】
2017162309.tif 000009
【図８】
2017162309.tif 000010
【図９】
2017162309.tif 000011
【図１０】
2017162309.tif 000012
【図１１】
2017162309.tif 000013
【図１２】
2017162309.tif 000014
【図１３】
2017162309.tif 000015
【図１４】
2017162309.tif 000016
【図１５】
2017162309.tif 000017
【図１６】
2017162309.tif 000018
【手続補正書】
【提出日】平成28年11月15日(2016.11.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータを用いてヘッドマウントディスプレイ（以下、ＨＭＤ）にユーザが没入する仮想空間を提供する方法であって、
前記ユーザが没入する仮想空間を定義するステップと、
前記仮想空間内の第１位置に、視界領域を決定するための仮想カメラを定義するステップと、
前記ユーザの基準視線を特定するステップと、
前記基準視線に基づいて、前記仮想カメラの向きを特定するステップと、
前記仮想空間のうち、前記視界領域に相当する視界画像を生成し、前記ＨＭＤに出力するステップと、
前記仮想カメラの移動先を特定するための移動入力を受け付けるステップと、
前記移動入力の経時的状態を特定するステップと、
前記経時的状態に基づいて、前記仮想カメラを前記第１位置から前記仮想空間内の第２位置に移動させるステップと、
前記第２位置に配置された前記仮想カメラに基づいて前記視界領域を更新するステップと、
更新された前記視界領域に基づいて前記視界画像を生成し、前記ＨＭＤに出力するステップと、
を含み、
前記ＨＭＤの傾きを検知することにより視界方向を特定するステップ、および／または、前記ユーザの視線方向を特定するステップをさらに含み、
前記基準視線は、前記視界方向および／または前記視線方向に基づいて特定され、
前記移動入力は、前記視界方向または前記視線方向が滞留した時間を特定する情報を含み、
前記経時的状態は、前記視界方向または前記視線方向が滞留した時間であり、
前記第２位置は、前記視界方向または前記視線方向が滞留した時間が長いほど、前記第１位置から遠くなるように設定される、
方法
【請求項２】
前記移動入力は、前記コンピュータに接続されたコントローラからの出力である、
請求項１の方法。
【請求項３】
前記出力は、前記コントローラに対する入力が継続された時間を特定するための情報を含み、
前記経時的状態は、前記入力が継続された時間であり、
前記第２位置は、前記入力が継続された時間が長いほど、前記第１位置から遠くなるように設定される、
請求項２の方法。
【請求項４】
前記出力は、所定時間内に前記コントローラに対する入力が実行された回数を特定するための情報を含み、
前記経時的状態は、前記入力が実行された回数であり、
前記第２位置は、前記回数が多いほど、前記第１位置から遠くなるように設定される、
請求項２の方法。
【請求項５】
前記ＨＭＤの傾きを検知することにより視界方向を特定するステップ、および／または、前記ユーザの視線方向を特定するステップをさらに含み、
前記基準視線は、前記視界方向および／または前記視線方向に基づいて特定され、
前記視界方向または前記視線方向に、前記経時的状態に基づく経時的表示を表示させる、
請求項１〜４のいずれかの方法。
【請求項６】
前記経時的表示を、前記仮想カメラと前記第２位置の間に表示させる、
請求項５の方法。
【請求項７】
前記経時的表示を、前記仮想カメラから前記第２位置に延びるように表示させる、
請求項５または６の方法。
【請求項８】
請求項１〜７のいずれかの方法を、前記コンピュータに実行させるプログラム。