(57)【要約】【課題】シューティングゲームにおいて、難易度を一定に保つための敵機の動作の決定方法を提供する。【解決手段】画面上に自機と敵機を表示し、自機を操作して、一定の速さｖで移動する攻撃弾を発射してくる敵機と闘うシューティングゲーム処理方法において、敵機の移動方向と敵機の速さと攻撃弾発射間隔時間Ｔを行動パラメータとし、行動パラメータ決定手段（３０）が、目標位置ａに向けて発射された攻撃弾Ａが目標位置ａに到着した時点での、攻撃弾Ａと、目標位置ｂに向けて攻撃弾Ａの発射から攻撃弾発射間隔時間Ｔ後に発射された攻撃弾Ｂとの距離が一定の値になるように、上記３つの行動パラメータのうち予め定められた２つの行動パラメータに従って行動移動する敵機の、残りの１つの行動パラメータの値を決定する。【選択図】図１
2008000280.tif 000002
【特許請求の範囲】
【請求項１】
画面上に自機と敵機を表示し、自機を操作して、一定の速さｖで移動する攻撃弾を発射してくる敵機と闘うシューティングゲーム処理方法において、
敵機の移動方向と敵機の速さと攻撃弾発射間隔時間Ｔを行動パラメータとし、
行動パラメータ決定手段が、目標位置ａに向けて発射された攻撃弾Ａが目標位置ａに到着した時点での、攻撃弾Ａと、目標位置ｂに向けて攻撃弾Ａの発射から攻撃弾発射間隔時間Ｔ後に発射された攻撃弾Ｂとの距離が一定の値になるように、上記３つの行動パラメータのうち予め定められた２つの行動パラメータに従って行動する敵機の、残りの１つの行動パラメータの値を決定する行動パラメータ決定過程、
を有することを特徴とするシューティングゲーム処理方法。
【請求項２】
請求項１に記載のシューティングゲーム処理方法において、
目標位置ａと目標位置ｂは、敵機が攻撃弾Ａを発射する時点における自機の位置である、
ことを特徴とするシューティングゲーム処理方法。
【請求項３】
請求項２に記載のシューティングゲーム処理方法において、
上記行動パラメータ決定過程は、攻撃弾Ｂが発射された時点での自機と敵機の距離と、上記攻撃弾の速さｖに攻撃弾発射間隔時間Ｔを乗算した値とを加算し、その加算結果から攻撃弾Ａが発射された時点での自機と敵機の距離を減算することにより求めた距離が一定の値になるように、上記残りの１つの行動パラメータを決定する過程である、
ことを特徴とするシューティングゲーム処理方法。
【請求項４】
請求項１に記載のシューティングゲーム処理方法において、
上記行動パラメータ決定過程は、
攻撃弾距離計算手段が、サンプル値保存手段から読み出した上記の残りの１つの行動パラメータの各サンプル値をもとにして、目標位置ａに向けて発射された攻撃弾Ａが目標位置ａに到着した時点での、攻撃弾Ａと、目標位置ｂに向けて攻撃弾Ａの発射から攻撃弾発射間隔時間Ｔ後に発射された攻撃弾Ｂとの距離を求める攻撃弾距離計算過程と、
決定手段が、上記各サンプル毎に求まった距離のうち、上記一定値に最も近い値を与える上記残りの１つの行動パラメータを決定する決定過程と、
から成る、
ことを特徴とするシューティングゲーム処理方法。
【請求項５】
請求項４に記載のシューティングゲーム処理方法において、
目標位置ａと目標位置ｂは、敵機が攻撃弾Ａを発射する時点における自機の位置であり、
上記攻撃弾距離計算過程は、攻撃弾Ｂが発射された時点での自機と敵機の距離と、上記攻撃弾の速さｖに攻撃弾発射間隔時間Ｔを乗算した値とを加算し、その加算結果から攻撃弾Ａが発射された時点での自機と敵機の距離を減算して攻撃弾の距離を計算する過程である、
ことを特徴とするシューティングゲーム処理方法。
【請求項６】
請求項１又は４に記載のシューティングゲーム処理方法において、
目標位置ａは、敵機が攻撃弾Ａを発射する時点における自機の位置であり、
目標位置ｂは、自機が、敵機が攻撃弾Ａを発射する時点における自機の速度で、攻撃弾発射間隔時間Ｔだけ移動した位置である、
ことを特徴とするシューティングゲーム処理方法。
【請求項７】
請求項１又は４に記載のシューティングゲーム処理方法において、
目標位置ａと目標位置ｂの少なくとも一方は、敵機が攻撃弾を発射する時点における自機の位置に、あるランダムな変位を与えた位置である、
ことを特徴とするシューティングゲーム処理方法。
【請求項８】
画面上に自機と敵機を表示し、自機を操作して、一定の速さｖで移動する攻撃弾を発射してくる敵機と闘うシューティングゲーム処理装置において、
敵機の移動方向と敵機の速さと攻撃弾発射間隔時間Ｔを行動パラメータとし、
目標位置ａに向けて発射された攻撃弾Ａが目標位置ａに到着した時点での、攻撃弾Ａと、目標位置ｂに向けて攻撃弾Ａの発射から攻撃弾発射間隔時間Ｔ後に発射された攻撃弾Ｂとの距離が一定の値になるように、上記３つの行動パラメータのうち予め定められた２つの行動パラメータに従って行動する敵機の、残りの１つの行動パラメータの値を決定する行動パラメータ決定手段、
を有することを特徴とするシューティングゲーム処理装置。
【請求項９】
請求項１〜７の何れかに記載のシューティングゲーム処理方法の各過程をコンピュータに実行させるためのシューティングゲーム処理プログラム。
【請求項１０】
請求項９記載のシューティングゲーム処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面上に自機と敵機を表示し、自機を操作して、一定の速さｖで移動する攻撃弾を発射してくる敵機と闘うシューティングゲームの処理方法、その装置、そのプログラム及びその記録媒体に関する。
【背景技術】
【０００２】
シューティングゲームにおいて、ゲームの難易度を調整する方法としては、ゲーム画面中に存在している攻撃弾の数を調整するという方法があった。すなわち、ゲームの難易度を高くしたい場合には、敵機が発射する攻撃弾の数を多くし、ゲームの難易度を低くしたい場合には、敵機が発射する攻撃弾の数を少なくするという方法があった。
また、特許文献１に示すように、画面中の攻撃弾数、および、攻撃弾と自機との距離に応じて攻撃弾の速度を変えることによってゲームの難易度を調整する方法があった。
【特許文献１】特許第３４９６１４９号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、ゲーム画面中に存在している攻撃弾の数を調整するだけでは、ゲームの難易度の調整としては不完全である。例えば、敵機が発射する攻撃弾の数を多くしても、ゲームの難易度が高くならない場合がある。自機に対してダメージを与えうる攻撃弾は、自機付近にあるものに限られており、自機位置から離れた位置を攻撃目標位置として敵機が発射した攻撃弾は、自機への攻撃という観点では効果を奏しないためである。
また、ゲームの難易度を高くするために、敵機が発射する攻撃弾の数を単に多くしても、プレイヤーの目には、その攻撃の知能的な意図を読み取りづらく、単に攻撃弾をばら撒いただけのつまらない攻撃に映りやすいという問題があった。
さらに、特許文献１に示されたゲームの難易度の調整方法は、敵機の攻撃弾と自機の距離を考慮しているが、実際に自機に対して脅威となり得る、自機の周辺に存在する、複数の攻撃弾の間の関係を考慮していないという問題があった。
【課題を解決するための手段】
【０００４】
本発明によれば、画面上に自機と敵機を表示し、自機を操作して、一定の速さｖで移動する攻撃弾を発射してくる敵機と闘うシューティングゲーム処理方法において、敵機の移動方向と敵機の速さと攻撃弾発射間隔時間Ｔを行動パラメータとし、行動パラメータ決定手段が、目標位置ａに向けて発射された攻撃弾Ａが目標位置ａに到着した時点での、攻撃弾Ａと、目標位置ｂに向けて攻撃弾Ａの発射から攻撃弾発射間隔時間Ｔ後に発射された攻撃弾Ｂとの距離が一定の値になるように、上記３つの行動パラメータのうち予め定められた２つの行動パラメータに従って行動する敵機の、残りの１つの行動パラメータの値を決定する。
【発明の効果】
【０００５】
上記の方法により、実際に自機に対して脅威の対象となり得る、自機の周辺に存在する攻撃弾の間隔を一定値に保つことができる。
また、自機への攻撃において効果を発揮しない攻撃弾の数を最小限にすることが可能になり、これまで以上にゲーム性の増したシューティングゲームを実現することができる。
【発明を実施するための最良の形態】
【０００６】
［理論的背景］
＜シューティングゲームの説明＞
図５に、本発明の処理の対象となるシューティングゲームを例示する。画面上には、自機１と自機１の攻撃弾３、敵機２と敵機２の攻撃弾４が表示される。攻撃弾３、敵機２、攻撃弾４は、複数存在していても良い。自機１、敵機２、攻撃弾３、攻撃弾４は、Ｘ軸とＹ軸で構成される２次元の平面上に位置するものとする。
ユーザは、自機１を操作して、敵機２と闘う。ユーザは、一回の操作で、Ｗ種類の移動速度（方向と速さ）で、行動単位時間Ｔ’だけ自機を移動させることができる。自機１が取り得るＷ種類の移動速度（Ｖｓｘ（ｗ），Ｖｓｙ（ｗ））は予め決められており、それぞれの移動速度（Ｖｓｘ（ｗ），Ｖｓｙ（ｗ））には、移動速度番号ｗ（ｗ＝１，…，Ｗ）が付けられているものとする。以下では、移動速度番号ｗを選択する行動のことを行動（ｗ）という。また、ユーザは、Ｗ種類の速度による移動と同時に、敵機２を攻撃するための攻撃弾３を発射する操作をすることができる。
【０００７】
敵機２は、移動方向（ｃｏｓθ，ｓｉｎθ）、速さＶで移動することができる。また、敵機２は、攻撃弾発射間隔時間Ｔごとに、ある攻撃目標位置に向けて攻撃弾４を発射することができる。敵機２が発射した攻撃弾４は、攻撃目標位置に向けて速さｖで移動するものとする。
自機１が、敵機２及び敵機２が発射する攻撃弾４と衝突した場合には、自機１は破壊され、そこでゲームオーバーとなる。逆に、自機１の攻撃弾３が敵機２に衝突した場合には、敵機２は破壊される。自機１の攻撃弾３によりすべての敵機２を破壊した場合には、ユーザは、そのゲームに勝利することになる。
【０００８】
以下では、自機の位置を（Ｘｓ，Ｙｓ）、敵機の位置を（Ｘｅ，Ｙｅ）とする。
このようなシューティングゲームにおいて、敵機の攻撃弾が実際に自機に与える脅威の大きさは、自機の位置の周辺に存在する攻撃弾の間隔によって直接的に左右される。すなわち、自機の位置の周辺に存在する攻撃弾の間隔が短い場合には、敵機の攻撃弾が自機に実際に与える脅威は大きくなる。上記間隔が短い場合には、自機が攻撃弾を回避するのが難しくなるためである。逆に、自機の位置の周辺に存在する攻撃弾の間隔が長い場合には、敵機の攻撃弾が自機に実際に与える脅威は小さくなる。上記間隔が長い場合には、自機が攻撃弾を回避するのが簡単になるためである。
【０００９】
本発明では、自機の位置の周辺に存在する攻撃弾の間隔を、最初に発射された攻撃弾Ａが攻撃目標位置ａに到達した時点での、当該最初に発射された攻撃弾Ａと、当該攻撃弾Ａの発射から攻撃弾発射間隔時間Ｔ後に発射された攻撃弾Ｂとの距離ｓと定義する。
例えば、図６に示すように、敵機が上記攻撃弾Ａを発射した時刻をｔ＝０とし、敵機が上記攻撃弾Ｂを発射した時刻をｔ＝Ｔとし、攻撃弾Ａの攻撃目標位置をａとし、攻撃弾Ｂの攻撃目標位置をｂとし、攻撃目標位置ａと攻撃目標位置ｂが、ともに時刻ｔ＝０における自機の現在位置とすると、上記ｔ＝Ｔにおける攻撃弾Ａと攻撃弾Ｂの距離ｓは、
ｓ＝ｒｂ−（（ｒａ／ｖ）−Ｔ）ｖ
ｓ＝ｒｂ−ｒａ＋ｖＴ              …（１）
と表現することができる。ここで、ｒａは、時刻ｔ＝０における敵機と自機の距離であり、ｒｂは、時刻ｔ＝Ｔにおける敵機と自機の距離であり、ｖは攻撃弾Ａと攻撃弾Ｂの速さであり、Ｔは攻撃弾発射間隔時間である。
【００１０】
一般に、攻撃目標位置から遠ざかるように移動する敵機が一定の攻撃弾発射間隔時間Ｔ毎に発射した攻撃弾と、攻撃目標位置に近づくように移動する敵機が一定の攻撃弾発射間隔時間Ｔ毎に発射した攻撃弾とでは、攻撃弾目標位置近辺に攻撃弾が到達した際の攻撃弾間の距離が大きく異なる。すなわち、攻撃目標位置から遠ざかるように移動する敵機が一定の攻撃弾発射間隔時間Ｔ毎に発射した攻撃弾の間の距離は、攻撃目標位置に近づくように移動する敵機が一定の攻撃弾発射間隔時間Ｔ毎に発射した攻撃弾の間の距離よりも、長くなる。
【００１１】
そこで、本発明の一形態では、例えば上記のように表現することができる距離ｓが、所定の値ｓｃになるようにする。具体的には、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）と攻撃弾発射間隔時間Ｔが決まっている場合には、これらの値を基にして、上記距離ｓが所定の値ｓｃになるように、敵機の速さＶを決定する。また、敵機の速さＶと攻撃弾発射間隔時間Ｔが決まっている場合には、これらの値を基にして、上記距離ｓが所定の値ｓｃになるように、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）を決定する。また、敵機の速さＶと移動方向（ｃｏｓθ，ｓｉｎθ）が決まっている場合には、これらの値を基にして、上記距離ｓが所定の値ｓｃになるように、攻撃弾発射間隔時間Ｔを決定する。
【００１２】
すなわち、本発明では、敵機の速さＶと敵機の移動方向（ｃｏｓθ，ｓｉｎθ）と攻撃弾発射間隔時間Ｔを、敵機の行動パラメータと呼ぶと、敵機が、上記行動パラメータのうち予め定められた２つの行動パラメータに従って行動する場合の上記距離ｓが、所定の値ｓｃになるように、残りの１つの行動パラメータを決定する。
【００１３】
所定の値ｓｃとしては、例えば、ｓｃ＝０とすることができる。また、自機の形状に内接する円の直径が３０ドットの場合には、ｓｃ＝３０〜６０として設定することができる。
なお、ｒｂとｒａは、
【数１】
2008000280.tif 000003
であるため、上記式（１）は、
【数２】
2008000280.tif 000004
と表現することができる。
敵機の移動方向（ｃｏｓθ，ｓｉｎθ）と攻撃弾発射間隔時間Ｔが決まっており、これらの値を基にして、上記距離ｓが所定の値ｓｃになるように、敵機の速さＶを決定する場合を例に挙げて、上記式（２）で求められるｓを一定の値ｓｃにする敵機の速さＶを求める方法を以下に説明する。
【００１４】
例えば、敵機の速さとして可能な値が０からＶ０の範囲であった場合、０からＶ０まで、少しずつ変化させたサンプル値Ｖｉ（ｉ＝１〜Ｉ）を多数用意する。これらのサンプル値Ｖｉを、上記式（２）の右辺に代入する。代入した結果得られるサンプルＶｉ毎に求まった距離ｓｉの中で、最もｓｃに近い値を与えるＶｉを解として採用する。この手法の利点は、敵機と自機の位置関係によっては、目標とする攻撃弾の間隔ｓｃを実現できない場合もあるが、そのような場合であっても最も近いｓの値を実現することができる点にある。
【００１５】
また、いわゆるニュートン法によって、上記式（２）の近似解を求めてもよい（例えば、矢部博、八巻直一共著『非線形計画法  応用数学ライブラリ』朝倉書店、参照。）。ニュートン法は周知技術であるため、説明を省略する。
さらに、上記式（２）を、敵機の速さＶについて解析的に解き、その解析的に解いた式に、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）と攻撃弾発射間隔時間Ｔと一定値ｓｃを代入することにより、敵機の速さＶを求めても良い。
【００１６】
敵機の速さＶと攻撃弾発射間隔時間Ｔが決まっており、これらの値を基にして、上記距離ｓが所定の値ｓｃになるように、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）を決定する場合、及び、敵機の速さＶと移動方向（ｃｏｓθ，ｓｉｎθ）が決まっており、これらの値を基にして、上記距離ｓが所定の値ｓｃになるように、攻撃弾発射間隔時間Ｔを決定する場合にも、上述した方法を利用することができる。
以下、本発明を実施するための実施例１〜実施例４について説明する。
【実施例１】
【００１７】
＜装置構成＞
図１を参照して、本発明の第１実施形態によるシューティングゲーム処理方法を実施するためのシューティングゲーム処理装置１００１を説明する。図１は、シューティングゲーム処理装置１００１の機能構成例を示す図である。
シューティングゲーム処理装置１００１は、例えば、行動パラメータ決定部１０、位置取得部９１、攻撃弾距離設定部９２、攻撃弾発射間隔時間設定部９３、敵機移動方向決定部９５、敵機速さ決定部９６から構成される。
【００１８】
行動パラメータ決定部１０は、例えば、攻撃弾距離計算部１１、サンプル値保存部１２、記憶部１３、決定部１４から構成される。
攻撃弾距離計算部１１は、例えば、距離計算部１１０、加算部１１１、乗算部１１２、減算部１１３から構成される。
決定部１４は、例えば、記憶部１４０、減算部１４１、二乗部１４２、最小値選択部１４３から構成される。
【００１９】
＜敵機の速さの求め方＞
敵機移動方向決定部９５が、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）を予め定めて、記憶部１３に格納する。本発明は、例えば、予め定められた敵機の移動方向（ｃｏｓθ，ｓｉｎθ）を基にして、敵機の速さを決定するものなので、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）の定め方は問わない。
攻撃弾発射間隔時間設定部９３は、攻撃弾発射間隔時間Ｔを予め設定して、記憶部１３に格納する。例えば、攻撃弾発射間隔時間Ｔを、０．６秒〜２秒に設定することができる。攻撃弾発射間隔時間Ｔは、ユーザが求める長さに応じて任意に設定することができる。
【００２０】
攻撃弾距離設定部９２は、ユーザが求める攻撃弾の距離の一定値ｓｃを予め定めて、記憶部１３に格納する。例えば、ｓｃ＝０として設定することができる。また、ゲームのプレイヤーが、レバー操作等の入力により、ｓｃを任意の値に設定できるようにしても良い。
位置取得部９１が現時刻（ｔ＝０）における自機の位置（Ｘｓ，Ｙｓ）と敵機の位置（Ｘｅ，Ｙｅ）を取得し、記憶部１３に格納する。
また、サンプル値保存部１２には、敵機の速さのサンプル値Ｖ１，…，Ｖｉ，…，ＶＩが格納されているものとする。サンプル値Ｖ１，…，Ｖｉ，…，ＶＩは、敵機の速さの候補値である。
【００２１】
攻撃弾距離計算部１１は、サンプル値保存部１２から読み出した敵機の速さの各サンプル値Ｖｉごとに上記式（２）に基づいて距離ｓｉを計算する。具体的には、攻撃弾距離計算部１１の距離計算部１１０が、サンプル値保存部１２から読み出した敵機の速さのサンプル値Ｖｉと、記憶部１３から読み出したＸｅ，Ｙｅ，ｃｏｓθ，ｓｉｎθ，ｖ，Ｔを用いて、
【数３】
2008000280.tif 000005
をそれぞれ計算する。また、攻撃弾距離計算部１１の乗算部１１２は、記憶部１３から読み出したｖ，Ｔを用いてｖＴを計算する。攻撃弾距離計算部１１の加算部１１１は、距離計算部１１０が求めたｒｂに、乗算部１１２が求めたｖｔを加算する。攻撃弾距離計算部１１の減算部１１３は、加算部１１１が計算した加算結果から、距離計算部１１０が求めたｒａを減算して、距離ｓｉを求める。このようにして、各サンプル値Ｖｉ毎に求まった距離ｓｉは、決定部１４の記憶部１４０に格納される。
【００２２】
決定部１４の減算部１４１は、距離ｓｉからｓｃを減算して、その計算結果を決定部１４の二乗部１４２に出力する。二乗部１４２は、ｓｉ−ｓｃの二乗を計算して、その計算結果（ｓｉ−ｓｃ）２を記憶部１４０に格納する。決定部１４の最小値選択部１４３は、記憶部１４０から読み出した（ｓｉ−ｓｃ）２の内から最小となるものを決定し、その最小値を与えるＶｉを敵機の速さＶとして出力する。
上記最小値を与えるＶｉは、所定の敵機の移動方向θと所定の攻撃弾発射間隔時間Ｔにおいて、最も距離ｓｃに近い距離ｓｉを与えるものである。
シューティングゲーム処理装置１００１は、このようにして、敵機の速さＶを決定する。
【００２３】
＜敵機の移動方向の求め方＞
敵機の移動方向（ｃｏｓθ，ｓｉｎθ）ではなく、敵機の速さＶが敵機速さ決定部９６により予め定められて、記憶部１３に格納されているものとする。
また、サンプル値保存部１２には、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）を表わす角度の各サンプル値θ１，…，θｊ，…，θＪが格納されているものとする。サンプル値θ１，…，θｊ，…，θＪは、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）を表わす角度の候補値である。
【００２４】
また、敵機の速さの求め方で説明した方法と同様の方法で、攻撃弾発射間隔時間Ｔ、攻撃弾の距離の一定値ｓｃ、自機の位置（Ｘｓ，Ｙｓ）、敵機の位置（Ｘｅ，Ｙｅ）が、記憶部１３に格納されているものとする。
攻撃弾距離計算部１１は、サンプル値保存部１２から読み出した敵機の移動方向の角度の各サンプル値θｊごとに上記式（２）に基づいて距離ｓｊを計算する。攻撃弾距離計算部１１の計算過程は、上述した敵機の速さのサンプル値Ｖｉから距離ｓｉを求めた計算過程と同じである。各サンプル値θｊ毎に求まったｓｊは、決定部１４の記憶部１４０に格納される。
決定部１４は、敵機の速さの求め方で説明した方法と同様の方法で、各サンプル値θｊ毎に求まったｓｊの中で、最もｓｃに近い値を与えるθｊを求める。
【００２５】
＜攻撃弾発射間隔時間Ｔの求め方＞
敵機移動方向決定部９５により予め定められた敵機の移動方向（ｃｏｓθ，ｓｉｎθ）と、敵機速さ決定部９６により予め定められた敵機の速さＶが、記憶部１３に格納されているものとする。
記憶部１３には、攻撃弾発射間隔時間Ｔが格納されていないものとする。
また、サンプル値保存部１２には、攻撃弾発射間隔時間Ｔの各サンプル値Ｔ１，…，Ｔｋ，…，ＴＫが格納されているものとする。サンプル値Ｔ１，…，Ｔｋ，…，ＴＫは、攻撃弾発射間隔時間Ｔの候補値である。
【００２６】
また、敵機の速さの求め方で説明した方法と同様の方法で、攻撃弾発射間隔時間Ｔ、攻撃弾の距離の一定値ｓｃ、自機の位置（Ｘｓ，Ｙｓ）、敵機の位置（Ｘｅ，Ｙｅ）が、記憶部１３に格納されているものとする。
攻撃弾距離計算部１１は、敵機の速さの求め方で説明した方法と同様の方法で、サンプル値保存部１２から読み出した攻撃弾発射間隔時間Ｔの各サンプル値Ｔ１，…，Ｔｋ，…，ＴＫごとに上記式（２）に基づいて距離ｓｋを計算する。計算されたｓｋは、決定部１４の記憶部１４０に格納される。
【００２７】
決定部１４は、敵機の速さの求め方で説明した説明した方法と同様の方法で、各サンプル値Ｔｋ毎に求まったｓｋの中で、最もｓｃに近い値を与えるＴｋを求める。
このようにして、行動パラメータ決定部１０は、敵機の速さＶ、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）、攻撃弾発射間隔時間Ｔのうち何れか２つが決まっている状態において、攻撃弾の距離ｓが一定値ｓｃになるように、残りの１つのパラメータの値を決定する。
【実施例２】
【００２８】
実施例２で説明するシューティングゲーム処理装置１００２は、攻撃弾距離計算部１１ではなく、攻撃弾距離計算部２１を備える点で、実施例１で説明したシューティングゲーム処理装置１００１と異なる。
攻撃弾距離計算部２１は、例えば、角度計算部２１０、第二座標変換部２１１、第一座標変換部２１２、間隔計算部２１３から構成される。
実施例２においては、図６に点線で示すように、ｔ＝０における自機の位置（Ｘｓ，Ｙｓ）を原点とし、該自機の位置（Ｘｓ，Ｙｓ）とｔ＝０における敵機の位置（Ｘｅ，Ｙｅ）を結ぶ直線がＹ軸となるように座標を取る。そうすると、ＸｓとＹｓとＸｅは０になるため、上記式（２）は、
【数４】
2008000280.tif 000006
と簡潔に表現することができる。
【００２９】
上記式（４）におけるｃｏｓ’θ，ｓｉｎ’θは、元の座標系と新しい座標系の角度の差をθａとすると、
【数５】
2008000280.tif 000007
であり、Ｙｅ’は、
【数６】
2008000280.tif 000008
である。ここで、θａは、
【数７】
2008000280.tif 000009
と計算することができる。
【００３０】
図２に示す攻撃弾距離計算部２１が、攻撃弾距離計算部１１に代わって、上記式（４）〜式（７）を基にして、各サンプル値毎の距離ｓを計算する。例えば、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）と、攻撃弾発射間隔時間Ｔが予め設定されている場合において、距離ｓが一定値ｓｃになるように、敵機の速さＶを決定するときには、攻撃弾距離計算部２１の角度計算部２１０が、記憶部１３から読み出した自機の位置（Ｘｓ，Ｙｓ）と敵機の位置（Ｘｅ，Ｙｅ）から、上記式（７）に基づいて、θａを計算する。また、第一座標変換部２１２が、記憶部１３から読み出した自機の位置（Ｘｓ，Ｙｓ）と敵機の位置（Ｘｅ，Ｙｅ）から、上記式（６）に基づいて、Ｙｅ’を計算する。また、第二座標変換部２１１が、角度計算部２１０が計算したθａと上記式（５）に基づいて、座標変換した後の敵機の移動方向（ｃｏｓ’θ，ｓｉｎ’θ）を計算する。間隔計算部２１３が、座標変換した後の敵機の移動方向（ｃｏｓ’θ，ｓｉｎ’θ）と、Ｙｅ’と、サンプル値保存部１２から読み出したＶｉと、記憶部１３から読み出したＴとｖから、上記式（４）に基づいて距離ｓｉを求める。このようにして、各サンプルＶｉ毎に求まったｓｉは、決定部１４の記憶部１４０に格納される。
【００３１】
他の処理については、実施例１のシューティングゲーム処理装置１００１と同じであるため説明を省略する。
なお、上記式（４）は、例えば、敵機の速さＶについて、
【数８】
2008000280.tif 000010
のように解析的に解くことができる。
【００３２】
このため、図２で示す行動パラメータ決定部２０が、第一座標変換部２１２が求めたＹｅ’と、第二座標変換部２１１が求めたｃｏｓ’θ，ｓｉｎ’θと、記億部１３から読み出したｖ，Ｔ，ｓｃを用いて、上記式（７’）に基づいて、敵機の速さＶを求めても良い。
なお、敵機の速さＶと、攻撃弾発射間隔時間Ｔが予め設定されている場合において、距離ｓが一定値ｓｃになるように、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）を決定するとき、及び、敵機の速さＶと、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）が予め設定されている場合において、距離ｓが一定値ｓｃになるように、攻撃弾発射間隔時間Ｔを決定するときにおいても、上記と同様にして距離ｓを求める。
【実施例３】
【００３３】
実施例３で説明するシューティングゲーム処理装置１００３は、攻撃弾距離計算部１１の代わりに攻撃弾距離計算部３１を備える点、自機移動速度取得部９７を備える点で、実施例１で説明したシューティングゲーム処理装置１００１と異なる。
攻撃弾距離計算部３１は、例えば、距離計算部３１０、位置計算部３１１、間隔計算部３１２から構成される。
上記の実施例１と実施例２は、攻撃目標位置ａと攻撃目標位置ｂが共に、ｔ＝０における自機の位置であった。しかし、攻撃目標位置ａと攻撃目標位置ｂが異なる場合であっても、距離ｓが一定値ｓｃになるように、敵機の行動パラメータを設定することができる。
【００３４】
例えば、攻撃弾目標位置ａをｔ＝０における自機の位置とし、攻撃目標位置ｂを自機が現在時刻ｔ＝０における自機の速度（Ｖｓｘ，Ｙｓｙ）を攻撃弾発射間隔時間Ｔだけ維持すると仮定したときの時刻ｔ＝Ｔにおける自機の位置とする。このとき、ｔ＝Ｔにおける自機の位置は（Ｘｓ＋ＶｓｘＴ，Ｙｓ＋ＶｓｙＴ）であり、ｔ＝Ｔにおける敵機の位置は（Ｘｅ＋ＶＴｃｏｓθ，Ｙｅ＋ＶＴｓｉｎθ）であるため、時刻ｔ＝Ｔにおける自機と敵機の距離ｒｂは、
【数９】
2008000280.tif 000011
と表現することができる。また、時刻ｔ＝０における敵機と自機の位置の距離ｒａは、
【数１０】
2008000280.tif 000012
である。
【００３５】
このとき、時刻ｔ＝０で発射された攻撃弾Ａが時刻ｔ＝０における自機の位置（Ｘｓ，Ｙｓ）に到着したときの攻撃弾Ｂの位置（Ｘｂ，Ｙｂ）は、
【数１１】
2008000280.tif 000013
である。上記式（９）で示されたＸｂとＹｂを用いると、距離ｓは、
【数１２】
2008000280.tif 000014
と表現することができる。
【００３６】
図３に示した攻撃弾距離計算部３１は、上記式（８）〜式（１０）を用いて、各サンプル毎の距離ｓを計算する。例えば、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）と攻撃弾発射弾間隔時間Ｔを所与として、攻撃弾の間の距離ｓが一定値ｓｃになるように、敵機の速さＶを決める場合には、攻撃弾距離計算部３１の距離計算部３１０が、記憶部１３から読み出したＸｓ，Ｙｓ，Ｘｅ，Ｙｅ，θ，Ｔ，Ｖｓｘ，Ｖｓｙと、サンプル値保存部１２から読み出したＶｉとを用いて、上記式（８）と式（８’）に基づいて、ｒａとｒｂを計算する。なお、ＶｓｘとＶｓｙは、自機移動速度取得部９７により時刻ｔ＝０における自機の現在速度が予め取得されて、記憶部１３に格納されているものである。位置計算部３１１は、上記のようにして計算されたｒａとｒｂを用いて、上記式（９）に基づいて、時刻ｔ＝０で発射された攻撃弾Ａが攻撃目標位置ａに到着したときの攻撃弾Ｂの位置（Ｘｂ，Ｙｂ）を計算する。間隔計算部３１２は、上記のようにして計算されたＸｂとＹｂを用いて、上記式（１０）より、距離ｓを計算する。サンプル値Ｖｉ毎に求まった距離ｓは、決定部１４の記憶部１４０に保存される。
他の処理は、実施例１で説明したシューティングゲーム処理装置１００１と同じであるため、説明を省略する。
【実施例４】
【００３７】
実施例４で説明するシューティングゲーム処理装置１００４は、攻撃弾距離計算部１１の代わりに、攻撃弾距離計算部４１を備える点、自機移動速度取得部９７を備える点で、実施例１で説明したシューティングゲーム処理装置１００１と異なる。
攻撃弾距離計算部４１は、例えば、距離計算部４１０、位置計算部４１１、間隔計算部４１２、乱数発生部４１３から構成される。
攻撃弾Ａの攻撃目標位置ａと、攻撃弾Ｂの攻撃目標位置ｂを、自機の現在位置（Ｘｓ，Ｙｓ）に、あるランダムな変位を与えた位置に設定することができる。
【００３８】
攻撃弾距離計算部４１の乱数発生部４１３が、攻撃目標位置ａと攻撃目標位置ｂについてのＸ軸方向の変位量とＹ軸方向の変位量のランダムな値（ｒｎｄａｘ，ｒｎｄａｙ），（ｒｎｄｂｘ，ｒｎｄｂｙ）を生成する。このとき、攻撃目標位置ａは（Ｘｓ＋ｒｎｄａｘ，Ｙｓ＋ｒｎｄａｙ）となる。また、自機が現在時刻ｔ＝０における自機の速度（Ｖｓｘ，Ｙｓｙ）を攻撃弾発射間隔時間Ｔだけ維持すると仮定したとすると、攻撃目標位置ｂは（Ｘｓ＋ＶｓｘＴ＋ｒｎｄｂｘ，Ｙｓ＋ＶｓｙＴ＋ｒｎｄｂｙ）となる。
【００３９】
具体的には、自機の形状に内接する円の直径をＭとすると、Ｘ軸方向の変位量，Ｙ軸方向の変位量の幅を、−３Ｍ〜３Ｍ程度にすると良い。例えば、自機の形状の大きさが３０ドットの場合には、Ｘ軸方向の変位量，Ｙ軸方向の変位量としては、それぞれ、−５０〜５０ドットの値をランダムに取ることができるようにすると良い。
【００４０】
このように、自機の位置にあるランダムな変位を与えた位置を攻撃目標位置とした場合には、時刻ｔ＝０における敵機の位置と攻撃目標位置ａの距離ｒａとし、時刻ｔ＝Ｔにおける敵機の位置と攻撃目標位置ｂの距離をｒｂとすると、
【数１３】
2008000280.tif 000015
と表現することができる。このとき、時刻ｔ＝０で発射された攻撃弾Ａが時刻ｔ＝０における自機の位置（Ｘｓ，Ｙｓ）に到着したときの攻撃弾Ｂの位置（Ｘｂ，Ｙｂ）は、
【数１４】
2008000280.tif 000016
である。上記式（１２）で示されたＸｂとＹｂを用いると、距離ｓは、
【数１５】
2008000280.tif 000017
と表現することができる。
【００４１】
図４に示した攻撃弾距離計算部４１は、上記式（１１）〜式（１３）を用いて、各サンプル毎の距離ｓを計算する。例えば、敵機の移動方向（ｃｏｓθ，ｓｉｎθ）と攻撃弾発射弾間隔時間Ｔを所与として、攻撃弾の間の距離ｓが一定値ｓｃになるように、敵機の速さＶを決める場合には、攻撃弾距離計算部４１の距離計算部４１０が、記憶部１３から読み出したＸｓ，Ｙｓ，Ｘｅ，Ｙｅ，θ，Ｔ，Ｖｓｘ，Ｖｓｙと、サンプル値保存部１２から読み出したＶｉと、乱数発生部４１３が発生したｒｎｄａｘ，ｒｎｄａｙ，ｒｎｄｂｘ，ｒｎｄｂｙを用いて、上記式（１１）に基づいて、ｒａとｒｂを計算する。なお、ＶｓｘとＶｓｙは、自機移動速度取得部９７により時刻ｔ＝０における自機の現在速度が予め取得されて、記憶部１３に格納されているものである。位置計算部４１１は、上記のようにして計算されたｒａとｒｂを用いて、上記式（１２）に基づいて、時刻ｔ＝０で発射された攻撃弾Ａが攻撃目標位置ａに到着したときの攻撃弾Ｂの位置（Ｘｂ，Ｙｂ）を計算する。間隔計算部は、上記のようにして計算されたＸｂとＹｂを用いて、上記式（１３）より、距離ｓを計算する。サンプル値Ｖｉ毎に求まった距離ｓは、決定部１４の記憶部１４０に保存される。
【００４２】
他の処理は、実施例１で説明したシューティングゲーム処理装置１００１と同じであるため、説明を省略する。
なお、上記の説明では、攻撃目標位置ａと攻撃目標位置ｂについてそれぞれランダムな値（ｒｎｄａｘ，ｒｎｄａｙ），（ｒｎｄｂｘ，ｒｎｄｂｙ）を生成したが、攻撃目標位置ａと攻撃目標位置ｂの何れか一方についてのみランダムな値を取るようにして他方の攻撃目標位置については、自機の現在位置を攻撃目標位置にしても良い。また、Ｘ軸方向の変位量とＹ軸方向の変位量の組（ｒｎｄｘ，ｒｎｄｙ）を１つだけ生成し、この（ｒｎｄｘ，ｒｎｄｙ）を、攻撃目標位置ａについてのランダムな値（ｒｎｄａｘ，ｒｎｄａｙ）と、攻撃目標位置ｂについてのランダムな値（ｒｎｄｂｘ，ｒｎｄｂｙ）にしても良い。
【００４３】
なお、攻撃目標位置ｂを原点とし、攻撃目標位置ｂと時刻ｔ＝Ｔにおける敵機の位置（Ｘｅ＋ＶＴｃｏｓθ，Ｙｅ＋ＶＴｓｉｎθ）を結ぶ直線がＹ軸になるように座標を取り直して上記式（１１）〜（１３）を簡略化し、これらの簡略化した式を用いて、距離ｓを計算するようにしても良い。
【００４４】
その他の実施例・変形例について
また、上記シューティングゲーム処理装置の処理機能をコンピュータによって実現することができる。この場合、シューティングゲーム処理装置の処理機能の内容はプログラムによって記述される。そして、このプログラムを、図１６に示すようなコンピュータで実行することにより、上記シューティングゲーム処理装置の処理機能がコンピュータ上で実現される。
【００４５】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００４６】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００４７】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００４８】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、シューティングゲーム処理装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
以上の各実施形態の他、本発明であるシューティングゲーム処理方法、その装置等は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【図面の簡単な説明】
【００４９】
【図１】シューティングゲーム処理装置１００１の機能構成を例示した図。
【図２】シューティングゲーム処理装置１００２の機能構成を例示した図。
【図３】シューティングゲーム処理装置１００３の機能構成を例示した図。
【図４】シューティングゲーム処理装置１００４の機能構成を例示した図。
【図５】シューティングゲームの模式図。
【図６】攻撃目標位置ａと攻撃目標位置ｂがｔ＝０における自機の位置であるときの敵機と自機の位置関係を示す図。
【図７】シューティングゲーム処理装置をコンピュータにより実行するときの機能構成を例示した図。
【符号の説明】
【００５０】
１：自機，２：敵機，３：攻撃弾，４：攻撃弾，４Ａ：攻撃弾Ａ，４Ｂ：攻撃弾Ｂ，５：ＣＰＵ，６：ＲＡＭ，７：出力部，８：補助記憶部，９：入力部，９’：バス，１０：行動パラメータ決定部，１１：攻撃弾距離計算部，１２：サンプル値保存部，１３：記憶部，１４：決定部，２０：行動パラメータ決定部，２１：攻撃弾距離計算部，３１：攻撃弾距離計算部，４１：攻撃弾距離計算部，９１：位置取得部，９２：攻撃弾距離設定部，９３：攻撃弾発射間隔時間設定部，９５：敵機移動方向決定部，９６：決定部，９７：自機移動速度取得部，１１０：距離計算部，１１１：加算部，１１２：乗算部，１１３：減算部，１４０：記憶部，１４１：減算部，１４２：二乗部，１４３：最小値選択部，１０：角度計算部，２１１：第二座標変換部，２１２：第一座標変換部，２１３：間隔計算部，３１０：距離計算部，３１１：位置計算部，３１２：間隔計算部，４１０：距離計算部，４１１：位置計算部，４１２：間隔計算部，４１３：乱数発生部，１００１：シューティングゲーム処理装置，１００２：シューティングゲーム処理装置，１００３：シューティングゲーム処理装置，１００４：シューティングゲーム処理装置
【図１】
2008000280.tif 000018
【図２】
2008000280.tif 000019
【図３】
2008000280.tif 000020
【図４】
2008000280.tif 000021
【図５】
2008000280.tif 000022
【図６】
2008000280.tif 000023
【図７】
2008000280.tif 000024