JP4804253B2 - シューティングゲームの自機動作制御方法、装置、プログラム及びその記録媒体 - Google Patents
シューティングゲームの自機動作制御方法、装置、プログラム及びその記録媒体 Download PDFInfo
- Publication number
- JP4804253B2 JP4804253B2 JP2006202527A JP2006202527A JP4804253B2 JP 4804253 B2 JP4804253 B2 JP 4804253B2 JP 2006202527 A JP2006202527 A JP 2006202527A JP 2006202527 A JP2006202527 A JP 2006202527A JP 4804253 B2 JP4804253 B2 JP 4804253B2
- Authority
- JP
- Japan
- Prior art keywords
- probability
- cell
- time
- aircraft
- enemy aircraft
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
このため、シューティングゲームのデモンストレーションプレイ(以下、デモ画面という。)は、あるプレイヤーが過去に行った模範的なプレイの動画を再生するだけのものや、ランダムに自機を移動させ、ランダムに攻撃弾を発射するような単純なアルゴリズムを利用するものに限られていた。
ここで、シューティングゲームのデモンストレーションプレイとは、プレイヤーがプレイを行っていないいわば待ち状態のときに、シューティングゲームの内容や魅力を説明するために画面上に表示される、そのシューティングゲームの模範的なプレイのことである。
Jonathan Schaeffer,H.Jaap van den Herik,"Games,computers,and artificial intelligence",Artificial Intelligence,2002,Vol.134,p1-7
また、ランダムに自機を移動させ、ランダムに攻撃弾を発射させるような単純なアルゴリズムは、人の目から見て理にかなった動作をするものではなく、多くの場合、敵機の攻撃によって自機はすぐに破壊されてしまう。このため、そのシューティングゲームの内容を理解させるほどの長い時間に渡って、デモ画面を表示することが難しいという問題があった。
ところで、デモンストレーションプレイにおける自機の動作アルゴリズムを知的なものにするためには、人工知能の技術を導入するのが有効であると考えられるが、現在の人口知能におけるゲームの研究は、チェス、オセロ、将棋といった非アクション系の思考ゲームが中心であった(例えば、非特許文献1参照。)。すなわち、人工知能の技術を、シューティングゲームのようなアクションゲームに応用する試みがないという問題があった。
本発明は、上記の問題に鑑み、例えばデモンストレーションプレイに使用することができる、人工知能の技術を応用したシューティングゲームの自機動作制御方法、装置、プログラム及びその記録媒体を提供することを目的とする。
図1に、本発明によるシューティングゲームの自機動作制御装置1の機能構成を例示する。
自機動作制御装置1は、例えば、現在位置取得部2、座標変換部3、第一存在確率計算部4、存在確率記憶部5、自機目標位置決定部8、記憶部10、移動速度決定部11、表示部12、第二自機存在確率計算部91から構成される。
第一存在確率計算部4は、例えば、第一自機存在確率計算部41、敵機存在確率計算部42、敵機攻撃弾存在確率計算部44から構成される。存在確率記憶部5は、例えば、第一自機存在確率記憶部51、敵機存在確率記憶部52、敵機攻撃弾存在確率記憶部53、第二自機存在確率記憶部54から構成される。
第一自機存在確率計算部41は、図6に示すように、例えば、移動確率計算部412、積算部413、加算部414、積算部415、加算部416、積算部417、最大値抽出部419、減算部410から構成される。
敵機攻撃弾存在確率計算部44は、図5に示すように、例えば、移動確率計算部442、積算部443、加算部444から構成される。
第二自機存在確率計算部91は、例えば、移動確率計算部912、積算部913、加算部914、積算部915、加算部916、積算部917、最大値抽出部919、減算部910から構成される。
図2に、本発明の処理の対象となるシューティングゲームを例示する。画面上には、自機1と自機1の攻撃弾3、敵機2と敵機2の攻撃弾4が表示される。攻撃弾3、敵機2、攻撃弾4は、複数存在していても良い。敵機2が複数存在している場合には、それらの敵機にはそれぞれ異なる番号i(i=1…I)が付けられているものとする。同様に、敵機の攻撃弾4が複数存在している場合には、それらの敵機の攻撃弾4にはそれぞれ異なる番号j(j=1…J)が付けられているものとする。また、自機1、敵機2、攻撃弾3、攻撃弾4は、X軸とY軸で構成される2次元の平面上に位置するものとする。
(Vxs(1),Vys(1))=(V,0)
(Vxs(2),Vys(2))=(V,V)
(Vxs(3),Vys(3))=(0,V)
(Vxs(4),Vys(4))=(−V,V)
(Vxs(5),Vys(5))=(−V,0)
(Vxs(6),Vys(6))=(−V,−V)
(Vxs(7),Vys(7))=(0,−V)
(Vxs(8),Vys(8))=(V,−V)
(Vxs(9),Vys(9))=(0,0)
とすることができる。
自機1が、敵機2及び敵機2が発射する攻撃弾4と衝突した場合には、自機1は破壊され、そこでゲームオーバーとなる。逆に、自機1の攻撃弾3が敵機2に衝突した場合には、敵機2は破壊される。自機1の攻撃弾3によりすべての敵機2を破壊した場合には、ユーザは、そのゲームに勝利することになる。
現在位置取得部2は、時刻t=0における自機の位置(xs,ys)、つまり、自機の現在位置(xs,ys)を取得する。座標変換部3は、上記取得された自機の現在位置(xs,ys)を、升目の座標に変換する。
ここで、ゲーム画面は格子に分割されており、その格子の構成単位のことを升目というものとする。例えば、画面の一番左下の升目の座標を(0,0)とし、その(0,0)の升目のX個だけ右に位置し、かつ、Y個だけ上に位置する升目の座標を(X,Y)とすることができる。ここで、XとYは0以上の整数である。
なお、升目の一辺の長さSが、その辺に平行な方向に進む自機の速さVに行動単位時間Tをかけた値になるように、すなわち、S=VTとなるように、ゲーム画面を格子に分割するとよい。このように升目の一辺の長さを設定することにより、ある升目sに存在する自機が、どの移動速度(Vxs(w),Vys(w))に従って移動しても、行動単位時間T後には、必ずある升目sに100%の確率で存在することになる。このため、計算負担を軽減することができる。
座標変換部3は、上記取得された自機の現在位置(xs,ys)を含む升目s0(Xs,Ys)を選択する。
第一自機存在確率計算部41は、上記選択された升目s0(Xs,Ys)に自機が存在する確率Ps(0,s0)を、Ps(0,s0)=1として、第一自機存在確率記憶部51に格納する。
現在位置取得部2は、時刻t=0における敵機の位置(xei,yei)を取得する。敵機の初期存在確率計算部45は、上記取得された敵機の位置(xei,yei)を中心とした升目seiと、ゲーム画面を分割した格子を構成する各升目sと重なる部分の面積を計算する。そして、敵機は、その重なった部分の面積に比例した確率で、各升目sに存在しているものとする。すなわち、敵機の位置(xei,yei)を中心とした升目seiと、ゲーム画面を分割した格子を構成する各升目sj(j=1〜4)が重なっている面積を、D(sei,sj)とすると、敵機が、各升目sj(j=1〜4)に存在している確率Pei(t,sj)は、
Pei(t,sj)=D(sei,sj)/ΣjD(sei,sj) …(1)
として与えられる。
Pei(t,s1)=D(sei,s1)/ΣjD(sei,sj)=8/20=0.4
Pei(t,s2)=D(sei,s2)/ΣjD(sei,sj)=8/20=0.4
Pei(t,s3)=D(sei,s3)/ΣjD(sei,sj)=2/20=0.1
Pei(t,s4)=D(sei,s4)/ΣjD(sei,sj)=2/20=0.1
敵機の初期存在確率計算部45は、上記のようにして、時刻t=0における敵機が升目sに存在する確率Pei(0,s)を計算して、その計算された確率を敵機存在確率記憶部52に格納する。
なお、例えば、敵機の形状に内接する円の直径と、自機の形状に内接する円の直径との和の半分の値を、敵機の位置(xei,yei)を中心とした升目seiの一辺の長さにすることができる。
また、敵機が複数存在する場合には、すべての敵機i(i=1,・・・,I)について上記確率を計算して、その確率Pei(t,s)(i=1,・・・,I)を敵機存在確率記憶部52に格納する。Pei(t,s)(i=1,・・・,I)は、配列である。
現在位置取得部2は、時刻t=0における敵機の攻撃弾の位置(xbj,ybj)を取得する。敵機攻撃弾の初期存在確率計算部46は、上記取得された敵機の攻撃弾の位置(xbj,ybj)を中心とした升目sbjと、ゲーム画面を分割した格子を構成する各升目sと重なる部分の面積を計算する。そして、敵機の攻撃弾は、その重なった部分の面積に比例した確率Pbj(0,s)で、各升目sに存在しているものとする。その確率の計算方法は、上述した敵機が各升目sに存在している確率Pei(0,s)を求める方法と同様である。
なお、例えば、敵機の攻撃弾の形状に内接する円の直径と、自機の形状に内接する円の直径との和の半分の値を、敵機の位置(xbj,ybj)を中心とした升目sbjの一辺の長さにすることができる。
また、敵機の攻撃弾が複数存在する場合には、すべての敵機の攻撃弾j(j=1,・・・,J)について上記確率を計算して、その確率Pbj(t,s)(j=1,・・・,J)を敵機存在確率記憶部52に格納する。Pbj(t,s)(j=1,・・・,J)は、配列である。
敵機存在確率計算部42は、τ=0,T,…,(n−1)Tとし、時刻t=τにおける敵機が升目se’(i)に存在する確率Pei(τ,se’(i))に基づいて、時刻t=τから行動単位時間T経過後の時刻t=τ+Tにおける敵機が升目se(i)に存在する確率Pei(τ+T,se(i))を求める。そして、この処理を繰り返すことによって、最終的に、敵機存在確率計算部42は、各時刻t=kT(k=1…n)ごとに、敵機が升目se(i)に存在している確率を求める。計算した確率Pei(t,se(i))(t=kT(k=1…n))は、敵機存在確率記憶部52に格納される。
まず、敵機存在確率計算部42は、次式を計算することによって、時刻t=τにおける敵機が升目se’(i)に存在する確率Pei(τ,se’(i))に基づいて、t=τ+Tにおける敵機が升目se(i)に存在する確率Pei(τ+T,se(i))を求める。
ここで、Ai(s,se’(i),t)は、自機が存在する升目sの座標と、敵機が存在する升目se’(i)の座標に依存して、移動速度番号aを決定する関数である。Ai(s,se’(i),t)としては、任意の既存のアルゴリズムを利用することができる。例えば、Ai(s,se’(i),t)としては、時刻tにおいて自機が存在する升目sの中心の座標から、時刻tにおいて敵機が存在する升目se’(i)の中心の座標を引いたベクトルの向きに最も近い方向を与える移動速度(Vxei(a),Vyei(a))の番号aを選択するアルゴリズムを用いることができる。
敵機移動速度決定部421は、時刻t=τにおいて自機が存在している升目sと、敵機が存在している升目se’(i)とから、上記に例示した既存のアルゴリズムを用いて、敵機の移動速度番号a=Ai(s,se’(i),t)を決定する。
移動確率計算部422は、升目se’(i)に存在している敵機が、上記求まった敵機の移動速度番号aに対応した移動速度で行動単位時間Tだけ移動した結果、升目se(i)に存在している確率Ptrei(se’(i),se(i),Ai(s,se’(i),τ))を計算する。
積算部423は、上記計算されたPtrei(se’(i),se(i),Ai(s,se’(i),τ))と、敵機存在確率記憶部52から読み出した敵機が升目se’(i)に存在している確率Pei(τ,se’(i))との積Ptrei(se’(i),se(i),Ai(s,se’(i),τ))・Pei(τ,se’(i))を求める。
加算部424は、各升目se’(i)ごとに上記計算されたPtrei(se’(i),se(i),Ai(s,se’(i),τ))・Pei(τ,se’(i))を加算する。すなわち、Σse’(i){Ptrei(se’(i),se(i),Ai(s,se’(i),τ))・Pei(τ,se’(i))}を計算する。
積算部425は、上記計算されたΣse’(i){Ptrei(se’(i),se(i),Ai(s,se’(i),τ))・Pei(τ,se’(i))}と、時刻t=τにおける自機が升目sに存在する確率Ps(τ,s)との積Ps(τ,s)・Σse’(i){Ptrei(se’(i),se(i),Ai(s,se’(i),τ))・Pei(τ,se’(i))}を求める。
加算部426は、各升目sごとに求まった上記Ps(τ,s)・Σse’(i){Ptrei(se’(i),se(i),Ai(s,se’(i),τ))・Pei(τ,se’(i))}を加算する。すなわち、Σs{Ps(τ,s)・Σse’(i){Ptrei(se’(i),se(i),Ai(s,se’(i),τ))・Pei(τ,se’(i))}}を計算する。
上記の処理をすべてのτ(τ=T,…,(n−1)T)について、τが小さい順に行い、各時刻ごとに敵機が升目sに存在する確率を求め、最終的に、時刻t=nTにおいて、敵機が升目sに存在する確率を求める。これらの計算された確率は、敵機存在確率記憶部52に格納される。
また、式(2)と数学的に等しい式である次の式、
Pei(τ+T,se(i))=ΣsΣse’(i){Ps(τ,s)・Ptrei(se ’(i),se(i),Ai(s,se’(i),τ))・Pei(τ,se’(i))} …(2a)
に基づいて、敵機の存在確率Pei(τ+T,se(i))を求めても良い。
敵機攻撃弾存在確率計算部44は、時刻t=τにおける敵機の攻撃弾が升目sb’(j)に存在する確率Pbj(τ,sb’(j))に基づいて、時刻t=τ+Tにおける敵機の攻撃弾が升目sb(j)に存在する確率Pbj(τ,sb(j))を求める。そして、敵機攻撃弾存在確率計算部44は、この処理を繰り返すことによって、最終的に、各時刻t=kT(k=1…n)ごとに、敵機の攻撃弾が升目sb(i)に存在している確率を求める。計算した確率Pbj(t,sb(j))(t=kT(k=1…n))は、敵機攻撃弾存在確率記憶部53に格納される。
まず、敵機攻撃弾存在確率計算部44は、次式を計算することによって、時刻t=τにおける敵機の攻撃弾が升目sb’(j)に存在する確率Pbj(τ,sb’(j))に基づいて、時刻t=τ+Tにおける敵機の攻撃弾が升目sb(j)に存在する確率Pbj(τ,sb(j))を求める。
ここで、Ptrbj(sb’(j),sb(j))は、時刻t=τにおいて升目sb’(j)に存在する敵機の攻撃弾が、所定の移動速度(Vxbj,Vybj)に従って行動単位時間Tだけ移動することによって、時刻t=τ+Tにおいて升目sb(j)に存在している確率である。Ptrbj(sb’(j),sb(j))の計算の仕方については後述する。
移動確率計算部442は、升目sb’(j)に存在している敵機の攻撃弾が、記憶部10から読み出した所定の移動速度(Vxbj,Vybj)で行動単位時間Tだけ移動した結果、升目sb’(j)に存在している確率Ptrbj(sb’(j),sb(j))を計算する。
積算部443は、上記計算されたPtrbj(sb’(j),sb(j))と、敵機攻撃弾存在確率記憶部53から読み出した敵機の攻撃弾が升目sb’(j)に存在している確率Pbj(τ,sb’(j))との積Ptrbj(sb’(j),sb(j))・Pbj(τ,sb’(j))を求める。
このようにして、移動確率計算部442と積算部443は、すべての升目sb’(j)について上記Ptrbj(sb’(j),sb(j))・Pbj(τ,sb’(j))を計算する。
加算部444は、各升目sb’(j)ごとに上記計算されたPtrbj(sb’(j),sb(j))・Pbj(τ,sb’(j))を加算する。すなわち、Σsb’(j){Ptrbj(sb’(j),sb(j))・Pbj(τ,sb’(j))}を計算する。
上記の処理をすべてのτ(τ=T,…,(n−1)T)について、τが小さい順に行い、各時刻ごとに敵機の攻撃弾が升目sに存在する確率を求め、最終的に、時刻t=nTにおいて、敵機の攻撃弾が升目sに存在する確率を求める。これらの計算された確率は、敵機攻撃弾存在確率記憶部53に格納される。
第一自機存在確率計算部41は、τ=0,T,…,(n−1)Tとし、時刻t=τにおける自機が升目s’に存在する確率Ps(τ,s’)に基づいて、時刻t=τから行動単位時間T経過後の時刻t=τ+Tにおける自機が升目sに存在する確率Ps(τ+T,s)を求める。そして、この処理を繰り返すことによって、最終的に、第一自機存在確率計算部41は、各時刻t=kT(k=1…n)ごとに、自機が升目sに存在している確率を求める。計算した確率Ps(t,s)(t=kT(k=1…n))は、第一自機存在確率記憶部51に格納される。
まず、第一自機存在確率計算部41は、次式を計算することによって、時刻t=τにおける自機が升目s’に存在する確率Ps(τ,s’)に基づいて、t=τ+Tにおける自機が升目sに存在する確率Ps(τ+T,s)を求める。
ここで、Psel(w,t)は、時刻tにおいて自機が移動速度番号wを選択する確率である。例えば、自機が等しい確率で移動速度番号wを選択すると仮定して、Psel(w,t)=1/Wとすることができる。この他にも、ユーザが任意にPsel(w,t)の値を選択することができる。Psel(w,t)の値は予め設定され、記憶部10に格納されているものとする。
以下、図6を参照して、上記式(4)の計算について説明する。図6は、第一自機存在確率計算部41の機能構成を例示する図である。
移動確率計算部412は、升目s’に存在している自機が、自機の移動速度番号wに対応した移動速度(Vxs(w),Vys(w))で行動単位時間Tだけ移動した結果、升目s’に存在している確率Ptrs(s’,s,w)を計算する。
積算部413は、上記計算されたPtrs(s’,s,w)と、第一自機存在確率記憶部51から読み出した自機が升目s’に存在している確率Ps(τ,s’)との積Ptrs(s’,s,w)・Ps(τ,s’)を求める。
加算部414は、各升目s’ごとに上記計算されたPtrs(s’,s,w)・Ps(τ,s’)を加算する。すなわち、Σs’{Ptrs(s’,s,w)・Ps(τ,s’)}を計算する。
積算部415は、上記計算されたΣs’{Ptrs(s’,s,w)・Ps(τ,s’)}と、記憶部10から読み出した、時刻t=τにおける自機が移動速度番号wを選択する確率Psel(w,τ)との積Psel(w,τ)・Σs’{Ptrs(s’,s,w)・Ps(τ,s’)}を求める。
加算部416は、各移動速度番号wごとに求まった上記Psel(w,τ)・Σs’{Ptrs(s’,s,w)・Ps(τ,s’)}を加算する。すなわち、ΣwPsel(w,τ)・Σs’{Ptrs(s’,s,w)・Ps(τ,s’)}を計算する。
最大値抽出部419は、max(Pei(τ+T,s),Pbj(τ+T,s))を計算する。すなわち、敵機存在確率記憶部52から読み出した時刻t=τ+Tにおいて敵機が升目sに存在する確率Pei(τ+T,s)(i=1,・・・,I)と、敵機攻撃弾存在確率記憶部53から読み出した時刻t=τ+Tにおいて敵機の攻撃弾が升目sに存在する確率Pbj(τ+T,s)(j=1,・・・,J)とを比較して、最も大きい値を出力する。
減算部410は、1から、上記計算されたmax(Pei(τ+T,s),Pbj(τ+T,s))を減算した値を計算する。
積算部417は、加算部416が計算したΣwPsel(w,τ)・Σs’{Ptrs(s’,s,w)・Ps(τ,s’)}と、減算部410が計算した1−max(Pei(τ+T,s),Pbj(τ+T,s))との積を求める。
このようにして、第一自機存在確率計算部41は、時刻t=τにおける自機が升目sに存在する確率Ps(τ,s)に基づいて、時刻t=τ+Tにおける自機が升目sに存在する確率Ps(τ+T,s)を計算する。
上記の処理をすべてのτ(τ=T,…,(n−1)T)について、τが小さい順に行い、各時刻ごとに自機が升目sに存在する確率を求め、最終的に、時刻t=nTにおいて、自機が升目sに存在する確率を求める。これらの計算された確率は、第一自機存在確率記憶部51に格納される。
以下、升目s’に存在する敵機が敵機の移動速度番号aの移動速度(Vxei(a),Vyei(a))に従って行動単位時間Tだけ移動することによって升目sに移動する確率Ptrei(s’,s,a)、升目s’に存在する敵機の攻撃弾が所定の移動速度(Vxbj,Vybj)に従って行動単位時間Tだけ移動することによって升目sに移動する確率Ptrbj(s’,s)、升目s’に存在する自機が移動速度番号wの移動速度(Vxs(w),Vys(w))に従って行動単位時間Tだけ移動することによって升目sに移動する確率Ptrs(s’,s,w)の求め方について説明する。
dxs=Vxs(w)×T
dys=Vys(w)×T
である。自機が存在する升目s’を上記変位量(dxs,dys)だけ平行移動した升目をsdsとする。升目sdsと升目sが重なる面積の、升目s全体の面積に対する比率をPtr(s’,s,w)とする。すなわち、ステップ2で、敵機の存在確率を計算したのと同様にして、Prt(s’,s,w)を求める。
dxei=Vxei(a)×T
dyei=Vyei(a)×T
である。敵機が存在する升目s’の中心に、一辺の大きさが敵機の大きさ(敵機の形状に内接する円の直径)と自機の大きさ(自機に内接する円の直径)の和の半分である升目を新たに作成し、この升目を上記変位量(dxei,dyei)だけ平行移動した升目をsdeiとする。升目sdeiと升目sが重なる面積の、升目s全体の面積に対する比率をPtrei(s’,s,a)とする。
dxbj=Vxbj×T
dybj=Vybj×T
である。敵機の攻撃弾が存在する升目s’の中心に、一辺の大きさが敵機の攻撃弾の大きさ(敵機の攻撃弾の形状に内接する円の直径)と自機の大きさ(自機の形状に内接する円の直径)の和の半分である升目を新たに作成し、この升目を上記変位量(dxbj,dybj)だけ平行移動した升目をsdbjとする。升目sdbjと升目sが重なる面積の、升目s全体の面積に対する比率をPtrbj(s’,s)とする。
自機目標位置決定部8は、第一自機存在確率記憶部51からt=nTにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで各升目sに存在する確率Ps(nT,s)のうち、その確率を最も高くする升目を選択して、その升目を目標位置(Xd,Ys)とする。計算された目標位置(Xd,Ys)は、第二自機存在確率計算部91に出力される。
通常の探索計算では、例えば自機の未来の移動パターン(例えば、Wのn乗通りの移動方向選択履歴を表わす順列)の一つ一つのデータを保持する必要があるため探索の深さnが増すと累乗で計算時間が増す。しかし、上記のようにして探索の計算をすると、探索の深さnが増しても高々探索の深さnに比例して計算時間が増すだけであり、実時間性の要求を満たすことができるというメリットがある。
第二自機存在確率計算部91は、時刻t=nTにおいて自機が上記目標位置(Xd,Yd)に到達することが確定している場合に時刻t=τ+Tにおいて自機が升目s’に存在する確率Psr(τ+T,s’)に基づいて、時刻t=nTにおいて自機が上記目標位置(Xd,Yd)に到達することが確定している場合に時刻t=τにおいて自機が升目sに存在する確率Psr(τ,s)を計算する。この計算を、すべてのτ=mT(mはn−1以下の自然数)について行うことにより、最終的に、時刻t=nTにおいて自機が上記目標位置に到達することが確定している場合に、時刻t=Tにおいて自機が各升目sに存在する確率Psr(T,s)を計算する。計算された確率Psr(t,s)は、第二自機存在確率記憶部54に格納される。
ステップS6で説明したように、Psel(w,t)は、時刻tにおいて自機が移動速度番号wを選択する確率であり、Ptrs(s,s’,w)は、時刻t=τにおいて升目sに存在する自機が、移動速度番号wの移動速度(Vxs(w),Vys(w))に従って行動単位時間Tだけ移動することによって、時刻t=τ+Tにおいて升目s’に存在している確率である。
移動確率計算部912は、升目sに存在している自機が、自機の移動速度番号wに対応した移動速度(Vxs(w),Vys(w))で行動単位時間Tだけ移動した結果、升目s’に存在している確率Ptrs(s,s’,w)を計算する。
積算部913は、上記計算されたPtrs(s,s’,w)と、第二自機存在確率記憶部54から読み出したPsr(τ+T,s’)との積Ptrs(s,s’,w)・Psr(τ+T,s’)を求める。
このようにして、移動確率計算部912と積算部913は、すべての升目s’について上記Ptrs(s,s’,w)・Psr(τ+T,s’)を計算する。
加算部914は、各升目s’ごとに上記計算されたPtrs(s,s’,w)・Psr(τ+T,s’)を加算する。すなわち、Σs’{Ptrs(s,s’,w)・Psr(τ+T,s’)}を計算する。
積算部915は、上記計算されたΣs’{Ptrs(s,s’,w)・Psr(τ+T,s’)}と、記憶部10から読み出した、時刻t=τにおける自機が移動速度番号wを選択する確率Psel(w,τ)との積Psel(w,τ)・Σs’{Ptrs(s,s’,w)・Psr(τ+T,s’)}を求める。
加算部916は、各移動速度番号wごとに求まった上記Psel(w,τ)・Σs’{Ptrs(s,s’,w)・Psr(τ+T,s’)}を加算する。すなわち、ΣwPsel(w,τ)・Σs’{Ptrs(s,s’,w)・Psr(τ+T,s’)}を計算する。
最大値抽出部919は、max(Pei(τ,s),Pbj(τ,s))を計算する。すなわち、敵機存在確率記憶部52から読み出した時刻t=τにおいて敵機が升目sに存在する確率Pei(τ,s)(i=1,・・・,I)と、敵機攻撃弾存在確率記憶部53から読み出した時刻t=τにおいて敵機の攻撃弾が升目sに存在する確率Pbj(τ,s)(j=1,・・・,J)とを比較して、最も大きい値を出力する。
減算部910は、1から、上記計算されたmax(Pei(τ,s),Pbj(τ,s))を減算した値を計算する。
積算部917は、加算部916が計算したΣwPsel(w,τ)・Σs’{Ptrs(s,s’,w)・Psr(τ+T,s’)}と、減算部910が計算した1−max(Pei(τ,s),Pbj(τ,s))との積を求める。
このようにして、第二自機存在確率計算部91は、確率Psr(τ+T,s)に基づいて、確率Psr(τ,s)を計算する。
上記の処理をすべてのτ(τ=T,…,(n−1)T)について、τが小さい順に行い、時刻t=nTにおいて自機が上記目標位置(Xd,Yd)に到達することが確定している場合の、各時刻における自機が升目sに存在する確率を求め、最終的に、時刻t=nTにおいて自機が上記目標位置(Xd,Yd)に到達することが確定している場合に、時刻t=Tにおいて自機が升目sに存在する確率を求める。これらの計算された確率は、第二自機存在確率記憶部54に格納される。
移動速度決定部11は、時刻t=0における自機が時刻t=Tにおいて到達することができる升目s0’のうち、第二自機存在確率記憶部54から読み出した確率Psr(T,s0’)を最も高くする升目に移動するように、時刻t=0における自機の移動速度を決定する。
升目の一辺の長さが、その辺に平行な方向に進む自機の速さに行動単位時間Tをかけた値に設定されている場合には、時刻t=0における自機が存在する升目s0に隣接する升目又は升目s0が、時刻t=0における自機が時刻t=Tにおいて到達することができる升目s0’となる。
以上のステップ1〜ステップ9の処理を、行動単位時間Tごとに行うことにより、各行動単位ステップにおける自機の移動速度を決定する。以上が、本実施形態の概要である。
なお、出願時における計算機の能力を考慮すると、上記探索計算における探索の深さnとしては、10〜20程度にすると望ましい。しかし、計算機の性能が今後向上すれば、探索の深さnをさらに大きな値にすることができる。
図7に示された第二自機存在確率計算部91に替えて、図8,9に示された第二自機存在確率計算部92を用いても良い。図8,9は第二自機存在確率計算部92の機能構成を例示する図である。
図8に示された第二自機存在確率計算部92の機能構成は、図7に示された第二自機存在確率計算部91の機能構成と同じである。第二自機存在確率計算部92は、図9に示された機能構成・処理を有する点で、第二自機存在確率計算部91と異なる。第二自機存在確率計算部92は、第二自機存在確率計算部91と同じ処理で求めたPsr(τ,s)を、より敵機を破壊することができるように補正したPsr’(τ,s)を計算する。
射線判定部922(図9)は、升目sに存在する自機の射線上にある升目scを選択する。例えば、自機が画面の上方向に攻撃弾を発射する場合には、升目sの座標を(X,Y)とすると、(Xc,Yc)(Xc=X,Yc>Y)を座標に持つ升目が、自機の射線上にある升目scとなる。
加算部923は、升目scに存在する敵機の存在確率Pei(τ,s)を加算する。すなわち、Σsc∈sPei(τ,s)を計算する。そして、計算されたΣsc∈sPei(τ,s)に1を加算する。
積算部924は、記憶部10から予め定められた定数bを読み出し、上記計算された1+Σsc∈sPei(τ,s)に乗算する。
積算部925は、積算部917が計算したPsr(τ,s)に、上記計算されたb(1+Σsc∈sPei(τ,s))を乗算する。これにより、敵機をより多く破壊することができる位置に、より高い確率で自機が存在するようにすることができる。
積算部925は、すべての升目sについて、上記確率b(1+Σsc∈sPei(τ,s))・Psr(τ,s)を求める。
加算部926は、積算部925がすべての升目sにすいて求めた確率b(1+Σsc∈sPei(τ,s))・Psr(τ,s)を加算する。すなわち、Σsb(1+Σsc∈sPei(τ,s))・Psr(τ,s)を計算する。
このように、加算部926と割算部927は、積算部925が求めた確率b(1+Σsc∈sPei(τ,s))・Psr(τ,s)を正規化し、ΣsPsr’(τ,s)=1となるようにする。
なお、加算部923の替わりに、最大値抽出部923’を設けても良い。最大値抽出部923’は、maxsc∈sPei(τ、s)を計算する。そして、この値に1を加算した値を積算部924に出力する。他の処理は、上述したものと同様である。
自機の位置が常にゲーム画面の中央付近にあることは、未来において不測の事態が生じた場合に、ゲーム画面端のような自機の移動が制限される状況を生み出さないためにも重要である。
このため、図7に示された第二自機存在確率計算部91に替えて、図8,10に示された第二自機存在確率計算部93を用いても良い。図8,10は第二自機存在確率計算部93の機能構成を例示する図である。
図8に示された第二自機存在確率計算部93の機能構成は、図7に示された第二自機存在確率計算部91の機能構成と同じである。第二自機存在確率計算部93は、図10に示された機能構成・処理を有する点で、第二自機存在確率計算部91と異なる。第二自機存在確率計算部93は、第二自機存在確率計算部91と同じ処理で求めたPsr(τ,s)を、自機がよりゲーム画面の中央に位置するように補正したPsr’’(τ,s)を計算する。
距離計算部932(図10)は、ゲーム画面の中央と、自機が存在する升目sとの距離rを計算する。
割算部934は、記憶部10から予め定められた定数dを読み出し、上記計算されたrで割算をして、d/rを求める。
積算部935は、積算部917が計算したPsr(τ,s)に、上記計算されたd/rを乗算して、(d/r)・Psr(τ,s)を求める。このように、ゲーム画面の中央に位置する自機の存在確率を高くすることにより、自機がよりゲーム画面の中央に位置するように制御することができる。
加算部926と割算部927は、変形例1で説明したのと同様の方法で、上記補正された確率(d/r)・Psr(τ,s)を正規化して、確率Psr’’(τ,s)を計算する。
上記実施形態では、敵機存在確率計算部42は、上記式(2)を用いて、時刻t=τにおける敵機が升目se’(i)に存在する確率Pei(τ,se’(i))に基づいて、時刻t=τ+Tにおける敵機が升目se(i)に存在する確率Pei(τ+T,se(i))を求めた。
しかし、敵機iの移動速度aの決定関数が、敵機の升目se’(i)と自機の升目sと時刻tによって、確率的に記述される場合には、敵機存在確率計算部42に替えて敵機存在確率計算部43が、上記式(2)に替えて、
Pei(τ+T,se(i))=Σs{Ps(τ,s)・Σse’(i)Σa{PAi(a,s,se’(i),τ)・Ptrei(se’(i),se(i),a)・Pei(τ,se’(i))}} …(6)
を、図12に示すように計算することにより、時刻t=τにおける敵機が升目se’(i)に存在する確率Pei(τ,se’(i))に基づいて、時刻t=τ+Tにおける敵機が升目se(i)に存在する確率Pei(τ+T,se(i))を求めても良い。
また、上記式(6)と数学的に等しい次式
Pei(τ+T,se(i))=ΣsΣse’(i)Σa{Ps(τ,s)・PAi(a,s,se’(i),τ)・Ptrei(se’(i),se(i),a)・Pei(τ,se’(i))} …(6a)
に基づいて、時刻t=τ+Tにおける敵機が升目se’(i)に存在する確率Pei(τ+T,se’(i))を求めても良い。
上記(2)式、(6)式は、敵機の未来での移動を考慮した敵機の各位置での正確な存在確率の計算方法である。
Pei(τ+T,se(i))=Σse’(i){Ptrei(se’(i),se(i),Ai(smax,se’(i),τ))・Pei(τ,se’(i))} …(2’)
Pei(τ+T,se(i))=Σse’(i)Σa{PAi(a,smax,se’(i),t−1)・Ptrei(se’(i),se(i),a)・Pei(τ,se’(i))} …(6’)
上記(2’)式、(6’)は、自機の升目sについて和を取ることを省略した代わりに、関数Aiと関数PAiが参照する升目sを、時刻t=τにおける自機の存在確率Ps(τ,s)を最大化する升目smaxとしたものである。
Pei(τ+T,se(i))=Σse’(i){Ptrei(se’(i),se(i),Ai(τ))・Pei(τ,se’(i))} …(2’’)
Pei(τ+T,se(i))=Σse’(i)Σa{PAi(a,t−1)・Ptrei
(se’(i),se(i),a)・Pei(τ,se’(i))} …(6’’) 上記(2’’)式、(6’’)は、関数Aiと関数PAiが、時刻tのみに依存することとしたものである。
上記実施形態においては、格子は画面に固定されており、t=zTにおける自機の位置が升目の中心に位置するとは限らなかった(zは整数)。そこで、t=zTにおける自機の現在位置が升目の中心に位置するように、格子を張り直しても良い。t=zTにおける自機の現在位置が升目の中心に位置するように格子を張り直すことにより、升目の一辺の長さSがS=VTである場合には、Ptr(s’,s,w)の値が必ず0か1となる。なぜなら、かかる場合には、x軸方向とy軸方向の自機の位置の変位量と、升目の一辺の長さが一致するため、升目t=zTにおいて自機が位置する升目を自機の位置の変位量(dxs,dys)だけ移動させた升目sdsは、格子上の升目とずれがなく、ぴったりと重なるからである。
また、上記シューティングゲームの自機動作制御装置・方法をコンピュータによって実現することができる。この場合、シューティングゲームの自機動作制御装置・方法の内容はプログラムによって記述される。そして、このプログラムを、図11に示すようなコンピュータで実行することにより、上記シューティングゲームの自機動作制御装置・方法の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
以上の各実施形態の他、本発明であるシューティングゲームの自機動作制御装置・方法等は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
Claims (13)
- 第一存在確率計算手段と、自機目標位置決定手段と、第二自機存在確率計算手段と、移動速度決定手段とを備えるコンピュータが、シューティングゲームの自機動作制御を行う方法であって、
選択された移動速度によって自機が移動を始める時刻tをt=0とし、
第一存在確率計算手段が、t=nT(nは任意の自然数)において自機が敵機及び敵機の攻撃弾によって破壊されないで、ゲーム画面を分割した格子を構成する各升目sに存在する確率Ps(nT,s)を求めて、第一自機存在確率記憶手段に格納する第一存在確率計算ステップと、
自機目標位置決定手段が、第一自機存在確率記憶手段から読み出した、t=nTにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで各升目sに存在する確率Ps(nT,s)のうち、その確率を最も高くする升目を選択して、その升目を目標位置とする自機目標位置決定ステップと、
第二自機存在確率計算手段が、時刻t=nTにおいて自機が上記目標位置に到達するとした場合に、時刻t=Tにおいて自機が各升目sに存在する確率Psr(T,s)を計算して、第二自機存在確率記憶手段に格納する第二自機存在確率計算ステップと、
移動速度決定手段が、時刻t=0における自機が時刻t=Tにおいて到達することができる升目s0’のうち、第二自機存在確率記憶手段から読み出した確率Psr(T,s0’)を最も高くする升目に移動するように、時刻t=0における自機の移動速度を決定する移動速度決定ステップと、
を有し、
上記第一存在確率計算ステップは、
敵機の初期存在確率計算手段が、時刻t=0における敵機が、各升目sに存在している確率Pei(0,s)を求め、敵機存在確率記憶手段に格納する敵機の初期存在確率計算ステップと、
敵機攻撃弾の初期存在確率計算手段が、時刻t=0における敵機の攻撃弾が、各升目sに存在している確率Pbj(0,s)を求め、敵機攻撃弾存在確率記憶手段に格納する敵機攻撃弾の初期存在確率計算ステップと、
自機の初期存在確率計算手段が、時刻t=0における自機が、格子に分割されたゲーム画面において、その格子を構成する各升目sに存在している確率Ps(0,s)を求め、第一存在確率記憶手段に格納する自機の初期存在確率計算ステップと、
敵機存在確率計算手段が、時刻t=τにおいて敵機が升目se’(i)に存在する確率Pei(τ,se’ (i))と、時刻t=τと升目se’(i)と升目sの位置によって移動速度を決定する移動速度決定関数に基づいて決定される移動速度aに従って敵機が行動単位時間Tだけ移動することによって升目se’ (i)から升目se(i)に移動する確率と、時刻t=τにおいて自機が升目sに存在する確率との積を、すべての升目se’と升目sの組ごとに求め、これら求まった積を加算することによって、時刻t=τ+Tにおいて敵機が升目se(i)に存在する確率Pei(τ+T,se(i))を、すべてのτ=kT(kはn−1以下の自然数)について求めて、敵機存在確率記憶手段に格納する敵機存在確率計算ステップと、
敵機攻撃弾存在確率計算手段が、時刻t=τにおいて敵機の攻撃弾が升目s’に存在する確率Pbj(τ,s’)と、敵機の攻撃弾が移動速度Vbjに従って行動単位時間Tだけ移動することによって升目s’から升目sに移動する確率との積を、すべての升目s’ごとに求め、これら求まった積を加算することによって、時刻t=τ+Tにおいて敵機の攻撃弾が升目sに存在する確率Pbj(τ+T,s)を、すべての升目sとτ=kT(kはn−1以下の自然数)の組について求めて、敵機攻撃弾存在確率記憶手段に格納する敵機攻撃弾存在確率計算ステップと、
最大値抽出手段が、すべてのτ+Tと升目sの組ごとに、上記敵機存在確率記憶手段から読み出した時刻t=τ+Tにおいて敵機が升目sに存在する確率Pei(τ+T,s)と、上記敵機攻撃弾存在確率記憶手段から読み出した時刻t=τ+Tにおいて敵機の攻撃弾が升目sに存在する確率Pbj(τ+T,s)との大小関係を比較し、最も大きい確率を出力する最大値抽出ステップと、
第一自機存在確率計算手段が、時刻t=τにおいて自機が升目s’に存在する確率Ps(τ,s’)と、自機が移動速度wを選択する確率と、自機が移動速度wに従って行動単位時間Tだけ移動することによって升目s’から升目sに移動する確率Ptr(s’,s,w)との積を、すべての升目s’と自機の移動速度wの組ごとに求め、これら求まった積を加算した値に、上記最大値抽出手段がτ+Tと升目sの組について出力した確率を1から引いた値を乗算することによって、時刻t=τ+Tにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで升目sに存在する確率Ps(τ+T,s)を、すべての升目sとτ=kT(kはn−1以下の自然数)の組について求めて、第一自機存在確率記憶手段に格納する第一自機存在確率計算ステップと、
から構成され、
上記第二自機存在確率計算ステップは、
第二自機存在確率計算手段が、時刻t=nTにおいて自機が上記目標位置に到達するとした場合に時刻t=τ+Tにおいて自機が升目s’に存在する確率Psr(τ+T,s’)と、自機が移動速度wを選択する確率と、自機が移動速度wに従って行動単位時間Tだけ移動することによって升目sから升目s’に移動する確率Ptr(s,s’,w)との積を、すべての升目s’と自機の移動速度wの組ごとに求め、これら求まった積を加算した値に、上記最大値抽出手段がTと升目sの組について求めた確率を1から引いた値を乗算することによって、時刻t=nTにおいて自機が上記目標位置に到達するとした場合に時刻t=τにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで升目sに存在する確率Psr(t,s)を、すべての升目sとτ=mT(mはn−1以下の自然数)の組について求めて、第二自機存在確率記憶手段に格納する第二自機存在確率計算ステップ、
である、
ことを特徴とするシューティングゲームの自機動作制御方法。 - 請求項1に記載のシューティングゲームの自機動作制御方法において、
上記敵機存在確率計算ステップは、
敵機存在確率計算手段が、時刻t=τにおいて敵機が升目se’(i)に存在する確率Pei(τ,se’ (i))と、時刻t=τと升目se’(i)と升目sの位置によって移動速度を決定する移動速度決定関数に基づいて敵機が移動速度aを選択する確率と、敵機が移動速度aに従って行動単位時間Tだけ移動することによって升目se’ (i)から升目se(i)に移動する確率と、時刻t=τにおいて自機が升目sに存在する確率との積を、すべての移動速度aと升目se’と升目sの組ごとに求め、これら求まった積を加算することによって、時刻t=τ+Tにおいて敵機が升目se(i)に存在する確率Pei(τ+T,se(i))を、すべてのτ=kT(kはn−1以下の自然数)について求めて、敵機存在確率記憶手段に格納するステップである、
ことを特徴とするシューティングゲームの自機動作制御方法。 - 請求項1に記載のシューティングゲームの自機動作制御方法において、
上記敵機存在確率計算ステップは、
敵機存在確率計算手段が、時刻t=τにおいて敵機が升目se’(i)に存在する確率Pei(τ,se’ (i))と、時刻t=τと升目se’(i)と自機が最も高い確率で存在する升目sの位置によって移動速度を決定する移動速度決定関数に基づいて決定される移動速度aに従って敵機が行動単位時間Tだけ移動することによって升目se’ (i)から升目se(i)に移動する確率と、時刻t=τにおいて自機が升目sに存在確率との積を、すべての升目se’ごとに求め、これら求まった積を加算することによって、時刻t=τ+Tにおいて敵機が升目se(i)に存在する確率Pei(τ+T,se(i))を、すべてのτ=kT(kはn−1以下の自然数)について求めて、敵機存在確率記憶手段に格納する敵機存在確率計算ステップである、
ことを特徴とするシューティングゲームの自機動作制御方法。 - 請求項1に記載のシューティングゲームの自機動作制御方法において、
上記敵機存在確率計算ステップは、
敵機存在確率計算手段が、時刻t=τにおいて敵機が升目se’(i)に存在する確率Pei(τ,se’ (i))と、時刻t=τと升目se’(i)と自機が最も高い確率で存在する升目sの位置によって移動速度を決定する移動速度決定関数に基づいて敵機が移動速度aを選択する確率と、敵機が移動速度aに従って行動単位時間Tだけ移動することによって升目se’ (i)から升目se(i)に移動する確率と、時刻t=τにおいて自機が升目sに存在する確率との積を、すべての移動速度aと升目se’の組ごとに求め、これら求まった積を加算することによって、時刻t=τ+Tにおいて敵機が升目se(i)に存在する確率Pei(τ+T,se(i))を、すべてのτ=kT(kはn−1以下の自然数)について求めて、敵機存在確率記憶手段に格納するステップである、
ことを特徴とするシューティングゲームの自機動作制御方法。 - 請求項1に記載のシューティングゲームの自機動作制御方法において、
上記敵機存在確率計算ステップは、
敵機存在確率計算手段が、時刻t=τにおいて敵機が升目se’(i)に存在する確率Pei(τ,se’ (i))と、時刻t=τによって移動速度を決定する移動速度決定関数に基づいて決定される移動速度aに従って敵機が行動単位時間Tだけ移動することによって升目se’ (i)から升目se(i)に移動する確率と、時刻t=τにおいて自機が升目sに存在確率との積を、すべての升目se’ごとに求め、これら求まった積を加算することによって、時刻t=τ+Tにおいて敵機が升目se(i)に存在する確率Pei(τ+T,se(i))を、すべてのτ=kT(kはn−1以下の自然数)について求めて、敵機存在確率記憶手段に格納する敵機存在確率計算ステップである、
ことを特徴とするシューティングゲームの自機動作制御方法。 - 請求項1に記載のシューティングゲームの自機動作制御方法において、
上記敵機存在確率計算ステップは、
敵機存在確率計算手段が、時刻t=τにおいて敵機が升目se’(i)に存在する確率Pei(τ,se’ (i))と、時刻t=τによって移動速度を決定する移動速度決定関数に基づいて敵機が移動速度aを選択する確率と、敵機が移動速度aに従って行動単位時間Tだけ移動することによって升目se’ (i)から升目se(i)に移動する確率と、時刻t=τにおいて自機が升目sに存在する確率との積を、すべての移動速度aと升目se’の組ごとに求め、これら求まった積を加算することによって、時刻t=τ+Tにおいて敵機が升目se(i)に存在する確率Pei(τ+T,se(i))を、すべてのτ=kT(kはn−1以下の自然数)について求めて、敵機存在確率記憶手段に格納するステップである、
ことを特徴とするシューティングゲームの自機動作制御方法。 - 請求項1に記載したシューティングゲームの自機動作制御方法であって、
上記第二自機存在確率計算ステップは、
加算手段が、上記敵機存在確率記憶手段から読み出した、自機の射線上にある升目se(i)に存在する敵機の存在確率Pei(t,se(i))を加算する加算ステップと、
第一乗算手段が、上記すべての升目sと時刻tの組ごとに求まった確率Psr(t,s)に、上記加算ステップで求まった加算値に1を加えた値に比例した値を乗算する第一乗算ステップと、
正規化手段が、上記第一乗算ステップで求まった値をそれぞれ、上記乗算ステップで求まった値を時刻tにおけるすべての升目sについて足し合わせた値で割算することにより上記確率Psr(t,s)を正規化して、第二自機存在確率記憶手段に格納する正規化ステップと、
をさらに有する、
ことを特徴とするシューティングゲームの自機動作制御方法。 - 請求項1〜7に記載したシューティングゲームの自機動作制御方法であって、
上記第二自機存在確率計算ステップは、
第二乗算手段が、上記すべての升目sと時刻tの組ごとに求まった確率Psr(t,s)に、画面の中央部と上記升目sに存在する自機との距離に反比例した値を乗算する第二乗算ステップと、
正規化手段が、上記第二乗算ステップで求まった値をそれぞれ、上記第二乗算ステップで求まった値を時刻tにおけるすべての升目sについて足し合わせた値で割算することにより上記確率Psr(t,s)を正規化して、第二自機存在確率記憶手段に格納する正規化ステップと、
をさらに有する、
ことを特徴とするシューティングゲームの自機動作制御方法。 - 請求項1〜8に記載のシューティングゲームの自機動作制御方法であって、
上記ゲーム画面を分割した各升目の一辺の長さは、自機の形状に内接する円の直径と敵機の攻撃弾の形状に内接する円の直径の和の半分の値の3分の1以下である、
ことを特徴とするシューティングゲームの自機動作制御方法。 - 請求項1〜8に記載のシューティングゲームの自機動作制御方法であって、
上記ゲーム画面を分割した各升目の一辺の長さは、その辺に平行な方向に進む自機の速さに行動単位時間Tをかけたものである、
ことを特徴とするシューティングゲームの自機動作制御方法。 - 選択された移動速度によって自機が移動を始める時刻tをt=0とし、
第一自機存在確率記憶手段と、
第二自機存在確率記憶手段と、
t=nT(nは任意の自然数)において自機が敵機及び敵機の攻撃弾によって破壊されないで、ゲーム画面を分割した格子を構成する各升目sに存在する確率Ps(nT,s)を求めて、第一自機存在確率記憶手段に格納する第一存在確率計算手段と、
第一自機存在確率記憶手段から読み出した、t=nTにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで各升目sに存在する確率Ps(nT,s)のうち、その確率を最も高くする升目を選択して、その升目を目標位置とする自機目標位置決定手段と、
時刻t=nTにおいて自機が上記目標位置に到達するとした場合に、時刻t=Tにおいて自機が各升目sに存在する確率Psr(T,s)を計算して、第二自機存在確率記憶手段に格納する第二自機存在確率計算手段と、
時刻t=0における自機が時刻t=Tにおいて到達することができる升目s0’のうち、第二自機存在確率記憶手段から読み出した確率Psr(T,s0’)を最も高くする升目に移動するように、時刻t=0における自機の移動速度を決定する移動速度決定手段と、
を有し、
上記第一存在確率計算手段は、
時刻t=0における敵機が、各升目sに存在している確率Pei(0,s)を求め、敵機存在確率記憶手段に格納する敵機の初期存在確率計算手段と、
時刻t=0における敵機の攻撃弾が、各升目sに存在している確率Pbj(0,s)を求め、敵機攻撃弾存在確率記憶手段に格納する敵機攻撃弾の初期存在確率計算手段と、
時刻t=0における自機が、格子に分割されたゲーム画面において、その格子を構成する各升目sに存在している確率Ps(0,s)を求め、第一存在確率記憶手段に格納する自機の初期存在確率計算手段と、
時刻t=τにおいて敵機が升目se’(i)に存在する確率Pei(τ,se’ (i))と、時刻t=τと升目se’(i)と升目sの位置によって移動速度を決定する移動速度決定関数に基づいて決定される移動速度aに従って敵機が行動単位時間Tだけ移動することによって升目se’ (i)から升目se(i)に移動する確率と、時刻t=τにおいて自機が升目sに存在する確率との積を、すべての升目se’と升目sの組ごとに求め、これら求まった積を加算することによって、時刻t=τ+Tにおいて敵機が升目se(i)に存在する確率Pei(τ+T,se(i))を、すべてのτ=kT(kはn−1以下の自然数)について求めて、敵機存在確率記憶手段に格納する敵機存在確率計算手段と、
時刻t=τにおいて敵機の攻撃弾が升目s’に存在する確率Pbj(τ,s’)と、敵機の攻撃弾が移動速度Vbjに従って行動単位時間Tだけ移動することによって升目s’から升目sに移動する確率との積を、すべての升目s’ごとに求め、これら求まった積を加算することによって、時刻t=τ+Tにおいて敵機の攻撃弾が升目sに存在する確率Pbj(τ+T,s)を、すべての升目sとτ=kT(kはn−1以下の自然数)の組について求めて、敵機攻撃弾存在確率記憶手段に格納する敵機攻撃弾存在確率計算手段と、
すべてのτ+Tと升目sの組ごとに、上記敵機存在確率記憶手段から読み出した時刻t=τ+Tにおいて敵機が升目sに存在する確率Pei(τ+T,s)と、上記敵機攻撃弾存在確率記憶手段から読み出した時刻t=τ+Tにおいて敵機の攻撃弾が升目sに存在する確率Pbj(τ+T,s)との大小関係を比較し、最も大きい確率を出力する最大値抽出手段と、
時刻t=τにおいて自機が升目s’に存在する確率Ps(τ,s’)と、自機が移動速度wを選択する確率と、自機が移動速度wに従って行動単位時間Tだけ移動することによって升目s’から升目sに移動する確率Ptr(s’,s,w)との積を、すべての升目s’と自機の移動速度wの組ごとに求め、これら求まった積を加算した値に、上記最大値抽出手段がτ+Tと升目sの組について出力した確率を1から引いた値を乗算することによって、時刻t=τ+Tにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで升目sに存在する確率Ps(τ+T,s)を、すべての升目sとτ=kT(kはn−1以下の自然数)の組について求めて、第一自機存在確率記憶手段に格納する第一自機存在確率計算手段と、
から構成され、
上記第二自機存在確率計算手段は、
時刻t=nTにおいて自機が上記目標位置に到達するとした場合に時刻t=τ+Tにおいて自機が升目s’に存在する確率Psr(τ+T,s’)と、自機が移動速度wを選択する確率と、自機が移動速度wに従って行動単位時間Tだけ移動することによって升目sから升目s’に移動する確率Ptr(s,s’,w)との積を、すべての升目s’と自機の移動速度wの組ごとに求め、これら求まった積を加算した値に、上記最大値抽出手段がTと升目sの組について求めた確率を1から引いた値を乗算することによって、時刻t=nTにおいて自機が上記目標位置に到達するとした場合に時刻t=τにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで升目sに存在する確率Psr(t,s)を、すべての升目sとτ=mT(mはn−1以下の自然数)の組について求めて、第二自機存在確率記憶手段に格納する第二自機存在確率計算手段、
であることを特徴とするシューティングゲームの自機動作制御装置。 - 選択された移動速度によって自機が移動を始める時刻tをt=0とし、
第一存在確率計算手段が、t=nT(nは任意の自然数)において自機が敵機及び敵機の攻撃弾によって破壊されないで、ゲーム画面を分割した格子を構成する各升目sに存在する確率Ps(nT,s)を求めて、第一自機存在確率記憶手段に格納する第一存在確率計算ステップと、
自機目標位置決定手段が、第一自機存在確率記憶手段から読み出した、t=nTにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで各升目sに存在する確率Ps(nT,s)のうち、その確率を最も高くする升目を選択して、その升目を目標位置とする自機目標位置決定ステップと、
第二自機存在確率計算手段が、時刻t=nTにおいて自機が上記目標位置に到達するとした場合に、時刻t=Tにおいて自機が各升目sに存在する確率Psr(T,s)を計算して、第二自機存在確率記憶手段に格納する第二自機存在確率計算ステップと、
移動速度決定手段が、時刻t=0における自機が時刻t=Tにおいて到達することができる升目s0’のうち、第二自機存在確率記憶手段から読み出した確率Psr(T,s0’)を最も高くする升目に移動するように、時刻t=0における自機の移動速度を決定する移動速度決定ステップと、
をコンピュータに実行させるためのシューティングゲーム処理プログラムであって、
上記第一存在確率計算ステップは、
敵機の初期存在確率計算手段が、時刻t=0における敵機が、各升目sに存在している確率Pei(0,s)を求め、敵機存在確率記憶手段に格納する敵機の初期存在確率計算ステップと、
敵機攻撃弾の初期存在確率計算手段が、時刻t=0における敵機の攻撃弾が、各升目sに存在している確率Pbj(0,s)を求め、敵機攻撃弾存在確率記憶手段に格納する敵機攻撃弾の初期存在確率計算ステップと、
自機の初期存在確率計算手段が、時刻t=0における自機が、格子に分割されたゲーム画面において、その格子を構成する各升目sに存在している確率Ps(0,s)を求め、第一存在確率記憶手段に格納する自機の初期存在確率計算ステップと、
敵機存在確率計算手段が、時刻t=τにおいて敵機が升目se’(i)に存在する確率Pei(τ,se’ (i))と、時刻t=τと升目se’(i)と升目sの位置によっ
て移動速度を決定する移動速度決定関数に基づいて決定される移動速度aに従って敵機が行動単位時間Tだけ移動することによって升目se’ (i)から升目se(i)に移動
する確率と、時刻t=τにおいて自機が升目sに存在する確率との積を、すべての升目se’と升目sの組ごとに求め、これら求まった積を加算することによって、時刻t=τ+Tにおいて敵機が升目se(i)に存在する確率Pei(τ+T,se(i))を、すべてのτ=kT(kはn−1以下の自然数)について求めて、敵機存在確率記憶手段に格納する敵機存在確率計算ステップと、
敵機攻撃弾存在確率計算手段が、時刻t=τにおいて敵機の攻撃弾が升目s’に存在する確率Pbj(τ,s’)と、敵機の攻撃弾が移動速度Vbjに従って行動単位時間Tだけ移動することによって升目s’から升目sに移動する確率との積を、すべての升目s’ごとに求め、これら求まった積を加算することによって、時刻t=τ+Tにおいて敵機の攻撃弾が升目sに存在する確率Pbj(τ+T,s)を、すべての升目sとτ=kT(kはn−1以下の自然数)の組について求めて、敵機攻撃弾存在確率記憶手段に格納する敵機攻撃弾存在確率計算ステップと、
最大値抽出手段が、すべてのτ+Tと升目sの組ごとに、上記敵機存在確率記憶手段から読み出した時刻t=τ+Tにおいて敵機が升目sに存在する確率Pei(τ+T,s)と、上記敵機攻撃弾存在確率記憶手段から読み出した時刻t=τ+Tにおいて敵機の攻撃弾が升目sに存在する確率Pbj(τ+T,s)との大小関係を比較し、最も大きい確率を出力する最大値抽出ステップと、
第一自機存在確率計算手段が、時刻t=τにおいて自機が升目s’に存在する確率Ps(τ,s’)と、自機が移動速度wを選択する確率と、自機が移動速度wに従って行動単位時間Tだけ移動することによって升目s’から升目sに移動する確率Ptr(s’,s,w)との積を、すべての升目s’と自機の移動速度wの組ごとに求め、これら求まった積を加算した値に、上記最大値抽出手段がτ+Tと升目sの組について出力した確率を1から引いた値を乗算することによって、時刻t=τ+Tにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで升目sに存在する確率Ps(τ+T,s)を、すべての升目sとτ=kT(kはn−1以下の自然数)の組について求めて、第一自機存在確率記憶手段に格納する第一自機存在確率計算ステップと、
から構成され、
上記第二自機存在確率計算ステップは、
第二自機存在確率計算手段が、時刻t=nTにおいて自機が上記目標位置に到達するとした場合に時刻t=τ+Tにおいて自機が升目s’に存在する確率Psr(τ+T,s’)と、自機が移動速度wを選択する確率と、自機が移動速度wに従って行動単位時間Tだけ移動することによって升目sから升目s’に移動する確率Ptr(s,s’,w)との積を、すべての升目s’と自機の移動速度wの組ごとに求め、これら求まった積を加算した値に、上記最大値抽出手段がTと升目sの組について求めた確率を1から引いた値を乗算することによって、時刻t=nTにおいて自機が上記目標位置に到達するとした場合に時刻t=τにおいて自機が敵機及び敵機の攻撃弾によって破壊されないで升目sに存在する確率Psr(t,s)を、すべての升目sとτ=mT(mはn−1以下の自然数)の組について求めて、第二自機存在確率記憶手段に格納する第二自機存在確率計算ステップ、
であることを特徴とするシューティングゲーム処理プログラム。 - 請求項12記載のシューティングゲーム処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006202527A JP4804253B2 (ja) | 2006-07-25 | 2006-07-25 | シューティングゲームの自機動作制御方法、装置、プログラム及びその記録媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006202527A JP4804253B2 (ja) | 2006-07-25 | 2006-07-25 | シューティングゲームの自機動作制御方法、装置、プログラム及びその記録媒体 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2008023268A JP2008023268A (ja) | 2008-02-07 |
| JP4804253B2 true JP4804253B2 (ja) | 2011-11-02 |
Family
ID=39114504
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006202527A Expired - Fee Related JP4804253B2 (ja) | 2006-07-25 | 2006-07-25 | シューティングゲームの自機動作制御方法、装置、プログラム及びその記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4804253B2 (ja) |
-
2006
- 2006-07-25 JP JP2006202527A patent/JP4804253B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2008023268A (ja) | 2008-02-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7476235B2 (ja) | 仮想オブジェクトの制御方法、装置、デバイス及びコンピュータプログラム | |
| US20230330530A1 (en) | Prop control method and apparatus in virtual scene, device, and storage medium | |
| Uriarte et al. | Game-tree search over high-level game states in RTS games | |
| JP7170397B2 (ja) | プログラム、画像処理方法、及び画像処理装置 | |
| US11628370B2 (en) | Combat game providing device and method | |
| Świechowski et al. | Combining utility ai and mcts towards creating intelligent agents in video games, with the use case of tactical troops: Anthracite shift | |
| Moy et al. | The application of AlphaZero to wargaming | |
| JP2023548802A (ja) | ステージ画面の表示方法、装置、及び機器 | |
| US20180126274A1 (en) | Battle-attribute-based arrangement of map areas | |
| JP4804253B2 (ja) | シューティングゲームの自機動作制御方法、装置、プログラム及びその記録媒体 | |
| CN112933600B (zh) | 虚拟对象控制方法、装置、计算机设备和存储介质 | |
| CN114307129B (zh) | 游戏交互控制方法、装置、设备及介质 | |
| JP4996267B2 (ja) | 敵機行動制御方法、装置、プログラム及びその記録媒体 | |
| JP4996275B2 (ja) | 難易度判定方法、装置、プログラム | |
| JP4804226B2 (ja) | シューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体 | |
| CN115944924A (zh) | 模型训练方法、行动策略制定方法、服务器及存储介质 | |
| CN114733194A (zh) | 一种游戏资源预加载方法以及装置 | |
| JP4804230B2 (ja) | シューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体 | |
| JP4976754B2 (ja) | シューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体 | |
| EP4091078A1 (en) | Cluster update accelerator circuit | |
| Bernstein et al. | Evaluating the Effectiveness of Multi-Agent Organisational Paradigms in a Real-Time Strategy Environment: Engineering Multiagent Systems Track | |
| CN115671733B (zh) | 虚拟对象的行为预测方法、装置、存储介质与电子设备 | |
| CN120571233A (zh) | 虚拟对象的显示方法、装置、设备、介质和程序产品 | |
| JP4804240B2 (ja) | シューティングゲームの敵機攻撃制御方法、その装置、そのプログラム及びその記録媒体 | |
| JP5301391B2 (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 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110629 |
|
| 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: 20110802 |
|
| 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: 20110809 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4804253 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: 20140819 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 |
|
| LAPS | Cancellation because of no payment of annual fees |