(57)【要約】【課題】ユーザに対するゲーム等の画像の視認性を向上させる画像処理装置等を提供する。【解決手段】三次元仮想空間であるゲーム空間５０にプレイヤオブジェクトＰＯおよび敵オブジェクトＥＯが生成され、プレイヤオブジェクトＰＯ周辺のＰＯ円領域８０に存在する敵オブジェクトＥＯを被写体オブジェクトとして選択する。被写体オブジェクトの位置に基づいてＥＯ円領域８１を生成し、プレイヤオブジェクトＰＯとＥＯ円領域８１との位置関係に基づいてＣＭ円領域８２を生成する。そして、このＣＭ円領域８２が視界Ｑに含まれるように仮想カメラ６０の位置を決定する。【選択図】図７
2015026172.tif 000002
【特許請求の範囲】
【請求項１】
三次元仮想空間の少なくとも一部を仮想カメラで撮像して二次元画像を生成する画像処理装置であるコンピュータ装置を、
前記三次元仮想空間での前記仮想カメラの移動を制御する仮想カメラ制御手段、
操作部を介してユーザによって操作されるプレイヤオブジェクトと、前記プレイヤオブジェクトとは異なる複数のオブジェクトとを三次元仮想空間に生成し、前記プレイヤオブジェクトおよび前記複数のオブジェクトの動作を制御するオブジェクト制御手段、
として機能させ、
前記仮想カメラ制御手段は、前記複数のオブジェクトのうち、前記プレイヤオブジェクトが含まれる所定範囲内に存在するオブジェクトを被写体オブジェクトとして選択し、前記プレイヤオブジェクトおよび前記被写体オブジェクトが撮像範囲に含まれるように、前記プレイヤオブジェクトと前記被写体オブジェクトとの位置関係に基づいて前記仮想カメラの位置を決定する画像処理プログラム。
【請求項２】
前記仮想カメラ制御手段は、
前記被写体オブジェクトのそれぞれの位置に基づいて前記被写体オブジェクトの全てを含む第１の領域を算出し、前記プレイヤオブジェクトと前記被写体オブジェクトとの位置関係を前記プレイヤオブジェクトと前記第１の領域との位置関係として、前記仮想カメラの位置を決定する請求項１に記載の画像処理プログラム。
【請求項３】
前記仮想カメラ制御手段は、
前記プレイヤオブジェクトと前記第１の領域との位置関係に基づいて、前記プレイヤオブジェクトおよび前記第１の領域を含む第２の領域を算出し、前記第２の領域の中心を注視点として前記第２の領域が前記撮像範囲に含まれるように前記仮想カメラの位置を決定する請求項２に記載の画像処理プログラム。
【請求項４】
前記仮想カメラ制御手段は、
前記所定範囲内に存在するオブジェクトのうち、所定距離内に他のオブジェクトが位置しているオブジェクトを前記被写体オブジェクトとして選択する請求項１〜３のいずれか１項に記載の画像処理プログラム。
【請求項５】
前記仮想カメラ制御手段は、前記被写体オブジェクトとして選択されたオブジェクトが前記所定範囲外に移動した場合、前記被写体オブジェクトとする選択を解除する請求項１〜４のいずれか１項に記載の画像処理プログラム。
【請求項６】
三次元仮想空間の少なくとも一部を仮想カメラで撮影して二次元画像を生成する画像処理装置であって、
前記三次元仮想空間での前記仮想カメラの移動を制御する仮想カメラ制御手段と、
操作部を介してユーザによって操作されるプレイヤオブジェクトと、前記プレイヤオブジェクトとは異なる複数のオブジェクトとを前記三次元仮想空間に生成し、前記プレイヤオブジェクトおよび前記複数のオブジェクトの動作を制御するオブジェクト制御手段と、を備え、
前記仮想カメラ制御手段は、前記複数のオブジェクトのうち、前記プレイヤオブジェクトが含まれる所定範囲内に存在するオブジェクトを被写体オブジェクトとして選択し、前記プレイヤオブジェクトおよび前記被写体オブジェクトが撮像範囲に含まれるように、前記プレイヤオブジェクトと前記被写体オブジェクトとの位置関係に基づいて前記仮想カメラの位置を決定する画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、仮想カメラを用いて三次元仮想空間の二次元画像を生成する画像処理装置等に関する。
【背景技術】
【０００２】
ビデオゲーム装置は、例えば、ユーザ（プレイヤ）によって操作されるプレイヤオブジェクトおよびその他のオブジェクトを三次元仮想空間に生成するゲーム等を実行する。また、ビデオゲーム装置は、この三次元仮想空間の様子を仮想カメラで撮影してモニタ等の表示装置に表示する。ユーザは、表示装置に表示される三次元仮想空間の様子（ゲーム状況）を視認しつつ、ゲームパッド等を用いてプレイヤオブジェクトを操作する。
【０００３】
従来のビデオゲーム装置では、仮想カメラがプレイヤオブジェクトの背面上方に位置するように制御され、プレイヤオブジェクトが含まれように三次元仮想空間が撮影される。
【０００４】
また、１体以上の敵オブジェクトで構成されるグループが三次元仮想空間に複数配置され、これら複数のグループの中から選択されたグループの敵オブジェクトが撮影範囲に含まれるように仮想カメラの撮影方向を制御するビデオゲーム装置もある（例えば、特許文献１参照）。さらに、敵オブジェクトの数に応じて、仮想カメラの位置を制御するビデオゲーム装置もある（例えば、特許文献２参照）。
【０００５】
その他、デモシーンにおいて、三次元仮想空間に配置された複数のオブジェクトのうち、団体のオブジェクトが撮影されるように仮想カメラの水平画角を制御するビデオゲーム装置もある（例えば、特許文献３参照）。
【０００６】
ユーザは、ゲームを上手く進めるべく、プレイヤオブジェクトおよび敵オブジェクトがどのような状態にあるかをゲーム画像から素早く把握したいと考える。特に、プレイヤオブジェクトがゲーム画像に表示されるゲームでは、ユーザは、プレイヤオブジェクトと敵オブジェクトとがどのような位置関係にあるか等を視認したいと考える。特に近年のゲームでは、多数の敵オブジェクトが三次元仮想空間に生成されるものがある。そのため、多くのオブジェクトを含めつつ三次元仮想空間をどのように撮影するかが重要となってきている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−６８８８２号公報
【特許文献２】特許第３８７１２２４号公報
【特許文献３】特開２０１２−１００９９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述の従来のビデオゲーム装置では、仮想カメラの位置等の制御において、プレイヤオブジェクト又は他のオブジェクトの位置等が考慮されているものの、プレイヤオブジェクトとその他の複数のオブジェクトとの位置関係については考慮されていなかった。そのため、ユーザがゲーム画像を見づらいと感じる場合があった。
【０００９】
そこで、本発明は、ユーザに対するゲーム等の画像の視認性を向上させる画像処理プログラム等を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の側面によって提供される画像処理プログラムは、三次元仮想空間の少なくとも一部を仮想カメラで撮像して二次元画像を生成する画像処理装置であるコンピュータ装置を、前記三次元仮想空間での前記仮想カメラの移動を制御する仮想カメラ制御手段、操作部を介してユーザによって操作されるプレイヤオブジェクトと、前記プレイヤオブジェクトとは異なる複数のオブジェクトとを三次元仮想空間に生成し、前記プレイヤオブジェクトおよび前記複数のオブジェクトの動作を制御するオブジェクト制御手段、として機能させ、前記仮想カメラ制御手段は、前記複数のオブジェクトのうち、前記プレイヤオブジェクトが含まれる所定範囲内に存在するオブジェクトを被写体オブジェクトとして選択し、前記プレイヤオブジェクトおよび前記被写体オブジェクトが撮像範囲に含まれるように、前記プレイヤオブジェクトと前記被写体オブジェクトとの位置関係に基づいて前記仮想カメラの位置を決定することを特徴とする。
【００１１】
前記仮想カメラ制御手段は、前記被写体オブジェクトのそれぞれの位置に基づいて前記被写体オブジェクトの全てを含む第１の領域を算出し、前記プレイヤオブジェクトと前記被写体オブジェクトとの位置関係を前記プレイヤオブジェクトと前記第１の領域との位置関係として、前記仮想カメラの位置を決定してもよい。
【００１２】
また、前記仮想カメラ制御手段は、前記プレイヤオブジェクトと前記第１の領域との位置関係に基づいて、前記プレイヤオブジェクトおよび前記第１の領域を含む第２の領域を算出し、前記第２の領域の中心を注視点として前記第２の領域が前記撮像範囲に含まれるように前記仮想カメラの位置を決定してもよい。
【００１３】
さらに、前記仮想カメラ制御手段は、前記所定範囲内に存在するオブジェクトのうち、所定距離内に他のオブジェクトが位置しているオブジェクトを前記被写体オブジェクトとして選択してもよい。
【００１４】
また、前記仮想カメラ制御手段は、前記被写体オブジェクトとして選択されたオブジェクトが前記所定範囲外に移動した場合、前記被写体オブジェクトとする選択を解除してもよい。
【００１５】
本発明の第２の側面によって提供される画像処理装置は、三次元仮想空間の少なくとも一部を仮想カメラで撮像して二次元画像を生成し、前記三次元仮想空間での前記仮想カメラの移動を制御する仮想カメラ制御手段と、操作部を介してユーザによって操作されるプレイヤオブジェクトと、前記プレイヤオブジェクトとは異なる複数のオブジェクトとを三次元仮想空間に生成し、前記プレイヤオブジェクトおよび前記複数のオブジェクトの動作を制御するオブジェクト制御手段と、を備え、前記仮想カメラ制御手段は、前記複数のオブジェクトのうち、前記プレイヤオブジェクトが含まれる所定範囲内に存在するオブジェクトを被写体オブジェクトとして選択し、前記プレイヤオブジェクトおよび前記被写体オブジェクトが撮像範囲に含まれるように、前記プレイヤオブジェクトと前記被写体オブジェクトとの位置関係に基づいて前記仮想カメラの位置を決定することを特徴とする。
【発明の効果】
【００１６】
この発明によれば、プレイヤオブジェクトとプレイヤオブジェクトとは異なる複数のオブジェクトとの位置関係に基づいて仮想カメラの位置が制御される。したがって、プレイヤオブジェクトおよび複数のオブジェクトがいる三次元仮想空間であってもユーザに対するゲーム等の画像の視認性をより向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】この発明のゲーム装置を含むゲームシステムのブロック図である。
【図２】ゲーム空間に配置された仮想カメラおよび仮想スクリーンを模式的に示す図である。
【図３】非戦闘用カメラ制御処理の実行による仮想カメラの位置決めを説明するための説明図である。
【図４】非戦闘用カメラ制御処理から戦闘用カメラ制御処理への移行を説明する説明図である。
【図５】非戦闘用カメラ制御処理から戦闘用カメラ制御処理への移行を説明する説明図である。
【図６】非戦闘用カメラ制御処理から戦闘用カメラ制御処理への移行を説明する説明図である。
【図７】戦闘用カメラ制御処理の実行による仮想カメラの位置決めを説明するための説明図である。
【図８】戦闘用カメラ制御処理の実行による仮想カメラの位置決めを説明するための説明図である。
【図９】戦闘用カメラ制御処理の実行によるＥＯ円領域を説明するための説明図である。
【図１０】戦闘用カメラ制御処理から非闘用カメラ制御処理への移行を説明する説明図である。
【図１１】戦闘用カメラ制御処理から非闘用カメラ制御処理への移行を説明する説明図である。
【図１２】戦闘用カメラ制御処理から非闘用カメラ制御処理への移行を説明する説明図である。
【図１３】戦闘用カメラ制御処理から非闘用カメラ制御処理への移行を説明する説明図である。
【図１４】戦闘用カメラ制御処理の実行による仮想カメラ６０の位置決めを説明するための説明図である。
【図１５】非戦闘用カメラ制御処理を示すフローチャートである。
【図１６】戦闘用カメラ制御移行処理を示すフローチャートである。
【図１７】戦闘用カメラ制御処理および非戦闘用カメラ制御移行処理を示すフローチャートである。
【図１８】登録解除処理を示すフローチャートである。
【図１９】位置決定処理Ａを示すフローチャートである。
【図２０】位置決定処理Ｂを示すフローチャートである。
【図２１】登録処理Ａを示すフローチャートである。
【図２２】登録処理Ｂ，Ｃを示すフローチャートである。
【発明を実施するための形態】
【００１８】
図面を参照してこの発明の実施形態である画像処理プログラムおよび画像処理装置について説明する。なお、この発明の構成は、実施形態に限定されるものではない。
【００１９】
図１は、この発明のゲーム装置１０を含むゲームシステム１のブロック図である。ゲームシステム１は、ビデオゲーム装置１０、サウンド出力装置３６、表示装置３７、操作部３８および記録媒体１０６Ａ等から構成される。
【００２０】
ビデオゲーム装置１０は、記録媒体１０６Ａに記録されているゲームプログラムを実行することで所定のゲームを実行する。この実施形態では、三次元仮想空間であるゲーム空間にプレイヤオブジェクトと敵オブジェクトとが存在するゲームが実行される。ビデオゲーム装置１０は、本発明を適用した画像処理装置に相当する。
【００２１】
このゲームでは、ゲーム空間内に多くの敵オブジェクト（例えば１００体）が登場する。そして、ユーザ（プレイヤ）がプレイヤオブジェクトを操作して敵オブジェクトを攻撃する等してゲームが進められる。ビデオゲーム装置１０は、仮想カメラを通じて生成したゲーム空間の一部の画像（ゲーム画像）を表示装置３７に表示させる。また、ビデオゲーム装置１０は、ゲーム画像内にプレイヤオブジェクトおよび複数の敵オブジェクトが含まれるように、ゲーム空間内の仮想カメラの移動を制御する。詳細は後述する。
【００２２】
ビデオゲーム装置１０は、図１に示すように、内部バス１０９に接続された制御部１０１、ＲＡＭ１０２、ＨＤＤ１０３、グラフィック処理部１０４、サウンド処理部１０５、ＤＶＤ／ＣＤ−ＲＯＭドライブ１０６、記録媒体１０６Ａ、通信インターフェイス１０７、およびインターフェイス１０８等から構成される。
【００２３】
制御部１０１は、ＣＰＵやＲＯＭ等から構成される。また、制御部１０１は、ＨＤＤ１０３および記録媒体１０６Ａ等に格納されたゲームプログラムを実行し、装置全体の制御を行う。ＲＡＭ１０２は、揮発性メモリであり、制御部１０１のワークエリアである。ＨＤＤ１０３は、ゲームプログラムおよびデータ等を保存するための記憶領域である。
【００２４】
グラフィック処理部１０４は、モニタ等の表示装置３７に接続される。また、グラフィック処理部１０４は、フレームメモリ（フレームバッファ）を有し、制御部１０１から出力される描画命令に従ってこのフレームメモリに１フレーム単位（例えば３０分の１秒）で画像を生成する。フレームメモリに生成された各画像は、ビデオ信号に変換されて表示装置３７に出力（表示）される。
【００２５】
サウンド処理部１０５は、スピーカーであるサウンド出力装置３６に接続される。また、サウンド処理部１０５は、制御部１０１から出力されるサウンド生成命令に従って生成した効果音やＢＧＭ等のサウンド信号をサウンド出力装置３６に出力する。
【００２６】
ＤＶＤ／ＣＤ−ＲＯＭドライブ１０６は、装着された記録媒体１０６ＡからゲームプログラムをＲＡＭ１０２やＨＤＤ１０３等に読み出す。この実施形態においては、記録媒体１０６ＡとしてＤＶＤ−ＲＯＭおよびＣＤ−ＲＯＭが相当する。記録媒体１０６Ａには、ゲームプログラムが記憶されている。ゲームプログラムには、ゲームの進行に必要なグラフィックデータ等のゲームデータも含まれる。
【００２７】
通信インターフェイス１０７は、ネットワーク回線２に接続され、他のビデオゲーム装置３等との通信を行う。入出力インターフェイス１０８は、操作部３８に接続される。操作部３８は、例えば方向キーおよび複数の操作ボタンが設けられたゲームパッドであり、ユーザの操作入力を受け付ける。ユーザは、操作部３８のボタンを押下する等してプレイヤオブジェクトの操作を行う。入出力インターフェイス１０８は、操作部３８からの入力データをＲＡＭ１０２に出力する。
【００２８】
そして、ゲーム装置１０は、制御部１０１等と記録媒体１０６Ａのゲームプログラムとの協働によって、仮想カメラ制御部およびオブジェクト制御部として機能する。仮想カメラ制御部は、ゲーム空間内での仮想カメラの移動を制御する。オブジェクト制御部は、プレイヤオブジェクトおよび敵オブジェクトをゲーム空間に生成する。さらに、オブジェクト制御部は、操作部３８からの入力データ等に基づいて、これらオブジェクトの動作を制御する。
【００２９】
図２は、ゲーム空間５０に配置された仮想カメラ６０および仮想スクリーン６１を模式的に示す図である。ビデオゲーム装置１０によって生成されるゲーム空間５０には、図２に示すように、プレイヤオブジェクトＰＯおよび複数の敵オブジェクト（不図示）等のゲーム空間５０を動作するオブジェクトが存在する。その他、ゲーム空間５０には、図示しないビル等の動作しないオブジェクトも存在する。
【００３０】
また、ゲーム空間５０には、仮想カメラ６０が配置されている。仮想カメラ６０は、表示装置３７に表示するゲーム画像を生成するためにゲーム空間５０の一部を撮影する。グラフィック処理部１０４が、仮想カメラ６０によって撮影される画像をゲーム画像として生成する。
【００３１】
具体的には、グラフィック処理部１０４が、公知の透視変換等の処理を行って仮想カメラ６０を視点６２とする仮想スクリーン６１にゲーム空間が投影された画像（二次元画像）を生成する。そして、この画像にカーソル等の画像を合成する等してゲーム画像を生成する。グラフィック処理部１０４は、ゲーム画像を１フレーム単位で生成する。なお、上述の仮想カメラ６０を使用したゲーム画像の生成に関する技術は公知であるので詳細説明は省略する。
【００３２】
このようなゲーム空間５０は、ＸＹＺ軸で構成されるワールド座標系で定義される。また、仮想スクリーン６１上にゲーム空間５０を投影するために用いられる座標系が視点６２を基準としたＸ′Ｙ′Ｚ′軸で構成される視点座標系で定義される。
【００３３】
仮想カメラ６０の位置が視点６２であり、また仮想カメラ６０の向きが視軸６４である。視軸６４は、視点座標系のＺ′軸であり、仮想カメラ６０の位置と注視点（不図示）とで決定される。また、視点６２と仮想スクリーン６１の頂点とを結ぶ４本の直線６０１〜６０４および仮想スクリーン６１で形成される領域が視界Ｑとなる。なお、この実施形態の仮想スクリーン６１は、視軸６４上における視点６２から所定距離の位置に配置される。また、この実施形態では、仮想スクリーン６１の大きさおよび視点６２からの距離は固定されている。
【００３４】
仮想カメラ６０の位置は、カメラ制御処理によって決定される。カメラ制御処理には、非戦闘用カメラ制御処理および戦闘用カメラ制御処理がある。非戦闘用カメラ制御処理は、プレイヤオブジェクトＰＯの周囲に敵オブジェクトが存在しない場合に実行される。一方、戦闘用カメラ制御処理は、プレイヤオブジェクトＰＯの周囲に敵オブジェクトが存在する場合に実行される。これら二つのカメラ制御処理は、主として制御部１０１によって択一的に実行される。
【００３５】
非戦闘用カメラ制御処理では、図３に示すように、仮想カメラ６０の位置がプレイヤオブジェクトＰＯの位置に基づいて決定される。図３は、非戦闘用カメラ制御処理の実行による仮想カメラ６０の位置決めを説明するための説明図である。また、図３は、ゲーム空間５０にプレイヤオブジェクトＰＯと２体の敵オブジェクトＥＯ１，２とが存在する状態を示す。図３（Ａ）は、ゲーム空間５０を俯瞰視した状態を示す。図３（Ｂ）は、図３（Ａ）に示すゲーム空間５０を地点Ｓから矢印の方向に見た状態を示す。
【００３６】
非戦闘用カメラ制御処理では、プレイヤオブジェクトＰＯの位置に注視点が設定される。また、この注視点（プレイヤオブジェクトＰＯ）と仮想カメラ６０との距離が所定値Ｄに設定されている。さらに、プレイヤオブジェクトＰＯが向いている方向ＰＣＡと視軸６４とで形成される角度α、γが保持（設定）されている。方向ＰＣＡは、例えばプレイヤオブジェクトＰＯの正面が向いている方向を示す。なお、方向ＰＣＡは、プレイヤオブジェクトＰＯの現在位置の情報などの情報とともにＲＡＭ１０２等に記憶されている。
【００３７】
仮想カメラ６０は、上述の設定情報にしたがった位置を維持するようにプレイヤオブジェクトＰＯの移動に追従する。例えば、図３に示す状態からプレイヤオブジェクトＰＯが移動した場合、仮想カメラ６０は、プレイヤオブジェクトＰＯの移動位置に対して所定値Ｄ、角度α，γを維持した位置に移動する。
【００３８】
この非戦闘用カメラ制御処理によって、プイレイヤオブジェクトＰＯが中心付近に位置するゲーム画像が表示装置３７に表示される。図３に示すように、仮想カメラ６０がプレイヤオブジェクトＰＯの背面上方に位置する場合、プレイヤオブジェクトＰＯの背面の画像を含むゲーム画像が表示装置３７に表示される。
【００３９】
また、ユーザは、操作部３８を操作して、規定範囲内で仮想カメラ６０を上下左右方向に移動させることができる。具体的には、ユーザは、注視点（プレイヤオブジェクトＰＯ）を中心とする半径が所定値Ｄの半球９０の面上で仮想カメラ６０を移動させることができる。例えば、図３（Ａ）に示す仮想カメラ６０を、図６（Ａ）に示すように移動させることができる。これにより、プレイヤオブジェクトＰＯの側面の画像を含むゲーム画像が表示装置３７に表示される。
【００４０】
上述のようにユーザが仮想カメラ６０を移動操作すると、角度α，γは移動操作前の値から変化する。この値は、再びユーザの操作があるまで保持される。そして、仮想カメラ６０は、この変化後の値に基づいて位置決めされる。したがって、図６（Ａ）に示すような状態では、その後にプレイヤオブジェクトＰＯが移動しても、図６（Ａ）に示す角度α，γは保持され、プレイヤオブジェクトＰＯの側面の画像を含むゲーム画像が表示装置３７に表示される。
【００４１】
一方、戦闘用カメラ制御処理では、図７に示すように、仮想カメラ６０の位置が、プレイヤオブジェクトＰＯと敵オブジェクトＥＯとの位置関係に応じて決定される。具体的には、プレイヤオブジェクトＰＯと敵オブジェクトＥＯとの位置関係応じて生成されるＣＭ円領域８２を生成し、このＣＭ円領域８２が視界Ｑ内に含まれる位置に決定される。
【００４２】
図７は、戦闘用カメラ制御処理の実行による仮想カメラ６０の位置決めを説明するための説明図である。また、図７は、ゲーム空間５０にプレイヤオブジェクトＰＯと８体の敵オブジェクトＥＯとが存在する状態を示す。図７（Ａ）は、ゲーム空間５０を俯瞰視した状態を示す。図７（Ｂ）は、図７（Ａ）に示すゲーム空間５０を地点Ｓから矢印の方向に見た状態を示す。なお、８体の敵オブジェクトＥＯは、後述する被写体オブジェクトである。
【００４３】
ＣＭ円領域８２は、ＥＯ円領域８１とプレイヤオブジェクトＰＯとの位置に基づいて生成される。ＥＯ円領域８１は、ＰＯ円領域８０に存在する８体の敵オブジェクトＥＯが包含される円領域であり、８体の敵オブジェクトＥＯの位置に基づいて形成される。ＰＯ円領域８０は、プレイヤオブジェクトＰＯの現在位置を中心として、所定値を半径とする円領域である。ＰＯ円領域８０は、本発明の所定範囲に相当する。ＥＯ円領域８１は、本発明の第１の領域に相当する。また、ＣＭ円領域８２は、本発明の第２の領域に相当する。
【００４４】
ＣＭ円領域８２は、ＥＯ円領域８１の中心点８１ＣとプレイヤオブジェクトＰＯとが含まれる線分ＡＢを直径とする円領域である。このＣＭ円領域８２の中心点８２Ｃが注視点となってＣＭ円領域８２が視界Ｑに含まれる位置が新たな仮想カメラ６０の位置となる。
【００４５】
線分ＡＢは、プレイヤオブジェクトＰＯが、ＥＯ円領域８１の外部に位置しているか否かによって決定処理が異なる。図７（Ａ）に示すように、プレイヤオブジェクトＰＯがＥＯ円領域８１の外部に位置している場合、線分ＡＢの一方の端点Ａの座標として、プレイヤオブジェクトＰＯの位置座標が設定される。また、線分ＡＢの他方の端点Ｂの座標として、線分ＡＢとＥＯ円領域８１との交点の座標が設定される。
【００４６】
また、図８に示すように、プレイヤオブジェクトＰＯがＥＯ円領域８１の内部に位置している場合、線分ＡＢの端点Ａ，Ｂは、プレイヤオブジェクトＰＯおよびＥＯ円領域８１の中心点８１Ｃを通過する直線とＥＯ円領域８１Ｃとの交点となる。そして、ＣＭ円領域８２は、ＥＯ円領域８１に重なった状態となる。図８は、プレイヤオブジェクトＰＯが、図７に示す状態から敵オブジェクトＥＯに近づく位置に移動した状態を示す。
【００４７】
そして、注視点がＣＭ円領域８２の中心点８２Ｃとなる。なお、視軸６４と線分ＡＢとで形成される角度β，γは、基本的に前回の値が保持される。したがって、注視点（中心点８２Ｃ）が決まれば、視軸６４も決まる。
【００４８】
最終的に、仮想カメラ６０の新たな位置は、平面視（ＸＺ平面）において、視界Ｑを形成する４本の直線６０１〜６０４とＣＭ円領域８２とが接する位置に決定される。上述のように、角度β，γの値は保持されていて、また視軸６４に対する直線６０１〜６０４の角度も固定されている。したがって、これらから直線６０１〜６０４の方程式が算出される。さらに、直線６０１〜６０４の方程式が算出されることで、直線６０１〜６０４と視軸６４との交点も算出される。そして、この交点が新たな仮想カメラ６０の位置となる。なお、上記計算をゲーム装置で演算処理することは一般的な技術であるので、詳細は省略する。
【００４９】
なお、非戦闘用カメラ制御処理では、仮想カメラ６０と注視点との距離は一定であったが、戦闘用カメラ制御処理では、ＣＭ円領域８２の大きさによって変動することになる。ＣＭ円領域８２が大きい場合は、ゲーム空間５０の多くの領域を視界Ｑ内に含めなければならないため、仮想カメラ６０と注視点（中心点８２Ｃ）との距離が長くなる。逆に、ＣＭ円領域８２が小さい場合は、ゲーム空間５０の少しの領域を視界Ｑ内に含めればよいので、仮想カメラ６０と注視点との距離が短くなる。
【００５０】
例えば、図７（Ａ）のＣＭ円領域８２は図８のＣＭ円領域８２よりも大きいので、図７（Ａ）の仮想カメラ６０と注視点（中心点８２Ｃ）との距離は、図８の仮想カメラ６０と注視点（中心点８２Ｃ）との距離よりも長くなる。
【００５１】
なお、この実施形態では、直線６０１〜６０４とＣＭ円領域８２とが接する状態で仮想カメラ６０の位置が決定されるが、視界Ｑ内にＣＭ円領域８２が含まれれば特にこれに限定されるものではない。直線６０１〜６０４がＣＭ円領域８２と交わらない状態であってもよい。
【００５２】
これにより、ＣＭ円領域８２内に存在するプレイヤオブジェクトＰＯと敵オブジェクトＥＯとが含まれるようにゲーム画像が生成される。このように、対象となる敵オブジェクトＥＯによって形成されるＥＯ円領域８１を利用しているので、例えば、ＥＯ円領域８１の範囲内で敵オブジェクトＥＯが移動するような場合は、ＥＯ円領域８１の変化量は少ない。そのため、敵オブジェクトＥＯの移動による仮想カメラ６０（視点６２）の位置の変化量の増大を抑制できる。したがって、ゲーム画像の内容が急激に変化することを抑制でき、ユーザが視認し易い。
【００５３】
なお、この実施形態では、プレイヤオブジェクトＰＯがＥＯ円領域８１の外部にいる場合、プレイヤオブジェクトＰＯの位置を点ＡとしてＣＭ円領域８２を形成しているが、特にこれに限定されるものではない。プレイヤオブジェクトＰＯとＥＯ円領域８１との位置関係に基づいて仮想カメラ６０の新たな位置を決定してもよい。
【００５４】
例えば、図１４に示すように、プレイヤオブジェクトＰＯとＥＯ円領域８１の中心点８１Ｃとの中点をＣＭ円領域８２の中心点８２Ｃとする。また、プレイヤオブジェクトＰＯおよび中心点８１Ｃを通る線分とＥＯ円領域８１との交点をＢとし、中心点８２Ｃおよび交点Ｂを結ぶ線分を半径とするＣＭ円領域８２であってもよい。これにより、プレイヤオブジェクトＰＯが内部に含まれるようにＣＭ円領域８２が形成されるので、プレイヤオブジェクトＰＯをより視認し易い。
【００５５】
また、戦闘用カメラ制御処理が実行される状態においても、ユーザは、非戦闘用カメラ制御処理時と同様に、仮想カメラ６０の位置を上下左右方向に移動させることができる。戦闘用カメラ制御処理では、注視点がＣＭ円領域８２の中心点８２Ｃとなる。したがって、ユーザは、注視点（中心点８２Ｃ）を中心とする半球９１の球面上で仮想カメラ６０を移動させることができる。
【００５６】
なお、戦闘用カメラ制御処理においても、非戦闘用カメラ制御処理時と同様に、ユーザによって移動操作された仮想カメラ６０の注視点（中心点８２Ｃ）に対する位置は、再びユーザの操作があるまで保持される。具体的には、角度β，γが保持される。なお、半球９１の半径は、戦闘用カメラ制御処理によって決定された仮想カメラ６０の位置と、注視点（中心点８２Ｃ）との距離になる。そのため、この半径の値は、ユーザの操作によっては変化しない。
【００５７】
また、この実施形態では、プレイヤオブジェクトＰＯのＰＯ円領域８０に存在する敵オブジェクトＥＯのうち、被写体オブジェクトとして選択（登録）された敵オブジェクトＥＯに対してＥＯ円領域８１が形成される。そして、プレイヤオブジェクトＰＯと被写体オブジェクトとの位置関係に基づいてＣＭ円領域８２が形成され、仮想カメラ６０の位置が決定される。つまり、プレイヤオブジェクトＰＯと被写体オブジェクトとして登録された敵オブジェクトＥＯとがゲーム画像に含まれるように新たな仮想カメラ６０の位置が決定される。
【００５８】
被写体オブジェクトとして登録されるのは、基本的に、ＰＯ円領域８０に存在する敵オブジェクトＥＯのうち、他の敵オブジェクトＥＯと隣接している敵オブジェクトＥＯである。具体的には、他の敵オブジェクトＥＯが所定距離内に存在する敵オブジェクトＥＯが被写体オブジェクトとして登録される。以下、図９を用いて説明する。
【００５９】
図９は、戦闘用カメラ制御処理の実行によるＥＯ円領域８１を説明するための説明図である。図９は、ゲーム空間５０を俯瞰視した状態を示す。なお、説明の便宜上、仮想カメラ６０等の図示は省略する。
【００６０】
最初に、図９（Ａ）を用いて説明する。図９（Ａ）は、敵オブジェクトＥＯ１〜５が存在するＰＯ円領域８０内に、敵オブジェクトＥＯ６が移動してきた状態を示す。各敵オブジェクトＥＯ１〜６には、隣接円領域８４が設定されている。隣接円領域８４は、各敵オブジェクトＥＯ１〜６を中心として半径が所定値で形成されている。この隣接円領域８４によって隣接しているか否かが判断される。ある敵オブジェクトＥＯの隣接円領域８４が他の敵オブジェクトＥＯの隣接円領域８４と重なる場合、その敵オブジェジェクトＥＯは隣接していると判断される。
【００６１】
各敵オブジェクトＥＯ１〜５の隣接円領域８４は、ＰＯ円領域８０内の他の敵オブジェクトＥＯ１〜５のいずれかの隣接円領域８４と重なっている。したがって、敵オブジェクトＥＯ１〜５は、他の敵オブジェクトＥＯ１〜５と隣接している状態であるので被写体オブジェクトとして登録される。
【００６２】
一方、敵オブジェクトＥＯ６の隣接円領域８４は、ＰＯ円領域８０内の他の敵オブジェクトＥＯ１〜５の隣接円領域８４のいずれとも重なっていない。したがって、敵オブジェクトＥＯ６は、被写体オブジェクトとして登録されない。
【００６３】
そして、上述と同様に、被写体オブジェクトである敵オブジェクトＥＯ１〜５の位置に基づいてＥＯ円領域８１が形成される。また、このＥＯ円領域８１とプレイヤオブジェクトＰＯとの位置関係に基づいて、ＣＭ円領域８２が形成されて新たな仮想カメラ６０の位置が決定される。
【００６４】
次に、図９（Ａ）に示す状態から図９（Ｂ）に示す状態に移行した場合について説明する。図９（Ｂ）は、敵オブジェクトＥＯ７〜９がＰＯ円領域８０に移動してきた状態を示す。また、図９（Ｂ）では、敵オブジェクトＥＯ６，７が隣接している状態である。さらに、敵オブジェクトＥＯ８，９も隣接している状態である。
【００６５】
したがって、敵オブジェクトＥＯ１〜５に加えて、敵オブジェクトＥＯ６〜９も被写体オブジェクトとして登録される。そして、上述と同様に、被写体オブジェクトである敵オブジェクトＥＯ１〜９の位置に基づいてＥＯ円領域８１が形成される。また、ＣＭ円領域８２が形成されて新たな仮想カメラ６０の位置が決定される。
【００６６】
次に、図９（Ｂ）に示す状態から図９（Ｃ）に示す状態に移行した場合について説明する。図９（Ｃ）は、敵オブジェクトＥＯ５が移動し、ＰＯ円領域８０内の敵オブジェクトＥＯ１〜４と隣接していない状態を示す。また、敵オブジェクトＥＯ６，７，９は、ＰＯ円領域８０および終了判定領域８３の外部に移動した状態である。さらに、敵オブジェクトＥＯ８は、プレイヤオブジェクトＰＯの攻撃を受けて消滅した状態である。
【００６７】
ここで、被写体オブジェクトの登録が解除される条件は、移動またはプレイヤオブジェクトＰＯに攻撃を受けて消滅する等してＰＯ円領域８０の内部から外れることである。したがって、戦闘用カメラ制御処理の実行中、被写体オブジェクトとして登録された敵オブジェクトＥＯは、ＰＯ円領域８０に存在している間、他の敵オブジェクトＥＯと隣接しなくなったとしても被写体オブジェクトとしての登録は保持される。
【００６８】
これにより、被写体オブジェクトの登録と解除とが頻繁に繰り返されることを防止する。そして、ＣＭ円領域８２の大きさが頻繁に変化することを防止する。
【００６９】
図９（Ｃ）に示す敵オブジェクトＥＯ５は、ＰＯ円領域８０に存在し、また既に被写体オブジェクトとして登録されている。したがって、現状は他の敵オブジェクトＥＯと隣接していないが、被写体オブジェクトの登録は保持される。一方、敵オブジェクトＥＯ６，７，９も、既に被写体オブジェクトとして登録されている。しかし、これらの敵オブジェクトＥＯ６，７，９は、移動によってＰＯ円領域８０には存在しないため被写体オブジェクトの登録は解除される。さらに、敵オブジェクトＥＯ８も、消滅によりＰＯ円領域８０には存在しないため被写体オブジェクトの登録は解除される。
【００７０】
これにより、図９（Ｃ）に示す状態では、敵オブジェクトＥＯ１〜５が被写体オブジェクトとなる。そして、上述と同様に、これら敵オブジェクトＥＯ１〜５の位置に基づいてＥＯ円領域８１が形成される。また、ＣＭ円領域８２が形成されて新たな仮想カメラ６０の位置が決定される。
【００７１】
なお、敵オブジェクトＥＣ９は、ＰＯ円領域８０の外部ではあるが終了判定領域８３には存在しているので、解除オブジェクトとして登録される。解除オブジェクトについては後述する。
【００７２】
次に、非戦闘用カメラ制御処理と戦闘用カメラ制御処理との切り替えについて説明する。制御部１０１は、非戦闘用カメラ制御処理と戦闘用カメラ制御処理とを択一的に実施する。非戦闘用カメラ制御処理は、上述のように、プレイヤオブジェクトＰＯの周囲に敵オブジェクトＥＯが存在しない状態のときに実行される。一方、戦闘用カメラ制御処理は、プレイヤオブジェクトＰＯの周囲に敵オブジェクトＥＯが存在する状態のときに実行される。
【００７３】
最初に、非戦闘用カメラ制御処理から戦闘用カメラ制御処理への移行について説明する。図４〜６は、非戦闘用カメラ制御処理から戦闘用カメラ制御処理への移行を説明する説明図である。
【００７４】
非戦闘用カメラ制御処理では、ＰＯ円領域８０に少なくとも１体の敵オブジェクトＥＯが存在する状態になったことを条件として戦闘用カメラ制御処理への移行が開始される。具体的には、非戦闘用カメラ制御処理の途中から戦闘用カメラ制御移行処理が実行される。その後、戦闘用カメラ制御処理の実行が開始される。
【００７５】
戦闘用カメラ制御移行処理では、一部処理内容は異なるが、戦闘用カメラ制御処理と同様に、ＰＯ円領域８０の敵オブジェクトＥＯを被写体オブジェクトとして登録し、この被写体オブジェクトのＥＯ円領域８１が形成される。そして、ＣＭ円領域８２が形成されて新たな仮想カメラ６０の位置が決定される。
【００７６】
例えば、図３に示す状態から図４（Ａ）に示す状態に移行した場合について説明する。図４（Ａ）は、敵オブジェクトＥＯ２がプレイヤオブジェクトＰＯのＰＯ円領域８０に移動してきた状態を示す。敵オブジェクトＥＯ２がＰＯ円領域８０に存在することになったため、非戦闘用カメラ制御処理が実質的に終了して戦闘用カメラ制御移行処理が開始される。
【００７７】
戦闘用カメラ制御移行処理では、図４（Ａ）に示すようなＰＯ円領域８０に敵オブジェクトＥＯが１体しかいない場合であっても、その敵オブジェクトＥＯが被写体オブジェクトとして登録される。したがって、敵オブジェクトＥＯ２は、被写体オブジェクトとして登録される。そして、戦闘用カメラ制御処理と同様に、敵オブジェクトＥＯ２の位置に基づいてＥＯ円領域８１が形成された後、ＣＭ円領域８２が形成される。
【００７８】
なお、図５（Ｂ）に示すようなＰＯ円領域８０に２体の隣接する敵オブジェクトＥＯ１，２が存在する場合は、これら敵オブジェクトＥＯ１，２が被写体オブジェクトとして登録される。例えば、図５（Ｂ）に示す状態に、さらに別の敵オブジェクトＥＯがＰＯ円領域に隣接しない状態で存在する場合、別の敵オブジェクトＥＯは被写体オブジェクトとして登録されない。隣接している敵オブジェクトの被写体オブジェクトへの登録が優先される。
【００７９】
ここで、戦闘用カメラ制御移行処理では、ＣＭ円領域８２から新たな仮想カメラ６０の位置を決定する処理が戦闘用仮想カメラ制御処理とは異なる。具体的には、視軸６４の設定が異なる。戦闘用カメラ制御移行処理では、前回位置の仮想カメラ６０とＣＭ円領域８２の中心点８２Ｃとを通る直線９５が視軸６４として設定される。図４（Ａ）では、前回位置にあるのが仮想カメラ６０′である。この仮想カメラ６０′と中心点８２Ｃとを通る直線が視軸６４として設定される。
【００８０】
なお、その後は、戦闘用カメラ制御処理と同様に直線６０１〜６０４とＣＭ円領域８２とが接するように仮想カメラ６０の位置が決定される。そして、戦闘用カメラ制御移行処理は終了し、その後は戦闘用カメラ制御処理が実行される。
【００８１】
したがって、例えば、図４（Ａ）に示す状態から図４（Ｂ）に示すように敵オブジェクトＥＯ１がＰＯ円領域８０内に移動してきた場合であっても、戦闘用カメラ制御処理において敵オブジェクトＥＯ１は被写体オブジェクトとして登録されない。敵オブジェクトＥＯ１は、他の敵オブジェクトＥＯと隣接していないためである。
【００８２】
その後、図４（Ｂ）に示す状態から図５（Ａ）に示すように敵オブジェクトＥＯ１が敵オブジェクトＥＯ３と隣接するようになった場合には、戦闘用カメラ制御処理において敵オブジェクトＥＯ１，３は被写体オブジェクトとして登録される。そして、敵オブジェクトＥＯ１〜３でＥＯ円領域８１が形成される。この場合、戦闘用カメラ制御処理であるので、視軸６４は、前回の角度β，γの値が保持された状態で設定される。
【００８３】
次に、図６（Ａ）に示す状態から図６（Ｂ）に示す状態に移行した場合について説明する。図６（Ａ）は、仮想カメラ６０がユーザの操作によって図３に示す状態から移動した状態を示す。図６（Ｂ）は、敵オブジェクトＥＯ２がＰＯ円領域８０に移動してきた状態を示す。
【００８４】
図６（Ａ）に示す状態から図６（Ｂ）に示す状態への移行によって、非戦闘用カメラ制御処理が実質的に終了して、戦闘用カメラ制御移行処理が開始される。
【００８５】
したがって、図６（Ｂ）に示す場合も、図４（Ａ）に示す場合と同様に敵オブジェクトＥＯ２が被写体オブジェクトとして登録される。そして、被写体オブジェクトである敵オブジェクトＥＯ２の位置に基づいてＥＯ円領域８１が形成された後、ＣＭ円領域８２が形成される。また、視軸６４についても、図４（Ａ）に示す場合と同様に、前回位置の仮想カメラ６０（仮想カメラ６０′）と中心点８２Ｃとを通る直線が視軸６４に設定される。そして、ＣＭ円領域８２等から新たな仮想カメラ６０の位置が決定される。
【００８６】
上述のように、この実施形態の戦闘用カメラ制御移行処理では、基本的に、前回位置の仮想カメラ６０とＣＭ円領域８２の中心点８２Ｃとを通る直線が視軸６４として設定される。しかし、視軸６４となるべき直線と線分ＡＢとで形成される角度βが、０度および９０度である場合は、この直線は視軸６４に設定されない。代わりに角度βが所定値（例えば３０°）となる直線が視軸６４として設定される。
【００８７】
例えば、図３に示す状態から図５（Ｂ）に示す状態に移行した場合が該当する。図５（Ｂ）は、敵オブジェクトＥＯ１，２がＰＯ円領域８０に移動して隣接している状態を示す。敵オブジェクトＥＯ１，２は、ＰＯ円領域８０で隣接している状態であるので被写体オブジェクトとして登録される。そして、これら敵オブジェクトＥＯ１，２の位置に基づいてＥＯ円領域８１が形成された後、ＣＭ円領域８２が形成される。
【００８８】
ここで、図５（Ｂ）においては、前回位置の仮想カメラ６０（仮想カメラ６０′）および注視点（中心点８２Ｃ）を通過する直線は、線分ＡＢと平行である。そうすると、この直線を視軸６４とした場合の角度βは０度となる。そのため、この直線は視軸６４として設定されず、角度βが所定値となる直線が視軸６４に設定される。そして、上述と同様、ＣＭ円領域８２等から新たな仮想カメラ６０の位置が決定される。
【００８９】
このように、角度βを所定値となるような視軸６４に設定するのは、角度βが０度となる視軸６４上に設定した場合、新たな仮想カメラ６０の位置からでは、プレイヤオブジェクトＰＯがゲーム画像の中央に位置することになり、敵オブジェクトＥＯが見難いためである。
【００９０】
例えば、図５（Ｂ）に示す状態では、角度βが０度の直線を視軸６４とした場合、仮想カメラ６０は、前回位置の仮想カメラ（仮想カメラ６０′）とプレイヤオブジェクトＰとの間に位置することになる。この場合、プレイヤオブジェクトＰＯがゲーム画像の中央に比較的大きく含まれる状態となる。そのため、仮想カメラ６０に対してプレイヤオブジェクトＰＯよりも奥側に位置する敵オブジェクトＥＯ１，２がプレイヤオブジェクトＰＯに隠れてしまい、見難くなってしまう。
【００９１】
また、角度βが９０度となる視軸６４上に設定した場合、敵オブジェクトＥＯは見難くないが、プレイヤオブジェクトＰＯがゲーム画像の側面端部に位置してしまうのを避けるためである。
【００９２】
なお、図３に示すようなＰＯ円領域８０に敵オブジェクトＥＯがいない状態から、複数の敵オブジェクトＥＯが隣接しない状態でＰＯ円領域８０に移動してくる場合もある。この場合、例えば、これらの敵オブジェクトＥＯのうちからランダムに１体だけを選択したものを被写体オブジェクトとして登録すればよい。あるいは、プレイヤオブジェクトＰＯに最も近い敵オブジェクトＥＯを被写体オブジェクトとして選択してもよい。
【００９３】
次に、戦闘用カメラ制御処理から非闘用カメラ制御処理への移行について説明する。図１０〜１３は、戦闘用カメラ制御処理から非闘用カメラ制御処理への移行を説明する説明図である。戦闘用カメラ制御処理では、ＰＯ円領域８０に敵オブジェクトＥＯが存在しなくなり、且つ、解除オブジェクトも存在しなくなったことを条件として非戦闘用カメラ制御処理への移行が開始される。具体的には、戦闘用カメラ制御処理の途中から非戦闘用カメラ制御移行処理が実行される。その後、非戦闘用カメラ制御処理の実行が開始される。
【００９４】
例えば、図１０（Ａ）に示す状態から図１０（Ｂ）、図１１（Ａ）、図１１（Ｂ）に示す状態に順に移行した場合について説明する。最初に、図１０（Ａ）に示す状態から図１０（Ｂ）に示す状態に移行する場合について説明する。図１０（Ａ）は、敵オブジェクトＥＯ１〜５が被写体オブジェクトとしてＰＯ円領域８０に存在する状態を示す。図１０（Ｂ）は、敵オブジェクトＥＯ１〜３が移動し、また敵オブジェクトＥＯ４，５がプレイヤオブジェクトＰＯの攻撃を受けて消滅した状態を示す。
【００９５】
敵オブジェクトＥＯ１，３は、ＰＯ円領域８０の外部に移動しているので、被写体オブジェクトの登録が解除された状態となる。また、敵オブジェクトＥＯ４，５も消滅してＰＯ円領域８０には存在しないので、被写体オブジェクトの登録が解除された状態となる。したがって、敵オブジェクトＥＯ２だけが被写体オブジェクトとして登録が保持される。そのため、戦闘用カメラ制御処理は継続され、敵オブジェクトＥＯ２の位置に基づいてＥＯ円領域８１が形成される。そして、ＣＭ円領域８２が形成されて新たな仮想カメラ６０の位置が決定される。
【００９６】
次に、図１０（Ｂ）に示す状態から図１１（Ａ）に示す状態に移行した場合について説明する。図１１（Ａ）は、敵オブジェクトＥＯ２がＰＯ円領域８０の外部に移動した状態を示す。この場合、敵オブジェクトＥＯ２も被写体オブジェクトの登録が解除される。
【００９７】
なお、敵オブジェクトＥＯ２は、終了判定領域８３の内部に存在している。また、敵オブジェクトＥＯ２は、被写体オブジェクトとして登録されていたので、解除オブジェクトとして登録される。終了判定領域８３は、プレイヤオブジェクトＰＯを中心し、ＰＯ円領域８０を包含する円領域である。戦闘用カメラ制御処理の終了の判定を行うべく、解除オブジェクトの登録判定に用いられる。
【００９８】
解除オブジェクトは、上述のように、戦闘用カメラ制御処理から非戦闘用カメラ制御処理への切り替えの条件に含まれている。ＰＯ円領域８０に敵オブジェクト８０が存在しない場合であっても、この解除オブジェクトが存在する場合は、非戦闘用カメラ制御処理へは切り替えられない。これは、ＰＯ円領域８０の内部と外部とを頻繁に行き来する敵オブジェクトＥＯによって、戦闘用カメラ制御処理および非戦闘用カメラ制御処理の切り替えが頻繁に発生するのを防止し、仮想カメラ６０の位置の変化が頻繁に発生するのを低減するためである。
【００９９】
ここで、解除オブジェクトの登録は、ＰＯ円領域８０で被写体オブジェクトとして登録された後、ＰＯ円領域８０の外部かつ終了判定領域８３に存在することを条件に登録される。また、終了判定領域８３に存在しなくなったことを条件に解除オブジェクトの登録が解除される。
【０１００】
図１１（Ａ）に示すような状態では、敵オブジェクトＥＯ２が解除オブジェクトとして登録されるので、非戦闘用カメラ制御処理へ移行されず、戦闘用カメラ制御処理が継続される。なお、図１１（Ａ）に示すような状態では、敵オブジェクトＥＯに基づくＥＯ円領域８１は形成されない。ＰＯ円領域８０に敵オブジェクトＥＯが存在しないからである。そのため、ＣＭ円領域８２の形状は前回のＣＭ円領域８２の形状が保持される。
【０１０１】
また、ＣＭ円領域８２の位置はプレイヤオブジェクトＰＯの位置に基づいて決定される。具体的には、プレイヤオブジェクトＰＯの現在位置が前回位置のＣＭ円領域８２の内部である場合、新たなＣＭ円領域８２の位置は前回位置と同じとなる。つまり、前回のＣＭ円領域８２が新たなＣＭ円領域８２として前回位置に再設定される。
【０１０２】
一方、プレイヤオブジェクトＰＯの現在位置が前回位置のＣＭ円領域８２の外部である場合は、新たなＣＭ円領域８２の位置はプレイヤオブジェクトＰＯの位置に応じて決定される。つまり、配置位置は異なるが前回のＣＭ円領域８２が新たなＣＭ円領域８２として再設定される。以下、図１３を用いて説明する。
【０１０３】
図１３（Ａ）は、図１２（Ａ）に示す状態からプレイヤオブジェクトＰＯが移動した状態を示す。また、図１３（Ｂ）は、図１３（Ａ）に示す状態からプレイヤオブジェクトＰＯが移動した状態を示す。なお、説明の便宜上、敵キャラクタＥＯ１，３等は図示を省略する。
【０１０４】
図１３（Ａ）では、前回位置のプレイヤオブジェクトＰＯおよびＣＭ円領域８２が、プレイヤオブジェクトＰＯ′およびＣＭ円領域８２′である。プレイヤオブジェクトＰＯ′およびＣＭ円領域８２′は、図１２（Ａ）に示すプレイヤオブジェクトＰＯおよびＣＭ円領域８２に相当する。
【０１０５】
プレイヤオブジェクトＰＯの現在位置はＣＭ円領域８２′の範囲内である。したがって、新たなＣＭ円領域８２には、ＣＭ円領域８２′が再設定される。なお、プレイヤオブジェクトＰＯを中心点とするＰＯ円領域８０，終了判定領域８３は、プレイヤオブジェクトＰＯの移動に追従して移動する。
【０１０６】
図１３（Ｂ）では、前回位置のプレイヤオブジェクトＰＯおよびＣＭ円領域８２が、プレイヤオブジェクトＰＯ′およびＣＭ円領域８２′である。また、プレイヤオブジェクトＰＯ′およびＣＭ円領域８２′は、図１３（Ａ）に示すプレイヤオブジェクトＰＯおよびＣＭ円領域８２に相当する。
【０１０７】
プレイヤオブジェクトＰＯの現在位置は前回位置のＣＭ円領域８２′の外部である。そのため、新たなＣＭ円領域８２の位置は、プレイヤオブジェクトＰＯの現在位置に応じて決定される。具体的には、新たなＣＭ円領域８２は、ＣＭ円領域８２′の外部でのプレイヤオブジェクトＰＯの移動量ＤＤだけ、プレイヤオブジェクトＰＯの移動方向にＣＭ円領域８２′を移動させたものとなる。つまり、プレイヤオブジェクトＰＯのＣＭ円領域８２′内での移動量ｄｄは考慮されない。
【０１０８】
なお、図１１（Ａ）では、プレイヤオブジェクトＰＯの現在位置は、図１０（Ｂ）に示す状態から変化していない状態であるので、新たなＣＭ円領域８２は前回位置に再設定される。
【０１０９】
次に、図１１（Ａ）に示す状態から図１１（Ｂ）に示す状態に移行した場合について説明する。図１１（Ｂ）は、敵オブジェクトＥＯ２が終了判定領域８３の外部に移動した状態を示す。そのため、敵オブジェクトＥＯ２は、解除オブジェクトとしての登録が解除される。したがって、ＰＯ円領域８０に敵オブジェクトＥＯが存在せず、且つ、解除オブジェクトも存在しないので、戦闘用カメラ制御処理が実質的に終了し、非戦闘用カメラ制御移行処理が開始される。
【０１１０】
非戦闘用カメラ制御移行処理では、非戦闘用カメラ制御処理と同様に、プレイヤオブジェクトＰＯの位置に基づいて新たな仮想カメラ６０の位置が決定される。しかし、非戦闘用カメラ制御移行処理では、視軸６４の設定が非戦闘用カメラ制御処理とは異なる。非戦闘用カメラ制御移行処理では、前回位置の仮想カメラ６０と現在位置のプレイヤオブジェクトＰＯとを通過する直線が新たな視軸６４に設定される。
【０１１１】
図１１（Ｂ）では、前回位置にある仮想カメラ６０が仮想カメラ６０′である。この仮想カメラ６０′と現在位置のプレイヤオブジェクトＰＯとを通過する直線が視軸６４に設定される。そして、非戦闘用カメラ制御処理と同様に、視軸６４上のプレイヤオブジェクトＰＯからの距離が所定値となる位置が新たな仮想カメラ６０の位置となる。
【０１１２】
このように視軸６４を設定することで、仮想カメラ６０の移動量の増大が抑制される。したがって、非戦闘用カメラ制御処理に切り替えられる際、ゲーム画像が大きく変化することが抑制される。
【０１１３】
ここで、図１１（Ａ）に示すように、被写体オブジェクトが存在せず、解除オブジェクトだけが存在する場合、被写体オブジェクトとして登録される条件は、上述した条件とは異なる。具体的には、前回位置のＣＭ円領域８２に存在していることが条件となる。
【０１１４】
例えば、図１１（Ａ）に示す状態から図１２（Ａ）に状態に移行した場合は、新たなＣＭ円領域８２は、前回位置に再設定される。図１２（Ａ）は、敵オブジェクトＥＯ６，７がＰＯ円領域８０に移動した状態を示す。敵オブジェクトＥＯ６，７は、隣接した状態であるが、前回位置のＣＭ円領域８２（ＣＭ円領域８２′）の外部に位置する。したがって、敵オブジェクトＥＯ６，７は、被写体オブジェクトとして登録されない。
【０１１５】
そして、新たなＣＭ円領域８２は、前回位置で再設定される。図１２（Ａ）に示すＣＭ円領域８２′は、図１１（Ａ）に示すＣＭ円領域８２に相当する。また、戦闘用カメラ制御処理も継続される。
【０１１６】
なお、図１２（Ａ）に示す状態から敵オブジェクトＥＯ２がＰＯ円領域８０に移動した場合であっても、ＣＭ円領域８２′の内部に移動していなければ被写体オブジェクトとして登録されない。
【０１１７】
さらに、図１２（Ａ）に示す状態から図１２（Ｂ）に示す状態に移行した場合には、敵オブジェクトＥＯ６は被写体オブジェクトとして登録される。図１２（Ｂ）は、敵オブジェクトＥＯ６が前回位置のＣＭ円領域８２（ＣＭ円領域８２′）に移動した状態を示す。なお、図１２（Ｂ）に示すＣＭ円領域８２′は、図１２（Ａ）に示すＣＭ円領域８２に相当する。
【０１１８】
この場合、敵オブジェクトＥＯ６は、隣接する他の敵オブジェクトＥＯは存在しないが、被写体オブジェクトとして登録される。そして、敵オブジェクトＥＯ６の位置に基づいてＥＯ円領域８１が形成される。その後、このＥＯ円領域８１とプレイヤオブジェクトＰＯとの位置関係に基づいて新たなＣＭ円領域８２が形成される。なお、戦闘用カメラ制御処理も継続される。
【０１１９】
また、図１２（Ａ）に示す状態から、敵オブジェクトＥＯ２が終了判定領域８３の外部に移動した場合、敵オブジェクトＥＯ２の解除オブジェクトとしての登録は解除される。そして、維持されていたＣＭ円領域８２はなくなり、ＰＯ円領域８０に存在する敵オブジェクトＥＯ６，７が被写体オブジェクトとして登録され、新たなＥＯ円領域８１およびＣＭ円領域８２が形成される。
【０１２０】
次に、上述の非戦闘用カメラ制御処理および戦闘用カメラ制御処理を図１５〜図２２のフローチャートを用いて説明する。制御部１０１は、例えば、制御フラグ＝０の場合に非戦闘用カメラ制御処理を実行し、制御フラグ＝１と判断した場合に戦闘用カメラ制御処理を実行する。制御部１０１は、例えば、１フレーム毎に制御フラグの値に対応するカメラ制御処理を実行する。
【０１２１】
図１５は、非戦闘用カメラ制御処理を示すフローチャートである。制御部１０１は、まず、ＰＯ円領域８０に敵オブジェクトＥＯが存在していないか否かを判断する（ステップＳ１０）。例えば、ゲーム空間５０に存在する各敵オブジェクトＥＯの位置とＰＯ円領域８０の位置とから判断する。なお、敵オブジェクトＥＯの識別は、例えば敵オブジェクトＥＯに設定されている識別情報に基づいて行えばよい。
【０１２２】
ＰＯ円領域８０に存在していないと判断した場合（ステップＳ１１：ＹＥＳ）、制御部１０１は、上述したようにしてプレイヤオブジェクトＰＯの位置に基づいて仮想カメラ６０新たな位置を算出する（ステップＳ１１）。そして、この処理を終了する。なお、制御フラグの値は０で保持されているので、次回のカメラ制御処理でも、引き続き非戦闘用カメラ制御処理が実行される。
【０１２３】
一方、ＰＯ円領域８０に敵オブジェクトＥＯが存在していると判断した場合（ステップＳ１１：ＮＯ）、上述の戦闘用カメラ制御移行処理を実行する（ステップＳ１２）。この時点で、非戦闘用カメラ制御処理は実質的に終了となる。この移行処理では、図４〜図６を用いて説明したようにして仮想カメラ６０の新たな位置が決定される。その後、非戦闘用カメラ制御処理を終了する。なお、この移行処理によって制御フラグの値が０から１に変更される。そして、次回のカメラ制御処理では、戦闘用カメラ制御処理が実行される。
【０１２４】
図１６は、図１５のステップＳ１２で実行される戦闘用カメラ制御移行処理を示すフローチャートである。制御部１０１は、まず、登録処理Ａを実行する（ステップＳ２０）。登録処理Ａは、ＰＯ円領域８０における少なくとも１体の敵オブジェクトＥＯを被写体オブジェクトとして新規に登録するための処理である。詳細は後述する。
【０１２５】
次に、制御部１０１は、ステップＳ２０で登録された被写体オブジェクトの位置に基づいてＥＯ円領域８１を算出する（ステップＳ２１）。そして、制御部１０１は、プレイヤオブジェクトＰＯがＥＯ円領域８１の外部に位置するか否かを判断する（ステップＳ２２）。
【０１２６】
外部に位置すると判断した場合（ステップＳ２２：ＹＥＳ）、制御部１０１は、外部用のＣＭ円領域８２の算出を行う（ステップＳ２３）。つまり、プレイヤオブジェクトＰＯがＥＯ円領域８１の外部にいる場合でのＣＭ円領域８２の算出を行う。
【０１２７】
一方、外部に位置していないと判断した場合（ステップＳ２２：ＮＯ）、制御部１０１は、内部用のＣＭ円領域８２の算出を行う（ステップＳ２３）。つまり、プレイヤオブジェクトＰＯがＥＯ円領域８１の内部にいる場合でのＣＭ円領域８２の算出を行う。
【０１２８】
そして、制御部１０１は、算出されたＣＭ円領域８２に基づいて、仮想カメラ６０の新たな位置を算出する（ステップＳ２５）。その後、制御部１０１は、制御フラグを０から１に変更設定し（ステップＳ２６）、この処理を終了する。
【０１２９】
なお、ステップＳ２５，Ｓ２６の処理では、図５（Ｂ）を用いて説明したように、角度βが、０度および９０度である場合は、角度βが所定値（例えば３０°）となる直線が視軸６４として設定される。そして、この視軸６４等に基づいて新たな仮想カメラ６０の位置が算出される。
【０１３０】
次に、ステップＳ２０で実行される登録処理Ａについて説明する。図２１は、登録処理Ａを示すフローチャートである。登録処理Ａは、上述したように、ＰＯ円領域８０の少なくとも１体の敵オブジェクトＥＯを被写体オブジェクトとして新規に登録するための処理である。
【０１３１】
制御部１０１は、ＰＯ円領域８０において被写体オブジェクトとして現在未登録の敵オブジェクトＥＯを１体選択する（ステップＳ１００）。
【０１３２】
次に、制御部１０１は、選択した敵オブジェクトＥＯが他の敵オブジェクトＥＯに隣接しているか否かを判断する（ステップＳ１０１）。上述したように隣接円領域８４を用いて判断する。他の敵オブジェクトＥＯが隣接していると判断した場合（ステップＳ１０１：ＹＥＳ）、制御部１０１は、この敵オブジェクトＥＯを被写体オブジェクトとして登録する（ステップＳ１０２）。例えば、この敵オブジェクトＥＯの識別情報をＲＡＭ１０２の被写体オブジェクトの記憶領域に格納する。その後、制御部１０１は、ステップＳ１０３の処理に移行する。
【０１３３】
一方、他の敵オブジェクトＥＯに隣接していないと判断した場合（ステップＳ１０１：ＮＯ）、この敵オブジェクトを被写体オブジェクトとして登録せず、ステップＳ１０３の処理に移行する。そして、制御部１０１は、ステップＳ１０３において、ＰＯ円領域８０の敵オブジェクトＥＯの全てに対して上述の処理（ステップＳ１０１〜Ｓ１０２）が実行されたと判断するまで、上述の処理を繰り返し実行する。
【０１３４】
全ての敵オブジェクトＥＯに対する上述の処理が終了した場合（ステップＳ１０３：ＹＥＳ）、制御部１０１は、被写体オブジェクトの登録があったか否かを判断する（ステップＳ１０４）。これは、隣接していない敵オブジェクトＥＯだけがＰＯ円領域８２に存在する場合に、ステップＳ１０５以降の例外的な処理を実行するための判断処理となる。
【０１３５】
登録があったと判断した場合（ステップＳ１０４：ＹＥＳ）、制御部１０１は、この処理を終了する。例えば、図５（Ｂ）に示すような敵オブジェクトＥＯが隣接している状態であるとして被写体オブジェクトが登録された場合には、ステップＳ１０５以降の例外的な処理は不要として処理が終了される。
【０１３６】
一方、被写体オブジェクトの登録がなかったと判断した場合（ステップＳ１０４：ＮＯ）、制御部１０１は、例外的な処理が必要としてステップＳ１０５以降の処理を実行する。例えば、図４（Ａ）に示すようなＰＯ円領域８０に１体の敵オブジェクトＥＯ２だけが存在する場合、少なくとも敵オブジェクトＥＯ２を被写体として登録必要があるため、ステップＳ１０５以降の例外的な処理が必要と判断される。
【０１３７】
次に、制御部１０１は、ステップＳ１０５の処理において、敵オブジェクトＥＯがＰＯ円領域８０に複数存在するか否かを判断する。複数の敵オブジェクトＥＯが存在すると判断した場合（ステップＳ１０５：ＹＥＳ）、制御部１０１は、複数の敵オブジェクトＥＯの中から1体を選択する（ステップ１０６）。上述したように、例えばランダム、または、プレイヤオブジェクトＰＯに最も近い敵オブジェクトＥＯを選択すればよい。そして、制御部１０１は、この選択した１体の敵オブジェクトＥＯを被写体オブジェクトとして登録し（ステップＳ１０７）、この処理を終了する。
【０１３８】
一方、１体の敵オブジェクトＥＯしか存在しないと判断した場合（ステップＳ１０５：ＹＥＳ）、制御部１０１は、この敵オブジェクトＥＯを被写体オブジェクトとして登録し（ステップＳ１０７）、この処理を終了する。
【０１３９】
このようにして、登録処理Ａでは、少なくとも１体の敵オブジェクトＥＯが被写体オブジェクトとして登録される。
【０１４０】
次に、戦闘用カメラ制御処理について説明する。図１７（Ａ）は、戦闘用カメラ制御処理を示すフローチャートである。制御部１０１は、まず、登録解除処理を実行する（ステップＳ３０）。登録解除処理は、既に登録されている被写体オブジェクトおよび解除オブジェクトの登録解除等を行う。その後、制御部１０１は、敵オブジェクトＥＯの状況に応じて、仮想カメラ６０の位置を決定する処理（ステップＳ３２，３４，３６）および非戦闘用カメラ制御移行処理（ステップＳ３７）の何れかの処理を実行する。
【０１４１】
ここで、ステップＳ３０の登録解除処理について説明する。図１８は、登録解除処理を示すフローチャートである。制御部１０１は、最初に被写体オブジェクトの登録解除の処理を開始する。制御部１０１は、登録されている被写体オブジェクトの１体を選択し（Ｓ５０）、この被写体オブジェクトがＰＯ円領域８０に存在しているか否かを判断する（ステップＳ５１）。
【０１４２】
ＰＯ円領域８０に存在していると判断した場合（ステップＳ５１：ＹＥＳ）、制御部１０１は、被写体オブジェクトの登録は保持されるとしてステップＳ５５の処理へ移行する。一方、ＰＯ円領域８０に存在していないと判断した場合（ステップＳ５１：ＮＯ）、制御部１０１は、この敵オブジェクトＥＯの被写体オブジェクトの登録を解除する（ステップＳ５２）。
【０１４３】
その後、制御部１０１は、この被写体オブジェクトの登録を解除した敵オブジェクトＥＯが終了判定領域８３には存在しているか否かを判断する（ステップＳ５３）。そして、終了判定領域８３に存在していると判断した場合（ステップＳ５３：ＹＥＳ）、制御部１０１は、この敵オブジェクトＥＯを解除オブジェクトとして登録する（ステップＳ５４）。例えば、この敵オブジェクトＥＯの識別情報をＲＡＭ１０２上の解除オブジェクトの記憶領域に格納する。
【０１４４】
一方、終了判定領域８３に存在していないと判断した場合（ステップＳ５３：ＮＯ）、制御部１０１は、この敵オブジェクトＥＯを解除オブジェクトとして登録せず、ステップＳ５５に移行する。その後、制御部１０１は、ステップＳ５５において、被写体オブジェクトの全てに対して上述の処理（ステップＳ５１〜Ｓ５４）が実行されたと判断するまで、上述の処理を繰り返し実行する。
【０１４５】
例えば、上述した図１１（Ａ）では、ＰＯ円領域８０および終了判定領域８３の外部に移動してしまった敵オブジェクトＥ１，３は、被写体オブジェクトの登録が解除され、解除オブジェクトとしても登録されない。また、ＰＯ円領域８０の外部には移動したが終了判定領域８３の内部には位置している敵オブジェクトＥＣ２は、被写体オブジェクトの登録が解除されるが、解除オブジェクトとして登録される。
【０１４６】
その後、全ての被写体オブジェクトに対する処理が終了した場合（ステップＳ５５：ＹＥＳ）、制御部１０１は、解除オブジェクトの登録解除の処理を実行する。制御部１０１は、まず、既に登録されている解除オブジェクトの１体を選択し（Ｓ５６）、この解除オブジェクトが終了判定領域８３に位置しているか否かを判断する（ステップＳ５７）。
【０１４７】
終了判定領域８３に存在していると判断した場合（ステップＳ５７：ＹＥＳ）、制御部１０１は、解除オブジェクトの登録は保持されるとしてテップＳ５９の処理に移行する。一方、終了判定領域８３に位置していないと判断した場合（ステップＳ５７：ＮＯ）、制御部１０１は、この敵オブジェクトＥＯの解除オブジェクトの登録を解除し（ステップＳ５８）、ステップＳ５９の処理に移行する。  例えば、上述した図１１（Ｂ）では、解除オブジェクトである敵オブジェクトＥＯ２は、終了判定領域８３の外部に移動したので解除オブジェクトの登録が解除される。
【０１４８】
その後、制御部１０１は、ステップＳ５９において、解除オブジェクトの全てに対して上述の処理（ステップＳ５７，Ｓ５８）が終了したと判断するまで、上述の処理を繰り返し実行する。全ての解除オブジェクトに対する処理が終了した場合（ステップＳ５９：ＹＥＳ）、制御部１０１は、この登録解除処理を終了する。
【０１４９】
次に、図１７（Ａ）に戻ってステップＳ３１以降の処理について説明する。制御部１０１は、ステップＳ３１の処理において、登録されている被写体オブジェクトが存在するか否かを判断する。ここで、被写体オブジェクトが存在するか否かを判断しているのは、図１０〜図１２に示すように、被写体オブジェクトの存在の有無によって、その後の仮想カメラ６０の位置決定処理が異なってくるためである。
【０１５０】
登録されている被写体オブジェクトがいると判断した場合（ステップＳ３１：ＹＥＳ）、制御部１０１は、カメラ位置決定処理Ａを実行し（ステップＳ３２）、新たな仮想カメラ６０位置を決定する。その後、制御部１０１は、この戦闘用カメラ制御処理を終了する。カメラ位置決定処理Ａについては後述する。
【０１５１】
一方、被写体オブジェクトが存在しないと判断した場合（ステップＳ３１：ＮＯ）、制御部１０１は、登録されている解除オブジェクトが存在するか否かを判断する（ステップＳ３３）。ここで、解除オブジェクトが存在するか否かを判断しているのは、図１１および図１２に示すように、解除オブジェクトの存在の有無によって、その後の仮想カメラ６０の位置決定処理が異なってくるためである。
【０１５２】
登録されている解除オブジェクトが存在すると判断した場合（ステップＳ３３：ＹＥＳ）、制御部１０１は、カメラ位置決定処理Ｂを実行し（ステップＳ３４）、新たな仮想カメラ６０位置を決定する。
【０１５３】
例えば、図１１（Ａ）に示すような被写体オブジェクトが解除されて解除オブジェクトとして登録された敵オブジェクトＥＯ２が存在する状態が該当する。その後、制御部１０１は、この戦闘用カメラ制御処理を終了する。カメラ位置決定処理Ｂについては後述する。
【０１５４】
一方、登録されている解除オブジェクトが存在しないと判断した場合（ステップＳ３３：ＮＯ）、制御部１０１は、ＰＯ円領域８０に敵オブジェクトＥＯが存在するか否かを判断する（ステップＳ３５）。ＰＯ円領域８０に敵オブジェクトＥＯが存在すると判断した場合、制御部１０１は、仮想カメラ位置決定処理Ａを実行し（ステップＳ３６）、新たな仮想カメラ６０位置を決定する。
【０１５５】
例えば、既に登録されている被写体オブジェクトも解除オブジェクトも存在しないが、被写体オブジェクトとして未登録の敵オブジェクトＥＯがＰＯ円領域８０にいる状態が該当する。その後、制御部１０１は、この戦闘用カメラ制御処理を終了する。
【０１５６】
一方、ＰＯ円領域８０に敵オブジェクトＥＯが存在しないと判断した場合、制御部１０１は、非戦闘用カメラ制御移行処理を行い（ステップＳ３７）、新たな仮想カメラ６０の位置を決定する。
【０１５７】
例えば、図１１（Ｂ）に示すような被写体オブジェクトも解除オブジェクトも存在せず、その他の敵オブジェクトＥＯもＰＯ円領域８０にいない状態が該当する。つまり、プレイヤオブジェクトＰＯの周辺に敵オブジェクトＥＯが存在しない状態である。また、この移行処理によって制御フラグの値が１から０に変更される。その後、制御部１０１は、この戦闘用カメラ制御処理を終了し、次回のカメラ制御処理では非戦闘用カメラ制御処理を実行する。
【０１５８】
ここで、ステップＳ３７で実行される非戦闘用カメラ制御移行処理について説明する。図１７（Ｂ）は、非戦闘用カメラ制御移行処理を示すフローチャートである。制御部１０１は、まず、被写体オブジェクトおよび解除オブジェクトの登録の全てを解除する（ステップＳ４０）。
【０１５９】
次に、制御部１０１は、新たな仮想カメラ６０の位置を算出する（ステップＳ４１）。例えば、上述の図１１（Ｂ）で説明したようにしてプレイヤオブジェクトＰＯの位置に基づいて仮想カメラ６０の位置を算出する。そして、制御部１０１は、制御フラグの値を１から０に設定変更し（ステップＳ４２）、この移行処理を終了する。
【０１６０】
次に、図１７（Ａ）のステップＳ３２，Ｓ３６で実行されるカメラ位置決定処理Ａについて説明する。図１９は、カメラ位置決定処理Ａを示すフローチャートである。制御部１０１は、まず、既に登録されている被写体オブジェクトが存在するか否かを判断する（ステップＳ６０）。この判断によって、敵オブジェクトが被写体オブジェクトとして新規に登録される条件が異なってくる。登録されている被写体オブジェクトが存在しないと判断した場合（ステップＳ６０：ＮＯ）、制御部１０１は、登録処理Ａを実行し（ステップＳ６１）、ステップＳ６３の処理に移行する。これは、図１７（Ａ）に示すステップＳ３６で実行される場合が該当する。
【０１６１】
登録処理Ａは、ＰＯ円領域８０における少なくとも１体の敵オブジェクトＥＯを被写体オブジェクトとして新規に登録するための処理である。この登録処理Ａは、図１６に示す戦闘用カメラ制御移行処理のステップＳ２０で実行される処理と同一であるので説明は省略する。
【０１６２】
一方、登録されている被写体オブジェクトがいると判断した場合（ステップＳ６０：ＹＥＳ）、制御部１０１は、登録処理Ｂを実行する（ステップＳ６２）。これは、図１７（Ａ）に示すステップＳ３２で実行される場合が該当する。登録処理Ｂでは、上述の図９で説明したように、隣接する敵オブジェクトＥＯだけが被写体オブジェクトとして新規に登録される。登録処理Ｂについて詳細は後述する。
【０１６３】
なお、これらの登録処理Ａ，Ｂでは、この処理の実行の際に被写体オブジェクトとして未登録の敵オブジェクトＥＯが対象となる。
【０１６４】
この登録処理Ａ，Ｂによって、未登録の敵オブジェクトＥＯが新規に被写体オブジェクトとして登録され、また、図１７（Ａ）に示すステップＳ３０の登録解除処理で既登録の被写体オブジェクトの更新が行われる。したがって、これらの処理によって被写体オブジェクトの登録状況の更新が完了する。
【０１６５】
その後、制御部１０１は、登録されている被写体オブジェクトの位置に基づいてＥＯ円領域８１を算出する（ステップＳ６３）。そして、制御部１０１は、プレイヤオブジェクトＰＯがＥＯ円領域８１の外部に位置するか否かを判断する（ステップＳ６４）。外部に位置すると判断した場合（ステップＳ６４：ＹＥＳ）、制御部１０１は、外部用のＣＭ円領域８２の算出を行う（ステップＳ６５）。一方、外部に位置していないと判断した場合（ステップＳ６４：ＮＯ）、制御部１０１は、内部用のＣＭ円領域８２の算出を行う（ステップＳ６６）。なお、ステップＳ６３〜６６の処理は、図１６に示すステップＳ２１〜２４の処理と同様である。
【０１６６】
そして、制御部１０１は、算出されたＣＭ円領域８２に基づいて、仮想カメラ６０の新たな位置を算出し（ステップＳ６７）、このカメラ位置決定処理Ａを終了する。ステップＳ６７の処理では、図１６に示すステップＳ２５の処理とは異なり、図７を用いて説明したようにして仮想カメラ６０の新たな位置が算出される。
【０１６７】
次に、ステップＳ６２で実行される登録処理Ｂについて説明する。図２２（Ａ）は、登録処理Ｂを示すフローチャートである。登録処理Ｂは、図２１に示す登録処理ＡのステップＳ１００〜Ｓ１０３の処理と同一であり、隣接する敵オブジェクトＥＯだけを被写体オブジェクトとして新規に登録する。制御部１０１は、まず、ＰＯ円領域８０において被写体オブジェクトとして現在未登録の敵オブジェクトＥＯを１体選択する（ステップＳ１１０）。
【０１６８】
次に、制御部１０１は、選択した敵オブジェクトＥＯが他の敵オブジェクトＥＯに隣接しているか否かを判断する（ステップＳ１１１）。他の敵オブジェクトＥＯに隣接していると判断した場合（ステップＳ１１１：ＹＥＳ）、制御部１０１は、この敵オブジェクトＥＯを被写体オブジェクトとして新規に登録し（ステップＳ１１２）、ステップＳ１１３の処理に移行する。
【０１６９】
一方、他の敵オブジェクトＥＯに隣接していないと判断した場合（ステップＳ１１１：ＮＯ）、被写体オブジェクトとして登録できないと判断してステップＳ１１３の処理に移行する。そして、制御部１０１は、ＰＯ円領域８０の未登録の敵オブジェクトＥＯの全てに対して上述の処理（ステップＳ１１１，Ｓ１１２）が実行されたと判断するまで、上述の処理を繰り返し実行する。そして、上記全ての敵オブジェクトＥＯに対する上述の処理が終了した場合（ステップＳ１１３：ＹＥＳ）、制御部１０１は、この登録処理Ａを終了する。
【０１７０】
次に、図１７（Ａ）のステップＳ３４で実行されるカメラ位置決定処理Ｂについて説明する。図２０は、カメラ位置決定処理Ｂを示すフローチャートである。カメラ位置決定処理Ｂは、図１１（Ａ）、図１２および図１３を用いて説明したように、解除オブジェクトとして登録された敵オブジェクトＥＯが存在する状態での仮想カメラ６０の新たな位置を決定する。
【０１７１】
制御部１０１は、まず、登録処理Ｃを行う（ステップＳ７０）。登録処理Ｃは、登録処理Ａ，Ｂと同様に、敵オブジェクトＥＯを被写体オブジェクトとして新規に登録するための処理である。しかし、登録処理Ｃでは、被写体オブジェクトが新規に登録される条件が登録処理Ａ，Ｂとは異なる。図１２（Ｂ）に示すように敵オブジェクトＥＯが前回位置のＣＭ円領域８２に位置することが条件となる。詳細は後述する。
【０１７２】
次に、制御部１０１は、被写体オブジェクトが存在しているか否かを判断する（ステップＳ７１）。被写体オブジェクトが存在すると判断した場合（ステップＳ７１：ＹＥＳ）、制御部１０１は、図１９のカメラ位置決定処理ＡのステップＳ６３〜Ｓ６７までの処理と同様の処理（ステップＳ７２〜Ｓ７６）を実行する。例えば、図１２（Ｂ）に示すように、被写体オブジェクトとして新規に登録された敵オブジェクトＥＯ６が存在する場合が該当する。その後、制御部１０１は、このカメラ位置決定処理Ｂを終了する。
【０１７３】
一方、被写体オブジェクトが存在しないと判断した場合（ステップＳ７１：ＮＯ）、制御部１０１は、プレイヤオブジェクトＰＯが前回位置のＣＭ円領域８２に位置しているか否かを判断する（ステップＳ７７）。
【０１７４】
プレイヤオブジェクトＰＯが前回位置のＣＭ円領域８２に位置していると判断した場合（ステップＳ７７：ＹＥＳ）、前回位置のＣＭ円領域８２が新たなＣＭ円領域８２として再設定される（ステップＳ７９）。例えば、図１２（Ａ）に示す場合が該当する。また、図１３（Ａ）に示すように、プレイヤオブジェクトＰＯが前回のＣＭ円領域８２内で移動する場合も該当する。その後、制御部１０１は、ステップＳ７６の処理に移行する。
【０１７５】
一方、プレイヤオブジェクトＰＯが前回位置のＣＭ円領域８２の外部に位置していると判断した場合（ステップＳ７７：ＮＯ）、制御部１０１は、プレイヤオブジェクトＰＯの移動方向および移動量等に基づいて新たな位置を算出し、前回のＣＭ円領域８２と同一形状のＣＭ円領域８２を再設定する（ステップＳ７８）。例えば、図１２（Ｂ）に示す場合が該当する。その後、制御部１０１は、ステップＳ７６の処理に移行する。
【０１７６】
そして、制御部１０１は、再設定されたＣＭ円領域８２等に基づいて仮想カメラ６０の新たな位置を算出し（ステップＳ７６）、このカメラ位置決定処理Ｂを終了する。
【０１７７】
次に、ステップＳ７０で実行される登録処理Ｃについて説明する。図２２（Ｂ）は、登録処理Ｃを示すフローチャートである。登録処理Ｃでは、ＰＯ円領域８０にいる敵オブジェクトＥＯのうち、前回位置のＣＭ円領域８２に存在する敵オブジェクトＥＯが被写体オブジェクトとして登録される。
【０１７８】
制御部１０１は、まず、ＰＯ円領域８０において被写体オブジェクトとして現在未登録の敵オブジェクトＥＯを１体選択する（ステップＳ１２０）。そして、制御部１０１は、選択した敵オブジェクトＥＯが前回位置のＣＭ円領域８２に位置しているか否かを判断する（ステップＳ１２１）。
【０１７９】
位置していると判断した場合（ステップＳ１２１：ＹＥＳ）、制御部１０１は、この敵オブジェクトＥＯを被写体オブジェクトとして新規に登録し（ステップＳ１２２）、ステップＳ１２３の処理に移行する。例えば、図１２（Ｂ）に示す場合が該当する。
【０１８０】
一方、位置していないと判断した場合（ステップＳ１２１：ＮＯ）、ステップＳ１２３の処理に移行する。例えば、図１２（Ａ）に示す場合が該当する。
【０１８１】
そして、制御部１０１は、ＰＯ円領域８０の未登録の敵オブジェクトＥＯの全てに対して上述の処理（ステップＳ１２１，Ｓ１２２）が終了したと判断するまで、上述の処理を繰り返し実行する（ステップＳ１２３）。その後、制御部１０１は、全ての敵オブジェクトＰＯに対して上述の処理が終了したと判断した場合（ステップＳ１２３：ＹＥＳ）、この登録処理Ｃを終了する。
【０１８２】
以上のようにして、プレイヤオブジェクトＰＯとプレイヤオブジェクトＰＯとは異なる複数の敵オブジェクトＥＯとの位置関係に基づいて仮想カメラ６０の位置が制御される。そのため、プレイヤオブジェクトＰＯと複数の敵オブジェクトＥＯが適度にゲーム画像に含まれる。したがって、プレイヤオブジェクトＰＯおよび複数の敵オブジェクトＥＯがいる三次元仮想空間であってもユーザに対するゲーム画像の視認性をより向上させることができる。
【０１８３】
特に、被写体オブジェクトである各敵オブジェクトＥＯの位置に基づく領域を使用して仮想カメラ６０の位置を決定しているので、敵オブジェクトＥＯの移動による仮想カメラ６０（視点６２）の位置の変化量の増大を抑制できる。したがって、ゲーム画像の内容が急激に変化することを抑制でき、ユーザが視認し易い。
【０１８４】
なお、この実施形態の各領域８０〜８４は円形状であるが、特にこれに限定するものではない。どのような形状であってもよい。
【０１８５】
この実施形態では、プレイヤオブジェクトＰＯと、プレイヤオブジェクトＰＯとは異なる複数の敵オブジェクトＥＯとの位置関係に基づいて仮想カメラ６０の位置を決定しているが、特に敵オブジェクトＥＯに限定されるものではない。例えば、プレイヤオブジェクトＰＯの味方となる複数の味方オブジェクトであってもよい。
【０１８６】
また、敵オブジェクトＥＯ等のように、同一種類のオブジェクトに限定されるものではない。例えば、プレイヤオブジェクトＰＯと、複数の敵オブジェクトＥＯおよび味方オブジェクトとの位置関係に基づいて仮想カメラ６０の位置を決定してもよい。この場合、複数の敵オブジェクトＥＯと味方オブジェクトとの位置に基づいてＥＯ円領域８１に相当する円領域を形成すればよい。
【０１８７】
さらに、複数の敵オブジェクトＥＯは、制御部１０１によって動作が制御される所謂ノンプレイヤオブジェクトであるが、特にノンプレイヤオブジェクトに限定されるものではない。例えば、敵オブジェクトＥＯがプレイヤオブジェクトＰＯを操作するユーザとは異なる他のユーザによって操作される構成であってもよい。ユーザと別のユーザとが対戦するゲーム等が該当する。
【０１８８】
この場合、ユーザのビデオゲーム装置１０Ａに他のユーザのビデオゲーム装置１０Ｂを通信回線２を介して通信可能に接続する。そして、ビデオゲーム装置１０Ａ、１０Ｂ間でゲームデータ等の送受信等を行って共通のゲーム空間を実現する。そして、他のユーザは自己のゲーム装置１０Ｂに接続された操作部３８を使用して自己の敵オブジェクトＥＯを操作すればよい。なお、上述の味方オブジェクトも同様にすることができる。
【０１８９】
また、この実施形態では、非戦闘用カメラ制御処理と戦闘用カメラ制御処理が択一的に実行されているが、敵オブジェクトが常時出現しているゲーム等では戦闘用カメラ制御処理だけを実行してもよい。
【０１９０】
上述の説明では、この発明の画像処理装置としてビデオゲーム装置１０を例示しているが、パーソナルコンピュータ、スマートフォンおよびタブレット端末等であってもよい。
【０１９１】
その他、インターネット等の通信回線で接続されたサーバ装置とクライアント端末とで構成される場合にも本発明を適用可能である。例えば、サーバ装置がゲームの実行処理を行って、クライアント端末がサーバ装置からデータ等を受信してゲーム画像を表示する構成がある。この場合、サーバ装置が画像処理装置に相当する。
【０１９２】
また、ビデオゲームの三次元仮想空間を実現する画像処理装置に限定されるものではない。例えば、ユーザが所有するアバター等が活動して他のアバターと交流を図ったり、仮想の店舗等で仮想のアイテムを購入したりするビデオゲームとは異なる三次元仮想空間を生成する画像処理装置であってもよい。
【符号の説明】
【０１９３】
１０  ビデオゲーム装置
３８  操作部
６０  仮想カメラ
８０  ＰＯ円領域
８１  ＥＯ円領域
８２  ＣＭ円領域
８３  終了判定領域
８４  隣接円領域
１０１  制御部
１０２  ＲＡＭ
１０３  ＨＤＤ
１０４  グラフィック処理部
１０６  ＤＶＤ／ＣＤ−ＲＯＭドライブ
１０６Ａ  記録媒体
１０８  入出力インターフェイス
ＥＯ  敵オブジェクト
ＰＯ  プレイヤオブジェクト
【図１】
2015026172.tif 000003
【図２】
2015026172.tif 000004
【図３】
2015026172.tif 000005
【図４】
2015026172.tif 000006
【図５】
2015026172.tif 000007
【図６】
2015026172.tif 000008
【図７】
2015026172.tif 000009
【図８】
2015026172.tif 000010
【図９】
2015026172.tif 000011
【図１０】
2015026172.tif 000012
【図１１】
2015026172.tif 000013
【図１２】
2015026172.tif 000014
【図１３】
2015026172.tif 000015
【図１４】
2015026172.tif 000016
【図１５】
2015026172.tif 000017
【図１６】
2015026172.tif 000018
【図１７】
2015026172.tif 000019
【図１８】
2015026172.tif 000020
【図１９】
2015026172.tif 000021
【図２０】
2015026172.tif 000022
【図２１】
2015026172.tif 000023
【図２２】
2015026172.tif 000024