(57)【要約】【課題】  仮想空間内の複数のキャラクタが画面内にバランスよく配置されるような表示画像を生成する。【解決手段】  各キャラクタに対してキャラクタの重要度に応じた重みを設定する。例えばプレイヤが操作するキャラクタに対してはより重い重み付けを行い、その他のキャラクタに対してはより軽い重み付け行う。そして、所定範囲内に存在する各キャラクタの重みと位置に基づいてキャラクタ間の重心を算出し、仮想カメラの注視点の位置を決定する。【選択図】  図６ 
2005027948.tif 000002
【特許請求の範囲】
【請求項１】
二次元ないし三次元の仮想空間に配置された複数の物体を表示するための表示画像をコンピュータに生成させる画像生成プログラムであって、
前記コンピュータを、
各前記物体の重みを記憶する重み記憶手段、
前記仮想空間における各前記物体の位置を記憶する位置記憶手段、
各前記物体の重みと位置に基づいて当該物体間の重心を決定する重心決定手段、および
前記重心がほぼ中央に位置するような表示画像を生成する表示画像生成手段として機能させることを特徴とする画像生成プログラム。
【請求項２】
優先的に表示されるべき物体ほど大きな重みが割り当てられていることを特徴とする、請求項１に記載の画像生成プログラム。
【請求項３】
プレイヤが操作手段によって操作可能なプレイヤキャラクタに対して最も大きな重みが割り当てられていることを特徴とする、請求項１に記載の画像生成プログラム。
【請求項４】
各前記物体に対して重要度が予め設定されており、各前記物体に対して前記重要度が高いほどより大きな重みを割り当てる重み関連付け手段として前記コンピュータをさらに機能させる、請求項１に記載の画像生成プログラム。
【請求項５】
前記プレイヤキャラクタに対して、当該プレイヤキャラクタを除く他の物体の重みの総和以上の重みが動的に割り当てられることを特徴とする、請求項３に記載の画像生成プログラム。
【請求項６】
前記重心決定手段として、前記コンピュータに、前記仮想空間の一部分である所定範囲内に位置する物体だけを対象として当該物体間の重心を決定させることを特徴とする、請求項１ないし５のいずれかに記載の画像生成プログラム。
【請求項７】
前記表示画像生成手段として、前記コンピュータに、前記重心決定手段によって決定された重心が前記複数の物体のうちのある特定物体を中心とした所定の許容範囲の外に位置していた場合に、当該重心と当該特定物体を結ぶ線分上であってかつ当該許容範囲の境界に該当する点がほぼ中央に位置するような表示画像を生成させることを特徴とする、請求項１に記載の画像生成プログラム。
【請求項８】
前記仮想空間が三次元の仮想空間であり、前記表示画像生成手段として、前記コンピュータに、前記重心を注視点とした仮想カメラを用いて表示画像を生成させることを特徴とする、請求項１ないし７のいずれかに記載の画像生成プログラム。
【請求項９】
前記複数の物体のうちのある特定物体の重みが前記仮想カメラの位置に応じて変化することを特徴とする、請求項８に記載の画像生成プログラム。
【請求項１０】
前記仮想カメラから前記注視点までの距離が近いほど前記特定物体の重みが大きくなることを特徴とする、請求項９に記載の画像生成プログラム。
【請求項１１】
前記仮想空間が三次元の仮想空間であり、前記表示画像生成手段として、前記コンピュータに、前記重心決定手段によって決定された重心に対して、一定の割合で仮想カメラの注視点を近づけることによって、前記重心点に徐々に近づく表示画像を生成させることを特徴とする、請求項１ないし７のいずれかに記載の画像生成プログラム。
【請求項１２】
請求項１ないし１０のいずれかに記載の画像生成プログラムによって機能するコンピュータを備えるゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像生成プログラム及びゲーム装置に関し、より特定的には、二次元または三次元の仮想空間に配置された複数の物体を表示するための表示画像を生成させるための画像生成プログラム及びゲーム装置に関する。
【背景技術】
【０００２】
従来、プレイヤが操作するキャラクタ（プレイヤキャラクタ）の後方に仮想カメラを配置してこの仮想カメラで捕えた画像（以下、三人称視点から見た画像と称す）を表示するゲーム機や、プレイヤキャラクタの位置に仮想カメラを配置してこの仮想カメラで捕えた画像（以下、一人称視点から見た画像と称す）をプレイヤキャラクタから見た景色として表示するゲーム機がある。
【０００３】
仮想カメラの注視点は通常、プレイヤキャラクタの位置や、プレイヤキャラクタからその前方に一定距離だけ離れた位置に固定的に設定される。
【０００４】
また、一人称視点から見た画像を生成するゲーム機の中に、仮想カメラに最も近いキャラクタに対して注視点を設定し、特に仮想カメラから等しい距離に複数のキャラクタがいた場合にこれらキャラクタの中間位置に注視点を設定するものがある（例えば、特許文献１参照。）。
【特許文献１】特開平１０−１６５６４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、仮想カメラの注視点をプレイヤキャラクタに対して固定的に設定すると、例えばプレイヤキャラクタが味方キャラクタの隊列を後ろに従えて移動するときに、表示画面においてキャラクタの配置のバランスが悪くなり、さらに、プレイヤキャラクタの後方にいる味方キャラクタの隊列が十分に表示されないという問題がある。
【０００６】
また、仮想カメラに最も近いキャラクタに対して注視点を設定する場合には、仮想カメラに最も近いキャラクタが常に中央に表示されるため、仮に表示画面のすぐ外側に強力な敵キャラクタがいたとしてもプレイヤはその存在に気付かないという問題がある。
【０００７】
また、三人称視点から見た画像を生成する場合には、仮想カメラに最も近いキャラクタに対して注視点を設定することは好ましくない。なぜなら、仮想カメラに最も近いキャラクタがプレイヤキャラクタとは別のキャラクタである場合に、この仮想カメラに最も近いキャラクタだけが表示されて、プレイヤキャラクタが表示されない可能性があるからである。
【０００８】
また、複数のキャラクタの中間位置に注視点を設定する場合には、例えばプレイヤキャラクタが味方キャラクタの隊列を後ろに従えて移動する様子を三人称視点から見た画像を生成するときに、味方キャラクタの隊列の中心付近に注視点が設定されてしまい、プレイヤキャラクタが表示されない可能性がある。
【０００９】
それゆえに本発明の目的は、各キャラクタがバランスよく表示されるような表示画像を生成することができる画像生成プログラム及びゲーム装置を提供することである。
【００１０】
特に、プレイヤキャラクタが存在する場合には、このプレイヤキャラクタを他のキャラクタよりも優先的に表示しつつも各キャラクタがバランスよく表示されるような表示画像を生成することができる画像生成プログラム及びゲーム装置を提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明は以下の構成を採用した。なお括弧内の参照符号や図番号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【００１２】
本発明の画像生成プログラムは、二次元ないし三次元の仮想空間に配置された複数の物体を表示するための表示画像をコンピュータに生成させるためのプログラムであって、コンピュータを、重み記憶手段（２１４、図６）、位置記憶手段（２１４、図６）、重心決定手段（２０２、Ｓ３０６）、および表示画像生成手段（２０２、Ｓ１１６）として機能させる。重み記憶手段は、各物体の重みを記憶する。位置記憶手段は、仮想空間における各物体の位置を記憶する。重心決定手段は、各物体の重みと位置に基づいてこれら物体間の重心を決定する。表示画像生成手段は、重心がほぼ中央に位置するような表示画像を生成する。ここで「物体」とは仮想空間内の任意の物体をさし、プレイヤキャラクタや味方キャラクタや敵キャラクタのような移動物体だけではなく、宝箱や樹木のような静止物体も含み得る。また、重み記憶手段が記憶する各キャラクタの重みは、予め用意された値で一定に固定されていてもよいし、必要に応じて更新されてもよい。
【００１３】
なお、優先的に表示されるべき物体ほど大きな重みが割り当てられているのが好ましい。「優先的に表示されるべき物体」とは、例えばプレイヤが操作するプレイヤキャラクタであったり、強力な武器を持った敵キャラクタであったり、ボスキャラクタであったり、球技ゲームにおけるボールであったり、仮想的な水槽に入っている複数の熱帯魚の中からユーザによって選択された特定の熱帯魚であったりする。つまり「優先的に表示されるべき物体」は、画像生成プログラムの用途によって異なる。
【００１４】
また、プレイヤが操作手段（５０）によって操作可能なプレイヤキャラクタに対して最も大きな重みが割り当てられていてもよい。
【００１５】
また、各物体に対して重要度が予め設定されており（図７）、各物体に対して重要度が高いほどより大きな重みを割り当てる重み関連付け手段（２１４、図８）としてコンピュータをさらに機能させてもよい。
【００１６】
また、プレイヤキャラクタに対して、この特定物体を除く他の物体の重みの総和以上の重みが動的に割り当てられてもよい（図１９、図２０）。
【００１７】
また、重心決定手段として、コンピュータに、仮想空間の一部分である所定領域に位置する物体だけを対象としてこれら物体間の重心を決定させてもよい（図２３）。所定領域の形状は任意であって、例えば、プレイヤキャラクタから一定距離以内の領域でもよいし、プレイヤキャラクタからその前方に一定距離だけ離れた地点を中心とした矩形領域であってもよい。
【００１８】
また、表示画像生成手段として、コンピュータに、重心決定手段によって決定された重心が複数の物体のうちのある特定物体の位置から所定距離以上離れていた場合に、重心と特定物体を結ぶ線分上であってかつ特定物体から所定距離だけ離れた点がほぼ中央に位置するような表示画像を生成させてもよい（図２４）。
【００１９】
以上のバリエーションは、仮想空間が二次元の場合にも三次元の場合にも当てはまる。
【００２０】
なお、仮想空間が三次元の仮想空間である場合には、表示画像生成手段として、コンピュータに、重心を注視点とした仮想カメラを用いて表示画像を生成させてもよい。この場合、複数の物体のうちのある特定物体の重みが仮想カメラの位置に応じて変化するようにしてもよい。例えば、仮想カメラから注視点までの距離が近いほど特定物体の重みが大きくなるようにしてもよい（図２５、図２６）。
【００２１】
また、仮想空間が三次元の仮想空間である場合には、表示画像生成手段として、コンピュータに、重心決定手段によって決定された重心に対して、一定の割合で仮想カメラの注視点を近づけることによって、重心点に徐々に近づく表示画像を生成させてもよい。
【００２２】
本発明のゲーム装置は、上記画像生成プログラムによって機能するコンピュータを備える。
【発明の効果】
【００２３】
本発明によれば、各物体の重みによって決まる重心が表示画像のほぼ中央にくるようにしているので、表示画面において各物体をバランスよく表示させることができる。また、重みがより大きな物体側に重心が寄るので、重みの大きな物体ほど中央に表示されるような表示画像を容易に生成することができるという効果が得られる。よって、重みを任意に設定することにより、所望の物体を他の物体よりも優先的に表示しつつも各物体がバランスよく表示されるような表示画像が得られる。
【００２４】
特に、プレイヤキャラクタに対して最も大きな重みが割り当てる場合には、プレイヤキャラクタが最も優先的に表示されるため、プレイヤキャラクタが表示範囲外に移動して表示されなくなるのを防止できるという付加的な効果が得られる。
【００２５】
また、各物体に予め設定されている重要度に基づいて、重要度が高い物体ほどより大きな重みを割り当てれば、重要度の高い物体が優先的に表示されるという付加的な効果が得られる。
【００２６】
また、プレイヤキャラクタに対して他の物体の重みの総和以上の重みを動的に割り当てれば、他の物体の数や重みが増加したとしてもそれに応じて特定物体の重みが増加するため、プレイヤキャラクタが常に表示され易くなるという付加的な効果が得られる。
【００２７】
また、所定範囲内の物体だけを対象として重心を決定すれば、重心が思いもよらない位置にくるのを防止でき、かつ重心を決定する際の演算量を低減することができるという付加的な効果が得られる。
【００２８】
また、重心が特定物体を中心とした所定の許容範囲の外に位置していた場合に、重心と特定物体を結ぶ線分上であってかつ許容範囲の境界に該当する点をほぼ中心とした表示画像を生成するようにすれば、重心が特定物体から離れてしまっても特定物体を表示することができるという付加的な効果が得られる。
【００２９】
また、重心を仮想カメラの注視点として設定すれば、三次元の仮想空間における重心を中心とした表示画像を容易に生成できるという付加的な効果が得られる。
【００３０】
また、仮想カメラの位置に応じて特定物体の重みを変化させれば、例えば仮想カメラから注視点までの距離が近いほど特定物体の重みを大きくするといったことも可能となり、この場合には、仮想カメラが注視点に近づいたときに特定物体が表示されなくなるのを防止することができるという付加的な効果が得られる。
【００３１】
また、重心決定手段によって決定された重心に対して、一定の割合で仮想カメラの注視点を徐々に近づけるようにすれば重心の位置が急に変化した場合にも表示内容が急に変化してしまうことがなくなるため、より見やすい画像を表示できるという付加的な効果が得られる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態を図面を参照しながら説明する。本実施形態は、本発明をゲームシステムへ適用した場合の例であるが、本発明の適用範囲はゲームシステムに限らない。
【００３３】
図１は、ゲームシステムの構成を示す外観図であり、図２はそのブロック図である。図１および図２に示すように、ゲームシステムは、ＴＶモニタ１０、ゲーム機本体２０、ＤＶＤ−ＲＯＭ３０、外部メモリカード４０、コントローラ５０およびスピーカ６０を備える。ＤＶＤ−ＲＯＭ３０および外部メモリカード４０は、ゲーム機本体２０に着脱自在に装着される。コントローラ５０は、通信ケーブルを介して、ゲーム機本体２０に設けられた複数（図１では４つ）のコントローラポート用コネクタのいずれかに接続される。ＴＶモニタ１０およびスピーカ６０は、ＡＶケーブル等によってゲーム機本体２０と接続される。なお、ゲーム機本体２０とコントローラ５０との通信は無線通信であってもよい。以下、図２を参照しながら、ゲームシステムの各部についてより詳細に説明する。
【００３４】
ＤＶＤ−ＲＯＭ３０は、ゲームプログラム（画像生成プログラムを含む）やゲームデータ等を固定的に記憶している。プレイヤがゲームをプレイするとき、ＤＶＤ−ＲＯＭ３０はゲーム機本体２０に装着される。なお、ゲームプログラム等を記憶する手段として、ＤＶＤ−ＲＯＭ３０の代わりに例えばＣＤ−ＲＯＭ、ＭＯ、メモリカード、ＲＯＭカートリッジ等の外部記憶媒体を用いてもよい。
【００３５】
外部メモリカード４０は、例えばフラッシュメモリ等の書き換え可能な記憶媒体によって構成され、例えばゲームのセーブデータ等のデータを記録する。
【００３６】
ゲーム機本体２０は、ＤＶＤ−ＲＯＭ３０に記録されているプログラムを読み出し、読み出したプログラムに応じた処理を行う。
【００３７】
コントローラ５０は、プレイヤがゲーム操作に関する入力を行うための入力装置であり、複数の操作スイッチを有する。コントローラ５０は、プレイヤによる操作スイッチの押圧等に応じて操作データをゲーム機本体２０に出力する。
【００３８】
ＴＶモニタ１０は、ゲーム機本体２０から出力された画像データを画面に表示する。スピーカ６０は、典型的にはＴＶモニタ５００に内蔵されており、ゲーム機本体２０から出力されたゲーム中の音声を出力する。
【００３９】
次に、ゲーム機本体２０の構成について説明する。図２において、ゲーム機本体２０には、ＣＰＵ２０２およびそれに接続されるメモリコントローラ２２０が設けられる。さらにゲーム機本体２０において、メモリコントローラ２２０は、ＧＰＵ（グラフィックスプロセッシングユニット）２０４と、メインメモリ２１４と、ＤＳＰ２１６と、各種インターフェース（Ｉ／Ｆ）２２２、２２４、２２６、２２８、２３２とに接続される。メモリコントローラ２２０は、これら各構成要素間のデータ転送を制御する。
【００４０】
ゲーム開始の際、まず、ディスクドライブ２３０は、ゲーム機本体２０に装着されたＤＶＤ−ＲＯＭ３０を駆動する。ＤＶＤ−ＲＯＭ３０に記憶されているゲームプログラムは、ディスクＩ／Ｆ２３２およびメモリコントローラ２２０を介して、メインメモリ２１４に読み込まれる。このメインメモリ２１４上のプログラムをＣＰＵ２０２が実行することによってゲームが開始される。ゲーム開始後、プレイヤは、操作スイッチを用いてコントローラ５０に対してゲーム操作等の入力を行う。プレイヤによる入力に従い、コントローラ５０は、操作データをゲーム機本体２０に出力する。コントローラ５０から出力される操作データは、コントローラＩ／Ｆ２２２およびメモリコントローラ２２０を介してＣＰＵ２０２に供給される。ＣＰＵ２０２は、入力された操作データに応じてゲーム処理を行う。ゲーム処理における画像データ生成等に際して、ＧＰＵ２０４やＤＳＰ２１６が用いられる。また、サブメモリ２１８は、ＤＳＰ２１６が処理を行う際に用いられる。
【００４１】
ＧＰＵ２０４は、ジオメトリユニット２０６およびレンダリングユニット２０８を含み、画像処理専用のメモリに接続されている。この画像処理専用メモリは、例えばカラーバッファ２１０やＺバッファ２１２として利用される。ジオメトリユニット２０６は、仮想三次元空間であるゲーム空間に置かれた物体や図形に関する立体モデル（例えばポリゴンで構成されるオブジェクト）の座標についての演算処理を行うものであり、例えば立体モデルの回転・拡大縮小・変形や、ワールド座標系の座標から視点座標系やスクリーン座標系の座標への変換を行うものである。レンダリングユニット２０８は、所定のテクスチャに基づいて、スクリーン座標に投影された立体モデルについて各ピクセルごとのカラーデータ（ＲＧＢデータ）をカラーバッファ２１０に書き込むことによって、ゲーム画像を生成するためのものである。また、カラーバッファ２１０は、レンダリングユニット２０８によって生成されたゲーム画像データ（ＲＧＢデータ）を保持するために確保されたメモリ領域である。Ｚバッファ２１２は、３次元の視点座標から２次元のスクリーン座標に変換する際に失われる視点からの奥行情報を保持するために確保されたメモリ領域である。ＧＰＵ２０４は、これらバッファを用いてＴＶモニタ１０に表示すべき画像データを生成し、メモリコントローラ２２０およびビデオＩ／Ｆ２２４を介して、この画像データをＴＶモニタ１０に適宜出力する。なお、ゲームプログラム実行時にＣＰＵ２０２において生成される音声データは、メモリコントローラ２２０からオーディオＩ／Ｆ２２８を介してスピーカ６０に出力される。なお本実施形態では、画像処理専用のメモリを別途設けたハードウェア構成としたが、これに限らず例えばメインメモリ２１４の一部を画像処理用のメモリとして利用する方式（ＵＭＡ：Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ）を使うようにしてもよい。
【００４２】
次に、図３のフローチャートを参照して本ゲームシステムの動作について説明する。
【００４３】
ゲームが開始すると、まずＣＰＵ２０２は、地形オブジェクトを三次元のゲーム空間を規定するワールド座標系の初期座標に配置し（Ｓ１０２）、つづいてプレイヤキャラクタと仮想カメラおよびその注視点をワールド座標系の初期座標に配置する（Ｓ１０４）。
【００４４】
次にＣＰＵ２０２は、コントローラ５０からの入力があったかどうかを判断し（Ｓ１０６）、入力があった場合にはプレイヤキャラクタ位置の更新処理（Ｓ１０８）及び仮想カメラ位置の更新処理（Ｓ１１０）を実行後、ステップＳ１１２に進む。一方、コントローラ５０からの入力がなかった場合にはそのままステップＳ１１２に進む。なお、プレイヤキャラクタ位置の更新処理と仮想カメラ位置の更新処理の詳細については後述する。
【００４５】
その後、プレイヤキャラクタ等の座標をワールド座標系から仮想カメラを基準としたカメラ座標系に変換し（Ｓ１１２）、さらにカメラ座標系から投影平面座標系に変換する（Ｓ１１４）。さらにテクスチャマッピングやシェーディング等の画像処理を適宜行って、仮想カメラから見たシーンを表すゲーム画像を生成する（Ｓ１１６）。こうして生成されたゲーム画像に基づいてＴＶモニタ１０にゲーム画面が表示される（Ｓ１１８）。
【００４６】
ステップＳ１２０ではゲームが終了したかどうか判断し、ゲームが終了した場合にはゲーム処理を終了し、ゲームが続行している場合にはステップＳ１０６に戻る。
【００４７】
次に、図４のフローチャートを参照して、図３のステップＳ１０８のプレイヤキャラクタ位置の更新処理について説明する。
【００４８】
プレイヤキャラクタ位置の更新処理が開始すると、まずＣＰＵ２０２は、コントローラ５０に設けられたスティックの傾き方向を示すデータを取得し、このデータに基づいてプレイヤキャラクタの向きを算出する（Ｓ２０２）。さらに、スティックの傾き量を示すデータを取得し、このデータに基づいてプレイヤキャラクタの移動量を算出する（Ｓ２０４）。そして、こうして得られたプレイヤキャラクタの向きと移動量に基づいて、メインメモリ２１４に記憶されているプレイヤキャラクタの位置を更新し（Ｓ２０６）、プレイヤキャラクタ位置の更新処理が終了する。
【００４９】
次に、図５のフローチャートを参照して、図３のステップＳ１１０の仮想カメラ位置の更新処理について説明する。
【００５０】
仮想カメラ位置の更新処理が開始すると、まずＣＰＵ２０２は、ゲーム空間に配置された各キャラクタ（プレイヤキャラクタ、味方キャラクタ等）の位置を取得する（Ｓ３０２）。なお、ゲーム空間における各キャラクタの位置は、メインメモリ２１４に例えば図６のように保持されている。よって、ＣＰＵ２０２はステップＳ３０２でメインメモリ２１４からこれらのデータを読み出せばよい。メインメモリ２１４に記憶されている各キャラクタの位置は、ゲームの進行に応じて適宜に更新される。
【００５１】
つづいてＣＰＵ２０２は、ゲーム空間に配置された各キャラクタの重みを取得する（Ｓ３０４）。各キャラクタの重みは予め決定されてＤＶＤ−ＲＯＭ３０に記録されているが、このＤＶＤ−ＲＯＭ３０に記録された各キャラクタの重みがＤＶＤ−ＲＯＭ３０から読み出されてメインメモリ２１４に例えば図６のように保持されている。よって、ＣＰＵ２０２はステップＳ３０４でメインメモリ２１４からこれらのデータを読み出せばよい。図６の例では、プレイヤキャラクタの重みは１０に設定されており、味方キャラクタｆａ、ｆｂ、ｆｃ、・・・の重みは１に設定されており、敵キャラクタｅａ、ｅｂ、ｅｃ、・・・の重みは３に設定されている。
【００５２】
なお、ＤＶＤ−ＲＯＭ３０に必ずしも各キャラクタの重みが記録されている必要はない。例えば、ＤＶＤ−ＲＯＭ３０に図７に示すように各キャラクタの重要度（Ａ、Ｂ、Ｃ）を示すデータが記録されている場合には、ステップＳ３０４で各キャラクタの重みを取得する際に、まず各キャラクタの重要度を取得した後、例えば図８に示すような変換テーブルを利用して各キャラクタの重要度を重みに変換してもよい。
【００５３】
次にＣＰＵ２０２は、ステップＳ３０２で取得した各キャラクタの位置とステップＳ３０４で取得した各キャラクタの重みに基づいて、これらのキャラクタ間の重心を算出する（Ｓ３０６）。この演算は、例えば以下のようにして行う。
【００５４】
ゲーム空間に、プレイヤキャラクタと味方キャラクタｆａ、ｆｂと敵キャラクタｅａの４体のキャラクタが配置されている場合を例として説明すると、重心の座標（Ｘｂ、Ｙｂ、Ｚｂ）は、以下のように計算される。
【００５５】
「重心のＸ座標」＝｛（「プレイヤキャラクタのＸ座標」×「プレイヤキャラクタの重み」）＋（「味方キャラクタｆａのＸ座標」×「味方キャラクタｆａの重み」）＋（「味方キャラクタｆｂのＸ座標」×「味方キャラクタｆｂの重み」）＋（「敵キャラクタｅａのＸ座標」×「敵キャラクタｅａの重み」）｝／（「プレイヤキャラクタの重み」＋「味方キャラクタｆａの重み」＋「味方キャラクタｆｂの重み」＋「敵キャラクタｅａの重み」）
つまり、
Ｘｂ＝｛（Ｘｐ×１０）＋（Ｘｆａ×１）＋（Ｘｆｂ×１）＋（Ｘｅａ×３）｝／（１０＋１＋１＋３）
となる。
【００５６】
Ｙ座標およびＺ座標についても同様である。
【００５７】
Ｙｂ＝｛（Ｙｐ×１０）＋（Ｙｆａ×１）＋（Ｙｆｂ×１）＋（Ｙｅａ×３）｝／（１０＋１＋１＋３）
Ｙｂ＝｛（Ｚｐ×１０）＋（Ｚｆａ×１）＋（Ｚｆｂ×１）＋（Ｚｅａ×３）｝／（１０＋１＋１＋３）
このように、ステップＳ３０６では、各キャラクタの座標値を各キャラクタの重みで加重平均することによって重心を算出する。
【００５８】
つづくステップＳ３０８で、ＣＰＵ２０２は、仮想カメラの注視点をステップＳ３０６で算出した重心の位置に設定して、仮想カメラ位置の更新処理が終了する。ところで、図９に示すように、仮想カメラの向きは注視点によって決定される。つまり、図１０に示すように、注視点は仮想カメラを用いて生成された画像の中央に位置することになる。したがって、ステップＳ３０８において仮想カメラの注視点を重心の位置に設定したことにより、ステップＳ３０６で算出した重心は図３のステップＳ１１６で生成される画像の中心に位置することになる。
【００５９】
以下、より具体的な例を挙げて説明する。
【００６０】
例えば、ゲーム空間において、図１１のようにプレイヤキャラクタが３体の味方キャラクタｆａ〜ｆｃからなる隊列を後ろに従えている場合には、プレイヤキャラクタの近傍に重心が位置し、この重心を中心とした図１２に示す画像が生成される。
【００６１】
また例えば、図１３のように、味方キャラクタｆｄ〜ｆｊが図１１の隊列にさらに追加された場合には、図１１に比べて重心が隊列の中心に近づく（図中の矢印を参照）。その結果、図１４に示すようにプレイヤキャラクタと味方キャラクタがバランス良く表示される。ここで、もし仮に重心が図１１に示す位置のままであったとすれば、味方キャラクタｆｅ、ｆｉ、ｆｊは画面に表示されないことになる。
【００６２】
なお、重心が図１１に示した位置から図１３に示した位置に変化した場合、これに応じて仮想カメラの注視点を変化させる必要がある。このとき、図１５に示すように仮想カメラを重心の移動方向に対して平行に移動させてもよいし、図１６に示すように仮想カメラの向きだけを変化させてもよいし、その他の任意の方法を用いてもよい。このとき、重心に対して注視点を即座に一致させるのではなく、注視点を重心に向かって一定の割合（例えば注視点と重心間の距離の３０％ずつ）もしくは一定の速度で徐々に近づけるようにするのが好ましい。これにより、例えば重みの重いキャラクタが急に出現して重心位置が大きく変化したとしても、表示領域が急激に変化することなく、画面の中心がそのキャラクタに徐々に近づくので、常に見やすい画面を表示することができる。
【００６３】
さらなる例として、ゲーム空間において、図１７のようにプレイヤキャラクタの後方に４体の味方キャラクタが存在し、前方に２体の敵キャラクタが存在する場合、個数では味方キャラクタの方が多いにも関わらず、重みの影響によって重心はプレイヤキャラクタの前方に位置することになる。この結果、図１８に示すように２体の敵キャラクタが両方とも表示されることとなり、プレイヤは敵キャラクタｅａ、ｅｂの動きを目視して敵キャラクタｅａ、ｅｂに対処することができる。このように、優先的に表示させたいキャラクタほど重みが大きくなるように設定しておくことにより、表示の優先度を自由に制御することができる。
【００６４】
ところで、プレイヤが操作するプレイヤキャラクタが表示領域の外に移動してしまうと操作に支障をきたすため、プレイヤキャラクタが常に表示されるように、プレイヤキャラクタに対しては最も大きな重みを割り当てておくのが好ましい。ただし、プレイヤキャラクタに対して最も大きな重みを割り当てていたとしても、他のキャラクタが多数集まれば重心は他のキャラクタの方へ近づいて、プレイヤキャラクタから離れてしまうことになる。そこで、このような状況を避けるために、プレイヤキャラクタの重みを動的に決定するようにしても構わない。一例として、プレイヤキャラクタ以外のキャラクタの重みの総和をプレイヤキャラクタの重みとして動的に割り当てた場合、図１９の例ではプレイヤの重みが１０となるが、図２０の例ではプレイヤの重みが２７となる。よって、他のキャラクタの数が大きく増えたとしても重心はプレイヤキャラクタからそれほど離れない。このような処理を実現するには、例えば、図５のステップＳ３０４で各キャラクタの重みを取得する際に、プレイヤキャラクタ以外のキャラクタの重みを取得して、それらの総和をプレイヤキャラクタの重みとしてステップＳ３０６の重心の算出処理で利用すればよい。
【００６５】
なお、本実施形態は、プレイヤキャラクタの視点から見たシーンを表示する場合にも容易に適用することができる。この場合には、図２１に示すように、プレイヤキャラクタ以外のキャラクタを対象として重心を求めればよい。その結果、図２２に示すように、重心が中央に位置するような一人称視点から見た画像が生成される。
【００６６】
なお、図２３に示すように、ある所定範囲外のキャラクタについては、その重みを考慮しない（つまり重心算出の際の処理対象としない、さらに言い換えれば重みが０であるとみなす）ようにしてもよい。例えばゲーム空間においてプレイヤキャラクタからはるか遠くに他のキャラクタが存在していた場合には、このキャラクタの影響を受けて思いもよらない位置が重心になってしまう。そこで、図２３のように、重みを考慮するキャラクタをある程度妥当な範囲内に限定すれば、このような不具合を解消することができる。このような処理を実現するには、例えば、図５のステップＳ３０２の前段に所定範囲内に存在するキャラクタだけを抽出する処理を追加し、こうして抽出されたキャラクタを対象としてステップＳ３０２〜ステップＳ３０６の処理を実行すればよい。これにより、所定範囲外のキャラクタに関する演算処理を省略できるという効果も得られる。
【００６７】
なお、図２３ではプレイヤキャラクタを中心とした一定距離以内の範囲を所定範囲としているが、これに限らず所定範囲を任意に設定してもよい。例えば、プレイヤキャラクタからその前方に一定距離だけ離れた地点を中心とした矩形領域であってもよいし、注視点を中心とした一定距離以内の範囲であってもよい。
【００６８】
なお、プレイヤキャラクタが常に表示されることをより確実に保証するために、注視点として設定できる位置を、図２４に示すようにプレイヤキャラクタを中心とした所定の許容範囲内に制限してもよい。例えば図２４に示すように重心の位置が許容範囲外であった場合には、重心とプレイヤキャラクタとを結ぶ線分上であって、許容範囲の境界に該当する位置を注視点として設定する。このような処理を実現するためには、例えば、図５のステップＳ３０８の処理の替わりに、重心が許容範囲内かどうかを判断し、この判断の結果、許容範囲内であればこの重心の位置に注視点を設定し、許容範囲外であれば、上記のように、重心とプレイヤキャラクタとを結ぶ線分上であって許容範囲の境界に該当する位置を注視点として設定する処理を実行すればよい。
【００６９】
なお、仮想カメラと注視点の距離が変化する場合には、この距離に応じてプレイヤキャラクタの重みを変化させるのが好ましい。以下、このことを図２５〜図２８を参照して説明する。
【００７０】
ここでは、図２５に示すように、注視点に対する仮想カメラの相対位置が３通り（第１〜第３ポジション）に変化する場合を例として説明する。この場合には、仮想カメラの位置別にプレイヤキャラクタの重みが設定される。特に、図２６に示すように、注視点と仮想カメラの距離が近いほど、プレイヤキャラクタの重みが大きくなるように設定される。なお、図２６に示すようなテーブルを用意する替わりに、注視点と仮想カメラの距離を引数とした演算によって重みを算出するようにしてもよい。
【００７１】
図２７は、仮想カメラの位置が第１のポジションとなっている場合の重心の位置と、その重心を中心とした表示範囲とを示している。ここで、仮に、プレイヤキャラクタの重みを１０のまま変化させずに仮想カメラの位置だけを第３のポジションに変化させた場合には、図２７に示す重心を中心として画像がズームアップされるため、プレイヤキャラクタが表示範囲から外れてしまうことになる。しかしながら、仮想カメラの位置が第３のポジションに変化したときに、同時にプレイヤキャラクタの重みを５０に変化させれば、図２８に示すように重心がプレイヤキャラクタに近づくため、プレイヤキャラクタは確実に表示される。
【００７２】
このような処理を実現するためには、例えば、ＤＶＤ−ＲＯＭ３０から読み出す等によって図２６に示すテーブルをメインメモリ２１４に保持しておき、図５のステップＳ３０４において各キャラクタの重みを取得する際に、仮想カメラの位置が第１ポジション〜第３のポジションのいずれであるかを判断して、この判断結果に基づいてプレイヤキャラクタの重みを図２６のテーブルを参照して取得するようにすればよい。
【００７３】
なお、本実施形態では三次元のゲーム空間に配置されたキャラクタを表示する場合について説明したが、二次元のゲーム空間に配置されたキャラクタを表示する場合にも本実施形態を容易に適用することができる。この場合、各キャラクタの位置と重みに基づいて重心を算出し、算出された重心がほぼ中央に位置するような画像を生成すればよい。
【００７４】
また、本実施形態ではゲーム空間に配置されたプレイヤキャラクタ、味方キャラクタおよび敵キャラクタを表示する場合について説明したが、これ以外の物体を同様に表示することも可能である。例えば、樹木などの静止物体に対して重みを割り当てることも可能である。
【図面の簡単な説明】
【００７５】
【図１】本発明の一実施形態にかかるゲームシステムの外観図
【図２】ゲーム機本体の構成を示すブロック図
【図３】ＣＰＵの処理の流れを示すフローチャート
【図４】プレイヤキャラクタ位置の更新処理の流れを示すフローチャート
【図５】仮想カメラ位置の更新処理の流れを示すフローチャート
【図６】メインメモリに記憶されるデータの一部を示す図
【図７】メインメモリに記憶されるデータの一部を示す図
【図８】メインメモリに記憶されるデータの一部を示す図
【図９】仮想カメラの向きと注視点との関係を示す図
【図１０】注視点と表示画面との関係を示す図
【図１１】仮想空間における複数のキャラクタとその重心を示す図
【図１２】図１１に対応する表示画面を示す図
【図１３】仮想空間における複数のキャラクタとその重心を示す図
【図１４】図１３に対応する表示画面を示す図
【図１５】重心の変化に伴う仮想カメラの設定例を示す図
【図１６】重心の変化に伴う仮想カメラの設定例を示す図
【図１７】仮想空間における複数のキャラクタとその重心を示す図
【図１８】図１７に対応する表示画面を示す図
【図１９】仮想空間における複数のキャラクタとその重心を示す図
【図２０】仮想空間における複数のキャラクタとその重心を示す図
【図２１】仮想空間における複数のキャラクタとその重心を示す図
【図２２】図２１に対応する表示画面を示す図
【図２３】仮想空間における複数のキャラクタとその重心を示す図
【図２４】仮想空間における複数のキャラクタとその重心と注視点とを示す図
【図２５】仮想カメラの３つのポジションを示す図
【図２６】メインメモリに記憶されるデータの一部を示す図
【図２７】仮想カメラが第１ポジションにある場合の仮想空間における複数のキャラクタとその重心を示す図
【図２８】仮想カメラが第３ポジションにある場合の仮想空間における複数のキャラクタとその重心を示す図
【符号の説明】
【００７６】
１０  ＴＶモニタ
２０  ゲーム機本体
３０  ＤＶＤ−ＲＯＭ
４０  外部メモリカード
５０  コントローラ
６０  スピーカ
２０２  ＣＰＵ
２０４  ＧＰＵ
２０６  ジオメトリユニット
２０８  レンダリングユニット
２１０  カラーバッファ
２１２  Ｚバッファ
２１４  メインメモリ
２１６  ＤＳＰ
２１８  サブメモリ
２２０  メモリコントローラ
２２２  コントローラＩ／Ｆ
２２４  ビデオＩ／Ｆ
２２６  外部メモリＩ／Ｆ
２２８  オーディオＩ／Ｆ
２３０  ディスクドライブ
２３２  ディスクＩ／Ｆ
【図１】
2005027948.tif 000003
【図２】
2005027948.tif 000004
【図３】
2005027948.tif 000005
【図４】
2005027948.tif 000006
【図５】
2005027948.tif 000007
【図６】
2005027948.tif 000008
【図７】
2005027948.tif 000009
【図８】
2005027948.tif 000010
【図９】
2005027948.tif 000011
【図１０】
2005027948.tif 000012
【図１１】
2005027948.tif 000013
【図１２】
2005027948.tif 000014
【図１３】
2005027948.tif 000015
【図１４】
2005027948.tif 000016
【図１５】
2005027948.tif 000017
【図１６】
2005027948.tif 000018
【図１７】
2005027948.tif 000019
【図１８】
2005027948.tif 000020
【図１９】
2005027948.tif 000021
【図２０】
2005027948.tif 000022
【図２１】
2005027948.tif 000023
【図２２】
2005027948.tif 000024
【図２３】
2005027948.tif 000025
【図２４】
2005027948.tif 000026
【図２５】
2005027948.tif 000027
【図２６】
2005027948.tif 000028
【図２７】
2005027948.tif 000029
【図２８】
2005027948.tif 000030