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