説明

プログラム、画像生成装置および情報記憶媒体

【課題】 移動体オブジェクトの前後方向と移動方向とが異なる場合であっても、移動体オブジェクトの移動によって生じる仮想の流れをよりリアルな表現を実現する。
【解決手段】レースカー4(移動体)の周りに流体力が定義された複数の気流効果領域10を設定し、車体前方方向6と車体進行方向8との相対角θに応じて、各気流効果領域10の気流適用度を設定する。気流効果領域10内に位置する気流トレーサオブジェクトは、気流適用度で可変された流体力が作用するものとして移動制御される。例えば、後部気流効果領域10Rrの気流適用度は、相対角度θが0°近傍で最大、90°で最小となるように設定される。よって、ドリフト走行時でも車体進行方向後方に、例えば砂埃を巻き上げる乱流(仮想の流れ)が表現される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに、仮想空間内を移動する移動体の画像を生成させるためのプログラム等に関する。
【背景技術】
【0002】
近年のビデオゲームでは、仮想空間にプレーヤによる操作入力に応じて移動制御されるキャラクタなどのオブジェクを配置するとともに、仮想カメラに基づくレンダリングによってゲーム画像を生成するという3次元コンピュータグラフィックスを用いた画像生成方式が主流となっている。
【0003】
3次元コンピュータグラフィックス(3DCG)で仮想現実をよりリアルに表現しようとするならば、本来存在しない流体の流れ(仮想の流れ)を如何にそれらしく表現するかが重要である。例えば、3DCGによるカーレースゲームを想定すると、仮想空間に設定された仮想サーキットでレースカーのオブジェクトを移動させただけの画像では、そこには現実世界で当たり前のように存在する大気の存在が欠けており、いかにも作り物の画像であるといった印象をプレーヤに与えてしまう。これに対し、レースカーの移動によって大気が押しのけられ渦巻く仮想の流れにのって流される粒子等を適当に表現するならば、ゲームの世界にもあたかも大気が存在するかのような印象を与えることが可能となる。
両者を比較すれば、明らかに後者のリアリティが高いといえる。そして、こうした仮想現実のリアリティは、特にビデオゲームではプレーヤへ感動を与えゲームへより没入させるための重要な要素となる。
【0004】
仮想の流れを表現するには、流体学に基づく流体シミュレーションの技術を用いることができる。例えば、仮想空間全体に精密な力場(流体場)を設定し、これを視覚化するためのトレーサを運動力学に基づいてシミュレーションすることによってリアルな流れを表現できる。しかしこうした流体シミュレーションの場合、一枚の画像を生成するのに膨大な演算処理時間を要する。そのため、ビデオゲームのようにプレーヤの操作入力に応じて短時間で画像を生成し続け、高い応答性を維持しなければならない分野に適用するには、更に少ない演算負荷で表現できることも要求されてきた。
【0005】
こうした要求に応え得るであろう従来の技術としては、例えば、列車のオブジェクトの後部に仮想的な風力が設定された限定的な影響範囲を設定し、粒子オブジェクトが風の影響範囲に入っている場合には、設定された風力の影響を考慮して粒子オブジェクトの移動を制御する技術がある(例えば、特許文献1を参照。)。また、レースカーのオブジェクトの後方に力場を設定し、この領域内に位置する粒子を力場に定義した運動法則に従って移動制御するとともに、更に粒子の色や輝度の変化を付与する技術も知られている(例えば、特許文献2を参照。)。
【特許文献1】特許第3428562号公報
【特許文献2】特開2001−286676号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上述の従来技術によれば、移動体キャラクタのオブジェクトの後方に仮想の流れを表現することができる。しかし、ゲームの内容によっては必ずしも移動体キャラクタの前後方向と進行方向とが一致するとは限らない。例えば、レースカーゲームでは、コーナーを走行する際の運転テクニックとして「ドリフト走行」が用いられるケースが多々見られる。「ドリフト走行」とは、車両の前部がコーナーの旋回軌跡よりも内側を向いた姿勢でコーナリングさせ、できるだけ減速をせずに高速でコーナーを走り抜ける走行テクニックである。
【0007】
例えば、図30は、従来の技術を適用したレースカーゲームにおいて、ドリフト走行するレースカー4の様子を正面から見たゲーム画面例である。同図に示すように、従来技術では風力を設定した影響範囲や力場が、レースカー4(移動体キャラクタ)の後部に設定されるため、レースカー4の移動にともなって生じる乱流、すなわち仮想の流れは、車体後方の車体の前後方向に沿った範囲しか表現されないことになる。同図の場合では、車体後方に舞い飛ぶ落葉10や砂埃12によってプレーヤはそこに気流が発生しているように感じるであろう。
【0008】
しかし、このレースカー4はドリフト走行をしている。プレーヤにとってみれば、ドリフト中のレースカー4は見るからに斜め姿勢で進んでおり、車体前方方向6と車体進行方向8とがずれている。このような場合、プレーヤにしてみれば、レースカー4は斜め前方から風を受ける状態になっているので、風を受けるのとは反対方向の車体斜め後方に気流の乱れが発生するであろうと感覚的には理解している。ところが、従来の技術では同図の様に仮想の流れは車体前後方向沿いの後方にしか表現されていないので大変な違和感を覚えることになる。レースカー4のコーナリングは、レースゲームにおける重要な注目シーンであり、ここで違和感を与えてしまうことはゲームのリアリティを削ぎ、ゲームへの没入感を減じてしまう点で問題となる。
【0009】
本発明は、こうした問題を鑑みてなされたものであり、その目的とするところは移動体オブジェクトの前後方向と移動方向とが異なる場合であっても、移動体オブジェクトの移動によって生じる仮想の流れをよりリアルな表現を実現することである。
【課題を解決するための手段】
【0010】
上記課題を解決するために、第1の発明は、コンピュータに、仮想空間内を移動する移動体の画像を生成させるためのプログラム(例えば、図5のゲームプログラム502)であって、所与の力に応じて移動制御される力影響物体(例えば、図14の落葉11、砂埃12などの気流トレーサオブジェクト)を前記仮想空間に複数配置する配置手段(例えば、図5の処理部200、気流効果表現制御部212、図11のステップS4、ステップS14)、所与の力を発生する仮想力場(例えば、図2の前部気流効果領域10Fr、左側部気流効果領域10Rs、右側部気流効果領域10Ls、後部気流効果領域10Rr)を前記移動体の周囲近傍位置に設定する力場設定手段(例えば、図5の処理部200、気流効果領域設定部214)、前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段(例えば、図5のゲーム演算部210、物理演算部224、図11のステップS16)、移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段(例えば、図5のゲーム演算部210、物理演算部224、図11のステップS10、S12)、前記移動体制御手段により制御された移動体の移動方向に対する相対的な姿勢を判定する判定手段(例えば、図5の処理部200、気流効果表現制御部212、気流パターン設定部216、図12のステップS50)、前記判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも1つを可変する力場可変手段(例えば、図5の処理部200、気流効果表現制御部212、気流パターン設定部216、図12のステップS52、ステップS66、図21のステップS53、ステップS67)、として前記コンピュータを機能させる。
【0011】
また、第12の発明は、仮想空間内を移動する移動体の画像を生成する画像生成装置(例えば、図1の家庭用ゲーム装置1200)であって、所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段と、所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段と、前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段と、移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段と、前記移動体制御手段により制御された移動体の移動方向に対する相対的な姿勢を判定する判定手段と、前記判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも1つを可変する力場可変手段とを備える。
【0012】
第1および第12の発明によれば、移動体の移動方向に対する姿勢に応じて、仮想力場の力、形状、大きさ及び配置位置の内少なくとも1つを可変して、仮想力場が力影響物体に及ぼす影響を変更することができる。
したがって、例えば仮想力場によって仮想気流を表現するケースにおいて、レースカーが直進するように移動体の前後方向が移動体の方向と一致する場合には、仮想力場の影響を大きくすることで仮想の流れを表現し、その一方で、移動体の前後方向が移動体の方向と一致していない、例えばレースカーがドリフト走行してコーナリングしているような場合には、仮想力場の影響を小さくすることで、本来生じるべきでない場所に仮想流を表現してしまうのを抑制することができる。よって、移動体オブジェクトの前後方向と移動方向とが異なる場合であっても、移動体オブジェクトの移動によって生じる仮想の流れをよりリアルに表現できる。
【0013】
また、第2の発明は、コンピュータに、仮想空間内を移動する移動体の画像を生成させるためのプログラム(例えば、図5のゲームプログラム502)であって、所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段、所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段、前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段、移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段、前記移動体制御手段により制御された移動体の移動方向に対する前記移動体を基準とした前記仮想力場の位置関係を判定する判定手段(例えば、図5の処理部200、気流効果表現制御部212、気流パターン設定部216、図12のステップS50)、前記判定手段の判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも1つを可変する力場可変手段、として前記コンピュータを機能させるためのプログラムである。
【0014】
また、第13の発明は、仮想空間内を移動する移動体の画像を生成する画像生成装置(例えば、図1の家庭用ゲーム装置1200)であって、所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段と、所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段と、前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段と、移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段と、前記移動体制御手段により制御された移動体の移動方向に対する前記移動体を基準とした前記仮想力場の位置関係を判定する判定手段と、前記判定手段の判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも1つを可変する力場可変手段とを備える。
【0015】
第2および第13の発明によれば、移動体の移動方向に対する該移動体を基準とした仮想力場の位置関係に応じて、仮想力場の力、形状、大きさ及び配置位置の内少なくとも1つを可変して、仮想力場が力影響物体に及ぼす影響を変更することができる。
したがって、例えば仮想力場によって仮想気流を表現するケースにおいて、レースカーが直進するように移動体の前後方向が移動体の方向と一致する場合には、レースカーの背部後方に配置された仮想力場は本来気流を発生させるべき場所に当るので、当該仮想力場の影響を大きくして仮想の流れを目立つ様に表現することができる。その一方で、レースカーがドリフト走行してコーナリングするような場合、レースカーの背部後方に配置された仮想力場は、本来気流を派手に生じるべきでない場所に該当することになるので、当該仮想力場の影響を小さくすることで、不自然な場所に仮想流が表現されてしまうのを抑制することができる。よって、移動体オブジェクトの前後方向と移動方向とが異なる場合であっても、移動体オブジェクトの移動によって生じる仮想の流れをよりリアルに表現できる。
【0016】
第3の発明は、第1又は2の発明のプログラムであって、前記判定手段が、前記移動体の前方方向と移動方向との角度差(例えば、図4の相対角度θ)を求めることで前記判定を行うように前記コンピュータを機能させる。
【0017】
第3の発明によれば、第1又は第2の発明と同様の効果を奏するとともに、移動体の制御に係る基本的なパラメータによって判定を実行できるので、処理負荷を少なくできる。したがって、家庭用ゲーム装置のように大型コンピュータのように高い処理能力を有しない装置であっても、より容易に発明を適用できるようになる。
【0018】
第4の発明は、第1〜3の何れかの発明のプログラムであって、前記判定手段による判定結果として取り得る値に応じた仮想力場の力、形状、大きさ及び配置位置の可変パターン(例えば、図17の気流パターンデータ521b)が予め複数定められており、前記力場可変手段が、前記複数の可変パターンの中から、前記判定手段の判定結果に応じた可変パターンを選択し、該選択した可変パターンに従って仮想力場を可変するように前記コンピュータを機能させる。
【0019】
例えば、流体場を例に挙げると、現実の力場(流体場)においては、移動体の移動に伴ってその近傍に生じる流れ(主に乱流)は、移動体の移動方向に対する姿勢変化によって様々な流れのパターンを有する。したがって、第4の発明のように、判定手段による判定結果として取り得る値に応じた仮想力場の力、形状、大きさ及び配置位置の可変パターンが予め複数定められておき、この複数の可変パターンの中から判定結果に応じた可変パターンを選択して力影響物体の移動制御に適用する。これによって、第1〜3の何れかの発明と同様の効果を奏するとともに、様々な力場のパターンでよりリアルに仮想の流れを表現することが可能になる。
【0020】
第5の発明は、第1〜4の何れかの発明のプログラムであって、前記力場設定手段が、仮想力場を前記移動体の周囲複数箇所に設定し、前記力場可変手段が、前記設定された複数の仮想力場それぞれについて、前記判定手段の判定結果に基づいて、力、形状、大きさ及び配置位置の内少なくとも1つを可変する、ように前記コンピュータを機能させる。
【0021】
例えば、流体場を例に挙げると、現実の力場(流体場)においては、移動体の移動方向に対する姿勢が一定であっても、移動体に対する相対的な位置によって、様々な流れのパターンが生じるうえに、パターンによってはほとんど流れの乱れが小さく視覚化がプレーヤに与える興奮に寄与し難いケースも見られる。そこで、第5の発明のように、仮想力場を移動体の周囲複数箇所に設定し、この複数の仮想力場それぞれについて、判定手段の判定結果に基づいて力、形状、大きさ及び配置位置の内少なくとも1つを可変する構成とする。これによって、第1〜4の何れかの発明と同様の効果を奏するとともに、仮想の流れを表現して視覚化することがプレーヤに与える興奮に寄与しやすい仮想力場については力や形状、大きさ、配置位置などの可変処理を実施し、反対に寄与し難い仮想力場に係る可変処理を省略することが可能となり、処理負荷を低減させることができる。
【0022】
第6の発明は、第5の発明のプログラムであって、前記力場可変手段が、前記設定された複数の仮想力場のうち、前記移動体の移動方向側方側に位置する仮想力場の力及び/又は大きさを、移動方向前方側及び後方側に位置する仮想力場よりも小さくするように前記コンピュータを機能させる。
【0023】
例えば、流体場を例に挙げると、現実には必ずしも移動体の移動方向側方側に位置する仮想力場の力及び/又は大きさが、移動方向前方側及び後方側に位置する仮想力場よりも小さいとは限らないが、移動方向の前後に加え側方においても同程度に仮想流を表現することとすると、移動体の形状が不適切で移動体自身が無駄に流体抵抗を産んでいるかのような印象を与えかねない。そこで、あえて積極的に第6の発明のようにすることで、第5の発明と同様の効果を奏するとともに、移動体方向側方側の仮想力場に対して、前方側及び後方側の仮想力場を際立たせることで、例えば、流体を切り裂いて進んでいるかのようなシャープな印象を与えるとともに、迫力ある演出表現が可能になる。
【0024】
第7の発明は、第5又は6の発明のプログラムであって、前記力場設定手段が、仮想力場を前記移動体の周囲複数箇所に固定的に設定し、前記力場可変手段が、前記設定された複数の仮想力場のうち、前記移動体の移動方向後方側に位置する仮想力場の力及び/又は大きさを、移動方向前方側及び側方側に位置する仮想力場よりも大きくするように前記コンピュータを機能させる。
【0025】
例えば、流体場を例に挙げると、現実には必ずしも前方側よりも後方側に位置する仮想力場の力及び/又は大きさが大きくなるとは限らない。したがって、リアリティを追求する観点からすれば必ずしもリアルとはいえない場面もありえるが、あえて積極的に第7の発明のようにコンピュータを機能させることで移動体前方側よりも後方側に派手に仮想流を表現する。これによって、第5又は6の発明と同様の効果を奏するとともに、リアリティを維持しつつも、移動体の実際の速度以上に迫力と勢いがあるようにロケット噴射のごとき演出的意図を込めて仮想流を表現し、よりプレーヤに感動と興奮を与えることができる。
【0026】
第8の発明は、第1〜7の何れかの発明のプログラムであって、前記力場可変手段が、前記移動体制御手段により制御された移動体の移動速度に応じて、前記仮想力場の形状及び/又は大きさを可変する速度適応可変手段を有するように前記コンピュータを機能させる。
【0027】
第8の発明によれば、第1〜7の何れかの発明と同様の効果を奏するとともに、仮想力場の形状及び/又は大きさを移動体の移動速度に応じて可変することで、現実と同じように移動体の移動速度の変化に応じて力場の規模を変化させるように表現し、リアリティを高めることができる。
【0028】
さらに、第9の発明のように、第8の発明のプログラムであって、前記速度適用可変手段が、前記移動体の移動速度に応じて、前記仮想力場の前記移動体の移動方向に沿った方向の長さを可変するように前記コンピュータを機能させるならば、気流を表現する場合には移動速度の大きさを仮想の流れの長さに反映させることが可能となる。仮想力場の長さを可変するといった単純な処理でありながらも、より一層リアリティを高めることができる。
【0029】
第10の発明は、第1〜9の何れかの発明のプログラムであって、前記力場可変手段が、前記仮想力場の力の可変として、流速及び/又は力方向を可変する力可変手段を有するように前記コンピュータを機能させる。
【0030】
第10の発明によれば、第1〜9の何れかの発明と同様の効果を奏するととともに、流速及び/又は力方向を可変することができる。例えば、常に有る一定範囲内でランダムに可変させるならば常時めまぐるしく変化する乱流のような流れを、よりリアルに表現することが可能になる。
【0031】
第11の発明は、第1〜10の何れかの発明のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
【0032】
第11の発明によれば、コンピュータに第1〜10の何れかの発明と同様の機能を実現させることができる。
【発明の効果】
【0033】
本発明によれば、移動体オブジェクトの前後方向と移動方向とが異なる場合であっても、現実には存在しないような場所に仮想の流れを表示させてしまうことを避け、移動体オブジェクトの移動によって生じる仮想の流れをよりリアルに実現することができる。
【発明を実施するための最良の形態】
【0034】
〔第1実施形態〕
次に、図面を参照しながら本発明を適用した第1実施形態について説明する。本実施形態では、3DCG画像生成装置の一例として家庭用ゲーム装置を挙げる。そして、移動体キャラクタであるレースカーをプレーヤが運転操作してサーキットでのタイムアタックを楽しむドライブゲームを実行し、レースカーの移動に伴って巻き起こす気流(仮想の流れ)の様子を表現する例について説明する。
【0035】
図1は、家庭用ゲーム装置1200の構成例を示す構成図である。本実施形態における家庭用ゲーム装置1200は、ゲームコントローラ1220を有するゲーム装置本体1201に、信号ケーブル1209によってビデオモニタ1230が接続されて構成されている。
【0036】
ゲーム装置本体1201は、例えばCPU、画像処理用LSI、ICメモリ等の電子部品が実装された制御ユニット1210と、光学ディスク1202やメモリカード1204といった情報記憶媒体の読み取り装置1206、1208を備える。そして、家庭用ゲーム装置1200は、光学ディスク1202やメモリカード1204からゲームプログラムおよび各種設定データを読み出し、付属するゲームコントローラ1220に為される操作入力に基づいて各種のゲーム演算を実行しドライビングゲームを実行する。
【0037】
家庭用ゲーム装置1200の制御ユニット1210で生成されたゲーム画像の画像信号ならびにゲーム音の音声信号は、信号ケーブル1209によってビデオモニタ1230に出力され、ビデオモニタ1230に備えられたディスプレイ1232で画像表示されるとともにスピーカ1234から放音される。プレーヤは、ビデオモニタ1230のディスプレイ1232に表示されるゲーム画像を見つつ、スピーカ1234から放音されるBGMや効果音といったゲーム音を聞きながら、ゲームコントローラ1220を操作してゲームを楽しむ。本実施形態ではドライブゲームをプレイするので、例えば方向入力キー1222の左右でハンドル操作、方向入力キー1222の上下で変速機操作、プッシュボタン1224でアクセルおよびブレーキ操作を入力する。
【0038】
尚、ゲーム実行に必要なゲームプログラムおよび各種設定データは、通信装置1212を介して通信回線2に接続し、外部装置からダウンロードして取得する構成であっても良い。ここで言う「通信回線」とは、データ授受が可能な通信路を意味する。すなわち、通信回線とは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLAN(Local Area Network)の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線/無線を問わない。
【0039】
[原理説明]
次に、本実施形態における気流表現の原理について説明する。
図2は、本実施形態における仮想力場にあたる気流効果領域の設定例について示す図である。同図(a)は側面俯瞰図、(b)は正面俯瞰図に相当する。
【0040】
同図に示すように、本実施形態ではレースカーのオブジェクト4(以下「レースカー4」とも言う。)の前後左右の外側に、仮想力場として4つの気流効果領域10(10Fr、10Rs、10Ls、10Rr)が設定される。気流効果領域10は、仮想の気流による流体力(流れが物体に及ぼす力)が設定された限定領域であり、領域内に存在するオブジェクトには仮想の気流によって押し流されるように或いは吸い寄せられるように力が作用する。すなわち、領域内に存在する力影響物体であるトレーサオブジェクト(例えば、落葉や雪、砂埃といった比較的軽くて気流に乗り得るオブジェクト。)の運動を演算して求める際には、同領域に設定された流体力が作用しているものとして演算される。
【0041】
本実施形態では、車体前方に前部気流効果領域10Fr、車体後方に後部気流効果領域10Rr、車体右方に右側部気流効果領域10Rs、車体左方に左側部気流効果領域10Lsが夫々設けられている。
【0042】
同図(a)に示すように、前部気流効果領域10Frには、レースカー4が前方直進するのに伴って車体前方に発生する乱流を表現(想定)するための仮想気流が一種類だけ設定されている。すなわち、車体進行方向8に対するレースカー4の相対的な姿勢として、車体進行方向8と車体前方方向6とが同じ方向である時の姿勢を想定した気流が、前部気流効果領域10Frに設定されている。具体的には、図中黒矢印線で示すような車体前部の下方から前部気流効果領域10Frの前方側側面に沿って上方へ、下から上へ巻き上がり、前部気流効果領域10Frの上面から車体前部側面に沿って巻き込む上下方向の渦状の流れと、白矢印一点鎖線で示すような車体左右側面に分かれる流れとが合成された流れとして設定されている。
【0043】
また、後部気流効果領域10Rrには、同様にレースカー4が前方直進するのに伴って車体後方に発生する乱流を表現(想定)するための仮想気流が一種類だけ設定されている。すなわち、車体進行方向8に対するレースカー4の相対的な姿勢として、車体進行方向8と車体前方方向6とが同じ方向である時の姿勢を想定した気流が、後部気流効果領域10Rrに設定されている。具体的には、図中黒矢印線で示すような車体後部の下方から後部気流効果領域10Rfの後ろ上方に向けて跳ね上がるような流れと、白矢印一点鎖線で示すようなカルマン渦流を模した流れとが、合成された状態で設定されている。
【0044】
同図(b)に示すように、右側部気流効果領域10Rsには、車体前方方向が車体進行方向(車体中心から車体前方を向く方向。)に対して右90°(+90°)を成した状態(勿論、車体前方方向に対して車体進行方向が左90°を成した状態と表現しても良い。)、車体が左側面を前にして横滑りしているように移動する状態で車体右側部(進行方向に対して後ろ側)に発生する乱流を表現(想定)する仮想気流が設定されている。すなわち、車体進行方向8に対するレースカー4の相対的な姿勢として、車体進行方向8に対して車体前方方向6が右90°(+90°)をなした姿勢を想定した気流が、右側部気流効果領域10Rsに設定されている。具体的には、図中黒矢印線で示すような車体右側面に沿って上昇し右側部気流領域10Rsの右側部に沿って下降する渦状の巻き上げ流が設定されている。
【0045】
これと同様にして、左側部気流効果領域10Lsには、車体前方方向が車体進行方向に対して左90°(−90°)を成した状態、車体が右側面を前にして横滑りして移動する状態で車体左側部(進行方向に対して後ろ側)に発生する乱流を表現(想定)するための仮想気流が設定されている。すなわち、車体進行方向8に対するレースカー4の相対的な姿勢として、車体進行方向に対して車体前方方向6が左90°(−90°)をなした姿勢を想定した気流が、左側部気流効果領域10Rsに設定されている。具体的には、図中黒矢印線で示すような車体左側面に沿って上昇し左側部気流領10Lsの右側部に沿って下降する渦状の巻き上げ流が設定されている。
【0046】
尚、各気流効果領域内には、それぞれ粒子系制御におけるパーティクルの放出場所になる発生源7が設定されている。
【0047】
本実施形態では、各気流効果領域を格子状に分割し、その格子の交点に当る格子点毎に仮想気流の流体力を定義する。
例えば、図3は本実施形態における後部気流効果領域10Rrの仮想気流の定義例を示す概念図である。同図(a)は、レースカー4の後部並びに後部気流効果領域10Rrの真俯瞰図、(b)は側面図に該当する。
そして同図に示すように、後部気流効果領域10Rrは縦・横・前後の立体格子状に区切られ、格子の交点(格子点)ごとに流体力ベクトルが設定される。黒矢印は、車体寄り下方から領域後方上部に向けて跳ね上がるような第1の気流に基づく第1流体力ベクトルを示している。第1の気流は、車体後部に設けられたディフューザ(車体下面を通る空気を後方に積極的に抜くことで車体下面に負圧を発生させるための空力デバイス。)によって発生した気流のように、上から見ると車体後部へ流れるが、横から見ると小黒矢印破線で示すように、車体寄り下方から領域後部上方へ吸い上げる或いは巻き上げるような流体
場を形成している。
一方、白矢印はカルマン渦流のような第2の気流に基づく第2流体ベクトルを示している。カルマン渦流は左右端部で交互に発生して後方へ移動する渦流であるから、第2の気流は流体場(力場)の関数として定義されており、第2流体ベクトルはその時々によってカルマン渦の位置が変化するベクトルを関数より求める。
【0048】
さて、先に述べたように、気流効果領域10(10Fr、10Rr、10Rs、10Ls)は領域内に流体力が設定されており、領域内に存在するオブジェクトの運動を演算して求める際には、該当領域に設定された流体力が作用しているものとして物理法則に則って演算されるのであるが、本実施形態では、この領域内に存在するオブジェクト運動を演算する際に領域に設定されている流体力を作用させる程度を、「気流適用度」の値として気流効果領域毎に設定する。具体的には、それぞれの気流効果領域10について、当該気流効果領域10に仮想気流を想定・設定した際のレースカー4の車体進行方向に対する相対姿勢と、現在のレースカー4の車体進行方向に対する相対姿勢とが近いほど、当該気流効果領域10に設定する気流適用度を高くし、異なるほど低くする。
【0049】
但し、現在のレースカー4の車体進行方向に対する相対姿勢(例えば、車体前方方向と車体進行方向との成す角度が0°)が、当該気流効果領域10に仮想気流を想定・設定した際のレースカー4の車体進行方向に対する相対姿勢と全く逆の姿勢(例えば、車体前方方向と車体進行方向との成す角度が180°)である場合は、仮想気流を想定した際の姿勢とは異なるものの、全く逆の姿勢であるために想定した仮想気流とは異なるが、相対気流による乱流が発生し得ると言える。このため、気流適用度を有る程度の所定値として設定する。例えば、後部気流効果領域10Rrには、車体進行方向8に対するレースカー4の相対的な姿勢として、車体進行方向8と車体前方方向6とが同じ方向である時の姿勢を想定した気流が想定・設定されているが、この相対姿勢が全く逆の姿勢、すなわち車体進行方向8と車体前方方向6とが180°異なり、レースカー4の後部を前方に向けて走行しているバック走行時の状態であっても、その後部気流効果領域10Rrには乱流が発生するであろうから、有る程度の値を気流適用度として設定する。
【0050】
そして、気流適用度の設定例を具体的に示すならば、例えば図4の様になる。同図は、レースカー4が右コーナーをドリフト走行によって軌跡5に沿って旋回する様子を、レースカー4の移動条件(車体進行方向8に対するレースカー4の相対的な姿勢)が異なる代表的な状態を真俯瞰して示す概念図である。
【0051】
同図一番下の状態では、レースカー4はコーナー入り口に差し掛かったばかりであり、レースカー4の前方方向ベクトル6と車体進行方向ベクトル8の相対角度θがほとんど0°に近い相対姿勢となる。この相対姿勢は、前部気流効果領域10Frおよび後部気流効果領域10Rrに仮想気流を設定した際に想定した相対姿勢(0°)と同じである。したがって、前部気流効果領域10Frおよび後部気流効果領域10Rrの気流適用度は100%とされる。また、一番下の状態の相対姿勢(0°)は、右側部気流効果領域10Rsおよび左側部気流効果領域10Lsに仮想気流を設定した際に想定した相対姿勢(+90°,−90°)とは90°異なる姿勢である。従って、右側部気流効果領域10Rsおよび左側部気流効果領域10Lsには、想定した仮想気流を発生させないために、これらの気流適用度は0%とされる。
【0052】
同図下から2番目の状態は、レースカー4がコーナー進入し、ドリフト走行によって車体前方がコーナーの内側を向き始めた状態に相当する。車両前方方向ベクトル6と車体進行方向ベクトル8の相対角度θが、最初の状態よりも大きくなっている。
この状態の相対姿勢は、前部気流効果領域10Frおよび後部気流効果領域10Rrに仮想気流を設定した際に想定した相対姿勢(0°)と異なるものの、差異の程度は小さいので気流適用度を60%とする。またこの状態の相対姿勢は、右側部気流効果領域10Rsに仮想気流を設定した際に想定した相対姿勢に近づいているので、右側部気流効果領域10Rsの気流適用度を40%とする。また、左側部気流効果領域10Lsについては、仮想気流を設定した際に想定した相対姿勢とは反対向きの関係に近づいているので0%のままとする。
【0053】
同図下から3番目の状態は、レースカー4はドリフト走行によって、車体進行方向に対してほとんど真横を向いて旋回している状態に相当する。車両前方方向ベクトル6と車体進行方向ベクトル8の相対角度θがさらに大きくなり、約90°の状態(車体前方方向が車体進行方向に対して右約90°であるから約+90°)になっている。
この状態の相対姿勢(約+90°)は、前部気流効果領域10Frおよび後部気流効果領域10Rrに仮想気流を設定した際に想定した相対姿勢(0°)から横を向いた状態であり、想定した仮想気流が発生しないことが明らかであるから、これらの気流適用度は0%とされる。またこの状態の相対姿勢(約+90°)は、右側部気流効果領域10Lsにとってみれば仮想気流を想定した際の相対姿勢(+90°)とほぼ同じ姿勢であるから気流適用度は100%とされ、左側部気流効果領域10Rsにとってみれば、仮想気流を設定した際に想定した相対姿勢(−90°)とは反対向きの関係となるが、相対気流に対する乱流が発生するという点では近いために20%とする。
【0054】
同図下から4番目、すなわち同図の一番上の状態は、レースカー4はコーナーを抜けつつあり、ドリフト走行も終わりかけており、車体前方方向が車体進行方向に近づき直進状態に戻りつつある状態に相当する。すなわち、同図下から1番目の状態に戻りつつあると考えられるので、仮想気流効果度も同図下から1番目の状態に近い値が設定される。
【0055】
以上のように気流適用度を設定することによって、レースカー4の外周に設定された気流効果領域10はレースカー4の進行方向後方(背部)に近いほど活性化し、領域内に存在するトレーサオブジェクト(力影響物体)に仮想気流の流体力をより高く作用させることになる。つまり、気流適用度の高い領域ではトレーサオブジェクトが仮想気流によって流される様子が映し出され仮想気流を視覚化する一方、気流適用度の低い領域では、トレーサオブジェクトは仮想気流による影響をほとんど受けないこととなり仮想気流は視覚化されない。したがって、ドリフト走行のように車体進行方向が車体前方方向と異なる場合であっても、現実世界におけるそれと同様にして進行方向後方に生じる気流が正しく表現されることになる。
【0056】
[機能ブロックの説明]
次に、本実施形態における機能構成について説明する。図5は、本実施形態における機能構成の一例を示す機能ブロック図である。同図に示すように、本実施形態では、操作入力部100と、処理部200と、音出力部350と、画像表示部360と、通信部370と、記憶部500とを備える。
【0057】
操作入力部100は、プレーヤによる各種の操作入力に応じた操作入力信号を処理部200に出力する。例えば、ボタンスイッチ、アナログレバー、ダイヤル、ハンドル、トラックパッド、マウス、キーボードなど各種の入力デバイスや、傾斜センサ、加速度センサなどのセンサなどによって実現できる。図1では、ゲームコントローラ1220、より具体的にはこれに備えられた方向入力キー1222やプッシュボタン1224が該当する。
【0058】
処理部200は、例えばマイクロプロセッサやASIC(特定用途向け集積回路)、ICメモリなどの電子部品によって実現され、操作入力部100や記憶部500をはじめゲーム装置1200の各機能部との間でデータの入出力を行うとともに、所定のプログラムやデータ、操作入力部100からの操作入力信号に基づいて各種の演算処理を実行して、ゲーム装置1200の動作を制御する。図1では、ゲーム装置本体1201に内蔵された制御ユニット1210が該当する。
そして処理部200は、ゲーム演算部210と、音生成部250と、画像生成部260と、通信制御部270とを備える。
【0059】
ゲーム演算部210は、ゲームの進行に係る処理を実行する。例えば、レースカー4を含む各種オブジェクトを仮想空間に配置し、移動を含む動作を制御する処理や、仮想カメラの移動や姿勢の変化、レンズの焦点距離の変更といった撮影条件などに係る制御処理、オブジェクトのヒット判定処理、ゲーム結果の決定処理などが含まれる。本実施形態ではゲーム演算部210は更に、気流効果表現制御部212と、仮想空間内に配置された各種オブジェクトの運動を運動方程式に基づいて演算して求める物理演算部224とを備える。
【0060】
気流効果領域表現制御部212は、仮想空間内にあたかも仮想の流れ(本実施形態では仮想の気流)が存在するかのような表現の制御を実行する。特には、気流効果領域10を移動体キャラクタ(レースカー4)の周囲近傍に配置設定する気流効果領域設定部214と、力影響物体であるトレーサオブジェクトの配置・生成・移動に係る制御を実行する気流トレーサ制御部220とを備える。
【0061】
気流パターン設定部216は、気流効果領域毎にその時々に応じて適用される仮想気流の流れを設定する。具体的には、記憶部500に記憶されている気流効果領域初期設定データ520を参照し、同データで定義されている各気流効果領域の位置や大きさ、初期状態の仮想気流の強さや方向に揺らぎを与える処理や、異なる仮想気流成分の合成処理などを実行する。処理によって得られたデータは、気流効果領域制御データ524に格納する。
【0062】
気流適用度設定部218は、各気流効果領域に対応する気流適用度を決定する。具体的には、記憶部500に記憶されている気流適用度設定データ522を参照して、レースカー4の車体前方方向と車体進行方向との角度差に基づいて気流適用度を決定する。決定された値は、気流効果領域制御データ524に格納する。
【0063】
気流トレーサ制御部220は、仮想気流に流されるトレーサオブジェクトの生成や配置に係る処理を実行する。例えば、落葉や雪、紙屑、羽毛など比較的軽くて風に流され易いもののオブジェクを仮想空間内に配置する。また気流トレーサ制御部220に含まれるパーティクル生成部222は、砂埃や霧、水蒸気、煙といった所謂粒子系制御で用いられるパーティクルのオブジェクトを仮想空間内に生成する。尚、パーティクル生成部222における処理は、公知の3DCGにおける粒子系制御の手法を適宜用いることができる。
【0064】
音生成部250は、例えばデジタルシグナルプロセッサ(DSP)などのプロセッサやその制御プログラムによって実現され、ゲーム演算部210による処理結果に基づいてゲームに係る効果音やBGM、各種操作音の音信号を生成し、音出力部350に出力する。
【0065】
音出力部350は、音生成部250から入力される音信号に基づいて効果音やBGM等を音出力するための装置である。図1ではビデオモニタ1230のスピーカ1234がこれに該当する。
【0066】
画像生成部260は、例えば、デジタルシグナルプロセッサ(DSP)などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。画像生成部260は、ゲーム演算部210による処理結果に基づいて1フレーム時間(1/60秒)で1枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部360に出力する。具体的には、所定インターバル時間(例えば、1/60秒。)毎に仮想空間内に配置された仮想カメラによって仮想空間内の様子を撮影した画像をレンダリングし、例えばレースカー4の走行速度やエンジン回転数、タイムアタック時間の計時、コースレコード、周回数などの情報表示を合成してゲーム画像を生成し、その画像信号を出力する。以下、この1枚のゲーム画像を生成・表示する際の処理単位を「インター」と呼ぶ。
【0067】
画像表示部360は、画像生成部260から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図1ではビデオモニタ1230のディスプレイ1232が該当する。
【0068】
通信制御部270は、データ通信に係るデータ処理を実行し、通信部370を介して外部装置とのデータのやりとりを実現する。
【0069】
通信部370は、通信回線2と物理レベルで接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1では無線通信モジュール1212がこれに該当する。
【0070】
記憶部500は、処理部200にゲーム装置1200を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なゲームプログラム、各種データ等を記憶する。また、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作部100から入力される入力データ等を一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。
【0071】
本実施形態では記憶部500は、ゲームプログラム502を記憶している。ゲームプログラム502は、読み出して実行することによって処理部200をゲーム演算部210として機能させるためのプログラムである。ゲームプログラム502は、処理部200を気流効果表現制御部212として機能させるための気流効果表現制御プログラム504を含んでいる。
【0072】
また、記憶部500は予め用意されるデータとして、コースデータ510、レースカーモデルデータ512、気流効果領域初期設定データ520、気流適用度設定データ522、気流トレーサモデルデータ530、気流トレーサ初期配置データ532、パーティクル設定データ534が記憶されている。また、ゲームの進行に伴って随時書き換えられるデータとして、レースカー制御データ514、気流効果領域制御データ524、気流トレーサ制御データ536を記憶する。
【0073】
コースデータ510は、仮想空間にサーキットのコースを形成するための各種のオブジェクトのモデルやテクスチャなどのデータが格納されている。
【0074】
レースカーモデルデータ512は、プレーヤキャラクタに当たるレースカー4を仮想空間中に配置し動作制御するのに必要なオブジェクトのモデルデータやテクスチャデータを格納している。また、レースカー4の車としての挙動を演算するのに必要な各種諸元値も格納されている。例えば、エンジンの出力値設定、エンジンの最高回転数、ミッションギアのギア比設定、最高速度値、最大減速度値、ハンドル角度などのデータがこれに該当する。
【0075】
レースカー制御データ514には、ゲーム中にレースカー4を表示し動作制御するのに必要なデータが格納される。例えば、図6に示すように、キャラクタID514aに対応づけて、現在の仮想空間内における位置座標514bと、車体前方方向単位ベクトル514cと、車体進行速度ベクトル514dとが格納されている。車体前方方向単位ベクトル514cは、レースカーオブジェクトの代表点(例えば、重心位置相当点。)から、車体前方を向く単位ベクトルである。尚、本実施形態では、プレーヤがレースカー4を操作して、一人でタイムアタックするドライビングゲームを想定しているので、キャラクタID514aには一台のみ登録されているが、複数の車両でレースをする場合には、出走台数分だけ登録される。レースカー制御データ514に格納されるデータはこれらに限らず、例えば現在のエンジン回転数、ミッションのギア数、操舵角、ブレーキ量、タイヤの消耗度、走行速度、周回数とそのタイムなどが適当に含まれる。また、車体前方方向単位ベクトル514cの代わりに、所定基準姿勢を基準としたヨー角、ロール角、ピッチ角を格納することで、車体の前方が現在どちらを向いているか求めることができるようにしても良い。
【0076】
気流効果領域初期設定データ520は、各気流効果領域に設定される仮想気流の初期設定を格納している。例えば図7は、本実施形態における気流効果領域初期設定データ520のデータ構成の一例を示すデータ構成図である。同図に示すように、本実施形態では気流効果領域を縦・横・前後の立体格子状に分割してその格子の交点である格子点520b毎に、レースカー4の代表点Pcarに対する相対座標520cと、その位置で作用する流体力ベクトルとが対応づけて格納される。同図の例は前部気流効果領域10Frに適用される初期設定の例を示している。原理説明で述べたように前部気流効果領域10Frには、巻き上げる第1の流れ(図2の黒矢印にて表示さている流れ。)と、左右に分かれる第2の流れ(図2の前部気流効果領域10Fr内で白矢印にて表示されている流れ。)の複数の流れ成分が設定されているので、それぞれの風力に相当する第1流体力ベクトル520dおよび第2流体力ベクトル520eが対応付けて格納される。第1流体力ベクトル520dは格子点毎に流体力ベクトルを設定する形式で仮想気流を定義しているが、第2流体力ベクトル520eは流体場(力場)を関数によって定義しており、気流効果領域内の座標値、移動体の速度、および時間に基づいて任意の位置における流体力ベクトルを算出可能となっている。流体力ベクトルの定義方法は、何れの方法を採っても良いし、その他の方法でも良い。
【0077】
気流適用度設定データ522は、気流効果領域毎に気流適用度を算出するためのデータを格納する具体的には、例えば図8に示すように、相対角度θに対する気流適用度を求める関数が各気流効果領域に対応付けて格納されている。
本実施形態では、レースカー4(移動体キャラクタ)の移動方向に対する相対的な姿勢を代表する値として、レースカー4の車体前方方向と車体進行方向との成す相対角度θを用いる。別の言い方をするならば、相対角度θによってレースカー4の移動方向に対する車体を基準とした気流効果領域の相対的な位置関係を示すとも言える。
相対角度θを用いるのは、レースカー4はほとんどサーキットの路面に張り付く様にして走行するので左右方向の姿勢変化、即ちヨー角の変化は顕著であるが、その他のピッチやロールの変化はヨー角の変化に対して極めて小さいためである。仮にレースカーを、例えば飛行機の様にして浮上して進む設定としたゲームとするならば、車体進行方向ベクトルを基準としたピッチ・ロール・ヨーの3軸周りの姿勢に応じて気流適用度を定義する。尚、気流適用度設定データ522は関数に限らずテーブルデータであっても良いのは勿論である。
【0078】
気流効果領域制御データ524には、各気流効果領域の制御に係る各種データを格納しており、ゲームの進行に伴い、気流パターン設定部216によって随時更新される。具体的には、例えば図9は、本実施形態における気流効果領域制御データ524のデータ構成の一例を示すデータ構成図である。同図に示すように、対応する気流効果領域の識別情報を格納する識別ID524aに対応づけて、気流効果領域の格子点524b毎に仮想空間内における現在の位置座標524c、現在の第1流体力ベクトル524d、現在の第2流体力ベクトル524e、総合流体力ベクトル524fを格納する。
【0079】
位置座標524cには、レースカー4の移動に伴って気流効果領域が移動した結果としての現在の各格子点の位置座標が格納される。第1流体力ベクトル524dおよび第2流体力ベクトル524eには、気流効果領域初期設定データ520で定義されている第1流体力ベクトル520dおよび第2流体力ベクトル520eの強さと方向に適当な揺らぎを与えたものが格納される。総合流体力ベクトル524fは、第1流体力ベクトル524dと第2流体力ベクトル524eを合成した結果であり、格子点の位置で作用している流体力を一つのベクトルで表現したものである。
【0080】
気流トレーサモデルデータ530には、落葉や雪、紙屑など気流にのって流れ得るものを表現した気流トレーサオブジェクトのモデルデータやテクスチャデータ、動作データなどが格納されている。
【0081】
気流トレーサ初期配置データ532には、ゲーム開始時やゲーム進行中に配置される気流トレーサの位置座標や状態に係るデータが格納されている。例えば、落葉などがコーナーのところどころに配置されるように位置座標が決められている。或いは、コースの一部で雪が舞い散る様に設定しても良い。
【0082】
パーティクル設定データ534は、煙や砂埃、雪煙など所謂粒子系制御のパーティクルとして扱うことのできる気流トレーサの生成に係る設定が格納されている。例えば、パーティクルの放出率、発生源からの放出広がり角、速度、寿命などがこれに当る。尚、発生源は、例えば気流効果領域内に予め適宜設定されている。図2の例では、左側部気流効果領域10Lsには、前後のタイヤハウス近傍の下位置にそれぞれ一つの発生源7が設定されており、あたかもタイヤによって巻き上がる砂埃や雪煙を表すようにパーティクルが放出される。同様にして、後部気流効果領域10Rrでは、車体寄り下位置に発生源7が複数設定されている。
【0083】
気流トレーサ制御データ536は、各気流トレーサの運動制御に係るデータを格納し、ゲームの進行に伴って気流トレーサ制御部220によって随時更新される。例えば図10は、本実施形態における気流トレーサ制御データ536のデータ構成の一例を示すデータ構成図である。同図に示すように、オブジェクトID536aに対応付けて、現在の位置座標536b、現在の速度ベクトル536c、基本作用力ベクトル536d、総合作用力ベクトル536が格納されている。その他、オブジェクトの姿勢や輝度や色など表示に係るパラメータなども適宜対応付けて格納することができる。
【0084】
オブジェクトID536aには、気流トレーサモデルデータ530で定義された落葉などの個体として識別できるオブジェクト(同図の「落葉01」)や、パーティクル設定データ534に従って発生されたパーティクル(同図の「砂埃02」)1つ1つの識別情報が格納される。
【0085】
基本作用力ベクトル536dには、気流トレーサが仮想気流以外に作用する重力や環境風などによって受ける外力のベクトルを格納する。
【0086】
総合作用力ベクトル536eには、当該オブジェクトに作用する総合的な外力ベクトルを格納する。トレーサオブジェクトが気流効果領域10内に有る場合には、基本作用力ベクトル536dに加えて最近傍の格子点に設定されている総合流体力ベクトル524fが該当気流効果領域に適用される気流適用度分だけ作用するので、これらの合力が格納される。具体的には、「総合作用力ベクトル=基本作用力ベクトル+(総合流体力ベクトル×気流適用度(%)/100)」で求められる。総合流体力ベクトルの大きさが、気流適用度によって可変されることとなり、実質的に気流効果領域に設定された仮想気流の流体力(本実施形態の場合では風力に相当する。)がレースカー4(移動体キャラクタ)の移動方向に対する相対的な姿勢に応じて可変されることになる。
【0087】
[動作の説明]
次に、本実施形態における家庭用ゲーム装置1200の動作について説明する。尚、ここで説明される処理は、ゲーム装置1200の処理部200がシステムプログラムおよびゲームプログラム502等を読み出して演算処理することによって実現される。また、タイムアタック時間の計時などゲームプレイの基本的な処理については公知のドライブゲームと同様にして実現できるので説明を省略し、ここでは気流効果の表現に関する処理についてのみ説明する。
【0088】
図11は、本実施形態における処理の流れを説明するためのフローチャートである。同図に示すように、先ず、処理部200のゲーム演算部210は、コースデータ510を参照して仮想空間にサーキットコースを形成するためのオブジェクトを配置し(ステップS2)、更にそのコース上に、気流トレーサモデルデータ530で定義された気流トレーサのオブジェクトを気流トレーサ初期配置データ532に従って配置する(ステップS4)。そして、レースカーモデルデータ512を参照してレースカー4のオブジェクトをコースのスタート位置に配置する(ステップS6)。そして、所定のゲームスタート操作が操作入力部100で為されたならば(ステップS8のYES)、ゲームをスタートさせる。
【0089】
ゲームがスタートしたならば、プレーヤがゲームコントローラ1220からハンドル操作、変速機操作、アクセル操作、ブレーキ操作などの操作入力をする。操作入力部100は、プレーヤによる操作入力に応じた操作入力信号を処理部200に出力する。
ゲーム演算部210は、例えば1/60秒毎に、操作入力部100からの操作入力信号に応じて、レースカー4について、位置座標514b、車体前方方向ベクトル514cおよび車体進行方向ベクトル514dなどレースカーのオブジェクトの姿勢及び運動状態量(例えば、速度や加速度などが含まれる。)を物理演算によってシミュレーションして算出し(ステップS10)、レースカー4のオブジェクトを移動させる(ステップS12)。これに伴って、レースカー制御データ514が更新される。
【0090】
次にゲーム演算部210は、気流トレーサの一つであるパーティクルを発生させ(ステップS14)、次いで気流効果表現制御部212が、先にコース上に配置されている落葉などの気流トレーサのオブジェクトとともに、生成されたパーティクルが仮想気流によって流されるように移動制御するために気流効果処理を実行する(ステップS16)。
【0091】
図12は、本実施形態における気流効果処理の流れを説明するためのフローチャートである。気流効果処理では、先ず気流効果表現制御部212が、新たに算出されたレースカー4の車体前方方向単位ベクトル514cと車体進行速度ベクトル514dとが成す相対角度θを算出する(ステップS50)。先に述べた様に、レースカー4のオブジェクトはサーキットのコース上を移動するので、実質的にその姿勢変化はヨー角変化に他ならない。したがって、実質的に当該ステップによってレースカー4の移動方向に対する姿勢を判定することになる。また、そもそも気流効果領域側10はレースカー4が移動方向に対して所定の姿勢をとって移動する状態を想定して設定されているので、気流効果領域10側から見れば気流効果領域のレースカーオブジェクトの移動方向に対する相対位置を判定することとも同義である。
【0092】
次いで、気流効果表現制御部212は、実際に適用される仮想気流のパターンを決定する気流パターン設定処理を実行する(ステップS52)。
【0093】
図13は、本実施形態における気流パターン設定処理の流れを説明するためのフローチャートである。気流パターン設定処理では、気流効果表現制御部212が、気流効果領域毎にループB1の処理を行う(ステップS80〜S98)。ループB1では、先ず処理対象となっている気流効果領域の各格子点について当該格子点位置における流体力ベクトルを求めるループB2の処理を実行する(ステップS82〜S94)。
【0094】
ループB2では、先ず気流効果領域初期設定データ520を参照し、処理対象の格子点に設定されている第1流体力ベクトル520dを読み出し、これに対してベクトルの方向および大きさの両方について、所定範囲内でランダムに可変し揺らぎを与える(ステップS84)。この際、第1流体力ベクトルがベクトル値ではなく、関数によって定義されている場合には、例えば当該格子点の座標値と時刻などのパラメータに基づいて第1流体力ベクトルを算出するのは勿論である。そして、可変した第1流体ベクトルを気流効果領域制御データ524に第1流体力ベクトル524dとして格納する(ステップS86)。これによって本来一様に定義されている仮想気流に現実のようにランダムな変化を与えてリアリティを高める。
【0095】
次に、気流効果表現制御部212は、同様にして処理対象の格子点に設定されている第2流体力ベクトル520eを読み出して可変し(ステップS88)、可変した第2流体ベクトルを気流効果領域制御データ524に第2流体力ベクトル524eとして格納する(ステップS90)。そして、新たに求められた第1流体力ベクトル524dと第2流体力ベクトル524eとを合成して、気流効果領域制御データ524に総合流体力ベクトル524fとして格納し(ステップS92)、当該格子点に対するループB2の処理を終了する(ステップS94)。
【0096】
次に、全ての格子点についてループB2の処理が終了したならば、気流効果表現制御部212は、先に求められたレースカー4の移動に伴う処理対象の気流効果領域の移動を行う。すなわち、処理対象の気流効果領域に含まれる全格子点の位置座標を、レースカー4の代表点に対する相対位置関係に従って更新し、気流効果領域制御データ524の位置座標524cとして格納する(ステップS96)。そして、処理対象の気流効果領域に対するループB1の処理を終了する(ステップS98)。
ここで、全ての気流効果領域についてループB1の処理を実行したならば、気流パターン設定処理を終了する。
【0097】
図12のフローに戻って、気流効果表現制御部212は次に、気流適用度設定データ522を参照して、先に算出されて相対角度θに基づいて各気流効果領域10の気流適用度を求める(ステップS54)。
【0098】
ここまでの一連の処理によって、現在のインターにおけるレースカー4が移動することによって発生する仮想気流の力場が決定したことになる。そこで、決定した仮想気流を実際に仮想力場内に存在する気流トレーサの移動制御に適用する。
そのために先ず、気流効果表現制御部212は、ゲーム空間中の画像表示の対象範囲であるクリッピング範囲内に位置するパーティクルを含む気流トレーサを抽出する(ステップS56)。そして、抽出された全ての気流トレーサのオブジェクトについてループAの処理を実行する(ステップS58〜S70)。
【0099】
ループAでは、先ず処理対象となっている気流トレーサオブジェクトの自由落下や環境風による外力に相当する基本作用力ベクトル536dを算出し、気流トレーサ制御データ536に格納する(ステップS60)。
【0100】
次に、当該処理対象オブジェクトが、気流効果領域内に存在するか否かを判定する(ステップS62)。気流効果領域内に存在しない場合には(ステップS62のNO)、気流効果表現制御部212は、当該オブジェクトを先に求めた基本作用力ベクトル536dのみが作用しているものとして物理法則に従って移動位置・姿勢・運動状態量などを算出し、気流トレーサ制御データ536を更新するとともに当該オブジェクトを移動制御する(ステップS63)。そして、当該オブジェクトへのループA処理を終了する(ステップS70)。
【0101】
一方、処理対象のオブジェクトが気流効果領域内に存在する場合(ステップS62のYES)、気流効果領域制御データ524を参照して処理対象オブジェクトに最近傍の格子点を抽出し、当該格子点に設定されている総合流体力ベクトル524fを参照する(ステップS66)。
【0102】
そして、「総合作用力ベクトル=基本作用力ベクトル+(総合流体力ベクトル×気流適用度(%)/100)」で総合作用力ベクトル536eを求め、気流トレーサ制御データ536に格納する(ステップS68)。すなわち、処理対象オブジェクトが存在する気流効果領域に適用される気流適用度を、参照した総合流体力ベクトル524fに乗じて、仮想気流によって作用する外力を決定し、ベクトル和をとってこれを基本作用力ベクトル536dとする。これによって、最終的に処理対象のオブジェクトに現在のインターで作用する外力が求められたことになる。したがって、気流効果表現制御部212は、求めた総合流体力ベクトル524fが作用するのとして物理法則に従って当該処理対象のオブジェクトの移動位置・姿勢・運動状態量などを算出し、気流トレーサ制御データ536を更新するとともに、当該オブジェクトを移動制御する(ステップS68)。そして、当該オブジェクトへのループA処理を終了する(ステップS70)。
そして、クリッピング範囲内の全ての気流トレーサについてループAの処理を実行したならば気流効果処理を終了する。
【0103】
図11のフローに戻って、ゲーム演算部210はレースカー4をその撮影範囲に収めるように仮想カメラを移動処理する(ステップS18)。そして、音生成部250がゲーム音の音信号を生成し音出力部350に出力し、画像生成部260がゲーム画像を生成して画像信号を画像表示部360に出力する(ステップS20)。
ここで、所定のゲーム終了条件を満たしているか否かを判定する。例えば、本実施形態では、所定の周回数を走り終えたならばゲーム終了としても良い。そして、ゲーム終了条件を満たしていないと判定されたならば(ステップS22のNO)、ステップS10に戻り、ゲーム終了条件を満たしているならば(ステップS22のYES)、ゲーム終了となる。
【0104】
以上の処理によって、移動体キャラクタの移動方向に対する姿勢にかかわらず、あたかも気流が存在するかのようなリアルな表現が実現できる。
例えば、図14は、本実施形態におけるゲーム画面の一例を示す図である。同図(a)は、右コーナーに進入するレースカー4を正面から仮想カメラで撮影した様子に相当する。レースカー4はまだコーナーに差し掛かったばかりであり、大きな白矢印で示された旋回軌跡に沿ってほとんど直進している姿勢である。この姿勢では、レースカー4の車体前方方向は車体進行方向に沿っているので、後部気流効果領域10Rr及び前部気流効果領域10Frが適用される。その結果、同図(a)に示すように、車体後方に落葉11や土煙12が巻き上がっている様子が表現され、車体前方では落葉11が車体の左右に流れ、或いはボンネット上に巻き上げられる様子がリアルに表現される。
【0105】
また、同図(b)は右コーナーの中ほどを旋回するレースカー4を前方より撮影した様子に相当する。レースカー4はドリフト走行によってコーナーを駆け抜ける最中であり、旋回軌跡に対して車体前方が旋回内側に向いた所謂「ドリフト姿勢」となっている。したがってこのケースでは、右側部気流効果領域10Rsと後部気流効果領域10Rrとが中程度に適用される。その結果、現実の自動車が右コーナーをドリフト走行で旋回したのと同じように車体右後方に落葉11や土煙12が巻き上がっている様子が表現される。
【0106】
[ハードウェア構成の説明]
次に図15を参照して、本実施形態におけるゲーム装置1200を実現するためのハードウェア構成の一例について説明する図である。ゲーム装置1200は、CPU1000、ROM1002、RAM1004、情報記憶媒体1006、画像生成IC1010、音生成IC1008、I/Oポート1012,1014がシステムバス1016により相互にデータ入出力可能に接続されている。I/Oポート1012にはコントロール装置1022が、I/Oポート1014には通信装置1024が、それぞれ接続されている。
【0107】
CPU1000は、情報記憶媒体1006に格納されるプログラム、ROM1002に格納されるシステムプログラム(装置本体の初期化情報等)、コントロール装置1022によって入力される信号等に従って、装置全体の制御や各種データ処理を行う。
【0108】
RAM1004は、CPU1000の作業領域等として用いられる記憶手段であり、情報記憶媒体1006やROM1002内の所与の内容、CPU1000の演算結果等が格納される。
【0109】
情報記憶媒体1006は、プログラム、画像データ、音データ、プレーデータ等が主に格納されるものであり、情報記憶媒体として、ROM等のメモリやハードディスクや、CD−ROM、DVD、ICカード、磁気ディスク、光ディスク等が用いられる。尚、この情報記憶媒体1006は、図5に示す記憶部500に相当するものである。
【0110】
また、この装置に設けられている画像生成IC1010と音生成IC1008により、音や画像の好適な出力が行えるようになっている。
【0111】
画像生成IC1010は、CPU1000の命令によって、ROM1002、RAM1004、情報記憶媒体1006等から送られる情報に基づいて画素情報を生成する集積回路であり、生成される画像信号は、表示装置1012に出力される。表示装置1012は、CRTやLCD、ELD、プラズマディスプレイ、或いはプロジェクター等により実現され、図5に示す画像表示部360に相当する。
【0112】
また、音生成IC1008は、CPU1000の命令によって、情報記憶媒体1006やROM1002に記憶される情報、RAM1004に格納される音データに応じた音信号を生成する集積回路であり、生成される音信号はスピーカ1020によって出力される。スピーカ1020は、図5に示す音出力部350に相当するものである。
【0113】
コントロール装置1022は、プレーヤがゲームに係る操作を入力するための装置であり、その機能は、レバー、ボタン、筐体等のハードウェアにより実現される。尚、このコントロール装置1022は、図5に示す操作入力部100に相当するものである。
【0114】
通信装置1024は装置内部で利用される情報を外部とやりとりするものであり、プログラムに応じた所与の情報を他の装置と送受すること等に利用される。尚、この通信装置1024は、図5に示す通信部370に相当するものである。
【0115】
そして、ゲーム処理等の上記した処理は、図5のゲームプログラム502等を格納した情報記憶媒体1006と、これらプログラムに従って動作するCPU1000、画像生成IC1010、音生成IC1008等によって実現される。CPU1000、画像生成IC1010、及び音生成IC1008は、図5に示す処理部200に相当するものであり、主にCPU1000がゲーム演算部210、画像生成IC1010が画像生成部230に、音生成IC1008が音生成部250にそれぞれ相当する。
【0116】
尚、画像生成IC1010、音生成IC1008等で行われる処理は、CPU1000或いは汎用のDSP等によりソフトウェア的に行ってもよい。この場合には、CPU1000が、図5に示す処理部200に相当することとなる。
【0117】
以上、第1実施形態について説明したが、移動体キャラクタの移動方向に対する相対的な姿勢の判定、別の言い方をすると、移動体の移動方向に対する前記移動体を基準とした気流効果領域の位置関係の判定に、移動体の前方方向ベクトルと進行方向ベクトルとの相対角度差θを用いたがこれに限るものではない。
【0118】
例えば、気流効果領域にそれぞれ代表点を設定して気流効果領域初期設定データ520に格納しておく。そして、車体前方方向単位ベクトル514cを用いて演算処理するステップにおいては、車体前方方向単位ベクトル514cに代えて気流効果領域の代表点からレースカー4の代表点Pcarへ向かう相対位置ベクトルを求め、この相対位置ベクトルと車体進行方向ベクトル514dとの相対角度を用いる構成としても良い。この場合、図16の気流適用度設定データ522Bのように、相対位置ベクトルと車体進行方向ベクトル514dとの相対角度に基づいて気流適用度を定義する。
【0119】
〔第2実施形態〕
次に、本発明を適用した第2実施形態について説明する。本実施形態は、基本的に第1実施形態と同様の構成を有するが、気流効果領域に適用されるベースとなる気流パターンが複数設定されており、移動体キャラクタの移動方向に対する姿勢に応じて気流パターンが選択・適用する特徴を有する。尚、第1実施形態と同様の構成要素については同じ符号を付与しその説明は省略する。
【0120】
[機能ブロックの説明]
図17は、本実施形態における機能構成の一例を示す機能ブロック図である。本実施形態の機能ブロックでは、基本的には第1実施形態のそれと同様である。
特徴としては、第1実施形態における気流パターン設定部216、気流適用度設定部218、気流効果領域初期設定データ520、気流適用度設定データ522に相当する機能構成要素として、気流パターン設定部217、気流適用度設定部219、気流効果領域初期設定データ521、気流適用度設定データ523を備えている点が挙げられる。
【0121】
気流パターン設定部217は、第1実施形態の気流パターン設定部216と同様の機能を奏するとともに、更に気流効果設定処理を実行するに際してレースカー4の移動方向に対する姿勢から気流効果領域初期設定データ521に格納されている複数の気流パターンから一つを選択して、選択した気流パターンについて第1実施形態と同様にして各格子点における流体力ベクトルを設定する。
【0122】
図18は、本実施形態における気流効果領域初期設定データ521のデータ構成の一例を示すデータ構成図である。同図に示すように、対象となる気流効果領域の識別情報を格納する対象エリア521aに対応付けて、複数の気流パターンデータ521bが定義されている。
【0123】
一つの気流パターンデータ521bには、気流パターンID521cと、当該気流パターンが適用される適用条件521dとが対応づけられ、更に格子点ID521e毎にレースカー4の代表点Pcarを基準とする相対座標521fと、当該格子点位置における流体力ベクトル521gとが対応付けられている。
本実施形態では、レースカー4の移動方向に対する姿勢を判定するため、別の言い方をするとレースカー4の移動方向を基準とした気流効果領域の相対位置を判定するために、レースカー4の車体前方方向単位ベクトル514cと車体進行方向ベクトル514dとの相対角度θを用いるので、適用条件521dも相対角度θの角度範囲で定義されている。尚、ここでは流体力ベクトル521gを一つのデータとして示しているが、第1実施形態と同様に複数の流体力の合成とする場合には適宜複数としても良いのは勿論である。
【0124】
図19および図20は、本実施形態における気流パターンの設定例の一部を示す概念図である。図19(a)(b)、図20(a)(b)の順で、車体前方方向6が車体進行方向8に対して上から見て右回りに変化している状態、つまり右コーナーをドリフト走行してコーナー出口で反対向きになってしまうまでの状態に相当する。尚、車体が車体進行方向に対して上から見て左回りに変化する場合(=相対角度θがマイナス方向に変化する場合)も同様である。
【0125】
図19(a)は、相対角度θが0°近傍の値である場合に設定される各気流効果領域の気流パターンを示している。例えば、前部気流効果領域10Frの気流パターンFr1では、黒矢印で示されているボンネットへ乗り上げる第1の流れと、一点鎖線白矢印で示されている車体下面または側面に向けて流れる第2の流れとが設定されている。左側部気流効果領域Lsの気流パターンLs1では、黒矢印の車体に沿ってうねりつつ、やや外側に広がる第1の流れと、一点鎖線白矢印の車体進行方向に向かって右巻き渦流の第2の流れとが設定されている。右側気流効果領域Rsの気流効果パターンRs1は、左側部気流効果領域Lsと左右対称関係の仮想気流が設定されている。そして、後部気流効果領域Rrの気流パターンRr1では、黒矢印の車体後部ディフューザによる巻き上げる第1の流れと、一点鎖線白矢印の車体後部へ回り込むカルマン渦流を模した第2の流れとが設定されている。
【0126】
同様にして、図19(b)、図20(a)および(b)では、相対角度θの条件毎に、その条件において実際の自動車が移動した場合に各気流効果領域にて生ずるであろう気流パターンを設定している。尚、ここでは相対角度θが45°刻みで条件を分けているが、これに限るものではなく適宜更に細かく設定しても良いのは勿論である。
【0127】
また、更に本実施形態で特徴的である点は、相対角度θの条件に応じて、各気流効果領域の形状が可変する様に定義されていることである。
例えば、後部気流効果領域10Rrについてみると、図19(a)の相対角度θが0°近傍である場合の車体前後方向長さ(領域の奥行き相当長さ)LDrr1が最大となり、図20(a)の相対角度θが90°近傍および180°近傍である場合の同長さLDrr3、LDrr4が最小となるように設定されている。
また例えば、前部気流効果領域10frでは、相対角度θが0°前後から90°近傍までにおける車体前後方向長さ(領域の奥行き相当長さ)LDfr1〜LDfr3が最小となり、相対角度θが増すにつれて大きくなり、相対角度θが180°近傍である場合の長さLDfr4が最大となるように設定されている。
【0128】
また例えば、右側部気流効果領域10Rsについては、図19(a)の相対角度θが0°前後の車体側方向長さ(領域の横幅相当長さ)LWrs1が最小となり、ここから相対角度θが増加するにともなって大きくなり、図20(a)の相対角度θが90°近傍である場合に一端、長さLWrs3が最大となる。そして、更に相対角度θが増加すると今度は小さくなり、相対角度θが180°近傍で再び長さLWrs4が最小となるように設定されている。左側部気流効果領域10Lsについては、右側部気流効果領域10Rsと同様である。
【0129】
こうした設定によって、移動体キャラクタの移動方向を基準とした気流効果領域の相対位置が真後ろ(移動背面側)に近いと気流効果領域が移動方向後方へ向けて拡大するように制御される。第1実施形態のように単一の気流パターンしか設定されていない場合と比較すると、本実施形態では移動体キャラクタの移動方向に対する姿勢が変化するのに応じて、気流の形態と発生箇所、更に気流の大きさをより細かく可変し、実際に自動車が走行したときと同じようによりリアルに表示させることが可能となる。
【0130】
気流適用度設定データ523は、第1実施形態における気流適用度設定データ522と同様にして気流効果領域毎の相対角度θから気流適用度を求めるためのデータが格納されている。ただし、本実施形態では上述のように、気流効果領域毎に気流パターンが複数設定されており、移動体キャラクタの移動方向に対する姿勢が変化した状態に対応してリアルな気流パターンを設定できる。したがって、例えば図21に示すように、0%以上の気流適用度が算出されるように関数テーブル523aが設定されている。また、本実施形態における特徴の一つとして、関数テーブル523aを参照して得られた気流適用度を更に車体進行速度に応じて可変するための車体速度係数ksを算出するための係数テーブル523bが設定されている。
【0131】
車体速度係数ksは、気流適用度に乗算される係数である。係数テーブル523bでは、車体進行速度が高くなるほど「1.0」に近づく様に係数ksが設定されている。従って、レースカー4が低速で走っている場合には参照された気流適用度は小さく補正され、高速走行している場合には参照した気流適用度は補正される程度が小さくなり参照値に近い値で適用されることになる。結果、低速走行時には気流効果領域が活性化せず、ゲーム画面上は気流が無い状態に近づく。反対にレースカー4が高速走行している場合には、気流効果領域が活性化し、ゲーム画面上、派手に気流が発生しているように表現される。
【0132】
[動作の説明]
次に、本実施形態における家庭用ゲーム装置1200の動作について、第1実施形態と異なる点を説明する。
本実施形態では、基本的に第1実施形態と同様の処理が行われるが、第1実施形態の気流効果処理(ステップS16)に代えて、気流効果処理Bを実行する点が特徴として挙げられる。
【0133】
図22は、気流効果処理Bの流れを説明するためのフローチャートである。同図に示すように、気流効果領域設定部214は、先ず第1実施形態と同様に相対角度θを算出し(ステップS50)、気流効果パターン設定処理Bを実行する(ステップS53)。
【0134】
図23は、気流パターン設定処理Bの流れを説明するためのフローチャートである。同図に示すように、第1実施形態と同様に各気流効果領域についてループB1の処理を実行する。そして、ループB1の処理としてループB2の処理を実行する前に、気流効果領域設定部214が気流効果領域初期設定データ521を参照し、処理対象の気流効果領域に対応する相対角度θに応じた気流パターンを選択する(ステップS81)。そして、ループB2では、選択した気流パターンに基づいてステップS84〜S92に掛けての処理を実行する(ステップS83)。つまり、ステップS81によって、現在の移動体キャラクタの移動方向(=車両進行速度ベクトル514cの方向)に対する姿勢で、処理対象の気流効果領域の配置位置で生じるとされる気流パターン521bを選択し、選択された気流パターン521bを処理に用いる。
【0135】
気流パターン設定処理Bを終了したならば図22のフローに戻り、気流効果領域設定部214は次に、気流適用度設定データ521を参照し、相対角θに基づいて各気流効果領域の気流適用度と係数Ksとを求め(ステップS55)、クリッピング範囲内の気流トレーサおよびパーティクルのオブジェクトを抽出する(ステップS56)。そして、抽出された全てのオブジェクトついてループAの処理を実行する。
【0136】
そして本実施形態では、ループAの処理を実行する際、総合作用力ベクトル536eを「総合作用力ベクトル=基本作用力ベクトル+(総合流体力ベクトル×気流適用度×係数ks)」の式で算出する(ステップS67)。
【0137】
ステップS67によって、車体進行速度が低いほど気流適用度が小さくなるように可変されたうえで総合作用力ベクトル536eが算出されることになる。つまり、移動体キャラクタの移動方向に対する姿勢が同じであっても、移動速度が小さいほど気流効果領域が活性化せず、気流トレーサはさほど仮想気流の影響を受けない。したがって、ゲーム画面上は弱い気流が存在する程度に表現される。反対に、移動速度が大きいほど気流効果領域が活性化する。したがって、気流トレーサが仮想気流に乗って派手に動くように表現される。よって、低速走行時には気流が発生し難く視覚的にもあまり強い印象を受けないが、走行速度が高くなるにつれて気流がより強く大きく発生し、視覚的に派手に見えるというように実際の現象により近い表現が可能となる。
【0138】
例えば、図24は本実施形態における気流パターンの選択例とそのゲーム画面の一例を示す図である。右コーナーをドリフト走行によって旋回中のレースカー4を正面から撮影した状態に相当する。同図(a)に示すように、レースカー4はドリフトによって車体前方方向6が車体進行方向8に対して、上から見て右回転方向にずれている。したがって、前部気流効果領域10Frには、気流パターンFr2が選択され、後部気流効果領域10Rrには気流パターンRr2、左側部気流効果領域10Rsには気流パターンRs2、右側部気流効果領域10Lsには気流パターンLs2が夫々選択される。そして、この時の相対角度θに応じた気流適用度が、車体進行速度に応じた係数ksによって可変されて適用される。
【0139】
この結果、同図(b)に示すように、レースカー4の左後方に派手に落葉11−1が巻き込まれながら砂埃12が舞う一方、車体全部および車体右側部では、落葉11−2,10−3,10−4が車体に沿って流れる様子が表現される。プレーヤは、落葉11−1や砂埃12から本物同様にレースカー4のドリフト走行のダイナミックさを感じる。そして、落葉11−2,10−3,10−4によって、車体左後方ほどではないが車体が大気を押し分けるその影響で気流が生じている様に感じることで、よりリアルティを感じることになる。
【0140】
[変形例]
以上、本発明を適用した第1実施形態および第2実施形態について説明したが、本発明の形態はこれらに限るものではなく、発明の主旨を逸脱しない限りにおいて適宜構成要素の追加・削除・変更をすることができる。
【0141】
例えば、上記実施形態では移動体としてレースカーを例に挙げたが、例えば図25に示すようにジェットスキー20(このケースでは、操縦するキャラクタ込みの意。)を含む船舶にも適用することができる。この場合、ジェットスキー20で水上を走行する場合に発生する気流を、船体の外側に気流効果領域10で仮想流体からの影響を受ける水しぶきや、霧、雪などで表現することができる。この場合、気流効果領域の流体力や形状及び大きさを変更するためのパラメータとして、第1及び第2実施形態における相対角度θに相当するヨー角や、ピッチ角を用いることができる。
【0142】
また、例えば図26に示すように戦闘機22を含む航空機にも適用することができる。この例の場合では、主翼の上面及び胴体前方上面に気流効果領域10を配置し、ピッチ各(仰角)が所定角度以上になった場合に、気流トレーサオブジェクトを生成するとともに気流効果領域10の流体力や形状及び大きさの内少なくとも1つを可変することによって翼端で生じる渦などの気流を表現することが可能になる。すなわち、空気中や水中などあらゆる流体中で移動するオブジェクトについては同様に適用することができる。
【0143】
また、第1および第2実施形態では、家庭用ゲーム装置1200でゲームを実行する例を挙げたが、業務用ゲーム装置、家庭用ゲーム装置、或いはパソコンなどで実行する構成としても良い。
例えば、図27は業務用ゲーム装置1300の構成の一例を示す斜視外観図である。同図にしめすように、業務用ゲーム装置1300には、処理部200(図5)に相当する制御ユニット1320が設けられている。基板ユニット1320には、記憶部500(図5)に相当するROMやRAM、ハードディスク、ICメモリなどが搭載されており、所定のプログラムに従って装置各部を制御してゲームを実行する。プレーヤは筐体1301に設けられたディスプレイ1302およびスピーカ1304に向かってシート1306に着座する。そして、操作入力部100(図5)に相当するハンドル1310、変速機操作レバー1312、アクセルペダル1314、ブレーキペダル1316でゲーム操作を入力する。
【0144】
また、第1および第2実施形態では、気流効果領域10を移動体に対して固定位置としているが、これに限らず変動させても良い。例えば、レースカー4の車体にそってランダムに平行移動させるならば、仮想気流により一層の揺らぎを与えリアリティを高めることができる。
【0145】
或いは、図28に示すように、複数の気流効果領域AR1〜AR5をレースカー4の周りに沿って周回自在に配列させる構成としても良い。
例えば、基本的には第1実施形態と同様であるが、気流効果領域初期設定データを図29に示すように設定する。同図に示すように、気流効果領域初期設定データ525では、パターンID525cに対応づけて、複数の気流パターンデータ525bが登録されている。それぞれの気流パターンデータ525bには、当該パターンが適用される相対角度θの選択条件525dと、領域ID525e毎の相対座標値525fおよび流体力ベクトル525gとが格納されている。
【0146】
相対座標値525fには、レースカー4の代表点Pcarに対する各気流効果領域の代表点P11,P12…の相対位置座標が格納されている。複数ある気流効果領域AR1〜AR5の相互の位置関係、すなわち互いの配列順は固定されている。また、中央寄りの領域の気流適用度が最も高く、配列の端ほど低くなるように設定されている。
流体力ベクトル525gは、例えば領域下部からレースカー4から離れた側を上昇し、レースカー4寄りを下降するような渦流を模した設定、カルマン渦を模した渦流を模した設定などが適宜設定される。
【0147】
そして、処理についても基本的には第1実施形態と同様であるが、この場合気流効果表現制御部212が、ステップS16に代えて、レースカーの車体前方方向ベクトルと車体進行速度ベクトルとが成す相対角θを算出する。そして、算出した相対角θが該当する選択条件525dの気流パターンデータ525bを選択し、選択された気流パターンデータ525bの相対座標値525fに従って気流効果領域AR1〜AR5の仮想空間内での位置を変更して、気流パターンを設定する。
【0148】
次いで、変更後位置の気流効果領域AR1〜AR5内に存在する気流トレーサオブジェクトを抽出して、抽出されたオブジェクトに該当領域に設定されている流体力ベクトル525gが作用するものとして、移動位置・姿勢・運動状態量などを算出する。
より具体的には、対象となる気流トレーサオブジェクトの自然運動に基づく基本作用力ベクトルを算出するとともに、総合作用力ベクトルを「総合作用力ベクトル=基本作用力ベクトル+流体力ベクトル」として算出して移動位置・姿勢・運動状態量などを算出する。尚、このように予め気流効果領域AR1〜AR5の配置位置を定義しておく構成に限らない。例えば、配列中央の領域(気流効果領域AR1)がレースカー4にとって、常に車体進行速度ベクトル514dの真後ろの位置に位置するように移動制御する構成としても良い。
【0149】
また、第1および第2実施形態では、力影響物体である気流トレーサとして単体で移動しえる落葉や煙の粒子などを用いる構成としたがこれに限定されるものではない。例えば、髪の毛など気流によってなびくものを用いるとしても良い。
【0150】
また、第1および第2実施形態では、力場として流体場を例に挙げたがこれに限らず、磁場、重力場などその他の力場の表現に適宜用いることができる。
【図面の簡単な説明】
【0151】
【図1】家庭用ゲーム装置の構成例を示す構成図。
【図2】第1実施形態における仮想流体場にあたる気流効果領域の設定例について示す図。
【図3】第1実施形態における後部気流効果領域の仮想気流の定義例を示す概念図。
【図4】レースカー4が右コーナーをドリフト走行によって軌跡5に沿って旋回する様子を、レースカー4の移動条件が異なる代表的な状態を真俯瞰して示す概念図。
【図5】第1実施形態における機能構成の一例を示す機能ブロック図。
【図6】第1実施形態におけるレースカー制御データのデータ構成の一例を示すデータ構成図。
【図7】第1実施形態における気流効果領域初期設定データのデータ構成の一例を示すデータ構成図。
【図8】第1実施形態における気流適用度設定データのデータ構成の一例を示すデータ構成図。
【図9】第1実施形態における気流効果領域制御データのデータ構成の一例を示すデータ構成図。
【図10】第1実施形態における気流トレーサ制御データ536のデータ構成の一例を示すデータ構成図。
【図11】第1実施形態における処理の流れを説明するためのフローチャート。
【図12】第1実施形態における気流効果処理の流れを説明するためのフローチャート。
【図13】第1実施形態における気流パターン設定処理の流れを説明するためのフローチャート。
【図14】第1実施形態におけるゲーム画面の一例を示す図。
【図15】ゲーム装置1200を実現するためのハードウェア構成の一例について説明するハードウェア構成図。
【図16】気流適用度設定データの変形例を示すデータ構成図。
【図17】第2実施形態における機能構成の一例を示す機能ブロック図。
【図18】第2実施形態における気流効果領域初期設定データのデータ構成の一例を示すデータ構成図。
【図19】第2実施形態における気流パターンの設定例の一部を示す概念図。
【図20】第2実施形態における気流パターンの設定例の一部を示す概念図。
【図21】第2実施形態における気流適用度設定データのデータ構成の一例を示すデータ構成図。
【図22】第2実施形態における気流効果処理Bの流れを説明するためのフローチャート。
【図23】第2実施形態における気流パターン設定処理Bの流れを説明するためのフローチャート。
【図24】第2実施形態における気流パターンの選択例とそのゲーム画面の一例を示す図。
【図25】移動体キャラクタの変形例と、気流効果領域の配置例を示す図。
【図26】移動体キャラクタの変形例と、気流効果領域の配置例を示す図。
【図27】業務用ゲーム装置1300の構成の一例を示す斜視外観図。
【図28】気流効果領域を移動させる構成の概念を説明する図。
【図29】気流効果領域を移動させる場合における気流効果領域初期設定データのデータ構成の一例を示すデータ構成図。
【図30】従来の技術を適用したレースカーゲームにおいて、ドリフト走行するレースカーの様子を正面から見たゲーム画面例。
【符号の説明】
【0152】
4 レースカー
6 車体前方方向
8 車体進行方向
10 気流効果領域
100 操作入力部
200 処理部
210 ゲーム演算部
212 気流効果表現制御部
214 気流効果領域設定部
216 気流パターン設定部
218 気流適用度設定部
220 気流トレーサ制御部
224 物理演算部
500 記憶部
502 ゲームプログラム
504 気流効果表現制御プログラム
520 気流効果領域初期設定データ
522 気流適用度設定データ
1200 家庭用ゲーム装置

