(57)【要約】【課題】移動体の加速度の変化や仮想カメラの視線方向の変化が原因でユーザに与えてしまう負担等を軽減できるシミュレーションシステム等の低減。【解決手段】シミュレーションシステムは、ＨＭＤを装着するユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、移動体の移動に応じて移動する仮想カメラの制御を行う仮想カメラ制御部と、ＨＭＤの表示画像として、仮想空間において仮想カメラから見える画像を生成する表示処理部を含む。表示処理部は、移動体の加速度の変化又は仮想カメラの視線方向の変化が、所与の変化条件を満たしたと判断される場合に、ＨＭＤの表示画像を、仮想カメラから見える画像とは異なる画像に変化させる表示処理を行う。【選択図】図２９
2018010487.tif 000002
【特許請求の範囲】
【請求項１】
頭部装着型表示装置を装着するユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、
前記移動体の移動に応じて移動する仮想カメラの制御を行う仮想カメラ制御部と、
前記頭部装着型表示装置の表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部と、
を含み、
前記表示処理部は、
前記移動体の加速度の変化又は前記仮想カメラの視線方向の変化が、所与の変化条件を満たしたと判断される場合に、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行うことを特徴とするシミュレーションシステム。
【請求項２】
請求項１において、
前記表示処理部は、
前記所与の変化条件が満たされた場合に、前記頭部装着型表示装置の表示画像の全体を変化させる表示処理を行うことを特徴とするシミュレーションシステム。
【請求項３】
請求項２において、
前記表示処理部は、
前記表示画像の全体を変化させる表示処理として、前記表示画像をフェードアウトさせる処理を行うことを特徴とするシミュレーションシステム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記表示処理部は、
前記所与の変化条件が満たされた場合に、前記仮想カメラから見える画像に対して所与のエフェクト処理を施す表示処理を行うことを特徴とするシミュレーションシステム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記表示処理部は、
前記移動体の進行方向を、前記進行方向とは異なる方向に変化させる加速度変化イベントが発生した場合に、前記所与の変化条件が満たされたと判断して、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行うことを特徴とするシミュレーションシステム。
【請求項６】
請求項５において、
前記加速度変化イベントは、前記移動体の衝突イベント及び前記移動体の落下イベントの少なくとも１つであることを特徴とするシミュレーションシステム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記表示処理部は、
前記仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミング及び処理度合いの少なくとも一方を、前記所与の変化条件を満たす第１のイベントの発生時と、前記所与の変化条件を満たす第２のイベントの発生時とで異ならせることを特徴とするシミュレーションシステム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記仮想カメラ制御部は、
前記ユーザの一人称視点として設定される前記仮想カメラの制御を行うことを特徴とするシミュレーションシステム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記頭部装着型表示装置を装着する前記ユーザの視点情報のトラッキング情報を取得する入力処理部を含み、
前記仮想カメラ制御部は、
前記トラッキング情報に基づいて前記仮想カメラの位置、姿勢を変化させる一方で、前記移動体の進行方向が変化した場合にも前記仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、前記仮想カメラを設定することを特徴とするシミュレーションシステム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記移動体が移動するコースの状況又は前記移動体の進行方向の変化に応じて、前記ユーザのプレイ位置を変化させる可動筐体を含むことを特徴とするシミュレーションシステム。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
前記移動体が移動するコースの状況に応じた音又は前記移動体の進行方向の変化に応じた出力音を生成する音処理部を含むことを特徴とするシミュレーションシステム。
【請求項１２】
請求項１乃至１１のいずれかにおいて、
前記表示処理部は、
前記ユーザによる設定情報又は前記ユーザのプレイ履歴情報に基づいて、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミング及び処理度合いの少なくとも一方を変化させることを特徴とするシミュレーションシステム。
【請求項１３】
頭部装着型表示装置を装着するユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、
前記移動体の移動に応じて移動する仮想カメラの制御を行う仮想カメラ制御部と、
前記頭部装着型表示装置の表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部として、
コンピュータを機能させ、
前記表示処理部は、
前記移動体の加速度の変化又は前記仮想カメラの視線方向の変化が、所与の変化条件を満たしたと判断される場合に、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションシステム及びプログラム等に関する。
【背景技術】
【０００２】
従来より、ＨＭＤ（頭部装着型表示装置）をユーザが頭部に装着し、ＨＭＤの画面に表示される画像をユーザが見ることで、いわゆるバーチャルリアリティー（ＶＲ）の世界を体感できるシミュレーションシステムが知られている。このようなシミュレーションシステムの従来技術としては、例えば特許文献１等に開示される技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−３０９２６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＨＭＤを用いたシミュレーションシステムでは、仮想空間において仮想カメラから見える画像がＨＭＤに表示される。このような画像をＨＭＤに表示することで、ユーザの視界の全周囲に亘って、広大なＶＲ空間が広がるようになるため、ユーザの仮想現実感を格段に向上できる。
【０００５】
このようなシミュレーションシステムでは、仮想空間においてユーザに対応するキャラクタ等の移動体が移動し、移動体の移動に追従する仮想カメラから見える画像が生成される。この場合に、移動体の進行方向や姿勢が大きく変化する状況が発生すると、仮想カメラの位置や姿勢が変化し、ＨＭＤの表示画像が大きく変化してしまう。そして表示画像の大きな変化は、ユーザの目の負担等になり、例えばユーザの３Ｄ酔い等の問題を招いてしまう。
【０００６】
本発明の幾つかの態様によれば、移動体の加速度の変化や仮想カメラの視線方向の変化が原因でユーザに与えてしまう負担等を軽減できるシミュレーションシステム及びプログラム等を提供できる。
【課題を解決するための手段】
【０００７】
頭部装着型表示装置を装着するユーザに対応する移動体を仮想空間において移動させる処理を行う移動体処理部と、前記移動体の移動に応じて移動する仮想カメラの制御を行う仮想カメラ制御部と、前記頭部装着型表示装置の表示画像として、前記仮想空間において前記仮想カメラから見える画像を生成する表示処理部と、を含み、前記表示処理部は、前記移動体の加速度の変化又は前記仮想カメラの視線方向の変化が、所与の変化条件を満たしたと判断される場合に、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行うシミュレーションシステムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【０００８】
本発明の一態様によれば、ユーザに対応する移動体を仮想空間において移動させる処理が行われ、頭部装着型表示装置の表示画像として、移動体の移動に応じて移動する仮想カメラから見える画像が生成される。そして移動体の加速度の変化又は仮想カメラの視線方向の変化が、所与の変化条件を満たすと、頭部装着型表示装置の表示画像が、仮想カメラから見える画像とは異なる画像に変化する。例えば、移動体の加速度や仮想カメラの視線方向が、所与の変化条件を満たすような変化をした場合に、仮想カメラから見える画像を頭部装着型表示装置の表示画像としてそのまま表示してしまうと、ユーザの目の負担等になってしまう状況が発生する。本発明の一態様によれば、このような状況が発生した場合に、頭部装着型表示装置の表示画像が、仮想カメラから見える通常の画像から、当該画像とは異なる画像に変化するようになる。従って、移動体の加速度の変化や仮想カメラの視線方向の変化が原因でユーザに与えてしまう負担等を軽減できるシミュレーションシステム等の提供が可能になる。
【０００９】
また本発明の一態様では、前記表示処理部は、前記所与の変化条件が満たされた場合に、前記頭部装着型表示装置の表示画像の全体を変化させる表示処理を行ってもよい。
【００１０】
このようにすれば、所与の変化条件が満たされて、仮想カメラから見える画像がユーザの目の負担等になってしまう状況が発生した場合に、頭部装着型表示装置の表示画像の全体が変化することで、当該状況を回避できるようになる。
【００１１】
また本発明の一態様では、前記表示処理部は、前記表示画像の全体を変化させる表示処理として、前記表示画像をフェードアウトさせる処理を行ってもよい。
【００１２】
このようにすれば、所与の変化条件が満たされて、仮想カメラから見える画像がユーザの目の負担等になってしまう状況が発生した場合に、頭部装着型表示装置の表示画像がフェードアウトされることで、当該状況を回避できるようになる。
【００１３】
また本発明の一態様では、前記表示処理部は、前記所与の変化条件が満たされた場合に、前記仮想カメラから見える画像に対して所与のエフェクト処理を施す表示処理を行ってもよい。
【００１４】
このようにすれば、所与の変化条件が満たされた場合に、仮想カメラから見える画像に対して、ユーザの目の負担等を軽減できるエフェクト処理を施すことが可能になる。
【００１５】
また本発明の一態様では、前記表示処理部は、前記移動体の進行方向を、前記進行方向とは異なる方向に変化させる加速度変化イベントが発生した場合に、前記所与の変化条件が満たされたと判断して、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行ってもよい。
【００１６】
このようにすれば、移動体の進行方向を当該進行方向とは異なる方向に変化させるような加速度変化イベントが発生すると、頭部装着型表示装置の表示画像が、仮想カメラから見える画像とは異なる画像に変化して、ユーザの目の負担等を軽減できるようになる。
【００１７】
また本発明の一態様では、前記加速度変化イベントは、前記移動体の衝突イベント及び前記移動体の落下イベントの少なくとも１つであってもよい。
【００１８】
このようにすれば移動体が衝突対象物と衝突したり、移動体が落下するようなイベントが生じた場合に、頭部装着型表示装置の表示画像が、仮想カメラから見える画像とは異なる画像に変化して、衝突時や落下時におけるユーザの目の負担等を軽減できるようになる。
【００１９】
また本発明の一態様では、前記表示処理部は、前記仮想カメラの視線方向の角度変化が、所与の角度以上である場合に、前記所与の変化条件が満たされたと判断して、前記頭部装着型表示装置の表示画像を、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理を行ってもよい。
【００２０】
このようにすれば、仮想カメラの視線方向の変化が所与の角度以上となるような大きな視線方向の変化があった場合に、頭部装着型表示装置の表示画像が、仮想カメラから見える画像とは異なる画像に変化して、視線方向の大きな変化を原因とするユーザの目の負担等を軽減できるようになる。
【００２１】
また本発明の一態様では、前記表示処理部は、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミング及び処理度合いの少なくとも一方を、前記所与の変化条件を満たす第１のイベントの発生時と、前記所与の変化条件を満たす第２のイベントの発生時とで異ならせてもよい。
【００２２】
このようにすれば、各イベントに応じた適切な処理開始タイミングや処理度合いで、仮想カメラから見える画像とは異なる画像に変化させる表示処理を実行できるようになる。
【００２３】
また本発明の一態様では、前記仮想カメラ制御部は、前記ユーザの一人称視点として設定される前記仮想カメラの制御を行ってもよい。
【００２４】
このようにすれば、一人称視点での画像が頭部装着型表示装置に表示されるようなバーチャルリアリティのシステムにおいて、移動体の加速度の変化や仮想カメラの視線方向の変化が原因でユーザに与えてしまう負担等を軽減できるようになる。
【００２５】
また本発明の一態様では、前記頭部装着型表示装置を装着する前記ユーザの視点情報のトラッキング情報を取得する入力処理部を含み（入力処理部としてコンピュータを機能させてもよい）、前記仮想カメラ制御部は、前記トラッキング情報に基づいて前記仮想カメラの位置、姿勢を変化させる一方で、前記移動体の進行方向が変化した場合にも前記仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、前記仮想カメラを設定してもよい。
【００２６】
このようにユーザの視点情報のトラッキング情報に基づいて仮想カメラの位置、姿勢を変化させることで、仮想現実感の高い表示画像を頭部装着型表示装置に表示できる。一方、移動体の進行方向が変化した場合にも、仮想カメラのピッチングやローリングの姿勢変化については無効又は制限することで、表示画像の揺れ等を原因とする３Ｄ酔い等の問題の発生を抑制できるようになる。
【００２７】
また本発明の一態様では、前記移動体が移動するコースの状況又は前記移動体の進行方向の変化に応じて、前記ユーザのプレイ位置を変化させる可動筐体を含んでもよい。
【００２８】
このようにすれば、移動体の進行方向の変化やコースの状況を、可動筐体によりユーザのプレイ位置を変化させることで、ユーザに体感させることが可能になり、３Ｄ酔いの発生等を更に抑制できるようになる。
【００２９】
また本発明の一態様では、前記移動体が移動するコースの状況に応じた音又は前記移動体の進行方向の変化に応じた出力音を生成する音処理部を含んでもよい（音処理部としてコンピュータを機能させてもよい）。
【００３０】
このようにすれば、移動体の進行方向の変化やコースの状況を、出力音の変化によりユーザに聴覚的に認識させることが可能になり、３Ｄ酔いの発生等を更に抑制できるようになる。
【００３１】
また本発明の一態様では、前記表示処理部は、前記ユーザによる設定情報又は前記ユーザのプレイ履歴情報に基づいて、前記仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミング及び処理度合いの少なくとも一方を変化させてもよい。
【００３２】
このようにすれば、ユーザが入力した設定情報や、ユーザの過去のプレイ履歴情報などに基づいて、仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミングや処理度合いを設定できるようになる。
【図面の簡単な説明】
【００３３】
【図１】本実施形態のシミュレーションシステムの構成例を示すブロック図。
【図２】図２（Ａ）、図２（Ｂ）は本実施形態に用いられるＨＭＤの一例。
【図３】図３（Ａ）、図３（Ｂ）は本実施形態に用いられるＨＭＤの他の例。
【図４】シミュレーションシステムの一例であるスキーシミュレータの構成例。
【図５】スキーシミュレータでのゲーム画像の例。
【図６】シミュレーションシステムの一例であるロボットシミュレータの構成例。
【図７】ロボットシミュレータでのゲーム画像の例。
【図８】図８（Ａ）〜図８（Ｃ）はキャラクタが岩に衝突した場合の加速度変化が原因で発生する問題点の説明図。
【図９】図９（Ａ）〜図９（Ｃ）はキャラクタが崖から落下した場合の加速度変化が原因で発生する問題点の説明図。
【図１０】図１０（Ａ）、図１０（Ｂ）はキャラクタが岩に衝突する場面を説明するゲーム画像の例。
【図１１】図１１（Ａ）、図１１（Ｂ）はキャラクタが岩に衝突する場面でのフェードアウト処理を説明するゲーム画像の例。
【図１２】図１２（Ａ）、図１２（Ｂ）はキャラクタが崖から落下する場面を説明するゲーム画像の例。
【図１３】図１３（Ａ）、図１３（Ｂ）はキャラクタが崖から落下する場面でのフェードアウト処理を説明するゲーム画像の例。
【図１４】図１４（Ａ）、図１４（Ｂ）は本実施形態のエフェクト処理の説明図。
【図１５】図１５（Ａ）〜図１５（Ｃ）はキャラクタが転倒した場合の仮想カメラの視線方向の変化が原因で発生する問題点の説明図。
【図１６】図１６（Ａ）、図１６（Ｂ）はフェードアウト処理やエフェクト処理の開始タイミングを各イベントに応じて設定する手法の説明図。
【図１７】図１７（Ａ）、図１７（Ｂ）は各イベントに応じた処理開始タイミングや処理度合いを設定する手法の説明図。
【図１８】移動体の進行方向の変化に伴う仮想カメラの姿勢変化の問題点の説明図。
【図１９】図１９（Ａ）〜図１９（Ｃ）はトラッキング情報に基づいて仮想カメラの位置、姿勢を変化させる手法の説明図。
【図２０】仮想カメラの姿勢変化を無効にする手法の説明図。
【図２１】仮想カメラの姿勢変化を無効にする手法の説明図。
【図２２】仮想カメラの姿勢変化の無効処理の第１の実現手法の説明図。
【図２３】仮想カメラの姿勢変化の無効処理の第２の実現手法の説明図。
【図２４】図２４（Ａ）〜図２４（Ｃ）は崖からの落下時における仮想カメラの設定手法の説明図。
【図２５】図２５（Ａ）〜図２５（Ｃ）は岩との衝突時における仮想カメラの設定手法の説明図。
【図２６】可動筐体、出力音の制御手法の説明図。
【図２７】ユーザの設定情報に基づき処理開始タイミングや処理度合いを設定する手法の説明図。
【図２８】プレイ履歴に基づき処理開始タイミングや処理度合いを設定する手法の説明図。
【図２９】本実施形態の詳細な処理例を示すフローチャート。
【発明を実施するための形態】
【００３４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３５】
１．シミュレーションシステム
図１は、本実施形態のシミュレーションシステム（シミュレータ、ゲームシステム）の構成例を示すブロック図である。本実施形態のシミュレーションシステムは例えばバーチャルリアリティ（ＶＲ）をシミュレートするシステムであり、ゲームコンテンツを提供するゲームシステム、スポーツ競技シミュレータや運転シミュレータなどのリアルタイムシミュレーションシステム、映像等のコンテンツを提供するコンテンツ提供システム、或いは遠隔作業を実現するオペレーティングシステムなどの種々のシステムに適用可能である。なお、本実施形態のシミュレーションシステムは図１の構成に限定されず、その構成要素（各部）の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００３６】
可動筐体４０は、ユーザのプレイ位置等を変化させる筐体である。例えば可動筐体４０は、移動体の進行方向の変化又は移動体が移動するコースの状況に応じて、ユーザのプレイ位置を変化させる。可動筐体４０の詳細について後述する。
【００３７】
操作部１６０は、ユーザ（プレーヤ）が種々の操作情報（入力情報）を入力するためのものである。操作部１６０は、例えば操作ボタン、方向指示キー、ジョイスティック、ハンドル、ペダル又はレバー等の種々の操作デバイスにより実現できる。例えば後述の図４では、操作部材４３、４４、足台４５、４６などにより操作部１６０が実現されている。図６では、操作レバー１６１、１６２、アクセルペダル１６３、ブレーキペダル１６４などにより操作部１６０が実現されている。
【００３８】
記憶部１７０は各種の情報を記憶する。記憶部１７０は、処理部１００や通信部１９６などのワーク領域として機能する。ゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。記憶部１７０の機能は、半導体メモリ（ＤＲＡＭ、ＶＲＡＭ）、ＨＤＤ（ハードディスクドライブ）、ＳＳＤ、光ディスク装置などにより実現できる。記憶部１７０は、オブジェクト情報記憶部１７２、描画バッファ１７８を含む。
【００３９】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＢＤ、ＣＤ）、ＨＤＤ、或いは半導体メモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータ（入力装置、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００４０】
ＨＭＤ２００（頭部装着型表示装置）は、ユーザの頭部に装着されて、ユーザの眼前に画像を表示する装置である。ＨＭＤ２００は非透過型であることが望ましいが、透過型であってもよい。またＨＭＤ２００は、いわゆるメガネタイプのＨＭＤであってもよい。
【００４１】
ＨＭＤ２００は、センサ部２１０、表示部２２０、処理部２４０を含む。なおＨＭＤ２００に発光素子を設ける変形実施も可能である。センサ部２１０は、例えばヘッドトラッキングなどのトラッキング処理を実現するためものである。例えばセンサ部２１０を用いたトラッキング処理により、ＨＭＤ２００の位置、方向を特定する。ＨＭＤ２００の位置、方向が特定されることで、ユーザの視点位置、視線方向を特定できる。
【００４２】
トラッキング方式としては種々の方式を採用できる。トラッキング方式の一例である第１のトラッキング方式では、後述の図２（Ａ）、図２（Ｂ）で詳細に説明するように、センサ部２１０として複数の受光素子（フォトダイオード等）を設ける。そして外部に設けられた発光素子（ＬＥＤ等）からの光（レーザー等）をこれらの複数の受光素子により受光することで、現実世界の３次元空間でのＨＭＤ２００（ユーザの頭部）の位置、方向を特定する。第２のトラッキング方式では、後述の図３（Ａ）、図３（Ｂ）で詳細に説明するように、複数の発光素子（ＬＥＤ）をＨＭＤ２００に設ける。そして、これらの複数の発光素子からの光を、外部に設けられた撮像部で撮像することで、ＨＭＤ２００の位置、方向を特定する。第３のトラッキング方式では、センサ部２１０としてモーションセンサを設け、このモーションセンサを用いてＨＭＤ２００の位置、方向を特定する。モーションセンサは例えば加速度センサやジャイロセンサなどにより実現できる。例えば３軸の加速度センサと３軸のジャイロセンサを用いた６軸のモーションセンサを用いることで、現実世界の３次元空間でのＨＭＤ２００の位置、方向を特定できる。なお、第１のトラッキング方式と第２のトラッキング方式の組合わせ、或いは第１のトラッキング方式と第３のトラッキング方式の組合わせなどにより、ＨＭＤ２００の位置、方向を特定してもよい。またＨＭＤ２００の位置、方向を特定することでユーザの視点位置、視線方向を特定するのではなく、ユーザの視点位置、視線方向を直接に特定するトラッキング処理を採用してもよい。
【００４３】
ＨＭＤ２００の表示部２２０は例えば液晶ディスプレイ（ＬＣＤ）や有機ＥＬディスプレイなどにより実現できる。例えばＨＭＤ２００には、表示部２２０として、ユーザの左目の前に配置される第１のディスプレイと、右目の前に配置される第２のディスプレイが設けられており、例えば立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左目用画像と右目用画像を生成し、第１のディスプレイに左目用画像を表示し、第２のディスプレイに右目用画像を表示すればよい。なお１つのディスプレイの第１、第２の表示領域に左目用画像、右目用画像を表示するようにしてもよい。
【００４４】
ＨＭＤ２００の処理部２４０は、ＨＭＤ２００において必要な各種の処理を行う。例えば処理部２４０は、センサ部２１０の制御処理や表示部２２０の表示制御処理などを行う。また処理部２４０が、３次元音響（立体音響）処理を行って、３次元的な音の方向や距離や広がりの再現を実現してもよい。
【００４５】
音出力部１９２は、本実施形態により生成された音を出力するものであり、例えばスピーカ又はヘッドホン等により実現できる。
【００４６】
Ｉ／Ｆ（インターフェース）部１９４は、携帯型情報記憶媒体１９５とのインターフェース処理を行うものであり、その機能はＩ／Ｆ処理用のＡＳＩＣなどにより実現できる。携帯型情報記憶媒体１９５は、ユーザが各種の情報を保存するためのものであり、電源が非供給になった場合にもこれらの情報の記憶を保持する記憶装置である。携帯型情報記憶媒体１９５は、ＩＣカード（メモリカード）、ＵＳＢメモリ、或いは磁気カードなどにより実現できる。
【００４７】
通信部１９６は、有線や無線のネットワークを介して外部（他の装置）との間で通信を行うものであり、その機能は、通信用ＡＳＩＣ又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【００４８】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバ（ホスト装置）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０）に配信してもよい。このようなサーバ（ホスト装置）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００４９】
処理部１００（プロセッサ）は、操作部１６０からの操作情報や、ＨＭＤ２００でのトラッキング情報（ＨＭＤの位置及び方向の少なくとも一方の情報。視点位置及び視線方向の少なくとも一方の情報）や、プログラムなどに基づいて、ゲーム処理（シミュレーション処理）、移動体処理、仮想カメラ制御処理、表示処理、或いは音処理などを行う。
【００５０】
処理部１００の各部が行う本実施形態の各処理（各機能）はプロセッサ（ハードウェアを含むプロセッサ）により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリにより実現できる。プロセッサは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。プロセッサは、例えばＣＰＵ（Central Processing Unit）であってもよい。但し、プロセッサはＣＰＵに限定されるものではなく、ＧＰＵ（Graphics Processing Unit）、或いはＤＳＰ（Digital Signal Processor）等、各種のプロセッサを用いることが可能である。またプロセッサはＡＳＩＣによるハードウェア回路であってもよい。メモリ（記憶部１７０）は、ＳＲＡＭ、ＤＲＡＭ等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置（ＨＤＤ）等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部１００の各部の処理（機能）が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
【００５１】
処理部１００は、入力処理部１０２、演算処理部１１０、出力処理部１４０を含む。演算処理部１１０は、ゲーム処理部１１２、可動筐体処理部１１３、移動体処理部１１４、オブジェクト空間設定部１１６、仮想カメラ制御部１１８、表示処理部１２０、音処理部１３０を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ（或いはプロセッサ及びメモリ）により実現できる。なお、これらの構成要素（各部）の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００５２】
入力処理部１０２は、操作情報やトラッキング情報を受け付ける処理や、記憶部１７０から情報を読み出す処理や、通信部１９６を介して情報を受信する処理を、入力処理として行う。例えば入力処理部１０２は、操作部１６０を用いてユーザが入力した操作情報やＨＭＤ２００のセンサ部２１０等により検出されたトラッキング情報を取得する処理や、読み出し命令で指定された情報を、記憶部１７０から読み出す処理や、外部装置（サーバ等）からネットワークを介して情報を受信する処理を、入力処理として行う。ここで受信処理は、通信部１９６に情報の受信を指示したり、通信部１９６が受信した情報を取得して記憶部１７０に書き込む処理などである。
【００５３】
演算処理部１１０は、各種の演算処理を行う。例えばゲーム処理（シミュレーション処理）、移動体処理、仮想カメラ制御処理、表示処理、或いは音処理などの演算処理を行う。
【００５４】
ゲーム処理部１１２（ゲーム処理のプログラムモジュール）はユーザがゲームをプレイするための種々のゲーム処理を行う。別の言い方をすれば、ゲーム処理部１１２（シミュレーション処理部）は、ユーザが仮想現実（バーチャルリアリティ）を体験するための種々のシミュレーション処理を実行する。ゲーム処理は、例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、開始したゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、或いはゲーム成績を演算する処理などである。
【００５５】
可動筐体処理部１１３（可動筐体処理のプログラムモジュール）は、可動筐体４０についての種々の処理を行う。例えば可動筐体４０の制御処理を行ったり、可動筐体４０を制御するための種々の情報の検出処理を行う。例えば可動筐体処理部１１３は、後述の図４のエアバネ部５０〜５３などの制御処理を行う。例えばエアバネ部５０〜５３を伸縮させるための制御処理を行う。また操作部材４３、４４によるスイング操作や、足台４５、４６によるエッジング操作が行われた場合に、可動筐体処理部１１３は、その操作情報の検出処理を行い、検出された操作情報に基づいて、可動筐体４０の制御処理等を実行する。また可動筐体処理部１１３は、図６のベース部４５２の姿勢を変化（ピッチング、ローリング等）させる電動シリンダ（不図示）の制御処理を行う。例えば電動シリンダのロッド部の直線運動を制御する処理を行う。また可動筐体処理部１１３は、図６の操作レバー１６１、１６２、アクセルペダル１６３、ブレーキペダル１６４による操作情報の検出処理を行い、検出された操作情報に基づいて、可動筐体４０の制御処理等を実行する。
【００５６】
移動体処理部１１４（移動体処理のプログラムモジュール）は、仮想空間内で移動する移動体についての種々の処理を行う。例えば仮想空間であるオブジェクト空間（ゲーム空間）において移動体を移動させる処理や、移動体を動作させる処理を行う。例えば移動体処理部１１４は、操作部１６０によりユーザが入力した操作情報や、取得されたトラッキング情報や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、移動体（モデルオブジェクト）をオブジェクト空間内（仮想空間内）で移動させたり、移動体を動作（モーション、アニメーション）させる制御処理を行う。具体的には、移動体の移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（例えば１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００５７】
移動体は、例えば実空間のユーザ（プレーヤ）に対応する仮想空間の仮想ユーザ（仮想プレーヤ）、或いは当該仮想ユーザが搭乗（操作）する搭乗移動体（操作移動体）などである。例えば移動体は、後述の図４のスキーシミュレータにおいて、ユーザに対応して仮想空間でスキーを行うキャラクタ（仮想ユーザ）である。或いは、図６のロボットシミュレータにおいてユーザに対応するキャラクタ（仮想ユーザ）が搭乗するロボット（搭乗移動体）である。
【００５８】
オブジェクト空間設定部１１６（オブジェクト空間設定処理のプログラムモジュール）は、複数のオブジェクトが配置されるオブジェクト空間（広義には仮想空間）の設定処理を行う。例えば、移動体（人、ロボット、車、電車、飛行機、船、モンスター又は動物等）、マップ（地形）、建物、観客席、コース（道路）、樹木、壁、水面などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のオブジェクト情報記憶部１７２には、オブジェクト空間でのオブジェクト（パーツオブジェクト）の位置、回転角度、移動速度、移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部１１６は、例えば各フレーム毎にこのオブジェクト情報を更新する処理などを行う。
【００５９】
仮想カメラ制御部１１８（仮想カメラ制御処理のプログラムモジュール）は、オブジェクト空間の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点、基準仮想カメラ）の制御処理を行う。例えば仮想カメラの位置（視点位置）又は姿勢（視線方向）を制御する処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）や、姿勢情報である回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。この仮想カメラはユーザ（仮想ユーザ）の視点に相当する。立体視表示の場合は、左目用の第１の視点（左目用の第１の仮想カメラ）と、右目用の第２の視点（右目用の第２の仮想カメラ）が設定される。
【００６０】
表示処理部１２０（表示処理のプログラムモジュール）は、ゲーム画像（シミュレーション画像）の表示処理を行う。例えば処理部１００で行われる種々の処理（ゲーム処理、シミュレーション処理）の結果に基づいて描画処理を行い、これにより画像を生成し、ＨＭＤ２００の表示部２２０に表示する。具体的には、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を、描画バッファ１７８（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画する。これにより、オブジェクト空間（仮想空間）において仮想カメラ（所与の視点。左目用、右目用の第１、第２の視点）から見える画像が生成される。なお、表示処理部１２０で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
【００６１】
音処理部１３０（音処理のプログラムモジュール）は、処理部１００で行われる種々の処理の結果に基づいて音処理を行う。具体的には、楽曲（音楽、ＢＧＭ）、効果音、又は音声などのゲーム音を生成し、ゲーム音を音出力部１９２に出力させる。なお音処理部１３０の音処理の一部（例えば３次元音響処理）を、ＨＭＤ２００の処理部２４０により実現してもよい。
【００６２】
出力処理部１４０は各種の情報の出力処理を行う。例えば出力処理部１４０は、記憶部１７０に情報を書き込む処理や、通信部１９６を介して情報を送信する処理を、出力処理として行う。例えば出力処理部１４０は、書き込み命令で指定された情報を、記憶部１７０に書き込む処理や、外部の装置（サーバ等）に対してネットワークを介して情報を送信する処理を行う。送信処理は、通信部１９６に情報の送信を指示したり、送信する情報を通信部１９６に指示する処理などである。
【００６３】
そして本実施形態のシミュレーションシステムは、図１に示すように、移動体処理部１１４と仮想カメラ制御部１１８と表示処理部１２０を含む。また入力処理部１０２を含むことができる。
【００６４】
移動体処理部１１４は、ユーザに対応する移動体（仮想ユーザ、搭乗移動体等）を仮想空間（オブジェクト空間）において移動させる処理を行う。例えば移動体の位置、方向の情報を所定期間毎（例えばフレーム毎）に求める処理を行って、仮想空間のコースなどにおいて移動体を移動させる処理を行う。また移動体処理部１１４は移動体を動作させる処理（モーション処理）なども行う。
【００６５】
仮想カメラ制御部１１８は、移動体の移動に応じて移動する仮想カメラの制御を行う。例えば移動体に追従するように移動する仮想カメラの制御を行う。例えば仮想カメラ制御部１１８は、ユーザの一人称視点として設定される仮想カメラの制御を行う。例えば仮想空間において移動する移動体の視点に対応する位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置（位置座標）や姿勢（回転軸回りでの回転角度）を制御する。
【００６６】
表示処理部１２０は、ＨＭＤ２００の表示画像（表示映像）として、仮想空間において仮想カメラ（ユーザ視点）から見える画像を生成する。例えば仮想空間であるオブジェクト空間において所与の視点から見える画像を生成する。生成される画像は立体視用の画像であることが望ましい。
【００６７】
そして表示処理部１２０は、移動体の加速度の変化又は仮想カメラの視線方向の変化が、所与の変化条件を満たしたと判断される場合に、ＨＭＤ２００の表示画像を、仮想カメラから見える画像とは異なる画像に変化させる表示処理を行う。例えば表示処理部１２０は、所与の変化条件を満たしたと判断される場合に、通常のゲーム画像（シミュレーション画像）として表示される画像とは異なる画像に、ＨＭＤ２００の表示画像を変化させる。例えばゲーム処理（シミュレーション処理）の結果に基づきリアルタイムに更新されるゲーム画像（シミュレーション画像）とは異なる画像に変化させる。例えば移動体の加速度の変化や仮想カメラの視線方向の変化を原因とするユーザの目等の負担（３Ｄ酔い等）が軽減される画像に、ＨＭＤ２００の表示画像を変化させる。所与の変化条件を満たしたか否かは、例えば移動体の加速度の変化又は仮想カメラの視線方向の変化を実際に監視することで判断してもよいし、所与の変化条件を満たすようなイベント（加速度変化イベント又は視線方向変化イベント等）が発生したか否かに基づいて判断してもよい。
【００６８】
例えば表示処理部１２０は、所与の変化条件が満たされた場合に、ＨＭＤ２００の表示画像の全体を変化させる表示処理を行う。即ち、表示画像を全体的に変化させるような表示処理を行う。例えば表示処理部１２０は、表示画像の全画素を対象とするような表示処理を行う。具体的には、表示画像の全画素の画素値を所与の値（例えば白又は黒などの所定色に対応する画素値）に変化させるような表示処理を行う。或いは、表示画像の全画素を対象とするようなエフェクト処理（フィルタ処理）を行う。
【００６９】
例えば表示処理部１２０は、表示画像の全体を変化させる表示処理として、表示画像をフェードアウトさせる処理を行う。例えば所与の条件が満たすようなイベントが発生した場合に、例えば所与の時間経過後に表示画像をフェードアウトさせる処理を行う。フェードアウト処理は、例えば表示画像の画素（全画素）の色を徐々に所定色に近づける処理である。フェードアウト処理としては、例えばホワイトアウト処理やブラックアウト処理などがある。ホワイトアウト処理は、表示画像の画素の色（輝度値）を徐々に白くする処理である。ブラックアウト処理は、表示画像の画素の色を徐々に黒くする処理である。なお、フェードアウト処理は、ホワイトアウト処理やブラックアウト処理には限定されず、例えば表示画像の全画素の色を徐々に赤くするレッドアウト処理などの種々の処理を想定できる。
【００７０】
また表示処理部１２０は、所与の変化条件が満たされた場合に、仮想カメラから見える画像に対して所与のエフェクト処理を施す表示処理を行ってもよい。例えば所与の条件が満たすようなイベントが発生した場合に、例えば所与の時間経過後に、仮想カメラから見える画像に対して所与のエフェクト処理を行う。このようにすることで、所与の変化条件が満たされた場合に、ＨＭＤ２００の表示画像を、仮想カメラから見える画像とは異なる画像に変化させることができる。この場合のエフェクト処理としては、例えばぼかし処理、半透明合成処理、二値化処理、或いはモザイク処理などの種々の処理を想定できる。例えばエフェクト処理は、仮想カメラから見える画像に対して各種の画像フィルタ処理を施すことで実現できる。画像フィルタ処理としては、例えば移動平均フィルタ処理、ガウシアンフィルタ処理、或いはメディアンフィルタ処理などの種々の処理を想定できる。例えば表示処理部１２０は、ゲーム処理（シミュレーション処理）によりリアルタイムに生成された画像に対して、画像フィルタ処理などを施すことで、所与の変化条件が満たされた場合のエフェクト処理を実現する。このエフェクト処理は、ＨＭＤ２００の表示画像の全体に対して行われるものであることが望ましいが、一部の領域に対して行われるものであってもよい。
【００７１】
また表示処理部１２０は、移動体の進行方向を、進行方向とは異なる方向に変化させる加速度変化イベントが発生した場合に、所与の変化条件が満たされたと判断する。そしてＨＭＤ２００の表示画像を、仮想カメラから見える画像とは異なる画像に変化させる表示処理を行う。例えば移動体の進行方向を、左方向、右方向、下方向或いは上方向などの方向に変化させるような加速度（仮想空間での擬似的な加速度）が作用したと判断される加速度変化イベントが発生した場合に、所与の変化条件が満たされたと判断する。例えば、このような加速度変化イベントの発生条件が満たされた場合に、所与の変化条件が満たされたと判断する。例えば第１〜第Ｎの加速度変化イベントを用意しておく。そして第１〜第Ｎの加速度変化イベントの第ｍ（１≦ｍ≦Ｎ）の加速度変化イベントが発生したと判断された場合には、仮想カメラから見える画像とは異なる画像に変化させる表示処理として、当該第ｍの加速度変化イベントに対応づけられた表示処理を行う。具体的には、第ｍの加速度変化イベントに対応する処理開始タイミングや処理度合いで、当該表示処理を実行する。
【００７２】
ここで加速度変化イベントは、例えば移動体の衝突イベント及び移動体の落下イベントの少なくとも１つである。なお加速度変化イベントは、衝突イベントや落下イベント以外のイベントであってもよい。例えば加速度変化イベントは、急減速イベント、急加速イベント、或いは急斜面走行イベントなどであってもよい。
【００７３】
衝突イベントは、例えば移動体が仮想空間内の他のオブジェクトと衝突するイベントである。このように他のオブジェクトに衝突することで、移動体の進行方向を変化させる加速度（衝突の反作用による加速度）が発生したと考えられるため、加速度変化について所与の変化条件が満たされたと判断する。そしてＨＭＤ２００の表示画像を、仮想カメラから見える画像とは異なる画像に変化させる表示処理が行われる。
【００７４】
落下イベントは、例えば移動体が下側方向等に落下移動するイベントである。例えば落下イベントは、移動体の下方にコース（マップ）が存在しなくなり、下側方向に移動体が落下するイベントである。このように移動体が落下することで、移動体の進行方向を下側方向に変化させる加速度（重力による加速度）が発生したと考えられるため、加速度変化について所与の変化条件が満たされたと判断する。そしてＨＭＤ２００の表示画像を、仮想カメラから見える画像とは異なる画像に変化させる表示処理が行われる。この場合に、例えば衝突イベントの発生時の当該表示処理と、落下イベントの発生時の当該表示処理は、その処理内容を異ならせてもよい。例えば当該表示処理の処理開始タイミング及び処理度合いの少なくとも一方を異ならせる。
【００７５】
また表示処理部１２０は、仮想カメラの視線方向の角度変化が、所与の角度以上である場合に、所与の変化条件が満たされたと判断して、ＨＭＤ２００の表示画像を、仮想カメラから見える画像とは異なる画像に変化させる表示処理を行う。例えば移動体が転倒したり、回転したり、或いは移動制御が不能になるなどして、仮想カメラの視線方向の角度変化が、所与の角度以上になるような状況が発生した場合に、所与の変化条件が満たされたと判断する。例えば前述の衝突イベントや落下イベントと同様に、仮想カメラの視線方向の角度変化が所与の角度以上となるイベントが発生した場合に、所与の変化条件が満たされたと判断し、仮想カメラから見える画像とは異なる画像に変更する処理を実行する。
【００７６】
また表示処理部１２０は、仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミング及び処理度合いの少なくとも一方を、所与の変化条件を満たす第１のイベントの発生時と、所与の変化条件を満たす第２のイベントの発生時とで異ならせる。例えば第１のイベントでは、第２のイベントに比べて、当該表示処理の処理開始タイミングを早くする。また第１のイベントでは、第２のイベントに比べて、当該表示処理の処理度合いを強くする。処理開始タイミングは、フェードアウト処理やエフェクト処理などの処理が開始されるまでのタイミングである。処理度合いは、例えばフェードアウト処理におけるフェードアウト時間（元の画像から所定色に変化するまでに要する時間）や、エフェクト処理におけるエフェクトの強さ（フィルタの強さ）などを表すものであり、フェードアウト処理やエフェクト処理の処理パラメータとして設定されるものである。第１のイベントは例えば前述の衝突イベントであり、第２のイベントは例えば落下イベントであるが、これには限定されず、第１、第２のイベントとしては種々のイベントを想定できる。
【００７７】
また本実施形態のシミュレーションシステムは入力処理部１０２を含む。そして入力処理部１０２（入力受け付け部）は、ＨＭＤ２００（頭部装着型表示装置）を装着するユーザの視点情報のトラッキング情報を取得する。例えばユーザの視点位置、視線方向の少なくとも１つである視点情報のトラッキング情報（視点トラッキング情報）を取得する。このトラッキング情報は、例えばＨＭＤ２００のトラッキング処理を行うことで取得できる。なおトラッキング処理によりユーザの視点位置、視線方向を直接に取得するようにしてもよい。
【００７８】
そして仮想カメラ制御部１１８は、ユーザの一人称視点として設定される仮想カメラの制御を行う。例えば仮想カメラ制御部１１８は、トラッキング情報（ユーザの視点位置及び視線方向の少なくとも一方の情報）に基づいて仮想カメラの位置、姿勢を変化させる。例えば、仮想カメラ制御部１１８は、実空間でのユーザの視点位置、視線方向の変化に応じて仮想カメラの位置（視点位置）、姿勢（視線方向）が変化するように、仮想カメラを設定する。
【００７９】
例えば仮想空間での仮想ユーザの視点（一人称視点）に対して仮想カメラが設定される。そしてＨＭＤ２００を装着した実空間（実世界）のユーザが首を振ったり、体を動かすなどして、ユーザの視点位置や視線方向が変化すると、仮想空間の仮想ユーザの視点位置や視線方向もそれに応じて変化する。即ち、実空間でのユーザの視点位置や視線方向が変化すると、それに応じて仮想空間での仮想カメラの位置や姿勢が変化する。またユーザが操作部１６０を操作することなどにより、仮想ユーザ（キャラクタ）やその搭乗移動体（ロボット、電車、車、バイク、自転車、飛行機又は船等）が仮想空間内で移動すると、その移動に追従するように仮想カメラの位置（仮想ユーザの視点位置）も変化する。このようにすることで、ユーザは、あたかも自身の分身である仮想ユーザやその搭乗移動体が仮想空間で移動するような仮想現実を体験できるようになる。なお仮想空間での仮想ユーザの視点は、例えば一人称視点になるが、その一人称視点の画像に、例えば仮想ユーザ（キャラクタ）の体の一部が映ったり、搭乗移動体の内部の様子が映るようにしてもよい。
【００８０】
その一方で仮想カメラ制御部１１８は、移動体の進行方向が変化した場合にも、仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、仮想カメラを設定する。例えば移動体の進行方向の変化に依存せずに、ピッチングやローリングを行わないように仮想カメラの姿勢を設定する。例えば実空間でのユーザの視点位置や視線方向が変化すると、それに応じて仮想カメラの位置や姿勢は変化するが、移動体の進行方向が変化した場合に、仮想カメラは、移動体の進行方向に応じたピッチングやローリングは行わないようになる。例えば、ピッチ角やロール角が初期の設定角度から変化せずに一定になるように、仮想カメラが設定される。例えばピッチング（ピッチ角）については、仮想空間のワールド座標系において例えば水平方向の面（ＸＺ平面）に平行になるように仮想カメラが設定される。ローリング（ロール角）については、例えばワールド座標系の鉛直方向（Ｙ軸）から変化しないように仮想カメラが設定される。なお、ピッチングやローリングの姿勢変化を無効にするとは、ピッチングやローリングの姿勢変化を行わないようにすることである。ピッチングやローリングの姿勢変化を制限するとは、移動体の進行方向に応じたピッチングやローリングの回転角度よりも、小さい回転角度（十分に小さい回転角度）でピッチングやローリングの姿勢変化を行わせることである。
【００８１】
なお仮想カメラの姿勢は、例えば、仮想カメラの視線方向のベクトルと、仮想カメラの上方向のベクトル（仮想カメラの上向き方向がどの方向であるかを表すベクトル）とにより規定できる。視線方向のベクトルは仮想カメラの注視位置により設定できる。例えば仮想カメラの視線方向のベクトルを変化させることで、仮想カメラのピッチングやヨーイングの姿勢変化（回転移動）を実現できる。例えば仮想カメラの上方向のベクトルを変化させることで、仮想カメラのローリングの姿勢変化（回転移動）を実現できる。
【００８２】
また入力処理部１０２は、ＨＭＤ２００のトラッキング処理により得られたトラッキング情報を取得する。例えば後述の図２（Ａ）〜図３（Ｂ）のようなＨＭＤ２００のトラッキング処理により、ユーザの視点位置及び視線方向の少なくとも１つである視点情報を特定するためのトラッキング情報を取得する。そして、このトラッキング情報は、ユーザの初期視点情報からの視点情報の変化情報を含む。例えばトラッキング情報は、ユーザの初期視点位置からの視点位置の変化情報（視点位置の座標の変化値）、及び、ユーザの初期視線方向からの視線方向の変化情報（視線方向の回転軸回りでの回転角度の変化値）の少なくとも一方を含む。このようなトラッキング情報が含む視点情報の変化情報に基づいて、ユーザの視点位置や視線方向を特定できるようになる。
【００８３】
また移動体処理部１１４は、移動体の進行方向が変化した場合にも、移動体のピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されるように、移動体を移動させる処理を行う。例えばコース等を移動する移動体の進行方向が変化した場合にも、移動体の姿勢のピッチングやローリングが変化しないように、移動体のモデルオブジェクトが、その移動位置に配置設定される。そして仮想カメラ制御部１１８は、姿勢変化が無効又は制限された移動体の視点の位置に、仮想カメラを設定する。例えば仮想ユーザに対応する移動体の一人称視点の位置に、仮想カメラが配置設定される。このようにすることで、移動体の進行方向が変化した場合にも、仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるようになる。
【００８４】
この場合に具体的には、例えばワールド座標系において移動体のローカル座標系の基準位置を移動させる処理が行われる。ローカル座標系の基準位置は、例えば原点位置であり、例えば移動体の所定位置（例えば後述する足元位置や腰の位置等）がローカル座標系の原点位置になるように移動体が配置設定される。そしてワールド座標系に対するローカル座標系のピッチング及びローリングの少なくとも一方の回転移動が無効又は制限されるように、ローカル座標系が設定される。そしてローカル座標系における移動体の視点の位置に、仮想カメラの視点座標系（視点座標系の原点）が設定される。
【００８５】
なお、移動体の進行方向が変化した場合にも、移動体のピッチングやローリングの姿勢変化が無効又は制限されるように移動体を移動させる手法では、仮想カメラの姿勢の制御手法は、上述した手法には限定されない。またＨＭＤ２００に対して画像を表示する代わりに、プロジェクション用のスクリーンに対して投影装置により画像を投影するようにしてもよい。プロジェクション用スクリーンは、１つの曲面又は複数の面により構成されるスクリーンであり、例えばドーム形状のスクリーンと呼ばれる曲面スクリーンである。
【００８６】
また移動体の姿勢は、複数の各回転軸回り（Ｘ軸、Ｙ軸、Ｚ軸）での移動体（モデルオブジェクト）の回転角度により規定できる。移動体の姿勢変化は各回転軸回りでの回転移動である。例えば移動体の姿勢は、ワールド座標系に対する移動体のローカル座標系の各回転軸回りでの回転角度により規定でき、例えば座標変換の回転行列により表すことができる。
【００８７】
また移動体処理部１１４は、仮想空間のコースの状態の変化により移動体の進行方向が変化した場合にも、移動体のピッチング及びローリングの少なくとも一方の姿勢変化が無効又は制限されるように、コースにおいて移動体を移動させる処理を行う。そして移動体に付随する所与のオブジェクトについては、コースの形状に応じて姿勢を変化させる。
【００８８】
例えばコースに対応するコース情報が記憶部１７０に記憶され、移動体処理部１１４は、このコース情報に基づいて移動体の移動処理を行う。例えばコース上の各ポイントに対応づけて、コースの高さ情報や方向情報などのコース情報が記憶され、移動体処理部１１４は、移動体の位置に対応するポイントのコース情報を読み出して、移動体を進行方向に移動させる処理を実行する。例えば下り坂のコースでは下り方向に移動し、上り坂のコースでは上り方向に移動するように、移動体の進行方向が設定される。また右カーブのコースでは右方向に曲がり、左カーブのコースでは左方向に曲がるように、移動体の進行方向が設定される。そして、このように移動体の進行方向が変化した場合にも、移動体がピッチングやローリングの姿勢変化を行わないように（当該姿勢変化が制限されるように）、移動体の移動処理が実行される。そしてこの場合にも、移動体に付随する所与のオブジェクト（例えばスキー板や、移動体であるキャラクタの体の一部等）については、コースの状態（形状等）に応じて姿勢を変化させる。例えば下り坂のコースでは、下り坂に沿うように、当該所与のオブジェクトの姿勢を変化させ、上がり坂のコースでは、上がり坂に沿うように、当該所与のオブジェクトの姿勢を変化させる。
【００８９】
また移動体処理部１１４は、移動体の進行方向の変化に応じて移動体の姿勢が変化するように移動体を移動させる処理を行う。例えば下り方向に進む進行方向である場合には、下り方向に移動しているように見える姿勢に変化させ、上り方向に進む進行方向である場合には、上り方向に移動しているように見える姿勢に変化させて、移動体を移動させる。同様に右方向や左方向に曲がる進行方向の場合には、右に曲がったり、左に曲がっているように見える姿勢に変化させて、移動体を移動させる。この場合に仮想カメラ制御部１１８は、移動体の進行方向の変化に応じて移動体の姿勢が変化した場合にも、仮想カメラのピッチング及びローリングの少なくとも一方の姿勢変化については無効又は制限されるように、仮想カメラを設定する。例えば下り方向や上り方向に進む進行方向であり、下り方向や上り方向に対応する姿勢に、移動体の姿勢が変化した場合にも、仮想カメラのピッチングの姿勢変化については無効又は制限する。例えば仮想カメラがピッチングの姿勢変化を行わないようにする。また例えば右方向や左方向に曲がる進行方向であり、右方向や左方向に曲がる姿勢に、移動体の姿勢が変化した場合にも、仮想カメラのローリングの姿勢変化については無効又は制限する。例えば仮想カメラがローリングの姿勢変化を行わないようにする。
【００９０】
また本実施形態では、ユーザがプレイするゲームのゲーム処理として、仮想現実のシミュレーション処理を行う。仮想現実のシミュレーション処理は、実空間での事象を仮想空間で模擬するためのシミュレーション処理であり、当該事象をユーザに仮想体験させるための処理である。例えば実空間のユーザに対応する仮想ユーザやその搭乗移動体などの移動体を、仮想空間で移動させたり、移動に伴う環境や周囲の変化をユーザに体感させるための処理を行う。
【００９１】
そして可動筐体４０は、ゲーム処理であるシミュレーション処理の結果に基づいてプレイ位置を変化させる。例えば仮想空間での移動体の移動処理の結果等に基づいて、プレイ位置を変化させる。例えば、ユーザの進行方向の変化に伴う加速度の変化（加速、減速）を、ユーザに体感させるためのシミュレーション処理として、可動筐体４０によりプレイ位置を変化させる処理を行う。或いは、コース上を移動体が移動する際に、コースの上り下りや凹凸をユーザに体感させるためのシミュレーション処理として、可動筐体４０によりプレイ位置を変化させる処理を行う。このように可動筐体４０によりプレイ位置を変化させることで、ＨＭＤ２００での表示画像の揺れと、ユーザが体感する加速度等の変化が、ある程度連動するようになり、ユーザの３Ｄ酔い等を抑制できるようになる。
【００９２】
なおプレイ位置は、仮想現実（ＶＲ）のシミュレーションゲームをプレイする際にユーザが位置するプレイポジションである。例えばプレイ位置は、シートなどのライド部でのユーザのライド位置である。例えばライド部であるシート等に座って、仮想現実のシミュレーションゲームをプレイしている場合には、プレイ位置は例えばシートのライド位置である着座位置である。またユーザが、バイク、自転車、又は馬などの乗り物や動物を模擬したライド部にまたがっている場合には、プレイ位置は、またがっている位置である。またユーザが立ち姿勢でシミュレーションゲームをプレイする場合には、プレイ位置は、例えばユーザの立ち位置である。
【００９３】
また本実施形態のシミュレーションシステムは音処理部１３０を有しており、音処理部１３０は、移動体の進行方向の変化に応じた音又は移動体が移動するコースの状況に応じた出力音を生成する処理を行う。例えば移動体の進行方向が変化したり、コースの状況が変化した場合に、その変化をユーザに認識させるための出力音を生成する。例えば凹凸のあるコースでは、「ガタガタ」というような音を出力して、コースに凹凸があることをユーザに聴覚的に認識させる。またユーザの進行方向が急激に変化した場合に、進行方向を変化させる加速度の変化（加速、減速等）をユーザに認識させるための音を出力して、進行方向が変化したことをユーザに聴覚的に認識させる。このようにすることで、ユーザの３Ｄ酔いの発生を低減できるようになる。
【００９４】
また表示処理部１２０は、ユーザによる設定情報又はユーザのプレイ履歴情報に基づいて、仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミング及び処理度合いの少なくとも一方を変化させる。例えばゲームの各種の設定情報をユーザが入力するためのオプション設定画面などにおいて、当該表示処理の処理開始タイミングや処理度合いを設定できるようにする。或いは、過去のユーザのプレイ履歴情報に基づいて、当該表示処理の処理開始タイミングや処理度合いを変化させる。例えばプレイ履歴情報に基づいて、ゲームプレイを頻繁に行っておりゲームプレイに慣れている判断されるユーザや、上級者であると判断されるユーザについては、当該表示処理の処理開始タイミングを遅くしたり、処理度合いを弱くする。一方、プレイ履歴情報に基づいて、ゲームプレイに慣れていないと判断されるユーザや、初級者であると判断されるユーザについては、当該表示処理の処理開始タイミングを早くしたり、処理度合いを強くする。例えばプレイ履歴情報に基づいて、ユーザの衝突回数、落下回数、転倒回数、又は過去のセッテイングを考慮して、仮想カメラから見える画像とは異なる画像に変化させる処理を実行する。このプレイ履歴情報は、例えばユーザが所持する携帯型情報記憶媒体１９５から読み出してもよいし、携帯型情報記憶媒体１９５に記憶されるユーザＩＤ等の識別情報に基づいて、サーバからダウンロードしてもよい。
【００９５】
２．トラッキング処理
次にトラッキング処理の例について説明する。図２（Ａ）に本実施形態のシミュレーションシステムに用いられるＨＭＤ２００の一例を示す。図２（Ａ）に示すようにＨＭＤ２００には複数の受光素子２０１、２０２、２０３（フォトダイオード）が設けられている。受光素子２０１、２０２はＨＭＤ２００の前面側に設けられ、受光素子２０３はＨＭＤ２００の右側面に設けられている。またＨＭＤの左側面、上面等にも不図示の受光素子が設けられている。
【００９６】
またＨＭＤ２００には、ヘッドバンド２６０等が設けられており、ユーザＰＬは、より良い装着感で安定的に頭部にＨＭＤ２００を装着できるようになっている。また、ＨＭＤ２００には、不図示のヘッドホン端子が設けられており、このヘッドホン端子にヘッドホン２７０（音出力部１９２）を接続することで、例えば３次元音響（３次元オーディオ）の処理が施されたゲーム音を、ユーザＰＬは聴くことが可能になる。なお、ユーザの頭部の頷き動作や首振り動作をＨＭＤ２００のセンサ部２１０等により検出することで、ユーザの操作情報を入力できるようにしてもよい。
【００９７】
図２（Ｂ）に示すように、シミュレーションシステム（可動筐体４０）の周辺には、ベースステーション２８０、２８４が設置されている。ベースステーション２８０には発光素子２８１、２８２が設けられ、ベースステーション２８４には発光素子２８５、２８６が設けられている。発光素子２８１、２８２、２８５、２８６は、例えばレーザー（赤外線レーザー等）を出射するＬＥＤにより実現される。ベースステーション２８０、２８４は、これら発光素子２８１、２８２、２８５、２８６を用いて、例えばレーザーを放射状に出射する。そして図２（Ａ）のＨＭＤ２００に設けられた受光素子２０１〜２０３等が、ベースステーション２８０、２８４からのレーザーを受光することで、ＨＭＤ２００のトラッキングが実現され、ユーザＰＬの頭の位置や向く方向（視点位置、視線方向）を検出できるようになる。
【００９８】
図３（Ａ）にＨＭＤ２００の他の例を示す。図３（Ａ）では、ＨＭＤ２００に対して複数の発光素子２３１〜２３６が設けられている。これらの発光素子２３１〜２３６は例えばＬＥＤなどにより実現される。発光素子２３１〜２３４は、ＨＭＤ２００の前面側に設けられ、発光素子２３５や不図示の発光素子２３６は、背面側に設けられる。これらの発光素子２３１〜２３６は、例えば可視光の帯域の光を出射（発光）する。具体的には発光素子２３１〜２３６は、互いに異なる色の光を出射する。そして図３（Ｂ）に示す撮像部１５０をユーザＰＬの前方側に設置し、この撮像部１５０により、これらの発光素子２３１〜２３６の光を撮像する。即ち、撮像部１５０の撮像画像には、これらの発光素子２３１〜２３６のスポット光が映る。そして、この撮像画像の画像処理を行うことで、ユーザＰＬの頭部（ＨＭＤ）のトラッキングを実現する。即ちユーザＰＬの頭部の３次元位置や向く方向（視点位置、視線方向）を検出する。
【００９９】
例えば図３（Ｂ）に示すように撮像部１５０には第１、第２のカメラ１５１、１５２が設けられており、これらの第１、第２のカメラ１５１、１５２の第１、第２の撮像画像を用いることで、ユーザＰＬの頭部の奥行き方向での位置等が検出可能になる。またＨＭＤ２００に設けられたモーションセンサのモーション検出情報に基づいて、ユーザＰＬの頭部の回転角度（視線）も検出可能になっている。従って、このようなＨＭＤ２００を用いることで、ユーザＰＬが、周囲の３６０度の全方向うちのどの方向を向いた場合にも、それに対応する仮想空間（仮想３次元空間）での画像（ユーザの視点に対応する仮想カメラから見える画像）を、ＨＭＤ２００の表示部２２０に表示することが可能になる。なお、発光素子２３１〜２３６として、可視光ではなく赤外線のＬＥＤを用いてもよい。また、例えばデプスカメラ等を用いるなどの他の手法で、ユーザの頭部の位置や動き等を検出するようにしてもよい。
【０１００】
なお、ユーザの視点位置、視線方向（ユーザの位置、方向）を検出するトラッキング処理の手法は、図２（Ａ）〜図３（Ｂ）で説明した手法には限定されない。例えばＨＭＤ２００に設けられたモーションセンサ等を用いて、ＨＭＤ２００の単体でトラッキング処理を実現してもよい。即ち、図２（Ｂ）のベースステーション２８０、２８４、図３（Ｂ）の撮像部１５０などの外部装置を設けることなく、トラッキング処理を実現する。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング手法により、ユーザの視点位置、視線方向などの視点情報等を検出してもよい。
【０１０１】
３．シミュレーションシステムの具体例
次にシミュレーションシステムの具体例について説明する。図４は、シミュレーションシステムの一例であるスキーシミュレータの構成例を示す斜視図である。
【０１０２】
図４のスキーシミュレータは可動筐体４０を有し、この可動筐体４０は、対向するベース部４１、４２を含む。ベース部４１、４２は図４のＤＲＣ方向において対向するように設けられる。ベース部４１、４２の間には、その四隅に、エアバネ部５０、５１、５２、５３（広義には伸縮部）が設けられている。これらのエアバネ部５０、５１、５２、５３は、エアコンプレッサやバブルを用いて空気の供給や排出が行われることで、ＤＲＣ方向において伸縮する。
【０１０３】
例えば図４に示すように鉛直方向をＹ軸方向とし、ユーザＰＬの向く方向をＺ軸方向とし、Ｙ軸方向とＺ軸方向に直交する方向をＸ軸方向とする。この場合に、全てのエアバネ部５０、５１、５２、５３が伸びることで、ベース部４１を、Ｙ軸方向で上側（ベース部４２に対して上側）に移動させることができる。また全てのエアバネ部５０、５１、５２、５３が縮むことで、ベース部４１を、Ｙ軸方向で下側に移動させることができる。これらの上下方向でのベース部４１の移動により、例えばスキーで滑る際の雪面の状態の再現などが可能になる。例えば少ないストロークで、且つ、速い速度で上下方向にベース部４１を移動させることで、雪面の凹凸などを表現できる。
【０１０４】
また四隅のエアバネ部５０、５１、５２、５３のうちの左側のエアバネ部５０、５１が縮んで、右側のエアバネ部５２、５３が伸びたり、或いは左側のエアバネ部５０、５１が伸びて、右側のエアバネ部５２、５３が縮むことで、ベース部４１をＺ軸回りにローリングさせことができる。また後ろ側のエアバネ部５０、５２が縮んで、前側のエアバネ部５１、５３が伸びたり、後ろ側のエアバネ部５０、５２が伸びて、前側のエアバネ部５１、５３が縮むことで、ベース部４１をＸ軸回りにピッチングさせることができる。このようなローリングやピッチングを行うことで、スキーで滑っている斜面の状態等を表現できる。
【０１０５】
また可動筐体４０は、操作部材４３、４４を含む。操作部材４３、４４はベース部４１上に設けられる。操作部材４３には、ユーザＰＬの左足を載せるための足台４５が回動自在に設けられている。操作部材４４には、右足を載せるための足台４６が回動自在に設けられている。
【０１０６】
具体的には、操作部材４３、４４は図４のＤＲＤ方向にスイング移動（揺動）する。即ちＹ軸回りでのヨーイングのスイング移動が可能になる。足台４５、４６はＤＲＥ方向に回動する。即ちＺ軸回りでの回転が可能である。
【０１０７】
ユーザＰＬは、スキーを滑る要領で、操作部材４３、４４、足台４５、４６を用いた操作を行う。例えば操作部材４３、４４をＤＲＤ方向でスイング移動するスイング操作や、足台４５、４６をＤＲＥ方向で回動させるエッジング操作を行うことで、現実世界のスキーで行うようなスキー操作を行う。これにより、ＨＭＤ２００に映し出させる仮想ユーザが、対応するスキー操作を行い、仮想空間内のコース上でスキーを滑る仮想現実を、ユーザＰＬは体感できるようになる。
【０１０８】
また可動筐体４０には、ガイド部６０、６２が設けられている。ユーザＰＬは、ガイド部６０、６２により規定されるプレイ位置ＰＰＬに立って、スキーのシミュレーションゲームをプレイする。ガイド部６０、６２には、ユーザＰＬが手で把持するための把持部６１、６３（把持部６３は不図示）が設けられている。把持部６１、６３は現実世界のスキーのストックのグリップに相当する。ユーザＰＬは、このようなスキーのストックを模したガイド部６０、６２の把持部６１、６３を手で握ることで、自身の身体を支える。そして、左右の把持部６１、６３を手で握って身体を支えながら、スキーを行う要領で、操作部材４３、４４をスイング移動するスイング操作を行ったり、足台４５、４６を用いたエッジング操作を行って、スキーのシミュレーションゲームを楽しむ。なおユーザＰＬの前方に設けられた風洞部６９からは風が送出され、あたかもスキーで滑ったことによる風が身体にあたったかのような仮想現実感を与えることができる。
【０１０９】
またガイド部６０は、ＨＭＤ２００の表示画像を生成する処理装置（図１の処理部１００、記憶部１７０等を含む装置。例えばゲーム装置、ＰＣ等）からのケーブル２０を、下方から上方に所定経路に沿ってガイドする。例えばガイド部６０は、中空構造のパイプにより構成され、処理装置からのケーブル２０は、このガイド部６０のパイプの中を通って、ケーブル取り出し口６５から取り出される。具体的には、ガイド部６０は、経由点ＴＰであるケーブル取り出し口６５においてケーブル２０を支持する棒状の支持ガイド６４を有しており、ケーブル２０は、経由点ＴＰであるケーブル取り出し口６５から取り出されてＨＭＤ２００に接続される。
【０１１０】
そして図４では、エアバネ部５０〜５３が伸縮することで、ベース部４１の上下方向の移動や、ベース部４１のＺ軸回りでのローリングやＸ軸回りでのピッチングの回転移動が行われ、これに応じてユーザＰＬのプレイ位置ＰＰＬも変化する。即ち、ユーザＰＬが立っているベース部４１が、上下方向に移動したり、ローリングやピッチングの回転移動を行うと、ユーザＰＬの立ち位置であるプレイ位置ＰＰＬも変化する。そして前述したように、可動筐体４０は、仮想空間の仮想ユーザや搭乗移動体などの移動体の進行方向の変化又は移動体が移動するコースの状況に応じて、ユーザＰＬのプレイ位置ＰＰＬを変化させることになる。
【０１１１】
図５は、図４のスキーシミュレータにおいてＨＭＤ２００に表示されるゲーム画像（シミュレーション画像）の例である。このゲーム画像は、いわゆる一人称視点での画像である。図５のゲーム画像では、ユーザに対応する仮想ユーザ（仮想スキーヤー）が走行するスキーコースの画像や、コースの周りの風景の画像が、リアルに表示されている。これらの画像はいわゆる立体視画像としてＨＭＤ２００によりユーザに表示される。またこのゲーム画像では、仮想ユーザの体の一部やスキーやストックについても、適宜、表示される。例えば図４においてユーザが視線を下に向けると、図２（Ａ）〜図３（Ｂ）等で説明した手法により視線方向の変化が検出され、図５のように仮想ユーザの体の一部（手、足等）や、スキーやストックがゲーム画像の表示されるようになる。こうすることで、仮想空間において、あたかも現実のスキーヤーとしてスキー走行しているかのような仮想現実感を、ユーザに与えることが可能になる。
【０１１２】
図６は、シミュレーションシステムの一例であるロボットシミュレータ（ロボットゲーム装置）の構成例を示す斜視図である。図６に示す可動筐体４０では、底部４５０（ベース部）の上にカバー部４５１が設けられ、その上に、ベース部４５２（台座部）が設けられる。このベース部４５２にはシート支持部４６４が設けられ、シート支持部４６４の上にシート４６２が取り付けられることで、ライド部４６０が構成されている。
【０１１３】
またベース部４５２には、移動部４７０が設けられる。具体的には、ベース部４５２にはレール部４５４、４５５が設けられ、レール部４５４、４５５に沿った方向で移動可能になるように、移動部４７０が設けられる。
【０１１４】
移動部４７０は支持部４７２を有し、支持部４７２の上端には上面部４７３（操作基台）が設けられる。そして上面部４７３には、操作レバー１６１、１６２や、センサ部を有するゲームコントローラ１６５が設けられている。ゲームコントローラ１６５が有するセンサ部は、位置及び方向の少なくとも一方を検出する。操作レバー１６１、１６２は、図１の操作部１６０を構成するものである。ユーザが操作レバー１６１、１６２を手で操作すると、それに連動して、仮想空間のロボットのコックピット内の仮想ユーザが、コックピットに設けられた操作レバーを操作する様子が表示されるようになる。
【０１１５】
ユーザが、操作レバー１６１、１６２を前方側に倒すと、仮想空間のロボットが前方側に移動し、操作レバー１６１、１６２を後方側に倒すと、ロボットが後方側に移動する。ユーザが操作レバー１６１、１６２が右方向側、左方向側に倒すと、ロボットが右方向側、左方向側に移動する。また操作レバー１６１、１６２の一方を前方側に倒し、他方を後方側に倒すことで、ロボットの向く方向を変えることができる。
【０１１６】
ゲームコントローラ１６５には、センサ部として用いられる少なくとも１つの受光素子が設けられる。そして図２（Ａ）、図２（Ｂ）のトラッキング処理と同様の処理により、ゲームコントローラ１６５のセンサ部の検出機能（位置及び方向の少なくとも一方の検出機能）が実現される。この検出機能により、例えば可動筐体４０の可動によるプレイ位置（ライド部４６０でのライド位置、着座位置）の変化を検出できるようになる。
【０１１７】
移動部４７０の支持部４７２の下端には下面部４７４が設けられ、下面部４７４には、アクセルペダル１６３、ブレーキペダル１６４が設けられる。ユーザがアクセルペダル１６３を踏むと、仮想空間のロボットが加速して移動するダッシュ移動が行われる。ユーザがブレーキペダル１６４を踏むと、ロボットの移動が停止する。
【０１１８】
可動筐体４０のベース部４５２には、フレーム部４３０が設けられている。そしてフレーム部４３０のガイド部４３２が、処理装置からのケーブル２０をガイドしている。例えば下方から上方へと向かう所定経路でケーブル２０をガイドする。そして、ガイドされたケーブル２０は、経由点ＴＰを経由してＨＭＤ２００に接続される。具体的には、ケーブル２０は、経由点ＴＰにおいて固定具４３３により固定されて、ＨＭＤ２００に接続される。
【０１１９】
ライド部４６０のシート４６２の背面側には、不図示の２本の電動シリンダが設けられている。これらの電動シリンダのロッド部が伸縮することで、ベース部４５２の姿勢が変化する。例えばベース部４５２のピッチングやローリングなどの姿勢変化が実現される。例えば２本の電動シリンダのロッド部が共に伸びることで、前側へのベース部４５２のピッチングの姿勢変化が実現される。２本の電動シリンダのロッド部が共に縮むことで、後ろ側へのベース部４５２のピッチングの姿勢変化が実現される。２本の電動シリンダのロッド部の一方が伸び、他方が縮むことで、右側や左側へのベース部４５２のローリングの姿勢変化が実現される。これらのベース部４５２のピッチングやローリングの姿勢変化により、ユーザの体の向きをピッチングさせたり、ローリングさせることが可能になる。
【０１２０】
図７に、図６のロボットシミュレータにおいてＨＭＤ２００に表示されるゲーム画像の例を示す。本実施形態で、ユーザに対応する仮想ユーザが、仮想空間内のロボットのコックピットに搭乗して、敵ロボット等と対戦するロボットゲームのゲーム画像が生成される。ロボットの出撃時には、仮想世界において、コックピットのフードが閉じられる。そしてユーザ（仮想ユーザ）は、狭い空間のコックピット内でロボットを操縦して、敵ロボット等と対戦するゲームを楽しむことになる。
【０１２１】
図７のゲーム画像に示すように、仮想世界のロボットの有視界式のコックピットのフードＦＤには、ウィンドウＷＤが設けられており、ユーザは、このウィンドウＷＤを介して外界の様子を見ることができる。図７では、ウィンドウＷＤ内には、敵ロボットＥＲＢや照準ＳＧや戦闘フィールドのマップが表示されている。またユーザが操作するロボットの武器であるミサイルのランチャーＬＡＡ、キャノン砲ＣＮＢや、これらの武器の残り弾数を示す弾数アイコンＳＮＡ、ＳＮＢも表示されている。
【０１２２】
照準ＳＧは、ＨＭＤ２００を装着するユーザの視線（頭部、ＨＭＤ）の動きに追従するように移動する。例えばユーザが右を向けば、ゲーム画像上の照準ＳＧは右に移動し、左を向けば照準ＳＧは左に移動する。ユーザは、照準ＳＧの位置を敵ロボットＥＲＢの位置に移動し、ランチャーＬＡＡやキャノン砲ＣＮＢにより攻撃することで、対戦ゲームを楽しむ。
【０１２３】
なお本実施形態のシミュレーションシステムを実現する装置は、図４、図６に示すような装置には限定されない。例えば本実施形態のシミュレーションシステムは、表示部としてＨＭＤが用いられる家庭用ゲーム装置、業務用ゲーム装置、パーソナルコンピュータ（ＰＣ）、携帯型情報端末や、多数のユーザが参加する大型アトラクション装置などの種々の装置に適用できる。また本実施形態のシミュレーションシステムは、ネットワークを介して複数の端末装置（ゲーム装置、ＰＣ、携帯型情報端末等）が通信接続されるサーバシステムにより実現してもよい。この場合に本実施形態の各処理は、シミュレーションシステムと端末装置との分散処理により実現してもよい。
【０１２４】
４．本実施形態の手法
次に本実施形態の手法について詳細に説明する。なお、以下では本実施形態の手法を図４のスキーシミュレータのスキーゲームに適用した場合を主に例にとり説明する。但し、本実施形態はこれに限定されず、種々のゲーム（ＲＰＧ、ロボット対戦ゲーム、アクションゲーム、対戦ゲーム、競争ゲーム、スポーツゲーム、ホラー体験ゲーム、電車や飛行機等の乗り物のシミュレーションゲーム、パズルゲーム、コミュニケーションゲーム、或いは音楽ゲーム等）に適用でき、ゲーム以外にも適用可能である。また以下では、移動体が、仮想ユーザであるキャラクタである場合を例にとり説明するが、移動体は、仮想ユーザが搭乗するロボット、車、飛行機又は電車等の搭乗移動体であってもよい。
【０１２５】
４．１  加速度変化時、視線方向変化時の表示処理
図８（Ａ）では、仮想空間においてスキーヤー（仮想ユーザ）であるキャラクタＣＨ（広義には移動体）がコース上を滑って走行している。そして仮想空間の仮想ユーザに対応するキャラクタＣＨの視点の位置に、仮想カメラが設定されており、この仮想カメラから見える画像が、図５に示すようにＨＭＤ２００に表示（立体視表示）される。これにより、例えば一人称視点での画像をＨＭＤ２００に表示できるようになり、あたかも仮想空間でのスキーヤーになってコースを走行しているかのような仮想現実感をユーザに与えることができる。
【０１２６】
そして図８（Ａ）では、キャラクタＣＨの前方側（進行方向側）に岩ＲＫ（衝突対象物）が存在しており、図８（Ｂ）では、この岩ＲＫにキャラクタＣＨが衝突している。これにより図８（Ｃ）に示すようにキャラクタＣＨの進行方向ＤＴが変化している。
【０１２７】
この岩ＲＫとの衝突イベントは、キャラクタＣＨ（移動体）の進行方向ＤＴを、異なる方向に向かって変化させる加速度変化イベントである。例えば岩ＲＫとの衝突により、キャラクタＣＨの進行方向ＤＴが、キャラクタＣＨの正面方向から右側方向に変化している。このような進行方向ＤＴの変化処理は、例えばキャラクタＣＨと岩ＲＫとの衝突の演算処理（ヒットチェック処理）を行うことで実現できる。この衝突の演算処理は、キャラクタＣＨが岩ＲＫとの衝突により受ける反作用力に基づく物理演算処理を行うことで実現できる。例えば図８（Ｂ）の衝突により受けた反作用力により、図８（Ｃ）のようにキャラクタＣＨの進行方向ＤＴを変化させる物理演算処理を行う。
【０１２８】
図９（Ａ）では、スキーヤーであるキャラクタＣＨが崖ＣＦの近くまで走行しており、図９（Ｂ）では崖ＣＦから落下している。この崖ＣＦからの落下により、図９（Ｃ）に示すようにキャラクタＣＨの進行方向ＤＴが変化している。
【０１２９】
この崖ＣＦからの落下イベントも、キャラクタの進行方向ＤＴを、異なる方向に向かって変化させる加速度変化イベントである。例えば崖ＣＦからの落下により、キャラクタＣＨの進行方向ＤＴが、キャラクタＣＨの正面方向から下側方向に変化している。このような進行方向ＤＴの変化処理は、例えば崖ＣＦからのキャラクタＣＨの落下移動の演算処理を行うことで実現できる。この落下移動の演算処理は、崖ＣＦから転落したキャラクタＣＨが受ける重力による物理演算処理を行うことで実現できる。例えば図９（Ｂ）の落下時に受けた重力により、図９（Ｃ）のようにキャラクタＣＨの進行方向ＤＴを変化させる物理演算処理を行う。
【０１３０】
このように岩との衝突や崖からの落下により、キャラクタＣＨの進行方向ＤＴが大きく変化すると、図５に示すＨＭＤの表示画像が大きく変化してしまう。このＨＭＤの表示画像の大きな変化は、例えば３Ｄ酔いなどの問題を招く。ここで３Ｄ酔いとは、例えば立体感のある動きの激しい映像を見続けることで、めまいなどの乗り物酔いのような症状を起こすことである。
【０１３１】
例えば図８（Ｂ）の岩ＲＫとの衝突によって、図８（Ｃ）のようにキャラクタＣＨの進行方向ＤＴが大きく変化すると、キャラクタＣＨに追従する仮想カメラの視線方向も大きく変化してしまう。例えば一人称視点の場合には、キャラクタＣＨの視点の位置に仮想カメラが設定され、例えばキャラクタＣＨの進行方向ＤＴの方に仮想カメラの視線方向が向いている。従って、図８（Ｃ）のように進行方向ＤＴが大きく変化すると、仮想カメラの視線方向も大きく変化し、図５のＨＭＤの表示画像も大きく変化する。
【０１３２】
このような衝突イベント発生時のＨＭＤの表示画像の激しい変化は、仮想空間での擬似的な事象（疑似衝突）によるものであるため、現実世界の事象との間に乖離がある。このような、現実世界とは乖離したＨＭＤの表示画像の激しい変化が発生すると、ユーザの３Ｄ酔いを引き起こしてしまう。
【０１３３】
この場合に、例えば図８（Ｂ）の岩との衝突時に、図４の可動筐体４０を動作させて、衝突による反作用力をユーザに体感させることで、現実世界と仮想世界の乖離を小さくし、ユーザの３Ｄ酔いを軽減することも可能である。例えば岩との衝突時に、エアバネ部５０〜５３を微少に伸び縮みさせることで、衝突による振動を、ある程度、ユーザに体感させることができる。
【０１３４】
しかしながら、このような可動筐体４０による衝突の疑似的な体感には限界があり、ＨＭＤに表示される仮想世界の画像の激しい変化と、現実世界のユーザの体感との間には、大きな乖離がある。即ち、現実世界ではユーザは岩に衝突していないのに、仮想世界の画像だけが岩との衝突により大きく揺れ動いてしまう現象が起こる。このような現象が頻繁に起こると、ユーザの３Ｄ酔い等を引き起こしてしまう。
【０１３５】
また図９（Ａ）〜図９（Ｃ）の崖からの落下時において、図４の現実世界のユーザは、落下による重力加速度を体感することはできない。従って、仮想世界では崖から落下しているのには、現実世界ではこのような落下が生じておらず、仮想空間での事象と現実世界での事象に乖離が発生する。このような現実世界の事象とは乖離したＨＭＤの表示画像の変化が発生すると、ユーザの３Ｄ酔い等を引き起こしてしまう。
【０１３６】
そこで本実施形態では、このようなキャラクタの衝突イベントや落下イベントなどの加速度変化イベントが発生したと判断される場合に、ＨＭＤの表示画像を、仮想カメラから見える画像とは異なる画像に変化させる処理を行う。例えばキャラクタ（移動体）の加速度の変化が、所与の変化条件を満たしたと判断される場合に、ＨＭＤの表示画像を、仮想カメラから見える画像とは異なる画像に変化させる。例えばＨＭＤの表示画像の全体を変化させる表示処理を行う。このような表示処理としては、例えば表示画像をフェードアウトさせる処理や、仮想カメラから見える画像に対してエフェクト処理を施す処理などがある。
【０１３７】
図１０（Ａ）は、図８（Ａ）のようにキャラクタＣＨが岩ＲＫの方向に向かって走行している時にＨＭＤに表示される画像の例である。図１０（Ａ）のＧ１に示すように、キャラクタＣＨの正面方向（進行方向側）には岩が存在している。そして図１０（Ｂ）は、Ｇ２の岩に衝突する瞬間の画像であり、図８（Ｂ）の状況に対応する画像である。このように岩に衝突して、図８（Ｃ）に示すようにキャラクタＣＨの進行方向ＤＴが大きく変化すると、ＨＭＤの表示画像が激しく変化してしまい、ユーザの３Ｄ酔い等の問題を引き起こす。
【０１３８】
そこで本実施形態では、この衝突イベントのような加速度変化イベントが発生した場合（広義には加速度変化が所与の変化条件を満たした場合）に、図１１（Ａ）、図１１（Ｂ）に示すようなフェードアウト処理を行う。例えば図１１（Ａ）のように表示画像（仮想カメラから見える画像）のフェードアウト処理を開始し、最終的には図１１（Ｂ）に示すように画面全体をホワイトアウトする。例えば図１１（Ａ）ではＧ３に示す岩の画像が、図１０（Ａ）、図１０（Ｂ）での岩の画像に比べて白色に近づいた色になっている。
【０１３９】
この場合に例えば図８（Ｂ）のようにキャラクタＣＨが岩ＲＫに衝突した後、所与の期間の間は、図１０（Ａ）、図１０（Ｂ）のような通常のゲーム画像（シミュレーション画像）をＨＭＤに表示する。そして、所与の期間が経過して、フェードアウト処理の開始タイミングになった場合に、図１１（Ａ）、図１１（Ｂ）に示すようなフェードアウト処理（ホワイトアウト処理）を開始する。
【０１４０】
図１２（Ａ）、図１２（Ｂ）は、図９（Ａ）、図９（Ｂ）のようにキャラクタＣＨが崖ＣＦを越えて落下する場面においてＨＭＤに表示される画像の例である。即ち、図１２（Ａ）ではＨ１に示す崖に向かってキャラクタＣＨが走行しており、図１２（Ｂ）では、Ｈ２に示す崖下に向かってキャラクタＣＨが落下している。このように崖から落下して、図９（Ｃ）に示すようにキャラクタＣＨの進行方向ＤＴが大きく変化すると、ＨＭＤの表示画像が激しく変化してしまい、ユーザの３Ｄ酔い等の問題を引き起こす。
【０１４１】
そこで本実施形態では、この落下イベントのような加速度変化イベントが発生した場合に、図１３（Ａ）、図１３（Ｂ）に示すようなフェードアウト処理を行う。例えば図１３（Ａ）のように表示画像のフェードアウト処理を開始し、最終的には図１３（Ｂ）に示すように画面全体をホワイトアウトする。
【０１４２】
この場合に図９（Ｂ）、図９（Ｃ）に示すようにキャラクタＣＨが崖ＣＦから衝突した後、所与の期間の間は、図１２（Ｂ）のような通常のゲーム画像（シミュレーション画像）をＨＭＤに表示する。そして、所与の期間が経過して、フェードアウト処理の開始タイミングになった場合に、図１３（Ａ）、図１３（Ｂ）に示すようなフェードアウト処理（ホワイトアウト処理）を開始する。
【０１４３】
このように本実施形態では、キャラクタＣＨ（移動体）の加速度の変化が、所与の変化条件を満たしたと判断される場合に、ＨＭＤの表示画像を、仮想カメラから見える画像（通常のゲーム画像、シミュレーション画像）とは異なる画像に変化させている。具体的には、衝突イベントや落下イベントなどの加速度変化イベントが発生した場合に、画面全体をフェードアウトするフェードアウト処理を行っている。これらの加速度変化イベントは、キャラクタＣＨの進行方向ＤＴを、当該進行方向とは異なる方向に変化させるイベントである。
【０１４４】
なお、加速度変化イベントの発生時（変化条件成立時）に行う処理は、このようなフェードアウト処理には限定されない。例えば図１４（Ａ）に示すようにぼかし処理、半透明合成処理等のエフェクト処理を行うようにしてもよい。例えば図１４（Ａ）では表示画像の全体に対してエフェクト処理を施している。例えばぼかし処理では、ＨＭＤの表示画像の全体をぼかす処理を行う。この場合にぼかし処理の開始タイミングから、ぼかしの度合い（広義には表示処理の処理度合い）を徐々に強くするようにしてもよい。半透明合成処理は、仮想カメラから見える画像に対して、所定の画像を半透明合成することで実現できる。この場合に半透明合成処理の開始タイミングから、半透明対象画像の半透明合成率（広義には表示処理の処理度合い）を徐々に高くするようにしてもよい。またエフェクト処理としては種々の処理を想定することができ、例えば二値化処理やモザイク処理などであってもよい。またエフェクト処理は、例えば仮想カメラから見える画像（原画像）に対して、画像フィルタ処理を施すことで実現できる。画像フィルタ処理は、例えば移動平均フィルタ処理、ガウシアンフィルタ処理、或いはメディアンフィルタ処理などである。また図１４（Ｂ）に示すように、表示画像の一部の領域（例えば中央部の主要領域）に対してだけエフェクト処理（画像フィルタ処理）を行うようにしてもよい。
【０１４５】
また本実施形態では、仮想カメラの視線方向の変化が所与の変化条件を満たしたと判断される場合に、ＨＭＤの表示画像を、仮想カメラから見える画像とは異なる画像に変化させてもよい。例えば仮想カメラの視線方向の変化イベントが発生した場合に、フェードアウト処理やエフェクト処理を行う。
【０１４６】
例えば図１５（Ａ）では、移動体であるキャラクタＣＨがコースＣＳ上を走行している。仮想カメラＶＣはキャラクタＣＨの視点の位置に設定されており、これにより一人称視点での画像が生成されている。そして図１５（Ｂ）では、キャラクタＣＨが転倒してしまい、これに伴い仮想カメラＶＣの視線方向ＣＶＬが激しく変化している。このような場合にも、例えば図１１（Ａ）、図１１（Ｂ）、図１３（Ａ）、図１３（Ｂ）で説明したフェードアウト処理を行ったり、図１４（Ａ）、図１４（Ｂ）で説明したエフェクト処理を行う。即ちＨＭＤの表示画像の全体を変化させる処理を行う。より具体的には、図１５（Ｃ）に示すように、仮想カメラＶＣの視線方向ＣＶＬの角度変化が、所与の角度θｔｈ以上である場合に、所与の変化条件が満たされたと判断して、ＨＭＤの表示画像を、仮想カメラＶＣから見える画像とは異なる画像に変化させる。例えば転倒等により、仮想カメラＶＣの視線方向がＣＶＬから角度θｔｈ以上、変化して、ＣＶＬ’になったと判断される場合に、表示画像に対してフェードアウト処理やエフェクト処理を行う。
【０１４７】
以上のように本実施形態では、移動体の加速度の変化や仮想カメラの視線方向の変化が、所与の変化条件を満たした場に、ＨＭＤの表示画像を、仮想カメラから見える画像とは異なる画像に変化させている。具体的には、衝突イベントや落下イベントなどの加速度変化イベントが発生した場合や、転倒イベントなどの仮想カメラの視線方向変化イベントが発生した場合に、ＨＭＤの表示画像の全体を変化させる表示処理を行う。具体的には、表示画像をフェードアウトさせる処理を行ったり、表示画像に対するエフェクト処理（加工処理）を行う。
【０１４８】
このようにすれば、加速度変化イベントや視線方向変化イベントの発生時に、例えばＨＭＤの表示画像が大きく揺れたり、激しく揺れることで、ユーザの目の負担等になり、３Ｄ酔い等の不具合が発生してしまうのを、効果的に防止できるようになる。
【０１４９】
例えばゲームに慣れていないユーザや初心者のユーザのゲームプレイでは、衝突や落下や転倒などのイベントが、頻繁に繰り返されてしまう。そして、これによりＨＭＤの表示画像が頻繁に激しく変化すると、３Ｄ酔い等の問題を招く。例えば現実世界のユーザに対しては加速度は作用していないのに、仮想空間において衝突イベントや落下イベントなどの加速度変化イベントが発生し、それに対応した表示画像がＨＭＤに表示されると、現実世界の事象と仮想世界の事象の間に乖離が生じてしまう。また現実世界のユーザの視線方向は変化していないのに、仮想空間において転倒イベント等が発生して、仮想カメラの視線方向が激しく変化し、それに対応した表示画像がＨＭＤに表示されると、現実世界の事象と仮想世界の事象の間に乖離が生じてしまう。このような現実世界と仮想世界の事象の乖離が生じると、ユーザが３Ｄ酔いを引き起こしてしまう。
【０１５０】
この点、本実施形態では、加速度変化イベントや視線方向変化イベントが発生すると、フェードアウト処理やエフェクト処理が行われ、ゲームが一時的に中断する。従って、現実世界と仮想世界の事象が乖離している時間が、短期間で済むようになり、ＨＭＤの表示画像の揺れを原因とするユーザの目の負担等を軽減できる。そして例えばイベントの発生場所或いはその周囲の場所からゲームの再スタートが行われる。例えば衝突、落下又は転倒などのイベントが発生した場所から、例えばゲームスタート地点側に戻った場所から、ゲームの再スタートが行われ、ユーザは、通常通りのゲームを再開できる。従って、例えばゲームに慣れていないユーザや初心者のユーザが、衝突、落下、転倒などを繰り返した場合でも、ユーザの目の負担等が十分に軽減されることで、３Ｄ酔いを引き起こしてしまうのを効果的に防止できるようになる。
【０１５１】
図１６（Ａ）、図１６（Ｂ）は、衝突や落下などのイベント発生時のフェードアウト処理の詳細を説明する図である。本実施形態では、仮想カメラから見える画像とは異なる画像に変化させる表示処理の処理開始タイミングや処理度合いを、所与の変化条件を満たす第１のイベントの発生時と、所与の変化条件を満たす第２のイベントの発生時とで異ならせている。なお以下では、仮想カメラから見える画像とは異なる画像に変化させる処理が、フェードアウト処理である場合を例にとり説明するが、当該処理は図１４（Ａ）、図１４（Ｂ）に示すようなエフェクト処理等であってもよい。
【０１５２】
例えば図１６（Ａ）に示すように、衝突イベントが発生すると、衝突の物理演算処理が行われる。例えば図８（Ｂ）ようにキャラクタＣＨが岩ＲＫに衝突した場合に、衝突時のキャラクタＣＨの進行方向ＤＴと、岩ＲＫの衝突面の情報（形状情報。衝突面の向く方向の情報）から、物理演算処理を行って、衝突後の進行方向ＤＴを求める。そして例えば図８（Ｃ）に示すように、求められた進行方向ＤＴにキャラクタＣＨを移動させる処理が行われる。
【０１５３】
この場合に図１６（Ａ）に示すように、所与の期間ＴＡが経過するまでは、フェードアウト処理（エフェクト処理）を開始しない。そして、この期間ＴＡにおいては通常のゲーム画像を表示する。例えば衝突により進行方向ＤＴが変化した場合において仮想カメラから見える画像をＨＭＤに表示する。そして期間ＴＡの経過後に、フェードアウト処理を開始する。
【０１５４】
また図１６（Ｂ）に示すように、落下イベントが発生すると、落下の物理演算処理が行われる。例えば図９（Ｂ）に示すようにキャラクタＣＨが崖ＣＦから落下した場合に、キャラクタＣＨの速度や重力加速度の情報に基づいて、落下後のキャラクタＣＨの進行方向を求める物理演算処理を行う。そして図９（Ｃ）に示すように、求められた進行方向ＤＴの方にキャラクタＣＨを落下させる処理が行われる。
【０１５５】
この場合に図１６（Ｂ）に示すように、所与の期間ＴＢが経過するまでは、フェードアウト処理（エフェクト処理）を開始しない。そして、この期間ＴＢにおいては通常のゲーム画像を表示する。例えば、落下により進行方向ＤＴが変化した場合において仮想カメラから見える画像をＨＭＤに表示する。そして期間ＴＢの経過後に、フェードアウト処理を開始する。
【０１５６】
このようにすれば、衝突や落下のイベントの発生後、期間ＴＡ、ＴＢが経過するまでは通常のゲーム画像が表示され、その後にフェードアウト処理が行われるため、ユーザが感じる不自然感を最小限にできる。即ち、期間ＴＡ、ＴＢの経過を待たずに、フェードアウト処理が行われてしまうと、衝突や落下の直後に直ぐにフェードアウト処理が開始されてしまう。このようになると、ユーザは、自身がどのような状況になったかを把握できなくなり、ユーザの混乱や不自然感を招くおそれがある。
【０１５７】
これに対して図１６（Ａ）、図１６（Ｂ）では、期間ＴＡ、ＴＢが経過するまでは通常のゲーム画像が表示され、その後にフェードアウト処理が行われる。従って、ユーザは、岩に衝突したり、崖から落下したことを、期間ＴＡ、ＴＢでのＨＭＤの表示画像を見ることで、適切に把握できるようになる。従って、ユーザは、衝突や落下により、どのような状況になったかを把握できるようになり、ユーザが不自然さを感じるなどの事態を防止できる。
【０１５８】
更に本実施形態では、図１６（Ａ）、図１６（Ｂ）から明らかなように、フェードアウト処理（広義には仮想カメラから見える画像とは異なる画像に変化させる処理）の処理開始タイミングを、イベントに応じて異ならせている。例えば衝突イベント（第１のイベント）と落下イベント（第２のイベント）とで、フェードアウト処理の処理開始タイミングを異ならせている。
【０１５９】
例えば図１６（Ａ）の衝突イベントでは、処理開始タイミングＴＭＡが早くなっている。即ち期間ＴＡが短い。一方、図１６（Ｂ）の落下イベントでは、処理開始タイミングＴＭＢが図１６（Ａ）に比べて遅くなっている。即ち、期間ＴＢの方が期間ＴＡよりも長い。
【０１６０】
例えば衝突イベントの発生時には、衝突によるユーザの混乱等を最小限に抑えるために、処理開始タイミングＴＭＡを早くして、直ぐにフェードアウト処理（エフェクト処理）を開始する。一方、落下イベントの発生時には、落下している様子をユーザによく見せて、ゲームの演出効果を高めるために、処理開始タイミングＴＭＢを、図１６（Ａ）の衝突時の処理開始タイミングＴＭＡに比べて遅くする。こうすることで、ユーザは、自身が落下している様子を、長い期間ＴＢの間、ＨＭＤの表示画像を介して仮想体験できるようになり、ゲームの演出効果を向上できる。
【０１６１】
また本実施形態では、フェードアウト処理（仮想カメラから見える画像とは異なる画像に変化させる処理）の処理度合いを、イベントに応じて異ならせてもよい。例えば衝突イベント（第１のイベント）と落下イベント（第２のイベント）とで、フェードアウト処理の処理度合いを異ならせる。例えば衝突イベントでは、フェードアウト処理の処理度合いを強くして、例えば短い時間でホワイトアウトするようにする。一方、落下イベントでは、フェードアウト処理の処理度合いを弱くして、例えば衝突イベントに比べて長い時間をかけてホワイトアウトするようにする。
【０１６２】
例えば図１７（Ａ）に示すように、各イベントＥＶ１、ＥＶ２、ＥＶ３・・・に対して、処理開始タイミングＴＭ１、ＴＭ２、ＴＭ３・・・の情報を対応づけておく。処理開始タイミングの情報は、例えばイベント発生後、フェードアウト処理やエフェクト処理などの表示処理が開始するまでの時間を特定する情報である。また図１７（Ｂ）に示すように、各イベントＥＶ１、ＥＶ２、ＥＶ３・・・に対して、処理度合いＰＤ１、ＰＤ２、ＰＤ３・・・の情報を対応づけておく。処理度合いの情報は、例えばフェードアウト処理の開始後、完全にフェードアウトするまでの時間を特定する情報や、エフェクト処理でのエフェクトの強さ（例えばぼかし度合い、半透明度、フィルタ係数等）を特定する情報などである。このようにすることで、発生した各イベントに応じて、処理開始タイミングや処理度合いを異ならせることが可能になり、各イベントに応じた最適な処理開始タイミングや処理度合いで、フェードアウト処理やエフェクト処理を実行できるようになる。
【０１６３】
４．２  仮想カメラの姿勢変化の無効処理
図１８は、仮想空間においてスキーヤーであるキャラクタＣＨがコースＣＳ上を滑って走行している様子を示す図である。図１８において水平面ＨＳは、仮想空間のワールド座標系での水平面（ＸＺ平面）である。平坦なコースＣＳでは、図１８のＡ１に示すようにキャラクタＣＨの進行方向ＤＴは、水平面ＨＳに平行（略平行。以下、同様）な方向になっている。そして仮想カメラＶＣの視線方向ＣＶＬも水平面ＨＳに平行（略平行）な方向になっている。なお仮想カメラＶＣの視点位置ＣＶＰは、例えばキャラクタＣＨの視点の位置（例えば目の位置）に設定され、これにより一人称視点が実現される。
【０１６４】
一方、図１８のＡ２、Ａ３では、キャラクタＣＨは下り坂のコースＣＳを走行しており、キャラクタＣＨの進行方向ＤＴは、水平面ＨＳに対して俯角をなす方向になっている。そしてキャラクタＣＨは、下り坂のコースＣＳの面に対して垂直（略垂直。以下、同様）の立ち姿勢になっているため、仮想カメラＶＣの視線方向ＣＶＬも、水平面ＨＳに対して俯角をなす方向になっている。そして、その後、Ａ４ではキャラクタＣＨは平坦なコースＣＳを走行するため、進行方向ＤＴ及び仮想カメラＶＣの視線方向ＣＶＬは、水平面ＨＳに対して平行な方向へと戻っている。
【０１６５】
このように図１８では、コースＣＳのキャラクタＣＨの走行により、進行方向ＤＴがＡ１〜Ａ４に示すように変化すると、それに伴い仮想カメラＶＣの視線方向ＣＶＬも変化する。一人称視点の画像をＨＭＤに表示する場合には、図１８に示すように、進行方向ＤＴの変化に連動して仮想カメラＶＣの視線方向ＣＶＬを変化させるのが一般的である。そして、このように仮想カメラＶＣの視線方向ＣＶＬが変化すると、図５のＨＭＤの表示画像も、視線方向ＣＶＬの変化に応じて大きく変化してしまう。例えば、図１８のＡ１、Ａ２、Ａ３では、水平面ＨＳに平行な視線方向ＣＶＬでの表示画像から、水平面ＨＳに対して俯角をなす視線方向ＣＶＬでの表示画像に変化し、その後、Ａ４では、水平面ＨＳに平行な視線方向ＣＶＬでの表示画像に戻る。即ち、キャラクタＣＨの進行方向ＤＴの変化に伴い、仮想カメラＶＣの視線方向ＣＶＬが大きく変化し、ＨＭＤの表示画像も大きく揺れてしまう。また、例えばコースＣＳに細かい凹凸があるような場合には、その凹凸に応じて表示画像が激しく揺れてしまう。
【０１６６】
そして、このように表示画像が揺れると、いわゆるユーザの３Ｄ酔いを引き起こしてしまう。例えば現実世界のスキーヤーは、図１８のようなコースの起伏があった場合に、進行方向の変化（加速度の変化、重力方向の変化、遠心力の変化）を三半規管などにより検知して、例えば視線方向を、遠くの方を見るような方向に向ける。これにより、目に見える画像も変化しなくなり、酔いが防止される。
【０１６７】
ところが、仮想空間の世界をＨＭＤを介して見るようなＶＲのシステムでは、図１８のように進行方向ＤＴの変化に伴い、仮想カメラＶＣの視線方向ＣＶＬが変化してしまうと、ユーザの意思や感覚とは無関係に、ＨＭＤの表示画像が揺れてしまう。例えば現実世界のユーザは下りや上りのコースを実際には走行していないのに、ＨＭＤの表示画像だけが、仮想空間のコースの下りや上りの傾斜に応じて変化してしまう。従って、ユーザの意思や感覚とのズレが生じて、３Ｄ酔いを引き起こしてしまう。
【０１６８】
この場合に図４の可動筐体４０では、仮想空間でのコースの下りや上りの傾斜に応じて、ベース部４１をＸ軸回りにピッチングさせており、これにより、仮想空間のコースの下りや上りの傾斜を、ある程度、ユーザに体感させることができるようになっている。しかしながら、例えば仮想空間でのコースの傾斜が２０度〜４０度というような傾斜である場合に、図４のベース部４１のピッチングによる傾斜は例えば１０度以下程度となる。このため、仮想世界のコースの傾斜とは大きな相違があり、図４のベース部４１をピッチングさせても、表示画像の揺れを原因とする３Ｄ酔いの発生を十分には防止できない。
【０１６９】
このように図１８の仮想カメラＶＣの制御手法では、ユーザの意思や感覚とは無関係に、仮想空間のコースの形状に応じて、ユーザの頭部を、あたかも強制的に下に向けたり上に向けたりするような画像がＨＭＤに表示されてしまうため、３Ｄ酔いを引き起こしてしまう。
【０１７０】
そこで本実施形態では、ユーザの視線方向に対応する仮想カメラＶＣの視線方向ＣＶＬが、ユーザが自身の頭を自分で動かさない限り、例えば常に水平面ＨＳに対して平行（略平行）になるようにする。即ち、仮想空間のコースＣＳに傾斜（起伏）があった場合にも、図１８のように仮想カメラＶＣの視線方向ＣＶＬがコースＣＳの傾斜に沿うように変化することはなく、視線方向ＣＶＬが水平面ＨＳに平行になるように、仮想カメラＶＣを制御する。この時に、仮想カメラＶＣの視線方向ＣＶＬは常に水平面ＨＳに平行になるということではなく、ユーザが自身の意思や感覚で視線方向を下方向や上方向に向けた場合には、仮想カメラＶＣの視線方向ＣＶＬもそれに応じて下方向や上方向を向くようになる。こうすることで、ユーザの意思や反応に基づく視線方向の変化を許容しながら、ユーザの意思や感覚とは無関係に視線方向が変化してしまう事態を抑制できる。従って、ユーザの仮想現実感の向上と、ＨＭＤの表示画像の揺れを原因とする３Ｄ酔いの防止とを、両立して実現できるようになる。
【０１７１】
より具体的には本実施形態では、ユーザの視点情報のトラッキング情報を取得し、取得されたトラッキング情報に基づいて仮想カメラＶＣの位置、姿勢を変化させる。ここで仮想カメラＶＣの位置は視点位置ＣＶＰに対応し、仮想カメラＶＣの姿勢は視線方向ＣＶＬに対応する。
【０１７２】
例えば図１９（Ａ）〜図１９（Ｃ）のように現実世界のユーザＰＬが視線方向ＶＬ（頭部）を下方向や上方向に向けると、当該ユーザＰＬの視点情報のトラッキング情報（視点トラッキング情報）が例えばＨＭＤ２００のトラッキング処理により取得される。そして取得されたトラッキング情報（ユーザの視点位置、視線方向の特定情報）に基づいて、仮想カメラＶＣの視点位置ＣＶＰ、視線方向ＣＶＬを設定することで、図１９（Ａ）〜図１９（Ｃ）のように仮想カメラＶＣの位置、姿勢を変化させる。例えば図１９（Ｂ）のようにユーザＰＬの視線方向ＶＬが下方向を向けば、仮想カメラＶＣの視線方向ＣＶＬも下方向を向く。図１９（Ｃ）のようにユーザＰＬの視線方向ＶＬが上方向を向けば、仮想カメラＶＣの視線方向ＣＶＬも上方向を向く。このようにすることで、現実世界のユーザＰＬが視点位置ＶＰや視線方向ＶＬを変化させると、それに応じて仮想カメラＶＣの視点位置ＣＶＰ、視線方向ＣＶＬも変化するようになる。従って、仮想カメラＶＣがユーザＰＬの実際の一人称視点のように振る舞うため、仮想現実感を向上できる。
【０１７３】
より具体的には、ゲームの開始前に、ユーザに対して、基準ポーズ（基準となる立ち姿勢）をとることを指示する。そしてＨＭＤ２００のトラッキング処理により、ユーザの初期視点位置、初期視線方向を検出し、記憶部（ＨＭＤやシミュレーションシステムの記憶部）に保存する。次に、ゲームが開始すると、今度は、保存された初期視点位置、初期視線方向からの変化情報が、トラッキング情報として取得される。即ち、ユーザの視点位置、視線方向の変化情報が、トラッキング情報として取得される。例えば視点位置の変化情報は、視点位置の座標の変化値であり、視線方向の変化情報は、視線方向を表す回転角度（回転軸回りでの回転角度）の変化値である。例えば初期視点位置の座標を（ｘ０、ｙ０、ｚ０）とし、視点位置の座標の変化値を（Δｘ、Δｙ、Δｚ）とする。また初期視線方向を表す回転角度を（θｘ０、θｙ０、θｚ０）とし、視線方向を表す回転角度の変化値を（Δθｘ、Δθｙ、Δθｚ）とする。すると、現在の視点位置は（ｘ、ｙ、ｚ）＝（ｘ０＋Δｘ、ｙ０＋Δｙ、ｚ０＋Δｚ）と表され、現在の視線方向の回転角度は（θｘ、θｙ、θｚ）＝（θｘ０＋Δθｘ、θｙ０＋Δθｙ、θｚ０＋Δθｚ）と表すことができる。
【０１７４】
次にトラッキング情報に基づいて、仮想カメラの視点位置、視線方向を設定して、仮想カメラの位置、姿勢を変化させる。この場合に、仮想カメラの視点位置、視線方向の設定は、仮想カメラの初期視点位置の座標、初期視線方向を表す回転角度に対して、上述の（Δｘ、Δｙ、Δｚ）、（Δθｘ、Δθｙ、Δθｚ）を加算する処理などにより実現できる。
【０１７５】
このような手法によれば、図４において可動筐体４０にライドするユーザの身長（体格）の大小に依存せずに、キャラクタの視点位置に仮想カメラが設定されるようになる。従って、例えばユーザの身長に応じて異なるモデルのキャラクタを用意する必要がなくなるため、データ量の削減等を図れる。
【０１７６】
以上のように本実施形態では、トラッキング処理により取得されたトラッキング情報に基づいて、仮想カメラＶＣの位置、姿勢を変化させている。こうすることで、現実世界のユーザが視点位置や視線方向を変化させると、それに連動して仮想空間での仮想カメラＶＣの視点位置、視線方向も変化するため、ユーザの仮想現実感を向上できる。
【０１７７】
その一方で本実施形態では、図１８のようにキャラクタＣＨ（移動体）の進行方向ＤＴが変化した場合にも、仮想カメラＶＣのピッチング及びローリングの少なくとも一方の姿勢変化については無効（或いは制限）になるように、仮想カメラＶＣを設定する。
【０１７８】
例えば図２０では、下り坂のコースＣＳを走行することで、Ｂ１、Ｂ２、Ｂ３、Ｂ４に示すようにキャラクタＣＨの進行方向ＤＴが変化している。この場合にも図２０では、仮想カメラＶＣのピッチングの姿勢変化（ピッチングに対応する回転軸の回りでの回転運動）は行われず、例えば仮想カメラＶＣの視線方向ＣＶＬは、水平面ＨＳに平行な方向に維持される。即ち図１８では、仮想カメラＶＣの視線方向ＣＶＬが、コースＣＳの状態（傾斜、起伏、形状等）に応じて変化しており、仮想カメラＶＣのピッチングの姿勢変化が行われていた。これに対して図２０では、仮想カメラＶＣの視線方向ＣＶＬは、コースＣＳの状態に依存せずに、仮想カメラＶＣのピッチングの姿勢変化が行われない。但し、図２０において、仮想カメラＶＣの視線方向ＣＶＬは、常に水平面ＨＳに平行というわけではなく、図１９（Ａ）〜図１９（Ｃ）で説明したように、ユーザが視線方向を上方向や下方向に向けると、それに応じて仮想カメラＶＣの視線方向ＣＶＬも変化する。
【０１７９】
また本実施形態では、キャラクタＣＨが右方向や左方向に曲がるような進行方向の変化により、ローリングが生じるような状況になった場合にも、図２１に示すように、仮想カメラＶＣのローリングの姿勢変化は行われない。即ち、ローリングの回転軸の回りで回転しないように仮想カメラＶＣが設定される。このようにすることで、図５のＨＭＤの表示画像において、ユーザが頭を左右に傾けない限り、水平線の方向が変化しないようになり、３Ｄ酔いを抑制できる。
【０１８０】
なお、キャラクタＣＨが右方向や左方向に曲がるような進行方向の変化があった場合に、例えば仮想カメラＶＣのヨーイングの姿勢変化については行われるようになっている。例えばキャラクタＣＨが右方向に曲がった場合には、仮想カメラＶＣの視線方向ＣＶＬが右方向を向き、キャラクタＣＨが左方向に曲がった場合には、仮想カメラＶＣの視線方向ＣＶＬが左方向を向くように、ヨーイングの姿勢変化が行われる。こうすることで、ユーザは、仮想ユーザであるキャラクタＣＨの進行方向において見えるべき画像を、仮想カメラＶＣを介して見ることができるようになり、図５のＨＭＤの表示画像として適切な画像を表示できるようになる。
【０１８１】
例えば、仮想カメラＶＣの長軸(光軸)に沿った軸をＺＶ軸とし、ＺＶ軸に直交し、且つ、ワールド座標系の鉛直方向の軸に平行な軸をＹＶ軸とし、ＺＶ軸及びＹＶ軸に直交する軸をＸＶ軸とする。この場合に、仮想カメラＶＣのピッチングは、例えばＸＶ軸回りの回転運動である。仮想カメラＶＣのローリングは、例えばＺＶ軸回りの回転運動である。またヨーイングは、例えばＹＶ軸回りの回転運動である。図２０では、ＸＶ軸回りの回転運動である仮想カメラＶＣのピッチングが行われず、図２１では、ＺＶ軸回りの回転運動である仮想カメラＶＣのローリングが行われないように、仮想カメラＶＣが設定されている。一方、ＹＶ軸回りの回転運動である仮想カメラＶＣのヨーイングについては許容される。
【０１８２】
なお図２０、図２１では、進行方向の変化による仮想カメラＶＣのピッチングやローリングの姿勢変化を無効にする場合について説明したが、当該姿勢変化を制限（抑制）するような仮想カメラＶＣの制御を行ってもよい。例えば図１８のようにキャラクタＣＨの進行方向ＤＴに平行になるように仮想カメラＶＣの視線方向ＣＶＬが変化した場合における、仮想カメラＶＣのピッチ角の変化をαとする。この場合に図２０では、仮想カメラＶＣのピッチ角の変化はΔθｐ＝０となっているが、Δθｐ＜αというように、Δθｐが十分に小さくなるように、仮想カメラＶＣのピッチングの姿勢変化を制限してもよい。また図２１のコーナリングによるローリングにおいて、鉛直方向の軸に対するキャラクタＣＨの体軸（長辺方向に沿った軸。縦軸）の角度であるローリング角の変化をβとする。この場合に図２１では、仮想カメラＶＣのロール角の変化はΔθｒ＝０となっているが、Δθｒ＜βというように、Δθｒが十分に小さくなるように仮想カメラＶＣのローリングの姿勢変化を制限してもよい。
【０１８３】
以上のように本実施形態によれば、キャラクタＣＨ（移動体）の進行方向ＤＴの変化により、ピッチングやローリングが発生するような状況になった場合にも、仮想カメラＶＣのピッチ角やロール角は変化しないようになる（或いはピッチ角やロール角の変化が制限される）。このため、ＨＭＤの表示画像が大きく揺れたり、激しく揺れるような事態が防止され、３Ｄ酔いの発生を抑制できる。この場合に図１９（Ａ）〜図１９（Ｃ）に示すように、ユーザが頭部を動かすなどして視点位置ＶＰや視線方向ＶＬを変化させた場合には、それに応じて仮想カメラＶＣの姿勢が変化する。これにより、あたかも本当のスキーヤーになってコースを滑っているような仮想現実感をユーザに与えることができる。従って、本実施形態によれば、３Ｄ酔い等の不具合の発生の防止と、仮想現実感の向上を両立して実現できるシミュレーションシステムの提供が可能になる。
【０１８４】
例えば本実施形態の比較例の手法として、仮想カメラの視線方向を、常に水平面に平行になるように設定する手法が考えられる。この比較例の手法は、通常の三人称視点の疑似三次元画像を生成するシステムには適している。しかしながら、この比較例の手法では、ユーザの意思や反応に依らずに、常に仮想カメラの視線方向を水平方向に向けているため、ＨＭＤを用いるようなシステムには不適である。
【０１８５】
これに対して本実施形態の手法では、ユーザの意思や無意識の反応で、頭部を動かすなどして、現実世界でのユーザの視点位置や視線方向が変化すると、それに連動して仮想世界での仮想カメラの視点位置や視線方向が変化する（図１９（Ａ）〜図１９（Ｃ））。従って、ユーザの意思や反応に基づく視点の変化が、仮想カメラの視点の変化として反映するようになるため、ＨＭＤを用いるシステムに最適な仮想カメラの制御を実現でき、ユーザの仮想現実感の向上等を図れる。そして本実施形態では、このようなユーザの意思や反応に基づく視点の変化を反映させながら、移動体の進行方向の変化による影響については、仮想カメラのピッチングやローリングの姿勢変化に対して反映させない。従って、仮想現実感の向上を図りながら、３Ｄ酔い等の発生を防止できるシミュレーションシステムの提供が可能になる。
【０１８６】
図２２は、仮想カメラのピッチングやローリングの姿勢変化の無効処理（制限処理）を実現する第１の実現手法を説明する図である。
【０１８７】
図２２では、Ｃ１〜Ｃ４に示すようにキャラクタＣＨ（移動体）の進行方向ＤＴが変化した場合にも、キャラクタＣＨのピッチング及びローリングの少なくとも一方の姿勢変化が無効（又は制限）になるように、キャラクタＣＨを移動させる処理が行われている。そして姿勢変化が無効（又は制限）にされたキャラクタＣＨの視点の位置に、仮想カメラＶＣが設定されている。別の言い方をすれば、ユーザに対応するキャラクタＣＨ（仮想ユーザ）が仮想空間において移動する際に、その視線方向を、キャラクタＣＨと基準座標（足元位置ＬＰ）は共通で、体軸（Ｙ軸）がワールド座標系の水平面ＨＳ（基準面）に垂直となる基本モデル（基本姿勢）の視点座標系に変換して演算することによって、３Ｄ酔いの発生を防止している。
【０１８８】
例えば図１８では、コースＣＳの状態（傾斜）に応じて、キャラクタＣＨのピッチングの姿勢が変化している。例えば下り坂のコースＣＳでは、キャラクタＣＨが前側にピッチングする姿勢変化が行われる。即ち水平方向に対して俯角となるピッチ角の姿勢変化が行われる。上り坂のコースＣＳでは、キャラクタＣＨが後ろ側にピッチングする姿勢変化が行われる。即ち水平方向に対して仰角となるピッチ角の姿勢変化が行われる。
【０１８９】
これに対して図２２では、Ｃ１〜Ｃ４に示すようにキャラクタＣＨの進行方向ＤＴが変化した場合にも、キャラクタＣＨはピッチングの姿勢変化を行わない。例えばキャラクタＣＨの体軸（頭部と足元を結ぶ軸）が、ワールド座標系の水平面ＨＳに対して例えば直角（略直角）になるように、キャラクタＣＨの姿勢が設定（固定）される。例えばキャラクタＣＨの足元の位置ＬＰ（基準座標）に対して、基本姿勢（直立姿勢）のキャラクタＣＨが配置される。そしてキャラクタＣＨの進行方向ＤＴが変化した場合にも、キャラクタＣＨは、基本姿勢（直立姿勢）のままコースＣＳを走行する。例えばコース情報として、各ポイントでのコースの高さ情報が設定されている場合に、キャラクタＣＨを移動させる際には、このコース情報の高さ情報だけを参照する。そしてキャラクタＣＨの姿勢は変化させずに、例えば基準位置である足元位置ＬＰの高さだけを変化させる。図２２では、下り坂のコースＣＳであるため、キャラクタＣＨがコースＣＳを走行するにつれて、キャラクタＣＨ（足元位置ＬＰ）の高さだけが変化し、キャラクタＣＨの姿勢は変化しない。
【０１９０】
同様に、右方向や左方向へのコーナリングにより、図２１で説明したように姿勢をローリングさせるような状況が発生した場合にも、キャラクタＣＨのローリングの姿勢変化は行われない。即ち、コーナリングによる進行方向ＤＴの変化があった場合にも、キャラクタＣＨは、図２２のような基本姿勢（立ち姿勢）のままで、図２１のようなローリングの姿勢変化は行われずに、コースＣＳ上を走行するようになる。
【０１９１】
そして、このような基本姿勢のキャラクタＣＨの視点（視点座標系）の位置に仮想カメラＶＣの視点位置ＣＶＰが設定される。また仮想カメラＶＣの視線方向ＣＶＬは、水平面ＨＳに平行な方向を向いている。例えばキャラクタＣＨの姿勢は基本姿勢のままで変化しないため、足元の位置ＬＰに対するキャラクタＣＨの視点位置は固定の位置となっており、この固定の位置に仮想カメラＶＣの視点位置ＣＶＰが設定される。またキャラクタＣＨの基本姿勢は直立姿勢であり、仮想カメラＶＣの視線方向ＣＶＬはキャラクタＣＨの体軸と直交（略直交）する方向に向いている。
【０１９２】
なお、実際には、スキーヤーであるキャラクタＣＨは少しだけ前傾した基本姿勢となっている。このため、キャラクタＣＨの体軸と水平面ＨＳのなす角度は、９０度よりも少しだけ小さくなり、キャラクタＣＨの体軸と仮想カメラＶＣの視線方向ＣＶＬのなす角度は、９０度よりも少しだけ大きくなる。
【０１９３】
このように図２２では、進行方向ＤＴが変化した場合にも、キャラクタＣＨがピッチングやローリングの姿勢変化を行わずに、基本姿勢（直立姿勢、前傾姿勢）のままでコースＣＳ上を走行する。そして、このような基本姿勢のままのキャラクタＣＨの視点位置に仮想カメラＶＣを設定することで、結果的に、図２０に示すような仮想カメラＶＣの姿勢制御を実現できる。即ち、進行方向ＤＴが変化した場合にも、仮想カメラＶＣのピッチングやローリングが行われないような姿勢制御を実現できる。
【０１９４】
図２３は、仮想カメラのピッチングやローリングの姿勢変化の無効処理（制限処理）の第２の実現手法を説明する図である。
【０１９５】
図２３のＦ１〜Ｆ４では、キャラクタＣＨ（移動体）の進行方向ＤＴの変化に応じてキャラクタＣＨの姿勢が変化するようにキャラクタＣＨを移動させる処理が行われている。例えば下り坂のコースＣＳであれば、キャラクタＣＨが前側にピッチングする姿勢変化が行われ、上り坂のコースＣＳであれば、後ろ側にピッチングする姿勢変化が行われる。また、右方向や左方向に曲がる場合には、ローリングする姿勢変化が行われる。
【０１９６】
そして図２３のＦ１〜Ｆ４では、このように進行方向ＤＴの変化に応じてキャラクタＣＨの姿勢が変化した場合にも、仮想カメラＶＣのピッチングやローリングの姿勢変化については無効（制限）になるように、仮想カメラＶＣを設定される。
【０１９７】
例えば図２３のＦ２、Ｆ３では、下り坂のコースＣＳであるため進行方向ＤＴは下方向を向いており、キャラクタＣＨについても前側にピッチングする姿勢変化が行われている。しかしながら、仮想カメラＶＣの視線方向ＣＶＬは、水平方向を向いており、進行方向ＤＴとは異なる方向を向いている。
【０１９８】
このようにすれば、コースＣＳの状態等に応じてキャラクタＣＨの進行方向が変化した場合にも、ユーザが頭部等を動かさない限り、仮想カメラＶＣの視線方向ＣＶＬは一定の方向（水平方向）を向くようになる。従って、ＨＭＤの表示画像が大きく揺れたり、激しく揺れる事態を防止でき、３Ｄ酔いの発生を防止できる。そして図２２の第１の実現手法とは異なり、図２３の第２の実現手法では、キャラクタＣＨの姿勢については、進行方向ＤＴに応じて変化する。例えば下り坂のコースＣＳであれば、下方向を向く姿勢になり、上り坂のコースＣＳであれば、上方向を向く姿勢になる。またコーナリング時には、図２１のように体軸を右又は左に傾けたローリングの姿勢になる。従って、例えば対戦用画像、観賞用画像又はデモ画像においても、相手ユーザやギャラリー等が不自然さを感じない画像を表示できるようになる。従って、ＨＭＤの表示画像の揺れによる３Ｄ酔いの発生の防止と、適切な対戦用画像、観賞用画像又はデモ画像の生成とを両立して実現できるようになる。なお、対戦用画像は、対戦用として用いられる画像である。例えば対戦用画像は、当該ユーザのキャラクタ等の移動体を、対戦相手となる相手ユーザが見るための画像であり、例えば当該相手ユーザのＨＭＤ（表示部）に表示される画像である。観賞用画像（観戦用画像）は、観賞用に用いられる画像である。例えば観賞用画像は、ユーザの移動体が移動するゲームの様子を観賞（観戦）するための画像である。例えば観賞用画像は、ギャラリーがゲームの様子を観るために観賞用モニターに表示される画像である。デモ用画像は、デモ用として用いられる画像である。例えばデモ用画像は、ゲームの開始前や開始後などにデモンストレーション用に表示される画像である。
【０１９９】
図２４（Ａ）〜図２４（Ｃ）は、崖ＣＦからの落下イベント時における仮想カメラＶＣの姿勢変化を説明する図である。図２４（Ａ）のようにキャラクタＣＨが崖ＣＦから飛び出して、図２４（Ｂ）や図２４（Ｃ）に示すように落下した場合に、キャラクタＣＨの進行方向ＤＴが水平方向から下側方向に変化する。この場合に本実施形態では図２０で説明した手法を用いることで、図２４（Ｂ）、図２４（Ｃ）に示すように、仮想カメラＶＣの視線方向ＣＶＬは下側方向を向かず、水平方向に維持される。即ち、仮想カメラＶＣのピッチングの姿勢変化が無効になっている。
【０２００】
ここで図２４（Ｂ）は、図２２の第１の実現手法を用いた場合の例であり、図２４（Ｃ）は、図２３の第２の実現手法を用いた場合の例である。図２４（Ｂ）では第１の実現手法を用いているため、キャラクタＣＨのピッチングの姿勢変化が無効になっている。図２４（Ｃ）では第２の実現手法を用いているため、キャラクタＣＨはピッチングの姿勢変化を行っているが、仮想カメラＶＣについてはピッチングの姿勢変化が無効になっている。なお、図２４（Ｂ）、図２４（Ｃ）において、図１９（Ｂ）に示すように現実世界のユーザが下側方向を向いた場合には、仮想カメラＶＣの視線方向ＣＶＬも下側方向を向くようになり、ユーザは崖下の様子を見ることが可能になる。
【０２０１】
図２５（Ａ）〜図２５（Ｃ）は、岩ＲＫへの衝突イベント時における仮想カメラＶＣの姿勢変化を説明する図である。図２５（Ａ）のようにキャラクタＣＨが岩ＲＫに衝突した場合に、図２５（Ｂ）、図２５（Ｃ）では、キャラクタＣＨの進行方向ＤＴが例えば上側方向に変化している。この場合に本実施形態では図２０で説明した手法を用いること、図２５（Ｂ）、図２５（Ｃ）に示すように、仮想カメラＶＣの視線方向ＣＶＬは上側方向を向かず、水平方向に維持される。即ち、仮想カメラＶＣのピッチングの姿勢変化が無効になっている。
【０２０２】
ここで図２５（Ｂ）は、図２２の第１の実現手法を用いた場合の例であり、図２５（Ｃ）は、図２３の第２の実現手法を用いた場合の例である。図２５（Ｂ）では第１の実現手法を用いているため、キャラクタＣＨのピッチングの姿勢変化が無効になっている。図２５（Ｃ）では第２の実現手法を用いているため、キャラクタＣＨはピッチングの姿勢変化を行っているが、仮想カメラＶＣについてはピッチングの姿勢変化が無効になっている。なお図２５（Ｂ）、図２５（Ｃ）において、図１９（Ｃ）に示すように現実世界のユーザが上側方向を向いた場合には、仮想カメラＶＣの視線方向ＣＶＬも上側方向を向くようになる。
【０２０３】
このように図２４（Ａ）〜図２５（Ｃ）では、仮想カメラＶＣのピッチング等の姿勢変化が無効になるため、ユーザの３Ｄ酔い等の発生を抑制できる。しかしながら、例えば図２４（Ａ）〜図２４（Ｃ）では、仮想カメラＶＣの視線方向ＣＶＬは水平に維持されるものの、仮想カメラＶＣの視点位置ＣＶＰが下側方向に移動するため、図５のＨＭＤの表示画像もこれに伴い大きく変化してしまう。また図２５（Ａ）〜図２５（Ｃ）では、仮想カメラＶＣの視点位置ＣＶＰが上側方向に移動するため、図５のＨＭＤの表示画像もこれに伴い大きく変化してしまう。従って、仮想カメラのピッチング等の姿勢変化を無効にする手法だけでは、ユーザの３Ｄ酔い等の発生を完全には防止できない。
【０２０４】
この点、本実施形態では、図１０（Ａ）〜図１４（Ｂ）で説明したように、衝突イベントや落下イベントが発生した場合に、表示画像のフェードアウト処理等を行っている。従って、図２４（Ａ）〜図２５（Ｃ）において、仮想カメラＶＣの視点位置ＣＶＰが下側方向や上側方向に移動して、ＨＭＤの表示画像が大きく変化した場合にも、短時間で表示画像をフェードアウトすることなどにより、ユーザの３Ｄ酔い等の発生を防止できるようになる。
【０２０５】
４．３  可動筐体及び出力音の制御、ユーザ設定、プレイ履歴
本実施形態では、図２６に示すように、移動体（キャラクタ等）の進行方向の変化又は移動体が移動するコースの状況（状態）に応じて、図４、図６等で説明した可動筐体４０がユーザのプレイ位置を変化させてもよい。或いは、移動体の進行方向の変化に応じた音又は移動体が移動するコースの状況に応じた出力音を生成してもよい。
【０２０６】
例えば、仮想空間の移動体（キャラクタ等）の進行方向が、下り坂のコースで下方向を向いた場合には、現実空間のユーザの姿勢が前側にピッチングするように可動筐体４０を制御する。図４を例にとれば、後ろ側のエアバネ部５０、５２を伸ばす一方で、前側のエアバネ部５１、５３を縮める。また例えば下り坂のコースを下っているようにユーザに感じさせる出力音（例えば風切り音）を出力する。また仮想空間の移動体の進行方向が、上り坂のコースで上方向を向いた場合には、現実空間のユーザの姿勢が後ろ側にピッチングするように可動筐体４０を制御する。図４を例にとれば、後ろ側のエアバネ部５０、５２を縮める一方で、前側のエアバネ部５１、５３を伸ばす。また例えば上り坂のコースを上っているようにユーザに感じさせる出力音を出力する。
【０２０７】
またコースが凹凸のあるガタガタ道である場合には、ユーザのプレイ位置を上下に揺らすような可動筐体４０の制御を行う。図４を例にとれば、各エアバネ部５０〜５２を上下方向に細かく伸縮させる。またガタガタ道を表すような出力音を出力する。
【０２０８】
このように可動筐体４０や出力音を制御すれば、仮想空間での移動体の進行方向の変化やコースの状況を、可動筐体４０や出力音を用いてユーザに感じさせることが可能になる。例えば進行方向の変化やコース状況による加速度等の変化を、可動筐体４０によるプレイ位置の変化により体感させたり、出力音の変化により聴覚的に認識させることが可能になる。従って、現実世界でのユーザの体感や聴覚状態と、仮想世界での移動体やコースの状況とが、ある程度、一致するようになり、３Ｄ酔いの発生の抑制を図れる。例えば、このような可動筐体４０によるプレイ位置の変化や出力音の変化が無い状態で、仮想空間での移動体の進行方向やコース状況が激しく変化すると、ユーザの体感や聴覚状態と仮想空間の状況とが一致しなくなる。このため３Ｄ酔いが発生する事態してしまうおそれがあるが、図２６の本実施形態の手法によれば、このような事態の発生を防止できる。
【０２０９】
また本実施形態では、ユーザによる設定情報又はユーザのプレイ履歴情報に基づいて、フェードアウト処理やエフェクト処理（仮想カメラから見える画像とは異なる画像に変化させる表示処理）の処理開始タイミングや処理度合いを変化させてもよい。
【０２１０】
例えば図２７は、ユーザがゲームの各種のオプションを設定するオプション設定画面の例である。このオプション設定画面において、ユーザは、フェードアウト処理やエフェクト処理の処理開始タイミングや処理度合いを設定できるようになっている。例えば３Ｄ酔いを起こしやすいユーザは、処理開始タイミングを早くしたり、処理度合いを強くする。こうすることで、フェードアウト処理やエフェクト処理が短時間で開始したり、その処理度合いが強くなるため、このようなユーザが３Ｄ酔いを引き起こすのを効果的に防止できる。一方、３Ｄ酔いを起こしにくいユーザは、処理開始タイミングを遅くしたり、処理度合いを弱くすることで、よりリアルな設定でのゲームを楽しめるようになる。
【０２１１】
また図２８では、ユーザのプレイ履歴の情報に基づいて、フェードアウト処理やエフェクト処理の処理開始タイミングや処理度合いを設定する。例えばユーザのプレイ履歴情報に基づいて、例えば衝突、落下、転倒などのイベントの発生率が高いと判断されるユーザについては、処理開始タイミングを早くしたり、処理度合いを強くする。こうすることで、ゲームプレイに慣れていないと判断されるユーザや、初級者であると判断されるユーザについては、処理開始タイミングを早くしたり、処理度合いを強くすることで、３Ｄ酔いを引き起こすのを効果的に防止できる。一方、ゲームプレイに慣れている判断されるユーザや、上級者であると判断されるユーザについては、３Ｄ酔いを起こしにくいと判断して、処理開始タイミングを遅くしたり、処理度合いを弱くする。例えばプレイ履歴情報に基づいて、ユーザの衝突回数、落下回数、転倒回数、又は過去のセッテイング（オプション設定等）を特定する。そして、ユーザの衝突回数、落下回数、転倒回数又は過去のセッテイングなどの情報に基づいて、仮想カメラから見える画像とは異なる画像に変化させる処理を実行する。例えばフェードアウト処理やエフェクト処理の処理開始タイミングや処理度合いなどの設定パラメータを、当該情報に基づいて決定する。なおプレイ履歴の情報は、例えば図１の携帯型情報記憶媒体１９５（ＩＣカード等）に記憶されており、携帯型情報記憶媒体１９５からプレイ履歴の情報に基づいて、処理開始タイミングや処理度合いの設定を行う。或いは外部のサーバからユーザのプレイ履歴の情報をダウンロードしてもよい。
【０２１２】
４．４  処理例
次に本実施形態の処理例について図２９のフローチャートを用いて説明する。
【０２１３】
まず、ユーザの操作情報を取得する（ステップＳ１）。例えば図１の操作部１６０を用いて入力したユーザの操作情報を取得する。またユーザの視点情報のトラッキング情報を取得する（ステップＳ２）。例えば図２（Ａ）〜図３（Ｂ）等で説明したトラッキング処理により得られたトラッキング情報を取得する。そしてユーザの操作情報、コース情報等に基づく、移動体の移動処理を実行する（ステップＳ３）。例えばユーザの操作情報に基づいて、コース情報で規定されるコース上で、キャラクタ等の移動体を移動させる処理を実行する。
【０２１４】
次に、移動体の加速度の変化、仮想カメラの視線方向の変化について、所与の変化条件を満たすイベントが発生したか否かを判断する（ステップＳ４）。例えば前述した衝突イベントや落下イベントや転倒イベントが発生したか否かを判断する。そして、当該イベントが発生した場合には、当該イベントに対応する処理開始タイミングになったか否かを判断する（ステップＳ５）。この処理開始タイミングは、例えば図１７（Ａ）で説明したようなテーブルデータを用いて取得できる。そして、処理開始タイミングになった場合には、当該イベントに対応する処理度合いで、フェードアウト処理（エフェクト処理）を実行する（ステップＳ６）。この処理度合いは、例えば図１７（Ｂ）で説明したようなテーブルデータを用いて取得できる。
【０２１５】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（移動体、伸縮部等）と共に記載された用語（キャラクタ、エアバネ部等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また移動体の移動処理、仮想カメラの制御処理（設定処理）、変化条件の成立やイベント発生の判断処理、ＨＭＤの表示画像の表示処理、フェードアウト処理、エフェクト処理等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。
【符号の説明】
【０２１６】
ＣＨ  キャラクタ（移動体）、ＤＴ  進行方向、ＣＳ  コース、
ＶＣ  仮想カメラ、ＶＰ、ＣＶＰ  視点位置、ＶＬ、ＣＶＬ  視線方向、
ＬＰ  足元位置、ＨＳ  水平面、ＲＫ  岩、ＣＦ  崖、
ＰＬ  ユーザ、ＰＰＬ  プレイ位置、ＴＰ  経由点、ＣＰ  ケーブル接続点、
２０  ケーブル、４０  可動筐体、４１、４２  ベース部、４３  ４４  操作部材、
４５、４６  足台、５０〜５３  エアバネ部、６０、６２  ガイド部、
６１、６３  把持部、６４  支持ガイド、６５  ケーブル取り出し口、６９  風洞部、
１００  処理部、１０２  入力処理部、１１０  演算処理部、１１２  ゲーム処理部、
１１３  可動筐体処理部、１１４  移動体処理部、１１６  オブジェクト空間設定部、
１１８  仮想カメラ制御部、１２０  表示処理部、１３０  音処理部、
１４０  出力処理部、１５０  撮像部、１５１、１５２  カメラ、
１６０  操作部、１６１、１６２  操作レバー、１６３  アクセルペダル、
１６４  ブレーキペダル、１６５  ゲームコントローラ、
１７０  記憶部、１７２  空間情報記憶部、１７８  描画バッファ、
１８０  情報記憶媒体、１９２  音出力部、１９４  Ｉ／Ｆ部、
１９５  携帯型情報記憶媒体、１９６  通信部、
２００  ＨＭＤ（頭部装着型表示装置）、２０１〜２０３  受光素子、２１０  センサ部、
２２０  表示部、２３１〜２３６  発光素子、２４０  処理部、２６０  ヘッドバンド、
２７０  ヘッドホン、２８０、２８４  ステーション、
２８１、２８２、２８５、２８６  発光素子、
４３０、フレーム部、４３２  ガイド部、４３３  固定具、４５０  底部、
４５１  カバー部、４５２  ベース部、４５４、４５５  レール部、４６０  ライド部、
４６２  シート、４６４  シート支持部、４７０  移動部、４７２  支持部、
４７３  上面部、４７４  下面部
【図１】
2018010487.tif 000003
【図２】
2018010487.tif 000004
【図３】
2018010487.tif 000005
【図４】
2018010487.tif 000006
【図５】
2018010487.tif 000007
【図６】
2018010487.tif 000008
【図７】
2018010487.tif 000009
【図８】
2018010487.tif 000010
【図９】
2018010487.tif 000011
【図１０】
2018010487.tif 000012
【図１１】
2018010487.tif 000013
【図１２】
2018010487.tif 000014
【図１３】
2018010487.tif 000015
【図１４】
2018010487.tif 000016
【図１５】
2018010487.tif 000017
【図１６】
2018010487.tif 000018
【図１７】
2018010487.tif 000019
【図１８】
2018010487.tif 000020
【図１９】
2018010487.tif 000021
【図２０】
2018010487.tif 000022
【図２１】
2018010487.tif 000023
【図２２】
2018010487.tif 000024
【図２３】
2018010487.tif 000025
【図２４】
2018010487.tif 000026
【図２５】
2018010487.tif 000027
【図２６】
2018010487.tif 000028
【図２７】
2018010487.tif 000029
【図２８】
2018010487.tif 000030
【図２９】
2018010487.tif 000031