(57)【特許請求の範囲】
【請求項１】
仮想空間内に配置されるキャラクタの位置と、当該仮想空間内に配置される視点の位置と、当該仮想空間内において当該キャラクタと当該視点とを結ぶ線上の所定の位置に配置され、当該キャラクタと当該視点とを結ぶ回転軸の周りを回転する平面体の位置および向きと、を記憶する記憶部、
当該視点の位置を移動させるように、前記記憶部を更新する視点移動部、
当該視点の位置が移動されると、当該平面体を回転させるように前記記憶部を更新する平面体移動部、
前記記憶された視点の位置から当該仮想空間を見た様子を表す画像を生成する生成部、
を備え、
当該平面体は、当該回転の中心から所定の範囲内でほぼ透明であり、それ以外の範囲では半透明もしくは不透明である、
ことを特徴とする表示装置。
【請求項２】
請求項１に記載の表示装置において、
前記記憶部は、当該仮想空間内に配置される基準軸の位置および向きをさらに記憶し、
当該視点の位置が移動されると、当該基準軸の周りを当該視点が回転した回転量を計算する回転量計算部をさらに備え、
前記平面体移動部は、前記計算された回転量だけ、当該回転軸の周りで当該平面体を回転させるように前記記憶部を更新する、
ことを特徴とする表示装置。
【請求項３】
請求項１または２に記載の表示装置であって、
当該平面体は当該回転軸から離れる程透明度が低くなる、
ことを特徴とする表示装置。
【請求項４】
請求項１から３のいずれか１項に記載の表示装置であって、
当該平面体は当該回転軸に対して、軸対称ではない、
ことを特徴とする表示装置。
【請求項５】
請求項２から４のいずれか１項に記載の表示装置であって、
当該基準軸は当該キャラクタの位置を通過し、当該基準軸の向きは一定である、
ことを特徴とする表示装置。
【請求項６】
請求項２から４のいずれか１項に記載の表示装置であって、
前記記憶部は、当該仮想空間を照らす光源の位置をさらに記憶し、
ユーザの指示もしくは時間の経過により、当該光源の位置を移動させるように前記記憶部を更新する光源移動部
をさらに備え、
前記生成部は、当該光源に当該仮想空間が照らされる様子を表す画像を生成し、
当該基準軸は、当該光源の位置と当該キャラクタの位置とを通過し、
前記回転量計算部は、当該視点の位置もしくは光源の位置が移動されると、当該回転量を計算する、
ことを特徴とする表示装置。
【請求項７】
請求項１から６のいずれか１項に記載の表示装置であって、
当該平面体の透明度のコントラストは当該キャラクタと当該視点との距離に応じて変化する、
ことを特徴とする表示装置。
【請求項８】
記憶部、視点移動部、平面体移動部、生成部、を備える表示装置による表示方法であって、
前記記憶部は、仮想空間内に配置されるキャラクタの位置と、当該仮想空間内に配置される視点の位置と、当該仮想空間内において当該キャラクタと当該視点とを結ぶ線上の所定の位置に配置され、当該キャラクタと当該視点とを結ぶ回転軸の周りを回転する平面体の位置および向きと、を記憶し、
前記表示方法は、
前記視点移動部が、当該視点の位置を移動させるように、前記記憶部を更新する視点移動工程、
前記平面体移動部が、当該視点の位置が移動されると、当該平面体を回転させるように前記記憶部を更新する平面体移動工程、
前記生成部が、前記記憶された視点の位置から当該仮想空間を見た様子を表す画像を生成する生成工程、
を備え、
当該平面体は、当該回転の中心から所定の範囲内でほぼ透明であり、それ以外の範囲では半透明もしくは不透明である、
ことを特徴とする表示方法。
【請求項９】
コンピュータを、
仮想空間内に配置されるキャラクタの位置と、当該仮想空間内に配置される視点の位置と、当該仮想空間内において当該キャラクタと当該視点とを結ぶ線上の所定の位置に配置され、当該キャラクタと当該視点とを結ぶ回転軸の周りを回転する平面体の位置および向きと、を記憶する記憶部、
当該視点の位置を移動させるように、前記記憶部を更新する視点移動部、
当該視点の位置が移動されると、当該平面体を回転させるように前記記憶部を更新する平面体移動部、
前記記憶された視点の位置から当該仮想空間を見た様子を表す画像を生成する生成部、
として機能させ、
当該平面体は、当該回転の中心から所定の範囲内でほぼ透明であり、それ以外の範囲では半透明もしくは不透明である、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
キャラクタがスポットライトに照らされている様子を表す画像を簡易、且つ少ない計算量で表示するのに好適な表示装置、表示方法、ならびに、プログラムに関する。 
【背景技術】
【０００２】
従来からキャラクタに照明が当たっている様子を表す画像を表示する技術が提案されている。このような技術は、例えば、以下の文献に開示されている。
【特許文献１】特開２００８−０２７０５０号公報
【０００３】
特許文献１に開示の技術では、仮想空間内の全方位からオブジェクトを見た画像を生成するため、仮想空間内の面オブジェクト、立体オブジェクト、光源、視点、視線方向の情報から、光源からの光によって面オブジェクトに投影される立体オブジェクトの陰影の形状と位置を計算し、視点が面オブジェクトに対して立体オブジェクトと同じ側にあるか異なる側にあるかを判断し、同じ側にある場合、面オブジェクト、立体オブジェクト及びその陰影を含む画像を生成し、異なる側にある場合、立体オブジェクト及びその陰影を含む画像を生成する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、このような光源の計算をスポットライトに適用すると、光源が複数となり、計算が複雑になる、という問題が生ずることがある。したがって、簡易に且つ少ない計算量でスポットライトに照らされたキャラクタの様子を表示する技術が求められている。
【０００５】
本発明は以上のような課題を解決するためのものであり、キャラクタがスポットライトに照らされている様子を表す画像を簡易、且つ少ない計算量で表示するのに好適な表示装置、表示方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第１の観点に係る表示装置は、記憶部と、視点移動部と、平面体移動部と、生成部と、を備える。
【０００７】
記憶部は、仮想空間内に配置されるキャラクタの位置と、当該仮想空間内に配置される視点の位置と、当該仮想空間内において当該キャラクタと当該視点とを結ぶ線上の所定の位置に配置され、当該キャラクタと当該視点とを結ぶ回転軸の周りを回転する平面体の位置および向きと、を記憶する。
【０００８】
ここで、視点は３次元仮想空間を見ている仮想カメラであり、当該仮想空間の２次元画像は、当該視点から視線方向（視線は視点が向いている方向である）に見た当該仮想空間を、２次元平面（投射面または投影面とも呼ぶ）に投射することで生成される。
【０００９】
また、平面体は、スポットライトを表現するためのものであり、キャラクタと視点とを結ぶ直線上の、キャラクタの位置（例えば重心などの代表点）と視点の位置との間の所定の位置に、当該直線と垂直に交わるように配置される。平面体は、後述するように、中心部から所定の範囲内でほぼ透明であり、それ以外の範囲では半透明もしくは不透明である。よって、視点から見た仮想空間を投射面に投影すると、キャラクタの手前に中心部が透明な平面体が配置されるため、キャラクタの中心部分から所定の範囲内が描画され、それ以外の部分は、中心部分に比べると不透明に描画されるか、もしくは全く描画されない。
【００１０】
視点移動部は、当該視点の位置を移動させるように、記憶部を更新する。即ち、ユーザがコントローラなどの入力装置を用いて、仮想カメラ（視点）の位置や向き（視線の方向）、を指定するためのパラメータを変更する旨の指示をすると、視点移動部は当該指示入力に基づいて記憶部に記憶された視点の位置や視線の方向等を更新する。このほか、視点の位置や向きなどのパラメータは、制御プログラムなどから与えられてもよい。あるいは、時間の経過に対応付けてパラメータを所定の値に変更したり、ランダムに変更したりしてもよい。 
【００１１】
平面体移動部は、当該視点の位置が移動されると、当該平面体を回転させるように記憶部を更新する。即ち、当該平面体によって表現されるスポットライトは、当該視点の位置に応じて、当該平面体の位置と、キャラクタの位置とを結ぶ軸に対して回転する。これにより、効果的にスポットライトの演出を行う。
【００１２】
生成部は、記憶された視点の位置から当該仮想空間を見た様子を表す画像を生成する。即ち、生成部は３次元仮想空間内のキャラクタを含むオブジェクトを２次元平面に描画するために、視点から視線の方向に見た３次元仮想空間内の全オブジェクトの様子を投射面へと投射して描画する。生成部は、描画された画像データを例えばフレームバッファなどに記憶し、垂直同期割り込みが生じると、フレームバッファの内容をモニター等の表示装置に転送する。 
【００１３】
また、当該平面体は、当該回転の中心から所定の範囲内でほぼ透明であり、それ以外の範囲では半透明もしくは不透明である。即ち、上述のように、視点から仮想空間を投射面に投影すると、キャラクタの手前に中心部が透明な平面体が描画されるため、平面体の中心部に対応するキャラクタの中心部分のみが描画され、それ以外は不透明に表示されるか、全く表示されない。これによりスポットライトのような効果を得ることができる。
【００１４】
このような表示装置によれば、視点の移動した位置に応じて、中心部が透明な平面体が回転し、当該平面体を視点とキャラクタの間に配置することで、スポットライトが回転しているかのような効果を得ることができる。
【００１５】
また、記憶部は、当該仮想空間内に配置される基準軸の位置および向きをさらに記憶する。ここで、基準軸とは、視点の移動した位置を算出する際に基準となる、仮想空間内に配置される軸である。
【００１６】
このとき、表示装置は、当該視点の位置が移動されると、当該基準軸の周りを当該視点が回転した回転量を計算する回転量計算部をさらに備えるようにしてもよい。即ち、回転量計算部は、視点が基準軸の周りをどの程度移動するかに応じて、平面体の回転軸に対する回転角を決定する。
【００１７】
また、平面体移動部は、計算された回転量だけ、当該回転軸の周りで当該平面体を回転させるように記憶部を更新するようにしてもよい。即ち、視点移動部がユーザの指示等により、記憶部に記憶される視点の位置を更新すると、平面体移動部が、視点の移動した位置に応じて、平面体を回転させるように、記憶部に記憶される平面体の位置を更新する。
【００１８】
これにより、平面体を、ある程度規則性を保ちつつ、ただし、単調にならないように、回転させることができる。
【００１９】
また、当該平面体は当該回転軸から離れる程透明度が低くなる、ことを特徴とする。即ち、当該平面体は、当該回転の中心から所定の範囲内でほぼ透明であり、それ以外の範囲では半透明もしくは不透明であるが、ほぼ透明な領域から不透明な領域へは序々に透明度を変えて移行してもよい。
【００２０】
また、当該平面体は当該回転軸に対して、軸対称ではない、ことを特徴とする。即ち、回転軸を当該回転軸が伸びる方向に向かってみた場合、当該回転軸は点で表現される。このとき、回転軸と垂直に配置される平面体の透明な部分は、当該点に対して点対称、即ち円形でない形状が好ましい。これにより、当該平面体の回転動作が明確となる。
【００２１】
また、当該基準軸は当該キャラクタの位置を通過し、当該基準軸の向きは一定である、ことを特徴とする。上述のように、回転量計算部は、平面体が回転軸に対して回転する回転角を、視点がどの程度基準軸の周りを移動するかに応じて決定する。この基準軸は、仮想空間全体を表現するグローバル座標系において、例えば、キャラクタの位置を通過する、常に垂直方向（即ちＹ軸方向）を向いている軸である。
【００２２】
また、表示装置において、記憶部は、当該仮想空間を照らす光源の位置をさらに記憶するようにしてもよい。ここで、光源とは、スポットライトのように個別のキャラクタを照らすものとは別に、当該仮想空間を照らすものである。
【００２３】
ユーザの指示もしくは時間の経過により、当該光源の位置を移動させるように、記憶部を更新する光源移動部をさらに備えるようにしてもよい。即ち、光源の位置は、ユーザがコントローラなどを操作して指示することができる。または時間に応じて光源を所定の位置に移動させることができる。光源移動部は、光源が移動した位置で記憶部を更新する。
【００２４】
このとき、生成部は、当該光源に当該仮想空間が照らされる様子を表す画像を生成し、当該基準軸は、当該光源の位置と当該キャラクタの位置とを通過し、回転量計算部は、当該視点の位置もしくは光源の位置が移動されると、当該回転量を計算する、ことを特徴としてもよい。即ち、平面体は、視点の位置だけでなく、光源の位置に応じて回転させてもよい。このとき、基準軸の向きは、上述したように一定の方向を向いて配置するのではなく、キャラクタと光源との位置を通過するように配置する。
【００２５】
また、当該平面体の透明度のコントラストは当該キャラクタと当該視点との距離に応じて変化する、ことを特徴としてもよい。即ち、当該平面体の半透明、もしくは不透明な部分について、透明度を固定せずに、視点とキャラクタの距離に応じて、透明度を変化させてもよい。
【００２６】
また、本発明の他の観点に係る表示方法は、記憶部、視点移動部、平面体移動部、生成部、を備える表示装置による表示方法である。
【００２７】
ここで、記憶部は、仮想空間内に配置されるキャラクタの位置と、当該仮想空間内に配置される視点の位置と、当該仮想空間内において当該キャラクタと当該視点とを結ぶ線上の所定の位置に配置され、当該キャラクタと当該視点とを結ぶ回転軸の周りを回転する平面体の位置および向きと、を記憶する。
【００２８】
一方、視点移動工程では、視点移動部が、当該視点の位置を移動させるように、記憶部を更新する。そして、平面体移動工程では、平面体移動部が、当該視点の位置が移動されると、当該平面体を回転させるように記憶部を更新する。
【００２９】
生成工程では、生成部が、記憶された視点の位置から当該仮想空間を見た様子を表す画像を生成する。このとき、当該平面体は、当該回転の中心から所定の範囲内でほぼ透明であり、それ以外の範囲では半透明もしくは不透明である。
【００３０】
また、本発明の他の観点に係るプログラムは、コンピュータを、上記の表示装置として機能させるように構成する。 
【００３１】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。 
【発明の効果】
【００３２】
キャラクタがスポットライトに照らされている様子を表す画像を簡易、且つ少ない計算量で表示するのに好適な表示装置、表示方法、ならびに、プログラムを提供することができる。
【発明を実施するための最良の形態】
【００３３】
以下に本発明の実施の形態を説明する。以下では、理解を容易にするため、ゲーム装置に本発明が適用される実施の形態を説明するが、各種のコンピュータ、ＰＤＡ、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施の形態は説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと等しいものに置換した実施形態を採用することが可能であるが、これらの実施の形態も本発明の範囲に含まれる。
（実施形態） 
図１は、本発明の実施形態の１つに係る表示装置が実現される典型的なゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００３４】
ゲーム装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ（Read Only Memory) １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ（Digital Versatile Disk）−ＲＯＭドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、を備える。
【００３５】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、ゲーム装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態の表示装置が実現される。
【００３６】
ＣＰＵ １０１は、ゲーム装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【００３７】
ＲＯＭ １０２は、電源投入直後に実行されるＩＰＬ（Intial Program Loader）を記憶する。このＩＰＬをＣＰＵ １０１が実行することにより、ＤＶＤ−ＲＯＭに記録されたプログラムがＲＡＭ １０３に読み出され、ＣＰＵ １０１による実行が開始される。
また、ＲＯＭ １０２にはゲーム装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００３８】
ＲＡＭ １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータ等が保持される。
【００３９】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【００４０】
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、例えばチャット通信のログのデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記憶することができる。
【００４１】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、前述のようにゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ １０３等に一時的に記憶される。
【００４２】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニター（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００４３】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００４４】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００４５】
さらに、ＣＰＵ １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ＲＯＭ １０２に記録されているが、ＤＶＤ−ＲＯＭに記録された専用のフォント情報を利用することも可能である。
【００４６】
ＮＩＣ １０９は、ゲーム装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものである。ＮＩＣ １０９は、例えばＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格に準拠するものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ １０１との仲立ちを行うインターフェイス（図示せず）により構成される。
【００４７】
インターネット内のＳＮＴＰサーバにＮＩＣ １０９を介して接続し、ここから情報を取得することによって現在の日時情報を得ることができる。また、各種のネットワークゲームのサーバ装置が、ＳＮＴＰサーバと同様の機能を果たすように構成設定してもよい。
【００４８】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００４９】
このほか、ゲーム装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ １０２、ＲＡＭ １０３ 、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００５０】
なお、本実施の形態に係る表示装置は、上述した典型的なゲーム装置上に実現されるが、一般的なコンピュータ上に実現することもできる。一般的なコンピュータは、上記ゲーム装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、メモリカード、ＤＶＤ−ＲＯＭ ドライブ、および、ＮＩＣを備え、ゲーム装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、入力部ではなく、キーボードやマウスなどを入力装置として利用する。そして、プログラムをインストールした後に、そのプログラムを実行させると、表示装置として機能させることができる。 
【００５１】
以下では、注記しない限り、表示装置は、図１に示したゲーム装置１００により説明を加える。表示装置は、必要に応じて適宜一般的なコンピュータの要素に置換することができ、これらの実施の形態も本発明の範囲に含まれる。
【００５２】
（実施形態１） 
図２は、本実施の形態に係る表示装置２００の機能ブロック図である。表示装置２００は、図２に示すように、記憶部２０１、視点移動部２０２、回転量計算部２０４、平面体移動部２０５、生成部２０３、等を備える。以下に表示装置２００の各構成要素について本図を参照して説明する。
【００５３】
記憶部２０１は、仮想空間内のキャラクタの形状情報や、配置される位置、および向きの情報等を記憶する。これらの情報は例えばＤＶＤ−ＲＯＭに予め格納されており、ＣＰＵ １０１がＤＶＤ−ＲＯＭドライブ１０８に装着されたＤＶＤ−ＲＯＭを読み出してＲＡＭ １０３に一時記憶させる。あるいは、外部メモリ１０６に記憶させたこれら情報を、ＣＰＵ １０１に読み出させ、ＲＡＭ １０３に一時記憶させるようにしてもよい。なお、ＣＰＵ １０１は、一時記憶された情報を、例えばゲームの進行に応じて、随時更新することができる。このように、ＣＰＵ １０１、ＲＡＭ １０３、ＤＶＤ−ＲＯＭドライブ１０８等が協働して動作することにより、記憶部２０１として機能する。 
【００５４】
このとき、仮想空間内のキャラクタ（およびその他のオブジェクト）の形状情報や、配置される位置、および向きの情報は、仮想空間の全体を表現するグローバル座標系（ワールド座標系）と、キャラクタ毎に固定されたローカル座標系に基づいて定義される。典型的には、キャラクタの代表点（例えば重心）がローカル座標系の原点であり、キャラクタのサーフェス形状（即ち、キャラクタを構成するポリゴンの形状や当該ポリゴンが配置される位置）がローカル座標系に基づいて定義される。一方、個々のキャラクタの位置は、グローバル座標系に基づいて定義される。そして、キャラクタの基準となる向きは、例えば、キャラクタの代表点からキャラクタの正面方向に延びる方向ベクトルによって、グローバル座標で定義する。キャラクタの向きを変更する場合は、この基準となる位置から、変更した角度をローカル座標系に基づいて定義すればよい。
【００５５】
なお、位置情報は直交座標系を用いて定義しても、１個の動径と２個の偏角を用いた極座標系を用いて（ｒ，θ，φ）で表してもよい。 
【００５６】
さらに、記憶部２０１は、視点の位置、および、視線の方向についても、上述のように、グローバル座標系やローカル座標系を用いて記憶する。ここで、視点の位置とは、仮想的なカメラが当該仮想空間においてキャラクタを見ている位置であり、典型的にはグローバル座標系で定義される。
【００５７】
このほか、記憶部２０１は、スポットライトを表現するための平面体の形状、および、位置もグローバル座標系やローカル座標系を用いて同様に記憶する。ここで、図３（Ａ）に示すように、平面体３０２は視点３０１とキャラクタ３００とを結ぶベクトルｘ上の、当該視点３０１とキャラクタ３００との間の所定の位置に配置される。平面体３０２は当該ベクトルｘと垂直に配置され、図３（Ｂ）、および（Ｃ）に示すように、その中心から所定の範囲内でほぼ透明であり、それ以外の範囲では半透明もしくは不透明である。
【００５８】
なお、透明部分と不透明部分は、図３（Ｂ）に示すように、はっきりと境界を区分してもよいし、図３（Ｃ）に示すように、序々に変化させるようにしてもよい。
【００５９】
また、図３（Ｂ）および（Ｃ）では、中心の透明部分は、例えば楕円系を有しているが、楕円形でなくとも、ベクトルｘに対して軸対称、（即ち、平面体を正面から見た場合は、当該ベクトルｘに対して点対称）以外の形状であればよい。これにより、後述のように、平面体が回転する際に、その回転動作が明確となる。
【００６０】
視点移動部２０２は、ユーザのコントローラなどの操作に応じて、当該視点の位置を移動させるように、記憶部２０１を更新する。即ち、ユーザの操作に応じて、記憶部２０１に記憶される視点の位置や向きが、視点移動部２０２により更新される。このように、ＣＰＵ １０１やＲＡＭ １０３等が協働して視点移動部２０２として機能する。
【００６１】
回転量計算部２０４は、視点移動部２０２によって視点の位置が移動されると、移動された視点の位置に応じて、平面体を回転させる回転量を算出する。ＣＰＵ １０１やＲＡＭ １０３等が協働して回転量計算部２０４として機能する。
【００６２】
平面体移動部２０５は、キャラクタと視点とを結ぶ線上の所定の位置に平面体が配置されるように、また、回転量計算部２０４によって算出された回転量だけ、平面体が回転軸に対して回転されるように、記憶部２０１に記憶される平面体の位置、および向きを更新する。このように、ＣＰＵ １０１やＲＡＭ １０３などが協働して平面体移動部２０５として機能する。 
【００６３】
生成部２０３は、視点移動部２０２によって更新された視点の位置および向き、平面体移動部２０５によって更新された平面体の位置などに基づいて、当該視点から、当該３次元仮想空間内の各キャラクタを投射面に投射（投影）して、モニター等の表示装置に表示する画像データを生成する。本実施の形態では、例えば１点透視法で透視投影する。ＣＰＵ １０１、ＲＡＭ １０３、画像処理部１０７が協働して動作することにより、生成部２０３として機能する。 
【００６４】
（表示装置の動作処理） 
以上のような構成を有する表示装置２００の動作処理を図４を参照して説明する。 
【００６５】
表示装置２００が電源を投入されて、処理を開始すると、ＲＡＭ １０３に必要な情報（例えば視点の位置や向き、そしてキャラクタの形状、位置、そして向きなど）が読み込まれる。これにより、記憶部２０１が初期化され、表示装置２００は、ユーザ入力の受付待ち状態となる（ステップＳ１１０）。 
【００６６】
次いで、視点移動部２０２が、当該ユーザから視点に関するパラメータの変更の指示入力があったか判断する（ステップＳ１１１）。本実施の形態においては、ユーザは、コントローラ１０５を用いて、視点の位置、視点の向き（視線方向）、視点の撮影倍率（ズーム率）、等を変更する旨の指示ができる。 指示入力があった場合（ステップＳ１１１；Ｙ）、視点移動部２０２は入力に基づいて、記憶部２０１の視点の位置、向き、を更新する（ステップＳ１１２）。このとき、視点移動部２０２は、更新された視点の位置等に応じて、当該仮想空間内に配置される投射面の位置や向きもさらに算出する。 
【００６７】
即ち、視点移動部２０２は視点を起点とする視線ベクトル（視線の向きを表すベクトル）と垂直に交わる向きを算出し、これを投射面の向きとする。そして、ズームインの際には投射面を３次元空間内の撮影対象に近づくように（視点から遠ざかるように）並行移動させ、ズームアウトの際には撮影対象から遠ざかるように（視点に近づくように）平行移動させる。視線ベクトルの向きを変える（即ち視点をパンする）ときには、視線ベクトルの向きにしたがって投射面の向きも変える。このように、視点移動部２０２は視点の位置および視点の見ている方向（視線ベクトルの向き）、そしてズーム倍率などから投射面の位置や向きを決定し、記憶部２０１に記憶（更新）する。 
なお、ユーザから視点に関するパラメータの変更の指示入力がなかった場合（ステップＳ１１１；Ｎ）、処理はステップＳ１１５に進む。 
【００６８】
なお、視点の位置や向きなどのパラメータは、制御プログラムなどから与えられてもよい。あるいは、時間の経過に対応付けてパラメータを所定の値に変更したり、ランダムに変更したりしてもよい。 
【００６９】
視点の更新を行うと、次いで、回転量計算部２０４は、視点の移動に応じて平面体の回転量を算出する。回転量の算出方法を、図５を参照して説明する。
【００７０】
まず、キャラクタ３００の位置（重心などの代表点を、キャラクタ（および視点、平面体）の位置とする）を通過する、仮想空間内において向きの一定な軸Ａが仮想空間内に配置される。以降この軸Ａを基準軸と呼ぶ。典型的には、基準軸Ａは、図５に示すように、仮想空間を表すグローバル座標系のＹ軸方向（直交座標系の垂直方向）に配置される。
【００７１】
回転量計算部２０４は、視点３０１が、所定の初期位置Ｘ（例えば、グローバル座標の原点）からこの基準軸Ａに対してどの程度移動しているかを算出する。即ち、まず、回転量計算部２０４は、視点３０１から基準軸Ａへと垂直に降ろした垂線ベクトルｘ１’、および、初期位置Ｘから基準軸Ａへと垂直に降ろした垂線ベクトルｘを求める。そして、垂線ベクトルｘ１’が垂線ベクトルｘから基準軸に対して移動した角度を、視点３０１の移動量として求める。
【００７２】
即ち、図６に示すように、図５に示す仮想空間を上方から見た場合、基準軸ＡはＺ軸方向に（即ち、読み手から図面の方向に）伸び、垂線ベクトルｘと垂線ｘ１’は基準軸Ａに対して角度αを成す。この角度αが、視点３０１の移動量となる。
【００７３】
次いで、平面体移動部２０５は、平面体が、視点とキャラクタとを結ぶ直線上の平面体と視点との間の所定の位置に配置されるように記憶部２０１を更新する。また、平面体移動部２０５は、上述のようにして回転量計算部２０４によって算出された角度αで、視点３０１からキャラクタ３００に伸びる直線を軸とした回転軸（図５におけるベクトルｘ１）に対して平面体を所定の初期位置から回転させるように記憶部２０１を更新する（ステップＳ１１４）。即ち、視点３０１が基本軸Ａの周りを一周すると、平面体３０２も回転軸ｘ１に対して１回転して、初期位置に戻る。
【００７４】
なお、基準軸や回転軸はオブジェクトとして仮想空間に配置されるものではなく、平面体の回転量を求めるために使われるものである。ただし、理解を容易にするために、本図では基準軸や回転軸を明記している。 
【００７５】
次いで、生成部２０３は、仮想空間の２次元画像を描画する（ステップＳ１１５）。即ち、まず、生成部２０３はキャラクタの投射先領域を求める。本実施の形態では、上述のように、各キャラクタを投射面に１点透視法で透視投影するため、視点から遠くにあるキャラクタは小さく、近くにあるキャラクタは大きく投影されることになる。ただし、１点透視法の代わりに、平行投影を採用することもできる。 
【００７６】
投影先を求めると、投影先の各領域に、対応するテクスチャ（記憶部２０１に記憶される）の対応する領域を貼り付けて（即ち、マッピングして）描画する。このとき、生成部２０３は陰面処理を行うために、例えば、Ｚバッファ法などを用いる。即ち、生成部２０３は描画する画像データを構成する画素ごとに、視点（投射面）に最も近いポリゴンに対応するテクスチャ情報の色で、当該画素を塗るようにする。
【００７７】
平面体は視点とキャラクタとを結ぶ直線上の、平面体と視点との間の所定の位置に配置される。したがって、図７（Ａ）に示すように、視点３０１から見て、キャラクタ３００は、平面体３０２よりも奥に配置される。よって、上記のような陰面処理を行って投射面３０４に仮想空間を投射すると、図７（Ｂ）に示すように、平面体の透明部分では、キャラクタが描画され、半透明、または不透明部分では、キャラクタは半透明、または不透明に、描画される。図７（Ｃ）には、例えば定位置から角度αだけ平面体が回転軸に対して回転された場合に描画された平面体とキャラクタとの例を示す。
【００７８】
以上の画像生成処理を終了すると、生成部２０３は垂直同期割込が生じるまで待機する（ステップＳ１１６）。待機中には、他の処理（例えば、ＲＡＭ １０３内に記憶される各キャラクタ、および視点の位置や向きを、時間の経過やユーザからの処理に基づいて更新する等の処理）をコルーチン的に実行してもよい。
【００７９】
垂直同期割込が生じたら、生成部２０３は描画した画像データ（通常フレームバッファに記憶）の内容をモニター（図示せず）に転送して、画像を表示し（ステップＳ１１７）、ステップＳ１１１に戻る。 
【００８０】
視点だけでなく、さらにキャラクタが移動される場合については次のように平面体の回転量を算出すればよい。例えば、キャラクタの移動に応じて基準軸は移動した先のキャラクタの位置を通過するように配置する（ただし向きは一定に保持する）。そして、当該基準軸に対する初期位置からの視点の移動角度を当該平面体の回転量とすればよい。
【００８１】
（実施形態２）
上記実施の形態では、回転量計算部２０４は、視点の移動量に基づいて平面体の回転量を算出した。本実施の形態では、視点の移動量のほか、仮想空間を照らす光源の移動量にも基づいて、平面体の回転量を算出する方法について述べる。
【００８２】
（概要構成）
本実施の形態は、図２に示す第１の実施の形態と同様の構成を有している。ただし、記憶部２０１は、光源の位置をさらに記憶し、表示装置２００はさらに、光源移動部２０６を備える。そして、回転量計算部２０４は、視点移動部２０２および、光源移動部２０６のそれぞれによって更新された視点、および光源の位置に基づいて、回転量を算出する。本実施の形態の概要構成を図８に示す。
【００８３】
以下、新たな構成である光源移動部２０６および、上記の新たな機能を備える記憶部２０１、回転量計算部２０４について説明する。
【００８４】
記憶部２０１は、キャラクタの位置や向きの他、仮想空間を照らす光源の位置を記憶する。なお、光源は、典型的にはグローバル座標系で定義される。
【００８５】
光源移動部２０６は、ユーザによるコントローラなどの操作や、プログラムによる指示、または時間の経過等に応じて、当該光源の位置を移動させるように、記憶部２０１を更新する。このように、ＣＰＵ １０１やＲＡＭ １０３等が協働して光源移動部２０６として機能する。
【００８６】
回転量計算部２０４は、視点の位置の他に、更新された光源の位置に基づいて、平面体が回転する角度を算出する。
【００８７】
（動作処理）
以上の構成を有する表示装置２００の動作処理を、図９を参照して説明する。
【００８８】
まず、初期化処理（図４に示すステップＳ１１０と同様の処理）が終了すると、視点移動部２０２は、ユーザから視点に関するパラメータの変更の指示入力があったかを判断し、光源移動部２０６は、さらに、ユーザから光源に関するパラメータの変更の指示入力があったかを判断する（ステップＳ１１１’）。光源の移動に関する指示入力があった場合（ステップＳ１１１’；Ｙ）、光源移動部２０６は、指示入力に応じて、記憶部２０１の光源の位置を更新する（ステップＳ１１２’）。
【００８９】
次いで、回転量計算部２０４は、光源の所定の定位置からの当該光源の移動量を算出し、算出された移動量に基づいて、平面体の回転量を算出する（ステップＳ１１３’）。本実施の形態においては、理解を容易にするために、視点の移動は考慮せずに、まず、光源の移動量に応じて、平面体の回転量の算出方法を説明する。ここで、光源の定位置を予め定め、当該定位置からの光源の移動量に基づいて、平面体の回転量を算出する。
【００９０】
図１０を参照して、回転量計算部２０４が、光源の移動量に基づいて平面体の回転量を計算する手順を、光源が所定の定位置Ｖから、Ｖ’の位置まで移動した場合を例に説明する。
【００９１】
まず、光源が位置（点）ＶからＶ’まで移動したときに、光源と視点との位置関係が相対的に保たれるように、視点も移動する。そのために、光源の位置から伸びて、キャラクタ３００の位置を通過するベクトルｖ、および、光源の移動した先の位置から伸びて、キャラクタ３００の位置を通過するベクトルｖ’の両ベクトルを含む平面と垂直な軸（即ち、外積、ｖ×ｖ’によって求まる軸）を求める。次いで、軸ｖ×ｖ’に対して、光源が移動した角度θを求め、視点も同様に、定位置Ｘから、軸ｖ×ｖ’に対して角度θだけ移動させる。これにより、光源と視点との位置関係が相対的に保たれるように、視点が位置ＸからＸ’へと移動される。
【００９２】
次に、回転量計算部２０４は、基準軸に対する視点の移動量を求める。ここで、第１の実施形態においては、基準軸はキャラクタを通過する、向きが一定の軸であったが、本実施の形態においては、基準軸は光源の位置とキャラクタの位置とを通過する直線である（図１０（Ａ）におけるｖ’）。回転量計算部２０４は、光源が移動する前の視点の位置（Ｘ）から、光源が移動した後の視点の位置（Ｘ’）、の基準軸（ベクトルｖ’）に対する移動量を算出する。即ち、点ＸおよびＸ’から、基準軸へと伸びる垂線ベクトルｘおよびｘ’をそれぞれ算出し、それら垂線ベクトルをベクトルｖ’に対して並行に移動させて、同一平面上に配置する。このとき、当該２つの垂線ベクトルの成す角度γを視点の移動量とする。
【００９３】
平面体移動部２０５は、算出された回転量と同じ角度だけ、平面体を回転軸に対して回転させるように、記憶部２０１の平面体の位置を更新する。したがって、第１の実施の形態と同様に、基準軸の周りを１周すると、平面体も回転軸に対して１回転する。
【００９４】
以降は第１の実施の形態と同様の手順で仮想空間を投射面へ投射し（ステップＳ１１５）、垂直同期待ちを行い（ステップＳ１１６）、モニターに表示する（ステップＳ１１７）。詳細については第１の実施の形態で既に説明しているため、割愛する。
【００９５】
なお、本実施の形態において、ステップＳ１１１’で、光源の他にも視点の位置の更新があったと判断された場合、回転量計算部２０４は、定位置Ｘから、ユーザによって指示された位置に視点が配置されるよう更新する。そして、定位置Ｘに替えて、当該更新された位置を用いて、上述の処理を行う。これにより、平面体の回転量は、光源と視点の両方の移動に基づいて決定される。
【００９６】
また、回転量計算部２０４は、光源および視点の移動量の他に、キャラクタの移動量に基づいて平面体の回転量を算出してもよい。
例えば、視点が、位置ＸからＸ’へ、光源が位置ＶからＶ’へ、キャラクタが位置ＺからＺ’へ移動した場合を例に説明する。まず、光源の移動は考慮せずに、移動する前の光源の位置Ｖと移動する前のキャラクタの位置Ｘとを結ぶベクトルを基準軸とする。そして、第１の実施の形態の変形例である、キャラクタの移動に応じて回転量を算出する方法を適用する。即ち、基準軸の向きは保ちつつ、移動後のキャラクタ位置Ｚ’を通過するように移動して、図５および図６の方法で、視点が当該基準軸の周りをどの程度移動したかを求める。
【００９７】
次いで、移動する前の光源の位置Ｖと移動する前のキャラクタの位置Ｚとの相対的な位置関係が保たれるように、移動後のキャラクタの位置Ｚ’に対して、光源の位置をＶ’’へと移動する。Ｖ’とＺ’とを結ぶ直線を基準軸としたときに、このＶ’’を光源の定位置として、光源が位置Ｖ’’からＶ’へと移動したときの基準軸の周りの移動量を、第２の実施形態の方法（即ち、図１０に示す方法を適用して算出する）。求めた２つの移動量を合計して、平面体の回転量とすればよい。
【００９８】
以上説明したように、上記実施の形態では、仮想空間内において、スポットライトを表現する平面体を、視点と、キャラクタとを結ぶ線上の所定の位置に配置する。これにより、複雑な計算を行なうことなく、キャラクタがスポットライトに照らされているかのような表現を実現することが可能となる。
【００９９】
さらに、上記実施の形態では、視点、光源、およびキャラクタの移動に応じて、平面体の回転量を変化させる。現実世界では、視点、光源、およびキャラクタの移動により、スポットライトの照らす範囲やその形状が変化して見える。したがって、視点、光源、およびキャラクタの移動に基づいて、平面体を回転させることで、よりスポットライトらしい表現を実現することが可能となる。
【０１００】
以上、本発明の実施の形態について説明したが、本発明は、上述した実施の形態に限定されず、種々の変形および応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。 
【０１０１】
例えば、図１１に示すように、視点が、キャラクタ３００を通過する基準軸Ａを含む平面内で動く場合、基準軸Ａの周りを視点が動かないので、平面体は回転しない。このような状況を回避するために、例えば、視点、キャラクタ、光源などの位置を、実際は移動されていなくとも、時間などに応じて変更されているかのように扱って、上記の実施の形態で示す方法で、平面体を回転させるようにしてもよい。
【０１０２】
また、当該平面体の半透明、もしくは不透明な部分について、その透明度を視点とキャラクタの距離に応じて、変化させてもよい。例えば、透明な部分の大きさを固定し、視点とキャラクタとの距離が遠い場合は、透明な部分から不透明な部分へ急激に変化するようにする。逆に視点とキャラクタとの距離が近い場合は、透明な部分から不透明な部分へは緩やかに変化するようにする。これにより、視点とキャラクタとの距離が遠い場合は、距離が近い場合に比べ、透明部分と半透明部分とを合わせた部分が小さくなる。
【０１０３】
また、上記実施の形態に係る表示装置は、ゲーム装置の他にも、携帯電話機や、その他携帯型のオーディオ機器に実現してもよい。
【図面の簡単な説明】
【０１０４】
【図１】本実施の形態に係る表示装置が実現される典型的なゲーム装置の概要構成を示す模式図である。
【図２】本実施の形態に係る表示装置の機能ブロック図である。
【図３】（Ａ）は本実施の形態に係る平面体の配置される位置を示し、（Ｂ）および（Ｃ）は平面体の透明部分と不透明部分とを示す図である。
【図４】本実施の形態の処理を説明するフロー図である。
【図５】本実施の形態に係る平面体の回転量の算出方法を説明する図である。
【図６】図５を上方から見た様子を示す図であり、本実施の形態に係る平面体の回転量の算出方法を説明する図である。
【図７】（Ａ）は、平面体がキャラクタの手前に描画される様子を示す図であり、（Ｂ）は本実施の形態に係る表示装置によって描画されたキャラクタを示す図であり、（Ｃ）は、平面体を回転させて、（Ｂ）に示すキャラクタを描画した例を示す図である。
【図８】他の実施の形態に係る表示装置の機能ブロック図である。
【図９】他の実施の形態に係る表示装置の処理を説明するフロー図である。
【図１０】（Ａ）および（Ｂ）は、他の実施の形態に係る平面体の回転量の算出方法を説明する図である。
【図１１】本実施の形態において、平面体が回転しない例を示す図である。
【符号の説明】
【０１０５】
１００  ゲーム装置 
１０１  ＣＰＵ 
１０２  ＲＯＭ 
１０３  ＲＡＭ 
１０４  インターフェイス 
１０５  コントローラ
１０６  外部メモリ 
１０７  画像処理部 
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ 
１１０  音声処理部 
２００  表示装置
２０１  記憶部
２０２  視点移動部
２０３  生成部
２０４  回転量計算部
２０５  平面体移動部
２０６  光源移動部
【図１】
0004637205.tif 000002
【図２】
0004637205.tif 000003
【図４】
0004637205.tif 000004
【図５】
0004637205.tif 000005
【図６】
0004637205.tif 000006
【図８】
0004637205.tif 000007
【図９】
0004637205.tif 000008
【図１１】
0004637205.tif 000009
【図３】
0004637205.tif 000010
【図７】
0004637205.tif 000011
【図１０】
0004637205.tif 000012