(57)【特許請求の範囲】
【請求項１】
コンピュータシステムに、仮想現実空間と実空間とを対応づけて、ユーザが装着するＨＭＤ（ヘッドマウントディスプレイ）に前記仮想現実空間の画像を表示させるためのプログラムであって、
前記ユーザの身体部位又は前記ユーザが具備するコントローラを基準体として前記実空間内の前記基準体をトラッキングする基準体トラッキング手段、
前記仮想現実空間において所与の仮想オブジェクトの位置及び姿勢を、前記基準体の位置及び姿勢に対応付けて追従させるように制御する追従制御手段、
前記仮想オブジェクトが前記仮想現実空間内の所与の位置又は所与のエリア（以下、包括して「到達位置」という）へ到達した際の到達姿勢を少なくとも含む到達状態を設定する到達状態設定手段、
前記仮想オブジェクトの前記到達位置への接近に応じて、前記仮想オブジェクトの姿勢を、前記追従制御手段により追従されている姿勢（以下「追従姿勢」という）から前記到達姿勢に変更する制御を行う変更制御手段、
として前記コンピュータシステムを機能させるためのプログラム。
【請求項２】
前記到達状態設定手段は、前記到達位置に向かう前記仮想オブジェクトの方位別に前記到達状態を対応付けて設定し、
前記変更制御手段は、前記仮想オブジェクトが前記到達位置へ接近する方位と、前記方位別の前記到達状態とに基づいて、変更する制御を行う、
請求項１に記載のプログラム。
【請求項３】
前記変更制御手段は、前記仮想オブジェクトから前記到達位置までの距離が所与の変更制御発動条件を満たした場合に前記変更の制御を発動する、
請求項１又は２に記載のプログラム。
【請求項４】
前記変更制御発動条件を満たした後、前記仮想オブジェクトから前記到達位置までの距離が所与の近接条件を満たした場合に、自動的に前記仮想オブジェクトの位置を前記到達位置に移動させる自動移動制御手段、
として前記コンピュータシステムを更に機能させるための請求項３に記載のプログラム。
【請求項５】
前記変更制御手段は、前記仮想オブジェクトから前記到達位置までの距離が短くなるに従って、前記仮想オブジェクトの姿勢を前記到達姿勢に近づけるように変更する、
請求項１〜４の何れか一項に記載のプログラム。
【請求項６】
前記到達状態には、前記仮想オブジェクトが前記到達位置に到達した際の到達時動作、及び／又は、到達時表示形態が含まれ、
前記変更制御手段は、前記仮想オブジェクトから前記到達位置までの距離が短くなるに従って、前記仮想オブジェクトの状態を前記到達状態に近づけるように変更する、
請求項５に記載のプログラム。
【請求項７】
前記仮想現実空間内の所与のキャラクタの所与の部位に、前記到達位置を設定する到達位置設定手段、
として前記コンピュータシステムを更に機能させるための請求項１〜６の何れか一項に記載のプログラム。
【請求項８】
前記到達状態設定手段は、前記キャラクタの前記部位の向きに応じて、前記到達姿勢を設定する、
請求項７に記載のプログラム。
【請求項９】
コンピュータシステムに、仮想現実空間と実空間とを対応づけて、ユーザが装着するＨＭＤ（ヘッドマウントディスプレイ）に前記仮想現実空間の画像を表示させるためのプログラムであって、
前記ユーザの身体部位又は前記ユーザが具備するコントローラを基準体として前記実空間内の前記基準体をトラッキングする基準体トラッキング手段、
前記仮想現実空間において所与の仮想オブジェクトの位置及び姿勢を、前記基準体の位置及び姿勢に対応付けて追従させるように制御する追従制御手段、
前記仮想オブジェクトが前記仮想現実空間内の所与のキャラクタの所与の部位の位置（以下「到達位置」という）へ到達した際の前記仮想オブジェクトの表示形態を少なくとも含む到達状態を設定する到達状態設定手段、
前記仮想オブジェクトの前記到達位置への接近に応じて、前記仮想オブジェクトの状態を前記到達状態に変更する制御を行う変更制御手段、
として前記コンピュータシステムを機能させるためのプログラム。
【請求項１０】
前記仮想オブジェクトの前記到達位置への接近に応じて、前記キャラクタの位置及び／又は姿勢を制御するキャラクタ制御手段、
として前記コンピュータシステムを更に機能させるための請求項７〜９の何れか一項に記載のプログラム。
【請求項１１】
前記キャラクタは、前記ユーザのアバターキャラクタである、
請求項７〜１０の何れか一項に記載のプログラム。
【請求項１２】
前記実空間内の前記ＨＭＤをトラッキングするＨＭＤトラッキング手段、
前記ＨＭＤトラッキング手段によりトラッキングされた前記ＨＭＤの位置に基づいて、前記仮想現実空間における前記アバターキャラクタの前記所与の部位の位置を判定する手段、
として前記コンピュータシステムを更に機能させるための請求項１１に記載のプログラム。
【請求項１３】
前記変更制御手段は、前記仮想オブジェクトの姿勢を、前記追従姿勢から前記到達姿勢に直ちに変更する、
請求項１又は２に記載のプログラム。
【請求項１４】
前記到達状態には、前記仮想オブジェクトが前記到達位置に到達した際の到達時動作、及び／又は、到達時表示形態が含まれ、
前記変更制御手段は、前記仮想オブジェクトの姿勢の変更に合わせて、前記仮想オブジェクトの状態を前記到達状態に変更する、
請求項１３に記載のプログラム。
【請求項１５】
仮想現実空間と実空間とを対応づけて、ユーザが装着するＨＭＤ（ヘッドマウントディスプレイ）に前記仮想現実空間の画像を表示する制御を行うコンピュータシステムであって、
前記ユーザの身体部位又は前記ユーザが具備するコントローラを基準体として前記実空間内の前記基準体をトラッキングする基準体トラッキング手段と、
前記仮想現実空間において所与の仮想オブジェクトの位置及び姿勢を、前記基準体の位置及び姿勢に対応付けて追従させるように制御する追従制御手段と、
前記仮想オブジェクトが前記仮想現実空間内の所与の位置又は所与のエリア（以下、包括して「到達位置」という）へ到達した際の到達姿勢を少なくとも含む到達状態を設定する到達状態設定手段と、
前記仮想オブジェクトの前記到達位置への接近に応じて、前記仮想オブジェクトの姿勢を、前記追従制御手段により追従されている姿勢（以下「追従姿勢」という）から前記到達姿勢に変更する制御を行う変更制御手段と、
を備えたコンピュータシステム。
【請求項１６】
仮想現実空間と実空間とを対応づけて、ユーザが装着するＨＭＤ（ヘッドマウントディスプレイ）に前記仮想現実空間の画像を表示する制御を行うコンピュータシステムであって、
前記ユーザの身体部位又は前記ユーザが具備するコントローラを基準体として前記実空間内の前記基準体をトラッキングする基準体トラッキング手段と、
前記仮想現実空間において所与の仮想オブジェクトの位置及び姿勢を、前記基準体の位置及び姿勢に対応付けて追従させるように制御する追従制御手段と、
前記仮想オブジェクトが前記仮想現実空間内の所与のキャラクタの所与の部位の位置（以下「到達位置」という）へ到達した際の前記仮想オブジェクトの表示形態を少なくとも含む到達状態を設定する到達状態設定手段と、
前記仮想オブジェクトの前記到達位置への接近に応じて、前記仮想オブジェクトの状態を前記到達状態に変更する制御を行う変更制御手段と、
を備えたコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに、仮想現実空間と実空間とを対応づけて、ユーザが装着するＨＭＤ（ヘッドマウントディスプレイ）に仮想現実空間の画像を表示させるためのプログラム等に関する。
【背景技術】
【０００２】
ユーザに立体視可能な映像とともに立体音響を提供して仮想現実空間に居るかのような体感をもたらす所謂ＶＲ（Virtual Reality）技術が公知である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０７−２００１６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
さて、ＶＲを実現するに当たって、ＨＭＤやプレーヤが手に持ったコントローラ（或いは手）の位置及び姿勢は常にトラッキングされている。この結果、ＨＭＤの位置及び姿勢は、仮想現実空間における仮想プレーヤの頭部の位置及び姿勢の追従に利用され、コントローラの位置及び姿勢は仮想プレーヤの手の位置及び姿勢の追従に利用される。そして、ＶＲ体験中、実空間のモノとそれに対応する仮想空間のモノとに追従ズレが生じないことが理想とされる。
【０００５】
しかし、実際には様々な理由によりトラッキングの誤差が生じてしまう。そして、ＶＲ体験においては、実空間のモノとそれに対応する仮想空間のモノとのズレは、リアリティを重んじるＶＲ体験において大きな問題となる。
【０００６】
例えば、恋人とのデートをテーマとしたＶＲ体験において、口を開いて待っている恋人の口元へケーキを運んで食べさせるシーンがあるとする。恋人への心象を左右する重要なシーンであるが、要求されているのはケーキを口元へ運ぶ至って簡単な動作である。しかし、トラッキングのズレが生じていると、移動対象（ケーキ）を移動目標位置（恋人の口元）へ、正しい姿勢（口に入りやすいケーキの向き）となるように移動させるために不自然に手首を捻らなければならず簡単なはずの動作が困難となる。この結果、それまで気にならなかったズレがことさら目立って感じられるようになり、それ以降のＶＲ体験のリアリティを大きく損ねることになる。また、当該シーンがＶＲ体験のプレイ評価に係るシーンであれば、当然プレイ評価も損なわれてしまうかもしれない。
【０００７】
これはほんの一例に過ぎない。一時的とはいえ、ＶＲ体験中のユーザ（プレーヤ）に、トラッキングのズレを感じさせる場面が生じると、いかにリアルであるかを大切にするＶＲ体験にとっては、そのＶＲ体験の評価を大きく損なう原因となってしまうだろう。
【０００８】
本発明は、ＶＲにおけるユーザサポートを向上するための技術を提供すること、換言すると、ＶＲにおける没入感を阻害させない技術を提供することを目的として考案されたものである。
【課題を解決するための手段】
【０００９】
上述した課題を解決するための第１の発明は、コンピュータシステムに、仮想現実空間と実空間とを対応づけて、ユーザが装着するＨＭＤ（ヘッドマウントディスプレイ）に前記仮想現実空間の画像を表示させるためのプログラムであって、
前記ユーザの身体部位又は前記ユーザが具備するコントローラを基準体として前記実空間内の前記基準体をトラッキングする基準体トラッキング手段（例えば、図１０の処理部２００、ゲーム進行制御部２１０、コントローラトラッキング部２１６、図１１のコントローラトラッキングデータ７０７、図１６のステップＳ６）、
前記仮想現実空間において所与の仮想オブジェクト（例えば、図３の仮想ケーキ１４）の位置及び姿勢を、前記基準体の位置及び姿勢に対応付けて追従させるように制御する追従制御手段（例えば、図１０の処理部２００、ゲーム進行制御部２１０、追従制御部２１８、図１６のステップＳ３８）、
前記仮想オブジェクトが前記仮想現実空間内の所与の位置又は所与のエリア（以下、包括して「到達位置」という；例えば、図７の移動目標位置Ｐｍ）へ到達した際の到達姿勢を少なくとも含む到達状態を設定する到達状態設定手段（例えば、図１０の処理部２００、ゲーム進行制御部２１０、到達状態設定部２２２、図１４の理想状態定義データ５７０、図１７のステップＳ６４）、
前記仮想オブジェクトの前記到達位置への接近に応じて、前記仮想オブジェクトの姿勢を、前記追従制御手段により追従されている姿勢（以下「追従姿勢」という）から前記到達姿勢に変更する制御を行う変更制御手段（例えば、図１０の処理部２００、ゲーム進行制御部２１０、変更制御部２２４、図１７のステップＳ６６〜Ｓ８６）、
として前記コンピュータシステムを機能させるためのプログラムである。
【００１０】
第１の発明によれば、基準体に追従制御される仮想オブジェクトが到達位置に接近するのに応じて、その姿勢を、設定された到達姿勢に自動で変更することができる。よって、ＶＲにおけるユーザサポートを向上させること、換言するとＶＲにおける没入感を阻害させない技術を提供することができる。
【００１１】
第２の発明は、前記到達状態設定手段が、前記到達位置に向かう前記仮想オブジェクトの方位別（例えば、図６の理想状態設定区域３０）に前記到達状態を対応付けて設定し、前記変更制御手段は、前記仮想オブジェクトが前記到達位置へ接近する方位と、前記方位別の前記到達状態とに基づいて、変更する制御を行う第１の発明のプログラムである。
【００１２】
第２の発明によれば、仮想オブジェクトが到達位置へ向けてどの方向から接近してくるかに応じて細かく到達状態を設定することができる。よって、仮想オブジェクトの到達状態をより自然に見せることができるようになる。
【００１３】
第３の発明は、前記変更制御手段が、前記仮想オブジェクトから前記到達位置までの距離が所与の変更制御発動条件（例えば、図９の補正制御発動条件距離Ｌｃ）を満たした場合に前記変更の制御を発動する、第１又は第２の発明のプログラムである。
【００１４】
第３の発明によれば、変更制御の影響を必要な場面に限定し、それ以外では基本的には基準体の動きに仮想オブジェクトをそのまま追従させることで、ＶＲ体験の操作感と、ユーザサポートとを上手く両立させることができる。
【００１５】
第４の発明は、前記変更制御発動条件を満たした後、前記仮想オブジェクトから前記到達位置までの距離が所与の近接条件を満たした場合に、自動的に前記仮想オブジェクトの位置を前記到達位置に移動させる自動移動制御手段（例えば、図１９の自動移動制御部２２８、図２１のステップＳ６７、Ｓ６９）、として前記コンピュータシステムを更に機能させるための第３の発明のプログラム。
【００１６】
第４の発明によれば、ある程度仮想オブジェクトが到達位置に接近してからは自動で仮想オブジェクトを到達位置まで移動させることができる。
【００１７】
第５の発明は、前記変更制御手段が、前記仮想オブジェクトから前記到達位置までの距離が短くなるに従って、前記仮想オブジェクトの姿勢を前記到達姿勢に近づけるように変更する、第１〜第４の何れか発明のプログラムである。
【００１８】
第５の発明によれば、徐々に到達姿勢に近づけるように変更が行われるので、ユーザサポートの介入を円滑かつ自然に実現できる。
【００１９】
第６の発明は、前記到達状態には、前記仮想オブジェクトが前記到達位置に到達した際の到達時動作、及び／又は、到達時表示形態が含まれ、前記変更制御手段は、前記仮想オブジェクトから前記到達位置までの距離が短くなるに従って、前記仮想オブジェクトの状態を前記到達状態に近づけるように変更する、第５の発明のプログラムである。
【００２０】
ここで言う「到達時動作」には、例えば、振動や拡縮、回転なども含めることができる。またここで言う「到達時表示形態」には、仮想オブジェクトの外観、表示サイズ、表示色、明度、透明度、を含めることができる。
第６の発明によれば、到達状態に到達時の動作や表示形態も設定できるようになるので、ユーザサポートを応用するシチュエーションを多様化できる。
【００２１】
第７の発明は、前記仮想現実空間内の所与のキャラクタの所与の部位に、前記到達位置を設定する到達位置設定手段（例えば、図１９の到達位置設定部２２０、図１７のステップＳ６０）、として前記コンピュータシステムを更に機能させるための第１〜第６の何れかの発明のプログラムである。
【００２２】
第７の発明によれば、ユーザが仮想現実空間に存在するキャラクタに仮想オブジェクトを近づけるといったシチュエーションへの応用が可能になる。
【００２３】
第８の発明は、前記到達状態設定手段が、前記キャラクタの前記部位の向きに応じて、前記到達姿勢を設定する、第７の発明のプログラムである。
【００２４】
第８の発明によれば、到達位置が設定されたキャラクタの部位の向きに応じて到達姿勢を決定することができる。
【００２５】
第９の発明は、コンピュータシステムに、仮想現実空間と実空間とを対応づけて、ユーザが装着するＨＭＤ（ヘッドマウントディスプレイ）に前記仮想現実空間の画像を表示させるためのプログラムであって、前記ユーザの身体部位又は前記ユーザが具備するコントローラを基準体として前記実空間内の前記基準体をトラッキングする基準体トラッキング手段、前記仮想現実空間において所与の仮想オブジェクトの位置及び姿勢を、前記基準体の位置及び姿勢に対応付けて追従させるように制御する追従制御手段、前記仮想オブジェクトが前記仮想現実空間内の所与のキャラクタの所与の部位の位置（以下「到達位置」という）へ到達した際の前記仮想オブジェクトの表示形態を少なくとも含む到達状態を設定する到達状態設定手段、前記仮想オブジェクトの前記到達位置への接近に応じて、前記仮想オブジェクトの状態を前記到達状態に変更する制御を行う変更制御手段、として前記コンピュータシステムを機能させるためのプログラムである。
【００２６】
第９の発明によれば、仮想オブジェクトの表示形態（表示モデル、表示サイズ、表示色、明度、透明度、を含む）を変更することによって、ＶＲにおけるユーザサポートを向上するための技術を提供すること、換言すると、ＶＲにおける没入感を阻害させない技術を提供できる。
【００２７】
具体的な例を挙げると、例えば、到達位置がエリアとして設定され、仮想オブジェクトの表示モデルが到達位置に近づいた場合、想定されるトラッキングズレを許容するほどの大きさを有する別の表示モデルに変更する。そして、仮想オブジェクトの到達位置への到達判定を、変更された表示モデルと、到達位置のエリアとのコリジョン判定で行うとすると、トラッキングズレが生じていてもトラッキングズレに起因する違和感をユーザに与えずに済ませることができる。
【００２８】
第１０の発明は、前記仮想オブジェクトの前記到達位置への接近に応じて、前記キャラクタの位置及び／又は姿勢を制御するキャラクタ制御手段（例えば、図１０のキャラクタ制御部２２６、図１２のイベント対応設定データ５３０、イベント用動作５３３、図１７のステップＳ１０２〜Ｓ１０４）、として前記コンピュータシステムを更に機能させるための第７〜第９の何れかの発明のプログラムである。
【００２９】
第１０の発明によれば、仮想オブジェクトの接近に応じて、到達位置が設定されたキャラクタの側の位置や姿勢も変化させることができる。よって、より複雑なシーンへの応用が可能になる。
【００３０】
第１１の発明は、前記キャラクタが、前記ユーザのアバターキャラクタである、第７〜第１０の何れかの発明のプログラムである。
【００３１】
第１１の発明によれば、ユーザが仮想現実空間における自身に対して仮想オブジェクトを近づけるといったシチュエーションにもユーザサポートを応用できるようになる。
【００３２】
第１２の発明は、前記実空間内の前記ＨＭＤをトラッキングするＨＭＤトラッキング手段（例えば、図１０のＨＭＤトラッキング部２１４、図１６のステップＳ６）、前記ＨＭＤトラッキング手段によりトラッキングされた前記ＨＭＤの位置に基づいて、前記仮想現実空間における前記アバターキャラクタの前記所与の部位の位置を判定する手段（例えば、図１０の追従制御部２１８、図１５のアバターキャラクタ制御パラメータ値リスト７２０、図１６のステップＳ８）、として前記コンピュータシステムを更に機能させるための第１１の発明のプログラムである。
【００３３】
第１２の発明によれば、アバターキャラクタの所与の部位の位置を判定できるようになるので、例えば到達位置をアバターキャラクタの一部に設定することも可能になる。
【００３４】
第１３の発明は、前記変更制御手段が、前記仮想オブジェクトの姿勢を、前記追従姿勢から前記到達姿勢に直ちに変更する、第１又は第２の発明のプログラムである。
【００３５】
第１３の発明によれば、仮想オブジェクトの姿勢を追従姿勢から到達姿勢に直ちに変更することが可能となる。このため、例えば、注意喚起や警告といった利用方法に応用できるようになる。
【００３６】
第１４の発明は、前記到達状態には、前記仮想オブジェクトが前記到達位置に到達した際の到達時動作、及び／又は、到達時表示形態が含まれ、前記変更制御手段は、前記仮想オブジェクトの姿勢の変更に合わせて、前記仮想オブジェクトの状態を前記到達状態に変更する、第１３の発明のプログラムである。
【００３７】
第１４の発明によれば、到達位置に到達した際の仮想オブジェクトの動作や表示形態も直ちに変更できるようになる。
【００３８】
第１５の発明は、仮想現実空間と実空間とを対応づけて、ユーザが装着するＨＭＤ（ヘッドマウントディスプレイ）に前記仮想現実空間の画像を表示する制御を行うコンピュータシステムであって、
前記ユーザの身体部位又は前記ユーザが具備するコントローラを基準体として前記実空間内の前記基準体をトラッキングする基準体トラッキング手段（例えば、図１のＨＭＤ６、コントローラ８、トラッキング用カメラ７、ゲーム制御装置１１００、図１０の処理部２００、ゲーム進行制御部２１０、コントローラトラッキング部２１６、図１１のコントローラトラッキングデータ７０７、図１６のステップＳ６）と、
前記仮想現実空間において所与の仮想オブジェクトの位置及び姿勢を、前記基準体の位置及び姿勢に対応付けて追従させるように制御する追従制御手段（例えば、図１のゲーム制御装置１１００、図１０の処理部２００、ゲーム進行制御部２１０、追従制御部２１８、図１６のステップＳ３８）と、
前記仮想オブジェクトが前記仮想現実空間内の所与の位置又は所与のエリア（以下、包括して「到達位置」という）へ到達した際の到達姿勢を少なくとも含む到達状態を設定する到達状態設定手段（例えば、図１のゲーム制御装置１１００、図１０の処理部２００、ゲーム進行制御部２１０、到達状態設定部２２２、図１４の理想状態定義データ５７０、図１７のステップＳ６４）と、
前記仮想オブジェクトの前記到達位置への接近に応じて、前記仮想オブジェクトの姿勢を、前記追従制御手段により追従されている姿勢（以下「追従姿勢」という）から前記到達姿勢に変更する制御を行う変更制御手段（例えば、図１のゲーム制御装置１１００、図１０の処理部２００、ゲーム進行制御部２１０、変更制御部２２４、図１７のステップＳ６６〜Ｓ８６）と、を備えたコンピュータシステムである。
【００３９】
第１５の発明によれば、第１の発明と同様の作用効果を有するコンピュータシステムを実現できる。なお、ここで言う「コンピュータシステム」は、単独のコンピュータに限らず、複数のコンピュータが通信接続された形態であってもよい。
【００４０】
第１６の発明は、仮想現実空間と実空間とを対応づけて、ユーザが装着するＨＭＤ（ヘッドマウントディスプレイ）に前記仮想現実空間の画像を表示する制御を行うコンピュータシステムであって、前記ユーザの身体部位又は前記ユーザが具備するコントローラを基準体として前記実空間内の前記基準体をトラッキングする基準体トラッキング手段と、前記仮想現実空間において所与の仮想オブジェクトの位置及び姿勢を、前記基準体の位置及び姿勢に対応付けて追従させるように制御する追従制御手段と、前記仮想オブジェクトが前記仮想現実空間内の所与のキャラクタの所与の部位の位置（以下「到達位置」という）へ到達した際の前記仮想オブジェクトの表示形態を少なくとも含む到達状態を設定する到達状態設定手段と、前記仮想オブジェクトの前記到達位置への接近に応じて、前記仮想オブジェクトの状態を前記到達状態に変更する制御を行う変更制御手段と、を備えたコンピュータシステムである。
【００４１】
第１６の発明によれば、第９の発明と同様の作用効果を有するコンピュータシステムを実現できる。なお、ここで言う「コンピュータシステム」は、単独のコンピュータに限らず、複数のコンピュータが通信接続された形態であってもよい。
【図面の簡単な説明】
【００４２】
【図１】ゲームシステム（仮想現実体験提供装置）の構成の一例を示す図。
【図２】コントローラの構成例を示す図。
【図３】ユーザサポートの前提を説明するための図。
【図４】ユーザサポートの原理を説明するための図（その１）。
【図５】ユーザサポートの原理を説明するための図（その２）。
【図６】理想状態を設定する区域の例について説明するための概念図。
【図７】理想状態の設定概念と補正割合の変化の例を説明するための図（その１）。
【図８】理想状態の設定概念と補正割合の変化の例を説明するための図（その２）。
【図９】移動対象オブジェクトの補正の仕方について説明するための概念図。
【図１０】ゲームシステムの機能構成例を示す機能ブロック図。
【図１１】記憶部が記憶するプログラムやデータの例を示す図。
【図１２】仮想オブジェクト初期設定データのデータ構成例を示す図。
【図１３】ベント定義データのデータ構成例を示す図。
【図１４】理想状態定義データのデータ構成例を示す図。
【図１５】仮想現実空間制御データのデータ構成例を示す図。
【図１６】ゲームシステムにおける処理の流れを説明するためのフローチャート。
【図１７】制御パラメータ値返納処理の流れを説明するためのフローチャート。
【図１８】ゲームシステムのシステム構成の変形例を示す図。
【図１９】ゲームシステムの機能構成の変形例を示す機能ブロック図。
【図２０】イベント定義データのデータ構成の変形例を示す図。
【図２１】制御パラメータ値変更処理の変形例における処理の流れを説明するためのフローチャート。
【発明を実施するための形態】
【００４３】
図１は、本実施形態におけるゲームシステム１０００の構成の一例を示す図である。本実施形態のゲームシステム１０００は、仮想現実体験（ＶＲ体験）をユーザに提供する仮想現実体験提供装置である。ゲームシステム１０００は、プレーヤがヘッドトラッキング機能付きのＶＲ（Virtual Reality）型のＨＭＤを頭部に装着するとともにコントローラを把持して、実空間である所定のプレイフィールド内を移動しながらプレイするゲームを実行するためにデザインされたコンピュータシステムである。
【００４４】
具体的には、ゲームシステム１０００は、保護壁３と保護シート４とで画成されたプレイフィールドと、プレーヤ２が頭部に装着するヘッドフォン５及びＨＭＤ６と、プレーヤ２が把持するコントローラ８と、ＨＭＤ６やコントローラ８の位置や姿勢のトラッキングをするための複数のトラッキング用カメラ７と、これら（ＨＭＤ６・コントローラ８・トラッキング用カメラ７）とデータ通信可能に接続されたゲーム制御装置１１００と、を備える。
【００４５】
本実施形態のゲームシステム１０００はシングルプレイ用を想定しており、保護壁３・保護シート４・ＨＭＤ６・コントローラ８・トラッキング用カメラ７のセット（図示の例では３台で１セット）が１組備えられているとする。しかし、ゲームシステム１０００を、マルチプレイ用として運用する場合には、適宜、それらを１組として、複数組をゲーム制御装置１１００に接続すればよい。
【００４６】
なお、ゲーム操作のデザインによっては１人当たりのコントローラ８は複数でもよい。また、１セットとされるトラッキング用カメラ７の台数や配置位置関係は、採用するトラッキング技術によって適宜設定可能であり、図示の例に限定されるものではない。例えば、マルチプレイであっても、トラッキング用カメラ７のセットを兼用とし、トラッキング用カメラ７のセットは１組で実現するとしてもよい。
【００４７】
保護壁３は、ＨＭＤ６を装着したプレーヤ２が衝突しても怪我をしないように表面を弾性体で覆った壁体である。柵体やネットでもよい。
【００４８】
保護シート４は、ＨＭＤ６を装着したプレーヤ２が転倒しても怪我をしないように床面を被う保護材である。例えば、人が立つなどの静的荷重に対しては適度な硬さを示すが、衝撃は適切に吸収する弾性体シートである。なお、保護シート４の代わりに、プレーヤ２にヘルメットの装着や、肩・肘・膝などへの保護パッドの装着を義務づけるとしてもよい。
【００４９】
ヘッドフォン５は、プレーヤ２の左右の耳をそれぞれ被う左右のスピーカ部を備える。１つのスピーカ部が備えるスピーカの数は適宜設定可能である。
【００５０】
ＨＭＤ６は、頭部の向きと方向とがトラッキング可能なＶＲ型のヘッドマウントディスプレイである。本実施形態では、装着すると両眼が被われて周囲の様子が見えなくなる没入型（非透過型）とするが、透過制御により透過／非透過を制御できるタイプでもよい。その場合、非常時を除くゲームプレイ中は基本的に非透過に制御されるものとする。
【００５１】
なお、本実施形態のＨＭＤ６は、３軸加速度センサと、ジャイロセンサと、トラッキング用のマーカとして機能する単数又は複数の発光部と、ヘッドフォン５と、を一体に有するタイプとする。ただし、３軸加速度センサ・ジャイロセンサ・発光部は、ＨＭＤ６のプレイフィールド内での位置や姿勢を追跡するヘッドトラッキングを実現するために使用されるので、採用するトラッキング技術によって不要な要素は適宜省略できる。
【００５２】
図２は、コントローラ８の構成例を示す図である。本実施形態のコントローラ８は、人が片手で把持できるサイズの棒状の把持部８１と、その先端に設けられた先端発光体８２と、を有する。
【００５３】
把持部８１は、コントローラ制御基板８５と、バッテリー８６とを内蔵する。適宜その表面に、操作スイッチやダイヤルスイッチなどを設けても良い。
【００５４】
コントローラ制御基板８５は、ＣＰＵ８５１と、ＩＣメモリ８５２と、インターフェースＩＣ８５３と、無線通信モジュール８５４と、３軸加速度センサ８５５と、ジャイロセンサ８５６と、を備える。勿論、これら以外の電子部品も適宜備えることができる。
【００５５】
ＣＰＵ８５１は、ＩＣメモリ８５２に記憶されているプログラムを実行することにより、先端発光体８２の発光制御と、３軸加速度センサ８５５及びジャイロセンサ８５６による検出信号を無線通信モジュール８５４を介してゲーム制御装置１１００へ送信する制御と、を実行する。
【００５６】
なお、３軸加速度センサ８５５と、ジャイロセンサ８５６と、先端発光体８２とは、コントローラ８のプレイフィールド内での位置や姿勢を追跡するコントローラトラッキングを実現するために使用されるので、採用するトラッキング技術によって不要な要素は適宜省略できる。
【００５７】
また、コントローラ８の外観形状は、これに限らず適宜設定可能である。家庭用据置型ゲーム装置のゲームコントローラをコントローラ８として使用してもよいし、専用のコントローラ８を設けることとしてもよい。専用のコントローラ８を設ける場合には、その形状は適宜設定でき、例えば指輪型や、腕輪型、指サック型、などでもよい。
【００５８】
図１に戻って、トラッキング用カメラ７は、プレイフィールド内を撮影範囲に収め、ＨＭＤ６やコントローラ８を撮影した画像の信号やデータを、ゲーム制御装置１１００へ送信する。そして、撮影した画像は、公知のモーションキャプチャ技術と同様にして、ＨＭＤ６のプレイフィールド内での位置や姿勢を追跡するヘッドトラッキングや、コントローラ８のプレイフィールド内での位置や姿勢を追跡するコントローラトラッキングに使用される。なお、採用するトラッキング技術によっては、トラッキング用カメラ７を省略してもよい。或いは、カメラに代えて深度センサを採用するとしてもよい。
【００５９】
ゲーム制御装置１１００は、ゲームシステム１０００に含まれるコンピュータシステムの１つである。本実施形態のゲーム制御装置１１００は、本体装置１１０１と、タッチパネル１１０８と、を有し、本体装置１１０１は、プレイ対価支払部１１１０と、制御基板１１５０とを搭載する。
【００６０】
プレイ対価支払部１１１０は、ゲームプレイの対価の支払いを受け付け、支払操作の検知信号を制御基板１１５０へ出力する。プレイ対価支払部１１１０は、例えば硬貨投入装置や、仮想通貨に紐付けられた情報を記憶する媒体（例えば、クレジットカード、プリペイドカード、電子マネーカード、ユーザカードなど）の読み取り装置で実現され、現金やクレジット、仮想通貨による支払いに対応する。勿論、ゲームプレイの対価の支払いが不要な構成であってもよい。
【００６１】
制御基板１１５０には、ＣＰＵ（Central Processing Unit）１１５１やＧＰＵ（Graphics Processing Unit）、ＤＳＰ（Digital Signal Processor）などの各種マイクロプロセッサ、ＶＲＡＭやＲＡＭ，ＲＯＭ等の各種ＩＣメモリ１１５２、通信装置１１５３が搭載されている。なお、制御基板１１５０の一部又は全部は、ＡＳＩＣ（Application Specific Integrated Circuit）や、ＦＰＧＡ（field-programmable gate array）、ＳｏＣ（System on a Chip）により実現するとしてもよい。
【００６２】
そして、ゲーム制御装置１１００は、制御基板１１５０が所定のプログラム及びデータに基づいて演算処理することにより、１）ユーザ登録等に係るユーザ管理機能と、２）ヘッドトラッキング及びコントローラトラッキングの機能と、３）ＨＭＤ６及びコントローラ８を１組のユーザ端末と見なしたゲーム進行に係る各種制御を実行するゲーム管理機能と、を実現する。つまり、本実施形態におけるゲームは、一種のクライアント・サーバ型のオンラインゲームとして実現される。
【００６３】
なお、制御基板１１５０が実行する制御は、これらに限らず、クレジットや仮想通貨によるプレイ対価の支払いに係る制御を、適宜含む。マルチプレイ用にデザインした場合には、他のゲーム制御装置１１００を使用する他プレーヤとのマッチング機能を行うとしてもよい。
【００６４】
また、本実施形態ではゲーム制御装置１１００を単体として記しているが、それら各機能を分担する複数のコンピュータを搭載して相互に内部バスを介してデータ通信可能に接続した構成であっても良い。或いは、離れた場所に設置された独立した複数のコンピュータを、通信回線（有線／無線を問わない）を介してデータ通信させることで、全体としてゲーム制御装置１１００として機能させる構成であっても良い。
【００６５】
［原理の説明］
図３は、本実施形態におけるユーザサポートの前提を説明するための図である。図の上側が仮想現実空間の状態を示し、図の下側が実空間の状況を示している。
【００６６】
本実施形態のＶＲ体験は、仮想恋人１０と一緒に様々なイベントをこなすことで仮想恋人１０がプレーヤに抱く好感度を高めさせ、仮想恋人１０からプレーヤへ愛の告白を受けることをゴールとする恋愛シミュレーションゲームである。
【００６７】
図示の状態は、とあるデートイベントの冒頭であり、「あーん」と口を開けて待っている仮想恋人１０に仮想ケーキ１４を食べさせてあげるシーンであり、仮想テーブル１２から仮想ケーキ１４を仮想フォーク１６で刺して、仮想ケーキ１４の向きを食べやすく合わせながら仮想恋人１０の口へ運んで挿入するシーンを示している。すなわち、プレーヤは、移動対象とされる仮想オブジェクト（移動対象オブジェクト：仮想ケーキ１４）を、移動目標位置（到達位置：仮想恋人１０の口）へ、理想とする状態（この場合、仮想ケーキ１４の向きと仮想恋人１０の口の向きを合わせる）にして運搬するシーンである。
【００６８】
ＨＭＤ６を装着したプレーヤ２の視界には、コントローラ８を基準体として追従制御される仮想手２０（仮想現実空間におけるプレーヤ２の仮想身体部位）が仮想フォーク１６を持った状態で表示される。仮想フォーク１６の姿勢とコントローラ８の姿勢とは、移動対象を移動目標位置へ移動させるまでの間、所定の相対関係に固定されている。図示の例では、フォークの長手方向とコントローラ８の長手方向とが所定の関係に固定されている。
【００６９】
図４及び図５は、本実施形態におけるユーザサポートの原理を説明するための図である。図４は側面から見た図、図５は上から見た図に相当する。
【００７０】
図４及び図５それぞれの上側は、コントローラ８のトラッキングにズレが生じている状態（現状）を強調して表している。すなわち、様々な理由によりコントローラ８のトラッキングにズレが生じると、仮想フォーク１６の姿勢とコントローラ８の姿勢との対応付け（追従関係）にズレが生じてしまう。図示の例では、コントローラ８は水平状の姿勢であるのに対して仮想フォーク１６は斜め右上方に向けた姿勢になっている。両者の姿勢の対応付けにズレが生じた状態である。この状況で、仮想ケーキ１４を理想の状態で仮想恋人１０の口に差し込むには、プレーヤは不自然なほどに手首を曲げなければならない。
【００７１】
この不自然な手首の曲げは、仮想現実空間と実空間との違いを際立たせ、ＶＲ体験の没入感やＶＲのリアリティを損なう上に、プレーヤに無理な操作を強いることとなりゲームへの評価も損なう結果となる。そこで本実施形態では、図４及び図５それぞれの下側に示すように、移動対象オブジェクトを理想状態（移動対象オブジェクトが移動目標位置（到達位置）へ到達した際に理想とされる状態（到達状態）に近づけるように補正を行う。
【００７２】
図６は、理想状態を設定する区域の例について説明するための概念図である。
本実施形態における理想状態は、仮想ケーキ１４及び仮想フォーク１６が、仮想恋人１０の口に向けて、どの方位から接近してくるかによって幾通りか用意されている。
具体的には、仮想恋人１０の口に移動目標位置Ｐｍを設定し、移動目標位置Ｐｍを基点として顔の正面方向を基準方向とする。なお、移動目標位置Ｐｍは適宜移動目標エリアとすることができる。
【００７３】
そして、基準方向に基づいて仮想恋人１０の前方に、複数の理想状態設定区域３０を設定し区域毎に理想状態を設定する。本実施形態では、正面側の空間を上下左右に分割し、第１区域３０ａ〜第４区域３０ｄの４つの理想状態設定区域３０を設定するが、分割数や分割境界の数、区域の形状は適宜設定可能である。区域の形状は同じ形状でも良いし、それぞれ固有の形状であってもよい。
【００７４】
また、本実施形態では、これらの理想状態設定区域３０（３０ａ〜３０ｄ）の上下左右それぞれの更に外側に警告区域３０ｅを設定し、警告目的のための特別な理想状態を設定する（詳細後述）。警告区域３０ｅは、実空間における保護壁３や保護シート４などの境界物との衝突が心配される領域である。プレイフィールドが、保護壁３や保護シート４などで画成されない十分に広いオープンスペースであれば、警告区域３０ｅを省略することができる。
【００７５】
なお、これらの理想状態設定区域３０（３０ａ〜３０ｅ）が設定されていない空間、例えば、仮想恋人１０の背後の空間では理想状態が存在しないので移動対象オブジェクトの位置や姿勢の補正は行われないことになる。
【００７６】
図７及び図８は理想状態の設定概念と補正の例を説明するための図である。図７は、仮想恋人１０を上から見た図に相当し、代表として第１区域３０ａと第２区域３０ｂとを示している。図８は、仮想恋人１０を側面から見た図に相当し、代表として第１区域３０ａと第４区域３０ｄとを示している。
【００７７】
仮想恋人１０は、静物ではないのでゲームプレイ中さまざまな動作をする。その位置や姿勢は一定とは言えない。そこで、理想状態は、基準方向（移動目標位置Ｐｍを基点として仮想恋人１０の顔正面方向）に基づいて区域毎に所定の演算式により求められるようになっている。
【００７８】
例えば、第１区域３０ａの理想状態は、１）右手にあたる仮想手２０で仮想フォーク１６を持ち、且つ２）仮想ケーキ１４の所定先端部が仮想恋人１０の口を向き、且つ３）仮想ケーキ１４の長手方向が基準方向に対して前方やや左上方より浅い角度で交差する姿勢、と設定される。
【００７９】
第２区域３０ｂの理想状態は、１）左手にあたる仮想手２０で仮想フォーク１６を持ち、且つ２）仮想ケーキ１４の所定先端部が仮想恋人１０の口を向き、且つ３）仮想ケーキ１４の長手方向が基準方向に対して前方やや右上方より浅い角度で交差する姿勢、と設定される。
【００８０】
第４区域３０ｄの理想状態は、１）右手にあたる仮想手２０で仮想フォーク１６を持ち、且つ２）仮想ケーキ１４の所定先端部が仮想恋人１０の口を向き、且つ３）仮想ケーキ１４の長手方向が基準方向に対して前方やや左下方より浅い角度で交差する姿勢、と設定される。
【００８１】
つまり、それぞれの区域の設定されている方位から、仮想ケーキ１４・仮想フォーク１６・仮想手２０のセットが仮想恋人１０の口へ目がけてアプローチする上で、最終的に仮想ケーキ１４を口に挿入するのに自然で理想的とされる位置と姿勢とが設定される。
【００８２】
そして、仮想ケーキ１４・仮想フォーク１６・仮想手２０への補正は、移動目標位置Ｐｍへの接近度合、具体的には移動目標位置Ｐｍから仮想手２０（コントローラ８の位置）までの距離Ｌに応じて、距離Ｌが小さい程より強く補正される。
【００８３】
よって、図４や図５のようにトラッキングのズレが生じているとしても、図７及び図８に示すように、仮想ケーキ１４・仮想フォーク１６・仮想手２０が仮想恋人１０の口に近づくにつれて、プレーヤ２にはそれと気付かれないように徐々に理想状態に近づくように円滑且つ自然に補正される。
【００８４】
一方、警告区域３０ｅについては、警告目的の理想状態が設定されている。具体的には、あからさまにプレーヤが異変を感じ、それ以上コントローラ８を警告区域３０ｅに移動させるのが好ましくないと感じさせる状態を設定する。
【００８５】
例えば、仮想フォーク１６ごと滑り落ちる、仮想ケーキ１４が崩れて仮想フォーク１６から落ちる、と言った移動対象オブジェクトの位置や姿勢の異常状態を設定すると好適である。また、仮想ケーキ１４や仮想フォーク１６、仮想手２０の表示モデル（表示形態の一例）が警告表示体に変化する、仮想ケーキ１４が警告色に染まる、仮想ケーキ１４が明滅する、仮想ケーキ１４が振動する、と言った移動対象オブジェクトの動作や表示形態（表示モデル、表示サイズ、表示色、明度、透明度、を含む意）の異常状態を設定すると好適である。
【００８６】
図９は、移動対象オブジェクトの補正の仕方について説明するための概念図である。
第１区域３０ａ〜第４区域３０ｄについては、移動目標位置Ｐｍ（仮想恋人１０の口）から、仮想手２０までの距離Ｌを変数とする所定の補正割合導出関数ｆ１で、補正に適用される補正割合が決定される（図中のＮ％）。そして、補正割合０％に相当する現状（図中の点線表記）と、補正割合１００％に相当する理想状態（図中の破線表記）との間で、適用される補正割合に応じて中割りされた状態を求め、これを補正制御の「目標状態」とする（図中の実線表記）。すなわち、本実施形態では、距離Ｌがゼロに近づくほど、仮想ケーキ１４・仮想フォーク１６・仮想手２０の位置や姿勢、動作、表示形態の制御パラメータ値を、現状の値から目標状態の値に近づけるように変更して仮想ケーキ１４・仮想フォーク１６・仮想手２０の表示に係る制御パラメータ値を更新する。
【００８７】
なお、位置や姿勢、動作、表示形態のうちどの制御パラメータ値を変更対象とするかは、移動対象オブジェクトのゲーム内における役割に応じて適宜設定可能である。本実施形態では、少なくとも姿勢を変更対象とする。
【００８８】
補正導出関数は、移動対象オブジェクトのゲーム内における役割に応じて適宜設定可能である。本実施形態では、第１区域３０ａ〜第４区域３０ｄでは、補正制御発動条件距離Ｌｃ以下の範囲で、距離Ｌに反比例して補正割合が１００％に近づく補正導出関数ｆ１が設定されている。一方、警告区域３０ｅでは、補正制御発動条件距離以下になると常に補正割合が１００％になる補正導出関数が設定されている。すなわち、移動対象オブジェクトが警告区域３０ｅに入ると直ちに理想状態を再現するように補正される。
【００８９】
［機能構成の説明］
図１０は、本実施形態におけるゲームシステム１０００の機能構成例を示す機能ブロック図である。本実施形態におけるゲームシステム１０００は、操作入力部１００と、処理部２００と、音出力部３９０と、画像表示部３９２と、通信部３９４と、記憶部５００とを備える。
【００９０】
操作入力部１００は、ゲームシステム１０００の管理やゲームプレイのための各種操作を入力するための手段である。本実施形態では、図１のＨＭＤ６及びトラッキング用カメラ７は操作入力部１００の１つであり、プレーヤ２が見ている位置や方向、プレーヤの身体部位の位置を入力する機能を果たし、トラッキング用カメラ７及びコントローラ８は操作入力部１００の１つであり、プレーヤの身体部位の位置を入力する機能を果たす。
【００９１】
処理部２００は、例えばＣＰＵやＧＰＵ等のマイクロプロセッサや、ＡＳＩＣ、ＦＰＧＡ、ＩＣメモリなどの電子部品によって実現され、操作入力部１００や記憶部５００を含む各機能部との間でデータの入出力を行う。図１の制御基板１１５０がこれに該当する。そして、処理部２００は、所定のプログラムやデータ、操作入力部１００からの操作入力信号、ＨＭＤ６やコントローラ８、トラッキング用カメラ７などから受信したデータに基づいて各種の演算処理を実行して、ゲームシステム１０００の動作を統合的に制御する。
【００９２】
具体的には、本実施形態の処理部２００は、ゲーム進行制御部２１０と、計時部２８０と、音生成部２９０と、画像生成部２９２と、通信制御部２９４とを含む。勿論、これら以外の機能部も適宜含めることができる。
【００９３】
ゲーム進行制御部２１０は、ゲームの実行管理に係る各種処理を行う。具体的には、ゲーム進行制御部２１０は、仮想現実空間設定部２１２と、ＨＭＤトラッキング部２１４と、コントローラトラッキング部２１６と、追従制御部２１８と、到達位置設定部２２０と、到達状態設定部２２２と、変更制御部２２４と、キャラクタ制御部２２６と、を有する。
【００９４】
なお、本実施形態のゲームは、シングルプレイを前提としているが、もしＰｖＰ（Player versus Player）形式でゲームを実行する場合には、ゲーム進行制御部２１０に対戦者のマッチングに関する制御を実行させることとしてもよい。
【００９５】
仮想現実空間設定部２１２は、仮想３次元空間に各種背景オブジェクトを配置して、仮想現実空間を設定・管理する。
【００９６】
ＨＭＤトラッキング部２１４は、ＨＭＤ６のトラッキングに係る処理を実行する。プレーヤの視点位置及び視線方向をトラッキングするとも言える。
【００９７】
コントローラトラッキング部２１６は、コントローラ８又はそれを具備するプレーヤ２の身体部位の位置及び姿勢のトラッキングに係る処理を実行する。本実施形態では、移動対象オブジェクトの移動は、コントローラ８を基準体として追従制御することにより実現されるので、コントローラトラッキング部２１６は、プレーヤ（ユーザ）の身体部位又はユーザが具備するコントローラを基準体として実空間内の基準体の位置をトラッキングする手段であるとも言える。
【００９８】
なお、本実施形態では、コントローラ８が具備される身体部位としてプレーヤ２の右手を例示したが、ゲーム内容やコントローラの形態によっては、左手は勿論のこと、手指、関節、脚、頭部、腹部、背、肩、額、口、鼻、などその他の部位でもよい。
【００９９】
追従制御部２１８は、仮想現実空間において移動対象オブジェクト（仮想オブジェクト）の位置及び姿勢を、基準体の位置及び姿勢に対応付けて追従させるように制御する。本実施形態では、仮想ケーキ１４・仮想フォーク１６・仮想手２０を一体として、コントローラ８の位置と姿勢に追従するように制御する。
【０１００】
到達位置設定部２２０は、仮想現実空間内にプレーヤが移動させる仮想オブジェクト（移動対象オブジェクト）の到達位置（移動目標位置Ｐｍ）を設定する。本実施形態では、仮想現実空間内の所与のキャラクタの所与の部位に、到達位置を設定することができる。すなわち、仮想恋人１０の口に到達位置を設定することができる。
【０１０１】
到達状態設定部２２２は、プレーヤが移動させる仮想オブジェクトが仮想現実空間内の所与の位置（又は所与のエリア）へ到達した際の到達姿勢を少なくとも含む到達状態、本実施形態で言うところの理想状態を設定する。
【０１０２】
具体的には、到達状態設定部２２２は、到達位置に向かう仮想オブジェクトの方位別に到達状態を対応付けて設定する。本実施形態では、理想状態設定区域３０（３０ａ〜３０ｅ）別に理想状態を設定する（図７，図８参照）。
【０１０３】
また、到達状態設定部２２２は、到達位置が仮想現実空間内の所与のキャラクタに設定されている場合、その設定されている部位の向きに応じて到達姿勢を設定することができる。本実施形態では、仮想恋人１０の基準方向に基づいて理想状態が決まることがこれに該当する。
【０１０４】
変更制御部２２４は、移動させる仮想オブジェクトの到達位置への接近に応じて、当該仮想オブジェクトの姿勢を、追従制御部２１８により追従されている姿勢（追従姿勢）から到達姿勢（理想状態）に変更する制御を、当該仮想オブジェクトから対応する到達位置までの距離Ｌが所与の変更制御発動条件を満たした場合に実行する（補正制御発動条件距離Ｌｃ；図９参照）。
【０１０５】
具体的には、変更制御部２２４は、移動される仮想オブジェクトが到達位置へ接近する方位（逆説的には、移動目標位置へのアプローチ方位）と方位別の到達状態とに基づいて、接近するに従って（当該仮想オブジェクトから到達位置までの距離が短くなるに従って）、当該仮想オブジェクトの姿勢を到達姿勢に近づけるように変更制御することができる。
【０１０６】
また、変更制御部２２４は、所定の急変発動条件を満たした場合には、移動される仮想オブジェクトの姿勢を、追従姿勢から到達姿勢に直ちに変更することができる。本実施形態では、警告区域３０ｅへの仮想手２０の到達を急変発動条件とし、警告目的の理想状態へ補正割合１００％で直ちに補正制御することがこれに該当する。
【０１０７】
キャラクタ制御部２２６は、プレーヤに移動される仮想オブジェクトがその到達位置へ接近するのに応じて、到達位置が設定されたキャラクタの位置及び／又は姿勢を制御する。本実施形態では、仮想ケーキ１４が仮想恋人１０に近づくと仮想恋人１０自らが仮想ケーキ１４に口を寄せるようなお迎えの動作をさせる。
【０１０８】
計時部２８０は、システムクロックを利用して現在日時や制限時間等の計時を行う。
【０１０９】
音生成部２９０は、音声データの生成や合成、デコードなどをする回路やＩＣ、ソフトウェアの実行により実現され、ゲームシステム１０００のシステム管理やゲームプレイに係る立体音響や、操作音、ＢＧＭなどの音声データを生成或いはデコードする。そして、システム管理に関する音声やゲームプレイに係る音声の信号を音出力部３９０へ出力する。
【０１１０】
音出力部３９０は、音声信号から音声を再生して放音する。図１の例ではヘッドフォン５や、タッチパネル１１０８に一体的に備えられたスピーカ（不図示）がこれに該当する。
【０１１１】
画像生成部２９２は、ゲームシステム１０００のシステム管理に関する画像や、ゲームプレイに必要な画像等を生成し、画像表示部３９２へ出力することができる。
【０１１２】
画像表示部３９２は、画像生成部２９２から入力される画像信号に基づいてシステム管理のための各種画像や、ゲームプレイに必要な画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管（ＣＲＴ）、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図１の例では、ＨＭＤ６及びタッチパネル１１０８がこれに該当する。
【０１１３】
通信制御部２９４は、データ通信に係るデータ処理を実行し、通信部３９４を介して外部装置とのデータのやりとりを実現する。
通信部３９４は、所定のネットワークと接続して通信を実現する。例えば、無線通信機、モデム、ＴＡ（ターミナルアダプタ）、有線用の通信ケーブルのジャックや制御回路等によって実現される。図１の例では通信装置１１５３が該当する。
【０１１４】
これらは、例えば、他のゲームシステム１０００とマルチプレイのために通信接続したり、ゲームプレイの対価の支払いを仮想通貨やクレジットカード決済で行う場合には、プレーヤが所持する仮想通貨の管理サーバやクレジットカード決済用のサーバと通信するのに使用される。勿論、これら以外にもプログラムやデータの取得・更新の為に所定のサーバと通信するとしてもよい。
【０１１５】
記憶部５００は、処理部２００にゲームシステム１０００を統合的に制御させるための諸機能を実現するためのプログラムや各種データ等を記憶する。また、処理部２００の作業領域として用いられ、処理部２００が各種プログラムに従って実行した演算結果などを一時的に記憶する。この機能は、例えばＲＡＭやＲＯＭなどのＩＣメモリ、ハードディスク等の磁気ディスク、ＣＤ−ＲＯＭやＤＶＤなどの光学ディスク、オンラインストレージなどによって実現される。図１の例ではＩＣメモリ１１５２がこれに該当する。
【０１１６】
図１１は、本実施形態の記憶部５００に記憶されるプログラムやデータの例を示す図である。記憶部５００は、システムプログラム５０１と、ゲームプログラム５０３と、仮想現実空間初期設定データ５１０と、アバターキャラクタ初期設定データ５１６と、仮想オブジェクト初期設定データ５２０と、イベント定義データ５４０と、を予め記憶する。また、逐次生成・管理されるデータとして、プレイデータ７００と、現在日時８００と、を記憶する。その他、タイマや、カウンタ、各種フラグなどの情報を適宜記憶できる。
【０１１７】
システムプログラム５０１は、処理部２００が読み出して実行することでゲームシステム１０００（この場合、ゲーム制御装置１１００）にコンピュータとして必要な基本的な入出力機能を実現するためのシステムプログラムである。
【０１１８】
ゲームプログラム５０３は、処理部２００が読み出して実行することで、ゲーム進行制御部２１０、計時部２８０などの機能を実現させるためのプログラムである。
【０１１９】
仮想現実空間初期設定データ５１０は、仮想現実空間を構築するための各種データを格納する。例えば、仮想テーブル１２（図３参照）のように背景物となる各種オブジェクトのモデルデータ、テクスチャデータ、初期配置位置データなどを格納する。
【０１２０】
アバターキャラクタ初期設定データ５１６は、仮想現実空間におけるプレーヤ２を代理するオブジェクトを定義するデータである。本実施形態では、仮想手２０のような身体部位の一部のみを表示する構成とするが全身を表示する構成とするならば全身分のデータを含むとしてもよい。
【０１２１】
仮想オブジェクト初期設定データ５２０は、ゲームに登場するアバターキャラクタ以外の仮想オブジェクト毎に用意される。本実施形態では、仮想恋人１０、仮想テーブル１２、仮想ケーキ１４、仮想フォーク１６それぞれについて用意されることになる（図３参照）。
【０１２２】
１つの仮想オブジェクト初期設定データ５２０は例えば図１２に示すように、固有の仮想オブジェクトＩＤ５２１と、当該仮想オブジェクトのモデルデータ５２２と、標準の表示形態を定義する標準表示形態５２３と、標準の動作を定義する標準動作５２４と、出現タイミング５２５と、初期配置位置５２６と、初期配置姿勢５２７と、対応付け開始条件５２８と、イベント対応設定データ５３０と、を含む。勿論、これら以外のデータも適宜含めることができる。
【０１２３】
対応付け開始条件５２８は、コントローラ８と当該仮想オブジェクトとの対応づけを開始する条件である。対応付けされると、それが解除されるまで当該仮想オブジェクトはコントローラ８に対して追従制御されることとなる。本実施形態では、仮想ケーキ１４に係る対応付け開始条件５２８には、仮想手２０が所定の基準値以下の距離まで仮想ケーキ１４に接近したことを示す距離を設定する。なお、コントローラ８の操作スイッチを使って、仮想フォーク１６を仮想ケーキ１４に刺す操作、或いは仮想ケーキ１４を持つ操作の入力を当該条件に加えてもよい。
【０１２４】
イベント対応設定データ５３０は、当該仮想オブジェクトがイベントの発動に対応して特別な表示形態に変わったり特別な動作をする場合に設定される。
１つのイベント対応設定データ５３０は、１）当該設定データがどのイベントに適用されるかを定義する適用イベントＩＤ５３１と、２）当該イベントにおいて限定的に適用される当該仮想オブジェクトの表示形態を定義するイベント用表示形態５３２と、３）当該イベントにおいて限定的に適用される当該仮想オブジェクトの動作を定義するイベント用動作５３３と、４）当該イベント用動作を発動させる条件を定義するイベント用動作発動条件５３４と、を含む。勿論、これら以外のデータも適宜含めることができる。
【０１２５】
本実施形態では、仮想ケーキ１４を持つ仮想手２０が仮想恋人１０に近づくと、仮想恋人１０が仮想ケーキ１４を迎えに行くような口を寄せる動作をするように設定されている。よって、仮想恋人１０に係るイベント用動作５３３には、移動対象オブジェクトに口を寄せる動作を実現するためのデータが定義され、イベント用動作発動条件５３４には、仮想ケーキ１４・仮想手２０（コントローラ８又はそれを具備するプレーヤの身体部位である基準体）との相対距離の閾値が定義される
【０１２６】
イベント定義データ５４０は、ゲーム内でプレーヤ２が仮想オブジェクトの移動・運搬を伴うイベント毎に用意され、当該イベントを実現するための各種データを格納する。本実施形態では、仮想ケーキ１４を仮想恋人１０の口に運ぶイベントの定義データが用意されている。
【０１２７】
１つのイベント定義データ５４０は、例えば図１３に示すように、１）固有のイベントＩＤ５４１と、２）当該イベントが開始される条件を定義するイベント開始条件５４２と、３）当該イベントが終了されるイベント終了条件５４３と、４）イベントにて移動される仮想オブジェクトを示す移動対象オブジェクトＩＤリスト５４４と、５）当該イベントにおける移動対象オブジェクトの移動目標位置Ｐｍ（図７〜図８参照）を定義する移動目標位置定義データ５６０と、６）理想状態設定区域３０（図６参照）毎に用意される理想状態定義データ５７０と、を含む。勿論、これら以外のデータも適宜含めることができる。
【０１２８】
移動目標位置定義データ５６０は、設定対象オブジェクトＩＤ５６１と、位置座標５６２と、を含む。
【０１２９】
設定対象オブジェクトＩＤ５６１は、移動目標位置Ｐｍを仮想オブジェクトのある部分に設定する場合に、当該仮想オブジェクトの識別情報を格納する。仮想現実空間の特定場所に設定する場合には「ＮＵＬＬ」が設定される。本実施形態では、仮想恋人１０のオブジェクトＩＤが設定されることになる。
【０１３０】
位置座標５６２には、移動目標位置Ｐｍを仮想オブジェクトのある部分に設定する場合には、当該ある部分を特定するための当該仮想オブジェクトの代表点を基準とする相対位置座標が設定され、仮想現実空間の特定場所に設定する場合にはワールド座標系の特定座標が設定される。本実施形態では、仮想恋人１０の口の位置座標が設定されることになる。
【０１３１】
１つの理想状態定義データ５７０は、例えば図１４に示すように、理想状態設定区域定義データ５７１と、理想状態設定素材データ５７２とを含む。
【０１３２】
理想状態設定区域定義データ５７１は、理想状態設定区域３０（図６参照）を定義する。移動対象オブジェクトが移動目標位置へ接近アプローチする方位の範囲として定義する。
【０１３３】
理想状態設定素材データ５７２は、理想状態を設定するための素材となる各種データを格納する。本実施形態では、理想制御パラメータ値導出関数リスト５７３と、指定理想制御パラメータ値リスト５７４と、補正割合定義データ５７５と、を含む。理想制御パラメータ値導出関数リスト５７３と指定理想制御パラメータ値リスト５７４は、何れか一方が設定されると他方が未設定の状態とされる
【０１３４】
理想制御パラメータ値導出関数リスト５７３は、移動対象オブジェクト（本実施形態における仮想ケーキ１４）の理想状態を実現する制御パラメータ値を、その都度算出する必要がある場合に設定され、制御パラメータ値毎に用意される導出関数が単数又は複数格納される。
【０１３５】
本実施形態では、第１区域３０ａ〜第４区域３０ｄに対応づけられる理想制御パラメータ値導出関数リスト５７３では、仮想ケーキ１４の理想状態の位置座標及び姿勢それぞれを導出する関数が格納される。特に姿勢を導出するための関数には、移動目標位置Ｐｍが設定された仮想オブジェクト（仮想恋人１０）の特定パラメータ（仮想恋人１０の正面を示す単位方向：図７参照）を変数として含むように設定されている。なお、導出関数に換えて、距離Ｌに応じたテーブルデータとしてもよい。
【０１３６】
指定理想制御パラメータ値リスト５７４は、移動対象オブジェクトの理想状態の制御パラメータ値を固定する場合に設定される。本実施形態では、警告区域３０ｅに対応づけられる指定理想制御パラメータ値リスト５７４は、仮想ケーキ１４が崩れ落ちたり、仮想フォーク１６が滑り落ちたりする動作、仮想ケーキ１４が明滅するなど、警告目的に用意された特定の理想状態を再現するための各種制御パラメータ値（位置・姿勢・動作・表示形態など）が含まれる。
【０１３７】
補正割合定義データ５７５は、補正割合を決定するためのデータである。本実施形態では、距離Ｌ（図７，図８参照）を変数とした補正割合導出関数ｆ１（図９参照）又はそれに相当するテーブルデータとする。
【０１３８】
図１１に戻って、プレイデータ７００は、ゲームプレイ毎に用意され、ゲーム進行状況を記述する各種データを格納する。本実施形態ではシングルプレイを前提として説明しているので１つのみ図示しているが、マルチプレイの場合には複数用意されることになる。
【０１３９】
１つのプレイデータ７００は、プレーヤアカウント７０１と、プレイ開始日時７０３と、ＨＭＤトラッキングデータ７０５と、コントローラトラッキングデータ７０７と、仮想現実空間制御データ７１０と、を含む。勿論、これら以外のデータも適宜含めることができる。
【０１４０】
ＨＭＤトラッキングデータ７０５と、コントローラトラッキングデータ７０７は、それぞれＨＭＤ６及びコントローラ８のプレイフィールド内の位置と姿勢の追跡データであって、トラッキング処理により逐一更新される。
【０１４１】
仮想現実空間制御データ７１０は、仮想現実空間に設定される各種要素の制御データを格納する。例えば図１５に示すように、右眼用仮想カメラ制御データ７１１と、左眼用仮想カメラ制御データ７１２と、アバターキャラクタ制御パラメータ値リスト７２０と、仮想オブジェクト制御パラメータ値リスト７３０と、移動目標位置座標７４０と、距離７４２と、理想制御パラメータ値リスト７４４と、補正割合７４６と、目標制御パラメータ値リスト７４８と、を含む。勿論、これら以外のデータも適宜含めることができる。
【０１４２】
右眼用仮想カメラ制御データ７１１と、左眼用仮想カメラ制御データ７１２は、仮想現実空間内におけるプレーヤの頭部に設定された右眼用仮想カメラ及び左眼用仮想カメラの制御データであって、それぞれ、仮想現実空間内における配置位置座標と姿勢データとを含み、ＨＭＤトラッキングデータ７０５に基づいて逐一変更される。右眼用仮想カメラ及び左眼用仮想カメラは、それぞれＨＭＤ６にて右眼／左眼用として表示する仮想現実空間の画像を撮影する。
【０１４３】
アバターキャラクタ制御パラメータ値リスト７２０は、仮想現実空間におけるプレーヤの代理としての存在であるアバターキャラクタの制御に係る各種データを格納する。本実施形態では、仮想手２０（図３参照）に係る制御パラメータ値を格納する仮想手制御パラメータ値リスト７２１を含む。勿論、図示はされていないが、アバターキャラクタの各身体部位の位置や姿勢を示すデータが適宜含まれている。
【０１４４】
仮想オブジェクト制御パラメータ値リスト７３０は、アバターキャラクタ以外でゲームに登場する各種仮想オブジェクト毎に用意され、当該オブジェクトの状態を管理するための各種制御パラメータ値を格納する。本実施形態では、仮想恋人１０、仮想テーブル１２、仮想ケーキ１４、仮想フォーク１６それぞれについて用意されることになる。
【０１４５】
そして、１つの仮想オブジェクト制御パラメータ値リスト７３０は、位置座標７３１と、姿勢７３２と、動作制御パラメータ値７３３と、表示形態設定データ７３４と、を含む。勿論、これら以外のデータも適宜含めることができる。
【０１４６】
移動目標位置座標７４０は、移動目標位置Ｐｍの位置座標を示す（図６〜図８参照）。
距離７４２は、移動目標位置Ｐｍと移動対象オブジェクト（本実施形態では仮想ケーキ１４）又は当該オブジェクトを運ぶ基準体（コントローラ８又はコントローラを持つ手）との距離である。
【０１４７】
理想制御パラメータ値リスト７４４は、理想状態を記述する各種制御パラメータ値を格納する。理想状態定義データ５７０に基づいて算出された結果が格納される（図１４参照）。
【０１４８】
補正割合７４６は、その時適用される補正割合を格納する。補正割合定義データ５７５に基づいて求められた結果が格納される（図１４参照）。
【０１４９】
目標制御パラメータ値リスト７４８は、移動対象オブジェクトの仮想オブジェクト制御パラメータ値リスト７３０が補正されるべき目標値を格納する。本実施形態では、移動対象オブジェクトの現状と理想状態との間に補正割合７４６に応じて中割りされた値が格納されることになる（図９参照）。
【０１５０】
［動作の説明］
図１６は、ゲームシステム１０００における処理の流れについて説明するためのフローチャートである。ここで説明する処理の流れは、処理部２００がシステムプログラム５０１とゲームプログラム５０３とを実行することにより実現される。
【０１５１】
ゲームシステム１０００は、先ずログインしたユーザ向けに新たなプレイデータ７００を用意して、仮想３次元空間に仮想現実空間を形成する（ステップＳ４）。
すなわち、仮想現実空間初期設定データ５１０及び仮想オブジェクト初期設定データ５２０（図１１参照）に基づいて、仮想３次元空間に各種仮想オブジェクトを配置して仮想現実空間を形成し、そこに右眼用仮想カメラと、左眼用仮想カメラと、アバターキャラクタ（仮想手２０を含む）などを配置する。
【０１５２】
次に、ゲームシステム１０００は、ＨＭＤ６とコントローラ８のトラッキングを開始し（ステップＳ６）、それぞれのトラッキングの結果に応じて右眼用仮想カメラ及び左眼用仮想カメラ、アバターキャラクタ（仮想手２０を含む）の追従制御を開始する（ステップＳ８）。
【０１５３】
これ以降、ＨＭＤ６にはプレーヤ２の頭部の向きに応じた仮想現実空間の景色が立体視として表示される。プレーヤ２が手に持っているコントローラ８の実空間の位置に仮想手２０（図３参照）が追従するので、プレーヤ２が自分の手を見ようと頭の向き或いは手の位置を調整すれば、仮想現実空間の景色の中に仮想手２０が見えるようになる。つまり、ＶＲ体験としての基本的な視覚要素が実現される。
【０１５４】
次に、ゲームシステム１０００は、ゲームを開始する（ステップＳ３０）。そして、イベント定義データ５４０（図１３参照）を参照して、イベント開始条件５４２が満たされたイベントが有れば（ステップＳ３２のＹＥＳ）、当該イベントを発動させる（ステップＳ３４）。
【０１５５】
具体的には、本実施形態のイベントは、移動対象オブジェクトを移動させる要素を含むので、該当するイベント定義データ５４０の移動対象オブジェクトＩＤリスト５４４の示す仮想オブジェクトの仮想オブジェクト初期設定データ５２０を参照して（図１２参照）、初期配置位置５２６に初期配置姿勢５２７を実現するように仮想現実空間に配置する。当該発動したイベント対応設定データ５３０がある場合には、当該データが適用されるものとする。
【０１５６】
なお、本実施形態では、移動対象オブジェクトは仮想現実空間内に配置されたばかりで、コントローラ８又は当該コントローラを具備するプレーヤの身体部位である基準体（以下、コントローラ８とする。）との対応づけはされていない。勿論、ゲーム内容、イベント内容によっては、初期配置の段階で、移動対象オブジェクトとコントローラ８の対応づけが行われる場合があってもよい。
【０１５７】
次に、ゲームシステム１０００は、配置済みの移動対象オブジェクトの対応付け開始条件５２８（図１２参照）が満たされているかを判定する（ステップＳ３６）。
【０１５８】
そして、対応付け開始条件が満たされていれば（ステップＳ３６のＹＥＳ）、ゲームシステム１０００は、配置済みの移動対象オブジェクトとコントローラ８との対応付けを開始する（ステップＳ３８）。両者が対応付けされることにより、ゲームシステム１０００は、これ以降、当該時点におけるコントローラ８と移動対象オブジェクトの双方の位置及び姿勢が、当該時点における相対関係（又は所与の相対関係）を維持するように、移動対象オブジェクトをコントローラ８とが一体に移動制御される。本実施形態では、仮想ケーキ１４・仮想フォーク１６・仮想手２０がこれ以降、一体的に仮想現実空間内を移動するようになる。そして、ゲームシステム１０００は、制御パラメータ値変更処理を実行する（ステップＳ４０）。
【０１５９】
図１７は、制御パラメータ値変更処理の流れを説明するためのフローチャートである。同処理は、移動対象オブジェクトの追従状態を補正する補正処理と言い換えることもできる。
【０１６０】
同処理において、ゲームシステム１０００は、先ず移動目標位置Ｐｍを設定する（ステップＳ６０）。具体的には、現在発動されているイベントのイベント定義データ５４０（図１３参照）の移動目標位置定義データ５６０に従って、プレイデータ７００に移動目標位置座標７４０を設定する（図１５参照）。設定対象オブジェクトＩＤ５６１が何れかの仮想オブジェクトを示している場合は、移動目標位置座標７４０は、逐一当該仮想オブジェクトの代表位置に対して位置座標５６２が示す相対位置座標を維持するように逐次更新される。
【０１６１】
次に、ゲームシステム１０００は、対応付けされた移動対象オブジェクトが何れの理想状態設定区域３０（図６参照）に存在するかを判定する（ステップＳ６２）。具体的には、現在発動されているイベントのイベント定義データ５４０の理想状態定義データ５７０それぞれの理想状態設定区域定義データ５７１（図１４参照）と、移動対象オブジェクト又はコントローラ８又は仮想手２０の位置とを比較して判定する。
【０１６２】
そして、移動対象オブジェクトが存在する理想状態設定区域３０の理想状態設定素材データ５７２に基づいて理想状態を設定する（ステップＳ６４）。具体的には、移動対象オブジェクトが存在する理想状態設定区域３０の理想状態設定素材データ５７２に基づいて、プレイデータ７００に理想制御パラメータ値リスト７４４を設定する（図１５参照）。
【０１６３】
次に、ゲームシステム１０００は、移動対象オブジェクトと移動目標位置Ｐｍとの距離７４２（図１５参照）を算出する（ステップＳ６６）。そして、移動対象オブジェクトが存在する理想状態設定区域３０の補正割合定義データ５７５（図１４参照）に従って適用する補正割合７４６（図１５参照）を決定する（ステップＳ６８）。
【０１６４】
次に、ゲームシステム１０００は、移動対象オブジェクトが理想状態になっているかを判定する（ステップＳ８０）。
【０１６５】
ここでもし否定ならば（ステップＳ８０のＮＯ）、移動対象オブジェクトの仮想オブジェクト制御パラメータ値リスト７３０と理想制御パラメータ値リスト７４４と補正割合７４６とに基づいて、目標制御パラメータ値リスト７４８を決定する（ステップＳ８２；図９参照）。
【０１６６】
そして、ゲームシステム１０００は、移動対象オブジェクトの仮想オブジェクト制御パラメータ値リスト７３０の各値を目標制御パラメータ値リスト７４８の値に変更し（ステップＳ８４）、移動対象オブジェクト及びこれと一体的に移動する仮想オブジェクトの表示を更新する（ステップＳ８６）。
【０１６７】
次に、移動目標位置が仮想オブジェクトに設定されているか判定する（ステップＳ１００）。本実施形態の例では、移動目標位置Ｐｍは仮想恋人１０の口に設定されているので肯定となる。
【０１６８】
そして、肯定の場合で（ステップＳ１００のＹＥＳ）、且つ当該イベントに対応するイベント対応設定データ５３０（図１２参照）が設定されていてそのイベント用動作発動条件５３４が満たされるならば（ステップＳ１０２のＹＥＳ）、ゲームシステム１０００は、当該仮想オブジェクトのイベント用動作５３３を発動させる（ステップＳ１０４）。本実施形態では、仮想恋人１０が口を仮想ケーキ１４に寄せるような動作を開始することになる。
【０１６９】
ステップＳ６２〜Ｓ１０４は、移動対象オブジェクトが移動目標位置Ｐｍに到達するまで繰り返され（ステップＳ１１０のＮＯ）、移動目標位置Ｐｍに到達すると（ステップＳ１１０のＹＥＳ）、制御パラメータ値変更処理を終了する。
【０１７０】
図１６に戻って、ゲームシステム１０００は、ステップＳ３２〜Ｓ４０をゲーム終了条件が満たされるまで繰り返し（ステップＳ１３０のＮＯ）、ゲーム終了条件が満たされると（ステップＳ１３０のＹＥＳ）、一連の処理を終了する。
【０１７１】
以上、本実施形態によれば、ＶＲにおけるユーザサポートを向上するための技術、換言するとＶＲにおける没入感を阻害させない技術を提供することができる。すなわち、仮想現実空間内で移動対象オブジェクトを移動目標位置Ｐｍ（到達目標位置）まで移動させるシーンにおいて、移動対象オブジェクトを所与の理想の姿勢で到達させるために、トラッキング誤差が生じているために、コントローラ８を持つ手を不自然な方向に曲げなければならないような事態を低減できる。そして、無理な操作がきっかけとなるＶＲのリアリティ感の毀損を防止し、ゲームストーリのスムーズな進行を助けることができる。
【０１７２】
〔変形例〕
以上、本発明を適用した実施形態の一例について説明したが、本発明を適用可能な形態は上記形態に限定されるものではなく適宜構成要素の追加・省略・変更を施すことができる。
【０１７３】
［その１］
例えば、上記実施形態では、ＶＲ体験をゲームとして説明したが、ゲームのジャンルや内容は適宜設定可能である。また、ゲームではなく、仮想の世界を旅したり探索するといったＶＲ体験を提供するものであってもよい。
【０１７４】
［その２］
また、ゲームジャンルやゲーム内、ＶＲ体験を提供形態に応じて、プレーヤ（ユーザ）が仮想現実空間内で移動させる仮想オブジェクトの種類や状況は適宜設定可能である。仮想現実空間におけるモノとしての役割に応じて、その仮想現実空間におけるサイズや特性も適宜設定可能である。
【０１７５】
例えば、移動対象オブジェクトは仮想ケーキ１４のままとし、移動目標位置Ｐｍをプレーヤのアバターキャラクタの口に設定すれば、プレーヤが自らケーキを口に運んで食べるシーンに本発明を適用できる。
具体的には、イベント定義データ５４０（図１３参照）の移動目標位置定義データ５６０では、設定対象オブジェクトＩＤ５６１にアバターキャラクタを示すＩＤを設定し、位置座標５６２にアバターキャラクタの口位置（例えば、右眼用仮想カメラ及び左眼用仮想カメラを両眼と見なして、そこから所定距離下方の位置）を設定する。
そして、アバターキャラクタ制御パラメータ値リスト７２０（図１５参照）に、アバターキャラクタの口位置と口の向きとを含む仮想口制御パラメータ値を用意する。仮想口制御パラメータ値の口位置は、右眼用仮想カメラ又は左眼用仮想カメラに対して所定の相対位置に有るとし、仮想口制御パラメータ値の口の向きは、右眼用仮想カメラ又は左眼用仮想カメラの向きと同方向とすることができる。
【０１７６】
また、移動対象オブジェクトの役割によっては、１つの移動オブジェクトに設定される移動目標位置Ｐｍも複数設定してもよい。例えば、移動対象オブジェクトをテーブルに置かれている仮想スマートフォンとする場合、移動目標位置Ｐｍをプレーヤのアバターキャラクタの右耳と左耳と顔の正面との３箇所に設定することができる。この場合、これら移動目標位置Ｐｍ毎に、当該移動目標位置Ｐｍで仮想スマートフォンを使用するために理想とされる仮想スマートフォンの姿勢の分け方によって、理想状態設定区域３０を単数又は複数用意すればよい。そして、理想状態では正面スピーカが耳元に向く状態を理想状態に設定すればよい。
【０１７７】
またその他の例としては、移動対象オブジェクトを鍵とし、移動目標位置Ｐｍをドアの鍵穴とすることもできる。この場合、鍵の理想状態は鍵の長手方向とドアの鍵穴の向きとが合った状態とすればよい。
もし、ゲーム世界の設定がファンタジーであれば、移動対象オブジェクトの元の姿は「妖精」であるが、移動目標位置Ｐｍに接近するにつれて「鍵」に姿を変えてゆくといった表示モデルの変形要素も追加可能である。具体的には、移動体オブジェクトの仮想オブジェクト初期設定データ５２０（図１２参照）のモデルデータ５２２に「妖精」の表示モデルを設定し、イベント対応設定データ５３０のイベント表示形態５３２に「鍵」の表示モデルを設定すればよい。そして、ステップＳ８２及びＳ８４（図１７参照）にて、移動目標位置Ｐｍに近づくにつれて、仮想オブジェクト制御パラメータ値リスト７３０（図１５参照）の表示形態設定データ７３４を、「妖精」の表示モデルから「鍵」の表示モデルへ補正割合７４６に応じてモーフィングしたように変更すればよい。
【０１７８】
また、移動対象オブジェクトを赤ちゃんとして、移動目標位置Ｐｍをその母親の胸元又は背中としてもよい。この場合、前者ならば理想状態は母親が赤ちゃんを抱きかかえ易い姿勢とすれば良いし、後者ならば母親が赤ちゃんをおんぶし易い姿勢とすればよい。
【０１７９】
［その３］
また、上記実施形態では、移動対象オブジェクトの姿勢を補正する例を示したが、姿勢の補正を省略する構成も可能である。また、移動対象オブジェクトの移動目標位置Ｐｍへの到達判定をコリジョン判定により実現することもできる。
【０１８０】
具体的には、例えば、ＲＰＧにおいて、プレーヤが仲間のＮＰＣの傷を治療するイベントとする。その設定として、１）移動対象オブジェクトを、アバターキャラクタが手に持った治療魔法のポーションとし、２）移動目標位置ＰｍをＮＰＣの傷口を含むコリジョン判定エリア（移動目標エリア）として設定し、３）移動対象オブジェクトの表示モデルを、移動目標位置Ｐｍに近づくと光の球に変形させる表示形態の変更設定とし、４）光の球（変形後の表示モデル）の大きさを元の治療魔法のポーションよりも大きく設定する。そして、５）移動対象オブジェクトの移動目標位置Ｐｍへの到達判定を、光の球の表示モデルと、移動目標エリアとのコリジョン判定で行う。
この場合、トラッキングズレが生じていても、移動対象オブジェクトの位置や姿勢を補正しなくとも、光の球が傷口に近づけばイベントの目的は達せられることになる。つまり、ＶＲにおけるユーザサポートを向上できる。
【０１８１】
［その４］
また、トラッキング技術は適宜選定可能であると述べたが、例えば図１８で示すゲームシステム１０００Ｂのように、プレーヤ２を正面から撮影するカメラや、プレーヤ２の正面各部までの距離を測定する測距センサを備えたセンサユニット７０を用いて、プレーヤ２の骨格の動作を認識するタイプのジェスチャー認識技術を用いて、上記実施形態のヘッドトラッキング及びコントローラトラッキングの代用とすることができる。この場合、コントローラ８をトラッキングするというよりも、コントローラ８を具備する身体部位（図の例では手）を基準体としてトラッキングすることになる。
【０１８２】
［その５］
また、上記実施形態では、移動対象オブジェクトが移動目標位置Ｐｍに到達するまで制御パラメータ値を理想状態に近づけるように補正変更を行う構成であったが、ある程度まで移動目標位置Ｐｍに接近すると、以降移動目標位置Ｐｍに到達するまでを自動のアニメーション処理にて実現するとしてもよい。
【０１８３】
その場合、図１９に示すように、ゲームシステム１０００は、ゲーム進行制御部２１０に自動移動制御部２２８を追加すればよい。
【０１８４】
自動移動制御部２２８は、変更制御発動条件（上記実施形態におけるイベント開始条件５４２）が満たされた後、移動対象オブジェクト（移動される仮想オブジェクト）からその移動目標位置Ｐｍ（到達位置）までの距離が所与の近接条件を満たした場合に、自動的に当該仮想オブジェクトの位置を到達位置に移動させる自動移動制御を実行する。
【０１８５】
そして、図２０に示すように、自動移動制御を実現するために理想状態設定区域３０毎に自動移動定義データ５８０を追加する。
１つの自動移動定義データ５８０は、理想状態設定区域定義データ５８１と、近接条件５８２と、自動移動データ５８３とを含む。勿論、これら以外のデータも適宜含めることができる。
【０１８６】
近接条件５８２は、移動対象オブジェクトと移動目標位置Ｐｍとの距離の閾値が設定される。その値は、移動対象オブジェクトのゲーム内における役割、大きさ、移動目標位置Ｐｍの位置関係などに応じて適宜設定可能である。ただし、アニメーションが発動されると、プレーヤの目には、移動対象オブジェクトが移動目標位置Ｐｍに勝手に動いていったかのように不自然な動きとして見える可能性があるので、設定する値には注意を要する。
【０１８７】
そして、図２１に示すように、制御パラメータ値変更処理において、距離Ｌを算出したならば、近接条件５８２が満たされているかを判定するステップを追加する（ステップＳ６７）。そして、満たされている場合にはステップＳ６８〜Ｓ８６をスキップし、代わりに、自動移動データ５８３に従った移動対象オブジェクトの自動移動、いわゆる自動アニメーションを実行する（ステップＳ６９）。なお、自動移動制御を実行している間は、移動対象オブジェクトのコントローラ８への対応付けは解除し、コントローラ８への追従制御は行わないものとする。
【符号の説明】
【０１８８】
２…プレーヤ
６…ＨＭＤ
７…トラッキング用カメラ
８…コントローラ
１０…仮想恋人
１２…仮想テーブル
１４…仮想ケーキ
１６…仮想フォーク
２０…仮想手
３０…理想状態設定区域
３０ｅ…警告区域
２００…処理部
２１０…ゲーム進行制御部
２１２…仮想現実空間設定部
２１４…ＨＭＤトラッキング部
２１６…コントローラトラッキング部
２１８…追従制御部
２２０…到達位置設定部
２２２…到達状態設定部
２２４…変更制御部
２２６…キャラクタ制御部
２２８…自動移動制御部
５００…記憶部
５０１…システムプログラム
５０３…ゲームプログラム
５１０…仮想現実空間初期設定データ
５１６…アバターキャラクタ初期設定データ
５２０…仮想オブジェクト初期設定データ
５２８…対応付け開始条件
５３０…イベント対応設定データ
５３３…イベント用動作
５３４…イベント用動作発動条件
５４０…イベント定義データ
５４４…移動対象オブジェクトＩＤリスト
５６０…移動目標位置定義データ
５７０…理想状態定義データ
５７１…理想状態設定区域定義データ
５７２…理想状態設定素材データ
５７３…理想制御パラメータ値導出関数リスト
５７４…指定理想制御パラメータ値リスト
５７５…補正割合定義データ
５８０…自動移動定義データ
５８２…近接条件
５８３…自動移動データ
７００…プレイデータ
７０５…ＨＭＤトラッキングデータ
７０７…コントローラトラッキングデータ
７１０…仮想現実空間制御データ
７２０…アバターキャラクタ制御パラメータ値リスト
７３０…仮想オブジェクト制御パラメータ値リスト
７３１…位置座標
７３２…姿勢
７３３…動作制御パラメータ値
７３４…表示形態設定データ
７４０…移動目標位置座標
７４２…距離
７４４…理想制御パラメータ値リスト
７４６…補正割合
７４８…目標制御パラメータ値リスト
１０００…ゲームシステム
１１００…ゲーム制御装置
１１５０…制御基板
Ｌ…距離
Ｌｃ…補正制御発動条件距離
Ｐｍ…移動目標位置
ｆ１…補正導出関数
【図１】
0006672047.tif 000002
【図２】
0006672047.tif 000003
【図３】
0006672047.tif 000004
【図４】
0006672047.tif 000005
【図５】
0006672047.tif 000006
【図６】
0006672047.tif 000007
【図７】
0006672047.tif 000008
【図８】
0006672047.tif 000009
【図９】
0006672047.tif 000010
【図１０】
0006672047.tif 000011
【図１１】
0006672047.tif 000012
【図１２】
0006672047.tif 000013
【図１３】
0006672047.tif 000014
【図１４】
0006672047.tif 000015
【図１５】
0006672047.tif 000016
【図１６】
0006672047.tif 000017
【図１７】
0006672047.tif 000018
【図１８】
0006672047.tif 000019
【図１９】
0006672047.tif 000020
【図２０】
0006672047.tif 000021
【図２１】
0006672047.tif 000022