説明

シューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体

【課題】よりゲーム性の増したシューティングゲームを実現するための敵機の動作制御技術を提供する。
【解決手段】状態遷移確率計算部20が、すべての状態sと行動(k,lau)と遷移先の状態s’の組み合わせについて、状態sにある敵機が行動(k,lau)を選択した結果状態s’に遷移する状態遷移確率Pを計算する。報酬決定部30が、すべての状態sと行動(k,lau)と遷移先の状態s’の組み合わせについての報酬rを決定する。動作計画部40が、上記状態遷移確率Pと上記報酬rから、ダイナミックプログラミング法により、方策πを求める。行動決定部60は、上記方策πから、各状態sにある敵機の行動aを決定し、敵機の位置を更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画面上に自機と敵機を表示し、自機を操作して、自機に攻撃を加えてくる敵機と闘うシューティングゲームの処理方法、その装置、そのプログラム及びその記録媒体に関する。
【背景技術】
【0002】
シューティングゲームの処理方法、特に敵機の動作を制御する方法としては、自機の位置を考慮しないアルゴリズム、例えば、自機の位置とは無関係に敵機が一定方向に下降し続けるアルゴリズムや、自機の位置とは無関係に敵機が静止し続けるアルゴリズムを採用する方法があった。また、自機の位置を考慮するアルゴリズムとしては、例えば、自機の位置に近づくように敵機が動くアルゴリズムや、常に自機との位置を一定距離・方向に保つように敵機が動くアルゴリズムがあった。
また、チェス、オセロ、将棋といって非アクションの思考ゲームにおいては、人工知能の技術を導入したアルゴリズムの研究が行われている(例えば、非特許文献1参照)。
【非特許文献1】Jonathan Schaeffer,H.Jaap van den Herik,“Games,computers,and artificial intelligence”,Artificial Intelligence,2002,Vol.134,p1-7
【非特許文献2】川野洋「未知不均一潮流中での航行を考慮した劣駆動水中ロボットの動作計画と制御」,JSAI2005,人工知能学会(第19回),1D1-04,2005年
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、従来技術による敵機の行動制御アルゴリズムは、予めプログラムによって決められたものであり、自機の攻撃を意図的に避けたり、敵機自身が自分の位置を自機への攻撃に有利な位置に誘導するといった知的な動作をするものはなかった。
また、各プレイヤーの自機操作の癖を考慮した敵機攻撃弾発射アルゴリズムの自動的な更新も行われていなかったため、ユーザが一度そのゲームに習熟してしまうと、ユーザがすぐにそのゲームに飽きてしまうという問題があった。
そのような問題を解くためには、人工知能の技術を導入するのが有効であると考えられるが、現在人工知能におけるゲームの研究は、チェス、オセロ、将棋といった非アクションの思考ゲームが中心であり、人工知能の技術をシューティングゲームのようなアクションゲームに応用する試みはなかった。
【0004】
また、チェス、オセロ、将棋といった思考ゲームを解くための人工知能技術の研究は、効率的に深い探索計算を行うための手法の開発に集中している(例えば、非特許文献1参照。)。もちろん、シューティングゲームにおいても、知的な敵機の動作アルゴリズムを開発するためには、探索技術は重要である。しかし、シューティングゲームにおいて、探索の深さに関する要求は低く、むしろ、いかにしてアクションゲームにおいて求められているレベルの実時間性を実現するかが大事である。しかし、そのような要求を満たす技術はなかった。
【課題を解決するための手段】
【0005】
本発明によれば、敵機の自機位置からの相対位置を状態の変数とし、敵機の移動速度を行動の変数とするマルコフ状態遷移モデルを用いて、敵機の行動を選択するシューティングゲーム処理方法において、変位量計算手段が、敵機の各行動と自機の各行動の組み合わせごとに、相対位置の変位量を求める。第1状態遷移確率計算手段が、上記マルコフ状態遷移モデルのある状態における、その状態を構成する相対位置と同じ次元を持つ格子を、上記敵機の各行動と自機の各行動の組み合わせごとに求まった変位量だけ平行移動させ、その他の格子との共通部分の面積に比例した確率を、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率として求める。乗算手段が、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率に、自機に行動の種類の数で1を割った値を乗算する。第2状態遷移確率計算手段が、自機のすべての行動について、上記乗算過程で求まった値の和を取ることにより、敵機が各行動を取ったときの状態遷移確率を求める。報酬決定手段が、状態と行動と遷移先の状態の各組み合わせについての報酬を決定する。動作計画手段が、上記敵機が各行動を取ったときの状態遷移確率と上記報酬を用いて、マルコフ状態遷移モデルにおける動作計画法に基づき、敵機行動方策データを求める。状態獲得手段が、敵機の現在の状態を獲得する。敵機行動選択手段が、上記獲得された敵機の現在の状態と上記敵機行動方策データに基づいて敵機の行動を選択する。
【発明の効果】
【0006】
本発明により、シューティングゲームにおける敵機の動作がより知的になり、これまで以上に、ゲーム性の増したシューティングゲームが実現された。また、プレイヤーの自機操作の癖を考慮した敵機動作アルゴリズムの更新も可能になり、今までよりも飽きが来にくいゲームを実現することができる。
【発明を実施するための最良の形態】
【0007】
[理論的背景]
<シューティングゲーム>
図3に、本発明による処理の対象となるシューティングゲームを例示する。画面上には、自機1と自機1の攻撃弾3、敵機2と敵機2の攻撃弾4が表示される。攻撃弾3、敵機2、攻撃弾4は、複数存在していても良い。自機1、敵機2、攻撃弾3、攻撃弾4は、X軸とY軸で構成される2次元の平面上を位置するものとする。
ユーザは、自機1を操作して、敵機2と闘う。ユーザは、一回の操作で、W種類の速度(方向と速さ)で、行動単位時間Tだけ自機を移動することができる。自機1が取り得るW種類の移動速度(方向と速さ)(Vsx(w),Vsy(w))は予め決められており、それぞれの移動速度(Vsx(w),Vsy(w))には、移動速度番号w(w=1,…,W)が付けられているものとする。以下では、移動速度番号wを選択する行動のことを行動(w)という。また、ユーザは、W種類の速度による移動と同時に、敵機2を攻撃するための攻撃弾3を発射する操作をすることができる。
【0008】
敵機2は、行動単位時間Tごとに、K種類の移動速度(方向と速さ)で行動することができる。敵機2が取り得るK種類の移動速度(Vex(k),Vey(k))は予め決められており、それぞれの移動速度(Vex(k),Vey(k))には、移動速度番号k(k=1,…,K)が付けられているものとする。また、敵機2は移動と同時に、攻撃弾4を発射することができる。攻撃弾発射フラグをlauとし、lau=1のときに敵機2が攻撃弾4を発射、lau=0のときに敵機2が攻撃弾4を発射しないと定義されているものとする。
自機1が、敵機2及び敵機2が発射する攻撃弾4と衝突した場合には、自機1は破壊され、そこでゲームオーバーとなる。逆に、自機1の攻撃弾3が敵機2に衝突した場合には、敵機2は破壊される。自機1の攻撃弾3によりすべての敵機2を破壊した場合には、ユーザは、そのゲームに勝利することになる。
本発明では、このようなシューティングゲームにおける敵機2の動作の制御に、以下で説明するマルコフ状態遷移モデルを用いた動作計画法を用いる。
【0009】
<マルコフ状態遷移モデル>
次に、本発明の前提知識となるマルコフ状態遷移モデル及びマルコフ状態遷移モデルを用いた動作計画法について説明する。
環境を以下のようにモデル化したものが、マルコフ状態遷移モデルである。環境のとりうる離散的な状態の集合をS={s ,s,…,s}、行動主体が取り得る行動の集合をA={a,a,…a}と表す。環境中のある状態 s ∈ Sにおいて、行動主体がある行動 a を 実行すると、環境は確率的に状態 s' ∈Sへ遷移する。その遷移確率を
P(s,s’,a)=Pr{st+1=s’|s=s,a=a}
により表す。このとき環境から行動主体へ報酬rが確率的に与えられるが、その期待値を
R(s,s’,a)=E{rt |s=s, a=a,st+1=s’}
とする。行動主体の各時刻における意志決定は方策関数
π(s,a)=Pr{a=a|s=s}
によって表される。π(s,a)は、全状態s,全行動aにおいて定義される。方策関数π(s,a)は、単に方策π とも呼ばれる。
すべての状態s、行動a、遷移先の状態s’の組み合わせについての遷移確率P(s,s’,a)と報酬R(s,s’,a)の値が定まっていれば、ダイナミックプログラミング(Dynamic Programming)法により、方策πを計算することができる(例えば、下記参考文献1参照)。ダイナミックプログラミング法の処理は、周知技術であるため説明は省略する。
【0010】
上記ダイナミックプログラミング法により計算された方策πから、各状態sにおける最適な行動aを決定することができる。以上が、マルコフ状態遷移モデルを用いた動作計画法の概要である。
(参考文献1) 三上 貞芳、皆川 雅章 共訳、R.S.Sutton、A.G.Barto 原著「強化学習」森北出版、1998、pp.94-118
上記のようなシューティングゲームに、上記マルコフ状態遷移モデルを用いた動作計画法を適用するために、以下で述べる実施形態では、マルコフ状態遷移モデルにおけるマルコフ空間を、敵機の自機位置から相対距離(X,Y)と、敵機の残存攻撃弾数Bの2つの変数で構成する。すなわち、状態sは、敵機の自機位置から相対距離(X,Y)と、敵機の残存攻撃弾数Bで離散的に表現されることになる。なお、マルコフ状態遷移モデルにおけるマルコフ空間を、敵機の自機位置から相対距離(X,Y)のみで構成されるようにしても良い。また、敵機キャラクターが、例えば自動車のような、機体の向きに沿って進むものであるならば、敵機の方位角を用いて、マルコフ空間を構成しても良い。すなわち、敵機キャラクターの自機位置からの相対距離以外の変数で、マルコフ空間を構成するようにしても良い。
【0011】
また、以下で述べる本実施形態では、マルコフ空間内での行動aは、敵機の移動速度番号kと、攻撃弾発射フラグlauの2つの変数から構成されるものとする。なお、マルコフ空間を敵機の自機位置からの相対距離(X,Y)のみで構成する場合には、行動aを敵機の移動速度番号kのみから構成するようにしても良い。
【0012】
[実施形態]
図1と図2を参照して、本発明によるシューティングゲーム処理装置100について説明する。図1は、シューティングゲーム処理装置100の機能構成を例示する図である。図2は、シューティングゲーム処理装置100の処理フローを例示する図である。
シューティングゲーム処理装置100は、例えば、記憶部10、状態遷移確率計算部20、報酬決定部30、動作計画部40、敵機行動方策データ50、行動決定部60、表示部70から構成される。
状態遷移確率計算部20は、例えば、変位量計算部21、第1状態遷移確率計算部22、乗算部23、第2状態遷移確率計算部24から構成される。報酬決定部30は、例えば、距離計算部31、命中率計算部32、第1射線判定部33、第2射線判定部34、設定状態検出部35、一時記憶部38、入力部39から構成される。行動決定部60は、例えば、状態獲得部61、敵機行動選択部62、敵機位置計算部63から構成される。
【0013】
<ステップ1>
状態遷移確率計算部20の変位量計算部21は、敵機の行動(k,lau)と自機の行動(w)の各組み合わせごとに、敵機の自機位置からの相対位置の変位量(dX,dY)を求める。具体的には、状態遷移確率計算部20の変位量計算部21は、記憶部10から読み出した、敵機が行動(k,lau)を選択した場合の速度(Vex(k),Vey(k))と、自機が行動(w)を選択した場合の速度(Vsx(w),Vsy(w))と、自機と敵機の行動単位時間をTとを用いて、
dX=(Vex(k)−Vsx(w))×T
dY=(Vey(k)−Vsy(w))×T
を、敵機の行動(k,lau)と自機の行動(w)のすべての組み合わせについて計算する。計算された敵機の自機位置からの相対位置の変位量(dX,dY)は、第1状態遷移確率計算部22に出力される。
【0014】
<ステップ2>
第1状態遷移確率計算部22は、すべての状態s(X,Y,B)と行動(w,k,lau)と遷移先の状態s’(X’,Y’,B’)の組み合わせごとの状態遷移確率Pe(w,k,lau,s,s’)を計算する。
図4に示すように、状態s(X,Y,B)が、敵機の自機位置からの相対位置のX座標,敵機の自機位置からの相対位置のY座標から構成される2次元の格子で表わされるものとする。例えば、ここで、ある状態s(X,Y,B)にある敵機は、その状態s(X,Y,B)を表わす2次元の格子内の各点に、等しい確率で存在するものとする。この仮定の下では、ある状態s(X,Y,B)にある敵機が行動(k,lau)を取り、自機が行動(w)を取ったときの状態遷移確率Pe(w,k,lau,s,s’)は、敵機の状態s(X,Y,B)を表わす2次元の格子をgとし、その格子gを上記変位量(dX,dY)だけ平行移動した格子をgdとすると、上記平行移動した格子gdとその他の格子の重なった面積に比例して求めることができると考えられる。
【0015】
すなわち、第1状態遷移確率計算部22は、nを1から4の整数とし、状態sn’を表わす格子をgn’とし、格子gdと格子gn’の重なった部分の面積をD(gd,gn’)とすると、状態sn’に遷移する確率を、
D(gd,gn’)/ΣD(gd,gn’) ・・・(1)
を計算することにより求める。格子gdが2つの格子gn’と重なる場合には、nを1から2までの整数として、上記(1)式を計算して状態遷移確率Pe(w,k,lau,s,s’)を求める。格子gdが1つの格子gn’と重なる場合には、n=1として、上記(1)式を計算して状態遷移確率Pe(w,k,lau,s,s’)を求める。
【0016】
例えば、状態sにある敵機が行動(k,lau)を取り、自機が行動(w)を取ったときの敵機の自機位置からの相対位置の変位量dX,dYだけ、状態sを表わす格子gを平行移動させたとき、その平行移動させた格子gdが、g1’〜g4’の4つの格子と重なったとする。また、重なった部分の面積は、それぞれ、D(gd,g1’)=6,D(gd,g2’)=6,D(gd,g3’)=1,D(gd,g4’)=1であるとする。このとき、敵機が状態s1’に遷移する確率は、D(gd,g1’)/ΣD(gd,gn’)=6/14=0.428…、敵機が状態s2’に遷移する確率は、D(gd,g2’)/ΣD(gd,gn’)=6/14=0.428…、敵機が状態s3’に遷移する確率は、D(gd,g3’)/ΣD(gd,gn’)=1/14=0.07…、敵機が状態s4’に遷移する確率は、D(gd,g4’)/ΣD(gd,gn’)=1/14=0.07…と求めることができる。
【0017】
第1状態遷移確率計算部22は、変位量(dX,dY)だけ平行移動させた格子gdと重なる格子gn’に対応した状態sn’へ遷移する状態遷移確率Pe(w,k,lau,s,s’)については、上記式(1)を計算することにより求める。上記状態sn’以外の状態s’に遷移する確率Pe(w,k,lau,s,s’)については、0とする。
このようにして計算された状態遷移確率Pe(w,k,lau,s,s’)は、乗算部23に出力される。
【0018】
<ステップS3>
乗算部23は、上記状態遷移確率Pe(w,k,lau,s,s’)に、自機が行動(w)を選択する確率Pv(s,w)を乗算する。計算結果であるPv(s,w)・Pe(w,k,lau,s,s’)は、第2状態遷移確率計算部24に出力される。
特にデータがなければ、自機が行動(w)を選択する確率Pv(s,w)は、1を自機の移動速度の種類の数Wで割った値にすることができる。
【0019】
<ステップS4>
第2状態遷移確率計算部24は、上記Pv(s,w)・Pe(w,k,lau,s,s’)について、自機の行動(w)についての和を取ることにより、状態sにある敵機が各行動(k,lau)を取ったときに、状態s’に遷移する状態遷移確率P(s,s’,k,lau)を求める。すなわち、第2状態遷移確率計算部24は、
Σw∈WPv(s,w)・Pe(w,k,lau,s,s’)
を計算することにより、状態遷移確率P(s,s’,k,lau)を求める。計算された状態遷移確率P(s,s’,k,lau)は、動作計画部40に出力される。
【0020】
<ステップS5>
報酬決定部30は、状態sと行動(k,lau)と遷移先の状態s’のすべての組み合わせについて、状態sにある敵機が行動(k,lau)を取って状態s’に遷移したときの報酬r(s,s’,k,lau)を決定する。
報酬r(s,s’,k,lau)は、ユーザが任意に設定することができる。例えば、報酬r(s,s’,k,lau)は、以下のように設定することができる。
【0021】
≪報酬rの決め方1≫
第1射線判定部33は、行動(k,lau)を選択することにより、状態s’(X’,Y’,B’)に遷移した敵機の自機位置からの相対位置(X’,Y’)から、自機が敵機の射線上にあるかどうかを判定する。自機が敵機の射線上にあるかどうかは、敵機の攻撃弾iの飛来方向を(cosθi,sinθi)とすると、上記相対位置(X’,Y’)における格子が線分(t×cosθi,t×sinθi)を含むか否かにより、判定することができる。
【0022】
第1射線判定部33は、予め設定された敵機の攻撃弾iの飛来方向(cosθi,sinθi)を記憶部10から読み出し、上記相対位置(X’,Y’)における格子が線分(t×cosθi,t×sinθi)を含むか否かを判定する。自機が、遷移後に相対位置(X’,Y’)に位置する敵機の射線上にあると判定された場合には、第1射線判定部33は、そのような状態sと行動(k,lau)と遷移先の状態s’の組み合わせについての報酬r(s,s’,k,lau)を、自機が、遷移後に相対位置(X’,Y’)に位置する敵機の射線上にない場合よりも、高く設定する。
このように報酬を定めることにより、敵機が、敵機の射線上に自機が位置するように行動する方策πを得ることができる。
【0023】
≪報酬rの決め方2≫
第2射線判定部34は、行動(k,lau)を選択することにより、状態s’(X’,Y’,B’)に遷移した敵機の自機位置からの相対位置(X’,Y’)が、自機の射線上にあるかどうかを判定する。自機の射線上にあるかどうかは、自機の攻撃弾jの飛来方向を(cosθj,sinθj)とすると、上記相対位置(X’,Y’)における格子が線分(t×cosθj,t×sinθj)を含むか否かにより、判定することができる。
【0024】
第2射線判定部34は、予め設定された自機の攻撃弾jの飛来方向(cosθj,sinθj)を記憶部10から読み出し、上記相対位置(X’,Y’)における格子が線分(t×cosθj,t×sinθj)を含むか否かを判定する。遷移後の敵機の相対位置(X’,Y’)が自機の射線上にあると判定された場合には、第2射線判定部34は、そのような状態sと行動(k,lau)と遷移先の状態s’の組み合わせについての報酬r(s,s’,k,lau)を、遷移後の敵機の相対位置(X’,Y’)が自機の射線上にない場合よりも、低く設定する。
このように報酬を定めることによって、敵機が自機の射線を避けるように行動する方策πを得ることができる。
【0025】
≪報酬rの決め方3≫
距離計算部31が、遷移先の状態s’における敵機の自機位置からの相対距離(X’,Y’)から敵機と自機の距離rを計算し、その距離rが小さくなるほど、その状態sと行動(k,lau)と遷移先の状態s’についての報酬r(s,s’,k,lau)を高く設定することができる。
このように報酬を定めることによって、敵機が自機に接近する行動を選択する方策πを得ることができる。
【0026】
≪報酬rの決め方4≫
命中率計算部32が、状態sにおける敵機の自機位置からの相対距離(X,Y)から、敵機の攻撃弾の自機への命中率を計算する。命中率計算部32は、その計算結果を、その状態sにおいて敵機が攻撃弾を発射する行動(k,lau=1)を取る場合の報酬r(s,s’,k,lau)に設定することができる。
【0027】
ここで、自機と敵機の距離がrのとき、敵機が攻撃弾によって自機を撃墜する潜在的な確率Psは、
Ps=Aexp(−ar) …(2)
で与えられると考えられる。Aとaは正の定数である。例えば、自機の大きさと敵弾の攻撃の大きさの和の半分の値をS、画面の長さをL、Uを0.1〜0.5の任意の実数とすると、Aを1.0〜0.8、aを、
a=U×(L/S)-1.5
とすると、経験上、精度の高い自機撃墜確率Pを求めることができる。さらに具体的に言うと、例えば、ゲーム画面が縦600ピクセル、横400ピクセル程度の大きさ、自機の形状が32×32ピクセルの大きさ、敵機の攻撃弾の大きさが4ピクセルであるとき、A=1.0〜0.8、a=0.001〜0.01とすると良い。上記(2)式によれば、敵機が攻撃弾によって自機を撃墜する潜在的な確率Pは、図5に示すように、敵機と自機の距離rが小さくなるにつれて、指数関数的に上昇する。
【0028】
距離計算部31は、状態sにおける敵機の自機からの相対位置(X,Y)から、状態sにおける敵機と自機の距離rを計算する。
命中率計算部32は、距離計算部31が計算した距離rと、記憶部10から読み出したAとaとから、上記(2)式を計算することにより、敵機の攻撃弾の自機への命中率Psを計算する。命中率計算部32は、このPsを、状態sにおいて敵機が行動(k,lau=1)を選択して状態s’に遷移した場合の報酬r(s,s’,k,lau)に設定する。
このように報酬を定めることによって、敵機が自機に十分に接近してから攻撃弾を発射する行動を選択する方策πを得ることができる。
【0029】
≪報酬rの決め方5≫
敵機の残存攻撃弾数Bが何発目のときにどの相対位置(X,Y)において、攻撃弾を発射するのかは、入力部39から入力することによりユーザが自由に設定することができる。報酬決定部30の設定状態検出部35は、ユーザの設定により予め定められた敵機の残存攻撃弾数Bごとの相対位置(X,Y)を検出し、その状態s(X,Y,B)と攻撃弾を発射する行動(k,lau=1)と遷移先の状態s’(X’,Y’,B’)についての報酬(s,s’,k,lau)を、その他の状態sと行動(k,lau)と遷移先の状態s’についての報酬(s,s’,k,lau)よりも高く設定する。
【0030】
例えば、状態s1(X=3,Y=1,B=2)において、攻撃弾を発射する行動(k,lau=1)を取り、状態s’に遷移する場合についての報酬(s,s’,k,lau)を1に設定し、その他の、敵機の残存攻撃弾数B=2である状態sと行動(k,lau)と遷移先の状態s’の組み合わせについての報酬(s,s’,k,lau)を0に設定する。また、状態s2(X=−3,Y=1,B=1)において、攻撃弾を発射する行動(k,lau=1)を取り、状態s’に遷移する場合についての報酬(s,s’,k,lau)を1に設定し、その他の、敵機の残存攻撃弾数B=1である状態sと行動(k,lau)と遷移先の状態s’の組み合わせについての報酬(s,s’,k,lau)を0に設定する。
【0031】
このように報酬を設定することにより、敵機の残存攻撃弾数B=2の状態においては、まず、敵機が相対位置(X=3,Y=1)まで移動してこの位置で攻撃弾を発射し、その後、敵機が相対位置(X=−3,Y=1)まで移動してこの位置で攻撃弾を発射するような方策πを得ることができる。
【0032】
≪報酬の決め方6≫
報酬の決め方1〜5で説明した報酬の定め方を組み合わせて、報酬を決定しても良い。
例えば、まず、第2射線判定部34が、報酬の決め方2で説明した方法を用いて、遷移後の敵機の相対位置(X’,Y’)が自機の射線上にある場合の、状態sと行動(k,lau)と遷移先の状態s’の組み合わせについての報酬r(s,s’,k,lau)を−1に設定する。そして、命中率計算部32が、報酬の決め方4で説明した方法を用いて、それ以外の状態sと行動(k,lau)と遷移先の状態s’の組み合わせについての報酬r(s,s’,k,lau)を定めるようにすることができる。
また、報酬決定部30、距離計算部31、命中率計算部32、第1射線判定部33、第2射線判定部34、設定状態検出部35の何れかが決定した報酬r(s,s’,k,lau)が、一時記憶部38に格納されているものとする。このとき、上記決定をした手段以外の報酬決定部30、距離計算部31、命中率計算部32、第1射線判定部33、第2射線判定部34、設定状態検出部35の何れかが、一時記憶部38から報酬r(s,s’,k,lau)を読み出し、その報酬について補正をするようにしても良い。
【0033】
例えば、第2射線判定部は、遷移後の敵機の相対位置(X’,Y’)が、自機の射線上にあると判定された場合には、その状態sと行動(k,lau)と遷移先の状態s’の組み合わせについての報酬r(s,s’,k,lau)を、一時記憶部38から読み出した報酬r(s,s’,k,lau)に0.5を掛けた値に設定し、自機の射線上にないと判定された場合には、その状態sと行動(k,lau)と遷移先の状態s’の組み合わせについての報酬r(s,s’,k,lau)を、一時記憶部38から読み出した報酬r(s,s’,k,lau)に1を掛けた値に設定することができる。
【0034】
<ステップS6>
動作計画部40は、状態s(X,Y,B)と行動(k,lau)と遷移先の状態s’(X’,Y’,B’)の各組み合わせごとの状態遷移確率P(s,s’,k,lau)と、報酬r(s,s’,k,lau)とから、ダイナミックプログラミング法により、敵機行動方策π(s,s’,k,lau)を求める。ダイナミックプログラミング法の処理は、周知技術であるため説明は省略する(例えば、上記参考文献1参照)。
計算された敵機行動方策π(s,s’,k,lau)は、敵機行動方策データ50として格納される。敵機行動方策データ50は、例えば、すべての敵機の状態s(X,Y,B)に対して、敵機の報酬rを最大化する行動(k,lau)が対応付けられたデータベースである。
【0035】
<ステップS7>
行動決定部60は、敵機の行動(k,lau)を選択し、その行動(k,lau)から敵機の位置を更新する。具体的には、敵機行動選択部62が、状態獲得部61が獲得した敵機の状態s(X,Y,B)をキーにして、敵機行動方策データ50を検索することにより、敵機の行動(k,lau)を求める。選択された行動(k,lau)は、敵機位置計算部63に出力される。敵機位置計算部63は、記憶部10から、敵機が行動(k,lau)を取ったときの移動速度(Vex(k),Vey(k))と行動単位時間Tを読み出し、(T×Vex(k),T×Vey(k))を計算することにより、更新後の敵機の位置を求める。更新後の敵機の位置は、表示部70に出力される。
上記のステップS1〜S7の処理を一定時間間隔τおきに行うことにより、敵機の動作がより知的になり、これまで以上にゲーム性の増したシューティングゲームを実現することができる。
【0036】
[変形例等]
上記実施形態では、ステップS3において、自機が行動(w)を選択する確率Pv(s,w)は、1を自機の移動速度の種類の数Wで割った値とした。しかし、自機が行動(w)を選択する確率Pv(s,w)を、プレイヤーの操作履歴から計算しても良い。
【0037】
状態遷移確率計算部20の操作履歴獲得部25は、例えば、相対位置(X,Y)において各行動(w)が選択された回数Dw(X,Y)とすると、各相対位置(X,Y)ごとにDw(X,Y)をカウントする。敵機の自機位置からの相対位置(X,Y)ごとの操作履歴Dw(X,Y)は、操作履歴データベース26に格納される
確率計算部27は、操作履歴データベース26から、Dw(X,Y)を読み出し、
Pv(s,w)=Dw(X,Y)/Σw∈WDw(X,Y)
を計算することにより、各状態sにおいて自機が行動(w)を選択する確率Pv(s,w)を求める。乗算部23は、確率計算部27が計算した上記Pv(s,w)を用いて、Pv(s,w)・Pe(w,k,lau,s,s’)を計算する。
【0038】
このように、ゲームプレイ中に操作履歴を記録して、その結果をマルコフ空間内での敵機の状態遷移確率の算出に反映し、ゲーム中にオンラインで動作計画法による計画計算を行うことで、敵機の行動方策πを、プレイヤーの自機操作の癖を反映したものに更新することができる。
また、上記実施形態におけるステップS1〜S7の処理を行う時間間隔であるτの時間長を調節することで、ゲームの難易度を調整することができる。一般に、τの時間長が長ければ、敵機の行動選択頻度が下がるため、敵機の動作は単純化し、また、自機攻撃回避動作の遅れも生じるので、ゲームの難易度は下がる。
【0039】
また、上記シューティングゲーム処理装置100の処理機能をコンピュータによって実現することができる。この場合、シューティングゲーム処理装置100の処理機能の内容はプログラムによって記述される。そして、このプログラムを図6に示すようなコンピュータで実行することにより、上記シューティングゲーム処理装置100の各処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、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)等を用いることができる。
【0040】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0041】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、シューティングゲーム処理装置等を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
また、本発明であるシューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【図面の簡単な説明】
【0042】
【図1】シューティングゲーム処理装置100の機能構成を例示する図。
【図2】シューティングゲーム処理装置100の処理フローを例示する図。
【図3】シューティングゲームの模式図。
【図4】状態遷移確率Peの計算の説明を補助するための図。
【図5】自機と敵機の距離rと自機撃墜確率Pの関係を例示した図。
【図6】本発明によるシューティングゲーム処理装置を、コンピュータにより実行するときの機能構成を例示した図。
【符号の説明】
【0043】
1 自機
2 敵機
3 攻撃弾
4 攻撃弾
5 CPU
6 RAM
7 出力部
8 補助記憶部
9 入力部
9’ バス
10 記憶部
20 状態遷移確率計算部
21 変位量計算部
22 状態遷移確率計算部
23 乗算部
24 状態遷移確率計算部
25 操作履歴獲得部
26 操作履歴データベース
27 確率計算部
30 報酬決定部
31 距離計算部
32 命中率計算部
33 第1射線判定部
34 第2射線判定部
35 設定状態検出部
38 一時記憶部
39 入力部
40 動作計画部
50 敵機行動方策データ
60 行動決定部
61 状態獲得部
62 敵機行動選択部
63 敵機位置計算部
70 表示部
100 シューティングゲーム処理装置

