JP2012027699A - プログラム、情報記憶媒体及び画像生成システム - Google Patents
プログラム、情報記憶媒体及び画像生成システム Download PDFInfo
- Publication number
- JP2012027699A JP2012027699A JP2010165933A JP2010165933A JP2012027699A JP 2012027699 A JP2012027699 A JP 2012027699A JP 2010165933 A JP2010165933 A JP 2010165933A JP 2010165933 A JP2010165933 A JP 2010165933A JP 2012027699 A JP2012027699 A JP 2012027699A
- Authority
- JP
- Japan
- Prior art keywords
- color
- texture
- color change
- texel
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
【課題】オブジェクトの色替えの多様性を維持しながらも必要なデータ容量や作業工数を大幅に低減することが可能なプログラム、情報記憶媒体及び画像生成システムを提供すること。
【解決手段】
所与のオブジェクトに対応づけられる元テクスチャを記憶し、所与の色指定情報で指定される色に基づいて、元テクスチャの少なくとも一部のテクセルの色を変更し、変更した色を当該テクセルに対応づけられるピクセルの色としてオブジェクトを描画する。
【選択図】図5
【解決手段】
所与のオブジェクトに対応づけられる元テクスチャを記憶し、所与の色指定情報で指定される色に基づいて、元テクスチャの少なくとも一部のテクセルの色を変更し、変更した色を当該テクセルに対応づけられるピクセルの色としてオブジェクトを描画する。
【選択図】図5
Description
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲーム(対戦アクションゲーム)を楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部(コントローラ、レバー、ボタン等)を用いてプレーヤキャラクタ(プレーヤオブジェクト)を操作して、コンピュータや相手プレーヤが操作する敵キャラクタ(敵オブジェクト)と格闘対戦することでゲームを楽しむ。このような画像生成システムでは、ゲームをプレイするプレーヤの好みに応じてプレーヤキャラクタをカスタマイズできるものが存在し、高い人気を得ている。
このようなプレーヤキャラクタのカスタマイズ機能において、プレーヤキャラクタのコスチューム、靴、髪等のオブジェクトについて、模様はそのままで色だけ変更するという色替えの仕様が存在する。この色替えの仕様を実現するため、従来の画像生成システムでは、模様が同じで色違いの多数のテクスチャをあらかじめ用意しておき、プレーヤが指定した色に対応するテクスチャを選択してオブジェクトを描画する処理を行っていた。しかしながら、この手法では、色替えの多様性を追求すると色違いのテクスチャを多数用意する必要があるため、記憶すべきデータ容量が大きくなるという問題があった。また、用意するテクスチャの数が多いほど、その作成作業や色合いの確認作業に多大な手間が必要になるという問題もあった。
本発明は、以上のような課題に鑑みてなされたものであり、本発明のいくつかの態様によれば、オブジェクトの色替えの多様性を維持しながらも必要なデータ容量や作業工数を大幅に低減することが可能なプログラム、情報記憶媒体及び画像生成システムを提供することができる。
(1)本発明は、
所与のオブジェクトの画像を生成するためのプログラムであって、
前記オブジェクトに対応づけられる元テクスチャを記憶するテクスチャ記憶部と、
所与の色指定情報で指定される色に基づいて、前記元テクスチャの少なくとも一部のテクセルの色を変更し、変更した色を当該テクセルに対応づけられるピクセルの色として前記オブジェクトを描画する描画部としてコンピュータを機能させることを特徴とする。
所与のオブジェクトの画像を生成するためのプログラムであって、
前記オブジェクトに対応づけられる元テクスチャを記憶するテクスチャ記憶部と、
所与の色指定情報で指定される色に基づいて、前記元テクスチャの少なくとも一部のテクセルの色を変更し、変更した色を当該テクセルに対応づけられるピクセルの色として前記オブジェクトを描画する描画部としてコンピュータを機能させることを特徴とする。
また、本発明は、コンピュータに読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶している情報記憶媒体に関する。また、本発明は、上記各部を含む画像生成システムに関する。
ここでテクスチャとは、例えば色、輝度、面の法線、透明度その他の表面の特性を表現するための情報である。
元テクスチャとは、少なくともテクセル毎の色情報を含むテクスチャであり、元テクスチャの各テクセルは色チャネル(例えばRGBチャネル)だけで構成されていてもよいし、αチャネルを含んで構成されていてもよい。
色指定情報とは何らかの色を指定するための情報であり、色指定情報により指定される色は、色チャネル(例えばRGBチャネル)だけで構成されていてもよいし、αチャネルを含んで構成されていてもよい。この色指定情報により指定される色は、例えば、プレーヤが好みに応じて指定する色であってもよいし、本発明のプログラムを実行するコンピュータがランダムに指定する色であってもよい。
描画部は、例えば、元テクスチャの少なくとも一部のテクセルの色を色指定情報で指定される色に置き換えてオブジェクトを描画するようにしてもよい。
また、描画部は、例えば、元テクスチャの少なくとも一部のテクセルの色と色指定情報で指定される色とを合成し、合成した色を当該テクセルに対応づけられるピクセルの色としてオブジェクトを描画するようにしてもよい。例えば、あらかじめ所与の係数情報を記憶しておき、この係数情報に応じた合成比で、元テクスチャのテクセルの色と色指定情報で指定される色とを合成するようにしてもよい。
本発明によれば、色指定情報で指定される色に基づいて元テクスチャの一部若しくは全部のテクセルの色を変更し、変更した色をオブジェクトのピクセルの色とすることで、1枚のテクスチャから多様な色合いのオブジェクトを描画することができる。また、本発明によれば、色の異なる多数のテクスチャを事前に用意する必要がないので、必要なデータ容量を低減するとともに、テクスチャの作成作業や確認作業に要する工数を大幅に低減することができる。
(2)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記テクスチャ記憶部は、
前記元テクスチャの色替領域を定義する色替領域定義テクスチャを記憶し、
前記描画部は、
前記色指定情報で指定される色に基づいて、前記色替領域定義テクスチャで定義される前記色替領域に含まれる前記元テクスチャのテクセルの色を変更するようにしてもよい。
前記テクスチャ記憶部は、
前記元テクスチャの色替領域を定義する色替領域定義テクスチャを記憶し、
前記描画部は、
前記色指定情報で指定される色に基づいて、前記色替領域定義テクスチャで定義される前記色替領域に含まれる前記元テクスチャのテクセルの色を変更するようにしてもよい。
色替領域定義テクスチャとは、テクセル毎に、元テクスチャの対応するテクセルが色替領域に含まれるか否かを示す情報を含むテクスチャであり、色替領域定義の各テクセルは、例えば、色チャネル(例えばRGBチャネル)で構成されていてもよい。色替領域定義テクスチャにおいて、元テクスチャの色替領域を直接的に定義してもよいし、元テクスチャの色替領域でない領域を定義することでその他の領域を色替領域として間接的に定義するようにしてもよい。
描画部は、例えば、色替領域定義テクスチャで定義される色替領域に含まれる元テクスチャのテクセルの色と色指定情報で指定される色とを合成するようにしてもよい。
本発明によれば、1枚の色替領域定義テクスチャを用いて元テクスチャの所与の領域の色を替えることで、多様な色合いのオブジェクトを容易に描画することができる。
(3)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記描画部は、
前記色指定情報で指定される色に基づいて、前記元テクスチャの少なくとも一部のテクセルの色を変更した色替テクスチャを生成する色替テクスチャ生成部と、
前記色替テクスチャを前記オブジェクトにマッピングする色替テクスチャマッピング部と、を含むようにしてもよい。
前記描画部は、
前記色指定情報で指定される色に基づいて、前記元テクスチャの少なくとも一部のテクセルの色を変更した色替テクスチャを生成する色替テクスチャ生成部と、
前記色替テクスチャを前記オブジェクトにマッピングする色替テクスチャマッピング部と、を含むようにしてもよい。
色替テクスチャとは、少なくともテクセル毎の色情報を含むテクスチャであり、色替テクスチャの各テクセルは色チャネル(例えばRGBチャネル)だけで構成されていてもよいし、αチャネルを含んで構成されていてもよい。
色替テクスチャ生成部は、例えば、元テクスチャの少なくとも一部のテクセルの色と色指定情報で指定される色とを合成し、合成した色を対応するテクセルの色とする色替テクスチャを生成するようにしてもよい。
本発明によれば、一度色替テクスチャを作成すれば、色替テクスチャを用いてフレーム毎のオブジェクトの描画処理を行うことができる。従って、元テクスチャと指定色情報を用いた色替えの処理を毎フレーム行う必要がないため、オブジェクトの描画処理の負荷を軽減することができる。
(4)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記色替テクスチャ生成部は、
前記色替テクスチャを、前記コンピュータの描画メモリの所与の作業領域に生成するようにしてもよい。
前記色替テクスチャ生成部は、
前記色替テクスチャを、前記コンピュータの描画メモリの所与の作業領域に生成するようにしてもよい。
(5)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記色替テクスチャ生成部は、
前記描画メモリの所与のコピー領域にコピーされた前記元テクスチャを用いて前記色替テクスチャを生成し、生成した当該色替テクスチャを前記コピー領域にコピーし、
前記色替テクスチャマッピング部は、
前記コピー領域の前記色替テクスチャを前記オブジェクトにマッピングするようにしてもよい。
前記色替テクスチャ生成部は、
前記描画メモリの所与のコピー領域にコピーされた前記元テクスチャを用いて前記色替テクスチャを生成し、生成した当該色替テクスチャを前記コピー領域にコピーし、
前記色替テクスチャマッピング部は、
前記コピー領域の前記色替テクスチャを前記オブジェクトにマッピングするようにしてもよい。
このようにすれば、描画メモリの作業領域に生成した色替テクスチャを元テクスチャのコピー領域にコピーした後、作業領域を解放することができるとともに、当該コピー領域にコピーされた色替テクスチャを用いてオブジェクトの描画処理をより高速化することができる。
(6)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記色替テクスチャ生成部は、
前記描画メモリの所与のコピー領域にコピーされた前記元テクスチャを複数のテクスチャに分割し、分割したテクスチャ毎に、前記色替テクスチャの一部を前記作業領域に生成する処理と生成した一部の色替テクスチャを前記コピー領域にコピーする処理とを行い、
前記色替テクスチャマッピング部は、
前記コピー領域に生成された前記色替テクスチャを前記オブジェクトにマッピングするようにしてもよい。
前記色替テクスチャ生成部は、
前記描画メモリの所与のコピー領域にコピーされた前記元テクスチャを複数のテクスチャに分割し、分割したテクスチャ毎に、前記色替テクスチャの一部を前記作業領域に生成する処理と生成した一部の色替テクスチャを前記コピー領域にコピーする処理とを行い、
前記色替テクスチャマッピング部は、
前記コピー領域に生成された前記色替テクスチャを前記オブジェクトにマッピングするようにしてもよい。
このようにすれば、前記描画メモリに色替テクスチャの1枚分のサイズの作業領域を確保できない場合でも、元テクスチャのコピー領域に1枚分の色替テクスチャを生成することができる。
(7)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記色替テクスチャ生成部は、
前記作業領域に生成した前記色替テクスチャを、前記元テクスチャのフォーマットに変換して前記コピー領域にコピーするようにしてもよい。
前記色替テクスチャ生成部は、
前記作業領域に生成した前記色替テクスチャを、前記元テクスチャのフォーマットに変換して前記コピー領域にコピーするようにしてもよい。
テクスチャのフォーマットの一例としては、圧縮形式でないRGBA8888、ARGB8888等や、圧縮形式のDTX1、DTX3、DTX5等が挙げられる。
このように、色替テクスチャのフォーマットを元テクスチャのフォーマットに変換することで、元テクスチャをそのままオブジェクトにマッピングするような既存のプログラムを容易に利用することできる。さらに、一般に、元テクスチャが圧縮形式であることが多いので、色替テクスチャを圧縮形式に変換することで、オブジェクトの描画処理において描画メモリに常駐させる色替テクスチャのデータ量を低減し、描画処理の負荷をより軽減することができる。
(8)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記色替領域定義テクスチャは、
複数の色チャネルを用いて複数の前記色替領域を定義し、
前記描画部は、
少なくとも1つの前記色替領域に含まれるテクセルの色を、複数の前記色替領域にそれぞれ対応づけられる複数の前記色指定情報のうち当該テクセルが含まれる前記色替領域に対応づけられる前記色指定情報で指定される色に基づいて変更するようにしてもよい。
前記色替領域定義テクスチャは、
複数の色チャネルを用いて複数の前記色替領域を定義し、
前記描画部は、
少なくとも1つの前記色替領域に含まれるテクセルの色を、複数の前記色替領域にそれぞれ対応づけられる複数の前記色指定情報のうち当該テクセルが含まれる前記色替領域に対応づけられる前記色指定情報で指定される色に基づいて変更するようにしてもよい。
複数の色チャネルとは、例えば、Rチャネル、Gチャネル、Bチャネルであってもよいし、Yチャネル、Uチャネル、Vチャネルであってもよいし、さらにαチャネルを含んでいてもよい。
描画部は、例えば、少なくとも1つの色替領域に含まれるテクセルの色と、複数の色替領域にそれぞれ対応づけられる複数の色指定情報のうち当該テクセルが含まれる色替領域に対応づけられる色指定情報で指定される色と、を合成するようにしてもよい。
また、描画部は、例えば、元テクスチャの複数の色替領域に含まれるテクセルの色を、当該複数の色替領域に対応づけられる複数の色指定情報で指定される複数の色を合成した色に置き換えてオブジェクトを描画するようにしてもよい。
本発明によれば、1枚の色替領域定義テクスチャにおいて、色チャネル毎に元テクスチャにおける色替領域を独立して定義することができる。そして、複数の色替領域の各々の色を互いに異なる色指定情報で指定される色に基づいて変更することで、より複雑な色替えを実現することができる。
例えば、1枚の色替領域定義テクスチャにおいて、各テクセルのR値で元テクスチャにおける第1の色替領域を定義し、各テクセルのG値で元テクスチャにおける第2の色替領域を定義することができる。そして、色替領域定義テクスチャにおいて、元テクスチャの所定の領域を第1の色替領域として定義し、元テクスチャのその他の領域を第2の色替領域として定義することで、元テクスチャの第1の色替領域に含まれるテクセルの色を第1の色指定情報で指定される色に基づいて変更し、元テクスチャの第2の色替領域に含まれるテクセルの色を第2の色指定情報で指定される色に基づいて変更することができる。また、第1の色替領域の一部と第2の色替領域の一部を重複させることで、重複する領域の色は、第1の色指定情報により指定される色及び第2の色指定情報により指定される色に基づいて変更されるので、より複雑な色替えを容易に実現することができる。
(9)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記描画部は、
前記色替領域定義テクスチャで定義される前記色替領域以外の領域に含まれる前記元テクスチャのテクセルの色を、当該テクセルに対応づけられるピクセルの色として前記オブジェクトを描画するようにしてもよい。
前記描画部は、
前記色替領域定義テクスチャで定義される前記色替領域以外の領域に含まれる前記元テクスチャのテクセルの色を、当該テクセルに対応づけられるピクセルの色として前記オブジェクトを描画するようにしてもよい。
このようにすれば、元テクスチャの一部の領域の色を替えずにオブジェクトを描画することができる。
(10)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記テクスチャ記憶部は、
前記元テクスチャの不変領域を定義する不変領域定義テクスチャを記憶し、
前記描画部は、
前記不変領域定義テクスチャで定義される前記不変領域に含まれる前記元テクスチャのテクセルの色を、当該テクセルが前記色替領域に含まれるか否かに関係なく、当該テクセルに対応づけられるピクセルの色として前記オブジェクトを描画するようにしてもよい。
前記テクスチャ記憶部は、
前記元テクスチャの不変領域を定義する不変領域定義テクスチャを記憶し、
前記描画部は、
前記不変領域定義テクスチャで定義される前記不変領域に含まれる前記元テクスチャのテクセルの色を、当該テクセルが前記色替領域に含まれるか否かに関係なく、当該テクセルに対応づけられるピクセルの色として前記オブジェクトを描画するようにしてもよい。
不変領域定義テクスチャとは、テクセル毎に、元テクスチャの対応するテクセルが不変領域に含まれるか否かを示す情報を含むテクスチャであり、不変領域定義の各テクセルは、例えば、色チャネル(例えばRGBチャネル)で構成されていてもよい。不変領域定義テクスチャにおいて、元テクスチャの不変領域を直接的に定義してもよいし、元テクスチャの不変領域でない領域を定義することでその他の領域を不変領域として間接的に定義するようにしてもよい。
本発明によれば、元テクスチャにおいて不変領域に含まれるテクセルについては、色替領域に含まれるか否かに関係なく、そのままの色にしてオブジェクトを描画することができる。例えば、元テクスチャの一部に色替えをしたくない模様があるような場合には、不変領域定義テクスチャを用いることで、容易にその模様の色をそのまま反映してオブジェクトを描画することができる。
(11)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記色替領域定義テクスチャは、
各テクセルが複数段階のいずれかの色を有し、
前記描画部は、
前記色替領域定義テクスチャで定義される前記元テクスチャの前記色替領域に含まれる各テクセルの色と前記色指定情報で指定される色とを、当該各テクセルに対応づけられる前記色替領域定義テクスチャのテクセルの色に応じた合成比で合成するようにしてもよい。
前記色替領域定義テクスチャは、
各テクセルが複数段階のいずれかの色を有し、
前記描画部は、
前記色替領域定義テクスチャで定義される前記元テクスチャの前記色替領域に含まれる各テクセルの色と前記色指定情報で指定される色とを、当該各テクセルに対応づけられる前記色替領域定義テクスチャのテクセルの色に応じた合成比で合成するようにしてもよい。
例えば、元テクスチャの1つの模様(例えば花の模様)の内部と外部で、色替えの有無や異なる2色の色替えが生じるような場合、描画されるオブジェクトにおいてその模様のエッジ付近の色変化が鋭くなりすぎるとリアル感が低減する。しかし、本発明によれば、例えば、その模様のエッジ付近を色が徐々に変化する色替領域として定義することで、描画されるオブジェクトにおいてその模様のエッジ付近の色の変化にグラデーションをかけることができ、これによりオブジェクトのリアル感を向上させることができる。
(12)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記オブジェクトは、
プレーヤキャラクタに関連付けられるパーツオブジェクトであってもよい。
前記オブジェクトは、
プレーヤキャラクタに関連付けられるパーツオブジェクトであってもよい。
このようにすれば、プレーヤキャラクタのパーツオブジェクトの色替えが可能になり、ゲーム性を向上させることができる。
(13)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記パーツオブジェクトは、
前記キャラクタが装着するコスチュームのオブジェクトであってもよい。
前記パーツオブジェクトは、
前記キャラクタが装着するコスチュームのオブジェクトであってもよい。
(14)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記描画部は、
プレーヤによる入力操作に基づく所与のタイミングで、前記色指定情報で指定される色に基づいて前記元テクスチャの少なくとも一部のテクセルの色を変更する処理を開始するようにしてもよい。
前記描画部は、
プレーヤによる入力操作に基づく所与のタイミングで、前記色指定情報で指定される色に基づいて前記元テクスチャの少なくとも一部のテクセルの色を変更する処理を開始するようにしてもよい。
所与のタイミングとは、例えば、格闘ゲームであれば、格闘の直前のタイミングであってもよい。
本発明によれば、プレーヤの意思に基づいてオブジェクトの色替え処理を行うことができる。
(15)また、本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記描画部は、
プレーヤが指定した色に基づいて前記色指定情報を生成する色指定情報生成部をさらに含むようにしてもよい。
前記描画部は、
プレーヤが指定した色に基づいて前記色指定情報を生成する色指定情報生成部をさらに含むようにしてもよい。
このようにすれば、プレーヤの好みに応じた色でオブジェクトの色替え処理を行うことができるので、ゲーム性を向上させることができる。
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の一例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の一例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
操作部160は、プレーヤがオブジェクト(プレーヤキャラクタ、移動体)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
なお、操作部160は、加速度センサや撮像部、或いは角速度を検出するジャイロセンサを備えた入力機器によってプレーヤからの入力データ(操作データ)を入力できるものでもよい。例えば、入力装置は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力装置には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力装置には、入力装置と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。
例えば、入力機器に備えられた加速度センサは、3軸(X軸、Y軸、Z軸)の加速度を検出する。すなわち、加速度センサは、上下方向、左右方向、及び、前後方向の加速度を検出することができる。なお、加速度センサは、5msec毎に加速度を検出している。また、加速度センサは、1軸、2軸、6軸の加速度を検出するものであってもよい。なお、加速度センサから検出された加速度は、入力機器の通信部によってゲーム装置(本体装置)に送信される。
また、入力機器に備えられた撮像部は、赤外線フィルタ、レンズ、撮像素子(イメージセンサ)、画像処理回路を含む。赤外線フィルタは、入力装置の前方に配置され、表示部190に関連付けられて配置されている光源から入射する光から赤外線のみを通過させる。レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。撮像素子は、例えば、CMOSセンサやCCDのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報(特定位置)を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を検出する。また、検出した撮像画像上の位置情報は、通信部によって、本体装置に送信される。
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。記憶部170は、ワーク領域として使用される主記憶部172と、最終的な表示画像等が記憶される描画バッファ174と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部176と、各オブジェクトに対応付けられたテクスチャが記憶されるテクスチャ記憶部178と、オブジェクトの生成処理時にZ値が記憶されるZバッファ179とを含む。なお、これらの一部を省略する構成としてもよい。
特に本実施形態のテクスチャ記憶部178は、所与のオブジェクトに対応づけられる元テクスチャを記憶する。テクスチャ記憶部178は、さらに、元テクスチャの色替領域を定義する色替領域定義テクスチャや元テクスチャの不変領域を定義する不変領域定義テクスチャを記憶するようにしてもよい。この色替領域定義テクスチャは、複数の色チャネルを用いて複数の色替領域を定義するようにしてもよいし、各テクセルが複数段階のいずれかの色を有するようにしてもよい。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
通信部196は外部(例えば他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して画像生成システムを機能させる場合も本発明の範囲内に含む。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
オブジェクト空間設定部110は、雪、雨、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ライン(線)、ラインポリゴン、ポリゴン、多角形、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
移動・動作処理部112は、オブジェクト(キャラクタ、移動体等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)、物理法則などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。例えば、仮想カメラ制御部114は、仮想カメラを移動体オブジェクトの移動に追従させる制御を行うようにしてもよい。すなわち、仮想カメラによりオブジェクト(例えばキャラクタ、移動体)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、射影変換(視点を基準とした透視変換、投影変換)、ビューポート変換(スクリーン座標変換)、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。ジオメトリ処理後のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、プリミティブ(ポリゴン)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(フレームバッファや中間バッファ(ワークバッファ)などのピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、プリミティブ(ポリゴン)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
そして描画部120は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
特に本実施形態では、描画部120は、所与の色指定情報で指定される色に基づいて、テクスチャ記憶部178に記憶される元テクスチャの少なくとも一部のテクセルの色を変更し、変更した色を当該テクセルに対応づけられるピクセルの色として、所与のオブジェクトを描画する。このオブジェクトは、例えば、プレーヤキャラクタに関連付けられるパーツオブジェクトであり、このパーツオブジェクトは、例えば、プレーヤキャラクタが装着するコスチュームのオブジェクトである。
描画部120は、プレーヤによる入力操作に基づく所与のタイミングで、色指定情報で指定される色に基づいて元テクスチャの少なくとも一部のテクセルの色を変更する処理を開始するようにしてもよい。
描画部120は、色指定情報で指定される色に基づいて、テクスチャ記憶部178に記憶される色替領域定義テクスチャで定義される色替領域に含まれる元テクスチャのテクセルの色を変更するようにしてもよい。さらに、描画部120は、色替領域定義テクスチャで定義される色替領域以外の領域に含まれる元テクスチャのテクセルの色を、当該テクセルに対応づけられるピクセルの色としてオブジェクトを描画するようにしてもよい。
また、色替領域定義テクスチャにおいて、複数の色チャネルを用いて複数の色替領域が定義されている場合、描画部120は、少なくとも1つの色替領域に含まれるテクセルの色を、複数の色替領域にそれぞれ対応づけられる複数の色指定情報のうち当該テクセルが含まれる色替領域に対応づけられる色指定情報で指定される色に基づいて変更するようにしてもよい。
また、色替領域定義テクスチャの各テクセルが複数段階のいずれかの色を有する場合、描画部120は、色替領域定義テクスチャで定義される色替領域に含まれる元テクスチャのテクセルの色と色指定情報で指定される色とを、当該テクセルに対応づけられる色替領域定義テクスチャのテクセルの色に応じた合成比で合成するようにしてもよい。
また、描画部120は、不変領域定義テクスチャで定義される不変領域に含まれる元テクスチャのテクセルの色を、当該テクセルが色替領域に含まれるか否かに関係なく、当該テクセルに対応づけられるピクセルの色としてオブジェクトを描画するようにしてもよい。
本実施形態では、描画部120は、色替テクスチャ生成部122、色替テクスチャマッピング部124、色指定情報生成部126を含む。
色替テクスチャ生成部122は、色指定情報で指定される色に基づいて、元テクスチャの少なくとも一部のテクセルの色を変更した色替テクスチャを生成する処理を行う。
色替テクスチャマッピング部124は、色替テクスチャをオブジェクトにマッピングする処理を行う。
色指定情報生成部126は、プレーヤが指定した色に基づいて色指定情報を生成する処理を行う。
色替テクスチャ生成部122は、色替テクスチャを、描画メモリ(VRAM)の所与の作業領域に生成するようにしてもよい。
そして、色替テクスチャ生成部122は、描画メモリ(VRAM)の所与のコピー領域にコピーされた元テクスチャを用いて色替テクスチャを生成し、生成した当該色替テクスチャを当該コピー領域にコピーし、色替テクスチャマッピング部124は、当該コピー領域の色替テクスチャをオブジェクトにマッピングするようにしてもよい。あるいは、色替テクスチャ生成部122は、描画メモリ(VRAM)の所与のコピー領域にコピーされた元テクスチャを複数のテクスチャに分割し、分割したテクスチャ毎に、色替テクスチャの一部を描画メモリ(VRAM)の作業領域に生成する処理と生成した一部の色替テクスチャを当該コピー領域にコピーする処理とを行い、色替テクスチャマッピング部124は、当該コピー領域に生成された色替テクスチャをオブジェクトにマッピングするようにしてもよい。いずれ場合も、色替テクスチャ生成部122は、描画メモリ(VRAM)の作業領域に生成した色替テクスチャを、元テクスチャのフォーマットに変換してコピー領域にコピーする。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
2.本実施形態の手法
(1)概要
本実施形態は、所与のオブジェクトに対応づけて用意された元テクスチャの少なくとも一部の領域の色を、指定された色に基づいて変更してオブジェクトを描画する処理を行うものである。本実施形態の手法により、プレーヤの好みに応じて、例えば、プレーヤキャラクタのコスチューム、靴、ストッキング、髪の毛、入れ墨等のパーツオブジェクトの色や背景の色を多様に変更することが可能になる。以下、プレーヤキャラクタのパーツオブジェクトの色を変更する場合を例にとり、本実施形態の手法について説明する。
(1)概要
本実施形態は、所与のオブジェクトに対応づけて用意された元テクスチャの少なくとも一部の領域の色を、指定された色に基づいて変更してオブジェクトを描画する処理を行うものである。本実施形態の手法により、プレーヤの好みに応じて、例えば、プレーヤキャラクタのコスチューム、靴、ストッキング、髪の毛、入れ墨等のパーツオブジェクトの色や背景の色を多様に変更することが可能になる。以下、プレーヤキャラクタのパーツオブジェクトの色を変更する場合を例にとり、本実施形態の手法について説明する。
(2)パーツオブジェクトのテーブルデータ
本実施形態では、プレーヤは、所与のタイミングで複数のキャラクタから1のキャラクタを選択し、選択したプレーヤキャラクタに関連付けられる各パーツオブジェクトの色を好みに応じて変更する。
本実施形態では、プレーヤは、所与のタイミングで複数のキャラクタから1のキャラクタを選択し、選択したプレーヤキャラクタに関連付けられる各パーツオブジェクトの色を好みに応じて変更する。
図2に、プレーヤキャラクタに関連付けられるテーブルデータの一例を示す。図2に示すように、本実施形態におけるテーブルデータ10では、キャラクタAにはNA個のパーツオブジェクトPOA(1)、POA(2)、・・・、POA(NA)が関連付けられている。例えば、POA(1)はコスチューム、POA(2)は靴、POA(3)はストッキング等のパーツオブジェクトである。
各パーツオブジェクトPOA(n)(n=1〜NA)には、元テクスチャTXA(n)、色替領域定義テクスチャTYA(n)、色指定情報CLA(n)、係数情報KA(n)が対応づけられている。
元テクスチャTXA(n)は、テクセル毎に色情報(RGB値)(α値を含んでもよい)が定義されたテクスチャである。
色替領域定義テクスチャTYA(n)は、元テクスチャTXA(n)と同じサイズのテクスチャであり、元テクスチャTXA(n)における色替領域を定義する。色替領域定義テクスチャTYA(n)は、テクセル毎に色情報(RGB値)(α値を含んでもよい)が定義され、本実施形態では、色替領域定義テクスチャTYA(n)において、色替領域を示すテクセルのR値には0以外の値(例えば255)が設定され、色替領域以外の領域(以下、非色替領域という)を示すテクセルのR値には0が設定されている。すなわち、色替領域定義テクスチャTYA(n)のテクセルのR値が0以外の値であれば、そのテクセルの座標と同じ座標にある元テクスチャTXA(n)のテクセルは色替領域に含まれ、色替領域定義テクスチャTYA(n)のテクセルのR値が0であれば、そのテクセルの座標と同じ座標にある元テクスチャTXA(n)のテクセルは非色替領域に含まれる。
色指定情報CLA(n)は、元テクスチャTXA(n)の色替領域に含まれる各テクセルの色情報(RGB値)(α値を含んでもよい)と合成される色情報(RGB値)(α値を含んでもよい)を指定する情報であり、係数情報KA(n)はその合成比を決定する係数の情報である。
他のキャラクタについても同様のテーブルデータが定義されており、例えばキャラクタBについては、NB個のパーツオブジェクトPOB(1)、POB(2)、・・・、POB(NB)が関連付けられており、各パーツオブジェクトPOB(n)(n=1〜NB)には、元テクスチャTXB(n)、色替領域定義テクスチャTYB(n)、色指定情報CLB(n)、係数情報KB(n)が対応づけられている。
(3)色替テクスチャの生成手法
本実施形態では、プレーヤがキャラクタを選択する際に、各パーツオブジェクトPOに対する色指定情報CLを指定することで、各パーツオブジェクトPOに対応づけられる元テクスチャTXの色替領域の色を色指定情報CLに応じて変更した色替テクスチャTX’を生成する。
本実施形態では、プレーヤがキャラクタを選択する際に、各パーツオブジェクトPOに対する色指定情報CLを指定することで、各パーツオブジェクトPOに対応づけられる元テクスチャTXの色替領域の色を色指定情報CLに応じて変更した色替テクスチャTX’を生成する。
図3は、パーツオブジェクトPOに対応づけられる色替テクスチャTX’の生成手法について説明するための図である。図3では、パーツオブジェクトPOは例えばコスチュームであり、図2に示したテーブルデータ10において、パーツオブジェクトPOには元テクスチャTX、色替領域定義テクスチャTY、色指定情報CL(=(R,G,B))、係数情報K(=(α,β,γ))が対応づけられているものとしている。
本実施形態では、元テクスチャTX、色替領域定義テクスチャTY、係数情報Kは、情報記憶媒体に記憶されており、キャラクタの描画に先立って情報記憶媒体から読み出される。情報記憶媒体から読み出された元テクスチャTXと色替領域定義テクスチャTYは、それぞれVRAMの所定領域(以下、コピー領域という)CX,CYにコピーされる。図3では、VRAMのコピー領域にコピーされた元テクスチャTXと色替領域定義テクスチャTYが示されている。
図3に示すように、元テクスチャTX、色替領域定義テクスチャTY、色指定情報CL、係数情報Kがシェーダ20に入力され、シェーダ20は、これらの情報を元に各テクセルの色を計算し、VRAMの所定の作業領域Wに色替テクスチャTX’を生成する。
図3では、色替領域定義テクスチャTYにおいて、元テクスチャTXの花の模様以外の領域が色替領域として定義されている。具体的には、色替領域定義テクスチャTYでは、例えば、元テクスチャTXの花の模様以外の領域は白色((r,g,b)=(255,255,255))に、花の模様の領域は黒色((r,g,b)=(0,0,0))に設定されている。従って、色替領域定義テクスチャTYの各テクセルのR値、G値、B値のいずれかをチェックすることで、当該各テクセルと同じ座標にある元テクスチャTXのテクセルが色替領域と非色替領域のいずれに含まれるかが判定できるようになっている。
そして、色替テクスチャTX’では、花の模様の領域(元テクスチャTXの非色替領域)については元テクスチャTXと同じ色であり、花の模様以外の領域(色替領域)については元テクスチャTXの色と色指定情報CLで指定される色を合成した色になっている。より詳細には、色替テクスチャTX’の各テクセルの色(r’,g’,b’)は、元テクスチャTXの同じ座標にあるテクセルの色(r,g,b)に対して、当該テクセルが花の模様の領域(非色替領域)に含まれる場合はr’=r,g’=g,b’=bであり、当該テクセルが、花の模様以外の領域(色替領域)に含まれる場合は、例えばr’=(1−α)・r+α・R,g’=(1−β)・g+β・G,b’=(1−γ)・b+γ・Bで計算される。
図3の破線で示すように、シェーダ20により生成された色替テクスチャTX’は、コピー領域CXにコピー(上書き)される。
なお、キャラクターにN個のパーツオブジェクトが関連付けられている場合には、N個のパーツオブジェクトPO(1)〜PO(N)に対して同様の処理を行い、N個の色替テクスチャTX’(1)〜TX’(N)を生成する。
(4)キャラクタの描画手法
図4は、キャラクタの描画手法について説明するための図である。図4に示すように、シェーダ20により、キャラクタのポリゴンデータをラスタライズした後、VRAMのコピー領域CXにある色替テクスチャTX’をパーツオブジェクトPOにマッピングしてキャラクタを描画する。
図4は、キャラクタの描画手法について説明するための図である。図4に示すように、シェーダ20により、キャラクタのポリゴンデータをラスタライズした後、VRAMのコピー領域CXにある色替テクスチャTX’をパーツオブジェクトPOにマッピングしてキャラクタを描画する。
なお、キャラクターにN個のパーツオブジェクトが関連付けられている場合には、シェーダ20により、N個のパーツオブジェクトPO(1)〜PO(N)に対して、それぞれ色替テクスチャTX’(1)〜TX’(N)をマッピングしてキャラクタを描画する。
3.本実施形態の処理
(1)キャラクタ描画の全体処理
次に、本実施形態のキャラクタ描画の全体処理について図5のフローチャートを用いて説明する。図5のフローチャートは、プレーヤキャラクタに関連付けられたN個のパーツオブジェクトの色をプレーヤの好みに応じて変更して描画するフローチャートである。
(1)キャラクタ描画の全体処理
次に、本実施形態のキャラクタ描画の全体処理について図5のフローチャートを用いて説明する。図5のフローチャートは、プレーヤキャラクタに関連付けられたN個のパーツオブジェクトの色をプレーヤの好みに応じて変更して描画するフローチャートである。
まず、プレーヤが、プレーヤキャラクタのパーツオブジェクトPO(1)〜PO(N)にそれぞれ対応づけて色指定情報CL(1)〜CL(N)を指定する(ステップS10)。例えば、ゲーム画面上にカラーパレットを表示し、プレーヤが、パーツオブジェクトPO(1)〜PO(N)の各々に対してカラーパレットからそれぞれ1色を選択することで色指定情報CL(1)〜CL(N)を指定するようにしてもよい。この色指定情報CL(1)〜CL(N)は、図2に示したテーブルデータ10に書き込まれる。例えば、プレーヤキャラクタとしてキャラクタAが選択されている場合であれば、色指定情報CL(1)〜CL(N)はCLA(1)〜CLA(NA)に書き込まれる。
次に、テーブルデータを参照し、パーツオブジェクトPO(1)〜PO(N)に対して、色替テクスチャTX’(1)〜TX’(N)をそれぞれ生成する(ステップS20)。具体的には、図2に示したテーブルデータ10を参照し、プレーヤキャラクタに関連付けられた元テクスチャTX(1)〜TX(N)、色替領域定義テクスチャTY(1)〜TY(N)、色指定情報CL(1)〜CL(N)(ステップS10で指定した色指定情報)、係数情報K(1)〜K(N)を用いて、色替テクスチャTX’(1)〜TX’(N)を生成する。例えば、プレーヤキャラクタとしてキャラクタAが選択されている場合であれば、元テクスチャTXA(1)〜TXA(NA)、色替領域定義テクスチャTYA(1)〜TYA(NA)、色指定情報CLA(1)〜CLA(NA)、係数情報KA(1)〜KA(NA)を用いて、色替テクスチャTXA’(1)〜TXA’(NA)を生成する。このステップS20の処理の具体的なフローチャートについては後述する。
次に、ステップS20で生成した色替テクスチャTX’(1)〜TX’(N)を用いてプレーヤキャラクタを描画する(ステップS30)。具体的には、シェーダ20により、プレーヤキャラクタのポリゴンデータをラスタライズした後、パーツオブジェクトPO(1)〜PO(N)に対して色替テクスチャTX’(1)〜TX’(N)をそれぞれマッピングしてプレーヤキャラクタを描画する。例えば、プレーヤキャラクタとしてキャラクタAが選択されている場合であれば、パーツオブジェクトPOA(1)〜POA(NA)に対して色替テクスチャTXA’(1)〜TXA’(NA)をそれぞれマッピングしてプレーヤキャラクタを描画する。
そして、プレーヤキャラクタの描画が終了するまで(ステップS40でYになるまで)フレームを更新し(ステップS50)、プレーヤキャラクタの描画処理(ステップS30)を継続する。
(2)色替テクスチャの生成処理
次に、色替テクスチャTX’(1)〜TX’(N)の生成処理(図5のステップS20の処理)について、図6のフローチャートを用いて説明する。
次に、色替テクスチャTX’(1)〜TX’(N)の生成処理(図5のステップS20の処理)について、図6のフローチャートを用いて説明する。
まず、図7に示すように、作業領域W、元テクスチャTX(1)〜TX(N)のコピー領域CX(1)〜CX(N)、色替領域定義テクスチャTY(1)〜TY(N)のコピー領域CY(1)〜CY(N)をVRAM30に確保する(ステップS100)。
次に、元テクスチャTX(1)〜TX(N)をコピー領域CX(1)〜CX(N)にそれぞれコピーする(ステップS110)。
次に、色替領域定義テクスチャTY(1)〜TY(N)をコピー領域CY(1)〜CY(N)にそれぞれコピーする(ステップS120)。
次に、nを1に設定し(ステップS130)、元テクスチャTX(n),色替領域定義テクスチャTY(n),色指定情報CL(n),係数情報K(n)を用いて作業領域Wに色替テクスチャTX’(n)を生成する(ステップS140)。具体的には、図2に示したテーブルデータ10を参照し、プレーヤキャラクタのパーツオブジェクトPO(n)に関連付けられた元テクスチャTX(n)、色替領域定義テクスチャTY(n)、色指定情報CL(n)、係数情報K(n)を用いて、色替テクスチャTX’(n)を生成する。このステップS140の処理の詳細については後述する。
次に、元テクスチャTX(n)と色替テクスチャTX’(n)のフォーマットをチェックし、両者のフォーマットが異なる場合は(ステップS150のY)、ステップS140で生成した色替テクスチャTX’(n)のフォーマットを元テクスチャTX(n)のフォーマットに変換し(ステップS160)、フォーマット変換後の色替テクスチャTX’(n)をコピー領域CX(n)にコピーする(ステップS170)。例えば、元テクスチャTX(n)のフォーマットが、圧縮形式のDTX1、DTX3、DTX5等であり、色替テクスチャTX’(n)のフォーマットがRGBA8888やARGB8888であれば、色替テクスチャTX’(n)を圧縮してDTX1、DTX3、DTX5等のフォーマットに変換してからコピー領域CX(n)にコピーする。
一方、両者のフォーマットが一致する場合は(ステップS150のN)、ステップS140で生成した色替テクスチャTX’(n)をそのままコピー領域CX(n)にコピーする(ステップS170)。例えば、元テクスチャTX(n)のフォーマットと色替テクスチャTX’(n)のフォーマットがともにRGBA8888やARGB8888であれば、色替テクスチャTX’(n)をそのままコピー領域CX(n)にコピーすることができる。
ステップS140〜S170の処理が終了すると、色替領域定義テクスチャTY(n)は不要になるので、コピー領域CY(n)を解放する(ステップS180)。
そして、n=Nになるまで(ステップS190でYになるまで)、nを1だけ増やして(ステップS200)ステップS140〜S180の処理を繰り返し行う。n=Nになると(ステップS190のY)、色替テクスチャTX’(1)〜TX’(N)の生成処理が終了したので、作業領域Wを解放し(ステップS210)、処理を終了する。
なお、プレーヤキャラクタの描画処理(図5のフローチャートにおけるステップS50の処理)では、VRAM30のコピー領域CX(1)〜CX(N)にコピーされた色替テクスチャTX’(1)〜TX’(N)を用いてプレーヤキャラクタを含む1フレーム分の画像をVRAM30のフレームバッファに生成する。
次に、各色替テクスチャTX’(n)の生成処理(図6のステップS140の処理)の詳細について、図8のフローチャートを用いて説明する。
まず、jを1に設定し(ステップS300)、元テクスチャTX(n)のテクセルtTX(j)に対応する(座標が同じ)色替領域定義テクスチャTY(n)のテクセルtTY(j)のR値を判定する(ステップS310)。本実施形態では、色替領域を示すテクセルtTY(j)は白色((r,g,b)=(255,255,255))に、非色替領域を示すテクセルtTY(j)は黒色((r,g,b)=(0,0,0))に設定されているので、テクセルtTY(j)のR値が0でなければtTX(j)は色替領域に含まれ、テクセルtTY(j)のR値が0であればtTX(j)は非色替領域に含まれる。
色替領域定義テクスチャTY(n)のテクセルtTY(j)のR値が0であれば(ステップS320のY)、元テクスチャTX(n)のテクセルtTX(j)は非色替領域に含まれるので、テクセルtTX(j)の色を色替テクスチャTX’(n)の対応する(座標が同じ)テクセルtTX’(j)の色としてVRAM30の作業領域Wに書き込む(ステップS330)。すなわち、テクセルtTX’(j)の色(r’,g’,b’)は、テクセルtTX(j)の色(r,g,b)と等しい(r’=r,g’=g,b’=b)。
一方、色替領域定義テクスチャTY(n)のテクセルtTY(j)のR値が0でなければ(ステップS320のN)、元テクスチャTX(n)のテクセルtTX(j)は色替領域に含まれるので、係数情報K(n)を用いて、テクセルtTX(j)の色と色指定情報CL(n)により指定される色を合成した色を計算し(ステップS340)、計算した色を色替テクスチャTX’(n)の対応する(座標が同じ)テクセルtTX’(j)の色としてVRAM30の作業領域Wに書き込む(ステップS350)。例えば、テクセルtTX’(j)の色(r’,g’,b’)は、テクセルtTX(j)の色(r,g,b)、色指定情報CL(n)=(R,G,B)、係数情報K(n)=(α,β,γ)を用いて、r’=(1−α)・r+α・R,g’=(1−β)・g+β・G,b’=(1−γ)・b+γ・Bで計算される。
そして、すべてのテクセルの処理が終了するまで(ステップS360でYになるまで)、jを1だけ増やして(ステップS370)ステップS310〜S350の処理を繰り返し行う。すべてのテクセルの処理が終了すると(ステップS360のY)、作業領域Wに色替テクスチャTX’(n)が完成する。
このように、本実施形態によれば、色替領域定義テクスチャTYで定義される元テクスチャTXの色替領域の色と色指定情報CLで指定される色とを合成した色を、パーツオブジェクトの対応するピクセルの色とすることで、多様な色合いのキャラクタを描画することができる。
また、本実施形態によれば、1枚の元テクスチャTXと1枚の色替領域定義テクスチャTYを用意すればよいので、必要なデータ容量を低減するとともに、テクスチャの作成作業や確認作業に要する工数を大幅に低減することができる。
また、本実施形態によれば、一度色替テクスチャTX’を作成すれば、色替テクスチャTX’を用いてフレーム毎のプレーヤキャラクタの描画処理を行うことができる。従って、プレーヤキャラクタの色の計算処理を毎フレーム行う必要がないため、描画処理の負荷を軽減することができる。
また、本実施形態によれば、色替テクスチャTX’を元テクスチャTXと同じフォーマットでコピー領域CXにコピーすることで、元テクスチャTXをそのままパーツオブジェクトにマッピングするような既存のプログラムを容易に利用することできる。さらに、一般に、元テクスチャTXがDTX1等の圧縮形式であることが多いので、色替テクスチャTX’を圧縮形式に変換することで、プレーヤキャラクタの描画処理においてVRAM30に常駐させる色替テクスチャTX’のデータ量を低減し、描画処理の負荷をより軽減することができる。
4.ハードウェア構成
次に、図9を用いて本実施形態を実現できるハードウェア構成について説明する。なお、図9は、本実施形態を実現できるハードウェア構成を示す一例である。
次に、図9を用いて本実施形態を実現できるハードウェア構成について説明する。なお、図9は、本実施形態を実現できるハードウェア構成を示す一例である。
メインプロセッサ900は、DVD982(情報記憶媒体。CDやBD(ブルーレイディスク)でもよい。)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればVRAM920のテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをVRAM920のフレームバッファ922に描画する。
また、この描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
特に、本実施形態では、描画プロセッサ910は、テクスチャ記憶部924(コピー領域)に元テクスチャを転送し、元テクスチャの色替領域の色を変更した色替テクスチャをVRAM920の作業領域に生成する。そして、描画プロセッサ910は、色替テクスチャをテクスチャ記憶部924(コピー領域)にコピーし、この色替テクスチャに基づいてオブジェクトをフレームバッファ922に描画する。
なお、上記各プロセッサの各機能は、ハードウェアとして別々のプロセッサにより実現してもよいし、1つのプロセッサにより実現してもよい。また、プロセッサとしてCPUとGPUを設けた場合でも、いずれのプロセッサによりいかなる機能を実現するかは、任意に設定することができる。
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
ROM950には、システムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。
RAM960は、各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるDVD982にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
なお、本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
そして、本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
5.変形例
(1)変形例1
前述した本実施形態の手法ではVRAM30に色替テクスチャ1枚分のサイズの作業領域を確保する必要があるが、十分な作業領域を確保できない場合もある。そこで、変形例1の手法では、元テクスチャTXをM個のテクスチャTX1〜TXMに分割するとともに、色替領域定義テクスチャTYを、テクスチャTX1〜TXMとそれぞれ同じサイズのM個の色替領域定義テクスチャTY1〜TYMに分割し、分割したテクスチャTX1〜TXMに対して順に色の変更処理を行う。
(1)変形例1
前述した本実施形態の手法ではVRAM30に色替テクスチャ1枚分のサイズの作業領域を確保する必要があるが、十分な作業領域を確保できない場合もある。そこで、変形例1の手法では、元テクスチャTXをM個のテクスチャTX1〜TXMに分割するとともに、色替領域定義テクスチャTYを、テクスチャTX1〜TXMとそれぞれ同じサイズのM個の色替領域定義テクスチャTY1〜TYMに分割し、分割したテクスチャTX1〜TXMに対して順に色の変更処理を行う。
図10及び図11は、変形例1における、パーツオブジェクトPOに対応づけられる色替テクスチャTX’の生成手法について説明するための図である。図10及び図11では、元テクスチャTXは4個のテクスチャTX1〜TX4に分割され、テクスチャTX1〜TX4のそれぞれに対応づけて色替領域定義テクスチャTYが4個の色替領域定義テクスチャTY1〜TY4に分割されている。テクスチャTY1〜TY4は、それぞれテクスチャTX1〜TX4と同じサイズであり、これにより、それぞれテクスチャTX1〜TX4における色替領域を定義するようになっている。
まず、図10に示すように、テクスチャTX1、テクスチャTY1、色指定情報CL、係数情報Kがシェーダ20に入力され、シェーダ20は、これらの情報を元に各テクセルの色を計算し、VRAM30の作業領域WにテクスチャTX1’を生成する。色替テクスチャTX1’の各テクセルの色(r’,g’,b’)は、テクスチャTX1の同じ座標にあるテクセルの色(r,g,b)に対して、当該テクセルが花の模様の領域(非色替領域)に含まれる場合はr’=r,g’=g,b’=bであり、当該テクセルが花の模様以外の領域(色替領域)に含まれる場合は、例えばr’=(1−α)・r+α・R,g’=(1−β)・g+β・G,b’=(1−γ)・b+γ・Bで計算される。
図10の破線で示すように、シェーダ20により生成されたテクスチャTX1’は、必要に応じてフォーマット変換されてコピー領域CXにおけるテクスチャTX1の記憶領域にコピー(上書き)される。
次に、図11に示すように、テクスチャTX2、テクスチャTY2、色指定情報CL、係数情報Kがシェーダ20に入力され、シェーダ20は、これらの情報を元に各テクセルの色を計算し、VRAM30の作業領域WにテクスチャTX2’を生成する。
図11の破線で示すように、シェーダ20により生成されたテクスチャTX2’は、必要に応じてフォーマット変換されてコピー領域CXにおけるテクスチャTX2の記憶領域にコピー(上書き)される。
テクスチャTX3’とTX4’も同様の処理により順に作業領域Wに生成され、それぞれ、コピー領域CXにおけるテクスチャTX3の記憶領域及びテクスチャTX4の記憶領域にコピー(上書き)される。
この一連の処理が終了すると、VRAM30のコピー領域CXには1枚分の色替テクスチャTX’が完成している。そして、シェーダ20により、キャラクタのポリゴンデータをラスタライズした後、VRAM30のコピー領域CXにある色替テクスチャTX’をパーツオブジェクトPOにマッピングしてキャラクタを描画する。
なお、キャラクターにN個のパーツオブジェクトが関連付けられている場合には、N個のパーツオブジェクトPO(1)〜PO(N)について上記と同様の処理を行い、N個の色替テクスチャTX’(1)〜TX’(N)を生成する。そして、N個のパーツオブジェクトPO(1)〜PO(N)に対して、それぞれ色替テクスチャTX’(1)〜TX’(N)をマッピングしてキャラクタを描画する。
次に、変形例1における、色替テクスチャTX’(1)〜TX’(N)の生成処理(図5のステップS20の処理)について、図12のフローチャートを用いて説明する。図12において、図6のフローチャートと同じステップには同じ符号を付しており、その説明を省略又は簡略する。
まず、図13に示すように、作業領域W、元テクスチャTX(1)〜TX(N)のコピー領域CX(1)〜CX(N)、色替領域定義テクスチャTY(1)〜TY(N)のコピー領域CY(1)〜CY(N)をVRAM30に確保する(ステップS100)。
次に、元テクスチャTX(1)〜TX(N)をコピー領域CX(1)〜CX(N)にそれぞれコピーし(ステップS110)、色替領域定義テクスチャTY(1)〜TY(N)をコピー領域CY(1)〜CY(N)にそれぞれコピーする(ステップS120)。
次に、nを1に設定し(ステップS130)、元テクスチャTX(n)をMn個のテクスチャTX(n)1〜TX(n)Mnに分割する(ステップS132)。このテクスチャTX(n)1〜TX(n)Mnは、図13に示すコピー領域CX(n)をMn個に分割した記憶領域CX(n)1〜CX(n)Mnにあるテクスチャに対応する。
次に、色替領域定義テクスチャTY(n)をMn個のテクスチャTY(n)1〜TY(n)Mnに分割する(ステップS134)。このテクスチャTY(n)1〜TY(n)Mnは、図13に示すコピー領域CY(n)をMn個に分割した記憶領域CY(n)1〜CY(n)Mnにあるテクスチャに対応する。
次に、mを1に設定し(ステップS136)、テクスチャTX(n)m,テクスチャTY(n)m,色指定情報CL(n),係数情報K(n)を用いて作業領域WにテクスチャTX’(n)mを生成する(ステップS142)。このステップS142の処理は図8のフローチャートで示した処理と同様であるため、その説明を省略する。
次に、テクスチャTX(n)mとテクスチャTX’(n)mのフォーマットをチェックし、両者のフォーマットが異なる場合は(ステップS152のY)、ステップS142で生成したテクスチャTX’(n)mのフォーマットをテクスチャTX(n)mのフォーマットに変換し(ステップS162)、フォーマット変換後のテクスチャTX’(n)mをコピー領域CX(n)mにコピーする(ステップS172)。
一方、両者のフォーマットが一致する場合は(ステップS152のN)、ステップS142で生成したテクスチャTX’(n)mをそのままコピー領域CX(n)mにコピーする(ステップS172)。
そして、m=Mnになるまで(ステップS174でYになるまで)、mを1だけ増やして(ステップS176)ステップS142〜S172の処理を繰り返し行う。m=Mnになると(ステップS174のY)、コピー領域CX(n)に色替テクスチャTX’(n)が完成し、色替領域定義テクスチャTY(n)は不要になるのでコピー領域CY(n)を解放する(ステップS180)。
そして、n=Nになるまで(ステップS190でYになるまで)、nを1だけ増やして(ステップS200)ステップS132〜S180の処理を繰り返し行う。n=Nになると(ステップS190のY)、色替テクスチャTX’(1)〜TX’(N)の生成処理が終了したので、作業領域Wを解放し(ステップS210)、処理を終了する。
なお、変形例1におけるその他の処理については上述した本実施形態の処理と同様であるため、その図示及び説明を省略する。
このように、変形例1によれば、VRAM30に色替テクスチャTX’の1枚分のサイズの作業領域Wを確保できない場合でも、元テクスチャTXのコピー領域CXに1枚分の色替テクスチャTX’を生成することができる。
(2)変形例2
前述した本実施形態の手法では、色替領域定義テクスチャTYにおいてRチャネルを用いて元テクスチャTXの色替領域と非色替領域とを区別していた。これに対して、変形例2では、色替領域定義テクスチャTYにおいて、Rチャネルを用いて元テクスチャTXの第1の色替領域と第1の色替領域以外の領域(以下、第1の非色替領域という)とを区別するとともに、Gチャネルを用いて元テクスチャのTXの第2の色替領域と第2の色替領域以外の領域(以下、第2の非色替領域という)とを区別する。そして、元テクスチャのTXの第1の色替領域の色を第1の色指定情報CL1に基づいて変更し、元テクスチャのTXの第2の色替領域の色を第2の色指定情報CL2に基づいて変更する。
前述した本実施形態の手法では、色替領域定義テクスチャTYにおいてRチャネルを用いて元テクスチャTXの色替領域と非色替領域とを区別していた。これに対して、変形例2では、色替領域定義テクスチャTYにおいて、Rチャネルを用いて元テクスチャTXの第1の色替領域と第1の色替領域以外の領域(以下、第1の非色替領域という)とを区別するとともに、Gチャネルを用いて元テクスチャのTXの第2の色替領域と第2の色替領域以外の領域(以下、第2の非色替領域という)とを区別する。そして、元テクスチャのTXの第1の色替領域の色を第1の色指定情報CL1に基づいて変更し、元テクスチャのTXの第2の色替領域の色を第2の色指定情報CL2に基づいて変更する。
図14に、変形例2における、プレーヤキャラクタに関連付けられるテーブルデータの一例を示す。図14に示すように、変形例2のテーブルデータ12では、キャラクタAに関連付けられる各パーツオブジェクトPOA(n)(n=1〜NA)に、元テクスチャTXA(n)、色替領域定義テクスチャTYA(n)、第1の色指定情報CL1A(n)、第1の係数情報K1A(n)、第2の色指定情報CL2A(n)、第2の係数情報K2A(n)が対応づけられている。
元テクスチャTXA(n)については、上述した本実施形態と同様であるため、その説明を省略する。
色替領域定義テクスチャTYA(n)は、テクセル毎に色(R,G,B)が定義され、第1の色替領域を示すテクセルのR値には0以外の値(例えば255)が設定され、第1の非色替領域を示すテクセルのR値には0が設定されている。また、第2の色替領域を示すテクセルのG値には0以外の値(例えば255)が設定され、第2の非色替領域を示すテクセルのG値には0が設定されている。
第1の色指定情報CL1A(n)は、元テクスチャTXA(n)の第1の色替領域に含まれる各テクセルの色情報と合成される色情報を指定する情報であり、第1の係数情報K1A(n)はその合成比を決定する係数の情報である。
第2の色指定情報CL2A(n)は、元テクスチャTXA(n)の第2の色替領域に含まれる各テクセルの色情報と合成される色情報を指定する情報であり、第2の係数情報K2A(n)はその合成比を決定する係数の情報である。
他のキャラクタについても同様のテーブルデータが定義されており、例えばキャラクタBに関連付けられる各パーツオブジェクトPOB(n)(n=1〜NB)には、元テクスチャTXB(n)、色替領域定義テクスチャTYB(n)、第1の色指定情報CL1B(n)、第1の係数情報K1B(n)、第2の色指定情報CL2B(n)、第2の係数情報K2B(n)が対応づけられている。
図15は、変形例2における、パーツオブジェクトPOに対応づけられる色替テクスチャTX’の生成手法について説明するための図である。
図15に示すように、元テクスチャTX、色替領域定義テクスチャTY、第1の色指定情報CL1=(R1,G1,B1)、第2の色指定情報CL2=(R1,G1,B1)、第1の係数情報K1=(α1,β1,γ1)、第2の係数情報K2=(α2,β2,γ2)がシェーダ20に入力され、シェーダ20は、これらの情報を元に各テクセルの色を計算し、VRAM30の作業領域Wに色替テクスチャTX1’を生成する。
図15では、色替領域定義テクスチャTYにおいて、元テクスチャTXの花の模様以外の領域が第1の色替領域かつ第2の非色替領域、花の模様の領域が第2の色替領域かつ第1の非色替領域として定義されている。具体的には、色替領域定義テクスチャTYでは、例えば、元テクスチャTXの花の模様の領域は緑色((r,g,b)=(0,255,0))、花の模様以外の領域は赤色((r,g,b)=(255,0,0))に設定されている。従って、色替領域定義テクスチャTYの各テクセルのR値をチェックすることで、当該各テクセルと同じ座標にある元テクスチャTXのテクセルが第1の色替領域と第1の非色替領域のいずれに含まれるかが判定できるとともに、色替領域定義テクスチャTYの各テクセルのG値をチェックすることで、当該各テクセルと同じ座標にある元テクスチャTXのテクセルが第2の色替領域と第2の非色替領域のいずれに含まれるかが判定できるようになっている。
そして、色替テクスチャTX’では、花の模様以外の領域(元テクスチャTXの第1の色替領域かつ第2の非色替領域)については元テクスチャTXの色と第1の色指定情報CL1により指定される色を合成した色になり、花の模様の領域(第2の色替領域かつ第1の非色替領域)については元テクスチャTXの色と第2の色指定情報CL2により指定される色を合成した色になっている。より詳細には、色替テクスチャTX’の各テクセルの色(r’,g’,b’)は、元テクスチャTXの同じ座標にあるテクセルの色(r,g,b)に対して、当該テクセルが花の模様以外の領域(第1の色替領域かつ第2の非色替領域)に含まれる場合は、例えばr’=(1−α1)・r+α1・R1,g’=(1−β1)・g+β1・G1,b’=(1−γ1)・b+γ1・B1で計算され、当該テクセルが花の模様の領域(第2の色替領域かつ第1の非色替領域)に含まれる場合は、例えばr’=(1−α2)・r+α2・R2,g’=(1−β2)・g+β2・G2,b’=(1−γ2)・b+γ2・B2で計算される。
図15の破線で示すように、シェーダ20により生成された色替テクスチャTX’は、必要に応じてフォーマット変換されてコピー領域CXにコピー(上書き)される。
なお、キャラクターにN個のパーツオブジェクトが関連付けられている場合には、N個のパーツオブジェクトPO(1)〜PO(N)について上記と同様の処理を行い、N個の色替テクスチャTX’(1)〜TX’(N)を生成する。この色替テクスチャTX’(1)〜TX’(N)の生成処理の全体フローチャートは、図6のフローチャートと同様であるので、その図示及び説明を省略する。
次に、変形例2における、各色替テクスチャTX’(n)の生成処理(図6のステップS140の処理)の詳細について、図16のフローチャートを用いて説明する。図16において、図8のフローチャートと同じステップには同じ符号を付しており、その説明を省略又は簡略する。
まず、jを1に設定し(ステップS300)、元テクスチャTX(n)のテクセルtTX(j)に対応する(座標が同じ)色替領域定義テクスチャTY(n)のテクセルtTY(j)のR値とG値を判定する(ステップS312)。変形例2では、テクセルtTY(j)のR値が0でなければtTX(j)は第1の色替領域に含まれ、テクセルtTY(j)のR値が0であればtTX(j)は第1の非色替領域に含まれる。また、テクセルtTY(j)のG値が0でなければtTX(j)は第2の色替領域に含まれ、テクセルtTY(j)のG値が0であればtTX(j)は第2の非色替領域に含まれる。
色替領域定義テクスチャTY(n)のテクセルtTY(j)のR値≠0かつG値≠0であれば(ステップS322のY)、元テクスチャTX(n)のテクセルtTX(j)は第1の色替領域かつ第2の色替領域に含まれるので、第1の係数情報K1(n)と第2の係数情報K2(n)を用いて、テクセルtTX(j)の色と第1の色指定情報CL1(n)により指定される色と第2の色指定情報CL2(n)により指定される色を合成した色を計算し(ステップS342)、計算した色を色替テクスチャTX’(n)の対応する(座標が同じ)テクセルtTX’(j)の色としてVRAM30の作業領域Wに書き込む(ステップS350)。例えば、テクセルtTX’(j)の色(r’,g’,b’)は、テクセルtTX(j)の色(r,g,b)、第1の色指定情報CL1(n)=(R1,G1,B1)、第2の色指定情報CL2(n)=(R2,G2,B2)、第1の係数情報K1(n)=(α1,β1,γ1)、第2の係数情報K2(n)=(α2,β2,γ2)を用いて、r’=(1−α1/2−α2/2)・r+α1/2・R1+α2/2・R2,g’=(1−β1/2−β2/2)・g+β1/2・G1+β2/2・G2,b’=(1−γ1/2−γ2/2)・b+γ1/2・B1+γ2/2・B2で計算される。
また、色替領域定義テクスチャTY(n)のテクセルtTY(j)のR値≠0かつG値=0であれば(ステップS324のY)、元テクスチャTX(n)のテクセルtTX(j)は第1の色替領域かつ第2の非色替領域に含まれるので、第1の係数情報K1(n)を用いて、テクセルtTX(j)の色と第1の色指定情報CL1(n)により指定される色を合成した色を計算し(ステップS344)、計算した色を色替テクスチャTX’(n)の対応する(座標が同じ)テクセルtTX’(j)の色としてVRAM30の作業領域Wに書き込む(ステップS350)。例えば、テクセルtTX’(j)の色は、r’=(1−α1)・r+α1・R1,g’=(1−β1)・g+β1・G1,b’=(1−γ1)・b+γ1・B1で計算される。
また、色替領域定義テクスチャTY(n)のテクセルtTY(j)のR値=0かつG値≠0であれば(ステップS326のY)、元テクスチャTX(n)のテクセルtTX(j)は第1の非色替領域かつ第2の色替領域に含まれるので、第2の係数情報K2(n)を用いて、テクセルtTX(j)の色と第2の色指定情報CL2(n)により指定される色を合成した色を計算し(ステップS346)、計算した色を色替テクスチャTX’(n)の対応する(座標が同じ)テクセルtTX’(j)の色としてVRAM30の作業領域Wに書き込む(ステップS350)。例えば、テクセルtTX’(j)の色は、r’=(1−α2)・r+α2・R2,g’=(1−β2)・g+β2・G2,b’=(1−γ2)・b+γ2・B2で計算される。
また、色替領域定義テクスチャTY(n)のテクセルtTY(j)のR値=0かつG値=0であれば(ステップS326のN)、元テクスチャTX(n)のテクセルtTX(j)は第1の非色替領域かつ第2の非色替領域に含まれるので、テクセルtTX(j)の色を色替テクスチャTX’(n)の対応する(座標が同じ)テクセルtTX’(j)の色としてVRAM30の作業領域Wに書き込む(ステップS330)。すなわち、テクセルtTX’(j)の色はテクセルtTX(j)の色と等しい(r’=r,g’=g,b’=b)。
そして、すべてのテクセルの処理が終了するまで(ステップS360でYになるまで)、jを1だけ増やして(ステップS370)ステップS312〜S350の処理を繰り返し行う。すべてのテクセルの処理が終了すると(ステップS360のY)、作業領域Wに色替テクスチャTX’(n)が完成する。
なお、変形例2におけるその他の処理については上述した本実施形態の処理と同様であるため、その図示及び説明を省略する。
このように、変形例2によれば、1枚の色替領域定義テクスチャTYにおいて、RチャネルとGチャネルを用いて2つの色替領域を独立して定義し、第1の色替領域の色を第1の色指定情報CL1で指定される色に基づいて変更するとともに第2の色替領域の色を第2の色指定情報CL2で指定される色に基づいて変更することで、より複雑な色替えを実現することができる。
(3)変形例3
変形例3では、色替領域定義テクスチャTYにおける色替領域の設定に関係なく、元テクスチャTXにおける色をそのまま反映する領域(不変領域)を定義するためのテクスチャ(以下、不変領域定義テクスチャという)を追加する。
変形例3では、色替領域定義テクスチャTYにおける色替領域の設定に関係なく、元テクスチャTXにおける色をそのまま反映する領域(不変領域)を定義するためのテクスチャ(以下、不変領域定義テクスチャという)を追加する。
図17に、変形例3における、プレーヤキャラクタに関連付けられるテーブルデータの一例を示す。図17に示すように、変形例3におけるテーブルデータ14では、キャラクタAに関連付けられる各パーツオブジェクトPOA(n)(n=1〜NA)に、元テクスチャTXA(n)、色替領域定義テクスチャTYA(n)、不変領域定義テクスチャTZA(n)、色指定情報CLA(n)、係数情報KA(n)が対応づけられている。
元テクスチャTXA(n)、色替領域定義テクスチャTYA(n)、色指定情報CLA(n)、係数情報KA(n)については、上述した本実施形態と同様であるため、その説明を省略する。
不変領域定義テクスチャTZA(n)は、元テクスチャTXA(n)と同じサイズのテクスチャであり、元テクスチャTXA(n)における不変領域を定義する。不変領域定義テクスチャTZA(n)は、テクセル毎に色情報(RGB値)(α値を含んでもよい)が定義され、不変領域を示すテクセルのR値には0以外の値(例えば255)が設定され、不変領域以外の領域を示すテクセルのR値には0が設定されている。すなわち、不変領域定義テクスチャTZA(n)のテクセルのR値が0以外の値であれば、そのテクセルの座標と同じ座標にある元テクスチャTXA(n)のテクセルは不変領域に含まれ、不変領域定義テクスチャTZA(n)のテクセルのR値が0であれば、そのテクセルの座標と同じ座標にある元テクスチャTXA(n)のテクセルは不変領域に含まれない。
他のキャラクタについても同様のテーブルデータが定義されており、例えばキャラクタBに関連付けられる各パーツオブジェクトPOB(n)(n=1〜NB)には、元テクスチャTXB(n)、色替領域定義テクスチャTYB(n)、不変領域定義テクスチャTZB(n)、色指定情報CLB(n)、係数情報KB(n)が対応づけられている。
図18は、変形例3における、パーツオブジェクトPOに対応づけられる色替テクスチャTX’の生成手法について説明するための図である。
図18に示すように、元テクスチャTX、色替領域定義テクスチャTY、色指定情報CL、不変領域定義テクスチャTZ、係数情報Kがシェーダ20に入力され、シェーダ20は、これらの情報を元に各テクセルの色を計算し、VRAM30の作業領域Wに色替テクスチャTX’を生成する。
図18では、色替領域定義テクスチャTYにおいて、元テクスチャTXの花の模様以外の領域が色替領域、花の模様の領域が非色替領域として定義されている。
また、不変領域定義テクスチャTZにおいて、元テクスチャTXの鳥の模様の領域が不変領域として定義されている。具体的には、不変領域定義テクスチャTZでは、例えば、元テクスチャTXの鳥の模様の領域は白色((r,g,b)=(255,255,255))に、鳥の模様以外の領域は黒色((r,g,b)=(0,0,0))に設定されている。従って、不変領域定義テクスチャTZの各テクセルのR値、G値、B値のいずれかをチェックすることで、当該各テクセルと同じ座標にある元テクスチャTXのテクセルが不変領域に含まれるか否かが判定できるようになっている。
そして、色替テクスチャTX’では、鳥の模様の領域(元テクスチャTXの不変領域)については元テクスチャTXと同じ色であり、鳥の模様以外の領域については、花の模様領域(非色替領域)か否かによって、元テクスチャTXと同じ色、又は元テクスチャTXの色と色指定情報CLで指定される色を合成した色になっている。より詳細には、色替テクスチャTX’の各テクセルの色(r’,g’,b’)は、元テクスチャTXの同じ座標にあるテクセルの色(r,g,b)に対して、当該テクセルが鳥の模様の領域(不変領域)に含まれる場合はr’=r,g’=g,b’=bであり、当該テクセルが鳥の模様の領域(不変領域)に含まれない場合は、花の模様の領域(非色替領域)に含まれるならr’=r,g’=g,b’=bであり、花の模様以外の領域(色替領域)に含まれるなら例えばr’=(1−α)・r+α・R,g’=(1−β)・g+β・G,b’=(1−γ)・b+γ・Bで計算される。
図18の破線で示すように、シェーダ20により生成された色替テクスチャTX’は、必要に応じてフォーマット変換されてコピー領域CXにコピー(上書き)される。
なお、キャラクターにN個のパーツオブジェクトが関連付けられている場合には、N個のパーツオブジェクトPO(1)〜PO(N)について上記と同様の処理を行い、N個の色替テクスチャTX’(1)〜TX’(N)を生成する。
次に、変形例3における、色替テクスチャTX’(1)〜TX’(N)の生成処理(図5のステップS20の処理)について、図19のフローチャートを用いて説明する。図19において、図6のフローチャートと同じステップには同じ符号を付しており、その説明を省略又は簡略する。
まず、図20に示すように、作業領域W、元テクスチャTX(1)〜TX(N)のコピー領域CX(1)〜CX(N)、色替領域定義テクスチャTY(1)〜TY(N)のコピー領域CY(1)〜CY(N)、不変領域定義テクスチャTZ(1)〜TZ(N)のコピー領域CZ(1)〜CZ(N)をVRAM30に確保する(ステップS102)。
次に、元テクスチャTX(1)〜TX(N)をコピー領域CX(1)〜CX(N)にそれぞれコピーし(ステップS110)、色替領域定義テクスチャTY(1)〜TY(N)をコピー領域CY(1)〜CY(N)にそれぞれコピーする(ステップS120)。
さらに、不変領域定義テクスチャTZ(1)〜TZ(N)をコピー領域CZ(1)〜CZ(N)にそれぞれコピーする(ステップS122)。
次に、nを1に設定し(ステップS130)、元テクスチャTX(n),色替領域定義テクスチャTY(n),不変領域定義テクスチャTZ(n),色指定情報CL(n),係数情報K(n)を用いて作業領域Wに色替テクスチャTX’(n)を生成する(ステップS144)。このステップS144の処理の詳細については後述する。
次に、元テクスチャTX(n)と色替テクスチャTX’(n)のフォーマットをチェックし、両者のフォーマットが異なる場合は(ステップS150のY)、ステップS144で生成した色替テクスチャTX’(n)のフォーマットを元テクスチャTX(n)のフォーマットに変換し(ステップS160)、フォーマット変換後の色替テクスチャTX’(n)をコピー領域CX(n)にコピーする(ステップS170)。
一方、両者のフォーマットが一致する場合は(ステップS150のN)、ステップS144で生成した色替テクスチャTX’(n)をそのままコピー領域CX(n)にコピーする(ステップS170)。
ステップS144〜S170の処理が終了すると、色替領域定義テクスチャTY(n)と不変領域定義テクスチャTZ(n)は不要になるので、コピー領域CY(n)とコピー領域CZ(n)を解放する(ステップS182)。
そして、n=Nになるまで(ステップS190でYになるまで)、nを1だけ増やして(ステップS200)ステップS144〜S182の処理を繰り返し行う。n=Nになると(ステップS190のY)、色替テクスチャTX’(1)〜TX’(N)の生成処理が終了したので、作業領域Wを解放し(ステップS210)、処理を終了する。
次に、変形例3における、各色替テクスチャTX’(n)の生成処理(図19のステップS144の処理)の詳細について、図21のフローチャートを用いて説明する。図21において、図8のフローチャートと同じステップには同じ符号を付しており、その説明を省略又は簡略する。
まず、jを1に設定し(ステップS300)、元テクスチャTX(n)のテクセルtTX(j)に対応する(座標が同じ)不変領域定義テクスチャTZ(n)のテクセルtTZ(j)のR値を判定する(ステップS302)。変形例3では、テクセルtTZ(j)のR値が0でなければtTX(j)は不変領域に含まれ、テクセルtTZ(j)のR値が0であればtTX(j)は不変領域に含まれない。
不変領域定義テクスチャTZ(n)のテクセルtTZ(j)のR値が0でなければ(ステップS304のN)、元テクスチャTX(n)のテクセルtTX(j)は不変領域に含まれるので、テクセルtTX(j)の色を色替テクスチャTX’(n)の対応する(座標が同じ)テクセルtTX’(j)の色としてVRAM30の作業領域Wに書き込む(ステップS330)。すなわち、テクセルtTX’(j)の色(r’,g’,b’)は、テクセルtTX(j)の色(r,g,b)と等しい(r’=r,g’=g,b’=b)。
一方、不変領域定義テクスチャTZ(n)のテクセルtTZ(j)のR値が0であれば(ステップS304のY)、元テクスチャTX(n)のテクセルtTX(j)は不変領域に含まれないので、色替領域定義テクスチャTY(n)の対応する(座標が同じ)テクセルtTY(j)のR値を判定する(ステップS310)。
色替領域定義テクスチャTY(n)のテクセルtTY(j)のR値が0であれば(ステップS320のY)、元テクスチャTX(n)のテクセルtTX(j)は非色替領域に含まれるので、テクセルtTX(j)の色を色替テクスチャTX’(n)の対応する(座標が同じ)テクセルtTX’(j)の色としてVRAM30の作業領域Wに書き込む(ステップS330)。すなわち、テクセルtTX’(j)の色は、テクセルtTX(j)の色と等しい(r’=r,g’=g,b’=b)。
一方、色替領域定義テクスチャTY(n)のテクセルtTY(j)のR値が0でなければ(ステップS320のN)、元テクスチャTX(n)のテクセルtTX(j)は色替領域に含まれるので、係数情報K(n)を用いて、テクセルtTX(j)の色と色指定情報CL(n)により指定される色を合成した色を計算し(ステップS340)、計算した色を色替テクスチャTX’(n)の対応する(座標が同じ)テクセルtTX’(j)の色としてVRAM30の作業領域Wに書き込む(ステップS350)。例えば、テクセルtTX’(j)の色は、色指定情報CL(n)=(R,G,B)、係数情報K(n)=(α,β,γ)を用いて、r’=(1−α)・r+α・R,g’=(1−β)・g+β・G,b’=(1−γ)・b+γ・Bで計算される。
そして、すべてのテクセルの処理が終了するまで(ステップS360でYになるまで)、jを1だけ増やして(ステップS370)ステップS302〜S350の処理を繰り返し行う。すべてのテクセルの処理が終了すると(ステップS360のY)、作業領域Wに色替テクスチャTX’(n)が完成する。
なお、変形例3におけるその他の処理については上述した本実施形態の処理と同様であるため、その図示及び説明を省略する。
このように、変形例3によれば、元テクスチャTXにおいて不変領域に含まれるテクセルについては、色替領域に含まれるか否かに関係なく、そのままの色にしてオブジェクトを描画することができる。例えば、元テクスチャTXの一部に色替えをしたくない模様があるような場合には、不変領域定義テクスチャTZを用いることで、容易にその模様の色をそのまま反映してオブジェクトを描画することができる。
(4)変形例4
前述した本実施形態の手法では、元テクスチャTXの色替領域の色と色指定情報CLで指定される色とを係数情報Kで決定される一定の比で合成している。例えば、係数情報K=(α,β,γ)とすると、元テクスチャTXの色替領域の色と色指定情報CLで指定される色との合成比は、R,G,Bの各チャネルについて1−α:α,1−β:β,1−γ:γであった。
前述した本実施形態の手法では、元テクスチャTXの色替領域の色と色指定情報CLで指定される色とを係数情報Kで決定される一定の比で合成している。例えば、係数情報K=(α,β,γ)とすると、元テクスチャTXの色替領域の色と色指定情報CLで指定される色との合成比は、R,G,Bの各チャネルについて1−α:α,1−β:β,1−γ:γであった。
これに対して変形例4の手法では、元テクスチャTXの色替領域の色と色指定情報CLで指定される色との合成比を、色替領域定義テクスチャTYの対応する(座標が同じ)テクセルの色に応じて変更する。
具体的には、色替領域定義テクスチャTYの各テクセルの色(R’,G’,B’)に対して、R’≠0(R=1〜L:Lは例えば255)であれば、元テクスチャTXの対応する(座標が同じ)テクセルの色と色指定情報CLで指定される色との合成比を、R,G,Bの各チャネルについて、例えば1−α・R’/L:α・R’/L,1−β・R’/L:β・R’/L,1−γ・R’/L:γ・R’/Lに設定する。すなわち、色替テクスチャTX’のテクセルの色(r’,g’,b’)は、元テクスチャTXの対応する(座標が同じ)テクセルの色(r,g,b)と色替領域定義テクスチャTYの対応する(座標が同じ)テクセルの色(R’,G’,B’)に対して、色指定情報CL=(R,G,B)、係数情報K=(α,β,γ)を用いて、例えばr’=(1−α・R’/L)・r+α・R’/L・R,g’=(1−β・R’/L)・g+β・R’/L・G,b’=(1−γ・R’/L)・b+γ・R’/L・Bで計算される。
この場合、R’=0であればr’=r,g’=g,b’=bとなり、R’=Lであればr’=(1−α)・r+α・R,g’=(1−β)・g+β・G,b’=(1−γ)・b+γ・Bとなる。つまり、前述した本実施形態の手法は、変形例4の手法において色替領域定義テクスチャTYのすべてのテクセルについてR’=0又はL(例えば255)が設定されているケースに対応する。
なお、変形例4におけるその他の処理については上述した本実施形態の処理と同様であるため、その図示及び説明を省略する。
この変形例4によれば、例えば、元テクスチャTXの所定の模様のエッジ付近を色が徐々に変化する色替領域として定義することで、描画されるオブジェクトにおいてその模様のエッジ付近の色の変化にグラデーションをかけることができ、これによりオブジェクトのよりリアルな表現を実現することができる。
(5)変形例5
前述した本実施形態の手法では、パーツオブジェクトPOに対して色替テクスチャTX’を生成した後、この色替テクスチャTX’をパーツオブジェクトPOにマッピングしてキャラクタを描画している。これに対して変形例5の手法では、図22に示すように、キャラクタのポリゴンデータ、元テクスチャTX、色替領域定義テクスチャTY、色指定情報CL、係数情報Kがシェーダ20に入力され、シェーダ20は色替テクスチャTX’を生成せずに直接的にキャラクタを描画する。
前述した本実施形態の手法では、パーツオブジェクトPOに対して色替テクスチャTX’を生成した後、この色替テクスチャTX’をパーツオブジェクトPOにマッピングしてキャラクタを描画している。これに対して変形例5の手法では、図22に示すように、キャラクタのポリゴンデータ、元テクスチャTX、色替領域定義テクスチャTY、色指定情報CL、係数情報Kがシェーダ20に入力され、シェーダ20は色替テクスチャTX’を生成せずに直接的にキャラクタを描画する。
次に、変形例5のキャラクタの描画処理について図23のフローチャートを用いて説明する。図23のフローチャートは、プレーヤキャラクタに関連付けられたN個のパーツオブジェクトの色をプレーヤの好みに応じて変更して描画するフローチャートである。
まず、プレーヤが、プレーヤキャラクタのパーツオブジェクトPO(1)〜PO(N)にそれぞれ対応づけて色指定情報CL(1)〜CL(N)を指定する(ステップS400)。
次に、図24に示すように、元テクスチャTX(1)〜TX(N)のコピー領域CX(1)〜CX(N)、色替領域定義テクスチャTY(1)〜TY(N)のコピー領域CY(1)〜CY(N)をVRAM30に確保する(ステップS410)。
次に、元テクスチャTX(1)〜TX(N)をコピー領域CX(1)〜CX(N)にそれぞれコピーする(ステップS420)。
次に、色替領域定義テクスチャTY(1)〜TY(N)をコピー領域CY(1)〜CY(N)にそれぞれコピーする(ステップS430)。
次に、nを1に設定し(ステップS440)、シェーダ20により、元テクスチャTX(n),色替領域定義テクスチャTY(n),色指定情報CL(n),係数情報K(n)を用いてパーツオブジェクトPO(n)の各ピクセルの色を計算し、パーツオブジェクトPO(n)を描画する(ステップS450)。このステップS450の処理の詳細については後述する。
そして、n=Nになるまで(ステップS460でYになるまで)、nを1だけ増やして(ステップS470)ステップS450の処理を繰り返し行う。n=Nになると(ステップS460のY)、当該フレームにおけるパーツオブジェクトPO(1)〜PO(N)の描画が終了する。
そして、プレーヤキャラクタの描画がすべて終了するまで(ステップS480でYになるまで)フレームを更新し(ステップS490)、プレーヤキャラクタの描画処理(ステップS450〜S470)を継続する。
プレーヤキャラクタの描画がすべて終了すると(ステップS480のY)、元テクスチャTX(1)〜TX(N)と色替領域定義テクスチャTY(1)〜TY(N)は不要になるので、コピー領域CX(1)〜CX(N)とコピー領域CY(1)〜CY(N)を解放し(ステップS500)、処理を終了する。
次に、各パーツオブジェクトPO(n)の描画処理(図23のステップS450の処理)の詳細について、図25のフローチャートを用いて説明する。
まず、iを1に設定し(ステップS600)、パーツオブジェクトPO(n)のピクセルp(i)に対応づけられる元テクスチャTX(n)のテクセルtTX(i)を求める(ステップS610)。
次に、元テクスチャTX(n)のテクセルtTX(i)に対応する(座標が同じ)色替領域定義テクスチャTY(n)のテクセルtTY(i)のR値を判定する(ステップS620)。色替領域を示すテクセルtTY(i)は白色((r,g,b)=(255,255,255))に、非色替領域を示すテクセルtTY(i)は黒色((r,g,b)=(0,0,0))に設定されているので、テクセルtTY(i)のR値が0でなければtTX(i)は色替領域に含まれ、テクセルtTY(i)のR値が0であればtTX(i)は非色替領域に含まれる。
色替領域定義テクスチャTY(n)のテクセルtTY(i)のR値が0であれば(ステップS630のY)、元テクスチャTX(n)のテクセルtTX(i)は非色替領域に含まれるので、テクセルtTX(i)の色をパーツオブジェクトPO(n)のピクセルp(i)の色としてフレームバッファに書き込む(ステップS640)。すなわち、ピクセルp(i)の色(r’,g’,b’)は、テクセルtTX(i)の色(r,g,b)と等しい(r’=r,g’=g,b’=b)。
一方、色替領域定義テクスチャTY(n)のテクセルtTY(i)のR値が0でなければ(ステップS630のN)、元テクスチャTX(n)のテクセルtTX(i)は色替領域に含まれるので、係数情報K(n)を用いて、テクセルtTX(i)の色と色指定情報CL(n)により指定される色を合成した色を計算し(ステップS650)、計算した色をパーツオブジェクトPO(n)のピクセルp(i)の色としてフレームバッファに書き込む(ステップS660)。例えば、ピクセルp(i)の色(r’,g’,b’)は、テクセルtTX(i)の色(r,g,b)、色指定情報CL(n)=(R,G,B)、係数情報K(n)=(α,β,γ)を用いて、r’=(1−α)・r+α・R,g’=(1−β)・g+β・G,b’=(1−γ)・b+γ・Bで計算される。
そして、すべてのピクセルの処理が終了するまで(ステップS670でYになるまで)、iを1だけ増やして(ステップS680)ステップS610〜S660の処理を繰り返し行う。すべてのピクセルの処理が終了すると(ステップS670のY)、パーツオブジェクトPO(n)の描画処理が終了する。
このように、変形例5によれば、プレーヤキャラクタの描画処理において、シェーダにより毎フレーム色替えの計算をするため処理負荷が増えるが、色替テクスチャTX’を生成するための作業領域をVRAM30に確保する必要がない。
(6)その他の変形例
上述した本実施形態において、常に、元テクスチャTXのすべてのテクセルの色を色指定情報CLで指定される色と合成して色替テクスチャTX’を生成する場合は、元テクスチャTXの色替領域と非色替領域を区別する必要がないので、色替領域定義テクスチャTYを省くことができる。
上述した本実施形態において、常に、元テクスチャTXのすべてのテクセルの色を色指定情報CLで指定される色と合成して色替テクスチャTX’を生成する場合は、元テクスチャTXの色替領域と非色替領域を区別する必要がないので、色替領域定義テクスチャTYを省くことができる。
また、上述した本実施形態において、色指定情報CLだけでなく係数情報Kもプレーヤが指定できるようにしてもよい。
また、上述した本実施形態において、複数の色替領域定義テクスチャTY1、TY2、・・・を用意し、その各々を複数の色指定情報CL1、CL2、・・・の各々と対応づけて、変形例2と同様の処理で少なくとも1つの色替領域に含まれる基本テクスチャTXの各テクセルの色を変更して色替テクスチャTX’を生成するようにしてもよい。
また、上述した本実施形態において、プレーヤキャラクタのパーツオブジェクトの代わりに、又は、これに追加して、同様の手法で敵キャラクタ、建物等の背景を構成するオブジェクト等の種々のオブジェクトの色替え処理を行うようにしてもよい。
また、上述した変形例1〜5及びその他の変形例を、矛盾のない範囲で任意に組み合わせた変形例を考えることもできる。
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
TX 元テクスチャ、TX’ 色替テクスチャ、TY 色替領域定義テクスチャ、TZ 不変領域定義テクスチャ、CL 色指定情報、CL1 第1の色指定情報、CL2 第2の色指定情報、K 係数情報、K1 第1の係数情報、K2 第2の係数情報、
W 作業領域、CX,CY,CZ コピー領域、10,12,14 テーブルデータ、20 シェーダ、30 VRAM、100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、114 仮想カメラ制御部、120 描画部、122 色替テクスチャ生成部、124 色替テクスチャマッピング部、126 色指定情報生成部、130 音生成部、160 操作部、170 記憶部、172 主記憶部、174 描画バッファ、176 オブジェクトデータ記憶部、178 テクスチャ記憶部、179 Zバッファ、180 情報記憶媒体、190 表示部、192 音出力部、196 通信部
W 作業領域、CX,CY,CZ コピー領域、10,12,14 テーブルデータ、20 シェーダ、30 VRAM、100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、114 仮想カメラ制御部、120 描画部、122 色替テクスチャ生成部、124 色替テクスチャマッピング部、126 色指定情報生成部、130 音生成部、160 操作部、170 記憶部、172 主記憶部、174 描画バッファ、176 オブジェクトデータ記憶部、178 テクスチャ記憶部、179 Zバッファ、180 情報記憶媒体、190 表示部、192 音出力部、196 通信部
Claims (17)
- 所与のオブジェクトの画像を生成するためのプログラムであって、
前記オブジェクトに対応づけられる元テクスチャを記憶するテクスチャ記憶部と、
所与の色指定情報で指定される色に基づいて、前記元テクスチャの少なくとも一部のテクセルの色を変更し、変更した色を当該テクセルに対応づけられるピクセルの色として前記オブジェクトを描画する描画部としてコンピュータを機能させることを特徴とするプログラム。 - 請求項1において、
前記テクスチャ記憶部は、
前記元テクスチャの色替領域を定義する色替領域定義テクスチャを記憶し、
前記描画部は、
前記色指定情報で指定される色に基づいて、前記色替領域定義テクスチャで定義される前記色替領域に含まれる前記元テクスチャのテクセルの色を変更することを特徴とするプログラム。 - 請求項1又は2において、
前記描画部は、
前記色指定情報で指定される色に基づいて、前記元テクスチャの少なくとも一部のテクセルの色を変更した色替テクスチャを生成する色替テクスチャ生成部と、
前記色替テクスチャを前記オブジェクトにマッピングする色替テクスチャマッピング部と、を含むことを特徴とするプログラム。 - 請求項3において、
前記色替テクスチャ生成部は、
前記色替テクスチャを、前記コンピュータの描画メモリの所与の作業領域に生成することを特徴とするプログラム。 - 請求項4において、
前記色替テクスチャ生成部は、
前記描画メモリの所与のコピー領域にコピーされた前記元テクスチャを用いて前記色替テクスチャを生成し、生成した当該色替テクスチャを前記コピー領域にコピーし、
前記色替テクスチャマッピング部は、
前記コピー領域の前記色替テクスチャを前記オブジェクトにマッピングすることを特徴とするプログラム。 - 請求項4において、
前記色替テクスチャ生成部は、
前記描画メモリの所与のコピー領域にコピーされた前記元テクスチャを複数のテクスチャに分割し、分割したテクスチャ毎に、前記色替テクスチャの一部を前記作業領域に生成する処理と生成した一部の色替テクスチャを前記コピー領域にコピーする処理とを行い、
前記色替テクスチャマッピング部は、
前記コピー領域に生成された前記色替テクスチャを前記オブジェクトにマッピングすることを特徴とするプログラム。 - 請求項5又は6において、
前記色替テクスチャ生成部は、
前記作業領域に生成した前記色替テクスチャを、前記元テクスチャのフォーマットに変換して前記コピー領域にコピーすることを特徴とするプログラム。 - 請求項2乃至7のいずれかにおいて、
前記色替領域定義テクスチャは、
複数の色チャネルを用いて複数の前記色替領域を定義し、
前記描画部は、
少なくとも1つの前記色替領域に含まれるテクセルの色を、複数の前記色替領域にそれぞれ対応づけられる複数の前記色指定情報のうち当該テクセルが含まれる前記色替領域に対応づけられる前記色指定情報で指定される色に基づいて変更することを特徴とするプログラム。 - 請求項2乃至8のいずれかにおいて、
前記描画部は、
前記色替領域定義テクスチャで定義される前記色替領域以外の領域に含まれる前記元テクスチャのテクセルの色を、当該テクセルに対応づけられるピクセルの色として前記オブジェクトを描画することを特徴とするプログラム。 - 請求項1乃至9のいずれかにおいて、
前記テクスチャ記憶部は、
前記元テクスチャの不変領域を定義する不変領域定義テクスチャを記憶し、
前記描画部は、
前記不変領域定義テクスチャで定義される前記不変領域に含まれる前記元テクスチャのテクセルの色を、当該テクセルが前記色替領域に含まれるか否かに関係なく、当該テクセルに対応づけられるピクセルの色として前記オブジェクトを描画することを特徴とするプログラム。 - 請求項1乃至10のいずれかにおいて、
前記色替領域定義テクスチャは、
各テクセルが複数段階のいずれかの色を有し、
前記描画部は、
前記色替領域定義テクスチャで定義される前記色替領域に含まれる前記元テクスチャのテクセルの色と前記色指定情報で指定される色とを、当該テクセルに対応づけられる前記色替領域定義テクスチャのテクセルの色に応じた合成比で合成することを特徴とするプログラム。 - 請求項1乃至11のいずれかにおいて、
前記オブジェクトは、
プレーヤキャラクタに関連付けられるパーツオブジェクトであることを特徴とするプログラム。 - 請求項12において、
前記パーツオブジェクトは、
前記プレーヤキャラクタが装着するコスチュームのオブジェクトであることを特徴とするプログラム。 - 請求項1乃至13のいずれかにおいて、
前記描画部は、
プレーヤによる入力操作に基づく所与のタイミングで、前記色指定情報で指定される色に基づいて前記元テクスチャの少なくとも一部のテクセルの色を変更する処理を開始することを特徴とするプログラム。 - 請求項1乃至14のいずれかにおいて、
前記描画部は、
プレーヤが指定した色に基づいて前記色指定情報を生成する色指定情報生成部をさらに含むことを特徴とするプログラム。 - コンピュータにより読み取り可能な情報記憶媒体であって、請求項1乃至15のいずれかに記載のプログラムを記憶していることを特徴とする情報記憶媒体。
- 画像を生成するための画像生成システムであって、
前記オブジェクトに対応づけられる元テクスチャを記憶するテクスチャ記憶部と、
所与の色指定情報で指定される色に基づいて、前記元テクスチャの少なくとも一部のテクセルの色を変更し、変更した色を当該テクセルに対応づけられるピクセルの色として前記オブジェクトを描画する描画部と、を含むことを特徴とする画像生成システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010165933A JP2012027699A (ja) | 2010-07-23 | 2010-07-23 | プログラム、情報記憶媒体及び画像生成システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010165933A JP2012027699A (ja) | 2010-07-23 | 2010-07-23 | プログラム、情報記憶媒体及び画像生成システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012027699A true JP2012027699A (ja) | 2012-02-09 |
Family
ID=45780557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010165933A Withdrawn JP2012027699A (ja) | 2010-07-23 | 2010-07-23 | プログラム、情報記憶媒体及び画像生成システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012027699A (ja) |
-
2010
- 2010-07-23 JP JP2010165933A patent/JP2012027699A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4651435B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2010033298A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP4728721B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP4804122B2 (ja) | プログラム、テクスチャデータ構造、情報記憶媒体及び画像生成システム | |
JP4305903B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2011053737A (ja) | プログラム、情報記憶媒体及び画像生成装置 | |
JP4749064B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP4749198B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP4868586B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2008027064A (ja) | プログラム、情報記録媒体および画像生成システム | |
JP2009129167A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4743770B2 (ja) | 画像生成システム、プログラム、及び情報記憶媒体 | |
JP4754384B2 (ja) | プログラム、情報記録媒体および画像生成システム | |
JP2006252426A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2006323512A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2009205522A (ja) | プログラム、情報記憶媒体、情報変換システム | |
JP4913399B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP4528008B2 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP2011215724A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2010134798A (ja) | プログラム、情報記憶媒体、ゲーム装置、及びゲームシステム | |
JP2011209864A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2012027699A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2010231364A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2010033253A (ja) | プログラム、情報記憶媒体および画像生成システム | |
JP2009140371A (ja) | プログラム、情報記憶媒体、画像生成システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20131001 |