(57)【特許請求の範囲】
【請求項１】
記憶手段と、変位量計算手段と、第１状態遷移確率計算手段と、乗算手段と、第２状態遷移確率計算手段と、報酬決定手段と、動作計画手段と、状態獲得手段と、敵機行動選択手段とを備えたコンピュータが、敵機の自機位置からの相対位置を状態の変数とし、敵機の移動速度を行動の変数とするマルコフ状態遷移モデルを用いて、敵機の行動を選択するシューティングゲームの処理を行う方法において、
記憶手段には、敵機が各行動を取ったときの移動速度、及び、自機が各行動を取ったときの移動速度が記憶され、
変位量計算手段が、敵機の各行動と自機の各行動の組み合わせごとに、上記記憶手段から読み出した対応する敵機及び自機の移動速度を用いて、相対位置の変位量を求める変位量計算過程と、
第１状態遷移確率計算手段が、上記マルコフ状態遷移モデルのある状態における、その状態を構成する相対位置と同じ次元を持つ格子を、上記敵機の各行動と自機の各行動の組み合わせごとに求まった変位量だけ平行移動させ、その他の格子との共通部分の面積に比例した確率を、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率として求める第１状態遷移確率計算過程と、
乗算手段が、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率に、自機の行動の種類の数で１を割った値を乗算する乗算過程と、
第２状態遷移確率計算手段が、自機のすべての行動について、上記乗算過程で求まった値の和を取ることにより、敵機が各行動を取ったときの状態遷移確率を求める第２状態遷移確率計算過程と、
報酬決定手段が、状態と行動と遷移先の状態の各組み合わせについての報酬を決定する報酬決定過程と、
動作計画手段が、上記敵機が各行動を取ったときの状態遷移確率と上記報酬を用いて、マルコフ状態遷移モデルにおける動作計画法に基づき、敵機行動方策データを求める動作計画過程と、
状態獲得手段が、敵機の現在の状態を獲得する状態獲得過程と、
敵機行動選択手段が、上記獲得された敵機の現在の状態と上記敵機行動方策データに基づいて敵機の行動を選択する敵機行動選択過程と、
を有することを特徴とするシューティングゲーム処理方法。
【請求項２】
請求項１記載のシューティングゲーム処理方法において、
上記報酬決定過程は、更に、自機が状態遷移後の敵機の射線上にある場合には、その状態と行動と遷移先の状態の組み合わせについての報酬を高く設定する過程を含む、
ことを特徴とするシューティングゲーム処理方法。
【請求項３】
請求項１記載のシューティングゲーム処理方法において、
上記報酬決定過程は、更に、状態遷移後の敵機が自機の射線上にある場合には、その状態と行動と遷移先の状態の組み合わせについての報酬を低く設定する過程を含む、
ことを特徴とするシューティングゲーム処理方法。
【請求項４】
請求項１乃至３の何れかに記載のシューティングゲーム処理方法において、
自機行動選択確率計算手段が、プレイヤーの操作履歴データから、自機が各行動を選択する確率を求める自機行動選択確率計算過程、を更に有し、
上記乗算過程は、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率に、上記自機行動選択確率計算過程で求まった上記自機が各行動を選択する確率を乗算する過程である、
ことを特徴とするシューティングゲーム処理方法。
【請求項５】
請求項１乃至４の何れかに記載のシューティングゲーム処理方法において、
敵機の発射可能な攻撃弾の数をマルコフ状態遷移モデルを構成する状態の変数として更に含み、かつ、敵機が攻撃弾を発射するかどうかを行動の変数として更に含む、
ことを特徴とするシューティングゲーム処理方法。
【請求項６】
請求項１乃至５の何れかに記載のシューティングゲーム処理方法において、
上記報酬決定過程は、更に、状態遷移後の敵機と状態遷移後の自機の距離が近い場合には、その状態と行動と遷移先の状態の組み合わせについての報酬を高く設定する過程を含む、
ことを特徴とするシューティングゲーム処理方法。
【請求項７】
請求項５記載のシューティングゲーム処理方法において、
上記報酬決定過程は、更に、敵機が攻撃弾を発射する行動を取る場合には、状態遷移前の敵機と状態遷移前の自機の距離が近いほど、その状態と行動と遷移先の状態の組み合わせについての報酬を高く設定する過程を含む、
ことを特徴とするシューティングゲーム処理方法。
【請求項８】
請求項５又は７記載のシューティングゲーム処理方法において、
上記報酬決定過程は、更に、敵機の発射可能な攻撃弾の数ごとに予め定められた異なる相対位置で敵機が攻撃弾を発射する行動を取る場合には、その状態と行動と遷移先の状態の組み合わせについての報酬の値を高く設定する過程を含む、
ことを特徴とするシューティングゲーム処理方法。
【請求項９】
敵機の自機位置からの相対位置を状態の変数とし、敵機の移動速度を行動の変数とするマルコフ状態遷移モデルを用いて、敵機の行動を選択するシューティングゲーム処理装置において、
敵機が各行動を取ったときの移動速度、及び、自機が各行動を取ったときの移動速度が記憶された記憶手段と、
敵機の各行動と自機の各行動の組み合わせごとに、上記記憶手段から読み出した対応する敵機及び自機の移動速度を用いて、相対位置の変位量を求める変位量計算手段と、
上記マルコフ状態遷移モデルのある状態における、その状態を構成する相対位置と同じ次元を持つ格子を、上記敵機の各行動と自機の各行動の組み合わせごとに求まった変位量だけ平行移動させ、その他の格子との共通部分の面積に比例した確率を、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率として求める第１状態遷移確率計算手段と、
上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率に、自機の行動の種類の数で１を割った値を乗算する乗算手段と、
自機のすべての行動について、上記乗算手段で求まった値の和を取ることにより、敵機が各行動を取ったときの状態遷移確率を求める第２状態遷移確率計算手段と、
状態と行動と遷移先の状態の各組み合わせについての報酬を決定する報酬決定手段と、
上記敵機が各行動を取ったときの状態遷移確率と上記報酬を用いて、マルコフ状態遷移モデルにおける動作計画法に基づき、敵機行動方策データを求める動作計画手段と、
敵機の現在の状態を獲得する状態獲得手段と、
上記獲得された敵機の現在の状態と上記敵機行動方策データに基づいて敵機の行動を選択する敵機行動選択手段と、
を備えることを特徴とするシューティングゲーム処理装置。
【請求項１０】
敵機の自機位置からの相対位置を状態の変数とし、敵機の移動速度を行動の変数とするマルコフ状態遷移モデルを用いて、敵機の行動を選択するシューティングゲーム処理プログラムにおいて、
記憶手段には、敵機が各行動を取ったときの移動速度、及び、自機が各行動を取ったときの移動速度が記憶され、
敵機の各行動と自機の各行動の組み合わせごとに、上記記憶手段から読み出した対応する敵機及び自機の移動速度を用いて、相対位置の変位量を求める変位量計算過程と、
上記マルコフ状態遷移モデルのある状態における、その状態を構成する相対位置と同じ次元を持つ格子を、上記敵機の各行動と自機の各行動の組み合わせごとに求まった変位量だけ平行移動させ、その他の格子との共通部分の面積に比例した確率を、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率として求める第１状態遷移確率計算過程と、
上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率に、自機の行動の種類の数で１を割った値を乗算する乗算過程と、
自機のすべての行動について、上記乗算過程で求まった値の和を取ることにより、敵機が各行動を取ったときの状態遷移確率を求める第２状態遷移確率計算過程と、
状態と行動と遷移先の状態の各組み合わせについての報酬を決定する報酬決定過程と、
上記敵機が各行動を取ったときの状態遷移確率と上記報酬を用いて、マルコフ状態遷移モデルにおける動作計画法に基づき、敵機行動方策データを求める動作計画過程と、
敵機の現在の状態を獲得する状態獲得過程と、
上記獲得された敵機の現在の状態と上記敵機行動方策データに基づいて敵機の行動を選択する敵機行動選択過程と、
をコンピュータに実行させるためのシューティングゲーム処理プログラム。
【請求項１１】
請求項１０記載のシューティングゲーム処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面上に自機と敵機を表示し、自機を操作して、自機に攻撃を加えてくる敵機と闘うシューティングゲームの処理方法、その装置、そのプログラム及びその記録媒体に関する。
【背景技術】
【０００２】
シューティングゲームの処理方法、特に敵機の動作を制御する方法としては、自機の位置を考慮しないアルゴリズム、例えば、自機の位置とは無関係に敵機が一定方向に下降し続けるアルゴリズムや、自機の位置とは無関係に敵機が静止し続けるアルゴリズムを採用する方法があった。また、自機の位置を考慮するアルゴリズムとしては、例えば、自機の位置に近づくように敵機が動くアルゴリズムや、常に自機との位置を一定距離・方向に保つように敵機が動くアルゴリズムがあった。
また、チェス、オセロ、将棋といって非アクションの思考ゲームにおいては、人工知能の技術を導入したアルゴリズムの研究が行われている（例えば、非特許文献１参照）。
【非特許文献１】Jonathan Schaeffer,H.Jaap van den Herik,“Games,computers,and artificial intelligence”,Artificial Intelligence,2002,Vol.134,p1-7
【非特許文献２】川野洋「未知不均一潮流中での航行を考慮した劣駆動水中ロボットの動作計画と制御」,JSAI2005,人工知能学会（第１９回）,1D1-04,2005年
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来技術による敵機の行動制御アルゴリズムは、予めプログラムによって決められたものであり、自機の攻撃を意図的に避けたり、敵機自身が自分の位置を自機への攻撃に有利な位置に誘導するといった知的な動作をするものはなかった。
また、各プレイヤーの自機操作の癖を考慮した敵機攻撃弾発射アルゴリズムの自動的な更新も行われていなかったため、ユーザが一度そのゲームに習熟してしまうと、ユーザがすぐにそのゲームに飽きてしまうという問題があった。
そのような問題を解くためには、人工知能の技術を導入するのが有効であると考えられるが、現在人工知能におけるゲームの研究は、チェス、オセロ、将棋といった非アクションの思考ゲームが中心であり、人工知能の技術をシューティングゲームのようなアクションゲームに応用する試みはなかった。
【０００４】
また、チェス、オセロ、将棋といった思考ゲームを解くための人工知能技術の研究は、効率的に深い探索計算を行うための手法の開発に集中している（例えば、非特許文献１参照。）。もちろん、シューティングゲームにおいても、知的な敵機の動作アルゴリズムを開発するためには、探索技術は重要である。しかし、シューティングゲームにおいて、探索の深さに関する要求は低く、むしろ、いかにしてアクションゲームにおいて求められているレベルの実時間性を実現するかが大事である。しかし、そのような要求を満たす技術はなかった。
【課題を解決するための手段】
【０００５】
本発明によれば、敵機の自機位置からの相対位置を状態の変数とし、敵機の移動速度を行動の変数とするマルコフ状態遷移モデルを用いて、敵機の行動を選択するシューティングゲーム処理方法において、変位量計算手段が、敵機の各行動と自機の各行動の組み合わせごとに、相対位置の変位量を求める。第１状態遷移確率計算手段が、上記マルコフ状態遷移モデルのある状態における、その状態を構成する相対位置と同じ次元を持つ格子を、上記敵機の各行動と自機の各行動の組み合わせごとに求まった変位量だけ平行移動させ、その他の格子との共通部分の面積に比例した確率を、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率として求める。乗算手段が、上記敵機の各行動と自機の各行動の組み合わせごとの状態遷移確率に、自機に行動の種類の数で１を割った値を乗算する。第２状態遷移確率計算手段が、自機のすべての行動について、上記乗算過程で求まった値の和を取ることにより、敵機が各行動を取ったときの状態遷移確率を求める。報酬決定手段が、状態と行動と遷移先の状態の各組み合わせについての報酬を決定する。動作計画手段が、上記敵機が各行動を取ったときの状態遷移確率と上記報酬を用いて、マルコフ状態遷移モデルにおける動作計画法に基づき、敵機行動方策データを求める。状態獲得手段が、敵機の現在の状態を獲得する。敵機行動選択手段が、上記獲得された敵機の現在の状態と上記敵機行動方策データに基づいて敵機の行動を選択する。
【発明の効果】
【０００６】
本発明により、シューティングゲームにおける敵機の動作がより知的になり、これまで以上に、ゲーム性の増したシューティングゲームが実現された。また、プレイヤーの自機操作の癖を考慮した敵機動作アルゴリズムの更新も可能になり、今までよりも飽きが来にくいゲームを実現することができる。
【発明を実施するための最良の形態】
【０００７】
［理論的背景］
＜シューティングゲーム＞
図３に、本発明による処理の対象となるシューティングゲームを例示する。画面上には、自機１と自機１の攻撃弾３、敵機２と敵機２の攻撃弾４が表示される。攻撃弾３、敵機２、攻撃弾４は、複数存在していても良い。自機１、敵機２、攻撃弾３、攻撃弾４は、Ｘ軸とＹ軸で構成される２次元の平面上を位置するものとする。
ユーザは、自機１を操作して、敵機２と闘う。ユーザは、一回の操作で、Ｗ種類の速度（方向と速さ）で、行動単位時間Ｔだけ自機を移動することができる。自機１が取り得るＷ種類の移動速度（方向と速さ）（Ｖｓｘ（ｗ），Ｖｓｙ（ｗ））は予め決められており、それぞれの移動速度（Ｖｓｘ（ｗ），Ｖｓｙ（ｗ））には、移動速度番号ｗ（ｗ＝１，…，Ｗ）が付けられているものとする。以下では、移動速度番号ｗを選択する行動のことを行動（ｗ）という。また、ユーザは、Ｗ種類の速度による移動と同時に、敵機２を攻撃するための攻撃弾３を発射する操作をすることができる。
【０００８】
敵機２は、行動単位時間Ｔごとに、Ｋ種類の移動速度（方向と速さ）で行動することができる。敵機２が取り得るＫ種類の移動速度（Ｖｅｘ（ｋ），Ｖｅｙ（ｋ））は予め決められており、それぞれの移動速度（Ｖｅｘ（ｋ），Ｖｅｙ（ｋ））には、移動速度番号ｋ（ｋ＝１，…，Ｋ）が付けられているものとする。また、敵機２は移動と同時に、攻撃弾４を発射することができる。攻撃弾発射フラグをｌａｕとし、ｌａｕ＝１のときに敵機２が攻撃弾４を発射、ｌａｕ＝０のときに敵機２が攻撃弾４を発射しないと定義されているものとする。
自機１が、敵機２及び敵機２が発射する攻撃弾４と衝突した場合には、自機１は破壊され、そこでゲームオーバーとなる。逆に、自機１の攻撃弾３が敵機２に衝突した場合には、敵機２は破壊される。自機１の攻撃弾３によりすべての敵機２を破壊した場合には、ユーザは、そのゲームに勝利することになる。
本発明では、このようなシューティングゲームにおける敵機２の動作の制御に、以下で説明するマルコフ状態遷移モデルを用いた動作計画法を用いる。
【０００９】
＜マルコフ状態遷移モデル＞
次に、本発明の前提知識となるマルコフ状態遷移モデル及びマルコフ状態遷移モデルを用いた動作計画法について説明する。
環境を以下のようにモデル化したものが、マルコフ状態遷移モデルである。環境のとりうる離散的な状態の集合をＳ＝｛ｓ １，ｓ２，…，ｓｎ｝、行動主体が取り得る行動の集合をＡ＝｛ａ１，ａ２，…ａｍ｝と表す。環境中のある状態 s ∈ Ｓにおいて、行動主体がある行動 a を 実行すると、環境は確率的に状態 s' ∈Ｓへ遷移する。その遷移確率を
Ｐ（ｓ，ｓ’，ａ）＝Ｐｒ｛ｓｔ＋１＝ｓ’｜ｓｔ＝ｓ，ａｔ＝ａ｝
により表す。このとき環境から行動主体へ報酬ｒが確率的に与えられるが、その期待値を
Ｒ（ｓ，ｓ’，ａ）＝Ｅ｛ｒt ｜ｓｔ=ｓ, ａｔ＝ａ，sｔ＋１＝s’｝
とする。行動主体の各時刻における意志決定は方策関数
π（ｓ，ａ）＝Ｐｒ｛ａｔ＝ａ｜ｓｔ＝ｓ｝
によって表される。π（ｓ，ａ）は、全状態ｓ，全行動ａにおいて定義される。方策関数π（ｓ，ａ）は、単に方策π とも呼ばれる。
すべての状態ｓ、行動ａ、遷移先の状態ｓ’の組み合わせについての遷移確率Ｐ（ｓ，ｓ’，ａ）と報酬Ｒ（ｓ，ｓ’，ａ）の値が定まっていれば、ダイナミックプログラミング（Dynamic  Programminｇ）法により、方策πを計算することができる（例えば、下記参考文献１参照）。ダイナミックプログラミング法の処理は、周知技術であるため説明は省略する。
【００１０】
上記ダイナミックプログラミング法により計算された方策πから、各状態ｓにおける最適な行動aを決定することができる。以上が、マルコフ状態遷移モデルを用いた動作計画法の概要である。
（参考文献１）  三上  貞芳、皆川  雅章  共訳、R.S.Sutton、A.G.Barto  原著「強化学習」森北出版、1998、pp.94-118
上記のようなシューティングゲームに、上記マルコフ状態遷移モデルを用いた動作計画法を適用するために、以下で述べる実施形態では、マルコフ状態遷移モデルにおけるマルコフ空間を、敵機の自機位置から相対距離（Ｘ，Ｙ）と、敵機の残存攻撃弾数Ｂの２つの変数で構成する。すなわち、状態ｓは、敵機の自機位置から相対距離（Ｘ，Ｙ）と、敵機の残存攻撃弾数Ｂで離散的に表現されることになる。なお、マルコフ状態遷移モデルにおけるマルコフ空間を、敵機の自機位置から相対距離（Ｘ，Ｙ）のみで構成されるようにしても良い。また、敵機キャラクターが、例えば自動車のような、機体の向きに沿って進むものであるならば、敵機の方位角を用いて、マルコフ空間を構成しても良い。すなわち、敵機キャラクターの自機位置からの相対距離以外の変数で、マルコフ空間を構成するようにしても良い。
【００１１】
また、以下で述べる本実施形態では、マルコフ空間内での行動ａは、敵機の移動速度番号ｋと、攻撃弾発射フラグｌａｕの２つの変数から構成されるものとする。なお、マルコフ空間を敵機の自機位置からの相対距離（Ｘ，Ｙ）のみで構成する場合には、行動ａを敵機の移動速度番号ｋのみから構成するようにしても良い。
【００１２】
［実施形態］
図１と図２を参照して、本発明によるシューティングゲーム処理装置１００について説明する。図１は、シューティングゲーム処理装置１００の機能構成を例示する図である。図２は、シューティングゲーム処理装置１００の処理フローを例示する図である。
シューティングゲーム処理装置１００は、例えば、記憶部１０、状態遷移確率計算部２０、報酬決定部３０、動作計画部４０、敵機行動方策データ５０、行動決定部６０、表示部７０から構成される。
状態遷移確率計算部２０は、例えば、変位量計算部２１、第１状態遷移確率計算部２２、乗算部２３、第２状態遷移確率計算部２４から構成される。報酬決定部３０は、例えば、距離計算部３１、命中率計算部３２、第１射線判定部３３、第２射線判定部３４、設定状態検出部３５、一時記憶部３８、入力部３９から構成される。行動決定部６０は、例えば、状態獲得部６１、敵機行動選択部６２、敵機位置計算部６３から構成される。
【００１３】
＜ステップ１＞
状態遷移確率計算部２０の変位量計算部２１は、敵機の行動（ｋ，ｌａｕ）と自機の行動（ｗ）の各組み合わせごとに、敵機の自機位置からの相対位置の変位量（ｄＸ，ｄＹ）を求める。具体的には、状態遷移確率計算部２０の変位量計算部２１は、記憶部１０から読み出した、敵機が行動（ｋ，ｌａｕ）を選択した場合の速度（Ｖｅｘ（ｋ），Ｖｅｙ（ｋ））と、自機が行動（ｗ）を選択した場合の速度（Ｖｓｘ（ｗ），Ｖｓｙ（ｗ））と、自機と敵機の行動単位時間をＴとを用いて、
ｄＸ＝（Ｖｅｘ（ｋ）−Ｖｓｘ（ｗ））×Ｔ
ｄＹ＝（Ｖｅｙ（ｋ）−Ｖｓｙ（ｗ））×Ｔ
を、敵機の行動（ｋ，ｌａｕ）と自機の行動（ｗ）のすべての組み合わせについて計算する。計算された敵機の自機位置からの相対位置の変位量（ｄＸ，ｄＹ）は、第１状態遷移確率計算部２２に出力される。
【００１４】
＜ステップ２＞
第１状態遷移確率計算部２２は、すべての状態ｓ（Ｘ，Ｙ，Ｂ）と行動（ｗ，ｋ，ｌａｕ）と遷移先の状態ｓ’（Ｘ’，Ｙ’，Ｂ’）の組み合わせごとの状態遷移確率Ｐｅ（ｗ，ｋ，ｌａｕ，ｓ，ｓ’）を計算する。
図４に示すように、状態ｓ（Ｘ，Ｙ，Ｂ）が、敵機の自機位置からの相対位置のＸ座標，敵機の自機位置からの相対位置のＹ座標から構成される２次元の格子で表わされるものとする。例えば、ここで、ある状態ｓ（Ｘ，Ｙ，Ｂ）にある敵機は、その状態ｓ（Ｘ，Ｙ，Ｂ）を表わす２次元の格子内の各点に、等しい確率で存在するものとする。この仮定の下では、ある状態ｓ（Ｘ，Ｙ，Ｂ）にある敵機が行動（ｋ，ｌａｕ）を取り、自機が行動（ｗ）を取ったときの状態遷移確率Ｐｅ（ｗ，ｋ，ｌａｕ，ｓ，ｓ’）は、敵機の状態ｓ（Ｘ，Ｙ，Ｂ）を表わす２次元の格子をｇとし、その格子ｇを上記変位量（ｄＸ，ｄＹ）だけ平行移動した格子をｇｄとすると、上記平行移動した格子ｇｄとその他の格子の重なった面積に比例して求めることができると考えられる。
【００１５】
すなわち、第１状態遷移確率計算部２２は、ｎを１から４の整数とし、状態ｓｎ’を表わす格子をｇｎ’とし、格子ｇｄと格子ｇｎ’の重なった部分の面積をＤ（ｇｄ，ｇｎ’）とすると、状態ｓｎ’に遷移する確率を、
Ｄ（ｇｄ，ｇｎ’）／ΣｎＤ（ｇｄ，ｇｎ’）  ・・・（１）
を計算することにより求める。格子ｇｄが２つの格子ｇｎ’と重なる場合には、ｎを１から２までの整数として、上記（１）式を計算して状態遷移確率Ｐｅ（ｗ，ｋ，ｌａｕ，ｓ，ｓ’）を求める。格子ｇｄが１つの格子ｇｎ’と重なる場合には、ｎ＝１として、上記（１）式を計算して状態遷移確率Ｐｅ（ｗ，ｋ，ｌａｕ，ｓ，ｓ’）を求める。
【００１６】
例えば、状態ｓにある敵機が行動（ｋ，ｌａｕ）を取り、自機が行動（ｗ）を取ったときの敵機の自機位置からの相対位置の変位量ｄＸ，ｄＹだけ、状態ｓを表わす格子ｇを平行移動させたとき、その平行移動させた格子ｇｄが、ｇ１’〜ｇ４’の４つの格子と重なったとする。また、重なった部分の面積は、それぞれ、Ｄ（ｇｄ，ｇ１’）＝６，Ｄ（ｇｄ，ｇ２’）＝６，Ｄ（ｇｄ，ｇ３’）＝１，Ｄ（ｇｄ，ｇ４’）＝１であるとする。このとき、敵機が状態ｓ１’に遷移する確率は、Ｄ（ｇｄ，ｇ１’）／ΣｎＤ（ｇｄ，ｇｎ’）＝６／１４＝０．４２８…、敵機が状態ｓ２’に遷移する確率は、Ｄ（ｇｄ，ｇ２’）／ΣｎＤ（ｇｄ，ｇｎ’）＝６／１４＝０．４２８…、敵機が状態ｓ３’に遷移する確率は、Ｄ（ｇｄ，ｇ３’）／ΣｎＤ（ｇｄ，ｇｎ’）＝１／１４＝０．０７…、敵機が状態ｓ４’に遷移する確率は、Ｄ（ｇｄ，ｇ４’）／ΣｎＤ（ｇｄ，ｇｎ’）＝１／１４＝０．０７…と求めることができる。
【００１７】
第１状態遷移確率計算部２２は、変位量（ｄＸ，ｄＹ）だけ平行移動させた格子ｇｄと重なる格子ｇｎ’に対応した状態ｓｎ’へ遷移する状態遷移確率Ｐｅ（ｗ，ｋ，ｌａｕ，ｓ，ｓ’）については、上記式（１）を計算することにより求める。上記状態ｓｎ’以外の状態ｓ’に遷移する確率Ｐｅ（ｗ，ｋ，ｌａｕ，ｓ，ｓ’）については、０とする。
このようにして計算された状態遷移確率Ｐｅ（ｗ，ｋ，ｌａｕ，ｓ，ｓ’）は、乗算部２３に出力される。
【００１８】
＜ステップＳ３＞
乗算部２３は、上記状態遷移確率Ｐｅ（ｗ，ｋ，ｌａｕ，ｓ，ｓ’）に、自機が行動（ｗ）を選択する確率Ｐｖ（ｓ，ｗ）を乗算する。計算結果であるＰｖ（ｓ，ｗ）・Ｐｅ（ｗ，ｋ，ｌａｕ，ｓ，ｓ’）は、第２状態遷移確率計算部２４に出力される。
特にデータがなければ、自機が行動（ｗ）を選択する確率Ｐｖ（ｓ，ｗ）は、１を自機の移動速度の種類の数Ｗで割った値にすることができる。
【００１９】
＜ステップＳ４＞
第２状態遷移確率計算部２４は、上記Ｐｖ（ｓ，ｗ）・Ｐｅ（ｗ，ｋ，ｌａｕ，ｓ，ｓ’）について、自機の行動（ｗ）についての和を取ることにより、状態ｓにある敵機が各行動（ｋ，ｌａｕ）を取ったときに、状態ｓ’に遷移する状態遷移確率Ｐ（ｓ，ｓ’，ｋ，ｌａｕ）を求める。すなわち、第２状態遷移確率計算部２４は、
Σｗ∈ＷＰｖ（ｓ，ｗ）・Ｐｅ（ｗ，ｋ，ｌａｕ，ｓ，ｓ’）
を計算することにより、状態遷移確率Ｐ（ｓ，ｓ’，ｋ，ｌａｕ）を求める。計算された状態遷移確率Ｐ（ｓ，ｓ’，ｋ，ｌａｕ）は、動作計画部４０に出力される。
【００２０】
＜ステップＳ５＞
報酬決定部３０は、状態ｓと行動（ｋ，ｌａｕ）と遷移先の状態ｓ’のすべての組み合わせについて、状態ｓにある敵機が行動（ｋ，ｌａｕ）を取って状態ｓ’に遷移したときの報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）を決定する。
報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）は、ユーザが任意に設定することができる。例えば、報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）は、以下のように設定することができる。
【００２１】
≪報酬ｒの決め方１≫
第１射線判定部３３は、行動（ｋ，ｌａｕ）を選択することにより、状態ｓ’（Ｘ’，Ｙ’，Ｂ’）に遷移した敵機の自機位置からの相対位置（Ｘ’，Ｙ’）から、自機が敵機の射線上にあるかどうかを判定する。自機が敵機の射線上にあるかどうかは、敵機の攻撃弾ｉの飛来方向を（ｃｏｓθｉ，ｓｉｎθｉ）とすると、上記相対位置（Ｘ’，Ｙ’）における格子が線分（ｔ×ｃｏｓθｉ，ｔ×ｓｉｎθｉ）を含むか否かにより、判定することができる。
【００２２】
第１射線判定部３３は、予め設定された敵機の攻撃弾ｉの飛来方向（ｃｏｓθｉ，ｓｉｎθｉ）を記憶部１０から読み出し、上記相対位置（Ｘ’，Ｙ’）における格子が線分（ｔ×ｃｏｓθｉ，ｔ×ｓｉｎθｉ）を含むか否かを判定する。自機が、遷移後に相対位置（Ｘ’，Ｙ’）に位置する敵機の射線上にあると判定された場合には、第１射線判定部３３は、そのような状態ｓと行動（ｋ，ｌａｕ）と遷移先の状態ｓ’の組み合わせについての報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）を、自機が、遷移後に相対位置（Ｘ’，Ｙ’）に位置する敵機の射線上にない場合よりも、高く設定する。
このように報酬を定めることにより、敵機が、敵機の射線上に自機が位置するように行動する方策πを得ることができる。
【００２３】
≪報酬ｒの決め方２≫
第２射線判定部３４は、行動（ｋ，ｌａｕ）を選択することにより、状態ｓ’（Ｘ’，Ｙ’，Ｂ’）に遷移した敵機の自機位置からの相対位置（Ｘ’，Ｙ’）が、自機の射線上にあるかどうかを判定する。自機の射線上にあるかどうかは、自機の攻撃弾ｊの飛来方向を（ｃｏｓθｊ，ｓｉｎθｊ）とすると、上記相対位置（Ｘ’，Ｙ’）における格子が線分（ｔ×ｃｏｓθｊ，ｔ×ｓｉｎθｊ）を含むか否かにより、判定することができる。
【００２４】
第２射線判定部３４は、予め設定された自機の攻撃弾ｊの飛来方向（ｃｏｓθｊ，ｓｉｎθｊ）を記憶部１０から読み出し、上記相対位置（Ｘ’，Ｙ’）における格子が線分（ｔ×ｃｏｓθｊ，ｔ×ｓｉｎθｊ）を含むか否かを判定する。遷移後の敵機の相対位置（Ｘ’，Ｙ’）が自機の射線上にあると判定された場合には、第２射線判定部３４は、そのような状態ｓと行動（ｋ，ｌａｕ）と遷移先の状態ｓ’の組み合わせについての報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）を、遷移後の敵機の相対位置（Ｘ’，Ｙ’）が自機の射線上にない場合よりも、低く設定する。
このように報酬を定めることによって、敵機が自機の射線を避けるように行動する方策πを得ることができる。
【００２５】
≪報酬ｒの決め方３≫
距離計算部３１が、遷移先の状態ｓ’における敵機の自機位置からの相対距離（Ｘ’，Ｙ’）から敵機と自機の距離ｒを計算し、その距離ｒが小さくなるほど、その状態ｓと行動（ｋ，ｌａｕ）と遷移先の状態ｓ’についての報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）を高く設定することができる。
このように報酬を定めることによって、敵機が自機に接近する行動を選択する方策πを得ることができる。
【００２６】
≪報酬ｒの決め方４≫
命中率計算部３２が、状態ｓにおける敵機の自機位置からの相対距離（Ｘ，Ｙ）から、敵機の攻撃弾の自機への命中率を計算する。命中率計算部３２は、その計算結果を、その状態ｓにおいて敵機が攻撃弾を発射する行動（ｋ，ｌａｕ＝１）を取る場合の報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）に設定することができる。
【００２７】
ここで、自機と敵機の距離がｒのとき、敵機が攻撃弾によって自機を撃墜する潜在的な確率Ｐｓは、
Ｐｓ＝Ａｅｘｐ（−ａｒ）  …（２）
で与えられると考えられる。Ａとａは正の定数である。例えば、自機の大きさと敵弾の攻撃の大きさの和の半分の値をＳ、画面の長さをＬ、Ｕを０．１〜０．５の任意の実数とすると、Ａを１．０〜０．８、ａを、
ａ＝Ｕ×（Ｌ／Ｓ）-１．５ 
とすると、経験上、精度の高い自機撃墜確率Ｐを求めることができる。さらに具体的に言うと、例えば、ゲーム画面が縦６００ピクセル、横４００ピクセル程度の大きさ、自機の形状が３２×３２ピクセルの大きさ、敵機の攻撃弾の大きさが４ピクセルであるとき、Ａ＝１．０〜０．８、ａ＝０．００１〜０．０１とすると良い。上記（２）式によれば、敵機が攻撃弾によって自機を撃墜する潜在的な確率Ｐは、図５に示すように、敵機と自機の距離ｒが小さくなるにつれて、指数関数的に上昇する。
【００２８】
距離計算部３１は、状態ｓにおける敵機の自機からの相対位置（Ｘ，Ｙ）から、状態ｓにおける敵機と自機の距離ｒを計算する。
命中率計算部３２は、距離計算部３１が計算した距離ｒと、記憶部１０から読み出したＡとａとから、上記（２）式を計算することにより、敵機の攻撃弾の自機への命中率Ｐｓを計算する。命中率計算部３２は、このＰｓを、状態ｓにおいて敵機が行動（ｋ，ｌａｕ＝１）を選択して状態ｓ’に遷移した場合の報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）に設定する。
このように報酬を定めることによって、敵機が自機に十分に接近してから攻撃弾を発射する行動を選択する方策πを得ることができる。
【００２９】
≪報酬ｒの決め方５≫
敵機の残存攻撃弾数Ｂが何発目のときにどの相対位置（Ｘ，Ｙ）において、攻撃弾を発射するのかは、入力部３９から入力することによりユーザが自由に設定することができる。報酬決定部３０の設定状態検出部３５は、ユーザの設定により予め定められた敵機の残存攻撃弾数Ｂごとの相対位置（Ｘ，Ｙ）を検出し、その状態ｓ（Ｘ，Ｙ，Ｂ）と攻撃弾を発射する行動（ｋ，ｌａｕ＝１）と遷移先の状態ｓ’（Ｘ’，Ｙ’，Ｂ’）についての報酬（ｓ，ｓ’，ｋ，ｌａｕ）を、その他の状態ｓと行動（ｋ，ｌａｕ）と遷移先の状態ｓ’についての報酬（ｓ，ｓ’，ｋ，ｌａｕ）よりも高く設定する。
【００３０】
例えば、状態ｓ１（Ｘ＝３，Ｙ＝１，Ｂ＝２）において、攻撃弾を発射する行動（ｋ，ｌａｕ＝１）を取り、状態ｓ’に遷移する場合についての報酬（ｓ，ｓ’，ｋ，ｌａｕ）を１に設定し、その他の、敵機の残存攻撃弾数Ｂ＝２である状態ｓと行動（ｋ，ｌａｕ）と遷移先の状態ｓ’の組み合わせについての報酬（ｓ，ｓ’，ｋ，ｌａｕ）を０に設定する。また、状態ｓ２（Ｘ＝−３，Ｙ＝１，Ｂ＝１）において、攻撃弾を発射する行動（ｋ，ｌａｕ＝１）を取り、状態ｓ’に遷移する場合についての報酬（ｓ，ｓ’，ｋ，ｌａｕ）を１に設定し、その他の、敵機の残存攻撃弾数Ｂ＝１である状態ｓと行動（ｋ，ｌａｕ）と遷移先の状態ｓ’の組み合わせについての報酬（ｓ，ｓ’，ｋ，ｌａｕ）を０に設定する。
【００３１】
このように報酬を設定することにより、敵機の残存攻撃弾数Ｂ＝２の状態においては、まず、敵機が相対位置（Ｘ＝３，Ｙ＝１）まで移動してこの位置で攻撃弾を発射し、その後、敵機が相対位置（Ｘ＝−３，Ｙ＝１）まで移動してこの位置で攻撃弾を発射するような方策πを得ることができる。
【００３２】
≪報酬の決め方６≫
報酬の決め方１〜５で説明した報酬の定め方を組み合わせて、報酬を決定しても良い。
例えば、まず、第２射線判定部３４が、報酬の決め方２で説明した方法を用いて、遷移後の敵機の相対位置（Ｘ’，Ｙ’）が自機の射線上にある場合の、状態ｓと行動（ｋ，ｌａｕ）と遷移先の状態ｓ’の組み合わせについての報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）を−１に設定する。そして、命中率計算部３２が、報酬の決め方４で説明した方法を用いて、それ以外の状態ｓと行動（ｋ，ｌａｕ）と遷移先の状態ｓ’の組み合わせについての報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）を定めるようにすることができる。
また、報酬決定部３０、距離計算部３１、命中率計算部３２、第１射線判定部３３、第２射線判定部３４、設定状態検出部３５の何れかが決定した報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）が、一時記憶部３８に格納されているものとする。このとき、上記決定をした手段以外の報酬決定部３０、距離計算部３１、命中率計算部３２、第１射線判定部３３、第２射線判定部３４、設定状態検出部３５の何れかが、一時記憶部３８から報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）を読み出し、その報酬について補正をするようにしても良い。
【００３３】
例えば、第２射線判定部は、遷移後の敵機の相対位置（Ｘ’，Ｙ’）が、自機の射線上にあると判定された場合には、その状態ｓと行動（ｋ，ｌａｕ）と遷移先の状態ｓ’の組み合わせについての報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）を、一時記憶部３８から読み出した報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）に０．５を掛けた値に設定し、自機の射線上にないと判定された場合には、その状態ｓと行動（ｋ，ｌａｕ）と遷移先の状態ｓ’の組み合わせについての報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）を、一時記憶部３８から読み出した報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）に１を掛けた値に設定することができる。
【００３４】
＜ステップＳ６＞
動作計画部４０は、状態ｓ（Ｘ，Ｙ，Ｂ）と行動（ｋ，ｌａｕ）と遷移先の状態ｓ’（Ｘ’，Ｙ’，Ｂ’）の各組み合わせごとの状態遷移確率Ｐ（ｓ，ｓ’，ｋ，ｌａｕ）と、報酬ｒ（ｓ，ｓ’，ｋ，ｌａｕ）とから、ダイナミックプログラミング法により、敵機行動方策π（ｓ，ｓ’，ｋ，ｌａｕ）を求める。ダイナミックプログラミング法の処理は、周知技術であるため説明は省略する（例えば、上記参考文献１参照）。
計算された敵機行動方策π（ｓ，ｓ’，ｋ，ｌａｕ）は、敵機行動方策データ５０として格納される。敵機行動方策データ５０は、例えば、すべての敵機の状態ｓ（Ｘ，Ｙ，Ｂ）に対して、敵機の報酬ｒを最大化する行動（ｋ，ｌａｕ）が対応付けられたデータベースである。
【００３５】
＜ステップＳ７＞
行動決定部６０は、敵機の行動（ｋ，ｌａｕ）を選択し、その行動（ｋ，ｌａｕ）から敵機の位置を更新する。具体的には、敵機行動選択部６２が、状態獲得部６１が獲得した敵機の状態ｓ（Ｘ，Ｙ，Ｂ）をキーにして、敵機行動方策データ５０を検索することにより、敵機の行動（ｋ，ｌａｕ）を求める。選択された行動（ｋ，ｌａｕ）は、敵機位置計算部６３に出力される。敵機位置計算部６３は、記憶部１０から、敵機が行動（ｋ，ｌａｕ）を取ったときの移動速度（Ｖｅｘ（ｋ），Ｖｅｙ（ｋ））と行動単位時間Ｔを読み出し、（Ｔ×Ｖｅｘ（ｋ），Ｔ×Ｖｅｙ（ｋ））を計算することにより、更新後の敵機の位置を求める。更新後の敵機の位置は、表示部７０に出力される。
上記のステップＳ１〜Ｓ７の処理を一定時間間隔τおきに行うことにより、敵機の動作がより知的になり、これまで以上にゲーム性の増したシューティングゲームを実現することができる。
【００３６】
［変形例等］
上記実施形態では、ステップＳ３において、自機が行動（ｗ）を選択する確率Ｐｖ（ｓ，ｗ）は、１を自機の移動速度の種類の数Ｗで割った値とした。しかし、自機が行動（ｗ）を選択する確率Ｐｖ（ｓ，ｗ）を、プレイヤーの操作履歴から計算しても良い。
【００３７】
状態遷移確率計算部２０の操作履歴獲得部２５は、例えば、相対位置（Ｘ，Ｙ）において各行動（ｗ）が選択された回数Ｄｗ（Ｘ，Ｙ）とすると、各相対位置（Ｘ，Ｙ）ごとにＤｗ（Ｘ，Ｙ）をカウントする。敵機の自機位置からの相対位置（Ｘ，Ｙ）ごとの操作履歴Ｄｗ（Ｘ，Ｙ）は、操作履歴データベース２６に格納される
確率計算部２７は、操作履歴データベース２６から、Ｄｗ（Ｘ，Ｙ）を読み出し、
Ｐｖ（ｓ，ｗ）＝Ｄｗ（Ｘ，Ｙ）／Σｗ∈ＷＤｗ（Ｘ，Ｙ）
を計算することにより、各状態ｓにおいて自機が行動（ｗ）を選択する確率Ｐｖ（ｓ，ｗ）を求める。乗算部２３は、確率計算部２７が計算した上記Ｐｖ（ｓ，ｗ）を用いて、Ｐｖ（ｓ，ｗ）・Ｐｅ（ｗ，ｋ，ｌａｕ，ｓ，ｓ’）を計算する。
【００３８】
このように、ゲームプレイ中に操作履歴を記録して、その結果をマルコフ空間内での敵機の状態遷移確率の算出に反映し、ゲーム中にオンラインで動作計画法による計画計算を行うことで、敵機の行動方策πを、プレイヤーの自機操作の癖を反映したものに更新することができる。
また、上記実施形態におけるステップＳ１〜Ｓ７の処理を行う時間間隔であるτの時間長を調節することで、ゲームの難易度を調整することができる。一般に、τの時間長が長ければ、敵機の行動選択頻度が下がるため、敵機の動作は単純化し、また、自機攻撃回避動作の遅れも生じるので、ゲームの難易度は下がる。
【００３９】
また、上記シューティングゲーム処理装置１００の処理機能をコンピュータによって実現することができる。この場合、シューティングゲーム処理装置１００の処理機能の内容はプログラムによって記述される。そして、このプログラムを図６に示すようなコンピュータで実行することにより、上記シューティングゲーム処理装置１００の各処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００４０】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００４１】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、シューティングゲーム処理装置等を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
また、本発明であるシューティングゲーム処理方法、その装置、そのプログラム及びその記録媒体は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【図面の簡単な説明】
【００４２】
【図１】シューティングゲーム処理装置１００の機能構成を例示する図。
【図２】シューティングゲーム処理装置１００の処理フローを例示する図。
【図３】シューティングゲームの模式図。
【図４】状態遷移確率Ｐｅの計算の説明を補助するための図。
【図５】自機と敵機の距離ｒと自機撃墜確率Ｐの関係を例示した図。
【図６】本発明によるシューティングゲーム処理装置を、コンピュータにより実行するときの機能構成を例示した図。
【符号の説明】
【００４３】
１  自機
２  敵機
３  攻撃弾
４  攻撃弾
５  ＣＰＵ
６  ＲＡＭ
７  出力部
８  補助記憶部
９  入力部
９’  バス
１０  記憶部
２０  状態遷移確率計算部
２１  変位量計算部
２２  状態遷移確率計算部
２３  乗算部
２４  状態遷移確率計算部
２５  操作履歴獲得部
２６  操作履歴データベース
２７  確率計算部
３０  報酬決定部
３１  距離計算部
３２  命中率計算部
３３  第１射線判定部
３４  第２射線判定部
３５  設定状態検出部
３８  一時記憶部
３９  入力部
４０  動作計画部
５０  敵機行動方策データ
６０  行動決定部
６１  状態獲得部
６２  敵機行動選択部
６３  敵機位置計算部
７０  表示部
１００  シューティングゲーム処理装置
【図１】
0004804226.tif 000002
【図２】
0004804226.tif 000003
【図３】
0004804226.tif 000004
【図４】
0004804226.tif 000005
【図５】
0004804226.tif 000006
【図６】
0004804226.tif 000007