図面 (/)

技術 ゲーム情報、情報記憶媒体及びゲーム装置

出願人 株式会社バンダイナムコエンターテインメント
発明者 松野俊明
出願日 2000年12月11日 (18年5ヶ月経過) 出願番号 2000-376702
公開日 2002年6月28日 (16年10ヶ月経過) 公開番号 2002-183756
状態 特許登録済
技術分野 電子ゲーム機 イメージ処理・作成 イメージ生成
主要キーワード 各特定点 上下左右位置 配置層 首振り角 単位ベクトル化 短絡化 分布位置 積乱雲
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2002年6月28日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

本発明の課題は、仮想カメラの位置や視線方向の変化に対して、矛盾のない表現を実現することである。

解決手段

初期設定部616がゲーム開始時に初期データ950を設定し、小雲描画部632が仮想カメラ100のピッチ角Xに基づいて、雲パーツA(122)、雲パーツB(124)、気流テクスチャ104を合成して小雲テクスチャ102を生成する。中雲生成部612及び中雲描画部634は、初期データ950及び小雲テクスチャ102に基づいて、中雲テクスチャを生成する。そして、雲海生成部618及び雲海描画部640は初期データ950及び中雲テクスチャに基づいて、雲設定領域R内に中雲ビルボードを配置して雲海を含む1フレーム分の画像を生成する。

概要

背景

従来、テレビゲーム装置等の画像において、表現する際には、処理を軽減するために、一枚の平面状のポリゴンに雲のテクスチャマッピングした雲オブジェクトオブジェクト空間に複数水平に設定して、雲を表現していた。しかしながら、例えば、飛行機操縦するゲームなどにおいて、操縦者視点から見た画像を生成する場合には、仮想カメラ(視点)が雲と水平となることもあり、雲に厚味がないことが分かってしまうといった問題があった。そのため、雲オブジェクトを常に仮想カメラの視線方向に垂直に対向させるいわゆるビルボード処理を行なっていた。

概要

本発明の課題は、仮想カメラの位置や視線方向の変化に対して、矛盾のない雲の表現を実現することである。

初期設定部616がゲーム開始時に初期データ950を設定し、小雲描画部632が仮想カメラ100のピッチ角Xに基づいて、雲パーツA(122)、雲パーツB(124)、気流テクスチャ104を合成して小雲テクスチャ102を生成する。中雲生成部612及び中雲描画部634は、初期データ950及び小雲テクスチャ102に基づいて、中雲テクスチャを生成する。そして、雲海生成部618及び雲海描画部640は初期データ950及び中雲テクスチャに基づいて、雲設定領域R内に中雲ビルボードを配置して雲海を含む1フレーム分の画像を生成する。

目的

本発明の課題は、仮想カメラの位置や視線方向の変化に対して、矛盾のない雲の表現を実現することである。

効果

実績

技術文献被引用数
9件
牽制数
4件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

プロセッサによる演算・制御により、第1の仮想カメラから見た第1のオブジェクト空間の画像を生成して、所与のゲームを実行することとなる第1の装置に対して、前記第1の仮想カメラの所与の角度パラメータの値に応じて予め用意された複数種類の第1の雲素を、前記所与の角度パラメータの現在値に応じた所与の割合で合成処理することにより、前記第1のオブジェクト空間に前記第1の仮想カメラに向けて配置される板状体の第1の雲状オブジェクトに反映させるテクスチャ情報を生成する第1の生成手段、を機能させるための、前記プロセッサによる演算可能なゲーム情報

請求項2

請求項1記載のゲーム情報であって、前記第1の雲素は少なくとも透明度情報を含む色情報を有するテクスチャ情報であり、前記第1の生成手段に対して、前記複数種類の第1の雲素の色情報を、前記所与の割合で合算することにより前記複数種類の第1の雲素を合成処理する、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項3

請求項2記載のゲーム情報であって、前記第1の装置に対して、所与のアニメーションを前記第1の雲素の色情報に反映させるアニメーション反映手段、を機能させるための情報を含むことを特徴とするゲーム情報。

請求項4

請求項3記載のゲーム情報であって、前記アニメーション反映手段に対して、前記第1の雲素に反映させる前記所与のアニメーションの向き、縮尺、及び部分の内少なくとも1つを変更する、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項5

請求項3または4記載のゲーム情報であって、前記所与のアニメーションは、少なくとも透明度情報を含む色情報の時間的変化を表すアニメーションであり、前記アニメーション反映手段に対して、前記所与のアニメーションに基づいて前記第1の雲素の色情報を決定する、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項6

