(57)【要約】【課題】  複数のオブジェクトを見やすく表示することができるゲームシステムを提供する。【解決手段】  本発明は、複数のオブジェクトが登場する仮想的な３次元ゲーム空間７１を所定の視線７３の方向から表示装置に表示させるゲームシステムである。視線方向が設定された後、枠設定面７６が３次元ゲーム空間において設定される。次に、３次元ゲーム空間における当該選択オブジェクトの位置を枠設定面に投影した位置を示す枠座標値が算出される。この枠座標値に基づいて、枠が設定される。枠は、枠設定面７６において仮想的に設定され、各選択オブジェクトの枠座標値により示される位置のすべてがその内側に位置するように設定される。この枠に基づいて、表示装置に表示すべき表示領域が決定される。【選択図】  図５
2005040348.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトが登場する仮想的な３次元ゲーム空間を所定の視線方向から表示装置に表示させるゲームシステムであって、
前記オブジェクトの中から選出された２以上のオブジェクトが選択オブジェクトとして設定されており、
視線方向を設定する視線方向設定手段と、
前記３次元ゲーム空間内の所定平面である枠設定面を前記３次元ゲーム空間において設定する枠設定面設定手段と、
前記選択オブジェクトのそれぞれについて、前記３次元ゲーム空間における当該選択オブジェクトの位置を通り前記視線方向設定手段によって設定された視線方向に延びる直線と前記枠設定面が交わる位置を示す枠座標値を算出する枠座標値算出手段と、
前記枠設定面上に仮想的に設定される枠であって、各前記選択オブジェクトの前記枠座標値により示される位置のすべてがその内側に位置する枠を設定する枠設定手段と、
前記枠設定手段によって設定された枠の各頂点に基づいて視体積の各頂点を決定して、前記表示装置に前記ゲーム空間を表示する表示制御手段とを備えるゲームシステム。
【請求項２】
前記表示制御手段は、前記枠設定手段によって設定された枠の各頂点を通り前記視線方向設定手段によって設定された視線方向に延びる直線上に視体積の各頂点をとることを特徴とする、請求項１に記載のゲームシステム。
【請求項３】
前記枠設定面設定手段は、前記視線方向設定手段によって設定された視線方向に垂直な平面を枠設定面に設定することを特徴とする、請求項１に記載のゲームシステム。
【請求項４】
複数のオブジェクトが登場する仮想的な３次元ゲーム空間を所定の視線方向から表示装置に表示させるゲームシステムであって、
前記オブジェクトの中から選出された２以上のオブジェクトが選択オブジェクトとして設定されており、
視点の位置を設定する視点位置設定手段と、
前記３次元ゲーム空間内の所定平面である枠設定面を前記３次元ゲーム空間において設定する枠設定面設定手段と、
前記選択オブジェクトのそれぞれについて、前記３次元ゲーム空間における当該選択オブジェクトの位置と前記視点位置設定手段によって設定された視点とを結ぶ直線と前記枠設定面が交わる位置を示す枠座標値を算出する枠座標値算出手段と、
前記枠設定面上に仮想的に設定される枠であって、各前記選択オブジェクトの前記枠座標値により示される位置のすべてがその内側に位置する枠を設定する枠設定手段と、
前記枠設定手段によって設定された枠の各頂点に基づいて視体積の各頂点を決定して、前記表示装置に前記ゲーム空間を表示する表示制御手段とを備えるゲームシステム。
【請求項５】
前記表示制御手段は、前記枠設定手段によって設定された枠の各頂点を通り前記視点の方向に延びる直線上に視体積の各頂点をとることを特徴とする、請求項１に記載のゲームシステム。
【請求項６】
前記枠変形手段による変形後の枠を前記枠設定面上で上下左右に所定幅だけ拡大する枠拡大手段をさらに備え、
前記表示制御手段は、前記枠拡大手段による拡大後の枠の各頂点に基づいて視体積の各頂点を決定することを特徴とする、請求項１または４に記載のゲームシステム。
【請求項７】
前記表示装置に前記表示領域が表示される画面領域は、所定のアスペクト比を有する長方形に設定されており、
前記枠変形手段による変形後の枠のアスペクト比が前記所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加するアスペクト比補正手段をさらに備え、
前記表示制御手段は、前記アスペクト比補正手段による補正後の枠の各頂点に基づいて視体積の各頂点を決定することを特徴とする、請求項１または４に記載のゲームシステム。
【請求項８】
前記アスペクト比補正手段は、前記枠変形手段による変形後の枠が補正後の枠の中央に位置するように枠を補正する、請求項８に記載のゲームシステム。
【請求項９】
複数のプレイヤによってプレイ可能であり、
前記選択オブジェクトは、前記複数のプレイヤによって各々操作される複数のプレイヤキャラクタを少なくとも含む、請求項１または４に記載のゲームシステム。
【請求項１０】
複数のオブジェクトが登場する仮想的な３次元ゲーム空間を所定の視線方向から表示装置に表示させるゲームシステムのコンピュータに実行させるゲームプログラムであって、
前記ゲームシステムにおいて、前記オブジェクトの中から選出された２以上のオブジェクトが選択オブジェクトとして設定されており、
視線方向を設定する視線方向設定ステップと、
前記３次元ゲーム空間内の所定平面である枠設定面を前記３次元ゲーム空間において設定する枠設定面設定ステップと、
前記選択オブジェクトのそれぞれについて、前記３次元ゲーム空間における当該選択オブジェクトの位置を通り前記視線方向設定ステップにおいて設定された視線方向に延びる直線と前記枠設定面が交わる位置を示す枠座標値を算出する枠座標値算出ステップと、
前記枠設定面上に仮想的に設定される枠であって、各前記選択オブジェクトの前記枠座標値により示される位置のすべてがその内側に位置する枠を設定する枠設定ステップと、
前記枠設定手段によって設定された枠の各頂点に基づいて視体積の各頂点を決定して、前記表示装置に前記ゲーム空間を表示する表示制御ステップとを前記コンピュータに実行させる、ゲームプログラム。
【請求項１１】
複数のオブジェクトが登場する仮想的な３次元ゲーム空間を所定の視線方向から表示装置に表示させるゲームシステムのコンピュータに実行させるゲームプログラムであって、
前記ゲームシステムにおいて、前記オブジェクトの中から選出された２以上のオブジェクトが選択オブジェクトとして設定されており、
視点の位置を設定する視点位置設定ステップと、
前記３次元ゲーム空間内の所定平面である枠設定面を前記３次元ゲーム空間において設定する枠設定面設定ステップと、
前記選択オブジェクトのそれぞれについて、前記３次元ゲーム空間における当該選択オブジェクトの位置と前記視点位置設定ステップにおいて設定された視点とを結ぶ直線と前記枠設定面が交わる位置を示す枠座標値を算出する枠座標値算出ステップと、
前記枠設定面上に仮想的に設定される枠であって、各前記選択オブジェクトの前記枠座標値により示される位置のすべてがその内側に位置する枠を設定する枠設定ステップと、
前記枠設定ステップによって設定された枠の各頂点に基づいて視体積の各頂点を決定して、前記表示装置に前記ゲーム空間を表示する表示制御手段とを前記コンピュータに実行させる、ゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元ゲーム空間を表示装置に表示するゲームシステムおよびゲームプログラムに関し、特に、オブジェクトの位置に応じてゲーム空間の表示領域を変更するゲームシステムおよびゲームプログラムに関する。
【背景技術】
【０００２】
従来から、３次元のゲーム空間に複数のオブジェクトが登場するゲームは多数存在するが、このようなゲームにおいては、仮想カメラの設定をどのようにするか、特に、ゲーム空間内におけるどの領域を表示領域とするかが重要な問題となる。これら複数のオブジェクトがゲームにおいて重要なオブジェクトであるときに、これら複数のオブジェクトが表示領域から外れないように仮想カメラを設定する必要があるのである。
【０００３】
上記の観点から、複数のオブジェクトが表示領域に含まれるようにゲーム空間の表示領域を変更するゲームシステムが考えられている（例えば、特許文献１参照。）。特許文献１に開示されたゲームシステムでは、画面上に２つの枠を設定し、これらの枠を用いて画像のズームアップおよびズームダウンが行われる。具体的には、選手キャラクタ（オブジェクト）のすべてが内側の枠の内部に存在するときは画像をズームアップし（表示領域を縮小し）、選手キャラクタの１つが外側の枠の外側へ移動するときに画像をズームダウンする（表示領域を拡大する）。これによって、複数のオブジェクト（サッカーボールおよび複数の選手キャラクタ）が表示領域に含まれるようにしている。
【０００４】
上記のゲームシステムでは、表示領域の注視点（ここでは、表示領域の中心点、すなわち、表示画面の中央に表示される点とする。）は、特定の１つのオブジェクトに固定されている。具体的には、上記のゲームシステムはサッカーゲームであるので、サッカーボールのオブジェクトに注視点が固定されている。つまり、サッカーボールが常に画面の中央付近に表示されるように表示領域が決定される。
【特許文献１】特許第３１８５７９５号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、ゲームの内容によっては、注視点を１つのオブジェクトに固定する方法が適切でない場合も考えられる。例えば、マルチプレイ方式のゲーム（複数のプレイヤが各々のキャラクタを操作するゲーム）のように、プレイヤが注目すると考えられるオブジェクトが１つの画面上に複数存在するゲームの場合である。このようなゲームの場合、あるオブジェクトを注視点に固定すると、そのオブジェクトが画面中央に表示され、そのオブジェクトおよびその周辺の状況が見やすく表示される一方、他のオブジェクトおよびその周辺については必ずしも見やすく表示されるわけではない。
【０００６】
例えば、マルチプレイ方式のゲームの場合、プレイヤが注目するキャラクタは各プレイヤが操作するプレイヤキャラクタであって、各プレイヤはそれぞれ異なるキャラクタに注目すると考えられる。しかし、従来の方法では、その内の１つのキャラクタが注視点に固定されるので、当該キャラクタが常に画面中央に表示されてしまう。このような表示は、画面中央に表示されるキャラクタに注目するプレイヤにとっては見やすい表示であるが、他のキャラクタに注目するプレイヤにとっては見やすい表示とは言えず、プレイヤ間で画面の見やすさに不平等が生じるおそれがある。以上のように、ゲーム空間における特定の１点を注視点とする方法は、注視点となるオブジェクトとそれ以外のオブジェクトとの見やすさが全く異なるので、注目すべきオブジェクトが複数である場合には必ずしも適切であるとは言えない。
【０００７】
それ故、本発明の目的は、複数のオブジェクトを見やすく表示することができるゲームシステムを提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００９】
この発明は、上記の目的を達成するために、次のように構成される。
【００１０】
すなわち、第１の発明は、複数のオブジェクトが登場する仮想的な３次元ゲーム空間（７１）を所定の視線（７３）方向から表示装置（テレビ２）に表示させるゲームシステム（１）である。このゲームシステムにおいては、オブジェクトの中から選出された２以上のオブジェクトが選択オブジェクト（第１〜第３のプレイヤキャラクタ８１〜８３、および第１の敵キャラクタ８４）として設定されている。また、ゲームシステムは、視線方向設定手段（ステップＳ１を実行するＣＰＵ３１。以下、単にステップ番号のみを示す。）と、枠設定面設定手段（Ｓ４０１）と、枠座標値算出手段（Ｓ４０２）と、枠設定手段（Ｓ４０４〜Ｓ４１９）と、表示制御手段（Ｓ６およびＳ７）とを備えている。視線方向設定手段は、視線方向を設定する。枠設定面設定手段は、３次元ゲーム空間内の所定平面である枠設定面（７６）を３次元ゲーム空間において設定する。枠座標値算出手段は、枠座標値を算出する。枠座標値は、選択オブジェクトのそれぞれについて、３次元ゲーム空間における当該選択オブジェクトの位置を通り視線方向設定手段によって設定された視線方向に延びる直線と枠設定面が交わる位置を示す。枠設定手段は、枠設定面上に仮想的に設定される枠であって、各選択オブジェクトの枠座標値により示される位置のすべてがその内側に位置する枠（第１の枠７７または第２の枠７８）を設定する。表示制御手段は、枠設定手段によって設定された枠の各頂点に基づいて視体積の各頂点を決定して、表示装置にゲーム空間を表示する。
【００１１】
なお、表示制御手段は、典型的には、枠変形手段による変形後の枠の各頂点を通り視線方向設定手段によって設定された視線方向に延びる直線上に視体積の各頂点をとる。
【００１２】
また、枠設定面設定手段は、典型的には、視線方向設定手段によって設定された視線方向に垂直な平面を枠設定面として設定する。
【００１３】
第２の発明は、複数のオブジェクトが登場する仮想的な３次元ゲーム空間を所定の視線方向から表示装置に表示させるゲームシステムである。このゲームシステムにおいては、オブジェクトの中から選出された２以上のオブジェクトが選択オブジェクトとして設定されている。また、ゲームシステムは、視点位置設定手段と、枠設定面設定手段と、枠座標値算出手段と、枠設定手段と、表示制御手段とを備えている。視点位置設定手段は、視点の位置を設定する。枠設定面設定手段は、３次元ゲーム空間内の所定平面である枠設定面を３次元ゲーム空間において設定する。枠座標値算出手段は、選択オブジェクトのそれぞれについて、３次元ゲーム空間における当該選択オブジェクトの位置と視点位置設定手段によって設定された視点とを結ぶ直線と枠設定面が交わる位置を示す枠座標値を算出する。枠設定手段は、枠設定面上に仮想的に設定される枠であって、各選択オブジェクトの枠座標値により示される位置のすべてがその内側に位置する枠を設定する。表示制御手段は、枠設定手段によって設定された枠の各頂点に基づいて視体積の各頂点を決定して、表示装置にゲーム空間を表示する。
【００１４】
また、表示制御手段は、典型的には、枠設定手段によって設定された枠の各頂点を通り視点の方向に延びる直線上に視体積の各頂点をとる。
【００１５】
また、ゲームシステムは、枠拡大手段（Ｓ４０４〜Ｓ４１１）をさらに備えていてもよい。枠拡大手段は、枠変形手段による変形後の枠を枠設定面上で上下左右に所定幅だけ拡大する。このとき、表示制御手段は、枠拡大手段による拡大後の枠の各頂点に基づいて視体積の各頂点を決定する。
【００１６】
また、表示装置に表示領域が表示される画面領域が、所定のアスペクト比を有する長方形に設定されている場合、ゲームシステムは、アスペクト比補正手段（Ｓ５０７〜Ｓ５０９））をさらに備えていてもよい。アスペクト比補正手段は、枠変形手段による変形後の枠のアスペクト比が所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加する。このとき、表示制御手段は、アスペクト比補正手段による補正後の枠の各頂点に基づいて視体積の各頂点を決定する。
【００１７】
さらに、アスペクト比補正手段は、枠変形手段による変形後の枠が補正後の枠の中央に位置するように枠を補正するようにしてもよい。
【００１８】
また、ゲームシステムは、複数のプレイヤによってプレイ可能であってもよい。このとき、選択オブジェクトは、複数のプレイヤによって各々操作される複数のプレイヤキャラクタを少なくとも含んでいる。
【００１９】
なお、第１または第２の発明は、ゲームシステムのコンピュータに実行させるゲームプログラムの形態によって提供されてもよい。すなわち、上記に記載したゲームシステムの機能は、ゲームプログラムによって当該ゲームシステムに与えられる形態であってもよい。
【発明の効果】
【００２０】
第１または第２の発明によれば、３次元ゲーム空間に仮想的に設定される枠に基づいて表示領域が決定される。このように、注視点を用いずに表示領域（視体積）を決定することによって、特定の１つのオブジェクトのみが常に画面の中央に表示されることを防止することができる。従って、複数のオブジェクトが注目されるゲームであっても、各オブジェクトを同じように表示することができる。すなわち、複数のオブジェクトを見やすく表示することができる。
【００２１】
なお、表示制御手段が変形後の枠の各頂点を通る直線上に視体積の各頂点をとることによって、視線方向に基づいて容易に視体積を決定することができる。
【００２２】
また、枠設定面を視線方向に垂直な平面に設定することによって、枠設定面上における選択オブジェクトと枠との位置関係は、実際に表示されるゲーム画像における選択オブジェクトと表示画面の枠との位置関係と同じになる。従って、実際の表示状態を正確に反映した状態で枠を設定することができるので、枠の設定が容易になる。
【００２３】
また、枠変形手段による変形後の枠の各頂点と視点とを結ぶ直線上に視体積の各頂点をとることによって、視点に基づいて容易に視体積を決定することができる。
【００２４】
また、枠拡大手段によって、画面の端に選択オブジェクトが表示されることを防止することができる。従って、複数の選択オブジェクトをさらに見やすく表示することができる。
【００２５】
また、アスペクト比補正手段によって、枠の縦方向および横方向の長さがともに変化したときのみ、表示領域のサイズが変化することとなる。すなわち、第１の枠の縦方向および横方向の長さのいずれか一方のみが変化した場合には、表示領域のサイズは変更しない。従って、表示領域のサイズが頻繁に変更することをさらに防止することができるので、画面の見づらさをより改善することができる。また、アスペクト比を補正することによって、ゲーム画像が縦または横方向に伸びた画像となることがなく、視体積のニアクリップ面およびファークリップ面の形状は、ゲーム世界のゲーム画像が表示される画面領域と常に同じ形状となる。従って、見やすいゲーム画像を常に表示させることができる。さらに、枠変形手段によって変形された枠が補正後の枠の中央に位置するように枠が補正される場合には、プレイヤにとって必要と思われる情報（選択オブジェクト）が選択オブジェクトが画面の中央付近に表示されることになるので、より見やすくゲーム画面を表示することができる。
【００２６】
また、選択オブジェクトが、複数のプレイヤによって各々操作される複数のプレイヤキャラクタを少なくとも含む場合には、当該プレイヤキャラクタのすべてを見やすく表示することができる。従って、すべてのプレイヤに対して見やすい表示を行うことができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の一実施形態に係るゲームシステム１について説明する。図１は、当該ゲームシステム１の外観図である。なお、本発明に係るゲームシステムとして、据置型ゲーム装置を一例に上げて説明するが、本発明に係るゲームシステムはこれに限定されるものではなく、例えば携帯型ゲーム装置、アーケードゲーム装置、携帯端末、携帯電話またはパーソナルコンピュータなどのように、ゲームプログラムを実行するコンピュータを搭載する機器に適用することができる。
【００２８】
図１において、ゲームシステム１は、据置型ゲーム装置（以下、単にゲーム装置と記載する）３と、当該ゲーム装置に接続コードを介して接続される表示装置の一例であるテレビジョン受像機（以下、テレビと記載する）２とを含む構成である。ゲーム装置３には、プレイヤによって操作可能な複数の操作スイッチを有するコントローラ６が接続される。また、ゲーム装置３には、ゲームプログラムを記憶した情報記憶媒体の一例の光ディスク４が着脱自在に装着される。さらに、ゲーム装置３には、ゲームのセーブデータ等を記憶するフラッシュメモリ等を搭載するメモリカード５が必要に応じて着脱自在に装着される。ゲーム装置３は、光ディスク４に記憶されたゲームプログラムを実行することによって得られるゲーム画像をテレビ２に表示する。さらに、ゲーム装置３は、メモリカード５に記憶されたセーブデータを用いて、過去に実行されたゲームの続きを実行したり、過去に実行されたゲーム状態を再現して、ゲーム画像をテレビ２に表示することもできる。そして、ゲーム装置３のプレイヤは、テレビ２に表示されたゲーム画像を見ながら、コントローラ６を操作することによって、ゲームを楽しむことができる。
【００２９】
コントローラ６は、上述したように接続コードを介してゲーム装置３に接続され、その接続コードは、ゲーム装置３に対して着脱自在である。コントローラ６は、テレビ２に表示されるゲーム空間に登場するプレイヤキャラクタ（典型的には、プレイヤの操作対象であるゲーム主人公）を主に操作するための操作手段であり、複数の操作スイッチとして、操作ボタン、キー、およびスティック等の入力部を備えている。具体的には、コントローラ６には、プレイヤによって把持されるグリップ部が形成される。また、コントローラ６は、プレイヤの左手の親指等によって操作可能なメインスティック６１ａおよび十字キー６１ｄと、右手の親指等によって操作可能なＣスティック６１ｃおよびＡボタン６１ｂ等を含む。なお、コントローラ６は、上記ボタンの他、Ｂボタン、Ｘボタン、Ｙボタン、およびスタート−ポーズボタンや、プレイヤの右手の人差し指等によって操作可能なＲボタン、プレイヤの左手の人差し指等によって操作可能なＬボタンを含む。例えば、コントローラ６の操作によって後述するゲームを楽しむ場合、メインスティック６１は、プレイヤが操作するプレイヤキャラクタのゲーム世界における移動を指示するために用いられる。他の操作スイッチについても、後述するゲーム進行で用いられることがあるが、本発明の説明とは直接関連しないため詳細な説明を省略する。また、ゲームシステム１は、ゲーム装置３に複数のコントローラ６を接続することによって、複数のプレイヤが同時にゲームをプレイすることができる。
【００３０】
次に、図２を参照して、ゲーム装置３の構成について説明する。図２は、ゲーム装置３の機能ブロック図である。図２において、ゲーム装置３は、各種プログラムを実行する例えば１２８ビットのＣＰＵ（セントラルプロセッシングユニット）３１を備える。ＣＰＵ３１は、図示しないブートＲＯＭに記憶された起動プログラムを実行し、ワークメモリ３２等のメモリの初期化等を行った後、光ディスク４に記憶されているゲームプログラムをワークメモリ３２に一旦読み込んだ後に当該ゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理を行うものである。ＣＰＵ３１には、ワークメモリ３２、ビデオＲＡＭ（ＶＲＡＭ）３３、外部メモリインターフェース（Ｉ／Ｆ）３４、コントローラインターフェース（Ｉ／Ｆ）３５、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３６、および光ディスクドライブ３７がバスを介して接続される。
【００３１】
ワークメモリ３２は、ＣＰＵ３１で使用される記憶領域であって、ＣＰＵ３１の処理に必要なゲームプログラム等を適宜記憶する。例えば、ワークメモリ３２は、ＣＰＵ３１によって光ディスク４から読み出されたゲームプログラムや各種データ等を記憶する（図１４参照。）。このワークメモリ３２に記憶されたゲームプログラムや各種データ等がＣＰＵ３１によって実行される。ＶＲＡＭ３３は、テレビ２にゲーム画像を表示するためのゲーム画像データを格納する。外部メモリＩ／Ｆ３４は、図示しないコネクタにメモリカード５を嵌合させることによってゲーム装置３とメモリカード５とを通信可能に接続する。ＣＰＵ３１は、メモリカード５に設けられたバックアップメモリに外部メモリＩ／Ｆ３４を介してアクセスする。コントローラＩ／Ｆ３５は、図示しないコネクタによって外部機器とゲーム装置３とを通信可能に接続する。例えば、コントローラ６は、接続コードを介して当該コネクタと嵌合し、コントローラＩ／Ｆ３５を介してゲーム装置３と接続される。ＧＰＵ３６は、ＣＰＵ３１からの指示に応じて、例えば、３Ｄグラフィックスの表示に必要なベクトル演算やレンダリング処理等の処理を行う半導体チップで構成され、当該ＧＰＵ３６によってレンダリングされたゲーム画像はテレビ２に表示される。光ディスクドライブ３７は、ＣＰＵ３１からの指示に応じて、光ディスク４に記憶されたゲームプログラム、画像データ、サウンドデータなどの各種のデータを読み出す。
【００３２】
以下、光ディスク４に格納されたゲームプログラムがゲーム装置３によって実行されることによってテレビ２に表示されるゲームについて説明する。ここでは、ゲーム空間内の領域の内、テレビ２に表示される表示領域を決定する方法について主に説明する。また、以下に説明するゲームは、複数のプレイヤによってプレイ可能なゲームであるとする。具体的には、３人のプレイヤ（第１〜第３のプレイヤ）が、ゲームに登場する３つのプレイヤキャラクタ（第１〜第３のプレイヤキャラクタ）を各々操作するものとする。従って、図１には図示していないが、本実施形態においては、コントローラ６の他に少なくとも２つのコントローラがゲーム装置３にさらに接続されているものとする。また、第１のプレイヤによって使用されるコントローラを第１のコントローラ、第２のプレイヤによって使用されるコントローラを第２のコントローラ、第３のプレイヤによって使用されるコントローラを第３のコントローラと呼ぶ。
【００３３】
まず、本発明に係るゲームシステム１において行われる表示領域の決定方法について概要を説明する。当該方法では、ゲーム空間内において仮想的に設定される枠（後述する第１および第２の枠）に基づいて、表示領域が設定される。当該枠は、表示すべきオブジェクト（後述する選択オブジェクト）が当該枠の内部に表示されるように設定される。そして、当該枠内の領域が少なくとも表示されるように、表示領域が決定される。これによって、表示すべきオブジェクトが表示領域内に位置することとなるので、当該オブジェクトをテレビ２に表示することができる。以下、本発明に係るゲームシステム１において行われる表示領域の決定方法の詳細を、図３〜図１１を用いて説明する。
【００３４】
図３は、本実施形態におけるゲームが構成するゲーム空間を示す図である。ゲームシステム１では、仮想的なゲーム空間７１を視線７３の方向から見たゲーム画面がテレビ２に表示される。なお、本実施形態では、視線７３の方向は予め定められている。ゲーム空間７１には、複数のオブジェクトが登場する。図３においては、ゲーム空間７１には、プレイヤによって操作されるプレイヤキャラクタ８１〜８３、およびゲーム装置３において動作が制御される第１の敵キャラクタ８４が示されている。ここで、第１のプレイヤキャラクタ８１は、第１のプレイヤによって操作され、第２のプレイヤキャラクタ８２は、第２のプレイヤによって操作され、第３のプレイヤキャラクタ８３は、第３のプレイヤによって操作される。また、ゲーム空間７１は３次元ゲーム空間であるので、各オブジェクト（第１〜第３のプレイヤキャラクタ８１〜８３および第１の敵キャラクタ８４等）の当該３次元ゲーム空間における位置は、３次元のワールド座標系７２を用いて表現される。すなわち、各オブジェクトのゲーム空間７１における位置は、３次元の座標値（ｘ，ｙ，ｚ）によって表現される。当該３次元の座標値を、ワールド座標値と呼ぶ。
【００３５】
本実施形態において、ゲーム空間７１に登場するオブジェクトには、選択オブジェクトおよび非選択オブジェクトの２種類が存在する。選択オブジェクトは、表示領域を決定するための基準となるオブジェクトである。選択オブジェクトには、ゲーム空間７１に登場するオブジェクトの中から選出された２以上のオブジェクトが設定される。本実施形態においては、オブジェクトの種類（選択オブジェクトであるか非選択オブジェクトであるか）は、ゲームに登場する各オブジェクトについて予め設定されているものとする。なお、プレイヤが注目すると想定されるオブジェクトは、選択オブジェクトとして設定することが好ましい。なぜなら、表示領域は、すべての選択オブジェクトを表示するように決定される（ただし、例外があってもよい。後述する図１９参照。）からである。本実施形態では、上記プレイヤキャラクタ８１〜８３および第１の敵キャラクタ８４が選択オブジェクトとして設定されるものとする。また、後述する第２の敵キャラクタ８５は、非選択オブジェクトであるとする。例えば、第１の敵キャラクタ８４はゲームシナリオの進行上重要な意味を持つボスキャラクタ等であり、第２の敵キャラクタ８５はゲーム空間中に多数存在するような一般的な敵キャラクタ等としてもよい。
【００３６】
図４は、図３に示すゲーム空間に設定される枠設定面を示す図である。図４において、ゲーム空間７１には、枠設定面７６が設定される。枠設定面７６は、上記枠が設定される平面である。枠設定面７６は、視線７３に垂直となるように設定される。さらに、本実施形態では、枠設定面７６の位置は次のように設定される。すなわち、まず、各選択オブジェクトについて、３次元の座標値を視線７３に平行な座標軸７３’に垂直に下ろした位置（第１の敵キャラクタ８４について言えば、図４に示すＱ）が算出される。さらに、各選択オブジェクトについての当該位置の内、視線７３の方向を正とした場合の最小位置が特定される。枠設定面７６は、当該最小位置から視線７３の逆方向に関して所定距離Ｌだけ離れた位置に設定される。
【００３７】
また、図４において、枠設定面７６における位置を示すための枠座標系７５（２次元）が設定される。枠座標系７５の原点７５ａは、ワールド座標系７２の原点７２ａを枠設定面７６に投影した点に設定される。具体的には、原点７２ａを視線７３の方向に伸びる直線と枠設定面７６との交点を原点７５ａとする。枠座標系７５のＸ軸およびＹ軸は、予め定められた所定の方向に設定される。なお、本実施形態では、Ｘ軸方向が表示領域の横方向と一致し、Ｙ軸方向が表示領域の縦方向と一致する。なお、ここでは、ワールド座標系７２と枠座標系７５とを明確に区別する目的で、ワールド座標系７２はアルファベット小文字（ｘ軸、ｙ軸およびｚ軸）で記載し、枠座標系７５はアルファベット大文字（Ｘ軸およびＹ軸）で記載する。
【００３８】
図５は、枠設定面に各選択オブジェクトの位置を投影する処理を説明する図である。枠設定面７６および枠座標系７５が設定された後、枠設定面７６に各選択オブジェクトの位置が投影される。選択オブジェクトが枠設定面７６に投影された位置とは、ワールド座標値により示される位置を通り視線７３の方向に延びる直線と枠設定面７６との交点の位置である。ここで、選択オブジェクトが枠設定面７６に投影された位置の座標値を、枠座標値と呼ぶ。なお、本実施形態においては、ゲーム装置３は、枠座標値を２次元の枠座標系７５によって表現する。具体的には、プレイヤキャラクタ８１のワールド座標値（ｘ’，ｙ’，ｚ’）を枠設定面７６に投影した点の座標値が、プレイヤキャラクタ８１の枠座標値（Ｘ’，Ｙ’）として算出される。また、他のプレイヤキャラクタ８２および８３、ならびに第１の敵キャラクタ８４の枠座標値もプレイヤキャラクタ８１の枠座標値と同様に算出される。以上のように、本実施形態では、３次元のワールド座標系７２を２次元の枠座標系７５に変換して枠座標値を表現することによって、後述する枠の設定処理を容易に行うことができる。なお、他の実施形態では、枠座標値をワールド座標系７２によって表現してもよい。
【００３９】
図６は、枠設定面７６に設定された枠を示す図である。なお、図６は、視線７３の方向から枠設定面７６を見た図である。各選択オブジェクトについて枠座標値が算出された後、ゲーム装置３は、枠設定面７６に第１の枠７７を設定する。なお、第１の枠７７は、枠設定面７６において仮想的に設定されるものである。従って、第１の枠７７は、ゲーム画面には表示されない。本実施形態においては、第１の枠７７の形状は長方形（正方形を含む。）である。さらに、第１の枠７７は、２辺が枠座標系７５のＸ軸に並行であり、他の２辺がＹ軸に平行な長方形である。従って、実際の処理においては、第１の枠７７を、長方形における対角線に位置する２つの頂点の位置（図６における（Ｘａ，Ｙｂ）および（Ｘｂ，Ｙａ））を示す枠座標値によって表現することができる。これによって、第１の枠７７の上辺７７ａの位置がＹｂ、下辺７７ｂの位置がＹａ、左辺７７ｃの位置がＸａ、右辺の位置がＸｂによって示されることとなる。なお、以降の説明において、Ｘ軸方向を横方向と呼び、Ｙ軸方向を縦方向と呼ぶことがある。
【００４０】
第１の枠７７は、各選択オブジェクトの枠座標値により示される位置が当該第１の枠７７の内部に含まれるように設定される。つまり、第１の枠７７は、視線７３の方向から見て選択オブジェクトが第１の枠７７の内側に位置するように設定される。さらに、ゲーム処理中においては、ゲーム装置３は、選択オブジェクトの移動に応じて、各辺を独立して移動することによって第１の枠７７を変形する。以下、本実施形態における当該処理の詳細を図７〜図１０を用いて説明する。
【００４１】
図７は、第１の枠７７の上辺が移動する様子を示す図である。図７において、プレイヤキャラクタ８１が図７における下方向に移動しているものとする。プレイヤキャラクタ８１が当該下方向に移動した結果、第１の枠７７の上辺７７ａから枠の内側へ所定間隔αだけ離れた領域に選択オブジェクトが存在しなくなった場合、第１の枠７７の上辺７７ａは、第１の枠７７の内側（図７における下方向）へ所定距離ｋ（ｋ＜α）だけ移動される。
【００４２】
図８は、第１の枠７７の下辺が移動する様子を示す図である。図８において、プレイヤキャラクタ８３が図８における上方向に移動しているものとする。この場合も図７と同様、第１の枠７７の下辺７７ｂから枠の内側へ所定間隔αだけ離れた領域に選択オブジェクトが存在しなくなった場合、第１の枠７７の下辺７７ｂは、第１の枠７７の内側（図７における上方向）へ所定距離ｋだけ移動される。
【００４３】
また、図９は、第１の枠７７の左辺が移動する様子を示す図であり、図１０は、第１の枠７７の右辺が移動する様子を示す図である。図９および図１０の場合も、図７および図８と同様である。すなわち、選択オブジェクトの移動の結果、第１の枠７７の左辺７７ｃまたは右辺７７ｄから第１の枠７７の内側へ所定間隔αだけ離れた領域に選択オブジェクトが存在しなくなった場合、第１の枠７７の左辺７７ｃまたは右辺７７ｄが第１の枠７７の内側へ所定距離ｋだけ移動される。
【００４４】
また、ある選択オブジェクトが第１の枠７７の外側へ移動しようとしている場合には、第１の枠７７の各辺は、当該移動に応じて枠の外側へ移動される。例えば、プレイヤキャラクタ８１ａが上辺７７ａを超えて外側（図７で言えば上方）に移動しようとしたときには、プレイヤキャラクタ８１ａが第１の枠７７の内側に含まれるように、上辺７７ａは外側（図７で言えば上方）に移動する。また、下辺７７ｂを超えて外側（図７で言えば下方）に移動しようとしたときには、下辺７７ｂは外側（図７で言えば下方）に移動する。さらに、左辺７７ｃを超えて外側（図７で言えば左方）に移動しようとしたときには、左辺７７ｃは外側（図７で言えば左方）に移動する。さらに、右辺７７ｄを超えて外側（図７で言えば右方）に移動しようとしたときには、右辺７７ｄは外側（図７で言えば右方）に移動する。具体的には、ゲーム装置３は、第１の枠７７の外側へ移動しようとしている選択オブジェクトの位置に第１の枠７７の辺が位置するように移動する。以上によって、ゲーム装置３は、枠設定面上において、選択オブジェクトが第１の枠７７の内側に位置するように第１の枠７７を制御する。また、第１の枠７７は、選択オブジェクトの移動に応じて各辺ごとに独立して移動する。ここで、以上のように設定された第１の枠７７を、第１の枠と呼ぶ。なお、後述するように、表示領域は、第１の枠７７内の領域が少なくとも表示されるように決定される。従って、選択オブジェクトは必ずゲーム画面に表示されることとなる。
【００４５】
第１の枠７７が設定されると、ゲーム装置３は、第１の枠７７に基づいて第２の枠を設定する。図１１は、第１の枠および第２の枠を示す図である。図１１において、第２の枠７８は、第１の枠７７に所定距離βのマージンを設けることによって得られる。具体的には、第２の枠７８は、第１の枠７７を外側に所定距離βだけ拡大することによって得られる。図１１から明らかなように、第２の枠７８と各選択オブジェクトとの間には、少なくとも所定距離βの間隔が設けられる。なお、表示領域は、第２の枠７８内の領域が少なくとも表示されるように決定される。従って、選択オブジェクトは、ゲーム画面の端から少なくとも所定距離βだけ離れて表示されることとなる。これによって、ゲーム画面の端に選択オブジェクトが表示されることを防止することができる。
【００４６】
なお、上述の図６から図１１では、第１の枠７７および第２の枠７８の形状は、テレビ２の画面の内、ゲーム世界７１のゲーム画像が表示される画面領域の形状とほぼ等しい形状として記載した。しかし、第１の枠７７および第２の枠７８の形状は、選択オブジェクトの位置に応じて設定されるので、当該画面領域の形状と必ずしも等しい形状になるとは限らない。つまり、第１の枠７７および第２の枠７８のアスペクト比（＝縦の長さ／横の長さ）は、選択オブジェクトの位置に応じて可変であり、画面領域のアスペクト比（予め定められた一定値）と等しくならない場合がある。そこで、第２の枠７８が設定された後、ゲーム装置３は、第２の枠７８のアスペクト比を画面領域のアスペクト比と等しくなるように補正する。
【００４７】
図１２は、第２の枠７８のアスペクト比を補正する処理を説明するための図である。図１２（ａ）は、第２の枠７８が横方向に長い（アスペクト比が大きい）場合における処理を説明するための図である。なお、図１２において、点線は補正が行われる前の第２の枠７８を示す。図１２（ａ）のように、第２の枠７８が横方向に長い（アスペクト比が大きい）場合、第２の枠７８の縦サイズ（縦方向の長さ）が補正される。具体的には、表示領域のアスペクト比をＡ、第２の枠７８の横サイズ（横方向の長さ）をＬ１とすると、補正後の第２の枠７８の縦サイズＬ２は、Ｌ２＝Ｌ１／Ａとなるように補正される。さらに、第２の枠７８の縦サイズは、上側と下側とで同じ長さだけ長くなるように補正される。
【００４８】
一方、図１２（ｂ）は、第２の枠７８が縦方向に長い（アスペクト比が小さい）場合における処理を説明するための図である。図１２（ｂ）のように、第２の枠７８が縦方向に長い（アスペクト比が小さい）場合、第２の枠７８の横サイズが補正される。具体的には、補正後の第２の枠７８の横サイズＬ１は、Ｌ１＝Ｌ２×Ａとなるように補正される。さらに、第２の枠７８の横サイズは、左側と右側とで同じ長さだけ長くなるように補正される。
【００４９】
なお、図１２においては、非選択オブジェクトである第２の敵キャラクタ８５が示されている。図１２に示すように、アスペクト比を補正した結果、非選択オブジェクトが第２の枠７８に含まれることもあるが、枠の設定処理と非選択オブジェクトの位置とは無関係である。つまり、枠の設定処理において、非選択オブジェクトの位置は考慮されない。
【００５０】
以上の処理によって、表示領域を決定するために用いられる第２の枠７８が枠設定面７６において設定される。第２の枠７８が設定されると、ゲーム装置３は、第２の枠７８に基づいて視体積を決定する。視体積とは、画面に表示する対象となるゲーム空間の範囲を示し、ニアクリップ面の各頂点とファークリップ面の各頂点とによって囲まれる空間である。つまり、第２の枠７８に基づいてニアクリップ面およびファークリップ面の各頂点を決定することによって、視体積が決定される。具体的には、第２の枠７８の各頂点から所定方向に延びる直線と、ニアクリップ位置で視線方向に垂直な平面との交点がニアクリップ面の各頂点に設定され、当該直線とファークリップ位置で視線方向に垂直な平面との交点がファークリップ面の各頂点に設定される。このように視体積を決定することによって、視点から見たときに第２の枠７８内に含まれる領域がゲーム画像として表示されることになる。表示領域の決定するための典型的な方法としては、平行投影および透視投影がある。以下、平行投影および透視投影によって表示領域を決定する処理の詳細を説明する。
【００５１】
図１３は、表示領域を決定する処理を説明するための図である。図１３（ａ）は、平行投影によって表示領域を決定する処理を説明するための図である。平行投影では、第２の枠７８の各頂点を通り視線７３の方向に延びる直線と、ニアクリップ位置で視線方向に垂直な平面との交点が、ニアクリップ面９１の各頂点に設定される。また、当該直線とファークリップ位置で視線方向に垂直な平面との交点がファークリップ面９２の各頂点に設定される。これによって、ゲーム空間７１における領域の内、ニアクリップ面９１とファークリップ面９２とを底面とする直方体によって切り取られる領域が、表示領域すなわち視体積として決定される。
【００５２】
また、図１３（ｂ）は、透視投影によって表示領域を決定する処理を説明するための図である。透視投影では、まず視点９３の位置を決定する。視点９３とは、ゲーム空間７１に設定される仮想カメラの位置である。つまり、第２の枠７８に基づいて視点９３の位置を決定する。具体的には、視点９３の位置は、第２の枠７８の中心から視線７３と逆方向に伸びる直線上の位置であって、視点９３と、Ｘ方向の画角θ１によって決まる位置に決定される。なお、視点位置は、Ｘ方向の画角θ１の代わりにＹ方向の画角θ２を用いても決定することができる。このようにして視点が決定された後、第２の枠７８の各頂点と視点を結ぶ直線とニアクリップ位置で視線方向に垂直な平面との交点がニアクリップ面９１の各頂点に設定される。また、当該直線とファークリップ位置で視線方向に垂直な平面との交点がファークリップ面９２の各頂点に設定される。これによって、表示領域すなわち視体積が決定される。
【００５３】
なお、上記の説明において、第２の枠７８に対してアスペクト比の補正を行わないとすると、視体積のニアクリップ面およびファークリップ面の形状は、アスペクト比の補正が行われる前の第２の枠７８の形状と同じになる。従って、ニアクリップ面およびファークリップ面の形状（アスペクト比）は、ゲーム世界７１のゲーム画像が表示される画面領域とは異なる形状（アスペクト比）となるおそれがある。もし異なる形状となる場合には、視体積に含まれる領域は、画面領域の形状に合わせて変形されて表示される。例えば、第２の枠７８の形状が横方向に長い形状である場合、視体積に含まれる領域は、縦方向に伸張されて表示されることになる。同様に、例えば第２の枠７８の形状が縦方向に長い形状である場合、視体積に含まれる領域は、横方向に伸張されて表示されることになる。従って、アスペクト比の補正を行わないとすると、ゲーム画像は、縦または横方向に伸びた画像となるおそれがあり、このような画像は見やすい画像であるとは言えない。これに対して、本実施形態では、アスペクト比を補正することによって、視体積のニアクリップ面およびファークリップ面の形状は、上記画面領域と常に同じ形状となる。従って、見やすいゲーム画像を常に表示させることができる。
【００５４】
次に、図１４〜図１９を参照して、ゲーム装置３によって実行されるゲーム処理について説明する。ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ３１は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、ワークメモリ３２等の各ユニットが初期化される。そして、光ディスク４に格納されたゲームプログラムが光ディスクドライブ３７を介してワークメモリ３２に読み込まれ、当該ゲームプログラムの実行が開始される。その結果、ＧＰＵ３６を介してテレビ２にゲーム空間が表示されることによって、ゲームが開始される。図１５で示されるフローチャートは、以上の処理動作以降の処理を示している。
【００５５】
ゲーム処理の詳細を説明する前に、当該ゲーム処理において用いるためにワークメモリ３２に格納されるデータについて説明する。図１４は、ワークメモリ３２のメモリマップを示す図である。ワークメモリ３２には、キャラクタワールド座標データ３２１、キャラクタ枠座標データ３２２、第１の枠データ３２３、第２の枠データ３２４、および表示サイズデータ３２５等が格納される。なお、図１４では、本発明の処理に関連するデータのみを示し、その他のデータ（例えば、オブジェクトの画像データ等）は図示していない。
【００５６】
キャラクタワールド座標データ３２１は、各キャラクタ（オブジェクト）のワールド座標系７２における位置、すなわち、ワールド座標値（ｘ，ｙ，ｚ）を示すデータである。キャラクタワールド座標データ３２１には、第１から第３のプレイヤキャラクタ８１〜８３のワールド座標値を示すデータの他、第１の敵キャラクタ８４および第２の敵キャラクタ８５のワールド座標値を示すデータも含まれる。つまり、キャラクタワールド座標データ３２１には、非選択オブジェクトのワールド座標値を示すデータも含まれる。
【００５７】
キャラクタ枠座標データ３２２は、各選択オブジェクトの枠座標系７５における位置、すなわち、枠座標値（Ｘ，Ｙ）を示すデータである。なお、キャラクタ枠座標データ３２２には、キャラクタ枠座標データ３２２には、選択オブジェクトである第１から第３のプレイヤキャラクタ８１〜８３および第１の敵キャラクタ８４の枠座標値を示すデータが含まれる。
【００５８】
第１の枠データ３２３は、第１の枠７７を示すデータである。上述のように本実施形態においては枠の形状は長方形であるので、枠座標系７５における第１の枠７７の位置および大きさは、対角線に位置する２つの頂点の位置によって表現することができる。ここでは、左上の頂点の座標値（図６に示す（Ｘａ，Ｙｂ））と、右下の頂点の座標値（図６に示す（Ｘｂ，Ｙａ））とによって第１の枠７７を表現する。
【００５９】
第２の枠データ３２４は、第２の枠７８を示すデータである。第２の枠７８も第１の枠７７と同様、その位置および大きさは、対角線に位置する２つの頂点の位置によって表現することができる。ここでは、左上の頂点の座標値（Ｘｃ，Ｙｄ）と、右下の頂点の座標値（Ｘｄ，Ｙｃ）とによって第２の第１の枠７７を表現する。
【００６０】
表示サイズデータ３２５は、第２の枠７８の縦サイズおよび横サイズを示すデータである。第２の枠７８の縦サイズＬ２を示すデータは、上記第２の枠データ３２４から得ることができる。具体的には、Ｌ２＝Ｙｄ−Ｙｃである。枠の横サイズＬ１も縦サイズと同様、上記第２の枠データ３２４から得ることができ、Ｌ１＝Ｘｄ−Ｘｃである。
【００６１】
以下、ゲーム処理を詳細に説明する。図１５は、本実施形態に係るゲームシステムにおいて実行されるゲーム処理のメインフローチャートである。まず、ステップＳ１において、ＣＰＵ３１は、ゲーム処理の初期設定を行う。具体的には、視線７３の方向、ゲーム空間７１における各プレイヤキャラクタ８１〜８３の初期位置、ゲーム空間７１における各敵キャラクタ（第１の敵キャラクタ８４および第２の敵キャラクタ８５等）の初期位置、および枠（第１の枠７７および第２の枠７８）の初期位置等を設定する。ここで、枠の初期位置は、選択オブジェクトである各プレイヤキャラクタ８１〜８３および第１の敵キャラクタ８４の初期位置に基づいて、図６、図１１および図１２において説明した方法によって予め定められた位置に設定される。また、上記ステップＳ１の初期設定において設定されたデータは、ワークメモリ３２に書き込まれる。各プレイヤキャラクタ８１〜８３の初期位置および各敵キャラクタの初期位置は、キャラクタワールド座標データ３２１としてワークメモリ３２に書き込まれる。また、第１の枠７７および第２の枠７８の初期位置は、第１の枠データ３２３および第２の枠データ３２４としてワークメモリ３２に書き込まれる。
【００６２】
ステップＳ１の初期設定が終了すると、以降、ステップＳ２〜Ｓ７の処理が繰り返される。ステップＳ２〜Ｓ７のループは、ゲーム画像の１フレーム間に行われる処理である。まず、ステップＳ２において、ＣＰＵ３１は、コントローラ６からのプレイヤの操作入力に基づいて、ゲーム空間７１における各プレイヤキャラクタ８１〜８３の移動を制御する。具体的には、第１のコントローラからの操作入力に基づいて、第１のプレイヤキャラクタ８１のゲーム空間７１における位置を決定する。すなわち、プレイヤキャラクタ８１に関するワールド座標値を算出し、ワークメモリ３２のキャラクタワールド座標データ３２１の内容を、算出されたワールド座標値に更新する。なお、第１のプレイヤキャラクタ８１と同様の方法で、第２のプレイヤキャラクタ８２のゲーム空間７１における位置は、第２のコントローラからの操作入力に基づいて決定され、第３のプレイヤキャラクタ８３のゲーム空間７１における位置は、第３のコントローラからの操作入力に基づいて決定される。
【００６３】
次に、ステップＳ３において、ＣＰＵ３１は、ゲーム空間７１における各敵キャラクタの移動を制御する。具体的には、予め定められたアルゴリズムに従って、各敵キャラクタのゲーム空間７１における位置を決定する。すなわち、各敵キャラクタに関するワールド座標値を算出し、ワークメモリ３２のキャラクタワールド座標データ３２１の内容を、算出されたワールド座標値に更新する。
【００６４】
なお、上記ステップＳ２およびＳ３においては、「キャラクタの移動」は、「キャラクタの追加」および「キャラクタの削除」を含む概念とする。つまり、ステップＳ２およびＳ３において、ゲーム空間７１において新たなキャラクタが登場してもよいし、それまで登場していたキャラクタが消滅してもよい。また、キャラクタの追加または削除が行われる条件はどのようなものであってもよい。例えば、プレイヤキャラクタがあるアイテムを取得したことを条件として、新たな敵キャラクタが登場するようにしたり、プレイヤキャラクタの体力値（属性データとして予め設定されているものとする）が０になったことを条件として当該プレイヤキャラクタが消滅するようにすることが考えられる。
【００６５】
以上のステップＳ２およびＳ３によって、次のフレーム（次のステップＳ７において表示されるゲーム画像）における各キャラクタの位置が決定される。そして、次のステップＳ４およびＳ５において枠が設定され、ステップＳ６において枠に基づいて視体積が設定され、設定された視体積についてのゲーム画像がステップＳ７において表示されるのである。まず、ステップＳ４において、第１の枠設定処理が行われる。図１６および図１７は、図１５に示すステップＳ４の詳細な処理の流れを示すフローチャートである。第１の枠設定処理では、まずステップＳ４０１において、ＣＰＵ３１は、ゲーム空間７１において枠設定面７６を設定する（図４参照。）。また、この際、枠座標系７５も設定される。
【００６６】
次に、ステップＳ４０２およびＳ４０３において、ステップＳ４０１において設定された枠設定面７６に各選択キャラクタが投影される（図５参照。）。すなわち、ステップＳ４０２において、ＣＰＵ３１は、選択キャラクタのワールド座標値から当該選択キャラクタの枠座標値を算出する。具体的には、ワークメモリ３２に記憶されている選択キャラクタのワールド座標値に基づいて当該選択キャラクタの枠座標値を算出する。算出された各選択キャラクタの枠座標値は、キャラクタ枠座標データ３２２としてワークメモリ３２に書き込まれる。続くステップＳ４０３において、すべての選択キャラクタについて枠座標値が算出されたか否かが判定される。この判定において、すべての選択キャラクタの枠座標値が算出されている場合、処理はステップＳ４０４に進む。一方、すべての選択キャラクタの枠座標値が算出されていない場合、処理はステップＳ４０２に戻る。つまり、すべての選択キャラクタの枠座標値が算出されるまで、ＣＰＵ３１はステップＳ４０２およびＳ４０３の処理を繰り返す。
【００６７】
以上のステップＳ４０２およびＳ４０３の処理によって、枠設定面７６における各選択キャラクタの位置が算出されるので、選択キャラクタと第１の枠７７との位置関係を枠設定面７６上で判定することができる（図６参照。）。そこで、以降のステップＳ４０４〜Ｓ４１９において、第１の枠７７を変形させる必要があるか否かの判定、および、その必要がある場合には第１の枠７７の変形が行われる。まず、ステップＳ４０４〜Ｓ４１１において、第１の枠７７の拡大変形に関する処理が行われる。その後、ステップＳ４１２〜Ｓ４１９において、第１の枠７７の縮小変形に関する処理が行われる。
【００６８】
まず、ステップＳ４０４において、第１の枠７７の上辺７７ａから外側（ここでは、Ｙ軸の正の方向）に出た選択キャラクタがあるか否かが判定される。具体的には、ＣＰＵ３１は、ワークメモリ３２に格納されている第１の枠データ３２３における左上座標（Ｘａ，Ｙｂ）のＹｂの値と、ワークメモリ３２に格納されているキャラクタ枠座標データ３２２における各選択キャラクタのＹ座標の値とを比較する。そして、Ｙ座標の値がＹｂの値よりも大きい選択キャラクタがあるか否かを判定する。この判定の結果、Ｙ座標の値がＹｂの値よりも大きい選択キャラクタがある場合、当該選択キャラクタは第１の枠７７の外側に出たと判断され、ステップＳ４０５の処理が行われる。一方、Ｙ座標の値がＹｂの値よりも大きい選択キャラクタがない場合、第１の枠７７の外側に出た選択キャラクタはないと判断され、ステップＳ４０６の処理が行われる。
【００６９】
なお、上記ステップＳ４０４において、各選択キャラクタが第１の枠７７の上辺７７ａから所定距離だけ外側に出たか否かを判定するようにしてもよい。これによって、第１の枠７７を移動させる頻度を下げることになるので、表示領域が移動する頻度を下げることができる。従って、より見やすいゲーム画面を表示することができる。以下のステップＳ４０６、Ｓ４０８およびＳ４１０についてもＳ４０４と同様である。
【００７０】
ステップＳ４０５においては、上辺７７ａの移動が行われる。具体的には、上辺７７ａは、第１の枠７７の外側に出たと判断された選択キャラクタの位置に移動される。すなわち、ワークメモリ３２に格納されている第１の枠データ３２３におけるＹｂの値は、当該選択キャラクタのＹ座標の値に更新される。ステップＳ４０５の処理の後、ステップＳ４０６の処理が行われる。
【００７１】
ステップＳ４０６においては、第１の枠７７の下辺７７ｂから外側（ここでは、Ｙ軸の負の方向）に出た選択キャラクタがあるか否かが判定される。具体的な判定方法は、ステップＳ４０４と同様である。すなわち、第１の枠データ３２３における右下座標（Ｘｂ，Ｙａ）のＹａの値と、キャラクタ枠座標データ３２２における各選択キャラクタのＹ座標の値とが比較される。そして、Ｙ座標の値がＹａの値よりも小さい選択キャラクタがあるか否かによって、第１の枠７７から出た選択キャラクタがあるか否かを判断する。ステップＳ４０６の判定の結果、第１の枠７７から外側に出た選択キャラクタがある場合、ステップＳ４０７の処理が行われる。一方、第１の枠７７から外側に出た選択キャラクタがない場合、ステップＳ４０８の処理が行われる。
【００７２】
ステップＳ４０７においては、下辺７７ｂの移動が行われる。具体的には、下辺７７ｂは、第１の枠７７から外側に出たと判断された選択キャラクタの位置に移動される。すなわち、第１の枠データ３２３におけるＹａの値は、当該選択キャラクタのＹ座標の値に更新される。ステップＳ４０７の処理の後、ステップＳ４０８の処理が行われる。
【００７３】
ステップＳ４０８においては、第１の枠７７の右辺７７ｄから外側（ここでは、Ｘ軸の正の方向）に出た選択キャラクタがあるか否かが判定される。具体的な判定方法は、ステップＳ４０４と同様であり、第１の枠データ３２３における右下座標（Ｘｂ，Ｙａ）のＸｂの値と、キャラクタ枠座標データ３２２における各選択キャラクタのＸ座標の値とが比較される。そして、Ｘ座標の値がＸｂの値よりも大きい選択キャラクタがあるか否かによって、第１の枠７７から出た選択キャラクタがあるか否かを判断する。ステップＳ４０８の判定の結果、第１の枠７７から外側に出た選択キャラクタがある場合、ステップＳ４０９の処理が行われる。一方、第１の枠７７から外側に出た選択キャラクタがない場合、ステップＳ４１０の処理が行われる。
【００７４】
ステップＳ４０９においては、右辺７７ｄの移動が行われる。具体的には、右辺７７ｄは、第１の枠７７から外側に出たと判断された選択キャラクタの位置に移動される。すなわち、第１の枠データ３２３におけるＸｂの値は、当該選択キャラクタのＸ座標の値に更新される。ステップＳ４０９の処理の後、ステップＳ４１０の処理が行われる。
【００７５】
ステップＳ４１０においては、第１の枠７７の左辺７７ｃから外側（ここでは、Ｘ軸の負の方向）に出た選択キャラクタがあるか否かが判定される。具体的な判定方法は、ステップＳ４０４と同様であり、第１の枠データ３２３における左上座標（Ｘａ，Ｙｂ）のＸａの値と、キャラクタ枠座標データ３２２における各選択キャラクタのＸ座標の値とが比較される。そして、Ｘ座標の値がＸａの値よりも小さい選択キャラクタがあるか否かによって、第１の枠７７から出た選択キャラクタがあるか否かを判断する。ステップＳ４１０の判定の結果、第１の枠７７から外側に出た選択キャラクタがある場合、ステップＳ４１１の処理が行われる。一方、第１の枠７７から外側に出た選択キャラクタがない場合、ステップＳ４１２の処理が行われる。
【００７６】
ステップＳ４１１においては、左辺７７ｃの移動が行われる。具体的には、左辺７７ｃは、第１の枠７７から外側に出たと判断された選択キャラクタの位置に移動される。すなわち、第１の枠データ３２３におけるＸａの値は、当該選択キャラクタのＸ座標の値に更新される。ステップＳ４１１の処理の後、ステップＳ４１２の処理が行われる。
【００７７】
図１７に示すステップＳ４１２〜Ｓ４１９の処理は、枠の縮小変形に関する処理である。まず、ステップＳ４１２において、すべての選択キャラクタが第１の枠７７の上辺７７ａから内側（ここでは、Ｙ軸の負の方向）に所定間隔α離れた位置にあるか否かが判定される。具体的には、ＣＰＵ３１は、第１の枠データ３２３における左上座標（Ｘａ，Ｙｂ）のＹｂの値と、キャラクタ枠座標データ３２２における各選択キャラクタのＹ座標の値とを比較する。そして、すべての選択キャラクタのＹ座標の値がＹｂ−αよりも小さいか否かを判定する。この判定の結果、すべての選択キャラクタのＹ座標の値がＹｂ−αよりも小さい場合、すべての選択キャラクタが上辺７７ａから内側に所定間隔α離れた位置にあると判断され、ステップＳ４１３の処理が行われる。一方、少なくとも１つの選択キャラクタのＹ座標の値がＹｂ−αよりも大きい場合、少なくとも１つの選択キャラクタが上辺７７ａから所定間隔α以内の位置にあると判断され、ステップＳ４１４の処理が行われる。
【００７８】
ステップＳ４１３においては、上辺７７ａの移動が行われる（図７参照。）。具体的には、上辺７７ａは、第１の枠７７の内側に所定距離ｋだけ移動される。すなわち、第１の枠データ３２３におけるＹｂの値は、ｋ減算された値に更新される。ステップＳ４１３の処理の後、ステップＳ４１４の処理が行われる。
【００７９】
ステップＳ４１４においては、すべての選択キャラクタが第１の枠７７の下辺７７ｂから内側（ここでは、Ｙ軸の正の方向）に所定間隔α離れた位置にあるか否かが判定される。具体的な判定方法は、ステップＳ４１２と同様である。すなわち、第１の枠データ３２３における右下座標（Ｘｂ，Ｙａ）のＹａの値と、キャラクタ枠座標データ３２２における各選択キャラクタのＹ座標の値とが比較される。そして、すべての選択キャラクタのＹ座標の値がＹａ＋αよりも大きいか否かによって、すべての選択キャラクタが下辺７７ｂから内側に所定間隔α離れた位置にあるか否かを判断する。ステップＳ４１４の判定の結果、すべての選択キャラクタが下辺７７ｂから内側に所定間隔α離れた位置にある場合、ステップＳ４１５の処理が行われる。一方、少なくとも１つの選択キャラクタが下辺７７ｂから所定間隔α以内の位置にある場合、ステップＳ４１６の処理が行われる。
【００８０】
ステップＳ４１５においては、下辺７７ｂの移動が行われる（図８参照。）。具体的には、下辺７７ｂは、第１の枠７７の内側に所定距離ｋだけ移動される。すなわち、第１の枠データ３２３におけるＹａの値は、ｋ加算された値に更新される。ステップＳ４１５の処理の後、ステップＳ４１６の処理が行われる。
【００８１】
ステップＳ４１６においては、すべての選択キャラクタが第１の枠７７の右辺７７ｄから内側（ここでは、Ｘ軸の負の方向）に所定間隔α離れた位置にあるか否かが判定される。具体的な判定方法は、ステップＳ４１２と同様であり、第１の枠データ３２３における右下座標（Ｘｂ，Ｙａ）のＸｂの値と、キャラクタ枠座標データ３２２における各選択キャラクタのＸ座標の値とが比較される。そして、すべての選択キャラクタのＸ座標の値がＸｂ−αよりも小さいか否かによって、すべての選択キャラクタが右辺７７ｄから内側に所定間隔α離れた位置にあるか否かを判断する。ステップＳ４１６の判定の結果、すべての選択キャラクタが右辺７７ｄから内側に所定間隔α離れた位置にある場合、ステップＳ４１７の処理が行われる。一方、少なくとも１つの選択キャラクタが右辺７７ｄから所定間隔α以内の位置にある場合、ステップＳ４１８の処理が行われる。
【００８２】
ステップＳ４１７においては、右辺７７ｄの移動が行われる（図９参照。）。具体的には、右辺７７ｄは、第１の枠７７の内側に所定距離ｋだけ移動される。すなわち、第１の枠データ３２３におけるＸｂの値は、ｋ減算された値に更新される。ステップＳ４１７の処理の後、ステップＳ４１８の処理が行われる。
【００８３】
ステップＳ４１８においては、すべての選択キャラクタが第１の枠７７の左辺７７ｃから内側（ここでは、Ｘ軸の正の方向）に所定間隔α離れた位置にあるか否かが判定される。具体的な判定方法は、ステップＳ４１２と同様であり、第１の枠データ３２３における左上座標（Ｘａ，Ｙｂ）のＸａの値と、キャラクタ枠座標データ３２２における各選択キャラクタのＸ座標の値とが比較される。そして、すべての選択キャラクタのＸ座標の値がＸａ＋αよりも大きいか否かによって、すべての選択キャラクタが左辺７７ｃから内側に所定間隔α離れた位置にあるか否かを判断する。ステップＳ４１６の判定の結果、すべての選択キャラクタが左辺７７ｃから内側に所定間隔α離れた位置にある場合、ステップＳ４１９の処理が行われる。一方、少なくとも１つの選択キャラクタが左辺７７ｃから所定間隔α以内の位置にある場合、ＣＰＵ３１は、第１の枠設定処理を終了する。
【００８４】
ステップＳ４１９においては、左辺７７ｃの移動が行われる（図１０参照。）。具体的には、左辺７７ｃは、第１の枠７７の内側に所定距離ｋだけ移動される。すなわち、第１の枠データ３２３におけるＸａの値は、ｋ加算された値に更新される。ステップＳ４１９の処理の後、ＣＰＵ３１は、第１の枠設定処理を終了する。以上の第１の枠設定処理によって、第１の枠７７が設定されたことになる。
【００８５】
図１５の説明に戻り、第１の枠設定処理（ステップＳ４）の後、ステップＳ５において第２の枠設定処理が行われる。第２の枠設定処理は、ステップＳ４において設定された第１の枠７７に基づいて第２の枠７８を設定するための処理である。図１８は、図１５に示すステップＳ５の詳細な処理の流れを示すフローチャートである。第２の枠設定処理では、まずステップＳ５０１〜Ｓ５０６において、第１の枠７７に基づいて第２の枠７８が設定される。さらに、ステップＳ５０７〜Ｓ５０９において、第２の枠７８のアスペクト比が補正される。
【００８６】
図１８において、まず、ステップＳ５０１において、第１の枠７７の縦サイズが所定値Ｌａよりも大きいか否かが判定される。この判定は、ワークメモリ３２に格納されている第１の枠データ３２３のＹａおよびＹｂの値に基づいて行われる。すなわち、Ｙｂ−Ｙａが所定値Ｌａよりも大きければ、ステップＳ５０２の処理が行われる。一方、Ｙｂ−Ｙａが所定値Ｌａ以下であれば、ステップＳ５０３の処理が行われる。
【００８７】
ステップＳ５０２においては、第２の枠７８の縦サイズは、第１の枠７７の縦サイズを所定距離（２×β）だけ拡大した長さに設定される（図１１参照。）。具体的には、ワークメモリ３２に格納されている第２の枠データ３２４におけるＹｃの値は、Ｙａ−βに更新される。また、第２の枠データ３２４におけるＹｄの値は、Ｙｂ＋βに更新される。ステップＳ５０２の処理の後、ステップＳ５０４の処理が行われる。
【００８８】
ステップＳ５０３においては、第２の枠７８の縦サイズは、予め定められた所定の縦サイズ値に設定される。ここで、所定の縦サイズ値は、第２の枠７８の最小の縦サイズを示す値である。ここでは、所定の縦サイズ値は、上記所定値Ｌａに２βを加算した値である。つまり、当該所定の縦サイズ値をＬａ’とすると、Ｌａ’＝Ｌａ＋２βである。従って、第１の枠７７の縦サイズが所定値Ｌａよりも小さい場合、第２の枠７８の縦サイズは、縦サイズが当該所定値である第１の枠７７を所定距離（２×β）だけ拡大した長さとなる。また、このとき、第２の枠７８の位置は、第１の枠７７の上辺７７ａおよび下辺７７ｂを縦方向に同じ距離だけ拡大するように設定される。従って、上辺７７ａおよび下辺７７ｂは、縦方向に｛Ｌａ’−（Ｙｂ−Ｙａ）｝／２だけ拡大される。すなわち、第２の枠データ３２４におけるＹｃの値は、Ｙａ−｛Ｌａ’−（Ｙｂ−Ｙａ）｝／２に更新される。また、第２の枠データ３２４におけるＹｄの値は、Ｙｂ＋｛Ｌａ−（Ｙｂ−Ｙａ）｝／２に更新される。ステップＳ５０３の処理の後、ステップＳ５０４の処理が行われる。
【００８９】
次に、ステップＳ５０４において、第１の枠７７の横サイズが所定値Ｌｂよりも大きいか否かが判定される。この判定は、ワークメモリ３２に格納されている第１の枠データ３２３のＸａおよびＸｂの値に基づいて行われる。すなわち、Ｘｂ−Ｘａが所定値Ｌｂよりも大きければ、ステップＳ５０５の処理が行われる。一方、Ｘｂ−Ｘａが所定値Ｌｂ以下であれば、ステップＳ５０６の処理が行われる。
【００９０】
ステップＳ５０５においては、第２の枠７８の横サイズは、第１の枠７７の横サイズを所定距離（２×β）だけ拡大した長さに設定される（図１１参照。）。具体的には、ワークメモリ３２に格納されている第２の枠データ３２４におけるＸｃの値は、Ｘａ−βに更新される。また、第２の枠データ３２４におけるＸｄの値は、Ｘｂ＋βに更新される。ステップＳ５０５の処理の後、ステップＳ５０７の処理が行われる。
【００９１】
ステップＳ５０６においては、第２の枠７８の横サイズは、予め定められた所定の横サイズ値に設定される。ここで、所定の横サイズ値は、第２の枠７８の最小の横サイズを示す値である。ここでは、所定の横サイズ値は、上記所定値Ｌｂに２βを加算した値である。つまり、当該所定の横サイズ値をＬｂ’とすると、Ｌｂ’＝Ｌｂ＋２βである。従って、第１の枠７７の横サイズが所定値Ｌｂよりも小さい場合、第２の枠７８の横サイズは、横サイズが当該所定値である第１の枠７７を所定距離（２×β）だけ拡大した長さとなる。また、このとき、第２の枠７８の位置は、第１の枠７７の左辺７７ｃおよび右辺７７ｄを横方向に同じ距離だけ拡大するように設定される。従って、左辺７７ｃおよび右辺７７ｄは、横方向に｛Ｌｂ’−（Ｘｂ−Ｘａ）｝／２だけ拡大される。すなわち、第２の枠データ３２４におけるＸｃの値は、Ｘａ−｛Ｌｂ’−（Ｘｂ−Ｘａ）｝／２に更新される。また、第２の枠データ３２４におけるＸｄの値は、Ｘｂ＋｛Ｌｂ−（Ｘｂ−Ｘａ）｝／２に更新される。ステップＳ５０６の処理の後、ステップＳ５０７の処理が行われる。
【００９２】
なお、本実施形態では、ステップＳ５０１〜Ｓ５０６によって、第２の枠７８のサイズは、最小でも縦サイズがＬａ’、横サイズがＬｂ’となるように制限される。これは、表示領域が小さくなりすぎ、ゲーム画面をズームアップしすぎることを防止するためである。これによって、ゲーム画面をズームアップしすぎることによってキャラクタの画像が粗く表示されてしまうことを防止することができる。
【００９３】
以上のステップＳ５０１〜Ｓ５０６の処理によって、第１の枠７７を外側に所定距離（２β）拡大した領域を少なくとも含む第２の枠７８が設定されることとなる（図１１参照。）。第１の枠７７の内側には選択キャラクタが含まれているので、第１の枠７７を拡大した第２の枠７８内の領域を表示することによって、表示領域の端に選択キャラクタが表示されることはない。従って、選択キャラクタを常に見やすく表示することができる。なお、ステップＳ５０１〜Ｓ５０６において、ワークメモリ３２の第２の枠データ３２４が更新されると、それに応じて表示サイズデータ３２５の内容も更新されるものとする。
【００９４】
ステップＳ５０７〜Ｓ５０９においては、ステップＳ５０１〜Ｓ５０６において設定された第２の枠７８のアスペクト比を補正する処理が行われる。まず、ステップＳ５０７において、第２の枠７８が表示領域と比べて縦方向に長い形状であるか横方向に長い形状であるかが判定される。具体的には、第２の枠７８の横サイズＬ１が、第２の枠７８の縦サイズＬ２と表示領域のアスペクト比Ａとの積よりも小さいか否かが判定される。この判定は、ワークメモリ３２に格納されている表示サイズデータ３２５を用いて行われる。すなわち、Ｌ１＜Ｌ２×Ａである場合、第２の枠７８が表示領域と比べて縦方向に長い形状であると判断され、ステップＳ５０８の処理が行われる。一方、Ｌ１＞＝Ｌ２×Ａである場合、第２の枠７８が表示領域と比べて横方向に長い形状であると判断され、ステップＳ５０９の処理が行われる。
【００９５】
ステップＳ５０８では、第２の枠７８の横サイズが補正される。具体的には、横サイズの長さが、縦サイズの長さＬ２と表示領域のアスペクト比Ａとの積となるように補正される（図１２（ｂ）参照。）。これによって、縦方向に長い形状であった第２の枠７８の横サイズが拡大されるので、第２の枠７８の形状は、表示領域と相似の形状に補正される。さらに、このとき、第２の枠７８の位置は、左側と右側とで同じ長さだけ拡大するように設定される。具体的には、補正後の横サイズと補正前の横サイズとの差をＳ１とすると、第２の枠７８の右側の頂点のＸ座標は、Ｓ１／２だけ右方向（Ｘ軸の正の方向）に移動される。また、第２の枠７８の左側の頂点のＸ座標は、Ｓ１／２だけ左方向（Ｘ軸の負の方向）に移動される。すなわち、第２の枠データ３２４におけるＸｄの値は、補正前のＸｄの値からＳ１／２増加した値に更新される。また、第２の枠データ３２４におけるＸｃの値は、補正前のＸｃの値からＳ１／２減少した値に更新される。
【００９６】
一方、ステップＳ５０９では、第２の枠７８の縦サイズが補正される。具体的には、縦サイズの長さが、横サイズの長さＬ１を表示領域のアスペクト比Ａで割った値となるように補正される（図１２（ａ）参照。）。これによって、横方向に長い形状であった第２の枠７８の縦サイズが拡大されるので、第２の枠７８の形状は、表示領域と相似の形状に補正される。さらに、このとき、第２の枠７８の位置は、上側と下側とで同じ長さだけ拡大するように設定される。具体的には、補正後の縦サイズと補正前の縦サイズとの差をＳ２とすると、第２の枠７８の上側の頂点のＹ座標は、Ｓ２／２だけ上方向（Ｙ軸の正の方向）に移動される。また、第２の枠７８の下側の頂点のＹ座標は、Ｓ１／２だけ下方向（Ｙ軸の負の方向）に移動される。すなわち、第２の枠データ３２４におけるＹｄの値は、補正前のＹｄの値からＳ２／２増加した値に更新される。また、第２の枠データ３２４におけるＹｃの値は、補正前のＹｃの値からＳ２／２減少した値に更新される。ステップＳ５０８またはＳ５０９の処理によって、第２の枠設定処理が完了する。
【００９７】
再び図１５の説明に戻り、第２の枠設定処理の後、ＣＰＵ３１は、ゲーム画像をテレビ２に表示させる。すなわち、ステップＳ６において、視体積の設定を行う。具体的には、図１３を参照して説明した方法で行う。これによって、ゲーム空間７１内の領域の内、表示領域が決定されたことになる。さらに、ステップＳ７において、テレビ２にゲーム画像を表示する。具体的には、決定された視体積に基づいて、ゲーム空間７１を視線７３の方向から見たゲーム画像を生成する。以上のステップＳ２〜Ｓ７において、１フレームにおけるゲーム画像が生成される。以降、ＣＰＵ３１は、ステップＳ２〜Ｓ７を繰り返すことによってゲーム処理を行う。
【００９８】
なお、上述の第１の枠設定処理（ステップＳ４）では、選択オブジェクトが第１の枠７７の内側に必ず含まれるように設定された。ここで、例えば、ステップＳ２またはＳ３において新たな選択オブジェクトがゲーム空間７１に登場する場合には、第１の枠７７を急激に拡大または縮小しなければならないおそれがある。すなわち、あるフレームの時点で表示されている領域とは異なる領域に選択オブジェクトが新たに登場した場合、次のフレームでは第１の枠７７が大きく拡大されることになる。その結果、表示領域が急激に変化することになる。また、あるフレームの時点でゲーム空間７１に登場していた選択オブジェクトが次のフレームで消滅することによっても、表示領域が急激に変化する場合がある。このように表示領域が急激に変化するようなゲーム画像は、プレイヤにとって非常に見にくい表示であると考えられる。そこで、第１の枠設定処理において、表示領域の急激な変化を防止する処理を行うようにしてもよい。以下、詳細を説明する。
【００９９】
図１９は、第１の枠設定処理の変形例を示すフローチャートである。なお、図１９において、図１６に示す処理と同じ処理については、同じステップ番号を付し、説明を省略する。図１９に示す処理は、ステップＳ４０５の次にステップＳ４２１およびＳ４２２の処理が実行される点で図１６に示す処理と異なっている。この変形例では、ステップＳ４０５の後、ステップＳ４２１において、第１の枠７７の上辺７７ａの移動距離が、予め定められた所定の限界値γ以上か否かが判定される。具体的には、ステップＳ４０５において更新される第１の枠データ３２３におけるＹｂの更新前後の値を比較することによって、上辺７７ａの移動距離を算出する。そして、算出された移動距離と所定の限界値との大きさを比較することによって、当該移動距離が所定の限界値以上か否かを判定する。この判定の結果、当該移動距離が所定の限界値以上である場合、ステップＳ４２２の処理が行われる。一方、当該移動距離が所定の限界値よりも小さい場合、ステップＳ４２２の処理がスキップされ、ステップＳ４２３の処理（ステップＳ４０６〜Ｓ４１９の処理）が行われる。
【０１００】
ステップＳ４２２においては、上辺７７ａの移動量が上記所定の限界値に制限される。具体的には、ワークメモリ３２に格納されている第１の枠データ３２３におけるＹｂの値は、ステップＳ４０５の更新前における値に所定の限界値γを加算した値に更新される。ステップＳ４２２の処理の後、ステップＳ４０６の処理が行われる。
【０１０１】
以上のように、ステップＳ４２１およびＳ４２２においては、所定の単位時間（フレーム間隔）における第１の枠７７の上辺７７ａの移動距離が所定の限界値を超えないように第１の枠７７が変形される。それ故、ステップＳ４２１およびＳ４２２の処理によって、第１の枠７７の上辺７７ａは、外側に急激に移動することがない。なお、図１９では、上辺７７ａが外側に移動する場合にのみ、移動距離が所定の限界値以上であるか否かを判定したが、他の辺が外側に移動する場合についても、ステップＳ４２１およびＳ４２２と同様の処理を行うことができる。第１の枠７７の４辺すべてについて、辺が外側に移動する場合にステップＳ４２１およびＳ４２２と同様の処理を行うことによって、第１の枠が急激に拡大することを防止することができる。その結果、表示領域が急激に拡大することを防止することができる。
【０１０２】
なお、上記の実施形態では、第１の枠７７の各辺は、内側に移動する場合には予め定められた所定距離ｋだけ移動されるものとしたが、他の実施の形態では、移動すべき辺を選択オブジェクトの位置に移動させるようにしてもよい。このとき、第１の枠７７の各辺が内側に移動する場合においても、外側の場合と同様、第１の枠７７の辺が急激に移動する場合がある。そこで、第１の枠７７の４辺が内側に移動する場合についてもステップＳ４２１およびＳ４２２と同様の処理を行うことによって、第１の枠が急激に縮小することを防止するようにしてもよい。その結果、表示領域が急激に変化することを防止することができる。以上によって、プレイヤにとってより見やすい表示を行うことができる。
【０１０３】
以上のように、本実施形態によれば、その内側に選択オブジェクトが含まれるように第１の枠を設定することによって、複数の選択オブジェクトを表示することができる。さらに、枠（第１の枠および第２の枠）は、選択オブジェクトのすべてが枠の１辺から内側に所定間隔以上離れたときに変形される。すなわち、選択オブジェクトが移動すれば必ず枠が変形されるというわけではない。従って、枠の変形が頻繁に行われることを防止できるので、表示領域も頻繁に移動することがない。それ故、ゲーム空間の表示領域を見やすく表示することができる。
【０１０４】
また、本実施形態によれば、３次元ゲーム空間に仮想的に設定される枠に基づいて表示領域が決定される。これによって、注視点を用いずに表示領域を決定することができる。従って、注視点を用いて表示領域を決定する場合のように、特定の１つのオブジェクトのみが常に画面の中央に表示されることがない。それ故、本実施形態によれば、複数のオブジェクトが注目されるゲームであっても、各オブジェクトを同じように表示することができる。すなわち、複数のオブジェクトを見やすく表示することができる。
【０１０５】
なお、本実施形態では、３次元ゲーム空間が構成されるゲームについて説明したが、本発明は、２次元のゲーム平面を構成するゲームについても適用可能である。当該ゲームに適用する場合、枠設定面をゲーム平面上に設定すればよい。従って、この場合、ワールド座標値から枠座標値への変換処理を行う必要はない。つまり、ゲーム平面上の座標値を用いて、枠の設定および変形を行うことができる。また、視線の方向は、当該ゲーム平面に垂直な方向であると考えればよい。
【０１０６】
また、本実施形態では、枠（第１の枠７７および第２の枠７８）の形状を長方形（正方形を含む）としたが、枠の形状はこれに限られない。例えば、枠は他の多角形や楕円であってもよい。枠が多角形の場合、頂点の枠設定面における座標によって当該多角形の枠を表現することができる。また、枠が楕円の場合、楕円の中心と長径および短径の長さによって当該楕円の枠を表現することができる。さらに、例えば、第１の枠７７を楕円とし、第２の枠７８を長方形としてもよい。これによれば、表示領域（長方形）内に含まれる楕円の内側に選択オブジェクトが位置するように表示されるので、選択オブジェクトは、画面の角に表示されることがなく、より見やすい表示とすることができる。
【０１０７】
また、本実施形態では、選択オブジェクトの枠座標値に基づいて、まず第１の枠７７を導出し（ステップＳ４０４〜Ｓ４１９）、その後で第２の枠７８（ステップＳ５０１〜Ｓ５０６）を導出した。ここで、他の実施形態においては、選択オブジェクトの枠座標値に基づいて第２の枠７８を直接導出してもよい。具体的には、ステップＳ４０５やステップＳ４１３等において第１の枠７７の辺の位置を設定する際に、所定距離βのマージンを考慮して決定する。これによって、ステップＳ４０４〜Ｓ４１９において第２の枠７８を導出することができる。この場合、ステップＳ５０２およびＳ５０５の処理は不要となる。
【０１０８】
また、本実施形態では、枠設定面を視線方向に垂直な平面とした。しかしながら、枠設定面は視線方向に垂直な平面に限られない。例えば、図４に示したゲーム空間７１においてｙ＝０等の平面を枠設定面とし、ｙ＝０平面上に設定される枠の各頂点を視線方向または視点の方向に延ばした直線上に視体積の各頂点をとるようにしてもよい。なお、ｙ＝０の平面は例であって、３次元ゲーム空間内の任意の平面を枠設定面に設定することができる。
【０１０９】
また、本実施形態では視線方向が予め定められており、当該視線方向に基づいて枠設定面に選択オブジェクトを投影した。ここで、視線方向に代えて視点の位置が予め定められている場合（例えば、図１５のステップＳ１において視点位置が予め定められる。）についても、本発明を適用することが可能である。図２０は、視点位置に基づいて枠設定面に選択オブジェクトを投影する処理を説明する図である。視点７９が予め定められている場合、視点７９の位置に基づいて、選択オブジェクトの枠座標値が決定される。具体的には、ゲーム世界７１における選択オブジェクトの位置と視点７９の位置とを結ぶ直線が枠設定面７６と交わる位置が、選択オブジェクトの枠座標値として設定される。これと同様に、枠座標系７５の原点の位置は、ワールド座標系７２における原点と視点７９の位置とを結ぶ直線が枠設定面７６と交わる位置に設定される。以上のように、視点位置が定められている場合であっても、視線方向が定められている場合と同様、選択オブジェクトの枠座標値を算出することができ、本発明を適用することができる。なお、視点位置が定められている場合において視体積を設定する際には、当該視点位置を用いて透視投影によって視体積を設定することができる。あるいは、当該視点位置と第２の枠とに基づいて視線位置を決定（例えば、視点位置と第２の枠の中心を結ぶ線を視線方向とする。）し、決定した視線位置を用いて平行投影によって視体積を設定することもできる。
【産業上の利用可能性】
【０１１０】
上述したように、本発明に係るゲームシステムおよびゲームプログラムは、複数のオブジェクトを見やすく表示することを目的として利用することが可能である。
【図面の簡単な説明】
【０１１１】
【図１】ゲームシステム１の外観図である。
【図２】ゲーム装置３の機能ブロック図である。
【図３】本実施形態におけるゲームが構成するゲーム空間を示す図である。
【図４】図３に示すゲーム空間７１に設定される枠設定面を示す図である。
【図５】枠設定面７６に各選択オブジェクトの位置を投影する処理を説明する図である。
【図６】枠設定面７６に設定された枠を示す図である。
【図７】第１の枠７７の上辺が移動する様子を示す図である。
【図８】第１の枠７７の下辺が移動する様子を示す図である。
【図９】第１の枠７７の左辺が移動する様子を示す図である。
【図１０】第１の枠７７の右辺が移動する様子を示す図である。
【図１１】第１の枠および第２の枠を示す図である。
【図１２】第２の枠７８のアスペクト比を補正する処理を説明するための図である。
【図１３】表示領域を決定する処理を説明するための図である。
【図１４】ワークメモリ３２のメモリマップを示す図である。
【図１５】本実施形態に係るゲームシステムにおいて実行されるゲーム処理のメインフローチャートである。
【図１６】図１５に示すステップＳ４の詳細な処理の流れを示すフローチャートである。
【図１７】図１５に示すステップＳ４の詳細な処理の流れを示すフローチャートである。
【図１８】図１５に示すステップＳ５の詳細な処理の流れを示すフローチャートである。
【図１９】第１の枠設定処理の変形例を示すフローチャートである。
【図２０】視点位置に基づいて枠設定面に選択オブジェクトを投影する処理を説明する図である。
【符号の説明】
【０１１２】
１  ゲームシステム
３  ゲーム装置
４  光ディスク
３１  ＣＰＵ
７１  ゲーム空間
７６  枠設定面
７７  第１の枠
７８  第２の枠
８１  第１のプレイヤキャラクタ
８２  第２のプレイヤキャラクタ
８３  第３のプレイヤキャラクタ
８４  第１の敵キャラクタ
【図１】
2005040348.tif 000003
【図２】
2005040348.tif 000004
【図３】
2005040348.tif 000005
【図４】
2005040348.tif 000006
【図５】
2005040348.tif 000007
【図６】
2005040348.tif 000008
【図７】
2005040348.tif 000009
【図８】
2005040348.tif 000010
【図９】
2005040348.tif 000011
【図１０】
2005040348.tif 000012
【図１１】
2005040348.tif 000013
【図１２】
2005040348.tif 000014
【図１３】
2005040348.tif 000015
【図１４】
2005040348.tif 000016
【図１５】
2005040348.tif 000017
【図１６】
2005040348.tif 000018
【図１７】
2005040348.tif 000019
【図１８】
2005040348.tif 000020
【図１９】
2005040348.tif 000021
【図２０】
2005040348.tif 000022