(57)【要約】【課題】少ない処理負荷でリアルタイムに雷が変化する様子を表現できるプログラム、情報記憶媒体及び画像生成システムを提供する。【解決手段】新たなパーツオブジェクトＰＯＢを生成する際に、前回生成したパーツオブジェクトＰＯＢのパワーパラメータＰを減衰させて、減衰させたパワーパラメータＰに基づいて、新たに生成されるパーツオブジェクトＰＯＢのサイズを決定する。分岐判断用のパラメータＣが用意されていて、パラメータＣがしきい値Ｃｔｈを越えたことを条件に前回生成したパーツオブジェクトＰＯＢに連結される新たなパーツオブジェクトＰＯＢを複数生成する分岐パーツ生成処理を行う。分岐パーツ生成処理では、分配率に応じて分岐元のパーツオブジェクトＰＯＢのパワーパラメータＰを分岐先のパーツオブジェクトＰＯＢに対して分配する。【選択図】図６
2007164323.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
複数のパーツオブジェクトが連結された雷オブジェクトを生成するオブジェクト生成部と、
生成された雷オブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記オブジェクト空間における所与の視点から見た画像を生成する描画部として、
コンピュータを機能させ、
前記オブジェクト生成部が、
前記複数のパーツオブジェクトを所与の基準パーツオブジェクトから順に生成し、
前記基準パーツオブジェクトに対して設定されるパワーパラメータに応じて、新たに生成されるパーツオブジェクトのサイズ、形状及び数の少なくともいずれか一つを決定することを特徴とするプログラム。
【請求項２】
請求項１において、
前記オブジェクト生成部が、
前記基準パーツオブジェクトに対して設定されるパワーパラメータを変化させながら、変化後のパワーパラメータに基づいて、新たに生成されるパーツオブジェクトのサイズ及び形状の少なくとも一方を決定することを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記パーツオブジェクトは多角形ポリゴンであって、
前記オブジェクト生成部が、
パワーパラメータに基づいて前記多角形ポリゴンのサイズ及び形状の少なくとも一方を決定することを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記オブジェクト生成部が、
前記パーツオブジェクトを生成する毎に乱数値を取得して、取得した乱数値を累積する処理を行い、
累積値がしきい値を越えた場合には、前回生成したパーツオブジェクトに連結される複数のパーツオブジェクトを新たに生成することを特徴とするプログラム。
【請求項５】
請求項４において、
前記オブジェクト生成部が、
前回生成したパーツオブジェクトに連結される複数のパーツオブジェクトを新たに生成する場合に、
前回生成したパーツオブジェクトのパワーパラメータを新たに生成される複数のパーツオブジェクトに対して所与の割合で分配する処理を行い、
分配後のパワーパラメータに基づいて、前回生成したパーツオブジェクトから分岐する複数のパーツオブジェクトのサイズを決定することを特徴とするプログラム。
【請求項６】
請求項１〜５のいずれかにおいて、
前記オブジェクト生成部が、
前記パワーパラメータを減衰変化させながら各パーツオブジェクトを生成する場合に、減衰されたパワーパラメータが所定のしきい値を下回ったことを条件にパーツオブジェクトの生成処理を終了することを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記オブジェクト生成部が、
前記雷オブジェクトの最先端がオブジェクト空間の所定位置に達することを条件にパーツオブジェクトの生成処理を終了することを特徴とするプログラム。
【請求項８】
請求項１〜７のいずれかにおいて、
前記オブジェクト生成部が、
前記雷オブジェクトを構成するパーツオブジェクトの数が所定数に達したことを条件にパーツオブジェクトの生成処理を終了することを特徴とするプログラム。
【請求項９】
画像を生成するためのプログラムであって、
複数のパーツオブジェクトが連結された雷オブジェクトを生成するオブジェクト生成部と、
生成された雷オブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記オブジェクト空間における所与の視点から見た画像を生成する描画部として、
コンピュータを機能させ、
前記オブジェクト生成部が、
前記複数のパーツオブジェクトを所与の基準パーツオブジェクトから順に生成し、
前記基準パーツオブジェクトに対して設定されるパワーパラメータの大きさに応じて、生成される前記パーツオブジェクトの数を可変する処理を行うことを特徴とするプログラム。
【請求項１０】
請求項１〜９のいずれかにおいて、
前記オブジェクト生成部が、
前記各パーツオブジェクトの向きをランダムに決定し、
前記基準パーツオブジェクトの向きの可変範囲が他のパーツオブジェクトの向きの可変範囲よりも小さいことを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記オブジェクト生成部が、
ランダムに決められたパーツオブジェクトの向きをオブジェクト空間内の目標点に向かうように補正する処理を行うことを特徴とするプログラム。
【請求項１２】
請求項１〜１１のいずれかにおいて、
前記オブジェクト生成部が、
前記パーツオブジェクトのサイズ、形状、生成数、分岐確率、向きの可変範囲、及び色の少なくともいずれか一つをオブジェクト空間内で発生するイベントに応じて変更して前記雷オブジェクトを生成することを特徴とするプログラム。
【請求項１３】
請求項１〜１２のいずれかにおいて、
前記描画部が、
前記雷オブジェクトを描画する際に、各パーツオブジェクトに対して所与のテクスチャをマッピングする処理を行い、
パーツオブジェクトに対してマッピングされるテクスチャの色分布を動的に変化させることを特徴とするプログラム。
【請求項１４】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項１〜１３のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項１５】
画像を生成するための画像生成システムであって、
複数のパーツオブジェクトが連結された雷オブジェクトを生成するオブジェクト生成部と、
生成された雷オブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記オブジェクト空間における所与の視点から見た画像を生成する描画部と、
を含み、
前記オブジェクト生成部が、
前記複数のパーツオブジェクトを所与の基準パーツオブジェクトから順に生成し、
前記基準パーツオブジェクトの幅に対応するパワーパラメータに応じて、新たに生成されるパーツオブジェクトのサイズ、形状及び数の少なくともいずれか一つを決定することを特徴とする画像生成システム。
【請求項１６】
画像を生成するための画像生成システムであって、
複数のパーツオブジェクトが連結された雷オブジェクトを生成するオブジェクト生成部と、
生成された雷オブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記オブジェクト空間における所与の視点から見た画像を生成する描画部と、
を含み、
前記オブジェクト生成部が、
前記複数のパーツオブジェクトを所与の基準パーツオブジェクトから順に生成し、
前記基準パーツオブジェクトに対して設定されるパワーパラメータの大きさに応じて、生成される前記パーツオブジェクトの数を可変する処理を行うことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。プレーヤがキャラクタを操作してオブジェクト空間を移動させたり、キャラクタに何らかの行動を行わせたりするアクションゲームのゲーム画像を生成する画像生成システムを例にとれば、プレーヤの仮想現実感の向上のためには、雷などの自然現象についてもリアルに表現できることが好ましい。
【０００３】
ところで、雷を表現する手法として、雷がうねって変化する様子を描画したテクスチャを複数用意しておき、複数のテクスチャを差し替えてアニメーションを行いながら、テクスチャを貼り付けたポリゴンを描画するという手法が従来から知られている。しかしこの手法は、雷の変化がパターン化してしまい、表現のリアル性に欠けるとともに、多数のテクスチャを用意しなければならずメモリの消費量が増大するという問題がある。
【０００４】
また雷が変化する様子をよりリアルに表現するために、ある制御点から関数を用いてリアルタイムに補間曲線を求めて、求められた補間曲線に基づいて雷を表現するオブジェクトを生成する手法もある。しかしながら、このような補間曲線を求める手法は、予め用意するデータは少なくできるが、関数による補間曲線のパターン性を排除するには複雑な演算処理を必要とするため、オブジェクトの描画処理が遅延してフレーム更新に間に合わないという危険性も生じうる。
【特許文献１】特開２００２−４２１６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は上記事情に鑑みてなされたものであり、その目的は、少ない処理負荷でリアルタイムに雷が変化する様子を表現できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、画像を生成するための画像生成システムであって、複数のパーツオブジェクトが連結された雷オブジェクトを生成するオブジェクト生成部と、生成された雷オブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、前記オブジェクト空間における所与の視点から見た画像を生成する描画部と、を含み、前記オブジェクト生成部が、前記複数のパーツオブジェクトを所与の基準パーツオブジェクトから順に生成し、前記基準パーツオブジェクトに対して設定されるパワーパラメータに応じて、新たに生成されるパーツオブジェクトのサイズ、形状及び数の少なくともいずれか一つを決定する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶する情報記憶媒体に関係する。
【０００７】
本発明によれば、基準パーツオブジェクトに対して設定されるパワーパラメータに応じて、パーツオブジェクトのサイズやパーツオブジェクトの生成数を決定するので、例えば、パワーパラメータを雷の発生状況に応じて変化させるなどしてリアルタイムに雷が変化する様子を比較的少ない処理負荷で表現することができる。
【０００８】
（２）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクト生成部が、前記基準パーツオブジェクトに対して設定されるパワーパラメータを変化させながら、変化後のパワーパラメータに基づいて、新たに生成されるパーツオブジェクトのサイズ及び形状の少なくとも一方を決定するようにしてもよい。パワーパラメータは、パーツオブジェクトが生成される毎に減衰させていってもよいし、パーツオブジェクトが生成される毎に増加させていってもよい。例えば、前者のようにパワーパラメータを減衰させるようにすれば、基準パーツオブジェクトに対して設定されるパワーパラメータを減衰させながら減衰後のパワーパラメータに基づいて新たに生成されるパーツオブジェクトのサイズを決定することにより、雷光が雷の発生点から離れるに従って弱まっていく様子をリアルに表現することができる。また例えば、後者のようにパワーパラメータを増加させるようにすれば、雷光が雷の発生点から離れるに従って強くなっていく様子をリアルに表現することができる。
【０００９】
（３）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記パーツオブジェクトは多角形ポリゴンであって、前記オブジェクト生成部が、パワーパラメータに基づいて前記多角形ポリゴンのサイズ及び形状の少なくとも一方を決定するようにしてもよい。例えばパーツオブジェクトを矩形ポリゴンとしてパワーパラメータを減衰変化させながら、パワーパラメータに基づいてその幅を決定するようにしてもよい。このようにすれば、基準パーツオブジェクトから順に生成されるパーツオブジェクトがパワーパラメータの減衰に伴って細くなっていくため、雷光が雷の発生点から離れるに従って細くなっていく様子をリアルに表現することができる。
【００１０】
（４）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクト生成部が、前記パーツオブジェクトを生成する毎に乱数値を取得して、取得した乱数値を累積する処理を行い、累積値がしきい値を越えた場合には、前回生成したパーツオブジェクトに連結される複数のパーツオブジェクトを新たに生成するようにしてもよい。このようにすれば、１のパーツオブジェクトから分岐する複数のパーツオブジェクトが生成される機会がランダムに与えられるため、雷オブジェクトの形状がパターン化しにくくなる。
【００１１】
（５）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクト生成部が、前回生成したパーツオブジェクトに連結される複数のパーツオブジェクトを新たに生成する場合に、前回生成したパーツオブジェクトのパワーパラメータを新たに生成される複数のパーツオブジェクトに対して所与の割合で分配する処理を行い、分配後のパワーパラメータに基づいて、前回生成したパーツオブジェクトから分岐する複数のパーツオブジェクトのサイズを決定するようにしてもよい。この場合、例えば、パワーパラメータの分配する割合を変化させたりすれば、雷オブジェクトの形状のパターン性を排除することができる。
【００１２】
（６）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクト生成部が、前記パワーパラメータを減衰変化させながら各パーツオブジェクトを生成する場合に、減衰されたパワーパラメータが所定のしきい値を下回ったことを条件にパーツオブジェクトの生成処理を終了するようにしてもよい。
【００１３】
（７）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクト生成部が、前記雷オブジェクトの最先端がオブジェクト空間の所定位置に達することを条件にパーツオブジェクトの生成処理を終了するようにしてもよい。
【００１４】
（８）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクト生成部が、前記雷オブジェクトを構成するパーツオブジェクトの数が所定数に達したことを条件にパーツオブジェクトの生成処理を終了するようにしてもよい。
【００１５】
（９）また本発明は、画像を生成するための画像生成システムであって、複数のパーツオブジェクトが連結された雷オブジェクトを生成するオブジェクト生成部と、生成された雷オブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、前記オブジェクト空間における所与の視点から見た画像を生成する描画部と、を含み、前記オブジェクト生成部が、前記複数のパーツオブジェクトを所与の基準パーツオブジェクトから順に生成し、前記基準パーツオブジェクトに対して設定されるパワーパラメータの大きさに応じて、生成される前記パーツオブジェクトの数を可変する処理を行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶する情報記憶媒体に関係する。
【００１６】
本発明によれば、基準パーツオブジェクトに対して設定されるパワーパラメータの大きさに応じてパーツオブジェクトの生成数が可変するので、状況に応じて雷全体の大きさや雷光の分岐する様子などが違うリアルな雷を表現することができるようになる。
【００１７】
（１０）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクト生成部が、前記各パーツオブジェクトの向きをランダムに決定し、前記基準パーツオブジェクトの向きの可変範囲が他のパーツオブジェクトの向きの可変範囲よりも小さくなるようにしてもよい。このようにすれば、雷光が著しく不自然な方向に向くような不都合を解消できる。
【００１８】
（１１）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクト生成部が、ランダムに決められたパーツオブジェクトの向きをオブジェクト空間内の目標点に向かうように補正する処理を行うようにしてもよい。このようにすれば、ランダムにパーツオブジェクトの向きを決めつつも、雷が全体として目標点に向かっている様子を表現することができる。
【００１９】
（１２）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクト生成部が、前記パーツオブジェクトのサイズ、形状、生成数、分岐確率、向きの可変範囲、及び色の少なくともいずれか一つをオブジェクト空間内で発生するイベントに応じて変更して前記雷オブジェクトを生成するようにしてもよい。このようにすれば、例えば、本発明をゲームに適用した場合に、ゲームの進行状況などに基づいて発生するイベントやプレーヤの操作に基づいて発生するイベント等に応じて表現される雷の様子を変えることができるため、利便性が高くなる。
【００２０】
（１３）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、前記雷オブジェクトを描画する際に、各パーツオブジェクトに対して所与のテクスチャをマッピングする処理を行い、パーツオブジェクトに対してマッピングされるテクスチャの色分布を動的に変化させるようにしてもよい。この場合において、色分布が異なるテクスチャを動的に生成してもよいし、複数の色分布が異なるテクスチャを予め用意しておき、使用するテクスチャを動的に切り替えるようにしてもよい。このようにすれば、雷の発生状況などに応じて適切な表現を行うことができるようになり利便性が高まる。
【発明を実施するための最良の形態】
【００２１】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２２】
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２３】
操作部１６０は、プレーヤがプレーヤオブジェクト（移動体オブジェクトの一例、プレーヤが操作するプレーヤキャラクタ）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００２４】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００２５】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２６】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２７】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００２８】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２９】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、オブジェクト生成部１１６、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００３０】
オブジェクト空間設定部１１０は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。特に本実施形態では、記憶部１７０のオブジェクトデータ記憶部１７６にオブジェクト生成部１１６で生成される雷オブジェクトのオブジェクトデータが書き込まれ、生成された雷オブジェクトをリアルタイムにオブジェクト空間に配置設定していく処理を行う。
【００３１】
移動・動作処理部１１２は、オブジェクト（キャラクタ、車、電車又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００３２】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００３３】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００３４】
オブジェクト生成部１１６は、複数のパーツオブジェクトが連結された雷オブジェクトを生成する処理を行う。雷オブジェクトは、矩形ポリゴンからなるパーツオブジェクトが１又は２以上の他のパーツオブジェクトと連結されることにより枝分かれした雷光を表現するためのオブジェクトである。
【００３５】
オブジェクト生成部１１６は、複数のパーツオブジェクトを所与の基準パーツオブジェクトから順に生成することにより、雷オブジェクトを生成する。このときパワーパラメータに基づいてパーツオブジェクトのサイズ、具体的には矩形ポリゴンの幅を決定する。そして新たなパーツオブジェクトを生成する際には、前回生成したパーツオブジェクトに与えられたパワーパラメータに所与の減衰率を乗算することで、パーツオブジェクトを生成する毎にパワーパラメータを減衰させていく処理を行う。なおパワーパラメータの初期値は、ランダムに決定することができ、その初期値は、最初に生成される基準パーツオブジェクトの幅に対応する。
【００３６】
またオブジェクト生成部１１６は、パーツオブジェクトを生成する毎に乱数値を取得して、取得した乱数値を累積する処理を行う。この乱数値の累積値を雷の分岐処理に利用する。例えば、累積値がしきい値を越えた場合には、前回生成したパーツオブジェクトに連結される複数のパーツオブジェクトを新たに生成する。さらに分岐処理を行う場合には、前回生成したパーツオブジェクトのパワーパラメータを新たに生成される複数のパーツオブジェクトに対して所与の割合で分配する処理を行う。すなわち分配後のパワーパラメータに基づいて、前回生成したパーツオブジェクトから分岐する複数のパーツオブジェクトのサイズを決定する。なおしきい値は、固定であってもよいが、変化させるようにしてもよい。しきい値を変化させることで雷光の分岐の様子（分岐の数や分岐のパターン）を変化させることができる。またしきい値を変化させる場合には、雷オブジェクト単位で変化させてもよいし、１の雷オブジェクトの生成過程において変化させてもよい。またしきい値は、基準パーツオブジェクトに設定されるパワーパラメータの初期値に応じて変化させてもよい。
【００３７】
またオブジェクト生成部１１６は、所定の生成終了条件が満たされたときに新たなパーツオブジェクトの生成を終了する。例えば、パワーパラメータの減衰状態や雷オブジェクトの構成パーツ数や雷オブジェクトのサイズ等を生成終了条件の判断基準とすることができる。例えば、パワーパラメータの減衰状態に応じてパーツオブジェクトの生成を終了するようにすれば、基準パーツオブジェクトに対して設定されるパワーパラメータの大きさに応じて生成されるパーツオブジェクトの数を可変することができる。なお生成終了条件としては、複数の条件を設定しておくことができ、その場合には、複数の生成終了条件のいずれかが満たされた場合に、新たなパーツオブジェクトの生成を終了するようにしてもよい。
【００３８】
またオブジェクト生成部１１６は、生成した各パーツオブジェクトの向きをランダムに決定するが、このとき基準パーツオブジェクトの向きの可変範囲が他のパーツオブジェクトの向きの可変範囲よりも小さく設定されている。これにより雷が著しく変な方向に向けられて不自然な画像となる不都合を解消している。また雷の向かう先（目標点）が定められた場合には、ランダムに決められたパーツオブジェクトの向きをオブジェクト空間内の目標点に向かうように補正することができる。目標点は、例えば、ワールド座標系の位置座標によって定められ、オブジェクト空間に配置されたオブジェクトに対して目標点を設定してもよい。また目標点は固定であってもよいし、オブジェクト空間内で移動させてもよい。
【００３９】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（フラグメント処理）が行われる。ピクセル処理では、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内に設定された仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００４０】
なお描画部１２０が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００４１】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００４２】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、主記憶部１７２に保存される。
【００４３】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。特に本実施形態では、雷オブジェクトを描画する際に、各パーツオブジェクトに対して所与のテクスチャをマッピングする処理を行うようにしてもよい。この場合には、パーツオブジェクトに対してマッピングされるテクスチャの色分布（テクセルパターン）を動的に変化させることができる。この場合において、色分布が異なるテクスチャを動的に生成してもよいし、複数の色分布が異なるテクスチャを予め用意しておき、使用するテクスチャを動的に切り替えるようにしてもよい。また１の雷オブジェクトを構成するパーツオブジェクト単位でテクスチャの色分布を変化させてもよいし、雷オブジェクト単位でテクスチャの色分布を変化させるようにしてもよい。
【００４４】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００４５】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより２つの色を合成した色を求める処理を行う。
【００４６】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えばＲＧＢの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００４７】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００４８】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００４９】
２．本実施形態の手法
本実施形態では、図２（Ａ）及び図２（Ｂ）に示すようにリアルタイムに異なる雷オブジェクトＬＯＢを生成して、これを描画することにより毎回異なる雷が発生している様子を表現する手法を採用している。
【００５０】
本実施の形態では、図３に示すように、オブジェクト空間内に仮想カメラＶＣに追従して移動する天球オブジェクトを設定しており、その天球オブジェクト内の遠景領域に設定した投影面に雷オブジェクトＬＯＢを配置して仮想カメラＶＣから見えるシーンを描画することで図２（Ａ）や図２（Ｂ）に示したような画像を生成している。
【００５１】
また雷オブジェクトＬＯＢは、図４に示すように、複数のパーツオブジェクトＰＯＢ０〜ＰＯＢ９が連結されて構成されるオブジェクトである。すなわち各パーツオブジェクトに対しては１又は複数のパーツオブジェクトが連結されている。また各パーツオブジェクトは、基準パーツオブジェクトＰＯＢ０から順に生成される。またパーツオブジェクトはラインＬ１〜Ｌ４についてライン毎に生成され、ライン毎にパーツオブジェクトの生成終了条件を判断して、全てのラインに関してパーツオブジェクトの生成終了条件が満たされた場合に、雷オブジェクトＬＯＢが完成する。すなわち雷オブジェクトＬＯＢは、複数のパーツオブジェクトＰＯＢが連結されたライン状パーツオブジェクトの集合体ということもできる。
【００５２】
図５（Ａ）にパーツオブジェクトＰＯＢの例を示す。パーツオブジェクトＰＯＢは、頂点Ｖ１〜Ｖ４で構成される矩形の板状ポリゴンからなり、その幅成分（雷光の幅）は、雷の強さを示すパワーパラメータＰに基づいて求められる。またポリゴンの長さ成分（雷光の長さ）は、予め固定的に定めておいた基本長Ｄ１に対して乱数を用いてランダムに求めた調整長Ｄ２を加えることにより求められる。このようにすることで、ランダムに求められる調整長が０となった場合でも基本長Ｄ１がポリゴンの長さ成分として得られるようになっている。
【００５３】
またパーツオブジェクトＰＯＢの各頂点Ｖ１〜Ｖ４には、雷の色（例えば、黄色や白色）が設定されている。またパーツオブジェクトのＰＯＢの各頂点Ｖ１〜Ｖ４には、透明度（α値）が設定されていてもよく、例えば、発生点から遠い位置に配置されるパーツオブジェクトほど雷の色が薄くなるように、頂点Ｖ１〜Ｖ４に設定される透明度を変化させてもよい。
【００５４】
なおパーツオブジェクトの各頂点Ｖ１〜Ｖ４の頂点色を設定する代わりに図５（Ｂ）に示すようなテクスチャＴＥＸをパーツオブジェクトＰＯＢに対してテクスチャマッピングを行うことにより、雷の色を表現してもよい。テクスチャＴＥＸでは、内側が黄色（第１の色）で外側に向かって白色（第２の色）に近づくようにグラデーション変化するテクセルパターン（色分布）を有している。このようなテクセルパターンによって黄色いほど雷の強度が強いこと表すことができる。
【００５５】
なおテクセルパターンは、例えば、図５（Ｃ）に示す標準的に使用されるテクスチャＴＥＸ０以外に、テクスチャＴＥＸ２〜ＴＥＸ４のように雷の発生状況に応じて動的に変化させることができる。テクスチャＴＥＸ２、ＴＥＸ４のように黄色の部分を左右にずらすことで、パーツオブジェクトの分岐が生じる場合に、左側に分岐するパーツオブジェクトに対しては、テクスチャＴＥＸ２をマッピングし、右側に分岐するパーツオブジェクトに対しては、テクスチャＴＥＸ４をマッピングするようにして、雷光の分岐の様子をよりはっきりと見せることができる。また、テクスチャＴＥＸ３のように黄色の部分をテクスチャＴＥＸ０より狭くするようにしてもよい。このようにすれば、雷の強度を極端に弱めたい場合などに、パーツオブジェクトのサイズに影響されずに事後的にサイズを可変したかのような視覚的効果を得ることができる。
【００５６】
次に図６を参照しながら、雷オブジェクトＬＯＢの生成手法をより詳細に説明する。
【００５７】
まず雷の発生点に配置される基準パーツオブジェクトＰＯＢ０を生成する。このときランダムに求めたパワーパラメータの初期値が基準パーツオブジェクトＰＯＢ０の幅Ｐ０として設定される。また本実施の形態では、パーツオブジェクトを生成する毎に乱数値を取得して、これを累積することにより雷の雷光を分岐させるか否かを判断している。具体的には、分岐判断のためのしきい値Ｃｔｈが用意され、パーツオブジェクトを生成する毎に取得した乱数値Ｃｎの累積値Ｃが、Ｃ＞Ｃｔｈを満たした場合に前回生成したパーツオブジェクトに連結される複数のパーツオブジェクトを生成して雷の雷光を分岐させている。図６に示す例では、基準パーツオブジェクトＰＯＢ０について乱数値Ｃ０を取得した結果、取得乱数値の累積値ＣがＣｔｈを越えていないため、分岐はしないと判断される。
【００５８】
続いて、基準パーツオブジェクトＰＯＢ０に連結されるパーツオブジェクトＰＯＢ１を生成する際には、パワーパラメータを減衰させてパーツオブジェクトＰＯＢ１の幅Ｐ１を決定する。具体的には、ランダムに求めた減衰率Ａ１を前回生成したパーツオブジェクト（基本パーツオブジェクトＰＯＢ０）の幅Ｐ０に乗算することで今回生成するパーツオブジェクトＰＯＢ１の幅Ｐ１を求める。このように本実施形態の手法では、雷オブジェクトＬＯＢを構成するパーツオブジェクトの間で親子関係が成立しており、親パーツオブジェクトのサイズ情報（パワーパラメータ：矩形ポリゴンの幅）に基づいて、子パーツオブジェクトのサイズ情報を求めている。より具体的には、親パーツオブジェクトのサイズ情報に減衰率（矩形ポリゴンの幅の減少率）を乗算することによって子パーツオブジェクトのサイズ情報を求めており、これによって雷の発生点から順に雷のパワーが弱まっていくように見える雷オブジェクトＬＯＢを生成することができる。
【００５９】
またパーツオブジェクトＰＯＢ１を生成する際にも分岐判断用の乱数値Ｃ１を取得して、これまでに取得した乱数値の累積値Ｃ（＝Ｃ０＋Ｃ１）がしきい値Ｃｔｈを越えたか否かを判断する。図６に示す例では、未だしきい値Ｃｔｈを越えていないとして分岐はしないと判断される。
【００６０】
このようにしてポリゴンの幅Ｐに対応するパワーパラメータを減衰させながら順にパーツオブジェクトを生成していくと、やがてパーツオブジェクトの生成のたびに取得した乱数値の累積値Ｃがしきい値Ｃｔｈを越える場合が訪れる。図６に示す例では、パーツオブジェクトＰＯＢ２の生成時に取得した乱数値Ｃ２を累積することにより累積値ＣがＣｔｈを越えている。これによりパーツオブジェクトＰＯＢ２から分岐するように新たなパーツオブジェクトＰＯＢ３、ＰＯＢ４を複数生成することになる。このときパーツオブジェクトＰＯＢ３、ＰＯＢ４の幅Ｐ３、Ｐ４は次のようにして決定する。
【００６１】
まず前回生成したパーツオブジェクトの幅Ｐ２に対して減衰率Ａ３を乗算してから、その乗算結果（Ｐ２×Ａ３）に対して分配率Ｂ１、Ｂ２（例えば、Ｂ１＋Ｂ２＝１）を乗算することにより、パーツオブジェクトＰＯＢ３、ＰＯＢ４の幅Ｐ３（＝Ｐ２×Ａ３×Ｂ１）、Ｐ４（＝Ｐ２×Ａ４×Ｂ２）を求める。
【００６２】
以降、同じようにパーツオブジェクトを生成する毎に幅に対応するパラメータ（パワーパラメータ）を減衰させながらパーツオブジェクトのサイズを決定し、かつパーツオブジェクトを生成する毎に乱数値を累積していって分岐させるか否かの判断を行っていくことにより雷オブジェクトＬＯＢを生成していく。
【００６３】
以上に述べた本実施形態の手法では、パーツオブジェクトＰＯＢを生成する毎に乱数値を累積していって、その累積値Ｃに基づいて雷光を分岐させるか否かを決定している。これによりしきい値Ｃｔｈの設定の仕方に応じて様々な形態の雷を自在に生成することができるようになる。
【００６４】
例えば、しきい値Ｃｔｈを大きく設定すれば、図７（Ａ）に示すように、比較的太い雷光の雷オブジェクトＬＯＢを生成することができ、しきい値Ｃｔｈを小さく設定すれば、図７（Ｂ）に示すように、細かく枝分かれした雷光の雷オブジェクトＬＯＢを生成することができる。またしきい値Ｃｔｈは雷オブジェクトＬＯＢの生成過程において変化させてもよく、例えば、新たなパーツオブジェクトが生成される毎に徐々にしきい値Ｃｔｈを下げていくようにすれば、図７（Ｃ）に示すように、雷の発生点の近くでは太い雷光であるが、末端にいくに従って細かく枝分かれするような雷オブジェクトＬＯＢを生成することができる。このように雷光の分岐を判断するためのしきい値Ｃｔｈは、表現したい雷の種類に応じて設定することができ、例えば、時間や天候などに応じて変えてもよいし、例えば、雷による攻撃の様子を表現する場合には、攻撃の強さ、種類、あるいはキャラクタの強さや種類など様々な条件に応じて変化させることができる。
【００６５】
また本実施形態では、雷オブジェクトＬＯＢを構成するパーツオブジェクトの向きを乱数を用いてランダムに決めている。ただし、基準パーツオブジェクトとそれ以外のパーツオブジェクトとで向きの可変する角度範囲を変えている。具体的には、図８に示すように、基準パーツオブジェクトＰＯＢ０の向きの可変角度範囲θ０が他のパーツオブジェクトＰＯＢＮ（Ｎ≧１）の向きの可変角度範囲θＮよりも小さくなるようにしている。このようにすることによって、雷の向きが発生点からおかしな方向に向けられてしまい、例えば、上空から落下する雷が地表以外の方向に向けられているような不自然な画像が生成されることを防止している。
【００６６】
なおパーツオブジェクトの向きの決め方は、上述した例には限られず、次のような手法を採用することもできる。
【００６７】
例えば、雷の発生点から目標点に向かうような雷オブジェクトＬＯＢをリアルタイムに生成することもできる。この場合には、図９に示すように、発生点を始点として、基準パーツオブジェクトＰＯＢ０の向きを方向成分とする単位ベクトルＶｅｃ１（第１のベクトル）と、発生点から目標点に向くような方向成分を備えた単位ベクトルＶｅｃ２（第２のベクトル）との内積Ｖｅｃ１・Ｖｅｃ２（＝ｃｏｓω）に基づいて、角度補正ベクトル（角度補正マトリクス）を求めて、ランダム決められたパーツオブジェクトの向きを角度補正ベクトルで補正するようにしてもよい。このようにすれば、図１０に示すように、上空で発生した雷オブジェクトＬＯＢが背の高い樹木オブジェクトＷＯＢに誘導される様子などを表現することができる。
【００６８】
なお目標点を設定した場合、パーツオブジェクトと目標点との位置関係に応じて補正量（角度補正ベクトルの大きさ）を変えるようにしてもよい。例えば、雷の末端に位置するパーツオブジェクトが目標点に近づくほど補正量が大きくなるようにすることができる。また同様の効果を奏する手法として、雷の末端に位置するパーツオブジェクトが目標点に近づくほど乱数によりランダムに決められる向きの可変範囲を小さくしていってもよい。
【００６９】
また目標点は、プレーヤが行った操作に応じて設定されてもよいし、所定のアルゴリズムでソフトウェアが自動的に設定するようにしてもよい。例えば、プレーヤキャラクタが敵キャラクタに対して雷で攻撃を行うような事例を表現する場合、プレーヤがゲームコントローラを操作してプレーヤキャラクタの攻撃方向あるいはプレーヤキャラクタの攻撃対象となる敵キャラクタを指定することにより目標点を設定するような手法が採用できる。また例えば、樹木や高い建造物が落雷を受ける様子を表現するような場合、オブジェクト空間内における樹木オブジェクトや建造物オブジェクトの高さ情報を求めて、最も背の高いオブジェクトに対して目標点を設定するような手法が採用できる。
【００７０】
以上に説明した本実施形態の雷オブジェクトの生成手法は、以下のような特徴を有することにより雷光が雷の発生点から離れるに従って細くなっていきつつ、ランダムに分岐する様子をリアルに表現することができる。
【００７１】
まず新たなパーツオブジェクトを生成する際に、前回生成したパーツオブジェクトのパワーパラメータを減衰させて、減衰させたパワーパラメータに基づいて、新たに生成されるパーツオブジェクトのサイズを決定する。すなわちパーツオブジェクトに対して与えるパワーパラメータを雷の発生点から離れるほど減衰させる処理を行っている。具体的にはパーツオブジェクトを新たに生成する際に前回生成したパーツオブジェクトに与えられたパワーパラメータに減衰率（矩形ポリゴンの幅の減少率）に対応するパラメータＡをかけることでサイズを小さくしている。
【００７２】
次に分岐判断用のパラメータＣが用意されていて、パラメータＣがしきい値Ｃｔｈを越えたことを条件に前回生成したパーツオブジェクトに連結される新たなパーツオブジェクトを複数生成する分岐パーツ生成処理を行う。パラメータＣは、乱数の累積値であって、パーツオブジェクトを生成する際に取得される乱数を累積したものである。
【００７３】
また雷光を分岐させる場合に分岐元のパーツオブジェクトからパワーパラメータをどのような割合で分配するかを決める分配率に対応するパラメータＢを利用する。分岐パーツ生成処理では、ランダムに求めた分配率に応じて分岐元のパーツオブジェクトのパワーパラメータを分岐先の複数のパーツオブジェクトに対して分配する。
【００７４】
またパーツオブジェクトの生成終了条件に基づいて新たなパーツオブジェクトの生成を終了することができる。生成終了条件は、パーツオブジェクトを生成するライン毎に判断し、例えば、パワーパラメータがしきい値以下となった場合、雷オブジェクトを構成するパーツオブジェクトの数が所定数に達した場合、あるいは最下位置のパーツオブジェクトが地表等の所定位置に達する場合などを生成終了条件とすることができる。
【００７５】
乱数でパーツオブジェクトの向きを決定するが、目標点が設定される場合には、乱数によりランダムで決められたパーツオブジェクトの向きを補正するようにしてもよい。
【００７６】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について図１１〜図１３のフローチャートを用いて説明する。
【００７７】
図１１は、雷の画像を生成する際の処理例を示すフローチャートである。
【００７８】
まず落雷イベントが発生しすると（ステップＳ１でＹ）、雷オブジェクトの生成を行う（ステップＳ２）。次に生成された雷オブジェクトをオブジェクト空間に設定して（ステップＳ３）、雷オブジェクトを描画することにより落雷の様子を表現した画像が生成される（ステップＳ４）。
【００７９】
図１２及び図１３は、雷オブジェクトの生成処理の例を示すフローチャートである。
【００８０】
まず乱数によりパワーパラメータＰの初期値Ｐ０を求めて、基準パーツオブジェクトとなる矩形ポリゴンの幅を設定する（ステップＳ１０）。
【００８１】
次に、所定の基本長Ｄ１に対して乱数でランダムに求めた調整長Ｄ２を加えて、矩形ポリゴンの長さ（Ｄ１＋Ｄ２）を決定する（ステップＳ１１）。次に矩形ポリゴンの向きを乱数を用いて所与の角度範囲内において決定する（ステップＳ１２）。これによりパーツオブジェクトが完成する。
【００８２】
次に分岐判断用の乱数値を取得して、これを累積し（ステップＳ１３）、累積値Ｃがしきい値Ｃｔｈを越えたか否かを判断する（ステップＳ１４）。
【００８３】
累積値Ｃがしきい値Ｃｔｈを越えた場合には（ステップＳ１４でＹ）、分岐ラインを生成することになる。分岐ライン用のポリゴンを生成する際には（ステップＳ１５でＹ）、前回生成した矩形ポリゴンの幅に対応するパワーパラメータＰを減衰率Ａで減衰させるとともに、分配率Ｂで分配して、前回生成した矩形ポリゴンに連結される複数の矩形ポリゴンのうち分岐ライン用の矩形ポリゴンの幅（Ｐ＝Ｐ×Ａ×Ｂ）を決定する（ステップＳ１６）。以降、分岐したライン毎にステップＳ１１以降の処理を継続する。
【００８４】
一方で累積値Ｃがしきい値Ｃｔｈを下回った場合には（ステップＳ１４でＮ）、前回生成した矩形ポリゴンの幅に対応するパワーパラメータＰを減衰率Ａで減衰させて次に生成する矩形ポリゴンの幅（Ｐ＝Ｐ×Ａ）を決定する（ステップＳ１７）。
【００８５】
そして、矩形ポリゴンの幅を決めるためのパワーパラメータＰが所与のしきい値を下回った場合（ステップＳ１８でＹ）、生成した矩形ポリゴンの総数が所定数に達した場合（ステップＳ１９でＹ）、あるいは先端に位置する矩形ポリゴンがオブジェクト空間の地表に相当する位置（面）に達する場合（ステップＳ２０でＹ）のいずれかが満たされた場合には、新たな矩形ポリゴンの生成を終了して、雷光のラインの生成を終了する。このようにライン毎に新たな矩形ポリゴンの生成を終了するか否かを判断して、全てのラインについて新たな矩形ポリゴンの生成が終了すると雷オブジェクトが完成することになる。
【００８６】
４．ハードウェア構成
図１４に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【００８７】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【００８８】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更（更新）やピクセル（あるいはフラグメント）の描画色の決定を行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【００８９】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【００９０】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【００９１】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００９２】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【００９３】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【００９４】
また雷オブジェクトの生成手法は、上記実施形態で説明したものに限らず、上記手法と均等な手法を用いてもよい。
【００９５】
上記実施形態では、ポリゴンの幅をパワーパラメータＰにより可変する場合を説明したが、ポリゴンの幅及び長さの双方がパワーパラメータＰに影響されて可変してもよい。またポリゴンの長さを固定しておき、ポリゴンの幅のみをパワーパラメータＰで可変するようにしてもよい。またパーツオブジェクトを生成する際に用いられる種々の乱数は、各パラメータを設定するために個別に取得されてもよいし、共通の乱数を取得するようにしてもよい。
【００９６】
また上記実施形態は、パーツオブジェクトを矩形ポリゴンにより構成したが、多角形ポリゴンであれば矩形ポリゴンでなくてもよい。この場合、パワーパラメータに応じてポリゴンを構成する頂点間の距離などを調整することにより多角形ポリゴンのサイズや形状を決定することができる。
【００９７】
また上記実施形態では、パワーパラメータをパーツオブジェクトの生成毎に徐々に減衰させていく手法を採用したが、パワーパラメータを徐々に増加させるように変化させてもよい。また基準パーツオブジェクトから順次連結されるライン（図４のラインＬ１）については、パワーパラメータを変化（減衰あるいは増加）させずにパーツオブジェクトを生成し、分岐ライン（図４のラインＬ２〜Ｌ４）については、パワーパラメータを変化（減衰あるいは増加）させながらパーツオブジェクトを生成するようにしてもよい。このようにすれば、雷オブジェクトを構成する総パーツ数が描画処理に過度の影響を与えない範囲で分岐ラインを生成しつつ、雷光のメインとなるラインについては確実に地表や目標点に達するような雷を表現することができるようになる。
【００９８】
またパーツオブジェクトのサイズ、形状、生成数、分岐確率、向きの可変範囲、及び色の少なくともいずれか一つをオブジェクト空間内で発生するイベントに応じて変更して雷オブジェクトを生成するようにしてもよい。このようにすれば、例えば、本発明をゲームに適用した場合に、ゲームの進行状況などに基づいて発生するイベントやプレーヤの操作に基づいて発生するイベント等に応じて表現される雷の様子を変えることができるため、利便性が高くなる。例えば、パーツオブジェクトのサイズや形状をイベントに応じて変更する場合には、パーツオブジェクト単位でのパワーパラメータの変化率（減衰率、増加率）、ラインが分岐する毎に乗算されるパワーパラメータの分配率、パーツオブジェクトの生成ライン単位でのパワーパラメータの変化率、基準パーツオブジェクトに対して設定されるパワーパラメータの初期値などをイベントに応じて変化させることができる。
【００９９】
また本発明は種々のゲーム（アクションゲーム、レーシングゲーム、格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、シミュレーションゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１００】
【図１】本実施形態の画像生成システムの機能ブロック図。
【図２】図２（Ａ）、図２（Ｂ）は本実施形態の手法を用いて生成される画像の例。
【図３】本実施形態の手法を説明するための図。
【図４】雷オブジェクトの構成例。
【図５】パーツオブジェクトの構成例。
【図６】雷オブジェクトの生成手法を説明するための図。
【図７】図７（Ａ）〜図７（Ｃ）は本実施形態の手法により生成される雷オブジェクトの例。
【図８】雷オブジェクトの生成手法を説明するための図。
【図９】雷オブジェクトの生成手法を説明するための図。
【図１０】本実施形態の手法を用いて生成される画像の例。
【図１１】本実施形態の処理の例を示すフローチャート。
【図１２】本実施形態の処理の例を示すフローチャート。
【図１３】本実施形態の処理の例を示すフローチャート。
【図１４】ハードウェア構成の例。
【符号の説明】
【０１０１】
ＬＯＢ  雷オブジェクト
ＰＯＢ  パーツオブジェクト、ＰＯＢ０  基準パーツオブジェクト、
１００  処理部、
１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１４  仮想カメラ制御部、１１６  オブジェクト生成部、
１２０  描画部、１３０  音生成部、
１６０  操作部、１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、
１７６  オブジェクトデータ記憶部、１７８  テクスチャ記憶部、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2007164323.tif 000003
【図２】
2007164323.tif 000004
【図３】
2007164323.tif 000005
【図４】
2007164323.tif 000006
【図６】
2007164323.tif 000007
【図７】
2007164323.tif 000008
【図８】
2007164323.tif 000009
【図９】
2007164323.tif 000010
【図１０】
2007164323.tif 000011
【図１１】
2007164323.tif 000012
【図１２】
2007164323.tif 000013
【図１３】
2007164323.tif 000014
【図１４】
2007164323.tif 000015
【図５】
2007164323.tif 000016