ゲーム装置
【課題】プレイヤーが物体を画面に接近させたときに、その画面が物体により隠される部分に応じてキャラクタを移動させる。
【解決手段】ゲーム装置は、仮想三次元空間に配置されるキャラクタの移動を制御するCPU51と、仮想視点に基づきキャラクタを含む仮想三次元空間内の様子を表現したゲーム画像を生成する画像処理部60と、ゲーム画像を画面に表示する表示手段と、プレイヤーのゲーム操作により画面に接近した物体の位置を検出する位置検出手段とを備え、CPU51は、取得した物体の位置情報に基づいて物体に対応して設定されるグリッドポリゴンを仮想三次元空間に配置する位置を決定し、決定されたオブジェクトの位置と現在のキャラクタの位置とを比較して、オブジェクトとキャラクタが所定の位置関係にあると判定した場合に、キャラクタが現在と異なる位置へ移動するように仮想三次元空間におけるキャラクタの配置を制御する。
【解決手段】ゲーム装置は、仮想三次元空間に配置されるキャラクタの移動を制御するCPU51と、仮想視点に基づきキャラクタを含む仮想三次元空間内の様子を表現したゲーム画像を生成する画像処理部60と、ゲーム画像を画面に表示する表示手段と、プレイヤーのゲーム操作により画面に接近した物体の位置を検出する位置検出手段とを備え、CPU51は、取得した物体の位置情報に基づいて物体に対応して設定されるグリッドポリゴンを仮想三次元空間に配置する位置を決定し、決定されたオブジェクトの位置と現在のキャラクタの位置とを比較して、オブジェクトとキャラクタが所定の位置関係にあると判定した場合に、キャラクタが現在と異なる位置へ移動するように仮想三次元空間におけるキャラクタの配置を制御する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ゲーム画像を画面に表示してゲームを進行させるゲーム装置であって、特に、プレイヤーが物体を画面に接近させて行うゲーム操作に応答してゲームが進行するゲーム装置に関する。
【背景技術】
【0002】
従来、ゲーム画像を画面に表示してゲームを進行させるゲーム装置として、例えば、下記特許文献1に記載されたゲーム装置がある。このゲーム装置では、プレイヤーが操作するスティックでスクリーン上をタッチする等してゲームを進行している。具体的には、スクリーンに表示されたマトをスティックで叩いたり、スクリーンに表示された敵キャラクタをスティックでタッチしたまま移動させたりしながらゲームを進行している。
【特許文献1】特開2007−172585号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、プレイヤーが例えばブロックのような物体で画面を隠し、その画面を隠した部分に応じてゲームを進行させるゲーム装置の場合は、その物体により隠される画面の部分に応じて画面に投影される画像を変化させる必要がある。例えば、物体により隠される画面の部分にキャラクタが存在していた場合には、そのキャラクタをどのように移動させるか問題となる。
【0004】
本発明は、上述した問題点を解消するためになされたものであり、プレイヤーがブロックのような物体で画面を隠したときに、その画面を隠した部分に応じてキャラクタを移動させゲームを進行させることができるゲーム装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
上述した課題を解決するため、本発明にかかるゲーム装置は、仮想三次元空間に配置されるキャラクタの移動を制御する制御手段と、仮想視点に基づきキャラクタを含む仮想三次元空間内の様子を表現したゲーム画像を生成する画像生成手段と、ゲーム画像を画面に表示する表示手段と、プレイヤーのゲーム操作により画面に接近した物体の位置を検出する位置検出手段とを備え、制御手段は、位置検出手段から取得した物体の位置情報に基づいて、物体に対応して設定される板状ポリゴン又は仮想ブロックなどのオブジェクトを仮想三次元空間に配置する位置を決定し、決定されたオブジェクトの位置と現在のキャラクタの位置とを比較して、オブジェクトとキャラクタが所定の位置関係にあると判定した場合に、キャラクタが現在と異なる位置へ移動するように仮想三次元空間におけるキャラクタの配置を制御することを特徴とする。
【0006】
このゲーム装置によれば、プレイヤーが物体を画面に接近させたときに、その画面が物体により隠される部分に応じてキャラクタを移動させることができる。
【0007】
また、上記ゲーム装置において、制御手段は、オブジェクトの位置と現在のキャラクタの位置とを比較して、オブジェクトとキャラクタが互いに衝突する位置関係にあると判定した場合に、キャラクタが現在と異なる位置へ移動するように仮想三次元空間におけるキャラクタの配置を制御するようにしても良い。
【0008】
また、上記ゲーム装置において、位置検出手段は、プレイヤーが複数の物体を用いてゲーム操作を行った際に、物体それぞれの位置を検出するものであり、制御手段は、位置検出手段から取得した物体それぞれの位置情報に基づいて、物体それぞれに対応して設定される各オブジェクトを仮想三次元空間に配置する位置を決定し、決定された各オブジェクトの位置と現在のキャラクタの位置とを比較して、キャラクタが複数のオブジェクトによって囲まれた位置関係にあると判定した場合に、キャラクタが現在と異なる位置へ移動するように仮想三次元空間におけるキャラクタの配置を制御するようにしても良い。
【0009】
さらに、上記制御手段は、キャラクタが複数のオブジェクトによって囲まれた位置関係にあると判定した場合に、キャラクタを複数のオブジェクトによって囲まれた範囲に制限して移動させ、さらに、キャラクタを囲う複数のオブジェクトとは異なる別のオブジェクトの位置情報を位置検出手段から取得したときに、別のオブジェクトの位置と現在のキャラクタの位置とを比較して、別のオブジェクトとキャラクタが互いに衝突する位置関係にあると判定した場合に、キャラクタが囲まれた範囲外の位置へ移動するように仮想三次元空間におけるキャラクタの配置を制御するようにしても良い。
【0010】
さらに、上記制御手段は、キャラクタを現在と異なる位置へ移動させる際に、現在配置されているオブジェクトと移動後に配置されるキャラクタとの衝突を判定し、その判定結果に基づいて互いに衝突しない位置にキャラクタを配置するよう制御するようにしても良い。
【0011】
また、上記ゲーム装置において、位置検出手段は、画面に向けて赤外光を照射する発光手段と、発光手段から照射された赤外光が画面を通過し、プレイヤーのゲーム操作により画面に接近した物体に反射することにより得られる物体の像を撮影する撮影手段とを含み、撮影手段によって撮影された像に基づき、画面に対向して配置される物体の位置を検出することを特徴とするようにしても良い。
【発明の効果】
【0012】
本発明によれば、プレイヤーが物体を画面に接近させたときに、その画面が物体により隠される部分に応じてキャラクタを移動させることができるゲーム装置を提供することができる。
【発明を実施するための最良の形態】
【0013】
以下に添付図面を参照して、本発明に係るゲーム装置の好適な実施形態を詳細に説明する。本実施形態におけるゲーム装置は、スクリーンの手前側に設けられた台の上にプレイヤーがブロック(物体)を積み上げていき、積み上げられたブロックの載置状態に応じてゲーム内容を展開させていくアクション型のゲーム装置である。ゲームに関する処理の特徴は、積み上げられたブロックと画面に表示されるキャラクタとの仮想三次元空間内での位置を把握し、仮想三次元空間内でブロックとキャラクタとが重ならないように、キャラクタの移動を制御するものである。このようなゲーム装置の構成及び処理について以下に説明する。
【0014】
まず、本実施形態におけるゲーム装置の外観構成について説明する。図1は、ゲーム装置の外観構成図である。図1に示すように、ゲーム装置1は、筺体2と、ゲーム画像を表示するためのスクリーン3と、プレイヤーが操作するブロック6を載置するための載置台4と、ブロック6を収納するための収納部5と、を有する。
【0015】
スクリーン3は、筺体2の前面側に設けられ、筺体2によって略鉛直状態に支持されている。スクリーン3は、後述するプロジェクタによってスクリーン3の背面側から投射された光を透過させ、スクリーン3の前面に映像を映し出す透過型のスクリーンである。
【0016】
載置台4は、スクリーン3の前面側の下端部に設けられている。この載置台4上に載置する各ブロック6には、ブロック6同士を互いに組み合わせるための突出部6aおよび陥没部6bが設けられている。載置台4のブロック6を載置する面上には、突起部4aが設けられている。載置台4の突起部4aとブロック6の陥没部6bを嵌合させることで、ブロック6の載置位置を限定することができる。言い換えると、載置台4上の予め決められた場所にブロック6を載置させることができる。
【0017】
次に、本実施形態におけるゲーム装置1の内部構成について説明する。図2は、図1のII−II線断面図であり、図3は、ゲーム装置1の内部構成を示すブロック図である。図示のように、ゲーム装置1の筺体2の内部には、プロジェクタ(表示手段)10と、プロジェクタ用鏡19と、光源部20と、カメラ30と、カメラ用鏡39と、載置台駆動部40と、制御部50とが備えられている。
【0018】
プロジェクタ10は、スクリーン3にゲーム画像を投影するための投影装置である。このプロジェクタ10の光軸は、ゲーム装置1の後部側に設けられたプロジェクタ用鏡19に向けられている。プロジェクタ用鏡19は、プロジェクタ10からスクリーン3に至るまでの光路を屈折させる反射部材である。プロジェクタ10とプロジェクタ用鏡19は、プロジェクタ10からゲーム装置1の後方側上方に向けて投射された光線が、プロジェクタ用鏡19で屈折してスクリーン3の背面全体に行き渡るように配置されている。このようにプロジェクタ10とプロジェクタ用鏡19を配置することで、スクリーン3の前面全体にゲーム画像を表示させることが可能となる。
【0019】
光源部20は、スクリーン3を透過する赤外線(所定波長の光)をスクリーン3の背面側からスクリーン3に向けて投射するLED(光源)を複数有する。
【0020】
光源部(発光手段)20は、ゲーム装置1の上下方向に1列に並べられた複数のLED21と、LED21に沿ってゲーム装置1の上下方向に設けられた反射板22と、LED21および反射板22を支持する支持部材23とを有する。LED21は、例えば890nmの赤外線を照射する。反射板22は、LED21から照射された赤外線をスクリーン方向に反射させることで、赤外線がスクリーン3の背面外に拡散することを防止する。
【0021】
なお、光源部20が投射する光は、890nmの赤外線には限定されない。スクリーン3を透過することが可能な所定波長の光であればよい。
【0022】
図2および図3に示すカメラ30(撮影手段)は、光源部20による赤外線の投射先をスクリーン3の背面側から撮影するための撮影装置である。カメラ30は、入射光の光量を抑える減光フィルタ31と、特定の赤外線波長の光をピークとして透過させるバンドパスフィルタ32と、赤外線領域に感度分布を持つCCDカメラ33とを有する。バンドパスフィルタ32のピーク波長は、LED21が照射する赤外線の波長(本実施形態では890nm)と同値に設定される。
【0023】
カメラ30の光軸は、ゲーム装置1の後部側に設けられたカメラ用鏡39に向けられている。カメラ用鏡39は、スクリーン3からカメラ30に至るまでの光路を屈折させる反射部材である。カメラ30とカメラ用鏡39は、カメラ用鏡39で反射されて形成されるスクリーン3の背面全体を含む写像が、カメラ用鏡39からゲーム装置1の前方側上方に向けて投射され、この投射された写像をカメラ30で撮影できるように配置されている。このようにカメラ30とカメラ用鏡39を配置することで、LED21から照射されてスクリーン3を透過した後に載置台4上のブロック6の表面で反射した赤外線をカメラ30で捉えることが可能となる。
【0024】
このように、プロジェクタ10およびカメラ30は、スクリーン3の背面側において、それぞれの光軸が異なるように配置されている。これにより、プロジェクタ10の光路とカメラ30の光路が互いに干渉し合う事態を防止することができる。
【0025】
載置台駆動部40は、例えば、モータを含んで構成される。載置台駆動部40は、制御部50の指示に従って、載置台4のブロック6を載置する載置面の傾きを、ブロック6を載置できる状態とブロック6を載置できない状態とに変化させる。載置台4の載置面が、ブロック6を載置できる状態からブロック6を載置できない状態に傾けられると、載置台4上に載置されていたブロック6が収納部5内に落下する。
【0026】
制御部50は、中央演算処理装置としてのCPU(制御手段)51と、記憶部52としてのROMおよびRAMを有する。このような制御部50では、CPU51が、記憶部52内のROMに記憶されている各種の制御プログラムに従って、ROMやRAMに記憶されている各種のデータを用いながら各種の処理を実行することでゲームを進行させる。これにより、上述したゲーム装置1の各部が制御され、ゲーム状況が制御される。
【0027】
制御部50は、例えば以下のような制御を行う。制御部50は、ゲームを開始すると、載置台4上に載置されたブロック6を検出する。制御部50は、検出したブロック6の載置位置に対応するゲーム画面上にオブジェクトを配置する。制御部50は、配置したオブジェクトに対してキャラクタを反応させながらゲーム状況を制御する。キャラクタの反応としては、例えば、キャラクタにオブジェクトを登らせる等が該当する。また、制御部50は、ブロック6によりキャラクタが隠されたしまったときにそのキャラクタを移動する制御を行なう。
【0028】
載置台4上に載置されたブロック6の検出は、例えば以下のように行う。制御部50は、カメラ30で撮影された映像を用いて、載置台4上に載置されたブロック6を検出する。ここで、上述したように光源部20から投射される赤外線はスクリーン3を透過する。したがって、スクリーンを隔てて載置台4上に載置されているブロック6にも赤外線が照射され、赤外線はブロック6の表面で反射することになる。これにより、カメラ30は、スクリーン3を隔てて置かれているブロック6の画像を撮影することができる。
【0029】
したがって、例えば、制御部50は、カメラ30によって撮影された映像データをバッファメモリに記録し、その映像データを予め設定したピクセルサイズに分割したグリット単位で画像認識処理を行う。このとき、バッファメモリの記憶容量に対応するピクセルサイズに基づき、記憶された映像データを予め設定したピクセルサイズに分割し処理を行う。例えば、160個のグリットに分割された場合は、この160個のグリットをインデックス化したテーブルとして扱うことができる。なお、分割グリッドのピクセルサイズは、ブロック6に大きさ(面積)に対応させて予め設定しおけば、以下の画像認識処理を高速に行うことができる。
【0030】
画像認識処理は、制御部50が、予め定められたピクセルサイズのグリッドごとに物体の映像が存在するか否かを判定し、物体が存在する場合には、その物体がブロック6であるか否かをパターン認識により判定することで載置台4上に載置されたブロック6を検出する(位置検出手段)ことにより、行うことができる。パターン認識は、例えば、記憶部52に予め登録されている認識パターンを用い、カメラ30で撮影されてバッファメモリに記録された映像データに含まれる物体の特定位置に、認識パターンと一致するパターンが存在するか否かを判定することにより、行うことができる。この場合には、ブロック6の各面の特定位置に、認識パターンを予め付しておくことになる。認識パターンとしては、例えば、図1に示すブロック6の各面に付されている丸模様6cが該当する。
【0031】
制御部50は、上述の画像認識処理のほかに、ゲームの進行やゲーム結果の演算等のゲーム処理、キャラクタ等のオブジェクトの位置(x,y,z)や回転角度(x軸,y軸,z軸回りの角度)を求める処理、キャラクタ等のオブジェクトにモーションさせる処理、オブジェクト間の衝突判定処理などを行う。
【0032】
画像処理部(画像生成手段)60は、制御部50で行われる種々の処理(ゲーム処理など)の結果に基づいて描画処理を行い、生成されたゲーム画像が表示手段としてのプロジェクタ10によってスクリーン3に出力される。
【0033】
描画処理は、まず、座標変換(ワールド座標変換、視点座標変換)、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(頂点の位置座標、テクスチャ座標、色データ等)が作成される。そして、この描画データ(オブジェクトデータ)に基づいて、透視変換後(ジオメトリ処理後)のモデルオブジェクトをフレームバッファ(ピクセル単位で画像情報を記憶できるVRAM等のバッファ)に描画する。これにより、仮想三次元空間内(x,y,z)において仮想視点から見えるゲーム画像が生成される。
【0034】
画像処理部(画像生成手段)60は、描画処理として、ジオメトリ処理、テクスチャマッピング処理、陰面消去処理等を行う。ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ等)は、記憶部52に格納される。テクスチャマッピング処理では、記憶部52に記憶されるテクスチャデータに基づくテクスチャをオブジェクトにマッピングする処理を行う。隠面消去処理では、Zバッファに格納される描画ピクセルのZ値(奥行き情報)参照し、ZバッファのZ値と描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想視点から見て手前側となるZ値である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する処理を行う。
【0035】
なお、制御部50によりゲーム画像は総括的に制御されるが、本実施形態においては、キャラクタの移動に関する制御については主としてCPU51が実行し、背景画像等の他のゲーム画像の制御について主として画像処理部60が実行することとする。しかしながら、ゲーム画像の制御はこの構成に限るものではない。
【0036】
ゲーム装置1において実行されるゲームのプログラムは、例えば、図11に示すように、樹木110に果実111があり、その果実111をブロック6又はベース上112を移動する複数のキャラクタ101が採取したか否かを判定し、その果実111を全て採取するまでの時間を計測し、その計測時間の良し悪しを評価するものが考えられる。このゲームの場合、CPU51の制御のもとキャラクタ101が移動し、キャラクタが果実111を採取したと判定した場合は、その果実111を描画対象から除外する信号を画像処理部60へ送る。画像処理部60は、描画対象となる樹木110及び果実111等について、予め記憶された樹木110及び果実111等の画像データに基づき、樹木110及び果実111等に対応するオブジェクト(ポリゴンにより構成される)をワールド座標系に配置した後、視点によって決定される視点座標系に座標変換し、その視点座標系の投影面に透視変換して生成したゲーム画像をフレームバッファに描画する。これにより、スクリーン3上に樹木110及び果実111を含むゲーム画像を表示するとともに、描画対象外の当該果実111の画像がスクリーン3上から削除されることになる。
【0037】
既述のゲームにおいて、プレイヤーによりブロック6が載置台4上に載置されると、キャラクタ101がそのブロック6により隠されてしまう場合がある。このゲームはキャラクタにより果実111を採取する時間を競うものであるため、キャラクタ101が隠れ、そこから移動できなければ果実111を採取できなくなる。これはプレイヤーにとってゲームを進行するうえで不利益となる。このため、キャラクタ101がブロック6に隠されたときは、そのキャラクタ101を、当該ブロック6の位置からブロック6により隠されない位置へ移動させる必要がある。このようにキャラクタ101が移動することにより、プレイヤーがブロック6を載置台4上への載置の仕方を工夫する(例えば、キャラクタ101を果実のあるところに誘導するように複数のブロック6を載置台4上に載置する。)ことにより、意図的にキャラクタ101を移動させ、より短時間で果実111を採取することを可能とすることができる。このキャラクタ101の移動制御は、既述のように本実施形態ではCPU51によって行なわれる。
【0038】
次に、CPU51の実行するキャラクタ101の移動制御について、図4から図8を参照して説明する。
【0039】
図4は、バッファメモリに記録したCCD映像データを予め設定したピクセルサイズで160個に分割した場合、各グリッドに対応するスクーン3上の位置にブロック6が存在するか否かを示すデータ70の一例である。
【0040】
このピクセルサイズは、スクリーン3の領域を所定単位(例えばa×a:aは所定の長さ)で区切った各領域の大きさに対応するように予め設定される。
【0041】
CCD画像処理グリッド番号は、スクリーン3の領域を所定単位で区切った各領域に対し連続して付した番号である。また、ブロック6の存在有無を示す情報は、スクリーン3の各領域を隠す位置にブロック6が存在するか否かを示す情報である。CCD画像処理グリッド番号は、“1”から“160”が設けられており、そのグリッド番号に対応して、ブロック6が存在する場合は“1”,存在しない場合は“0”が設定される。制御部50は、CCD33から映像データを取得して、所定時間(フレーム)毎にこのデータ70を生成する。なお、本実施形態では、図1で示すブロック6は、2a(横方向)×a(縦方向)×a(奥行き)の大きさとなっており、上述の各領域のうち2つの領域の大きさと対応するサイズとなっている。
【0042】
図5は、グリッドポリゴン番号に対応する仮想三次元空間の位置に仮想ブロックが存在するか否かを示すデータ80の一例を示している。各グリッドポリゴンは、板状のポリゴンによって構成されており、スクリーン3の領域を所定単位で区切った各領域に対応させて、仮想空間内に配置されるものである。グリッドポリゴン番号は、スクリーン3の領域を所定単位(例えば、a×a:aは所定の長さ)で区切った各領域に対して連続して付した番号であり、上述のCCD画像処理グリッド番号と1対1で対応している。したがって、グリッドポリゴン番号は“1”から“160”が設けられている。また、そのグリッドポリゴン番号それぞれと対応して、仮想ブロックが存在する場合はフラグ“1”、存在しない場合はフラグ“0”が記憶部52内の所定領域に設定される。
【0043】
図6は、各グリッドポリゴンの配置定義データ90を示している。グリッドポリゴン番号毎に仮想三次元空間での中心座標が設定されている。例えば、グリッドポリゴン“1”は、仮想三次元空間座標が“x1,y1,z”と設定されており、グリッドポリゴン“160”は、仮想三次元空間座標が“x160,y160,z”と設定されている。なお、キャラクタの移動範囲を二次元平面(xy平面)に限定する場合、ゲーム処理上、奥行き情報を必要としないため、全てのグリッドポリゴン番号のz座標は同じ“z”値となる。
【0044】
図9は、三次元仮想空間内の仮想視点において、ブロック6に対応する仮想ブロックとキャラクタ101との位置関係を説明するための図である。視点座標系における投影面100に透視変換して生成される画像は、スクリーン3(グリッドポリゴン1番から160番の矩形状に配置されたグリッドで構成される)に表示され、仮想ブロックの画像がスクリーン3の前方に置かれたブロック6の位置に対応する領域に配置される。このブロック6と対応する仮想ブロックが配置されている位置のデータはデータ70に基づいて取得される。図9においては、載置台4上に載置されたブロック6に対応して仮想ブロックが3つ(グリッド番号146,147、グリッド番号155,156、グリッド番号158,159)が板状のグリッドポリゴンとして配置される。また、キャラクタ101はグリッド番号148に対応する位置に配置されている。キャラクタ101と板状のグリッドポリゴン(仮想ブロック)と座標を比較して当たり判定を行うことにより、キャラクタ101と仮想ブロックが重なっているか否か、つまり、プレイヤーによりブロック6でキャラクタ101が隠されたか否かを判定することができる。
【0045】
なお、本実施形態においては、予め座標位置が指定されているグリッドポリゴンを用いてキャラクタ101と仮想ブロックとの重なりを判定する構成としているが、図10のように、仮想ブロックが時々刻々と3次元的な位置(x,y,z)を変更する場合には、このグリッドポリゴンを用いずに、キャラクタ101と仮想ブロックオブジェクト103とのそれぞれにコリジョン領域を設定し、その衝突を判定するようにしても良い。
【0046】
図10は、グリッドポリゴンを用いずにキャラクタ101と仮想ブロックとの重なりを判定する構成におけるブロック6とキャラクタ101との位置関係を説明するための図である。プレイヤーにより物体(例えば、ブロック6)がスクリーン3の前方において時々刻々と配置を変更すると、上述の画像認識処理によってその物体の位置を検出し、対応する仮想ブロック103の仮想空間内の対応する位置を求めることにより、キャラクタ101と仮想ブロック103との重なりを判定することができる。このような構成にすると、物体を動的に動かしたときにも、グリッド単位よりも細かいレベルでその物体の位置を補足することができ、その物体の動作に適応させてキャラクタ101との重なりを判定することができ、キャラクタ101を物体の存在しない位置等へ移動させる処理を行うことが可能となる。
【0047】
図7は、図4及び図5で既述したデータ70がフレーム毎(所定時間毎)に記憶部52にデータ80として記憶されるときの変化の一例を説明する図である。
【0048】
図7において左側がNフレーム,N+1フレームのCCD33から受信した映像データに基づき、制御部50が生成したデータ71,72であり、右側が両データ71、72に対応して記憶部52内に記憶されるデータ81,82である。
【0049】
Nフレームのデータ71では、CCD画像処理グリッド番号“158”,“159”と対応する実ブロックの存在有無情報がそれぞれ“1”となっている。このデータ71によって記憶部52内に記憶されるデータ81のグリッドポリゴン番号“158”,“159”と対応するフラグはそれぞれ“1”となっている。ところが、N+1フレームのデータ72では、CCD画像処理グリッド番号“158”,“159”と対応する実ブロックの存在有無情報がそれぞれ“0”となっている。このため、記憶部52内のデータ82のグリッドポリゴン番号“158”,“159”と対応するフラグもそれぞれ“0”に変化している。
【0050】
これはNフレーム時ではCCD画像処理グリッド番号“158”,“159”と対応するスクリーン3上の位置にブロック6が接近していたが、N+1フレーム時では当該スクリーン3の当該箇所にブロック6が接近していないことを示している。つまりNフレーム時はCCD画像処理グリッド番号“158”,“159”に対応する位置にブロック6が1つ置かれていたが、N+1フレーム時はそのブロック6がプレイヤーにより外されたことを意味している。
【0051】
次に、フレーム毎(所定時間毎)のキャラクタ101の移動制御について説明する。図8は、CPU51が実行するキャラクタ101移動制御処理を示すフローチャートである。
【0052】
CPU51は、記憶部52内のデータ80を参照して仮想ブロックの存在有無を示すフラグをグリッドポリゴン番号“1”から“160”までチェックし(S101)、フラグ“1”となっているグリッドポリゴンがあるか否かを判定する(S102)。
【0053】
フラグが“1”となっているグリッドポリゴンがなければ(S102:NO)、CPU51は、この処理を終了する。この場合、ブロック6がスクリーン3に接近していないためキャラクタ101の移動処理を行う必要がないからである。
【0054】
フラグが“1”となっているグリッドポリゴンがあれば(S102:YES)、CPU51は、そのグリッドに仮想ブロックが存在するものとして画像処理部60に描画対象としてグリッドポリゴンを配置するよう指示する(S130)。そして、CPU51は、現在のキャラクタ101の座標を取得し(S104)、そのキャラクタ101の座標と配置したグリッドポリゴンの座標とを比較する(S105)。なお、z座標は共通なので実質的にx座標、y座標を比較することによりこの処理を行うことができる。
【0055】
次に、CPU51は、キャラクタ101の座標とグリッドポリゴンの座標とが衝突(重複)しているか否かを判定し(S106)、衝突していない場合は(S106:NO)、CPU51は、そのグリッドについて通常のアルゴリズムに従ってキャラクタ101を制御する(S107)。
【0056】
一方、キャラクタ101の座標とグリッドポリゴンの座標とが衝突している場合は(S106:YES)、CPU51は、そのグリッドの周囲のグリッドポリゴンでフラグが“0”のグリッドポリゴンを記憶部52内のデータ80を参照して探す(S108)。
【0057】
次に、CPU51は、周囲のグリッドポリゴンでフラグが“0”のグリッドポリゴンはあったかか否かを判定する(S109)。フラグが“0”のグリッドポリゴンがない場合は(S109:NO)、ステップS108の周囲のグリッドポリゴンのさらに外側のグリッドでフラグが“0”のグリッドポリゴンを探す(S110)。そして、ステップS109の処理へ戻る。すなわち、CPU51は、検索の中心となるグリッドの周囲にフラグが“0”のグリッドポリゴンが無い場合は、さらにその外側にフラグ“0”のグリッドポリゴンがあるかを探す処理を行う。
【0058】
このようにしてフラグが“0”のグリッドポリゴンがあった場合は(S109:YES)、CPU51は、フラグが“0”のグリッドポリゴンを決定する(S111)。なお、フラグが“0”のグリッドポリゴンが複数あった場合は、その中からランダムに1つのグリッドが選択される。そして、CPU51は、その決定されたグリッドにキャラクタ101を配置し、キャラクタ101を制御する(S112)。
【0059】
なお、ステップS112のグリッドのランダムな選択は、完全なランダムではなくゲームの内容に応じた制限を加えても良い。つまり、本実施形態のゲームは、載置台4上にブロック6を積み上げそのブロック6上をキャラクタ101が動作してゲームを進行するものであるため、キャラクタ101はブロック6の上側及び左右(上側に出現する確立をより上げても良い。)に出現するようにし、キャラクタ101を下側へは出現させないように制限を加えても良い。このようにキャラクタ101の移動に対して一定のルールを加えておくことにより、プレイヤーが意図的にキャラクタ101を移動させることが可能となり、ゲームをより短時間で終了させるための工夫をプレイヤーが行なうことができ、ゲーム性を高めることができる。
【0060】
上述してきたように、本実施形態のゲーム装置1では、ゲームの進行中に、スクリーン3の前面側下端部に設けられた載置台4上にブロック6が載置されると、載置台4上に載置されたブロック6が検出され、検出されたブロック6の載置状態に応じてゲーム画像を含むゲーム状況が制御される。これにより、プレイヤーはブロック6を所持し続けることなく、ブロック6を載置台4上に載置して積み上げていくことでゲームを進行させることができる。
【0061】
その際、スクリーン3に投影されているキャラクタ101を載置台4上に載置されたブロック6を避けて移動させることができる。
【0062】
また、キャラクタ101がブロック6で囲まれるような状況が生じても、その囲まれたブロック6の範囲内で、かつ、ブロック6が載置されていない場所にキャラクタ101を移動させることができる。さらに、そのブロック6が載置されていない場所にブロック6が載置されキャラクタ101が移動する場所がなくなった場合には、そのブロック6により囲まれた部分の外側で、かつ、ブロック6が載置されていない場所にキャラクタを移動させることができる。
【図面の簡単な説明】
【0063】
【図1】本実施形態におけるゲーム装置の外観構成図である。
【図2】図1のII−II線断面図である。
【図3】ゲーム装置の内部構成を示すブロック図である。
【図4】CCDから制御部に送信されるデータの一例を示す図である。
【図5】制御部内に記憶されるデータの一例を示す図である。
【図6】グリッドポリゴンの配置定義の一例を示す図である。
【図7】CCDから制御部に送信されるデータと制御部内に記憶されるデータとのフレーム毎の対応関係を示す図である。
【図8】キャラクタの移動制御処理を示すフローチャートである。
【図9】キャラクタとブロックとの重なりを説明するための図である。
【図10】他のキャラクタとブロックとの重なりを説明するための図である。
【図11】ゲームの一例を説明するための図である。
【符号の説明】
【0064】
1…ゲーム装置、2…筺体、3…スクリーン、4…載置台、4a…突起部、5…収納部、6…ブロック、6a…突出部、6b…陥没部、10…プロジェクタ、19…プロジェクタ用鏡、20…光源部、30…カメラ、39…カメラ用鏡、40…載置台駆動部、50…制御部、51…CPU、52…記憶部、60…画像処理部、70,80,90…データ、100…投影面、101…キャラクタ、111…果実。
【技術分野】
【0001】
この発明は、ゲーム画像を画面に表示してゲームを進行させるゲーム装置であって、特に、プレイヤーが物体を画面に接近させて行うゲーム操作に応答してゲームが進行するゲーム装置に関する。
【背景技術】
【0002】
従来、ゲーム画像を画面に表示してゲームを進行させるゲーム装置として、例えば、下記特許文献1に記載されたゲーム装置がある。このゲーム装置では、プレイヤーが操作するスティックでスクリーン上をタッチする等してゲームを進行している。具体的には、スクリーンに表示されたマトをスティックで叩いたり、スクリーンに表示された敵キャラクタをスティックでタッチしたまま移動させたりしながらゲームを進行している。
【特許文献1】特開2007−172585号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、プレイヤーが例えばブロックのような物体で画面を隠し、その画面を隠した部分に応じてゲームを進行させるゲーム装置の場合は、その物体により隠される画面の部分に応じて画面に投影される画像を変化させる必要がある。例えば、物体により隠される画面の部分にキャラクタが存在していた場合には、そのキャラクタをどのように移動させるか問題となる。
【0004】
本発明は、上述した問題点を解消するためになされたものであり、プレイヤーがブロックのような物体で画面を隠したときに、その画面を隠した部分に応じてキャラクタを移動させゲームを進行させることができるゲーム装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
上述した課題を解決するため、本発明にかかるゲーム装置は、仮想三次元空間に配置されるキャラクタの移動を制御する制御手段と、仮想視点に基づきキャラクタを含む仮想三次元空間内の様子を表現したゲーム画像を生成する画像生成手段と、ゲーム画像を画面に表示する表示手段と、プレイヤーのゲーム操作により画面に接近した物体の位置を検出する位置検出手段とを備え、制御手段は、位置検出手段から取得した物体の位置情報に基づいて、物体に対応して設定される板状ポリゴン又は仮想ブロックなどのオブジェクトを仮想三次元空間に配置する位置を決定し、決定されたオブジェクトの位置と現在のキャラクタの位置とを比較して、オブジェクトとキャラクタが所定の位置関係にあると判定した場合に、キャラクタが現在と異なる位置へ移動するように仮想三次元空間におけるキャラクタの配置を制御することを特徴とする。
【0006】
このゲーム装置によれば、プレイヤーが物体を画面に接近させたときに、その画面が物体により隠される部分に応じてキャラクタを移動させることができる。
【0007】
また、上記ゲーム装置において、制御手段は、オブジェクトの位置と現在のキャラクタの位置とを比較して、オブジェクトとキャラクタが互いに衝突する位置関係にあると判定した場合に、キャラクタが現在と異なる位置へ移動するように仮想三次元空間におけるキャラクタの配置を制御するようにしても良い。
【0008】
また、上記ゲーム装置において、位置検出手段は、プレイヤーが複数の物体を用いてゲーム操作を行った際に、物体それぞれの位置を検出するものであり、制御手段は、位置検出手段から取得した物体それぞれの位置情報に基づいて、物体それぞれに対応して設定される各オブジェクトを仮想三次元空間に配置する位置を決定し、決定された各オブジェクトの位置と現在のキャラクタの位置とを比較して、キャラクタが複数のオブジェクトによって囲まれた位置関係にあると判定した場合に、キャラクタが現在と異なる位置へ移動するように仮想三次元空間におけるキャラクタの配置を制御するようにしても良い。
【0009】
さらに、上記制御手段は、キャラクタが複数のオブジェクトによって囲まれた位置関係にあると判定した場合に、キャラクタを複数のオブジェクトによって囲まれた範囲に制限して移動させ、さらに、キャラクタを囲う複数のオブジェクトとは異なる別のオブジェクトの位置情報を位置検出手段から取得したときに、別のオブジェクトの位置と現在のキャラクタの位置とを比較して、別のオブジェクトとキャラクタが互いに衝突する位置関係にあると判定した場合に、キャラクタが囲まれた範囲外の位置へ移動するように仮想三次元空間におけるキャラクタの配置を制御するようにしても良い。
【0010】
さらに、上記制御手段は、キャラクタを現在と異なる位置へ移動させる際に、現在配置されているオブジェクトと移動後に配置されるキャラクタとの衝突を判定し、その判定結果に基づいて互いに衝突しない位置にキャラクタを配置するよう制御するようにしても良い。
【0011】
また、上記ゲーム装置において、位置検出手段は、画面に向けて赤外光を照射する発光手段と、発光手段から照射された赤外光が画面を通過し、プレイヤーのゲーム操作により画面に接近した物体に反射することにより得られる物体の像を撮影する撮影手段とを含み、撮影手段によって撮影された像に基づき、画面に対向して配置される物体の位置を検出することを特徴とするようにしても良い。
【発明の効果】
【0012】
本発明によれば、プレイヤーが物体を画面に接近させたときに、その画面が物体により隠される部分に応じてキャラクタを移動させることができるゲーム装置を提供することができる。
【発明を実施するための最良の形態】
【0013】
以下に添付図面を参照して、本発明に係るゲーム装置の好適な実施形態を詳細に説明する。本実施形態におけるゲーム装置は、スクリーンの手前側に設けられた台の上にプレイヤーがブロック(物体)を積み上げていき、積み上げられたブロックの載置状態に応じてゲーム内容を展開させていくアクション型のゲーム装置である。ゲームに関する処理の特徴は、積み上げられたブロックと画面に表示されるキャラクタとの仮想三次元空間内での位置を把握し、仮想三次元空間内でブロックとキャラクタとが重ならないように、キャラクタの移動を制御するものである。このようなゲーム装置の構成及び処理について以下に説明する。
【0014】
まず、本実施形態におけるゲーム装置の外観構成について説明する。図1は、ゲーム装置の外観構成図である。図1に示すように、ゲーム装置1は、筺体2と、ゲーム画像を表示するためのスクリーン3と、プレイヤーが操作するブロック6を載置するための載置台4と、ブロック6を収納するための収納部5と、を有する。
【0015】
スクリーン3は、筺体2の前面側に設けられ、筺体2によって略鉛直状態に支持されている。スクリーン3は、後述するプロジェクタによってスクリーン3の背面側から投射された光を透過させ、スクリーン3の前面に映像を映し出す透過型のスクリーンである。
【0016】
載置台4は、スクリーン3の前面側の下端部に設けられている。この載置台4上に載置する各ブロック6には、ブロック6同士を互いに組み合わせるための突出部6aおよび陥没部6bが設けられている。載置台4のブロック6を載置する面上には、突起部4aが設けられている。載置台4の突起部4aとブロック6の陥没部6bを嵌合させることで、ブロック6の載置位置を限定することができる。言い換えると、載置台4上の予め決められた場所にブロック6を載置させることができる。
【0017】
次に、本実施形態におけるゲーム装置1の内部構成について説明する。図2は、図1のII−II線断面図であり、図3は、ゲーム装置1の内部構成を示すブロック図である。図示のように、ゲーム装置1の筺体2の内部には、プロジェクタ(表示手段)10と、プロジェクタ用鏡19と、光源部20と、カメラ30と、カメラ用鏡39と、載置台駆動部40と、制御部50とが備えられている。
【0018】
プロジェクタ10は、スクリーン3にゲーム画像を投影するための投影装置である。このプロジェクタ10の光軸は、ゲーム装置1の後部側に設けられたプロジェクタ用鏡19に向けられている。プロジェクタ用鏡19は、プロジェクタ10からスクリーン3に至るまでの光路を屈折させる反射部材である。プロジェクタ10とプロジェクタ用鏡19は、プロジェクタ10からゲーム装置1の後方側上方に向けて投射された光線が、プロジェクタ用鏡19で屈折してスクリーン3の背面全体に行き渡るように配置されている。このようにプロジェクタ10とプロジェクタ用鏡19を配置することで、スクリーン3の前面全体にゲーム画像を表示させることが可能となる。
【0019】
光源部20は、スクリーン3を透過する赤外線(所定波長の光)をスクリーン3の背面側からスクリーン3に向けて投射するLED(光源)を複数有する。
【0020】
光源部(発光手段)20は、ゲーム装置1の上下方向に1列に並べられた複数のLED21と、LED21に沿ってゲーム装置1の上下方向に設けられた反射板22と、LED21および反射板22を支持する支持部材23とを有する。LED21は、例えば890nmの赤外線を照射する。反射板22は、LED21から照射された赤外線をスクリーン方向に反射させることで、赤外線がスクリーン3の背面外に拡散することを防止する。
【0021】
なお、光源部20が投射する光は、890nmの赤外線には限定されない。スクリーン3を透過することが可能な所定波長の光であればよい。
【0022】
図2および図3に示すカメラ30(撮影手段)は、光源部20による赤外線の投射先をスクリーン3の背面側から撮影するための撮影装置である。カメラ30は、入射光の光量を抑える減光フィルタ31と、特定の赤外線波長の光をピークとして透過させるバンドパスフィルタ32と、赤外線領域に感度分布を持つCCDカメラ33とを有する。バンドパスフィルタ32のピーク波長は、LED21が照射する赤外線の波長(本実施形態では890nm)と同値に設定される。
【0023】
カメラ30の光軸は、ゲーム装置1の後部側に設けられたカメラ用鏡39に向けられている。カメラ用鏡39は、スクリーン3からカメラ30に至るまでの光路を屈折させる反射部材である。カメラ30とカメラ用鏡39は、カメラ用鏡39で反射されて形成されるスクリーン3の背面全体を含む写像が、カメラ用鏡39からゲーム装置1の前方側上方に向けて投射され、この投射された写像をカメラ30で撮影できるように配置されている。このようにカメラ30とカメラ用鏡39を配置することで、LED21から照射されてスクリーン3を透過した後に載置台4上のブロック6の表面で反射した赤外線をカメラ30で捉えることが可能となる。
【0024】
このように、プロジェクタ10およびカメラ30は、スクリーン3の背面側において、それぞれの光軸が異なるように配置されている。これにより、プロジェクタ10の光路とカメラ30の光路が互いに干渉し合う事態を防止することができる。
【0025】
載置台駆動部40は、例えば、モータを含んで構成される。載置台駆動部40は、制御部50の指示に従って、載置台4のブロック6を載置する載置面の傾きを、ブロック6を載置できる状態とブロック6を載置できない状態とに変化させる。載置台4の載置面が、ブロック6を載置できる状態からブロック6を載置できない状態に傾けられると、載置台4上に載置されていたブロック6が収納部5内に落下する。
【0026】
制御部50は、中央演算処理装置としてのCPU(制御手段)51と、記憶部52としてのROMおよびRAMを有する。このような制御部50では、CPU51が、記憶部52内のROMに記憶されている各種の制御プログラムに従って、ROMやRAMに記憶されている各種のデータを用いながら各種の処理を実行することでゲームを進行させる。これにより、上述したゲーム装置1の各部が制御され、ゲーム状況が制御される。
【0027】
制御部50は、例えば以下のような制御を行う。制御部50は、ゲームを開始すると、載置台4上に載置されたブロック6を検出する。制御部50は、検出したブロック6の載置位置に対応するゲーム画面上にオブジェクトを配置する。制御部50は、配置したオブジェクトに対してキャラクタを反応させながらゲーム状況を制御する。キャラクタの反応としては、例えば、キャラクタにオブジェクトを登らせる等が該当する。また、制御部50は、ブロック6によりキャラクタが隠されたしまったときにそのキャラクタを移動する制御を行なう。
【0028】
載置台4上に載置されたブロック6の検出は、例えば以下のように行う。制御部50は、カメラ30で撮影された映像を用いて、載置台4上に載置されたブロック6を検出する。ここで、上述したように光源部20から投射される赤外線はスクリーン3を透過する。したがって、スクリーンを隔てて載置台4上に載置されているブロック6にも赤外線が照射され、赤外線はブロック6の表面で反射することになる。これにより、カメラ30は、スクリーン3を隔てて置かれているブロック6の画像を撮影することができる。
【0029】
したがって、例えば、制御部50は、カメラ30によって撮影された映像データをバッファメモリに記録し、その映像データを予め設定したピクセルサイズに分割したグリット単位で画像認識処理を行う。このとき、バッファメモリの記憶容量に対応するピクセルサイズに基づき、記憶された映像データを予め設定したピクセルサイズに分割し処理を行う。例えば、160個のグリットに分割された場合は、この160個のグリットをインデックス化したテーブルとして扱うことができる。なお、分割グリッドのピクセルサイズは、ブロック6に大きさ(面積)に対応させて予め設定しおけば、以下の画像認識処理を高速に行うことができる。
【0030】
画像認識処理は、制御部50が、予め定められたピクセルサイズのグリッドごとに物体の映像が存在するか否かを判定し、物体が存在する場合には、その物体がブロック6であるか否かをパターン認識により判定することで載置台4上に載置されたブロック6を検出する(位置検出手段)ことにより、行うことができる。パターン認識は、例えば、記憶部52に予め登録されている認識パターンを用い、カメラ30で撮影されてバッファメモリに記録された映像データに含まれる物体の特定位置に、認識パターンと一致するパターンが存在するか否かを判定することにより、行うことができる。この場合には、ブロック6の各面の特定位置に、認識パターンを予め付しておくことになる。認識パターンとしては、例えば、図1に示すブロック6の各面に付されている丸模様6cが該当する。
【0031】
制御部50は、上述の画像認識処理のほかに、ゲームの進行やゲーム結果の演算等のゲーム処理、キャラクタ等のオブジェクトの位置(x,y,z)や回転角度(x軸,y軸,z軸回りの角度)を求める処理、キャラクタ等のオブジェクトにモーションさせる処理、オブジェクト間の衝突判定処理などを行う。
【0032】
画像処理部(画像生成手段)60は、制御部50で行われる種々の処理(ゲーム処理など)の結果に基づいて描画処理を行い、生成されたゲーム画像が表示手段としてのプロジェクタ10によってスクリーン3に出力される。
【0033】
描画処理は、まず、座標変換(ワールド座標変換、視点座標変換)、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(頂点の位置座標、テクスチャ座標、色データ等)が作成される。そして、この描画データ(オブジェクトデータ)に基づいて、透視変換後(ジオメトリ処理後)のモデルオブジェクトをフレームバッファ(ピクセル単位で画像情報を記憶できるVRAM等のバッファ)に描画する。これにより、仮想三次元空間内(x,y,z)において仮想視点から見えるゲーム画像が生成される。
【0034】
画像処理部(画像生成手段)60は、描画処理として、ジオメトリ処理、テクスチャマッピング処理、陰面消去処理等を行う。ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ等)は、記憶部52に格納される。テクスチャマッピング処理では、記憶部52に記憶されるテクスチャデータに基づくテクスチャをオブジェクトにマッピングする処理を行う。隠面消去処理では、Zバッファに格納される描画ピクセルのZ値(奥行き情報)参照し、ZバッファのZ値と描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想視点から見て手前側となるZ値である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する処理を行う。
【0035】
なお、制御部50によりゲーム画像は総括的に制御されるが、本実施形態においては、キャラクタの移動に関する制御については主としてCPU51が実行し、背景画像等の他のゲーム画像の制御について主として画像処理部60が実行することとする。しかしながら、ゲーム画像の制御はこの構成に限るものではない。
【0036】
ゲーム装置1において実行されるゲームのプログラムは、例えば、図11に示すように、樹木110に果実111があり、その果実111をブロック6又はベース上112を移動する複数のキャラクタ101が採取したか否かを判定し、その果実111を全て採取するまでの時間を計測し、その計測時間の良し悪しを評価するものが考えられる。このゲームの場合、CPU51の制御のもとキャラクタ101が移動し、キャラクタが果実111を採取したと判定した場合は、その果実111を描画対象から除外する信号を画像処理部60へ送る。画像処理部60は、描画対象となる樹木110及び果実111等について、予め記憶された樹木110及び果実111等の画像データに基づき、樹木110及び果実111等に対応するオブジェクト(ポリゴンにより構成される)をワールド座標系に配置した後、視点によって決定される視点座標系に座標変換し、その視点座標系の投影面に透視変換して生成したゲーム画像をフレームバッファに描画する。これにより、スクリーン3上に樹木110及び果実111を含むゲーム画像を表示するとともに、描画対象外の当該果実111の画像がスクリーン3上から削除されることになる。
【0037】
既述のゲームにおいて、プレイヤーによりブロック6が載置台4上に載置されると、キャラクタ101がそのブロック6により隠されてしまう場合がある。このゲームはキャラクタにより果実111を採取する時間を競うものであるため、キャラクタ101が隠れ、そこから移動できなければ果実111を採取できなくなる。これはプレイヤーにとってゲームを進行するうえで不利益となる。このため、キャラクタ101がブロック6に隠されたときは、そのキャラクタ101を、当該ブロック6の位置からブロック6により隠されない位置へ移動させる必要がある。このようにキャラクタ101が移動することにより、プレイヤーがブロック6を載置台4上への載置の仕方を工夫する(例えば、キャラクタ101を果実のあるところに誘導するように複数のブロック6を載置台4上に載置する。)ことにより、意図的にキャラクタ101を移動させ、より短時間で果実111を採取することを可能とすることができる。このキャラクタ101の移動制御は、既述のように本実施形態ではCPU51によって行なわれる。
【0038】
次に、CPU51の実行するキャラクタ101の移動制御について、図4から図8を参照して説明する。
【0039】
図4は、バッファメモリに記録したCCD映像データを予め設定したピクセルサイズで160個に分割した場合、各グリッドに対応するスクーン3上の位置にブロック6が存在するか否かを示すデータ70の一例である。
【0040】
このピクセルサイズは、スクリーン3の領域を所定単位(例えばa×a:aは所定の長さ)で区切った各領域の大きさに対応するように予め設定される。
【0041】
CCD画像処理グリッド番号は、スクリーン3の領域を所定単位で区切った各領域に対し連続して付した番号である。また、ブロック6の存在有無を示す情報は、スクリーン3の各領域を隠す位置にブロック6が存在するか否かを示す情報である。CCD画像処理グリッド番号は、“1”から“160”が設けられており、そのグリッド番号に対応して、ブロック6が存在する場合は“1”,存在しない場合は“0”が設定される。制御部50は、CCD33から映像データを取得して、所定時間(フレーム)毎にこのデータ70を生成する。なお、本実施形態では、図1で示すブロック6は、2a(横方向)×a(縦方向)×a(奥行き)の大きさとなっており、上述の各領域のうち2つの領域の大きさと対応するサイズとなっている。
【0042】
図5は、グリッドポリゴン番号に対応する仮想三次元空間の位置に仮想ブロックが存在するか否かを示すデータ80の一例を示している。各グリッドポリゴンは、板状のポリゴンによって構成されており、スクリーン3の領域を所定単位で区切った各領域に対応させて、仮想空間内に配置されるものである。グリッドポリゴン番号は、スクリーン3の領域を所定単位(例えば、a×a:aは所定の長さ)で区切った各領域に対して連続して付した番号であり、上述のCCD画像処理グリッド番号と1対1で対応している。したがって、グリッドポリゴン番号は“1”から“160”が設けられている。また、そのグリッドポリゴン番号それぞれと対応して、仮想ブロックが存在する場合はフラグ“1”、存在しない場合はフラグ“0”が記憶部52内の所定領域に設定される。
【0043】
図6は、各グリッドポリゴンの配置定義データ90を示している。グリッドポリゴン番号毎に仮想三次元空間での中心座標が設定されている。例えば、グリッドポリゴン“1”は、仮想三次元空間座標が“x1,y1,z”と設定されており、グリッドポリゴン“160”は、仮想三次元空間座標が“x160,y160,z”と設定されている。なお、キャラクタの移動範囲を二次元平面(xy平面)に限定する場合、ゲーム処理上、奥行き情報を必要としないため、全てのグリッドポリゴン番号のz座標は同じ“z”値となる。
【0044】
図9は、三次元仮想空間内の仮想視点において、ブロック6に対応する仮想ブロックとキャラクタ101との位置関係を説明するための図である。視点座標系における投影面100に透視変換して生成される画像は、スクリーン3(グリッドポリゴン1番から160番の矩形状に配置されたグリッドで構成される)に表示され、仮想ブロックの画像がスクリーン3の前方に置かれたブロック6の位置に対応する領域に配置される。このブロック6と対応する仮想ブロックが配置されている位置のデータはデータ70に基づいて取得される。図9においては、載置台4上に載置されたブロック6に対応して仮想ブロックが3つ(グリッド番号146,147、グリッド番号155,156、グリッド番号158,159)が板状のグリッドポリゴンとして配置される。また、キャラクタ101はグリッド番号148に対応する位置に配置されている。キャラクタ101と板状のグリッドポリゴン(仮想ブロック)と座標を比較して当たり判定を行うことにより、キャラクタ101と仮想ブロックが重なっているか否か、つまり、プレイヤーによりブロック6でキャラクタ101が隠されたか否かを判定することができる。
【0045】
なお、本実施形態においては、予め座標位置が指定されているグリッドポリゴンを用いてキャラクタ101と仮想ブロックとの重なりを判定する構成としているが、図10のように、仮想ブロックが時々刻々と3次元的な位置(x,y,z)を変更する場合には、このグリッドポリゴンを用いずに、キャラクタ101と仮想ブロックオブジェクト103とのそれぞれにコリジョン領域を設定し、その衝突を判定するようにしても良い。
【0046】
図10は、グリッドポリゴンを用いずにキャラクタ101と仮想ブロックとの重なりを判定する構成におけるブロック6とキャラクタ101との位置関係を説明するための図である。プレイヤーにより物体(例えば、ブロック6)がスクリーン3の前方において時々刻々と配置を変更すると、上述の画像認識処理によってその物体の位置を検出し、対応する仮想ブロック103の仮想空間内の対応する位置を求めることにより、キャラクタ101と仮想ブロック103との重なりを判定することができる。このような構成にすると、物体を動的に動かしたときにも、グリッド単位よりも細かいレベルでその物体の位置を補足することができ、その物体の動作に適応させてキャラクタ101との重なりを判定することができ、キャラクタ101を物体の存在しない位置等へ移動させる処理を行うことが可能となる。
【0047】
図7は、図4及び図5で既述したデータ70がフレーム毎(所定時間毎)に記憶部52にデータ80として記憶されるときの変化の一例を説明する図である。
【0048】
図7において左側がNフレーム,N+1フレームのCCD33から受信した映像データに基づき、制御部50が生成したデータ71,72であり、右側が両データ71、72に対応して記憶部52内に記憶されるデータ81,82である。
【0049】
Nフレームのデータ71では、CCD画像処理グリッド番号“158”,“159”と対応する実ブロックの存在有無情報がそれぞれ“1”となっている。このデータ71によって記憶部52内に記憶されるデータ81のグリッドポリゴン番号“158”,“159”と対応するフラグはそれぞれ“1”となっている。ところが、N+1フレームのデータ72では、CCD画像処理グリッド番号“158”,“159”と対応する実ブロックの存在有無情報がそれぞれ“0”となっている。このため、記憶部52内のデータ82のグリッドポリゴン番号“158”,“159”と対応するフラグもそれぞれ“0”に変化している。
【0050】
これはNフレーム時ではCCD画像処理グリッド番号“158”,“159”と対応するスクリーン3上の位置にブロック6が接近していたが、N+1フレーム時では当該スクリーン3の当該箇所にブロック6が接近していないことを示している。つまりNフレーム時はCCD画像処理グリッド番号“158”,“159”に対応する位置にブロック6が1つ置かれていたが、N+1フレーム時はそのブロック6がプレイヤーにより外されたことを意味している。
【0051】
次に、フレーム毎(所定時間毎)のキャラクタ101の移動制御について説明する。図8は、CPU51が実行するキャラクタ101移動制御処理を示すフローチャートである。
【0052】
CPU51は、記憶部52内のデータ80を参照して仮想ブロックの存在有無を示すフラグをグリッドポリゴン番号“1”から“160”までチェックし(S101)、フラグ“1”となっているグリッドポリゴンがあるか否かを判定する(S102)。
【0053】
フラグが“1”となっているグリッドポリゴンがなければ(S102:NO)、CPU51は、この処理を終了する。この場合、ブロック6がスクリーン3に接近していないためキャラクタ101の移動処理を行う必要がないからである。
【0054】
フラグが“1”となっているグリッドポリゴンがあれば(S102:YES)、CPU51は、そのグリッドに仮想ブロックが存在するものとして画像処理部60に描画対象としてグリッドポリゴンを配置するよう指示する(S130)。そして、CPU51は、現在のキャラクタ101の座標を取得し(S104)、そのキャラクタ101の座標と配置したグリッドポリゴンの座標とを比較する(S105)。なお、z座標は共通なので実質的にx座標、y座標を比較することによりこの処理を行うことができる。
【0055】
次に、CPU51は、キャラクタ101の座標とグリッドポリゴンの座標とが衝突(重複)しているか否かを判定し(S106)、衝突していない場合は(S106:NO)、CPU51は、そのグリッドについて通常のアルゴリズムに従ってキャラクタ101を制御する(S107)。
【0056】
一方、キャラクタ101の座標とグリッドポリゴンの座標とが衝突している場合は(S106:YES)、CPU51は、そのグリッドの周囲のグリッドポリゴンでフラグが“0”のグリッドポリゴンを記憶部52内のデータ80を参照して探す(S108)。
【0057】
次に、CPU51は、周囲のグリッドポリゴンでフラグが“0”のグリッドポリゴンはあったかか否かを判定する(S109)。フラグが“0”のグリッドポリゴンがない場合は(S109:NO)、ステップS108の周囲のグリッドポリゴンのさらに外側のグリッドでフラグが“0”のグリッドポリゴンを探す(S110)。そして、ステップS109の処理へ戻る。すなわち、CPU51は、検索の中心となるグリッドの周囲にフラグが“0”のグリッドポリゴンが無い場合は、さらにその外側にフラグ“0”のグリッドポリゴンがあるかを探す処理を行う。
【0058】
このようにしてフラグが“0”のグリッドポリゴンがあった場合は(S109:YES)、CPU51は、フラグが“0”のグリッドポリゴンを決定する(S111)。なお、フラグが“0”のグリッドポリゴンが複数あった場合は、その中からランダムに1つのグリッドが選択される。そして、CPU51は、その決定されたグリッドにキャラクタ101を配置し、キャラクタ101を制御する(S112)。
【0059】
なお、ステップS112のグリッドのランダムな選択は、完全なランダムではなくゲームの内容に応じた制限を加えても良い。つまり、本実施形態のゲームは、載置台4上にブロック6を積み上げそのブロック6上をキャラクタ101が動作してゲームを進行するものであるため、キャラクタ101はブロック6の上側及び左右(上側に出現する確立をより上げても良い。)に出現するようにし、キャラクタ101を下側へは出現させないように制限を加えても良い。このようにキャラクタ101の移動に対して一定のルールを加えておくことにより、プレイヤーが意図的にキャラクタ101を移動させることが可能となり、ゲームをより短時間で終了させるための工夫をプレイヤーが行なうことができ、ゲーム性を高めることができる。
【0060】
上述してきたように、本実施形態のゲーム装置1では、ゲームの進行中に、スクリーン3の前面側下端部に設けられた載置台4上にブロック6が載置されると、載置台4上に載置されたブロック6が検出され、検出されたブロック6の載置状態に応じてゲーム画像を含むゲーム状況が制御される。これにより、プレイヤーはブロック6を所持し続けることなく、ブロック6を載置台4上に載置して積み上げていくことでゲームを進行させることができる。
【0061】
その際、スクリーン3に投影されているキャラクタ101を載置台4上に載置されたブロック6を避けて移動させることができる。
【0062】
また、キャラクタ101がブロック6で囲まれるような状況が生じても、その囲まれたブロック6の範囲内で、かつ、ブロック6が載置されていない場所にキャラクタ101を移動させることができる。さらに、そのブロック6が載置されていない場所にブロック6が載置されキャラクタ101が移動する場所がなくなった場合には、そのブロック6により囲まれた部分の外側で、かつ、ブロック6が載置されていない場所にキャラクタを移動させることができる。
【図面の簡単な説明】
【0063】
【図1】本実施形態におけるゲーム装置の外観構成図である。
【図2】図1のII−II線断面図である。
【図3】ゲーム装置の内部構成を示すブロック図である。
【図4】CCDから制御部に送信されるデータの一例を示す図である。
【図5】制御部内に記憶されるデータの一例を示す図である。
【図6】グリッドポリゴンの配置定義の一例を示す図である。
【図7】CCDから制御部に送信されるデータと制御部内に記憶されるデータとのフレーム毎の対応関係を示す図である。
【図8】キャラクタの移動制御処理を示すフローチャートである。
【図9】キャラクタとブロックとの重なりを説明するための図である。
【図10】他のキャラクタとブロックとの重なりを説明するための図である。
【図11】ゲームの一例を説明するための図である。
【符号の説明】
【0064】
1…ゲーム装置、2…筺体、3…スクリーン、4…載置台、4a…突起部、5…収納部、6…ブロック、6a…突出部、6b…陥没部、10…プロジェクタ、19…プロジェクタ用鏡、20…光源部、30…カメラ、39…カメラ用鏡、40…載置台駆動部、50…制御部、51…CPU、52…記憶部、60…画像処理部、70,80,90…データ、100…投影面、101…キャラクタ、111…果実。
【特許請求の範囲】
【請求項1】
仮想三次元空間に配置されるキャラクタの移動を制御する制御手段と、
仮想視点に基づき前記キャラクタを含む前記仮想三次元空間内の様子を表現したゲーム画像を生成する画像生成手段と、
前記ゲーム画像を画面に表示する表示手段と、
プレイヤーのゲーム操作により画面に接近した物体の位置を検出する位置検出手段と、
を備え、
前記制御手段は、
前記位置検出手段から取得した前記物体の位置情報に基づいて、前記物体に対応して設定されるオブジェクトを前記仮想三次元空間に配置する位置を決定し、決定された前記オブジェクトの位置と現在の前記キャラクタの位置とを比較して、前記オブジェクトと前記キャラクタが所定の位置関係にあると判定した場合に、前記キャラクタが現在と異なる位置へ移動するように前記仮想三次元空間における前記キャラクタの配置を制御する、ことを特徴とするゲーム装置。
【請求項2】
前記制御手段は、
前記オブジェクトの位置と現在の前記キャラクタの位置とを比較して、前記オブジェクトと前記キャラクタが互いに衝突する位置関係にあると判定した場合に、前記キャラクタが現在と異なる位置へ移動するように前記仮想三次元空間における前記キャラクタの配置を制御する、ことを特徴とする請求項1に記載のゲーム装置。
【請求項3】
前記位置検出手段は、
プレイヤーが複数の物体を用いてゲーム操作を行った際に、物体それぞれの位置を検出するものであり、
前記制御手段は、
前記位置検出手段から取得した前記物体それぞれの位置情報に基づいて、前記物体それぞれに対応して設定される各オブジェクトを前記仮想三次元空間に配置する位置を決定し、決定された各オブジェクトの位置と現在の前記キャラクタの位置とを比較して、前記キャラクタが複数のオブジェクトによって囲まれた位置関係にあると判定した場合に、前記キャラクタが現在と異なる位置へ移動するように前記仮想三次元空間における前記キャラクタの配置を制御する、ことを特徴とする請求項1に記載のゲーム装置。
【請求項4】
前記制御手段は、
前記キャラクタが前記複数のオブジェクトによって囲まれた位置関係にあると判定した場合に、前記キャラクタを前記複数のオブジェクトによって囲まれた範囲に制限して移動させ、
さらに、前記キャラクタを囲う前記複数のオブジェクトとは異なる別のオブジェクトの位置情報を前記位置検出手段から取得したときに、前記別のオブジェクトの位置と現在の前記キャラクタの位置とを比較して、前記別のオブジェクトと前記キャラクタが互いに衝突する位置関係にあると判定した場合に、前記キャラクタが前記囲まれた範囲外の位置へ移動するように前記仮想三次元空間における前記キャラクタの配置を制御する、ことを特徴とする請求項3に記載のゲーム装置。
【請求項5】
前記制御手段は、
前記キャラクタを現在と異なる位置へ移動させる際に、現在配置されているオブジェクトと移動後に配置されるキャラクタとの衝突を判定し、その判定結果に基づいて互いに衝突しない位置に前記キャラクタを配置するよう制御する、ことを特徴とする請求項3又は4に記載のゲーム装置。
【請求項6】
前記位置検出手段は、
前記画面に向けて赤外光を照射する発光手段と、
前記発光手段から照射された赤外光が前記画面を通過し、プレイヤーのゲーム操作により画面に接近した物体に反射することにより得られる前記物体の像を撮影する撮影手段とを含み、
前記撮影手段によって撮影された像に基づき、前記画面に対向して配置される前記物体の位置を検出することを特徴とする、請求項1乃至5のいずれかに記載のゲーム装置。
【請求項7】
仮想三次元空間に配置されるキャラクタの移動を制御する制御手段と、仮想視点に基づき前記キャラクタを含む前記仮想三次元空間内の様子を表現したゲーム画像を生成する画像生成手段と、前記ゲーム画像を画面に表示する表示手段と、プレイヤーのゲーム操作により画面に接近した物体の位置を検出する位置検出手段とを備えたゲーム装置において、
前記キャラクタを制御する処理をコンピュータに実行させるプログラムであって、
前記コンピュータに
前記位置検出手段から取得した前記物体の位置情報に基づいて、前記物体に対応して設定されるオブジェクトを前記仮想三次元空間に配置する位置を決定する処理と、
決定された前記オブジェクトの位置と現在の前記キャラクタの位置とを比較して、前記オブジェクトと前記キャラクタが所定の位置関係にあるか判定する処理と、
所定の位置関係にある場合に、前記キャラクタが現在と異なる位置へ移動するように前記仮想三次元空間における前記キャラクタの配置を制御する処理と、
を実行させるためのプログラム。
【請求項1】
仮想三次元空間に配置されるキャラクタの移動を制御する制御手段と、
仮想視点に基づき前記キャラクタを含む前記仮想三次元空間内の様子を表現したゲーム画像を生成する画像生成手段と、
前記ゲーム画像を画面に表示する表示手段と、
プレイヤーのゲーム操作により画面に接近した物体の位置を検出する位置検出手段と、
を備え、
前記制御手段は、
前記位置検出手段から取得した前記物体の位置情報に基づいて、前記物体に対応して設定されるオブジェクトを前記仮想三次元空間に配置する位置を決定し、決定された前記オブジェクトの位置と現在の前記キャラクタの位置とを比較して、前記オブジェクトと前記キャラクタが所定の位置関係にあると判定した場合に、前記キャラクタが現在と異なる位置へ移動するように前記仮想三次元空間における前記キャラクタの配置を制御する、ことを特徴とするゲーム装置。
【請求項2】
前記制御手段は、
前記オブジェクトの位置と現在の前記キャラクタの位置とを比較して、前記オブジェクトと前記キャラクタが互いに衝突する位置関係にあると判定した場合に、前記キャラクタが現在と異なる位置へ移動するように前記仮想三次元空間における前記キャラクタの配置を制御する、ことを特徴とする請求項1に記載のゲーム装置。
【請求項3】
前記位置検出手段は、
プレイヤーが複数の物体を用いてゲーム操作を行った際に、物体それぞれの位置を検出するものであり、
前記制御手段は、
前記位置検出手段から取得した前記物体それぞれの位置情報に基づいて、前記物体それぞれに対応して設定される各オブジェクトを前記仮想三次元空間に配置する位置を決定し、決定された各オブジェクトの位置と現在の前記キャラクタの位置とを比較して、前記キャラクタが複数のオブジェクトによって囲まれた位置関係にあると判定した場合に、前記キャラクタが現在と異なる位置へ移動するように前記仮想三次元空間における前記キャラクタの配置を制御する、ことを特徴とする請求項1に記載のゲーム装置。
【請求項4】
前記制御手段は、
前記キャラクタが前記複数のオブジェクトによって囲まれた位置関係にあると判定した場合に、前記キャラクタを前記複数のオブジェクトによって囲まれた範囲に制限して移動させ、
さらに、前記キャラクタを囲う前記複数のオブジェクトとは異なる別のオブジェクトの位置情報を前記位置検出手段から取得したときに、前記別のオブジェクトの位置と現在の前記キャラクタの位置とを比較して、前記別のオブジェクトと前記キャラクタが互いに衝突する位置関係にあると判定した場合に、前記キャラクタが前記囲まれた範囲外の位置へ移動するように前記仮想三次元空間における前記キャラクタの配置を制御する、ことを特徴とする請求項3に記載のゲーム装置。
【請求項5】
前記制御手段は、
前記キャラクタを現在と異なる位置へ移動させる際に、現在配置されているオブジェクトと移動後に配置されるキャラクタとの衝突を判定し、その判定結果に基づいて互いに衝突しない位置に前記キャラクタを配置するよう制御する、ことを特徴とする請求項3又は4に記載のゲーム装置。
【請求項6】
前記位置検出手段は、
前記画面に向けて赤外光を照射する発光手段と、
前記発光手段から照射された赤外光が前記画面を通過し、プレイヤーのゲーム操作により画面に接近した物体に反射することにより得られる前記物体の像を撮影する撮影手段とを含み、
前記撮影手段によって撮影された像に基づき、前記画面に対向して配置される前記物体の位置を検出することを特徴とする、請求項1乃至5のいずれかに記載のゲーム装置。
【請求項7】
仮想三次元空間に配置されるキャラクタの移動を制御する制御手段と、仮想視点に基づき前記キャラクタを含む前記仮想三次元空間内の様子を表現したゲーム画像を生成する画像生成手段と、前記ゲーム画像を画面に表示する表示手段と、プレイヤーのゲーム操作により画面に接近した物体の位置を検出する位置検出手段とを備えたゲーム装置において、
前記キャラクタを制御する処理をコンピュータに実行させるプログラムであって、
前記コンピュータに
前記位置検出手段から取得した前記物体の位置情報に基づいて、前記物体に対応して設定されるオブジェクトを前記仮想三次元空間に配置する位置を決定する処理と、
決定された前記オブジェクトの位置と現在の前記キャラクタの位置とを比較して、前記オブジェクトと前記キャラクタが所定の位置関係にあるか判定する処理と、
所定の位置関係にある場合に、前記キャラクタが現在と異なる位置へ移動するように前記仮想三次元空間における前記キャラクタの配置を制御する処理と、
を実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2010−63844(P2010−63844A)
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願番号】特願2008−235733(P2008−235733)
【出願日】平成20年9月12日(2008.9.12)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願日】平成20年9月12日(2008.9.12)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】
[ Back to top ]