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