以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.HMD
図1〜図4に本実施形態のHMD200(頭部装着型表示装置)の構成例を示す。図1はHMD200の斜視図、図2は側面図、図3は上面図、図4は正面図である。
図1に示すようにHMD200は、前側フレーム10(広義には第1、第2のフレームの一方のフレーム)と、後ろ側フレーム20(広義には第1、第2のフレームの他方のフレーム)を含む。
前側フレーム10は表示部(図8の表示部220)を有する。表示部は例えば有機ELディスプレイ(OEL)や液晶ディスプレイ(LCD)などにより実現される。例えば表示部(左眼用、右眼用のディスプレイ、表示領域)は、ユーザの左眼、右眼に対向するように前側フレーム10に設けられる。また前側フレーム10には後述するようなレンズ等の光学系も設けれられる。
前側フレーム10は、ユーザの視界を覆うようにユーザの前頭部に接触して、前側装着位置(前側装着場所)に装着される。例えば前側フレーム10は、内側がR形状のパッド部12を有する。このパッド部12が、HMD200の装着時にユーザの両眼を囲む領域に接触する。両眼を囲む領域は、両眼の上側の前頭部の領域、両眼の下側の領域、左眼の左側の領域、右眼の右側の領域を含む。例えば、前側装着位置は少なくとも前頭部の領域の装着位置である。より具体的には、前側装着位置は例えば両眼を囲む領域の装着位置である。例えば前側フレーム10の内側に設けられたリング状のパッド部12が、ユーザの両眼の周囲の領域に対して視界を覆うように接触することで、前側フレーム10が前側装着位置に装着される。
後ろ側フレーム20は、図1、図3に示すように前側フレーム10に対して連結部62、64により連結される。連結部62は、前側フレーム10の一方の端部と、後ろ側フレーム20の一方の端部を連結する。連結部64は、前側フレーム10の他方の端部と、後ろ側フレーム20の他方の端部を連結する。例えば図4に示すように前側フレーム10には、突起部63、65(支持部)が設けられており、これらの突起部63、65が後ろ側フレーム20の例えば穴部(不図示)に嵌合することで、連結部62、64による連結が実現される。
そして後ろ側フレーム20は、前側フレーム10が前側装着位置(前頭部、両眼の周囲の領域)に固定装着(密着)された状態でも可動自在(回転自在又は移動自在)であり、ユーザの後頭部に接触して後ろ側装着位置に装着される。後ろ側装着位置は、例えばユーザの後頭部の領域の位置であり、後ろ側フレーム20に対して後頭部において接触する領域の位置である。
図3に示すように後ろ側フレーム20は、ユーザの左こめかみから、左の側頭部、後頭部、右の側頭部に沿って、右こめかみに至るような形状となっている。例えば後ろ側フレーム20は、一端が左こめかみ位置の連結部62に連結される板状の部材46(第1の部材)と、一端が右こめかみ位置の連結部64に連結される板状の部材48(第2の部材)と、一端が部材46側に取り付けられるベルト22と、一端が部材48側に取り付けられるベルト24を有する。ベルト22、24は、少なくともその一部が対向して重なるように設けられる。ベルト22、24の詳細は後述する。
そして本実施形態のHMD200は、後ろ側フレーム20が後ろ側装着位置に装着された後、後ろ側フレーム20を後ろ側装着位置に固定装着するための調整部50を含む。後ろ側フレーム20が後ろ側装着位置に装着されるとは、後ろ側フレーム20が、例えば後ろ側装着位置であるユーザの後頭部等に接触した状態である。後ろ側フレーム20が後ろ側装着位置に固定装着されるとは、後ろ側フレーム20が後ろ側装着位置に接触した後、調整部50を用いた締め付け操作等により、後ろ側フレーム20が後ろ側装着位置に対して所定圧力以上の押圧を与えて装着された状態である。例えば後述するように、調整部50を用いた調整により、後ろ側フレーム20の周長を短くすることで、後ろ側フレーム20が後ろ側装着位置に対して押圧を与えて、HMD200がユーザの頭部に固定装着されるようになる。
このように本実施形態のHMD200は、前側装着位置に装着される前側フレーム10と、前側フレーム10に対して連結部62により連結され、前側フレーム10が前側装着位置に固定装着された状態でも可動自在である後ろ側フレーム20と、後ろ側フレーム20を後ろ側装着位置に固定装着するための調整部50が設けられる。このようにすれば、ユーザは、HMD200の視認性に重要な前側フレーム10を、ユーザの視界を覆うように前側装着位置に装着した後、後ろ側フレーム20を、可動自在に移動(回転移動、並進移動)させて、後ろ側装着位置に装着し、その後に調整部50により固定装着できるようになる。こうすることで、ユーザが大事とする内容である視認性等を確保した後に、後ろ側フレーム20を自在に動かして、調整部50によりHMDを固定装着できるようになり、装着の際にユーザが大事とする内容に応えることができるHMD200の提供が可能になる。
また本実施形態のHMD200は、前側フレーム10が前側装着位置に装着(固定装着)された状態において、前側フレーム10に対する後ろ側フレーム20の相対的位置関係(角度関係)を調整するための調整部60(第2の調整部)を含む。本実施形態では例えば図3の連結部62、64が調整部60の機能を有している。この調整部60により、前側フレーム10に対して後ろ側フレーム20を回転移動(或いは並進移動)することが可能になり、前側フレーム10に対して後ろ側フレーム20を可動自在にすることができる。即ち、前側フレーム10に対する後ろ側フレーム20の相対的位置関係を変化させることができ、最適な位置関係での後ろ側装着位置への後ろ側フレーム20の装着が可能になる。
具体的には図3に示すように、調整部60は、連結部62、64を回動中心(側面視での回動中心)として、前側フレーム10の長辺に沿った回転軸AXの回りに、後ろ側フレーム20を回動自在に調整する。前側フレーム10の長辺方向である方向DR1は、例えば連結部62と連結部64を結ぶ方向である。例えば方向DR1に直交する方向をDR2とした場合に、後ろ側フレーム20は、前側フレーム10の方向DR2側に位置する。この方向DR1に沿った回転軸AXにおいて、前側フレーム10に対して後ろ側フレーム20が回動自在になるように、前側フレーム10と後ろ側フレーム20が連結部62、64により連結されている。これにより、前側フレーム10に対する後ろ側フレーム20のスイング動作が可能になる。
一方、調整部50は、ユーザの後頭部に沿った後ろ側フレーム20の周長を調整する。具体的には調整部50は、ユーザが回すことで後ろ側フレーム20の周長を調整するダイヤル部52(ツマミ部)を含む。例えば図1ではユーザがダイヤル部52を右回りに回すことで、後ろ側フレーム20の周長が短くなり、HMD200の装着の締め付け操作が可能になる。一方、ユーザがダイヤル部52を左回りに回すことで、後ろ側フレーム20の周長が長くなり、HMD200の装着の緩め操作が可能になる。なおダイヤル部52等の調整部50は、固定具56により図2の後頭部側のケース80に固定されている。
例えば後ろ側フレーム20は、ベルト22、24を有している。ベルト22、24は互いが対向して重なり合うように、ユーザの後頭部側に設けられており、後頭部に沿ったR形状を有している。ベルト22の一端は、左の側頭部側のケース30に取り付けられており、他端は例えば自由端になっている。左の側頭部側のケース30は、図3、図4に示すように左耳用のスピーカ42を覆うように設けられる。ベルト24の一端は、右の側頭部側のケース(不図示)に取り付けられており、他端は例えば自由端になっている。右の側頭部側のケースは右耳用のスピーカ44を覆うように設けられる。
ベルト22の中央部には開口が設けられており、図1に示すようにベルト22の開口の上辺に歯23(ラック)が設けられている。同様にベルト24の中央部には開口が設けられおり、ベルト24の開口の下辺に歯25(ラック)が設けられている。調整部50は、ダイヤル部52の回転に連動して回転するギア54(ピニオン)を有している。そして、ギア54の歯は、上側においてベルト22の歯23と嵌合し、下側においてベルト24の歯25と嵌合する。従って、ユーザがダイヤル部52を右回り(第1の回転方向)に回して、ギア54が右回りに回ると、ベルト22、24の重なり部分の面積が大きくなる方向にベルト22、24が移動して、後ろ側フレーム20の周長が短くなる。これによりHMD200の装着の締め付け操作が可能になる。一方、ユーザがダイヤル部52を左回り(第2の回転方向)に回して、ギア54が左回りに回ると、ベルト22、24の重なり部分の面積が小さくなる方向にベルト22、24が移動して、後ろ側フレーム20の周長が長くなる。これによりHMD200の装着の緩め操作が可能になる。
また本実施形態では、調整部50(ダイヤル部52)は、後ろ側フレーム20において後ろ側装着位置に対応する位置に設けられている。例えば図1に示すように、調整部50は後ろ側フレーム20に取り付けられており、ユーザの後頭部に対応する位置に設けられている。このようにすれば、ユーザは、後ろに手を回して調整部50のダイヤル部52を回すことで、HMD200の装着の締め付け操作や緩め操作を行うことが可能になる。
なお後頭部の位置から左側や右側に少しだけシフトした位置に、調整部50(ダイヤル部52)を設けてもよい。またダイヤル部52を回す際のクリック感を実現するために、スプロケットやボールプランジャなどにより構成されるダイヤル部52の回転の位置決め機構を設けてもよい。
また図1に示すようにHMD200は、装着時にユーザの頭頂部に接触するヘッドバンド部70を含む。またヘッドバンド部70と前側フレーム10に連結されるバンド部72を含む。バンド部72は例えば伸縮性の部材(ゴム等)により形成される。ヘッドバンド部70は、一端が後ろ側フレーム20の左耳側のケース30に取り付けられ、他端が後ろ側フレーム20の右耳側のケース(不図示)に取り付けられる。ヘッドバンド部70はユーザの頭頂部の形状に沿ったR形状になっている。そしてバンド部72は、ヘッドバンド部70の中央部と前側フレーム10の上端側の位置を連結する。
例えば本実施形態では、前側フレーム10に対して後ろ側フレーム20が回動自在に連結されているため、バンド部72を設けないと、前側フレーム10に対する後ろ側フレーム20の回動を、何ら規制できなくなってしまう。この点、バンド部72を設ければ、前側フレーム10に対する後ろ側フレーム20の回動の角度が一定角度以上になってしまうのを防止でき、ユーザの利便性を向上できる。
また図3、図4に示すように本実施形態では、後ろ側フレーム20には、左耳用のスピーカ42と右耳用のスピーカ44が設けられている。そして左耳用、右耳用のスピーカ42、44は、図3、図4のようなユーザの頭頂部側から見た平面視において、ユーザの左耳、右耳に対してスピーカ面43、45が装着時において非接触となる位置に取り付けられている。即ちHMD200を装着した場合に、ユーザの左耳、右耳がスピーカ面43、45に接触しないような位置に、スピーカ42、44が取り付けられている。
このようにすれば、例えば他人が装着したHMD200をユーザが装着した際に、左耳、右耳がスピーカ面43、45に触れないようになり、衛生面の向上を図れる。またユーザがHMD200を装着して、スピーカ42、44からゲーム音等が出力される状況では、緊急情報等の情報をユーザに伝えるのが難しくなる。この点、図3、図4のようにユーザの左耳、右耳とスピーカ面43、45の間に隙間が設けられるようにすれば、この隙間を介して緊急情報等の情報をユーザに伝えることが可能になる。
具体的には図3に示すように本実施形態では、後ろ側フレーム20は、ユーザの左の側頭部に沿う部材46(第1の部材)と、ユーザの右の側頭部に沿う部材48(第2の部材)を有する。部材46、48は例えば板状の部材(硬質部材)である。そして左耳用のスピーカ42は、ユーザの頭頂部から見た平面視において、部材46の外側(頭部中央から左耳に向かう側)にスピーカ面43が位置するように取り付けられる。右耳用のスピーカ44は、ユーザの頭頂部から見た平面視において、部材48の外側(頭部中央から右耳に向かう側)にスピーカ面45が位置するように取り付けられる。
例えばHMD200の装着時に、部材46はユーザの左の側頭部や左耳に対向し、部材48はユーザの右の側頭部や右耳に対向する。従って、部材46よりも外側にスピーカ面43が位置するようにスピーカ42を配置することで、スピーカ面43がユーザの左の側頭部や左耳に接触しないようになる。また部材48よりも外側にスピーカ面45が位置するようにスピーカ44を配置することで、スピーカ面45がユーザの右の側頭部や右耳に接触しないようになる。
なお図1においてE1に示す位置には、図4に示すようにマイク32が設けられている。このようなマイク32を設けることで、ゲームプレイ時に他のユーザとのチャット等が可能になり、対戦ゲームや共同ゲーム等の面白味を向上できる。またケーブル34は、HMD200と、HMD200の表示画像の生成処理等を行う処理装置(図8、図9(B)の処理装置250)との間で情報の転送を行うためのゲーブルである。
また図2に示すように後ろ側フレーム20には、ユーザのゲーム状況を報知する表示器82(インディケータ)が設けられている。例えば後頭部側のケース80に対して表示器82が取り付けられている。表示器82は、ユーザのゲーム状況を報知する報知情報を出力するデバイスである。図2では表示器82として、例えば複数のLED84(広義には発光素子)が設けられており、LED84を用いて、HMD200を装着するユーザのゲーム状況を報知している。例えばゲームを観戦するギャラリー等に対して、ユーザのゲーム状況を報知する。例えば、ゲームの最初では、表示器82により青色の光を発光し、ユーザの体力パラメータ等のゲームパラメータ値が減少すると、黄色の光を発光する。そして更にゲームパラメータ値が減少すると、赤色の光を発光する。例えば表示器82内に、発光色が異なる複数種類のLED(発光素子)を設けることで、上記のようなゲーム状況等の報知処理を実現できるようになる。
ゲーム状況は、例えばユーザのゲームプレイの状況、ゲームの進行状況、或いはゲームの成績の状況などであり、例えばゲームのパラメータ等で表される種々の状況である。表示器82によるゲーム状況の報知は、これらのゲームプレイの状況、ゲームの進行状況、或いはゲームの成績の状況などを、光、画像、又は音等を用いて報知することである。例えばディスプレイ(LCD等)への画像の表示やスピーカからの音出力によりゲーム状況を報知してもよい。またトランスデューサーなどの振動デバイスを後ろ側フレーム20(ケース80)に設けて、振動デバイスを用いて、ゲーム状況をユーザに報知してもよい。
次に図5(A)〜図6(B)を用いて本実施形態のHMD200の装着方法について説明する。
まず図5(A)のA1に示すように、ユーザUSは、自身の視界を覆うように前側フレーム10を前頭部側の装着位置に装着する。具体的には図1のパッド部12を両眼の周りに接触させて、左眼、右眼が表示部の左眼用領域、右眼領域の正面に来るようにHMD200を装着する。こうすることで、適正な視認性が確保されたHMD200の装着が可能になる。
この時、後ろ側フレーム20の周長は長くなっており、図5(A)のA2に示すように、ユーザUSの頭頂部と後ろ側フレーム20の内側面との間には、十分なクリアランスが確保されている。このようなクリアランスが確保されていることで、前側フレーム10を前頭部側の装着位置に装着する際に、後ろ側フレーム20等がユーザUSの髪の毛に触れて髪型が乱れてしまうのを防止できる。例えば後ろ側フレーム20は、図3の方向DR2(水平方向)に対して、例えば上向き方向に回動した状態になっている。このような後ろ側フレーム20の回動は、図3の連結部62、64での軸AX周りの回転により実現される。
次に図5(B)のA3に示すように、ユーザUSは、後ろ側フレーム20を前側フレーム10の方に手を使って引き寄せる。これにより後ろ側フレーム20の周長が短くなる。具体的には、この引き寄せ動作により、図1のギア54が回転し、重なり部分の面積が大きくなる方向にベルト22、24が移動することで、後ろ側フレーム20の周長が短くなる。これによりユーザUSの頭頂部と後ろ側フレーム20の内側面との間のクリアランスは、図5(A)に比べて狭くなる。
次に図6(A)のA4に示すように、ユーザUSは、例えば後ろ側フレーム20を手で持って、後頭部の装着位置側に移動する。そして、適切な装着位置に移動した後、図6(B)のA5に示すように、調整部50のダイヤル部52を回して、後ろ側フレーム20の周長を短くする。即ち、ダイヤル部52の回転によりギア54が回転し、重なり部分の面積が大きくなる方向にベルト22、24が移動することで、後ろ側フレーム20の周長が短くなり、HMD200の装着の締め付け操作が行われる。これにより適正な視認性(視界)が確保された状態で、HMD200をユーザの頭部にしっかりと固定装着できるようになる。
図7は本実施形態のHMD200の変形例を示す斜視図である。本実施形態のHMD200は、ユーザの頭部の第1の装着位置に接触して装着される第1のフレームと、第1のフレームに対して連結部により連結され、第1のフレームが第1の装着位置に固定装着された状態でも可動自在であり、ユーザの頭部の第2の装着位置に装着される第2のフレームと、第2のフレームが第2の装着位置に装着された後、第2のフレームを第2の装着位置に固定装着するための調整部を含む。
この場合の第1のフレームは、例えば前側フレーム10と後ろ側フレーム20のうちの一方のフレームであり、第2のフレームは、前側フレーム10、後ろ側フレーム20のうちの他方のフレームである。そして図1は、第1のフレームが前側フレーム10であり、第2のフレームが後ろ側フレーム20である場合の例である。一方、図7は、第1のフレームが後ろ側フレーム20であり、第2のフレームが前側フレーム10である場合の例である。
即ち図7のHMD200は、ユーザの後頭部側の装着位置(第1の装着位置)に接触して装着される後ろ側フレーム20(第1のフレーム)を含む。また後ろ側フレーム20に対して連結部62により連結され、後ろ側フレーム20が後頭部側の装着位置に固定装着された状態でも可動自在であり、ユーザの前頭部側の装着位置(第2の装着位置)に装着される前側フレーム10(第2のフレーム)を含む。また前側フレーム10が前頭部側の装着位置に装着された後、前側フレーム10を前頭部側の装着位置に固定装着するための調整部51を含む。
つまり図7のHMD200では、まず、後頭部側の装着位置(第1の装着位置)に対して、後ろ側フレーム(第1のフレーム)の内側面を接触させて装着する。その後、連結部62により前側フレーム10を回動させて、適正な視認性を確保できる前頭部側の装着位置(第2の装着位置)に前側フレーム10を装着する。そしてユーザが調整部51のダイヤル部53を回すことで、前側フレーム10を前頭部側の装着位置に固定装着する。なお図7では左眼側の調整部51、ダイヤル部53を示しているが、右眼側にも不図示の調整部、ダイヤル部が設けられている。図7の構成のHMD200によれば、髪型を乱すことなく頭部に装着できるようになるため、装着時の髪型の乱れを気にするユーザの要望に応えることが可能になる。
例えば、これまでのHMDは、ゴムバンドなどの弾性部材を用いてHMDをユーザの頭部に固定していた。しかしながら、このような固定方法では、ゴムが縮んでいたりして、HMDの装着が困難になったり、HMDを装着しても、装着の固定度合いが緩かったりして、ユーザにとって不満点が多かった。また、ハードタイプのリング状のフレームを用いたHMDでは、リング状のフレームにユーザが頭部を入れる過程で、髪型やメガネ位置がずれるなどしてしまい、ユーザの利便性を損ねてしまう。例えばHMDを装着する際に、髪型を気にするユーザは、なるべく髪が乱れないようなHMDの固定方法を望むし、HMDの視認性を重視するユーザは、最適な装着位置を決めてから全体を固定する方法を望む。
この点、本実施形態では、装着の際に、ユーザが大事とする内容(髪型、視界等)に関連する部分(視界に関連する部分、髪型に関連する部分)から先に、位置決め行って装着可能なHMD200を提供している。
例えば図1の構成例では、まず初めに、HMD200の適正な視認性が確保できるように前頭部側に前側フレーム10を装着し、その後に、後頭部側に後ろ側フレーム20を固定装着できる。図7の構成例では、まず初めに、髪型が乱れないように後頭部側に後ろ側フレーム20を装着し、その後に、前頭部側に前側フレーム10を固定装着できる。従って、装着の際にユーザが大事とする内容に応えることができるHMD200の提供が可能になる。
また本実施形態のHMD200では、第1、第2のフレームの相対的位置関係を調整するための調整部60(第2の調整部)が設けられる。例えば図1では、調整部60により、前側フレーム10に対する後ろ側フレーム20の相対的位置関係を調整できる。例えば連結部62(64)を回動中心として、後ろ側フレーム20を回動自在に調整できる。図7では、後ろ側フレーム20に対する前側フレーム10の相対的位置関係を調整できる。例えば連結部62(64)を回動中心として、前側フレーム10を回動自在に調整できる。このような調整部60を設けることで、図1の構成例においては、図5(A)、図5(B)のように、調整部60により後ろ側フレーム20を回動させることで、頭頂部と後ろ側フレーム20の間のクリアランスを確保した状態での装着が可能になる。これにより、HMD200の装着により髪型が乱れてしまうのを効果的に抑制できる。またハードタイプのリング状のフレームを用いたHMDに比べて、HMD200の装着が容易になり、ユーザの利便性を向上できる。また図7の構成例においては、調整部60により前側フレーム10を回動させることで、適正な視認性(視界)を確保した前側フレーム10の装着が可能になる。
また本実施形態では、調整部50(51)により後ろ側フレーム20の周長を調整しながら、HMD200を装着できる。例えば、後ろ側フレーム20の周長を長くした後、調整部50により周長を短くすることで、適切な装着位置でのHMD200の装着が可能になる。例えば調整部50が後頭部側に設けられることで、ユーザは、例えば一方の手で前側フレーム10を自身の顔側に押さえつけながら、他方の手で調整部50を操作して、HMD200の締め付け操作を行うことが可能になる。
また本実施形態では、装着時にユーザの頭頂部に接触するヘッドバンド部70や、ヘッドバンド部70と前側フレーム10に連結されるバンド部72が設けられる。このようにすれば、前側フレーム10に対して後ろ側フレーム20が回動自在に連結される場合に、前側フレーム10に対する後ろ側フレーム20の回動を、バンド部72により規制できるようになる。また前側フレーム10に対するヘッドバンド部70の位置もバンド部72により規制できるようになり、ユーザの利便性を向上できる。
また本実施形態では、図3、図4に示すように、左耳用のスピーカ42とユーザの左耳の間や、右耳用のスピーカ44とユーザの右耳の間のクリアランスを確保できる。従って、スピーカ面がユーザの耳に触れてしまうのが防止され、衛生面の向上を図れる。また、緊急情報をユーザに伝えるような状況が生じた場合にも、緊急情報を知らせる音声が、当該クリアランスを介してユーザの耳に伝わるようになり、より安全で適切なシミュレーションシステムの運営が可能になる。
また本実施形態では、後ろ側フレーム20には、ユーザのゲーム状況を報知する表示器82が設けられている。従って、ユーザのゲーム状況を他のユーザに対して効果的に伝えることが可能になる。これにより、例えばゲームを観戦するユーザに対して、より観戦を楽しめるような情報を伝えることが可能になる。或いは、他のユーザが当該ユーザのゲーム状況を、表示器82により簡素に認識できるようになるため、例えばマルチプレーヤゲームにおいて有用な情報の報知が可能になる。
2.シミュレーションシステム
図8は、本実施形態のシミュレーションシステム(シミュレータ、ゲームシステム、画像生成システム)の構成例を示すブロック図である。本実施形態のシミュレーションシステムは、HMD200と処理装置250を含む。処理装置250は、処理部100、記憶部170等により実現される。或いは処理装置250は、操作部160、I/F部194又は通信部196等を含んでもよい。本実施形態のシミュレーションシステムは例えばバーチャルリアリティ(VR)をシミュレートするシステムであり、ゲームコンテンツを提供するゲームシステム、スポーツ競技シミュレータや運転シミュレータなどのリアルタイムシミュレーションシステム、SNSのサービスを提供するシステム、映像等のコンテンツを提供するコンテンツ提供システム、或いは遠隔作業を実現するオペレーティングシステムなどの種々のシステムに適用可能である。なお、本実施形態のシミュレーションシステムは図8の構成に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
操作部160は、ユーザ(プレーヤ)が種々の操作情報(入力情報)を入力するためのものである。操作部160は、例えば操作ボタン、方向指示キー、ジョイスティック、ハンドル、ペダル、レバー又は音声入力装置等の種々の操作デバイスにより実現できる。
記憶部170は各種の情報を記憶する。記憶部170は、処理部100や通信部196などのワーク領域として機能する。ゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。記憶部170の機能は、半導体メモリ(DRAM、VRAM)、HDD(ハードディスクドライブ)、SSD、光ディスク装置などにより実現できる。記憶部170は、オブジェクト情報記憶部172、描画バッファ178を含む。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、BD、CD)、HDD、或いは半導体メモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(入力装置、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
HMD200(頭部装着型表示装置)は、ユーザの頭部に装着されて、ユーザの眼前に画像を表示する装置である。HMD200は非透過型であることが望ましいが、透過型であってもよい。
HMD200は、センサ部210、表示部220、処理部240を含む。なおHMD200に発光素子を設ける変形実施も可能である。センサ部210は、例えばヘッドトラッキングなどのトラッキング処理を実現するためものである。例えばセンサ部210を用いたトラッキング処理により、HMD200の位置、方向を特定する。HMD200の位置、方向が特定されることで、ユーザの視点位置、視線方向を特定できる。
トラッキング方式としては種々の方式を採用できる。トラッキング方式の一例である第1のトラッキング方式では、後述の図9(A)、図9(B)で詳細に説明するように、センサ部210として複数の受光素子(フォトダイオード等)を設ける。そして外部に設けられた発光素子(LED等)からの光(レーザー等)をこれらの複数の受光素子により受光することで、現実世界の3次元空間でのHMD200(ユーザの頭部)の位置、方向を特定する。第2のトラッキング方式では、後述の図10(A)、図10(B)で詳細に説明するように、複数の発光素子(LED)をHMD200に設ける。そして、これらの複数の発光素子からの光を、外部に設けられた撮像部で撮像することで、HMD200の位置、方向を特定する。第3のトラッキング方式では、センサ部210としてモーションセンサを設け、このモーションセンサを用いてHMD200の位置、方向を特定する。モーションセンサは例えば加速度センサやジャイロセンサなどにより実現できる。例えば3軸の加速度センサと3軸のジャイロセンサを用いた6軸のモーションセンサを用いることで、現実世界の3次元空間でのHMD200の位置、方向を特定できる。なお、第1のトラッキング方式と第2のトラッキング方式の組合わせ、或いは第1のトラッキング方式と第3のトラッキング方式の組合わせなどにより、HMD200の位置、方向を特定してもよい。またHMD200の位置、方向を特定することでユーザの視点位置、視線方向を特定するのではなく、ユーザの視点位置、視線方向を直接に特定するトラッキング処理を採用してもよい。
HMD200の表示部220は例えば有機ELディスプレイ(OEL)や液晶ディスプレイ(LCD)などにより実現できる。例えばHMD200の表示部220には、ユーザの左眼の前に設定される第1のディスプレイ又は第1の表示領域と、右眼の前に設定される第2のディスプレイ又は第2の表示領域が設けられており、立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左眼用画像と右眼用画像を生成し、第1のディスプレイに左眼用画像を表示し、第2のディスプレイに右眼用画像を表示する。或いは1つのディスプレイの第1の表示領域に左眼用画像を表示し、第2の表示領域に右眼用画像を表示する。またHMD200には左眼用、右眼用の2つの接眼レンズ(魚眼レンズ)が設けられており、これによりユーザの視界の全周囲に亘って広がるVR空間が表現される。そして接眼レンズ等の光学系で生じる歪みを補正するための補正処理が、左眼用画像、右眼用画像に対して行われる。この補正処理は表示処理部120が行う。
HMD200の処理部240は、HMD200において必要な各種の処理を行う。例えば処理部240は、センサ部210の制御処理や表示部220の表示制御処理などを行う。また処理部240が、3次元音響(立体音響)処理を行って、3次元的な音の方向や距離や広がりの再現を実現してもよい。
音出力部192は、本実施形態により生成された音を出力するものであり、例えばスピーカ又はヘッドホン等により実現できる。
I/F(インターフェース)部194は、携帯型情報記憶媒体195とのインターフェース処理を行うものであり、その機能はI/F処理用のASICなどにより実現できる。携帯型情報記憶媒体195は、ユーザが各種の情報を保存するためのものであり、電源が非供給になった場合にもこれらの情報の記憶を保持する記憶装置である。携帯型情報記憶媒体195は、ICカード(メモリカード)、USBメモリ、或いは磁気カードなどにより実現できる。
通信部196は、有線や無線のネットワークを介して外部(他の装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作情報や、HMD200でのトラッキング情報(HMDの位置及び方向の少なくとも一方の情報。視点位置及び視線方向の少なくとも一方の情報)や、プログラムなどに基づいて、ゲーム処理(シミュレーション処理)、仮想空間設定処理、移動体処理、仮想カメラ制御処理、表示処理、或いは音処理などを行う。
処理部100の各部が行う本実施形態の各処理(各機能)はプロセッサ(ハードウェアを含むプロセッサ)により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリにより実現できる。プロセッサは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。例えば、プロセッサはハードウェアを含み、そのハードウェアは、デジタル信号を処理する回路及びアナログ信号を処理する回路の少なくとも一方を含むことができる。例えば、プロセッサは、回路基板に実装された1又は複数の回路装置(例えばIC等)や、1又は複数の回路素子(例えば抵抗、キャパシター等)で構成することもできる。プロセッサは、例えばCPU(Central Processing Unit)であってもよい。但し、プロセッサはCPUに限定されるものではなく、GPU(Graphics Processing Unit)、或いはDSP(Digital Signal Processor)等、各種のプロセッサを用いることが可能である。またプロセッサはASICによるハードウェア回路であってもよい。またプロセッサは、アナログ信号を処理するアンプ回路やフィルター回路等を含んでもよい。メモリ(記憶部170)は、SRAM、DRAM等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置(HDD)等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部100の各部の処理(機能)が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
処理部100は、入力処理部102、演算処理部110、出力処理部140を含む。演算処理部110は、情報取得部111、仮想空間設定部112、移動体処理部113、仮想カメラ制御部114、ゲーム処理部115、報知処理部116、表示処理部120、音処理部130を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ(或いはプロセッサ及びメモリ)により実現できる。なお、これらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
入力処理部102は、操作情報やトラッキング情報を受け付ける処理や、記憶部170から情報を読み出す処理や、通信部196を介して情報を受信する処理を、入力処理として行う。例えば入力処理部102は、操作部160を用いてユーザが入力した操作情報やHMD200のセンサ部210等により検出されたトラッキング情報を取得する処理や、読み出し命令で指定された情報を、記憶部170から読み出す処理や、外部装置(サーバ等)からネットワークを介して情報を受信する処理を、入力処理として行う。ここで受信処理は、通信部196に情報の受信を指示したり、通信部196が受信した情報を取得して記憶部170に書き込む処理などである。
演算処理部110は、各種の演算処理を行う。例えば情報取得処理、仮想空間設定処理、移動体処理、仮想カメラ制御処理、ゲーム処理(シミュレーション処理)、表示処理、或いは音処理などの演算処理を行う。
情報取得部111(情報取得処理のプログラムモジュール)は種々の情報の取得処理を行う。例えば情報取得部111は、HMD200を装着するユーザの位置情報などを取得する。情報取得部111はユーザの姿勢情報(方向情報)などを取得してもよい。
仮想空間設定部112(仮想空間設定処理のプログラムモジュール)は、オブジェクトが配置される仮想空間(オブジェクト空間)の設定処理を行う。例えば、移動体(人、ロボット、車、電車、飛行機、船、モンスター又は動物等)、マップ(地形)、建物、観客席、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)を仮想空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクト情報記憶部172には、仮想空間でのオブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。仮想空間設定部112は、例えば各フレーム毎にこのオブジェクト情報を更新する処理などを行う。
移動体処理部113(移動体処理のプログラムモジュール)は、仮想空間内で移動する移動体についての種々の処理を行う。例えば仮想空間(オブジェクト空間、ゲーム空間)において移動体を移動させる処理や、移動体を動作させる処理を行う。例えば移動体処理部113は、操作部160によりユーザが入力した操作情報や、取得されたトラッキング情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(モデルオブジェクト)を仮想空間内で移動させたり、移動体を動作(モーション、アニメーション)させる制御処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。移動体は、例えば実空間のユーザ(プレーヤ)に対応するユーザ移動体である。ユーザ移動体は、仮想空間の仮想ユーザ(仮想プレーヤ、アバター)や、或いは当該仮想ユーザが搭乗(操作)する搭乗移動体(操作移動体)などである。
仮想カメラ制御部114(仮想カメラ制御処理のプログラムモジュール)は、仮想カメラの制御を行う。例えば、操作部160により入力されたユーザの操作情報やトラッキング情報などに基づいて、仮想カメラを制御する処理を行う。
例えば仮想カメラ制御部114は、ユーザの一人称視点又は三人称視点として設定される仮想カメラの制御を行う。例えば仮想空間において移動するユーザ移動体の視点(一人称視点)に対応する位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置(位置座標)や姿勢(回転軸回りでの回転角度)を制御する。或いは、ユーザ移動体に追従する視点(三人称視点)の位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置や姿勢を制御する。
例えば仮想カメラ制御部114は、視点トラッキングにより取得されたユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御する。例えば本実施形態では、ユーザの視点位置、視線方向の少なくとも1つである視点情報のトラッキング情報(視点トラッキング情報)が取得される。このトラッキング情報は、例えばHMD200のトラッキング処理を行うことで取得できる。そして仮想カメラ制御部114は、取得されたトラッキング情報(ユーザの視点位置及び視線方向の少なくとも一方の情報)に基づいて仮想カメラの視点位置、視線方向を変化させる。例えば、仮想カメラ制御部114は、実空間でのユーザの視点位置、視線方向の変化に応じて、仮想空間での仮想カメラの視点位置、視線方向(位置、姿勢)が変化するように、仮想カメラを設定する。このようにすることで、ユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御できる。
ゲーム処理部115(ゲーム処理のプログラムモジュール)は、ユーザがゲームをプレイするための種々のゲーム処理を行う。別の言い方をすれば、ゲーム処理部115(シミュレーション処理部)は、ユーザが仮想現実(バーチャルリアリティ)を体験するための種々のシミュレーション処理を実行する。ゲーム処理は、例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、開始したゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、或いはゲーム成績を演算する処理などである。
報知処理部116(報知処理のプログラムモジュール)は各種の報知処理を行う。例えばユーザのゲーム状況を報知する報知情報の生成処理を行う。図2の表示器82は、生成された報知情報の出力を行う。例えば光、画像又は音等により出力する。また報知処理部116は、例えばユーザ等に対する警告の報知処理を行ってもよい。報知処理は、例えば画像や音による報知処理であってもよいし、振動デバイスや音響などを用いた報知処理であってもよい。
表示処理部120(表示処理のプログラムモジュール)は、ゲーム画像(シミュレーション画像)の表示処理を行う。例えば処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部220に表示する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、仮想空間において仮想カメラ(所与の視点。左眼用、右眼用の第1、第2の視点)から見える画像が生成される。なお、表示処理部120で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
音処理部130(音処理のプログラムモジュール)は、処理部100で行われる種々の処理の結果に基づいて音処理を行う。具体的には、楽曲(音楽、BGM)、効果音、又は音声などのゲーム音を生成し、ゲーム音を音出力部192に出力させる。なお音処理部130の音処理の一部(例えば3次元音響処理)を、HMD200の処理部240により実現してもよい。
出力処理部140は各種の情報の出力処理を行う。例えば出力処理部140は、記憶部170に情報を書き込む処理や、通信部196を介して情報を送信する処理を、出力処理として行う。例えば出力処理部140は、書き込み命令で指定された情報を、記憶部170に書き込む処理や、外部の装置(サーバ等)に対してネットワークを介して情報を送信する処理を行う。送信処理は、通信部196に情報の送信を指示したり、送信する情報を通信部196に指示する処理などである。
次にトラッキング処理の例について説明する。図9(A)に本実施形態のシミュレーションシステムに用いられるHMD200の一例を示す。図9(A)に示すようにHMD200には複数の受光素子201、202、203(フォトダイオード)が設けられている。受光素子201、202はHMD200の前面側に設けられ、受光素子203はHMD200の左側面に設けられている。またHMDの右側面、上面等にも不図示の受光素子が設けられている。
またユーザUSは、現実世界の銃を模したガン型コントローラ290を所持しており、このガン型コントローラ290にも、受光素子204、205(フォトダイオード)が設けられている。これらの受光素子204、205を用いることで、ガン型コントローラ290の位置や方向を特定できる。またガン型コントローラ290には、銃の引き金のスイッチが設けられており、このスイッチを操作することで、仮想空間の移動体が銃を発砲する。
またユーザUSは、処理装置250を例えば背中に装着している。例えばユーザUSはジャケットを着ており、このジャケットの背面側に処理装置250が取り付けられている。処理装置250は例えばノート型PC等の情報処理装置により実現される。そしてこの処理装置250とHMD200はケーブル252により接続されている。例えば処理装置250は、HMD200に表示される画像(ゲーム画像等)の生成処理を行い、生成された画像のデータがケーブル252を介してHMD200に送られ、HMD200に表示される。この処理装置250は、このような画像の生成処理以外にも、本実施形態の各処理(情報取得処理、仮想空間設定処理、移動体処理、仮想カメラ制御処理、ゲーム処理、報知処理、表示処理又は音処理等)を行うことが可能になっている。なお、本実施形態の各処理を、施設に設置されたPC等の処理装置(不図示)により実現したり、当該処理装置と、ユーザUSが装着する処理装置250の分散処理により実現してもよい。
図9(B)に示すように、シミュレーションシステムの周辺には、ベースステーション280、284が設置されている。ベースステーション280には発光素子281、282が設けられ、ベースステーション284には発光素子285、286が設けられている。発光素子281、282、285、286は、例えばレーザー(赤外線レーザー等)を出射するLEDにより実現される。ベースステーション280、284は、これら発光素子281、282、285、286を用いて、例えばレーザーを放射状に出射する。そして図9(A)のHMD200に設けられた受光素子201〜203等が、ベースステーション280、284からのレーザーを受光することで、HMD200のトラッキングが実現され、ユーザUSの頭の位置や向く方向(視点位置、視線方向)を検出できるようになる。またガン型コントローラ290に設けられる受光素子204、205が、ベースステーション280、284からのレーザーを受光することで、ガン型コントローラ290の位置及び方向の少なくとも一方を検出できるようになる。
図10(A)にHMD200の他の例を示す。図10(A)では、HMD200に対して複数の発光素子231〜236が設けられている。これらの発光素子231〜236は例えばLEDなどにより実現される。発光素子231〜234は、HMD200の前面側に設けられ、発光素子235や不図示の発光素子236は、背面側に設けられる。これらの発光素子231〜236は、例えば可視光の帯域の光を出射(発光)する。具体的には発光素子231〜236は、互いに異なる色の光を出射する。またユーザUSが所持するガン型コントローラ290にも、発光素子237、238(LED)が設けられている。なおガン型コントローラ290には少なくとも1つの発光素子が設けられていればよい。
そして図10(B)に示す撮像部150を、ユーザUSの周囲の少なくとも1つの場所(例えば前方側、或いは前方側及び後方側など)に設置し、この撮像部150により、HMD200の発光素子231〜236の光を撮像する。即ち、撮像部150の撮像画像には、これらの発光素子231〜236のスポット光が映る。そして、この撮像画像の画像処理を行うことで、ユーザUSの頭部(HMD)のトラッキングを実現する。即ちユーザUSの頭部の3次元位置や向く方向(視点位置、視線方向)を検出する。
例えば図10(B)に示すように撮像部150には第1、第2のカメラ151、152が設けられており、これらの第1、第2のカメラ151、152の第1、第2の撮像画像を用いることで、ユーザUSの頭部の奥行き方向での位置等が検出可能になる。またHMD200に設けられたモーションセンサのモーション検出情報に基づいて、ユーザUSの頭部の回転角度(視線)も検出可能になっている。従って、このようなHMD200を用いることで、ユーザUSが、周囲の360度の全方向うちのどの方向を向いた場合にも、それに対応する仮想空間(仮想3次元空間)での画像(ユーザの視点に対応する仮想カメラから見える画像)を、HMD200の表示部220に表示することが可能になる。
また撮像部150により、ガン型コントローラ290の発光素子237、238の光を撮像する。即ち、撮像部150の撮像画像には、発光素子237、238のスポット光が映り、この撮像画像の画像処理を行うことで、HMD200の場合と同様に、ガン型コントローラ290の位置及び方向の少なくとも一方を検出できる。
なお、発光素子231〜238として、可視光ではなく赤外線のLEDを用いてもよい。また、例えばデプスカメラ等を用いるなどの他の手法で、ユーザの頭部の位置や動き等を検出するようにしてもよい。
また、ユーザの視点位置、視線方向(ユーザの位置、方向)を検出するトラッキング処理の手法は、図9(A)〜図10(B)で説明した手法には限定されない。例えばHMD200に設けられたモーションセンサ等を用いて、HMD200の単体でトラッキング処理を実現してもよい。即ち、図9(B)のベースステーション280、284、図10(B)の撮像部150などの外部装置を設けることなく、トラッキング処理を実現する。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング手法により、ユーザの視点位置、視線方向などの視点情報等を検出してもよい。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(第1のフレーム、第2のフレーム等)と共に記載された用語(前側フレーム、後ろ側フレーム等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またHMD200の構成、構造、装着手法、位置情報の取得処理、仮想空間の設定処理、移動体の移動処理、表示処理、ゲーム処理、報知処理等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のシミュレーションシステムに適用できる。