【特許請求の範囲】
【請求項1】
コンピュータに、仮想空間内を移動する移動体の画像を生成させるためのプログラムであって、
所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段、
所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段、
前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段、
移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段、
前記移動体制御手段により制御された移動体の移動方向に対する相対的な姿勢を判定する判定手段、
前記判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも1つを可変する力場可変手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
コンピュータに、仮想空間内を移動する移動体の画像を生成させるためのプログラムであって、
所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段、
所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段、
前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段、
移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段、
前記移動体制御手段により制御された移動体の移動方向に対する前記移動体を基準とした前記仮想力場の位置関係を判定する判定手段、
前記判定手段の判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも1つを可変する力場可変手段、
として前記コンピュータを機能させるためのプログラム。
【請求項3】
請求項1又は2に記載のプログラムであって、
前記判定手段が、前記移動体の前方方向と移動方向との角度差を求めることで前記判定を行うように前記コンピュータを機能させるためのプログラム。
【請求項4】
請求項1〜3の何れか一項に記載のプログラムであって、
前記判定手段による判定結果として取り得る値に応じた仮想力場の力、形状、大きさ及び配置位置の可変パターンが予め複数定められており、
前記力場可変手段が、前記複数の可変パターンの中から、前記判定手段の判定結果に応じた可変パターンを選択し、該選択した可変パターンに従って仮想力場を可変するように前記コンピュータを機能させるためのプログラム。
【請求項5】
請求項1〜4の何れか一項に記載のプログラムであって、
前記力場設定手段が、仮想力場を前記移動体の周囲複数箇所に設定し、
前記力場可変手段が、前記設定された複数の仮想力場それぞれについて、前記判定手段の判定結果に基づいて、力、形状、大きさ及び配置位置の内少なくとも1つを可変する、
ように前記コンピュータを機能させるためのプログラム。
【請求項6】
請求項5に記載のプログラムであって、
前記力場可変手段が、前記設定された複数の仮想力場のうち、前記移動体の移動方向側方側に位置する仮想力場の力及び/又は大きさを、移動方向前方側及び後方側に位置する仮想力場よりも小さくする、
ように前記コンピュータを機能させるためのプログラム。
【請求項7】
請求項5又は6に記載のプログラムであって、
前記力場設定手段が、仮想力場を前記移動体の周囲複数箇所に固定的に設定し、
前記力場可変手段が、前記設定された複数の仮想力場のうち、前記移動体の移動方向後方側に位置する仮想力場の力及び/又は大きさを、移動方向前方側及び側方側に位置する仮想力場よりも大きくする、
ように前記コンピュータを機能させるためのプログラム。
【請求項8】
請求項1〜7の何れか一項に記載のプログラムであって、
前記力場可変手段が、前記移動体制御手段により制御された移動体の移動速度に応じて、前記仮想力場の形状及び/又は大きさを可変する速度適応可変手段を有するように前記コンピュータを機能させるためのプログラム。
【請求項9】
請求項8に記載のプログラムであって、
前記速度適用可変手段が、前記移動体の移動速度に応じて、前記仮想力場の前記移動体の移動方向に沿った方向の長さを可変するように前記コンピュータを機能させるためのプログラム。
【請求項10】
請求項1〜9の何れか一項に記載のプログラムであって、
前記力場可変手段が、前記仮想力場の力の可変として、流速及び/又は力方向を可変する力可変手段を有するように前記コンピュータを機能させるためのプログラム。
【請求項11】
請求項1〜10の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項12】
仮想空間内を移動する移動体の画像を生成する画像生成装置であって、
所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段と、
所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段と、
前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段と、
移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段と、
前記移動体制御手段により制御された移動体の移動方向に対する相対的な姿勢を判定する判定手段と、
前記判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも1つを可変する力場可変手段と、
を備えた画像生成装置。
【請求項13】
仮想空間内を移動する移動体の画像を生成する画像生成装置であって、
所与の力に応じて移動制御される力影響物体を前記仮想空間に複数配置する配置手段と、
所与の力を発生する仮想力場を前記移動体の周囲近傍位置に設定する力場設定手段と、
前記配置された力影響物体の移動を前記設定された仮想力場の力に従って制御する力影響物体制御手段と、
移動方向に対する姿勢を可変して前記移動体の移動を制御する移動体制御手段と、
前記移動体制御手段により制御された移動体の移動方向に対する前記移動体を基準とした前記仮想力場の位置関係を判定する判定手段と、
前記判定手段の判定結果に基づき前記力場設定手段により設定された仮想力場の力、形状、大きさ及び配置位置の内少なくとも1つを可変する力場可変手段と、
を備えた画像生成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate


【公開番号】特開2008−71096(P2008−71096A)
【公開日】平成20年3月27日(2008.3.27)
【国際特許分類】
【出願番号】特願2006−248778(P2006−248778)
【出願日】平成18年9月13日(2006.9.13)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】