画像処理装置、画像処理装置の制御方法及びプログラム
【課題】移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御に、プログラマ以外の者、例えば被衝突オブジェクトの形状等をデザインする者が関与しやすくなる画像処理装置を提供すること。
【解決手段】挙動制御情報記憶部60aは、複数の挙動制御用オブジェクトの各々に対応づけて加速度ベクトル情報を記憶する。挙動制御用オブジェクトは、被衝突オブジェクトの、移動体オブジェクトによって衝突される面の背面側の空間に配置される。加速度ベクトル情報は、被衝突オブジェクトによって移動体オブジェクトに加えられる力に起因する移動体オブジェクトの加速度ベクトルを特定するための情報である。ボールオブジェクト挙動制御部64aは、移動体オブジェクトが接触したと判定部62によって判定された挙動制御用オブジェクトに対応づけられた加速度ベクトル情報に基づいて、移動体オブジェクトの挙動を制御する。
【解決手段】挙動制御情報記憶部60aは、複数の挙動制御用オブジェクトの各々に対応づけて加速度ベクトル情報を記憶する。挙動制御用オブジェクトは、被衝突オブジェクトの、移動体オブジェクトによって衝突される面の背面側の空間に配置される。加速度ベクトル情報は、被衝突オブジェクトによって移動体オブジェクトに加えられる力に起因する移動体オブジェクトの加速度ベクトルを特定するための情報である。ボールオブジェクト挙動制御部64aは、移動体オブジェクトが接触したと判定部62によって判定された挙動制御用オブジェクトに対応づけられた加速度ベクトル情報に基づいて、移動体オブジェクトの挙動を制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置、画像処理装置の制御方法及びプログラムに関する。
【背景技術】
【0002】
3次元画像処理では、オブジェクトが配置された仮想3次元空間を所与の視点から見た様子が表示出力される。このような3次元画像処理の分野では、移動体オブジェクトが衝突することによって変形する被衝突オブジェクトに移動体オブジェクトが衝突する様子を好適に表現するための技術として、例えば特許文献1に記載の技術がある。
【特許文献1】特許第3768971号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
従来、移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御は専らプログラム側で実現されていた。このため、移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御に、プログラマ以外の者、例えば被衝突オブジェクトの形状等をデザインする者が関与することは難しかった。
【0004】
本発明は上記課題に鑑みてなされたものであって、その目的は、移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御に、プログラマ以外の者、例えば被衝突オブジェクトの形状等をデザインする者が関与しやすくなる画像処理装置、画像処理装置の制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明に係る画像処理装置は、移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置において、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段と、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段と、前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段と、を含むことを特徴とする。
【0006】
また、本発明に係る画像処理装置の制御方法は、移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置の制御方法において、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段の記憶内容を読み出すステップと、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定ステップと、前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御ステップと、を含むことを特徴とする。
【0007】
また、本発明に係るプログラムは、移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置として、例えば家庭用ゲーム機、携帯用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末(PDA)やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムであって、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段、及び、前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段、として前記コンピュータを機能させるためのプログラムである。
【0008】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。また、本発明に係るプログラム配信装置は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信装置である。また、本発明に係るプログラム配信方法は、上記プログラムを記録した情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信方法である。
【0009】
本発明は、移動体オブジェクトと、該移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、移動体オブジェクトが被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置に関する。本発明では、被衝突オブジェクトの、移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて加速度ベクトル情報が記憶される。加速度ベクトル情報は、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による移動体オブジェクトの加速度ベクトルを特定するための情報である。ここで、加速度ベクトル情報は、加速度ベクトルそのものを示す情報であってもよいし、加速度ベクトルの算出の基礎となる情報であってもよい。また本発明では、移動体オブジェクトと、複数の挙動制御用オブジェクトと、が接触したか否かが判定される。そして、移動体オブジェクトが複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、移動体オブジェクトの挙動が制御される。本発明によれば、例えば、被衝突オブジェクトの形状等をデザインする者が、被衝突オブジェクトの形状等に合わせて、挙動制御用オブジェクトと、挙動制御用オブジェクトに対応づけられる加速度ベクトル情報と、を設定することが可能になり、それらのデータを被衝突オブジェクトの形状データなどとともに被衝突オブジェクトのデータとして制作することが可能になる。その結果として、例えば、被衝突オブジェクトの形状等をデザインする者が、移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御に関与しやすくなる。
【0010】
また、本発明の一態様では、前記複数の挙動制御用オブジェクトの各々に対応づけて、前記移動体オブジェクトが前記挙動制御用オブジェクトによってはねかえされるか否かを示すはねかえり制御情報を記憶するはねかえり制御情報記憶手段を含むようにしてもよい。また、前記オブジェクト挙動制御手段は、前記移動体オブジェクトが接触したと判定された前記挙動制御用オブジェクトに対応づけられたはねかえり制御情報が、前記移動体オブジェクトが該挙動制御用オブジェクトによってはねかえされることを示す場合、前記移動体オブジェクトが該挙動制御用オブジェクトによって所与のはねかえり係数ではねかえされたものとして、前記移動体オブジェクトの挙動を制御する手段を含むようにしてもよい。
【0011】
また、本発明の一態様では、前記判定手段は、前記移動体オブジェクトの現在位置に基づいて所定演算を実行することによって基準位置を設定する基準位置設定手段を含み、前記基準位置設定手段によって設定された基準位置から前記移動体オブジェクトの現在位置までの直線と、前記複数の挙動制御用オブジェクトと、が交わるか否かを判定することによって、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定するようにしてもよい。
【発明を実施するための最良の形態】
【0012】
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。ここでは、画像処理装置の一態様であるゲーム装置に本発明を適用した場合の例について説明する。なお、本発明はゲーム装置以外の画像処理装置にも適用できるものである。
【0013】
図1は、本発明の実施形態に係るゲーム装置の構成を示す図である。図1に示すゲーム装置10は家庭用ゲーム機11を主として構成される。家庭用ゲーム機11には、情報記憶媒体たるDVD−ROM25及びメモリカード28が装着される。さらに家庭用ゲーム機11にはモニタ18及びスピーカ22が接続される。例えば、モニタ18には家庭用テレビ受像機が用いられ、スピーカ22にはその内蔵スピーカが用いられる。
【0014】
家庭用ゲーム機11は、バス12、マイクロプロセッサ14、画像処理部16、音声処理部20、DVD−ROM再生部24、主記憶26、入出力処理部30及びコントローラ32を含んで構成される公知のコンピュータゲームシステムである。コントローラ32以外の構成要素は筐体内に収容される。
【0015】
バス12はアドレス及びデータを家庭用ゲーム機11の各部でやり取りするためのものである。マイクロプロセッサ14、画像処理部16、主記憶26及び入出力処理部30は、バス12によって相互データ通信可能に接続される。
【0016】
マイクロプロセッサ14は、図示しないROMに格納されるオペレーティングシステム、DVD−ROM25やメモリカード28から読み出されるゲームプログラムやゲームデータに基づいて、家庭用ゲーム機11の各部を制御する。主記憶26は、例えばRAMを含んで構成されるものであり、DVD−ROM25やメモリカード28から読み出されたゲームプログラムやゲームデータが必要に応じて書き込まれる。主記憶26はマイクロプロセッサ14の作業用としても用いられる。
【0017】
画像処理部16はVRAMを含んで構成されている。画像処理部16は、マイクロプロセッサ14から送られる画像データを受け取ってVRAM上にゲーム画面を描画するとともに、その内容を所定のビデオ信号に変換して所定タイミングでモニタ18に出力する。
【0018】
入出力処理部30は、マイクロプロセッサ14が音声処理部20、DVD−ROM再生部24、メモリカード28及びコントローラ32にアクセスするためのインタフェースである。入出力処理部30には、音声処理部20、DVD−ROM再生部24、メモリカード28及びコントローラ32が接続される。
【0019】
音声処理部20はサウンドバッファを含んで構成されており、DVD−ROM25から読み出され、該サウンドバッファに記憶されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データを再生してスピーカ22から出力する。
【0020】
DVD−ROM再生部24はマイクロプロセッサ14からの指示に従ってDVD−ROM25に記録されたゲームプログラムやゲームデータを読み取る。ここではゲームプログラムやゲームデータを家庭用ゲーム機11に供給するためにDVD−ROM25を用いることとするが、CD−ROMやROMカード等、他のあらゆる情報記憶媒体を用いるようにしてもよい。また、インターネット等のデータ通信網を介して遠隔地からゲームプログラムやゲームデータを家庭用ゲーム機11に供給するようにしてもよい。
【0021】
メモリカード28は不揮発性メモリ(例えばEEPROM等)を含んで構成される。家庭用ゲーム機11は、メモリカード28を装着するためのメモリカードスロットを複数備えている。メモリカード28は例えばセーブデータなどの各種ゲームデータを記憶するために用いられる。
【0022】
コントローラ32は、プレイヤが各種ゲーム操作の入力をするための汎用操作入力手段である。入出力処理部30は一定周期毎(例えば1/60秒毎)にコントローラ32の各部の状態をスキャンし、そのスキャン結果を表す操作信号をバス12を介してマイクロプロセッサ14に渡す。マイクロプロセッサ14は、その操作信号に基づいてプレイヤのゲーム操作を判定する。家庭用ゲーム機11は複数のコントローラ32を接続可能に構成されている。
【0023】
上記構成を有するゲーム装置10では、DVD−ROM25から読み出されるプログラムが実行されることによって、例えばサッカーゲームが実現される。
【0024】
上記サッカーゲームを実現するために、主記憶26には仮想3次元空間が構築される。図2は仮想3次元空間の一例を示す図である。図2に示すように、仮想3次元空間40には、サッカーのフィールドを表すフィールドオブジェクト42と、ゴールを表すゴールオブジェクト44と、が配置され、サッカーの試合会場が形成される。フィールドオブジェクト42には例えばゴールライン43などが表される。またフィールドオブジェクト42上には、サッカー選手を表す選手オブジェクト46と、サッカーボールを表すボールオブジェクト48(移動体オブジェクト)と、が配置される。図2では省略されているが、フィールドオブジェクト42上には22体の選手オブジェクト46が配置される。
【0025】
図3はゴールオブジェクト44の一例を示す斜視図である。図3に示すように、ゴールオブジェクト44は、2本のゴールポスト52と、クロスバー54と、を含んで構成される枠体と、枠体に張られたゴールネット56(被衝突オブジェクト)と、を含んで構成される。ゴールネット56は、ある程度のたるみを持たせつつ、例えばゴールポスト52、クロスバー54や、ゴールオブジェクト44の後方の地面(フィールドオブジェクト42)に固定される。図4はゴールネット56の一部を示す図である。図3ではゴールネット56の網目構造が詳細に描かれていないが、図4に示すように、ゴールネット56は六角形の網目構造を有している。なお以下では、六角形の網目の各頂点のことを「ノード」と記載する。
【0026】
また仮想3次元空間40には仮想カメラ50(視点及び視線方向)が設定される。仮想カメラ50は例えばボールオブジェクト48に従動する。この仮想カメラ50から仮想3次元空間40を見た様子を表すゲーム画面がモニタ18に表示される。
【0027】
以下、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を表現するための技術について説明する。すなわち、ボールオブジェクト48がゴールネット56に衝突した場合に、ボールオブジェクト48の動きがゴールネット56によって制動される様子と、ゴールネット56がボールオブジェクト48の衝突によって揺動する様子と、を表現するための技術について説明する。
【0028】
まず、ゲーム装置10で実現される機能について説明する。図5は、ゲーム装置10において実現される機能のうち、本発明に関連するものを主として示す機能ブロック図である。図5に示すように、ゲーム装置10は、ゲームデータ記憶部60と、判定部62と、オブジェクト挙動制御部64と、を機能的に含んでいる。これらの機能は、DVD−ROM25から読み出されたプログラムがゲーム装置10(マイクロプロセッサ14)によって実行されることによって実現される。
【0029】
ゲームデータ記憶部60はDVD−ROM25や主記憶26を主として実現される。ゲームデータ記憶部60は上記サッカーゲームを実現するための各種データを記憶する。ゲームデータ記憶部60は、仮想3次元空間40に配置される各オブジェクトの基本形状を示す情報を記憶する。またゲームデータ記憶部60は、仮想3次元空間40に配置される各オブジェクトの現在状態を示す情報を記憶する。例えば、ゲームデータ記憶部60は、ゴールオブジェクト44や後述の挙動制御用オブジェクトなどの静的オブジェクトの位置、姿勢や形状を示す情報を記憶する。また例えば、ゲームデータ記憶部60は、各選手オブジェクト46やボールオブジェクト48などの動的オブジェクトの位置、姿勢、移動速度ベクトル(移動方向及び速度)を示す情報を記憶する。またゲームデータ記憶部60は、仮想カメラ50の位置(視点位置)や姿勢(視線方向)を示す情報を記憶する。
【0030】
ゲームデータ記憶部60は挙動制御情報記憶部60a(加速度ベクトル情報記憶手段、はねかえり制御情報記憶手段)を含む。挙動制御情報記憶部60aは挙動制御情報を記憶する。挙動制御情報は、ボールオブジェクト48がゴールネット56に衝突した際のボールオブジェクト48及びゴールネット56の挙動制御の基礎となる情報である。
【0031】
ゲーム装置10では、ボールオブジェクト48がゴールネット56に衝突した際のボールオブジェクト48及びゴールネット56の挙動を制御するために、仮想3次元空間40に複数の挙動制御用オブジェクトが配置される。図6は挙動制御用オブジェクトの一例を示す斜視図である。図6に示すように、挙動制御用オブジェクト70は板状の矩形オブジェクトである。挙動制御用オブジェクト70は不可視(透明)なオブジェクトであり、ゲーム画面には表示されない。また挙動制御用オブジェクト70は表と裏とが区別される。図7及び図8は挙動制御用オブジェクト70の配置例を示している。なお図7及び図8では、挙動制御用オブジェクト70の配置状態を分かりやすくするために、ゴールオブジェクト44及びゴールライン43を点線で表している。
【0032】
図7は、ボールオブジェクト48がゴールオブジェクト44内に入ってゴールネット56の正面56aの内面側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を制御するために配置される挙動制御用オブジェクト70の一例を示している。図7に示す挙動制御用オブジェクト70は、ゴールネット56の正面56aの外面側の空間に配置されている。図7に示す挙動制御用オブジェクト70は、ゴールネット56から徐々に離れるようにして一定間隔で複数配列されている。図7に示す挙動制御用オブジェクト70は、ゴールネット56の正面56aに略平行に配置されている。図7に示す挙動制御用オブジェクト70は、その表側がゴールネット56の正面56aの方を向くように配置されている。図7に示す挙動制御用オブジェクト70の面積は、ゴールネット56の正面56aの面積と同等、又はゴールネット56の正面56aの面積よりも広めに設定される。
【0033】
図8は、ボールオブジェクト48がゴールオブジェクト44内に入ってゴールネット56の側面56bの内面側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を制御するために配置される挙動制御用オブジェクト70の一例を示している。図8に示す挙動制御用オブジェクト70は、ゴールネット56の側面56bの外面側の空間に配置されている。図8に示す挙動制御用オブジェクト70も、ゴールネット56から徐々に離れるようにして一定間隔で複数配列されている。また、図8に示す挙動制御用オブジェクト70は、ゴールネット56の側面56bに略平行に配置されている。図8に示す挙動制御用オブジェクト70は、その表側がゴールネット56の側面56bの方を向くように配置されている。図8に示す挙動制御用オブジェクト70の面積は、ゴールネット56の側面56bの面積と同等、又はゴールネット56の側面56bの面積よりも広めに設定される。
【0034】
挙動制御情報記憶部60aは、挙動制御用オブジェクト70の各々に対応づけて挙動制御情報を記憶する。図9は、挙動制御情報記憶部60aに記憶される挙動制御テーブルの一例を示している。図9に示すように、挙動制御テーブルは、「ID」フィールドと、「反力係数」フィールドと、「はねかえりフラグ」フィールドと、を含んでいる。「ID」フィールドには、挙動制御用オブジェクト70を一意に識別するID(識別情報)が記憶される。なお、ここでは、図7に示す挙動制御用オブジェクト70に対して、ゴールネット56に最も近いものから順に、「1」,「2」,「3」,「4」とIDが割り当てられているものとする。「反力係数」フィールドには反力係数(加速度ベクトル情報)が記憶される。反力係数は、ゴールネット56に衝突したボールオブジェクト48にゴールネット56によって加えられる力(反力)の強さを示す数値情報である。後述するように、ゴールネット56によってボールオブジェクト48に加えられる力に起因するボールオブジェクト48の加速度ベクトルが、この反力係数に基づいて特定される(図11のS205及びS206参照)。「はねかえりフラグ」フィールドには、はねかえりフラグ(はねかえり制御情報)が記憶される。はねかえりフラグは、ボールオブジェクト48が挙動制御用オブジェクト70に接触した場合に、ボールオブジェクト48がその挙動制御用オブジェクト70によってはねかえされるようにするか否かを示す情報である。ボールオブジェクト48がその挙動制御用オブジェクト70によってはねかえされるようにする場合には、「はねかえりフラグ」フィールドの値は1に設定される。一方、ボールオブジェクト48がその挙動制御用オブジェクト70によってはねかえされるようにしない場合には、「はねかえりフラグ」フィールドの値は0に設定される。本実施の形態では、図7及び図8の各図において、ゴールネット56の正面56a又は側面56bから最も離れた挙動制御用オブジェクト70の「はねかえりフラグ」フィールドの値が1に設定され、その他の挙動制御用オブジェクト70の「はねかえりフラグ」フィールドの値が0に設定される。
【0035】
判定部62はマイクロプロセッサ14を主として実現される。判定部62は、ボールオブジェクト48が挙動制御用オブジェクト70に接触したか否かを判定する。詳細については後述する(図11のS202及びS203参照)。
【0036】
オブジェクト挙動制御部64はマイクロプロセッサ14を主として実現される。オブジェクト挙動制御部64は、仮想3次元空間40に配置される各オブジェクトの挙動を制御する。すなわち、オブジェクト挙動制御部64は、仮想3次元空間40に配置される各オブジェクトの位置、姿勢や形状などを制御する。オブジェクト挙動制御部64は、ボールオブジェクト挙動制御部64aと、ゴールネット挙動制御部64bと、を含む。
【0037】
ボールオブジェクト挙動制御部64aは、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48の挙動を制御する。ボールオブジェクト挙動制御部64aは、ボールオブジェクト48が挙動制御用オブジェクト70に接触したと判定された場合、その挙動制御用オブジェクト70に対応づけられた挙動制御情報に基づいて、ボールオブジェクト48の挙動制御を実行する。詳細については後述する(図11のS203〜S208参照)。
【0038】
ゴールネット挙動制御部64bは、ボールオブジェクト48がゴールネット56と衝突した場合のゴールネット56の挙動制御(変形制御)を実行する。ゴールネット挙動制御部64bは、ボールオブジェクト挙動制御部64aによって制御されるボールオブジェクト48の位置に基づいて、ゴールネット56の挙動制御を実行する。詳細については後述する(図11のS209参照)。
【0039】
次に、ゲーム装置10で実行される処理について説明する。図10は、ゲーム装置10で所定時間(例えば1/60秒)ごとに実行される処理を示すフロー図である。
【0040】
図10に示すように、ゲーム装置10はまずゲーム環境処理を実行する(S101)。ゲーム環境処理では、仮想3次元空間40に配置される各オブジェクトの状態(位置、姿勢、移動方向ベクトルや形状など)が演算される。そして、ゲームデータ記憶部60に記憶される各オブジェクトの状態を示す情報がその演算結果に基づいて更新される。またゲーム環境処理では仮想カメラ50の位置、向きや画角が決定され、視野範囲が算出される。視野範囲内に属しないオブジェクトは以降の処理の対象から外される。
【0041】
その後、ゲーム装置10はジオメトリ処理を実行する(S102)。ジオメトリ処理ではワールド座標系から視点座標系への座標変換が行われる。ここで、ワールド座標系とは、図2に示すXw軸、Yw軸、Zw軸からなる座標系である。視点座標系は、仮想カメラ50の位置(視点)を原点とし、仮想カメラ50の正面方向(視線方向)をZ方向、水平方向をX方向、垂直方向をY方向とする座標系である。ジオメトリ処理ではクリッピング処理も行われる。
【0042】
その後、ゲーム装置10はレンダリング処理を実行する(S103)。レンダリング処理では、視野範囲内の各オブジェクトの各頂点の座標、色情報及びアルファ値や、視野範囲内の各オブジェクトの表面にマッピングされるテクスチャ画像等に基づいて、VRAM上にゲーム画面が描画される。VRAM上に描画されたゲーム画面は所与タイミングでモニタ18に表示出力される。
【0043】
ここで、ボールオブジェクト48がゴールネット56に衝突した場合に実行される処理について説明する。図11は、ボールオブジェクト48がゴールネット56に衝突した場合に実行される処理を示すフロー図である。この処理はゲーム環境処理(図10のS101)の一部として実行される。本処理を実行するためのプログラムがDVD−ROM25から読み出されて、ゲーム装置10(マイクロプロセッサ14)によって実行されることによって、図5に示す各機能ブロックが実現される。
【0044】
図11に示すように、まずゲーム装置10はボールオブジェクト48がゴールネット56のどの面(正面56aや側面56b)に衝突したか否かを判断する(S201)。次にゲーム装置10(判定部62:基準位置設定手段)は基準点を設定する(S202)。
【0045】
ここで、基準点の設定について、ボールオブジェクト48がゴールオブジェクト44内に入ってゴールネット56に衝突した場合を例に説明する。図12〜図14は、ボールオブジェクト48がゴールオブジェクト44内に入ってゴールネット56に衝突した場合に設定される基準点について説明するための図である。まずゲーム装置10は、ボールオブジェクト48の現在位置Bから基準平面72に対して下ろした垂線L1と、基準平面72と、の交点Iを取得する。図12に示すように、基準平面72は、ゴールネット56をはさんで、挙動制御用オブジェクト70がある側とは反対側に設定される。図12に示す例では、ゴールライン43上のYwZw平面が基準平面72として設定されている。次にゲーム装置10は、交点Iが基準平面72の基準点設定対象領域72a内であるか否かを判定する。ここで、基準点設定対象領域72aは基準点が設定され得る領域である。図12に示す例では、ゴールポスト52とクロスバー54とゴールライン43とに囲まれた領域の中心付近の領域が基準点設定対象領域72aとして設定されている。図13に示すように、交点Iが基準点設定対象領域72a内である場合、ゲーム装置10は交点Iを基準点Sに設定する。一方、図14に示すように、交点Iが基準点設定対象領域72a内でない場合、ゲーム装置10は交点Iに最も近い基準点設定対象領域72a上の点を基準点Sに設定する。
【0046】
基準点が設定された後、ゲーム装置10(判定部62)は、例えば図15に示すように、基準点Sからボールオブジェクト48の現在位置Bまでの直線L2と交わる挙動制御用オブジェクト70のIDを取得する(S203)。図15に示す例の場合であれば、ゴールネット56の正面56aに最も近い挙動制御用オブジェクト70と、ゴールネット56の正面56aに二番目及び三番目に近い挙動制御用オブジェクト70と、のIDが取得される。なお図15では、基準点S、ボールオブジェクト48の現在位置B、直線L2、挙動制御用オブジェクト70の関係を分かりやすくするため、ゴールオブジェクト44を点線で表している。
【0047】
その後、ゲーム装置10(ボールオブジェクト挙動制御部64a)は、S203で取得されたIDに対応づけられた全てのはねかえりフラグが0であるか否かを判定する(S204)。S203で取得されたIDに対応づけられた全てのはねかえりフラグが0である場合、ゲーム装置10(ボールオブジェクト挙動制御部64a)は、ゴールネット56によってボールオブジェクト48に加えられる反力を示す反力ベクトルを、S203で取得されたIDに対応づけられた反力係数に基づいて取得する(S205)。まずゲーム装置10は、S203で取得された各IDに対応する反力ベクトルを取得する。各IDに対応する反力ベクトルは、そのIDに対応づけられた反力係数を、そのIDに係る挙動制御用オブジェクト70の表側の面の法線方向の単位力ベクトルに乗じることによって得られる。次にゲーム装置10は、S203で取得された各IDに対応する反力ベクトルを合成することによって、ボールオブジェクト48に加えられる反力ベクトルを取得する。例えば、S203で取得されたIDが1,2,3である場合、ボールオブジェクト48に加えられる反力ベクトルFは下記の式(1)のようになる。なお、下記の式(1)において、F1は、IDが1の挙動制御用オブジェクト70の表側の面の法線方向の単位力ベクトルを示している。同様に、F2,F3は、IDが2,3の挙動制御用オブジェクト70の表側の面の法線方向の単位力ベクトルをそれぞれ示している。
【0048】
【数1】
【0049】
次に、ゲーム装置10(ボールオブジェクト挙動制御部64a)は、S205で取得された反力ベクトルに基づいて、反力に起因するボールオブジェクト48の加速度ベクトルを取得する(S206)。例えば、ボールオブジェクト48の加速度ベクトルaは、下記の式(2)によって取得される。なお、下記の式(2)においてmはボールオブジェクト48の質量を示している。ボールオブジェクト48の質量はあらかじめ設定されており、ゲームデータ記憶部60に記憶されている。
【0050】
【数2】
【0051】
次に、ゲーム装置10(ボールオブジェクト挙動制御部64a)は、S206で取得された加速度ベクトルに基づいて、ボールオブジェクト48の現在位置や移動速度ベクトルなどを更新する(S207)。例えば、まずゲーム装置10は、ボールオブジェクト48の現在の移動速度ベクトルを、S206で取得された加速度ベクトルに基づいて更新することによって、ボールオブジェクト48の新たな移動速度ベクトルを算出する。次にゲーム装置10は、ボールオブジェクト48の現在位置から、上記算出されたボールオブジェクト48の移動速度ベクトルが示す移動方向に、該移動速度ベクトルが示す移動速度で所定時間(例えば1/60秒)移動してなる位置を、ボールオブジェクト48の新たな現在位置として算出する。
【0052】
一方、S204において、S203で取得されたIDに対応づけられたはねかえりフラグのうちのいずれかが1であると判定された場合、ゲーム装置10(ボールオブジェクト挙動制御部64a)は、はねかえりフラグが1である挙動制御用オブジェクト70によってボールオブジェクト48が所与のはねかえり係数ではねかえされたものとして、ボールオブジェクト48の現在位置や移動速度ベクトルなどを更新する(S208)。例えば所与のはねかえり係数をeとすると、ゲーム装置10は、ボールオブジェクト48の移動速度ベクトルVを下記の式(3)に示すように更新する。なお、はねかえり係数は0より大きく1より小さい数値である。
【0053】
【数3】
【0054】
ボールオブジェクト48の現在位置や移動速度ベクトルなどが更新された後、ゲーム装置10(ゴールネット挙動制御部64b)は、ボールオブジェクト48の現在位置(S207又はS208による更新後の位置)に合わせてゴールネット56を変形する(S209)。ここで、ゴールネット56の変形制御(挙動制御)に関しては、特許第3768971号公報に記載の技術を利用することができる。
【0055】
図16及び図17はゴールネット56の変形制御について説明するための図である。なお図16及び図17では、ボールオブジェクト48がこれらの図に示す方向D1に移動してゴールネット56に衝突した場合について示している。まずゲーム装置10は、ボールオブジェクト48がゴールネット56を通り抜けているか否かを判定する。ボールオブジェクト48がゴールネット56を通り抜けていない場合、ゴールネット56の変形は行われない。ボールオブジェクト48がゴールネット56を通り抜けている場合、ゲーム装置10は、ゴールネット56のノード(N1,N2,N3,N4,N5,・・・)のうちから、ボールオブジェクト48に最も近いノードを選出する。例えば、ゲーム装置10は、ボールオブジェクト48が衝突したゴールネット56の面(例えば正面56a又は側面56b)に対して、ボールオブジェクト48の先端位置B1を投影する。そしてゲーム装置10は、その投影位置B2に最も近いノードを選出する。次にゲーム装置10は、選出されたノードの位置(図16に示す例ではN3)から、ボールオブジェクト48の先端位置B1までの距離rを算出する。ここで、距離rは、ボールオブジェクト48の先端位置B1の投影方向D2(又はその逆方向D3)に対応する距離である。そしてゲーム装置10は、上記選出されたノードの位置を上記方向D3に距離rだけ移動させる。またゲーム装置10は、上記選出されたノードの周辺のノードの位置を上記方向D3に、距離rに基づいて決定される距離だけ移動させる。例えばゲーム装置10は、上記選出されたノードに隣接するノードの位置を上記方向D3に距離(r*3/4)だけ移動させる。なお、「*」は乗算演算子を示している。
【0056】
以上でボールオブジェクト48がゴールネット56に衝突した場合の処理は終了する。なお、ここでは主に、ボールオブジェクト48がゴールオブジェクト44内に入ってゴールネット56の内側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動制御について説明したが、ボールオブジェクト48がゴールネット56の外側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動制御も同様にして行うことができる。
【0057】
図18及び図19は、ボールオブジェクト48がゴールネット56の外側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を制御するための挙動制御用オブジェクト70の配置例を示している。なお図18及び図19でも、挙動制御用オブジェクト70の配置状態を分かりやすくするために、ゴールオブジェクト44及びゴールライン43を点線で表している。
【0058】
図18は、ボールオブジェクト48がゴールネット56の正面56aの外面側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を制御するために配置される挙動制御用オブジェクト70の一例を示している。図18に示す挙動制御用オブジェクト70は、ゴールネット56の正面56aの内面側の空間に配置されている。図18に示す挙動制御用オブジェクト70は、その表側がゴールネット56の正面56aの方を向くように配置されている。
【0059】
図19は、ボールオブジェクト48がゴールネット56の側面56bの外面側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を制御するために配置される挙動制御用オブジェクト70の一例を示している。図19に示す挙動制御用オブジェクト70は、ゴールネット56の側面56bの内面側の空間に配置されている。図19に示す挙動制御用オブジェクト70は、その表側がゴールネット56の側面56bの方を向くように配置されている。
【0060】
なお、図18及び図19の各図において、ゴールネット56の正面56a又は側面56bから最も離れた挙動制御用オブジェクト70の「はねかえりフラグ」フィールドの値が1に設定され、その他の挙動制御用オブジェクト70の「はねかえりフラグ」フィールドの値が0に設定される。
【0061】
図20及び図21は、ボールオブジェクト48がゴールネット56の正面56aや側面56bの外側に衝突した場合における、図11のS202及びS203の処理について説明するための図である。なお図21では、基準点S、ボールオブジェクト48の現在位置B、直線L2、挙動制御用オブジェクト70などの関係を分かりやすくするため、ゴールオブジェクト44を点線で表している。
【0062】
ボールオブジェクト48がゴールネット56の正面56aや側面56bの外側に衝突した場合、図11のS202では、図12〜図15に示した基準点設定対象領域72aに加えて、例えば図20に示すような基準点設定対象領域72bが設定される。図20に示すように、基準点設定対象領域72bは、ゴールオブジェクト44の外側の空間に、ゴールオブジェクト44を囲むようにして設定される。
【0063】
この場合、まずゲーム装置10は、図13又は図14に示す基準点SをS0として取得する。すなわち、ボールオブジェクト48がゴールネット56の正面56aや側面56bの内側に衝突した場合と同様に、ボールオブジェクト48の現在位置Bから基準平面72に対して下ろした垂線L1と、基準平面72と、の交点Iを取得する(図13及び図14参照)。そして、交点Iが基準点設定対象領域72a内である場合、ゲーム装置10は交点IをS0として取得する。一方、交点Iが基準点設定対象領域72a内でない場合、ゲーム装置10は交点Iに最も近い基準点設定対象領域72a上の点をS0として取得する。点S0が取得されたら、ゲーム装置10は、図21に示すように、点S0からボールオブジェクト48の現在位置Bの方向に伸ばした直線L3と、基準点設定対象領域72bと、の交点を基準点Sとして取得する。そして、図11のS203では、基準点Sからボールオブジェクト48の現在位置Bまでの直線L2と交わる挙動制御用オブジェクト70のIDが取得される。
【0064】
なお、図11のS203では、ゲーム装置10は、基準点Sからボールオブジェクト48の現在位置Bまでの直線L2が挙動制御用オブジェクト70と挙動制御用オブジェクト70の表側から交わる場合にのみ、直線L2が挙動制御用オブジェクト70と交わると判定するようにすると好適である。こうすれば、例えば、ボールオブジェクト48がゴールオブジェクト44内に入ってゴールネット56の正面56aの内側に衝突した場合には、ボールオブジェクト48が、図18や図19に示す挙動制御用オブジェクト70とは接触していないと判定されるようになる。また例えば、ボールオブジェクト48がゴールネット56の正面56aの外側に衝突した場合には、ボールオブジェクト48が、図7に示す挙動制御用オブジェクト70とは接触(衝突)していないと判定されるようになる。
【0065】
以上説明したゲーム装置10によれば、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48及びゴールネット56のリアリティの高い挙動表現を複雑なシミュレーション演算等を行うことなく実現することが可能になる。すなわち、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48及びゴールネット56のリアリティの高い挙動表現を処理負荷の軽減を図りつつ実現することが可能になる。
【0066】
またゲーム装置10によれば、ゴールオブジェクト44のデザインを担当する者(ゴールオブジェクト44の形状などを熟知している者)が、ゴールオブジェクト48の形状などに合わせて、挙動制御用オブジェクト70と、挙動制御テーブルと、を設定することが可能になり、それらのデータをゴールオブジェクト44の形状データなどとともにゴールオブジェクト44のデータとして制作することが可能になる。すなわちゲーム装置10によれば、ゴールオブジェクト44のデザインを担当する者が、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48やゴールネット56の挙動制御に関与しやすくなる。
【0067】
ところで、現実のサッカーで用いられるゴールの形状や構造は一定ではなく、様々な形状や構造のゴールが存在する。このため、サッカーゲームにおいても、形状や構造の異なる複数種類のゴールが登場させることによって、サッカーゲームのリアリティを向上させることが可能になる。しかしながら、ゴールオブジェクト44の形状や構造が異なると、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48やゴールネット56の挙動も異なってくるため、複数種類のゴールオブジェクト48をゲームに登場させようとすると、従来の方法では、ゲームプログラマは各ゴールオブジェクト48ごとに、そのゴールオブジェクト44の形状や構造に合わせたプログラム(ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を制御するためプログラム)を作成しなければならない。このため、複数種類のゴールオブジェクト48をゲームに登場させようとすると、ゲームプログラマの手間が増大するおそれがある。この点、ゲーム装置10によれば、挙動制御用オブジェクト70はゴールオブジェクト48の形状や構造に合わせて配置することが可能であるため、複数種類のゴールオブジェクト48をゲームに登場させる場合において、各ゴールオブジェクト44ごとに、そのゴールオブジェクト44の形状や構造に合わせたプログラムを作成する手間が軽減される。すなわち、ゲーム装置10によれば、ゲームプログラマの手間の増大を抑えつつ、複数種類のゴールオブジェクト48をゲームに登場させることが可能になる。
【0068】
またゲーム装置10では、各挙動制御用オブジェクト70に対応づけてはねかえりフラグが記憶される。そして、各挙動制御用オブジェクト70に対応づけられたはねかえりフラグに基づいて、ボールオブジェクト48の挙動が制御される。ゴールネット56に衝突したボールオブジェクト48が進みすぎてしまうと、不自然な様子がゲーム画面に表されてしまうことになり、かえってリアリティが損なわれてしまう。この点、ゲーム装置10では、図7、図8、図18や図19の各図における、ゴールネット56の正面56a又は側面56bから最も離れた挙動制御用オブジェクト70のはねかえりフラグが1に設定される。そして、それらの挙動制御用オブジェクト70にボールオブジェクト48が接触した場合には、それらの挙動制御用オブジェクト70によってボールオブジェクト48が所与のはねかえり係数ではねかえされたこととして、ボールオブジェクト48の挙動が制御される。すなわち、ボールオブジェクト48がそれ以上進まないように制御される。その結果として、ゲーム装置10では、ゴールネット56に衝突したボールオブジェクト48が進みすぎてしまうことがないように図られている。
【0069】
またゲーム装置10では、所定時間(例えば1/60秒)ごとに実行される処理において、ボールオブジェクト48の現在位置に基づいて基準点がその都度算出され、基準点からボールオブジェクト48の現在位置までの直線が各挙動制御用オブジェクト70と交わるか否かを判定することによって、ボールオブジェクト48が各挙動制御用オブジェクト70と接触したか否かがその都度判定される。ボールオブジェクト48が挙動制御用オブジェクト70に接触したか否かの判定結果に基づいて、ボールオブジェクト48やゴールネット56の挙動制御を行う場合には、例えば、各挙動制御用オブジェクト70に対応づけて、ボールオブジェクト48が接触済みか否かを示すフラグ情報を記憶しておき、それらのフラグ情報に基づいて、ボールオブジェクト48やゴールネット56の挙動制御を実行することが考えられる。しかしながら、この方法では、各挙動制御用オブジェクト70に対応づけて、ボールオブジェクト48が接触済みか否かを示すフラグ情報を記憶しなければならなくなるため、データ量が増大してしまうという難点がある。また、例えばリプレイ対象の場面ごとに記録されたリプレイデータを再生するリプレイ機能をサッカーゲームが備える場合に、この手法を用いると、リプレイ画面においてボールオブジェクト48やゴールネット56の挙動が正確に再現(リプレイ)されない可能性がある。すなわち、リプレイデータによって再現される最初の状況が、すでにボールオブジェクト48が少なくとも1つの挙動制御用オブジェクト70に衝突した後の状況であると、それ以前にボールオブジェクト48が衝突した挙動制御用オブジェクト70が不明になるため、リプレイ画面においてボールオブジェクト48やゴールネット56の挙動が正確に再現されなくなってしまう。この点、ゲーム装置10によれば、データ量の増大を抑えることが可能になる。また、ゲーム装置10によれば、上記のようなリプレイ機能においても、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48やゴールネット56の挙動が正確に再現(リプレイ)されるようになる。
【0070】
なお、本発明は以上に説明した実施の形態に限定されるものではない。
【0071】
例えば、挙動制御テーブルには、「反力係数」フィールドに代えて、反発係数(加速度ベクトル情報)を記憶するための「反発係数」フィールドと、摩擦係数(加速度ベクトル情報)を記憶するための「摩擦係数」フィールドと、を設けるようにしてもよい。このようにして、ボールオブジェクト48がゴールネット56に衝突した際のボールオブジェクト48の挙動を、ゴールネット56によってボールオブジェクト48に加えられる力の、反発力成分と、摩擦力成分と、を別々に考慮して制御するようにしてもよい。
【0072】
また例えば、挙動制御テーブルには、「反力係数」フィールドに加えて、反力の作用方向を示すベクトル情報(加速度ベクトル情報)を記憶するための「反力ベクトル」フィールドを設けるようにしてもよい。このようして、挙動制御用オブジェクト70の表側の面の法線方向以外の力がボールオブジェクト48に加えられるようにしてもよい。
【0073】
また例えば、挙動制御テーブルには、「反力係数」フィールドに代えて、ゴールネット56がボールオブジェクト48を押し返す力によるボールオブジェクト48の加速度ベクトルを示す情報(加速度ベクトル情報)が記憶するための「加速度ベクトル」フィールドを設けるようにしてもよい。
【0074】
また例えば、挙動制御テーブルには、「はねかえりフラグ」フィールドに代えて、又は「はねかえりフラグ」フィールドとともに、はねかえり係数(はねかえり制御情報)を記憶するための「はねかえり係数」フィールドを設けるようにしてもよい。このようにして、挙動制御用オブジェクト70ごとにはねかえり係数を変えるようにしてもよい。
【0075】
また例えば、本発明が用いられるのは、ボールオブジェクト48がゴールネット56に衝突する様子を表現する場合に限られない。例えば、サッカースタジアムの観客席で振られている大きな旗(被衝突オブジェクト)にボールや発炎筒など(移動体)が衝突する様子を表現する場合にも、本発明は用いることができる。このとき、観客が旗を振ることによって旗の形状が変化する様子は、例えばアニメーションによって表現される。このような場合、挙動制御オブジェクト70の位置及び形状や、挙動制御オブジェクト70に対応づけられる反力係数(加速度ベクトル情報)が、観客の旗振り動作による旗の形状変化を表すアニメーション情報に連動して変化するようにしてもよい。このように、移動体オブジェクトの衝突以外の事象に起因する被衝突オブジェクトの形状変化に応じて、挙動制御オブジェクト70の位置及び形状や、挙動制御オブジェクト70に対応づけられる反力係数(加速度ベクトル情報)が変化するようにしてもよい。こうすれば、移動体オブジェクトの衝突以外の事象に起因する被衝突オブジェクトの形状が変化するような場合にも、移動体オブジェクトが被衝突オブジェクトに衝突する様子を好適に表現できるようになる。なお、挙動制御オブジェクト70の位置及び形状が変化した場合には、それらの変化に応じて、その基準点設定対象領域72a及び72bの位置や形状も変化させる必要がある。このため、例えば、被衝突オブジェクトの形状変化を表すアニメーションの各フレームと、基準点設定対象領域72a及び72bの位置や形状を特定するための情報と、を対応づけてなるデータが記憶される。このデータは、例えば、被衝突オブジェクトの形状変化を表すアニメーションの各フレームと、基準点設定対象領域72a及び72bの各頂点の座標を特定するための情報と、を対応づけてなるテーブル形式のデータである。また例えば、上記データは、被衝突オブジェクトの形状変化を表すアニメーションの各フレームの位置(例えば、先頭から何フレーム目かを示す数値)に基づいて、基準点設定対象領域72a及び72bの各頂点の座標を算出するための演算式形式のデータであってもよい。上記のようなデータに基づいて、基準点設定対象領域72a及び72bの位置や形状が、移動体オブジェクトの衝突以外の事象に起因する被衝突オブジェクトの形状変化に応じて変化する。
【0076】
また例えば、本発明はサッカーゲーム以外のゲームを実行するゲーム装置にも適用することができる。例えば、バレーボールゲームを実行するゲーム装置に本発明を適用することによって、ボールがネットに衝突する様子を好適に表現することもできる。また、本発明はゲーム装置以外の画像処理装置にも適用することができる。本発明は、移動体オブジェクトが衝突することによって変形する被衝突オブジェクトに移動体オブジェクトが衝突する様子を表現する場合に用いることができる。なお、被衝突オブジェクトとしては、例えばネットや布などのシート状のオブジェクトや、スポンジ状のオブジェクトなどが挙げられる。
【0077】
また例えば、以上の説明では、プログラムを情報記憶媒体たるDVD−ROM25から家庭用ゲーム機11に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図22は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。図22に基づいて本発明に係るプログラム配信方法を説明する。図22に示すように、このプログラム配信システム100は、データベース102(情報記憶媒体)、サーバ104、通信ネットワーク106、パソコン108、家庭用ゲーム機110、PDA(携帯情報端末)112を含んでいる。このうち、データベース102とサーバ104とによりプログラム配信装置114が構成される。通信ネットワーク106は、例えばインターネットやケーブルテレビネットワークを含んで構成されている。このシステムでは、データベース102に、DVD−ROM25の記憶内容と同様のプログラムが記憶されている。そして、パソコン108、家庭用ゲーム機110又はPDA112等を用いて需要者がプログラム配信要求をすることにより、それが通信ネットワーク106を介してサーバ104に伝えられる。そして、サーバ104はプログラム配信要求に応じてゲームデータベース102からプログラムを読み出し、それをパソコン108、家庭用ゲーム機110、PDA112等、プログラム配信要求元に送信する。ここではプログラム配信要求に応じてプログラム配信するようにしたが、サーバ104から一方的に送信するようにしてもよい。また、必ずしも一度に全てのプログラムを配信(一括配信)する必要はなく、必要な部分をその都度配信(分割配信)するようにしてもよい。このように通信ネットワーク106を介してプログラムを配信するようにすれば、需要者は容易にプログラムを入手することができるようになる。
【図面の簡単な説明】
【0078】
【図1】本実施の形態に係るゲーム装置のハードウェア構成を示す図である。
【図2】仮想3次元空間の一例を示す図である。
【図3】ゴールオブジェクトの一例を示す斜視図である。
【図4】ゴールネットの一部を示す図である。
【図5】本実施の形態に係るゲーム装置の機能ブロック図である。
【図6】挙動制御用オブジェクトの一例を示す斜視図である。
【図7】挙動制御用オブジェクトの配置例を示す図である。
【図8】挙動制御用オブジェクトの配置例を示す図である。
【図9】挙動制御テーブルの一例を示す図である。
【図10】ゲーム装置で実行される処理の示すフロー図である。
【図11】ゲーム装置で実行される処理の示すフロー図である。
【図12】基準点の設定について説明するための図である。
【図13】基準点の設定について説明するための図である。
【図14】基準点の設定について説明するための図である。
【図15】ボールオブジェクトと挙動制御用オブジェクトとの接触判定について説明するための図である。
【図16】ゴールネットの変形制御について説明するための図である。
【図17】ゴールネットの変形制御について説明するための図である。
【図18】挙動制御用オブジェクトの配置例を示す図である。
【図19】挙動制御用オブジェクトの配置例を示す図である。
【図20】基準点の設定について説明するための図である。
【図21】基準点の設定と、ボールオブジェクトと挙動制御用オブジェクトとの接触判定と、について説明するための図である。
【図22】本発明の他の実施形態に係るプログラム配信システムの全体構成を示す図である。
【符号の説明】
【0079】
10 ゲーム装置、11,110 家庭用ゲーム機、12 バス、14 マイクロプロセッサ、16 画像処理部、18 モニタ、20 音声処理部、22 スピーカ、24 DVD−ROM再生部、25 DVD−ROM、26 主記憶、28 メモリカード、30 入出力処理部、32 コントローラ、40 仮想3次元空間、42 フィールドオブジェクト、43 ゴールライン、44 ゴールオブジェクト、46 選手オブジェクト、48 ボールオブジェクト、50 仮想カメラ、52 ゴールポスト、54 クロスバー、56 ゴールネット、56a 正面、56b 側面、60 ゲームデータ記憶部、60a 挙動制御情報記憶部、62 判定部、64 オブジェクト挙動制御部、64a ボールオブジェクト挙動制御部、64b ゴールネット挙動制御部、70 挙動制御用オブジェクト、72 基準平面、72a,72b 基準点設定対象領域、100 プログラム配信システム、102 データベース、104 サーバ、106 通信ネットワーク、108 パソコン、112 携帯情報端末(PDA)、114 プログラム配信装置。
【技術分野】
【0001】
本発明は画像処理装置、画像処理装置の制御方法及びプログラムに関する。
【背景技術】
【0002】
3次元画像処理では、オブジェクトが配置された仮想3次元空間を所与の視点から見た様子が表示出力される。このような3次元画像処理の分野では、移動体オブジェクトが衝突することによって変形する被衝突オブジェクトに移動体オブジェクトが衝突する様子を好適に表現するための技術として、例えば特許文献1に記載の技術がある。
【特許文献1】特許第3768971号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
従来、移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御は専らプログラム側で実現されていた。このため、移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御に、プログラマ以外の者、例えば被衝突オブジェクトの形状等をデザインする者が関与することは難しかった。
【0004】
本発明は上記課題に鑑みてなされたものであって、その目的は、移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御に、プログラマ以外の者、例えば被衝突オブジェクトの形状等をデザインする者が関与しやすくなる画像処理装置、画像処理装置の制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明に係る画像処理装置は、移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置において、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段と、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段と、前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段と、を含むことを特徴とする。
【0006】
また、本発明に係る画像処理装置の制御方法は、移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置の制御方法において、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段の記憶内容を読み出すステップと、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定ステップと、前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御ステップと、を含むことを特徴とする。
【0007】
また、本発明に係るプログラムは、移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置として、例えば家庭用ゲーム機、携帯用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末(PDA)やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムであって、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段、及び、前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段、として前記コンピュータを機能させるためのプログラムである。
【0008】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。また、本発明に係るプログラム配信装置は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信装置である。また、本発明に係るプログラム配信方法は、上記プログラムを記録した情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信方法である。
【0009】
本発明は、移動体オブジェクトと、該移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、移動体オブジェクトが被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置に関する。本発明では、被衝突オブジェクトの、移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて加速度ベクトル情報が記憶される。加速度ベクトル情報は、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による移動体オブジェクトの加速度ベクトルを特定するための情報である。ここで、加速度ベクトル情報は、加速度ベクトルそのものを示す情報であってもよいし、加速度ベクトルの算出の基礎となる情報であってもよい。また本発明では、移動体オブジェクトと、複数の挙動制御用オブジェクトと、が接触したか否かが判定される。そして、移動体オブジェクトが複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、移動体オブジェクトの挙動が制御される。本発明によれば、例えば、被衝突オブジェクトの形状等をデザインする者が、被衝突オブジェクトの形状等に合わせて、挙動制御用オブジェクトと、挙動制御用オブジェクトに対応づけられる加速度ベクトル情報と、を設定することが可能になり、それらのデータを被衝突オブジェクトの形状データなどとともに被衝突オブジェクトのデータとして制作することが可能になる。その結果として、例えば、被衝突オブジェクトの形状等をデザインする者が、移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御に関与しやすくなる。
【0010】
また、本発明の一態様では、前記複数の挙動制御用オブジェクトの各々に対応づけて、前記移動体オブジェクトが前記挙動制御用オブジェクトによってはねかえされるか否かを示すはねかえり制御情報を記憶するはねかえり制御情報記憶手段を含むようにしてもよい。また、前記オブジェクト挙動制御手段は、前記移動体オブジェクトが接触したと判定された前記挙動制御用オブジェクトに対応づけられたはねかえり制御情報が、前記移動体オブジェクトが該挙動制御用オブジェクトによってはねかえされることを示す場合、前記移動体オブジェクトが該挙動制御用オブジェクトによって所与のはねかえり係数ではねかえされたものとして、前記移動体オブジェクトの挙動を制御する手段を含むようにしてもよい。
【0011】
また、本発明の一態様では、前記判定手段は、前記移動体オブジェクトの現在位置に基づいて所定演算を実行することによって基準位置を設定する基準位置設定手段を含み、前記基準位置設定手段によって設定された基準位置から前記移動体オブジェクトの現在位置までの直線と、前記複数の挙動制御用オブジェクトと、が交わるか否かを判定することによって、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定するようにしてもよい。
【発明を実施するための最良の形態】
【0012】
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。ここでは、画像処理装置の一態様であるゲーム装置に本発明を適用した場合の例について説明する。なお、本発明はゲーム装置以外の画像処理装置にも適用できるものである。
【0013】
図1は、本発明の実施形態に係るゲーム装置の構成を示す図である。図1に示すゲーム装置10は家庭用ゲーム機11を主として構成される。家庭用ゲーム機11には、情報記憶媒体たるDVD−ROM25及びメモリカード28が装着される。さらに家庭用ゲーム機11にはモニタ18及びスピーカ22が接続される。例えば、モニタ18には家庭用テレビ受像機が用いられ、スピーカ22にはその内蔵スピーカが用いられる。
【0014】
家庭用ゲーム機11は、バス12、マイクロプロセッサ14、画像処理部16、音声処理部20、DVD−ROM再生部24、主記憶26、入出力処理部30及びコントローラ32を含んで構成される公知のコンピュータゲームシステムである。コントローラ32以外の構成要素は筐体内に収容される。
【0015】
バス12はアドレス及びデータを家庭用ゲーム機11の各部でやり取りするためのものである。マイクロプロセッサ14、画像処理部16、主記憶26及び入出力処理部30は、バス12によって相互データ通信可能に接続される。
【0016】
マイクロプロセッサ14は、図示しないROMに格納されるオペレーティングシステム、DVD−ROM25やメモリカード28から読み出されるゲームプログラムやゲームデータに基づいて、家庭用ゲーム機11の各部を制御する。主記憶26は、例えばRAMを含んで構成されるものであり、DVD−ROM25やメモリカード28から読み出されたゲームプログラムやゲームデータが必要に応じて書き込まれる。主記憶26はマイクロプロセッサ14の作業用としても用いられる。
【0017】
画像処理部16はVRAMを含んで構成されている。画像処理部16は、マイクロプロセッサ14から送られる画像データを受け取ってVRAM上にゲーム画面を描画するとともに、その内容を所定のビデオ信号に変換して所定タイミングでモニタ18に出力する。
【0018】
入出力処理部30は、マイクロプロセッサ14が音声処理部20、DVD−ROM再生部24、メモリカード28及びコントローラ32にアクセスするためのインタフェースである。入出力処理部30には、音声処理部20、DVD−ROM再生部24、メモリカード28及びコントローラ32が接続される。
【0019】
音声処理部20はサウンドバッファを含んで構成されており、DVD−ROM25から読み出され、該サウンドバッファに記憶されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データを再生してスピーカ22から出力する。
【0020】
DVD−ROM再生部24はマイクロプロセッサ14からの指示に従ってDVD−ROM25に記録されたゲームプログラムやゲームデータを読み取る。ここではゲームプログラムやゲームデータを家庭用ゲーム機11に供給するためにDVD−ROM25を用いることとするが、CD−ROMやROMカード等、他のあらゆる情報記憶媒体を用いるようにしてもよい。また、インターネット等のデータ通信網を介して遠隔地からゲームプログラムやゲームデータを家庭用ゲーム機11に供給するようにしてもよい。
【0021】
メモリカード28は不揮発性メモリ(例えばEEPROM等)を含んで構成される。家庭用ゲーム機11は、メモリカード28を装着するためのメモリカードスロットを複数備えている。メモリカード28は例えばセーブデータなどの各種ゲームデータを記憶するために用いられる。
【0022】
コントローラ32は、プレイヤが各種ゲーム操作の入力をするための汎用操作入力手段である。入出力処理部30は一定周期毎(例えば1/60秒毎)にコントローラ32の各部の状態をスキャンし、そのスキャン結果を表す操作信号をバス12を介してマイクロプロセッサ14に渡す。マイクロプロセッサ14は、その操作信号に基づいてプレイヤのゲーム操作を判定する。家庭用ゲーム機11は複数のコントローラ32を接続可能に構成されている。
【0023】
上記構成を有するゲーム装置10では、DVD−ROM25から読み出されるプログラムが実行されることによって、例えばサッカーゲームが実現される。
【0024】
上記サッカーゲームを実現するために、主記憶26には仮想3次元空間が構築される。図2は仮想3次元空間の一例を示す図である。図2に示すように、仮想3次元空間40には、サッカーのフィールドを表すフィールドオブジェクト42と、ゴールを表すゴールオブジェクト44と、が配置され、サッカーの試合会場が形成される。フィールドオブジェクト42には例えばゴールライン43などが表される。またフィールドオブジェクト42上には、サッカー選手を表す選手オブジェクト46と、サッカーボールを表すボールオブジェクト48(移動体オブジェクト)と、が配置される。図2では省略されているが、フィールドオブジェクト42上には22体の選手オブジェクト46が配置される。
【0025】
図3はゴールオブジェクト44の一例を示す斜視図である。図3に示すように、ゴールオブジェクト44は、2本のゴールポスト52と、クロスバー54と、を含んで構成される枠体と、枠体に張られたゴールネット56(被衝突オブジェクト)と、を含んで構成される。ゴールネット56は、ある程度のたるみを持たせつつ、例えばゴールポスト52、クロスバー54や、ゴールオブジェクト44の後方の地面(フィールドオブジェクト42)に固定される。図4はゴールネット56の一部を示す図である。図3ではゴールネット56の網目構造が詳細に描かれていないが、図4に示すように、ゴールネット56は六角形の網目構造を有している。なお以下では、六角形の網目の各頂点のことを「ノード」と記載する。
【0026】
また仮想3次元空間40には仮想カメラ50(視点及び視線方向)が設定される。仮想カメラ50は例えばボールオブジェクト48に従動する。この仮想カメラ50から仮想3次元空間40を見た様子を表すゲーム画面がモニタ18に表示される。
【0027】
以下、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を表現するための技術について説明する。すなわち、ボールオブジェクト48がゴールネット56に衝突した場合に、ボールオブジェクト48の動きがゴールネット56によって制動される様子と、ゴールネット56がボールオブジェクト48の衝突によって揺動する様子と、を表現するための技術について説明する。
【0028】
まず、ゲーム装置10で実現される機能について説明する。図5は、ゲーム装置10において実現される機能のうち、本発明に関連するものを主として示す機能ブロック図である。図5に示すように、ゲーム装置10は、ゲームデータ記憶部60と、判定部62と、オブジェクト挙動制御部64と、を機能的に含んでいる。これらの機能は、DVD−ROM25から読み出されたプログラムがゲーム装置10(マイクロプロセッサ14)によって実行されることによって実現される。
【0029】
ゲームデータ記憶部60はDVD−ROM25や主記憶26を主として実現される。ゲームデータ記憶部60は上記サッカーゲームを実現するための各種データを記憶する。ゲームデータ記憶部60は、仮想3次元空間40に配置される各オブジェクトの基本形状を示す情報を記憶する。またゲームデータ記憶部60は、仮想3次元空間40に配置される各オブジェクトの現在状態を示す情報を記憶する。例えば、ゲームデータ記憶部60は、ゴールオブジェクト44や後述の挙動制御用オブジェクトなどの静的オブジェクトの位置、姿勢や形状を示す情報を記憶する。また例えば、ゲームデータ記憶部60は、各選手オブジェクト46やボールオブジェクト48などの動的オブジェクトの位置、姿勢、移動速度ベクトル(移動方向及び速度)を示す情報を記憶する。またゲームデータ記憶部60は、仮想カメラ50の位置(視点位置)や姿勢(視線方向)を示す情報を記憶する。
【0030】
ゲームデータ記憶部60は挙動制御情報記憶部60a(加速度ベクトル情報記憶手段、はねかえり制御情報記憶手段)を含む。挙動制御情報記憶部60aは挙動制御情報を記憶する。挙動制御情報は、ボールオブジェクト48がゴールネット56に衝突した際のボールオブジェクト48及びゴールネット56の挙動制御の基礎となる情報である。
【0031】
ゲーム装置10では、ボールオブジェクト48がゴールネット56に衝突した際のボールオブジェクト48及びゴールネット56の挙動を制御するために、仮想3次元空間40に複数の挙動制御用オブジェクトが配置される。図6は挙動制御用オブジェクトの一例を示す斜視図である。図6に示すように、挙動制御用オブジェクト70は板状の矩形オブジェクトである。挙動制御用オブジェクト70は不可視(透明)なオブジェクトであり、ゲーム画面には表示されない。また挙動制御用オブジェクト70は表と裏とが区別される。図7及び図8は挙動制御用オブジェクト70の配置例を示している。なお図7及び図8では、挙動制御用オブジェクト70の配置状態を分かりやすくするために、ゴールオブジェクト44及びゴールライン43を点線で表している。
【0032】
図7は、ボールオブジェクト48がゴールオブジェクト44内に入ってゴールネット56の正面56aの内面側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を制御するために配置される挙動制御用オブジェクト70の一例を示している。図7に示す挙動制御用オブジェクト70は、ゴールネット56の正面56aの外面側の空間に配置されている。図7に示す挙動制御用オブジェクト70は、ゴールネット56から徐々に離れるようにして一定間隔で複数配列されている。図7に示す挙動制御用オブジェクト70は、ゴールネット56の正面56aに略平行に配置されている。図7に示す挙動制御用オブジェクト70は、その表側がゴールネット56の正面56aの方を向くように配置されている。図7に示す挙動制御用オブジェクト70の面積は、ゴールネット56の正面56aの面積と同等、又はゴールネット56の正面56aの面積よりも広めに設定される。
【0033】
図8は、ボールオブジェクト48がゴールオブジェクト44内に入ってゴールネット56の側面56bの内面側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を制御するために配置される挙動制御用オブジェクト70の一例を示している。図8に示す挙動制御用オブジェクト70は、ゴールネット56の側面56bの外面側の空間に配置されている。図8に示す挙動制御用オブジェクト70も、ゴールネット56から徐々に離れるようにして一定間隔で複数配列されている。また、図8に示す挙動制御用オブジェクト70は、ゴールネット56の側面56bに略平行に配置されている。図8に示す挙動制御用オブジェクト70は、その表側がゴールネット56の側面56bの方を向くように配置されている。図8に示す挙動制御用オブジェクト70の面積は、ゴールネット56の側面56bの面積と同等、又はゴールネット56の側面56bの面積よりも広めに設定される。
【0034】
挙動制御情報記憶部60aは、挙動制御用オブジェクト70の各々に対応づけて挙動制御情報を記憶する。図9は、挙動制御情報記憶部60aに記憶される挙動制御テーブルの一例を示している。図9に示すように、挙動制御テーブルは、「ID」フィールドと、「反力係数」フィールドと、「はねかえりフラグ」フィールドと、を含んでいる。「ID」フィールドには、挙動制御用オブジェクト70を一意に識別するID(識別情報)が記憶される。なお、ここでは、図7に示す挙動制御用オブジェクト70に対して、ゴールネット56に最も近いものから順に、「1」,「2」,「3」,「4」とIDが割り当てられているものとする。「反力係数」フィールドには反力係数(加速度ベクトル情報)が記憶される。反力係数は、ゴールネット56に衝突したボールオブジェクト48にゴールネット56によって加えられる力(反力)の強さを示す数値情報である。後述するように、ゴールネット56によってボールオブジェクト48に加えられる力に起因するボールオブジェクト48の加速度ベクトルが、この反力係数に基づいて特定される(図11のS205及びS206参照)。「はねかえりフラグ」フィールドには、はねかえりフラグ(はねかえり制御情報)が記憶される。はねかえりフラグは、ボールオブジェクト48が挙動制御用オブジェクト70に接触した場合に、ボールオブジェクト48がその挙動制御用オブジェクト70によってはねかえされるようにするか否かを示す情報である。ボールオブジェクト48がその挙動制御用オブジェクト70によってはねかえされるようにする場合には、「はねかえりフラグ」フィールドの値は1に設定される。一方、ボールオブジェクト48がその挙動制御用オブジェクト70によってはねかえされるようにしない場合には、「はねかえりフラグ」フィールドの値は0に設定される。本実施の形態では、図7及び図8の各図において、ゴールネット56の正面56a又は側面56bから最も離れた挙動制御用オブジェクト70の「はねかえりフラグ」フィールドの値が1に設定され、その他の挙動制御用オブジェクト70の「はねかえりフラグ」フィールドの値が0に設定される。
【0035】
判定部62はマイクロプロセッサ14を主として実現される。判定部62は、ボールオブジェクト48が挙動制御用オブジェクト70に接触したか否かを判定する。詳細については後述する(図11のS202及びS203参照)。
【0036】
オブジェクト挙動制御部64はマイクロプロセッサ14を主として実現される。オブジェクト挙動制御部64は、仮想3次元空間40に配置される各オブジェクトの挙動を制御する。すなわち、オブジェクト挙動制御部64は、仮想3次元空間40に配置される各オブジェクトの位置、姿勢や形状などを制御する。オブジェクト挙動制御部64は、ボールオブジェクト挙動制御部64aと、ゴールネット挙動制御部64bと、を含む。
【0037】
ボールオブジェクト挙動制御部64aは、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48の挙動を制御する。ボールオブジェクト挙動制御部64aは、ボールオブジェクト48が挙動制御用オブジェクト70に接触したと判定された場合、その挙動制御用オブジェクト70に対応づけられた挙動制御情報に基づいて、ボールオブジェクト48の挙動制御を実行する。詳細については後述する(図11のS203〜S208参照)。
【0038】
ゴールネット挙動制御部64bは、ボールオブジェクト48がゴールネット56と衝突した場合のゴールネット56の挙動制御(変形制御)を実行する。ゴールネット挙動制御部64bは、ボールオブジェクト挙動制御部64aによって制御されるボールオブジェクト48の位置に基づいて、ゴールネット56の挙動制御を実行する。詳細については後述する(図11のS209参照)。
【0039】
次に、ゲーム装置10で実行される処理について説明する。図10は、ゲーム装置10で所定時間(例えば1/60秒)ごとに実行される処理を示すフロー図である。
【0040】
図10に示すように、ゲーム装置10はまずゲーム環境処理を実行する(S101)。ゲーム環境処理では、仮想3次元空間40に配置される各オブジェクトの状態(位置、姿勢、移動方向ベクトルや形状など)が演算される。そして、ゲームデータ記憶部60に記憶される各オブジェクトの状態を示す情報がその演算結果に基づいて更新される。またゲーム環境処理では仮想カメラ50の位置、向きや画角が決定され、視野範囲が算出される。視野範囲内に属しないオブジェクトは以降の処理の対象から外される。
【0041】
その後、ゲーム装置10はジオメトリ処理を実行する(S102)。ジオメトリ処理ではワールド座標系から視点座標系への座標変換が行われる。ここで、ワールド座標系とは、図2に示すXw軸、Yw軸、Zw軸からなる座標系である。視点座標系は、仮想カメラ50の位置(視点)を原点とし、仮想カメラ50の正面方向(視線方向)をZ方向、水平方向をX方向、垂直方向をY方向とする座標系である。ジオメトリ処理ではクリッピング処理も行われる。
【0042】
その後、ゲーム装置10はレンダリング処理を実行する(S103)。レンダリング処理では、視野範囲内の各オブジェクトの各頂点の座標、色情報及びアルファ値や、視野範囲内の各オブジェクトの表面にマッピングされるテクスチャ画像等に基づいて、VRAM上にゲーム画面が描画される。VRAM上に描画されたゲーム画面は所与タイミングでモニタ18に表示出力される。
【0043】
ここで、ボールオブジェクト48がゴールネット56に衝突した場合に実行される処理について説明する。図11は、ボールオブジェクト48がゴールネット56に衝突した場合に実行される処理を示すフロー図である。この処理はゲーム環境処理(図10のS101)の一部として実行される。本処理を実行するためのプログラムがDVD−ROM25から読み出されて、ゲーム装置10(マイクロプロセッサ14)によって実行されることによって、図5に示す各機能ブロックが実現される。
【0044】
図11に示すように、まずゲーム装置10はボールオブジェクト48がゴールネット56のどの面(正面56aや側面56b)に衝突したか否かを判断する(S201)。次にゲーム装置10(判定部62:基準位置設定手段)は基準点を設定する(S202)。
【0045】
ここで、基準点の設定について、ボールオブジェクト48がゴールオブジェクト44内に入ってゴールネット56に衝突した場合を例に説明する。図12〜図14は、ボールオブジェクト48がゴールオブジェクト44内に入ってゴールネット56に衝突した場合に設定される基準点について説明するための図である。まずゲーム装置10は、ボールオブジェクト48の現在位置Bから基準平面72に対して下ろした垂線L1と、基準平面72と、の交点Iを取得する。図12に示すように、基準平面72は、ゴールネット56をはさんで、挙動制御用オブジェクト70がある側とは反対側に設定される。図12に示す例では、ゴールライン43上のYwZw平面が基準平面72として設定されている。次にゲーム装置10は、交点Iが基準平面72の基準点設定対象領域72a内であるか否かを判定する。ここで、基準点設定対象領域72aは基準点が設定され得る領域である。図12に示す例では、ゴールポスト52とクロスバー54とゴールライン43とに囲まれた領域の中心付近の領域が基準点設定対象領域72aとして設定されている。図13に示すように、交点Iが基準点設定対象領域72a内である場合、ゲーム装置10は交点Iを基準点Sに設定する。一方、図14に示すように、交点Iが基準点設定対象領域72a内でない場合、ゲーム装置10は交点Iに最も近い基準点設定対象領域72a上の点を基準点Sに設定する。
【0046】
基準点が設定された後、ゲーム装置10(判定部62)は、例えば図15に示すように、基準点Sからボールオブジェクト48の現在位置Bまでの直線L2と交わる挙動制御用オブジェクト70のIDを取得する(S203)。図15に示す例の場合であれば、ゴールネット56の正面56aに最も近い挙動制御用オブジェクト70と、ゴールネット56の正面56aに二番目及び三番目に近い挙動制御用オブジェクト70と、のIDが取得される。なお図15では、基準点S、ボールオブジェクト48の現在位置B、直線L2、挙動制御用オブジェクト70の関係を分かりやすくするため、ゴールオブジェクト44を点線で表している。
【0047】
その後、ゲーム装置10(ボールオブジェクト挙動制御部64a)は、S203で取得されたIDに対応づけられた全てのはねかえりフラグが0であるか否かを判定する(S204)。S203で取得されたIDに対応づけられた全てのはねかえりフラグが0である場合、ゲーム装置10(ボールオブジェクト挙動制御部64a)は、ゴールネット56によってボールオブジェクト48に加えられる反力を示す反力ベクトルを、S203で取得されたIDに対応づけられた反力係数に基づいて取得する(S205)。まずゲーム装置10は、S203で取得された各IDに対応する反力ベクトルを取得する。各IDに対応する反力ベクトルは、そのIDに対応づけられた反力係数を、そのIDに係る挙動制御用オブジェクト70の表側の面の法線方向の単位力ベクトルに乗じることによって得られる。次にゲーム装置10は、S203で取得された各IDに対応する反力ベクトルを合成することによって、ボールオブジェクト48に加えられる反力ベクトルを取得する。例えば、S203で取得されたIDが1,2,3である場合、ボールオブジェクト48に加えられる反力ベクトルFは下記の式(1)のようになる。なお、下記の式(1)において、F1は、IDが1の挙動制御用オブジェクト70の表側の面の法線方向の単位力ベクトルを示している。同様に、F2,F3は、IDが2,3の挙動制御用オブジェクト70の表側の面の法線方向の単位力ベクトルをそれぞれ示している。
【0048】
【数1】
【0049】
次に、ゲーム装置10(ボールオブジェクト挙動制御部64a)は、S205で取得された反力ベクトルに基づいて、反力に起因するボールオブジェクト48の加速度ベクトルを取得する(S206)。例えば、ボールオブジェクト48の加速度ベクトルaは、下記の式(2)によって取得される。なお、下記の式(2)においてmはボールオブジェクト48の質量を示している。ボールオブジェクト48の質量はあらかじめ設定されており、ゲームデータ記憶部60に記憶されている。
【0050】
【数2】
【0051】
次に、ゲーム装置10(ボールオブジェクト挙動制御部64a)は、S206で取得された加速度ベクトルに基づいて、ボールオブジェクト48の現在位置や移動速度ベクトルなどを更新する(S207)。例えば、まずゲーム装置10は、ボールオブジェクト48の現在の移動速度ベクトルを、S206で取得された加速度ベクトルに基づいて更新することによって、ボールオブジェクト48の新たな移動速度ベクトルを算出する。次にゲーム装置10は、ボールオブジェクト48の現在位置から、上記算出されたボールオブジェクト48の移動速度ベクトルが示す移動方向に、該移動速度ベクトルが示す移動速度で所定時間(例えば1/60秒)移動してなる位置を、ボールオブジェクト48の新たな現在位置として算出する。
【0052】
一方、S204において、S203で取得されたIDに対応づけられたはねかえりフラグのうちのいずれかが1であると判定された場合、ゲーム装置10(ボールオブジェクト挙動制御部64a)は、はねかえりフラグが1である挙動制御用オブジェクト70によってボールオブジェクト48が所与のはねかえり係数ではねかえされたものとして、ボールオブジェクト48の現在位置や移動速度ベクトルなどを更新する(S208)。例えば所与のはねかえり係数をeとすると、ゲーム装置10は、ボールオブジェクト48の移動速度ベクトルVを下記の式(3)に示すように更新する。なお、はねかえり係数は0より大きく1より小さい数値である。
【0053】
【数3】
【0054】
ボールオブジェクト48の現在位置や移動速度ベクトルなどが更新された後、ゲーム装置10(ゴールネット挙動制御部64b)は、ボールオブジェクト48の現在位置(S207又はS208による更新後の位置)に合わせてゴールネット56を変形する(S209)。ここで、ゴールネット56の変形制御(挙動制御)に関しては、特許第3768971号公報に記載の技術を利用することができる。
【0055】
図16及び図17はゴールネット56の変形制御について説明するための図である。なお図16及び図17では、ボールオブジェクト48がこれらの図に示す方向D1に移動してゴールネット56に衝突した場合について示している。まずゲーム装置10は、ボールオブジェクト48がゴールネット56を通り抜けているか否かを判定する。ボールオブジェクト48がゴールネット56を通り抜けていない場合、ゴールネット56の変形は行われない。ボールオブジェクト48がゴールネット56を通り抜けている場合、ゲーム装置10は、ゴールネット56のノード(N1,N2,N3,N4,N5,・・・)のうちから、ボールオブジェクト48に最も近いノードを選出する。例えば、ゲーム装置10は、ボールオブジェクト48が衝突したゴールネット56の面(例えば正面56a又は側面56b)に対して、ボールオブジェクト48の先端位置B1を投影する。そしてゲーム装置10は、その投影位置B2に最も近いノードを選出する。次にゲーム装置10は、選出されたノードの位置(図16に示す例ではN3)から、ボールオブジェクト48の先端位置B1までの距離rを算出する。ここで、距離rは、ボールオブジェクト48の先端位置B1の投影方向D2(又はその逆方向D3)に対応する距離である。そしてゲーム装置10は、上記選出されたノードの位置を上記方向D3に距離rだけ移動させる。またゲーム装置10は、上記選出されたノードの周辺のノードの位置を上記方向D3に、距離rに基づいて決定される距離だけ移動させる。例えばゲーム装置10は、上記選出されたノードに隣接するノードの位置を上記方向D3に距離(r*3/4)だけ移動させる。なお、「*」は乗算演算子を示している。
【0056】
以上でボールオブジェクト48がゴールネット56に衝突した場合の処理は終了する。なお、ここでは主に、ボールオブジェクト48がゴールオブジェクト44内に入ってゴールネット56の内側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動制御について説明したが、ボールオブジェクト48がゴールネット56の外側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動制御も同様にして行うことができる。
【0057】
図18及び図19は、ボールオブジェクト48がゴールネット56の外側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を制御するための挙動制御用オブジェクト70の配置例を示している。なお図18及び図19でも、挙動制御用オブジェクト70の配置状態を分かりやすくするために、ゴールオブジェクト44及びゴールライン43を点線で表している。
【0058】
図18は、ボールオブジェクト48がゴールネット56の正面56aの外面側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を制御するために配置される挙動制御用オブジェクト70の一例を示している。図18に示す挙動制御用オブジェクト70は、ゴールネット56の正面56aの内面側の空間に配置されている。図18に示す挙動制御用オブジェクト70は、その表側がゴールネット56の正面56aの方を向くように配置されている。
【0059】
図19は、ボールオブジェクト48がゴールネット56の側面56bの外面側に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を制御するために配置される挙動制御用オブジェクト70の一例を示している。図19に示す挙動制御用オブジェクト70は、ゴールネット56の側面56bの内面側の空間に配置されている。図19に示す挙動制御用オブジェクト70は、その表側がゴールネット56の側面56bの方を向くように配置されている。
【0060】
なお、図18及び図19の各図において、ゴールネット56の正面56a又は側面56bから最も離れた挙動制御用オブジェクト70の「はねかえりフラグ」フィールドの値が1に設定され、その他の挙動制御用オブジェクト70の「はねかえりフラグ」フィールドの値が0に設定される。
【0061】
図20及び図21は、ボールオブジェクト48がゴールネット56の正面56aや側面56bの外側に衝突した場合における、図11のS202及びS203の処理について説明するための図である。なお図21では、基準点S、ボールオブジェクト48の現在位置B、直線L2、挙動制御用オブジェクト70などの関係を分かりやすくするため、ゴールオブジェクト44を点線で表している。
【0062】
ボールオブジェクト48がゴールネット56の正面56aや側面56bの外側に衝突した場合、図11のS202では、図12〜図15に示した基準点設定対象領域72aに加えて、例えば図20に示すような基準点設定対象領域72bが設定される。図20に示すように、基準点設定対象領域72bは、ゴールオブジェクト44の外側の空間に、ゴールオブジェクト44を囲むようにして設定される。
【0063】
この場合、まずゲーム装置10は、図13又は図14に示す基準点SをS0として取得する。すなわち、ボールオブジェクト48がゴールネット56の正面56aや側面56bの内側に衝突した場合と同様に、ボールオブジェクト48の現在位置Bから基準平面72に対して下ろした垂線L1と、基準平面72と、の交点Iを取得する(図13及び図14参照)。そして、交点Iが基準点設定対象領域72a内である場合、ゲーム装置10は交点IをS0として取得する。一方、交点Iが基準点設定対象領域72a内でない場合、ゲーム装置10は交点Iに最も近い基準点設定対象領域72a上の点をS0として取得する。点S0が取得されたら、ゲーム装置10は、図21に示すように、点S0からボールオブジェクト48の現在位置Bの方向に伸ばした直線L3と、基準点設定対象領域72bと、の交点を基準点Sとして取得する。そして、図11のS203では、基準点Sからボールオブジェクト48の現在位置Bまでの直線L2と交わる挙動制御用オブジェクト70のIDが取得される。
【0064】
なお、図11のS203では、ゲーム装置10は、基準点Sからボールオブジェクト48の現在位置Bまでの直線L2が挙動制御用オブジェクト70と挙動制御用オブジェクト70の表側から交わる場合にのみ、直線L2が挙動制御用オブジェクト70と交わると判定するようにすると好適である。こうすれば、例えば、ボールオブジェクト48がゴールオブジェクト44内に入ってゴールネット56の正面56aの内側に衝突した場合には、ボールオブジェクト48が、図18や図19に示す挙動制御用オブジェクト70とは接触していないと判定されるようになる。また例えば、ボールオブジェクト48がゴールネット56の正面56aの外側に衝突した場合には、ボールオブジェクト48が、図7に示す挙動制御用オブジェクト70とは接触(衝突)していないと判定されるようになる。
【0065】
以上説明したゲーム装置10によれば、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48及びゴールネット56のリアリティの高い挙動表現を複雑なシミュレーション演算等を行うことなく実現することが可能になる。すなわち、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48及びゴールネット56のリアリティの高い挙動表現を処理負荷の軽減を図りつつ実現することが可能になる。
【0066】
またゲーム装置10によれば、ゴールオブジェクト44のデザインを担当する者(ゴールオブジェクト44の形状などを熟知している者)が、ゴールオブジェクト48の形状などに合わせて、挙動制御用オブジェクト70と、挙動制御テーブルと、を設定することが可能になり、それらのデータをゴールオブジェクト44の形状データなどとともにゴールオブジェクト44のデータとして制作することが可能になる。すなわちゲーム装置10によれば、ゴールオブジェクト44のデザインを担当する者が、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48やゴールネット56の挙動制御に関与しやすくなる。
【0067】
ところで、現実のサッカーで用いられるゴールの形状や構造は一定ではなく、様々な形状や構造のゴールが存在する。このため、サッカーゲームにおいても、形状や構造の異なる複数種類のゴールが登場させることによって、サッカーゲームのリアリティを向上させることが可能になる。しかしながら、ゴールオブジェクト44の形状や構造が異なると、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48やゴールネット56の挙動も異なってくるため、複数種類のゴールオブジェクト48をゲームに登場させようとすると、従来の方法では、ゲームプログラマは各ゴールオブジェクト48ごとに、そのゴールオブジェクト44の形状や構造に合わせたプログラム(ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48及びゴールネット56の挙動を制御するためプログラム)を作成しなければならない。このため、複数種類のゴールオブジェクト48をゲームに登場させようとすると、ゲームプログラマの手間が増大するおそれがある。この点、ゲーム装置10によれば、挙動制御用オブジェクト70はゴールオブジェクト48の形状や構造に合わせて配置することが可能であるため、複数種類のゴールオブジェクト48をゲームに登場させる場合において、各ゴールオブジェクト44ごとに、そのゴールオブジェクト44の形状や構造に合わせたプログラムを作成する手間が軽減される。すなわち、ゲーム装置10によれば、ゲームプログラマの手間の増大を抑えつつ、複数種類のゴールオブジェクト48をゲームに登場させることが可能になる。
【0068】
またゲーム装置10では、各挙動制御用オブジェクト70に対応づけてはねかえりフラグが記憶される。そして、各挙動制御用オブジェクト70に対応づけられたはねかえりフラグに基づいて、ボールオブジェクト48の挙動が制御される。ゴールネット56に衝突したボールオブジェクト48が進みすぎてしまうと、不自然な様子がゲーム画面に表されてしまうことになり、かえってリアリティが損なわれてしまう。この点、ゲーム装置10では、図7、図8、図18や図19の各図における、ゴールネット56の正面56a又は側面56bから最も離れた挙動制御用オブジェクト70のはねかえりフラグが1に設定される。そして、それらの挙動制御用オブジェクト70にボールオブジェクト48が接触した場合には、それらの挙動制御用オブジェクト70によってボールオブジェクト48が所与のはねかえり係数ではねかえされたこととして、ボールオブジェクト48の挙動が制御される。すなわち、ボールオブジェクト48がそれ以上進まないように制御される。その結果として、ゲーム装置10では、ゴールネット56に衝突したボールオブジェクト48が進みすぎてしまうことがないように図られている。
【0069】
またゲーム装置10では、所定時間(例えば1/60秒)ごとに実行される処理において、ボールオブジェクト48の現在位置に基づいて基準点がその都度算出され、基準点からボールオブジェクト48の現在位置までの直線が各挙動制御用オブジェクト70と交わるか否かを判定することによって、ボールオブジェクト48が各挙動制御用オブジェクト70と接触したか否かがその都度判定される。ボールオブジェクト48が挙動制御用オブジェクト70に接触したか否かの判定結果に基づいて、ボールオブジェクト48やゴールネット56の挙動制御を行う場合には、例えば、各挙動制御用オブジェクト70に対応づけて、ボールオブジェクト48が接触済みか否かを示すフラグ情報を記憶しておき、それらのフラグ情報に基づいて、ボールオブジェクト48やゴールネット56の挙動制御を実行することが考えられる。しかしながら、この方法では、各挙動制御用オブジェクト70に対応づけて、ボールオブジェクト48が接触済みか否かを示すフラグ情報を記憶しなければならなくなるため、データ量が増大してしまうという難点がある。また、例えばリプレイ対象の場面ごとに記録されたリプレイデータを再生するリプレイ機能をサッカーゲームが備える場合に、この手法を用いると、リプレイ画面においてボールオブジェクト48やゴールネット56の挙動が正確に再現(リプレイ)されない可能性がある。すなわち、リプレイデータによって再現される最初の状況が、すでにボールオブジェクト48が少なくとも1つの挙動制御用オブジェクト70に衝突した後の状況であると、それ以前にボールオブジェクト48が衝突した挙動制御用オブジェクト70が不明になるため、リプレイ画面においてボールオブジェクト48やゴールネット56の挙動が正確に再現されなくなってしまう。この点、ゲーム装置10によれば、データ量の増大を抑えることが可能になる。また、ゲーム装置10によれば、上記のようなリプレイ機能においても、ボールオブジェクト48がゴールネット56に衝突した場合のボールオブジェクト48やゴールネット56の挙動が正確に再現(リプレイ)されるようになる。
【0070】
なお、本発明は以上に説明した実施の形態に限定されるものではない。
【0071】
例えば、挙動制御テーブルには、「反力係数」フィールドに代えて、反発係数(加速度ベクトル情報)を記憶するための「反発係数」フィールドと、摩擦係数(加速度ベクトル情報)を記憶するための「摩擦係数」フィールドと、を設けるようにしてもよい。このようにして、ボールオブジェクト48がゴールネット56に衝突した際のボールオブジェクト48の挙動を、ゴールネット56によってボールオブジェクト48に加えられる力の、反発力成分と、摩擦力成分と、を別々に考慮して制御するようにしてもよい。
【0072】
また例えば、挙動制御テーブルには、「反力係数」フィールドに加えて、反力の作用方向を示すベクトル情報(加速度ベクトル情報)を記憶するための「反力ベクトル」フィールドを設けるようにしてもよい。このようして、挙動制御用オブジェクト70の表側の面の法線方向以外の力がボールオブジェクト48に加えられるようにしてもよい。
【0073】
また例えば、挙動制御テーブルには、「反力係数」フィールドに代えて、ゴールネット56がボールオブジェクト48を押し返す力によるボールオブジェクト48の加速度ベクトルを示す情報(加速度ベクトル情報)が記憶するための「加速度ベクトル」フィールドを設けるようにしてもよい。
【0074】
また例えば、挙動制御テーブルには、「はねかえりフラグ」フィールドに代えて、又は「はねかえりフラグ」フィールドとともに、はねかえり係数(はねかえり制御情報)を記憶するための「はねかえり係数」フィールドを設けるようにしてもよい。このようにして、挙動制御用オブジェクト70ごとにはねかえり係数を変えるようにしてもよい。
【0075】
また例えば、本発明が用いられるのは、ボールオブジェクト48がゴールネット56に衝突する様子を表現する場合に限られない。例えば、サッカースタジアムの観客席で振られている大きな旗(被衝突オブジェクト)にボールや発炎筒など(移動体)が衝突する様子を表現する場合にも、本発明は用いることができる。このとき、観客が旗を振ることによって旗の形状が変化する様子は、例えばアニメーションによって表現される。このような場合、挙動制御オブジェクト70の位置及び形状や、挙動制御オブジェクト70に対応づけられる反力係数(加速度ベクトル情報)が、観客の旗振り動作による旗の形状変化を表すアニメーション情報に連動して変化するようにしてもよい。このように、移動体オブジェクトの衝突以外の事象に起因する被衝突オブジェクトの形状変化に応じて、挙動制御オブジェクト70の位置及び形状や、挙動制御オブジェクト70に対応づけられる反力係数(加速度ベクトル情報)が変化するようにしてもよい。こうすれば、移動体オブジェクトの衝突以外の事象に起因する被衝突オブジェクトの形状が変化するような場合にも、移動体オブジェクトが被衝突オブジェクトに衝突する様子を好適に表現できるようになる。なお、挙動制御オブジェクト70の位置及び形状が変化した場合には、それらの変化に応じて、その基準点設定対象領域72a及び72bの位置や形状も変化させる必要がある。このため、例えば、被衝突オブジェクトの形状変化を表すアニメーションの各フレームと、基準点設定対象領域72a及び72bの位置や形状を特定するための情報と、を対応づけてなるデータが記憶される。このデータは、例えば、被衝突オブジェクトの形状変化を表すアニメーションの各フレームと、基準点設定対象領域72a及び72bの各頂点の座標を特定するための情報と、を対応づけてなるテーブル形式のデータである。また例えば、上記データは、被衝突オブジェクトの形状変化を表すアニメーションの各フレームの位置(例えば、先頭から何フレーム目かを示す数値)に基づいて、基準点設定対象領域72a及び72bの各頂点の座標を算出するための演算式形式のデータであってもよい。上記のようなデータに基づいて、基準点設定対象領域72a及び72bの位置や形状が、移動体オブジェクトの衝突以外の事象に起因する被衝突オブジェクトの形状変化に応じて変化する。
【0076】
また例えば、本発明はサッカーゲーム以外のゲームを実行するゲーム装置にも適用することができる。例えば、バレーボールゲームを実行するゲーム装置に本発明を適用することによって、ボールがネットに衝突する様子を好適に表現することもできる。また、本発明はゲーム装置以外の画像処理装置にも適用することができる。本発明は、移動体オブジェクトが衝突することによって変形する被衝突オブジェクトに移動体オブジェクトが衝突する様子を表現する場合に用いることができる。なお、被衝突オブジェクトとしては、例えばネットや布などのシート状のオブジェクトや、スポンジ状のオブジェクトなどが挙げられる。
【0077】
また例えば、以上の説明では、プログラムを情報記憶媒体たるDVD−ROM25から家庭用ゲーム機11に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図22は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。図22に基づいて本発明に係るプログラム配信方法を説明する。図22に示すように、このプログラム配信システム100は、データベース102(情報記憶媒体)、サーバ104、通信ネットワーク106、パソコン108、家庭用ゲーム機110、PDA(携帯情報端末)112を含んでいる。このうち、データベース102とサーバ104とによりプログラム配信装置114が構成される。通信ネットワーク106は、例えばインターネットやケーブルテレビネットワークを含んで構成されている。このシステムでは、データベース102に、DVD−ROM25の記憶内容と同様のプログラムが記憶されている。そして、パソコン108、家庭用ゲーム機110又はPDA112等を用いて需要者がプログラム配信要求をすることにより、それが通信ネットワーク106を介してサーバ104に伝えられる。そして、サーバ104はプログラム配信要求に応じてゲームデータベース102からプログラムを読み出し、それをパソコン108、家庭用ゲーム機110、PDA112等、プログラム配信要求元に送信する。ここではプログラム配信要求に応じてプログラム配信するようにしたが、サーバ104から一方的に送信するようにしてもよい。また、必ずしも一度に全てのプログラムを配信(一括配信)する必要はなく、必要な部分をその都度配信(分割配信)するようにしてもよい。このように通信ネットワーク106を介してプログラムを配信するようにすれば、需要者は容易にプログラムを入手することができるようになる。
【図面の簡単な説明】
【0078】
【図1】本実施の形態に係るゲーム装置のハードウェア構成を示す図である。
【図2】仮想3次元空間の一例を示す図である。
【図3】ゴールオブジェクトの一例を示す斜視図である。
【図4】ゴールネットの一部を示す図である。
【図5】本実施の形態に係るゲーム装置の機能ブロック図である。
【図6】挙動制御用オブジェクトの一例を示す斜視図である。
【図7】挙動制御用オブジェクトの配置例を示す図である。
【図8】挙動制御用オブジェクトの配置例を示す図である。
【図9】挙動制御テーブルの一例を示す図である。
【図10】ゲーム装置で実行される処理の示すフロー図である。
【図11】ゲーム装置で実行される処理の示すフロー図である。
【図12】基準点の設定について説明するための図である。
【図13】基準点の設定について説明するための図である。
【図14】基準点の設定について説明するための図である。
【図15】ボールオブジェクトと挙動制御用オブジェクトとの接触判定について説明するための図である。
【図16】ゴールネットの変形制御について説明するための図である。
【図17】ゴールネットの変形制御について説明するための図である。
【図18】挙動制御用オブジェクトの配置例を示す図である。
【図19】挙動制御用オブジェクトの配置例を示す図である。
【図20】基準点の設定について説明するための図である。
【図21】基準点の設定と、ボールオブジェクトと挙動制御用オブジェクトとの接触判定と、について説明するための図である。
【図22】本発明の他の実施形態に係るプログラム配信システムの全体構成を示す図である。
【符号の説明】
【0079】
10 ゲーム装置、11,110 家庭用ゲーム機、12 バス、14 マイクロプロセッサ、16 画像処理部、18 モニタ、20 音声処理部、22 スピーカ、24 DVD−ROM再生部、25 DVD−ROM、26 主記憶、28 メモリカード、30 入出力処理部、32 コントローラ、40 仮想3次元空間、42 フィールドオブジェクト、43 ゴールライン、44 ゴールオブジェクト、46 選手オブジェクト、48 ボールオブジェクト、50 仮想カメラ、52 ゴールポスト、54 クロスバー、56 ゴールネット、56a 正面、56b 側面、60 ゲームデータ記憶部、60a 挙動制御情報記憶部、62 判定部、64 オブジェクト挙動制御部、64a ボールオブジェクト挙動制御部、64b ゴールネット挙動制御部、70 挙動制御用オブジェクト、72 基準平面、72a,72b 基準点設定対象領域、100 プログラム配信システム、102 データベース、104 サーバ、106 通信ネットワーク、108 パソコン、112 携帯情報端末(PDA)、114 プログラム配信装置。
【特許請求の範囲】
【請求項1】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置において、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段と、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段と、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段と、
を含み、
前記挙動制御用オブジェクトは、表と裏との区別がある板状のオブジェクトであり、
前記挙動制御用オブジェクトは、表側が、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面と対向するように配置され、
前記判定手段は、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したか否かを判定し、
前記移動体オブジェクト挙動制御手段は、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したと判定された場合、該挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する、
ことを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記複数の挙動制御用オブジェクトの各々に対応づけて、前記移動体オブジェクトが前記挙動制御用オブジェクトによってはねかえされるか否かを示すはねかえり制御情報を記憶するはねかえり制御情報記憶手段を含み、
前記移動体オブジェクト挙動制御手段は、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したと判定された場合において、該挙動制御用オブジェクトに対応づけられたはねかえり制御情報が、前記移動体オブジェクトが該挙動制御用オブジェクトによってはねかえされることを示す場合、前記移動体オブジェクトが該挙動制御用オブジェクトによって所与のはねかえり係数ではねかえされたものとして、前記移動体オブジェクトの挙動を制御する手段を含む、
ことを特徴とする画像処理装置。
【請求項3】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置の制御方法において、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段の記憶内容を読み出すステップと、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定ステップと、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御ステップと、
を含み、
前記挙動制御用オブジェクトは、表と裏との区別がある板状のオブジェクトであり、
前記挙動制御用オブジェクトは、表側が、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面と対向するように配置され、
前記判定ステップは、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したか否かを判定し、
前記移動体オブジェクト挙動制御ステップは、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したと判定された場合、該挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する、
ことを特徴とする画像処理装置の制御方法。
【請求項4】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置としてコンピュータを機能させるためのプログラムであって、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段、及び、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段、
として前記コンピュータを機能させ、
前記挙動制御用オブジェクトは、表と裏との区別がある板状のオブジェクトであり、
前記挙動制御用オブジェクトは、表側が、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面と対向するように配置され、
前記判定手段は、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したか否かを判定し、
前記移動体オブジェクト挙動制御手段は、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したと判定された場合、該挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する、
ことを特徴とするプログラム。
【請求項1】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置において、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段と、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段と、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段と、
を含み、
前記挙動制御用オブジェクトは、表と裏との区別がある板状のオブジェクトであり、
前記挙動制御用オブジェクトは、表側が、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面と対向するように配置され、
前記判定手段は、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したか否かを判定し、
前記移動体オブジェクト挙動制御手段は、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したと判定された場合、該挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する、
ことを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
前記複数の挙動制御用オブジェクトの各々に対応づけて、前記移動体オブジェクトが前記挙動制御用オブジェクトによってはねかえされるか否かを示すはねかえり制御情報を記憶するはねかえり制御情報記憶手段を含み、
前記移動体オブジェクト挙動制御手段は、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したと判定された場合において、該挙動制御用オブジェクトに対応づけられたはねかえり制御情報が、前記移動体オブジェクトが該挙動制御用オブジェクトによってはねかえされることを示す場合、前記移動体オブジェクトが該挙動制御用オブジェクトによって所与のはねかえり係数ではねかえされたものとして、前記移動体オブジェクトの挙動を制御する手段を含む、
ことを特徴とする画像処理装置。
【請求項3】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置の制御方法において、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段の記憶内容を読み出すステップと、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定ステップと、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御ステップと、
を含み、
前記挙動制御用オブジェクトは、表と裏との区別がある板状のオブジェクトであり、
前記挙動制御用オブジェクトは、表側が、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面と対向するように配置され、
前記判定ステップは、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したか否かを判定し、
前記移動体オブジェクト挙動制御ステップは、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したと判定された場合、該挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する、
ことを特徴とする画像処理装置の制御方法。
【請求項4】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想3次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置としてコンピュータを機能させるためのプログラムであって、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段、及び、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段、
として前記コンピュータを機能させ、
前記挙動制御用オブジェクトは、表と裏との区別がある板状のオブジェクトであり、
前記挙動制御用オブジェクトは、表側が、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面と対向するように配置され、
前記判定手段は、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したか否かを判定し、
前記移動体オブジェクト挙動制御手段は、前記移動体オブジェクトが前記挙動制御用オブジェクトと該挙動制御用オブジェクトの表側から接触したと判定された場合、該挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する、
ことを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2008−276808(P2008−276808A)
【公開日】平成20年11月13日(2008.11.13)
【国際特許分類】
【出願番号】特願2008−203618(P2008−203618)
【出願日】平成20年8月6日(2008.8.6)
【分割の表示】特願2006−355720(P2006−355720)の分割
【原出願日】平成18年12月28日(2006.12.28)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】
【公開日】平成20年11月13日(2008.11.13)
【国際特許分類】
【出願日】平成20年8月6日(2008.8.6)
【分割の表示】特願2006−355720(P2006−355720)の分割
【原出願日】平成18年12月28日(2006.12.28)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】
[ Back to top ]