(57)【特許請求の範囲】
【請求項１】
移動物体が用いられるスポーツの試合における選手の動作をシミュレートするシミュレーション装置であって、
架空世界に配置された複数の架空選手のうち、ユーザの操作対象以外の架空選手の動作をシミュレートする第１制御手段と、
現実世界で行われた前記スポーツの試合での移動物体及び現実選手の位置により表される試合の状況と、当該試合での現実選手の動作と、を関連付けたデータを記憶する記憶手段の記憶内容を取得する手段と、
シミュレーション中の前記架空世界での移動物体及び架空選手の位置関係と、前記データに格納された現実世界での移動物体及び現実選手の位置関係と、のずれが基準未満であるかを判定することによって、前記架空世界の試合の状況と前記データが示す状況とが類似するか否かを判定する判定手段と、
前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、前記ユーザの操作対象以外の架空選手を、前記第１制御手段による制御に代えて、当該状況に関連付けられた動作に基づいて制御する第２制御手段と、
を含むことを特徴とするシミュレーション装置。
【請求項２】
スポーツの試合における選手の動作をシミュレートするシミュレーション装置であって、
架空世界に配置された複数の架空選手のうち、ユーザの操作対象以外の架空選手の動作をシミュレートする第１制御手段と、
現実世界で行われた前記スポーツの試合での現実選手に関するパラメータにより表される試合の状況と、当該試合での現実選手の動作と、を関連付けたデータを記憶する記憶手段の記憶内容を取得する手段と、
前記データに格納された現実選手に関するｍ（ｍ：自然数）種類のパラメータと、シミュレーション中の前記架空世界の試合での架空選手に関するｍ種類のパラメータと、のずれが基準未満であるかを判定することによって、前記架空世界の試合の状況と、前記データが示す状況と、が類似するか否かを判定する判定手段と、
前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、前記ユーザの操作対象以外の架空選手を、前記第１制御手段による制御に代えて、当該状況に関連付けられた動作に基づいて制御する第２制御手段と、
を含むことを特徴とするシミュレーション装置。
【請求項３】
前記架空世界には、前記ユーザの操作対象以外の架空選手が複数配置され、
前記第２制御手段は、
前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、前記ユーザの操作対象以外の前記複数の架空選手のうちの一部を、前記第１制御手段による制御に代えて、当該状況に関連付けられた動作に基づいて制御し、
前記第１制御手段は、
前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、前記ユーザの操作対象以外の前記複数の架空選手のうち、前記第２制御手段の制御対象以外の架空選手を制御する、
ことを特徴とする請求項１又は２に記載のシミュレーション装置。
【請求項４】
前記第２制御手段は、
前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、当該データに基づいて、前記ユーザの操作対象以外の前記複数の架空選手のうちから、当該第２制御手段の制御対象を選出する手段を含み、当該選出された架空選手を、前記第１制御手段による制御に代えて制御する、
ことを特徴とする請求項３に記載のシミュレーション装置。
【請求項５】
前記シミュレーション装置は、
前記第２制御手段による制御中に前記ユーザの操作対象が行った動作に基づいて、前記第２制御手段の制御対象を、前記第２制御手段による制御から前記第１制御手段による制御に切り替える手段、
を更に含むことを特徴とする請求項１〜４の何れか一項に記載のシミュレーション装置。
【請求項６】
前記判定手段は、
前記第２制御手段の制御中における前記架空世界の試合の状況が、前記類似すると判定された状況に類似しなくなったか否かを判定し、
前記シミュレーション装置は、
前記架空世界の試合の状況が前記類似すると判定された状況に類似しなくなったと判定された場合、前記第２制御手段の制御対象を、前記第２制御手段による制御から前記第１制御手段による制御に切り替える手段、
を更に含むことを特徴とする請求項１〜５の何れか一項に記載のシミュレーション装置。
【請求項７】
前記記憶手段には、複数の前記データが記憶されており、
前記判定手段は、
前記架空世界の試合の状況と、前記複数のデータのそれぞれが示す状況と、が類似するか否かを判定し、
前記第２制御手段は、
前記架空世界の試合の状況と前記複数のデータのうちの少なくとも一つが示す状況とが類似すると判定された場合、当該類似すると判定された状況に関連付けられた動作に基づいて、前記ユーザの操作対象以外の架空選手を制御する、
ことを特徴とする請求項１〜６の何れか一項に記載のシミュレーション装置。
【請求項８】
前記判定手段は、
前記第２制御手段の制御中における前記架空世界の試合の状況が、前記類似すると判定された状況に類似しなくなったか否かを判定し、
前記第２制御手段は、
前記架空世界の試合の状況が前記類似すると判定された状況に類似しなくなったと判定された場合、当該類似しなくなったと判定された状況に対応するデータに基づいた制御から、他の前記データに基づいた制御に切り替える、
ことを特徴とする請求項７に記載のシミュレーション装置。
【請求項９】
前記第２制御手段は、
前記第２制御手段による制御中に前記ユーザの操作対象が行った動作に基づいて、前記類似すると判定された状況に対応するデータに基づいた制御から、他の前記データが示す動作に基づいた制御に切り替える、
ことを特徴とする請求項７又は８に記載のシミュレーション装置。
【請求項１０】
前記第２制御手段は、
前記架空世界の試合の状況と前記複数のデータのうちの複数が示す状況とが類似すると判定された場合、当該類似すると判定された複数の状況のうち、一の状況に関連付けられた動作に基づいて、前記ユーザの操作対象以外の複数の架空選手の一部を動作させ、他の前記状況に関連付けられた動作に基づいて、当該一部の架空選手以外を動作させる、
ことを特徴とする請求項７〜９の何れか一項に記載のシミュレーション装置。
【請求項１１】
前記シミュレーション装置は、
前記ユーザの操作対象を、当該ユーザの操作に基づいて動作させる手段であって、前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、当該状況に関連付けられた動作と、前記ユーザの操作と、に基づいて、前記ユーザの操作対象を動作させる第３制御手段を更に含む、
ことを特徴とする請求項１〜１０の何れか一項に記載のシミュレーション装置。
【請求項１２】
前記第３制御手段は、
前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、当該状況に関連付けられた動作と、前記ユーザが行った操作に対応する動作と、に関するずれを取得する手段を更に含み、当該取得されたずれが基準以上である場合、当該状況に関連付けられた動作と、前記ユーザの操作と、に基づいて、前記ユーザの操作対象を動作させる、
ことを特徴とする請求項１１に記載のシミュレーション装置。
【請求項１３】
前記シミュレーション装置は、複数のチーム同士で対戦するスポーツの試合での選手の動作をシミュレートし、
前記複数の架空選手のそれぞれは、前記複数のチームの何れかに所属し、
前記第１制御手段は、前記複数のチームの何れかに所属する前記複数の架空選手のうち、前記ユーザの操作対象以外の架空選手の動作をシミュレートし、
前記データは、現実世界で行われた試合における前記複数のチームのそれぞれの選手の動作を示し、
前記第２制御手段は、前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、当該状況に関連付けられた動作に基づいて、前記複数のチームのそれぞれに所属する架空選手を制御する、
ことを特徴とする請求項１〜１２の何れか一項に記載のシミュレーション装置。
【請求項１４】
前記シミュレーション装置は、スポーツの試合での選手の動作をシミュレートするゲームを実行し、
前記複数の架空選手のそれぞれは、ゲームキャラクタであり、
前記第１制御手段は、前記ユーザの操作対象以外のゲームキャラクタの動作をシミュレートし、
前記第２制御手段は、前記類似すると判定された状況に関連付けられた動作に基づいて、前記ユーザの操作対象以外のゲームキャラクタを制御する、
ことを特徴とする請求項１〜１３の何れか一項に記載のシミュレーション装置。
【請求項１５】
請求項１〜１４の何れかに記載のシミュレーション装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置、シミュレーション方法、及びプログラムに関する。
【背景技術】
【０００２】
従来から、スポーツの試合における選手の動きをシミュレートするシミュレーション装置が知られている。例えば、特許文献１には、ユーザチームに属するキャラクタと対戦相手チームに属するキャラクタとが対戦するサッカーゲームにおいて、ユーザの操作対象以外のキャラクタの動きをシミュレートするシミュレーション装置が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２２４９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような装置では、ユーザの操作対象以外のキャラクタの動きを、現実世界の選手の動きに近づくように、シミュレーションの精度を向上させることが望まれている。しかし、実際の試合での選手の動きを再現することは難しく、例えば、選手の動きを予想した行動アルゴリズムを用いるだけでは、シミュレーション中の選手が、現実では有り得ない動作をすることがあった。
【０００５】
本発明は上記課題に鑑みてなされたものであって、その目的は、スポーツの試合における選手の動きに関するシミュレーションの精度を向上させることが可能なシミュレーション装置、シミュレーション方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係るシミュレーション装置は、スポーツの試合における選手の動作をシミュレートするシミュレーション装置であって、架空世界に配置された複数の架空選手のうち、ユーザの操作対象以外の架空選手の動作をシミュレートする第１制御手段と、現実世界で行われた前記スポーツの試合の状況と、当該試合での現実選手の動作と、を関連付けたデータを記憶する記憶手段の記憶内容を取得する手段と、シミュレーション中の前記架空世界の試合の状況と、前記データが示す状況と、が類似するか否かを判定する判定手段と、前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、前記ユーザの操作対象以外の架空選手を、前記第１制御手段による制御に代えて、当該状況に関連付けられた動作に基づいて制御する第２制御手段と、を含むことを特徴とする。
【０００７】
本発明に係るシミュレーション方法は、スポーツの試合における選手の動作をシミュレートするシミュレーション方法であって、架空世界に配置された複数の架空選手のうち、ユーザの操作対象以外の架空選手の動作をシミュレートする第１制御ステップと、現実世界で行われた前記スポーツの試合の状況と、当該試合での現実選手の動作と、を関連付けたデータを記憶する記憶手段の記憶内容を取得するステップと、シミュレーション中の前記架空世界の試合の状況と、前記データが示す状況と、が類似するか否かを判定する判定ステップと、前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、前記ユーザの操作対象以外の架空選手を、前記第１制御ステップにおける制御に代えて、当該状況に関連付けられた動作に基づいて制御する第２制御ステップと、を含むことを特徴とする。
【０００８】
本発明に係るプログラムは、スポーツの試合における選手の動作をシミュレートするコンピュータを、架空世界に配置された複数の架空選手のうち、ユーザの操作対象以外の架空選手の動作をシミュレートする第１制御手段、現実世界で行われた前記スポーツの試合の状況と、当該試合での現実選手の動作と、を関連付けたデータを記憶する記憶手段の記憶内容を取得する手段、シミュレーション中の前記架空世界の試合の状況と、前記データが示す状況と、が類似するか否かを判定する判定手段、前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、前記ユーザの操作対象以外の架空選手を、前記第１制御手段による制御に代えて、当該状況に関連付けられた動作に基づいて制御する第２制御手段、として機能させる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係るゲーム装置のハードウェア構成を示す図である。
【図２】ゲーム空間の一例を示す図である。
【図３】ゲーム装置で実現される機能のうち、本発明に関連する機能を示す機能ブロック図である。
【図４】シナリオデータベースのデータ格納例を示す図である。
【図５】ゲーム状況データが示す状況とシナリオの状況とが類似する場合を示す図である。
【図６】イミテーションモードにおける動作制御を説明するための図である。
【図７】ゲーム装置が実行する処理を示すフロー図である。
【図８】変形例の機能ブロック図である。
【図９】変形例（６）における第１制御部の制御内容を説明するための図である。
【発明を実施するための形態】
【００１０】
［１．シミュレーション装置のハードウェア構成］
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。本実施形態では、本発明に係るシミュレーション装置（コンピュータ）を、ゲーム装置を用いて実現する場合を説明する。ゲーム装置は、例えば、家庭用・業務用ゲーム機（据置型ゲーム機）、携帯ゲーム機、携帯電話機（スマートフォンを含む）、携帯情報端末（タブレット型端末）又はパーソナルコンピュータ等によって実現される。ここでは、実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
【００１１】
図１は、本発明の実施形態に係るゲーム装置のハードウェア構成を示す図である。図１に示すゲーム装置１０は、表示部３２及び音声出力部３４に接続される。表示部３２は、例えば、家庭用テレビ受像機又は液晶ディスプレイなどである。音声出力部３４は、例えば、家庭用テレビ受像機に内蔵されたスピーカ又はヘッドホンなどである。
【００１２】
ゲーム装置１０は、公知のコンピュータゲームシステムである。ゲーム装置１０は、バス１２、制御部１４、主記憶１６、画像処理部１８、入出力処理部２０、音声処理部２２、光ディスク再生部２４、ハードディスク２６、通信インタフェース２８、及びコントローラ３０を含む。
【００１３】
制御部１４は、一又は複数の制御部（例えば、ＣＰＵ等）を含む。制御部１４は、図示しないＲＯＭに格納されるオペレーティングシステムや、光ディスク３６から読み出されるプログラムに基づいて、ゲーム装置１０の各部を制御する処理や情報処理を実行する。
【００１４】
主記憶１６は、例えば、ＲＡＭを含む。光ディスク３６から読み出されたプログラム及びデータは、主記憶１６に書き込まれる。主記憶１６は、制御部１４の作業用メモリとしても用いられる。バス１２は、アドレス及びデータをゲーム装置１０の各部でやり取りするためのものである。
【００１５】
画像処理部１８は、ＶＲＡＭを含む。画像処理部１８は、制御部１４から供給される画像データに基づいてＶＲＡＭ上にゲーム画面を描画する。ＶＲＡＭ上に描画されたゲーム画面は、ビデオ信号に変換されて所定のタイミングで表示部３２に出力される。
【００１６】
入出力処理部２０は、制御部１４が、音声処理部２２、光ディスク再生部２４、ハードディスク２６、通信インタフェース２８、及びコントローラ３０にアクセスするためのインタフェースである。
【００１７】
音声処理部２２は、サウンドバッファを含む。音声処理部２２は、光ディスク３６からサウンドバッファに読み出された音声データを、音声出力部３４から出力する。
【００１８】
通信インタフェース２８は、インターネットなどの通信ネットワークに、ゲーム装置１０を有線又は無線接続するためのインタフェースである。
【００１９】
光ディスク再生部２４は、光ディスク３６（情報記憶媒体）に記録されたプログラムやデータを読み取る。本実施形態においては、プログラムやデータをゲーム装置１０に供給するために、光ディスク３６が用いられる場合を説明するが、メモリカード等の他の情報記憶媒体が用いられて、プログラムやデータがゲーム装置１０に対して供給されるようにしてもよい。他にも例えば、通信ネットワークを介して遠隔地からプログラムやデータがゲーム装置１０に供給されるようにしてもよい。
【００２０】
ハードディスク２６は、一般的なハードディスク装置（補助記憶装置）である。なお、本実施形態において光ディスク３６に記憶されるものとして説明するプログラムやデータは、ハードディスク２６に記憶されていてもよい。
【００２１】
コントローラ３０は、ユーザによる各種ゲーム操作を受け付けるための汎用操作手段である。ゲーム装置１０には、一又は複数のコントローラ３０が有線又は無線接続される。入出力処理部２０は、一定周期毎（例えば、１／６０秒毎）にコントローラ３０の各操作部材の状態をスキャンする。このスキャン結果を表す操作信号は、バス１２を介して制御部１４に入力される。制御部１４は、操作信号に基づいてユーザのゲーム操作を特定する。なお、本実施形態において、ユーザがコントローラ３０から行う操作は、他の種々の操作に置き換えてよい。例えば、音声を検出する音声検出装置（例えば、マイク）をゲーム装置１０に接続しておき、音声解析を行うことにより各種操作が行われるようにしてもよい。また、コントローラ３０は、有線又は無線で外部から接続されるものの他、ゲーム装置１０とコントローラ３０が一体的なハウジングを形成していてもよい。
【００２２】
［２．ゲーム装置が実行するシミュレーション］
ゲーム装置１０は、光ディスク３６から読み出したゲームプログラムを実行することによって、複数のチーム同士で対戦するスポーツの試合における選手の動作をシミュレートするゲームを実行する。ここでのスポーツの試合とは、現実世界で行われる各種競技を含む意味である。例えば、ゲーム装置１０は、選手が移動物体（例えば、ボールやパック等）を移動目標位置（例えば、ゴール）に移動させることを目指すスポーツに関するゲームを実行する。
【００２３】
特に、本実施形態では、ユーザが操作するチーム（以降、「ユーザチーム」という。）と、対戦相手（コンピュータ又は他のユーザ）が操作するチーム（以降、「対戦相手チーム」という。）と、の間でサッカーの試合を行うサッカーゲームが実行される。例えば、当該サッカーゲームでは、現実世界のサッカーチームに対応するチーム、及び、現実世界のサッカー選手に対応するゲームキャラクタが用いられる。各ゲームキャラクタは、現実世界のサッカーチームを模した複数のチームの何れかに所属することになる。ゲーム装置１０がサッカーゲームを開始すると、ゲーム空間が主記憶１６に構築される。
【００２４】
図２は、ゲーム空間の一例を示す図である。図２に示すゲーム空間４０は、互いに直交する三つの座標軸（Ｘｗ軸、Ｙｗ軸、及びＺｗ軸）が設定された仮想的な３次元空間である。図２に示すように、ゲーム空間４０には、サッカーフィールドを表すオブジェクトであるフィールド４２（他のオブジェクトが配置される平面）が配置される。
【００２５】
フィールド４２上には、サッカーのゴールを表すオブジェクトであるゴール４４が配置され、２本のゴールライン４６及び２本のタッチライン４８が表されている。ゴールライン４６及びタッチライン４８によって囲まれたピッチ５０及び当該ピッチ５０の周囲（ゴールライン４６又はタッチライン４８に接するピッチ５０外の所定領域）において、試合が行われる。
【００２６】
また、フィールド４２上には、サッカーボール（移動物体）を表すオブジェクトであるボール５２と、ユーザチームに所属するサッカー選手を表すオブジェクトであるキャラクタ５４と、対戦相手チームに所属するサッカー選手を表すオブジェクトであるキャラクタ５６と、が配置される。各オブジェクトの位置は、例えば、ワールド座標系（Ｘｗ−Ｙｗ−Ｚｗ座標系）の３次元座標で特定される。なお、図２では省略されているが、フィールド４２上には、ユーザチームに所属する１１体のキャラクタ５４と、対戦相手チームに所属する１１体のキャラクタ５６と、が配置される。
【００２７】
また、キャラクタ５４（５６）とボール５２とが近づくと、所定条件の下、当該キャラクタ５４（５６）とボール５２とが関連づけられる。この場合、キャラクタ５４（５６）の移動動作は、ドリブル動作になる。以下では、キャラクタ５４（５６）にボール５２が関連づけられた状態のことを「キャラクタ５４（５６）がボール５２を保持している」と記載する。ボール５２を保持しているキャラクタ５４（５６）は、所与の動作（例えば、パス動作又はシュート動作）を行うことにより、ボール５２を移動させる。キャラクタ５４（５６）がボール５２を移動させてゴール４４内にボール５２が移動すると、得点イベントが発生する。
【００２８】
また、ゲーム空間４０には、仮想カメラ５８（視点）が設定される。ゲーム空間４０を仮想カメラ５８から見た様子を表すゲーム画面が、表示部３２に表示される。ゲーム画面は、ゲーム空間４０に配置された各オブジェクトの頂点座標が、所定の座標変換演算を用いてワールド座標系からスクリーン座標系に座標変換されることによって生成される。
【００２９】
本実施形態では、ゲーム空間４０に配置されたキャラクタ５４（５６）のうち、ユーザチームに所属するキャラクタ５４のうちの何れかが、ユーザの操作対象（プレイヤキャラクタ）に設定される。ユーザの操作対象は、ユーザの操作に基づいて動作する。例えば、ユーザの操作対象は、ユーザが指示した方向に移動したり、ユーザが指示した種類の動作（シュート動作やパス動作等）をしたりする。
【００３０】
ユーザの操作対象以外のキャラクタ５４（５６）は、コンピュータの制御下に置かれる。以降では、ユーザの操作対象以外のキャラクタ５４（５６）を、ノンプレイヤキャラクタともいう。本実施形態では、ノンプレイヤキャラクタを動作させるために、２種類の制御モードが用意されている。
【００３１】
第１のモードでは、ゲーム制作者が予め定めた行動アルゴリズム（行動ルール）に基づいて、ノンプレイヤキャラクタが動作する。以降、この第１のモードを、シミュレーションモードという。シミュレーションモードでは、公知の種々の行動アルゴリズムを適用可能である。例えば、シミュレーションモードでは、ゲーム制作者等により予めプログラミングされたアルゴリズム（又は、動作を定義したデータ）や一又は複数のランダム要素に基づいて、ノンプレイヤキャラクタの動作が決定される。
【００３２】
第２のモードでは、現実世界で行われたスポーツの試合において、選手が実際に行った動作を定義したデータに基づいて、ノンプレイヤキャラクタが動作する。以降、この第２のモードを、イミテーションモードという。当該データには、例えば、現実世界でのサッカーの試合において得点イベントが発生した際の選手の動作や、あるチームが失点しそうな状況で失点を防いだ際の選手の動作が定義されている。なお、イミテーションモードでは、ノンプレイヤキャラクタは、上記データに定義された動作を完全に再現しなければならない訳ではない。即ち、ノンプレイヤキャラクタは、あくまで上記データに定義された動作に基づいて動作すればよく、現実世界で選手が実際に行った動作と、ノンプレイヤキャラクタが行う動作と、には一定範囲のずれが許容される。イミテーションモードに移行した場合、ユーザは、現実世界で起きたスポーツの試合でのイベントを再現することを目指したり、当該イベントよりも良い結果を得ることを目指したりする。
【００３３】
本実施形態では、ノンプレイヤキャラクタは、原則として、シミュレーションモードで動作する。そして、実行中のゲームの状況が現実世界の試合の状況に類似する場合、ノンプレイヤキャラクタのうちの全部又は一部が、イミテーションモードでの制御に切り替わる。なお、一部のノンプレイヤキャラクタのみがイミテーションモードで動作する場合、他のノンプレイヤキャラクタは、シミュレーションモードで動作する。即ち、ゲーム空間４０では、シミュレーションモードで動作するノンプレイヤキャラクタと、イミテーションモードで動作するノンプレイヤキャラクタと、が共存する。
【００３４】
イミテーションモードで動作するノンプレイヤキャラクタは、所定条件のもとで、シミュレーションモードでの制御に戻る。例えば、現実の選手が実際に行った一連の動作をノンプレイヤキャラクタがやり終えた場合、実行中のゲームの状況が現実世界の試合の状況に類似しなくなった場合、及び、ユーザの操作対象が所定動作を行った場合には、イミテーションモードで動作していたノンプレイヤキャラクタが、シミュレーションモードでの動作制御に戻る。その後、ゲームの状況が再び現実世界の試合の状況に類似した場合、ノンプレイヤキャラクタのうちの全部又は一部が、イミテーションモードで動作する。以降、試合が終了するまで、ノンプレイヤキャラクタの制御は、シミュレーションモードとイミテーションモードとで切り替わる。
【００３５】
上記のように、本実施形態のゲーム装置１０は、実行中のゲームの状況に応じて、ノンプレイヤキャラクタの制御を、シミュレーションモードとイミテーションモードとで切り替えることで、ノンプレイヤキャラクタの動作制御の高度化を実現する構成になっている。以下、本技術について、詳細に説明する。
【００３６】
［３．ゲーム装置において実現される機能］
図３は、ゲーム装置１０で実現される機能のうち、本発明に関連する機能を示す機能ブロック図である。図３に示すように、ゲーム装置１０は、ゲームプログラムを実行することによって、ゲームデータ記憶部６０、取得部６２、第１制御部６４、判定部６６、第２制御部６８、及び第３制御部７０を実現する。
【００３７】
ゲームデータ記憶部６０は、主記憶１６、ハードディスク２６、及び光ディスク３６を主として実現され、他の各機能は、制御部１４を主として実現される。なお、ゲーム装置１０において必須の機能は、取得部６２、第１制御部６４、判定部６６、及び第２制御部６８であり、他の機能は省略するようにしてもよい。
【００３８】
［３−１．ゲームデータ記憶部］
ゲームデータ記憶部６０は、スポーツの試合をシミュレートするために必要な各種データを記憶する。ここでは、ゲームデータ記憶部６０が記憶するデータの一例として、シナリオデータベース及びゲーム状況データを説明する。
【００３９】
［シナリオデータベース］
図４は、シナリオデータベースのデータ格納例を示す図である。図４に示すように、シナリオデータベースは、現実世界において選手が実際に行った動作を定義するデータの集まりである。ここでは、シナリオデータベースは、現実世界で行われたスポーツの試合の状況と、当該試合での現実選手（例えば、現実世界のサッカー選手）の動作と、を関連付けたデータを複数含む。以降では、シナリオデータベースに格納される各データ単位（レコード）のことを、シナリオともいう。
【００４０】
各シナリオは、状況と動作との組み合わせからなる。例えば、各シナリオには、現実世界での試合の状況と各選手の動作との組み合わせが時系列的に格納される。より具体的には、各シナリオは、フィールド上の各選手及びボールの状態が時系列的に格納され、例えば、下記の項目を含む。なお、各シナリオが定義する動作の期間（即ち、シナリオが何秒間の動作を定義しているか）は、シナリオごとに共通であってもよいし、異なっていてもよい。即ち、あるシナリオは、現実世界の試合における５秒間の動作を示し、他のシナリオは、現実世界の試合における１０秒間の動作を示すようにしてもよい。
（１）現実世界での試合におけるボールの状態（例えば、位置、方向、及び移動速度）
（２）現実世界での試合における選手の状態（例えば、位置、向き、移動速度、姿勢（ポーズ）、行動、及びその他の状態（例えば、選手が横たわっているか、飛び上がっているか等））
（３）現実世界での試合時間（試合開始又は再開からの経過時間）、及び、その時点での各チームの得点
【００４１】
各シナリオに格納される位置や方向は、ワールド座標系の座標又はベクトルで定義されている。例えば、現実世界におけるピッチ内での位置や方向が、ゲーム空間４０におけるピッチ５０内での位置や方向に対応するように、各シナリオが定義されている。即ち、各シナリオが示すピッチ５０上でのボール５２やキャラクタ５４（５６）の位置や方向と、現実世界のピッチ上での実際のボールや選手の位置や方向と、は略一致している。このようにシナリオを定義しておくことで、比較的簡易な処理で、現実世界の選手が移動した位置や方向に基づいてノンプレイヤキャラクタを動作させることができる。
【００４２】
各シナリオに格納される移動速度も同様に、現実世界でのボールや選手の移動速度に対応するゲーム空間４０内の速度が定義されている。また、ゲームにおいてキャラクタ５４（５６）がとることができる複数種類の姿勢が用意されており、現実世界において実際に選手がとった姿勢が、これら複数種類の姿勢の何れに属するかを示す情報が、選手の姿勢を示す情報として、各シナリオに格納される。このようにシナリオを定義しておくことで、比較的簡易な処理で、現実世界の選手の移動速度や姿勢に基づいてノンプレイヤキャラクタを動作させることができる。
【００４３】
同様に、ゲームにおいてキャラクタ５４（５６）が行うことができる複数種類の行動が用意されており、現実世界において実際に選手がした行動が、これら複数種類の行動の何れに属するかを示す情報が、選手の行動を示す情報として、各シナリオに格納される。更に、ゲームにおいてキャラクタ５４（５６）がとることができる複数種類の状態が用意されており、現実世界における選手の状態が、これら複数種類の状態の何れに属するかを示す情報が、選手の状態を示す情報として、各シナリオに格納される。このようにシナリオを定義しておくことで、比較的簡易な処理で、現実世界の選手が行った行動に基づいてノンプレイヤキャラクタを動作させることができる。
【００４４】
また、本実施形態では、各シナリオには、当該シナリオで制御するノンプレイヤキャラクタの数が定義されている。更に、ここでは、各シナリオには、当該シナリオに基づいたイミテーションモードで制御対象とするチームを識別する情報と、当該チームの所属選手のうちで制御対象とするキャラクタ５４（５６）を識別する情報と、が格納されている。このようにシナリオを定義しておくことで、現実世界の選手に対応するノンプレイヤキャラクタを、当該選手が実際に行った動作に基づいて制御することができる。
【００４５】
即ち、各シナリオには、当該シナリオに基づいたイミテーションモードで制御対象とするキャラクタ５４（５６）ごとに、当該キャラクタ５４（５６）に対応する現実世界の選手が試合で実際に行った動作が時系列的に格納されている。別の言い方をすれば、各シナリオには、当該シナリオに基づいたイミテーションモードで動作させるべきノンプレイヤキャラクタを識別する情報が格納されており、当該ノンプレイヤキャラクタごとに、ピッチ５０上ですべき動作（即ち、現実世界で選手が行った動作）が、時系列で格納されている。
【００４６】
シナリオデータベースに格納される各シナリオは、設定者（例えば、ゲーム制作者、データ提供者、ユーザ等）の操作により内容が定められてもよいし、設定者が設定した内容に基づいて、自動的に生成されるようにしてもよい。例えば、設定者は、現実世界における各選手やボールの位置及び向きを時系列的に示す情報のみを手入力で行い、当該情報の時系列的な変化から各選手の姿勢や行動を解析するアルゴリズムを用いて、各シナリオが生成されるようにしてもよい。
【００４７】
なお、シナリオデータベースの各シナリオに格納される項目は、上記の例に限られない。各シナリオには、現実世界でのスポーツの試合の状況と各選手の動作との組み合わせが格納されるようにすればよい。例えば、各シナリオには、ボールを保持している選手を識別する情報や、各チームに設定されているフォーメーションや各選手のポジションを識別する情報が格納されているようにしてもよい。他にも例えば、試合の戦況を示す種々の情報（例えば、ボール支配率や選手の走行距離）等が格納されていてもよい。
【００４８】
［ゲーム状況データ］
ゲーム状況データは、実行中のゲームの状況（即ち、シミュレート中の試合の状況）を示す。例えば、下記のようなパラメータが、ゲーム状況データに格納される。ゲーム状況データは、ゲームの進行に応じて適宜更新される。
（１）ユーザの操作対象を識別する情報
（２）各ノンプレイヤキャラクタが、シミュレーションモード及びイミテーションモードの何れで動作しているかを識別する情報
（３）ボール５２を保持するキャラクタ５４（５６）を識別する情報
（４）ボール５２の現在の状態（例えば、ボール５２の位置、移動方向、及び移動速度）
（５）キャラクタ５４（５６）の現在の状態（例えば、キャラクタ５４（５６）の位置、移動方向、移動速度、姿勢、行動、及びその他の状態）
（６）実行中の試合の戦況（例えば、両チームの得点、試合の経過時間）
【００４９】
なお、ゲーム状況データに格納されるデータは、上記の例に限られない。ゲーム状況データは、ゲーム空間４０の現在の状況を示すデータが格納されるようにすればよく、仮想カメラ５８の現在の位置及び視線方向、各チームに設定されている作戦やフォーメーション、及び、各キャラクタ５４（５６）に設定された現在のポジションが、ゲーム状況データに格納されているようにしてもよい。
【００５０】
また、ゲームデータ記憶部６０に記憶されるデータは、上記の例に限られない。ゲームデータ記憶部６０は、ゲームを実行するために必要なデータを記憶すればよい。例えば、各キャラクタ５４（５６）に関するデータ（例えば、選手を固有に識別する情報や選手の能力パラメータ等）や、各チームに設定可能なフォーメーションを示すデータが記憶されているようにしてもよい。
【００５１】
［３−２．取得部］
取得部６２は、現実世界で行われたスポーツの試合の状況を示す状況と、当該試合での現実選手の動作と、を関連付けたデータ（例えば、シナリオ）を記憶する記憶手段（例えば、ゲームデータ記憶部６０）の記憶内容を取得する。取得部６２は、ゲームデータ記憶部６０に記憶されたシナリオデータベースに格納された各シナリオを取得する。
【００５２】
［３−３．第１制御部］
第１制御部６４は、架空世界に配置された複数の架空選手（例えば、複数のチームの何れかに所属するノンプレイヤキャラクタ）のうち、ユーザの操作対象以外の架空選手の動作をシミュレートする。ここでは、第１制御部６４は、ゲーム状況データに格納された各ノンプレイヤキャラクタの現在の状態と、所与の行動アルゴリズムと、に基づいて、各ノンプレイヤキャラクタの動作をシミュレートする。
【００５３】
例えば、第１制御部６４は、各ノンプレイヤキャラクタ及びボール５２の現在の状態を示すパラメータを、行動アルゴリズムに定義された数式に代入することによって、各ノンプレイヤキャラクタがすべき動作を決定する。より具体的には、例えば、第１制御部６４は、ボール５２の状態を示すパラメータ（例えば、位置、移動方向、及び移動速度）と、各ノンプレイヤキャラクタの状態を示すパラメータ（例えば、位置、移動方向、移動速度、及びポジション）と、を行動アルゴリズムの数式に代入することで、複数種類の動作のうちで、各ノンプレイヤキャラクタがすべき動作（例えば、移動すべき位置又は方向）を計算する。
【００５４】
別の言い方をすれば、第１制御部６４は、シナリオデータベースに格納されたシナリオに基づかずに、各ノンプレイヤキャラクタの動作をシミュレートする。なお、第１制御部６４は、一又は複数のランダム要素に基づいて、各ノンプレイヤキャラクタの動作を変化させるようにしてもよい。即ち、例えば、第１制御部６４は、各ノンプレイヤキャラクタに、所与の行動アルゴリズムと、一又は複数の乱数と、に基づいて定まる動作をさせるようにしてもよい。
【００５５】
本実施形態では、第１制御部６４は、架空世界の試合の状況（例えば、ゲーム状況データが示す状況）とシナリオが示す状況とが類似すると判定された場合、ユーザの操作対象以外の複数の架空選手（例えば、ノンプレイヤキャラクタ）のうち、第２制御部６８の制御対象（即ち、イミテーションモードで動作するノンプレイヤキャラクタ）以外の架空選手を動作させる。即ち、第１制御部６４は、キャラクタ５４（５６）のうちで、ユーザの操作対象及び第２制御部６８の制御対象以外を、上記のようにして動作させる。
【００５６】
なお、第１制御部６４がノンプレイヤキャラクタを移動させる方法は、上記の例に限られない。第１制御部６４による動作制御は、公知の種々のシミュレーション方法を適用可能である。例えば、第１制御部６４は、各ノンプレイヤキャラクタのポジションや能力等に基づいて動作を決定するようにしてもよいし、試合の戦況に応じてノンプレイヤキャラクタの動作を決定するようにしてもよい。
【００５７】
［３−４．判定部］
判定部６６は、シミュレーション中の架空世界の試合の状況（即ち、実行中のゲームの状況）と、シナリオが示す状況（例えば、複数のシナリオのそれぞれが示す状況）と、が類似するか否かを判定する。判定部６６は、ゲーム状況データが示す状況と、各シナリオが示す状況と、のずれが基準以上であるか否かを判定する。
【００５８】
図５は、ゲーム状況データが示す状況とシナリオの状況とが類似する場合を示す図である。図５に示すように、例えば、ピッチ５０上でのボール５２及びキャラクタ５４（５６）の位置関係と、シナリオに格納されたボール及び選手の位置関係（図５では、ピッチ５０Ａ、ボール５２Ａ及びキャラクタ５４Ａ（５６Ａ）と記載する）と、のずれが比較的少ない場合に、判定部６６は、これらの状況が類似すると判定する。
【００５９】
ここでは、判定部６６は、各シナリオでの制御対象となるノンプレイヤキャラクタごとに、当該ノンプレイヤキャラクタに対応する状況の類似度（選手状況類似度）を算出する。この点、ピッチ全体を考えると状況があまり似ていなくても、ある特定のノンプレイヤキャラクタ（例えば、ボールを保持するノンプレイヤキャラクタ）を基準に状況を比較すると、状況が似ることがある。特に、本実施形態のようなゲームでは、例えば、ボール５２の近くにいるノンプレイヤキャラクタの動作は試合の状況変化に強く影響し、ボール５２から離れているノンプレイヤキャラクタの動作は試合の状況変化にあまり影響しない。このため、ある特定のノンプレイヤキャラクタに対応する選手状況類似度を算出することで、試合の状況の類似度を的確に算出することができる。
【００６０】
具体的には、各シナリオには、当該シナリオでの制御対象となるノンプレイヤキャラクタに関するｍ種類（ｍは自然数。ここでは、２以上とする。）のパラメータが含まれている。判定部６６は、各シナリオでの制御対象となるノンプレイヤキャラクタに関するｍ種類のパラメータと、ゲーム状況データが示す当該ｍ種類のパラメータと、に基づいて、選手状況類似度を算出する。当該選手状況類似度は、これらｍ種類のパラメータのずれ具合を示す。
【００６１】
例えば、判定部６６は、これらｍ種類のパラメータを、予め定められた数式に代入することで選手状況類似度を算出する。この数式は、ノンプレイヤキャラクタごとに異なっていてもよいし、共通であってもよい。ここでは、判定部６６は、各シナリオに格納されたｍ種類のパラメータをｍ次元のベクトルとみなし、ゲーム状況データが示すｍ種類のパラメータもｍ次元のベクトルとみなす。判定部６６は、これら２つのベクトルの方向関係に基づいて、選手状況類似度を算出する。判定部６６は、これら２つのベクトルのなす角度に関する数値を、選手状況類似度として算出する。
【００６２】
そして、判定部６６は、シナリオでの制御対象となる各ノンプレイヤキャラクタの選手状況類似度に基づいて、総合的な類似度（以降、単に類似度という。）を算出する。例えば、判定部６６は、各ノンプレイヤキャラクタの選手状況類似度の加重合計を算出することで、類似度を算出する。判定部６６は、類似度が基準値未満である場合は状況が類似しないと判定し、類似度が基準値以上である場合は状況が類似すると判定する。なお、基準値は、シナリオごとに異なる値を用いてもよいし、共通の値を用いてもよい。例えば、現実世界の選手の位置関係とキャラクタ５４（５６）の位置関係とが略一致していなければ、ゲーム空間４０で再現することが難しいシナリオの場合は、この基準値を比較的高く設定しておくようにしてもよい。
【００６３】
なお、判定部６６による判定方法は、上記の例に限られない。例えば、判定部６６が類似度を算出する際に、パラメータに応じて重み付けが行われるようにしてもよい。例えば、本実施形態のようなゲームでは、先述のように、ボール５２の近くにいるキャラクタ５４（５６）の状態が試合の状況変化に強く影響するため、判定部６６は、ボール５２の状態を示すパラメータ、及び、ボール５２を保持するキャラクタ５４（５６）の状態を示すパラメータに乗算する係数を、他のパラメータの係数よりも大きくすることで、ボール５２の状態、及び、ボール５２を保持するキャラクタ５４（５６）を、より重要視して選手状況類似度を算出するようにしてもよい。また、選手状況類似度を算出する際に、各ノンプレイヤキャラクタにマーク相手の設定があるか否か、ボール５２を保持するノンプレイヤキャラクタが可能なパスに関する情報、ピッチ５０上の空きスペースに関する情報、試合時間やスコア、ポジション、能力（スキル）、チーム、フォーメーションに関する情報を用いるようにしてもよい。更に、判定部６６が、選手状況類似度を加重合計する際に、ノンプレイヤキャラクタに応じて重み付けが行われるようにしてもよい。例えば、判定部６６は、ボール５２の比較的近くにいるノンプレイヤキャラクタの選手状況類似度の係数を比較的高くするようにしてもよい。
【００６４】
［３−５．第２制御部］
第２制御部６８は、架空世界の試合の状況（例えば、実行中のゲームの状況）とシナリオが示す状況（例えば、複数のシナリオのうちの少なくとも一つが示す状況）とが類似すると判定された場合、ユーザの操作対象以外の架空選手（例えば、複数のチームのそれぞれに所属する複数のノンプレイヤキャラクタのうちの一部）を、第１制御部６４による制御に代えて、当該状況に関連付けられた動作（例えば、複数のシナリオのうち、類似すると判定されたシナリオが示す動作）に基づいて制御する。
【００６５】
例えば、第２制御部６８は、シナリオデータベースに格納された各シナリオのうち、判定部６６が算出した類似度が基準値以上のシナリオに基づいて、ノンプレイヤキャラクタを動作させる。即ち、第２制御部６８は、一又は複数のノンプレイヤキャラクタを、シミュレーションモードでの動作制御から、類似度が基準以上のシナリオに基づくイミテーションモードでの動作制御に切り替える。
【００６６】
本実施形態では、第２制御部６８は、架空世界の試合の状況（例えば、実行中のゲームの状況）とシナリオが示す状況とが類似すると判定された場合、当該シナリオに基づいて、ユーザの操作対象以外の複数の架空選手のうちから、当該第２制御部６８の制御対象（例えば、複数のノンプレイヤキャラクタからなるキャラクタグループ）を選出する。第２制御部６８の制御対象となるノンプレイヤキャラクタは、１体であってもよいし、複数体であってもよい。また、全てのノンプレイヤキャラクタが第２制御部６８の制御対象となってもよいし、一部のノンプレイヤキャラクタのみが第２制御部６８の制御対象となってもよい。また例えば、本実施形態のように選手状況類似度を算出する場合には、選手状況類似度が基準値以上となるノンプレイヤキャラクタのみが第２制御部６８の制御対象となってもよい。
【００６７】
ここでは、各シナリオには、当該シナリオに基づいて動作させるべきキャラクタ５４（５６）が定義されているので、第２制御部６８は、各チームのノンプレイヤキャラクタのうち、各シナリオが示すキャラクタ５４（５６）を制御対象に選出する。第２制御部６８は、当該選出されたキャラクタ５４（５６）を、第１制御部６４による制御に代えて制御することになる。
【００６８】
図６は、イミテーションモードにおける動作制御を説明するための図である。図６では、ボール５２を保持するキャラクタ５４が他のキャラクタ５４にパスをする動作と、対戦相手チームのキャラクタ５６がボール５２を奪おうとする動作と、がシナリオに定義されているものとする。この場合、シナリオに定義されたパスの方向Ｖ０と、キャラクタ５４がボール５２をパスする方向Ｖ１と、のずれが基準以内になるように、第２制御部６８は、ボール５２を保持するキャラクタ５４にパス動作をさせる。また、シナリオに定義された選手の移動方向Ｖ２と、キャラクタ５６の移動方向Ｖ３と、のずれが基準以内になるように、第２制御部６８は、キャラクタ５６を移動させる。このように、第２制御部６８は、シナリオに定義された各選手の動作と、各選手に対応するノンプレイヤキャラクタが行う動作と、のずれが基準未満となるように、ノンプレイヤキャラクタを動作させる。具体的には、例えば、第２制御部６８は、下記のようにして、ノンプレイヤキャラクタをイミテーションモードで動作させる。
【００６９】
例えば、第２制御部６８は、シナリオが示す各選手の位置、移動方向、又は移動速度と、各選手に対応するノンプレイヤキャラクタの位置、移動方向、又は移動速度と、のずれが基準未満となるように、ノンプレイヤキャラクタを移動させる。ここでは、シナリオが示す選手の位置とノンプレイヤキャラクタの位置との距離が基準未満になることが、位置のずれが基準未満になることに相当する。また、シナリオが示す選手の移動方向とノンプレイヤキャラクタの移動方向との角度が基準未満になることが、移動方向のずれが基準未満になることに相当する。また、シナリオが示す選手の移動速度とノンプレイヤキャラクタの移動速度との差が基準未満になることが、移動速度のずれが基準未満になることに相当する。
【００７０】
また例えば、ボールを保持する選手の動作がシナリオに定義されている場合、第２制御部６８は、この選手がボールを移動させた位置、移動方向、又は移動速度と、ボール５２を保持するノンプレイヤキャラクタがボール５２を移動させた位置、移動方向、又は移動速度と、のずれが基準未満となるように、当該ノンプレイヤキャラクタにボール５２を移動させる。ここでは、シナリオが示すボールの位置とノンプレイヤキャラクタが移動させたボール５２の位置との距離が基準未満になることが、位置のずれが基準未満になることに相当する。また、シナリオが示すボールの移動方向とノンプレイヤキャラクタが移動させたボール５２の移動方向との角度が基準未満になることが、移動方向のずれが基準未満になることに相当する。また、シナリオが示すボールの移動速度とノンプレイヤキャラクタが移動させたボール５２の移動速度との差が基準未満になることが、移動速度のずれが基準未満になることに相当する。
【００７１】
また例えば、ボールを保持する選手の動作と他の選手の動作とがシナリオに定義されている場合、第２制御部６８は、シナリオが示すボール又はボールを保持する選手と他の選手との位置関係と、ボール５２又はボール５２を保持するキャラクタ５４（５６）と他のキャラクタ５４（５６）との位置関係と、のずれが基準未満となるように、ノンプレイヤキャラクタを移動させる。ここでは、シナリオが示すボール又はボールを保持する選手を基準とした他の選手の位置と、ボール５２又はボール５２を保持するキャラクタ５４（５６）を基準とした他のキャラクタ５４（５６）の位置と、のずれが基準未満になることが、位置関係のずれが基準未満になることに相当する。
【００７２】
また例えば、第２制御部６８は、シナリオが示す各選手が動作を行ったタイミング（例えば、パスやシュートのタイミングや動き出しタイミング）と、当該選手に対応するノンプレイヤキャラクタが当該動作を行うタイミングと、のずれが基準未満となるように、ノンプレイヤキャラクタを動作させる。ここでは、シナリオに定義される動作タイミングと、ノンプレイヤキャラクタが動作を行った動作タイミングと、の時間差が基準未満になることが、タイミングのずれが基準未満になることに相当する。
【００７３】
なお、第２制御部６８によるノンプレイヤキャラクタの制御方法は、上記の例に限られない。第２制御部６８は、シナリオに定義された動作に基づいて、ノンプレイヤキャラクタを動作させるようにすればよい。他にも例えば、複数種類のそれぞれの動作に類似する動作を定めておき、第２制御部６８は、シナリオが示す動作に類似する動作を、ノンプレイヤキャラクタにさせるようにしてもよい。
【００７４】
［３−６．第３制御部］
第３制御部７０は、ユーザの操作対象（例えば、キャラクタ５６）を、当該ユーザの操作に基づいて動作させる。ここでは、ユーザがコントローラ３０を用いて行うことができる複数種類の操作のそれぞれと、操作対象にさせるべき動作の種類と、の関連付け（即ち、操作と動作の対応関係）がゲームデータ記憶部６０に記憶されているものとする。第３制御部７０は、ユーザの操作対象に、ユーザが行った操作に関連付けられた種類の動作をさせる。例えば、第３制御部７０は、ユーザが方向指示操作を行った場合、当該方向指示操作が示す方向にユーザの操作対象を移動させ、ユーザがパス操作やシュート操作を行った場合、ユーザの操作対象にパスやシュートをさせる。
【００７５】
［４．ゲーム装置において実行される処理］
図７は、ゲーム装置１０が実行する処理を示すフロー図である。図７に示す処理は、ゲームが開始された場合に実行される。制御部１４は、光ディスク３６に記憶されたプログラムに従って、下記に説明する処理を実行し、図３に示す機能ブロックが実現される。なお、ここでは、説明の簡略化のため、同時に実行できるシナリオを一つとし、一つのシナリオで複数のノンプレイヤキャラクタを制御する場合の処理フローについて説明する。
【００７６】
まず、図７に示すように、制御部１４は、ゲーム空間４０を構築して、試合を開始させる（Ｓ１）。Ｓ１においては、制御部１４は、ゲーム状況データを生成して主記憶１６に記録する。例えば、制御部１４は、ボール５２及び各キャラクタ５４（５６）を、ピッチ５０上の初期位置に配置する。なお、本実施形態では、ゲームの開始時点では、ノンプレイヤキャラクタは、シミュレーションモードで動作するように設定するものとするが、開始時点でイミテーションモードで動作するノンプレイヤキャラクタがいてもよい。
【００７７】
制御部１４は、ユーザの操作に基づいて、ユーザの操作対象を動作させる（Ｓ２）。Ｓ２においては、制御部１４は、ユーザが行った操作に関連付けられた動作を、ユーザの操作対象にさせる。
【００７８】
制御部１４は、シミュレーションモードで動作するノンプレイヤキャラクタを動作させる（Ｓ３）。Ｓ３においては、制御部１４は、各ノンプレイヤキャラクタの現在の状態と所与の行動アルゴリズムとに基づいて、シミュレーションモードで動作するノンプレイヤキャラクタの動作を決定する。即ち、制御部１４は、シナリオに基づかずにノンプレイヤキャラクタの動作をシミュレートする。
【００７９】
制御部１４は、ゲーム状況データを参照し、ノンプレイヤキャラクタのうちで、イミテーションモードで動作するノンプレイヤキャラクタがいるか否かを判定する（Ｓ４）。即ち、Ｓ４においては、制御部１４は、イミテーションモードの実行中であるか否かを判定する。イミテーションモードで動作するノンプレイヤキャラクタがいると判定された場合（Ｓ４；Ｙ）、Ｓ１０の処理に移行する。この場合、制御部１４は、使用中のシナリオに基づいて、イミテーションモードでの動作制御を継続することになる。
【００８０】
一方、イミテーションモードで動作するノンプレイヤキャラクタがいないと判定された場合（Ｓ４；Ｎ）、制御部１４は、実行中のゲームの状況と、シナリオデータベースの各シナリオが示す状況と、の類似度を算出する（Ｓ５）。Ｓ５においては、制御部１４は、ゲーム状況データに格納されたパラメータと、各シナリオに格納されたパラメータと、を比較して類似度を算出する。
【００８１】
本実施形態では、先述のように、制御部１４は、各シナリオの制御対象となるノンプレイヤキャラクタごとに、選手状況類似度を算出する。なお、各ノンプレイヤキャラクタの選手状況類似度の算出方法は、当該ノンプレイヤキャラクタの現在の状況に応じて異なるようにしてもよい。例えば、選手状況類似度の算出対象のノンプレイヤキャラクタとボール５２の位置関係次第では、ボール５２から遠い状況はある程度無視するか、選手状況類似度の数値に影響を与えないようにしてもよい。更に、例えば、ノンプレイヤキャラクタと、選手状況類似度の算出方法（例えば、参照すべきパラメータの種類）と、の関連付けがゲームプログラムに定義されており、制御部１４は、各ノンプレイヤキャラクタに関連付けられた算出方法に基づいて、選手状況類似度を算出するようにしてもよい。そして、制御部１４は、ノンプレイヤキャラクタごとに算出した選手状況類似度を所与の数式に代入して、類似度を算出する。制御部１４は、シナリオごとに算出した類似度を、主記憶１６に一時的に記録する。
【００８２】
制御部１４は、Ｓ５で算出した類似度が基準値以上のシナリオがあるか否かを判定する（Ｓ６）。なお、基準値は、予め定められた値であってもよいし、実行中のゲームに応じて変化する値であってもよい。
【００８３】
類似度が基準値以上のシナリオがないと判定された場合（Ｓ６；Ｎ）、Ｓ１３の処理に移行する。この場合、実行中のゲームの状況に似たシナリオがないので、各ノンプレイヤキャラクタは、イミテーションモードで動作せず、シミュレーションモードで動作する。
【００８４】
一方、類似度が基準値以上のシナリオがあると判定された場合（Ｓ６；Ｙ）、制御部１４は、類似度が基準値以上のシナリオを取得する（Ｓ７）。なお、ここでは、類似度が基準値以上のシナリオが複数存在する場合、制御部１４は、最も類似度が高いシナリオを取得する。
【００８５】
制御部１４は、Ｓ７で取得したシナリオに基づいて、各チームのノンプレイヤキャラクタのうちから、イミテーションモードの制御対象を選出する（Ｓ８）。Ｓ８においては、制御部１４は、各チームのノンプレイヤキャラクタのうち、シナリオが示すノンプレイヤキャラクタ（例えば、シナリオが示す現実世界の選手と同じ選手名のノンプレイヤキャラクタ）を、イミテーションモードの制御対象として選出する。
【００８６】
制御部１４は、Ｓ８で選出したノンプレイヤキャラクタを、シミュレーションモードでの制御からイミテーションモードでの制御に切り替える（Ｓ９）。Ｓ９においては、制御部１４は、ゲーム状況データを参照し、Ｓ８で選出したノンプレイヤキャラクタをイミテーションモードで制御する旨を格納する。
【００８７】
制御部１４は、シナリオに格納された動作に基づいて、制御対象のノンプレイヤキャラクタを、イミテーションモードで動作させる（Ｓ１０）。Ｓ１０の処理の詳細は、先述した通りであり、シナリオが示す選手の動作と、ノンプレイヤキャラクタの動作と、のずれが基準未満になるように、ノンプレイヤキャラクタを動作させる。
【００８８】
制御部１４は、イミテーションモードの解除条件が満たされるか否かを判定する（Ｓ１１）。解除条件は、現在実行しているイミテーションモードの制御を解除するか否かを判定するための予め定められた条件である。例えば、実行中のゲームの状況が、シナリオに格納されたデータが示す状況に類似しなくなったか否かを示す条件や、シナリオに格納された動作が終了したか否かを示す条件である。
【００８９】
解除条件が満たされると判定された場合（Ｓ１１；Ｙ）、制御部１４は、イミテーションモードで制御していたノンプレイヤキャラクタを、シミュレーションモードでの制御に切り替える（Ｓ１２）。Ｓ１２においては、制御部１４は、ゲーム状況データを参照して、イミテーションモードで制御していたノンプレイヤキャラクタを、イミテーションモードで制御している旨を格納し、イミテーションモードでの動作制御を解除する。
【００９０】
一方、解除条件が満たされないと判定された場合（Ｓ１１；Ｎ）、Ｓ１２の処理は実行されない。この場合、イミテーションモードでの動作制御が継続されることになる。
【００９１】
制御部１４は、終了条件が満たされるか否かを判定する（Ｓ１３）。終了条件は、本処理を終了するために予め定められた条件であればよい。例えば、試合の終了時間が到来したか否か、又は、ユーザがゲーム終了操作をしたか否か等である。終了条件が満たされると判定された場合（Ｓ１３；Ｙ）、本処理は終了する。終了条件が満たされると判定されない場合（Ｓ１３；Ｎ）、Ｓ２の処理に戻る。
【００９２】
以上説明したゲーム装置１０によれば、実行中のゲームの状況がシナリオの状況と類似する場合に、当該シナリオに定義された現実世界の選手の動作に基づいて、ノンプレイヤキャラクタを動作させるので、スポーツの試合での選手の動きに関するシミュレーションの精度を向上させることができる。特に、実施形態のようにボール５２を用いたゲームでは、ボール５２の状態がゲームの状況に大きく左右するため、ボール５２に対して選手がどのように動作したかをシナリオに定義することで、ボール５２に対するノンプレイヤキャラクタの動作の精度を向上させることができる。
【００９３】
また、イミテーションモードの実行中でも、一部のノンプレイヤキャラクタはシミュレーションモードで動作するため、シミュレーションモードで動作するノンプレイヤキャラクタと、イミテーションモードで動作するノンプレイヤキャラクタと、をゲーム空間４０において共存させることができる。特に、実施形態のようにボール５２を用いたゲームでは、例えば、ボールに比較的近い選手の動作のみをシナリオに定義しておくことで、ボール５２から比較的遠いノンプレイヤキャラクタ（即ち、試合の状況変化にあまり影響しないノンプレイヤキャラクタ）は、シミュレーションモードで動作させることができる。
【００９４】
また、ゲーム状況データが示す状況との類似度が高いシナリオに基づいて、イミテーションモードの制御対象を選出するので、現実選手の動作に基づいて動作させるべきノンプレイヤキャラクタのみを、イミテーションモードで制御することができる。特に、実施形態のようにボール５２を用いたゲームでは、例えば、ボールに比較的近い選手の動作のみをシナリオに定義しておくことで、試合の状況変化に強く影響するノンプレイヤキャラクタのみをイミテーションモードで制御することができる。
【００９５】
また、シナリオデータベースには複数のシナリオが格納されているため、現実選手の動作を定義した種々のシナリオを用いて、ノンプレイヤキャラクタの動作制御を行うことができる。
【００９６】
また、シナリオには、ユーザチームのキャラクタ５４の動作と、対戦相手チームのキャラクタ５６の動作と、が格納されているため、複数のチームのそれぞれに所属するノンプレイヤキャラクタの動作を一のシナリオに基づいて制御することができる。特に、実施形態のようにボール５２を用いたゲームでは、各選手の動作が対戦相手の選手の動作に応じて変化するため、両チームの選手の動作をシナリオに定義しておくことで、より効果的にシミュレーションの精度を向上することができる。
【００９７】
また、シナリオに基づいた動作制御をゲームに適用することによって、スポーツゲームにおけるゲームキャラクタのシミュレーションの精度を向上することができるので、よりリアリティの高いゲームをユーザに提供することができる。このため、現実世界のスポーツの試合での名シーンをユーザに再現させたり、現実世界のスポーツの試合でのイベントとは違う結果となるようにユーザに修正させたりすることができる。例えば、現実のサッカーにおいて得点が発生したシーンにおける選手の動作をシナリオに定義しておくことで、当該シーンを再現させるようにゲームをプレイさせたり、逆に、失点をせず現実とは異なる結果が得られるようにゲームをプレイさせたりすることができる。
【００９８】
［５．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【００９９】
図８は、変形例の機能ブロック図である。図８に示すように、以降説明する変形例では、実施形態の機能に加えて、切り替え部７２が実現される。切り替え部７２は、制御部１４を主として実現される。なお、ゲーム装置１０において、切り替え部７２は省略するようにしてもよい。
【０１００】
（１）例えば、あるシナリオに基づいたイミテーションモードの実行中において、ユーザの操作対象が、実行中のシナリオとはかけ離れた行動をした場合は、イミテーションモードで動作しているノンプレイヤキャラクタを、シミュレーションモードでの動作制御に戻すようにしてもよい。
【０１０１】
変形例（１）のゲーム装置１０は、切り替え部７２を含む。切り替え部７２は、第２制御部６８による制御中にユーザの操作対象が行った動作に基づいて、第２制御部６８の制御対象を、第２制御部６８による制御から第１制御部６４による制御に切り替える。第２制御部６８による制御中とは、イミテーションモードの実行中のことである。
【０１０２】
例えば、本変形例でのシナリオの解除条件は、ユーザの操作対象が所定類型の動作をしたか否かを示す条件である。即ち、各シナリオには、当該シナリオに基づいたイミテーションモードの実行を停止するための条件として、複数種類の動作のうちの少なくとも一つが定められている。
【０１０３】
切り替え部７２は、ユーザの操作に基づいて、実行中のシナリオに関連付けられた上記動作を、ユーザの操作対象が行ったか否かを判定する。ユーザの操作対象が当該動作を行ったと判定された場合、切り替え部７２は、第２制御部６８の制御対象のノンプレイヤキャラクタを、イミテーションモードでの制御から、シミュレーションモードでの制御に切り替える。
【０１０４】
変形例（１）によれば、ユーザの操作対象が行った動作に応じた最適な動作制御をすることができる。例えば、ユーザの操作対象がシナリオとはかけ離れた動作をした場合は、シナリオの実行をユーザが望んでいないと推測し、シミュレーションモードでの制御に切り替えることができるので、よりユーザの好みに合ったゲームを提供することができる。
【０１０５】
（２）また例えば、あるシナリオに基づいたイミテーションモードの実行中において、実行中のゲームの状況が、当該シナリオが示す状況とは類似しなくなった場合は、イミテーションモードで動作するノンプレイヤキャラクタを、シミュレーションモードでの動作制御に戻すようにしてもよい。
【０１０６】
変形例（２）の判定部６６は、第２制御部６８の制御中における架空世界の試合の状況（例えば、実行中のゲームの状況）が、類似すると判定された状況に類似しなくなったか否かを判定する。類似すると判定された状況とは、実行中のシナリオに格納された状況である。なお、判定部６６の判定方法は、実施形態で説明した方法と同様であり、これらの状況の類似度を算出して基準値以上であるか否かを判定する。即ち、判定部６６は、イミテーションモードの実行中において、シナリオが示す状況とゲーム状況データが示す状況との類似度を算出する。
【０１０７】
切り替え部７２は、架空世界の試合の状況（例えば、実行中のゲームの状況）が、類似すると判定された状況（即ち、実行中のシナリオの状況）に類似しなくなったと判定された場合、第２制御部６８の制御対象を、第２制御部６８による制御から第１制御部６４による制御に切り替える。状況が類似しなくなるとは、判定部６６が算出した類似度が基準値以上の状態から基準値未満の状態に変化することである。類似度が基準未満になったと判定された場合、切り替え部７２は、第２制御部６８の制御対象のノンプレイヤキャラクタを、イミテーションモードでの制御から、シミュレーションモードでの制御に切り替える。
【０１０８】
変形例（２）によれば、シミュレーション中の試合の状況に応じた最適な動作制御をすることができる。特に、上記のようなゲームでは、イミテーションモードで動作するノンプレイヤキャラクタと、シミュレーションモードで動作するノンプレイヤキャラクタと、が共存するため、ゲームの進行次第では、シナリオが示す状況に類似しなくなる場合がある。この場合は、試合の状況が類似しなくなった以上、シナリオに基づいてノンプレイヤキャラクタを制御してもシミュレーションの精度を向上させることができないので、イミテーションモードを解除するで、ゲームの進行に応じた最適な動作制御をユーザに提供することができる。
【０１０９】
（３）また例えば、あるシナリオに基づいたイミテーションモードの実行中において、実行中のゲームの状況が、当該シナリオに格納された状況とは類似しなくなった場合は、イミテーションモードで動作するノンプレイヤキャラクタを、他のシナリオに基づいたイミテーションモードでの動作制御に切り替えるようにしてもよい。
【０１１０】
変形例（３）の第２制御部６８は、架空世界の試合の状況（例えば、実行中のゲームの状況）が、類似すると判定された状況（例えば、実行中のシナリオが示す状況）に類似しなくなったと判定された場合、当該類似しなくなったと判定された状況に対応するシナリオに基づいた制御から、他のシナリオに基づいた制御に切り替える。他のシナリオとは、実行中のシナリオ以外のシナリオであり、例えば、類似度が基準値以上のシナリオのうち実行中のシナリオ以外のものである。
【０１１１】
実行中のシナリオが示す状況とゲーム状況データが示す状況とが類似しなくなった場合、第２制御部６８は、実行中のシナリオに基づいたイミテーションモードの実行を停止し、他のシナリオに基づいたイミテーションモードを実行する。例えば、実行中のシナリオに基づいたイミテーションモードで動作するノンプレイヤキャラクタが、他のシナリオに基づいたイミテーションモードでの制御対象に選出された場合は、第２制御部６８は、実行中のシナリオに基づいたイミテーションモードで動作するノンプレイヤキャラクタを、他のシナリオに基づいたイミテーションモードでの制御に切り替える。
【０１１２】
変形例（３）によれば、シミュレーション中の試合の状況に応じた最適なシナリオに基づいて、現実選手の動作に基づいた動作制御をすることができる。特に、実施形態で説明したようなゲームでは、シナリオに基づいてイミテーションモードの実行中に、ゲームの状況が大きく変化することがある。この場合に、現在の状況に応じた最適なシナリオに切り替えることで、シミュレーションの精度をより効果的に向上することができる。
【０１１３】
（４）また例えば、あるシナリオに基づいたイミテーションモードの実行中において、ユーザの操作対象が、当該シナリオとはかけ離れた行動をした場合は、イミテーションモードで動作するノンプレイヤキャラクタを、他のシナリオに基づいたイミテーションモードでの動作制御に切り替えるようにしてもよい。
【０１１４】
第２制御部６８は、当該第２制御部６８による制御中にユーザの操作対象が行った動作に基づいて、類似すると判定された状況に対応するシナリオ（例えば、実行中のシナリオ）に基づいた制御から、他のシナリオ（例えば、実行中のシナリオ以外のシナリオ）に基づいた制御に切り替える。
【０１１５】
変形例（４）でも、変形例（１）と同様、各シナリオに動作の種類が関連付けられており、第２制御部６８は、ユーザの操作対象が、実行中のシナリオに関連付けられた動作をしたか否かを判定することになる。第２制御部６８は、ユーザの操作対象が実行中のシナリオに関連付けられた動作をした場合、他のシナリオに基づいたイミテーションモードに切り替える。また、変形例（４）においても、変形例（３）と同様、第２制御部６８は、ゲーム状況データが示す状況との類似度が基準値以上であるシナリオのうちから、切り替え後に用いるシナリオを決定するようにしてもよい。
【０１１６】
変形例（４）によれば、シミュレーション中の試合の状況に応じた最適なシナリオに切り替えて、ノンプレイヤキャラクタの動作制御を行うことができる。例えば、ユーザの操作対象がシナリオとはかけ離れた動作をした場合は、現在のシナリオの実行をユーザが望んでいないと推測して他のシナリオでの制御に切り替えることができるので、よりユーザの好みに合ったシナリオを提供することができる。
【０１１７】
（５）また例えば、実施形態では、説明の簡略化のため、あるシナリオに基づいたイミテーションモードが実行中において、他のシナリオに基づいたイミテーションモードが実行されない場合を説明したが、複数のシナリオのそれぞれに基づいたイミテーションモードが同時に実行されるようにしてもよい。即ち、複数のノンプレイヤキャラクタのそれぞれが、互いに異なるシナリオに基づいたイミテーションモードで動作するようにしてもよい。
【０１１８】
第２制御部６８は、架空世界の試合の状況（例えば、実行中のゲームの状況）と複数のシナリオのうちの複数が示す状況とが類似すると判定された場合、当該類似すると判定された複数の状況のうち、一の状況に関連付けられた動作に基づいて、ユーザの操作対象以外の複数の架空選手の一部（例えば、ノンプレイヤキャラクタのうちの一部）を動作させ、他の状況に関連付けられた動作に基づいて、当該一部の架空選手以外を動作させる。
【０１１９】
類似度が基準値以上のシナリオが複数存在する場合、第２制御部６８は、これら複数のシナリオごとに、イミテーションモードを実行することになる。即ち、第２制御部６８は、複数のシナリオに基づいて、複数のノンプレイヤキャラクタを動作させる。例えば、第２制御部６８は、類似度が最も高いシナリオに基づいて、当該シナリオに基づいたイミテーションモードでの制御対象を選出する。そして、第２制御部６８は、次に類似度が高いシナリオに基づいて、イミテーションモードでの制御対象にまだ選出されていないノンプレイヤキャラクタのうちから、当該シナリオに基づいたイミテーションモードでの制御対象を選出する。
【０１２０】
以降、第２制御部６８は、類似度が基準以上のシナリオがなくなるまで、又は、制御対象に選出されていないノンプレイヤキャラクタがいなくなるまで、類似度が高い順に、シナリオに基づいたイミテーションモードでの制御対象の選出を繰り返す。第２制御部６８は、上記選出したノンプレイヤキャラクタを、各シナリオに格納された動作に基づいて動作させることになる。
【０１２１】
変形例（５）によれば、シミュレーション中の試合の状況に応じて複数のシナリオを同時に使用して、各ノンプレイヤキャラクタの動作制御を行うことができる。このため、例えば、あるノンプレイヤキャラクタのグループは、あるシナリオに基づいて動作し、別のグループは別のシナリオに基づいて動作させることができるので、より効果的にシミュレーションの精度を向上させることができる。
【０１２２】
なお、複数のシナリオに基づいて、複数のノンプレイヤキャラクタを同時に制御する方法は、上記の例に限られない。例えば、各ノンプレイヤキャラクタに対応する選手状況類似度が最も高いシナリオに基づいて、当該ノンプレイヤキャラクタを制御するようにしてもよい。他にも例えば、各ノンプレイヤキャラクタを、他のノンプレイヤキャラクタを制御するためのシナリオに対応するシナリオに基づいて制御するようにしてもよい。
【０１２３】
（６）また例えば、上記においては、ノンプレイヤキャラクタがシナリオに基づいて動作する場合を説明したが、ユーザの操作対象がシナリオに基づいて動作するようにしてもよい。この場合、ユーザの操作対象の動作がシナリオが示す動作に近づくように、ユーザの操作が補正されるようにしてもよい。
【０１２４】
第３制御部７０は、架空世界の試合の状況（例えば、実行中のゲームの状況）とシナリオが示す状況とが類似すると判定された場合、当該状況に関連付けられた動作と、ユーザの操作と、に基づいて、ユーザの操作対象を動作させる。なお、変形例（６）においては、第２制御部６８は、ユーザの操作対象を、イミテーションモードでの制御対象として選出する。即ち、シナリオに定義された動作において、ユーザの操作対象に設定されたキャラクタ５４を示す情報が含まれている。
【０１２５】
図９は、変形例（６）における第３制御部７０の制御内容を説明するための図である。第３制御部７０は、ユーザの操作に対応する動作と、シナリオに定義された動作と、のずれが小さくなるように、ユーザの操作対象の動作を変更する。動作のずれについては、実施形態で説明した内容と同様であり、例えば、図９に示すように、ユーザの操作対象が所定方向Ｖ４にボール５２を移動させることがシナリオに定義されている場合、第３制御部７０は、ユーザが指示したボール５２の移動方向Ｖ５が、シナリオに定義されたボール５２の移動方向Ｖ４に近づくように、ユーザの操作対象の動作を補正して、ボール５２を移動方向Ｖ６に移動させる。
【０１２６】
変形例（６）によれば、ユーザの操作対象の動作を、現実世界の選手の動作に基づいて制御することができる。このため、シナリオが示す現実世界での試合のイベントをユーザが再現しやすくなる。
【０１２７】
（７）また例えば、ユーザが指示した操作に対応する動作と、シナリオに定義された動作と、のずれが比較的大きい場合にのみ、変形例（６）で説明した補正が行われるようにしてもよい。
【０１２８】
第３制御部７０は、架空世界の試合の状況（例えば、実行中のゲームの状況）とシナリオが示す状況とが類似すると判定された場合、当該状況に関連付けられた動作と、ユーザが行った操作に対応する動作と、に関するずれを取得する。動作のずれについては、実施形態で説明した内容と同様であり、例えば、第３制御部７０は、シナリオに格納された動作が示すキャラクタ５４の位置又は移動方向と、ユーザが行った操作に対応するキャラクタ５４の位置又は移動方向と、のずれを取得する。また例えば、第３制御部７０は、シナリオに格納された動作が示すボール５２の位置又は移動方向と、ユーザが行った操作に応じて操作対象が移動させるボール５２の位置又は移動方向と、のずれを取得する。
【０１２９】
第３制御部７０は、当該取得されたずれが基準以上である場合、上記類似する状況に関連付けられた動作と、ユーザの操作と、に基づいて、ユーザの操作対象を動作させる。この制御方法は、変形例（６）と同様である。即ち、第３制御部７０は、当該取得されたずれが基準未満である場合、シナリオに格納された動作に基づかず、ユーザの操作に基づいて、ユーザの操作対象を動作させる。
【０１３０】
変形例（７）によれば、現実世界の選手の動作と、ユーザが行った操作に対応する動作と、のずれが比較的大きい場合に、ユーザの操作対象の動作を、現実世界の選手の動作に基づいて制御することができる。例えば、ユーザの操作対象の動作がシナリオの動作に近づくように常に補正すると、ユーザが操作対象を操作する感覚に狂いが生じてしまう可能性があるが、上記のずれが比較的小さい場合は、ユーザの操作通りに操作対象を動作させてもシナリオを再現できる可能性が高いため、ユーザの操作対象の動作をシナリオの動作に近づける補正を行わないことにより、ユーザの操作感覚に狂いが生じてしまう可能性を低減することができる。
【０１３１】
（８）また例えば、実施形態と上記変形例の二つ以上とを組み合わせるようにしてもよい。
【０１３２】
また例えば、上記においては、各シナリオに基づいて複数のノンプレイヤキャラクタを動作させる場合を説明したが、一のシナリオに基づいて一のノンプレイヤキャラクタが動作するようにしてもよい。この場合、各シナリオには、当該シナリオに基づいて動作させるべき一のキャラクタ５４（５６）を示す情報が含まれている。判定部６６は、各シナリオが示す状況と、当該一のキャラクタ５４（５６）の現在の状態と、に基づいて類似度を算出し、第２制御部６８は、類似度が基準値以上である場合に、当該一のキャラクタ５４（５６）をシナリオに基づいて制御することになる。
【０１３３】
また例えば、選手状況類似度を加重合計することで算出される類似度に基づいて、イミテーションモードで使用されるシナリオが特定される場合を説明したが、シナリオの特定方法は、これに限られない。ゲーム状況データが示す状況に類似するシナリオが、使用対象として特定されるようにすればよい。他にも例えば、判定部６６は、選手状況類似度を算出せずに、試合の全体的な状況に関する類似度（例えば、得点差等の戦況に関する類似度）を算出し、当該類似度が比較的高いシナリオのうちから、選手状況類似度を算出することで使用対象のシナリオを特定するようにしてもよい。また例えば、イミテーションモードで使用されるシナリオを検索する方法は、一つのシナリオが何人のノンプレイヤキャラクタをコントロールできるかや、多数のシナリオを同時に実行できるかに応じて変わるようにしてもよい。
【０１３４】
また例えば、第２制御部６８が各シナリオに基づいた動作制御を行う際に、当該シナリオに定義された最初の動作から順番に、ノンプレイヤキャラクタにさせる必要はなく、当該シナリオに定義された途中の動作から、ノンプレイヤキャラクタにさせるようにしてもよい。
【０１３５】
また例えば、シナリオに含まれるパラメータは、上記の例に限られない。各シナリオには、現実世界で行われた試合での選手に関するパラメータが格納されるようにすればよい。他にも例えば、現実世界で行われた試合での各選手の感情値や疲労度等を示すパラメータが、シナリオに格納されているようにしてもよい。この場合、当該パラメータに対応するパラメータがゲーム状況データに格納されているものとする。そして、判定部６６は、ノンプレイヤキャラクタの感情値や疲労度等と、シナリオが示す選手の感情値や疲労度等と、を比較して状況が類似するか否かを判定することになる。
【０１３６】
また例えば、各シナリオには、現実世界で行われた試合での選手の動作が時系列で格納される場合を説明したが、あるタイミングで選手が行った動作のみが格納されるようにしてもよい。
【０１３７】
また例えば、キャラクタ５４の何れかがユーザの操作対象に設定される場合を例に挙げて説明したが、ユーザの操作対象がいないようにしてもよい。即ち、ゲーム空間４０に配置された全てのキャラクタ５４（５６）が、第１制御部６６又は第２制御部６８により制御されるようにしてもよい。
【０１３８】
また例えば、ゲーム空間４０を、図２に示すような３次元空間として説明したが、本発明に係るゲーム空間は、キャラクタ５４（５６）やボール５２の位置等が、２つの座標要素で管理されるような２次元ゲーム空間であってもよい。
【０１３９】
また、上記においては、主に、スタンドアロン型ゲームを例に挙げて説明したが、ソーシャルネットワークを利用したオンライン型ゲーム（例えば、いわゆるブラウザ型ゲームやネイティブアプリ型ゲームを含む）等の種々のゲームに本発明を適用するようにしてもよい。この場合、ユーザが操作する端末に接続されたサーバが、本発明に係るゲーム装置に相当するようにしてもよい。
【０１４０】
また例えば、本発明をゲームに適用する場合、サッカーゲーム以外のスポーツゲーム（例えば、バスケットボールゲーム、アイスホッケーゲーム、又は、アメリカンフットボールゲーム）全般に適用することができる。また例えば、本発明は、ゲーム装置以外のシミュレーション装置にも適用できる。例えば、現実のスポーツ選手の練習を支援するためにシミュレーションを行う装置にも、本発明に係る技術を適用することができる。
【０１４１】
［６．発明のまとめ］
以上のような記載から、本発明は例えば以下のように把握される。
本発明に係るシミュレーション装置は、スポーツ（例えば、サッカー）の試合における選手の動作をシミュレートするシミュレーション装置（１０）であって、架空世界（例えば、ゲーム空間４０）に配置された複数の架空選手（例えば、キャラクタ５４）のうち、ユーザの操作対象以外の架空選手の動作をシミュレートする第１制御手段（６４）と、現実世界で行われた前記スポーツの試合の状況と、当該試合での現実選手の動作と、を関連付けたデータを記憶する記憶手段（６０）の記憶内容を取得する手段（６２）と、シミュレーション中の前記架空世界の試合の状況と、前記データが示す状況と、が類似するか否かを判定する判定手段（６６）と、前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、前記ユーザの操作対象以外の架空選手を、前記第１制御手段（６４）による制御に代えて、当該状況に関連付けられた動作に基づいて制御する第２制御手段（６８）と、を含むことを特徴とする。
【０１４２】
本発明に係るシミュレーション方法は、スポーツ（例えば、サッカー）の試合における選手の動作をシミュレートするシミュレーション方法であって、架空世界（例えば、ゲーム空間４０）に配置された複数の架空選手（例えば、キャラクタ５４）のうち、ユーザの操作対象以外の架空選手の動作をシミュレートする第１制御ステップ（６４）と、現実世界で行われた前記スポーツの試合の状況と、当該試合での現実選手の動作と、を関連付けたデータを記憶する記憶手段（６０）の記憶内容を取得するステップ（６２）と、シミュレーション中の前記架空世界の試合の状況と、前記データが示す状況と、が類似するか否かを判定する判定ステップ（６６）と、前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、前記ユーザの操作対象以外の架空選手を、前記第１制御ステップ（６４）における制御に代えて、当該状況に関連付けられた動作に基づいて制御する第２制御ステップ（６８）と、を含むことを特徴とする。
【０１４３】
本発明に係るプログラムは、スポーツ（例えば、サッカー）の試合における選手の動作をシミュレートするコンピュータ（１０）を、架空世界（例えば、ゲーム空間４０）に配置された複数の架空選手（例えば、キャラクタ５４）のうち、ユーザの操作対象以外の架空選手の動作をシミュレートする第１制御手段（６４）、現実世界で行われた前記スポーツの試合の状況と、当該試合での現実選手の動作と、を関連付けたデータを記憶する記憶手段（６０）の記憶内容を取得する手段（６２）、シミュレーション中の前記架空世界の試合の状況と、前記データが示す状況と、が類似するか否かを判定する判定手段（６６）、前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、前記ユーザの操作対象以外の架空選手を、前記第１制御手段（６４）による制御に代えて、当該状況に関連付けられた動作に基づいて制御する第２制御手段（６８）、として機能させる。
【０１４４】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
【０１４５】
本発明によれば、スポーツの試合における選手の動きに関するシミュレーションの精度を向上させることができる。
【０１４６】
また、本発明の一態様では、前記架空世界（例えば、ゲーム空間４０）には、前記ユーザの操作対象以外の架空選手（例えば、キャラクタ５４）が複数配置され、前記第２制御手段（６８）は、前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、前記ユーザの操作対象以外の前記複数の架空選手のうちの一部を、前記第１制御手段（６４）による制御に代えて、当該状況に関連付けられた動作に基づいて制御し、前記第１制御手段（６４）は、前記架空世界の試合の状況と前記データが示す状況とが類似すると判定された場合、前記ユーザの操作対象以外の前記複数の架空選手のうち、前記第２制御手段（６８）の制御対象以外の架空選手を制御する、ことを特徴とする。当該態様によれば、第１制御手段が制御する架空選手と、第２制御手段が制御する架空選手と、を架空世界において共存させることができる。
【０１４７】
また、本発明の一態様では、前記第２制御手段（６８）は、前記架空世界（例えば、ゲーム空間４０）の試合の状況と前記データが示す状況とが類似すると判定された場合、当該データに基づいて、前記ユーザの操作対象以外の前記複数の架空選手（例えば、キャラクタ５４）のうちから、当該第２制御手段（６８）の制御対象を選出する手段（６８）を含み、当該選出された架空選手を、前記第１制御手段（６４）による制御に代えて制御する、ことを特徴とする。当該態様によれば、現実選手の動作に基づいて動作させるべき架空選手のみを、第２制御手段により制御させることができる。
【０１４８】
また、本発明の一態様では、前記シミュレーション装置（１０）は、前記第２制御手段（６８）による制御中に前記ユーザの操作対象が行った動作に基づいて、前記第２制御手段（６８）の制御対象を、前記第２制御手段（６８）による制御から前記第１制御手段（６４）による制御に切り替える手段（７２）、を更に含むことを特徴とする。当該態様によれば、ユーザの操作対象が行った動作に応じた最適な動作制御をすることができる。
【０１４９】
また、本発明の一態様では、前記判定手段（６６）は、前記第２制御手段（６８）の制御中における前記架空世界（例えば、ゲーム空間４０）の試合の状況が、前記類似すると判定された状況に類似しなくなったか否かを判定し、前記シミュレーション装置（１０）は、前記架空世界の試合の状況が前記類似すると判定された状況に類似しなくなったと判定された場合、前記第２制御手段（６８）の制御対象を、前記第２制御手段（６８）による制御から前記第１制御手段（６４）による制御に切り替える手段（７２）、を更に含むことを特徴とする。当該態様によれば、シミュレーション中の試合の状況に応じた最適な動作制御をすることができる。
【０１５０】
また、本発明の一態様では、前記記憶手段（６０）には、複数の前記データが記憶されており、前記判定手段（６６）は、前記架空世界（例えば、ゲーム空間４０）の試合の状況と、前記複数のデータのそれぞれが示す状況と、が類似するか否かを判定し、前記第２制御手段（６８）は、前記架空世界の試合の状況と前記複数のデータのうちの少なくとも一つが示す状況とが類似すると判定された場合、当該類似すると判定された状況に関連付けられた動作に基づいて、前記ユーザの操作対象以外の架空選手（例えば、キャラクタ５４）を制御する、ことを特徴とする。当該態様によれば、現実選手の動作を定義した種々のデータを用いてシミュレーションを行うことができる。
【０１５１】
また、本発明の一態様では、前記判定手段（６６）は、前記第２制御手段（６８）の制御中における前記架空世界（例えば、ゲーム空間４０）の試合の状況が、前記類似すると判定された状況に類似しなくなったか否かを判定し、前記第２制御手段（６８）は、前記架空世界の試合の状況が前記類似すると判定された状況に類似しなくなったと判定された場合、当該類似しなくなったと判定された状況に対応するデータに基づいた制御から、他の前記データに基づいた制御に切り替える、ことを特徴とする。当該態様によれば、シミュレーション中の試合の状況に応じた最適なデータに基づいて、現実選手の動作に基づいた動作制御をすることができる。
【０１５２】
また、本発明の一態様では、前記第２制御手段（６８）は、前記第２制御手段（６８）による制御中に前記ユーザの操作対象が行った動作に基づいて、前記類似すると判定された状況に対応するデータに基づいた制御から、他の前記データが示す動作に基づいた制御に切り替える、ことを特徴とする。当該態様によれば、シミュレーション中の試合の状況に応じた最適なデータに切り替えて、架空選手（例えば、キャラクタ５４）の動作制御を行うことができる。
【０１５３】
また、本発明の一態様では、前記第２制御手段（６８）は、前記架空世界（例えば、ゲーム空間４０）の試合の状況と前記複数のデータのうちの複数が示す状況とが類似すると判定された場合、当該類似すると判定された複数の状況のうち、一の状況に関連付けられた動作に基づいて、前記ユーザの操作対象以外の複数の架空選手（例えば、キャラクタ５４）の一部を動作させ、他の前記状況に関連付けられた動作に基づいて、当該一部の架空選手（例えば、キャラクタ５４）以外を動作させる、ことを特徴とする。当該態様によれば、シミュレーション中の試合の状況に応じて複数のデータを同時に使用して、各架空選手（例えば、キャラクタ５４）の動作制御を行うことができる。
【０１５４】
また、本発明の一態様では、前記ユーザの操作対象を、当該ユーザの操作に基づいて動作させる手段（７０）であって、前記架空世界（例えば、ゲーム空間４０）の試合の状況と前記データが示す状況とが類似すると判定された場合、当該状況に関連付けられた動作と、前記ユーザの操作と、に基づいて、前記ユーザの操作対象を動作させる第３制御手段（７０）を更に含む、ことを特徴とする。当該態様によれば、ユーザの操作対象の動作を、現実世界の選手の動作に基づいて制御することができる。
【０１５５】
また、本発明の一態様では、前記第３制御手段（７０）は、前記架空世界（例えば、ゲーム空間４０）の試合の状況と前記データが示す状況とが類似すると判定された場合、当該状況に関連付けられた動作と、前記ユーザが行った操作に対応する動作と、に関するずれを取得する手段（７０）を更に含み、当該取得されたずれが基準以上である場合、当該状況に関連付けられた動作と、前記ユーザの操作と、に基づいて、前記ユーザの操作対象を動作させる、ことを特徴とする。当該態様によれば、現実世界の選手の動作と、ユーザが行った操作に対応する動作と、のずれが比較的大きい場合に、ユーザの操作対象の動作を、現実世界の選手の動作に基づいて制御することができる。
【０１５６】
また、本発明の一態様では、前記シミュレーション装置（１０）は、複数のチーム同士で対戦するスポーツ（例えば、サッカー）の試合での選手の動作をシミュレートし、前記複数の架空選手（例えば、キャラクタ５４）のそれぞれは、前記複数のチームの何れかに所属し、前記第１制御手段（６４）は、前記複数のチームの何れかに所属する前記複数の架空選手のうち、前記ユーザの操作対象以外の架空選手の動作をシミュレートし、前記データは、現実世界で行われた試合における前記複数のチームのそれぞれの選手の動作を示し、前記第２制御手段（６８）は、前記架空世界（例えば、ゲーム空間４０）の試合の状況と前記データが示す状況とが類似すると判定された場合、当該状況に関連付けられた動作に基づいて、前記複数のチームのそれぞれに所属する架空選手を制御する、ことを特徴とする。当該態様によれば、複数のチームのそれぞれに所属する架空選手の動作を一のデータに基づいて制御することができる。
【０１５７】
また、本発明の一態様では、前記シミュレーション装置（１０）は、スポーツ（例えば、サッカー）の試合での選手の動作をシミュレートするゲームを実行し、前記複数の架空選手のそれぞれは、ゲームキャラクタ（例えば、キャラクタ５４）であり、前記第１制御手段（６４）は、前記ユーザの操作対象以外のゲームキャラクタの動作をシミュレートし、前記第２制御手段（６８）は、前記類似すると判定された状況に関連付けられた動作に基づいて、前記ユーザの操作対象以外のゲームキャラクタを制御する、ことを特徴とする。当該態様によれば、スポーツの選手を模したゲームキャラクタのシミュレーションの精度を向上することができる。
【符号の説明】
【０１５８】
１０  ゲーム装置、１２  バス、１４  制御部、１６  主記憶、１８  画像処理部、２０  入出力処理部、２２  音声処理部、２４  光ディスク再生部、２６  ハードディスク、２８  通信インタフェース、３０  コントローラ、３２  表示部、３４  音声出力部、３６  光ディスク、４０  ゲーム空間、４２  フィールド、４４  ゴール、４６  ゴールライン、４８  タッチライン、５０  ピッチ、５２  ボール、５４，５６  キャラクタ、５８  仮想カメラ、６０  ゲームデータ記憶部、６２  取得部、６４  第１制御部、６６  判定部、６８  第２制御部、７０  第３制御部、７２  切り替え部。
【図１】
0006032710.tif 000002
【図２】
0006032710.tif 000003
【図３】
0006032710.tif 000004
【図４】
0006032710.tif 000005
【図５】
0006032710.tif 000006
【図６】
0006032710.tif 000007
【図７】
0006032710.tif 000008
【図８】
0006032710.tif 000009
【図９】
0006032710.tif 000010