(57)【特許請求の範囲】
【請求項１】
３次元の仮想空間の画像を所与の視点に基づき生成し、当該生成画像を表示させることによって所与のゲームを実行するゲーム装置において、
前記仮想空間に、前記所与の視点の視界を含む単位領域を設定する領域設定手段と、
複数の個別オブジェクト又は粒子（以下、代表して「個別オブジェクト」という）によって前記仮想空間に所与の環境を表現する環境モデルを前記単位領域と対応付け、前記複数の個別オブジェクトそれぞれを前記環境モデル中の位置に対応する前記単位領域中の位置に位置させることで前記環境モデルを設定するモデル設定手段と、
を備え、
前記モデル設定手段は、前記所与の視点の視線方向又は視点位置の変化によって前記単位領域の設定位置が変化した際に、該変化の前後で前記単位領域が重なる部分の個別オブジェクトの位置についてはそのままとし、該変化によって単位領域から外れた個別オブジェクトそれぞれの位置を新たに単位領域となった領域部分中の位置に変更するモデル設定変更手段を有する、
ことを特徴とするゲーム装置。
【請求項２】
前記モデル設定変更手段は、前記単位領域の設定位置が変化した際に、該変化によって単位領域から外れた個別オブジェクトそれぞれの位置を、前記単位領域分の距離だけ移動した位置であって新たに単位領域となった領域部分中の位置に変更する、
請求項１に記載のゲーム装置。
【請求項３】
前記複数の個別オブジェクトそれぞれを個別制御する個別オブジェクト制御手段、
を更に備え、
前記個別オブジェクト制御手段は、
前記複数の個別オブジェクトそれぞれを時間経過に応じて移動させる移動制御手段、
を有する、
請求項１又は２に記載のゲーム装置。
【請求項４】
前記個別オブジェクトは、雨または雪の粒子である請求項１〜３の何れか一項に記載のゲーム装置。
【請求項５】
前記個別オブジェクトは、草オブジェクトである請求項１又は２に記載のゲーム装置。
【請求項６】
コンピュータに、３次元の仮想空間の画像を所与の視点に基づき生成し、当該生成画像を表示させることによって所与のゲームを実行させるためのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体であって、
前記プログラムは、
前記仮想空間に、前記所与の視点の視界を含む単位領域を設定する領域設定手段、
複数の個別オブジェクトによって前記仮想空間に所与の環境を表現する環境モデルを前記単位領域と対応付け、前記複数の個別オブジェクトそれぞれを前記環境モデル中の位置に対応する前記単位領域中の位置に位置させることで前記環境モデルを設定するモデル設定手段、
として前記コンピュータを機能させるとともに、
前記モデル設定手段が、前記所与の視点の視線方向又は視点位置の変化によって前記単位領域の設定位置が変化した際に、該変化の前後で前記単位領域が重なる部分の個別オブジェクトの位置についてはそのままとし、該変化によって単位領域から外れた個別オブジェクトそれぞれの位置を新たに単位領域となった領域部分中の位置に変更するモデル設定変更手段を有する、
ように前記コンピュータを機能させるためのプログラムである情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元の仮想空間の画像を所与の視点に基づき生成し、当該生成画像を表示させることによって所与のゲームを実行するゲーム装置等に関する。
【０００２】
【従来の技術】
３次元の仮想空間の画像を所与の視点に基づいて生成する場合、仮想空間内の至る所に降る雪や雨、一面に広がる草原等の動きをよりリアルに表現するためには、所与の視点の視界に関わらず、雪や雨の粒子１つ1つ、あるいは、草のオブジェクト1つ1つを全空間に渡って定義し、１フレーム毎にその運動（雪や雨ならば落下運動、草ならば風に揺れる運動等）を計算する必要がある。
【０００３】
【発明が解決しようとする課題】
しかしながら、仮想空間に降る雪や雨、あるいは、一面に広がる草等のオブジェクトを表現する上記方法をゲーム装置に適用する場合には、次のような問題があった。ゲーム装置においては、プレーヤの入力操作に応じてリアルタイムで画像を生成しなければならない。しかしながら、ゲーム空間である仮想空間が広大に設定されている場合、その広さに応じて設定する粒子やオブジェクトの数が増加するため、空間全体に渡る粒子やオブジェクトの運動を計算する処理はゲームを進行させる全体の処理に対してかなりの負担となる。また、全ての粒子やオブジェクトの移動位置を記憶するためのメモリ領域が大量に必要となるという問題がある。更に、メモリに対する全粒子の位置データの入出力も、画像を生成する処理の速度を低下させる一因となる。
【０００４】
本発明の課題は、上記問題を解決するためになされたものであって、雨や雪、草原や森林といったゲーム画像の内の環境に係る画像の生成を効率的かつ高速に実現することである。
【０００５】
【課題を解決するための手段】
上記課題を解決するための第１の発明は、３次元の仮想空間の画像を所与の視点に基づき生成し、当該生成画像を表示させることによって所与のゲームを実行するゲーム装置において、前記仮想空間が同一の環境にあることを擬似的に表現するために、前記所与の視点の視線方向または視点位置が変化する際に、視界から外れた領域内の環境を新たに視界となる領域に表現するための表現手段（例えば、図９の雪位置決定部２２４）を備えることを特徴とするゲーム装置である。
【０００６】
第６の発明は、３次元の仮想空間の画像を所与の視点に基づき生成することによって所与のゲームを実行するための情報を記憶した情報記憶媒体であって、前記仮想空間が同一の環境にあることを擬似的に表現するために、前記所与の視点の視線方向または視点位置が変化する際に、視界から外れた領域内の環境を新たに視界となる領域に表現するための表現情報（例えば、図９の雪制御情報４４）を含むことを特徴とする情報記憶媒体である。
【０００７】
ここに、環境とは、プレーヤキャラクタ等のキャラクタを除いた仮想空間を指す意であり、地面や草原等の地形の他、雨や雪、霧といった自然現象を含む、方向に対する特異性を持たないもののことである。
【０００８】
この第１又は第６の発明によれば、画面上に表現された環境が所与の視点に基づく視界の移動に伴って繰り返し表現されるため、仮想空間に設定する環境を空間全体に渡って定義する必要がなく、ゲーム画像を生成する処理速度を向上させるとともに、メモリ資源を節約することができる。また、視界の移動に伴って、視界から外れた領域内の環境（あるいは、その環境を構成する要素）が新たに視界となる領域へと順次移動されるため、違和感のない画像を生成することができる。
【０００９】
また、第２の発明として、第１の発明のゲーム装置において、前記環境は、所与の粒子または所与のオブジェクトが１つあるいは複数存在する空間であって、前記所与の視点の視線方向または視点位置が変化した場合には、前記仮想空間に前記所与の粒子または所与のオブジェクトが存する空間が連続的に広がっていることを前記表現手段により擬似的に表現することとしてもよい。
【００１０】
また、第７の発明として、第６の発明の情報記憶媒体において、所与の粒子または所与のオブジェクトが１つあるいは複数存在する空間を前記環境とするための情報と、前記所与の視点の視線方向または視点位置が変化した場合には、前記仮想空間に前記所与の粒子または所与のオブジェクトが存する空間が連続的に広がっていることを擬似的に表現するための情報を含むこととしてもよい。
【００１１】
この第２又は第７の発明によれば、環境を構成する要素が粒子あるいはオブジェクトであり、視界の位置や方向が変更しても、粒子あるいはオブジェクトが仮想空間内の至る所に存在するかのように表現することができる。従って、所与の粒子または所与のオブジェクトの数が多くなる程、本発明を適用する効果、即ち、画像生成に係る処理速度の向上を図ることができる。
【００１２】
また、第３の発明として、第２の発明のゲーム装置において、前記所与の粒子は、雨または雪であることとしてもよい。
【００１３】
また、第４の発明として、第２の発明のゲーム装置において、前記所与のオブジェクトは、地形オブジェクトであることとしてもよい。ここに、地形オブジェクトとは、砂漠や地割れした地面、草が密生する草原等、仮想空間の地面を構成するオブジェクトを意味するものである。
【００１４】
この第３又は第４の発明によれば、雪や雨が仮想空間全体に降る様子や、一面に広がる砂漠、乾燥しきって地割れした地面、どこまでも続く草原などを表現することができる。また、視界内に必要な数のみを考慮すればよいため、雪や雨の落下運動や、草原の一つ一つの草が風になびく運動等を計算する処理を大幅に削減することができる。
【００１５】
また、第５の発明として、第１から第４の何れかの発明のゲーム装置において、単位領域（例えば、発明の実施の形態において説明する雪モデル）に所与の環境を設定するための単位領域設定手段（例えば、図９の雪演算部２２０）を備え、前記表現手段は、前記単位領域の一部または全部を、前記所与の視点の視界内に複製することにより、前記仮想空間が同一の環境にあることを擬似的に表現することとしてもよい。
【００１６】
また、第８の発明として、第６又は第７の発明の情報記憶媒体において、単位領域に所与の環境を設定するための情報と、前記単位領域の一部または全部を、前記所与の視点の視界内に複製することにより、前記仮想空間が同一の環境にあることを擬似的に表現するための情報とを含むこととしてもよい。
【００１７】
この第５又は第８の発明によれば、単位領域が有する環境（あるいは、粒子やオブジェクト）を視界内に複数配置することができる。従って、単位領域を視界に対して小さく設定し、その複製を視界内に複数表現すれば、単位領域内の環境を定義する処理や、単位領域内に存する粒子やオブジェクトの運動を制御する処理等を更に削減することができるとともに、メモリ資源のより一層の節約をすることができる。
【００１８】
【発明の実施の形態】
以下に、本発明の好適な実施の形態について図面を参照して説明する。なお、以下では、本発明をアドベンチャーゲームに適用した場合を例に取って、ゲーム空間である仮想空間の至る所で同じように降る雪（即ち、雪が降る環境）を効率良く表現する方法について説明するが、本発明が適用されるものはこれに限られるものではない。
【００１９】
図１（ａ）は、本発明を適用することで、雪が降る環境を表現した一画像例を示す図である。同図（ａ）は、プレーヤが操作する自キャラクタの視点に基づく画像であり、雪が空間全体に降っているように表現するために、各雪の粒子は、所与の視点に近い位置に存在するほど大きく、遠くに存在するほど小さく表現されている。一方、図１（ｂ）は、自キャラクタが図１（ａ）の位置から右方向に平行移動した場合の一画像例を示している。同図（ｂ）において、新たに視界となった領域２０２に表示されている雪は、自キャラクタの視点位置の移動によって視界から外れた領域、即ち、同図（ａ）における領域２００に表示されていた雪である。このように、本発明は、仮想空間の環境を視界にのみ設定し、視界の位置が移動すると、その移動に伴ってワールド空間に設定した環境の一部あるいは全部の設定位置を変更するものである。
【００２０】
次に、本発明の原理を説明する。
まず、仮想空間とは独立した所与の大きさの雪モデルを設定する。雪モデルとは、所与の大きさをした空間中を雪である複数の粒子が降るモデルである。そして、雪モデルにおける各粒子の位置座標と、仮想空間における位置座標とを対応づけることにより、雪モデルを仮想空間における視界内の環境として表現する。即ち、所与の大きさをした空間中にのみ雪を降らせ、各雪の粒子を仮想空間における視界内のどの位置に表現するかを決定する。このことにより、降雪の処理を高速化するとともに、メモリ資源を節約することができる。以下、詳細にこの原理を説明する。
【００２１】
図２は、雪モデルの一例を示す図であり、（ｘl、ｙl、ｚl）は、雪モデルの座標系（以下、ローカル座標系という。）を、Ｏlは、ローカル座標系の原点をそれぞれ意味している。また、雪モデルを直方体として定義し、各辺の長さは、ｘ軸方向はＬx、ｙ軸方向はＬy、ｚ軸方向はＬzであるとする。そして、この直方体の内部に雪の粒子（実際には、座標点）ｎ個を定義し、初期条件（初期位置、初速度等）に基づいて１フレーム毎に各雪の粒子の初期位置からの移動量を計算する。
【００２２】
そして、生成した雪モデルを視界に表現する位置を決定する。図３は、仮想空間に定義した座標系（以下、ワールド座標系という。）をＹ軸方向から見た図である。同図において、自キャラクタの視界３０２の好適な位置に雪を表現する領域となる表現領域３０４を配置する。従って、表現領域３０４は、視界３０２の移動に伴ってワールド座標系を移動することとなる。また、表現領域３０４を雪モデルと同じ形状、即ち、Ｌx×Ｌy×Ｌzの直方体のものとし、雪モデルを構成する全ての雪の粒子をこの表現領域３０４の内部に表現する。しかしながら、雪モデルに定義されたローカル座標系の原点位置を表現領域３０４の一点（例えば、表現領域の左下点３２２）に定義した場合、表現領域３０４の移動に伴って雪モデルも移動することとなる。これによって、視界の位置が変化し、自キャラクタが見るキャラクタ等の位置が変化したにもかかわらず、雪の表示が変化しないという矛盾が生じる。
【００２３】
この矛盾を解消するために、表現領域の移動の前後で重なる領域に存在する雪の粒子の位置は変更せずに、表現領域の移動によって表現領域から外れた領域に存在する粒子の位置のみを変化させる。例えば、図４（ａ）に示す表現領域３０６が、Ｘ軸方向に移動して図４（ｂ）に示す位置に変化した場合には、領域３０８の部分に存在した雪の粒子を新たに表現領域となった領域３１０の部分に表現し、移動の前後で重なる領域に存在する粒子は移動させない。同様に、図４（ｂ）に示す表現領域３０６がＺ軸方向に移動したことで、図４（ｃ）に示す位置に変化した場合には、領域３１２に存在した雪の粒子を領域３１４の位置に表現する。
【００２４】
具体的な方法としては、まず、ワールド座標系に、各雪の粒子の標準位置を設定する。標準位置とは、雪モデルの初期状態をワールド座標系の標準となる位置（例えば、原点Ｏw）に対応付けた場合の、各粒子の位置（初期位置）を示すものである。そして、１フレーム毎に自キャラクタの視点位置および視線方向に基づいて表現領域を設定し、この表現領域と各粒子の標準位置とを比較するための代表点を表現領域内に決定する。各粒子の標準位置と表現領域の代表点との差が表現領域の幅の何倍分あるかを算出し、ちょうど表現領域の整数倍となる位置を、ワールド座標系における粒子の初期位置として決定する。そして、各雪のローカル座標系での移動量（即ち、各雪の初速度に基づく移動量）を表現領域内に決定した初期位置に加算して雪の表現位置を決定する。
【００２５】
以下に、式を用いて標準位置から表現領域への変換処理について説明する。まず、表現領域の代表点の座標（Ｘm、Ｙm、Ｚm）を以下のように算出する。
Ｘm＝Ｘc＋ｄ＊ｓｉｎ（ｒy）＋Ｌx／２    …（１）
Ｙm＝Ｙc                                 …（２）
Ｚm＝Ｚc＋ｄ＊ｃｏｓ（ｒy）＋Ｌz／２    …（３）
ここに、（Ｘc、Ｙc、Ｚc）とは自キャラクタの視点の座標を、ｒyは（Ｘ，Ｚ）平面上におけるＺ軸と視線ベクトルとの成す角を、ｄは表現領域の中心点と視点との距離をそれぞれ意味している。例えば、視点がＸ軸方向に平行移動した場合には、ｒy＝０であるため、代表点は、（Ｘm、Ｚm）＝（Ｘc＋ｄ＋Ｌx／２、Ｚc＋Ｌz／２）の位置、即ち、図３に示す表現領域３０４の右上点３１８の座標が算出される。
【００２６】
そして、ワールド座標系に設定した各粒子を標準位置から表現領域内に変換する。この処理の特徴は、各雪の粒子を表現する位置を、表現領域（あるいは雪モデル）の各辺の長さ毎に等間隔で移動させることである。まず、各粒子の標準位置（Ｘ0、Ｚ0）と表現領域の代表点（Ｘm、Ｚm）の差分を計算し、
（δＸ、δＺ）＝（Ｘm−Ｘ0、Ｚm−Ｚ0）    …（４）
差分（δＸ，δＺ）の各座標を表現領域の各辺の長さ（Ｌx、Ｌz）で割った商（α、β）を算出する。そして、算出した商（α、β）と表現領域の各辺（Ｌx、Ｌz）の各座標を掛け合わせ（αＬx、βＬz）、この値に標準位置の座標（Ｘ0、Ｚ0）を加算して、表現領域内に変換した雪の初期位置とする。即ち、
（Ｘ、Ｚ）＝（αＬx、βＬz）＋（Ｘ0、Ｚ0）    …（５）
が表現領域内の雪の初期位置となる。
【００２７】
例えば、図５（ａ）に示すように、雪モデル３２０をワールド座標系の原点に設定し、各粒子の標準位置を設定する。ただし、図５（ａ）は、雪モデル３２０を構成する３つの粒子３２２、３２４、３２６の標準位置をワールド座標系のＹ軸方向から見た図である。図５（ｂ）は、ワールド座標系に、視点３００に基づいて表現領域３２８を配置した一例を示す図である。同図（ｂ）において、表現領域３２８の代表点は、（１）〜（３）の式により、右上点３３０の座標として計算される。
【００２８】
まず、粒子３２２の標準位置と代表点３３０との差分（δＸ，δＺ）を表現領域の各辺（Ｌx、Ｌz）で割った商は、（０、０）と計算される。従って、粒子３２２の表現領域３２８における初期位置は標準位置のままである。一方、粒子３２４と代表点３３０との差分を（Ｌx、Ｌz）で割った商は（０、１）と計算される。従って、粒子３２４のＺ座標にＬzを加算し、図５（ｃ）に示すように、表現領域３２８内の位置３２４´の場所に初期位置として決定される。また、粒子３２６と代表点３３０との差分を（Ｌx、Ｌz）で割った商は（１、１）と計算されるため、図５（ｃ）における位置３２６´に初期位置が決定されることとなる。
【００２９】
そして、雪粒子の標準位置を表現領域内に変換して表現領域内での初期位置を決定すると、初速度（ｖx、ｖy、ｖz）に雪発生からの時間を掛けた移動量を加算して、その時刻における雪の粒子の表現位置を決定する。
【００３０】
このように、各雪の粒子の標準位置を、表現領域の各辺（Ｌx、Ｌz）間隔で移動させることで、表現領域内へ変換させる。このため、図６に示すように、視点の移動に伴って、表現領域３３６が表現領域３３８の位置に移動した場合であっても、その移動の前後で重なる部分に存在する粒子３４０、３４２の位置は変化せず、移動後の表現領域３３８から外れる部分に存在する粒子３４４の位置だけが変更することとなり、生成される画像に矛盾が生じない。また、雪の発生からの時間をカウントし、初期位置からの移動量を毎時算出することとしたので、その時々の粒子の位置をメモリに記憶する必要がない。このため、メモリへの転送の負担を軽減し、画像生成処理をより高速にすることができる。
【００３１】
また、ここで注意すべきことは、雪モデルとして定義したｎ個の粒子は、ワールド座標系とは無関係にローカル座標系内で運動するということである。そして、雪の粒子の表現位置を決定する処理は、表現領域の位置と各粒子の初期位置に基づく標準位置とを対応付け、その対応する位置に粒子が存在すると宣言する処理である。従って、表現領域が複数存在する場合には、各表現領域と各粒子の標準位置とを対応付けて、複数の雪モデル（即ち、複数の粒子）がワールド座標系に存在するかのように設定することができる。
【００３２】
従って、図７に示すように、視界内に２つの表現領域３５０、３５２を設けることも可能である。同図において、表現領域３５０は、雪モデルと合同であり、表現領域３５２は、ＸおよびＺ軸方向に対してそれぞれ雪モデルの２倍の長さを有している。従って、雪の粒子の表現位置を決定する際には、表現領域３５２を雪モデルと合同な形状に分割し、各領域３５０および３５２−１〜４に対して、上記と同様の処理を施すことにより雪が降る環境を表現することができる。
【００３３】
次に、本実施の形態における構成を説明する。
図８は、本発明を家庭用のゲーム装置に適用した場合の一例を示す図である。同図において、ユーザは、ディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してアドベンチャーゲーム等のゲームを楽しむ。この場合、ゲームプログラム等のゲームを行うために必要な情報は、本体装置に着脱自在な情報記憶媒体であるＣＤ−ＲＯＭ１２０６、ＩＣカード１２０８、メモリカード１２１２等に格納されている。
【００３４】
図９は、本実施の形態における機能ブロックの一例を示す図である。同図において、機能ブロックは、操作部１０と、処理部２０と、表示部３０と、情報記憶媒体４０とから構成されている。
【００３５】
操作部１０は、ゲームにおける自キャラクタの操作や、ゲーム開始あるいは中止等の指示を入力するためのものであり、図８に示す、ゲームコントローラ１２０２、１２０４が操作部１０に相当する。
【００３６】
処理部２０は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、音処理等の各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、あるいはＡＳＩＣ（ゲートアレイ等）等のハードウェアや、所与のプログラムにより実現できる。また、処理部２０には、主に、ゲーム演算部２２、画像生成部２４が含まれる。
【００３７】
ゲーム演算部２２は、ゲームの進行処理、選択画面の設定処理、仮想空間上での各オブジェクトやキャラクタの位置や向きを求める処理、視点の位置や視線方向等を求める処理等の種々のゲーム処理を操作部１０からの操作信号や、情報記憶媒体４０から読み出すゲームプログラム４２等に基づいて実行する。
【００３８】
また、ゲーム演算部２２は、情報記憶媒体４０から雪制御情報４４を読み出して本発明を実現するための処理を実行する、雪演算部２２０と、領域決定部２２２と、雪位置決定部２２４とを有する。なお、ゲーム演算部２２は、ゲームの進行に応じて雪の発生タイミングを決定し、雪演算部２２０には、雪モデルを生成させるための指示信号を、領域決定部２２２には、雪を仮想空間に表現する位置を決定させるための指示信号をそれぞれ出力する。
【００３９】
雪演算部２２０は、ゲーム演算部２２から雪モデルの生成指示が入力されると、図２に示すような雪モデルを生成する。即ち、雪演算部２２０は、ローカル座標系における初期位置と、初速度とに基づいて各雪の初期位置からの移動量を１フレーム毎に計算して、雪位置決定部２２４に出力する。
【００４０】
具体的には、１つの雪の寿命をＦmaxフレームと定義する。そして、雪を降らせ始めたフレームから毎フレームカウントするカウンタｆwを設け、各粒子の時刻Ｆを計算する。例えば、
Ｆ＝（ｆw＋ｆ0）ｍｏｄ  Ｆmax    …（６）
として、時刻ＦがＦmaxになるまで粒子を運動させることとする。ここに、ｍｏｄとは、（ｆw＋ｆ0）をＦmaxで割った余りを取ることを意味する。また、ｆ0は、各粒子に初期条件として与えられたフレーム数であり、初期位置に応じて設定する。
【００４１】
そして、雪の初期位置からの移動量、即ち、
（δｘ，δｙ，δｚ）＝（ｖx、ｖy、ｖz）＊Ｆ    …（７）
を計算する。例えば、Ｆ＝９であれば、初期位置から９フレーム後の粒子の位置を算出する。ここに、異なる粒子の初期位置の高さ（ｙ軸方向）が同じであっても、ｆ0の値が異なる場合、Ｆの値が異なるため、その２つの粒子は異なる高さに表現されることとなる。
【００４２】
このように、雪演算部２２０は、雪制御情報４４から各雪の粒子の初期条件を読出し、雪発生からの時間をカウントして、毎時における初期位置からの移動量を計算している。従って、各時刻での雪の位置をメモリ等に書き戻す必要がないため、メモリとのデータ転送の管理・実行処理を削減することができる。
【００４３】
また、雪演算部２２０は、各雪の色の濃度（あるいは、透明度）Ａを制御する。例えば、初期の色の濃度をＡ0、色の変化速度をｖaとし、各フレーム毎に
Ａ＝Ａ0＋ｖa＊Ｆ    …（８）
を計算する。
【００４４】
領域決定部２２２は、ゲーム演算部２２からワールド座標系における自キャラクタの視点位置および視線方向が入力されると、図３あるいは図７に示すように、視点の視線上に各表現領域の中心点を設定し、視界全体に雪を表現できるように表現領域を配置する。
【００４５】
雪位置決定部２２４は、雪演算部２２０から各粒子の初期位置が入力されると、ワールド座標系に各粒子の標準位置を設定する。また、領域決定部２２２から表現領域の設定位置が入力されると、表現領域の代表点を計算し、変換処理を実行して標準位置の粒子を表現領域に変換する。そして、雪演算部２２０から入力される各粒子の移動量を、変換した表現領域内の粒子の初期位置に加算して各粒子のワールド座標系における表現位置を決定する。
【００４６】
以下に、図１０（ａ）に示すような雪モデル６００を用いて本発明を適用した場合について説明する。図１０（ａ）に示す雪モデル６００では、雪モデルの１／３の領域に雪の粒子が定義されていない。また、図１０（ｂ）は、ワールド座標系に、キャラクタ６０２と木オブジェクト６０４を設定した一例を示す図であり、格子状に引かれた線は、雪モデルとの対応を明確にするために表記したものであって、実際に画像化される線ではない。図１１（ａ）は、図１０（ｂ）の６０６の位置に自キャラクタの視点があり、表現領域を６０８の位置に設定した場合に生成される画像を示す図である。図１１（ａ）において、画面右側の１／３の領域に雪が表現されていない理由は、図１０（ａ）に示す雪モデル６００に起因する。
【００４７】
一方、自キャラクタの視点位置が図１０（ｂ）の６１０に移動すると、これに伴って表現領域６０８も表現領域６１２の位置に移動する。新たに表現領域となった部分６１４には、表現領域６１２から外れた部分６１６に表現されていた粒子が表現されることとなる。従って、視点６１０に基づく画像は、図１１（ｂ）に示すものとなる。図１１（ａ）の領域７００に表示されていた雪が、図１１（ｂ）の領域７０２に表示される。
【００４８】
画像生成部２４は、ゲーム演算部２２からの指示に応じて各種の画像処理を行う。例えば、ゲーム演算部２２が設定する仮想空間における自キャラクタの視点に基づく画像データを生成し、表示部３０に出力して表示させる。また、画像生成部２４は、ゲーム演算部２２から各雪粒子の座標データおよび色の濃度（透明度）データが入力されると、視点から見える奥行き順に従って大きさを変更させ、色の濃度データに従って濃度を変更させて雪の画像データを生成する。
【００４９】
表示部３０は、画像生成部２４から入力される画像データを画面に出力するものであり、ＣＲＴ、ＬＣＤ、ＨＭＤ等のハードウェアにより実現できる。
【００５０】
情報記憶媒体４０は、ゲームプログラム４２を記憶している。この情報記憶媒体４０の機能は、ＣＤ−ＲＯＭ、ゲームカセット、ＩＣカード、ＭＯ、ＦＤ、ＤＶＤ、メモリ、ハードディスクなどのハードウェアによって実現できる。また、情報記憶媒体４０には、雪制御情報４４が含まれており、この雪制御情報４４には、後述する雪表現処理を実行するためのプログラム、および、各雪の初期条件等のデータ等が含まれている。
【００５１】
次に、雪演算部２２０、領域設定部２２２、雪位置決定部２２４により実行される雪表現処理について、図１２に示すフローチャートを用いて以下説明をする。なお、本処理は、１フレーム毎に、全ての表現領域に対して実行するものである。
【００５２】
図１２において、領域決定部２２２は、ゲーム演算部２２から自キャラクタの視点位置および視線方向等のデータが入力されるとワールド座標系における表現領域の位置を決定する（ステップＳ１）。そして、表現領域の代表点となる座標を計算する（ステップＳ２）。
【００５３】
次いで、雪演算部２２０が変数ｉに０を代入した後（ステップＳ３）、雪位置決定部２２４は、雪演算部２２０からローカル座標系におけるｉ番目の粒子の初期位置が入力されると、ワールド座標系の標準的な位置と対応付けて、標準位置を設定する（ステップＳ４）。
【００５４】
また、雪演算部２２０は、雪モデル中のｉ番目の粒子を選択し、ローカル座標系における雪粒子の移動量（δｘ、δｙ、δｚ）を算出する（ステップＳ５）。また、色の濃度を計算して（ステップＳ６）、色濃度データとして画像生成部２４に出力する。
【００５５】
また、雪位置決定部２２４は、ステップＳ４において、ｉ番目の粒子の標準位置を設定すると、雪演算部２２０の処理と並列して、ｉ番目の粒子の標準位置から表現領域への変換処理を実行する。まず、ｉ番目の粒子と代表点との差分（δＸ，δＺ）を計算する（ステップＳ７）。
【００５６】
次いで、（δＸ／Ｌx、δＺ／Ｌz）の商（α、β）を算出する（ステップＳ８）。そして、（αＬx＋Ｘ0、βＬz＋Ｚ0）を算出して、表現領域内での粒子ｉの初期位置（Ｘ，Ｚ）を求める（ステップＳ９）。
【００５７】
雪位置決定部２２４は、ステップＳ５で算出した粒子ｉのローカル座標系での移動量（δｘ、δｙ、δｚ）と、ステップＳ９で求めた表現領域内での粒子ｉの初期位置（Ｘ、Ｚ）とから、ワールド座標系における粒子ｉの表現位置（Ｘ、Ｙ、Ｚ）を決定し（ステップＳ１０）、粒子ｉの座標データとして画像生成部２４に出力する。
【００５８】
画像生成部２４は、ゲーム演算部２２から入力された色濃度データと座標データに基づいて粒子ｉの画像を生成する（ステップＳ１１）。
【００５９】
そして、ｉに１を加算し（ステップＳ１２）、ｉ＝ｎであるか否か、即ち、雪モデルに定義された全ての粒子の処理を終了したか否かを確かめる（ステップＳ１３）。未処理の粒子が存在するならば、ステップＳ４に戻ってステップＳ４からＳ１３の処理を繰り返し、粒子ｉの表現位置を決定し、粒子ｉの画像を生成する。ステップＳ１３において、ｉ＝ｎの条件を満たすならば、本処理を終了する。
【００６０】
次に、本実施の形態を実現できるハードウェアの構成の一例について、図１３を用いて説明する。同図に示す装置では、ＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、音生成ＩＣ１００８、画像生成ＩＣ１０１０、Ｉ／Ｏポート１０１２、１０１４が、システムバス１０１６により相互にデータ入出力可能に接続されている。そして、画像生成ＩＣ１０１０には、ディスプレイ１０１８が接続され、音生成ＩＣ１００８には、スピーカ１０２０が接続され、Ｉ／Ｏポート１０１２には、コントロール装置１０２２が接続され、Ｉ／Ｏポート１０１４には、通信装置１０２４が接続されている。
【００６１】
情報記憶媒体１００６は、プログラム、表示物を表現するための画像データ、音データ、プレイデータ等が主に格納されるものである。例えば、家庭用ゲーム装置では、ゲームプログラム等を格納する情報記憶媒体として、ＣＤ−ＲＯＭ、ゲームカセット、ＤＶＤ等が用いられ、プレイデータを格納する情報記憶媒体としてメモリカードなどが用いられる。また、業務用ゲーム装置では、ＲＯＭ等のメモリやハードディスクが用いられ、この場合には、情報記憶媒体１００６は、ＲＯＭ１００２になる。
【００６２】
コントロール装置１０２２は、ゲームコントローラ、操作パネル等に相当するものであり、ユーザがゲーム進行に応じて行う判断の結果を装置本体に入力するための装置である。
【００６３】
情報記憶媒体１００６に格納されるプログラム、ＲＯＭ１００２に格納されるシステムプログラム（装置本体の初期化情報等）、コントロール装置１０２２によって入力される信号等に従って、ＣＰＵ１０００は、装置全体の制御や各種データ処理を行う。ＲＡＭ１００４は、このＣＰＵ１０００の作業領域等として用いられる記憶手段であり、情報記憶媒体１００６やＲＯＭ１００２の所与の内容、あるいはＣＰＵ１０００の演算結果が格納される。
【００６４】
更に、この種の装置には、音生成ＩＣ１００８と画像生成ＩＣ１０１０とが設けられていて、ゲーム音やゲーム画像の好適な出力が行えるようになっている。音生成ＩＣ１００８は、情報記憶媒体１００６やＲＯＭ１００２に記憶される情報に基づいて効果音やバックグラウンド音楽等のゲーム音を生成する集積回路であり、生成されたゲーム音は、スピーカ１０２０によって出力される。また、画像生成ＩＣ１０１０は、ＲＡＭ１００４、ＲＯＭ１００２、情報記憶媒体１００６等から出力される画像情報に基づいてディスプレイ１０１８に出力するための画素情報を生成する集積回路である。またディスプレイ１０１８は、ＣＲＴやＬＣＤ、ＴＶ、プラズマディスプレイ、プロジェクター等の表示装置を含む意である。
【００６５】
また、通信装置１０２４は、ゲーム装置内部で利用される各種の情報を外部とやり取りするものであり、他のゲーム装置と接続されてゲームプログラムに応じた所与の情報を送受したり、通信回線を介して、ゲームプログラム等の情報を送受すること等に利用される。
【００６６】
また、図１〜図１１で説明した種々の処理は、図１２のフローチャートに示した処理等を行うための雪制御情報４４等を含むプログラムを格納した情報記憶媒体１００６と、該プログラムに従って動作するＣＰＵ１０００、画像生成ＩＣ１０１０、音生成ＩＣ１００８等によって実現される。なお、画像生成ＩＣ１０１０、音生成ＩＣ１００８等で行われる処理は、ＣＰＵ１０００あるいは汎用のＤＳＰ等によりソフトウェア的に行ってもよい。
【００６７】
図１４に、ホスト装置１３００と、このホスト装置１３００と通信回線１３０２を介して接続される端末１３０４−１〜１３０４−ｎとを含むゲーム装置に本実施の形態を適用した場合の例を示す。
【００６８】
この場合、図９に示す雪制御情報４４や、ゲームプログラム４２等は、例えば、ホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。また、端末１３０４−１〜１３０４−ｎが、ＣＰＵ、画像生成ＩＣ、音生成ＩＣ、を有し、スタンドアローンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４−１〜１３０４−ｎに配送される。一方、スタンドアローンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４−１〜１３０４−ｎに伝送し端末において出力することになる。
【００６９】
なお、本発明は、上記実施例で説明したものに限らず、種々の変形実施が可能である。例えば、上記実施例においては、雪の発生に係る処理をＣＰＵが実行することとして説明したが、ベクトル演算プロセッサ等を用いてゲーム演算処理とは独立して処理することとしてもよい。即ち、雪の発生に係るプロセッサは、自キャラクタの視点位置および視線方向等に基づいて、表現領域を設定するとともに、雪モデルの演算処理や、雪モデルと表現領域とを対応付けてワールド座標系における粒子の表現位置を決定する処理等を、ＣＰＵとは独立して実行することとしてもよい。この場合には、ＣＰＵの処理と平行して環境を生成する処理を行うことができるため、より効率的に画像を生成できる。
【００７０】
また、雪演算部２２０によって各雪の粒子の移動位置を計算するようにしたが、予め複数の粒子（例えば４つや５つの粒子）の表示パターンを定義し、雪演算部は、この表示パターンを代表する一点の位置を制御することとしてもよい。あるいは、雪モデルの大きさを小さく、かつ、雪モデル内に存在する粒子数を少なく（あるいは、１つ）定義し、多数の表現領域を視界内に配置するようにしてもよい。
【００７１】
また、本実施の形態では、単位領域に定義される環境として雪（雪モデル）を扱ったが、例えば、図１５に示すように、単位領域内に密生する草オブジェクトを定義して、本発明を適用してもよい。ただし、この場合、単位領域のｙ軸方向に上限を設けず、視線が上空に向いても草オブジェクトが表現されないようにする必要がある。
【００７２】
【発明の効果】
本発明によれば、画面上に表現された環境（あるいは、環境を構成する粒子やオブジェクト）が所与の視点に基づく視界の移動に伴って繰り返し表現されるため、仮想空間に設定する環境を空間全体に定義する必要がなく、ゲーム画像を生成する処理速度を向上させるとともに、メモリ資源を節約することができる。また、環境を有する単位領域を設定し、視界内に複数配置できるため、環境を定義する処理そのものや、環境を構成する粒子やオブジェクトの運動を制御する処理等を更に削減することができる。
【図面の簡単な説明】
【図１】（ａ）は、雪が降る状態を表現する一画像例を示す図。（ｂ）は、視点位置が（ａ）の位置から右にずれた場合の一画像例を示す図。
【図２】雪モデルの一例を示す図。
【図３】ワールド座標系に表現領域を設定した一例を示す図。
【図４】（ａ）は、ワールド座標系に表現領域を設定した一例を示す図。（ｂ）は、（ａ）に示す表現領域がＸ軸方向に移動した図。（ｃ）は、（ｂ）に示す表現領域がＺ軸方向に移動した図。
【図５】（ａ）は、雪モデルおよび各粒子の標準位置を示す図。（ｂ）は、ワールド座標系に表現領域を設定した一例を示す図。（ｃ）は、表現領域に雪の粒子を表現した図。
【図６】標準位置に基づいて表現領域内に各粒子を配置した図。
【図７】ワールド座標系に複数の表現領域を設定した一例を示す図。
【図８】本発明を家庭用のゲーム装置に適用した場合の一例を示す図。
【図９】機能ブロックの一例を示す図。
【図１０】（ａ）は、雪モデルの一例を示す図。（ｂ）は、仮想空間の一例を示す図。
【図１１】（ａ）は、図１０（ｂ）の視点６０６に基づく一画像例を示す図。（ｂ）は、図１０（ｂ）の視点６１０に基づく一画像例を示す図。
【図１２】雪表現処理を説明するフローチャート。
【図１３】本実施の形態を実現できるハードウェア構成の一例を示す図。
【図１４】ホスト装置と通信回線を介して接続されるゲーム端末に本実施の形態を適用した場合の一例を示す図。
【図１５】単位領域内に設定された草オブジェクトの一例を示す図。
【符号の説明】
１０            操作部
２０            処理部
２２        ゲーム演算部
２２０            雪演算部
２２２            領域設定部
２２４            雪位置決定部
２４        画像生成部
４０            情報記憶媒体
４２      ゲームプログラム
４４      雪制御情報
【図１】
0004443716.tif 000002
【図２】
0004443716.tif 000003
【図３】
0004443716.tif 000004
【図４】
0004443716.tif 000005
【図５】
0004443716.tif 000006
【図６】
0004443716.tif 000007
【図７】
0004443716.tif 000008
【図８】
0004443716.tif 000009
【図９】
0004443716.tif 000010
【図１０】
0004443716.tif 000011
【図１１】
0004443716.tif 000012
【図１２】
0004443716.tif 000013
【図１３】
0004443716.tif 000014
【図１４】
0004443716.tif 000015
【図１５】
0004443716.tif 000016