JP4688407B2 - Information storage medium and game device - Google Patents

Information storage medium and game device Download PDF

Info

Publication number
JP4688407B2
JP4688407B2 JP2003124237A JP2003124237A JP4688407B2 JP 4688407 B2 JP4688407 B2 JP 4688407B2 JP 2003124237 A JP2003124237 A JP 2003124237A JP 2003124237 A JP2003124237 A JP 2003124237A JP 4688407 B2 JP4688407 B2 JP 4688407B2
Authority
JP
Japan
Prior art keywords
cloud
virtual camera
setting
texture
transparency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003124237A
Other languages
Japanese (ja)
Other versions
JP2004005623A (en
Inventor
俊明 松野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP2003124237A priority Critical patent/JP4688407B2/en
Publication of JP2004005623A publication Critical patent/JP2004005623A/en
Application granted granted Critical
Publication of JP4688407B2 publication Critical patent/JP4688407B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、オブジェクト空間を仮想カメラから見た画像を生成し、当該生成画像を表示させることによって所与のゲームを実行するためのゲーム情報、情報記憶媒体及びゲーム装置に関する。
【0002】
【従来の技術】
従来、テレビゲーム装置等の画像において、雲を表現する際には、処理を軽減するために、一枚の平面状のポリゴンに雲のテクスチャをマッピングした雲オブジェクトをオブジェクト空間に複数水平に設定して、雲を表現していた。しかしながら、例えば、飛行機を操縦するゲームなどにおいて、操縦者の視点から見た画像を生成する場合には、仮想カメラ(視点)が雲と水平となることもあり、雲に厚味がないことが分かってしまうといった問題があった。そのため、雲オブジェクトを常に仮想カメラの視線方向に垂直に対向させるいわゆるビルボード処理を行なっていた。
【0003】
【発明が解決しようとする課題】
しかしながら、従来においては、雲のテクスチャをマッピングさせた1枚のポリゴンを、常に、仮想カメラに対する上下左右位置を固定し、かつ、仮想カメラの視線方向に垂直に配置する方法が採られていた。そのため、仮想カメラの位置や視線方向等が変化しても雲は全く変化しないため、違和感が生じるといった問題があった。またさらに、例えば視線方向の仰角あるいは俯角が大きくなると、±90°の角度を境にして、雲が反転して表現されてしまうといった問題があった。そのため、仮想カメラの位置や視線方向等の変化に対しても、違和感のない雲の表現が望まれていた。特にゲームにおいては、各フレームに係る処理を所与の時間内に行なわなければならないため、仮想カメラの位置や視線方向の変化に対して違和感のない雲を表現する際の、処理負担の増大を抑えなければならないといった問題もあった。
【0004】
本発明の課題は、仮想カメラの位置や視線方向の変化に対して、矛盾のない雲の表現を実現することである。
【0005】
【課題を解決するための手段】
以下、上記課題を解決するための手段を説明するが、その前に、本明細書を通じて使用する重要な用語である「雲素」および「雲状オブジェクト」について、その解釈を説明する。
【0006】
本明細書開示の技術は「雲」を如何に表現するかを主眼においた技術である。しかし、現実社会においては、「雲」の性質上、1つの「雲」は通常1つの「雲」であって、「小さい雲」が寄り集まって1つの「雲」を構成するとは考えないのが一般的である。コンピュータグラフィックスの分野においては、「雲」を粒子系(いわゆるパーティクル)により表現する手法が知られているが、この手法によれば、「雲」は「粒子(パーティクル)」の集合であって、「小さい雲」の集合ではない。しかし、本技術は粒子(パーティクル)1つ1つを制御するものではないため、「雲」を構成する単位が「粒子(パーティクル)」とは言い得ない。そこで、「雲」を構成する要素であり、単位であることを表すため「雲素」という言葉を用いている。
【0007】
上記趣旨より、本明細書を通じて雲素とは、雲状オブジェクトを構成する要素を特定するための言葉である。したがって、雲素の意には雲状オブジェクトも含まれる。即ち、雲状オブジェクト(例えば、小さい雲や、一側面のみを表した雲状オブジェクト)の集合体や、複数の雲状オブジェクトの択一的選択物等が1つの雲状オブジェクト(例えば、大きい雲や、一側面の側から見た雲状オブジェクト)であってもよいからである。また、雲素の意には、複数の粒子(パーティクル)の集合体も含まれる。即ち、雲状オブジェクトの構成要素には、複数の粒子を1つの単位とする場合も含まれるからである。
【0008】
また、「雲状オブジェクト」とは、次のことを意味する。即ち、本明細書開示の技術は「雲」を主眼においてはいるが、「雲」のみに本技術が適用可能であるのではないことを意味する。「雲状オブジェクト」とは、「煙」や「霧」、「もや」といった、そのあり方を「雲」と共通にするオブジェクトを含む意味である。
【0009】
第1の発明は、
プロセッサによる演算・制御により、第1の仮想カメラ(例えば、図2に示す仮想カメラ100)から見た第1のオブジェクト空間の画像を生成して、所与のゲームを実行することとなる第1の装置に対して、
前記第1の仮想カメラの所与の角度パラメータ(例えば、図2に示すピッチ角X)の値に応じて予め用意された複数種類の第1の雲素(例えば、図3に示す雲パーツA(122),雲パーツB(124))を、前記所与の角度パラメータの現在値に応じた所与の割合で合成処理することにより、前記第1のオブジェクト空間に前記第1の仮想カメラに向けて配置される板状体の第1の雲状オブジェクト(例えば、実施の形態における小雲ビルボード)に反映させるテクスチャ情報(例えば、図4に示す小雲テクスチャ102)を生成する第1の生成手段(例えば、図31に示す小雲描画部632)、を機能させるための、前記プロセッサによる演算可能なゲーム情報である。
【0010】
ここで、第1の装置は、コンピュータ装置であってもよいし、携帯用/家庭用/業務用のゲーム装置であってもよい。所与の角度パラメータとは、第1の仮想カメラを第1のオブジェクト空間に設定する上で必要となる、第1の仮想カメラに係る角度パラメータのことであり、例えば、第1の仮想カメラのロール角やピッチ角、ヨー角といった角度のことである。また、所与の割合での合成処理には、例えば、第1の雲素が2つであって、1:0や0:1の割合で合成処理する場合、即ち、第1の雲素を切り換える場合も含む。
【0011】
この第1の発明によれば、例えば、第1の雲状オブジェクトの一側面(例えば、正面)と他側面(例えば、裏面)を表す2つの第1の雲素を用意し、第1の仮想カメラの視線方向に応じて、その第1の雲素を切り換えること等が可能である。即ち、第1の雲状オブジェクトは第1の仮想カメラに向けて配置されるため、例えば、第1の雲状オブジェクトの正面と裏面を矛盾なく、かつ容易に表現することが可能である。
【0012】
また更に、第1の仮想カメラの「角度パラメータの現在値に応じ」て、第1の雲状オブジェクトに反映されるテクスチャ情報が生成されるため、第1のオブジェクト空間に第1の雲状オブジェクトを配置する際、第1の雲状オブジェクトの上下左右方向を考慮する必要がない。即ち、例えば、第1の仮想カメラのロール角が変化する場合には、第1の雲状オブジェクトを、当該ロール角に応じて回転させる必要が生じるが、そのロール角に応じてテクスチャ情報が生成されるため、第1の雲状オブジェクトは、単に、第1のオブジェクト空間に配置するだけ(より正確には、第1のオブジェクト空間には、第1の雲状オブジェクトを配置する位置を決定するだけ)で済む。
【0013】
第2の発明は、第1の発明のゲーム情報であって、
前記第1の雲素は少なくとも透明度情報(例えば、実施の形態におけるα値)を含む色情報を有するテクスチャ情報であり、
前記第1の生成手段に対して、前記複数種類の第1の雲素の色情報を、前記所与の割合で合算することにより前記複数種類の第1の雲素を合成処理する、ように機能させるための情報(例えば、実施の形態における式(2)、(3))を含むことを特徴としている。
【0014】
この第2の発明によれば、第1の雲素の合成処理は、色情報の合算で済む。また、色情報が透明度情報だけの場合には、色情報の合算演算をさらに容易に済ませることができる。即ち、例えば、第1の雲状オブジェクトの色を「白色」として予め設定しておけば、透明度情報の演算のみで、簡単に、描画される第1の雲状オブジェクトの色を決定することができる。
【0015】
第3の発明は、第2の発明のゲーム情報であって、
前記第1の装置に対して、所与のアニメーション(例えば、図7に示す気流テクスチャ104)を前記第1の雲素の色情報に反映させるアニメーション反映手段、を機能させるための情報を含むことを特徴とする。
【0016】
この第3の発明によれば、第1の雲素の色情報が時間経過に従って変化するため、気流の様子を表現することができる。
【0017】
この場合、さらに第4の発明のように、第3の発明のゲーム情報に、
前記アニメーション反映手段に対して、前記第1の雲素に反映させる前記所与のアニメーションの向き、縮尺、及び部分の内少なくとも1つを変更する、ように機能させるための情報を含ませることとしてもよい。
【0018】
この第4の発明によれば、第1の雲素は複数種類あるため、その種類によって、アニメーションを反映させる向きや縮尺、部分(例えば、アニメーションを第1の雲素にマッピングする場合には、第1の雲素に対するマッピングの向きなど)を変更することにより、1つのアニメーションであっても様々な気流を表現することが可能となる。
【0019】
また、第5の発明のように、第3または第4の発明のゲーム情報であって、
前記所与のアニメーションは、少なくとも透明度情報を含む色情報の時間的変化を表すアニメーションであり、
前記アニメーション反映手段に対して、前記所与のアニメーションに基づいて前記第1の雲素の色情報を決定する、ように機能させるための情報を含むこととしてもよい。
【0020】
この第5の発明によれば、所与のアニメーションを、例えば、周期的に色情報が変化したり、透明度情報のみが変化するといったものとすることができる。例えば、第1の雲素の色を「白色」と予め決定されている場合には、第1の雲素が描画される際の色を、「透明度情報」のみによって決定することができるため、第1の雲素の色情報を決定する処理を簡便化することが可能である。
【0021】
第6の発明は、第1から第5の発明のいずれかのゲーム情報であって、
前記第1の生成手段に対して、
前記所与の角度パラメータを前記第1の仮想カメラのピッチ角及び/又はヨー角の角度パラメータとする手段と、
前記第1の仮想カメラの、ピッチ角及び/又はヨー角の角度パラメータの値に応じて予め用意された複数種類の第1の雲素を、対応する前記第1の仮想カメラの角度パラメータの現在値に応じた所与の割合で合成処理する手段と、
を機能させるための情報を含むことを特徴としている。
【0022】
この第6の発明によれば、仮想カメラに向けて配置される板状体の第1の雲状オブジェクトの欠点を補うことができる。即ち、例えば、第1の雲状オブジェクトの右側面と左側面の、2つの第1の雲素を用意しておけば、第1の仮想カメラのヨー角に応じて、第1の雲状オブジェクトの右側面と左側面を矛盾無く表現することができる。また同様に、例えば、第1の雲状オブジェクトの上面と下面の、2つの第1の雲素を用意しておけば、第1の仮想カメラのピッチ角に応じて、第1の雲状オブジェクトの上面と下面を矛盾無く表現することができる。
【0023】
第7の発明は、第1から第6の発明のいずれかのゲーム情報であって、
前記第1の生成手段に対して、前記ピッチ角に応じて予め用意された第1の雲素がある場合には、その第1の雲素を前記第1の仮想カメラのロール角或いはヨー角に応じて回転させるとともに、前記ヨー角に応じて予め用意された第1の雲素がある場合には、その第1の雲素を前記第1の仮想カメラのロール角或いはピッチ角に応じて回転させて前記合成処理を行う、ように機能させるための情報を含むことを特徴としている。
【0024】
この第7の発明によれば、第1の仮想カメラに係る角度パラメータの内、一の角度パラメータに応じて用意された第1の雲素であったとしても、他の角度パラメータに応じて回転させて、合成処理される。例えば、ヨー角に応じて、第1の雲状オブジェクトの右側面と左側面の2つの第1の雲素が用意されていた場合、勿論、ヨー角に応じてその2つの第1の雲素が合成処理されるが、ロール角に応じて回転された上で、合成処理される。即ち、第1の発明の効果として上述した通り、第1の雲状オブジェクトは、単に、第1のオブジェクト空間に配置されるのみであるため、第1の仮想カメラがロールした場合にも矛盾のないテクスチャ情報を生成する必要がある。このため、ヨー角やピッチ角に応じて用意された第1の雲素に対して、ロール角に応じて回転させることによって、第1の仮想カメラがロールした場合にも、第1の生成手段は、矛盾のないテクスチャ情報を生成することができる。
【0025】
第8の発明は、第1から第7の発明のいずれかのゲーム情報であって、
前記第1の生成手段に対して、前記第1の仮想カメラのピッチ角が水平方向用と垂直方向用の少なくとも2種類の予め用意された第1の雲素を、前記第1の仮想カメラのピッチ角に応じた所与の割合で合成処理することにより、前記第1の仮想カメラのピッチ角に応じて予め用意された複数種類の第1の雲素を合成処理する、ように機能させるための情報を含むことを特徴としている。
【0026】
この第8の発明によれば、一の第1の雲状オブジェクトに対する第1の仮想カメラの視線方向が変化した場合、即ち、第1の仮想カメラのピッチ角が変化した場合であっても、その形状等に矛盾のない第1の雲状オブジェクトを表現することが可能となる。
【0027】
そしてこの場合、第9の発明のように、第8の発明のゲーム情報であって、
前記第1の生成手段に対して、前記第1の仮想カメラのロール角に応じて前記水平方向用および前記垂直方向用の第1の雲素を回転させて前記合成処理を行う、ように機能させるための情報を含むように構成してもよい。
【0028】
この第9の発明によれば、第1の仮想カメラがロールした場合においても、第1の雲状オブジェクト自体を回転させることなく、矛盾のない第1の雲状オブジェクトを表現することができる。
【0029】
さらにこの場合、第10の発明のように、第8または第9の発明のゲーム情報であって、
前記垂直方向用の第1の雲素には、前記第1の仮想カメラのピッチ角が仰角および俯角の場合に対応する、更に2種類の第1の雲素があり、
前記第1の生成手段に対して、前記垂直方向用の第1の雲素に含まれる前記2種類の第1の雲素を、前記第1の仮想カメラのピッチ角に応じて切り換えることにより、前記垂直方向用の第1の雲素とする、ように機能させるための情報を含むように構成してもよい。
【0030】
この第10の発明によれば、垂直方向用の第1の雲素には、ピッチ角が仰角の場合と俯角の場合の第1の雲素があり、ピッチ角によって切り換えられるため、一の第1の雲状オブジェクトの上面と下面とを、その形状等に矛盾なく、容易に表現することができる。
【0031】
第11の発明は、第8から第10の発明のいずれかのゲーム情報であって、
前記水平方向用の第1の雲素には、前記第1の仮想カメラのヨー角の角度範囲を等分した各角度範囲に対応する、更に複数種類の第1の雲素があり、
前記第1の生成手段に対して、前記水平方向用の第1の雲素に含まれる前記複数種類の第1の雲素を、前記第1の仮想カメラのヨー角に応じて切り換えることにより、前記水平方向用の第1の雲素とする、ように機能させるための情報を含むことを特徴としている。
【0032】
この第11の発明によれば、一の第1の雲状オブジェクトに対する第1の仮想カメラの視線方向が変化した場合、即ち、第1の仮想カメラのヨー角が変化した場合であっても、その形状等に矛盾のない第1の雲状オブジェクトを表現することが可能となる。
【0033】
第12の発明のゲーム情報は、プロセッサによる演算・制御により、仮想カメラ(例えば、図2に示す仮想カメラ100)から見たオブジェクト空間の画像を生成して、所与のゲームを実行することとなる装置に対して、
前記オブジェクト空間に配置される雲状オブジェクト(例えば、図2に示す小雲テクスチャ102)を複数種類の雲素(例えば、図3に示す雲パーツA(122)、雲パーツB(124))から生成するとともに、前記仮想カメラの位置または視線方向が変化する場合に、前記複数種類の雲素を所与の処理により切り換えることにより前記雲状オブジェクトを生成する手段(例えば、図31に示す小雲描画部632)、を機能させるための、前記プロセッサによる演算可能なゲーム情報である。
【0034】
この第12の発明によれば、例えば、雲状オブジェクトの一側面(例えば、正面)と他側面(例えば、裏面)を表す2つの雲素を用意し、仮想カメラの視線方向に応じて、その雲素を切り換えること等が可能である。即ち、仮想カメラの視線方向が変化した場合であっても雲状オブジェクトの正面と裏面を矛盾なく、かつ容易に表現することが可能である。
【0035】
第13の発明は、
プロセッサによる演算・制御により、第2の仮想カメラ(例えば、図14に示す仮想カメラ100)から見た第2のオブジェクト空間の画像を生成して、所与のゲームを実行することとなる第2の装置に対して、
雲モデル空間(例えば、図14に示す中雲座標系)に第2の雲素(例えば、図14に示す小雲ビルボード24−1〜32)を複数配置する第2の配置手段(例えば、図31に示す中雲生成部612)と、
前記雲モデル空間を透視変換することにより、前記第2のオブジェクト空間に前記第2の仮想カメラに向けて配置される板状体の第2の雲状オブジェクトに反映させるテクスチャ情報(例えば、実施の形態における中雲テクスチャ)を生成する第2の生成手段(例えば、図31に示す中雲描画部634)と、
を機能させるための、前記プロセッサによる演算可能なゲーム情報である。
【0036】
この第13の発明によれば、第2のオブジェクト空間に配置される第2の雲状オブジェクトは板状体ではあるが、様々な態様の第2の雲状オブジェクトを表現することができる。なぜならば、第2の雲状オブジェクトに反映される、第2の生成手段によって生成されるテクスチャ情報は、第2の雲素が複数配置された雲モデル空間を透視変換したものであるため、透視変換の仕方によって、種々のテクスチャ情報を生成することが可能だからである。また本発明により、第2のオブジェクト空間に係る処理と、テクスチャ情報を生成する処理とを区別して処理することが可能となり、第2のオブジェクト空間に係る処理負荷を軽減させることができる。なおここで、第2の装置は、コンピュータ装置であってもよいし、携帯用/家庭用/業務用のゲーム装置であってもよい。また第2の雲素を板状体により構成してもよい。
【0037】
第14の発明は、第13の発明のゲーム情報であって、
前記第2の生成手段に対して、前記第2の仮想カメラと、前記雲モデル空間を透視変換するための雲モデル用仮想カメラ(例えば、図14に示す雲視点220)とを連動させ、前記雲モデル用仮想カメラに基づいて前記雲モデル空間を透視変換する、ように機能させるための情報を含むことを特徴としている。
【0038】
この第14の発明によれば、雲モデル用仮想カメラと、第2の仮想カメラとが連動するため、第2のオブジェクト空間に配置される、板状体の第2の雲状オブジェクトであっても、形状等において矛盾なく表現することが可能である。
【0039】
第15の発明は、第13または第14の発明のゲーム情報であって、
前記第2の配置手段に対して、前記複数の第2の雲素の配置を、前記雲モデル空間の所与の範囲に偏った分布とする、ように機能させるための情報(例えば、実施の形態における式(4))を含むことを特徴としている。
【0040】
この第15の発明によれば、例えば、第2の雲素の色が「薄い白色」である場合、第2の雲素の配置位置の偏りによって、その偏った所与の範囲においては「濃い白色」として表現することができる。即ち、雲モデル空間における配置位置に偏りを持たせることによって、第2の雲状オブジェクトの色の濃淡に変化をつけることができる。
【0041】
第16の発明は、第13から第15の発明のいずれかのゲーム情報であって、前記第2の配置手段に対して、前記雲モデル空間に配置する前記各第2の雲素の大きさを変更する、ように機能させるための情報(例えば、実施の形態における式(5))を含むことを特徴とする。
【0042】
この第16の発明によれば、雲モデル空間における第2の雲素の配置位置が同じであっても、第2の雲素の大きさを異ならしめることができるため、生成するテクスチャ情報を異ならしめる、即ち、種々の形態の第2の雲状オブジェクトを容易に表現することができる。
【0043】
第17の発明は、第13から第16のいずれかのゲーム情報であって、
前記第2の装置に対して、前記第2のオブジェクト空間の光源と、前記第2の雲状オブジェクトとに基づいて、前記第2の生成手段により生成されたテクスチャ情報の色情報を決定する色情報決定手段(例えば、図31に示す色決定部638)、を機能させるための情報を含むことを特徴とする。
【0044】
この第17の発明によれば、第2のオブジェクト空間における、光源に係るシェーディング処理をテクスチャ情報に施すことにより、最終的に、第2の雲状オブジェクトの色情報を矛盾なく表現させることができる。即ち、第2のオブジェクト空間においては、光源と、第2の雲状オブジェクトとは存在するが、第2の雲状オブジェクトに反映されるテクスチャ情報は別途生成される。このため、第2のオブジェクト空間における光源と、第2の雲状オブジェクトの配置状況等に応じて、テクスチャ情報の色情報を決定することにより、最終的に、色において矛盾のない、リアリスティックな第2の雲状オブジェクトを表現することが可能である。
【0045】
第18の発明は、第17の発明のゲーム情報であって、
前記色情報決定手段に対して、前記第2の雲状オブジェクトにおける少なくとも2つの特定点(例えば、図16に示す特定点22−1〜9)の色情報を、前記第2のオブジェクト空間における光源に基づいて決定し、この特定点の色情報に基づいて前記テクスチャ情報の色情報を決定する、ように機能させるための情報を含むことを特徴とする。
【0046】
例えば、「雲」を真横から見た場合、通常、太陽光線の当たる上側は明るく、下側は暗い。しかし、「雲」が1つである場合ならまだしも、複数の「雲」が存在する場合、単に、上側を明るく、下側を暗くするといった、一様な表現手法では、リアルな雲を表現することができない。そこで、この第18の発明によれば、例えば、第2の雲状オブジェクトの複数の特定点における色情報をまず求め、この特定点の色情報に基づいて、テクスチャ情報(即ち、終局的には第2の雲状オブジェクト)の色情報を決定することとすれば、第2のオブジェクト空間における、第2の雲状オブジェクトの配置状況等に応じた色を表現することができる。
【0047】
またこの場合、第19の発明のように、第18の発明のゲーム情報であって、
前記色情報決定手段に対して、前記光源の光線方向の角度に応じて予め用意された複数の色情報を、当該特定点における前記光源の光線方向の角度に応じた所与の割合で合成処理することにより、前記各特定点の色情報を決定する、ように機能させるための情報(例えば、図31に示す関数データ930)を含むこととしてもよい。
【0048】
従来、光源に係る輝度計算は、輝度値を加算する処理が一般的であった。即ち、ある輝度値を加算することによって、明るい状態の色を表現することが可能ではあったが、最大輝度である「白色」のRGB値が、R=255、G=255、B=255であるため、段々と「白色」に近づかざるを得なかった。従って、もともと「白色」である「雲」に対する輝度計算は、困難なものであった。この第19の発明によれば、複数の色情報(例えば、オレンジ色と白色と灰色)を予め用意し、特定点における色情報が光源の光線方向に応じて決定されるため、例えば、様々な色に染められた「雲」(例えば、上側をオレンジ色にする等)を容易に表現することができる。
【0049】
第20の発明は、第1から第11のいずれかの発明のゲーム情報と、第13から第19の発明のいずれかのゲーム情報とを含むゲーム情報であって、
前記第1の装置と前記第2の装置は同一の装置であり、
当該装置に対して、
前記第1の仮想カメラを前記第2の仮想カメラとする手段と、
前記第1の生成手段により生成されたテクスチャ情報を前記第1の雲状オブジェクトに反映させる手段と、
前記第1の雲状オブジェクトを前記第2の雲素とする手段と、
を機能させるための情報を含むことを特徴とする。
【0050】
この第20の発明によれば、第1から第11の発明のいずれかの発明の効果と、第13から第19の発明のいずれかの発明の効果とを備えるゲーム情報を実現することができる。具体的には、例えば、第1の仮想カメラ(第2の仮想カメラ)の視線方向に対して矛盾のない、板状体の第1の雲状オブジェクト(第2の雲素)を生成することができ、かつ、様々な態様の第2の雲状オブジェクトを表現することができる。
【0051】
第21の発明のゲーム情報は、プロセッサによる演算・制御により、仮想カメラ(例えば、図14に示す仮想カメラ100)から見たオブジェクト空間の画像を生成して、所与のゲームを実行することとなる装置に対して、
所与のアニメーションが施された複数種類の雲素(例えば、図3に示す小雲テクスチャ102)を重ね合わせて、前記オブジェクト空間に配置される雲状オブジェクト(例えば、実施の形態における中雲ビルボード)を生成する手段(例えば、図31に示す中雲生成部612及び中雲描画部634)、を機能させるための、前記プロセッサによる演算可能なゲーム情報である。
【0052】
この第21の発明によれば、雲素には所与のアニメーションが施されているため、気流を表現することができる。ただし、雲素が複数重ね合わされた部分においては、所与のアニメーションも重ね合わされているため、当該部分においては気流を明確に表現できないが、雲素が重なっていない部分や、重なる数の少ない部分においては、気流が表現される。即ち、例えば、雲状オブジェクトの中央付近に偏りを持たせて雲素を重ねて表現した場合、中央付近の気流は視認できないが、周縁における気流を視認することができ、よりリアリスティックな雲を表現することができる。
【0053】
第22の発明のゲーム情報は、プロセッサによる演算・制御により、第3の仮想カメラ(例えば、図20に示す仮想カメラ100)から見た第3のオブジェクト空間の画像を生成して、所与のゲームを実行することとなる第3の装置に対して、
所与の配置位置繰り返しパターンを展開することにより前記第3のオブジェクト空間に複数配置する第3の雲素(例えば、実施の形態における中雲ビルボード)の配置位置を決定する配置位置決定手段(例えば、図31に示す中雲配置部614)と、
前記配置位置決定手段により決定された配置位置に、板状体の前記第3の雲素を配置する第3の配置手段(例えば、図31に示す中雲配置部614)と、
前記第3の雲素を、前記第3の仮想カメラに対する所与の方向に向ける対向配置手段(例えば、図31に示す中雲配置部614)と、
を機能させるための、前記プロセッサによる演算可能なゲーム情報である。
【0054】
ここで、第3の装置は、コンピュータ装置であってもよいし、携帯用/家庭用/業務用のゲーム装置であってもよい。また所与の配置位置繰り返しパターンとは、第3の雲素の配置位置が決定されたある単位領域における、配置位置のパターンのことであり、例えばこのパターンを縦2×横2×高さ2に配置(展開)することによって、単位領域の8倍(=2×2×2)の大きさの領域における第3の雲素の配置位置を決定することができる。
【0055】
換言すれば、第3のオブジェクト空間の、任意の領域における第3の雲素の配置位置が、このパターンの展開によって決定しうる。即ち、この第22の発明によれば、第3のオブジェクト空間における、第3の雲素の配置位置を容易に決定することができる。例えば、配置位置繰り返しパターンの大きさ(上記の単位領域の大きさ)を第3の仮想カメラの視界と略同一とし、第3の仮想カメラを右方向へパンさせた場合、視野の左側から見えなくなった第3の雲素が、視野の右側から表出することとなる。即ち、配置位置繰り返しパターンのみで、第3の雲素の、第3のオブジェクト空間全ての配置位置を決定することができる。また、第3の雲素は板状体の雲素であるため、第3のオブジェクト空間の画像生成に係る処理負荷を軽減することができる。
【0056】
第23の発明は、第22の発明のゲーム情報であって、
前記第3の装置に対して、前記第3のオブジェクト空間内の所与の高度に、雲素配置層を設定する手段(例えば、図31に示す中雲配置部614)、を機能させるための情報(例えば、図31に示す雲層データ926)と、
前記第3の配置手段に対して、前記雲素配置層内に前記第3の雲素を配置する、ように機能させるための情報(例えば、実施の形態における式(11))と、
を含むことを特徴とする。
【0057】
この第23の発明によれば、第3の雲素を配置する雲素配置層を第3のオブジェクト空間内に設定することができ、この雲素配置層以外に第3の雲素が配置されることがない。したがって、第3のオブジェクト空間において、第3の雲素を配置する高度を制御することができる。なお、さらに雲素配置層の厚さを設定可能なよう構成してもよい。その場合には、例えば、層を薄くすることによっていわし雲を表現したり、層を厚くすることによって積乱雲を表現したりすることができる。
【0058】
第24の発明は、第22または第23の発明のゲーム情報であって、
前記第3の装置に対して、前記第3の仮想カメラからの距離(例えば、実施の形態における距離d)に基づいて、第3の雲素配置領域(例えば、図20に示す雲設定領域R)を設定する第3の雲素領域設定手段(例えば、図31に示す雲設定領域決定部620)、を機能させるための情報と、
前記第3の配置手段に対して、前記第3の雲素配置領域内に前記第3の雲素を配置する、ように機能させるための情報と、
を含むことを特徴とする。
【0059】
この第24の発明によれば、例えば、仮想カメラの視野内にのみ第3の雲素配置領域を設定することにより、視野外の第3の雲素に対する処理を削減することが可能である。
【0060】
第25の発明は、第22から第24の発明のいずれかのゲーム情報であって、前記第3の装置に対して、前記第3のオブジェクト空間における前記第3の雲素の配置位置に応じて、前記各第3の雲素の透明度を設定する第3の雲素透明度設定手段(例えば、図31に示す不透明度設定部622)、を機能させるための情報を含むことを特徴とする。
【0061】
この第25の発明によれば、例えば、雲の濃淡を、その雲の配置位置に応じて変更することができる。本発明をより具体化する手法としては例えば第26の発明や第27の発明がある。
【0062】
例えば、第26の発明のように、第25の発明のゲーム情報であって、
前記第3の雲素透明度設定手段に対して、前記第3のオブジェクト空間における雲の存在可否を表す雲分布図(例えば、図30に示す雲分布マップ924)に基づいて、前記各第3の雲素の透明度を設定する、ように機能させるための情報を含むこととしてもよい。
【0063】
この第26の発明によれば、雲分布図に従って、第3の雲素の透明度が設定されるため、第3のオブジェクト空間全体に渡る雲の表示/非表示を管理することができる。即ち、第3の雲素の配置位置は、第22の発明によって決定されるが、実際に表現されるか否か(より正確には、第3の雲素の色が描画されるか否か)は雲分布図に従って決定される。
【0064】
また、第27の発明のように、第25または第26の発明のゲーム情報であって、
前記第3の雲素透明度設定手段に対して、前記第3の仮想カメラから前記各第3の雲素までの距離に基づいて、前記各第3の雲素の透明度を設定する、ように機能させるための情報(例えば、実施の形態における式(12))を含むこととしてもよい。
【0065】
この第27の発明によれば、例えば、第3の仮想カメラに近接配置される第3の雲素の透明度を上げるよう設定することにより、第3の仮想カメラからの視認性が向上し、ゲームにおける操作性を向上させることができる。
【0066】
第28の発明は、第24の発明のゲーム情報であって、
前記第3の装置に対して、
前記第3の仮想カメラからの距離が前記第3の雲素配置領域より遠方に、第4の雲素配置領域(例えば、実施の形態における遠景雲設定領域Rf)を設定する第4の雲素領域設定手段(例えば、図31に示す雲設定領域決定部620)と、
前記第4の雲素配置領域に、板状体の第4の雲素を略水平状に複数配置する第4の配置手段(例えば、図31に示す中雲配置部614)と、
を機能させるための情報を含むことを特徴とする。
【0067】
第24の発明により第3の雲素配置領域が設定されるが、第3の仮想カメラの視野内に、第3の雲素配置領域の周縁が含まれる場合には、矛盾が生じ得る。即ち、第3の仮想カメラの視野内において、第3の雲素配置領域内には第3の雲素が配置されているが、その範囲を超えた所には雲素が配置されていないため、第3の雲素配置領域の周縁がユーザーに分かってしまい、ゲームに対する没入感が損なわれ得る。そのため、第28の発明のように、第3の雲素配置領域の遠方に第4の雲素配置領域を設定することにより、上記問題を解決できる。ここで、第3の仮想カメラにおいて、第4の雲素配置領域は第3の雲素配置領域よりも遠方であるため、雲素を簡略化した表現としてもユーザーには認知され難い。そのため、第4の雲素配置領域においては、板状体の第4の雲素を、略水平状に配置するのみで、処理を簡略化させることが可能である。
【0068】
またこの場合、第29の発明のように、第28の発明のゲーム情報であって、
前記第3の装置に対して、前記配置位置決定手段が用いる前記所与の配置位置繰り返しパターンを展開することにより、前記第4の雲素の配置位置を決定する手段、を機能させるための情報と、
前記第4の配置手段に対して、前記決定された第4の雲素の配置位置に、前記第4の雲素を略水平状に配置する、ように機能させるための情報と、
を含むこととしてもよい。
【0069】
この第29の発明によれば、第3の雲素を配置する際に基準とした、配置位置繰り返しパターンを、第4の雲素の配置位置へも適用することができる。したがって、第22の発明の効果を、第4の雲素に対しても得ることができる。
【0070】
さらに第30の発明のように、
第28または第29の発明のゲーム情報であって、
前記第3の装置に対して、前記第4の雲素の配置位置に応じて、前記各第4の雲素の透明度を設定する第4の雲素透明度設定手段、を機能させるための情報を含むこととしてもよい。
【0071】
この第30の発明によれば、例えば、雲の濃淡を、配置位置に応じて変更することができる。本発明をより具体化する手法としては例えば第31の発明や第32の発明がある。
【0072】
例えば、第31の発明のように、第30の発明のゲーム情報であって、
前記第4の雲素透明度設定手段に対して、前記第3のオブジェクト空間における雲の存在可否を表す雲分布図に基づいて、前記各第4の雲素の透明度を設定する、ように機能させるための情報を含むこととしてもよい。
【0073】
この第31の発明によれば、雲分布図に従って、第4の雲素の透明度が設定されるため、第3のオブジェクト空間全体に渡る雲の表示/非表示を管理することができる。即ち、第4の雲素の配置位置は、第30の発明によって決定されるが、実際に表現されるか否か(より正確には、第4の雲素の色が描画されるか否か)は雲分布図に従って決定される。なお、この雲分布図を、第3の雲素と共有してもよいことは勿論である。
【0074】
また、第32の発明のように、第30または第31の発明のゲーム情報であって、
前記第4の雲素透明度設定手段に対して、前記第3の仮想カメラから前記各第4の雲素までの距離に基づいて、前記各第4の雲素の透明度を設定する、ように機能させるための情報を含むこととしてもよい。
【0075】
この第32の発明によれば、例えば、第3の仮想カメラからより遠方に配置される第4の雲素の透明度を、徐々に上げるよう設定することにより、第3の仮想カメラからの遠方における視認性を向上させ、また、第4の雲素が遙か遠くまで続いているかのように表現することができる。
【0076】
第33の発明は、第13から第20の発明のいずれかのゲーム情報と、第22から第32の発明のいずれかのゲーム情報とを含むゲーム情報であって、
前記第2の装置と前記第3の装置は同一の装置であり、
当該装置に対して、
前記第2の仮想カメラを前記第3の仮想カメラとする手段と、
前記第2のオブジェクト空間を前記第3のオブジェクト空間とする手段と、
前記第2の生成手段により生成されたテクスチャ情報を前記第2の雲状オブジェクトに反映させる手段と、
前記第2の雲状オブジェクトを前記第3の雲素とする手段と、
を機能させるための情報を含むことを特徴とする。
【0077】
この第33の発明によれば、第13から第20の発明のいずれかの発明の効果と、第22から第32の発明のいずれかの発明の効果とを備えるゲーム情報を実現することができる。具体的には、例えば、第2の雲素によって、板状体ではあるが様々な態様を有する第2の雲状オブジェクト(第3の雲素)を表現することができ、かつ、第2の雲状オブジェクト(第3の雲素)の第3のオブジェクト空間における配置位置計算を簡略化することができる。
【0078】
第34の発明は、第33の発明のゲーム情報であって、
前記第2の生成手段に対して、複数種類のテクスチャ情報を生成する、ように機能させるための情報と、
前記装置に対して、前記第2の生成手段により生成される複数種類のテクスチャ情報を反映させることにより、テクスチャ情報の異なる複数種類の第2の雲状オブジェクトを生成する手段、を機能させるための情報と、
前記第3の配置手段に対して、前記複数種類の第2の雲状オブジェクトを配置する、ように機能させるため情報と、
を含むことを特徴としている。
【0079】
この第34の発明によれば、複数種類の第2の雲状オブジェクトを生成する、即ち、複数種類の第3の雲素とすることができるため、第3のオブジェクト空間において表現する雲状物の表現を多様化することができる。
【0080】
第35の発明のゲーム情報は、プロセッサによる演算・制御により、仮想カメラ(例えば、図20に示す仮想カメラ100)から見たオブジェクト空間の画像を生成して、所与のゲームを実行することとなる装置に対して、
前記仮想カメラの位置または視線方向が変化する場合に、視界から外れた領域に存在していた雲状オブジェクト(例えば、実施の形態における中雲ビルボード)を新たに視界となる領域に表現することにより、雲状オブジェクトが存する空間が続いていることを擬似的に表現する手段(例えば、図31に示す雲海生成部618及び雲海描画部640)、を機能させるための、前記プロセッサによる演算可能なゲーム情報である。
【0081】
この第35の発明によれば、仮想カメラの位置の変化などによって、視界から外れた雲状オブジェクトを新たに視界となる領域に表現することによって、オブジェクト空間において、雲状オブジェクトが連続的に配置されているかのような表現をすることができ、雲状オブジェクトの画像生成に係る処理を軽減させることができる。
【0082】
第36の発明のゲーム情報は、プロセッサによる演算・制御により、仮想カメラ(例えば、図20に示す仮想カメラ100)から見たオブジェクト空間の画像を生成して、所与のゲームを実行することとなる装置に対して、
前記仮想カメラの位置の変化に応じて、前記仮想カメラの視界の略中央付近から仮想カメラに接近する雲状オブジェクト(例えば、実施の形態における中雲ビルボード)に対する透明度を上げて、視界の遠方から視界の略中央付近に移動する雲状オブジェクトに対する透明度を下げる手段(例えば、図31に示す不透明度設定部622)、を機能させるための、前記プロセッサによる演算可能なゲーム情報である。
【0083】
この第36の発明によれば、仮想カメラの視界の略中央付近における雲状オブジェクトの透明度が高く、仮想カメラの近方および遠方に位置する透明度が低いため、視認性が高く、操作性のよいオブジェクト空間の画像(ゲーム画像)とすることができる。
【0084】
また、第37の発明のように、第1から第36の発明のいずれかのゲーム情報を記憶する情報記憶媒体を実現することとしてもよい。
【0085】
第38の発明は、仮想カメラ(例えば、図2に示す仮想カメラ100)から見たオブジェクト空間の画像を生成して、所与のゲームを実行するゲーム装置であって、
前記仮想カメラの所与の角度パラメータの値(例えば、図2に示すピッチ角X)に応じて予め用意された複数種類の雲素(例えば、図3に示す雲パーツA(122)、雲パーツB(124))を、前記所与の角度パラメータの現在値に応じた所与の割合で合成処理することにより、前記オブジェクト空間に前記仮想カメラに向けて配置される板状体の雲状オブジェクト(例えば、実施の形態における小雲ビルボード)に反映させるテクスチャ情報(例えば、図4に示す小雲テクスチャ102)を生成する生成手段(例えば、図31に示す小雲描画部632)、を備えるゲーム装置である。
【0086】
この第38の発明によれば、例えば、雲状オブジェクトの一側面(例えば、正面)と他側面(例えば、裏面)を表す2つの雲素を用意し、仮想カメラの視線方向に応じて、その雲素を切り換えること等が可能である。即ち、雲状オブジェクトは仮想カメラに向けて配置されるため、例えば、雲状オブジェクトの正面と裏面を矛盾なく、かつ容易に表現することが可能である。
【0087】
また更に、仮想カメラの「角度パラメータの現在値に応じ」て、雲状オブジェクトに反映されるテクスチャ情報が生成されるため、オブジェクト空間に雲状オブジェクトを配置する際、雲状オブジェクトの上下左右方向を考慮する必要がない。即ち、例えば、仮想カメラのロール角が変化する場合には、雲状オブジェクトを、当該ロール角に応じて回転させる必要が生じるが、そのロール角に応じてテクスチャ情報が生成されるため、雲状オブジェクトは、単に、オブジェクト空間に配置するだけ(より正確には、オブジェクト空間には、雲状オブジェクトを配置する位置を決定するだけ)で済む。
【0088】
第39の発明は、仮想カメラ(例えば、図14に示す仮想カメラ100)から見たオブジェクト空間の画像を生成して、所与のゲームを実行するゲーム装置であって、
雲モデル空間(例えば、図14に示す中雲座標系)に雲素(例えば、図14に示す小雲ビルボード24−1〜32)を複数配置する配置手段(例えば、図31に示す中雲生成部612)と、
前記雲モデル空間を透視変換することにより、前記オブジェクト空間に前記仮想カメラに向けて配置される板状体の雲状オブジェクト(例えば、実施の形態における中雲ビルボード)に反映させるテクスチャ情報(例えば、実施の形態における中雲テクスチャ)を生成する生成手段(例えば、図31に示す中雲描画部634)と、
を備えるゲーム装置である。
【0089】
この第39の発明によれば、オブジェクト空間に配置される雲状オブジェクトは板状体ではあるが、様々な態様の雲状オブジェクトを表現することができる。なぜならば、雲状オブジェクトに反映される、生成手段によって生成されるテクスチャ情報は、雲素が複数配置された雲モデル空間を透視変換したものであるため、透視変換の仕方によって、種々のテクスチャ情報を生成することが可能だからである。また本発明により、オブジェクト空間に係る処理と、テクスチャ情報を生成する処理とを区別して処理することが可能となり、オブジェクト空間に係る処理負荷を軽減させることができる。なお、第2の雲素を板状体により構成してもよい。
【0090】
第40の発明は、仮想カメラ(例えば、図14に示す仮想カメラ100)から見たオブジェクト空間の画像を生成して、所与のゲームを実行するゲーム装置であって、
前記仮想カメラの所与の角度パラメータの値(例えば、図2に示すピッチ角X)に応じて予め用意された複数種類の雲素(例えば、図3に示す雲パーツA(122)、雲パーツB(124))を、前記所与の角度パラメータの現在値に応じた所与の割合で合成処理することによりテクスチャ情報(例えば、図4に示す小雲テクスチャ102)を生成する第1の生成手段(例えば、図31に示す小雲描画部632)と、
前記第1の生成手段により生成されたテクスチャ情報を、板状体の第1の雲状オブジェクト(例えば、実施の形態における小雲ビルボード)に反映させる手段(例えば、中雲描画部634)と、
雲モデル空間(例えば、実施の形態における中雲座標系)に前記第1の雲状オブジェクトを複数配置する配置手段(例えば、図31に示す中雲生成部612)と、
前記雲モデル空間を透視変換することにより、前記オブジェクト空間に前記仮想カメラに向けて配置される板状体の第2の雲状オブジェクト(例えば、実施の形態における中雲ビルボード)に反映させるテクスチャ情報(例えば、実施の形態における中雲テクスチャ)を生成する第2の生成手段(例えば、図31に示す中雲描画部634)と、
を備えるゲーム装置である。
【0091】
この第40の発明によれば、例えば、仮想カメラの視線方向に対して矛盾のない、板状体の第1の雲状オブジェクトを生成することができ、かつ、様々な態様の第2の雲状オブジェクトを表現することができる。
【0092】
第41の発明は、仮想カメラ(例えば、図20に示す仮想カメラ100)から見たオブジェクト空間の画像を生成して、所与のゲームを実行するゲーム装置であって、
所与の配置位置繰り返しパターンを展開することにより前記オブジェクト空間に複数配置する雲素(例えば、実施の形態における中雲ビルボード)の配置位置を決定する配置位置決定手段(例えば、図31に示す中雲配置部614)と、
前記配置位置決定手段により決定された配置位置に、板状体の前記雲素を配置する配置手段(例えば、図31に示す中雲配置部614)と、
前記雲素を前記仮想カメラに対する所与の方向に向ける対向配置手段(例えば、図31に示す中雲配置部614)と、
を備えるゲーム装置である。
【0093】
ここで、所与の配置位置繰り返しパターンとは、雲素の配置位置が決定されたある単位領域における、配置位置のパターンのことであり、例えばこのパターンを縦2×横2×高さ2に配置(展開)することによって、単位領域の8倍(=2×2×2)の大きさの領域における雲素の配置位置を決定することができる。
【0094】
換言すれば、オブジェクト空間の、任意の領域における雲素の配置位置が、このパターンの展開によって決定しうる。即ち、この第41の発明によれば、オブジェクト空間における、雲素の配置位置を容易に決定することができる。例えば、配置位置繰り返しパターンの大きさ(上記の単位領域の大きさ)を仮想カメラの視界と略同一とし、仮想カメラを右方向へパンさせた場合、視野の左側から見えなくなった雲素が、視野の右側から表出することとなる。即ち、配置位置繰り返しパターンのみで、雲素の、オブジェクト空間全ての配置位置を決定することができる。また、雲素は板状体の雲素であるため、オブジェクト空間の画像生成に係る処理負荷を軽減することができる。
【0095】
第42の発明は、仮想カメラ(例えば、図20に示す仮想カメラ100)から見たオブジェクト空間の画像を生成して、所与のゲームを実行するゲーム装置であって、
雲モデル空間(例えば、実施の形態における中雲座標系)に雲素(例えば、実施の形態における小雲ビルボード)を複数配置する雲素配置手段(例えば、図31に示す中雲生成部612)と、
前記雲モデル空間を透視変換することにより、テクスチャ情報を生成する生成手段(例えば、図31に示す中雲描画部634)と、
前記生成手段により生成されるテクスチャ情報を板状体の雲状オブジェクト(例えば、実施の形態における中雲ビルボード)に反映させる手段(例えば、図31に示す雲海描画部640)と、
所与の配置位置繰り返しパターンを展開することにより前記オブジェクト空間に複数配置する前記雲状オブジェクトの配置位置を決定する配置位置決定手段(例えば、図31に示す中雲配置部614)と、
前記配置位置決定手段により決定された配置位置に、前記雲状オブジェクトを配置する雲状オブジェクト配置手段(例えば、図31に示す中雲配置部614)と、
前記雲状オブジェクトを前記仮想カメラに対する所与の方向に向ける対向配置手段(例えば、図31に示す中雲配置部614)と、
を備えるゲーム装置である。
【0096】
この第42の発明によれば、例えば、雲素によって、板状体ではあるが様々な態様を有する雲状オブジェクトを表現することができ、かつ、雲状オブジェクトのオブジェクト空間における配置位置計算を簡略化することができる。
【0097】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を参照して説明する。なお、以下、飛行機ゲームを例にとって説明するが、本発明の適用は、これに限るものではない。
【0098】
図1は、本発明を家庭用ゲーム装置に適用した場合の一例を示す図である。図1において、プレーヤは、ディスプレイ1200に写し出されたゲーム画像を見ながら、ゲームコントローラ1202、1204を操作して、飛行機を操縦し、飛行機ゲームを楽しむ。この場合、ゲームプログラム等のゲームを行なうために必要な情報は、本体装置に着脱自在な情報記憶媒体であるCD−ROM1206、ICカード1208、メモリカード1212等に格納されている。
【0099】
このような飛行機ゲームにおいては、プレーヤの操作に応じて、飛行機の位置、向きが様々に変化するため、ゲーム画像を生成する際の仮想カメラの位置、角度等が様々に変化する。本発明は、このように、仮想カメラの位置、角度の変化に対してゲーム画像に含まれる雲を矛盾なく表現するものである。以下、本発明に係る、1.原理、2.機能、3.動作について詳細に説明する。
【0100】
1.原理
まず、本発明の原理について説明する。本発明では、オブジェクト空間に設定される雲(雲海を)生成する際に、まず、一片の小さい雲である小雲を生成し、その小雲の集合である中雲を生成し、その中雲の集合として雲海を生成、表現する。以下、小雲、中雲、雲海の生成原理について説明する。
【0101】
1−(1)小雲生成原理
以下、図2〜図10を参照して小雲(小雲を表現するテクスチャ(以下、小雲テクスチャ102という。))の生成に係る原理について説明する。尚、生成される小雲テクスチャ102は、透明度(不透明度α)のみを有するテクスチャ(以下、αテクスチャという。)であるが、後述する処理との関連を分かり易くするため、便宜上1枚のポリゴン(以下、仮想ペラポリゴンという。)として生成されるかのように図示・説明する。
【0102】
図2(a)は、オブジェクト空間(ワールド座標系に基づく)内において、仮想カメラ100と、この生成される小雲テクスチャ102と、を表す図である。同図に示すように、小雲テクスチャ102は、常に仮想カメラ100の視線方向に垂直に対向するように設定される。
【0103】
仮想カメラ100に関するパラメータの種別としては、仮想カメラ位置と、仮想カメラ角度とがある。仮想カメラ位置は、ワールド座標系における仮想カメラ100の位置(Xw,Yw,Zw)を表すパラメータである。仮想カメラ角度は、同図(b)に示すように、仮想カメラ100のピッチ角(鉛直方向の首振り角であり仰角および俯角)を表す角度X(以下、ピッチ角X)、ヨー角(水平方向の首振り角)を表す角度Y(以下、ヨー角Y)、ロール角(視線方向を中心とした回転角(ねじれ))を表す角度Z(以下、ロール角Z)、により表されるパラメータである。
【0104】
ただし、ピッチ角Xの取り得る値の範囲は−90°≦X≦90°であり、仰角を正、俯角を負とする。
【0105】
また、上記パラメータ以外に、必要に応じて、視野範囲(ズーム率)を表す画角などの各種パラメータが用いられる。
【0106】
小雲テクスチャ102は、図3に示す概念図のように、▲1▼気流テクスチャ104の不透明度(以下、α値という。)を雲パーツA(122)に設定、▲2▼気流テクスチャ104のα値を雲パーツB(124)に設定、▲3▼雲パーツA(122)と雲パーツB(124)のα値を合成、することにより生成される。これらの雲パーツA(122)、B(124)、及び気流テクスチャ104は、α値のみを持つαテクスチャであり、上述したように小雲テクスチャ102もまたαテクスチャである。尚、α値は、不透明度を表すパラメータであり"0"以上"1"以下の数であり、"0"であれば完全な透明を、"1.0"であれば不透明な状態を表す。
【0107】
また、雲パーツA(122)は、仮想カメラ100のピッチ角Xが0°、即ち、仮想カメラ100の視線方向が水平方向の場合を想定したαテクスチャであり、雲パーツB(124)は、仮想カメラ100のピッチ角Xが±90°、即ち、仮想カメラ100の視線方向が鉛直方向の場合を想定したαテクスチャである。
【0108】
気流テクスチャ104とは、アニメーションによりα値の時間的変化を表したテクスチャであって、所定方向への気流を表現しているものである。但し、気流テクスチャ104を瞬間的にとらえた場合には、静止したα値の分布を表したものと考えられる。
【0109】
図4は小雲テクスチャ102の一例を示す図、図5は雲パーツA(122)(同図(a))及び雲パーツA用マスク112(同図(b))の一例を示す図、図6は雲パーツB(124)(同図(a))及び雲パーツB用マスク114(同図(b))の一例を示す図、図7は気流テクスチャ104の一例を示す図である。
【0110】
ここで、小雲テクスチャ102、雲パーツA(122),雲パーツB(124)、雲パーツA用マスク112、雲パーツB用マスク114および気流テクスチャ104は、それぞれ36(=6×6)テクセルで構成されていることとし、各テクセルの座標を[n,m]と表現する。ただし、n,m=0,1,2,3,4,5である。また、気流テクスチャ104のテクセル[n,m]のα値をα[n,m]、雲パーツA(122)のテクセル[n,m]のα値をαA[n,m]、雲パーツB(124)のテクセル[n,m]のα値をαB[n,m]、小雲テクスチャ102のテクセル[n,m]のα値をCα[n,m]と表現する。
【0111】
雲パーツA用マスク112とは、雲パーツA(122)の形状を特定するためのビットパターンであり、雲パーツB用マスク114とは、雲パーツB(124)の形状を特定するためのビットパターンであって、共に、各テクセル[n,m]に"0"または"1"の値が予め設定されている。
【0112】
まず、雲パーツA(122)の各テクセル[n,m]に雲パーツA用マスク112の値を設定し、雲パーツB(124)の各テクセル[n,m]に雲パーツB用マスク114の値を設定する。即ち、
αA[n,m]=MA[n,m]
αB[n,m]=MB[n,m] …(1)
とする。ここで、MA[n,m]は、雲パーツA用マスク112の各テクセルのビット値を表し、MB[n,m]は、雲パーツB用マスク114の各テクセルのビット値を表す。
【0113】
この式(1)により、雲パーツA(122)と雲パーツB(124)には、値"0"または"1"による雲の形状が設定されることとなる。
【0114】
次に、仮想カメラ100のピッチ角Xに応じて、雲パーツA(122)の各テクセル[n,m]に対応する気流テクスチャ104のテクセル[n,m]のα値を設定するとともに、雲パーツB(124)の各テクセル[n,m]に対応する気流テクスチャ104のテクセル[n,m]のα値を設定する。即ち、
αA[n,m]←α[n,m]×cosX ×αA[n,m]
αB[n,m]←α[n,m]×sin|X|×αB[n,m] …(2)
とする。ここで、←は、代入を意味する演算子であり、右辺の演算結果を左辺の変数に代入することを意味する。
【0115】
即ち、例えば、雲パーツA(122)に値"1"が格納されているテクセル[n,m]には、気流テクスチャ104のα値が反映されることとなり、逆に、値"0"が格納されているテクセル[n,m]には、気流テクスチャ104のα値が反映されないこととなる。従い、式(1)の雲パーツA用マスク112及び雲パーツB用マスク114により、雲パーツA(122)及び雲パーツB(124)の形状が形作られるとともに、気流テクスチャ104のアニメーションによって、雲パーツA(122)及び雲パーツB(124)内の雲の粒子が時間経過に従って流れていく様を表現することができる。
【0116】
さらに、式(2)では、仮想カメラ100のピッチ角Xによって、雲パーツA(122),雲パーツB(124)に反映される気流テクスチャ104のα値が変化することとなる。
【0117】
例えば、仮想カメラ100の視線方向が水平面と平行になった場合、即ち、ピッチ角X=0°となった場合には、
αA[n,m]←α[n,m]×αA[n,m]
αB[n,m]←0 ×αB[n,m]
となり、雲パーツA(122)のαA[n,m]には、気流テクスチャ104のα[n,m]が設定されることとなる。また、雲パーツB(124)のαB[n,m]には、気流テクスチャ104のα[n,m]が反映されないこととなる。
【0118】
同様に、ピッチ角X=45°となった場合には、
αA[n,m]←α[n,m]×(1/√2)×αA[n,m]
αB[n,m]←α[n,m]×(1/√2)×αB[n,m]
となる。
【0119】
また、仮想カメラ100の視線方向が真上あるいは真下となった場合、即ち、ピッチ角X=90°あるいは−90°となった場合には、
αA[n,m]←0 ×αA[n,m]
αB[n,m]←α[n,m]×αB[n,m]
となり、雲パーツB(124)のαB[n,m]には、気流テクスチャ104のα[n,m]が設定されることとなるが、雲パーツA(122)のαA[n,m]には、気流テクスチャ104のα[n,m]が反映されないこととなる。
【0120】
またここで、雲パーツA(122)と雲パーツB(124)とで、反映させる気流テクスチャ104の気流の方向を変更することとしてもよい。例えば、式(2)を以下のように変形する。
αA[n,m]←α[n,m]×cosX×αA[n,m]
αB[n,m]←α[(5−n),(5−m)]×sin|X|×αB[n,m]
このような式とすることにより、同一の気流テクスチャ104を用いているが、簡単に、雲パーツA(122)と雲パーツB(124)とで、気流の方向を変えることが可能である。また更に式(2)を変形することにより、気流テクスチャ104の一部分を拡大して、雲パーツA(122)と雲パーツB(124)とに反映させることとしても良い。
【0121】
次に、雲パーツA(122)の各テクセル[n,m]のα値と、雲パーツB(124)の各テクセル[n,m]のα値とを合算することにより、小雲テクスチャ102の各テクセル[n,m]のα値を決定する。即ち、
Cα[n,m]=αA[n,m]+αB[n,m] ・・・(3)
として決定される。但し、式(3)においては、α値が"1.0"を超える場合が起こり得、この場合には、そのテクセルのα値は"1.0"とする。
【0122】
図8(c)は気流テクスチャ104の一例を示す図であり、同図(a)、(b)はこの気流テクスチャ104の不透明度(α値)が反映された、雲パーツA(122)(同図(a))、雲パーツB(124)(同図(b))の一例を示す図である。また、図9は、上記雲パーツA(122)、雲パーツB(124)の合成により生成された小雲テクスチャ102の一例を示す図である。同図(a)は、ピッチ角X=90°の場合を、同図(b)は、ピッチ角X=45°の場合を、同図(c)は、ピッチX=0°の場合を、それぞれ表す図である。尚、図8及び図9においては、α値を視覚的に把握しやすくするために、α値が"1"の部分を"白色"に、またα値が"0"に近づくにつれ"黒色"に近づくように表現されている。即ち、図8及び図9は、α値を色の濃淡として表した図である。
【0123】
以上のように、本原理においては、雲パーツA(122)と雲パーツB(124)とを仮想カメラ100のピッチ角Xに応じて合成することとしたため、単純な手法ながらも立体感のある雲を表現することができる。
【0124】
即ち、従来においては、雲のテクスチャをマッピングさせた1枚のポリゴン(以下、ペラポリゴンという。)を、常に、仮想カメラ100に対する上下左右位置を固定し、かつ、仮想カメラ100の視線方向に垂直に配置する方法が採られていた。しかしこの方法によると、仮想カメラ100の位置や視線方向等が変化しても雲は全く変化しないため、違和感のある表現であった。またさらに、仮想カメラ100の視線方向の変化に対して、雲のペラポリゴンが意図しない変化をする事象が発生する。即ち、例えば視線方向の仰角あるいは俯角が大きくなると、±90°の角度を境にして、雲が反転して表現されてしまう。
【0125】
これは、仮想カメラ100のピッチ角(仰角あるいは俯角)として取り得る角度範囲が−90°〜90°であるため、±90゜を超えたピッチ角θ2は、図10に示すように、θ2'(<90゜)と設定されることに起因する。
【0126】
本原理はこの意図しない小雲テクスチャ102の反転表現をも解決するものである。即ち、2枚の雲パーツA(122),雲パーツB(124)を用意し、仮想カメラ100のピッチ角に応じて合成することにより、ある角度で雲が反転するという事象は発生し得ない。
【0127】
また、ピッチ角Xの変化に応じて、徐々に2枚の雲パーツA(122),雲パーツB(124)の合成比率を変化させることにより(即ち、2枚の雲パーツA(122),雲パーツB(124)の不透明度αを決定することに該当する)、仮想カメラ100のピッチ角の変化に応じて、なめらかに雲の形状を変化させて、表現することができる。
【0128】
更に、各雲パーツA(122),雲パーツB(124)それぞれに気流テクスチャ104が合成されるため、2枚の雲パーツA(122),雲パーツB(124)の雲縁を曖昧にすることができ、より自然な雲を表現することができる。
【0129】
次に、小雲生成原理のみで雲を実現する場合について説明する。
上記説明においては、小雲テクスチャ102をαテクスチャとして生成する方法について説明したが、以下の処理を追加することにより、雲としての表現を実現することができる。
【0130】
第1の方法は、生成された小雲テクスチャ102を構成する各テクセルに、そのテクセルのα値に応じたRGB値を決定し、雲を表現する方法である。
【0131】
具体的には、例えば、小雲テクスチャ102の色をモノクロで表現する場合、"白色"のRGB値は(255,255,255)であり、"黒色"のRGB値は(0,0,0)である。従い、生成された小雲テクスチャ102において、α値が"1"であるテクセルに対しては、"白色"となるようにRGB値(255,255,255)を設定し、α値が"0"に近づくにつれて、段々と白色が薄くなっていくように、そのテクセルのRGB値を設定する(例えば、RGB値=255×α値)。
【0132】
このことにより、図9に示すような、濃淡がある雲の表現を容易に実現することができる。
【0133】
第2の方法は、雲パーツA(122),雲パーツB(124)を構成する各テクセルに予めRGB値を設定しておく方法である。
【0134】
具体的には、雲パーツA(122),雲パーツB(124)の各テクセルにRGB値を予め設定しておき、各テクセルのα値を気流テクスチャ104により決定する。そして、雲パーツA(122),雲パーツB(124)をαブレンディングすることにより小雲テクスチャ102を生成する。
【0135】
このことにより、例えば、雲パーツA(122)に予め設定する色を"黒色"のみ、雲パーツB(124)に予め設定する色を"白色"のみとすると、水平方向から小雲テクスチャ102を見た場合(ピッチ角X=0゜の場合)には、小雲テクスチャ102の色は"黒色"となる。そして、徐々にピッチ角Xが変化することにより、次第に"灰色"("黒色"に"白色"が混じった色)に見え、更にピッチ角Xを大きくすると、"白色"の混じる割合が大きくなり、ついには上方あるいは下方から見ると(ピッチ角X=90゜の場合) "白色"に見える雲の表現を実現することができる。
【0136】
尚、各雲パーツA(122),雲パーツB(124)に予め設定する雲の色(RGB値)を任意に変更することにより、仮想カメラ100の視線のピッチ角Xによって、様々に色が異なる雲の表現を実現することができる。
【0137】
また、例えば、雲パーツB(124)として、仮想カメラ100のピッチ角Xが俯角の場合に用いる雲パーツB−1と、仮想カメラ100のピッチ角Xが仰角の場合に用いる雲パーツB−2との2種類の雲パーツBを設定しておき、仮想カメラのピッチ角Xに応じて、雲パーツB−1と雲パーツB−2とを切り換えることとしても良い。例えば、1種類の雲パーツB(124)を用いて小雲テクスチャ102を生成する場合には、小雲の上面を見た場合と下面を見た場合とで同じ小雲テクスチャが生成されるが、雲パーツB−1と雲パーツB−2とを切り換えることにより、小雲の上面を見た場合の小雲テクスチャ102と小雲の下面を見た場合の小雲テクスチャ102とで、小雲の形状が異なるようにすることができ、より矛盾のない雲の形状を実現できる。
【0138】
同様に、雲パーツA(122)として、仮想カメラ100のヨー角Yに対応する複数種類の雲パーツA(122)を設定しておき、仮想カメラ100のヨー角Yに応じて雲パーツAを切り換えることとしても良い。
【0139】
なお、上記小雲生成原理において生成した各雲パーツA(122),雲パーツB(124)には、気流テクスチャのα値が反映されており、この2種類の雲パーツA(122),雲パーツB(124)を合成して小雲テクスチャ102を生成している。このため、小雲テクスチャ102は、全体に気流がかかった雲として表現されることとなり、雲の粒子が雲全体に渡って動いているように表現される。リアリスティックな雲を表現する場合には、このような現象は必ずしも良いとはいえない。
【0140】
しかしながら、後述する中雲生成原理に基づいて、この小雲テクスチャ102を複数使用して中雲を生成することにより、ある範囲に小雲テクスチャ102を集中させて中雲テクスチャを生成するため、中心の透明度が低く、周辺に近づくにつれて透明度が高くなる中雲テクスチャが生成される。そのため、中雲の縁にのみに気流が表現される、リアルな雲を表現することができる。
【0141】
1−(2)中雲生成原理
次に中雲生成原理について説明する。
ここで、中雲とは、小さな雲(小雲)を寄せ集めた集合体を意味する。また、小雲とは、前述の方法により生成した不透明度(α値)のみを有する小雲テクスチャ102の意であり、これを32個複製し、中雲モデル空間に3次元的に分布させることにより中雲を生成する。中雲モデル空間とは、中雲を生成するためのローカル座標系のことである(以下、この中雲モデル空間を中雲座標系という。)。そして、3次元的に配置された各小雲テクスチャ102の不透明度を、仮想カメラ100に基づいて描画するとともに、仮想カメラ100と光源との位置関係に応じた色を着色することにより、中雲テクスチャを生成する。
【0142】
具体的には、1つの中雲を、32枚のペラポリゴンにより構成する。ただし、各ペラポリゴンの表面(ただし、仮想カメラ100に面する側)には、小雲テクスチャ102のαテクスチャがマッピングされる。また、各ペラポリゴンは、中雲座標系における代表点の座標と大きさのみが定義されたものであり、ゲーム実行中においては、その面が仮想カメラ100の視線方向に対して垂直に交わるように回転するビルボードである。
【0143】
以下では、この中雲を構成する個々のペラポリゴンを、小雲ビルボードという。そして、中雲テクスチャを生成する際には、まず、小雲テクスチャ102により指定された各小雲ビルボードのα値を、仮想カメラ100に基づいて所与の平面座標上に描画する。また一方では、中雲に与える色情報を、オブジェクト空間における仮想カメラ100と光源との位置関係に応じて決定し、描画されたα値に従って着色することにより中雲テクスチャを生成する。
【0144】
なお、小雲テクスチャ102を生成する際に、雲パーツA(122)、雲パーツB(124)は、仮想カメラ100のロール角Zに応じて回転させるため、生成される小雲テクスチャ102は、仮想カメラ100のロール角Zに応じて上下左右位置が変化する。そのため、その小雲テクスチャ102をマッピングした小雲ビルボード102は、上下左右位置が仮想カメラ100のロール角Zに応じたものとなるため、代表点に配置するだけで良い。
【0145】
図11は、本発明を適用することによって生成した4種の中雲202、204、206、208の画像例を示す図である。同図に示した各中雲は、32個の小雲ビルボードをそれぞれ異なる分布で配置し、それ以外の全ての条件を同一に設定して生成したものである。即ち、各中雲の画像生成において、各小雲ビルボードにマッピングしたαテクスチャ(即ち、小雲テクスチャ102)は全て同一であり、また、各中雲と仮想カメラ100との位置関係や、オブジェクト空間における仮想カメラ100と光源との位置関係等の設定も全て等しくした。同図によれば、各中雲は、形状や透明さ、立体感等の見え方が異なる。このように、本発明では、32個の小雲ビルボードの分布を変化させるだけで、複数の異なる中雲を生成する。また、オブジェクト空間における仮想カメラ100と光源の位置関係に基づいて色情報を決定することとしたため、各画像から類推される光源の方向が等しいものとして認識できる。
【0146】
以下では、図11に示すような4つの中雲202、204、206、208のテクスチャ(以下、中雲テクスチャ)を生成する方法について、詳細に説明する。なお、以下では、▲1▼初期設定として、各中雲を構成する小雲ビルボードを分布させる方法について説明した後、▲2▼小雲ビルボードの描画として、小雲ビルボードの集合体を描画する方法、即ち、各小雲ビルボードの不透明度αを描画し、着色する方法について説明する。
【0147】
▲1▼初期設定
初期設定では、小雲ビルボードの分布と、各小雲ビルボードの大きさについて設定する。具体的には、中雲1つ1つに対して、中雲座標系を定義し、32個の小雲ビルボードの座標を設定するとともに、各小雲ビルボードの大きさを決定し、各中雲のデータとして記憶する。なお、小雲ビルボードの大きさや分布の設定については、より自然体に近い中雲を生成するために、乱数を用いて行う。即ち、各小雲ビルボードの座標および大きさを乱数により決定する。
【0148】
小雲ビルボードの座標を決定する際には、座標における各成分毎に乱数を発生する。ただし、乱数を無制限に発生させた場合、不必要に大きい値が得られる可能性がある。このため、生成する乱数に下限と上限を設け、所定の範囲内の値が得られるように設定する。ただし、乱数を発生したとき、下限から上限に至る範囲内の全ての値について出現確立が等しい。従って、得られた乱数を小雲ビルボードの座標成分として直接採用した場合、32個の小雲ビルボードは、所与の立方体内に満遍なく分布されることとなり、図11に示す中雲のような一部に寄り集まった雲を表現することができない。そこで、分布に偏りを持たせるために、1つの小雲ビルボードの座標を決定する際に、各座標の1成分につき複数の乱数を発生して、その平均の値を採用する。
【0149】
具体的には、各成分の値を次の式により決定する。
n=(R1+R2+R3+R4)/4−(Rmax−Rmin)/2
n=(R5+R6+R7+R8)/4−(Rmax−Rmin)/2
n=(R9+R10+R11+R12)/4−(Rmax−Rmin)/2 …(4)
ここに、(xn、yn、zn)は、1つの中雲を構成するn番目のビルボードの座標を意味し、R1〜R12は、それぞれ独立に発生した乱数を示す。また、Rmaxは、発生させる乱数の最大値(上限)を、Rminは、最小値(下限)をそれぞれ意味する。例えば、Rmax=100、Rmin=0として設定すれば、乱数の発生範囲は、中雲座標系における原点を中心とし、一辺の長さが"100"の立方体となる。
【0150】
図12は、中雲座標系(x、y、z)の斜視図であり、式(4)に基づいて小雲ビルボードの代表点を分布させた一例を示すものである。同図における破線は、乱数の発生範囲を示す。また、各小雲ビルボードの代表点の座標を点により示した。このように、式(4)を用いて、複数の乱数により小雲ビルボードの座標を決定することによって、原点に偏った分布をする小雲ビルボードの集合体を構成することができる。
【0151】
なお、式(4)では、1成分につき、4つの乱数を用いることとして説明したが、この数に限定する必要はない。例えば、採用する乱数の数を増やせば、小雲ビルボードが原点の近くに配置される可能性がより高くなり、更に偏った分布を実現できる。逆に、採用する乱数の数を少なく設定すれば、偏りが小さい分布を施すことができる。このことは、式(4)において、乱数の発生範囲を操作することによっても同様の効果が認められる。即ち、乱数の発生範囲を大きく設定すれば、分布の偏りが小さくなり、発生範囲を小さく設定すれば、分布の偏りを大きくすることができる。従って、生成する中雲の形状や大きさ、立体感等に応じて採用する乱数の数や範囲を変更してもよい。
【0152】
一方、小雲ビルボードの大きさは、次のようにして決定する。即ち、1つ1つの小雲ビルボードを正方形として定義し、その一辺の長さwsを乱数により決定する。
ws=1.0+Rw …(5)
ここに、Rwは、乱数を意味し、その発生範囲を0.0≦Rw≦1.0とする。即ち、各中雲を、一辺の長さwsが1.0≦ws≦2.0を満たす、様々な大きさの小雲ビルボードの集合体により構成することができる。
【0153】
図13は、上記初期設定により決定された各小雲ビルボードの座標と大きさを記憶する4つの小雲分布データ210a〜dの一例を示す図である。同図によれば、4つの小雲分布データ210a〜dには、それぞれの中雲を構成する小雲ビルボードのコード(NO.)と、各小雲ビルボードを配置する座標の各成分、および、一辺の長さwsが記憶される。ゲーム実行中においては、小雲分布データ210a〜dに記憶されたデータに基づいて、各小雲ビルボードを制御する。なお、同図においては、4つの中雲に対応する小雲分布データ210a〜dをそれぞれ独立して記憶することとして示したが、4つの中雲の小雲ビルボードをまとめて記憶させてもよい。即ち、128個の小雲ビルボードを1つの小雲分布データとして記憶してもよい。また、上記初期設定は、ゲームを実行する直前に行い、毎回異なる中雲を生成する構成にしてもよい。
【0154】
▲2▼小雲ビルボードの描画
続いて、ゲーム実行中において、小雲ビルボードを描画する処理について説明する。
【0155】
図14(a)は、中雲座標系(x、y、z)を模式的に描いたものであり、小雲ビルボード24−1〜32を描画するための仮想カメラ(以下、雲視点220という)と、中雲座標系の原点と、投影スクリーン22との位置関係を説明するための図である。ここに、投影スクリーン22とは、小雲ビルボード24−1〜32の集合体を投影するための投影面であり、その面は、ワールド座標系における仮想カメラ100の視線ベクトル34に対して垂直に交わる関係にある。また、同図に示すように、雲視点220と、中雲座標系の原点と、投影スクリーン22の中心点22aとは、ワールド座標系における仮想カメラ100の視線ベクトル34と平行な1つの直線26上に配置される。従って、雲視点220の視線ベクトルは、ワールド座標系における仮想カメラ100の視線ベクトル34と等しくなる。なお、中雲座標系において、原点に対する雲視点220と投影スクリーン22の距離を、それぞれ一定とする。
【0156】
図14(b)は、オブジェクト空間を定義するワールド座標系(Xw、Yw、Zw)と、(a)に示す中雲座標系(x、y、z)とを示した図である。同図によれば、オブジェクト空間を映し出すためのスクリーン32と仮想カメラ100とを結ぶ直線36と、中雲座標系の原点を経由した雲視点220と、投影スクリーン22の中心点22aとを結ぶ直線26とが平行である。即ち、ゲーム実行中において、ワールド座標系における仮想カメラ100とスクリーン32の座標を決定すると、仮想カメラ100からスクリーン32に向かう視線ベクトル34を算出する。そして、この視線ベクトル34の傾きに基づいて、中雲座標系における雲視点220と投影スクリーン22の座標を決定する。なお、図14(b)において、位置関係を説明するために、ワールド座標系内に中雲座標系を配置したが、実際に配置するものではない。従って、小雲ビルボード24の分布は、ワールド座標系における他のオブジェクトの配置・描画を妨げるものではない。
【0157】
このように、仮想カメラ100の視線ベクトル34と平行になるように、雲視点220と投影スクリーン22との位置を決定し、雲視点220に基づいて、各小雲ビルボードを投影スクリーン22上に投影変換する。但し、このとき、中雲座標系における32個の小雲ビルボード24−1〜32の面がそれぞれ仮想カメラ100の視線ベクトル34に対して垂直に交わるように、各小雲ビルボードの頂点の座標を決定する。そして、各頂点について、投影スクリーン22への投影変換を行う。即ち、1つの小雲ビルボードを投影スクリーン22上に投影する際には、初期設定において生成した小雲分布データ210a〜dの中から該当する小雲ビルボードの代表点の座標と一辺の長さwsを読み出し、その読み出した値に基づいて視線ベクトル34の方向を法線方向とし、且つ、代表点の座標を中心とする面の4つの頂点を算出する。そして、算出した4つの頂点を投影スクリーン22上に投影することにより、小雲ビルボードの投影処理を行う。
【0158】
あるいは、小雲ビルボード24の投影処理において、中雲座標系における小雲ビルボード24と投影スクリーン22とが常に平行であることを利用して、投影処理を次のように短絡化してもよい。まず、中雲座標系における小雲ビルボードの代表点の座標を、投影スクリーン22上に投影する。一方で、該当する小雲ビルボード24の一辺の長さwsを、投影スクリーン22の座標系における長さws´に変換する(即ち、長さwsに対して透視変換の演算を施す)。そして、投影スクリーン22の座標系において、投影された小雲ビルボード24の代表点の座標を中心とする、一辺の長さws´の正方形の頂点を求める。このように、小雲ビルボード24の各頂点の座標を、投影スクリーン22の座標系において直接求めることによって、複数の小雲ビルボード24−1〜32の描画処理を軽減することができる。
【0159】
図15は、1つの中雲テクスチャの画像データを記憶するための中雲バッファ40を模式的に描いた図である。同図によれば、中雲バッファ40は、100×100テクセル分のRGBの色情報と、α値を記憶するメモリであり、それぞれRGBプレーン42とαプレーン44とに分けて記憶する。また、中雲バッファ40における各テクセルは、投影スクリーン22の座標系(XS,YS)と対応する。即ち、中雲座標系における小雲ビルボード24を投影スクリーン22上に投影すると、投影スクリーン22の座標系における小雲ビルボード24の各頂点の座標に対応する中雲バッファ40のテクセルを決定できる。そして、決定されたテクセルによって囲まれた範囲のテクセルのαプレーン44に対して、小雲テクスチャ102により指定されたα値(Cα)を与える。ただし、各テクセルのαプレーン44に対して、α値を加算的に与えることとする。即ち、中雲バッファ40内の1つのテクセルに対して、複数の小雲ビルボード24が重なって投影された場合には、全てのα値を加算して記憶させる。なお、α値を加算することによって、α>1となる場合には、1を超える値を切り捨てることとする。
【0160】
このように、3次元的に配置した小雲ビルボード24−1〜32をオブジェクト空間における仮想カメラ100の視線方向に応じて描画することによって、仮想カメラ100の位置が変化する度に見え方が変化することとなる。従って、生成される中雲テクスチャは、平面であるにもかかわらず、立体的な印象を与えることができる。また、中雲の見え方が、3次元空間における分布に従って秩序正しく変化するため、違和感を与えることなく雲を表現することができる。
【0161】
また、図15に示す中雲バッファ40のRGBプレーン42に与える色情報は、オブジェクト空間における光源と、仮想カメラ100の視線方向および、中雲座標系における投影スクリーン22(より正確には、投影スクリーン22に対応するオブジェクト空間上の「中雲ビルボード」であるが、本原理は、「中雲」に係る原理を説明しているため、以下、「投影スクリーン」として説明する。)との位置関係に応じて決定する。より具体的には、投影スクリーン22(対応するオブジェクト空間上の中雲ビルボード。以下同じ。)と光源との位置関係を判定するための特定点を、投影スクリーン22上に設定する。例えば、投影スクリーン22の頂点、投影スクリーン22の各辺の中点、および、投影スクリーン22の中心点といった複数箇所の点を特定点として設定する。ゲーム実行中においては、投影スクリーン22上に設定した各特定点と光源との位置関係を判定し、光源に近いと判定される特定点には明るい色を、光源から離れた位置に該当する特定点には暗い色を決定する。そして、投影スクリーン22上の各特定点に対して決定した色情報を、中雲バッファ40上の対応するテクセルのRGBプレーン42に記憶させる。また、中雲バッファ40上の他のテクセルに対しては、グローシェーディングの方法、即ち、各特定点に与えられた色の中間色を算出して与える。
【0162】
投影スクリーン22上の各特定点と光源との位置関係を判定する処理は、ベクトル演算により行う。即ち、投影スクリーン22上に設定した各特定点に特定のベクトルを持たせ、ゲーム実行中の投影スクリーン22の回転に合わせて各特定点の特定ベクトルを回転させる。そして、オブジェクト空間における光源の光線ベクトル38と、投影スクリーン22の各特定ベクトルとの成す角を計算し、その角度に応じた色を該当する特定点の色として決定する。なお、以下では、簡単の為に、光源を無限光源とする。即ち、図14(b)に示すように、光のベクトル38(以下、光線ベクトル38という)は、オブジェクト空間の全体を均等に照らし、且つ、至るところで平行なベクトルとする。
【0163】
図16は、投影スクリーン22に設けた9ヶ所の特定点22−1〜9と、各特定点の特定ベクトルを説明するための図である。(a)は、中雲座標系における投影スクリーン22の正面図を、(b)は、投影スクリーン22の断面図をそれぞれ示す。(a)および(b)によれば、各特定点が、投影スクリーン22の各頂点22−2,4,6,8、投影スクリーン22の各辺における中点22−3,5,7,9、および、投影スクリーン22の中心点22−1に設定され、特定ベクトルとして、各点における法線ベクトルが与えられる。なお、(b)には、投影スクリーン22の中心点22−1における法線ベクトル22−1a、および、仮想カメラ100の視線ベクトル34を示した。即ち、中心点22−1の特定ベクトルは、仮想カメラ100の視線ベクトル34に対して常に逆向きとなる。
【0164】
また、図16(c)は、各特定ベクトル(即ち、法線ベクトル)が指す向きの関係を示す図であり、投影スクリーン22を、x−z平面に対して水平に、且つ、各辺がx軸とz軸に対して平行あるいは垂直に交わるように配置したときの各特定ベクトルの成分を表示したものである。(c)に示すように、各特定ベクトルが互いに成す角の関係は、ゲーム実行中における投影スクリーン22の回転にかかわらず等しい。従って、仮想カメラ100の視線ベクトル34が決定すれば、視線ベクトル34に基づく回転行列を生成して、(c)に示す各特定ベクトルに作用させることにより、投影スクリーン22における各点の法線ベクトルを簡単に算出することができる。
【0165】
このように、投影スクリーン22の各点における特定ベクトルの向きを決定すると、光線ベクトル38との成す角を算出する。しかし、3次元空間における各ベクトルの成す角を算出して、座標系における3つの成分の角度を比較する処理は煩雑であるため、以下では、成す角を算出せずに、内積により色を決定することとする。また、内積を算出する際には、各ベクトルを単位ベクトル化し、内積の結果ωが−1≦ω≦1の範囲を取るように設定する。そして、該当する点に与える色を、ωの値および符号に応じて一意的に決定する。
【0166】
なお、内積ωの値と中雲に与える色との関係は、投影スクリーン22の各特定点が光源に対して近いか遠いかといった関係と対応させる。具体的には、図16(a)に示した投影スクリーン22において、特定点22−2の法線ベクトルは光線ベクトル38に対して逆向きを示し、特定点22−6の法線ベクトルは同方向を指す。即ち、投影スクリーン22において、より光源に近い点の法線ベクトルは、光線ベクトル38と逆向きを示し、光源に対して影となる部分の法線ベクトルは、光線ベクトル38と同方向を示す。こうした関係に基づき、光線ベクトル38と各点の法線ベクトルとの内積ωが、負である場合には、該当する点が光源に近いものと判断して、明るい色を与える。また、内積ωが正である場合には、光源からやや遠い、影となる部分に対応する点であると判断し、暗い色を与える。
【0167】
更に詳細には、内積ωが負である場合には雲の色として白を、内積ωが正である場合には灰色を(極端には、黒を)、といった具合に、色の濃淡を内積ωの値に応じて決定する。例えば、RGB各色の出力Iの範囲を0≦I≦255と定義する。ここに、I=0のとき、RGB全ての色が出力されずに黒となり、逆にI=255のとき白となる。そして、内積ωを変数とする関数f(ω)を乗算することにより、全色の出力の割合を決定する。関数f(ω)は、0≦f(ω)≦1の範囲を取り、ωの増加に伴って増加する関数であればいずれのものであってもかまわないが、例えば、

Figure 0004688407
といった関数を定義する(ただし、0≦f(ω))。図17は、関数f(ω)のグラフを示すものであり、横軸がωを、縦軸が関数f(ω)の値を示す。式(6)によれば、関数f(ω)の値は、内積ωが負のとき"1"から"0"の値を持ち、内積ωが正のとき値が"0"となる。従って、法線ベクトルと光線ベクトル38とが互いに等しい方向を向くとき(ω>0)には、f(ω)=0となり、出力される色は黒となり、雲における影の部分を表現することができる。一方、法線ベクトルと光線ベクトル38とが向き合う関係にあるとき(ω<0)には、f(ω)>0となり、ωの値が"−1"に近づくにつれて白に近い色となる。
【0168】
このように、投影スクリーン22における複数箇所の法線ベクトルを算出し、光線ベクトル38との内積を取ることによって、よりもっともらしく雲の陰影を表現することができる。しかしながら、式(6)によれば、雲の陰影を表現することができるものの、様々な色のグラデーションを表現することができない。例えば、朝日や夕日を浴びて金色に輝く部分から、夜空の色を受けて暗く陰る部分までを持つ1つの雲を、立体感を維持し、且つ、グラデーションを付けて表現したい場合がある。しかし、光線ベクトル38と法線ベクトルの内積ωという、1つの値の変化に基づいて、RGBの3つの色を様々に、且つ、もっともらしく変化させることは困難である。
【0169】
そこで、光が当って雲が明るく輝くときの色味(明色IL=RL、GL、BL)と、雲のベースとなる色味(ベース色IB=RB、GB、BB)と、光が当らない影となる部分の色味(影色IS=RS、GS、BS)の、3色の色を予め設定する。そして、内積ωの値に応じて、各色を採用する割合を決定することとする。例えば、明色の割合を決定するための関数FL(ω)と、ベース色の割合を決定するための関数FB(ω)と、影色の割合を決定するための関数FS(ω)とをそれぞれ独立して設定する。即ち、出力する色Iを、
I=IL・FL(ω)+IB・FB(ω)+IS・FS(ω) …(7)
により決定する。
【0170】
また、各関数F(ω)を次のように設定する。
Figure 0004688407
図18(a)〜(c)は、各関数のグラフを示す図である。それぞれのグラフにおいて、横軸はωの値を、縦軸は関数F(ω)の値を示す。なお、式(8)からわかるように、各関数の和は、常に1となる。従って、不自然な色味を出力することなく、合理的に各色を合成することができる。また、ω=−1,1の場合を除き、ベース色が常に合成されることとなる。従って、例えば、ベース色として白を適用した場合、白を基調とし、滑らかに色の変化する雲を表現することができる。
【0171】
以上のように、小雲テクスチャ102のαテクスチャをマッピングした小雲ビルボード24を、中雲座標系に3次元的に配置し、ワールド座標系における仮想カメラ100の向きに応じて回転させることとしたため、中雲を観察する仮想カメラ100の位置に対応して形状が変化する立体的な中雲を表現することができる。そのため、例えば、プレーヤの操縦する飛行機(視点)の高低の変更に伴い中雲を見る角度が変化しても、中雲の形状に矛盾が生じず、見ていて違和感のない画像を生成することができる。
【0172】
また、中雲テクスチャを生成する際には、全体に気流がかかった雲である小雲テクスチャ102を中心付近に集中させて中雲テクスチャを生成するので、中心が濃く(透明度が低く)、周辺に近づくにつれ薄く(透明度が高く)なる中雲テクスチャが作成される。そのため、結果として、中雲テクスチャの縁のみに気流が表現され、よりリアルな雲を表現することができる。
【0173】
また、中雲を構成する雲パーツ1つ1つに対して色を決定せずに、中雲全体のα値について描画した後、色を決定することとしたため、より迅速に中雲テクスチャを生成することができる。更に、予め3種類の色を設定し、各色を採用する割合を、中雲を描画するためのスクリーン(実際には、対応するオブジェクト上の中雲ビルボード)と光源との位置関係に応じて決定することとしたため、日の光によって色を微妙に変化させる雲を表現することが可能となった。
【0174】
なお、上記説明では、生成する中雲の数を4個、1つの中雲を構成する小雲ビルボードの数を32個として説明したが、これらの数に限定する必要はなく、1つの小雲ビルボードの規模に応じて様々に変更してもよいことは勿論である。また、色の濃淡や予め設定した色の合成割合を決定する式は、式(6)や式(8)に限定する必要はなく、雲の色として違和感の生じない色合いを算出するものであれば、いかなる式であってもかまわない。また、上記説明では、3色を合成することとして説明したが、2色や4色、…、n色であってもかまわない。この場合には、例えば、式(8)内の(ω+1)に乗算する値を、合成する色の数に合わせて変更することにより可能となる。
【0175】
あるいは、図19に示すような色決定テーブル290を予め生成し、このテーブルに基づいて色を決定することとしてもよい。図19によれば、色決定テーブル290には、法線ベクトルと光線ベクトル38との内積ωの範囲と、各内積ωの範囲と対応付けて色情報(RGBの各値)が記憶される。ゲーム実行中においては、投影スクリーン22の各特定点の法線ベクトルと光線ベクトル38との内積ωを計算し、色決定テーブル290を読み出して該当する色情報を判定し、中雲バッファ内の該当するテクセルのRGBプレーンに与える。ただし、このような色決定テーブル290を採用した場合には、予め記憶すべき情報が増えるとともに、雲の微妙な色の変化を表現することができない。従って、上記説明のように、予め特定した色を合成する割合をその都度計算する方法が最も好ましいものといえる。
【0176】
また、4つの中雲のテクスチャを生成することとして説明したが、これに限定する必要はなく、例えば、オブジェクト空間に各小雲ビルボードを実際に配置し、オブジェクト空間における仮想カメラ100に基づいて描画することとしてもよい。あるいは、オブジェクト空間全体に渡る雲を、1つの中雲のテクスチャによって表現することとしてもよい。
【0177】
しかし、このように、仮想カメラ100や雲視点の位置に基づいて描画すべき小雲ビルボードの数が多ければ多いほど、各小雲ビルボードの座標や向きを算出する処理や、描画処理等の負担が増大し、ゲーム画像の生成処理全体を遅延化させるといった問題が生じる。なお、この問題は、仮想カメラ100に基づいて描画する際の中雲や小雲ビルボードの大きさを調節することにより解決されるように思われる。例えば、オブジェクト空間に直接小雲ビルボードを配置する場合であっても、小雲ビルボードの大きさを比較的大きく設定すれば、描画等の処理を軽減することができる。しかし、飛行機ゲームのような雲を間近で観察し得るタイプのゲームにあっては、1種類のαテクスチャをマッピングしただけの比較的大きな小雲ビルボードをオブジェクト空間に直接配置した場合には、仮想カメラ位置の変化に伴う雲の微妙な変化を表現することができない。また、中雲を構成する各小雲ビルボードを大きくし、その数を少なくした場合、仮想カメラ100の位置の変化に伴う中雲の形状の変化が乏しくなり、立体感に欠けたものとなる。
【0178】
そのため、本実施の形態においては、以下に述べる雲海生成原理に基づいて、オブジェクト空間に中雲ビルボードを配置することにより、仮想カメラ100の位置の変化に伴う雲の変化を表現するとともに、立体感を有する雲を表現する。
【0179】
1−(3)雲海生成原理
次に、中雲生成原理により生成された中雲テクスチャをマッピングしたビルボード(以下、中雲ビルボードという。)を複数オブジェクト空間に設定することにより雲海を生成する原理を説明する。
【0180】
図20に示すような、仮想カメラ100(視線方向が図中矢印で示す方向で、視野角φ)から見た画像を生成する際には、図20に示した雲設定領域R内のみに、中雲ビルボードを配置する。雲設定領域R外部の雲については、仮想カメラ100の視界に入らず、描画されないため、配置しない。
【0181】
また、中雲ビルボードは、上述したように、常に仮想カメラ100の視線方向に垂直に対向し、配置位置(一点)と、大きさを設定することによりオブジェクト空間に配置される。即ち、仮想カメラ100が移動したり、視線方向を変えても雲が平面であることは露見しない。
【0182】
図20に示した雲設定領域Rについてより具体的に説明する。雲設定領域Rは、図21に示すように、オブジェクト空間(ワールド座標系)において設定された仮想カメラ100の位置から視線方向(図中矢印表示)に距離dの位置に中心点FPW(FPW.x,FPW.y,FPW.z)を有する一辺長2Lの立方体内の領域である。即ち、雲設定領域Rの位置は、仮想カメラ100の位置や視線方向に応じて変化する。但し、雲設定領域Rの各辺の方向は、ワールド座標系のXw軸、Yw軸、Zw軸の方向を向くように設定される。
【0183】
この雲設定領域Rに中雲の配置位置(中雲ビルボードの配置位置座標)を設定する際には、雲設定領域Rの中心点FPWを原点とするローカル座標系(xL,yL,zL)(以下、雲海座標系という。)における雲設定領域R内の位置座標を決定する。即ち、雲設定領域Rの中心点FPWに相対する位置として中雲ビルボードの配置位置を決定する。ここで、雲海座標系における雲設定領域Rは、図22に示すように中心点を点FPL(0,0,0)とし、一辺長2Lの立方体となる。
【0184】
雲海座標系に配置される中雲ビルボードの座標CL[i](CL[i].x,CL[i].y,CL[i].z)は、
CL[i].x={Ct[i].x+{2L−(FPW.x mod2L)}}mod 2L−L …(9)
CL[i].z={Ct[i].z+{2L−(FPW.z mod2L)}}mod 2L−L …(10)
CL[i].y=(Alt−FPW.y)+Ct[i].y×Altw …(11)
で設定される。ここで、i=1、2、…、nであり、nは設定される雲(中雲ビルボード)の数である。また、「mod」とは、剰余を示す演算子である。Altは、雲層のy座標の中心であり、例えば、地面のy座標が"0"である場合には、地面からの雲層の中心までの高さを示すこととなる。Altwは、雲層の中心から雲層の端までの最大幅である。
【0185】
また、初期設定として初期分布Ct[i](Ct[i].x,Ct[i].y,Ct[i].z)(i=1,2,…,n)が設定されている。初期分布とは、雲海における中雲ビルボードの配置位置の分布状態を決めるために初めに(例えば、ゲームの開始時等に)、一度決定されるものであり、その後ゲーム実行中には、この初期分布は変更されない。そして、Ct[i].x=rand(randは0〜(2L−1)の乱数)、Ct[i].y=rand(randは−1〜1の乱数)、Ct[i].z=rand(randは0〜(2L−1)の乱数)として初めに決定されるものである。
【0186】
式(9)によれば、{Ct[i].x+{2L−(FPW.x mod2L)}}mod2Lのとり得る値は"0"〜"2L−1"の範囲となるため、雲海座標系における中雲の配置位置のx座標CL[i].xのとり得る値は、"−L"〜"L−1"の範囲となる。また、{2L−(FPW.x mod2L)}の値は、例えば、FPW.xの値が増加する場合には、"2L"〜"1"の範囲で減少し、"1"になった後、更にFPW.xの値が増加すると"2L"に戻る。
【0187】
そのため、例えば、雲設定領域Rの中心点のx座標FPW.xの値が増加していく場合には、中雲の配置位置のx座標CL[i].xの値は"L−1"から"−L"の範囲でFPW.xの値が増加した分だけ減少し、"−L"になった後は、また"L−1"に戻り、"L−1"から"−L"の値が繰り返されることとなる。即ち、雲設定領域Rの中心点のx座標FPW.xが増加した分だけ、雲海座標系における中雲ビルボードの配置位置のx座標CL[i].xは減少し、雲設定領域Rの外部になると、逆側に現れることになり、必ず雲設定領域R内"−L"〜"L−1"の値となる。雲海座標系における中雲ビルボードの配置位置のz座標CL[i].zについても式(10)により同様である。
【0188】
図23(a)は、ワールド座標系において、Zw軸方向から見た雲設定領域Rを示す図である。同図に示すように、例えば、雲設定領域Rのワールド座標系における中心位置がFPW1(FPW1.x,FPW1.y,FPW1.z)とすると、雲海座標系における中雲ビルボードの配置位置CL[i]のx座標CL[i].xは、式(9)に従って、
CL[i].x={Ct[i].x+{2L−(FPW1.x mod2L)}}mod 2L−L
で設定される。
【0189】
ここで、例えば、図23(a)に示すように、Ct[1].x=110、FPW1.x=100、L=100であったとすると、中雲ビルボードの配置位置CL[1]の雲海座標系におけるx座標の値は、
CL[1].x={110+{200−(100 mod200)}}mod 200−100=−90
となる(図23(b))。図23(b)は、FPL1(=FPW1)を原点とした雲海座標系において、zL軸方向から見た雲設定領域Rの一例を示す図である。
【0190】
そして、仮想カメラ100の位置が図23(a)に示すようにワールド座標系のx軸方向に(図中点V1から点V2へ)移動し(視線方向は変化しない)、それに伴い、ワールド座標系における雲設定領域Rの中心点FPWの位置も点FPW1から点FPW2(FPW2.x,FPW2.y,FPW2.z)(FPW2.y=FPW1.y、FPW2.z=FPW1.z)に移動した場合、例えば、図23(a)に示すようにFPW2.x=190であるとすると、中雲ビルボードの配置位置CL[1]の雲海座標系におけるx座標の値は、
CL[1].x={110+{200−(190 mod200)}}mod 200−100=+20
となる(図23(c))。図23(c)は、FPL2(=FPW2)を原点とした雲海座標系において、zL軸方向から見た雲設定領域Rの一例を示す図である。
【0191】
即ち、図23(a)に示すように、ワールド座標系において、仮想カメラ100の変更による雲設定領域Rの移動に伴い、雲設定領域Rから外れた領域RP1が、新たに雲設定領域Rに含まれる領域RP2として現れることになる。即ち、一の分布パターンを繰り返して使用することができる。
【0192】
また、例えば、Ct[2].x=50であるとすると、雲設定領域Rの中心点FPWがFPW1である場合には、中雲ビルボードの配置位置CL[2]の雲海座標系におけるx座標CL[2].xは、
CL[2].x={50+{200−(100 mod200)}}mod 200−100=+50
となる。この場合、ワールド座標系におけるCL[2]のx座標は、中心点FPW1のx座標FPW1.x("100")から"+50"の座標"150"である。
【0193】
雲設定領域Rの中心点FPWが点FPW1から点FPW2に移動すると、中雲ビルボードの配置位置CL[2]の雲海座標系におけるx座標CL[2].xは、
CL[2].x={50+{200−(190 mod200)}}mod 200−100=−40
となる。この場合、ワールド座標系における中雲ビルボードの配置位置CL[2]のx座標は、中心点FPW2のx座標FPW2.x("190")から"−40"の座標"150"である。
【0194】
即ち、移動前(中心点を点FPW1とする)雲設定領域Rと、移動後(中心点を点FPW2とする)雲設定領域Rとの重なる領域PR3内の中雲ビルボードの配置位置は、ワールド座標系において同じ位置に設定されることとなる。
【0195】
雲設定領域Rの中心点FPWがZw軸方向に移動した場合は、上述したXw軸方向の移動と同様である。
【0196】
図24は、雲設定領域Rの中心点FPWがYw軸方向に移動する場合について説明する図である。図24(a)に示すように、雲設定領域Rの中心点FPWが点FPW1(FPW1.y=300)、Alt=240、Altw=20であり、初期分布においてCt[1].y=0であるとすると、中雲ビルボードの配置位置CL[1]の雲海座標系におけるy座標CL[1].yは、
CL[1].y=(240−300)+0×20="−60"
となり、図24(b)に示すような位置となる。図24(b)は、FPL1(=FPW1)を原点とした雲海座標系において、zL軸方向から見た雲設定領域Rの一例を示す図である。
【0197】
また、雲設定領域Rの中心点FPWが、例えば、図24(a)に示すように点FPW1(FPW1.y=300)から点FPW3(FPW3.y=350)に移動した場合、中雲ビルボードの配置位置CL[1]のy座標CL[1].yは、CL[1].y=−60から、CL[1].y=(240−350)+0×20=−110、に変更される(図24(c))。図24(C)は、FPL2(=FPW2)を原点とした雲海座標系において、zL軸方向から見た雲設定領域Rの一例を示す図である。
【0198】
仮想カメラ100の変更に伴い雲設定領域Rの位置が変わっても、ワールド座標系における雲の高さ(雲層の高さ)が変わることはないため、Xw軸方向に雲設定領域Rが移動した場合のように、雲設定領域Rの外部になった領域が新たに雲設定領域Rに含まれる領域として現れるといったことはなく、図24(c)に示すように雲設定領域R外部の座標位置に中雲ビルボードの配置位置が設定される。勿論、配置位置が雲設定領域R外部になった場合には、雲を配置しない。
【0199】
このように、式(9)〜(11)に従ってn個の中雲ビルボードの配置位置CL[i]を設定し、雲設定領域R内の中心点FPLがワールド座標系におけるFPWになるように、雲設定領域Rをワールド座標系に配置することにより、ワールド座標系における雲設定領域R内の雲(中雲ビルボード)の配置位置を設定することができる。そして、これらの配置位置CL[i]に大きさW[i]=1.0+rand(randは、0.0〜1.0の範囲の乱数)でそれぞれ中雲ビルボードを配置する。ここで、大きさW[i]は、例えば、中雲ビルボードの一辺の長さを示すものであっても良いし、また、例えば、中雲生成原理に基づいて生成される中雲テクスチャの大きさを"1"とした場合に、その中雲テクスチャに対する大きさを示すものであっても良い。
【0200】
ここで、上記式(9)〜(11)に基づいて、雲設定領域R内に設定するのは、中雲ビルボードの「配置位置」のみである。即ち、上下左右方向については、考慮に入れていない。これは、上述したように中雲を構成する小雲ビルボードが既に上下左右方向を考慮して生成されており、中雲テクスチャも同様に上下左右方向を考慮して生成されている(即ち、仮想カメラ100のロール角Zに応じた中雲テクスチャが生成される。)。そのため、雲海生成時には、雲設定領域R内に「配置位置」のみを決定すれば良い。
【0201】
従って、オブジェクト空間全体に雲を配置することなく、雲設定領域R内にのみ雲を設定すれば良いため、雲の設定に係る処理を軽減することが可能となる。また、雲を中雲ビルボードで表現するため、従来のように、仮想カメラ100の方向によっては、厚みの無さが露見するといったことがなく、例えば、雲層を水平方向からみた場合であっても、図25に示すような立体感のある雲の画像を生成することができる。図25は、本原理を適用した雲を含む表示画面の一例を示す図である。
【0202】
しかしながら、図26に示すような位置、視線方向の仮想カメラ100から見た場合には、雲設定領域Rの境界が視界内に入る。このため、図26に示すように仮想カメラ100の移動に伴い雲設定領域Rを矢印方向に移動させると、仮想カメラ100が少しx軸方向(図中右方向)に移動した時点で、雲設定領域Rの左端境界付近に設定された配置位置CL[m]が消滅して雲設定領域Rの右端境界付近に変わることとなる。
【0203】
従って、仮想カメラ100から見た場合には、視界内の配置位置CL[m]に配置された雲が視界の端から消えるのではなく、視界の中で消滅することになってしまう。また、同様に仮想カメラ100の移動に伴い、視界の中で急に雲が現れることもあり、違和感を生じる。そのため、視界内の雲設定領域Rの境界付近の雲をより透明にするため、
α=1.0−|(Sz[i]−d)|/L (12)
に基づいて、不透明度を示すパラメータであるα値(0≦α≦1)を設定する。
【0204】
ここで、Sz[i]は、仮想カメラ100から中雲ビルボードの配置位置CL[i]までの距離である。また、α値は"0"で完全に透明となり、α値が"1"の場合に不透明となる。即ち、仮想カメラ100から中雲ビルボードの配置位置までの距離Sz[i]と仮想カメラ100から雲設定領域Rの中心点FPWまでの距離dとの差が小さい位置に配置位置を持つ雲ほどαの値が大きくなり(不透明となり)、仮想カメラ100から中雲ビルボードの配置位置までの距離Sz[i]と、仮想カメラ100から雲設定領域Rの中心点FPWまでの距離dとの差が大きい位置に配置位置を持つ中雲ビルボードほどα値が小さくなる(透明になる)。
【0205】
式(12)によれば、雲設定領域Rの境界付近の配置位置CL[m]と仮想カメラ100との距離Sz[i]は、距離dとの差が大きいため、この配置位置CL[m]に配置される中雲ビルボードは透明度の高いものとなる。従って、急に消えてもわかりにくい。同様に、視界の中の雲設定領域Rの境界に現れる場合には、透明度の高い雲が現れることとなる。
【0206】
なお、仮想カメラ100から中雲ビルボードの配置位置CL[i]までの距離Sz[i]と、仮想カメラ100から雲設定領域Rの中心点FPWまでの距離dとの差に応じてα値を変更するのではなく、例えば、図27(a)に示すように、配置位置CL[i]が雲設定領域Rの中心点FPWから離れる雲ほど透明度が高くなる(αの値が小さくなる)こととし、中心点FPWからの距離がLで(α=0)になることとしても良い。その場合には、図27(a)に示した半径Lの球P1の内側においては、中心点FPWから離れるほど不透明度が低くなり(透明になり)、球P1の外の領域に配置位置を持つ雲は完全に透明となる(見えない)。
【0207】
また、例えば、図27(b)に示すように、仮想カメラ100からの中雲ビルボードの配置位置までの距離Sz[i]が所与の範囲となる領域を不透明(α=1.0)の領域とし、その領域から離れるほど徐々にα値を低くしていく(透明にしていく)ようにしても良い。
【0208】
また、例えば、図28に示すような仮想カメラ100の位置、視線方向、視野角の場合には、雲設定領域Rの外部の雲も視界に入る。そのため、更に遠景雲設定領域Rfを設定し、この遠景雲設定領域Rfに、平面状の雲オブジェクトを水平に配置する。この遠景雲設定領域Rfは、例えば、仮想カメラ100からdf(df>d)の距離に中心点FfPWを有し、一辺長Lf(Lf>L)(遠景雲設定領域Rfは仮想カメラ100から遠くに設定されるため、より広い範囲が視界内に入ることとなるため)の立方体の領域である。
【0209】
この遠景雲設定領域Rfに雲オブジェクトを配置する際には、上述した雲設定領域Rにおいて中雲ビルボードの配置位置を決定する場合と同様の初期分布Ct[i]に基づいて、式(9)〜(11)における"L"を"Lf"とし、"FPW"を"FfPW"として配置位置を決定する。また、雲設定領域Rと同様に、中心点FfPWから離れるほど雲が透明となるようにα値が設定される。そのため、雲設定領域Rと遠景雲設定領域Rfとの境界や重なる部分の雲はα値の低い(透明度の高い(見え難い))ものとなる。そのため、雲設定領域Rと遠景雲設定領域Rfとの境界をわかりにくくし、自然に連なる雲海を表現することができる。
【0210】
図29は、視界内に、遠景雲設定領域Rfと雲設定領域Rとが存在する場合の表示画像の一例を示す図である。このように、遠景雲設定領域Rf内の雲オブジェクトの場合には、仮想カメラ100から遠い位置に配置され、また、仮想カメラ100と遠景雲設定領域Rf内の雲オブジェクトとの間に雲設定領域R内の中雲ビルボードが配置されたりするため、遠景雲設定領域Rf内の雲オブジェクトは、仮想カメラ100の視線方向に垂直に向いていなくても厚みの無さが露見し難い。そのため、遠景雲設定領域Rf内に設定する雲オブジェクトは、仮想カメラ100の位置、視線方向に関わらず水平に配置するだけで良く、ビルボード処理に係る負担を軽減することができる。
【0211】
また、例えば、図30に示すようなオブジェクト空間全体の雲の分布を示す雲分布マップ924に従って、雲のある部分に配置位置を持つ中雲ビルボードのα値に"1"を掛け(設定されているα値をそのまま反映させ)、雲のない部分に配置位置を持つ中雲ビルボードのα値に"0"を掛ける(透明にする)ことにより、雲のない部分に配置される中雲ビルボードを見えなくして、雲がないようにする。
【0212】
即ち、図30に示す雲分布マップ924は、α値の分布を示すマップである。白い(雲がある)部分はα値が"1"に、黒い(雲がない)部分はα値が"0"に設定されている。そして、この雲分布マップ924の位置に応じたα値を中雲ビルボードに設定されているα値に掛け合わせたα値が描画を行なう際の不透明度に反映されることとなる。
【0213】
なお、雲分布マップ924における雲がある部分と雲がない部分との境界付近の部分のα値を、例えば"0.5"に設定しておくこととしても良い。その場合には、例えば、雲の切れ目(雲海の端部など)、即ち雲がある部分と雲がない部分との境界をはっきりさせずにぼかすことができる。
【0214】
2.機能
次に本実施の形態における各機能について説明する。
【0215】
図31は、本実施の形態における機能ブロックの一例を示すブロック図である。同図に示すように、本実施の形態の機能ブロックは、操作部500と、処理部600と、表示部700と、一時記憶部800と、記憶部900とから構成される。
【0216】
操作部500は、ゲームにおけるオブジェクトの操作等を指示入力するためのものである。プレーヤは、図1に示すゲームコントローラ1202、1204等を用いて操作データを入力する。操作部10にて得られた操作データは処理部600に出力される。
【0217】
処理部600は、主に、ゲーム演算部610と画像生成部630とから構成される。ゲーム演算部610は、操作部500から入力される操作データ及び記憶部900から読み出したゲームプログラム910に従って、所与のゲームを実行する処理、仮想カメラ100の位置、視線方向、画角(視野角)等を設定する処理、オブジェクト空間にオブジェクト、光源等を設定する処理等の処理を行なう。
【0218】
また、ゲーム演算部610には、中雲生成部612、初期設定部616、雲海生成部618が含まれる。
【0219】
画像生成部630は、仮想カメラ100から見た画像を生成する処理を行なう。画像生成部630には、小雲描画部632、中雲描画部634、雲海描画部640が含まれる。
【0220】
これら処理部600の機能は、CISC型やRISC型のCPU、DSP、画像生成専用のIC、メモリ、などのハードウェアにより実現される。
【0221】
表示部700は、画像生成部630により生成された画像(即ち、フレームバッファ808に設定された画像)等を表示するものであり、例えば、CRT、LCD、プラズマディスプレイ等によって実現され、図1のディスプレイ1200がこれに該当する。
【0222】
一時記憶部800は、小雲バッファ802、中雲バッファ804、特定点色データ806、フレームバッファ808、描画対象設定データ810が格納される。この一時記憶部800の機能は、RAMにより実現できる。
【0223】
記憶部900は、ゲームプログラム910、気流テクスチャ104、初期データ950、雲分布マップ924、雲層データ926、色データ928、関数データ930を記憶している。この記憶部900の機能は、CD−ROM、ゲームカセット、ICカード、MO、FD、DVD、メモリ、ハードディスクなどのハードウェアにより実現できる。
【0224】
次に図31に示した各機能部の機能について各処理毎に詳細に説明する。
2−(1)小雲生成処理機能
初期設定部616は、初期データ950を設定する処理を行なう。具体的には、ゲーム開始時に、雲パーツデータ952と、2−(2)中雲生成処理機能において小雲ビルボードを分布するための初期データである小雲分布データ210と、2−(3)雲海生成処理機能において中雲ビルボードを分布するための初期データである中雲分布データ956とを設定する。
【0225】
雲パーツデータ952は、上述した雲パーツA用マスク112(図5(b))、雲パーツB用マスク114(図6(b))、を含む雲パーツに係るデータである。この雲パーツデータ952は、ゲーム開始時に初期設定部616により、設定される。なお、予め、記憶部500に初期データ950として記憶されていることとしても良い。
【0226】
画像生成部630の小雲描画部632は、ゲームプログラム910に含まれる小雲生成プログラム912に従って、上述した1−(1)小雲生成原理を実行する処理部であり、仮想カメラ100のピッチ角Xと、初期データ950に含まれる雲パーツデータ952、気流テクスチャ104に基づいて雲パーツA(122)(図5(a))、雲パーツB(124)(図6(a))の各テクセルのα値を設定し、αテクスチャである小雲テクスチャ102を生成し、一時記憶部800内の小雲バッファ802に格納する処理を行う機能部である。
【0227】
2−(2)中雲生成処理機能
中雲生成部612は、中雲作成プログラム914に従って、中雲座標系における雲視点220と投影スクリーン22の配置位置を決定する処理を実行する。即ち、中雲生成部612は、ゲーム演算部610からワールド座標系における仮想カメラ100の視線ベクトルが入力されると、中雲座標系における雲視点220と投影スクリーン22の配置位置を決定する。そして、決定した雲視点220と投影スクリーン22の座標データを画像生成部630の中雲描画部634に出力する。
【0228】
中雲描画部634は、雲視点220と投影スクリーン22の座標データが中雲生成部612から入力されると、中雲座標系における各小雲ビルボードの代表点の座標を雲視点220の視点座標系に変換するための回転行列と、雲視点220に基づいて投影スクリーン22上に投影変換するための透視変換行列とを生成する。そして、初期設定部616によりゲーム開始時に設定され記憶部900に記憶された各中雲の小雲分布データ210(図13)を読み出して、各小雲ビルボードの座標データに対して生成した行列を作用させることによって、各小雲ビルボードを投影スクリーン22上に投影する。
【0229】
また、中雲描画部634には、α値描画部636、色決定部638が含まれる。α値描画部636は、各中雲を構成する32個の小雲ビルボードのα値を描画する処理を実行する。即ち、投影スクリーン22における各小雲ビルボードの各頂点の座標を決定すると、中雲バッファ804上の対応するテクセルを判定し、各頂点によって囲まれた範囲内のテクセルのαプレーンに対して、小雲テクスチャ102のαテクスチャを描画する。
【0230】
色決定部638は、中雲に与える色を決定する処理を実行する。即ち、色決定部638は、投影スクリーン22(実際には、対応するオブジェクト空間上の中雲ビルボード)上の9つの特定点に与える色を決定すると共に、中雲バッファ804の全てのテクセルに対して与える色を各特定点の色に基づいて決定する処理を行う。具体的には、色決定部638は、図32に示すような、特定点色データ806を生成する。特定点色データ806とは、各特定点と対応付けて色情報を記憶するためのものであり、一時記憶部800内に格納される。
【0231】
即ち、色決定部638は、投影スクリーン22(実際には、対応するオブジェクト空間上の中雲ビルボード)における9つの特定点の法線ベクトルを算出すると、光線ベクトルとの内積ωを計算する。そして、算出した内積ωの値を関数データ930に格納されている式(8)に代入して色データ928に格納された明色、ベース色、影色の3色の輝度を決定し、決定した輝度を関数データ930に格納されている式(7)に代入することにより、該当する特定点の色を決定する。そして、決定した各特定点の色情報を特定点色データ806として一時記憶部800に記憶する。また、α値描画部636が32個の小雲ビルボードのα値を描画終了後、生成した特定点色データ806に基づいて、中雲バッファ804内の各テクセルのRGBプレーンに与える色情報を決定する。なお、各テクセルに与える色を決定する処理は、各特定点間の色を線形補間することにより決定する。
【0232】
2−(3)雲海生成処理機能
雲海生成部618は、雲海作成プログラム916に基づいて雲海をオブジェクト空間に生成する処理を行なうものであり、雲設定領域決定部620と、中雲配置部614と、不透明度設定部622と、描画対象設定部624とを含む。雲設定領域決定部620は、ゲーム演算部210により設定された仮想カメラ100の位置、視線方向に基づいて、仮想カメラ100の位置から視線方向に距離dの位置を決定し、その位置を中心点FPWとする一辺長2Lの立方体を雲設定領域Rとして決定する。また、雲設定領域決定部620は、仮想カメラ100の位置から視線方向に距離dfの位置を決定し、その位置を中心点FfPWとする一辺長2Lfの立方体を遠景雲設定領域Rfとして決定する。
【0233】
図33は、中雲分布データ956のデータ構成の一例を示す図である。同図に示すように、雲設定領域R内に設定する雲の数n分の"i"に対する初期分布Ct[i].x、Ct[i].y、Ct[i].zの値と、中雲ビルボードの大きさW[i]と、中雲生成処理機能により生成される4種類の中雲ビルボードに付された中雲ビルボード種類番号b1〜b4の内のいずれかがビルボード種類番号として設定されている。
【0234】
Ct[i].x、Ct[i].zは、それぞれ"0"から"2L−1"までの乱数が設定され、Ct[i].yは、"−1"から"+1"までの乱数が設定されている。例えば、図33においては、"i"が"1"に対するCt[i].x(即ちCt[1].x)は"110"、Ct[i].y(即ちCt[1].y)は"0"、Ct[i].z(即ちCt[1].z)は"124"である。また、"i"が"1"に対する大きさW[i](即ちW[1])は、"1.1"に設定されており、ビルボード種類番号として"b1"が設定されている。即ち、後述する中雲配置部614がi=1に対して設定する配置位置CL[1]には中雲ビルボード種類番号b1の中雲ビルボードが大きさ"1.1"で配置されることとなる。
【0235】
図34は、雲層データ926のデータ構成の一例を示す図である。同図に示すように、雲層データ926は、オブジェクト空間に設定される雲層のそれぞれの層に対する高さ(ワールド座標系における雲層の中心のy座標の値)Alt、幅Altwが設定されている。本実施の形態においては、層1、層2の2つの雲層をオブジェクト空間に設定することとしているため、図34に示す雲層データ926においては、層1、層2に対する高さAlt、幅Altwが設定されているが、オブジェクト空間に設定される雲層の数は、1つでも良く、また3つ以上であっても良い。その場合には、雲層データ926には、オブジェクト空間に設定される雲層それぞれに対する高さAlt、幅Altwが設定される。
【0236】
中雲配置部614は、記憶部900に記憶された雲層データ926、初期設定部616により設定された中雲分布データ956に基づいて、上述した、式(9)、(10)、(11)に従って雲設定領域Rの中心点FPWを原点とする雲海座標系における雲の配置位置CL[i](i=1〜n)の座標を設定する。また、遠景雲設定領域Rfの中心点FfPWを原点とする遠景雲海座標系における雲の配置位置CL[i](i=1〜n)の座標も同様に設定する。
【0237】
また、中雲配置部614は、設定した(雲海座標系の)配置位置CL[i]の値に基づいて、オブジェクト空間(ワールド座標系)に中雲ビルボードを配置する。即ち、雲設定領域Rの中心点をワールド座標系の点FPWとした場合の座標位置に、配置位置CL[i]を変換する。そして、初期分布データに設定されているビルボードの種類に従った中雲ビルボードを大きさW[i]で、視点方向に正対させて配置する。また、設定した配置位置CL[i]が雲設定領域R外であった場合には、その配置位置には、中雲ビルボードを配置しない。
【0238】
また、中雲配置部614は、遠景雲設定領域Rfに対して設定した配置位置CL[i]の値に基づいて、雲オブジェクトをワールド座標系において水平に配置する。雲オブジェクトとしては、例えば、中雲ビルボードのビルボード処理を省いたもの、即ち、ビルボードではなく、通常の(ビルボード処理を行なわない)平面状の1枚のポリゴンに中雲生成処理において生成された中雲テクスチャをマッピングしたものである。
【0239】
このように、中雲配置部614は、中雲ビルボードを配置するが、配置する中雲ビルボードの上下左右の向きは固定的で良い。何故ならば、中雲生成部612及び中雲描画部634により、仮想カメラ100のロール角Zに応じた中雲テクスチャが生成されるため、中雲配置部614はその生成された中雲テクスチャの配置位置のみを設定して配置すれば良い。
【0240】
不透明度設定部622は、中雲配置部614が設定した中雲ビルボードの配置位置と仮想カメラ100との距離Sz[i]に基づいて、上述した式(12)に従って、中雲ビルボードの配置位置それぞれに対するα値を設定し、描画対象設定データ810に格納する。
【0241】
更に、不透明度設定部622は、記憶部900に記憶された雲分布マップ924に基づいて、中雲ビルボードの配置位置(中雲配置部614によりワールド座標系に変換された配置位置)に対応する雲分布マップ924(図30)に設定されているα値を描画対象設定データ810に設定されているα値に掛け合わせ、描画対象設定データ810のα値を更新する。
【0242】
図35は、描画対象設定データ810のデータ構成の一例を示す図である。ここでは、説明を簡明にするため、雲設定領域Rに配置する雲に対する描画対象設定データ932のみを図示するが、描画対象設定データ810としては、同様に、遠景雲設定領域Rfに配置される雲に対する描画対象設定データ810も設定される。
【0243】
図35に示すように、中雲配置部614により決定された配置位置CL[i]に対してα値及び描画フラグが設定されている。α値は、不透明度設定部622が設定したα値が格納される。描画フラグは、各フレームに対する処理開始時に"0"にリセットされ、描画対象となるもののみ後述する描画対象設定部624により"1"に設定される。また、この描画対象設定データ810の配置位置CL[i]には、雲設定領域Rまたは遠景雲設定領域Rfの内部に存在する配置位置のみが設定されている。即ち、中雲配置部614により配置される中雲ビルボードまたは雲オブジェクトに対してのみ、α値及び描画フラグが設定されることとなる。
【0244】
雲分布マップ924は、図30に示すようなオブジェクト空間全体の雲の分布を示すマップであり、記憶部900は、雲層それぞれに対する雲分布マップ924を格納している。また、この雲分布マップ924は、雲の不透明度αの分布を示すものでもあり、雲のある(図中白い)部分はα値が"1"に設定されており、雲のない(図中黒い)部分は、α値が"0"に設定されている。
【0245】
描画対象設定部624は、描画対象設定データ810に不透明度設定部622が設定したα値が"0"でない中雲ビルボードを描画対象として設定する。即ち、透明な中雲ビルボードは描画されないこととなる。具体的には、描画対象設定データ810において、α値が"0"でない配置位置CL[i]に対する描画フラグを"1"に設定する。即ち、画像生成部は、オブジェクト空間に配置された中雲ビルボードの内、描画フラグが"1"に設定された配置位置CL[i]に配置された中雲ビルボードのみを描画する。
【0246】
雲海描画部640は、ワールド座標系に配置された中雲ビルボード及び雲オブジェクトをスクリーン座標系に座標変換し、不透明度設定部622により設定された描画対象設定データ810に設定された不透明度α及び中雲バッファ804のαプレーンに設定されているα値、中雲バッファ804のRGBプレーンに設定された輝度(色)、等に基づいて、色情報等を決定して画像を生成する、(即ちフレームバッファ808の各画素の値を設定する)。その際に、描画対象設定データ810において描画フラグが"1"に設定されている配置位置CL[i]に配置される中雲ビルボードと雲オブジェクトに対してのみ処理を行なう。
【0247】
3.動作
次に本実施の形態における雲生成処理の動作について説明する。図36は、雲生成処理の動作の一例を示すフローチャートである。
【0248】
まず、初期設定部616がゲーム開始時に初期データ950を設定する初期設定処理を実行する(ステップS0)。そして、小雲描画部632がステップS0において設定された初期データ950に基づいて小雲生成処理を行ない、小雲テクスチャ102を生成する(ステップS1)。
【0249】
中雲生成部612及び中雲描画部634はステップS0において設定された初期データ950及びステップS1において生成された小雲テクスチャ102に基づいて中雲生成処理を行い、中雲テクスチャを生成する(ステップS2)。そして、雲海生成部618及び雲海描画部640は、ステップS0において設定された初期データ950及びステップS2において生成された中雲テクスチャに基づいて雲海生成処理を行ない、雲海を含む1フレーム分の画像を生成する(ステップS3)。そして、ステップS1に戻り、ステップS1〜S3の処理を毎フレーム行ない、ゲーム画像(動画)を生成することとなる。
【0250】
図37は、初期設定処理(図36;ステップS0)の動作の一例を示すフローチャートである。
【0251】
まず、初期設定部616は、初期データ950として雲パーツデータ952を生成し、雲の形状を決定する(ステップS0−1)。そして、初期設定部616は、中雲生成処理において、小雲を配置する際の分布データである小雲分布データ210を生成する。(ステップS0−2)。そして、雲海生成処理において中雲を配置する際の分布データとなる中雲分布データ956を生成して(ステップS0−3)、処理を終了する。
【0252】
図38は、本実施の形態における小雲生成処理(図36;ステップS1)の動作について説明するフローチャートである。
【0253】
図38において、まず、小雲描画部632は、小雲テクスチャ102のCα[n,m]をクリアする("0"に戻す)とともに、式(1)を用いて雲パーツA(122),B(124)に雲パーツデータ952に設定されている雲パーツA用マスク112と雲パーツB用マスク114のビットパターンの値を加算して、雲パーツA(122)、Bのα値を初期状態に戻す(ステップS1−1)。
【0254】
次に、小雲描画部632は、現時点の仮想カメラのピッチ角Xを取得すると(ステップS1−2)、雲パーツA(122)または雲パーツB(124)を特定して以下の処理を行う(以下雲パーツA(122)を特定したこととする。)。即ち、特定した雲パーツA(122)を構成するテクセル[n,m]について、α値が"0"であるか否かを判別する(ステップS1−3)。α値が"0"でなければ(ステップS1−3:YES)、気流テクスチャ104の対応するテクセルのα[n,m]と上記取得したピッチ角Xとを式(2)に代入することにより、αA[n,m]の値を求める(ステップS1−4)。
【0255】
そして、この求めたαA[n,m]の値を、小雲テクスチャ102の対応するテクセル[n,m]のα値に加算する(ステップS4)。この加算の結果、小雲テクスチャ102のα値が"1"を超えた場合には、そのテクセルのα値は"1"とする。
【0256】
また、上記雲パーツA(122)のテクセル[n,m]のα値が"0"である場合には(ステップS1−3:NO)、ステップS1−4およびステップS1−5の処理をスキップして、ステップS1−6に移行する。
【0257】
このように、小雲描画部632は、雲パーツA(122)を構成する全てのテクセルについて、上記ステップS1−3〜S1−5の処理を実行して、小雲テクスチャ102の対応するテクセルの不透明度αを決定すると(ステップS1−6:YES)、続いて、雲パーツB(124)についても、同様の処理(ステップS1−3〜S1−6)を行う。
【0258】
そして、雲パーツA(122)及びB(124)について、上記ステップS1−3〜S1−6の処理を実行したことを確認すると(ステップS1−7:YES)、小雲描画部632は、本処理を終了する。
【0259】
以上の処理により、雲パーツA(122),B(124)、及び気流テクスチャ104を合成し、小雲テクスチャ102が生成されることとなる。
【0260】
尚、気流テクスチャ104は、上述した通りアニメーションであるため、時間の経過に応じて、気流テクスチャ104を構成する各テクセルの不透明度の値α[n,m]が変化する。このため、小雲テクスチャ102には気流の様子が表現されることとなる。
【0261】
図39は、中雲生成処理(図36;ステップS2)の動作の一例を示すフローチャートである。
【0262】
中雲生成部612は、ワールド座標系における仮想カメラ100の視線ベクトルに基づいて、中雲座標系における雲視点220と投影スクリーン22の配置位置を決定する(ステップS2−1)。中雲描画部634は、中雲座標系に配置された投影スクリーン22(実際には、対応するオブジェクト空間上の中雲ビルボード)における9つの特定点の法線ベクトルを算出し、各特定点の色を決定して、特定点色データ806を生成する(ステップS2−2)。また、中雲描画部634は、中雲座標系における雲視点220の座標に基づいて、ローカルマトリクスを生成する(ステップS2−3)。即ち、各小雲ビルボードを雲視点220の視点座標系に変換するための回転行列と、雲視点220と投影スクリーン22との距離に基づく透視変換行列を生成する。
【0263】
そして、中雲描画部634は、初期設定処理(図37)により設定された小雲分布データ210内に記憶された128(32×4)個の小雲ビルボードのコードの中から1つを選択し(ステップS2−4)、ステップS2−3で生成した行列を作用することによって、投影スクリーン22上に投影変換する。そして、α値描画部636が当該小雲ビルボードのα値を中雲バッファ804上のαプレーンに描画する(ステップS2−5)。中雲描画部634は、当該中雲バッファ804の描画処理が終了すると、32個の小雲ビルボードについて処理を実行したか否かを判別する(ステップS2−6)。終了していない場合には、ステップS2−4に戻り、次の小雲ビルボードのコードを選択してα値を描画する(ステップS2−4〜S2−5)。
【0264】
一方、ステップS2−6において、32個の小雲ビルボードの処理が終了したものと判別した場合には、色決定部638が、ステップS2−2において生成された特定点色データ806に基づいて、中雲バッファ804のRGBプレーンに色を描画する処理を実行する(ステップS2−7)。中雲バッファ804の全てのテクセルについて色を与える処理が終了した後、中雲描画部634は、4つの中雲について処理が終了したかを判別し(ステップS2−8)、終了していない場合には、ステップS2−4に移行して、次の中雲の描画処理を実行する。ステップS2−8において、4つの中雲について処理が終了した場合には、本処理を終了する。
【0265】
次に、雲海生成処理(図36;ステップS3)の動作について説明する。図40は、本実施の形態における雲海生成処理の動作の一例を示すフローチャートである。
【0266】
まず、雲設定領域決定部620が仮想カメラ100の位置、視線方向に基づいて雲設定領域Rを設定する(ステップS3−1)。次いで、雲海描画部640が仮想カメラ100の位置、視線方向に基づいて、ワールド座標系からスクリーン座標系への座標変換のためのマトリクスを生成しておく(ステップS3−2)。
【0267】
そして、中雲配置部614がi=1について式(9)〜(11)に従って、雲層データ926、中雲分布データ956に基づいて雲設定領域Rの中心点を原点とした雲海座標系における座標として中雲ビルボードの配置位置CL[i]を設定し(ステップS3−3,S3−4)、その配置位置CL[i]に対応する、ワールド座標系における配置位置にサイズW[i]の中雲ビルボードを配置する(ステップS3−5)。そして、配置された中雲ビルボードをステップS3−2において生成されたマトリクスに従って、雲海描画部640がスクリーン座標に座標変換する(ステップS3−6)。
【0268】
また、不透明度設定部622が式(12)に従って、仮想カメラ100から配置位置までの距離Sz[i]に応じた中雲ビルボードのα値を設定し(ステップS3−7)、雲分布マップ924に従って、更に中雲ビルボードのα値を設定する(ステップS3−8)。そして、描画対象設定部624が中雲ビルボードが透明(α=0)か否かを判別し(ステップS3−9)、透明である場合には、描画対象設定データ810の描画フラグを"0"のままにしてステップS3−11に移行する。
【0269】
透明でない場合には、描画対象として設定し、即ち、ステップS3−5において設定された配置位置CL[i]に対する描画フラグを"1"に設定し(ステップS3−10)、ステップS3−11に移行する。
【0270】
ステップS3−11において、中雲配置部614は、i≧nか否かを判別する。"i"がnより小さい場合には、"i"の値を"i+1"に更新して(ステップS3−12)、ステップS3−4に戻り、以降ステップS3−11までの処理を繰り返す。"i"がn以上になったと判別した場合には、雲層データ926に設定されている全ての雲層に対して中雲ビルボードの配置位置の設定を行なったか否かを判別し(ステップS3−13)、行なっていない雲層がある場合には、ステップS3−3に戻り、行なっていない雲層に対して、ステップS3−3〜S3−13までの処理を繰り返す。
【0271】
そして、オブジェクト空間に設定されている全ての雲層に対して処理が終了した場合には、遠景雲設定領域Rfに対してもステップS3−2〜S3−14と同様の処理を行なう。即ち、雲設定領域Rを設定し、配置する雲オブジェクト数分、雲オブジェクトの配置位置を設定して配置し、配置された雲オブジェクトをスクリーン座標系に変換し、不透明度αを設定し、透明でないもののみを描画対象とする処理を繰り返し、更に、オブジェクト空間に設定されている全ての雲層に対して処理を行なう(ステップS3−14)。
【0272】
そして、雲海描画部640が描画対象設定データ810において描画フラグが"1"に設定されている配置位置に配置される中雲ビルボード、雲オブジェクトのみを中雲バッファ804に設定されている色、不透明度等に基づいて描画して(ステップS3−16)、処理を終了する。
【0273】
次に、本実施の形態を実現できるハードウェアの構成の一例について図41を用いて説明する。同図に示す装置では、CPU1000、ROM1002、RAM1004、情報記憶媒体1006、音生成IC1008、画像生成IC1010、I/Oポート1012、1014が、システムバス1016により相互にデータ入出力可能に接続されている。そして画像生成IC1010には表示装置1018が接続され、音生成IC1008にはスピーカ1020が接続され、I/Oポート1012にはコントロール装置1022が接続され、I/Oポート1014には通信装置1024が接続されている。
【0274】
情報記憶媒体1006は、プログラム、表示物を表現するための画像データ、音データ、プレイデータ等が主に格納されるものであり、図31における記憶部900に相当する。例えば本実施の形態を実現するものがコンピュータである場合には、ゲームプログラム等を格納する情報記憶媒体としてCD−ROM、DVD等が、家庭用ゲーム装置である場合には、これらの他にゲームカセット等が用いられる。また業務用ゲーム装置として実現する場合には、ROM等のメモリやハードディスクが用いられ、この場合には情報記憶媒体1006はROM1002になる。
【0275】
コントロール装置1022はゲームコントローラ、操作パネル等に相当するものであり、ユーザーがゲームの進行に応じて行なう判断の結果を装置本体に入力するための装置である。このコントロール装置1022は、図31における操作部500に相当する。
【0276】
情報記憶媒体1006に格納されるプログラム、ROM1002に格納されるシステムプログラム(装置本体の初期化情報等)、コントロール装置1022から入力される信号等に従って、CPU1000は装置全体の制御や各種データ処理を行う。RAM1004はこのCPU1000の作業領域等として用いられる記憶手段であり、情報記憶媒体1006やROM1002の所与の内容、あるいはCPU1000の演算結果等が格納される。
【0277】
更に、この装置には音生成IC1008と画像生成IC1010とが設けられていてゲーム音やゲーム画像の好適な出力が行えるようになっている。音生成IC1008は情報記憶媒体1006やROM1002に記憶される情報に基づいて効果音やBGM音楽等のゲーム音を生成する集積回路であり、生成されたゲーム音はスピーカ1020によって出力される。また、画像生成IC1010は、RAM1004、ROM1002、情報記憶媒体1006等から送られる画像情報に基づいて表示装置1018に出力するための画素情報を生成する集積回路である。また表示装置1018は、CRT、LCD、TV、プラズマディスプレイ、液晶プラズマディスプレイ、プロジェクター等により実現される。この表示装置1018は、図31に示す表示部700に相当する。
【0278】
また、通信装置1024は装置内部で利用される各種の情報を外部とやりとりするものであり、他の装置と接続されてゲームプログラム等に応じた所与の情報を送受したり、通信回線を介してゲームプログラム等の情報を送受すること等に利用される。
【0279】
そして、図1〜図35を参照して説明した種々の処理は、図36〜図40のフローチャートに示した処理等を行うプログラムを格納した情報記憶媒体1006と、該プログラムに従って動作するCPU1000、画像生成IC1010、音生成IC1008等によって実現される。なお画像生成IC1010等で行われる処理は、CPU1000あるいは汎用のDSP等によりソフトウェア的に行うこととしてもよい。
【0280】
図42に、ホスト装置1300と、このホスト装置1300と通信回線1302を介して接続される端末1304−1〜1304−nとを含むゲーム装置に本実施の形態を適用した場合の例を示す。
【0281】
この場合、ゲームプログラム510、気流テクスチャ104、初期データ952、雲分布マップ924、雲層データ926、色データ928、関数データ930は、例えば、ホスト装置1300が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体1306に格納されている。以下、この情報記憶媒体1306に格納されている情報を格納情報という。端末1304−1〜1304−nが、CPU、画像生成IC、音生成ICを有し、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置1300からは、格納情報が通信回線1302を介して端末1304−1〜1304−nに配信される。一方、スタンドアロンで生成できない場合には、ホスト装置1300がゲーム画像、ゲーム音を生成し、これを端末1304−1〜1304−nに伝送し、端末において出力することになる。
【0282】
以上のように、本発明によれば、小雲生成処理により、雲パーツA(122)と雲パーツB(124)とを仮想カメラ100のピッチ角Xに応じて合成することとしたため、単純な手法ながらも立体感のある雲を表現することができる。
【0283】
更に中雲生成処理により、中雲を観察する仮想カメラ100の位置に対応して形状が変化する立体的な中雲を表現することができる。即ち、仮想カメラ100から中雲を見る角度が変化しても、中雲の形状に矛盾が生じず、見ていて違和感のない画像を生成することができる。
【0284】
また、小雲テクスチャ102に施された気流の表現は、結果的に、中雲テクスチャの縁のみに反映されるように見えるため、よりリアルな雲を表現することができる。
【0285】
また、更に雲海生成処理により、雲海を違和感なく、立体的に表現することができる。また、仮想カメラ100の視界内(雲設定領域R内)のみ中雲ビルボードを配置すれば良いため、雲海の画像生成に係る処理の軽減を図ることができる。
【0286】
なお、本発明は、上記実施の形態で説明したものに限らず、種々の変形実施が可能である。例えば、上記実施の形態においては、中雲生成時の初期設定において、中雲座標系における原点に偏らせて小雲ビルボードを分布することとして説明したが、他の位置であってもかまわない。すなわち、式(5)において、各4つの乱数の平均から(Rmax−Rmin)/2を減算することとして説明したが、各成分毎に適当な値を減算(あるいは、加算)することによって、中雲座標系における小雲ビルボードの集合体の分布位置を変更してもよい。
【0287】
あるいは、図43に示すように、小雲ビルボードの分布をいくつかに分散してもよい。すなわち、32個の小雲ビルボードをいくつかに分割し、各集合体毎に異なる分布の中心点の座標(すなわち、分布の偏りの位置)を与えることとしてもよい。このように、1つの中雲における小雲ビルボードの分布をいくつかに分散させることによって、図44(a)に示すような横長な中雲や、(b)に示すような複雑な形状の中雲等を生成することができる。
【0288】
また、例えば、上記実施の形態においては、遠景雲設定処理においても、雲設定領域R内と同数nの雲を設定することとしたが、遠景雲設定領域Rfに配置される雲は仮想カメラ100から遠いため、あまり精細なモデルである必要がないため、例えば、設定する雲の数を少なくし、一つ一つの雲オブジェクトを大きくして配置することにより、処理の軽減を図ることとしても良い。
【0289】
また、雲オブジェクトを中雲テクスチャをマッピングしたペラポリゴンとしたが、遠景であるため、より単純な雲テクスチャをマッピングして雲オブジェクトを生成することとしても良い。その場合、予め、遠景用の雲テクスチャを記憶部900に格納しておくこととしても良い。
【0290】
また、例えば、図30に示した雲分布マップ924は、時間経過とともに、雲のある部分とない部分との分布を変化させることとしても良い。その場合には、時間経過とともに雲が流れ、分布が変化する様子を表現することができる。
【0291】
また、層の幅ALtwを雲層毎に固定値として設定していたが、例えば、層の幅ALtwを位置的に変化させることとしても良い。即ち、雲層の厚い部分と薄い部分とを設定することとしても良い。また、例えば、積乱雲のように時間経過とともに発達していくような雲の場合には、雲層の一部の厚みが時間経過とともに厚くなるため、更に時間的に層の幅ALtwを変化させることとしても良い。
【0292】
また、上記実施の形態においては、飛行機ゲームを例にとって説明したが、プレーヤが操作(操縦)するものは、飛行機に限らず、例えば、ヘリコプターなどであっても勿論良い。
【0293】
また、上記実施の形態においては、家庭用ゲーム装置を例にとって説明したが、本発明の適用は、これに限らず、例えば、携帯型のゲーム装置や業務用ゲーム装置であっても良い。また、例えば、パーソナル・コンピュータ、PDA、携帯型電話機等のゲーム装置以外のコンピュータ装置であっても良い。
【0294】
【発明の効果】
本発明によれば、仮想カメラの位置、視線方向の変化に対して矛盾がなく、且つ立体感のある雲の表現が可能となる。
【図面の簡単な説明】
【図1】本発明を家庭用のゲーム装置に適用した場合の一例を示す図である。
【図2】(a)仮想カメラと小雲テクスチャとの関係、(b)仮想カメラ角度、を説明する図である。
【図3】小雲テクスチャの合成の概念を示す図である。
【図4】小雲テクスチャの一例を示す図である。
【図5】雲パーツA及び雲パーツA用マスクの一例を示す図である。
【図6】雲パーツB及び雲パーツB用マスクの一例を示す図である。
【図7】気流テクスチャの一例を示す図である。
【図8】(a)雲パーツA、(b)雲パーツB、(c)気流テクスチャの画像の一例を示す図である。
【図9】仮想カメラのピッチ角Xが(a)X=0°、(b)X=45°、(c)X=90°の場合の小雲テクスチャの一例を示す図である。
【図10】小雲テクスチャの反転する原理を示す図である。
【図11】中雲の画像例を示す図である。
【図12】中雲座標系の一例を示す斜視図である。
【図13】小雲分布データの一例を示す図である。
【図14】(a)中雲座標系における仮想カメラと中雲座標系の原点と投影スクリーンとの位置関係、(b)ワールド座標系と中雲座標系との関係、を示す図である。
【図15】中雲バッファの一例を示す模式図である。
【図16】特定点と特定ベクトルとを説明する図である。
【図17】関数f(ω)のグラフを示す図である。
【図18】(a)FL(ω)、(b)FB(ω)、(c)FS(ω)、の各関数のグラフを示す図である。
【図19】色決定テーブルの一例を示す図である。
【図20】仮想カメラと雲設定領域との関係を示す図である。
【図21】ワールド座標系における雲設定領域の一例を示す図である。
【図22】雲海座標系における雲設定領域の一例を示す図である。
【図23】雲設定領域の移動に伴い中雲ビルボードの配置位置の変化を説明する図である。
【図24】雲設定領域の移動に伴い中雲ビルボードの配置位置の変化を説明する図である。
【図25】雲を含む表示画面の一例を示す図である。
【図26】仮想カメラの視界と雲設定領域との関係の一例を示す図である。
【図27】雲設定領域内の不透明度の分布例を示す図である。
【図28】遠景雲設定領域の一例を示す図である。
【図29】遠景雲設定領域に設定される雲を含む画像の一例を示す図である。
【図30】雲分布マップの一例を示す図である。
【図31】本実施の形態における機能ブロックの一例を示すブロック図である。
【図32】特定点色データ806のデータ構成の一例を示す図である。
【図33】中雲分布データのデータ構成の一例を示す図である。
【図34】雲層データのデータ構成の一例を示す図である。
【図35】描画対象設定データのデータ構成の一例を示す図である。
【図36】本実施の形態における雲生成処理の動作の一例を示すフローチャートである。
【図37】本実施の形態における初期設定処理の動作の一例を示すフローチャートである。
【図38】本実施の形態における小雲生成処理の動作の一例を示すフローチャートである。
【図39】本実施の形態における中雲生成処理の動作の一例を示すフローチャートである。
【図40】本実施の形態における雲海生成処理の動作の一例を示すフローチャートである。
【図41】本実施の形態を実現できるハードウェアの構成の一例を示す図である。
【図42】ホスト装置と通信回線を介して接続されるゲーム端末に本実施の形態を適用した場合の一例を示す図である。
【図43】小雲ビルボードの分布例を示す図である。
【図44】小雲ビルボードの分布例を示す図である。
【符号の説明】
500 操作部
600 処理部
610 ゲーム演算部
612 中雲生成部
616 初期設定部
618 雲海生成部
630 画像生成部
632 小雲描画部
634 中雲描画部
640 雲海描画部
700 表示部
800 一時記憶部
802 小雲バッファ
804 中雲バッファ
806 特定点色データ
808 フレームバッファ
810 描画対象設定データ
900 記憶部
910 ゲームプログラム
950 初期データ
924 雲分布マップ
926 雲層データ
928 色データ
930 関数データ
104 気流テクスチャ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to game information, an information storage medium, and a game device for executing a given game by generating an image of an object space viewed from a virtual camera and displaying the generated image.
[0002]
[Prior art]
Conventionally, when representing a cloud in an image of a video game device or the like, in order to reduce processing, a plurality of cloud objects in which a cloud texture is mapped to a single planar polygon are set horizontally in the object space. And expressed the clouds. However, for example, in a game of maneuvering an airplane, when generating an image viewed from the operator's viewpoint, the virtual camera (viewpoint) may be level with the cloud, and the cloud may not be thick. There was a problem of understanding. Therefore, so-called billboard processing is performed in which the cloud object is always vertically opposed to the viewing direction of the virtual camera.
[0003]
[Problems to be solved by the invention]
However, conventionally, a method has been employed in which a single polygon onto which a cloud texture is mapped is always fixed in the vertical and horizontal positions with respect to the virtual camera and arranged perpendicular to the viewing direction of the virtual camera. For this reason, even if the position of the virtual camera, the line-of-sight direction, and the like change, the cloud does not change at all. Furthermore, for example, when the elevation angle or depression angle in the line-of-sight direction increases, there is a problem that the clouds are inverted and expressed at an angle of ± 90 °. For this reason, there has been a demand for a cloud expression that does not give a sense of incongruity to changes in the position and line-of-sight direction of the virtual camera. In particular, in games, processing related to each frame must be performed within a given time, which increases the processing burden when expressing clouds that do not feel uncomfortable with changes in the position of the virtual camera or the direction of the line of sight. There was also a problem that had to be suppressed.
[0004]
An object of the present invention is to realize a cloud expression that is consistent with changes in the position and line-of-sight direction of a virtual camera.
[0005]
[Means for Solving the Problems]
Hereinafter, means for solving the above-described problem will be described. Before that, the interpretation of important terms “cloudy” and “cloudy object” used throughout this specification will be described.
[0006]
The technology disclosed in this specification is a technology that focuses on how to express “clouds”. However, in the real world, due to the nature of “clouds”, one “cloud” is usually one “cloud” and “small clouds” do not gather together to constitute one “cloud”. Is common. In the field of computer graphics, there is known a method of expressing “clouds” with particle systems (so-called particles). According to this method, “clouds” are a collection of “particles”. It is not a collection of “small clouds”. However, since the present technology does not control each particle (particle), it cannot be said that the unit constituting the “cloud” is “particle”. Therefore, the word “cloudy” is used to indicate that it is an element constituting “cloud” and is a unit.
[0007]
In view of the above, the term “cloudy” is used in this specification to identify the elements constituting the cloud-like object. Therefore, cloud means also includes cloud objects. That is, a cloud-like object (for example, a small cloud or a cloud-like object representing only one side surface), an alternative selection of a plurality of cloud-like objects, or the like is a single cloud-like object (for example, a large cloud). Or a cloud-like object seen from one side). In addition, the meaning of cloud includes an aggregate of a plurality of particles (particles). That is, the component of the cloud object includes a case where a plurality of particles are used as one unit.
[0008]
The “cloud object” means the following. That is, although the technique disclosed in this specification focuses on “clouds”, it means that the present technique is not applicable only to “clouds”. The term “cloud object” means an object such as “smoke”, “mist”, and “haze” that shares an object with “cloud”.
[0009]
The first invention is
An image of the first object space viewed from the first virtual camera (for example, the virtual camera 100 shown in FIG. 2) is generated by calculation and control by the processor, and a given game is executed. For the equipment of
A plurality of types of first cloud particles (for example, cloud part A illustrated in FIG. 3) prepared in advance according to a given angle parameter (for example, pitch angle X illustrated in FIG. 2) of the first virtual camera. (122), the cloud part B (124)) is synthesized at a given ratio according to the current value of the given angle parameter, so that the first virtual camera is added to the first object space. First to generate texture information (for example, the cloud cloud texture 102 shown in FIG. 4) to be reflected on the first cloud object (for example, the cloud cloud billboard in the embodiment) arranged toward the This is game information that can be calculated by the processor for causing the generating means (for example, the cloud drawing unit 632 shown in FIG. 31) to function.
[0010]
Here, the first device may be a computer device or a portable / home / business game device. The given angle parameter is an angle parameter related to the first virtual camera, which is necessary for setting the first virtual camera in the first object space. For example, the given angle parameter of the first virtual camera These are angles such as roll angle, pitch angle, and yaw angle. In addition, in the synthesis process at a given ratio, for example, when there are two first cloud atoms and the synthesis process is performed at a ratio of 1: 0 or 0: 1, that is, This includes the case of switching.
[0011]
According to the first invention, for example, two first cloud elements representing one side surface (for example, the front surface) and the other side surface (for example, the back surface) of the first cloud object are prepared, and the first virtual object is prepared. The first cloud can be switched according to the viewing direction of the camera. That is, since the first cloud object is arranged toward the first virtual camera, for example, the front and back surfaces of the first cloud object can be easily expressed without contradiction.
[0012]
Furthermore, since the texture information reflected in the first cloud object is generated “in accordance with the current value of the angle parameter” of the first virtual camera, the first cloud object is generated in the first object space. Is not necessary to consider the vertical and horizontal directions of the first cloud-like object. That is, for example, when the roll angle of the first virtual camera changes, it is necessary to rotate the first cloud object according to the roll angle, but texture information is generated according to the roll angle. Therefore, the first cloud-like object is simply placed in the first object space (more precisely, the position where the first cloud-like object is placed in the first object space is determined. Only).
[0013]
The second invention is the game information of the first invention,
The first cloud is texture information having color information including at least transparency information (for example, α value in the embodiment),
The first generation unit is configured to synthesize the plurality of types of first cloud particles by adding the color information of the plurality of types of first cloud particles at the given ratio. It is characterized by including information for functioning (for example, formulas (2) and (3) in the embodiment).
[0014]
According to the second aspect of the invention, the synthesis process of the first cloudy may be the sum of the color information. Further, when the color information is only the transparency information, the summation operation of the color information can be more easily completed. That is, for example, if the color of the first cloud-like object is set in advance as “white”, the color of the first cloud-like object to be drawn can be determined simply by calculating the transparency information. it can.
[0015]
The third invention is the game information of the second invention,
Information for causing the first device to function as animation reflecting means for reflecting a given animation (for example, the airflow texture 104 shown in FIG. 7) in the color information of the first cloud element is included. It is characterized by.
[0016]
According to the third aspect of the invention, since the color information of the first cloud changes with time, it is possible to express the state of the airflow.
[0017]
In this case, as in the fourth invention, the game information of the third invention
Information for causing the animation reflecting means to function so as to change at least one of the direction, scale, and portion of the given animation to be reflected in the first cloud is included. Also good.
[0018]
According to the fourth aspect of the invention, since there are a plurality of types of the first cloud, depending on the type, the direction, scale, and part of reflecting the animation (for example, when mapping the animation to the first cloud, By changing the mapping direction for the first cloud and the like, various airflows can be expressed even with one animation.
[0019]
Further, as in the fifth invention, the game information of the third or fourth invention,
The given animation is an animation representing a temporal change of color information including at least transparency information;
Information for causing the animation reflecting means to function so as to determine the color information of the first cloud based on the given animation may be included.
[0020]
According to the fifth aspect, for a given animation, for example, color information periodically changes or only transparency information changes. For example, if the color of the first cloud is determined in advance as “white”, the color when the first cloud is drawn can be determined only by “transparency information”. It is possible to simplify the process of determining the color information of the first cloud.
[0021]
A sixth invention is game information according to any one of the first to fifth inventions,
For the first generating means,
Means for making the given angle parameter an angle parameter of a pitch angle and / or a yaw angle of the first virtual camera;
A plurality of types of first cloud particles prepared in advance according to the value of the angle parameter of the pitch angle and / or the yaw angle of the first virtual camera, and the current angle parameter of the corresponding first virtual camera. Means for synthesizing at a given ratio according to the value;
It is characterized by including information for functioning.
[0022]
According to the sixth aspect of the invention, it is possible to compensate for the drawbacks of the first cloud-like object that is a plate-like body arranged toward the virtual camera. That is, for example, if two first cloud elements of the right side surface and the left side surface of the first cloud object are prepared, the first cloud object is set according to the yaw angle of the first virtual camera. The right side and left side of can be expressed without contradiction. Similarly, for example, if two first cloud elements are prepared on the upper surface and the lower surface of the first cloud object, the first cloud object is set according to the pitch angle of the first virtual camera. The upper surface and lower surface of can be expressed without contradiction.
[0023]
A seventh invention is game information according to any one of the first to sixth inventions,
When there is a first cloud that is prepared in advance according to the pitch angle for the first generation unit, the first cloud is used as the roll angle or yaw angle of the first virtual camera. And when there is a first cloud that is prepared in advance according to the yaw angle, the first cloud is determined according to the roll angle or pitch angle of the first virtual camera. It is characterized in that it includes information for causing the composition processing to be performed by rotating it.
[0024]
According to the seventh aspect of the invention, even if the first cloud is prepared according to one angle parameter among the angle parameters related to the first virtual camera, the rotation is performed according to another angle parameter. Then, the composition process is performed. For example, when two first cloud elements of the right side surface and the left side surface of the first cloud object are prepared according to the yaw angle, of course, the two first cloud elements according to the yaw angle. Is synthesized, but after being rotated according to the roll angle, the synthesis is performed. That is, as described above as the effect of the first invention, the first cloud-like object is simply arranged in the first object space, and therefore there is no contradiction even when the first virtual camera rolls. There is no need to generate texture information. For this reason, even when the first virtual camera rolls by rotating according to the roll angle with respect to the first cloud particles prepared according to the yaw angle or the pitch angle, the first generating means Can generate consistent texture information.
[0025]
The eighth invention is game information of any of the first to seventh inventions,
With respect to the first generation means, at least two types of first cloud particles prepared for the first virtual camera having a pitch angle of the first virtual camera for the horizontal direction and for the vertical direction are obtained from the first virtual camera. In order to function to synthesize a plurality of types of first cloud particles prepared in advance according to the pitch angle of the first virtual camera by performing synthesis processing at a given ratio according to the pitch angle. It is characterized by including information.
[0026]
According to the eighth aspect of the present invention, even when the line-of-sight direction of the first virtual camera relative to the first first cloud-like object changes, that is, when the pitch angle of the first virtual camera changes, It is possible to represent the first cloud object having no contradiction in its shape or the like.
[0027]
And in this case, as in the ninth invention, the game information of the eighth invention,
The first generation means is configured to rotate the first cloud for the horizontal direction and the vertical for the first virtual camera according to a roll angle of the first virtual camera and perform the synthesis process. You may comprise so that the information for making it may be included.
[0028]
According to the ninth aspect, even when the first virtual camera rolls, the first cloud-like object having no contradiction can be expressed without rotating the first cloud-like object itself.
[0029]
Further, in this case, as in the tenth invention, the game information of the eighth or ninth invention,
The vertical first cloud has two types of first cloud corresponding to the case where the pitch angle of the first virtual camera is an elevation angle and a depression angle,
By switching the two types of first cloud included in the first vertical cloud for the first generation unit according to the pitch angle of the first virtual camera, You may comprise so that the information for making it function as it may be set as the said 1st cloudy substance for perpendicular | vertical directions.
[0030]
According to the tenth aspect of the present invention, the first cloud for vertical direction has the first cloud for the case where the pitch angle is an elevation angle and the case of a depression angle, and is switched according to the pitch angle. The upper surface and lower surface of one cloud-like object can be easily expressed without contradiction to its shape and the like.
[0031]
The eleventh invention is game information of any of the eighth to tenth inventions,
The first horizontal cloud for the horizontal direction includes a plurality of types of first cloud corresponding to each angular range obtained by equally dividing the angular range of the yaw angle of the first virtual camera,
By switching the plurality of types of first cloud contained in the first horizontal cloud for the first generation means according to the yaw angle of the first virtual camera, It is characterized by including information for functioning as the first cloud for the horizontal direction.
[0032]
According to the eleventh aspect, even when the line-of-sight direction of the first virtual camera changes with respect to one first cloud-like object, that is, when the yaw angle of the first virtual camera changes, It is possible to represent the first cloud object having no contradiction in its shape or the like.
[0033]
The game information according to the twelfth aspect of the present invention is to generate an image of an object space viewed from a virtual camera (for example, the virtual camera 100 shown in FIG. 2) by calculation and control by a processor and execute a given game. For the device
A cloud-like object (for example, the cloud cloud texture 102 shown in FIG. 2) arranged in the object space is selected from a plurality of types of cloud elements (for example, cloud part A (122) and cloud part B (124) shown in FIG. 3). Means for generating the cloud-like object by switching the plurality of types of cloud elements by a given process when the position or the line-of-sight direction of the virtual camera changes (for example, a small cloud shown in FIG. 31) This is game information that can be calculated by the processor for causing the drawing unit 632) to function.
[0034]
According to the twelfth aspect of the invention, for example, two cloud elements representing one side surface (for example, the front surface) and the other side surface (for example, the back surface) of the cloud object are prepared, It is possible to switch the cloud. That is, even when the line-of-sight direction of the virtual camera changes, it is possible to easily represent the front surface and the back surface of the cloud-like object without contradiction.
[0035]
The thirteenth invention
A second game in which a given game is executed by generating an image of the second object space viewed from a second virtual camera (for example, the virtual camera 100 shown in FIG. 14) by calculation and control by the processor. For the equipment of
Second arrangement means (for example, a plurality of second cloud elements (for example, the cloud clouds Billboards 24-1 to 32 shown in FIG. 14) are arranged in the cloud model space (for example, the middle cloud coordinate system shown in FIG. 14). The cloud generation unit 612) shown in FIG.
By performing perspective transformation on the cloud model space, texture information (for example, implementation) to be reflected in the second cloud object of the plate-like body arranged in the second object space toward the second virtual camera. A second generation unit (for example, a medium cloud drawing unit 634 shown in FIG. 31) for generating a medium cloud texture in the form;
This is game information that can be calculated by the processor.
[0036]
According to the thirteenth aspect, the second cloud-like object arranged in the second object space is a plate-like body, but the second cloud-like object in various aspects can be expressed. This is because the texture information generated by the second generation means reflected on the second cloud-like object is a perspective transformation of the cloud model space in which a plurality of second cloud elements are arranged. This is because various kinds of texture information can be generated depending on the conversion method. Further, according to the present invention, it is possible to distinguish between the process related to the second object space and the process of generating texture information, and the processing load related to the second object space can be reduced. Here, the second device may be a computer device or a portable / home / business game device. The second cloud may be formed of a plate-like body.
[0037]
14th invention is game information of 13th invention,
In conjunction with the second generation means, the second virtual camera and a cloud model virtual camera (for example, a cloud viewpoint 220 shown in FIG. 14) for perspective-transforming the cloud model space, It includes information for causing the cloud model space to function as a perspective transformation based on a cloud model virtual camera.
[0038]
According to the fourteenth aspect of the present invention, since the cloud model virtual camera and the second virtual camera are linked, the second cloud-like object having a plate-like body arranged in the second object space is provided. Can also be expressed without contradiction in shape and the like.
[0039]
15th invention is the game information of 13th or 14th invention,
Information for causing the second arrangement means to function so that the arrangement of the plurality of second cloud particles is a distribution biased to a given range of the cloud model space (for example, implementation It is characterized by including formula (4)) in the form.
[0040]
According to the fifteenth aspect of the present invention, for example, when the color of the second cloud element is “light white”, due to the deviation of the arrangement position of the second cloud element, the “dark color” is given in the given range. It can be expressed as “white”. That is, by giving a bias to the arrangement position in the cloud model space, it is possible to change the shade of the color of the second cloud object.
[0041]
A sixteenth aspect of the present invention is the game information according to any one of the thirteenth to fifteenth aspects of the invention, wherein the size of each second cloud element arranged in the cloud model space with respect to the second arrangement means. The information (for example, Formula (5) in embodiment) in order to function is changed.
[0042]
According to the sixteenth aspect of the present invention, since the size of the second cloud element can be made different even when the arrangement position of the second cloud element is the same in the cloud model space, the generated texture information is different. In other words, the second cloud-like object in various forms can be easily expressed.
[0043]
The seventeenth invention is any one of the thirteenth to sixteenth game information,
A color for determining color information of texture information generated by the second generation unit based on the light source of the second object space and the second cloud-like object with respect to the second device. Information for operating information determining means (for example, the color determining unit 638 shown in FIG. 31) is included.
[0044]
According to the seventeenth aspect, by applying shading processing relating to the light source in the second object space to the texture information, the color information of the second cloud object can be finally expressed without contradiction. . That is, in the second object space, the light source and the second cloud object exist, but texture information reflected on the second cloud object is generated separately. For this reason, by determining the color information of the texture information according to the light source in the second object space and the arrangement state of the second cloud-like object, etc., finally, a realistic and consistent color It is possible to represent the second cloud object.
[0045]
18th invention is game information of 17th invention,
For the color information determining means, the color information of at least two specific points (for example, specific points 22-1 to 9 shown in FIG. 16) in the second cloud object is used as the light source in the second object space. And information for making it function so as to determine the color information of the texture information based on the color information of the specific point.
[0046]
For example, when “cloud” is viewed from the side, normally, the upper side where the sunlight hits is bright and the lower side is dark. However, if there is only one “cloud”, if there are multiple “clouds”, a uniform expression method, such as simply brightening the upper side and darkening the lower side, represents a real cloud. I can't. Therefore, according to the eighteenth aspect of the invention, for example, color information at a plurality of specific points of the second cloud-like object is first obtained, and texture information (that is, ultimately, based on the color information of the specific points) If the color information of the second cloud-like object) is determined, a color corresponding to the arrangement state of the second cloud-like object in the second object space can be expressed.
[0047]
In this case, as in the nineteenth invention, the game information of the eighteenth invention,
A plurality of color information prepared in advance according to the angle of the light source in the light source direction is combined with the color information determination unit at a given ratio according to the angle of the light source in the light source direction at the specific point. By doing so, it is also possible to include information (for example, function data 930 shown in FIG. 31) for functioning to determine the color information of each specific point.
[0048]
Conventionally, the luminance calculation related to the light source is generally performed by adding luminance values. In other words, although it was possible to express a bright color by adding a certain luminance value, the RGB values of “white” which is the maximum luminance are R = 255, G = 255, and B = 255. For this reason, they had to approach “white” gradually. Therefore, the luminance calculation for “cloud” which is “white” was difficult. According to the nineteenth aspect, a plurality of color information (for example, orange, white, and gray) is prepared in advance, and the color information at a specific point is determined according to the light beam direction of the light source. It is possible to easily express “clouds” dyed in color (for example, the upper side is orange).
[0049]
The twentieth invention is game information including game information of any one of the first to eleventh inventions and game information of any of the thirteenth to nineteenth inventions,
The first device and the second device are the same device,
For this device
Means for making the first virtual camera the second virtual camera;
Means for reflecting the texture information generated by the first generation means on the first cloud object;
Means for making the first cloud object the second cloud element;
It contains information for functioning.
[0050]
According to this twentieth invention, it is possible to realize game information having the effect of any one of the first to eleventh inventions and the effect of any one of the thirteenth to nineteenth inventions. . Specifically, for example, generating a first cloud-like object (second cloud) having a plate-like body that is consistent with the line-of-sight direction of the first virtual camera (second virtual camera). And the second cloud-like object in various modes can be expressed.
[0051]
The game information according to the twenty-first aspect of the invention is to generate an image of an object space viewed from a virtual camera (for example, the virtual camera 100 shown in FIG. 14) and execute a given game by calculation and control by a processor. For the device
A plurality of types of cloud elements (for example, the small cloud texture 102 shown in FIG. 3) subjected to a given animation are superimposed to form a cloud-like object (for example, an intermediate cloud building in the embodiment). This is game information that can be calculated by the processor for causing a means (for example, a cloud generation unit 612 and a cloud drawing unit 634 shown in FIG. 31) to function.
[0052]
According to the twenty-first aspect, since a given animation is applied to the cloud, airflow can be expressed. However, in a part where a plurality of cloud particles are superimposed, the given animation is also superimposed. In, airflow is expressed. In other words, for example, when the cloud object is expressed with a bias near the center of the cloud-like object, the air current near the center cannot be visually recognized, but the air current at the periphery can be visually recognized, and more realistic clouds can be seen. Can be expressed.
[0053]
According to the game information of the twenty-second invention, an image of the third object space viewed from a third virtual camera (for example, the virtual camera 100 shown in FIG. 20) is generated by calculation and control by a processor, and given game For the third device that will run the game,
Arrangement position determining means for determining the arrangement position of a plurality of third cloud elements (for example, a medium cloud billboard in the embodiment) arranged in the third object space by developing a given arrangement position repeating pattern. For example, the middle cloud arrangement unit 614) shown in FIG.
Third arrangement means for arranging the third cloud of the plate-like body at the arrangement position determined by the arrangement position determination means (for example, the middle cloud arrangement unit 614 shown in FIG. 31);
Opposing placement means (for example, a middle cloud placement portion 614 shown in FIG. 31) for directing the third cloud in a given direction with respect to the third virtual camera;
This is game information that can be calculated by the processor.
[0054]
Here, the third device may be a computer device or a portable / home / business game device. The given arrangement position repeating pattern is a pattern of arrangement positions in a unit region where the arrangement position of the third cloud is determined. For example, this pattern is expressed as 2 × 2 × height 2 By disposing (developing), it is possible to determine the arrangement position of the third cloud element in an area that is eight times as large as the unit area (= 2 × 2 × 2).
[0055]
In other words, the arrangement position of the third cloud in an arbitrary area of the third object space can be determined by the development of this pattern. That is, according to the twenty-second aspect, it is possible to easily determine the arrangement position of the third cloud in the third object space. For example, when the size of the arrangement position repeating pattern (the size of the unit area) is substantially the same as the field of view of the third virtual camera, and the third virtual camera is panned to the right, it can be seen from the left side of the field of view. The missing third cloud will appear from the right side of the field of view. That is, it is possible to determine the arrangement positions of the third cloud space in the entire third object space only by the arrangement position repetition pattern. In addition, since the third cloud is a plate-like cloud, the processing load related to image generation in the third object space can be reduced.
[0056]
The 23rd invention is game information of the 22nd invention,
Means for causing the third device to function as a cloud formation layer (for example, a middle cloud placement unit 614 shown in FIG. 31) at a given altitude in the third object space. Information (for example, cloud layer data 926 shown in FIG. 31);
Information for causing the third placement means to function to place the third cloudy in the cloudy placement layer (for example, Formula (11) in the embodiment);
It is characterized by including.
[0057]
According to the twenty-third aspect, the cloudy arrangement layer in which the third cloud element is arranged can be set in the third object space, and the third cloudy element is arranged in addition to the cloudy arrangement layer. There is nothing to do. Accordingly, it is possible to control the altitude at which the third cloud is arranged in the third object space. In addition, you may comprise so that the thickness of a cloud arrangement | positioning layer can be set. In that case, for example, a sardine cloud can be expressed by making the layer thin, or a cumulonimbus cloud can be expressed by making the layer thick.
[0058]
24th invention is game information of 22nd or 23rd invention,
Based on the distance from the third virtual camera (for example, the distance d in the embodiment) to the third device, a third cloud arrangement region (for example, a cloud setting region R shown in FIG. 20). ) Information for causing the third cloud region setting means (for example, the cloud setting region determination unit 620 shown in FIG. 31) to function,
Information for causing the third placement means to function so as to place the third cloudy within the third cloudy placement region;
It is characterized by including.
[0059]
According to the twenty-fourth aspect, for example, by setting the third cloudy arrangement region only within the visual field of the virtual camera, it is possible to reduce the processing for the third cloudy outside the visual field.
[0060]
A twenty-fifth aspect of the present invention is the game information according to any one of the twenty-second to twenty-fourth aspects of the present invention, wherein the third device corresponds to the third cloudy arrangement position in the third object space. Information for causing the third cloudy transparency setting means (for example, the opacity setting unit 622 shown in FIG. 31) to set the transparency of each third cloudy element is included.
[0061]
According to the twenty-fifth aspect, for example, the density of a cloud can be changed according to the arrangement position of the cloud. As a method for further embodying the present invention, for example, there are a 26th invention and a 27th invention.
[0062]
For example, as in the 26th invention, the game information of the 25th invention,
Based on a cloud distribution map (for example, cloud distribution map 924 shown in FIG. 30) indicating whether or not a cloud exists in the third object space with respect to the third cloud transparency setting means, It is good also as including the information for making it function so that the transparency of a cloud element may be set.
[0063]
According to the twenty-sixth aspect, since the transparency of the third cloud element is set according to the cloud distribution map, the display / non-display of the cloud over the entire third object space can be managed. That is, the arrangement position of the third cloud is determined by the twenty-second invention, but whether or not it is actually expressed (more precisely, whether or not the color of the third cloud is drawn). ) Is determined according to the cloud distribution map.
[0064]
Further, as in the 27th invention, the game information of the 25th or 26th invention,
The third cloudy transparency setting means functions to set the transparency of each third cloudy based on the distance from the third virtual camera to each third cloudy. It is good also as including the information (For example, Formula (12) in embodiment) for making it do.
[0065]
According to the twenty-seventh aspect, for example, by setting so as to increase the transparency of the third cloud element arranged close to the third virtual camera, the visibility from the third virtual camera is improved, and the game The operability in can be improved.
[0066]
The 28th invention is game information of the 24th invention,
For the third device,
A fourth cloud element that sets a fourth cloud element arrangement area (for example, the distant view cloud setting area Rf in the embodiment) at a distance from the third virtual camera far from the third cloud element arrangement area. Area setting means (for example, a cloud setting area determination unit 620 shown in FIG. 31);
A fourth placement means (for example, a middle cloud placement section 614 shown in FIG. 31) for placing a plurality of plate-like fourth cloudy bodies in a substantially horizontal manner in the fourth cloud placement region;
It contains information for functioning.
[0067]
According to the twenty-fourth aspect of the invention, the third cloud arrangement region is set. However, when the peripheral edge of the third cloud particle arrangement region is included in the field of view of the third virtual camera, a contradiction may occur. In other words, in the field of view of the third virtual camera, the third cloud element is arranged in the third cloud element arrangement region, but no cloud element is arranged in the area beyond the range. The peripheral edge of the third cloud element arrangement region is known to the user, and the immersive feeling for the game can be impaired. Therefore, as in the twenty-eighth aspect of the invention, the above-described problem can be solved by setting the fourth cloudy arrangement area far from the third cloudy arrangement area. Here, in the third virtual camera, since the fourth cloud element arrangement region is farther than the third cloud element arrangement region, it is difficult for the user to recognize the simplified expression of the cloud element. Therefore, in the fourth cloud particle arrangement region, it is possible to simplify the processing only by arranging the plate-like fourth cloud particles in a substantially horizontal shape.
[0068]
Also, in this case, as in the 29th invention, the game information of the 28th invention,
Information for causing the third device to function the means for determining the arrangement position of the fourth cloud by developing the given arrangement position repetition pattern used by the arrangement position determination means. When,
Information for causing the fourth placement means to function so as to place the fourth cloud in a substantially horizontal position at the determined placement position of the fourth cloud;
It is good also as including.
[0069]
According to the twenty-ninth aspect, the arrangement position repeating pattern, which is used as a reference when arranging the third cloud, can be applied to the arrangement position of the fourth cloud. Therefore, the effect of the 22nd invention can be obtained for the fourth cloud.
[0070]
Furthermore, as in the thirtieth invention,
The game information of the 28th or 29th invention,
Information for causing the third device to function a fourth cloudy transparency setting unit that sets the transparency of each fourth cloudy according to the arrangement position of the fourth cloudy. It may be included.
[0071]
According to the thirtieth aspect, for example, the density of clouds can be changed according to the arrangement position. As a method for further embodying the present invention, for example, there are a thirty-first invention and a thirty-second invention.
[0072]
For example, as in the 31st invention, the game information of the 30th invention,
The fourth cloudy transparency setting means functions to set the transparency of each fourth cloudy based on a cloud distribution map indicating whether or not a cloud exists in the third object space. Information may be included.
[0073]
According to the thirty-first aspect, since the transparency of the fourth cloud element is set according to the cloud distribution map, the display / non-display of the cloud over the entire third object space can be managed. That is, the arrangement position of the fourth cloud is determined by the thirtieth invention, but whether or not it is actually expressed (more precisely, whether or not the color of the fourth cloud is drawn). ) Is determined according to the cloud distribution map. Of course, this cloud distribution map may be shared with the third cloud element.
[0074]
Further, as in the thirty-second invention, the game information of the thirtieth or thirty-first invention,
The fourth cloudy transparency setting means functions to set the transparency of each fourth cloudy based on the distance from the third virtual camera to each fourth cloudy. It is good also as including the information for making it do.
[0075]
According to the thirty-second aspect, for example, by setting the transparency of the fourth cloud located farther from the third virtual camera so as to gradually increase, the farther from the third virtual camera. Visibility can be improved, and the fourth cloud can be expressed as if it continues far.
[0076]
A thirty-third invention is game information including any one of the game information of the thirteenth to twentieth inventions and the game information of any of the twenty-second to thirty-second inventions,
The second device and the third device are the same device,
For this device
Means for making the second virtual camera the third virtual camera;
Means for making the second object space the third object space;
Means for reflecting the texture information generated by the second generation means on the second cloud object;
Means for defining the second cloud object as the third cloud element;
It contains information for functioning.
[0077]
According to the thirty-third aspect, game information including the effect of any one of the thirteenth to twentieth inventions and the effect of any one of the twenty-second to thirty-second inventions can be realized. . Specifically, for example, the second cloudy object can express a second cloudy object (third cloudy substance) that is a plate-like body but has various aspects, and the second cloudy substance Calculation of the arrangement position of the cloud-like object (third cloud element) in the third object space can be simplified.
[0078]
34th invention is the game information of 33rd invention,
Information for causing the second generation means to function to generate a plurality of types of texture information;
Means for generating a plurality of types of second cloud objects having different texture information by reflecting a plurality of types of texture information generated by the second generation unit on the device. Information and
Information for causing the third arrangement means to function to arrange the plurality of types of second cloud objects;
It is characterized by including.
[0079]
According to the thirty-fourth aspect, a plurality of types of second cloud-like objects can be generated, that is, a plurality of types of third cloud-like objects can be formed. Therefore, a cloud-like object expressed in the third object space Can be diversified.
[0080]
The game information according to the thirty-fifth aspect of the invention is to generate an image of an object space viewed from a virtual camera (for example, the virtual camera 100 shown in FIG. 20) by calculation and control by a processor and execute a given game. For the device
When the position or line-of-sight direction of the virtual camera changes, a cloud-like object (for example, a mid-cloud billboard in the embodiment) that exists in an area out of the field of view is newly represented in the field of view. By means of the above, a processor that makes it possible for the processor to perform a function to simulate that the space in which the cloud-like object exists continues (for example, the cloud sea generation unit 618 and the cloud sea drawing unit 640 shown in FIG. 31). Game information.
[0081]
According to the thirty-fifth aspect, by expressing a cloud-like object that is out of the field of view as a new field of view by changing the position of the virtual camera, the cloud-like objects are continuously arranged in the object space. It is possible to express the image as if it is being performed, and it is possible to reduce processing related to image generation of a cloud-like object.
[0082]
The game information of the thirty-sixth aspect of the invention is to generate an image of an object space viewed from a virtual camera (for example, the virtual camera 100 shown in FIG. 20) by calculation and control by a processor and execute a given game. For the device
In accordance with a change in the position of the virtual camera, the transparency with respect to a cloud-like object (for example, a middle cloud billboard in the embodiment) approaching the virtual camera is increased from near the center of the field of view of the virtual camera. This is game information that can be calculated by the processor for causing a means (for example, the opacity setting unit 622 shown in FIG. 31) to lower the transparency with respect to the cloud-like object that moves to approximately the center of the field of view.
[0083]
According to the thirty-sixth aspect, the transparency of the cloud-like object in the vicinity of the approximate center of the field of view of the virtual camera is high, and the transparency located near and far from the virtual camera is low, so the visibility is high and the operability is good. An object space image (game image) can be used.
[0084]
Further, as in the thirty-seventh aspect, an information storage medium for storing game information according to any of the first to thirty-sixth aspects may be realized.
[0085]
A thirty-eighth aspect of the invention is a game device that generates an image of an object space viewed from a virtual camera (for example, the virtual camera 100 shown in FIG. 2) and executes a given game.
A plurality of types of cloud particles (for example, cloud part A (122) shown in FIG. 3 and cloud parts) prepared in advance according to a given angle parameter value (for example, pitch angle X shown in FIG. 2) of the virtual camera. B (124)) is synthesized at a given ratio according to the current value of the given angle parameter, so that the cloud-like object of a plate-like body arranged in the object space toward the virtual camera (For example, a cloud cloud drawing unit 632 illustrated in FIG. 31) that includes texture information (for example, cloud cloud texture 102 illustrated in FIG. 4) to be reflected on the cloud cloud board (for example, cloud cloud billboard in the embodiment). It is a game device.
[0086]
According to the thirty-eighth aspect, for example, two cloud elements representing one side surface (for example, the front surface) and the other side surface (for example, the back surface) of the cloud-shaped object are prepared, It is possible to switch the cloud. That is, since the cloud-like object is arranged toward the virtual camera, for example, the front surface and the back surface of the cloud-like object can be easily expressed without contradiction.
[0087]
Furthermore, since the texture information reflected in the cloud object is generated according to the current value of the angle parameter of the virtual camera, when placing the cloud object in the object space, the vertical and horizontal directions of the cloud object There is no need to consider. That is, for example, when the roll angle of the virtual camera changes, it is necessary to rotate the cloud object according to the roll angle, but since the texture information is generated according to the roll angle, the cloud object The object only needs to be arranged in the object space (more precisely, the position where the cloud-like object is arranged is determined in the object space).
[0088]
A thirty-ninth aspect of the invention is a game device that generates an image of an object space viewed from a virtual camera (for example, the virtual camera 100 shown in FIG. 14) and executes a given game,
Arrangement means (for example, the intermediate cloud shown in FIG. 31) for arranging a plurality of cloud elements (for example, the small cloud billboards 24-1 to 32 shown in FIG. 14) in the cloud model space (for example, the intermediate cloud coordinate system shown in FIG. 14). Generating unit 612),
By performing perspective transformation on the cloud model space, texture information (for example, a medium cloud billboard in the embodiment) reflected in a plate-like object (for example, a mid-cloud billboard in the embodiment) arranged toward the virtual camera in the object space (for example, Generating means (for example, a cloud drawing unit 634 shown in FIG. 31) for generating the cloud cloud texture in the embodiment;
It is a game device provided with.
[0089]
According to the thirty-ninth aspect, although the cloud-like object arranged in the object space is a plate-like object, various forms of cloud-like objects can be expressed. This is because the texture information generated by the generation means reflected in the cloud-like object is a perspective transformation of the cloud model space in which a plurality of cloud elements are arranged. This is because it is possible to generate In addition, according to the present invention, it is possible to distinguish between processing related to the object space and processing to generate texture information, and the processing load related to the object space can be reduced. Note that the second cloud may be formed of a plate-like body.
[0090]
A 40th invention is a game device for generating an image of an object space viewed from a virtual camera (for example, the virtual camera 100 shown in FIG. 14) and executing a given game,
A plurality of types of cloud particles (for example, cloud part A (122) shown in FIG. 3 and cloud parts) prepared in advance according to a given angle parameter value (for example, pitch angle X shown in FIG. 2) of the virtual camera. B (124)) is synthesized at a given ratio according to the current value of the given angle parameter to generate texture information (for example, the cloud cloud texture 102 shown in FIG. 4). Means (for example, the cloud drawing unit 632 shown in FIG. 31);
Means for reflecting the texture information generated by the first generating means on the first cloud-like object of the plate-like body (for example, the cloud cloud billboard in the embodiment) (for example, the middle cloud drawing unit 634); ,
Arrangement means (for example, a middle cloud generation unit 612 shown in FIG. 31) for arranging a plurality of the first cloud objects in a cloud model space (for example, a middle cloud coordinate system in the embodiment);
A texture to be reflected on a second cloud-like object (for example, a mid-cloud billboard in the embodiment) of a plate-like body arranged in the object space toward the virtual camera by perspective-transforming the cloud model space. A second generation unit (for example, a medium cloud drawing unit 634 shown in FIG. 31) for generating information (for example, a medium cloud texture in the embodiment);
It is a game device provided with.
[0091]
According to the 40th aspect of the invention, for example, a first cloud-like object having a plate-like body can be generated that is consistent with the line-of-sight direction of the virtual camera, and the second cloud in various aspects can be generated. A shape object can be expressed.
[0092]
A forty-first invention is a game device that generates an image of an object space viewed from a virtual camera (for example, the virtual camera 100 shown in FIG. 20) and executes a given game.
Arrangement position determining means (for example, as shown in FIG. 31) that determines the arrangement position of a plurality of cloud elements (for example, a medium cloud billboard in the embodiment) arranged in the object space by developing a given arrangement position repeating pattern. Medium cloud arrangement part 614),
Arrangement means (for example, a middle cloud arrangement section 614 shown in FIG. 31) for arranging the cloud-like plate-like body at the arrangement position determined by the arrangement position determination means;
Opposing placement means (for example, a middle cloud placement portion 614 shown in FIG. 31) for directing the cloud in a given direction with respect to the virtual camera;
It is a game device provided with.
[0093]
Here, the given arrangement position repeating pattern is a pattern of arrangement positions in a unit region in which the arrangement position of cloud is determined. For example, this pattern is 2 × 2 × 2 in height. By arranging (developing), it is possible to determine the arrangement position of cloud particles in an area that is eight times as large as a unit area (= 2 × 2 × 2).
[0094]
In other words, the arrangement position of the cloud in an arbitrary area of the object space can be determined by developing this pattern. That is, according to the forty-first aspect, it is possible to easily determine the arrangement position of the cloud in the object space. For example, when the size of the arrangement position repeating pattern (the size of the unit area described above) is substantially the same as the field of view of the virtual camera and the virtual camera is panned rightward, It will appear from the right side of the field of view. That is, it is possible to determine the arrangement positions of all the object spaces of the cloud with only the arrangement position repeating pattern. In addition, since the cloud is a plate-like cloud, the processing load related to image generation in the object space can be reduced.
[0095]
A forty-second invention is a game device for generating an image of an object space viewed from a virtual camera (for example, the virtual camera 100 shown in FIG. 20) and executing a given game,
Cloud-medium arrangement means (for example, an intermediate cloud generation unit 612 shown in FIG. 31) that arranges a plurality of cloud particles (for example, a small cloud billboard in the embodiment) in a cloud model space (for example, an intermediate cloud coordinate system in the embodiment). )When,
Generation means (for example, a middle cloud drawing unit 634 shown in FIG. 31) for generating texture information by perspective-transforming the cloud model space;
Means for reflecting the texture information generated by the generating means on a cloud-like object of a plate-like body (for example, a cloud cloud board in the embodiment) (for example, a sea of clouds drawing unit 640 shown in FIG. 31);
An arrangement position determining means (for example, a middle cloud arrangement unit 614 shown in FIG. 31) for determining an arrangement position of the plurality of cloud objects to be arranged in the object space by developing a given arrangement position repeating pattern;
Cloud-like object placement means for placing the cloud-like object at the placement position determined by the placement position determination means (for example, a middle cloud placement unit 614 shown in FIG. 31);
Opposing placement means (for example, a middle cloud placement portion 614 shown in FIG. 31) for directing the cloud-like object in a given direction with respect to the virtual camera;
It is a game device provided with.
[0096]
According to the forty-second aspect of the invention, for example, cloudy objects can be used to represent cloudy objects having various forms although they are plate-like bodies, and the arrangement position calculation of the cloudy objects in the object space is simplified. Can be
[0097]
DETAILED DESCRIPTION OF THE INVENTION
Preferred embodiments of the present invention will be described below with reference to the drawings. Hereinafter, an airplane game will be described as an example, but application of the present invention is not limited to this.
[0098]
FIG. 1 is a diagram showing an example when the present invention is applied to a consumer game device. In FIG. 1, the player operates the game controllers 1202 and 1204 while manipulating the airplane while watching the game image displayed on the display 1200 and enjoys the airplane game. In this case, information necessary for playing a game such as a game program is stored in a CD-ROM 1206, an IC card 1208, a memory card 1212, and the like, which are information storage media detachable from the main unit.
[0099]
In such an airplane game, the position and orientation of the airplane change variously according to the operation of the player, so the position, angle, etc. of the virtual camera when generating the game image change variously. As described above, the present invention expresses the clouds included in the game image consistently with changes in the position and angle of the virtual camera. Hereinafter, according to the present invention, Principle 2. Function, 3. The operation will be described in detail.
[0100]
1. principle
First, the principle of the present invention will be described. In the present invention, when generating a cloud (a sea of clouds) set in the object space, first, a small cloud that is a small cloud is generated, a medium cloud that is a set of the small clouds is generated, and the medium cloud is generated. A sea of clouds is generated and expressed as a set of. Hereinafter, the generation principle of the cloud, the middle cloud, and the sea of clouds will be described.
[0101]
1- (1) Principle of cloud formation
Hereinafter, with reference to FIG. 2 to FIG. 10, a principle relating to generation of a cloud (a texture expressing the cloud (hereinafter referred to as a cloud cloud texture 102)) will be described. The generated cloud texture 102 is a texture having only transparency (opacity α) (hereinafter referred to as “α texture”), but in order to make it easy to understand the relationship with the processing described later, a single polygon is used for convenience. It is illustrated and described as if it is generated as (hereinafter referred to as virtual perapolygon).
[0102]
FIG. 2A is a diagram showing the virtual camera 100 and the generated cloud cloud texture 102 in the object space (based on the world coordinate system). As shown in the figure, the small cloud texture 102 is set so as to always face the virtual camera 100 perpendicular to the line-of-sight direction.
[0103]
The types of parameters related to the virtual camera 100 include a virtual camera position and a virtual camera angle. The virtual camera position is a parameter representing the position (Xw, Yw, Zw) of the virtual camera 100 in the world coordinate system. As shown in FIG. 2B, the virtual camera angle includes an angle X (hereinafter referred to as a pitch angle X) representing a pitch angle (vertical swing angle, elevation angle and depression angle) of the virtual camera 100, and a yaw angle (horizontal). Parameter expressed by an angle Y (hereinafter referred to as yaw angle Y) representing a swing angle of the direction) and an angle Z (hereinafter referred to as roll angle Z) representing a roll angle (rotation angle (twist) around the line-of-sight direction). It is.
[0104]
However, the range of values that the pitch angle X can take is −90 ° ≦ X ≦ 90 °, and the elevation angle is positive and the depression angle is negative.
[0105]
In addition to the above parameters, various parameters such as an angle of view representing the field of view range (zoom rate) are used as necessary.
[0106]
As shown in the conceptual diagram of FIG. 3, the cloud cloud texture 102 sets (1) the opacity of the airflow texture 104 (hereinafter referred to as α value) to the cloud part A (122), and (2) the airflow texture 104 It is generated by setting the α value in the cloud part B (124) and combining the α values of the cloud part A (122) and the cloud part B (124). These cloud parts A (122), B (124), and the airflow texture 104 are α textures having only an α value, and as described above, the small cloud texture 102 is also an α texture. The α value is a parameter representing opacity, and is a number from “0” to “1”. “0” indicates complete transparency, and “1.0” indicates an opaque state. .
[0107]
The cloud part A (122) is an α texture assuming that the virtual camera 100 has a pitch angle X of 0 °, that is, the visual line direction of the virtual camera 100 is a horizontal direction, and the cloud part B (124) is This is an α texture that assumes a case where the pitch angle X of the virtual camera 100 is ± 90 °, that is, the line-of-sight direction of the virtual camera 100 is the vertical direction.
[0108]
The airflow texture 104 is a texture that represents a temporal change in the α value by animation, and expresses an airflow in a predetermined direction. However, when the airflow texture 104 is captured instantaneously, it is considered that it represents a distribution of stationary α values.
[0109]
FIG. 4 is a diagram showing an example of the cloud cloud texture 102. FIG. 5 is a diagram showing an example of the cloud part A (122) (FIG. (A)) and the cloud part A mask 112 (FIG. (B)). FIG. 6 is a view showing an example of a cloud part B (124) (FIG. 10A) and a cloud part B mask 114 (FIG. 7B), and FIG.
[0110]
Here, the cloud texture 102, the cloud part A (122), the cloud part B (124), the cloud part A mask 112, the cloud part B mask 114, and the airflow texture 104 are each 36 (= 6 × 6) texels. The coordinates of each texel are expressed as [n, m]. However, n, m = 0, 1, 2, 3, 4, and 5. Further, the α value of the texel [n, m] of the airflow texture 104 is α [n, m], and the α value of the texel [n, m] of the cloud part A (122) is α. A [N, m], α value of texel [n, m] of cloud part B (124) is α B [N, m], the α value of the texel [n, m] of the cloud cloud texture 102 is expressed as Cα [n, m].
[0111]
The cloud part A mask 112 is a bit pattern for specifying the shape of the cloud part A (122), and the cloud part B mask 114 is a bit for specifying the shape of the cloud part B (124). In both patterns, a value of “0” or “1” is preset in each texel [n, m].
[0112]
First, the value of the cloud part A mask 112 is set to each texel [n, m] of the cloud part A (122), and the cloud part B mask 114 is set to each texel [n, m] of the cloud part B (124). Set the value of. That is,
α A [N, m] = M A [N, m]
α B [N, m] = M B [N, m] (1)
And Where M A [N, m] represents a bit value of each texel of the cloud part A mask 112, and M B [N, m] represents a bit value of each texel of the cloud part B mask 114.
[0113]
From this equation (1), the cloud shape with the value “0” or “1” is set in the cloud part A (122) and the cloud part B (124).
[0114]
Next, according to the pitch angle X of the virtual camera 100, the α value of the texel [n, m] of the airflow texture 104 corresponding to each texel [n, m] of the cloud part A (122) is set, and the cloud The α value of the texel [n, m] of the airflow texture 104 corresponding to each texel [n, m] of the part B (124) is set. That is,
α A [N, m] ← α [n, m] × cosX × α A [N, m]
α B [N, m] ← α [n, m] × sin | X | × α B [N, m] (2)
And Here, ← is an operator that means assignment, and means that the operation result on the right side is assigned to the variable on the left side.
[0115]
That is, for example, the α value of the airflow texture 104 is reflected in the texel [n, m] in which the value “1” is stored in the cloud part A (122), and conversely, the value “0” is reflected. The α value of the airflow texture 104 is not reflected in the stored texel [n, m]. Accordingly, the cloud part A mask 112 and the cloud part B mask 114 in the formula (1) form the shapes of the cloud part A (122) and the cloud part B (124), and the animation of the airflow texture 104 causes the cloud to It can be expressed that the cloud particles in the part A (122) and the cloud part B (124) flow over time.
[0116]
Further, in Expression (2), the α value of the airflow texture 104 reflected in the cloud part A (122) and the cloud part B (124) varies depending on the pitch angle X of the virtual camera 100.
[0117]
For example, when the viewing direction of the virtual camera 100 is parallel to the horizontal plane, that is, when the pitch angle X = 0 °,
α A [N, m] ← α [n, m] × α A [N, m]
α B [N, m] ← 0 × α B [N, m]
And α of cloud part A (122) A In [n, m], α [n, m] of the airflow texture 104 is set. In addition, cloud part B (124) α B [N, m] does not reflect α [n, m] of the airflow texture 104.
[0118]
Similarly, when the pitch angle X = 45 °,
α A [N, m] ← α [n, m] × (1 / √2) × α A [N, m]
α B [N, m] ← α [n, m] × (1 / √2) × α B [N, m]
It becomes.
[0119]
When the visual line direction of the virtual camera 100 is directly above or below, that is, when the pitch angle X is 90 ° or −90 °,
α A [N, m] ← 0 × α A [N, m]
α B [N, m] ← α [n, m] × α B [N, m]
And α of cloud part B (124) B In [n, m], α [n, m] of the airflow texture 104 is set, but α of the cloud part A (122) is set. A [N, m] does not reflect α [n, m] of the airflow texture 104.
[0120]
Here, the direction of the airflow of the airflow texture 104 to be reflected may be changed between the cloud part A (122) and the cloud part B (124). For example, the equation (2) is modified as follows.
α A [N, m] ← α [n, m] × cosX × α A [N, m]
α B [N, m] ← α [(5-n), (5-m)] × sin | X | × α B [N, m]
By using such a formula, the same airflow texture 104 is used, but the direction of the airflow can be easily changed between the cloud part A (122) and the cloud part B (124). Further, by further transforming the expression (2), a part of the airflow texture 104 may be enlarged and reflected in the cloud part A (122) and the cloud part B (124).
[0121]
Next, by adding the α value of each texel [n, m] of the cloud part A (122) and the α value of each texel [n, m] of the cloud part B (124), the small cloud texture 102 is added. The α value of each texel [n, m] is determined. That is,
Cα [n, m] = α A [N, m] + α B [N, m] (3)
As determined. However, in Equation (3), the α value may exceed “1.0”. In this case, the α value of the texel is set to “1.0”.
[0122]
FIG. 8C is a diagram showing an example of the airflow texture 104. FIGS. 8A and 8B are cloud parts A (122) in which the opacity (α value) of the airflow texture 104 is reflected. FIG. 4A is a diagram showing an example of a cloud part B (124) (FIG. 2B). FIG. 9 is a diagram showing an example of the cloud cloud texture 102 generated by combining the cloud part A (122) and the cloud part B (124). The figure (a) shows the case where the pitch angle X = 90 °, the figure (b) shows the case where the pitch angle X = 45 °, and the figure (c) shows the case where the pitch X = 0 °. FIG. 8 and 9, in order to make it easier to visually grasp the α value, the portion where the α value is “1” becomes “white”, and as the α value approaches “0”, “black”. It is expressed as approaching. That is, FIGS. 8 and 9 are diagrams in which the α value is expressed as color shading.
[0123]
As described above, in the present principle, since the cloud part A (122) and the cloud part B (124) are synthesized according to the pitch angle X of the virtual camera 100, there is a three-dimensional effect even with a simple method. Clouds can be expressed.
[0124]
That is, conventionally, a single polygon (hereinafter referred to as “perapolygon”) to which a cloud texture is mapped is always fixed in the vertical and horizontal positions with respect to the virtual camera 100 and perpendicular to the viewing direction of the virtual camera 100. The method of arrangement was taken. However, according to this method, even if the position of the virtual camera 100, the line-of-sight direction, or the like changes, the cloud does not change at all, so the expression is uncomfortable. Furthermore, an event occurs in which the cloud perimeter polygon changes unintentionally in response to a change in the viewing direction of the virtual camera 100. That is, for example, when the elevation angle or depression angle in the line-of-sight direction is increased, the cloud is inverted and expressed at an angle of ± 90 °.
[0125]
This is because the range of angles that can be taken as the pitch angle (elevation angle or depression angle) of the virtual camera 100 is −90 ° to 90 °, so that the pitch angle θ exceeds ± 90 °. 2 Is θ, as shown in FIG. 2 '(<90 °).
[0126]
This principle also solves this unintended reversal expression of the cloud cloud texture 102. That is, by preparing two cloud parts A (122) and cloud part B (124) and compositing them according to the pitch angle of the virtual camera 100, an event that the clouds are inverted at a certain angle cannot occur. .
[0127]
In addition, by gradually changing the composite ratio of the two cloud parts A (122) and the cloud part B (124) according to the change in the pitch angle X (that is, the two cloud parts A (122), This corresponds to determining the opacity α of the cloud part B (124)), and can be expressed by smoothly changing the shape of the cloud according to the change in the pitch angle of the virtual camera 100.
[0128]
Furthermore, since the airflow texture 104 is synthesized with each of the cloud parts A (122) and the cloud parts B (124), the cloud edges of the two cloud parts A (122) and the cloud parts B (124) are made ambiguous. Can express more natural clouds.
[0129]
Next, the case where a cloud is realized only by the cloud generation principle will be described.
In the above description, the method of generating the small cloud texture 102 as an α texture has been described. However, the expression as a cloud can be realized by adding the following processing.
[0130]
The first method is a method of expressing a cloud by determining an RGB value corresponding to the α value of each texel constituting the generated cloud texture 102.
[0131]
Specifically, for example, when the color of the cloud cloud texture 102 is expressed in monochrome, the RGB value of “white” is (255, 255, 255), and the RGB value of “black” is (0, 0, 0). ). Therefore, in the generated cloud texture 102, for the texel whose α value is “1”, the RGB values (255, 255, 255) are set to be “white”, and the α value is “0”. The RGB value of the texel is set so that the white color becomes gradually thinner as the value approaches “(for example, RGB value = 255 × α value).
[0132]
As a result, it is possible to easily realize the expression of a cloud with shading as shown in FIG.
[0133]
The second method is a method in which RGB values are set in advance in each texel constituting the cloud part A (122) and the cloud part B (124).
[0134]
Specifically, RGB values are set in advance for the texels of the cloud part A (122) and the cloud part B (124), and the α value of each texel is determined by the airflow texture 104. Then, the cloud part texture 102 is generated by α blending the cloud part A (122) and the cloud part B (124).
[0135]
Thus, for example, when the color set in advance for the cloud part A (122) is only “black” and the color set in advance for the cloud part B (124) is only “white”, the cloud texture 102 is displayed from the horizontal direction. When viewed (when the pitch angle X = 0 °), the color of the cloud cloud texture 102 is “black”. As the pitch angle X gradually changes, it gradually appears as “gray” (a color in which “black” is mixed with “white”). When the pitch angle X is further increased, the ratio of “white” is increased. Finally, when viewed from above or below (when the pitch angle is X = 90 °), it is possible to realize the expression of a cloud that looks “white”.
[0136]
In addition, by arbitrarily changing the cloud color (RGB value) set in advance for each of the cloud parts A (122) and the cloud part B (124), various colors can be obtained depending on the pitch angle X of the line of sight of the virtual camera 100. Different cloud representations can be realized.
[0137]
For example, as the cloud part B (124), a cloud part B-1 used when the pitch angle X of the virtual camera 100 is a depression angle, and a cloud part B-2 used when the pitch angle X of the virtual camera 100 is an elevation angle. The two cloud parts B may be set and the cloud part B-1 and the cloud part B-2 may be switched according to the pitch angle X of the virtual camera. For example, when the cloud cloud texture 102 is generated using one type of cloud part B (124), the same cloud cloud texture is generated when the top surface of the cloud is viewed and when the bottom surface is viewed. By switching between the cloud part B-1 and the cloud part B-2, the shape of the cloud by the cloud texture 102 when the top surface of the cloud is viewed and the cloud texture 102 when the bottom surface of the cloud is viewed Can be made different, and a more consistent cloud shape can be realized.
[0138]
Similarly, a plurality of types of cloud parts A (122) corresponding to the yaw angle Y of the virtual camera 100 are set as the cloud parts A (122), and the cloud part A is selected according to the yaw angle Y of the virtual camera 100. It is good also as switching.
[0139]
In addition, each cloud part A (122) and cloud part B (124) generated in the above-described cloud generation principle reflect the α value of the airflow texture, and these two types of cloud parts A (122) and clouds are reflected. Part B (124) is synthesized to generate the cloud cloud texture 102. For this reason, the small cloud texture 102 is expressed as a cloud in which airflow is applied to the entire surface, and the cloud particles are expressed as moving across the entire cloud. Such a phenomenon is not always good when expressing realistic clouds.
[0140]
However, based on the meridian generation principle to be described later, a plurality of small cloud textures 102 are used to generate an intermediate cloud, thereby generating the intermediate cloud texture by concentrating the small cloud texture 102 in a certain range. A low cloud transparency is generated, and a medium cloud texture that increases in transparency as it approaches the periphery is generated. Therefore, it is possible to express a realistic cloud in which airflow is expressed only at the edge of the middle cloud.
[0141]
1- (2) Medium cloud generation principle
Next, the principle of generating a cloud is described.
Here, the middle cloud means an aggregate of small clouds (small clouds). The term “cloud” means the cloud texture 102 having only the opacity (α value) generated by the above-described method, and 32 of these are duplicated and distributed three-dimensionally in the medium cloud model space. Creates a cloud. The intermediate cloud model space is a local coordinate system for generating an intermediate cloud (hereinafter, the intermediate cloud model space is referred to as an intermediate cloud coordinate system). Then, the opacity of each of the three-dimensionally arranged cloud clouds textures 102 is drawn based on the virtual camera 100 and colored according to the positional relationship between the virtual camera 100 and the light source, Generate a texture.
[0142]
Specifically, one middle cloud is constituted by 32 perapolygons. However, the α texture of the small cloud texture 102 is mapped to the surface of each Pella polygon (however, the side facing the virtual camera 100). Each perapolygon is defined only with the coordinates and size of the representative point in the meridian coordinate system, and the plane intersects perpendicularly to the viewing direction of the virtual camera 100 during the game. A rotating billboard.
[0143]
Hereinafter, the individual pella polygons constituting the middle cloud will be referred to as a cloud cloud billboard. When generating the intermediate cloud texture, first, the α value of each of the small cloud billboards specified by the small cloud texture 102 is drawn on a given plane coordinate based on the virtual camera 100. On the other hand, the color information to be given to the middle cloud is determined according to the positional relationship between the virtual camera 100 and the light source in the object space, and the middle cloud texture is generated by coloring according to the drawn α value.
[0144]
Note that when the cloud texture 102 is generated, the cloud part A (122) and the cloud part B (124) are rotated according to the roll angle Z of the virtual camera 100. The vertical and horizontal positions change according to the roll angle Z of the virtual camera 100. Therefore, the cloud cloud billboard 102 on which the cloud cloud texture 102 is mapped has a vertical, horizontal, and horizontal position that corresponds to the roll angle Z of the virtual camera 100, and therefore only needs to be placed at a representative point.
[0145]
FIG. 11 is a diagram illustrating an example of images of four types of medium clouds 202, 204, 206, and 208 generated by applying the present invention. Each medium cloud shown in the figure is generated by arranging 32 small cloud billboards with different distributions and setting all other conditions identically. That is, in the image generation of each cloud, the α texture (that is, the cloud cloud texture 102) mapped to each cloud cloud billboard is the same, and the positional relationship between each cloud and the virtual camera 100, the object All the settings such as the positional relationship between the virtual camera 100 and the light source in the space are also made equal. According to the figure, each medium cloud has a different appearance such as shape, transparency, and stereoscopic effect. As described above, according to the present invention, a plurality of different medium clouds are generated only by changing the distribution of the 32 small cloud billboards. In addition, since the color information is determined based on the positional relationship between the virtual camera 100 and the light source in the object space, it can be recognized that the directions of the light sources inferred from each image are the same.
[0146]
Hereinafter, a method for generating the textures of the four medium clouds 202, 204, 206, and 208 (hereinafter, the medium cloud texture) as shown in FIG. 11 will be described in detail. In the following, after (1) as an initial setting, a method for distributing the cloud clouds constituting each medium cloud is described, (2) as a drawing of the cloud clouds billboard, A method of drawing, that is, a method of drawing and coloring the opacity α of each cloud cloud board will be described.
[0147]
(1) Initial setting
In the initial setting, the distribution of the cloud cloud billboard and the size of each cloud cloud billboard are set. Specifically, for each of the clouds, a cloud cloud coordinate system is defined, the coordinates of 32 cloud clouds billboards are set, the size of each cloud cloud billboard is determined, Memorize as Nakamozu data. The setting of the size and distribution of the cloud cloud billboard is performed using random numbers in order to generate a cloud that is closer to a natural body. That is, the coordinates and size of each cloud cloud billboard are determined by random numbers.
[0148]
When determining the coordinates of the Ogumo Billboard, random numbers are generated for each component in the coordinates. However, if an unlimited number of random numbers is generated, an unnecessarily large value may be obtained. For this reason, a lower limit and an upper limit are set for the generated random numbers, and settings are made so that values within a predetermined range are obtained. However, when random numbers are generated, the occurrence probability is equal for all values within the range from the lower limit to the upper limit. Therefore, when the obtained random number is directly adopted as the coordinate component of the cloud cloud billboard, the 32 cloud cloud billboards are evenly distributed in a given cube, like the cloud shown in FIG. It is impossible to express clouds that are gathered in a small part. Therefore, in order to give a bias to the distribution, when determining the coordinates of one small cloud billboard, a plurality of random numbers are generated for each component of each coordinate, and the average value is adopted.
[0149]
Specifically, the value of each component is determined by the following equation.
x n = (R 1 + R 2 + R Three + R Four ) / 4- (R max -R min ) / 2
y n = (R Five + R 6 + R 7 + R 8 ) / 4- (R max -R min ) / 2
z n = (R 9 + R Ten + R 11 + R 12 ) / 4- (R max -R min ) / 2 (4)
Where (x n , Y n , Z n ) Means the coordinates of the nth billboard constituting one medium cloud, and R 1 ~ R 12 Indicates a random number generated independently. R max Indicates the maximum value (upper limit) of the random number to be generated, R min Means the minimum value (lower limit). For example, R max = 100, R min If set to = 0, the random number generation range is a cube whose center is the origin in the middle cloud coordinate system and whose length of one side is “100”.
[0150]
FIG. 12 is a perspective view of the middle cloud coordinate system (x, y, z), and shows an example in which the representative points of the cloud cloud billboard are distributed based on the equation (4). A broken line in the figure indicates a random number generation range. In addition, the coordinates of the representative points of each Kounome billboard are indicated by dots. As described above, by using the equation (4) to determine the coordinates of the cloud cloud billboard using a plurality of random numbers, it is possible to configure a cloud cloud billboard aggregate having a distribution biased toward the origin.
[0151]
In addition, in Formula (4), although demonstrated as using four random numbers per component, it is not necessary to limit to this number. For example, if the number of random numbers to be employed is increased, there is a higher possibility that the cloud cloud billboard is placed near the origin, and a more uneven distribution can be realized. Conversely, if the number of random numbers to be adopted is set to be small, a distribution with a small bias can be applied. The same effect can be recognized by manipulating the random number generation range in equation (4). That is, if the random number generation range is set large, the distribution bias can be reduced, and if the generation range is set small, the distribution bias can be increased. Therefore, the number and range of random numbers to be employed may be changed according to the shape and size of the intermediate cloud to be generated, the stereoscopic effect, and the like.
[0152]
On the other hand, the size of the Kounome billboard is determined as follows. That is, each small cloud billboard is defined as a square, and the length ws of each side is determined by a random number.
ws = 1.0 + R w ... (5)
Where R w Means a random number, and its generation range is 0.0 ≦ R w ≦ 1.0. That is, each medium cloud can be constituted by an assembly of small cloud billboards of various sizes in which the length ws of one side satisfies 1.0 ≦ ws ≦ 2.0.
[0153]
FIG. 13 is a diagram illustrating an example of four cloud distribution data 210a to 210d that store the coordinates and size of each cloud cloud billboard determined by the initial setting. According to the figure, the four cloud distribution data 210a to 210d include the cloud cloud billboard codes (NO.) Constituting the respective cloud clouds, the respective components of the coordinates for arranging the cloud clouds, In addition, the length ws of one side is stored. During the game execution, each of the cloud cloud billboards is controlled based on the data stored in the cloud cloud distribution data 210a to 210d. In the figure, the cloud cloud distribution data 210a to 210d corresponding to the four cloud clouds are stored independently, but the cloud cloud billboards of the four cloud clouds may be stored together. Good. That is, 128 cloud clouds billboards may be stored as a single cloud distribution data. The initial setting may be performed immediately before the game is executed, and a different medium cloud may be generated each time.
[0154]
▲ 2 ▼ Drawing of Kounome Billboard
Next, a process of drawing a cloud cloud billboard during game execution will be described.
[0155]
FIG. 14A schematically illustrates a middle cloud coordinate system (x, y, z), and a virtual camera (hereinafter referred to as a cloud viewpoint 220) for rendering the cloud clouds Billboards 24-1 to 32-32. Is a diagram for explaining the positional relationship between the origin of the middle cloud coordinate system and the projection screen 22. Here, the projection screen 22 is a projection plane for projecting the aggregate of the cloud clouds Billboards 24-1 to 32-32, and the plane is perpendicular to the line-of-sight vector 34 of the virtual camera 100 in the world coordinate system. Have a relationship with As shown in the figure, the cloud viewpoint 220, the origin of the middle cloud coordinate system, and the center point 22a of the projection screen 22 are one straight line 26 parallel to the line-of-sight vector 34 of the virtual camera 100 in the world coordinate system. Placed on top. Accordingly, the line-of-sight vector of the cloud viewpoint 220 is equal to the line-of-sight vector 34 of the virtual camera 100 in the world coordinate system. In the middle cloud coordinate system, the distance between the cloud viewpoint 220 and the projection screen 22 with respect to the origin is fixed.
[0156]
FIG. 14B is a diagram showing a world coordinate system (Xw, Yw, Zw) that defines the object space, and a middle cloud coordinate system (x, y, z) shown in FIG. According to the figure, a straight line 36 connecting the screen 32 for projecting the object space and the virtual camera 100, a straight line connecting the cloud viewpoint 220 via the origin of the intermediate cloud coordinate system, and the center point 22 a of the projection screen 22. 26 is parallel. That is, when the coordinates of the virtual camera 100 and the screen 32 in the world coordinate system are determined during the execution of the game, the line-of-sight vector 34 from the virtual camera 100 toward the screen 32 is calculated. Based on the inclination of the line-of-sight vector 34, the coordinates of the cloud viewpoint 220 and the projection screen 22 in the intermediate cloud coordinate system are determined. In FIG. 14B, the middle cloud coordinate system is arranged in the world coordinate system in order to explain the positional relationship, but it is not actually arranged. Therefore, the distribution of the cloud cloud billboard 24 does not disturb the placement / drawing of other objects in the world coordinate system.
[0157]
In this way, the positions of the cloud viewpoint 220 and the projection screen 22 are determined so as to be parallel to the line-of-sight vector 34 of the virtual camera 100, and each cloud cloud billboard is placed on the projection screen 22 based on the cloud viewpoint 220. Projective transformation. However, at this time, the vertices of the respective cloud clouds billboards so that the surfaces of the 32 cloud cloud billboards 24-1 to 32-32 in the middle cloud coordinate system intersect perpendicularly to the line-of-sight vector 34 of the virtual camera 100, respectively. Determine the coordinates. Then, projection conversion to the projection screen 22 is performed for each vertex. That is, when projecting one cloud cloud billboard onto the projection screen 22, the coordinates of the representative point of the cloud cloud billboard and the length of one side from the cloud cloud distribution data 210a to 210d generated in the initial setting. The ws is read out, and based on the read value, the direction of the line-of-sight vector 34 is set as the normal direction, and four vertices of the surface centered on the coordinates of the representative point are calculated. Then, the projected four vertices are projected onto the projection screen 22 to perform the projection process of the cloud cloud billboard.
[0158]
Alternatively, in the projection process of the cloud cloud billboard 24, the projection process may be short-circuited as follows by utilizing the fact that the cloud cloud billboard 24 and the projection screen 22 are always parallel in the middle cloud coordinate system. . First, the coordinates of the representative point of the small cloud billboard in the middle cloud coordinate system are projected onto the projection screen 22. On the other hand, the length ws of one side of the corresponding cloud cloud billboard 24 is converted into the length ws ′ in the coordinate system of the projection screen 22 (that is, the perspective conversion is performed on the length ws). Then, in the coordinate system of the projection screen 22, a vertex of a square having a length ws ′ on one side centered on the coordinates of the representative point of the projected cloud cloud billboard 24 is obtained. Thus, by directly obtaining the coordinates of each vertex of the cloud cloud billboard 24 in the coordinate system of the projection screen 22, the drawing process of the plurality of cloud clouds billboards 24-1 to 32-32 can be reduced.
[0159]
FIG. 15 is a diagram schematically showing a middle cloud buffer 40 for storing image data of one middle cloud texture. According to the figure, the middle cloud buffer 40 is a memory for storing RGB color information for 100 × 100 texels and an α value, and separately stores the RGB plane 42 and the α plane 44. Further, each texel in the middle cloud buffer 40 is represented by a coordinate system (X S , Y S ). That is, when the cloud cloud billboard 24 in the cloud cloud coordinate system is projected onto the projection screen 22, the texel of the cloud cloud buffer 40 corresponding to the coordinates of each vertex of the cloud cloud billboard 24 in the coordinate system of the projection screen 22 can be determined. . Then, the α value (Cα) specified by the cloud cloud texture 102 is given to the α plane 44 of the texel in the range surrounded by the determined texels. However, an α value is additionally given to the α plane 44 of each texel. That is, when a plurality of small cloud billboards 24 are projected on one texel in the middle cloud buffer 40, all α values are added and stored. If α> 1 is obtained by adding α values, values exceeding 1 are discarded.
[0160]
In this way, by drawing the three-dimensionally arranged cloud clouds 24-1 to 32-32 according to the line-of-sight direction of the virtual camera 100 in the object space, the appearance of the virtual camera 100 changes each time the position of the virtual camera 100 changes. Will change. Therefore, although the generated middle cloud texture is flat, it can give a three-dimensional impression. Further, since the appearance of the middle cloud changes in an orderly manner according to the distribution in the three-dimensional space, the cloud can be expressed without giving a sense of incongruity.
[0161]
Further, the color information given to the RGB plane 42 of the middle cloud buffer 40 shown in FIG. 15 includes the light source in the object space, the viewing direction of the virtual camera 100, and the projection screen 22 in the middle cloud coordinate system (more precisely, the projection screen). 22 is an “Nikumo Billboard” on the object space corresponding to No. 22, but since this principle explains the principle related to “Nakamozu”, it will be described as a “projection screen” below. Decide according to the relationship. More specifically, a specific point for determining the positional relationship between the projection screen 22 (medium cloud billboard on the corresponding object space; the same applies hereinafter) and the light source is set on the projection screen 22. For example, a plurality of points such as the vertex of the projection screen 22, the midpoint of each side of the projection screen 22, and the center point of the projection screen 22 are set as specific points. During the game execution, the positional relationship between each specific point set on the projection screen 22 and the light source is determined, and the specific point determined to be close to the light source has a bright color and the specific corresponding to the position away from the light source. Determine the dark color for the dots. Then, the color information determined for each specific point on the projection screen 22 is stored in the RGB plane 42 of the corresponding texel on the intermediate cloud buffer 40. For other texels on the intermediate cloud buffer 40, a glow shading method, that is, an intermediate color of colors given to each specific point is calculated and given.
[0162]
The process of determining the positional relationship between each specific point on the projection screen 22 and the light source is performed by vector calculation. That is, a specific vector is given to each specific point set on the projection screen 22, and the specific vector of each specific point is rotated in accordance with the rotation of the projection screen 22 during the game execution. Then, an angle formed by the light ray vector 38 of the light source in the object space and each specific vector of the projection screen 22 is calculated, and a color corresponding to the angle is determined as the color of the corresponding specific point. Hereinafter, for the sake of simplicity, the light source is an infinite light source. That is, as shown in FIG. 14B, a light vector 38 (hereinafter referred to as a light vector 38) illuminates the entire object space evenly and is a parallel vector everywhere.
[0163]
FIG. 16 is a diagram for explaining nine specific points 22-1 to 9-9 provided on the projection screen 22 and specific vectors of the specific points. (A) is a front view of the projection screen 22 in the middle cloud coordinate system, and (b) is a sectional view of the projection screen 22. According to (a) and (b), the specific points are the vertices 22-2, 4, 6, 8 of the projection screen 22, and the midpoints 22-3, 5, 7, 9 of each side of the projection screen 22. , And the center point 22-1 of the projection screen 22, and a normal vector at each point is given as a specific vector. Note that (b) shows the normal vector 22-1a at the center point 22-1 of the projection screen 22 and the line-of-sight vector 34 of the virtual camera 100. That is, the specific vector of the center point 22-1 is always opposite to the line-of-sight vector 34 of the virtual camera 100.
[0164]
FIG. 16C is a diagram showing the relationship of the direction indicated by each specific vector (that is, the normal vector). The projection screen 22 is placed horizontally with respect to the xz plane and each side is It shows the components of each specific vector when arranged so as to cross the x axis and the z axis in parallel or perpendicularly. As shown in (c), the relationship between the angles formed by the specific vectors is the same regardless of the rotation of the projection screen 22 during the game. Accordingly, when the line-of-sight vector 34 of the virtual camera 100 is determined, a rotation matrix based on the line-of-sight vector 34 is generated and applied to each specific vector shown in (c), thereby normal vectors of points on the projection screen 22. Can be easily calculated.
[0165]
Thus, when the direction of the specific vector at each point on the projection screen 22 is determined, the angle formed with the light vector 38 is calculated. However, since the process of calculating the angle formed by each vector in the three-dimensional space and comparing the angles of the three components in the coordinate system is complicated, in the following, the color is determined by the inner product without calculating the formed angle. I decided to. Further, when calculating the inner product, each vector is converted into a unit vector, and the inner product result ω is set to take a range of −1 ≦ ω ≦ 1. Then, the color given to the corresponding point is uniquely determined according to the value of ω and the sign.
[0166]
Note that the relationship between the value of the inner product ω and the color given to the middle cloud corresponds to the relationship of whether each specific point on the projection screen 22 is near or far from the light source. Specifically, in the projection screen 22 shown in FIG. 16A, the normal vector of the specific point 22-2 shows the opposite direction with respect to the light vector 38, and the normal vector of the specific point 22-6 is the same. Point in direction. That is, on the projection screen 22, the normal vector of the point closer to the light source shows the opposite direction to the light ray vector 38, and the normal vector of the portion shadowed with respect to the light source shows the same direction as the light ray vector 38. Based on such a relationship, when the inner product ω of the ray vector 38 and the normal vector of each point is negative, it is determined that the corresponding point is close to the light source, and a bright color is given. When the inner product ω is positive, it is determined that the point corresponds to a shadow portion that is slightly far from the light source, and a dark color is given.
[0167]
More specifically, when the inner product ω is negative, the color of the cloud is white. When the inner product ω is positive, the color is gray (extremely black). It is determined according to the value of ω. For example, the range of the output I for each color of RGB is defined as 0 ≦ I ≦ 255. Here, when I = 0, all RGB colors are not output, but are black, and conversely, when I = 255, they are white. Then, by multiplying the function f (ω) with the inner product ω as a variable, the output ratio of all colors is determined. The function f (ω) may be any function as long as it takes a range of 0 ≦ f (ω) ≦ 1 and increases as ω increases.
Figure 0004688407
Is defined (where 0 ≦ f (ω)). FIG. 17 shows a graph of the function f (ω), in which the horizontal axis represents ω and the vertical axis represents the value of the function f (ω). According to Expression (6), the value of the function f (ω) has a value from “1” to “0” when the inner product ω is negative, and the value becomes “0” when the inner product ω is positive. Therefore, when the normal vector and the light vector 38 are in the same direction (ω> 0), f (ω) = 0, the output color is black, and the shadow portion in the cloud is expressed. Can do. On the other hand, when the normal vector and the light vector 38 face each other (ω <0), f (ω)> 0 is obtained, and the color becomes closer to white as the value of ω approaches “−1”.
[0168]
In this way, by calculating the normal vectors at a plurality of locations on the projection screen 22 and taking the inner product with the light vector 38, the shadow of the cloud can be expressed more appropriately. However, according to Equation (6), although it is possible to express the shadow of the cloud, it is not possible to express gradations of various colors. For example, there is a case where it is desired to express a single cloud having a portion from a portion that shines golden in the morning sun or sunset to a portion that is darkly shaded by the color of the night sky while maintaining a three-dimensional feeling and adding gradation. However, it is difficult to change the three colors of RGB variously and reasonably based on a change in one value, the inner product ω of the light vector 38 and the normal vector.
[0169]
Therefore, the color when the light hits and the clouds shine brightly (light color I L = R L , G L , B L ) And the base color of the cloud (base color I B = R B , G B , B B ) And the color of the shadowed part that is not exposed to light (shadow color I S = R S , G S , B S ) 3 colors are preset. And the ratio which employ | adopts each color shall be determined according to the value of inner product (omega). For example, the function F for determining the light color ratio L (Ω) and a function F for determining the proportion of the base color B (Ω) and a function F for determining the shadow color ratio S (Ω) is set independently. That is, the output color I is
I = I L ・ F L (Ω) + I B ・ F B (Ω) + I S ・ F S (Ω) (7)
Determined by
[0170]
Each function F (ω) is set as follows.
Figure 0004688407
FIGS. 18A to 18C are graphs showing functions. In each graph, the horizontal axis represents the value of ω, and the vertical axis represents the value of the function F (ω). As can be seen from equation (8), the sum of each function is always 1. Therefore, each color can be rationally combined without outputting an unnatural color. In addition, except for the case of ω = −1, 1, the base color is always synthesized. Therefore, for example, when white is applied as the base color, it is possible to express a cloud whose color changes smoothly with white as the base tone.
[0171]
As described above, the cloud cloud billboard 24 to which the α texture of the cloud cloud texture 102 is mapped is three-dimensionally arranged in the middle cloud coordinate system and rotated according to the orientation of the virtual camera 100 in the world coordinate system. Therefore, it is possible to represent a three-dimensional medium cloud whose shape changes corresponding to the position of the virtual camera 100 that observes the medium cloud. Therefore, for example, even if the angle at which the cloud is viewed changes as the plane (viewpoint) operated by the player changes, the shape of the cloud does not contradict, and an image that does not look strange is generated. Can do.
[0172]
In addition, when generating the middle cloud texture, the small cloud texture 102, which is a cloud in which airflow is applied to the whole, is concentrated near the center to generate the middle cloud texture, so the center is dark (transparency is low) A medium cloud texture is created that becomes thinner (higher transparency) as it approaches. Therefore, as a result, airflow is expressed only at the edge of the middle cloud texture, and a more realistic cloud can be expressed.
[0173]
In addition, since the color is determined after drawing the α value of the entire cloud without determining the color for each of the cloud parts that make up the cloud, the cloud is generated more quickly. can do. Furthermore, three types of colors are set in advance, and the ratio of adopting each color is determined according to the positional relationship between the light source and the screen for drawing the medium cloud (actually, the medium cloud billboard on the corresponding object). Because it was decided, it became possible to express a cloud that slightly changes its color depending on the light of the day.
[0174]
In the above description, the number of medium clouds to be generated is four and the number of cloud clouds billboards forming one medium cloud is 32. However, it is not necessary to limit to these numbers, and one small cloud Of course, various changes may be made according to the scale of the cloud billboard. Further, the formula for determining the color density and the preset color composition ratio need not be limited to the formula (6) or the formula (8), and may calculate a hue that does not cause a sense of incongruity as a cloud color. Any formula can be used. In the above description, three colors are combined. However, two colors, four colors,..., N colors may be used. In this case, for example, the value to be multiplied by (ω + 1) in the equation (8) can be changed according to the number of colors to be combined.
[0175]
Alternatively, a color determination table 290 as shown in FIG. 19 may be generated in advance, and the color may be determined based on this table. According to FIG. 19, the color determination table 290 stores color information (RGB values) in association with the range of the inner product ω of the normal vector and the light vector 38 and the range of each inner product ω. During the game execution, the inner product ω of the normal vector of each specific point on the projection screen 22 and the light vector 38 is calculated, the color determination table 290 is read to determine the corresponding color information, and the corresponding in the middle cloud buffer. To the RGB plane of the texel. However, when such a color determination table 290 is employed, information to be stored in advance is increased, and a subtle color change of the cloud cannot be expressed. Therefore, as described above, it is most preferable to calculate the ratio of combining previously specified colors each time.
[0176]
Moreover, although it demonstrated as producing | generating the texture of four medium clouds, it is not necessary to limit to this, For example, based on the virtual camera 100 in an object space, actually arrange | positions each small cloud billboard in an object space. It is good also as drawing. Or it is good also as expressing the cloud over the whole object space by the texture of one medium cloud.
[0177]
However, as the number of cloud clouds billboards to be drawn based on the positions of the virtual camera 100 and the cloud viewpoint increases, the processing for calculating the coordinates and orientation of each cloud cloud billboard, drawing processing, etc. This causes a problem that the entire game image generation process is delayed. This problem seems to be solved by adjusting the size of the middle cloud and the small cloud billboard when drawing based on the virtual camera 100. For example, even when the cloud space billboard is arranged directly in the object space, processing such as drawing can be reduced if the size of the cloud space billboard is set relatively large. However, in a game such as an airplane game in which a cloud can be observed up close, when a relatively large cloud board with only one α texture mapped is placed directly in the object space, It is impossible to express subtle changes in clouds due to changes in the virtual camera position. Further, when each of the small cloud billboards constituting the middle cloud is enlarged and the number thereof is reduced, the change in the shape of the middle cloud accompanying the change in the position of the virtual camera 100 becomes poor, resulting in lack of stereoscopic effect. .
[0178]
For this reason, in the present embodiment, by arranging a cloud cloud billboard in the object space based on the principle of cloud sea generation described below, a cloud change accompanying a change in the position of the virtual camera 100 is expressed, and Express clouds with a feeling.
[0179]
1- (3) Unkai generation principle
Next, the principle of generating a sea of clouds by setting a billboard (hereinafter referred to as a “medium cloud billboard”) mapping the texture of the medium cloud generated by the medium cloud generation principle to a plurality of object spaces will be described.
[0180]
When generating an image viewed from the virtual camera 100 (the viewing direction is the direction indicated by the arrow in the drawing and the viewing angle φ) as shown in FIG. 20, only in the cloud setting region R shown in FIG. Place Nakamune Billboard. Clouds outside the cloud setting region R are not placed because they do not enter the field of view of the virtual camera 100 and are not drawn.
[0181]
Further, as described above, the Nakamune Billboard always faces the virtual camera 100 in the direction of the line of sight, and is arranged in the object space by setting the arrangement position (one point) and the size. That is, even if the virtual camera 100 moves or changes the viewing direction, it is not revealed that the cloud is a plane.
[0182]
The cloud setting region R shown in FIG. 20 will be described more specifically. As shown in FIG. 21, the cloud setting area R has a center point F at a position of a distance d from the position of the virtual camera 100 set in the object space (world coordinate system) in the line-of-sight direction (indicated by an arrow in the figure). PW (F PW .x, F PW .y, F PW z) is a region in a cube with a side length of 2L. That is, the position of the cloud setting region R changes according to the position of the virtual camera 100 and the line-of-sight direction. However, the direction of each side of the cloud setting area R is set to face the Xw axis, Yw axis, and Zw axis of the world coordinate system.
[0183]
When setting the arrangement position of the middle cloud (the arrangement position coordinates of the middle cloud billboard) in the cloud setting area R, the center point F of the cloud setting area R is set. PW Local coordinate system (x L , Y L , Z L ) (Hereinafter referred to as “cloud sea coordinate system”) position coordinates in the cloud setting region R are determined. That is, the center point F of the cloud setting region R PW The arrangement position of the Nakamune Billboard is determined as a position opposite to. Here, the cloud setting region R in the cloud sea coordinate system has a center point F PL (0, 0, 0) and a cube with a side length of 2L.
[0184]
The coordinates CL [i] (CL [i] .x, CL [i] .y, CL [i] .z) of the Nakamune Billboard placed in the Unkai coordinate system are
CL [i] .x = {Ct [i] .x + {2L− (F PW .x mod2L)}} mod 2L-L (9)
CL [i] .z = {Ct [i] .z + {2L− (F PW .z mod2L)}} mod 2L-L (10)
CL [i] .y = (Alt-F PW y) + Ct [i] .y × Altw (11)
Set by. Here, i = 1, 2,..., N, and n is the number of clouds (medium cloud billboard) to be set. “Mod” is an operator indicating a remainder. Alt is the center of the y coordinate of the cloud layer. For example, when the y coordinate of the ground is “0”, it indicates the height from the ground to the center of the cloud layer. Altw is the maximum width from the center of the cloud layer to the edge of the cloud layer.
[0185]
As an initial setting, an initial distribution Ct [i] (Ct [i] .x, Ct [i] .y, Ct [i] .z) (i = 1, 2,..., N) is set. The initial distribution is determined once at the beginning (for example, at the start of the game, etc.) in order to determine the distribution state of the arrangement position of the middle cloud billboard in the sea of clouds. The initial distribution is not changed. Ct [i] .x = rand (rand is a random number from 0 to (2L-1)), Ct [i] .y = rand (rand is a random number from -1 to 1), Ct [i] .z = It is initially determined as rand (rand is a random number from 0 to (2L-1)).
[0186]
According to equation (9), {Ct [i] .x + {2L− (F PW .x mod2L)}} The values that mod2L can take are in the range of “0” to “2L−1”. Therefore, the values that can be taken by the x coordinate CL [i] .x of the arrangement position of the middle cloud in the cloud sea coordinate system are , “−L” to “L−1”. Also, {2L- (F PW .x mod2L)} is, for example, F PW When the value of .x increases, it decreases in the range of “2L” to “1”, becomes “1”, and then further F PW When the value of .x increases, it returns to “2L”.
[0187]
Therefore, for example, the x coordinate F of the center point of the cloud setting region R PW When the value of .x increases, the value of the x coordinate CL [i] .x of the arrangement position of the middle cloud is F in the range from “L−1” to “−L”. PW After the value of .x is decreased by the increased amount and becomes “−L”, the value returns to “L−1” and the values of “L−1” to “−L” are repeated. That is, the x coordinate F of the center point of the cloud setting region R PW As x increases, the x coordinate CL [i] .x of the cloud cloud billboard placement position in the Unkai coordinate system decreases, and when it goes outside the cloud setting region R, it appears on the opposite side. The value is “−L” to “L−1” in the cloud setting region R. The same applies to the z-coordinate CL [i] .z of the arrangement position of the mid-cloud billboard in the Unkai coordinate system according to the equation (10).
[0188]
FIG. 23A is a diagram illustrating the cloud setting region R viewed from the Zw-axis direction in the world coordinate system. As shown in the figure, for example, the center position of the cloud setting region R in the world coordinate system is F PW1 (F PW1 .x, F PW1 .y, F PW1 z), the x-coordinate CL [i] .x of the arrangement position CL [i] of the middle cloud billboard in the Unkai coordinate system is expressed by the following equation (9):
CL [i] .x = {Ct [i] .x + {2L− (F PW1 .x mod2L)}} mod 2L-L
Set by.
[0189]
Here, for example, as shown in FIG. 23A, Ct [1] .x = 110, F PW1 Assuming that x = 100 and L = 100, the value of the x coordinate in the cloud sea coordinate system of the arrangement position CL [1] of the middle cloud billboard is
CL [1] .x = {110+ {200− (100 mod 200)}} mod 200−100 = −90
(FIG. 23B). FIG. 23 (b) shows F PL1 (= F PW1 ) Z L It is a figure which shows an example of the cloud setting area | region R seen from the axial direction.
[0190]
Then, the position of the virtual camera 100 moves in the x-axis direction of the world coordinate system (from the point V1 to the point V2 in the figure) as shown in FIG. 23A (the line-of-sight direction does not change). Center point F of cloud setting region R in the system PW Is also point F PW1 To point F PW2 (F PW2 .x, F PW2 .y, F PW2 .z) (F PW2 .y = F PW1 .y, F PW2 .z = F PW1 . z), for example, as shown in FIG. PW2 Assuming that x = 190, the value of the x coordinate in the cloud sea coordinate system of the arrangement position CL [1] of the middle cloud billboard is
CL [1] .x = {110+ {200− (190 mod 200)}} mod 200−100 = + 20
(FIG. 23C). FIG. 23 (c) shows F PL2 (= F PW2 ) Z L It is a figure which shows an example of the cloud setting area | region R seen from the axial direction.
[0191]
That is, as shown in FIG. 23A, in the world coordinate system, as the cloud setting area R is moved by the change of the virtual camera 100, the area RP1 deviating from the cloud setting area R becomes a new cloud setting area R. It will appear as an included region RP2. That is, one distribution pattern can be used repeatedly.
[0192]
For example, if Ct [2] .x = 50, the center point F of the cloud setting region R PW Is F PW1 In this case, the x-coordinate CL [2] .x in the cloud sea coordinate system of the arrangement position CL [2] of the middle cloud billboard is
CL [2] .x = {50+ {200- (100 mod 200)}} mod 200-100 = + 50
It becomes. In this case, the x coordinate of CL [2] in the world coordinate system is the center point F PW1 X coordinate F PW1 The coordinates “150” from “x” (“100”) to “+50”.
[0193]
Center point F of cloud setting area R PW Is point F PW1 To point F PW2 , The x-coordinate CL [2] .x in the cloud sea coordinate system of the arrangement position CL [2] of the Nakamune Billboard is
CL [2] .x = {50+ {200− (190 mod 200)}} mod 200−100 = −40
It becomes. In this case, the x coordinate of the arrangement position CL [2] of the cloud cloud billboard in the world coordinate system is the center point F. PW2 X coordinate F PW2 The coordinate “150” of “−40” from .x (“190”).
[0194]
That is, before movement (center point is point F PW1 Cloud setting region R and after movement (center point is point F) PW2 The arrangement position of the middle cloud billboard in the area PR3 overlapping the cloud setting area R is set to the same position in the world coordinate system.
[0195]
Center point F of cloud setting area R PW Is moved in the Zw-axis direction, it is the same as the movement in the Xw-axis direction described above.
[0196]
FIG. 24 shows the center point F of the cloud setting region R. PW It is a figure explaining the case where moves to a Yw-axis direction. As shown in FIG. 24A, the center point F of the cloud setting region R PW Is point F PW1 (F PW1 y = 300), Alt = 240, Altw = 20, and assuming that Ct [1] .y = 0 in the initial distribution, the y coordinate in the cloud sea coordinate system of the arrangement position CL [1] of the midcloud billboard CL [1] .y is
CL [1] .y = (240−300) + 0 × 20 = “− 60”
Thus, the position is as shown in FIG. FIG. 24 (b) shows F PL1 (= F PW1 ) Z L It is a figure which shows an example of the cloud setting area | region R seen from the axial direction.
[0197]
In addition, the center point F of the cloud setting region R PW For example, as shown in FIG. PW1 (F PW1 .y = 300) to point F PW3 (F PW3 .y = 350), the y-coordinate CL [1] .y of the arrangement position CL [1] of the cloud cloud billboard is changed from CL [1] .y = -60 to CL [1] .y = (240−350) + 0 × 20 = −110 (FIG. 24C). FIG. 24C shows F PL2 (= F PW2 ) Z L It is a figure which shows an example of the cloud setting area | region R seen from the axial direction.
[0198]
Even if the position of the cloud setting region R changes with the change of the virtual camera 100, the cloud height (cloud layer height) in the world coordinate system does not change, so the cloud setting region R moves in the Xw axis direction. As shown in FIG. 24C, the area outside the cloud setting area R does not newly appear as an area included in the cloud setting area R. As shown in FIG. The location of the Nakamune Billboard is set in Of course, when the arrangement position is outside the cloud setting region R, no cloud is arranged.
[0199]
In this way, the arrangement position CL [i] of n medium cloud billboards is set according to the equations (9) to (11), and the center point F in the cloud setting region R is set. PL Is F in the world coordinate system PW By arranging the cloud setting area R in the world coordinate system so as to become, the arrangement position of the cloud (medium cloud billboard) in the cloud setting area R in the world coordinate system can be set. Then, the Nakamozu billboards are arranged at these arrangement positions CL [i] with a size W [i] = 1.0 + rand (rand is a random number in the range of 0.0 to 1.0). Here, the size W [i] may indicate, for example, the length of one side of the cloud cloud billboard, and, for example, the size of the cloud cloud texture generated based on the cloud cloud generation principle. When the size is set to “1”, the size for the middle cloud texture may be indicated.
[0200]
Here, based on the above formulas (9) to (11), only the “arrangement position” of the middle cloud billboard is set in the cloud setting region R. That is, the vertical and horizontal directions are not taken into consideration. This is because, as described above, the cloud building board constituting the middle cloud has already been generated in consideration of the vertical and horizontal directions, and the middle cloud texture is also generated in consideration of the vertical and horizontal directions (that is, A medium cloud texture corresponding to the roll angle Z of the virtual camera 100 is generated.) Therefore, at the time of generating the sea of clouds, only the “arrangement position” has to be determined in the cloud setting region R.
[0201]
Accordingly, it is only necessary to set a cloud in the cloud setting region R without arranging the cloud in the entire object space, and therefore it is possible to reduce the processing related to the cloud setting. In addition, since clouds are represented by a mid-cloud billboard, the thickness of the virtual camera 100 is not exposed depending on the direction of the virtual camera 100 as in the conventional case. For example, the cloud layer is viewed from the horizontal direction. In addition, it is possible to generate a cloud image having a three-dimensional effect as shown in FIG. FIG. 25 is a diagram illustrating an example of a display screen including a cloud to which the present principle is applied.
[0202]
However, when viewed from the virtual camera 100 in the position and line-of-sight direction as shown in FIG. 26, the boundary of the cloud setting region R enters the visual field. Therefore, as shown in FIG. 26, when the cloud setting region R is moved in the direction of the arrow in accordance with the movement of the virtual camera 100, when the virtual camera 100 is slightly moved in the x-axis direction (right direction in the figure), the cloud setting is performed. The arrangement position CL [m] set near the left end boundary of the region R disappears and changes to the vicinity of the right end boundary of the cloud setting region R.
[0203]
Therefore, when viewed from the virtual camera 100, the cloud arranged at the arrangement position CL [m] in the visual field does not disappear from the edge of the visual field but disappears in the visual field. Similarly, with the movement of the virtual camera 100, a cloud may suddenly appear in the field of view, resulting in a feeling of strangeness. Therefore, in order to make the cloud near the boundary of the cloud setting region R in the field of view more transparent,
α = 1.0− | (Sz [i] −d) | / L (12)
Is set to α value (0 ≦ α ≦ 1) which is a parameter indicating opacity.
[0204]
Here, Sz [i] is a distance from the virtual camera 100 to the arrangement position CL [i] of the middle cloud billboard. Further, the α value is “0”, which makes it completely transparent, and when the α value is “1”, it becomes opaque. That is, the distance Sz [i] from the virtual camera 100 to the arrangement position of the mid-cloud billboard and the center point F of the cloud setting area R from the virtual camera 100 PW The value of α increases (becomes opaque) as the cloud has an arrangement position at a position where the difference from the distance d is small, and the distance Sz [i] from the virtual camera 100 to the arrangement position of the middle cloud billboard and the virtual camera 100 to the center point F of the cloud setting region R PW The α cloud value becomes smaller (transparent) as the middle cloud billboard has an arrangement position where the difference from the distance d is larger.
[0205]
According to Expression (12), since the distance Sz [i] between the arrangement position CL [m] near the boundary of the cloud setting region R and the virtual camera 100 has a large difference from the distance d, the arrangement position CL [m] ] Nakamune Billboard placed in] is highly transparent. Therefore, it is difficult to understand even if it disappears suddenly. Similarly, when it appears at the boundary of the cloud setting region R in the field of view, a highly transparent cloud appears.
[0206]
It should be noted that the distance Sz [i] from the virtual camera 100 to the arrangement position CL [i] of the middle cloud billboard and the center point F of the cloud setting region R from the virtual camera 100 PW The α value is not changed in accordance with the difference from the distance d until, for example, the arrangement position CL [i] is the center point F of the cloud setting region R as shown in FIG. PW The more distant the cloud is, the higher the transparency (the smaller the value of α), and the center point F PW It is good also as the distance from is L (α = 0). In that case, the center point F is inside the sphere P1 having the radius L shown in FIG. PW The further away from the opacity, the lower the opacity (becomes transparent), and the cloud having the arrangement position in the area outside the sphere P1 becomes completely transparent (not visible).
[0207]
Further, for example, as shown in FIG. 27B, an area in which the distance Sz [i] from the virtual camera 100 to the arrangement position of the mid-cloud billboard falls within a given range is opaque (α = 1.0). The α value may be gradually decreased (transparent) as the distance from the region increases.
[0208]
For example, in the case of the position, line-of-sight direction, and viewing angle of the virtual camera 100 as shown in FIG. 28, the clouds outside the cloud setting region R also enter the field of view. Therefore, a distant view cloud setting area Rf is set, and a planar cloud object is horizontally arranged in the distant view cloud setting area Rf. The distant view cloud setting area Rf is, for example, a center point Ff at a distance of df (df> d) from the virtual camera 100. PW And a one-sided length Lf (Lf> L) (since the distant view cloud setting region Rf is set far from the virtual camera 100, a wider range enters the field of view).
[0209]
When a cloud object is arranged in the distant cloud setting area Rf, the equation (9) is based on the initial distribution Ct [i] similar to the case where the arrangement position of the middle cloud billboard is determined in the cloud setting area R described above. ) To (11), “L” is set to “Lf”, and “F” PW "F" PW The arrangement position is determined as “. Similarly to the cloud setting region R, the center point Ff is determined. PW The α value is set so that the cloud becomes transparent as it moves away from. For this reason, the boundary between the cloud setting region R and the distant view cloud setting region Rf and the overlapping clouds have a low α value (high transparency (high visibility)). For this reason, the boundary between the cloud setting region R and the distant view cloud setting region Rf can be made difficult to understand, and a sea of clouds that are naturally connected can be expressed.
[0210]
FIG. 29 is a diagram illustrating an example of a display image when a distant view cloud setting area Rf and a cloud setting area R exist in the field of view. As described above, in the case of a cloud object in the distant view cloud setting area Rf, the cloud object is arranged at a position far from the virtual camera 100, and between the virtual camera 100 and the cloud object in the distant view cloud setting area Rf. Since a medium cloud billboard in R is arranged, it is difficult to reveal the thickness of the cloud object in the distant view cloud setting area Rf even if it is not perpendicular to the direction of the line of sight of the virtual camera 100. Therefore, the cloud object set in the distant view cloud setting area Rf only needs to be arranged horizontally regardless of the position of the virtual camera 100 and the line-of-sight direction, and the burden on billboard processing can be reduced.
[0211]
Further, for example, according to a cloud distribution map 924 showing the cloud distribution of the entire object space as shown in FIG. 30, the α value of the middle cloud billboard having the arrangement position in a part of the cloud is multiplied (set by 1). The middle cloud placed in the cloudless part by multiplying the alpha value of the middle cloud billboard that has the placement position in the cloudless part by “0” (transparent). Make the billboard invisible and free of clouds.
[0212]
That is, the cloud distribution map 924 shown in FIG. 30 is a map showing the distribution of α values. The α value is set to “1” for the white (with clouds) part, and the α value is set to “0” for the black (no cloud) part. Then, the α value obtained by multiplying the α value corresponding to the position of the cloud distribution map 924 by the α value set in the middle cloud billboard is reflected in the opacity when drawing.
[0213]
In the cloud distribution map 924, the α value in the vicinity of the boundary between the part with and without the cloud may be set to “0.5”, for example. In that case, for example, it is possible to blur a cloud break (such as an edge of a sea of clouds), that is, without clarifying the boundary between a portion with a cloud and a portion without a cloud.
[0214]
2. function
Next, each function in the present embodiment will be described.
[0215]
FIG. 31 is a block diagram illustrating an example of functional blocks in the present embodiment. As shown in the figure, the functional block of the present embodiment includes an operation unit 500, a processing unit 600, a display unit 700, a temporary storage unit 800, and a storage unit 900.
[0216]
The operation unit 500 is for inputting an instruction to operate an object in the game. The player inputs operation data using the game controllers 1202 and 1204 shown in FIG. The operation data obtained by the operation unit 10 is output to the processing unit 600.
[0217]
The processing unit 600 mainly includes a game calculation unit 610 and an image generation unit 630. The game calculation unit 610 performs processing for executing a given game, the position of the virtual camera 100, the line-of-sight direction, and the angle of view (viewing angle) according to the operation data input from the operation unit 500 and the game program 910 read from the storage unit 900. ) And the like, and processing such as setting an object, a light source, etc. in the object space.
[0218]
Further, the game calculation unit 610 includes a middle cloud generation unit 612, an initial setting unit 616, and a sea of clouds generation unit 618.
[0219]
The image generation unit 630 performs processing for generating an image viewed from the virtual camera 100. The image generation unit 630 includes a small cloud drawing unit 632, a middle cloud drawing unit 634, and a sea of sea drawing unit 640.
[0220]
The functions of the processing unit 600 are realized by hardware such as a CISC type or RISC type CPU, a DSP, an IC for image generation, and a memory.
[0221]
The display unit 700 displays an image generated by the image generation unit 630 (that is, an image set in the frame buffer 808), and is realized by, for example, a CRT, LCD, plasma display, etc. The display 1200 corresponds to this.
[0222]
The temporary storage unit 800 stores a small cloud buffer 802, a medium cloud buffer 804, specific point color data 806, a frame buffer 808, and drawing target setting data 810. The function of the temporary storage unit 800 can be realized by a RAM.
[0223]
The storage unit 900 stores a game program 910, an airflow texture 104, initial data 950, a cloud distribution map 924, cloud layer data 926, color data 928, and function data 930. The function of the storage unit 900 can be realized by hardware such as a CD-ROM, game cassette, IC card, MO, FD, DVD, memory, and hard disk.
[0224]
Next, the function of each functional unit shown in FIG. 31 will be described in detail for each process.
2- (1) Small cloud generation processing function
The initial setting unit 616 performs processing for setting the initial data 950. Specifically, at the start of the game, the cloud part data 952, the cloud data distribution data 210, which is initial data for distributing the cloud cloud board in the 2- (2) medium cloud generation processing function, and 2- (3 ) In the cloud sea generation processing function, medium cloud distribution data 956, which is initial data for distributing the medium cloud billboard, is set.
[0225]
The cloud part data 952 is data related to the cloud part including the cloud part A mask 112 (FIG. 5B) and the cloud part B mask 114 (FIG. 6B). The cloud part data 952 is set by the initial setting unit 616 at the start of the game. It should be noted that the initial data 950 may be stored in the storage unit 500 in advance.
[0226]
The cloud creation unit 632 of the image generation unit 630 is a processing unit that executes the above-described 1- (1) cloud creation principle in accordance with the cloud creation program 912 included in the game program 910, and the pitch angle of the virtual camera 100. X, cloud part data 952 included in the initial data 950, and each texel of cloud part A (122) (FIG. 5A) and cloud part B (124) (FIG. 6A) based on the airflow texture 104 Is a functional unit that performs processing for generating a cloud texture 102 that is an α texture, and storing it in the cloud cloud buffer 802 in the temporary storage unit 800.
[0227]
2- (2) Medium cloud generation processing function
The middle cloud generation unit 612 executes processing for determining the arrangement positions of the cloud viewpoint 220 and the projection screen 22 in the middle cloud coordinate system in accordance with the middle cloud creation program 914. That is, when the line-of-sight vector of the virtual camera 100 in the world coordinate system is input from the game calculation unit 610, the middle cloud generation unit 612 determines the arrangement position of the cloud viewpoint 220 and the projection screen 22 in the middle cloud coordinate system. The determined cloud viewpoint 220 and the coordinate data of the projection screen 22 are output to the intermediate cloud rendering unit 634 of the image generation unit 630.
[0228]
When the cloud viewpoint 220 and the coordinate data of the projection screen 22 are input from the intermediate cloud generation unit 612, the intermediate cloud drawing unit 634 converts the coordinates of the representative point of each cloud cloud billboard in the intermediate cloud coordinate system to the viewpoint of the cloud viewpoint 220. A rotation matrix for conversion to the coordinate system and a perspective conversion matrix for projection conversion on the projection screen 22 based on the cloud viewpoint 220 are generated. Then, the cloud setting distribution data 210 (FIG. 13) of each medium cloud set by the initial setting unit 616 at the start of the game and stored in the storage unit 900 is read, and the matrix generated for the coordinate data of each cloud cloud billboard. By projecting, each cloud cloud billboard is projected onto the projection screen 22.
[0229]
Further, the middle cloud drawing unit 634 includes an α value drawing unit 636 and a color determination unit 638. The α value drawing unit 636 executes a process of drawing the α values of the 32 cloud clouds billboards constituting each medium cloud. That is, when the coordinates of each vertex of each cloud cloud board on the projection screen 22 are determined, the corresponding texel on the middle cloud buffer 804 is determined, and for the α plane of the texel within the range surrounded by each vertex, The α texture of the cloud cloud texture 102 is drawn.
[0230]
The color determination unit 638 executes processing for determining a color to be given to the middle cloud. That is, the color determination unit 638 determines the colors to be given to nine specific points on the projection screen 22 (actually, the cloud cloud billboard on the corresponding object space) and applies to all the texels in the cloud cloud buffer 804. On the other hand, a process of determining a color to be given based on the color of each specific point is performed. Specifically, the color determination unit 638 generates specific point color data 806 as shown in FIG. The specific point color data 806 is for storing color information in association with each specific point, and is stored in the temporary storage unit 800.
[0231]
That is, when the color determining unit 638 calculates the normal vectors of nine specific points on the projection screen 22 (actually, the cloud cloud board in the corresponding object space), it calculates the inner product ω with the light vector. Then, the calculated value of the inner product ω is substituted into the equation (8) stored in the function data 930 to determine the brightness of the three colors, light color, base color, and shadow color, stored in the color data 928. By substituting the obtained luminance into the equation (7) stored in the function data 930, the color of the corresponding specific point is determined. Then, the determined color information of each specific point is stored in the temporary storage unit 800 as specific point color data 806. In addition, after the α value drawing unit 636 finishes drawing the α values of the 32 cloud clouds billboards, based on the generated specific point color data 806, color information to be given to the RGB plane of each texel in the intermediate cloud buffer 804 is obtained. decide. In addition, the process which determines the color given to each texel is determined by linearly interpolating the color between each specific point.
[0232]
2- (3) Unkai generation processing function
The cloud sea generation unit 618 performs processing for generating a sea of clouds in the object space based on the cloud sea creation program 916, and includes a cloud setting area determination unit 620, a mid-cloud arrangement unit 614, an opacity setting unit 622, a drawing A target setting unit 624. The cloud setting area determination unit 620 determines the position of the distance d from the position of the virtual camera 100 to the line-of-sight direction based on the position and line-of-sight direction of the virtual camera 100 set by the game calculation unit 210, and sets the position as the center point. F PW A cube having a side length of 2L is determined as the cloud setting region R. Further, the cloud setting area determination unit 620 determines the position of the distance df from the position of the virtual camera 100 in the line-of-sight direction, and uses the position as the center point Ff. PW A cube having a side length of 2Lf is determined as the distant view cloud setting region Rf.
[0233]
FIG. 33 is a diagram illustrating an example of a data configuration of the cloud distribution data 956. As shown in the figure, the values of the initial distributions Ct [i] .x, Ct [i] .y, and Ct [i] .z for “i” corresponding to the number n of clouds set in the cloud setting region R , The size W [i] of the Nakamozu billboard and any of the four types of Nakamozu billboard type numbers b1 to b4 attached to the four types of Nakamozu billboards generated by the mesocloud generation processing function It is set as the board type number.
[0234]
Ct [i] .x and Ct [i] .z are set to random numbers from “0” to “2L−1”, respectively, and Ct [i] .y is set from “−1” to “+1”. A random number is set. For example, in FIG. 33, Ct [i] .x (ie, Ct [1] .x) for “i” is “1” is “110”, and Ct [i] .y (ie, Ct [1] .y). Is “0” and Ct [i] .z (ie, Ct [1] .z) is “124”. In addition, the size W [i] (that is, W [1]) for “i” being “1” is set to “1.1”, and “b1” is set as the billboard type number. That is, the medium cloud billboard with the size “1.1” is arranged at the arrangement position CL [1] set by the medium cloud arrangement unit 614 (described later) for i = 1. It will be.
[0235]
FIG. 34 is a diagram showing an example of the data configuration of the cloud layer data 926. As shown in FIG. As shown in the figure, the cloud layer data 926 has a height (value of the y coordinate of the center of the cloud layer in the world coordinate system) Alt and a width Altw for each layer of the cloud layer set in the object space. In the present embodiment, since the two cloud layers of layer 1 and layer 2 are set in the object space, in the cloud layer data 926 shown in FIG. 34, the height Alt and the width Altw with respect to layer 1 and layer 2 are Although set, the number of cloud layers set in the object space may be one, or may be three or more. In that case, the height Alt and the width Altw for each cloud layer set in the object space are set in the cloud layer data 926.
[0236]
The medium cloud arrangement unit 614 is based on the cloud layer data 926 stored in the storage unit 900 and the medium cloud distribution data 956 set by the initial setting unit 616, the above-described equations (9), (10), (11). The center point F of the cloud setting area R according to PW The coordinates of the cloud placement position CL [i] (i = 1 to n) are set in the cloud sea coordinate system with the origin at. Further, the center point Ff of the distant cloud setting area Rf PW Similarly, the coordinates of the cloud arrangement position CL [i] (i = 1 to n) in the distant view cloud sea coordinate system with the origin as the point are also set.
[0237]
Further, the middle cloud placement unit 614 places the middle cloud billboard in the object space (world coordinate system) based on the set value of the placement position CL [i] (in the cloud sea coordinate system). That is, the center point of the cloud setting area R is set to the point F of the world coordinate system. PW The arrangement position CL [i] is converted into the coordinate position when. Then, a medium cloud billboard according to the type of billboard set in the initial distribution data is arranged with a size W [i] and facing the viewpoint direction. In addition, when the set arrangement position CL [i] is outside the cloud setting area R, the middle cloud billboard is not arranged at the arrangement position.
[0238]
Further, the middle cloud placement unit 614 places the cloud object horizontally in the world coordinate system based on the value of the placement position CL [i] set for the distant view cloud setting region Rf. As a cloud object, for example, a billboard process of a cloud cloud billboard is omitted, that is, a billet board is not a billboard but a normal (non-billed billboard) polygon in a medium cloud generation process. It is a mapping of the generated cloud cloud texture.
[0239]
As described above, the medium cloud arrangement unit 614 arranges the medium cloud billboard, but the vertical and horizontal directions of the medium cloud billboard to be arranged may be fixed. This is because the intermediate cloud generation unit 612 and the intermediate cloud drawing unit 634 generate an intermediate cloud texture corresponding to the roll angle Z of the virtual camera 100, and the intermediate cloud placement unit 614 It is only necessary to set and arrange the arrangement position.
[0240]
Based on the distance Sz [i] between the arrangement position of the intermediate cloud billboard set by the intermediate cloud arrangement unit 614 and the virtual camera 100, the opacity setting unit 622 sets the intermediate cloud billboard according to the above equation (12). The α value for each arrangement position is set and stored in the drawing target setting data 810.
[0241]
Further, the opacity setting unit 622 corresponds to the arrangement position of the middle cloud billboard (the arrangement position converted into the world coordinate system by the middle cloud arrangement unit 614) based on the cloud distribution map 924 stored in the storage unit 900. The α value set in the cloud distribution map 924 (FIG. 30) is multiplied by the α value set in the drawing target setting data 810, and the α value of the drawing target setting data 810 is updated.
[0242]
FIG. 35 is a diagram illustrating an example of a data configuration of the drawing target setting data 810. Here, in order to simplify the explanation, only the drawing target setting data 932 for the clouds arranged in the cloud setting area R is illustrated, but the drawing target setting data 810 is similarly arranged in the distant view cloud setting area Rf. Drawing target setting data 810 for the cloud is also set.
[0243]
As shown in FIG. 35, an α value and a drawing flag are set for the arrangement position CL [i] determined by the middle cloud arrangement unit 614. As the α value, the α value set by the opacity setting unit 622 is stored. The drawing flag is reset to “0” at the start of processing for each frame, and only those to be drawn are set to “1” by the drawing target setting unit 624 described later. Further, only the arrangement position existing in the cloud setting area R or the distant view cloud setting area Rf is set in the arrangement position CL [i] of the drawing target setting data 810. That is, the α value and the drawing flag are set only for the medium cloud billboard or the cloud object arranged by the medium cloud arrangement unit 614.
[0244]
The cloud distribution map 924 is a map showing the distribution of clouds in the entire object space as shown in FIG. 30, and the storage unit 900 stores a cloud distribution map 924 for each cloud layer. The cloud distribution map 924 also shows the distribution of cloud opacity α, and the portion where there is a cloud (white in the figure) has an α value set to “1” and there is no cloud (in the figure). In the black portion, the α value is set to “0”.
[0245]
The drawing target setting unit 624 sets a medium cloud billboard whose α value set by the opacity setting unit 622 in the drawing target setting data 810 is not “0” as a drawing target. That is, the transparent Nakamozu billboard is not drawn. Specifically, in the drawing target setting data 810, the drawing flag for the arrangement position CL [i] where the α value is not “0” is set to “1”. That is, the image generation unit draws only the middle cloud billboard arranged at the arrangement position CL [i] in which the drawing flag is set to “1” among the middle cloud billboards arranged in the object space.
[0246]
The sea of clouds drawing unit 640 converts the cloud cloud billboard and the cloud object arranged in the world coordinate system to the screen coordinate system, and the opacity α set in the drawing target setting data 810 set by the opacity setting unit 622. And, based on the α value set in the α plane of the cloud cloud buffer 804, the brightness (color) set in the RGB plane of the cloud cloud buffer 804, etc., color information is determined to generate an image ( That is, the value of each pixel in the frame buffer 808 is set). At that time, processing is performed only for the cloud building board and the cloud object arranged at the arrangement position CL [i] where the drawing flag is set to “1” in the drawing target setting data 810.
[0247]
3. Action
Next, the operation of the cloud generation process in the present embodiment will be described. FIG. 36 is a flowchart illustrating an example of the operation of the cloud generation process.
[0248]
First, the initial setting unit 616 executes an initial setting process for setting initial data 950 at the start of the game (step S0). The cloud rendering unit 632 performs a cloud generation process based on the initial data 950 set in step S0 to generate the cloud cloud texture 102 (step S1).
[0249]
The intermediate cloud generation unit 612 and the intermediate cloud drawing unit 634 perform an intermediate cloud generation process based on the initial data 950 set in step S0 and the small cloud texture 102 generated in step S1, thereby generating an intermediate cloud texture (step). S2). Then, the sea of sea generation unit 618 and the sea of sea drawing unit 640 perform a sea of sea generation process based on the initial data 950 set in step S0 and the medium cloud texture generated in step S2, and an image for one frame including the sea of clouds is displayed. Generate (step S3). Then, returning to step S1, the processing of steps S1 to S3 is performed for each frame to generate a game image (moving image).
[0250]
FIG. 37 is a flowchart showing an example of the operation of the initial setting process (FIG. 36; step S0).
[0251]
First, the initial setting unit 616 generates cloud part data 952 as the initial data 950, and determines the shape of the cloud (step S0-1). Then, the initial setting unit 616 generates small cloud distribution data 210 that is distribution data when the small clouds are arranged in the middle cloud generation process. (Step S0-2). Then, the cloud cloud generation data 956 that is the distribution data when the cloud is arranged in the cloud sea generation process is generated (step S0-3), and the process ends.
[0252]
FIG. 38 is a flowchart for explaining the operation of the cloud generation process (FIG. 36; step S1) in the present embodiment.
[0253]
In FIG. 38, first, the cloud rendering unit 632 clears Cα [n, m] of the cloud cloud texture 102 (returns it to “0”), and uses cloud part A (122), The bit pattern values of the cloud part A mask 112 and the cloud part B mask 114 set in the cloud part data 952 are added to B (124), and the α values of the cloud parts A (122) and B are initially set. Return to the state (step S1-1).
[0254]
Next, when obtaining the current pitch angle X of the virtual camera (step S1-2), the cloud rendering unit 632 identifies the cloud part A (122) or the cloud part B (124) and performs the following processing. (Hereafter, cloud part A (122) is specified). That is, it is determined whether or not the α value is “0” for the texel [n, m] constituting the specified cloud part A (122) (step S1-3). If the α value is not “0” (step S1-3: YES), by substituting α [n, m] of the corresponding texel of the airflow texture 104 and the acquired pitch angle X into the equation (2). , Α A The value of [n, m] is obtained (step S1-4).
[0255]
And this calculated α A The value of [n, m] is added to the α value of the corresponding texel [n, m] of the cloud cloud texture 102 (step S4). If the α value of the cloud cloud texture 102 exceeds “1” as a result of this addition, the α value of the texel is set to “1”.
[0256]
Further, when the α value of the texel [n, m] of the cloud part A (122) is “0” (step S1-3: NO), the processing of step S1-4 and step S1-5 is skipped. Then, the process proceeds to step S1-6.
[0257]
As described above, the cloud rendering unit 632 executes the processes of steps S1-3 to S1-5 for all the texels constituting the cloud part A (122), so that the texel corresponding to the cloud cloud texture 102 is displayed. When the opacity α is determined (step S1-6: YES), the same processing (steps S1-3 to S1-6) is performed for the cloud part B (124).
[0258]
When it is confirmed that the processing of steps S1-3 to S1-6 is executed for cloud parts A (122) and B (124) (step S1-7: YES), the cloud rendering unit 632 The process ends.
[0259]
Through the above processing, the cloud parts A (122) and B (124) and the airflow texture 104 are synthesized, and the small cloud texture 102 is generated.
[0260]
Since the airflow texture 104 is an animation as described above, the opacity value α [n, m] of each texel constituting the airflow texture 104 changes with the passage of time. For this reason, the state of the air current is expressed in the small cloud texture 102.
[0261]
FIG. 39 is a flowchart showing an example of the operation of the middle cloud generation process (FIG. 36; step S2).
[0262]
The intermediate cloud generation unit 612 determines the arrangement positions of the cloud viewpoint 220 and the projection screen 22 in the intermediate cloud coordinate system based on the line-of-sight vector of the virtual camera 100 in the world coordinate system (step S2-1). The mid-cloud drawing unit 634 calculates the normal vectors of nine specific points on the projection screen 22 (actually, the mid-cloud billboard on the corresponding object space) arranged in the mid-cloud coordinate system. The specific color data 806 is generated (step S2-2). Further, the middle cloud drawing unit 634 generates a local matrix based on the coordinates of the cloud viewpoint 220 in the middle cloud coordinate system (step S2-3). That is, a rotation matrix for converting each cloud cloud billboard into the viewpoint coordinate system of the cloud viewpoint 220 and a perspective transformation matrix based on the distance between the cloud viewpoint 220 and the projection screen 22 are generated.
[0263]
The medium cloud rendering unit 634 then selects one of the 128 (32 × 4) small cloud billboard codes stored in the small cloud distribution data 210 set by the initial setting process (FIG. 37). By selecting (step S2-4) and applying the matrix generated in step S2-3, the projection conversion is performed on the projection screen 22. Then, the α value drawing unit 636 draws the α value of the cloud cloud billboard on the α plane on the cloud cloud buffer 804 (step S2-5). When the drawing process of the middle cloud buffer 804 is completed, the middle cloud drawing unit 634 determines whether or not the process has been executed for the 32 small cloud billboards (step S2-6). If not completed, the process returns to step S2-4, and the code of the next akumo billboard is selected to draw the α value (steps S2-4 to S2-5).
[0264]
On the other hand, when it is determined in step S2-6 that the processing of the 32 cloud clouds billboards has been completed, the color determination unit 638 performs the process based on the specific point color data 806 generated in step S2-2. Then, a process of drawing a color on the RGB plane of the middle cloud buffer 804 is executed (step S2-7). After the process of giving colors to all the texels in the intermediate cloud buffer 804 is completed, the intermediate cloud drawing unit 634 determines whether the process has been completed for the four intermediate clouds (step S2-8), and has not ended. In step S2-4, the next middle cloud drawing process is executed. In step S2-8, when the process is completed for the four medium clouds, this process ends.
[0265]
Next, the operation of the sea of clouds generation process (FIG. 36; step S3) will be described. FIG. 40 is a flowchart showing an example of the operation of the sea of cloud generation processing in the present embodiment.
[0266]
First, the cloud setting area determination unit 620 sets the cloud setting area R based on the position and line-of-sight direction of the virtual camera 100 (step S3-1). Next, the cloud sea drawing unit 640 generates a matrix for coordinate conversion from the world coordinate system to the screen coordinate system based on the position and line-of-sight direction of the virtual camera 100 (step S3-2).
[0267]
Then, the middle cloud placement unit 614 coordinates in the cloud sea coordinate system with the center point of the cloud setting region R as the origin based on the cloud layer data 926 and the middle cloud distribution data 956 according to the equations (9) to (11) for i = 1. Is set as the arrangement position CL [i] of the Nakamozu billboard (steps S3-3 and S3-4), and the arrangement position in the world coordinate system corresponding to the arrangement position CL [i] has the size W [i]. Nakamune Billboard is arranged (step S3-5). Then, in accordance with the matrix generated in step S3-2, the sea of sea drawing unit 640 converts the arranged mesocloud billboard into screen coordinates (step S3-6).
[0268]
Further, the opacity setting unit 622 sets the α value of the mesocloud billboard according to the distance Sz [i] from the virtual camera 100 to the arrangement position according to the equation (12) (step S3-7), and the cloud distribution map. Further, according to 924, the α value of the Nakamozu billboard is set (step S3-8). Then, the drawing target setting unit 624 determines whether or not the medium cloud billboard is transparent (α = 0) (step S3-9). If it is transparent, the drawing flag of the drawing target setting data 810 is set to “0”. "Leave as is and go to step S3-11.
[0269]
If it is not transparent, it is set as a drawing target, that is, the drawing flag for the arrangement position CL [i] set in step S3-5 is set to "1" (step S3-10), and step S3-11 is set. Transition.
[0270]
In step S3-11, the middle cloud placement unit 614 determines whether i ≧ n. If “i” is smaller than n, the value of “i” is updated to “i + 1” (step S3-12), the process returns to step S3-4, and the processes up to step S3-11 are repeated thereafter. If it is determined that “i” is greater than or equal to n, it is determined whether or not the arrangement positions of the mid-cloud billboards have been set for all the cloud layers set in the cloud layer data 926 (step S3- 13) If there is a cloud layer that has not been performed, the process returns to step S3-3, and the processes from step S3-3 to S3-13 are repeated for the cloud layer that has not been performed.
[0271]
Then, when the processing is completed for all cloud layers set in the object space, the same processing as steps S3-2 to S3-14 is performed for the distant view cloud setting region Rf. That is, the cloud setting region R is set, the number of cloud objects to be arranged is set and arranged, the cloud objects are arranged, the arranged cloud objects are converted to the screen coordinate system, the opacity α is set, the transparent The process for rendering only the objects not to be drawn is repeated, and further, the process is performed for all cloud layers set in the object space (step S3-14).
[0272]
Then, the sea of clouds drawing unit 640 is a medium cloud billboard placed at the placement position in which the drawing flag is set to “1” in the drawing target setting data 810, the color in which only the cloud object is set in the middle cloud buffer 804, Drawing is performed based on the opacity or the like (step S3-16), and the process is terminated.
[0273]
Next, an example of a hardware configuration capable of realizing the present embodiment will be described with reference to FIG. In the apparatus shown in the figure, a CPU 1000, a ROM 1002, a RAM 1004, an information storage medium 1006, a sound generation IC 1008, an image generation IC 1010, and I / O ports 1012, 1014 are connected to each other via a system bus 1016 so as to be able to input and output data. . A display device 1018 is connected to the image generation IC 1010, a speaker 1020 is connected to the sound generation IC 1008, a control device 1022 is connected to the I / O port 1012, and a communication device 1024 is connected to the I / O port 1014. Has been.
[0274]
The information storage medium 1006 mainly stores programs, image data for representing display objects, sound data, play data, and the like, and corresponds to the storage unit 900 in FIG. For example, when the computer realizing the present embodiment is a computer, a CD-ROM, DVD, or the like as an information storage medium for storing a game program or the like is a home game device. A cassette or the like is used. Further, when realized as an arcade game device, a memory such as a ROM or a hard disk is used. In this case, the information storage medium 1006 is a ROM 1002.
[0275]
The control device 1022 corresponds to a game controller, an operation panel, and the like, and is a device for inputting a result of determination made by the user in accordance with the progress of the game to the device main body. The control device 1022 corresponds to the operation unit 500 in FIG.
[0276]
In accordance with a program stored in the information storage medium 1006, a system program stored in the ROM 1002 (such as device initialization information), a signal input from the control device 1022, the CPU 1000 controls the entire device and performs various data processing. . The RAM 1004 is a storage means used as a work area of the CPU 1000 and stores the given contents of the information storage medium 1006 and the ROM 1002 or the calculation result of the CPU 1000.
[0277]
Further, this apparatus is provided with a sound generation IC 1008 and an image generation IC 1010 so that game sounds and game images can be suitably output. The sound generation IC 1008 is an integrated circuit that generates game sounds such as sound effects and BGM music based on information stored in the information storage medium 1006 and the ROM 1002, and the generated game sounds are output by the speaker 1020. The image generation IC 1010 is an integrated circuit that generates pixel information to be output to the display device 1018 based on image information sent from the RAM 1004, the ROM 1002, the information storage medium 1006, and the like. The display device 1018 is realized by a CRT, LCD, TV, plasma display, liquid crystal plasma display, projector, or the like. This display device 1018 corresponds to the display unit 700 shown in FIG.
[0278]
The communication device 1024 exchanges various types of information used inside the device with the outside. The communication device 1024 is connected to other devices to send / receive given information according to a game program or the like, or via a communication line. It is used to send and receive information such as game programs.
[0279]
Various processes described with reference to FIGS. 1 to 35 include an information storage medium 1006 that stores a program for performing the processes shown in the flowcharts of FIGS. 36 to 40, a CPU 1000 that operates according to the program, an image This is realized by the generation IC 1010, the sound generation IC 1008, and the like. Note that the processing performed by the image generation IC 1010 or the like may be performed by software using the CPU 1000 or a general-purpose DSP.
[0280]
FIG. 42 shows an example in which the present embodiment is applied to a game device including a host device 1300 and terminals 1304-1 to 1304-n connected to the host device 1300 via a communication line 1302.
[0281]
In this case, the game program 510, the airflow texture 104, the initial data 952, the cloud distribution map 924, the cloud layer data 926, the color data 928, and the function data 930 are, for example, a magnetic disk device, a magnetic tape device that can be controlled by the host device 1300, It is stored in an information storage medium 1306 such as a memory. Hereinafter, information stored in the information storage medium 1306 is referred to as storage information. When the terminals 1304-1 to 1304-n have a CPU, an image generation IC, and a sound generation IC and can generate game images and game sounds stand-alone, the storage information is communicated from the host device 1300. It is distributed to the terminals 1304-1 to 1304-n via the line 1302. On the other hand, if it cannot be generated stand-alone, the host device 1300 generates a game image and a game sound, transmits them to the terminals 1304-1 to 1304-n, and outputs them at the terminals.
[0282]
As described above, according to the present invention, the cloud part A (122) and the cloud part B (124) are synthesized according to the pitch angle X of the virtual camera 100 by the cloud generation process. Although it is a technique, it can express a cloud with a three-dimensional effect.
[0283]
Furthermore, a three-dimensional medium cloud whose shape changes corresponding to the position of the virtual camera 100 observing the medium cloud can be expressed by the medium cloud generation process. That is, even if the angle at which the virtual cloud 100 is viewed from the virtual camera 100 is changed, there is no contradiction in the shape of the intermediate cloud, and an image that does not feel uncomfortable can be generated.
[0284]
In addition, since the expression of the airflow applied to the small cloud texture 102 appears to be reflected only on the edge of the middle cloud texture as a result, a more realistic cloud can be expressed.
[0285]
Further, the sea of clouds can be expressed in a three-dimensional manner without a sense of incongruity by the sea of sea generation process. Further, since the mid-cloud billboard has only to be arranged within the field of view of the virtual camera 100 (in the cloud setting region R), it is possible to reduce the processing related to the generation of the sea of clouds.
[0286]
The present invention is not limited to the one described in the above embodiment, and various modifications can be made. For example, in the above-described embodiment, the initial setting at the time of the generation of the middle cloud has been described as the distribution of the small cloud billboards biased toward the origin in the middle cloud coordinate system, but other positions may be used. . That is, in the equation (5), from the average of each four random numbers (R max -R min ) / 2 has been described as subtracting, but by subtracting (or adding) an appropriate value for each component, the distribution position of the cloud cloud billboard aggregate in the meridian coordinate system can be changed. Good.
[0287]
Alternatively, as shown in FIG. 43, the distribution of the cloud cloud board may be distributed in several parts. In other words, the 32 small cloud billboards may be divided into several, and the coordinates of the center point of the distribution different for each aggregate (that is, the position of the distribution bias) may be given. In this way, by distributing the distribution of the small cloud billboard in one middle cloud into several, a horizontally long middle cloud as shown in FIG. 44 (a) or a complicated shape as shown in (b). Medium clouds and the like can be generated.
[0288]
Further, for example, in the above embodiment, in the distant view cloud setting process, the same number n of clouds as in the cloud setting region R are set, but the clouds arranged in the distant view cloud setting region Rf are the virtual camera 100. It is not necessary to have a very detailed model because it is far away from the camera. For example, the number of clouds to be set may be reduced, and each cloud object may be enlarged and arranged to reduce the processing. .
[0289]
In addition, although the cloud object is a perapolygon in which the middle cloud texture is mapped, since it is a distant view, a simpler cloud texture may be mapped to generate a cloud object. In that case, a cloud texture for distant view may be stored in the storage unit 900 in advance.
[0290]
In addition, for example, the cloud distribution map 924 illustrated in FIG. 30 may change the distribution between a portion with and without a cloud over time. In that case, it is possible to express how the cloud flows and the distribution changes over time.
[0291]
Further, although the layer width ALtw is set as a fixed value for each cloud layer, for example, the layer width ALtw may be changed in position. That is, a thick part and a thin part of the cloud layer may be set. In addition, for example, in the case of a cloud that develops over time, such as a cumulonimbus cloud, since the thickness of a part of the cloud layer increases with time, the layer width ALtw is further changed with time. Also good.
[0292]
In the above embodiment, an airplane game has been described as an example. However, what a player operates (maneuveres) is not limited to an airplane, and may of course be a helicopter.
[0293]
In the above embodiment, the home game device has been described as an example. However, the application of the present invention is not limited to this, and may be, for example, a portable game device or an arcade game device. Further, for example, a computer device other than a game device such as a personal computer, a PDA, or a mobile phone may be used.
[0294]
【The invention's effect】
According to the present invention, it is possible to express a cloud with a three-dimensional effect without any contradiction with respect to changes in the position and line-of-sight direction of the virtual camera.
[Brief description of the drawings]
FIG. 1 is a diagram showing an example when the present invention is applied to a home game device.
FIG. 2 is a diagram for explaining (a) a relationship between a virtual camera and a cloud cloud texture, and (b) a virtual camera angle.
FIG. 3 is a diagram showing a concept of composition of a cloud cloud texture.
FIG. 4 is a diagram illustrating an example of a cloud cloud texture.
FIG. 5 is a diagram illustrating an example of a cloud part A and a cloud part A mask;
FIG. 6 is a diagram illustrating an example of a cloud part B and a cloud part B mask;
FIG. 7 is a diagram illustrating an example of an airflow texture.
FIG. 8 is a diagram illustrating an example of an image of (a) cloud part A, (b) cloud part B, and (c) airflow texture.
FIG. 9 is a diagram illustrating an example of a cloud texture when the virtual camera has a pitch angle X of (a) X = 0 °, (b) X = 45 °, and (c) X = 90 °.
FIG. 10 is a diagram showing the principle of inversion of the cloud cloud texture.
FIG. 11 is a diagram illustrating an example of an image of a middle cloud.
FIG. 12 is a perspective view showing an example of a cloud cloud coordinate system.
FIG. 13 is a diagram illustrating an example of the cloud distribution data.
14A is a diagram showing a positional relationship between the virtual camera in the middle cloud coordinate system, the origin of the middle cloud coordinate system, and the projection screen; and FIG. 14B is a diagram showing a relationship between the world coordinate system and the middle cloud coordinate system.
FIG. 15 is a schematic diagram illustrating an example of a cloud cloud buffer.
FIG. 16 is a diagram illustrating specific points and specific vectors.
FIG. 17 is a diagram illustrating a graph of a function f (ω).
FIG. 18 (a) F L (Ω), (b) F B (Ω), (c) F S It is a figure which shows the graph of each function of ((omega)).
FIG. 19 is a diagram illustrating an example of a color determination table.
FIG. 20 is a diagram illustrating a relationship between a virtual camera and a cloud setting area.
FIG. 21 is a diagram illustrating an example of a cloud setting area in the world coordinate system.
FIG. 22 is a diagram illustrating an example of a cloud setting area in a cloud sea coordinate system.
FIG. 23 is a diagram for explaining a change in the arrangement position of the middle cloud billboard as the cloud setting area moves.
FIG. 24 is a diagram for explaining a change in the arrangement position of the middle cloud billboard as the cloud setting area moves.
FIG. 25 is a diagram illustrating an example of a display screen including clouds.
FIG. 26 is a diagram illustrating an example of a relationship between a visual field of a virtual camera and a cloud setting area.
FIG. 27 is a diagram showing an example of distribution of opacity in a cloud setting area.
FIG. 28 is a diagram illustrating an example of a distant cloud setting area.
FIG. 29 is a diagram illustrating an example of an image including a cloud set in a distant view cloud setting area.
FIG. 30 is a diagram illustrating an example of a cloud distribution map.
FIG. 31 is a block diagram illustrating an example of functional blocks in the present embodiment.
32 is a diagram showing an example of the data configuration of specific point color data 806. FIG.
FIG. 33 is a diagram illustrating an example of a data configuration of medium cloud distribution data.
FIG. 34 is a diagram illustrating an example of a data structure of cloud layer data.
FIG. 35 is a diagram illustrating an example of a data configuration of drawing target setting data.
FIG. 36 is a flowchart illustrating an example of operation of cloud generation processing in the present embodiment.
FIG. 37 is a flowchart showing an example of an operation of an initial setting process in the present embodiment.
FIG. 38 is a flowchart showing an example of operation of a cloud generation process in the present embodiment.
FIG. 39 is a flowchart showing an example of operation of a cloud creation process in the present embodiment.
FIG. 40 is a flowchart showing an example of the operation of the sea of cloud generation processing in the present embodiment.
FIG. 41 is a diagram illustrating an example of a hardware configuration capable of realizing the present embodiment.
FIG. 42 is a diagram illustrating an example when the present embodiment is applied to a game terminal connected to a host device via a communication line.
FIG. 43 is a diagram illustrating an example of distribution of a cloud cloud billboard.
FIG. 44 is a diagram showing an example of distribution of a cloud cloud billboard.
[Explanation of symbols]
500 operation unit
600 processor
610 Game calculation part
612 Medium Cloud Generation Unit
616 Initial setting section
618 Unkai Generation Department
630 Image generation unit
632 Cloud drawing part
634 Nakamozu Drawing Department
640 Unkai Drawing Department
700 Display unit
800 Temporary storage
802 Cloud cloud buffer
804 Middle cloud buffer
806 Specific point color data
808 frame buffer
810 Drawing target setting data
900 storage unit
910 Game program
950 Initial data
924 Cloud distribution map
926 Cloud layer data
928 color data
930 function data
104 Airflow texture

