(57)【要約】【課題】柔軟な物体に衝突した別の物体の挙動を少ない計算量でより正確に再現することができる画像生成装置、方法およびプログラムを提供すること。【解決手段】ゲーム空間演算部４３内のボール計算部４４は、サッカーゴールのネットにボールが衝突したときにネットからボールに反力が作用する反力エリアを設定し、この反力エリアから作用する力に基づいてボールの挙動を計算する。画像処理部５０は、ボール計算部４４によって挙動が計算されたボールに対応する画像を生成する。画像処理部５０によって生成されたボールの画像がディスプレイ装置２０の画面に表示される。【選択図】        図１
2004321551.tif 000002
【特許請求の範囲】
【請求項１】
柔軟性のある第１の物体に衝突した第２の物体の挙動を計算して前記第２の物体の画像を表示する画像生成装置であって、
前記第２の物体が前記第１の物体に衝突したときに前記第１の物体から前記第２の物体に反力が作用する反力エリアを設定し、この反力エリアから作用する力に基づいて前記第２の物体の挙動を計算する挙動計算手段と、
前記挙動計算手段によって挙動が計算された前記第２の物体に対応する画像を生成する画像生成手段と、
前記画像生成手段によって生成された画像を画面に表示する画像表示手段と、
を備えることを特徴とする画像生成装置。
【請求項２】
請求項１において、
前記挙動計算手段は、前記反力によって生じる前記第２の物体の加速度を計算した後、この加速度を考慮した前記第２の物体の速度および位置を計算することを特徴とする画像生成装置。
【請求項３】
請求項２において、
前記加速度には、前記反力エリア内に前記第２の物体が進入したときに第１の物体が前記第２の物体を押し戻す力による成分が含まれていることを特徴とする画像生成装置。
【請求項４】
請求項２において、
前記加速度には、前記反力エリア内に前記第２の物体が進入したときに生じる前記第２の物体の速度の減衰を示す成分が含まれていることを特徴とする画像生成装置。
【請求項５】
請求項２において、
前記加速度には、前記反力エリア内に前記第２の物体が進入したときに前記第１の物体と前記第２の物体との間の摩擦による成分が含まれていることを特徴とする画像生成装置。
【請求項６】
請求項２において、
前記加速度には、前記第１の物体の縁から所定範囲に対応する前記反力エリア内に前記第２の物体が進入したときに、前記第２の物体が前記第１の物体に沿って移動する成分が含まれていることを特徴とする画像生成装置。
【請求項７】
請求項１〜６のいずれかにおいて、
前記反力エリアは、前記第１の物体を構成する面に対し片側であって、前記第２の物体の反衝突側に設定されていることを特徴とする画像生成装置。
【請求項８】
請求項１〜６のいずれかにおいて、
前記反力エリアは、前記第１の物体が前記第２の物体と衝突する可能性のある範囲およびこの衝突によって前記第１の物体が変形する可能性のある範囲を含むように設定されていることを特徴とする画像生成装置。
【請求項９】
請求項１〜８のいずれかにおいて、
前記第１の物体が２以上の面を折り曲げた形状を有しているときに、それぞれの面に対応して複数の前記反力エリアが設定されていることを特徴とする画像生成装置。
【請求項１０】
請求項９において、
複数の前記反力エリアは、一部が互いに重複して設定されており、
前記挙動計算手段は、前記第２の物体が複数の前記反力エリアの重複領域に進入したときに、複数の前記反力エリアから作用する反力を用いて前記第２の物体の挙動を計算することを特徴とする画像生成装置。
【請求項１１】
請求項９において、
複数の前記反力エリアは、一部が互いに重複して設定されており、
前記挙動計算手段は、前記第２の物体が複数の前記反力エリアの重複領域に進入したときであって、前記第１の物体の１８０度を超える折り曲げ部から進入したときに、前記第２の物体が最初に衝突した面に対応して設定された前記反力エリアから作用する反力のみを用いて前記第２の物体の挙動を計算することを特徴とする画像生成装置。
【請求項１２】
請求項１〜１１のいずれかにおいて、
前記第１の物体の縁が固定されている場合に、縁から所定範囲内にある前記第１の物体に前記第２の物体が衝突したときに、前記第１の物体の延在する向きであって前記第２の物体の反衝突側に前記第２の物体に対して反力を作用させる挙動修正用反力エリアがさらに設定されており、
前記挙動計算手段は、前記第２の物体が前記反力エリアと前記挙動修正用反力エリアの重複領域に進入したときに、前記反力エリアと前記挙動修正用反力エリアの両方から作用する反力を用いて前記第２の物体の挙動を計算することを特徴とする画像生成装置。
【請求項１３】
柔軟性のある第１の物体に第２の物体が衝突したときに前記第１の物体から前記第２の物体に反力が作用する反力エリアを設定し、この反力エリアから作用する力に基づいて前記第２の物体の挙動を計算する挙動計算手段と、前記挙動計算手段によって挙動が計算された前記第２の物体に対応する画像を生成する画像生成手段と、前記画像生成手段によって生成された画像を画面に表示する画面表示手段とを備える画像生成装置の画像生成方法であって、
前記第２の物体の挙動を前記挙動計算手段によって計算するステップと、
前記挙動計算手段によって挙動が計算された前記第２の物体に対応する画像を、前記画像生成手段によって生成するステップと、
前記画像生成手段によって生成された画像を、前記画像表示手段によって前記画面に表示するステップと、
を有することを特徴とする画像生成方法。
【請求項１４】
請求項１３において、
前記挙動計算手段による前記第２の物体の挙動計算は、前記反力によって生じる前記第２の物体の加速度を計算した後、この加速度を考慮した前記第２の物体の速度および位置を計算することにより行われることを特徴とする画像生成方法。
【請求項１５】
請求項１３または１４において、
前記反力エリアは、前記第１の物体を構成する面に対し片側であって、前記第２の物体の反衝突側に設定されていることを特徴とする画像生成方法。
【請求項１６】
請求項１３または１４において、
前記反力エリアは、前記第１の物体が前記第２の物体と衝突する可能性のある範囲およびこの衝突によって前記第２の物体が変形する可能性のある範囲を含むように設定されていることを特徴とする画像生成方法。
【請求項１７】
請求項１３〜１６のいずれかにおいて、
前記第１の物体が２以上の面を折り曲げた形状を有しているときに、それぞれの面に対応して設定された複数の前記反力エリアが設定されていることを特徴とする画像生成方法。
【請求項１８】
請求項１７において、
複数の前記反力エリアは、一部が互いに重複して設定されており、
前記挙動計算手段は、前記第２の物体が複数の前記反力エリアの重複領域に進入したときに、複数の前記反力エリアから作用する反力を用いて前記第２の物体の挙動を計算することを特徴とする画像生成方法。
【請求項１９】
柔軟性のある第１の物体に衝突した第２の物体の挙動を計算して前記第２の物体の画像を表示するためにコンピュータを、
前記第２の物体が前記第１の物体に衝突したときに前記第１の物体から前記第２の物体に反力が作用する反力エリアを設定し、この反力エリアから作用する力に基づいて前記第２の物体の挙動を計算する挙動計算手段と、
前記挙動計算手段によって挙動が計算された前記第２の物体に対応する画像を生成する画像生成手段と、
前記画像生成手段によって生成された画像を画面に表示する画像表示手段と、
して機能させるための画像生成プログラム。
【請求項２０】
請求項１９において、
前記挙動計算手段に、前記反力によって生じる前記第２の物体の加速度を計算させた後、この加速度を考慮した前記第２の物体の速度および位置を計算させる画像生成プログラム。
【請求項２１】
請求項１９または２０において、
前記反力エリアは、前記第１の物体を構成する面に対し片側であって、前記第２の物体の反衝突側に設定されている画像生成プログラム。
【請求項２２】
請求項１９または２０において、
前記反力エリアは、前記第１の物体が前記第２の物体と衝突する可能性のある範囲およびこの衝突によって前記第２の物体が変形する可能性のある範囲を含むように設定されている画像生成プログラム。
【請求項２３】
請求項１９〜２２のいずれかにおいて、
前記第１の物体が２以上の面を折り曲げた形状を有しているときに、それぞれの面に対応して設定された複数の前記反力エリアが設定されている画像生成プログラム。
【請求項２４】
請求項２３において、
複数の前記反力エリアは、一部が互いに重複して設定されており、
前記挙動計算手段に、前記第２の物体が複数の前記反力エリアの重複領域に進入したときに、複数の前記反力エリアから作用する反力を用いて前記第２の物体の挙動を計算させる画像生成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サッカーのゴールネットのように柔軟性のあるシート状の物体にボール等の他の物体が衝突した際の挙動を表す画像を生成する画像生成装置、方法およびプログラムに関する。
【０００２】
【従来の技術】
従来から、布や膜等の柔軟な材質の物体の全面に設置した質点の位置座標を、固定された部分を基準にして順番に計算することにより、布等の被表示体の自然な動きを表現する画像生成装置が知られている（例えば、特許文献１参照。）。この画像生成装置では、質点に作用する影響力を計算した後、隣接する質点間の距離が所定の距離を超えるときに質点の位置調整を行ったり、隣接する質点間の距離が所定位置に納まるように質点の位置調整を行っている。
【０００３】
【特許文献１】
国際公開第ＷＯ９７／３１３３８号パンフレット（第１２−２４頁、図１−１２）
【０００４】
【発明が解決しようとする課題】
ところで、上述した特許文献１に開示された画像生成装置では、柔軟な物体の全面に設置された各質点に作用する影響力が計算されるため、この影響力に他の物体から作用する力を含めることにより、別の物体と各質点との間の相互作用を計算して、別の物体の挙動を再現することができる。例えば、サッカーのゴールネットにボールが衝突した際のボールの挙動を計算することが可能になる。しかし、実際には、ボールに接触する質点が多数存在する場合には、質点からボールに作用する力を個別に計算して加算すると、計算量が増大し、処理も複雑になるという問題があった。このため、柔軟な物体に衝突した別の物体の挙動を少ない計算量で求めることができ、しかもその挙動を正確に表現することができる手法が求められていた。
【０００５】
本発明は、このような点に鑑みて創作されたものであり、その目的は、柔軟な物体に衝突した別の物体の挙動を少ない計算量でより正確に再現することができる画像生成装置、方法およびプログラムを提供することにある。
【０００６】
【課題を解決するための手段】
上述した課題を解決するために、本発明の画像生成装置は、柔軟性のある第１の物体に衝突した第２の物体の挙動を計算して第２の物体の画像を表示するものであって、第２の物体が第１の物体に衝突したときに第１の物体から第２の物体に反力が作用する反力エリアを設定し、この反力エリアから作用する力に基づいて第２の物体の挙動を計算する挙動計算手段と、挙動計算手段によって挙動が計算された第２の物体に対応する画像を生成する画像生成手段と、画像生成手段によって生成された画像を画面に表示する画像表示手段とを備えている。
【０００７】
また、本発明の画像生成方法は、柔軟性のある第１の物体に第２の物体が衝突したときに第１の物体から第２の物体に反力が作用する反力エリアを設定し、この反力エリアから作用する力に基づいて第２の物体の挙動を計算する挙動計算手段と、挙動計算手段によって挙動が計算された第２の物体に対応する画像を生成する画像生成手段と、画像生成手段によって生成された画像を画面に表示する画面表示手段とを備える画像生成装置の画像生成方法であって、第２の物体の挙動を挙動計算手段によって計算するステップと、挙動計算手段によって挙動が計算された第２の物体に対応する画像を、画像生成手段によって生成するステップと、画像生成手段によって生成された画像を、画像表示手段によって画面に表示するステップとを有している。
【０００８】
また、本発明の画像生成プログラムは、柔軟性のある第１の物体に衝突した第２の物体の挙動を計算して第２の物体の画像を表示するためにコンピュータを、第２の物体が第１の物体に衝突したときに第１の物体から第２の物体に反力が作用する反力エリアを設定し、この反力エリアから作用する力に基づいて第２の物体の挙動を計算する挙動計算手段と、挙動計算手段によって挙動が計算された第２の物体に対応する画像を生成する画像生成手段と、画像生成手段によって生成された画像を画面に表示する画像表示手段として機能させる。
【０００９】
柔軟性のある第１の物体に第２の物体が衝突した場合には、第１の物体がほぼ均一なものであれば、第１の物体から第２の物体に対して所定の反力が作用すると考えられる。したがって、この反力が作用する領域を反力エリアとして設定して所定の反力を第２の物体に作用させることにより、複雑な計算を行うことなく少ない計算量で第２の物体の挙動をより正確に再現することができる。
【００１０】
また、上述した挙動計算手段は、反力によって生じる第２の物体の加速度を計算した後、この加速度を考慮した第２の物体の速度および位置を計算することが望ましい。このような計算を行うことにより、反力エリアから第２の物体に作用する反力の設定が適切であれば、この反力によって生じる第２の物体の挙動をより正確に再現することが可能になる。
【００１１】
また、上述した加速度には、反力エリア内に第２の物体が進入したときに生じる第１の物体が第２の物体を押し戻す力による成分が含まれていることが望ましい。一般に、ネット等の柔軟性のある第１の物体にボール等の第２の物体が衝突した場合、第１の物体が変形して発生する反力によって第２の物体が押し戻される。したがって、第２の物体に生じる加速度にこのような押し戻す力の成分を含ませることにより、衝突時のより正確な挙動を再現することが可能になる。
【００１２】
また、上述した加速度には、反力エリア内に第２の物体が進入したときに生じる第２の物体の速度の減衰を示す成分が含まれていることが望ましい。一般に、第２の物体が第１の物体に衝突すると、衝突時に第２の物体の速度が減衰する。したがって、第２の物体に生じる加速度にこのような速度の減衰成分を含ませることにより、衝突時のより正確な挙動を再現することが可能になる。
【００１３】
また、上述した加速度には、反力エリア内に第２の物体が進入したときに生じる第１の物体と第２の物体との間の摩擦による成分が含まれていることが望ましい。一般に、第２の物体が第１の物体に衝突すると、これらの間の摩擦力が第２の物体に作用する。したがって、第２の物体に生じる加速度にこのような摩擦力成分を含ませることにより、衝突時のより正確な挙動を再現することが可能になる。
【００１４】
また、上述した加速度には、第１の物体の縁から所定範囲に対応する反力エリア内に第２の物体が進入したときに、第２の物体が第１の物体に沿って移動する成分が含まれていることが望ましい。第２の物体が第１の物体に衝突したときに第１の物体が凹形状に変形する場合には、この凹形状に沿って第２の物体が移動することがある。したがって、このような場合に、第２の物体に生じる加速度に第２の物体が第１の物体に沿って移動する成分を含ませることにより、衝突時のより正確な挙動を再現することが可能になる。
【００１５】
また、上述した反力エリアは、第１の物体を構成する面に対し片側であって、第２の物体の反衝突側に設定されていることが望ましい。これにより、第２の物体が第１の物体に衝突した後に反力を受けることによって生じる挙動をより正確に再現することが可能になる。
【００１６】
また、上述した反力エリアは、第１の物体が第２の物体と衝突する可能性のある範囲およびこの衝突によって第１の物体が変形する可能性のある範囲を含むように設定されていることが望ましい。これにより、第２の物体が第１の物体から反力を受ける範囲を反力エリアとして設定することが可能になり、第２の物体が第１の物体に衝突した際の挙動をより正確に再現することができる。
【００１７】
また、上述した第１の物体が２以上の面を折り曲げた形状を有しているときに、それぞれの面に対応して複数の反力エリアが設定されていることが望ましい。第１の物体が複数の面を有する場合にそれぞれの面毎に反力エリアを設定することにより、衝突した面に対応させて第２の物体の挙動を計算することが可能になり、複雑な形状を有する第１の物体に第２の物体が衝突した場合の挙動をより正確に再現することが可能になる。
【００１８】
また、上述した反力エリアは、一部が互いに重複して設定されており、挙動計算手段は、第２の物体が複数の反力エリアの重複領域に進入したときに、複数の反力エリアから作用する反力を用いて第２の物体の挙動を計算することが望ましい。これにより、第１の物体の複数の面が交差する近傍に第２の物体が衝突した際の複雑な挙動を再現することが可能になる。
【００１９】
また、上述した複数の反力エリアは、一部が互いに重複して設定されており、挙動計算手段は、第２の物体が複数の反力エリアの重複領域に進入したときであって、第１の物体の１８０度を超える折り曲げ部から進入したときに、第２の物体が最初に衝突した面に対応して設定された反力エリアから作用する反力のみを用いて第２の物体の挙動を計算することが望ましい。これにより、第１の物体が連結した複数の面から構成され、その交差部の凸側から第２の物体が衝突した際のより正確な挙動を再現することが可能になる。
【００２０】
また、上述した第１の物体の縁が固定されている場合に、縁から所定範囲内にある第１の物体に第２の物体が衝突したときに、第１の物体の延在する向きであって第２の物体の反衝突側に第２の物体に対して反力を作用させる挙動修正用反力エリアがさらに設定されており、挙動計算手段は、第２の物体が反力エリアと挙動修正用反力エリアの重複領域に進入したときに、反力エリアと挙動修正用反力エリアの両方から作用する反力を用いて第２の物体の挙動を計算することが望ましい。これにより、第１の物体が棒状部材に拘束されており、第２の物体が衝突した際の挙動をより正確に再現することができる。
【００２１】
【発明の実施の形態】
以下、本発明を適用した一実施形態のサッカーゲーム装置について、図面を参照しながら詳細に説明する。
図１は、一実施形態のサッカーゲーム装置の構成を示す図である。また、図２は本実施形態のゲーム装置の外観斜視図である。
【００２２】
図１および図２に示すように、本実施形態のサッカーゲーム装置は、入力装置１０、ディスプレイ装置２０、コイン投入部３０、スタートボタン３２、ゲーム演算部４０、画像処理部５０、スピーカ７２、情報記録媒体８０を含んで構成されている。このサッカーゲーム装置は、一般的なコンピュータとしての構成であるＣＰＵ、ＲＯＭ、ＲＡＭ等を含んで構成されている。
【００２３】
入力装置１０は、図２に示すように、任意方向に傾斜させることによりその傾斜方向に対応したプレーヤキャラクタの移動方向を指示したり、メニュー選択時のカーソル移動等を指示するために用いられるジョイスティック１２と、プレーヤキャラクタの動作を決定したり、各種の操作内容を確定するために用いられる複数（例えば３つ）の押しボタンスイッチ１４とを有している。複数の押しボタンスイッチ１４を使い分けることにより、プレーヤはプレーヤキャラクタにボールを蹴らせたり、ボールをドリブルしたりする操作指示を行うことが可能になる。
【００２４】
ディスプレイ装置２０は、入力される映像信号に基づいてゲーム画像を画面上に表示する。例えば、このディスプレイ装置２０は、ＣＲＴ（陰極線管）により構成されており、１秒間に６０フレームのゲーム画像が表示される。
コイン投入部３０は、プレーヤがコインを挿入する部分である。また、スタートボタン３２は、プレーヤがサッカーゲームの開始を指示するためのものである。
【００２５】
ゲーム演算部４０は、サッカーゲーム装置全体の制御を行っており、プレーヤによってコイン投入部３０にコインが投入され、さらにスタートボタン３２が押下されると、所定のゲームプログラムを実行することにより、入力装置１０を用いたプレーヤの操作に応じたサッカーゲームの演算処理を開始する。また、ゲーム演算部４０は、ゲームオーバーになったか否かを判定する。例えば、ゲーム演算部４０は、ゲーム演算を開始してからの経過時間を測定しており、ゲーム開始から所定時間が経過したときにゲームオーバーになったものと判定する。ゲームオーバーになった場合には、ゲーム演算部４０は、一連のサッカーゲームの演算処理を終了する。ゲーム演算部４０の詳細構成および動作については後述する。
【００２６】
画像処理部５０は、ゲーム演算部４０による演算結果（三次元オブジェクトを構成する各ポリゴンの頂点座標）が入力され、仮想的な三次元ゲーム空間に配置された三次元オブジェクトを所定の視点位置から見た二次元画像を生成する処理を行う。この画像処理部５０は、透視投影変換処理部５２とテクスチャマッピング処理部５４を備えている。透視投影変換処理部５２は、プレーヤによる操作内容に応じて設定された仮想的な視点位置に基づいて、三次元ゲーム空間内に配置されたポリゴンによって表された三次元オブジェクトを二次元平面上に投影する処理を行う。テクスチャマッピング処理部５４は、透視投影変換によって二次元平面上の頂点位置が計算された各ポリゴンに対して、その内部をテクスチャデータで貼り付ける処理（テクスチャマッピング処理）を行う。このようにして画像処理部５０によって二次元のゲーム画像が得られる。
【００２７】
情報記録媒体８０は、ゲーム演算部４０や画像処理部５０等において実行されるプログラム（画像生成プログラム）、表示用の画像データ、効果音発生用の音声データ等が主に格納されるものである。例えば、半導体メモリやハードディスク装置等が用いられる。あるいは、ＤＶＤやＣＤを情報記録媒体８０として用い、これらを読み取り装置（図示せず）によって読み取ったプログラムをゲーム演算部４０に入力するようにしてもよい。
【００２８】
また、図１に示したゲーム演算部４０は、入力判定部４１、イベント処理部４２、ゲーム空間演算部４３、効果音生成部４６を含んで構成されている。
入力判定部４１は、プレーヤによる入力装置１０、コイン投入部３０、スタートボタン３２の各操作内容を判定する。例えば、コイン投入部３０に対するコイン投入の有無や、コインが投入された直後におけるスタートボタン３２の押下の有無、あるいは入力装置１０に含まれるジョイスティック１２や押しボタンスイッチ１４の操作内容が判定される。入力判定部４１は、入力装置１０に含まれるジョイスティック１２等の操作内容を判定すると、この判定した操作内容に応じた信号をイベント処理部４２に入力する。
【００２９】
イベント処理部４２は、入力判定部４１によって判定された入力装置１０の操作内容に基づいて、各種イベントの発生やゲームの進行状況に対応した分岐判断などのサッカーゲームの進行に必要な処理を行う。
ゲーム空間演算部４３は、仮想的な三次元ゲーム空間内に存在する各種の三次元オブジェクトの挙動を計算する。本実施形態のサッカーゲームでは、プレーヤが操作するキャラクタ（プレーヤキャラクタ）やその他の味方チームあるいは敵チームのキャラクタ、ボール、ゴールに張られたネット等が三次元オブジェクトとして形成されている。また、各三次元オブジェクトは複数のポリゴンによって構成されており、ゲーム空間演算部４３は、三次元オブジェクトを構成する各ポリゴンの頂点座標を計算することにより、各三次元オブジェクトの挙動を所定の時間間隔で計算する。
【００３０】
ゲーム空間演算部４３は、ボール計算部４４とネット計算部４５を有している。ボール計算部４４は、ボールの挙動をフレームの表示間隔よりも短い時間間隔で計算する。例えば、１フレームに対応してボールの挙動を４回計算する。上述したように、１フレームの表示間隔が１／６０秒の場合には、その１／４である１／２４０秒毎にボールの挙動が計算される。
【００３１】
また、ネット計算部４５は、ネットの挙動をフレームの表示間隔よりも短い時間間隔で計算する。例えば、１フレームに対してネットの挙動を２回計算する。１フレームの表示間隔が１／６０秒の場合には、その１／２である１／１２０秒毎にネットの挙動が計算される。
【００３２】
このようにして、ゲーム空間演算部４３によって各三次元オブジェクトの挙動が計算されると、画像処理部５０によって各三次元オブジェクトを構成するポリゴンを用いた透視投影変換処理およびテクスチャマッピング処理が行われ、フレーム毎のゲーム画像が生成される。
【００３３】
上述したサッカーゴールのネットが柔軟性のある第１の物体に、ボールが第２の物体に対応する。また、ボール計算部４４が挙動計算手段に、画像処理部５０が画像生成手段に、ディスプレイ装置２０が画像表示手段にそれぞれ対応する。本実施形態のサッカーゲーム装置はこのような構成を有しており、次に、ボールおよびネットの挙動を計算するゲーム演算部４０の動作を説明する。
【００３４】
上述したように、ボールの挙動計算はゲーム空間演算部４３内のボール計算部４４によって行われ、ネットの挙動計算はゲーム空間演算部４３内のネット計算部４５によって行われる。以下では、これらの各計算について場合を分けて説明する。
【００３５】
（１）ボールの衝突挙動
まず、プレーヤキャラクタやその他の味方チームあるいは敵チームの各キャラクタによって蹴られたボールがゴールのネットに衝突する際の衝突挙動の詳細について説明する。
【００３６】
本実施形態では、ネットと衝突した際のボールの挙動計算に際しては、実際にネットから受ける反力を計算するのではなく、以下に詳細を示す「反力エリアモデル」を使って計算を行った。この反力エリアモデルとは、ボールが所定の空間領域（反力エリア）に進入すると、その位置や速度に応じて空間から力を受け、速度を変えるというものである。
【００３７】
このモデルでは、ネットとボールの干渉作用による複雑な計算処理を行うことなく、あたかも、ネットとボールの相互作用によるボールの挙動をシミュレートすることが可能である。また、ボールに加わる反力の設定が適切であれば、ボールは必ず衝突側（サッカーゴールの内側から衝突した場合には内側、外側から衝突した場合には外側）に戻ってくる。
【００３８】
図３は、本実施形態のサッカーゲームにおいて用いられるゴールの概要を示す図である。図３に示すように、ゴールは、左右２本のゴールポストＧＰ１、ＧＰ２と、これらの上端を連結するように取り付けられるクロスバーＣＢと、左側面Ａ、右側面Ｂ、上面Ｃ、正面Ｄからなるネットとを含んで構成されている。
【００３９】
図４は、ネットの正面Ｄに向かって内側（正面側）からボールＢＯが飛んでくる場合の反力エリアモデルの説明図である。ゴールポストＧＰ１、ＧＰ２のネット側端部を結んだ線上のほぼ中央であって地面の位置を原点Ｏとする。また、正面側からゴールを見たときに、原点Ｏから水平方向右側にｘ軸正方向を、鉛直方向上側にｙ軸正方向を、水平方向手前側にｚ方向正方向を設定するものとする。
【００４０】
（１−１）正面Ｄにおけるボールの挙動
ゴールポストＧＰ１、ＧＰ２の間を通るようにネットの正面Ｄに向かってボールＢＯが飛んできたときの反力エリアモデルは、ｚ軸方向の基準位置の境界面からｚ軸負方向に向かう所定範囲が反力エリアとして設定される。基準位置は、ネットの正面Ｄから力を受ける可能性のある範囲が考慮される。例えば、図４に示すように、ネットが揺れ動く場合を想定して、ネットの正面Ｄが自重で垂下した状態よりも若干手前（ｚ軸正方向）側に基準位置が設定されている。また、反力エリアに進入したボールＢＯの基準位置からの進入深さをｄ１とする。なお、この基準位置は、ネットの正面Ｄが自重で垂下した位置としてもよい。
【００４１】
図５は、ボールの衝突挙動を計算するボール計算部４４の動作手順を示す流れ図である。ボールの位置のｙ座標をＰｙ  、速度ベクトルをＶ、角速度ベクトルをＲとする。また、反力エリアの境界面（ｄ１＝０の基準位置）の法線ベクトルをＮとする（侵入深さ方向と反対方向を正とする）。
【００４２】
ステップ１００：まず、ボール計算部４４は、以下の式を用いてボールの加速度ａを計算する。
2004321551.tif 000003
右辺第１項（Ｋ１ｄ１２Ｎ）は、ネットがボールを押し戻す力によるボールの加速度成分を表している。Ｋ１は押し戻す強さを表す係数である。
【００４３】
右辺第２項（Ｋ２ｄ１２｜Ｖ・Ｎ｜Ｎ）は、境界面に対して垂直方向のボール速度の減衰に対応する成分を表している。Ｋ２は減衰の強さを表す係数であり、速度ベクトルＶの方向によって次のように値が変わる。
Ｋ２＝Ｋ２ａ        （Ｖ・Ｎ≧０の場合）
Ｋ２＝Ｋ２ｂ        （Ｖ・Ｎ＜０の場合）
右辺第３項（Ｋ３ｄ１２（Ｖ−｜Ｖ・Ｎ｜Ｎ））は、境界面に対して平行方向のボールの減衰に対応する成分を表している。Ｋ３は減衰の強さを示す係数である。
【００４４】
右辺第４項（Ｋ４Ｋ１ｄ１２（１−Ｐｙ／Ｈ１）２）は、ボールの巻き上がりの加速度成分を表している。Ｈ１はネット高さの１／２であり、Ｋ４は巻き上がりの強さを表す係数である。但し、Ｐｙ／Ｈ１≧１の場合はＫ４＝０とする。また、Ｖ・Ｎ≧０の場合もＫ４＝０とする。なお、「ボールの巻き上がり」とは、ボールが低い位置でネットに当たった際に、ネットが登り斜面のように働いて、ボールがネットを登るように動く現象をいう。
【００４５】
右辺第５項（Ｋ５Ｋ１ｄ１２（ｒ（Ｒ×Ｎ）−Ｖ）／｜ｒ（Ｒ×Ｎ）−Ｖ｜）は、ボールとネットとの摩擦による加速度成分を表している。Ｋ５はボールとネットとの間の摩擦係数を表す。ｒはボールの半径である。
右辺第６項（Ｇ）は、重力加速度ベクトルである。
【００４６】
ステップ１０１：次に、ボール計算部４４は、以下の式を用いてボールの速度を計算する。
Ｖ’＝Ｖ＋ａｔ１                                            …（２）
この（２）式において、Ｖ’は計算しようとする新しいボールの速度である。Ｖは前回のボールの挙動計算において計算されたボールの速度である。ｔ１はボールの挙動計算の繰り返し間隔であり、本実施形態ではｔ１＝１／２４０秒である。
【００４７】
ステップ１０２：次に、ボール計算部４４は、以下の式を用いてボールの位置を計算する。
Ｐ’＝Ｐ＋Ｖ’ｔ１                                            …（３）
この（３）式において、Ｐ’は計算しようとする新しいボールの位置である。Ｐは前回のボールの挙動計算において計算されたボールの位置である。
【００４８】
このようにして、ｔ１（＝１／２４０秒）毎にボールの位置が計算される。
（１−２）左側面Ａ、右側面Ｂにおけるボールの挙動
正面Ｄ以外の面に向かってボールが飛んできた場合も、ボールはそれぞれの面から力を受けるため、正面Ｄと同様の反力エリアを設定することにより、図５に示した手順に従ってボールの挙動を計算することができる。
【００４９】
図６は、ネットの左側面Ａあるいは右側面Ｂにボールが飛んできた場合の反力エリアモデルの説明図である。
ゴールポストＧＰ１、ＧＰ２の間を通るようにネットの左側面Ａに向かってボールが飛んできたときの反力エリアモデルは、ｘ軸方向の基準位置の境界面からｘ軸負方向に向かう所定範囲が反力エリアとして設定される。また、反力エリアに進入したボールの基準位置からの進入深さをａ１とする。
【００５０】
左側面Ａに対応する反力エリアにボールが進入した場合の挙動は、図５に示した手順にしたがって、ボールの加速度計算（ステップ１００）、ボールの速度計算（ステップ１０１）、ボールの位置計算（ステップ１０２）を行うことにより求めることができる。但し、（１）式の右辺各項に含まれるボールの進入深さｄ１をａ１に置き換えて加速度ａが計算される。
【００５１】
また、右側面Ｂについても同様である。すなわち、右側面Ｂに対応する反力エリアにボールが進入した場合の挙動も、図５に示した手順にしたがって、ボールの加速度計算（ステップ１００）、ボールの速度計算（ステップ１０１）、ボールの位置計算（ステップ１０２）を行うことにより求めることができる。但し、（１）式の右辺各項に含まれるボールの進入深さｄ１を、右側面Ｂに対応して設定された反力エリアに進入したボールの基準位置からの進入深さｂ１に置き換えて加速度ａが計算される。
【００５２】
（１−３）上面Ｃにおけるボールの挙動
図７は、ネットの上面Ｃに向かってボールが飛んできた場合の反力エリアモデルの説明図である。
ゴールポストＧＰ１、ＧＰ２の間およびクロスバーＣＢの下側を通るようにネットの上面Ｃに向かってボールが飛んできたときの反力エリアモデルは、ｙ軸方向の基準位置の境界面からｙ軸正方向に向かう所定範囲が反力エリアとして設定される。また、反力エリアに進入したボールの基準位置からの進入深さをｃ１とする。
【００５３】
上面Ｃに対応する反力エリアにボールが進入した場合の挙動も、基本的には図５に示した手順にしたがって、ボールの加速度計算（ステップ１００）、ボールの速度計算（ステップ１０１）、ボールの位置計算（ステップ１０２）を行うことにより求めることができる。
【００５４】
但し、（１）式の右辺各項に含まれるボールの進入深さｄ１をｃ１に置き換えて加速度ａが計算される。また、上面Ｃの場合にはボールの巻き上がりがないので、（１）式の右辺第４項（Ｋ４Ｋ１ｄ１２（１−Ｐｙ／Ｈ１）２）は省略されてボールの加速度計算が行われる。
【００５５】
（１−４）反力エリアの重複
図８は、正面Ｄと左側面Ａの境界近傍のゴールの隅に向けてボールが飛んでいく場合のボールの挙動を示す図である。図８に示すように、ゴールの隅に向けてボールＢＯが蹴られた場合には、ボールは正面Ｄから左側面Ａに回り込むように移動する。このような反力エリアが重複する位置におけるボールの挙動は、図４に示す正面Ｄの反力エリアから受ける力と図６に示す左側面Ａの反力エリアから受ける力を同時にボールに作用させればよい。すなわち、（１）式を用いて図４に示す正面Ｄの反力エリアにおけるボールの加速度と、（１）式を用いて図６に示す左側面Ａの反力エリアにおけるボールの加速度とを別々に計算した後合成し、この合成した加速度を用いてボールの速度およびボールの位置を計算することにより、ゴールの隅にボールが蹴られた場合の自然な挙動を再現することが可能になる。
【００５６】
（１−５）ゴールポスト、クロスバー近傍でのボールの挙動
ゴール内に蹴りこまれたボールが、正面Ｄの反力エリアから受ける力によって、ゴールポストＧＰ１近傍の左側面ＡやゴールポストＧＰ２近傍の右側面Ｂまで戻される場合が考えられる。
【００５７】
図９は、正面ＤからゴールポストＧＰ１近傍の左側面Ａに向けてボールが戻された場合のボールの挙動を示す図である。図９に示すように、正面ＤからＰ１方向にボールが移動すると、図６に示した左側面Ａに対応する反力エリアからボールＢＯが力を受けて、Ｐ３方向にボールが戻される。しかし、実際にはゴールポストＧＰ１があるため、Ｐ３方向にはボールＢＯは戻らず、Ｐ１方向に対して逆方向に近いＰ２方向にボールＢＯが移動するようにする必要がある。この点については、正面Ｄから上面Ｃに向かってボールが戻された場合も同様である。
【００５８】
このため、本実施形態では、正面ＤからゴールポストＧＰ１、ＧＰ２近傍の左側面Ａや右側面ＢあるいはクロスバーＣＢ近傍の上面Ｃにボールが戻されたときに、このボールを飛んできた方向に押し戻すために、特別な反力エリア（挙動修正用反力エリア）を設定している。
【００５９】
図１０は、ゴールポストＧＰ１、ＧＰ２の近傍に飛んだボールを押し戻す場合の反力エリアモデルの説明図である。
正面ＤからゴールポストＧＰ１近傍の左側面Ａに向かってボールが飛んでいった場合の反力エリアモデルは、左側面Ａよりも外側であって、ｚ軸方向の基準位置の境界面からｚ軸正方向に向かう所定範囲が反力エリアとして設定されている。また、反力エリアに進入したボールの基準位置からの進入深さをｅ１とする。
【００６０】
このようにして設定された反力エリアは、図６に示した左側面Ａに対応する反力エリアと部分的に重複する。したがって、図１０に示した左側面Ａに対応する反力エリア内に進入したボールは、この反力エリアと図６に示した左側面Ａに対応する反力エリアの両方から力を受けることになる。このような反力エリアの重複については、図８に示したゴールの隅にボールが進入した場合と同様であり、２つの反力エリアから受ける力を考慮してボールの加速度を合成した後、この合成された加速度を用いてボールの速度およびボールの位置を計算することにより、図９に示すＰ２方向にボールＢＯを移動させることが可能になり、ゴールポストＧＰ１近傍にボールが飛んだ場合の自然な挙動を再現することが可能になる。
【００６１】
なお、上述した説明では、正面ＤからゴールポストＧＰ１近傍の左側面Ａに向かってボールが飛んでいった場合の反力エリアモデルを考えたが、正面ＤからゴールポストＧＰ２近傍の右側面Ｂに向かってボールが飛んでいった場合の反力モデルも同様である。
【００６２】
図１１は、クロスバーＣＢの近傍に飛んできたボールを押し戻す場合の挙動修正用反力エリアモデルの説明図である。
正面ＤからクロスバーＣＢ近傍の上面Ｃに向かってボールが飛んできた場合の反力エリアモデルは、上面Ｃよりも上側であって、ｚ軸方向の基準位置の境界面からｚ軸正方向に向かう所定範囲が反力エリアとして設定されている。また、反力エリアに進入したボールの基準位置からの進入深さをｅ３とする。
【００６３】
このようにして設定された反力エリアは、図７に示した上面Ｃに対応する反力エリアと部分的に重複する。したがって、図１１に示した上面Ｃに対応する反力エリア内に進入したボールは、この反力エリアと図７に示した上面Ｃに対応する反力エリアの両方から力を受けることになる。このような反力エリアの重複については、図１０に示したゴールポストＧＰ１、ＧＰ２近傍に反力エリアを設定した場合と同様であり、２つの反力エリアから受ける力を考慮してボールの加速度を合成した後、この合成された加速度を用いてボールの速度およびボールの位置を計算することにより、クロスバーＣＢ近傍にボールが飛んだ場合の自然な挙動を再現することが可能になる。
【００６４】
（１−６）外側から飛んできてネットに当たった場合のボールの挙動
ところで、上述した各種のケースでは、ゴールポストＧＰ１、ＧＰ２の間を通過した後にゴールネットにボールが衝突した場合の挙動を考えたが、ゴールの周囲からゴールネットにボールが衝突する場合もある。このような場合にも、正面Ｄ、左側面Ａ、右側面Ｂ、上面Ｃのそれぞれに対応する反力エリアモデルを設定してボールの挙動を計算することができる。
【００６５】
図１２〜図１６のそれぞれは、ネットの外側からボールが衝突した場合のボールの挙動を計算するために用いられる反力エリアモデルの説明図である。
図１２には、ネットの正面Ｄに向かって外側（裏側）からボールが飛んできた場合の反力エリアが示されている。このようなボールに対しては、ｚ軸方向の基準位置の境界面からｚ軸正方向に向かう所定範囲が反力エリアとして設定されている。
【００６６】
図１３には、ネットの左側面Ａあるいは右側面Ｂに向かって外側からボールが飛んできた場合の反力エリアが示されている。左側面Ａに向かって外側から飛んでくるボールに対しては、ｘ軸方向の基準位置の境界面からｘ軸正方向に向かう所定範囲が反力エリアとして設定されている。また、右側面Ｂに向かって外側から飛んでくるボールに対しては、ｘ軸方向の基準位置の境界面からｘ軸負方向に向かう所定範囲が反力エリアとして設定されている。
【００６７】
図１４には、ネットの上面Ｃに外側からボールが飛んできた場合の反力エリアが示されている。このようなボールに対しては、ｙ軸方向の基準位置の境界面からｙ軸負方向に向かう所定範囲が反力エリアとして設定されている。
図１５には、ゴールポストＧＰ１近傍の左側面ＡあるいはゴールポストＧＰ２近傍の右側面Ｂに外側からボールが飛んできた場合の挙動修正用反力エリアが示されている。ゴールポストＧＰ１近傍の左側面Ａに向かって飛んでくるボールに対しては、左側面Ａよりも内側であって、ｚ軸方向の基準位置の境界面からｚ軸正方向に向かう所定範囲が反力エリアとして設定されている。また、ゴールポストＧＰ２近傍の右側面Ｂに向かって飛んでくるボールに対しては、右側面Ｂよりも内側であって、ｚ軸方向の基準位置の境界面からｚ軸正方向に向かう所定範囲が反力エリアとして設定されている。
【００６８】
図１６には、クロスバーＣＢの近傍の上面Ｃに外側からボールが飛んできた場合の挙動修正用反力エリアが示されている。このようなボールに対しては、上面Ｃよりも下側であって、ｚ軸方向の基準位置の境界面からｚ軸正方向に向かう所定範囲が反力エリアとして設定されている。
【００６９】
なお、ボールがネットに内側から衝突した場合には、２つの反力エリアが重複している場合（例えばゴールの隅にボールが飛んできた場合）には、これら２つの反力エリアから別々に力を受けるものとしてボールの加速度、速度、位置を計算したが、ボールがネットの外側から衝突した場合に同じ手法で計算を行うと実際の挙動と一致しなくなる場合がある。
【００７０】
例えば、図１７に示すように、左側面Ａの正面Ｄ近傍に外側からＰ４方向にボールＢＯが飛んできた場合を考えるものとする。このボールＢＯの位置に基づいて、計算対象となる反力エリアとして、図１３に示す反力エリアと図１２に示す反力エリアが抽出される。しかし、これら２つの反力エリアからボールＢＯが力を受けるものとしてボールの位置を計算すると、図１８に示すように、ボールＢＯが飛んできたＰ４方向とは異なる斜めのＰ５方向にボールが押し戻されることになる。実際のボールの挙動としては、ボールＢＯは、飛んできたＰ６方向に押し戻されるはずである。
【００７１】
本実施形態では、ボールがネットの外側から飛んできて衝突した場合（ネットの２面が１８０度を超えて交差する側からボールが飛んできた場合）には、２つの反力エリアから力を受けるのではなく、最初に衝突した面に対応して設定されている反力エリアのみから力を受けるものとして計算している。例えば、図１７に示した例では、最初に左側面ＡにボールＢＯが衝突するため、図１３に示した反力エリアのみを考慮してボールＢＯの挙動が計算され、図１８に示すようなＰ６方向に押し戻されるようなボールＢＯの挙動が表現される。これにより、ネットの折れ曲がり部の外側（凸側）からボールが衝突した場合であっても、ボールが衝突した際のより正確な挙動を再現することが可能になる。
【００７２】
（２）ネットの挙動
次に、ネットの挙動について説明する。ネット計算部４５によって計算されるネットの挙動は、ネット自体が時間経過とともに動く場合の挙動（揺動挙動）と、ネットの内側あるいは外側から飛んできたボールが衝突した場合の挙動（衝突挙動）とに大別される。
【００７３】
図１９は、本実施形態の計算で用いられるネットモデルの全体を示す図である。また、図２０はネットモデルの具体例を示す図である。
図１９および図２０に示すように、本実施形態で用いられるネットモデルは、六角形のメッシュ構造を有している。メッシュを構成する各六角形部分は、六角形の各頂点に配置されたノードと、隣接するノード間を連結する結線からなっている。このネットモデルは、「バネ−質点」であり、質点としてのノードのみに質量が集中し、各ノードに対しては結線による引っ張り張力のみが作用する（圧縮方向の力は作用しない）。
【００７４】
なお、図１９および図２０に示す六角形のメッシュ構造は、実際のゴールネットの形状を参考にして採用されたものであるが、このメッシュ構造に含まれる各六角形部分の大きさは、実際のゴールネットに含まれる各六角形部分よりも大きく設定されている。これは、ノードの数を減らすことにより、計算量を減らすことができるからである。
【００７５】
図２１は、ノードの連結状態に着目したネットモデルの構造を示す図である。図２１の各ノードに付された番号は、図２０の各ノードに付された番号に対応している。
図２１に示すように、本実施形態のネットモデルでは、各ノードに付された番号順に各ノードのデータが格納されている。また、基本的に奇数番目のノードは、左右のノード（番号が一つ小さいノードと一つ大きいノード）と上のノード（番号が九つ大きいノード）と連結されている。偶数番目のノードは、左右のノードと下のノード（番号が九つ小さいノード）と連結されている。なお、ネットの左端、右端、上端、下端のそれぞれに配置されたノードについては、変則的な連結状態となっている。
【００７６】
図２２は、本実施形態で用いられるネットの具体的形状を示す図である。図３に示したように、本実施形態のサッカーゲームで用いられるネットは、左側面Ａ、右側面Ｂ、上面Ｃ、正面Ｄによって構成されている。この中で、左側面Ａ、右側面Ｂ、正面Ｄをまとめて１枚のネットとして考え（図２２（Ａ））、また残った上面Ｃを１枚のネットとして考え（図２２（Ｂ））、両者を連結してネットの挙動が計算される。また、残った上面Ｃを１枚のネットとして考え（図２２（Ｂ））、ネットの挙動が計算される。
【００７７】
（２−１）ネットの揺動挙動
ネットの縁部分および上面については、以下のような方法で拘束する。
・手前の縁（ゴールポストＧＰ１、ＧＰ２、クロスバーＣＢに接する部分）は、ノードをゴールポストＧＰ１、ＧＰ２、クロスバーＣＢに固定する。
・下の縁（地面に接する部分）については、ノードを地面に固定する。
・上面Ｃ全体および上面Ｃに接する各面の縁（左側面Ａ、右側面Ｂ、正面Ｄのそれぞれの上端）については、拘束点をたるみ形状に配置し、ノードを拘束点にバネ拘束する。ここで、「たるみ形状」とは、直線上の縁の両端あるいは平面を包囲する複数の縁の頂点を固定したときに、この固定部に囲まれた内部が重力の作用によってたるんだ状態をなす形状をいう。また、「拘束点にバネ拘束する」とは、拘束点にバネを介してノードを連結することをいう。
【００７８】
図２３は、上面に接する各面の縁に対応して設定された拘束点のたるみ形状配置を示す図である。このように、たるみ形状に配置された拘束点を用いることにより、実際にネットが自重によって垂れ下がった状態をよりリアルに再現することが可能になる。ノードを連結する各結線のバネの力だけで適正なたるみ形状を得ようとすると、バネ定数（バネ荷重）を大きくする必要があるが、このようにするとネットの揺動計算がなかなか収束しなくなる。これに対し、上述したたるみ形状に配置した拘束点を採用した場合には、小さなバネ定数を用いた場合であってもネットの適正なたるみ形状を再現することができ、しかもバネ定数を小さくすることで、ネットの揺動計算が収束しなくなることを防止することができる。
【００７９】
なお、図２３にはネットの上端に対応する拘束点の配置状態を示したが、上面Ｃを拘束する場合には、上面Ｃ全体に対応してたるみ形状に配置された拘束点、すなわち、上面Ｃの中央近傍が最も低く下がっており、上面Ｃの縁に近づくにつれて高くなるように配置された拘束点を用いればよい。
【００８０】
図２４は、ネットの揺動計算を行うネット計算部４５の動作手順を示す流れ図である。ノードの個数をｎ、ノードの列数をｃとする。ｉ番目のノードをＮｉ（ｉ＝０，１，２，…，ｎ−１）とし、ノードＮｉの位置座標をＰｉ、速度ベクトルをＶｉとする。隣接するノードＮｉとＮｊとを結ぶ結線をＡｉ，ｊとし、ノードＮｉからＮｊに向かうベクトルをＩｉ，ｊとする。したがって、
Ｉｉ，ｊ＝Ｐｊ−Ｐｉ
Ｉｊ，ｉ＝−Ｉｉ，ｊ                                              …（４）
となる。
【００８１】
ステップ２００：まず、ネット計算部４５は、以下の式を用いて結線Ａｉ，ｊの張力によりノードＮｉがノードＮｊから受ける力Ｔｉ，ｊを計算する。
Ｔｉ，ｊ＝０                                …（｜Ｉｉ，ｊ｜≦Ｌｉ，ｊの場合）
Ｔｉ，ｊ＝Ｋ１１（｜Ｉｉ，ｊ｜／Ｌｉ，ｊ−１．０）…（｜Ｉｉ，ｊ｜＞Ｌｉ，ｊの場合）
ここで、Ｋ１１はバネの強さを表す係数、Ｌｉ，ｊは結線Ａｉ，ｊの長さの初期設定値である。また、Ｔｊ，ｉ＝−Ｔｉ，ｊである。
【００８２】
ステップ２０１：次に、ネット計算部４５は、以下の式を用いてノードＮｉに作用する力Ｆｉを計算する。なお、ステップ２００以降の各ステップの計算は、固定されていないノードに対してのみ行われる。
Ｆｉ＝ΣＴｉ，ｊ＋Ｋ１２（Ｓｉ−Ｐｉ）−Ｋ１３｜Ｖｉ｜Ｖｉ              …（５）
右辺第１項（ΣＴｉ，ｊ）は、ノードＮｉに対して結線から作用する力の合力を表している。右辺第２項（Ｋ１２（Ｓｉ−Ｐｉ））は、バネ拘束による拘束力を表す。Ｓｉは、ノードＮｉの拘束点の位置座標で、Ｋ１２は拘束のバネ強さを表す係数である。バネ拘束されているノード（たるみ形状に配置された拘束点に拘束されているノード）以外のノードについては、この項は不要である。右辺第３項（Ｋ１３｜Ｖｉ｜Ｖｉ）は、減衰力を表し、Ｋ１３は減衰の大きさを決める係数である。
【００８３】
ステップ２０２：次に、ネット計算部４５は、以下の式を用いて各ノードＮｉの加速度ベクトルａｉを計算する。
ａｉ＝Ｆｉ／Ｍ＋Ｇ                                            …（６）
ここで、Ｍはノードの質量、Ｇは重力加速度ベクトルである。
【００８４】
ステップ２０３：次に、ネット計算部４５は、以下の式を用いてノードＮｉの速度変化量ｄＶｉを計算する。
ｄＶｉ＝ａｉｔ２                                                …（７）
ここで、ｔ２はネットの挙動計算の繰り返し間隔であり、本実施形態ではｔ２＝１／１２０秒である。
【００８５】
ステップ２０４：次に、ネット計算部４５は、以下の式を用いてノードＮｉの新しい速度Ｖ’ｉを計算する。
Ｖ’ｉ＝Ｖｉ＋ｄＶｉ                                            …（８）
ステップ２０５：次に、ネット計算部４５は、以下の式を用いてノードＮｉの新しい位置Ｐ’ｉを計算する。
【００８６】
Ｐ’ｉ＝Ｐｉ＋（Ｖ’ｉ＋Ｋ１４ｄＶｉ）ｔ２                          …（９）
ここで、Ｋ１４は計算を安定させるための補正係数であり、Ｋ１４＝０．１とした。
ステップ２０６：最後に、ネット計算部４５は、Ｐ’ｉのｙ座標が負（地面よりも下）であれば０に修正する。
【００８７】
このようにして各ノードの位置が、所定の間隔ｔ２（＝１／１２０秒）毎に計算される。
（２−２）ネットの衝突挙動
上述したように、ネットを構成する各ノードは、各ノードに引張り力が作用するとその力の作用方向に位置が移動して揺動するが、それ以外に、ボールが衝突しても位置を変えてネット全体の形が変化する。
【００８８】
図２５は、ネットの衝突計算を行うネット計算部４５の動作手順を示す流れ図である。なお、以下の説明では、ゴールの内側からネットに向かってボールが飛んでいくものとする。
ステップ３００：まず、ネット計算部４５は、左側面Ａ、右側面Ｂ、上面Ｃ、正面Ｄのそれぞれに対応した干渉エリアを設定して、ボールがいずれかの干渉エリアに属しているか否かを判定する。
【００８９】
図２６および図２７は、ネットの衝突挙動計算に用いられる干渉エリアの説明図である。図２６に示すように、ネットの左側面Ａ、右側面Ｂ、正面Ｄのそれぞれが含まれるように干渉エリアＷ１、Ｗ２、Ｗ３が設定されている。また、図２７に示すように、ネットの上面Ｃが含まれるように干渉エリアＷ４が設定されている。
【００９０】
これら４つの干渉エリアＷ１〜Ｗ４のいずれかにボールが属する場合には、以下に示す手順にしたがって、ボールの位置に対応するようにネットを構成するノードを移動させる処理が行われるが、いずれの干渉エリアにもボールが属さない場合には否定判断が行われ、ネットを構成するノードを移動させることなくネットの衝突挙動の計算が終了する。
【００９１】
ステップ３０１：次に、ネット計算部４５は、ボールに対して最近接ノードを見つける。最近接ノードを見つける処理は、ボールが属する干渉エリアに対応するネットの面にボールの中心位置を投影し、投影位置に最も接近しているノードを抽出することにより行われる。例えば、正面Ｄに対応する干渉エリアＷ３にボールが属する場合には、この干渉エリアＷ３に対応する正面Ｄにボールの中心位置を投影し、この中心位置と正面Ｄを構成する各ノードの位置とをｘｙ平面上で比較することにより、最近接ノードが一つ抽出される。この抽出された一つのノードをＮＢとする。
【００９２】
ステップ３０２：次に、ネット計算部４５は、最近接ノードＮＢとボールの位置を比較し、ボールがネットよりも奥にある場合（ネットを通り抜けた場合）に、最近接ノードＮＢからボール先端部までの距離ｓを求める。この距離ｓは、干渉エリアに対応するネットの面にボールの中心位置を投影した際の投影方向に沿った値が求められる。例えば、干渉エリアＷ３にボールがある場合には、図２８に示すように、ボールＢＯの中心位置を正面Ｄに投影する向きであるｚ軸に沿った距離ｓが求められる。なお、ボールＢＯがネットよりも手前側にある場合、すなわちネットに衝突する前の場合には、ネットを構成するノードを移動させることなくネットの衝突挙動の計算が終了する。
【００９３】
ステップ３０３：次に、ネット計算部４５は、最近接ノードＮＢを距離ｓだけボールの衝突方向に移動させるとともに、最近接ノードＮＢに隣接するノード（直接連結されている隣のノード）を距離ｓ／２だけボールの衝突方向に移動させる。例えば、干渉エリアＷ３にボールがある場合には、ネット計算部４５は、図２９に示すように、最近接ノードＮＢをｚ軸負方向に距離ｓだけ移動させるとともに、その周囲の隣接ノードをｚ軸負方向に距離ｓ／２だけ移動させる。
【００９４】
このように、ボールがネットに衝突した場合には、ボールに最も近いノードをボールの先端位置まで移動させるとともに、隣接するノードをその半分の距離だけ移動させる。なお、上述した説明では、ゴールの内側からネットに向かってボールが飛んでいくものとしたが、ゴールの外側からネットに向かってボールが飛んでいく場合も同様であり、図２５に示した手順にしたがってボールの最近接ノードとその隣接ノードを移動させればよい。
【００９５】
ところで、ボールがネットの近傍にある場合に、ボールがゴールの内側から飛んできたかあるいは外側から飛んできたかは、衝突時点のボールの位置だけでは判断することができない。
図３０および図３１は、ネットとボールの位置関係を示す図である。図３０に示すように、ボールＢＯがゴールの内側から飛んできてネットに衝突した場合には、ネットをボールの左側に移動させる必要がある。しかし、図３１に示すように、ボールの位置が図３０と全く同じであっても、ボールＢＯがゴールの外側から飛んできてネットに衝突した場合には、ネットをボールの右側に移動させる必要がある。このように、衝突時のボールＢＯの位置だけでは、ボールＢＯがゴールの内側にあるのか外側にあるのかを知ることはできない。
【００９６】
そこで、本実施形態では、ネット計算部４５は、ボールＢＯがゴールラインを越えたときに内外判定を行い、この判定結果を保持しておく。例えば、図３０に示すように、ボールＢＯがゴールポストＧＰ１、ＧＰ２の間のゴールラインを通過した場合には、通過時に内側を通過した旨の情報を保持する。また、図３１に示すように、ボールＢＯがゴールポストＧＰ１、ＧＰ２の外側のゴールラインを通過した場合には、通過時に外側を通過した旨の情報を保持する。そして、再びボールＢＯがゴールラインを逆方向に越えたときに、この保持情報を破棄する。
【００９７】
なお、サッカーのルール上は、「ボールＢＯがゴールラインを越える」とは、ボール全体がゴールライン幅の外に出た時点をいうが、内外判定を行うタイミングは、必ずしも正確にこの時点で行う必要はなく、ボールＢＯがネットに衝突する前に内外判定を行うことができればよい。例えば、ボールＢＯの中心位置が初めてゴールラインの中心を越えたときに内外判定を行うようにしてもよい。
【００９８】
また、ゴールポストＧＰ１、ＧＰ２の内側のゴールラインを越えたボールＢＯがゴールポストＧＰ１、ＧＰ２の外側のゴールラインを越えて戻ってきた場合には、保持情報は廃棄せずに保持状態を維持する。ゴールポストＧＰ１、ＧＰ２の外側のゴールラインを越えたボールＢＯがゴールポストＧＰ１、ＧＰ２の内側のゴールラインを越えて戻ってきた場合も同様である。これにより、図３２に示すような場合であっても正確な内外判定を行うことが可能になる。
【００９９】
（３）ボールの挙動計算等と表示動作の関係
上述したように、ボールの挙動計算は表示間隔（ディスプレイ装置２０の表示内容を更新する時間間隔）中に４回行われ、ネットの揺動挙動計算の計算は表示間隔中に２回行われる。また、ネットの衝突挙動計算は表示間隔中に２回行われる。
【０１００】
図３３は、ボールとネットの挙動計算の順番を示す図である。図３３に示すように、表示が１回行われる間にネットの挙動計算が２回行われ、ネットの挙動計算が１回行われる間にボールの挙動計算が２回行われ、結果として１表示期間内に４回のボールの挙動計算が行われる。このような４回のボール挙動計算と２回のネット挙動計算の後、ゲーム空間演算部４３は、計算されたボールの位置およびネットを構成する各ノードの位置を用いて、ボールやゴールネットを含む各種の三次元オブジェクトの挙動計算を行い、これらの三次元オブジェクトを構成する各ポリゴンの頂点座標を求める。なお、１表示期間中に行われるボール挙動計算の回数とネット挙動計算の回数は適宜変更可能である。
【０１０１】
また、本実施形態のゴールネットは、図２０に示したように、六角形のメッシュ構造を有しており、一つ一つの六角形部分は、実際のゴールネットの六角形部分よりもかなり大きく設定されている。したがって、表示に際しては、図２０に示した各六角形部分をさらに複数のポリゴンに分割し、各ポリゴン毎に小さな複数の六角形部分が含まれるようなテクスチャデータを貼り付ける表示処理を行うことにより、実際のゴールネットに近いリアルな画像が生成されている。
【０１０２】
図３４は、生成されるポリゴンの具体例を示す図である。図３４に示すように、ゲーム空間演算部４３は、六角形部分の中央に分割点を設定し、この分割点と六角形の隣接する２つの頂点とを３つの頂点とするポリゴンを生成する。
図３５は、ポリゴンに対応するテクスチャの具体例を示す図である。また、図３６は各ポリゴンにテクスチャを貼り付けた後の六角形部分の画像を示す図である。これらの図に示すように、テクスチャマッピング処理部５４によって各ポリゴンにテクスチャを貼り付ける処理が行われると、小さな六角形のメッシュ構造を有するネットの画像が生成される。
【０１０３】
また、ボールについては、計算されたボールの位置（中心座標）に球体の三次元オブジェクトが対応しており、この三次元オブジェクトを構成する複数のポリゴンの頂点座標がゲーム空間演算部４３によって計算される。画像処理部５０は、このようにして計算されたボールに対応する三次元オブジェクトを構成する各ポリゴンの頂点座標を用いて透視投影変換およびテクスチャマッピング処理を行ってゴールの挙動に対応した二次元画像を生成する。この二次元画像がディスプレイ装置２０の画面上に表示される。
【０１０４】
このように、サッカーゴールのネットにボールが衝突した場合には、ネットがほぼ均一なものであれば、ネットからボールに対して所定の反力が作用すると考えられる。したがって、この反力が作用する領域を反力エリアとして設定して所定の反力をボールに作用させることにより、複雑な計算を行うことなく少ない計算量でボールの挙動をより正確に再現することができる。
【０１０５】
また、ボール計算部４４は、反力によって生じるボールの加速度を計算した後、この加速度を考慮したボールの速度および位置を計算しており、このような計算を行うことにより、反力エリアからボールに作用する反力の設定が適切であれば、この反力によって生じるボールの挙動をより正確に再現することが可能になる。
【０１０６】
特に、上述した加速度に、反力エリア内にボールが進入したときにネットがボールを押し戻す力による成分や、反力エリア内にボールが進入したときに生じるボールの速度の減衰を示す成分や、反力エリア内にボールが進入したときに生じるネットとボールとの間の摩擦による成分を含ませることにより、ボールの衝突時のより正確な挙動を再現することが可能になる。
【０１０７】
また、上述した加速度に、ネットの縁から所定範囲に対応する反力エリア内にボールが進入したときに生じる、ボールがネットに沿って移動する成分を含ませることにより、衝突後のボールがネットに沿って移動する挙動をより正確に再現することができる。
【０１０８】
また、反力エリアを、ネットを構成する面に対し片側であってボールの反衝突側に設定したり、ネットがボールと衝突する可能性のある範囲やこの衝突によってネットが変形する可能性のある範囲を含むように設定することにより、ボールがネットから反力を受ける範囲を反力エリアとして設定することが可能になり、ボールがネットに衝突した際の挙動をより正確に再現することができる。
【０１０９】
また、ネットが折れ曲がっている場合に、それぞれの面に対応して複数の反力エリアが設定されているため、衝突したネットの各面に対応させてボールの挙動を計算することが可能になり、複雑な形状を有するネットにボールが衝突した場合の挙動をより正確に再現することが可能になる。
【０１１０】
また、このような折れ曲がった複数の面に対応して設定される反力エリアは、一部が互いに重複して設定されており、ボール計算部４４は、ボールが複数の反力エリアの重複領域に進入したときに、複数の反力エリアの両方から作用する反力を用いてボールの挙動を計算している。これにより、ネットの複数の面が交差する近傍にボールが衝突した際の複雑な挙動を再現することが可能になる。
【０１１１】
また、一部が互いに重複して反力エリアが設定されている場合に、ボール計算部４４は、ボールが複数の反力エリアの重複領域に進入したときであって、ネットの１８０度を超えるネットの隅（折り曲げ部）近傍に進入したときに、ボールが最初に衝突した面に対応して設定された反力エリアから作用する反力のみを用いてボールの挙動を計算している。これにより、ネットの折れ曲がり部の外側（凸側）からボールが衝突した場合であっても、ボールが衝突した際のより正確な挙動を再現することが可能になる。
【０１１２】
また、ネットの縁がゴールポストやクロスバーに固定されている場合に、縁から所定範囲内にあるネットにボールが衝突したときに、ネットの延在する向きであってボールの反衝突側にボールに対して反力を作用させる挙動修正用反力エリアが設定されており、ボール計算部４４は、ボールがこの挙動修正用反力エリアとそれ以外の反力エリアの重複領域に進入したときに、これら両方から作用する反力を用いてボールの挙動を計算している。これにより、ネットがゴールポスト等に拘束されており、ボールがネットに衝突した際にこのゴールポスト等を越えないように押し戻す挙動をより正確に再現することができる。
【０１１３】
なお、本発明は上記実施形態に限定されるものではなく、本発明の要旨の範囲内において種々の変形実施が可能である。例えば、上述した実施形態では、サッカーゲーム装置においてゴールネットにボールが衝突する場合のボールの挙動を計算してその画像を生成する場合を説明したが、衝突対象となる物体は他の組み合わせであってもよい。
【０１１４】
また、上述した実施形態では、ゲーム演算部４０と画像処理部５０とを分けたが、ゲーム演算部４０に画像処理部５０の動作を行わせるようにしてもよい。
また、本実施形態では、図２に示すような専用の筐体を有する業務用のサッカーゲーム装置について説明したが、テレビジョン受像器をディスプレイ装置として使用する家庭用ゲーム装置やパーソナルコンピュータにおいてサッカー画像を生成する場合に本発明を適用することができる。
【０１１５】
【発明の効果】
上述したように、本発明によれば、反力が作用する領域を反力エリアとして設定して所定の反力を第２の物体に作用させることにより、複雑な計算を行うことなく少ない計算量で第２の物体の挙動をより正確に再現することができる。
【図面の簡単な説明】
【図１】一実施形態のサッカーゲーム装置の構成を示す図である。
【図２】本実施形態のゲーム装置の外観斜視図である。
【図３】本実施形態のサッカーゲームにおいて用いられるゴールの概要を示す図である。
【図４】ネットの正面に向かって内側からボールが飛んでくる場合の反力エリアモデルの説明図である。
【図５】ボールの衝突挙動を計算するボール計算部の動作手順を示す流れ図である。
【図６】ネットの左側面あるいは右側面にボールが飛んできた場合の反力エリアモデルの説明図である。
【図７】ネットの上面に向かってボールが飛んできた場合の反力エリアモデルの説明図である。
【図８】正面と左側面の境界近傍のゴールの隅に向けてボールが飛んでいく場合のボールの挙動を示す図である。
【図９】正面からゴールポスト近傍の左側面に向けてボールが戻された場合のボールの挙動を示す図である。
【図１０】ゴールポストの近傍に飛んだボールを押し戻す場合の挙動修正用反力エリアモデルの説明図である。
【図１１】クロスバーの近傍に飛んできたボールを押し戻す場合の挙動修正用反力エリアモデルの説明図である。
【図１２】ネットの外側からボールが衝突した場合のボールの挙動を計算するために用いられる反力エリアモデルの説明図である。
【図１３】ネットの外側からボールが衝突した場合のボールの挙動を計算するために用いられる挙動修正用反力エリアモデルの説明図である。
【図１４】ネットの外側からボールが衝突した場合のボールの挙動を計算するために用いられる反力エリアモデルの説明図である。
【図１５】ネットの外側からボールが衝突した場合のボールの挙動を計算するために用いられる反力エリアモデルの説明図である。
【図１６】ネットの外側からボールが衝突した場合のボールの挙動を計算するために用いられる反力エリアモデルの説明図である。
【図１７】ボールがネットの隅近傍に飛んできた場合のボールの挙動を示す図である。
【図１８】ボールがネットの隅近傍に飛んできた場合のボールの挙動を示す図である。
【図１９】本実施形態の計算で用いられるネットモデルの全体を示す図である。
【図２０】ネットモデルの具体例を示す図である。
【図２１】ノードの連結状態に着目したネットモデルの構造を示す図である。
【図２２】本実施形態で用いられるネットの具体的形状を示す図である。
【図２３】上面に接する各面の縁に対応して設定された拘束点のたるみ形状配置を示す図である。
【図２４】ネットの揺動計算を行うネット計算部の動作手順を示す流れ図である。
【図２５】ネットの衝突計算を行うネット計算部の動作手順を示す流れ図である。
【図２６】ネットの衝突挙動計算に用いられる干渉エリアの説明図である。
【図２７】ネットの衝突挙動計算に用いられる干渉エリアの説明図である。
【図２８】ネットの衝突挙動計算の概要を示す図である。
【図２９】ネットの衝突挙動計算の概要を示す図である。
【図３０】ネットとボールの位置関係を示す図である。
【図３１】ネットとボールの位置関係を示す図である。
【図３２】ネットとボールの位置関係を示す図である。
【図３３】ボールとネットの挙動計算の順番を示す図である。
【図３４】生成されるポリゴンの具体例を示す図である。
【図３５】ポリゴンに対応するテクスチャの具体例を示す図である。
【図３６】各ポリゴンにテクスチャを貼り付けた後の六角形部分の画像を示す図である。
【符号の説明】
１０  入力装置
２０  ディスプレイ装置
３０  コイン投入部
３２  スタートボタン
４０  ゲーム演算部
４１  入力判定部
４２  イベント処理部
４３  ゲーム空間演算部
４４  ボール計算部
４５  ネット計算部
４６  効果音生成部
５０  画像処理部
５２  透視投影変換処理部
５４  テクスチャマッピング処理部
７２  スピーカ
８０  情報記録媒体
【図１】
2004321551.tif 000004
【図２】
2004321551.tif 000005
【図３】
2004321551.tif 000006
【図４】
2004321551.tif 000007
【図５】
2004321551.tif 000008
【図６】
2004321551.tif 000009
【図７】
2004321551.tif 000010
【図８】
2004321551.tif 000011
【図９】
2004321551.tif 000012
【図１０】
2004321551.tif 000013
【図１１】
2004321551.tif 000014
【図１２】
2004321551.tif 000015
【図１３】
2004321551.tif 000016
【図１４】
2004321551.tif 000017
【図１５】
2004321551.tif 000018
【図１６】
2004321551.tif 000019
【図１７】
2004321551.tif 000020
【図１８】
2004321551.tif 000021
【図１９】
2004321551.tif 000022
【図２０】
2004321551.tif 000023
【図２１】
2004321551.tif 000024
【図２２】
2004321551.tif 000025
【図２３】
2004321551.tif 000026
【図２４】
2004321551.tif 000027
【図２５】
2004321551.tif 000028
【図２６】
2004321551.tif 000029
【図２７】
2004321551.tif 000030
【図２８】
2004321551.tif 000031
【図２９】
2004321551.tif 000032
【図３０】
2004321551.tif 000033
【図３１】
2004321551.tif 000034
【図３２】
2004321551.tif 000035
【図３３】
2004321551.tif 000036
【図３４】
2004321551.tif 000037
【図３５】
2004321551.tif 000038
【図３６】
2004321551.tif 000039