説明

ゲームシステム、プログラム及び情報記憶媒体

【課題】 ガンマ補正などのビデオフィルタを少ない処理負担で実現できるゲームシステム、プログラム及び情報記憶媒体を提供すること。
【解決手段】 元画像情報(R、G、B、Z値)をインデックスカラー・テクスチャマッピング用ルックアップテーブルLUTのインデックス番号として設定し、LUTを用いて表示画面サイズ(分割ブロックサイズ)のポリゴンにテクスチャマッピングを行い、ガンマ補正、ネガポジ反転、モノトーンフィルタ等を実現する。元画像の色成分RをLUTのインデックス番号として設定して色情報を変換する場合には他の色成分G、Bが描画されないようにマスクする。元画像の各色成分R、G、BをLUTのインデックス番号に設定することで得られる変換後の各色情報を合成する。プレーヤがゲームコントローラを用いて入力した操作データに基づきモニタの明るさの調整データを設定し、設定された調整データをセーブ用情報記憶装置にセーブし、調整データに基づき元画像を変換する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームシステム、プログラム及び情報記憶媒体に関する。
【背景技術】
【0002】
従来より、仮想的な3次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。レーシングゲームを楽しむことができるゲームシステムを例にとれば、プレーヤは、車(オブジェクト)を操作してオブジェクト空間内で走行させ、他のプレーヤやコンピュータが操作する車と競争することで3次元ゲームを楽しむ。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−187124号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
さて、このようなゲームシステムでは、モニタ(表示部)の非線形特性を補正するために、画像に対してガンマ補正と呼ばれる変換を施すことが望ましい。
【0005】
そして、このようなガンマ補正を実現する手法としては、以下に説明する第1、第2の手法がある。
【0006】
第1の手法では、図1(A)に示すように、メインメモリ802上にガンマ補正用のルックアップテーブル(LUT)を用意しておく。そして、CPU800(CPU上で動作するソフトウェア)は、VRAM806内にあるフレームバッファ808から、元画像の各画素の色情報(RGB)を読み出す。そして、読み出された色情報に基づいてガンマ補正用LUTを参照し、ガンマ補正後の色情報を得る。次に、得られたガンマ補正後の色情報をフレームバッファの対応する画素に書き戻す。そして、以上の処理を、元画像の全ての画素に対して行う。
【0007】
一方、第2の手法では、図1(B)に示すように、CPU810の制御下で動作する描画プロセッサ812の後段に、ハードウェアによりガンマ補正を実現するガンマ補正回路814を設ける。そして、描画プロセッサ812により生成された色情報に対して、ガンマ補正回路814がガンマ補正を施し、モニタ816に出力する。
【0008】
しかしながら、図1(A)の第1の手法では、フレームバッファ808からの色情報の読み出し、ガンマ補正用LUT804の参照、ガンマ補正用LUT804からの色情報の読み出し、読み出した色情報のフレームバッファ808への書き戻しなどの全ての処理を、CPU800上で動作するソフトウェアが行うことになる。従って、処理の高速化を図れず、表示画面の全画素に対するガンマ補正を、1フレーム内で完了するのは困難となる。また、CPU800の処理負荷が非常に重くなり、他の処理に悪影響を及ぼすという問題も招く。
【0009】
一方、図1(B)の第2の手法では、専用のハードウェアであるガンマ補正回路814が使用されるため、高速なガンマ補正が可能になる。従って、表示画面の全画素に対するガンマ補正を1フレーム内で完了することも容易となる。また、CPU810の処理負荷も少ないため、他の処理に悪影響が及ぶ問題も解決できる。
【0010】
しかしながら、図1(B)の第2の手法では、専用のハードウェアであるガンマ補正回路814が別途必要になってしまう。従って、ゲームシステムが大規模化し、製品コストの増加の問題を招く。
【0011】
特に、家庭用ゲームシステムにおいては、製品の普及化を図るために、低コスト化が厳しく要求されており、ほとんどの家庭用ゲームシステムでは、図1(B)に示すようなガンマ補正回路がハードウェアとして設けられていない。従って、ガンマ補正を実現するためには、図1(A)のような第1の手法を採用せざるを得ない。
【0012】
ところが、前述のように第1の手法では、1フレーム内で全表示画面分のガンマ補正を完了するのは困難であり、他の処理にも悪影響を及ぼす。従って、家庭用ゲームシステムにおいては、ガンマ補正の実施自体を断念せざるを得なかった。
【0013】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、ガンマ補正などのビデオフィルタを少ない処理負担で実現できるゲームシステム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0014】
上記課題を解決するために、本発明は、画像生成を行うゲームシステムであって、元画像の画像情報を、インデックスカラー・テクスチャマッピング用のルックアップテーブルのインデックス番号として設定する手段と、元画像の画像情報がインデックス番号として設定された前記ルックアップテーブルを用いて、仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、元画像の画像情報を変換する手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム(搬送波に具現化されるプログラムを含む)であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【0015】
本発明によれば、元画像の画像情報がインデックス番号として設定されたルックアップテーブルを用いて、仮想オブジェクトに対してインデックスカラー・テクスチャマッピングが行われ、元画像の画像情報が変換される。このように本発明によれば、ゲームシステム(画像生成システム)が元々有しているインデックスカラー・テクスチャマッピングの機能を有効利用して、元画像の画像情報の変換が行われる。従って、ガンマ補正などのビデオフィルタの処理を、新たなハードウェアを追加することなく、高速に実行できるようになり、全表示画面分の画像情報を変換することも容易となる。
【0016】
なお、元画像の画像情報は、例えば、描画領域(フレームバッファ、別バッファ等)に描画されている情報であり、色情報、α値又は奥行き値などを含む。また、元画像の画像情報の変換としては、ガンマ補正以外にも種々の変換を考えることができる。また、元画像の画像情報をルックアップテーブルのインデックス番号として設定することで得られる変換後の画像情報は、色情報に限定されない。また、仮想オブジェクトとしては、1又は複数のプリミティブ面(ポリゴン、自由曲面)を考えることができる。
【0017】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記仮想オブジェクトが、表示画面サイズのポリゴンであることを特徴とする。
【0018】
このようにすれば、全表示画面分の元画像の画像情報を例えば1回(或いは数回)のテクスチャマッピングで変換できるようになる。
【0019】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記仮想オブジェクトが、表示画面を分割したブロックのサイズのポリゴンであることを特徴とする。
【0020】
このようにすれば、仮想オブジェクトを描画する領域の大きさを小さくすることが可能になり、記憶部の使用記憶容量を節約できる。
【0021】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、ガンマ補正、ネガポジ反転、ポスタリゼーション、ソラリゼーション、2値化、モノトーンフィルタ又はセピアフィルタの変換のための前記ルックアップテーブルを用意し、該ルックアップテーブルを用いて、元画像の画像情報に対してガンマ補正、ネガポジ反転、ポスタリゼーション、ソラリゼーション、2値化、モノトーンフィルタ又はセピアフィルタの変換を施すことを特徴とする。
【0022】
このようにすれば、元画像に対して種々の画像エフェクトを施した画像を得ることが可能になり、生成される画像のバラエティ度を増すことができる。但し、本発明における画像情報の変換は、ガンマ補正、ネガポジ反転、ポスタリゼーション、ソラリゼーション、2値化、モノトーンフィルタ、セピアフィルタに限定されるものではない。
【0023】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、元画像の画像情報が含む色情報の色成分を前記ルックアップテーブルのインデックス番号として設定して色情報を変換する場合において、変換後の色情報の他の色成分が描画領域に描画されないようにするためのマスク処理を行う手段(或いは該手段を実行するためのプログラム又は処理ルーチン)を含むことを特徴とする。
【0024】
このようにすれば、1つの入力値に対して複数の値が出力されてしまうインデックスカラー・テクスチャマッピング用のルックアップテーブルを用いながらも、1つの入力値に対して1つの値が出力されるガンマ補正などの画像変換を実現できるようになる。
【0025】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、元画像の画像情報が含む色情報の第Kの色成分を前記ルックアップテーブルのインデックス番号として設定することで得られる変換後の色情報と、色情報の第Lの色成分を前記ルックアップテーブルのインデックス番号として設定することで得られる変換後の色情報と、色情報の第Mの色成分を前記ルックアップテーブルのインデックス番号として設定することで得られる変換後の色情報とを合成する手段(或いは該手段を実行するためのプログラム又は処理ルーチン)を含むことを特徴とする。
【0026】
このようにすれば、例えば第Kの色成分の入力に対して、第K、第L、第Mの色成分が合成された色情報の画像が生成されるような画像変換も実現できるようになる。
【0027】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、元画像の画像情報の変換により、元画像の画像情報に応じた値のα値が生成されることを特徴とする。
【0028】
このようにすれば、例えば、元画像の画像情報が奥行き値である場合には、元画像の各画素の奥行き値に応じた値に各画素のα値を設定することが可能になる。これにより、例えば、元画像と該元画像に対応するぼかし画像とを、各画素に設定されるα値に基づいて合成することなどが可能になり、被写界深度の実現も可能になる。
【0029】
また、生成されたα値を利用することで、元画像の画像情報の値に応じたマスク処理なども可能になる。
【0030】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、元画像の画像情報が含む奥行き値が、前記ルックアップテーブルのインデックス番号として設定されることを特徴とする。
【0031】
このように本発明においてルックアップテーブルのインデックス番号として設定される画像情報としては、種々の情報を考えることができる。
【0032】
また本発明は、家庭用ゲームのゲーム画像を生成するためのゲームシステムであって、プレーヤがゲームコントローラを用いて入力した操作データに基づいて、モニタの表示特性を調整するための調整データを設定する手段と、設定された調整データを、プレーヤの個人データを記憶するためのセーブ用情報記憶装置にセーブするセーブ手段と、表示特性の調整により得られた調整データ又はセーブ用情報記憶装置からロードされた調整データに基づいて、元画像の画像情報に対して変換処理を施す手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム(搬送波に具現化されるプログラムを含む)であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【0033】
本発明によれば、プレーヤは、ゲームコントローラを用いてモニタの表示特性(明るさ、色の濃さ、色合い、又はシャープネス等)を調整するための調整データを設定できる。従って、プレーヤがモニタを直接操作しなくて済むため、プレーヤの利便性を向上できる。そして、設定された調整データはセーブ用情報記憶装置にセーブされると共に、表示特性の調整により得られた調整データ又はセーブ用情報記憶装置からロードされた調整データに基づいて、元画像の画像情報の変換処理が行われる。従って、プレーヤがプレイするゲームに応じた最適な表示特性でゲーム画像を表示できるようになる。また、プレーヤが他の映像ソースの映像を見た場合などに、モニタの表示特性の調整の悪影響が及んだりする事態を防止できる。
【0034】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記セーブ手段が、画像情報の変換特性を表す自由曲線の制御点のデータを、前記調整データとしてセーブ用情報記憶装置にセーブすることを特徴とする。
【0035】
このようにすれば、セーブ用情報記憶装置の使用記憶容量を節約できるようになり、空いた記憶容量を他の用途に使用できるようになる。
【図面の簡単な説明】
【0036】
【図1】図1(A)、(B)は、ガンマ補正を実現する第1、第2の手法について説明するための図である。
【図2】本実施形態のゲームシステムのブロック図の例である。
【図3】インデックスカラー・テクスチャマッピングについて説明するための図である。
【図4】インデックスカラー・テクスチャマッピング用のLUTを有効利用して、元画像を変換する手法について示す図である。
【図5】図5(A)、(B)は、本実施形態により生成されるゲーム画像の例である。
【図6】元画像を複数のブロックに分割し、各ブロックの画像を、LUTを用いて分割ブロックサイズのポリゴンにテクスチャマッピングする手法について説明するための図である。
【図7】図7(A)、(B)は、ガンマ補正の変換特性とガンマ補正用LUTの例について示す図である。
【図8】図8(A)、(B)は、ネガポジ反転の変換特性とネガポジ反転用LUTの例について示す図である。
【図9】図9(A)、(B)、(C)は、ポスタリゼーション、ソラリゼーション、2値化の変換特性の例について示す図である。
【図10】図10(A)、(B)は、モノトーン(セピア)フィルタ用LUTR、LUTGの例について示す図である。
【図11】モノトーン(セピア)フィルタ用LUTBの例について示す図である。
【図12】ある色成分をインデックス番号に設定した場合に、他の色成分をマスクして、元画像の変換画像を得る手法について説明するための図である。
【図13】LUTR、LUTG、LUTBにより得られた各色情報を合成して、元画像の変換画像を得る手法について説明するための図である。
【図14】LUTを利用したテクスチャマッピングを行い、αプレーンを作成する手法について説明するための図である。
【図15】Z値をLUTのインデックス番号に設定する手法について説明するための図である。
【図16】Z値に応じたα値を設定し、設定されたα値を用いて元画像とぼかし画像を合成する手法について説明するための図である。
【図17】Z値に応じたα値の設定手法について説明するための図である。
【図18】モニタの明るさ調整に関する従来の問題点について説明するための図である。
【図19】モニタの明るさ調整データをセーブ用情報記憶装置にセーブする手法について説明するための図である。
【図20】本実施形態の処理の詳細例について示すフローチャートである。
【図21】本実施形態の処理の詳細例について示すフローチャートである。
【図22】本実施形態の処理の詳細例について示すフローチャートである。
【図23】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図24】図24(A)、(B)、(C)は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【発明を実施するための形態】
【0037】
以下、本発明の好適な実施形態について図面を用いて説明する。
【0038】
1.構成
図2に、本実施形態のゲームシステム(画像生成システム)のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部100を含めばよく、それ以外のブロックについては、任意の構成要素とすることができる。
【0039】
ここで処理部100は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ(CPU、DSP等)、或いはASIC(ゲートアレイ等)などのハードウェアや、所与のプログラム(ゲームプログラム)により実現できる。
【0040】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筺体などのハードウェアにより実現できる。
【0041】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0042】
情報記憶媒体(コンピュータにより使用可能な記憶媒体)180は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納される情報に基づいて本発明(本実施形態)の種々の処理を行う。即ち情報記憶媒体180には、本発明(本実施形態)の手段(特に処理部100に含まれるブロック)を実行するための情報(プログラム或いはデータ)が格納される。
【0043】
なお、情報記憶媒体180に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部170に転送されることになる。また情報記憶媒体180に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも1つを含むものである。
【0044】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0045】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0046】
セーブ用情報記憶装置194は、プレーヤの個人データ(セーブデータ)などが記憶されるものであり、このセーブ用情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0047】
通信部196は、外部(例えばホスト装置や他のゲームシステム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0048】
なお本発明(本実施形態)の手段を実行するためのプログラム或いはデータは、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0049】
処理部100は、ゲーム処理部110、画像生成部130、音生成部150を含む。
【0050】
ここでゲーム処理部110は、コイン(代価)の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト(1又は複数のプリミティブ面)の位置や回転角度(X、Y又はZ軸回り回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置するための処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム処理を、操作部160からの操作データや、セーブ用情報記憶装置194からの個人データや、ゲームプログラムなどに基づいて行う。
【0051】
画像生成部130は、ゲーム処理部110からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ(視点)から見える画像を生成して、表示部190に出力する。また、音生成部150は、ゲーム処理部110からの指示等にしたがって各種の音処理を行い、BGM、効果音、音声などの音を生成し、音出力部192に出力する。
【0052】
なお、ゲーム処理部110、画像生成部130、音生成部150の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0053】
ゲーム処理部110は、移動・動作演算部112、調整情報設定部114、セーブ部116を含む。
【0054】
ここで移動・動作演算部112は、車などのオブジェクトの移動情報(位置データ、回転角度データ)や動作情報(オブジェクトの各パーツの位置データ、回転角度データ)を演算するものであり、例えば、操作部160によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作させたりする処理を行う。
【0055】
より具体的には、移動・動作演算部112は、オブジェクトの位置や回転角度を例えば1フレーム(1/60秒)毎に求める処理を行う。例えば(k−1)フレームでのオブジェクトの位置をPMk-1、速度をVMk-1、加速度をAMk-1、1フレームの時間を△tとする。するとkフレームでのオブジェクトの位置PMk、速度VMkは例えば下式(1)、(2)のように求められる。
【0056】
PMk=PMk-1+VMk-1×△t (1)
VMk=VMk-1+AMk-1×△t (2)
調整情報設定部114は、プレーヤが操作部160(ゲームコントローラ)を用いて入力した操作データに基づいて、表示部160(モニタ)の表示特性(明るさ、色の濃さ、色合い、又はシャープネス等)を調整するための調整データを設定(作成)する処理を行う。
【0057】
セーブ部116は、調整情報設定部114により設定された調整データ(明るさ、色の濃さ、色合い、又はシャープネス等を調整するためのデータ)を、セーブ用情報記憶装置194にセーブするための処理を行う。
【0058】
そして本実施形態では、表示特性の調整により得られた調整データやセーブ用情報記憶装置194からロードされた調整データなどに基づいて、元画像の画像情報に対して変換処理が行われる。この場合の元画像の画像情報の変換処理は、インデックス番号設定部134や描画部140(テクスチャマッピング部142)の機能により、実現されることになる。
【0059】
画像生成部130は、ジオメトリ処理部132、インデックス番号設定部134、描画部140を含む。
【0060】
ここで、ジオメトリ処理部132は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理(3次元演算)を行う。そして、ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標などの形状データ、或いは頂点テクスチャ座標、輝度データ等)は、記憶部170のメインメモリ172に保存される。
【0061】
インデックス番号設定部134は、元画像の画像情報を、LUT記憶部178に記憶されるインデックスカラー・テクスチャマッピング用のLUTのインデックス番号として設定するための処理を行う。ここで、元画像の画像情報としては、例えば、色情報(RGB、YUV等)、α値(各画素に関連づけられて記憶される情報であり色情報以外のプラスアルファの情報)、奥行き値(Z値)等、種々の情報を考えることができる。
【0062】
描画部140は、ジオメトリ処理後のオブジェクト(モデル)を、フレームバッファ174に描画するための処理を行うものであり、テクスチャマッピング部142、マスク処理部144、合成部146を含む。
【0063】
ここでテクスチャマッピング部142は、テクスチャ記憶部176に記憶されるテクスチャをオブジェクトにマッピングするための処理(オブジェクトにマッピングするテクスチャを指定する処理、テクスチャを転送する処理等)を行う。この場合、テクスチャマッピング部142は、LUT記憶部178に記憶されるインデックスカラー・テクスチャマッピング用のルックアップテーブルLUTを用いたテクスチャマッピングを行うことができる。
【0064】
そして本実施形態では、テクスチャマッピング部142が、元画像の画像情報がインデックス番号として設定されたLUTを用いて、仮想オブジェクト(表示画面サイズのポリゴン、分割ブロックサイズのポリゴン等)に対してテクスチャマッピングを行う。これにより、後述するように、ガンマ補正、ネガポジ反転、ポスタリゼーション、ソラリゼーション、2値化、モノトーンフィルタ、セピアフィルタなどの種々の画像変換(ビデオフィルタ)を実現できるようになる。
【0065】
マスク処理部144は、元画像の色成分(例えばR成分)をLUTのインデックス番号として設定して色情報を変換する場合において、変換後の色情報の他の色成分(例えばG、B成分)が描画領域(フレームバッファ或いは別バッファ)に描画されないようにするためのマスク処理を行う。なお、G成分をインデックス番号として設定して色情報を変換する場合には、R、B成分に対するマスク処理を行い、B成分をインデックス番号として設定して色情報を変換する場合には、R、G成分に対するマスク処理を行うことになる。
【0066】
合成部146は、元画像の第Kの色成分(例えばR成分)をLUTのインデックス番号として設定することで得られる変換後の色情報(R、G、B)と、第Lの色成分(例えばG成分)をLUTのインデックス番号として設定することで得られる変換後の色情報と、第Mの色成分(例えばB成分)をLUTのインデックス番号として設定することで得られる変換後の色情報とを、合成するための処理(α加算、αブレンド等)を行う。
【0067】
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0068】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末を用いて生成してもよい。
【0069】
2.本実施形態の特徴
2.1 インデックスカラー・テクスチャマッピングを利用したガンマ補正
さて、前述のように、図1(A)に示す第1の手法では、CPUの処理負荷が過大になってしまうため、ガンマ補正(ビデオフィルタ)を実現するのは実質的に不可能である。また図1(B)に示す第2の手法では、専用のハードウェアであるガンマ補正回路が別途必要であるため、このようなガンマ補正回路が設けられていない家庭用ゲームシステムでは、ガンマ補正を実現できない。
【0070】
そこで、本出願の発明者は、インデックスカラー・テクスチャマッピングにおいて使用されるルックアップテーブルLUTの存在に着目した。
【0071】
即ち、インデックスカラーテクスチャーマッピングでは、テクスチャ記憶部の使用記憶容量を節約するために、図3のA1に示すように、実際の色情報(RGB)ではなくインデックス番号が、テクスチャの各テクセルに関連づけて記憶される。また、図3のA2に示すように、インデックスカラー・テクスチャマッピング用のルックアップテーブルLUT(カラーパレット)には、インデックス番号により指定される色情報が記憶される。そして、オブジェクトに対してテクスチャマッピングを行う際には、テクスチャの各テクセルのインデックス番号に基づいてLUTを参照し、対応する色情報をLUTから読み出し、読み出された色情報をフレームバッファに描画する。
【0072】
このようなインデックスカラーモードのテクスチャマッピングでは、LUTを用いない通常モードのテクスチャマッピングに比べて、使用できる色数は少なくなる(例えば16色)。しかしながら、テクスチャ記憶部に実際の色情報(例えば16ビットの色情報)を記憶する必要が無くなるため、テクスチャ記憶部の使用記憶容量を大幅に節約できる。
【0073】
本実施形態は、このようなインデックスカラー・テクスチャマッピングを通常とは異なる形態で利用している点に特徴がある。
【0074】
即ち、まず図4のB1に示すように、フレームバッファ(広義には描画領域)に描画されている元画像の各画素の画像情報(例えば色情報)を、ガンマ補正用のルックアップテーブルLUTのインデックス番号として設定する(インデックス番号とみなす)。そしてB2に示すように、元画像の画像情報がインデックス番号として設定されたLUTを用いて、仮想オブジェクト(例えば表示画面サイズのポリゴン)に対してインデックスカラー・テクスチャマッピングを行い、元画像の画像情報を変換する。そしてB3に示すように、変換後の画像情報を、フレームバッファ(描画領域)などに描き戻す。
【0075】
以上のようにして本実施形態では、図5(A)に示すような元画像から、図5(B)に示すようなガンマ補正が施された画像を得ることに成功している。即ち図5(B)の画像では、図5(A)に比べて、よりコントラストのはっきりした画像になっている。
【0076】
例えば図1(A)の第1の手法では、元画像の色情報の読み出し、ガンマ補正用LUTの参照、色情報のフレームバッファへの書き戻しなどの全ての処理をCPU上で動作するソフトウェアが行うことになるため、処理の高速化を図れないと共に、CPUの処理負荷も過大になる。
【0077】
これに対して本実施形態では、インデックスカラー・テクスチャマッピングを有効利用してガンマ補正を実現しており、このインデックスカラー・テクスチャマッピングは、専用のハードウェアである描画プロセッサ(描画部)により高速に実行される。従って本実施形態によれば、図1(A)の第1の手法に比べて高速にガンマ補正を実行でき、全表示画面分のガンマ補正を1フレーム(例えば1/60秒、1/30秒)内で完了することも容易となる。
【0078】
また、インデックスカラー・テクスチャマッピングは、メインプロセッサ(CPU)とは独立に動作する描画プロセッサにより実行できるため、メインプロセッサ(CPU)の処理負荷の増加も最小限に抑えることができる。従って、ガンマ補正の実行が要因となって他の処理に悪影響が及ぶ事態も防止できる。
【0079】
また、従来のゲームシステムでは、描画プロセッサの処理能力はそれほど高くなかった。従って、フレームバッファへの元画像の描画と、表示画面サイズのポリゴンの描画を、1フレーム内で完了させることは難しかった。
【0080】
しかしながら、ゲームシステムにおいて、描画プロセッサの処理能力の向上は、他の回路ブロックの処理能力の向上に比べて著しく大きく、非常に高いフィルレート(1秒間にレンダリングできるテクセル数)を持つ描画プロセッサがゲームシステムに使用されるようになってきた。従って、フレームバッファへの元画像の描画と、表示画面サイズのポリゴンの描画を、1フレーム内で完了させることも容易となり、インデックスカラー・テクスチャマッピングを有効利用したガンマ補正も無理なく実現できるようになってきた。
【0081】
また図1(B)の第2の手法では、専用のハードウェアであるガンマ補正回路が別途必要になり、ゲームシステムの高コスト化を招く。また、このようなガンマ補正回路を元々有しない家庭用ゲームシステムなどでは、図1(B)に示す第2の手法を実現することはできず、図1(A)の手法を採用せざるを得なかった。
【0082】
これに対して本実施形態では、インデックスカラー・テクスチャマッピングを有効利用してガンマ補正を実現しており、このインデックスカラー・テクスチャマッピングは、描画プロセッサが元々持っているハードウェアにより実行される。従って本実施形態によれば、図1(B)のようなガンマ補正回路を新たに付加する必要がなく、ゲームシステムが高コスト化してしまう事態を防止できる。また、ガンマ補正回路を元々有していない家庭用ゲームシステムにおいても、ハードウェアによる高速なガンマ補正を実現できるようになる。
【0083】
なお、図4では表示画面サイズのポリゴンにテクスチャマッピングしてガンマ補正(ビデオフィルタ)を実現しているが、表示画面を分割したブロックのサイズのポリゴンにテクスチャマッピングするようにしてもよい。
【0084】
即ち、図6のC1に示すように、フレームバッファ上の元画像(表示画面)を複数のブロックに分割し、C2に示すように、各ブロックの画像を、LUTを用いて分割ブロックサイズのポリゴンにテクスチャマッピングする。そして、得られた分割ブロックサイズの画像をフレームバッファ(描画領域)に描き戻す。
【0085】
このようにすれば、例えばテクスチャマッピングされたポリゴンを別バッファに一時的に描画するような場合に、VRAM上での別バッファの占有領域を小さくできる。
【0086】
即ち、図4のように表示画面サイズのポリゴンにテクスチャマッピングすると、この表示画面サイズのポリゴンを一時的に描画するために、表示画面サイズの別バッファをVRAM上に確保しなければならず、他の処理に支障を来すおそれがある。
【0087】
図6のように、分割ブロックサイズのポリゴンにテクスチャマッピングするようにすれば、VRAM上には分割ブロックサイズの別バッファを用意すれば済むため、別バッファの占有領域を小さくできる。従って、限られたハードウェア資源を有効利用することが可能になる。
【0088】
2.2 各種のビデオフィルタ(LUT)の例
図7(A)にガンマ補正の変換特性例を示す。
【0089】
図7(A)では4つの制御点CP0、CP1、CP2、CP3により、ガンマ補正の変換特性を表すベジエ曲線(広義には自由曲線)が特定される。この場合に、CP0のY座標はY0=0に設定され、CP3のY座標はY3=255に設定される。そして、CP1、CP2のY座標であるY1、Y2を可変に制御することで、ガンマ補正の変換特性を調整できる。
【0090】
そして、ガンマ補正における入力値Xと出力値Yの関係式は、例えば下式のようになる。
【0091】
Y=Y20+(X/255)×(Y21−Y20) (3)
但し、
Y20=Y10+(X/255)×(Y11−Y10)
Y21=Y11+(X/255)×(Y12−Y11)
Y10=Y0 +(X/255)×(Y1−Y0)
Y11=Y1 +(X/255)×(Y2−Y1)
Y12=Y2 +(X/255)×(Y3−Y2)
である。
【0092】
上式(3)の入力値Xにインデックス番号を設定し、出力値Yに各色成分の出力ROUT、GOUT、BOUTを設定することで、図7(B)に示すようなガンマ補正用LUTを作成する。そして、作成されたLUTをVRAMに転送し、このLUTを用いて図4等で説明したインデックスカラー・テクスチャマッピングを行うことで、元画像に、ガンマ補正のビデオフィルタを施した画像を得ることができる。
【0093】
さて、本実施形態によれば、フレームバッファ上の元画像に対して施すビデオフィルタとして、ガンマ補正以外にも種々のビデオフィルタを実現できる。
【0094】
図8(A)に、ネガポジ反転のビデオフィルタの変換特性例を示す。ネガポジ反転における入力値Xと出力値Yの関係式は下式のようになる。
【0095】
Y=255−X (4)
上式(4)の入力値Xにインデックス番号を設定し、出力値Yに各色成分の出力ROUT、GOUT、BOUTを設定することで、図8(B)に示すようなネガポジ反転用LUTを作成する。そして、このLUTを用いて図4で説明したインデックスカラー・テクスチャマッピングを行うことで、元画像に、ネガポジ反転のビデオフィルタを施した画像を得ることができる。
【0096】
図9(A)に、多階調の画像をいくつかの階調に制限して表示するためのポスタリゼーションのビデオフィルタの変換特性例を示す。ポスタリゼーションにおける入力値Xと出力値Yの関係式は下式のようになる。
【0097】
Y={INT(X/VAL)}×VAL (5)
上式においてINT(R)は、Rの小数点を切り捨てて整数化する関数であり、VALは任意の値である。
【0098】
なお、図9(B)には、ある点において入力値と出力値の曲線関数の傾きが反転するような画像効果を奏するソラリゼーションのビデオフィルタの変換特性例を示す。また、図9(C)には、画像のハイコントラスト効果を実現する2値化のビデオフィルタの変換特性例を示す。
【0099】
また本実施形態によれば、モノトーンフィルタやセピアフィルタのビデオフィルタも実現できる。
【0100】
モノトーンフィルタの変換前の色成分をRIN、GIN、BINとし、変換後の色成分をROUT、GOUT、BOUTとした場合に、モノトーンフィルタの変換式は例えば下式のようになる。
【0101】
ROUT=0.299×RIN+0.587×GIN+0.114×BIN (6)
GOUT=0.299×RIN+0.587×GIN+0.114×BIN (7)
BOUT=0.299×RIN+0.587×GIN+0.114×BIN (8)
ここで、入力値RINに対する出力値(ROUTR、GOUTR、BOUTR)の関係式として下式(9)を、入力値GINに対する出力値(ROUTG、GOUTG、BOUTG)の関係式として下式(10)を、入力値BINに対する出力値(ROUTB、GOUTB、BOUTB)の関係式として下式(11)を定義する。
【0102】
(ROUTR、GOUTR、BOUTR)
=(0.299×RIN、0.299×RIN、0.299×RIN) (9)
(ROUTG、GOUTG、BOUTG)
=(0.587×GIN、0.587×GIN、0.587×GIN) (10)
(ROUTB、GOUTB、BOUTB)
=(0.114×BIN、0.114×BIN、0.114×BIN) (11)
上式(9)、(10)、(11)に基づいて、図10(A)、(B)、図11に示すようなモノトーンフィルタ用のルックアップテーブルLUTR、LUTG、LUTBを作成する。そして、これらのLUTR、LUTG、LUTBを用いてインデックスカラー・テクスチャマッピングを行うことで、元画像にモノトーンフィルタを施した画像を得ることができる。
【0103】
なお、セピアフィルタの場合の変換式は例えば下式のようになる。
【0104】
ROUT=0.299×RIN+0.587×GIN+0.114×BIN+6 (12)
GOUT=0.299×RIN+0.587×GIN+0.114×BIN−3 (13)
BOUT=0.299×RIN+0.587×GIN+0.114×BIN−3 (14)
但し、0≦(ROUT、GOUT、BOUT)≦255となるようにクランプ処理を行う。
【0105】
そして、セピアフィルタの場合は例えば下記のような式を定義できる。
【0106】
(ROUTR、GOUTR、BOUTR)
=(0.299×RIN+2、0.299×RIN-1、0.299×RIN-1) (15)
(ROUTG、GOUTG、BOUTG)
=(0.587×GIN+2、0.587×GIN-1、0.587×GIN-1) (16)
(ROUTB、GOUTB、BOUTB)
=(0.114×BIN+2、0.114×BIN-1、0.114×BIN-1) (17)
そして、上式(15)、(16)、(17)に基づいて、セピアフィルタ用のルックアップテーブルLUTR、LUTG、LUTBを作成する。そして、これらのLUTR、LUTG、LUTBを用いてインデックスカラー・テクスチャマッピングを行うことで、元画像にセピアフィルタを施した画像を得ることができる。
【0107】
2.3 マスク処理
さて、ガンマ補正では、1つの入力値(RIN、GIN又はBIN)に対して1つの値(ROUT、GOUT又はBOUT)が出力されるようなLUTが必要になる。
【0108】
ところが、図3に示すインデックスカラー・テクスチャマッピング用のLUTは、元々、ガンマ補正用に設計されたものではないため、1つ入力値(インデックス番号)に対して、複数の値(例えばROUT、GOUT、及びBOUT)が出力されてしまう。従って、このLUTの不整合を解決しなければならないという課題がある。
【0109】
そこで、本実施形態では、元画像の1つの色成分をLUTのインデックス番号として設定する場合において、変換により得られる他の色成分が描画領域(フレームバッファ又は別バッファ)に描画されないようにするためのマスク処理を行っている。
【0110】
より具体的には、図12のD1に示すように、元画像のRプレーンの値をインデックス番号に設定して、LUTを用いたテクスチャマッピングを行うと、R(ROUT)、G(GOUT)、B(BOUT)という3つプレーンの値が出力される。そして、この場合には、D2に示すように、出力されたRプレーンの値のみを描画領域(フレームバッファ又は別バッファ)に描画し、Gプレーン、Bプレーンの値についてはマスクして描画領域に描画されないようにする。
【0111】
また、図12のD3に示すように、元画像のGプレーンの値をインデックス番号に設定してテクスチャマッピングを行った場合には、D4に示すように、出力されたGプレーンの値のみを描画領域に描画し、Rプレーン、Bプレーンの値についてはマスクして描画領域に描画されないようにする。
【0112】
また、図12のD5に示すように、元画像のBプレーンの値をインデックス番号に設定してテクスチャマッピングを行った場合には、出力されたBプレーンの値のみを描画領域に描画し、Rプレーン、Gプレーンの値についてはマスクして描画領域に描画されないようにする。
【0113】
以上のようにすることで、元々はガンマ補正用に設計されていないインデックスカラー・テクスチャマッピング用のLUTを用いながらも、少ない処理負荷で、元画像に対するガンマ補正を実行できるようになる。
【0114】
2.4 合成
図12で説明したマスク処理の手法は、ガンマ補正の他にも、図8(A)〜図9(C)において説明したネガポジ反転、ポスタリゼーション、ソラリゼーション、2値化などのビデオフィルタなどに有効である。
【0115】
これに対して、モノトーンフィルタやセピアフィルタなどのビデオフィルタを実現する場合には、次のような手法を採用することが望ましい。即ち、元画像のR成分をLUTRのインデックス番号として設定することで得られる色情報(R、G、B)と、G成分をLUTGのインデックス番号として設定することで得られる色情報(R、G、B)と、B成分をLUTBのインデックス番号として設定することで得られる色情報(R、G、B)とを合成するようにする。
【0116】
より具体的には、図13のE1に示すように、元画像のR(RIN)プレーンの値をインデックス番号に設定して、図10(A)のLUTRを用いたテクスチャマッピングを行うことで、E2に示すようなR(ROUTR)、G(GOUTR)、B(BOUTR)という3つプレーンの値を得る。この場合の、RINと(ROUTR、GOUTR、BOUTR)の関係式は上式(9)又は(15)のようになっている。
【0117】
また、図13のE3に示すように、元画像のG(GIN)プレーンの値をインデックス番号に設定して、図10(B)のLUTGを用いたテクスチャマッピングを行うことで、E4に示すようなR(ROUTG)、G(GOUTG)、B(BOUTG)という3つプレーンの値を得る。この場合の、GINと(ROUTG、GOUTG、BOUTG)の関係式は上式(10)又は(16)のようになっている。
【0118】
また、図13のE5に示すように、元画像のB(BIN)プレーンの値をインデックス番号に設定して、図11のLUTBを用いたテクスチャマッピングを行うことで、E6に示すようなR(ROUTB)、G(GOUTB)、B(BOUTB)という3つプレーンの値を得る。この場合の、BINと(ROUTB、GOUTB、BOUTB)の関係式は上式(11)又は(17)のようになっている。
【0119】
そして、図13のE7に示すように、E2に示すR(ROUTR)、G(GOUTR)、B(BOUTR)の色情報と、E4に示すR(ROUTG)、G(GOUTG)、B(BOUTG)の色情報と、E6に示すR(ROUTB)、G(GOUTB)、B(BOUTB)の色情報とを、合成(加算)する。
【0120】
このようにすることで、上式(6)、(7)、(8)或いは(12)、(13)、(14)の変換式に示すような、モノトーンフィルタ或いはセピアフィルタのビデオフィルタを実現できるようになる。
【0121】
2.5 Z値、α値への利用
以上では、インデックスカラー・テクスチャマッピング用のLUTに基づき出力される色情報R、G、Bを利用する場合について説明した。
【0122】
しかしながら、インデックスカラー・テクスチャマッピング用のLUTに基づき出力されるα値(A値。画素に関連づけて設定される色情報以外の情報)を利用するようにしてもよい。
【0123】
例えば図14に示すように、Rプレーン(又はG、B)の値をインデックス番号として設定して、LUTを用いたテクスチャマッピングを行い、α(αOUT)プレーンを生成する。そして、生成されたαプレーンを用いて、マスク処理などを行うようにする。
【0124】
即ち、例えばR値が0〜127の時にはα値(αOUT)が0になり、R値が128〜255の時にはα値が255になるようにα値が設定されたLUTを使用する。そして、α値が255よりも小さい画素についてはマスク処理を行わず、α値が255の画素についてはマスク処理を行うようにする。このようにすれば、R値が128以上の画素に対してだけマスク処理が行われるようになり、各画素のR値の大小に応じたマスク処理を行うことができるようになる。
【0125】
なお、生成されたαプレーンの値をα合成の係数(透明度、半透明度、不透明度)として使用してもよい。
【0126】
また、LUTのインデックス番号として設定される画像情報は色情報に限定されない。即ち、描画領域(VRAM)上にあり、LUTのインデックス番号として設定できる画像情報であればよい。
【0127】
例えば図15に示すように、Z値(奥行き値)をLUTのインデックス番号として設定するようにしてもよい。
【0128】
そして、この場合には、Z値をインデックス番号に設定してインデックスカラー・テクスチャマッピングを行うことで得られるαプレーンの値を、例えばα合成の係数として使用するようにする。このようにすることで、Z値に応じた値のα値を設定できるようになり、ぼかし画像を用いた被写界深度などの表現が可能になる。
【0129】
即ち図15に示すようなLUTを用いたテクスチャマッピングを行うことで、図16のF1に示すように、元画像の各画素A、B、C、DのZ値ZA、ZB、ZC、ZDに応じた値に各画素のα値αA、αB、αC、αDを設定する。そして、例えば図16のF2に示すようなαプレーンを生成する。より具体的には、仮想カメラ10の焦点(注視点)から遠い画素(焦点とのZ値の差が大きい画素)ほど、例えば大きなα値を設定する。これにより、仮想カメラ10の焦点から遠い画素ほど、ぼかし画像の合成比率が高くなる。
【0130】
そして、図16のF3に示すように、生成されたαプレーン(各画素に設定されたα値)に基づいて、元画像とぼかし画像のα合成(αブレンディング等)を行う。
【0131】
このように、Z値(奥行き値)に応じて設定されたα値に基づき元画像とぼかし画像のα合成を行うことで、例えば、仮想カメラの焦点(ピントが合っている点として設定される点)から遠くなるほどぼけて見える画像を生成できるようになり、いわゆる被写界深度の表現が可能になる。これにより、画面内の全ての被写体にピントが合っていた従来のゲーム画像とは異なり、現実世界の視界画像のように視点からの距離に応じてフォーカシングされたリアルで自然なゲーム画像を生成できる。この結果、プレーヤの仮想現実感を格段に向上できる。
【0132】
例えば図17に、Z値に応じたα値の設定の一例を示す。なお、図17では、α値は、その大きさが1.0以下になるように正規化されている。
【0133】
例えば図17では、Z値Z1〜Z4、Z1’〜Z4’(しきい値)により領域AR0〜AR4、AR1’〜AR4’の区分けが行われる。そして、これらの領域AR0〜AR4、AR1’〜AR4’に対して、α値α0〜α4、α1’〜α4’が設定される。
【0134】
例えば、Z1〜Z2の間の領域AR1にある画素については、そのα値がα1に設定され、Z2〜Z3の間の領域AR2にある画素については、そのα値がα2に設定される。また、Z1’〜Z2’の間の領域AR1’にある画素については、そのα値がα1’に設定され、Z2’〜Z3’の間の領域AR2’にある画素については、そのα値がα2’に設定される。
【0135】
そして、各領域に設定されるα値には例えば以下の関係式が成り立つ。
【0136】
α0<α1 <α2 <α3 <α4 (18)
α0<α1’<α2’<α3’<α4’ (19)
これらの式(18)、(19)から明らかなように、仮想カメラ10の焦点(注視点)から遠いほどα値が大きくなっている。即ち、仮想カメラ10の焦点とのZ値の差が大きい画素ほど、ぼかし画像の合成比率が高くなるように、α値が設定されている。
【0137】
このようにα値を設定することで、仮想カメラの焦点から遠くなるほどぼけて見える画像を生成でき、いわゆる被写界深度の表現が可能になる。
【0138】
2.6 モニタの明るさ調整
さて、プレーヤが画面上のキャラクタを操作し、ダンジョンを探索するようなRPGゲームやホラーゲームでは、ダンジョンの暗い雰囲気をプレーヤに感じさせるために、ゲーム画像の輝度が全体的に暗めに設定されている場合がある。
【0139】
このような場合に、ゲーム画像が表示されるモニタの明るさ調整が、暗くなる方向に偏って設定されていると、ゲーム画像のコントラストが低下してしまい、ダンジョンの形状や模様の詳細が見えにくくなったり、ゲームの開発者が意図したものとは異なるゲーム画像が表示されたりするなどの問題が生じる。
【0140】
このような問題を解決する手法として、図18に示すように、モニタ20に設けられている明るさ調整ボタン22をプレーヤが直接操作して、画面全体の明るさを調整する手法を考えることができる。
【0141】
しかしながら、この手法によると、画面の明るさを調整するためにプレーヤは、わざわざ自分の手を伸ばして調整ボタン22を操作しなければならず、プレーヤの利便性に欠ける。
【0142】
また、このようにして、ゲームのためにモニタ20の明るさ調整を行ってしまうと、そのゲームを終了して他の映像ソース(テレビチューナ、ビデオ、他のゲーム)の映像を見るような場合に、明るさ調整を元に戻さなければならないなどの手間が新たに生じてしまう。
【0143】
そこで、本実施形態では図19に示すように、プレーヤがゲームコントローラ30を用いて、モニタ20の明るさ調整(広義には表示特性の調整)のための調整データを設定できるようにする。
【0144】
例えば図19では、プレーヤがゲームコントローラ30の十字キー32により左方向を指示すると、画面全体が明るくなるような調整データが設定され、プレーヤが十字キー32により右方向を指示すると、画面全体が暗くなるような調整データが設定される。
【0145】
そして、このようにして設定された調整データは、プレーヤの個人データ(セーブデータ)を記憶するためのセーブ用情報記憶装置40にセーブされる。
【0146】
そして本実施形態では、明るさ調整(表示特性の調整)により得られた調整データやセーブ用情報記憶装置40からロードされた調整データに基づいて、元画像の画像情報に対して変換処理が施される。
【0147】
より具体的には、調整データに基づいて、ガンマ補正の変換特性(図7(A))が特定され、その変換特性に応じたガンマ補正用LUT(図7(B))が作成される。そして、作成されたLUTに基づいて、図4などで説明した手法により元画像に対して変換処理が施される。
【0148】
このようにすれば、プレーヤは、モニタ20に設けられている明るさ調整ボタン22に手を伸ばすことなく、ゲームコントローラ30を用いてモニタ20の明るさを調整できるようになる。
【0149】
また、調整データはセーブ用情報記憶装置40に記憶され、この調整データは、プレーヤが調整処理を行ったゲームにおいてのみ有効となる。従って、そのゲームを終了して他の映像ソースの映像を見るような場合にも、明るさ調整を元に戻さなくても済むようになる。そして、再度そのゲームをプレイする場合には、セーブ用情報記憶装置40からロードされた調整データに基づいてモニタ20の明るさ調整が行われるため、プレーヤは、明るさ調整を再度やり直さなくても済むようになる。従って、プレーヤの利便性を大幅に向上できる。
【0150】
なお、セーブ用情報記憶装置40の記憶容量には限りがあるため、セーブする調整データのデータ量も、なるべく少ないことが望ましい。
【0151】
従って、例えばガンマ補正の変換特性を特定するための調整データをセーブする場合には、ガンマ補正の変換特性を表すベジエ曲線(広義には自由曲線)の制御点のデータを、セーブ用情報記憶装置40にセーブすることが望ましい。即ち、例えば制御点CP0、CP1、CP2、CP3のY座標をセーブしたり、CP1、CP2のY座標のみをセーブしたりする。このようにすることで、調整データのセーブに必要な使用記憶容量を節約でき、余った記憶容量を他の用途に使用することができるようになる。
【0152】
但し、セーブ用情報記憶装置40の残り記憶容量に余裕がある場合には、図7(B)のガンマ補正用LUTの内容の全てをセーブ用情報記憶装置40にセーブするようにしてもよい。
【0153】
3.本実施形態の処理
次に、本実施形態の処理の詳細例について、図20、図21、図22のフローチャートを用いて説明する。
【0154】
図20は、図12の手法を採用した場合の処理例を示すフローチャートである。
【0155】
まず、図7(B)に示すような変換用のLUTを作成して、VRAMに転送しておく(ステップS1)。
【0156】
次に、図12のD1で説明したようにフレームバッファ上の元画像のRプレーンの値をLUTのインデックス番号に設定し、LUTを用いて表示画面サイズのポリゴンにテクスチャマッピングを行い、そのポリゴンを別バッファに描画する(ステップS2)。この時、図12のD2で説明したように、G、B値についてはマスクしておく。
【0157】
次に、図12のD3で説明したようにフレームバッファ上の元画像のGプレーンの値をLUTのインデックス番号に設定し、LUTを用いて表示画面サイズのポリゴンにテクスチャマッピングを行い、そのポリゴンを別バッファに描画する(ステップS3)。この時、図12のD4で説明したように、R、B値についてはマスクしておく。
【0158】
次に、図12のD5で説明したようにフレームバッファ上の元画像のBプレーンの値をLUTのインデックス番号に設定し、LUTを用いて表示画面サイズのポリゴンにテクスチャマッピングを行い、そのポリゴンを別バッファに描画する(ステップS4)。この時、図12のD6で説明したように、R、G値についてはマスクしておく。
【0159】
そして最後に、別バッファに描画されている画像を、テクスチャマッピングなどを利用してフレームバッファに描画する(ステップS5)。
【0160】
図21は、図13の手法を採用した場合の処理例を示すフローチャートである。
【0161】
まず、図10(A)、(B)、図11に示すような変換用のLUTR、LUTG、LUTBを作成して、VRAMに転送しておく(ステップS10)。
【0162】
次に、図13のE1で説明したようにフレームバッファ上の元画像のRプレーンの値をLUTRのインデックス番号に設定し、LUTRを用いて表示画面サイズのポリゴンにテクスチャマッピングを行い、そのポリゴンを第1の別バッファに描画する(ステップS11)。
【0163】
次に、図13のE3で説明したようにフレームバッファ上の元画像のGプレーンの値をLUTGのインデックス番号に設定し、LUTGを用いて表示画面サイズのポリゴンにテクスチャマッピングを行い、そのポリゴンを第2の別バッファに描画する(ステップS12)。
【0164】
次に、図13のE5で説明したようにフレームバッファ上の元画像のBプレーンの値をLUTBのインデックス番号に設定し、LUTBを用いて表示画面サイズのポリゴンにテクスチャマッピングを行い、そのポリゴンを第3の別バッファに描画する(ステップS13)。
【0165】
次に、第1の別バッファに描画されている画像を、テクスチャマッピングなどを利用してフレームバッファに描画する(ステップS14)。次に、第2の別バッファに描画されている画像を、フレームバッファに加算描画(α加算)する(ステップS15)。そして最後に、第3の別バッファに描画されている画像を、フレームバッファに加算描画する(ステップS16)。
【0166】
ステップS22は、図19で説明した明るさ調整の処理例を示すフローチャートである。
【0167】
まず、メモリカード(セーブ用情報記憶装置)に明るさ調整データが存在するか否かなどを判断し、明るさ調整データをロードするか否かを判断する(ステップS20)。そして、ロードすると判断した場合には、メモリカードから明るさ調整データをロードする(ステップS21)。
【0168】
調整データをロードしないと判断した場合には、プレーヤが明るさ調整のオプション画面(図19の表示画面)を選択したか否かを判断する(ステップS22)。そして、選択しなかった場合には明るさ調整データを、予め用意されている初期値に設定する(ステップS23)。一方、選択した場合には、図19で説明したように、プレーヤからの操作データに基づいて、明るさ調整データを設定(作成)する(ステップS24)。そして、設定された明るさ調整データをメモリカードにセーブする(ステップS25)。
【0169】
次に、得られた明るさ調整データ(初期値の調整データ、設定された調整データ又はロードされた調整データ)に基づき、図4などで説明した手法により、ゲーム画像を、毎フレーム、動的に変換する(ステップS26)。
【0170】
4.ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図23を用いて説明する。
【0171】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0172】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0173】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0174】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、MPEG方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0175】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0176】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0177】
ゲームコントローラ942からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0178】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0179】
RAM960は、各種プロセッサの作業領域として用いられる。
【0180】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0181】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0182】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【0183】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【0184】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【0185】
図24(A)に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、レバー1102、ボタン1104等を操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報(プログラム又はデータ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、この情報を格納情報と呼ぶ。
【0186】
図24(B)に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、ゲームコントローラ1202、1204を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209等に格納されている。
【0187】
図24(C)に、ホスト装置1300と、このホスト装置1300とネットワーク1302(LANのような小規模ネットワークや、インターネットのような広域ネットワーク)を介して接続される端末1304-1〜1304-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置1300が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体1306に格納されている。端末1304-1〜1304-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置1300からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末1304-1〜1304-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置1300がゲーム画像、ゲーム音を生成し、これを端末1304-1〜1304-nに伝送し端末において出力することになる。
【0188】
なお、図24(C)の構成の場合に、本発明の各手段を、ホスト装置(サーバー)と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置(サーバー)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0189】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能なセーブ用情報記憶装置(メモリカード、携帯型ゲーム装置)を用いることが望ましい。
【0190】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0191】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0192】
また、インデックスカラー・テクスチャマッピング用のルックアップテーブルのインデックス番号として設定される画像情報としては、本実施形態で説明した情報が特に望ましいが、これに限定されるものではない。
【0193】
また、本発明により実現される画像変換も、図7(A)〜図11で説明したものに限定されない。
【0194】
また、調整情報をセーブ用情報記憶装置にセーブする発明においては、画像情報を変換する手法は図4で説明した手法が特に望ましいが、これに限定されない。例えば図1(A)、(B)で説明した手法等により画像情報を変換してもよい。
【0195】
また、本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。
【0196】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステム(画像生成システム)に適用できる。
【符号の説明】
【0197】
10 仮想カメラ
20 モニタ
22 明るさ調整ボタン
30 ゲームコントローラ
32 十字キー
40 セーブ用情報記憶装置
100 処理部
110 ゲーム処理部
112 移動・動作演算部
114 調整情報設定部
116 セーブ部
130 画像生成部
132 ジオメトリ処理部
134 インデックス番号設定部
140 描画部
142 テクスチャマッピング部
144 マスク処理部
146 合成部
150 音生成部
160 操作部
170 記憶部
172 メインメモリ
174 フレームバッファ
176 テクスチャ記憶部
178 LUT記憶部
180 情報記憶媒体
190 表示部
192 音出力部
194 セーブ用情報記憶装置
196 通信部

【特許請求の範囲】
【請求項1】
画像生成を行うゲームシステムであって、
元画像の画像情報を、インデックスカラー・テクスチャマッピング用のルックアップテーブルのインデックス番号として設定する手段と、
元画像の画像情報がインデックス番号として設定された前記ルックアップテーブルを用いて、仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、元画像の画像情報を変換する手段と、
を含むことを特徴とするゲームシステム。
【請求項2】
請求項1において、
前記仮想オブジェクトが、表示画面サイズのポリゴンであることを特徴とするゲームシステム。
【請求項3】
請求項1において、
前記仮想オブジェクトが、表示画面を分割したブロックのサイズのポリゴンであることを特徴とするゲームシステム。
【請求項4】
請求項1乃至3のいずれかにおいて、
ガンマ補正、ネガポジ反転、ポスタリゼーション、ソラリゼーション、2値化、モノトーンフィルタ又はセピアフィルタの変換のための前記ルックアップテーブルを用意し、該ルックアップテーブルを用いて、元画像の画像情報に対してガンマ補正、ネガポジ反転、ポスタリゼーション、ソラリゼーション、2値化、モノトーンフィルタ又はセピアフィルタの変換を施すことを特徴とするゲームシステム。
【請求項5】
請求項1乃至4のいずれかにおいて、
元画像の画像情報が含む色情報の色成分を前記ルックアップテーブルのインデックス番号として設定して色情報を変換する場合において、変換後の色情報の他の色成分が描画領域に描画されないようにするためのマスク処理を行う手段を含むことを特徴とするゲームシステム。
【請求項6】
請求項1乃至4のいずれかにおいて、
元画像の画像情報が含む色情報の第Kの色成分を前記ルックアップテーブルのインデックス番号として設定することで得られる変換後の色情報と、色情報の第Lの色成分を前記ルックアップテーブルのインデックス番号として設定することで得られる変換後の色情報と、色情報の第Mの色成分を前記ルックアップテーブルのインデックス番号として設定することで得られる変換後の色情報とを合成する手段を含むことを特徴とするゲームシステム。
【請求項7】
請求項1乃至6のいずれかにおいて、
元画像の画像情報の変換により、元画像の画像情報に応じた値のα値が生成されることを特徴とするゲームシステム。
【請求項8】
請求項1乃至7のいずれかにおいて、
元画像の画像情報が含む奥行き値が、前記ルックアップテーブルのインデックス番号として設定されることを特徴とするゲームシステム。
【請求項9】
家庭用ゲームのゲーム画像を生成するためのゲームシステムであって、
プレーヤがゲームコントローラを用いて入力した操作データに基づいて、モニタの表示特性を調整するための調整データを設定する手段と、
設定された調整データを、プレーヤの個人データを記憶するためのセーブ用情報記憶装置にセーブするセーブ手段と、
表示特性の調整により得られた調整データ又はセーブ用情報記憶装置からロードされた調整データに基づいて、元画像の画像情報に対して変換処理を施す手段と、
を含むことを特徴とするゲームシステム。
【請求項10】
請求項9において、
前記セーブ手段が、
画像情報の変換特性を表す自由曲線の制御点のデータを、前記調整データとしてセーブ用情報記憶装置にセーブすることを特徴とするゲームシステム。
【請求項11】
コンピュータが使用可能なプログラムであって、
元画像の画像情報を、インデックスカラー・テクスチャマッピング用のルックアップテーブルのインデックス番号として設定する手段と、
元画像の画像情報がインデックス番号として設定された前記ルックアップテーブルを用いて、仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、元画像の画像情報を変換する手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項12】
請求項11において、
前記仮想オブジェクトが、表示画面サイズのポリゴンであることを特徴とするプログラム。
【請求項13】
請求項11において、
前記仮想オブジェクトが、表示画面を分割したブロックのサイズのポリゴンであることを特徴とするプログラム。
【請求項14】
請求項11乃至13のいずれかにおいて、
ガンマ補正、ネガポジ反転、ポスタリゼーション、ソラリゼーション、2値化、モノトーンフィルタ又はセピアフィルタの変換のための前記ルックアップテーブルを用意し、該ルックアップテーブルを用いて、元画像の画像情報に対してガンマ補正、ネガポジ反転、ポスタリゼーション、ソラリゼーション、2値化、モノトーンフィルタ又はセピアフィルタの変換を施すことを特徴とするプログラム。
【請求項15】
請求項11乃至14のいずれかにおいて、
元画像の画像情報が含む色情報の色成分を前記ルックアップテーブルのインデックス番号として設定して色情報を変換する場合において、変換後の色情報の他の色成分が描画領域に描画されないようにするためのマスク処理を行う手段をコンピュータに実現させることを特徴とするプログラム。
【請求項16】
請求項11乃至14のいずれかにおいて、
元画像の画像情報が含む色情報の第Kの色成分を前記ルックアップテーブルのインデックス番号として設定することで得られる変換後の色情報と、色情報の第Lの色成分を前記ルックアップテーブルのインデックス番号として設定することで得られる変換後の色情報と、色情報の第Mの色成分を前記ルックアップテーブルのインデックス番号として設定することで得られる変換後の色情報とを合成する手段をコンピュータに実現させることを特徴とするプログラム。
【請求項17】
請求項11乃至16のいずれかにおいて、
元画像の画像情報の変換により、元画像の画像情報に応じた値のα値が生成されることを特徴とするプログラム。
【請求項18】
請求項11乃至17のいずれかにおいて、
元画像の画像情報が含む奥行き値が、前記ルックアップテーブルのインデックス番号として設定されることを特徴とするプログラム。
【請求項19】
コンピュータが使用可能であり、家庭用ゲームのゲーム画像を生成するためのプログラムであって、
プレーヤがゲームコントローラを用いて入力した操作データに基づいて、モニタの表示特性を調整するための調整データを設定する手段と、
設定された調整データを、プレーヤの個人データを記憶するためのセーブ用情報記憶装置にセーブするセーブ手段と、
表示特性の調整により得られた調整データ又はセーブ用情報記憶装置からロードされた調整データに基づいて、元画像の画像情報に対して変換処理を施す手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項20】
請求項19において、
前記セーブ手段が、
画像情報の変換特性を表す自由曲線の制御点のデータを、前記調整データとしてセーブ用情報記憶装置にセーブすることを特徴とするプログラム。
【請求項21】
コンピュータにより使用可能な情報記憶媒体であって、請求項11乃至20のいずれかのプログラムを含むことを特徴とする情報記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2011−96265(P2011−96265A)
【公開日】平成23年5月12日(2011.5.12)
【国際特許分類】
【出願番号】特願2010−265764(P2010−265764)
【出願日】平成22年11月29日(2010.11.29)
【分割の表示】特願2001−20521(P2001−20521)の分割
【原出願日】平成13年1月29日(2001.1.29)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】