JP4535604B2 - ゲームシステム及びプログラム - Google Patents
ゲームシステム及びプログラム Download PDFInfo
- Publication number
- JP4535604B2 JP4535604B2 JP2000361617A JP2000361617A JP4535604B2 JP 4535604 B2 JP4535604 B2 JP 4535604B2 JP 2000361617 A JP2000361617 A JP 2000361617A JP 2000361617 A JP2000361617 A JP 2000361617A JP 4535604 B2 JP4535604 B2 JP 4535604B2
- Authority
- JP
- Japan
- Prior art keywords
- boundary box
- virtual camera
- objects
- screen
- determination
- 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
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Description
【発明の属する技術分野】
本発明は、ゲームシステム、プログラム及び情報記憶媒体に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
従来よりゲーム空間内に複数のキャラクタオブジェクトや移動オブジェクトが登場するゲームシステムがある。かかるゲームシステムの場合、複数のキャラクタオブジェクトや移動オブジェクト等の移動可能な表示対象物を画面内に捕らえるために、表示対象物の中間位置や重心位置に仮想カメラの注視点が来るように仮想カメラの位置や向き等を設定していた。
【0003】
しかし移動可能な表示対象物が移動するたびに注視点が変動するため、それに伴い仮想カメラの位置や向きや画角が変化し、揺れの激しい落ち着きのない映像となっていた。
【0004】
また移動可能な表示対象物間の距離が画角範囲より大きくなった場合や、極端に離れた移動可能な表示対象物が存在する場合等に、すべての移動可能な表示対象物を画面内に捕らえることが困難であるという問題点があった。
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、移動可能な複数の表示対象物を安定したカメラワークで画面内に捕らえることができるゲームシステム、プログラム及び情報記憶媒体を提供することである。
【0006】
【課題を解決するための手段】
(1)本発明は画像生成を行うゲームシステムであって、ゲーム空間内の複数のオブジェクトを内包する判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断する手段と、前回の仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラ位置、向き、画角の少なくともひとつの設定を変更する手段と、を含むことを特徴とする。
【0007】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【0008】
ここにおいて判定用バウンダリボックスは、ゲーム空間内の複数のオブジェクトが画面内に入るか否かを判定するために用いるものであり、複数のオブジェクトの全ての頂点を内包する場合でもよいし、複数のオブジェクトの代表点を内包する場合でもよい。また判定用バウンダリボックスにオブジェクトの頂点又は代表点が接するように内包されている場合でもよいし、すっぽり内包されている場合でもよい。また判定用バウンダリボックスは3次元的な形状でもよいし2次元的な形状でもよい。
【0009】
前回の仮想カメラの設定とは例えば前フレームの仮想カメラの位置、向き、画角等である。
【0010】
本発明によれば判定用バウンダリボックスは常に画面内におさまっているので、複数のオブジェクトを常に画面内に捕らえることができる。
【0011】
また本発明によれば、前回の仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラ位置、向き、画角の少なくともひとつの設定を変更する。
【0012】
すなわち例えば複数のオブジェクトの位置関係が変化しても、変化後の複数のオブジェクトの位置関係に基づき生成した判定用バウンダリボックスが画面内に納まる場合には、仮想カメラの位置、向き、画角等の仮想カメラの設定を変更せずに前回と同じ設定で画像生成を行う。
【0013】
したがって、オブジェクトが移動するたびにそれに伴い仮想カメラの位置や向きや画角が変化することにより揺れの激しい落ちつきのない映像となるのを防止し、移動可能な複数の表示対象物を安定したカメラワークで画面内に捕らえることができるゲームシステム及び情報記憶媒体を提供することができる。
【0014】
(2)また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前回の仮想カメラと前記複数のオブジェクトを視点座標系に変換し、視点座標系における前回の仮想カメラと前記複数のオブジェクトを結ぶ線に基づき複数のオブジェクトを含む四角錘状の判定用バウンダリボックスを求め、視点座標系において前記判定用バウンダリボックスが前回の仮想カメラの画角内に内包されているか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断することを特徴とする。
【0015】
判定用バウンダリボックスは前記複数のオブジェクトの全ての頂点に基づき生成する場合でもよいし、代表点に基づき生成する場合でもよい。
【0016】
視点座標系において、前回の仮想カメラと前記複数のオブジェクト頂点又は代表点を結ぶ線に基づき複数のオブジェクトを含む四角錘状の判定用バウンダリボックスを求める。
【0017】
このようにすると仮想カメラと前記複数のオブジェクトを結ぶ線が前記四角錘状の判定用バウンダリボックスの側面の辺となるため、この辺が前回の仮想カメラの画角内に内包されているか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断することができる。
【0018】
(3)また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記複数のオブジェクトをスクリーン座標系に変換し、スクリーン座標系において複数オブジェクトを内包する2次元の判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該2次元の判定用バウンダリボックスが画面内に入るか否かを判断することを特徴とする。
【0019】
判定用バウンダリボックスは前記複数のオブジェクトの全ての頂点に基づき生成する場合でもよいし、代表点に基づき生成する場合でもよい。
【0020】
スクリーン座標系において、前記複数のオブジェクト頂点又は代表点を結ぶ線に基づき複数のオブジェクトを含む2次元の判定用バウンダリボックスを求める。
【0021】
このようにすると、判定用バウンダリボックスが画面内に入るか否かが2次元的に判断することができるので便利である。
【0022】
(4)また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数の各オブジェクトについて設定されたバウンダリボックスを内包することを特徴とする。
【0023】
本発明によれば複数のオブジェクトの端が切れることなく画面内に収めることができる。
【0024】
(5)また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定することを特徴とする。
【0025】
本発明によれば余裕を持った判定用バウンダリボックスを生成することができ、複数のオブジェクトを画面の中心付近に集めやすくなる。
【0026】
(6)また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、仮想カメラ位置、向き、画角の少なくともひとつの設定又は変更を行う際には、画面内に余裕をもって判定用バウンダリボックスがはいるように仮想カメラの位置、向き、画角のすくなくともひとつを設定又は変更を行うことを特徴とする。
【0027】
このようにすると次フレームの判定用バウンダリボックスが多少変動しても画面内におさまるので、仮想カメラの移動の少ないより安定したゲーム画像を生成することができる。
【0028】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【0029】
1.構成
図1に、本実施形態のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部100を含めばよく、それ以外のブロックについては、任意の構成要素とすることができる。
【0030】
ここで処理部100は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ(CPU、DSP等)、或いはASIC(ゲートアレイ等)などのハードウェアや、所与のプログラム(ゲームプログラム)により実現できる。
【0031】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筺体などのハードウェアにより実現できる。
【0032】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、メインメモリ172、フレームバッファ174(第1のフレームバッファ、第2のフレームバッファ)として機能し、RAMなどのハードウェアにより実現できる。
【0033】
情報記憶媒体(コンピュータにより使用可能な記憶媒体)180は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納される情報に基づいて本発明(本実施形態)の種々の処理を行う。即ち情報記憶媒体180には、本発明(本実施形態)の手段(特に処理部100に含まれるブロック)を実行するための情報(プログラム或いはデータ)が格納される。
【0034】
なお、情報記憶媒体180に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部170に転送されることになる。また情報記憶媒体180に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも1つを含むものである。
【0035】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0036】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0037】
セーブ用情報記憶装置194は、プレーヤの個人データ(セーブデータ)などが記憶されるものであり、このセーブ用情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0038】
通信部196は、外部(例えばホスト装置や他のゲームシステム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0039】
なお本発明(本実施形態)の手段を実行するためのプログラム或いはデータは、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0040】
処理部100は、ゲーム処理部110、画像生成部130、音生成部150を含む。
【0041】
ここでゲーム処理部110は、コイン(代価)の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト(1又は複数のプリミティブ面)の位置や回転角度(X、Y又はZ軸回り回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置するための処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム処理を、操作部160からの操作データや、セーブ用情報記憶装置194からの個人データや、ゲームプログラムなどに基づいて行う。
【0042】
画像生成部130は、ゲーム処理部110からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ(視点)から見える画像を生成して、表示部190に出力する。また、音生成部150は、ゲーム処理部110からの指示等にしたがって各種の音処理を行い、BGM、効果音、音声などの音を生成し、音出力部192に出力する。
【0043】
なお、ゲーム処理部110、画像生成部130、音生成部150の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0044】
ゲーム処理部110は、移動・動作演算部112、場面切り替え演出処理部114とを含む。
【0045】
ここで移動・動作演算部112は、キャラクタ車などのオブジェクトの移動情報(位置データ、回転角度データ)や動作情報(オブジェクトの各パーツの位置データ、回転角度データ)を演算するものであり、例えば、操作部160によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作させたりする処理を行う。
【0046】
より具体的には、移動・動作演算部112は、オブジェクトの位置や回転角度を例えば1フレーム(1/60秒)毎に求める処理を行う。例えば(k−1)フレームでのオブジェクトの位置をPMk-1、速度をVMk-1、加速度をAMk-1、1フレームの時間を△tとする。するとkフレームでのオブジェクトの位置PMk、速度VMkは例えば下式(1)、(2)のように求められる。
【0047】
PMk=PMk-1+VMk-1×△t (1)
VMk=VMk-1+AMk-1×△t (2)
また仮想カメラ設定部114は、ゲーム空間内の複数のオブジェクトを内包する判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断し、前回の仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラ位置、向き、画角の少なくともひとつの設定を変更する処理を行う。
【0048】
また前回の仮想カメラと前記複数のオブジェクトを視点座標系に変換し、視点座標系における前回の仮想カメラと前記複数のオブジェクトを結ぶ線に基づき複数のオブジェクトを含む四角錘状の判定用バウンダリボックスを求め、視点座標系において前記判定用バウンダリボックスが前回の仮想カメラの画角内に内包されているか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断するようにしてもよい。
【0049】
また前記複数のオブジェクトをスクリーン座標系に変換し、スクリーン座標系において複数オブジェクトを内包する2次元の判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該2次元の判定用バウンダリボックスが画面内に入るか否かを判断するようにしてもよい。
【0050】
また前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数の各オブジェクトについて設定されたバウンダリボックスを内包するように設定してもよい。
【0051】
また前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定するようにしてもよい。
【0052】
また仮想カメラ位置、向き、画角の少なくともひとつの設定又は変更を行う際には、画面内に余裕をもって判定用バウンダリボックスがはいるように仮想カメラの位置、向き、画角のすくなくともひとつを設定又は変更を行うようにしてもよい。
【0053】
画像生成部130は、ジオメトリ処理部132、描画部140を含む。
【0054】
ここで、ジオメトリ処理部132は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理(3次元演算)を行う。そして、ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標などの形状データ、或いは頂点テクスチャ座標、輝度データ等)は、記憶部170のメインメモリ172に保存される。
【0055】
描画部140は、ジオメトリ処理後のオブジェクト(モデル)を、フレームバッファ174に描画するための処理を行うものである。
【0056】
なお前記オブジェクトとして表示画面サイズのポリゴンを用いてもよいし、表示画面を分割したブロックのサイズのポリゴンを用いてもよい。
【0057】
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0058】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末を用いて生成してもよい。
【0059】
2.本実施形態の特徴
本実施の形態の特徴を図面を用いて説明する。
【0060】
まず本実施の形態の原理について説明する。図2は判定用バウンダリボックスのイメージについて説明するための模式的な図である。210、220、230、240はゲーム空間に存在する移動可能なオブジェクトであり、表示対象となるオブジェクト(以下、「表示対象オブジェクト」という)である。
【0061】
本実施の形態ではまずゲーム空間内の複数の表示対象オブジェクト210、220、230、240を内包する判定用バウンダリボックス200を求める。そして前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断する。なお説明を簡単にするためにここでは判定用バウンダリボックス200を2次元的なイメージで図示しているが、3次元的な場合ももちろん含む。判定用バウンダリボックスの形状は、それが画面内に入るか否かの判断手法によって異なってくるので、詳細は後述する。
【0062】
そして本実施の形態では、前回の仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラ位置、向き、画角の少なくともひとつの設定を変更する処理をおこなう。
【0063】
図3(A)(B)は判定用バウンダリボックス200が画面領域250に内包されている例が示されている。図3(A)は判定用バウンダリボックス200が画面領域250の中央付近に余裕を持って内包されている場合であり、図3(B)は判定用バウンダリボックス200が画面領域250の端付近に内包されている場合である。
【0064】
本実施の形態では今回のフレームにおける表示用オブジェクトの配置に基づいて求めた判定用バウンダリボックスが前回のフレームにおける仮想カメラの設定により決定される画面領域に内包される場合には、今回のフレームの仮想カメラの設定を前回のフレームと同じにする。
【0065】
このように本実施の形態では表示用オブジェクトの配置が変化し、判定用バウンダリボックスの配置や形状が変化しても、前回の仮想カメラの設定により決定される画面領域に内包されている限り、仮想カメラの位置、向き、画角を変更しない。したがって、表示用オブジェクトを常に画面内に安定したカメラワークで捕らえたゲーム画像を生成することができる。
【0066】
なお仮想カメラの初期設定時や設定変更時は、図3(A)のように判定用バウンダリボックス200が画面領域250の中央付近に余裕を持って内包されるように、仮想カメラの位置、向き、画角の設定をおこなうことが好ましい。
【0067】
このようにすると、次のフレームで表示用オブジェクトの配置がかわって、例えば判定用バウンダリボックスの配置や形状が変化した場合でも例えば図3(B)のようにいまだ前回フレームの仮想カメラの設定により決定される画面領域に判定用バウンダリボックスが内包されている可能性が高くなるからである。
【0068】
図4(A)(B)は、判定用バウンダリボックス200が画面領域250より小さいが画面領域に内包されていない例を示したものである。図4(A)は判定用バウンダリボックス200の一部が画面領域250からはみ出している場合であり、図4(B)は判定用バウンダリボックス200の全部が画面領域250からはみ出している場合である。
【0069】
いずれの場合も判定用バウンダリボックスが画面領域内に収まるように今回フレームの仮想カメラの位置又は向きを変更することが必要である。
【0070】
また図5は、判定用バウンダリボックスが画面領域内に納まっていない場合の仮想カメラの移動について説明するための図である。
【0071】
310は前回フレームにおける仮想カメラ位置を表しており、320は前回フレームにおける仮想カメラによって決定される画面領域である。また330は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【0072】
同図に示すように前回フレームの画面領域320から今回フレームの判定用バウンダリボックス330がはみ出しているため、このままでは例えば340のように表示対象オブジェクトの一部が画面領域からはみでてしまい表示されない事態が発生する。
【0073】
そこでかかる場合に今回フレームの判定用バウンダリボックス330が画面内に入るように、仮想カメラの位置を移動させる(310→312)。
【0074】
なお同図に示すように判定用バウンダリボックス330が画面領域320に対してX軸方向にずれていた場合には、仮想カメラの位置をX軸方向に移動させるとよい。また例えば判定用バウンダリボックス330が画面領域320に対してY軸方向にずれていた場合には、仮想カメラの位置をY軸方向に移動させるとよい。
【0075】
314は今回フレームにおける仮想カメラ位置を表しており、324は今回フレームにおける仮想カメラによって決定される画面領域である。また330は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【0076】
このように仮想カメラを移動させることによって、判定用バウンダリボックスを画面内に収めることができる。
【0077】
なお図5に示すように判定用バウンダリボックス330が今回フレームの画面領域324の中央付近に余裕を持って内包されるように移動後の仮想カメラの位置を決定することが好ましい。
【0078】
また図6は、判定用バウンダリボックスが画面領域内に納まっていない場合の仮想カメラの向きの変更(回転)について説明するための図である。
【0079】
410は前回フレームにおける仮想カメラ位置を表しており、420は前回フレームにおける仮想カメラによって決定される画面領域である。また430は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【0080】
同図に示すように前回フレームの画面領域420から今回フレームの判定用バウンダリボックス430がはみだしているため、このままでは例えば440のように表示対象オブジェクトの一部が画面領域からはみでてしまい表示されない事態が発生する。
【0081】
そこでかかる場合に今回フレームの判定用バウンダリボックス430が画面内に入るように仮想カメラの向き回転させる(410→412)。
【0082】
なお同図に示すように判定用バウンダリボックス430が画面領域420に対してX軸方向にずれていた場合には、仮想カメラの向きをY軸ロールで回転させるとよい。また例えば判定用バウンダリボックス430が画面領域420に対してY軸方向にずれていた場合には、仮想カメラの向きをX軸ロールで回転させるとよい。
【0083】
414は今回フレームにおける仮想カメラの向きを表しており、424は今回フレームにおける仮想カメラによって決定される画面領域である。また430は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【0084】
このように仮想カメラの向きを回転させることによって、判定用バウンダリボックスを画面内に収めることができる。
【0085】
なお図6に示すように判定用バウンダリボックス430が今回フレームの画面領域424の中央付近に余裕を持って内包されるように回転後の仮想カメラの向きを決定することが好ましい。
【0086】
図7(A)(B)は、判定用バウンダリボックス200が画面領域250より大きくて画面領域250に内包されていない例を示したものである。図7(A)は判定用バウンダリボックス200の一部が画面領域250からはみ出している場合であり、図7(B)は判定用バウンダリボックス200の全部が画面領域250からはみ出している場合である。
【0087】
いずれの場合も判定用バウンダリボックスが画面領域内に収まるように今回フレームの仮想カメラの位置又は画角を変更することが必要である。
【0088】
図8は、判定用バウンダリボックスが大きすぎて画面領域内に納まっていない場合の仮想カメラの画角の変更について説明するための図である。
【0089】
θ1は前回フレームにおける仮想カメラ510の画角を表しており、520は前回フレームにおける仮想カメラよって決定される画面領域である。また530は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【0090】
同図に示すように前回フレームの画面領域520から今回フレームの判定用バウンダリボックス530が大きすぎてはみ出しているため、このままでは例えば540、542、544のように表示対象オブジェクトが画面領域からはみでてしまい表示されない事態が発生する。
【0091】
そこでかかる場合に今回フレームの判定用バウンダリボックス530が画面内に入るように、仮想カメラの画角が大きくなるように変更する(θ1→θ2)。
【0092】
θ3は今回フレームにおける仮想カメラの画角を表しており、524は今回フレームにおける仮想カメラによって決定される画面領域である。また530は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【0093】
このように仮想カメラの画角を大きくすることで、判定用バウンダリボックスを画面内に収めることができる。
【0094】
図9は、判定用バウンダリボックスが大きすぎて画面領域内に納まっていない場合の仮想カメラの位置の変更について説明するための図である。
【0095】
610は前回フレームにおける仮想カメラの位置を表しており、620は前回フレームにおける仮想カメラよって決定される画面領域である。また630は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【0096】
同図に示すように前回フレームの画面領域620から今回フレームの判定用バウンダリボックス630が大きすぎてはみ出しているため、このままでは例えば640、642、644のように表示対象オブジェクトが画面領域からはみでてしまい表示されない事態が発生する。
【0097】
そこでかかる場合に今回フレームの判定用バウンダリボックス630が画面内に入るように、仮想カメラの位置をバウンダリボックスから遠ざける(610→612)。なお画角θ1は変更しない。
【0098】
614は今回フレームにおける仮想カメラの位置を表しており、624は今回フレームにおける仮想カメラによって決定される画面領域である。また630は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【0099】
このように仮想カメラの位置を判定用バウンダリボックスより遠ざけることで、判定用バウンダリボックスを画面内に収めることができる。
【0100】
図10は仮想カメラの設定の変更処理について説明するためのフローチャート図である。
【0101】
まず判定用バウンダリボックスが前回の仮想カメラの設定(位置、向き、画角)で決まる画面領域に内包されているか否か判断する(ステップS10)。
【0102】
そして判定用バウンダリボックスが前回の仮想カメラの設定(位置、向き、画角)で決まる画面領域に内包されている場合には、仮想カメラの位置,向き、画角は変更しない(ステップS20)。例えば図3(A)(B)で説明したような場合であり、かかる場合には今回のフレームの仮想カメラの位置、向き、画角も前回のフレームの仮想カメラの位置、向き、画角と同じ設定でゲーム空間に配置して画像生成を行う。
【0103】
また判定用バウンダリボックスが前回の仮想カメラの設定(位置、向き、画角)で決まる画面領域に内包されていない場合であって、判定用バウンダリボックスが画面領域より小さい場合には、判定用バウンダリボックスが画面領域内に入るように仮想カメラの位置及び向きの少なくとも一方を変更する(ステップS30、S40)。例えば図4(A)(B)で説明したような場合であり、かかる場合には図5で説明したように仮想カメラの位置を変更したり、図6で説明したように仮想カメラの向きを変更したりする。
【0104】
また判定用バウンダリボックスが前回の仮想カメラの設定(位置、向き、画角)で決まる画面領域に内包されていない場合であって、判定用バウンダリボックスが画面領域より大きい場合には、判定用バウンダリボックスが画面領域内に入るように仮想カメラの位置及び向きの少なくとも一方を変更する(ステップS30、S50)。例えば図7(A)(B)で説明したような場合であり、かかる場合には図8で説明したように仮想カメラの画角を変更したり、図9で説明したように仮想カメラの位置を変更したりする。
【0105】
次に視点座標系において、前回の仮想カメラと前記複数のオブジェクトを結ぶ線に基づき複数のオブジェクトを含む四角錘状の判定用バウンダリボックスを求め、視点座標系において前記判定用バウンダリボックスが前回の仮想カメラの画角内に内包されているか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断する場合について説明する。
【0106】
図11(A)(B)は視点座標系における表示対象オブジェクトの配置とバウンダリボックスの関係について説明するための図である。
【0107】
図11(A)は視点座標系に配置された仮想カメラ700と視点座標系における表示対象オブジェクト710、720、730と判定用バウンダリボックス740を表している。図11(B)の712、722、732は前記視点座標系における表示対象オブジェクトがスクリーンに投影されたものであり、742は判定用バウンダリボックスがスクリーンに投影されたものである。
【0108】
本実施の形態では図11(A)に示すようにスクリーン座標系において、複数のオブジェクトを含む四角錘状の判定用バウンダリボックス740(斜線部分)を想定し、当該判定用バウンダリボックスが前回の仮想カメラの画角内に内包されているか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断する。
【0109】
図12はXZ平面に投影された表示対象オブジェクトと仮想カメラの画角範囲との関係について説明するための図である。714、724、734は前記視点座標系における表示対象オブジェクトがXZ平面に投影されたものである。また770及び772にはさまれたエリアはXZ平面における仮想カメラの画角範囲を示している。従って図12において770及び772にはさまれたエリアが画面内に表示可能なエリアとなる。
【0110】
また780及び782はXZ平面における表示対象オブジェクトのバウンダリを表している。すなわちバウンダリ780及び782ではさまれた斜線領域は図11(A)の四角錘のバウンダリボックス740をXZ平面に投影した領域に一致する。従って表示対象オブジェクトが画面内に表示されるためには、バウンダリ780及び782ではさまれた斜線領域が画角範囲(770及び772にはさまれたエリア)に含まれている必要がある。
【0111】
図13はYZ平面に投影された表示対象オブジェクトと仮想カメラの画角範囲との関係について説明するための図である。716、726、736は前記視点座標系における表示対象オブジェクトがYZ平面に投影されたものである。また774及び776にはさまれたエリアはYZ平面における仮想カメラの画角範囲を示している。従って図13において774及び776にはさまれたエリアが画面内に表示可能なエリアとなる。
【0112】
また790及び792はYZ平面における表示対象オブジェクトのバウンダリを表している。すなわちバウンダリ790及び792ではさまれた斜線領域は図11(A)の四角錘のバウンダリボックス740をYZ平面に投影した領域に一致する。従って表示対象オブジェクトが画面内に表示されるためには、バウンダリ790及び792ではさまれた斜線領域が画角範囲(774及び776にはさまれたエリア)に含まれている必要がある。
【0113】
図14は視点座標系で仮想カメラの設定の変更を判断する場合の処理の一例について説明するためのフローチャート図である。
【0114】
初期設定時であれは任意の位置にカメラを置き(ステップS110、S120)、それ以外であれば、前回の仮想カメラの設定(位置、向き、画角)を引き継ぐ(ステップS110、S130)。
【0115】
次に全ての表示対象オブジェクトを視点座標系に変換する(ステップS140)。ここで、表示対象オブジェクトの全ての頂点座標に基づき判定用バウンダリボックスを生成する場合には、表示対象オブジェクトの全ての頂点座標を視点座標系に変換する。また、表示対象オブジェクトの代表点に基づき判定用バウンダリボックスを生成する場合には、表示対象オブジェクトの代表点の頂点座標を視点座標系に変換する。
【0116】
次に全ての表示対象オブジェクトと仮想カメラの視線方向のなす角RXn、RYnを求める(ステップS150)。ここで例えばオブジェクト714、724、734に対するRYnはそれぞれRY1、RY2、RY3である(図12参照)。 また例えばオブジェクト716、726、736に対するRXnはそれぞれRX1、RX2、RX3である(図13参照)。
【0117】
次にRXn、RYnの最大角、最小角を検索し、判定用バウンダリボックスを作成する(ステップS160)。例えば図12ではオブジェクト714、724、734の最大角RYnはRY1であり、最小角はRY3である。したがってXZ平面における判定用バウンダリボックスはバウンダリ780及びバウンダリ782にはさまれた斜線領域となる。
【0118】
また例えば図13ではオブジェクト716、726、736の最大角RXnはRX2であり、最小角はRX3である。したがってYZ平面における判定用バウンダリボックスはバウンダリ790及びバウンダリ792にはさまれた斜線領域となる。
【0119】
次に判定用バウンダリボックスそのものが視点座標系で占める角度BX、BYの値を求める(ステップS180)。例えばXZ平面における判定用バウンダリボックスそのものが視点座標系で占める角度BYは|RY1|+|RY3|であり(図12参照)、YZ平面における判定用バウンダリボックスそのものが視点座標系で占める角度BXは|RX2|+|RX3|である(図13参照)。
【0120】
次にBXと仮想カメラの画角を比較し、BXが画角より大きい場合には仮想カメラの画角がBXより大きくなるように仮想カメラの画角を大きくするか、画角内にはいるような仮想カメラのZの移動量を求め、ワールド座標系に逆変換し、新しい仮想カメラのZ座標とする(ステップS180、S190)。
【0121】
BXが画角より大きくない場合には、BYと仮想カメラの画角を比較し、BYが画角より大きい場合には仮想カメラの画角がBYより大きくなるように仮想カメラの画角を大きくするか、画角内にはいるような仮想カメラのZの移動量を求め、ワールド座標系に逆変換し、新しい仮想カメラのZ座標とする(ステップS200、S190)。
【0122】
BXもBYも画角より大きくない場合には、判定用バウンダリボックスを決定するRYnが画角内に収まっているか否か判断する(ステップS210)。ここで判定用バウンダリボックスを決定するRYnは、例えば図12におけるRY1及びRY3である。
【0123】
収まっていない場合には画角内に入るような仮想カメラのXの移動量又はY軸ロールの向きを求めワールド座標系に逆変換し仮想カメラの設定を新しいX座標またはY軸ロールの向きとする(ステップS220)。
【0124】
収まっている場合には、判定用バウンダリボックスを決定するRXnが画角内に収まっているか否か判断する(ステップS230)。ここで判定用バウンダリボックスを決定するRXnは、例えば図13におけるRX2及びRX3である。
【0125】
収まっていない場合には画角内に入るような仮想カメラのYの移動量又はX軸ロールの回転角を求めワールド座標系に逆変換し仮想カメラの設定を新しいY座標またはX軸ロールの向きとする(ステップS240)。
【0126】
図15は透視変換してスクリーン座標系において仮想カメラの設定の変更を判断する場合の処理の一例について説明するためのフローチャート図である。
【0127】
初期設定時であれは任意の位置にカメラを置き(ステップS310、S320)、それ以外であれば、前回の仮想カメラの設定(位置、向き、画角)を引き継ぐ(ステップS310、S330)。
【0128】
次に全ての表示対象オブジェクトの透視変換を行いスクリーン座標系に変換する(ステップS340)。ここで、表示対象オブジェクトの全ての頂点座標に基づき判定用バウンダリボックスを生成する場合には、表示対象オブジェクトの全ての頂点座標を視点座標系に変換する。また、表示対象オブジェクトの代表点に基づき判定用バウンダリボックスを生成する場合には、表示対象オブジェクトの代表点の頂点座標を視点座標系に変換する。
【0129】
次に全ての表示対象オブジェクトのスクリーン座標値X、Yの最大値と最小値を検索し、スクリーン平面に判定用バウンダリボックスを生成する(ステップS350)。例えば図11(B)に示すように、オブジェクト712、722、732のスクリーン座標値(X、Y)を(X1、Y1)、(X2、Y2)、(X3、Y3)とすると、Xの最大値はX3で最小値はX1、Yの最大値はY2で最小値はY3となる。そしてこれらに基づきスクリーン平面に判定用バウンダリボックス742が生成される。
【0130】
次にスクリーン平面上の判定用バウンダリボックスと画面領域の大きさを比較し、判定用バウンダリボックスのほうが大きい場合には仮想カメラの画角に入るように仮想カメラの画角を大きくするか、画角内にはいるような仮想カメラのZの移動量を求め、ワールド座標系に逆変換し、新しい仮想カメラのZ座標とする(ステップS360、S370)。
【0131】
判定用バウンダリボックスのほうが小さい場合には、判定用バウンダリボックスのX方向が画面領域に収まっているかを判断し、収まっていない場合には判定用バウンダリボックスが画面領域内に入るような仮想カメラのXの移動量又はY軸ロールの向きを求めワールド座標系に逆変換し仮想カメラの設定を新しいX座標またはY軸ロールの向きとする(ステップS380、S390)。
【0132】
収まっている場合には、判定用バウンダリボックスのY方向が画面領域に収まっているかを判断し、収まっていない場合には判定用バウンダリボックスが画面領域内に入るような仮想カメラのYの移動量又はX軸ロールの向きを求めワールド座標系に逆変換し仮想カメラの設定を新しいY座標またはX軸ロールの向きとする(ステップS400、S410)。
【0133】
図16(A)(B)は本実施の形態のゲームシステムの生成されるゲーム画像の一例を示したものである。クレー射撃の的である810及び820が表示対象オブジェクトである。図16(A)と図16(B)では的である表示対象オブジェクト810及び820の位置は異なっているが、仮想カメラの設定(位置、向き、画角)は同じである。
【0134】
このように本実施の形態では、移動可能な複数の表示対象物を安定したカメラワークで画面内に捕らえることができる。
【0135】
3.ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図17を用いて説明する。
【0136】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0137】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0138】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0139】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、所与の画像圧縮方式で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0140】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0141】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0142】
ゲームコントローラ942からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0143】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0144】
RAM960は、各種プロセッサの作業領域として用いられる。
【0145】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0146】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0147】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【0148】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【0149】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【0150】
図18(A)に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、レバー1102、ボタン1104等を操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報(プログラム又はデータ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、この情報を格納情報と呼ぶ。
【0151】
図18(B)に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、ゲームコントローラ1202、1204を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209等に格納されている。
【0152】
図18(C)に、ホスト装置1300と、このホスト装置1300とネットワーク1302(LANのような小規模ネットワークや、インターネットのような広域ネットワーク)を介して接続される端末1304-1〜1304-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置1300が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体1306に格納されている。端末1304-1〜1304-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置1300からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末1304-1〜1304-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置1300がゲーム画像、ゲーム音を生成し、これを端末1304-1〜1304-nに伝送し端末において出力することになる。
【0153】
なお、図18(C)の構成の場合に、本発明の各手段を、ホスト装置(サーバー)と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置(サーバー)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0154】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能なセーブ用情報記憶装置(メモリカード、携帯型ゲーム装置)を用いることが望ましい。
【0155】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0156】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0157】
例えば複数のオブジェクトを含む判定用バウンダリボックスを、前記複数の各オブジェクトについて設定されたバウンダリボックスを内包するように構成してもよい。
【0158】
図19は前記複数の各オブジェクトについて設定されたバウンダリボックスを含む判定用バウンダリボックスのイメージについて説明するための模式的な図である。830、840、850はゲーム空間に存在する表示対象オブジェクトであり、832、842、852は前記各表示対象オブジェクトのバウンダリボックスである。そして860は前記各表示対象オブジェクトのバウンダリボックス832、842、852を内包する判定用バウンダリボックスであり、870が画面領域である。
【0159】
このようにすると複数のオブジェクトの端が切れることなく画面内に収めることができる。
【0160】
また例えば複数のオブジェクトを含む判定用バウンダリボックスを、前記複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定するようにしてもよい。
【0161】
図20は複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定された判定用バウンダリボックスのイメージについて説明するための模式的な図である。880、882、884、886はゲーム空間に存在する表示対象オブジェクトであり、888は前記各表示対象オブジェクトのバウンダリボックスである。そして892がバウンダリボックス888に所与のオフセット890(斜線領域)を付加して生成された判定用バウンダリボックスであり、894が画面領域である。
【0162】
このようにオフセットを付加することにより余裕を持った判定用バウンダリボックスを生成することができ、複数のオブジェクトを画面の中心付近に集めやすくなる。
【0163】
また例えば複数のオブジェクトを含む判定用バウンダリボックスを、前記複数のオブジェクトの代表点を含むように構成してもよい。このようにすると頂点座標に基づき判定用バウンダリボックスを生成する場合に比べ演算付加が少なくてすむ。また代表店に基づき生成したバウンダリボックスに所与のオフセットを付加して判定用バウンダリボックスを生成することにより、複数のオブジェクトの端が切れることなく画面内に収めることができる。
【0164】
また、本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。
【0165】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【図面の簡単な説明】
【図1】本実施形態のゲームシステムのブロック図の例である。
【図2】本実施形態の判定用バウンダリボックスのイメージについて説明するための模式的な図である。
【図3】図3(A)(B)は判定用バウンダリボックスが画面領域に内包されている例が示されている。
【図4】図4(A)(B)は、判定用バウンダリボックスが画面領域より小さいが画面領域に内包されていない例を示したものである。
【図5】判定用バウンダリボックスが画面領域内に納まっていない場合の仮想カメラの移動について説明するための図である。
【図6】判定用バウンダリボックスが画面領域内に納まっていない場合の仮想カメラの向きの変更(回転)について説明するための図である。
【図7】図7(A)(B)は、判定用バウンダリボックスが画面領域より大きくて画面領域に内包されていない例を示したものである。
【図8】判定用バウンダリボックスが大きすぎて画面領域内に納まっていない場合の仮想カメラの画角の変更について説明するための図である。
【図9】判定用バウンダリボックスが大きすぎて画面領域内に納まっていない場合の仮想カメラの位置の変更について説明するための図である。
【図10】仮想カメラの設定の変更処理について説明するためのフローチャート図である。
【図11】図11(A)(B)は視点座標系における表示対象オブジェクトの配置とバウンダリボックスの関係について説明するための図である。
【図12】XZ平面に投影された表示対象オブジェクトと仮想カメラの画角範囲との関係について説明するための図である。
【図13】YZ平面に投影された表示対象オブジェクトと仮想カメラの画角範囲との関係について説明するための図である。
【図14】視点座標系で仮想カメラの設定の変更を判断する場合の処理の一例について説明するためのフローチャート図である。
【図15】透視変換してスクリーン座標系において仮想カメラの設定の変更を判断する場合の処理の一例について説明するためのフローチャート図である。
【図16】図16(A)(B)は本実施の形態のゲームシステムの生成されるゲーム画像の一例を示したものである。
【図17】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図18】図18(A)、(B)、(C)は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【図19】複数の各オブジェクトについて設定されたバウンダリボックスを含む判定用バウンダリボックスのイメージについて説明するための模式的な図である。
【図20】複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定された判定用バウンダリボックスのイメージについて説明するための模式的な図である。
【符号の説明】
100 処理部
110 ゲーム処理部
112 移動・動作演算部
114 仮想カメラ設定部
130 画像生成部
132 ジオメトリ処理部
140 描画部
150 音生成部
160 操作部
170 記憶部
172 メインメモリ
174 フレームバッファ
180 情報記憶媒体
190 表示部
192 音出力部
194 セーブ用情報記憶装置
196 通信部
Claims (14)
- 画像生成を行うゲームシステムであって、
ゲーム空間内の複数のオブジェクトを含む判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断する手段と、
前回の仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラ位置、向き、画角の少なくともひとつの設定を変更する手段と、
を含むことを特徴とするゲームシステム。 - 請求項1において、
ゲーム空間内の複数のオブジェクトを含む判定用バウンダリボックスとして、ゲーム空間内の複数のオブジェクトの頂点又は代表点を内包するバウンダリボックスを求めることを特徴とするゲームシステム。 - 請求項1又は2において、
前回の仮想カメラと前記複数のオブジェクトを視点座標系に変換し、視点座標系における前回の仮想カメラと前記複数のオブジェクトを結ぶ線に基づき複数のオブジェクトを含む四角錘状の判定用バウンダリボックスを求め、視点座標系において前記判定用バウンダリボックスが前回の仮想カメラの画角内に入るか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断することを特徴とするゲームシステム。 - 請求項1又は2において、
前記複数のオブジェクトをスクリーン座標系に変換し、スクリーン座標系において複数オブジェクトを含む次元の判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該2次元の判定用バウンダリボックスが画面内に入るか否かを判断することを特徴とするゲームシステム。 - 請求項1乃至4のいずれかにおいて、
前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数の各オブジェクトについて設定されたバウンダリボックスを内包することを特徴とするゲームシステム。 - 請求項1乃至5のいずれかにおいて、
前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定することを特徴とするゲームシステム。 - 請求項1乃至6のいずれかにおいて、
仮想カメラ位置、向き、画角の少なくともひとつの設定又は変更を行う際には、画面領域の中央付近に判定用バウンダリボックスが配置されるように仮想カメラの位置、向き、画角のすくなくともひとつを設定又は変更を行うことを特徴とするゲームシステム。 - コンピュータにより読み取り可能な情報記憶媒体であって、
ゲーム空間内の複数のオブジェクトを含む判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断する手段と、
前回の仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラ位置、向き、画角の少なくともひとつの設定を変更する手段と、
してコンピュータを機能させるプログラムが記憶されていることを特徴とする情報記憶媒体。 - 請求項8において、
ゲーム空間内の複数のオブジェクトを含む判定用バウンダリボックスとして、ゲーム空間内の複数のオブジェクトの頂点又は代表点を内包するバウンダリボックスを求めることを特徴とする情報記憶媒体。 - 請求項8又は9において、
前回の仮想カメラと前記複数のオブジェクトを視点座標系に変換し、視点座標系における前回の仮想カメラと前記複数のオブジェクトを結ぶ線に基づき複数のオブジェクトを含む四角錘状の判定用バウンダリボックスを求め、視点座標系において前記判定用バウンダリボックスが前回の仮想カメラの画角内に入るか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断することを特徴とする情報記憶媒体。 - 請求項8又は9において、
前記複数のオブジェクトをスクリーン座標系に変換し、スクリーン座標系において複数オブジェクトを含む2次元の判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該2次元の判定用バウンダリボックスが画面内に入るか否かを判断することを特徴とする情報記憶媒体。 - 請求項8乃至11のいずれかにおいて、
前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数の各オブジェクトについて設定されたバウンダリボックスを内包することを特徴とすることを特徴とする情報記憶媒体。 - 請求項8乃至12のいずれかにおいて、
前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定することを特徴とする情報記憶媒体。 - 請求項8乃至13乃至11のいずれかにおいて、
仮想カメラ位置、向き、画角の少なくともひとつの設定又は変更を行う際には、画面領域の中央付近に判定用バウンダリボックスが配置されるように仮想カメラの位置、向き、画角のすくなくともひとつを設定又は変更を行うことを特徴とする情報記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000361617A JP4535604B2 (ja) | 2000-11-28 | 2000-11-28 | ゲームシステム及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000361617A JP4535604B2 (ja) | 2000-11-28 | 2000-11-28 | ゲームシステム及びプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002163676A JP2002163676A (ja) | 2002-06-07 |
JP2002163676A5 JP2002163676A5 (ja) | 2008-01-17 |
JP4535604B2 true JP4535604B2 (ja) | 2010-09-01 |
Family
ID=18833023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000361617A Expired - Lifetime JP4535604B2 (ja) | 2000-11-28 | 2000-11-28 | ゲームシステム及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4535604B2 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4159940B2 (ja) | 2003-07-22 | 2008-10-01 | 任天堂株式会社 | ゲームシステムおよびゲームプログラム |
JP4184182B2 (ja) | 2003-07-22 | 2008-11-19 | 任天堂株式会社 | ゲームシステムおよびゲームプログラム |
JP2006087600A (ja) * | 2004-09-22 | 2006-04-06 | Namco Ltd | プログラム、情報記憶媒体及びゲーム装置 |
JP4515221B2 (ja) * | 2004-10-29 | 2010-07-28 | 任天堂株式会社 | ゲームプログラム |
JP4244040B2 (ja) | 2005-03-10 | 2009-03-25 | 任天堂株式会社 | 入力処理プログラムおよび入力処理装置 |
JP2007068581A (ja) * | 2005-09-02 | 2007-03-22 | Nintendo Co Ltd | ゲーム装置およびゲームプログラム |
JP3979540B2 (ja) | 2005-12-28 | 2007-09-19 | 株式会社コナミデジタルエンタテインメント | ゲーム装置、ゲーム装置の制御方法、ゲームシステム、ゲームシステムの制御方法及びプログラム |
EP2023298A4 (en) * | 2006-05-09 | 2010-07-21 | Sega Corp | IMAGE PROCESSING DEVICE AND IMAGE PROCESSING PROGRAM |
JP5042651B2 (ja) * | 2007-01-31 | 2012-10-03 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体及びゲーム装置 |
JP4521020B2 (ja) * | 2007-09-27 | 2010-08-11 | 株式会社コナミデジタルエンタテインメント | ゲームプログラム、ゲーム装置、およびゲーム制御方法 |
JP5376874B2 (ja) | 2008-09-05 | 2013-12-25 | 任天堂株式会社 | 画像処理プログラムおよび画像処理装置 |
JP4879952B2 (ja) * | 2008-11-04 | 2012-02-22 | 任天堂株式会社 | 入力処理プログラムおよび入力処理装置 |
CN103038797B (zh) * | 2010-05-25 | 2016-05-04 | 田载雄 | 动画制作系统以及动画制作方法 |
JP5143883B2 (ja) * | 2010-11-12 | 2013-02-13 | 株式会社コナミデジタルエンタテインメント | 画像処理装置、画像処理プログラム、及び画像処理方法 |
JP5643617B2 (ja) * | 2010-11-18 | 2014-12-17 | 任天堂株式会社 | 画像処理プログラム、画像処理装置、画像処理方法、画像処理システム |
EP3596617A1 (en) * | 2017-03-17 | 2020-01-22 | Unity IPR APS | Method and system for automated camera collision and composition preservation |
JP6905568B2 (ja) * | 2019-11-21 | 2021-07-21 | 株式会社コーエーテクモゲームス | ゲームプログラム、ゲーム処理方法及び情報処理装置 |
CN110992485B (zh) * | 2019-12-04 | 2023-07-07 | 北京恒华伟业科技股份有限公司 | 一种gis地图三维模型方位显示方法、装置和gis地图 |
CN115220576B (zh) * | 2022-06-21 | 2024-10-01 | 北京字跳网络技术有限公司 | 画面视角控制的方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08106545A (ja) * | 1993-09-20 | 1996-04-23 | Masahide Hirabayashi | 視点・注視点・画角自動化システム |
JPH1027263A (ja) * | 1995-08-23 | 1998-01-27 | Meidensha Corp | 3次元シミュレーション方法 |
JPH11328441A (ja) * | 1998-05-11 | 1999-11-30 | Hitachi Ltd | グラフィックス表示制御方法およびコンピュータグラフイックス |
JP2000202162A (ja) * | 1999-01-12 | 2000-07-25 | Sega Enterp Ltd | ゲ―ム装置 |
-
2000
- 2000-11-28 JP JP2000361617A patent/JP4535604B2/ja not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08106545A (ja) * | 1993-09-20 | 1996-04-23 | Masahide Hirabayashi | 視点・注視点・画角自動化システム |
JPH1027263A (ja) * | 1995-08-23 | 1998-01-27 | Meidensha Corp | 3次元シミュレーション方法 |
JPH11328441A (ja) * | 1998-05-11 | 1999-11-30 | Hitachi Ltd | グラフィックス表示制御方法およびコンピュータグラフイックス |
JP2000202162A (ja) * | 1999-01-12 | 2000-07-25 | Sega Enterp Ltd | ゲ―ム装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2002163676A (ja) | 2002-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4535604B2 (ja) | ゲームシステム及びプログラム | |
JP3990252B2 (ja) | ゲームシステム、プログラム及び情報記憶媒体 | |
JP2001321562A (ja) | ゲームシステム及び情報記憶媒体 | |
JP2004341572A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2001160152A (ja) | 画像生成システム及び情報記憶媒体 | |
JP4508918B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP2007105499A (ja) | ゲームシステム、プログラム及び情報記憶媒体 | |
JP4371283B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP3442344B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP3656012B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP4167358B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP4245356B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2005209217A (ja) | ゲームシステム及び情報記憶媒体 | |
JP4266121B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4544555B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP4497690B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP4592039B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP4632521B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2001229405A (ja) | ゲームシステム及び情報記憶媒体 | |
JP4229318B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4803909B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2004329791A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4728510B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4632531B2 (ja) | ゲームシステム、情報記憶媒体及びゲームシステムの制御方法 | |
JP4391633B2 (ja) | 画像生成システム及び情報記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071127 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071127 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100319 |
|
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: 20100609 |
|
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: 20100615 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130625 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4535604 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: 20130625 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130625 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |