(57)【要約】【課題】移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御に、プログラマ以外の者、例えば被衝突オブジェクトの形状等をデザインする者が関与しやすくなる画像処理装置を提供すること。【解決手段】挙動制御情報記憶部６０ａは、複数の挙動制御用オブジェクトの各々に対応づけて加速度ベクトル情報を記憶する。挙動制御用オブジェクトは、被衝突オブジェクトの、移動体オブジェクトによって衝突される面の背面側の空間に配置される。加速度ベクトル情報は、被衝突オブジェクトによって移動体オブジェクトに加えられる力に起因する移動体オブジェクトの加速度ベクトルを特定するための情報である。ボールオブジェクト挙動制御部６４ａは、移動体オブジェクトが接触したと判定部６２によって判定された挙動制御用オブジェクトに対応づけられた加速度ベクトル情報に基づいて、移動体オブジェクトの挙動を制御する。【選択図】図５
2008165584.tif 000002
【特許請求の範囲】
【請求項１】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置において、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段と、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段と、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段と、
を含むことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記複数の挙動制御用オブジェクトの各々に対応づけて、前記移動体オブジェクトが前記挙動制御用オブジェクトによってはねかえされるか否かを示すはねかえり制御情報を記憶するはねかえり制御情報記憶手段を含み、
前記オブジェクト挙動制御手段は、前記移動体オブジェクトが接触したと判定された前記挙動制御用オブジェクトに対応づけられたはねかえり制御情報が、前記移動体オブジェクトが該挙動制御用オブジェクトによってはねかえされることを示す場合、前記移動体オブジェクトが該挙動制御用オブジェクトによって所与のはねかえり係数ではねかえされたものとして、前記移動体オブジェクトの挙動を制御する手段を含む、
ことを特徴とする画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置において、
前記判定手段は、
前記移動体オブジェクトの現在位置に基づいて所定演算を実行することによって基準位置を設定する基準位置設定手段を含み、
前記基準位置設定手段によって設定された基準位置から前記移動体オブジェクトの現在位置までの直線と、前記複数の挙動制御用オブジェクトと、が交わるか否かを判定することによって、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する、
ことを特徴とする画像処理装置。
【請求項４】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置の制御方法において、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段の記憶内容を読み出すステップと、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定ステップと、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御ステップと、
を含むことを特徴とする画像処理装置の制御方法。
【請求項５】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置としてコンピュータを機能させるためのプログラムであって、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段、及び、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段、
として前記コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
３次元画像処理では、オブジェクトが配置された仮想３次元空間を所与の視点から見た様子が表示出力される。このような３次元画像処理の分野では、移動体オブジェクトが衝突することによって変形する被衝突オブジェクトに移動体オブジェクトが衝突する様子を好適に表現するための技術として、例えば特許文献１に記載の技術がある。
【特許文献１】特許第３７６８９７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来、移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御は専らプログラム側で実現されていた。このため、移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御に、プログラマ以外の者、例えば被衝突オブジェクトの形状等をデザインする者が関与することは難しかった。
【０００４】
本発明は上記課題に鑑みてなされたものであって、その目的は、移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御に、プログラマ以外の者、例えば被衝突オブジェクトの形状等をデザインする者が関与しやすくなる画像処理装置、画像処理装置の制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る画像処理装置は、移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置において、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段と、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段と、前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段と、を含むことを特徴とする。
【０００６】
また、本発明に係る画像処理装置の制御方法は、移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置の制御方法において、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段の記憶内容を読み出すステップと、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定ステップと、前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御ステップと、を含むことを特徴とする。
【０００７】
また、本発明に係るプログラムは、移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置として、例えば家庭用ゲーム機、携帯用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムであって、前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段、及び、前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段、として前記コンピュータを機能させるためのプログラムである。
【０００８】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。また、本発明に係るプログラム配信装置は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信装置である。また、本発明に係るプログラム配信方法は、上記プログラムを記録した情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信方法である。
【０００９】
本発明は、移動体オブジェクトと、該移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、移動体オブジェクトが被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置に関する。本発明では、被衝突オブジェクトの、移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて加速度ベクトル情報が記憶される。加速度ベクトル情報は、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による移動体オブジェクトの加速度ベクトルを特定するための情報である。ここで、加速度ベクトル情報は、加速度ベクトルそのものを示す情報であってもよいし、加速度ベクトルの算出の基礎となる情報であってもよい。また本発明では、移動体オブジェクトと、複数の挙動制御用オブジェクトと、が接触したか否かが判定される。そして、移動体オブジェクトが複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、移動体オブジェクトの挙動が制御される。本発明によれば、例えば、被衝突オブジェクトの形状等をデザインする者が、被衝突オブジェクトの形状等に合わせて、挙動制御用オブジェクトと、挙動制御用オブジェクトに対応づけられる加速度ベクトル情報と、を設定することが可能になり、それらのデータを被衝突オブジェクトの形状データなどとともに被衝突オブジェクトのデータとして制作することが可能になる。その結果として、例えば、被衝突オブジェクトの形状等をデザインする者が、移動体オブジェクトが被衝突オブジェクトに衝突した場合の移動体オブジェクトの挙動制御に関与しやすくなる。
【００１０】
また、本発明の一態様では、前記複数の挙動制御用オブジェクトの各々に対応づけて、前記移動体オブジェクトが前記挙動制御用オブジェクトによってはねかえされるか否かを示すはねかえり制御情報を記憶するはねかえり制御情報記憶手段を含むようにしてもよい。また、前記オブジェクト挙動制御手段は、前記移動体オブジェクトが接触したと判定された前記挙動制御用オブジェクトに対応づけられたはねかえり制御情報が、前記移動体オブジェクトが該挙動制御用オブジェクトによってはねかえされることを示す場合、前記移動体オブジェクトが該挙動制御用オブジェクトによって所与のはねかえり係数ではねかえされたものとして、前記移動体オブジェクトの挙動を制御する手段を含むようにしてもよい。
【００１１】
また、本発明の一態様では、前記判定手段は、前記移動体オブジェクトの現在位置に基づいて所定演算を実行することによって基準位置を設定する基準位置設定手段を含み、前記基準位置設定手段によって設定された基準位置から前記移動体オブジェクトの現在位置までの直線と、前記複数の挙動制御用オブジェクトと、が交わるか否かを判定することによって、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定するようにしてもよい。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。ここでは、画像処理装置の一態様であるゲーム装置に本発明を適用した場合の例について説明する。なお、本発明はゲーム装置以外の画像処理装置にも適用できるものである。
【００１３】
図１は、本発明の実施形態に係るゲーム装置の構成を示す図である。図１に示すゲーム装置１０は家庭用ゲーム機１１を主として構成される。家庭用ゲーム機１１には、情報記憶媒体たるＤＶＤ−ＲＯＭ２５及びメモリカード２８が装着される。さらに家庭用ゲーム機１１にはモニタ１８及びスピーカ２２が接続される。例えば、モニタ１８には家庭用テレビ受像機が用いられ、スピーカ２２にはその内蔵スピーカが用いられる。
【００１４】
家庭用ゲーム機１１は、バス１２、マイクロプロセッサ１４、画像処理部１６、音声処理部２０、ＤＶＤ−ＲＯＭ再生部２４、主記憶２６、入出力処理部３０及びコントローラ３２を含んで構成される公知のコンピュータゲームシステムである。コントローラ３２以外の構成要素は筐体内に収容される。
【００１５】
バス１２はアドレス及びデータを家庭用ゲーム機１１の各部でやり取りするためのものである。マイクロプロセッサ１４、画像処理部１６、主記憶２６及び入出力処理部３０は、バス１２によって相互データ通信可能に接続される。
【００１６】
マイクロプロセッサ１４は、図示しないＲＯＭに格納されるオペレーティングシステム、ＤＶＤ−ＲＯＭ２５やメモリカード２８から読み出されるゲームプログラムやゲームデータに基づいて、家庭用ゲーム機１１の各部を制御する。主記憶２６は、例えばＲＡＭを含んで構成されるものであり、ＤＶＤ−ＲＯＭ２５やメモリカード２８から読み出されたゲームプログラムやゲームデータが必要に応じて書き込まれる。主記憶２６はマイクロプロセッサ１４の作業用としても用いられる。
【００１７】
画像処理部１６はＶＲＡＭを含んで構成されている。画像処理部１６は、マイクロプロセッサ１４から送られる画像データを受け取ってＶＲＡＭ上にゲーム画面を描画するとともに、その内容を所定のビデオ信号に変換して所定タイミングでモニタ１８に出力する。
【００１８】
入出力処理部３０は、マイクロプロセッサ１４が音声処理部２０、ＤＶＤ−ＲＯＭ再生部２４、メモリカード２８及びコントローラ３２にアクセスするためのインタフェースである。入出力処理部３０には、音声処理部２０、ＤＶＤ−ＲＯＭ再生部２４、メモリカード２８及びコントローラ３２が接続される。
【００１９】
音声処理部２０はサウンドバッファを含んで構成されており、ＤＶＤ−ＲＯＭ２５から読み出され、該サウンドバッファに記憶されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データを再生してスピーカ２２から出力する。
【００２０】
ＤＶＤ−ＲＯＭ再生部２４はマイクロプロセッサ１４からの指示に従ってＤＶＤ−ＲＯＭ２５に記録されたゲームプログラムやゲームデータを読み取る。ここではゲームプログラムやゲームデータを家庭用ゲーム機１１に供給するためにＤＶＤ−ＲＯＭ２５を用いることとするが、ＣＤ−ＲＯＭやＲＯＭカード等、他のあらゆる情報記憶媒体を用いるようにしてもよい。また、インターネット等のデータ通信網を介して遠隔地からゲームプログラムやゲームデータを家庭用ゲーム機１１に供給するようにしてもよい。
【００２１】
メモリカード２８は不揮発性メモリ（例えばＥＥＰＲＯＭ等）を含んで構成される。家庭用ゲーム機１１は、メモリカード２８を装着するためのメモリカードスロットを複数備えている。メモリカード２８は例えばセーブデータなどの各種ゲームデータを記憶するために用いられる。
【００２２】
コントローラ３２は、プレイヤが各種ゲーム操作の入力をするための汎用操作入力手段である。入出力処理部３０は一定周期毎（例えば１／６０秒毎）にコントローラ３２の各部の状態をスキャンし、そのスキャン結果を表す操作信号をバス１２を介してマイクロプロセッサ１４に渡す。マイクロプロセッサ１４は、その操作信号に基づいてプレイヤのゲーム操作を判定する。家庭用ゲーム機１１は複数のコントローラ３２を接続可能に構成されている。
【００２３】
上記構成を有するゲーム装置１０では、ＤＶＤ−ＲＯＭ２５から読み出されるプログラムが実行されることによって、例えばサッカーゲームが実現される。
【００２４】
上記サッカーゲームを実現するために、主記憶２６には仮想３次元空間が構築される。図２は仮想３次元空間の一例を示す図である。図２に示すように、仮想３次元空間４０には、サッカーのフィールドを表すフィールドオブジェクト４２と、ゴールを表すゴールオブジェクト４４と、が配置され、サッカーの試合会場が形成される。フィールドオブジェクト４２には例えばゴールライン４３などが表される。またフィールドオブジェクト４２上には、サッカー選手を表す選手オブジェクト４６と、サッカーボールを表すボールオブジェクト４８（移動体オブジェクト）と、が配置される。図２では省略されているが、フィールドオブジェクト４２上には２２体の選手オブジェクト４６が配置される。
【００２５】
図３はゴールオブジェクト４４の一例を示す斜視図である。図３に示すように、ゴールオブジェクト４４は、２本のゴールポスト５２と、クロスバー５４と、を含んで構成される枠体と、枠体に張られたゴールネット５６（被衝突オブジェクト）と、を含んで構成される。ゴールネット５６は、ある程度のたるみを持たせつつ、例えばゴールポスト５２、クロスバー５４や、ゴールオブジェクト４４の後方の地面（フィールドオブジェクト４２）に固定される。図４はゴールネット５６の一部を示す図である。図３ではゴールネット５６の網目構造が詳細に描かれていないが、図４に示すように、ゴールネット５６は六角形の網目構造を有している。なお以下では、六角形の網目の各頂点のことを「ノード」と記載する。
【００２６】
また仮想３次元空間４０には仮想カメラ５０（視点及び視線方向）が設定される。仮想カメラ５０は例えばボールオブジェクト４８に従動する。この仮想カメラ５０から仮想３次元空間４０を見た様子を表すゲーム画面がモニタ１８に表示される。
【００２７】
以下、ボールオブジェクト４８がゴールネット５６に衝突した場合のボールオブジェクト４８及びゴールネット５６の挙動を表現するための技術について説明する。すなわち、ボールオブジェクト４８がゴールネット５６に衝突した場合に、ボールオブジェクト４８の動きがゴールネット５６によって制動される様子と、ゴールネット５６がボールオブジェクト４８の衝突によって揺動する様子と、を表現するための技術について説明する。
【００２８】
まず、ゲーム装置１０で実現される機能について説明する。図５は、ゲーム装置１０において実現される機能のうち、本発明に関連するものを主として示す機能ブロック図である。図５に示すように、ゲーム装置１０は、ゲームデータ記憶部６０と、判定部６２と、オブジェクト挙動制御部６４と、を機能的に含んでいる。これらの機能は、ＤＶＤ−ＲＯＭ２５から読み出されたプログラムがゲーム装置１０（マイクロプロセッサ１４）によって実行されることによって実現される。
【００２９】
ゲームデータ記憶部６０はＤＶＤ−ＲＯＭ２５や主記憶２６を主として実現される。ゲームデータ記憶部６０は上記サッカーゲームを実現するための各種データを記憶する。ゲームデータ記憶部６０は、仮想３次元空間４０に配置される各オブジェクトの基本形状を示す情報を記憶する。またゲームデータ記憶部６０は、仮想３次元空間４０に配置される各オブジェクトの現在状態を示す情報を記憶する。例えば、ゲームデータ記憶部６０は、ゴールオブジェクト４４や後述の挙動制御用オブジェクトなどの静的オブジェクトの位置、姿勢や形状を示す情報を記憶する。また例えば、ゲームデータ記憶部６０は、各選手オブジェクト４６やボールオブジェクト４８などの動的オブジェクトの位置、姿勢、移動速度ベクトル（移動方向及び速度）を示す情報を記憶する。またゲームデータ記憶部６０は、仮想カメラ５０の位置（視点位置）や姿勢（視線方向）を示す情報を記憶する。
【００３０】
ゲームデータ記憶部６０は挙動制御情報記憶部６０ａ（加速度ベクトル情報記憶手段、はねかえり制御情報記憶手段）を含む。挙動制御情報記憶部６０ａは挙動制御情報を記憶する。挙動制御情報は、ボールオブジェクト４８がゴールネット５６に衝突した際のボールオブジェクト４８及びゴールネット５６の挙動制御の基礎となる情報である。
【００３１】
ゲーム装置１０では、ボールオブジェクト４８がゴールネット５６に衝突した際のボールオブジェクト４８及びゴールネット５６の挙動を制御するために、仮想３次元空間４０に複数の挙動制御用オブジェクトが配置される。図６は挙動制御用オブジェクトの一例を示す斜視図である。図６に示すように、挙動制御用オブジェクト７０は板状の矩形オブジェクトである。挙動制御用オブジェクト７０は不可視（透明）なオブジェクトであり、ゲーム画面には表示されない。また挙動制御用オブジェクト７０は表と裏とが区別される。図７及び図８は挙動制御用オブジェクト７０の配置例を示している。なお図７及び図８では、挙動制御用オブジェクト７０の配置状態を分かりやすくするために、ゴールオブジェクト４４及びゴールライン４３を点線で表している。
【００３２】
図７は、ボールオブジェクト４８がゴールオブジェクト４４内に入ってゴールネット５６の正面５６ａの内面側に衝突した場合のボールオブジェクト４８及びゴールネット５６の挙動を制御するために配置される挙動制御用オブジェクト７０の一例を示している。図７に示す挙動制御用オブジェクト７０は、ゴールネット５６の正面５６ａの外面側の空間に配置されている。図７に示す挙動制御用オブジェクト７０は、ゴールネット５６から徐々に離れるようにして一定間隔で複数配列されている。図７に示す挙動制御用オブジェクト７０は、ゴールネット５６の正面５６ａに略平行に配置されている。図７に示す挙動制御用オブジェクト７０は、その表側がゴールネット５６の正面５６ａの方を向くように配置されている。図７に示す挙動制御用オブジェクト７０の面積は、ゴールネット５６の正面５６ａの面積と同等、又はゴールネット５６の正面５６ａの面積よりも広めに設定される。
【００３３】
図８は、ボールオブジェクト４８がゴールオブジェクト４４内に入ってゴールネット５６の側面５６ｂの内面側に衝突した場合のボールオブジェクト４８及びゴールネット５６の挙動を制御するために配置される挙動制御用オブジェクト７０の一例を示している。図８に示す挙動制御用オブジェクト７０は、ゴールネット５６の側面５６ｂの外面側の空間に配置されている。図８に示す挙動制御用オブジェクト７０も、ゴールネット５６から徐々に離れるようにして一定間隔で複数配列されている。また、図８に示す挙動制御用オブジェクト７０は、ゴールネット５６の側面５６ｂに略平行に配置されている。図８に示す挙動制御用オブジェクト７０は、その表側がゴールネット５６の側面５６ｂの方を向くように配置されている。図８に示す挙動制御用オブジェクト７０の面積は、ゴールネット５６の側面５６ｂの面積と同等、又はゴールネット５６の側面５６ｂの面積よりも広めに設定される。
【００３４】
挙動制御情報記憶部６０ａは、挙動制御用オブジェクト７０の各々に対応づけて挙動制御情報を記憶する。図９は、挙動制御情報記憶部６０ａに記憶される挙動制御テーブルの一例を示している。図９に示すように、挙動制御テーブルは、「ＩＤ」フィールドと、「反力係数」フィールドと、「はねかえりフラグ」フィールドと、を含んでいる。「ＩＤ」フィールドには、挙動制御用オブジェクト７０を一意に識別するＩＤ（識別情報）が記憶される。なお、ここでは、図７に示す挙動制御用オブジェクト７０に対して、ゴールネット５６に最も近いものから順に、「１」，「２」，「３」，「４」とＩＤが割り当てられているものとする。「反力係数」フィールドには反力係数（加速度ベクトル情報）が記憶される。反力係数は、ゴールネット５６に衝突したボールオブジェクト４８にゴールネット５６によって加えられる力（反力）の強さを示す数値情報である。後述するように、ゴールネット５６によってボールオブジェクト４８に加えられる力に起因するボールオブジェクト４８の加速度ベクトルが、この反力係数に基づいて特定される（図１１のＳ２０５及びＳ２０６参照）。「はねかえりフラグ」フィールドには、はねかえりフラグ（はねかえり制御情報）が記憶される。はねかえりフラグは、ボールオブジェクト４８が挙動制御用オブジェクト７０に接触した場合に、ボールオブジェクト４８がその挙動制御用オブジェクト７０によってはねかえされるようにするか否かを示す情報である。ボールオブジェクト４８がその挙動制御用オブジェクト７０によってはねかえされるようにする場合には、「はねかえりフラグ」フィールドの値は１に設定される。一方、ボールオブジェクト４８がその挙動制御用オブジェクト７０によってはねかえされるようにしない場合には、「はねかえりフラグ」フィールドの値は０に設定される。本実施の形態では、図７及び図８の各図において、ゴールネット５６の正面５６ａ又は側面５６ｂから最も離れた挙動制御用オブジェクト７０の「はねかえりフラグ」フィールドの値が１に設定され、その他の挙動制御用オブジェクト７０の「はねかえりフラグ」フィールドの値が０に設定される。
【００３５】
判定部６２はマイクロプロセッサ１４を主として実現される。判定部６２は、ボールオブジェクト４８が挙動制御用オブジェクト７０に接触したか否かを判定する。詳細については後述する（図１１のＳ２０２及びＳ２０３参照）。
【００３６】
オブジェクト挙動制御部６４はマイクロプロセッサ１４を主として実現される。オブジェクト挙動制御部６４は、仮想３次元空間４０に配置される各オブジェクトの挙動を制御する。すなわち、オブジェクト挙動制御部６４は、仮想３次元空間４０に配置される各オブジェクトの位置、姿勢や形状などを制御する。オブジェクト挙動制御部６４は、ボールオブジェクト挙動制御部６４ａと、ゴールネット挙動制御部６４ｂと、を含む。
【００３７】
ボールオブジェクト挙動制御部６４ａは、ボールオブジェクト４８がゴールネット５６に衝突した場合のボールオブジェクト４８の挙動を制御する。ボールオブジェクト挙動制御部６４ａは、ボールオブジェクト４８が挙動制御用オブジェクト７０に接触したと判定された場合、その挙動制御用オブジェクト７０に対応づけられた挙動制御情報に基づいて、ボールオブジェクト４８の挙動制御を実行する。詳細については後述する（図１１のＳ２０３〜Ｓ２０８参照）。
【００３８】
ゴールネット挙動制御部６４ｂは、ボールオブジェクト４８がゴールネット５６と衝突した場合のゴールネット５６の挙動制御（変形制御）を実行する。ゴールネット挙動制御部６４ｂは、ボールオブジェクト挙動制御部６４ａによって制御されるボールオブジェクト４８の位置に基づいて、ゴールネット５６の挙動制御を実行する。詳細については後述する（図１１のＳ２０９参照）。
【００３９】
次に、ゲーム装置１０で実行される処理について説明する。図１０は、ゲーム装置１０で所定時間（例えば１／６０秒）ごとに実行される処理を示すフロー図である。
【００４０】
図１０に示すように、ゲーム装置１０はまずゲーム環境処理を実行する（Ｓ１０１）。ゲーム環境処理では、仮想３次元空間４０に配置される各オブジェクトの状態（位置、姿勢、移動方向ベクトルや形状など）が演算される。そして、ゲームデータ記憶部６０に記憶される各オブジェクトの状態を示す情報がその演算結果に基づいて更新される。またゲーム環境処理では仮想カメラ５０の位置、向きや画角が決定され、視野範囲が算出される。視野範囲内に属しないオブジェクトは以降の処理の対象から外される。
【００４１】
その後、ゲーム装置１０はジオメトリ処理を実行する（Ｓ１０２）。ジオメトリ処理ではワールド座標系から視点座標系への座標変換が行われる。ここで、ワールド座標系とは、図２に示すＸｗ軸、Ｙｗ軸、Ｚｗ軸からなる座標系である。視点座標系は、仮想カメラ５０の位置（視点）を原点とし、仮想カメラ５０の正面方向（視線方向）をＺ方向、水平方向をＸ方向、垂直方向をＹ方向とする座標系である。ジオメトリ処理ではクリッピング処理も行われる。
【００４２】
その後、ゲーム装置１０はレンダリング処理を実行する（Ｓ１０３）。レンダリング処理では、視野範囲内の各オブジェクトの各頂点の座標、色情報及びアルファ値や、視野範囲内の各オブジェクトの表面にマッピングされるテクスチャ画像等に基づいて、ＶＲＡＭ上にゲーム画面が描画される。ＶＲＡＭ上に描画されたゲーム画面は所与タイミングでモニタ１８に表示出力される。
【００４３】
ここで、ボールオブジェクト４８がゴールネット５６に衝突した場合に実行される処理について説明する。図１１は、ボールオブジェクト４８がゴールネット５６に衝突した場合に実行される処理を示すフロー図である。この処理はゲーム環境処理（図１０のＳ１０１）の一部として実行される。本処理を実行するためのプログラムがＤＶＤ−ＲＯＭ２５から読み出されて、ゲーム装置１０（マイクロプロセッサ１４）によって実行されることによって、図５に示す各機能ブロックが実現される。
【００４４】
図１１に示すように、まずゲーム装置１０はボールオブジェクト４８がゴールネット５６のどの面（正面５６ａや側面５６ｂ）に衝突したか否かを判断する（Ｓ２０１）。次にゲーム装置１０（判定部６２：基準位置設定手段）は基準点を設定する（Ｓ２０２）。
【００４５】
ここで、基準点の設定について、ボールオブジェクト４８がゴールオブジェクト４４内に入ってゴールネット５６に衝突した場合を例に説明する。図１２〜図１４は、ボールオブジェクト４８がゴールオブジェクト４４内に入ってゴールネット５６に衝突した場合に設定される基準点について説明するための図である。まずゲーム装置１０は、ボールオブジェクト４８の現在位置Ｂから基準平面７２に対して下ろした垂線Ｌ１と、基準平面７２と、の交点Ｉを取得する。図１２に示すように、基準平面７２は、ゴールネット５６をはさんで、挙動制御用オブジェクト７０がある側とは反対側に設定される。図１２に示す例では、ゴールライン４３上のＹｗＺｗ平面が基準平面７２として設定されている。次にゲーム装置１０は、交点Ｉが基準平面７２の基準点設定対象領域７２ａ内であるか否かを判定する。ここで、基準点設定対象領域７２ａは基準点が設定され得る領域である。図１２に示す例では、ゴールポスト５２とクロスバー５４とゴールライン４３とに囲まれた領域の中心付近の領域が基準点設定対象領域７２ａとして設定されている。図１３に示すように、交点Ｉが基準点設定対象領域７２ａ内である場合、ゲーム装置１０は交点Ｉを基準点Ｓに設定する。一方、図１４に示すように、交点Ｉが基準点設定対象領域７２ａ内でない場合、ゲーム装置１０は交点Ｉに最も近い基準点設定対象領域７２ａ上の点を基準点Ｓに設定する。
【００４６】
基準点が設定された後、ゲーム装置１０（判定部６２）は、例えば図１５に示すように、基準点Ｓからボールオブジェクト４８の現在位置Ｂまでの直線Ｌ２と交わる挙動制御用オブジェクト７０のＩＤを取得する（Ｓ２０３）。図１５に示す例の場合であれば、ゴールネット５６の正面５６ａに最も近い挙動制御用オブジェクト７０と、ゴールネット５６の正面５６ａに二番目及び三番目に近い挙動制御用オブジェクト７０と、のＩＤが取得される。なお図１５では、基準点Ｓ、ボールオブジェクト４８の現在位置Ｂ、直線Ｌ２、挙動制御用オブジェクト７０の関係を分かりやすくするため、ゴールオブジェクト４４を点線で表している。
【００４７】
その後、ゲーム装置１０（ボールオブジェクト挙動制御部６４ａ）は、Ｓ２０３で取得されたＩＤに対応づけられた全てのはねかえりフラグが０であるか否かを判定する（Ｓ２０４）。Ｓ２０３で取得されたＩＤに対応づけられた全てのはねかえりフラグが０である場合、ゲーム装置１０（ボールオブジェクト挙動制御部６４ａ）は、ゴールネット５６によってボールオブジェクト４８に加えられる反力を示す反力ベクトルを、Ｓ２０３で取得されたＩＤに対応づけられた反力係数に基づいて取得する（Ｓ２０５）。まずゲーム装置１０は、Ｓ２０３で取得された各ＩＤに対応する反力ベクトルを取得する。各ＩＤに対応する反力ベクトルは、そのＩＤに対応づけられた反力係数を、そのＩＤに係る挙動制御用オブジェクト７０の表側の面の法線方向の単位力ベクトルに乗じることによって得られる。次にゲーム装置１０は、Ｓ２０３で取得された各ＩＤに対応する反力ベクトルを合成することによって、ボールオブジェクト４８に加えられる反力ベクトルを取得する。例えば、Ｓ２０３で取得されたＩＤが１，２，３である場合、ボールオブジェクト４８に加えられる反力ベクトルＦは下記の式（１）のようになる。なお、下記の式（１）において、Ｆ１は、ＩＤが１の挙動制御用オブジェクト７０の表側の面の法線方向の単位力ベクトルを示している。同様に、Ｆ２，Ｆ３は、ＩＤが２，３の挙動制御用オブジェクト７０の表側の面の法線方向の単位力ベクトルをそれぞれ示している。
【００４８】
【数１】
2008165584.tif 000003
【００４９】
次に、ゲーム装置１０（ボールオブジェクト挙動制御部６４ａ）は、Ｓ２０５で取得された反力ベクトルに基づいて、反力に起因するボールオブジェクト４８の加速度ベクトルを取得する（Ｓ２０６）。例えば、ボールオブジェクト４８の加速度ベクトルａは、下記の式（２）によって取得される。なお、下記の式（２）においてｍはボールオブジェクト４８の質量を示している。ボールオブジェクト４８の質量はあらかじめ設定されており、ゲームデータ記憶部６０に記憶されている。
【００５０】
【数２】
2008165584.tif 000004
【００５１】
次に、ゲーム装置１０（ボールオブジェクト挙動制御部６４ａ）は、Ｓ２０６で取得された加速度ベクトルに基づいて、ボールオブジェクト４８の現在位置や移動速度ベクトルなどを更新する（Ｓ２０７）。例えば、まずゲーム装置１０は、ボールオブジェクト４８の現在の移動速度ベクトルを、Ｓ２０６で取得された加速度ベクトルに基づいて更新することによって、ボールオブジェクト４８の新たな移動速度ベクトルを算出する。次にゲーム装置１０は、ボールオブジェクト４８の現在位置から、上記算出されたボールオブジェクト４８の移動速度ベクトルが示す移動方向に、該移動速度ベクトルが示す移動速度で所定時間（例えば１／６０秒）移動してなる位置を、ボールオブジェクト４８の新たな現在位置として算出する。
【００５２】
一方、Ｓ２０４において、Ｓ２０３で取得されたＩＤに対応づけられたはねかえりフラグのうちのいずれかが１であると判定された場合、ゲーム装置１０（ボールオブジェクト挙動制御部６４ａ）は、はねかえりフラグが１である挙動制御用オブジェクト７０によってボールオブジェクト４８が所与のはねかえり係数ではねかえされたものとして、ボールオブジェクト４８の現在位置や移動速度ベクトルなどを更新する（Ｓ２０８）。例えば所与のはねかえり係数をｅとすると、ゲーム装置１０は、ボールオブジェクト４８の移動速度ベクトルＶを下記の式（３）に示すように更新する。なお、はねかえり係数は０より大きく１より小さい数値である。
【００５３】
【数３】
2008165584.tif 000005
【００５４】
ボールオブジェクト４８の現在位置や移動速度ベクトルなどが更新された後、ゲーム装置１０（ゴールネット挙動制御部６４ｂ）は、ボールオブジェクト４８の現在位置（Ｓ２０７又はＳ２０８による更新後の位置）に合わせてゴールネット５６を変形する（Ｓ２０９）。ここで、ゴールネット５６の変形制御（挙動制御）に関しては、特許第３７６８９７１号公報に記載の技術を利用することができる。
【００５５】
図１６及び図１７はゴールネット５６の変形制御について説明するための図である。なお図１６及び図１７では、ボールオブジェクト４８がこれらの図に示す方向Ｄ１に移動してゴールネット５６に衝突した場合について示している。まずゲーム装置１０は、ボールオブジェクト４８がゴールネット５６を通り抜けているか否かを判定する。ボールオブジェクト４８がゴールネット５６を通り抜けていない場合、ゴールネット５６の変形は行われない。ボールオブジェクト４８がゴールネット５６を通り抜けている場合、ゲーム装置１０は、ゴールネット５６のノード（Ｎ１，Ｎ２，Ｎ３，Ｎ４，Ｎ５，・・・）のうちから、ボールオブジェクト４８に最も近いノードを選出する。例えば、ゲーム装置１０は、ボールオブジェクト４８が衝突したゴールネット５６の面（例えば正面５６ａ又は側面５６ｂ）に対して、ボールオブジェクト４８の先端位置Ｂ１を投影する。そしてゲーム装置１０は、その投影位置Ｂ２に最も近いノードを選出する。次にゲーム装置１０は、選出されたノードの位置（図１６に示す例ではＮ３）から、ボールオブジェクト４８の先端位置Ｂ１までの距離ｒを算出する。ここで、距離ｒは、ボールオブジェクト４８の先端位置Ｂ１の投影方向Ｄ２（又はその逆方向Ｄ３）に対応する距離である。そしてゲーム装置１０は、上記選出されたノードの位置を上記方向Ｄ３に距離ｒだけ移動させる。またゲーム装置１０は、上記選出されたノードの周辺のノードの位置を上記方向Ｄ３に、距離ｒに基づいて決定される距離だけ移動させる。例えばゲーム装置１０は、上記選出されたノードに隣接するノードの位置を上記方向Ｄ３に距離（ｒ＊３／４）だけ移動させる。なお、「＊」は乗算演算子を示している。
【００５６】
以上でボールオブジェクト４８がゴールネット５６に衝突した場合の処理は終了する。なお、ここでは主に、ボールオブジェクト４８がゴールオブジェクト４４内に入ってゴールネット５６の内側に衝突した場合のボールオブジェクト４８及びゴールネット５６の挙動制御について説明したが、ボールオブジェクト４８がゴールネット５６の外側に衝突した場合のボールオブジェクト４８及びゴールネット５６の挙動制御も同様にして行うことができる。
【００５７】
図１８及び図１９は、ボールオブジェクト４８がゴールネット５６の外側に衝突した場合のボールオブジェクト４８及びゴールネット５６の挙動を制御するための挙動制御用オブジェクト７０の配置例を示している。なお図１８及び図１９でも、挙動制御用オブジェクト７０の配置状態を分かりやすくするために、ゴールオブジェクト４４及びゴールライン４３を点線で表している。
【００５８】
図１８は、ボールオブジェクト４８がゴールネット５６の正面５６ａの外面側に衝突した場合のボールオブジェクト４８及びゴールネット５６の挙動を制御するために配置される挙動制御用オブジェクト７０の一例を示している。図１８に示す挙動制御用オブジェクト７０は、ゴールネット５６の正面５６ａの内面側の空間に配置されている。図１８に示す挙動制御用オブジェクト７０は、その表側がゴールネット５６の正面５６ａの方を向くように配置されている。
【００５９】
図１９は、ボールオブジェクト４８がゴールネット５６の側面５６ｂの外面側に衝突した場合のボールオブジェクト４８及びゴールネット５６の挙動を制御するために配置される挙動制御用オブジェクト７０の一例を示している。図１９に示す挙動制御用オブジェクト７０は、ゴールネット５６の側面５６ｂの内面側の空間に配置されている。図１９に示す挙動制御用オブジェクト７０は、その表側がゴールネット５６の側面５６ｂの方を向くように配置されている。
【００６０】
なお、図１８及び図１９の各図において、ゴールネット５６の正面５６ａ又は側面５６ｂから最も離れた挙動制御用オブジェクト７０の「はねかえりフラグ」フィールドの値が１に設定され、その他の挙動制御用オブジェクト７０の「はねかえりフラグ」フィールドの値が０に設定される。
【００６１】
図２０及び図２１は、ボールオブジェクト４８がゴールネット５６の正面５６ａや側面５６ｂの外側に衝突した場合における、図１１のＳ２０２及びＳ２０３の処理について説明するための図である。なお図２１では、基準点Ｓ、ボールオブジェクト４８の現在位置Ｂ、直線Ｌ２、挙動制御用オブジェクト７０などの関係を分かりやすくするため、ゴールオブジェクト４４を点線で表している。
【００６２】
ボールオブジェクト４８がゴールネット５６の正面５６ａや側面５６ｂの外側に衝突した場合、図１１のＳ２０２では、図１２〜図１５に示した基準点設定対象領域７２ａに加えて、例えば図２０に示すような基準点設定対象領域７２ｂが設定される。図２０に示すように、基準点設定対象領域７２ｂは、ゴールオブジェクト４４の外側の空間に、ゴールオブジェクト４４を囲むようにして設定される。
【００６３】
この場合、まずゲーム装置１０は、図１３又は図１４に示す基準点ＳをＳ０として取得する。すなわち、ボールオブジェクト４８がゴールネット５６の正面５６ａや側面５６ｂの内側に衝突した場合と同様に、ボールオブジェクト４８の現在位置Ｂから基準平面７２に対して下ろした垂線Ｌ１と、基準平面７２と、の交点Ｉを取得する（図１３及び図１４参照）。そして、交点Ｉが基準点設定対象領域７２ａ内である場合、ゲーム装置１０は交点ＩをＳ０として取得する。一方、交点Ｉが基準点設定対象領域７２ａ内でない場合、ゲーム装置１０は交点Ｉに最も近い基準点設定対象領域７２ａ上の点をＳ０として取得する。点Ｓ０が取得されたら、ゲーム装置１０は、図２１に示すように、点Ｓ０からボールオブジェクト４８の現在位置Ｂの方向に伸ばした直線Ｌ３と、基準点設定対象領域７２ｂと、の交点を基準点Ｓとして取得する。そして、図１１のＳ２０３では、基準点Ｓからボールオブジェクト４８の現在位置Ｂまでの直線Ｌ２と交わる挙動制御用オブジェクト７０のＩＤが取得される。
【００６４】
なお、図１１のＳ２０３では、ゲーム装置１０は、基準点Ｓからボールオブジェクト４８の現在位置Ｂまでの直線Ｌ２が挙動制御用オブジェクト７０と挙動制御用オブジェクト７０の表側から交わる場合にのみ、直線Ｌ２が挙動制御用オブジェクト７０と交わると判定するようにすると好適である。こうすれば、例えば、ボールオブジェクト４８がゴールオブジェクト４４内に入ってゴールネット５６の正面５６ａの内側に衝突した場合には、ボールオブジェクト４８が、図１８や図１９に示す挙動制御用オブジェクト７０とは接触していないと判定されるようになる。また例えば、ボールオブジェクト４８がゴールネット５６の正面５６ａの外側に衝突した場合には、ボールオブジェクト４８が、図７に示す挙動制御用オブジェクト７０とは接触（衝突）していないと判定されるようになる。
【００６５】
以上説明したゲーム装置１０によれば、ボールオブジェクト４８がゴールネット５６に衝突した場合のボールオブジェクト４８及びゴールネット５６のリアリティの高い挙動表現を複雑なシミュレーション演算等を行うことなく実現することが可能になる。すなわち、ボールオブジェクト４８がゴールネット５６に衝突した場合のボールオブジェクト４８及びゴールネット５６のリアリティの高い挙動表現を処理負荷の軽減を図りつつ実現することが可能になる。
【００６６】
またゲーム装置１０によれば、ゴールオブジェクト４４のデザインを担当する者（ゴールオブジェクト４４の形状などを熟知している者）が、ゴールオブジェクト４８の形状などに合わせて、挙動制御用オブジェクト７０と、挙動制御テーブルと、を設定することが可能になり、それらのデータをゴールオブジェクト４４の形状データなどとともにゴールオブジェクト４４のデータとして制作することが可能になる。すなわちゲーム装置１０によれば、ゴールオブジェクト４４のデザインを担当する者が、ボールオブジェクト４８がゴールネット５６に衝突した場合のボールオブジェクト４８やゴールネット５６の挙動制御に関与しやすくなる。
【００６７】
ところで、現実のサッカーで用いられるゴールの形状や構造は一定ではなく、様々な形状や構造のゴールが存在する。このため、サッカーゲームにおいても、形状や構造の異なる複数種類のゴールが登場させることによって、サッカーゲームのリアリティを向上させることが可能になる。しかしながら、ゴールオブジェクト４４の形状や構造が異なると、ボールオブジェクト４８がゴールネット５６に衝突した場合のボールオブジェクト４８やゴールネット５６の挙動も異なってくるため、複数種類のゴールオブジェクト４８をゲームに登場させようとすると、従来の方法では、ゲームプログラマは各ゴールオブジェクト４８ごとに、そのゴールオブジェクト４４の形状や構造に合わせたプログラム（ボールオブジェクト４８がゴールネット５６に衝突した場合のボールオブジェクト４８及びゴールネット５６の挙動を制御するためプログラム）を作成しなければならない。このため、複数種類のゴールオブジェクト４８をゲームに登場させようとすると、ゲームプログラマの手間が増大するおそれがある。この点、ゲーム装置１０によれば、挙動制御用オブジェクト７０はゴールオブジェクト４８の形状や構造に合わせて配置することが可能であるため、複数種類のゴールオブジェクト４８をゲームに登場させる場合において、各ゴールオブジェクト４４ごとに、そのゴールオブジェクト４４の形状や構造に合わせたプログラムを作成する手間が軽減される。すなわち、ゲーム装置１０によれば、ゲームプログラマの手間の増大を抑えつつ、複数種類のゴールオブジェクト４８をゲームに登場させることが可能になる。
【００６８】
またゲーム装置１０では、各挙動制御用オブジェクト７０に対応づけてはねかえりフラグが記憶される。そして、各挙動制御用オブジェクト７０に対応づけられたはねかえりフラグに基づいて、ボールオブジェクト４８の挙動が制御される。ゴールネット５６に衝突したボールオブジェクト４８が進みすぎてしまうと、不自然な様子がゲーム画面に表されてしまうことになり、かえってリアリティが損なわれてしまう。この点、ゲーム装置１０では、図７、図８、図１８や図１９の各図における、ゴールネット５６の正面５６ａ又は側面５６ｂから最も離れた挙動制御用オブジェクト７０のはねかえりフラグが１に設定される。そして、それらの挙動制御用オブジェクト７０にボールオブジェクト４８が接触した場合には、それらの挙動制御用オブジェクト７０によってボールオブジェクト４８が所与のはねかえり係数ではねかえされたこととして、ボールオブジェクト４８の挙動が制御される。すなわち、ボールオブジェクト４８がそれ以上進まないように制御される。その結果として、ゲーム装置１０では、ゴールネット５６に衝突したボールオブジェクト４８が進みすぎてしまうことがないように図られている。
【００６９】
またゲーム装置１０では、所定時間（例えば１／６０秒）ごとに実行される処理において、ボールオブジェクト４８の現在位置に基づいて基準点がその都度算出され、基準点からボールオブジェクト４８の現在位置までの直線が各挙動制御用オブジェクト７０と交わるか否かを判定することによって、ボールオブジェクト４８が各挙動制御用オブジェクト７０と接触したか否かがその都度判定される。ボールオブジェクト４８が挙動制御用オブジェクト７０に接触したか否かの判定結果に基づいて、ボールオブジェクト４８やゴールネット５６の挙動制御を行う場合には、例えば、各挙動制御用オブジェクト７０に対応づけて、ボールオブジェクト４８が接触済みか否かを示すフラグ情報を記憶しておき、それらのフラグ情報に基づいて、ボールオブジェクト４８やゴールネット５６の挙動制御を実行することが考えられる。しかしながら、この方法では、各挙動制御用オブジェクト７０に対応づけて、ボールオブジェクト４８が接触済みか否かを示すフラグ情報を記憶しなければならなくなるため、データ量が増大してしまうという難点がある。また、例えばリプレイ対象の場面ごとに記録されたリプレイデータを再生するリプレイ機能をサッカーゲームが備える場合に、この手法を用いると、リプレイ画面においてボールオブジェクト４８やゴールネット５６の挙動が正確に再現（リプレイ）されない可能性がある。すなわち、リプレイデータによって再現される最初の状況が、すでにボールオブジェクト４８が少なくとも１つの挙動制御用オブジェクト７０に衝突した後の状況であると、それ以前にボールオブジェクト４８が衝突した挙動制御用オブジェクト７０が不明になるため、リプレイ画面においてボールオブジェクト４８やゴールネット５６の挙動が正確に再現されなくなってしまう。この点、ゲーム装置１０によれば、データ量の増大を抑えることが可能になる。また、ゲーム装置１０によれば、上記のようなリプレイ機能においても、ボールオブジェクト４８がゴールネット５６に衝突した場合のボールオブジェクト４８やゴールネット５６の挙動が正確に再現（リプレイ）されるようになる。
【００７０】
なお、本発明は以上に説明した実施の形態に限定されるものではない。
【００７１】
例えば、挙動制御テーブルには、「反力係数」フィールドに代えて、反発係数（加速度ベクトル情報）を記憶するための「反発係数」フィールドと、摩擦係数（加速度ベクトル情報）を記憶するための「摩擦係数」フィールドと、を設けるようにしてもよい。このようにして、ボールオブジェクト４８がゴールネット５６に衝突した際のボールオブジェクト４８の挙動を、ゴールネット５６によってボールオブジェクト４８に加えられる力の、反発力成分と、摩擦力成分と、を別々に考慮して制御するようにしてもよい。
【００７２】
また例えば、挙動制御テーブルには、「反力係数」フィールドに加えて、反力の作用方向を示すベクトル情報（加速度ベクトル情報）を記憶するための「反力ベクトル」フィールドを設けるようにしてもよい。このようして、挙動制御用オブジェクト７０の表側の面の法線方向以外の力がボールオブジェクト４８に加えられるようにしてもよい。
【００７３】
また例えば、挙動制御テーブルには、「反力係数」フィールドに代えて、ゴールネット５６がボールオブジェクト４８を押し返す力によるボールオブジェクト４８の加速度ベクトルを示す情報（加速度ベクトル情報）が記憶するための「加速度ベクトル」フィールドを設けるようにしてもよい。
【００７４】
また例えば、挙動制御テーブルには、「はねかえりフラグ」フィールドに代えて、又は「はねかえりフラグ」フィールドとともに、はねかえり係数（はねかえり制御情報）を記憶するための「はねかえり係数」フィールドを設けるようにしてもよい。このようにして、挙動制御用オブジェクト７０ごとにはねかえり係数を変えるようにしてもよい。
【００７５】
また例えば、本発明が用いられるのは、ボールオブジェクト４８がゴールネット５６に衝突する様子を表現する場合に限られない。例えば、サッカースタジアムの観客席で振られている大きな旗（被衝突オブジェクト）にボールや発炎筒など（移動体）が衝突する様子を表現する場合にも、本発明は用いることができる。このとき、観客が旗を振ることによって旗の形状が変化する様子は、例えばアニメーションによって表現される。このような場合、挙動制御オブジェクト７０の位置及び形状や、挙動制御オブジェクト７０に対応づけられる反力係数（加速度ベクトル情報）が、観客の旗振り動作による旗の形状変化を表すアニメーション情報に連動して変化するようにしてもよい。このように、移動体オブジェクトの衝突以外の事象に起因する被衝突オブジェクトの形状変化に応じて、挙動制御オブジェクト７０の位置及び形状や、挙動制御オブジェクト７０に対応づけられる反力係数（加速度ベクトル情報）が変化するようにしてもよい。こうすれば、移動体オブジェクトの衝突以外の事象に起因する被衝突オブジェクトの形状が変化するような場合にも、移動体オブジェクトが被衝突オブジェクトに衝突する様子を好適に表現できるようになる。なお、挙動制御オブジェクト７０の位置及び形状が変化した場合には、それらの変化に応じて、その基準点設定対象領域７２ａ及び７２ｂの位置や形状も変化させる必要がある。このため、例えば、被衝突オブジェクトの形状変化を表すアニメーションの各フレームと、基準点設定対象領域７２ａ及び７２ｂの位置や形状を特定するための情報と、を対応づけてなるデータが記憶される。このデータは、例えば、被衝突オブジェクトの形状変化を表すアニメーションの各フレームと、基準点設定対象領域７２ａ及び７２ｂの各頂点の座標を特定するための情報と、を対応づけてなるテーブル形式のデータである。また例えば、上記データは、被衝突オブジェクトの形状変化を表すアニメーションの各フレームの位置（例えば、先頭から何フレーム目かを示す数値）に基づいて、基準点設定対象領域７２ａ及び７２ｂの各頂点の座標を算出するための演算式形式のデータであってもよい。上記のようなデータに基づいて、基準点設定対象領域７２ａ及び７２ｂの位置や形状が、移動体オブジェクトの衝突以外の事象に起因する被衝突オブジェクトの形状変化に応じて変化する。
【００７６】
また例えば、本発明はサッカーゲーム以外のゲームを実行するゲーム装置にも適用することができる。例えば、バレーボールゲームを実行するゲーム装置に本発明を適用することによって、ボールがネットに衝突する様子を好適に表現することもできる。また、本発明はゲーム装置以外の画像処理装置にも適用することができる。本発明は、移動体オブジェクトが衝突することによって変形する被衝突オブジェクトに移動体オブジェクトが衝突する様子を表現する場合に用いることができる。なお、被衝突オブジェクトとしては、例えばネットや布などのシート状のオブジェクトや、スポンジ状のオブジェクトなどが挙げられる。
【００７７】
また例えば、以上の説明では、プログラムを情報記憶媒体たるＤＶＤ−ＲＯＭ２５から家庭用ゲーム機１１に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図２２は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。図２２に基づいて本発明に係るプログラム配信方法を説明する。図２２に示すように、このプログラム配信システム１００は、データベース１０２（情報記憶媒体）、サーバ１０４、通信ネットワーク１０６、パソコン１０８、家庭用ゲーム機１１０、ＰＤＡ（携帯情報端末）１１２を含んでいる。このうち、データベース１０２とサーバ１０４とによりプログラム配信装置１１４が構成される。通信ネットワーク１０６は、例えばインターネットやケーブルテレビネットワークを含んで構成されている。このシステムでは、データベース１０２に、ＤＶＤ−ＲＯＭ２５の記憶内容と同様のプログラムが記憶されている。そして、パソコン１０８、家庭用ゲーム機１１０又はＰＤＡ１１２等を用いて需要者がプログラム配信要求をすることにより、それが通信ネットワーク１０６を介してサーバ１０４に伝えられる。そして、サーバ１０４はプログラム配信要求に応じてゲームデータベース１０２からプログラムを読み出し、それをパソコン１０８、家庭用ゲーム機１１０、ＰＤＡ１１２等、プログラム配信要求元に送信する。ここではプログラム配信要求に応じてプログラム配信するようにしたが、サーバ１０４から一方的に送信するようにしてもよい。また、必ずしも一度に全てのプログラムを配信（一括配信）する必要はなく、必要な部分をその都度配信（分割配信）するようにしてもよい。このように通信ネットワーク１０６を介してプログラムを配信するようにすれば、需要者は容易にプログラムを入手することができるようになる。
【図面の簡単な説明】
【００７８】
【図１】本実施の形態に係るゲーム装置のハードウェア構成を示す図である。
【図２】仮想３次元空間の一例を示す図である。
【図３】ゴールオブジェクトの一例を示す斜視図である。
【図４】ゴールネットの一部を示す図である。
【図５】本実施の形態に係るゲーム装置の機能ブロック図である。
【図６】挙動制御用オブジェクトの一例を示す斜視図である。
【図７】挙動制御用オブジェクトの配置例を示す図である。
【図８】挙動制御用オブジェクトの配置例を示す図である。
【図９】挙動制御テーブルの一例を示す図である。
【図１０】ゲーム装置で実行される処理の示すフロー図である。
【図１１】ゲーム装置で実行される処理の示すフロー図である。
【図１２】基準点の設定について説明するための図である。
【図１３】基準点の設定について説明するための図である。
【図１４】基準点の設定について説明するための図である。
【図１５】ボールオブジェクトと挙動制御用オブジェクトとの接触判定について説明するための図である。
【図１６】ゴールネットの変形制御について説明するための図である。
【図１７】ゴールネットの変形制御について説明するための図である。
【図１８】挙動制御用オブジェクトの配置例を示す図である。
【図１９】挙動制御用オブジェクトの配置例を示す図である。
【図２０】基準点の設定について説明するための図である。
【図２１】基準点の設定と、ボールオブジェクトと挙動制御用オブジェクトとの接触判定と、について説明するための図である。
【図２２】本発明の他の実施形態に係るプログラム配信システムの全体構成を示す図である。
【符号の説明】
【００７９】
１０  ゲーム装置、１１，１１０  家庭用ゲーム機、１２  バス、１４  マイクロプロセッサ、１６  画像処理部、１８  モニタ、２０  音声処理部、２２  スピーカ、２４  ＤＶＤ−ＲＯＭ再生部、２５  ＤＶＤ−ＲＯＭ、２６  主記憶、２８  メモリカード、３０  入出力処理部、３２  コントローラ、４０  仮想３次元空間、４２  フィールドオブジェクト、４３  ゴールライン、４４  ゴールオブジェクト、４６  選手オブジェクト、４８  ボールオブジェクト、５０  仮想カメラ、５２  ゴールポスト、５４  クロスバー、５６  ゴールネット、５６ａ  正面、５６ｂ  側面、６０  ゲームデータ記憶部、６０ａ  挙動制御情報記憶部、６２  判定部、６４  オブジェクト挙動制御部、６４ａ  ボールオブジェクト挙動制御部、６４ｂ  ゴールネット挙動制御部、７０  挙動制御用オブジェクト、７２  基準平面、７２ａ，７２ｂ  基準点設定対象領域、１００  プログラム配信システム、１０２  データベース、１０４  サーバ、１０６  通信ネットワーク、１０８  パソコン、１１２  携帯情報端末（ＰＤＡ）、１１４  プログラム配信装置。
【図１】
2008165584.tif 000006
【図２】
2008165584.tif 000007
【図３】
2008165584.tif 000008
【図４】
2008165584.tif 000009
【図５】
2008165584.tif 000010
【図６】
2008165584.tif 000011
【図７】
2008165584.tif 000012
【図８】
2008165584.tif 000013
【図９】
2008165584.tif 000014
【図１０】
2008165584.tif 000015
【図１１】
2008165584.tif 000016
【図１２】
2008165584.tif 000017
【図１３】
2008165584.tif 000018
【図１４】
2008165584.tif 000019
【図１５】
2008165584.tif 000020
【図１６】
2008165584.tif 000021
【図１７】
2008165584.tif 000022
【図１８】
2008165584.tif 000023
【図１９】
2008165584.tif 000024
【図２０】
2008165584.tif 000025
【図２１】
2008165584.tif 000026
【図２２】
2008165584.tif 000027
【手続補正書】
【提出日】平成20年2月8日(2008.2.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置において、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に、複数の挙動制御用オブジェクトを配置する手段と、
前記複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段と、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段と、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段と、
を含むことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記複数の挙動制御用オブジェクトの各々に対応づけて、前記移動体オブジェクトが前記挙動制御用オブジェクトによってはねかえされるか否かを示すはねかえり制御情報を記憶するはねかえり制御情報記憶手段を含み、
前記移動体オブジェクト挙動制御手段は、前記移動体オブジェクトが接触したと判定された前記挙動制御用オブジェクトに対応づけられたはねかえり制御情報が、前記移動体オブジェクトが該挙動制御用オブジェクトによってはねかえされることを示す場合、前記移動体オブジェクトが該挙動制御用オブジェクトによって所与のはねかえり係数ではねかえされたものとして、前記移動体オブジェクトの挙動を制御する手段を含む、
ことを特徴とする画像処理装置。
【請求項３】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置の制御方法において、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に、複数の挙動制御用オブジェクトを配置するステップと、
前記複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段の記憶内容を読み出すステップと、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定ステップと、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御ステップと、
を含むことを特徴とする画像処理装置の制御方法。
【請求項４】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置としてコンピュータを機能させるためのプログラムであって、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に、複数の挙動制御用オブジェクトを配置する手段、
前記複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段、及び、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項５】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置において、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段と、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段と、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段と、
を含み、
前記判定手段は、
前記移動体オブジェクトの現在位置に基づいて所定演算を実行することによって基準位置を設定する基準位置設定手段を含み、
前記基準位置設定手段によって設定された基準位置から前記移動体オブジェクトの現在位置までの直線と、前記複数の挙動制御用オブジェクトと、が交わるか否かを判定することによって、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する、
ことを特徴とする画像処理装置。
【請求項６】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置の制御方法において、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段の記憶内容を読み出すステップと、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定ステップと、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御ステップと、
を含み、
前記判定ステップは、
前記移動体オブジェクトの現在位置に基づいて所定演算を実行することによって基準位置を設定する基準位置設定ステップを含み、
前記基準位置設定ステップによって設定された基準位置から前記移動体オブジェクトの現在位置までの直線と、前記複数の挙動制御用オブジェクトと、が交わるか否かを判定することによって、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する、
ことを特徴とする画像処理装置の制御方法。
【請求項７】
移動体オブジェクトと、前記移動体オブジェクトが衝突した場合に変形する被衝突オブジェクトと、を仮想３次元空間に配置し、前記移動体オブジェクトが前記被衝突オブジェクトに衝突する様子を表す画像を表示する画像処理装置としてコンピュータを機能させるためのプログラムであって、
前記被衝突オブジェクトの、前記移動体オブジェクトによって衝突される面の背面側の空間に配置される複数の挙動制御用オブジェクトの各々に対応づけて、前記被衝突オブジェクトによって前記移動体オブジェクトに加えられる力による前記移動体オブジェクトの加速度ベクトルを特定するための加速度ベクトル情報を記憶する加速度ベクトル情報記憶手段、
前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する判定手段、及び、
前記移動体オブジェクトが前記複数の挙動制御用オブジェクトのうちの少なくとも一つに接触したと判定された場合、該少なくとも一つの挙動制御用オブジェクトに対応づけられた加速度ベクトル情報によって特定される加速度ベクトルに基づいて、前記移動体オブジェクトの挙動を制御する移動体オブジェクト挙動制御手段、
として前記コンピュータを機能させ、
前記判定手段は、
前記移動体オブジェクトの現在位置に基づいて所定演算を実行することによって基準位置を設定する基準位置設定手段を含み、
前記基準位置設定手段によって設定された基準位置から前記移動体オブジェクトの現在位置までの直線と、前記複数の挙動制御用オブジェクトと、が交わるか否かを判定することによって、前記移動体オブジェクトと、前記複数の挙動制御用オブジェクトと、が接触したか否かを判定する、
ことを特徴とするプログラム。