Claims (10)

プロセッサによる演算・制御により、オブジェクト空間を移動する仮想カメラから見た当該オブジェクト空間の画像を生成して、所与のゲームを実行することとなる装置を、
前記オブジェクト空間に、前記仮想カメラの視線方向所定距離の位置を基準位置とする雲設定領域を、前記仮想カメラの移動に伴って移動するように設定する雲設定領域設定手段、
前記仮想カメラの移動に伴って新たに前記雲設定領域内となった領域新たな雲素を配置し、継続して前記雲設定領域内の雲素は同じ位置とする雲素配置手段、
前記雲素それぞれの透明度を、前記雲設定領域の境界に近づくにつれて高い透明度となるように設定する雲素透明度設定手段、
前記雲素それぞれに設定された透明度を用いて、前記仮想カメラから見た雲状オブジェクトの画像を生成する手段、
として機能させるための、前記プロセッサによる演算可能なプログラムを記憶した情報記憶媒体。
The arithmetic and control by the processor, to generate an image of the object space viewed from the virtual camera to move the object space, the apparatus and executes the given game,
A cloud setting area setting means for setting a cloud setting area having a reference position at a predetermined distance in the line-of-sight direction of the virtual camera in the object space so as to move as the virtual camera moves ;
A new cloud element is arranged in an area that is newly in the cloud setting area with the movement of the virtual camera , and the cloud element in the cloud setting area is continuously located at the same position .
A cloud transparency setting means for setting the transparency of each of the cloud particles so that the transparency becomes higher as approaching the boundary of the cloud setting region ;
Means for generating an image of a cloud-like object viewed from the virtual camera using the transparency set for each of the cloud particles;
An information storage medium that stores a program that can be operated by the processor to function as a computer.
請求項に記載の情報記憶媒体であって、前記プログラムは、
前記雲素透明度設定手段が、前記基準位置から所定距離以上離れた前記雲素は完全透明とするように前記雲素の透明度を設定する、ように機能させるためのプログラムである、情報記憶媒体。
The information storage medium according to claim 1 , wherein the program is
An information storage medium for causing the cloudy transparency setting means to function so as to set the transparency of the cloudy so that the cloudy that is separated from the reference position by a predetermined distance or more is completely transparent.
請求項又はに記載の情報記憶媒体であって、前記プログラムは、
前記雲設定領域設定手段が、前記雲設定領域を前記基準位置が中心となるように設定する、ように機能させるためのプログラムである、情報記憶媒体。
An information storage medium according to claim 1 or 2, wherein the program,
An information storage medium which is a program for causing the cloud setting area setting means to function so as to set the cloud setting area so that the reference position is at the center.
請求項1に記載の情報記憶媒体であって、前記プログラムは、
前記雲素透明度設定手段が、前記仮想カメラからの距離が第1距離以上であり且つ第2距離以下である環状の範囲内に位置する前記雲素の透明度を不透明に設定し、当該範囲から離れ、前記雲設定領域の境界に近づくにつれて高い透明度となるように前記雲素の透明度を設定する、ように機能させるためのプログラムである、情報記憶媒体。
The information storage medium according to claim 1, wherein the program is
The Kumomoto transparency setting means, Opaquely set distance the transparency of the Kumomoto located within the annular is the second distance or less and is the first distance or more from the virtual camera, away from the range An information storage medium, which is a program for functioning to set the transparency of the cloud so that the transparency becomes higher as the boundary of the cloud setting area is approached .
請求項に記載の情報記憶媒体であって、前記プログラムは、
前記雲素透明度設定手段が、前記基準位置をように前記範囲を定める、
ように機能させるためのプログラムである、情報記憶媒体。
5. The information storage medium according to claim 4 , wherein the program is
The Kumomoto transparency setting means defining said range said reference position as including,
An information storage medium that is a program for causing the function to function as described above.
請求項の何れか一項に記載の情報記憶媒体であって、前記プログラムは、
前記装置を、
前記仮想カメラからの視線方向の距離が前記雲設定領域より遠方に、他の雲設定領域を設定する他領域設定手段、
前記他の雲配置領域に、複数の雲素を配置する他領域雲素配置手段、
前記他の雲配置領域内の雲素それぞれの透明度を、当該他の雲配置領域の中心から離れるに従って透明となるように設定する他領域雲素透明度設定手段、
として更に機能させるためのプログラムである、情報記憶媒体。
The information storage medium according to any one of claims 1 to 5 , wherein the program is
Said device,
Other area setting means for setting another cloud setting area at a distance in the line- of- sight direction from the virtual camera farther than the cloud setting area,
Other area cloud element arrangement means for arranging a plurality of cloud elements in the other cloud arrangement area,
Other area cloud transparency setting means for setting the transparency of each cloud element in the other cloud arrangement area so as to become transparent as the distance from the center of the other cloud arrangement area increases.
An information storage medium, which is a program for further functioning as
請求項1〜の何れか一項に記載の情報記憶媒体であって、前記プログラムは、
前記雲素配置手段が、前記雲設定領域内であって、且つ、前記オブジェクト空間の所与の高度層内に前記雲素を配置する、
ように機能させるためのプログラムである、情報記憶媒体。
The information storage medium according to any one of claims 1 to 6 , wherein the program is
The cloudy arrangement means arranges the cloudy substance in the cloud setting region and in a given altitude layer of the object space;
An information storage medium that is a program for causing the function to function as described above.
請求項1〜の何れか一項に記載の情報記憶媒体であって、前記プログラムは、
前記雲素配置手段が、前記雲素としてパーティクルの集合体を配置する、
ように機能させるためのプログラムである、情報記憶媒体。
The information storage medium according to any one of claims 1 to 7 , wherein the program is
The cloud particle arrangement means arranges a collection of particles as the cloud particles;
An information storage medium that is a program for causing the function to function as described above.
請求項1〜の何れか一項に記載の情報記憶媒体であって、前記プログラムは、
前記装置を、前記雲設定領域内に前記雲素の初期分布を設定する初期分布設定手段として更に機能させ、
前記雲素配置手段が、前記初期分布に従って前記雲素を配置する、ように機能させる、
ためのプログラムである、情報記憶媒体。
The information storage medium according to any one of claims 1 to 8 , wherein the program is
Making the apparatus further function as an initial distribution setting means for setting an initial distribution of the cloud particles in the cloud setting region;
The cloudy arrangement means functions to arrange the cloudy according to the initial distribution;
An information storage medium that is a program.
オブジェクト空間を移動する仮想カメラから見た当該オブジェクト空間の画像を生成しゲームを実行するゲーム装置であって、
前記オブジェクト空間に、前記仮想カメラの視線方向所定距離の位置を基準位置とする雲設定領域を、前記仮想カメラの移動に伴って移動するように設定する雲設定領域設定手段と、
前記仮想カメラの移動に伴って新たに前記雲設定領域内となった領域新たな雲素を配置し、継続して前記雲設定領域内の雲素は同じ位置とする雲素配置手段と、
前記雲素それぞれの透明度を、前記雲設定領域の境界に近づくにつれて高い透明度となるように設定する雲素透明度設定手段と、
前記雲素それぞれに設定された透明度を用いて、前記仮想カメラから見た雲状オブジェクトの画像を生成する手段と、
を備えたゲーム装置。
A game apparatus for executing a game by generating an image of the object space viewed from the virtual camera to move the object space,
A cloud setting area setting means for setting, in the object space, a cloud setting area having a reference position at a predetermined distance in the line-of-sight direction of the virtual camera so as to move with the movement of the virtual camera ;
A new cloud element is arranged in an area that is newly in the cloud setting area in accordance with the movement of the virtual camera , and a cloud element arrangement unit that continuously places the cloud elements in the cloud setting area ;
A cloud transparency setting means for setting the transparency of each of the cloud particles so that the transparency becomes higher as approaching the boundary of the cloud setting region ;
Means for generating an image of a cloud-like object viewed from the virtual camera using the transparency set for each of the cloud particles;
A game device comprising:
JP2003124237A 2003-04-28 2003-04-28 Information storage medium and game device Expired - Fee Related JP4688407B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003124237A JP4688407B2 (en) 2003-04-28 2003-04-28 Information storage medium and game device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003124237A JP4688407B2 (en) 2003-04-28 2003-04-28 Information storage medium and game device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000376702A Division JP3453119B2 (en) 2000-12-11 2000-12-11 Information storage medium and game device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010225169A Division JP4970583B2 (en) 2010-10-04 2010-10-04 Information storage medium and game device

