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

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

Info

Publication number
JP2007313104A
JP2007313104A JP2006147033A JP2006147033A JP2007313104A JP 2007313104 A JP2007313104 A JP 2007313104A JP 2006147033 A JP2006147033 A JP 2006147033A JP 2006147033 A JP2006147033 A JP 2006147033A JP 2007313104 A JP2007313104 A JP 2007313104A
Authority
JP
Japan
Prior art keywords
action
state
enemy aircraft
aircraft
enemy
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.)
Granted
Application number
JP2006147033A
Other languages
English (en)
Other versions
JP4804226B2 (ja
Inventor
Hiroshi Kawano
洋 川野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006147033A priority Critical patent/JP4804226B2/ja
Publication of JP2007313104A publication Critical patent/JP2007313104A/ja
Application granted granted Critical
Publication of JP4804226B2 publication Critical patent/JP4804226B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

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

Description

本発明は、画面上に自機と敵機を表示し、自機を操作して、自機に攻撃を加えてくる敵機と闘うシューティングゲームの処理方法、その装置、そのプログラム及びその記録媒体に関する。
シューティングゲームの処理方法、特に敵機の動作を制御する方法としては、自機の位置を考慮しないアルゴリズム、例えば、自機の位置とは無関係に敵機が一定方向に下降し続けるアルゴリズムや、自機の位置とは無関係に敵機が静止し続けるアルゴリズムを採用する方法があった。また、自機の位置を考慮するアルゴリズムとしては、例えば、自機の位置に近づくように敵機が動くアルゴリズムや、常に自機との位置を一定距離・方向に保つように敵機が動くアルゴリズムがあった。
また、チェス、オセロ、将棋といって非アクションの思考ゲームにおいては、人工知能の技術を導入したアルゴリズムの研究が行われている(例えば、非特許文献1参照)。
Jonathan Schaeffer,H.Jaap van den Herik,"Games,computers,and artificial intelligence",Artificial Intelligence,2002,Vol.134,p1-7 川野洋「未知不均一潮流中での航行を考慮した劣駆動水中ロボットの動作計画と制御」,JSAI2005,人工知能学会(第19回),1D1-04,2005年
しかし、従来技術による敵機の行動制御アルゴリズムは、予めプログラムによって決められたものであり、自機の攻撃を意図的に避けたり、敵機自身が自分の位置を自機への攻撃に有利な位置に誘導するといった知的な動作をするものはなかった。
また、各プレイヤーの自機操作の癖を考慮した敵機攻撃弾発射アルゴリズムの自動的な更新も行われていなかったため、ユーザが一度そのゲームに習熟してしまうと、ユーザがすぐにそのゲームに飽きてしまうという問題があった。
そのような問題を解くためには、人工知能の技術を導入するのが有効であると考えられるが、現在人工知能におけるゲームの研究は、チェス、オセロ、将棋といった非アクションの思考ゲームが中心であり、人工知能の技術をシューティングゲームのようなアクションゲームに応用する試みはなかった。
また、チェス、オセロ、将棋といった思考ゲームを解くための人工知能技術の研究は、効率的に深い探索計算を行うための手法の開発に集中している(例えば、非特許文献1参照。)。もちろん、シューティングゲームにおいても、知的な敵機の動作アルゴリズムを開発するためには、探索技術は重要である。しかし、シューティングゲームにおいて、探索の深さに関する要求は低く、むしろ、いかにしてアクションゲームにおいて求められているレベルの実時間性を実現するかが大事である。しかし、そのような要求を満たす技術はなかった。
本発明によれば、敵機の自機位置からの相対位置を状態の変数とし、敵機の移動速度を行動の変数とするマルコフ状態遷移モデルを用いて、敵機の行動を選択するシューティングゲーム処理方法において、変位量計算手段が、敵機の各行動と自機の各行動の組み合わせごとに、相対位置の変位量を求める。第1状態遷移確率計算手段が、上記マルコフ状態遷移モデルのある状態における、その状態を構成する相対位置と同じ次元を持つ格子を、上記敵機の各行動と自機の各行動の組み合わせごとに求まった変位量だけ平行移動させ、その他の格子との共通部分の面積に比例した確率を、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率として求める。乗算手段が、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率に、自機に行動の種類の数で1を割った値を乗算する。第2状態遷移確率計算手段が、自機のすべての行動について、上記乗算過程で求まった値の和を取ることにより、敵機が各行動を取ったときの状態遷移確率を求める。報酬決定手段が、状態と行動と遷移先の状態の各組み合わせについての報酬を決定する。動作計画手段が、上記敵機が各行動を取ったときの状態遷移確率と上記報酬を用いて、マルコフ状態遷移モデルにおける動作計画法に基づき、敵機行動方策データを求める。状態獲得手段が、敵機の現在の状態を獲得する。敵機行動選択手段が、上記獲得された敵機の現在の状態と上記敵機行動方策データに基づいて敵機の行動を選択する。
本発明により、シューティングゲームにおける敵機の動作がより知的になり、これまで以上に、ゲーム性の増したシューティングゲームが実現された。また、プレイヤーの自機操作の癖を考慮した敵機動作アルゴリズムの更新も可能になり、今までよりも飽きが来にくいゲームを実現することができる。
[理論的背景]
<シューティングゲーム>
図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を発射する操作をすることができる。
敵機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の動作の制御に、以下で説明するマルコフ状態遷移モデルを用いた動作計画法を用いる。
<マルコフ状態遷移モデル>
次に、本発明の前提知識となるマルコフ状態遷移モデル及びマルコフ状態遷移モデルを用いた動作計画法について説明する。
環境を以下のようにモデル化したものが、マルコフ状態遷移モデルである。環境のとりうる離散的な状態の集合を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参照)。ダイナミックプログラミング法の処理は、周知技術であるため説明は省略する。
上記ダイナミックプログラミング法により計算された方策πから、各状態sにおける最適な行動aを決定することができる。以上が、マルコフ状態遷移モデルを用いた動作計画法の概要である。
(参考文献1) 三上 貞芳、皆川 雅章 共訳、R.S.Sutton、A.G.Barto 原著「強化学習」森北出版、1998、pp.94-118
上記のようなシューティングゲームに、上記マルコフ状態遷移モデルを用いた動作計画法を適用するために、以下で述べる実施形態では、マルコフ状態遷移モデルにおけるマルコフ空間を、敵機の自機位置から相対距離(X,Y)と、敵機の残存攻撃弾数Bの2つの変数で構成する。すなわち、状態sは、敵機の自機位置から相対距離(X,Y)と、敵機の残存攻撃弾数Bで離散的に表現されることになる。なお、マルコフ状態遷移モデルにおけるマルコフ空間を、敵機の自機位置から相対距離(X,Y)のみで構成されるようにしても良い。また、敵機キャラクターが、例えば自動車のような、機体の向きに沿って進むものであるならば、敵機の方位角を用いて、マルコフ空間を構成しても良い。すなわち、敵機キャラクターの自機位置からの相対距離以外の変数で、マルコフ空間を構成するようにしても良い。
また、以下で述べる本実施形態では、マルコフ空間内での行動aは、敵機の移動速度番号kと、攻撃弾発射フラグlauの2つの変数から構成されるものとする。なお、マルコフ空間を敵機の自機位置からの相対距離(X,Y)のみで構成する場合には、行動aを敵機の移動速度番号kのみから構成するようにしても良い。
[実施形態]
図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から構成される。
<ステップ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に出力される。
<ステップ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とその他の格子の重なった面積に比例して求めることができると考えられる。
すなわち、第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’)を求める。
例えば、状態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…と求めることができる。
第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に出力される。
<ステップ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で割った値にすることができる。
<ステップ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に出力される。
<ステップ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)は、以下のように設定することができる。
≪報酬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)を含むか否かにより、判定することができる。
第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’)に位置する敵機の射線上にない場合よりも、高く設定する。
このように報酬を定めることにより、敵機が、敵機の射線上に自機が位置するように行動する方策πを得ることができる。
≪報酬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)を含むか否かにより、判定することができる。
第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’)が自機の射線上にない場合よりも、低く設定する。
このように報酬を定めることによって、敵機が自機の射線を避けるように行動する方策πを得ることができる。
≪報酬rの決め方3≫
距離計算部31が、遷移先の状態s’における敵機の自機位置からの相対距離(X’,Y’)から敵機と自機の距離rを計算し、その距離rが小さくなるほど、その状態sと行動(k,lau)と遷移先の状態s’についての報酬r(s,s’,k,lau)を高く設定することができる。
このように報酬を定めることによって、敵機が自機に接近する行動を選択する方策πを得ることができる。
≪報酬rの決め方4≫
命中率計算部32が、状態sにおける敵機の自機位置からの相対距離(X,Y)から、敵機の攻撃弾の自機への命中率を計算する。命中率計算部32は、その計算結果を、その状態sにおいて敵機が攻撃弾を発射する行動(k,lau=1)を取る場合の報酬r(s,s’,k,lau)に設定することができる。
ここで、自機と敵機の距離が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が小さくなるにつれて、指数関数的に上昇する。
距離計算部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)に設定する。
このように報酬を定めることによって、敵機が自機に十分に接近してから攻撃弾を発射する行動を選択する方策πを得ることができる。
≪報酬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)よりも高く設定する。
例えば、状態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に設定する。
このように報酬を設定することにより、敵機の残存攻撃弾数B=2の状態においては、まず、敵機が相対位置(X=3,Y=1)まで移動してこの位置で攻撃弾を発射し、その後、敵機が相対位置(X=−3,Y=1)まで移動してこの位置で攻撃弾を発射するような方策πを得ることができる。
≪報酬の決め方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)を読み出し、その報酬について補正をするようにしても良い。
例えば、第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を掛けた値に設定することができる。
<ステップ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)が対応付けられたデータベースである。
<ステップ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の処理を一定時間間隔τおきに行うことにより、敵機の動作がより知的になり、これまで以上にゲーム性の増したシューティングゲームを実現することができる。
[変形例等]
上記実施形態では、ステップS3において、自機が行動(w)を選択する確率Pv(s,w)は、1を自機の移動速度の種類の数Wで割った値とした。しかし、自機が行動(w)を選択する確率Pv(s,w)を、プレイヤーの操作履歴から計算しても良い。
状態遷移確率計算部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’)を計算する。
このように、ゲームプレイ中に操作履歴を記録して、その結果をマルコフ空間内での敵機の状態遷移確率の算出に反映し、ゲーム中にオンラインで動作計画法による計画計算を行うことで、敵機の行動方策πを、プレイヤーの自機操作の癖を反映したものに更新することができる。
また、上記実施形態におけるステップS1〜S7の処理を行う時間間隔であるτの時間長を調節することで、ゲームの難易度を調整することができる。一般に、τの時間長が長ければ、敵機の行動選択頻度が下がるため、敵機の動作は単純化し、また、自機攻撃回避動作の遅れも生じるので、ゲームの難易度は下がる。
また、上記シューティングゲーム処理装置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)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、シューティングゲーム処理装置等を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
また、本発明であるシューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
シューティングゲーム処理装置100の機能構成を例示する図。 シューティングゲーム処理装置100の処理フローを例示する図。 シューティングゲームの模式図。 状態遷移確率Peの計算の説明を補助するための図。 自機と敵機の距離rと自機撃墜確率Pの関係を例示した図。 本発明によるシューティングゲーム処理装置を、コンピュータにより実行するときの機能構成を例示した図。
符号の説明
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 シューティングゲーム処理装置

