(57)【特許請求の範囲】
【請求項１】
オブジェクト空間内の所与の視点での画像を生成してゲームを実行するゲーム装置であって、
前記オブジェクト空間内の所与の領域に向かう所与の力の風を生成する生成源を、風の方向が異なるように当該領域の外側に複数設定する生成源設定手段と、
前記生成源それぞれが生成する風の力を変動させる変動手段と、
前記生成源それぞれが生成した風の力を当該風が生成された生成時刻と対応付けて記憶部に記憶する記憶手段と、
前記領域中の所与の位置において、当該位置と当該生成源間の距離、及び、当該生成源が生成した風の所与の進行速度を用いて、当該位置で当該時点において受ける風が生成された生成時刻を、前記各生成源それぞれについて算出する生成時刻算出手段と、
前記各生成源それぞれについて、前記算出された生成時刻において当該生成源が生成した風の力を前記記憶部から読み出す読出手段と、
前記読出手段により読み出された前記各生成源それぞれが生成した風の力を合成して、前記所与の位置で当該時点において受ける風の合成力を求める合成力算出手段と、
を備え、前記生成源それぞれが生成する風の力を変動させることで前記領域内において吹く風の方向及び強さが異なる複雑な風を表現することを特徴とするゲーム装置。
【請求項２】
オブジェクト空間内の所与の視点での画像を生成してゲームを実行するゲーム装置であって、
前記オブジェクト空間内の所与の水面領域に向かう所与の力の波を生成する生成源を、波の方向が異なるように当該領域の外側に複数設定する生成源設定手段と、
前記生成源それぞれが生成する波の力を変動させる変動手段と、
前記生成源それぞれが生成した波の力を当該波が生成された生成時刻と対応付けて記憶部に記憶する記憶手段と、
前記領域中の所与の位置において、当該位置と当該生成源間の距離、及び、当該生成源が生成した波の所与の進行速度を用いて、当該位置で当該時点において受ける波が生成された生成時刻を、前記各生成源それぞれについて算出する生成時刻算出手段と、
前記各生成源それぞれについて、前記算出された生成時刻において当該生成源が生成した波の力を前記記憶部から読み出す読出手段と、
前記読出手段により読み出された前記各生成源それぞれが生成した波の力を合成して、前記所与の位置で当該時点において受ける波の合成力を求める合成力算出手段と、
を備え、前記生成源それぞれが生成する波の力を変動させることで前記領域内における波の方向及び高さが複雑に変化する波を表現することを特徴とするゲーム装置。
【請求項３】
請求項１または２に記載のゲーム装置であって、
前記生成源設定手段は、前記生成源を前記領域の周囲三方に少なくとも設定することを特徴とするゲーム装置。
【請求項４】
請求項１から３のいずれかに記載のゲーム装置であって、
前記生成源設定手段は、少なくとも２つの前記生成源を、前記領域に向かう方向が直角となるように設定することを特徴とするゲーム装置。
【請求項５】
請求項１から４のいずれかに記載のゲーム装置であって、
前記複数の生成源のうち、メインの生成源を設定するメイン生成源設定手段を更に備え、
前記変動手段は、前記メインの生成源による力の大きさを、残余の生成源よりも大きくして、前記生成源それぞれの力の大きさを変動させる、
ことを特徴とするゲーム装置。
【請求項６】
請求項１から４のいずれかに記載のゲーム装置であって、
前記複数の生成源のうち、メインの生成源を設定するメイン生成源設定手段と、
前記メインの生成源による力の進行速度を、残余の生成源の進行速度よりも速く設定する進行速度設定手段と、
を更に備えたことを特徴とするゲーム装置。
【請求項７】
請求項１から６のいずれか記載のゲーム装置であって、
前記変動手段は、前記ゲームの進行または時間経過に応じて、前記生成源それぞれの力の大きさを変動させることを特徴とするゲーム装置。
【請求項８】
請求項１から７のいずれか記載のゲーム装置であって、
前記変動手段は、前記生成源それぞれの力の大きさを非周期的に変動させることを特徴とするゲーム装置。
【請求項９】
コンピュータに、オブジェクト空間内の所与の視点での画像を生成させてゲームを実行させるためのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体であって、
前記プログラムは、
前記オブジェクト空間内の所与の領域に向かう所与の力の風を生成する生成源を、風の方向が異なるように当該領域の外側に複数設定する生成源設定手段、
前記生成源それぞれが生成する風の力を変動させる変動手段、
前記生成源それぞれが生成した風の力を当該風が生成された生成時刻と対応付けて記憶部に記憶する記憶手段、
前記領域中の所与の位置において、当該位置と当該生成源間の距離、及び、当該生成源が生成した風の所与の進行速度を用いて、当該位置で当該時点において受ける風が生成された生成時刻を、前記各生成源それぞれについて算出する生成時刻算出手段、
前記各生成源それぞれについて、前記算出された生成時刻において当該生成源が生成した風の力を前記記憶部から読み出す読出手段、
前記読出手段により読み出された前記各生成源それぞれが生成した風の力を合成して、前記所与の位置で当該時点において受ける風の合成力を求める合成力算出手段、
として前記コンピュータを機能させ、前記生成源それぞれが生成する風の力を変動させることで前記領域内において吹く風の方向及び強さが異なる複雑な風を表現するように前記コンピュータを機能させるためのプログラムである、
情報記憶媒体。
【請求項１０】
コンピュータに、オブジェクト空間内の所与の視点での画像を生成させてゲームを実行させるためのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体であって、
前記プログラムは、
前記オブジェクト空間内の所与の水面領域に向かう所与の力の波を生成する生成源を、波の方向が異なるように当該領域の外側に複数設定する生成源設定手段、
前記生成源それぞれが生成する波の力を変動させる変動手段、
前記生成源それぞれが生成した波の力を当該波が生成された生成時刻と対応付けて記憶部に記憶する記憶手段、
前記領域中の所与の位置において、当該位置と当該生成源間の距離、及び、当該生成源が生成した波の所与の進行速度を用いて、当該位置で当該時点において受ける波が生成された生成時刻を、前記各生成源それぞれについて算出する生成時刻算出手段、
前記各生成源それぞれについて、前記算出された生成時刻において当該生成源が生成した波の力を前記記憶部から読み出す読出手段、
前記読出手段により読み出された前記各生成源それぞれが生成した波の力を合成して、前記所与の位置で当該時点において受ける波の合成力を求める合成力算出手段、
として前記コンピュータを機能させ、前記生成源それぞれが生成する波の力を変動させることで前記領域内における波の方向及び高さが複雑に変化する波を表現するように前記コンピュータを機能させるためのプログラムである、
情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オブジェクト空間内の所与の視点での画像を生成し、当該生成画像を表示させることによって所与のゲームを実行するゲーム装置等に関する。
【０００２】
【従来の技術】
仮想的な３次元空間であるゲーム空間に、力を発生させる生成源を所与のタイミングで設定することにより、一種の攻撃技として表現するゲーム装置や、当該生成源の近傍におけるプレーヤキャラクタの操作を困難せしめ、ゲームに面白みを加味させるといったゲーム装置がある。
【０００３】
【発明が解決しようとする課題】
しかしながら、ゲーム空間全体に渡る、例えば、風や水流といった力が生じている状況を表現する場合には、その力の計算に要する処理時間と、キャラクタ等のオブジェクトを表現するために要する処理時間とのバランスから、複雑な力を発生させることが困難であった。
【０００４】
即ち、１枚のゲーム画像を、遅くとも１／６０秒の１フレーム時間内に生成する必要があるため、力の計算に多くの処理時間をかけることができない。このため、ゲーム空間全体における力の大きさを常に同じ大きさとしたり、方向および大きさはランダムであるものの、その一瞬におけるゲーム空間全体においては均一な力が生じているといった表現とすることが限界であった。
【０００５】
このため、ゲーム空間全体に及んでいる力を表現したゲーム画像は、退屈な、面白味のない、違和感のあるものであった。
【０００６】
本発明の課題は、ゲーム空間における複雑な力の表現を単純な方法により実現することである。
【０００７】
【課題を解決するための手段】
以上の課題を解決するための第１の形態は、オブジェクト空間内の所与の視点での画像を生成し、当該生成画像を表示させることによって所与のゲームを実行するゲーム装置であって、所与の方向への力を生成する生成源を、前記オブジェクト空間内に複数設定するための生成源設定手段（例えば、図７の風生成部２２０）と、前記生成源それぞれの力の大きさを変動させるための力変動手段（例えば、図７の風生成部２２０）と、を備え、前記生成源それぞれからの力が前記オブジェクト空間内で流動的に干渉し合うことを特徴とするゲーム装置である。
【０００８】
また、第１０の形態は、オブジェクト空間内の所与の視点での画像を生成し、当該生成画像を表示させることによって所与のゲームを実行するための情報を記憶した情報記憶媒体であって、所与の方向への力を生成する生成源に係る情報（例えば、図７の風制御プログラム４４）と、前記オブジェクト空間内に前記生成源を複数設定するための生成源設定情報（例えば、図７の風制御プログラム４４）と、前記生成源それぞれの力の大きさを変動させるための力変動情報（例えば、図３の履歴テーブル３００）と、前記生成源それぞれからの力に基づいて、前記オブジェクト空間内での流動的な力の干渉を表現するための表現情報（例えば、図７の受風処理プログラム４６）と、を含む情報記憶媒体である。
【０００９】
ここで、生成源それぞれからの力を流動的に干渉させる手法としては、種々の方法が考えられる。例えば、発明の実施の形態において詳細に説明するように、生成源から生成される力の値と、生成した時間とを対応づけて一時的に保存し、オブジェクト空間の所与の地点と、生成源との距離等に基づいて、当該所与の地点における力を算出・決定する手法や、生成源から生成される力の値を時間の関数によって定義して、所与の地点における力を算出・決定する方法等があり、何れの方法を適用することとしてもよい。
【００１０】
この第１または第１０の形態によれば、生成源を設定し、生成する力を変動させることにより、容易に、オブジェクト空間全体に及ぶ複雑な力を生成することができる。また、生成される力は、流動的なものであるため、無秩序な方向および強さにはならない。従って、例えば、プレーヤキャラクタの操作において、プレーヤは、次の瞬間における力をある程度予想することができるが、複数の生成源による力が干渉するために完全には予測できず、面白味のあるゲームを実現することができる。
【００１１】
また、第１の形態のゲーム装置における生成源を、第２の形態として、並行的な力を生成することとして構成したり、第３の形態として、放射状に力を生成することとして構成してもよい。
【００１２】
また、第１０の形態の情報記憶媒体における生成源を、第１１の形態として、並行的な力を生成することとして構成したり、第１２の形態として、放射状に力を生成することとして構成してもよい。
【００１３】
この第２、第３、第１１、あるいは第１２の形態によれば、生成源のバラエティを増すことができ、より複雑な力をオブジェクト空間全体に生成することができる。
【００１４】
また、第４の形態として、第１から第３のいずれかの形態のゲーム装置における前記生成源設定手段は、前記所与のゲームの進行または時間経過に応じて、設定する生成源の数を変更することとしてもよい。
【００１５】
またさらに、第５の形態として、第１から第４のいずれかの形態のゲーム装置における前記力変動手段は、前記所与のゲームの進行または時間経過に応じて、前記生成源それぞれの力の大きさを変動させることとしてもよい。
【００１６】
この第４または第５の形態によれば、例えば、プレー回数やプレー時間、ボスキャラ等と対戦するといったステージの種類等に応じて、生成源の数の増減や力の大きさの変動を行うことができる。
【００１７】
また、第６の形態として、第１から第５のいずれかの形態のゲーム装置であって、前記力変動手段は、前記生成源それぞれの力の大きさを非周期的に変動させることとしてもよい。
【００１８】
ここで非周期的に変動させる手段としては、ランダムな数値を生成させたり、カオスやアトラクタ等の無秩序な値を生成させること等により実現できる。
【００１９】
この第６の形態によれば、力の大きさの変化が繰り返しとなるといった面白味のないゲームとなることを抑制することができる。
【００２０】
また、第７の形態として、第１から第６のいずれかの形態のゲーム装置であって、前記オブジェクト空間に存する所与のオブジェクトが、前記生成源により生成される力に基づいて変形または移動することとしてもよい。
【００２１】
この場合、オブジェクトは、それぞれの生成源から生成されるそれぞれの力に基づいて変形または移動することとしてもよいし、生成源それぞれから生成される力を合成した１つの力に基づいて変形または移動することとしてもよい。
【００２２】
この第７の形態によれば、生成源それぞれの力を合成した力を受けて物体が移動する様子や、粘土のような柔らかい物体が方々からの力を受けて変形するといった様子等を表現することができる。
【００２３】
また、第８の形態として、第７の形態のゲーム装置であって、前記所与のオブジェクトは、変形または移動の基準となる制御点を有し、前記制御点における前記力に基づいて、前記所与のオブジェクトが変形または移動することとしてもよい。なお、この場合、オブジェクトが有する制御点の数は１つあるいは複数であってもよいし、また、１つの制御点における力に基づいて、複数のオブジェクトが変形または移動するようにしてもよい。
【００２４】
この第８の形態によれば、オブジェクトを変形または移動させるための力の計算は、制御点における力の計算で済む。
【００２５】
また、第９の形態として、第１から第８のいずれかの形態のゲーム装置であって、前記オブジェクト空間における所与のオブジェクトを動かすことにより、前記生成源が生成する力は風力であることを表現することとしてもよい。
【００２６】
この第９の形態によれば、オブジェクト空間内に吹いている複雑な風を、容易に表現することができる。また、所与のオブジェクトを草原（実際には草のオブジェクトの集合となるが）とすることにより、オブジェクト空間における風を効果的に表現することができる。また、流動的な風となるため、よりリアリティのある画像を生成することができる。
【００２７】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を参照して説明する。なお、以下では、生成源から生成される力を風力とし、当該生成源から吹く風に揺られる草を表現する方法を説明するが、本発明が適用されるものはこれに限られるものではない。
【００２８】
図１（ａ）〜（ｃ）は、草オブジェクトが受ける風を時間経過に従って表現した画像例を示す図であり、（ａ）から（ｃ）へと時間が経過している。同図（ａ）において、図の左側で倒れていた草が、（ｂ）では起き上がり、一方、中央部分の草が倒れている。（ｃ）では、中央部分の草は起き上がり、右側の草が倒れている。このように、草の倒れる角度や方向等の状態の変化から、時間経過に伴って風が左から右へと吹き去ったことを表現している。本実施の形態では、画像中、直接確認することはできないが、草オブジェクトが受ける力、即ち風の強さを一定時間毎に制御することで、風が流動的にオブジェクト空間を流れる様子をよりリアルに表現し、且つ簡単に実現させる手法について、以下に説明する。
【００２９】
まず、風を表現するための原理を説明する。
本実施の形態では、一定時間毎に力の大きさが異なる風を生成する生成源を、オブジェクト空間内に複数設定する。設定する位置は、キャラクタが活動する領域（以下、メイン領域という）の外側とし、各生成源には、メイン領域に向かう平行な風を生成させるとともに、一定時間毎に風力を変化させて生成させる。一方、風の影響を受ける対象となる物（草オブジェクト等）は、各生成源との距離および時間経過に応じた力を各生成源から受ける。即ち、生成源により生成された風は、速度を持ち、所与の時間が経過することで、各草オブジェクトの地点に到達することとなる。以下に、オブジェクト空間に風の生成源を３つ設定した場合を例にして、詳細を説明する。
【００３０】
図２は、３つの生成源を、オブジェクト空間中の座標系（以下、ワールド座標系という）のＹ軸方向から見た図である。同図に示すように、各風の生成源Ａ〜Ｃは、Ｘ−Ｚ平面に垂直な平面よって定義されており、メイン領域２００を囲むように設定する。また、各風のベクトルは、生成源である平面に対して垂直であることとする。従って、1つの生成源から発生する風は、高さ（即ち、Ｙ座標）に関わらず平行であり、常に同じ方向に進むこととなる。また、各生成源が発生する風の速度は、時刻によらず一定のものとする。従って、風の生成源との距離がわかれば、その地点がその瞬間に受ける風の発生時刻を逆算することができる。
【００３１】
また、生成源ＡおよびＣは、ワールド座標系のＸ軸方向と４５度の角度を成し、生成源Ｂは、Ｚ軸方向と−４５度の角度を成すものとする。従って、生成源ＡとＣから発生する風は、互いに打ち消し合うこととなる。このように、両サイドから風を発生させて、互いに風の強さを抑制することで、ただ単に風が一方向に進むのではなく、あらゆる事物の影響を受けて複雑に吹く風を表現することができる。
【００３２】
また、各風の生成源が一定時間毎に生成する風の強さは、アトラクタなどの収束性のあるカオスを計算することで決定する。例えば、気象のモデルとして知られる連立微分方程式
ｄｘ／ｄｔ＝ａ（ｙ−ｘ）  …（１）
ｄｙ／ｄｔ＝ｂｘ−ｙ−ｘｚ    …（２）
ｄｚ／ｄｔ＝ｘｙ−ｃｚ    …（３）
を用いて算出する。ここに、ａ，ｂ，ｃは定数であり、アトラクタが発生するための適当な数値を代入する。この方程式に適当な初期値（ｘ0、ｙ0、ｚ0）を与え、一定時間毎に計算して得られる値（ｘ、ｙ、ｚ）のうち、例えば、ｘを生成源Ａの風力ＦA、ｙを生成源Ｂの風力ＦB、ｚを生成源Ｃの風力ＦCとして決定する。このようにアトラクタを用いる理由は、風の流れが周期的になったり、極端に無秩序な風を発生しないためである。
【００３３】
そして、各風の生成源に対して計算した風の強さを図３に示すような履歴テーブル３００に記憶する。履歴テーブル３００には、各風の強さとともに、その計算を実行した時刻を記憶し、現在時刻が最上段に来るように更新する。
【００３４】
一方、各草オブジェクトが受ける風の計算は、次のように行う。まず、図４（ａ）に示すように、算出対象となる地点２０２において、各生成源から受ける風のベクトル（即ち、風の力と方向）（ＦA，ＦB，ＦC）を計算する。そして、図４（ｂ）に示すように、算出した各風ベクトルを合成して、草オブジェクトが受ける風（合成ベクトル）を決定する。
【００３５】
草オブジェクトが１つの生成源Ａから受ける風ベクトルの計算は、次のようにする。まず、生成源Ａから出発して草オブジェクトに到達するまでの風の進行時間ｔを、生成源Ａと草オブジェクトとの距離ｄおよび生成源Ａの風速ＶAとから算出する（ｔ＝ｄ／ＶA）。そして、該草オブジェクトが現在時刻Ｔに受ける風の発生時刻（Ｔ−ｔ）を求める。次いで、履歴テーブル３００を読み出して、時刻（Ｔ−ｔ）に生成源Ａが生成した風の風力を調べ、草オブジェクトが生成源Ａから取得する風ベクトルを決定する。生成源ＢおよびＣが各草オブジェクトに与える風ベクトルも同様の計算によって求める。
【００３６】
なお、全ての生成源から発生する風の速度（ＶA，ＶB，ＶC）を等しく設定し、かつ、式（１）〜（３）によって得られる値を直接風力とした場合、各生成源がばらばらに風力を設定することとなり、結果的にただ闇雲に草が揺れているように見える可能性がある。そこで、式（１）〜（３）によって得られた値に、α＞β、γという関係を持つ係数（α、β、γ）を各生成源の風力（ＦA，ＦB，ＦC）にそれぞれ掛け、更に、生成源Ａの風速を生成源Ｂ，Ｃの風速よりも早く設定する。このようにすることで、生成源Ａの風をメインとして、メイン領域２００に吹く風を特徴づけ、そのメインの風が変化する様、即ちメインの風の向きが揺らいだり、メインの風の強弱が変化するといった、よりリアルな風を表現することができる。
【００３７】
図５（ａ）〜（ｄ）は、生成源Ａをメインの風生成源として設定した場合に、ワールド座標系を格子状に分割した各格子点が受ける合成ベクトルを示す図であり、同図（ａ）から（ｄ）へと時間が経過している。同図（ａ）において、図上方に存在した風力の大きい風が、時間の経過に伴って（図（ｂ）から（ｄ）と移るに従って）図の中央部分に移動している。このように、１つの生成源を他の生成源と差別化することで、オブジェクト空間全体に強弱をもって流れる風を表現することができる。また、各生成源の風力をアトラクタによって決定しているため、毎時に発生する風力を非周期的に、且つ、滑らかに変化させることができる。
【００３８】
次に、本実施の形態における構成を説明する。
図６は、本発明を家庭用のゲーム装置に適用した場合の一例を示す図である。同図において、ユーザは、ディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、ゲームプログラム等のゲームを行うために必要な情報は、本体装置に着脱自在な情報記憶媒体であるＣＤ−ＲＯＭ１２０６、ＩＣカード１２０８、メモリカード１２１２等に格納されている。
【００３９】
図７は、本実施の形態における機能ブロックの一例を示す図である。同図において、機能ブロックは、操作部１０と、処理部２０と、表示部３０と、情報記憶媒体４０とから構成されている。
【００４０】
操作部１０は、ゲームにおける自キャラクタの操作や、ゲーム開始あるいは中止等の指示を入力するためのものであり、図６に示す、ゲームコントローラ１２０２、１２０４が操作部１０に相当する。
【００４１】
処理部２０は、システム全体の制御、システム内の各ブロックへの指示、ゲーム処理、画像処理、音処理等の各種の処理を行うものであり、また、処理部２０には、主に、ゲーム演算部２２、画像生成部２４、メモリ２６が含まれる。その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、あるいはＡＳＩＣ（ゲートアレイ等）、メモリ（ＲＡＭやＲＯＭ等）等のハードウェアや、所与のプログラムにより実現できる。
【００４２】
ゲーム演算部２２は、ゲームの進行処理、選択画面の設定処理、オブジェクト空間上での各オブジェクトやキャラクタの位置や向きを求める処理、視点の位置や視線方向等を求める処理等の種々のゲーム処理を操作部１０からの操作信号や、情報記憶媒体４０から読み出すゲームプログラム４２等に基づいて実行する。
【００４３】
また、ゲーム演算部２２は、風生成部２２０と、草制御部２２２を有し、ゲームの進行に応じて風の発生タイミングを決定すると、風生成部２２０には風の発生指示を、草制御部２２２には受風処理の指示をそれぞれ出力する。
【００４４】
風生成部２２０は、ゲーム演算部２２から風の発生指示が入力されると、情報記憶媒体４０に記憶された風制御プログラム４４を読み出して、オブジェクト空間内に風の生成源Ａ〜Ｃを設定すると、一定時間毎に、各生成源Ａ〜Ｃから発生させる風の強さを上記（１）〜（３）の式を用いて計算する。また、風生成部２２０は、風力を計算する度に現在時刻をカウントし、各生成源Ａ〜Ｃの風力とともにメモリ２６に記憶される履歴テーブル３００（図３参照）に記憶する。
【００４５】
草制御部２２２は、ゲーム演算部２２から受風処理の指示が入力されると、情報記憶媒体４０に記憶された受風処理プログラム４６を読み出して、対象となる草オブジェクトが受ける風のベクトルを算出し、その風ベクトルに応じて草オブジェクトの倒れる角度、方向等を決定する。そして、決定した倒れ角、方向に従って各草オブジェクトを変形すると、該草オブジェクトのワールド座標系における座標データとともに画像生成部２４に出力する。図８は、草制御部２２２が実行する受風処理を説明するフローチャートである。
【００４６】
同図において、草制御部２２２は、変数ｉに０を代入して（ステップＳ１）、ｎ個ある草オブジェクトからｉ番目の草オブジェクトの座標を検出する（ステップＳ２）。次いで、変数ｊに０を代入し（ステップＳ３）、ｊ番目の生成源と草オブジェクトｉとの距離ｄを算出する（ステップＳ４）。
【００４７】
そして、ステップＳ４で算出した距離ｄと生成源ｊに定義された風の速度Ｖjとから風の進行時間ｔを算出し、現在の時刻Ｔに草オブジェクトｉが受ける風の発生時刻（Ｔ−ｔ）を算出する。そして、図３に示す履歴テーブル３００を呼び出して、生成源ｊが草オブジェクトｉに与える風ベクトルを決定する（ステップＳ５）。
【００４８】
次いで、ｊに１を加算し（ステップＳ６）、ｊ＝３であるか、即ち、全ての生成源からの風ベクトルを取得したか否かを判断し（ステップＳ７）、まだ計算していない生成源が存在するならば、ステップＳ４に戻る。
【００４９】
一方、ステップＳ７において、全ての生成源からの風ベクトルを取得していると判断した場合には、取得した全ての風ベクトルを合成し、草オブジェクトｉが受ける風の合成ベクトルを決定する（ステップＳ８）。
【００５０】
そして、ｉに１を加算して（ステップＳ９）、ｉ＝ｎであるか、即ち、全ての草オブジェクトに対して処理を実行したか否かを判断する（ステップＳ１０）。未処理の草オブジェクトが存在する場合には、ステップＳ２に戻って、ステップＳ２〜Ｓ１０を繰り返す。全ての草オブジェクトに対して処理が終了していれば、本処理を終了する。
【００５１】
画像生成部２４は、ゲーム演算部２２からの指示等に応じて各種の画像処理を実行する。例えば、ゲーム演算部２２が構築するオブジェクト空間における自キャラクタや仮想カメラの視点に基づく画像データを生成し、表示部３０に出力して表示させる。また、表示部３０は、画像生成部２４から入力される画像データを画面に出力するためのものであり、ＣＲＴ、ＬＣＤ、ＨＭＤ等のハードウェアにより実現できる。
【００５２】
メモリ２６は、風生成部２２０から現在の時刻および各生成源の風力が入力されると、図３に示すような履歴テーブル３００を生成、あるいは更新して記憶するように構成されている。
【００５３】
情報記憶媒体４０は、ゲームプログラム４２を記憶している。この情報記憶媒体４０の機能は、ＣＤ−ＲＯＭ、ゲームカセット、ＩＣカード、ＭＯ、ＦＤ、ＤＶＤ、メモリ、ハードディスク等のハードウェアによって実現できる。また、ゲームプログラム４２には、風制御プログラム４４および受風処理プログラム４６が含まれており、風制御プログラム４４は、風の生成源を設定するためのプログラム、風力計算をするためのプログラム、風履歴テーブル２６を生成するためのプログラムを含み、受風処理プログラム４６は、草オブジェクトの受風処理を実行するためのプログラム等を有する。
【００５４】
次に、本実施の形態における風の生成処理における全体の動作を、図９に示すフローチャートに基づいて以下説明する。なお、本処理は、一定時刻毎に（例えば、１フレーム毎に）実行するものである。
【００５５】
まず、風生成部２２０は、ゲーム演算部２２から風の発生指示が入力されると、式（１）〜（３）を用いて風力を算出し（ステップＳ２０）、履歴テーブル３００に更新する（ステップＳ２１）。
【００５６】
また、草制御部２２２は、ゲーム演算部２２から受風処理の実行指示が入力されると、対象となる全ての草オブジェクトが受ける風の強さを算出し、各草オブジェクトの倒れ角、方向を計算し（ステップＳ２２）、本処理を終了する。
【００５７】
次に、本実施の形態を実現できるハードウェアの構成の一例について、図１０を用いて説明する。同図に示す装置では、ＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、音生成ＩＣ１００８、画像生成ＩＣ１０１０、Ｉ／Ｏポート１０１２、１０１４が、システムバス１０１６により相互にデータ入出力可能に接続されている。そして、画像生成ＩＣ１０１０には、ディスプレイ１０１８が接続され、音生成ＩＣ１００８には、スピーカ１０２０が接続され、Ｉ／Ｏポート１０１２には、コントロール装置１０２２が接続され、Ｉ／Ｏポート１０１４には、通信装置１０２４が接続されている。
【００５８】
情報記憶媒体１００６は、プログラム、表示物を表現するための画像データ、音データ、プレイデータ等が主に格納されるものである。例えば、家庭用ゲーム装置では、ゲームプログラム等を格納する情報記憶媒体として、ＣＤ−ＲＯＭ、ゲームカセット、ＤＶＤ等が用いられ、プレイデータを格納する情報記憶媒体としてメモリカードなどが用いられる。また、業務用ゲーム装置では、ＲＯＭ等のメモリやハードディスクが用いられ、この場合には、情報記憶媒体１００６は、ＲＯＭ１００２になる。
【００５９】
コントロール装置１０２２は、ゲームコントローラ、操作パネル等に相当するものであり、ユーザがゲーム進行に応じて行う判断の結果を装置本体に入力するための装置である。
【００６０】
情報記憶媒体１００６に格納されるプログラム、ＲＯＭ１００２に格納されるシステムプログラム（装置本体の初期化情報等）、コントロール装置１０２２によって入力される信号等に従って、ＣＰＵ１０００は、装置全体の制御や各種データ処理を行う。ＲＡＭ１００４は、このＣＰＵ１０００の作業領域等として用いられる記憶手段であり、情報記憶媒体１００６やＲＯＭ１００２の所与の内容、あるいはＣＰＵ１０００の演算結果が格納される。
【００６１】
更に、この種の装置には、音生成ＩＣ１００８と画像生成ＩＣ１０１０とが設けられていて、ゲーム音やゲーム画像の好適な出力が行えるようになっている。音生成ＩＣ１００８は、情報記憶媒体１００６やＲＯＭ１００２に記憶される情報に基づいて効果音やバックグラウンド音楽等のゲーム音を生成する集積回路であり、生成されたゲーム音は、スピーカ１０２０によって出力される。また、画像生成ＩＣ１０１０は、ＲＡＭ１００４、ＲＯＭ１００２、情報記憶媒体１００６等から出力される画像情報に基づいてディスプレイ１０１８に出力するための画素情報を生成する集積回路である。またディスプレイ１０１８は、ＣＲＴやＬＣＤ、ＴＶ、プラズマディスプレイ、プロジェクター等の表示装置を含む意である。
【００６２】
また、通信装置１０２４は、ゲーム装置内部で利用される各種の情報を外部とやり取りするものであり、他のゲーム装置と接続されてゲームプログラムに応じた所与の情報を送受したり、通信回線を介して、ゲームプログラム等の情報を送受すること等に利用される。
【００６３】
また、図１〜図７で説明した種々の処理は、図８あるいは図９のフローチャートに示した処理等を行うための風制御プログラム４４、受風処理プログラム４６等を含むプログラムを格納した情報記憶媒体１００６と、該プログラムに従って動作するＣＰＵ１０００、画像生成ＩＣ１０１０、音生成ＩＣ１００８等によって実現される。なお、画像生成ＩＣ１０１０、音生成ＩＣ１００８等で行われる処理は、ＣＰＵ１０００あるいは汎用のＤＳＰ等によりソフトウェア的に行ってもよい。
【００６４】
図１１に、ホスト装置１３００と、このホスト装置１３００と通信回線１３０２を介して接続される端末１３０４−１〜１３０４−ｎとを含むゲーム装置に本実施の形態を適用した場合の例を示す。
【００６５】
この場合、図７に示す風制御プログラム４４、受風処理プログラム４６、ゲームプログラム４２等は、例えば、ホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。また、端末１３０４−１〜１３０４−ｎが、ＣＰＵ、画像生成ＩＣ、音生成ＩＣ、を有し、スタンドアローンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４−１〜１３０４−ｎに配送される。一方、スタンドアローンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４−１〜１３０４−ｎに伝送し端末において出力することになる。
【００６６】
なお、本発明は、上記実施の形態で説明したものに限らず、種々の変形実施が可能である。例えば、風力を計算するに当って、式（１）〜（３）を毎時計算して、算出した３つの値を風力として採用することとしたが、例えば、Ｐn+1＝Ｐn＋ｋＰn（１−Ｐn）等の漸化式等、他の式を利用して求めるようにしてもよい。なお、上記式のｎは、計算回数を示しており、ｎ＋１は現在の、ｎは前回の計算結果を意味する。また、ｋは係数であり、適当な数値を代入することでアトラクタを生成する。
【００６７】
あるいは、本実施の形態では、風の流れが周期的に、あるいは、極端な無秩序にならないためにアトラクタを用いた風力計算を採用したが、各風の生成源から発生する風の強さを周期関数によって算出することとしてもよい。この際、各生成源に異なる周期を与え、風にうねりを与えるようにしてもよい。また、風の周期を一定時間毎にランダムに変更して、長期のタイムスケールで非周期的になるようにしてもよい。この場合には、周期関数の時間に応じた周波数を記憶し、対象物が受ける風力を求める際に、風の発生時刻を周期関数に代入することで算出するようにしてもよい。
【００６８】
また、設定する風の生成源を３つとしたが、この数に限定するものではない。あるいは、生成源を平面とし、風が各生成源から平行的に発生するものとしたが、風の生成源をオブジェクト空間の所与の一点とし、放射上に風が発生することとしてもよい。この場合には、風の発生点とその影響を受ける対象物との距離を算出して力を計算することとなる。
【００６９】
なお、上記実施例では、風に対して草のオブジェクト１つ１つを計算することとしたが、風の影響を受ける対象となる事物が多量に存在し、全ての対象物に対して上記処理を実行したのでは処理が膨大になる場合には、次のように処理を簡単化してもよい。まず、対象物を図１２（ａ）に示すようなブロック毎に分割し、各ブロックの各頂点が各生成源から受ける風ベクトルを求める。そして、同図（ｂ）に示すように、各生成源から得た各風ベクトルを合成し、最終的に各頂点がうける風のベクトルを決定する。更に、同図（ｃ）に示すように、各ブロックの頂点間に任意の数のベクトルを補うことで、ブロックの各頂点に与えた風ベクトルを滑らかに変化させる。そして、各ブロック内に存在する対象物には、各草オブジェクトの最近隣に設定した風ベクトルを与えることとする。
【００７０】
また、各生成源で生成される力を「風」としたが、「波」を表現するものであってもよい。例えば、図２に示す生成源Ａは上向きベクトルを、生成源Ｂ，Ｃは下向きベクトルをそれぞれ発生するものとする。そして、水平面を図１２（ａ）に示すようにブロックで分割し、各ブロックの頂点と各生成源との距離を算出してその頂点が各生成源から取得するベクトルを算出する。図１３（ａ）は、オブジェクト空間の断面図を示すものであり、水平面３２０に定義された各ブロックの頂点が取得したベクトルを表示している。そして、各ベクトルの合成ベクトルを水面の高さとして決定することで、図１３（ｂ）に示すような波を表現する。
【図面の簡単な説明】
【図１】本発明を適用することで、草が風によって揺れる様子を示す図であり、（ａ）〜（ｃ）は、その時間経過をそれぞれ示している。
【図２】オブジェクト空間に風の生成源を設定した一例を示す図。
【図３】履歴テーブルの一例を示す図。
【図４】（ａ）は、各生成源から受ける風のベクトルをそれぞれ示した図。（ｂ）は、（ａ）に示すベクトルの合成ベクトルを示す図。
【図５】オブジェクト空間を格子状に分割し、その各格子点上で受ける風の合成ベクトルを示す図。（ａ）〜（ｄ）は、その時間経過を示す。
【図６】本発明を家庭用のゲーム装置に適用した場合の一例を示す図。
【図７】機能ブロック図。
【図８】受風処理を説明するフローチャート。
【図９】風生成処理の全体動作を説明するフローチャート。
【図１０】本実施の形態を実現できるハードウェア構成の一例を示す図。
【図１１】ホスト装置と通信回線を介して接続されるゲーム端末に本実施の形態を適用した場合の一例を示す図。
【図１２】（ａ）は、ブロックの各頂点に受ける風ベクトルを表現した一例を示す図。（ｂ）は、合成ベクトルを示す図。（ｃ）は、２つの頂点間にベクトルを補った一例を示す図。
【図１３】本発明を波に適用した場合の図。（ａ）は、各発生源から取得したベクトルを表示した一例を示す図。（ｂ）は、合成ベクトルを示す図。
【符号の説明】
１０    操作部
２０    処理部
２２    ゲーム演算部
２２０            風生成部
２２２            草制御部
２４    画像生成部
２６    メモリ
３０    表示部
４０    情報記憶媒体
４２    ゲームプログラム
４４    風制御プログラム
４６    受風処理プログラム
【図１】
0004462704.tif 000002
【図２】
0004462704.tif 000003
【図３】
0004462704.tif 000004
【図４】
0004462704.tif 000005
【図５】
0004462704.tif 000006
【図６】
0004462704.tif 000007
【図７】
0004462704.tif 000008
【図８】
0004462704.tif 000009
【図９】
0004462704.tif 000010
【図１０】
0004462704.tif 000011
【図１１】
0004462704.tif 000012
【図１２】
0004462704.tif 000013
【図１３】
0004462704.tif 000014