(57)【要約】【課題】本発明の課題は、遊戯者が敵を早く倒すことによってゲームを有利に進めることができるとともに、敵への射撃の命中の有無をリアルに判定することができるゲーム装置を提供することにある。【解決手段】本発明は、三次元仮想空間に配置された仮想カメラを所定の速度で移動しながら、前記三次元仮想空間内に定義されるキャラクタと前記仮想カメラとの距離を変化させるようにした画像処理方法であって、前記仮想カメラと前記キャラクタとの距離に基づいて前記仮想カメラの移動速度を変化させることを特徴とする。【選択図】図４
2006318510.tif 000002
【特許請求の範囲】
【請求項１】
三次元仮想空間に配置された仮想カメラを所定の速度で移動しながら、前記三次元仮想空間内に定義されるキャラクタと前記仮想カメラとの距離を変化させるようにした画像処理方法であって、
前記仮想カメラと前記キャラクタとの距離に基づいて前記仮想カメラの移動速度を変化させる
ことを特徴とする画像処理方法。
【請求項２】
前記三次元仮想空間内に定義される第１のキャラクタと、遊戯者の操作に応じて動作する第２のキャラクタとを表示し、
前記第１のキャラクタと前記第２のキャラクタとの距離に基づいて前記仮想カメラの移動速度を変化させる
ことを特徴とする請求項１記載の画像処理方法。
【請求項３】
三次元仮想空間に配置されたキャラクタに対して仮想カメラを向けるようにした画像処理方法であって、
前記仮想カメラを前記キャラクタに対して向ける速度が、
前記仮想カメラと前記キャラクタとの距離に基づいて変化するように前記仮想カメラの注視点を前記キャラクタに設定する
ことを特徴とする画像処理方法。
【請求項４】
三次元仮想空間に配置された仮想カメラを所定の速度で移動しながら、前記三次元仮想空間内に定義されるキャラクタと前記仮想カメラとの距離を変化させるように構成したゲーム装置であって、
前記仮想カメラと前記キャラクタとの距離に基づいて前記仮想カメラの移動速度を変化させる仮想カメラ制御手段を備える
ことを特徴とするゲーム装置。
【請求項５】
前記三次元仮想空間内に定義される第１のキャラクタと、遊戯者の操作に応じて動作する第２のキャラクタとを表示し、
前記仮想カメラ制御手段は、前記第１のキャラクタと前記第２のキャラクタとの距離に基づいて前記仮想カメラの移動速度を変化させる
ことを特徴とする請求項４記載のゲーム装置。
【請求項６】
前記仮想カメラ制御手段は、
前記仮想カメラと前記キャラクタとの距離が近くなるにつれて、前記仮想カメラの移動速度が遅くなるように前記仮想カメラの移動速度を制御する
ことを特徴とする請求項４記載のゲーム装置。
【請求項７】
前記三次元仮想空間に前記仮想カメラを中心とした複数の区域を設け、
前記仮想カメラ制御手段は、
前記仮想カメラから最も近いキャラクタが属する区域を判定し、該判定された区域に応じて前記仮想カメラの移動速度を制御する
ことを特徴とする請求項４記載のゲーム装置。
【請求項８】
三次元仮想空間に配置されたキャラクタに対して仮想カメラを向けるようにしたゲーム装置であって、
前記仮想カメラを前記キャラクタに対して向ける速度が、
前記仮想カメラと前記キャラクタとの距離に基づいて変化するように前記仮想カメラの注視点を前記キャラクタに設定する注視点設定手段を備える
ことを特徴とするゲーム装置。
【請求項９】
三次元仮想空間に配置された仮想カメラを移動しながら、この空間上に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように構成したゲーム装置であって、
前記仮想カメラからの前記キャラクタの距離と、前記仮想カメラと前記キャラクタとの距離に従って変化する射撃の有効範囲の中心からの前記キャラクタの距離と、に基づいて前記遊戯者の射撃が前記キャラクタに与えるダメージを算出する算出手段を備える
ことを特徴とするゲーム装置。
【請求項１０】
前記ダメージを算出する算出手段は、
前記仮想カメラと前記キャラクタとの距離とに基づいて決定されるダメージ値に対して、前記仮想カメラと前記キャラクタとの距離に従って変化する射撃の有効範囲の中心からの前記キャラクタの距離に基づいて決定される割合を乗じることによって、前記遊戯者の射撃が前記キャラクタに与えるダメージを算出する
ことを特徴とする請求項９記載のゲーム装置。
【請求項１１】
前記ダメージ値は、前記仮想カメラと前記キャラクタとの距離が遠くなるにつれて小さくなるように決定され、
前記射撃の有効範囲は、前記仮想カメラと前記キャラクタとの距離が遠くなるにつれて大きくなるように決定され、
前記割合は、前記有効範囲の中心からの前記キャラクタの距離が遠くなるにつれて小さくなるように決定される
ことを特徴とする請求項９または１０記載のゲーム装置。
【請求項１２】
三次元仮想空間に配置された仮想カメラを移動しながら、この空間上に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように構成したゲーム装置であって、
射撃の有効範囲のうち前記射撃の有効範囲と前記キャラクタのコリジョン範囲とが接触する範囲が占めている割合に従って、前記射撃が前記キャラクタに与えるダメージを算出する算出手段
を備えることを特徴とするゲーム装置。
【請求項１３】
三次元仮想空間に配置された仮想カメラを移動しながら、この空間上に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように構成したゲーム装置であって、
前記キャラクタのコリジョン範囲のうち前記射撃の有効範囲と前記キャラクタのコリジョン範囲とが接触する範囲が占めている割合に従って、前記射撃が前記キャラクタに与えるダメージを算出する算出手段
を備えることを特徴とするゲーム装置。
【請求項１４】
三次元仮想空間内に配置されたキャラクタと仮想カメラとの距離を変化させるように構成した画像処理装置であって、
前記仮想カメラと前記キャラクタとの距離を算出する手段と、
前記算出された距離に従って前記仮想カメラの移動速度を変化させる仮想カメラ制御手段と、
を備えることを特徴とする画像処理装置。
【請求項１５】
三次元仮想空間に配置された仮想カメラを移動しながら、この空間上に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように構成したゲーム装置の制御方法であって、
前記仮想カメラからの前記キャラクタの距離と、
前記仮想カメラと前記キャラクタとの距離に従って変化する射撃の有効範囲の中心からの前記キャラクタの距離と、
に基づいて前記遊戯者の射撃が前記キャラクタに与えるダメージを算出する
ことを特徴とするゲーム装置の制御方法。
【請求項１６】
三次元仮想空間に配置された仮想カメラを移動しながら、この空間上に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように構成したゲーム装置の制御方法であって、
射撃の有効範囲のうち前記射撃の有効範囲と前記キャラクタのコリジョン範囲とが接触する範囲が占めている割合に従って、前記射撃が前記キャラクタに与えるダメージを算出する
ことを特徴とするゲーム装置の制御方法。
【請求項１７】
三次元仮想空間に配置された仮想カメラを移動しながら、この空間上に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように構成したゲーム装置の制御方法であって、
前記キャラクタのコリジョン範囲のうち前記射撃の有効範囲と前記キャラクタのコリジョン範囲とが接触する範囲が占めている割合に従って、前記射撃が前記キャラクタに与えるダメージを算出する
ことを特徴とするゲーム装置の制御方法。
【請求項１８】
遊戯者の操作に応じて仮想空間内に生成される命中判定領域と、前記仮想空間内に配置されたオブジェクトとの接触判定を行い、接触したと判定された場合に前記オブジェクトにダメージを与えるようにゲーム装置を制御するゲーム制御方法であって、
前記遊戯者の操作に応じて動作するキャラクタの前記仮想空間内における位置を示す第１の位置情報を取得するステップと、
前記仮想空間内における前記オブジェクトの位置を示す第２の位置情報を取得するステップと、
前記取得した第１の位置情報と前記取得した第２の位置情報とに基づいて前記キャラクタと前記オブジェクトの間の距離を取得するステップと、
前記取得した距離に基づいて前記命中判定領域の大きさを変化させるステップと、
前記命中判定領域と前記オブジェクトとが接触したと判定された場合に、前記取得された距離に基づいて前記オブジェクトに与えるダメージ量を生成し、生成されたダメージ量に基づいて前記オブジェクトにダメージを与えるステップと、
を有することを特徴とするゲーム制御方法。
【請求項１９】
前記取得された距離が所定の距離よりも近い場合に、前記命中判定の範囲を小さくすると共に前記ダメージ量を大きくするように制御することを特徴とする請求項１８記載のゲーム制御方法。
【請求項２０】
前記算出された距離が所定の距離よりも遠い場合に、前記命中判定の範囲を大きくすると共に前記ダメージ量を小さくするように制御することを特徴とする請求項１８または１９記載のゲーム制御方法。
【請求項２１】
遊戯者の操作に応じて仮想空間内の所定の命中位置を基準に生成される命中判定領域と、前記仮想空間内に配置されたオブジェクトとの接触判定を行い、接触したと判定された場合に前記オブジェクトにダメージを与えるようにゲーム装置を制御するゲーム制御方法であって、
前記仮想空間内における前記オブジェクトの位置を示す位置情報を取得するステップと、
前記命中判定領域と前記取得された位置情報とに基づいて、前記命中判定領域と前記オブジェクトが接触した範囲の面積を取得するステップと、
前記取得された面積に基づいて前記オブジェクトに与えるダメージ量データを生成し、生成されたダメージ量データに基づいて前記オブジェクトにダメージを与えるステップと、
を有することを特徴とするゲーム制御方法。
【請求項２２】
三次元仮想空間に配置された仮想カメラを所定の速度で移動しながら、前記三次元仮想空間内に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように制御される射撃ゲームの制御方法であって、
前記キャラクタと前記仮想カメラとの距離を変化させるステップと、
前記キャラクタと前記仮想カメラとの距離に基づいて前記仮想カメラの移動速度または前記仮想カメラを前記キャラクタに対して向ける速度を変化させるステップと、
前記仮想カメラと前記キャラクタの距離に基づいて、前記遊戯者の射撃の有効範囲の大きさを変化させるステップと、
前記キャラクタの位置と前記射撃の有効範囲の位置に基づいて、前記射撃が命中したか否かを判定するステップと、
前記判定において射撃が命中したと判定された場合には、前記仮想カメラと前記キャラクタとの距離と、
前記射撃の有効範囲の中心からの前記キャラクタの距離とに基づいて、前記射撃が前記キャラクタに与えるダメージ量を算出するステップと、
を有することを特徴とする射撃ゲームの制御方法。
【請求項２３】
請求項１乃至３並びに１５乃至２２のいずれか１項に記載のゲーム装置の制御方法を、コンピュータで実行させるための情報処理プログラム。
【請求項２４】
請求項１乃至３並びに１５乃至２２のいずれか１項に記載のゲーム装置の制御方法を、コンピュータで実行させるための情報処理プログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置に関わり、特にゲーム装置に関するものである。
【背景技術】
【０００２】
近年、３次元ゲーム装置と称される種類の画像処理装置が数多く提案されている。この画像処理装置はコンピュータによって形成される仮想空間内に種々のキャラクタを定義するとともに、遊技者からの操作情報をジョイスティック等の周辺機器を介して取り込んでキャラクタを移動させる等の画像処理を実現する。この画像処理結果は、仮想カメラと称される３次元仮想空間からの視点から見た映像がテレビモニタを介して遊技者に表示される。
【０００３】
このような画像処理装置の一例として、画面に表示されるキャラクタに対する射撃の優劣を競うゲーム装置が存在する（例えば、セガ・エンタープライゼス製の「ハウス・オブ・ザ・デッド」）。このゲーム装置では、仮想カメラが３次元空間上の予め定められたコースを移動しながら、遊戯者は、敵（ゾンビ）をシューティングして先に進んでいく。この敵は、ウィークポイントをいくつか持っており、ウィークポイントに命中させるとダメージ点が加算され、所定値を越えると、撃たれた敵は倒れる。また、遊戯者が敵を倒すべき時間が予め設定されており、所定の制限時間内に敵を倒せないと遊戯者が敵に襲われて、遊技者のダメージ点が増加するように構成されていた。
【０００４】
また、このゲーム装置では、遊技者が画面に向けた銃のトリガをオンすると銃が画面の走査線を検出するまでのタイミングを計算することにより、銃口が向いている画面上の座標を演算してキャラクタに対する着弾の有無を判定できるようにされていた。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、この種の画像処理装置には、次のような課題が存在する。
【０００６】
第１に、従来のゲーム装置では、遊戯者が敵を倒すべき時間が予め設定されており、所定の制限時間内に敵を倒せない場合には、遊戯者が敵に襲われて遊技者のダメージ点が増加する等、遊戯者が不利になるように構成されていた。しかし、遊戯者が制限時間内に敵を倒した場合には、特に遊戯者が有利になるような配慮はされていない。例えば、遊戯者が、所定時間内ぎりぎりで敵を倒した場合も、所定時間内に余裕で敵を倒した場合も、ゲームの展開や成績には影響がない。よって、シューティングの技術が習熟し制限時間内で敵を倒すことができるような遊戯者に対しては、ゲームを攻略する意欲が低減してしまうという問題があった。
【０００７】
第２に、従来のゲーム装置では、従来のゲーム装置では、敵への射撃の命中の有無をリアルに判定することへの配慮が少なかった。よって、遊戯者が、武器の種類や性質を把握しながら敵を射撃するといった攻略性を持つことができず、ガンシューティングゲームならではのゲーム性を十分に提供しているとはいえなかった。
【課題を解決するための手段】
【０００８】
上記課題を解決するための、本発明は、三次元仮想空間に配置された仮想カメラを所定の速度で移動しながら、前記三次元仮想空間内に定義されるキャラクタと前記仮想カメラとの距離を変化させるようにした画像処理方法であって、前記仮想カメラと前記キャラクタとの距離に基づいて前記仮想カメラの移動速度を変化させることを特徴とする。
【０００９】
また、前記画像処理方法は、前記三次元仮想空間内に定義される第１のキャラクタと、遊戯者の操作に応じて動作する第２のキャラクタとを表示し、前記第１のキャラクタと前記第２のキャラクタとの距離に基づいて前記仮想カメラの移動速度を変化させることを特徴とする。
【００１０】
また、本発明は、三次元仮想空間に配置されたキャラクタに対して仮想カメラを向けるようにした画像処理方法であって、前記仮想カメラを前記キャラクタに対して向ける速度が、前記仮想カメラと前記キャラクタとの距離に基づいて変化するように前記仮想カメラの注視点を前記キャラクタに設定することを特徴とする。
【００１１】
また、本発明は、三次元仮想空間に配置された仮想カメラを所定の速度で移動しながら、前記三次元仮想空間内に定義されるキャラクタと前記仮想カメラとの距離を変化させるように構成したゲーム装置であって、前記仮想カメラと前記キャラクタとの距離に基づいて前記仮想カメラの移動速度を変化させる仮想カメラ制御手段を備えることを特徴とする。
【００１２】
前記ゲーム装置は、前記三次元仮想空間内に定義される第１のキャラクタと、遊戯者の操作に応じて動作する第２のキャラクタとを表示し、前記仮想カメラ制御手段は、前記第１のキャラクタと前記第２のキャラクタとの距離に基づいて前記仮想カメラの移動速度を変化させることが望ましい。
【００１３】
前記仮想カメラ制御手段は、前記仮想カメラと前記キャラクタとの距離が近くなるにつれて、前記仮想カメラの移動速度が遅くなるように前記仮想カメラの移動速度を制御することが望ましい。
【００１４】
前記ゲーム装置は、前記三次元仮想空間に前記仮想カメラを中心とした複数の区域を設け、前記仮想カメラ制御手段は、前記仮想カメラから最も近いキャラクタが属する区域を判定し、該判定された区域に応じて前記仮想カメラの移動速度を制御することが望ましい。
【００１５】
また、本発明は、三次元仮想空間に配置されたキャラクタに対して仮想カメラを向けるようにしたゲーム装置であって、前記仮想カメラを前記キャラクタに対して向ける速度が、前記仮想カメラと前記キャラクタとの距離に基づいて変化するように前記仮想カメラの注視点を前記キャラクタに設定する注視点設定手段を備えることを特徴とする。
【００１６】
また、本発明は、三次元仮想空間に配置された仮想カメラを移動しながら、この空間上に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように構成したゲーム装置であって、前記仮想カメラからの前記キャラクタの距離と、前記仮想カメラと前記キャラクタとの距離に従って変化する射撃の有効範囲の中心からの前記キャラクタの距離と、に基づいて前記遊戯者の射撃が前記キャラクタに与えるダメージを算出する算出手段を備えることを特徴とする。
【００１７】
前記ダメージを算出する算出手段は、前記仮想カメラと前記キャラクタとの距離とに基づいて決定されるダメージ値に対して、前記仮想カメラと前記キャラクタとの距離に従って変化する射撃の有効範囲の中心からの前記キャラクタの距離に基づいて決定される割合を乗じることによって、前記遊戯者の射撃が前記キャラクタに与えるダメージを算出することが望ましい。
【００１８】
前記ダメージ値は、前記仮想カメラと前記キャラクタとの距離が遠くなるにつれて小さくなるように決定され、前記射撃の有効範囲は、前記仮想カメラと前記キャラクタとの距離が遠くなるにつれて大きくなるように決定され、前記割合は、前記有効範囲の中心からの前記キャラクタの距離が遠くなるにつれて小さくなるように決定されることが望ましい。
【００１９】
また、本発明は、三次元仮想空間に配置された仮想カメラを移動しながら、この空間上に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように構成したゲーム装置であって、射撃の有効範囲のうち前記射撃の有効範囲と前記キャラクタのコリジョン範囲とが接触する範囲が占めている割合に従って、前記射撃が前記キャラクタに与えるダメージを算出する算出手段を備えることを特徴とする。
【００２０】
また、本発明は、三次元仮想空間に配置された仮想カメラを移動しながら、この空間上に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように構成したゲーム装置であって、前記キャラクタのコリジョン範囲のうち前記射撃の有効範囲と前記キャラクタのコリジョン範囲とが接触する範囲が占めている割合に従って、前記射撃が前記キャラクタに与えるダメージを算出する算出手段を備えることを特徴とする。
【００２１】
また、本発明は、三次元仮想空間内に配置されたキャラクタと仮想カメラとの距離を変化させるように構成した画像処理装置であって、前記仮想カメラと前記キャラクタとの距離を算出する手段と、前記算出された距離に従って前記仮想カメラの移動速度を変化させる仮想カメラ制御手段と、を備えることを特徴とする。
【００２２】
また、本発明は、三次元仮想空間に配置された仮想カメラを移動しながら、この空間上に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように構成したゲーム装置の制御方法であって、前記仮想カメラからの前記キャラクタの距離と、前記仮想カメラと前記キャラクタとの距離に従って変化する射撃の有効範囲の中心からの前記キャラクタの距離と、に基づいて前記遊戯者の射撃が前記キャラクタに与えるダメージを算出することを特徴とする。
【００２３】
また、本発明は、三次元仮想空間に配置された仮想カメラを移動しながら、この空間上に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように構成したゲーム装置の制御方法であって、射撃の有効範囲のうち前記射撃の有効範囲と前記キャラクタのコリジョン範囲とが接触する範囲が占めている割合に従って、前記射撃が前記キャラクタに与えるダメージを算出することを特徴とする。
【００２４】
また、本発明は、三次元仮想空間に配置された仮想カメラを移動しながら、この空間上に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように構成したゲーム装置の制御方法であって、前記キャラクタのコリジョン範囲のうち前記射撃の有効範囲と前記キャラクタのコリジョン範囲とが接触する範囲が占めている割合に従って、前記射撃が前記キャラクタに与えるダメージを算出することを特徴とする。
【００２５】
また、本発明は、遊戯者の操作に応じて仮想空間内に生成される命中判定領域と、前記仮想空間内に配置されたオブジェクトとの接触判定を行い、接触したと判定された場合に前記オブジェクトにダメージを与えるようにゲーム装置を制御するゲーム制御方法であって、前記遊戯者の操作に応じて動作するキャラクタの前記仮想空間内における位置を示す第１の位置情報を取得するステップと、前記仮想空間内における前記オブジェクトの位置を示す第２の位置情報を取得するステップと、前記取得した第１の位置情報と前記取得した第２の位置情報とに基づいて前記キャラクタと前記オブジェクトの間の距離を取得するステップと、前記取得した距離に基づいて前記命中判定領域の大きさを変化させるステップと、前記命中判定領域と前記オブジェクトとが接触したと判定された場合に、前記取得された距離に基づいて前記オブジェクトに与えるダメージ量を生成し、生成されたダメージ量に基づいて前記オブジェクトにダメージを与えるステップと、を有することを特徴とする。
【００２６】
前記取得された距離が所定の距離よりも近い場合に、前記命中判定の範囲を小さくすると共に前記ダメージ量を大きくするように制御することが望ましい。
【００２７】
前記算出された距離が所定の距離よりも遠い場合に、前記命中判定の範囲を大きくすると共に前記ダメージ量を小さくするように制御することが望ましい。
【００２８】
また、本発明は、遊戯者の操作に応じて仮想空間内の所定の命中位置を基準に生成される命中判定領域と、前記仮想空間内に配置されたオブジェクトとの接触判定を行い、接触したと判定された場合に前記オブジェクトにダメージを与えるようにゲーム装置を制御するゲーム制御方法であって、前記仮想空間内における前記オブジェクトの位置を示す位置情報を取得するステップと、前記命中判定領域と前記取得された位置情報とに基づいて、前記命中判定領域と前記オブジェクトが接触した範囲の面積を取得するステップと、前記取得された面積に基づいて前記オブジェクトに与えるダメージ量データを生成し、生成されたダメージ量データに基づいて前記オブジェクトにダメージを与えるステップと、を有することを特徴とする。
【００２９】
また、本発明は、三次元仮想空間に配置された仮想カメラを所定の速度で移動しながら、前記三次元仮想空間内に定義されるキャラクタに対する遊戯者の射撃をシミュレートするように制御される射撃ゲームの制御方法であって、前記キャラクタと前記仮想カメラとの距離を変化させるステップと、前記キャラクタと前記仮想カメラとの距離に基づいて前記仮想カメラの移動速度または前記仮想カメラを前記キャラクタに対して向ける速度を変化させるステップと、前記仮想カメラと前記キャラクタの距離に基づいて、前記遊戯者の射撃の有効範囲の大きさを変化させるステップと、前記キャラクタの位置と前記射撃の有効範囲の位置に基づいて、前記射撃が命中したか否かを判定するステップと、前記判定において射撃が命中したと判定された場合には、前記仮想カメラと前記キャラクタとの距離と、前記射撃の有効範囲の中心からの前記キャラクタの距離とに基づいて、前記射撃が前記キャラクタに与えるダメージ量を算出するステップと、を有することを特徴とする。
【００３０】
なお、本明細書において、物の発明は方法の発明として把握することができ、方法の発明は物の発明として把握することができる。また、上記発明は、コンピュータに所定の機能を実現させるプログラムを記録した記録媒体、またはプログラムとしても成立する。なお、前記記録媒体とは、例えば、ハードディスク（ＨＤ）、ＤＶＤ−ＲＡＭ、フレキシブルディスク（ＦＤ）やＣＤ−ＲＯＭ等のほかに、ＲＡＭやＲＯＭ等のメモリを含む。また、前記コンピュータとは、例えば、ＣＰＵやＭＰＵといったいわゆる中央処理装置がプログラムを解釈することで所定の処理を行う、いわゆるマイクロコンピュータ等をも含む。
【００３１】
また、本明細書において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合やハードウェア回路によって実現する場合も含む。また、１つの手段が有する機能が２つ以上の物理的手段により実現されても、２つ以上の手段の機能が１つの物理的手段により実現されても良い。
【００３２】
さらにまた、本明細書における手段は、ハードウェア、ソフトウェアまたはハードウェアおよびソフトウェアの組み合わせにより実現可能である。ハードウェアおよびソフトウェアの組み合わせによる実行は、例えば、所定のプログラムを有するコンピュータ・システムにおける実行が該当する。そして、１つの手段が有する機能が２つ以上のハードウェア、ソフトウェアまたはハードウェアおよびソフトウェアの組み合わせにより実現されても、２つ以上の手段の機能が１つのハードウェア、ソフトウェアまたはハードウェアおよびソフトウェアの組み合わせにより実現されても良い。
【発明の効果】
【００３３】
本発明によれば、敵を早く倒せば倒すほど、ゲーム展開を有利に進めることができるようになるので、遊戯者の技能に合ったゲーム結果が得られるようになる。また、本発明によれば、銃の特性に応じた構成で射撃の結果が判定されるので、遊戯者は、銃の特性を考慮した攻略性をもってゲームを楽しむことができるようになる。また、本発明のゲーム装置によれば、射撃の結果と敵に与えるダメージ値とを細かく対応させることで、よりリアルで公平感のあるダメージの決定が可能になる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施の形態について図面を参照して説明する。なお、本実施形態では、本発明に係るゲーム装置を、所謂アーケードゲームタイプのガンシューティングゲ−ムに適用する場合について説明する。しかし、本発明はこれに限られず、家庭用ゲーム機用ゲームソフトについても適用することができる。
【００３５】
［ゲーム装置のブロック図］
図１は、本発明に係る、アーケードゲームタイプのガンシューティングゲ−ムのゲーム装置の一実施例を示すブロック図である。このゲーム装置は基本的要素としてゲーム装置本体１０、入力装置１１、ＴＶモニタ１３、及びスピーカ１４を備えている。
【００３６】
入力装置１１は、ゲーム中に出現する敵を射撃する銃、ショットガンや機関銃等のシューティング用の武器である。本実施形態では、遊戯者が使用する武器としてショットガンが採用されている。ショットガンはＴＶモニタ上の着弾点の走査スポット（電子ビームの光点）を読取る受光素子と、ショットガンのトリガ操作に対応して動作するトリガスイッチとを含む。走査スポットの検知タイミングとトリガタイミングの信号は接続コードを介して後述するインターフェース１０６に送られる。ＴＶモニタ１３はゲーム展開の状況を画像表示するもので、このＴＶモニタの代わりにプロジェクタを使ってもよい。
【００３７】
ゲーム装置本体１０は、ＣＰＵ（中央演算処理装置）１０１を有するとともに、ＲＯＭ１０２、ＲＡＭ１０３、サウンド装置１０４、入出力インターフェース１０６、スクロールデータ演算装置１０７、コ・プロセッサ（補助演算処理装置）１０８、地形デ−タＲＯＭ１０９、ジオメタライザ１１０、形状デ−タＲＯＭ１１１、描画装置１１２、テクスチャデ−タＲＯＭ１１３、テクスチャマップＲＡＭ１１４、フレームバッファ１１５、画像合成装置１１６、Ｄ／Ａ変換器１１７を備えている。なお、本発明における記憶媒体としては、前記ＲＯＭ１０２としての、ハードディスク、カートリッジ型のＲＯＭ、ＣＤ−ＲＯＭの他公知の各種媒体の他、通信媒体（インターネット、各種パソコン通信網）をも含むものであってもよい。
【００３８】
ＣＰＵ１０１は、バスラインを介して所定のプログラム等を記憶したＲＯＭ１０２、デ−タを記憶するＲＡＭ１０３、サウンド装置１０４、入出力インターフェース１０６、スクロールデータ演算装置１０７、コ・プロセッサ１０８、及びジオメタライザ１１０に接続されている。ＲＡＭ１０３はバッファ用として機能させるもので、ジオメタライザ１１０に対する各種コマンドの書込み（オブジェクトの表示など）、変換マトリクス演算時のマトリクス書込み等が行われる。
【００３９】
入出力インターフェース１０６は前記入力装置１１（ショットガン）に接続されている。ショットガン１１からの走査スポットの検知信号、ショットガンの引金を引いたことを示すトリガ信号、ＴＶモニタ上の走査電子ビームの現在の座標（Ｘ，Ｙ）位置、ターゲットの位置から、ショットガンの発射の有無、着弾場所、発射数等を判別し、対応する各種フラグをＲＡＭ１０３内の所定位置に設定する。
【００４０】
サウンド装置１０４は電力増幅器１０５を介してスピーカ１４に接続されており、サウンド装置１０４で生成された音響信号が電力増幅の後、スピーカ１４に与えられる。
【００４１】
ＣＰＵ１０１は本実施例では、ＲＯＭ１０２に内蔵したプログラムに基づいてゲームストーリーの展開、ＲＯＭ１０９からの地形デ−タ、又は形状データＲＯＭ１１１からの形状データ（「敵のキャラクタ等のオブジェクト」、及び、「風景、建物、屋内、地下道等のゲーム背景」等の３次元データ）を読み込んで、三次元仮想空間のシチュエーション設定、入力装置１１からのトリガ信号に対するシューティング処理等、を行うようになっている。
【００４２】
仮想ゲーム空間内の各種オブジェクトは、３次元空間での座標値が決定され後、この座標値を視野座標系に変換するための変換マトリクスと、形状デ−タ（建物、地形、屋内、研究室、家具等）とがジオメタライザ１１０に指定される。コ・プロセッサ１０８には地形デ−タＲＯＭ１０９が接続され、したがって、予め定めたカメラの移動コース等の地形デ−タがコ・プロセッサ１０８（及びＣＰＵ１０１）に渡される。また、コ・プロセッサ１０８は、シューティングの命中の判定やカメラ視線とオブジェクト間の偏差、視線移動の制御演算等を行うものであり、そして、この判定や計算時に、主に、浮動小数点の演算を引き受けるようになっている。この結果、コ・プロセッサ１０８によりオブジェクトへの射撃の当たり判定やオブジェクトの配置に対する視線の移動位置の演算が実行されて、その結果がＣＰＵ１０１に与えられるようになされている。
【００４３】
ジオメタライザ１１０は形状デ−タＲＯＭ１１１及び描画装置１１２に接続されている。形状デ−タＲＯＭ１１１には予めポリゴンの形状デ−タ（各頂点からなる建物、壁、廊下、室内、地形、背景、主人公、味方、複数種類の敵（例えばゾンビ）等の３次元デ−タ）が記憶されており、この形状デ−タがジオメタライザ１１０に渡される。ジオメタライザ１１０はＣＰＵ１０１から送られてくる変換マトリクスで指定された形状デ−タを透視変換し、３次元仮想空間での座標系から視野座標系に変換したデ−タを得る。
【００４４】
描画装置１１２は変換した視野座標系の形状デ−タにテクスチャを貼り合わせフレームバッファ１１５に出力する。このテクスチャの貼り付けを行うため、描画装置１１２はテクスチャデ−タＲＯＭ１１３及びテクスチャマップＲＡＭ１１４に接続されるとともに、フレームバッファ１１５に接続されている。なお、ポリゴンデータとは、複数の頂点の集合からなるポリゴン（多角形：主として３角形又は４角形）の各頂点の相対ないしは絶対座標のデータ群を云う。前記地形データＲＯＭ１０９には、カメラがゲームストーリーに沿って仮想空間を移動する上で足りる、比較的粗く設定されたポリゴンのデータが格納されている。これに対して、形状データＲＯＭ１１１には、敵、背景等の画面を構成する形状に関して、より緻密に設定されたポリゴンのデータが格納されている。
【００４５】
スクロールデ−タ演算装置１０７は文字などのスクロール画面のデ−タを演算するもので、この演算装置１０７と前記フレームバッファ１１５とが画像合成装置１１６及びＤ／Ａ変換器１１７を介してＴＶモニタ１３に至る。これにより、フレームバッファ１１５に一時記憶されたオブジェクト（敵）、地形（背景）などのポリゴン画面（シミュレーション結果）と、その他の文字情報（例えば、遊戯者側のライフカウント値、ダメージ点等）のスクロール画面とが指定されたプライオリティにしたがって合成され、最終的なフレーム画像デ−タが生成される。この画像デ−タはＤ／Ａ変換器１１７でアナロク信号に変換されてＴＶモニタ１３に送られ、シューティングゲ−ムの画像がリアルタイムに表示される。
【００４６】
［ゲーム全体の流れ］
次に、ゲームの全体の流れを図２を参照して説明する。同図はゲームの概略を説明するフローチャートであり、移動モード、ゲームモードに大別される。移動モード（Ｓ１０）では、予めプログラムされたゲームストーリーに従って、仮想カメラがコンピュータシステム内に形成される仮想ゲーム空間を移動し、種々のシチュエーションを画面に映し出す。  
【００４７】
仮想カメラが、予めプログラムされた敵の出現ポイントに移動すると、画面に敵が表示され（Ｓ２０）、シューティングゲームを展開するゲームモードに移行する（Ｓ３０）。ゲームモードにおいて遊戯者は、敵をシューティングしながら移動することによって先に進むことができる。遊戯者が敵を撃滅すると、再びカメラは予めプログラムされたゲームストーリーに従って移動し、他のシチュエーションに移動でき（Ｓ４０；Ｙｅｓ）、更に、ゲームを展開することが可能である（Ｓ１０〜Ｓ３０）。
【００４８】
敵を撃滅することができず、主人公が敵に負けた場合や最後のゲームをクリアした場合には（Ｓ４０；Ｎｏ）、ゲームの終了が判定される。例えば、主人公のダメージが少ない場合（Ｓ５０；Ｎｏ）には、他のシチュエーションのゲームモード（Ｓ１０〜Ｓ３０）や負けたゲームモードに戻ることが可能である。また、いわゆるゲームのセクションに設定された時間のタイムアップやダメージ値等のゲームパラメータがゲーム終了条件を満たす場合には、ゲームが終了となる（Ｓ５０；Ｙｅｓ）。
【００４９】
［ゲームモード］
次に、ゲームモードにおける処理の流れを図３を参照して説明する。図３は、ゲームモード（Ｓ３０）における処理を説明するフローチャートである。仮想カメラが仮想空間内を移動して敵が出現すると、敵出現手段が、シーンに予めプログラムされている種類及び数の敵を出現させる処理を行う（Ｓ３０２）。なお、敵を出現させる処理については、例えば、特開平１０−１６５５４７号公報等の公知の技術を使用可能である。
【００５０】
敵の出現に伴い、仮想カメラ制御手段が、仮想カメラの移動速度を仮想カメラ（視点）と敵との距離に応じて変化させる（Ｓ３０４）。この仮想カメラの移動速度を制御する処理については、後に図４〜図６を参照して説明する。また、仮想カメラの注視点についても、仮想カメラ（視点）と敵との距離に応じて変化させる（Ｓ３０４）。この処理については、後に図４を参照して説明する。
【００５１】
また、遊技者は出現した敵をシュート（射撃）することができる。敵が射撃されると、射撃結果判定手段は、射撃した結果の判定を行う（Ｓ３０６）。まず、射撃が敵へ命中したか否かを判定（当たり判定）し、射撃が命中した敵には当りフラグが設定され、ついで射撃によるダメージ値や破損進行値が算出される。当たり判定やダメージ値の算出等は、ショットガンの特性を活かして行われるが、これらの処理の詳細については、後に図１１〜図１３等を参照して説明する。
【００５２】
射撃により敵が消滅すると、敵移動手段が、空いている位置あるいは消滅した位置に後ろの敵を進めるべく、敵の移動処理を行う（Ｓ３０８）。なお、敵の移動処理については、既述の特開平１０−１６５５４７号公報等の公知の技術を使用可能である。
【００５３】
その後ゲームが継続かどうかが判別される。敵が残っている等して、まだ闘いが終っていない場合には（Ｓ３１０；Ｙｅｓ）、ゲームストーリーのプログラムに基づいて敵を出現するかどうかを判別する（Ｓ３１２）。敵を出現すべき場合は（Ｓ３１２；Ｙｅｓ）、敵を出現させる（Ｓ３０２）。敵を出現させない場合には（Ｓ３１２；Ｎｏ）、残りの敵に対するシューティング結果の判別に移行し（Ｓ３０６）、ステップ３０８〜ステップ３１０を繰返す。ゲームの終了が判別されると（Ｓ３１０；Ｎｏ）、既述ステップ４０に戻る。そして、次のゲームシーンに移る移動モードに戻るかどうか（Ｓ４０）、ゲーム終了か（Ｓ５０）、が判別される。
【００５４】
［仮想カメラの移動］
ここで、仮想カメラ制御手段による仮想カメラの移動に関する改良について説明する。なお、仮想カメラは、３次元仮想空間における視点であり、この視点から見た映像がモニタを介して遊戯者に表示される。従来のゲームでは、仮想カメラが予めプログラムされた敵の出現ポイントに移動すると、仮想カメラは移動を中止していた。よって、遊戯者は、敵が出現すると（所定の場所にくると）、その場で立ち止まり敵をシューティングしていた。また、仮想カメラの移動速度は一定であった。
【００５５】
これに対し、本実施形態では、カメラの移動速度をカメラと敵の距離によって変化させることとしているので、遊戯者が敵を倒す早さがゲームの進行に影響を与えるようになる。例えば、カメラと敵の距離が近くなるにつれてカメラの移動速度が低下するようにカメラの移動速度を変化させる。これにより、遊戯者が、近づいてくる敵を早く倒せば倒すほど（遊戯者から離れた遠くで倒せば倒すほど）、ゲームの進行が早くなり、結果的に高得点を得ることができる。一方、遊戯者が敵を倒すのが遅ければ遅いほどゲームの進行が遅くなるので、高得点を得ることができない。つまり、制限時間内で敵を倒す場合であっても、敵を倒したスピードによって、ゲームの展開や結果に差がでるようになる。また、遊戯者は、目的地へ移動しつつ向かってくる敵を把握し射撃するので、緊迫しながらゲームを楽しむことができる。
【００５６】
次に、仮想カメラの移動と敵との関係について、図４を用いて説明する。同図に示すように、仮想カメラは、予め定められた軌道上を決められた速度及び角度で進行する。仮想カメラは、遊戯者が敵を感知する距離であるとともに、敵との距離に応じて自身の移動速度を変化させるための距離（敵感知距離）を持っている。例えば、敵が、この敵感知距離に入ってくると、仮想カメラの移動速度が遅くなる。仮想カメラの移動速度は、敵が仮想カメラに近づくにつれて徐々に遅くなり、ある一定の距離まで敵が近づくと、仮想カメラの移動が止まる。同図に示すように、敵感知距離は、仮想カメラの位置を中心にして、仮想カメラが通常の速度で移動するカメラ通常速度移動区、仮想カメラが低速度で移動するカメラ低速度移動区、仮想カメラの移動が停止するカメラ移動停止区、の３つに区分されている。各区分は、仮想カメラの位置からの距離により区分されている。
【００５７】
敵がカメラ通常速度移動区にいる場合は、遊戯者は敵をまだ遠くに感じる距離であり、仮想カメラの移動速度は変化せず通常速度が維持される。敵がカメラ低速度移動区へ入ってくると、遊戯者は敵を倒さないといけないと感じる距離であり、仮想カメラの移動速度は通常速度よりも遅くなる。さらに、敵がカメラ移動停止区へ入ってくると、遊戯者が敵に倒される危険が高まる距離であり、仮想カメラの移動が止まる。なお、仮想カメラの移動速度を決定する区分は上記３つの区分に限定されない。これらの区分はゲームの難易度等に応じて適宜設定することができる。
【００５８】
次に、図５及び図６（A）（B）を参照して仮想カメラの移動速度を敵との距離に応じて変化させる処理の流れについて説明する。図５は、仮想カメラの制御（図３のＳ３０４）における処理を説明するフローチャートである。図６（Ａ）は、敵感知距離と仮想カメラに最も接近した敵の位置ｄとの関係を表す図である。図６R>６（Ｂ）は、加速度を求める式を説明するための図である。
【００５９】
まず、仮想カメラに最も近い敵の位置ｄを求める（Ｓ３０４ａ）。図６（A）に示すように、カメラ移動停止区は仮想カメラの位置〜２．５ｍ以内の範囲に、カメラ低速度移動区は仮想カメラの位置から１０ｍ以内の範囲に（カメラ移動停止区を除く）、カメラ通常速度移動区は仮想カメラの位置から１０ｍ以上離れた範囲に、それぞれ設定されている。次に、位置ｄが、カメラ移動停止区内であるか否かを判断し（３０４ｂ）、カメラ移動停止区内であると判断する場合には（Ｓ３０４ｂ；ＹＥＳ）、カメラ移動停止区の加速度を算出する（Ｓ３０４ｃ）。なお、加速度は図６（Ｂ）に示した式によって算出することができる。
【００６０】
次に、位置ｄが、カメラ移動停止区内でないと判断する場合には（Ｓ３０４ｂ；ＮＯ）、カメラ低速度移動区内であるか否かを判断し（３０４ｄ）、カメラ低速度移動区内であると判断する場合には（Ｓ３０４ｄ；ＹＥＳ）、カメラ低速度移動区の加速度を算出する（Ｓ３０４ｃ）。一方、カメラ低速度移動区内でないと判断する場合には（Ｓ３０４ｄ；ＮＯ）、カメラ移動停止区の加速度を算出する（Ｓ３０４ｆ）。
【００６１】
以上算出された加速度に基づいて、仮想カメラの移動速度ｓを算出し（Ｓ３０４ｇ）、算出された移動速度ｓが０未満であるか否かを判断する（Ｓ３０４ｈ）。算出された移動速度ｓが０未満である場合には（Ｓ３０４ｈ；ＹＥＳ）、移動速度ｓに０を設定する（Ｓ３０４ｉ）。一方、算出された移動速度ｓが０未満でない場合には（Ｓ３０４ｋ；ＮＯ）、算出された移動速度ｓが１よりも大きいか否かを判断し、１よりも大きい場合には（Ｓ３０４ｋ；ＹＥＳ）、移動速度ｓに１を設定する。
【００６２】
上記処理を換言すれば、まず、仮想カメラの位置ｄ（仮想カメラとキャラクタとの距離）を算出する。次に、位置dが含まれる区域を判定し、位置ｄが含まれる区域に基づいて仮想カメラの加速度を算出する。そして、加速度に基づいて仮想カメラの移動速度を算出する。
【００６３】
なお、複数のキャラクタが仮想空間内に定義されたとき（出現したとき）は、それらのキャラクタを全滅させると仮想カメラの移動速度が通常に戻るようにしてもよい。具体的には、仮想空間内に出現したキャラクタが全滅したか否かを判定する。全滅したと判定される場合には、仮想カメラの移動速度を通常速度に設定する。
【００６４】
また、敵キャラクタが仮想空間内に出現してから全滅するまでの時間に応じて、仮想カメラの進行方向やゲームのストーリー進行が変化する（または予め用意された別の分岐に入る）ようにしてもよい。具体的には、敵キャラクタが仮想空間内に出現してから全滅するまでの時間を計測する。計測された時間に応じて、仮想カメラの進行方向やゲームのストーリー進行を選択する。
【００６５】
以上によれば、仮想カメラの移動速度は、仮想カメラと敵との距離に応じて変化するとともに、敵との距離が近づくにつれ移動速度が遅くなる。よって、遊戯者が、敵との距離が遠い状態で敵を倒せば、仮想カメラの移動速度は遅くならない。つまり、遊戯者が、敵を早く倒せば倒すほど、ゲームの進行が早くなり、結果的に高得点を得ることができるようになる。
【００６６】
また、仮想カメラの移動速度が敵との距離に応じて変化することにより、緊迫した雰囲気を演出することができるようになる。例えば、画面奥から対象となる敵が向かってくるとき、遊戯者（仮想カメラ）は、ある目的地へ向かって動いている。敵が遊戯者から遠い位置にいるときは、遊戯者の移動スピードは特に変わらないので、遊戯者は、自ら目的地へ進むほうを優先しているような感触を得る。しかし、時間が経過して敵が遊戯者に近づくにつれて、遊戯者の移動スピードは落ち、遊戯者は、敵との戦闘体勢に入る事を認識し、緊張感を感じる。そして、最終的にはある一定距離以内に敵がやってくると、遊戯者は移動を停止し、敵との戦闘終了までそのポジションをキープする。遊戯者は、もしかしたら自分が倒されるかもしれないといった緊迫感の中で敵を倒すことになる。このように、遊戯者の移動と敵の移動とが相互にからみあうことにより、より緊迫した雰囲気を演出することができるようになる。
【００６７】
［仮想カメラの注視点］
ところで、仮想カメラは三次元仮想空間内をプログラムに従って移動し、カメラの視線は、図７に示すように、空間内のある点（注視点）を向くように設定され、注視点が表示画面の中央となるように画像を形成する。注視点は、仮想カメラの視線方向の敵の状況に対応して制御される。この制御では、仮想カメラと敵との距離に基づいて、注視点が敵を追う速度が変化するようにする。より具体的には、注視点は、敵感知距離に敵が入ってくると、敵を追うようになるとともに、敵との距離が近づくにつれて敵を追う速度が速くなるように制御する。
【００６８】
仮想カメラと敵との距離に基づいて、注視点を制御する例について、図４を用いて説明する。仮想カメラの注視点は、プログラムに従って予め設定されている。そこで、敵感知距離の中に敵が入ると（同図の敵１）、仮想カメラの注視点は、敵を追うようになるが、敵はまだ遠いので、注視点が敵を追う速度を遅く設定する。さらに、敵が仮想カメラに近づくと（同図の敵２）、注視点が敵を追う速度を速く設定する。そして、敵がある一定の距離まで近づくと（同図の敵３）、注視点が敵を追う速度は最大値となる。
【００６９】
上記処理を換言すれば、まず、注視点設定手段は、仮想カメラの注視点を設定する。次に、仮想カメラの注視点を設定すべき敵を選択する。敵は、敵感知距離の中にいる敵であって、仮想カメラから最も近い距離にいる敵を選択する。そして、敵の位置に従って注視点を移動させる速度を決定し、決定された速度で注視点を移動させる。
【００７０】
［ショットガンによる射撃の結果の判定処理］
次に、遊戯者が敵を射撃した場合の射撃結果の判定処理における改良について説明する。本実施形態では、遊戯者が所持している武器がショットガンに設定されている。よって、ショットガンの「広範囲に弾が拡散する」という特性を活かした射撃の効果が得られるように、射撃の結果を判定することが望ましい。このショットガンの特性は、例えば、近くの物に発射すれば、弾丸は狭い範囲に高密度で着弾し、十分な威力を発揮する一方、遠くの物に発射すれば、弾丸は拡散し、広範囲に着弾するが、密度も低く、十分な殺傷能力を得られないと把握することができる。
【００７１】
よって、本実施形態では、敵との距離に応じて敵に与えるダメージを変化させるという観点、敵との距離に応じて弾の有効範囲（弾丸の威力）を変化させるという観点、当該有効範囲内における着弾箇所によっても敵に与えるダメージを変化させるという観点に基づいて、射撃が敵に与えるダメージを判定することとしている。
【００７２】
図８は、敵の距離と弾丸の威力の関係の一例を表した図である。同図に示すように、弾丸の威力及び弾丸の有効範囲が、敵との距離に応じて変化するように設定されている。例えば、弾丸の威力、敵との距離が３ｍの時点では１００ｐｔであるのに対し、５ｍでは６０ｐｔ、７ｍでは３０ｐｔに低減している。一方、弾丸の有効範囲は、敵との距離が３ｍの時点では２０ｃｍであるのに対し、５ｍでは６０ｃｍ、７ｍでは７０ｃｍに拡大している。また、図９は、弾丸の有効範囲と弾丸の威力の関係の一例を表す図である。同図に示すように、弾丸の威力は、その着弾箇所が、遊戯者が狙ったポイント（同心円の中心部）からの距離が離れた地点ほど減退し、敵に与えるダメージが小さくなるように設定されている。なお、敵との距離と弾丸の有効範囲との関係については、図１０に一例を示す。
【００７３】
このような設定に基づく遊戯者の射撃結果について、図８及び図９を参照して説明すると、遊戯者は、敵が３ｍ以内に近づいた時点で敵（例えば頭部）を射撃すれば、１００ｐｔのダメージを与えることができる。一方、敵が５ｍの時点では、同じ頭部を射撃しても、６０ｐｔのダメージしか与えることができない。しかし、弾の有効範囲は、３ｍの時点では２０ｃｍであるのに対し、５ｍの時点では５０ｃｍへ拡大しているので、頭部へ命中する可能性が高くなるとともに、頭部と同時に他の部位（胸や肩など）へも命中し、ダメージを与える可能性が高い。しかし、頭部の中心を狙うと、胸への着弾は弾丸の威力１００％の範囲を外れて、８０％ほどになってしまう可能性がある一方、首を狙うことで、頭部と胸とを１００％の攻撃力でダメージを与えることが可能になる。このように、敵との距離に応じて、狙うべき有効な箇所も変化するので、ショットガンの特性を把握して射撃するという攻略性が期待され、ゲームの面白味を増すことができる。
【００７４】
次に、遊戯者が敵を射撃した場合の処理の流れについて説明する。図１１は、射撃の結果の判定処理（図３のＳ３０６）における処理を説明するフローチャートである。まず、遊戯者が敵を射撃すると、当り判定手段が、弾丸が敵に命中したか否かを判断する当たり判定処理を行う（Ｓ３０６ａ）。当たり判定処理については、後に図１２（A）（B）で詳述する。当たり判定処理にて弾丸が命中したと判断される敵には、当たりフラグが設定される。
【００７５】
次に、当たりフラグが設定されている敵について、ダメージを算出する算出手段が、射撃によるダメージを算出するダメージ処理を行う（Ｓ３０６ｂ）。ダメージ処理については、後に図１３（A）（B）で詳述する。また、破損の程度を算出する算出手段が、破損射撃の結果に応じて敵の破損度合い決定し視覚的に表現するための破損処理を行う（Ｓ３０６ｃ）。破損処理については、後に図１６で詳述する。
【００７６】
［当たり判定処理］
次に、遊戯者が敵を射撃した場合の、当たり判定処理の流れについて図１２を参照しながら説明する。図１２（A）は、当たり判定処理の流れを説明するフローチャートである。遊戯者により射撃が行われると（Ｓ３０６ａ1；ＹＥＳ）、遊戯者の位置を原点、射撃方向のベクトルをＺ軸とする座標系に、敵の座標を変換する（Ｓ３０６ａ２）。
【００７７】
そして、敵のＺポジションにおける弾丸の有効範囲（散弾の拡がり）である半径ＤＲを求め（Ｓ３０６ａ３）、敵のＺ軸との距離である距離Ｌを求める（Ｓ３０６ａ４）。そして、敵の球コリジョンの半径Ｒを算出し（Ｓ３０６ａ５）、半径ＤＲ、距離Ｌ及び半径Ｒに基づいて、敵に着弾したか否かを判断する（Ｓ３０６ａ６）。具体的には、距離Ｌよりも半径Ｒと半径ＤＲとの合計値が大きいか、あるいは距離Ｌと半径Ｒ及び半径ＤＲの合計値が等しい場合には、弾丸が敵に当たったと判定する（Ｓ３０６ａ６；ＹＥＳ）。これに対し、距離Ｌよりも半径Ｒ及び半径ＤＲの合計値が小さい場合には（Ｓ３０６ａ６；ＮＯ）、弾丸は敵に当たらなかったと判定する（Ｓ３０６ａ７）。
【００７８】
敵に当たった場合は、敵のＺポジションにおけるショットガンの円錐コリジョンの断面を、所定の数に分割（例えば１６個に分割）し、敵がどの部分を占めるかを判定する（Ｓ３０６ａ８）。図１２（Ｂ）は、円錐コリジョンの断面を、部分１〜部分１６に分割する様子を示す図である。
【００７９】
Ｓ３０６ａ１〜Ｓ３０６ａ８の処理を、出現中の全ての敵について行うと（Ｓ３０６ａ９）、敵をＺポジションに従って並び替え（Ｓ３０６ａ１０）、Ｚ軸の手前から円錐コリジョンに当たった部分を埋める（Ｓ３０６ａ１１）。敵が、部分１〜部分１６のうち少なくとも１つの部分を埋めているか否か（空き部分を埋めているか否か）を判断し（Ｓ３０６ａ１２）、埋めていない場合には、その敵について当たりフラグを設定しない（Ｓ３０６ａ１３）。一方、埋めている場合には、その敵について当たりフラグを設定する（Ｓ３０６ａ１４）。つまり、当たった部分が、既に他の敵によって全て埋められている場合には、弾丸が外れていると判断され、当たりフラグは設定されない。
【００８０】
全ての敵について、当たり判定の処理が終了するまで、Ｓ３０６ａ１〜Ｓ３０６ａ１４の処理を繰り返す。
【００８１】
これによれば、ベクトルと球コリジョンの当たり判定を複数回行うことなく、ショットガンの場合の当たり判定を行うことができるようになる。
【００８２】
［ダメージ処理］
次に、図１３を参照しながら、遊戯者の射撃に応じて敵に与えられるダメージを算出するダメージ処理の流れについて説明する。図１３は、ダメージ処理の流れを説明するフローチャートである。なお、敵の体には、予め所定の部位（例えば、頭・腕・足・胸等）が設定されており、各部位については、予め所定のパーツ（例えば、「腕」については「肩・上腕・下腕・手」）が設定されている。弾丸が敵の体の各部位に命中したか否かは、図１２（A）」にて説明した当たり判定処理にて設定された当たりフラグを用いることができる。
【００８３】
まず、所定の部位について、当たりフラグがたっているか否かを判断し（Ｓ３０６ｂ１）、当たりフラグがたっている場合には、着弾ポイントに最も近いパーツを選択する（Ｓ３０６ｂ２）。ついで、命中地点でのショットガンの有効範囲を特定し（Ｓ３０６ｂ３）、選択されたパーツについて、中心弾道からの距離を算出する（Ｓ３０６ｂ４）。そして、中心弾道からの距離に基づいて、ダメージ率を計算する（Ｓ３０６ｂ５）。
【００８４】
このダメージ率の計算は、図１３（B）に示すような計算式によって算出することができる。なお、計算式中、最小ダメージ率（MAX_DAMAGE_RATE）は、散弾の範囲内で、着弾からもっとも離れた位置での弾丸の威力のパーセンテージであり、例えば、０．１が設定される。また、最大命中半径に対する最大ダメージの範囲（MAX_DAMAGE_RADIUS_RATE）は、散弾範囲の中心から同威力を維持すべき範囲を決定するパーセンテージである。これにより、着弾ポイントから一定の範囲は同威力を維持するように形成される。ダメージ範囲（SHOT_GUN_RADIUS）は、命中地点でのショットガンの威力が有効な範囲であり、散弾の範囲を意味する。また、中心弾道からの距離（HIT_LEN）は、中心弾道と敵との距離であり、敵の球コリジョンの半径を引いた数である。
【００８５】
Ｓ３０６ｂ５にてダメージ率が算出されると、図１４に示すダメージテーブルを参照し、敵との距離とパーツの部位とによって決定されるダメージ値を特定する（Ｓ３０６ｂ６）。図１４は、ダメージテーブルの構成の一例を示す図である。ダメージテーブルは、着弾した敵のダメージ値を決定するためのダメージ値が格納されている。なお、同図では、敵の平均的な体力値が２００ポイントとした設定されているものとする。同図に示すように、ダメージ値は、遊戯者と敵との距離及び被弾した箇所に対応して設定されている。敵の体力値は、このダメージ値に、着弾地点からの距離によるダメージの減算処理を加えて算出される。
【００８６】
例えば、敵との距離が３ｍ以下で、パーツが腕部の場合には、敵に与えたダメージ値は「３０」ポイントとなる。ダメージ率とダメージ値と乗じることにより、当該パーツに与えられたダメージ値を計算する（Ｓ３０６ｂ７）。
【００８７】
全ての部位についてダメージ値を計算していない場合には、他の部位について同様にダメージ値を計算する（Ｓ３０６ｂ８；ＮＯ）。一方、全ての部位についてダメージ値の計算が終了した場合には、各部位のダメージ値を合計することにより、敵のダメージの総計を計算する。つまり、各部位のダメージ値の和が、敵に与えたダメージとなり、敵の体力値から減算され、減算後の体力値が所定値以下となった場合には、当該敵は画面から消滅する。
【００８８】
図１５は、対象物（敵）の被弾イメージの一例を示す図である。同図には、近距離と遠距離とで、同じ箇所に着弾した時の弾丸の有効範囲が点線円で、ダメージが☆で示されている。図１５（Ａ）のように近距離で命中した場合には、腹部を中心に被弾しており、被弾する箇所は少ないが、各パーツが大きなダメージを受けることになる。また、図１５（Ｂ）のように遠距離で命中した場合には、体全体にわたって広範囲に被弾しているが、各パーツが受けるダメージは少ないことがわかる。以上によれば、仮想カメラとキャラクタとの距離に基いて仮想カメラの移動速度が変化する一方、仮想カメラとキャラクタとの距離に基いて射撃がキャラクタに与えるダメージ量が変化する。よって、「敵を引き付けて撃てば、高い威力の射撃を敵に当てることによって、『敵一体』については早く倒せるが、移動速度自体は遅くなる。よって、敵の数が多い場合には、射撃の威力が小さくても、あえて遠くから撃ったほうが、範囲の広い攻撃ができるので、結局は、より早く敵を全滅させて早く進めるかもしれない」、といった葛藤を遊戯者に感じさせ、ゲームの興趣を増すことができるようになる。
【００８９】
［破損処理］
次に、遊戯者の射撃に応じて敵の破損状態を表示するための破損処理の流れについて説明する。破損処理では、遊戯者の射撃に応じて敵がどのくらいのダメージを受けているかを、視覚的に表現する。ダメージ（破損状態）は、敵に着弾するたびに、着弾が敵に与えた破損進行値が加算され、この加算された結果に応じて表示される。着弾により敵に与える破損進行値は、敵との距離によって設定されており、具体的には、敵との距離が近いほど破損進行値は大きく、敵との距離が遠いほど破損進行値は小さく設定される。
【００９０】
ここで、敵には、所定の段階に応じてダメージ（破損状態）を表現するためのダメージパーツが、パーツごとに用意されている。例えば、敵Ａの身体のパーツ「胸」については、ダメージパーツが５段階（０→１→２→３→４）に対応して設けられている。これらのダメージパーツは、段階が進むにつれて破損の度合いが強くなるように設定されている。例えば、段階０は破損のない状態、段階１は胸の一部が流血した状態、段階２は胸の一部が殺傷した状態、段階３は胸の全体が殺傷した状態、段階４は胸が離散した状態を、それぞれ表示する。なお、ダメージの段階や表現は、敵の種類によって異なるように設定することができる。
【００９１】
図１６は、破損処理の流れを説明するフローチャートである。なお、弾丸が敵の体の各部位に命中したか否かは、図１２にて説明した当たり判定処理にて設定された当たりフラグを用いることができる。
【００９２】
まず、所定の部位について、当たりフラグがたっているか否かを判断し（Ｓ３０６ｃ１）、当たりフラグがたっている場合には（Ｓ３０６ｃ１：ＹＥＳ）、当該部位について、着弾ポイントに最も近いパーツを選択する（Ｓ３０６ｃ２）。そして、図１７に示す破損進行値テーブルを参照し、敵との距離に基づいて破損進行値を特定する（Ｓ３０６ｃ３）。
【００９３】
図１７は、敵との距離に応じて破損進行値を設定した破損進行値テーブルの構成の一例を示す図である。同図に示すように、ある部位のパーツＡの破損進行値は、敵との距離が近いほど破損進行値は大きく、敵との距離が遠いほど破損進行値は小さくなるように設定されている。なお、同図では、パーツＡ（例えば腕の上腕）の破損進行値についてのみ表示をしている。他のパーツ（例えば腕の下腕）や他の部位（例えば頭など）については、記載を省略しているが、これらについても、同様に破損進行値が設定される。
【００９４】
次に、破損進行値を特定すると、所定の記憶領域に格納されている当該パーツの破損進行値に加算する（Ｓ３０６ｃ４）。つまり、当該パーツが、既に着弾を受けている場合には、その着弾による破損進行値に今回の着弾による破損進行値が加算され、破損進行値の合計値が増加する。加算後の破損進行値に基づいて表示ダメージパーツのパラメータを参照し、射撃の結果表示すべき表示ダメージパーツを特定する（Ｓ３０６ｃ５）。
【００９５】
具体的には、表示ダメージパーツは、「表示ダメージパーツ＝パーツの破損進行値／１０（端数切捨て）」という式によって特定される。例えば、着弾時の敵との距離が８ｍである場合には、パーツの破損進行値は「７」であり、「７／１０＝０（端数切捨て）」であるので、ダメージパーツは「０」段階のものが表示される。さらに、同じ距離で着弾した場合には、破損進行値は「７＋７＝１４」となり、「１４／１０＝１（端数切捨て）」であるので、ダメージパーツは「１」段階のものが表示される。
【００９６】
これに対し、着弾時の敵との距離が３ｍである場合には、パーツの破損進行値は「１５」であり、「１５／１０＝１」（端数切捨て）」であるので、ダメージパーツは「１」段階のものが表示される。さらに、同じ距離で着弾した場合には、破損進行値は「１５＋１５＝３０」となり、「３０／１０＝３（端数切捨て）」であるので、ダメージパーツは「３」段階のものが表示される。このように、着弾時の距離が近い場合には、少ない着弾回数で破損の状態が強くなる。
【００９７】
［第２のダメージ処理］
次に、射撃が敵（キャラクタ）に与える第２のダメージ処理について説明する。ここでは、射撃の有効範囲（ダメージ範囲）全体のうち、ダメージ範囲と敵のコリジョン範囲とが接触する範囲（当たり判定部分）が占めている割合（以下、「第１の接触割合」という。）を算出し、算出された割合によってダメージ値を算出する。具体的には、ダメージ範囲が持つダメージ値に対して、第１の接触割合を乗じることによってダメージ値を算出する。以下、図１８を用いて具体的に説明する。
【００９８】
図１８は、第２のダメージ処理について説明するための図である。同図（Ａ）では、ダメージ範囲に当たり判定部分の１００％が含まれている。敵のダメージは、「敵のダメージ値＝ダメージ値×第１の接触割合（％）」という式によって算出される。よって、ダメージ値が１００に設定されている場合、敵のダメージ値は、「ダメージ値（１００）×第１の接触割合（１００％）＝１００」であるから１００となる。
【００９９】
同図（Ｂ）は、ダメージ範囲に当たり判定部分の５０％が含まれている。ダメージ値が１００に設定されている場合、敵のダメージ値は「ダメージ値（１００）×第１の接触割合（５０％）＝５０」であるから、５０となる。なお、ダメージ範囲に当たり判定部分の５０％が含まれているとは、換言すれば、敵のコリジョン範囲と、ダメージ範囲の５０％とが重なっていることでもある。
【０１００】
次に、第２のダメージ処理の他の例について説明する。他の例では、敵のコリジョン範囲全体のうち、ダメージ範囲と敵のコリジョン範囲とが接触する面積（当たり判定部分）が占めている割合（以下、「第２の接触割合」という。）を算出し、算出された第２の接触割合によってダメージを算出する。具体的には、ダメージ範囲が持つダメージ値に第２の接触割合を乗じることによって、ダメージ値を算出する。以下、図１８（Ｃ）（D）を用いて具体的に説明する。
【０１０１】
同図（Ｃ）では、敵のコリジョン範囲全体に、当たり判定部分の１００％が含まれている。敵のダメージ値は、「敵のダメージ＝ダメージ値×第２の接触割合（％）」という式によって算出される。よって、ダメージ範囲全体の与えるダメージ値が１００に設定されている場合、敵のダメージ値は、「ダメージ値（１００）×接触割合（１００％）＝１００」であるから、１００となる。
【０１０２】
これに対し、同図（Ｄ）では、敵のコリジョン範囲全体に、当たり判定部分の５０％が含まれている。よって、ダメージ範囲全体の与えるダメージ値が１００に設定されている場合、「ダメージ値（１００）×接触割合（５０％）」によって、敵のダメージ値は５０となる。なお、敵のコリジョン範囲全体に、当たり判定部分の５０％が含まれているとは、換言すれば、敵のコリジョン範囲と、ダメージ範囲の５０％とが重なっていることでもある。
【０１０３】
次に、ダメージ範囲と敵のコリジョン範囲とが接触する面積（当たり判定部分）を算出する方法について、同図（Ｅ）を参照しながら説明する。まず、同図（Ｅ）に示すように、ダメージ範囲を、所定間隔の格子状に細分化する。そして、コリジョン範囲と重なった部分の格子の数を計算する。最後に、第１の接触割合の場合には、ダメージ範囲全体の格子の数に対する重なった部分の格子の割合を計算する。第２の接触割合には、コリジョン範囲全体の格子の数に対する重なった部分の格子の割合を計算する。
【０１０４】
また、他の例としては、ダメージ範囲やコリジョン範囲を当たり判定用の仮想画像（表示されない）に投影し、重なった部分の仮想画像上における画素（ピクセル）数を計数するようにしてもよい。
【０１０５】
なお、重なり部分の面積とダメージ値とは、厳密に対応させなくてもよく、例えば、「重なり部分が１％以上１０％未満」のときは「ダメージは１０％」、「重なり部分が１０％以上３０％未満」のときは「ダメージは３０％」というように、ダメージを段階的に分ける事もできる。
【０１０６】
また、ダメージ範囲は円形に限られず、楕円形や多角形など適宜これを設定することができる。また、他のダメージ処理と併用することによって、さらに細分化されたダメージ処理を実行することもできる。
【０１０７】
次に、射撃の攻撃対象である敵が、人型の場合に、当該敵への着弾を第２のダメージ処理によって算出する場合について説明する。図１９は、敵が人型の場合の第２のダメージ処理を説明する図である。
【０１０８】
図１９（Ａ）のように、ダメージ範囲が敵の腰より上と重なっている場合は、ダメージ範囲全体のうちの約８０％が敵のコリジョン範囲と重なっている（ダメージ範囲に当たり判定部分の８０％が含まれている）と判定される。ダメージ範囲全体の与えるダメージ値が１００に設定されている場合、敵のダメージ値は、「ダメージ値（１００）×第１の接触割合（８０％）＝８０」によって、８０となる。
【０１０９】
なお、ダメージ判定がパーツ毎に行われる場合には、パーツ毎にダメージ範囲内での占める面積を計算し、合計面積に基づいてダメージ値を計算する。例えば、両腕と頭には１０％、腰に２０％、胸は３０％である場合、それぞれのダメージ値は、両腕の２０、頭の１０、腰の２０、胸の３０を合計し、「２０＋１０＋２０＋３０＝８０」で８０となる。
【０１１０】
同図（Ｂ）のように、ダメージ範囲が片腕と重なっている場合は、ダメージ範囲全体のうちの約１０％が敵のコリジョン範囲と重なっていると判定される。ダメージ値が１００に設定されている場合、「ダメージ値（１００）×第１の接触割合（１０％）＝１０」によって、敵のダメージ値は１０となる。なお、ダメージ判定がパーツ毎に行われる場合には、腕に対してダメージ値は１０となる。
【０１１１】
同図（Ｃ）のように、ダメージ範囲が両足と重なっている場合は、ダメージ範囲全体のうちの約４０％が敵のコリジョン範囲と重なっていると判定される。ダメージ値が１００に設定されている場合、「ダメージ値（１００）×第１の接触割合（４０％）＝４０」によって、敵のダメージ値は４０となる。なお、ダメージ判定がパーツ毎に行われる場合には、両足に対してダメージ値は４０、右足と左足に対してそれぞれダメージ値は２０となる。
【０１１２】
同図（Ｄ）のように、ダメージ範囲が２体の敵と重なっている場合には、それぞれについて算出する。まず、敵Ａについては、ダメージ範囲が片腕と重なっているので、ダメージ範囲全体のうち約１０％が敵のコリジョン範囲と重なっていると算出される。一方、敵Ｂについては、ダメージ範囲が上半身と重なっているので、ダメージ範囲全体のうち約５０％が敵のコリジョン範囲と重なっていると算出される。ダメージ値が１００に設定されている場合、敵Ａについては、「ダメージ値（１００）×第１の接触割合（１０％）＝１０」で敵のダメージ値は１０となる。敵Ｂについては、「ダメージ値（１００）×第１の接触割合（５０％）＝５０」で敵のダメージ値は５０となる。これにより、「敵Ｂは敵Ａよりもやや離れた後ろに位置しているが、散弾を多く受けた分、ダメージが大きい」というような表現が可能になる。
【０１１３】
このように、ダメージ範囲と敵のコリジョン範囲の接触面積と、敵に与えるダメージ値とを細かく対応させることで、よりリアルで公平感のあるダメージの決定が可能になる。例えば、「弾丸の有効範囲内により多くの敵が含まれるように狙いを定める」ことや、「より強い敵に対してより大きく当てるように狙いを定める」といった、シューティングゲームならではのゲーム性を遊戯者に提供することができるようになる。
【０１１４】
なお、第２のダメージ処理と第１のダメージ処理とを組合せることも可能である。［その他の実施の形態］上記実施形態では、本発明をガンシューティングゲームに適用した場合について説明したが、本発明はこれに限られず、他の種類のゲームに適用することもできる。例えば、三次元仮想空間内に複数のキャラクタが定義され、第１のキャラクタ（例えば敵キャラクタ）は予め定められたプログラムに従って動作し、第２のキャラクタ（遊戯者のキャラクタ）は遊戯者からの操作情報に応じて動作するゲームの場合について説明する。
【０１１５】
この場合、仮想カメラの制御処理では、仮想カメラの位置の代わりに遊戯者キャラクタの位置を採用し、遊戯者キャラクタと敵キャラクタとの距離に基づいて仮想カメラの移動速度を変化させるように制御してもよい。また、仮想カメラの注視点の移動速度を変化させる処理では、同様に、仮想カメラの注視点が敵キャラクタを追う速度を、遊戯者キャラクタと敵キャラクタとの距離に基づいて変化させるように制御してもよい。
【０１１６】
また、ダメージの算出処理では、射撃の有効範囲のかわりに遊戯者キャラクタによる攻撃の有効範囲を適用することができる。この場合、敵キャラクタに与えるダメージは、遊戯者キャラクタと敵キャラクタとの距離、遊戯者キャラクタと敵キャラクタとの距離に従って変化する攻撃の有効範囲、及び攻撃の有効範囲の中心からの敵キャラクタの距離、に基づいてダメージが算出されるようにしてもよい。なお、遊戯者キャラクタ（味方キャラクタ）が攻撃される場合も、同様な方法で算出することができる。
【０１１７】
さらにまた、第２のダメージの算出処理では、攻撃の有効範囲のうち、攻撃の有効範囲と敵キャラクタのコリジョン範囲とが接触する範囲が占める割合に従って、ダメージを算出するようにしてもよい。
【０１１８】
また、上記ダメージの算出処理は、遊戯者が仮想空間内に配置されたオブジェクトに対してダメージを与えるゲームについても応用することができる。具体的には、遊戯者の操作に応じて動作するキャラクタの位置情報と、オブジェクトの位置情報とをそれぞれ取得する。これらの位置情報に基づいてキャラクタとオブジェクトとの距離を取得し、この距離に基いて命中判定領域の大きさを決定する。命中判定領域とオブジェクトとが接触したと判定された場合には、キャラクタとオブジェクトとの距離に基いて、オブジェクトへのダメージ量を生成する。そして、生成したダメージ量に基いて、オブジェクトにダメージを与える。
【図面の簡単な説明】
【０１１９】
【図１】本発明の一実施例に係るゲーム装置の概略構成を示すブロック図である。
【図２】同実施例のＣＰＵが行う全体処理を概略的に説明するフローチャートである。
【図３】ゲームモードにおける処理を説明するフローチャートである。
【図４】仮想カメラの移動と敵との関係を説明する図である。
【図５】仮想カメラの制御における処理の例を説明するフローチャートである。
【図６】（Ａ）は、敵感知距離と仮想カメラに最も接近した敵の位置ｄとの関係を表す図である。（Ｂ）は、加速度を算出する式の例を示す図である。
【図７】仮想カメラの注視点を説明する図である。
【図８】敵の距離と弾丸の威力の関係の一例を表した図である。
【図９】弾丸の有効範囲と弾丸の威力の関係の一例を表す図である。
【図１０】ショットガンの有効範囲の一例を表す図である。
【図１１】当たり判定処理の全体の流れを説明するフローチャートである。
【図１２】（Ａ）は、当り判定処理の流れを説明するフローチャートである。（Ｂ）は、ショットガンの円錐コリジョンを１６分割した場合の例を示す図である。
【図１３】（Ａ）ダメージ処理の流れを説明するフローチャートである。（Ｂ）は、ダメージ値の計算の一例を示す図である。
【図１４】ダメージテーブルの構成の一例を示す図である。
【図１５】対象物（敵）の被弾イメージの一例を示す図である。
【図１６】破損処理の流れを説明するフローチャートである。
【図１７】破損進行値テーブルの構成の一例を示す図である。
【図１８】第２のダメージ処理について説明するための図である。
【図１９】第２のダメージ処理について説明するための図である。
【符号の説明】
【０１２０】
１０ ゲーム装置本体
１１ 入力装置
１２ 出力装置
１３ 表示装置
１０１ ＣＰＵ（シミュレーション装置）
１０２ ＲＯＭ（シミュレーション装置）
１０３ ＲＡＭ（シミュレーション装置）
１０７ スクロールデ−タ演算装置
１０９ 地形デ−タＲＯＭ（シミュレーション装置）
１１０ ジオメタライザ（シミュレーション装置）
１１１ 形状デ−タＲＯＭ（シミュレーション装置）
１１２ 描画装置（シミュレーション装置）
１１５ フレームバッファ
１１６ 画像合成装置
【図１】
2006318510.tif 000003
【図２】
2006318510.tif 000004
【図３】
2006318510.tif 000005
【図４】
2006318510.tif 000006
【図５】
2006318510.tif 000007
【図６】
2006318510.tif 000008
【図７】
2006318510.tif 000009
【図８】
2006318510.tif 000010
【図９】
2006318510.tif 000011
【図１０】
2006318510.tif 000012
【図１１】
2006318510.tif 000013
【図１２】
2006318510.tif 000014
【図１３】
2006318510.tif 000015
【図１４】
2006318510.tif 000016
【図１５】
2006318510.tif 000017
【図１６】
2006318510.tif 000018
【図１７】
2006318510.tif 000019
【図１８】
2006318510.tif 000020
【図１９】
2006318510.tif 000021
【手続補正書】
【提出日】平成18年9月19日(2006.9.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
多数の弾丸を発射するショットガンとして設定された入力装置を遊戯者が操作して、コンピュータに、三次元仮想空間内に定義された敵キャラクタと前記ショットガンから発射された散弾で射撃する状態を表示画面上で仮想的に表示させるプログラムであって、
前記コンピュータに、
ショットガンの銃口に対応する座標点を頂点とし、銃口が向いている方向を中心線として、前記散弾の拡がりに相当する有効範囲が前記頂点から遠ざかるにつれて円錐状に拡がる領域を定義する段階と、
前記敵キャラクラに向けて前記ショットガンを仮想的に発射する操作が行われたときに当該敵キャラクタが前記円錐状の領域内にあるかどうかを判定し当該円錐状の領域内にあるときは当該敵キャラクタが被弾したと判定する段階と、
前記敵キャラクタが前記円錐状の領域内にあると判定されたときの前記敵キャラクタの前記頂点からの距離を演算する段階と、
前記ショットガンから仮想的に発射された散弾が前記敵キャラクタに被弾したときに被弾した状態にある前記キャラクタを表示する段階と、
を実行させるものであり、
前記円錐状の領域は、前記頂点から近いほど、前記有効範囲の断面の広がり範囲は狭くなるが散弾の密度は高くなり、前記頂点から遠ざかるほど、前記有効範囲の断面の広がり範囲は広くなるが散弾の密度は低くなるように定義されていること、
を特徴とするコンピュータプログラム。
【請求項２】
前記円錐状の領域と前記敵キャラクタに設定されたコリジョン範囲との重なり割合を演算する段階と、
前記距離における散弾の密度と前記重なり割合とに基づき前記敵キャラクタに与えるダメージを演算する段階と、をさらに含むことを特徴とする請求項１記載のコンピュータプログラム。
【請求項３】
前記頂点からの前記距離が近いときは局所的に集中してダメージを受けた前記キャラクタの被弾状態を表示し、前記頂点からの前記距離が遠いときは弾丸がばらけて被弾した状態の前記キャラクタを表示する段階をさらに含むことを特徴とする請求項１又は２記載のコンピュータプログラム。
【請求項４】
前記頂点からの前記距離が近いときは被弾したダメージが大きい状態にある前記敵キャラクタを表示し、前記頂点からの前記距離が遠いときは被弾したダメージが小さい状態にある前記キャラクタを表示する段階をさらに含むことを特徴とする請求項１乃至３のいずれか１項に記載のコンピュータプログラム。
【請求項５】
前記敵キャラクタに設定されたコリジョン範囲と前記円錐状の領域との重なり量を検出する段階と、当該重なり量に応じたダメージ量を前記敵キャラクタに与える段階と、をさらに含むことを特徴とする請求項１乃至４のいずれか１項に記載のコンピュータプログラム。
【請求項６】
ショットガンとして設定された入力装置を遊戯者が操作して、コンピュータに、三次元仮想空間内に定義された敵キャラクタと前記ショットガンから発射された散弾で射撃する状態を表示画面上で仮想的に表示させるプログラムであって、
前記コンピュータに、
ショットガンの銃口に対応する座標点を頂点とし、銃口が向いている方向を中心線として、被弾時のダメージの有効範囲が前記頂点から遠ざかるにつれて円錐状に拡がる領域を定義する段階と、
前記敵キャラクタに向けて前記ショットガンを仮想的に発射する操作が行われたときに当該敵キャラクタが前記円錐状の領域内にあるかどうかを判定し当該円錐状の領域内にあるときは当該敵キャラクタが被弾したと判定する段階と、
前記敵キャラクタが前記円錐状の領域内にあると判定されたときの前記敵キャラクタの前記頂点からの距離および当該距離における前記ダメージの有効範囲と前記敵キャラクタに設定されたコリジョン領域との重なり割合とを演算する段階と、
前記ショットガンから仮想的に発射された散弾が前記敵キャラクタに被弾したときに被弾した状態にある前記敵キャラクタを表示する段階と、
を実行させるものであり、
前記円錐状の領域は、前記頂点から近いほど散弾に対する被弾威力が大きく、前記頂点から遠ざかるにつれて散弾に対する被弾威力が小さくなるように設定されており、前記距離における前記被弾威力を前記重なり割合に基づき被弾した敵キャラクタに与えるダメージを演算し、当該演算結果に基づき、被弾した状態にある前記キャラクタを表示すること、
を特徴とするコンピュータプログラム。
【請求項７】
前記敵キャラクタのコリジョン領域と重なる位置にある前記円錐状の領域の断面において被弾したときに与えるダメージは前記中心線近傍において大きく、前記中心線から離れるにつれて小さくなるように設定されていることを特徴とする請求項１乃至６のいずれか１項に記載のコンピュータプログラム。
【請求項８】
ショットガンとして設定された入力装置を遊戯者が操作して、コンピュータに、三次元仮想空間内に定義された敵キャラクタと前記ショットガンから発射された散弾で射撃する状態を表示画面上で仮想的に表示させるプログラムであって、
前記コンピュータに、
ショットガンの銃口に対応する座標点を頂点とし、銃口が向いている方向を中心線として、被弾時のダメージの有効範囲が前記頂点から遠ざかるにつれて円錐状に拡がる領域を定義する段階と、
前記敵キャラクタに向けて前記ショットガンを仮想的に発射する操作が行われたときに当該敵キャラクタが前記円錐状の領域内にあるかどうかを判定し当該円錐状の領域内にあるときは当該敵キャラクタが被弾したと判定する段階と、
前記敵キャラクタが前記円錐状の領域内にあると判定されたときの前記敵キャラクタの前記頂点からの距離を演算する段階と、
前記ショットガンから仮想的に発射された散弾が前記敵キャラクタに被弾したときに被弾した状態にある前記キャラクタを表示する段階と、
を実行させるものであり、
前記円錐状の領域は、前記頂点から近いほど散弾に対する被弾威力が大きく、前記頂点から遠ざかるにつれて散弾に対する被弾威力が小さくなるように、かつ、前記敵キャラクタのコリジョン領域と重なる位置にある前記円錐状の領域の断面において、被弾したときに与えるダメージは前記中心線近傍において大きく、前記中心線から離れるにつれて小さくなるように設定されており、
前記頂点からの前記距離に応じて設定された前記被弾威力と被弾部の前記中心線からの距離に応じて設定されたダメージに基づき被弾した敵キャラクタに与えるダメージを演算する段階をさらに含み、当該演算結果に基づき、被弾した状態にある前記キャラクタを表示すること、
を特徴とするコンピュータプログラム。
【請求項９】
ショットガンとして設定された入力装置を遊戯者が操作して、コンピュータに、三次元仮想空間内に定義された敵キャラクタと前記ショットガンから発射された散弾で射撃する状態を表示画面上で仮想的に表示させるプログラムであって、
前記コンピュータに、
ショットガンの銃口に対応する座標点を頂点とし、銃口が向いている方向を中心線として、被弾時のダメージの有効範囲が前記頂点から遠ざかるにつれて円錐状に拡がる領域を定義する段階と、
前記敵キャラクタに向けて前記ショットガンを仮想的に発射する操作が行われたときに当該敵キャラクタが前記円錐状の領域内にあるかどうかを判定し当該円錐状の領域内にあるときは当該敵キャラクタが被弾したと判定する段階と、
前記キャラクタに設定されたコリジョン範囲と前記円錐状の領域との重なり部分を被弾部分と判定する段階と、
前記判定段階で前記敵キャラクタが前記円錐状の領域内にあると判定されたときの前記敵キャラクタの前記頂点からの距離を演算する段階と、
前記ショットガンから仮想的に発射された散弾が前記敵キャラクタに被弾したときに被弾した状態にある前記キャラクタを表示する段階と、
を実行させるものであり、
前記円錐状の領域は、前記被弾部分に与える単位広がり当たりの被弾威力が前記頂点近くで大きく、前記頂点から遠ざかるにつれて小さくなるように設定されており、
前記距離における前記被弾部分の前記円錐状の領域に対する重なり部分と前記距離における前記被弾威力とに基づき、被弾した敵キャラクタに与えるダメージを演算する段階をさらに含み、当該演算結果に基づき被弾した状態にある前記キャラクタを表示すること、
を特徴とするコンピュータプログラム。