請求項1から5のいずれか記載のゲーム情報であって、前記第1の生成手段に対して、前記所与の角度パラメータを前記第1の仮想カメラのピッチ角及び/又はヨー角の角度パラメータとする手段と、前記第1の仮想カメラの、ピッチ角及び/又はヨー角の角度パラメータの値に応じて予め用意された複数種類の第1の雲素を、対応する前記第1の仮想カメラの角度パラメータの現在値に応じた所与の割合で合成処理する手段と、を機能させるための情報を含むことを特徴とするゲーム情報。

請求項7

請求項1から6のいずれか記載のゲーム情報であって、前記第1の生成手段に対して、前記ピッチ角に応じて予め用意された第1の雲素がある場合には、その第1の雲素を前記第1の仮想カメラのロール角或いはヨー角に応じて回転させるとともに、前記ヨー角に応じて予め用意された第1の雲素がある場合には、その第1の雲素を前記第1の仮想カメラのロール角或いはピッチ角に応じて回転させて前記合成処理を行う、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項8

請求項1から7のいずれか記載のゲーム情報であって、前記第1の生成手段に対して、前記第1の仮想カメラのピッチ角が水平方向用と垂直方向用の少なくとも2種類の予め用意された第1の雲素を、前記第1の仮想カメラのピッチ角に応じた所与の割合で合成処理することにより、前記第1の仮想カメラのピッチ角に応じて予め用意された複数種類の第1の雲素を合成処理する、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項9

請求項8記載のゲーム情報であって、前記第1の生成手段に対して、前記第1の仮想カメラのロール角に応じて前記水平方向用および前記垂直方向用の第1の雲素を回転させて前記合成処理を行う、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項10

請求項8または9記載のゲーム情報であって、前記垂直方向用の第1の雲素には、前記第1の仮想カメラのピッチ角が仰角および俯角の場合に対応する、更に2種類の第1の雲素があり、前記第1の生成手段に対して、前記垂直方向用の第1の雲素に含まれる前記2種類の第1の雲素を、前記第1の仮想カメラのピッチ角に応じて切り換えることにより、前記垂直方向用の第1の雲素とする、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項11

請求項8から10のいずれか記載のゲーム情報であって、前記水平方向用の第1の雲素には、前記第1の仮想カメラのヨー角の角度範囲を等分した各角度範囲に対応する、更に複数種類の第1の雲素があり、前記第1の生成手段に対して、前記水平方向用の第1の雲素に含まれる前記複数種類の第1の雲素を、前記第1の仮想カメラのヨー角に応じて切り換えることにより、前記水平方向用の第1の雲素とする、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項12

プロセッサによる演算・制御により、仮想カメラから見たオブジェクト空間の画像を生成して、所与のゲームを実行することとなる装置に対して、前記オブジェクト空間に配置される雲状オブジェクトを複数種類の雲素から生成するとともに、前記仮想カメラの位置または視線方向が変化する場合に、前記複数種類の雲素を所与の処理により切り換えることにより前記雲状オブジェクトを生成する手段、を機能させるための、前記プロセッサによる演算可能なゲーム情報。

請求項13

プロセッサによる演算・制御により、第2の仮想カメラから見た第2のオブジェクト空間の画像を生成して、所与のゲームを実行することとなる第2の装置に対して、モデル空間に第2の雲素を複数配置する第2の配置手段と、前記雲モデル空間を透視変換することにより、前記第2のオブジェクト空間に前記第2の仮想カメラに向けて配置される板状体の第2の雲状オブジェクトに反映させるテクスチャ情報を生成する第2の生成手段と、を機能させるための、前記プロセッサによる演算可能なゲーム情報。

請求項14

請求項13記載のゲーム情報であって、前記第2の生成手段に対して、前記第2の仮想カメラと、前記雲モデル空間を透視変換するための雲モデル用仮想カメラとを連動させ、前記雲モデル用仮想カメラに基づいて前記雲モデル空間を透視変換する、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項15

請求項13または14記載のゲーム情報であって、前記第2の配置手段に対して、前記複数の第2の雲素の配置を、前記雲モデル空間の所与の範囲に偏った分布とする、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項16

請求項13から15のいずれか記載のゲーム情報であって、前記第2の配置手段に対して、前記雲モデル空間に配置する前記各第2の雲素の大きさを変更する、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項17

請求項13から16のいずれか記載のゲーム情報であって、前記第2の装置に対して、前記第2のオブジェクト空間の光源と、前記第2の雲状オブジェクトとに基づいて、前記第2の生成手段により生成されたテクスチャ情報の色情報を決定する色情報決定手段、を機能させるための情報を含むことを特徴とするゲーム情報。