Publications (2)

Publication Number Publication Date
JP2004005623A JP2004005623A (en) 2004-01-08
JP4688407B2 true JP4688407B2 (en) 2011-05-25

Family

ID=30438024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003124237A Expired - Fee Related JP4688407B2 (en) 2003-04-28 2003-04-28 Information storage medium and game device

Country Status (1)

Country Link
JP (1) JP4688407B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107492137A (en) * 2017-08-03 2017-12-19 中国电子科技集团公司第二十八研究所 A kind of graphic animations design system and its design method based on three-dimensional digital earth

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5025950B2 (en) * 2005-12-12 2012-09-12 任天堂株式会社 Information processing program, information processing apparatus, information processing system, and information processing method
JP5090544B2 (en) * 2011-02-25 2012-12-05 任天堂株式会社 GAME DEVICE AND GAME PROGRAM

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07254072A (en) * 1994-01-26 1995-10-03 Hitachi Ltd Texture mapping method and device therefor
JPH08190639A (en) * 1995-01-05 1996-07-23 Toshiba Corp Cloud phenomenon visualizing device
JPH10295934A (en) * 1997-04-25 1998-11-10 Sega Enterp Ltd Video game device and changing method of texture of model
JPH11175748A (en) * 1997-12-05 1999-07-02 Namco Ltd Image generating device and information storage medium
JP2000149062A (en) * 1998-11-10 2000-05-30 Hitachi Eng Co Ltd Method and device for generating three-dimensional image
JP2000197769A (en) * 1998-12-29 2000-07-18 Namco Ltd Game device and information recording medium
JP2000268189A (en) * 1999-03-18 2000-09-29 Airemu Software Engineering Kk Image display method, image display, amusement machine with the same and storage medium in which program is stored

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07254072A (en) * 1994-01-26 1995-10-03 Hitachi Ltd Texture mapping method and device therefor
JPH08190639A (en) * 1995-01-05 1996-07-23 Toshiba Corp Cloud phenomenon visualizing device
JPH10295934A (en) * 1997-04-25 1998-11-10 Sega Enterp Ltd Video game device and changing method of texture of model
JPH11175748A (en) * 1997-12-05 1999-07-02 Namco Ltd Image generating device and information storage medium
JP2000149062A (en) * 1998-11-10 2000-05-30 Hitachi Eng Co Ltd Method and device for generating three-dimensional image
JP2000197769A (en) * 1998-12-29 2000-07-18 Namco Ltd Game device and information recording medium
JP2000268189A (en) * 1999-03-18 2000-09-29 Airemu Software Engineering Kk Image display method, image display, amusement machine with the same and storage medium in which program is stored

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107492137A (en) * 2017-08-03 2017-12-19 中国电子科技集团公司第二十八研究所 A kind of graphic animations design system and its design method based on three-dimensional digital earth
CN107492137B (en) * 2017-08-03 2021-01-26 中国电子科技集团公司第二十八研究所 Graphic animation design system based on three-dimensional digital earth and design method thereof

