JP4159940B2 - ゲームシステムおよびゲームプログラム - Google Patents

ゲームシステムおよびゲームプログラム Download PDF

Info

Publication number
JP4159940B2
JP4159940B2 JP2003277713A JP2003277713A JP4159940B2 JP 4159940 B2 JP4159940 B2 JP 4159940B2 JP 2003277713 A JP2003277713 A JP 2003277713A JP 2003277713 A JP2003277713 A JP 2003277713A JP 4159940 B2 JP4159940 B2 JP 4159940B2
Authority
JP
Japan
Prior art keywords
frame
setting
aspect ratio
game
predetermined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003277713A
Other languages
English (en)
Other versions
JP2005040348A (ja
Inventor
浩一 河本
利明 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2003277713A priority Critical patent/JP4159940B2/ja
Priority to US10/895,078 priority patent/US8840469B2/en
Publication of JP2005040348A publication Critical patent/JP2005040348A/ja
Application granted granted Critical
Publication of JP4159940B2 publication Critical patent/JP4159940B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • A63F13/10
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6653Methods for processing data by generating or executing the game program for rendering three dimensional images for altering the visibility of an object, e.g. preventing the occlusion of an object, partially hiding an object

Description

本発明は、3次元ゲーム空間を表示装置に表示するゲームシステムおよびゲームプログラムに関し、特に、オブジェクトの位置に応じてゲーム空間の表示領域を変更するゲームシステムおよびゲームプログラムに関する。
従来から、3次元のゲーム空間に複数のオブジェクトが登場するゲームは多数存在するが、このようなゲームにおいては、仮想カメラの設定をどのようにするか、特に、ゲーム空間内におけるどの領域を表示領域とするかが重要な問題となる。これら複数のオブジェクトがゲームにおいて重要なオブジェクトであるときに、これら複数のオブジェクトが表示領域から外れないように仮想カメラを設定する必要があるのである。
上記の観点から、複数のオブジェクトが表示領域に含まれるようにゲーム空間の表示領域を変更するゲームシステムが考えられている(例えば、特許文献1参照。)。特許文献1に開示されたゲームシステムでは、画面上に2つの枠を設定し、これらの枠を用いて画像のズームアップおよびズームダウンが行われる。具体的には、選手キャラクタ(オブジェクト)のすべてが内側の枠の内部に存在するときは画像をズームアップし(表示領域を縮小し)、選手キャラクタの1つが外側の枠の外側へ移動するときに画像をズームダウンする(表示領域を拡大する)。これによって、複数のオブジェクト(サッカーボールおよび複数の選手キャラクタ)が表示領域に含まれるようにしている。
上記のゲームシステムでは、表示領域の注視点(ここでは、表示領域の中心点、すなわち、表示画面の中央に表示される点とする。)は、特定の1つのオブジェクトに固定されている。具体的には、上記のゲームシステムはサッカーゲームであるので、サッカーボールのオブジェクトに注視点が固定されている。つまり、サッカーボールが常に画面の中央付近に表示されるように表示領域が決定される。
特許第3185795号明細書
しかし、ゲームの内容によっては、注視点を1つのオブジェクトに固定する方法が適切でない場合も考えられる。例えば、マルチプレイ方式のゲーム(複数のプレイヤが各々のキャラクタを操作するゲーム)のように、プレイヤが注目すると考えられるオブジェクトが1つの画面上に複数存在するゲームの場合である。このようなゲームの場合、あるオブジェクトを注視点に固定すると、そのオブジェクトが画面中央に表示され、そのオブジェクトおよびその周辺の状況が見やすく表示される一方、他のオブジェクトおよびその周辺については必ずしも見やすく表示されるわけではない。
例えば、マルチプレイ方式のゲームの場合、プレイヤが注目するキャラクタは各プレイヤが操作するプレイヤキャラクタであって、各プレイヤはそれぞれ異なるキャラクタに注目すると考えられる。しかし、従来の方法では、その内の1つのキャラクタが注視点に固定されるので、当該キャラクタが常に画面中央に表示されてしまう。このような表示は、画面中央に表示されるキャラクタに注目するプレイヤにとっては見やすい表示であるが、他のキャラクタに注目するプレイヤにとっては見やすい表示とは言えず、プレイヤ間で画面の見やすさに不平等が生じるおそれがある。以上のように、ゲーム空間における特定の1点を注視点とする方法は、注視点となるオブジェクトとそれ以外のオブジェクトとの見やすさが全く異なるので、注目すべきオブジェクトが複数である場合には必ずしも適切であるとは言えない。
それ故、本発明の目的は、複数のオブジェクトを見やすく表示することができるゲームシステムを提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
この発明は、上記の目的を達成するために、次のように構成される。
すなわち、第1の発明は、複数のオブジェクトが登場する仮想的な3次元ゲーム空間(71)を所定の視線(73)方向から、所定のアスペクト比を有する長方形の表示領域を持つ表示装置(テレビ2)に表示させるゲームシステム(1)である。このゲームシステムにおいては、オブジェクトの中から選出された2以上のオブジェクトが選択オブジェクト(第1〜第3のプレイヤキャラクタ81〜83、および第1の敵キャラクタ84)として設定されている。また、ゲームシステムは、視線方向設定手段(ステップS1を実行するCPU31。以下、単にステップ番号のみを示す。)と、枠設定面設定手段(S401)と、枠座標値算出手段(S402)と、枠設定手段(S404〜S419)と、アスペクト比補正手段(S507〜S509)と、表示制御手段(S6およびS7)とを備えている。視線方向設定手段は、視線方向を設定する。枠設定面設定手段は、3次元ゲーム空間内の所定平面である枠設定面(76)を3次元ゲーム空間において設定する。枠座標値算出手段は、枠座標値を算出する。枠座標値は、選択オブジェクトのそれぞれについて、3次元ゲーム空間における当該選択オブジェクトの位置を通り視線方向設定手段によって設定された視線方向に延びる直線と枠設定面が交わる位置を示す。枠設定手段は、枠設定面上に仮想的に設定される枠であって、各選択オブジェクトの枠座標値により示される位置のすべてがその内側に位置する枠(第1の枠77または第2の枠78)を設定する。アスペクト比補正手段は、枠設定手段による設定後の枠のアスペクト比が所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加する。表示制御手段は、アスペクト比補正手段による補正後の枠の各頂点を通り視線方向設定手段によって設定された視線方向に延びる直線上に視体積の各頂点をとり、表示装置にゲーム空間を表示する。
なお、枠設定手段は設定面上に長方形の枠を仮想的に設定してもよい。このとき、ゲームシステムは、移動制御手段と枠変形手段とをさらに備えていてもよい。移動制御手段は、オブジェクトの移動を制御する。枠変形手段は、枠設定手段によって設定された長方形の枠を選択オブジェクトの移動に応じて変形する。枠変形手段は、枠設定面上において、選択オブジェクトの枠座標値により示される位置のすべてが枠の1辺から内側に所定間隔以上離れたときに、当該1辺を当該枠の内側の方向に向かって移動させることによって枠を変形する。
また、枠設定面設定手段は、典型的には、視線方向設定手段によって設定された視線方向に垂直な平面を枠設定面として設定する。
第2の発明は、複数のオブジェクトが登場する仮想的な3次元ゲーム空間を所定の視線方向から、所定のアスペクト比を有する長方形の表示領域を持つ表示装置に表示させるゲームシステムである。このゲームシステムにおいては、オブジェクトの中から選出された2以上のオブジェクトが選択オブジェクトとして設定されている。また、ゲームシステムは、視点位置設定手段と、枠設定面設定手段と、枠座標値算出手段と、枠設定手段と、アスペクト比補正手段と、表示制御手段とを備えている。視点位置設定手段は、視点の位置を設定する。枠設定面設定手段は、3次元ゲーム空間内の所定平面である枠設定面を3次元ゲーム空間において設定する。枠座標値算出手段は、選択オブジェクトのそれぞれについて、3次元ゲーム空間における当該選択オブジェクトの位置と視点位置設定手段によって設定された視点とを結ぶ直線と枠設定面が交わる位置を示す枠座標値を算出する。枠設定手段は、枠設定面上に仮想的に設定される枠であって、各選択オブジェクトの枠座標値により示される位置のすべてがその内側に位置する枠を設定する。アスペクト比補正手段は、枠設定手段による設定後の枠のアスペクト比が所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加する。表示制御手段は、アスペクト比補正手段による補正後の枠の各頂点と視点とを結ぶ直線上に視体積の各頂点をとり、表示装置にゲーム空間を表示する。
また、枠設定手段は設定面上に長方形の枠を仮想的に設定してもよい。このとき、ゲームシステムは、移動制御手段と枠変形手段とをさらに備えていてもよい。移動制御手段は、オブジェクトの移動を制御する。枠変形手段は、枠設定手段によって設定された長方形の枠を選択オブジェクトの移動に応じて変形する。枠変形手段は、枠設定面上において、選択オブジェクトの枠座標値により示される位置のすべてが枠の1辺から内側に所定間隔以上離れたときに、当該1辺を当該枠の内側の方向に向かって移動させることによって枠を変形する。
また、枠変形手段は、枠設定面上において、選択オブジェクトの枠座標値により示される位置のいずれか1つが枠の1辺を超えて当該枠の外側に移動しようとしたときに、当該1辺を当該枠の外側の方向に向かって移動させることによって枠を変形してもよい。
また、ゲームシステムは、枠拡大手段(S404〜S411)をさらに備えていてもよい。枠拡大手段は、枠設定手段による設定後の枠を枠設定面上で上下左右に所定幅だけ拡大する。このとき、アスペクト比補正手段は、枠拡大手段による拡大後の枠のアスペクト比が所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加する。
また、ゲームシステムは、枠変形手段による変形後の枠を枠設定面上で上下左右に所定幅だけ拡大する枠拡大手段をさらに備えていてもよい。このとき、アスペクト比補正手段は、枠拡大手段による拡大後の枠のアスペクト比が所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加する。
さらに、アスペクト比補正手段は、枠設定手段による設定後の枠が補正後の枠の中央に位置するように枠を補正するようにしてもよい。
また、アスペクト比補正手段は、枠変形手段による変形後の枠が補正後の枠の中央に位置するように枠を補正するようにしてもよい。
また、ゲームシステムは、枠変形手段による変形後の枠の縦横の長さが予め定められた長さよりも長くなるように当該枠を補正する枠補正手段をさらに備えていてもよい。このとき、アスペクト比補正手段は、枠補正手段による補正後の枠のアスペクト比が所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加する。
また、ゲームシステムは、複数のプレイヤによってプレイ可能であってもよい。このとき、選択オブジェクトは、複数のプレイヤによって各々操作される複数のプレイヤキャラクタを少なくとも含んでいる。
また、ゲームシステムは、選択オブジェクトを追加または削除する選択オブジェクト変更手段をさらに備えていてもよい。このとき、枠変形手段は、選択オブジェクト変更手段による追加または削除があった場合に、所定の単位時間における枠の1辺の移動距離が所定量を超えないように枠を変形する。
お、第1および第2の発明は、ゲームシステムのコンピュータに実行させるゲームプログラムの形態によって提供されてもよい。すなわち、上記に記載したゲームシステムの機能は、ゲームプログラムによって当該ゲームシステムに与えられる形態であってもよい。
第1または第2の発明によれば、3次元ゲーム空間に仮想的に設定される枠に基づいて表示領域が決定される。このように、注視点を用いずに表示領域(視体積)を決定することによって、特定の1つのオブジェクトのみが常に画面の中央に表示されることを防止することができる。従って、複数のオブジェクトが注目されるゲームであっても、各オブジェクトを同じように表示することができる。すなわち、複数のオブジェクトを見やすく表示することができる。
なお、表示制御手段が変形後の枠の各頂点を通る直線上に視体積の各頂点をとることによって、視線方向に基づいて容易に視体積を決定することができる。
また、枠設定面を視線方向に垂直な平面に設定することによって、枠設定面上における選択オブジェクトと枠との位置関係は、実際に表示されるゲーム画像における選択オブジェクトと表示画面の枠との位置関係と同じになる。従って、実際の表示状態を正確に反映した状態で枠を設定することができるので、枠の設定が容易になる。
また、枠変形手段による変形後の枠の各頂点と視点とを結ぶ直線上に視体積の各頂点をとることによって、視点に基づいて容易に視体積を決定することができる。
また、枠拡大手段によって、画面の端に選択オブジェクトが表示されることを防止することができる。従って、複数の選択オブジェクトをさらに見やすく表示することができる。
また、アスペクト比補正手段によって、枠の縦方向および横方向の長さがともに変化したときのみ、表示領域のサイズが変化することとなる。すなわち、第1の枠の縦方向および横方向の長さのいずれか一方のみが変化した場合には、表示領域のサイズは変更しない。従って、表示領域のサイズが頻繁に変更することをさらに防止することができるので、画面の見づらさをより改善することができる。また、アスペクト比を補正することによって、ゲーム画像が縦または横方向に伸びた画像となることがなく、視体積のニアクリップ面およびファークリップ面の形状は、ゲーム世界のゲーム画像が表示される画面領域と常に同じ形状となる。従って、見やすいゲーム画像を常に表示させることができる。さらに、枠変形手段によって変形された枠が補正後の枠の中央に位置するように枠が補正される場合には、プレイヤにとって必要と思われる情報(選択オブジェクト)が選択オブジェクトが画面の中央付近に表示されることになるので、より見やすくゲーム画面を表示することができる。
また、選択オブジェクトが、複数のプレイヤによって各々操作される複数のプレイヤキャラクタを少なくとも含む場合には、当該プレイヤキャラクタのすべてを見やすく表示することができる。従って、すべてのプレイヤに対して見やすい表示を行うことができる。
以下、本発明の一実施形態に係るゲームシステム1について説明する。図1は、当該ゲームシステム1の外観図である。なお、本発明に係るゲームシステムとして、据置型ゲーム装置を一例に上げて説明するが、本発明に係るゲームシステムはこれに限定されるものではなく、例えば携帯型ゲーム装置、アーケードゲーム装置、携帯端末、携帯電話またはパーソナルコンピュータなどのように、ゲームプログラムを実行するコンピュータを搭載する機器に適用することができる。
図1において、ゲームシステム1は、据置型ゲーム装置(以下、単にゲーム装置と記載する)3と、当該ゲーム装置に接続コードを介して接続される表示装置の一例であるテレビジョン受像機(以下、テレビと記載する)2とを含む構成である。ゲーム装置3には、プレイヤによって操作可能な複数の操作スイッチを有するコントローラ6が接続される。また、ゲーム装置3には、ゲームプログラムを記憶した情報記憶媒体の一例の光ディスク4が着脱自在に装着される。さらに、ゲーム装置3には、ゲームのセーブデータ等を記憶するフラッシュメモリ等を搭載するメモリカード5が必要に応じて着脱自在に装着される。ゲーム装置3は、光ディスク4に記憶されたゲームプログラムを実行することによって得られるゲーム画像をテレビ2に表示する。さらに、ゲーム装置3は、メモリカード5に記憶されたセーブデータを用いて、過去に実行されたゲームの続きを実行したり、過去に実行されたゲーム状態を再現して、ゲーム画像をテレビ2に表示することもできる。そして、ゲーム装置3のプレイヤは、テレビ2に表示されたゲーム画像を見ながら、コントローラ6を操作することによって、ゲームを楽しむことができる。
コントローラ6は、上述したように接続コードを介してゲーム装置3に接続され、その接続コードは、ゲーム装置3に対して着脱自在である。コントローラ6は、テレビ2に表示されるゲーム空間に登場するプレイヤキャラクタ(典型的には、プレイヤの操作対象であるゲーム主人公)を主に操作するための操作手段であり、複数の操作スイッチとして、操作ボタン、キー、およびスティック等の入力部を備えている。具体的には、コントローラ6には、プレイヤによって把持されるグリップ部が形成される。また、コントローラ6は、プレイヤの左手の親指等によって操作可能なメインスティック61aおよび十字キー61dと、右手の親指等によって操作可能なCスティック61cおよびAボタン61b等を含む。なお、コントローラ6は、上記ボタンの他、Bボタン、Xボタン、Yボタン、およびスタート−ポーズボタンや、プレイヤの右手の人差し指等によって操作可能なRボタン、プレイヤの左手の人差し指等によって操作可能なLボタンを含む。例えば、コントローラ6の操作によって後述するゲームを楽しむ場合、メインスティック61は、プレイヤが操作するプレイヤキャラクタのゲーム世界における移動を指示するために用いられる。他の操作スイッチについても、後述するゲーム進行で用いられることがあるが、本発明の説明とは直接関連しないため詳細な説明を省略する。また、ゲームシステム1は、ゲーム装置3に複数のコントローラ6を接続することによって、複数のプレイヤが同時にゲームをプレイすることができる。
次に、図2を参照して、ゲーム装置3の構成について説明する。図2は、ゲーム装置3の機能ブロック図である。図2において、ゲーム装置3は、各種プログラムを実行する例えば128ビットのCPU(セントラルプロセッシングユニット)31を備える。CPU31は、図示しないブートROMに記憶された起動プログラムを実行し、ワークメモリ32等のメモリの初期化等を行った後、光ディスク4に記憶されているゲームプログラムをワークメモリ32に一旦読み込んだ後に当該ゲームプログラムを実行し、そのゲームプログラムに応じたゲーム処理を行うものである。CPU31には、ワークメモリ32、ビデオRAM(VRAM)33、外部メモリインターフェース(I/F)34、コントローラインターフェース(I/F)35、GPU(Graphics Processing Unit)36、および光ディスクドライブ37がバスを介して接続される。
ワークメモリ32は、CPU31で使用される記憶領域であって、CPU31の処理に必要なゲームプログラム等を適宜記憶する。例えば、ワークメモリ32は、CPU31によって光ディスク4から読み出されたゲームプログラムや各種データ等を記憶する(図14参照。)。このワークメモリ32に記憶されたゲームプログラムや各種データ等がCPU31によって実行される。VRAM33は、テレビ2にゲーム画像を表示するためのゲーム画像データを格納する。外部メモリI/F34は、図示しないコネクタにメモリカード5を嵌合させることによってゲーム装置3とメモリカード5とを通信可能に接続する。CPU31は、メモリカード5に設けられたバックアップメモリに外部メモリI/F34を介してアクセスする。コントローラI/F35は、図示しないコネクタによって外部機器とゲーム装置3とを通信可能に接続する。例えば、コントローラ6は、接続コードを介して当該コネクタと嵌合し、コントローラI/F35を介してゲーム装置3と接続される。GPU36は、CPU31からの指示に応じて、例えば、3Dグラフィックスの表示に必要なベクトル演算やレンダリング処理等の処理を行う半導体チップで構成され、当該GPU36によってレンダリングされたゲーム画像はテレビ2に表示される。光ディスクドライブ37は、CPU31からの指示に応じて、光ディスク4に記憶されたゲームプログラム、画像データ、サウンドデータなどの各種のデータを読み出す。
以下、光ディスク4に格納されたゲームプログラムがゲーム装置3によって実行されることによってテレビ2に表示されるゲームについて説明する。ここでは、ゲーム空間内の領域の内、テレビ2に表示される表示領域を決定する方法について主に説明する。また、以下に説明するゲームは、複数のプレイヤによってプレイ可能なゲームであるとする。具体的には、3人のプレイヤ(第1〜第3のプレイヤ)が、ゲームに登場する3つのプレイヤキャラクタ(第1〜第3のプレイヤキャラクタ)を各々操作するものとする。従って、図1には図示していないが、本実施形態においては、コントローラ6の他に少なくとも2つのコントローラがゲーム装置3にさらに接続されているものとする。また、第1のプレイヤによって使用されるコントローラを第1のコントローラ、第2のプレイヤによって使用されるコントローラを第2のコントローラ、第3のプレイヤによって使用されるコントローラを第3のコントローラと呼ぶ。
まず、本発明に係るゲームシステム1において行われる表示領域の決定方法について概要を説明する。当該方法では、ゲーム空間内において仮想的に設定される枠(後述する第1および第2の枠)に基づいて、表示領域が設定される。当該枠は、表示すべきオブジェクト(後述する選択オブジェクト)が当該枠の内部に表示されるように設定される。そして、当該枠内の領域が少なくとも表示されるように、表示領域が決定される。これによって、表示すべきオブジェクトが表示領域内に位置することとなるので、当該オブジェクトをテレビ2に表示することができる。以下、本発明に係るゲームシステム1において行われる表示領域の決定方法の詳細を、図3〜図11を用いて説明する。
図3は、本実施形態におけるゲームが構成するゲーム空間を示す図である。ゲームシステム1では、仮想的なゲーム空間71を視線73の方向から見たゲーム画面がテレビ2に表示される。なお、本実施形態では、視線73の方向は予め定められている。ゲーム空間71には、複数のオブジェクトが登場する。図3においては、ゲーム空間71には、プレイヤによって操作されるプレイヤキャラクタ81〜83、およびゲーム装置3において動作が制御される第1の敵キャラクタ84が示されている。ここで、第1のプレイヤキャラクタ81は、第1のプレイヤによって操作され、第2のプレイヤキャラクタ82は、第2のプレイヤによって操作され、第3のプレイヤキャラクタ83は、第3のプレイヤによって操作される。また、ゲーム空間71は3次元ゲーム空間であるので、各オブジェクト(第1〜第3のプレイヤキャラクタ81〜83および第1の敵キャラクタ84等)の当該3次元ゲーム空間における位置は、3次元のワールド座標系72を用いて表現される。すなわち、各オブジェクトのゲーム空間71における位置は、3次元の座標値(x,y,z)によって表現される。当該3次元の座標値を、ワールド座標値と呼ぶ。
本実施形態において、ゲーム空間71に登場するオブジェクトには、選択オブジェクトおよび非選択オブジェクトの2種類が存在する。選択オブジェクトは、表示領域を決定するための基準となるオブジェクトである。選択オブジェクトには、ゲーム空間71に登場するオブジェクトの中から選出された2以上のオブジェクトが設定される。本実施形態においては、オブジェクトの種類(選択オブジェクトであるか非選択オブジェクトであるか)は、ゲームに登場する各オブジェクトについて予め設定されているものとする。なお、プレイヤが注目すると想定されるオブジェクトは、選択オブジェクトとして設定することが好ましい。なぜなら、表示領域は、すべての選択オブジェクトを表示するように決定される(ただし、例外があってもよい。後述する図19参照。)からである。本実施形態では、上記プレイヤキャラクタ81〜83および第1の敵キャラクタ84が選択オブジェクトとして設定されるものとする。また、後述する第2の敵キャラクタ85は、非選択オブジェクトであるとする。例えば、第1の敵キャラクタ84はゲームシナリオの進行上重要な意味を持つボスキャラクタ等であり、第2の敵キャラクタ85はゲーム空間中に多数存在するような一般的な敵キャラクタ等としてもよい。
図4は、図3に示すゲーム空間に設定される枠設定面を示す図である。図4において、ゲーム空間71には、枠設定面76が設定される。枠設定面76は、上記枠が設定される平面である。枠設定面76は、視線73に垂直となるように設定される。さらに、本実施形態では、枠設定面76の位置は次のように設定される。すなわち、まず、各選択オブジェクトについて、3次元の座標値を視線73に平行な座標軸73’に垂直に下ろした位置(第1の敵キャラクタ84について言えば、図4に示すQ)が算出される。さらに、各選択オブジェクトについての当該位置の内、視線73の方向を正とした場合の最小位置が特定される。枠設定面76は、当該最小位置から視線73の逆方向に関して所定距離Lだけ離れた位置に設定される。
また、図4において、枠設定面76における位置を示すための枠座標系75(2次元)が設定される。枠座標系75の原点75aは、ワールド座標系72の原点72aを枠設定面76に投影した点に設定される。具体的には、原点72aを視線73の方向に伸びる直線と枠設定面76との交点を原点75aとする。枠座標系75のX軸およびY軸は、予め定められた所定の方向に設定される。なお、本実施形態では、X軸方向が表示領域の横方向と一致し、Y軸方向が表示領域の縦方向と一致する。なお、ここでは、ワールド座標系72と枠座標系75とを明確に区別する目的で、ワールド座標系72はアルファベット小文字(x軸、y軸およびz軸)で記載し、枠座標系75はアルファベット大文字(X軸およびY軸)で記載する。
図5は、枠設定面に各選択オブジェクトの位置を投影する処理を説明する図である。枠設定面76および枠座標系75が設定された後、枠設定面76に各選択オブジェクトの位置が投影される。選択オブジェクトが枠設定面76に投影された位置とは、ワールド座標値により示される位置を通り視線73の方向に延びる直線と枠設定面76との交点の位置である。ここで、選択オブジェクトが枠設定面76に投影された位置の座標値を、枠座標値と呼ぶ。なお、本実施形態においては、ゲーム装置3は、枠座標値を2次元の枠座標系75によって表現する。具体的には、プレイヤキャラクタ81のワールド座標値(x’,y’,z’)を枠設定面76に投影した点の座標値が、プレイヤキャラクタ81の枠座標値(X’,Y’)として算出される。また、他のプレイヤキャラクタ82および83、ならびに第1の敵キャラクタ84の枠座標値もプレイヤキャラクタ81の枠座標値と同様に算出される。以上のように、本実施形態では、3次元のワールド座標系72を2次元の枠座標系75に変換して枠座標値を表現することによって、後述する枠の設定処理を容易に行うことができる。なお、他の実施形態では、枠座標値をワールド座標系72によって表現してもよい。
図6は、枠設定面76に設定された枠を示す図である。なお、図6は、視線73の方向から枠設定面76を見た図である。各選択オブジェクトについて枠座標値が算出された後、ゲーム装置3は、枠設定面76に第1の枠77を設定する。なお、第1の枠77は、枠設定面76において仮想的に設定されるものである。従って、第1の枠77は、ゲーム画面には表示されない。本実施形態においては、第1の枠77の形状は長方形(正方形を含む。)である。さらに、第1の枠77は、2辺が枠座標系75のX軸に並行であり、他の2辺がY軸に平行な長方形である。従って、実際の処理においては、第1の枠77を、長方形における対角線に位置する2つの頂点の位置(図6における(Xa,Yb)および(Xb,Ya))を示す枠座標値によって表現することができる。これによって、第1の枠77の上辺77aの位置がYb、下辺77bの位置がYa、左辺77cの位置がXa、右辺の位置がXbによって示されることとなる。なお、以降の説明において、X軸方向を横方向と呼び、Y軸方向を縦方向と呼ぶことがある。
第1の枠77は、各選択オブジェクトの枠座標値により示される位置が当該第1の枠77の内部に含まれるように設定される。つまり、第1の枠77は、視線73の方向から見て選択オブジェクトが第1の枠77の内側に位置するように設定される。さらに、ゲーム処理中においては、ゲーム装置3は、選択オブジェクトの移動に応じて、各辺を独立して移動することによって第1の枠77を変形する。以下、本実施形態における当該処理の詳細を図7〜図10を用いて説明する。
図7は、第1の枠77の上辺が移動する様子を示す図である。図7において、プレイヤキャラクタ81が図7における下方向に移動しているものとする。プレイヤキャラクタ81が当該下方向に移動した結果、第1の枠77の上辺77aから枠の内側へ所定間隔αだけ離れた領域に選択オブジェクトが存在しなくなった場合、第1の枠77の上辺77aは、第1の枠77の内側(図7における下方向)へ所定距離k(k<α)だけ移動される。
図8は、第1の枠77の下辺が移動する様子を示す図である。図8において、プレイヤキャラクタ83が図8における上方向に移動しているものとする。この場合も図7と同様、第1の枠77の下辺77bから枠の内側へ所定間隔αだけ離れた領域に選択オブジェクトが存在しなくなった場合、第1の枠77の下辺77bは、第1の枠77の内側(図7における上方向)へ所定距離kだけ移動される。
また、図9は、第1の枠77の左辺が移動する様子を示す図であり、図10は、第1の枠77の右辺が移動する様子を示す図である。図9および図10の場合も、図7および図8と同様である。すなわち、選択オブジェクトの移動の結果、第1の枠77の左辺77cまたは右辺77dから第1の枠77の内側へ所定間隔αだけ離れた領域に選択オブジェクトが存在しなくなった場合、第1の枠77の左辺77cまたは右辺77dが第1の枠77の内側へ所定距離kだけ移動される。
また、ある選択オブジェクトが第1の枠77の外側へ移動しようとしている場合には、第1の枠77の各辺は、当該移動に応じて枠の外側へ移動される。例えば、プレイヤキャラクタ81aが上辺77aを超えて外側(図7で言えば上方)に移動しようとしたときには、プレイヤキャラクタ81aが第1の枠77の内側に含まれるように、上辺77aは外側(図7で言えば上方)に移動する。また、下辺77bを超えて外側(図7で言えば下方)に移動しようとしたときには、下辺77bは外側(図7で言えば下方)に移動する。さらに、左辺77cを超えて外側(図7で言えば左方)に移動しようとしたときには、左辺77cは外側(図7で言えば左方)に移動する。さらに、右辺77dを超えて外側(図7で言えば右方)に移動しようとしたときには、右辺77dは外側(図7で言えば右方)に移動する。具体的には、ゲーム装置3は、第1の枠77の外側へ移動しようとしている選択オブジェクトの位置に第1の枠77の辺が位置するように移動する。以上によって、ゲーム装置3は、枠設定面上において、選択オブジェクトが第1の枠77の内側に位置するように第1の枠77を制御する。また、第1の枠77は、選択オブジェクトの移動に応じて各辺ごとに独立して移動する。ここで、以上のように設定された第1の枠77を、第1の枠と呼ぶ。なお、後述するように、表示領域は、第1の枠77内の領域が少なくとも表示されるように決定される。従って、選択オブジェクトは必ずゲーム画面に表示されることとなる。
第1の枠77が設定されると、ゲーム装置3は、第1の枠77に基づいて第2の枠を設定する。図11は、第1の枠および第2の枠を示す図である。図11において、第2の枠78は、第1の枠77に所定距離βのマージンを設けることによって得られる。具体的には、第2の枠78は、第1の枠77を外側に所定距離βだけ拡大することによって得られる。図11から明らかなように、第2の枠78と各選択オブジェクトとの間には、少なくとも所定距離βの間隔が設けられる。なお、表示領域は、第2の枠78内の領域が少なくとも表示されるように決定される。従って、選択オブジェクトは、ゲーム画面の端から少なくとも所定距離βだけ離れて表示されることとなる。これによって、ゲーム画面の端に選択オブジェクトが表示されることを防止することができる。
なお、上述の図6から図11では、第1の枠77および第2の枠78の形状は、テレビ2の画面の内、ゲーム世界71のゲーム画像が表示される画面領域の形状とほぼ等しい形状として記載した。しかし、第1の枠77および第2の枠78の形状は、選択オブジェクトの位置に応じて設定されるので、当該画面領域の形状と必ずしも等しい形状になるとは限らない。つまり、第1の枠77および第2の枠78のアスペクト比(=縦の長さ/横の長さ)は、選択オブジェクトの位置に応じて可変であり、画面領域のアスペクト比(予め定められた一定値)と等しくならない場合がある。そこで、第2の枠78が設定された後、ゲーム装置3は、第2の枠78のアスペクト比を画面領域のアスペクト比と等しくなるように補正する。
図12は、第2の枠78のアスペクト比を補正する処理を説明するための図である。図12(a)は、第2の枠78が横方向に長い(アスペクト比が大きい)場合における処理を説明するための図である。なお、図12において、点線は補正が行われる前の第2の枠78を示す。図12(a)のように、第2の枠78が横方向に長い(アスペクト比が大きい)場合、第2の枠78の縦サイズ(縦方向の長さ)が補正される。具体的には、表示領域のアスペクト比をA、第2の枠78の横サイズ(横方向の長さ)をL1とすると、補正後の第2の枠78の縦サイズL2は、L2=L1/Aとなるように補正される。さらに、第2の枠78の縦サイズは、上側と下側とで同じ長さだけ長くなるように補正される。
一方、図12(b)は、第2の枠78が縦方向に長い(アスペクト比が小さい)場合における処理を説明するための図である。図12(b)のように、第2の枠78が縦方向に長い(アスペクト比が小さい)場合、第2の枠78の横サイズが補正される。具体的には、補正後の第2の枠78の横サイズL1は、L1=L2×Aとなるように補正される。さらに、第2の枠78の横サイズは、左側と右側とで同じ長さだけ長くなるように補正される。
なお、図12においては、非選択オブジェクトである第2の敵キャラクタ85が示されている。図12に示すように、アスペクト比を補正した結果、非選択オブジェクトが第2の枠78に含まれることもあるが、枠の設定処理と非選択オブジェクトの位置とは無関係である。つまり、枠の設定処理において、非選択オブジェクトの位置は考慮されない。
以上の処理によって、表示領域を決定するために用いられる第2の枠78が枠設定面76において設定される。第2の枠78が設定されると、ゲーム装置3は、第2の枠78に基づいて視体積を決定する。視体積とは、画面に表示する対象となるゲーム空間の範囲を示し、ニアクリップ面の各頂点とファークリップ面の各頂点とによって囲まれる空間である。つまり、第2の枠78に基づいてニアクリップ面およびファークリップ面の各頂点を決定することによって、視体積が決定される。具体的には、第2の枠78の各頂点から所定方向に延びる直線と、ニアクリップ位置で視線方向に垂直な平面との交点がニアクリップ面の各頂点に設定され、当該直線とファークリップ位置で視線方向に垂直な平面との交点がファークリップ面の各頂点に設定される。このように視体積を決定することによって、視点から見たときに第2の枠78内に含まれる領域がゲーム画像として表示されることになる。表示領域の決定するための典型的な方法としては、平行投影および透視投影がある。以下、平行投影および透視投影によって表示領域を決定する処理の詳細を説明する。
図13は、表示領域を決定する処理を説明するための図である。図13(a)は、平行投影によって表示領域を決定する処理を説明するための図である。平行投影では、第2の枠78の各頂点を通り視線73の方向に延びる直線と、ニアクリップ位置で視線方向に垂直な平面との交点が、ニアクリップ面91の各頂点に設定される。また、当該直線とファークリップ位置で視線方向に垂直な平面との交点がファークリップ面92の各頂点に設定される。これによって、ゲーム空間71における領域の内、ニアクリップ面91とファークリップ面92とを底面とする直方体によって切り取られる領域が、表示領域すなわち視体積として決定される。
また、図13(b)は、透視投影によって表示領域を決定する処理を説明するための図である。透視投影では、まず視点93の位置を決定する。視点93とは、ゲーム空間71に設定される仮想カメラの位置である。つまり、第2の枠78に基づいて視点93の位置を決定する。具体的には、視点93の位置は、第2の枠78の中心から視線73と逆方向に伸びる直線上の位置であって、視点93と、X方向の画角θ1によって決まる位置に決定される。なお、視点位置は、X方向の画角θ1の代わりにY方向の画角θ2を用いても決定することができる。このようにして視点が決定された後、第2の枠78の各頂点と視点を結ぶ直線とニアクリップ位置で視線方向に垂直な平面との交点がニアクリップ面91の各頂点に設定される。また、当該直線とファークリップ位置で視線方向に垂直な平面との交点がファークリップ面92の各頂点に設定される。これによって、表示領域すなわち視体積が決定される。
なお、上記の説明において、第2の枠78に対してアスペクト比の補正を行わないとすると、視体積のニアクリップ面およびファークリップ面の形状は、アスペクト比の補正が行われる前の第2の枠78の形状と同じになる。従って、ニアクリップ面およびファークリップ面の形状(アスペクト比)は、ゲーム世界71のゲーム画像が表示される画面領域とは異なる形状(アスペクト比)となるおそれがある。もし異なる形状となる場合には、視体積に含まれる領域は、画面領域の形状に合わせて変形されて表示される。例えば、第2の枠78の形状が横方向に長い形状である場合、視体積に含まれる領域は、縦方向に伸張されて表示されることになる。同様に、例えば第2の枠78の形状が縦方向に長い形状である場合、視体積に含まれる領域は、横方向に伸張されて表示されることになる。従って、アスペクト比の補正を行わないとすると、ゲーム画像は、縦または横方向に伸びた画像となるおそれがあり、このような画像は見やすい画像であるとは言えない。これに対して、本実施形態では、アスペクト比を補正することによって、視体積のニアクリップ面およびファークリップ面の形状は、上記画面領域と常に同じ形状となる。従って、見やすいゲーム画像を常に表示させることができる。
次に、図14〜図19を参照して、ゲーム装置3によって実行されるゲーム処理について説明する。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU31は、図示しないブートROMに記憶されている起動プログラムを実行し、ワークメモリ32等の各ユニットが初期化される。そして、光ディスク4に格納されたゲームプログラムが光ディスクドライブ37を介してワークメモリ32に読み込まれ、当該ゲームプログラムの実行が開始される。その結果、GPU36を介してテレビ2にゲーム空間が表示されることによって、ゲームが開始される。図15で示されるフローチャートは、以上の処理動作以降の処理を示している。
ゲーム処理の詳細を説明する前に、当該ゲーム処理において用いるためにワークメモリ32に格納されるデータについて説明する。図14は、ワークメモリ32のメモリマップを示す図である。ワークメモリ32には、キャラクタワールド座標データ321、キャラクタ枠座標データ322、第1の枠データ323、第2の枠データ324、および表示サイズデータ325等が格納される。なお、図14では、本発明の処理に関連するデータのみを示し、その他のデータ(例えば、オブジェクトの画像データ等)は図示していない。
キャラクタワールド座標データ321は、各キャラクタ(オブジェクト)のワールド座標系72における位置、すなわち、ワールド座標値(x,y,z)を示すデータである。キャラクタワールド座標データ321には、第1から第3のプレイヤキャラクタ81〜83のワールド座標値を示すデータの他、第1の敵キャラクタ84および第2の敵キャラクタ85のワールド座標値を示すデータも含まれる。つまり、キャラクタワールド座標データ321には、非選択オブジェクトのワールド座標値を示すデータも含まれる。
キャラクタ枠座標データ322は、各選択オブジェクトの枠座標系75における位置、すなわち、枠座標値(X,Y)を示すデータである。なお、キャラクタ枠座標データ322には、キャラクタ枠座標データ322には、選択オブジェクトである第1から第3のプレイヤキャラクタ81〜83および第1の敵キャラクタ84の枠座標値を示すデータが含まれる。
第1の枠データ323は、第1の枠77を示すデータである。上述のように本実施形態においては枠の形状は長方形であるので、枠座標系75における第1の枠77の位置および大きさは、対角線に位置する2つの頂点の位置によって表現することができる。ここでは、左上の頂点の座標値(図6に示す(Xa,Yb))と、右下の頂点の座標値(図6に示す(Xb,Ya))とによって第1の枠77を表現する。
第2の枠データ324は、第2の枠78を示すデータである。第2の枠78も第1の枠77と同様、その位置および大きさは、対角線に位置する2つの頂点の位置によって表現することができる。ここでは、左上の頂点の座標値(Xc,Yd)と、右下の頂点の座標値(Xd,Yc)とによって第2の第1の枠77を表現する。
表示サイズデータ325は、第2の枠78の縦サイズおよび横サイズを示すデータである。第2の枠78の縦サイズL2を示すデータは、上記第2の枠データ324から得ることができる。具体的には、L2=Yd−Ycである。枠の横サイズL1も縦サイズと同様、上記第2の枠データ324から得ることができ、L1=Xd−Xcである。
以下、ゲーム処理を詳細に説明する。図15は、本実施形態に係るゲームシステムにおいて実行されるゲーム処理のメインフローチャートである。まず、ステップS1において、CPU31は、ゲーム処理の初期設定を行う。具体的には、視線73の方向、ゲーム空間71における各プレイヤキャラクタ81〜83の初期位置、ゲーム空間71における各敵キャラクタ(第1の敵キャラクタ84および第2の敵キャラクタ85等)の初期位置、および枠(第1の枠77および第2の枠78)の初期位置等を設定する。ここで、枠の初期位置は、選択オブジェクトである各プレイヤキャラクタ81〜83および第1の敵キャラクタ84の初期位置に基づいて、図6、図11および図12において説明した方法によって予め定められた位置に設定される。また、上記ステップS1の初期設定において設定されたデータは、ワークメモリ32に書き込まれる。各プレイヤキャラクタ81〜83の初期位置および各敵キャラクタの初期位置は、キャラクタワールド座標データ321としてワークメモリ32に書き込まれる。また、第1の枠77および第2の枠78の初期位置は、第1の枠データ323および第2の枠データ324としてワークメモリ32に書き込まれる。
ステップS1の初期設定が終了すると、以降、ステップS2〜S7の処理が繰り返される。ステップS2〜S7のループは、ゲーム画像の1フレーム間に行われる処理である。まず、ステップS2において、CPU31は、コントローラ6からのプレイヤの操作入力に基づいて、ゲーム空間71における各プレイヤキャラクタ81〜83の移動を制御する。具体的には、第1のコントローラからの操作入力に基づいて、第1のプレイヤキャラクタ81のゲーム空間71における位置を決定する。すなわち、プレイヤキャラクタ81に関するワールド座標値を算出し、ワークメモリ32のキャラクタワールド座標データ321の内容を、算出されたワールド座標値に更新する。なお、第1のプレイヤキャラクタ81と同様の方法で、第2のプレイヤキャラクタ82のゲーム空間71における位置は、第2のコントローラからの操作入力に基づいて決定され、第3のプレイヤキャラクタ83のゲーム空間71における位置は、第3のコントローラからの操作入力に基づいて決定される。
次に、ステップS3において、CPU31は、ゲーム空間71における各敵キャラクタの移動を制御する。具体的には、予め定められたアルゴリズムに従って、各敵キャラクタのゲーム空間71における位置を決定する。すなわち、各敵キャラクタに関するワールド座標値を算出し、ワークメモリ32のキャラクタワールド座標データ321の内容を、算出されたワールド座標値に更新する。
なお、上記ステップS2およびS3においては、「キャラクタの移動」は、「キャラクタの追加」および「キャラクタの削除」を含む概念とする。つまり、ステップS2およびS3において、ゲーム空間71において新たなキャラクタが登場してもよいし、それまで登場していたキャラクタが消滅してもよい。また、キャラクタの追加または削除が行われる条件はどのようなものであってもよい。例えば、プレイヤキャラクタがあるアイテムを取得したことを条件として、新たな敵キャラクタが登場するようにしたり、プレイヤキャラクタの体力値(属性データとして予め設定されているものとする)が0になったことを条件として当該プレイヤキャラクタが消滅するようにすることが考えられる。
以上のステップS2およびS3によって、次のフレーム(次のステップS7において表示されるゲーム画像)における各キャラクタの位置が決定される。そして、次のステップS4およびS5において枠が設定され、ステップS6において枠に基づいて視体積が設定され、設定された視体積についてのゲーム画像がステップS7において表示されるのである。まず、ステップS4において、第1の枠設定処理が行われる。図16および図17は、図15に示すステップS4の詳細な処理の流れを示すフローチャートである。第1の枠設定処理では、まずステップS401において、CPU31は、ゲーム空間71において枠設定面76を設定する(図4参照。)。また、この際、枠座標系75も設定される。
次に、ステップS402およびS403において、ステップS401において設定された枠設定面76に各選択キャラクタが投影される(図5参照。)。すなわち、ステップS402において、CPU31は、選択キャラクタのワールド座標値から当該選択キャラクタの枠座標値を算出する。具体的には、ワークメモリ32に記憶されている選択キャラクタのワールド座標値に基づいて当該選択キャラクタの枠座標値を算出する。算出された各選択キャラクタの枠座標値は、キャラクタ枠座標データ322としてワークメモリ32に書き込まれる。続くステップS403において、すべての選択キャラクタについて枠座標値が算出されたか否かが判定される。この判定において、すべての選択キャラクタの枠座標値が算出されている場合、処理はステップS404に進む。一方、すべての選択キャラクタの枠座標値が算出されていない場合、処理はステップS402に戻る。つまり、すべての選択キャラクタの枠座標値が算出されるまで、CPU31はステップS402およびS403の処理を繰り返す。
以上のステップS402およびS403の処理によって、枠設定面76における各選択キャラクタの位置が算出されるので、選択キャラクタと第1の枠77との位置関係を枠設定面76上で判定することができる(図6参照。)。そこで、以降のステップS404〜S419において、第1の枠77を変形させる必要があるか否かの判定、および、その必要がある場合には第1の枠77の変形が行われる。まず、ステップS404〜S411において、第1の枠77の拡大変形に関する処理が行われる。その後、ステップS412〜S419において、第1の枠77の縮小変形に関する処理が行われる。
まず、ステップS404において、第1の枠77の上辺77aから外側(ここでは、Y軸の正の方向)に出た選択キャラクタがあるか否かが判定される。具体的には、CPU31は、ワークメモリ32に格納されている第1の枠データ323における左上座標(Xa,Yb)のYbの値と、ワークメモリ32に格納されているキャラクタ枠座標データ322における各選択キャラクタのY座標の値とを比較する。そして、Y座標の値がYbの値よりも大きい選択キャラクタがあるか否かを判定する。この判定の結果、Y座標の値がYbの値よりも大きい選択キャラクタがある場合、当該選択キャラクタは第1の枠77の外側に出たと判断され、ステップS405の処理が行われる。一方、Y座標の値がYbの値よりも大きい選択キャラクタがない場合、第1の枠77の外側に出た選択キャラクタはないと判断され、ステップS406の処理が行われる。
なお、上記ステップS404において、各選択キャラクタが第1の枠77の上辺77aから所定距離だけ外側に出たか否かを判定するようにしてもよい。これによって、第1の枠77を移動させる頻度を下げることになるので、表示領域が移動する頻度を下げることができる。従って、より見やすいゲーム画面を表示することができる。以下のステップS406、S408およびS410についてもS404と同様である。
ステップS405においては、上辺77aの移動が行われる。具体的には、上辺77aは、第1の枠77の外側に出たと判断された選択キャラクタの位置に移動される。すなわち、ワークメモリ32に格納されている第1の枠データ323におけるYbの値は、当該選択キャラクタのY座標の値に更新される。ステップS405の処理の後、ステップS406の処理が行われる。
ステップS406においては、第1の枠77の下辺77bから外側(ここでは、Y軸の負の方向)に出た選択キャラクタがあるか否かが判定される。具体的な判定方法は、ステップS404と同様である。すなわち、第1の枠データ323における右下座標(Xb,Ya)のYaの値と、キャラクタ枠座標データ322における各選択キャラクタのY座標の値とが比較される。そして、Y座標の値がYaの値よりも小さい選択キャラクタがあるか否かによって、第1の枠77から出た選択キャラクタがあるか否かを判断する。ステップS406の判定の結果、第1の枠77から外側に出た選択キャラクタがある場合、ステップS407の処理が行われる。一方、第1の枠77から外側に出た選択キャラクタがない場合、ステップS408の処理が行われる。
ステップS407においては、下辺77bの移動が行われる。具体的には、下辺77bは、第1の枠77から外側に出たと判断された選択キャラクタの位置に移動される。すなわち、第1の枠データ323におけるYaの値は、当該選択キャラクタのY座標の値に更新される。ステップS407の処理の後、ステップS408の処理が行われる。
ステップS408においては、第1の枠77の右辺77dから外側(ここでは、X軸の正の方向)に出た選択キャラクタがあるか否かが判定される。具体的な判定方法は、ステップS404と同様であり、第1の枠データ323における右下座標(Xb,Ya)のXbの値と、キャラクタ枠座標データ322における各選択キャラクタのX座標の値とが比較される。そして、X座標の値がXbの値よりも大きい選択キャラクタがあるか否かによって、第1の枠77から出た選択キャラクタがあるか否かを判断する。ステップS408の判定の結果、第1の枠77から外側に出た選択キャラクタがある場合、ステップS409の処理が行われる。一方、第1の枠77から外側に出た選択キャラクタがない場合、ステップS410の処理が行われる。
ステップS409においては、右辺77dの移動が行われる。具体的には、右辺77dは、第1の枠77から外側に出たと判断された選択キャラクタの位置に移動される。すなわち、第1の枠データ323におけるXbの値は、当該選択キャラクタのX座標の値に更新される。ステップS409の処理の後、ステップS410の処理が行われる。
ステップS410においては、第1の枠77の左辺77cから外側(ここでは、X軸の負の方向)に出た選択キャラクタがあるか否かが判定される。具体的な判定方法は、ステップS404と同様であり、第1の枠データ323における左上座標(Xa,Yb)のXaの値と、キャラクタ枠座標データ322における各選択キャラクタのX座標の値とが比較される。そして、X座標の値がXaの値よりも小さい選択キャラクタがあるか否かによって、第1の枠77から出た選択キャラクタがあるか否かを判断する。ステップS410の判定の結果、第1の枠77から外側に出た選択キャラクタがある場合、ステップS411の処理が行われる。一方、第1の枠77から外側に出た選択キャラクタがない場合、ステップS412の処理が行われる。
ステップS411においては、左辺77cの移動が行われる。具体的には、左辺77cは、第1の枠77から外側に出たと判断された選択キャラクタの位置に移動される。すなわち、第1の枠データ323におけるXaの値は、当該選択キャラクタのX座標の値に更新される。ステップS411の処理の後、ステップS412の処理が行われる。
図17に示すステップS412〜S419の処理は、枠の縮小変形に関する処理である。まず、ステップS412において、すべての選択キャラクタが第1の枠77の上辺77aから内側(ここでは、Y軸の負の方向)に所定間隔α離れた位置にあるか否かが判定される。具体的には、CPU31は、第1の枠データ323における左上座標(Xa,Yb)のYbの値と、キャラクタ枠座標データ322における各選択キャラクタのY座標の値とを比較する。そして、すべての選択キャラクタのY座標の値がYb−αよりも小さいか否かを判定する。この判定の結果、すべての選択キャラクタのY座標の値がYb−αよりも小さい場合、すべての選択キャラクタが上辺77aから内側に所定間隔α離れた位置にあると判断され、ステップS413の処理が行われる。一方、少なくとも1つの選択キャラクタのY座標の値がYb−αよりも大きい場合、少なくとも1つの選択キャラクタが上辺77aから所定間隔α以内の位置にあると判断され、ステップS414の処理が行われる。
ステップS413においては、上辺77aの移動が行われる(図7参照。)。具体的には、上辺77aは、第1の枠77の内側に所定距離kだけ移動される。すなわち、第1の枠データ323におけるYbの値は、k減算された値に更新される。ステップS413の処理の後、ステップS414の処理が行われる。
ステップS414においては、すべての選択キャラクタが第1の枠77の下辺77bから内側(ここでは、Y軸の正の方向)に所定間隔α離れた位置にあるか否かが判定される。具体的な判定方法は、ステップS412と同様である。すなわち、第1の枠データ323における右下座標(Xb,Ya)のYaの値と、キャラクタ枠座標データ322における各選択キャラクタのY座標の値とが比較される。そして、すべての選択キャラクタのY座標の値がYa+αよりも大きいか否かによって、すべての選択キャラクタが下辺77bから内側に所定間隔α離れた位置にあるか否かを判断する。ステップS414の判定の結果、すべての選択キャラクタが下辺77bから内側に所定間隔α離れた位置にある場合、ステップS415の処理が行われる。一方、少なくとも1つの選択キャラクタが下辺77bから所定間隔α以内の位置にある場合、ステップS416の処理が行われる。
ステップS415においては、下辺77bの移動が行われる(図8参照。)。具体的には、下辺77bは、第1の枠77の内側に所定距離kだけ移動される。すなわち、第1の枠データ323におけるYaの値は、k加算された値に更新される。ステップS415の処理の後、ステップS416の処理が行われる。
ステップS416においては、すべての選択キャラクタが第1の枠77の右辺77dから内側(ここでは、X軸の負の方向)に所定間隔α離れた位置にあるか否かが判定される。具体的な判定方法は、ステップS412と同様であり、第1の枠データ323における右下座標(Xb,Ya)のXbの値と、キャラクタ枠座標データ322における各選択キャラクタのX座標の値とが比較される。そして、すべての選択キャラクタのX座標の値がXb−αよりも小さいか否かによって、すべての選択キャラクタが右辺77dから内側に所定間隔α離れた位置にあるか否かを判断する。ステップS416の判定の結果、すべての選択キャラクタが右辺77dから内側に所定間隔α離れた位置にある場合、ステップS417の処理が行われる。一方、少なくとも1つの選択キャラクタが右辺77dから所定間隔α以内の位置にある場合、ステップS418の処理が行われる。
ステップS417においては、右辺77dの移動が行われる(図9参照。)。具体的には、右辺77dは、第1の枠77の内側に所定距離kだけ移動される。すなわち、第1の枠データ323におけるXbの値は、k減算された値に更新される。ステップS417の処理の後、ステップS418の処理が行われる。
ステップS418においては、すべての選択キャラクタが第1の枠77の左辺77cから内側(ここでは、X軸の正の方向)に所定間隔α離れた位置にあるか否かが判定される。具体的な判定方法は、ステップS412と同様であり、第1の枠データ323における左上座標(Xa,Yb)のXaの値と、キャラクタ枠座標データ322における各選択キャラクタのX座標の値とが比較される。そして、すべての選択キャラクタのX座標の値がXa+αよりも大きいか否かによって、すべての選択キャラクタが左辺77cから内側に所定間隔α離れた位置にあるか否かを判断する。ステップS416の判定の結果、すべての選択キャラクタが左辺77cから内側に所定間隔α離れた位置にある場合、ステップS419の処理が行われる。一方、少なくとも1つの選択キャラクタが左辺77cから所定間隔α以内の位置にある場合、CPU31は、第1の枠設定処理を終了する。
ステップS419においては、左辺77cの移動が行われる(図10参照。)。具体的には、左辺77cは、第1の枠77の内側に所定距離kだけ移動される。すなわち、第1の枠データ323におけるXaの値は、k加算された値に更新される。ステップS419の処理の後、CPU31は、第1の枠設定処理を終了する。以上の第1の枠設定処理によって、第1の枠77が設定されたことになる。
図15の説明に戻り、第1の枠設定処理(ステップS4)の後、ステップS5において第2の枠設定処理が行われる。第2の枠設定処理は、ステップS4において設定された第1の枠77に基づいて第2の枠78を設定するための処理である。図18は、図15に示すステップS5の詳細な処理の流れを示すフローチャートである。第2の枠設定処理では、まずステップS501〜S506において、第1の枠77に基づいて第2の枠78が設定される。さらに、ステップS507〜S509において、第2の枠78のアスペクト比が補正される。
図18において、まず、ステップS501において、第1の枠77の縦サイズが所定値Laよりも大きいか否かが判定される。この判定は、ワークメモリ32に格納されている第1の枠データ323のYaおよびYbの値に基づいて行われる。すなわち、Yb−Yaが所定値Laよりも大きければ、ステップS502の処理が行われる。一方、Yb−Yaが所定値La以下であれば、ステップS503の処理が行われる。
ステップS502においては、第2の枠78の縦サイズは、第1の枠77の縦サイズを所定距離(2×β)だけ拡大した長さに設定される(図11参照。)。具体的には、ワークメモリ32に格納されている第2の枠データ324におけるYcの値は、Ya−βに更新される。また、第2の枠データ324におけるYdの値は、Yb+βに更新される。ステップS502の処理の後、ステップS504の処理が行われる。
ステップS503においては、第2の枠78の縦サイズは、予め定められた所定の縦サイズ値に設定される。ここで、所定の縦サイズ値は、第2の枠78の最小の縦サイズを示す値である。ここでは、所定の縦サイズ値は、上記所定値Laに2βを加算した値である。つまり、当該所定の縦サイズ値をLa’とすると、La’=La+2βである。従って、第1の枠77の縦サイズが所定値Laよりも小さい場合、第2の枠78の縦サイズは、縦サイズが当該所定値である第1の枠77を所定距離(2×β)だけ拡大した長さとなる。また、このとき、第2の枠78の位置は、第1の枠77の上辺77aおよび下辺77bを縦方向に同じ距離だけ拡大するように設定される。従って、上辺77aおよび下辺77bは、縦方向に{La’−(Yb−Ya)}/2だけ拡大される。すなわち、第2の枠データ324におけるYcの値は、Ya−{La’−(Yb−Ya)}/2に更新される。また、第2の枠データ324におけるYdの値は、Yb+{La−(Yb−Ya)}/2に更新される。ステップS503の処理の後、ステップS504の処理が行われる。
次に、ステップS504において、第1の枠77の横サイズが所定値Lbよりも大きいか否かが判定される。この判定は、ワークメモリ32に格納されている第1の枠データ323のXaおよびXbの値に基づいて行われる。すなわち、Xb−Xaが所定値Lbよりも大きければ、ステップS505の処理が行われる。一方、Xb−Xaが所定値Lb以下であれば、ステップS506の処理が行われる。
ステップS505においては、第2の枠78の横サイズは、第1の枠77の横サイズを所定距離(2×β)だけ拡大した長さに設定される(図11参照。)。具体的には、ワークメモリ32に格納されている第2の枠データ324におけるXcの値は、Xa−βに更新される。また、第2の枠データ324におけるXdの値は、Xb+βに更新される。ステップS505の処理の後、ステップS507の処理が行われる。
ステップS506においては、第2の枠78の横サイズは、予め定められた所定の横サイズ値に設定される。ここで、所定の横サイズ値は、第2の枠78の最小の横サイズを示す値である。ここでは、所定の横サイズ値は、上記所定値Lbに2βを加算した値である。つまり、当該所定の横サイズ値をLb’とすると、Lb’=Lb+2βである。従って、第1の枠77の横サイズが所定値Lbよりも小さい場合、第2の枠78の横サイズは、横サイズが当該所定値である第1の枠77を所定距離(2×β)だけ拡大した長さとなる。また、このとき、第2の枠78の位置は、第1の枠77の左辺77cおよび右辺77dを横方向に同じ距離だけ拡大するように設定される。従って、左辺77cおよび右辺77dは、横方向に{Lb’−(Xb−Xa)}/2だけ拡大される。すなわち、第2の枠データ324におけるXcの値は、Xa−{Lb’−(Xb−Xa)}/2に更新される。また、第2の枠データ324におけるXdの値は、Xb+{Lb−(Xb−Xa)}/2に更新される。ステップS506の処理の後、ステップS507の処理が行われる。
なお、本実施形態では、ステップS501〜S506によって、第2の枠78のサイズは、最小でも縦サイズがLa’、横サイズがLb’となるように制限される。これは、表示領域が小さくなりすぎ、ゲーム画面をズームアップしすぎることを防止するためである。これによって、ゲーム画面をズームアップしすぎることによってキャラクタの画像が粗く表示されてしまうことを防止することができる。
以上のステップS501〜S506の処理によって、第1の枠77を外側に所定距離(2β)拡大した領域を少なくとも含む第2の枠78が設定されることとなる(図11参照。)。第1の枠77の内側には選択キャラクタが含まれているので、第1の枠77を拡大した第2の枠78内の領域を表示することによって、表示領域の端に選択キャラクタが表示されることはない。従って、選択キャラクタを常に見やすく表示することができる。なお、ステップS501〜S506において、ワークメモリ32の第2の枠データ324が更新されると、それに応じて表示サイズデータ325の内容も更新されるものとする。
ステップS507〜S509においては、ステップS501〜S506において設定された第2の枠78のアスペクト比を補正する処理が行われる。まず、ステップS507において、第2の枠78が表示領域と比べて縦方向に長い形状であるか横方向に長い形状であるかが判定される。具体的には、第2の枠78の横サイズL1が、第2の枠78の縦サイズL2と表示領域のアスペクト比Aとの積よりも小さいか否かが判定される。この判定は、ワークメモリ32に格納されている表示サイズデータ325を用いて行われる。すなわち、L1<L2×Aである場合、第2の枠78が表示領域と比べて縦方向に長い形状であると判断され、ステップS508の処理が行われる。一方、L1>=L2×Aである場合、第2の枠78が表示領域と比べて横方向に長い形状であると判断され、ステップS509の処理が行われる。
ステップS508では、第2の枠78の横サイズが補正される。具体的には、横サイズの長さが、縦サイズの長さL2と表示領域のアスペクト比Aとの積となるように補正される(図12(b)参照。)。これによって、縦方向に長い形状であった第2の枠78の横サイズが拡大されるので、第2の枠78の形状は、表示領域と相似の形状に補正される。さらに、このとき、第2の枠78の位置は、左側と右側とで同じ長さだけ拡大するように設定される。具体的には、補正後の横サイズと補正前の横サイズとの差をS1とすると、第2の枠78の右側の頂点のX座標は、S1/2だけ右方向(X軸の正の方向)に移動される。また、第2の枠78の左側の頂点のX座標は、S1/2だけ左方向(X軸の負の方向)に移動される。すなわち、第2の枠データ324におけるXdの値は、補正前のXdの値からS1/2増加した値に更新される。また、第2の枠データ324におけるXcの値は、補正前のXcの値からS1/2減少した値に更新される。
一方、ステップS509では、第2の枠78の縦サイズが補正される。具体的には、縦サイズの長さが、横サイズの長さL1を表示領域のアスペクト比Aで割った値となるように補正される(図12(a)参照。)。これによって、横方向に長い形状であった第2の枠78の縦サイズが拡大されるので、第2の枠78の形状は、表示領域と相似の形状に補正される。さらに、このとき、第2の枠78の位置は、上側と下側とで同じ長さだけ拡大するように設定される。具体的には、補正後の縦サイズと補正前の縦サイズとの差をS2とすると、第2の枠78の上側の頂点のY座標は、S2/2だけ上方向(Y軸の正の方向)に移動される。また、第2の枠78の下側の頂点のY座標は、S1/2だけ下方向(Y軸の負の方向)に移動される。すなわち、第2の枠データ324におけるYdの値は、補正前のYdの値からS2/2増加した値に更新される。また、第2の枠データ324におけるYcの値は、補正前のYcの値からS2/2減少した値に更新される。ステップS508またはS509の処理によって、第2の枠設定処理が完了する。
再び図15の説明に戻り、第2の枠設定処理の後、CPU31は、ゲーム画像をテレビ2に表示させる。すなわち、ステップS6において、視体積の設定を行う。具体的には、図13を参照して説明した方法で行う。これによって、ゲーム空間71内の領域の内、表示領域が決定されたことになる。さらに、ステップS7において、テレビ2にゲーム画像を表示する。具体的には、決定された視体積に基づいて、ゲーム空間71を視線73の方向から見たゲーム画像を生成する。以上のステップS2〜S7において、1フレームにおけるゲーム画像が生成される。以降、CPU31は、ステップS2〜S7を繰り返すことによってゲーム処理を行う。
なお、上述の第1の枠設定処理(ステップS4)では、選択オブジェクトが第1の枠77の内側に必ず含まれるように設定された。ここで、例えば、ステップS2またはS3において新たな選択オブジェクトがゲーム空間71に登場する場合には、第1の枠77を急激に拡大または縮小しなければならないおそれがある。すなわち、あるフレームの時点で表示されている領域とは異なる領域に選択オブジェクトが新たに登場した場合、次のフレームでは第1の枠77が大きく拡大されることになる。その結果、表示領域が急激に変化することになる。また、あるフレームの時点でゲーム空間71に登場していた選択オブジェクトが次のフレームで消滅することによっても、表示領域が急激に変化する場合がある。このように表示領域が急激に変化するようなゲーム画像は、プレイヤにとって非常に見にくい表示であると考えられる。そこで、第1の枠設定処理において、表示領域の急激な変化を防止する処理を行うようにしてもよい。以下、詳細を説明する。
図19は、第1の枠設定処理の変形例を示すフローチャートである。なお、図19において、図16に示す処理と同じ処理については、同じステップ番号を付し、説明を省略する。図19に示す処理は、ステップS405の次にステップS421およびS422の処理が実行される点で図16に示す処理と異なっている。この変形例では、ステップS405の後、ステップS421において、第1の枠77の上辺77aの移動距離が、予め定められた所定の限界値γ以上か否かが判定される。具体的には、ステップS405において更新される第1の枠データ323におけるYbの更新前後の値を比較することによって、上辺77aの移動距離を算出する。そして、算出された移動距離と所定の限界値との大きさを比較することによって、当該移動距離が所定の限界値以上か否かを判定する。この判定の結果、当該移動距離が所定の限界値以上である場合、ステップS422の処理が行われる。一方、当該移動距離が所定の限界値よりも小さい場合、ステップS422の処理がスキップされ、ステップS423の処理(ステップS406〜S419の処理)が行われる。
ステップS422においては、上辺77aの移動量が上記所定の限界値に制限される。具体的には、ワークメモリ32に格納されている第1の枠データ323におけるYbの値は、ステップS405の更新前における値に所定の限界値γを加算した値に更新される。ステップS422の処理の後、ステップS406の処理が行われる。
以上のように、ステップS421およびS422においては、所定の単位時間(フレーム間隔)における第1の枠77の上辺77aの移動距離が所定の限界値を超えないように第1の枠77が変形される。それ故、ステップS421およびS422の処理によって、第1の枠77の上辺77aは、外側に急激に移動することがない。なお、図19では、上辺77aが外側に移動する場合にのみ、移動距離が所定の限界値以上であるか否かを判定したが、他の辺が外側に移動する場合についても、ステップS421およびS422と同様の処理を行うことができる。第1の枠77の4辺すべてについて、辺が外側に移動する場合にステップS421およびS422と同様の処理を行うことによって、第1の枠が急激に拡大することを防止することができる。その結果、表示領域が急激に拡大することを防止することができる。
なお、上記の実施形態では、第1の枠77の各辺は、内側に移動する場合には予め定められた所定距離kだけ移動されるものとしたが、他の実施の形態では、移動すべき辺を選択オブジェクトの位置に移動させるようにしてもよい。このとき、第1の枠77の各辺が内側に移動する場合においても、外側の場合と同様、第1の枠77の辺が急激に移動する場合がある。そこで、第1の枠77の4辺が内側に移動する場合についてもステップS421およびS422と同様の処理を行うことによって、第1の枠が急激に縮小することを防止するようにしてもよい。その結果、表示領域が急激に変化することを防止することができる。以上によって、プレイヤにとってより見やすい表示を行うことができる。
以上のように、本実施形態によれば、その内側に選択オブジェクトが含まれるように第1の枠を設定することによって、複数の選択オブジェクトを表示することができる。さらに、枠(第1の枠および第2の枠)は、選択オブジェクトのすべてが枠の1辺から内側に所定間隔以上離れたときに変形される。すなわち、選択オブジェクトが移動すれば必ず枠が変形されるというわけではない。従って、枠の変形が頻繁に行われることを防止できるので、表示領域も頻繁に移動することがない。それ故、ゲーム空間の表示領域を見やすく表示することができる。
また、本実施形態によれば、3次元ゲーム空間に仮想的に設定される枠に基づいて表示領域が決定される。これによって、注視点を用いずに表示領域を決定することができる。従って、注視点を用いて表示領域を決定する場合のように、特定の1つのオブジェクトのみが常に画面の中央に表示されることがない。それ故、本実施形態によれば、複数のオブジェクトが注目されるゲームであっても、各オブジェクトを同じように表示することができる。すなわち、複数のオブジェクトを見やすく表示することができる。
なお、本実施形態では、3次元ゲーム空間が構成されるゲームについて説明したが、本発明は、2次元のゲーム平面を構成するゲームについても適用可能である。当該ゲームに適用する場合、枠設定面をゲーム平面上に設定すればよい。従って、この場合、ワールド座標値から枠座標値への変換処理を行う必要はない。つまり、ゲーム平面上の座標値を用いて、枠の設定および変形を行うことができる。また、視線の方向は、当該ゲーム平面に垂直な方向であると考えればよい。
また、本実施形態では、枠(第1の枠77および第2の枠78)の形状を長方形(正方形を含む)としたが、枠の形状はこれに限られない。例えば、枠は他の多角形や楕円であってもよい。枠が多角形の場合、頂点の枠設定面における座標によって当該多角形の枠を表現することができる。また、枠が楕円の場合、楕円の中心と長径および短径の長さによって当該楕円の枠を表現することができる。さらに、例えば、第1の枠77を楕円とし、第2の枠78を長方形としてもよい。これによれば、表示領域(長方形)内に含まれる楕円の内側に選択オブジェクトが位置するように表示されるので、選択オブジェクトは、画面の角に表示されることがなく、より見やすい表示とすることができる。
また、本実施形態では、選択オブジェクトの枠座標値に基づいて、まず第1の枠77を導出し(ステップS404〜S419)、その後で第2の枠78(ステップS501〜S506)を導出した。ここで、他の実施形態においては、選択オブジェクトの枠座標値に基づいて第2の枠78を直接導出してもよい。具体的には、ステップS405やステップS413等において第1の枠77の辺の位置を設定する際に、所定距離βのマージンを考慮して決定する。これによって、ステップS404〜S419において第2の枠78を導出することができる。この場合、ステップS502およびS505の処理は不要となる。
また、本実施形態では、枠設定面を視線方向に垂直な平面とした。しかしながら、枠設定面は視線方向に垂直な平面に限られない。例えば、図4に示したゲーム空間71においてy=0等の平面を枠設定面とし、y=0平面上に設定される枠の各頂点を視線方向または視点の方向に延ばした直線上に視体積の各頂点をとるようにしてもよい。なお、y=0の平面は例であって、3次元ゲーム空間内の任意の平面を枠設定面に設定することができる。
また、本実施形態では視線方向が予め定められており、当該視線方向に基づいて枠設定面に選択オブジェクトを投影した。ここで、視線方向に代えて視点の位置が予め定められている場合(例えば、図15のステップS1において視点位置が予め定められる。)についても、本発明を適用することが可能である。図20は、視点位置に基づいて枠設定面に選択オブジェクトを投影する処理を説明する図である。視点79が予め定められている場合、視点79の位置に基づいて、選択オブジェクトの枠座標値が決定される。具体的には、ゲーム世界71における選択オブジェクトの位置と視点79の位置とを結ぶ直線が枠設定面76と交わる位置が、選択オブジェクトの枠座標値として設定される。これと同様に、枠座標系75の原点の位置は、ワールド座標系72における原点と視点79の位置とを結ぶ直線が枠設定面76と交わる位置に設定される。以上のように、視点位置が定められている場合であっても、視線方向が定められている場合と同様、選択オブジェクトの枠座標値を算出することができ、本発明を適用することができる。なお、視点位置が定められている場合において視体積を設定する際には、当該視点位置を用いて透視投影によって視体積を設定することができる。あるいは、当該視点位置と第2の枠とに基づいて視線位置を決定(例えば、視点位置と第2の枠の中心を結ぶ線を視線方向とする。)し、決定した視線位置を用いて平行投影によって視体積を設定することもできる。
上述したように、本発明に係るゲームシステムおよびゲームプログラムは、複数のオブジェクトを見やすく表示することを目的として利用することが可能である。
ゲームシステム1の外観図である。 ゲーム装置3の機能ブロック図である。 本実施形態におけるゲームが構成するゲーム空間を示す図である。 図3に示すゲーム空間71に設定される枠設定面を示す図である。 枠設定面76に各選択オブジェクトの位置を投影する処理を説明する図である。 枠設定面76に設定された枠を示す図である。 第1の枠77の上辺が移動する様子を示す図である。 第1の枠77の下辺が移動する様子を示す図である。 第1の枠77の左辺が移動する様子を示す図である。 第1の枠77の右辺が移動する様子を示す図である。 第1の枠および第2の枠を示す図である。 第2の枠78のアスペクト比を補正する処理を説明するための図である。 表示領域を決定する処理を説明するための図である。 ワークメモリ32のメモリマップを示す図である。 本実施形態に係るゲームシステムにおいて実行されるゲーム処理のメインフローチャートである。 図15に示すステップS4の詳細な処理の流れを示すフローチャートである。 図15に示すステップS4の詳細な処理の流れを示すフローチャートである。 図15に示すステップS5の詳細な処理の流れを示すフローチャートである。 第1の枠設定処理の変形例を示すフローチャートである。 視点位置に基づいて枠設定面に選択オブジェクトを投影する処理を説明する図である。
符号の説明
1 ゲームシステム
3 ゲーム装置
4 光ディスク
31 CPU
71 ゲーム空間
76 枠設定面
77 第1の枠
78 第2の枠
81 第1のプレイヤキャラクタ
82 第2のプレイヤキャラクタ
83 第3のプレイヤキャラクタ
84 第1の敵キャラクタ

Claims (15)

  1. 複数のオブジェクトが登場する仮想的な3次元ゲーム空間を所定の視線方向から、所定のアスペクト比を有する長方形の表示領域を持つ表示装置に表示させるゲームシステムであって、
    前記オブジェクトの中から選出された2以上のオブジェクトが選択オブジェクトとして設定されており、
    視線方向を設定する視線方向設定手段と、
    前記3次元ゲーム空間内の所定平面である枠設定面を前記3次元ゲーム空間において設定する枠設定面設定手段と、
    前記選択オブジェクトのそれぞれについて、前記3次元ゲーム空間における当該選択オブジェクトの位置を通り前記視線方向設定手段によって設定された視線方向に延びる直線と前記枠設定面が交わる位置を示す枠座標値を算出する枠座標値算出手段と、
    前記枠設定面上に仮想的に設定される枠であって、各前記選択オブジェクトの前記枠座標値により示される位置のすべてがその内側に位置する枠を設定する枠設定手段と、
    前記枠設定手段による設定後の枠のアスペクト比が前記所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加するアスペクト比補正手段と、
    前記アスペクト比補正手段による補正後の枠の各頂点を通り前記視線方向設定手段によって設定された視線方向に延びる直線上に視体積の各頂点をとり、前記表示装置に前記ゲーム空間を表示する表示制御手段とを備えるゲームシステム。
  2. 前記枠設定手段は前記設定面上に長方形の枠を仮想的に設定し、
    前記ゲームシステムは、
    前記オブジェクトの移動を制御する移動制御手段と、
    前記枠設定手段によって設定された長方形の枠を前記選択オブジェクトの移動に応じて変形する枠変形手段と、をさらに備え、
    前記枠変形手段は、前記枠設定面上において、前記選択オブジェクトの前記枠座標値により示される位置のすべてが枠の1辺から内側に所定間隔以上離れたときに、当該1辺を当該枠の内側の方向に向かって移動させることによって枠を変形する、請求項1に記載のゲームシステム。
  3. 前記枠設定面設定手段は、前記視線方向設定手段によって設定された視線方向に垂直な平面を枠設定面に設定することを特徴とする、請求項1に記載のゲームシステム。
  4. 複数のオブジェクトが登場する仮想的な3次元ゲーム空間を所定の視線方向から、所定のアスペクト比を有する長方形の表示領域を持つ表示装置に表示させるゲームシステムであって、
    前記オブジェクトの中から選出された2以上のオブジェクトが選択オブジェクトとして設定されており、
    視点の位置を設定する視点位置設定手段と、
    前記3次元ゲーム空間内の所定平面である枠設定面を前記3次元ゲーム空間において設定する枠設定面設定手段と、
    前記選択オブジェクトのそれぞれについて、前記3次元ゲーム空間における当該選択オブジェクトの位置と前記視点位置設定手段によって設定された視点とを結ぶ直線と前記枠設定面が交わる位置を示す枠座標値を算出する枠座標値算出手段と、
    前記枠設定面上に仮想的に設定される枠であって、各前記選択オブジェクトの前記枠座標値により示される位置のすべてがその内側に位置する枠を設定する枠設定手段と、
    前記枠設定手段による設定後の枠のアスペクト比が前記所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加するアスペクト比補正手段と、
    前記アスペクト比補正手段による補正後の枠の各頂点と前記視点とを結ぶ直線上に視体積の各頂点をとり、前記表示装置に前記ゲーム空間を表示する表示制御手段とを備えるゲームシステム。
  5. 前記枠設定手段は前記設定面上に長方形の枠を仮想的に設定し、
    前記ゲームシステムは、
    前記オブジェクトの移動を制御する移動制御手段と、
    前記枠設定手段によって設定された長方形の枠を前記選択オブジェクトの移動に応じて変形する枠変形手段とをさらに備え、
    前記枠変形手段は、前記枠設定面上において、前記選択オブジェクトの前記枠座標値により示される位置のすべてが枠の1辺から内側に所定間隔以上離れたときに、当該1辺を当該枠の内側の方向に向かって移動させることによって枠を変形する、請求項4に記載のゲームシステム。
  6. 前記枠変形手段は、前記枠設定面上において、前記選択オブジェクトの前記枠座標値により示される位置のいずれか1つが枠の1辺を超えて当該枠の外側に移動しようとしたときに、当該1辺を当該枠の外側の方向に向かって移動させることによって枠を変形することを特徴とする、請求項1または4に記載のゲームシステム。
  7. 前記枠設定手段による設定後の枠を前記枠設定面上で上下左右に所定幅だけ拡大する枠拡大手段をさらに備え、
    前記アスペクト比補正手段は、前記枠拡大手段による拡大後の枠のアスペクト比が前記所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加することを特徴とする、請求項1または4に記載のゲームシステム。
  8. 前記枠変形手段による変形後の枠を前記枠設定面上で上下左右に所定幅だけ拡大する枠拡大手段をさらに備え、
    前記アスペクト比補正手段は、前記枠拡大手段による拡大後の枠のアスペクト比が前記所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加することを特徴とする、請求項2または5に記載のゲームシステム。
  9. 前記アスペクト比補正手段は、前記枠設定手段による設定後の枠が補正後の枠の中央に位置するように枠を補正する、請求項1または請求項4に記載のゲームシステム。
  10. 前記アスペクト比補正手段は、前記枠変形手段による変形後の枠が補正後の枠の中央に位置するように枠を補正する、請求項2または5に記載のゲームシステム。
  11. 前記枠変形手段による変形後の枠の縦横の長さが予め定められた長さよりも長くなるように当該枠を補正する枠補正手段をさらに備え、
    前記アスペクト比補正手段は、前記枠補正手段による補正後の枠のアスペクト比が前記所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加することを特徴とする、請求項2または5に記載のゲームシステム。
  12. 複数のプレイヤによってプレイ可能であり、
    前記選択オブジェクトは、前記複数のプレイヤによって各々操作される複数のプレイヤキャラクタを少なくとも含む、請求項1、請求項2、請求項4または請求項5に記載のゲームシステム。
  13. 前記選択オブジェクトを追加または削除する選択オブジェクト変更手段をさらに備え、
    前記枠変形手段は、前記選択オブジェクト変更手段による追加または削除があった場合に、所定の単位時間における枠の1辺の移動距離が所定量を超えないように枠を変形する、請求項2または5に記載のゲームシステム。
  14. 複数のオブジェクトが登場する仮想的な3次元ゲーム空間を所定の視線方向から、所定のアスペクト比を有する長方形の表示領域を持つ表示装置に表示させるゲームシステムのコンピュータに実行させるゲームプログラムであって、
    前記ゲームシステムにおいて、前記オブジェクトの中から選出された2以上のオブジェクトが選択オブジェクトとして設定されており、
    視線方向を設定する視線方向設定ステップと、
    前記3次元ゲーム空間内の所定平面である枠設定面を前記3次元ゲーム空間において設定する枠設定面設定ステップと、
    前記選択オブジェクトのそれぞれについて、前記3次元ゲーム空間における当該選択オブジェクトの位置を通り前記視線方向設定ステップにおいて設定された視線方向に延びる直線と前記枠設定面が交わる位置を示す枠座標値を算出する枠座標値算出ステップと、
    前記枠設定面上に仮想的に設定される枠であって、各前記選択オブジェクトの前記枠座標値により示される位置のすべてがその内側に位置する枠を設定する枠設定ステップと、
    前記枠設定ステップによる設定後の枠のアスペクト比が前記所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加するアスペクト比補正ステップと、
    前記アスペクト比補正ステップによる補正後の枠の各頂点を通り前記視線方向設定ステップによって設定された視線方向に延びる直線上に視体積の各頂点をとり、前記表示装置に前記ゲーム空間を表示する表示制御ステップとを前記コンピュータに実行させる、ゲームプログラム。
  15. 複数のオブジェクトが登場する仮想的な3次元ゲーム空間を所定の視線方向から、所定のアスペクト比を有する長方形の表示領域を持つ表示装置に表示させるゲームシステムのコンピュータに実行させるゲームプログラムであって、
    前記ゲームシステムにおいて、前記オブジェクトの中から選出された2以上のオブジェクトが選択オブジェクトとして設定されており、
    視点の位置を設定する視点位置設定ステップと、
    前記3次元ゲーム空間内の所定平面である枠設定面を前記3次元ゲーム空間において設定する枠設定面設定ステップと、
    前記選択オブジェクトのそれぞれについて、前記3次元ゲーム空間における当該選択オブジェクトの位置と前記視点位置設定ステップにおいて設定された視点とを結ぶ直線と前記枠設定面が交わる位置を示す枠座標値を算出する枠座標値算出ステップと、
    前記枠設定面上に仮想的に設定される枠であって、各前記選択オブジェクトの前記枠座標値により示される位置のすべてがその内側に位置する枠を設定する枠設定ステップと、
    前記枠設定ステップによる設定後の枠のアスペクト比が前記所定のアスペクト比となるように当該枠の縦および横の長さのいずれか一方を増加するアスペクト比補正ステップと、
    前記アスペクト比補正ステップによる補正後の枠の各頂点と前記視点とを結ぶ直線上に視体積の各頂点をとり、前記表示装置に前記ゲーム空間を表示する表示制御ステップとを前記コンピュータに実行させる、ゲームプログラム。
JP2003277713A 2003-07-22 2003-07-22 ゲームシステムおよびゲームプログラム Expired - Lifetime JP4159940B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003277713A JP4159940B2 (ja) 2003-07-22 2003-07-22 ゲームシステムおよびゲームプログラム
US10/895,078 US8840469B2 (en) 2003-07-22 2004-07-21 Game system and game program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003277713A JP4159940B2 (ja) 2003-07-22 2003-07-22 ゲームシステムおよびゲームプログラム

Publications (2)

Publication Number Publication Date
JP2005040348A JP2005040348A (ja) 2005-02-17
JP4159940B2 true JP4159940B2 (ja) 2008-10-01

Family

ID=34074658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003277713A Expired - Lifetime JP4159940B2 (ja) 2003-07-22 2003-07-22 ゲームシステムおよびゲームプログラム

Country Status (2)

Country Link
US (1) US8840469B2 (ja)
JP (1) JP4159940B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4820376B2 (ja) 2005-01-13 2011-11-24 ドナルドソン カンパニー,インコーポレイティド エアフィルタカートリッジ及びエアクリーナ装置
CN102861486B (zh) 2005-01-13 2015-09-16 唐纳森公司 空气过滤器装置
JP4551343B2 (ja) * 2006-02-28 2010-09-29 シャープ株式会社 映像処理装置、及び映像処理方法
EP2190554B1 (en) 2007-09-07 2013-01-09 Donaldson Company, Inc. Air filter assembly
JP6099327B2 (ja) * 2012-07-26 2017-03-22 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理方法および情報処理システム
JP7161225B2 (ja) * 2020-05-08 2022-10-26 株式会社コナミデジタルエンタテインメント プログラム、ゲーム制御方法、ゲーム装置及びゲームシステム
WO2023084783A1 (ja) * 2021-11-15 2023-05-19 涼平 山中 投影プログラム、投影方法、投影システム、およびコンピュータ可読媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3156645B2 (ja) 1997-08-12 2001-04-16 日本電信電話株式会社 情報発信型景観ラベリング装置およびシステム
EP0977151B1 (en) * 1998-07-31 2007-11-07 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium
JP3185795B2 (ja) 1999-09-08 2001-07-11 株式会社ナムコ スポーツゲーム装置
JP4535604B2 (ja) 2000-11-28 2010-09-01 株式会社バンダイナムコゲームス ゲームシステム及びプログラム
EP1386645B1 (en) * 2000-12-14 2011-12-07 KABUSHIKI KAISHA SEGA doing business as SEGA CORPORATION Game machine, communication game system, and recorded medium

Also Published As

Publication number Publication date
US20050020362A1 (en) 2005-01-27
JP2005040348A (ja) 2005-02-17
US8840469B2 (en) 2014-09-23

Similar Documents

Publication Publication Date Title
JP3795856B2 (ja) ビデオゲーム装置、ビデオゲームの進行制御方法、プログラム及び記録媒体
JP4180065B2 (ja) 画像生成方法、画像生成装置、および画像生成プログラム
US8259112B2 (en) Image generating apparatus, method of generating image, program, and recording medium
US6821204B2 (en) Game system and game program
US7859532B2 (en) Generating character images based upon display conditions
US8979650B2 (en) Game apparatus, recording medium having game program recorded thereon, and game system
JP4326502B2 (ja) 表示領域を移動させる画像処理プログラムおよび画像処理装置
US8197339B2 (en) Video game processing apparatus, a method and a computer program product for processing a video game
US6413163B1 (en) Video game machine, method for switching viewpoint on game screen of video game, and computer-readable recording medium containing game-screen-viewpoint switching program
JP4445898B2 (ja) ポインティングデバイスに対する入力を用いたゲームプログラムおよびゲーム装置
US8012018B2 (en) Game apparatus and storage medium storing game program
JP4447568B2 (ja) ゲーム装置、ゲーム装置の制御方法及びプログラム
US8103128B2 (en) Graphic object collision detection with axis-aligned bounding regions calculated from inclination angle
JP4719579B2 (ja) 画像処理プログラムおよび画像処理装置
US8147305B2 (en) Attacking a virtual enemy by corresponding input to output sound
JP2001009156A (ja) コンピュータ読み取り可能な記録媒体、ゲームの表示制御方法およびゲーム装置
JP2006305176A (ja) ゲームプログラムおよびゲーム装置
JP2007244536A (ja) ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム
JP4184182B2 (ja) ゲームシステムおよびゲームプログラム
US7847754B2 (en) Image processing program and image display device
JP2011186566A (ja) ゲーム装置、ゲーム装置の制御方法、及びプログラム
JP4159940B2 (ja) ゲームシステムおよびゲームプログラム
JP2006268511A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4148868B2 (ja) ゲームプログラムおよびゲーム装置
JP4842344B2 (ja) 表示領域を移動させる画像処理プログラムおよび画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080326

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080523

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080618

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080716

R150 Certificate of patent or registration of utility model

Ref document number: 4159940

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130725

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130725

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term