請求項18

請求項17記載のゲーム情報であって、前記色情報決定手段に対して、前記第2の雲状オブジェクトにおける少なくとも2つの特定点の色情報を、前記第2のオブジェクト空間における光源に基づいて決定し、この特定点の色情報に基づいて前記テクスチャ情報の色情報を決定する、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項19

請求項18記載のゲーム情報であって、前記色情報決定手段に対して、前記光源の光線方向の角度に応じて予め用意された複数の色情報を、当該特定点における前記光源の光線方向の角度に応じた所与の割合で合成処理することにより、前記各特定点の色情報を決定する、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項20

請求項1から11のいずれか記載のゲーム情報と、請求項13から19のいずれか記載のゲーム情報とを含むゲーム情報であって、前記第1の装置と前記第2の装置は同一の装置であり、当該装置に対して、前記第1の仮想カメラを前記第2の仮想カメラとする手段と、前記第1の生成手段により生成されたテクスチャ情報を前記第1の雲状オブジェクトに反映させる手段と、前記第1の雲状オブジェクトを前記第2の雲素とする手段と、を機能させるための情報を含むことを特徴とするゲーム情報。

請求項21

プロセッサによる演算・制御により、仮想カメラから見たオブジェクト空間の画像を生成して、所与のゲームを実行することとなる装置に対して、所与のアニメーションが施された複数種類の雲素を重ね合わせて、前記オブジェクト空間に配置される雲状オブジェクトを生成する手段、を機能させるための、前記プロセッサによる演算可能なゲーム情報。

請求項22

プロセッサによる演算・制御により、第3の仮想カメラから見た第3のオブジェクト空間の画像を生成して、所与のゲームを実行することとなる第3の装置に対して、所与の配置位置繰り返しパターン展開することにより前記第3のオブジェクト空間に複数配置する第3の雲素の配置位置を決定する配置位置決定手段と、前記配置位置決定手段により決定された配置位置に、板状体の前記第3の雲素を配置する第3の配置手段と、前記第3の雲素を、前記第3の仮想カメラに対する所与の方向に向ける対向配置手段と、を機能させるための、前記プロセッサによる演算可能なゲーム情報。

請求項23

請求項22記載のゲーム情報であって、前記第3の装置に対して、前記第3のオブジェクト空間内の所与の高度に、雲素配置層を設定する手段、を機能させるための情報と、前記第3の配置手段に対して、前記雲素配置層内に前記第3の雲素を配置する、ように機能させるための情報と、を含むことを特徴とするゲーム情報。

請求項24

請求項22または23記載のゲーム情報であって、前記第3の装置に対して、前記第3の仮想カメラからの距離に基づいて、第3の雲素配置領域を設定する第3の雲素領域設定手段、を機能させるための情報と、前記第3の配置手段に対して、前記第3の雲素配置領域内に前記第3の雲素を配置する、ように機能させるための情報と、を含むことを特徴とするゲーム情報。

請求項25

請求項22から24のいずれか記載のゲーム情報であって、前記第3の装置に対して、前記第3のオブジェクト空間における前記第3の雲素の配置位置に応じて、前記各第3の雲素の透明度を設定する第3の雲素透明度設定手段、を機能させるための情報を含むことを特徴とするゲーム情報。

請求項26

請求項25記載のゲーム情報であって、前記第3の雲素透明度設定手段に対して、前記第3のオブジェクト空間における雲の存在可否を表す雲分布図に基づいて、前記各第3の雲素の透明度を設定する、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項27

請求項25または26記載のゲーム情報であって、前記第3の雲素透明度設定手段に対して、前記第3の仮想カメラから前記各第3の雲素までの距離に基づいて、前記各第3の雲素の透明度を設定する、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項28

請求項24記載のゲーム情報であって、前記第3の装置に対して、前記第3の仮想カメラからの距離が前記第3の雲素配置領域より遠方に、第4の雲素配置領域を設定する第4の雲素領域設定手段と、前記第4の雲素配置領域に、板状体の第4の雲素を略水平状に複数配置する第4の配置手段と、を機能させるための情報を含むことを特徴とするゲーム情報。

請求項29

請求項28記載のゲーム情報であって、前記第3の装置に対して、前記配置位置決定手段が用いる前記所与の配置位置繰り返しパターンを展開することにより、前記第4の雲素の配置位置を決定する手段、を機能させるための情報と、前記第4の配置手段に対して、前記決定された第4の雲素の配置位置に、前記第4の雲素を略水平状に配置する、ように機能させるための情報と、を含むことを特徴とするゲーム情報。