Claims (12)

  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. 敵機の自機位置からの相対位置を状態の変数とし、敵機の移動速度を行動の変数とするマルコフ状態遷移モデルを用いて、敵機の行動を選択するシューティングゲーム処理方法において、
    状態獲得手段が、敵機の現在の状態を獲得する状態獲得過程と、
    敵機行動選択手段が、上記獲得された敵機の現在の状態と、マルコフ状態遷移モデルにおける動作計画法により求められた敵機行動方策データとから、敵機の行動を選択する敵機行動選択過程と、
    を有することを特徴とするシューティングゲーム処理方法。
JP2006147033A 2006-05-26 2006-05-26 シューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体 Expired - Fee Related JP4804226B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006147033A JP4804226B2 (ja) 2006-05-26 2006-05-26 シューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006147033A JP4804226B2 (ja) 2006-05-26 2006-05-26 シューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体

Publications (2)

Publication Number Publication Date
JP2007313104A true JP2007313104A (ja) 2007-12-06
JP4804226B2 JP4804226B2 (ja) 2011-11-02

Family

ID=38847514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006147033A Expired - Fee Related JP4804226B2 (ja) 2006-05-26 2006-05-26 シューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体

Country Status (1)

Country Link
JP (1) JP4804226B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010098268A1 (ja) * 2009-02-24 2010-09-02 日本電気株式会社 演算資源割当装置、演算資源割当システム、それらの演算資源割当方法及びプログラム
CN110327624A (zh) * 2019-07-03 2019-10-15 广州多益网络股份有限公司 一种基于课程强化学习的游戏跟随方法和系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010098268A1 (ja) * 2009-02-24 2010-09-02 日本電気株式会社 演算資源割当装置、演算資源割当システム、それらの演算資源割当方法及びプログラム
JPWO2010098268A1 (ja) * 2009-02-24 2012-08-30 日本電気株式会社 演算資源割当装置、演算資源割当システム、それらの演算資源割当方法及びプログラム
US8533726B2 (en) 2009-02-24 2013-09-10 Nec Corporation Device, system, method, and program for computing resource allocation based on external environment and transition frequency
JP5644758B2 (ja) * 2009-02-24 2014-12-24 日本電気株式会社 演算資源割当装置、演算資源割当システム、それらの演算資源割当方法及びプログラム
CN110327624A (zh) * 2019-07-03 2019-10-15 广州多益网络股份有限公司 一种基于课程强化学习的游戏跟随方法和系统

