(57)【要約】【課題】  移動体オブジェクトの前後方向と移動方向とが異なる場合であっても、移動体オブジェクトの移動によって生じる仮想の流れをよりリアルな表現を実現する。【解決手段】レースカー４（移動体）の周りに流体力が定義された複数の気流効果領域１０を設定し、車体前方方向６と車体進行方向８との相対角θに応じて、各気流効果領域１０の気流適用度を設定する。気流効果領域１０内に位置する気流トレーサオブジェクトは、気流適用度で可変された流体力が作用するものとして移動制御される。例えば、後部気流効果領域１０Ｒｒの気流適用度は、相対角度θが０°近傍で最大、９０°で最小となるように設定される。よって、ドリフト走行時でも車体進行方向後方に、例えば砂埃を巻き上げる乱流（仮想の流れ）が表現される。【選択図】図４
2008071096.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、仮想空間内を移動する移動体の画像を生成させるためのプログラムであって、
所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段、
所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段、
前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段、
移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段、
前記移動体制御手段により制御された移動体の移動方向に対する相対的な姿勢を判定する判定手段、
前記判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも１つを可変する力場可変手段、
として前記コンピュータを機能させるためのプログラム。
【請求項２】
コンピュータに、仮想空間内を移動する移動体の画像を生成させるためのプログラムであって、
所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段、
所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段、
前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段、
移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段、
前記移動体制御手段により制御された移動体の移動方向に対する前記移動体を基準とした前記仮想力場の位置関係を判定する判定手段、
前記判定手段の判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも１つを可変する力場可変手段、
として前記コンピュータを機能させるためのプログラム。
【請求項３】
請求項１又は２に記載のプログラムであって、
前記判定手段が、前記移動体の前方方向と移動方向との角度差を求めることで前記判定を行うように前記コンピュータを機能させるためのプログラム。
【請求項４】
請求項１〜３の何れか一項に記載のプログラムであって、
前記判定手段による判定結果として取り得る値に応じた仮想力場の力、形状、大きさ及び配置位置の可変パターンが予め複数定められており、
前記力場可変手段が、前記複数の可変パターンの中から、前記判定手段の判定結果に応じた可変パターンを選択し、該選択した可変パターンに従って仮想力場を可変するように前記コンピュータを機能させるためのプログラム。
【請求項５】
請求項１〜４の何れか一項に記載のプログラムであって、
前記力場設定手段が、仮想力場を前記移動体の周囲複数箇所に設定し、
前記力場可変手段が、前記設定された複数の仮想力場それぞれについて、前記判定手段の判定結果に基づいて、力、形状、大きさ及び配置位置の内少なくとも１つを可変する、
ように前記コンピュータを機能させるためのプログラム。
【請求項６】
請求項５に記載のプログラムであって、
前記力場可変手段が、前記設定された複数の仮想力場のうち、前記移動体の移動方向側方側に位置する仮想力場の力及び／又は大きさを、移動方向前方側及び後方側に位置する仮想力場よりも小さくする、
ように前記コンピュータを機能させるためのプログラム。
【請求項７】
請求項５又は６に記載のプログラムであって、
前記力場設定手段が、仮想力場を前記移動体の周囲複数箇所に固定的に設定し、
前記力場可変手段が、前記設定された複数の仮想力場のうち、前記移動体の移動方向後方側に位置する仮想力場の力及び／又は大きさを、移動方向前方側及び側方側に位置する仮想力場よりも大きくする、
ように前記コンピュータを機能させるためのプログラム。
【請求項８】
請求項１〜７の何れか一項に記載のプログラムであって、
前記力場可変手段が、前記移動体制御手段により制御された移動体の移動速度に応じて、前記仮想力場の形状及び／又は大きさを可変する速度適応可変手段を有するように前記コンピュータを機能させるためのプログラム。
【請求項９】
請求項８に記載のプログラムであって、
前記速度適用可変手段が、前記移動体の移動速度に応じて、前記仮想力場の前記移動体の移動方向に沿った方向の長さを可変するように前記コンピュータを機能させるためのプログラム。
【請求項１０】
請求項１〜９の何れか一項に記載のプログラムであって、
前記力場可変手段が、前記仮想力場の力の可変として、流速及び／又は力方向を可変する力可変手段を有するように前記コンピュータを機能させるためのプログラム。
【請求項１１】
請求項１〜１０の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項１２】
仮想空間内を移動する移動体の画像を生成する画像生成装置であって、
所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段と、
所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段と、
前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段と、
移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段と、
前記移動体制御手段により制御された移動体の移動方向に対する相対的な姿勢を判定する判定手段と、
前記判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも１つを可変する力場可変手段と、
を備えた画像生成装置。
【請求項１３】
仮想空間内を移動する移動体の画像を生成する画像生成装置であって、
所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段と、
所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段と、
前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段と、
移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段と、
前記移動体制御手段により制御された移動体の移動方向に対する前記移動体を基準とした前記仮想力場の位置関係を判定する判定手段と、
前記判定手段の判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも１つを可変する力場可変手段と、
を備えた画像生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに、仮想空間内を移動する移動体の画像を生成させるためのプログラム等に関する。
【背景技術】
【０００２】
近年のビデオゲームでは、仮想空間にプレーヤによる操作入力に応じて移動制御されるキャラクタなどのオブジェクを配置するとともに、仮想カメラに基づくレンダリングによってゲーム画像を生成するという３次元コンピュータグラフィックスを用いた画像生成方式が主流となっている。
【０００３】
３次元コンピュータグラフィックス（３ＤＣＧ）で仮想現実をよりリアルに表現しようとするならば、本来存在しない流体の流れ（仮想の流れ）を如何にそれらしく表現するかが重要である。例えば、３ＤＣＧによるカーレースゲームを想定すると、仮想空間に設定された仮想サーキットでレースカーのオブジェクトを移動させただけの画像では、そこには現実世界で当たり前のように存在する大気の存在が欠けており、いかにも作り物の画像であるといった印象をプレーヤに与えてしまう。これに対し、レースカーの移動によって大気が押しのけられ渦巻く仮想の流れにのって流される粒子等を適当に表現するならば、ゲームの世界にもあたかも大気が存在するかのような印象を与えることが可能となる。
両者を比較すれば、明らかに後者のリアリティが高いといえる。そして、こうした仮想現実のリアリティは、特にビデオゲームではプレーヤへ感動を与えゲームへより没入させるための重要な要素となる。
【０００４】
仮想の流れを表現するには、流体学に基づく流体シミュレーションの技術を用いることができる。例えば、仮想空間全体に精密な力場（流体場）を設定し、これを視覚化するためのトレーサを運動力学に基づいてシミュレーションすることによってリアルな流れを表現できる。しかしこうした流体シミュレーションの場合、一枚の画像を生成するのに膨大な演算処理時間を要する。そのため、ビデオゲームのようにプレーヤの操作入力に応じて短時間で画像を生成し続け、高い応答性を維持しなければならない分野に適用するには、更に少ない演算負荷で表現できることも要求されてきた。
【０００５】
こうした要求に応え得るであろう従来の技術としては、例えば、列車のオブジェクトの後部に仮想的な風力が設定された限定的な影響範囲を設定し、粒子オブジェクトが風の影響範囲に入っている場合には、設定された風力の影響を考慮して粒子オブジェクトの移動を制御する技術がある（例えば、特許文献１を参照。）。また、レースカーのオブジェクトの後方に力場を設定し、この領域内に位置する粒子を力場に定義した運動法則に従って移動制御するとともに、更に粒子の色や輝度の変化を付与する技術も知られている（例えば、特許文献２を参照。）。
【特許文献１】特許第３４２８５６２号公報
【特許文献２】特開２００１−２８６６７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述の従来技術によれば、移動体キャラクタのオブジェクトの後方に仮想の流れを表現することができる。しかし、ゲームの内容によっては必ずしも移動体キャラクタの前後方向と進行方向とが一致するとは限らない。例えば、レースカーゲームでは、コーナーを走行する際の運転テクニックとして「ドリフト走行」が用いられるケースが多々見られる。「ドリフト走行」とは、車両の前部がコーナーの旋回軌跡よりも内側を向いた姿勢でコーナリングさせ、できるだけ減速をせずに高速でコーナーを走り抜ける走行テクニックである。
【０００７】
例えば、図３０は、従来の技術を適用したレースカーゲームにおいて、ドリフト走行するレースカー４の様子を正面から見たゲーム画面例である。同図に示すように、従来技術では風力を設定した影響範囲や力場が、レースカー４（移動体キャラクタ）の後部に設定されるため、レースカー４の移動にともなって生じる乱流、すなわち仮想の流れは、車体後方の車体の前後方向に沿った範囲しか表現されないことになる。同図の場合では、車体後方に舞い飛ぶ落葉１０や砂埃１２によってプレーヤはそこに気流が発生しているように感じるであろう。
【０００８】
しかし、このレースカー４はドリフト走行をしている。プレーヤにとってみれば、ドリフト中のレースカー４は見るからに斜め姿勢で進んでおり、車体前方方向６と車体進行方向８とがずれている。このような場合、プレーヤにしてみれば、レースカー４は斜め前方から風を受ける状態になっているので、風を受けるのとは反対方向の車体斜め後方に気流の乱れが発生するであろうと感覚的には理解している。ところが、従来の技術では同図の様に仮想の流れは車体前後方向沿いの後方にしか表現されていないので大変な違和感を覚えることになる。レースカー４のコーナリングは、レースゲームにおける重要な注目シーンであり、ここで違和感を与えてしまうことはゲームのリアリティを削ぎ、ゲームへの没入感を減じてしまう点で問題となる。
【０００９】
本発明は、こうした問題を鑑みてなされたものであり、その目的とするところは移動体オブジェクトの前後方向と移動方向とが異なる場合であっても、移動体オブジェクトの移動によって生じる仮想の流れをよりリアルな表現を実現することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、第１の発明は、コンピュータに、仮想空間内を移動する移動体の画像を生成させるためのプログラム（例えば、図５のゲームプログラム５０２）であって、所与の力に応じて移動制御される力影響物体（例えば、図１４の落葉１１、砂埃１２などの気流トレーサオブジェクト）を前記仮想空間に複数配置する配置手段（例えば、図５の処理部２００、気流効果表現制御部２１２、図１１のステップＳ４、ステップＳ１４）、所与の力を発生する仮想力場（例えば、図２の前部気流効果領域１０Ｆｒ、左側部気流効果領域１０Ｒｓ、右側部気流効果領域１０Ｌｓ、後部気流効果領域１０Ｒｒ）を前記移動体の周囲近傍位置に設定する力場設定手段（例えば、図５の処理部２００、気流効果領域設定部２１４）、前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段（例えば、図５のゲーム演算部２１０、物理演算部２２４、図１１のステップＳ１６）、移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段（例えば、図５のゲーム演算部２１０、物理演算部２２４、図１１のステップＳ１０、Ｓ１２）、前記移動体制御手段により制御された移動体の移動方向に対する相対的な姿勢を判定する判定手段（例えば、図５の処理部２００、気流効果表現制御部２１２、気流パターン設定部２１６、図１２のステップＳ５０）、前記判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも１つを可変する力場可変手段（例えば、図５の処理部２００、気流効果表現制御部２１２、気流パターン設定部２１６、図１２のステップＳ５２、ステップＳ６６、図２１のステップＳ５３、ステップＳ６７）、として前記コンピュータを機能させる。
【００１１】
また、第１２の発明は、仮想空間内を移動する移動体の画像を生成する画像生成装置（例えば、図１の家庭用ゲーム装置１２００）であって、所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段と、所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段と、前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段と、移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段と、前記移動体制御手段により制御された移動体の移動方向に対する相対的な姿勢を判定する判定手段と、前記判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも１つを可変する力場可変手段とを備える。
【００１２】
第１および第１２の発明によれば、移動体の移動方向に対する姿勢に応じて、仮想力場の力、形状、大きさ及び配置位置の内少なくとも１つを可変して、仮想力場が力影響物体に及ぼす影響を変更することができる。
したがって、例えば仮想力場によって仮想気流を表現するケースにおいて、レースカーが直進するように移動体の前後方向が移動体の方向と一致する場合には、仮想力場の影響を大きくすることで仮想の流れを表現し、その一方で、移動体の前後方向が移動体の方向と一致していない、例えばレースカーがドリフト走行してコーナリングしているような場合には、仮想力場の影響を小さくすることで、本来生じるべきでない場所に仮想流を表現してしまうのを抑制することができる。よって、移動体オブジェクトの前後方向と移動方向とが異なる場合であっても、移動体オブジェクトの移動によって生じる仮想の流れをよりリアルに表現できる。
【００１３】
また、第２の発明は、コンピュータに、仮想空間内を移動する移動体の画像を生成させるためのプログラム（例えば、図５のゲームプログラム５０２）であって、所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段、所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段、前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段、移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段、前記移動体制御手段により制御された移動体の移動方向に対する前記移動体を基準とした前記仮想力場の位置関係を判定する判定手段（例えば、図５の処理部２００、気流効果表現制御部２１２、気流パターン設定部２１６、図１２のステップＳ５０）、前記判定手段の判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも１つを可変する力場可変手段、として前記コンピュータを機能させるためのプログラムである。
【００１４】
また、第１３の発明は、仮想空間内を移動する移動体の画像を生成する画像生成装置（例えば、図１の家庭用ゲーム装置１２００）であって、所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段と、所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段と、前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段と、移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段と、前記移動体制御手段により制御された移動体の移動方向に対する前記移動体を基準とした前記仮想力場の位置関係を判定する判定手段と、前記判定手段の判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも１つを可変する力場可変手段とを備える。
【００１５】
第２および第１３の発明によれば、移動体の移動方向に対する該移動体を基準とした仮想力場の位置関係に応じて、仮想力場の力、形状、大きさ及び配置位置の内少なくとも１つを可変して、仮想力場が力影響物体に及ぼす影響を変更することができる。
したがって、例えば仮想力場によって仮想気流を表現するケースにおいて、レースカーが直進するように移動体の前後方向が移動体の方向と一致する場合には、レースカーの背部後方に配置された仮想力場は本来気流を発生させるべき場所に当るので、当該仮想力場の影響を大きくして仮想の流れを目立つ様に表現することができる。その一方で、レースカーがドリフト走行してコーナリングするような場合、レースカーの背部後方に配置された仮想力場は、本来気流を派手に生じるべきでない場所に該当することになるので、当該仮想力場の影響を小さくすることで、不自然な場所に仮想流が表現されてしまうのを抑制することができる。よって、移動体オブジェクトの前後方向と移動方向とが異なる場合であっても、移動体オブジェクトの移動によって生じる仮想の流れをよりリアルに表現できる。
【００１６】
第３の発明は、第１又は２の発明のプログラムであって、前記判定手段が、前記移動体の前方方向と移動方向との角度差（例えば、図４の相対角度θ）を求めることで前記判定を行うように前記コンピュータを機能させる。
【００１７】
第３の発明によれば、第１又は第２の発明と同様の効果を奏するとともに、移動体の制御に係る基本的なパラメータによって判定を実行できるので、処理負荷を少なくできる。したがって、家庭用ゲーム装置のように大型コンピュータのように高い処理能力を有しない装置であっても、より容易に発明を適用できるようになる。
【００１８】
第４の発明は、第１〜３の何れかの発明のプログラムであって、前記判定手段による判定結果として取り得る値に応じた仮想力場の力、形状、大きさ及び配置位置の可変パターン（例えば、図１７の気流パターンデータ５２１ｂ）が予め複数定められており、前記力場可変手段が、前記複数の可変パターンの中から、前記判定手段の判定結果に応じた可変パターンを選択し、該選択した可変パターンに従って仮想力場を可変するように前記コンピュータを機能させる。
【００１９】
例えば、流体場を例に挙げると、現実の力場（流体場）においては、移動体の移動に伴ってその近傍に生じる流れ（主に乱流）は、移動体の移動方向に対する姿勢変化によって様々な流れのパターンを有する。したがって、第４の発明のように、判定手段による判定結果として取り得る値に応じた仮想力場の力、形状、大きさ及び配置位置の可変パターンが予め複数定められておき、この複数の可変パターンの中から判定結果に応じた可変パターンを選択して力影響物体の移動制御に適用する。これによって、第１〜３の何れかの発明と同様の効果を奏するとともに、様々な力場のパターンでよりリアルに仮想の流れを表現することが可能になる。
【００２０】
第５の発明は、第１〜４の何れかの発明のプログラムであって、前記力場設定手段が、仮想力場を前記移動体の周囲複数箇所に設定し、前記力場可変手段が、前記設定された複数の仮想力場それぞれについて、前記判定手段の判定結果に基づいて、力、形状、大きさ及び配置位置の内少なくとも１つを可変する、ように前記コンピュータを機能させる。
【００２１】
例えば、流体場を例に挙げると、現実の力場（流体場）においては、移動体の移動方向に対する姿勢が一定であっても、移動体に対する相対的な位置によって、様々な流れのパターンが生じるうえに、パターンによってはほとんど流れの乱れが小さく視覚化がプレーヤに与える興奮に寄与し難いケースも見られる。そこで、第５の発明のように、仮想力場を移動体の周囲複数箇所に設定し、この複数の仮想力場それぞれについて、判定手段の判定結果に基づいて力、形状、大きさ及び配置位置の内少なくとも１つを可変する構成とする。これによって、第１〜４の何れかの発明と同様の効果を奏するとともに、仮想の流れを表現して視覚化することがプレーヤに与える興奮に寄与しやすい仮想力場については力や形状、大きさ、配置位置などの可変処理を実施し、反対に寄与し難い仮想力場に係る可変処理を省略することが可能となり、処理負荷を低減させることができる。
【００２２】
第６の発明は、第５の発明のプログラムであって、前記力場可変手段が、前記設定された複数の仮想力場のうち、前記移動体の移動方向側方側に位置する仮想力場の力及び／又は大きさを、移動方向前方側及び後方側に位置する仮想力場よりも小さくするように前記コンピュータを機能させる。
【００２３】
例えば、流体場を例に挙げると、現実には必ずしも移動体の移動方向側方側に位置する仮想力場の力及び／又は大きさが、移動方向前方側及び後方側に位置する仮想力場よりも小さいとは限らないが、移動方向の前後に加え側方においても同程度に仮想流を表現することとすると、移動体の形状が不適切で移動体自身が無駄に流体抵抗を産んでいるかのような印象を与えかねない。そこで、あえて積極的に第６の発明のようにすることで、第５の発明と同様の効果を奏するとともに、移動体方向側方側の仮想力場に対して、前方側及び後方側の仮想力場を際立たせることで、例えば、流体を切り裂いて進んでいるかのようなシャープな印象を与えるとともに、迫力ある演出表現が可能になる。
【００２４】
第７の発明は、第５又は６の発明のプログラムであって、前記力場設定手段が、仮想力場を前記移動体の周囲複数箇所に固定的に設定し、前記力場可変手段が、前記設定された複数の仮想力場のうち、前記移動体の移動方向後方側に位置する仮想力場の力及び／又は大きさを、移動方向前方側及び側方側に位置する仮想力場よりも大きくするように前記コンピュータを機能させる。
【００２５】
例えば、流体場を例に挙げると、現実には必ずしも前方側よりも後方側に位置する仮想力場の力及び／又は大きさが大きくなるとは限らない。したがって、リアリティを追求する観点からすれば必ずしもリアルとはいえない場面もありえるが、あえて積極的に第７の発明のようにコンピュータを機能させることで移動体前方側よりも後方側に派手に仮想流を表現する。これによって、第５又は６の発明と同様の効果を奏するとともに、リアリティを維持しつつも、移動体の実際の速度以上に迫力と勢いがあるようにロケット噴射のごとき演出的意図を込めて仮想流を表現し、よりプレーヤに感動と興奮を与えることができる。
【００２６】
第８の発明は、第１〜７の何れかの発明のプログラムであって、前記力場可変手段が、前記移動体制御手段により制御された移動体の移動速度に応じて、前記仮想力場の形状及び／又は大きさを可変する速度適応可変手段を有するように前記コンピュータを機能させる。
【００２７】
第８の発明によれば、第１〜７の何れかの発明と同様の効果を奏するとともに、仮想力場の形状及び／又は大きさを移動体の移動速度に応じて可変することで、現実と同じように移動体の移動速度の変化に応じて力場の規模を変化させるように表現し、リアリティを高めることができる。
【００２８】
さらに、第９の発明のように、第８の発明のプログラムであって、前記速度適用可変手段が、前記移動体の移動速度に応じて、前記仮想力場の前記移動体の移動方向に沿った方向の長さを可変するように前記コンピュータを機能させるならば、気流を表現する場合には移動速度の大きさを仮想の流れの長さに反映させることが可能となる。仮想力場の長さを可変するといった単純な処理でありながらも、より一層リアリティを高めることができる。
【００２９】
第１０の発明は、第１〜９の何れかの発明のプログラムであって、前記力場可変手段が、前記仮想力場の力の可変として、流速及び／又は力方向を可変する力可変手段を有するように前記コンピュータを機能させる。
【００３０】
第１０の発明によれば、第１〜９の何れかの発明と同様の効果を奏するととともに、流速及び／又は力方向を可変することができる。例えば、常に有る一定範囲内でランダムに可変させるならば常時めまぐるしく変化する乱流のような流れを、よりリアルに表現することが可能になる。
【００３１】
第１１の発明は、第１〜１０の何れかの発明のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
【００３２】
第１１の発明によれば、コンピュータに第１〜１０の何れかの発明と同様の機能を実現させることができる。
【発明の効果】
【００３３】
本発明によれば、移動体オブジェクトの前後方向と移動方向とが異なる場合であっても、現実には存在しないような場所に仮想の流れを表示させてしまうことを避け、移動体オブジェクトの移動によって生じる仮想の流れをよりリアルに実現することができる。
【発明を実施するための最良の形態】
【００３４】
〔第１実施形態〕
次に、図面を参照しながら本発明を適用した第１実施形態について説明する。本実施形態では、３ＤＣＧ画像生成装置の一例として家庭用ゲーム装置を挙げる。そして、移動体キャラクタであるレースカーをプレーヤが運転操作してサーキットでのタイムアタックを楽しむドライブゲームを実行し、レースカーの移動に伴って巻き起こす気流（仮想の流れ）の様子を表現する例について説明する。
【００３５】
図１は、家庭用ゲーム装置１２００の構成例を示す構成図である。本実施形態における家庭用ゲーム装置１２００は、ゲームコントローラ１２２０を有するゲーム装置本体１２０１に、信号ケーブル１２０９によってビデオモニタ１２３０が接続されて構成されている。
【００３６】
ゲーム装置本体１２０１は、例えばＣＰＵ、画像処理用ＬＳＩ、ＩＣメモリ等の電子部品が実装された制御ユニット１２１０と、光学ディスク１２０２やメモリカード１２０４といった情報記憶媒体の読み取り装置１２０６、１２０８を備える。そして、家庭用ゲーム装置１２００は、光学ディスク１２０２やメモリカード１２０４からゲームプログラムおよび各種設定データを読み出し、付属するゲームコントローラ１２２０に為される操作入力に基づいて各種のゲーム演算を実行しドライビングゲームを実行する。
【００３７】
家庭用ゲーム装置１２００の制御ユニット１２１０で生成されたゲーム画像の画像信号ならびにゲーム音の音声信号は、信号ケーブル１２０９によってビデオモニタ１２３０に出力され、ビデオモニタ１２３０に備えられたディスプレイ１２３２で画像表示されるとともにスピーカ１２３４から放音される。プレーヤは、ビデオモニタ１２３０のディスプレイ１２３２に表示されるゲーム画像を見つつ、スピーカ１２３４から放音されるＢＧＭや効果音といったゲーム音を聞きながら、ゲームコントローラ１２２０を操作してゲームを楽しむ。本実施形態ではドライブゲームをプレイするので、例えば方向入力キー１２２２の左右でハンドル操作、方向入力キー１２２２の上下で変速機操作、プッシュボタン１２２４でアクセルおよびブレーキ操作を入力する。
【００３８】
尚、ゲーム実行に必要なゲームプログラムおよび各種設定データは、通信装置１２１２を介して通信回線２に接続し、外部装置からダウンロードして取得する構成であっても良い。ここで言う「通信回線」とは、データ授受が可能な通信路を意味する。すなわち、通信回線とは、直接接続のための専用線（専用ケーブル）やイーサネット（登録商標）等によるＬＡＮ（Local Area Network）の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線／無線を問わない。
【００３９】
［原理説明］
次に、本実施形態における気流表現の原理について説明する。
図２は、本実施形態における仮想力場にあたる気流効果領域の設定例について示す図である。同図（ａ）は側面俯瞰図、（ｂ）は正面俯瞰図に相当する。
【００４０】
同図に示すように、本実施形態ではレースカーのオブジェクト４（以下「レースカー４」とも言う。）の前後左右の外側に、仮想力場として４つの気流効果領域１０（１０Ｆｒ、１０Ｒｓ、１０Ｌｓ、１０Ｒｒ）が設定される。気流効果領域１０は、仮想の気流による流体力（流れが物体に及ぼす力）が設定された限定領域であり、領域内に存在するオブジェクトには仮想の気流によって押し流されるように或いは吸い寄せられるように力が作用する。すなわち、領域内に存在する力影響物体であるトレーサオブジェクト（例えば、落葉や雪、砂埃といった比較的軽くて気流に乗り得るオブジェクト。）の運動を演算して求める際には、同領域に設定された流体力が作用しているものとして演算される。
【００４１】
本実施形態では、車体前方に前部気流効果領域１０Ｆｒ、車体後方に後部気流効果領域１０Ｒｒ、車体右方に右側部気流効果領域１０Ｒｓ、車体左方に左側部気流効果領域１０Ｌｓが夫々設けられている。
【００４２】
同図（ａ）に示すように、前部気流効果領域１０Ｆｒには、レースカー４が前方直進するのに伴って車体前方に発生する乱流を表現（想定）するための仮想気流が一種類だけ設定されている。すなわち、車体進行方向８に対するレースカー４の相対的な姿勢として、車体進行方向８と車体前方方向６とが同じ方向である時の姿勢を想定した気流が、前部気流効果領域１０Ｆｒに設定されている。具体的には、図中黒矢印線で示すような車体前部の下方から前部気流効果領域１０Ｆｒの前方側側面に沿って上方へ、下から上へ巻き上がり、前部気流効果領域１０Ｆｒの上面から車体前部側面に沿って巻き込む上下方向の渦状の流れと、白矢印一点鎖線で示すような車体左右側面に分かれる流れとが合成された流れとして設定されている。
【００４３】
また、後部気流効果領域１０Ｒｒには、同様にレースカー４が前方直進するのに伴って車体後方に発生する乱流を表現（想定）するための仮想気流が一種類だけ設定されている。すなわち、車体進行方向８に対するレースカー４の相対的な姿勢として、車体進行方向８と車体前方方向６とが同じ方向である時の姿勢を想定した気流が、後部気流効果領域１０Ｒｒに設定されている。具体的には、図中黒矢印線で示すような車体後部の下方から後部気流効果領域１０Ｒｆの後ろ上方に向けて跳ね上がるような流れと、白矢印一点鎖線で示すようなカルマン渦流を模した流れとが、合成された状態で設定されている。
【００４４】
同図（ｂ）に示すように、右側部気流効果領域１０Ｒｓには、車体前方方向が車体進行方向（車体中心から車体前方を向く方向。）に対して右９０°（＋９０°）を成した状態（勿論、車体前方方向に対して車体進行方向が左９０°を成した状態と表現しても良い。）、車体が左側面を前にして横滑りしているように移動する状態で車体右側部（進行方向に対して後ろ側）に発生する乱流を表現（想定）する仮想気流が設定されている。すなわち、車体進行方向８に対するレースカー４の相対的な姿勢として、車体進行方向８に対して車体前方方向６が右９０°（＋９０°）をなした姿勢を想定した気流が、右側部気流効果領域１０Ｒｓに設定されている。具体的には、図中黒矢印線で示すような車体右側面に沿って上昇し右側部気流領域１０Ｒｓの右側部に沿って下降する渦状の巻き上げ流が設定されている。
【００４５】
これと同様にして、左側部気流効果領域１０Ｌｓには、車体前方方向が車体進行方向に対して左９０°（−９０°）を成した状態、車体が右側面を前にして横滑りして移動する状態で車体左側部（進行方向に対して後ろ側）に発生する乱流を表現（想定）するための仮想気流が設定されている。すなわち、車体進行方向８に対するレースカー４の相対的な姿勢として、車体進行方向に対して車体前方方向６が左９０°（−９０°）をなした姿勢を想定した気流が、左側部気流効果領域１０Ｒｓに設定されている。具体的には、図中黒矢印線で示すような車体左側面に沿って上昇し左側部気流領１０Ｌｓの右側部に沿って下降する渦状の巻き上げ流が設定されている。
【００４６】
尚、各気流効果領域内には、それぞれ粒子系制御におけるパーティクルの放出場所になる発生源７が設定されている。
【００４７】
本実施形態では、各気流効果領域を格子状に分割し、その格子の交点に当る格子点毎に仮想気流の流体力を定義する。
例えば、図３は本実施形態における後部気流効果領域１０Ｒｒの仮想気流の定義例を示す概念図である。同図（ａ）は、レースカー４の後部並びに後部気流効果領域１０Ｒｒの真俯瞰図、（ｂ）は側面図に該当する。
そして同図に示すように、後部気流効果領域１０Ｒｒは縦・横・前後の立体格子状に区切られ、格子の交点（格子点）ごとに流体力ベクトルが設定される。黒矢印は、車体寄り下方から領域後方上部に向けて跳ね上がるような第１の気流に基づく第１流体力ベクトルを示している。第１の気流は、車体後部に設けられたディフューザ（車体下面を通る空気を後方に積極的に抜くことで車体下面に負圧を発生させるための空力デバイス。）によって発生した気流のように、上から見ると車体後部へ流れるが、横から見ると小黒矢印破線で示すように、車体寄り下方から領域後部上方へ吸い上げる或いは巻き上げるような流体
場を形成している。
一方、白矢印はカルマン渦流のような第２の気流に基づく第２流体ベクトルを示している。カルマン渦流は左右端部で交互に発生して後方へ移動する渦流であるから、第２の気流は流体場（力場）の関数として定義されており、第２流体ベクトルはその時々によってカルマン渦の位置が変化するベクトルを関数より求める。
【００４８】
さて、先に述べたように、気流効果領域１０（１０Ｆｒ、１０Ｒｒ、１０Ｒｓ、１０Ｌｓ）は領域内に流体力が設定されており、領域内に存在するオブジェクトの運動を演算して求める際には、該当領域に設定された流体力が作用しているものとして物理法則に則って演算されるのであるが、本実施形態では、この領域内に存在するオブジェクト運動を演算する際に領域に設定されている流体力を作用させる程度を、「気流適用度」の値として気流効果領域毎に設定する。具体的には、それぞれの気流効果領域１０について、当該気流効果領域１０に仮想気流を想定・設定した際のレースカー４の車体進行方向に対する相対姿勢と、現在のレースカー４の車体進行方向に対する相対姿勢とが近いほど、当該気流効果領域１０に設定する気流適用度を高くし、異なるほど低くする。
【００４９】
但し、現在のレースカー４の車体進行方向に対する相対姿勢（例えば、車体前方方向と車体進行方向との成す角度が０°）が、当該気流効果領域１０に仮想気流を想定・設定した際のレースカー４の車体進行方向に対する相対姿勢と全く逆の姿勢（例えば、車体前方方向と車体進行方向との成す角度が１８０°）である場合は、仮想気流を想定した際の姿勢とは異なるものの、全く逆の姿勢であるために想定した仮想気流とは異なるが、相対気流による乱流が発生し得ると言える。このため、気流適用度を有る程度の所定値として設定する。例えば、後部気流効果領域１０Ｒｒには、車体進行方向８に対するレースカー４の相対的な姿勢として、車体進行方向８と車体前方方向６とが同じ方向である時の姿勢を想定した気流が想定・設定されているが、この相対姿勢が全く逆の姿勢、すなわち車体進行方向８と車体前方方向６とが１８０°異なり、レースカー４の後部を前方に向けて走行しているバック走行時の状態であっても、その後部気流効果領域１０Ｒｒには乱流が発生するであろうから、有る程度の値を気流適用度として設定する。
【００５０】
そして、気流適用度の設定例を具体的に示すならば、例えば図４の様になる。同図は、レースカー４が右コーナーをドリフト走行によって軌跡５に沿って旋回する様子を、レースカー４の移動条件（車体進行方向８に対するレースカー４の相対的な姿勢）が異なる代表的な状態を真俯瞰して示す概念図である。
【００５１】
同図一番下の状態では、レースカー４はコーナー入り口に差し掛かったばかりであり、レースカー４の前方方向ベクトル６と車体進行方向ベクトル８の相対角度θがほとんど０°に近い相対姿勢となる。この相対姿勢は、前部気流効果領域１０Ｆｒおよび後部気流効果領域１０Ｒｒに仮想気流を設定した際に想定した相対姿勢（０°）と同じである。したがって、前部気流効果領域１０Ｆｒおよび後部気流効果領域１０Ｒｒの気流適用度は１００％とされる。また、一番下の状態の相対姿勢（０°）は、右側部気流効果領域１０Ｒｓおよび左側部気流効果領域１０Ｌｓに仮想気流を設定した際に想定した相対姿勢（＋９０°，−９０°）とは９０°異なる姿勢である。従って、右側部気流効果領域１０Ｒｓおよび左側部気流効果領域１０Ｌｓには、想定した仮想気流を発生させないために、これらの気流適用度は０％とされる。
【００５２】
同図下から２番目の状態は、レースカー４がコーナー進入し、ドリフト走行によって車体前方がコーナーの内側を向き始めた状態に相当する。車両前方方向ベクトル６と車体進行方向ベクトル８の相対角度θが、最初の状態よりも大きくなっている。
この状態の相対姿勢は、前部気流効果領域１０Ｆｒおよび後部気流効果領域１０Ｒｒに仮想気流を設定した際に想定した相対姿勢（０°）と異なるものの、差異の程度は小さいので気流適用度を６０％とする。またこの状態の相対姿勢は、右側部気流効果領域１０Ｒｓに仮想気流を設定した際に想定した相対姿勢に近づいているので、右側部気流効果領域１０Ｒｓの気流適用度を４０％とする。また、左側部気流効果領域１０Ｌｓについては、仮想気流を設定した際に想定した相対姿勢とは反対向きの関係に近づいているので０％のままとする。
【００５３】
同図下から３番目の状態は、レースカー４はドリフト走行によって、車体進行方向に対してほとんど真横を向いて旋回している状態に相当する。車両前方方向ベクトル６と車体進行方向ベクトル８の相対角度θがさらに大きくなり、約９０°の状態（車体前方方向が車体進行方向に対して右約９０°であるから約＋９０°）になっている。
この状態の相対姿勢（約＋９０°）は、前部気流効果領域１０Ｆｒおよび後部気流効果領域１０Ｒｒに仮想気流を設定した際に想定した相対姿勢（０°）から横を向いた状態であり、想定した仮想気流が発生しないことが明らかであるから、これらの気流適用度は０％とされる。またこの状態の相対姿勢（約＋９０°）は、右側部気流効果領域１０Ｌｓにとってみれば仮想気流を想定した際の相対姿勢（＋９０°）とほぼ同じ姿勢であるから気流適用度は１００％とされ、左側部気流効果領域１０Ｒｓにとってみれば、仮想気流を設定した際に想定した相対姿勢（−９０°）とは反対向きの関係となるが、相対気流に対する乱流が発生するという点では近いために２０％とする。
【００５４】
同図下から４番目、すなわち同図の一番上の状態は、レースカー４はコーナーを抜けつつあり、ドリフト走行も終わりかけており、車体前方方向が車体進行方向に近づき直進状態に戻りつつある状態に相当する。すなわち、同図下から１番目の状態に戻りつつあると考えられるので、仮想気流効果度も同図下から１番目の状態に近い値が設定される。
【００５５】
以上のように気流適用度を設定することによって、レースカー４の外周に設定された気流効果領域１０はレースカー４の進行方向後方（背部）に近いほど活性化し、領域内に存在するトレーサオブジェクト（力影響物体）に仮想気流の流体力をより高く作用させることになる。つまり、気流適用度の高い領域ではトレーサオブジェクトが仮想気流によって流される様子が映し出され仮想気流を視覚化する一方、気流適用度の低い領域では、トレーサオブジェクトは仮想気流による影響をほとんど受けないこととなり仮想気流は視覚化されない。したがって、ドリフト走行のように車体進行方向が車体前方方向と異なる場合であっても、現実世界におけるそれと同様にして進行方向後方に生じる気流が正しく表現されることになる。
【００５６】
［機能ブロックの説明］
次に、本実施形態における機能構成について説明する。図５は、本実施形態における機能構成の一例を示す機能ブロック図である。同図に示すように、本実施形態では、操作入力部１００と、処理部２００と、音出力部３５０と、画像表示部３６０と、通信部３７０と、記憶部５００とを備える。
【００５７】
操作入力部１００は、プレーヤによる各種の操作入力に応じた操作入力信号を処理部２００に出力する。例えば、ボタンスイッチ、アナログレバー、ダイヤル、ハンドル、トラックパッド、マウス、キーボードなど各種の入力デバイスや、傾斜センサ、加速度センサなどのセンサなどによって実現できる。図１では、ゲームコントローラ１２２０、より具体的にはこれに備えられた方向入力キー１２２２やプッシュボタン１２２４が該当する。
【００５８】
処理部２００は、例えばマイクロプロセッサやＡＳＩＣ（特定用途向け集積回路）、ＩＣメモリなどの電子部品によって実現され、操作入力部１００や記憶部５００をはじめゲーム装置１２００の各機能部との間でデータの入出力を行うとともに、所定のプログラムやデータ、操作入力部１００からの操作入力信号に基づいて各種の演算処理を実行して、ゲーム装置１２００の動作を制御する。図１では、ゲーム装置本体１２０１に内蔵された制御ユニット１２１０が該当する。
そして処理部２００は、ゲーム演算部２１０と、音生成部２５０と、画像生成部２６０と、通信制御部２７０とを備える。
【００５９】
ゲーム演算部２１０は、ゲームの進行に係る処理を実行する。例えば、レースカー４を含む各種オブジェクトを仮想空間に配置し、移動を含む動作を制御する処理や、仮想カメラの移動や姿勢の変化、レンズの焦点距離の変更といった撮影条件などに係る制御処理、オブジェクトのヒット判定処理、ゲーム結果の決定処理などが含まれる。本実施形態ではゲーム演算部２１０は更に、気流効果表現制御部２１２と、仮想空間内に配置された各種オブジェクトの運動を運動方程式に基づいて演算して求める物理演算部２２４とを備える。
【００６０】
気流効果領域表現制御部２１２は、仮想空間内にあたかも仮想の流れ（本実施形態では仮想の気流）が存在するかのような表現の制御を実行する。特には、気流効果領域１０を移動体キャラクタ（レースカー４）の周囲近傍に配置設定する気流効果領域設定部２１４と、力影響物体であるトレーサオブジェクトの配置・生成・移動に係る制御を実行する気流トレーサ制御部２２０とを備える。
【００６１】
気流パターン設定部２１６は、気流効果領域毎にその時々に応じて適用される仮想気流の流れを設定する。具体的には、記憶部５００に記憶されている気流効果領域初期設定データ５２０を参照し、同データで定義されている各気流効果領域の位置や大きさ、初期状態の仮想気流の強さや方向に揺らぎを与える処理や、異なる仮想気流成分の合成処理などを実行する。処理によって得られたデータは、気流効果領域制御データ５２４に格納する。
【００６２】
気流適用度設定部２１８は、各気流効果領域に対応する気流適用度を決定する。具体的には、記憶部５００に記憶されている気流適用度設定データ５２２を参照して、レースカー４の車体前方方向と車体進行方向との角度差に基づいて気流適用度を決定する。決定された値は、気流効果領域制御データ５２４に格納する。
【００６３】
気流トレーサ制御部２２０は、仮想気流に流されるトレーサオブジェクトの生成や配置に係る処理を実行する。例えば、落葉や雪、紙屑、羽毛など比較的軽くて風に流され易いもののオブジェクを仮想空間内に配置する。また気流トレーサ制御部２２０に含まれるパーティクル生成部２２２は、砂埃や霧、水蒸気、煙といった所謂粒子系制御で用いられるパーティクルのオブジェクトを仮想空間内に生成する。尚、パーティクル生成部２２２における処理は、公知の３ＤＣＧにおける粒子系制御の手法を適宜用いることができる。
【００６４】
音生成部２５０は、例えばデジタルシグナルプロセッサ（ＤＳＰ）などのプロセッサやその制御プログラムによって実現され、ゲーム演算部２１０による処理結果に基づいてゲームに係る効果音やＢＧＭ、各種操作音の音信号を生成し、音出力部３５０に出力する。
【００６５】
音出力部３５０は、音生成部２５０から入力される音信号に基づいて効果音やＢＧＭ等を音出力するための装置である。図１ではビデオモニタ１２３０のスピーカ１２３４がこれに該当する。
【００６６】
画像生成部２６０は、例えば、デジタルシグナルプロセッサ（ＤＳＰ）などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ＩＣメモリ等によって実現される。画像生成部２６０は、ゲーム演算部２１０による処理結果に基づいて１フレーム時間（１／６０秒）で１枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部３６０に出力する。具体的には、所定インターバル時間（例えば、１／６０秒。）毎に仮想空間内に配置された仮想カメラによって仮想空間内の様子を撮影した画像をレンダリングし、例えばレースカー４の走行速度やエンジン回転数、タイムアタック時間の計時、コースレコード、周回数などの情報表示を合成してゲーム画像を生成し、その画像信号を出力する。以下、この１枚のゲーム画像を生成・表示する際の処理単位を「インター」と呼ぶ。
【００６７】
画像表示部３６０は、画像生成部２６０から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管（ＣＲＴ）、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図１ではビデオモニタ１２３０のディスプレイ１２３２が該当する。
【００６８】
通信制御部２７０は、データ通信に係るデータ処理を実行し、通信部３７０を介して外部装置とのデータのやりとりを実現する。
【００６９】
通信部３７０は、通信回線２と物理レベルで接続して通信を実現する。例えば、無線通信機、モデム、ＴＡ（ターミナルアダプタ）、有線用の通信ケーブルのジャックや制御回路等によって実現され、図１では無線通信モジュール１２１２がこれに該当する。
【００７０】
記憶部５００は、処理部２００にゲーム装置１２００を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なゲームプログラム、各種データ等を記憶する。また、処理部２００の作業領域として用いられ、処理部２００が各種プログラムに従って実行した演算結果や操作部１００から入力される入力データ等を一時的に記憶する。この機能は、例えばＲＡＭやＲＯＭなどのＩＣメモリ、ハードディスク等の磁気ディスク、ＣＤ−ＲＯＭやＤＶＤなどの光学ディスクなどによって実現される。
【００７１】
本実施形態では記憶部５００は、ゲームプログラム５０２を記憶している。ゲームプログラム５０２は、読み出して実行することによって処理部２００をゲーム演算部２１０として機能させるためのプログラムである。ゲームプログラム５０２は、処理部２００を気流効果表現制御部２１２として機能させるための気流効果表現制御プログラム５０４を含んでいる。
【００７２】
また、記憶部５００は予め用意されるデータとして、コースデータ５１０、レースカーモデルデータ５１２、気流効果領域初期設定データ５２０、気流適用度設定データ５２２、気流トレーサモデルデータ５３０、気流トレーサ初期配置データ５３２、パーティクル設定データ５３４が記憶されている。また、ゲームの進行に伴って随時書き換えられるデータとして、レースカー制御データ５１４、気流効果領域制御データ５２４、気流トレーサ制御データ５３６を記憶する。
【００７３】
コースデータ５１０は、仮想空間にサーキットのコースを形成するための各種のオブジェクトのモデルやテクスチャなどのデータが格納されている。
【００７４】
レースカーモデルデータ５１２は、プレーヤキャラクタに当たるレースカー４を仮想空間中に配置し動作制御するのに必要なオブジェクトのモデルデータやテクスチャデータを格納している。また、レースカー４の車としての挙動を演算するのに必要な各種諸元値も格納されている。例えば、エンジンの出力値設定、エンジンの最高回転数、ミッションギアのギア比設定、最高速度値、最大減速度値、ハンドル角度などのデータがこれに該当する。
【００７５】
レースカー制御データ５１４には、ゲーム中にレースカー４を表示し動作制御するのに必要なデータが格納される。例えば、図６に示すように、キャラクタＩＤ５１４ａに対応づけて、現在の仮想空間内における位置座標５１４ｂと、車体前方方向単位ベクトル５１４ｃと、車体進行速度ベクトル５１４ｄとが格納されている。車体前方方向単位ベクトル５１４ｃは、レースカーオブジェクトの代表点（例えば、重心位置相当点。）から、車体前方を向く単位ベクトルである。尚、本実施形態では、プレーヤがレースカー４を操作して、一人でタイムアタックするドライビングゲームを想定しているので、キャラクタＩＤ５１４ａには一台のみ登録されているが、複数の車両でレースをする場合には、出走台数分だけ登録される。レースカー制御データ５１４に格納されるデータはこれらに限らず、例えば現在のエンジン回転数、ミッションのギア数、操舵角、ブレーキ量、タイヤの消耗度、走行速度、周回数とそのタイムなどが適当に含まれる。また、車体前方方向単位ベクトル５１４ｃの代わりに、所定基準姿勢を基準としたヨー角、ロール角、ピッチ角を格納することで、車体の前方が現在どちらを向いているか求めることができるようにしても良い。
【００７６】
気流効果領域初期設定データ５２０は、各気流効果領域に設定される仮想気流の初期設定を格納している。例えば図７は、本実施形態における気流効果領域初期設定データ５２０のデータ構成の一例を示すデータ構成図である。同図に示すように、本実施形態では気流効果領域を縦・横・前後の立体格子状に分割してその格子の交点である格子点５２０ｂ毎に、レースカー４の代表点Ｐｃａｒに対する相対座標５２０ｃと、その位置で作用する流体力ベクトルとが対応づけて格納される。同図の例は前部気流効果領域１０Ｆｒに適用される初期設定の例を示している。原理説明で述べたように前部気流効果領域１０Ｆｒには、巻き上げる第１の流れ（図２の黒矢印にて表示さている流れ。）と、左右に分かれる第２の流れ（図２の前部気流効果領域１０Ｆｒ内で白矢印にて表示されている流れ。）の複数の流れ成分が設定されているので、それぞれの風力に相当する第１流体力ベクトル５２０ｄおよび第２流体力ベクトル５２０ｅが対応付けて格納される。第１流体力ベクトル５２０ｄは格子点毎に流体力ベクトルを設定する形式で仮想気流を定義しているが、第２流体力ベクトル５２０ｅは流体場（力場）を関数によって定義しており、気流効果領域内の座標値、移動体の速度、および時間に基づいて任意の位置における流体力ベクトルを算出可能となっている。流体力ベクトルの定義方法は、何れの方法を採っても良いし、その他の方法でも良い。
【００７７】
気流適用度設定データ５２２は、気流効果領域毎に気流適用度を算出するためのデータを格納する具体的には、例えば図８に示すように、相対角度θに対する気流適用度を求める関数が各気流効果領域に対応付けて格納されている。
本実施形態では、レースカー４（移動体キャラクタ）の移動方向に対する相対的な姿勢を代表する値として、レースカー４の車体前方方向と車体進行方向との成す相対角度θを用いる。別の言い方をするならば、相対角度θによってレースカー４の移動方向に対する車体を基準とした気流効果領域の相対的な位置関係を示すとも言える。
相対角度θを用いるのは、レースカー４はほとんどサーキットの路面に張り付く様にして走行するので左右方向の姿勢変化、即ちヨー角の変化は顕著であるが、その他のピッチやロールの変化はヨー角の変化に対して極めて小さいためである。仮にレースカーを、例えば飛行機の様にして浮上して進む設定としたゲームとするならば、車体進行方向ベクトルを基準としたピッチ・ロール・ヨーの３軸周りの姿勢に応じて気流適用度を定義する。尚、気流適用度設定データ５２２は関数に限らずテーブルデータであっても良いのは勿論である。
【００７８】
気流効果領域制御データ５２４には、各気流効果領域の制御に係る各種データを格納しており、ゲームの進行に伴い、気流パターン設定部２１６によって随時更新される。具体的には、例えば図９は、本実施形態における気流効果領域制御データ５２４のデータ構成の一例を示すデータ構成図である。同図に示すように、対応する気流効果領域の識別情報を格納する識別ＩＤ５２４ａに対応づけて、気流効果領域の格子点５２４ｂ毎に仮想空間内における現在の位置座標５２４ｃ、現在の第１流体力ベクトル５２４ｄ、現在の第２流体力ベクトル５２４ｅ、総合流体力ベクトル５２４ｆを格納する。
【００７９】
位置座標５２４ｃには、レースカー４の移動に伴って気流効果領域が移動した結果としての現在の各格子点の位置座標が格納される。第１流体力ベクトル５２４ｄおよび第２流体力ベクトル５２４ｅには、気流効果領域初期設定データ５２０で定義されている第１流体力ベクトル５２０ｄおよび第２流体力ベクトル５２０ｅの強さと方向に適当な揺らぎを与えたものが格納される。総合流体力ベクトル５２４ｆは、第１流体力ベクトル５２４ｄと第２流体力ベクトル５２４ｅを合成した結果であり、格子点の位置で作用している流体力を一つのベクトルで表現したものである。
【００８０】
気流トレーサモデルデータ５３０には、落葉や雪、紙屑など気流にのって流れ得るものを表現した気流トレーサオブジェクトのモデルデータやテクスチャデータ、動作データなどが格納されている。
【００８１】
気流トレーサ初期配置データ５３２には、ゲーム開始時やゲーム進行中に配置される気流トレーサの位置座標や状態に係るデータが格納されている。例えば、落葉などがコーナーのところどころに配置されるように位置座標が決められている。或いは、コースの一部で雪が舞い散る様に設定しても良い。
【００８２】
パーティクル設定データ５３４は、煙や砂埃、雪煙など所謂粒子系制御のパーティクルとして扱うことのできる気流トレーサの生成に係る設定が格納されている。例えば、パーティクルの放出率、発生源からの放出広がり角、速度、寿命などがこれに当る。尚、発生源は、例えば気流効果領域内に予め適宜設定されている。図２の例では、左側部気流効果領域１０Ｌｓには、前後のタイヤハウス近傍の下位置にそれぞれ一つの発生源７が設定されており、あたかもタイヤによって巻き上がる砂埃や雪煙を表すようにパーティクルが放出される。同様にして、後部気流効果領域１０Ｒｒでは、車体寄り下位置に発生源７が複数設定されている。
【００８３】
気流トレーサ制御データ５３６は、各気流トレーサの運動制御に係るデータを格納し、ゲームの進行に伴って気流トレーサ制御部２２０によって随時更新される。例えば図１０は、本実施形態における気流トレーサ制御データ５３６のデータ構成の一例を示すデータ構成図である。同図に示すように、オブジェクトＩＤ５３６ａに対応付けて、現在の位置座標５３６ｂ、現在の速度ベクトル５３６ｃ、基本作用力ベクトル５３６ｄ、総合作用力ベクトル５３６が格納されている。その他、オブジェクトの姿勢や輝度や色など表示に係るパラメータなども適宜対応付けて格納することができる。
【００８４】
オブジェクトＩＤ５３６ａには、気流トレーサモデルデータ５３０で定義された落葉などの個体として識別できるオブジェクト（同図の「落葉０１」）や、パーティクル設定データ５３４に従って発生されたパーティクル（同図の「砂埃０２」）１つ１つの識別情報が格納される。
【００８５】
基本作用力ベクトル５３６ｄには、気流トレーサが仮想気流以外に作用する重力や環境風などによって受ける外力のベクトルを格納する。
【００８６】
総合作用力ベクトル５３６ｅには、当該オブジェクトに作用する総合的な外力ベクトルを格納する。トレーサオブジェクトが気流効果領域１０内に有る場合には、基本作用力ベクトル５３６ｄに加えて最近傍の格子点に設定されている総合流体力ベクトル５２４ｆが該当気流効果領域に適用される気流適用度分だけ作用するので、これらの合力が格納される。具体的には、「総合作用力ベクトル＝基本作用力ベクトル＋（総合流体力ベクトル×気流適用度（％）／１００）」で求められる。総合流体力ベクトルの大きさが、気流適用度によって可変されることとなり、実質的に気流効果領域に設定された仮想気流の流体力（本実施形態の場合では風力に相当する。）がレースカー４（移動体キャラクタ）の移動方向に対する相対的な姿勢に応じて可変されることになる。
【００８７】
［動作の説明］
次に、本実施形態における家庭用ゲーム装置１２００の動作について説明する。尚、ここで説明される処理は、ゲーム装置１２００の処理部２００がシステムプログラムおよびゲームプログラム５０２等を読み出して演算処理することによって実現される。また、タイムアタック時間の計時などゲームプレイの基本的な処理については公知のドライブゲームと同様にして実現できるので説明を省略し、ここでは気流効果の表現に関する処理についてのみ説明する。
【００８８】
図１１は、本実施形態における処理の流れを説明するためのフローチャートである。同図に示すように、先ず、処理部２００のゲーム演算部２１０は、コースデータ５１０を参照して仮想空間にサーキットコースを形成するためのオブジェクトを配置し（ステップＳ２）、更にそのコース上に、気流トレーサモデルデータ５３０で定義された気流トレーサのオブジェクトを気流トレーサ初期配置データ５３２に従って配置する（ステップＳ４）。そして、レースカーモデルデータ５１２を参照してレースカー４のオブジェクトをコースのスタート位置に配置する（ステップＳ６）。そして、所定のゲームスタート操作が操作入力部１００で為されたならば（ステップＳ８のＹＥＳ）、ゲームをスタートさせる。
【００８９】
ゲームがスタートしたならば、プレーヤがゲームコントローラ１２２０からハンドル操作、変速機操作、アクセル操作、ブレーキ操作などの操作入力をする。操作入力部１００は、プレーヤによる操作入力に応じた操作入力信号を処理部２００に出力する。
ゲーム演算部２１０は、例えば１／６０秒毎に、操作入力部１００からの操作入力信号に応じて、レースカー４について、位置座標５１４ｂ、車体前方方向ベクトル５１４ｃおよび車体進行方向ベクトル５１４ｄなどレースカーのオブジェクトの姿勢及び運動状態量（例えば、速度や加速度などが含まれる。）を物理演算によってシミュレーションして算出し（ステップＳ１０）、レースカー４のオブジェクトを移動させる（ステップＳ１２）。これに伴って、レースカー制御データ５１４が更新される。
【００９０】
次にゲーム演算部２１０は、気流トレーサの一つであるパーティクルを発生させ（ステップＳ１４）、次いで気流効果表現制御部２１２が、先にコース上に配置されている落葉などの気流トレーサのオブジェクトとともに、生成されたパーティクルが仮想気流によって流されるように移動制御するために気流効果処理を実行する（ステップＳ１６）。
【００９１】
図１２は、本実施形態における気流効果処理の流れを説明するためのフローチャートである。気流効果処理では、先ず気流効果表現制御部２１２が、新たに算出されたレースカー４の車体前方方向単位ベクトル５１４ｃと車体進行速度ベクトル５１４ｄとが成す相対角度θを算出する（ステップＳ５０）。先に述べた様に、レースカー４のオブジェクトはサーキットのコース上を移動するので、実質的にその姿勢変化はヨー角変化に他ならない。したがって、実質的に当該ステップによってレースカー４の移動方向に対する姿勢を判定することになる。また、そもそも気流効果領域側１０はレースカー４が移動方向に対して所定の姿勢をとって移動する状態を想定して設定されているので、気流効果領域１０側から見れば気流効果領域のレースカーオブジェクトの移動方向に対する相対位置を判定することとも同義である。
【００９２】
次いで、気流効果表現制御部２１２は、実際に適用される仮想気流のパターンを決定する気流パターン設定処理を実行する（ステップＳ５２）。
【００９３】
図１３は、本実施形態における気流パターン設定処理の流れを説明するためのフローチャートである。気流パターン設定処理では、気流効果表現制御部２１２が、気流効果領域毎にループＢ１の処理を行う（ステップＳ８０〜Ｓ９８）。ループＢ１では、先ず処理対象となっている気流効果領域の各格子点について当該格子点位置における流体力ベクトルを求めるループＢ２の処理を実行する（ステップＳ８２〜Ｓ９４）。
【００９４】
ループＢ２では、先ず気流効果領域初期設定データ５２０を参照し、処理対象の格子点に設定されている第１流体力ベクトル５２０ｄを読み出し、これに対してベクトルの方向および大きさの両方について、所定範囲内でランダムに可変し揺らぎを与える（ステップＳ８４）。この際、第１流体力ベクトルがベクトル値ではなく、関数によって定義されている場合には、例えば当該格子点の座標値と時刻などのパラメータに基づいて第１流体力ベクトルを算出するのは勿論である。そして、可変した第１流体ベクトルを気流効果領域制御データ５２４に第１流体力ベクトル５２４ｄとして格納する（ステップＳ８６）。これによって本来一様に定義されている仮想気流に現実のようにランダムな変化を与えてリアリティを高める。
【００９５】
次に、気流効果表現制御部２１２は、同様にして処理対象の格子点に設定されている第２流体力ベクトル５２０ｅを読み出して可変し（ステップＳ８８）、可変した第２流体ベクトルを気流効果領域制御データ５２４に第２流体力ベクトル５２４ｅとして格納する（ステップＳ９０）。そして、新たに求められた第１流体力ベクトル５２４ｄと第２流体力ベクトル５２４ｅとを合成して、気流効果領域制御データ５２４に総合流体力ベクトル５２４ｆとして格納し（ステップＳ９２）、当該格子点に対するループＢ２の処理を終了する（ステップＳ９４）。
【００９６】
次に、全ての格子点についてループＢ２の処理が終了したならば、気流効果表現制御部２１２は、先に求められたレースカー４の移動に伴う処理対象の気流効果領域の移動を行う。すなわち、処理対象の気流効果領域に含まれる全格子点の位置座標を、レースカー４の代表点に対する相対位置関係に従って更新し、気流効果領域制御データ５２４の位置座標５２４ｃとして格納する（ステップＳ９６）。そして、処理対象の気流効果領域に対するループＢ１の処理を終了する（ステップＳ９８）。
ここで、全ての気流効果領域についてループＢ１の処理を実行したならば、気流パターン設定処理を終了する。
【００９７】
図１２のフローに戻って、気流効果表現制御部２１２は次に、気流適用度設定データ５２２を参照して、先に算出されて相対角度θに基づいて各気流効果領域１０の気流適用度を求める（ステップＳ５４）。
【００９８】
ここまでの一連の処理によって、現在のインターにおけるレースカー４が移動することによって発生する仮想気流の力場が決定したことになる。そこで、決定した仮想気流を実際に仮想力場内に存在する気流トレーサの移動制御に適用する。
そのために先ず、気流効果表現制御部２１２は、ゲーム空間中の画像表示の対象範囲であるクリッピング範囲内に位置するパーティクルを含む気流トレーサを抽出する（ステップＳ５６）。そして、抽出された全ての気流トレーサのオブジェクトについてループＡの処理を実行する（ステップＳ５８〜Ｓ７０）。
【００９９】
ループＡでは、先ず処理対象となっている気流トレーサオブジェクトの自由落下や環境風による外力に相当する基本作用力ベクトル５３６ｄを算出し、気流トレーサ制御データ５３６に格納する（ステップＳ６０）。
【０１００】
次に、当該処理対象オブジェクトが、気流効果領域内に存在するか否かを判定する（ステップＳ６２）。気流効果領域内に存在しない場合には（ステップＳ６２のＮＯ）、気流効果表現制御部２１２は、当該オブジェクトを先に求めた基本作用力ベクトル５３６ｄのみが作用しているものとして物理法則に従って移動位置・姿勢・運動状態量などを算出し、気流トレーサ制御データ５３６を更新するとともに当該オブジェクトを移動制御する（ステップＳ６３）。そして、当該オブジェクトへのループＡ処理を終了する（ステップＳ７０）。
【０１０１】
一方、処理対象のオブジェクトが気流効果領域内に存在する場合（ステップＳ６２のＹＥＳ）、気流効果領域制御データ５２４を参照して処理対象オブジェクトに最近傍の格子点を抽出し、当該格子点に設定されている総合流体力ベクトル５２４ｆを参照する（ステップＳ６６）。
【０１０２】
そして、「総合作用力ベクトル＝基本作用力ベクトル＋（総合流体力ベクトル×気流適用度（％）／１００）」で総合作用力ベクトル５３６ｅを求め、気流トレーサ制御データ５３６に格納する（ステップＳ６８）。すなわち、処理対象オブジェクトが存在する気流効果領域に適用される気流適用度を、参照した総合流体力ベクトル５２４ｆに乗じて、仮想気流によって作用する外力を決定し、ベクトル和をとってこれを基本作用力ベクトル５３６ｄとする。これによって、最終的に処理対象のオブジェクトに現在のインターで作用する外力が求められたことになる。したがって、気流効果表現制御部２１２は、求めた総合流体力ベクトル５２４ｆが作用するのとして物理法則に従って当該処理対象のオブジェクトの移動位置・姿勢・運動状態量などを算出し、気流トレーサ制御データ５３６を更新するとともに、当該オブジェクトを移動制御する（ステップＳ６８）。そして、当該オブジェクトへのループＡ処理を終了する（ステップＳ７０）。
そして、クリッピング範囲内の全ての気流トレーサについてループＡの処理を実行したならば気流効果処理を終了する。
【０１０３】
図１１のフローに戻って、ゲーム演算部２１０はレースカー４をその撮影範囲に収めるように仮想カメラを移動処理する（ステップＳ１８）。そして、音生成部２５０がゲーム音の音信号を生成し音出力部３５０に出力し、画像生成部２６０がゲーム画像を生成して画像信号を画像表示部３６０に出力する（ステップＳ２０）。
ここで、所定のゲーム終了条件を満たしているか否かを判定する。例えば、本実施形態では、所定の周回数を走り終えたならばゲーム終了としても良い。そして、ゲーム終了条件を満たしていないと判定されたならば（ステップＳ２２のＮＯ）、ステップＳ１０に戻り、ゲーム終了条件を満たしているならば（ステップＳ２２のＹＥＳ）、ゲーム終了となる。
【０１０４】
以上の処理によって、移動体キャラクタの移動方向に対する姿勢にかかわらず、あたかも気流が存在するかのようなリアルな表現が実現できる。
例えば、図１４は、本実施形態におけるゲーム画面の一例を示す図である。同図（ａ）は、右コーナーに進入するレースカー４を正面から仮想カメラで撮影した様子に相当する。レースカー４はまだコーナーに差し掛かったばかりであり、大きな白矢印で示された旋回軌跡に沿ってほとんど直進している姿勢である。この姿勢では、レースカー４の車体前方方向は車体進行方向に沿っているので、後部気流効果領域１０Ｒｒ及び前部気流効果領域１０Ｆｒが適用される。その結果、同図（ａ）に示すように、車体後方に落葉１１や土煙１２が巻き上がっている様子が表現され、車体前方では落葉１１が車体の左右に流れ、或いはボンネット上に巻き上げられる様子がリアルに表現される。
【０１０５】
また、同図（ｂ）は右コーナーの中ほどを旋回するレースカー４を前方より撮影した様子に相当する。レースカー４はドリフト走行によってコーナーを駆け抜ける最中であり、旋回軌跡に対して車体前方が旋回内側に向いた所謂「ドリフト姿勢」となっている。したがってこのケースでは、右側部気流効果領域１０Ｒｓと後部気流効果領域１０Ｒｒとが中程度に適用される。その結果、現実の自動車が右コーナーをドリフト走行で旋回したのと同じように車体右後方に落葉１１や土煙１２が巻き上がっている様子が表現される。
【０１０６】
［ハードウェア構成の説明］
次に図１５を参照して、本実施形態におけるゲーム装置１２００を実現するためのハードウェア構成の一例について説明する図である。ゲーム装置１２００は、ＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、画像生成ＩＣ１０１０、音生成ＩＣ１００８、Ｉ／Ｏポート１０１２，１０１４がシステムバス１０１６により相互にデータ入出力可能に接続されている。Ｉ／Ｏポート１０１２にはコントロール装置１０２２が、Ｉ／Ｏポート１０１４には通信装置１０２４が、それぞれ接続されている。
【０１０７】
ＣＰＵ１０００は、情報記憶媒体１００６に格納されるプログラム、ＲＯＭ１００２に格納されるシステムプログラム（装置本体の初期化情報等）、コントロール装置１０２２によって入力される信号等に従って、装置全体の制御や各種データ処理を行う。
【０１０８】
ＲＡＭ１００４は、ＣＰＵ１０００の作業領域等として用いられる記憶手段であり、情報記憶媒体１００６やＲＯＭ１００２内の所与の内容、ＣＰＵ１０００の演算結果等が格納される。
【０１０９】
情報記憶媒体１００６は、プログラム、画像データ、音データ、プレーデータ等が主に格納されるものであり、情報記憶媒体として、ＲＯＭ等のメモリやハードディスクや、ＣＤ−ＲＯＭ、ＤＶＤ、ＩＣカード、磁気ディスク、光ディスク等が用いられる。尚、この情報記憶媒体１００６は、図５に示す記憶部５００に相当するものである。
【０１１０】
また、この装置に設けられている画像生成ＩＣ１０１０と音生成ＩＣ１００８により、音や画像の好適な出力が行えるようになっている。
【０１１１】
画像生成ＩＣ１０１０は、ＣＰＵ１０００の命令によって、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６等から送られる情報に基づいて画素情報を生成する集積回路であり、生成される画像信号は、表示装置１０１２に出力される。表示装置１０１２は、ＣＲＴやＬＣＤ、ＥＬＤ、プラズマディスプレイ、或いはプロジェクター等により実現され、図５に示す画像表示部３６０に相当する。
【０１１２】
また、音生成ＩＣ１００８は、ＣＰＵ１０００の命令によって、情報記憶媒体１００６やＲＯＭ１００２に記憶される情報、ＲＡＭ１００４に格納される音データに応じた音信号を生成する集積回路であり、生成される音信号はスピーカ１０２０によって出力される。スピーカ１０２０は、図５に示す音出力部３５０に相当するものである。
【０１１３】
コントロール装置１０２２は、プレーヤがゲームに係る操作を入力するための装置であり、その機能は、レバー、ボタン、筐体等のハードウェアにより実現される。尚、このコントロール装置１０２２は、図５に示す操作入力部１００に相当するものである。
【０１１４】
通信装置１０２４は装置内部で利用される情報を外部とやりとりするものであり、プログラムに応じた所与の情報を他の装置と送受すること等に利用される。尚、この通信装置１０２４は、図５に示す通信部３７０に相当するものである。
【０１１５】
そして、ゲーム処理等の上記した処理は、図５のゲームプログラム５０２等を格納した情報記憶媒体１００６と、これらプログラムに従って動作するＣＰＵ１０００、画像生成ＩＣ１０１０、音生成ＩＣ１００８等によって実現される。ＣＰＵ１０００、画像生成ＩＣ１０１０、及び音生成ＩＣ１００８は、図５に示す処理部２００に相当するものであり、主にＣＰＵ１０００がゲーム演算部２１０、画像生成ＩＣ１０１０が画像生成部２３０に、音生成ＩＣ１００８が音生成部２５０にそれぞれ相当する。
【０１１６】
尚、画像生成ＩＣ１０１０、音生成ＩＣ１００８等で行われる処理は、ＣＰＵ１０００或いは汎用のＤＳＰ等によりソフトウェア的に行ってもよい。この場合には、ＣＰＵ１０００が、図５に示す処理部２００に相当することとなる。
【０１１７】
以上、第１実施形態について説明したが、移動体キャラクタの移動方向に対する相対的な姿勢の判定、別の言い方をすると、移動体の移動方向に対する前記移動体を基準とした気流効果領域の位置関係の判定に、移動体の前方方向ベクトルと進行方向ベクトルとの相対角度差θを用いたがこれに限るものではない。
【０１１８】
例えば、気流効果領域にそれぞれ代表点を設定して気流効果領域初期設定データ５２０に格納しておく。そして、車体前方方向単位ベクトル５１４ｃを用いて演算処理するステップにおいては、車体前方方向単位ベクトル５１４ｃに代えて気流効果領域の代表点からレースカー４の代表点Ｐｃａｒへ向かう相対位置ベクトルを求め、この相対位置ベクトルと車体進行方向ベクトル５１４ｄとの相対角度を用いる構成としても良い。この場合、図１６の気流適用度設定データ５２２Ｂのように、相対位置ベクトルと車体進行方向ベクトル５１４ｄとの相対角度に基づいて気流適用度を定義する。
【０１１９】
〔第２実施形態〕
次に、本発明を適用した第２実施形態について説明する。本実施形態は、基本的に第１実施形態と同様の構成を有するが、気流効果領域に適用されるベースとなる気流パターンが複数設定されており、移動体キャラクタの移動方向に対する姿勢に応じて気流パターンが選択・適用する特徴を有する。尚、第１実施形態と同様の構成要素については同じ符号を付与しその説明は省略する。
【０１２０】
［機能ブロックの説明］
図１７は、本実施形態における機能構成の一例を示す機能ブロック図である。本実施形態の機能ブロックでは、基本的には第１実施形態のそれと同様である。
特徴としては、第１実施形態における気流パターン設定部２１６、気流適用度設定部２１８、気流効果領域初期設定データ５２０、気流適用度設定データ５２２に相当する機能構成要素として、気流パターン設定部２１７、気流適用度設定部２１９、気流効果領域初期設定データ５２１、気流適用度設定データ５２３を備えている点が挙げられる。
【０１２１】
気流パターン設定部２１７は、第１実施形態の気流パターン設定部２１６と同様の機能を奏するとともに、更に気流効果設定処理を実行するに際してレースカー４の移動方向に対する姿勢から気流効果領域初期設定データ５２１に格納されている複数の気流パターンから一つを選択して、選択した気流パターンについて第１実施形態と同様にして各格子点における流体力ベクトルを設定する。
【０１２２】
図１８は、本実施形態における気流効果領域初期設定データ５２１のデータ構成の一例を示すデータ構成図である。同図に示すように、対象となる気流効果領域の識別情報を格納する対象エリア５２１ａに対応付けて、複数の気流パターンデータ５２１ｂが定義されている。
【０１２３】
一つの気流パターンデータ５２１ｂには、気流パターンＩＤ５２１ｃと、当該気流パターンが適用される適用条件５２１ｄとが対応づけられ、更に格子点ＩＤ５２１ｅ毎にレースカー４の代表点Ｐｃａｒを基準とする相対座標５２１ｆと、当該格子点位置における流体力ベクトル５２１ｇとが対応付けられている。
本実施形態では、レースカー４の移動方向に対する姿勢を判定するため、別の言い方をするとレースカー４の移動方向を基準とした気流効果領域の相対位置を判定するために、レースカー４の車体前方方向単位ベクトル５１４ｃと車体進行方向ベクトル５１４ｄとの相対角度θを用いるので、適用条件５２１ｄも相対角度θの角度範囲で定義されている。尚、ここでは流体力ベクトル５２１ｇを一つのデータとして示しているが、第１実施形態と同様に複数の流体力の合成とする場合には適宜複数としても良いのは勿論である。
【０１２４】
図１９および図２０は、本実施形態における気流パターンの設定例の一部を示す概念図である。図１９（ａ）（ｂ）、図２０（ａ）（ｂ）の順で、車体前方方向６が車体進行方向８に対して上から見て右回りに変化している状態、つまり右コーナーをドリフト走行してコーナー出口で反対向きになってしまうまでの状態に相当する。尚、車体が車体進行方向に対して上から見て左回りに変化する場合（＝相対角度θがマイナス方向に変化する場合）も同様である。
【０１２５】
図１９（ａ）は、相対角度θが０°近傍の値である場合に設定される各気流効果領域の気流パターンを示している。例えば、前部気流効果領域１０Ｆｒの気流パターンＦｒ１では、黒矢印で示されているボンネットへ乗り上げる第１の流れと、一点鎖線白矢印で示されている車体下面または側面に向けて流れる第２の流れとが設定されている。左側部気流効果領域Ｌｓの気流パターンＬｓ１では、黒矢印の車体に沿ってうねりつつ、やや外側に広がる第１の流れと、一点鎖線白矢印の車体進行方向に向かって右巻き渦流の第２の流れとが設定されている。右側気流効果領域Ｒｓの気流効果パターンＲｓ１は、左側部気流効果領域Ｌｓと左右対称関係の仮想気流が設定されている。そして、後部気流効果領域Ｒｒの気流パターンＲｒ１では、黒矢印の車体後部ディフューザによる巻き上げる第１の流れと、一点鎖線白矢印の車体後部へ回り込むカルマン渦流を模した第２の流れとが設定されている。
【０１２６】
同様にして、図１９（ｂ）、図２０（ａ）および（ｂ）では、相対角度θの条件毎に、その条件において実際の自動車が移動した場合に各気流効果領域にて生ずるであろう気流パターンを設定している。尚、ここでは相対角度θが４５°刻みで条件を分けているが、これに限るものではなく適宜更に細かく設定しても良いのは勿論である。
【０１２７】
また、更に本実施形態で特徴的である点は、相対角度θの条件に応じて、各気流効果領域の形状が可変する様に定義されていることである。
例えば、後部気流効果領域１０Ｒｒについてみると、図１９（ａ）の相対角度θが０°近傍である場合の車体前後方向長さ（領域の奥行き相当長さ）ＬＤｒｒ１が最大となり、図２０（ａ）の相対角度θが９０°近傍および１８０°近傍である場合の同長さＬＤｒｒ３、ＬＤｒｒ４が最小となるように設定されている。
また例えば、前部気流効果領域１０ｆｒでは、相対角度θが０°前後から９０°近傍までにおける車体前後方向長さ（領域の奥行き相当長さ）ＬＤｆｒ１〜ＬＤｆｒ３が最小となり、相対角度θが増すにつれて大きくなり、相対角度θが１８０°近傍である場合の長さＬＤｆｒ４が最大となるように設定されている。
【０１２８】
また例えば、右側部気流効果領域１０Ｒｓについては、図１９（ａ）の相対角度θが０°前後の車体側方向長さ（領域の横幅相当長さ）ＬＷｒｓ１が最小となり、ここから相対角度θが増加するにともなって大きくなり、図２０（ａ）の相対角度θが９０°近傍である場合に一端、長さＬＷｒｓ３が最大となる。そして、更に相対角度θが増加すると今度は小さくなり、相対角度θが１８０°近傍で再び長さＬＷｒｓ４が最小となるように設定されている。左側部気流効果領域１０Ｌｓについては、右側部気流効果領域１０Ｒｓと同様である。
【０１２９】
こうした設定によって、移動体キャラクタの移動方向を基準とした気流効果領域の相対位置が真後ろ（移動背面側）に近いと気流効果領域が移動方向後方へ向けて拡大するように制御される。第１実施形態のように単一の気流パターンしか設定されていない場合と比較すると、本実施形態では移動体キャラクタの移動方向に対する姿勢が変化するのに応じて、気流の形態と発生箇所、更に気流の大きさをより細かく可変し、実際に自動車が走行したときと同じようによりリアルに表示させることが可能となる。
【０１３０】
気流適用度設定データ５２３は、第１実施形態における気流適用度設定データ５２２と同様にして気流効果領域毎の相対角度θから気流適用度を求めるためのデータが格納されている。ただし、本実施形態では上述のように、気流効果領域毎に気流パターンが複数設定されており、移動体キャラクタの移動方向に対する姿勢が変化した状態に対応してリアルな気流パターンを設定できる。したがって、例えば図２１に示すように、０％以上の気流適用度が算出されるように関数テーブル５２３ａが設定されている。また、本実施形態における特徴の一つとして、関数テーブル５２３ａを参照して得られた気流適用度を更に車体進行速度に応じて可変するための車体速度係数ｋｓを算出するための係数テーブル５２３ｂが設定されている。
【０１３１】
車体速度係数ｋｓは、気流適用度に乗算される係数である。係数テーブル５２３ｂでは、車体進行速度が高くなるほど「１．０」に近づく様に係数ｋｓが設定されている。従って、レースカー４が低速で走っている場合には参照された気流適用度は小さく補正され、高速走行している場合には参照した気流適用度は補正される程度が小さくなり参照値に近い値で適用されることになる。結果、低速走行時には気流効果領域が活性化せず、ゲーム画面上は気流が無い状態に近づく。反対にレースカー４が高速走行している場合には、気流効果領域が活性化し、ゲーム画面上、派手に気流が発生しているように表現される。
【０１３２】
［動作の説明］
次に、本実施形態における家庭用ゲーム装置１２００の動作について、第１実施形態と異なる点を説明する。
本実施形態では、基本的に第１実施形態と同様の処理が行われるが、第１実施形態の気流効果処理（ステップＳ１６）に代えて、気流効果処理Ｂを実行する点が特徴として挙げられる。
【０１３３】
図２２は、気流効果処理Ｂの流れを説明するためのフローチャートである。同図に示すように、気流効果領域設定部２１４は、先ず第１実施形態と同様に相対角度θを算出し（ステップＳ５０）、気流効果パターン設定処理Ｂを実行する（ステップＳ５３）。
【０１３４】
図２３は、気流パターン設定処理Ｂの流れを説明するためのフローチャートである。同図に示すように、第１実施形態と同様に各気流効果領域についてループＢ１の処理を実行する。そして、ループＢ１の処理としてループＢ２の処理を実行する前に、気流効果領域設定部２１４が気流効果領域初期設定データ５２１を参照し、処理対象の気流効果領域に対応する相対角度θに応じた気流パターンを選択する（ステップＳ８１）。そして、ループＢ２では、選択した気流パターンに基づいてステップＳ８４〜Ｓ９２に掛けての処理を実行する（ステップＳ８３）。つまり、ステップＳ８１によって、現在の移動体キャラクタの移動方向（＝車両進行速度ベクトル５１４ｃの方向）に対する姿勢で、処理対象の気流効果領域の配置位置で生じるとされる気流パターン５２１ｂを選択し、選択された気流パターン５２１ｂを処理に用いる。
【０１３５】
気流パターン設定処理Ｂを終了したならば図２２のフローに戻り、気流効果領域設定部２１４は次に、気流適用度設定データ５２１を参照し、相対角θに基づいて各気流効果領域の気流適用度と係数Ｋｓとを求め（ステップＳ５５）、クリッピング範囲内の気流トレーサおよびパーティクルのオブジェクトを抽出する（ステップＳ５６）。そして、抽出された全てのオブジェクトついてループＡの処理を実行する。
【０１３６】
そして本実施形態では、ループＡの処理を実行する際、総合作用力ベクトル５３６ｅを「総合作用力ベクトル＝基本作用力ベクトル＋（総合流体力ベクトル×気流適用度×係数ｋｓ）」の式で算出する（ステップＳ６７）。
【０１３７】
ステップＳ６７によって、車体進行速度が低いほど気流適用度が小さくなるように可変されたうえで総合作用力ベクトル５３６ｅが算出されることになる。つまり、移動体キャラクタの移動方向に対する姿勢が同じであっても、移動速度が小さいほど気流効果領域が活性化せず、気流トレーサはさほど仮想気流の影響を受けない。したがって、ゲーム画面上は弱い気流が存在する程度に表現される。反対に、移動速度が大きいほど気流効果領域が活性化する。したがって、気流トレーサが仮想気流に乗って派手に動くように表現される。よって、低速走行時には気流が発生し難く視覚的にもあまり強い印象を受けないが、走行速度が高くなるにつれて気流がより強く大きく発生し、視覚的に派手に見えるというように実際の現象により近い表現が可能となる。
【０１３８】
例えば、図２４は本実施形態における気流パターンの選択例とそのゲーム画面の一例を示す図である。右コーナーをドリフト走行によって旋回中のレースカー４を正面から撮影した状態に相当する。同図（ａ）に示すように、レースカー４はドリフトによって車体前方方向６が車体進行方向８に対して、上から見て右回転方向にずれている。したがって、前部気流効果領域１０Ｆｒには、気流パターンＦｒ２が選択され、後部気流効果領域１０Ｒｒには気流パターンＲｒ２、左側部気流効果領域１０Ｒｓには気流パターンＲｓ２、右側部気流効果領域１０Ｌｓには気流パターンＬｓ２が夫々選択される。そして、この時の相対角度θに応じた気流適用度が、車体進行速度に応じた係数ｋｓによって可変されて適用される。
【０１３９】
この結果、同図（ｂ）に示すように、レースカー４の左後方に派手に落葉１１−１が巻き込まれながら砂埃１２が舞う一方、車体全部および車体右側部では、落葉１１−２，１０−３，１０−４が車体に沿って流れる様子が表現される。プレーヤは、落葉１１−１や砂埃１２から本物同様にレースカー４のドリフト走行のダイナミックさを感じる。そして、落葉１１−２，１０−３，１０−４によって、車体左後方ほどではないが車体が大気を押し分けるその影響で気流が生じている様に感じることで、よりリアルティを感じることになる。
【０１４０】
［変形例］
以上、本発明を適用した第１実施形態および第２実施形態について説明したが、本発明の形態はこれらに限るものではなく、発明の主旨を逸脱しない限りにおいて適宜構成要素の追加・削除・変更をすることができる。
【０１４１】
例えば、上記実施形態では移動体としてレースカーを例に挙げたが、例えば図２５に示すようにジェットスキー２０（このケースでは、操縦するキャラクタ込みの意。）を含む船舶にも適用することができる。この場合、ジェットスキー２０で水上を走行する場合に発生する気流を、船体の外側に気流効果領域１０で仮想流体からの影響を受ける水しぶきや、霧、雪などで表現することができる。この場合、気流効果領域の流体力や形状及び大きさを変更するためのパラメータとして、第１及び第２実施形態における相対角度θに相当するヨー角や、ピッチ角を用いることができる。
【０１４２】
また、例えば図２６に示すように戦闘機２２を含む航空機にも適用することができる。この例の場合では、主翼の上面及び胴体前方上面に気流効果領域１０を配置し、ピッチ各（仰角）が所定角度以上になった場合に、気流トレーサオブジェクトを生成するとともに気流効果領域１０の流体力や形状及び大きさの内少なくとも１つを可変することによって翼端で生じる渦などの気流を表現することが可能になる。すなわち、空気中や水中などあらゆる流体中で移動するオブジェクトについては同様に適用することができる。
【０１４３】
また、第１および第２実施形態では、家庭用ゲーム装置１２００でゲームを実行する例を挙げたが、業務用ゲーム装置、家庭用ゲーム装置、或いはパソコンなどで実行する構成としても良い。
例えば、図２７は業務用ゲーム装置１３００の構成の一例を示す斜視外観図である。同図にしめすように、業務用ゲーム装置１３００には、処理部２００（図５）に相当する制御ユニット１３２０が設けられている。基板ユニット１３２０には、記憶部５００（図５）に相当するＲＯＭやＲＡＭ、ハードディスク、ＩＣメモリなどが搭載されており、所定のプログラムに従って装置各部を制御してゲームを実行する。プレーヤは筐体１３０１に設けられたディスプレイ１３０２およびスピーカ１３０４に向かってシート１３０６に着座する。そして、操作入力部１００（図５）に相当するハンドル１３１０、変速機操作レバー１３１２、アクセルペダル１３１４、ブレーキペダル１３１６でゲーム操作を入力する。
【０１４４】
また、第１および第２実施形態では、気流効果領域１０を移動体に対して固定位置としているが、これに限らず変動させても良い。例えば、レースカー４の車体にそってランダムに平行移動させるならば、仮想気流により一層の揺らぎを与えリアリティを高めることができる。
【０１４５】
或いは、図２８に示すように、複数の気流効果領域ＡＲ１〜ＡＲ５をレースカー４の周りに沿って周回自在に配列させる構成としても良い。
例えば、基本的には第１実施形態と同様であるが、気流効果領域初期設定データを図２９に示すように設定する。同図に示すように、気流効果領域初期設定データ５２５では、パターンＩＤ５２５ｃに対応づけて、複数の気流パターンデータ５２５ｂが登録されている。それぞれの気流パターンデータ５２５ｂには、当該パターンが適用される相対角度θの選択条件５２５ｄと、領域ＩＤ５２５ｅ毎の相対座標値５２５ｆおよび流体力ベクトル５２５ｇとが格納されている。
【０１４６】
相対座標値５２５ｆには、レースカー４の代表点Ｐｃａｒに対する各気流効果領域の代表点Ｐ１１，Ｐ１２…の相対位置座標が格納されている。複数ある気流効果領域ＡＲ１〜ＡＲ５の相互の位置関係、すなわち互いの配列順は固定されている。また、中央寄りの領域の気流適用度が最も高く、配列の端ほど低くなるように設定されている。
流体力ベクトル５２５ｇは、例えば領域下部からレースカー４から離れた側を上昇し、レースカー４寄りを下降するような渦流を模した設定、カルマン渦を模した渦流を模した設定などが適宜設定される。
【０１４７】
そして、処理についても基本的には第１実施形態と同様であるが、この場合気流効果表現制御部２１２が、ステップＳ１６に代えて、レースカーの車体前方方向ベクトルと車体進行速度ベクトルとが成す相対角θを算出する。そして、算出した相対角θが該当する選択条件５２５ｄの気流パターンデータ５２５ｂを選択し、選択された気流パターンデータ５２５ｂの相対座標値５２５ｆに従って気流効果領域ＡＲ１〜ＡＲ５の仮想空間内での位置を変更して、気流パターンを設定する。
【０１４８】
次いで、変更後位置の気流効果領域ＡＲ１〜ＡＲ５内に存在する気流トレーサオブジェクトを抽出して、抽出されたオブジェクトに該当領域に設定されている流体力ベクトル５２５ｇが作用するものとして、移動位置・姿勢・運動状態量などを算出する。
より具体的には、対象となる気流トレーサオブジェクトの自然運動に基づく基本作用力ベクトルを算出するとともに、総合作用力ベクトルを「総合作用力ベクトル＝基本作用力ベクトル＋流体力ベクトル」として算出して移動位置・姿勢・運動状態量などを算出する。尚、このように予め気流効果領域ＡＲ１〜ＡＲ５の配置位置を定義しておく構成に限らない。例えば、配列中央の領域（気流効果領域ＡＲ１）がレースカー４にとって、常に車体進行速度ベクトル５１４ｄの真後ろの位置に位置するように移動制御する構成としても良い。
【０１４９】
また、第１および第２実施形態では、力影響物体である気流トレーサとして単体で移動しえる落葉や煙の粒子などを用いる構成としたがこれに限定されるものではない。例えば、髪の毛など気流によってなびくものを用いるとしても良い。
【０１５０】
また、第１および第２実施形態では、力場として流体場を例に挙げたがこれに限らず、磁場、重力場などその他の力場の表現に適宜用いることができる。
【図面の簡単な説明】
【０１５１】
【図１】家庭用ゲーム装置の構成例を示す構成図。
【図２】第１実施形態における仮想流体場にあたる気流効果領域の設定例について示す図。
【図３】第１実施形態における後部気流効果領域の仮想気流の定義例を示す概念図。
【図４】レースカー４が右コーナーをドリフト走行によって軌跡５に沿って旋回する様子を、レースカー４の移動条件が異なる代表的な状態を真俯瞰して示す概念図。
【図５】第１実施形態における機能構成の一例を示す機能ブロック図。
【図６】第１実施形態におけるレースカー制御データのデータ構成の一例を示すデータ構成図。
【図７】第１実施形態における気流効果領域初期設定データのデータ構成の一例を示すデータ構成図。
【図８】第１実施形態における気流適用度設定データのデータ構成の一例を示すデータ構成図。
【図９】第１実施形態における気流効果領域制御データのデータ構成の一例を示すデータ構成図。
【図１０】第１実施形態における気流トレーサ制御データ５３６のデータ構成の一例を示すデータ構成図。
【図１１】第１実施形態における処理の流れを説明するためのフローチャート。
【図１２】第１実施形態における気流効果処理の流れを説明するためのフローチャート。
【図１３】第１実施形態における気流パターン設定処理の流れを説明するためのフローチャート。
【図１４】第１実施形態におけるゲーム画面の一例を示す図。
【図１５】ゲーム装置１２００を実現するためのハードウェア構成の一例について説明するハードウェア構成図。
【図１６】気流適用度設定データの変形例を示すデータ構成図。
【図１７】第２実施形態における機能構成の一例を示す機能ブロック図。
【図１８】第２実施形態における気流効果領域初期設定データのデータ構成の一例を示すデータ構成図。
【図１９】第２実施形態における気流パターンの設定例の一部を示す概念図。
【図２０】第２実施形態における気流パターンの設定例の一部を示す概念図。
【図２１】第２実施形態における気流適用度設定データのデータ構成の一例を示すデータ構成図。
【図２２】第２実施形態における気流効果処理Ｂの流れを説明するためのフローチャート。
【図２３】第２実施形態における気流パターン設定処理Ｂの流れを説明するためのフローチャート。
【図２４】第２実施形態における気流パターンの選択例とそのゲーム画面の一例を示す図。
【図２５】移動体キャラクタの変形例と、気流効果領域の配置例を示す図。
【図２６】移動体キャラクタの変形例と、気流効果領域の配置例を示す図。
【図２７】業務用ゲーム装置１３００の構成の一例を示す斜視外観図。
【図２８】気流効果領域を移動させる構成の概念を説明する図。
【図２９】気流効果領域を移動させる場合における気流効果領域初期設定データのデータ構成の一例を示すデータ構成図。
【図３０】従来の技術を適用したレースカーゲームにおいて、ドリフト走行するレースカーの様子を正面から見たゲーム画面例。
【符号の説明】
【０１５２】
４    レースカー
６    車体前方方向
８    車体進行方向
１０  気流効果領域
１００  操作入力部
２００  処理部
２１０  ゲーム演算部
２１２  気流効果表現制御部
２１４  気流効果領域設定部
２１６  気流パターン設定部
２１８  気流適用度設定部
２２０  気流トレーサ制御部
２２４  物理演算部
５００  記憶部
５０２  ゲームプログラム
５０４  気流効果表現制御プログラム
５２０  気流効果領域初期設定データ
５２２  気流適用度設定データ
１２００  家庭用ゲーム装置
【図１】
2008071096.tif 000003
【図２】
2008071096.tif 000004
【図３】
2008071096.tif 000005
【図４】
2008071096.tif 000006
【図５】
2008071096.tif 000007
【図６】
2008071096.tif 000008
【図７】
2008071096.tif 000009
【図８】
2008071096.tif 000010
【図９】
2008071096.tif 000011
【図１０】
2008071096.tif 000012
【図１１】
2008071096.tif 000013
【図１２】
2008071096.tif 000014
【図１３】
2008071096.tif 000015
【図１４】
2008071096.tif 000016
【図１５】
2008071096.tif 000017
【図１６】
2008071096.tif 000018
【図１７】
2008071096.tif 000019
【図１８】
2008071096.tif 000020
【図１９】
2008071096.tif 000021
【図２０】
2008071096.tif 000022
【図２１】
2008071096.tif 000023
【図２２】
2008071096.tif 000024
【図２３】
2008071096.tif 000025
【図２４】
2008071096.tif 000026
【図２５】
2008071096.tif 000027
【図２６】
2008071096.tif 000028
【図２７】
2008071096.tif 000029
【図２８】
2008071096.tif 000030
【図２９】
2008071096.tif 000031
【図３０】
2008071096.tif 000032