(57)【特許請求の範囲】
【請求項１】
遊戯者が操作信号を入力するための入力装置と，
前記入力装置からの前記操作信号に基づいて第一のキャラクタの動き情報としてのモーション番号を決定し，
前記第一のキャラクタと対戦する第二のキャラクタの動き情報としてのモーション番号を前記遊戯者の行動の傾向に合わせて選択し，
前記第一のキャラクタと前記第二のキャラクタ間の対戦ゲームの制御を行なうＣＰＵと，
前記第一のキャラクタ及び前記第二のキャラクタの行動として再生するモーションを表示する表示部を含む表示装置と，
前記第一のキャラクタ及び第二のキャラクタの取り得る技と，前記技を取るときに再生するモーション番号列が対応づけられた知識データと，
前記第一のキャラクタ及び第二のキャラクタの状態が変化する都度，対応して値が変わるキャラクタの状態を示すデータであって，少なくともキャラクタの仮想空間における座標位置と，再生しているモーション番号のデータを含むキャラクタ状態データと，
前記第一のキャラクタ及び第二のキャラクタの前記モーション番号列を意味し，前記キャラクタ状態データから読み出されるキャラクタの動き情報としてのモーション番号を時系列に記録するキャラクタ状態遷移データと，
ゲームをしている前記遊戯者の行動結果からデータベース化された前記遊戯者の行動の傾向を示す遊戯者個人データと，
前記第二のキャラクタの現在の行動パターンを示すデータである行動パターンデータと，
前記第二のキャラクタの技及び，技と技の間隔を定義する行動パターンを表す学習データと，
を記憶するメモリを有し，
前記ＣＰＵは，
前記第一のキャラクタ及び第二のキャラクタの決定された行動に基づき，それぞれのキャラクタの状態を変え，
この状態の変化に対して判定される一時的あるいは最終的な勝敗の結果に基づき前記キャラクタ状態データを更新し，
前記キャラクタ状態データを参照して，前記遊戯者の行動の傾向を調べて前記遊戯者個人データを更新し，
前記キャラクタ状態データからモーション番号を読み出し，モーション番号列を表すキャラクタ状態遷移データとして前記メモリに時系列に記録し，
前記キャラクタ状態遷移データとして前記メモリ記録されているモーション番号列を参照し，前記知識データに定義されているモーション番号列と照合して，前記第二のキャラクタの技及び，技と技の間隔を決定し，決定された技及び，技と技の間隔を定義する行動パターンを学習データとして前記メモリに記録し，
前記キャラクタ状態データと前記遊戯者個人データを基に，前記第二のキャラクタの行動としてどういう傾向の技を選ぶかという方向性を示すフラグを行動パターンデータに記憶し，前記フラグに基づいて，前記知識データ及び学習データから前記第二のキャラクタの行動パターンを選択し，
該選択された行動パターンを前記第二のキャラクタの行動パターンデータとして，前記メモリに記憶する，
ことを特徴とする学習機能を有するコンピュータゲーム装置。
【請求項２】
請求項１において，
前記生成される学習データは，既に学習済みの行動パターンでなく，前記メモリに空きがなければ，優先度の低いパターンを消去して，前記メモリに記録されることを特徴とする学習機能を有するコンピュータゲーム装置。
【請求項３】
遊戯者が操作信号を入力するための入力装置からの前記操作信号に基づいて第一のキャラクタの動き情報としてのモーション番号を決定し，
前記第一のキャラクタと対戦する第二のキャラクタの動き情報としてのモーション番号を前記遊戯者の行動の傾向に合わせて選択し，
前記第一のキャラクタ及び前記第二のキャラクタの決定された行動を表示部に表示して対戦ゲームを実行するＣＰＵと，前記第一のキャラクタ及び第二のキャラクタの取り得る技と，前記技を取るときに再生するモーション番号列が対応づけられた知識データを記憶するメモリを備えるコンピュータゲーム装置におけるキャラクタの行動パターンの決定方法において，
前記ＣＰＵが，
前記第一のキャラクタ及び第二のキャラクタの状態が変化する都度，対応して値が変わるキャラクタの状態を示すデータであって，少なくともキャラクタの仮想空間における座標位置と，再生しているモーション番号のデータを含むキャラクタ状態データと，
前記第一のキャラクタ及び第二のキャラクタの前記モーション番号列を意味し，前記キャラクタ状態データから読み出されるキャラクタの動き情報としてのモーション番号を時系列に記録するキャラクタ状態遷移データと，
ゲームをしている前記遊戯者の行動結果からデータベース化された前記遊戯者の行動の傾向を示す遊戯者個人データと，
前記第二のキャラクタの現在の行動パターンを示すデータである行動パターンデータと，
前記第二のキャラクタの技及び，技と技の間隔を定義する行動パターンを表す学習データと，を
前記メモリに記憶し，
さらに，前記ＣＰＵは，
前記第一のキャラクタ及び第二のキャラクタの決定された行動に基づき，それぞれのキャラクタの状態を変え，
この状態の変化に対して判定される一時的あるいは最終的な勝敗の結果に基づき前記キャラクタ状態データを更新し，
前記キャラクタ状態データを参照して，前記遊戯者の行動の傾向を調べて前記遊戯者個人データを更新し，
前記キャラクタ状態データからモーション番号を読み出し，モーション番号列を表すキャラクタ状態遷移データとして前記メモリに時系列に記録し，
前記キャラクタ状態遷移データとして前記メモリに記録されているモーション番号列を参照し，前記知識データに定義されているモーション番号列と照合して，前記第二のキャラクタの技及び，技と技の間隔を決定し，決定された技及び，技と技の間隔を定義する行動パターンを学習データとして前記メモリに記録し，
前記キャラクタ状態データと前記遊戯者個人データを基に，前記第二のキャラクタの行動としてどういう傾向の技を選ぶかという方向性を示すフラグを行動パターンデータに記憶し，当該フラグに基づいて，前記知識データ及び学習データから前記第二のキャラクタの行動パターンを選択する
ことを特徴とするコンピュータゲーム装置におけるキャラクタの行動パターンの決定方法。
【請求項４】
請求項３において，
前記生成される学習データは，既に学習済みの行動パターンでなく，前記メモリに空きがなければ，優先度の低いパターンを消去して，前記メモリに記録されることを特徴とするコンピュータゲーム装置におけるキャラクタの行動パターンの決定方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、コンピュータゲーム装置に関し、特に遊戯者が制御するキャラクタとコンピュータ側から制御するキャラクタ間での対戦ゲームにおいて、コンピュータ側からの制御によるキャラクタの動きが予め決めた内容で一律的（ワンパターン）となることを回避する、学習機能を有するコンピュータゲーム装置に関する。
【０００２】
【従来の技術】
近年、マイクロコンピュータの高集積化、高速化に伴いビデオゲーム装置等のコンピュータゲーム装置が広く普及しその内容もより複雑なものとなっている。
【０００３】
かかるコンピュータゲーム装置は、ゲームプログラムの内容による遊戯者の興味により、普及が左右される。特に、遊戯者側の制御するキャラクタの動きに対し、コンピュータ側が制御するキャラクタの行動が一律的になると、ゲームの内容が興味のないものとなる。
【０００４】
即ち、従来のコンピュータゲーム装置においては、ゲーム装置の製作時あるいは、ゲームプログラムの作成時に、キャラクタの幾つかの行動パターン、及びゲーム実行中の様々な展開を想定し、特定の条件を満たした時にどのような行動を選択するかというパターンの選択法を、予めプログラムやデータベース等に設定しておくものであった。
【０００５】
このような従来の技術ではゲームの難易度や展開を製作者の意図した通りに容易に設定することができる。かかる場合、ゲームとして成立し易いがゲームの展開やコンピュータの実行内容が一律的（ワンパターン）に成りがちである。
【０００６】
このため、遊戯者にコンピュータの実行内容を先読みされたり、ゲーム自体が飽きられてしまう。更に、製作時に予測されなかった、あるいは製作ミスにより対応ができていない遊戯者側の戦術やゲームの局面等が発見されると、殆どの場合コンピュータ側は、これらの問題に対して対応が出来ずに終わる。
【０００７】
このように、ゲームの内容（戦術）が簡単な操作で作業的に行えるものである場合、遊戯者のゲームに対する興味は、すぐにも半減するものとなり、ゲームプログラムの寿命を縮めるものとなる。
【０００８】
こうした一定の作業的な戦術を遊戯者に実行させ難くするために、従来装置では、キャラクタの反応速度を上げたり、遊戯者側の条件を厳しくする方法が試みられてきた。しかし、かかる方法では、悪戯にゲームの難度を上昇させることになり、遊戯者が初心者である場合は、ゲーム自体に興味を失わせるものになるという問題が存在していた。
【０００９】
【発明が解決しようとする課題】
したがって、本発明の目的は、上記の従来装置における問題を解決する学習機能を有するコンピュータゲーム装置を提供することにある。
【００１０】
具体的には、本発明の目的は、ゲームの実行時にコンピュータ側で、コンピュータの制御によるキャラクタの行動パターンを自動的に学習し、学習した後はその学習成果をコンピュータが制御するキャラクタの行動パターンの一つとして実行可能とする学習機能を有するコンピュータゲーム装置を提供することにある。
【００１１】
【課題を解決するための手段】
本発明にしたがう学習機能を有するコンピュータゲーム装置は、遊戯者の操作により第一のキャラクタの行動を制御するデータが入力される入力装置と、第一のキャラクタと対戦する第二のキャラクタの行動を制御するＣＰＵと、ゲームに登場するキャラクタの取りうる行動と、この行動の結果を知識データとして記憶するメモリと、前記ＣＰＵの制御によりゲームを表示する出力装置を有し、ＣＰＵは、ゲームの勝敗の結果に基づくゲームに登場するキャラクタの状態を参照し、前記メモリに記憶される知識データに基づき、次回以降に取るべき第二のキャラクタの行動を決定するためのデータベースを構築するように構成する。
【００１２】
さらに、具体的構成として、本発明の学習機能を有するコンピュータゲーム装置において、前記メモリには、更に、ゲームをする遊戯者の特徴、ゲーム能力を前記第一のキャラクタの行動結果から求め、データベース化されたプレイヤ個人データ、実行された前記第一、第二のキャラクタの行動を時系列的に配列し構成されるキャラクタ状態遷移データを記憶する。そして、ＣＰＵは、これらデータに基づき、前記第二のキャラクタの次回以降の行動を決定するためのデータベースを構築するように構成される。
【００１３】
また、前記第二のキャラクタの次回以降の行動を決定するためのデータベースを学習データとして、記憶する第二のメモリを更に設け、前記該第二のメモリに記憶された学習データを前記知識データとともに、前記第二のキャラクタの次回以降の行動の決定に用いるように構成する。
【００１４】
【作用】
本発明は、上記構成により、ゲーム中において、予め登録しておく知識データ及び、プレイヤ側及びコンピュータ側の行動の結果生じるキャラクタの状態の遷移の状況を基に、コンピュータ側のキャラクタの行動パターンを随時、作成し学習データとして記憶する。
【００１５】
この学習記憶された行動パターンは、前記予め登録しておく知識データと等価的に、以降のコンピュータ側キャラクタの行動パターンの一つとして参照される。上記のように本発明においては、ゲーム中にコンピュータ側キャラクタの行動パターンとして、新たに学習により、蓄積され、以降のゲームに利用される。
【００１６】
したがって、従来のゲーム装置におけるコンピュータ側キャラクタの行動パターンが一律的となることを回避することが可能である。
【００１７】
【実施例】
図１は、本発明にしたがうコンピュータゲーム装置の実施例ブロック図である。図において、１は、ゲーム装置本体の制御部であり、ＣＰＵ本体である。ＣＰＵ本体１は、ＲＯＭ２に記憶されるゲームプログラム本体２０に基づき後に説明するゲーム装置全体の制御を行う。
【００１８】
更に、ＣＰＵ本体１は、同様にゲームプログラム本体２０の制御に基づき、本発明の特徴を実行すべく複数のサブルーチン処理を行う。これらのサブルーチン処理は、ＣＰＵ本体１内にブロックとして、キャラクタ行動決定手続き１０、動作結果判定手続き１１、学習手続き１２及び出力制御手続き１３として示している。これらの各手続きの内容は、後に順次説明する。
【００１９】
ＣＰＵ本体１には、ＲＯＭ２、５、ＲＡＭ３、ＳＲＡＭ４の各メモリと、入力装置６及び出力制御回路７を通して接続される表示モニタ等の出力装置８を有して構成される。
【００２０】
かかるゲーム装置により、図２に示すような格闘技ゲームを実行するゲームプログラムを対象として本発明装置の詳細構成及び動作を以下に説明する。図２は、出力装置８のモニタ画面の一例を示している。即ち、図２において、９はモニタ画面であり、９０、９１は格闘を行うキャラクタである。
【００２１】
９０は遊戯者の入力装置６による操作によりその動きが制御されるキャラクタであり、９１はコンピュータ側の所定のプログラム制御により動きが制御されるキャラクタである。
【００２２】
９２は、ゲームの制限時間を表示する領域である。表示の方法によりゲームの制限時間をゲームの経過時間または、ゲームの終了までの時間として表示する。９３、９４は、それぞれキャラクタ９０、９１の体力ゲージを表示する領域である。
【００２３】
かかる表示の格闘技ゲームは、キャラクタが１対１でパンチやキック等の技の動きを繰り出し、戦う対戦格闘ゲームである。一方のキャラクタの攻撃が相手のキャラクタに当たると、それに応じて、相手のキャラクタの体力ゲージ９３、９４の数値が減る。
【００２４】
領域９２に表示される制限時間内に相手の体力ゲージを０にするか、相手をリング９５外に押し出した場合に勝ちとなる。また、キャラクタ９０、９１がリング９５内にあり、制限時間が過ぎた場合は、残りの体力ゲージが大きいキャラクタが勝ちとなる。
【００２５】
説明を図１に戻すと、ＲＯＭ２は、ゲームプログラムの他に知識データ２１を記憶する。ここで知識データとは、ゲームに登場する各キャラクタの取り得る行動と、それに対応する結果である。例えば、入力装置６により入力されるデータに応じた、各キャラクタが取り得る全ての行動をデータとして記憶しているものである。
【００２６】
ＲＡＭ３は、ワークＲＡＭであり、行動パターンデータ３０、キャラクタ状態データ３１、プレイヤ個人データ３２、キャラクタ状態遷移データ３３を格納する。更に、ＳＲＡＭ４は、学習データ４０を格納する。ＲＯＭ５は、画像データ、音声データ等の出力データ５０を格納する。
【００２７】
したがって、遊戯者は、出力装置８に表示される情報を基に、入力装置６を操作することによりゲーム中での行動が可能となる。即ち、入力装置６から入力されたデータは、ＣＰＵ本体１に送られ、プレイヤ行動決定プログラム１０１により処理される。
【００２８】
同時に、ＣＰＵ本体１は、ＲＯＭ１に記憶される知識データ２１、ＲＡＭ３に記憶されるキャラクタ状態データ３１、プレイヤ個人データ３２、ＳＲＡＭ４の学習データ４０を参照して、コンピュータ側行動決定プログラム１０２により処理されて、コンピュータ側キャラクタの行動を決定する。
【００２９】
このように遊戯者側及びコンピュータ側のキャラクタの行動が決定されると、これを基にそれぞれのキャラクタの状態を変える。この状態の変化に対して、動作結果判定手続き１１の処理により、ゲームの一時的あるいは、最終的な勝敗を判定する。その判定結果に基づきＲＡＭ３のキャラクタ状態データ３１を更新保存する。
【００３０】
更に、ＣＰＵ本体１は、ＲＡＭ３のキャラクタ状態データ３１から必要なデータを、学習手続き１２の処理に基づき読出し、キャラクタ遷移状態データ３３としてＲＡＭ３に保存する。
【００３１】
ＣＰＵ本体１は、ＲＡＭ３中のキャラクタ状態データ３１の内、必要なデータを参照し、学習手続き１２の処理内のプレイヤの特徴、能力判定プログラム１２１の処理にしたがって、ＲＡＭ３中にプレイヤ個人データ３２を作成更新する。
【００３２】
更に、ＣＰＵ本体１は、ＲＡＭ３中のキャラクタ状態遷移データ３３を参照し、コンピュータ側キャラクタ行動パターン学習プログラム１２２の処理にしたがって、行動パターンを作成する。そしてこの作成された行動パターンをＳＲＡＭ４に学習データ４０として更新保存する。
【００３３】
更に、全体構成として本発明にしたがうゲーム装置の動作は、図３のゲーム全体フローに基づき制御される。このフローに基づく動作は、ＲＯＭ２に格納されるゲームプログラム本体２０に基づきＣＰＵ１の制御により実行される。
【００３４】
図３において、図１において図示しないスイッチにより電源が投入され、またはリセットされる（ステップＳ１）と、ワークＲＡＭ３の初期化が行われる（ステップＳ２）。ついで、ゲームを開始するか否かが判断される（ステップＳ３）。
【００３５】
ゲームを開始する場合は、キャラクタ行動の決定手続きフローＳＳ１が実行される。キャラクタ行動の決定手続きフローＳＳ１において、先ずプレイヤ（遊戯者）側のキーが入力されたこと（入力装置６により入力が行われたこと）が判定される（ステップＳ４）。
【００３６】
ついで、コンピュータ側が制御するキャラクタ９１の次の行動が思考される（ステップＳ５）。これに基づきコンピュータ側のキー入力が行われる（ステップＳ６）。そしてコンピュータ側のキー入力に対応してコンピュータ側のキャラクタ９１の動作が決定され実行される（ステップＳ７）。ここで、コンピュータ側のキー入力とは、プログラムによる、スイッチ入力と等価な電子的な処理を意味するものである。
【００３７】
ついで、動作結果の判定が行われる（ステップＳ８）。ここで、上記プレイヤ側の入力判定（ステップＳ４）及びプレイヤ側のキャラクタの動作決定（ステップＳ７）は、ＣＰＵ１において、入力装置６からの入力を検知し、サブルーチン処理であるキャラクタ行動決定手続き１０の内、プレイヤ側行動決定プログラムにしたがい実行される（ステップＳ１０１）。
【００３８】
一方、コンピュータ側が制御するキャラクタ９１の次の行動の思考（ステップＳ５）、コンピュータ側のキー入力の判定（ステップＳ６）及びコンピュータ側のキャラクタの動作決定（ステップＳ７）は、ＣＰＵ１において、サブルーチン処理であるキャラクタ行動決定手続き１０の内、コンピュータ側行動決定プログラム１０２にしたがい実行される。
【００３９】
図３のフローにおいて、次に双方のキャラクタ行動の結果を判定する（ステップＳ８）。この判定は、ＣＰＵ１において、サブルーチン処理である動作結果判定手続き１１により実行される。
【００４０】
この後、学習手続きＳＳ２が実行される。学習手続きＳＳ２は、図１のＣＰＵ１において、サブルーチン処理である学習手続き１２により実行される。更に、学習手続き１２において、プレイヤの特徴、能力判定プログラム１２１によりプレイヤ側キャラクタ９０の行動結果を元にプレイヤの特徴、能力が判定され、これを個人データとしてＲＡＭ３のプレイヤ個人データ領域３２に記録する（ステップＳ９）。
【００４１】
更に、ＣＰＵ１におけるサブルーチン処理である学習手続き１２において、キャラクタ行動パターン学習プログラム１２２が実行され、その結果を学習データ４０としてＳＲＡＭ４に格納する（ステップＳ１０）。
【００４２】
次いで、図３のフローにおいて、ゲームの進行に応じ、ＲＯＭ５に記憶されている画像および音声データ５０をＣＰＵ１の出力制御手続き１３の下に出力制御回路７を通して出力装置８に出力する（ステップＳ１１）。
【００４３】
更に、ゲーム終了か否かが判断され（ステップＳ１２）、終了の場合は、ステップＳ３に戻り、未だ終了していなければステップＳ４に戻り、上記の処理を繰り返す。
【００４４】
次に、図３のフローにおける本発明により実行されるキャラクタ行動決定手続きＳＳ１及び学習手続きＳＳ２について、順次詳細に説明する。
【００４５】
図４は、図１のＣＰＵ１におけるキャラクタ行動決定手続き１０のコンピュータ側の行動パターンを決定するプログラムによる動作を説明するフローである。このフローを実行する説明するに当たって、本発明の特徴をより良く理解するために、先にＲＯＭ２の知識データ２１、ＲＡＭ３内のデータ３０〜３３及びＳＲＡＭ４の学習データ４０の内容について説明する。
【００４６】
図５は、ＲＯＭ２内で知識データ２１を記憶する領域の内容を示している。図５に示すようなデータ形式で表示され、全キャラクタ分のデータが用意される。即ち、図５において、２１ａ−０は、ヘッダ部であり、登録している技の数（最大ｍ）を示すものである。
【００４７】
今、登録されている技の数がｋ個であると考えるとメイン部において、各技毎に２１ａ−１〜２１ａ−８により技の内容を定義している。また、例えば２１ａ−１k-1 〜２１ａ−８k-1 は、ｋ番目の技の定義である。
【００４８】
実施例として、各定義の内容を説明すると次のようである。２１ａ−１は、技の属性を示し、攻撃か否か。攻撃であればどの様な種類かを定義する。
【００４９】
２１ａ−２は、技のダメージを示し、攻撃であれば、その威力、そうでない時は、０とする。
【００５０】
２１ａ−３は、攻撃の速さを示し、攻撃判定が出始める表示フレーム数で示される。投げ、攻撃でない技の場合は、０となる。
【００５１】
２１ａ−４は、硬直時間を示し、動作を実行してから次の行動に移行できる迄の表示フレーム数で示される。
【００５２】
２１ａ−５は、射程距離を示し、攻撃のリーチ距離、投げは投げの間合いを示し、攻撃でない場合は０を示す。
【００５３】
２１ａ−６は、移動距離を示し、行動終了後、前後にどのくらい移動するかを示す。
【００５４】
２１ａ−７は、行動を取るときに再生するモーションの番号を列（最大５個）を示す。尚、キャラクタの行動とは、それに対応するモーションを再生することを意味する。
【００５５】
２１ａ−８は、入力コマンドであり、ここで定義される技の行動をとるために必要な入力装置６の入力操作手順を定義する。例えば、次の手順に定義される。
【００５６】
0003999282.tif 000002
更に、上記において、２１ａ−１〜２１ａ−６は、コンピュータ側により制御されるキャラクタ９１の行動を決定する際に参照するデータである。キャラクタ９１と遊戯者により制御されるキャラクタ９０の状態を参照して、いずれのタイプの行動を取るかを決定した後に、この定義テーブルを参照して最適な行動を選択する。
【００５７】
２１ａ−７は、行動パターンを学習する際に参照される。キャラクタのとった行動と、その時に再生されるモーション番号列は、１対１とされているので、ゲーム中に発生したモーション番号列を監視し、ここを参照すればどのような行動をとったかが判る。
【００５８】
更に、２１ａ−８は、実際にコンピュータ側のキャラクタが行動を取る時に参照する。コンピュータ側行動決定プログラム１０２により決まった技を実行する時に、どのようにスイッチをＯＮ／ＯＦＦすればよいかを示している。
【００５９】
次にＲＡＭ３に記憶されるキャラクタ状態データ３１は、ゲームに登場するキャラクタの状態を示している。キャラクタの状態が変化する都度、それに対応して値が変わる。ＣＰＵ１のキャラクタ行動決定手続き１０の処理の結果として、主にこの記憶が更新される。
【００６０】
具体的実施例として、コンピュータ側行動決定プログラム１０２の実行により次にどのような種類の行動を取るべきかを、このキャラクタ状態データ３１（相手が立ち、又はしゃがみの状態か、リング中央か、端か、自分との距離が近いか等の情報）を参照して決定する。
【００６１】
次に、動作結果判定手続き１１の処理によりプレイヤ側及びコンピュータ側のキャラクタ状態データ３１を更新する（キャラクタの表示される座標位置、残りの体力データ等）。尚、キャラクタの表示される座標は２次的なものであり、実際（仮想的）には空間ワールド座標が変化する。これに伴い、表示位置（表示される座標）が変化する。また、キャラクタ状態データ３１は、後に説明するように学習手続き１２の処理のために用いられる。
【００６２】
ＲＡＭ３のプレイヤ個人データ３２の領域に記憶されるデータは、ゲームをしている遊戯者の特徴や能力を行動結果から調べてデータベース化したものである。
【００６３】
具体例としては、キャラクタ状態データ３１のデータから遊戯者がどのような種類の攻撃を出し、またそれが相手に当たったか、防御されたか等の情報を得て、それらをカウントし、遊戯者の行動の傾向を調べる。コンピュータ側行動決定プログラム１０２の実行において、コンピュータ側キャラクタ９１の行動を決定するに際し、このプレイヤ個人データ３２のデータを参照して遊戯者の特徴に合わせてコンピュータ側キャラクタ９１の行動を選択するように制御する。
【００６４】
ついで、ＲＡＭ３に記憶される行動パターンデータ３０は、図６のデータパターンを有する。即ち、この行動パターンデータ３０は、コンピュータ側のキャラクタ９１の現在の行動パターンを示すデータである。例えば、上記ＲＯＭ２の知識データ２１中のどの技をどのようなタイミングで連続して出力するかというようなデータが記憶されている。
【００６５】
ゲーム途中において、ＣＰＵ１のキャラクタ行動決定手続き１０のコンピュータ側行動決定プログラム１０２にしたがいＲＡＭ３に記憶されるキャラクタ状態データ３１、プレイヤ個人データ３２を基に、ＲＯＭ２内の知識データ２１、ＳＲＡＭ４内の学習データ４０のデータにしたがって行動を決定し、行動パターンデータ３０として記憶する。
【００６６】
具体的には、以下のデータ形式で対戦する二人分のデータ領域が確定される。即ち、図６において、３０ｄ−０は、へッダ部であり、キャラクタ状態データ３１、プレイヤ個人データ３２を基にどういう傾向の技を選ぶかという方向性を示すフラグが記録される。
【００６７】
メイン部の３０ｄ─１0 〜３０ｄ─１n は、（ｎ＋１）個の技のそれぞれに付与された番号を示し、３０ｄ─２0 〜３０ｄ─２n は、技と技との間隔即ち、次の技に移行する時間を表示フレーム数で表している。
【００６８】
実施例として、下記のような技に対応して番号が付与される。
【００６９】
３０ｄ−０          フラグ
３０ｄ−１0         上段攻撃
３０ｄ−１1         下段攻撃
３０ｄ−１2         中段攻撃
３０ｄ−１3         ジャンプ
３０ｄ−１4         ダウン
３０ｄ−１5         立ち投げ
３０ｄ−１6         しゃがみ投げ
・・・            ・・・
３０ｄ−１15        攻撃でない
３０ｄ−１16        大ダメージ
３０ｄ−１17        早い技
３０ｄ−１18        射程距離の長い技
３０ｄ−１19        前方に移動する技
３０ｄ−１20        後方に移動する技
３０ｄ−１21        前に移動しない（リングアウトの危険がある場合）
３０ｄ−１22        後に移動しない（リングアウトの危険がある場合）
更にＲＡＭ３に記憶されるキャラクタ状態遷移データ３３は、学習データを構築するために必要な情報を時系列的に記録している。学習手続き１２において、キャラクタ行動パターン学習プログラム１２２の実行の際に、このキャラクタ状態遷移データ３３のデータを参照して、知識データ２１と照合し、学習データ４０を生成する。
【００７０】
具体例としては、キャラクタがある行動を取る時に、それに対応した動き（モーション）が実行される。したがって、キャラクタ状態データ３１からモーション番号を取り出し、その都度、このキャラクタ状態遷移データ３３の領域に記録する。更に、生成されたモーション番号列を知識データ２１中のモーション番号列２１ａ−７と比較照合させることにより、プレイヤ側キャラクタがどういう行動を取ったかを知ることが出来る。
【００７１】
即ち、図７において、キャラクタ状態遷移データ３３は、第一には、プレイヤ側キャラクタが再生したモーション番号列を意味する。一方、ＣＰＵ側のキャラクタの動き（モーション）も、独立に等価に評価している。したがって、第二にはＣＰＵ側キャラクタのモーション番号例も意味する。
【００７２】
更に、図８は、ＳＲＡＭ４内に記憶される学習データ４０の構成を示す図である。この学習データ４０は、コンピュータ側のキャラクタ行動パターンであり、学習プログラム１２２の実行により生成されるデータである。
【００７３】
具体例として、キャラクタが、ある行動（知識データ２１に記憶されている行動）を取った時に、次にどういう行動を、どういうタイミングで実行するかという情報を記録する。
【００７４】
更に、この学習データ４０のデータ構造は、実施例として次のように構成される。以下のデータ形式で、全キャラクタ分に対し領域が確保される。
【００７５】
４０ａ−０は、ヘッダ部であり記憶している技（最初に出す技）のデータ数ｋ（≦ｎ）を示す。４０ａ−１〜４０ａ−４は、メイン部であり、以下の形式のデータ領域を技毎に最大ｍ個分確保している。
【００７６】
メイン部を個々に説明すると、４０ａ−１は、初めに出す技番号であり、知識データ２１中での番号を示す。４０ａ−２は、次に出す技であり、知識データ２１中での番号で示される。
【００７７】
４０ａ−３は、技の有効度即ち、初めに出す技４０ａ−１と次に出す技４０ａ−２の連携がどれだけ有効かを示す。したがって、実際に技が出された時の結果によって常に変動する。４０ａ−４は、技を出す間隔即ち、最初の技４０ａ−１を出してから次の技４０ａ−２を出すまでの期間を表示フレーム数で示す。
【００７８】
図９は、図８をより理解し易くするための、学習データ４０のデータ構造の概念図である。かかる学習データ４０には、学習手続き１２のプログラム処理により、知識データ２１中のどの技とどの技が連携技として効果的であるかというデータが記憶される。
【００７９】
コンピュータ側行動決定プログラム１０２の実行により、技４０ａ−１の中からその時の状態に適した最初の技４０ａ−１i を選択し、更にそれに続く連携技として技４０ａ−２ijを選択する。
【００８０】
更に、４０ａ−２ij＝４０ａ−１l なる技４０ａ−１のデータが存在する場合は、次の例のように、更に続くデータ４０ａ−２lh  を選択できる。
【００８１】
４０ａ−１i   ＝  下パンチ
４０ａ−２ij  ＝  中段キック  ＝４０ａ−１l
４０ａ−２lh  ＝  上段キック
次に、上記に説明した、各メモリにおけるデータを参照しながら先に参照した図４の動作フロー、即ちキャラクタ決定手続きＳＳ１の動作を説明する。
【００８２】
コンピュータ側の行動決定プログラム処理（図１の１０２）がスタートすると、先ずキャラクタの状態を示すデータ３１の中からコンピュータ側のキャラクタの行動決定に際し、必要なデータを抽出する（ステップＳ２０）。即ち、ＲＡＭ３のキャラクタ状態データ３１から対戦相手（遊戯者により制御されるキャラクタ９０）とコンピュータ側キャラクタ９１の位置関係や、相手の状況（例えば、立っているのか、しゃがんでいるのか、攻撃中か、体力はどの位残っているか、自己の体力はどの程度かというデータを参照する。
【００８３】
またプレイヤ個人データ３２により、相手がどういう種類の攻撃に弱いかと言う傾向を調査する。このプレイヤ個人データ３２に対する調査もコンピュータ側行動決定プログラム１０２の実行により行われる。
【００８４】
この結果、何らかの行動パターンが行動パターンデータ３０に既にセットされているか否かを判断し（ステップＳ２１）、既にセットされている場合は、他の行動パターンに切り換えた方が有利であるか否かが判断される（ステップＳ２２）。
【００８５】
他の行動パターンに切り換えることが有利と判断される場合は、行動パターンの変更が可能な状態か否かが判断される（ステップＳ２３）。かかる行動パターンの変更が可能な状態か否かの判断は、例えば、技のコマンドの先行入力が可能であり、未だ行動の制御に移行していない場合であっても、既に入力が完了している時は、行動の変更入力は、不可能とされる。
【００８６】
また技を中断することが可能な場合でも技の硬直時間が長い場合等があり、技を変更することは不利となる場合があり、ＲＯＭ２の知識データ２１に基づき、判断される。行動パターンの変更が可能な場合は、知識データ２１及び学習データ４０の中から、現在の状況下で、より有効と思われる行動パターンを選択してセットする。即ち、どのような技が欲しいかを行動パターンデータ３０（図６参照）における、フラグ３０ｄ−０に要求をセットする（ステップＳ２４）。次いで以下のステップにより行動パターンが決定される。
【００８７】
これにより、行動パターンデータ３０に知識データ２１中の技番号が記録されているので、その技番号に対応する技を出すための入力方法（知識データ２１の２１ａ−８：図５参照）に従いスイッチを入力する、即ちセットされているパターンデータにしたがい、キャラクタの行動が決定される（ステップＳ２５）。この結果、パターン選択は終了し（ステップＳ２６）、所定の終了コード（例えば０×７ｆ）を行動パターンデータ３０にセットする（ステップＳ２７）。
【００８８】
更に、上記ステップＳ２４の詳細な処理の内容は、サブルーチンとして図１０、図１１に示される。図１０及び図１１は、一連のフローであり、分割して図１０にステップＳ２４の詳細（その１）、図１１にステップＳ２４の詳細（その２）として示している。
【００８９】
先ず図１０において、フラグ３０ｄ−０をセットしてコールし、行動パターンデータ３０を初期化する。この初期化において、３０ｄ─１は、終了コード（ｅｎｄ−ｃｏｄｅ：０×７ｆ）で、３０ｄ−２は、初期コード例えば、０でそれぞれを埋める。
【００９０】
ついで、学習データ４０が存在するか否かを判断し（ステップＳ３１）、存在する場合は、学習データ４０（図８参照）中の４０ａ−１の中に行動パターンデータ３０のフラグ３０ｄ−０を満たす技があるか否かを判断する（ステップＳ３２）。
【００９１】
フラグ３０ｄ−０を満たす技があれば、学習データ４０中の４０ａ−１の中で行動パターンデータ３０のフラグ３０ｄ−０を満たす技を全て、バッファに取り出し、その中から任意の技４０ａ−１i を選び、３０ｄ−１にセットする（ステップＳ３３）。
【００９２】
一方、ステップＳ３２において、フラグ３０ｄ−０を満たす技がない場合は、学習データ４０中の４０ａ−１から任意の技４０ａ−１i を選び、行動パターンデータ３０の３０ｄ−１にセットする（ステップＳ３４）。
【００９３】
次に、図１１の処理フローに継続し、学習データ４０の技４０ａ−１i から続く技４０ａ−２i のうちフラグ３０ｄ−０を満たす技があるか否かを判断する（ステップＳ３５）。フラグ３０ｄ−０を満たす技がある場合は、学習データ４０の技４０ａ−２i の中でフラグ３０ｄ−０を満たす技を全てバッファに取り出し、その中から任意の枝４０ａ−２ijを選び、技３０ｄ−１にセットする（ステップＳ３６）。
【００９４】
一方、ステップＳ３５において、フラグ３０ｄ−０を満たす技が無い場合は、技４０−２i の中から任意の技４０−２ijを選び、技３０ｄ−１にセットする（ステップＳ３７）。
【００９５】
ステップＳ３５及び３６に続き、技の間隔４０ａ−４ijを３０ｄ−２セットする（ステップＳ３８）。次いで、３０ｄ−１の領域全てにデータをセットしたか否かを判断する（ステップＳ３９）。３０ｄ−１の領域全てにデータをセットしていなければ、４０ａ−１中に４０ａ−２ij＝４０ａ−１l なる技が存在するか否かを判断する（ステップＳ４０）。ステップＳ４０でＹＥＳの場合は、ステップＳ３５に戻る。
【００９６】
更に、ステップＳ４０でＮＯの場合及び、ステップＳ３９でＹＥＳの場合、１度もフラグ３０ｄ−０を満たす技を選ばなかったかを判断し（ステップＳ４１）、そうであれば、行動パターンデータ３０ｄ−１、３０ｄ−２ａを初期化する（ステップＳ４２）。
【００９７】
ついで、ステップＳ４２の後、及びステップＳ３１でＮＯの場合、知識データ２１の中からフラグ３０ｄ−０を満たす技の全てをバッファに取り出し、その中から任意の技を選び３０ｄ−１にセットする（ステップＳ４３）。ステップＳ４１及びステップＳ４３の後は、上記の図１０及び図１１の処理が繰り返される。
【００９８】
図１２は、図３における学習手続きＳＳ２の詳細フローを示す図である。先ずキャラクタの状態を示すデータ３１の中から行動パターンを生成するのに必要なデータを抽出する（ステップＳ５０）。この処理は、モーション番号をキャラクタ状態データ３１から取り出して、キャラクタ状態遷移データ３３にモーション番号列として記録して行う。
【００９９】
次に十分なデータが集まり、パターンを生成可能かを判断する（ステップＳ５１）。これは、モーション番号列と知識データ２１との一致を調べるのに十分なモーション番号列が得られたか否かで判断する。
【０１００】
パターンの生成が可能でなければ終了し、パターンを生成可能であれば、状態遷移の仕方を基に行動パターンを生成する（ステップＳ５２）。これは、キャラクタ状態遷移データ３３と知識データ２１の一致を行い２つの技番号を得ることにより行う。尚、上記ステップＳ５０〜Ｓ５２の内容は、適用するゲームの内容により異なってくる。
【０１０１】
この生成された行動パターンをもとに学習が行われる（ステップＳ５３）。この行動パターンの学習（ステップＳ５３）の内容は、図１３に示される。図１３のフローにおいて、まず、既に学習済の行動パターンかを判断する（ステップＳ５３１）。既に学習済の行動パターンでなければ、記憶領域に空きが有るか否かを判断する（ステップＳ５３２）。空きがなければ、優先度の低いパターンを消去し（ステップＳ５３３）、新しい行動パターンを学習する（ステップＳ５３４）。この消去は、学習データ４０中の４０ａ−３に相当する値の低いものを消去して行う。
【０１０２】
空きが有ればそのまま新しい行動パターンを学習する（ステップＳ５３４）。行動パターンの学習は、学習データ４０に記録される。
【０１０３】
更に、既に学習済の行動パターンである場合（ステップＳ５３１において、ＹＥＳの場合）、及び新しい行動パターンを学習した場合（ステップＳ５３４）、ついで勝敗結果に応じて学習した行動パターンの優先度を変化させる（ステップＳ５３５）。即ち、行動パターンの実行結果（技が相手に当たったか否か）によって、学習データ４０中の４０ａ−３に相当する値を変化させる。
【０１０４】
更に、図１４は、更に学習手続きＳＳ２の実施例詳細フローを示す図であり、実施例行動パターンとして連携技を学習する場合の動作フローである。図１２との関連において、図１４の動作を説明する。
【０１０５】
図１４において、ステップＳ６０は、図１２のステップＳ５０に対応し、現在実行中のモーション番号を取り出して、キャラクタ状態遷移データ３３中のエンドモーションポインタが示すメモリＭmに記録し、モーション番号列３３ｃ−０を生成する（ステップＳ６０）。この時、エンドモーションポインタは、次のＭm+1を指す。Ｍmがバッファエンドの場合は、エンドモーションポインタＡはバッファ先頭を指す。
【０１０６】
次に知識データ２１中に登録してある各技のモーション番号列２１ａ─７ｊと生成したモーション番号列３３ｃ−０を比較して現在キャラクタがどのような行動をとっているかを調べる（ステップＳ６１）。
【０１０７】
その後、３３ｃ−１に既に認識された技が入っているかを判断する（ステップＳ６２）。ＮＯの場合は、３３ｃ−０と２１ａ−７のモーション番号列のマッチングがとれ、技が確定したか否かを判断し（ステップＳ６３）、確定していなければ終了し、確定していれば３３ｃ−１に技番号（知識データ２１に登録されている番号）を記録する（ステップＳ６４）。
【０１０８】
一方、ステップＳ６２において、ＹＥＳの場合は、３３ｃ−０ｊと２１ａ−７のモーション番号列のマッチングがとれ、技が確定したかを判断する（ステップＳ６５）。技が確定していなければ、３３ｃ−３のタイマー（技と技の間隔）を１だけ増加（ステップＳ６６）して終了する。
【０１０９】
技が確定していれば、３３ｃ−３のタイマー（技と技の間隔）が閾値より小さいかを判断し（ステップＳ６７）、小さい場合は、３３ｃ−１、３３ｃ−２及び３３ｃ−３を行動パターンとして、ＳＲＡＭ４に学習データ４０として記録する（ステップＳ６８）。
【０１１０】
このステップＳ６８の内容は、図１２の行動パターンを学習するステップＳ５３に対応し、従ってその詳細は先に説明した図１３のとおりである。
【０１１１】
ステップＳ６７において、３３ｃ−３のタイマー（技と技の間隔）が閾値より小さくない時及び、ステップＳ６８の学習データ４０として記録が行われた時、３３ｃ−３ｋ  タイマー（技と技の間隔）をクリヤする、したがって、３３ｃ−３＝空列（ヌル）とする（ステップＳ６９）。ついで、３３ｃ−１に３３ｃ−２を入れ、３３ｃ−２をクリアして終了する。
【０１１２】
【発明の効果】
以上実施例にしたがい説明したように、本発明により遊戯者がゲームをする度にコンピュータ側の反応が変化する。これにより、遊戯者の上達度の向上に伴い、コンピュータ側もより高度で有効な戦術を用いるようになり遊戯者の興味を維持し続けることが可能である。
【０１１３】
また、遊戯者の特徴、技能を判断し、行動に影響を与えることにより遊戯者に応じた難易度の調整ができるために初心者でも取組やすい。更に、上記実施例は本発明の実施例であり、本発明はこれらの実施例に限定されるものではない。また、本発明は、コンピュータと遊戯者とで対決する形式のゲーム全てに適用可能である。更に、従来のように新しいゲームを制作する際に、ゲーム中起こり得るあらゆる状況を想定してコンピュータ側の行動パターンを作成する手間が大幅に減少される。
【図面の簡単な説明】
【図１】本発明の実施例装置のブロック図である。
【図２】モニタ表示画面の一例である。
【図３】本発明ゲーム装置の全体動作フローを示す図である。
【図４】図３のキャラクタ行動決定手続きＳＳ１の詳細フローを示す図である。
【図５】知識データを説明する図である。
【図６】行動パターンデータを説明する図である。
【図７】キャラクタ状態遷移データを説明する図である。
【図８】学習データを説明する図である。
【図９】図８の学習データの組立てを説明する図である。
【図１０】図４のステップＳ２４の詳細（その１）を説明するフローである。
【図１１】図４のステップＳ２４の詳細（その２）を説明するフローである。
【図１２】図３の学習手続きＳＳ２の詳細フローを示す図である。
【図１３】行動パターンの学習フローを示す図である。
【図１４】行動パターンを連携技とする学習手続きの実施例フローを示す図である。
【符号の説明】
１  ＣＰＵ本体
２、５ＲＯＭ
３  ＲＡＭ
４  ＳＲＡＭ
６  入力装置
７  出力制御回路
８  出力装置
１０  キャラクタ行動決定手続き
１１  動作結果判定手続き
１２  学習手続き
１３  出力制御手続き
２０  ゲームプログラム本体
２１  知識データ
３０  行動パリーンデータ
３１  キャラクタ状態データ
３２  プレイヤ個人データ
３３  キャラクタの状態遷移データ
４０  学習データ
４１  出力データ
【図１】
0003999282.tif 000003
【図２】
0003999282.tif 000004
【図３】
0003999282.tif 000005
【図４】
0003999282.tif 000006
【図５】
0003999282.tif 000007
【図６】
0003999282.tif 000008
【図７】
0003999282.tif 000009
【図８】
0003999282.tif 000010
【図９】
0003999282.tif 000011
【図１０】
0003999282.tif 000012
【図１１】
0003999282.tif 000013
【図１２】
0003999282.tif 000014
【図１３】
0003999282.tif 000015
【図１４】
0003999282.tif 000016