Also Published As

Publication number Publication date
JP4804226B2 (ja) 2011-11-02

Similar Documents

Publication Publication Date Title
US11806620B2 (en) Systems and methods for placing and displaying user information in a game space
US20220054947A1 (en) Method and apparatus for providing online shooting game
CN108463273B (zh) 基于游戏者的移动历史来进行非游戏者角色的路径寻找的游戏系统
US8576235B1 (en) Visibility transition planning for dynamic camera control
US8069124B2 (en) Combining speculative physics modeling with goal-based artificial intelligence
US20090197686A1 (en) System and method for driving artificial intelligence (ai) characters having continuous reevaluation of current goals and having navigation path
US20240082734A1 (en) In-game resource surfacing platform
KR20200024733A (ko) 시즌별 보상 분배 시스템
JP4804226B2 (ja) シューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体
CN113856200A (zh) 一种画面显示方法、装置、电子设备及可读存储介质
CN116036601B (zh) 游戏处理方法、装置及计算机设备、存储介质
Newton et al. Unreal Engine 4 AI Programming Essentials
Vitek et al. Intelligent agents in games: Review with an open-source tool
JP4804230B2 (ja) シューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体
KR102479931B1 (ko) 게임 제공 장치, 예측확률지수에 대응하는 리워드를 제공하는 게임 제공 방법 및 컴퓨터 프로그램
KR101570785B1 (ko) 상황기반 1인칭 시점 항해 구현방법
Krafft Implementation and comparison of pathfinding algorithms in a dynamic 3D space
Lazzaretti et al. Simulating human behaviour in environment exploration in video games
JP7170397B2 (ja) プログラム、画像処理方法、及び画像処理装置
JP4804253B2 (ja) シューティングゲームの自機動作制御方法、装置、プログラム及びその記録媒体
CN116271831A (zh) 非玩家角色的控制方法、装置、存储介质和电子设备
Pleines et al. Memory Gym: Partially Observable Challenges to Memory-Based Agents in Endless Episodes
JP4804224B2 (ja) シューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体
JP2023113587A (ja) マルチプレーヤゲーミングにおけるスマート音声チャットのための方法およびシステム
JP2007330535A (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: 20110509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110623

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: 4804226

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