(57)【要約】【課題】オブジェクト同士の接触判定の結果に応じて行われるゲーム処理が、プレイヤにとって理不尽なものになることを防止することができるゲームプログラム及びゲーム装置を提供すること。【解決手段】ゲーム装置３では、接触判定部１００によって、プレイヤオブジェクト３０とブロック３１とが接触したか否かが繰り返し判定され、その判定結果は、判定結果記憶部１２０に順次記憶される。第１処理部１０４は、判定結果記憶部１２０に記憶されている判定結果において、所定時間前の判定結果を含む少なくとも１つの判定結果が、プレイヤオブジェクト３０とブロック３１とが接触したことを示す判定結果である場合に、プレイヤオブジェクト３０のジャンプを許可する。【選択図】図１０
2010273946.tif 000002
【特許請求の範囲】
【請求項１】
ゲーム空間内でオブジェクトを動作させる様子を示すゲーム画像を表示装置へ出力するゲーム装置のコンピュータに実行させるゲームプログラムであって、
前記コンピュータを、
第１オブジェクトと第２オブジェクトとが接触したか否かを繰り返し判定する接触判定手段と、
前記接触判定手段による判定結果を順次記憶する判定結果記憶手段と、
前記判定結果記憶手段に記憶されている判定結果において、所定時間前の判定結果を含む少なくとも１つの判定結果が所定の条件を満たす場合に、前記第１オブジェクトに対して所定の処理を行う処理手段として機能させるゲームプログラム。
【請求項２】
前記処理手段は、少なくとも前記所定時間前の判定結果、及び最新の判定結果のいずれか一方が所定の条件を満たす場合に、前記第１オブジェクトに対して所定の処理を行う、請求項１に記載のゲームプログラム。
【請求項３】
前記処理手段は、少なくとも前記所定時間前の判定結果、及び最新の判定結果のいずれか一方が、前記第１オブジェクトと前記第２オブジェクトとが接触したことを示す判定結果である場合に、前記第１オブジェクトに対して所定の処理を行う、請求項２に記載のゲームプログラム。
【請求項４】
前記ゲーム装置は、プレイヤによって操作される入力装置を備え、
前記ゲームプログラムは、前記コンピュータを、
前記入力装置からの操作入力を受け付ける受付手段として更に機能させ、
前記処理手段は、少なくとも前記受付手段で前記操作入力を受け付けた時の判定結果、及び前記操作入力を受け付けた時から所定時間前の判定結果のいずれか一方が所定の条件を満たす場合に、前記第１オブジェクトに対して所定の処理を行う、請求項２に記載のゲームプログラム。
【請求項５】
前記処理手段は、少なくとも前記所定時間前の判定結果と、前記最新の判定結果と、前記所定時間前の判定結果よりも後であり且つ前記最新の判定結果よりも前に前記判定結果記憶手段に記憶された判定結果のいずれかが所定の条件を満たす場合に、前記第１オブジェクトに対して所定の処理を行う、請求項１に記載のゲームプログラム。
【請求項６】
前記処理手段は、前記所定時間前の判定結果のみが所定の条件を満たす場合に、前記第１オブジェクトに対して所定の処理を行う、請求項１に記載のゲームプログラム。
【請求項７】
前記処理手段は、前記少なくとも１つの判定結果が、前記第１オブジェクトと前記第２オブジェクトとが接触したことを示す判定結果である場合に、前記第１オブジェクトに対して前記所定の処理を行う、請求項１に記載のゲームプログラム。
【請求項８】
前記ゲーム装置は、プレイヤによって操作される入力装置を備え、
前記ゲームプログラムは、前記コンピュータを、
前記入力装置からの操作入力を受け付ける受付手段として更に機能させ、
前記第１オブジェクトは、前記受付手段で受け付けられた操作入力に基づいて前記ゲーム空間内で動作するプレイヤオブジェクトである、請求項１に記載のゲームプログラム。
【請求項９】
前記ゲームプログラムは、前記コンピュータを、
前記受付手段によって受け付けられた操作入力が所定の操作入力であるか否かを判断する入力判断手段として更に機能させ、
前記処理手段は、前記少なくとも１つの判定結果が所定の条件を満たし、さらに前記入力判断手段で前記所定の操作入力であると判断された場合にのみ、前記所定の処理を行う、請求項８に記載のゲームプログラム。
【請求項１０】
前記第２オブジェクトは、地形を表すオブジェクトであり、
前記所定の処理は、前記第２オブジェクトを足場または壁として前記第１オブジェクトをジャンプさせるジャンプ処理である、請求項９に記載のゲームプログラム。
【請求項１１】
前記第２オブジェクトは、前記第１オブジェクトに対してダメージを与えるオブジェクトであり、
前記処理手段は、前記判定結果の全てが、前記第１オブジェクトと前記第２オブジェクトとが接触したことを示す判定結果である場合に、前記所定の処理として前記第１オブジェクトに対してダメージを与えるダメージ処理を行う、請求項８に記載のゲームプログラム。
【請求項１２】
前記表示装置は、液晶テレビ、パーソナルコンピュータのモニタ、プロジェクタ、及びプラズマテレビのいずれかであり、
前記所定時間は、前記接触判定手段による接触判定が行われてから当該接触判定の対象となったゲーム空間を示すゲーム画像が前記表示装置に表示されるまでの遅延時間に対応して設定される、請求項１に記載のゲームプログラム。
【請求項１３】
前記ゲームプログラムは、前記コンピュータを、
前記ゲーム装置が接続されている前記表示装置の遅延時間の入力を受け付ける遅延時間受付手段と、
前記遅延時間受付手段によって受け付けられた遅延時間に基づいて、前記所定時間を設定する設定手段として更に機能させる、請求項１２に記載のゲームプログラム。
【請求項１４】
前記ゲーム装置は、表示装置を識別する識別情報と前記遅延時間とを対応付けて記憶するデータベースとネットワークを介して通信可能に接続されており、
前記ゲームプログラムは、前記コンピュータを、
前記ゲーム装置が接続されている前記表示装置の識別情報を取得する第１取得手段と、
前記第１取得手段によって取得された識別情報に対応する遅延時間を前記データベースから取得する第２取得手段と、
前記第２取得手段によって取得された遅延時間に基づいて、前記所定時間を設定する設定手段として更に機能させる、請求項１２に記載のゲームプログラム。
【請求項１５】
前記所定時間は、前記第１オブジェクトの移動速度に基づいた時間である、請求項１に記載のゲームプログラム。
【請求項１６】
前記ゲームプログラムは、前記コンピュータを、
前記第１オブジェクトの移動速度を検出する速度検出手段と、
前記速度検出手段によって検出された移動速度に基づいて前記所定時間を算出する時間算出手段として更に機能させ、
前記時間算出手段は、前記速度検出手段によって検出される移動速度が大きくなるほど前記所定時間が長くなるように当該所定時間を算出する、請求項１５に記載のゲームプログラム。
【請求項１７】
前記ゲームプログラムは、前記コンピュータを、
前記第１オブジェクトの移動速度を検出する速度検出手段と、
前記速度検出手段によって検出された移動速度が所定速度以上であるか否かを判定する速度判定手段として更に機能させ、
前記処理手段は、前記少なくとも１つの判定結果が所定の条件を満たし、さらに前記速度判定手段によって前記所定速度以上であると判定された場合にのみ、前記所定の処理を行う、請求項１に記載のゲームプログラム。
【請求項１８】
前記処理手段は、前記所定の処理として、前記第１オブジェクトに対して２種類以上の処理を実行可能なものであり、
前記所定の条件は、前記所定の処理の種類に応じて予め定められている、請求項８に記載のゲームプログラム。
【請求項１９】
ゲーム空間内でオブジェクトを動作させる様子を示すゲーム画像を表示装置へ出力するゲーム装置であって、
第１オブジェクトと第２オブジェクトとが接触したか否かを繰り返し判定する接触判定手段と、
前記接触判定手段による判定結果をメモリに順次記憶する判定結果記憶手段と、
前記メモリに記憶されている判定結果において、所定時間前の判定結果を含む少なくとも１つの判定結果が所定の条件を満たす場合に、前記第１オブジェクトに対して所定の処理を行う処理手段とを備える、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム装置のコンピュータに実行させるゲームプログラム、及びゲーム装置に関し、より特定的には、ゲーム空間内のオブジェクト同士の接触判定を行い、その判定結果に応じてゲーム処理を行うゲーム装置のコンピュータに実行させるゲームプログラム、及びゲーム装置に関する。
【背景技術】
【０００２】
いわゆるシューティングゲームやアクションゲームでは、ゲーム空間内に登場するオブジェクト同士が接触したか否かを判定する接触判定が行われる（例えば特許文献１参照）。特許文献１に記載のゲーム装置では、プレイヤによって操作されるプレイヤオブジェクト、プレイヤオブジェクトから出射される弾・ミサイル・レーザ、敵オブジェクト、敵オブジェクトから出射される弾・ミサイル・レーザ等の各種オブジェクトに対して、予め判定領域が設定されている。この判定領域は、オブジェクトの大きさ等に応じて、大きさ・個数・配列等が決められており、対応するオブジェクトの動きに応じてゲーム空間内を移動する。ゲーム装置では、これらの判定領域が接触したか否かを判定することによって、敵キャラクタから出射された弾がプレイヤオブジェクトに命中したか否か等を判断している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−４７４４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来の液晶テレビには、放送局から受信した番組を一旦メモリに格納し、高画質化するための画像処理を行ってから画面表示する機能が搭載されている。このような画像処理は、放送局から受信した番組のみならず、ゲーム装置から所定の時間間隔で送られてくるゲーム画像に対しても同様に行われる。このため、特許文献１に記載のゲーム装置を液晶テレビに接続して使用した場合、ゲーム装置でゲーム処理が行われてからその結果を示すゲーム画像が液晶テレビに表示されるまでに若干のタイムラグが生じることがある。具体的には、ゲーム装置側で接触判定を含むゲーム処理が行われてから、そのゲーム処理の対象となったゲーム空間を示すゲーム画像が実際に液晶テレビに表示されるまでに若干の遅延が生じることがある。
【０００５】
ここで、図２１を参照して、プレイヤオブジェクトをゲーム空間内でジャンプさせる場合を例に、上記遅延による問題点について説明する。図２１は、ゲーム空間内でプレイヤオブジェクト９０がブロック９１上を移動していく様子を表すゲーム画像の図である。ゲーム装置では、プレイヤオブジェクト９０の足下に足場となるブロック９１があるか否かを判定する接触判定がフレーム単位で行われる。そして、プレイヤによってプレイヤオブジェクト９０をジャンプさせるための操作入力が行われた場合に、ゲーム装置は、プレイヤオブジェクト９０の足下にブロック９１があると判定した場合に限り、プレイヤオブジェクト９０をジャンプさせる。上述のような遅延が生じる場合、図２１（Ｃ）のゲーム画像が示すゲーム空間に対してプレイヤオブジェクト９０とブロック９１との接触判定が行われている時点で、表示装置には、それよりも例えば２フレーム分遅延した図２１（Ａ）のゲーム画像が表示される。ゲーム画像（図２１（Ａ）参照）を見たプレイヤが、プレイヤオブジェクト９０の足下にブロック９１があるのでプレイヤオブジェクト９０をジャンプさせることができると感じても、ゲーム装置側で接触判定が行われているゲーム空間（図２１（Ｃ）参照）ではプレイヤオブジェクト９０の移動によってプレイヤオブジェクト９０の足下から足場となるブロック９１がなくっているために、プレイヤオブジェクト９０をジャンプさせることができないといった現象が起こりうる。つまり、従来のゲーム装置には、ゲーム装置側で行われる接触判定のタイミングと、その接触判定の対象となったゲーム空間を示すゲーム画像が表示装置に表示されるタイミングとがずれることがあり、プレイヤにとって理不尽なゲーム処理が行われることがあるという問題があった。
【０００６】
ちなみに、このような問題は、液晶テレビを使用した場合と同様に遅延を生じる可能性がある、プラズマテレビ、パーソナルコンピュータのモニタ、プロジェクタ等を表示装置として利用した場合にも起こり得る。また、ゲーム装置と表示装置とをビデオデッキ等の１又は複数の機器を介して接続した場合には、ゲーム装置から表示装置へのゲーム画像の転送速度が低下するために、上述のような問題が起こり得る。
【０００７】
また、例えばプレイヤオブジェクト９０が高速で移動している場合に、プレイヤオブジェクト９０がブロック９１から落ちていないとプレイヤが感じていても、実際にはプレイヤオブジェクト９０がブロック９１から落ちているというように、プレイヤがゲーム画像を実際に見て感じたプレイヤオブジェクト９０の位置と、実際のプレイヤオブジェクト９０の位置との間に誤差が生じることがある。その結果、上述のような遅延が生じない場合であっても、接触判定の結果として行われるゲーム処理がプレイヤにとって理不尽なものになることがあった。
【０００８】
それ故に、本発明の目的は、オブジェクト同士の接触判定の結果に応じて行われるゲーム処理が、プレイヤにとって理不尽なものになることを防止することができるゲームプログラム及びゲーム装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【００１０】
本発明は、ゲーム空間内でオブジェクトを動作させる様子を示すゲーム画像を表示装置（２）へ出力するゲーム装置（３）のコンピュータ（１０）に実行させるゲームプログラムである。このゲームプログラムは、コンピュータ（１０）を、接触判定手段（Ｓ３，Ｓ５１）、判定結果記憶手段（Ｓ６）、及び処理手段（Ｓ１０，Ｓ５３）として機能させる。接触判定手段（Ｓ３，Ｓ５１）は、第１オブジェクトと第２オブジェクトとが接触したか否かを繰り返し判定する。判定結果記憶手段（Ｓ６）は、接触判定手段（Ｓ３，Ｓ５１）による判定結果を順次記憶する。処理手段（Ｓ１０，Ｓ５３）は、判定結果記憶手段（Ｓ６）に記憶されている判定結果において、所定時間前の判定結果を含む少なくとも１つの判定結果が所定の条件を満たす場合に、第１オブジェクトに対して所定の処理を行う。
【００１１】
ゲーム装置（３）では、ゲーム空間内で第１オブジェクト及び第２オブジェクトを含む複数のオブジェクトを動作させるゲーム処理に伴い、第１オブジェクトと第２オブジェクトとが接触したか否かが接触判定手段（Ｓ３，Ｓ５１）によって判定される。そして、ゲーム装置（３）では、このような接触判定を含むゲーム処理が行われたゲーム空間を示すゲーム画像が生成され、表示装置（２）へと出力される。この一連の処理は、ゲームの終了まで繰り返し行われる。
【００１２】
上記構成によれば、所定時間前の判定結果を考慮した上で、処理手段（Ｓ１０，Ｓ５３）による所定の処理を行うか否かが決定される。ここで、所定時間は、例えば、接触判定を含むゲーム処理が行われてから、そのゲーム処理の対象となったゲーム空間を示すゲーム画像が表示装置（２）に表示されるまでの遅延時間と一致或いはほぼ等しくなるように設定される。このため、プレイヤが見ているゲーム画像が示すゲーム空間に対する接触判定の判定結果（所定時間前の判定結果）を考慮して、所定の処理を行うか否かが決定される。その結果、表示装置（２）に表示されているゲーム空間の状態と、ゲーム装置（３）側で接触判定が行われたゲーム空間の状態とが一致するので、プレイヤにとって理不尽なゲーム処理が行われることが防止される。
【００１３】
なお、処理手段によって行われる所定の処理としては、プレイヤによる操作入力に基づいて第１オブジェクト（３０）をジャンプさせるジャンプ処理や、第１オブジェクト（３０）に対してダメージを与えるダメージ処理等が挙げられる。その他、所定の処理としては、第１オブジェクトが敵オブジェクトから出射された弾である場合、プレイヤオブジェクトに接触した弾をゲーム空間から視覚的に消去する処理が挙げられる。
【００１４】
処理手段（Ｓ１０，Ｓ５３）は、少なくとも所定時間前の判定結果、及び最新の判定結果のいずれか一方が所定の条件を満たす場合に、第１オブジェクトに対して所定の処理を行ってもよい。
【００１５】
ゲーム装置（３）に接続される表示装置（２）によっては、接触判定が行われてからその接触判定の対象となったゲーム空間を示すゲーム画像が表示されるまでに、ほとんど遅延が生じない場合も考えられる。このような場合に、所定時間前の判定結果のみを考慮すると、かえって、プレイヤが見ているゲーム画像が示すゲーム空間の状態と、ゲーム装置（３）側で接触判定の対象となるゲーム空間の状態とが一致しないこととなる。
【００１６】
上記構成によれば、このような遅延の有無を考慮して、所定時間前の判定結果と、最新の判定結果との両方が考慮された上で、第１オブジェクトに対する所定の処理を行うか否かが決定される。このように、遅延の有無に関わらずプレイヤが見ているゲーム画像が示すゲーム空間に対する接触判定の判定結果が所定の処理を行う上で考慮されるので、プレイヤにとって納得のいくゲーム処理を行うことが可能となる。
【００１７】
処理手段は、少なくとも所定時間前の判定結果、及び最新の判定結果のいずれか一方が、第１オブジェクトと第２オブジェクトとが接触したことを示す判定結果である場合に、第１オブジェクトに対して所定の処理を行ってもよい（Ｓ９）。
【００１８】
この構成によれば、例えば所定の処理がプレイヤオブジェクトをジャンプさせるジャンプ処理であるような場合に、プレイヤがプレイヤオブジェクトをジャンプさせ易くなる。すなわち、ゲームの難易度を下げることが可能となる。
【００１９】
ゲーム装置（３）は、プレイヤによって操作される入力装置（７）を備え、ゲームプログラムは、コンピュータ（１０）を、入力装置（７）からの操作入力を受け付ける受付手段として更に機能させてもよい（Ｓ７）。このような場合、処理手段は、少なくとも受付手段で操作入力を受け付けた時の判定結果、及び操作入力を受け付けた時から所定時間前の判定結果のいずれか一方が所定の条件を満たす場合に、第１オブジェクトに対して所定の処理を行うようにすればよい。
【００２０】
この構成によれば、プレイヤが入力装置を操作した時に、最新の判定結果に加えて所定時間前の判定結果を考慮した上で、第１オブジェクトに対して所定の処理を行うか否かが決定される。このため、プレイヤにとって違和感のないタイミングで、プレイヤが納得するゲーム処理を行うことが可能となる。
【００２１】
処理手段は、少なくとも所定時間前の判定結果と、最新の判定結果と、所定時間前の判定結果よりも後であり且つ最新の判定結果よりも前に判定結果記憶手段（Ｓ６）に記憶された判定結果のいずれかが所定の条件を満たす場合に、第１オブジェクトに対して所定の処理を行ってもよい。
【００２２】
この構成によれば、所定の処理を行う際に、所定時間前の判定結果、最新の判定結果、及びこれら２つの間の判定結果を含む３つ以上の判定結果が考慮されるので、所定時間前の判定結果及び最新の判定結果の２つの判定結果が考慮される場合に比べて、所定の処理を行うか否かをより的確に判断することが可能となる。
【００２３】
処理手段は、所定時間前の判定結果のみが所定の条件を満たす場合に、第１オブジェクトに対して所定の処理を行ってもよい。
【００２４】
接触判定が行われてからその接触判定の対象となったゲーム空間を示すゲーム画像が表示されるまでに遅延が生じることが明らかである場合には、必ずしも最新の判定結果を考慮する必要はない。上記構成は、このように遅延が生じることが明らかである場合に適用されると好適である。
【００２５】
処理手段は、少なくとも１つの判定結果が、第１オブジェクトと第２オブジェクトとが接触したことを示す判定結果である場合に、第１オブジェクトに対して所定の処理を行ってもよい（Ｓ９，Ｓ１０）。
【００２６】
この構成によれば、所定の処理を行うか否かを決定する際に判断の対象となる判定結果の全てが、第１オブジェクトと第２オブジェクトとが接触したことを示すものでなかったとしても、処理手段によって所定の処理が行われる。このため、例えば第１オブジェクトが、プレイヤによって操作されるプレイヤオブジェクトであり、所定の処理がプレイヤオブジェクトをジャンプさせるジャンプ処理である場合に、プレイヤオブジェクトをジャンプし易くすることが可能となる。すなわち、ゲームの難易度を下げることが可能となる。
【００２７】
ゲーム装置（３）は、プレイヤによって操作される入力装置（７）を備え、ゲームプログラムは、コンピュータ（１０）を、入力装置（７）からの操作入力を受け付ける受付手段として更に機能させ、第１オブジェクトは、受付手段で受け付けられた操作入力に基づいてゲーム空間内で動作するプレイヤオブジェクト（３０）であってもよい。
【００２８】
第１オブジェクトとしては、プレイヤオブジェクト（３０）、敵オブジェクト、これらのオブジェクトのいずれかから出射された弾やレーザ等が挙げられるが、上述のような遅延が生じた時に一番問題となるのは、第１オブジェクトが、プレイヤが操作するプレイヤオブジェクト（３０）である場合である。上記構成は、このような場合に適用されると好適である。
【００２９】
ゲームプログラムは、コンピュータ（１０）を、受付手段によって受け付けられた操作入力が所定の操作入力であるか否かを判断する入力判断手段として更に機能させてもよい（Ｓ７）。この場合、処理手段は、少なくとも１つの判定結果が所定の条件を満たし、さらに入力判断手段で所定の操作入力であると判断された場合にのみ、所定の処理を行うようにしてもよい。
【００３０】
この構成は、入力装置（７）からプレイヤオブジェクトをジャンプさせるための所定の操作入力が行われた場合に、プレイヤオブジェクトの足場がある場合に限りプレイヤオブジェクトをジャンプさせるような場合に好適である。
【００３１】
第２オブジェクトは、地形を表すオブジェクト（３１）であり、所定の処理は、第２オブジェクトを足場または壁として第１オブジェクト（３０）をジャンプさせるジャンプ処理であってもよい。
【００３２】
この構成によれば、プレイヤオブジェクト（３０）が足場または壁と接触しているのでプレイヤオブジェクト（３０）をジャンプさせることができるとプレイヤが感じてプレイヤオブジェクト（３０）をジャンプさせるための操作入力を行ったにも拘わらず、プレイヤオブジェクト（３０）をジャンプさせることができないといったプレイヤにとって理不尽なゲーム処理が行われるのを防止することが可能となる。
【００３３】
第２オブジェクトは、第１オブジェクト（３０）に対してダメージを与えるオブジェクト（３３）であってもよい。この場合、処理手段は、判定結果の全てが、第１オブジェクト（３０）と第２オブジェクト（３３）とが接触したことを示す判定結果である場合に、所定の処理として第１オブジェクト（３０）に対してダメージを与えるダメージ処理を行う。
【００３４】
この構成によれば、所定の処理を行うか否かを決定する際に判断の対象となる判定結果のいずれかが、第１オブジェクト（３０）と第２オブジェクト（３３）とが接触していないことを示す判定結果であれば、第１オブジェクト（３０）に対してダメージは与えられない。このため、第１オブジェクト（３０）が第２オブジェクト（３３）からのダメージを受けるシューティングゲームやアクションゲーム等において、ゲームの難易度を下げることができる。
【００３５】
また、表示装置は、液晶テレビ（２）、パーソナルコンピュータのモニタ、プロジェクタ、及びプラズマテレビのいずれかである。この場合、所定時間は、接触判定手段による接触判定が行われてから当該接触判定の対象となったゲーム空間を示すゲーム画像が表示装置に表示されるまでの遅延時間に対応して設定される。
【００３６】
液晶テレビ（２）に限らず、パーソナルコンピュータのモニタ、プロジェクタ、又はプラズマテレビにおいても、表示装置として液晶テレビ（２）を使用する場合と同様に、接触判定が行われてから当該接触判定の対象となったゲーム空間を示すゲーム画像が表示装置で表示されるまでに遅延が生じる。本発明は、このように遅延を生じさせる表示装置にゲーム装置（３）が接続される場合に適用されると好適であり、所定時間を表示装置に応じた遅延時間と同じ或いは略同じ時間に設定することにより、プレイヤにとって理不尽なゲーム処理が行われることを効果的に防止することが可能となる。
【００３７】
ゲームプログラムは、コンピュータ（１０）を、ゲーム装置（３）が接続されている表示装置の遅延時間の入力を受け付ける遅延時間受付手段と、遅延時間受付手段によって受け付けられた遅延時間に基づいて、所定時間を設定する設定手段として更に機能させてもよい。
【００３８】
この構成によれば、プレイヤが遅延時間を入力するだけで、プレイヤにとって理不尽なゲーム処理が行われるのを簡単に防止することが可能となる。
【００３９】
ゲーム装置（３）は、表示装置を識別する識別情報と遅延時間とを対応付けて記憶するデータベース（８）とネットワーク（９）を介して通信可能に接続されていてもよい。この場合、ゲームプログラムは、コンピュータ（１０）を、第１取得手段（Ｓ２１）、第２取得手段（Ｓ２２）、及び設定手段（Ｓ２３）として更に機能させる。第１取得手段（Ｓ２１）は、ゲーム装置（３）が接続されている表示装置の識別情報を取得する。第２取得手段（Ｓ２２）は、第１取得手段（Ｓ２１）によって取得された識別情報に対応する遅延時間をデータベース（８）から取得する。設定手段（Ｓ２３）は、第２取得手段（Ｓ２２）によって取得された遅延時間に基づいて、所定時間を設定する。
【００４０】
所定時間が表示装置に対して最適な値に設定され得るので、第１オブジェクトと第２オブジェクトとの接触判定の結果に応じて行われるゲーム処理（所定の処理）が、プレイヤにとって理不尽なものになることをより効果的に防止することが可能となる。
【００４１】
所定時間は、第１オブジェクト（３０）の移動速度に基づいた時間であってもよい。
【００４２】
第１オブジェクト（３０）が高速で移動した場合、プレイヤがゲーム画像を見て感じた第１オブジェクト（３０）の位置と、実際の第１オブジェクト（３０）の位置との間にズレが生じることがある。その結果、上述のような遅延が生じない場合であっても、接触判定の結果として行われる所定の処理がプレイヤにとって理不尽なものになることがある。これに対して、所定時間を第１オブジェクト（３０）の移動速度に基づいた時間に設定することで、所定の処理がプレイヤにとって理不尽なものになることを防止することが可能となる。
【００４３】
ゲームプログラムは、コンピュータ（１０）を、速度検出手段（Ｓ４１）、及び時間算出手段（Ｓ４２，Ｓ４３）として更に機能させてもよい。速度検出手段（Ｓ４１）は、第１オブジェクト（３０）の移動速度を検出する。時間算出手段（Ｓ４２，Ｓ４３）は、速度検出手段（Ｓ４１）によって検出された移動速度に基づいて所定時間を算出する。時間算出手段（Ｓ４２，Ｓ４３）は、速度検出手段（Ｓ４１）によって検出される移動速度が大きくなるほど所定時間が長くなるように、所定時間を算出する。
【００４４】
この構成によれば、第１オブジェクト（３０）の移動速度が大きくなるほどより古い判定結果が所定時間前の判定結果として判定結果記憶手段から読み出されるように、所定時間が変更される。これにより、プレイヤが目で見て感じた第１オブジェクト（３０）の位置と実際の第１オブジェクト（３０）の位置との誤差がゲーム装置（３）で行われるゲーム処理に与える影響を効果的に低減することができる。
【００４５】
ゲームプログラムは、コンピュータ（１０）を、第１オブジェクト（３０）の移動速度を検出する速度検出手段と、速度検出手段によって検出された移動速度が所定速度以上であるか否かを判定する速度判定手段として更に機能させてもよい。これに対して、処理手段は、少なくとも１つの判定結果が所定の条件を満たし、さらに速度判定手段によって所定速度以上であると判定された場合にのみ、所定の処理を行う。
【００４６】
ゲーム空間内で第１オブジェクトが高速移動する場合、プレイヤが目で見て感じた第１オブジェクトの位置と、実際の第１オブジェクトの位置とに誤差が生じ、その結果、プレイヤが意図しないゲーム処理が行われる可能性がある。例えば、第１オブジェクトがプレイヤオブジェクト（３０）であり、プレイヤオブジェクト（３０）がブロック（３１）から落ちていないとプレイヤが感じていても、実際にはプレイヤオブジェクト（３０）がブロック（３１）から落ちているといった場合がそれに該当する。上記構成によれば、第１オブジェクトの移動速度が所定速度以上になったことを条件として、所定時間前の判定結果が考慮されることになる。このため、ゲーム処理に対する上述の誤差の影響を低減することが可能となる。
【００４７】
処理手段は、所定の処理として、第１オブジェクトに対して２種類以上の処理を実行可能なものであり、所定の条件は、所定の処理の種類に応じて予め定められていてもよい。
【００４８】
例えば所定の処理がジャンプ処理である場合、少なくともジャンプ処理を行うか否かを決定する際に判断の対象となる判定結果のいずれかが、第１オブジェクトと第２オブジェクトとが接触したことを示す判定結果であればジャンプ処理を許可することが好ましい。また、例えば所定の処理がダメージ処理である場合、ダメージ処理を行うか否かを決定する際に判断の対象となる判定結果の全てが第１オブジェクトと第２オブジェクトとが接触したことを示す判定結果である場合にダメージ処理を行うことが好ましい。上記構成により、処理手段による所定の処理を、所定の処理の種類に応じて最適な条件で行うことが可能となる。
【００４９】
また、本発明は、ゲーム空間内でオブジェクトを動作させる様子を示すゲーム画像を表示装置（２）へ出力するゲーム装置（３）として捉えることもできる。このゲーム装置（３）は、接触判定手段（Ｓ３，Ｓ５１）、判定結果記憶手段（Ｓ６）、及び処理手段（Ｓ１０，Ｓ５３）を備える。接触判定手段（Ｓ３，Ｓ５１）は、第１オブジェクトと第２オブジェクトとが接触したか否かを繰り返し判定する。判定結果記憶手段（Ｓ６）は、接触判定手段（Ｓ３，Ｓ５１）による判定結果をメモリ（１２）に順次記憶する。処理手段は、メモリ（１２）に記憶されている判定結果において、所定時間前の判定結果を含む少なくとも１つの判定結果が所定の条件を満たす場合に、第１オブジェクトに対して所定の処理を行う。
【発明の効果】
【００５０】
本発明によれば、ゲーム処理の１つとして所定の処理を行うに際して、最新の判定結果から所定時間前の判定結果が考慮されるので、オブジェクト同士の接触判定の結果に応じて行われる処理が、プレイヤにとって理不尽なものになることを防止することができる。
【図面の簡単な説明】
【００５１】
【図１】本発明の一実施形態に係るゲームシステムの外観斜視図
【図２】ゲーム装置の構成を示すブロック図
【図３】コントローラの上面後方から見た斜視図
【図４】コントローラを下面後方から見た斜視図
【図５】コントローラの上筐体を外した状態を示す斜視図
【図６】コントローラの下筐体を外した状態を示す斜視図
【図７】コントローラの構成を示すブロック図
【図８】本発明の第１の実施形態に係るゲームプログラムを実行するゲーム装置の機能構成の一例を示す機能構成図
【図９】プレイヤオブジェクトがブロック上に位置している状態のゲーム空間を示す図
【図１０】本発明の第１の実施形態に係るゲームプログラムを実行するゲーム装置で行われる処理の一例を示すフローチャート
【図１１】ゲーム装置がインターネットを介してデータベースと通信可能に接続された状態を示す構成図
【図１２】本発明の第２の実施形態に係るゲームプログラムを実行するゲーム装置の機能構成の一例を示す機能構成図
【図１３】本発明の第２の実施形態に係るゲームプログラムを実行するゲーム装置で行われる処理の一例を示すフローチャート
【図１４】本発明の第３の実施形態に係るゲームプログラムを実行するゲーム装置の機能構成の一例を示す機能構成図
【図１５】本発明の第３の実施形態に係るゲームプログラムを実行するゲーム装置で行われる処理の一例を示すフローチャート
【図１６】本発明の第４の実施形態に係るゲームプログラムを実行するゲーム装置の機能構成の一例を示す機能構成図
【図１７】本発明の第４の実施形態に係るゲームプログラムを実行するゲーム装置で行われる処理の一例を示すフローチャート
【図１８】プレイヤオブジェクトに向かって矢が移動して行く様子を表すゲーム画像を示す図
【図１９】本発明の第５の実施形態に係るゲームプログラムを実行するゲーム装置の機能構成の一例を示す機能構成図
【図２０】本発明の第５の実施形態に係るゲームプログラムを実行するゲーム装置で行われる処理の一例を示すフローチャート
【図２１】ゲーム空間内でプレイヤオブジェクトがブロック上を移動していく様子を表すゲーム画像の図
【発明を実施するための形態】
【００５２】
［第１の実施形態］
以下、適宜図面を参照しつつ本発明の第１の実施形態について説明する。図１を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム１について説明する。図１は、ゲームシステム１の外観斜視図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置及びゲームプログラムについて説明する。
【００５３】
（ゲームシステム１の全体構成）
まず、ゲームシステム１の各構成の概略を説明する。図１において、ゲームシステム１は、液晶テレビ２、ゲーム装置３、光ディスク４、マーカ部６、及びコントローラ７を含む。本システムは、コントローラ７を用いたゲーム操作に基づいてゲーム装置３でゲーム処理を実行するものである。
【００５４】
ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置３において実行されるためのゲームプログラムが記憶されている。ゲーム装置３の前面には光ディスク４の挿入口が設けられている。ゲーム装置３は、挿入口に挿入された光ディスク４に格納されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【００５５】
ゲーム装置３には、液晶テレビ２が接続コードを介して接続される。ゲーム装置３は、仮想のゲーム空間内でオブジェクトを動作させる様子を示すゲーム画像を生成して液晶テレビ２へ出力する。この一連の処理は、本実施形態では、フレーム単位（例えば１／６０秒間隔）で行われる。液晶テレビ２は、ゲーム装置３において実行されるゲーム処理の結果として得られたゲーム画像を受信して表示する。また、液晶テレビ２の画面の周辺（図１では画面の上側）には、マーカ部６が設置される。マーカ部６は、その両端に２つのマーカ６Ｒ及び６Ｌを備えている。マーカ６Ｒ（マーカ６Ｌも同様）は、具体的には１個以上の赤外ＬＥＤであって、液晶テレビ２の前方に向かって赤外光を出力する。マーカ部６はゲーム装置３に接続されており、ゲーム装置３はマーカ部６が備える各赤外ＬＥＤの点灯を制御することが可能である。また、マーカ部６には、不図示のマイクロフォンが配設され、該マイクロフォンを介して入力された音声情報は、ゲーム装置３に入力される。
【００５６】
コントローラ７は、プレイヤによって操作されるものであって、自機に対して行われた操作の内容を示す操作データをゲーム装置３に与える入力装置である。コントローラ７とゲーム装置３とは無線通信によって接続される。本実施形態では、コントローラ７とゲーム装置３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ７とゲーム装置３とは有線で接続されてもよい。
【００５７】
（ゲーム装置３の内部構成）
次に、図２を参照して、ゲーム装置３の内部構成について説明する。図２は、ゲーム装置３の構成を示すブロック図である。ゲーム装置３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、及びＡＶ−ＩＣ１５等を有する。
【００５８】
ＣＰＵ１０は、光ディスク４に格納されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、及びＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムＬＳＩの内部構成については後述する。
【００５９】
外部メインメモリ１２は、揮発性メモリである。外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラム、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを格納したり、各種データを格納したりするものであり、ＣＰＵ１０のワーク領域、バッファ領域等として用いられる。
【００６０】
ＲＯＭ／ＲＴＣ１３は、ゲーム装置３の起動用のプログラムが組み込まれるＲＯＭ（いわゆる、ブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。
【００６１】
ディスクドライブ１４は、光ディスク４からプログラムデータ、テクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅ又は外部メインメモリ１２に読み出したデータを書き込む。
【００６２】
システムＬＳＩ１１には、入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ１１ｄ、及び内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００６３】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータ、テクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。
【００６４】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅ、外部メインメモリ１２等に格納されるサウンドデータ、音波形（音色）データ等を用いて、音声データを生成する。
【００６５】
上述のように生成された画像データ及び音声データは、ＡＶ−ＩＣ１５によって読み出
される。ＡＶ−ＩＣ１５は、読み出した画像データを、ＡＶコネクタ１６を介して液晶テレビ２に出力するとともに、読み出した音声データを、液晶テレビ２に内蔵されるスピーカ２ａに出力する。これによって、画像が液晶テレビ２に表示されるとともに音がスピーカ２ａから出力される。
【００６６】
入出力プロセッサ１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、及びメモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００６７】
入出力プロセッサ１１ａは、無線通信モジュール１８及びアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データがある場合には、無線通信モジュール１８及びアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２及び無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記録する。ＣＰＵ１０は、ゲームプログラムを実行することにより、フラッシュメモリ１７に格納されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置３と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置３を利用してプレイしたゲームのセーブデータ（ゲームの結果データ又は途中データ）が格納されてもよい。
【００６８】
また、入出力プロセッサ１１ａは、コントローラ７から送信される操作データをアンテナ２３及び無線コントローラモジュール１９を介して受信し、内部メインメモリ１１ｅ又は外部メインメモリ１２のバッファ領域に格納（一時記憶）する。
【００６９】
更に、入出力プロセッサ１１ａには、拡張コネクタ２０及びメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に換えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００７０】
ゲーム装置３には、電源ボタン２４、リセットボタン２５、及びイジェクトボタン２６が設けられる。電源ボタン２４及びリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４が押下されると、ゲーム装置３の各構成要素に対して、図示しないＡＣアダプタを経て電源が供給される。リセットボタン２５が押下されると、システムＬＳＩ１１は、ゲーム装置３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押下されると、ディスクドライブ１４から光ディスク４が排出される。
【００７１】
（コントローラ７の構成）
図３及び図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面前方から見た斜視図である。
【００７２】
図３及び図４に示されているように、コントローラ７は、例えばプラスチック成型によって形成されたハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。ハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００７３】
ハウジング７１の上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって、前後左右いずれかの方向が選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤオブジェクト等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【００７４】
なお、十字キー７２ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でも構わない。例えば、十字キー７２ａに代えて十字方向に４つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部をハウジング７１に設けても構わない。更に、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けても構わない。また、ハウジング７１の上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けても構わない。更に、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けても構わない。また、タッチパッドを、上記十字キー７２ａの代わりに設けても構わない。
【００７５】
ハウジング７１の上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、及びＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、及びプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置３が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂ及び７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００７６】
また、ハウジング７１の上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置３の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００７７】
また、ハウジング７１の上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ７から無線通信モジュール１８へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２の内、種別に対応するＬＥＤが点灯する。
【００７８】
また、ハウジング７１の上面には、操作ボタン７２ｂ及び操作ボタン７２ｅ〜７２ｇの間に後述するスピーカ７０６（図５参照）からの音を外部に放出するための音抜き孔が形成されている。
【００７９】
図４に示されているように、ハウジング７１の下面には、凹部が形成されている。ハウジング７１の下面の凹部は、プレイヤがコントローラ７の前面をマーカ６Ｌ及び６Ｒに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。
【００８０】
また、ハウジング７１の前面には、撮像情報演算部７４の一部を構成する撮像素子７４３（図７参照）が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００８１】
ここで、以下の説明を具体的にするために、コントローラ７に対して設定する座標系について定義する。図３及び図４に示すように、互いに直交するＸＹＺ軸をコントローラ７に対して定義する。具体的には、コントローラ７の前後方向となるハウジング７１の長手方向をＺ軸とし、コントローラ７の前面（撮像情報演算部７４が設けられている面）方向をＺ軸正方向とする。また、コントローラ７の上下方向をＹ軸とし、ハウジング７１の下面（操作ボタン７２ｉが設けられた面）方向をＹ軸正方向とする。更に、コントローラ７の左右方向をＸ軸とし、ハウジング７１の左側面（図３では表されずに図４で表されている側面）方向をＸ軸正方向とする。
【００８２】
次に、図５及び図６を参照して、コントローラ７の内部構造について説明する。なお、図５は、コントローラ７の上筐体（ハウジング７１の一部）を外した状態を後面側から見た斜視図である。図６は、コントローラ７の下筐体（ハウジング７１の一部）を外した状態を前面側から見た斜視図である。ここで、図６に示す基板７００は、図５に示す基板７００の裏面から見た斜視図となっている。
【００８３】
図５において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、及びアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された不図示の配線によってマイコン７５１等（図６及び図７参照）に接続される。また、無線モジュール７５３（図７参照）及びアンテナ７５４によって、コントローラ７がワイヤレスコントローラとして機能する。なお、ハウジング７１の内部には不図示の水晶振動子が設けられており、後述するマイコン７５１の基本クロックを生成する。また、基板７００の上主面上に、スピーカ７０６及びアンプ７０８が設けられる。また、加速度センサ７０１は、操作ボタン７２ｄの左側の基板７００上（つまり、基板７００の中央部ではなく周辺部）に設けられる。従って、加速度センサ７０１は、コントローラ７の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分が含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ７の回転を良好な感度でゲーム装置３等が判定することができる。
【００８４】
一方、図６において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、及び画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。更に、基板７００の下主面上にサウンドＩＣ７０７及びマイコン７５１が設けられている。サウンドＩＣ７０７は、基板７００等に形成された配線によってマイコン７５１及びアンプ７０８と接続され、ゲーム装置３から送信されたサウンドデータに応じてアンプ７０８を介してスピーカ７０６に音声信号を出力する。
【００８５】
そして、基板７００の下主面上には、バイブレータ７０４が取り付けられる。バイブレータ７０４は、例えば振動モータやソレノイドである。バイブレータ７０４は、基板７００等に形成された配線によってマイコン７５１と接続され、ゲーム装置３から送信された振動データに応じてその作動をオン／オフする。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ７０４は、ハウジング７１のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング７１が大きく振動することになり、振動を感じやすくなる。
【００８６】
次に、図７を参照して、コントローラ７の内部構成について説明する。なお、図７は、コントローラ７の構成を示すブロック図である。
【００８７】
図７において、コントローラ７は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７、及びアンプ７０８の他に、その内部に通信部７５を備えている。
【００８８】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、及び画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。すなわち、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コントローラ７のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによって、その撮像方向が変更される。
【００８９】
コントローラ７は、３軸（Ｘ、Ｙ、Ｚ軸）の加速度センサ７０１を備えていることが好ましい。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向（図３に示すＹ軸）、左右方向（図３に示すＸ軸）、及び前後方向（図３に示すＺ軸）で直線加速度を検知する。
【００９０】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、及びアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置３からのデータに応じて、サウンドＩＣ７０７及びバイブレータ７０４の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置３から送信されたサウンドデータ等を処理する。また、マイコン７５１は、通信部７５を介してゲーム装置３から送信された振動データ（例えば、バイブレータ７０４をＯＮ又はＯＦＦする信号）等に応じて、バイブレータ７０４を作動させる。
【００９１】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの３軸方向の加速度信号（Ｘ、Ｙ、及びＺ軸方向加速度データ）、及び撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、Ｘ、Ｙ、及びＺ軸方向加速度データ、処理結果データ）を無線通信モジュール１８へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から無線通信モジュール１８への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（登録商標）で構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、無線通信モジュール１８への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばブルートゥース（登録商標）の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からのＸ、Ｙ、及びＺ軸方向加速度データ、及び撮像情報演算部７４からの処理結果データがコントローラ７から送信される。そして、ゲーム装置３の無線通信モジュール１８でその電波信号を受信し、ゲーム装置３で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、Ｘ、Ｙ、及びＺ軸方向加速度データ、及び処理結果データ）を取得する。そして、ゲーム装置３のＣＰＵ１０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。
【００９２】
なお、上記のハードウェア構成は単なる一例に過ぎず、表示装置に接続して使用されるゲーム装置であれば、ゲーム装置の構成は適宜変更可能である。
【００９３】
図８は、本発明の第１の実施形態に係るゲームプログラムを実行するゲーム装置３の機能構成の一例を示す機能構成図である。図８に示されるように、ゲーム装置３のＣＰＵ１０は、機能的に、接触判定部１００、受付部１０１、入力判断部１０２、読み出し部１０３、第１処理部１０４、第２処理部１０５、及びゲーム画像生成部１０６を備えている。ゲーム装置３の外部メインメモリ１２は、機能的に、判定結果記憶部１２０を備えている。
【００９４】
ゲーム装置３のＣＰＵ１０は、光ディスク４等に予め格納された本発明に係るゲームプログラムを実行することにより、接触判定部１００、受付部１０１、入力判断部１０２、読み出し部１０３、第１処理部１０４、第２処理部１０５、及びゲーム画像生成部１０６等の機能部として機能すると共に、外部メインメモリ１２を判定結果記憶部１２０として機能させる。
【００９５】
図９は、プレイヤオブジェクト３０がブロック３１上に位置している状態のゲーム空間を示す図である。図９において、（Ａ）はプレイヤオブジェクト３０がブロック３１上に立っている状態、（Ｂ）はプレイヤオブジェクト３０がブロック３１を足場としてジャンプした状態を示している。以下、コントローラ７からの操作入力に基づいて仮想のゲーム空間内で動作するプレイヤオブジェクト３０（第１オブジェクトの一例）を、地形を表すオブジェクトであるブロック３１（第２オブジェクトの一例）を足場としてジャンプさせる場合を例に、各機能部について説明する。
【００９６】
接触判定部１００は、プレイヤオブジェクト３０とブロック３１とが接触したか否かを繰り返し判定する。ゲーム装置３では、１／６０秒を単位としてゲーム処理が行われるので、接触判定部１００による接触判定も、１／６０秒間隔で行われる。以下、プレイヤオブジェクト３０とブロック３１との接触判定の処理について説明する。
【００９７】
プレイヤオブジェクト３０には、プレイヤオブジェクト３０の足下の部分に対して判定領域３０１が予め設定されている。プレイヤオブジェクト３０がゲーム空間内を移動することにより、判定領域３０１は、プレイヤオブジェクト３０と共に移動する。一方、ブロック３１には、ブロック３１の上面の部分に対して判定領域３１１が予め設定されている。これらの判定領域３０１，３１１は、ゲーム空間において仮想的に設定され、ゲーム画像には表示されない。接触判定部１００は、プレイヤオブジェクト３０の判定領域３０１とブロック３１の判定領域３１１とが接触しているか否かを判定する。接触判定部１００によって判定領域３０１と判定領域３１１とが接触していると判定された場合には、プレイヤオブジェクト３０がジャンプするための足場があると判断することができる。逆に、接触判定部１００によって判定領域３０１と判定領域３１１とが接触していないと判定された場合には、プレイヤオブジェクト３０がジャンプするための足場がないと判断することができる。ちなみに、この種のゲームでは、プレイヤオブジェクト３０がブロック３１ではなく壁（不図示）を足場としてジャンプするような場面も考えられる。このような場合には、プレイヤオブジェクト３０の足下に加えて手の部分にも判定領域３０２，３０３を設定し、判定領域３０１，３０２，３０３のそれぞれに対して、壁に設定された判定領域に接触しているか否かを判定するようにすればよい。なお、判定領域同士の接触判定については、例えば特開２００６−３１８１３６号公報に開示されているように周知であるため、ここでの詳細な説明は省略する。
【００９８】
判定結果記憶部１２０は、接触判定部１００による判定結果を順次記憶する。本実施形態では、判定結果記憶部１２０として、連続する３フレーム分の判定結果を記憶するための記憶領域が外部メインメモリ１２に対して設定されている。このため、判定結果記憶部１２０には、接触判定部１００による最新の判定結果、最新の判定結果の１フレーム前の判定結果である中間の判定結果、及び最新の判定結果の２フレーム前の判定結果の３つの判定結果が記憶される。ここで、２フレーム前の判定結果は、本発明の所定時間前の判定結果の一例である。中間の判定結果は、２フレーム前の判定結果よりも後であり且つ最新の判定結果よりも前に判定結果記憶部１２０に記憶された判定結果である。このため、判定結果記憶部１２０に４フレーム分以上の判定結果が記憶される場合には、複数個の中間の判定結果が判定結果記憶部１２０に記憶されることとなる。
【００９９】
本実施形態では、判定結果記憶部１２０に３フレーム分の判定結果が記憶されるように、外部メインメモリ１２に対して予め記憶領域が定められている。このため、判定結果記憶部１２０に既に３つの判定結果が記憶されている場合には、接触判定部１００によって新たな接触判定が行われる毎に、判定結果記憶部１２０に記憶されている最古の判定結果（ここでは２フレーム前の判定結果）が消去され、新たな判定結果を最新の判定結果として記憶するための領域が確保される。後述するが、コントローラ７に対してプレイヤオブジェクト３０をジャンプさせるための操作入力が行われた場合に、この判定結果記憶部１２０に記憶されている判定結果を考慮した上で、プレイヤオブジェクト３０のジャンプが許可又は禁止される。
【０１００】
なお、本発明の所定時間は、接触判定部１００による接触判定が行われてから、その接触判定の対象となったゲーム空間を示すゲーム画像が液晶テレビ２に表示されるまでの遅延時間に対応する値に設定される。本実施形態では、この遅延時間が２／６０秒であると想定されているために、所定時間が遅延時間と同じ２／６０秒に設定されている。そして、接触判定部１００による接触判定が１／６０秒間隔で行われるので、判定結果記憶部１２０には、最新の判定結果から２／６０秒前（２フレーム前）の判定結果までの３フレーム分の判定結果が記憶される。ただし、所定時間は、遅延時間に応じて適切な値に設定されるべきものであり、例えば遅延時間が４／６０秒であると想定される場合には所定時間を４／６０秒に設定して、最新の判定結果から４／６０秒前（４フレーム前）の判定結果までの５フレーム分の判定結果が判定結果記憶部１２０に記憶されるようにしてもよい。なお、遅延時間が１／６０秒で割り切れない時間である場合には、所定時間を、遅延時間に最も近く、且つ１／６０秒で割り切れる時間に設定すればよい。例えば、遅延時間が２．８／６０である場合には所定時間を３／６０秒に設定し、遅延時間が１．２／６０秒である場合には、所定時間を１／６０秒に設定すればよい。
【０１０１】
上述のように、ゲーム装置３には、操作部７２からのキーデータ、加速度センサ７０１からのＸ、Ｙ、及びＺ軸方向加速度データ、及び撮像情報演算部７４からの処理結果データがコントローラ７から無線送信される。受付部１０１は、コントローラ７から無線送信されたこれらのデータを無線通信モジュール１８で受信して復調又は復号することによって操作情報を取得する。受付部１０１は、このようにして操作情報を取得することによって、プレイヤオブジェクト３０を動作させるためのコントローラ７からの操作入力を受け付ける。判定結果記憶部１２０に最新の判定結果として記憶される判定結果は、この受付部１０１で操作入力を受け付けた時の判定結果である。すなわち、所定時間前の判定結果とは、受付部１０１で操作入力を受け付けた時から所定時間前の判定結果である。
【０１０２】
入力判断部１０２は、受付部１０１によって受け付けられた操作入力が所定の操作入力であるか否かを判断する。本実施形態では、入力判断部１０２は、受付部１０１によって取得された操作情報に、プレイヤオブジェクト３０をジャンプさせるための操作部７２からのキーデータが含まれているか否かを判断する。すなわち、入力判断部１０２は、受付部１０１によって受け付けられた操作入力が、プレイヤオブジェクト３０をジャンプさせるための操作入力（所定の操作入力の一例）であるか否かを判断する。
【０１０３】
読み出し部１０３は、判定結果記憶部１２０に記憶されている複数（ここでは３つ）の判定結果の中から、２フレーム前（所定時間前）の判定結果を含む少なくとも１つの判定結果を読み出して第１処理部１０４へと出力する。本実施形態では、読み出し部１０３は、２フレーム前の判定結果、中間の判定結果、及び最新の判定結果の３つの判定結果を判定結果記憶部１２０から読み出して第１処理部１０４へ出力する。なお、読み出し部１０３による判定結果の読み出しは、本実施形態では、受付部１０１によって受け付けられた操作入力がプレイヤオブジェクト３０をジャンプさせるための操作入力であると入力判断部１０２によって判断された場合に行われる。すなわち、受付部１０１によって受け付けられた操作入力がプレイヤオブジェクト３０をジャンプさせるための操作入力以外の操作入力である場合には、読み出し部１０３による判定結果の読み出しは行われない。
【０１０４】
第１処理部１０４は、読み出し部１０３によって読み出された判定結果が所定の条件を満たす場合に、プレイヤオブジェクト３０に対して所定の処理を行う。上述のように、読み出し部１０３による判定結果の読み出しは、受付部１０１によって受け付けられた操作入力がプレイヤオブジェクト３０をジャンプさせるための操作入力であると入力判断部１０２によって判断された場合に行われる。このため、所定の処理は、入力判断部１０２でプレイヤオブジェクト３０をジャンプさせるための操作入力であると判断され、さらに、読み出し部１０３によって読み出された判定結果が所定の条件を満たしている場合に行われる。本実施形態では、第１処理部１０４は、少なくとも読み出し部１０３によって読み出された３つの判定結果のいずれかが、プレイヤオブジェクト３０とブロック３１とが接触したことを示す判定結果であるか否かを判断する。そして、第１処理部１０４は、３つの判定結果のいずれかが、プレイヤオブジェクト３０とブロック３１とが接触したことを示す判定結果である場合に、所定の処理として、ブロック３１を足場としてプレイヤオブジェクト３０をジャンプさせるジャンプ処理を行う。
【０１０５】
第２処理部１０５は、ゲーム空間内でプレイヤオブジェクト３０以外のオブジェクトである敵オブジェクトや敵オブジェクトから出射された弾を移動させるといった、第１処理部１０４では行われていないその他のゲーム処理を行う。すなわち、第１処理部１０４及び第２処理部１０５によって、接触判定を含むゲーム処理が行われる。
【０１０６】
ゲーム画像生成部１０６は、第１処理部１０４と第２処理部１０５によるゲーム処理が行われた後のゲーム空間を示すゲーム画像を生成する。具体的には、ゲーム画像生成部１０６は、第１処理部１０４と第２処理部１０５によって行われたゲーム処理の内容を示す情報と共にグラフィックコマンドをＧＰＵ１１ｂへ出力する。これを受けて、ＧＰＵ１１ｂは、ゲーム画像を生成するために必要なデータをＶＲＡＭ１１ｄから読み出してゲーム画像を生成する。このようにして生成されたゲーム画像は、ＡＶ−ＩＣ１５によってＡＶコネクタ１６を介して液晶テレビ２へ１／６０秒間隔で出力される。すなわち、接触判定部１００による接触判定、第１処理部１０４と第２処理部１０５によるゲーム処理、及びゲーム画像生成部１０６によるゲーム画像生成処理を含む一連の処理が、１秒間に６０回繰り返される。液晶テレビ２は、ゲーム装置３から送られてきたゲーム画像を順次メモリに蓄積し、蓄積されたゲーム画像に対して高画質化するための画像処理を施してから画面表示する。
【０１０７】
以下、図１０を参照して、ゲーム装置３で行われる処理の手順について説明する。図１０は、本発明の第１の実施形態に係るゲームプログラムを実行するゲーム装置３で行われる処理の一例を示すフローチャートである。なお、以下のフローチャートに基づいて説明するゲーム装置３の処理は、光ディスク４に記憶されているゲームプログラムに基づいてＣＰＵ１０が発行する命令に従って行われる。
【０１０８】
ゲーム装置３の電源ボタン２４が押下されると、ゲーム装置３において初期処理が行われる（ステップＳ１）。具体的には、光ディスク４に記憶されているゲームプログラムが読み出されて、外部メインメモリ１２に格納される。そして、ＣＰＵ１０によって仮想のゲーム空間が構築され、プレイヤオブジェクト３０がゲーム空間内の所定の初期位置に配置される。そして、プレイヤオブジェクト３０の周辺のゲーム空間を示すゲーム画像が生成されて、液晶テレビ２に表示される。このようにして、ゲームを開始するための準備処理が行われた後、ＣＰＵ１０は、外部メインメモリ１２上のゲームプログラムを実行することによって、ゲームを開始する（ステップＳ２）。
【０１０９】
ゲームが開始されると、接触判定部１００は、プレイヤオブジェクト３０の足下に足場があるか否かを判定する（ステップＳ３）。具体的には、接触判定部１００は、プレイヤオブジェクト３０の判定領域３０１と、ブロック３１の判定領域３１１とが接触しているか否かを判定する。
【０１１０】
続いて、接触判定部１００は、判定結果記憶部１２０にステップＳ３の接触判定によって得られた判定結果を記憶するための空き領域があるか否かを判断する（ステップＳ４）。具体的には、接触判定部１００は、判定結果記憶部１２０に既に３フレーム分の判定結果が記憶されているか否かを判断する。接触判定部１００は、判定結果記憶部１２０に空き領域がないと判断した場合（ステップＳ４：ＮＯ）、判定結果記憶部１２０から最も古い判定結果を消去する（ステップＳ５）。なお、本実施形態では、最新の判定結果から２フレーム前の判定結果が最も古い判定結果であるので、このステップＳ５では、２フレーム前の判定結果が消去される。一方、判定結果記憶部１２０に空き領域があると接触判定部１００によって判断された場合（ステップＳ４：ＹＥＳ）、処理がステップＳ６へ進められる。
【０１１１】
接触判定部１００は、ステップＳ５の処理を行った後、又はステップＳ４でＹＥＳと判断した場合、ステップＳ３の接触判定によって得られた判定結果を最新の判定結果として判定結果記憶部１２０に格納する（ステップＳ６）。
【０１１２】
ステップＳ６の処理によって判定結果記憶部１２０に最新の判定結果が記憶されると、入力判断部１０２は、コントローラ７に対してプレイヤオブジェクト３０をジャンプさせるための操作入力が行われたか否かを、受付部１０１によって取得された操作情報に基づいて判断する（ステップＳ７）。プレイヤオブジェクト３０をジャンプさせるための操作入力が行われていないと入力判断部１０２が判断した場合（ステップＳ７：ＮＯ）、処理が後述するステップＳ１１へ進められる。
【０１１３】
プレイヤオブジェクト３０をジャンプさせるための操作入力が行われていると入力判断部１０２が判断した場合（ステップＳ７：ＹＥＳ）、読み出し部１０３は、判定結果記憶部１２０から全ての判定結果を読み出す（ステップＳ８）。すなわち、入力判断部１０２は、最新の判定結果、１フレーム前の判定結果、及び２フレーム前の判定結果を判定結果記憶部１２０から読み出す。
【０１１４】
第１処理部１０４は、少なくとも読み出し部１０３によって読み出された連続する３フレーム分の判定結果のいずれかが、プレイヤオブジェクト３０の足下に足場があることを示す判定結果であるか否かを判断する（ステップＳ９）。ここでは、第１処理部１０４は、少なくとも読み出し部１０３によって読み出された３フレーム分の判定結果のいずれかが、判定領域３０１と判定領域３１１とが接触したことを示す判定結果であるか否かを判断する。３フレーム分の判定結果が、いずれも判定領域３０１と判定領域３１１とが接触したことを示す判定結果ではないと第１処理部１０４が判断した場合（ステップＳ９：ＮＯ）、処理がステップＳ１１へ進められる。
【０１１５】
第１処理部１０４は、３フレーム分の判定結果のいずれかが、判定領域３０１と判定領域３１１とが接触したことを示す判定結果であると判断した場合（ステップＳ９：ＹＥＳ）、ブロック３１を足場としてプレイヤオブジェクト３０をジャンプさせるジャンプ処理を行う（ステップＳ１０）。その際、第１処理部１０４は、受付部１０１によって取得された操作情報に、プレイヤオブジェクト３０をジャンプさせるためのキーデータの他に、プレイヤオブジェクト３０の移動方向を指示するキーデータが含まれている場合には、そのキーデータで示される方向へプレイヤオブジェクト３０をジャンプさせる。このように、第１処理部１０４は、少なくとも１つの判定結果が、プレイヤオブジェクト３０とブロック３１とが接触したことを示す判定結果である場合に、プレイヤオブジェクト３０に対してジャンプ処理を行う。
【０１１６】
ステップＳ１０のジャンプ処理が行われた場合、ステップＳ７でＮＯと判断された場合、又はステップＳ９でＮＯと判断された場合、第２処理部１０５は、その他のゲーム処理を行う（ステップＳ１１）。具体的には、第２処理部１０５は、ゲーム空間に登場するプレイヤオブジェクト３０以外のオブジェクトである、敵オブジェクトや敵オブジェクトから出射された弾等（本発明の第２オブジェクトの一例）を移動させるといったゲーム処理を行う。なお、ステップＳ７においてＮＯと判断された後、又はステップＳ９においてＮＯと判断された後にステップＳ１１の処理が行われる場合、受付部１０１によって取得された操作情報にプレイヤオブジェクト３０の移動方向を指示するキーデータが含まれていれば、そのキーデータに応じてプレイヤオブジェクト３０を移動させる処理がこのステップＳ１１において行われる。
【０１１７】
ステップＳ１１のその他のゲーム処理が行われると、ゲーム画像生成部１０６は、ステップＳ１１のゲーム処理が行われた後のゲーム空間を示すゲーム画像を生成して液晶テレビ２へ出力する（ステップＳ１２）。
【０１１８】
ゲーム画像が出力された後、ゲームを終了するか否かが判断される（ステップＳ１３）。具体的には、コントローラ７から取得した操作情報に、ゲームの終了を指示するデータが含まれているか否かが判断される。コントローラ７から取得した操作情報にゲームの終了を指示するデータが含まれている場合（ステップＳ１３：ＹＥＳ）、ゲームが終了される。一方、コントローラ７から取得した操作情報にゲームの終了を指示するデータが含まれていない場合（ステップＳ１３：ＮＯ）、処理がステップＳ３へ戻される。そして、以降、ステップＳ１３においてゲームを終了すると判断されるまで、ステップＳ３〜ステップＳ１３の一連の処理がフレーム毎に（１秒間に６０回）繰り返される。
【０１１９】
以上説明したように、本発明の第１の実施形態によれば、２フレーム前（所定時間前）の判定結果を考慮した上で、プレイヤオブジェクト３０のジャンプ処理を許可するか否かが決定される。この２フレーム前というフレーム数は、上述したように、接触判定が行われてから、その接触判定の対象となったゲーム空間を示すゲーム画像が液晶テレビ２に表示されるまでの遅延時間に対応するように設定されている。このため、プレイヤが見ている液晶テレビ２のゲーム画像が示すゲーム空間の状態と、ゲーム装置３側で接触判定の対象となったゲーム空間の状態とを一致させることができる。言い換えれば、プレイヤオブジェクト３０のジャンプ処理を許可するか否かを決定する際に、プレイヤが見ているゲーム画像が示すゲーム空間に対する接触判定の結果（２フレーム前の判定結果）が考慮される。このため、接触判定の結果として行われるゲーム処理が、プレイヤにとって理不尽なものになることを防止することができる。例えば、プレイヤオブジェクト３０がブロック３１と接触しているのでプレイヤオブジェクト３０をジャンプさせることができるとプレイヤが感じてプレイヤオブジェクト３０をジャンプさせるための操作入力を行ったにも拘わらず、プレイヤオブジェクト（３０）をジャンプさせることができないといった問題が生じることを防止することができる。
【０１２０】
ところで、ゲーム装置３に接続される表示装置によっては、接触判定が行われてからその接触判定の対象となったゲーム空間を示すゲーム画像が表示されるまでに、ほとんど遅延が生じない場合もある。このような場合に、２フレーム前の判定結果のみを考慮するようにすると、プレイヤが見ているゲーム画像が示すゲーム空間に対する判定結果（ここでは最新の判定結果）が考慮されないこととなる。本実施形態では、このような遅延の有無を考慮して、２フレーム前の判定結果と、最新の判定結果との両方が考慮される。すなわち、遅延の有無に関わらずプレイヤが見ているゲーム画像が示すゲーム空間の判定結果が考慮されるので、プレイヤにとって納得のいくゲーム処理を行うことができる。
【０１２１】
また、本実施形態では、プレイヤがコントローラ７を操作した時に、最新の判定結果に加えて所定時間前の判定結果及び中間の判定結果を考慮した上で、プレイヤオブジェクト３０をジャンプさせるか否かが判断され、条件を満たせばプレイヤオブジェクト３０のジャンプが許可される。このため、プレイヤにとって違和感のないタイミングで、プレイヤが納得するゲーム処理を行うことができる。
【０１２２】
また、本実施形態では、少なくとも１つの判定結果が、プレイヤオブジェクト３０とブロック３１とが接触していることを示す判定結果であればプレイヤオブジェクト３０のジャンプ処理が許可される。このため、２フレーム前の判定結果しか考慮されない場合や、最新の判定結果しか考慮されない場合に比べて、プレイヤオブジェクト３０がジャンプし易くなる。すなわち、プレイヤにとって理不尽なゲーム処理が行われるのを防止できるだけでなく、ゲームの難易度を下げることができる。
【０１２３】
なお、本実施形態では、２フレーム前の判定結果、中間の判定結果、及び最新の判定結果の３つの判定結果に基づいてプレイヤオブジェクト３０のジャンプ処理を許可するか否かを決定する場合について説明した。これに代えて、少なくとも２フレーム前（所定時間前の一例）の判定結果及び最新の判定結果の２つの判定結果のいずれか一方がプレイヤオブジェクト３０とブロック３１とが接触していることを示す判定結果である場合に、プレイヤオブジェクトに対してジャンプ処理を行うようにしてもよい。これにより、中間の判定結果が考慮されなくなるので、ＣＰＵ１０の処理負担を軽減することができる。
【０１２４】
また、本実施形態では、本発明の第２オブジェクトが地形を表すオブジェクトの一例であるブロック３１である場合について説明したが、第２オブジェクトは、その他のオブジェクトであってもよい。第２オブジェクトは、例えばプレイヤオブジェクト３０に対してダメージを与える敵オブジェクト、敵オブジェクトから出射された弾・ミサイル・レーザ等であってもよい。このような場合、第１処理部１０４では、ジャンプ処理に代わる所定の処理として、プレイヤオブジェクト３０に対してダメージを与えるダメージ処理が行われる。第１の実施形態の構成では、少なくとも判定結果記憶部１２０に記憶されている判定結果のいずれかが、プレイヤオブジェクト３０と第２オブジェクトとが接触したことを示す判定結果であればプレイヤオブジェクト３０に対してダメージが与えられることになるので、所定の処理としてジャンプ処理が行われる場合とは逆に、ゲームの難易度を上げることができる。つまり、第１処理部１０４によって行われる処理をどのようなゲーム処理に適用するかによって、ゲームの難易度を調整することが可能である。なお、ゲームの難易度を上げると、プレイヤにとって理不尽なゲーム処理が行われるおそれがある。このため、判定結果記憶部１２０から読み出された全ての判定結果が、プレイヤオブジェクト３０と第２オブジェクトとが接触したことを示す判定結果であることを条件としてプレイヤオブジェクト３０にダメージを与えるようにすることが望ましい。これにより、例えば少なくとも３フレーム分の判定結果のいずれかが、接触していないことを示す判定結果であればプレイヤオブジェクト３０がダメージを受けずに済むので、ゲームの難易度を下げることができる。
【０１２５】
また、本実施形態では、プレイヤオブジェクト３０が本発明の第１オブジェクトであり、ブロック３１が本発明の第２オブジェクトである場合について説明したが、第１オブジェクト及び第２オブジェクトはこれに限定されるものではない。例えば、第１オブジェクトが敵オブジェクトであり、第２オブジェクトがプレイヤオブジェクトであってもよい。このような場合において、プレイヤオブジェクトが敵オブジェクトからの攻撃を受けてもダメージを受けない無敵状態となっている期間中に、少なくとも読み出し部１０３によって読み出された判定結果のいずれかが、敵オブジェクトにプレイヤオブジェクトが接触したことを示す判定結果であれば敵オブジェクトに対してダメージ処理が行われるので、プレイヤにとってより有利なゲーム処理を行うことができる。
【０１２６】
また、本実施形態では、本発明の表示装置が液晶テレビ２である場合について説明したが、表示装置は、液晶テレビ２に限定されるものではなく、パーソナルコンピュータのモニタ、プロジェクタ、プラズマテレビ等であってもよい。これらの表示装置は、液晶テレビ２と同様に遅延を生じるおそれがある表示装置である。
【０１２７】
［第２の実施形態］
以下、本発明の第２の実施形態について説明する。第１の実施形態では、所定時間が２／６０秒に設定されている場合について説明したが、所定時間は、接触判定が行われてからその接触判定の対象となったゲーム空間を示すゲーム画像が表示装置に表示されるまでの遅延時間に応じて適宜変更されることが望ましい。すなわち、遅延時間がより長い表示装置がゲーム装置３に接続される場合には、所定時間が２／６０秒ではなく例えば４／６０秒に設定されていることが望ましい。そこで、第２の実施形態では、ゲーム装置３に接続される表示装置の種類に応じて、所定時間が最適な値に設定される場合について説明する。
【０１２８】
図１１は、ゲーム装置３がインターネット９を介してデータベース８と通信可能に接続された状態を示す構成図である。第２の実施形態におけるゲーム装置は、インターネット９を介してデータベース８と通信可能に接続されている点、ゲーム装置の機能構成の一部が異なる他は、第１の実施形態におけるゲーム装置３と同様の構成を備えている。このため、第２の実施形態では、第１の実施形態におけるゲーム装置３と共通する構成については同一符号を付してその説明を省略し、異なる点について説明する。
【０１２９】
図１１に示されているように、ゲーム装置３は、インターネット９を介してデータベース８と通信可能に接続されている。データベース８は、表示装置の型番と、遅延時間とを対応付けて記憶している。ここでの遅延時間は、ゲーム装置３で接触判定を含むゲーム処理が行われてからそのゲーム処理の対象となったゲーム空間を示すゲーム画像が表示装置で表示されるまでのタイムラグを示す時間である。このように、データベース８は、表示装置を識別する識別情報（ここでは表示装置の型番）と、遅延時間とを対応付けて記憶している。なお、表示装置を識別するための識別情報は、表示装置の型番に限定されるものではなく、例えば表示装置の名称や表示装置を製造したメーカ名等であってもよい。
【０１３０】
図１２は、第２の実施形態に係るゲームプログラムを実行するゲーム装置３の機能構成の一例を示す機能構成図である。図１２に示されているように、ゲーム装置３のＣＰＵ１０は、第１の実施形態と同様に、機能的に、接触判定部１００、受付部１０１、入力判断部１０２、第２処理部１０５、及びゲーム画像生成部１０６を備えている。また、ＣＰＵ１０は、機能的に、読み出し部１０３及び第１処理部１０４に代えて、読み出し部１１３及び第１処理部１１４を備えると共に、第１取得部１０７、第２取得部１０８、及び設定部１０９を更に備えている。
【０１３１】
第１取得部１０７は、ゲーム装置３が接続されている表示装置の識別情報を取得する。具体的には、第１取得部１０７は、ゲーム装置３が接続されている表示装置に対して、当該表示装置の識別情報を要求するためのコマンドを送信する。そして、第１取得部１０７は、そのコマンドに応じて表示装置から返送された識別情報を受信することにより、表示装置の識別情報を取得する。なお、例えば、第１取得部１０７は、表示装置の識別情報の一覧をゲーム装置３が接続されている表示装置に表示させ、コントローラ７に対する操作入力によってプレイヤが選択した識別情報を、表示装置の識別情報として取得するようにしてもよい。
【０１３２】
第２取得部１０８は、第１取得部１０７によって取得された識別情報に対応する遅延時間をデータベース８から取得する。具体的には、第２取得部１０８は、インターネット９を介してデータベース８にアクセスし、第１取得部１０７から取得したものと同じ識別情報が対応付けられている遅延時間をデータベース８から受信する。
【０１３３】
設定部１０９は、第２取得部１０８によって取得された遅延時間に基づいて、所定時間を設定する。具体的には、設定部１０９は、判定結果記憶部１２０として用いられる外部メインメモリ１２の記憶領域の広さを変更することによって、判定結果記憶部１２０に記憶される判定結果の数を変更する。例えば第２取得部１０８によって取得された遅延時間が３／６０秒である場合、所定時間を３／６０秒に決定し、最新の判定結果から３フレーム前の判定結果までの４フレーム分の判定結果が記憶されるように、判定結果記憶部１２０として用いられる記憶領域の広さを変更する。また、例えば第２取得部１０８によって取得された遅延時間が１／６０秒である場合、所定時間を１／６０秒に決定し、最新の判定結果から１フレーム前の判定結果までの２フレーム分の判定結果が記憶されるように、判定結果記憶部１２０として用いられる記憶領域の広さを変更する。
【０１３４】
読み出し部１１３は、所定時間前の判定結果のみを判定結果記憶部１２０から読み出す点を除き、第１の実施形態における読み出し部１０３と同様に機能する。このように、第２の実施形態では所定時間前の判定結果のみが判定結果記憶部１２０から読み出されるので、第１処理部１１４は、ジャンプ処理を行うに際して、所定時間前の判定結果のみを考慮する。なお、第１処理部１１４は、考慮する判定結果が判定結果記憶部１２０に記憶されている全ての判定結果ではない点を除き、第１の実施形態における第１処理部１０４と同様に機能する。
【０１３５】
以下、図１３を参照して、ゲーム装置３で行われる処理の手順について説明する。図１３は、本発明の第２の実施形態に係るゲームプログラムを実行するゲーム装置３で行われる処理の一例を示すフローチャートである。なお、図１３に示されている処理の中には、図１０に示されている処理と共通する処理が含まれているので、共通する処理については同一のステップ番号を付してその説明を省略する。
【０１３６】
ステップＳ１の初期処理が完了すると、第１取得部１０７は、液晶テレビ２から識別情報を取得する（ステップＳ２１）。具体的には、第１取得部１０７は、識別情報の送信を要求するコマンドを液晶テレビ２へ出力し、液晶テレビ２から返信される識別情報を受信する。識別情報が取得されると、第２取得部１０８は、データベース８にアクセスして、第１取得部１０７によって取得された識別情報に対応する遅延時間をデータベース８から取得する（ステップＳ２２）。
【０１３７】
第２取得部１０８によって遅延時間が取得されると、設定部１０９は、遅延時間に基づいて所定時間を設定する（ステップＳ２３）。具体的には、設定部１０９は、所定時間を遅延時間に対応する時間に決定した後、決定した所定時間を接触判定が行われる時間間隔で除算することによって、その所定時間に対応するフレーム数を算出する。例えば、所定時間が４／６０秒であり、時間間隔が１／６０秒である場合には、フレーム数「４」を算出することができる。設定部１０９は、算出したフレーム数前の判定結果が最古の判定結果となるように、判定結果記憶部１２０として用いられる記憶領域の広さを変更する。このように所定時間が設定された後に、処理がステップＳ２に進められる。
【０１３８】
ステップＳ７において、コントローラ７に対してプレイヤオブジェクト３０をジャンプさせるための操作入力が行われたと入力判断部１０２が判断した場合（ステップＳ７：ＹＥＳ）、読み出し部１１３は、ステップＳ２３の処理で変更された後の所定時間前の判定結果のみを判定結果記憶部１２０から読み出す（ステップＳ２４）。本実施形態では、読み出し部１１３は、４フレーム前の判定結果のみを判定結果記憶部１２０から読み出す。これに対して、第１処理部１１４は、読み出し部１１３によって読み出された判定結果が、プレイヤオブジェクト３０の足下に足場があることを示す判定結果であるか否かを判断する（ステップＳ２５）。このステップＳ２５の処理により、ステップＳ１０のジャンプ処理を行うか否かを決定する。
【０１３９】
なお、ステップＳ２４の処理では、第１の実施形態におけるステップＳ８の処理とは異なり、所定時間前の判定結果のみが判定結果記憶部１２０から読み出される。これは、接触判定を含むゲーム処理が行われてからそのゲーム処理の結果を表すゲーム画像が表示されるまでのタイムラグが、ステップＳ２２の処理で取得された遅延時間から明らかだからであり、最新の判定結果や中間の判定結果を必ずしも考慮する必要がないからである。
【０１４０】
以上説明したように、本発明の第２の実施形態によれば、本発明の所定時間が、ゲーム装置３に接続される表示装置に対して最適な値に設定されるので、オブジェクト同士の接触判定の結果に応じて行われるゲーム処理が、プレイヤにとって理不尽なものになることをより効果的に防止することができる。また、ジャンプ処理を行うか否かを決定する際に第１処理部１１４が考慮する判定結果が１つであるため、第１の実施形態に比べて、ＣＰＵ１０の処理負荷を低減させることができる。
【０１４１】
なお、本実施形態では、表示装置の遅延時間がデータベース８に記憶されている場合について説明したが、表示装置の性能（例えばデータ処理の速度）を示す性能情報を表示装置の識別情報に対応付けてデータベース８に記憶しておくようにしてもよい。この場合、ゲーム装置３において、ゲーム装置３が接続されている表示装置に対応する性能情報を第２取得部１０８がデータベース８から取得し、取得された性能情報から遅延時間を所定の演算処理によって算出した後、算出された遅延時間を所定時間として設定するようにすればよい。
【０１４２】
また、本実施形態では、本発明のネットワークがインターネット９である場合について説明したが、ネットワークは、例えばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のその他のネットワークであってもよい。
【０１４３】
また、第２取得部１０７を、ゲーム装置３が接続されている表示装置の遅延時間の入力を例えばコントローラ７から受け付ける遅延時間受付手段として機能させ、設定部１０９を、第２取得部１０７によって受け付けられた遅延時間に基づいて所定時間を設定する設定手段として機能させてもよい。これにより、データベース８やインターネット９との接続環境をゲームシステムに追加することなく、第２の実施形態と同様の効果を得ることができる。なお、この場合、第１取得部１０６は不要である。
【０１４４】
［第３の実施形態］
以下、本発明の第３の実施形態について説明する。上述のように、プレイヤは、コントローラ７を操作することによってプレイヤオブジェクト３０（図９参照）の動作をコントロールすることができる。しかしながら、プレイヤがコントローラ７を操作する感覚と、コントローラ７に対する操作入力に応じて行われるゲーム処理の内容が必ずしも一致する訳ではない。このため、プレイヤオブジェクト３０を高速移動させた場合に、プレイヤが目で見て感じたプレイヤオブジェクト３０の位置と実際のプレイヤオブジェクト３０の位置とに誤差が生じ、その結果、プレイヤが意図しないゲーム処理が行われてしまうことも考えられる。例えば、プレイヤオブジェクト３０がブロック３１から落ちていないとプレイヤが感じていても、実際にはプレイヤオブジェクト３０がブロック３１から落ちているといった場合がそれに該当する。第３の実施形態では、プレイヤオブジェクト３０が高速移動している場合に限り、ゲーム処理に対する上述の誤差の影響を軽減する処理が行われる。
【０１４５】
第３の実施形態のゲーム装置は、ゲーム装置の機能構成の一部が異なる他は、第１の実施形態におけるゲーム装置３と同様の構成を備えている。このため、第３の実施形態では、第１の実施形態におけるゲーム装置３と共通する構成については同一符号を付してその説明を省略し、異なる点について説明する。
【０１４６】
図１４は、第３の実施形態に係るゲームプログラムを実行するゲーム装置３の機能構成の一例を示す機能構成図である。図１４に示されているように、ゲーム装置３のＣＰＵ１０は、第１の実施形態と同様に、機能的に、接触判定部１００、受付部１０１、入力判断部１０２、第２処理部１０５、及びゲーム画像生成部１０６を備えている。また、ＣＰＵ１０は、機能的に、読み出し部１０３及び第１処理部１０４に代えて、読み出し部１２３及び第１処理部１２４を備えると共に、速度検出部１１１及び速度判定部１１０を更に備えている。
【０１４７】
速度検出部１１１は、プレイヤオブジェクト３０の移動速度を検出する。具体的には、速度検出部１１１は、受付部１０１によって取得された操作情報に基づいてプレイヤオブジェクト３０の移動速度を算出することにより、プレイヤオブジェクト３０の移動速度を検出する。
【０１４８】
速度判定部１１０は、速度検出部１１１によって検出されたプレイヤオブジェクト３０の移動速度が所定速度以上であるか否かを判定する。具体的には、速度判定部１１０は、コントローラ７から送信される操作情報に基づいてプレイヤオブジェクト３０の移動速度を算出し、算出された速度が所定速度以上であるか否かを判定する。これに対して、読み出し部１２３は、速度判定部１１０によってプレイヤオブジェクト３０の移動速度が所定速度以上であると判定された場合に、判定結果記憶部１２０から全ての判定結果の読み出しを行う。また、読み出し部１２３は、速度判定部１１０によってプレイヤオブジェクト３０の移動速度が所定速度未満であると判定された場合には、判定結果記憶部１２０から最新の判定結果のみを読み出す。このように、読み出し部１２３は、速度判定部１１０の判定の結果に応じて判定結果記憶部１２０から読み出す判定結果を変更する点において、第１の実施形態における読み出し部１０３と異なる。第１処理部１２４は、ジャンプ処理を行うか否かを決定する際に、速度判定部１１０の判定の結果に応じて、判定結果記憶部１２０に記憶されている全ての判定結果を考慮する場合に加えて、最新の判定結果のみを考慮する場合がある点において、第１の実施形態における第１処理部１０４と異なる。
【０１４９】
以下、図１５を参照して、ゲーム装置３で行われる処理の手順について説明する。図１５は、本発明の第３の実施形態に係るゲームプログラムを実行するゲーム装置３で行われる処理の一例を示すフローチャートである。なお、図１５に示されている処理の中には、図１０に示されている処理と共通する処理が含まれているので、共通する処理については同一のステップ番号を付してその説明を省略する。
【０１５０】
コントローラ７に対してプレイヤオブジェクト３０をジャンプさせるための操作入力が行われたと入力判断部１０２が判断した場合（ステップＳ７：ＹＥＳ）、速度検出部１１１は、受付部１０１によって取得された操作情報に基づいてプレイヤオブジェクト３０の移動速度を検出する（ステップＳ３１）。これを受けて、速度判定部１１０は、速度検出部１１１によって検出されたプレイヤオブジェクト３０の移動速度が所定速度以上であるか否かを判定する（ステップＳ３２）。プレイヤオブジェクト３０の移動速度が所定速度未満であると速度判定部１１０が判定した場合（ステップＳ３２：ＮＯ）、読み出し部１２３は、判定結果記憶部１２０から最新の判定結果のみを読み出す（ステップＳ３３）。そして、第１処理部１２４は、ステップＳ３３の処理で読み出された最新の判定結果が、プレイヤオブジェクト３０の足下に足場があることを示す判定結果であるか否かを判断する（ステップＳ３４）。プレイヤオブジェクト３０の足下に足場があることを示す判定結果である場合（ステップＳ３４：ＹＥＳ）、第１処理部１２４は、ステップＳ１０のジャンプ処理を行う。逆に、プレイヤオブジェクト３０の足下に足場がないことを示す判定結果である場合（ステップＳ３４：ＮＯ）、処理がステップＳ１１へ進められる。
【０１５１】
プレイヤオブジェクト３０の移動速度が所定速度以上であると速度判定部１１０が判定した場合（ステップＳ３２：ＹＥＳ）、読み出し部１２３は、判定結果記憶部１２０から全ての判定結果を読み出す（ステップＳ８）。これを受けて、第１処理部１０４は、少なくとも読み出し部１０３によって読み出された連続する３フレーム分の判定結果のいずれかが、プレイヤオブジェクト３０の足下に足場があることを示す判定結果であるか否かを判断し（ステップＳ９）、少なくとも１つの判定結果が足場ありの判定結果であると判断した場合にステップＳ１０のジャンプ処理を行う。このように、第１処理部１０４は、速度判定部１１０によってプレイヤオブジェクトの移動速度が所定速度以上であると判定され、さらに少なくとも１つの判定結果が、足場があることを示す判定結果である場合にのみ、ジャンプ処理を行う。
【０１５２】
以上説明したように、本発明の第３の実施形態によれば、プレイヤオブジェクト３０の移動速度が所定速度未満である場合には、プレイヤが目で見て感じたプレイヤオブジェクト３０の位置と実際のプレイヤオブジェクト３０の位置と誤差はほとんどないと考えられるので、最新の判定結果のみを考慮してジャンプ処理を行うか否かが決定される。逆に、プレイヤオブジェクト３０の移動速度が所定速度以上である場合には、プレイヤが目で見て感じたプレイヤオブジェクト３０の位置と実際のプレイヤオブジェクト３０の位置との間で誤差が生じると考えられるので、最新の判定結果に加えて所定時間前の判定結果も考慮して、ジャンプ処理を行うか否かが決定される。つまり、プレイヤオブジェクト３０が高速移動する場合には、プレイヤがプレイヤオブジェクト３０を見て感じているゲーム画像が示すゲーム空間に対する判定結果（所定時間前の判定結果）が考慮されるので、上述の誤差がゲーム装置３で行われるゲーム処理に与える影響を低減することができる。
【０１５３】
なお、本実施形態では、プレイヤオブジェクト３０の移動速度が所定速度以上であると判定された場合に、第１の実施形態と同様、判定結果記憶部１２０に記憶されている全ての判定結果が読み出される場合について説明したが、読み出し部１２３は、所定時間前の判定結果のみを読み出すように構成されていてもよい。
【０１５４】
［第４の実施形態］
以下、本発明の第４の実施形態について説明する。第３の実施形態で説明したように、プレイヤオブジェクト３０を高速移動させた場合、プレイヤが目で見て感じたプレイヤオブジェクト３０の位置と実際のプレイヤオブジェクト３０の位置とに誤差が生じることが考えられる。そして、この誤差は、プレイヤオブジェクト３０の移動速度が速くなるに連れて大きくなるものと考えられる。そこで、第４の実施形態では、ゲーム装置３で行われるゲーム処理に対するこの誤差の影響をより効果的に除くために、ゲーム中に、プレイヤオブジェクト３０の移動速度に基づいて本発明の所定時間を変更する場合について説明する。
【０１５５】
第４の実施形態のゲーム装置は、ゲーム装置の機能構成の一部が異なる他は、第１の実施形態におけるゲーム装置３と同様の構成を備えている。このため、第４の実施形態では、第１の実施形態におけるゲーム装置３と共通する構成については同一符号を付してその説明を省略し、異なる点について説明する。
【０１５６】
図１６は、第４の実施形態に係るゲームプログラムを実行するゲーム装置３の機能構成の一例を示す機能構成図である。図１６に示されているように、ゲーム装置３のＣＰＵ１０は、機能的に、接触判定部１００、受付部１０１、入力判断部１０２、第２処理部１０５、及びゲーム画像生成部１０６を備えている。また、ＣＰＵ１０は、機能的に、読み出し部１０３及び第１処理部１０４に代えて、読み出し部１１３及び第１処理部１１４を備えると共に、速度検出部１１１及び時間算出部１１２を更に備えている。
【０１５７】
速度検出部１１１は、第３の実施形態で説明した速度検出部１１１と同様に機能する。時間算出部１１２は、速度検出部１１１によって検出された移動速度に基づいて所定時間を算出する。例えば、速度検出部１１１によって検出された移動速度がＶ１である場合に、時間算出部１１２は、所定の演算処理を行って、所定時間を２／６０秒を算出する。そして、速度検出部１１１によって検出された移動速度がＶ１の２倍のＶ２に変化した場合、時間算出部１１２は、所定時間を算出する。このように、時間算出部１１２は、速度検出部１１１によって検出される移動速度が大きくなるほど所定時間が長くなるように、所定時間を算出する。ここで説明した例では、プレイヤオブジェクト３０の移動速度の変化に応じて時間算出部１１２によって算出された所定時間が２／６０秒から４／６０秒に変化している。この所定時間の変化により、判定結果記憶部１２０として用いられる記憶領域の広さが変更される。なお、読み出し部１１３及び第１処理部１１４は、第２の実施形態で説明したものと同様に機能するものであるため、ここでの詳細な説明は省略する。
【０１５８】
以下、図１７を参照して、ゲーム装置３で行われる処理の手順について説明する。図１７は、本発明の第４の実施形態に係るゲームプログラムを実行するゲーム装置３で行われる処理の一例を示すフローチャートである。なお、図１７に示されている処理の中には、図１０に示されている処理と共通する処理が含まれているので、共通する処理については同一のステップ番号を付してその説明を省略する。
【０１５９】
ステップＳ２においてゲーム処理が開始された後、又はステップＳ１３でゲーム処理が終了していないと判断された場合（ステップＳ１３：ＮＯ）、速度検出部１１１は、プレイヤオブジェクト３０の移動速度を検出する（ステップＳ４１）。プレイヤオブジェクト３０の移動速度が検出されると、時間算出部１１２は、プレイヤオブジェクト３０の移動速度が閾値を挟んで変化したか否かを判断する（ステップＳ４２）。ゲーム装置３では、プレイヤオブジェクト３０の移動速度の変化を段階的に分類するために、複数の閾値が設定されている。ステップＳ４２において、時間算出部１１２は、ステップＳ４１で検出された移動速度がこれらの閾値のいずれかを超えたか否か、及び、これらの閾値よりも小さくなったか否かを、全ての閾値に対して判断する。プレイヤオブジェクト３０の移動速度が閾値を挟んで変化していないと時間算出部１１２が判断した場合（ステップＳ４２：ＮＯ）、処理がステップＳ３へ進められる。
【０１６０】
時間算出部１１２は、プレイヤオブジェクト３０の移動速度が閾値を挟んで変化したと判断した場合（ステップＳ４２：ＹＥＳ）、速度検出部１１１によって検出される移動速度が大きくなるほど所定時間が長くなるように、所定時間を算出する（ステップＳ４３）。このステップＳ４３の処理は、例えば上記複数の閾値によって区画される移動速度の範囲と、フレーム数とを対応付けたテーブルを保持しておき、当該テーブルから対応するフレーム数を読み出すことによって実現することができる。このステップＳ４３の処理が行われることにより、判定結果記憶部１２０に記憶される判定結果の数が変更される。
【０１６１】
ステップＳ７において、コントローラ７に対してプレイヤオブジェクト３０をジャンプさせるための操作入力が行われたと入力判断部１０２が判断した場合（ステップＳ７：ＹＥＳ）、読み出し部１１３は、所定時間前の判定結果のみを判定結果記憶部１２０から読み出す（ステップＳ４４）。これに対して、第１処理部１１４は、読み出し部１０３によって読み出された判定結果が、プレイヤオブジェクト３０とブロック３１とが接触したことを示す判定結果であるか否かを判断する（ステップＳ４５）。これにより、ステップＳ１０のジャンプ処理を行うか否かを決定する。
【０１６２】
以上説明したように、本発明の第４の実施形態によれば、プレイヤオブジェクト３０の移動速度が大きくなるほど、より古い判定結果が判定結果記憶部１２０から読み出されることになる。このため、プレイヤが目で見て感じたプレイヤオブジェクト３０の位置と実際のプレイヤオブジェクト３０の位置との誤差がゲーム装置３でのゲーム処理に与える影響を効果的に低減することができる。
【０１６３】
なお、プレイヤオブジェクト３０の移動速度の感じ方は、プレイヤによって異なる。このため、ジャンプ処理を行うか否かを決定する際に所定時間前の判定結果のみを考慮することが必ずしも良いとは限らない。そこで、プレイヤキャラクタ３０の移動速度の感じ方の個人差を考慮して、ステップＳ４４において、判定結果記憶部１２０から全ての判定結果を読み出すようにしてもよい。また、判定結果記憶部１２０から所定時間前の判定結果及び最新の判定結果を読み出すようにしてもよい。
【０１６４】
［第５の実施形態］
以下、本発明の第５の実施形態について説明する。図１８は、プレイヤオブジェクト３３に向かって矢３３が移動して行く様子を表すゲーム画像を示す図である。第５の実施形態では、第１オブジェクトがプレイヤオブジェクト３０であり、第２オブジェクトがプレイヤオブジェクト３０に対してダメージを与える矢３３であり、所定の処理として、プレイヤオブジェクト３０に対してダメージを与えるダメージ処理が行われる場合について説明する。
【０１６５】
プレイヤオブジェクト３０は、敵オブジェクト（不図示）から出射された矢３３による攻撃を受けるとダメージを受けて体力が減っていき、体力が０になるとゲームオーバーとなる。ゲーム装置３では、ゲーム処理の一部として、プレイヤオブジェクト３０と矢３３とが接触したか否かが繰り返し判定される。この接触判定を含むゲーム処理が行われてからそのゲーム処理の対象となったゲーム空間を示すゲーム画像が液晶テレビ２で表示されるまでに遅延が生じる場合、図１８（Ｃ）のゲーム空間に対してプレイヤオブジェクト３０と矢３３との接触判定が行われた時点で、液晶テレビ２には、それよりも例えば２フレーム分遅延した図１８（Ａ）のゲーム空間を示すゲーム画像が表示される。このため、液晶テレビ２に表示されているゲーム画像（図１８（Ａ）参照）を見たプレイヤが、プレイヤオブジェクト３０が矢３３を避けられると感じても、ゲーム装置３側で接触判定が行われているゲーム空間（図１８（Ｃ）参照）ではプレイヤオブジェクト３０と矢３３とが接触しているので、プレイヤオブジェクト３０がダメージを受けてしまうといった現象が起こりうる。第５の実施形態では、このような現象を解消するためにゲーム装置３で行われる処理について説明する。
【０１６６】
第５の実施形態のゲーム装置は、ゲーム装置の機能構成の一部が異なる他は、第１の実施形態におけるゲーム装置３と同様の構成を備えている。このため、第５の実施形態では、第１の実施形態におけるゲーム装置３と共通する構成については同一符号を付してその説明を省略し、異なる点について説明する。
【０１６７】
図１９は、第５の実施形態に係るゲームプログラムを実行するゲーム装置３の機能構成の一例を示す機能構成図である。図１９に示されているように、ゲーム装置３のＣＰＵ１０は、第１の実施形態と同様に、機能的に、受付部１０１、入力判断部１０２、読み出し部１０３、第２処理部１０５、及びゲーム画像生成部１０６を備えている。また、ＣＰＵ１０は、機能的に、接触判定部１００及び第１処理部１０４に代えて接触判定部１３０及び第１処理部１３４を備えている点で、第１の実施形態と異なる。
【０１６８】
接触判定部１３０は、プレイヤオブジェクト３０と矢３３とが接触したか否かを繰り返し（例えば１／６０秒間隔で）判定する。この接触判定は、プレイヤオブジェクト３０とブロック３１とが接触したか否かを判定する処理と同様に行われるため、ここでの詳細な説明は省略する。
【０１６９】
第１処理部１３４は、読み出し部１０３によって判定結果記憶部１２０から読み出された判定結果の全てが、プレイヤオブジェクト３０と矢３３とが接触したことを示す判定結果であるか否かを判断する。そして、第１処理部１３４は、全ての判定結果がプレイヤオブジェクト３０と矢３３とが接触したことを示す判定結果である場合に限り、所定の処理として、プレイヤオブジェクト３３に対してダメージを与えるダメージ処理を行う。
【０１７０】
以下、図２０を参照して、ゲーム装置３で行われる処理の手順について説明する。図２０は、本発明の第５の実施形態に係るゲームプログラムを実行するゲーム装置３で行われる処理の一例を示すフローチャートである。なお、図２０に示されている処理の中には、図１０に示されている処理と共通する処理が含まれているので、共通する処理については同一のステップ番号を付してその説明を省略する。
【０１７１】
ステップＳ２においてゲーム処理が開始された後、又はステップＳ１３でゲーム処理が終了していないと判断された場合（ステップＳ１３：ＮＯ）、接触判定部１３０は、プレイヤオブジェクト３０と矢３３とが接触したか否かを判定する（ステップＳ５１）。これにより、ステップＳ６の処理において、プレイヤオブジェクト３０と矢３３とが接触したことを示す判定結果、又はプレイヤオブジェクト３０と矢３３とが接触していないことを示す判定結果が判定結果記憶部１２０に記憶される。
【０１７２】
判定結果記憶部１２０に最新の判定結果が記憶されると、読み出し部１０３は、判定結果記憶部１２０から全ての判定結果を読み出す（ステップＳ８）。これを受けて、第１処理部１３４は、読み出された判定結果の全てが、プレイヤオブジェクト３０と矢３３とが接触したことを示す判定結果であるか否かを判断する（ステップＳ５２）。いずれかの判定結果が、プレイヤオブジェクト３０と矢３３とが接触していないことを示す判定結果であると第１処理部１３４が判断した場合（ステップＳ５２：ＮＯ）、処理がステップＳ１１へ進められる。すなわち、プレイヤオブジェクト３０に対するダメージ処理は行われない。第１処理部１３４は、読み出された判定結果の全てが、プレイヤオブジェクト３０と矢３３とが接触したことを示す判定結果であると判断した場合（ステップＳ５２：ＹＥＳ）、プレイヤオブジェクト３０に対してダメージ処理を行う（ステップＳ５３）。具体的には、第１処理部１３４は、プレイヤオブジェクト３０の体力を減少させる処理を行う。
【０１７３】
以上説明したように、プレイヤオブジェクト３０に対するダメージ処理を行うか否かを決定する際に、プレイヤが見ているゲーム画像が示すゲーム空間に対する判定結果（所定時間前の判定結果）が考慮される。したがって、プレイヤオブジェクト３０が矢３３を避けられると感じているのにも拘わらずプレイヤオブジェクト３０がダメージを受けるといった、プレイヤにとって理不尽なゲーム処理が行われるのを防止することができる。
【０１７４】
また、少なくとも１つの判定結果が、プレイヤオブジェクト３０と矢３３とが接触していないことを示す判定結果であれば、プレイヤオブジェクト３０に対してダメージが与えられない。このため、プレイヤオブジェクト３０がダメージを受けにくくなるので、シューティングゲームやアクションゲーム等において、ゲームの難易度を下げることができる。
【０１７５】
なお、第１〜第５実施形態では、第１オブジェクトがプレイヤオブジェクト３０であり、第２オブジェクトが、プレイヤオブジェクト３０が接触する可能性があるその他のオブジェクト（ブロック３１又は矢３３）である場合について説明したが、第１オブジェクト及び第２オブジェクトはこれら以外のものであってもよい。例えば、プレイヤオブジェクト３０が第２オブジェクトであり、矢３３が第１オブジェクトであってもよい。この場合、所定の処理としては、プレイヤオブジェクト３０に接触した矢３３をゲーム空間から消去する処理が考えられる。
【０１７６】
また、第１〜第４の実施形態では所定の処理としてジャンプ処理が、第５の実施形態では所定の処理としてダメージ処理が行われる場合についてそれぞれ個別に説明したが、ジャンプ処理とダメージ処理が両方行われるゲームでは、第１〜第４の実施形態で説明したジャンプ処理のいずれかと、第５の実施形態で説明したダメージ処理とを併せた処理を行うようにしてもよい。この場合、例えば、所定の処理として、プレイヤオブジェクト３０に対して２種類以上の処理（例えばジャンプ処理とダメージ処理）を第１処理部１０４に選択的に実行させればよい。そして、ジャンプ処理については、判定結果記憶部１２０にプレイヤオブジェクト３０とブロック３１とが接触したことを示す判定結果が１つでも記憶されていればジャンプ処理を許可し、ダメージ処理については、判定結果記憶部１２０に記憶されている全ての判定結果がプレイヤオブジェクト３０と矢３３とが接触したことを示す判定結果であればプレイヤオブジェクト３０にダメージを与えるというように、所定の条件を、所定の処理の種類に応じて予め定めておけばよい。これにより、第１処理部１０４による所定の処理を、所定の処理の種類に応じて最適な条件で行うことができる。
【０１７７】
また、第１〜第５の実施形態では、本発明がアクションゲームに適用された場合について説明したが、本発明は、オブジェクト同士の接触判定を行う必要がある種々のゲームに適用可能であり、アクションゲームやシューティングゲームの他、野球ゲームや格闘技ゲーム等にも適用可能である。
【産業上の利用可能性】
【０１７８】
本発明は、ゲーム空間内のオブジェクト同士の接触判定を行い、その判定結果に応じてゲーム処理を行うゲーム装置のコンピュータに実行させるゲームプログラムやゲーム装置等に適用可能である。
【符号の説明】
【０１７９】
２    液晶テレビ
３    ゲーム装置
７    コントローラ
８    データベース
９    インターネット
１０    ＣＰＵ
１２    外部メインメモリ
３０    プレイヤオブジェクト
３１    ブロック
３３    矢
１００，１３０    接触判定部
１０１    受付部
１０２    入力判断部
１０３，１１３，１２３    読み出し部
１０４，１１４，１２４，１３４    第１処理部
１１０    速度判定部
１１１    速度検出部
１１２    時間算出部
１２０    判定結果記憶部
【図１】
2010273946.tif 000003
【図２】
2010273946.tif 000004
【図３】
2010273946.tif 000005
【図４】
2010273946.tif 000006
【図５】
2010273946.tif 000007
【図６】
2010273946.tif 000008
【図７】
2010273946.tif 000009
【図８】
2010273946.tif 000010
【図９】
2010273946.tif 000011
【図１０】
2010273946.tif 000012
【図１１】
2010273946.tif 000013
【図１２】
2010273946.tif 000014
【図１３】
2010273946.tif 000015
【図１４】
2010273946.tif 000016
【図１５】
2010273946.tif 000017
【図１６】
2010273946.tif 000018
【図１７】
2010273946.tif 000019
【図１８】
2010273946.tif 000020
【図１９】
2010273946.tif 000021
【図２０】
2010273946.tif 000022
【図２１】
2010273946.tif 000023