請求項30

請求項28または29記載のゲーム情報であって、前記第3の装置に対して、前記第4の雲素の配置位置に応じて、前記各第4の雲素の透明度を設定する第4の雲素透明度設定手段、を機能させるための情報を含むことを特徴とするゲーム情報。

請求項31

請求項30記載のゲーム情報であって、前記第4の雲素透明度設定手段に対して、前記第3のオブジェクト空間における雲の存在可否を表す雲分布図に基づいて、前記各第4の雲素の透明度を設定する、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項32

請求項30または31記載のゲーム情報であって、前記第4の雲素透明度設定手段に対して、前記第3の仮想カメラから前記各第4の雲素までの距離に基づいて、前記各第4の雲素の透明度を設定する、ように機能させるための情報を含むことを特徴とするゲーム情報。

請求項33

請求項13から20のいずれか記載のゲーム情報と、請求項22から32のいずれか記載のゲーム情報とを含むゲーム情報であって、前記第2の装置と前記第3の装置は同一の装置であり、当該装置に対して、前記第2の仮想カメラを前記第3の仮想カメラとする手段と、前記第2のオブジェクト空間を前記第3のオブジェクト空間とする手段と、前記第2の生成手段により生成されたテクスチャ情報を前記第2の雲状オブジェクトに反映させる手段と、前記第2の雲状オブジェクトを前記第3の雲素とする手段と、を機能させるための情報を含むことを特徴とするゲーム情報。

請求項34

請求項33記載のゲーム情報であって、前記第2の生成手段に対して、複数種類のテクスチャ情報を生成する、ように機能させるための情報と、前記装置に対して、前記第2の生成手段により生成される複数種類のテクスチャ情報を反映させることにより、テクスチャ情報の異なる複数種類の第2の雲状オブジェクトを生成する手段、を機能させるための情報と、前記第3の配置手段に対して、前記複数種類の第2の雲状オブジェクトを配置する、ように機能させるため情報と、を含むことを特徴とするゲーム情報。

請求項35

プロセッサによる演算・制御により、仮想カメラから見たオブジェクト空間の画像を生成して、所与のゲームを実行することとなる装置に対して、前記仮想カメラの位置または視線方向が変化する場合に、視界から外れた領域に存在していた雲状オブジェクトを新たに視界となる領域に表現することにより、雲状オブジェクトが存する空間が続いていることを擬似的に表現する手段、を機能させるための、前記プロセッサによる演算可能なゲーム情報。

請求項36

プロセッサによる演算・制御により、仮想カメラから見たオブジェクト空間の画像を生成して、所与のゲームを実行することとなる装置に対して、前記仮想カメラの位置の変化に応じて、前記仮想カメラの視界の略中央付近から仮想カメラに接近する雲状オブジェクトに対する透明度を上げて、視界の遠方から視界の略中央付近に移動する雲状オブジェクトに対する透明度を下げる手段、を機能させるための、前記プロセッサによる演算可能なゲーム情報。

請求項37

請求項1から36のいずれか記載のゲーム情報を記憶する情報記憶媒体

請求項38

仮想カメラから見たオブジェクト空間の画像を生成して、所与のゲームを実行するゲーム装置であって、前記仮想カメラの所与の角度パラメータの値に応じて予め用意された複数種類の雲素を、前記所与の角度パラメータの現在値に応じた所与の割合で合成処理することにより、前記オブジェクト空間に前記仮想カメラに向けて配置される板状体の雲状オブジェクトに反映させるテクスチャ情報を生成する生成手段、を備えるゲーム装置。

請求項39

仮想カメラから見たオブジェクト空間の画像を生成して、所与のゲームを実行するゲーム装置であって、雲モデル空間に雲素を複数配置する配置手段と、前記雲モデル空間を透視変換することにより、前記オブジェクト空間に前記仮想カメラに向けて配置される板状体の雲状オブジェクトに反映させるテクスチャ情報を生成する生成手段と、を備えるゲーム装置。

請求項40

仮想カメラから見たオブジェクト空間の画像を生成して、所与のゲームを実行するゲーム装置であって、前記仮想カメラの所与の角度パラメータの値に応じて予め用意された複数種類の雲素を、前記所与の角度パラメータの現在値に応じた所与の割合で合成処理することによりテクスチャ情報を生成する第1の生成手段と、前記第1の生成手段により生成されたテクスチャ情報を、板状体の第1の雲状オブジェクトに反映させる手段と、雲モデル空間に前記第1の雲状オブジェクトを複数配置する配置手段と、前記雲モデル空間を透視変換することにより、前記オブジェクト空間に前記仮想カメラに向けて配置される板状体の第2の雲状オブジェクトに反映させるテクスチャ情報を生成する第2の生成手段と、を備えるゲーム装置。

