(57)【要約】【課題】ヒットイベントでのヒット情報等を反映させた装着体の振動部の振動制御を実現できるシミュレーションシステム等の提供。【解決手段】シミュレーションシステムは、仮想空間設定部と移動体処理部とゲーム処理部と表示処理部と制御部を含む。ユーザが身体に装着する装着体の前面部に少なくとも１つの前面側振動部が設けられ、装着体の後面部に少なくとも１つの後面側振動部が設けられる。ゲーム処理部は、ユーザ移動体と他のオブジェクトとのヒット演算処理を行い、ヒット方向及びヒット位置の少なくとも一方を含むヒット情報を求める。制御部は、ユーザ移動体と他のオブジェクトとのヒットイベントが発生した場合に、前記ヒット情報に基づいて、前面側振動部及び後面側振動部の一方の振動部である第１の振動部を振動させた後、前面側振動部及び後面側振動部の他方の振動部である第２の振動部を振動させる。【選択図】図１９
2018171320.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間の設定処理を行う仮想空間設定部と、
前記仮想空間を移動するユーザ移動体の移動処理を行う移動体処理部と、
ユーザが身体に装着体を装着してプレイするゲームのゲーム処理を行うゲーム処理部と、
前記ゲーム処理の結果に基づいて、表示画像を生成する表示処理部と、
制御部とを含み、
前記装着体の前面部に、少なくとも１つの前面側振動部が設けられ、前記装着体の後面部に、少なくとも１つの後面側振動部が設けられ、
前記ゲーム処理部は、
前記ユーザ移動体と他のオブジェクトとのヒット演算処理を行って、ヒット方向及びヒット位置の少なくとも一方を含むヒット情報を求め、
前記制御部は、
前記ユーザ移動体と前記他のオブジェクトとのヒットイベントが発生した場合に、前記ヒット情報に基づいて、前記前面側振動部及び前記後面側振動部の一方の振動部である第１の振動部を振動させた後、前記前面側振動部及び前記後面側振動部の他方の振動部である第２の振動部を振動させる振動制御を行うことを特徴とするシミュレーションシステム。
【請求項２】
請求項１において、
前記制御部は、
前記第１の振動部として複数の第１の振動部が設けられる場合に、前記複数の第１の振動部の中から振動させる振動部を選択する処理を、前記ヒット情報に基づいて行うことを特徴とするシミュレーションシステム。
【請求項３】
請求項１又は２において、
前記制御部は、
前記第２の振動部として複数の第２の振動部が設けられる場合に、前記複数の第２の振動部の中から振動させる振動部を選択する処理を、前記ヒット情報に基づいて行うことを特徴とするシミュレーションシステム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記制御部は、
前記第１の振動部を振動させる第１のタイミングから、前記第２の振動部を振動させる第２のタイミングまでの振動間隔の長さを変化させることを特徴とするシミュレーションシステム。
【請求項５】
請求項４において、
前記ヒット情報はヒット速度を含み、
前記制御部は、
前記ヒット速度に基づいて前記振動間隔の長さを変化させることを特徴とするシミュレーションシステム。
【請求項６】
ユーザが身体に装着体を装着してプレイするゲームのゲーム処理を行うゲーム処理部と、
前記ゲーム処理の結果に基づいて、前記ユーザに表示する画像を生成する表示処理部と、
制御部とを含み、
前記装着体には複数の振動部が設けられ、
前記制御部は、
複数の前記振動部のうちの第１の振動部を振動させる第１のタイミングから、複数の前記振動部のうちの第２の振動部を振動させる第２のタイミングまでの振動間隔の長さを、前記ゲームにおいて発生する振動イベントの種類又は内容に応じて変化させることを特徴とするシミュレーションシステム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記表示処理部は、
前記ユーザが視界を覆うように装着する頭部装着型表示装置の表示画像を生成することを特徴とするシミュレーションシステム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記制御部は、
前記装着体の前記振動制御に応じた演出処理を行うことを特徴とするシミュレーションシステム。
【請求項９】
仮想空間の設定処理を行う仮想空間設定部と、
前記仮想空間を移動するユーザ移動体の移動処理を行う移動体処理部と、
ユーザが身体に装着体を装着してプレイするゲームのゲーム処理を行うゲーム処理部と、
前記ゲーム処理の結果に基づいて、表示画像を生成する表示処理部と、
制御部として、
コンピュータを機能させ、
前記装着体の前面部に、少なくとも１つの前面側振動部が設けられ、前記装着体の後面部に、少なくとも１つの後面側振動部が設けられ、
前記ゲーム処理部は、
前記ユーザ移動体と他のオブジェクトとのヒット演算処理を行って、ヒット方向及びヒット位置の少なくとも一方を含むヒット情報を求め、
前記制御部は、
前記ユーザ移動体と前記他のオブジェクトとのヒットイベントが発生した場合に、前記ヒット情報に基づいて、前記前面側振動部及び前記後面側振動部の一方の振動部である第１の振動部を振動させた後、前記前面側振動部及び前記後面側振動部の他方の振動部である第２の振動部を振動させる振動制御を行うことを特徴とするプログラム。
【請求項１０】
ユーザが身体に装着体を装着してプレイするゲームのゲーム処理を行うゲーム処理部と、
前記ゲーム処理の結果に基づいて、前記ユーザに表示する画像を生成する表示処理部と、
制御部として、
コンピュータを機能させ、
前記装着体には複数の振動部が設けられ、
前記制御部は、
複数の前記振動部のうちの第１の振動部を振動させる第１のタイミングから、複数の前記振動部のうちの第２の振動部を振動させる第２のタイミングまでの振動間隔の長さを、前記ゲームにおいて発生する振動イベントの種類又は内容に応じて変化させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションシステム及びプログラム等に関する。
【背景技術】
【０００２】
従来より、ユーザの触覚を利用した直感的なマンマシーンインターフェースを実現する技術が知られている。例えば特許文献１には、接触検出器や動き検出器を含むセンサ回路と、触覚テキスタイル（haptic textile）と、センサ回路からの作動信号に基づいて触覚フィードバックを生成するように構成された作動面とを有する装置が開示されている。この特許文献１の従来技術では、触覚テキスタイルにより触覚フィードバックの衣服を実現する手法が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１２−５１１７８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら特許文献１では、ユーザ移動体に他のオブジェクトがヒットする際のヒット演算処理で求められたヒット情報を、ユーザが装着する装着体の振動制御に反映させる手法については提案されていなかった。また装着体の前面側の振動部と後面側の振動部の適切な振動制御手法についても提案されていなかった。
【０００５】
本発明の幾つかの態様によれば、ヒットイベントでのヒット情報等を反映させた装着体の振動部の振動制御を実現できるシミュレーションシステム及びプログラム等を提供できる。
【課題を解決するための手段】
【０００６】
本発明の一態様は、仮想空間の設定処理を行う仮想空間設定部と、前記仮想空間を移動するユーザ移動体の移動処理を行う移動体処理部と、ユーザが身体に装着体を装着してプレイするゲームのゲーム処理を行うゲーム処理部と、前記ゲーム処理の結果に基づいて、表示画像を生成する表示処理部と、制御部とを含み、前記装着体の前面部に、少なくとも１つの前面側振動部が設けられ、前記装着体の後面部に、少なくとも１つの後面側振動部が設けられ、前記ゲーム処理部は、前記ユーザ移動体と他のオブジェクトとのヒット演算処理を行って、ヒット方向及びヒット位置の少なくとも一方を含むヒット情報を求め、前記制御部は、前記ユーザ移動体と前記他のオブジェクトとのヒットイベントが発生した場合に、前記ヒット情報に基づいて、前記前面側振動部及び前記後面側振動部の一方の振動部である第１の振動部を振動させた後、前記前面側振動部及び前記後面側振動部の他方の振動部である第２の振動部を振動させる振動制御を行うシミュレーションシステムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【０００７】
本発明の一態様によれば、仮想空間においてユーザ移動体を移動させる移動処理が行われると共に、ユーザが身体に装着体を装着してプレイするゲームのゲーム処理が行われ、ゲーム処理の結果に基づいて表示画像を生成される。またユーザが装着する装着体は、前面部に前面側振動部が設けられ、後面部に後面側振動部が設けられる。また、ユーザ移動体と他のオブジェクトとのヒット演算処理が行われて、ヒット方向及びヒット位置の少なくとも一方を含むヒット情報が求められる。そしてユーザ移動体と他のオブジェクトとのヒットイベントが発生すると、ヒット情報に基づいて、前面側振動部及び後面側振動部の一方の振動部である第１の振動部を振動させた後、他方の振動部である第２の振動部を振動させる振動制御が行われる。このようにすれば、ヒットイベントが発生すると、ヒット情報に基づいて、前面側振動部及び後面側振動部の一方である第１の振動部が振動した後、他方である第２の振動部が振動するようになる。従って、あたかも他のオブジェクトが身体を貫通したかのような仮想現実を、ユーザに体感させることができ、ヒットイベントでのヒット情報等を反映させた装着体の振動部の振動制御を実現できるようになる。
【０００８】
また本発明の一態様では、前記制御部は、前記第１の振動部として複数の第１の振動部が設けられる場合に、前記複数の第１の振動部の中から振動させる振動部を選択する処理を、前記ヒット情報に基づいて行ってもよい。
【０００９】
このようにすれば、ヒットイベントが発生すると、装着体の前面側振動部及び後面側振動部の一方である複数の第１の振動部の中から、ヒット情報に応じた振動部が選択されて振動するようになり、ヒット情報を反映させた振動制御を実現できるようになる。
【００１０】
また本発明の一態様では、前記制御部は、前記第２の振動部として複数の第２の振動部が設けられる場合に、前記複数の第２の振動部の中から振動させる振動部を選択する処理を、前記ヒット情報に基づいて行ってもよい。
【００１１】
このようにすれば、ヒットイベントが発生すると、装着体の前面側振動部及び後面側振動部の他方である複数の第２の振動部の中から、ヒット情報に応じた振動部が選択されて振動するようになり、ヒット情報を反映させた振動制御を実現できるようになる。
【００１２】
また本発明の一態様では、前記制御部は、前記第１の振動部を振動させる第１のタイミングから、前記第２の振動部を振動させる第２のタイミングまでの振動間隔の長さを変化させてもよい。
【００１３】
このようにすれば、第１の振動部が振動する第１のタイミングから第２の振動部が振動する第２のタイミングまでの振動間隔の長さが様々に変化するようになり、ユーザの仮想現実感をより向上できる振動制御の実現が可能になる。
【００１４】
また本発明の一態様では、前記ヒット情報はヒット速度を含み、前記制御部は、前記ヒット速度に基づいて前記振動間隔の長さを変化させてもよい。
【００１５】
このようにすれば、第１の振動部が振動する第１のタイミングから第２の振動部が振動する第２のタイミングまでの振動間隔の長さを、ヒット情報のヒット速度に基づいて設定できるようになり、ヒット速度を反映させた振動間隔の制御が可能になる。
【００１６】
また本発明の一態様では、ユーザが身体に装着体を装着してプレイするゲームのゲーム処理を行うゲーム処理部と、前記ゲーム処理の結果に基づいて、前記ユーザに表示する画像を生成する表示処理部と、制御部とを含み、前記装着体には複数の振動部が設けられ、前記制御部は、複数の前記振動部のうちの第１の振動部を振動させる第１のタイミングから、複数の前記振動部のうちの第２の振動部を振動させる第２のタイミングまでの振動間隔の長さを、前記ゲームにおいて発生する振動イベントの種類又は内容に応じて変化させるシミュレーションシステムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【００１７】
本発明の一態様によれば、仮想空間においてユーザ移動体を移動させる移動処理が行われると共に、ユーザが身体に装着体を装着してプレイするゲームのゲーム処理が行われ、ゲーム処理の結果に基づいて表示画像を生成される。そして振動イベントが発生すると、ユーザの装着体の第１の振動部を振動させる第１のタイミングから、第２の振動部を振動させる第２のタイミングまでの振動間隔の長さが、振動イベントの種類又は内容に応じた長さに設定されるようになり、ユーザの仮想現実感をより向上できる振動制御の実現が可能になる。
【００１８】
また本発明の一態様では、前記表示処理部は、前記ユーザが視界を覆うように装着する頭部装着型表示装置の表示画像を生成してもよい。
【００１９】
このようにユーザの視界が頭部装着型表示装置により覆われている場合には、ユーザの装着体の振動部を振動させることで、振動イベントやヒットイベントでの仮想現実感を効果的に向上できるようになる。
【００２０】
また本発明の一態様では、前記制御部は、前記装着体の前記振動制御に応じた演出処理を行ってもよい。
【００２１】
このようにすれば、装着体の振動制御に連動した演出処理を行うことが可能になり、ユーザに与える仮想現実感の更なる向上を図れるようになる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態のシミュレーションシステムの構成例を示すブロック図。
【図２】図２（Ａ）、図２（Ｂ）は本実施形態に用いられるＨＭＤの一例。
【図３】図３（Ａ）、図３（Ｂ）は本実施形態に用いられるＨＭＤの他の例。
【図４】シミュレーションシステムで用いられるフィールドの説明図。
【図５】図５（Ａ）、図５（Ｂ）は実空間のユーザと当該ユーザに対応する移動体についての説明図。
【図６】ＨＭＤに表示されるゲーム画像の例。
【図７】剣型コントローラを用いるゲームの説明図。
【図８】ＨＭＤに表示されるゲーム画像の例。
【図９】図９（Ａ）、図９（Ｂ）は複数の振動部が設けられた装着体であるジャケットの説明図。
【図１０】ソレノイドを用いた振動部の構成例。
【図１１】図１１（Ａ）、図１１（Ｂ）は実空間でのユーザの移動に応じた仮想空間のユーザ移動体の移動処理の説明図。
【図１２】図１２（Ａ）、図１２（Ｂ）は弾のヒット時における振動制御手法の説明図。
【図１３】図１３（Ａ）、図１３（Ｂ）はヒット情報に基づく振動部の振動制御手法の説明図。
【図１４】図１４（Ａ）、図１４（Ｂ）はヒット情報に基づく振動部の振動制御手法の説明図。
【図１５】図１５（Ａ）、図１５（Ｂ）はヒット情報のヒット位置に基づく振動部の選択手法の説明図。
【図１６】図１６（Ａ）〜図１６（Ｃ）はヒット情報のヒット速度やヒットイベントの種類、内容に応じた振動間隔の設定手法の説明図。
【図１７】図１７（Ａ）〜図１７（Ｄ）はヒットイベント、振動イベントの種々の例の説明図。
【図１８】本実施形態の詳細な処理例を説明するフローチャート。
【図１９】本実施形態の詳細な処理例を説明するフローチャート。
【発明を実施するための形態】
【００２３】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２４】
１．シミュレーションシステム
図１は、本実施形態のシミュレーションシステム（シミュレータ、ゲームシステム）の構成例を示すブロック図である。本実施形態のシミュレーションシステムは例えばバーチャルリアリティ（ＶＲ）をシミュレートするシステムであり、ゲームコンテンツを提供するゲームシステム、スポーツ競技シミュレータや運転シミュレータなどのリアルタイムシミュレーションシステム、ＳＮＳのサービスを提供するシステム、映像等のコンテンツを提供するコンテンツ提供システム、或いは遠隔作業を実現するオペレーティングシステムなどの種々のシステムに適用可能である。なお、本実施形態のシミュレーションシステムは図１の構成に限定されず、その構成要素（各部）の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００２５】
装着体５０は、ユーザが身体に装着するものである。身体は、例えばユーザの首よりも下方の部分（胴体、腰、脚部又は腕等）である。装着体５０には複数の振動部Ｖ１〜ＶＮが設けられている。振動部Ｖ１〜ＶＮは取付具により装着体５０に取り付けられている。
【００２６】
操作部１６０は、ユーザ（プレーヤ）が種々の操作情報（入力情報）を入力するためのものである。操作部１６０は、例えば操作ボタン、方向指示キー、ジョイスティック、ハンドル、ペダル又はレバー等の種々の操作デバイスにより実現できる。操作部１６０は、例えばユーザの装備品であるガン型コントローラや剣型コントローラ等のコントローラなどにより実現できる。
【００２７】
記憶部１７０は各種の情報を記憶する。記憶部１７０は、処理部１００や通信部１９６などのワーク領域として機能する。ゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。記憶部１７０の機能は、半導体メモリ（ＤＲＡＭ、ＶＲＡＭ）、ＨＤＤ（ハードディスクドライブ）、ＳＳＤ、光ディスク装置などにより実現できる。記憶部１７０は、オブジェクト情報記憶部１７２、描画バッファ１７８を含む。
【００２８】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＢＤ、ＣＤ）、ＨＤＤ、或いは半導体メモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータ（入力装置、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００２９】
ＨＭＤ２００（頭部装着型表示装置）は、ユーザの頭部に装着されて、ユーザの眼前に画像を表示する装置である。ＨＭＤ２００は非透過型であることが望ましいが、透過型であってもよい。またＨＭＤ２００は、いわゆるメガネタイプのＨＭＤであってもよい。
【００３０】
ＨＭＤ２００は、センサ部２１０、表示部２２０、処理部２４０を含む。なおＨＭＤ２００に発光素子を設ける変形実施も可能である。センサ部２１０は、例えばヘッドトラッキングなどのトラッキング処理を実現するためものである。例えばセンサ部２１０を用いたトラッキング処理により、ＨＭＤ２００の位置、方向を特定する。ＨＭＤ２００の位置、方向が特定されることで、ユーザの視点位置、視線方向（ユーザの位置、方向）を特定できる。
【００３１】
トラッキング方式としては種々の方式を採用できる。トラッキング方式の一例である第１のトラッキング方式では、後述の図２（Ａ）、図２（Ｂ）で詳細に説明するように、センサ部２１０として複数の受光素子（フォトダイオード等）を設ける。そして外部に設けられた発光素子（ＬＥＤ等）からの光（レーザー等）をこれらの複数の受光素子により受光することで、現実世界の３次元空間でのＨＭＤ２００（ユーザの頭部）の位置、方向を特定する。第２のトラッキング方式では、後述の図３（Ａ）、図３（Ｂ）で詳細に説明するように、複数の発光素子（ＬＥＤ）をＨＭＤ２００に設ける。そして、これらの複数の発光素子からの光を、外部に設けられた撮像部で撮像することで、ＨＭＤ２００の位置、方向を特定する。第３のトラッキング方式では、センサ部２１０としてモーションセンサを設け、このモーションセンサを用いてＨＭＤ２００の位置、方向を特定する。モーションセンサは例えば加速度センサやジャイロセンサなどにより実現できる。例えば３軸の加速度センサと３軸のジャイロセンサを用いた６軸のモーションセンサを用いることで、現実世界の３次元空間でのＨＭＤ２００の位置、方向を特定できる。なお、第１のトラッキング方式と第２のトラッキング方式の組合わせ、或いは第１のトラッキング方式と第３のトラッキング方式の組合わせなどにより、ＨＭＤ２００の位置、方向を特定してもよい。またＨＭＤ２００の位置、方向を特定することでユーザの視点位置、視線方向を特定するのではなく、ユーザの視点位置、視線方向（位置、方向）を直接に特定するトラッキング処理を採用してもよい。
【００３２】
ＨＭＤ２００の表示部２２０は例えば有機ＥＬディスプレイ（ＯＥＬ）や液晶ディスプレイ（ＬＣＤ）などにより実現できる。例えばＨＭＤ２００の表示部２２０には、ユーザの左目の前に設定される第１のディスプレイ又は第１の表示領域と、右目の前に設定される第２のディスプレイ又は第２の表示領域が設けられており、立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左目用画像と右目用画像を生成し、第１のディスプレイに左目用画像を表示し、第２のディスプレイに右目用画像を表示する。或いは１つのディスプレイの第１の表示領域に左目用画像を表示し、第２の表示領域に右目用画像を表示する。またＨＭＤ２００には左目用、右目用の２つの接眼レンズ（魚眼レンズ）が設けられており、これによりユーザの視界の全周囲に亘って広がるＶＲ空間が表現される。そして接眼レンズ等の光学系で生じる歪みを補正するための補正処理が、左目用画像、右目用画像に対して行われる。この補正処理は表示処理部１２０が行う。
【００３３】
ＨＭＤ２００の処理部２４０は、ＨＭＤ２００において必要な各種の処理を行う。例えば処理部２４０は、センサ部２１０の制御処理や表示部２２０の表示制御処理などを行う。また処理部２４０が、３次元音響（立体音響）処理を行って、３次元的な音の方向や距離や広がりの再現を実現してもよい。
【００３４】
音出力部１９２は、本実施形態により生成された音を出力するものであり、例えばスピーカ又はヘッドホン等により実現できる。
【００３５】
Ｉ／Ｆ（インターフェース）部１９４は、携帯型情報記憶媒体１９５とのインターフェース処理を行うものであり、その機能はＩ／Ｆ処理用のＡＳＩＣなどにより実現できる。携帯型情報記憶媒体１９５は、ユーザが各種の情報を保存するためのものであり、電源が非供給になった場合にもこれらの情報の記憶を保持する記憶装置である。携帯型情報記憶媒体１９５は、ＩＣカード（メモリカード）、ＵＳＢメモリ、或いは磁気カードなどにより実現できる。
【００３６】
通信部１９６は、有線や無線のネットワークを介して外部（他の装置）との間で通信を行うものであり、その機能は、通信用ＡＳＩＣ又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【００３７】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバ（ホスト装置）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０）に配信してもよい。このようなサーバ（ホスト装置）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００３８】
処理部１００（プロセッサ）は、操作部１６０からの操作情報や、ＨＭＤ２００でのトラッキング情報（ＨＭＤの位置及び方向の少なくとも一方の情報。視点位置及び視線方向の少なくとも一方の情報）や、プログラムなどに基づいて、ゲーム処理（シミュレーション処理）、仮想空間設定処理、移動体処理、仮想カメラ制御処理、表示処理、或いは音処理などを行う。
【００３９】
処理部１００の各部が行う本実施形態の各処理（各機能）はプロセッサ（ハードウェアを含むプロセッサ）により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリにより実現できる。プロセッサは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。例えば、プロセッサはハードウェアを含み、そのハードウェアは、デジタル信号を処理する回路及びアナログ信号を処理する回路の少なくとも一方を含むことができる。例えば、プロセッサは、回路基板に実装された１又は複数の回路装置（例えばＩＣ等）や、１又は複数の回路素子（例えば抵抗、キャパシター等）で構成することもできる。プロセッサは、例えばＣＰＵ（Central Processing Unit）であってもよい。但し、プロセッサはＣＰＵに限定されるものではなく、ＧＰＵ（Graphics Processing Unit）、或いはＤＳＰ（Digital Signal Processor）等、各種のプロセッサを用いることが可能である。またプロセッサはＡＳＩＣによるハードウェア回路であってもよい。またプロセッサは、アナログ信号を処理するアンプ回路やフィルター回路等を含んでもよい。メモリ（記憶部１７０）は、ＳＲＡＭ、ＤＲＡＭ等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置（ＨＤＤ）等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部１００の各部の処理（機能）が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
【００４０】
処理部１００は、入力処理部１０２、演算処理部１１０、出力処理部１４０を含む。演算処理部１１０は、情報取得部１１１、仮想空間設定部１１２、移動体処理部１１３、仮想カメラ制御部１１４、ゲーム処理部１１５、制御部１１８、表示処理部１２０、音処理部１３０を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ（或いはプロセッサ及びメモリ）により実現できる。なお、これらの構成要素（各部）の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００４１】
入力処理部１０２は、操作情報やトラッキング情報を受け付ける処理や、記憶部１７０から情報を読み出す処理や、通信部１９６を介して情報を受信する処理を、入力処理として行う。例えば入力処理部１０２は、操作部１６０を用いてユーザが入力した操作情報やＨＭＤ２００のセンサ部２１０等により検出されたトラッキング情報を取得する処理や、読み出し命令で指定された情報を、記憶部１７０から読み出す処理や、外部装置（サーバ等）からネットワークを介して情報を受信する処理を、入力処理として行う。ここで受信処理は、通信部１９６に情報の受信を指示したり、通信部１９６が受信した情報を取得して記憶部１７０に書き込む処理などである。
【００４２】
演算処理部１１０は、各種の演算処理を行う。例えば情報取得処理、仮想空間設定処理、移動体処理、仮想カメラ制御処理、ゲーム処理（シミュレーション処理）、制御処理、表示処理、或いは音処理などの演算処理を行う。
【００４３】
情報取得部１１１（情報取得処理のプログラムモジュール）は種々の情報の取得処理を行う。例えば情報取得部１１１は、ユーザの位置情報、方向情報及び姿勢情報の少なくとも１つを含むユーザ情報（ユーザトラッキング情報）を取得する。
【００４４】
仮想空間設定部１１２（仮想空間設定処理のプログラムモジュール）は、複数のオブジェクトが配置される仮想空間（オブジェクト空間）の設定処理を行う。例えば、移動体（人、ロボット、車、電車、飛行機、船、モンスター又は動物等）、マップ（地形）、建物、観客席、コース（道路）、樹木、壁、水面などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）を仮想空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のオブジェクト情報記憶部１７２には、仮想空間でのオブジェクト（パーツオブジェクト）の位置、回転角度、移動速度、移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。仮想空間設定部１１２は、例えば各フレーム毎にこのオブジェクト情報を更新する処理などを行う。
【００４５】
移動体処理部１１３（移動体処理のプログラムモジュール）は、仮想空間内で移動する移動体についての種々の処理を行う。例えば仮想空間（オブジェクト空間、ゲーム空間）において移動体を移動させる処理や、移動体を動作させる処理を行う。例えば移動体処理部１１３は、操作部１６０によりユーザが入力した操作情報や、取得されたトラッキング情報や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、移動体（モデルオブジェクト）を仮想空間内で移動させたり、移動体を動作（モーション、アニメーション）させる制御処理を行う。具体的には、移動体の移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（例えば１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。移動体は、例えば実空間のユーザ（プレーヤ）に対応する仮想空間の仮想ユーザ（仮想プレーヤ、アバター）や、或いは当該仮想ユーザが搭乗（操作）する搭乗移動体（操作移動体）などである。
【００４６】
ゲーム処理部１１５（ゲーム処理のプログラムモジュール）はユーザがゲームをプレイするための種々のゲーム処理を行う。別の言い方をすれば、ゲーム処理部１１５（シミュレーション処理部）は、ユーザが仮想現実（バーチャルリアリティ）を体験するための種々のシミュレーション処理を実行する。ゲーム処理は、例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、開始したゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、或いはゲーム成績を演算する処理などである。ゲーム処理部１１５はヒット演算処理部１１６を含む。ヒット演算処理部１１６は、ヒット判定処理などのヒット演算処理を実行する。
【００４７】
制御部１１８（制御処理のプログラムモジュール）は、装着体５０の複数の振動部Ｖ１〜ＶＮの制御処理を行う。制御部１１８の詳細については後述する。
【００４８】
表示処理部１２０（表示処理のプログラムモジュール）は、ゲーム画像（シミュレーション画像）の表示処理を行う。例えば処理部１００で行われる種々の処理（ゲーム処理、シミュレーション処理）の結果に基づいて描画処理を行い、これにより画像を生成し、ＨＭＤ２００の表示部２２０に表示する。具体的には、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を、描画バッファ１７８（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画する。これにより、オブジェクト空間（仮想空間）において仮想カメラ（所与の視点。左目用、右目用の第１、第２の視点）から見える画像が生成される。なお、表示処理部１２０で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
【００４９】
音処理部１３０（音処理のプログラムモジュール）は、処理部１００で行われる種々の処理の結果に基づいて音処理を行う。具体的には、楽曲（音楽、ＢＧＭ）、効果音、又は音声などのゲーム音を生成し、ゲーム音を音出力部１９２に出力させる。なお音処理部１３０の音処理の一部（例えば３次元音響処理）を、ＨＭＤ２００の処理部２４０により実現してもよい。
【００５０】
出力処理部１４０は各種の情報の出力処理を行う。例えば出力処理部１４０は、記憶部１７０に情報を書き込む処理や、通信部１９６を介して情報を送信する処理を、出力処理として行う。例えば出力処理部１４０は、書き込み命令で指定された情報を、記憶部１７０に書き込む処理や、外部の装置（サーバ等）に対してネットワークを介して情報を送信する処理を行う。送信処理は、通信部１９６に情報の送信を指示したり、送信する情報を通信部１９６に指示する処理などである。
【００５１】
そして本実施形態のシミュレーションシステムは、ゲーム処理部１１５と、制御部１１８と、表示処理部１２０を含む。また仮想空間設定部１１２と、移動体処理部１１３を更に含むことができる。
【００５２】
仮想空間設定部１１２は仮想空間の設定処理を行う。例えば、移動体、障害物、背景又はマップのオブジェクトを仮想空間に配置設定する処理を行う。例えば実空間でのユーザの位置情報、方向情報が取得された場合に、取得された位置情報、方向情報に基づいて、ユーザに対応するユーザ移動体（ユーザキャラクタ等）の位置、方向を設定して、仮想空間に配置する処理を行う。オブジェクトであるユーザ移動体の位置、方向等の情報は、例えばオブジェクト情報記憶部１７２に記憶される。ユーザ移動体は、例えば実空間でユーザの移動に追従して仮想空間（オブジェクト空間）において移動するオブジェクト（表示物）である。ユーザ移動体としては、ユーザに対応するアバター移動体（ユーザキャラクタ、仮想ユーザ）や、アバター移動体が搭乗する搭乗移動体や、アバター移動体が装着する外殻移動体などがある。外殻移動体は、アバター移動体（ゴースト）に重なるように配置されて仮想空間を移動する。外殻移動体は、アバター移動体を内包する移動体であり、ユーザの義体として表現されるものある。
【００５３】
なお、ゲーム処理に基づく画像が表示される表示部としてＨＭＤ２００を用いない場合等において、ユーザ移動体は、操作部１６０からの操作情報に基づいてゲーム空間（仮想空間）を移動するものであってもよい。例えば現実世界のユーザは、表示部の画像を見ながら操作部１６０を操作してゲームをプレイする。そしてユーザ移動体は、操作部１６０の操作に応じてゲーム空間を移動する。
【００５４】
移動体処理部１１３は、仮想空間を移動するユーザ移動体の移動処理を行う。例えば移動体処理部１１３は、ユーザに対応するユーザ移動体（アバター移動体、搭乗移動体、外殻移動体）を、情報取得部１１１により取得されたユーザ情報（位置情報、方向情報）に基づいて、仮想空間において移動させる処理を行う。例えば実空間でのユーザの移動に追従して移動するように、仮想空間でユーザ移動体を移動させる。例えばユーザ移動体の移動速度や移動加速度に基づいて、ユーザ移動体の位置等をフレーム毎に更新する処理を行って、ユーザ移動体を仮想空間（仮想フィールド）において移動させる。また移動体処理部１１３は、情報取得部１１１により取得されたユーザ情報（姿勢情報）に基づいて、ユーザ移動体を動作させる処理を行う。例えばモーションデータに基づいて、ユーザ移動体の姿勢等を変化させるモーション処理を行う。
【００５５】
ゲーム処理部１１５は、ユーザが身体に装着体５０を装着してプレイするゲームのゲーム処理を行う。例えばゲーム処理部１１５は、仮想空間でのゲームの処理を行う。例えばゲームを開始する処理、ゲームを進行させる処理、ゲームを終了する処理、或いはゲーム成績を演算する処理などのゲーム処理を行う。
【００５６】
表示処理部１２０は、ゲーム処理の結果に基づいて表示画像を生成する。例えばユーザが装着するＨＭＤ２００の表示画像を生成する。例えば仮想空間において仮想カメラから見える画像を、表示画像として生成する。例えば仮想カメラ制御部１１４は、ユーザの視点に対応する仮想カメラの制御処理を行う。例えば仮想カメラ制御部１１４は、ユーザの一人称視点として設定される仮想カメラの制御を行う。例えば仮想空間において移動する移動体（仮想プレーヤ等）の視点に対応する位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置（位置座標）や姿勢（回転軸回りでの回転角度）を制御する。そして表示処理部１２０は、ＨＭＤ２００等の表示画像（表示映像）として、仮想空間において仮想カメラ（ユーザ視点）から見える画像を生成する。例えば仮想空間であるオブジェクト空間において所与の視点から見える画像を生成する。生成される画像は例えば立体視用の画像である。
【００５７】
そして本実施形態では、ユーザが身体（胴体等）に装着する装着体５０には複数の振動部Ｖ１〜ＶＮが設けられている。装着体５０は、ユーザが身体（例えば首より下方の身体）に装着するものである。具体的には、後述するジャケット（ベスト）やジャンパーなどの上着、或いはズボンなどの衣服である。但し装着体は剣ゲームにおける鎧のようなものであってもよいし、自然体験ゲームにおける身体の装備品であってもよい。
【００５８】
そして制御部１１８は、装着体５０の複数の振動部Ｖ１〜ＶＮの振動制御を行う。例えばゲーム処理部１１５はゲーム処理を行い、制御部１１８は、ゲーム状況に応じて、装着体５０の複数の振動部Ｖ１〜ＶＮの振動制御を行う。
【００５９】
具体的には本実施形態では、装着体５０の前面部に、少なくとも１つの前面側振動部が設けられ、装着体５０の後面部に、少なくとも１つの後面側振動部が設けられる。前面部は、装着体５０を装着するユーザの例えば正面側であり、後面部は、装着体５０を装着するユーザの例えば背面側である。
【００６０】
そしてゲーム処理部１１５は、ユーザ移動体と他のオブジェクトとのヒット演算処理を行う。そしてヒット演算処理により、ヒット方向及びヒット位置の少なくとも一方を含むヒット情報を求める。このヒット演算処理はヒット演算処理部１１６が実行する。
【００６１】
ここで、他のオブジェクトは、ユーザ移動体にヒットする被ヒット物であり、仮想空間において表示されるオブジェクトであってもよいし、仮想空間において非表示の仮想的なオブジェクトであってもよい。他のオブジェクトは、弾や剣等の攻撃用のオブジェクトであってもよいし、自然体験シミュレーションにおける落石等のオブジェクトであってもよいし、仮想空間に配置される障害物、壁等の配置オブジェクトであってもよい。
【００６２】
またヒット方向（ヒットベクトル、攻撃方向、攻撃ベクトル）は、例えばユーザ移動体に他のオブジェクトがヒットしたときの他のオブジェクトの移動方向である。例えばヒット方向は、ユーザ移動体に向かって飛翔する他のオブジェクトの軌道に基づいて特定できる。ヒット位置は、ユーザ移動体に対して他のオブジェクトがヒットした位置（当たった位置、衝突位置）である。例えばヒット判定処理における交差判定処理での交差位置に基づいてヒット位置を特定できる。またヒット情報は、このようなヒット方向、ヒット位置以外に、ヒット速度、ヒットの強さ又はヒットの属性などの情報を含むことができる。
【００６３】
そして制御部１１８は、ユーザ移動体と他のオブジェクトとのヒットイベントが発生した場合に、ヒット情報に基づいて、装着体５０の振動部の振動制御を行う。即ちゲーム処理部１１５（ヒット演算処理部１１６）が、他のオブジェクトのヒット方向及びヒット位置の少なくとも一方を含むヒット情報を求め、制御部１１８は、このヒット情報に基づいて、装着体５０の振動部の振動制御を行う。このようにすれば、ヒット演算処理でのヒット情報（ヒット方向、ヒット位置等）を反映させた振動制御を実現できるようになる。
【００６４】
なお、ヒット情報を、ヒットイベントが発生した後に求め、求められたヒット情報に基づいて振動制御を行ってもよい。或いは、ヒットイベントが発生する前に、ヒット情報（予測ヒット情報）を事前に求めておいて、ヒットイベントが発生した場合に、事前に求められたヒット情報（予測ヒット情報）に基づいて、振動制御を行ってもよい。
【００６５】
そして制御部１１８は、ヒットイベントが発生した場合に、ヒット方向及びヒット位置の少なくとも一方を含むヒット情報に基づいて、前面側振動部及び後面側振動部の一方の振動部である第１の振動部を振動させた後、前面側振動部及び後面側振動部の他方の振動部である第２の振動部を振動させる振動制御を行う。
【００６６】
例えば、他のオブジェクトがユーザ移動体（装着体）の前面部にヒットした場合には、前面側振動部が第１の振動部となり、後面側振動部が第２の振動部となる。一方、他のオブジェクトがユーザ移動体（装着体）の後面部にヒットした場合には、後面側振動部が第１の振動部となり、前面側振動部が第２の振動部となる。
【００６７】
そして制御部１１８は、ヒット情報に基づいて、他のオブジェクトがユーザ移動体（装着体）の前面部にヒットしたと判断した場合には、前面側振動部である第１の振動部を振動させ、所与の振動間隔の期間経過後に、後面側振動部である第２の振動部を振動させる。一方、制御部１１８は、ヒット情報に基づいて、他のオブジェクトがユーザ移動体（装着体）の後面部にヒットしたと判断した場合には、後面側振動部である第１の振動部を振動させ、所与の振動間隔の期間経過後に、前面側振動部である第２の振動部を振動させる。このようにすれば、弾や剣等の他のオブジェクトが、あたかもユーザの身体を貫通したかのような仮想現実感をユーザに与えることが可能になる。
【００６８】
また制御部１１８は、第１の振動部として複数の第１の振動部が設けられる場合に、複数の第１の振動部の中から振動させる振動部を選択する処理を、ヒット情報に基づいて行う。また制御部１１８は、第２の振動部として複数の第２の振動部が設けられる場合に、複数の第２の振動部の中から振動させる振動部を選択する処理を、ヒット情報に基づいて行う。例えばヒット方向又はヒット位置などのヒット情報に基づいて、複数の第１の振動部の中から選択された振動部を振動させる。またヒット方向又はヒット位置などのヒット情報に基づいて、複数の第２の振動部の中から選択された振動部を振動させる。
【００６９】
例えば他のオブジェクトがユーザ移動体の前面部にヒットした場合には、前面側振動部が第１の振動部となり、後面側振動部が第２の振動部となる。従って、この場合には、複数の前面側振動部である複数の第１の振動部の中からヒット情報に基づき選択された振動部を振動させる。そして所与の振動間隔の期間経過後に、複数の後面側振動部である複数の第２の振動部の中からヒット情報に基づき選択された振動部を振動させる。
【００７０】
例えば他のオブジェクトがユーザ移動体の後面部にヒットした場合には、後面側振動部が第１の振動部となり、前面側振動部が第２の振動部となる。従って、この場合には、複数の後面側振動部である第１の振動部の中からヒット情報に基づき選択された振動部を振動させる。そして所与の振動間隔の期間経過後に、複数の前面側振動部である第２の振動部の中からヒット情報に基づき選択された振動部を振動させる。
【００７１】
このようにすれば、あたかもユーザの身体を貫通したかのような仮想現実感をユーザに与えることができる共に、ヒット演算処理でのヒット情報（ヒット方向、ヒット位置）を反映させた振動制御を実現できるようになる。
【００７２】
また制御部１１８は、第１の振動部を振動させる第１のタイミングから、第２の振動部を振動させる第２のタイミングまでの振動間隔の長さを変化させる。第１の振動部は、先に振動させる方の振動部であり、前面側振動部及び後面側振動部の一方の振動部である。第２の振動部は、後に振動させる方の振動部であり、前面側振動部及び後面側振動部の他方の振動部である。例えば制御部１１８は、ヒットイベント（広義には振動イベント）の種類又は内容に応じて、振動間隔の長さを変化させる。例えば、ピストルの弾がヒットするイベント、ライフルの弾がヒットするイベント、バズーカの弾がヒットするイベント、ミサイルがヒットするイベント、剣がヒットするイベントというように、ヒットイベントのカテゴリーがグループ分けされる場合に、どのカテゴリーのグループに属するかが、ヒットイベントの種類になる。またヒットイベントの内容は、例えばヒットの強さパラメータ、ヒットの攻撃力パラメータ、ヒットの速さパラメータ、又はヒットの属性パラメータなど、ヒット演算処理のパラメータにより表されるものである。例えば同じ種類（カテゴリーのグループ）のヒットイベント（ピストル、ライフル、バズーカ、ミサイル、剣）であっても、ヒット演算処理のパラメータが異なれば、ヒットイベントの内容が異なることになる。
【００７３】
またヒット情報はヒット速度を含み、制御部１１８は、ヒット速度に基づいて振動間隔の長さを変化させる。例えばヒット速度に応じて、振動間隔の長さを増加したり、減少させる。ヒット速度は、ヒットの速さパラメータであり、例えば、弾やミサイルの速度である。制御部１１８は、例えばヒットする弾、ミサイル等の速度が速い場合には、振動間隔を短くし、速度が遅い場合には、振動間隔を長くする。こうすることで、更にリアルな貫通表現等を実現できるようになる。
【００７４】
なお以上では、振動イベントが、ユーザ移動体と他のオブジェクトとのヒットイベントである場合について説明したが、本実施形態はこれに限定されず、振動イベントは、ヒットイベント以外のイベントであってもよい。振動イベントは、他のオブジェクトがユーザ移動体にヒットするイベントだけではなく、例えばユーザ移動体から離れた場所で発生する爆発イベント、ユーザ移動体の身体の状態（例えば震える、身体が破壊される等）から発生するイベントなどの種々のイベントを想定できる。そして制御部１１８は、第１の振動部を振動させる第１のタイミングから、第２の振動部を振動させる第２のタイミングまでの期間の長さを、ゲームにおいて発生する振動イベントの種類又は内容に応じて変化させてもよい。
【００７５】
また本実施形態では、表示処理部１２０は、ユーザが視界を覆うように装着するＨＭＤ２００の表示画像を生成している。このように、ユーザが視界を覆うようにＨＭＤ２００を装着する場合には、装着体の振動部を振動させるような体感装置は、ユーザの仮想現実感の向上のために有効である。
【００７６】
但し、表示処理部１２０は、ＨＭＤ２００以外の表示部の表示画像を生成してもよい。例えば家庭用ゲーム装置におけるテレビ、パーソナルコンピュータや業務用ゲーム装置におけるモニターディプレイなどの表示部の表示画像を生成してもよい。
【００７７】
また制御部１１８は、装着体５０の振動制御に応じた演出処理を行う。例えば装着体５０の振動部の振動制御に連動して、ゲーム音での効果音の演出処理を行ったり、ゲーム画像での演出画像の生成処理を行う。例えば振動させる振動部の個数、振動させる振動部の範囲、或いは振動のタイミングに合わせて、効果音を出力したり、演出画像を表示する。例えば振動部の個数が多いほど、或いは振動部の範囲が広いほど、振動に伴い出力される効果音の音量を大きくしたり、より演出効果の高い演出画像を表示する。また第１の振動部を第１のタイミングで振動させた後、第２のタイミングで第２の振動部を振動させる場合に、これらの第１、第２のタイミングにおいて、対応する効果音を出力したり、演出画像を表示する。例えば振動部の各振動制御に対して、効果音や演出画像を対応づけて記憶部１７０に記憶しておき、制御部１１８は、各振動制御に対応づけた効果音を出力したり、演出画像を表示する制御を行うようにする。このようにすることで、振動部の振動制御に連動した効果音の出力や演出画像の表示が可能になり、より演出効果の高い振動制御を実現できるようになる。
【００７８】
また本実施形態では情報取得部１１１は、例えば視界を覆うようにＨＭＤ２００を装着するユーザの位置情報、方向情報及び姿勢情報の少なくとも１つを含むユーザ情報を取得する。例えば情報取得部１１１は、ＨＭＤ２００のトラッキング情報などに基づいて、実空間でのユーザの位置情報、方向情報及び姿勢情報の少なくとも１つを含むユーザ情報（ユーザトラッキング情報）を取得する。位置情報は、実空間でのユーザの視点の位置情報であってもよく、方向情報は、実空間でのユーザの視線の方向情報であってもよい。位置情報、方向情報は、ユーザが実空間（現実世界）のフィールド（プレイフィールド、シミュレーションフィールド、プレイエリア）に位置する場合に、そのフィールドでの位置情報、方向情報（所与の位置を原点とする座標系での位置座標、各座標軸回りでの回転角度）であってもよい。姿勢情報は、ユーザの各姿勢（立ち姿勢、しゃがみ姿勢又は座り姿勢等）を特定したり、或いはユーザの各部位（胴体、頭、手又は足等）の位置、方向を特定するための情報である。例えば情報取得部１１１は、ＨＭＤ２００の位置情報、方向情報を、当該ＨＭＤ２００を装着するユーザの位置情報、方向情報として取得してもよい。
【００７９】
また仮想カメラ制御部１１４は、ユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御する。
【００８０】
例えば入力処理部１０２（入力受け付け部）は、ＨＭＤ２００を装着するユーザの視点情報のトラッキング情報を取得する。例えばユーザの視点位置、視線方向の少なくとも１つである視点情報のトラッキング情報（視点トラッキング情報）を取得する。このトラッキング情報は、例えばＨＭＤ２００のトラッキング処理を行うことで取得できる。なおトラッキング処理によりユーザの視点位置、視線方向を直接に取得するようにしてもよい。一例としては、トラッキング情報は、ユーザの初期視点位置からの視点位置の変化情報（視点位置の座標の変化値）、及び、ユーザの初期視線方向からの視線方向の変化情報（視線方向の回転軸回りでの回転角度の変化値）の少なくとも一方を含むことができる。このようなトラッキング情報が含む視点情報の変化情報に基づいて、ユーザの視点位置や視線方向（ユーザの頭部の位置、姿勢の情報）を特定できる。
【００８１】
そして仮想カメラ制御部１１４は、取得されたトラッキング情報（ユーザの視点位置及び視線方向の少なくとも一方の情報）に基づいて仮想カメラの視点位置、視線方向を変化させる。例えば、仮想カメラ制御部１１４は、実空間でのユーザの視点位置、視線方向の変化に応じて、仮想空間での仮想カメラの視点位置、視線方向（位置、姿勢）が変化するように、仮想カメラを設定する。このようにすることで、ユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御できる。
【００８２】
また本実施形態では、ユーザがプレイするゲームのゲーム処理として、仮想現実のシミュレーション処理を行う。仮想現実のシミュレーション処理は、実空間での事象を仮想空間で模擬するためのシミュレーション処理であり、当該事象をユーザに仮想体験させるための処理である。例えば実空間のユーザに対応するアバター移動体（仮想ユーザ）やその搭乗移動体などのユーザ移動体を、仮想空間で移動させたり、移動に伴う環境や周囲の変化をユーザに体感させるための処理を行う。
【００８３】
なお図１の本実施形態のシミュレーションシステムの処理は、施設に設置されるＰＣ等の処理装置、ユーザが装着する処理装置、或いはこれらの処理装置の分散処理などにより実現できる。或いは、本実施形態のシミュレーションシステムの処理を、サーバシステムと端末装置により実現してもよい。例えばサーバシステムと端末装置の分散処理などにより実現してもよい。
【００８４】
２．トラッキング処理
次にトラッキング処理の例について説明する。図２（Ａ）に本実施形態のシミュレーションシステムに用いられるＨＭＤ２００の一例を示す。図２（Ａ）に示すようにＨＭＤ２００には複数の受光素子２０１、２０２、２０３（フォトダイオード）が設けられている。受光素子２０１、２０２はＨＭＤ２００の前面部に設けられ、受光素子２０３はＨＭＤ２００の左側面に設けられている。またＨＭＤの右側面、上面等にも不図示の受光素子が設けられている。
【００８５】
またユーザＵＳは、現実世界の銃を模したガン型コントローラ２９０を所持しており、このガン型コントローラ２９０にも、受光素子２０４、２０５（フォトダイオード）が設けられている。これらの受光素子２０４、２０５を用いることで、ガン型コントローラ２９０の位置や方向を特定できる。またガン型コントローラ２９０には、銃の引き金のスイッチが設けられており、このスイッチを操作することで、仮想空間の移動体が銃を発砲する。なおガン型コントローラ２９０には少なくとも１つの受光素子が設けられていればよい。
【００８６】
またＨＭＤ２００には、ヘッドバンド２６０等が設けられており、ユーザＵＳは、より良い装着感で安定的に頭部にＨＭＤ２００を装着できるようになっている。また、ＨＭＤ２００には、不図示のヘッドホン端子が設けられており、このヘッドホン端子にヘッドホン２７０（音出力部１９２）を接続することで、例えば３次元音響（３次元オーディオ）の処理が施されたゲーム音を、ユーザＵＳは聴くことが可能になる。なお、ユーザＵＳの頭部の頷き動作や首振り動作をＨＭＤ２００のセンサ部２１０等により検出することで、ユーザＵＳの操作情報を入力できるようにしてもよい。
【００８７】
またユーザＵＳは、処理装置２５０を例えば背中に装着している。例えばユーザＵＳはジャケット（ベスト）を着ており、このジャケットの背面側に処理装置２５０が取り付けられている。処理装置２５０は例えばノート型ＰＣ等の情報処理装置により実現される。そしてこの処理装置２５０とＨＭＤ２００はケーブル２５２により接続されている。例えば処理装置２５０は、ＨＭＤ２００に表示される画像（ゲーム画像等）の生成処理を行い、生成された画像のデータがケーブル２５２を介してＨＭＤ２００に送られ、ＨＭＤ２００に表示される。この処理装置２５０は、このような画像の生成処理以外にも、本実施形態の各処理（情報取得処理、仮想空間設定処理、移動体処理、仮想カメラ制御処理、ゲーム処理、制御処理、表示処理又は音処理等）を行うことが可能になっている。なお、本実施形態の各処理を、施設に設置されたＰＣ等の処理装置（不図示）により実現したり、当該処理装置と、ユーザＵＳが装着する処理装置２５０の分散処理により実現してもよい。
【００８８】
図２（Ｂ）に示すように、ユーザＵＳの周辺には、ベースステーション２８０、２８４が設置されている。ベースステーション２８０には発光素子２８１、２８２が設けられ、ベースステーション２８４には発光素子２８５、２８６が設けられている。発光素子２８１、２８２、２８５、２８６は、例えばレーザー（赤外線レーザー等）を出射するＬＥＤにより実現される。ベースステーション２８０、２８４は、これら発光素子２８１、２８２、２８５、２８６を用いて、例えばレーザーを放射状に出射する。そして図２（Ａ）のＨＭＤ２００に設けられた受光素子２０１〜２０３等が、ベースステーション２８０、２８４からのレーザーを受光することで、ＨＭＤ２００のトラッキングが実現され、ユーザＵＳの頭の位置や向く方向（視点位置、視線方向）を検出できるようになる。またガン型コントローラ２９０に設けられる受光素子２０４、２０５が、ベースステーション２８０、２８４からのレーザーを受光することで、ガン型コントローラ２９０の位置及び方向の少なくとも一方を検出できるようになる。
【００８９】
図３（Ａ）にＨＭＤ２００の他の例を示す。図３（Ａ）では、ＨＭＤ２００に対して複数の発光素子２３１〜２３６が設けられている。これらの発光素子２３１〜２３６は例えばＬＥＤなどにより実現される。発光素子２３１〜２３４は、ＨＭＤ２００の前面部に設けられ、発光素子２３５や不図示の発光素子２３６は、背面側に設けられる。これらの発光素子２３１〜２３６は、例えば可視光の帯域の光を出射（発光）する。具体的には発光素子２３１〜２３６は、互いに異なる色の光を出射する。またユーザＵＳが所持するガン型コントローラ２９０にも、発光素子２３７、２３８（ＬＥＤ）が設けられている。なおガン型コントローラ２９０には少なくとも１つの発光素子が設けられていればよい。
【００９０】
そして図３（Ｂ）に示す撮像部１５０を、ユーザＵＳの周囲の少なくとも１つの場所（例えば前方側、或いは前方側及び後方側など）に設置し、この撮像部１５０により、ＨＭＤ２００の発光素子２３１〜２３６の光を撮像する。即ち、撮像部１５０の撮像画像には、これらの発光素子２３１〜２３６のスポット光が映る。そして、この撮像画像の画像処理を行うことで、ユーザＵＳの頭部（ＨＭＤ）のトラッキングを実現する。即ちユーザＵＳの頭部の３次元位置や向く方向（視点位置、視線方向）を検出する。
【００９１】
例えば図３（Ｂ）に示すように撮像部１５０には第１、第２のカメラ１５１、１５２が設けられており、これらの第１、第２のカメラ１５１、１５２の第１、第２の撮像画像を用いることで、ユーザＵＳの頭部の奥行き方向での位置等が検出可能になる。またＨＭＤ２００に設けられたモーションセンサのモーション検出情報に基づいて、ユーザＵＳの頭部の回転角度（視線）も検出可能になっている。従って、このようなＨＭＤ２００を用いることで、ユーザＵＳが、周囲の３６０度の全方向うちのどの方向を向いた場合にも、それに対応する仮想空間（仮想３次元空間）での画像（ユーザの視点に対応する仮想カメラから見える画像）を、ＨＭＤ２００の表示部２２０に表示することが可能になる。
【００９２】
また撮像部１５０により、ガン型コントローラ２９０の発光素子２３７、２３８の光を撮像する。即ち、撮像部１５０の撮像画像には、発光素子２３７、２３８のスポット光が映り、この撮像画像の画像処理を行うことで、ＨＭＤ２００の場合と同様に、ガン型コントローラ２９０の位置及び方向の少なくとも一方を検出できる。
【００９３】
なお、発光素子２３１〜２３８として、可視光ではなく赤外線のＬＥＤを用いてもよい。また、例えばデプスカメラ等を用いるなどの他の手法で、ユーザの頭部の位置や動き等を検出するようにしてもよい。
【００９４】
また、ユーザの視点位置、視線方向（ユーザの位置、方向）を検出するトラッキング処理の手法は、図２（Ａ）〜図３（Ｂ）で説明した手法には限定されない。例えばＨＭＤ２００に設けられたモーションセンサ等を用いて、ＨＭＤ２００の単体でトラッキング処理を実現してもよい。即ち、図２（Ｂ）のベースステーション２８０、２８４、図３（Ｂ）の撮像部１５０などの外部装置を設けることなく、トラッキング処理を実現する。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング手法により、ユーザの視点位置、視線方向などの視点情報等を検出してもよい。またガン型コントローラ２９０の位置、方向の検出を、ガン型コントローラ２９０に設けられたモーションセンサを用いて実現してもよい。
【００９５】
また図２（Ａ）、図３（Ａ）では、ユーザＵＳは、図１の装着体５０の一例であるジャケット５２を身体に装着している。後述の図９（Ａ）、図９（Ｂ）に示すようにジャケット５２（広義には装着体）には複数の振動部（ＶＦ１〜ＶＦ９、ＶＢ１〜ＶＢ９）が設けられている。
【００９６】
３．本実施形態の手法
次に本実施形態の手法について詳細に説明する。なお、以下では本実施形態の手法を、対戦ゲームに適用した場合を主に例にとり説明する。但し、本実施形態はこれに限定されず、種々のゲーム（ＲＰＧ、アクションゲーム、競争ゲーム、スポーツゲーム、ホラー体験ゲーム、電車や飛行機等の乗り物のシミュレーションゲーム、パズルゲーム、コミュニケーションゲーム、或いは音楽ゲーム等）に適用でき、ゲーム以外にも適用可能である。また以下では、ユーザ移動体が、ユーザのアバター移動体（仮想ユーザ、ユーザキャラクタ）である場合を例にとり説明するが、ユーザ移動体は、ユーザが搭乗する搭乗移動体（例えばロボット、戦車、戦闘機又は車等）などであってもよい。
【００９７】
３．１  ゲームの説明
まず本実施形態により実現されるゲームについて説明する。図４〜図６は本実施形態により実現されるガンシューティングゲーム（ＦＰＳゲーム）の説明図である。
【００９８】
図４は、本実施形態のシミュレーションシステムで用いられるフィールドの説明図である。このシミュレーションシステムでは、現実世界の施設等にフィールドＦＬ（プレイフィールド、プレイエリア、プレイ空間）が用意され、ユーザＵＳ１〜ＵＳ４はこのフィールドＦＬにおいて移動する。フィールドＦＬには、壁等により実現される仕切りＷＬが設けられている。
【００９９】
ユーザＵＳ１〜ＵＳ４は、ＨＭＤ１〜ＨＭＤ４を装着すると共にガン型コントローラＧＮ１〜ＧＮ４（広義にはコントローラ）を所持している。またユーザＵＳ１〜ＵＳ４は、図２（Ａ）で説明したような処理装置２５０（不図示）を例えば背中に装着している。これらのユーザＵＳ１〜ＵＳ４は、例えばチーム対戦ゲームのためにチーム（広義にはグループ）を組んでいる。ＨＭＤ１〜ＨＭＤ４には仮想空間での映像が映し出されており、ユーザＵＳ１〜ＵＳ４は、この映像を見ながら対戦ゲーム等のゲームをプレイする。例えばＨＭＤ１〜ＨＭＤ４が非透過型のＨＭＤである場合には、ユーザＵＳ１〜ＵＳ４の視界がＨＭＤ１〜ＨＭＤ４により覆われるため、現実世界の様子を見ることが困難になる。このため、例えばユーザＵＳ１の背後に位置するユーザＵＳ２がユーザＵＳ１にぶつかってしまうなどの問題が生じる。
【０１００】
ゲームプレイの開始前に、ユーザは、自身の分身となるユーザ移動体（アバター）を選択する。例えば図５（Ａ）は、実空間（現実世界）のユーザＵＳ１、ＵＳ２を示しており、ユーザＵＳ１、ＵＳ２は、ＨＭＤ１、ＨＭＤ２を装着すると共にガン型コントローラＧＮ１、ＧＮ２を所持している。
【０１０１】
またユーザＵＳ１、ＵＳ２は、後述の図９（Ａ）、図９（Ｂ）に示すようなジャケット５２（装着体）を身体に装着している。
【０１０２】
これに対して仮想空間においては、ユーザＵＳ１、ＵＳ２の分身となるユーザ移動体ＭＶ１、ＭＶ２が登場する。これらのユーザ移動体ＭＶ１、ＭＶ２は、ゲームのキャラクタの装備品や着衣を装着している。例えば義体と呼ばれる外殻移動体を装備している。またユーザ移動体ＭＶ１、ＭＶ２は、実空間のガン型コントローラＧＮ１、ＧＮ２に対応する銃ＧＶ１、ＧＶ２（銃の表示物）を所持している。実空間のユーザＵＳ１、ＵＳ２が、ガン型コントローラＧＮ１、ＧＮ２を上下左右に動かすと、仮想空間（仮想世界）のユーザ移動体ＭＶ１、ＭＶ２が、銃ＧＶ１、ＧＶ２を上下左右に動かすことになる。
【０１０３】
図６は本実施形態により生成されるゲーム画像の例である。このゲーム画像は各ユーザが装着するＨＭＤに表示される。例えば図６は、図５（Ａ）のユーザＵＳ１のＨＭＤ１に表示されるゲーム画像の例であり、ユーザＵＳ１のユーザ移動体ＭＶ１の手や所持する銃ＧＶ１（銃オブジェクト）が表示されている。また味方チームのユーザＵＳ２、ＵＳ３に対応するユーザ移動体ＭＶ２、ＭＶ３や、敵チームのユーザに対応する敵移動体ＭＢ１、ＭＢ２、ＭＢ３が表示されている。味方チームのユーザ移動体ＭＶ１、ＭＶ２、ＭＶ３は、所持する銃ＧＶ１、ＧＶ２、ＧＶ３により敵側に対して攻撃を行い、敵チームの敵移動体ＭＢ１、ＭＢ２、ＭＢ３は、所持する銃ＧＢ１、ＧＢ２、ＧＢ３により攻撃を行う。
【０１０４】
図７、図８は本実施形態により実現される剣ゲームの説明図である。図７に示すようにユーザＵＳは、視界を覆うようにＨＭＤ２００を装着する。そして例えば右手で剣型コントローラ１０を持ち、左手でコントローラ８０を持つ。具体的にはユーザＵＳは、右手で把持部２０（持ち手）を持つことで、剣のように剣型コントローラ１０を持つことになる。
【０１０５】
剣型コントローラ１０には、先端部と把持部２０との間に、反動及び振動の少なくとも一方を発生する発生機構３０が設けられている。また後端部と把持部２０の間に、振動を発生する発生機構６０が設けられている。また剣型コントローラ１０の先端部には、剣型コントローラ１０の位置情報や姿勢情報を検出するためのコントローラ７０が取り付けられている。
【０１０６】
発生機構３０は、錘３２と受け部３４を含む。そして発生機構３０は、錘３２を受け部３４に衝突させることで、反動（反力）を発生する。またこの反動の発生に伴い、振動も発生させることができる。反動は、例えば他に力や作用を及ぼしたときにその反作用で押し返されることである。例えば本実施形態では、ユーザが実空間において剣型コントローラ１０を持って、剣で振る動作を行う。そして仮想空間において、その剣に対応する剣のオブジェクトが敵移動体等の他のオブジェクトにヒットすると、そのヒットについての仮想的な反動が、発生機構３０により実現される。例えば剣がヒットした方向とは反対方向の反力が働いたかのようにユーザが感じることができる反動を、発生機構３０が発生する。これにより反力があたかも生じたかのようにユーザは感じることができ、剣のヒットによる仮想的な反動の発生を実現できる。
【０１０７】
なお振動を発生する発生機構６０は、トランスデューサーを有しており、発生機構３０の反動の発生に時間的に遅れて、発生機構６０による振動が発生する。また剣型コントローラ１０、コントローラ８０の位置情報や姿勢情報は、図２（Ａ）〜図３（Ｂ）等で説明したトラッキング処理などにより取得される。またユーザＵＳは後述の図９（Ａ）、図９（Ｂ）で説明するようなジャケット５２（装着体）を身体に装着している。
【０１０８】
図８はＨＭＤ２００の表示されるゲーム画像の例である。ゲーム画像には敵移動体ＯＢＥ（敵キャラクタ）や、敵移動体ＯＢＥが持つ剣ＳＷＥ、盾ＳＬＥや、背景などのオブジェクトが表示されている。またユーザＵＳに対応するユーザ移動体（ユーザキャラクタ、アバタ）の右の手ＨＲ、左の手ＨＬや、右の手ＨＲが持つ剣ＳＷや、左の手ＨＬが持つ盾ＳＬなどのオブジェクトも表示されている。
【０１０９】
例えば図７の実空間においてユーザＵＳが右の手で持っている剣型コントローラ１０を動かすと、その動きに連動して、図８の仮想空間での右の手ＨＲや剣ＳＷも動くようになる。また図７の実空間においてユーザＵＳが左の手で持っているコントローラ８０を動かすと、その動きに連動して、図８の仮想空間での左の手ＨＬや盾ＳＬも動くようになる。即ち、実空間の剣型コントローラ１０は仮想空間の剣ＳＷに対応し、実空間のコントローラ８０は仮想空間の盾ＳＬに対応することになる。
【０１１０】
図８は、一人称視点のゲーム画像であり、実空間のユーザＵＳに対応する仮想空間のユーザ移動体（ユーザキャラクタ）の視点での画像が表示されている。なお実際には、ＨＭＤ２００によりユーザＵＳに対して、視界の全周囲に亘って広がるＶＲ空間の画像が表示される。
【０１１１】
３．２  振動ジャケット、振動部
本実施形態のシミュレーションシステムでは、ユーザが身体に装着体５０を装着してゲームをプレイする。図５（Ａ）、図７では、装着体５０としてジャケット５２を着衣している。なお、以下では、装着体５０がジャケット５２である場合を例に説明するが、装着体５０はジャケット５２には限定されず、ジャケット以外のジャンパー等の上着や、ズボンや、鎧や、或いは胸、腰、腕等に装着するベルトなどの種々の身体の装着物を考えることができる。
【０１１２】
ジャケット５２には複数の振動部が設けられている。図９（Ａ）は、ジャケット５２の前面側振動部として振動部ＶＦ１〜ＶＦ９が設けられ、後面側振動部として振動部ＶＢ１〜ＶＢ９が設けられている。なお振動部の個数は任意であり、例えば前面側振動部として１〜８個又は１０個以上の振動部を設けたり、後面側振動部として１〜８個又は１０個以上の振動部を設けてもよい。またジャケット５２の前面部と後面部の一方にだけに複数の振動部を設けてもよいし、ジャケット５２の右側面や左側面などの側面に１又は複数の振動部を設けてもよい。また図９（Ａ）、図９（Ｂ）では、複数の振動部が格子状に配置されているが、振動部の配置態様はこれに限定されず、格子状ではない２次元マトリクス状の配置や、１次元マトリクス状の配置などの種々の配置態様を想定できる。
【０１１３】
図１０は振動部（ＶＦ１〜ＶＦ９、ＶＢ１〜ＶＢ９）の実現構成の一例である。図１０の振動部はソレノイド９０により実現されている。ソレノイド９０の一端側にはバネ９４の一端が取り付けられ、このバネ９４により、通常状態ではソレノイド９０は方向ＤＲ１側に引っ張られている。なおバネ９４の他端ＰＪは例えばジャケット５２の裏側面等に固定される。またソレノイド９０は取付具９６によりジャケット５２に取り付けられている。
【０１１４】
そしてソレノイド９０に対して駆動信号が入力されて通電が行われると、ソレノイド９０のプランジャー９２が方向ＤＲ２側に移動して、ユーザの体９８に当たる。これによりユーザは、弾や剣のヒット時における振動を体感できる。
【０１１５】
なお振動部は、ソレノイド以外にも、トランスデューサー、振動モータ、バネ＆振動モータ、空圧又は電動のシリンダ、リニアモータなどの種々の振動デバイスにより実現できる。
【０１１６】
トランスデューサーは、音信号を変換するものであり、ハイパワーのサブウーハーに相当するものである。例えば図１の制御部１１８が音ファイルの再生処理を行うと、それによる音信号がトランスデューサーに入力される。そして例えば音信号の低域成分に基づいて振動が発生する。振動モータは、例えば、偏芯した錘を回転させることで振動を発生する。具体的には駆動軸（ローター軸）の両端に偏心した錘を取り付けてモータ自体が揺れるようにする。バネ＆振動モータの組合わせでは、モータをロック解除に使用して振動を発生する。シリンダでは、空圧又は電動で図１０の方向ＤＲ１、ＤＲ２に沿ってシリンダのロッド部を直線運動させる。リニアモータでも、図１０の方向ＤＲ１、ＤＲ２に沿った直線運動を行わせる。
【０１１７】
本実施形態では、ジャケット（装着体）に振動部を装着して、ゲーム状況（ヒットイベント、振動イベント）に応じて振動部の振動制御を行う手法を採用している。この振動制御手法としては種々の実現態様を想定できる。
【０１１８】
例えばジャケット（ベスト）の前面部のみに１つの振動部を取り付けて、ゲームでのヒットイベント（広義には振動イベント）が発生した場合（制御部から被弾信号を受けた場合）に、当該振動部を振動させる。
【０１１９】
或いはジャケットの例えば前面部等に複数の振動部を取り付けて、ゲームでのヒットイベントが発生した場合に、複数の振動部のうち選択された振動部を振動させる。例えば、ヒット位置（攻撃を受けた位置）の情報に基づいて、複数の振動部のうちのどの振動部を振動させるかを選定して振動させる。
【０１２０】
或いは、ジャケットの前面部と後面部の各々に１個の振動部を取り付けて、ヒットイベントが発生した場合（制御部から被弾信号を受けた場合）に、前面部の振動部と後面部の振動部を時間差を設けて振動させて、弾が貫通したかのような体感をユーザに与える。
【０１２１】
或いは、ジャケットの前面部と後面部の各々に複数の振動部を取り付けて、ヒット位置（攻撃位置）の情報やヒット方向（攻撃方向）の情報に基づいて、まず前面部の振動部のうちの、どれを振動させるかを決定し、続いて、後面部の振動部のうちのどれを振動させるかを決定する。また前面部の振動部の振動と後面部の振動部の振動の発生間隔（振動間隔）を、どのくらいの間隔にするかを、ヒット速度（攻撃速度）に応じて決定する。例えば弾丸の攻撃ならばヒット速度は速く、剣が突き刺さる攻撃ならばヒット速度が遅いと判断する。また、剣の攻撃などでは、剣を突き刺した後、剣先を円運動させるような攻撃表現を実現してもよい。具体的には前面部で振動させる振動部は同じままにして、後面部において振動させる振動部を、剣先の円運動に応じて選択する。以上のように装着体に設けられた振動部を用いた振動制御手法としては種々の実施態様を考えることができる。
【０１２２】
３．３  振動制御の具体例
次に本実施形態の振動制御手法の具体例について説明する。図１１（Ａ）、図１１（Ｂ）は実空間を移動するユーザＵＳと仮想空間を移動するユーザ移動体ＭＶの関係を示す図である。
【０１２３】
図１１（Ａ）では、実空間においてユーザＵＳがＡ１に示すように移動している。ユーザＵＳは、視界を覆うようにＨＭＤ２００を装着し、手にはガン型コントローラＧＮを所持している。そして図４に示すような実空間のフィールドＦＬを移動する。すると、実空間において移動するユーザＵＳの位置情報が取得され、取得された位置情報に基づいて、図１１（Ｂ）のＡ２に示すように、ユーザ移動体ＭＶが仮想空間において移動する。また実空間でのユーザＵＳの方向情報が取得され、仮想空間のユーザ移動体ＭＶもその方向情報に対応する方向を向くようになる。また実空間でのユーザＵＳの姿勢情報が取得され、仮想空間のユーザ移動体ＭＶもその姿勢情報に対応する姿勢を取るようになる。例えば実空間においてユーザＵＳが、手や足を動かせば、仮想空間でのユーザ移動体ＭＶもそれに応じて手や足を動かすようになる。
【０１２４】
このように図１１（Ａ）、図１１（Ｂ）では、ユーザの位置、方向、姿勢の変化に応じて、ユーザに対応する仮想空間のユーザ移動体の位置、方向、姿勢も変化するようになる。そしてＨＭＤを用いるシステムでは、ユーザの視界の全周囲に亘って広大なＶＲ空間が広がるような画像がＨＭＤに表示されるため、ユーザの仮想現実感を格段に向上できる。
【０１２５】
一方、ガンシューティングゲームにおいては、図６に示すように敵からの攻撃がユーザ移動体にヒットするヒットイベント（被弾イベント）が発生する。この場合にＨＭＤの表示画像やヘッドホンへの出力音だけでは、このようなヒットイベントをユーザにリアルに体感させることは難しい。即ち、弾がヒットするような画像がＨＭＤに表示されたり、弾のヒットを表す効果音がヘッドホンから出力されても、弾のヒットによる振動等の体感がなければ、弾がヒットしたことの仮想現実感をユーザに対して十分に与えることができない。
【０１２６】
そこで本実施形態では、このような弾等のヒットイベント（振動イベント）などのゲーム状況に応じて、装着体に設けられた振動部を振動させる手法を採用している。
【０１２７】
例えば図１２（Ａ）では、仮想空間において、敵からの弾ＳＨ（広義には他のオブジェクト）がユーザ移動体ＭＶにヒットするヒットイベントが発生している。このようなヒットイベントが発生した場合に、図１２（Ｂ）に示すように、実空間において、ユーザＵＳが装着するジャケット５２の振動部ＶＦを振動させる。
【０１２８】
具体的には本実施形態では、仮想空間の設定処理が行われ、図１１（Ａ）、図１１（Ｂ）で説明したように、仮想空間を移動するユーザ移動体ＭＶの移動処理が行われる。またユーザＵＳが身体にジャケット５２（装着体）を装着してプレイするゲームのゲーム処理が行われ、図６、図８に示すように、ゲーム処理の結果に基づいて、表示画像が生成される。例えば本実施形態ではこの表示画像はＨＭＤに表示される。
【０１２９】
そして本実施形態では図９（Ａ）、図９（Ｂ）に示すように、装着体であるジャケット５２には複数の振動部（ＶＦ１〜ＶＦ９、ＶＢ１〜ＶＢ９）が設けられる。また図１２（Ａ）に示すようにユーザ移動体ＭＶと他のオブジェクトである弾ＳＨとのヒット演算処理が行われる。そしてユーザ移動体ＭＶと他のオブジェクトである弾ＳＨとのヒットイベントが発生した場合に、装着体であるジャケット５２の複数の振動部の振動制御が行われる。例えば複数の振動部の中から、弾ＳＨのヒット方向やヒット位置などに応じて選択された振動部を振動させる振動制御が行われる。
【０１３０】
このようにすることでユーザＵＳは、ＨＭＤに表示される仮想空間において、ユーザＵＳに対応するユーザ移動体ＭＶに対して弾ＳＨがヒットするイベントが発生すると、そのヒットイベントに応じて、実世界において自身が装着するジャケット５２において、ヒット方向やヒット位置に対応する振動部が振動するようになる。従って、ＨＭＤのリアルな映像による仮想現実感に加えて、ジャケット５２の振動部の振動による体感をユーザに与えることが可能になり、ユーザの仮想現実感を格段に向上することが可能になる。
【０１３１】
なお、本実施形態では、図６、図８のような画像を、ＨＭＤに表示するのではなく、家庭用ゲーム装置におけるテレビや、パーソナルコンピュータや業務用ゲーム装置におけるモニターディプレイなどの表示部に表示するような実施態様でもよい。この場合には、ユーザＵＳが身体に装着体を装着してプレイするゲームのゲーム処理が行われ、そのゲーム処理の結果に基づいて、表示画像が生成されて表示部に表示される。この場合に表示部には、ユーザの一人称視点での画像を表示してもよいし、ユーザ移動体（ユーザキャラクタ）を後方から見た三人称視点での画像を表示してもよい。そしてユーザがゲームのコントローラ（操作部）を操作することで、ゲーム空間においてユーザ移動体が移動するようになる。
【０１３２】
図１３（Ａ）、図１３（Ｂ）はヒット情報に基づく振動部の振動制御手法の説明図である。本実施形態では、ヒット方向及びヒット位置の少なくとも一方を含むヒット情報に基づいて、複数の振動部の中から振動させる振動部を選択する処理を行う。
【０１３３】
このようにすれば、ヒット演算処理により求められたヒット情報を反映させた振動部の振動制御を実現できるようになり、仮想空間でのゲーム状況に対応したリアルな振動制御を実現できるようになる。
【０１３４】
具体的には図１３（Ａ）〜図１４（Ｂ）では、ジャケット５２（装着体）の前面部に、前面側の振動部ＶＦ１〜ＶＦ９が設けられ、ジャケット５２の後面部に、後面側の振動部ＶＢ１〜ＶＢ９が設けられている。このときに本実施形態では、ヒットイベント（振動イベント）が発生した場合に、ヒット情報に基づいて、前面側の振動部及び後面側の振動部の一方の振動部である第１の振動部を振動させた後、前面側の振動部及び後面側の振動部の他方の振動部である第２の振動部を振動させる振動制御を行う。ここでヒット情報は、ヒット方向及びヒット位置の少なくとも一方を含む情報である。
【０１３５】
即ち本実施形態では、２つの振動部の振動間隔に時間差を設けることで、あたかも弾が自身の身体を貫通したかのような仮想現実をユーザに対して与えている。そして本実施形態では、このように時間差を設けた振動において、先に振動する方の振動部を第１の振動部とし、後に振動する方の振動部を第２の振動部としている。
【０１３６】
そして図１３（Ａ）、図１３（Ｂ）は、先に振動する第１の振動部が、前面側の振動部であり、後に振動する第２の振動部が、後面側の振動部である場合の例である。例えば図１３（Ａ）では、第１の振動部である前面側の振動部ＶＦ６を振動させた後、第２の振動部である後面側の振動部ＶＢ４を振動させている。図１３（Ｂ）では、第１の振動部である前面側の振動部ＶＦ２を振動させた後、第２の振動部である後面側の振動部ＶＢ５を振動させている。
【０１３７】
一方、図１４（Ａ）、図１４（Ｂ）は、先に振動する第１の振動部が、後面側の振動部であり、後に振動する第２の振動部が、前面側の振動部である場合の例である。例えば図１４（Ａ）では、第１の振動部である後面側の振動部ＶＢ４を振動させた後、第２の振動部である前面側の振動部ＶＦ６を振動させている。図１４（Ｂ）では、第１の振動部である後面側の振動部ＶＢ５を振動させた後、第２の振動部である前面側の振動部ＶＦ２を振動させている。
【０１３８】
このように本実施形態では、第１の振動部を振動させた後、第２の振動部を振動させるというように、２つの振動部の振動間隔に時間差を設ける振動制御を行うことで、あたかも弾が自身の身体を貫通したかのような仮想現実をユーザに対して与えている。これにより、弾等のヒットイベントの発生時にユーザに与える仮想現実感を大幅に向上できるようになる。
【０１３９】
そして、このような振動制御を行うためには、まず、図１２（Ａ）のユーザ移動体ＭＶの前面部に弾ＳＨがヒットしたのか、或いはユーザ移動体ＭＶの後面部に弾ＳＨがヒットしたのかを判定する必要がある。
【０１４０】
ユーザ移動体ＭＶの前面部に弾ＳＨがヒットした場合には、図１３（Ａ）、図１３（Ｂ）に示すように、第１の振動部である前面側の振動部ＶＦ６、ＶＦ２を振動させた後、第２の振動部である後面側の振動部ＶＢ４、ＶＢ５を振動させればよい。
【０１４１】
一方、ユーザ移動体ＭＶの後面部に弾ＳＨがヒットした場合には、図１４（Ａ）、図１４（Ｂ）に示すように、第１の振動部である後面側の振動部ＶＢ４、ＶＢ５を振動させた後、第２の振動部である前面側の振動部ＶＦ６、ＶＦ２を振動させればよい。
【０１４２】
そして、ユーザ移動体ＭＶの前面部に弾ＳＨがヒットしたのか、或いはユーザ移動体ＭＶの後面部に弾ＳＨがヒットしたのかの判定には、ヒット方向ＤＨＴ及びヒット位置ＰＨＴの少なくとも一方を含むヒット情報を用いることができる。
【０１４３】
例えば図１３（Ａ）、図１３（Ｂ）では、ヒット方向ＤＨＴに基づいて、弾ＳＨが、ユーザ移動体ＭＶの前方側から飛んで来たと判断できる。或いは、ヒット位置ＰＨＴに基づいて、弾ＳＨがユーザ移動体ＭＶの前面部にヒットしたと判断できる。従って、この場合には、図１３（Ａ）、図１３（Ｂ）に示すように、前面側の振動部ＶＦ６、ＶＦ２を振動させた後、後面側の振動部ＶＢ４、ＶＢ５を振動させる振動制御を行う。
【０１４４】
一方、図１４（Ａ）、図１４（Ｂ）では、ヒット方向ＤＨＴに基づいて、弾ＳＨが、ユーザ移動体ＭＶの後方側から飛んで来たと判断できる。或いは、ヒット位置ＰＨＴに基づいて、弾ＳＨがユーザ移動体ＭＶの後面部にヒットしたと判断できる。従って、この場合には、図１４（Ａ）、図１４（Ｂ）に示すように、後面側の振動部ＶＢ４、ＶＢ５を振動させた後、前面側の振動部ＶＦ６、ＶＦ２を振動させる振動制御を行う。
【０１４５】
また図１３（Ａ）〜図１４（Ｂ）に示すように、前面側や後面側に複数の振動部がある場合に、複数の振動部の中から振動させる振動部を選択する処理が必要になる。そこで本実施形態では、複数の振動部の中から振動させる振動部を選択する処理を、ヒット情報に基づいて行う。
【０１４６】
具体的には本実施形態では、先に振動させる第１の振動部として、複数の第１の振動部が設けられる場合に、複数の第１の振動部の中から振動させる振動部を選択する処理を、ヒット情報に基づいて行う。或いは、後に振動させる第２の振動部として、複数の第２の振動部が設けられる場合に、複数の第２の振動部の中から振動させる振動部を選択する処理を、ヒット情報に基づいて行う。
【０１４７】
例えば図１３（Ａ）、図１３（Ｂ）は、先に振動させる複数の第１の振動部が、前面側の振動部ＶＦ１〜ＶＦ９であり、後に振動させる複数の第２の振動部が、後面側の振動部ＶＢ１〜ＶＢ９である場合の例である。この場合に、複数の前面側の振動部ＶＦ１〜ＶＦ９（複数の第１の振動部）の中から振動させる振動部を選択する処理と、複数の後面側の振動部ＶＢ１〜ＶＢ９（複数の第２の振動部）の中から振動させる振動部を選択する処理を、ヒット情報であるヒット方向ＤＨＴに基づいて行う。
【０１４８】
例えば図１３（Ａ）では、図１２（Ａ）の弾ＳＨのヒット方向ＤＨＴは、ユーザ移動体ＭＶの左前側から右後ろ側への方向になっている。この場合には、このヒット方向ＤＨＴの軌道に沿った前面側の振動部ＶＦ６と後面側の振動部ＶＢ４を選択して、振動させる。例えば前面側の振動部ＶＦ６を振動させた後、所与の振動間隔の期間経過後に、後面側の振動部ＶＢ４を振動させる。これによりユーザは、あたかも本物の弾が自身の身体の左前側から右後ろ側へと貫通したかのような仮想現実を感じることができる。
【０１４９】
図１３（Ｂ）では、弾ＳＨのヒット方向ＤＨＴは、ユーザ移動体ＭＶの下方前側から上方後ろ側への方向になっている。この場合には、このヒット方向ＤＨＴの軌道に沿った前面側の振動部ＶＦ２と後面側の振動部ＶＢ５を選択して、振動させる。例えば前面側の振動部ＶＦ２を振動させた後、所与の振動間隔の期間経過後に、後面側の振動部ＶＢ５を振動させる。これによりユーザは、あたかも本物の弾が自身の身体の下方前側から上方後ろ側へと貫通したかのような仮想現実を感じることができる。
【０１５０】
一方、図１４（Ａ）、図１４（Ｂ）は、先に振動させる複数の第１の振動部が、後面側の振動部ＶＢ１〜ＶＢ９であり、後に振動させる複数の第２の振動部が、前面側の振動部ＶＦ１〜ＶＦ９である場合の例である。この場合に、複数の後面側の振動部ＶＢ１〜ＶＢ９（複数の第１の振動部）の中から振動させる振動部を選択する処理と、複数の前面側の振動部ＶＦ１〜ＶＦ９（複数の第２の振動部）の中から振動させる振動部を選択する処理と、ヒット情報であるヒット方向ＤＨＴに基づいて行う。
【０１５１】
例えば図１４（Ａ）では、弾ＳＨのヒット方向ＤＨＴは、ユーザ移動体ＭＶの右後ろ側から左前側への方向になっている。この場合には、このヒット方向ＤＨＴの軌道に沿った後面側の振動部ＶＢ４と前面側の振動部ＶＦ６を選択して、振動させる。例えば後面側の振動部ＶＢ４を振動させた後、所与の振動間隔の期間経過後に、前面側の振動部ＶＦ６を振動させる。これによりユーザは、あたかも本物の弾が自身の身体の右後ろ側から左前側へと貫通したかのような仮想現実を感じることができる。
【０１５２】
図１４（Ｂ）では、弾ＳＨのヒット方向ＤＨＴは、ユーザ移動体ＭＶの上方後ろ側から下方前側への方向になっている。この場合には、このヒット方向ＤＨＴの軌道に沿った後面側の振動部ＶＢ５と前面側の振動部ＶＦ２を選択して、振動させる。例えば後面側の振動部ＶＢ５を振動させた後、所与の振動間隔の期間経過後に、前面側の振動部ＶＦ２を振動させる。これによりユーザは、あたかも本物の弾が自身の身体の上方後ろ側から下方前側へと貫通したかのような仮想現実を感じることができる。
【０１５３】
このように図１３（Ａ）〜図１４（Ｂ）では、所定個数（例えば９個）の振動部が、ユーザの前面部と後面部の各々に格子状に配置され、ヒット情報に基づき適切な振動部が選択されて振動する。従って、ヒット方向等のヒット情報を反映させた好適な仮想現実感をユーザに与えることが可能になる。
【０１５４】
なお図１３（Ａ）〜図１４（Ｂ）では、ヒット方向ＤＨＴに基づいて振動部の選択処理を行っているが、ヒット位置ＰＨＴに基づいて振動部の選択処理を行ってもよい。
【０１５５】
例えば図１２（Ａ）において、弾ＳＨがユーザ移動体ＭＶの身体の中央部にヒットしたと判定されたとする。この場合には図１５（Ａ）に示すように、身体の中央部のヒット位置ＰＨＴに対応する前面側の振動部ＶＦ５と後面側の振動部ＶＢ５を振動させる振動制御を行う。これによりユーザは、あたかも本物の弾が自身の身体の前側の中央部から後ろ側の中央部へと貫通したかのような仮想現実を感じることができる。
【０１５６】
一方、弾ＳＨがユーザ移動体ＭＶの身体の中央部の下側にヒットしたと判定されたとする。この場合には図１５（Ｂ）に示すように、身体の中央部の下側のヒット位置ＰＨＴに対応する前面側の振動部ＶＦ２と後面側の振動部ＶＢ２を振動させる振動制御を行う。これによりユーザは、あたかも本物の弾が自身の身体の前側の中央部下側から後ろ側の中央部下側へと貫通したかのような仮想現実を感じることができる。弾のヒット位置ＰＨＴが中央部の右側、左側、上側、斜め側等である場合にも、同様の振動制御を行うことができる。また、ヒット情報のヒット方向ＤＨＴとヒット位置ＰＨＴの両方を用いて、前面側の振動部と後面側の振動部を振動させる振動制御を行ってもよい。このようにすれば、弾が身体を貫通する仮想現実の体感処理を、より正確に実現する振動制御が可能になる。
【０１５７】
また弾のヒット方向ＤＨＴやヒット位置ＰＨＴなどのヒット情報はユーザ移動体ＭＶを標的として攻撃を行う敵の攻撃方向等の演算処理を行うことで特定できる。例えば図２（Ａ）〜図３（Ｂ）で説明したトラッキング手法などにより、敵のユーザが所持するガン型コントローラの位置情報、方向情報を取得し、これらの位置情報、方向情報に基づいて攻撃方向を求めるヒット演算処理を行い、ヒット方向ＤＨＴやヒット位置ＰＨＴを特定する。この場合に、例えばユーザ移動体と敵移動体の相対的な位置関係や方向関係を反映させて、ヒット方向ＤＨＴやヒット位置ＰＨＴを特定すればよい。
【０１５８】
また本実施形態では、第１の振動部を振動させる第１のタイミングから、第２の振動部を振動させる第２のタイミングまでの振動間隔の長さを、ヒットイベント（振動イベント）の種類又は内容に応じて変化させる。具体的には振動間隔の長さを、ヒット情報に含まれるヒット速度に基づいて変化させる。
【０１５９】
ここで、第１の振動部は、先に振動させる方の振動部であり、第２の振動部は、後に振動させる方の振動部である。前述したように図１３（Ａ）、図１３（Ｂ）では、前面側の振動部（ＶＦ１〜ＶＦ９）が第１の振動部になり、後面側の振動部（ＶＢ１〜ＶＢ９）が第２の振動部になる。一方、図１４（Ａ）、図１４（Ｂ）では、後面側の振動部（ＶＢ１〜ＶＢ９）が第１の振動部になり、前面側の振動部（ＶＦ１〜ＶＦ９）が第２の振動部になる。
【０１６０】
例えば図１６（Ａ）では、第１の振動部である前面側の振動部ＶＦがタイミングＴ１（第１のタイミング）で振動している。そしてタイミングＴ１から振動間隔ＴＶの期間経過後のタイミングＴ２（第２のタイミング）で、第２の振動部である後面側の振動部ＶＢが振動している。このような振動間隔ＴＶによる振動の時間差を設けることで、弾が貫通しているかのように感じる仮想現実感を実現できる。なお、前述したように第１の振動部が後面側の振動部であり、第２の振動部が前面側の振動部であってもよい。
【０１６１】
そして図１６（Ｂ）では、弾のヒット速度が遅いため、振動部ＶＦを振動させるタイミングＴ１から振動部ＶＢを振動させるタイミングＴ２までの振動間隔ＴＶを長くする。一方、図１６（Ｃ）では、弾のヒット速度が速いため、振動部ＶＦを振動させるタイミングＴ１から振動部ＶＢを振動させるタイミングＴ２までの振動間隔ＴＶを短くする。このようにすれば、速度が遅い弾については、振動間隔ＴＶが長くなることで、長い時間間隔で弾が身体を貫通するような仮想現実感をユーザに与えることができる。一方、速度が速い弾については、振動間隔ＴＶが短くなることで、短い時間間隔で弾が身体を貫通するような仮想現実感をユーザが与えることができる。従って、弾のヒット速度を反映させた弾の貫通表現を実現でき、ユーザの仮想現実感を更に向上できる。
【０１６２】
このように本実施形態では、振動間隔ＴＶの長さを、ヒット速度に基づき変化させている。別の言い方をすれば、振動間隔ＴＶの長さを、ヒットイベント（振動イベント）の種類や内容に応じて変化させている。例えばヒット速度が速い武器の攻撃が行われる第１の種類のイベントでは、振動間隔ＴＶを短くする。一方、ヒット速度が遅い武器の攻撃が行われる第２の種類のイベントでは、振動間隔ＴＶを長くする。即ち、振動間隔ＴＶの長さを、ヒットイベントの種類に応じて変化させる。或いは、同じ武器を使用する同じ種類のイベントにおいて、例えば敵の攻撃速度のパラメータが高くなることで、当該武器による攻撃のヒット速度が速くなる場合には、振動間隔ＴＶを短くする。また敵の攻撃速度のパラメータが低くなることで、当該武器による攻撃のヒット速度が遅くなる場合には、振動間隔ＴＶを長くする。即ち、振動間隔ＴＶの長さを、ヒットイベントの内容に応じて変化させる。
【０１６３】
以上のようにすることで、ヒットイベントの種類や内容に応じた長さの振動間隔で、振動部が振動するようになるため、ヒットイベントの種類や内容を反映させた振動制御を実現できるようになる。
【０１６４】
以上のように本実施形態では、ジャケット５２等の装着体に対して複数の振動部が設けられ、ゲーム処理に基づく画像が表示部に表示されると共に、ゲーム状況に応じて、装着体の複数の振動部の振動制御が行われる。このようにすれば、表示部に表示されるゲーム画像に連動させた振動部の振動制御が可能になり、ゲーム処理の結果に基づく表示画像を生成しながら、ユーザがプレイするゲームの状況を反映させた装着体の振動部の振動制御を実現できる。
【０１６５】
特に表示部としてＨＭＤを用いる場合には、ユーザの視界はＨＭＤにより覆われるため、装着体の複数の振動部を用いた振動制御は、ユーザの仮想現実感の向上のために有効である。例えばＨＭＤにより視界が覆われることで、ユーザは、装着体での複数の振動部の振動を、あたかも本物の弾等が自身に対してヒットしたかのように感じるようになり、ゲームの仮想現実感を大幅に向上できる。例えば図１３（Ａ）〜図１５（Ｂ）に示すように、ヒット方向やヒット位置等のヒット情報を反映させた振動制御を行えば、そのヒット方向やヒット位置等で弾等が実際にヒットしたかのような仮想現実感をユーザに与えることができる。また図１６（Ａ）〜図１６（Ｃ）に示すように振動間隔による振動の時間差を設けることで、ヒットした弾等が自身の身体を貫通したかのように感じる仮想現実感を実現できる。
【０１６６】
なお本実施形態でのヒットイベントとしては、図１７（Ａ）に示すような弾ＳＨ等の攻撃物がユーザ移動体ＭＶにヒットするイベントが考えられるが、図１７（Ｂ）に示すように敵移動体ＯＢＥの剣ＳＷＥ等の武器がユーザ移動体にヒットするイベントであってもよい。このようにすれば図７、図８に示すような剣ゲームにおいて、ユーザが敵を斬ったという感触については、剣型コントローラ１０の反動等の発生機構３０により実現しながら、敵から斬られたことによる衝撃の感触については、ジャケット５２等の装着体の振動部の振動制御により実現できるようになる。
【０１６７】
またヒットイベントにおいてユーザ移動体ＭＶにヒットするオブジェクトは、図１７（Ａ）、図１７（Ｂ）のような弾ＳＨ等の攻撃物や剣ＳＷＥ等の武器には限定されない。例えば図１７（Ｃ）では、岩山等が崩れたことによる岩ＲＫのオブジェクトがユーザ移動体ＭＶにヒットしており、このような岩ＲＫのヒットの際の衝撃の感覚についても、装着体の振動部の振動制御により実現できる。即ち本実施形態の手法は、弾や武器を用いた対戦ゲームのみならず、岩などの物体がぶつかって来るような自然体験のシミュレーションゲーム等にも適用できる。
【０１６８】
また本実施形態の手法は、他のオブジェクトがヒットするヒットイベント以外の振動イベントにも適用可能である。例えば図１７（Ｄ）では、ユーザ移動体ＭＶの近くにおいて爆発ＥＸＰが発生しており、この爆発ＥＸＰによる振動イベントが発生した場合に、ユーザの装着体の振動部を振動させる振動制御を行ってもよい。このようにすれば、爆発ＥＸＰによる爆風等をユーザに体感させることができ、本当に爆発が起きたかのような仮想現実感をユーザに与えることが可能になる。
【０１６９】
また本実施形態では、振動部の振動制御に応じた演出処理を行ってもよい。例えば振動部の振動制御に連動して、ユーザに出力される効果音の演出処理を行ったり、ゲーム画像での演出画像の生成処理を行う。例えば図１７（Ａ）、図１７（Ｂ）で弾ＳＨや剣ＳＷＥがヒットした場合に、そのヒットに連動した効果音を出力したり、エフェクト画像を生成する。また図１７（Ｃ）のように岩ＲＫがヒットするイベントでは、岩が崩れる際の効果音やエフェクト画像を生成する。また図１７（Ｄ）に示すように爆発ＥＸＰの振動イベントが発生した場合には、爆発ＥＸＰに対応する効果音やエフェクト画像を生成する。そして例えば振動させる振動部の個数や範囲、或いは振動のタイミングに合わせて、効果音を出力したり、演出画像を表示する。このようにすることで、振動部の振動制御に連動した効果音の出力や演出画像の表示が可能になり、ユーザの仮想現実感を更に高めることが可能になる。
【０１７０】
４．詳細な処理
次に本実施形態の詳細な処理例について図１８、図１９のフローチャートを用いて説明する。
【０１７１】
図１８は本実施形態の全体的な処理例を示すフローチャートである。まずユーザの位置情報、方向情報及び姿勢情報の少なくとも１つを含むユーザ情報を取得する（ステップＳ１）。例えばＨＭＤの位置情報、方向情報を取得することで、ユーザの位置情報、方向情報等を取得できる。そして、ユーザに対応するユーザ移動体の移動処理を行う（ステップＳ２）。例えば、取得された実空間でのユーザの位置情報や方向情報に基づいて、ユーザ移動体を仮想空間で移動させる処理を行う。またユーザの姿勢情報が取得される場合には、取得された姿勢情報に基づいて、ユーザ移動体を動作させるモーション処理を行う。
【０１７２】
次に、ヒット演算処理等のゲーム処理を実行する（ステップＳ３）。例えば他のオブジェクトがユーザ移動体にヒットしたか否かを判定するヒット演算処理や、ゲームを進行させるゲーム進行処理などを実行する。そして装着体の振動部の振動制御処理を行う（ステップＳ４）。例えばヒット演算処理等の結果に基づいて、ゲーム状況に応じた振動部の振動制御処理を行う。そしてゲーム処理の結果に基づいてＨＭＤの表示画像を生成して、ＨＭＤに表示する（ステップＳ５）。
【０１７３】
図１９はヒット情報に基づく振動制御処理のフローチャートである。まずユーザ移動体に弾等のオブジェクトがヒットしたか否かを判定する（ステップＳ１１）。このヒット判定処理は、例えばユーザ移動体のヒットボリュームと、弾等のオブジェクト又は軌道との交差判定処理などにより実現できる。
【０１７４】
弾等のオブジェクトがユーザ移動体にヒットした場合には、ヒット方向、ヒット位置及びヒット速度の少なくとも１つを含むヒット情報を取得する（ステップＳ１２）。例えばオブジェクトがユーザ移動体にヒットした際のオブジェクトの移動方向、移動位置、移動速度を、各々、ヒット方向、ヒット位置、ヒット速度として取得できる。そしてヒット情報のヒット方向やヒット位置に基づいて、前面側の振動部と後面側の振動部の一方の振動部である第１の振動部と、他方の振動部である第２の振動部を選択する（ステップＳ１３）。第１の振動部は、先に振動させる方の振動部であり、前面側の振動部と後面側の振動部の一方の振動部である。第２の振動部は、後に振動させる方の振動部であり、前面側の振動部と後面側の振動部の他方の振動部である。そして図１３（Ａ）〜図１５（Ｂ）で説明した手法により、複数の第１の振動部の中から振動させる振動部を選択する処理と、複数の第２の振動部の中から振動させる振動部を選択する処理を行う。これらの振動部の選択処理は、ヒット情報のヒット方向やヒット位置に基づいて行う。
【０１７５】
次にヒット情報のヒット速度に基づいて、第１の振動部と第２の振動部の振動間隔を設定する（ステップＳ１４）。例えば図１６（Ａ）〜図１６（Ｃ）で説明したように、ヒット速度に応じて、第１の振動部と第２の振動部の振動間隔を長くしたり、短くする。そして第１の振動部と第２の振動部を、設定された振動間隔で振動させる（ステップＳ１５）。即ち図１３（Ａ）〜図１５（Ｂ）で選択された第１の振動部（前面側振動部、後面側振動部の一方）と第２の振動部（前面側振動部、後面側振動部の他方）を、図１６（Ａ）〜図１６（Ｃ）に示すような振動間隔で振動させる。
【０１７６】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（装着体、他のオブジェクト、振動イベント等）と共に記載された用語（ジャケット、弾・剣、ヒットイベント等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またユーザ情報の取得処理、仮想空間の設定処理、移動体の移動処理、ゲーム処理、ヒット演算処理、振動制御処理、表示処理等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。
【符号の説明】
【０１７７】
Ｖ１〜ＶＮ  振動部、ＶＦ、ＶＦ１〜ＶＦ９  前面側の振動部、
ＶＢ、ＶＢ１〜ＶＢ９  後面側の振動部、
ＤＨＴ  ヒット方向、ＰＨＴ  ヒット位置、ＴＶ  振動間隔、
ＵＳ、ＵＳ１〜ＵＳ４  ユーザ、ＧＮ、ＧＮ１〜ＧＮ４  ガン型コントローラ、
ＨＭＤ、ＨＭＤ１〜ＨＭＤ４  頭部装着型表示装置、
ＭＶ、ＭＶ１〜ＭＶ３、ＭＢ１〜ＭＢ３  ユーザ移動体、ＦＬ  フィールド、
ＧＶ１〜ＧＶ３、ＧＢ１〜ＧＢ３  銃、
ＳＨ  弾、ＳＷＥ  剣、ＲＫ  岩、ＥＸＰ  爆発、
１０  剣型コントローラ、２０  把持部、３０  発生機構、３２  錘、
３４  受け部、５０  装着体、５２  ジャケット、
６０  発生機構、７０、８０  コントローラ、
９０  ソレノイド、９２  プランジャー、９４  バネ、９６  取付具、９８  体、
１００  処理部、１０２  入力処理部、１１０  演算処理部、１１１  情報取得部、
１１２  仮想空間設定部、１１３  移動体処理部、１１４  仮想カメラ制御部、
１１５  ゲーム処理部、１１６  ヒット演算処理部、１１８  制御部、
１１８  制御部、１２０  表示処理部、１３０  音処理部、１４０  出力処理部、
１５０  撮像部、１５１、１５２  カメラ、１６０  操作部、
１７０  記憶部、１７２  オブジェクト情報記憶部、１７８  描画バッファ、
１８０  情報記憶媒体、１９２  音出力部、１９４  Ｉ／Ｆ部、
１９５  携帯型情報記憶媒体、１９６  通信部、
２００  ＨＭＤ（頭部装着型表示装置）、２０１〜２０３  受光素子、２１０  センサ部、
２２０  表示部、２３１〜２３６  発光素子、２４０  処理部、
２８０、２８４  ベースステーション、２８１、２８２、２８５、２８６  発光素子
【図１】
2018171320.tif 000003
【図２】
2018171320.tif 000004
【図３】
2018171320.tif 000005
【図４】
2018171320.tif 000006
【図５】
2018171320.tif 000007
【図６】
2018171320.tif 000008
【図７】
2018171320.tif 000009
【図８】
2018171320.tif 000010
【図９】
2018171320.tif 000011
【図１０】
2018171320.tif 000012
【図１１】
2018171320.tif 000013
【図１２】
2018171320.tif 000014
【図１３】
2018171320.tif 000015
【図１４】
2018171320.tif 000016
【図１５】
2018171320.tif 000017
【図１６】
2018171320.tif 000018
【図１７】
2018171320.tif 000019
【図１８】
2018171320.tif 000020
【図１９】
2018171320.tif 000021