【特許請求の範囲】
【請求項1】
敵機の自機位置からの相対位置を状態の変数とし、敵機の移動速度を行動の変数とするマルコフ状態遷移モデルを用いて、敵機の行動を選択するシューティングゲーム処理方法において、
変位量計算手段が、敵機の各行動と自機の各行動の組み合わせごとに、相対位置の変位量を求める変位量計算過程と、
第1状態遷移確率計算手段が、上記マルコフ状態遷移モデルのある状態における、その状態を構成する相対位置と同じ次元を持つ格子を、上記敵機の各行動と自機の各行動の組み合わせごとに求まった変位量だけ平行移動させ、その他の格子との共通部分の面積に比例した確率を、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率として求める第1状態遷移確率計算過程と、
乗算手段が、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率に、自機に行動の種類の数で1を割った値を乗算する乗算過程と、
第2状態遷移確率計算手段が、自機のすべての行動について、上記乗算過程で求まった値の和を取ることにより、敵機が各行動を取ったときの状態遷移確率を求める第2状態遷移確率計算過程と、
報酬決定手段が、状態と行動と遷移先の状態の各組み合わせについての報酬を決定する報酬決定過程と、
動作計画手段が、上記敵機が各行動を取ったときの状態遷移確率と上記報酬を用いて、マルコフ状態遷移モデルにおける動作計画法に基づき、敵機行動方策データを求める動作計画過程と、
状態獲得手段が、敵機の現在の状態を獲得する状態獲得過程と、
敵機行動選択手段が、上記獲得された敵機の現在の状態と上記敵機行動方策データに基づいて敵機の行動を選択する敵機行動選択過程と、
を有することを特徴とするシューティングゲーム処理方法。
【請求項2】
請求項1記載のシューティングゲーム処理方法において、
上記報酬決定過程は、更に、自機が状態遷移後の敵機の射線上にある場合には、その状態と行動と遷移先の状態の組み合わせについての報酬を高く設定する過程を含む、
ことを特徴とするシューティングゲーム処理方法。
【請求項3】
請求項1又は2記載のシューティングゲーム処理方法において、
上記報酬決定過程は、更に、状態遷移後の敵機が自機の射線上にある場合には、その状態と行動と遷移先の状態の組み合わせについての報酬を低く設定する過程を含む、
ことを特徴とするシューティングゲーム処理方法。
【請求項4】
請求項1乃至3の何れかに記載のシューティングゲーム処理方法において、
自機行動選択確率計算手段が、プレイヤーの操作履歴データから、自機が各行動を選択する確率を求める自機行動選択確率計算過程、を更に有し、
上記乗算過程は、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率に、上記自機行動選択確率計算過程で求まった上記自機が各行動を選択する確率を乗算する過程である、
ことを特徴とするシューティングゲーム処理方法。
【請求項5】
請求項1乃至4の何れかに記載のシューティングゲーム処理方法において、
敵機の発射可能な攻撃弾の数をマルコフ状態遷移モデルを構成する状態の変数として更に含み、かつ、敵機が攻撃弾を発射するかどうかを行動の変数として更に含む、
ことを特徴とするシューティングゲーム処理方法。
【請求項6】
請求項1乃至5の何れかに記載のシューティングゲーム処理方法において、
上記報酬決定過程は、更に、状態遷移後の敵機と状態遷移後の自機の距離が近い場合には、その状態と行動と遷移先の状態の組み合わせについての報酬を高く設定する過程を含む、
ことを特徴とするシューティングゲーム処理方法。
【請求項7】
請求項5記載のシューティングゲーム処理方法において、
上記報酬決定過程は、更に、敵機が攻撃弾を発射する行動を取る場合には、状態遷移前の敵機と状態遷移前の自機の距離が近いほど、その状態と行動と遷移先の状態の組み合わせについての報酬を高く設定する過程を含む、
ことを特徴とするシューティングゲーム処理方法。
【請求項8】
請求項5又は7記載のシューティングゲーム処理方法において、
上記報酬決定過程は、更に、敵機の発射可能な攻撃弾の数ごとに予め定められた異なる相対位置で敵機が攻撃弾を発射する行動を取る場合には、その状態と行動と遷移先の状態の組み合わせについての報酬の値を高く設定する過程を含む、
ことを特徴とするシューティングゲーム処理方法。
【請求項9】
敵機の自機位置からの相対位置を状態の変数とし、敵機の移動速度を行動の変数とするマルコフ状態遷移モデルを用いて、敵機の行動を選択するシューティングゲーム処理装置において、
敵機の各行動と自機の各行動の組み合わせごとに、相対位置の変位量を求める変位量計算手段と、
上記マルコフ状態遷移モデルのある状態における、その状態を構成する相対位置と同じ次元を持つ格子を、上記敵機の各行動と自機の各行動の組み合わせごとに求まった変位量だけ平行移動させ、その他の格子との共通部分の面積に比例した確率を、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率として求める第1状態遷移確率計算手段と、
上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率に、自機に行動の種類の数で1を割った値を乗算する乗算手段と、
自機のすべての行動について、上記乗算過程で求まった値の和を取ることにより、敵機が各行動を取ったときの状態遷移確率を求める第2状態遷移確率計算手段と、
状態と行動と遷移先の状態の各組み合わせについての報酬を決定する報酬決定手段と、
上記敵機が各行動を取ったときの状態遷移確率と上記報酬を用いて、マルコフ状態遷移モデルにおける動作計画法に基づき、敵機行動方策データを求める動作計画手段と、
敵機の現在の状態を獲得する状態獲得手段と、
上記獲得された敵機の現在の状態と上記敵機行動方策データに基づいて敵機の行動を選択する敵機行動選択手段と、
を備えることを特徴とするシューティングゲーム処理装置。
【請求項10】
請求項1乃至8の何れかに記載のシューティングゲーム処理方法の各過程をコンピュータに実行させるためのシューティングゲーム処理プログラム。
【請求項11】
請求項10記載のシューティングゲーム処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項12】
敵機の自機位置からの相対位置を状態の変数とし、敵機の移動速度を行動の変数とするマルコフ状態遷移モデルを用いて、敵機の行動を選択するシューティングゲーム処理方法において、
状態獲得手段が、敵機の現在の状態を獲得する状態獲得過程と、
敵機行動選択手段が、上記獲得された敵機の現在の状態と、マルコフ状態遷移モデルにおける動作計画法により求められた敵機行動方策データとから、敵機の行動を選択する敵機行動選択過程と、
を有することを特徴とするシューティングゲーム処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2007−313104(P2007−313104A)
【公開日】平成19年12月6日(2007.12.6)
【国際特許分類】
【出願番号】特願2006−147033(P2006−147033)
【出願日】平成18年5月26日(2006.5.26)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】