説明

プログラム、情報記憶媒体、及び画像生成システム

【課題】点滅光源や疑似振動光源のノイズ光源をゲーム処理の中で検出することで、指示位置を適切に反映したゲーム用の画像生成を可能とする画像生成システムを提供すること。
【解決手段】表示部190の上下位置に配置された一対の赤外線発光源としての識別体8a、8bをガン型コントローラ10に内蔵された赤外線カメラ18で撮影し、この撮像画像に含まれる光点の位置から検出された前記各識別体の位置に基づき、前記表示部190上における前記ガン型コントローラ10の指示位置30を特定し、特定された前記指示位置を反映したゲーム用の画像を生成する画像生成システムである。 このシステムは、前記撮像画像に含まれる光点の中から点滅光源及び疑似振動光源の少なくとも一方をノイズ光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する識別体光源特定処理を行う識別体光源特定部116を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
【背景技術】
【0002】
従来より、ガン型コントローラ(広義にはシューティングデバイス。更に広義にはポインティングデバイス)を用いて画面上のターゲットオブジェクトをシューティングして楽しむガンゲームと呼ばれる分野のゲームが人気を博している。このガンゲームでは、プレーヤ(操作者)がガン型コントローラのトリガを引くと、ショットの着弾位置(広義には指示位置)が、ガン型コントローラが内蔵するカメラ(撮像手段)を利用して光学的に検出される。そして、検出された着弾位置にターゲット(標的)オブジェクトが存在する場合には当たりと判定され、ターゲットオブジェクトが存在しない場合には外れと判定される。このようなガンゲームをプレイすることによりプレーヤは、現実世界における射撃を仮想体験できるようになる。
【0003】
このようなガンゲームにおいては、ゲーム画面内の所定位置に非可視光である2つの赤外光スポットを投写し、これをガン型コントローラに内蔵された赤外線撮像手段で撮影し、この撮像画像データに含まれる2つの赤外光スポットの位置に基づき、着弾位置を検出する構成を採用していた。
【0004】
このような着弾位置検出のための従来技術としては、例えば特開平8−226793号公報に記載のものがある。
【0005】
しかし、このような従来技術では、表示画面の周囲に、赤外光を発する他のノイズ光源が存在する場合やノイズ光源が表示部上に映り込んだ場合、着弾位置の検出の妨げになるという問題があった。
【0006】
特に、このようなガンゲームを屋内で行う場合、蛍光灯や各種照明器具等の所定の周期で点滅する点滅光源や疑似振動光源が前記ノイズ光源として、着弾位置の検出の妨げとなる。
【特許文献1】特開平8−226793号
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、このような課題に鑑みてなされたものであり、その目的は、ポインティングデバイスによる表示部上における指示位置の特定の妨げとなる点滅光源及び疑似振動光源の少なくとも一方がノイズ光源として存在する場合でも、当該ノイズ光源をゲーム処理の中で検出することで、指示位置を適切に反映したゲーム用の画像生成を可能とする画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0008】
(1)本発明は、ゲーム用の画像を生成するための画像生成システムであって、
非可視光を発する光源を光点として撮影可能な撮像手段を有するポインティングデバイスによる表示部上における指示位置を特定するために、前記撮像手段で撮影した撮像画像に含まれる前記光点の位置から前記表示部に関連づけられて配置された非可視光を発する複数の識別体の位置を検出する識別体位置検出部と、
前記検出された前記複数の識別体の位置に基づき、前記表示部上における前記ポインティングデバイスの指示位置を特定する位置特定処理を行う指示位置特定部と、
を含み、特定された前記指示位置を反映したゲーム画像を生成するとともに、
前記識別体位置検出部は、
前記撮像画像に含まれる光点の中から点滅光源及び疑似振動光源の少なくとも一方をノイズ光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する識別体光源特定処理を行う識別体光源特定部を含む画像生成システムに関係する。
【0009】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0010】
また本発明は、ゲーム用の画像を生成するための画像生成システムであって、
電磁波発生源を撮影可能な撮像手段を有するポインティングデバイスによる表示部上における指示位置を特定するために、前記撮像手段で撮影した撮像画像に含まれる電磁波発生源の位置から前記表示部に関連づけられて配置された電磁波を発する複数の識別体の位置を検出する識別体位置検出部と、
前記検出された前記複数の識別体の位置に基づき、前記表示部上における前記ポインティングデバイスの指示位置を特定する位置特定処理を行う指示位置特定部と、
を含み、特定された前記指示位置を反映したゲーム画像を生成するとともに、
前記識別体位置検出部は、
前記撮像画像に含まれる電磁波発生源の中から点滅電磁波発生源及び疑似振動電磁波発生源の少なくとも一方をノイズ源として特定することで、前記撮像画像に含まれる電磁波発生源の中から前記複数の識別体の電磁波発生源を特定する識別体特定処理を行う識別体特定部を含む画像生成システムに関係する。
【0011】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0012】
ここにおいて、非可視光を発する複数の識別体は、表示部に表示される画面内に含まれるように表示してもよく、又は表示部の外に配置するように構成してもよい。
【0013】
非可視光を発する複数の識別体としては、例えば赤外光を発する光源を識別体として用いてもよい。また、非可視光を発する複数の識別体に代えて、電磁波を発する複数の識別体を用いてもよい。
【0014】
本発明は、ポインティングデバイスを用いて、ゲーム用の画面が表示される表示部の所望位置を指示することを可能とするものである。この際、ポインティングデバイスに設けられた非可視光を撮影可能な撮像手段から出力される撮像画像データを基に指示位置を特定する。また、電磁波を発する複数の識別体を用いる場合には、電磁波発生源を撮影可能な撮像手段が、非可視光を撮影可能な撮像手段に相当する。
【0015】
識別体位置検出部は、前記複数の識別体の位置をこの撮像画像に含まれる非可視光を発する光源の光点の位置として検出する。前記複数の識別体は、表示部に関連付けられて配置されているため、指示位置特定部では、検出された前記複数の識別体の位置から表示部上におけるポインティングデバイスの指示位置を位置特定処理により特定することが可能であり、特定された支持位置を反映したゲーム用の画像を生成することができる。また、電磁波を発する複数の識別体を用いる場合には、撮像画像に含まれる電磁波発生源の位置から前記表示部に関連づけられて配置された電磁波を発する複数の識別体の位置を検出し、検出された前記複数の識別体の位置から表示部上におけるポインティングデバイスの指示位置を位置特定処理により特定する。
【0016】
ここで、前記識別体の光源以外にノイズ光源が存在する場合には、前記撮像手段で撮影される撮像画像中に前記識別体の光源と前記ノイズ光源が光点として含まれるため、ポインティングデバイスの指示位置を正確に検出することができない。そこで、本発明では、複数の識別体の光源以外にノイズ光源が存在する場合でも、識別体位置検出部が、前記撮像画像に含まれる前記光点の中から前記複数の識別体の光源を特定可能な識別体光源特定部を含む。また、電磁波を発する複数の識別体を用いる場合には、識別体光源特定部に相当する識別体特定部が、複数の識別体の電磁波発生源以外にノイズ源が存在する場合でも、前記撮像画像に含まれる電磁波発生源の中から前記複数の識別体の電磁波発生源を特定する識別体特定処理を行う。
【0017】
具体的には、識別体光源特定部は、撮像画像に含まれる光点の中から点滅光源及び疑似振動光源の少なくとも一方をノイズ光源として特定し、前記点滅光源及び前記疑似振動光源と特定された光点以外の光点を複数の識別体の光源として特定する識別体光源特定処理を行う。また、電磁波を発する複数の識別体を用いる場合には、点滅電磁波発生源が点滅光源に相当し、疑似振動電磁波発生源が疑似振動光源に相当し、撮像画像に含まれる電磁波発生源の中から点滅電磁波発生源及び疑似振動電磁波発生源の少なくとも一方をノイズ源として特定することで、前記撮像画像に含まれる電磁波発生源の中から前記複数の識別体の電磁波発生源を特定する識別体特定処理が識別体光源特定処理に相当する。
【0018】
なお、本発明において点滅光源とは、所定の周期で点滅する光源をいい、例えば、蛍光灯やネオン等が該当する。
【0019】
なお、本発明において疑似振動光源とは、点滅周期は同一であるが、点滅のタイミングが異なる一組の点滅光源が存在する場合に、一の光源が発光する場合には他の光源が発光せず、一の光源が発光しない場合には他の光源が発光するため、点滅光源の発光のタイミングにあわせて一の光源が点滅光源間を高速で移動しているように認識される光源をいう。
【0020】
このように、本発明によれば、ポインティングデバイスを用いた指示位置特定の妨げとなる点滅光源及び疑似振動光源が存在する場合であっても、ノイズ光源として特定することができる。この結果、撮像画像に含まれる光点の中から複数の識別体の光源を検出でき、検出された識別体の位置に基づき、ポインティングデバイスによる表示部上における指示位置を特定し、その特定された指示位置を反映したゲーム画像を生成し表示することが可能となる。
【0021】
特に、本発明によれば、周囲に点滅光源及び疑似振動光源が複数のノイズ光源として存在するような環境下においてゲームを行う場合であっても、これらのノイズ光源の影響を受けることなく、良好なゲーム実行環境を整え、ゲームを楽しむことが可能となる。
【0022】
加えて、ノイズ光源を識別体の光源と誤って認識することを防止できるため、ポインティングデバイスを振り回し、撮像手段が識別体ではなくノイズ光源を撮像している状態においても、前記ノイズ光源を前記識別体の光源と誤認識して誤った指示位置を表示部上に表示することを防ぐことができる。
【0023】
なお、本発明においてノイズ光源は、それ自身がノイズ光を発する光源、他の光源からのノイズ光を反射して光る光源、表示部に映り込む他の光源等からのノイズ光、その他のノイズ光を発する部分など、自発光のタイプも反射光のタイプも含むノイズ源を幅広く意味する。
【0024】
(2)また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記識別体光源特定部は、
前記撮像手段から1フレーム内に前記撮像画像を複数回取得し、前記識別体光源特定処理を行う構成を採用するようにしてもよい。
【0025】
本発明によれば、識別体光源特定部は、撮像手段、例えばCCDカメラから1フレーム内に撮像画像を複数回取得するため、フレーム周期と同程度の周期またはそれより短い周期で点滅する点滅光源及び疑似振動光源と識別体の光源とを判別可能な撮像画像を取得することが可能となる。
【0026】
加えて、識別体光源特定部は、撮像手段から前記撮像画像を取得する毎に識別体光源特定処理を行うため、より高い精度で、点滅光源及び疑似振動光源と識別体の光源を判別することが可能となる。
【0027】
フレーム周期と同程度の周期で点滅する点滅光源として、例えば、商用電源(50Hz〜60Hzで供給)を電力源とする蛍光灯等がある。また、一般的に蛍光灯は並んで配置されていることが多く、それぞれの蛍光灯の発光タイミングが異なれば疑似振動光源にもなる。
【0028】
本実施の形態において、撮像手段は1フレーム内に撮像画像を4〜5回程度取得するように設定されている。一般的に蛍光灯は50Hz〜60Hzで点滅するため、1フレーム内に撮像画像を4〜5回程度取得すると、蛍光灯の点滅光源が光点として画像に含まれている撮像画像もあれば、点滅光源が光点として画像に含まれていない撮像画像もある。
【0029】
そのため、取得した各撮像画像データから得られる光点の点滅の有無から点滅光源を特定することが可能であり、点滅光源と識別体の光源を判別することができる。なお、識別体光源特定部は、各撮像画像の光点位置を追跡していくことで、撮像画像毎の光点の対応関係を導き出すことができる。
【0030】
加えて、取得した各撮像画像データから得られる光点の点滅の有無、移動態様等から疑似振動光源を特定することが可能であり、疑似振動光源と識別体の光源を判別することができる。
【0031】
以上のように、点滅光源及び疑似振動光源の点滅周期を考慮して撮像画像の取得タイミング、回数を決定することで、点滅光源及び疑似振動光源と識別体の光源を判別する精度を高めることが可能となる。
【0032】
(3)また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記識別体光源特定部は、
前記撮像手段から前記撮像画像を取得する毎に、前記撮像画像に含まれている光点の光点生存時間を求める生存時間算定部を含み、
前記識別体光源特定処理では、
前記光点生存時間が所定時間に達していない光点を前記点滅光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する構成を採用するようにしてもよい。
【0033】
本発明において点滅光源は、所定の周期で点滅を繰り返す光源であるため、非発光時は撮像画像内に光点として表示されない。そのため、点滅光源は所定時間以上、撮像画像内に同一光点として表示されることはできない。
【0034】
この点滅光源の特性により、本発明では、光点生存時間が所定時間に達していない光点を点滅光源と特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定することができる。
【0035】
(4)また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記識別体光源特定部は、
前記撮像手段から前記撮像画像を取得する毎に、前記撮像画像に含まれている光点の加速度の変化量を求める加速度変化量算定部を含み、
前記識別体光源特定処理では、
前記光点の加速度の変化量が閾値を超えた回数が高い光点を前記疑似振動光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する構成を採用するようにしてもよい。
【0036】
本発明において疑似振動光源は、点滅光源の発光のタイミングにあわせて一の光源が点滅光源間を高速で移動しているように認識される光源であるため、識別体の光源に比べ、加速度が急激に変化する回数が多くなる。
【0037】
この疑似振動光源の特性により、本発明では、光点の加速度の変化量が閾値を超えた回数が高い光点を前記疑似振動光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定することができる。
【0038】
(5)また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記加速度変化量算定部は、
前記撮像手段から前記撮像画像を取得する毎に、前記撮像画像に含まれる前記光点の少なくとも位置を含む情報を光点情報として履歴する光点情報履歴部を含み、
前記光点情報の履歴に基づき、前記光点の加速度の変化量を求める構成を採用するようにしてもよい。
【0039】
これにより、履歴された光点の位置情報から撮像時間単位における光点の加速度の変化量を求めることができる。
【0040】
(6)また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記光点情報履歴部は、
前記撮像手段から前記撮像画像を取得する毎に、光点履歴バッファに格納された前記光点情報を更新する構成を採用するようにしてもよい。
【0041】
(7)また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記識別体位置検出部は、
前記撮像画像に含まれる前記光点の位置から前記表示部の外部に設置された前記複数の識別体の位置を検出する構成を採用するようにしてもよい。
【0042】
(8)また、本発明のプログラム、情報記憶媒体、及び画像生成システムにおいて、
前記ポインティングデバイスはシューティングデバイスとして形成され、
前記指示位置特定部は、
前記指示位置をシューティングデバイスの照準位置とする構成を採用するようにしてもよい。
【発明を実施するための最良の形態】
【0043】
以下、本発明の好適な実施形態について図面を用いて説明する。なお以下では、本発明を、ガン型コントローラを用いたガンゲーム(シューティングゲーム)に適用した場合を例にとり説明するが、本発明はこれに限定されず、種々のゲームに適用できる。また、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0044】
1.構成
図1に、本実施形態を家庭用ゲームシステムに適用した場合の例について示す。
【0045】
実施例のゲームシステムは、家庭用ゲーム機2と、テレビ4及び銃を模して作られたガン型ゲームコントローラ10(広義にはシューティングデバイス更に広義にはポインティングデバイス他の説明でも同様)とを含む。
【0046】
前記家庭用ゲーム機2には、画像生成用のプログラム及び当該プログラムを使用したシューティングゲーム用のプログラムが記憶された情報記憶媒体180がセットされ、前記プログラム等を用いてシューティングゲーム用のゲーム演算が実行され、テレビ4の表示部190上にゲーム画面が生成表示される。
【0047】
プレーヤは前記ガン型コントローラ10を用い、表示部190のゲーム画面上に映し出されるターゲット(標的)オブジェクトを狙って、トリガ14を引く。
【0048】
すると、ガン型コントローラ10が内蔵するカメラ(撮像手段)により、銃身方向の画像が撮像され、この撮像画像データに基づき、ガン型コントローラ10の指示位置30が検出される。この指示位置30は、本実施の形態ではガン型コントローラ10の照準位置を表す。
【0049】
そして、プレーヤがトリガ14を引くタイミングで検出された指示位置30が、画面上
に表示されるターゲットオブジェクトの表示位置と一致した場合に当たりと判定され、一致しなかった場合には外れと判定される。
【0050】
本実施の形態で、前記表示部190の外部には、複数の識別体8a、8bが着脱可能に取付けられており、表示部190の中心位置を挟んで点対象となる位置に一対の識別体8a、8bが取付けられている。これら各識別体8a、8bは、コントローラに内蔵されたカメラによって識別可能なものとして形成すればよく、本実施の形態では、非可視光である赤外線を発光する発光源を識別体8a、8bとして用いる。
【0051】
ここでは、前記識別体8a、8bは、その中間地点が表示部190の中央部と一致するような配置となっている。
【0052】
これにより、識別体8a、8bの位置をコントローラ10に内蔵されたCCDカメラ18の撮像画像に含まれる非可視光を発する光源の光点の位置として検出することが可能となり、検出された両識別体8a、8bの中間位置が表示部190の中心位置として特定される。そのため、各識別体8a、8bの位置を撮像画像に含まれる光点の位置として特定することにより、ガン型コントローラ10によって指示される表示部190上における指示位置30を特定することができる。
【0053】
図2に、本実施形態の画像生成システム(ゲームシステム、位置検出システム)のブロック図を示す。なお本実施形態の画像生成システムは図2の構成要素(各部)の一部を省略した構成としてもよい。
【0054】
ガン型コントローラ10は、銃の形を模して形成されたポインティングデバイス12(ケーシング)と、ポインティングデバイス12の握り部に設けられたトリガ14と、ポインティングデバイス12の銃口付近に内蔵されるレンズ16(光学系)及びCCDカメラ18を含む。
【0055】
前記CCDカメラ18は、前記識別体8a、8bの発する非可視光を検出可能なCCDセンサー素子をマトリックス状に配置して構成されたものであり、本実施の形態では赤外線領域の光を十分な感度を持って検出可能なCCDセンサー素子をマトリックス状に配置して構成されている。
【0056】
そして、前記CCDカメラ18は、受光面の中心部の法線が前記ポインティングデバイスの銃口方向に向くように設置され、銃口方向の画像を、所定の周期、好ましくは1/300秒周期(1フレーム内に5回程度)で取得可能に構成されている。
【0057】
また、前記ガン型コントローラ10の内部には、コントローラ全体の制御を行う処理部20と、家庭用ゲーム機との間のインターフェースとして機能する通信部22とを含む。
【0058】
前記家庭用ゲーム機2の本体装置90は、処理部100、記憶部170、通信部196を含んで構成され、更にこの本体装置90には、前述した表示部190及び音出力部192が接続されている。
【0059】
本実施の形態において表示部190及び音出力部192は、図1に示すテレビ4として一体的に設けられている。
【0060】
処理部100は、ゲーム演算部110、画像生成部120、音生成部130として機能する。
【0061】
ゲーム演算部110は、情報記憶媒体180に記憶されるプログラム、データや、ガン
型コントローラ10との間の通信情報(撮像画像情報、トリガ操作情報等)に基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部100は、記憶部170をワーク領域として使用して各種の処理を行う。
【0062】
ゲーム演算部110が行う処理としては、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト(1又は複数のプリミティブ)の位置や回転角度(X、Y又はZ軸回り回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、仮想カメラを制御する処理(仮想カメラの位置や回転角度を求める処理)、マップ、建物などのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などがある。
【0063】
記憶部170は、処理部100のワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0064】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、ハードディスク、メモリカード、メモリーカセット、磁気ディスク、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0065】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、テレビ、CRTなどにより実現できる。
【0066】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0067】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0068】
前記ゲーム演算部110は、識別体位置検出部112、指示位置特定部114として機能する。
【0069】
識別体位置検出部112は、CCDカメラ18からゲーム処理用の撮像画像データを、例えば、1フレーム(1/60)周期で読込み、記憶部170の撮像画像用メモリ176に書込む処理を行う。そして、この撮像画像用メモリ176に記憶された撮像画像データは、CCDカメラ18から撮像画像データが出力される毎に順次更新される。
【0070】
本実施の形態では、赤外線領域に高い感度を持つCCDカメラ18が用いられており、例えば図3に示すように、撮像画像において一対の識別体8a、8bは、光点La、Lbとして表示される。
【0071】
そして、識別体位置検出部112は、CCDカメラ18の撮像画像に含まれる前記光点La、Lbの位置から前記各識別体8a、8bの位置を検出する。
【0072】
本実施の形態において、識別体位置検出部112は、識別体8a、8bの光源以外にノイズ光源が存在する場合においても、これらの光源の中から前記各識別体8a、8bの光源を特定する識別体光源特定部116を含む。
【0073】
識別体光源特定部116は、撮像画像に含まれる光点の中から点滅光源及び疑似振動光源の少なくとも一方をノイズ光源として特定することで、前記撮像画像に含まれる光点の中から各識別体8a、8bの光源を特定する識別体光源特定処理を行う。
【0074】
識別体光源特定部116は、CCDカメラ18から1フレーム内に複数回、識別体の光源特定用の撮像画像データを読込み、その都度、識別体光源特定処理を行う。なお、本実施の形態では、識別体光源特定部116が読込む撮像画像データについても、記憶部170の撮像画像用メモリ176に記憶しているが、識別体位置検出部112が読込む撮像画像データと識別体光源特定部116が読込む撮像画像データを別々のメモリ(記憶部)に記憶するようにしてもよい。
【0075】
本実施形態において、識別体光源特定部116は、CCDカメラ18から、例えば、1/300秒周期(1フレーム内に5回程度)で撮像画像を読込むため、フレーム周期と同程度の周期またはそれより短い周期で点滅する点滅光源及び疑似振動光源と識別体の光源を判別可能な撮像画像データを取得できる。
【0076】
そして、識別体光源特定部116は、撮像画像データの中から点滅光源を特定する生存時間算定部116aと撮像画像データの中から疑似点滅光源を特定する加速度変化量算定部116bを含む。
【0077】
本実施の形態において、点滅光源は、所定の周期で点滅を繰り返す光源であるため、非発光時は撮像画像内に光点として表示されない。そのため、点滅光源は所定時間以上、撮像画像内に同一光点として表示されることはできない。
【0078】
この点滅光源の特性により、生存時間算定部116aは、光点生存時間が所定時間に達していない光点を点滅光源と特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する。
【0079】
本実施の形態において、疑似振動光源は、点滅光源の発光のタイミングにあわせて一の光源が複数の点滅光源間を高速で移動しているように認識される光源であるため、識別体の光源に比べ、加速度が急激に変化する回数が多くなる。
【0080】
この疑似振動光源の特性により、加速度変化量算定部116bは、光点の加速度の変化量が閾値を超えた回数が高い光点を前記疑似振動光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する。
【0081】
また、加速度変化量算定部116bは、撮像画像に含まれる光点の少なくとも位置を含む情報を光点情報として履歴する光点情報履歴部117を含んでいる。
【0082】
光点情報履歴部117は、識別体光源特定部116が撮像画像データを取得する毎に、光点情報を記憶部170の光点情報記憶部178に書込む処理を行い、光点情報は随時更新される。
【0083】
これにより、位置情報を含む光点情報の履歴に基づき、撮像時間単位における光点の加速度の変化量を求めることができる。
【0084】
指示位置特定部114は、撮像画像に含まれる前記光点La、Lbを基に位置特定処理を行う。そして、指示位置30が特定されると、特定された指示位置を反映した画像を生成するための演算処理として、例えば、画面上に指示位置30を示す所与の特定オブジェクト、例えばカーソルなどを表示させる処理を行う。
【0085】
画像生成部120は、処理部100で行われる種々の処理の結果に基づいて画像処理を行い、ゲーム画像を生成し、表示部190に出力する。例えば、いわゆる3次元ゲームの画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点(構成点)に付与される位置座標、テクスチャ座標、色(輝度)データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、ジオメトリ処理後のオブジェクト(1又は複数プリミティブ面)の画像が、描画バッファ172(フレームバッファ、ワークバッファ等の画素単位で画像情報を記憶できるバッファ)に描画される。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成されるようになる。なお、本実施形態により生成されて表示部190に表示される画像は、3次元画像であってもよいし、2次元画像であってもよい。
【0086】
画像生成部120は、テクスチャ記憶部174に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理を行う。具体的には、オブジェクト(プリミティブ面)の頂点に設定(付与)されるテクスチャ座標等を用いてテクスチャ記憶部174からテクスチャ(色、α値などの表面プロパティ)を読み出す。そして、2次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間(テクセル補間)などを行う。
【0087】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192(スピーカ)に出力する。
【0088】
また、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0089】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて生成してもよい。
【0090】
2.本実施形態の手法
2−1:識別体位置と表示部上の指示位置の関連付け
ゲーム開始に先立ちゲーム画面が表示される表示部190の外側に複数の識別体8a、8bを設置する。本実施の形態では、図1に示すように表示部190の上方及び下方に2つの識別体8a、8bを、表示部190の中心を挟んで点対称となるように配置する。
【0091】
従って、2つの識別体8a、8bの上を結んだ線の中心位置が、表示部190の中心位置と一致することになる。なお、本実施の形態では2つの識別体8a、8bを表示部190の周囲に配置する場合を例にとり説明するが、必要に応じて3つ以上の識別体を表示部190の周囲に配置してもよい。
【0092】
前述したように各識別体8a、8bは、非可視光である赤外光を発する光源として形成されており、ガン型コントローラ10を表示部190方向に向けると、図3に示すように各識別体8a、8bに対応した光点La、Lbが撮像画像中に含まれる。
【0093】
本実施の形態のゲームシステムでは、前記ガン型コントローラ10の銃身方向と表示部190上における指示位置を一致させるために、表示部190上に図4(A)に示す初期設定画面50を表示する。
【0094】
この初期設定画面50には、「照準の初期設定を行います」というメッセージA1と、「マーカを基準位置に移動しトリガを引いてください」とメッセージA2が表示される。
【0095】
また、各識別体8a、8bに対応した光点La、LbがマーカMa、Mbとして撮像画像52中に表示される。
【0096】
また、撮像画像52にはその中心点を挟んで点対称の位置に各マーカMa、Mbの基準位置を表すターゲットマーカTa、Tbも表示される。
【0097】
そして、プレーヤはメッセージA2に従い、マーカMa、MbがターゲットマーカTa、Tbに重なるようにガン型コントローラ10の向きを調整し、これらが重なったタイミングでトリガ14を操作する。
【0098】
これにより、現在の状態で、ガン型コントローラ10の指示位置30が表示部190の中心位置を指していると指示位置特定部114が認識し、指示位置特定用の初期条件の設定が終了する。
【0099】
即ち、マーカMa、MbがターゲットマーカTa、Tbと重なっている状態では、図4(B)に示すように、CCDカメラ18の撮像画像のx、y座標の原点Oが、表示部1
90の中心位置と一致し、更にこの時、撮像画像のy軸上に前記マーカMa、Mbが位置していると初期設定される。これにより、撮像画像内におけるマーカMa、Mbの位置と表示部190の各位置との関連付けを行うことができる。
【0100】
2−2:指示位置30の特定
図5には、撮像画像52に含まれる光点La、Lbの位置に基づき、ガン型コントローラ10の指示位置30(図5ではpで表される)を特定する処理が示されている。
【0101】
図5(A)には、その処理の手順を示すフローチャートが示され、図5(B1)〜(B3)には、撮像画像52を用いた指示位置(P)を特定する処理の説明図が示されている。
【0102】
まず、図3に示す撮像画像52が得られた場合には、図5(A)に示すように、この撮像画像52に含まれる各光点La、Lbの重心位置q1、q2の(x、y)座標を求め、次に重心位置q1、q2を結ぶ直線のy軸に対する傾きθを求める処理を行う。
【0103】
図5(B1)は、その処理の具体例が示されている。
【0104】
次に、このようにして求めた重心位置q1、q2のxy座標及び前記傾きθに基づき、ステップS12、S14では、ガン型コントローラ10の指示位置30を特定する処理が行われる。
【0105】
即ちステップS12では、図5(B2)に示すように、ガン型コントローラ10の銃身の傾きを補正する処理として、撮像画像52に含まれる重心位置q1、q2を結ぶ直線を、原点Oを中心としてθ回転変換し、新たな重心位置q1’、q2’を求める処理を行う。
【0106】
次に、ステップS14では、新たな重心位置q1’、q2’を結ぶ直線の中点hのxy座標を求め、原点Oを介して、前記中点hと点対称の位置Pを表示部190上における指示位置30として特定する処理を行う。
【0107】
以上のようにして、本実施の形態によれば、撮像画像52に含まれる光点La、Lbの位置に基づき、ガン型コントローラ10の指示位置30を特定することができる。
【0108】
従って、このように特定された指示位置30を反映したゲーム演算処理が行われ、ゲーム画面を生成することが可能となる。
【0109】
2−3:光点の追跡
図6には、撮像画像毎の光点の対応関係を導き出す光点追跡処理の概念図が示されている。
【0110】
図6(B)は新規に撮像された撮像画像内における光点の位置を表す図である。また、図6(A)は前回撮像された撮像画像内における光点の位置、即ち、本実施形態において、CCDカメラ18は1/300秒毎に撮像画像の撮像を行うため1/300秒前の時点における光点位置を表す図である。
【0111】
図6(B)に表示された光点αは図6(A)に表示された光点α’が移動したものであり、図6(B)に表示された光点βは図6(B)の時点で新規に発生した光点であり、図6(A)に表示された光点γは図6(B)の時点では消滅している。以下、これら光点の移動、発生、消滅の判別手法について説明する。
【0112】
本実施の形態においては、次回の撮像までの間(1/300秒間)に光点が移動可能距離を、例えば、80ドットと予め定義している。そのため、光点の位置を中心に半径80ドットの円で描かれるエリアが移動可能エリアとなる。
【0113】
そして、前回撮像時に存在した光点の光点位置を中心に移動可能エリアを設定し、新規に撮像された光点が移動可能エリア内に存在するか否かを判別する。その結果、新規に撮像された光点が移動可能エリアに存在すれば光点の移動を意味し、移動可能エリアに新規に撮像された光点が存在しなければ光点の消滅を意味し、移動可能エリア内に存在しない新規に撮像された光点は光点の発生を意味する。
【0114】
具体的に、図6(B)と図6(A)を合成して表した図である図6(C)を用いて説明すると、前回撮像時に存在した光点α’を中心に斜線で表したエリアAα’が光点α’の移動可能エリアであり、光点γを中心に斜線で表したエリアAγが光点γの移動可能エリアである。
【0115】
新規に撮像された光点αはエリアAα’内に存在するため、光点α’が光点αの位置に移動したことがわかる。そのため、図6(A)の光点α’と図6(B)の光点αは同一光点であり、いずれの時点においてもID0が割り振られる。
【0116】
また、エリアAγ内には、新規に撮像された光点は存在しないため、新規撮像の時点までに光点γは消滅したことがわかる。そのため、図6(A)の時点では光点γにはID1が割り振られているが、図6(A)の時点でIDは割り振られていない。
【0117】
また、エリアAα’、エリアAγのいずれの領域内にも存在しない新規に撮像された光点βは新規に発生した光点であることがわかる。そのため、図6(A)の時点でIDは割り振られていないが、図6(B)の時点で光点βにはID2が割り振られている。
【0118】
本実施の形態においては、このような撮像画像毎の光点の対応関係を導き出す光点追跡処理を行った上で、点滅光源と識別体光源を判別するための光点生存時間、疑似振動光源と識別体光源を判別するための光点の加速度の変化量を求める。
【0119】
図7に、IDによって対応付けられた光点の撮像画像毎の光点情報の格納例を示す。本実施の形態においては、光点情報として光点の位置座標及び光点サイズを格納する。なお、光点サイズとは光点の面積を意味するものであるが、光点の直径や半径として表してもよい。
【0120】
2−4:識別体と点滅光源の判別
図8は、ガン型コントローラ10を固定した状態で識別体8a、8bの光源及び点滅光源を1/300秒周期で撮像した撮像画像であり、1フレームの間に図8(A)〜図8(E)の画像を(A)→(E)の順に撮像したものである。
【0121】
撮像画像に含まれる光点La、光点Lbは識別体8a、8bの光源を示しており、光点BLは蛍光灯等の点滅光源を示している。なお、実線で示された光点BLは点滅光源が発光している状態を表しており、破線で示された光点BL’は点滅光源が発光していない状態を表している。
【0122】
識別体の光源である光点La、光点Lbについては、図8(A)〜(E)のいずれの時点においても一定のサイズの光点として撮像されている。一方、光点BL、光点BL’については、図8(A)、(D)、(E)の時点では光点として撮像されているが、図8(B)、(C)の時点では光点として撮像されていない。
【0123】
このように、蛍光灯等の50Hz〜60Hzで点滅する点滅光源が、連続して発光できる期間は1フレーム以下の期間であるため、本発明においては、この点滅光源の特性を利用して識別体光源と点滅光源を判別する。
【0124】
具体的には、撮像画像を取得する毎に、同一光点として撮像画像内に存在する時間を光点生存時間としてカウントする。そして、予め設定されている光点の最低生存時間に達していない光点を点滅光源と特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する。
【0125】
2−5:識別体と疑似振動光源の判別
図9は、ガン型コントローラ10を固定した状態で識別体8a、8bの光源及び疑似振動光源を1/300秒周期で撮像した撮像画像であり、1フレームの間に図9(A)〜図9(E)の画像を(A)→(E)の順に撮像したものである。
【0126】
撮像画像に含まれる光点La、光点Lbは識別体8a、8bの光源を示しており、光点VLa、光点VLbは隣接して配置された2本の蛍光灯等の互いに発光のタイミングが異なる点滅光源である。従って、これら一組の点滅光源が疑似振動光源となる。なお、実線で示された光点VLa、光点VLbは点滅光源が発光している状態を表しており、破線で表された光点VLa’、光点VLb’は点滅光源が発光していない状態を表している。
【0127】
識別体の光源である光点La、光点Lbについては、図9(A)〜(E)のいずれの時点においても一定のサイズの光点として撮像されている。一方、光点VLa、光点VLa’については、図9(A)、(D)、(E)の時点では光点として撮像されているが、図9(B)、(C)の時点では光点として撮像されていない。また、光点VLb、光点VLb’については、図9(B)、(C)の時点では光点として撮像されているが、図9(A)、(D)、(E)の時点では光点として撮像されていない。
【0128】
そのため、本実施の形態において光点VLa、光点VLbは、図9(A)、(D)、(E)の時点では光点VLaの位置で発光し、図9(B)、(C)の時点では光点VLbの位置で発光する一の光源として検出される。
【0129】
図10は、実際にガン型コントローラ10を振り回した場合における、識別体の光源の移動経路LRと疑似振動光源の移動経路VLRを示したものである。なお、GRはガン型コントローラ10の移動経路、VLR−1、VLR−2はそれぞれ発光タイミングの異なる一組の点滅光源の移動経路を表している。
【0130】
これにより、識別体の光源はガン型コントローラ10を振りました方向に移動することがわかる。また、疑似振動光源は振動しながらガン型コントローラ10を振りました方向に移動することがわかる。
【0131】
図11は、ガン型コントローラ10を振り回した場合の時間軸に対する識別体の光源と疑似振動光源のx座標軸方向における座標位置を表したものであり、図11(A)が疑似振動光源、図11(B)が識別体の光源を表している。
【0132】
図11(A)の疑似振動光源と図11(B)の識別体の光源をフレーム周期Tで対比する。すると、加速から減速、減速から加速という加速度の急激な変化を起こす箇所が、図11(A)ではA1〜A3の合計3箇所であるのに対し、図11(B)ではB1の1箇所しかないことがわかる。
【0133】
また、図示しないがy座標軸方向についても同様の結果が得られる。
【0134】
このように、疑似振動光源は一組の点滅光源間を点滅光源の発光のタイミングに合わせて高速に動いているように認識されるため、通常の識別体の光源に対して、光点の加速度の変化量が多くなる。
【0135】
そのため、本発明においては、この疑似振動光源の特性を利用して疑似振動光源と点滅光源とを判別する。
【0136】
具体的には、撮像画像を取得する毎に、同一光点として撮像画像内に存在する光点の加速度の変化量が閾値を超えた回数を光点毎にカウントする。そして、閾値を超えた回数が多い光点を疑似振動光源と特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する。
【0137】
3.本実施の形態の処理
次に、本実施の形態の詳細な処理例について、図12〜図14に示すフローチャートを用いて説明する。
【0138】
3−1:ゲーム演算処理
本実施の形態におけるゲーム演算処理の具体的な手順について図12のフローチャートを用いて説明する。
【0139】
まず、ステップS100では、ゲーム演算処理で使用する各種データを初期化する処理を行う。
【0140】
続いて、ステップS200では、図13で詳述する点滅光源判別処理を行い、ステップS300では、図14で詳述する疑似振動光源判別処理を行う。なお、本実施の形態において、これらの処理を1フレーム内に5回程度行うため、ステップS200、ステップS300の処理は1/300秒周期で行われる。
【0141】
続いて、ステップS400では、ゲーム処理を行うか否かの判別処理を行う。ここで、ゲーム処理は、点滅光源判別処理や疑似振動光源判別処理と異なり、1フレーム毎に行われる。そのため、ゲーム処理を行う場合は、ステップS500に移行し、ゲーム処理を行わない場合は、ステップS200に移行する。
【0142】
最後に、ステップS500では、検出された識別体の位置に基づき、指示点の座標を計算する処理を行い、ステップS600では、特定された指示位置を反映したゲーム画像の生成等するゲーム処理を行う。ステップS500の指示点の座標計算処理の詳細は、前述した図5(A)に示すフローチャートで説明したため、説明は省略する。なお、本実施の形態において、これらの処理をフレーム周期に合わせて行うため、ステップS500、ステップS600の処理は1/60秒周期(1フレーム毎)で行われる。
【0143】
そして、このような一連の処理をゲームが終了するまで繰り返し行う(ステップS700)。
【0144】
3−2:光点の生存時間に基づく判別処理
光点の生存時間に基づき識別体と点滅光源を判別する処理について図13のフローチャートを用いて説明する。
【0145】
まず、ステップS210では、CCDカメラ18によって撮像された光点の光点データを1/300秒周期でバッファp[0]...p[N−1]に格納する処理を行う。本実施形態における光点データには、光点の位置情報を示すx座標成分、y座標成分及び、光点サイズが含まれている。
【0146】
続いて、ステップS212〜ステップS228では、バッファpに格納された光点の生存時間を算出し、識別体と点滅光源を判別する処理を行う。
【0147】
具体的には、ステップS212で、ループ処理に用いるカウンタ変数iを0で初期化する処理を行う。
【0148】
ステップS214では、光点の存続の有無を確認するため、光点サイズが0より大きいか否か判別する処理を行う。0より大きい場合には、ステップS216で光点の生存時間が格納されたバッファt[i]の値をインクリメントする処理を行う。また、0より小さい場合には、ステップS218でバッファt[i]の値を0に初期化する処理を行う。なお、ゲーム開始時に、バッファt[0]...t[N−1](Nは追跡する最大光点数を表し、本実施形態ではN=4)は初期化されている(図12のステップ100)。
【0149】
次に、ステップS220では、光点の生存時間が格納されたバッファt[i]の値が光点の最低生存時間T(本実施形態ではT=5。正確には撮像周期(1/300秒)にTを乗じた値が光点の最低生存時間となる。)よりも大きいか否か判別する処理を行う。Tより大きい場合には、ステップS222でバッファf[i]に有効光点(識別体)を意味する1を格納する処理を行う。Tより小さい場合には、ステップS224でバッファf[i]に無効光点(ノイズ光源)を意味する0を格納する処理を行う。
【0150】
ステップS226では、ループ処理に用いるカウンタ変数iをインクリメントする処理を行い、ステップS228では、インクリメントされたカウンタ変数iが追跡する光点数を表すNよりも大きいか否か判別する処理を行う。そして、カウンタ変数iの値がNよりも大きくなるまで、ステップS214〜ステップS228の処理を繰り返し行う。即ち、追跡する全ての光点について、ステップS214〜ステップS228の処理を行うことになる。
【0151】
最後に、ステップS230では、バッファp[n](n = 0...N−1)に格納された光点のうち、対応するf[n] = 1のものを識別体の光源の光点として優先的に採用する。
【0152】
なお、本実施形態では、光点サイズを用いて光点の生存の有無を判別しているが、光点の位置情報のみからこれらを判別するようにしてもよい。
【0153】
3−3:光点の加速度の変化量に基づく判別処理
光点の加速度の変化量に基づき識別体と疑似振動光源を判別する処理について図14のフローチャートを用いて説明する。
【0154】
まず、ステップS310〜ステップS314では、光点データを履歴バッファに格納し、履歴された光点データから光点の加速度の変化量を求める。
【0155】
具体的にはステップS310で、1/300秒周期で光点データを取得する毎に、光点データを格納する履歴バッファp[0][0]...p[N−1][M−1](Nは追跡する最大光点数、Mは光点データの履歴数を表し、本実施形態ではN=4、M=16)から、最新の光点データを格納するために最も古い光点データを消去し、履歴バッファをずらす処理を行う。なお、ゲーム開始時に、履歴バッファp[0][0]...p[N−1][M−1]は初期化されている(図12のステップ100)。
【0156】
ステップS312では、CCDカメラ18によって撮像された最新の光点データをバッファp[0][M−1]...p[N−1][M−1]に格納する処理を行う。本実施形態における光点データには、光点の位置情報を示すx座標成分、y座標成分が含まれている。なお、光点データには光点サイズを含めてもよい。
【0157】
ステップS314では、履歴バッファp[0][0]...p[N−1][M−1]に格納された光点データから光点の加速度の変化量を求める。
【0158】
ここで、加速度ベクトルの時間変化の絶対値は、位置ベクトルを3回微分することによって求められる。
【0159】
【数1】

また、微分式は離散近似を行うことによって以下のように近似することができる。
【0160】
【数2】

【0161】
そのため、単位時間あたりの加速度の変化量bは、b[n][m]=|a[n][m]−a[n][m−1]|に近似することができる。なお、加速度aは、a[n][m]=v[n][m]−v[n][m−1]に近似でき、単位時間あたりの速度vはv[n][m]=p[n][m]−p[n][m−1]に近似することができる。
【0162】
以上より、単位時間あたりの加速度の変化量を求める計算式は、b[n][m]=|p[n][m]−3p[n][m−1]+3p[n][m−2]−p[n][m−3]|となる。
【0163】
続いて、ステップS316〜ステップS330では、追跡したすべての光点について、求められた光点の加速度の変化量が閾値を超えた回数を求める。なお、ステップS318〜ステップS326の処理にて、追跡した一の光点における、加速度の変化量が閾値を超えた回数を求める。
【0164】
具体的には、ステップS316で、ループ処理に用いるカウンタ変数iを0で初期化する処理を行う。
【0165】
ステップS318では、ループ処理に用いるカウンタ変数jを3で初期化する処理及び、追跡する光点毎に加速度の変化量が閾値を超えた回数を格納するバッファd[i]を0で初期化する処理を行う。
【0166】
ステップS320では、求められた加速度の変化量が閾値を超えたか否か判別し、閾値を超えた場合は、ステップS322でバッファd[i]の値をインクリメントする。
【0167】
ステップS324では、ループ処理に用いるカウンタ変数jをインクリメントする処理を行う。
【0168】
ステップS326では、ステップS324でインクリメントされたカウンタ変数jが光点データの履歴数を表すMよりも大きいか否か判別する処理を行う。そして、カウンタ変数jの値がMよりも大きくなるまで、ステップS320〜ステップS326の処理を繰り返し行う。即ち、追跡した一の光点における履歴された全ての光点データについて、ステップS320〜ステップS326の処理を行うことになる。
【0169】
ステップS328では、ループ処理に用いるカウンタ変数iをインクリメントする処理を行う。
【0170】
ステップS330では、ステップS328でインクリメントされたカウンタ変数iが追跡する光点数を表すNよりも大きいか否か判別する処理を行う。そして、カウンタ変数iの値がNよりも大きくなるまで、ステップS318〜ステップS330の処理を繰り返し行う。即ち、追跡する全ての光点について、ステップS318〜ステップS330の処理を行うことになる。
【0171】
最後に、ステップS332では、有効な光点データのうち、加速度の変化量が閾値を超えた回数の小さい順(d[0]...d[N−1]の小さい順)に識別体の光源の光点として優先的に採用する。
【0172】
4.ハードウェア構成
図12に本実施の形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、DVD982(情報記憶媒体。CDでもよい。)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0173】
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセラレートする。これにより、オープニング画面やゲーム画面においてMPEG方式等で圧縮された動画像を表示できる。
【0174】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データ(頂点データや他のパラメータ)を描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。
【0175】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
【0176】
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納さ
れる。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980(CDドライブでもよい。)は、プログラム、画像データ、或いは音データなどが格納されるDVD982(CDでもよい。)にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
【0177】
なお本実施の形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0178】
そして、本実施の形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施の形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【0179】
以上のように、本発明には、本実施の形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【0180】
また本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システムに適用できる。
【0181】
本実施の形態では、シューティングゲームにおけるガン型コントローラ10の照準位置検出に用いる場合を例にとり説明したが、本発明はこれに限らず、これ以外の各種用途に適用することができる。例えば、ゲームの種類によっては、プレーヤオブジェクトの移動する方向や、各種アイテムを、前記ポインティングデバイスを用いて指示し、当該指示位置を反映したゲーム画像を生成するような構成を採用することも可能である。
【0182】
又、単に表示部190上における位置を指示するだけではなく、前記識別体8a、8bが複数設けられているため、コントローラの表示部に対する回転や傾き等の検出にも用いることができる。
【0183】
又、本実施の形態では識別体8a、8bを2個用いる場合を例にとり説明したが、より制度の高い指示位置の検出を行うためには、3個以上の識別体を用いる構成を採用してもよい。
【0184】
又、本実施の形態では、識別体を表示部の周囲に設けたが、表示部と関連の無い所望の位置に複数の識別体を配置してもよい。この場合でも、当該各識別体をポインティングデバイスの撮像手段で撮影した撮像画像内におけるマーカMa、Mbの位置と表示部の各位置とを関連付けておくことによって、ポインティングデバイスにより表示部の所望位置を指示することができる。
【0185】
又、本実施の形態では、識別体として、赤外光を発光する光源を用いる場合を例にとり
説明したが、本発明はこれに限らず、例えば、これ以外の非可視光を発する識別体、電磁波を発する識別体、音波を発する識別体等を用いてもよい。また、ノイズ光源の影響を最小限に抑えられる本発明では、プレーヤに視認される点を考慮すれば、可視光を発する識別体を用いてもよい。特に、表示部と関連の無い所望の位置に複数の識別体を配置した場合には、プレーヤに視認されてもゲームに与える影響は少ない。
【0186】
又、本実施の形態では、点滅光源として蛍光灯を対象に処理を行ったが、本発明はこれに限らず、所定の周期で点滅する光源であれば点滅光源となる。
【0187】
又、本実施の形態では、疑似振動光源として隣接して配置される2つの蛍光灯を対象に処理を行ったが、本発明はこれに限らず、3つ以上の蛍光灯が隣接して配置されるものでも疑似振動光源となる。
【0188】
又、本実施の形態では、疑似振動光源と識別体の光源の判別を加速度の変化量の回数を基に行ったが、本発明はこれに限らず、例えば、ポインティングデバイスの移動速度に対する相対速度等を基に行ってもよい。識別体の光源は、ポインティングデバイスの移動方向に動いているものと認識されるが、疑似振動光源は、振動しながらポインティングデバイスの移動方向に動いているものと認識されるため、このような処理方法でも識別体の光源と疑似振動光源を判別可能である。
【図面の簡単な説明】
【0189】
【図1】本実施の形態を家庭用ゲームシステムに適用した場合の例。
【図2】本実施の形態の画像生成システムのブロック図の例。
【図3】撮像画像の一例を示す説明図。
【図4】初期設定画面の一例を示す説明図。
【図5】撮像画像を用いて指示位置を検出する処理の説明図。
【図6】本実施の形態の光点追跡処理の説明図。
【図7】撮像画像毎の光点情報の格納例を示す説明図。
【図8】点滅光源の一例を示す説明図。
【図9】疑似振動光源の一例を示す説明図。
【図10】疑似振動光源の移動経路の一例を示す説明図。
【図11】時間軸に対する識別体の光源と疑似振動光源のx座標軸方向における座標位置を示す説明図。
【図12】本実施の形態の具体的な処理のフローチャート図。
【図13】本実施の形態における点滅光源と識別体の光源を判別する処理のフローチャート図。
【図14】本実施の形態における疑似振動光源と識別体の光源を判別する処理のフローチャート図。
【図15】本実施の形態を実現できるハードウェア構成の一例を示す図。
【符号の説明】
【0190】
2 家庭用のゲーム機
4 テレビ
8a、8b 識別体
10 ガン型コントローラ
12 ポインティングデバイス(ケーシング)
14 トリガ
16 レンズ
18 カメラ
20 処理部
22 通信部
30 指示位置
50 初期設定画面
52 撮像画像
90 本体装置
100 処理部
110 ゲーム演算部
112 識別体位置検出部
114 指示位置特定部
116 識別体光源特定部
116a 生存時間算定部
116b 加速度変化量算定部
117 光点情報履歴部
120 画像生成部
130 音生成部
170 記憶部
172 描画バッファ
174 テクスチャ記憶部
176 撮像画像用メモリ
178 光点情報記憶部
180 情報記憶媒体
190 表示部
192 音出力部
196 通信部
La、Lb 識別体の光源を示す光点
Ma、Mb マーカ
Ta、Tb ターゲットマーカ
BL、BL’ 点滅光源を示す光点
VLa、VLa’、VLb、VLb’ 疑似振動光源を示す光点
GR ガン型コントローラの移動経路
LR 識別体の光源の移動経路
VLR 疑似振動光源の移動経路

【特許請求の範囲】
【請求項1】
ゲーム用の画像を生成するためのプログラムであって、
非可視光を発する光源を光点として撮影可能な撮像手段を有するポインティングデバイスによる表示部上における指示位置を特定するために、前記撮像手段で撮影した撮像画像に含まれる前記光点の位置から前記表示部に関連づけられて配置された非可視光を発する複数の識別体の位置を検出する識別体位置検出部と、
前記検出された前記複数の識別体の位置に基づき、前記表示部上における前記ポインティングデバイスの指示位置を特定する位置特定処理を行う指示位置特定部と、
してコンピュータを機能させ、特定された前記指示位置を反映したゲーム画像を生成するとともに、
前記識別体位置検出部は、
前記撮像画像に含まれる光点の中から点滅光源及び疑似振動光源の少なくとも一方をノイズ光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する識別体光源特定処理を行う識別体光源特定部を含むことを特徴とするプログラム。
【請求項2】
請求項1において、
前記識別体光源特定部は、
前記撮像手段から1フレーム内に前記撮像画像を複数回取得し、前記識別体光源特定処理を行うことを特徴とするプログラム。
【請求項3】
請求項2において、
前記識別体光源特定部は、
前記撮像手段から前記撮像画像を取得する毎に、前記撮像画像に含まれている光点の光点生存時間を求める生存時間算定部を含み、
前記識別体光源特定処理では、
前記光点生存時間が所定時間に達していない光点を前記点滅光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定することを特徴とするプログラム。
【請求項4】
請求項2、3のいずれかにおいて、
前記識別体光源特定部は、
前記撮像手段から前記撮像画像を取得する毎に、前記撮像画像に含まれている光点の加速度の変化量を求める加速度変化量算定部を含み、
前記識別体光源特定処理では、
前記光点の加速度の変化量が閾値を超えた回数が高い光点を前記疑似振動光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定することを特徴とするプログラム。
【請求項5】
請求項4において、
前記加速度変化量算定部は、
前記撮像手段から前記撮像画像を取得する毎に、前記撮像画像に含まれる前記光点の少なくとも位置を含む情報を光点情報として履歴する光点情報履歴部を含み、
前記光点情報の履歴に基づき、前記光点の加速度の変化量を求めることを特徴とするプログラム。
【請求項6】
請求項5において、
前記光点情報履歴部は、
前記撮像手段から前記撮像画像を取得する毎に、光点履歴バッファに格納された前記光点情報を更新することを特徴とするプログラム。
【請求項7】
請求項1〜6のいずれかにおいて、
前記識別体位置検出部は、
前記撮像画像に含まれる前記光点の位置から前記表示部の外部に設置された前記複数の識別体の位置を検出することを特徴とするプログラム。
【請求項8】
請求項1〜7のいずれかにおいて、
前記ポインティングデバイスはシューティングデバイスとして形成され、
前記指示位置特定部は、
前記指示位置をシューティングデバイスの照準位置とすることを特徴とするプログラム。
【請求項9】
ゲーム用の画像を生成するためのプログラムであって、
電磁波発生源を撮影可能な撮像手段を有するポインティングデバイスによる表示部上における指示位置を特定するために、前記撮像手段で撮影した撮像画像に含まれる電磁波発生源の位置から前記表示部に関連づけられて配置された電磁波を発する複数の識別体の位置を検出する識別体位置検出部と、
前記検出された前記複数の識別体の位置に基づき、前記表示部上における前記ポインティングデバイスの指示位置を特定する位置特定処理を行う指示位置特定部と、
してコンピュータを機能させ、特定された前記指示位置を反映したゲーム画像を生成するとともに、
前記識別体位置検出部は、
前記撮像画像に含まれる電磁波発生源の中から点滅電磁波発生源及び疑似振動電磁波発生源の少なくとも一方をノイズ源として特定することで、前記撮像画像に含まれる電磁波発生源の中から前記複数の識別体の電磁波発生源を特定する識別体特定処理を行う識別体特定部を含むことを特徴とするプログラム。
【請求項10】
請求項1〜9のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項11】
ゲーム用の画像を生成するための画像生成システムであって、
非可視光を発する光源を光点として撮影可能な撮像手段を有するポインティングデバイスによる表示部上における指示位置を特定するために、前記撮像手段で撮影した撮像画像に含まれる前記光点の位置から前記表示部に関連づけられて配置された非可視光を発する複数の識別体の位置を検出する識別体位置検出部と、
前記検出された前記複数の識別体の位置に基づき、前記表示部上における前記ポインティングデバイスの指示位置を特定する位置特定処理を行う指示位置特定部と、
を含み、特定された前記指示位置を反映したゲーム画像を生成するとともに、
前記識別体位置検出部は、
前記撮像画像に含まれる光点の中から点滅光源及び疑似振動光源の少なくとも一方をノイズ光源として特定することで、前記撮像画像に含まれる光点の中から前記複数の識別体の光源を特定する識別体光源特定処理を行う識別体光源特定部を含むことを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate