説明

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

【課題】操作者の操作をより詳細に反映したパラメータの更新を行うことにより、より現実に即した操作対象の操作を行わせ、仮想現実感を効果的に高めること。
【解決手段】コントローラの動きに応じて変化する情報から、操作対象の位置、向きを制御し、かかる位置、向きにある操作対象を表示部に表示させて、かかる位置、向きに応じて操作対象の状態パラメータを更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
【背景技術】
【0002】
従来より、シューティングゲームシステムなどのように、操作対象(自機)を操作して、操作目標(標的)を破壊等するゲームを行う画像生成システムが知られている。このような画像生成システムでは、1発のミサイルが当たったか否か、高い所から落ちたか否かなど、1のアクションで勝敗が決まってしまうと現実感がなく、面白みがないため、受けたダメージに応じて耐久度等のパラメータを更新し、耐久度がなくなると破壊されるように制御するものがある。かかる制御を行う技術として、例えば特開平11−70272号公報に開示される従来技術がある。
【特許文献1】特開平11−70272号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら従来の画像生成システムでは、操作ボタンなどの入力有無や操作レバーなどの入力方向を、選択入力することにより操作対象(自機)を操作して、選択入力の結果としてイベントを発生させるか否か決定し、発生したイベントの種類に応じてパラメータを変化させるものであった。従ってパラメータの更新契機、更新量は、発生したイベント種類に応じて一律に決まってしまうものであった。
【0004】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、操作者の操作をより詳細に反映したパラメータの更新を行うことにより、より現実に即した操作対象の操作を行わせ、仮想現実感を効果的に高めることができるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【0005】
(1)本発明は、
コントローラの操作に応じた画像を生成するための画像生成システムであって、
前記コントローラの動きに応じて変化する情報を検出する検出部の検出結果に基づいて、前記コントローラの動き情報を取得する情報取得部と、
前記動き情報に基づいて、仮想空間における操作対象の位置、向きを制御する移動処理部と、
前記操作対象の位置、向きに基づいて、表示部に前記操作対象を表示させる操作対象表示制御処理を行う表示制御部と、
前記操作対象の位置、向きに応じて、前記操作対象に設定される状態パラメータを更新するパラメータ更新部と、
を含むことを特徴とする画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0006】
本発明では、コントローラの動きに応じて変化する情報から、操作対象の位置、向きが制御されるので、コントローラの動きをそのまま操作対象の位置、向きに反映させることができる。そしてかかる位置、向きにある操作対象を表示部に表示させて、かかる位置、向きに応じて操作対象の状態パラメータを更新する。
【0007】
従って本発明によれば、コントローラの動きをより詳細に反映したパラメータの更新を行うことができる。例えば、操作対象の位置が同じでも向きが異なればパラメータの更新態様も異ならせることができる。こうして本発明によれば、コントローラの動き(操作者の操作内容)を操作対象の表示、パラメータの更新(操作結果)に、より現実に即した形で反映せることができ、操作者の仮想現実感を効果的に高めることができる。
【0008】
(2)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記状態パラメータの値に応じて、所与のイベントを発生させるイベント発生部を更に含むようにしてもよい。
【0009】
本発明によれば、パラメータが更新されないようにコントローラを操作させて、所与のイベントが発生しないようにさせたり、パラメータが更新されるようにコントローラを操作させて、所与のイベントが発生するようにさせることができる。従って本発明によれば、コントローラの操作に目的意識や、緊張感を与えることができる。
【0010】
(3)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記パラメータ更新部が、
前記操作対象の位置及び向きの少なくとも一方の変化に応じて前記状態パラメータを更新するようにしてもよい。
【0011】
本発明によれば、操作対象の位置、向きの変化タイミングや変化量等に応じて、そのときの操作対象の位置、向きに応じたパラメータの更新を行うことができる。従って本発明によれば、操作対象の位置、向きの変化と、そのときの操作対象の位置、向きとの組み合わせによって、コントローラの動きをより詳細に反映したパラメータの更新を行うことができる。
【0012】
(4)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想空間に複数の領域が設定され、
前記パラメータ更新部が、
前記操作対象と前記仮想空間の各領域との位置関係に応じて前記状態パラメータを更新するようにしてもよい。
【0013】
本発明によれば、操作対象と仮想空間の各領域との位置関係に応じて、そのときの操作対象の位置、向きに応じたパラメータの更新を行うことができる。従って本発明によれば、操作対象と仮想空間の各領域との位置関係を考慮したコントローラの動きを要求することができる。
【0014】
(5)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記操作対象に複数の領域が設定され、
前記パラメータ更新部が、
前記操作対象の各領域と前記仮想空間の各領域との位置関係に応じて、前記操作対象の領域ごとに前記状態パラメータを更新するようにしてもよい。
【0015】
本発明によれば、操作対象の各領域と仮想空間の各領域との位置関係に応じて、そのときの操作対象の位置、向きに応じたパラメータの更新を、操作対象の領域ごとに行うことができる。従って本発明によれば、操作者に対して、操作対象の各領域と仮想空間の各領域との位置関係を考慮したより詳細なコントローラの動きを要求することができる。
【0016】
(6)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記パラメータ更新部が、
前記操作対象が一の領域から他の領域に移動した場合に前記状態パラメータを更新するようにしてもよい。
【0017】
本発明によれば、操作対象が一の領域から他の領域に移動したことを契機として、そのときの操作対象の位置、向きに応じたパラメータの更新を行うことができる。従って本発明によれば、操作者に対して、操作対象が領域間を移動する際の操作対象の位置、向きを考慮したコントローラの動きを要求することができる。
【0018】
(7)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記パラメータ更新部が、
前記操作対象の移動速度に応じて前記状態パラメータを更新するようにしてもよい。
【0019】
本発明によれば、操作対象の移動速度に応じて、そのときの操作対象の位置、向きに応じたパラメータの更新を行うことができる。従って本発明によれば、操作対象の移動速度と、そのときの操作対象の位置、向きとの組み合わせによって、コントローラの動きをより詳細に反映したパラメータの更新を行うことができる。
【0020】
(8)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記パラメータ更新部が、
経過時間に応じて前記状態パラメータを更新するようにしてもよい。
【0021】
本発明によれば、経過時間に応じて、そのときの操作対象の位置、向きに応じたパラメータの更新を行うことができる。従って本発明によれば、経過時間と、そのときの操作対象の位置、向きとの組み合わせによって、コントローラの動きをより詳細に反映したパラメータの更新を行うことができる。
【0022】
(9)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記パラメータ更新部が、
前記仮想空間に設定される所与の向きと前記操作対象の向きとの関係に応じて前記状態パラメータを更新するようにしてもよい。
【0023】
本発明において、「仮想空間に設定される所与の向き」とは、例えば水中における水流の向きや、空中における気流の向き等、種々のパラメータを設定することができる。
【0024】
本発明によれば、仮想空間に設定される所与の向きと操作対象の向きとの関係に応じた、より詳細なパラメータの更新を行うことができる。従って本発明によれば、操作者に対して、仮想空間に設定される所与の向きと操作対象の向きとの関係を考慮したコントローラの動きを要求することができる。
【0025】
(10)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記表示制御部が、
前記表示部に操作目標を表示させる操作目標表示制御処理を更に行い、
前記パラメータ更新部が、
前記操作目標と前記操作対象とが所定の位置関係にある場合に、前記操作目標に設定された属性パラメータに応じて前記状態パラメータを更新するようにしてもよい。
【0026】
本発明によれば、操作目標と操作対象との位置関係と、操作目標の属性パラメータとに応じた、より詳細なパラメータの更新を行うことができる。従って本発明によれば、操作者に対して、操作目標と操作対象との位置関係と、操作目標の属性パラメータとを考慮したコントローラの動きを要求することができる。
【0027】
(11)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記パラメータ更新部が、
前記操作目標と前記操作対象とが所与の位置関係にある場合の経過時間に応じて前記状態パラメータを更新するようにしてもよい。
【0028】
本発明によれば、操作目標と操作対象との位置関係と、操作目標の属性パラメータとに加え、操作目標と操作対象とが所与の位置関係にある場合の経過時間に応じた、より詳細なパラメータの更新を行うことができる。従って本発明によれば、操作者に対して、操作目標と操作対象とが所与の位置関係にある場合の経過時間を更に考慮したコントローラの動きを要求することができる。
【0029】
(12)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記コントローラの操作に関する評価を行う評価部を更に含み、
前記表示制御部が、
前記表示部に操作目標を表示させ、前記操作目標と前記操作対象とが所定の位置関係にある場合に、前記操作対象の移動に追従するように前記操作目標を移動させる操作目標表示制御処理を更に行い、
前記評価部が、
前記操作対象の移動に追従するように前記操作目標を移動させて所与の条件を満たした場合に、前記評価を行うようにしてもよい。
【0030】
本発明によれば、操作対象の移動に追従するように操作目標を移動させて所与の条件を満たすと評価が行われるが、そのときの操作対象の位置、向きに応じてパラメータの更新が行われる。従って本発明によれば、操作者に対して、操作目標を移動させる際の操作目標と操作対象との位置関係と、操作対象の位置、向きとの関係を考慮したコントローラの動きを要求することができる。
【0031】
(13)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想空間に複数の領域が設定され、
前記パラメータ更新部が、
前記操作対象が第1の領域に位置する場合に、前記操作対象の位置、向きに応じて前記状態パラメータを第1の値から第2の値に向けて更新し、
前記操作対象が第2の領域に位置する場合に、前記動き情報に基づいて前記状態パラメータを第2の値から第1の値に向けて更新するようにしてもよい。
【0032】
本発明によれば、操作対象が第1の領域に位置する場合には、操作対象の位置、向きに応じて状態パラメータを例えば減少させるように更新し、操作対象が第2の領域に位置する場合には、動き情報に基づいて状態パラメータを例えば増加させるように、第1の領域に位置する場合とは逆に更新する。即ち操作対象が第1の領域に位置する場合と第2の領域に位置する場合とで、パラメータの更新を逆にする。これにより本発明によれば、コントローラの動き(操作者の操作内容)をパラメータの更新(操作結果)に、第1の領域と第2の領域とで異なるように反映させることができる。例えば水中領域に操作対象を移動させると、操作対象が濡れて耐久度が減少し、空中領域で操作対象を振るように操作すると、操作対象が乾いて耐久度が回復するようにしてもよい。
【発明を実施するための最良の形態】
【0033】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0034】
1.システム概略
図1は、本実施形態の画像生成システムを適用したゲームシステム10の概略外観図である。本実施形態のゲームシステム10は、表示画面11にゲーム画像を表示させる表示部12と、ゲーム処理等を行うゲーム機14と、プレーヤPが把持して所定範囲内での位置、向きを任意に変更可能なコントローラ16とを含む。本実施形態のコントローラ16は、コントローラ16の動きに応じて変化する情報を検出する検出部を内蔵しており、コントローラ16自体の位置や向き等の動きに関する情報を取得できるようになっている。なお図1の例では、ゲーム機14とコントローラ16とがケーブルにより接続されているが、ゲーム機14とコントローラ16との間で無線通信により情報を送受信するようにしてもよい。
【0035】
本実施形態ではコントローラ16は、その先端にCMOSセンサ等の撮像素子(受光素子)が設けられており、コントローラ16の先端を向けた方向の画像を取得することができる。また本実施形態の表示部12の表示画面11の上方には、2個の赤外線LED等からなる赤外光原18、20が設けられている。そして予め設定された基準位置情報と、撮像素子が取得した2つの赤外光原18、20の位置情報とから、表示画面11上におけるコントローラ16の指示位置の情報が演算できるようになっている。
【0036】
従って図1に示すように、プレーヤPがコントローラ16を把持しながら手を動かしてコントローラ16自体の位置、向きを変化させると、かかる位置、向きの変化に応じて、表示部12に表示される操作対象COの位置、向きを変化させることができる。即ちコントローラ16自体の動きにより、操作対象COを操作することができる。
【0037】
図2は、表示画面11におけるコントローラ16の指示位置の情報を演算する手法を説明するための図である。図2に示す矩形の領域は、CMOSセンサが取得した画像データが格納される画像データ領域PAである。本実施形態ではこの画像データ領域PAには、1/60秒ごとにコントローラ16の位置、向きに応じた画像データが格納される。そして画像データ領域PAに格納された画像データのうち、赤外光原18、20を撮像した領域である赤外光原領域IrA1、IrA2を用いて、表示画面11におけるコントローラ16の指示位置の情報を演算する。本実施形態では、画像データ領域PAの原点Oをコントローラ16が指示する点とし、原点Oと、画像データ領域PAにおける赤外光原領域IrA1、IrA2の位置座標と、画像データ領域PAにおける表示画面11に対応する領域である表示画面領域DpAとの相対的な位置関係から、表示画面11上におけるコントローラ16の指示位置の情報を演算する。
【0038】
図2の例では、赤外光原領域IrA1、IrA2が、画像データ領域PAの中央よりもやや上方において、画像データ領域PAの基準線L(X軸)に対して時計回りにθ°回転された状態で形成されている。従って図2の例では、原点Oは表示画面領域DpAの右下部の所定位置に対応させることができ、表示画面11上におけるコントローラ16の指示位置の座標を求めることができる。そして、赤外光原領域IrA1、IrA2を結ぶ直線lの基準線Lに対する回転角度θから、表示画面11に対するコントローラ16の指示方向軸回りの回転角度を求めることができる。また、コントローラ16が表示画面11と所定距離にあるときの赤外光原領域IrA1とIrA2との基準距離Dを予め設定しておくことにより、基準距離Dと、図2の例における赤外光原領域IrA1とIrA2との距離dとの比に基づき、図2の例における表示画面11に対するコントローラ16の距離を求めることができる。
【0039】
また本実施形態ではコントローラ16は、その内部に加速度センサ等を内蔵している。この加速度センサは、コントローラ16自体の動きに応じてコントローラ16の位置、向きが一定時間にどの位変化したか、コントローラ16自体の動きをコントローラ16にかかる加速度ベクトルとして検出することができる。本実施形態では、ゲーム空間としての仮想3次元空間(ワールド座標系)における3軸(X軸、Y軸、Z軸)それぞれの加速度ベクトルとして検出することができる。
【0040】
従って本実施形態では、コントローラ16自体の動きの大きさ、方向、速度を検出することができる。また本実施形態では、予め設定されたコントローラ16の現実空間における基準位置(例えばコントローラ16の指示方向が表示画面11の中心と、直交する状態でのコントローラ16位置、向き)と、検出した3軸の加速度ベクトルとを比較することにより、表示画面11(基準位置)に対するコントローラ16の位置、向き、及び表示画面11上におけるコントローラ16の指示位置、及び表示画面11に対するコントローラ16の回転角度等を求めることができる。
【0041】
こうして本実施形態では、コントローラ16に内蔵されたCMOSセンサ、加速度センサ等により、コントローラ16の動きに応じて変化する情報を検出し、コントローラ16自体の現実空間における位置、指示位置、向きの変化や、コントローラ16自体の動きの大きさ、方向、速度等、コントローラ16自体の動きに関する情報を取得することができる。
【0042】
2.ゲーム概略
図3は、本実施形態のゲームシステム10を金魚すくいゲームに適用した例を説明するための図である。図3の例では、表示画面11に、プレーヤがコントローラ16を動かすことにより移動する操作対象としての金魚すくい用のポイオブジェクトPOが表示されている。そして、ポイオブジェクトPOが配置されている空中領域AAに対する水中領域WAには、ポイオブジェクトPOを操作する目標となる操作目標としての複数の金魚オブジェクトKOが表示されている。
【0043】
そして本実施形態では、複数の金魚オブジェクトKOから1の目標を定め、コントローラ16を動かすことによりポイオブジェクトPOを空中領域AAから水中領域WAに移動させ、ポイオブジェクトPOのすくい面PSにより金魚オブジェクトKOを捉える。更にポイオブジェクトPOを水中領域WAから空中領域AAに移動させ、金魚オブジェクトKOをすくい上げる。そしてすくい上げた金魚オブジェクトKOを、表示画面11の中央左部に表示されたお椀オブジェクトOOに移動させ、金魚オブジェクトKOを確保する。すると確保した金魚オブジェクトKOの数が、表示画面11の左下部に得点表示PGとして表示される。
【0044】
そして本実施形態では、紙でできている現実の金魚すくい用のポイが、水中におけるポイの移動にともなう水の抵抗等に応じて破けてしまうように、コントローラ16の動きに応じたポイオブジェクトPOの位置、向き等に応じて、ポイオブジェクトPOのすくい面PSが破けるイベントを発生させる。そこで本実施形態では、水中領域WAにおけるポイオブジェクトPOの位置、向き等に応じて、ポイオブジェクトPOに設定される状態パラメータとしての耐久度パラメータを更新する。そして耐久度パラメータが初期値から所定の値(例えば0)まで変化すると、すくい面PSが破けてゲーム終了とする。なお、表示画面11の左上部にはゲームの制限時間を表示する制限時間表示TGが表示され、制限時間表示TGが0となった場合もゲーム終了とする。
【0045】
このように本実施形態の金魚すくいゲームシステム10では、耐久度パラメータが更新されてすくい面PSが破れないようにコントローラ16を操作し、制限時間内になるべく多くの金魚オブジェクトKOをすくうというゲームを楽しむ。
【0046】
3.構成
次に、図4を用いて本実施形態における画像生成システム(ゲームシステム)の構成について説明する。図4は、本実施形態における画像生成システムの機能ブロック図の一例である。なお、本実施形態の画像生成システムは、図4の構成要素(各部)の一部を省略した構成としてもよい。
【0047】
操作部160は、プレーヤが操作データを入力するためのものであり、特に本実施形態では、プレーヤが操作部160を把持して操作部160自体の位置、向きを任意に変更可能なものである。そして操作部160は、操作部160自体の動きに応じて変化する情報を検出する検出部162を内蔵する。従って本実施形態の操作部160は、操作部160自体の動きを操作データとして入力することができる。
【0048】
検出部162は、例えばCMOSセンサやCCDカメラなど、撮像素子(受光素子)により撮像側の基準位置と撮像対象の受光位置との相対関係を取得して、操作部160自体の動きを検出する第1の検出部と、加速度センサや姿勢方位センサやジャイロなど、加速度、角速度、速度により基準位置、基準向き(基準軸)からの位置、向きの変位を検出する第2の検出部とを含む。例えば加速度センサとしては、圧電型や動電式、歪みケージ式等のハードウェアにより実現できる。これにより検出部162は、操作部160自体の動きを連続的な値として検出することができる。
【0049】
また操作部160は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどを備えるようにして、種々の操作データを入力できるようにしてもよい。
【0050】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。そして、本実施形態の記憶部170は、ワーク領域として使用される主記憶部171と、最終的な表示画像等が記憶されるフレームバッファ172と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部173と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部174と、オブジェクトの画像の生成処理時にZ値が記憶されるZバッファ176と、を含む。なお、これらの一部を省略する構成としてもよい。
【0051】
特に本実施形態では記憶部170は、ポイオブジェクトPOのすくい面PSの向きに応じた、すくい面PSの耐久度パラメータの減算量を規定する減算量テーブル178を含む。ここで耐久度パラメータとは、すくい面PSが破れるまでの度合いを示すものであり、本実施形態では初期値が100とされ、0となるとすくい面PSが破れ、ゲーム終了となる。そして本実施形態では減算量テーブル178は、複数種類のポイオブジェクトPOそれぞれについて異なる数値のものを用意することができる。即ち操作対象であるポイオブジェクトPOの種類ごとに耐久度パラメータを異ならせて更新することができる。
【0052】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。
【0053】
この情報記憶媒体180には、処理部100において本実施形態の種々の処理を行うためのプログラム(データ)が記憶されている。即ち、この情報記録媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶されている。
【0054】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイなどにより実現できる。特に本実施形態では、表示部190の表示画面の中や、その周辺に、操作部160と表示部190の表示画面の相対位置を演算するための光源が設けられている。本実施形態ではこの光源は、不可視光を射出する赤外線LEDを用いている。
【0055】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0056】
携帯型情報記憶装置194には、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。
【0057】
通信部196は、外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0058】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0059】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここで、ゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0060】
特に、本実施形態の処理部100は、情報取得部108と、オブジェクト空間設定部110と、移動・動作処理部112と、表示制御部113と、パラメータ更新部122と、イベント発生部124と、評価部126と、音生成部130と、を含む。なお、これらの一部を省略する構成としてもよい。
【0061】
情報取得部108は、操作部160の動きに応じて変化する情報を検出する検出部162の検出結果に基づいて、操作部160の動き情報を取得する。本実施形態では、操作部160に内蔵された検出部162の検出結果を1/60秒ごとに取得し、操作部160自体の動きに関する情報を演算しこれを取得する。
【0062】
具体的には情報取得部108は、操作部160の先端に設けられたCMOSセンサ(第1の検出部)が検出した画像情報に基づいて、表示部190の表示画面上における操作部160の指示位置の座標、及び、表示部190の表示画面に対する操作部160の回転角度、及び、表示部190の表示画面に対する操作部160の距離を求め、これを取得することができる。
【0063】
また情報取得部108は、操作部160に内蔵された加速度センサ(第2の検出部)が検出した3軸(X軸、Y軸、Z軸)方向の加速度ベクトルに基づいて、操作部160自体の動きの大きさ、方向、速度を取得することができる。また表示部190の表示画面(基準位置、基準向き)に対する操作部160の位置、向き、及び、表示部190の表示画面上における操作部160の指示位置、及び、表示部190の表示画面(基準角度)に対する操作部160の回転角度等を求め、これを取得することができる。
【0064】
オブジェクト空間設定部110は、操作対象オブジェクト(金魚すくい用のポイオブジェクトPO)、操作目標オブジェクト(金魚オブジェクトKO)などの移動体オブジェクトやキャラクタオブジェクト、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ち、オブジェクト空間設定部110は、ワールド座標系でのオブジェクト(モデルオブジェクト)の位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0065】
移動・動作処理部112は、操作対象オブジェクトや操作目標オブジェクトなどの移動体オブジェクトの移動・動作演算(移動・動作シミュレーション)を行う。即ち、この移動・動作処理部112は、操作部160によりプレーヤが入力した操作データ、設定されたパラメータや属性又はプログラム(移動・動作アルゴリズム)や各種データ(モーションデータ)などに基づいて、移動体オブジェクトをオブジェクト空間内で移動させ、又は、移動体オブジェクトの動作(モーション、アニメーション)を制御するための処理を行う。
【0066】
具体的には、本実施形態の移動・動作処理部112は、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。ここでフレームとは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。そして、本実施形態では、フレームレートは毎フレーム固定としてもよいし、処理負荷に応じて可変としてもよい。
【0067】
特に、本実施形態の移動・動作処理部112は、操作部160の動き情報に基づいて、オブジェクト空間(仮想空間)における操作対象オブジェクトの位置、向きを制御する。具体的には移動・動作処理部112は、操作部160自体の連続的な動きに関する情報に基づいて、操作対象オブジェクトが操作部160自体の動きに連動した動きをするように、操作対象オブジェクトの位置、向きを制御する。
【0068】
表示制御部113は、移動・動作処理部112が求めた操作対象オブジェクトの位置、向きに基づいて、表示部190に操作対象オブジェクトを表示させる操作対象表示制御処理と、表示部190に操作目標オブジェクトを表示させる操作目標表示制御処理とを行う。また表示制御部113は、操作目標表示制御処理として、操作目標オブジェクトと操作対象オブジェクトとが所定の位置関係にある場合に、操作対象オブジェクトの移動に追従するように操作目標オブジェクトを移動させる処理を行う。そしてより詳細には表示制御部113は、仮想カメラ制御部114と描画部120とを含む。
【0069】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。なお本実施形態では、仮想カメラは固定とされている。
【0070】
例えば仮想カメラにより移動体オブジェクトを追従して撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0071】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、本実施形態の描画部120は、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理が行われる。なお、頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0072】
また、頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。
【0073】
ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色をフレームバッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。
【0074】
これにより、オブジェクト空間内に設定された仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0075】
なお、描画部120が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0076】
そして、描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0077】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理を行う。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)を記憶部170に記憶する。
【0078】
テクスチャマッピングでは、記憶部170のテクスチャ記憶部174に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングする処理を行う。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部174からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出し、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0079】
隠面消去処理では、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行う。すなわち、オブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照するとともに、当該参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0080】
αブレンディング(α合成)では、描画部120は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)を行う。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0081】
パラメータ更新部122は、操作対象オブジェクトの位置、向きに応じて、操作対象オブジェクトに設定される耐久度パラメータを更新する。具体的にはパラメータ更新部122は、図5(A)に示すような減算量テーブル178を参照し、初期値100から0まで耐久度パラメータを減算する。図5(A)の例では、図5(B)に示すように、すくい面PSの法線方向(すくい面PSの向き)と、ポイオブジェクトPOの水中領域WAにおける移動方向とがなす角γが0°に近いほど、即ちすくい面PSが水の抵抗を大きく受けると考えられる場合ほど、耐久度パラメータの減算量が大きくなるように減算する。即ち水中領域WAにおいて、すくい面PSの法線方向に沿ってポイオブジェクトPOを移動させると、すぐに値が0になるように耐久度パラメータを減算し、一方、ポイオブジェクトPOの移動方向とすくい面PSの法線方向とがなす角が大きくなるにつれ、すぐには値が0になりにくいように耐久度パラメータを減算する。
【0082】
またパラメータ更新部122は、操作対象オブジェクトの位置及び向きの少なくとも一方の変化に応じて耐久度パラメータを更新するようにしてもよい。例えば操作対象オブジェクトの位置の変化量(移動量)、向きの変化量が所定値を超えたタイミングで、耐久度パラメータを更新する。
【0083】
またパラメータ更新部122は、操作対象と、オブジェクト空間に設定された各領域との位置関係に応じて耐久度パラメータを更新する。例えば、操作対象オブジェクトが一の領域から他の領域に移動した場合に耐久度パラメータを更新するようにしてもよい。具体的には本実施形態では、空中領域AAにあった操作対象オブジェクトが水中領域WAに接触したときに耐久度パラメータを更新するようにしてもよいし、水中領域WAにあった操作対象オブジェクトが空中領域AAに接触したときに耐久度パラメータを更新するようにしてもよい。即ち操作対象オブジェクトの入水時や出水時に耐久度パラメータを更新する。
【0084】
またパラメータ更新部122は、操作対象オブジェクトの各領域と、オブジェクト空間の各領域との位置関係に応じて、操作対象オブジェクトの領域ごとに耐久度パラメータを更新する。例えば図6に示すように、ポイオブジェクトPOのすくい面PSに左領域LA、中領域CA、右領域RAの3つの領域が設定されている場合には、左領域LAのみが水中領域WAに接触すると左領域LAのみについて耐久度パラメータを更新する。
【0085】
またパラメータ更新部122は、操作対象オブジェクトの移動速度に応じて耐久度パラメータを更新するようにしてもよい。この場合には検出部162の検出情報に基づいて、操作部160の所定期間における移動量から、操作部160の動き情報として移動速度情報を求め、かかる移動速度情報を操作対象オブジェクトの移動速度として用いることができる。そして、移動速度が速いほど耐久度パラメータの減算量が大きくなるようにする。
【0086】
またパラメータ更新部122は、経過時間に応じて耐久度パラメータを更新するようにしてもよい。例えば操作対象オブジェクトが水中領域WAに接触してから(入水から)水中領域WAと接触しなくなるまで(出水まで)の経過時間に応じて一定量の耐久度パラメータを減算するようにしてもよい。
【0087】
またパラメータ更新部122は、水中領域WAに設定される水流の向きと操作対象オブジェクトの向きとの関係に応じて耐久度パラメータを更新するようにしてもよい。この場合には、水中領域WAにおけるすくい面PSの法線方向(すくい面PSの向き)と、水中領域WAに設定される水流の向きとがなす角が0°に近いほど、耐久度パラメータの減算量が大きくなるように減算する。なお、ポイオブジェクトPOの水中領域WAにおける移動方向をも加味して耐久度パラメータを更新してもよい。例えば移動方向と、水流の向きとが同方向である場合には、耐久度パラメータの減算量が減少するようにしてもよい。
【0088】
またパラメータ更新部122は、操作目標オブジェクト(例えば金魚オブジェクトKO)と操作対象オブジェクト(例えばポイオブジェクトPO)とが所定の位置関係にある場合に、操作目標オブジェクトに設定された属性パラメータに応じて耐久度パラメータを更新する。例えば、ポイオブジェクトPOにより金魚オブジェクトKOを捉えた場合に、金魚オブジェクトKOに設定された重量パラメータや暴れパラメータ等に応じて、耐久度パラメータを更新する。またパラメータ更新部122は、例えば、ポイオブジェクトPOにより金魚オブジェクトKOを捉えた場合の経過時間に応じて耐久度パラメータを更新するようにしてもよい。なお、操作目標オブジェクトと操作対象オブジェクトとが所定の位置関係にある場合には、水中領域WAと空中領域AAのいずれの領域においても耐久度パラメータを更新するようにしてもよい。
【0089】
またパラメータ更新部122は、操作対象オブジェクトが第1の領域に位置する場合に、操作対象の位置、向きに応じて耐久度パラメータを第1の値から第2の値に向けて更新し、操作対象オブジェクトが第2の領域に位置する場合に、動き情報に基づいて耐久度パラメータを第2の値から第1の値に向けて更新するようにしてもよい。例えば、ポイオブジェクトPOが水中領域WAに位置する場合には、ポイオブジェクトPOの移動に応じて耐久度パラメータを減算し、一方、ポイオブジェクトPOが空中領域AAに位置する場合には、ポイオブジェクトPOの移動に応じてポイオブジェクトPOが乾いて耐久度が回復するように、耐久度パラメータを加算するようにしてもよい。これにより例えば、ポイオブジェクトPOが水中領域WAに位置する場合には、ポイオブジェクトPOのすくい面PSが破れないように(パラメータが減算されないように)慎重な操作を行わせ、対してポイオブジェクトPOが空中領域AAに位置する場合には、ポイオブジェクトPOのすくい面PSが乾くように(パラメータが加算されるように)激しい操作を行わせるようにしてもよい。
【0090】
こうして耐久度パラメータが更新されると、上述の表示制御部113が、耐久度パラメータの更新に応じて、ポイオブジェクトPOのすくい面PSの色を変化させる。例えば耐久度パラメータが減少するにつれ、すくい面PSの色や透明度が薄くなるようにしてもよい。
【0091】
イベント発生部124は、耐久度パラメータの値に応じて、所与のイベントを発生させる。具体的には本実施形態ではイベント発生部124は、耐久度パラメータが更新されて0になった場合に、ポイオブジェクトPOのすくい面PSが破れるイベントを発生させる。即ち表示制御部113が、ポイオブジェクトPOのすくい面PSが破れる表示制御処理を行い、ポイオブジェクトPOにより金魚オブジェクトKOがすくえないようにする。ここで図6に示すように、すくい面PSに複数の領域が設定されている場合には、領域ごとにイベントを発生させる処理を行う。そして、すくい面PS全てについて耐久度パラメータが0になった場合には、ゲームを終了させる処理を行う。
【0092】
評価部126は、操作部160の操作に関する評価を行う。特に、操作対象であるポイオブジェクトPOの移動に追従するように、操作目標である金魚オブジェクトKOを移動させて、お椀オブジェクトOOの中に入れると、ゲーム条件を満たしたとして評価を行う。具体的には本実施形態では、確保した金魚オブジェクトKOの数を得点表示PGとして表示したり、「うまい!」などの表示を行うなどして、操作者の操作を評価する処理を行う。
【0093】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0094】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0095】
また、複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0096】
4.処理の詳細
次に本実施形態の処理の一例の詳細についてフローチャート図を用いて説明する。
【0097】
4−1.パラメータ更新処理
図7は、本実施形態の耐久度パラメータの更新処理の一例の詳細を示すフローチャート図である。図7に示すように、まずプレーヤがコントローラ16を動かすことにより動き情報が入力された場合に(ステップS10のY)、動き情報に基づいて、ポイオブジェクトPOの位置、向きを制御する(ステップS12)。
【0098】
図8(A)、(B)は、コントローラ16の動きに応じたポイオブジェクトPOの動きを説明するための概念図であって、コントローラ16が移動する実空間RSとポイオブジェクトPOが移動するオブジェクト空間OSとを真横から見たものである。図8(A)に示すように本実施形態では、プレーヤがコントローラ16を表示部12の表示画面11に近づけると、コントローラ16の移動量に応じて空中領域AAにあるポイオブジェクトPOが水中領域WAに向けて移動する。即ちポイオブジェクトPOが、オブジェクト空間OS内でZ軸奥方向に移動する。一方、コントローラ16を表示部12の表示画面11から遠ざけると、コントローラ16の移動量に応じてポイオブジェクトPOが空中領域AAに向けて移動する。即ちポイオブジェクトPOが、オブジェクト空間OS内でZ軸手前方向に移動する。即ち、表示画面11に対するコントローラ16の距離情報に基づいて、ポイオブジェクトPOを移動させる。
【0099】
また図8(B)に示すように、プレーヤがコントローラ16を表示部12の表示画面11に対して上下方向に移動させると、コントローラ16の移動量に応じてポイオブジェクトPOがY軸上下方向に移動する。また、プレーヤがコントローラ16を表示部12の表示画面11に対して左右方向(図中では手前奥方向)に移動させると、コントローラ16の移動量に応じてポイオブジェクトPOがX軸左右方向(図中では手前奥方向)に移動する。即ち、表示画面11上におけるコントローラ16の指示位置情報に基づいて、ポイオブジェクトPOを移動させる。なお本実施形態ではポイオブジェクトPOは、空中領域AA、水中領域WAのいずれにおいても、上下左右方向に移動させることができる。
【0100】
また本実施形態では、図8(B)に示すようにコントローラ16を表示画面11に対して平行移動させなくとも、図9(A)に示すようにコントローラ16の指示方向(コントローラ16の向き)を上下左右させることにより、コントローラ16の向きの変化量に応じてポイオブジェクトPOがX軸、Y軸方向それぞれに移動するようにしてもよい。即ち、表示画面11上におけるコントローラ16の指示位置に応じてポイオブジェクトPOを移動させるようにしてもよい。
【0101】
なお図9(B)に示すように、コントローラ16の指示方向(コントローラ16の向き)を上下左右させることにより、コントローラ16の向きの変化量に応じてポイオブジェクトPOの向きを変化させるようにしてもよい。例えばコントローラ16の指示方向(コントローラ16の向き)を上下させることにより、ポイオブジェクトPOのX軸回りの回転角度を変化させるようにし、コントローラ16の指示方向(コントローラ16の向き)を左右させることにより、ポイオブジェクトPOのZ軸回りの回転角度を変化させるようにしてもよい。
【0102】
また本実施形態では図10に示すように、コントローラ16を指示方向に沿う軸回りに回転させることにより、コントローラ16の回転角度の変化量に応じてポイオブジェクトPOのY軸回りの回転角度を変化させる。
【0103】
そして本実施形態では、このようなコントローラ16自体の位置、向き、回転角度、指示位置等の組み合わせに応じて、ポイオブジェクトPOの位置、向きを制御する。従って、コントローラ16自体の動きに応じて、ポイオブジェクトPOのすくい面PSの法線方向(すくい面PSの向き)と、ポイオブジェクトPOの移動方向、移動量、移動速度等を、種々の状態に変化させることができる。なお、コントローラ16自体の位置、向き、回転角度、指示位置等を取得するセンサは、CMOSセンサ(第1の検出部)としてもよいし、加速度センサ(第2の検出部)としてもよい。またそれらの任意の組合せとしてもよい。
【0104】
こうしてポイオブジェクトPOの位置、向きを制御すると(図7のステップS12)、ポイオブジェクトPOが存在する位置が水中である場合には(ステップS14のY)、ポイオブジェクトPOの移動に伴う耐久度パラメータの更新を行う。本実施形態では、ポイオブジェクトPOを移動させたときのポイオブジェクトPOのすくい面PSの法線方向(すくい面PSの向き)と、ポイオブジェクトPOの移動方向とがなす角に応じて、耐久度パラメータを減算する処理を行う。一方、ポイオブジェクトPOが存在する位置が水中でない場合には(ステップS14のN)、移動に伴う耐久度パラメータの更新を行わずにステップS10〜ステップS14の処理を繰り返す。
【0105】
そして移動に伴う耐久度パラメータの更新により耐久度パラメータが0になった場合には(ステップS18のY)、すくい面PSが破けるイベントを発生させ(ステップS26)、ゲーム終了となる。一方、耐久度パラメータが0にならない場合には(ステップS18のN)、金魚オブジェクトKOとすくい面PSとが接触しているか判定し、接触している場合には(ステップS20のY)、接触した金魚オブジェクトKOに設定されている属性パラメータに応じてポイオブジェクトPOの耐久度パラメータを減算する処理を行う(ステップS22)。一方、金魚オブジェクトKOと接触していない場合には(ステップS20のN)、接触に伴う耐久度パラメータの更新を行わずにステップS10〜ステップS20の処理を繰り返す。
【0106】
そして接触に伴う耐久度パラメータの更新により耐久度パラメータが0になった場合には(ステップS24のY)、すくい面PSが破けるイベントを発生させ(ステップS26)、ゲーム終了となる。一方、耐久度パラメータが0にならない場合には(ステップS24のN)、ステップS10に戻り、ゲーム終了条件を満たすまで上記処理を繰り返す。
【0107】
4−2.すくい処理
図11は、本実施形態のポイオブジェクトPOにより金魚オブジェクトKOをすくう際のすくい処理の一例の詳細を示すフローチャート図である。図11に示すように、まずポイオブジェクトPOのすくい面PSの上面が、金魚オブジェクトKOと接触しているか、即ち金魚オブジェクトKOがすくい面PSの上に載っているか否か判断する(ステップS40)。ここで接触している場合(ステップS40のY)であって、プレーヤがコントローラ16を動かすことにより動き情報が入力された場合には(ステップS42のY)、耐久度パラメータが0か否か判断する(ステップS44)。
【0108】
ここで耐久度パラメータが0でない場合には(ステップS44のN)、接触している金魚オブジェクトKOの中心点CPがすくい面PSの中にあるか否か判断する(ステップS46)。ここで図12(A)に示すように、接触している金魚オブジェクトKOの中心点CPがすくい面PSの中にある場合には(ステップS46のY)、そのときのすくい面PSの水面に対する角度が41°以下(水平に近い)か否か、即ち金魚オブジェクトKOをすくえる範囲の角度であるか判断する(ステップS48)。ここで図12(A)に示すように、すくい面PSの水面に対する角度が41°以下である(水平に近い)場合には(ステップS48のY)、コントローラ16の動き情報に応じて、ポイオブジェクトPOの移動に追従するように金魚オブジェクトKOを移動させる(ステップS50)。即ち、図12(A)のように水中領域WAにあったポイオブジェクトPOと金魚オブジェクトKOとを、図12(B)のように空中領域AAに移動させ、ポイオブジェクトPOにより金魚オブジェクトKOがすくいあげられるようにする。
【0109】
一方、動き情報が入力された場合(ステップS42のY)であっても、耐久度パラメータが0である場合(ステップS44のY)、又は図13(A)に示すように、金魚オブジェクトKOの中心点CPがすくい面PSの中にない場合(ステップS46のN)、又は図13(B)に示すように、すくい面PSの水面に対する角度が41°以下でない(水平から離れる)場合(ステップS48のN)には、金魚オブジェクトKOがポイオブジェクトPOから逃げる処理を行う(ステップS52)。
【0110】
そしてステップS50において、ポイオブジェクトPOと金魚オブジェクトKOとを移動させた結果、ポイオブジェクトPOと金魚オブジェクトKOとが、図12(C)に示すようにお椀オブジェクトOO付近の空中領域AAである所定の位置に移動したか否か判断する(ステップS54)。ここで所定の位置に移動した場合には(ステップS54のY)、すくい面PSの水面に対する角度が41°以上(水平から離れる)に操作されたか否か、即ち金魚オブジェクトKOをお椀オブジェクトOOの中に落とすことができる範囲の角度に操作されたか判断する(ステップS56)。ここで角度が41°以上(水平から離れる)に操作された場合には(ステップS56のY)、ポイオブジェクトPOに追従させていた金魚オブジェクトKOを、図12(C)に示すようにお椀オブジェクトOOの中に落としてこれを確保する(ステップS58)。
【0111】
すると表示画面11に、確保した金魚オブジェクトKOの数を得点表示PGとして表示したり、「うまい!」などの表示を行うなどして、操作者の操作を評価する処理を行う。そして本実施形態では、ポイオブジェクトPOのすくい面PSが破れるまで、即ち耐久度パラメータが0になるまで、上記各処理を繰返し、金魚すくいゲームを楽しむことができる。なお、ポイオブジェクトPOが空中領域AAに位置する場合であっても、ポイオブジェクトPOに金魚オブジェクトKOが載っている場合には、耐久度パラメータを更新するようにしてもよい。
【0112】
このように本実施形態では、ポイオブジェクトPOのすくい面PSの向き(法線方向)とポイオブジェクトPOの移動方向とがなす角が直角に近いほど、即ち移動方向に対してすくい面PSの向き(法線方向)が寝ているほど、耐久度パラメータが更新されにくい(プレーヤに有利となる)。しかし、金魚オブジェクトKOを捉えてすくい上げる際には、すくい面PSの向き(法線方向)と水面(基準面)の向き(法線方向)とがなす角が直角に近づけると、金魚オブジェクトKOが逃げてしまう(プレーヤに不利となる)。従ってプレーヤは、すくい面PSの向き(法線方向)と、ポイオブジェクトPOの移動方向と、水面との関係を考慮して、なるべく耐久度パラメータが更新されないように、かつ、すくい面PSに載せた金魚オブジェクトKOが逃げないように、適切にコントローラ16の位置、向きを操作することにより、適切にポイオブジェクトPOを移動させ、耐久度パラメータが0となってすくい面PSが破れるまで、なるべく多くの金魚オブジェクトを獲得するというゲームを楽しむ。
【0113】
そして本実施形態によれば、コントローラ16の動きをより詳細に反映した耐久度パラメータの更新を行うことができる。例えば、水中領域WAにおいてポイオブジェクトPOを移動させる距離が同じでも、そのときのすくい面PSの向きが異なれば耐久度パラメータの更新態様も異ならせることができる。このように本実施形態によれば、コントローラ16の動き(プレーヤの操作内容)をポイオブジェクトPOの表示、耐久度パラメータの更新(操作結果)に、より現実に即した形で反映せることができ、プレーヤの仮想現実感を効果的に高めることができる。
【0114】
5.ハードウェア構成
図14に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0115】
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
【0116】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
【0117】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
【0118】
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるDVD982にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
【0119】
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0120】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【0121】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0122】
また本発明は種々の画像生成システムに適用できる。上述の実施形態では、本発明を金魚すくいゲームシステムに適用した場合を例に挙げて説明したが、本発明は、操作対象の位置、向きに応じて、操作対象の状態が変化する画像を生成する種々の画像生成システムにも適用することができる。
【0123】
また上記の実施形態では、状態パラメータとしての耐久度パラメータが減少されることにより、プレーヤにとって不利な状態となる例を挙げて説明したが、状態パラメータが増加されることによりプレーヤにとって不利な状態となるようにしてもよい。また、上記の実施形態では、状態パラメータとしての耐久度パラメータが更新されないようにすることが、プレーヤにとって有利な状態となる例を挙げて説明したが、状態パラメータが更新されることがプレーヤにとって有利な状態となるようにしてもよい。即ち状態パラメータの更新については、ゲーム内容に応じて種々に設定することができる。
【0124】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【0125】
【図1】本実施形態のシステムの概略外観の一例を示す図。
【図2】本実施形態の指示位置の情報を演算する手法の一例を説明するための図。
【図3】本実施形態で生成される画像の一例を示す図。
【図4】本実施形態の機能ブロックの一例を示す図。
【図5】図5(A)は、本実施形態のテーブルデータの一例を説明するための図であり、図5(B)は、本実施形態のパラメータ更新を説明するための図。
【図6】本実施形態のパラメータ更新を説明するための図。
【図7】本実施形態の処理の流れの一例を示すフローチャート図。
【図8】図8(A)、(B)は、本実施形態の操作部と操作対象の動きを説明するための図。
【図9】図9(A)、(B)は、本実施形態の操作部と操作対象の動きを説明するための図。
【図10】図10は、本実施形態の操作部と操作対象の動きを説明するための図。
【図11】本実施形態の処理の流れの一例を示すフローチャート図。
【図12】本実施形態の操作対象と操作目標の関係を説明するための図。
【図13】本実施形態の操作対象と操作目標の関係を説明するための図。
【図14】本実施形態を実現できるハードウェアの構成の一例を示す図。
【符号の説明】
【0126】
P プレーヤ、CO 操作対象、PA 画像データ領域、
IrA1・IrA2 赤外光原領域、DpA 表示画面領域、
PO ポイオブジェクト、PS すくい面、KO 金魚オブジェクト、
AA 空中領域、WA 水中領域、
100 処理部、108 情報取得部、110 オブジェクト空間設定部、
112 移動・動作処理部、113 表示制御部、114 仮想カメラ制御部、
120 描画部、122 パラメータ更新部、124 イベント発生部、126 評価部、160 操作部、162 検出部、170 記憶部、190 表示部

【特許請求の範囲】
【請求項1】
コントローラの操作に応じた画像を生成するためのプログラムであって、
前記コントローラの動きに応じて変化する情報を検出する検出部の検出結果に基づいて、前記コントローラの動き情報を取得する情報取得部と、
前記動き情報に基づいて、仮想空間における操作対象の位置、向きを制御する移動処理部と、
前記操作対象の位置、向きに基づいて、表示部に前記操作対象を表示させる操作対象表示制御処理を行う表示制御部と、
前記操作対象の位置、向きに応じて、前記操作対象に設定される状態パラメータを更新するパラメータ更新部としてコンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記状態パラメータの値に応じて、所与のイベントを発生させるイベント発生部としてコンピュータを更に機能させることを特徴とするプログラム。
【請求項3】
請求項1、2のいずれかにおいて、
前記パラメータ更新部が、
前記操作対象の位置及び向きの少なくとも一方の変化に応じて前記状態パラメータを更新することを特徴とするプログラム。
【請求項4】
請求項1〜3のいずれかにおいて、
前記仮想空間に複数の領域が設定され、
前記パラメータ更新部が、
前記操作対象と前記仮想空間の各領域との位置関係に応じて前記状態パラメータを更新することを特徴とするプログラム。
【請求項5】
請求項4において、
前記操作対象に複数の領域が設定され、
前記パラメータ更新部が、
前記操作対象の各領域と前記仮想空間の各領域との位置関係に応じて、前記操作対象の領域ごとに前記状態パラメータを更新することを特徴とするプログラム。
【請求項6】
請求項4、5のいずれかにおいて、
前記パラメータ更新部が、
前記操作対象が一の領域から他の領域に移動した場合に前記状態パラメータを更新することを特徴とするプログラム。
【請求項7】
請求項1〜6のいずれかにおいて、
前記パラメータ更新部が、
前記操作対象の移動速度に応じて前記状態パラメータを更新することを特徴とするプログラム。
【請求項8】
請求項1〜7のいずれかにおいて、
前記パラメータ更新部が、
経過時間に応じて前記状態パラメータを更新することを特徴とするプログラム。
【請求項9】
請求項1〜8のいずれかにおいて、
前記パラメータ更新部が、
前記仮想空間に設定される所与の向きと前記操作対象の向きとの関係に応じて前記状態パラメータを更新することを特徴とするプログラム。
【請求項10】
請求項1〜9のいずれかにおいて、
前記表示制御部が、
前記表示部に操作目標を表示させる操作目標表示制御処理を更に行い、
前記パラメータ更新部が、
前記操作目標と前記操作対象とが所定の位置関係にある場合に、前記操作目標に設定された属性パラメータに応じて前記状態パラメータを更新することを特徴とするプログラム。
【請求項11】
請求項10において、
前記パラメータ更新部が、
前記操作目標と前記操作対象とが所与の位置関係にある場合の経過時間に応じて前記状態パラメータを更新することを特徴とするプログラム。
【請求項12】
請求項1〜11のいずれかにおいて、
前記コントローラの操作に関する評価を行う評価部としてコンピュータを更に機能させ、
前記表示制御部が、
前記表示部に操作目標を表示させ、前記操作目標と前記操作対象とが所定の位置関係にある場合に、前記操作対象の移動に追従するように前記操作目標を移動させる操作目標表示制御処理を更に行い、
前記評価部が、
前記操作対象の移動に追従するように前記操作目標を移動させて所与の条件を満たした場合に、前記評価を行うことを特徴とするプログラム。
【請求項13】
請求項1〜12のいずれかにおいて、
前記仮想空間に複数の領域が設定され、
前記パラメータ更新部が、
前記操作対象が第1の領域に位置する場合に、前記操作対象の位置、向きに応じて前記状態パラメータを第1の値から第2の値に向けて更新し、
前記操作対象が第2の領域に位置する場合に、前記動き情報に基づいて前記状態パラメータを第2の値から第1の値に向けて更新することを特徴とするプログラム。
【請求項14】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜13のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項15】
コントローラの操作に応じた画像を生成するための画像生成システムであって、
前記コントローラの動きに応じて変化する情報を検出する検出部の検出結果に基づいて、前記コントローラの動き情報を取得する情報取得部と、
前記動き情報に基づいて、仮想空間における操作対象の位置、向きを制御する移動処理部と、
前記操作対象の位置、向きに基づいて、表示部に前記操作対象を表示させる操作対象表示制御処理を行う表示制御部と、
前記操作対象の位置、向きに応じて、前記操作対象に設定される状態パラメータを更新するパラメータ更新部と、
を含むことを特徴とする画像生成システム。

【図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


【公開番号】特開2008−71049(P2008−71049A)
【公開日】平成20年3月27日(2008.3.27)
【国際特許分類】
【出願番号】特願2006−248108(P2006−248108)
【出願日】平成18年9月13日(2006.9.13)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】