説明

ゲームシステム、情報記憶媒体及び圧縮データの生成方法

【課題】 データの使用記憶容量を抑えながらもリアルで高品質な画像を生成できるゲームシステム、情報記憶媒体及び圧縮方法を提供すること。
【解決手段】 元画像の色データの圧縮データCP1をデコード部で伸張して色データを得ると共に、元画像のα値を色データに設定し圧縮することで生成された圧縮データCP2を色データ用のデコード部で伸張し、得られた伸張データEX2をα値に設定する。そして色データとα値とを用いたα合成処理を行いゲーム画像を生成する。伸張データの緑色成分の階調に応じた値にα値を設定する。圧縮時に横、縦方向にサイズを縮小すると共に伸張時にサイズを拡大して元に戻す。圧縮・伸張の対象となる第1のデータとして、ヒットチェック用データ、オブジェクトの移動制御用データ、オブジェクトの画像制御用データ、奥行き値のデータを用いる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームシステム、情報記憶媒体及び圧縮データの生成方法に関する。
【背景技術】
【0002】
従来より、仮想的な3次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。ロールプレイングゲーム(RPG)を楽しむことができるゲームシステムを例にとれば、プレーヤは、自身の分身であるキャラクタ(オブジェクト)を操作してマップ上で移動させ、敵キャラクタと対戦したり、他のキャラクタと対話したり、様々な町を訪れたりすることでゲームを楽しむ。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−098719号公報
【特許文献2】特開平4−167189号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
さて、このようなゲームシステムでは、プレーヤの仮想現実感の向上のために、よりリアルで高品質な画像を生成することが重要な技術的課題になっている。
【0005】
一方、画像のリアル度や品質を向上させることの反射的効果として、画像生成に必要なデータの使用記憶容量が増加してしまうという課題が生じる。そして、このような課題を解決するために、この種のゲームシステムでは、色データ(RGB)を圧縮してDVDやCDなどの情報記憶媒体に記憶しておき、画像表示の際にこの圧縮された色データを伸張(展開)し、得られた色データに基づいて画像を生成する。このため、家庭用のゲームシステムなどでは、圧縮された色データを伸張するためのデコード部を備えているものが多い。
【0006】
ところが、この種のゲームシステムが有する圧縮データのデコード部は、色データ(RGB)のみを伸張処理の対象としており、表示物の半透明処理等に使用されるα値などの他のデータについては伸張処理の対象としていない。従って、色データについては圧縮して情報記憶媒体などに記憶しておくことができるが、α値などの他のデータについては圧縮して記憶しておくことができず、データの使用記憶容量が増加してしまうという課題がある。
【0007】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、データの使用記憶容量を抑えながらもリアルで高品質な画像を生成できるゲームシステム、情報記憶媒体及び圧縮方法を提供することにある。
【課題を解決するための手段】
【0008】
(1)本発明は、圧縮された色データを伸張するデコード手段を有するゲームシステムであって、
色データとは異なる第1のデータを色データに設定し圧縮することで生成された圧縮データを、前記デコード手段を用いて伸張し、得られた伸張データを第1のデータに設定する伸長データ処理手段と、
設定された第1のデータを用いて、画像を生成するための所与の処理を行う手段とを含み、
前記第1のデータが、奥行き値であることを特徴とする。
【0009】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各手段としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関する。
【0010】
(2)また本発明に係るゲームシステム及び情報記憶媒体では、
前記所与の処理を行う手段が、
設定された奥行き値に基づき陰面消去を行うようにしてもよい。
【0011】
(3)また本発明に係るゲームシステム及び情報記憶媒体では、
前記伸長データ処理手段が、
ムービーデータが含む奥行き値を色データに設定し圧縮することで生成された圧縮データを、前記デコード手段を用いて伸張し、得られた伸張データを奥行き値に設定し、
前記所与の処理を行う手段が、
設定された奥行き値と、移動オブジェクトの奥行き値とに基づいて陰面消去を行い、ムービーと移動オブジェクトが合成された画像を生成するようにしてもよい。
【0012】
(4)本発明は、圧縮された色データを伸張するデコード手段を有するゲームシステムに用いられる圧縮データについての生成方法であって、
前記デコード手段の伸張処理の対象となる色データとは異なる第1のデータを色データに設定し圧縮して、ゲームシステムに用いられる圧縮データを生成し、
前記第1のデータが、奥行き値のデータであることを特徴とする。
【0013】
(5)また本発明に係る圧縮データの生成方法では、
ムービーデータが含む奥行き値を色データに設定し圧縮して、ゲームシステムに用いられる圧縮データを生成するようにしてもよい。
【図面の簡単な説明】
【0014】
【図1】本実施形態のゲームシステムの機能ブロック図の例である。
【図2】本実施形態により生成されるゲーム画像の例である。
【図3】ゲーム画像を構成する各パーツの絵の例である。
【図4】各パーツの絵を構成する画像データの例である。
【図5】本実施形態の原理について説明するための図である。
【図6】伸張データが含む色成分の階調に応じた値に、α値を設定したり、伸張データが含む緑色成分をα値に設定する手法について説明するための図である。
【図7】α値のデータを横方向、縦方向にスケーリングする手法について説明するための図である。
【図8】図8(A)、(B)、(C)は、第1のデータとしてヒットチェック用データ、移動制御用データを用いる手法について説明するための図である。
【図9】図9(A)、(B)は、第1のデータとして画像制御用データを用いる手法につい説明するための図である。
【図10】第1のデータとして奥行き値(Z値)を用いる手法について説明するための図である。
【図11】図11(A)、(B)も、第1のデータとして奥行き値(Z値)を用いる手法について説明するための図である。
【図12】インデックスカラー・テクスチャマッピングについて説明するための図である。
【図13】インデックスカラー・テクスチャマッピング用のLUTを有効利用して、Gプレーンの色データをα値に変換する手法について説明するための図である。
【図14】LUTを用いて分割ブロックサイズのポリゴンにテクスチャマッピングする手法について説明するための図である。
【図15】本実施形態の処理の詳細例について示すフローチャートである。
【図16】本実施形態の処理の詳細例について示すフローチャートである。
【図17】本実施形態の処理の詳細例について説明するための図である。
【図18】本実施形態の処理の詳細例について説明するための図である。
【図19】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図20】図20(A)、(B)、(C)は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【発明を実施するための形態】
【0015】
上記課題を解決するために、本実施形態は、圧縮された色データを伸張するデコード手段を有するゲームシステムであって、色データとは異なる第1のデータを色データに設定し圧縮することで生成された圧縮データを、前記デコード手段を用いて伸張し、得られた伸張データを第1のデータに設定する手段と、設定された第1のデータを用いて、画像を生成するための所与の処理を行う手段とを含むことを特徴とする。また本実施形態に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。また本実施形態に係るプログラムは、コンピュータにより使用可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させるためのモジュールを含むことを特徴とする。
【0016】
本実施形態では、色データとは異なる第1のデータを色データに設定し圧縮することで生成された圧縮データが用意される(例えば情報記憶媒体やネットワークから読み出される)。なお、ここで第1のデータは、α値、ヒットチェック用のデータ、オブジェクトの移動制御用のデータ、オブジェクトの画像制御用のデータ又は奥行き値などの色データ以外のデータであり、例えば、ピクセル(テクセル)に関連づけて設定されるデータである。
【0017】
そして本実施形態では、この用意された圧縮データが、色データ用のデコード手段を用いて伸張され、得られた伸張データが第1のデータに設定(変換)される。そして、この設定された第1のデータを用いて、画像を生成するための種々の処理(α合成処理、ヒットチェック処理、オブジェクトの移動制御処理、オブジェクトの画像制御処理、陰面消去処理又はテクスチャマッピング等)が行われる。
【0018】
このようにすることで、色データの伸張用に設けられたデコード手段を有効利用して、色データとは異なる第1のデータの圧縮データについても伸張できるようになる。この結果、データの使用記憶容量を抑えながらも、この第1のデータを用いたリアルで高品質な画像を生成できる。
【0019】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、前記第1のデータがα値であり、画像データが含む色データを圧縮することで生成された第1の圧縮データを、前記デコード手段を用いて伸張し、色データを得ると共に、前記画像データが含むα値を色データに設定し圧縮することで生成された第2の圧縮データを、前記デコード手段を用いて伸張し、得られた伸張データをα値に設定し、得られた色データとα値とを用いたα合成処理を行うことを特徴とする。このようにすれば、色データの伸張用に設けられたデコード手段を有効利用してα値の圧縮データを伸張できるようになり、色データとα値(例えば色データとα値を有するテクスチャ)を用いたリアルで高品質な画像を生成できるようになる。
【0020】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、前記デコード手段により得られた伸張データが含む色成分の階調(グレースケール)に応じた値に、前記第1のデータを設定することを特徴とする。このようにすれば、その値が細かく変化する第1のデータを用いてリアルな画像を生成できるようになる。
【0021】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、前記デコード手段により得られた伸張データが含む緑色成分を、前記第1のデータに設定することを特徴とする。このようにすれば、圧縮・伸張に伴う第1のデータの情報劣化を最小限に抑えながら、高品質な画像を生成できるようになる。
【0022】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、前記圧縮データが、横方向及び縦方向の少なくとも一方のサイズが縮小された後に圧縮されることで生成され、前記デコード手段により得られた伸張データが、横方向及び縦方向の少なくとも一方のサイズが拡大されて元のサイズに戻されることを特徴とする。このようにすれば、例えば第1のデータが、情報の劣化がそれほど問題にならないようなデータである場合に、データの使用記憶容量を大幅に節約できるようになる。
【0023】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、前記第1のデータが、ヒットチェック用のデータ、オブジェクトの移動制御用のデータ、オブジェクトの画像制御用のデータ及び奥行き値のデータの少なくとも1つであることを特徴とする。このようにすれば、データの使用記憶容量を節約しながら、適正なヒットチェック処理、オブジェクトの移動制御処理、オブジェクトの画像制御処理又は陰面消去処理などを実現できるようになる。
【0024】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、オブジェクトの各位置における第1のデータの値を求め、求められた第1のデータの値に基づいてオブジェクトに対する処理を行うことを特徴とする。このようにすれば、例えばオブジェクトが移動するマップ上に第1のデータが設定されているような場合に、マップ上でのオブジェクトの位置に基づいて第1のデータの値を求め、求められた値に基づいて、移動制御、画像制御又はイベント制御などの種々の処理をオブジェクトに対して施すことができるようになる。
【0025】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、オブジェクトに対する前記処理が、オブジェクトの移動を制御する処理及びオブジェクトの画像を制御する処理の少なくとも一方であることを特徴とする。このようにすれば、第1のデータの使用記憶容量を節約しながら、リアルで精度の高いオブジェクトの移動制御、画像制御を実現できるようになる。
【0026】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、前記圧縮データを伸張することにより得られた伸張データを、インデックスカラー・テクスチャマッピング用のルックアップテーブルのインデックス番号として設定し、伸張データがインデックス番号として設定された前記ルックアップテーブルを用いて、仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、伸張データを前記第1のデータに設定することを特徴とする。このようにすれば、伸張データを第1のデータに設定する処理を、例えば1回のテクスチャマッピングで一括して行うことができるようになり、処理を効率化できる。
【0027】
なお、仮想オブジェクトは、ポリゴンなどのプリミティブ面であることが望ましいが、立体的なオブジェクトであってもよい。また、仮想オブジェクトは画面上に表示しないことが望ましいが、表示するようにしてもよい。
【0028】
また本実施形態は、圧縮された色データを伸張するデコード手段を有するゲームシステムに用いられる圧縮データについての生成方法であって、前記デコード手段の伸張処理の対象となる色データとは異なる第1のデータを色データに設定し圧縮して、ゲームシステムに用いられる圧縮データを生成することを特徴とする。
【0029】
本実施形態にすれば、色データとは異なる第1のデータを圧縮し、生成された圧縮データを、情報記憶媒体やネットワークを介してゲームシステムに読み込ませ、色データ用のデコード手段を用いて伸張させることなどが可能になる。
【0030】
なお、第1のデータの圧縮をゲーム処理中にリアルタイムに行うようにしてもよい。
【0031】
また本実施形態は、前記第1のデータがα値であり、画像データが含む色データを圧縮して、第1の圧縮データを生成すると共に、前記画像データが含むα値を色データに設定し圧縮して、第2の圧縮データを生成することを特徴とする。このようにすれば、色データのみならずα値についても色データとみなして圧縮できるようになり、圧縮データのデータ量をより少なくすることができるようになる。
【0032】
また本実施形態は、前記第1のデータが、前記第1のデータの値に応じた階調の色データに設定されて圧縮されることを特徴とする。このようにすれば、その値が細かく変化する第1のデータについても適正に圧縮できるようになる。
【0033】
また本実施形態は、前記第1のデータが、横方向及び縦方向の少なくとも一方のサイズが縮小された後に圧縮されることを特徴とする。このようにすれば、例えば第1のデータが、情報の劣化がそれほど問題にならないようなデータである場合に、圧縮データのデータ量をより少なくすることができるようになる。
【0034】
また本実施形態は、前記第1のデータが、ヒットチェック用のデータ、オブジェクトの移動制御用のデータ、オブジェクトの画像制御用のデータ及び奥行き値のデータの少なくとも1つであることを特徴とする。このようにすれば、色データのみならず、ヒットチェック用のデータ、オブジェクトの移動制御用のデータ、オブジェクトの画像制御用のデータ、奥行き値のデータなどについてもコンパクトに圧縮できるようになる。
【0035】
以下、本発明の好適な実施形態について図面を用いて説明する。
【0036】
1.構成
図1に、本実施形態のゲームシステム(画像生成システム)の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部100を含めばよく(或いは処理部100と記憶部170を含めばよく)、それ以外のブロックについては任意の構成要素とすることができる。
【0037】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、マイク、或いは筺体などのハードウェアにより実現できる。
【0038】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0039】
情報記憶媒体180(コンピュータにより使用可能な記憶媒体)は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納される情報に基づいて本発明(本実施形態)の種々の処理を行う。即ち情報記憶媒体180には、本発明(本実施形態)の手段(特に処理部100に含まれるブロック)をコンピュータに実現(実行、機能)させるためのプログラムが格納され、このプログラムは、1又は複数のモジュール(オブジェクト指向におけるオブジェクトも含む)を含む。
【0040】
なお、情報記憶媒体180に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部170に転送されることになる。また情報記憶媒体180には、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、本発明の処理を指示するための情報、或いはその指示に従って処理を行うための情報などを含ませることができる。
【0041】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0042】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0043】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0044】
通信部196は、外部(例えばホスト装置や他のゲームシステム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0045】
なお本発明(本実施形態)の各手段を実現するためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0046】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部100は、記憶部170内の主記憶部172をワーク領域として使用して、各種の処理を行う。
【0047】
ここで、処理部100が行うゲーム処理としては、コイン(代価)の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト(1又は複数のプリミティブ面)の位置や回転角度(X、Y又はZ軸回り回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【0048】
また、処理部100は、上記のゲーム処理結果に基づいて各種の画像処理を行い、ゲーム画像を生成し、表示部190に出力する。例えば、いわゆる3次元のゲーム画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の構成点(頂点)に付与される位置座標、テクスチャ座標、色(輝度)データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、ジオメトリ処理後のオブジェクト(1又は複数プリミティブ面)の画像が、描画バッファ174(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画される。これにより、オブジェクト空間内において所与の視点(仮想カメラ)から見える画像が生成されるようになる。
【0049】
更に、処理部100は、上記のゲーム処理結果に基づいて各種の音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0050】
なお、処理部100の機能は、より好適には、ハードウェア(CPU、DSP等のプロセッサ又はゲートアレイ等のASIC)とプログラム(ゲームプログラム又はファームウェア等)との組み合わせにより実現される。但し、処理部100の機能の全てを、ハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。
【0051】
処理部100は、デコード(伸張)部110、伸張データ処理部120、ヒットチェック部122、移動制御部124、画像制御部126、テクスチャマッピング部130、陰面消去部132、α合成部134を含む。
【0052】
ここで、デコード部110は、JPEG、MPEG等の圧縮方法で圧縮された色データを伸張(展開)する処理を行う。
【0053】
例えば、データ圧縮は以下のようにして実現できる。
【0054】
即ち、まずデータが複数のマクロブロックに分割される。そして、分割された各ブロックに対して、DCT(離散コサイン変換。広義には、アダマール変換、固有値変換等を含む直交変換)が施される。これにより、データが周波数(空間周波数)分解される。次に、DCTにより得られた各DCT係数(広義には直交変換係数)が量子化される。そして、ハフマン符号化(エントロピー符号化、可変長符号化)が行われ、これにより圧縮データが得られる。
【0055】
一方、データの伸張は以下のようにして実現できる。
【0056】
即ち、まず圧縮データが情報記憶媒体180から読み込まれる。或いは、圧縮データがネットワーク(伝送ライン、通信回線)、通信部196を介して外部から読み込まれる。デコード部110は、この読み込まれた圧縮データに対してハフマン復号化(エントロピー復号化、可変長復号化)を行う。次に、デコード部110は、ハフマン復号化後のデータに対して逆量子化を行う。そして、逆DCTを行い、これにより伸張データが得られる。
【0057】
なおMPEG(MPEG2、MPEG4等)の場合に、例えば時間的相関関係を利用した予測符号化、予測復号化(動き補償フレーム間予測)を行ってもよい。
【0058】
そして本実施形態では、元の画像データが含む色データ(例えばRGB)を圧縮することで生成された圧縮データ(ビットストリーム)をデコード部110を用いて伸張(展開)し、色データを得る。更に本実施形態では、元画像のデータが含むα値(広義には色データとは異なる第1のデータ)を色データに設定し圧縮することで生成された圧縮データ(ビットストリーム)を、色データ用のデコード部110を用いて伸張し、得られた伸張データをα値(第1のデータ)として設定する。このようにすることで、色データとは異なるα値(第1のデータ)についても、圧縮された状態で情報記憶媒体180に記憶したりネットワーク、通信部196を介して外部から読み込んだりすることができるようになる。
【0059】
伸張データ処理部120は、デコード部110により得られた伸張データに対して種々の処理を施す。
【0060】
例えば伸張データ処理部120は、色データ用のデコード部110により伸張されたデータをα値(第1のデータ)に設定して後段の処理に渡す。より具体的には、伸張データが含む色成分(赤、緑又は青)の階調(グレースケール)に応じた値に、α値(第1のデータ)を設定する。更に具体的には、伸張データが含む緑色成分をα値(第1のデータ)に設定する。
【0061】
なお、伸張後のα値にノイズが重畳され、例えば0〜128内の値になるべきα値が129以上の値になる場合がある。このような場合には、α値の値を上限値(所与の値)にクランプ(クリッピング)する補正を行うことが望ましい。
【0062】
また本実施形態では、横方向及び縦方向の少なくとも一方のサイズが縮小された後に圧縮されることで圧縮データが生成されている。そして伸張データ処理部120は、デコード部110により得られた伸張データの横方向及び縦方向の少なくとも一方のサイズ(描画バッファ174でのサイズ)を拡大し、元のサイズに戻す処理を行う。
【0063】
ヒットチェック部122は、オブジェクト間のヒットチェック処理を行う。
【0064】
キャラクタや車などのオブジェクトがマップ上で移動するゲームを例にとれば、ヒットチェック部122は、移動するキャラクタや車とマップ上の障害物(壁、建物等)とが衝突したか否かを判定し、キャラクタや車が障害物の中に入り込まないようにする。
【0065】
また、プレーヤが標的キャラクタを狙ってショット(弾)をヒットさせるシューティングゲームや、キャラクタ同士でキックやパンチをヒットさせる格闘ゲームを例にとれば、ヒットチェック部122は、ショットやキックやパンチがキャラクタにヒットしたか否かを判定する。そして、ヒットした場合にはヒットによるダメージ量を計算し、キャラクタの体力パラメータを減少させたりキャラクタを消滅させたりするなどの処理を行う。
【0066】
そして本実施形態では、このようなヒットチェックに使用するデータについても、色データとして圧縮しておき、ゲーム処理時に色データ用のデコード部110を用いて伸張するようにしている。
【0067】
移動制御部124は、マップ上で移動するオブジェクト(移動体)の移動を制御する処理を行う。即ち、プレーヤが操作部160を用いて入力した操作データやマップの地形データなどに基づいて各フレームでのオブジェクトの加速度や速度を求め、各フレームでのオブジェクトの位置や回転角度(方向)を求める。例えば、ヒットチェック用のデータや移動制御用のデータがマップ上に設定されている場合には、オブジェクトの各位置におけるヒットチェック用データの値や移動制御用データの値を求め、求められたデータの値に基づいてオブジェクトの移動を制御する処理を行う。
【0068】
そして本実施形態では、このようなヒットチェック用データ、移動制御用データについても、色データとして圧縮しておき、ゲーム処理時に色データ用のデコード部110を用いて伸張するようにしている。
【0069】
画像制御部126は、マップ上で移動するオブジェクト(移動体)の画像を制御する処理を行う。即ち、オブジェクトのマップ上での位置に応じてオブジェクトの画像(色、輝度、α値、又はテクスチャ等)を変化させる。例えば、オブジェクトの画像制御用データがマップ上に設定されている場合には、オブジェクトの各位置における画像制御用データの値を求め、求められたデータの値に基づいてオブジェクトの画像を制御する処理を行う。
【0070】
そして本実施形態では、このようなオブジェクトの画像制御用データについても、色データとして圧縮しておき、ゲーム処理時に色データ用のデコード部110を用いて伸張するようにしている。
【0071】
テクスチャマッピング部130は、テクスチャ記憶部176に記憶されるテクスチャをオブジェクトにマッピングするための処理を行う。この場合、テクスチャマッピング部130は、LUT記憶部178に記憶されるインデックスカラー・テクスチャマッピング用のLUT(ルックアップテーブル)を用いたテクスチャマッピングを行うことができる。
【0072】
陰面消去部132は、例えば、以下のような手法により陰面消去処理を実現している。
【0073】
即ち、移動オブジェクトの第2の奥行き値を所与のルーチン(アルゴリズム)により求める。そして、求められた移動オブジェクトの第2の奥行き値(移動オブジェクトを他のオブジェクト間に割り込ませるための奥行き値)と、他のオブジェクト(2次元オブジェクト、立体的に見えるように表現された表示物の2次元画像が描かれたプリミティブ面)の第1の奥行き値とに基づいて、移動オブジェクトの陰面消去を行う。
【0074】
この場合、移動オブジェクトの第2の奥行き値は、例えば、移動オブジェクトの位置(移動オブジェクトの最下部に設定された代表点の位置)と、他のオブジェクトの下側境界線(下側境界線を所与の距離だけ延長した延長境界線)とに基づいて求めることが望ましい。また、移動オブジェクトの方向や移動履歴(移動経路、移動順序)を考慮して第2の奥行き値を求めてもよい。
【0075】
なお、陰面消去部132が行う陰面消去は、例えば、奥行き値(描画プライオリティ値)に応じてオブジェクト(2次元オブジェクト、プリミティブ面)をソーティングし、視点から見て奥側から順にオブジェクトを描画する奥行きソート法(Zソート法)により実現してもよいし、ピクセル毎に奥行き値を比較し、視点から見て手前側のピクセルを描画する奥行き比較法(例えばZバッファ179を用いたZバッファ法等)により実現してもよい。
【0076】
α合成部134は、α値を用いたα合成処理(αブレンディング、α加算又はα減算等)を行う。なお、α値(A値)は、各ピクセルに関連づけられて記憶されるデータであり、例えば色データ(RGB)以外のプラスアルファのデータである。α値は、半透明度(透明度又は不透明度と等価)、マスクデータ、バンプデータなどとして使用できる。
【0077】
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0078】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて生成してもよい。
【0079】
2.本実施形態の特徴
次に本実施形態の特徴について図面を用いて説明する。
【0080】
なお本発明の第1のデータはα値には限定されないが、説明を簡素化するために、以下では第1のデータがα値である場合を主に例にとり説明する。
【0081】
2.1 画像データの構造
図2に、本実施形態により生成されたゲーム画像の例を示す。
【0082】
このゲーム画像は、図3のF1、F2、F3に示すような3つのパーツの絵により構成されている。F1は背景の絵であり、F2は木(図2の画面左において上から下に横切る木)の絵であり、F3はキャラクタ(登場人物)の絵である。
【0083】
そして、図3のF2に示す木の絵の画像データは、図4のG1に示すような色データ(RGB)とG2に示すようなα値のデータとにより構成されている。また図3のF3に示すキャラクタの絵の画像データは、図4のG3に示すような色データとG4に示すようなα値のデータとにより構成されている。
【0084】
より具体的には図3のF2の木の絵は、図4のG1の色データとG2のα値とをテクセルデータとして持つテクスチャを、例えば板状のポリゴン(広義にはプリミティブ面)にマッピングすることで表現されている。同様に、図3のF3のキャラクタの絵は、図4のG3の色データとG4のα値とをテクセルデータとして持つテクスチャを、例えば板状のポリゴン(プリミティブ面)にマッピングすることで表現されている。
【0085】
そして図4のG2、G4に示すように、木やキャラクタの輪郭の外側領域では、α値が透明に設定されており、木やキャラクタの輪郭の内側領域では、α値が不透明又は半透明に設定されている。これにより、図3のF2、F3に示すような木やキャラクタの絵を表現できる。また、例えば木やキャラクタの輪郭付近においてα値を透明から不透明に徐々に変化させることで、木やキャラクタの輪郭をぼやかすアンチエリアシングを実現でき、ジャギーの発生等を低減できる。
【0086】
2.2 α値の圧縮
さて、例えば家庭用のゲームシステムなどにおいては、圧縮データを効率よく伸張するために、MPEG、JPEG用のデコード部を専用のハードウェアとして内蔵しているものもある。
【0087】
ところが、この種のゲームシステムが有するデコード部は、色データ(RGB)のみを伸張処理の対象としており、α値などの色データ以外のデータについては伸張処理の対象としていないのが一般的である。その理由は以下の通りである。
【0088】
即ち、この種のゲームシステムが有するデコード部は、ゲームのオープニング、幕間、エンディングで表示されるCGムービー(CG画像)のデータを伸張するために設けられているのが通常である。そして、このようなCGムービーのデータは、α合成などのレンダリング処理が既に完了した後のデータ(いわゆるベタ絵のデータ)であり、α値などを含まない色データ(RGB)だけのデータになっている。従って、デコード部は、色データだけを伸張できれば十分であり、α値などの色データ以外のデータを伸張できる構成にはなっていない。
【0089】
また、MPEG、JPEG方式では一般的に色データを圧縮及び伸張処理の対象としているため、これらのMPEG、JPEG方式でデータを伸張するデコード部も、沿革的に色データのみを伸張処理の対象とするようになっている。
【0090】
以上のように、この種のゲームシステムが有するデコード部は色データのみを伸張処理の対象としているため、図4のG2、G4に示すようなα値などのデータについては伸張できない。従って、α値を圧縮して情報記憶媒体などに記憶しておくことができず、データの使用記憶容量を今一つ節約できないという課題があった。
【0091】
このような課題を解決するために、本実施形態では次のような手法を採用している。
【0092】
即ち、色データとは異なる第1のデータ(α値、ヒットチェック用データ、オブジェクトの移動制御用データ、オブジェクトの画像制御用データ又は奥行き値のデータ等)を色データに設定し圧縮することで生成された圧縮データを、例えば情報記憶媒体やネットワークから読み込む。そして、読み込まれた圧縮データをデコード部を用いて伸張し、得られた伸張データを第1のデータに設定し直す。そして、設定された第1のデータを用いて、画像を生成するための種々の処理(α合成、ヒットチェック、オブジェクトの移動制御又はオブジェクトの画像制御の処理等)を行う。
【0093】
より具体的には図5に示すように、元画像データが含む色データをエンコード部で圧縮することで生成される圧縮データCP1(ビットストリーム)と、元画像データが含むα値(広義には第1のデータ)を色データに設定してエンコード部で圧縮することで生成された圧縮データCP2とを用意する。
【0094】
そして、圧縮データCP1をデコード部で伸張したデータEX1に基づき色データを得る。また、圧縮データCP2をデコード部で伸張したデータEX2をα値に設定することで、α値を得る。そして、得られた色データとα値とを用いてα合成処理を行うことで、図2に示すようなゲーム画像を生成する。
【0095】
このようにすることで、デコード部の伸張処理の対象とはならないα値(第1のデータ)についても、情報記憶媒体に圧縮して記憶しておくことができるようになる。従って、データの使用記憶容量を節約できるようになり、より高品質な画像を少ないデータ使用記憶容量で生成できる。
【0096】
2.3 α値の設定手法
さて本実施形態では、デコード部で得られた伸張データが含む色成分の階調(グレースケール)に応じた値に、α値(第1のデータ)を設定したり、伸張データが含む緑色成分を、α値(第1のデータ)に設定するようにしている。
【0097】
例えば図6のH1に示すように、圧縮対象となるα値が0〜255の範囲のデータであったとする。この場合には例えば図6のH2に示すように、α=0の場合はR=G=B=0、α=1の場合にはR=G=B=1、α=2の場合にはR=G=B=2、・・・・α=255の場合にはR=G=B=255というように、α値を、その各値に応じた階調の色データ(RGB)に設定して圧縮しておく。なお、α値とR、G、Bの値を同じ値にする必要性はなく、例えばα=128の時にR=G=B=255となるような設定にしてもよい。
【0098】
このようにして圧縮されたデータを伸張することにより図6のH3に示すような伸張データが得られた場合には、例えばH4に示すように伸張データが含む色成分の階調に応じた値にα値を設定する。より具体的にはH5に示すように、例えば、G=0の場合にはα=0、G=1の場合にはα=1、G=2の場合にはα=2、・・・・・・G=255の場合にはα=255というように、伸張データが含む緑(G)成分をα値に設定する。
【0099】
即ち、MPEGやJPEGなどの圧縮方式では、RGB表現がYCrCb(YUV)表現に変換され、輝度成分Y、色差成分Cr(RとYの色差)色差成分、Cb(BとYの色差)は別々に圧縮される。そして、人間の目は、輝度の変化には敏感だが色差の変化にはそれほど敏感ではないという性質がある。従って、MPEGやJPEGでは、色差成分Cr、Cbに比べて輝度成分Yの符号量が多くなるように圧縮している。そして、RGB表現からYCrCb表現への変換式はその一例として下式(1)のように表すことができる。
【0100】
Y = 0.299×R+0.587×G+0.115×B
Cr= 0.500×R−0.418×G−0.082×B (1)
Cb=−0.169×R−0.331×G+0.500×B
上式(1)から明らかなように、輝度成分Yに対する寄与が一番大きいのはG(緑)成分である。従って、輝度成分Yの圧縮時の符号量が多いということは、G成分の情報の劣化が最も少ないということを意味する。
【0101】
従って、図6のH5に示すように、伸張データのG成分をα値に設定するようにすれば、圧縮・伸張に伴うα値の情報劣化を最小限に抑えることが可能になり、より高品質な画像を生成できるようになる。
【0102】
2.4 横方向、縦方向のサイズのスケーリング
さて、α値などの色データ以外のデータでは、色データに要求されるような高い精度の情報は必要とされない。そこで本実施形態では、この点に着目して、以下のような手法を採用している。
【0103】
即ち図7に示すように、α値の横方向、縦方向のサイズ(横、縦のいずれか一方のサイズでもよいし、両方のサイズでもよい)を縮小した後にエンコード部で圧縮することで、α値についての圧縮データCP2を生成しておく。
【0104】
そして、この圧縮データCP2をデコード部で伸張した後、得られた伸張データEX2の横方向、縦方向のサイズ(横、縦のいずれか一方のサイズでもよいし、両方のサイズでもよい)を拡大して元のサイズに戻すようにする。
【0105】
このようにすれば、圧縮・伸張に伴うα値の情報劣化は増えるものの、圧縮データCP2のデータ量を大幅に低減できる。例えば、横方向、縦方向の縮小率を共に1/2にした場合には、圧縮データのデータ量を1/4にすることができる。
【0106】
そして、α値の情報が劣化しても、色データの情報が劣化する場合とは異なり、生成される画像の品質はそれほど劣化しない。従って、図7に示す手法を採用すれば、画質をそれほど劣化させることなく、データの使用記憶容量を節約できるという利点を得ることができる。
【0107】
2.5 ヒットチェック、移動制御、画像制御のデータの圧縮・伸張
さて、以上では、色データとして圧縮・伸張される第1のデータがα値である場合を例にとり説明したが、このような第1のデータとしては、ヒットチェック用データ、オブジェクトの移動制御用データ、オブジェクトの画像制御用データ、又は奥行き値(Z値)などの種々のデータを考えることができる。
【0108】
2.5.1 ヒットチェック用データ
例えば図8(A)に示すように、移動オブジェクト20がマップ上を移動する場合には、壁、建物などの障害物22、24、26(進入禁止領域)と移動オブジェクト20とのヒットチェックを行う必要がある。
【0109】
このような場合に、ヒットチェック用データである、障害物の位置や形状等を特定するためのデータを、図5等の手法により、色データとして圧縮しておき、ゲーム処理時にデコード部を用いて伸張し、伸張データをヒットチェック用データとして設定し直すようにする。そして、移動オブジェクト20の各位置におけるヒットチェック用データの値を求め、求められた値に基づいて移動オブジェクト20と障害物22、24、26とのヒットチェック処理(広義には移動制御処理)を行う。このようにすれば、データの使用記憶容量を節約しながら、移動オブジェクト20と障害物22、24、26との間の適正なヒットチェック処理を実現できるようになる。
【0110】
また、シューティングゲームや格闘ゲームにおいては、ショット(弾)やキックやパンチがキャラクタにヒットしたか否かを判別し、キャラクタのダメージ量を計算する必要がある。この場合に図8(B)に示すように、キャラクタ30の各部位毎にダメージ量を異ならせ、例えば頭にショット等がヒットした場合にはダメージ量を大きくし、手や足にヒットした場合にはダメージ量を少なくする。
【0111】
このような場合に、ヒットチェック用データである、各部位でのダメージ量のデータを、図5等の手法により、色データとして圧縮しておき、ゲーム処理時にデコード部を用いて伸張し、伸張データをヒットチェック用データとして設定し直すようにする。このようにすれば、データの使用記憶容量を節約しながら、キャラクタ30とショット等の間の適正でリアルなヒットチェック処理を実現できるようになる。
【0112】
2.5.2 移動制御用データ
図8(C)に示すように移動オブジェクト20がマップ上を移動する場合には、移動オブジェクト20が移動する領域に応じた移動制御を移動オブジェクト20に対して施すことが望ましい。例えば、移動オブジェクト20が沼地32(速度変化領域)に進入した場合には、移動オブジェクト20の速度を減少させるようにする。
【0113】
このような場合に、移動オブジェクト20の移動制御用データを、図5等の手法により、色データとして圧縮しておき、ゲーム処理時にデコード部を用いて伸張し、伸張データを移動制御用データとして設定し直すようにする。そして、移動オブジェクト20の各位置における移動制御用データの値を求め、求められた値に基づいて移動オブジェクト20の移動制御処理を行う。このようにすれば、データの使用記憶容量を節約しながら、移動オブジェクト20のリアルな移動制御を実現できるようになる。
【0114】
なお、移動オブジェクトの移動制御用データとしては、移動オブジェクトの位置、速度、加速度又は方向等を制御するための種々のデータを考えることができる。
【0115】
2.5.3 画像制御用データ
図9(A)では、光源ベクトルLCがE1の方向に向いていると想定されており、この想定に沿うように木42の影領域40(シェーディング演算変更領域)がマップ上に設定されている。そして、移動オブジェクト20がこの影領域40に進入したと判定すると、移動オブジェクト20に対するシェーディング演算を変更し、移動オブジェクト20の陰影づけが全体的に暗くなるようにする。このようにすれば、移動オブジェクト20の陰影づけを変えるか否かを、移動オブジェクト20の位置が影領域40内にあるか否かを判別するだけで判断できる。従って、移動オブジェクト20の陰影づけを変えるか否かを、3次元立体データに基づいて判断する手法に比べて、処理負担を格段に軽減できる。
【0116】
このような場合に、移動オブジェクトの画像制御用データである、影領域40の位置や形状等を特定するためのデータを、図5等の手法により、色データとして圧縮しておき、ゲーム処理時にデコード部を用いて伸張し、伸張データを、移動オブジェクト20の画像制御用データとして設定し直すようにする。そして、移動オブジェクト20の各位置における画像制御用データの値を求め、求められた値に基づいて移動オブジェクト20の画像制御処理を行う。このようにすれば、少ないデータの使用記憶容量で、移動オブジェクト20のリアルなシェーディング処理を実現できるようになる。
【0117】
なお、よりリアルな表現を実現するためには、影領域40(シェーディング演算変更領域)に対してシェーディング演算パラメータを設定しておくことが望ましい。例えば図9(B)に示すように、影領域40の頂点VE0、VE1、VE2、VE3に対して、各々、シェーディング演算パラメータの1つである輝度パラメータI0、I1、I2、I3を設定する。そして、これらの輝度パラメータI0〜I3に基づいて、移動オブジェクト20のシェーディング演算に使用される輝度パラメータを求め、求められた輝度パラメータに基づいて移動オブジェクト20に対するシェーディング演算を行うようにする。このようにすれば、図9(B)に示すように、移動オブジェクト20に施される陰影づけを影領域40の各場所において様々に変化させることができるようになり、よりリアルな陰影づけ表現が可能になる。
【0118】
そして、この場合には、このシェーディング演算パラメータ(輝度パラメータ)についても、移動オブジェクトの画像制御用データとして圧縮・伸張することが望ましい。
【0119】
なお、移動オブジェクトの画像制御用データとしては、移動オブジェクトの色、輝度、α値又はテクスチャ等を制御するための種々のデータを考えることができる。
【0120】
2.5.4 奥行き値
さて、ゲームシステムでは、ゲームのオープニング、幕間、エンディングなどにおいて、プレーヤのゲーム意欲を盛り上げたりプレーヤの感動を高めるために、いわゆるムービー(動画)と呼ばれるものが再生される場合が多い。このムービーでは、CGツールにより制作された映像や実写映像が再生されるため、ポリゴン(プリミティブ面)により構成された3次元オブジェクトをリアルタイムに動かすことで生成される画像に比べて、よりリアルで写実的な表現が可能になる。
【0121】
しかしながら、これまでのゲームシステムでは、ムービー再生のためのデータであるムービーデータが、色データ(RGB)しか含まなかった。従って、例えばムービーとキャラクタなどの移動オブジェクトが合成された画像を生成しようとすると、キャラクタがムービーの手前に常に表示されるようになり、リアル感に欠ける画像が生成されてしまうという問題が生じる。
【0122】
そこで、このような問題を解決するために、本実施形態では、ムービー再生のためのデータであるムービーデータに奥行き値Z1を含ませている。そして、この奥行き値Z1とキャラクタ(広義には移動オブジェクト)の奥行き値Z2とに基づいて陰面消去を行いながら、ムービーとキャラクタが合成された画像を生成する。
【0123】
より具体的には例えば図10に示すように、ムービーを構成する各フレーム画像の各ピクセルに対して、色データ(RGB)の他に、奥行き値Z1のデータを含ませる。そして、このZ1とキャラクタの奥行き値Z2とを比較し、Zバッファ法などのアルゴリズムにしたがって陰面消去を行い、ムービーとキャラクタが合成された画像を生成する。
【0124】
このようにすることで図11(A)に示すように、ムービーの絵の中にキャラクタ30を割り込ませることができるようになる。即ち、ムービーで表現されるタンス50(表示物)の物陰にキャラクタ30が隠れたり、ムービーで表現される出入り口52からキャラクタが出て行くなどの画像表現が可能になる。或いは、ムービーで表現される窓54の向こう側からキャラクタ30が覗き込むなどの画像表現も可能になる。
【0125】
即ち、これまでのムービーでは、ムービーデータが色データしか含まず、奥行き値のデータを含まなかった。従って、ムービーとキャラクタの合成画像を生成しようとすると、図11(B)に示すようにキャラクタ30が常に手前に表示されるようになってしまい、リアルが画像を生成できなかった。
【0126】
本実施形態によれば、図11(A)に示すように、キャラクタ30の奥行き値Z2の大きさに応じて、キャラクタ30がムービーの中の表示物の物陰に隠れたり、隠れなかったりするようになるため、よりリアルで臨場感溢れる画像を生成できる。
【0127】
そして本実施形態では、図10に示すような奥行き値Z1を、図5等の手法により、色データとして圧縮しておき、ゲーム処理時にデコード部を用いて伸張し、伸張データを奥行き値Z1として設定し直すようにする。このようにすれば、ムービーを構成する色データのみならず奥行き値Z1についても、圧縮して情報記憶媒体に記憶しておくことができるようになる。従って、データの使用記憶容量を節約しながらも、キャラクタがムービーの中の表示物の物陰に隠れたりするようなリアルな画像を生成できるようになる。
【0128】
なお、本実施形態で圧縮・伸張の対象となる奥行き値は、図10のようにムービーに関連づけられた奥行き値であることが特に望ましいが、これに限定されない。
【0129】
また、本実施形態におけるムービーは、CGツールで制作した一連のセル画像により構成されるCG映像でもよいし、カメラにより撮影した実写映像でもよい。
【0130】
ムービーとしてCG映像を用いる場合には、CGの作成時に生じた各ピクセルの奥行き値のデータを破棄せずにムービーデータの中に含ませるようにする。即ち、CGツールのZバッファに記憶される最終的な奥行き値のデータは、通常は破棄されるが、これを破棄せずに、色データ(RGB)と共にムービーデータの中に含ませるようにする。このようにすることで、奥行き値のデータを含むムービーデータを、それほど手間をかけることなく用意することができるようになる。
【0131】
また、奥行き値は、全てのフレーム画像に設定しもよいし、一部のフレーム画像にのみ設定しもよい。また、奥行き値は、ムービーを構成するフレーム画像の全てのピクセルに対して設定しもよいし、一部のピクセルにのみ設定してもよい。
【0132】
また、ムービーは、図11(A)のように背景として用いてもよいが、敵ボス(移動オブジェクト)などの表現に用いてもよい。この場合には例えば、ムービー表示のための仮想的なスクリーンを用意し、この仮想スクリーンに、敵ボスのムービーを投影するようにする。或いは、ムービー表示のためのポリゴン(プリミティブ面)を用意し、ムービーをテクスチャとしてこのポリゴンにマッピングするようにしてもよい。
【0133】
2.6 インデックスカラーテクスチャマッピングの利用
さて、図5の圧縮データCP2の伸張データEX2をα値などの第1のデータに設定する処理は、例えば、インデックスカラー・テクスチャマッピングを利用した手法により実現することができる。
【0134】
インデックスカラーテクスチャーマッピングでは、テクスチャ記憶部の使用記憶容量を節約するために、図12のA1に示すように、実際の色データ(RGB)ではなくインデックス番号が、テクスチャの各テクセルに関連づけて記憶される。また、図12のA2に示すように、インデックスカラー・テクスチャマッピング用のルックアップテーブルLUT(カラーパレット)には、インデックス番号により指定される色データやα値が記憶される。そして、オブジェクトに対してテクスチャマッピングを行う際には、テクスチャの各テクセルのインデックス番号に基づいてLUTを参照し、対応する色データやα値をLUTから読み出し、読み出された色データとα値に基づいて、フレームバッファに画像を描画する。
【0135】
このようなインデックスカラーモードのテクスチャマッピングでは、LUTを用いない通常モードのテクスチャマッピングに比べて、使用できる色数は少なくなる(例えば16色)。しかしながら、テクスチャ記憶部に実際の色データ(例えば16ビット)を記憶する必要が無くなるため、テクスチャ記憶部の使用記憶容量を大幅に節約できる。
【0136】
本実施形態は、このようなインデックスカラー・テクスチャマッピングを通常とは異なる形態で利用する。
【0137】
即ち、まず図13のB1に示すように、伸張データが含むGプレーン(他の色成分でもよい)の各ピクセルの色データを、ルックアップテーブルLUTのインデックス番号として設定する(インデックス番号とみなす)。そしてB2に示すように、伸張データのGプレーンの色データがインデックス番号として設定されたLUTを用いて、仮想オブジェクトに対してインデックスカラー・テクスチャマッピングを行い、Gプレーンの色データをα値(αOUT)に変換して、フレームバッファ等に描画する。このようにすれば、Gプレーンの色データを、例えば1回のテクスチャマッピングで一括してα値に変換できるようになり、処理の効率化を図れる。
【0138】
しかも、インデックスカラー・テクスチャマッピングは、この種のゲームシステムが有する専用のハードウェアである描画プロセッサ(描画部)により高速に実行される。従って、Gプレーンの色データをα値に設定(変換)する処理を高速化できるようになる。
【0139】
なお、図13では表示画面サイズのポリゴン(仮想オブジェクト)にテクスチャマッピングすることで、α値の設定処理を実現しているが、表示画面を分割したブロックのサイズのポリゴンにテクスチャマッピングするようにしてもよい。
【0140】
即ち、図14のC1に示すように、フレームバッファ(表示画面)を複数のブロックに分割し、C2に示すように、各ブロックの色データを、LUTを用いて分割ブロックサイズのポリゴンにテクスチャマッピングする。
【0141】
このようにすれば、例えばテクスチャマッピングされたポリゴンをワークバッファ(別バッファ)に一時的に描画するような場合に、VRAM上でのワークバッファの占有領域を小さくできる。
【0142】
即ち、図13のように表示画面サイズのポリゴンにテクスチャマッピングすると、この表示画面サイズのポリゴンを一時的に描画するために、表示画面サイズのワークバッファをVRAM上に確保しなければならず、他の処理に支障を来すおそれがある。
【0143】
図14のように、分割ブロックサイズのポリゴンにテクスチャマッピングするようにすれば、VRAM上には分割ブロックサイズのワークバッファを用意すれば済むため、ワークバッファの占有領域を小さくできる。従って、限られたハードウェア資源を有効利用することが可能になる。
【0144】
3.本実施形態の処理
次に、本実施形態の処理の詳細例について、図15、図16のフローチャートを用いて説明する。
【0145】
図15は、圧縮時の処理についてのフローチャートである。
【0146】
まず、図17に示すように、α付きの元画像データIORに基づき、IORのRGBプレーン(色データ)からなる画像データICと、RGBプレーンが元画像データIORのαプレーンに置き換えられた画像データIα(R=G=B=α)を作成する(ステップS1)。
【0147】
次に、横(幅)方向、縦(高さ)方向の縮小率をSX、SYとした場合に(0.0<SX<1.0、0.0<SY<1.0)、ステップS1で得られた画像データIαを横方向、縦方向にSX倍、SY倍に縮小して、画像データIαRを生成する(ステップS2)。
【0148】
そして、ステップS1で得られた画像データICと、ステップS2で得られた画像データIαRの各々を、MPEG、JPEG方式等で圧縮し、ビットストリームBC、BαRを生成する(ステップS3)。そして、このようにして生成されたビットストリームBC、BαRは、ゲームプログラムやゲームデータなどが格納される情報記憶媒体に書き込まれることになる(ネットワークを介して配信してもよい)。
【0149】
図16は、伸張時の処理についてのフローチャートである。
【0150】
まず、図18に示すように、図15のステップS3で得られたビットストリームBC、BαRを伸張(展開)して、画像データIC’、IαR’を得る(ステップS11)。
【0151】
次に、図15のステップS2で行ったスケーリングでの横方向、縦方向の縮小率をSX、SYとした場合に、画像データIαR’を横方向、縦方向に1.0/SX倍、1.0/SY倍に拡大して、画像データIα’を生成する(ステップS12)。
【0152】
そして、ステップS12で得られた画像データIα’のG(緑)プレーンをαプレーンに設定し、このαプレーンと画像データIC’のRGBプレーンとにより、α付きの画像データIOR’を得る(ステップS13)。そして、この画像データIOR’に基づいてα合成処理などが行われ、図2に示すようなゲーム画像が生成されることになる。
【0153】
4.ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図19を用いて説明する。
【0154】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0155】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0156】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0157】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、MPEG方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0158】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0159】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0160】
ゲームコントローラ942からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0161】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0162】
RAM960は、各種プロセッサの作業領域として用いられる。
【0163】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0164】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0165】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【0166】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実現(実行)してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0167】
そして、本発明の各手段をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実現するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各手段を実現することになる。
【0168】
図20(A)に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、レバー1102、ボタン1104等を操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実現するためのプログラム(データ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、このプログラムを格納プログラム(格納情報)と呼ぶ。
【0169】
図20(B)に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、ゲームコントローラ1202、1204を操作してゲームを楽しむ。この場合、上記格納プログラム(格納情報)は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209等に格納されている。
【0170】
図20(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に伝送し端末において出力することになる。
【0171】
なお、図20(C)の構成の場合に、本発明の各手段を、ホスト装置(サーバー)と端末とで分散して実現するようにしてもよい。また、本発明の各手段を実現するための上記格納プログラム(格納情報)を、ホスト装置(サーバー)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0172】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能なセーブ用情報記憶装置(メモリカード、携帯型ゲーム装置)を用いることが望ましい。
【0173】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0174】
例えば、本発明の圧縮又は伸張処理の対象となる第1のデータは、本実施形態で説明したようなデータが特に望ましいが、これに限定されるものではなく、例えば、ピクセル(テクセルも含む)に関連づけて設定される種々のデータをその対象とすることができる。
【0175】
また、伸張データを第1のデータに設定する処理は、インデックスカラー・テクスチャマッピングを利用して実現してもよいし、伸張データの各ピクセル(テクセル)のデータ(例えばG成分の色データ)を1つずつ第1のデータ(例えば当該ピクセルでのα値)に設定するソフトウェア処理により実現してもよい。
【0176】
また、本発明は、取り込んだ動画像をオブジェクトにそのままマッピングするムービーテクスチャのα値(広義には第1のデータ)の圧縮・伸張などにも適用できる。
【0177】
また、本発明のデコード部はハードウェアで実現してもよいし、ソフトウェアで実現してもよい。
【0178】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0179】
また、本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。
【0180】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステム(画像生成システム)に適用できる。
【符号の説明】
【0181】
20 移動オブジェクト
22、24、26 障害物(進入禁止領域)
30 キャラクタ
32 沼地(速度変化領域)
40 影領域(シェーディング演算変更領域)
100 処理部
110 デコード(伸張)部
120 伸張データ処理部
122 ヒットチェック部
124 移動制御部
126 画像制御部
130 テクスチャマッピング部
132 陰面消去部
134 α合成部
160 操作部
170 記憶部
172 主記憶部
174 描画バッファ
176 テクスチャ記憶部
178 LUT記憶部
179 Zバッファ
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部

【特許請求の範囲】
【請求項1】
圧縮された色データを伸張するデコード手段を有するゲームシステムであって、
色データとは異なる第1のデータを色データに設定し圧縮することで生成された圧縮データを、前記デコード手段を用いて伸張し、得られた伸張データを第1のデータに設定する伸長データ処理手段と、
設定された第1のデータを用いて、画像を生成するための所与の処理を行う手段とを含み、
前記第1のデータが、奥行き値であることを特徴とするゲームシステム。
【請求項2】
請求項1において、
前記所与の処理を行う手段が、
設定された奥行き値に基づき陰面消去を行うことを特徴とするゲームシステム。
【請求項3】
請求項2において、
前記伸長データ処理手段が、
ムービーデータが含む奥行き値を色データに設定し圧縮することで生成された圧縮データを、前記デコード手段を用いて伸張し、得られた伸張データを奥行き値に設定し、
前記所与の処理を行う手段が、
設定された奥行き値と、移動オブジェクトの奥行き値とに基づいて陰面消去を行い、ムービーと移動オブジェクトが合成された画像を生成することを特徴とするゲームシステム。
【請求項4】
コンピュータ読み取り可能な情報記憶媒体であって、
色データとは異なる第1のデータを色データに設定し圧縮することで生成された圧縮データを、圧縮された色データを伸張するデコード手段を用いて伸張し、得られた伸張データを第1のデータに設定する伸長データ処理手段と、
設定された第1のデータを用いて、画像を生成するための所与の処理を行う手段としてコンピュータを機能させるためのプログラムを記憶し、
前記第1のデータが、奥行き値のデータであることを特徴とする情報記憶媒体。
【請求項5】
請求項4において、
前記所与の処理を行う手段が、
設定された奥行き値に基づき陰面消去を行うことを特徴とする情報記憶媒体。
【請求項6】
請求項5において、
前記伸長データ処理手段が、
ムービーデータが含む奥行き値を色データに設定し圧縮することで生成された圧縮データを、前記デコード手段を用いて伸張し、得られた伸張データを奥行き値に設定し、
前記所与の処理を行う手段が、
設定された奥行き値と、移動オブジェクトの奥行き値とに基づいて陰面消去を行い、ムービーと移動オブジェクトが合成された画像を生成することを特徴とする情報記憶媒体。
【請求項7】
圧縮された色データを伸張するデコード手段を有するゲームシステムに用いられる圧縮データについての生成方法であって、
前記デコード手段の伸張処理の対象となる色データとは異なる第1のデータを色データに設定し圧縮して、ゲームシステムに用いられる圧縮データを生成し、
前記第1のデータが、奥行き値のデータであることを特徴とする圧縮データの生成方法。
【請求項8】
請求項7において、
ムービーデータが含む奥行き値を色データに設定し圧縮して、ゲームシステムに用いられる圧縮データを生成することを特徴とする圧縮データの生成方法。

【図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


【公開番号】特開2010−218570(P2010−218570A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2010−106544(P2010−106544)
【出願日】平成22年5月6日(2010.5.6)
【分割の表示】特願2000−284985(P2000−284985)の分割
【原出願日】平成12年9月20日(2000.9.20)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】