(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0039】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0040】
1.シミュレーションシステム
図1は、本実施形態のシミュレーションシステム(シミュレータ、ゲームシステム、画像生成システム)の構成例を示すブロック図である。本実施形態のシミュレーションシステムは例えばバーチャルリアリティ(VR)をシミュレートするシステムであり、ゲームコンテンツを提供するゲームシステム、運転シミュレータやスポーツ競技シミュレータなどのリアルタイムシミュレーションシステム、SNSのサービスを提供するシステム、映像等のコンテンツを提供するコンテンツ提供システム、或いは遠隔作業を実現するオペレーティングシステムなどの種々のシステムに適用可能である。なお、本実施形態のシミュレーションシステムは
図1の構成に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0041】
可動筐体30(広義には筐体)は、ユーザのプレイ位置を変化させる筐体である。この可動筐体30は、例えばアーケード筐体などと呼ばれるものであり、シミュレーションシステムの装置の外殻となるものであり、箱状である必要はない。可動筐体30は、車ゲームやロボットゲームや飛行機ゲームなどにおけるコックピット筐体(体感筐体)であってもよいし、その他の形態の筐体であってもよい。可動筐体30は、シミュレーションシステムの本体部分であり、シミュレーションシステムを実現するための種々の機器、構造物が設けられる。可動筐体30には、少なくともプレイ位置が設定されている。可動筐体30の構成例については後述の
図4により詳細に説明する。
【0042】
操作部160は、ユーザ(プレーヤ)が種々の操作情報(入力情報)を入力するためのものである。操作部160は、例えばハンドル、アクセルペダル、ブレーキペダル、レバー、操作ボタン、方向指示キー又は音声入力装置等の種々の操作デバイスにより実現できる。例えば後述の
図4の可動筐体30では、ハンドル50、アクセルペダル52、ブレーキペダル54(不図示)により操作部160が実現される。
【0043】
記憶部170は各種の情報を記憶する。記憶部170は、処理部100や通信部196などのワーク領域として機能する。ゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。記憶部170の機能は、半導体メモリ(DRAM、VRAM)、HDD(ハードディスクドライブ)、SSD、光ディスク装置などにより実現できる。記憶部170は、オブジェクト情報記憶部172、初期設定情報記憶部174、描画バッファ178を含む。
【0044】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、BD、CD)、HDD、或いは半導体メモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(入力装置、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0045】
HMD200(頭部装着型表示装置)は、ユーザの頭部に装着されて、ユーザの眼前に画像を表示する装置である。HMD200は非透過型であることが望ましいが、透過型であってもよい。またHMD200は、いわゆるメガネタイプのHMDであってもよい。
【0046】
HMD200は、センサ部210、表示部220、処理部240を含む。なおHMD200に発光素子を設ける変形実施も可能である。センサ部210は、例えばヘッドトラッキングなどのトラッキング処理を実現するためものである。例えばセンサ部210を用いたトラッキング処理により、HMD200の位置、方向を特定する。HMD200の位置、方向が特定されることで、ユーザの視点位置、視線方向を特定できる。
【0047】
トラッキング方式としては種々の方式を採用できる。トラッキング方式の一例である第1のトラッキング方式では、後述の
図2(A)、
図2(B)で詳細に説明するように、センサ部210として複数の受光素子(フォトダイオード等)を設ける。そして外部に設けられた発光素子(LED等)からの光(レーザー等)をこれらの複数の受光素子により受光することで、現実世界の3次元空間でのHMD200(ユーザの頭部)の位置、方向を特定する。第2のトラッキング方式では、後述の
図3(A)、
図3(B)で詳細に説明するように、複数の発光素子(LED)をHMD200に設ける。そして、これらの複数の発光素子からの光を、外部に設けられた撮像部で撮像することで、HMD200の位置、方向を特定する。第3のトラッキング方式では、センサ部210としてモーションセンサを設け、このモーションセンサを用いてHMD200の位置、方向を特定する。モーションセンサは例えば加速度センサやジャイロセンサなどにより実現できる。例えば3軸の加速度センサと3軸のジャイロセンサを用いた6軸のモーションセンサを用いることで、現実世界の3次元空間でのHMD200の位置、方向を特定できる。なお、第1のトラッキング方式と第2のトラッキング方式の組合わせ、或いは第1のトラッキング方式と第3のトラッキング方式の組合わせなどにより、HMD200の位置、方向を特定してもよい。またHMD200の位置、方向を特定することでユーザの視点位置、視線方向を特定するのではなく、ユーザの視点位置、視線方向を直接に特定するトラッキング処理を採用してもよい。
【0048】
HMD200の表示部220は例えば有機ELディスプレイ(OEL)や液晶ディスプレイ(LCD)などにより実現できる。例えばHMD200の表示部220には、ユーザの左眼の前に設定される第1のディスプレイ又は第1の表示領域と、右眼の前に設定される第2のディスプレイ又は第2の表示領域が設けられており、立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左眼用画像と右眼用画像を生成し、第1のディスプレイに左眼用画像を表示し、第2のディスプレイに右眼用画像を表示する。或いは1つのディスプレイの第1の表示領域に左眼用画像を表示し、第2の表示領域に右眼用画像を表示する。またHMD200には左眼用、右眼用の2つの接眼レンズ(魚眼レンズ)が設けられており、これによりユーザの視界の全周囲に亘って広がるVR空間が表現される。そして接眼レンズ等の光学系で生じる歪みを補正するための補正処理が、左眼用画像、右眼用画像に対して行われる。この補正処理は表示処理部120が行う。
【0049】
HMD200の処理部240は、HMD200において必要な各種の処理を行う。例えば処理部240は、センサ部210の制御処理や表示部220の表示制御処理などを行う。また処理部240が、3次元音響(立体音響)処理を行って、3次元的な音の方向や距離や広がりの再現を実現してもよい。
【0050】
音出力部192は、本実施形態により生成された音を出力するものであり、例えばスピーカ又はヘッドホン等により実現できる。
【0051】
I/F(インターフェース)部194は、携帯型情報記憶媒体195とのインターフェース処理を行うものであり、その機能はI/F処理用のASICなどにより実現できる。携帯型情報記憶媒体195は、ユーザが各種の情報を保存するためのものであり、電源が非供給になった場合にもこれらの情報の記憶を保持する記憶装置である。携帯型情報記憶媒体195は、ICカード(メモリカード)、USBメモリ、或いは磁気カードなどにより実現できる。
【0052】
通信部196は、有線や無線のネットワークを介して外部(他の装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【0053】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0054】
処理部100(プロセッサ)は、操作部160からの操作情報や、HMD200でのトラッキング情報(HMDの位置及び方向の少なくとも一方の情報。視点位置及び視線方向の少なくとも一方の情報)や、プログラムなどに基づいて、ゲーム処理(シミュレーション処理)、仮想空間設定処理、移動体処理、仮想カメラ制御処理、表示処理、或いは音処理などを行う。
【0055】
処理部100の各部が行う本実施形態の各処理(各機能)はプロセッサ(ハードウェアを含むプロセッサ)により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリにより実現できる。プロセッサは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。例えば、プロセッサはハードウェアを含み、そのハードウェアは、デジタル信号を処理する回路及びアナログ信号を処理する回路の少なくとも一方を含むことができる。例えば、プロセッサは、回路基板に実装された1又は複数の回路装置(例えばIC等)や、1又は複数の回路素子(例えば抵抗、キャパシター等)で構成することもできる。プロセッサは、例えばCPU(Central Processing Unit)であってもよい。但し、プロセッサはCPUに限定されるものではなく、GPU(Graphics Processing Unit)、或いはDSP(Digital Signal Processor)等、各種のプロセッサを用いることが可能である。またプロセッサはASICによるハードウェア回路であってもよい。またプロセッサは、アナログ信号を処理するアンプ回路やフィルター回路等を含んでもよい。メモリ(記憶部170)は、SRAM、DRAM等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置(HDD)等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部100の各部の処理(機能)が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
【0056】
処理部100は、入力処理部102、演算処理部110、出力処理部140を含む。演算処理部110は、情報取得部111、仮想空間設定部112、移動体処理部113、仮想カメラ制御部114、ゲーム処理部115、制御部117、表示処理部120、音処理部130を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ(或いはプロセッサ及びメモリ)により実現できる。なお、これらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0057】
入力処理部102は、操作情報やトラッキング情報を受け付ける処理や、記憶部170から情報を読み出す処理や、通信部196を介して情報を受信する処理を、入力処理として行う。例えば入力処理部102は、操作部160を用いてユーザが入力した操作情報やHMD200のセンサ部210等により検出されたトラッキング情報を取得する処理や、読み出し命令で指定された情報を、記憶部170から読み出す処理や、外部装置(サーバ等)からネットワークを介して情報を受信する処理を、入力処理として行う。ここで受信処理は、通信部196に情報の受信を指示したり、通信部196が受信した情報を取得して記憶部170に書き込む処理などである。
【0058】
演算処理部110は、各種の演算処理を行う。例えば情報取得処理、仮想空間設定処理、移動体処理、仮想カメラ制御処理、ゲーム処理(シミュレーション処理)、表示処理、或いは音処理などの演算処理を行う。
【0059】
情報取得部111(情報取得処理のプログラムモジュール)は種々の情報の取得処理を行う。例えば情報取得部111は、HMD200を装着するユーザの位置情報などを取得する。情報取得部111は、ユーザの方向情報や姿勢情報や動き情報などを取得してもよい。
【0060】
仮想空間設定部112(仮想空間設定処理のプログラムモジュール)は、オブジェクトが配置される仮想空間(オブジェクト空間)の設定処理を行う。例えば、移動体(車、人、ロボット、電車、飛行機、船、モンスター又は動物等)、マップ(地形)、建物、観客席、コース(道路)、アイテム、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)を仮想空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクト情報記憶部172には、仮想空間でのオブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。仮想空間設定部112は、例えば各フレーム毎にこのオブジェクト情報を更新する処理などを行う。
【0061】
移動体処理部113(移動体処理のプログラムモジュール)は、仮想空間内で移動する移動体についての種々の処理を行う。例えば仮想空間(オブジェクト空間、ゲーム空間)において移動体を移動させる処理や、移動体を動作させる処理を行う。例えば移動体処理部113は、操作部160によりユーザが入力した操作情報や、取得されたトラッキング情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(モデルオブジェクト)を仮想空間内で移動させたり、移動体を動作(モーション、アニメーション)させる制御処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。移動体は、例えば実空間のユーザ(プレーヤ)に対応するユーザ移動体である。例えば移動体は、実空間のユーザに対応する仮想空間のユーザキャラクタ(アバター、プレーヤキャラクタ)や、或いは当該ユーザキャラクタが搭乗(操作)する移動体(搭乗移動体、操作移動体)などである。
【0062】
仮想カメラ制御部114(仮想カメラ制御処理のプログラムモジュール)は、仮想カメラの制御を行う。例えば、操作部160により入力されたユーザの操作情報やトラッキング情報などに基づいて、仮想カメラを制御する処理を行う。
【0063】
例えば仮想カメラ制御部114は、ユーザの一人称視点又は三人称視点として設定される仮想カメラの制御を行う。例えば仮想空間において移動するユーザ移動体の視点(一人称視点)に対応する位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置(位置座標)や姿勢(回転軸回りでの回転角度)を制御する。或いは、移動体(ユーザキャラクタ、搭乗移動体)に追従する視点(三人称視点)の位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置や姿勢を制御する。
【0064】
例えば仮想カメラ制御部114は、視点トラッキングにより取得されたユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御する。例えば本実施形態では、ユーザの視点位置、視線方向の少なくとも1つである視点情報のトラッキング情報(視点トラッキング情報)が取得される。このトラッキング情報は、例えばHMD200のトラッキング処理を行うことで取得できる。そして仮想カメラ制御部114は、取得されたトラッキング情報(ユーザの視点位置及び視線方向の少なくとも一方の情報)に基づいて仮想カメラの視点位置、視線方向を変化させる。例えば、仮想カメラ制御部114は、実空間でのユーザの視点位置、視線方向の変化に応じて、仮想空間での仮想カメラの視点位置、視線方向(位置、姿勢)が変化するように、仮想カメラを設定する。このようにすることで、ユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御できる。
【0065】
ゲーム処理部115(ゲーム処理のプログラムモジュール)は、ユーザがゲームをプレイするための種々のゲーム処理を行う。別の言い方をすれば、ゲーム処理部115(シミュレーション処理部)は、ユーザが仮想現実(バーチャルリアリティ)を体験するための種々のシミュレーション処理を実行する。ゲーム処理は、例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、開始したゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、或いはゲーム成績を演算する処理などである。
【0066】
制御部117(制御処理のプログラムモジュール)は、可動筐体30の制御処理などを行う。例えば可動筐体30によりユーザのプレイ位置を変化させるための制御などを行う。
【0067】
表示処理部120(表示処理のプログラムモジュール)は、ゲーム画像(シミュレーション画像)の表示処理を行う。例えば処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部220に表示する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、仮想空間において仮想カメラ(所与の視点。左眼用、右眼用の第1、第2の視点)から見える画像が生成される。なお、表示処理部120で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
【0068】
音処理部130(音処理のプログラムモジュール)は、処理部100で行われる種々の処理の結果に基づいて音処理を行う。具体的には、楽曲(音楽、BGM)、効果音、又は音声などのゲーム音を生成し、ゲーム音を音出力部192に出力させる。なお音処理部130の音処理の一部(例えば3次元音響処理)を、HMD200の処理部240により実現してもよい。
【0069】
出力処理部140は各種の情報の出力処理を行う。例えば出力処理部140は、記憶部170に情報を書き込む処理や、通信部196を介して情報を送信する処理を、出力処理として行う。例えば出力処理部140は、書き込み命令で指定された情報を、記憶部170に書き込む処理や、外部の装置(サーバ等)に対してネットワークを介して情報を送信する処理を行う。送信処理は、通信部196に情報の送信を指示したり、送信する情報を通信部196に指示する処理などである。
【0070】
そして本実施形態のシミュレーションシステムは、
図1に示すように、情報取得部111と、仮想空間設定部112と、移動体処理部113と、ゲーム処理部115と、表示処理部120を含む。
【0071】
情報取得部111は、ユーザの位置情報、方向情報及び姿勢情報の少なくとも1つを含むユーザ情報を取得する。例えば情報取得部111は、HMD200からのトラッキング情報や、ユーザの所定部位(手、足又は頭部等)に取り付けられたトラッキング装置(例えば後述のトラッキング装置250、260)からのトラッキング情報などに基づいて、実空間でのユーザの位置情報、方向情報及び姿勢情報の少なくとも1つを含むユーザ情報(ユーザトラッキング情報)を取得する。位置情報は、実空間でのユーザの視点の位置情報であってもよく、方向情報は、実空間でのユーザの視線の方向情報であってもよい。位置情報、方向情報は、ユーザが実空間(現実世界)のフィールド(プレイフィールド、シミュレーションフィールド、プレイエリア)や可動筐体30でプレイする場合に、そのフィールドや可動筐体30での位置情報、方向情報(所与の位置を原点とする座標系での位置座標、各座標軸回りでの回転角度)であってもよい。姿勢情報は、ユーザの各姿勢(立ち姿勢、しゃがみ姿勢又は座り姿勢等)を特定したり、或いはユーザの各部位(胴体、頭、手又は足等)の位置、方向を特定するための情報である。姿勢情報は、ユーザの所定部位に取り付けられたトラッキング装置からのトラッキング情報により特定される情報であってもよいし、キネクト(Kinectは登録商標)などのモーショントラッキングにより特定される情報であってもよい。例えばユーザ情報は、ユーザの所定部位の位置情報及び方向情報の少なくとも1つを含む部位情報を含むことができる。また情報取得部111は、HMD200の位置情報、方向情報を、当該HMD200を装着するユーザの位置情報、方向情報として取得したり、ユーザの所定部位に取り付けられたトラッキング装置の位置情報、方向情報を、当該ユーザの所定部位の位置情報、方向情報として取得してもよい。
【0072】
仮想空間設定部112は仮想空間の設定処理を行う。例えば、移動体、アイテム、コースオブジェクト、背景オブジェクト又はマップオブジェクト等のオブジェクトを仮想空間に配置設定する処理を行う。例えば仮想空間設定部112は、操作部160からの操作情報に基づき移動する移動体を仮想空間に配置設定する処理を行う。また移動体が移動するコースに設定されたアイテムエリアに、獲得対象となるアイテムを配置設定する処理を行う。移動体やアイテムなどのオブジェクトの位置、方向等の情報は、例えばオブジェクト情報記憶部172に記憶される。
【0073】
移動体処理部113は、仮想空間設定部112により設定された仮想空間(ゲーム空間)において、移動体を移動させる処理を行う。例えばユーザに対応するユーザキャラクタを、仮想空間において移動させる処理を行う。例えば情報取得部111により取得されたユーザ情報や、或いは操作部160からの操作情報に基づいて、ユーザキャラクタを仮想空間において移動させる。この場合にユーザキャラクタ自体が移動してもよいし、ユーザキャラクタが搭乗する移動体が仮想空間において移動することで、ユーザキャラクタがそれに追従して仮想空間において移動するようにしてもよい。
【0074】
ゲーム処理部115は、仮想空間でのゲームの処理を行う。例えば仮想空間でのゲームをユーザがプレイするための種々の処理を行う。
【0075】
表示処理部120は、仮想空間での画像を、ユーザに表示する表示画像として生成する処理を行う。例えば仮想空間において仮想カメラから見える画像を、ユーザに表示する表示画像として生成する。具体的には表示処理部120は、仮想空間での画像を、ユーザが視界を覆うように装着するHMD200の表示画像として生成する。例えば仮想カメラ制御部114は、HMD200を装着するユーザの視点に対応する仮想カメラの制御処理を行う。例えば仮想カメラ制御部114は、ユーザの一人称視点として設定される仮想カメラの制御を行う。例えば仮想空間におけるユーザキャラクタの視点に対応する位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置(位置座標)や姿勢(回転軸回りでの回転角度)を制御する。そして表示処理部120は、HMD200等の表示画像(表示映像)として、仮想空間において仮想カメラ(ユーザ視点)から見える画像を生成する。例えば仮想空間であるオブジェクト空間において所与の視点から見える画像を生成する。生成される画像は例えば立体視用の画像である。このようにすることで、視界の全周囲に亘って広がる仮想空間(VR空間)の画像がHMD200に表示されるようになる。
【0076】
そして本実施形態ではゲーム処理部115は、ユーザがアイテム獲得動作を行った否かを、ユーザ情報に基づき判断する。例えばユーザがアイテムの獲得動作を行ったか否かを、ユーザの手等の所定部位の位置情報及び方向情報の少なくとも一方である部位情報に基づき判断する。そしてゲーム処理部115は、アイテム獲得動作を行ったと判断した場合に、アイテムをユーザキャラクタに獲得させる処理を行う。例えばアイテムを、ユーザキャラクタの保有アイテムとして登録する処理を行う。例えばゲーム処理部115は、アイテムを、ユーザキャラクタの情報に関連づけて記憶部170(オブジェクト情報記憶部172)に記憶する処理を行う。例えばアイテムを、ユーザキャラクタの一部として登録して、保有させる。アイテムを獲得する所定部位が手である場合には、モーションデータにおける手の骨(ボーン)に追従するように、手のオブジェクトに対してアイテムのオブジェクトを連結する。
【0077】
またゲーム処理部115は、ユーザキャラクタのアイテム保有状態を解除する処理を行う。例えばゲーム処理部115は、基本姿勢状態(狭義には通常操縦状態)のユーザがアイテム獲得動作を行ったか否かを、ユーザ情報(ユーザ情報)に基づき判断し、アイテム獲得動作を行ったと判断した場合に、アイテムをユーザキャラクタに獲得させる処理を行う。そしてユーザキャラクタがアイテムを獲得して保有した後、ユーザが基本姿勢状態に戻ったと判断した場合に、ユーザキャラクタのアイテム保有状態を解除する。即ち、アイテムを保有した状態で、ユーザが基本姿勢状態に戻ると、アイテムの獲得、保有の登録が解除され、アイテムが消去されたり、非表示になる。ここで基本姿勢状態は、戦闘ゲーム等のゲームプレイ時に、ユーザの基本的な姿勢(基準姿勢、通常姿勢)として決められている姿勢であり、例えば、少なくとも一方の手を下ろすなどして通常の姿勢をとっている状態である。
【0078】
なお、アイテムの保有状態の解除は、少なくとも、ユーザキャラクタの部位に対してアイテムが連結されていない状態になっていればよく、例えば保有状態が解除されたアイテムを、一時的に使用不可にして、ストックできるようにしてもよい。そしてストックされたアイテムの使用許可条件が満たされた場合に、そのアイテムの使用処理を実行できるようにする。例えばストックされたアイテムは保管され、使用可能条件が満たされると、当該アイテムは、ユーザキャラクタの部位に連結されて、ユーザがアイテム使用動作を行うと、アイテム使用処理が実行される。
【0079】
また本実施形態では移動体処理部113は、ユーザキャラクタが搭乗する移動体を、仮想空間において移動させる処理を行う。このように、ユーザキャラクタが搭乗する移動体を仮想空間において移動させることで、ユーザキャラクタもそれに追従して仮想空間において移動することになる。
【0080】
そして本実施形態では仮想空間設定部112は、ユーザの通常操縦状態時にはユーザキャラクタが接触(到達)できない場所(アイテム配置場所)に、アイテムエリアを設定(アイテムを設定)する。通常操縦状態(広義には基本姿勢状態、通常姿勢状態)は、ユーザが、例えばアイテム獲得等の動作を行うことなく、ユーザキャラクタが搭乗する移動体を操縦している状態である。一例としては、ハンドル、操縦レバー等の操作部材を両手で操作している状態である。そしてアイテムは、このような通常操縦状態においては、ユーザキャラクタが触れることができない場所(到達できない場所)に配置される。例えばユーザキャラクタがハンドル等の操作部材を両手で操作している状態では、触れることができないような場所にアイテムが配置される。
【0081】
そしてゲーム処理部115は、例えばユーザがアイテムエリアのアイテムの方向(アイテム配置場所の方向)に向けてアイテムの獲得動作を行ったか否かを、ユーザ情報(手等の所定部位の部位情報)に基づき判断する。そして、アイテム獲得動作を行ったと判断した場合に、アイテムをユーザキャラクタに獲得させる処理を行う。例えばアイテムを、ユーザキャラクタの保有アイテムとして登録する処理を行う。
【0082】
またゲーム処理部115は、ユーザの通常操縦状態(基本姿勢状態)でのユーザ情報を、記憶部170に記憶させる処理を行う。例えばゲーム開始前の初期設定時等に、ユーザが通常操縦状態の姿勢(基本姿勢)をとり、この通常操縦状態での所定部位の部位情報が、例えば記憶部170の初期設定情報記憶部174に、初期設定情報として記憶される。このように通常操縦状態での部位情報を記憶しておけば、ユーザの体格(身体情報)や可動筐体30でのユーザの位置、姿勢等に応じた通常操縦状態での所定部位の部位情報が、記憶部170に記憶されるようになる。そして、この初期設定情報である部位情報を用いることで、ゲーム中にユーザが通常操縦状態になったか否かを、ユーザの体格や可動筐体30でのユーザの位置、姿勢等に依存せずに判断できるようになる。
【0083】
また仮想空間設定部112は、移動体が移動するコースに対してアイテムエリアを設定する。例えばレースゲームのコース上やコースに沿った場所にアイテムエリアを設定する。このようにすれば、移動体がコースに沿って移動するようなレースゲーム等のゲームにおいて、移動体に搭乗するキャラクタによりアイテムの獲得が可能な場所に、アイテムエリアを設定できるようになる。
【0084】
またゲーム処理部115は、ユーザが所定部位を動かす動作を行った場合に、アイテム獲得動作が行われたと判断する。例えばユーザが所定部位を動かす動作を行い、所定部位に対応するユーザキャラクタの部位(部位オブジェクト)がアイテムに接近(到達)したと判断した場合に、アイテム獲得動作が行われた(アイテムが獲得された)と判断する。例えばユーザの所定部位が、アイテムの設置場所の方向に対して接近し、所定部位とアイテムとがヒットしたと判定された場合に、アイテムの獲得動作が行われたと判断する。具体的には、ユーザキャラクタの部位(所定部位に対応する部位)に設定されたヒットボリューム(或いは所定部位自体)と、アイテムに設定されたヒットボリューム(或いはアイテム自体)とのヒット判定処理(交差判定処理、コリジョン処理)を行い、ヒットしたと判定された場合に、アイテムの獲得動作が行われたと判定する。或いはユーザキャラクタの部位とアイテムとの距離が所与の距離以下となった場合に、アイテムの獲得動作が行われたと判定する。ここで所定部位は、アイテムの獲得動作に用いられる部位であり、ユーザの例えば手、足又は頭部等の部位である。ユーザキャラクタの部位は、ユーザの所定部位に対応する部位であり、ユーザキャラクタの手、足又は頭部等の部位(パーツオブジェクト)である。
【0085】
またゲーム処理部115は、ユーザがアイテム使用動作を行ったと判断した場合に、アイテム使用処理を実行する。例えばユーザキャラクタがアイテムを獲得して保有した状態で、ユーザが所定部位を用いてアイテム使用動作を行ったとユーザ情報(部位情報)に基づき判断した場合に、アイテム使用処理を実行する。アイテム使用処理は、例えばユーザキャラクタが保持していたアイテムを移動させたり、アイテムの効果を発揮させる処理である。具体的には、ユーザキャラクタが保持していたアイテムを、投げたり、振ったりして移動させる処理や、アイテムによるエフェクト画像を表示する処理や、アイテムが敵移動体などの標的(対象オブジェクト)に当たってダメージを与えたり、アイテムが標的の移動状態を変化させたり、標的の各種のゲームパラメータを変化させるなどのアイテムの効果を発揮させる処理である。
【0086】
また情報取得部111は、所定部位の位置情報及び方向情報の少なくとも1つを含む部位情報を、ユーザ情報として取得する。例えばユーザが所定部位を動かすと、所定部位に取り付けられたトラッキング装置等により、所定部位の位置や方向などをトラッキングし、このトラッキングにより得られたトラッキング情報が、部位情報として取得される。そして仮想空間設定部112は、所定部位に対応するユーザキャラクタの部位(例えば手、足又は頭部等の部位を表すパーツオブジェクト)を、部位情報に基づき仮想空間に配置設定する。例えば実空間でのユーザの所定部位の位置や方向に対応する位置や方向に、ユーザキャラクタの部位を配置設定する。即ち、ユーザの所定部位に連動するようにユーザキャラクタの部位を動かす。そして表示処理部120は、仮想空間に配置設定された部位を表示する処理を行う。例えば実空間でユーザが所定部位を動かすと、その動きに対応するようにユーザキャラクタの対応する部位が動くようになり、当該部位が動く様子が、HMD200等の表示部に表示される。
【0087】
また移動体処理部113は、ユーザキャラクタのアイテムの獲得の際に、移動体の移動方向にアイテムを移動させる処理を行う。例えばユーザキャラクタの部位がアイテムに接近したと判断された場合に、ユーザキャラクタが搭乗する移動体の移動方向(ユーザキャラクタの移動方向)に対応する方向に、アイテムを移動させる。この場合のアイテムの移動速度は、例えば移動体の移動速度以下の速度である。またアイテムの移動速度の設定を、ユーザのゲームレベルやハンディ設定などに応じて変化させてもよい。このように移動体の移動に連動するようにアイテムを移動させることで、アイテムの獲得を容易化できる。
【0088】
また移動体処理部113は、獲得されたアイテムを移動させる処理を行う。例えばユーザキャラクタにより獲得されて保有状態となったアイテムを、移動体(ユーザキャラクタ)の移動に追従させて移動させる処理を行う。例えばアイテムがユーザキャラクタの一部として登録されることで、アイテムはユーザキャラクタに従属する。そしてユーザキャラクタが搭乗する移動体が移動すると、その移動に応じてアイテムも移動するようになる。
【0089】
またゲーム処理部115は、ユーザキャラクタがアイテムを獲得して保有している状態で、ユーザがアイテム使用動作を行ったとユーザ情報に基づき判断した場合に、アイテム使用処理を実行する。例えばユーザがアイテムを使用するような動作を行ったと、ユーザの位置情報、方向情報及び姿勢情報を含むユーザ情報に基づき判断されると、アイテム使用処理を実行させて、アイテムを投げたり、振るなどして移動させる処理や、アイテムの効果を発揮させる処理などを実行する。
【0090】
この場合にゲーム処理部115は、アイテム使用動作の動作方向、アイテム使用動作の強さ、アイテムの種類、アイテム使用動作の際のユーザの視線情報、及びアイテム使用動作を行うユーザの所定部位の状態の少なくとも1つに応じて、アイテム使用処理を実行する。例えばこれらの動作方向、強さ、種類、視線情報又は所定部位の状態に応じて、アイテム使用処理の実行の有無を判断したり、実行内容を設定する。アイテム使用動作の動作方向は、例えばアイテムを投げたり、振るなどして移動させる動作をユーザが行う場合に、その動作の方向である。またアイテム使用動作の強さは、例えばアイテムを投げたり、振るなどして移動させる動作をユーザが行う場合に、その動作の速度や加速度などにより表される動作の強さである。またアイテムの種類は、ユーザキャラクタにより獲得されたアイテムの種別を表すものである。例えばアイテムの種類に応じて、アイテムの形状、画像、或いはアイテム使用処理時に発揮する効果などが異なっている。アイテム使用動作の際のユーザの視線情報は、アイテムを投げるなどの動作を行っているときのユーザの視線の向く方向などである。例えば上方向などの所定の方向に視線を向けながら、アイテムを投げる動作を行うと、その視線の方向にアイテムを移動させる。またアイテム使用動作を行う際のユーザの所定部位の状態は、アイテム使用動作時の所定部位の方向(姿勢、所定座標軸周りの回転角度)や位置などの状態である。例えば所定部位の方向等の状態に応じて、アイテム使用動作を行うか否かを決定したり、或いはアイテム使用動作によるアイテムの移動方向等を決定する。
【0091】
またゲーム処理部115は、ユーザキャラクタがアイテムを獲得して保有している状態において、所与の条件が成立した場合に、ユーザキャラクタのアイテム保有状態を解除する。例えばアイテムの保有状態時に、所与の条件が成立すると、アイテムの獲得、保有の登録が解除され、保有していたアイテムが例えば消去されて非表示になる。
【0092】
アイテム保有状態を解除させる所与の条件は、例えばアイテムを獲得(保有)してから所与の時間が経過した場合や、特定のゲーム状況が発生した場合や、或いは上述のように通常操縦状態(基本姿勢状態)に戻った場合などに成立する。特定のゲーム状況は、移動体が衝突したり、或いは移動体がジャンプするなどの予め決められたゲームにおける特定の状況である。
【0093】
またゲーム処理部115は、アイテム獲得の報知処理を行う。例えばアイテムが獲得された場合に、アイテムが獲得されたことを、画像、音又は振動で報知する報知処理を行う。この報知処理はゲーム処理部115の報知処理部116が実行する。例えばアイテムが獲得された場合に、アイテムの画像やアイテムの周囲の表示物の画像を変化させたり、アイテムの獲得を知らせる特定のゲーム音(効果音)を出力したり、操作部160や可動筐体30を振動させる処理を行う。例えば可動筐体30に設けられる各種の体感装置(音、振動、空気砲又は光等による体感装置)により報知処理を実現することができる。
【0094】
また仮想空間設定部112は、ユーザの身体情報に応じて、アイテムの配置場所を設定してもよい。例えばユーザの体格の大きさなどの身体情報に応じて、アイテムの配置場所を異ならせる。例えば、ユーザが大人である場合(身長が高い場合)には、アイテムを高い場所に配置し、ユーザが子供である場合(身長が低い場合)には、アイテムを低い場所に配置する。またユーザの手などの所定部位の長さに応じてアイテムの配置場所を設定してもよい。或いはユーザの性別又は年齢などの情報に応じてアイテムの配置場所を設定してもよい。またユーザの身体情報は、例えばゲーム開始前にユーザが入力したりして初期設定するものであってもよいし、センサ等を用いてユーザの身体情報を自動的に取得してもよい。この身体情報の取得処理は例えば情報取得部111が行う。
【0095】
また本実施形態では表示処理部120は、表示画像として、ユーザが視界を覆うように装着するHDM200の表示画像を生成する。このように、ユーザが視界を覆うようにHMD200を装着する場合には、ユーザがアイテム獲得動作を行った場合に、ユーザキャラクタに当該アイテムを獲得させることは、ユーザの仮想現実感の向上のために有効である。但し、表示処理部120は、HMD200以外の表示部の表示画像を生成してもよい。例えば家庭用ゲーム装置におけるテレビ、パーソナルコンピュータや業務用ゲーム装置におけるモニターディプレイなどの表示部の表示画像を生成してもよい。
【0096】
また本実施形態では、ユーザがプレイするゲームのゲーム処理として、仮想現実のシミュレーション処理を行う。仮想現実のシミュレーション処理は、実空間での事象を仮想空間で模擬するためのシミュレーション処理であり、当該事象をユーザに仮想体験させるための処理である。例えば実空間のユーザに対応するユーザキャラクタやその搭乗移動体などの移動体を、仮想空間で移動させたり、移動に伴う環境や周囲の変化をユーザに体感させるための処理を行う。
【0097】
なお
図1の本実施形態のシミュレーションシステムの処理は、業務用ゲーム装置や家庭用ゲーム装置などの処理装置、施設に設置されるPC等の処理装置、ユーザが背中等に装着する処理装置(バックパックPC)、或いはこれらの処理装置の分散処理などにより実現できる。或いは、本実施形態のシミュレーションシステムの処理を、サーバシステムと端末装置により実現してもよい。例えばサーバシステムと端末装置の分散処理などにより実現してもよい。
【0098】
2.トラッキング処理
次にトラッキング処理の例について説明する。
図2(A)に本実施形態のシミュレーションシステムに用いられるHMD200の一例を示す。
図2(A)に示すようにHMD200には複数の受光素子201、202、203(フォトダイオード)が設けられている。受光素子201、202はHMD200の前面側に設けられ、受光素子203はHMD200の右側面に設けられている。またHMDの左側面、上面等にも不図示の受光素子が設けられている。
【0099】
またユーザUSは、所定部位である手にトラッキング装置250、260を装着している。右手に装着されるトラッキング装置250には、HMD200と同様に複数の受光素子251〜254が設けられている。左手に装着されるトラッキング装置260にも複数の受光素子261〜264(不図示)が設けられている。このような受光素子が設けられたトラッキング装置250、260を用いることで、HMD200の場合と同様に、手等の所定部位の位置、方向等の部位情報を特定できるようになる。なおトラッキング装置が装着されるユーザUSの所定部位は、手(手の甲)には限定されず、例えば足、頭部、胸部、腹部又は腰等の種々の部位を想定できる。
【0100】
図2(B)に示すように、可動筐体30の周辺には、ベースステーション280、284が設置されている。ベースステーション280には発光素子281、282が設けられ、ベースステーション284には発光素子285、286が設けられている。発光素子281、282、285、286は、例えばレーザー(赤外線レーザー等)を出射するLEDにより実現される。ベースステーション280、284は、これら発光素子281、282、285、286を用いて、例えばレーザーを放射状に出射する。そして
図2(A)のHMD200に設けられた受光素子201〜203等が、ベースステーション280、284からのレーザーを受光することで、HMD200のトラッキング処理が実現され、ユーザUSの頭の位置や向く方向(視点位置、視線方向)を検出できるようになる。例えばユーザUSの位置情報や姿勢情報(方向情報)を検出できるようになる。
【0101】
またトラッキング装置250、260に設けられる受光素子251〜254、261〜264が、ベースステーション280、284からのレーザーを受光することで、ユーザUSの手(広義には所定部位)の位置及び方向の少なくとも一方を検出できるようになる。
【0102】
図3(A)にHMD200の他の例を示す。
図3(A)では、HMD200に対して複数の発光素子231〜236が設けられている。これらの発光素子231〜236は例えばLEDなどにより実現される。発光素子231〜234は、HMD200の前面側に設けられ、発光素子235や不図示の発光素子236は、背面側に設けられる。これらの発光素子231〜236は、例えば可視光の帯域の光を出射(発光)する。具体的には発光素子231〜236は、互いに異なる色の光を出射する。またユーザUSが手(所定部位)に装着するトラッキング装置250には発光素子255、256が設けられ、トラッキング装置260には発光素子265、266(不図示)が設けられている。
【0103】
そして
図3(B)に示す撮像部150を、ユーザUSの周囲の少なくとも1つの場所(例えば前方側、或いは前方側及び後方側など)に設置し、この撮像部150により、HMD200の発光素子231〜236の光を撮像する。即ち、撮像部150の撮像画像には、これらの発光素子231〜236のスポット光が映る。そして、この撮像画像の画像処理を行うことで、ユーザUSの頭部(HMD)のトラッキングを実現する。即ちユーザUSの頭部の3次元位置や向く方向(視点位置、視線方向)を検出する。
【0104】
例えば
図3(B)に示すように撮像部150には第1、第2のカメラ151、152が設けられており、これらの第1、第2のカメラ151、152の第1、第2の撮像画像を用いることで、ユーザUSの頭部の奥行き方向での位置等が検出可能になる。またHMD200に設けられたモーションセンサのモーション検出情報に基づいて、ユーザUSの頭部の回転角度(視線)も検出可能になっている。従って、このようなHMD200を用いることで、ユーザUSが、周囲の360度の全方向うちのどの方向を向いた場合にも、それに対応する仮想空間(仮想3次元空間)での画像(ユーザの視点に対応する仮想カメラから見える画像)を、HMD200の表示部220に表示することが可能になる。
【0105】
また撮像部150により、トラッキング装置250の発光素子255、256の光や、トラッキング装置260の発光素子265、266の光を撮像することで、HMD200の場合と同様に、ユーザUSの手(右手、左手)の位置及び方向の少なくとも一方を検出できる。
【0106】
なお、発光素子231〜236、255、256、265、266として、可視光ではなく赤外線のLEDを用いてもよい。また、例えばデプスカメラ等を用いるなどの他の手法で、ユーザの頭部や手(所定部位)の位置や動き等を検出するようにしてもよい。
【0107】
また、ユーザUSやユーザUSの手(所定部位)の位置情報、姿勢情報を検出するトラッキング処理の手法は、
図2(A)〜
図3(B)で説明した手法には限定されない。例えばHMD200やトラッキング装置250、260に設けられたモーションセンサ等を用いて、HMD200、トラッキング装置250、260のトラッキング処理を行って、位置情報や方向情報や姿勢情報を検出してもよい。即ち、
図2(B)のベースステーション280、284、
図3(B)の撮像部150などの外部装置を設けることなく、トラッキング処理を実現する。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング手法を用いてもよい。或いはユーザのモーション(モーションデータ)を検出して特定するモーショントラッキングの手法を用いてもよい。
【0108】
3.可動筐体
次に本実施形態の可動筐体30の構成例について説明する。
図4は可動筐体30の斜視図である。
【0109】
図4に示す可動筐体30では、底部32の上にカバー部33が設けられ、その上に、ベース部34(台座部)が設けられる。ベース部34は底部32に対して対向するように設けられる。
【0110】
ベース部34には、シート62を有するライド部60が設けられる。ユーザUSは、このライド部60のシート62に着座する。またベース部34には、移動部40が設けられており、移動部40には、ハンドル50やアクセルペダル52、ブレーキペダル54(不図示)などの操作部160が設けられている。また移動部40には、ユーザに対して送風を行う送風機80が設けられている。この送風機80は例えばシロッコファンなどにより実現される。
【0111】
移動部40は、
図4のE1に示すように前後方向に移動自在となっている。具体的には、移動のロック解除用のレバー(不図示)が設けられ、このレバーをユーザが操作することで、移動部40の移動のロックが解除される。そしてユーザは、例えば2cm刻みに10段階で、移動部40を、E1に示す方向に沿って移動させることができる。これにより、ユーザにとって最適なポジションに、ハンドル50等の操作部160を位置させる調整が可能になる。
【0112】
可動筐体30は、ユーザのプレイ位置を変化させる筐体(アーケード筐体、コックピット筐体等)である。例えば可動筐体30は、
図1のゲーム処理部115(処理部100)のゲーム処理の結果(ゲーム状況)に応じて、ユーザのプレイ位置を変化させる。
【0113】
例えばゲーム処理部115は、ユーザがプレイするゲームのゲーム処理として、仮想現実のシミュレーション処理を行う。例えば実空間のユーザに対応するユーザキャラクタが搭乗する移動体(車、ロボット等)を、仮想空間で移動させたり、移動に伴う環境や周囲の変化をユーザに体感させるための処理を行う。そして可動筐体30は、ゲーム処理であるシミュレーション処理の結果に基づいてプレイ位置を変化させる。例えばユーザキャラクタが搭乗する移動体(或いはユーザキャラクタ)の仮想空間での移動処理の結果等に基づいて、プレイ位置を変化させる。例えばレースゲームでは、車(レーシングカー)の移動の際の加速や減速や方向の変化に伴う加速度を、ユーザに体感させるためのシミュレーション処理として、プレイ位置を変化させる処理を行う。或いは敵からの攻撃が車にヒットした場合に、その衝撃をユーザに体感させるためのシミュレーション処理として、プレイ位置を変化させる処理を行う。
【0114】
ここでプレイ位置は、仮想現実(VR)のシミュレーションゲームをプレイする際にユーザが位置するプレイポジションである。例えばプレイ位置は、ユーザのライド部60のライド位置である。例えばユーザがライド部60のシート62に座って、仮想現実のシミュレーションゲームをプレイする場合には、プレイ位置は例えばシート62のライド位置である着座位置である。ユーザが、バイク、自転車、又は馬などの乗り物や動物を模擬したライド部にまたがっている場合には、プレイ位置は、またがっている位置である。またユーザが立ち姿勢でシミュレーションゲームをプレイする場合には、プレイ位置は、例えばライド部での立ち位置である。
【0115】
このように本実施形態のシミュレーションシステムは、ユーザのプレイ位置をゲーム処理の結果(ゲーム状況)に基づいて変化させることが可能な可動筐体30を有している。このように、プレイ位置(ライド位置)を変化させることで、例えば仮想空間でのユーザキャラクタの搭乗移動体(車、ロボット)の移動等に伴う加速度の変化等を、ユーザに体感させることが可能になり、仮想現実感の向上を図れる。
【0116】
具体的には
図4において、底部32とベース部34の間には、その四隅に、不図示の第1〜第4のエアバネ部(広義には伸縮部)が設けられている。これらの第1〜第4のエアバネ部は、エアコンプレッサやバブルを用いて空気の供給や排出が行われることで、
図4のY軸方向において伸縮する。例えば全ての第1〜第4のエアバネ部が伸びたり、縮むことで、ベース部34を、Y軸方向で上側や下側に移動させることができる。これらの上下方向でのベース部34の移動により、例えばコースの路面状態の再現などが可能になる。例えば少ないストロークで、且つ、速い速度で上下方向にベース部34を移動させることで、路面の凹凸(ガタガタ道)などを表現できる。
【0117】
また、四隅の第1〜第4のエアバネ部のうちの前側及び後ろ側の一方のエアバネ部が伸び、他方のエアバネ部が縮むことで、ベース部34を、X軸の回りにピッチングさせることができる。また四隅の第1〜第4のエアバネ部のうちの左側及び右側の一方のエアバネ部が伸び、他方のエアバネ部が縮むことで、ベース部34を、Z軸の回りにローリングさせことができる。このようなピッチングやローリングを行うことで、車等の移動体の移動に伴う加速感、減速感や、コーナリング時の慣性力をユーザに体感させることができる。これによりユーザの仮想現実感を向上できると共に、いわゆる3D酔いを抑制することも可能になる。
【0118】
4.本実施形態の手法
次に本実施形態の手法について説明する。なお、以下では、ユーザキャラクタが車に搭乗して他の車と競争するレースゲームに、本実施形態の手法を適用した場合について主に説明する。但し本実施形態の手法が適用されるゲームはこのようなレースゲームには限定されない。例えば本実施形態の手法は、レースゲーム以外の種々のゲーム(車以外の競争ゲーム、ロボットゲーム、FPS(First Person shooter)や格闘ゲーム等の対戦ゲーム、電車や飛行機等の乗り物のシミュレーションゲーム、RPG、アクションゲーム、仮想体験ゲーム、スポーツゲーム、ホラー体験ゲーム、或いは音楽ゲーム等)に適用でき、ゲーム以外にも適用可能である。
【0119】
4.1 ゲームの説明
本実施形態では、仮想空間の移動体を操縦するゲームにおいて、ゲームの没入感を損なわず、自然な形でアイテムの獲得と使用を実現するための手法を実現する。具体的には本実施形態では、ユーザ(プレーヤ)が仮想空間でプレイするゲームにおいて、ユーザは移動体(FPS等でのユーザキャラクタを含む)を操縦し、仮想空間のゲーム状況を演算するゲーム処理が行われる。ユーザの位置、方向又は姿勢等はHMDやトラッキング装置により検出される。アイテムが設置されているエリアであって、移動体を操縦するユーザの通常状態では到達(接触)できない位置にあり、ユーザ(アバター)が、そのエリアの方向(上下左右)に、所与の動作(閾値以上の移動、接近)を行うことによって、エリア内のアイテムを獲得することが可能となるアイテムエリアが設定される。そしてユーザの所与動作(閾値以上の移動、接近)が検出された際にアイテムを獲得できるようにする。
【0120】
このような本実施形態の手法により実現されるレースゲームについて説明する。このレースゲームでは、実空間のユーザに対応する仮想空間のユーザキャラクタが、ドライバーとなって車(レーシングカー)に搭乗して運転し、敵車と競争する。コースにはアイテムエリアが設定され、このアイテムエリアのアイテムを獲得して使用することで、レースゲームを優位に進めることができる。
【0121】
図5(A)〜
図9(B)は本実施形態により生成されるゲーム画像の例であり、
図10(A)〜
図12(B)はゲームプレイ中のユーザの動作を説明する図である。
【0122】
図10(A)は、ユーザUSが通常操縦状態(基本姿勢状態)の場合であり、A1に示すようにユーザUSは右手、左手の両手でハンドル50を握って車の運転を行っている。この場合にはユーザUSのHMD200には
図5(A)、
図5(B)に示すようなゲーム画像が表示される。このゲーム画像では、仮想空間のコースで走行するユーザの車CP(広義には移動体)や敵車CE(敵移動体)が表示されている。また車CPのハンドルSTや、ハンドルSTを操作するユーザキャラクタ(プレーヤキャラクタ)の手HR、HL(部位)も表示されている。
【0123】
そして
図10(A)の実空間のユーザUSがハンドル50を左に操舵すると、
図5(A)に示すように仮想空間においても、車CPのハンドルSTがユーザキャラクタの手HR、HLにより左に操舵されるゲーム画像が表示される。また実空間のユーザUSがハンドル50を右に操舵すると、
図5(B)に示すように仮想空間においても、ハンドルSTがユーザキャラクタの手HR、HLにより右に操舵されるゲーム画像が表示される。即ち実空間のユーザUSの手の動きに連動して、仮想空間のユーザキャラクタの手HR、HLも動くようなゲーム画像が表示される。このようにすることで、あたかも本物の車を運転しているかのような仮想現実感をユーザUSに与えることができる。
【0124】
そして本実施形態のレースゲームでは、コースに沿ったアイテムエリアにアイテムが配置される。例えば
図6(A)では爆弾のアイテムBMが、風船BALに取り付けられて、ユーザキャラクタが運転する車CPの前方に出現している。このアイテムBMを獲得するために、
図10(B)に示すように実空間のユーザUSは、例えばA2に示すように右の手をハンドル50から離して、A3に示すように上方に上げる。この右の手の位置や方向の情報は、トラッキング装置250により手の部位情報として取得される。
【0125】
このように実空間のユーザUSが手を上げると、
図6(A)に示すように仮想空間のユーザキャラクタも手HRを上げる。即ち上述のようにトラッキング装置250によりユーザUSの手の位置、方向が検出され、この検出結果に基づいて、仮想空間の手HRの位置、方向も変化するようになる。そして本実施形態では、このように上げられた手HRの高さに、アイテムBMが配置されている。即ち
図10(A)のような通常操縦状態(両手運転時)では接触できない位置であって、
図10(B)に示すような非通常操縦状態時(片手運転時)では接触できる位置に、アイテムBMが配置されている。
【0126】
そして
図6(B)では、実空間のユーザUSが手を動かすことで、仮想空間のユーザキャラクタの手HRが動き、手HRがアイテムBMに接近(接触)し、アイテムBMの獲得に成功している。即ちユーザUSがアイテム獲得動作を行うことで、アイテムBMを獲得している。この際に例えば画像、音又は振動等を用いて、アイテムBMが獲得されたことを知らせる報知処理が行われる。そして、このようにアイテムBMの獲得に成功すると、アイテムBMは保有状態になり、爆弾のアイテムBMは手HRと一体となって動くようになる。例えばユーザキャラクタの手HR(手の骨)の動きに追従するようにアイテムBMが動く。例えばアイテムBMが手HRに従属するパーツオブジェクトとして登録される。
【0127】
爆弾のアイテムBMの獲得に成功したユーザUSは、例えば
図11のB1に示すようなアイテム使用動作を行う。例えばオーバースローのフォームで、視点から見て手前側から奥側に手を振って、爆弾を投げる動作を行う。すると
図7(A)に示すように、仮想空間においても、ユーザキャラクタの手HRが爆弾のアイテムBMを投げる動作が行われるようになる。例えば左の手HLでハンドルSTを握りながら、右の手HRでアイテムBMを投げる動作が行われる。これにより爆弾のアイテムBMが敵車CEに向かって投げられて飛んで行く。即ちアイテム使用処理が実行される。
【0128】
そして
図7(B)では、投げられた爆弾のアイテムBMが敵車CEにヒットしたため、例えば爆発のエフェクトEFの画像が表示され、敵車CEに対してダメージが与えられる。
【0129】
また
図8(A)では、風船BALに取り付けられたハンマーのアイテムHMが出現している。そしてユーザUSがアイテム獲得動作を行うことで、
図8(B)では、手HRによりアイテムHMを獲得することに成功しており、アイテムHMが保有状態となっている。即ち、あたかも手でハンマーを持ったかのように、アイテムHMは手HRと一体となって動くようになる。
【0130】
そして
図12(A)では、B2に示すようにユーザUSは、アイテム使用動作として、手を縦方向に振る動作を行っている。これにより
図9(A)に示すように仮想空間においても、ユーザキャラクタの手HRがハンマーのアイテムHMを持って縦方向に振る動作が行われるようになる。そして
図9(B)では、振ったハンマーのアイテムHMが敵車CEにヒットしたため、ハンマーがヒットしたことを表すエフェクトEFの画像が表示され、敵車CEに対してダメージが与えられる。
【0131】
このようなハンマーの場合には、
図12(A)のB2に示すように縦方向にユーザUSが手を振った時には、仮想空間においても縦方向にハンマーのアイテムHMが振られる動作(アイテム使用動作)が行われる。一方、
図12(B)のB3に示すように斜め横方向にユーザUSが手を振った時には、仮想空間においても斜め横方向にハンマーのアイテムHMが振られる動作が行われる。即ち、ユーザUSがいずれの方向で振る動作を行った場合にも、対応する方向でアイテムHMが振られる動作が行われるようになる。
【0132】
一方、爆弾の場合には、例えば
図11に示すようにオーバースローのフォームで手前側から奥側に縦方向に手を振った時にだけ、爆弾のアイテムBMを投げる動作が行われる。例えばサイドスローのように横方向に手を振った場合には、爆弾のアイテムBMを投げる動作は行われない。また例えば手を振る速さが、所与の速度以上である場合にだけ、爆弾のアイテムBMを投げる動作が行われる。このように本実施形態では、アイテム使用動作の動作方向、アイテム使用動作の強さ(速さ)、或いはアイテム使用動作を行う際のユーザUSの手HR(所定部位)の状態(位置、方向)などに応じて、アイテム使用処理を実行する。例えばアイテム使用処理の実行の有無を判断したり、実行処理の内容(レベル)を設定する。
【0133】
以上のように本実施形態の手法によれば、ユーザは、あたかも自身の手で本物の爆弾を取って敵車に対して投げたり、自身の手で本物のハンマーを握って敵車を叩いたかのような仮想現実感を得ることができる。例えば本実施形態ではユーザの手の動きをトラッキング装置により検出しているため、実空間でのユーザの手の動きと、仮想空間でのユーザキャラクタの手の動きが連動するようになる。従って、キーボード、マウス又はゲームコントローラ等の操作部材を用いて爆弾を投げる操作を行う手法に比べて、仮想現実感を大幅に向上できるという利点がある。
【0134】
4.2 アイテムの獲得、使用
次に本実施形態の手法について更に詳細に説明する。
図5(A)〜
図12(B)で説明したように本実施形態では、実空間で通常操縦状態であったユーザが、例えば一方の手をハンドル50から離してアイテム獲得動作を行うことで、アイテムの獲得が可能になる。この場合に本実施形態ではユーザの通常操縦状態時にはユーザキャラクタが接触できない場所にアイテムエリア(アイテム配置場所)を設定する。
【0135】
例えば
図13ではユーザが通常操縦状態であり、ユーザに対応するユーザキャラクタCHが車CPに乗り、コースCSを走行している。そしてユーザが両手でハンドルを握る通常操縦状態であるため、仮想空間の車CPを運転するユーザキャラクタCHも、両手でハンドルSTを握る通常操縦状態になっている。この場合に
図13では、アイテムHM、BMが配置されるアイテムエリアARは、ユーザの通常操縦状態時にはユーザキャラクタCHが接触できない場所に設定されている。即ちユーザキャラクタCHの両方の手HR、HLがハンドルSTを握っているため、実空間のユーザが手を上げて、ユーザキャラクタCHが手HR又はHLを上げない限り、アイテムエリアARのアイテムHM、BMに触れることはできない。このようにすれば、両手でハンドルSTを握る通常操縦状態時には、アイテムHM、BMを獲得できないようになり、ユーザが意図していないのにアイテムHM、BMが獲得されてしまうような不自然な事態の発生を防止できる。
【0136】
例えばユーザが意図していないのに、車CPがコースCS上を走行するだけでアイテムHM、BMを獲得できてしまうと、なぜアイテムHM、BMを獲得できたかをユーザが理解できなくなり、ユーザの仮想現実感が低下してしまう。この点、通常操縦状態では手の届かない所にアイテムHM、BMを配置すれば、ユーザが意図しないのにアイテムHM、BMが獲得されて不自然さを感じてしまうような事態を防止でき、仮想現実感を向上できるようになる。なお、アイテムエリアやアイテムの配置手法は
図13の手法には限定されず、例えば通常操縦状態時にも接触できるような場所にアイテムエリアやアイテムを配置する変形実施も可能である。
【0137】
そして本実施形態では、ユーザがアイテムの方向に向けてアイテムの獲得動作を行ったと判断した場合に、アイテムをユーザキャラクタに獲得させる処理を行う。具体的にはユーザが所定部位を動かすことで、所定部位に対応するユーザキャラクタの部位がアイテムに接近(接触)したと判断した場合に、アイテム獲得動作が行われたと判断する。
【0138】
例えば
図10(A)の通常操縦状態のユーザ(US)が、ハンドル50から一方の手を離して上方に上げると、ユーザがアイテムの方向に向けてアイテムの獲得動作を行ったと判断する。この判断処理は、ユーザの手に取り付けられたトラッキング装置250、260により検出された手の位置又は方向等の部位情報(広義にはユーザ情報)に基づき行われる。そしてこのようにユーザが手を上げると、
図6(A)に示すように仮想空間のユーザキャラクタの手HRも上方に上がり、アイテムBMの獲得が可能になる。
【0139】
そして
図14(A)に示すようにユーザキャラクタの手HRがアイテムBMに接近したと判断された場合に、
図14(B)に示すようにアイテムBMが獲得されたと判断する。例えばキャラクタの手HRとアイテムBMの距離がしきい値以下になった場合にアイテムBMが獲得されたと判断する。より具体的には、例えばアイテムBMに設定されたヒットボリューム等と手HRに設定されたヒットボリューム等を用いてヒット判定処理を行い、ヒットしたと判定された場合にアイテムBMが獲得されたと判断する。このヒット判定処理は、仮想空間でのアイテムBMの位置情報と、トラッキング装置250、260により検出されたユーザの手の部位情報(位置、方向)に基づき行われる。
【0140】
そして
図14(B)に示すようにアイテムBMが獲得されると、当該アイテムBMはユーザキャラクタの保有アイテムとして登録され、例えば手HRにアイテムBMが従属して、手HRとアイテムBMが一体化された保有状態になる。またアイテムBMが獲得されると、例えばエフェクト等の画像や効果音などの音や振動によるアイテム獲得の報知処理が行われる。このような報知処理が行われることで、ユーザは、アイテムを獲得したことを、視覚、聴覚又は触覚により認識できるようになる。
【0141】
また本実施形態では、ユーザキャラクタがアイテムを獲得して保有した状態で、ユーザが例えば所定部位を用いてアイテム使用動作を行ったと判断した場合に、アイテム使用処理を実行する。例えばアイテムを保有した状態で、ユーザが所定の動作を行ったとユーザ情報に基づき判断された場合に、アイテムの使用処理が実行されたと見なす。この場合のアイテムの使用動作は、アイテムの獲得の際に使用した手等の所定部位の動作である。即ち、所定部位である手でアイテムを獲得した場合には、その手で、アイテムを投げるなどのアイテム使用動作が行われたか否かが判断される。
【0142】
例えば
図14(C)ではアイテムを投げるというアイテム使用動作が行われたと判断され、
図14(D)ではアイテムを振るというアイテム使用動作が行われたと判断されている。例えば
図6(A)〜
図7(B)の場合には、爆弾のアイテムBMを投げるというアイテム使用動作が行われたと判断される。そして爆弾のアイテムBMが敵車CEの方に飛んで行ったり、敵車CEにヒットして爆発のエフェクトEFが発生したり、敵車CEにダメージを与えるなどのアイテム使用処理が実行される。また
図8(A)〜
図9(B)の場合には、ハンマーのアイテムHMを振るというアイテム使用動作が行われたと判断される。そしてハンマーのアイテムHMが敵車CEをターゲットとして振られたり、敵車CEにヒットして爆発のエフェクトEFが発生したり、ハンマーが当たって敵車CEが衝撃で回転するなどのアイテム使用処理が実行される。
【0143】
この場合に本実施形態では、アイテム使用動作の動作方向、アイテム使用動作の強さ、アイテムの種類、アイテム使用動作の際のユーザの視線情報、或いはアイテム使用動作を行うユーザの手(所定部位)の状態などに応じて、アイテム使用処理の実行の有無を判断したり、アイテム使用処理の実行内容を設定して、アイテム使用処理が実行される。例えば
図6(A)〜
図7(B)の爆弾のアイテムBMの場合には、
図11のようにユーザの手の動作方向が、オーバースローの方向であり、且つ、アイテム使用動作の強さである投げる際のリリース速度が、所定速度以上である場合に、爆弾のアイテムBMが投げられるというアイテム使用処理が実行される。一方、
図8(A)〜
図9(B)のハンマーのアイテムHMの場合には、
図12(A)、
図12(B)に示すようなユーザの手の動作方向に応じた方向に、ハンマーのアイテムHMが振られることになる。この場合には、アイテム使用動作の強さである振り速度が遅くても、ハンマーのアイテムHMは、その遅い速度で振られることになる。即ち、アイテムの種類(爆弾、ハンマー)に応じて、アイテム使用処理の実行の有無を判断したり、アイテム使用処理の実行内容を設定して、アイテム使用処理が実行される。或いは、例えばカーブして飛ぶような種類のアイテムであれば、アイテム使用処理の際に、アイテムを、カーブした軌道で移動させる。また例えば、バナナのように敵車をスリップさせるような種類のアイテムであれば、敵車の前に当該アイテムが投げられた場合に、敵車をスリップさせるようなアイテムの使用処理が行われる。
【0144】
図6(A)〜
図7(B)の爆弾のアイテムBMの場合には、アイテムBMを投げるというアイテム使用動作の際のユーザの視線情報も反映させて、アイテム使用処理が実行される。例えばユーザが上方向に視線を向けながら、投げる動作を行うと、アイテムBMは上方向に山なりに投げられるようになる。この場合のユーザの視線情報はHMD200のトラッキング処理により取得される。また
図6(A)〜
図7(B)の爆弾のアイテムBMの場合は、投げる際の手の位置、方向等の状態も判断される。例えば
図11のようにユーザが手の平を正面側に向けていることを条件に、アイテムを投げるアイテム使用動作が行われたと判断して、アイテム使用処理が実行される。即ち手の平が投げる方向側に向いていることを条件に、アイテムが投げられるというアイテム使用処理が実行される。このように種々の条件や情報に応じて、アイテム使用処理を実行すれば、より現実世界の事象に近いアイテムの使用処理を実現できるようになり、ユーザの仮想現実感を向上できる。
【0145】
なお本実施形態では、ユーザの所定部位に対応するユーザキャラクタの部位(部位オブジェクト、パーツオブジェクト)は、その位置、方向などの部位情報がトラッキング装置250、260により検出され、検出位置に対応する仮想空間の位置に表示される。具体的には、手等の所定部位の位置情報及び方向情報の少なくとも1つを含む部位情報が、ユーザ情報として取得され、所定部位に対応するユーザキャラクタの部位が、取得された記部位情報に基づき仮想空間に配置設定される。そして仮想空間に配置設定された部位を表示する処理が行われる。例えば
図10(A)においてユーザがハンドル50を左右に操舵すると、それに応じて、
図5(A)、
図5(B)に示すようにユーザの手に対応するユーザキャラクタの手HR、HL(広義には部位)が、ハンドルSTを左右に操舵している画像が表示される。またユーザが手により爆弾を投げる動作を行うと、それに応じて、
図6(B)〜
図7(A)に示すようにユーザキャラクタの手HR(疑似的な手)が、爆弾のアイテムBMを投げる画像が表示されるようになる。またユーザが手によりハンマーを振る動作を行うと、それに応じて、
図8(B)〜
図9(A)に示すようにユーザキャラクタの手HRが、ハンマーのアイテムBMを振っている画像が表示されるようになる。このようにすれば、ユーザの手と、仮想空間のユーザキャラクタの手とが、連動して動くようになるため、ユーザの仮想現実感を更に向上できる。
【0146】
また本実施形態では、ユーザキャラクタがアイテムを獲得して保有している状態において、所与の条件が成立した場合に、ユーザキャラクタのアイテム保有状態を解除する。例えばアイテムの保有状態の後、ユーザが通常操縦状態(基本姿勢状態)に戻った場合に、アイテム保有状態を解除する。或いはアイテム保有状態の後、所与の時間が経過したり、特定のゲーム状況(移動体の衝突、回転又はジャンプ等)が発生した場合に、アイテム保有状態を解除する。
【0147】
例えば
図15(A)では、ユーザは両手でハンドルを握って操縦する通常操縦状態から、一方の手をハンドルから離してアイテムを獲得、保有する動作を行っている。そしてこの保有状態においてアイテムの使用動作を行っている。
【0148】
一方、
図15(B)では、通常操縦状態から、一方の手でアイテムを獲得、保有した後、再度、通常操縦状態に戻っている。このように通常操縦状態に戻ると、アイテムの保有状態が解除され、例えばアイテムが消去されたり、アイテムが非表示になる。これによりユーザは、獲得、保有したアイテムを使用できなくなる。
【0149】
このようにすれば、ユーザが通常操縦状態から、手をハンドルから離して、アイテムを保有している時にだけ、アイテムを使用できるようになる。そして例えばユーザが運転に集中するために両手でハンドルを握る通常操縦状態に戻ると、アイテムの保有状態が自動的に解除されるようになり、ユーザの利便性を向上できる。或いは、アイテムを獲得、保有した後、所与の時間(例えば5秒〜10秒)が経過すると、アイテムの保有状態が解除され、アイテムが消去、非表示になる。或いは、例えば攻撃や衝突、或いは壁との衝突などにより、車が回転状態等になるようなゲーム状況の場合にも、アイテムの保有状態が解除される。また例えば敵車がジャンプしている時に、アイテムがヒットして、敵車が回転状態等になると、敵車のユーザのいわゆる3D酔いが発生してしまうおそれがある。このため、このようなゲーム状況の場合にも、アイテムの保有状態を解除して、アイテムを使用できないようにする。
【0150】
なお、保有状態が解除されたアイテムを、一時的に使用不可にして、ストックするようにしてもよい。例えばユーザキャラクタの手等の部位との連結は解除されるが、再び使用できるように当該アイテムをストックする。そして、例えば使用許可条件が満たされた場合に、ストックされたアイテムの使用処理を実行できるようにしてもよい。
【0151】
また本実施形態では、ユーザの通常操縦状態でのユーザ情報を、記憶部170に記憶させる処理を行う。例えばゲーム開始前の初期設定時に通常操縦状態の姿勢でのユーザ情報を記憶させる処理を行う。例えば、ゲーム開始時に、施設のオペレータ等が、
図16(Aに示すようにユーザに対して、両手でハンドル50を握るように指示する。具体的には右手と左手を結ぶ線がハンドル50の中心を通るように握ることを指示する。そして、ユーザが、このような通常操縦状態の姿勢を取った状態で、トラッキング装置250、260により検出された手の位置、方向等の部位情報を、初期設定情報として記憶部170(初期設定情報記憶部174)に記憶する。この手の位置、方向等は、例えば
図2(B)のベースステーション280、284による検出の座標空間での位置、方向等である。
【0152】
このようにすれば、記憶された部位情報に基づいて、ユーザが通常操縦状態なのか否かを容易に判断できるようになる。これにより、ユーザがハンドル50から手を離し、通常操縦状態ではなくなったか否や、アイテムの保有状態の解除処理においてユーザが通常操縦状態に戻ったか否かなどを、簡素な処理で判断できるようになる。また例えば、記憶された部位情報に基づきユーザが通常操縦状態であると判断されたことを条件に、例えば
図5(A)、
図5(B)に示すように、実空間でのユーザのハンドル50の操舵に連動して、仮想空間のユーザキャラクタがハンドルSTを握る手HR、HLを動かすような画像の生成も可能になる。
【0153】
例えば
図4の可動筐体30では、移動部40をE1の方向に沿って前後に移動することができる。これにより、ユーザは、自身の好みの位置にハンドル50をセットできるようになる。このように移動部40による調整が行われた場合にも、
図16に示すようにユーザの手に取り付けられたトラッキング装置250、260により、手の位置等を部位情報として検出すれば、通常操縦状態でのユーザの右、左の手の位置を適切に検出して、初期設定情報として記憶できるようになる。即ち、移動部40によりどのような調整が行われたかを、調整位置検出用の別のセンサにより検出しなくても済むようになる。
【0154】
また本実施形態では、ユーザの右、左の手の部位情報をトラッキング装置250、260により検出して、アイテム獲得等の判断処理を行っているため、ユーザの利き腕などの事情を考慮しなくても済むという利点がある。例えば、同じ右利きのユーザであっても、アイテムの獲得を行う場合に、左手でハンドル50を握りながら、右手でアイテムを獲得しようとするユーザもいれば、右手でハンドル50を握りながら、左手でアイテムを獲得しようとするユーザもいる。従って、例えばゲームの開始前に、ユーザの利き腕を施設のオペレータが問い合わせる手法では、ユーザがいずれの手でアイテムを獲得しようとするのかを、適切に判断することができない。
【0155】
この点、
図16では、ユーザの右、左の手に取り付けられたトラッキング装置250、260を用いて、ユーザのアイテム獲得動作等を判定している。例えば左手でハンドル50を握りながら、右手でアイテムを獲得しようとするユーザについては、右手に取り付けられたトラッキング装置250を用いて、右手によりアイテム獲得動作等が行われた事を判定できる。一方、右手でハンドル50を握りながら、左手でアイテムを獲得しようとするユーザについては、左手に取り付けられたトラッキング装置260を用いて、左手によりアイテム獲得動作が行われた事を判定できる。従って、ユーザの利き腕などの事情を考慮しなくても適切な判定処理を行うことが可能になる。
【0156】
また本実施形態では
図10(A)〜
図12(B)に示すように、ユーザは、視界を覆うようにHMD200を装着しており、このHMD200の表示画像として、
図5(A)〜
図9(B)に示すようなゲーム画像が表示される。このようにユーザは視界を覆うようにHMD200を装着しているため、トラッキング装置250、260はHMD200に遮られてユーザには見えないようになる。従って、自身の手にトラッキング装置250、260が取り付けられていても、ユーザは不自然さを感じず、ゲームに没頭している時にはトラッキング装置250、260の存在についても忘れてしまうという利点がある。この意味で、HMD200を用いるシステムにおいてトラッキング装置250、260により手の位置等を検出して、アイテムの獲得処理等を行う手法は有効である。
【0157】
またHMD200で視界を覆われているユーザは、実空間のハンドル50を見ることができないため、手をハンドル50にぶつけてしまうおそれもある。この点、本実施形態では、
図5(A)、
図5(B)等に示すように、実空間のハンドル50に対応する仮想空間のハンドルSTや、実空間のユーザの手に対応するユーザキャラクタの手HR、HLを、HMD200に表示している。そして、この表示処理は、
図16で説明したように通常操縦状態で記憶された手の部位情報に基づき行われる。従って、仮想空間のハンドルSTの場所に対応する場所に実空間のハンドル50が位置するようになるため、HMD200の表示画像を見ながらゲームをプレイするユーザが、誤って手をハンドル50にぶつけてしまうような事態を防止できるようになる。
【0158】
また本実施形態ではユーザキャラクタのアイテムの獲得の際に、移動体の移動方向にアイテムを移動させる処理を行う。例えば
図6(A)において、ユーザキャラクタは、仮想空間のコース上を走行する車CP(移動体)に搭乗しているため、ユーザキャラクタの手HRも、車CPの速度と同じ速度で移動するようになる。このため、手HRに対するアイテムBMの相対速度が速くなってしまい、アイテムBMを獲得するのが難しくなってしまうという事態が生じる。
【0159】
そこで本実施形態では
図17(A)に示すように、手HRによるアイテムBMの獲得の際に、車CPの移動方向にアイテムBMを移動させる処理を行う。例えば車CPの移動の速度がVAであり、ユーザキャラクタの手HRが速度VAで移動する場合には、例えばVI≦VAとなる速度でアイテムBMを移動させる移動処理を行う。例えば手HRとアイテムBMの距離が所与の距離以下となった場合に、当該移動処理を開始する。このようにすれば、例えばバトンリレーのように、手HRに対するアイテムBMの相対速度を遅くできるため、
図17(B)に示すように、ユーザは容易にアイテムBMを獲得できるようになる。これにより、ユーザがアイテムBMをなかなか獲得できないため、ゲームを楽しんだりゲームに没入できなくなってしまうような事態を防止できる。
【0160】
なお、アイテム獲得の際にアイテムBMを速度VIで移動させる移動処理における速度VIの設定については、種々の手法を採用できる。例えば初級プレーヤについては、速度VIと速度VAの差を小さくして、アイテムの獲得を容易にする一方で、上級プレーヤについては、速度VIと速度VAの差を大きくして、アイテムの獲得を難しくしてもよい。例えば速度VIによりゲームプレイのハンディ設定を行う。或いは、速度VIを可変に変化させるような特定のアイテム等を用意してもよい。或いは、アイテム獲得の際に、手HRの移動方向とは逆方向にアイテムBMを移動させて、アイテムの獲得を非常に困難にするような手法を採用してもよい。
【0161】
また本実施形態では、ユーザキャラクタにより獲得されて保有状態となったアイテムを、移動体の移動に追従させて移動させる処理を行う。例えば
図17(C)ではユーザキャラクタCHによりアイテムBMが獲得されて保有状態になっている。この場合には、ユーザキャラクタCHが搭乗する車CPの移動と共にアイテムBMも移動する。例えばアイテムBMはユーザキャラクタCHの手HRに連結されて、手HRと一体になる。例えば車CPのローカル座標系の位置にアイテムBMの位置を設定する。これにより仮想空間の車CPがコース上を移動すると、その移動に伴ってアイテムBMも移動するようになる。そして例えば
図6(B)のようにユーザキャラクタCHがアイテムBMを獲得した手HRを用いて、
図7(A)、
図7(B)に示すように爆弾のアイテムBMを投げるようなアイテムの使用処理も実現できるようになる。また
図8(B)のようにユーザキャラクタCHがアイテムHMを獲得した手HRを用いて、
図9(A)、
図9(B)に示すようにハンマーのアイテムBMを敵車CEをターゲットとして振るようなアイテムの使用処理も実現できるようになる。
【0162】
また本実施形態では移動体が移動するコースに対してアイテムエリアを設定している。例えば前述の
図13において、移動体である車CPが移動するコースCSに沿ってアイテムエリアARを設定する。このようにすれば、レースゲームのようにコースに沿って車を移動させるゲームにおいて、車の操縦や敵車との競争の楽しみの要素だけではなく、アイテム獲得の楽しみの要素も付加することができ、ゲームの面白味を増すことができる。
【0163】
また本実施形態では、ユーザの身体情報に応じて、アイテムの配置場所を設定するようにしてもよい。
【0164】
例えば
図18(A)では、実空間において、大人のユーザUSAが可動筐体30(ゲーム筐体)に搭乗してゲームをプレイしている。この場合には
図18(B)に示すように、仮想空間において、アイテムHM、BM(アイテムエリアAR)の配置場所を高い位置に設定する。このようにすれば、背が高い大人のユーザUSAが手を上げた場所に、アイテムHM、BMを配置して、ユーザUSAが、これらのアイテムHM、BMを獲得できるようになる。
【0165】
一方、
図18(C)では、実空間において、子供のユーザUSCが可動筐体30に搭乗してゲームをプレイしている。この場合には
図18(D)に示すように、仮想空間において、アイテムHM、BM(アイテムエリアAR)の配置場所を、
図18(B)に比べて低い位置に設定する。このようにすれば、背が低い子供のユーザUSCが手を上げた場所に、アイテムHM、BMを配置して、ユーザUSCが、これらのアイテムHM、BMを適切に獲得できるようになる。このように、ユーザの身長や体格などの身体情報に応じてアイテムを配置すれば、ユーザの身長等に応じた適切な場所にアイテムを配置して、当該アイテムをユーザが獲得できるようになる。
【0166】
なおユーザの身体情報は、例えばゲームの開始前にユーザが告知するなどして手動で入力してもよいし、例えばセンサ等によりユーザの身長や体格などの身体情報を自動認識してもよい。
【0167】
4.3 変形例
次に本実施形態の変形例について説明する。例えば
図4〜
図18(D)では、ユーザに対応するユーザキャラクタが車等の移動体に搭乗するゲームに本実施形態の手法を適用した場合について説明したが、本実施形態はこれに限定されるものではない。例えばFPSやRPGのゲームなどのように、移動体には搭乗せずにユーザキャラクタの一人称視点で行われるようなゲームにも、本実施形態の手法は適用可能である。
【0168】
図4は、このようなゲームにおいて用いられるフィールドの説明図である。このゲームでは、現実世界の施設等にフィールドFL(プレイフィールド、プレイエリア、プレイ空間)が用意され、ユーザUS1〜US4はこのフィールドFLにおいて移動する。フィールドFLには、壁等により実現される仕切りWLが設けられている。
【0169】
ユーザUS1〜US4は、HMD1〜HMD4を装着すると共にガン型コントローラGN1〜GN4(広義にはコントローラ)を所持している。またユーザUS1〜US4は、例えば右手にトラッキング装置SR1〜SR4を装着しており、左手にも不図示のトラッキング装置を装着している。これらのトラッキング装置を用いることで、ユーザUS1〜US4の右手や左手の位置、方向等を特定できる。更にユーザUS1〜US4は、不図示の処理装置(バックパックPC)を例えば背中に装着している。これらのユーザUS1〜US4は、例えばチーム対戦ゲームのためにチーム(広義にはグループ)を組んでいる。HMD1〜HMD4には仮想空間での映像が映し出されており、ユーザUS1〜US4は、この映像を見ながら対戦ゲーム等のゲームをプレイする。
【0170】
図20はこのようなゲームにおいて、HMDに表示されるゲーム画像の例である。例えば
図20は、
図19のユーザUS1のHMD1に表示されるゲーム画像の例であり、ユーザUS1に対応するユーザキャラクタMV1(ユーザアバター)の手や所持する銃GV1が表示されている。また味方チームのユーザUS2、US3に対応するユーザキャラクタMV2、MV3や、敵チームのユーザに対応するユーザキャラクタMB1、MB2、MB3が表示されている。味方チームのユーザキャラクタMV1、MV2、MV3は、所持する銃GV1、GV2、GV3により敵側に対して攻撃を行い、敵チームのユーザキャラクタMB1、MB2、MB3は、所持する銃GB1、GB2、GB3により攻撃を行う。
【0171】
そして本実施形態では、このようなゲームにおいて、ユーザがアイテムの獲得動作を行ったか否かを、ユーザの位置情報、方向情報及び姿勢情報の少なくとも1つを含むユーザ情報(部位情報)に基づき判断し、アイテム獲得動作を行ったと判断した場合に、アイテムをユーザキャラクタに獲得させる処理を行う。そしてユーザキャラクタがアイテムを獲得して保有している状態で、ユーザがアイテム使用動作を行ったと、ユーザ情報(部位情報)に基づき判断した場合に、アイテム使用処理を実行する。
【0172】
例えば
図21(A)では、基本姿勢状態であったユーザUSが、アイテムを獲得するために手を上げるアイテム獲得動作を行っている。この手のアイテム獲得動作は、手に取り付けられたトラッキング装置SLからの部位情報(ユーザ情報)に基づき検出できる。そして、このようなユーザUSの手を上げるアイテム獲得動作により、
図21(B)に示すように、ユーザUSの分身であるユーザキャラクタMVが、仮想空間において爆弾のアイテムBMを獲得している。これによりアイテムBMはユーザキャラクタMVに保有された状態になる。
【0173】
そしてこのようにユーザキャラクタMVがアイテムBMを獲得して保有している状態で、
図22(A)に示すようにユーザUSが、アイテム使用動作を行っている。即ち、手を手前側から前方側に振って投げる動作を行っている。このアイテム使用動作は、手に取り付けられたトラッキング装置SLからの部位情報(ユーザ情報)に基づき検出できる。これにより仮想空間のユーザキャラクタMVは、手に持っていたアイテムBMを投げ、アイテム使用処理が実行される。例えば爆弾のアイテムBMが敵にヒットすると、爆弾の爆発のエフェクトが表示されたり、敵にダメージを与えるアイテム使用処理が実行される。
【0174】
このように
図21(A)〜
図22(B)では、ユーザが一方の手を動かしてアイテムの獲得動作を行い、当該一方の手を用いてアイテムの使用動作を行うと、ユーザキャラクタMVが一方の手でアイテムを獲得して、当該一方の手でアイテムを投げて敵に当てるというアイテム使用処理が実行される。そして、この場合のアイテム獲得動作やアイテム使用動作の検出が、トラッキング装置により検出された部位情報(ユーザ情報)に基づき行われる。従って、爆弾などのアイテムを獲得して使用するという一連の動作を、あたかも現実世界において行っているようなリアルな仮想現実感をユーザに与えることが可能になる。即ちHMDを装着することでユーザの視野に広がるVR空間において、あたかも本物の爆弾を手に取って投げたかのような仮想現実感を実現できる。
【0175】
また本実施形態では、基本姿勢状態のユーザがアイテムの獲得動作を行ったか否かを、ユーザ情報に基づき判断し、アイテム獲得動作を行ったと判断した場合に、アイテムをユーザキャラクタに獲得させる処理を行う。そしてユーザキャラクタがアイテムを獲得して保有した後、ユーザが基本姿勢状態に戻ったと判断した場合には、ユーザキャラクタのアイテム保有状態を解除する処理を行う。
【0176】
例えば本実施形態では、前述の
図21(A)、
図21(B)に示すように、ユーザUSがアイテムの獲得動作を行ったと判断されると、ユーザキャラクタMVにアイテムBMを獲得させる処理が行われる。そして、このようにユーザキャラクタMVがアイテムBMを獲得して保有した後、
図23(A)に示すようにユーザUSが基本姿勢状態に戻ったとする。即ち、アイテムの獲得を行わない通常の基本姿勢状態に戻ったとする。この基本姿勢状態(通常姿勢状態)は、一方の手にガン型コントローラGNを持ち、他方の手は何も持たずに、体の前方に置いた状態である。このようにユーザUSが基本姿勢状態に戻ると、
図23(C)に示すように仮想空間では、ユーザキャラクタMVによるアイテムBMの保有状態が解除される。即ち、アイテムBMが消去されて非表示になり、ユーザキャラクタMVはアイテムBMを使用できなくなる。
【0177】
このようにすれば、ユーザが基本姿勢状態から手を上げるなどのアイテム獲得動作を行って、アイテムを保有している状態の時にだけ、アイテムを使用できるようになる。そして例えばユーザにアイテムの使用意思が無く、基本姿勢状態に戻ると、アイテムの保有状態が自動的に解除されるようになり、ユーザの利便性を向上できる。なおアイテムを獲得してから所与の期間経過した場合や、特定のゲーム状況になった場合に、アイテムの保有状態を解除するようにしてもよい。またアイテムの保有状態の解除処理は、一時的にユーザキャラクタの手等の部位とアイテムとの連結を解除して、当該アイテムをストック場所にストックする処理であってもよい。そして例えば制限時間内にユーザが、再度、手を上げるなど、所与の使用許可条件を満たした場合には、ストックされたアイテムを使用できるようにしてもよい。
【0178】
4.4 詳細な処理
次に本実施形態の詳細な処理例について
図24、
図25のフローチャートを用いて説明する。
【0179】
図24は本実施形態の全体的な処理の概要を示すフローチャートである。まず、両手でハンドルを握った状態のユーザの手の部位情報を、初期設定情報として記憶する(ステップS1)。即ち
図16で説明したように、通常操縦状態(基本姿勢状態)での手の部位情報を記憶部170に記憶する処理を行う。次にゲームが開始したか否かを判断し(ステップS2)、ゲームが開始した場合には、操作情報やトラッキング情報に基づいてゲーム処理を実行する(ステップS3)。そして、ゲーム処理により生成された画像をHMDに表示する(ステップS4)。例えば
図5(A)〜
図9(B)に示すようなゲーム画像を生成してHMDに表示する。そして、ゲームが終了したか否かを判断し(ステップS5)、ゲームが終了した場合には、処理を終了する。
【0180】
図25はアイテムの獲得処理や使用処理の詳細を示すフローチャートである。まず、ハンドルから離したユーザの手の部位情報を取得する(ステップS11)。例えば
図10(B)において、ユーザの手に取り付けられたトラッキング装置250、260により手の部位情報を取得する。そしてユーザの手に対応するユーザキャラクタの手とアイテムとのヒット判定処理を行う(ステップS12)。即ち
図14(A)で説明したようなヒット判定処理を行う。そして、手がアイテムにヒットしたか否かを判断し(ステップS13)、ヒットした場合には、アイテムをユーザキャラクタの手の一部として登録し、アイテムを獲得させて保有させる(ステップS14)。即ち
図14(B)に示すようにアイテムを獲得させて保有させる処理を行う。この際にアイテムの獲得の報知処理も行う。
【0181】
次にアイテムの使用動作が行われたか否かを判断する(ステップS15)。例えば
図14(C)、
図14(D)に示すような使用動作が行われたか否かを、トラッキング装置250、260により検出された部位情報に基づき判断する。そして、アイテム使用動作の動作方向、強さ、アイテムの種類、アイテム使用動作の際のユーザの視線情報、或いは手の部位の状態に応じて、アイテム使用処理の実行内容を設定して、アイテム使用処理を実行する(ステップS16)。例えばアイテムを移動させたり、アイテムのヒットによるエフェクトの画像を表示したり、アイテムのヒットにより敵にダメージを与えるなどの処理を行う。そして、ユーザが通常操縦状態に戻ったか否かを判断し(ステップS17)、通常操縦状態に戻った場合には、アイテムの保有を解除する(ステップS19)。また、所定時間が経過したか否かを判断し(ステップS18)、所定時間が経過した場合には、アイテムの保有を解除する(ステップS19)。
【0182】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(所定部位、移動体、ユーザ情報、基本姿勢状態等)と共に記載された用語(手、車、部位情報、通常操縦状態等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またシミュレーションシステムの構成、可動筐体の構成、構造、仮想空間の設定処理、アイテムエリアやアイテムの配置設定処理、移動体の移動処理、ゲーム処理、表示処理、アイテムの獲得処理、使用処理等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。