請求項41

仮想カメラから見たオブジェクト空間の画像を生成して、所与のゲームを実行するゲーム装置であって、所与の配置位置繰り返しパターンを展開することにより前記オブジェクト空間に複数配置する雲素の配置位置を決定する配置位置決定手段と、前記配置位置決定手段により決定された配置位置に、板状体の前記雲素を配置する配置手段と、前記雲素を前記仮想カメラに対する所与の方向に向ける対向配置手段と、を備えるゲーム装置。

請求項42

仮想カメラから見たオブジェクト空間の画像を生成して、所与のゲームを実行するゲーム装置であって、雲モデル空間に雲素を複数配置する雲素配置手段と、前記雲モデル空間を透視変換することにより、テクスチャ情報を生成する生成手段と、前記生成手段により生成されるテクスチャ情報を板状体の雲状オブジェクトに反映させる手段と、所与の配置位置繰り返しパターンを展開することにより前記オブジェクト空間に複数配置する前記雲状オブジェクトの配置位置を決定する配置位置決定手段と、前記配置位置決定手段により決定された配置位置に、前記雲状オブジェクトを配置する雲状オブジェクト配置手段と、前記雲状オブジェクトを前記仮想カメラに対する所与の方向に向ける対向配置手段と、を備えるゲーム装置。

技術分野

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に示す概念図のように、気流テクスチャ104の不透明度(以下、α値という。)を雲パーツA(122)に設定、気流テクスチャ104のα値を雲パーツB(124)に設定、雲パーツ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のテクスチャ(以下、中雲テクスチャ)を生成する方法について、詳細に説明する。なお、以下では、初期設定として、各中雲を構成する小雲ビルボードを分布させる方法について説明した後、小雲ビルボードの描画として、小雲ビルボードの集合体を描画する方法、即ち、各小雲ビルボードの不透明度αを描画し、着色する方法について説明する。

0147

初期設定
初期設定では、小雲ビルボードの分布と、各小雲ビルボードの大きさについて設定する。具体的には、中雲1つ1つに対して、中雲座標系を定義し、32個の小雲ビルボードの座標を設定するとともに、各小雲ビルボードの大きさを決定し、各中雲のデータとして記憶する。なお、小雲ビルボードの大きさや分布の設定については、より自然体に近い中雲を生成するために、乱数を用いて行う。即ち、各小雲ビルボードの座標および大きさを乱数により決定する。

0148

小雲ビルボードの座標を決定する際には、座標における各成分毎に乱数を発生する。ただし、乱数を無制限に発生させた場合、不必要に大きい値が得られる可能性がある。このため、生成する乱数に下限と上限を設け、所定の範囲内の値が得られるように設定する。ただし、乱数を発生したとき、下限から上限に至る範囲内の全ての値について出現確立が等しい。従って、得られた乱数を小雲ビルボードの座標成分として直接採用した場合、32個の小雲ビルボードは、所与の立方体内に満遍なく分布されることとなり、図11に示す中雲のような一部に寄り集まった雲を表現することができない。そこで、分布に偏りを持たせるために、1つの小雲ビルボードの座標を決定する際に、各座標の1成分につき複数の乱数を発生して、その平均の値を採用する。

0149

具体的には、各成分の値を次の式により決定する。
xn=(R1+R2+R3+R4)/4−(Rmax−Rmin)/2
yn=(R5+R6+R7+R8)/4−(Rmax−Rmin)/2
zn=(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

小雲ビルボードの描画
続いて、ゲーム実行中において、小雲ビルボードを描画する処理について説明する。

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の範囲を取り、ωの増加に伴って増加する関数であればいずれのものであってもかまわないが、例えば、
f(ω)=0 (−1≦ω<0)
=√ω (0≦ω≦1) …(6)
といった関数を定義する(ただし、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(ω)を次のように設定する。
FL(ω) =cos2{(ω+1)・π/2} (−1≦ω≦0)
=0 (0<ω)
FB(ω) =sin2{(ω+1)・π/2} (−1≦ω≦1)
FS(ω) =0 (ω<0)
=cos2{(ω+1)・π/2} (0≦ω≦1) …(8)
図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 2
L−L …(9)
CL[i].z={Ct[i].z+{2L−(FPW.z mod2L)}}mod 2
L−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”で配置されることとなる。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