説明

画像生成装置、画像生成方法、ならびに、プログラム

【課題】仮想空間内のオブジェクト同士の位置関係を明瞭に表現する。
【解決手段】記憶部201はキャラクタオブジェクトの位置と形状を示すキャラクタオブジェクト情報251と、面オブジェクトの位置と形状を示す面オブジェクト情報252と、光源の位置を示す光源情報253とを記憶する。計算部202はキャラクタオブジェクト情報251と面オブジェクト情報252と光源情報253とに基づいて、光源によって面オブジェクトに投影されるキャラクタオブジェクトの陰影を計算する。判別部203によりキャラクタオブジェクトと面オブジェクトが接していると判別されると、変化部204はキャラクタオブジェクトと面オブジェクトとの距離に応じて陰影の明度を変化させる。生成部205はキャラクタオブジェクトと面オブジェクトと陰影とを表す画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間内のオブジェクト同士の位置関係を明瞭に表現するために好適な画像生成装置、画像生成方法、ならびに、プログラムに関する。
【背景技術】
【0002】
仮想空間において光源から発せられる光によって投影されるオブジェクトの影を表現する手法が知られている。例えば、特許文献1には、キャラクタオブジェクトと仮想カメラの位置との距離に基づいてキャラクタオブジェクトの影を表現するためのポリゴン数を変化させ、また、光源の位置に基づいてポリゴンの透明度を変化させることにより、データ量の増大を抑えつつ影を表現することができるゲーム装置が開示されている。
【特許文献1】特許第3926828号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
上記のようなゲーム装置では、キャラクタオブジェクトの姿勢の変化に応じて影の様子も変化するので、よりリアリティのある画像を生成して表示することができる。しかし、キャラクタオブジェクトが細かい動きをする場合には、オブジェクト同士の位置関係が分かりづらくなることがある。例えば、仮想のダンサーがダンスのステップを踏む様子を表現したい場合、床に足が着いた状態と着いていない状態が頻繁に繰り返されると、ユーザは現在ダンサーの足が着いているか否かが判断しづらくなり、ダンサーがどのような動きをしているのか分かりづらくなってしまうことがあった。また、ダンスに限らず、奥行きのある3次元仮想空間を表現する場合、例えばオブジェクト自身の画像が障壁となってしまい、視点となる仮想カメラ視点の位置からはオブジェクト同士が接しているのか否かや、どの程度近づいているのかといった相対的な位置関係が分かりにくくなってしまうことがあった。
【0004】
本発明はこのような課題を解決するものであり、仮想空間内のオブジェクト同士の位置関係を明瞭に表現するために好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0006】
本発明の第1の観点に係る画像生成装置は、記憶部、陰影計算部、距離計算部、変化部、生成部を備える。
記憶部は、仮想空間内のキャラクタオブジェクトの位置と、面オブジェクトの位置と、光源の位置と、を記憶する。
陰影計算部は、当該光源によって当該面オブジェクトへ投影される当該キャラクタオブジェクトの陰影を計算する。
距離計算部は、当該キャラクタオブジェクトと当該面オブジェクトとの距離を計算する。
変化部は、計算された陰影を、計算された当該キャラクタオブジェクトと当該面オブジェクトとの距離に応じて変化させる。
生成部は、当該キャラクタオブジェクトと、当該面オブジェクトと、変化された当該陰影と、を描画した画像を生成する。
このように画像生成装置を構成することにより、生成される画像に含まれるキャラクタオブジェクトの陰影は、キャラクタオブジェクトと面オブジェクトとの距離に応じて変化する。ユーザは、注目しているオブジェクトの影の変化を見れば、そのオブジェクトと他のオブジェクトがどの程度離れているか(近づいているか)といった位置関係を容易に判断することができ、仮想空間における距離感を掴みやすくなる。
例えば、ステップを踏むダンサーを表すオブジェクトをキャラクタオブジェクトとし、そのダンサーが立っている床を面オブジェクトとし、照明器具を光源とする。ダンサーがジャンプすると、変化部は、ジャンプの高さに応じて、照明によるダンサーの影を変化させる。ユーザは、影の変化の具合を見れば、ダンサーがどのくらいジャンプしたのかを容易に把握できる。例えば、精密な光源計算を行って陰影を計算することができるが、陰影が現れるおおよその領域(陰影領域)を計算し、計算した陰影領域を陰影として扱ってもよい。
【0007】
記憶部は、当該キャラクタオブジェクトの形状と、当該面オブジェクトの形状とを更に記憶してもよい。
また、画像生成装置は、記憶された当該キャラクタオブジェクトの位置と形状と、記憶された当該面オブジェクトの位置と形状とに基づいて、当該キャラクタオブジェクトが当該面オブジェクトと所定距離以上離れているか否かを判別する判別部を更に備えてもよい。
そして、変化部は、判別部により当該キャラクタオブジェクトが当該面オブジェクトと所定距離以上離れていると判別された場合、計算された陰影を、計算された当該キャラクタオブジェクトと当該面オブジェクトとの距離に応じて変化させてもよい。
このように画像生成装置を構成することにより、キャラクタオブジェクトと面オブジェクトが所定距離まで近づけば、キャラクタオブジェクトの影が変化する。ユーザは、注目しているオブジェクトの影が変化すれば、他のオブジェクトと所定距離まで近づいたことが分かり、オブジェクト同士の位置関係を容易に把握することができる。
例えば、ダンサーが足を上げると、変化部は、ある高さより高く足を上げると、上げた高さに応じて、照明によるダンサーの影を変化させる。ユーザは、影の変化の具合を見れば、ダンサーがどのくらい足を上げたのかを容易に把握できる。
【0008】
判別部は、当該キャラクタオブジェクトが当該面オブジェクトと所定距離以上離れている場合、当該キャラクタオブジェクトが当該面オブジェクトと接していないと判別し、それ以外の場合、当該キャラクタオブジェクトが当該面オブジェクトと接していると判別してもよい。
そして、変化部は、判別部により当該キャラクタオブジェクトが当該面オブジェクトと接していないと判別された場合、計算された陰影を、計算された当該キャラクタオブジェクトと当該面オブジェクトとの距離に応じて変化させてもよい。
このように画像生成装置を構成することにより、キャラクタオブジェクトと面オブジェクトが接触していなければ、キャラクタオブジェクトの影が変化する。ユーザは、注目しているオブジェクトの影が変化すれば、他のオブジェクトと接触したことが分かり、オブジェクト同士の位置関係を容易に把握することができる。
例えば、ダンサーの足が少しでも床から離れると、変化部は、離れた距離に応じて、照明によるダンサーの影を変化させる。ユーザは、影の変化の具合を見れば、ダンサーの足が床に着いているか否かを容易に把握できる。また、ダンサーの足が床からどれくらい浮いているかを容易に把握できる。
【0009】
判別部は、当該キャラクタオブジェクトの表面の所定領域が当該面オブジェクトと接しているか否かにより、当該キャラクタオブジェクトと当該面オブジェクトが接しているか否かを判別してもよい。
そして、変化部は、当該所定領域と当該面オブジェクトとの距離を、当該キャラクタオブジェクトと当該面オブジェクトとの距離としてもよい。
このように画像生成装置を構成することにより、キャラクタオブジェクトの表面のうちの特定部分が面オブジェクトと接していなければ、キャラクタオブジェクトの影が変化する。ユーザは、注目しているオブジェクトの影を見れば、特定部分が他のオブジェクトと接触したことが分かり、オブジェクト同士の位置関係を容易に把握することができる。
例えば、ダンサーの足裏(靴裏)を特定部分とすると、変化部は、足裏が床と接していなければ、ダンサーの影を変化させる。ユーザは、影の変化の具合を見れば、ダンサーの足裏(靴裏)全体が床に着いているか否かを容易に把握できる。
【0010】
変化部は、計算された陰影の色相、彩度、明度のうち少なくともいずれか一つを変化させてもよい。
例えば、キャラクタオブジェクトの陰影の色相、彩度、明度は、キャラクタオブジェクトと面オブジェクトとの距離に応じて変化する。ユーザは、注目しているオブジェクトの影の色相又は彩度又は明度の変化を見れば、そのオブジェクトと他のオブジェクトがどの程度離れているか(近づいているか)といった位置関係を容易に判断することができ、仮想空間における距離感を掴みやすくなる。
【0011】
画像生成装置は、音楽を再生する再生部を更に備えてもよい。
そして、変化部は、計算された陰影を、再生部によって再生される音楽のジャンル、テンポ、旋律、曲調、リズム、拍子のうち少なくともいずれか一つに応じて変化させてもよい。
例えば、ユーザが音楽に合わせてダンスをしたり楽器を演奏したりするゲームにおいて、演奏する曲に応じて影の変化の仕方をアレンジすることができる。
【0012】
変化部は、計算された陰影を、当該画像生成装置で実行されるゲームにおいてプレイヤーが獲得した点数に応じて変化させてもよい。
例えば、画像生成装置は、プレイヤーがゲームで獲得した点数が多い(少ない)ほどキャラクタオブジェクトの陰影を大きく変化させるので、プレイヤーは影の変化の度合いを見れば自分のスコアが高いか低いかをすぐに確認することができる。
【0013】
変化部は、計算された陰影領域のうち当該所定領域に対応する部分の明度を、当該面オブジェクトと当該所定領域との距離に対して単調増加させてもよい。
このように画像生成装置を構成することにより、ユーザは、キャラクタオブジェクトの影の変化の大きさを見れば、変化の度合いによってオブジェクト同士がどの程度離れているのか、あるいは接触しているのか否かを容易に把握できる。
例えば、ダンサーの足が床から大きく離れているほど、ダンサーの影が明るくなる。ユーザは、影の明るさを見れば、足が床からどの程度離れているかを容易に把握できる。
【0014】
変化部は、計算された陰影のうち当該所定領域に対応する部分の明度を、当該面オブジェクトと当該所定領域との距離に対して単調減少させてもよい。
このように画像生成装置を構成することにより、ユーザは、キャラクタオブジェクトの影の変化の大きさを見れば、変化の度合いによってオブジェクト同士がどの程度離れているのか、あるいは接触しているのか否かを容易に把握できる。
例えば、ダンサーの足が床に近いほど、ダンサーの影が明るくなる。ユーザは、影の明るさを見れば、足が床からどの程度離れているかを容易に把握できる。
【0015】
本発明のその他の観点に係る画像生成方法は、記憶部、陰影計算部、距離計算部、変化部、生成部を備える画像生成装置にて実行される画像生成方法であって、陰影計算ステップ、距離計算ステップ、変化ステップ、生成ステップを備える。
記憶部には、仮想空間内のキャラクタオブジェクトの位置と、面オブジェクトの位置と、光源の位置と、が記憶される。
陰影計算ステップは、陰影計算部が、当該光源によって当該面オブジェクトへ投影される当該キャラクタオブジェクトの陰影を計算する。
距離計算ステップは、距離計算部が、当該キャラクタオブジェクトと当該面オブジェクトとの距離を計算する。
変化ステップは、変化部が、計算された陰影を、計算された当該キャラクタオブジェクトと当該面オブジェクトとの距離に応じて変化させる。
生成ステップは、生成部が、当該キャラクタオブジェクトと、当該面オブジェクトと、変化された当該陰影と、を描画した画像を生成する。
このように画像生成方法を構成することにより、この画像生成方法を用いた画像生成装置は、生成する画像に含まれるキャラクタオブジェクトの陰影は、キャラクタオブジェクトと面オブジェクトとの距離に応じて変化させる。ユーザは、注目しているオブジェクトの影の変化を見れば、そのオブジェクトと他のオブジェクトがどの程度離れているか、どの程度近づいているかといった位置関係を容易に判断することができ、仮想空間における距離感を掴みやすくなる。
【0016】
本発明のその他の観点に係るプログラムは、コンピュータを、記憶部、陰影計算部、距離計算部、変化部、生成部として機能させる。
記憶部は、仮想空間内のキャラクタオブジェクトの位置と、面オブジェクトの位置と、光源の位置と、を記憶する。
陰影計算部は、当該光源によって当該面オブジェクトへ投影される当該キャラクタオブジェクトの陰影を計算する。
距離計算部は、当該キャラクタオブジェクトと当該面オブジェクトとの距離を計算する。
変化部は、計算された陰影を、計算された当該キャラクタオブジェクトと当該面オブジェクトとの距離に応じて変化させる。
生成部は、当該キャラクタオブジェクトと、当該面オブジェクトと、変化された当該陰影と、を描画した画像を生成する。
このようにプログラムを構成することにより、このプログラムを実行するコンピュータは、生成する画像に含まれるキャラクタオブジェクトの陰影の色相、彩度、明度を、キャラクタオブジェクトと面オブジェクトとの距離に応じて変化させる。ユーザは、注目しているオブジェクトの影を見れば、そのオブジェクトと他のオブジェクトがどの程度離れているか、どの程度近づいているかといった位置関係を容易に判断することができ、仮想空間における距離感を掴みやすくなる。
【発明の効果】
【0017】
本発明によれば、仮想空間内のオブジェクト同士の位置関係を明瞭に表現することができる。
【発明を実施するための最良の形態】
【0018】
本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0019】
図1は、プログラムを実行することにより、本発明の画像生成装置の機能を果たす典型的な情報処理装置100の概要構成を示す模式図である。以下、本図を参照して説明する。
【0020】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラ105と、外部メモリ106と、DVD−ROM(Digital Versatile Disk - Read Only Memory)ドライブ107と、画像処理部108と、音声処理部109と、NIC(Network Interface Card)110と、を備える。
【0021】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ107に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の画像生成装置が実現される。
【0022】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0023】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0024】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0025】
インターフェース104を介して接続されたコントローラ105は、ユーザがダンスゲームやサッカーゲームなどのゲームの実行の際に行う操作入力を受け付ける。
【0026】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲームのプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワークを用いたゲームのチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0027】
DVD−ROMドライブ107に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ107は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0028】
画像処理部108は、DVD−ROMから読み出されたデータをCPU 101や画像処理部108が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部108が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部108に接続されるモニター(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0029】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やアルファブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0030】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0031】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0032】
また、ゲームの画像などの情報をDVD−ROMに用意しておき、これをフレームメモリに展開することによって、ゲームの様子などを画面に表示することができるようになる。
【0033】
音声処理部109は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0034】
音声処理部109では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM(Adaptive Differential Pulse Code Modulation)形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0035】
NIC 110は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0036】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ107に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0037】
次に、本実施形態の画像生成装置200の機能的な構成について説明する。図2に示すように、画像生成装置200は、記憶部201、計算部202、判別部203、変化部204、生成部205を備える。
【0038】
図3に示すように、仮想空間内にはキャラクタオブジェクト301と面オブジェクト302が配置される。本図は、この仮想空間内に配置された仮想カメラ(図示せず)から見た様子を表している。例えば、ダンスゲームにおいて、キャラクタオブジェクト301はプレイヤー(画像生成装置200のユーザ)にダンスを教えるインストラクターを表すオブジェクトであり、面オブジェクト302はインストラクターが立っている床やステージを表すオブジェクトである。仮想空間内には、その他のオブジェクトが配置されていてもよい。
【0039】
さらに、この仮想空間内には光源303が配置される。キャラクタオブジェクト301や面オブジェクト302などに光源303から光が照射されると、面オブジェクト302の表面には、光源303からの光によるキャラクタオブジェクト301の陰影304が陰影領域305に映る。例えば、光源303は仮想空間内の照明器具や太陽などである。
【0040】
本発明をより理解しやすくするために、本実施形態では光源303を点光源とする。ただし、光源303は、線光源、面光源、あるいは任意の立体的な形状をもつ光源であってもよい。
【0041】
なお、CPU 101は、陰影領域305の色相、彩度、明度を変化させ、例えば黒やグレーにしたり相対的に暗くしたりすることによって、陰影領域305を陰影304としてもよい。例えば、図4(a)は、キャラクタオブジェクト301が面オブジェクト302と接している状態の一例を表す図である。図4(b)は、キャラクタオブジェクト301が面オブジェクト302と接していない(離れている)状態の一例を表す図である。CPU 101は、陰影領域305の形状を楕円に固定し、キャラクタオブジェクト301の位置と形状、面オブジェクト302の位置と形状、光源303の位置に基づいて、この楕円の位置を移動したり、楕円を拡大・縮小・回転させたりする。このように陰影領域305を陰影304にすれば、画像生成装置200は、光源計算を正確に行う必要はなく、陰影304の位置と形状を計算しなくて済み、後述する画像を生成する処理を簡略化できる。勿論、形状は楕円に限られず、任意の図形にすることができる。
【0042】
以下、画像生成装置200がプレイヤーにダンスの振りなどを教えるゲームを実行し、ゲーム進行に応じてダンスのインストラクターを含む画像を生成して表示する場面を想定して説明する。ただし、これは一つの実施形態に過ぎず、ダンスゲーム以外のその他のゲームに登場する任意のキャラクタ画像を表示するためにも本発明を用いることができる。また、ゲームに限らず、様々なアニメーションや映画等の画像を生成するために本発明を用いることもできる。
【0043】
記憶部201は、(A)キャラクタオブジェクト301の位置と形状を示すキャラクタオブジェクト情報251と、(B)面オブジェクト302の位置と形状を示す面オブジェクト情報252と、(C)光源303の位置を示す光源情報253と、を記憶する。CPU 101は、キャラクタオブジェクト301と面オブジェクト302の初期位置と初期形状、及び、光源303の初期位置をDVD−ROMドライブに装着されたDVD−ROMから読み出してRAM 103に記憶し、ゲームの進行に応じてこれらの位置と形状を計算して、キャラクタオブジェクト情報251と面オブジェクト情報252と光源情報253を更新する。CPU 101、RAM 103、DVD−ROMドライブ107が協働して動作することにより、記憶部201として機能する。
【0044】
キャラクタオブジェクト301と面オブジェクト302と光源303の位置は、それぞれ、1個の動径と2個の偏角を用いた極座標系を用いて、各オブジェクト内の代表点の座標(r,θ,φ)で表される。例えば、キャラクタオブジェクト301の重心点の座標値が、キャラクタオブジェクト301の代表点の位置を示す座標値となる。ただし、座標系はこれに限られるものではなく、例えば互いに直交する3軸による直交座標系を用いてもよい。また、仮想空間の全体を表現するグローバル座標系(ワールド座標系)と、オブジェクトごとのローカル座標系(ボディ座標系)とを別々に設定して座標計算等を行う構成を採用してもよい。
【0045】
キャラクタオブジェクト301と面オブジェクト302の形状は、それらの表面を微小な多角形(典型的には三角形や四角形など)のポリゴン(プリミティブ)に分割して、数値データ化されて表される。
【0046】
例えば、面オブジェクト302を平面とすると、面オブジェクト302上の任意の少なくとも3点の座標値を用いて、面オブジェクト302の位置を定義することができる。ただし、面オブジェクト302の形状は平面に限られず、任意の形状の曲面でもよい。
【0047】
計算部202は、陰影計算部211と距離計算部212を備える。陰影計算部211は、光源303から照射される光によるキャラクタオブジェクト301の陰影304が面オブジェクト302へ投射される陰影領域305の位置を計算する。画像処理部108は、CPU 101の制御により、キャラクタオブジェクト情報251と、面オブジェクト情報252と、光源情報253とに基づいて、面オブジェクト302へ投影される陰影領域305の位置を計算して、計算結果をRAM 103に記憶する。また、距離計算部212は、キャラクタオブジェクト301と面オブジェクト302との距離δを計算して、計算結果をRAM 103に記憶する。距離δの詳細については後述する。CPU 101、RAM 103、画像処理部108が協働して動作することにより、計算部202として機能する。
【0048】
図5(a)は、キャラクタオブジェクト301内に予め定義した所定領域501と面オブジェクト302とが接していない状態を表す図の一例である。本例では、ヒト型のキャラクタオブジェクト301が片足を上げている。所定領域501は、キャラクタオブジェクト301の足裏(靴裏)に相当する部分である。一方、上述の図3は、キャラクタオブジェクト301内の所定領域501と面オブジェクト302が接している状態を表す図の一例である。
【0049】
なお、陰影計算部211は、陰影領域305の位置を計算する代わりに、面オブジェクト302へ投影されるキャラクタオブジェクト301の陰影304の位置と形状を計算し、陰影領域305内の所定領域501の陰影502(図5(a)の斜線で塗った部分)の位置を計算してもよい。このようにすれば、影の形がより正確に表現されるので、リアリティのある画像を生成することができる。
【0050】
本実施形態では、距離計算部212は、キャラクタオブジェクト301と面オブジェクト302との距離δとして、所定領域501と面オブジェクト302との距離を計算する。
【0051】
所定領域501は、1つのキャラクタオブジェクト301について複数箇所存在してもよい。例えば、図5(a)では、片足の足裏を所定領域501としているが、両足の足裏をそれぞれ所定領域501としてもよい。所定領域501はキャラクタオブジェクト301の表面に予め設定された領域であり、キャラクタオブジェクト301の表面の任意の領域(例えば手のひらなど)を所定領域501に設定することができる。
【0052】
判別部203は、記憶部201に記憶されたキャラクタオブジェクト301の位置と形状と、面オブジェクト302の位置と形状とに基づいて、キャラクタオブジェクト301が面オブジェクト302と接しているか否かを判別する。CPU 101、RAM 103、画像処理部108が協働して動作することにより、判別部203として機能する。
【0053】
具体的には、判別部203は、キャラクタオブジェクト301内の所定領域501が面オブジェクト302と接しているか否かにより、キャラクタオブジェクト301と面オブジェクト302が接しているか否かを判別する。
【0054】
ここで、図5(b)に示すように、判別部203は、所定領域501に含まれるある点P1の座標と、面オブジェクト302上の点Q1の座標とが一致すれば、点P1と面オブジェクト302は「接している」と判別する。点P1として所定領域501上の任意の点を選ぶことができ、点Q1として面オブジェクト上の任意の点を選ぶことができる。あるいは、一致しなくても、点P1から点Q1までの距離DPQが所定値以内であれば、接しているとしてもよい。すなわち、所定領域501内の点P1の座標と面オブジェクト302上の点Q1の座標が一致するか、あるいは点P1から点Q1までの距離が所定値以内である場合、点P1と面オブジェクト302は接している。
【0055】
さらに、判別部203は、所定領域501内のN個(Nは1以上の整数)の所定の点P1,P2,…,PNのうち1つでも面オブジェクト302と接している場合、所定領域501と面オブジェクト302が接していると判別する。一方、所定の点P1,P2,…,PNのすべてが面オブジェクト302と接していない場合、判別部203は、所定領域501と面オブジェクト302が接していないと判別する。
【0056】
例えば、キャラクタオブジェクト301がダンスのインストラクターであり、面オブジェクト301がインストラクターの立っている床であり、所定領域501がキャラクタオブジェクト301の表面全体のうちインストラクターの足裏(靴裏)に相当する部分であるとする。判別部203は、所定領域501がその一部分でも面オブジェクト302と接していれば、キャラクタオブジェクト301と面オブジェクト302が接していると判別する。図4(b)のようにインストラクターがジャンプして宙に浮いた状態では、判別部203は、インストラクター(キャラクタオブジェクト301)と床(面オブジェクト302)が接していない、と判別する。また、インストラクターがつま先だけで着地した状態では、判別部203は、インストラクターと床が接している、と判別する。
【0057】
あるいは、判別部203は、所定領域501内のN個の点の全部が面オブジェクト302と接していれば、所定領域501と面オブジェクト302は接していると判別し、そうでなければ接していないと判別してもよい。
【0058】
例えば、判別部203は、所定領域501の一部分が面オブジェクト302と接していない、すなわち、所定領域501全体が面オブジェクト302と接しているのでないならば、キャラクタオブジェクト301と面オブジェクト302が接していない(離れている)と判別するように構成してもよい。この場合、例えばインストラクターがジャンプして宙に浮いた状態では、判別部203は、インストラクターと床が接していない、と判別する。また、インストラクターがつま先だけで着地した状態でも、判別部203は、インストラクターと床が接していない、と判別する。そして、インストラクターが足裏全体で着地した状態では、判別部203は、インストラクターと床が接している、と判別する。
【0059】
また、判別部203は、所定領域501内のN個の点のうち、所定の割合以上(例えば50%以上など)の点が面オブジェクト302と接していれば、所定領域501と面オブジェクト302は接していると判別し、そうでなければ接していないと判別してもよい。また、所定領域501のうち所定の面積以上の領域が面オブジェクト302と接していれば、所定領域501と面オブジェクト302は接していると判別し、そうでなければ接していないと判別してもよい。
【0060】
これらのいずれの判別手法を採用してもよいが、本実施形態では、判別部203は、所定領域501の一部分でも面オブジェクト302と接していれば、キャラクタオブジェクト301と面オブジェクト302は接していると判別することとする。
【0061】
キャラクタオブジェクト301に複数の所定領域501を設定する場合、それらの所定領域501のうちいずれか1つでも面オブジェクト302と接しているか否かを判別すればよい。ただし、すべての所定領域501が面オブジェクト302と接しているか否かを判別することとしてもよい。
【0062】
変化部204は、キャラクタオブジェクト301が面オブジェクト302と接していないと判別部203により判別された場合、陰影計算部211により計算された陰影領域305の色相(H)、彩度(S)、明度(B)のうち少なくともいずれか1つを、距離計算部212により計算されたキャラクタオブジェクト301と面オブジェクト302との距離δに応じて変化させる。CPU 101、RAM 103、画像処理部108が協働して動作することにより、変化部204として機能する。
【0063】
キャラクタオブジェクト301と面オブジェクト302との距離δとは、図5(a)に示すように、所定領域501内の所定の代表点から面オブジェクト302の表す面に下ろした垂線の長さである。典型的には代表点は所定領域501の重心点である。また、所定領域501に含まれるすべての点のうち、最も面オブジェクト302に近い点から、面オブジェクト302の表す面に下ろした垂線の長さを、距離δとしてもよい。
【0064】
例えば、変化部204は、陰影領域305の色相と彩度と明度のうち少なくともいずれか1つを、キャラクタオブジェクト301と面オブジェクト302との距離δに対して単調増加させる。図6(a)〜(d)は、変化させる対象として明度を採用し、キャラクタオブジェクト301と面オブジェクト302との距離δと、明度Bと、の関係の例を示す図である。明度はBmin%以上Bmax%以下の値を取る。最小値Bminと最大値Bmaxは、0%以上100%以下であって、Bmin<Bmaxを満たす任意の値に設定できる。
【0065】
図6(a)では、変化部204は、所定領域501の陰影502の明度を、キャラクタオブジェクト301と面オブジェクト302との距離δに比例して増加させる。ある距離(図示せず)で明度が最大値Bmaxに達すると、それ以上の距離では明度は最大値Bmaxで一定となる。
図6(b)では、変化部204は、距離δが長くなるほど明度の増加率を小さくする。明度は最終的に最大値Bmaxに収束する。
図6(c)では、変化部204は、明度の増加率を変化させる。増加率は0以上の実数である。
図6(d)では、変化部204は、階段関数を用いて明度を変化させる。全体として、距離δが増加するにしたがって明度が大きくなる傾向にあればよく、明度が一定となる区間(増加率がゼロとなる区間)があってもよい。
【0066】
例えば、変化部204は、陰影領域305の色相と彩度と明度のうち少なくともいずれか1つを、キャラクタオブジェクト301と面オブジェクト302との距離δに対して単調減少させてもよい。図7(a)〜(d)は、変化させる対象として明度を採用し、キャラクタオブジェクト301と面オブジェクト302との距離δと、明度Bと、の関係の例を示す図である。
【0067】
図7(a)では、変化部204は、所定領域501の陰影502の明度を、キャラクタオブジェクト301と面オブジェクト302との距離δに比例して減少させる。ある距離(図示せず)で明度が最小値Bminになると、それ以上の距離では明度は最小値Bminで一定となる。
図7(b)では、変化部204は、距離δが長くなるほど明度の減少率を小さくする。明度は最終的に最小値Bminに収束する。
図7(c)では、変化部204は、明度の減少率を変化させる。減少率は0以上の実数である。
図7(d)では、変化部204は、階段関数を用いて明度を変化させる。全体として、距離δが増加するにしたがって明度が小さくなる傾向にあればよく、明度が一定となる区間(減少率がゼロとなる区間)があってもよい。
【0068】
変化部204は、ゲームの進行状況、ゲームの種類、難易度、プレイヤーの成績など様々な数値パラメータに応じて、図6(a)〜(d)、図7(a)〜(d)のそれぞれに示す関数を使い分けることができる。
【0069】
例えば、画像生成装置は、DVD−ROM等に予め記憶された音楽データを読み出して再生する再生部を更に備え、音楽に合わせてプレイヤーがダンスをしたり曲を演奏したりする音楽ゲームを実行する。そして、キャラクタオブジェクト301は、再生される音楽にあわせてダンスを踊ったりポーズをとったりする。変化部204は、このようなダンスなどの音楽ゲームにおいて、再生部が再生する曲のテンポに応じて上述の関数を使い分ける。テンポが速い曲ではインストラクター(キャラクタオブジェクト301)は足(所定領域501)を素早く動かし、逆にテンポが遅い曲では足をゆっくり動かすことが予想される。足の動きが速いと、頻繁に床に足が着いたり離れたりするので、プレイヤーは瞬時に判断しなければならない。このため、テンポが速い曲では、図7(a)〜(d)に示すように、足が床に近いときに影を比較的大きく変化させる。テンポが遅い曲では、図6(a)〜(d)に示すように、足が床から遠いときに影を比較的大きく変化させる。また、テンポがどの程度速いかによって、図7(a)〜(d)のどれを採用するかを決めてもよいし、テンポがどの程度遅いかによって、図6(a)〜(d)のどれを採用するかを決めてもよい。曲のテンポに限らず、ポップス・ジャズ・クラシックなどのジャンルによって使い分けてもよいし、さらには、曲の旋律、曲調、リズム、拍子によって使い分けてもよい。
【0070】
例えば、プレイヤーの操作履歴に応じて関数を使い分ける。変化部204は、インストラクターの指示通りにプレイヤーが操作できている(つまり成績が良い)場合には、図6(a)〜(d)に示すように、足が床に近いときには小さく変化させ、足が床から遠いときには大きく変化させる。逆にインストラクターの指示通りに操作できていない(つまり成績が良くない)場合には、図7(a)〜(d)に示すように、足が床に近いときには大きく変化させ、足が床から遠いときには小さく変化させる。変化部204は、プレイヤーの獲得点数、ゲーム回数、プレイ時間、勝敗数、勝敗率、対戦成績などに応じて、図6(a)〜(d)、図7(a)〜(d)に示すような関数を使い分けることができる。
【0071】
例えば、プレイヤーの操作履歴から、足を床から離すタイミングを重点的に教えることが相応しいと推測される場合には、図7(a)〜(d)に示すように単調減少させ、足を上げる高さを重点的に教えることが相応しいと推測される場合には、図6(a)〜(d)に示すように単調増加させる。変化部204は、足を床から離すタイミングにおけるプレイヤーの獲得点数が基準点数より高ければ単調増加させ、獲得点数が基準点数より低ければ単調減少させる。また、変化部204は、足を床から高い位置に維持するタイミングにおけるプレイヤーの獲得点数が基準点数より高ければ単調減少させ、獲得点数が基準点数より低ければ単調増加させる。
【0072】
変化部204が陰影領域305の明度を変化させると、インストラクターの影は距離Dによって明るくなったり暗くなったりする。つまり、インストラクター(キャラクタオブジェクト301)が高くジャンプする(距離δが長くなる)ほど、インストラクターの影(陰影領域305)は明るくなる。プレイヤーは、影の明るさの違いによって、インストラクターの足が床からどの程度離れているかを容易に知ることができるようになる。同様に、色相や彩度を距離δによって変化させれば、影の色合いや鮮やかさ等の違いによって、インストラクターの足が床からどの程度離れているかを容易に知ることができる。
【0073】
変化部204は、陰影領域305全体の色相、彩度、明度の代わりに、陰影領域305のうち所定領域501の陰影502の色相、彩度、明度を、距離δによって変化させてもよい。例えば、インストラクターの両足裏をそれぞれ所定領域501とした場合、変化部204はそれぞれの足の影の色相、彩度、明度を変化させるので、プレイヤーはどちらの足がどのくらい床から離れているかを容易に判断することができる。
【0074】
生成部205は、キャラクタオブジェクト301の位置と形状、面オブジェクト302の位置と形状、及び光源303の位置に基づいて、キャラクタオブジェクト301と面オブジェクト302を含む画像を生成する。この画像には、光源303によって面オブジェクト302に投影されるキャラクタオブジェクト301の影の画像(陰影領域305)も含まれる。生成部205は、生成する画像中の陰影領域305を、変化部204により変化された色相、彩度、明度で描画する。つまり、CPU 101の制御により、画像処理部108が、キャラクタオブジェクトの301の表面に所定のキャラクタオブジェクト用テクスチャデータを貼り付け、面オブジェクト302の表面に所定の面オブジェクト用テクスチャデータを貼り付けて画像を生成する。さらに、計算部202によって計算された位置に陰影領域305を設定し、生成された画像のうち陰影領域305の色相、彩度、明度を変化させる。なお、それぞれのテクスチャデータは、DVD−ROM等に予め格納されている。CPU 101、RAM 103、画像処理部108が協働して動作することにより、生成部205として機能する。
【0075】
次に、上述の各部が協働して行う画像生成処理について、図8のフローチャートを用いて説明する。以下の説明では、一例として、キャラクタオブジェクト301をダンスのインストラクターとし、面オブジェクト302を床とする。また、インストラクターの一方の足裏を所定領域501とする。インストラクターは床の上でダンスを踊り、足が床から離れることがある。画像生成装置200は、床から足裏までの距離に応じてインストラクターの影(陰影領域305)の明度を変化させた画像を生成する。上述したように、陰影計算部211は、キャラクタオブジェクト301の位置と形状、面オブジェクト302の位置と形状、及び、光源303の位置に基づいて、より詳細な光源計算を行って陰影304を計算することができるが、以下の説明では、陰影計算部211は、陰影304が現れるおおよその領域として陰影領域305を計算し、計算した陰影領域305を陰影304として扱うものとする。
【0076】
まず、計算部202は、キャラクタオブジェクト301の位置と形状を示すキャラクタオブジェクト情報251と、面オブジェクト302の位置と形状を示す面オブジェクト情報252と、光源303の位置を示す光源情報253を、記憶部201から読み出して取得する(ステップS801)。
【0077】
陰影計算部211は、取得したキャラクタオブジェクト情報251と面オブジェクト情報252と光源情報253とに基づいて、陰影領域305の位置を計算する(ステップS802)。
【0078】
例えば、図9に示すように、陰影計算部211は、陰影領域305の形状を楕円とし、光源303の位置とキャラクタオブジェクト301の代表点901の位置とを結ぶ直線902と、面オブジェクト302と、の交点903を、陰影領域305を表す楕円の中心(長軸と短軸の交点)とする。代表点901は、例えばキャラクタオブジェクト301の重心や、頭、お腹などの所定位置である。
【0079】
なお、陰影計算部211は、陰影領域305を表す楕円の半径R1,R2を、距離計算部212により計算されたキャラクタオブジェクト301と面オブジェクト302との距離δが長いほど小さくしてもよい。あるいは、距離計算部212が、代表点901と面オブジェクト302との距離を計算し、陰影計算部211が、計算された代表点901と面オブジェクト302との距離が長いほど半径R1,R2を小さくしてもよい。
【0080】
判別部203は、キャラクタオブジェクト情報251と面オブジェクト情報252とに基づいて、キャラクタオブジェクト301が面オブジェクト302と接しているか否かを判別する(ステップS803)。具体的には、例えば、予め設定した所定領域501がその一部分でも面オブジェクト302と接していればキャラクタオブジェクト301が面オブジェクト302と接していると判別し、所定領域501が面オブジェクト302と接していなければ、キャラクタオブジェクト301が面オブジェクト302と接していないと判別する。
【0081】
キャラクタオブジェクト301が面オブジェクト302と接していないと判別された場合(ステップS803;NO)、変化部204は、キャラクタオブジェクト301と面オブジェクト302との距離δに応じて陰影領域305の明度を変化させる(ステップS804)。例えば、変化部204は、キャラクタオブジェクト301と面オブジェクト302との距離δが長いほど陰影領域305の明度を大きくする。言い換えれば、変化部204は、インストラクターの足が床から離れているほど、インストラクターの影を明るくする。勿論、明度の代わりに、もしくは明度に加えて、色相及び/又は彩度を変化させてもよい。また、距離δが長いほど陰影領域305の明度を小さくしてもよい。
【0082】
一方、キャラクタオブジェクト301が面オブジェクト302と接していると判別された場合(ステップS803;YES)、変化部204は明度を変化させず、所定の明度に設定する。例えば、変化部204は、最小値Bmin、最大値Bmaxで定める範囲で明度を変化させるとすると、キャラクタオブジェクト301が面オブジェクト302と接している場合には、明度を最小値Bminにし、接していない場合には、最大値Bmaxを超えない範囲で、距離δの長さに応じて明度をBminからだんだんと大きくしていく。
【0083】
そして、生成部205は、キャラクタオブジェクト301と面オブジェクト302と陰影領域305とを表す画像を生成する(ステップS805)。
【0084】
このように生成された画像はモニターに表示される。つまり、CPU 101は、画像処理部108を制御して、生成部205によって生成された画像をモニターに表示させる。プレイヤーは、キャラクタオブジェクト301と、面オブジェクト302と、キャラクタオブジェクト301の影とを含む画像を見ることができる。キャラクタオブジェクト301の影の色相、彩度、明度のうち少なくともいずれか1つは、キャラクタオブジェクト301と面オブジェクト302との距離に応じて変化するので、プレイヤーは、影の変化を見れば、それらが離れているか否か、離れているとすればどの程度離れているのかをすぐに判断できるようになり、オブジェクト同士の位置関係を把握し易くなる。
【0085】
なお、陰影計算部211は、図10に示すように、陰影領域305の位置と形状を計算する代わりに、各オブジェクトの位置と形状に基づいて光源計算を行って陰影304の位置と形状を計算してもよい。そして、陰影計算部211は、計算された陰影304のうち所定領域501の陰影502の色相、彩度、明度のうち少なくともいずれか1つを、キャラクタオブジェクト301と面オブジェクト302との距離δに応じて変化させてもよい。影のおおよその形を表す陰影領域305の位置と形状を計算する代わりに、詳細な光源計算を行って陰影304の位置と形状を求めれば、よりリアリティのある画像が得られる。
【0086】
以上説明したように、本実施形態によれば、キャラクタオブジェクト301と面オブジェクト302との位置関係を明瞭に表現することができる。例えば、キャラクタオブジェクト301の影の表現を変えることで、キャラクタオブジェクト301と面オブジェクト302が接しているか否かがはっきりと分かるようになる。また、キャラクタオブジェクト301が面オブジェクト302と離れているほど、影の色相、彩度、明度を増加(あるいは減少)させることによって、ユーザは、影の変化の度合いを見れば、これらがどの程度の距離だけ近づいているのかを明瞭に表現することができる。3次元仮想空間のように奥行きのある画像を表示する際、オブジェクト同士が接する可能性がある部分が、影を作るオブジェクト自身あるいは周囲の他のオブジェクトに隠れて見えない場合にも、これらが接しているか否か、どれくらい近づいているかを、影を変化させることによって簡単に且つ明瞭に表現することができる。
【0087】
陰影304と陰影領域305はオブジェクトでなくてもよい。本実施形態では、陰影計算部211が、面オブジェクト302の全領域のうち、キャラクタオブジェクト301の光源303からの光によって影になる陰影領域305の位置(及び形状)を計算し、変化部204が、色相、彩度、明度のうち少なくともいずれか1つを変化させ、生成部205が、面オブジェクト302に所定のテクスチャを貼り付けた後、変化部204によって変化された陰影領域305を含む画像を生成する。画像生成装置200は、面オブジェクト302に貼り付けるテクスチャの色相と彩度と明度を変えればよい。勿論、陰影304あるいは陰影領域305をオブジェクトとし、陰影用の所定のテクスチャを貼り付けた後、色相と彩度と明度を変えてもよい。
【0088】
本実施形態では、仮想空間においてインストラクターが床の上でダンスをする場面を想定して説明したが、他の様々な場面で本発明を適用することができる。
【0089】
例えば、ジャンプの高さを競うゲームにおいて、画像生成装置200は、プレイヤーキャラクタが地面から高く跳ぶほど、プレイヤーキャラクタの影の明度を大きく変化させる。すると、プレイヤーは、影の明るさの変化を見れば、どれくらい高く跳んだのかを容易に知ることができる。この場合、プレイヤーキャラクタがキャラクタオブジェクト301となり、地面が面オブジェクト302となる。画像生成装置200は、上述のように影を変化させた画像を生成すれば、高さや位置を示すゲージや数値等を表示しなくても、ユーザに高さや位置を知らせることができる。より簡易な画像にしつつ、ユーザに伝えることができる情報量を増やすことができる。
【0090】
例えば、レーシングゲームにおいて、レーシングカーの車体をキャラクタオブジェクト301とし、レースコースの側壁を面オブジェクト302とする。画像生成装置200は、車体の後方の仮想カメラが撮影した映像を生成する。後方からの映像では、車体のフロントウイングの先端が見えづらい。このとき、画像生成装置200は、車体が側壁に近づくほど、車体の影の明度を大きく(明るく)変化させる。すると、レーシングカーを操作するプレイヤーは、影の明るさの変化を見るだけで、レーシングカーのフロントウイングが側壁にどれくらい近づいているのか、レーシングカーが側壁に接触したのか否か、などを容易に知ることができる。
【0091】
例えば、対戦ゲームにおいて、プレイヤーキャラクタが敵キャラクタと接近したときに、敵が近くにいることをプレイヤーに知らせるための手段として本発明を利用することもできる。プレイヤーキャラクタから敵キャラクタまでの距離が近いほど、プレイヤーキャラクタの影の明度を大きくする。この場合、プレイヤーキャラクタがキャラクタオブジェクト301となり、敵キャラクタを構成するポリゴンのうち所定の一部分(例えば顔)を構成するポリゴンによって定義する面(例えば顔面)を面オブジェクト302とすればよい。任意のオブジェクト同士が接近したときに、ユーザにそれらが接近していることを衝突前に通知する手段として本発明を利用することもできる。
【0092】
例えば、プレイヤーキャラクタをキャラクタオブジェクト301とし、透明な窓ガラスを面オブジェクト302とする。プレイヤーキャラクタなどの影を単に表現しただけでは、プレイヤーキャラクタと窓ガラスとの距離感が掴みづらいことが多い。このとき、画像生成装置200は、プレイヤーキャラクタが窓ガラスに近づくほど、プレイヤーキャラクタの影の明度を大きく変化させる。すると、プレイヤーは、影の明るさの変化を見るだけで、窓ガラスにどれくらい近づいているのか、プレイヤーキャラクタの手が窓ガラスに触れたのか否か、などを容易に知ることができる。
【0093】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【0094】
陰影計算部211は、所定領域501の陰影502のみを計算してもよい。言い換えれば、インストラクター全体の影ではなく、インストラクターの足の部分の影のみを描画してもよい。例えば図11(a)に示すように、陰影計算部211は、キャラクタオブジェクト301の位置と形状と、面オブジェクトの位置と形状と、に基づいて光源計算を行って、キャラクタオブジェクト301全体のうちの一部分(本図ではインストラクターの片足)1101に対応する陰影領域1102の位置と形状を計算する。そして、陰影計算部211は、計算された陰影領域1102の色相、彩度、明度のうち少なくともいずれか1つを、キャラクタオブジェクト301と面オブジェクト302との距離δに応じて変化させてもよい。勿論、この構成においても、図11(b)に示すように、詳細な光源計算をする代わりに、陰影領域1102を所定の形状に固定して陰影領域1102の位置と大きさを変化させてもよい。なお、陰影計算部211は、インストラクターの足の部分のみをキャラクタオブジェクト301とみなして、陰影領域1102の位置と形状を計算すればよい。
【0095】
画像生成装置200を装置の全部又は一部として動作させるためのプログラムを、メモリカード、CD−ROM、DVD、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【0096】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【0097】
以上説明したように、本発明によれば、仮想空間内のオブジェクト同士の位置関係を明瞭に表現するために好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【0098】
【図1】本実施形態の画像生成装置が実現される典型的なゲーム装置の概要構成を示す図である。
【図2】画像生成装置の機能的構成を説明するための図である。
【図3】光源からの光によるキャラクタオブジェクトの面オブジェクトへの陰影を説明するための図である。
【図4】(a)キャラクタオブジェクトと面オブジェクトとが接している場合の陰影領域の一例を示す図である。(b)キャラクタオブジェクトと面オブジェクトとが離れている場合の陰影領域の一例を示す図である。
【図5】(a)所定領域と、所定領域の影とを説明するための図である。(b)所定領域上の点P1と、面オブジェクト上の点P2との関係を説明するための図である。
【図6】(a)〜(d)は、それぞれ所定領域と面オブジェクトとの距離と、陰影領域の明度との関係の例を表す図である。
【図7】(a)〜(d)は、それぞれ所定領域と面オブジェクトとの距離と、陰影領域の明度との関係の他の例を表す図である。
【図8】画像生成処理を説明するためのフローチャートである。
【図9】キャラクタオブジェクト、面オブジェクト、光源、陰影領域、を表す図である。
【図10】キャラクタオブジェクト、面オブジェクト、光源、陰影、を表す図である。
【図11】(a)と(b)は所定領域のみの陰影を表した図である。
【符号の説明】
【0099】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 DVD−ROMドライブ
108 画像処理部
109 音声処理部
110 NIC
200 画像生成装置
201 記憶部
202 計算部
203 判別部
204 変化部
205 生成部
251 キャラクタオブジェクト情報
252 面オブジェクト情報
253 光源情報
301 キャラクタオブジェクト
302 面オブジェクト
303 光源
304 陰影
305 陰影領域
501 所定領域
502 所定領域の陰影

【特許請求の範囲】
【請求項1】
仮想空間内のキャラクタオブジェクトの位置と、面オブジェクトの位置と、光源の位置と、を記憶する記憶部と、
当該光源によって当該面オブジェクトへ投影される当該キャラクタオブジェクトの陰影を計算する陰影計算部と、
当該キャラクタオブジェクトと当該面オブジェクトとの距離を計算する距離計算部と、
前記計算された陰影を、前記計算された当該キャラクタオブジェクトと当該面オブジェクトとの距離に応じて変化させる変化部と、
当該キャラクタオブジェクトと、当該面オブジェクトと、前記変化された当該陰影と、を描画した画像を生成する生成部と、
を備えることを特徴とする画像生成装置。
【請求項2】
請求項1に記載の画像生成装置であって、
前記記憶部は、当該キャラクタオブジェクトの形状と、当該面オブジェクトの形状とを更に記憶し、
前記記憶された当該キャラクタオブジェクトの位置と形状と、前記記憶された当該面オブジェクトの位置と形状とに基づいて、当該キャラクタオブジェクトが当該面オブジェクトと所定距離以上離れているか否かを判別する判別部を更に備え、
前記変化部は、前記判別部により当該キャラクタオブジェクトが当該面オブジェクトと所定距離以上離れていると判別された場合、前記計算された陰影を、前記計算された当該キャラクタオブジェクトと当該面オブジェクトとの距離に応じて変化させる、
ことを特徴とする画像生成装置。
【請求項3】
請求項2に記載の画像生成装置であって、
前記判別部は、当該キャラクタオブジェクトが当該面オブジェクトと所定距離以上離れている場合、当該キャラクタオブジェクトが当該面オブジェクトと接していないと判別し、それ以外の場合、当該キャラクタオブジェクトが当該面オブジェクトと接していると判別し、
前記変化部は、前記判別部により当該キャラクタオブジェクトが当該面オブジェクトと接していないと判別された場合、前記計算された陰影を、前記計算された当該キャラクタオブジェクトと当該面オブジェクトとの距離に応じて変化させる、
ことを特徴とする画像生成装置。
【請求項4】
請求項3に記載の画像生成装置であって、
前記判別部は、当該キャラクタオブジェクトの表面の所定領域が当該面オブジェクトと接しているか否かにより、当該キャラクタオブジェクトと当該面オブジェクトが接しているか否かを判別し、
前記変化部は、当該所定領域と当該面オブジェクトとの距離を、当該キャラクタオブジェクトと当該面オブジェクトとの距離とする、
ことを特徴とする画像生成装置。
【請求項5】
請求項1乃至4のいずれか1項に記載の画像生成装置であって、
前記変化部は、前記計算された陰影の色相、彩度、明度のうち少なくともいずれか一つを変化させる、
ことを特徴とする画像生成装置。
【請求項6】
請求項1乃至5のいずれか1項に記載の画像生成装置であって、
音楽を再生する再生部を更に備え、
前記変化部は、前記計算された陰影を、前記再生部によって再生される音楽のジャンル、テンポ、旋律、曲調、リズム、拍子のうち少なくともいずれか一つに応じて変化させる、
ことを特徴とする画像生成装置。
【請求項7】
請求項1乃至5のいずれか1項に記載の画像生成装置であって、
前記変化部は、前記計算された陰影を、当該画像生成装置で実行されるゲームにおいてプレイヤーが獲得した点数に応じて変化させる、
ことを特徴とする画像生成装置。
【請求項8】
請求項5に記載の画像生成装置であって、
前記変化部は、前記計算された陰影のうち当該所定領域に対応する部分の明度を、当該面オブジェクトと当該所定領域との距離に対して単調増加させる、
ことを特徴とする画像生成装置。
【請求項9】
請求項5に記載の画像生成装置であって、
前記変化部は、前記計算された陰影のうち当該所定領域に対応する部分の明度を、当該面オブジェクトと当該所定領域との距離に対して単調減少させる、
ことを特徴とする画像生成装置。
【請求項10】
記憶部、陰影計算部、距離計算部、変化部、生成部を備える画像生成装置にて実行される画像生成方法であって、
前記記憶部には、仮想空間内のキャラクタオブジェクトの位置と、面オブジェクトの位置と、光源の位置と、が記憶され、
前記陰影計算部が、当該光源によって当該面オブジェクトへ投影される当該キャラクタオブジェクトの陰影を計算する陰影計算ステップと、
前記距離計算部が、当該キャラクタオブジェクトと当該面オブジェクトとの距離を計算する距離計算ステップと、
前記変化部が、前記計算された陰影を、前記計算された当該キャラクタオブジェクトと当該面オブジェクトとの距離に応じて変化させる変化ステップと、
前記生成部が、当該キャラクタオブジェクトと、当該面オブジェクトと、前記変化された陰影と、を描画した画像を生成する生成ステップと、
を備えることを特徴とする画像生成方法。
【請求項11】
コンピュータを、
仮想空間内のキャラクタオブジェクトの位置と、面オブジェクトの位置と、光源の位置と、を記憶する記憶部、
当該光源によって当該面オブジェクトへ投影される当該キャラクタオブジェクトの陰影を計算する陰影計算部、
当該キャラクタオブジェクトと当該面オブジェクトとの距離を計算する距離計算部、
前記計算された陰影を、前記計算された当該キャラクタオブジェクトと当該面オブジェクトとの距離に応じて変化させる変化部、
当該キャラクタオブジェクトと、当該面オブジェクトと、前記変化された陰影と、を描画した画像を生成する生成部、
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2009−86856(P2009−86856A)
【公開日】平成21年4月23日(2009.4.23)
【国際特許分類】
【出願番号】特願2007−253714(P2007−253714)
【出願日】平成19年9月28日(2007.9.28)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】