画像生成装置、画像生成方法、および、プログラム
【課題】光源の眩しさを適切に表現することのできる画像生成装置等を提供する。
【解決手段】マスク画像生成部240は、視点を基準とした視界内にて、配置されている光源オブジェクトを除いた視界全面を覆うマスク画像を生成する。また、透明度算定部250は、マスク画像に設定するためのアルファ値を、視点から光源オブジェクトへの方向と視線方向とのなす角度に基づいて算定する。そして、画像描画部260は、視界内に配置されている各オブジェクトを投影変換した投影画像を生成し、この投影画像にアルファ値が設定されたマスク画像を合成した視界画像を描画する。
【解決手段】マスク画像生成部240は、視点を基準とした視界内にて、配置されている光源オブジェクトを除いた視界全面を覆うマスク画像を生成する。また、透明度算定部250は、マスク画像に設定するためのアルファ値を、視点から光源オブジェクトへの方向と視線方向とのなす角度に基づいて算定する。そして、画像描画部260は、視界内に配置されている各オブジェクトを投影変換した投影画像を生成し、この投影画像にアルファ値が設定されたマスク画像を合成した視界画像を描画する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、光源の眩しさを適切に表現することのできる画像生成装置、画像生成方法、および、プログラムに関する。
【背景技術】
【0002】
従来より、種々のゲーム装置(ビデオゲーム装置等)が、家庭用や業務用として開発されてきている。このようなゲーム装置は、一般に、仮想空間内にキャラクタ等のオブジェクトを配置し、所定の視点から眺めたゲーム画像を表示している。
【0003】
近年では、ハードウェア性能の向上や画像処理技術の発達等によって、高精度なゲーム画像が高速に生成可能となり、プレイヤがあたかも仮想空間内にいるかのように、ゲームを楽しむことができる。
【0004】
一例として、仮想空間における光源(光源オブジェクト)を表示する際にもリアリティを高めた画像を生成している。具体的には、夜間に街路灯が灯っている場面において、その街路灯の周りに、グローやハロー等により光が広がる様子を表現し、その光源の現実感を高めている。
【0005】
最近では、このような光源の表現を行う際に、処理負荷を低減しつつ、光軸等を考慮して描画し、その光源のリアリティをより高めることのできる技術も開示されている(例えば、特許文献1参照)。
【0006】
【特許文献1】特開2002−251629号公報 (第5−7頁、第1図)
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述したグロー等を用いる光源の表現手法は、一般的に、夜間や暗がりの場面にて用いられた際に、光源のリアリティを高めることが可能となる。なお、昼間の屋外等の場面でもこのような表現手法が用いられているが、周りが明るいため、あまり効果的でないことが多かった。
例えば、屋外の場面で、昼間の太陽をグロー等を用いて表現しても、空等が明るいためその太陽はほとんど強調されない。つまり、視界内に太陽が含まれる画像を従来の表現手法にて生成しても、プレイヤにはその太陽が眩しく感じられず、リアリティを高めることが不十分であった。
【0008】
そのため、このような昼間の太陽のような光源についても、その光源の眩しさをより適切に表現できる新たな表現手法が求められていた。
【0009】
本発明は、上記実状に鑑みてなされたもので、光源の眩しさを適切に表現することのできる画像生成装置、画像生成方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の第1の観点に係る画像生成装置は、調整画像生成部、算定部、及び、画像描画部を備え、光源オブジェクト(例えば、太陽オブジェクト等)を含む複数のオブジェクトが配置された仮想空間を、所定の視点から眺めた視界画像を生成する画像生成装置であって以下のように構成する。
【0011】
まず、調整画像生成部は、光源オブジェクトを除いた(光源オブジェクトを含めない)視界画像の明度を調整するための所定形状の調整画像を生成する。一例として、視界全面から光源オブジェクトを切り抜いた形状であり、光源オブジェクト以外の視界画像の明度を低下させるための調整画像を生成する。また、算定部は、調整画像により調整させる明度を、視界内における光源オブジェクトの配置状況(例えば、視点から光源オブジェクトへの方向と視線方向とのなす角度)に基づいて算定する。そして、画像描画部は、視界内に配置されている各オブジェクトの投影画像を生成し、この投影画像に調整画像を合成した視界画像を描画する。
【0012】
このように、投影画像に調整画像を合成することにより、光源オブジェクトはそのままに、それ以外の明度を低下させた視界画像が生成される。なお、低下させる明度は、視界内の光源オブジェクトの配置位置等に応じて異なっている。例えば、光源オブジェクトの位置が視線方向(視界画像の中心)から離れていると、少しだけ明度を低下させた視界画像を描画し、逆に、光源オブジェクトの位置が視線方向に近いと、かなり明度を低下させた視界画像を描画する。
すなわち、光源オブジェクトはそのままに、それ以外の明度が落とされているため、光源オブジェクトの明るさが相対的に強調され、プレイヤにとって光源オブジェクトがより眩しく感じることになる。
この結果、光源の眩しさを適切に表現することができる。
【0013】
本発明の第2の観点に係る画像生成装置は、マスク画像生成部、算定部、及び、画像描画部を備え、光源オブジェクト(例えば、太陽オブジェクト等)を含む複数のオブジェクトが配置された仮想空間を、所定の視点から眺めた視界画像を生成する画像生成装置であって以下のように構成する。
【0014】
まず、マスク画像生成部は、視点を基準とした視界全面から光源オブジェクトを除いたマスク画像を生成する。つまり、光源オブジェクトは覆わずにそれ以外を覆うマスク画像を生成する。また、算定部は、マスク画像に設定するための透明度(一例として、アルファ値)を、視界内における光源オブジェクトの配置状況(例えば、視点から光源オブジェクトへの方向と視線方向とのなす角度)に基づいて算定する。そして、画像描画部は、視界内に配置されている各オブジェクトを投影変換した投影画像を生成し、この投影画像に透明度が設定されたマスク画像を合成した視界画像を描画する。
【0015】
このように、投影画像に透明度が設定されたマスク画像を合成することにより、光源オブジェクトはそのままに、それ以外をマスク画像の透明度に応じて明度の調整された視界画像が生成される。一例として、マスク画像が黒色であれば、マスク画像の透明度が低いほど(不透明であるほど)、マスク画像に覆われた視界画像の明度が低下することになる。つまり、低下させる明度は、マスク画像の透明度に応じて定まるものであり、マスク画像の透明度は、視界内の光源オブジェクトの配置位置等に応じて異なっている。例えば、光源オブジェクトの位置が視線方向(視界画像の中心)から離れていると、マスク画像の透明度が高く設定され、覆われた視界画像の明度を少しだけ低下させる。逆に、光源オブジェクトの位置が視線方向に近いと、マスク画像の透明度が低く設定され、覆われた視界画像の明度をかなり低下させる。
すなわち、光源オブジェクトはそのままに、それ以外の明度が落とされているため、光源オブジェクトの明るさが相対的に強調され、プレイヤにとって光源オブジェクトがより眩しく感じることになる。
この結果、光源の眩しさを適切に表現することができる。
【0016】
上記のマスク画像生成部は、視界全面を覆う黒色の矩形画像から、視界内における光源オブジェクトの形状を切り抜くことにより、この光源オブジェクトを除いたマスク画像を生成してもよい。
この場合、黒色のマスク画像は、透明度が大きいと(それほど不透明でないと)、薄い灰色になり、覆われた視界画像の明度を小さく低下させる。逆に、透明度が小さいと(かなり不透明になると)、濃い灰色になり、覆われた視界画像の明度を大きく低下させる。
【0017】
上記の算定部は、視点から光源オブジェクトへの方向と視線方向とのなす角に基づいて透明度を算定してもよい。
例えば、視点から光源オブジェクトへの方向と視線方向とのなす角が大きいほど、大きな透明度(例えば、小さなアルファ値)を算定し、逆に、なす角が小さいほど、小さな透明度(例えば、大きなアルファ値)を算定する。一例として、黒色のマスク画像の透明度が高く算定されると(それほど不透明でないと)、覆われた視界画像の明度を少しだけ低下させる。逆に、透明度が低く算定されると(かなり不透明になると)、覆われた視界画像の明度を大きく低下させる。
これにより、光源オブジェクトが視界画像の中心から離れていると、少しだけ薄暗い視界画像が描画され、逆に、光源オブジェクトが視界画像の中心に近いと、かなり暗い視界画像が描画される。
【0018】
上記の算定部は、光源オブジェクトが他のオブジェクトにより遮蔽されている場合に、遮蔽された割合を示す遮蔽割合に基づいて、算定した透明度を補正してもよい。
具体的に、光源オブジェクトが視線方向(視界画像の中心)にあり、黒色のマスク画像の透明度が低く(かなり不透明に)算定されている場合を一例として説明する。この場合、光源オブジェクトの遮蔽割合が大きいと、算定された値よりも透明度がかなり高くなるように補正する。逆に、遮蔽割合が小さいと、算定された値よりも透明度が少しだけ高くなるように補正する。つまり、同じ位置に光源オブジェクトが配置されていても、遮蔽割合に基づいて透明度が補正され、覆われた視界画像の明度も調整される。
これにより、光源オブジェクトの配置位置だけでなく、遮蔽割合に従って調整された視界画像が描画される。
【0019】
上記画像生成装置は、視界内に光源オブジェクトが配置されている状態の経過時間を計時する計時部を更に備え、
上記の算定部は、計時される経過時間が増えるにつれて、透明度を順次増加させてもよい。
この場合、例えば、光源オブジェクトが視界画面の中心にあり、透明度の低い黒色のマスク画像により覆われた視界画像がかなり暗く描画されていても、そのまま時間が経過するに連れて、マスク画像の透明度がだんだん増加し、これより覆われた視界画像の暗さもだんだん薄くなっていくため、プレイヤの目が徐々に慣れてきたように感じさせることができる。
【0020】
本発明の第3の観点に係る画像生成方法は、光源オブジェクト(例えば、太陽オブジェクト等)を含む複数のオブジェクトが配置された仮想空間を、所定の視点から眺めた視界画像を生成する画像生成装置における画像生成方法であって、調整画像生成ステップ、算定ステップ、及び、画像描画ステップを備え、以下のように構成する。
【0021】
まず、調整画像生成ステップでは、光源オブジェクトを除いた(光源オブジェクトを含めない)視界画像の明度を調整するための所定形状の調整画像を生成する。一例として、視界全面から光源オブジェクトを切り抜いた形状であり、光源オブジェクト以外の視界画像の明度を低下させるための調整画像を生成する。また、算定ステップでは、調整画像により調整させる明度を、視界内における光源オブジェクトの配置状況(例えば、視点から光源オブジェクトへの方向と視線方向とのなす角度)に基づいて算定する。そして、画像描画ステップでは、視界内に配置されている各オブジェクトの投影画像を生成し、この投影画像に調整画像を合成した視界画像を描画する。
【0022】
このように、投影画像に調整画像を合成することにより、光源オブジェクトはそのままに、それ以外の明度を低下させた視界画像が生成される。なお、低下させる明度は、視界内の光源オブジェクトの配置位置等に応じて異なっている。例えば、光源オブジェクトの位置が視線方向(視界画像の中心)から離れていると、少しだけ明度を低下させた視界画像を描画し、逆に、光源オブジェクトの位置が視線方向に近いと、かなり明度を低下させた視界画像を描画する。
すなわち、光源オブジェクトはそのままに、それ以外の明度が落とされているため、光源オブジェクトの明るさが相対的に強調され、プレイヤにとって光源オブジェクトがより眩しく感じることになる。
この結果、光源の眩しさを適切に表現することができる。
【0023】
本発明の第4の観点に係るプログラムは、コンピュータ(電子機器を含む。)を、上記の画像生成装置として機能させるように構成する。
【0024】
このプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。
【0025】
上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0026】
本発明によれば、光源の眩しさを適切に表現することができる。
【発明を実施するための最良の形態】
【0027】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム装置に本発明が適用される実施形態を説明するが、各種のコンピュータ、PDA、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素または全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0028】
(実施形態1)
図1は、本発明の実施の形態に係る画像生成装置が実現される典型的なゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0029】
ゲーム装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラ105と、外部メモリ106と、DVD(Digital Versatile Disk)−ROMドライブ107と、画像処理部108と、音声処理部109と、NIC(Network Interface Card)110と、を備える。
【0030】
なお、ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ107に装着して、ゲーム装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の画像生成装置が実現される。
【0031】
CPU 101は、ゲーム装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【0032】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、ゲーム装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0033】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。
【0034】
インターフェース104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。たとえば、コントローラ105は、操作入力に従って、文字列(メッセージ)等の入力を受け付ける。
【0035】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲームの進行状態を示すデータ、チャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0036】
DVD−ROMドライブ107に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ107は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0037】
画像処理部108は、DVD−ROMから読み出されたデータをCPU 101や画像処理部108が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部108が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部108に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0038】
なお、画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0039】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ROM 102に記録されているが、DVD−ROMに記録された専用のフォント情報を利用することも可能である。
【0040】
音声処理部109は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0041】
NIC 110は、ゲーム装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0042】
このほか、ゲーム装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ107に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。
【0043】
また、本実施形態のゲーム装置100にかえて、一般的なコンピュータ(汎用のパーソナルコンピュータ等)を画像生成装置として利用することもできる。たとえば、一般的なコンピュータは、上記ゲーム装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、ゲーム装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラではなく、キーボードやマウスなどを入力装置として利用する。そして、ゲームプログラムをインストールした後に、そのプログラムを実行させると、画像生成装置として機能する。
【0044】
(画像生成装置の概要構成)
図2は、本実施形態に係る画像生成装置の概要構成を示す模式図である。この画像生成装置は、一例として、プレイヤにより操作されるキャラクタ(自キャラクタ)が、3次元仮想空間内のゲームフィールドを任意に方向等を変えながら移動できるアクションゲームにおけるゲーム画像を生成する装置である。以下、本図を参照して説明する。
【0045】
画像生成装置200は、オブジェクト情報記憶部210と、操作受付部220と、位置管理部230と、マスク画像生成部240と、透明度算定部250と、画像描画部260とを備える。
【0046】
まず、オブジェクト情報記憶部210は、3次元仮想空間内に配置される自キャラクタ、敵キャラクタ、樹木、建物、及び、光源等のオブジェクトについての情報を記憶する。つまり、ゲームに登場する各種オブジェクトを構成するポリゴン、スプライト、及び、テクスチャ画像等の情報が記憶されている。
なお、光源オブジェクトには、一例として、太陽オブジェクト等も含まれている。
そして、RAM 103等が、このようなオブジェクト情報記憶部210として機能しうる。
【0047】
操作受付部220は、自キャラクタに対するプレイヤからの動作指示等の操作入力を受け付ける。例えば、操作受付部220は、所定方向に移動する、ジャンプする、しゃがむ、伏せる等の動作に対応した複数のボタン(一例として、コントローラ105に配置された方向キー,Aボタン,Bボタン,Xボタン,Yボタン等)の何れかがプレイヤにより押下されることによって、自キャラクタに向けた操作入力を受け付ける。
なお、コントローラ105がこのような操作受付部220として機能しうる。
【0048】
位置管理部230は、仮想空間内における各オブジェクトの位置や、視点情報を管理する。
例えば、自キャラクタや敵キャラクタといった仮想空間内で位置が変化するオブジェクトの位置情報(現在位置や向き等)を管理する。つまり、自キャラクタは、操作受付部220にて受け付けた移動指示等に従って、仮想空間内の位置や向きが変化するため、位置管理部230によって、その位置情報が管理される。また、敵キャラクタも所定のロジックに従って適宜移動し、仮想空間内の位置等が変化するため、同様に位置情報が管理される。
この他にも、位置管理部230は、樹木、建物、及び、光源(太陽等)といった仮想空間内で位置が変化しないオブジェクトの位置情報(固定値)も管理する。なお、太陽等の光源オブジェクトが、例えば、ゲーム内での時間経過に応じて位置を変化させる場合では、逐次変化する位置情報が管理されるものとする。
更に、位置管理部230は、視点情報(現在の視点位置及び向き)も適宜管理する。
そして、RAM 103及びCPU 101が、このような位置管理部230として機能しうる。
【0049】
マスク画像生成部240は、太陽等の光源オブジェクトを除いた(光源オブジェクトを含めない)視界画像を薄暗くする(明度を下げる)ために用いられるマスク画像を生成する。
例えば、マスク画像生成部240は、黒色にて初期化したマスク用のバッファを確保しており、太陽等の光源オブジェクトが視界に入る(視界画像中に含まれる)場合に、その光源オブジェクトのスプライトをバッファ内に描画する。
具体的に説明すると、視点情報(位置及び方向)等により、太陽が視界の右上に位置する場合、マスク画像生成部240は、図3(a)に示すように、太陽オブジェクトTojを、マスク用のバッファ内に描画する。
そして、このバッファ内の情報に基づいて、マスク画像生成部240は、図3(b)に示すようなマスク画像MKを生成する。つまり、全体が黒色で、太陽オブジェクト(投影変換後の太陽オブジェクト)の形状分だけが切り取られた(くり抜かれた)マスク画像を生成する。
なお、太陽オブジェクトの形状分が切り取られる前のマスク画像は、一例として、投影変換されるスクリーン画面(つまり、視界全面)と同じ大きさの矩形形状であり、後述するように、透明度(不透明度)を規定するアルファ値が適宜設定可能となっている。
そして、RAM 103及びCPU 101が、このようなマスク画像生成部240として機能しうる。
【0050】
図2に戻って、透明度算定部250は、視界内における光源オブジェクトの配置状況に基づいて、上述したマスク画像の透明度(アルファ値)を算定する。
例えば、透明度算定部250は、視点から光源オブジェクトまでの方向と視点方向とのなす角度、及び、光源オブジェクトの遮蔽割合等に基づいて、マスク画像のアルファ値を算定する。
具体的に、透明度算定部250は、図4(a)に示すように、視点Vから太陽オブジェクトTojへの方向d1と、視線方向d2とのなす角度θに基づいて、アルファ値を算定する。
一例として、アルファ値の範囲が0.0〜1.0とし、0.0が最も透明度が高く(完全に透明)、一方、1.0が最も透明度が低い(完全に不透明)場合について説明すると、透明度算定部250は、この0.0〜1.0の範囲でアルファ値を算定する。
より詳細に説明すると、透明度算定部250は、光源オブジェクトが視界内に入っている状態において、図4(b)のグラフに示すように、角度θが小さいほど、1.0に近づく(透明度が低くなる)ようにアルファ値を算定し、逆に、角度θが大きいほど、0.0に近づく(透明度が高くなる)ようにアルファ値を算定する。この図4(b)に示すグラフは、一例であり、適宜変更可能である。
なお、図4(c)に示すように、投影されるスクリーン画面Sc上の太陽オブジェクトTojは、角度θが小さいほど中心Cnに近づくことになり、逆に、角度θが大きいほど中心Cnから離れることになるため、中心Cnに対する太陽オブジェクトTojの位置(一例として、中心Cnと太陽オブジェクトTojとの距離)から、アルファ値を算定することもできる。
【0051】
また、透明度算定部250は、光源オブジェクトの一部が、他のオブジェクト等により遮蔽されている場合に、その遮蔽割合に応じて、アルファ値を補正する。
例えば、透明度算定部250は、視点から光源オブジェクトまでの方向を求める際に、その間を遮蔽するオブジェクトの有無を検出し、遮蔽するオブジェクトがあれば、その遮蔽割合(どのくらいの割合で遮蔽されているか)を求めておく。なお、遮蔽割合を求める手法は任意であり、適宜適用可能である。例えば、投影変換によりスクリーン画面に投影された後に、光源オブジェクトの遮蔽の有無を判定し、遮蔽されていればその遮蔽割合を求めるようにしてもよい。
また、他のオブジェクトにより遮蔽される以外にも、視界の端に光源オブジェクトが配置され、その一部が視界外となって欠けている場合も、視界外の部分が同様に遮蔽されているように扱うものとする。
そして、透明度算定部250は、上述した角度θ等に応じて算定したアルファ値を、求めた遮蔽割合に応じて補正する。例えば、図4(d)のグラフに示すように、遮蔽割合に応じた補正係数(0.0〜1.0)を求め、この係数値をアルファ値に乗じることにより、アルファ値を補正する。すなわち、遮蔽割合が小さいと、アルファ値が少しだけ低くなるように補正し(少しだけ透明になるようにし)、逆に遮蔽割合が大きいと、アルファ値がかなり低くなるように補正する(かなり透明になるようにする)。この図4(d)に示すグラフは、一例であり、適宜変更可能である。
つまり、透明度算定部250は、遮蔽割合が高いほどアルファ値がより小さくなるように(より透明になるように)、アルファ値を補正する。
【0052】
このようにしてアルファ値を算定すると、透明度算定部250は、算定したアルファ値を上述したマスク画像に設定する。これによりマスク画像の透明度が定まることになる。
そして、上述したように、マスク画像自身が黒色であるため、マスク画像は、算定された(設定された)アルファ値に応じて明度の異なる灰色を合成するための画像となる。一例として、図5(a)のグラフに示すように、透明度が小さい(アルファ値が大きい)と、濃い(明度の低い)灰色になり、逆に、透明度が大きい(アルファ値が小さい)と、薄い(明度の高い)灰色になる。この図5(a)に示すグラフは、一例であり、適宜変更可能である。
光源オブジェクト(太陽オブジェクト)が遮蔽されていない場合を一例として説明すると、角度θが小さく、光源オブジェクトが中心に近いと、図5(b)に示すような濃い(明度の低い)灰色のマスク画像MKとなる。逆に、角度θが大きく、光源オブジェクトが中心から離れていると、図5(c)に示すような薄い(明度の高い)灰色のマスク画像MKとなる。
そして、CPU 101が、このような透明度算定部250として機能しうる。
【0053】
図2に戻って、画像描画部260は、視界内のオブジェクト、及び、生成されたマスク画像に基づいて、表示画像(視界画像)を描画する。
例えば、画像描画部260は、視界内に入るオブジェクトを、位置管理部230に管理される各オブジェクトの位置及び視点情報に基づいて特定すると、そのオブジェクトを投影変換によりスクリーン画面に投影した投影画像を生成する。なお、その際、視界内に光源オブジェクトが含まれているか(視点から太陽オブジェクト等が見えるか)どうかも判別する。
そして、視界内に光源オブジェクトが含まれている場合に、画像描画部260は、投影画像にマスク画像を合成することにより、視界画像を描画する。なお、マスク画像には、上述したように、角度θ等に基づいてアルファ値が適宜設定されているため、この合成によって、光源オブジェクトを除いて明度が落とされた(暗くされた)視界画像が生成される。
【0054】
具体的には、図6(a)に示すように、画像描画部260は、視界内のオブジェクトを投影変換した画像Gに、視点V側からマスク画像MKを重ねて合成する。これにより、図6(b)に示すような表示画像HGが生成される。
この表示画像HGは、太陽オブジェクトTojはそのままに、それ以外の明度が落とされている(薄暗く描画されている)ため、太陽オブジェクトTojの明るさが相対的に強調され、プレイヤにとって太陽オブジェクトTojがより眩しく感じることになる。
そして、画像処理部108が、このような画像描画部260として機能しうる。
【0055】
(画像生成装置の動作)
図7は、上述した構成の画像生成装置200において実行される画像生成処理の流れを示すフローチャートである。以下、本図を参照して画像生成装置200の動作について説明する。この画像生成処理は、例えば、ゲーム実行中において、描画サイクル毎(一例として、1/60秒毎)に、繰り返し実行されるものとする。
【0056】
まず、画像生成装置200は、視界内に配置されている各オブジェクトを特定する(ステップS301)。つまり、画像描画部260は、視界内に入る各オブジェクトを、位置管理部230に管理される各オブジェクトの位置及び視点情報に基づいて特定する。
【0057】
画像生成装置200は、投影変換した画像を描画する(ステップS302)。つまり、画像描画部260は、特定した各オブジェクトを投影変換によりスクリーン画面に投影した投影画像を生成する。
【0058】
画像生成装置200は、視界内に光源があるか否かを判別する(ステップS303)。つまり、視点から太陽オブジェクト等が見えているかどうかを判別する。
画像生成装置200は、視界内に光源がないと判別すると(ステップS303;No)、画像生成処理を終了する。つまり、投影変換した画像をそのまま表示画像(視界画像)とする。
【0059】
一方、視界内に光源があると判別した場合に(ステップS303;Yes)、画像生成装置200は、光源オブジェクトをバッファに描画し、マスク画像を生成する(ステップS304)。
すなわち、マスク画像生成部240は、黒色にて初期化したマスク用のバッファに、太陽等の光源オブジェクトのスプライトを描画する。そして、このバッファ内の情報に基づいて、マスク画像生成部240は、例えば、上述した図3(b)に示すようなマスク画像MKを生成する。つまり、全体が黒色で、太陽等の光源オブジェクトの形状分だけが切り取られた矩形(略矩形)のマスク画像を生成する。
【0060】
画像生成装置200は、アルファ値を算定してマスク画像に設定する(ステップS305)。
すなわち、透明度算定部250は、視点から光源オブジェクトまでの方向と視点方向とのなす角度、及び、光源オブジェクトの遮蔽割合等に基づいて、マスク画像のアルファ値を算定する。
例えば、透明度算定部250は、上述した図4(a)に示すように、視点Vから太陽オブジェクトTojへの方向d1と、視線方向d2とのなす角度θに基づいて、アルファ値を算定する。つまり、上述した図4(b)のグラフに示すように、角度θが小さいほど、1.0に近づく(不透明になる)ようにアルファ値を算定し、逆に、角度θが大きいほど、0.0に近づく(透明になる)ようにアルファ値を算定する。
また、透明度算定部250は、光源オブジェクトの一部が遮蔽されている場合に、その遮蔽割合に応じて、アルファ値を補正する。
例えば、透明度算定部250は、上述した図4(d)のグラフに示すように、遮蔽割合に応じた補正係数(0.0〜1.0)を求め、この係数値をアルファ値に乗じることにより、アルファ値を補正する。すなわち、遮蔽割合が高いほどアルファ値がより小さくなるように(より透明になるように)、角度θに基づいて算定されたアルファ値を補正する。
そして、透明度算定部250は、このようにして算定したアルファ値をマスク画像に設定する。
【0061】
画像生成装置200は、投影変換した画像にマスク画像を合成する(ステップS306)。
すなわち、画像描画部260は、視界内のオブジェクトをスクリーン画面に投影変換した投影画像に、アルファ値が設定されたマスク画像を合成することにより、表示画像(視界画像)を描画する。
例えば、画像描画部260は、上述した図6(a)に示すように、投影変換した画像Gに、視点V側からマスク画像MKを重ねて合成して、表示画像を生成する。つまり、上述した図6(b)に示すような表示画像HGを描画する。
【0062】
このような、画像生成処理により、太陽等の光源オブジェクトが視界内に入る場合に、その光源オブジェクトはそのままに、それ以外の明度が落とされた表示画像(視界画像)が描画される。その際、視線に対する光源オブジェクトの位置に応じて、明度(暗さ)が異なっている。
すなわち、光源オブジェクトが視線方向(視界画像の中心)から離れていると、図8(a)に示すような少し薄暗い視界画像が生成され、また、光源オブジェクトが視線方向に近いと、図8(b)に示すようなかなり暗い視界画像が生成される。
これら図8(a),(b)の何れの視界画像でも、光源オブジェクト(太陽オブジェクト)はそのままに、それ以外の明度が落とされているため、光源オブジェクトの明るさが相対的に強調され、プレイヤにとって光源オブジェクトがより眩しく感じることになる。
【0063】
この結果、光源の眩しさを適切に表現することができる。
【0064】
(他の実施形態)
上記の実施形態では、視界内における光源オブジェクトの配置状況(配置位置及び遮蔽割合)に基づいて、マスク画像のアルファ値が算定される場合について説明した。
更にリアリティを高めるために、光源オブジェクトが表示され続けていると、だんだん目が慣れていく様子を表現するようにしてもよい。
以下、このように、リアリティを更に高めることのできる他の実施形態について、以下、図面を参照して説明する。
【0065】
図9は、本発明の他の実施形態に係る画像生成装置400の概要構成を示す模式図である。
図示するように、画像生成装置400は、オブジェクト情報記憶部210と、操作受付部220と、位置管理部230と、マスク画像生成部240と、透明度算定部250と、画像描画部260と、計時部410とを備える。
この画像生成装置400は、上述した図2の画像生成装置200の構成に、計時部410を加えたものとなっている。つまり、オブジェクト情報記憶部210〜画像描画部260の構成は、画像生成装置200と同等である。
【0066】
計時部410は、視界内に光源オブジェクトが入ってからの経過タイムを計時する。
例えば、計時部410は、位置管理部230に管理される光源オブジェクトの位置と、視点情報(位置及び方向)との関係から、視界内に光源オブジェクトが位置している(視点から光源オブジェクトが見える)かどうかを逐次判別し、光源オブジェクトが視界内に位置している状態で経過タイムをカウントアップする。
なお、計時部410は、光源オブジェクトが視界内から外れると、経過タイムをゼロクリアする。
【0067】
透明度算定部250は、計時部410にて計時されている経過タイムを考慮して、マスク画像のアルファ値を算定する。
例えば、上述したように、視界内における光源オブジェクトの配置状況に基づいて、アルファ値を算定した後に、経過タイムの値に応じて、アルファ値が小さくなるように(透明度が大きくなるように)補正する。
具体的には、図10のグラフに示すように、経過タイムに応じた減衰係数値(0.0〜1.0)を順次求め、この係数値をアルファ値に乗じることにより、アルファ値を時間経過に応じて小さくしていく。この図10に示すグラフは、一例であり、適宜変更可能である。
つまり、時間が経過するにつれて、視界画像の明度が徐々に上がるように(だんだん明るくなっていくように)、要するに、経過タイムが大きいほどアルファ値がより小さくなるように(透明度がより大きくなるように)補正する。
【0068】
以下、このような構成の画像生成装置400において実行される画像生成処理の流れを図11のフローチャートを参照して説明する。
なお、上述した図7の画像生成処理と同じ箇所には、同じ参照符号が付加されている。また、この画像生成処理も、例えば、ゲーム実行中において、描画サイクル毎(一例として、1/60秒毎)に、繰り返し実行されるものとする。
【0069】
まず、画像生成装置400は、視界内に配置されている各オブジェクトを特定し(ステップS301)、投影変換した画像を描画する(ステップS302)。つまり、画像描画部260は、視界内の各オブジェクトを特定し、特定した各オブジェクトを投影変換によりスクリーン画面に投影した投影画像を生成する。
画像生成装置400は、視界内に光源があるか否かを判別する(ステップS303)。つまり、視点から太陽オブジェクト等が見えているかどうかを判別する。
【0070】
画像生成装置400は、視界内に光源がないと判別すると(ステップS303;No)、経過タイムをクリアする(ステップS501)。
すなわち、計時部410は、カウントしていた経過タイムをゼロクリアする。
そして、画像生成装置400は、画像生成処理を終了する。つまり、投影変換した画像をそのまま表示画像とする。
【0071】
一方、視界内に光源があると判別した場合に(ステップS303;Yes)、画像生成装置400は、経過タイムが基準値を超えているか否かを判別する(ステップS502)。
画像生成装置400は、経過タイムが基準値を超えていると判別すると(ステップS502;Yes)、画像生成処理を終了する。つまり、視界画像の明度を下げる必要のないほど時間が経過している場合、投影変換した画像をそのまま表示画像とする。
【0072】
一方、経過タイムが基準値を超えていないと判別した場合に(ステップS502;No)、画像生成装置400は、光源オブジェクトをバッファに描画し、マスク画像を生成する(ステップS304)。つまり、上述した図3(b)に示すようなマスク画像を生成する。
【0073】
画像生成装置400は、経過タイムも考慮しつつアルファ値を算定し、マスク画像に設定する(ステップS503)。
すなわち、透明度算定部250は、まず、視点から光源オブジェクトまでの方向と視点方向とのなす角度、及び、光源オブジェクトの遮蔽割合等に基づいて、マスク画像のアルファ値を算定する。
その後、透明度算定部250は、経過タイムの値に応じて、アルファ値が小さくなるように(透明度が大きくなるように)補正する。
すなわち、透明度算定部250は、上述した図10のグラフに示すように、経過タイムに応じた減衰係数(0.0〜1.0)を求め、この係数値をアルファ値に乗じることにより、アルファ値を補正する。これにより、アルファ値は、経過タイムが大きいほどより小さくなるように(透明度がより大きくなるように)補正される。
【0074】
画像生成装置400は、投影変換した画像にマスク画像を合成する(ステップS306)。つまり、画像描画部260は、投影変換した画像に、アルファ値が設定されたマスク画像を合成することにより、表示画像(視界画像)を描画する。
【0075】
そして、画像生成装置400は、経過タイムを加算した(ステップS504)後に、画像生成処理を終える。
【0076】
このような、画像生成処理により、経過タイムが増えるにつれて、視界画像の明度が徐々に上がるように(だんだん明るくなっていくように)表示されるようになる。
例えば、視界の中心近くに光源オブジェクト(太陽オブジェクト)がある場面で、経過タイムが小さいと、図12(a)に示すように、かなり暗い視界画像が描画される。そして、そのまま時間が経過していくと(経過タイムが増加していくと)、図12(b)に示すように、薄暗い視界画像が描画される(だんだん暗さが薄くなっていく)。さらに、時間が経過していくと(経過タイムが基準値を超えると)、図12(c)に示すように、マスク画像を合成しない視界画像が描画される。
このため、最初暗い視界画像が描画されていても、そのまま時間が経過するに連れて、だんだん暗さが薄くなっていくため、プレイヤの目がだんだん慣れてきたように感じさせることができる。
この結果、光源の眩しさを、よりリアリティを高めて表現することができる。
【0077】
以上説明したように、本発明によれば光源の眩しさを適切に表現することができる。
【図面の簡単な説明】
【0078】
【図1】本実施形態におけるゲーム装置の概要構成を示す模式図である。
【図2】本実施形態における画像生成装置の構成の一例を示す模式図である。
【図3】(a),(b)共に、マスク画像の形状を説明するための模式図である。
【図4】(a)が太陽オブジェクトへの方向と視線方向とのなす各角度θを説明するための模式図であり、(b)が角度θとアルファ値との関係を示すグラフであり、(c)がスクリーン画面と投影される太陽オブジェクトを説明するための模式図であり、(d)が、遮蔽割合と補正係数との関係を示すグラフである。
【図5】(a)がマスク画像の透明度(アルファ値)と明度との関係を示すグラフであり、(b)、(c)がアルファ値が設定されたマスク画像を説明するための模式図である。
【図6】(a),(b)共に、投影画像にマスク画像が合成される様子を説明するための模式図である。
【図7】本実施形態における画像生成処理の流れを示すフローチャートである。
【図8】(a),(b)共に、視界内における太陽オブジェクトの位置に応じて、視界画像の明度が異なる様子を説明するための模式図である。
【図9】他の実施形態における画像生成装置の構成の一例を示す模式図である。
【図10】経過タイムと減衰係数との関係を示すグラフである。
【図11】他の実施形態における画像生成処理の流れを示すフローチャートである。
【図12】(a)〜(c)共に、時間の経過に応じて、視界画像が明るくなっていく様子を説明するための模式図である。
【符号の説明】
【0079】
100 ゲーム装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 DVD−ROMドライブ
108 画像処理部
109 音声処理部
110 NIC
200,400 画像生成装置
210 オブジェクト情報記憶部
220 操作受付部
230 位置管理部
240 マスク画像生成部
250 透明度算定部
260 画像描画部
410 計時部
【技術分野】
【0001】
本発明は、光源の眩しさを適切に表現することのできる画像生成装置、画像生成方法、および、プログラムに関する。
【背景技術】
【0002】
従来より、種々のゲーム装置(ビデオゲーム装置等)が、家庭用や業務用として開発されてきている。このようなゲーム装置は、一般に、仮想空間内にキャラクタ等のオブジェクトを配置し、所定の視点から眺めたゲーム画像を表示している。
【0003】
近年では、ハードウェア性能の向上や画像処理技術の発達等によって、高精度なゲーム画像が高速に生成可能となり、プレイヤがあたかも仮想空間内にいるかのように、ゲームを楽しむことができる。
【0004】
一例として、仮想空間における光源(光源オブジェクト)を表示する際にもリアリティを高めた画像を生成している。具体的には、夜間に街路灯が灯っている場面において、その街路灯の周りに、グローやハロー等により光が広がる様子を表現し、その光源の現実感を高めている。
【0005】
最近では、このような光源の表現を行う際に、処理負荷を低減しつつ、光軸等を考慮して描画し、その光源のリアリティをより高めることのできる技術も開示されている(例えば、特許文献1参照)。
【0006】
【特許文献1】特開2002−251629号公報 (第5−7頁、第1図)
【発明の開示】
【発明が解決しようとする課題】
【0007】
上述したグロー等を用いる光源の表現手法は、一般的に、夜間や暗がりの場面にて用いられた際に、光源のリアリティを高めることが可能となる。なお、昼間の屋外等の場面でもこのような表現手法が用いられているが、周りが明るいため、あまり効果的でないことが多かった。
例えば、屋外の場面で、昼間の太陽をグロー等を用いて表現しても、空等が明るいためその太陽はほとんど強調されない。つまり、視界内に太陽が含まれる画像を従来の表現手法にて生成しても、プレイヤにはその太陽が眩しく感じられず、リアリティを高めることが不十分であった。
【0008】
そのため、このような昼間の太陽のような光源についても、その光源の眩しさをより適切に表現できる新たな表現手法が求められていた。
【0009】
本発明は、上記実状に鑑みてなされたもので、光源の眩しさを適切に表現することのできる画像生成装置、画像生成方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の第1の観点に係る画像生成装置は、調整画像生成部、算定部、及び、画像描画部を備え、光源オブジェクト(例えば、太陽オブジェクト等)を含む複数のオブジェクトが配置された仮想空間を、所定の視点から眺めた視界画像を生成する画像生成装置であって以下のように構成する。
【0011】
まず、調整画像生成部は、光源オブジェクトを除いた(光源オブジェクトを含めない)視界画像の明度を調整するための所定形状の調整画像を生成する。一例として、視界全面から光源オブジェクトを切り抜いた形状であり、光源オブジェクト以外の視界画像の明度を低下させるための調整画像を生成する。また、算定部は、調整画像により調整させる明度を、視界内における光源オブジェクトの配置状況(例えば、視点から光源オブジェクトへの方向と視線方向とのなす角度)に基づいて算定する。そして、画像描画部は、視界内に配置されている各オブジェクトの投影画像を生成し、この投影画像に調整画像を合成した視界画像を描画する。
【0012】
このように、投影画像に調整画像を合成することにより、光源オブジェクトはそのままに、それ以外の明度を低下させた視界画像が生成される。なお、低下させる明度は、視界内の光源オブジェクトの配置位置等に応じて異なっている。例えば、光源オブジェクトの位置が視線方向(視界画像の中心)から離れていると、少しだけ明度を低下させた視界画像を描画し、逆に、光源オブジェクトの位置が視線方向に近いと、かなり明度を低下させた視界画像を描画する。
すなわち、光源オブジェクトはそのままに、それ以外の明度が落とされているため、光源オブジェクトの明るさが相対的に強調され、プレイヤにとって光源オブジェクトがより眩しく感じることになる。
この結果、光源の眩しさを適切に表現することができる。
【0013】
本発明の第2の観点に係る画像生成装置は、マスク画像生成部、算定部、及び、画像描画部を備え、光源オブジェクト(例えば、太陽オブジェクト等)を含む複数のオブジェクトが配置された仮想空間を、所定の視点から眺めた視界画像を生成する画像生成装置であって以下のように構成する。
【0014】
まず、マスク画像生成部は、視点を基準とした視界全面から光源オブジェクトを除いたマスク画像を生成する。つまり、光源オブジェクトは覆わずにそれ以外を覆うマスク画像を生成する。また、算定部は、マスク画像に設定するための透明度(一例として、アルファ値)を、視界内における光源オブジェクトの配置状況(例えば、視点から光源オブジェクトへの方向と視線方向とのなす角度)に基づいて算定する。そして、画像描画部は、視界内に配置されている各オブジェクトを投影変換した投影画像を生成し、この投影画像に透明度が設定されたマスク画像を合成した視界画像を描画する。
【0015】
このように、投影画像に透明度が設定されたマスク画像を合成することにより、光源オブジェクトはそのままに、それ以外をマスク画像の透明度に応じて明度の調整された視界画像が生成される。一例として、マスク画像が黒色であれば、マスク画像の透明度が低いほど(不透明であるほど)、マスク画像に覆われた視界画像の明度が低下することになる。つまり、低下させる明度は、マスク画像の透明度に応じて定まるものであり、マスク画像の透明度は、視界内の光源オブジェクトの配置位置等に応じて異なっている。例えば、光源オブジェクトの位置が視線方向(視界画像の中心)から離れていると、マスク画像の透明度が高く設定され、覆われた視界画像の明度を少しだけ低下させる。逆に、光源オブジェクトの位置が視線方向に近いと、マスク画像の透明度が低く設定され、覆われた視界画像の明度をかなり低下させる。
すなわち、光源オブジェクトはそのままに、それ以外の明度が落とされているため、光源オブジェクトの明るさが相対的に強調され、プレイヤにとって光源オブジェクトがより眩しく感じることになる。
この結果、光源の眩しさを適切に表現することができる。
【0016】
上記のマスク画像生成部は、視界全面を覆う黒色の矩形画像から、視界内における光源オブジェクトの形状を切り抜くことにより、この光源オブジェクトを除いたマスク画像を生成してもよい。
この場合、黒色のマスク画像は、透明度が大きいと(それほど不透明でないと)、薄い灰色になり、覆われた視界画像の明度を小さく低下させる。逆に、透明度が小さいと(かなり不透明になると)、濃い灰色になり、覆われた視界画像の明度を大きく低下させる。
【0017】
上記の算定部は、視点から光源オブジェクトへの方向と視線方向とのなす角に基づいて透明度を算定してもよい。
例えば、視点から光源オブジェクトへの方向と視線方向とのなす角が大きいほど、大きな透明度(例えば、小さなアルファ値)を算定し、逆に、なす角が小さいほど、小さな透明度(例えば、大きなアルファ値)を算定する。一例として、黒色のマスク画像の透明度が高く算定されると(それほど不透明でないと)、覆われた視界画像の明度を少しだけ低下させる。逆に、透明度が低く算定されると(かなり不透明になると)、覆われた視界画像の明度を大きく低下させる。
これにより、光源オブジェクトが視界画像の中心から離れていると、少しだけ薄暗い視界画像が描画され、逆に、光源オブジェクトが視界画像の中心に近いと、かなり暗い視界画像が描画される。
【0018】
上記の算定部は、光源オブジェクトが他のオブジェクトにより遮蔽されている場合に、遮蔽された割合を示す遮蔽割合に基づいて、算定した透明度を補正してもよい。
具体的に、光源オブジェクトが視線方向(視界画像の中心)にあり、黒色のマスク画像の透明度が低く(かなり不透明に)算定されている場合を一例として説明する。この場合、光源オブジェクトの遮蔽割合が大きいと、算定された値よりも透明度がかなり高くなるように補正する。逆に、遮蔽割合が小さいと、算定された値よりも透明度が少しだけ高くなるように補正する。つまり、同じ位置に光源オブジェクトが配置されていても、遮蔽割合に基づいて透明度が補正され、覆われた視界画像の明度も調整される。
これにより、光源オブジェクトの配置位置だけでなく、遮蔽割合に従って調整された視界画像が描画される。
【0019】
上記画像生成装置は、視界内に光源オブジェクトが配置されている状態の経過時間を計時する計時部を更に備え、
上記の算定部は、計時される経過時間が増えるにつれて、透明度を順次増加させてもよい。
この場合、例えば、光源オブジェクトが視界画面の中心にあり、透明度の低い黒色のマスク画像により覆われた視界画像がかなり暗く描画されていても、そのまま時間が経過するに連れて、マスク画像の透明度がだんだん増加し、これより覆われた視界画像の暗さもだんだん薄くなっていくため、プレイヤの目が徐々に慣れてきたように感じさせることができる。
【0020】
本発明の第3の観点に係る画像生成方法は、光源オブジェクト(例えば、太陽オブジェクト等)を含む複数のオブジェクトが配置された仮想空間を、所定の視点から眺めた視界画像を生成する画像生成装置における画像生成方法であって、調整画像生成ステップ、算定ステップ、及び、画像描画ステップを備え、以下のように構成する。
【0021】
まず、調整画像生成ステップでは、光源オブジェクトを除いた(光源オブジェクトを含めない)視界画像の明度を調整するための所定形状の調整画像を生成する。一例として、視界全面から光源オブジェクトを切り抜いた形状であり、光源オブジェクト以外の視界画像の明度を低下させるための調整画像を生成する。また、算定ステップでは、調整画像により調整させる明度を、視界内における光源オブジェクトの配置状況(例えば、視点から光源オブジェクトへの方向と視線方向とのなす角度)に基づいて算定する。そして、画像描画ステップでは、視界内に配置されている各オブジェクトの投影画像を生成し、この投影画像に調整画像を合成した視界画像を描画する。
【0022】
このように、投影画像に調整画像を合成することにより、光源オブジェクトはそのままに、それ以外の明度を低下させた視界画像が生成される。なお、低下させる明度は、視界内の光源オブジェクトの配置位置等に応じて異なっている。例えば、光源オブジェクトの位置が視線方向(視界画像の中心)から離れていると、少しだけ明度を低下させた視界画像を描画し、逆に、光源オブジェクトの位置が視線方向に近いと、かなり明度を低下させた視界画像を描画する。
すなわち、光源オブジェクトはそのままに、それ以外の明度が落とされているため、光源オブジェクトの明るさが相対的に強調され、プレイヤにとって光源オブジェクトがより眩しく感じることになる。
この結果、光源の眩しさを適切に表現することができる。
【0023】
本発明の第4の観点に係るプログラムは、コンピュータ(電子機器を含む。)を、上記の画像生成装置として機能させるように構成する。
【0024】
このプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。
【0025】
上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0026】
本発明によれば、光源の眩しさを適切に表現することができる。
【発明を実施するための最良の形態】
【0027】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム装置に本発明が適用される実施形態を説明するが、各種のコンピュータ、PDA、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素または全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0028】
(実施形態1)
図1は、本発明の実施の形態に係る画像生成装置が実現される典型的なゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0029】
ゲーム装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラ105と、外部メモリ106と、DVD(Digital Versatile Disk)−ROMドライブ107と、画像処理部108と、音声処理部109と、NIC(Network Interface Card)110と、を備える。
【0030】
なお、ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ107に装着して、ゲーム装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の画像生成装置が実現される。
【0031】
CPU 101は、ゲーム装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【0032】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、ゲーム装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0033】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。
【0034】
インターフェース104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。たとえば、コントローラ105は、操作入力に従って、文字列(メッセージ)等の入力を受け付ける。
【0035】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲームの進行状態を示すデータ、チャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0036】
DVD−ROMドライブ107に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ107は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0037】
画像処理部108は、DVD−ROMから読み出されたデータをCPU 101や画像処理部108が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部108が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部108に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0038】
なお、画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0039】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ROM 102に記録されているが、DVD−ROMに記録された専用のフォント情報を利用することも可能である。
【0040】
音声処理部109は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0041】
NIC 110は、ゲーム装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0042】
このほか、ゲーム装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ107に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。
【0043】
また、本実施形態のゲーム装置100にかえて、一般的なコンピュータ(汎用のパーソナルコンピュータ等)を画像生成装置として利用することもできる。たとえば、一般的なコンピュータは、上記ゲーム装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、ゲーム装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラではなく、キーボードやマウスなどを入力装置として利用する。そして、ゲームプログラムをインストールした後に、そのプログラムを実行させると、画像生成装置として機能する。
【0044】
(画像生成装置の概要構成)
図2は、本実施形態に係る画像生成装置の概要構成を示す模式図である。この画像生成装置は、一例として、プレイヤにより操作されるキャラクタ(自キャラクタ)が、3次元仮想空間内のゲームフィールドを任意に方向等を変えながら移動できるアクションゲームにおけるゲーム画像を生成する装置である。以下、本図を参照して説明する。
【0045】
画像生成装置200は、オブジェクト情報記憶部210と、操作受付部220と、位置管理部230と、マスク画像生成部240と、透明度算定部250と、画像描画部260とを備える。
【0046】
まず、オブジェクト情報記憶部210は、3次元仮想空間内に配置される自キャラクタ、敵キャラクタ、樹木、建物、及び、光源等のオブジェクトについての情報を記憶する。つまり、ゲームに登場する各種オブジェクトを構成するポリゴン、スプライト、及び、テクスチャ画像等の情報が記憶されている。
なお、光源オブジェクトには、一例として、太陽オブジェクト等も含まれている。
そして、RAM 103等が、このようなオブジェクト情報記憶部210として機能しうる。
【0047】
操作受付部220は、自キャラクタに対するプレイヤからの動作指示等の操作入力を受け付ける。例えば、操作受付部220は、所定方向に移動する、ジャンプする、しゃがむ、伏せる等の動作に対応した複数のボタン(一例として、コントローラ105に配置された方向キー,Aボタン,Bボタン,Xボタン,Yボタン等)の何れかがプレイヤにより押下されることによって、自キャラクタに向けた操作入力を受け付ける。
なお、コントローラ105がこのような操作受付部220として機能しうる。
【0048】
位置管理部230は、仮想空間内における各オブジェクトの位置や、視点情報を管理する。
例えば、自キャラクタや敵キャラクタといった仮想空間内で位置が変化するオブジェクトの位置情報(現在位置や向き等)を管理する。つまり、自キャラクタは、操作受付部220にて受け付けた移動指示等に従って、仮想空間内の位置や向きが変化するため、位置管理部230によって、その位置情報が管理される。また、敵キャラクタも所定のロジックに従って適宜移動し、仮想空間内の位置等が変化するため、同様に位置情報が管理される。
この他にも、位置管理部230は、樹木、建物、及び、光源(太陽等)といった仮想空間内で位置が変化しないオブジェクトの位置情報(固定値)も管理する。なお、太陽等の光源オブジェクトが、例えば、ゲーム内での時間経過に応じて位置を変化させる場合では、逐次変化する位置情報が管理されるものとする。
更に、位置管理部230は、視点情報(現在の視点位置及び向き)も適宜管理する。
そして、RAM 103及びCPU 101が、このような位置管理部230として機能しうる。
【0049】
マスク画像生成部240は、太陽等の光源オブジェクトを除いた(光源オブジェクトを含めない)視界画像を薄暗くする(明度を下げる)ために用いられるマスク画像を生成する。
例えば、マスク画像生成部240は、黒色にて初期化したマスク用のバッファを確保しており、太陽等の光源オブジェクトが視界に入る(視界画像中に含まれる)場合に、その光源オブジェクトのスプライトをバッファ内に描画する。
具体的に説明すると、視点情報(位置及び方向)等により、太陽が視界の右上に位置する場合、マスク画像生成部240は、図3(a)に示すように、太陽オブジェクトTojを、マスク用のバッファ内に描画する。
そして、このバッファ内の情報に基づいて、マスク画像生成部240は、図3(b)に示すようなマスク画像MKを生成する。つまり、全体が黒色で、太陽オブジェクト(投影変換後の太陽オブジェクト)の形状分だけが切り取られた(くり抜かれた)マスク画像を生成する。
なお、太陽オブジェクトの形状分が切り取られる前のマスク画像は、一例として、投影変換されるスクリーン画面(つまり、視界全面)と同じ大きさの矩形形状であり、後述するように、透明度(不透明度)を規定するアルファ値が適宜設定可能となっている。
そして、RAM 103及びCPU 101が、このようなマスク画像生成部240として機能しうる。
【0050】
図2に戻って、透明度算定部250は、視界内における光源オブジェクトの配置状況に基づいて、上述したマスク画像の透明度(アルファ値)を算定する。
例えば、透明度算定部250は、視点から光源オブジェクトまでの方向と視点方向とのなす角度、及び、光源オブジェクトの遮蔽割合等に基づいて、マスク画像のアルファ値を算定する。
具体的に、透明度算定部250は、図4(a)に示すように、視点Vから太陽オブジェクトTojへの方向d1と、視線方向d2とのなす角度θに基づいて、アルファ値を算定する。
一例として、アルファ値の範囲が0.0〜1.0とし、0.0が最も透明度が高く(完全に透明)、一方、1.0が最も透明度が低い(完全に不透明)場合について説明すると、透明度算定部250は、この0.0〜1.0の範囲でアルファ値を算定する。
より詳細に説明すると、透明度算定部250は、光源オブジェクトが視界内に入っている状態において、図4(b)のグラフに示すように、角度θが小さいほど、1.0に近づく(透明度が低くなる)ようにアルファ値を算定し、逆に、角度θが大きいほど、0.0に近づく(透明度が高くなる)ようにアルファ値を算定する。この図4(b)に示すグラフは、一例であり、適宜変更可能である。
なお、図4(c)に示すように、投影されるスクリーン画面Sc上の太陽オブジェクトTojは、角度θが小さいほど中心Cnに近づくことになり、逆に、角度θが大きいほど中心Cnから離れることになるため、中心Cnに対する太陽オブジェクトTojの位置(一例として、中心Cnと太陽オブジェクトTojとの距離)から、アルファ値を算定することもできる。
【0051】
また、透明度算定部250は、光源オブジェクトの一部が、他のオブジェクト等により遮蔽されている場合に、その遮蔽割合に応じて、アルファ値を補正する。
例えば、透明度算定部250は、視点から光源オブジェクトまでの方向を求める際に、その間を遮蔽するオブジェクトの有無を検出し、遮蔽するオブジェクトがあれば、その遮蔽割合(どのくらいの割合で遮蔽されているか)を求めておく。なお、遮蔽割合を求める手法は任意であり、適宜適用可能である。例えば、投影変換によりスクリーン画面に投影された後に、光源オブジェクトの遮蔽の有無を判定し、遮蔽されていればその遮蔽割合を求めるようにしてもよい。
また、他のオブジェクトにより遮蔽される以外にも、視界の端に光源オブジェクトが配置され、その一部が視界外となって欠けている場合も、視界外の部分が同様に遮蔽されているように扱うものとする。
そして、透明度算定部250は、上述した角度θ等に応じて算定したアルファ値を、求めた遮蔽割合に応じて補正する。例えば、図4(d)のグラフに示すように、遮蔽割合に応じた補正係数(0.0〜1.0)を求め、この係数値をアルファ値に乗じることにより、アルファ値を補正する。すなわち、遮蔽割合が小さいと、アルファ値が少しだけ低くなるように補正し(少しだけ透明になるようにし)、逆に遮蔽割合が大きいと、アルファ値がかなり低くなるように補正する(かなり透明になるようにする)。この図4(d)に示すグラフは、一例であり、適宜変更可能である。
つまり、透明度算定部250は、遮蔽割合が高いほどアルファ値がより小さくなるように(より透明になるように)、アルファ値を補正する。
【0052】
このようにしてアルファ値を算定すると、透明度算定部250は、算定したアルファ値を上述したマスク画像に設定する。これによりマスク画像の透明度が定まることになる。
そして、上述したように、マスク画像自身が黒色であるため、マスク画像は、算定された(設定された)アルファ値に応じて明度の異なる灰色を合成するための画像となる。一例として、図5(a)のグラフに示すように、透明度が小さい(アルファ値が大きい)と、濃い(明度の低い)灰色になり、逆に、透明度が大きい(アルファ値が小さい)と、薄い(明度の高い)灰色になる。この図5(a)に示すグラフは、一例であり、適宜変更可能である。
光源オブジェクト(太陽オブジェクト)が遮蔽されていない場合を一例として説明すると、角度θが小さく、光源オブジェクトが中心に近いと、図5(b)に示すような濃い(明度の低い)灰色のマスク画像MKとなる。逆に、角度θが大きく、光源オブジェクトが中心から離れていると、図5(c)に示すような薄い(明度の高い)灰色のマスク画像MKとなる。
そして、CPU 101が、このような透明度算定部250として機能しうる。
【0053】
図2に戻って、画像描画部260は、視界内のオブジェクト、及び、生成されたマスク画像に基づいて、表示画像(視界画像)を描画する。
例えば、画像描画部260は、視界内に入るオブジェクトを、位置管理部230に管理される各オブジェクトの位置及び視点情報に基づいて特定すると、そのオブジェクトを投影変換によりスクリーン画面に投影した投影画像を生成する。なお、その際、視界内に光源オブジェクトが含まれているか(視点から太陽オブジェクト等が見えるか)どうかも判別する。
そして、視界内に光源オブジェクトが含まれている場合に、画像描画部260は、投影画像にマスク画像を合成することにより、視界画像を描画する。なお、マスク画像には、上述したように、角度θ等に基づいてアルファ値が適宜設定されているため、この合成によって、光源オブジェクトを除いて明度が落とされた(暗くされた)視界画像が生成される。
【0054】
具体的には、図6(a)に示すように、画像描画部260は、視界内のオブジェクトを投影変換した画像Gに、視点V側からマスク画像MKを重ねて合成する。これにより、図6(b)に示すような表示画像HGが生成される。
この表示画像HGは、太陽オブジェクトTojはそのままに、それ以外の明度が落とされている(薄暗く描画されている)ため、太陽オブジェクトTojの明るさが相対的に強調され、プレイヤにとって太陽オブジェクトTojがより眩しく感じることになる。
そして、画像処理部108が、このような画像描画部260として機能しうる。
【0055】
(画像生成装置の動作)
図7は、上述した構成の画像生成装置200において実行される画像生成処理の流れを示すフローチャートである。以下、本図を参照して画像生成装置200の動作について説明する。この画像生成処理は、例えば、ゲーム実行中において、描画サイクル毎(一例として、1/60秒毎)に、繰り返し実行されるものとする。
【0056】
まず、画像生成装置200は、視界内に配置されている各オブジェクトを特定する(ステップS301)。つまり、画像描画部260は、視界内に入る各オブジェクトを、位置管理部230に管理される各オブジェクトの位置及び視点情報に基づいて特定する。
【0057】
画像生成装置200は、投影変換した画像を描画する(ステップS302)。つまり、画像描画部260は、特定した各オブジェクトを投影変換によりスクリーン画面に投影した投影画像を生成する。
【0058】
画像生成装置200は、視界内に光源があるか否かを判別する(ステップS303)。つまり、視点から太陽オブジェクト等が見えているかどうかを判別する。
画像生成装置200は、視界内に光源がないと判別すると(ステップS303;No)、画像生成処理を終了する。つまり、投影変換した画像をそのまま表示画像(視界画像)とする。
【0059】
一方、視界内に光源があると判別した場合に(ステップS303;Yes)、画像生成装置200は、光源オブジェクトをバッファに描画し、マスク画像を生成する(ステップS304)。
すなわち、マスク画像生成部240は、黒色にて初期化したマスク用のバッファに、太陽等の光源オブジェクトのスプライトを描画する。そして、このバッファ内の情報に基づいて、マスク画像生成部240は、例えば、上述した図3(b)に示すようなマスク画像MKを生成する。つまり、全体が黒色で、太陽等の光源オブジェクトの形状分だけが切り取られた矩形(略矩形)のマスク画像を生成する。
【0060】
画像生成装置200は、アルファ値を算定してマスク画像に設定する(ステップS305)。
すなわち、透明度算定部250は、視点から光源オブジェクトまでの方向と視点方向とのなす角度、及び、光源オブジェクトの遮蔽割合等に基づいて、マスク画像のアルファ値を算定する。
例えば、透明度算定部250は、上述した図4(a)に示すように、視点Vから太陽オブジェクトTojへの方向d1と、視線方向d2とのなす角度θに基づいて、アルファ値を算定する。つまり、上述した図4(b)のグラフに示すように、角度θが小さいほど、1.0に近づく(不透明になる)ようにアルファ値を算定し、逆に、角度θが大きいほど、0.0に近づく(透明になる)ようにアルファ値を算定する。
また、透明度算定部250は、光源オブジェクトの一部が遮蔽されている場合に、その遮蔽割合に応じて、アルファ値を補正する。
例えば、透明度算定部250は、上述した図4(d)のグラフに示すように、遮蔽割合に応じた補正係数(0.0〜1.0)を求め、この係数値をアルファ値に乗じることにより、アルファ値を補正する。すなわち、遮蔽割合が高いほどアルファ値がより小さくなるように(より透明になるように)、角度θに基づいて算定されたアルファ値を補正する。
そして、透明度算定部250は、このようにして算定したアルファ値をマスク画像に設定する。
【0061】
画像生成装置200は、投影変換した画像にマスク画像を合成する(ステップS306)。
すなわち、画像描画部260は、視界内のオブジェクトをスクリーン画面に投影変換した投影画像に、アルファ値が設定されたマスク画像を合成することにより、表示画像(視界画像)を描画する。
例えば、画像描画部260は、上述した図6(a)に示すように、投影変換した画像Gに、視点V側からマスク画像MKを重ねて合成して、表示画像を生成する。つまり、上述した図6(b)に示すような表示画像HGを描画する。
【0062】
このような、画像生成処理により、太陽等の光源オブジェクトが視界内に入る場合に、その光源オブジェクトはそのままに、それ以外の明度が落とされた表示画像(視界画像)が描画される。その際、視線に対する光源オブジェクトの位置に応じて、明度(暗さ)が異なっている。
すなわち、光源オブジェクトが視線方向(視界画像の中心)から離れていると、図8(a)に示すような少し薄暗い視界画像が生成され、また、光源オブジェクトが視線方向に近いと、図8(b)に示すようなかなり暗い視界画像が生成される。
これら図8(a),(b)の何れの視界画像でも、光源オブジェクト(太陽オブジェクト)はそのままに、それ以外の明度が落とされているため、光源オブジェクトの明るさが相対的に強調され、プレイヤにとって光源オブジェクトがより眩しく感じることになる。
【0063】
この結果、光源の眩しさを適切に表現することができる。
【0064】
(他の実施形態)
上記の実施形態では、視界内における光源オブジェクトの配置状況(配置位置及び遮蔽割合)に基づいて、マスク画像のアルファ値が算定される場合について説明した。
更にリアリティを高めるために、光源オブジェクトが表示され続けていると、だんだん目が慣れていく様子を表現するようにしてもよい。
以下、このように、リアリティを更に高めることのできる他の実施形態について、以下、図面を参照して説明する。
【0065】
図9は、本発明の他の実施形態に係る画像生成装置400の概要構成を示す模式図である。
図示するように、画像生成装置400は、オブジェクト情報記憶部210と、操作受付部220と、位置管理部230と、マスク画像生成部240と、透明度算定部250と、画像描画部260と、計時部410とを備える。
この画像生成装置400は、上述した図2の画像生成装置200の構成に、計時部410を加えたものとなっている。つまり、オブジェクト情報記憶部210〜画像描画部260の構成は、画像生成装置200と同等である。
【0066】
計時部410は、視界内に光源オブジェクトが入ってからの経過タイムを計時する。
例えば、計時部410は、位置管理部230に管理される光源オブジェクトの位置と、視点情報(位置及び方向)との関係から、視界内に光源オブジェクトが位置している(視点から光源オブジェクトが見える)かどうかを逐次判別し、光源オブジェクトが視界内に位置している状態で経過タイムをカウントアップする。
なお、計時部410は、光源オブジェクトが視界内から外れると、経過タイムをゼロクリアする。
【0067】
透明度算定部250は、計時部410にて計時されている経過タイムを考慮して、マスク画像のアルファ値を算定する。
例えば、上述したように、視界内における光源オブジェクトの配置状況に基づいて、アルファ値を算定した後に、経過タイムの値に応じて、アルファ値が小さくなるように(透明度が大きくなるように)補正する。
具体的には、図10のグラフに示すように、経過タイムに応じた減衰係数値(0.0〜1.0)を順次求め、この係数値をアルファ値に乗じることにより、アルファ値を時間経過に応じて小さくしていく。この図10に示すグラフは、一例であり、適宜変更可能である。
つまり、時間が経過するにつれて、視界画像の明度が徐々に上がるように(だんだん明るくなっていくように)、要するに、経過タイムが大きいほどアルファ値がより小さくなるように(透明度がより大きくなるように)補正する。
【0068】
以下、このような構成の画像生成装置400において実行される画像生成処理の流れを図11のフローチャートを参照して説明する。
なお、上述した図7の画像生成処理と同じ箇所には、同じ参照符号が付加されている。また、この画像生成処理も、例えば、ゲーム実行中において、描画サイクル毎(一例として、1/60秒毎)に、繰り返し実行されるものとする。
【0069】
まず、画像生成装置400は、視界内に配置されている各オブジェクトを特定し(ステップS301)、投影変換した画像を描画する(ステップS302)。つまり、画像描画部260は、視界内の各オブジェクトを特定し、特定した各オブジェクトを投影変換によりスクリーン画面に投影した投影画像を生成する。
画像生成装置400は、視界内に光源があるか否かを判別する(ステップS303)。つまり、視点から太陽オブジェクト等が見えているかどうかを判別する。
【0070】
画像生成装置400は、視界内に光源がないと判別すると(ステップS303;No)、経過タイムをクリアする(ステップS501)。
すなわち、計時部410は、カウントしていた経過タイムをゼロクリアする。
そして、画像生成装置400は、画像生成処理を終了する。つまり、投影変換した画像をそのまま表示画像とする。
【0071】
一方、視界内に光源があると判別した場合に(ステップS303;Yes)、画像生成装置400は、経過タイムが基準値を超えているか否かを判別する(ステップS502)。
画像生成装置400は、経過タイムが基準値を超えていると判別すると(ステップS502;Yes)、画像生成処理を終了する。つまり、視界画像の明度を下げる必要のないほど時間が経過している場合、投影変換した画像をそのまま表示画像とする。
【0072】
一方、経過タイムが基準値を超えていないと判別した場合に(ステップS502;No)、画像生成装置400は、光源オブジェクトをバッファに描画し、マスク画像を生成する(ステップS304)。つまり、上述した図3(b)に示すようなマスク画像を生成する。
【0073】
画像生成装置400は、経過タイムも考慮しつつアルファ値を算定し、マスク画像に設定する(ステップS503)。
すなわち、透明度算定部250は、まず、視点から光源オブジェクトまでの方向と視点方向とのなす角度、及び、光源オブジェクトの遮蔽割合等に基づいて、マスク画像のアルファ値を算定する。
その後、透明度算定部250は、経過タイムの値に応じて、アルファ値が小さくなるように(透明度が大きくなるように)補正する。
すなわち、透明度算定部250は、上述した図10のグラフに示すように、経過タイムに応じた減衰係数(0.0〜1.0)を求め、この係数値をアルファ値に乗じることにより、アルファ値を補正する。これにより、アルファ値は、経過タイムが大きいほどより小さくなるように(透明度がより大きくなるように)補正される。
【0074】
画像生成装置400は、投影変換した画像にマスク画像を合成する(ステップS306)。つまり、画像描画部260は、投影変換した画像に、アルファ値が設定されたマスク画像を合成することにより、表示画像(視界画像)を描画する。
【0075】
そして、画像生成装置400は、経過タイムを加算した(ステップS504)後に、画像生成処理を終える。
【0076】
このような、画像生成処理により、経過タイムが増えるにつれて、視界画像の明度が徐々に上がるように(だんだん明るくなっていくように)表示されるようになる。
例えば、視界の中心近くに光源オブジェクト(太陽オブジェクト)がある場面で、経過タイムが小さいと、図12(a)に示すように、かなり暗い視界画像が描画される。そして、そのまま時間が経過していくと(経過タイムが増加していくと)、図12(b)に示すように、薄暗い視界画像が描画される(だんだん暗さが薄くなっていく)。さらに、時間が経過していくと(経過タイムが基準値を超えると)、図12(c)に示すように、マスク画像を合成しない視界画像が描画される。
このため、最初暗い視界画像が描画されていても、そのまま時間が経過するに連れて、だんだん暗さが薄くなっていくため、プレイヤの目がだんだん慣れてきたように感じさせることができる。
この結果、光源の眩しさを、よりリアリティを高めて表現することができる。
【0077】
以上説明したように、本発明によれば光源の眩しさを適切に表現することができる。
【図面の簡単な説明】
【0078】
【図1】本実施形態におけるゲーム装置の概要構成を示す模式図である。
【図2】本実施形態における画像生成装置の構成の一例を示す模式図である。
【図3】(a),(b)共に、マスク画像の形状を説明するための模式図である。
【図4】(a)が太陽オブジェクトへの方向と視線方向とのなす各角度θを説明するための模式図であり、(b)が角度θとアルファ値との関係を示すグラフであり、(c)がスクリーン画面と投影される太陽オブジェクトを説明するための模式図であり、(d)が、遮蔽割合と補正係数との関係を示すグラフである。
【図5】(a)がマスク画像の透明度(アルファ値)と明度との関係を示すグラフであり、(b)、(c)がアルファ値が設定されたマスク画像を説明するための模式図である。
【図6】(a),(b)共に、投影画像にマスク画像が合成される様子を説明するための模式図である。
【図7】本実施形態における画像生成処理の流れを示すフローチャートである。
【図8】(a),(b)共に、視界内における太陽オブジェクトの位置に応じて、視界画像の明度が異なる様子を説明するための模式図である。
【図9】他の実施形態における画像生成装置の構成の一例を示す模式図である。
【図10】経過タイムと減衰係数との関係を示すグラフである。
【図11】他の実施形態における画像生成処理の流れを示すフローチャートである。
【図12】(a)〜(c)共に、時間の経過に応じて、視界画像が明るくなっていく様子を説明するための模式図である。
【符号の説明】
【0079】
100 ゲーム装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 DVD−ROMドライブ
108 画像処理部
109 音声処理部
110 NIC
200,400 画像生成装置
210 オブジェクト情報記憶部
220 操作受付部
230 位置管理部
240 マスク画像生成部
250 透明度算定部
260 画像描画部
410 計時部
【特許請求の範囲】
【請求項1】
光源オブジェクトを含む複数のオブジェクトが配置された仮想空間を、所定の視点から眺めた視界画像を生成する画像生成装置であって、
光源オブジェクトを除いた視界画像の明度を調整するための所定形状の調整画像を生成する調整画像生成部と、
当該調整画像により調整させる明度を、視界内における光源オブジェクトの配置状況に基づいて算定する算定部と、
視界内に配置されている各オブジェクトの投影画像を生成し、当該投影画像に当該調整画像を合成した視界画像を描画する画像描画部と、を備える、
ことを特徴とする画像生成装置。
【請求項2】
光源オブジェクトを含む複数のオブジェクトが配置された仮想空間を、所定の視点から眺めた視界画像を生成する画像生成装置であって、
視点を基準とした視界全面から光源オブジェクトを除いたマスク画像を生成するマスク画像生成部と、
当該マスク画像に設定するための透明度を、視界内における光源オブジェクトの配置状況に基づいて算定する算定部と、
視界内に配置されている各オブジェクトを投影変換した投影画像を生成し、当該投影画像に透明度が設定された当該マスク画像を合成した視界画像を描画する画像描画部と、を備える、
ことを特徴とする画像生成装置。
【請求項3】
請求項2に記載された画像生成装置であって、
前記マスク画像生成部は、視界全面を覆う黒色の矩形画像から、視界内における光源オブジェクトの形状を切り抜くことにより、当該光源オブジェクトを除いたマスク画像を生成する、
ことを特徴とする画像生成装置。
【請求項4】
請求項2又は3に記載された画像生成装置であって、
前記算定部は、視点から光源オブジェクトへの方向と視線方向とのなす角に基づいて透明度を算定する、
ことを特徴とする画像生成装置。
【請求項5】
請求項4に記載された画像生成装置であって、
前記算定部は、光源オブジェクトが他のオブジェクトにより遮蔽されている場合に、遮蔽された割合を示す遮蔽割合に基づいて、算定した透明度を補正する、
ことを特徴とする画像生成装置。
【請求項6】
請求項2乃至5の何れか1項に記載された画像生成装置であって、
視界内に光源オブジェクトが配置されている状態の経過時間を計時する計時部を更に備え、
前記算定部は、計時される当該経過時間が増えるにつれて、透明度を順次増加させる、
ことを特徴とする画像生成装置。
【請求項7】
調整画像生成部、算定部、及び、画像描画部を有しており、光源オブジェクトを含む複数のオブジェクトが配置された仮想空間を、所定の視点から眺めた視界画像を生成する画像生成装置における画像生成方法であって、
前記調整画像生成部が、光源オブジェクトを除いた視界画像の明度を調整するための所
定形状の調整画像を生成する調整画像生成ステップと、
前記算定部が、当該調整画像により調整させる明度を、視界内における光源オブジェクトの配置状況に基づいて算定する算定ステップと、
前記画像描画部が、視界内に配置されている各オブジェクトの投影画像を生成し、当該投影画像に当該調整画像を合成した視界画像を描画する画像描画ステップと、を備える、
ことを特徴とする画像生成方法。
【請求項8】
コンピュータを、
光源オブジェクトを除いた視界画像の明度を調整するための所定形状の調整画像を生成する調整画像生成部、
当該調整画像により調整させる明度を、視界内における光源オブジェクトの配置状況に基づいて算定する算定部、
視界内に配置されている各オブジェクトの投影画像を生成し、当該投影画像に当該調整画像を合成した視界画像を描画する画像描画部、
として機能させることを特徴とするプログラム。
【請求項1】
光源オブジェクトを含む複数のオブジェクトが配置された仮想空間を、所定の視点から眺めた視界画像を生成する画像生成装置であって、
光源オブジェクトを除いた視界画像の明度を調整するための所定形状の調整画像を生成する調整画像生成部と、
当該調整画像により調整させる明度を、視界内における光源オブジェクトの配置状況に基づいて算定する算定部と、
視界内に配置されている各オブジェクトの投影画像を生成し、当該投影画像に当該調整画像を合成した視界画像を描画する画像描画部と、を備える、
ことを特徴とする画像生成装置。
【請求項2】
光源オブジェクトを含む複数のオブジェクトが配置された仮想空間を、所定の視点から眺めた視界画像を生成する画像生成装置であって、
視点を基準とした視界全面から光源オブジェクトを除いたマスク画像を生成するマスク画像生成部と、
当該マスク画像に設定するための透明度を、視界内における光源オブジェクトの配置状況に基づいて算定する算定部と、
視界内に配置されている各オブジェクトを投影変換した投影画像を生成し、当該投影画像に透明度が設定された当該マスク画像を合成した視界画像を描画する画像描画部と、を備える、
ことを特徴とする画像生成装置。
【請求項3】
請求項2に記載された画像生成装置であって、
前記マスク画像生成部は、視界全面を覆う黒色の矩形画像から、視界内における光源オブジェクトの形状を切り抜くことにより、当該光源オブジェクトを除いたマスク画像を生成する、
ことを特徴とする画像生成装置。
【請求項4】
請求項2又は3に記載された画像生成装置であって、
前記算定部は、視点から光源オブジェクトへの方向と視線方向とのなす角に基づいて透明度を算定する、
ことを特徴とする画像生成装置。
【請求項5】
請求項4に記載された画像生成装置であって、
前記算定部は、光源オブジェクトが他のオブジェクトにより遮蔽されている場合に、遮蔽された割合を示す遮蔽割合に基づいて、算定した透明度を補正する、
ことを特徴とする画像生成装置。
【請求項6】
請求項2乃至5の何れか1項に記載された画像生成装置であって、
視界内に光源オブジェクトが配置されている状態の経過時間を計時する計時部を更に備え、
前記算定部は、計時される当該経過時間が増えるにつれて、透明度を順次増加させる、
ことを特徴とする画像生成装置。
【請求項7】
調整画像生成部、算定部、及び、画像描画部を有しており、光源オブジェクトを含む複数のオブジェクトが配置された仮想空間を、所定の視点から眺めた視界画像を生成する画像生成装置における画像生成方法であって、
前記調整画像生成部が、光源オブジェクトを除いた視界画像の明度を調整するための所
定形状の調整画像を生成する調整画像生成ステップと、
前記算定部が、当該調整画像により調整させる明度を、視界内における光源オブジェクトの配置状況に基づいて算定する算定ステップと、
前記画像描画部が、視界内に配置されている各オブジェクトの投影画像を生成し、当該投影画像に当該調整画像を合成した視界画像を描画する画像描画ステップと、を備える、
ことを特徴とする画像生成方法。
【請求項8】
コンピュータを、
光源オブジェクトを除いた視界画像の明度を調整するための所定形状の調整画像を生成する調整画像生成部、
当該調整画像により調整させる明度を、視界内における光源オブジェクトの配置状況に基づいて算定する算定部、
視界内に配置されている各オブジェクトの投影画像を生成し、当該投影画像に当該調整画像を合成した視界画像を描画する画像描画部、
として機能させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−73005(P2010−73005A)
【公開日】平成22年4月2日(2010.4.2)
【国際特許分類】
【出願番号】特願2008−240884(P2008−240884)
【出願日】平成20年9月19日(2008.9.19)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】
【公開日】平成22年4月2日(2010.4.2)
【国際特許分類】
【出願日】平成20年9月19日(2008.9.19)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】
[ Back to top ]