(57)【特許請求の範囲】
【請求項１】
仮想空間に配置されるキャラクタのボーンの方向と、当該仮想空間に配置される光源から照射される仮想光の強度及び／又は色と、を記憶する記憶部と、
前記記憶されたボーンの方向を更新するボーン更新部と、
前記記憶されたボーンの方向に対応付けられた強度及び／又は色に、当該仮想光の強度及び／又は色を更新する照明更新部と、
当該仮想空間に配置された視点の位置から視線の方向に当該仮想空間を見た様子を表す画像であって、当該キャラクタが配置される当該仮想空間を前記記憶された強度及び／又は色の当該仮想光で照らした画像を生成する生成部と、
を備えることを特徴とする画像生成装置。
【請求項２】
請求項１に記載の画像生成装置であって、
前記記憶部は、当該ボーンの方向に加えて、もしくは、当該ボーンの方向に代えて、当該ボーンの位置を記憶し、
前記ボーン更新部は、前記記憶されたボーンの方向に加えて、もしくは、前記記憶されたボーンの方向に代えて、前記記憶されたボーンの位置を更新し、
前記照明更新部は、前記記憶されたボーンの位置と方向に対応付けられた強度及び／又は色に、もしくは、前記記憶されたボーンの位置に対応付けられた強度及び／又は色に、当該仮想光の強度及び／又は色を更新する、
ことを特徴とする画像生成装置。
【請求項３】
請求項１又は２に記載の画像生成装置であって、
前記ボーン更新部は、ユーザが把持する入力装置の位置及び／又は方向の変化に応じて、当該ボーンの位置及び／又は方向を変化させるように、更新する、
ことを特徴とする画像生成装置。
【請求項４】
請求項１乃至３のいずれか１項に記載の画像生成装置であって、
前記記憶部は、当該仮想空間に配置される複数の光源のそれぞれについて、当該光源から照射される仮想光の強度及び／又は色を記憶し、
前記照明更新部は、当該複数の光源のそれぞれについて、当該キャラクタの位置と当該光源の位置とを結ぶベクトルを求め、前記求めたベクトルの中から前記記憶されたボーンの方向に最も近いベクトルを選択し、前記記憶されたボーンの方向に対応付けられた強度及び／又は色に、前記選択されたベクトルに対応する光源から照射される仮想光の強度及び／又は色を更新する、
ことを特徴とする画像生成装置。
【請求項５】
記憶部、ボーン更新部、照明更新部、生成部を有する画像生成装置にて実行される画像生成方法であって、
前記記憶部には、仮想空間に配置されるキャラクタのボーンの方向と、当該仮想空間に配置される光源から照射される仮想光の強度及び／又は色と、が記憶され、
前記ボーン更新部が、前記記憶されたボーンの方向を更新するボーン更新ステップと、
前記照明更新部が、前記記憶されたボーンの方向に対応付けられた強度及び／又は色に、当該仮想光の強度及び／又は色を更新する照明更新ステップと、
前記生成部が、当該仮想空間に配置された視点の位置から視線の方向に当該仮想空間を見た様子を表す画像であって、当該キャラクタが配置される当該仮想空間を前記記憶された強度及び／又は色の当該仮想光で照らした画像を生成する生成ステップと、
を備えることを特徴とする画像生成方法。
【請求項６】
コンピュータを、
仮想空間に配置されるキャラクタのボーンの方向と、当該仮想空間に配置される光源から照射される仮想光の強度及び／又は色と、を記憶する記憶部、
前記記憶されたボーンの方向を更新するボーン更新部、
前記記憶されたボーンの方向に対応付けられた強度及び／又は色に、当該仮想光の強度及び／又は色を更新する照明更新部、
当該仮想空間に配置された視点の位置から視線の方向に当該仮想空間を見た様子を表す画像であって、当該キャラクタが配置される当該仮想空間を前記記憶された強度及び／又は色の当該仮想光で照らした画像を生成する生成部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、簡便に且つタイミング良くキャラクタの様子を強調して演出した画像を生成するために好適な画像生成装置、画像生成方法、ならびに、プログラムに関する。
【背景技術】
【０００２】
仮想空間に配置されるキャラクタを表す画像を生成する際、キャラクタの特定の動作やシーン等を強調する演出を行うことがある。例えば特許文献１には、対戦ゲームにおいて攻撃がヒットしたことを強調して表現するヒットエフェクトを発生させるゲーム装置が開示されている。これによれば、ゲーム装置は、攻撃方向・攻撃力・攻撃状況に応じてヒットエフェクトを変化させ、エキサイティングな対戦画像を表現している。
一方で、現実世界において、音楽に合わせてダンスを踊るダンサーが決めポーズを取ったときなどに照明係がダンサーにスポットライトを当てて目立つようにするといった演出を行うことがある。
【特許文献１】特開２００１−２７６４１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来技術では、キャラクタの動きに合うようにタイミング良く演出を変化させるためには、キャラクタの動きに合っているかを常に判断しなければならず面倒であった。
【０００４】
本発明はこのような課題を解決するものであり、簡便に且つタイミング良くキャラクタの様子を強調して演出した画像を生成するために好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００６】
本発明の第１の観点に係る画像生成装置は、記憶部、ボーン更新部、照明更新部、生成部を備える。
記憶部は、仮想空間に配置されるキャラクタのボーンの方向と、当該仮想空間に配置される光源から照射される仮想光の強度及び／又は色と、を記憶する。
ボーン更新部は、記憶されたボーンの方向を更新する。
照明更新部は、記憶されたボーンの方向に対応付けられた強度及び／又は色に、当該仮想光の強度及び／又は色を更新する。
生成部は、当該仮想空間に配置された視点の位置から視線の方向に当該仮想空間を見た様子を表す画像であって、当該キャラクタが配置される当該仮想空間を記憶された強度及び／又は色の当該仮想光で照らした画像を生成する。
【０００７】
本発明の画像生成装置によって生成される画像は、キャラクタオブジェクト（単に「キャラクタ」と呼ぶ。）と光源オブジェクト（単に「光源」と呼ぶ。）が配置された仮想空間の様子を表す画像である。
キャラクタは、１つ以上のボーンと複数の制御点から構成されるオブジェクトである。ボーンは、キャラクタの骨格となる線分状オブジェクトであり、ボーンの位置や向きが変化することによってキャラクタの基本的な位置や姿勢が変化する。各制御点を頂点としたポリゴンの集合によって表される面がスキンである。キャラクタの表面はスキンによって覆われる。ボーン（又は制御点）の位置や方向が変化すればスキンの形状も変化する。つまりキャラクタの形状や姿勢が変わる。光源は、仮想空間を照らし出す仮想光を発する。
例えば、キャラクタとして、仮想空間内のステージの上で曲に合わせてダンスをするヒト型キャラクタを採用し、光源として、ステージあるいはキャラクタを照らし出すスポットライト型の照明やミラーボール型の照明を採用し、画像生成装置は、照明で照らし出されるキャラクタが曲に合わせてダンスをする画像を生成する。
【０００８】
本発明の画像生成装置は、ボーンの方向の変化に応じて仮想光の強さ（照明の明るさ）を変える。つまり、仮想空間内にグローバルな座標系を定義し、この座標系における所定方向（例えば座標軸等の方向）を基準方向とし、この基準方向とボーンの方向とのなす角度によって仮想光の強さを変える。例えば、キャラクタからステージの真上方向に基準方向をとり、この基準方向とキャラクタの腕に対応するボーンの方向とのなす角度が小さいほど、仮想光を強くする。この場合、キャラクタが腕を上に挙げるほど照明が明るくなり、腕を下げると照明が暗くなる。
生成される画像によって表すシーンをより強調して表現したい場合、一つの演出手法として、照明を派手に演出することが効果的なことがある。例えば、現実世界のコンサートにおいて雰囲気を盛り上げるために、スポットライトを強くするなどして照明の当て方を工夫することがしばしば行われる。そこで、本発明では、キャラクタが特定のポーズを取るシーンが、より強調して表現すべきシーンであると推定して、照明の演出を変える。このとき、画像生成装置は、スタートから何秒目のシーンで演出を変える、あるいは曲の始めから何秒目の辺りでスポットライトを当てる、などといった判断をする必要がなく、キャラクタのボーンの方向に従って都度演出を変えるだけでよい。
また、画像生成装置は、仮想光の強さの代わりに、あるいは仮想光の強さに加えて、ボーンの方向の変化に応じて仮想光の色を変えることもできる。つまり、基準方向とボーンの方向とのなす角度によって仮想光の色を変える。例えば、ステージの水平方向に基準方向をとり、この基準方向とキャラクタの腕に対応するボーンの方向とのなす角度に従って、仮想光を黄、赤、青、緑などに変える。この場合、キャラクタが腕を一回転させると、照明の色がまるで七色に変化する。
仮想光を変化させるために用いるボーンは、キャラクタを構成する様々な部位のうちのいずれのボーンでもよい。つまり、キャラクタの任意のポーズを強調するために本発明を適用することができる。また、雰囲気を盛り上げたり静めたりするために効果的な演出を施すことができる。
【０００９】
本発明によれば、キャラクタの動作や雰囲気をタイミング良く強調して表現する演出を簡単に行うことができる。例えば、キャラクタが特定のポーズを取ったときに強調用の演出を施したい場合に本発明を適用すれば、そのポーズに合致したタイミングで強調用の演出を施すことができるようになる。
【００１０】
記憶部は、当該ボーンの方向に加えて、もしくは、当該ボーンの方向に代えて、当該ボーンの位置を記憶することができる。
また、ボーン更新部は、記憶されたボーンの方向に加えて、もしくは、記憶されたボーンの方向に代えて、記憶されたボーンの位置を更新してもよい。
そして、照明更新部は、記憶されたボーンの位置と方向に対応付けられた強度及び／又は色に、もしくは、記憶されたボーンの位置に対応付けられた強度及び／又は色に、当該仮想光の強度及び／又は色を更新してもよい。
【００１１】
本発明の画像生成装置は、ボーンの位置の変化に応じて仮想光の強さを変える。つまり、仮想空間内にグローバルな座標系を定義し、この座標系における所定位置を基準位置とし、この基準位置とボーンの位置との距離によって仮想光の強さを変える。あるいは、画像生成装置は、ボーンの位置と方向の両方の変化に応じて仮想光の強さを変える。つまり、基準方向とボーンの方向とのなす角度と、基準位置とボーンの位置との距離とによって、仮想光の強さを変える。
また、画像生成装置は、仮想光の強さの代わりに、あるいは仮想光の強さに加えて、ボーンの位置の変化に応じて仮想光の色を変えることもできる。つまり、基準方向とボーンの方向とのなす角度によって仮想光の色を変える。あるいは、画像生成装置は、ボーンの位置と方向の両方の変化に応じて仮想光の色を変える。つまり、基準方向とボーンの方向とのなす角度と、基準位置とボーンの位置との距離とによって、仮想光の色を変える。
例えば、キャラクタがステージ上を動き回り、キャラクタがステージ中央にいるときほど派手な演出を施したい場合、ボーンの方向の代わりに、ボーンの位置に応じて仮想光の強さや色を大きく変えると良い。
例えば、キャラクタが手の指を頭上高く真上に立てるときに派手な演出を施したい場合、指先を構成するボーンの位置と方向の両方を考慮し、ボーンの位置が床面から離れて（つまり高く手を挙げて）おり、且つ、ボーンの方向がステージ真上を向いている（つまり指を上に向けて指している）ときほど、仮想光の強さや色を大きく変えると良い。
本発明によれば、キャラクタの動作や雰囲気を強調して表現する演出を簡単に行うことができる。また、雰囲気を盛り上げたり静めたりするために効果的な演出を施すことができる。
【００１２】
ボーン更新部は、ユーザが把持する入力装置の位置及び／又は方向の変化に応じて、当該ボーンの位置及び／又は方向を変化させるように、更新してもよい。
【００１３】
本発明の画像生成装置には、現実空間においてユーザによって把持される把持モジュール（いわゆるコントローラ）が接続されている。そして、画像生成装置は、現実空間における把持モジュールの方向の変化に応じて、仮想空間におけるキャラクタのボーンの方向を変える。あるいは、画像生成装置は、現実空間における把持モジュールの位置の変化に応じて、仮想空間におけるキャラクタのボーンの位置を変える。
例えば、画像生成装置は、ユーザが把持モジュールを左手（又は右手）に持って振りながらダンスすると、キャラクタも左手（又は右手）を振りながらダンスするような画像を生成する。そして、キャラクタを構成するボーンの位置及び／又は方向に応じて、仮想光の強さや色を変化させる。つまり、ユーザが持つ現実空間における把持モジュールの位置及び／又は向きに応じて、仮想空間における仮想光の演出が変わる。
本発明によれば、ユーザの動作に基づいたキャラクタの動作や、ユーザの動作に基づいたゲーム内の雰囲気を強調して表現する演出を簡単に行うことができる。また、雰囲気を盛り上げたり静めたりするために効果的な演出を施すことができる。
【００１４】
記憶部は、当該仮想空間に配置される複数の光源のそれぞれについて、当該光源から照射される仮想光の強度及び／又は色を記憶することができる。
そして、照明更新部は、当該複数の光源のそれぞれについて、当該キャラクタの位置と当該光源の位置とを結ぶベクトルを求め、求めたベクトルの中から記憶されたボーンの方向に最も近いベクトルを選択し、記憶されたボーンの方向に対応付けられた強度及び／又は色に、選択されたベクトルに対応する光源から照射される仮想光の強度及び／又は色を更新してもよい。
【００１５】
仮想空間には、複数の光源を配置することができる。それぞれの光源は、例えば、キャラクタの配置される位置に向かって仮想光を発する。画像生成装置は、これらの複数の仮想光でキャラクタを照らし出す画像を生成する。
本発明では、画像生成装置は、ボーンの方向に応じて、強度及び／又は色を変化させる光源を、複数の光源の中から選ぶ。そして、選んだ光源から照射される仮想光の強度又は色を、ボーンの方向に応じて変化させる。
あるいは、画像生成装置は、ボーンの位置に応じて、強度及び／又は色を変化させる光源を、複数の光源の中から選ぶ。そして、選んだ光源から照射される仮想光の強度及び／又は色を、ボーンの位置に応じて変化させる。
なお、複数の光源のうち選ばれなかった光源から照射される仮想光については、強さ及び／又は色を変えなくてもよいし、選ばれた光源から照射される仮想光の変化量より相対的に小さい変化量で強さ及び／又は色を変えてもよい。
本発明によれば、複数の光源のうち、ボーンの方向を示す線上に近い光源ほど、あるいはボーンの位置に近い光源ほど、仮想光の強さや色が大きく変わる。よって、仮想光の強さや色を比較すれば、ボーンがどの方向を向いているのか、ボーンがどの辺りにあるのかがすぐに分かる。また、キャラクタが特定のポーズを取ったときにスポットライトを強く当てる等のような強調用の演出を施したい場合、その特定のポーズがより目立つように表現することができる。例えば、キャラクタが指で真上を指したポーズを強調して表現したい場合、より指先に近い光源からの仮想光を相対的に明るくすると、キャラクタのポーズがはっきりと映ることになり強調用の演出として効果的である。
【００１６】
本発明のその他の観点に係る画像生成方法は、記憶部、ボーン更新部、照明更新部、生成部を有する画像生成装置にて実行される画像生成方法であって、ボーン更新ステップ、照明更新ステップ、生成ステップを備える。
記憶部には、仮想空間に配置されるキャラクタのボーンの方向と、当該仮想空間に配置される光源から照射される仮想光の強度及び／又は色と、が記憶される。
ボーン更新ステップは、ボーン更新部が、記憶されたボーンの方向を更新する。
照明更新ステップは、照明更新部が、記憶されたボーンの方向に対応付けられた強度及び／又は色に、当該仮想光の強度及び／又は色を更新する。
生成ステップは、生成部が、当該仮想空間に配置された視点の位置から視線の方向に当該仮想空間を見た様子を表す画像であって、当該キャラクタが配置される当該仮想空間を記憶された強度及び／又は色の当該仮想光で照らした画像を生成する。
【００１７】
本発明によれば、キャラクタの動作や雰囲気を強調して表現する演出を簡単に行うことができる。また、雰囲気を盛り上げたり静めたりするために効果的な演出を施すことができる。
【００１８】
本発明のその他の観点に係るプログラムは、コンピュータを、記憶部、ボーン更新部、照明更新部、生成部として機能させる。
記憶部は、仮想空間に配置されるキャラクタのボーンの方向と、当該仮想空間に配置される光源から照射される仮想光の強度及び／又は色と、を記憶する。
ボーン更新部は、記憶されたボーンの方向を更新する。
照明更新部は、記憶されたボーンの方向に対応付けられた強度及び／又は色に、当該仮想光の強度及び／又は色を更新する。
生成部は、当該仮想空間に配置された視点の位置から視線の方向に当該仮想空間を見た様子を表す画像であって、当該キャラクタが配置される当該仮想空間を記憶された強度及び／又は色の当該仮想光で照らした画像を生成する。
【００１９】
本発明によれば、コンピュータを上述のように動作する画像生成装置として機能させることができる。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００２０】
本発明によれば、簡便に且つタイミング良くキャラクタの様子を強調して演出した画像を生成することができる。
【発明を実施するための最良の形態】
【００２１】
（実施形態１）
本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００２２】
図１は、プログラムを実行することにより、本発明の画像生成装置の機能を果たす典型的な情報処理装置１００の概要構成を示す模式図である。以下、本図を参照して説明する。
【００２３】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、マイク１１１と、を備える。
【００２４】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態に係る画像生成装置が実現される。
【００２５】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００２６】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００２７】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００２８】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。なお、コントローラ１０５の詳細については後述する。
【００２９】
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００３０】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００３１】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００３２】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００３３】
また、仮想空間が３次元にて構成される場合には、当該３次元空間内に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００３４】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００３５】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェイス（図示せず）により構成される。
【００３６】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００３７】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカーに出力することにより、音声出力が可能となる。
【００３８】
さらに、情報処理装置１００には、インターフェイス１０４を介してマイク（図示せず）を接続することができる。この場合、マイクからのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００３９】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００４０】
以上で説明した情報処理装置１００は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【００４１】
例えば、一般的なコンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣを備え、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ１０５ではなく、キーボードやマウスなどを入力装置として利用する。
【００４２】
本実施形態では、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ１０５を採用する。
【００４３】
図２は、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ１０５と情報処理装置１００との外観を示す説明図である。以下、本図を参照して説明する。
【００４４】
コントローラ１０５は、把持モジュール２０１と発光モジュール２５１との組合せからなる。把持モジュール２０１は無線通信によって情報処理装置１００と通信可能に接続されており、発光モジュール２５１は、有線で情報処理装置１００と通信可能に接続されている。情報処理装置１００の処理結果の音声および画像は、テレビジョン装置２９１によって出力表示される。
【００４５】
把持モジュール２０１は、テレビジョン装置２９１のリモートコントローラと類似した外観をしており、その先端には、ＣＣＤカメラ２０２が配置されている。
【００４６】
一方発光モジュール２５１は、テレビジョン装置２９１の上部に固定されている。発光モジュール２５１の両端には、発光ダイオード２５２が配置されており、情報処理装置１００からの電源供給によって発光する。
【００４７】
把持モジュール２０１のＣＣＤカメラ２０２は、この発光モジュール２５１の様子を撮影する。
【００４８】
撮影された画像の情報は、情報処理装置１００に送信され、情報処理装置１００は、当該撮影された画像内において発光ダイオード２５２が撮影された位置に基づいて、発光モジュール２５１に対する把持モジュール２０１の位置を取得する。
【００４９】
このほか、把持モジュール２０１内には、加速度センサ、角加速度センサ、傾きセンサ等が内蔵されており、把持モジュール２０１そのものの姿勢を測定することが可能となっている。この測定結果も、情報処理装置１００に送信される。
【００５０】
把持モジュール２０１の上面には、十字形キー２０３が配置されており、ユーザは、十字形キー２０３を押し込み操作することによって、各種の方向指示入力を行うことができる。また、Ａボタン２０４ほか、各種ボタン２０６も上面に配置されており、当該ボタンに対応付けられた指示入力を行うことができる。
【００５１】
一方、Ｂボタン２０５は、把持モジュール２０１の下面に配置されており、把持モジュール２０１の下面に窪みが構成されていることとあいまって、拳銃やマジックハンドにおける引き金を模したものとなっている。典型的には、仮想空間内における拳銃による発砲やマジックハンドによる把持の指示入力は、Ｂボタン２０５を用いて行われる。
【００５２】
また、把持モジュール２０１の上面のインジケータ２０７は、把持モジュール２０１の動作状況や情報処理装置１００との無線通信状況などをユーザに提示する。
【００５３】
把持モジュール２０１の上面に用意された電源ボタン２０８は、把持モジュール２０１そのものの動作のオン・オフを行うもので、把持モジュール２０１は内蔵された電池（図示せず）によって動作する。
【００５４】
このほか、把持モジュール２０１の上面には、スピーカー２０９が配置され、音声処理部１１０から入力される音声信号による音声を出力する。把持モジュール２０１内部には、バイブレータ（図示せず）が用意されており、情報処理装置１００からの指示に基づいて、振動の有無や強弱を制御することができるようになっている。
【００５５】
以下では、把持モジュール２０１と発光モジュール２５１との組合せからなるコントローラ１０５を用いて、把持モジュール２０１の現実世界における位置や姿勢を測定することを前提に説明する。ただし、上記のような形態によらず、たとえば超音波や赤外線通信、ＧＰＳ（Global Positioning System）等を利用してコントローラ１０５の現実世界における位置や姿勢を測定するとした場合であっても、本発明の範囲に含まれる。
【００５６】
次に、本実施形態の画像生成装置３００が行う処理について説明する。本実施形態では、画像生成装置３００は仮想空間におけるゲームを実行し、このゲーム中のオブジェクトを表す画像を生成する。ただし、画像生成装置３００は、ゲームに限らず任意の画像を生成することができる。
【００５７】
図３は、画像生成装置３００の機能的な構成を説明するための図である。画像生成装置３００は、記憶部３０１、ボーン更新部３０２、照明更新部３０３、生成部３０４を備える。
【００５８】
図４は、画像生成装置３００が扱う仮想空間４００を表す図である。本実施形態では、仮想空間４００は３次元の空間であり、極座標系あるいは直交座標系などを用いたグローバル座標系４０５が定義される。
【００５９】
仮想空間４００には、少なくとも一つ以上のキャラクタオブジェクト（以下、単に「キャラクタ」と呼ぶ）４１０と、少なくとも一つ以上の仮想的な光源オブジェクト（以下、単に「光源」と呼ぶ）４２０が配置される。本図中では、光源４２０Ａ乃至４２０Ｆが配置されている。例えば、光源４２０には、キャラクタ４１０の上方から照らすスポットライト型の光源４２０Ａ，４２０Ｂ，４２０Ｃ、ミラーボール型の光源４２０Ｄ、キャラクタ４１０の下方から照らすスポットライト型の光源４２０Ｅ，４２０Ｆなどがある。光源４２０Ａ乃至４２０Ｆからは、それぞれ、おおよそ方向４２１Ａ乃至４２１Ｆに向かって仮想光が照射される。
【００６０】
図５は、キャラクタ４１０の構成を詳しく説明するための図である。キャラクタ４１０は、ボーン５１０、制御点５２０、スキン５３０から構成される。
【００６１】
ボーン５１０は、キャラクタ４１０の骨格となる線分状オブジェクトである。ボーン５１０の位置や向きが変化することによって、キャラクタ４１０の基本的な位置や姿勢が変化する。ボーン５１０の長さと形状は一定である。ボーン５１０の端点５１１，５１２は、他のボーンに連結されていてもよい。ボーン５１０には１つ以上の制御点５２０が関連付けられる。
【００６２】
スキン５３０の形状は、制御点５２０の位置に基づいて決まる。本実施形態では、スキン５３０は、微小な多角形（典型的には三角形や四角形など）のポリゴン（プリミティブ）の集合体であり、予め決められた対応付けで制御点５２０をポリゴンの頂点としている。スキン５３０の形状は、ポリゴンに分割され数値データ化されて表される。スキン５３０で覆われてできる形状が、キャラクタ４１０の表面の形状となる。
【００６３】
次に、画像生成装置３００の各構成の詳細について説明する。本実施形態では、キャラクタ４１０は、仮想空間４００内のステージやフロアでダンスするヒト型キャラクタである。本実施形態では、画像生成装置３００は、仮想空間４００においてキャラクタ４１０がダンスを踊っている様子を表す画像を生成する。ただし、キャラクタ４１０はヒト型キャラクタ以外の他のキャラクタでもよいし、画像生成装置３００はキャラクタ４１０の任意のモーションを表す画像を生成してもよいことは言うまでもない。
【００６４】
記憶部３０１は、ボーン情報３５１と照明情報３５２を記憶する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して記憶部３０１として機能する。
【００６５】
ボーン情報３５１は、仮想空間４００に配置されるキャラクタ４１０を構成するボーン５１０のグローバル座標系４０５における方向を示す情報である。方向は、グローバル座標系４０５における方向ベクトル５４０を用いて表される。キャラクタ４１０が複数のボーン５１０から構成される場合、ボーン情報３５１は、いずれのボーン５１０の方向を示す情報であってもよい。なお、後述するように、ボーン情報３５１に記憶されたボーン５１０の方向の変化に従って、画像生成装置３００によって生成される画像は変化することとなる。
【００６６】
本実施形態では、記憶部３０１は、ボーン情報３５１として、ヒト型のキャラクタ４１０の片腕を構成するボーン５１０の方向ベクトル５４０を記憶する。つまり方向ベクトル５４０は、キャラクタ４１０の腕の向きを表す。
【００６７】
照明情報３５２は、図６に示すように、仮想空間４００に配置される光源４２０から照射される仮想光４２１の強さと色のうち少なくともいずれか一方を表す情報である。
【００６８】
光の強さは、例えば照度を用いて表される。あるいは、オン（点灯）／オフ（消灯）の２値によって光の強さを定義することもできる。また、ゲーム開始時の所定の強さ（初期値）の何％、といったように、相対的な尺度を用いて定義することもできる。
【００６９】
光の色は、例えば色相(Ｈ）、彩度（Ｃ）、明度（Ｖ）の組み合わせを用いて定義される。あるいは、赤（Ｒ）・緑（Ｇ）・青（Ｂ）の各原色の光の強さの組み合わせを用いて色を定義してもよい。
【００７０】
次に、ボーン更新部３０２は、ボーン情報３５１に格納されたボーン５１０の方向を示す情報を更新する。ＣＰＵ  １０１とＲＡＭ  １０３が協働してボーン更新部３０２として機能する。
【００７１】
より詳細には、ＣＰＵ  １０１は、現実空間においてユーザが把持する把持モジュール２０１の方向の変化に応じてボーン５１０の仮想空間４００における方向を変化させるように、ボーン情報３５１を更新する。例えば、現実空間において把持モジュール２５１を手で持ちながらユーザがダンスをすると、把持モジュール２０１の方向の変化に連動して、キャラクタ４１０の腕の方向も変化する。
【００７２】
あるいは、ＣＰＵ  １０１は、外部メモリ１０６等に記憶された所定のゲームプログラムに従ってボーン５１０の仮想空間４００における方向を変化させるように、ボーン情報３５１を更新することもできる。例えば、把持モジュール２０１の向きの変化と関係なく、キャラクタ４１０にダンスのデモンストレーションをさせるようにボーン情報３５１を更新してもよい。
【００７３】
次に、照明更新部３０３は、ボーン更新部３０２によって更新されたボーン５１０の方向に対応付けられた強度及び／又は色に、仮想光４２１の強度及び／又は色を更新する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して照明更新部３０３として機能する。
【００７４】
つまり、ＣＰＵ  １０１は、ボーン情報３５１が示すボーン５１０の方向の変化に応じて、照明情報３５２が示す仮想光４２１の強さ及び／又は色を変化させる。ボーン５１０の向きが変わると、仮想光４２１が明るくなったり暗くなったりする。あるいは、ボーン５１０の向きが変わると、仮想光４２１が様々な色に変化する。ＣＰＵ  １０１は、仮想光４２１の強さと色の両方を変化させてもよい。
【００７５】
仮想光４２１の変化のさせ方には様々な手法がある。
例えば、ＣＰＵ  １０１は、図７（ａ）に示すように、ボーン５１０の方向ベクトル５４０と、グローバル座標系４０５に定義される所定の軸の方向と、のなす角度θを求め、角度θが大きいほど仮想光４２１を表す画像の明度Ｖを小さくし、角度θが小さいほど仮想光４２１を表す画像の明度Ｖを大きくしてもよい。この例では、ＣＰＵ  １０１は、明度を最小値ＶＭＩＮ（≧０％）から最大値ＶＭＡＸ（≦１００％）までの範囲で変化させる。例えば、この所定の軸の方向をダンスフロアの天井方向（キャラクタ４１０の頭上方向）にとると、キャラクタ４１０が腕を上に高く挙げるほど仮想光４２１が明るくなり、キャラクタ４１０が腕を下げるほど仮想光４２１が暗くなる。よって、ダンスに合わせて光の演出を適宜変えることができる。
【００７６】
ＣＰＵ  １０１は、角度θとして、ボーン５１０の方向ベクトル５４０と任意の方向とのなす角度を求めてもよい。例えば、角度θとして、方向ベクトル５４０の方向と、キャラクタ４１０から仮想空間４００内の観客オブジェクト（図示せず）への方向とのなす角度を採用する。ボーン５１０が観衆オブジェクトの向きに近いほど（キャラクタ４１０の腕が観衆を指しているほど）、仮想光４２１を明るくしてもよい。例えば、キャラクタ４１０が観衆に強くアピールするモーションをとると、仮想光４２１が強くなり、コンサート等がより盛り上がっている演出をすることができる。
【００７７】
ＣＰＵ  １０１は、明度の大きさを角度θに対して直線的に変化させなくてもよく、任意の関数を用いて、角度θの増加に対して明度を単調減少させてもよい。また、ＣＰＵ  １０１は、任意の関数を用いて、角度θの増加に対して明度を単調増加させてもよい。
【００７８】
ＣＰＵ  １０１は、図７（ｂ）に示すように、仮想光４２１の明度を、角度θの値に予め対応付けられた値に変化させてもよい。それぞれの明度の値ＶＡ，ＶＢ，ＶＣの大小関係は任意に定義してよい。つまり、単調減少あるいは単調増加に限定されない。
【００７９】
図７（ａ）と（ｂ）では、ＣＰＵ  １０１は、角度θに応じて明度を変化させているが、明度の代わりに、もしくは明度に加えて、色相や彩度を変化させてもよい。ＣＰＵ  １０１は、仮想光４２１を表す画像の明度、色相、彩度のうち少なくともいずれか一つを変化させることができる。
【００８０】
例えば、仮想光４２１が所定の明度と所定の色相で指定される色系列の光である場合に、角度θの変化に応じて仮想光４２１の彩度を変化させると、仮想光４２１の色は角度θに応じて濃くなったり薄くなったりする。
【００８１】
例えば、仮想光４２１が所定の明度と所定の彩度で指定される色系列の光である場合に、角度θの変化に応じて仮想光４２１の色相を変化させると、仮想光４２１の色は角度θに応じて黄色、赤色、紫色、青色、緑色など様々な色に変化する。
【００８２】
また、ＣＰＵ  １０１は、角度θの変化に応じて仮想光４２１を点滅させる時間周期を短くしたり長くしたりしてもよい。例えば、ダンスが佳境に入ったり盛り上がっていたりして角度θが小さいとき（つまり腕を挙げているとき）ほど速く点滅させ、角度θが大きいとき（つまり腕を下ろしているとき）ほど遅く点滅させる。
【００８３】
仮想光４２１を変化させる他の手法について説明する。
図８は、仮想空間４００に配置されたヒト型のキャラクタ４１０を頭上から見下ろしたときの様子を表す図である。矢印８１０方向がキャラクタ４１０の向き（顔の向き）である。ＣＰＵ  １０１は、ボーン５１０の向きを示す方向ベクトル５４０の所定方向成分（本図ではＸ−Ｙ平面成分）８２０と、所定の軸（本図ではＸ軸）とのなす角度φを求め、角度φの大きさに応じて、仮想光４２１を表す画像の色相を変える。
【００８４】
図９は、角度φと色相との対応付けの具体例である。ＣＰＵ  １０１は、角度φに応じて、仮想光４２１の色相を次のように設定する。
【００８５】
（１）φ＝０（単位：ラジアン）のとき、黄色（Ｙ）。
（２）φ＝２π×１／５のとき、赤色（Ｒ）。
（３）φ＝２π×２／５のとき、紫色（Ｐ）。
（４）φ＝２π×３／５のとき、青色（Ｂ）。
（５）φ＝２π×４／５のとき、緑色（Ｇ）。
（６）０＜φ＜２π×１／５のとき、黄色と赤色の中間色（ＹＲ）。
（７）２π×１／５＜φ＜２π×２／５のとき、赤色と紫色の中間色（ＲＰ）。
（８）２π×２／５＜φ＜２π×３／５のとき、紫色と青色の中間色（ＰＢ）。
（９）２π×３／５＜φ＜２π×４／５のとき、青色と緑色の中間色（ＢＧ）。
（１０）２π×４／５＜φ＜２π（＝０）のとき、緑色と黄色の中間色（ＧＹ）。
【００８６】
例えば、基準となる所定方向（φ＝０と定義する基準方向）をダンスフロアの正面方向（キャラクタ４１０の顔方向）にとる。キャラクタ４１０が腕を真正面に向けると仮想光４２１が黄色になり、キャラクタ４１０が腕を回転させると、徐々に、赤、紫、青、緑、黄に変化する。この場合、グローバル座標系４０５における方向ベクトル５４０の向きに応じて、まるで七色に変化するように、仮想光４２１の色が変わる。
【００８７】
例えば、ある任意の時刻における方向ベクトル５４０の向きを基準方向とし、角度φを、この基準方向と、別の時刻における方向ベクトル５４０の向きとのなす角度として定義する。キャラクタ４１０が腕を回すと、仮想光４２１の色は、徐々に、黄、赤、紫、青、緑、黄に変化する。この場合、キャラクタ４１０に定義されるローカル座標系におけるボーン４１０の向きに応じて、仮想光４２１の色が変わる。
【００８８】
なお、ＣＰＵ  １０１は、角度φの変化に応じて、仮想光４２１の明度あるいは彩度を変化させてもよい。
【００８９】
図９に示した色相の変化のさせ方は一例に過ぎず、各々の角度φに対して任意の色相を対応付けることが可能である。
【００９０】
次に、生成部３０４は、視点４３０の位置から視線４４０の方向に仮想空間４００を見た様子を表す画像であって、キャラクタ４１０が配置される仮想空間４００を、照明情報３５２に記憶された強度又は色の仮想光４２１で照らした画像を、生成する。ＣＰＵ  １０１とＲＡＭ  １０３と画像処理部１０７が協働して生成部３０４として機能する。
【００９１】
生成される画像には、上述のように強さや色が変化した仮想光４２１で照らし出されるキャラクタ４１０の画像が含まれる。生成された画像はモニターに出力される。
【００９２】
例えば、画像生成装置３００は、仮想空間４００に配置されたキャラクタ４１０が音楽に合わせてダンスする画像を生成する。ＣＰＵ  １０１は、現実空間でユーザが把持する把持モジュール２０１の向きの変化に応じて、キャラクタ４１０の腕の向きを変化させる。ダンスが佳境に入るなどして、把持モジュール２０１が重力方向と逆向きになる（ユーザが腕を上に挙げる）と、仮想空間４００に配置された光源４２０から照射される仮想光４２１が眩しくなった画像がモニターに表示される。よって、現実世界におけるダンスに合わせて、あるいはダンスや曲の盛り上がりに合わせて、仮想空間４００における光の演出を変えることができる。
【００９３】
次に、上述の各部が実行する画像生成処理について、図１０のフローチャートを用いて説明する。本実施形態では、ユーザは現実空間において把持モジュール２０１を手に持ってダンスし、把持モジュール２０１の向きの変化に従って、キャラクタ４１０の手の向きと仮想光４２１の強さ又は色が変わる。画像生成装置３００は、以下に述べる画像生成処理を１回実行することによって１つの静止画像（１コマ分の画像）を生成する。画像生成装置３００が例えば垂直同期割り込みなどの定期的なタイミングでこの画像生成処理を繰り返し行うことにより、仮想空間４００を表す動画像が生成される。以下詳述する。
【００９４】
まず、ＣＰＵ  １０１は、現実空間においてユーザによって把持される把持モジュール２０１の向きを取得する（ステップＳ１００１）。
【００９５】
ＣＰＵ  １０１は、キャラクタ４１０を構成するボーン５１０の向きを示す方向ベクトル５４０の向きを求める（ステップＳ１００２）。例えば、ＣＰＵ  １０１は、ステップＳ１００１で取得した把持モジュール２０１の向きに対応する仮想空間４００における向きを、方向ベクトル５４０の向きとする。
【００９６】
ＣＰＵ  １０１は、ボーン５１０の向きを、ステップＳ１００２で求めた向きに変え（ステップＳ１００３）、ボーン情報３５１を更新する。
【００９７】
ＣＰＵ  １０１は、所定の基準方向と方向ベクトル５４０とのなす角度を求める（ステップＳ１００４）。所定の基準方向は、例えば、グローバル座標系４０５に予め定義される軸方向や、キャラクタ４１０が特定のポーズをとったときのボーン５１０の向き（初期方向）である。
【００９８】
ＣＰＵ  １０１は、ステップＳ１００４で求めた角度に応じて、仮想光４２１の強さ又は色を変える（ステップＳ１００５）。上述のように、ＣＰＵ  １０１は、仮想光４２１を表す画像の色相、彩度、明度のうち少なくともいずれか一つを変える。
【００９９】
複数の光源４２０がある場合には、ＣＰＵ  １０１は、それぞれの光源４２０について、仮想光４２１の強度や色を変えることができる。
【０１００】
そしてＣＰＵ  １０１は、ステップＳ１００３で強さ又は色を変えた仮想光４２１でキャラクタ４１０を含む仮想空間４００を映した画像を画像処理部１０７に生成させる（ステップＳ１００６）。つまり、画像処理部１０７は、仮想空間４００に配置される視点４３０の位置から、視線４４０の方向に、所定の投影面へ、キャラクタ４１０を含む仮想空間４００を投影した画像を生成する。生成された画像はモニターに表示される。
【０１０１】
本実施形態によれば、ユーザによる把持モジュール２０１の向きの変化に応じて、あるいは、キャラクタ４１０の特定の部位の向きの変化に応じて、光の演出を簡単に変えることができる。例えば、コンサートホールのステージで歌手が歌っている様子を表す画像を生成するとき、歌手が腕を挙げて観客にアピールするシーンになると、画像生成装置３００は、ステージがより盛り上がっているような演出や、歌手のモーションに合わせた適切な演出を容易に施すことができる。このとき、画像生成装置３００は、スタートから何秒目のシーンで演出を変える、あるいは曲の始めから何秒目の辺りでスポットライトを当てる、などといった判断をする必要がなく、キャラクタ４１０のボーン５１０の方向に従って都度演出を変えるだけでよい。
【０１０２】
本実施形態では、キャラクタ４１０の腕の向きによって仮想光４２１の強度や色を変えたが、任意の部位を構成するボーン５１０の向きによって強度や色を変えてもよい。キャラクタ４１０はヒト型のキャラクタでなくてもよく、任意の形状のキャラクタでもよい。
【０１０３】
（実施形態２）
次に、本発明のその他の実施形態について説明する。本実施形態では、ボーン５１０の位置の変化に従って、仮想光４２１の強さ又は色が変わる。以下詳述する。
【０１０４】
ボーン情報３５１は、仮想空間４００に配置されるキャラクタ４１０を構成するボーン５１０のグローバル座標系４０５における位置を示す情報である。位置は、グローバル座標系４０５における座標値を用いて表される。キャラクタ４１０が複数のボーン５１０から構成される場合、ボーン情報３５１は、いずれのボーン５１０の位置を示す情報であってもよい。
【０１０５】
例えば、ボーン５１０の位置として、ボーン５１０の２つの端点５１１，５１２の中間点５１３を採用する。ただし、グローバル座標系４０５におけるボーン５１０の位置を表現するために、ボーン５１０内の任意の位置を用いてもよい。
【０１０６】
ボーン更新部３０２は、ボーン情報３５１に格納されたボーン５１０の位置を示す情報を更新する。より詳細には、ＣＰＵ  １０１は、現実空間においてユーザが把持する把持モジュール２０１の位置の変化に応じてボーン５１０の仮想空間４００における位置を変化させるように、ボーン情報３５１を更新する。例えば、現実空間において把持モジュール２０１を手で持ちながらユーザがダンスをすると、把持モジュール２０１の位置の変化に連動して、キャラクタ４１０の腕の位置も変化する。
【０１０７】
あるいは、ＣＰＵ  １０１は、外部メモリ１０６等に記憶された所定のゲームプログラムに従ってボーン５１０の仮想空間４００における位置を変化させるように、ボーン情報３５１を更新することもできる。例えば、把持モジュール２０１の位置の変化と関係なく、キャラクタ４１０にダンスのデモンストレーションをさせるようにボーン情報３５１を更新してもよい。
【０１０８】
照明更新部３０３は、ボーン更新部３０２によって更新されたボーン５１０の位置に対応付けられた強度又は色に、仮想光４２１の強度又は色を更新する。
【０１０９】
つまり、ＣＰＵ  １０１は、ボーン情報３５１が示すボーン５１０の位置の変化に応じて、照明情報３５２が示す仮想光４２１の強さ又は色を変化させる。ボーン５１０の位置が変わると、仮想光４２１が明るくなったり暗くなったりする。あるいは、ボーン５１０の位置が変わると、仮想光４２１が様々な色に変化する。
【０１１０】
例えば、ＣＰＵ  １０１は、図１１（ａ）に示すように、ボーン５１０の位置と、グローバル座標系４０５に定義される所定の基準位置と、の距離δを求め、距離δが大きいほど仮想光４２１を表す画像の明度Ｖを小さくし、角度θが小さいほど仮想光４２１を表す画像の明度Ｖを大きくしてもよい。この例では、ＣＰＵ  １０１は、明度を最小値ＶＭＩＮ（≧０％）から最大値ＶＭＡＸ（≦１００％）までの範囲で変化させる。例えば、この所定の基準位置をダンスフロア上（キャラクタ４１０の足元）にとると、キャラクタ４１０が腕を上に高く挙げるほど仮想光４２１が明るくなり、キャラクタ４１０が腕を下げるほど仮想光４２１が暗くなる。よって、ダンスに合わせて光の演出を適宜変えることができる。
【０１１１】
ＣＰＵ  １０１は、距離δとして、ボーン５１０の位置と仮想空間４００内の任意の位置との距離を求めてもよい。
【０１１２】
ＣＰＵ  １０１は、明度の大きさを距離δに対して直線的に変化させなくてもよく、任意の関数を用いて、距離δの増加に対して明度を単調減少させてもよい。また、ＣＰＵ  １０１は、任意の関数を用いて、距離δの増加に対して明度を単調増加させてもよい。
【０１１３】
ＣＰＵ  １０１は、図１１（ｂ）に示すように、仮想光４２１の明度を、距離δの値に予め対応付けられた値に変化させてもよい。それぞれの明度の値ＶＤ，ＶＥ，ＶＦの大小関係は任意に定義してよい。
【０１１４】
図１１（ａ）と（ｂ）では、ＣＰＵ  １０１は、距離δに応じて明度を変化させているが、明度の代わりに、もしくは明度に加えて、色相や彩度を変化させてもよい。ＣＰＵ  １０１は、仮想光４２１を表す画像の明度、色相、彩度のうち少なくともいずれか一つを変化させることができる。
【０１１５】
仮想光４２１が所定の明度と所定の色相で指定される色系列の光である場合に、距離δの変化に応じて仮想光４２１の彩度を変化させると、仮想光４２１の色は距離δに応じて濃くなったり薄くなったりする。
【０１１６】
仮想光４２１が所定の明度と所定の彩度で指定される色系列の光である場合に、距離δの変化に応じて仮想光４２１の色相を変化させると、仮想光４２１の色は距離δに応じて黄色、赤色、紫色、青色、緑色などに変化する。
【０１１７】
本実施形態によれば、ユーザによる把持モジュール２０１の位置の変化に応じて、あるいは、キャラクタ４１０の特定の部位の位置の変化に応じて、光の演出を簡単に変えることができる。例えば、コンサートホールのステージで歌手が歌っている様子を表す画像を生成するとき、歌手が腕を挙げて観客にアピールするシーンになると、画像生成装置３００は、ステージがより盛り上がっているような演出や、歌手のモーションに合わせた適切な演出を容易に施すことができる。このとき、画像生成装置３００は、スタートから何秒目のシーンで演出を変える、あるいは曲の始めから何秒目の辺りでスポットライトを当てる、などといった判断をする必要がなく、キャラクタ４１０のボーン５１０の位置に従って都度演出を変えるだけでよい。
【０１１８】
本実施形態は、上記実施形態と容易に組み合わせて実施することができる。すなわち、記憶部３０１は、ボーン情報３５１として、ボーン５１０の位置と方向の両方を記憶する。ボーン更新部３０２は、ボーン情報３５１に格納されたボーン５１０の位置と方向を示す情報を更新する。照明更新部３０３は、ボーン更新部３０２によって更新されたボーン５１０の位置と方向に対応付けられた強度又は色に、仮想光４２１の強度又は色を更新する。
【０１１９】
例えば、キャラクタ４１０が手を上に突きだしているときに、仮想光４２１を明るくして派手な演出をしたいとする。仮に、キャラクタ４１０の手を構成するボーン５１０の向きのみを考慮して仮想光４２１を変化させると、キャラクタ４１０が肘を挙げているものの指先が下を向いている場合にも仮想光４２１が明るくなるので、必ずしもキャラクタ４１０の動きに合わせた適切な演出にはならないかもしれない。そこで、キャラクタ４１０の手を構成するボーン５１０の位置も考慮すると、キャラクタ４１０が肘を挙げており且つ指先が上を向いている場合に仮想光４２１を明るくすることができ、好都合である。
【０１２０】
（実施形態３）
次に、本発明のその他の実施形態について説明する。本実施形態では、仮想空間４００に複数の光源が配置されている場合にどの光源からの仮想光４２１を変化させるかを制御する。以下詳述する。
【０１２１】
仮想空間４００には、図４に示すように複数の光源４２０が配置される。
【０１２２】
図１２は、本実施形態の画像生成処理を説明するためのフローチャートである。
図１３は、仮想空間４００を表す図である。
【０１２３】
まず、ＣＰＵ  １０１は、ボーン５１０の方向ベクトル５４０を求める（ステップＳ１２０１）。
【０１２４】
また、ＣＰＵ  １０１は、キャラクタ４１０からそれぞれの光源４２０への方向を求める（ステップＳ１２０２）。例えばＣＰＵ  １０１は、それぞれの光源４２０について、キャラクタ４１０の重心位置や頭の位置などのキャラクタ４１０の代表点４１５と、光源４２０の重心位置やライトの位置などの光源４２０の代表点４２５と、を結ぶベクトル４２８（図中ではそれぞれ４２８Ａ乃至４２８Ｆと記載）を求める。
【０１２５】
ＣＰＵ  １０１は、ステップＳ１２０２で求めたすべてのベクトル４２８の中から、ステップＳ１２０１で求めた方向ベクトル５４０の向きに最も近い向きにある光源４２０を選択する（ステップＳ１２０３）。図１３に示す仮想空間４００の場合、ＣＰＵ  １０１は、光源４２０Ａ乃至４２０Ｆの中から、向きが方向ベクトル５４０に最も近いベクトル４２８Ａに対応する光源４２０Ａを選択する。
【０１２６】
ＣＰＵ  １０１は、キャラクタ４１０の位置からステップＳ１２０３で選択した光源４２０の位置への方向を示すベクトルと、方向ベクトル５４０と、のなす角度を求める（ステップＳ１２０４）。図１３に示す仮想空間４００の場合、ＣＰＵ  １０１は、ベクトル４２８Ａと方向ベクトル５４０とのなす角度を求める。
【０１２７】
ＣＰＵ  １０１は、ステップＳ１２０４で求めた角度に応じて、仮想光の強さ又は色を変える（ステップＳ１２０５）。すなわち、ＣＰＵ  １０１は、選択した光源４２０から照射される仮想光４２１を表す画像の色相、彩度、明度のうち少なくともいずれか一つを変える。
【０１２８】
例えば、ＣＰＵ  １０１は、選択した光源４２０Ａから照射される仮想光４２１Ａを表す画像の明度を、他の光源４２０Ｂ乃至４２０Ｆから照射される仮想光４２１Ｂ乃至４２１Ｆを表す画像の明度より、相対的に大きくする。
【０１２９】
そして、ＣＰＵ  １０１は、ステップＳ１２０５で強さ又は色を変えた仮想光４２１を含むすべての仮想光４２１でキャラクタ４１０を含む仮想空間４００を映した画像を、画像処理部１０７に生成させる（ステップＳ１２０６）。つまり、画像処理部１０７は、仮想空間４００に配置される視点４３０の位置から、視線４４０の方向に、所定の投影面へ、キャラクタ４１０を含む仮想空間４００を投影した画像を生成する。生成された画像はモニターに表示される。
【０１３０】
本実施形態においても、ボーン５１０の向きに代えて、あるいはボーン５１０の向きに加えて、ボーン５１０の位置を考慮して、仮想光４２１の強さや色を変えることができる。
【０１３１】
本実施形態によれば、キャラクタ４１０の特定の部位の向きや位置の変化に応じて、光の演出を簡単に変えることができる。例えば、コンサートホールのステージで歌手が歌っている様子を表す画像を生成するとき、歌手が手を挙げて観客にアピールするシーンになると、画像生成装置３００は、キャラクタ４１０の手が向いている方向にある照明（又はキャラクタ４１０の手に最も近い照明）をより一層明るくすることにより、ステージがより盛り上がっているような演出や、歌手のモーションに合わせた適切な演出を容易に施すことができる。例えば、キャラクタ４１０が手を挙げたとき、最も手に近い光源、言い換えれば手全体を照らし出すために最も貢献している光源からの光を強くすれば、手を挙げたポーズをより強調することができる。また、キャラクタ４１０の手がどの方向を指しているのか、光の強さを比べればすぐに分かる。
【０１３２】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【０１３３】
画像生成装置３００を装置の全部又は一部として動作させるためのプログラムを、メモリカード、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ（Magneto Optical disk）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【０１３４】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【０１３５】
以上説明したように、本発明によれば、簡便に且つタイミング良くキャラクタの様子を強調して演出した画像を生成するために好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【０１３６】
【図１】本発明のゲーム装置が実現される典型的な情報処理装置の概要構成を示す図である。
【図２】本実施形態にて利用されるコントローラと情報処理装置の外観を示す説明図である。
【図３】画像生成装置の機能的な構成を説明するための図である。
【図４】仮想空間の様子を表す図である。
【図５】キャラクタの構成の詳細を説明するための図である。
【図６】光源情報の構成例を示す図である。
【図７】（ａ）と（ｂ）は、ボーンの向きと仮想光の明度（又は色相、彩度）との関係を表す図である。
【図８】仮想空間に配置されたキャラクタのボーンの向きについて説明するための図である。
【図９】ボーンの向きと仮想光の色相（又は明度、彩度）との関係を表す図である。
【図１０】画像生成処理を説明するためのフローチャートである。
【図１１】（ａ）と（ｂ）は、実施形態２において、ボーンの位置と仮想光の明度（又は色相、彩度）との関係を表す図である。
【図１２】実施形態３において、画像生成処理を説明するためのフローチャートである。
【図１３】実施形態３において、仮想空間の様子を表す図である。
【符号の説明】
【０１３７】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
２０１  把持モジュール
２０２  ＣＣＤカメラ
２０３  十字形キー
２０４  Ａボタン
２０５  Ｂボタン
２０６  各種ボタン
２０７  インジケータ
２０８  電源ボタン
２０９  スピーカー
２５１  発光モジュール
２５２  発光ダイオード
２９１  テレビジョン装置
３００  画像生成装置
３０１  記憶部
３０２  ボーン更新部
３０３  照明更新部
３０４  生成部
３５１  ボーン情報
３５２  照明情報
４００  仮想空間
４０５  グローバル座標系
４１０  キャラクタオブジェクト（キャラクタ）
４１５  キャラクタの代表点
４２０  光源オブジェクト（光源）
４２１  仮想光
４２５  光源の代表点
４２８  ベクトル
４３０  視点
４４０  視線
５１０  ボーン
５１１，５１２  ボーンの端点
５１３  ２つの端点の中間点
５２０  制御点
５３０  スキン
５４０  方向ベクトル
【図１】
0004575968.tif 000002
【図２】
0004575968.tif 000003
【図３】
0004575968.tif 000004
【図４】
0004575968.tif 000005
【図５】
0004575968.tif 000006
【図６】
0004575968.tif 000007
【図７】
0004575968.tif 000008
【図８】
0004575968.tif 000009
【図９】
0004575968.tif 000010
【図１０】
0004575968.tif 000011
【図１１】
0004575968.tif 000012
【図１２】
0004575968.tif 000013
【図１３】
0004575968.tif 000014