以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.画像生成システム
図1(A)、図1(B)に本実施形態の画像生成システム(画像表示システム、ゲームシステム)の例を示す。本実施形態の画像生成システムでは、プロジェクションマッピングの投影画像を生成し、この投影画像を、投影装置30a、30bにより形状可変スクリーン20に投影する。形状可変スクリーン20は、プロジェクションマッピング用の物理スクリーンであり、1つの曲面又は複数の面(複数の曲面又は複数の平面又は曲面と平面の組合わせ)で構成され、形状が可変のスクリーンである。即ち本実施形態の画像生成システムでは、形状可変スクリーン20の形状を変化させる制御を行う。具体的には、投影画像に映る表示物の形状及び表示位置の少なくとも一方に応じて、形状可変スクリーン20の形状を変化させる。
投影装置(プロジェクタ)30a、30bは、その投影方向が形状可変スクリーン20に向かう方向になるように設置され、形状可変スクリーン20に投影画像を投影する。なお図1(A)、図1(B)では2つの投影装置30a、30bが設けられているが、本実施形態はこれに限定されず、投影装置の個数は1個であってもよいし、3個以上であってもよい。
プレーヤは、コントローラ50を手に持ち、このコントローラ50を用いて各種の操作を行う。コントローラ50には不図示の操作ボタン等の操作指示部が設けられており、プレーヤは、この操作指示部が操作することで、各種の操作情報を入力する。またコントローラ50に、赤外線等の光を出射する光出射部を設けてもよい。そして光出射部からの光により形状可変スクリーン20に形成されるスポット光の位置を、不図示の撮像部により撮像する。この撮像部は例えば投影装置30a、30bの位置に配置できる。そして、撮像画像に映るスポット光の位置と、形状可変スクリーン20の形状情報に基づいて、プレーヤがコントローラ50を向けた方向を求め、投影画像の表示物とのヒットチェック処理等を行う。なお、プレーヤはコントローラを持たなくてもよい。すなわち、プレーヤの姿勢をカメラ等の撮像装置によって入力し、それに対して画像処理等の演算処理を行うことで、プレーヤが入力を行う方式としてもよい。
図1(A)では、形状可変スクリーン20は複数のスクリーンパーツ20a、20b、20c、20d、20e、20f、20gにより構成される。図1(A)のスクリーンパーツ20a〜20fは、例えば直方体形状のスクリーンパーツであり、スクリーンパーツ20gは、スクリーンの底面パーツである。なおスクリーンパーツの形状は直方体形状には限定されず、種々の変形実施が可能である。
スクリーンパーツ20a〜20gの面が、形状可変スクリーン20を構成する複数の面になる。例えばスクリーンパーツ20a〜20fでは、プレーヤに対向する対向面や、対向面に直交する2つの側面が、形状可変スクリーン20を構成する複数の面になる。また図1(A)では、側面22、23、上面24により構成される遮光フード部が設けられている。この遮光フード部(22、23、24)を設けることで、形状可変スクリーン20に外光が入射して、投影画像のコントラストが低下して見えにくくなるなどの事態を抑制できる。
図1(A)、図1(B)において、前方向をDR1とし、後ろ方向をDR2とする。方向DR1は形状可変スクリーン20からプレーヤの方へと向かう方向であり、方向DR2は、方向DR1の反対方向である。また上方向をDR3とし、下方向をDR4とする。この場合に図1(B)では、例えばスクリーンパーツ20cが、方向DR1(DR2)に沿って移動しており、これにより形状可変スクリーン20の形状が変化している。同様に、他のスクリーンパーツ20a、20b、20d、20e、20fも方向DR1(DR2)に沿って移動することができ、これにより形状可変スクリーン20の形状が変化する。
図1(A)、図1(B)では、形状可変スクリーン20のスクリーンパーツ20a〜20fは、プレーヤから形状可変スクリーン20を見た平面視において、縦に分割された形状のパーツとなっている。
一方、図2(A)では、形状可変スクリーン20のスクリーンパーツ20a〜20fは、プレーヤから形状可変スクリーン20を見た平面視において、横に分割された形状のパーツとなっている。また図2(B)では、形状可変スクリーン20の底面部分が、格子状に配置された複数のスクリーンパーツにより構成されている。即ち、形状可変スクリーン20の底面部分のスクリーンパーツは、プレーヤから形状可変スクリーン20を見た平面視において、横及び縦に分割された形状のパーツになっている。この場合の底面部分のスクリーンパーツは、横及び縦のいずれか一方で分割された形状のパーツであってもよい。また図2(B)では、プレーヤに対向する面のスクリーンパーツ20hも設けられている。そして図2(B)に示すように、底面部分のスクリーンパーツ20gnは、方向DR3(DR4)に沿って移動する。このように、形状可変スクリーン20の形状としては、種々の変形実施が可能である。
図3に、本実施形態の画像生成システム(画像表示システム、ゲームシステム)の機能ブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図3に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
形状可変スクリーン20は、1つの曲面又は複数の面で構成され、その形状が可変のスクリーン(物理スクリーン)である。即ち、形状可変スクリーン20は、単一平面ではないスクリーンである。当該形状可変スクリーン20としては、1つの曲面で構成されるスクリーン、複数の平面で構成されるスクリーン、曲面部分と平面部分とを含むスクリーンなどを想定できる。
形状可変スクリーン20は形状変形機構60を含む。形状変形機構60は、形状可変スクリーン20の形状を変形させるための機構である。例えば形状可変スクリーン20は、図1(A)〜図2(B)に示すような複数のスクリーンパーツ(20a〜20g)と、スクリーンパーツを移動させることで形状可変スクリーン20の形状を変形する形状変形機構60を含む構成とすることができる。この場合のスクリーンパーツとしては、プレーヤから形状可変スクリーン20を見た平面視において、縦及び横の少なくとも一方で分割された形状のパーツを採用できる。また後述する図11(A)、図11(B)に示すように、形状可変スクリーン20は、可撓性スクリーン(28)と、可撓性スクリーンの少なくとも一部の位置を変位させることで形状可変スクリーン20の形状を変形する形状変形機構60を含む構成としてもよい。
撮像部40(カメラ)は、レンズ42等の光学系と、撮像素子44を有する。レンズ42は、例えば撮像素子44に像を映すレンズであり、形状可変スクリーン20の全体を撮像するための広角レンズ(例えば魚眼レンズ)である。撮像素子44は、例えばCCD又はCMOSセンサなどにより実現される。撮像部40はこれ以外にも赤外線フィルター等が設けられる。
操作部160は、プレーヤが操作データを入力するためのものである。この操作部160は、例えば図1(A)〜図2(B)のコントローラ50等により実現できる。操作部160は、赤外線等の光を出射する光出射部162を含むことができる。
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
投影装置30は、形状可変スクリーン20に投影画像を投影する。投影装置30は表示部190を含む。表示部190は、本実施形態により生成された投影画像を表示するものである。投影装置30が液晶プロジェクタである場合には、表示部190はLCDなどにより実現できる。投影装置30がDLPプロジェクタである場合には、表示部190はDMDなどにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
補助記憶装置194(補助メモリ、2次メモリ)は、記憶部170の容量を補うために使用される記憶装置であり、SDメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
通信部196は、有線や無線のネットワークを介して外部(例えば他の画像生成システム、サーバ、ホスト装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部100は記憶部170をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、ゲーム演算部102、オブジェクト空間設定部104、移動体演算部106、仮想カメラ制御部108、形状制御部110、受け付け部112、光出射方向判定部114、画像生成部120、音生成部130を含む。なおこれらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
ゲーム演算部102はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
オブジェクト空間設定部104は、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行う。例えば、移動体(人、動物、ロボット、車、飛行機、船舶機等)、マップ(地形)、建物、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクトデータ記憶部172には、オブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部104は、例えばフレーム毎にこのオブジェクトデータを更新する処理などを行う。
移動体演算部106は、人、動物、車、飛行機等の移動体(移動体オブジェクト)を移動させるための制御処理を行う。また移動体を動作させるための制御処理を行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(オブジェクト、モデルオブジェクト)をオブジェクト空間内で移動させたり、移動体を動作(モーション、アニメーション)させる制御処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
仮想カメラ制御部108は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点、基準仮想カメラ)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)や回転角度(X、Y、Z軸回りでの回転角度)や画角を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
例えば仮想カメラにより移動体を後方から撮影する場合には、移動体の位置又は方向の変化に仮想カメラが追従するように、仮想カメラの位置(視点位置)や方向(視線方向)を制御する。この場合には、移動体演算部106で得られた移動体の位置、方向又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させたりする制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は方向を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
そして本実施形態の画像生成システムは、図3に示すように、形状制御部110と画像生成部120を含む。
形状制御部110は形状可変スクリーン20の形状制御を行う。具体的には、1つの曲面又は複数の面で構成され形状が可変である形状可変スクリーン20の形状制御を行う。例えば形状制御部110は、形状変形機構60が形状可変スクリーン20の形状を制御するための制御信号の生成処理等を行う。画像生成部120は投影画像を生成する。具体的には、投影装置30(例えば図1(A)〜図2(B)の投影装置30a、30b)により形状可変スクリーン20に投影される投影画像を生成する。例えば画像生成部120は、オブジェクト空間に配置される複数のオブジェクト(敵オブジェクト、背景オブジェクト等)の情報に基づいて、プロジェクション用の投影画像(プロジェクションマッピング処理により生成された投影画像)を生成する。投影画像は、投影装置30が形状可変スクリーン20に対して投影する画像である。この投影画像は、液晶プロジェクタにおけるLCD或いはDLPプロジェクタにおけるDMDにより実現される表示部190に表示され、投影装置30の広角レンズ等の光学系により、形状可変スクリーン20に投影される。
そして本実施形態では形状制御部110は、投影画像に映る表示物の形状及び表示位置の少なくとも一方に応じて、形状可変スクリーン20の形状を変化させる。例えば投影画像の表示物の形状や表示位置が変化すると、それに連動して形状可変スクリーン20の形状を変化させる。具体的には、表示物の形状や表示位置に対応づけられた所与の形状に、形状可変スクリーン20の形状を設定する。
例えば本実施形態の画像生成システムはゲーム演算部102を含む。ゲーム演算部102は、プレーヤの操作情報に基づいてゲーム処理を行う。例えば操作部160により入力された操作情報に基づいて、ゲームを進行させるゲーム処理等を行う。この場合に形状制御部110は、ゲーム処理によって特定される表示物の形状及び表示位置の少なくとも一方に応じて、形状可変スクリーン20の形状を変化させる。例えばゲーム処理によりキャラクタ等の表示物がゲーム空間(オブジェクト空間)に登場すると、形状制御部110は、登場した表示物に合わせて形状可変スクリーン20の形状を変化させる。例えば形状可変スクリーン20のうち、登場した表示物の位置に対応する部分の形状を変化させる。また登場した表示物の形状に沿うように形状可変スクリーン20の形状を変化させる。またゲーム処理により表示物が移動した場合に、形状制御部110は、その表示物の移動位置に応じて、形状可変スクリーン20の形状を変化させる。また、移動する表示物の形状に沿うように形状可変スクリーン20の形状を変化させる。
また形状制御部110は、投影画像の表示物に対応づけられた所与の形状に、形状可変スクリーン20の形状を設定する。例えば、表示物と形状可変スクリーン20の形状とを予め対応づけておく。具体的には、記憶部170の形状テーブルデータ記憶部178が、表示物と、形状可変スクリーン20の形状(所与の形状)とを対応づけて記憶する。そして、ゲーム処理等により表示物が登場すると、登場した表示物に対応づけられた形状に、形状可変スクリーン20の形状を設定する。
また形状制御部110は、投影画像の表示物の表示タイミングよりも前の第1のタイミング(例えば第mフレーム)から形状可変スクリーン20の形状変形を開始する。例えば形状変形機構60を動作させて、形状可変スクリーン20の形状変形を開始させる。そして表示タイミング(例えば第nフレーム。n>m)において、形状可変スクリーン20の形状を所与の形状に設定する。即ち表示物に対応づけられた形状に設定する。例えば、その表示タイミングにおいて表示物がゲーム空間に登場する場合には、その表示物に対応する形状に、形状可変スクリーン20の形状を設定する。
この場合に画像生成部120は、上述の第1のタイミングと表示タイミングの間の期間において、表示物の表示イベントに対応づけられた演出画像を、投影画像として生成してもよい。この演出画像(演出映像)は、例えば表示タイミングにおける表示物の登場(表示)を演出するために用意された画像(映像)である。例えば表示物の表示イベントと演出画像とを対応づけて記憶部170に記憶しておき、第1のタイミングと表示タイミングの間の期間において、この演出画像を投影画像として投影装置30の表示部190に表示する。こうすることで、表示物の表示イベントの発生等をプレーヤに伝える演出画像を投影画像として表示できるようになる。
また形状可変スクリーン20が複数のスクリーンパーツにより構成される場合に、画像生成部120は、少なくとも1つのスクリーンパーツに表示物の画像が投影される投影画像を生成する。例えば、当該スクリーンパーツ(少なくとも1つのスクリーンパーツ)と表示物を対応づけて記憶部170に記憶しておく。そして画像生成部120は、当該スクリーンパーツに対して、それに対応づけられた表示物の画像が投影されるように投影画像を生成する。例えばゲーム処理により表示物が登場した場合に、その表示物に対応づけられたスクリーンパーツに対して表示物の画像が投影された投影画像を生成する。この場合に、画像生成部120は、表示物の表示タイミングまでは、少なくとも1つスクリーンパーツに対して背景画像が投影される投影画像を生成してもよい。例えば第1のタイミングから表示タイミングまでの間の期間においては、当該スクリーンパーツに対して背景画像が投影される投影画像を生成する。ここで背景画像は、表示物の背景(例えば海、地面等)となる画像である。そして表示タイミングになった場合に、画像生成部120は、当該スクリーンパーツに対して、そのスクリーンパーツに対応づけられた表示物が投影される投影画像を生成する。このようにすることで、第1のタイミングから表示タイミングまでの間の期間においては、当該スクリーンパーツに背景画像が投影され、表示タイミングになると表示物が投影されるような投影画像を表示できるようになる。
また形状制御部110は、表示物の形状又は表示位置が変化する変化イベントが発生した場合に、形状可変スクリーン20の形状を変化させてもよい。例えばゲーム演算部102が行うゲーム処理において、表示物の形状や表示位置が変化する変化イベントが発生したとする。この場合に形状制御部110は、例えばこの変化イベントに対応づけられた形状に、形状可変スクリーン20の形状を設定する。このようにすれば、表示物の形状や表示位置の変化に連動して、形状可変スクリーン20の形状を変化させることが可能になる。そして形状制御部110は、形状可変スクリーン20が複数のスクリーンパーツにより構成され、表示物の一部が変化又は消失する変化イベントが発生した場合に、表示物の一部に対応するスクリーンパーツを動かす制御を行ってもよい。例えばゲーム演算部102が行うゲーム処理において、表示物の一部の形状等が変化したり、表示物の一部が消失する変化イベントが発生したとする。この場合に形状制御部110は、表示物の一部の変化や消失に応じた形状に、形状可変スクリーン20の形状を設定する。こうすることで、表示物の一部の変化や消失に連動して、形状可変スクリーン20の形状を変化させることが可能になる。
また図3の画像生成システムは、受け付け部112と光出射方向判定部114を含む。受け付け部112は、投影画像の投影領域(スクリーン領域)を撮像する撮像部40からの撮像画像を受け付ける。例えば撮像部40の撮像方向(撮影方向)は投影画像の投影方向(投影装置の投影方向)に設定されている。具体的には、撮像方向が投影方向と例えば平行(略平行)になるように撮像部40は設置されている。そして撮像部40が、形状可変スクリーン20の投影領域の画像を撮像すると、その撮像画像のデータが、画像インターフェースとして機能する受け付け部112により受け付けられる。
光出射方向判定部114は、光出射部162から出射される光(赤外線等)の出射方向を判定する。そして光出射方向判定部114は、例えば光出射部162からの光と表示物(オブジェクト)とのヒット判定処理などを行う。即ち、光出射部162の光の出射方向に銃の弾が飛んだと想定し、光出射部162からの光により表される弾と表示物とのヒット判定処理を行う。また、例えば図1(A)、図1(B)のコントローラ50に光出射部162を設けた場合に、光出射方向判定部114は、光出射部162からの光の出射方向を判定することで、プレーヤがコントローラ50により指示した方向を判定する。
例えば光出射方判定部114は、光出射部162からの光(例えば赤外光)によるスポット光の撮像画像上での位置(撮像素子の座標系での位置)を求める。具体的には撮像部40からの撮像画像に対して画像処理等を行って、撮像画像に映るスポット光(赤外スポット光)の位置を検出する。そして光出射方向判定部114は、スポット光の撮像画像上での位置に基づいて、プロジェクション用スクリーンでのスポット光の位置であるスクリーンスポット光位置を求める。例えば光出射方向判定部114は、プロジェクション用スクリーンの形状情報(プロジェクション用スクリーンの形状を数式等で表した情報)に基づいて、スクリーンスポット光位置を求める。撮像画像上でのスポット光の位置は、撮像部40のレンズ42の位置を起点とする1つの半直線に対応している。その半直線の数式と、プロジェクション用スクリーンの形状情報から、両者の交点を求めることができる。この交点の空間位置が、スクリーンスポット光位置となる。即ち、スクリーンスポット光位置は、撮像画像上でのスポット光の位置に一対一に対応づけられる。
なお、プロジェクション用スクリーンは、物理スクリーンである形状可変スクリーン20に対応して、仮想3次元空間であるオブジェクト空間に配置設定される投影画像生成用の仮想的なスクリーンである。画像生成部120では、このプロジェクション用スクリーンの形状に合わせて歪み補正処理(プロジェクションマッピング処理とも呼ばれる)が行われることになる。このプロジェクション用スクリーンは、形状可変スクリーン20と同様に、単一平面ではないスクリーンであり、1つの曲面で構成されるスクリーン、複数の平面で構成されるスクリーン、曲面部分と平面部分とを含むスクリーンなどを想定できる。
そして光出射方向判定部114は、光出射部162又はプレーヤの代表位置として設定された設定位置から、スクリーンスポット光位置へと向かう方向を、光出射部162の光の出射方向として求める。即ち、光出射部162の位置(又はプレーヤの位置)として想定される代表位置を、設定位置として設定し、その設定位置と、スクリーンスポット光位置とを結ぶ直線の方向を、出射方向として求める。この出射方向は、光出射部162の現実の出射方向とは必ずしも一致しないが、ヒット判定処理等を実現するために、出射方向として仮想的に設定する。
そして光出射方向判定部114は、この出射方向に基づいて、オブジェクト空間内の表示物(オブジェクト)とのヒット判定処理を行う。即ち、標的対象の表示物とのヒット判定を行う。例えば、求められた出射方向に伸びる直線(光線)を設定し、この直線と表示物との交差判定を行うことで、光出射部162からの光(弾、ショット)が表示物にヒットしたか否かをチェックするヒット判定処理を行う。また光出射方向判定部114は、この出射方向に基づいて、プレーヤがコントローラ50により指示した方向等を判定する。
画像生成部120はプロジェクション用の投影画像を生成する。生成された投影画像は、投影装置30により、形状可変スクリーン20に投影される。これによりプレーヤは、仮想カメラから見たオブジェクト空間の画像を、ゲーム画像として見ることが可能になる。プロジェクション用の投影画像は、例えばプロジェクションマッピング処理で生成された投影画像である。プロジェクションマッピングは、映す対象(スクリーン)の状態(形状等)と投影装置30の状態(位置、方向等)と代表視点位置(プレーヤの視点位置)を考慮に入れて投影装置30で映す手法である。
具体的には画像生成部120は、描画バッファ176上のピクセル(投影画像のピクセル)が、投影装置30の光学系(広角レンズ等)を通して出射される光線と、プロジェクション用スクリーンとの交点位置と、代表視点位置を結ぶ直線を、仮想カメラの視線として描画バッファ176上のピクセルの色を決定する。例えばこの直線を仮想カメラの視線として、オブジェクト空間の情報からピクセルの色を決定する。具体的には、この直線とオブジェクト空間内のオブジェクトとの交点位置(この直線がオブジェクト空間において最初に到達するオブジェクト上の点の位置)に応じて、ピクセルの色を決定する。この処理はレイトレーシング法にて実現することもできるが描画負荷が大きく、リアルタイムでの実装が難しくなる。そこで、より実用的な方法としては、曲面のスクリーンになるべく近い形状の平面スクリーン(これを「代理平面」と呼ぶことにする)に対する描画結果をレンダーテクスチャに保存しておく手法で実現してもよい。そして、このようにしてピクセルの色を決定することで、投影画像が生成される。なお代表視点位置は、プレーヤの視点位置(仮想カメラの位置)と想定される位置である。
或いは、画像生成部120は、オブジェクト空間内のオブジェクトの頂点位置と代表視点位置を結ぶ直線を求め、この直線とプロジェクション用スクリーンとの交点位置を求める。そして、求められた交点位置に基づいて、オブジェクトに対応する描画オブジェクトについての描画バッファ176上での頂点位置を求める。そして、求められた頂点位置に基づいて、描画バッファ176に描画オブジェクトを描画することで、投影画像を生成する。ここで、描画オブジェクトは、描画対象となる3次元オブジェクトに対応する2次元オブジェクトである。例えば、3次元オブジェクトは、3次元空間(オブジェクト空間)に配置されるオブジェクトを意味し、例えばその頂点の座標値として3次元の座標値(X、Y、Z座標値)を有するオブジェクトである。一方、描画オブジェクトは、例えばその頂点の座標値として2次元の座標値(X、Y座標)を有するオブジェクトである。また描画バッファ176は、例えばフレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファである。
2.本実施形態の手法
次に本実施形態の手法について具体的に説明する。
2.1 形状可変スクリーンの形状制御
本実施形態では、投影画像に映る表示物の形状や位置に基づいて形状可変スクリーン20の形状を制御する手法を採用している。例えばプレーヤの操作情報(入力情報)に応じて進行するゲームにおいて、ゲームの進行状況に連動して形状可変スクリーン20(可動スクリーン)の形状を制御する。そして、注目対象となる表示物(例えば強調して表示したい表示物)に適した所与の形状に、形状可変スクリーン20の形状を変化させる。そして例えば形状可変スクリーン20が、当該所与の形状に達した際に、その表示物の画像を含む投影画像を生成し、その投影画像をプロジェクションマッピングにより形状可変スクリーン20に投影して表示する。
例えば図4(A)〜図5(B)は釣りゲームの例である。図4(A)では、プレーヤがコントローラ50(光出射部162)により指示した位置に、浮きを表す表示物52が表示されている。例えばコントローラ50が光出射部162を有する場合には、光出射部162の光のスポット光により指示される位置に表示物52が表示される。また底面のスクリーンパーツ20gには、海を表す背景画像や浮きを表す表示物52の画像が、投影画像として投影されている。
図4(B)では、スクリーンパーツ20dが、プレーヤ側(前側)の方向DR1に移動している。即ち、複数のスクリーンパーツ20a〜20gのうち、スクリーンパーツ20dの位置が変化することで、形状可変スクリーン20の形状が変化している。この場合に、スクリーンパーツ20dに対しては、海の背景画像が投影されている。そして形状可変スクリーン20の形状が変化しても、プロジェクションマッピングによる歪み補正が行われているため、スクリーンパーツ20dに投影される海の背景画像は、プレーヤから見て不自然さのない画像になる。
その後、図5(A)では、スクリーンパーツ20dに対して、魚を表す表示物54が投影される。即ちプレーヤが釣りゲームにおいて釣り上げた魚の表示物54が表示される。具体的には、釣り上げられて水面から飛び跳ねる魚の表示物54が表示される。この表示物54は、当該ゲームにおいて強調表示したい表示物であり、本実施形態では、この表示物54の表示の際に、形状可変スクリーン20を表示物54に適した形状に変形する。
以上のように本実施形態では、図5(A)の表示物54の表示タイミングよりも前の第1のタイミングから、図4(A)、図4(B)に示すように形状可変スクリーン20の形状変形を開始する。そして図5(A)の表示タイミングにおいて、形状可変スクリーン20の形状が、表示物54に対応づけられた所与の形状に設定される。即ち、スクリーンパーツ20dの位置が移動することで、形状可変スクリーン20の形状が、表示物54の表示に適した所与の形状に設定される。このように図4(A)〜図5(A)では、投影画像に映る表示物54の形状に対応する形状に、形状可変スクリーン20の形状が変化している。
そして当該表示タイミングにおいて、スクリーンパーツ20dに対して表示物54の画像が投影される投影画像が生成される。一方、第1のタイミングと表示タイミングの間の期間においては、図4(B)に示すように、スクリーンパーツ20dに対して背景画像が投影される投影画像が生成される。このように背景画像をスクリーンパーツ20dに投影することで、プレーヤに気づかれないようにスクリーンパーツ20dを移動して、形状可変スクリーン20を変形することが可能になる。そして表示タイミングにおいて図5(A)に示すように、プレーヤ側に移動したスクリーンパーツ20dに対して魚の表示物54を投影して表示することで、あたかもプレーヤの直ぐ眼の前で魚が釣れたかのような仮想現実感をプレーヤに与えることが可能になる。
なお第1のタイミングと表示物54の表示タイミングの間の期間において、図5(B)に示すような演出画像を表示してもよい。この演出画像は魚の表示物54の表示イベントに対応づけられた演出画像である。即ち図5(A)のように実際に魚が釣り上げられる前に、釣り糸により引き寄せられる魚の表示物56の画像を、演出画像として表示する。例えば、引き寄せられる魚の表示物56がスクリーンパーツ20dに投影された演出画像を、投影画像として生成する。
例えば、図4(A)、図4(B)のように形状可変スクリーン20の形状変形が開始し、図5(A)のように、釣られた魚の表示物54に適した形状に形状可変スクリーン20が設定されるまでには、ある程度の長さの期間を要する。従って、この期間において、図5(B)のような演出画像を表示することで、プレーヤの注意をそらすことが可能になり、形状可変スクリーン20の形状変形を目立たなくすることが可能になる。
なお第1のタイミングと表示タイミングの間に表示される演出画像は図5(B)の画像に限定されず、種々の変形実施が可能である。即ち、演出画像は、表示物の表示イベントに対応づけられた画像であればよく、表示物の表示を演出するような種々の演出画像を採用できる。また図4(B)、図5(A)、図5(B)では、1個のスクリーンパーツ20dに対して、背景画像や表示物54、56の画像を投影しているが、複数個のスクリーンパーツにこれらの画像を投影するようにしてもよい。
図6(A)、図6(B)は、図3の形状テーブルデータ記憶部178に記憶される形状テーブルデータの例である。この形状テーブルデータでは、図6(A)に示すように、表示物OB1、OB2、OB3の各々に対して、スクリーン形状SHP1、SHP2、SHP3が対応づけられて記憶される。即ち、各表示物の表示に適した各スクリーン形状SHP1、SHP2、SHP3のデータが、各表示物OB1、OB2、OB3に対応づけられて記憶される。そして、形状制御部110は、表示物OB1を表示する場合には、表示物OB1に対応づけられたスクリーン形状SHP1に、形状可変スクリーン20の形状を設定する。また形状制御部110は、表示物OB2、OB3を表示する場合には、表示物OB2、OB3に対応づけられたスクリーン形状SHP2、SHP3に、形状可変スクリーン20の形状を設定することになる。
図6(B)はスクリーン形状データの例である。図4(A)〜図5(B)の形状可変スクリーン20は、複数のスクリーンパーツ20a〜20gにより構成される。このうちスクリーンパーツ20a〜20fは、方向DR1(DR2)に沿ってその位置が移動する。図6(B)では、例えばスクリーン形状SHP1のデータとして、スクリーンパーツ20a〜20fの位置Z1a〜Z1fのデータが記憶される。位置Z1a〜Z1fは、例えば奥行き方向(DR1)での位置である。またスクリーン形状SHP2のデータとして、スクリーンパーツ20a〜20fの位置Z2a〜Z2fのデータが記憶され、スクリーン形状SHP3のデータとして、スクリーンパーツ20a〜20fの位置Z3a〜Z3fのデータが記憶される。このような各スクリーン形状SHP1、SHP2、SHP3の形状データが、図6(A)のように各表示物OB1、OB2、OB3に対応づけられて記憶される。
そして形状制御部110は、例えば表示物OB1が表示されるイベントが発生した場合には、この表示物OB1に対応づけられたスクリーン形状SHP1のデータを、形状テーブルデータ記憶部178から読み出す。そして形状可変スクリーン20の各スクリーンパーツ20a〜20fの各位置を、初期位置から、位置Z1a〜Z1fに変化させる制御を行う。表示物OB2、OB3についても同様である。このようにすることで、各表示物OB1、OB2、OB3の表示時(登場時)において、形状可変スクリーン20の形状を、各表示物OB1、OB2、OB3の表示に適した形状に設定できるようになる。
図7(A)、図7(B)は、形状可変スクリーン20の形状変形のシーケンスを説明する図である。図7(A)に示すように第1のタイミングTM1で形状可変スクリーン20の形状変形を開始する。即ち図4(B)に示すようにスクリーンパーツ20dを移動させることで、形状可変スクリーン20の形状変形を開始する。そして表示タイミングTM2で表示物を表示する。即ち図5(A)に示すように、注目対象となる表示物54を表示する。
一方、図7(B)では、第1のタイミングTM1と表示タイミングTM2の間の期間において、演出画像を表示する。例えば図5(B)に示すような演出画像(表示物56)を表示し、その後に、表示タイミングにおいて図5(A)に示すように、注目対象となる表示物54を表示する。この場合に例えば図7(C)に示すように、各表示物OB1、OB2、OB3に対して、形状可変スクリーン20のスクリーン形状SHP1、SHP2、SHP3や、演出画像(演出映像)IME1、IME2、IME3を対応づけて記憶しておく。そして、例えば表示物OB1が登場して表示されるイベントにおいては、第1のタイミングTM1と表示タイミングTM2の間の期間において、演出画像IME1を表示する。そして表示タイミングTM2において、形状可変スクリーン20をスクリーン形状SHP1に変形して、表示物OB1を表示する。同様に、表示物OB2が登場して表示されるイベントにおいては、第1のタイミングTM1と表示タイミングTM2の間の期間において、演出画像IME2を表示する。そして表示タイミングTM2において、形状可変スクリーン20をスクリーン形状SHP2に変形して、表示物OB2を表示する。表示物OB3についても同様である。
例えば本実施形態では、形状制御部110は、ゲーム状況から、表示物の表示タイミングTM2を予測して、表示タイミングTM2の前の第1のタイミングTM1から形状可変スクリーン20の形状変形を開始する。この際に、例えばスクリーンパーツ20dの移動速度をなるべく遅くし、形状可変スクリーン20の形状変形が、プレーヤになるべく気づかれないようにする。また、スクリーンパーツ20dに背景画像を投影することで、形状可変スクリーン20の形状変形を更に目立たなくすることが可能になる。
一方、プレーヤの入力に応じて表示物の表示位置が決定するような、表示物の表示位置や表示タイミングの予測が困難な状況では、例えばスクリーンパーツ20dの移動速度を速くし、形状可変スクリーン20を素早く形状変形する。例えば図5(B)のように、浮き(表示物52)が引っ張られているポイントまで、スクリーンパーツ20dが高速に移動し、魚(表示物56)が水面近くで飛び跳ねる演出画像を表示する。また浮きが前後に激しく動く演出画像も表示する。このような演出画像を表示することで、実際に魚が釣れるまでの時間稼ぎが可能になる。
そして、魚が釣れたという確定判定が行われると、図5(A)に示すようにスクリーンパーツ20dに釣れた魚(表示物54)の画像を投影して表示する。この場合にスクリーンパーツ20dはプレーヤの近くまで移動しているため、あたかも自身の直ぐ眼の前で魚が釣れたかのような仮想現実感を、プレーヤに与えることができる。即ち、本実施形態では、スクリーンパーツ20d等の形状に合わせたプロジェクションマッピングの歪み補正が行われて、魚(表示物54)の画像がスクリーンパーツ20dに投影されている。このため、スクリーンパーツ20dの存在をあまり感じさせない状態で、魚の画像をプレーヤに表示できるようになる。特に後述の図17(A)〜図17(C)のような立体視の手法を採用すれば、この効果を更に高めることが可能になる。なお、以上では形状可変スクリーン20を変形した後に、表示物を表示する場合について説明したが、形状可変スクリーン20の変形タイミングと、表示物の表示タイミングをほぼ同時のタイミングにするなどの変形実施も可能である。
図8(A)、図8(B)は、プレーヤがコントローラ50を用いてシューティングゲームを行う場合の例である。なお、図8(B)や後述する図9では、斜め上から俯瞰した場合に歪みが無いかのように表現されているが、実際にはプレーヤの位置から見た状態で歪みが無いように歪み補正が行われているものとする。
図8(A)でボスキャラの登場がプレーヤに知らされ、形状可変スクリーン20の形状変形が開始する。そして図8(B)では、ボスキャラである戦艦の表示物58の形状に対応するように、形状可変スクリーン20の形状が変化する。即ち図8(B)では、投影画像に映る表示物58の形状に応じて、形状可変スクリーンの形状20が変化している。具体的には、表示物58の形状に合うように、形状可変スクリーン20を構成するスクリーンパーツ20a〜20eが方向DR1に沿って移動する。この形状変形は例えば図6(A)、図6(B)で説明した形状テーブルデータに基づいて実現できる。例えば、表示物58=表示物OB1とした場合に、スクリーン形状SHP1のデータとして、スクリーンパーツ20a〜20eの位置Z1a〜Z1e(DR1方向での位置)のデータが形状テーブルデータ記憶部178から読み出される。そして、ボスキャラである戦艦の表示物58の登場時に、これらの位置Z1a〜Z1eに、スクリーンパーツ20a〜20eを移動させることで、図8(B)のような形状可変スクリーン20の形状変形が実現される。
そしてプレーヤが持つコントローラ50には光出射部162が設けられており、例えばプレーヤがコントローラ50に設けられたトリガー等を引くことで、光出射部162から光(赤外光)が出射され、シューティングゲームが実現される。光出射部162からの光によるヒット判定処理は、前述したように図3の光出射方向判定部114により行われる。例えば光出射方向判定部114は、投影画像の投影領域を撮像する撮像部40の撮像画像に基づいて、撮像画像上でのスポット光の位置を求める。次に、撮像画像上でのスポット光の位置に基づいて、形状可変スクリーン20に対応するプロジェクション用スクリーンでのスクリーンスポット光位置を求める。この場合に、物理スクリーンである形状可変スクリーン20の形状変形に応じて、仮想スクリーンであるプロジェクション用スクリーンも変形させ、変形後のプロジェクション用スクリーンの形状情報に基づいて、スクリーンスポット光位置を求める。次に、光出射方向判定部114は、光出射部162又はプレーヤの代表位置として設定された設定位置から、スクリーンスポット光位置へと向かう方向を、光出射部162の光の出射方向として求める。そして光出射方向判定部114は、光出射部162の光の出射方向に銃の弾が飛んだと想定し、光出射部162からの光により表される弾と表示物とのヒット判定処理を行う。
図9は、このようにしてプレーヤがコントローラ50によりシューティングを行って、弾がヒットすることで、表示物58である戦艦の船首部分が破壊されて消失した状態を示している。このように表示物58が破壊等されてその形状(或いは表示位置)が変化する変化イベントが発生すると、それに応じて本実施形態では形状可変スクリーン20の形状についても変化させる。例えば図9では、表示物58の一部が消失(或いは変化)する変化イベントが発生している。このため表示物58の一部に対応するスクリーンパーツ20cを方向DR2側に動かす制御を行う。即ちコントローラ50によるプレーヤのシューティングにより、戦艦の艦首部分が破壊されて消失したため、艦首部分に対応するスクリーンパーツ20cを、後ろ側の方向DR2に移動させる。そして、このようにスクリーンパーツ20cが移動した形状可変スクリーン20に対して、艦首部分が破壊された戦艦の表示物58の画像を投影する。このようにして、戦艦の各部分が破壊されるごとに、破壊箇所に対応するスクリーンパーツを後ろの方向DR2に移動させる。そして例えば戦艦が完全に破壊されると、全てのスクリーンパーツ20a〜20eを後ろ方向DR2に移動させ、例えば図8(A)に示すような初期状態の配置に戻す。このようにすれば、ゲーム進行に伴い変形する表示物58の形状に対応するように、形状可変スクリーン20の形状も変化するようになる。従って、より仮想現実感が高いリアルな画像をプレーヤに表示できるようになる。
2.2 形状可変スクリーン
次に形状可変スクリーン20の種々の構成例について説明する。図10(A)、図10(B)では、形状可変スクリーン20は、複数のスクリーンパーツ20a〜20eと、スクリーンパーツ20a〜20eを移動させることで形状可変スクリーン20の形状を変形する形状変形機構60を有する。図10(A)は形状可変スクリーン20を上方向から見た模式図であり、図10(B)は形状可変スクリーン20をプレーヤ側から見た平面視図である。図10(B)に示すように、スクリーンパーツ20a〜20eは、プレーヤから形状可変スクリーン20を見た平面視において、縦(或いは横でもよい)に分割された形状のパーツとなっている。
形状変形機構60は、ロッド部62a〜62eと駆動部64a〜64eを有する。ロッド部62a〜62eの一端はスクリーンパーツ20a〜20eに取り付けられる。ロッド部62a〜62eは、駆動部64a〜64eにより方向DR1又は方向DR2に沿って移動する。これにより、ロッド部62a〜62eの一端に取り付けられたスクリーンパーツ20a〜20eも方向DR1又は方向DR2に沿って移動し、スクリーンパーツ20a〜20eがプレーヤ側に押し出されたり、プレーヤと反対側に引き込まれる。例えばロッド部62a〜62eはネジ軸により実現され、駆動部64a〜64eには、ネジ軸に嵌合するナットと、ナットを回転させるモータ等が内蔵される。そして例えばボール・ナット式等の駆動方式で、ネジ軸であるロッド部62a〜62eの移動が実現される。
図11(A)、図11(B)では、形状可変スクリーン20は、可撓性スクリーン28と、可撓性スクリーン28の少なくとも一部の位置を変位させることで形状可変スクリーン20の形状を変形する形状変形機構60を有する。図11(A)は形状可変スクリーン20を上方向から見た模式図であり、図11(B)はプレーヤ側から見た平面視図である。
形状変形機構60は、リール部66a、66b、ガイドローラ部68a、68b、70a〜70e、ロッド部72a〜72e、駆動部74a〜74e、ロッド部76a〜76cを有する。例えばロッド部72a〜72eはネジ軸により実現され、駆動部74a〜74eには、ネジ軸に嵌合するナットと、ナットを回転させるモータ等が内蔵される。
可撓性スクリーン28の一端はリール部66aに取り付けられ、可撓性スクリーン28の他端はリール部66bに取り付けられる。そしてリール部66a、66bにより、可撓性スクリーン28の巻き取りや送り出しが実現される。ガイドローラ部68a、68b、70a〜70eは、可撓性スクリーン28の巻き取りや送り出しに応じて回転し、可撓性スクリーン28をガイドする。
ガイドローラ部70b、70c、70dは、ロッド部72b、72c、72dの一端に取り付けられる。そしてロッド部72b、72c、72dは、駆動部74b、74c、74dにより方向DR1又は方向DR2に沿って移動する。これによって、可撓性スクリーン28のうち、ガイドローラ部70b、70c、70dに接触する部分の位置が変位して、形状可変スクリーン20の形状が変形する。
例えばロッド部72bが駆動部74bにより方向DR1側(プレーヤ側)に押し出されると、ロッド部72bの一端に取り付けられたガイドローラ部70bも方向DR1側に押し出され、形状可変スクリーン20の形状が変形する。またロッド部72cが駆動部74cにより方向DR1側に押し出されると、ロッド部72cの一端に取り付けられたガイドローラ部70cも方向DR1側に押し出され、形状可変スクリーン20の形状が変形する。ガイドローラ部70d、ロッド部72d、駆動部74dについても同様である。またガイドローラ部70b、70c、70dは、ロッド部76b及び駆動部74b、74c、74dによって、方向DR1と直交する方向である横方向に沿っても移動できるようになっている。
またガイドローラ部70a、70eは、ロッド部72a、72eの一端に取り付けられる。そしてガイドローラ部70a、70eは、ロッド部76a、76eに取り付けられた駆動部74a、74eによって、方向DR1に直交する方向である横方向に沿って移動する。このようにガイドローラ部70a、70eが横方向に移動することで、可撓性スクリーン28のうち、ガイドローラ部70a、70eに接触する部分の位置が変位して、形状可変スクリーン20の形状が変形する。これにより形状可変スクリーン20の最奥部の平面部の面積を変化させることなどが可能になる。
なお図11(B)では、形状可変スクリーン20に投影される画像の例についても示されている。図11(B)では、A1に示すように、可撓性スクリーン28に、注目表示物である戦艦の画像が表示されている。また遮光フード部を構成する側面22、23もスクリーンパーツとなっており、A2、A3に示すように水平線や岩などの画像が表示されている。またA4に示すように、底面のスクリーンパーツ20gには海の背景画像が表示され、またA5に示すように海の岩礁の画像も表示されている。またA6に示すように、戦艦の喫水線の部分には水しぶきの画像も表示されている。図11(B)に示すように形状可変スクリーン20を変形して、注目表示物である戦艦の画像やそれに付帯する画像を投影することで、迫力があるリアルな画像の表示が可能になる。
図12(A)、図12(B)では、形状可変スクリーン20は、可撓性スクリーン28と、形状可変スクリーン20の形状を変形する形状変形機構60を有する。図12(A)は形状可変スクリーン20を上方向から見た模式図であり、図12(B)はプレーヤ側から見た平面視図である。図12(A)、図12(B)は図10(A)、図10(B)のスクリーンパーツ20a〜20eを可撓性スクリーン28を用いて実現した例である。
形状変形機構60は、リール部80a〜80eと、ガイドローラ部82a〜82e、84a〜84eと、ロッド部86a〜86eと、駆動部88a〜88eと、スクリーン固定部90a〜90eを有する。例えばロッド部86a〜86eはネジ軸により実現され、駆動部88a〜88eには、ネジ軸に嵌合するナットと、ナットを回転させるモータ等が内蔵される。リール部80a〜80eは、スクリーンパーツ20a〜20eを構成する可撓性スクリーンの一端に取り付けられ、可撓性スクリーンの巻き取りや送り出しを行う。これらのスクリーンパーツ20a〜20eの可撓性スクリーンの他端はスクリーン固定部90a〜90eに取り付けられる。
図12(A)、図12(B)の構成によれば、ロッド部86a〜86eが駆動部88a〜88eにより方向DR1又は方向DR2に沿って移動することで、図10(A)、図10(B)と同様の形状可変スクリーン20の形状変形を実現できるようになる。
3.プロジェクション用の投影画像の生成手法
次に、プロジェクション用の投影画像の生成手法について説明する。例えばプロジェクション用スクリーンが、1つの曲面又は複数の面により構成されるスクリーンである場合に、本実施形態では、プロジェクション用スクリーンの形状情報に基づく歪み補正処理を行って、投影画像を生成する。以下では、投影画像の生成の際に行われる歪み補正手法の具体例について説明する。また、以下では説明の簡素化のために、プロジェクション用スクリーンが曲面形状(ドーム形状)のスクリーンである場合を例にとり説明する。プロジェクション用スクリーンの形状は数式やポリゴンモデルで表すことができる。従って、図1(A)、図1(B)等で説明した形状可変スクリーン20に対応するプロジェクション用スクリーン(仮想スクリーン)についても、これに対応する数式やポリゴンモデルで表すことで、以下に説明するプロジェクション用の投影画像の生成手法(歪み補正手法)を実現できる。
プロジェクション用スクリーンに画像を投影する場合に、投影装置の位置とプレーヤ(観察者)の位置が離れていると、画像の歪みが目立ってしまう。そこで、この歪みを予め考慮に入れて、投影装置からの投影画像(投影装置の描画バッファに描く画像)を生成することで、プレーヤから見て歪みのない映像を提示することが可能になる。
この場合に、スクリーンが単一の平面であれば、歪みは線形(パースによる歪み)となるため、射影変換行列を1つ用いるだけで簡単に補正することが可能になる。
しかし、単一平面ではないスクリーン(1つの曲面又は複数の面で構成されるスクリーン)である場合には、線形ではない歪みが加わるため、射影変換行列を1つ用いるだけという簡単な補正手法では、歪みを補正できず、画像の部分に応じて、細かく補正を行う必要がある。
このような歪み補正を実現する手法として、描画バッファのピクセル単位で歪み補正を行う手法と、3次元オブジェクトの頂点単位で歪み補正を行う手法が考えられる。まず、ピクセル単位での歪み補正手法について説明する。
3.1 ピクセル単位での歪み補正手法
描画バッファのピクセル単位での歪み補正手法では、図13や下記に示す(1)、(2)、(3)、(4)の処理を順に行う。
(1)描画バッファ(フレームバッファ)上のピクセルPX(XP,YP)が、投影装置のレンズを通して出射される光線RYを求める。
(2)その光線RYが、スクリーンSCと交差する交点PS(XS,YS,ZS)の位置を求める。スクリーンSCはプロジェクション用スクリーンであり、物理スクリーンである形状可変スクリーン20に対応する仮想スクリーンである。例えばスクリーンSCが、形状可変スクリーン20を表す方程式等の数式で表される場合には、直線RYを表す数式とスクリーンSCを表す数式を用いて交点PSを求める。このスクリーンSCを表す数式が、スクリーンSCの形状情報である。なお形状可変スクリーン20が曲面形状(ドーム形状)のスクリーンである場合には、形状可変スクリーン20は楕円面の方程式等により表すことができる。
(3)この交点PS(XS,YS,ZS)の色は、プレーヤ(観察者)がオブジェクト空間(仮想空間)を観察しているときの色である必要がある。そこで、プレーヤの代表視点に対応する仮想カメラVCの位置VPと、交点PS(XS,YS,ZS)の位置を結ぶ直線LVを求める。
(4)この直線LVを仮想カメラVCの視線としてオブジェクト空間の情報から、描画バッファ上の投影画像のピクセルの色を決定する。例えば、オブジェクト空間で最初に到達する3次元オブジェクトOB上の点PB(XB,YB,ZB)の位置を求め、それに応じて、描画バッファ上の投影画像のピクセルの色を決定する。
この場合に、ピクセル単位での歪み補正手法の改良手法では、上記の最後の(4)において、直線LVと3次元オブジェクトOBとの交点PB(XB,YB,ZB)の色を求める代わりに、あらかじめ描画しておいた平面(レンダーテクスチャ)と直線LVとの交点(レンダーテクスチャの座標で(U,V))の色を用いて、投影画像のピクセルの色を決定する。レンダーテクスチャは、予め、投影面になるべく近い平面(以下、代理平面と呼ぶ)を選んでおき、そこに通常の描画方法、すなわち、平面を投影面とする描画を行うことで作成できる。
図14に、このような代理平面PL1、PL2の一例を示す。点PPが直線LVと代理平面PL1(PL2)との交点である。なお図14においてGNはプレーヤがシューティングゲームに使用するガン型のコントローラであり、CMは投影画像の投影領域を撮像する撮像部(図3の40)である。
レンダーテクスチャの参照位置は、視点や投影装置の位置が変化しない限り、最初に1度だけ計算しておけばよい。そのデータを保持しておくための代表的な方法としては、描画バッファの1ピクセルごとに、レンダーテクスチャのどの位置(U,V)のピクセル値(テクセル値)を参照するかを、1枚のテクスチャとして保持しておく方法がある。このテクスチャを、「UVマップ」と呼ぶ。図15に、投影装置の描画バッファとUVマップとレンダーテクスチャの関係を示す。
図15のレンダーテクスチャの対応点(UV座標)を、描画バッファ上の全ピクセルについて求めて保持しておくことは、大きなリソースを必要とする。その大きなリソースを用意する余裕がない場合には、スクリーンSC上に適当に配置された代表頂点について、描画バッファ上の対応点(XP,YP)と、レンダーテクスチャ上の対応点(U,V)を求め、それらをつないだ三角形ポリゴンによるメッシュを作っておく。そして、三角形ポリゴンを描画するときに、三角形ポリゴンの頂点に情報として記録された(U,V)座標を参照し、三角形ポリゴン内部の点についてはそれらから補間された(U,V)座標を用いるようにする。このようにすれば、大幅にリソースを節約することが可能になる。
なお形状可変スクリーン20の形状が変化する場合には、この形状変化に連動してレンダーテクスチャをリアルタイムに書き換えればよい。例えば形状可変スクリーン20の形状変化に伴い、形状可変スクリーン20に対応する仮想的なプロジェクション用スクリーンの形状を表す数式等も連動させて変化させて、レンダリングテクスチャを生成すればよい。
3.2 頂点単位での歪み補正手法
次に描画オブジェクトの頂点単位で歪み補正を行う手法について説明する。この手法では、オブジェクト空間内の3次元オブジェクトの頂点を、投影装置の描画バッファ上の点に変換する。具体的には図16や下記に示す(1)、(2)、(3)、(4)の処理を順に行う。これは図13の手法の処理を逆の順で行うことに相当する。
(1)オブジェクト空間内の3次元オブジェクトOBの頂点V(XV,YV,ZV)の位置と、プレーヤの代表視点に対応する仮想カメラVCの位置VPとを結ぶ直線LVを求める。
(2)求められた直線LVとスクリーンSCの交点PS(XS,YS,ZS)の位置を求める。例えばスクリーンSCが形状可変スクリーン20を表す方程式等の数式で表される場合には、直線LVを表す数式とスクリーンSCを表す数式を用いて交点PSを求める。このスクリーンSCを表す数式が、スクリーンSCの形状情報である。
(3)交点PS(XS,YS,ZS)の位置と投影装置PJの位置を結ぶ直線LRを求める。
(4)直線LRに対応する描画バッファ上の点PD(XD,YD)の位置を求める。この点PDは、3次元オブジェクトOBに対応する描画バッファ上の描画オブジェクトOBDの頂点に相当する。なお直線LRから点PDを求める際には、投影装置PJのレンズの特性や配置等の光学系の情報を用いる。
以後は、描画オブジェクトOBDの頂点と頂点を結んで色を塗るラスタライズ処理を行うことで、描画バッファ上に投影画像を生成できる。
なお、この場合に、以下のような手法を用いることが望ましい。即ち、オブジェクト空間内の3次元オブジェクトOBに対して、頂点分割数設定部で設定された頂点分割数で頂点分割処理を行う。そして頂点分割処理後の3次元オブジェクトOBの頂点位置と仮想カメラVCの位置とを結ぶ直線と、プロジェクション用のスクリーンSCとの交点位置を求める。そして、求められた交点位置に基づいて、3次元オブジェクトOBに対応する描画オブジェクトOBDについての、描画バッファでの頂点位置を求める。そして、求められた描画オブジェクトOBDの頂点位置に基づいて、描画オブジェクトOBDを描画バッファに描画する処理を行って、プロジェクション用の投影画像を生成する。このような手法を採用すれば、例えばオブジェクト空間内での直線が、描画バッファ上においても直線として描画されてしまい、結果として歪んだ画像が観察されてしまうような事態の発生を抑制できる。
なお本実施形態の手法は立体視用の投影画像の生成にも適用できる。例えば立体視用の投影画像を生成する場合には、図17(A)に示すように左目用仮想カメラVCL(広義には第1視点用仮想カメラ)と右目用仮想カメラVCR(広義には第2視点用仮想カメラ)を用意する。そして、左目用仮想カメラVCL、右目用仮想カメラVCRのそれぞれを用いて、本実施形態で説明した手法により投影画像を生成することで、立体視用の投影画像を生成できる。
左目用仮想カメラVCL、右目用仮想カメラVCRの位置は、ヘッドトラッキング等により、プレーヤの左目および右目の位置を検出して設定してもよい。
また、プレーヤの左目および右目の位置の検出を行うことができない場合であっても、描画対象となる3次元オブジェクトの投影位置に応じて、プレーヤの視点位置はある程度推測できるので、それに合わせて左目用仮想カメラVCL、右目用仮想カメラVCRの位置を設定することもできる。例えば、図17(B)、図17(C)に示すように、描画対象となる3次元オブジェクトの投影位置に応じて左目用仮想カメラVCL、右目用仮想カメラVCRの位置(視点位置)を変化させてもよい。
例えば、図17(B)のD1に示す投影位置に投影されるような3次元オブジェクトについては、それを見るプレーヤ(視聴者)も、D1に示す投影位置の方向に顔を向けると考えられる。従って、図17(B)に示すように左目用仮想カメラVCL、右目用仮想カメラVCRの位置を設定して、立体視用の投影画像を生成する。
同様に、図17(C)のD2に示す投影位置に投影されるような3次元オブジェクトについては、それを見るプレーヤも、D2に示す投影位置の方向に顔を向けると考えられる。従って、図17(C)に示すように左目用仮想カメラVCL、右目用仮想カメラVCRの位置を設定して、立体視用の投影画像を生成する。こうすることで、プレーヤの視線方向等に応じた最適な投影画像を生成できるようになる。
なお、実際に立体視映像を観察するための手段としては、メガネ方式(具体的には、偏光方式、時分割方式、分光方式等)及び裸眼方式等が考えられる。それぞれに特徴があり、有利・不利となる環境条件もそれぞれ異なる。実施に当たっては、スクリーンの形状や表示内容、インタラクションの特徴などの環境条件に合わせて、適切なものを用いればよい。
4.変形例
次に本実施形態の手法が適用される種々の変形例について説明する。
図18(A)、図18(B)は、メダルゲーム装置への本実施形態の手法の適用例である。本実施形態の手法は、メダルゲーム装置のコインプッシャー部等に適用できる。例えば図18(A)において、メダル排出口200から排出されたメダル202は、フィールド部210を通って、メダル落下口204に落ちる。そして図18(B)では、多数のコイン202が散りばめられたコインプッシャー部のフィールド部210が形状可変スクリーンになっている。そして図18(B)に示すように、ボーナスチャンス等の演出において、フィールド部210である形状可変スクリーンが変形する。具体的には形状可変スクリーンを構成するスクリーンパーツ212が上に持ち上がり、このスクリーンパーツ212に対して、スロットのリールの画像(777等)が表示される。このようにスクリーンパーツ212が上に持ち上がるような形状可変スクリーンの変形を行って、このスクリーンパーツ212に対して種々の画像を表示することで、リールがあたかもその形状のまま立体的に飛び出したかのように見える派手な演出効果を実現できるようになる。
図19(A)、図19(B)は、クレーンゲーム装置等の景品獲得ゲーム装置への本実施形態の手法の適用例である。本実施形態の手法は景品獲得ゲーム装置の景品フィールド部に適用できる。図19(A)では、ぬいぐるみ等の景品220が置かれている景品フィールド部230が形状可変スクリーンになっている。そしてゲーム状況に応じた演出において、景品フィールド部230である形状可変スクリーンの形状を変形させ、それに見合った演出画像を形状可変スクリーンに投影して、更に景品が取れやすくなるメリットを発生させる。その際に、プロジェクションマッピングの投影は、景品220の位置を判別して、プロジェクションマッピングの投影が景品220の部分には行われないようにする。例えば図19(B)に示すように、景品フィールド部230である形状可変スクリーンのスクリーンパーツ232が上に持ち上げられる。これにより、スクリーンパーツ232の上に置かれていた景品220も上に持ち上げられる。この際に、スクリーンパーツ232には、例えば巨大キノコ等の表示物222が投影されており、あたかも景品220の下から巨大キノコが生えてきたかのような演出が行われる。この際に図19(B)のB1に示すように、巨大キノコの画像が景品220には掛からないような投影画像を生成することで、破綻の無い映像で目立つ演出を実現できるようになる。
図20(A)〜図20(D)は、モグラ叩きゲームやワニ叩きゲームなどのゲーム装置への本実施形態の手法の適用例である。本実施形態の手法は、このようなゲーム装置におけるモグラやワニのパーツ部分に適用できる。例えば図20(A)において、フィールド部240には、モグラ等が飛び出して来る複数の穴部242a〜242eが設けられている。そして図20(B)に示すように、穴部242から飛び出して来るモグラのパーツ部分244が、形状可変スクリーンのスクリーンパーツとなっており、このパーツ部分244に対してモグラの画像が投影される。従来のゲーム装置では、同じ穴部からは同一の表現態様のキャラクタ(同じモグラ)しか出現することができなかったが、本実施形態の手法を適用することで、様々な表現態様のキャラクタを出現させることが可能となる。
例えば、図20(C)では、プレーヤに叩かれたことで、その痛みにより泣いた表情のモグラのキャラクタを出現させている。即ち、このような表情のモグラの画像を、モグラのパーツ部分244(スクリーンパーツ)に投影することで、このような演出表現が可能となる。これにより、従来のゲーム装置では、叩かれても無表情(無反応)であったモグラのキャラクタに対して、様々な表情を与えることが可能になる。また図20(D)では、パーツ部分244に、モグラの代わりに爆弾の画像を投影する。こうすることで、モグラの代わりに爆弾が穴部242から飛び出て来て、これを叩くと爆弾が爆発して、プレーヤの得点が減点されてしまうなどの演出を実現できるようになる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、形状可変スクリーンの形状制御手法、プロジェクション用の投影画像の生成手法、形状可変スクリーンの構成等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム等の種々の画像生成システムに適用できる。例えば、図6、図7の説明では、表示物の位置とそれに対応するスクリーン位置の対応関係をテーブルで定義したが、表示物の位置に対応するスクリーン位置は、あらかじめ定義した数式に基づいて表示物の位置から算出することとしてもよい。このようにすることで、表示物の位置を一定の範囲内で乱数で決定するなど、より自由な位置に表示物を配置することができる。