(57)【要約】      （修正有）【課題】イベントの発生によるユーザ移動体の状態の変化を起因とする不具合の発生を抑制できるシミュレーションシステム及びプログラムを提供する。【解決手段】シミュレーションシステムは、仮想空間設定部は、仮想空間の設定処理を行う。移動体処理部は、実空間のユーザに対応する仮想空間のユーザ移動体を、仮想空間において移動させる。表示処理部は、仮想空間において仮想カメラから見える画像として、ユーザが視界を覆うように装着するＨＭＤの表示画像を生成する。イベント処理部は、ユーザ移動体の状態が所与の状態へと変化するイベントが発生したか否かを判断する。仮想空間設定部は、イベントが発生すると判断された場合に、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える。報知処理部は、切り替え処理が行われたことを条件に、ユーザの周囲に報知範囲を設定して、報知範囲をユーザに知らせる。【選択図】図２６
2019175323.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間の設定処理を行う仮想空間設定部と、
ユーザが移動可能な実空間の前記ユーザに対応する前記仮想空間のユーザ移動体を、前記仮想空間において移動させる処理を行う移動体処理部と、
イベントの処理を行うイベント処理部と、
前記ユーザに対する報知処理を行う報知処理部と、
前記仮想空間において仮想カメラから見える画像として、前記ユーザが視界を覆うように装着する頭部装着型表示装置の表示画像を生成する表示処理部と、
を含み、
前記イベント処理部は、
前記ユーザ移動体の状態が所与の状態へと変化するイベントが発生したか否かを判断し、
前記仮想空間設定部は、
前記イベントが発生すると判断された場合に、前記実空間での座標のスケールと前記仮想空間での座標のスケールとの対応関係を切り替える切り替え処理を行い、
前記報知処理部は、
前記切り替え処理が行われたことを条件に、前記ユーザの周囲に報知範囲を設定して、前記報知範囲を前記ユーザに知らせるため前記報知処理を行うことを特徴とするシミュレーションシステム。
【請求項２】
請求項１において、
前記報知処理部は、
前記実空間での前記ユーザの位置情報に基づいて前記報知範囲を設定し、前記ユーザが前記報知範囲を超えたと判定された場合に、前記報知処理を行うことを特徴とするシミュレーションシステム。
【請求項３】
請求項１において、
前記報知処理部は、
前記仮想空間での前記ユーザ移動体の位置情報に基づいて前記報知範囲を設定することを特徴とするシミュレーションシステム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記仮想空間設定部は、
前記イベントとして、前記ユーザ移動体のサイズを第１のサイズから第２のサイズに変化させるイベントが発生した場合に、前記切り替え処理を行い、
前記報知処理部は、
前記報知処理として、前記ユーザ移動体のサイズを前記第２のサイズから前記第１のサイズに戻す処理を行うことを特徴とするシミュレーションシステム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記報知処理部は、
音、振動又は画像を用いて前記報知処理を行うことを特徴とするシミュレーションシステム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記報知処理部は、
前記報知範囲をリアルタイムに変化させることを特徴とするシミュレーションシステム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記報知処理部は、
前記切り替え処理が行われていない場合には、前記実空間での前記ユーザの位置が報知境界に接近したときに、前記仮想空間において前記報知境界の対応位置に、報知オブジェクトを配置する前記報知処理を行い、前記切り替え処理が行われている場合には、前記実空間での前記ユーザの位置が前記報知境界に接近したときに、前記仮想空間において前記報知境界の前記対応位置とは異なる位置に、前記報知オブジェクトを配置する前記報知処理を行うことを特徴とするシミュレーションシステム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記仮想空間設定部は、
前記イベントが発生すると判断された場合は、前記ユーザ移動体のローカル座標系から前記仮想空間のワールド座標系への座標変換の際に縮小又は拡大のスケール変換を行うことを特徴とするシミュレーションシステム。
【請求項９】
請求項１乃至７のいずれかにおいて、
前記仮想空間設定部は、
前記イベントが発生すると判断された場合は、前記ユーザ移動体が移動する前記仮想空間を、第１の仮想空間から、前記第１の仮想空間とは座標軸のスケールが異なる第２の仮想空間に切り替えることを特徴とするシミュレーションシステム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記仮想空間設定部は、
前記イベントとして、前記ユーザ移動体のサイズを変化させるイベントが発生した場合に、前記切り替え処理を行うことを特徴とするシミュレーションシステム。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
前記イベント処理部は、
前記ユーザの行動情報、他のユーザの行動情報、及びゲーム状況の少なくとも１つに基づいて、前記イベントが発生したか否かを判断することを特徴とするシミュレーションシステム。
【請求項１２】
請求項１乃至１１のいずれかにおいて、
前記実空間での前記ユーザの視点情報のトラッキング情報を取得する情報取得部を含み、
前記表示処理部は、
前記視点情報の前記トラッキング情報に基づき前記ユーザの視点変化に追従するように制御される前記仮想カメラから見える画像を、前記頭部装着型表示装置の表示画像として生成することを特徴とするシミュレーションシステム。
【請求項１３】
仮想空間の設定処理を行う仮想空間設定部と、
ユーザが移動可能な実空間の前記ユーザに対応する前記仮想空間のユーザ移動体を、前記仮想空間において移動させる処理を行う移動体処理部と、
イベントの処理を行うイベント処理部と、
前記ユーザに対する報知処理を行う報知処理部と、
前記仮想空間において仮想カメラから見える画像として、前記ユーザが視界を覆うように装着する頭部装着型表示装置の表示画像を生成する表示処理部として、
コンピュータを機能させ、
前記イベント処理部は、
前記ユーザ移動体の状態が所与の状態へと変化するイベントが発生したか否かを判断し、
前記仮想空間設定部は、
前記イベントが発生すると判断された場合に、前記実空間での座標のスケールと前記仮想空間での座標のスケールとの対応関係を切り替える切り替え処理を行い、
前記報知処理部は、
前記切り替え処理が行われたことを条件に、前記ユーザの周囲に報知範囲を設定して、前記報知範囲を前記ユーザに知らせるため前記報知処理を行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションシステム及びプログラム等に関する。
【背景技術】
【０００２】
従来より、仮想空間において仮想カメラから見える画像を生成するシミュレーションシステムが知られている。例えば仮想カメラから見える画像をＨＭＤ（頭部装着型表示装置）に表示して、バーチャルリアリティ（ＶＲ）を実現するシミュレーションシステムの従来技術としては、特許文献１等に開示される技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−３０９２６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このようなシミュレーションシステムでは、あたかも仮想空間の世界に入り込んだかのような仮想現実をユーザに感じさせるために、実空間のユーザに対応するユーザ移動体を仮想空間に登場させる。具体的には実空間のユーザの視点に対応する仮想カメラを仮想空間内に設定し、当該仮想カメラから見える画像をＨＭＤに表示する。この仮想カメラは仮想空間のユーザ移動体の視点に対応している。そして、これまでのシミュレーションシステムでは、実空間のユーザの視点と仮想空間のユーザ移動体の視点（仮想カメラ）は、対応した視点になっており、例えば実空間と同じ視点状態での画像がＨＭＤに表示される。このため、仮想空間において見える画像は、実空間と同じ見え方の画像にしかならず、ユーザ移動体の状態の変化を反映させた仮想空間の画像を表示することはできなかった。
【０００５】
また、仮想空間のユーザ移動体の状態が変化するイベントが発生した場合に、ユーザに対して何ら報知を行わないと、様々な不具合が生じるおそれがあることが判明した。
【０００６】
本発明の幾つかの態様によれば、イベントの発生によるユーザ移動体の状態の変化を起因とする不具合の発生を抑制できるシミュレーションシステム及びプログラム等を提供できる。
【課題を解決するための手段】
【０００７】
本発明の一態様は、仮想空間の設定処理を行う仮想空間設定部と、ユーザが移動可能な実空間のユーザに対応する前記仮想空間のユーザ移動体を、前記仮想空間において移動させる処理を行う移動体処理部と、イベントの処理を行うイベント処理部と、前記ユーザに対する報知処理を行う報知処理部と、前記仮想空間において仮想カメラから見える画像として、前記ユーザが視界を覆うように装着する頭部装着型表示装置の表示画像を生成する表示処理部と、を含み、前記イベント処理部は、前記ユーザ移動体の状態が所与の状態へと変化するイベントが発生したか否かを判断し、前記仮想空間設定部は、前記イベントが発生すると判断された場合に、前記実空間での座標のスケールと前記仮想空間での座標のスケールとの対応関係を切り替える切り替え処理を行い、前記報知処理部は、前記切り替え処理が行われたことを条件に、ユーザの周囲に報知範囲を設定して、前記報知範囲を前記ユーザに知らせるため前記報知処理を行うシミュレーションシステムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【０００８】
本発明の一態様によれば、仮想空間が設定され、ユーザ移動体が移動する仮想空間において仮想カメラから見える画像が、頭部装着型表示装置の表示画像として生成される。そしてユーザ移動体の状態が所与の状態へと変化するイベントが発生すると判断されると、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える処理が実行される。このようにすれば、イベントの発生によりユーザ移動体の状態が変化したことを、座標のスケールの対応関係を切り替えるという処理により、頭部装着型表示装置の表示画像に反映させることが可能になる。そしてイベントの発生により当該切り替え処理が行われたことを条件に、ユーザの周囲に報知範囲が設定され、報知範囲をユーザに知らせるため報知処理が行われる。例えばイベントの発生によりユーザ移動体の状態が変化すると、実空間のユーザと仮想空間のユーザ移動体との間の位置関係にズレが生じる場合があり、ユーザが大きく移動すると、様々な不具合が生じる可能性がある。この点、本発明の一態様によれば、ユーザの移動範囲が、報知範囲内に留まるように、ユーザの行動を抑制できるようになる。従って、イベントの発生によるユーザ移動体の状態の変化を起因とする不具合の発生を抑制することが可能になる。
【０００９】
また本発明の一態様では、前記報知処理部は、前記実空間での前記ユーザの位置情報に基づいて前記報知範囲を設定し、前記ユーザが前記報知範囲を超えたと判定された場合に、前記報知処理を行ってもよい。
【００１０】
このようにすれば、報知範囲を越えようとしていたユーザは、報知処理が行われることで、報知範囲を越えて移動するのを躊躇するようになり、報知範囲内に留まるようにユーザを促すことが可能になる。
【００１１】
また本発明の一態様では、前記報知処理部は、前記仮想空間での前記ユーザ移動体の位置情報に基づいて前記報知範囲を設定してもよい。
【００１２】
このようにすれば、仮想空間でのユーザ移動体の周囲に報知範囲を設定することが可能になる。
【００１３】
また本発明の一態様では、前記仮想空間設定部は、前記イベントとして、前記ユーザ移動体のサイズを第１のサイズから第２のサイズに変化させるイベントが発生した場合に、前記切り替え処理を行い、前記報知処理部は、前記報知処理として、前記ユーザ移動体のサイズを前記第２のサイズから前記第１のサイズに戻す処理を行ってもよい。
【００１４】
このようにすれば、ユーザ移動体のサイズを第２のサイズから元の第１のサイズに戻すことで、報知範囲をユーザに対して効果的に知らせることが可能になる。
【００１５】
また本発明の一態様では、前記報知処理部は、音、振動又は画像を用いて前記報知処理を行ってもよい。
【００１６】
このようにすれば、音、振動又は画像を用いて、報知範囲をユーザに対して効果的に知らせることが可能になる。
【００１７】
また本発明の一態様では、前記報知処理部は、前記報知範囲をリアルタイムに変化させてもよい。
【００１８】
このようにすれば、ユーザの状況、他のユーザの状況、ユーザの周囲の状況、或いはゲーム状況などに応じた報知範囲の設定が可能になる。
【００１９】
また本発明の一態様では、前記切り替え処理が行われていない場合には、前記実空間での前記ユーザの位置が報知境界に接近したときに、前記仮想空間において前記報知境界の対応位置に、報知オブジェクトを配置する前記報知処理を行い、前記切り替え処理が行われている場合には、前記実空間での前記ユーザの位置が前記報知境界に接近したときに、前記仮想空間において前記報知境界の前記対応位置とは異なる位置に、前記報知オブジェクトを配置する前記報知処理を行ってもよい。
【００２０】
このようにすれば、切り替え処理が行われていない場合には、ユーザが報知境界に接近したときに、仮想空間において報知境界の対応位置に報知オブジェクトが配置されて、表示されるようになる。一方、ユーザ移動体の状態が変化するイベントにより切り替え処理が行われた場合には、ユーザが報知境界に接近したときに、報知境界の対応位置とは異なる位置に、報知オブジェクトが配置されて、表示されるようになる。これにより、イベントの発生によるユーザ移動体の状態の変化を起因とする不具合の発生を抑制することが可能になる。
【００２１】
また本発明の一態様では、前記仮想空間設定部は、前記イベントが発生すると判断された場合は、前記ユーザ移動体のローカル座標系から前記仮想空間のワールド座標系への座標変換の際に縮小又は拡大のスケール変換を行ってもよい。
【００２２】
このようにすれば、ワールド座標系への座標変換の際に縮小又は拡大のスケール変換を行うという簡素な処理で、イベントの発生によるユーザ移動体の状態の変化を、頭部装着型表示装置の表示画像に反映させることが可能になる。
【００２３】
また本発明の一態様では、前記仮想空間設定部は、前記イベントが発生すると判断された場合は、前記ユーザ移動体が移動する前記仮想空間を、第１の仮想空間から、前記第１の仮想空間とは座標軸のスケールが異なる第２の仮想空間に切り替えてもよい。
【００２４】
このようにすれば、ユーザ移動体が移動する仮想空間を第１の仮想空間から第２の仮想空間に切り替える処理により、イベントの発生によるユーザ移動体の状態の変化を、頭部装着型表示装置の表示画像に反映させることが可能になる。
【００２５】
また本発明の一態様では、前記仮想空間設定部は、前記イベントとして、前記ユーザ移動体のサイズを変化させるイベントが発生した場合に、前記切り替え処理を行ってもよい。
【００２６】
このようにすれば、ユーザ移動体のサイズが小さくなったり或いは大きくなったりする仮想現実を、ユーザに体験させることが可能になる。
【００２７】
また本発明の一態様では、前記イベント処理部は、前記ユーザの行動情報、他のユーザの行動情報、及びゲーム状況の少なくとも１つに基づいて、前記イベントが発生したか否かを判断してもよい。
【００２８】
このようにすれば、ユーザの行動、他のユーザの行動、或いはゲーム状況に応じて、ユーザ移動体を所与の状態に変化させるイベントを発生し、そのイベントの発生によるユーザ移動体の状態の変化をユーザに仮想体験させることが可能になる。
【００２９】
また本発明の一態様では、前記実空間での前記ユーザの視点情報のトラッキング情報を取得する情報取得部を含み（情報取得部としてコンピュータを機能させ）、前記表示処理部は、前記視点情報の前記トラッキング情報に基づき前記ユーザの視点変化に追従するように制御される前記仮想カメラから見える画像を、前記頭部装着型表示装置の表示画像として生成してもよい。
【００３０】
このようにすれば、実空間でのユーザの視点変化を反映させた仮想カメラの制御が可能になり、仮想空間の世界に入り込んだかのような仮想現実感をユーザに与えることが可能になる。
【図面の簡単な説明】
【００３１】
【図１】本実施形態のシミュレーションシステムの構成例を示すブロック図。
【図２】図２（Ａ）、図２（Ｂ）は本実施形態に用いられるＨＭＤの一例。
【図３】図３（Ａ）、図３（Ｂ）は本実施形態に用いられるＨＭＤの他の例。
【図４】シミュレーションシステムのプレイフィールドを説明する斜視図。
【図５】本実施形態により生成される仮想空間画像の例。
【図６】ユーザキャラクタのサイズ変化イベントの説明図。
【図７】ユーザキャラクタのサイズ変化イベントの説明図。
【図８】ユーザキャラクタのサイズ変化イベントの説明図。
【図９】イベント発生時にＨＭＤに表示される画像の例。
【図１０】イベント発生時にＨＭＤに表示される画像の例。
【図１１】イベント発生時にＨＭＤに表示される画像の例。
【図１２】座標スケールの切り替え処理の説明図。
【図１３】座標スケールの切り替え処理の説明図。
【図１４】座標スケールの切り替え処理の説明図。
【図１５】座標スケールの切り替え処理の他の例の説明図。
【図１６】図１６（Ａ）、図１６（Ｂ）はユーザの行動又は他のユーザの行動に基づきイベントを発生する処理の説明図。
【図１７】図１７（Ａ）〜図１７（Ｃ）はイベント発生時に生じる不具合についての説明図。
【図１８】報知範囲の設定処理についての説明図。
【図１９】図１９（Ａ）、図１９（Ｂ）はユーザが報知範囲を越えた場合の報知処理についての説明図。
【図２０】ユーザキャラクタに報知範囲を設定する処理の説明図。
【図２１】図２１（Ａ）、図２１（Ｂ）は報知範囲をリアルタイムに変化させる処理の説明図。
【図２２】報知境界の設定処理の説明図。
【図２３】報知境界を越えた場合に表示される報知画像の例。
【図２４】図２４（Ａ）、図２４（Ｂ）はユーザキャラクタのサイズの変化により生じる不具合の説明図。
【図２５】図２５（Ａ）、図２５（Ｂ）は報知オブジェクトの配置処理の説明図。
【図２６】本実施形態の詳細な処理例を示すフローチャート。
【発明を実施するための形態】
【００３２】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３３】
１．シミュレーションシステム
図１は、本実施形態のシミュレーションシステム（シミュレータ、ゲームシステム、画像生成システム）の構成例を示すブロック図である。本実施形態のシミュレーションシステムは例えばバーチャルリアリティ（ＶＲ）をシミュレートするシステムであり、ゲームコンテンツを提供するゲームシステム、スポーツ競技シミュレータや運転シミュレータなどのリアルタイムシミュレーションシステム、ＳＮＳのサービスを提供するシステム、映像等のコンテンツを提供するコンテンツ提供システム、或いは遠隔作業を実現するオペレーティングシステムなどの種々のシステムに適用可能である。なお、本実施形態のシミュレーションシステムは図１の構成に限定されず、その構成要素（各部）の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００３４】
操作部１６０は、ユーザ（プレーヤ）が種々の操作情報（入力情報）を入力するためのものである。操作部１６０は、例えば操作ボタン、方向指示キー、ジョイスティック、ハンドル、ペダル、レバー又は音声入力装置等の種々の操作デバイスにより実現できる。
【００３５】
記憶部１７０は各種の情報を記憶する。記憶部１７０は、処理部１００や通信部１９６などのワーク領域として機能する。ゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。記憶部１７０の機能は、半導体メモリ（ＤＲＡＭ、ＶＲＡＭ）、ＨＤＤ（ハードディスクドライブ）、ＳＳＤ、光ディスク装置などにより実現できる。記憶部１７０は、オブジェクト情報記憶部１７２、描画バッファ１７８を含む。
【００３６】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＢＤ、ＣＤ）、ＨＤＤ、或いは半導体メモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータ（入力装置、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００３７】
ＨＭＤ２００（頭部装着型表示装置）は、ユーザの頭部に装着されて、ユーザの眼前に画像を表示する装置である。ＨＭＤ２００は非透過型であることが望ましいが、透過型であってもよい。またＨＭＤ２００は、いわゆるメガネタイプのＨＭＤであってもよい。
【００３８】
ＨＭＤ２００は、センサ部２１０、表示部２２０、処理部２４０を含む。なおＨＭＤ２００に発光素子を設ける変形実施も可能である。センサ部２１０は、例えばヘッドトラッキングなどのトラッキング処理を実現するためものである。例えばセンサ部２１０を用いたトラッキング処理により、ＨＭＤ２００の位置、方向を特定する。ＨＭＤ２００の位置、方向が特定されることで、ユーザの視点位置、視線方向を特定できる。
【００３９】
トラッキング方式としては種々の方式を採用できる。トラッキング方式の一例である第１のトラッキング方式では、後述の図２（Ａ）、図２（Ｂ）で詳細に説明するように、センサ部２１０として複数の受光素子（フォトダイオード等）を設ける。そして外部に設けられた発光素子（ＬＥＤ等）からの光（レーザー等）をこれらの複数の受光素子により受光することで、現実世界の３次元空間でのＨＭＤ２００（ユーザの頭部）の位置、方向を特定する。第２のトラッキング方式では、後述の図３（Ａ）、図３（Ｂ）で詳細に説明するように、複数の発光素子（ＬＥＤ）をＨＭＤ２００に設ける。そして、これらの複数の発光素子からの光を、外部に設けられた撮像部で撮像することで、ＨＭＤ２００の位置、方向を特定する。第３の方式では、センサ部２１０としてモーションセンサを設け、このモーションセンサを用いてＨＭＤ２００の位置、方向を特定する。モーションセンサは例えば加速度センサやジャイロセンサなどにより実現できる。例えば３軸の加速度センサと３軸のジャイロセンサを用いた６軸のモーションセンサを用いることで、現実世界の３次元空間でのＨＭＤ２００の位置、方向を特定できる。なお、第１のトラッキング方式と第２のトラッキング方式の組合わせ、或いは第１のトラッキング方式と第３のトラッキング方式の組合わせなどにより、ＨＭＤ２００の位置、方向を特定してもよい。またＨＭＤ２００の位置、方向を特定することでユーザの視点位置、視線方向を特定するのではなく、ユーザの視点位置、視線方向を直接に特定するトラッキング処理を採用してもよい。
【００４０】
ＨＭＤ２００の表示部２２０は例えば有機ＥＬディスプレイ（ＯＥＬ）や液晶ディスプレイ（ＬＣＤ）などにより実現できる。例えばＨＭＤ２００の表示部２２０には、ユーザの左眼の前に設定される第１のディスプレイ又は第１の表示領域と、右眼の前に設定される第２のディスプレイ又は第２の表示領域が設けられており、立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左眼用画像と右眼用画像を生成し、第１のディスプレイに左眼用画像を表示し、第２のディスプレイに右眼用画像を表示する。或いは１つのディスプレイの第１の表示領域に左眼用画像を表示し、第２の表示領域に右眼用画像を表示する。またＨＭＤ２００には左眼用、右眼用の２つの接眼レンズ（魚眼レンズ）が設けられており、これによりユーザの視界の全周囲に亘って広がるＶＲ空間が表現される。そして接眼レンズ等の光学系で生じる歪みを補正するための補正処理が、左眼用画像、右眼用画像に対して行われる。この補正処理は表示処理部１２０が行う。
【００４１】
ＨＭＤ２００の処理部２４０は、ＨＭＤ２００において必要な各種の処理を行う。例えば処理部２４０は、センサ部２１０の制御処理や表示部２２０の表示制御処理などを行う。また処理部２４０が、３次元音響（立体音響）処理を行って、３次元的な音の方向や距離や広がりの再現を実現してもよい。
【００４２】
音出力部１９２は、本実施形態により生成された音を出力するものであり、例えばスピーカー又はヘッドホン等により実現できる。
【００４３】
Ｉ／Ｆ（インターフェース）部１９４は、携帯型情報記憶媒体１９５とのインターフェース処理を行うものであり、その機能はＩ／Ｆ処理用のＡＳＩＣなどにより実現できる。携帯型情報記憶媒体１９５は、ユーザが各種の情報を保存するためのものであり、電源が非供給になった場合にもこれらの情報の記憶を保持する記憶装置である。携帯型情報記憶媒体１９５は、ＩＣカード（メモリカード）、ＵＳＢメモリ、或いは磁気カードなどにより実現できる。
【００４４】
通信部１９６は、有線や無線のネットワークを介して外部（他の装置）との間で通信を行うものであり、その機能は、通信用ＡＳＩＣ又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【００４５】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバ（ホスト装置）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０）に配信してもよい。このようなサーバ（ホスト装置）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００４６】
処理部１００（プロセッサ）は、操作部１６０からの操作情報や、ＨＭＤ２００でのトラッキング情報（ＨＭＤの位置及び方向の少なくとも一方の情報。視点位置及び視線方向の少なくとも一方の情報）や、プログラムなどに基づいて、ゲーム処理（シミュレーション処理）、仮想空間設定処理、移動体処理、仮想カメラ制御処理、表示処理、或いは音処理などを行う。
【００４７】
処理部１００の各部が行う本実施形態の各処理（各機能）はプロセッサ（ハードウェアを含むプロセッサ）により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリにより実現できる。プロセッサは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。例えば、プロセッサはハードウェアを含み、そのハードウェアは、デジタル信号を処理する回路及びアナログ信号を処理する回路の少なくとも一方を含むことができる。例えば、プロセッサは、回路基板に実装された１又は複数の回路装置（例えばＩＣ等）や、１又は複数の回路素子（例えば抵抗、キャパシター等）で構成することもできる。プロセッサは、例えばＣＰＵ（Central Processing Unit）であってもよい。但し、プロセッサはＣＰＵに限定されるものではなく、ＧＰＵ（Graphics Processing Unit）、或いはＤＳＰ（Digital Signal Processor）等、各種のプロセッサを用いることが可能である。またプロセッサはＡＳＩＣによるハードウェア回路であってもよい。またプロセッサは、アナログ信号を処理するアンプ回路やフィルター回路等を含んでもよい。メモリ（記憶部１７０）は、ＳＲＡＭ、ＤＲＡＭ等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置（ＨＤＤ）等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部１００の各部の処理（機能）が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
【００４８】
処理部１００は、入力処理部１０２、演算処理部１１０、出力処理部１４０を含む。演算処理部１１０は、情報取得部１１１、仮想空間設定部１１２、移動体処理部１１３、仮想カメラ制御部１１４、ゲーム処理部１１５、イベント処理部１１６、報知処理部１１７、表示処理部１２０、音処理部１３０を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ（或いはプロセッサ及びメモリ）により実現できる。なお、これらの構成要素（各部）の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００４９】
入力処理部１０２は、操作情報やトラッキング情報を受け付ける処理や、記憶部１７０から情報を読み出す処理や、通信部１９６を介して情報を受信する処理を、入力処理として行う。例えば入力処理部１０２は、操作部１６０を用いてユーザが入力した操作情報やＨＭＤ２００のセンサ部２１０等により検出されたトラッキング情報を取得する処理や、読み出し命令で指定された情報を、記憶部１７０から読み出す処理や、外部装置（サーバ等）からネットワークを介して情報を受信する処理を、入力処理として行う。ここで受信処理は、通信部１９６に情報の受信を指示したり、通信部１９６が受信した情報を取得して記憶部１７０に書き込む処理などである。
【００５０】
演算処理部１１０は、各種の演算処理を行う。例えば情報取得処理、仮想空間設定処理、移動体処理、仮想カメラ制御処理、ゲーム処理（シミュレーション処理）、イベント処理、報知処理、表示処理、或いは音処理などの演算処理を行う。
【００５１】
情報取得部１１１（情報取得処理のプログラムモジュール）は種々の情報の取得処理を行う。例えば情報取得部１１１は、ＨＭＤ２００を装着するユーザの位置情報などを取得する。情報取得部１１１はユーザの方向情報などを取得してもよい。
【００５２】
仮想空間設定部１１２（仮想空間設定処理のプログラムモジュール）は、オブジェクトが配置される仮想空間（オブジェクト空間）の設定処理を行う。例えば、移動体（人、ロボット、車、電車、飛行機、船、モンスター又は動物等）、マップ（地形）、建物、観客席、コース（道路）、樹木、壁、水面などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）を仮想空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のオブジェクト情報記憶部１７２には、仮想空間でのオブジェクト（パーツオブジェクト）の位置、回転角度、移動速度、移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。仮想空間設定部１１２は、例えば各フレーム毎にこのオブジェクト情報を更新する処理などを行う。
【００５３】
移動体処理部１１３（移動体処理のプログラムモジュール）は、仮想空間内で移動する移動体についての種々の処理を行う。例えば仮想空間（オブジェクト空間、ゲーム空間）において移動体を移動させる処理や、移動体を動作させる処理を行う。例えば移動体処理部１１３は、操作部１６０によりユーザが入力した操作情報や、取得されたトラッキング情報や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、移動体（モデルオブジェクト）を仮想空間内で移動させたり、移動体を動作（モーション、アニメーション）させる制御処理を行う。具体的には、移動体の移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（例えば１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。移動体は、例えば実空間のユーザ（プレーヤ）に対応するユーザ移動体である。ユーザ移動体は、仮想空間の仮想ユーザ（仮想プレーヤ、アバター）や、或いは当該仮想ユーザが搭乗（操作）する搭乗移動体（操作移動体）などである。
【００５４】
仮想カメラ制御部１１４（仮想カメラ制御処理のプログラムモジュール）は、仮想カメラの制御を行う。例えば、操作部１６０により入力されたユーザの操作情報やトラッキング情報などに基づいて、仮想カメラを制御する処理を行う。
【００５５】
例えば仮想カメラ制御部１１４は、ユーザの一人称視点又は三人称視点として設定される仮想カメラの制御を行う。例えば仮想空間において移動するユーザ移動体の視点（一人称視点）に対応する位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置（位置座標）や姿勢（回転軸回りでの回転角度）を制御する。或いは、ユーザ移動体に追従する視点（三人称視点）の位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置や姿勢を制御する。
【００５６】
例えば仮想カメラ制御部１１４は、視点トラッキングにより取得されたユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御する。例えば本実施形態では、ユーザの視点位置、視線方向の少なくとも１つである視点情報のトラッキング情報（視点トラッキング情報）が取得される。このトラッキング情報は、例えばＨＭＤ２００のトラッキング処理を行うことで取得できる。そして仮想カメラ制御部１１４は、取得されたトラッキング情報（ユーザの視点位置及び視線方向の少なくとも一方の情報）に基づいて仮想カメラの視点位置、視線方向を変化させる。例えば、仮想カメラ制御部１１４は、実空間でのユーザの視点位置、視線方向の変化に応じて、仮想空間での仮想カメラの視点位置、視線方向（位置、姿勢）が変化するように、仮想カメラを設定する。このようにすることで、ユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御できる。
【００５７】
ゲーム処理部１１５（ゲーム処理のプログラムモジュール）は、ユーザがゲームをプレイするための種々のゲーム処理を行う。別の言い方をすれば、ゲーム処理部１１５（シミュレーション処理部）は、ユーザが仮想現実（バーチャルリアリティ）を体験するための種々のシミュレーション処理を実行する。ゲーム処理は、例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、開始したゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、或いはゲーム成績を演算する処理などである。
【００５８】
イベント処理部１１６（イベント処理のプログラムモジュール）はイベントに関する各種の処理を行う。報知処理部１１７（報知処理のプログラムモジュール）は各種の報知処理を行う。例えばユーザに対する警告の報知処理などを行う。報知処理は、例えば画像や音による報知処理であってもよいし、振動デバイスや音響や空気砲などの体感装置を用いた報知処理であってもよい。
【００５９】
表示処理部１２０（表示処理のプログラムモジュール）は、ゲーム画像（シミュレーション画像）の表示処理を行う。例えば処理部１００で行われる種々の処理（ゲーム処理、シミュレーション処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部２２０に表示する。具体的には、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を、描画バッファ１７８（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画する。これにより、仮想空間において仮想カメラ（所与の視点。左眼用、右眼用の第１、第２の視点）から見える画像が生成される。なお、表示処理部１２０で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
【００６０】
音処理部１３０（音処理のプログラムモジュール）は、処理部１００で行われる種々の処理の結果に基づいて音処理を行う。具体的には、楽曲（音楽、ＢＧＭ）、効果音、又は音声などのゲーム音を生成し、ゲーム音を音出力部１９２に出力させる。なお音処理部１３０の音処理の一部（例えば３次元音響処理）を、ＨＭＤ２００の処理部２４０により実現してもよい。
【００６１】
出力処理部１４０は各種の情報の出力処理を行う。例えば出力処理部１４０は、記憶部１７０に情報を書き込む処理や、通信部１９６を介して情報を送信する処理を、出力処理として行う。例えば出力処理部１４０は、書き込み命令で指定された情報を、記憶部１７０に書き込む処理や、外部の装置（サーバ等）に対してネットワークを介して情報を送信する処理を行う。送信処理は、通信部１９６に情報の送信を指示したり、送信する情報を通信部１９６に指示する処理などである。
【００６２】
そして本実施形態のシミュレーションシステムは、図１に示すように、仮想空間設定部１１２と、移動体処理部１１３と、イベント処理部１１６と、報知処理部１１７と、表示処理部１２０を含む。
【００６３】
仮想空間設定部１１２は、仮想空間の設定処理を行う。例えばユーザに対応するユーザ移動体のオブジェクトや、敵等の相手の移動体のオブジェクトや、マップや背景を構成するオブジェクトを、仮想空間に配置設定する処理を行う。ユーザに対応するユーザ移動体は、例えばユーザが操作部１６０により操作する移動体や、実空間でのユーザの移動に追従して仮想空間において移動する移動体である。このユーザ移動体は、例えばキャラクタやアバターと呼ばれるものである。ユーザ移動体は、ユーザが搭乗するロボット等の搭乗移動体であってもよい。またユーザ移動体は、その画像が表示される表示物であってもよいし、画像が表示されない仮想的なものであってもよい。例えば仮想空間の画像として一人称視点の画像が表示される場合等には、ユーザ移動体は非表示であってもよいし、ユーザ移動体の一部の部位（例えば手、胸又は顔等）だけが表示されるものであってもよい。
【００６４】
移動体処理部１１３は、ユーザが移動可能な実空間のユーザに対応する仮想空間のユーザ移動体（仮想カメラ）を、仮想空間において移動させる処理を行う。例えば、ユーザが操作部１６０により入力した操作情報に基づいて、仮想空間においてユーザ移動体を移動させる。或いは、情報取得部１１１が、実空間でのユーザの位置情報を取得する場合には、移動体処理部１１３は、取得された位置情報（視点トラッキング情報）に基づいて、仮想空間においてユーザ移動体を移動させる処理を行う。例えば、実空間でのユーザの移動に追従して移動するように、仮想空間においてユーザ移動体を移動させる。例えばユーザ移動体の移動速度や移動加速度に基づいて、ユーザ移動体の位置等をフレーム毎に更新する処理を行って、ユーザ移動体を仮想空間（仮想フィールド）において移動させる。
【００６５】
イベント処理部１１６はイベントの処理を行う。例えばユーザに対応する仮想空間のユーザ移動体について発生する各種のイベントの処理を行う。
【００６６】
表示処理部１２０（描画処理部）は、仮想空間の画像（オブジェクト）の描画処理を行う。例えば表示処理部１２０は、仮想空間において仮想カメラ（所与の視点）から見える画像として、ユーザが視界を覆うように装着するＨＭＤ２００の表示画像を生成する。例えばユーザキャラクタ（アバター）等のユーザ移動体の視点（一人称視点）に設定された仮想カメラから見える画像の描画処理を行う。或いは、ユーザ移動体に追従する視点（三人称視点）に設定された仮想カメラから見える画像の描画処理を行う。生成される画像は、例えば左眼用画像、右眼用画像などの立体視用の画像であることが望ましい。
【００６７】
そしてイベント処理部１１６は、ユーザ移動体の状態が所与の状態へと変化するイベントが発生したか否かを判断する。ユーザ移動体の状態は例えばユーザ移動体のサイズの状態であり、別の言い方をすればユーザ移動体の視点（視点位置、視線方向）の状態である。この場合には、発生するイベントは、ユーザ移動体のサイズが所与のサイズに変化するサイズ変化イベント（視点状態変化イベント）である。例えばイベントは、ユーザ移動体のサイズが小さくなったり、或いは大きくなったりするイベントである。なお、イベントは、ユーザ移動体の形状や外観などが変化するイベントや、ユーザ移動体の周囲の環境状況が変化するイベントであってもよい。
【００６８】
そして仮想空間設定部１１２は、イベントが発生すると判断された場合に、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える切り替え処理を行う。例えば実空間の座標系と仮想空間の座標系を対応づける際に縮小又は拡大のスケール変換を行う。具体的には仮想空間設定部１１２は、イベントが発生すると判断された場合に、実空間での位置座標についてのスケールと仮想空間での位置座標についてのスケールとの対応関係を切り替える。或いは実空間の座標軸のスケールと仮想空間の座標軸のスケールとの対応関係を切り替える。座標のスケールは、例えば座標空間（実空間、仮想空間）での長さ（位置座標又は座標軸）の尺度（目盛り）を表すものである。実空間での座標のスケールと仮想空間での座標のスケールとの対応関係は、例えば実空間での１ｍの長さが、仮想空間においてどのような長さに対応するかについての関係である。例えば座標のスケールの第１の対応関係（通常の対応関係）では、実空間での１ｍの長さが、仮想空間においても１ｍ（略１ｍ）になる。一方、座標のスケールの第２の対応関係では、実空間での１ｍの長さが、仮想空間では１ｍよりも短くなる（例えば１０ｃｍ）。座標のスケールの第３の対応関係では、実空間での１ｍの長さが、仮想空間では１ｍよりも長くなる（例えば１０ｍ）。仮想空間設定部１１２は、ユーザ移動体の状態が所与の状態へと変化するイベントが発生すると、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を、例えば第１の対応関係から第２の対応関係に切り替えたり、第１の対応関係から第３の対応関係に切り替えたり、第２の対応関係から第３の対応関係に切り替える。
【００６９】
そして本実施形態では報知処理部１１７は、上述した座標のスケールの対応関係の切り替え処理が行われたことを条件に、ユーザの周囲に報知範囲を設定する。例えば切り替え処理用に用意された報知範囲を、ユーザの周囲に設定する。この場合にユーザに対応するユーザ移動体の周囲に対しても、ユーザが当該範囲を視覚的に認識するための報知範囲を設定するようにしてもよい。例えば報知処理部１１７は、ユーザ移動体の状態が所与の状態に変化するイベントが発生すると判断された場合に、報知範囲を設定する。そして報知範囲をユーザに知らせるため報知処理を行う。本実施形態では、切り替え処理が行われたことを条件に報知範囲を設定するため、例えば座標のスケールの対応関係の切り替え処理が行われていない場合には、報知範囲を設定しない。そして座標のスケールの対応関係の切り替え処理が行われたことを条件に報知範囲を設定して、報知範囲を用いた報知処理を行う。例えば報知処理部１１７は、座標のスケールの対応関係の切り替え処理が行われた後、報知処理の発動条件が成立した場合に、報知処理を行う。
【００７０】
報知範囲は、座標のスケールの対応関係の切り替え処理用（イベントの発生用）に用意された所与の範囲の領域であり、例えば実空間のユーザの位置情報を基準にして設定される。例えば報知範囲は、実空間のユーザの位置を内包するように設定される。そして報知処理部１１７は、視覚、聴覚又は触覚等により報知範囲をユーザが認識できるようにする報知処理を行う。なお仮想空間のユーザ移動体の位置情報を基準に報知範囲を設定する変形実施も可能である。
【００７１】
例えば報知処理部１１７は、実空間でのユーザの位置情報に基づいて報知範囲を設定する。例えば実空間のユーザの位置を内包するように報知範囲を設定する。一例としてはユーザの位置が中央位置になるように報知範囲を設定する。そして報知処理部１１７は、ユーザが報知範囲を超えたと判定した場合に、報知処理を行う。例えばユーザの位置が報知範囲に内包されなくなった場合に報知範囲を超えたと判定する。報知処理部１１７は、ユーザが報知範囲を超えることで、報知処理の発動条件が成立すると、報知処理を行う。そしてユーザが報知範囲を超えていることを視覚、聴覚又は触覚等によりユーザが認識できるようにする報知処理を行う。報知範囲の形状は任意であり、例えば実空間のユーザの位置を内包するような円形状、楕円形状、或いは多角形形状（三角形状、四角形形状）などの種々の形状を採用できる。また報知範囲の形状は立体形状であってもよい。
【００７２】
なお報知処理部１１７は、仮想空間でのユーザ移動体の位置情報に基づいて報知範囲を設定してもよい。例えば仮想空間のユーザ移動体の位置を内包するように報知範囲を設定する。一例としてはユーザ移動体の位置が中央位置になるように報知範囲を設定する。そして報知処理部１１７は、ユーザ移動体が報知範囲を超えたと判定した場合に、報知処理を行う。
【００７３】
また仮想空間設定部１１２は、イベントとして、ユーザ移動体のサイズを第１のサイズから第２のサイズに変化させるイベントが発生した場合に、上述した座標のスケールの対応関係の切り替え処理を行う。第２のサイズは、例えば第１のサイズよりも小さいサイズである。なお第２のサイズは第１のサイズよりも大きいサイズであってもよい。そして報知処理部１１７は、報知処理として、ユーザ移動体のサイズを第２のサイズから第１のサイズに戻す処理を行う。即ち、ユーザ移動体のサイズを第１のサイズから第２のサイズに変化させるイベントにより、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える処理が行われる。報知処理部１１７は、このような切り替え処理が行われた場合に、切り替え時用の報知範囲を設定する。そして、例えばユーザが報知範囲を超えるなどして、報知処理の発動条件が成立すると、イベントの発生により第１のサイズから第２のサイズに変化したユーザ移動体のサイズを、第２のサイズに戻す報知処理を行う。例えばサイズ変化のイベントを強制終了する報知処理を行う。ユーザは、第１のサイズから第２のサイズに変化したユーザ移動体が、第２のサイズに戻って、イベントが強制終了することで、自身が報知範囲を超えたことを認識できるようになる。
【００７４】
また報知処理部１１７は、音、振動又は画像を用いて報知処理を行ってもよい。例えば警告音、警告を知らせる振動、又は警告画像を用いて報知処理を行う。具体的には、報知処理部１１７は、音出力部１９２により報知音を出力させることで、報知処理を行う。或いは操作部１６０やゲームフィールドに設けられる振動デバイスを振動させることで、報知処理を行う。或いは、ＨＭＤ２００に警告用の画像を表示することで、報知処理を行う。報知処理部１１７は、空気砲などの体感装置を用いた報知処理を行ってもよい。
【００７５】
また報知処理部１１７は、報知範囲をリアルタイムに変化させてもよい。例えばユーザ又は他のユーザの状況に応じて、報知範囲を変化させる。或いはユーザ移動体又は他のユーザに対応する他ユーザ移動体の状況に応じて、報知範囲を変化させる。例えばユーザ、他のユーザ、ユーザ移動体又の他ユーザ移動体の行動の状況、環境の状況などに応じて、報知範囲を変化させる。別の言い方をすればゲーム状況に応じて報知範囲を変化させる。
【００７６】
また報知処理部１１７は、座標のスケールの対応関係の切り替え処理が行われていない場合には、実空間でのユーザの位置が報知境界に接近したときに（越えたときに）、仮想空間において報知境界の対応位置に、報知オブジェクトを配置する報知処理を行う。これにより、報知境界の対応位置に報知オブジェクトが配置されて、報知オブジェクトによる報知画像が表示されるようになる。一方、報知処理部１１７は、座標のスケールの対応関係の切り替え処理が行われた場合には、実空間でのユーザの位置が報知境界に接近したときに（越えたときに）、仮想空間において報知境界の対応位置とは異なる位置に、報知オブジェクトを配置する報知処理を行う。これにより、報知境界の対応位置とは異なる位置に報知オブジェクトが配置されて、報知オブジェクトによる報知画像が表示されるようになる。ここで、報知境界の対応位置は、報知境界により報知する必要がある現実世界の物体や境界に対応する仮想空間の位置である。報知境界の対応位置とは異なる位置は、ユーザ移動体から見て、報知境界の対応位置よりも例えば手前側の位置である。
【００７７】
例えば本実施形態では、プレイフィールドを仕切る壁等の仕切り部材の内側に報知境界を設定する。そして、座標のスケールの対応関係の切り替え処理が行われていない場合には、実空間でのユーザの位置が、壁等の仕切り部材の内側に設定された報知境界に接近したときに（報知境界を越えたときに）、仮想空間での報知境界の対応位置に、報知オブジェクトを配置する。例えば壁等の仕切り部材の位置に対応する仮想空間の位置に、報知オブジェクトを配置する。そして当該報知オブジェクトによる報知画像により、報知境界の警告等を行う。こうすることで、ユーザが仕切り部材にぶつかってしまう事態を防止できる。一方、座標のスケールの対応関係の切り替え処理が行われた場合には、実空間でのユーザの位置が、報知境界に接近したときに（報知境界を越えたときに）、仮想空間での報知境界の対応位置とは異なる位置に報知オブジェクトを配置する。例えば、報知境界の対応位置よりも手前側の位置に、報知オブジェクトを配置する。そして当該報知オブジェクトによる報知画像により、報知境界の警告等を行う。こうすることで、例えば座標のスケールの対応関係の切り替え処理により、仮想空間でのユーザ移動体の移動距離の方が、実空間でのユーザの移動距離よりも短くなった場合等において、ユーザが仕切り部材にぶつかってしまうような事態を防止できるようになる。
【００７８】
また仮想空間設定部１１２は、座標のスケールの対応関係の切り替え処理として、以下に説明するような処理を行う。具体的には仮想空間設定部１１２は、イベントが発生すると判断された場合は、ユーザ移動体のローカル座標系から仮想空間のワールド座標系への座標変換の際に縮小又は拡大のスケール変換を行う。例えばユーザ移動体のローカル座標系を仮想空間のワールド座標系に対応づける際に縮小又は拡大のスケール変換を行う。これによりユーザ移動体に対応するオブジェクト（キャラクタオブジェクト、ＨＭＤオブジェクト）を縮小又は拡大するスケール変換を行ったり、当該オブジェクトの移動距離を縮小又は拡大するスケール変換を行うことが可能になる。ローカル座標系からワールド座標系への座標変換（モデリング変換）を行うことで、ユーザ移動体に対応するオブジェクトについての位置座標をローカル座標系の位置座標からワールド座標系への位置座標に変換できる。スケール変換は、例えば位置座標にスケール係数を乗算する変換処理である。
【００７９】
例えば仮想空間設定部１１２は、ユーザの左眼の視点に対応する左眼用の仮想カメラと、ユーザの右眼の視点に対応する右眼用の仮想カメラを、仮想空間に配置設定する。実空間のＨＭＤ２００に対応する仮想空間のＨＭＤオブジェクトは、これらの左眼用の仮想カメラと右眼用の仮想カメラにより構成されるオブジェクトである。このＨＭＤオブジェクトは、上述したユーザ移動体に対応するオブジェクトである。仮想空間設定部１１２は、このＨＭＤオブジェクトを縮小又は拡大するスケーリング変換を行う。これによりＨＭＤ２００を装着したユーザは、あたかも自分自身のサイズが小さくなったり或いは大きくなったかのような仮想現実を体験できるようになる。例えば仮想空間設定部１１２は、上述のスケール変換により、実空間のユーザの左眼、右眼の視点の位置座標のスケールと、仮想空間の左眼用、右眼用の仮想カメラの位置座標のスケールとの対応関係を切り替える。例えば通常の対応関係である第１の対応関係では、ユーザの左眼、右眼の視点の位置座標のスケールと、左眼用、右眼用の仮想カメラの位置座標のスケールは同じになっている。そして仮想空間設定部１１２は、イベントが発生すると、この第１の対応関係から、左眼用、右眼用の仮想カメラの位置が低くなり、左眼用、右眼用の仮想カメラ間の距離が短くなる第２の対応関係に切り替える。こうすることで、ユーザ移動体のサイズが小さくなったときに見える画像を、ＨＭＤ２００の表示画像として生成できるようになる。或いは、仮想空間設定部１１２は、イベントが発生すると、この第１の対応関係から、左眼用、右眼用の仮想カメラの位置が高くなり、左眼用、右眼用の仮想カメラ間の距離が長くなる第３の対応関係に切り替える。こうすることで、ユーザ移動体のサイズが大きくなったときに見える画像を、ＨＭＤ２００の表示画像として生成できるようになる。
【００８０】
或いは仮想空間設定部１１２は、イベントが発生すると判断された場合は、ユーザ移動体が移動する仮想空間を、第１の仮想空間から、第１の仮想空間とは座標軸のスケールが異なる第２の仮想空間に切り替える。第１の仮想空間は、例えば実空間と同じ広さの座標空間となっている。一方、第２の仮想空間は、実空間よりも広い座標空間であったり、或いは実空間よりも狭い座標空間になる。例えば仮想空間設定部１１２は、イベントが発生すると判断された場合に、第１の仮想空間から、実空間よりも広い座標空間である第２の仮想空間に切り替える。この際にユーザ移動体のサイズについては変化させない。こうすることで、第２の仮想空間に対するユーザ移動体の相対的なサイズが小さくなるため、ユーザ移動体のサイズが小さくなったときに見える画像を、ＨＭＤ２００の表示画像として生成できるようになる。或いは、仮想空間設定部１１２は、イベントが発生すると判断された場合に、第１の仮想空間から、実空間よりも狭い座標空間である第２の仮想空間に切り替える。この際にユーザ移動体のサイズについては変化させない。こうすることで、第２の仮想空間に対するユーザ移動体の相対的なサイズが大きくなるため、ユーザ移動体のサイズが大きくなったときに見える画像を、ＨＭＤ２００の表示画像として生成できるようになる。
【００８１】
また仮想空間設定部１１２は、イベントとして、ユーザ移動体のサイズを変化させるイベントが発生した場合に、上記の切り替え処理を行う。例えば仮想空間設定部１１２は、ユーザ移動体のサイズを小さいサイズに変化させるイベントが発生した場合に、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える処理を行う。例えば実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を、上述の第１の対応関係から第２の対応関係に切り替える。或いは仮想空間設定部１１２は、ユーザ移動体のサイズを大きいサイズに変化させるイベントが発生した場合に、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える処理を行う。例えば実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を、上述の第１の対応関係から第３の対応関係に切り替える。
【００８２】
なおユーザ移動体の状態が所与の状態へと変化するイベントとしては、ユーザ移動体のサイズの変更イベント、ユーザ移動体の変形イベント、異なる種類の移動体への変更イベント（変身）、或いはユーザ移動体の視点や視線の変更イベントなどがある。
【００８３】
またイベント処理部１１６は、ユーザの行動情報、他のユーザの行動情報、及びゲームの状況の少なくとも１つに基づいて、イベントが発生したか否かを判断する。ユーザや他のユーザの行動情報は、例えばユーザや他のユーザが操作部１６０を操作することによる操作情報や、ユーザや他のユーザの部位の動きを検出するセンサからの検出情報などに基づき取得できる。例えばイベント処理部１１６は、ユーザが、操作部１６０であるゲームコントローラや手等の部位を、自身の方に向けたり、他のユーザが、ゲームコントローラや手等の部位を、ユーザの方に向けたことが検出された場合に、イベントが発生したと判断する。或いは、イベント処理部１１６は、ゲーム状況に基づいてイベントが発生したか否かを判断する。ゲーム状況は、例えばユーザ移動体の行動の状況、ユーザ移動体の環境の状況（ユーザ移動体が移動するマップの状況、ユーザ移動体の周囲の状況、或いは時刻等の時間情報の状況）、或いはゲームの進行状況などである。例えばイベント処理部１１６は、ユーザ移動体のサイズを第１のサイズから第２のサイズに変化させた後、実空間でのユーザの位置と仮想空間でのユーザ移動体の対応位置との間にズレが生じると判定した場合に、ユーザ移動体のサイズを第２のサイズから元の第１のサイズに戻すイベントを発生させる。
【００８４】
また図１に示すように本実施形態のシミュレーションシステムは情報取得部１１１を含む。情報取得部１１１は、実空間でのユーザの視点情報（視点位置や視線方向）のトラッキング情報を取得する。そして表示処理部１２０は、視点情報のトラッキング情報に基づきユーザの視点変化に追従するように制御される仮想カメラから見える画像を、ＨＭＤ２００の表示画像として生成する。例えば情報取得部１１１は、ユーザの視点位置、視線方向の少なくとも１つである視点情報のトラッキング情報（視点トラッキング情報）を取得する。このトラッキング情報は、例えばＨＭＤ２００のトラッキング処理を行うことで取得できる。なおトラッキング処理によりユーザの視点位置、視線方向を直接に取得するようにしてもよい。一例としては、トラッキング情報は、ユーザの初期視点位置からの視点位置の変化情報（視点位置の座標の変化値）、及び、ユーザの初期視線方向からの視線方向の変化情報（視線方向の回転軸回りでの回転角度の変化値）の少なくとも一方を含むことができる。このようなトラッキング情報が含む視点情報の変化情報に基づいて、ユーザの視点位置や視線方向（ユーザの頭部の位置、姿勢の情報）を特定できる。
【００８５】
そして仮想カメラ制御部１１４は、取得された視点情報のトラッキング情報に基づいて仮想カメラを制御する。即ち仮想カメラ制御部１１４は、ユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御する。そして表示処理部１２０は、視点情報のトラッキング情報に基づき制御される仮想カメラから見える画像を、ＨＭＤ２００の表示画像として生成する。そして上述したように仮想空間設定部１１２は、イベントが発生すると判断された場合に、実空間のユーザの視点の位置座標の座標のスケールと、仮想空間のユーザ移動体の視点に対応する仮想カメラの位置座標の座標のスケールとの対応関係を切り替える処理を行う。そして、この切り替え処理において、視点情報のトラッキング情報に基づき求められた実空間のユーザの視点の位置座標の変換処理を行って、仮想カメラの位置座標を求めることになる。例えば実空間のユーザの視点の位置座標を小さくしたり、大きくする変換処理を行って、仮想カメラの位置座標を求める。
【００８６】
また本実施形態では、ユーザがプレイするゲームのゲーム処理として、仮想現実のシミュレーション処理を行う。仮想現実のシミュレーション処理は、実空間での事象を仮想空間で模擬するためのシミュレーション処理であり、当該事象をユーザに仮想体験させるための処理である。例えば実空間のユーザに対応する仮想ユーザやその搭乗移動体などのユーザ移動体を、仮想空間で移動させたり、移動に伴う環境や周囲の変化をユーザに体感させるための処理を行う。
【００８７】
なお図１の本実施形態のシミュレーションシステムの処理は、施設に設置されるＰＣ等の処理装置、ユーザが装着する処理装置（ＰＣ）、或いはこれらの処理装置の分散処理などにより実現できる。或いは、本実施形態のシミュレーションシステムの処理を、サーバシステムと端末装置により実現してもよい。例えばサーバシステムと端末装置の分散処理などにより実現してもよい。
【００８８】
２．トラッキング処理
次にトラッキング処理の例について説明する。図２（Ａ）に本実施形態のシミュレーションシステムに用いられるＨＭＤ２００の一例を示す。図２（Ａ）に示すようにＨＭＤ２００には複数の受光素子２０１、２０２、２０３（フォトダイオード）が設けられている。受光素子２０１、２０２はＨＭＤ２００の前面側に設けられ、受光素子２０３はＨＭＤ２００の右側面に設けられている。またＨＭＤの左側面、上面等にも不図示の受光素子が設けられている。
【００８９】
またユーザＵＳは、ゲームコントローラ２９０を所持しており、このゲームコントローラ２９０にも、受光素子２０４、２０５、２０６（フォトダイオード）が設けられている。これらの受光素子２０４、２０５、２０６を用いることで、ゲームコントローラ２９０の位置や方向を特定できる。なお、ユーザＵＳの手や指の動きを、いわゆるリープモーションと呼ばれる処理により検出してもよい。例えば不図示のコントローラがＨＭＤ２００等に取り付けられており、このコントローラに基づいて、手や指の動きの検出処理を実現する。このコントローラは、例えば赤外線を照射するＬＥＤ等の発光部と、赤外線に照らされた手や指を撮影する複数台の赤外線カメラを有する。そして赤外線カメラの撮影画像の画像解析結果に基づいて、手や指の動きを検出する。
【００９０】
またＨＭＤ２００には、ＨＭＤ２００を装着するためのヘッドバンド２６０や、ヘッドホン２７０を接続するためのヘッドホン端子が設けられている。これにより例えば３次元音響（３次元オーディオ）の処理が施されたゲーム音を、ユーザＵＳは聴くことが可能になる。なお、ユーザＵＳの頭部の頷き動作や首振り動作をＨＭＤ２００のセンサ部２１０等により検出することで、ユーザＵＳの操作情報を入力できるようにしてもよい。
【００９１】
またユーザＵＳは、不図示の処理装置（バックパックＰＣ）を例えば背中に装着している。例えばユーザＵＳはジャケットを着ており、このジャケットの背面側に処理装置が取り付けられている。処理装置は例えばノート型ＰＣ等の情報処理装置により実現される。そしてこの処理装置とＨＭＤ２００は不図示のケーブルにより接続されている。例えば処理装置は、ＨＭＤ２００に表示される画像（ゲーム画像等）の生成処理を行い、生成された画像のデータがケーブルを介してＨＭＤ２００に送られ、ＨＭＤ２００に表示される。この処理装置は、このような画像の生成処理以外にも、本実施形態の各処理（情報取得処理、仮想空間設定処理、移動体処理、仮想カメラ制御処理、ゲーム処理、イベント処理、報知処理、表示処理又は音処理等）を行うことが可能になっている。なお、本実施形態の各処理を、施設に設置されたＰＣ等の処理装置（不図示）により実現したり、当該処理装置と、ユーザＵＳが装着する処理装置の分散処理により実現してもよい。
【００９２】
図２（Ｂ）に示すように、シミュレーションシステムの周辺には、ベースステーション２８０、２８４が設置されている。ベースステーション２８０には発光素子２８１、２８２が設けられ、ベースステーション２８４には発光素子２８５、２８６が設けられている。発光素子２８１、２８２、２８５、２８６は、例えばレーザー（赤外線レーザー等）を出射するＬＥＤにより実現される。ベースステーション２８０、２８４は、これら発光素子２８１、２８２、２８５、２８６を用いて、例えばレーザーを放射状に出射する。そして図２（Ａ）のＨＭＤ２００に設けられた受光素子２０１、２０２、２０３が、ベースステーション２８０、２８４からのレーザーを受光することで、ＨＭＤ２００のトラッキングが実現され、ユーザＵＳの頭の位置や向く方向（視点位置、視線方向）を検出できるようになる。またゲームコントローラ２９０に設けられた受光素子２０４、２０５、２０６がベースステーション２８０、２８４からのレーザーを受光することで、ゲームコントローラ２９０のトラッキングが実現され、ゲームコントローラ２９０の位置や向く方向を検出できるようになる。
【００９３】
図３（Ａ）にＨＭＤ２００の他の例を示す。図３（Ａ）では、ＨＭＤ２００に対して複数の発光素子２３１〜２３６が設けられている。これらの発光素子２３１〜２３６は例えばＬＥＤなどにより実現される。発光素子２３１〜２３４は、ＨＭＤ２００の前面側に設けられ、発光素子２３５や不図示の発光素子２３６は、背面側に設けられる。これらの発光素子２３１〜２３６は、例えば可視光の帯域の光を出射（発光）する。具体的には発光素子２３１〜２３６は、互いに異なる色の光を出射する。
【００９４】
そして図３（Ｂ）に示す撮像部１５０を、ユーザＵＳの周囲の少なくとも１つの場所（例えば前方側、或いは前方側及び後方側など）に設置し、この撮像部１５０により、ＨＭＤ２００の発光素子２３１〜２３６の光を撮像する。即ち、撮像部１５０の撮像画像には、これらの発光素子２３１〜２３６のスポット光が映る。そして、この撮像画像の画像処理を行うことで、ユーザＵＳの頭部（ＨＭＤ）のトラッキングを実現する。即ちユーザＵＳの頭部の３次元位置や向く方向（視点位置、視線方向）を検出する。
【００９５】
例えば図３（Ｂ）に示すように撮像部１５０には第１、第２のカメラ１５１、１５２が設けられており、これらの第１、第２のカメラ１５１、１５２の第１、第２の撮像画像を用いることで、ユーザＵＳの頭部の奥行き方向での位置等が検出可能になる。またＨＭＤ２００に設けられたモーションセンサのモーション検出情報に基づいて、ユーザＵＳの頭部の回転角度（視線）も検出可能になっている。従って、このようなＨＭＤ２００を用いることで、ユーザＵＳが、周囲の３６０度の全方向うちのどの方向を向いた場合にも、それに対応する仮想空間（仮想３次元空間）での画像（ユーザの視点に対応する仮想カメラから見える画像）を、ＨＭＤ２００の表示部２２０に表示することが可能になる。
【００９６】
なお、発光素子２３１〜２３６として、可視光ではなく赤外線のＬＥＤを用いてもよい。また、例えばデプスカメラ等を用いるなどの他の手法で、ユーザの頭部の位置や動き等を検出するようにしてもよい。
【００９７】
また、ユーザの視点位置、視線方向（ユーザの位置、方向）を検出するトラッキング処理の手法は、図２（Ａ）〜図３（Ｂ）で説明した手法には限定されない。例えばＨＭＤ２００に設けられたモーションセンサ等を用いて、ＨＭＤ２００の単体でトラッキング処理を実現してもよい。即ち、図２（Ｂ）のベースステーション２８０、２８４、図３（Ｂ）の撮像部１５０などの外部装置を設けることなく、トラッキング処理を実現する。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング手法により、ユーザの視点位置、視線方向などの視点情報等を検出してもよい。
【００９８】
またＨＭＤ２００として、いわゆるスマートフォンＶＲ又はＶＲゴーグルと呼ばれるタイプのものを用いてもよい。このタイプのＨＭＤ２００では、スマートフォンの表示部がユーザの目に対向するように、ＨＭＤ２００のゴーグル部の中にスマートフォンを収納する。ゴーグル部（ＶＲゴーグル）の内側には、左眼用接眼レンズ、右眼用接眼レンズが内蔵されている。ユーザは、スマートフォンの表示部に表示された左眼用画像、右眼用画像を、各々、左眼用接眼レンズ、右眼用接眼レンズを介して見ることで、ＶＲの立体視画像を鑑賞することができる。そしてユーザの視点位置、視線方向を特定するトラッキング処理は、スマートフォンに内蔵されるモーションセンサ（加速度センサ、ジャイロセンサ）などに基づいて実現できる。
【００９９】
３．本実施形態の手法
次に本実施形態の手法について詳細に説明する。なお、以下では、ユーザに対応するユーザ移動体を、ユーザキャラクタと記載して説明を行う。また本実施形態の手法は、種々のゲーム（仮想体験ゲーム、対戦ゲーム、ＲＰＧ、アクションゲーム、競争ゲーム、スポーツゲーム、ホラー体験ゲーム、電車や飛行機等の乗り物のシミュレーションゲーム、パズルゲーム、コミュニケーションゲーム、或いは音楽ゲーム等）に適用でき、ゲーム以外にも適用可能である。
【０１００】
３．１  ゲームの説明
まず本実施形態により実現されるＶＲ（バーチャルリアリティ）のゲームについて説明する。このゲームは、仮想空間（仮想世界）を移動可能な仮想現実の体験ゲームである。図４は本実施形態のシミュレーションシステムで用いられる部屋のプレイフィールドＦＬの説明図である。
【０１０１】
部屋を模したプレイフィールドＦＬ（プレイエリア、プレイ空間）には、ドアＤＲ、机ＤＫ、本棚ＢＳなどが配置され、壁には窓ＷＤ１、ＷＤ２が設けられている。なお本棚ＢＳ、窓ＷＤ１、ＷＤ２等は例えば壁に本棚や窓の画像を印刷することで表現してもよい。ユーザは、この部屋を模したプレイフィールドＦＬに入室して、ＶＲのゲームを楽しむ。図４では、複数のユーザＵＳ１、ＵＳ２が入室しており、これらの２人のユーザＵＳ１、ＵＳ２によりＶＲのゲームを楽しめるようになっている。
【０１０２】
各ユーザＵＳ１、ＵＳ２は、例えば処理装置（バックパックＰＣ）を背中に装着しており、この処理装置により生成された画像がＨＭＤ１、ＨＭＤ２（頭部装着型表示装置）に表示される。具体的にはユーザＵＳ１、ＵＳ２はジャケットを装着しており、このジャケットに処理装置（バックパックＰＣ）が取り付けられている。またプレイフィールドＦＬには、不図示の管理用の処理装置が配置されており、この管理用の処理装置により、ユーザＵＳ１、ＵＳ２が装着する処理装置間のデータの同期処理（通信処理）などが行われる。例えばユーザＵＳ１のＨＭＤ１にユーザＵＳ２に対応するユーザキャラクタ（広義にはユーザ移動体）を表示し、ユーザＵＳ２のＨＭＤ２にユーザＵＳ１に対応するユーザキャラクタを表示するための同期処理などが行われる。また部屋にはオペレータが待機しており、管理用の処理装置の操作や、ユーザＵＳ１、ＵＳ２のＨＭＤ１、ＨＭＤ２やジャケットの装着の手伝いや、ゲーム進行のためのオペレーション作業や誘導作業などを行う。
【０１０３】
またプレイフィールドＦＬの部屋には、図２（Ｂ）で説明したベースステーション２８０、２８４が設置されており、これらのベースステーション２８０、２８４を用いて、ユーザＵＳ１、ＵＳ２の位置情報（視点位置情報）や方向情報（視線方向情報）の取得が可能になっている。
【０１０４】
また図３のドアＤＲは別世界に通じるドアとなっている。例えばドアＤＲを開いたときに、そのドアＤＲの向こう側に別世界（部屋の風景とは異なる世界）が広がる。そしてドアＤＲをくぐって当該別世界に行くことができる仮想現実を、ユーザは体験できる。
【０１０５】
例えば図４においてユーザＵＳ１、ＵＳ２のＨＭＤ１、ＨＭＤ２には、部屋に対応する仮想空間の画像が表示されている。具体的には、部屋に対応する仮想空間に、部屋に配置・設置される物体に対応するオブジェクトを配置する。例えばドアＤＲ、机ＤＫ、本棚ＢＳ、窓ＷＤ１、ＷＤ２に対応するオブジェクトを配置する。そして、この部屋の仮想空間において、ユーザＵＳ１、ＵＳ２の視点（第１、第２の視点）に対応する仮想カメラ（第１、第２の仮想カメラ）から見える画像を生成して、ＨＭＤ１、ＨＭＤ２（第１、第２の表示部）に表示する。このようにすれば、ＨＭＤ１、ＨＭＤ２を装着して移動するユーザＵＳ１、ＵＳ２は、あたかも本物の部屋を歩き回っているような仮想現実を体験できる。
【０１０６】
そして、１回目にユーザ（ＵＳ１、ＵＳ２）がドアＤＲを開いた場合には、ドアＤＲの向こう側は部屋のままであり、ドアＤＲの領域（特異点に対応する領域）には、部屋の画像が表示される。そしてユーザがドアＤＲを閉めた後、再度、ドアＤＲを開くと、ドアＤＲの向こう側は氷の国に変化する。即ち図５に示すように、ドアＤＲの領域（ドアの開口領域）には、氷の国の仮想空間（ＶＳ２）の画像が表示される。このとき、図５に示すように、ドアＤＲの回りには、本棚ＢＳ、窓ＷＤ１、ＷＤ２などの部屋の仮想空間（ＶＳ１）の画像が表示される。
【０１０７】
そして例えばユーザがドアＤＲを通過して（特異点に対応する場所を通過して）、ドアＤＲの向こう側に移動すると、ユーザに対応するユーザキャラクタ（ユーザ移動体）は、部屋の仮想空間から、氷の国の仮想空間へと移動することになる。ここで、ユーザキャラクタは、実空間でのユーザの移動に伴って仮想空間で移動するキャラクタ（表示物）であり、アバターとも呼ばれる。
【０１０８】
本実施形態では、ＨＭＤを装着するユーザの視界の全周囲に亘って、広大なＶＲ空間が広がるようになるため、ユーザの仮想現実感を格段に向上できる。即ち、ユーザは、あたかも現実世界の部屋や氷の国にいるような仮想現実を感じることができる。そしてユーザに対応するユーザキャラクタは、仮想空間である部屋や氷の国を自由に歩き回ることができる。
【０１０９】
なお、本実施形態では、ユーザの実空間での位置情報を取得し、取得された位置情報に基づいてユーザキャラクタを仮想空間で移動させる場合について主に説明するが、本実施形態はこれに限定されない。例えば図１の操作部１６０（ゲームコントローラ等）からの操作情報等に基づいて、ユーザキャラクタを仮想空間で移動させてもよい。また、ユーザの手や指の動きは、例えばリープモーションの処理により検出される。そして、この検出結果に基づいて、ユーザに対応するユーザキャラクタの手や指の部位（パーツオブジェクト）を動かすモーション処理が行われる。これにより、ユーザは、例えばドアＤＲを開けるときに、自身の手や指の動きを、ユーザキャラクタの手や指の部位の動きを見ることで視覚的に認識できるようになる。
【０１１０】
そして本実施形態では、一方のユーザが他方のユーザに対してゲームコントローラ２９０を向けて所定の操作を行うことで、他方のユーザに対応する仮想空間のユーザキャラクタを小さなサイズにして、こびとのようにすることが可能になっている。例えば図６ではユーザＵＳ２がゲームコントローラ２９０の先端をユーザＵＳ１の方に向けて、ゲームコントローラ２９０の操作ボタン（不図示）を押している。これによりユーザＵＳ１に対応する仮想空間のユーザキャラクタＵＣ１（図１２〜図１５）のサイズが縮小する。
【０１１１】
図９はユーザキャラクタＵＣ１のサイズが小さくなる前において、ユーザＵＳ１のＨＭＤ１に表示される画像の例である。ユーザＵＳ１のＨＭＤ１には、ユーザＵＳ２に対応するユーザキャラクタＵＣ２やその背後のドアＤＲが表示されている。なお説明の簡略化のために実空間のドアと仮想空間のドアを同じ符号によりドアＤＲと表記する。ユーザキャラクタＵＣ２は、ゲームコントローラ２９０に対応したライトＬＴを手に持っており、ライトＬＴから光ＲＹが照射されている。この光ＲＹを浴びるとサイズが小さくなるというゲーム設定になっている。
【０１１２】
図１０はユーザキャラクタＵＣ１のサイズが小さくなった後に、ユーザＵＳ１のＨＭＤ１に表示される画像の例である。図１０ではユーザキャラクタＵＣ２やドアＤＲが図９に比べて大きく表示される。例えばユーザキャラクタＵＣ２を、小さくなったユーザキャラクタＵＣ１の視点から見た場合の画像が、ユーザＵＳ１のＨＭＤ１に表示される。これにより、あたかも巨人のように見えるユーザキャラクタＵＣ２が迫ってくるような画像を、ユーザＵＳ１のＨＭＤ１に表示できるようになる。そして、ユーザＵＳ１は、自身が小さくなるという不思議感と、大きさの違う相手とのやり取りを楽しめるようになる。
【０１１３】
例えば図７は、ユーザキャラクタＵＣ１のサイズが小さくなった後におけるユーザＵＳ１の挙動を示す図である。ユーザＵＳ１は、自身の視点の上側方向から迫ってくる巨大なユーザキャラクタＵＣ２を見上げるような視線になっており、それを避けるかのように手を上方に上げている。このように本実施形態によれば迫力のある仮想現実をユーザは体験できるようになる。
【０１１４】
図８、図１１では、ユーザＵＳ２に対応するユーザキャラクタＵＣ２が、仮想空間のハンバーガーＰＡを手に持って、ユーザキャラクタＵＣ１の方に突き出している。図１１の画像に示すように、巨人のようなユーザキャラクタＵＣ２が、大きなハンバーガーＰＡをユーザＵＳ１の方に突き出して来る様子が、ユーザＵＳ１のＨＭＤ１に表示されるようになる。例えばライトＬＴの光ＲＹを照射することで、このハンバーガーＰＡも小さくすることができる。このように本実施形態のシミュレーションシステムによれば、ユーザＵＳ１、ＵＳ２は、一方のユーザが小さくなって、他方のユーザがそれに対して色々なイタズラをするというような、これまでにない遊びを楽しむことが可能になる。
【０１１５】
３．２  座標のスケールの切り替え処理
本実施形態では、ＨＭＤを装着したユーザが、実空間（現実世界）のフィールドを移動して行なうゲームにおいて、実空間のフィールドに対応した仮想空間を設定する。そして仮想空間内のユーザキャラクタ（アバター）の状態（環境状態）が、所与の状態（小さくなる、大きくなる）へと変化するイベント（トリガー）が発動した際に、仮想空間の座標のスケール（座標尺度、座標目盛）を切り替えるシステムを実現する。これによりライト等のアイテムを用いて物が小さくなったり大きくなったりする世界観を、分かりやすく且つ破綻なく体験できるシステムの提供が可能になる。
【０１１６】
具体的には本実施形態では、図５、図９〜図１１のような仮想空間を設定し、図４、図６〜図８の実空間のユーザ（ＵＳ１、ＵＳ２）に対応する仮想空間のユーザキャラクタ（ＵＣ１、ＵＣ２）を仮想空間において移動させる。また、この仮想空間において仮想カメラ（左眼用、右眼用の仮想カメラ）から見える画像として、ユーザが視界を覆うように装着するＨＭＤの表示画像を生成する。そしてユーザキャラクタ（ユーザ移動体）の状態が所与の状態へと変化するイベントが発生したか否かを判断する。そしてイベント（所与の状態へと変化させるトリガー）が発生すると判断された場合に、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える処理を行う。例えば実空間の１ｍの座標のスケールを、仮想空間では、１ｍよりも小さい座標のスケールに切り替えたり、１ｍよりも大きい座標のスケールに切り替える。
【０１１７】
このようにすれば、イベントの発生によるユーザキャラクタの視点状態等の状態の変化（視点位置の変化等）を、座標のスケールの対応関係を切り替えるという簡素な処理で実現できる。そして図１０、図１１に示すように、ユーザキャラクタのサイズ等の状態が変化したことが反映された表示画像を、ＨＭＤに表示できるようになる。従って、イベントの発生によるユーザキャラクタの状態の変化を仮想空間の画像に反映させることができるシミュレーションシステムの提供が可能になる。
【０１１８】
座標のスケールの対応関係の切り替え処理としては種々の処理が考えられる。例えば図１２〜図１４では、ユーザキャラクタの状態が変化するイベントが発生すると判断された場合は、ユーザキャラクタのローカル座標系から仮想空間のワールド座標系への座標変換の際に縮小又は拡大のスケール変換を行っている。例えば、実空間のユーザの視点の位置座標のスケールと、仮想カメラの位置座標のスケールとの対応関係を切り替えている。
【０１１９】
図１２では実空間のユーザＵＳ１はＨＭＤ１を装着しており、その左眼の視点をＶＰＬとし、右眼の視点をＶＰＲとする。また仮想空間のユーザキャラクタＵＣ１の左眼の視点に対応する左眼用の仮想カメラをＶＣＬとし、右眼の視点に対応する右眼用の仮想カメラをＶＣＲとする。オブジェクトＨＭＤＶは、実空間のＨＭＤ１に対応する仮想空間のＨＭＤオブジェクト（ＨＭＤコンポーネントオブジェクト）である。オブジェクトＨＭＤＶは、左眼用の仮想カメラＶＣＬと右眼用の仮想カメラＶＣＲにより構成されるオブジェクトであり、ユーザキャラクタＵＣ１に対応するオブジェクトである。本実施形態では、実空間のＨＭＤ１に対応するオブジェクトＨＭＤＶを仮想空間に配置することで、仮想カメラＶＣＬ、ＶＣＲから見える仮想空間の画像を生成している。
【０１２０】
図１２では、仮想空間の仮想カメラＶＣＬ、ＶＣＲの位置座標は、実空間の視点ＶＰＬ、ＶＰＲの位置座標に対応しており、両者は例えば同じ座標になっている。また実空間のユーザＵＳ１が距離ＬＤだけ移動すると、仮想空間のユーザキャラクタＵＣ１も対応する距離ＬＤＶだけ移動し、例えばＬＤＶ＝ＬＤになっている。なお、視点ＶＰＬ、ＶＰＲの位置座標と仮想カメラＶＣＬ、ＶＣＲの位置座標は完全に一致している必要は必ずしもなく、ゲーム設定の調整の範囲で両者の位置座標に多少の差異（例えば１０％程度の差異）があってもよい。即ち、両者の位置座標は実質的に同じであればよい。
【０１２１】
一方、図１３ではユーザキャラクタＵＣ１のサイズが小さくなるイベントが発生している。このようなイベントの発生時に、本実施形態では、ユーザキャラクタＵＣ１のローカル座標系（ＸＬ、ＹＬ、ＺＬ）から仮想空間のワールド座標系（ＸＷ、ＹＷ、ＺＷ）への座標変換の際に縮小のスケール変換を行う。これにより、ユーザキャラクタＵＣ１に対応するオブジェクトであるオブジェクトＨＭＤＶに対して、縮小のスケール変換が行われるようになる。即ち、図１３では、図１２に比べて、オブジェクトＨＭＤＶの位置が低くなり（Ｙ座標が小さくなり）、オブジェクトＨＭＤＶを構成する仮想カメラＶＣＬ、ＶＣＲ間の距離（カメラ間距離）も短くなる。オブジェクトＨＭＤＶ（ＶＣＲ、ＶＣＬ）の位置が低くなることで、図１０に示すように、下方の視点からユーザキャラクタＵＣ２を見ているような画像が、ユーザＵＳ１のＨＭＤ１に表示されるようになる。また仮想カメラＶＣＬ、ＶＣＲ間の距離が短くなることで、実空間とは異なった奥行き感になり、小さなサイズのユーザキャラクタＵＣ１から見える奥行き感になる。また、このようなスケール変換が行われることで、実空間のユーザＵＳ１が距離ＬＤだけ移動した場合に、仮想空間のユーザキャラクタＵＣ１は、距離ＬＤよりも短い距離ＬＤＶだけ移動し、ＬＤＶ＜ＬＤになる。即ち、縮小のスケール変換が行われることで、ユーザキャラクタＵＣ１（オブジェクトＨＭＤＶ）の移動の距離ＬＤＶについても縮小されて短くなる。
【０１２２】
図１４ではユーザキャラクタＵＣ１のサイズが大きくなるイベントが発生している。このようなイベントの発生時に、本実施形態では、ユーザキャラクタＵＣ１のローカル座標系（ＸＬ、ＹＬ、ＺＬ）から仮想空間のワールド座標系（ＸＷ、ＹＷ、ＺＷ）への座標変換の際に拡大のスケール変換を行う。これにより、オブジェクトＨＭＤＶに対して、拡大のスケール変換が行われるようになる。即ち、図１４では、図１２に比べて、オブジェクトＨＭＤＶの位置が高くなり（Ｙ座標が大きくなり）、オブジェクトＨＭＤＶを構成する仮想カメラＶＣＬ、ＶＣＲ間の距離も長くなる。オブジェクトＨＭＤＶ（ＶＣＲ、ＶＣＬ）の位置が高くなることで、上方の視点からユーザキャラクタＵＣ２を見ているような画像が、ユーザＵＳ１のＨＭＤ１に表示されるようになる。また仮想カメラＶＣＬ、ＶＣＲ間の距離が長くなることで、実空間とは異なった奥行き感になり、大きなサイズのユーザキャラクタＵＣ１から見える奥行き感になる。また、このようなスケール変換が行われることで、実空間のユーザＵＳ１が距離ＬＤだけ移動した場合に、仮想空間のユーザキャラクタＵＣ１は、距離ＬＤよりも長い距離ＬＤＶだけ移動し、ＬＤＶ＞ＬＤになる。即ち、拡大のスケール変換が行われることで、ユーザキャラクタＵＣ１（オブジェクトＨＭＤＶ）の移動の距離ＬＤＶについても拡大されて長くなる。
【０１２３】
このように本実施形態では、ユーザキャラクタＵＣ１のサイズが小さくなるイベントの発生時には、ワールド座標系への座標変換の際に縮小のスケール変換を行う。例えば視点ＶＰＬ、ＶＰＲの位置座標のスケールと仮想カメラＶＣＬ、ＶＣＲの位置座標のスケールの対応関係を、図１２の対応関係から図１３の対応関係に切り替える。一方、ユーザキャラクタＵＣ１のサイズが大きくなるイベントの発生時には、ワールド座標系への座標変換の際に拡大のスケール変換を行う。例えば視点ＶＰＬ、ＶＰＲの位置座標のスケールと仮想カメラＶＣＬ、ＶＣＲの位置座標のスケールの対応関係を、図１２の対応関係から図１４の対応関係に切り替える。このようにすることで、座標のスケールの対応関係の切り替え処理を、縮小又は拡大のスケール変換を行うという簡素な処理で実現して、イベントの発生によるユーザキャラクタの状態の変化をユーザに仮想体験させることが可能になる。
【０１２４】
図１５は、座標のスケールの切り替え処理の他の例の説明図である。図１５では、ユーザキャラクタの状態が変化するイベントが発生すると判断された場合に、ユーザキャラクタが移動する仮想空間を、第１の仮想空間から、第１の仮想空間とは座標軸のスケールが異なる第２の仮想空間に切り替えている。
【０１２５】
具体的には図１５では、イベント発生時に、第１の仮想空間ＶＳＰ１から、第１の仮想空間ＶＳＰ１とは座標軸のスケールが異なる第２の仮想空間ＶＳＰ２に切り替えている。第１の仮想空間ＶＳＰ１は、実空間ＲＳＰに対応する仮想空間であり、第１の仮想空間ＶＳＰ１の座標軸のスケールは、実空間ＲＳＰの座標軸のスケールに対応しており、両者の座標軸のスケールは例えば同じになっている。これに対して第２の仮想空間ＶＳＰ２の座標軸のスケールは、実空間ＲＳＰや第１の仮想空間ＶＳＰ１の座標軸のスケールとは異なっており、第２の仮想空間ＶＳＰ２は第１の仮想空間ＶＳＰ１よりも広い仮想空間となっている。例えば第１の仮想空間ＶＳＰ１のＸＶ１軸、ＹＶ１軸、ＺＶ１軸のスケールは、実空間ＲＳＰのＸ軸、Ｙ軸、Ｚ軸のスケールと同じになっている。これに対して、第２の仮想空間ＶＳＰ２のＸＶ２軸、ＹＶ２軸、ＺＶ２軸のスケールは、実空間ＲＳＰのＸ軸、Ｙ軸、Ｚ軸のスケールとは異なっており、より広い座標空間を規定する座標のスケールになっている。例えば第２の仮想空間ＶＳＰ２の各座標軸での１ｍのスケールは、第１の仮想空間ＶＳＰ１の各座標軸での１ｍのスケールよりも長くなっている。そして第２の仮想空間ＶＳＰ２に配置されるユーザキャラクタＵＣ１以外のオブジェクトのサイズは、例えば第１の仮想空間ＶＳＰ１に配置されるユーザキャラクタＵＣ１以外のオブジェクトのサイズよりも大きくなっている。一方、ユーザキャラクタＵＣ１のサイズは第１の仮想空間ＶＳＰ１と第２の仮想空間ＶＳＰ２とで同じになっている。このように第２の仮想空間ＶＳＰ２を広い仮想空間にすることで、仮想空間に対するユーザキャラクタＵＣ２のサイズが相対的に小さくなり、ユーザキャラクタＵＣ２のサイズを小さくするイベントの実現が可能になる。
【０１２６】
なお、ユーザキャラクタＵＣ２のサイズを大きくするイベントの発生時には、第１の仮想空間ＶＳＰ１から、第１の仮想空間ＶＳＰ１よりも狭い第２の仮想空間ＶＳＰ２に切り替えればよい。例えば第２の仮想空間ＶＳＰ２の各座標軸での１ｍのスケールを、第１の仮想空間ＶＳＰ１の各座標軸での１ｍのスケールよりも短くする。また第２の仮想空間ＶＳＰ２では、第１の仮想空間ＶＳＰ１に比べて、ユーザキャラクタＵＣ２のサイズについては同じにしながら、他のオブジェクトのサイズを小さくする。
【０１２７】
このようにすれば、座標のスケールの対応関係の切り替え処理を、仮想空間の広狭を切り替えることで実現して、イベントの発生によるユーザキャラクタの状態の変化をユーザに仮想体験させることが可能になる。
【０１２８】
また本実施形態では、ユーザキャラクタのサイズを変化させるイベントが発生した場合に、図１２〜図１５に示すような座標のスケールの対応関係の切り替え処理を行っている。これにより、ユーザキャラクタのサイズが小さくなったり大きくなったりする仮想現実を、ユーザに体感させることが可能になる。但し、座標のスケールの対応関係の切り替え処理を行うイベントとしては種々のイベントを考えることができる。例えば人間のユーザキャラクタが、変身の動作を行うことで、違う外観の超人などのキャラクタに変身するようなイベントであってもよい。或いはユーザ移動体であるロボットのキャラクタが、違う形状のロボットのキャラクタに変形するようなイベントであってもよい。或いはロボットなどの搭乗移動体に対して、仮想ユーザが搭乗することで、ユーザの目線がロボットの目線になるようなイベントであってもよい。このようにユーザ移動体の状態が所与の状態へと変化するイベントとしては種々のイベントを想定できる。
【０１２９】
また本実施形態では、ユーザの行動情報、他のユーザの行動情報、或いはゲーム状況などに基づいて、イベントが発生したか否かを判断する。
【０１３０】
例えば図１６（Ａ）では、ユーザＵＳ１がゲームコントローラ２９０を自身の方に向けて、サイズ縮小のための操作ボタンを押している。ユーザＵＳ１がこのような操作の行動を行うことで、ユーザＵＳ１に対応するユーザキャラクタＵＣ１のサイズが変化するイベントが発生する。つまり図１６（Ａ）では、ユーザＵＳ１の行動情報に基づいて、イベントが発生したか否かを判断している。また図１６（Ｂ）では、他のユーザＵＳ２がユーザＵＳ１に対してゲームコントローラ２９０を向けて、サイズ縮小のための操作ボタンを押している。他のユーザＵＳ２がこのような操作の行動を行うことで、ユーザＵＳ１に対応するユーザキャラクタＵＣ１のサイズが変化するイベントが発生する。つまり図１６（Ｂ）では、他のユーザＵＳ２の行動情報に基づいて、イベントが発生したか否かを判断している。
【０１３１】
なお、イベントを発生させるユーザや他のユーザの行動は、図１６（Ａ）、図１６（Ｂ）に示すようなゲームコントローラ２９０を用いた操作には限定されない。例えばユーザ又は他のユーザが手や顔や足などの部位を動かす行動を行ったことを、部位検出センサにより検出して、イベントを発生させる。或いは、ユーザ又は他のユーザが姿勢を変化させる行動を行ったことを、姿勢検出センサにより検出して、イベントを発生させる。或いは、ユーザや他のユーザが発話の行動を行ったことを、マイクにより検出することにより、イベントを発生させる。
【０１３２】
また本実施形態では、ユーザキャラクタの行動状況、ユーザキャラクタの環境状況、或いはゲームの進行状況などのゲーム状況に基づいて、イベントが発生したか否かを判断してもよい。例えばユーザキャラクタが変身などの所定の行動を行った場合や、ユーザキャラクタがゲームのマップの所定の場所に来た場合に、イベントを発生させる。或いは、ユーザキャラクタの周囲が所定の状況になった場合や、ゲームの進行状況が所定の状況になった場合（例えばボス戦になった場合）に、イベントを発生させる。このように、ユーザキャラクタを所与の状態に変化させるイベントのトリガーは、ユーザ自身によるものであってもよいし、他のユーザの行動やゲーム状況（ゲーム進行上の演出）に基づく自動的なものであってもよい。
【０１３３】
このようにすれば、ユーザや他のユーザの行動やゲーム状況に応じて、ユーザキャラクタを所与の状態に変化させるイベントを発生し、そのイベントの発生によるユーザキャラクタの状態の変化を、ユーザに仮想体験させることが可能になる。
【０１３４】
３．３  報知処理
以上のように本実施形態では、ユーザキャラクタの状態が変化するイベントが発生すると判断された場合に、実空間での座標のスケールと仮想空間での座標のスケールとの対応関係を切り替える処理を行っている。そして本実施形態では、このような切り替え処理が行われたことを条件に（ユーザキャラクタの状態が変化するイベントが発生したことを条件に）、ユーザの周囲に報知範囲を設定して、報知範囲をユーザに知らせるため報知処理を行う。例えば切り替え処理用（イベント発生用）に用意された報知範囲を設定して、報知処理を行う。例えば切り替え処理が行われていない場合には、報知範囲を設定しないが、切り替え処理が行われた時に初めて、ユーザの周囲に報知範囲を設定して、当該報知範囲を用いた報知処理を行う。
【０１３５】
例えば図１７（Ａ）では、実空間のユーザＵＳ１がドアＤＲの方へと移動している。即ちユーザＵＳ１が、位置Ｐ１から位置Ｐ２へと距離ＬＤだけ移動している。この場合に、ユーザＵＳ１に対応する仮想空間のユーザキャラクタＵＣ１のサイズが変化するイベントが発生しており、ユーザキャラクタＵＣ１は小さなサイズに変化している。そして図１７（Ｂ）に示すように、実空間のユーザＵＳ１の移動に伴って、仮想空間のユーザキャラクタＵＣ１も位置ＰＶ１から位置ＰＶ２Ｅへと距離ＬＤＶだけ移動している。ところが、ユーザキャラクタＵＣ１のサイズが小さくなるイベントが発生していると、図１３で説明したように、実空間でのユーザＵＳ１の移動の距離ＬＤに比べて、仮想空間でのユーザキャラクタＵＣ１の移動の距離ＬＤＶは短くなる。
【０１３６】
そして、ユーザキャラクタＵＣ１が、短い距離ＬＤＶだけ移動して、位置ＰＶ２Ｅに位置している状態において、ユーザキャラクタＵＣ１が元のサイズに戻るイベントが発生したとする。すると、図１７（Ｂ）の仮想空間でのユーザキャラクタＵＣ１の位置ＰＶ２Ｅは、図１７（Ａ）の実空間でのユーザＵＳ１の位置Ｐ２に対応しなくなってしまい、両者の位置にズレが生じてしまう。つまり、実空間のユーザＵＳ１は距離ＬＤだけ移動するのに、サイズが小さくなった仮想空間のユーザキャラクタＵＣ１は、距離ＬＤよりも短い距離ＬＤＶしか移動しないため、このような位置のズレが生じてしまう。
【０１３７】
このような位置のズレが生じないようにするためには、図１７（Ｃ）に示すように、仮想空間でのユーザキャラクタＵＣ１の位置を、ＰＶ２ＥからＰＶ２に修正する必要がある。具体的には、位置ＰＶ２Ｅから、実空間の位置Ｐ２に対応する位置ＰＶ２へと、ユーザキャラクタＵＣ１を移動させることで、ユーザキャラクタＵＣ１が居る位置を修正する。
【０１３８】
しかながら、このような位置の修正を行うと、ユーザキャラクタＵＣ１が元のサイズに戻るイベントの発生時に、位置ＰＶ２Ｅから位置ＰＶ２に瞬間的に移動したような画像が、ユーザＵＳ１のＨＭＤ１に表示されてしまう。このため、ユーザＵＳ１が、このような瞬間的な移動に不自然さを感じてしまったり、場合によっては、ユーザＵＳ１の３Ｄ酔いを引き起こしてしまうおそれがある。例えば実空間と仮想空間の間の立体感や見え方の違いで、乗り物酔いのようなものを感じてしまう。
【０１３９】
また図１７（Ａ）に示すように実空間のユーザＵＳ１がドアＤＲなどの物体に近づいている場合には、次のような問題も生じる。即ち、図１７（Ａ）のように実空間でユーザＵＳ１が長い距離ＬＤを移動してドアＤＲに近づいていても、図１７（Ｂ）に示すように仮想空間ではユーザキャラクタＵＣ１は短い距離ＬＤＶしか移動していない。このためＨＭＤ１の表示画像を見ているユーザＵＳ１は、ドアＤＲが直ぐ手前にあることに気づかず、ドアＤＲにぶつかりそうになってしまうという問題が生じる。
【０１４０】
そこで本実施形態では、ユーザキャラクタの状態が変化するイベントが発生し、座標のスケールの切り替え処理が行われた場合に、ユーザの周囲に報知範囲を設定して、ユーザに対して報知処理を行う。例えば図１８では、ユーザＵＳ２がゲームコントローラ２９０の先端をユーザＵＳ１の方に向けて操作ボタンを押すことで、Ａ１に示すように、ユーザキャラクタＵＣ１のサイズが小さくなるイベントが発生している。このようなイベントが発生した場合に本実施形態では、報知範囲ＡＲＩを設定する。そして報知範囲ＡＲＩをユーザＵＳ１に知らせるための報知処理を行う。例えば本実施形態では、このようなイベントが発生していない場合には、報知範囲ＡＲＩの設定や報知処理は行われないが、このようなイベントが発生したことを条件に、報知範囲ＡＲＩの設定や報知処理を行う。報知範囲ＡＲＩは、例えばユーザＵＳ１の位置（足元の位置）を内包するような範囲である。具体的には報知範囲ＡＲＩは、例えばユーザＵＳ１の位置が中央となるような範囲である。また報知範囲ＡＲＩの形状は任意であり、種々の形状を採用できる。
【０１４１】
このような報知範囲ＡＲＩを設定すれば、ユーザＵＳ１の移動範囲が、この報知範囲ＡＲＩ内に留まるように、ユーザＵＳ１の行動を抑制できるようになる。従って、ユーザキャラクタＵＣ１のサイズが小さくなるなどのイベントの発生後、図１７（Ａ）に示すようにユーザＵＳ１が、位置Ｐ１から遠く離れた位置Ｐ２まで長い距離ＬＤを移動してしまうのを抑制できる。これにより、図１７（Ｃ）に示すように、小さなサイズから元のサイズに戻るようなイベントが発生したときに、位置ＰＶ２Ｅから位置ＰＶ２にユーザキャラクタＵＣ１が瞬間的に移動してしまうような事態の発生を防止できる。従って、ユーザＵＳ１が瞬間的な移動に対して不自然さを感じたり、３Ｄ酔いを引き起こしてしまうような事態の発生を防止できる。また目の前に突然に現れたドアＤＲ等にユーザＵＳ１がぶつかってしまうような事態の発生も防止できる。なおユーザキャラクタＵＣ１の周囲に報知範囲を設定してもよい。例えばユーザＵＳ１が報知範囲ＡＲＩを視覚的に認識できるように、報知範囲のオブジェクト（例えば円形のオブジェクト）を、ユーザキャラクタＵＣ１の周囲に表示してもよい。この場合に、ユーザキャラクタＵＣ１のサイズに対する報知範囲オブジェクトのサイズの大きさ関係が、ユーザＵＳ１のサイズに対する報知範囲ＡＲＩのサイズの大きさ関係と同等になるようにしてもよい。
【０１４２】
また本実施形態では、実空間でのユーザの位置情報に基づいて報知範囲を設定し、ユーザが報知範囲を超えたと判定された場合に、報知処理を行う。
【０１４３】
例えば図１９（Ａ）では、ユーザＵＳ１が報知範囲ＡＲＩを越えたと判定されている。例えばユーザＵＳ１の足等の部位の位置が報知範囲ＡＲＩの外に出た場合に、ユーザＵＳ１が報知範囲ＡＲＩを越えたと判定してもよい。或いは、ユーザＵＳ１の代表位置である足元位置が報知範囲ＡＲＩの外に出た場合に、ユーザＵＳ１が報知範囲ＡＲＩを越えたと判定してもよい。そして、ユーザＵＳ１が報知範囲ＡＲＩを越えたと判定された場合に、報知処理を行う。例えば図１９（Ａ）に示すように、音、振動又は画像等を用いて報知処理を行う。例えばユーザＵＳ１が装着するヘッドホンやプレイフィールドに設けられたスピーカーから、ユーザＵＳ１への報知のための警告音や音声を出力する。或いは、ユーザＵＳ１が所持するゲームコントローラ等に設けられた振動デバイスや、ゲームフィールドに設けられた振動デバイスを振動させることで、振動による警告を行う。或いは、ユーザＵＳ１が装着するＨＭＤ１に、警告用の報知画像を表示する。例えば警告を知らせる文字やアイコンなどの報知画像をＨＭＤ１に表示する。例えば後述の図２３に示すような報知画像を表示してもよい。例えば仮想的な壁画像のようなものを報知画像として表示する。
【０１４４】
このようにすれば、報知範囲ＡＲＩを越えようとしていたユーザＵＳ１は、音、振動又は画像等による報知処理が行われることで、報知範囲ＡＲＩを越えて移動するのを躊躇するようになる。従って、報知範囲ＡＲＩ内に留まるようにユーザＵＳ１を促すことが可能になり、図１７（Ｃ）で説明したような、ユーザＵＳ１が瞬間的な移動に対して不自然さを感じたり、３Ｄ酔いを引き起こしてしまうなどの事態の発生を防止できる。
【０１４５】
また本実施形態では、イベントとして、ユーザキャラクタのサイズを第１のサイズから第２のサイズに変化させるイベントが発生した場合に、上述したような座標のスケールの切り替え処理を行う。そして報知処理として、ユーザ移動体のサイズを第２のサイズから第１のサイズに戻す処理を行う。
【０１４６】
例えば図１８では、Ａ１に示すようにユーザキャラクタＵＣ１のサイズが、通常のサイズ（広義には第１のサイズ）から小さいサイズ（広義には第２のサイズ）に変化するイベントが発生しており、これにより報知範囲ＡＲＩが設定されている。そして図１９（Ｂ）では、図１９（Ａ）の報知処理として、ユーザキャラクタＵＣ１のサイズを、小さいサイズ（第２のサイズ）から、通常のサイズ（第１のサイズ）に戻す処理を行っている。即ち、ユーザキャラクタＵＣ１のサイズを小さくするイベントを、図１９（Ｂ）では強制終了している。
【０１４７】
このようにすれば、図１８に示すようにユーザキャラクタＵＣ１のサイズが小さくなった後に、図１９（Ａ）に示すようにユーザＵＳ１が報知範囲ＡＲＩを越えたと判断されると、図１９（Ｂ）に示すように小さくなったユーザキャラクタＵＣ１が元のサイズに戻るようになる。従って、ユーザＵＳ１は、ユーザキャラクタＵＣ１が元のサイズに戻ったことで、報知範囲ＡＲＩを越えてしまったことを認識できるようになる。また、このようにユーザキャラクタＵＣ１を元のサイズに強制的に戻してしまうことで、図１７（Ａ）〜図１７（Ｃ）で説明した、ユーザキャラクタＵＣ１が瞬間的に長い距離を移動するなどの問題が発生するのを、より確実に防止することが可能になる。
【０１４８】
なお本実施形態では、仮想空間でのユーザキャラクタの位置情報に基づいて、報知範囲を設定してもよい。例えば図２０では、仮想空間のユーザキャラクタＵＣ１に対して報知範囲ＡＲＩが設定されている。例えばユーザキャラクタＵＣ１の位置（代表位置）を内包するような報知範囲ＡＲＩが設定されている。即ち図１８では実空間のユーザＵＳ１の位置に対して報知範囲ＡＲＩが設定されているが、図２０では仮想空間のユーザキャラクタＵＣ１の位置に対して報知範囲ＡＲＩが設定されている。このようにすれば、仮想空間のユーザキャラクタＵＣ１の周囲に報知範囲を設定できるようになる。そして仮想空間での報知範囲ＡＲＩの境界を知らせるような報知範囲画像を表示することも可能になる。従って、ユーザＵＳ１のＨＭＤ１にこの報知範囲画像を表示できるようになり、報知範囲ＡＲＩの存在や形状等を、ユーザＵＳ１に対して視覚的に認識させることが可能になる。これによりユーザＵＳ１の利便性の向上を図れる。
【０１４９】
また本実施形態では、報知範囲をリアルタイムに変化させてもよい。例えば図２１（Ａ）では、ユーザＵＳ１の位置に対して報知範囲ＡＲＩが設定されており、図２１（Ｂ）では、このユーザＵＳ１に対して他のユーザＵＳ２が接近している。この場合には図２１（Ｂ）に示すように、ユーザＵＳ２側の方向では、ユーザＵＳ１の位置から報知範囲ＡＲＩの境界までの距離を短くする。即ちユーザＵＳ１側に報知範囲ＡＲＩを狭くする。このようにすれば、報知範囲ＡＲＩの境界が手前側に来ることで、ユーザＵＳ２側へのユーザＵＳ１の移動が抑制されるようになる。従って、ユーザＵＳ１がユーザＵＳ２側に大きく移動してしまい、両者がぶつかってしまうような事態の発生を防止できる。同様に、例えば図１７（Ａ）においてユーザＵＳ１がドアＤＲに接近した場合に、ドアＤＲ側の方向では、ユーザＵＳ１の位置から報知範囲ＡＲＩの境界までの距離を短くする。このようにすることで、ユーザＵＳ１がドアＤＲ側に大きく移動してしまい、ドアＤＲとぶつかってしまうような事態の発生を防止できる。
【０１５０】
なお、他のユーザＵＳ２やドアＤＲ等の物体が接近して来た場合に、図２１（Ｂ）のようにユーザＵＳ２側やドアＤＲ側において報知範囲ＡＲＩを変形するのではなく、報知範囲ＡＲＩを全体として小さくなるように変化させてもよい。また例えばユーザＵＳ１の状態に応じて報知範囲ＡＲＩを変化させてもよい。例えばユーザＵＳ１が速い速度で移動している場合には、報知範囲ＡＲＩを狭くして、ユーザＵＳ１が他のユーザや物体などにぶつかってしまうのを抑制してもよい。
【０１５１】
また本実施形態では、座標のスケールの切り替え処理が行われていない場合には、実空間でのユーザの位置が報知境界に接近したときに、仮想空間において報知境界の対応位置に、報知オブジェクトを配置する報知処理を行う。一方、当該切り替え処理が行われた場合には、実空間でのユーザの位置が報知境界に接近したときに、仮想空間において報知境界の対応位置とは異なる位置に、報知オブジェクトを配置する報知処理を行う。具体的には報知境界の対応位置よりも手前側の位置に報知オブジェクトを配置して表示する。
【０１５２】
例えば図２２では、プレイフィールドＦＬに対して、仕切り部材となる壁ＷＬ１、ＷＬ２、ＷＬ３、ＷＬ４が設置されている。この場合に、この壁ＷＬ１〜ＷＬ４の内側に報知境界ＢＤを設定する。そして図２２に示すように、ユーザＵＳ１が報知境界ＢＤ（壁ＷＬ１）に接近した場合に、例えば図２３に示すような警告用の報知画像を、ユーザＵＳ１のＨＭＤ１に表示する。図２３では、背後の壁ＷＬ１、窓ＷＤＡ、ドアＤＲＡの画像に対して、ワイヤーフレームの網目状の報知オブジェクトＯＢＷが重畳して表示されている。例えば実空間の壁ＷＬ１〜ＷＬ４の位置に対応する仮想空間の位置に、報知オブジェクトＯＢＷを配置して、報知オブジェクトＯＢＷによる報知画像を表示する。このような報知オブジェクトＯＢＷによる報知画像を表示することで、ユーザＵＳ１が壁ＷＬ１の方向に移動することを諦めて、壁ＷＬ１の方向とは異なる方向（例えば反対方向）に移動することを期待できる。また報知オブジェクトＯＢＷは網目状になっているため、ユーザＵＳ１は背後の壁ＷＬ１等の画像を見ることができ、報知オブジェクトＯＢＷが原因でＶＲの没入感が阻害されてしまうのを抑制できる。
【０１５３】
ここで、図２４（Ａ）では、ユーザＵＳ１が距離ＬＤだけ移動して、壁ＷＬ１に接近している。このとき、図２４（Ｂ）に示すようにユーザキャラクタＵＣ１のサイズが小さくなるイベントが発生している。このため、図２４（Ａ）に示すように実空間でのユーザＵＳ１の移動の距離ＬＤは長いが、図２４（Ｂ）に示すように仮想空間でのユーザキャラクタＵＣ１の移動の距離ＬＤＶは短いため、ユーザキャラクタＵＣ１から見ると、壁ＷＬ１は遠い距離に位置することになる。そしてユーザＵＳ１のＨＭＤ１には、図２４（Ｂ）に示すように、壁ＷＬ１から離れた位置に居るユーザキャラクタＵＣ１の視点（仮想カメラ）での画像が表示される。従って、実空間でのユーザＵＳ１は壁ＷＬ１に接近しているのに、仮想空間でのユーザキャラクタＵＣ１は壁ＷＬ１に接近していないように見えるため、ユーザＵＳ１が、実空間の壁ＷＬ１に未だ接近していないと錯覚するおそれがある。この結果、ユーザＵＳ１が壁ＷＬ１にぶつかってしまうなどの問題が生じてしまう。
【０１５４】
そこで本実施形態では、ユーザキャラクタＵＣ１のサイズが小さくなるなどのイベントが発生していない場合には、図２２、図２４（Ａ）のようにユーザＵＳ１が報知境界ＢＤに接近したときに、図２５（Ａ）に示すように、仮想空間における報知境界ＢＤの対応位置ＰＷ１に、報知オブジェクトＯＢＷを配置して、図２３に示すような報知画像を表示する。一方、ユーザキャラクタＵＣ１のサイズが小さくなるなどのイベントが発生した場合には、図２２、図２４（Ａ）のようにユーザＵＳ１が報知境界ＢＤに接近したときに、図２５（Ｂ）に示すように、仮想空間における報知境界ＢＤの対応位置ＰＷ１とは異なる位置ＰＷ２に、報知オブジェクトＯＢＷを配置して、図２３に示すような報知画像を表示する。即ち、図２５（Ａ）の対応位置ＰＷ１よりも、ユーザキャラクタＵＣ１から見て手前側の位置ＰＷ２に報知オブジェクトＯＢＷを配置して報知画像を表示する。なお図２３とは異なる表示態様の報知画像を表示したり、音、振動等による報知処理を行ってもよい。
【０１５５】
このようにすれば、図２４（Ａ）、図２４（Ｂ）に示すように、ユーザキャラクタＵＣ１のサイズが小さくなるなどのイベントが発生し、実空間と仮想空間とで壁ＷＬ１との距離感が異なってしまった場合にも、ユーザＵＳ１が壁ＷＬ１とぶつかってしまうような事態が発生するのを効果的に防止できるようになる。
【０１５６】
４．詳細な処理
次に本実施形態の詳細な処理例について図２６のフローチャートを用いて説明する。
【０１５７】
まず仮想空間の設定処理を行う（ステップＳ１１）。そして設定された仮想空間において、ユーザキャラクタを移動させる処理を行う（ステップＳ１２）。例えば実空間でのユーザの移動に連動するように仮想空間のユーザキャラクタを移動させる。
【０１５８】
次に、ユーザキャラクタの状態が変化するイベントが発生するか否かを判断する（ステップＳ１３）。例えばユーザキャラクタのサイズを変化させるイベントが発生するか否かを判断する。そしてイベントが発生する場合（イベントのトリガーが発生した場合）には、座標のスケールの切り替え処理を実行する（ステップＳ１４）。例えば図１２〜図１５で説明したように、ユーザキャラクタのサイズを変更するための座標のスケールの切り替え処理を実行する。
【０１５９】
次にユーザの位置情報に基づいて、ユーザの周囲に報知範囲を設定する（ステップＳ１５）。例えば図１８に示すような報知範囲ＡＲＩを設定する。そしてユーザが報知範囲を超えた場合には、それに応じた報知処理を行う。またユーザが報知境界に接近した場合には、報知境界の対応位置よりも手前側の位置に報知オブジェクトを配置して、報知画像を表示する（ステップＳ１６）。例えば図２２、図２４（Ａ）のように壁ＷＬ１に対応する報知境界ＢＤにユーザＵＳ１が接近したときに、図２５（Ｂ）に示すように、報知境界ＢＤの対応位置ＰＷ１よりも手前側の位置ＰＷ２に報知オブジェクトＯＢＷを配置して、図２３に示すような報知画像を表示する。
【０１６０】
以上のようにすることで、ユーザキャラクタが瞬間的に長い距離を移動してしまい、ユーザが不自然さを感じてしまったり、ユーザキャラクタが小さくなったことが原因でユーザが壁等にぶつかってしまうような事態を防止できるようになる。
【０１６１】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（ユーザ移動体、表示画像の変化処理等）と共に記載された用語（ユーザキャラクタ、フェードアウト処理・ホワイトアウト処理等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また位置情報の取得処理、仮想空間の設定処理、移動体の移動処理、イベント処理、表示処理、ゲーム処理、報知処理、対応関係の切り替え処理等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。
【符号の説明】
【０１６２】
ＵＳ１、ＵＳ２、ＵＳ  ユーザ、ＵＣ１、ＵＣ２  ユーザキャラクタ（ユーザ移動体）、
ＶＰＬ、ＶＰＲ  視点、ＶＣＬ、ＶＣＲ  仮想カメラ、
ＡＲＩ  報知範囲、ＢＤ  報知境界、
ＷＤＡ  窓、ＤＲＡ  ドア、ＷＬ１〜ＷＬ４  壁、
ＲＳＰ  実空間、ＶＳＰ１  第１の仮想空間、ＶＳＰ２  第２の仮想空間、
ＦＬ  プレイフィールド、ＤＲ  ドア、ＤＫ  机、ＢＳ  本棚、ＷＤ１、ＷＤ２  窓、
ＬＴ  ライト、ＲＹ  光線、ＬＤ、ＬＤＶ  距離、ＯＢＳ  オブジェクト、
Ｐ１、Ｐ２、ＰＶ１、ＰＶ２Ｅ、ＰＶ２  位置、
１００  処理部、１０２  入力処理部、１１０  演算処理部、１１１  情報取得部、
１１２  仮想空間設定部、１１３  移動体処理部、１１４  仮想カメラ制御部、
１１５  ゲーム処理部、１１６  イベント処理部、１１７  報知処理部、
１２０  表示処理部、１３０  音処理部、１４０  出力処理部、
１５０  撮像部、１５１  第１のカメラ、１５２  第２のカメラ、１６０  操作部、
１７０  記憶部、１７２  オブジェクト情報記憶部、１７８  描画バッファ、
１８０  情報記憶媒体、１９２  音出力部、１９４  Ｉ／Ｆ部、
１９５  携帯型情報記憶媒体、１９６  通信部、
２００  ＨＭＤ（頭部装着型表示装置）、２０１〜２０６  受光素子、２１０  センサ部、
２２０  表示部、２３１〜２３６  発光素子、２４０  処理部、
２６０  ヘッドバンド、２７０  ヘッドホン、２８０、２８４  ベースステーション、
２８１、２８２、２８５、２８６  発光素子、２９０  ゲームコントローラ
【図１】
2019175323.tif 000003
【図２】
2019175323.tif 000004
【図３】
2019175323.tif 000005
【図４】
2019175323.tif 000006
【図５】
2019175323.tif 000007
【図６】
2019175323.tif 000008
【図７】
2019175323.tif 000009
【図８】
2019175323.tif 000010
【図９】
2019175323.tif 000011
【図１０】
2019175323.tif 000012
【図１１】
2019175323.tif 000013
【図１２】
2019175323.tif 000014
【図１３】
2019175323.tif 000015
【図１４】
2019175323.tif 000016
【図１５】
2019175323.tif 000017
【図１６】
2019175323.tif 000018
【図１７】
2019175323.tif 000019
【図１８】
2019175323.tif 000020
【図１９】
2019175323.tif 000021
【図２０】
2019175323.tif 000022
【図２１】
2019175323.tif 000023
【図２２】
2019175323.tif 000024
【図２３】
2019175323.tif 000025
【図２４】
2019175323.tif 000026
【図２５】
2019175323.tif 000027
【図２６】
2019175323.tif 000028