Also Published As

Publication number Publication date
JP2004005623A (en) 2004-01-08

Similar Documents

Publication Publication Date Title
US6707458B1 (en) Method and apparatus for texture tiling in a graphics system
JP2009237680A (en) Program, information storage medium, and image generation system
JP3453119B2 (en) Information storage medium and game device
US6828962B1 (en) Method and system for altering object views in three dimensions
JP4610748B2 (en) Image generation system, program, and information storage medium
JP3748451B1 (en) Program, information storage medium, and image generation system
JP4970583B2 (en) Information storage medium and game device
JP2005032140A (en) Image generation system, program, and information storage medium
JP4688407B2 (en) Information storage medium and game device
JP4868586B2 (en) Image generation system, program, and information storage medium
JP2005275797A (en) Program, information storage medium, image generation system
JP2011065396A (en) Program, information storage medium, and object generation system
JP4528008B2 (en) Program, information storage medium, and image generation system
JP3470966B2 (en) Program, information storage medium, and game system
JP5146054B2 (en) Generation control program of sound generated from sound source in virtual space
JP3501479B2 (en) Image processing device
WO2004052481A1 (en) Game machine, game control method, and program
JP2005141647A (en) Program, information storage medium and image generating system
JP4592087B2 (en) Image generation system, program, and information storage medium
JP2007164651A (en) Program, information storage medium and image generation system
JP4688405B2 (en) PROGRAM, INFORMATION STORAGE MEDIUM, AND GAME DEVICE
JP2002251625A (en) Device and method for processing image, recording medium for recording program for processing image operating on computer
JP2001314646A (en) Game apparatus and information storage medium
JP3453410B2 (en) Image processing apparatus and method
JP2007164736A (en) Image generation system, program and information storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071203

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080109

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110208

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110215

R150 Certificate of patent or registration of utility model

Ref document number: 4688407

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees