JP4976771B2 - シューティングゲームのデモンストレーション用自機行動制御方法、その装置、そのプログラムおよびその記録媒体 - Google Patents
シューティングゲームのデモンストレーション用自機行動制御方法、その装置、そのプログラムおよびその記録媒体 Download PDFInfo
- Publication number
- JP4976771B2 JP4976771B2 JP2006202019A JP2006202019A JP4976771B2 JP 4976771 B2 JP4976771 B2 JP 4976771B2 JP 2006202019 A JP2006202019 A JP 2006202019A JP 2006202019 A JP2006202019 A JP 2006202019A JP 4976771 B2 JP4976771 B2 JP 4976771B2
- Authority
- JP
- Japan
- Prior art keywords
- aircraft
- time
- cell
- total number
- square
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Description
一般的なシューティングゲームでは、画面上に一つの自機と一つあるいは複数の敵機とが表示される。ここで画面とは、シューティングゲームが表示される画面のことであり、いわゆる全画面表示形式であれば、ディスプレイなどの表示装置の表示部の全面に相当し、あるいは、表示部の一部分に独立した表示領域を用意して、その表示領域に画像やテキストを表示する機能が与えられたいわゆる窓形式であれば、この窓形式の表示領域が画面に相当する。
プレイヤーが適当な入力手段〔例えばキーボードのキー、多方向押圧可能なスイッチ、操縦桿などである。〕を操作すると、その操作が画面上の自機の数種類の行動に変換され、自機がその操作に応じた行動をする。また、プレイヤーが適当な入力手段〔例えばキーボードのキー、多方向押圧可能なスイッチ、操縦桿に備えられたボタンなどである。〕を操作すると、その操作が画面上の自機の攻撃行動に変換され、自機が攻撃弾を発射し、敵機や種々のアイテムに対してダメージを与えることができるようになっている。
コンピュータ操作型の場合、敵機の行動制御および敵機の自機に対する攻撃弾の発射制御などは、コンピュータの制御プログラムに従って処理されている。
松浦健一郎著、「シューティングゲームアルゴリズムマニアックス」初版、ソフトバンクパブリッシング株式会社、2004年6月
(参考文献)Jonathan Schaeffer,H.Jaap van den Herik,“Games,computers,and artificial intelligence”,Artificial Intelligence,2002,Vol.134,p1-7
このように、現時点t0で自機の到達目標となる升目sgを将来における敵機や攻撃弾との衝突可能性を考慮した経路総数によって定め、この升目sgを起点として、将来における敵機や攻撃弾との衝突可能性を考慮した上で、時点t0+ΔTでの、現時点t0で自機が存在する升目s0の逆経路総数および升目s0の周囲の升目のうち1処理単位時間ΔTで自機が升目s0に移動可能な升目s0′の各逆経路総数を求め、これらのうち最大の逆経路総数を有する升目に対して行動することを決定する。
これらを互いに排他的に行うのではなく、逆経路総数を求める各時点tで、自機が升目sに在る場合に敵機が自機の攻撃ライン上にあるときの升目sの逆経路総数Cb(s,t)を、その他の升目の逆経路総数に比して相対的に増大させ、さらに、この相対的に増大させた逆経路総数Cb(s,t)に、升目sの画面中央からの距離rを単調減少関数に入力して得られた結果、または、升目sの画面中央からの距離rを単調減少関数に入力して得られた結果を整数値化したもの、を乗じるとしてもよい。
本発明では、画面を格子状に分割し、現時点t0(=0)で自機が存在する格子の升目s0から現時点より後の時点nで格子の或る升目sに到達する経路の総数C(s,n)を各升目ごとにそれぞれ求め、このC(s,n)が最大の升目を自機の移動先の目標とする。そして、現時点t0で、この目標へ向かうような最適な行動を選択する。
また、敵機から発射された攻撃弾の行動には、次のような条件が課されているとする。即ち、各攻撃弾は、敵機から発射される際に決定された速度を発射後において維持する。
さらに、各敵機は、現時点での速度を維持するものとする。ただし、実際のゲームプレイやデモンストレーションでは敵機速度は時間とともに変化するとしてよく、デモンストレーションにおける自機の行動決定では敵機速度は変化しないと仮定するという意味である。敵機速度が一定のシューティングゲームにのみ本発明を適用するというわけではない。
処理単位時間ΔTは、升目の大きさに影響を与える要因の一つであり、升目は自機位置を離散化したものと評価できるから、ΔTをむやみに大きな値とするのは好ましくない。ΔTを大きくする程、処理単位時間ごとの自機位置が粗く離散化されてしまう。好ましいΔTは、演算処理装置の処理能力、プログラムの使用言語、実際のプログラムの記述の仕方などにもよるので一概には云えないが、升目の短辺が、攻撃弾あるいは敵機の形状の指標となる長さ〔後述する。〕と、自機の形状の指標となる長さ〔後述する。〕との和である基準長以下となる、好ましくは基準長の半分以下となる、より好ましくは基準長の3分の1以下となるようにΔTを設定するのがよい。また、升目形状と後述する敵機/攻撃弾の看做し位置座標との関係から、基準長の整数分の1以下とするのがよい。
デモンストレーションで自機の行動を決定するに当たり、その時点では既に、画面上に1つ以上の敵機〔以下、「既存敵機」とも云う。〕や敵機から発射された1つ以上の攻撃弾〔以下、「既存攻撃弾」とも云う。〕が表示されている場合がある。そこで、現時点より後の各時点tで、既存敵機と既存攻撃弾の少なくとも何れかが存在すると予測される各位置を含む升目および当該各位置から所定の距離内に位置する升目sにおける経路の総数を、その時点において0にリセットするのである。これはC(s,t)=0とするに等しい。このことは、デモンストレーションにおいて自機をより長く、敵機や敵機からの攻撃による破壊から免れせしめることに寄与するという考慮の表れである。
ここで「既存敵機と既存攻撃弾の少なくとも何れかが存在すると予測される各位置」は、既存敵機と既存攻撃弾とが共に存在すると予測される位置それぞれのことではなく、既存敵機が存在すると予測される位置と既存攻撃弾が存在すると予測される位置のそれぞれを云うのであり、この意味において、既存敵機と既存攻撃弾とが共に存在すると予測される位置も含まれる。また、「既存敵機と既存攻撃弾の少なくとも何れかが存在すると予測される各位置から所定の距離」とは、敵機と自機との衝突判定あるいは攻撃弾と自機との衝突判定に用いられる距離である。このような距離の内側、つまり敵機や攻撃弾の各中心により近い領域では、自機は敵機および/または攻撃弾と衝突したと判定されることになる。換言すると、「既存敵機と既存攻撃弾の少なくとも何れかが存在すると予測される各位置から所定の距離」が張る領域、つまり衝突判定形状を定義し、この衝突判定形状を用いて自機と攻撃弾との衝突判定あるいは自機と敵機との衝突判定ができる。
例えば衝突判定形状を円とする場合、衝突判定円は、例えば、衝突判定円の中心を攻撃弾形状の中心とし、衝突判定円の半径を(攻撃弾形状の中心から攻撃弾形状の外周への最短距離)+(自機形状の中心から自機形状の外周への最短距離)とすることができる。但し、半径は、(攻撃弾形状の中心から攻撃弾形状の外周への最長距離)+(自機形状の中心から自機形状の外周への最短距離)などのようにしてもよい。要するに、衝突判定円の半径は、攻撃弾の形状の指標となる長さと、自機の形状の指標となる長さの和とする。ここで指標の採り方は、自機や攻撃弾の形状の定義によって適宜に定めることができる。簡単な例では、自機や攻撃弾などの形状を円とすればこの半径を、矩形とすればその長辺の長さの半分を指標とすることもできる。上記のように衝突判定円を定義すれば、この衝突判定円上あるいは衝突判定円内に自機の位置座標が存在すれば、自機は攻撃弾に衝突したと判定できる。
衝突判定形状を矩形とする場合、一例としてより具体的に攻撃弾形状を横2a、縦2bの長方形、自機形状を横2c、縦2dの長方形とした場合で説明すれば、衝突判定矩形は、その中心を攻撃弾形状の中心とし、横a+c、縦b+dの長方形とすることができる。このように衝突判定矩形を定義すれば、この衝突判定矩形上あるいは衝突判定矩形内に自機の位置座標が存在すれば、自機は攻撃弾に衝突したと判定できる。
衝突判定形状の中心は、既述の自機・敵機・攻撃弾の基準点の設定と同様であり、例えば衝突判定円ならばその中心、衝突判定矩形ならばその外接円の中心などとすることができる。
本発明では、この問題を次のようにして解決する。なお、ここでは攻撃弾の場合を例にとって説明するが、敵機の場合についても、「攻撃弾」を「敵機」に読み替えて同様の理解を得ることができる。
攻撃弾の位置座標を、当該位置座標が存在する升目の四隅の角(かど)または中心のいずれかであると看做し、この看做された位置座標〔以下、「看做し位置座標」とも云う。〕を中心とする衝突判定形状に一部または全部が含まれる升目のC(s,t)を0に設定する。換言すると、既存攻撃弾が存在すると予測される位置を含む升目の四隅の角またはその中心のいずれか1つの位置から所定の距離内に位置する升目のC(s,t)を0に設定するのである。なお、看做し位置座標を中心とする衝突判定形状に一部が含まれる升目のC(s,t)を0に設定することは必須の要件ではない。少なくとも看做し位置座標を中心とする衝突判定形状に全部が含まれる升目のC(s,t)を0に設定すればよい。本明細書では、説明の便宜から、看做し位置座標を中心とする衝突判定形状に一部が含まれる升目のC(s,t)も0に設定する場合として説明する。
このことを図2を参照して説明する。図2中、■印は、看做し位置座標を表し、符号50は格子を示している。また図2では、衝突判定形状が衝突判定円あるいは衝突判定矩形の場合を示している。図2(a)は、升目が正方形の場合であり、かつ、攻撃弾の位置座標を当該位置座標が存在する升目の四隅の角のうち1つに看做した場合である。図2(c)は、升目が正方形の場合であり、かつ、攻撃弾の位置座標を当該位置座標が存在する升目の中心に看做した場合である。図2(b)は、升目が縦に長い長方形の場合であり、かつ、攻撃弾の位置座標を当該位置座標が存在する升目の四隅の角のうち1つに看做した場合である。図2(d)は、升目が縦に長い長方形の場合であり、かつ、攻撃弾の位置座標を当該位置座標が存在する升目の中心に看做した場合である。いずれの場合でも、0が記入された升目は衝突判定形状に一部または全部が含まれる升目であり、これらの升目は、攻撃弾の位置座標を当該位置座標が存在する升目の四隅の角または中心のうち予め決められた1つに看做すというルールと同種の攻撃弾において衝突判定形状は同一とするというルールを維持すれば、看做された攻撃弾の位置座標に対して一意である。そこで、一意に定まる升目の集まりに関する情報を例えばテンプレート〔図2の網掛け部分〕として記憶手段に記憶しておけば、看做された攻撃弾の位置座標に対してテンプレートを適用するだけで、所望の升目のC(s,t)を0に設定できる。
このように、攻撃弾の位置座標および衝突判定形状から厳密に、当該衝突判定形状に一部または全部が含まれる升目を特定する処理を行わなくても、看做し位置座標に対してテンプレートを適用するだけの処理で簡便に所望の升目のC(s,t)を0に設定できるのである。
なお、一意に定まる升目の集まりに関する情報を、テンプレートとしてではなく、例えば攻撃弾の位置座標が存在する升目を取り囲む升目の数として記憶手段に記憶するなどとしてもよい。
なお、さらに簡便な処理とするならば、攻撃弾の位置座標が升目の如何なる部分にあろうが、常に予め定めた看做し位置座標とする構成としてもよい。つまり、例えば、攻撃弾の位置座標が升目の如何なる部分にあろうとも、升目の左上の角を看做し位置座標とするとして画一的に処理してもよいのである。
しかし、この行動選択は、単純な処理である点で好ましいものの、時点nにおいてC(s,n)が最大の升目に到達する経路の時点t0+ΔTの升目と必ずしも同じではない上、C(s,n)を求めた意義を十分に活用しきれていないきらいがある。
むしろ、目標となる升目、つまり時点nでC(s,n)が最大の升目に到達可能な経路の中から、時点t0+ΔTで自機が存在する可能性の最も高い升目に行動するようにすればよいと想到される。考え方としては、C(s,n)を求めた処理と同様に、時点nでC(s,n)が最大の升目を起点として、時点t0+ΔTへ遡りながら各升目のC(s,t)を順次に求めていくことで、最終的に時点t0+ΔTのC(s,t0+ΔT)を求め、升目s0のC(s0,t0+ΔT)および升目s0に接して升目s0を取り囲む升目s0′のC(s0′,t0+ΔT)の中で最大の値となる升目に対して行動するということになる。
また、将来において、画面端に自機が位置する場合のように、自機の移動が制限される状況を生み出さないためにも、自機の位置ができるだけ画面中央付近にあることが望ましい。
まず、時点nでC(s,n)が最大の升目を起点として、時点を減少させながら逐次にC(s,t)を求め、時点t0+ΔTでのC(s,t0+ΔT)を求める。既述のC(s,t)とは値が異なりえるから、ここでは前記のC(s,t)と区別する意味でCb(s,t)と表記する。これに応じて、C(s,t)を順経路総数、Cb(s,t)を逆経路総数ということにする。
Cb(s,t)の求め方は既述のC(s,n)の求め方と同様であり、時点をnからt0+ΔTに順次減少する点が異なる。つまり、時点nでCb(s,n)が最大の升目から時点nより減少された或る時点tにおける或る升目sまでの逆経路総数Cb(s,t)は、升目sの周囲の升目のうち1処理単位時間で自機が升目sに移動可能な升目s′のCb(s′,t+ΔT)の総和〔s′に関する総和である。〕と1処理単位時間前の升目sのCb(s,t+ΔT)との和で得られるから、各時点でのCb(s,t)を順次に求めることで、時点t0+ΔTでの升目sのCb(s,t0+ΔT)を効率良く求めることができる。
この目的は、時点tで自機が升目sに在る場合に敵機が自機の攻撃ライン上にあるときの升目sのCb(s,t)を、その他の升目のCb(s,t)よりも相対的に増大させることにあるから、時点tで自機が升目sに在る場合に敵機が自機の攻撃ライン上にあるときの升目sのCb(s,t)の値を1よりも大である定数値AsによってAs倍することに限定されず、その他の升目のCb(s,t)に1よりも小の定数値を乗じる処理も可能である。いずれにしても、この趣旨を逸脱しないのであれば適宜に設計変更可能であるから、本明細書では、時点tで自機が升目sに在る場合に敵機が自機の攻撃ライン上にあるときの升目sのCb(s,t)の値を1よりも大の定数値AsによってAs倍するとして説明する。
また、画面の背景描画が縦方向に流れる、例えば画面上方から画面下方に向かって背景が流れるように描画される、縦スクロール型シューティングゲームでは、敵機が自機と横並びか、あるいは、敵機が自機よりも画面下方に位置する場合に、自機がこのような敵機に対して攻撃弾を発射しても命中することがないのが一般的であるから、座標値Xiが、時点tに自機が在るとされる升目sの横幅のX座標値の範囲に含まれるか否かに加え、例えば、画面上端から画面下端に向かって縦軸(Y軸)数値が増大するとして、座標値Yiが、時点tに自機が在るとされる升目sの縦幅のY座標値の範囲の最小値よりも小であるか否かの判定をしてもよい。つまり、升目sが、例えば画面上で4頂点の座標が(100,50)、(110,50)、(100,60)、(110,60)である升目とすれば、100≦Xi≦110、かつ、Yi<50であるか否かで判定する。この理は、横スクロール型シューティングゲームや横方向に攻撃弾を発射するようなシューティングゲームなどにも適用できる。
ここでは、自機が発射する攻撃弾の飛行経路が画面の縦に平行になっている場合で例示説明したが、自機が発射する攻撃弾の飛行経路が画面の縦に平行になっていない場合でも、例えば、自機の基準点が升目の中心にあると仮定することで攻撃ラインを(その升目において)一意に定め、この攻撃ライン上に敵機が存在するかを判定することで、時点tで自機が升目sに在る場合に敵機が自機の攻撃ライン上にあるときの升目sの判定が可能になる。
なお、自機が攻撃弾を発射する制御方法自体は本発明の要諦ではないから、説明を略する。
以上の例では、距離rを求めてAzを算出するとしたが、より簡便な処理でAzを与えてもよい。Azは、画面中央に近い升目ほど大きく、画面中央から離れる升目ほど小さい値とするのであるから、格子が定まっていることを前提として、格子の各升目に予め、画面中央に近い升目ほど大きく画面中央から離れる升目ほど小さい値を割り当てておくのである。このようにすれば、距離rやAzを求める手間を省くことができる。
なお、自機が敵機をできる限り破壊することの考慮、および、自機の位置ができるだけ画面中央付近にあるための考慮は、それぞれ、別個独立に考慮できるから、自機が敵機をできる限り破壊することだけを考慮する場合には、各時点での各升目のCb(s,t)の値をCb(s,t)×Asに補正し、自機の位置ができるだけ画面中央付近にあるためだけを考慮する場合には、各時点での各升目のCb(s,t)の値をCb(s,t)×Azに補正すればよい。
つまり、自機の行動種類が図1(a)に示すように静止と周囲8つの升目への移動の9種類の場合を例にとると、Cb(s0,t0+ΔT)および周囲8升の各Cb(s0′,t0+ΔT)のうち、その最大値が升目s0であれば、時点t0+ΔTで升目s0に居るために、現時点t0で「静止」という行動を最適な行動として選択する。最大値が升目s1∈s0′であれば、時点t0+ΔTで升目s1に居るために、現時点t0で「升目s1への移動」という行動を最適な行動として選択する。
本発明の実施形態について、図面を参照しながら説明する。
<シューティングゲームのデモンストレーション用自機行動制御装置>
本発明の実施形態であるシューティングゲームのデモンストレーション用自機行動制御装置(1)は、それ単体で独立に存在するよりは、コンピュータを構成するエンティティとして存在するのが一般的である〔勿論、単体独立のエンティティとして存在することを排除する趣旨ではない。〕。さらに云えば、シューティングゲームのデモンストレーション用自機行動制御装置(1)は、コンピュータとは容易に分離可能にコンピュータを構成するエンティティではなく、コンピュータ自体を或る機能に着眼して片面的に評価したものであるのが一般的である。要するに、シューティングゲームのデモンストレーション用自機行動制御装置(1)は、シューティングゲームを実行するコンピュータそのものであることが一般的である。ここでコンピュータは、既述のとおりパーソナルコンピュータのような汎用機やゲーム専用機などを広く指す。
以下、シューティングゲームのデモンストレーション用自機行動制御装置(1)を単にデモ用自機行動制御装置(1)と云うことにする。
デモ用自機行動制御装置(1)は、入力装置が接続可能な入力部(11)、表示装置が接続可能な出力部(12)、CPU(Central Processing Unit;14)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(Random Access Memory)(15)、ROM(Read Only Memory)(16)やハードディスクである外部記憶装置(17)、並びにこれらの入力部(11)、出力部(12)、CPU(14)、RAM(15)、ROM(16)、外部記憶装置(17)間のデータのやり取りが可能なように接続するバス(18)などを備えている。また必要に応じて、デモ用自機行動制御装置(1)に、ビデオカード(Video Card)やCD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
既述のとおり、デモ用自機行動制御装置(1)は、シューティングゲームを実行するコンピュータであるところ、外部記憶装置(17)にはシューティングゲームを実行するに必要な種々のプログラムなどが保存記憶されているが、本発明の要旨に関しないので説明を略する。また、そのプログラムが解釈されてシューティングゲームが実行される仕組みの詳細も本発明の要旨に関しないから説明を略する。
また、この実施形態における自機行動決定プログラムは、目標の升目sgから時点nより前の或る時点tにおける或る升目sまでの逆経路総数Cb(s,t)を、既存敵機と既存攻撃弾の存在、敵機の破壊並びに画面中央付近にできるだけ居ることを考慮して逐次求めるためのプログラム(逆経路数計算プログラム)と、逆経路数計算プログラムの処理で得られた時点t0+ΔTでのCb(s,t0+ΔT)のうち、現時点t0(=0)で自機が存在する升目s0のCb(s0,t0+ΔT)および升目s0の周囲の升目のうち1処理単位時間で自機が升目s0に移動可能な升目s0′の各Cb(s0′,t0+ΔT)の中で最大の値となった升目を特定するためのプログラム(行動決定プログラム)とを含む。
次に、図4および図5を参照して、デモ用自機行動制御装置(1)におけるデモ用自機行動制御処理(自機行動の決定)の流れを叙述的に説明する。
自機の行動は、図1(a)に示したとおりとする。
この実施形態では、制御部(190)の制御によって、本発明であるデモ用自機行動制御処理〔自機行動の決定〕が実行されるようになっている。
これは、現時点t0(=0)に自機(30)が存在する升目s0=(4,4)から、処理単位時間1で移動可能な升目が、静止という自機(30)の行動を含めて(3,3)、(3,4)、(3,5)、(4,3)、(4,4)、(4,5)、(5,3)、(5,4)、(5,5)であり、現時点t0(=0)に自機(30)が存在する升目s0=(4,4)からの経路がいずれも1通りの経路しか存在しないことを示している。
これは、時点t=1に自機(30)が存在する升目s=(3,3)、(3,4)、(3,5)、(4,3)、(4,4)、(4,5)、(5,3)、(5,4)、(5,5)から、処理単位時間1で移動可能な升目が、静止という自機(30)の行動を含めて(2,2)、(2,6)、(6,2)、(6,6)、(2,3)、(2,5)、(3,2)、(3,6)、(5,2)、(5,6)、(6,3)、(6,5)、(2,4)、(4,2)、(4,6)、(6,4)、(3,3)、(3,5)、(5,3)、(5,5)、(3,4)、(4,3)、(4,5)、(5,4)、(4,4)であり、現時点t0(=0)に自機(30)が存在する升目s0=(4,4)からの経路がそれぞれの数字が示す数だけあることを示している。
時点2での升目(3,3)のC(s,2)を求める〔s=(3,3)〕。このとき、時点1でのC(s,1)は、1である。升目s=(3,3)の周囲の升目のうち1処理単位時間で自機が升目sに移動可能な升目s′は、(2,2)、(2,3)、(2,4)、(3,2)、(3,4)、(4,2)、(4,3)、(4,4)である。升目s′=(2,2)、(2,3)、(2,4)、(3,2)、(4,2)のC(s′,1)はそれぞれ0であり、升目s′=(3,4)、(4,3)、(4,4)のC(s′,1)はそれぞれ1である〔図9(a)参照〕。従って、これらを式(1)に代入すると升目s=(3,3)のC(s,2)は、C(s,2)=1+(1+1+1+0+0+0+0+0)=4となる〔図9(b)参照〕。
図10では、自機(30)・敵機(40)・既存攻撃弾のそれぞれの外形を内包する最小の円を、衝突判定に用いる自機(30)・敵機(40)・既存攻撃弾の形状と定義し、衝突判定円を、中心を既存攻撃弾の中心〔既存攻撃弾の形状の中心である。〕とし、半径を(既存攻撃弾の形状の半径)+(自機の形状の半径)とする。図10では、衝突判定円の半径は、丁度、正方形の升目の一辺に等しいとしている。
時点1では、格子(50)の右上の隅に既存攻撃弾の位置座標(あるいは看做し位置座標)があると予測されるとする〔図10(a)参照〕。このとき、衝突判定円内に位置する升目(1,7)のC(s,t)の値を0にする。但し、この場合では、もともと升目(1,7)のC(s,t)の値は0であるからリセットする必要はない。なお、「衝突判定円内に位置する升目」は、衝突判定円内に完全に内包される升目、および、升目の一部分が衝突判定円内に含まれる升目である。
時点2では、升目(3,5)の右上の隅に既存攻撃弾の位置座標(あるいは看做し位置座標)があると予測されるとしている〔図10(b)参照〕。既述のとおり各攻撃弾は、敵機から発射される際に決定された速度を発射後において維持することから各時点での位置座標を予測可能である。例えば、時点t0(=0)での或る既存攻撃弾の位置を(Xb(0),Yb(0))、その速度を(Vx(0),Vy(0))、時点tでの当該既存攻撃弾の位置を(Xb(t),Yb(t))とすれば、(Xb(t),Yb(t))=(Xb(0)+Vx(0)×t×ΔT,Yb(0)+Vy(0)×t×ΔT)の関係がある。図10(b)の例では、衝突判定円内に位置する升目(2,5)、(2,6)、(3,5)、(3,6)のC(s,t)の値を0にする。
もし、C(s,n)が同じ値の升目が存在したならば、それらのうちの1つの升目を升目sgとして特定すればよい。あるいは、それらのうち最も画面中央に近い升目を升目sgとして特定してもよい。
特定された升目sgを識別する目標升目識別情報は、記憶部(20)に記憶される。このような目標升目識別情報としては、例えば、升目sgの中心に位置座標でもよい。あるいは、本明細書において升目の位置を格子(50)の外部に割り当てた数字の組み合わせをもって表現するのと同様にして、格子を行列と見立てて行列の成分表示で升目を特定するならば、この成分を目標升目識別情報に用いてもよい。
この段階では、起点となる升目が升目sgに特定されているので、初期値として、升目sgを除く各升目に数字0が割り当てられ、升目sgに1が割り当てられる。
そして、現時点より前の各時点tにおける各升目のCb(s,t)を求めるが、この求め方でステップS2の処理と異なるのは、式(1)ではなく式(2)によって求める点にある。
この例を図11示す。ここでは、一度に1つの攻撃弾を発射する場合で、且つ、自機が発射する攻撃弾の飛行経路が画面の縦に平行になっている場合を例とする。図11(a)では、時点tでの敵機の予測位置が(2,4)の升目に在るとする。また、時点tでの各升目のCb(s,t)は、図11(a)の各升目に記入された数値とする。このとき、時点tで自機が升目sに在る場合に敵機が自機の攻撃ライン上にあるときの升目sは、網掛け部分に示した升目(3,4)、(4,4)、(5,4)、(6,4)、(7,4)である。なお、ここでは、敵機の予測位置のX座標値Xiが、時点tに自機が在るとされる升目sの横幅のX座標値の範囲に含まれるか否かに加え、画面上端から画面下端に向かって縦軸(Y軸)数値が増大するとして、敵機の予測位置の座標値Yiが、時点tに自機が在るとされる升目sの縦幅のY座標値の範囲の最小値よりも小であるか否かの判定をした。この判定が成立する升目が網掛け部分に示した升目である。従って、升目s=(3,4)、(4,4)、(5,4)、(6,4)、(7,4)のCb(s,t)をAs倍する。ここではAs=2として、As倍した後の時点tでの各升目のCb(s,t)を図11(b)に示す。
あるいは、格子の各升目に予め、画面中央に近い升目ほど大きく画面中央から離れる升目ほど小さい値Azを割り当てておいたマスキングデータを記憶部(20)に保存しておき、格子の各升目のCb(s,t)に適用するとしてもよい。この例を図13に示す。図13(a)は、7×7の格子において予めAzが固定して割り当てられたマスキングデータの一例を格子の各升目にAzを記入して示している。図13の記号×は、このマスキングデータを図13(b)に示す時点tでの各升目のCb(s,t)に適用することを示している。つまり、或る升目の補正後のCb(s,t)は、補正前の当該升目のCb(s,t)とマスキングデータの当該升目のAzとの積で得られ、具体例としては、升目s=(5,4)の補正後のCb(s,t)は、補正前の升目s=(5,4)のCb(s,t)=4とマスキングデータの升目s=(5,4)のAz=5との積で得られるから20となる。
特定された升目saを識別する行動升目識別情報は、記憶部(20)に記憶される。このような行動升目識別情報としては、例えば、升目saの中心に位置座標でもよい。あるいは、本明細書において升目の位置を格子(50)の外部に割り当てた数字の組み合わせをもって表現するのと同様にして、格子を行列と見立てて行列の成分表示で升目を特定するならば、この成分を行動升目識別情報に用いてもよい。
また、人間の目から見て理に適った自機の行動制御を行うデモンストレーションとなるから、デモンストレーション効果がより長く持続し、例えば店頭などでデモンストレーションを表示するならば、集客効果を発揮し、デモンストレーションを見た者の購買意欲を高めることとなる。
141 自機目標設定部 142 順経路数計算部
143 目標決定部 144 自機行動決定部
145 逆経路数計算部 146 行動決定部
190 制御部 20 記憶部
Claims (13)
- 自機目標設定手段と自機行動決定手段を備えたコンピュータが、画面上に自機と1つあるいは複数の敵機とが表示され、自機および敵機が行動しながら攻撃弾を発射するシューティングゲームのデモンストレーションで自機の行動制御を行うシューティングゲームのデモンストレーション用自機行動制御方法であって、
上記自機目標設定手段が、自機の行動を決定するべき現時点t0において、敵機が現時点t0より過去の時点で発射した攻撃弾の位置およびその速度、敵機の位置およびその速度、並びに現時点の自機の位置に基づき、画面を格子状に分割した格子の升目であって現時点t0で自機が存在する升目s0を起点として、現時点t0より後の時点nで、敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置に対して自機が一定以内の距離に近づかずに升目に到達しえる経路総数(以下、「順経路総数」という。)を各升目ごとに求め、順経路総数が最大の升目sgを目標として設定する自機目標設定ステップと、
上記自機行動決定手段が、敵機が現時点t0より過去の時点で発射した攻撃弾の位置およびその速度、敵機の位置およびその速度に基づき、上記自機目標設定ステップにおいて目標とされた升目sgを起点として、時点nよりも前の時点t0+ΔTで、上記格子の各升目において、敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置に対して自機が一定以内の距離に近づかずに升目に到達しえる経路総数(以下、「逆経路総数」という。)を各升目ごとに求め、上記升目s0の逆経路総数および上記升目s0の周囲の升目のうち1処理単位時間ΔTで自機が升目s0に移動可能な升目s0′の各逆経路総数のうち、最大の逆経路総数を有する升目に対して行動することを決定する自機行動決定ステップと
を有することを特徴とするシューティングゲームのデモンストレーション用自機行動制御方法。 - 自機が存在する升目Sから1処理単位時間ΔTで移動可能な升目は、升目Sに接して升目Sを取り囲む升目の全部または一部であるとし、
上記自機目標設定ステップは、
現時点t0より後の時点nで、敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置に対して自機が一定以内の距離に近づかずに升目sに到達しえる順経路総数C(s,n)を、
上記升目s0の順経路総数の初期値を1、その他の升目の順経路総数の初期値を0として設定し、現時点t0に自機が存在する升目s0から現時点より後の或る時点tにおける或る升目sまでの順経路総数C(s,t)を、升目sを取り囲む升目のうち1処理単位時間ΔTで自機が升目sに移動可能な升目s′の時点t−ΔTにおける順経路総数C(s′,t−ΔT)の総和〔但し、s′に関する総和である。〕と升目sの時点t−ΔTにおける順経路総数C(s,t−ΔT)との和で求め、さらに、時点tにおいて升目sが、敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置を含む升目および当該各位置から所定の距離内に位置する升目のいずれかに該当する場合には順経路総数C(s,t)を0に設定するとして、各時点tでの各升目の順経路総数C(s,t)を順次に求めることで時点nでの各升目の順経路総数C(s,n)を求めるものである
ことを特徴とする請求項1に記載のシューティングゲームのデモンストレーション用自機行動制御方法。 - 上記自機目標設定ステップにおいて順経路総数C(s,t)が0に設定される、敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置を含む升目および当該各位置から所定の距離内に位置する升目を、
敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置を含む升目の四隅の角またはその中心のいずれか1つの位置から所定の距離内に位置する升目とする
ことを特徴とする請求項2に記載のシューティングゲームのデモンストレーション用自機行動制御方法。 - 自機が存在する升目Sから1処理単位時間ΔTで移動可能な升目は、升目Sに接して升目Sを取り囲む升目の全部または一部であるとし、
上記自機行動決定ステップは、
時点nよりも前の時点t0+ΔTで、上記格子の各升目において、敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置に対して自機が一定以内の距離に近づかずに升目sに到達しえる逆経路総数Cb(s,t0+ΔT)を、
上記自機目標設定ステップにおいて目標とされた升目sgの逆経路総数の初期値を1、その他の升目の逆経路総数の初期値を0として設定し直し、上記自機目標設定ステップにおいて目標とされた升目sgから時点nより前の或る時点tにおける或る升目sまでの逆経路総数Cb(s,t)を、升目sを取り囲む升目のうち1処理単位時間ΔTで自機が升目sに移動可能な升目s′の時点t+ΔTにおける逆経路総数Cb(s′,t+ΔT)の総和〔但し、s′に関する総和である。〕と升目sの時点t+ΔTにおける逆経路総数Cb(s,t+ΔT)との和で求め、さらに、時点tにおいて升目sが、敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置を含む升目および当該各位置から所定の距離内に位置する升目のいずれかに該当する場合には逆経路総数Cb(s,t)を0に設定するとして、各時点tでの各升目の逆経路総数Cb(s,t)を順次に求めることで時点t+ΔTでの各升目の逆経路総数Cb(s,t+ΔT)を求めるものである
ことを特徴とする請求項1から請求項3のいずれかに記載のシューティングゲームのデモンストレーション用自機行動制御方法。 - 各時点tで、自機が升目sに在る場合に敵機が自機の攻撃ライン上にあるときの升目sの逆経路総数Cb(s,t)を、その他の升目の逆経路総数に比して相対的に増大させる
ことを特徴とする請求項4に記載のシューティングゲームのデモンストレーション用自機行動制御方法。 - 各時点tで、升目sの画面中央からの距離rを単調減少関数に入力して得られた結果、または、升目sの画面中央からの距離rを単調減少関数に入力して得られた結果を整数値化したものを、升目sの逆経路総数Cb(s,t)に乗じる
ことを特徴とする請求項4に記載のシューティングゲームのデモンストレーション用自機行動制御方法。 - 各時点tで、自機が升目sに在る場合に敵機が自機の攻撃ライン上にあるときの升目sの逆経路総数Cb(s,t)を、その他の升目の逆経路総数に比して相対的に増大させ、さらに、この相対的に増大させた逆経路総数Cb(s,t)に、升目sの画面中央からの距離rを単調減少関数に入力して得られた結果、または、升目sの画面中央からの距離rを単調減少関数に入力して得られた結果を整数値化したもの、を乗じる
ことを特徴とする請求項4に記載のシューティングゲームのデモンストレーション用自機行動制御方法。 - 上記自機行動決定ステップにおいて逆経路総数Cb(s,t)が0に設定される、敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置を含む升目および当該各位置から所定の距離内に位置する升目を、
敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置を含む升目の四隅の角またはその中心のいずれか1つの位置から所定の距離内に位置する升目とする
ことを特徴とする請求項4から請求項7のいずれかに記載のシューティングゲームのデモンストレーション用自機行動制御方法。 - 敵機と攻撃弾の少なくとも何れかが存在すると予測される位置を含む升目の四隅の角のうちいずれか1つの位置とする場合に、敵機または攻撃弾の位置を表す基準点から最も近い角を選択する
ことを特徴とする請求項3または請求項8に記載のシューティングゲームのデモンストレーション用自機行動制御方法。 - 升目の短辺が、攻撃弾あるいは敵機の形状の指標となる長さと、自機の形状の指標となる長さとの和である基準長の整数分の1以下となる
ことを特徴とする請求項1から請求項9のいずれかに記載のシューティングゲームのデモンストレーション用自機行動制御方法。 - 画面上に自機と1つあるいは複数の敵機とが表示され、自機および敵機が行動しながら攻撃弾を発射するシューティングゲームのデモンストレーションで自機の行動制御を行うシューティングゲームのデモンストレーション用自機行動制御装置であって、
自機の行動を決定するべき現時点t0において、敵機が現時点t0より過去の時点で発射した攻撃弾の位置およびその速度、敵機の位置およびその速度、並びに現時点の自機の位置に基づき、画面を格子状に分割した格子の升目であって現時点t0で自機が存在する升目s0を起点として、現時点t0より後の時点nで、敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置に対して自機が一定以内の距離に近づかずに升目に到達しえる順経路総数を各升目ごとに求め、順経路総数が最大の升目sgを目標として設定する自機目標設定手段と、
敵機が現時点t0より過去の時点で発射した攻撃弾の位置およびその速度、敵機の位置およびその速度に基づき、上記自機目標設定手段によって目標とされた升目sgを起点として、時点nよりも前の時点t0+ΔTで、上記格子の各升目において、敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置に対して自機が一定以内の距離に近づかずに升目に到達しえる逆経路総数を各升目ごとに求め、上記升目s0の逆経路総数および上記升目s0の周囲の升目のうち1処理単位時間ΔTで自機が升目s0に移動可能な升目s0′の各逆経路総数のうち、最大の逆経路総数を有する升目に対して行動することを決定する自機行動決定手段と
を備えたことを特徴とするシューティングゲームのデモンストレーション用自機行動制御装置。 - 画面上に自機と1つあるいは複数の敵機とが表示され、自機および敵機が行動しながら攻撃弾を発射するシューティングゲームのデモンストレーションで自機の行動制御をコンピュータに行わせるシューティングゲームのデモンストレーション用自機行動制御プログラムであって、
自機の行動を決定するべき現時点t0において、敵機が現時点t0より過去の時点で発射した攻撃弾の位置およびその速度、敵機の位置およびその速度、並びに現時点の自機の位置に基づき、画面を格子状に分割した格子の升目であって現時点t0で自機が存在する升目s0を起点として、現時点t0より後の時点nで、敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置に対して自機が一定以内の距離に近づかずに升目に到達しえる経路総数(以下、「順経路総数」という。)を各升目ごとに求め、順経路総数が最大の升目sgを目標として設定する自機目標設定処理と、
敵機が現時点t0より過去の時点で発射した攻撃弾の位置およびその速度、敵機の位置およびその速度に基づき、上記自機目標設定処理において目標とされた升目sgを起点として、時点nよりも前の時点t0+ΔTで、上記格子の各升目において、敵機と攻撃弾の少なくとも何れかが存在すると予測される各位置に対して自機が一定以内の距離に近づかずに升目に到達しえる経路総数(以下、「逆経路総数」という。)を各升目ごとに求め、上記升目s0の逆経路総数および上記升目s0の周囲の升目のうち1処理単位時間ΔTで自機が升目s0に移動可能な升目s0′の各逆経路総数のうち、最大の逆経路総数を有する升目に対して行動することを決定する自機行動決定処理と
をコンピュータに行わせることを特徴とするシューティングゲームのデモンストレーション用自機行動制御プログラム。 - 請求項12に記載のプログラムを記録した、コンピュータに読み取り可能な記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006202019A JP4976771B2 (ja) | 2006-07-25 | 2006-07-25 | シューティングゲームのデモンストレーション用自機行動制御方法、その装置、そのプログラムおよびその記録媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006202019A JP4976771B2 (ja) | 2006-07-25 | 2006-07-25 | シューティングゲームのデモンストレーション用自機行動制御方法、その装置、そのプログラムおよびその記録媒体 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2008023243A JP2008023243A (ja) | 2008-02-07 |
| JP4976771B2 true JP4976771B2 (ja) | 2012-07-18 |
Family
ID=39114482
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006202019A Active JP4976771B2 (ja) | 2006-07-25 | 2006-07-25 | シューティングゲームのデモンストレーション用自機行動制御方法、その装置、そのプログラムおよびその記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4976771B2 (ja) |
-
2006
- 2006-07-25 JP JP2006202019A patent/JP4976771B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2008023243A (ja) | 2008-02-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8337284B2 (en) | Game apparatus and storage medium having game program stored therein | |
| KR102539606B1 (ko) | 가상 객체의 이동을 제어하기 위한 방법과 장치, 및 단말기와 저장 매체 | |
| CN112774201B (zh) | 一种虚拟角色掩蔽方法、装置、计算机设备及存储介质 | |
| US7775867B2 (en) | Storage medium storing a game program, game apparatus, and game control method | |
| US8167718B2 (en) | Storage medium storing game program, game apparatus, and game control method | |
| JP7170397B2 (ja) | プログラム、画像処理方法、及び画像処理装置 | |
| US20160023102A1 (en) | Game providing device | |
| US12434145B2 (en) | Controlling a virtual vehicle using auxiliary control function | |
| CN111481930B (zh) | 虚拟对象控制方法、装置、计算机设备和存储介质 | |
| US8271228B2 (en) | Trace information processing device, trace information processing method, information recording medium, and program | |
| JP2000308759A (ja) | ビデオゲームのキャラクタを制御する方法、ビデオゲーム装置、及び記録媒体 | |
| US8902185B2 (en) | Scrolling screen apparatus, method for scrolling screen, and game apparatus | |
| KR102208894B1 (ko) | 가상 현실 장면에서 패스워드를 입력하는 방법 및 디바이스 | |
| JP7772964B2 (ja) | スキルインジケーターの表示方法及び装置、電子機器及び記憶媒体 | |
| JP7838086B2 (ja) | カードリリース方法、装置、機器、記憶媒体、及びプログラム | |
| KR102673556B1 (ko) | 6자유도 모션플랫폼에 기반한 가상 시뮬레이션 수행 시스템 | |
| JP4976771B2 (ja) | シューティングゲームのデモンストレーション用自機行動制御方法、その装置、そのプログラムおよびその記録媒体 | |
| JP3747050B1 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
| JP4804240B2 (ja) | シューティングゲームの敵機攻撃制御方法、その装置、そのプログラム及びその記録媒体 | |
| Debenham | New algorithms for computing field of vision over 2D grids | |
| CN115814418A (zh) | 一种交互方法、装置、计算机设备及存储介质 | |
| US20240325898A1 (en) | Systems and methods for dynamically modifying hit zones on a display screen device | |
| JP4996267B2 (ja) | 敵機行動制御方法、装置、プログラム及びその記録媒体 | |
| JP7660441B2 (ja) | 情報処理装置、プログラム、及びゲーム画像生成方法 | |
| JP2006065647A (ja) | 画像処理プログラムおよび画像処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080804 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110506 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110623 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110802 |
|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20110818 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110905 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120403 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120413 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4976771 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150420 Year of fee payment: 3 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |