(57)【要約】【課題】仮想ゲームステージで実行されるレースの状況に応じて、より自然な動作制御が可能な構成を提供する。【解決手段】情報処理装置は、仮想ゲームステージで行われた第１レースにおいてゲームオブジェクトが移動した第１移動ルートを特定可能な履歴情報を、少なくとも１つ取得する手段と、仮想ゲームステージで行われ、第１レースとは独立してゲームイベントが発生する、プレイヤオブジェクトと少なくとも１つのノンプレイヤオブジェクトとが参加する第２レースを実行する手段と、第２レースについて、ノンプレイヤオブジェクトに履歴情報を対応付ける手段と、第２レースにおいて、当該第２レースで発生するゲームイベントに起因するレース状態に応じて、ノンプレイヤオブジェクトを、対応付けられた履歴情報により特定される第１移動ルートと、当該第１移動ルートとは異なる第２移動ルートとのうちいずれで移動させるかを判定する手段とを含む。【選択図】図５
2020185283.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、前記情報処理プログラムは前記コンピュータを、
仮想ゲームステージで行われた第１レースにおいてゲームオブジェクトが移動した第１移動ルートを特定可能な履歴情報を、少なくとも１つ取得する取得手段と、
前記仮想ゲームステージで行われ、前記第１レースとは独立してゲームイベントが発生する第２レースを実行するレース実行手段として機能させ、前記第２レースには、プレイヤオブジェクトと少なくとも１つのノンプレイヤオブジェクトとが参加し、
前記第２レースについて、前記ノンプレイヤオブジェクトに前記履歴情報を対応付ける対応付け手段と、
前記第２レースにおいて、当該第２レースで発生する前記ゲームイベントに起因するレース状態に応じて、前記ノンプレイヤオブジェクトを、前記対応付けられた履歴情報により特定される前記第１移動ルートと、当該第１移動ルートとは異なる第２移動ルートとのうちいずれで移動させるかを判定する判定手段として機能させる、情報処理プログラム。
【請求項２】
前記レース状態は、前記ノンプレイヤオブジェクトの状態を含む、請求項１に記載の情報処理プログラム。
【請求項３】
前記情報処理プログラムは前記コンピュータを、前記ノンプレイヤオブジェクトが保有するアイテムを管理する管理手段としてさらに機能させ、
前記ノンプレイヤオブジェクトの状態は、前記ノンプレイヤオブジェクトが保有しているアイテムの状態を含む、請求項２に記載の情報処理プログラム。
【請求項４】
前記判定手段は、前記ノンプレイヤオブジェクトが保有しているアイテムに特定アイテムが含まれない場合に、前記ノンプレイヤオブジェクトを前記第２移動ルートで移動させると判定する、請求項３に記載の情報処理プログラム。
【請求項５】
前記管理手段は、前記ノンプレイヤオブジェクトが保有しているアイテムに前記特定アイテムが含まれる場合に、前記ノンプレイヤオブジェクトに前記特定アイテムを使用させ、
前記判定手段は、前記ノンプレイヤオブジェクトを前記第１移動ルートで移動させると判定する、請求項４に記載の情報処理プログラム。
【請求項６】
前記第１移動ルートは、前記第２移動ルートに比較して、前記ノンプレイヤオブジェクトの移動速度を低下させるものである、請求項４または５に記載の情報処理プログラム。
【請求項７】
前記管理手段は、前記ノンプレイヤオブジェクトが保有しているアイテムに特定アイテムが含まれる場合に、前記ノンプレイヤオブジェクトに前記特定アイテムを使用させ、
前記判定手段は、前記ノンプレイヤオブジェクトを前記第２移動ルートで移動させると判定する、請求項３に記載の情報処理プログラム。
【請求項８】
前記判定手段は、前記ノンプレイヤオブジェクトが保有しているアイテムに前記特定アイテムが含まれない場合に、前記ノンプレイヤオブジェクトを前記第１移動ルートで移動させると判定する、請求項７に記載の情報処理プログラム。
【請求項９】
前記第１移動ルートは、前記第２移動ルートに比較して、前記ノンプレイヤオブジェクトの移動速度を増加させるものである、請求項７または８に記載の情報処理プログラム。
【請求項１０】
前記特定アイテムは、前記ノンプレイヤオブジェクトが前記特定アイテムを使用しない場合に比較して、前記ノンプレイヤオブジェクトの移動速度を増加させるものである、請求項４〜９のいずれか１項に記載の情報処理プログラム。
【請求項１１】
前記特定アイテムは、前記ノンプレイヤオブジェクトが当該特定アイテムを使用しない場合には通行できないルートを通行できるようにするものである、請求項４〜９のいずれか１項に記載の情報処理プログラム。
【請求項１２】
前記管理手段は、
前記ノンプレイヤオブジェクトが保有するアイテムを予め定められた使用順序に従って使用させ、
前記ノンプレイヤオブジェクトが保有している前記特定アイテムの使用順序が２番目以降である場合に、前記特定アイテムの使用順序が１番目になるまで、前記特定アイテム以外のアイテムを、前記特定アイテムが含まれない場合に比較して、前記ノンプレイヤオブジェクトに早く使用させる、請求項４〜１１のいずれか１項に記載の情報処理プログラム。
【請求項１３】
前記管理手段は、前記ノンプレイヤオブジェクトが保有する特定アイテムの使用順序が１番目である場合に、前記ノンプレイヤオブジェクトが前記第２移動ルートの開始点の近傍に到達するまで、前記特定アイテムを保有させ続ける、請求項４〜１１のいずれか１項に記載の情報処理プログラム。
【請求項１４】
前記ゲームイベントは、前記第２レースにおいて、前記ノンプレイヤオブジェクトに前記アイテムを確率に基づいて付与することを含む、請求項３〜１３のいずれか１に記載の情報処理プログラム。
【請求項１５】
前記第２移動ルートは、前記第１移動ルートから枝分かれするルートを含む、請求項１〜１４のいずれか１項に記載の情報処理プログラム。
【請求項１６】
前記ノンプレイヤオブジェクトの状態は、前記ノンプレイヤオブジェクトの移動性能が通常時に比較して変化しているか否かを含む、請求項２に記載の情報処理プログラム。
【請求項１７】
前記移動性能は、前記ノンプレイヤオブジェクトを通常時に比較して減速状態とすることを含む、請求項１６に記載の情報処理プログラム。
【請求項１８】
前記レース状態は、前記仮想ゲームステージの状態を含む、請求項１〜１７のいずれか１項に記載の情報処理プログラム。
【請求項１９】
前記判定手段は、前記第１移動ルートに障害物オブジェクトが存在する場合に、前記ノンプレイヤオブジェクトを前記第２移動ルートで移動させると判定する、請求項１〜１８のいずれか１項に記載の情報処理プログラム。
【請求項２０】
前記第２移動ルートは、前記第１移動ルートとは異なる曲率半径を有するルートを含む、請求項１〜１９のいずれか１項に記載の情報処理プログラム。
【請求項２１】
前記履歴情報は、位置に関する情報を含む、請求項１〜２０のいずれか１項に記載の情報処理プログラム。
【請求項２２】
前記履歴情報は、入力情報に関する情報を含む、請求項１〜２１のいずれか１項に記載の情報処理プログラム。
【請求項２３】
仮想ゲームステージで行われた第１レースにおいてゲームオブジェクトが移動した第１移動ルートを特定可能な履歴情報を、少なくとも１つ取得する取得手段と、
前記仮想ゲームステージで行われ、前記第１レースとは独立してゲームイベントが発生する第２レースを実行するレース実行手段とを備え、前記第２レースには、プレイヤオブジェクトと少なくとも１つのノンプレイヤオブジェクトとが参加し、
前記第２レースについて、前記ノンプレイヤオブジェクトに前記履歴情報を対応付ける対応付け手段と、
前記第２レースにおいて、当該第２レースで発生する前記ゲームイベントに起因するレース状態に応じて、前記ノンプレイヤオブジェクトを、前記対応付けられた履歴情報により特定される前記第１移動ルートと、当該第１移動ルートとは異なる第２移動ルートとのうちいずれで移動させるかを判定する判定手段とを備える、情報処理装置。
【請求項２４】
情報処理システムであって、
表示デバイスと、
入力デバイスと、
前記表示デバイスおよび前記入力デバイスと通信可能な演算部とを備え、
前記演算部は、
仮想ゲームステージで行われた第１レースにおいてゲームオブジェクトが移動した第１移動ルートを特定可能な履歴情報を、少なくとも１つ取得する取得手段と、
前記仮想ゲームステージで行われ、前記第１レースとは独立してゲームイベントが発生する第２レースを実行するレース実行手段とを備え、前記第２レースには、プレイヤオブジェクトと少なくとも１つのノンプレイヤオブジェクトとが参加し、
前記第２レースについて、前記ノンプレイヤオブジェクトに前記履歴情報を対応付ける対応付け手段と、
前記第２レースにおいて、当該第２レースで発生する前記ゲームイベントに起因するレース状態に応じて、前記ノンプレイヤオブジェクトを、前記対応付けられた履歴情報により特定される前記第１移動ルートと、当該第１移動ルートとは異なる第２移動ルートとのうちいずれで移動させるかを判定する判定手段とを備える、情報処理システム。
【請求項２５】
情報処理装置のコンピュータにおいて実行される情報処理方法であって、
仮想ゲームステージで行われた第１レースにおいてゲームオブジェクトが移動した第１移動ルートを特定可能な履歴情報を、少なくとも１つ取得するステップと、
前記仮想ゲームステージで行われ、前記第１レースとは独立してゲームイベントが発生する第２レースを実行するステップとを備え、前記第２レースには、プレイヤオブジェクトと少なくとも１つのノンプレイヤオブジェクトとが参加し、
前記第２レースについて、前記ノンプレイヤオブジェクトに前記履歴情報を対応付けるステップと、
前記第２レースにおいて、当該第２レースで発生する前記ゲームイベントに起因するレース状態に応じて、前記ノンプレイヤオブジェクトを、前記対応付けられた履歴情報により特定される前記第１移動ルートと、当該第１移動ルートとは異なる第２移動ルートとのうちいずれで移動させるかを判定するステップとを備える、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、プレイヤオブジェクトおよびノンプレイヤオブジェクトが参加可能なレースを実行するための情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関する。
【背景技術】
【０００２】
従来から、レースゲームなどでは、現実のプレイヤに加えて、コンピュータにより生成された仮想的なプレイヤが参加してゲームを進行することが可能になっている。例えば、特開２０１０−２００８３０号公報（特許文献１）は、プレイヤ同士が対戦している感覚をプレイヤに味わわせてゲームの面白味を向上させるゲームシステムを開示する。より具体的には、特開２０１０−２００８３０号公報（特許文献１）は、過去に実施されたレース制御において、プレイヤによってゲーム端末装置から入力された馬オブジェクトに対する操作履歴に基づき動作制御されるオブジェクトであるゴーストキャラクタを用いて、プレイヤの過去の操作履歴を再現する構成を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２００８３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の従来技術においては、プレイヤの過去の操作履歴をそのまま再現するゴーストキャラクタを用いるため、実際のレースの状況に応じた動作制御が行われず、不自然な挙動を示すことがある。
【０００５】
本開示の目的は、このような課題の解決に向けられたものであり、仮想ゲームステージで実行されるレースの状況に応じて、より自然な動作制御が可能な構成を提供することである。
【課題を解決するための手段】
【０００６】
ある実施の形態に従えば、情報処理装置のコンピュータにおいて実行される情報処理プログラムが提供される。情報処理プログラムはコンピュータを、仮想ゲームステージで行われた第１レースにおいてゲームオブジェクトが移動した第１移動ルートを特定可能な履歴情報を、少なくとも１つ取得する取得手段と、仮想ゲームステージで行われ、第１レースとは独立してゲームイベントが発生する第２レースを実行するレース実行手段として機能させる。第２レースには、プレイヤオブジェクトと少なくとも１つのノンプレイヤオブジェクトとが参加する。情報処理プログラムはコンピュータを、第２レースについて、ノンプレイヤオブジェクトに履歴情報を対応付ける対応付け手段と、第２レースにおいて、当該第２レースで発生するゲームイベントに起因するレース状態に応じて、ノンプレイヤオブジェクトを、対応付けられた履歴情報により特定される第１移動ルートと、当該第１移動ルートとは異なる第２移動ルートとのうちいずれで移動させるかを判定する判定手段として機能させる。
【０００７】
本構成によれば、ゲームイベントに起因するレース状態に応じて移動ルートを選択することで、仮想ゲームステージで実行されるレースの状況に応じて、より自然な動作制御を実現できる。
【０００８】
レース状態は、ノンプレイヤオブジェクトの状態を含んでいてもよい。本構成によれば、ノンプレイヤオブジェクトの状態に応じて移動ルートを選択することで、ノンプレイヤオブジェクト状態についてのより自然な動作制御を実現できる。
【０００９】
情報処理プログラムはコンピュータを、ノンプレイヤオブジェクトが保有するアイテムを管理する管理手段としてさらに機能させてもよい。ノンプレイヤオブジェクトの状態は、ノンプレイヤオブジェクトが保有しているアイテムの状態を含んでいてもよい。本構成によれば、ノンプレイヤオブジェクトについても、レースで使用されるアイテムの保有状態などに応じて移動ルートを選択することで、ノンプレイヤオブジェクト状態についてのより自然な動作制御を実現できる。
【００１０】
判定手段は、ノンプレイヤオブジェクトが保有しているアイテムに特定アイテムが含まれない場合に、ノンプレイヤオブジェクトを第２移動ルートで移動させると判定してもよい。本構成によれば、特定アイテムを有しているか否かで移動ルートを選択することで、レースの状況をより強く反映した動作制御を実現できる。
【００１１】
管理手段は、ノンプレイヤオブジェクトが保有しているアイテムに特定アイテムが含まれる場合に、ノンプレイヤオブジェクトに特定アイテムを使用させ、判定手段は、ノンプレイヤオブジェクトを第１移動ルートで移動させると判定してもよい。本構成によれば、特定アイテムを使用しなければ通行できないルートの通行を、特定アイテムの有無に応じて判断できるので、レースの状況をより強く反映した動作制御を実現できる。
【００１２】
第１移動ルートは、第２移動ルートに比較して、ノンプレイヤオブジェクトの移動速度を低下させるものであってもよい。本構成によれば、移動速度の変化という、レースの変動要因を増加させることで、レースの趣向性を高めることができる。
【００１３】
管理手段は、ノンプレイヤオブジェクトが保有しているアイテムに特定アイテムが含まれる場合に、ノンプレイヤオブジェクトに特定アイテムを使用させ、判定手段は、ノンプレイヤオブジェクトを第２移動ルートで移動させると判定してもよい。本構成によれば、特定アイテムを使用しなければ通行できないルートの通行を、特定アイテムの有無に応じて判断できるので、レースの状況をより強く反映した動作制御を実現できる。
【００１４】
判定手段は、ノンプレイヤオブジェクトが保有しているアイテムに特定アイテムが含まれない場合に、ノンプレイヤオブジェクトを第１移動ルートで移動させると判定してもよい。本構成によれば、特定アイテムを有しているか否かで移動ルートを選択することで、レースの状況をより強く反映した動作制御を実現できる。
【００１５】
第１移動ルートは、第２移動ルートに比較して、ノンプレイヤオブジェクトの移動速度を増加させるものであってもよい。本構成によれば、本構成によれば、移動速度の変化という、レースの変動要因を増加させることで、レースの趣向性を高めることができる。
【００１６】
特定アイテムは、ノンプレイヤオブジェクトが特定アイテムを使用しない場合に比較して、ノンプレイヤオブジェクトの移動速度を増加させるものであってもよい。本構成によれば、現実のレースのルールを反映させて、レースの趣向性を高めることができる。
【００１７】
特定アイテムは、ノンプレイヤオブジェクトが当該特定アイテムを使用しない場合には通行できないルートを通行できるようにするものであってもよい。本構成によれば、現実のレースのルールを反映させて、レースの趣向性を高めることができる。
【００１８】
管理手段は、ノンプレイヤオブジェクトが保有するアイテムを予め定められた使用順序に従って使用させ、ノンプレイヤオブジェクトが保有している特定アイテムの使用順序が２番目以降である場合に、特定アイテムの使用順序が１番目になるまで、特定アイテム以外のアイテムを、特定アイテムが含まれない場合に比較して、ノンプレイヤオブジェクトに早く使用させてもよい。本構成によれば、現実のユーザが行うような操作に沿った動作制御を実現できる。
【００１９】
管理手段は、ノンプレイヤオブジェクトが保有する特定アイテムの使用順序が１番目である場合に、ノンプレイヤオブジェクトが第２移動ルートの開始点の近傍に到達するまで、特定アイテムを保有させ続けてもよい。本構成によれば、現実のユーザが行うような操作に沿った動作制御を実現できる。
【００２０】
ゲームイベントは、第２レースにおいて、ノンプレイヤオブジェクトにアイテムを確率に基づいて付与することを含んでいてもよい。本構成によれば、レースで発生するゲームイベントをランダムに発生させることで、レースの趣向性を高めることができる。
【００２１】
第２移動ルートは、第１移動ルートから枝分かれするルートを含んでいてもよい。本構成によれば、通常のルートから分岐するようなゲーム演出を実現できる。
【００２２】
ノンプレイヤオブジェクトの状態は、ノンプレイヤオブジェクトの移動性能が通常時に比較して変化しているか否かを含んでいてもよい。本構成によれば、ノンプレイヤオブジェクトの移動性能に応じて移動ルートを選択することで、レースの状況をより強く反映した動作制御を実現できる。
【００２３】
移動性能は、ノンプレイヤオブジェクトを通常時に比較して減速状態とすることを含んでいてもよい。本構成によれば、現実の走行に沿った動作制御を実現できる。
【００２４】
レース状態は、仮想ゲームステージの状態を含んでいてもよい。本構成によれば、ゲームステージにおいて発生するイベントに応じて、より自然な動作制御を実現できる。
【００２５】
判定手段は、第１移動ルートに障害物オブジェクトが存在する場合に、ノンプレイヤオブジェクトを第２移動ルートで移動させると判定してもよい。本構成によれば、現実のユーザが行うような操作に沿った動作制御を実現できる。
【００２６】
第２移動ルートは、第１移動ルートとは異なる曲率半径を有するルートを含んでいてもよい。本構成によれば、現実の走行に沿った動作制御を実現できる。
【００２７】
履歴情報は、位置に関する情報を含んでいてもよい。本構成によれば、ノンプレイヤオブジェクトの移動ルートをより正確に特定できる。
【００２８】
履歴情報は、入力情報に関する情報を含んでいてもよい。本構成によれば、移動ルートを特定するための情報をより少ない情報量で格納できる。
【００２９】
別の実施の形態に従う情報処理装置は、仮想ゲームステージで行われた第１レースにおいてゲームオブジェクトが移動した第１移動ルートを特定可能な履歴情報を、少なくとも１つ取得する取得手段と、仮想ゲームステージで行われ、第１レースとは独立してゲームイベントが発生する第２レースを実行するレース実行手段とを含む。第２レースには、プレイヤオブジェクトと少なくとも１つのノンプレイヤオブジェクトとが参加する。情報処理装置は、第２レースについて、ノンプレイヤオブジェクトに履歴情報を対応付ける対応付け手段と、第２レースにおいて、当該第２レースで発生するゲームイベントに起因するレース状態に応じて、ノンプレイヤオブジェクトを、対応付けられた履歴情報により特定される第１移動ルートと、当該第１移動ルートとは異なる第２移動ルートとのうちいずれで移動させるかを判定する判定手段とを含む。
【００３０】
さらに別の実施の形態に従う情報処理システムは、表示デバイスと、入力デバイスと、表示デバイスおよび入力デバイスと通信可能な演算部とを含む。演算部は、仮想ゲームステージで行われた第１レースにおいてゲームオブジェクトが移動した第１移動ルートを特定可能な履歴情報を、少なくとも１つ取得する取得手段と、仮想ゲームステージで行われ、第１レースとは独立してゲームイベントが発生する第２レースを実行するレース実行手段とを含む。第２レースには、プレイヤオブジェクトと少なくとも１つのノンプレイヤオブジェクトとが参加する。演算部は、第２レースについて、ノンプレイヤオブジェクトに履歴情報を対応付ける対応付け手段と、第２レースにおいて、当該第２レースで発生するゲームイベントに起因するレース状態に応じて、ノンプレイヤオブジェクトを、対応付けられた履歴情報により特定される第１移動ルートと、当該第１移動ルートとは異なる第２移動ルートとのうちいずれで移動させるかを判定する判定手段とを含む。
【００３１】
さらに別の実施の形態に従えば、情報処理装置のコンピュータにおいて実行される情報処理方法が提供される。情報処理方法は、仮想ゲームステージで行われた第１レースにおいてゲームオブジェクトが移動した第１移動ルートを特定可能な履歴情報を、少なくとも１つ取得するステップと、仮想ゲームステージで行われ、第１レースとは独立してゲームイベントが発生する第２レースを実行するステップとを含む。第２レースには、プレイヤオブジェクトと少なくとも１つのノンプレイヤオブジェクトとが参加する。情報処理方法は、第２レースについて、ノンプレイヤオブジェクトに履歴情報を対応付けるステップと、第２レースにおいて、当該第２レースで発生するゲームイベントに起因するレース状態に応じて、ノンプレイヤオブジェクトを、対応付けられた履歴情報により特定される第１移動ルートと、当該第１移動ルートとは異なる第２移動ルートとのうちいずれで移動させるかを判定するステップとを含む。
【発明の効果】
【００３２】
本開示によれば、仮想ゲームステージで実行されるレースの状況に応じて、より自然な動作制御が可能な構成を提供できる。
【図面の簡単な説明】
【００３３】
【図１】本実施の形態に従うゲームシステムの構成例を示す模式図である。
【図２】本実施の形態に従う情報処理装置のハードウェア構成例を示す模式図である。
【図３】本実施の形態に従うゲームシステムにおける処理の概要を示すシーケンスチャートである。
【図４】本実施の形態に従う情報処理装置で実行されるレースを説明するための図である。
【図５】本実施の形態に従う情報処理装置でのレース実行を実現するための機能構成を示すブロック図である。
【図６】本実施の形態に従う情報処理装置における履歴情報の生成処理の一例を説明するための図である。
【図７】本実施の形態に従う情報処理装置で実行されるレースに参加するゲームオブジェクトを説明するための図である。
【図８】本実施の形態に従う情報処理装置におけるルート選択に係る処理を説明するための図である。
【図９】本実施の形態に従う情報処理装置におけるルート選択に係る処理を説明するための図である。
【図１０】本実施の形態に従う情報処理装置で実行されるレースのスクリーンショットの一例を示す図である。
【図１１】本実施の形態に従う情報処理装置で実行されるレースのスクリーンショットの一例を示す図である。
【図１２】本実施の形態に従う情報処理装置が提供する仮想ゲームステージに設けられたコースの一例を示す図である。
【図１３】本実施の形態に従う情報処理装置が提供する仮想ゲームステージに発生する障害物オブジェクトに応じたルート選択を説明するための図である。
【図１４】本実施の形態に従う情報処理装置が提供する仮想ゲームステージにおけるゲームオブジェクトの状態に応じたルート選択を説明するための図である。
【図１５】本実施の形態に従う情報処理装置で実行されるレースにおいて発生する特定アイテムの一例を示す図である。
【図１６】本実施の形態に従う情報処理装置で実行されるレースにおけるアイテムの保有および使用に係る処理を説明するための図である。
【図１７】本実施の形態に従う情報処理装置において実行される処理手順を示すフローチャートである。
【図１８】本実施の形態に従う情報処理装置において実行される処理手順を示すフローチャートである。
【発明を実施するための形態】
【００３４】
本実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００３５】
［Ａ．ハードウェア構成］
まず、本実施の形態に従うゲームシステム１のハードウェア構成の一例について説明する。
【００３６】
（ａ１：全体構成例）
図１は、本実施の形態に従うゲームシステム１の構成例を示す模式図である。図１を参照して、ゲームシステム１は、典型的には、１または複数の情報処理装置１００−１，１００−２，１００−３，・・・（以下、「情報処理装置１００」とも総称する。）と、管理サーバ２００とを含む。
【００３７】
情報処理装置１００は、任意の種類のコンピュータであり、予め格納された情報処理プログラムを実行することで、後述するようなゲーム処理を実行するために必要な機能を実現する。ゲーム処理が実行されることで、情報処理装置１００は、履歴情報１１６を生成するとともに、生成された履歴情報１１６を管理サーバ２００へ送信する。管理サーバ２００は、１または複数の情報処理装置１００から送信された履歴情報１１６を格納するとともに、いずれかの情報処理装置１００で新たなゲーム処理の実行が開始されると、格納している履歴情報１１６のうちから選択された履歴情報１１６を提供する。情報処理装置１００は、管理サーバ２００から提供された履歴情報１１６に基づいてゲーム処理を実行する。履歴情報１１６および履歴情報１１６を用いたゲーム処理の詳細については後述する。
【００３８】
管理サーバ２００は、典型的には、１または複数のプロセッサで構成され、情報処理装置１００から送信された履歴情報１１６を格納するとともに、情報処理装置１００からの要求に応じて、格納した履歴情報１１６のうち１または複数の履歴情報１１６を送信する。また、管理サーバ２００は、情報処理装置１００に対してアプリケーションプログラムを提供する機能を有していてもよい。
【００３９】
（ａ２：情報処理装置１００の構成例）
図２は、本実施の形態に従う情報処理装置１００のハードウェア構成例を示す模式図である。情報処理装置１００は、典型的には、スマートフォンやタブレットなどの携帯型（あるいは可搬型）の汎用コンピュータが想定されるが、携帯型あるいは据置型のパーソナルコンピュータであってもよいし、ゲーム専用機のようなコンピュータであってもよい。
【００４０】
図２を参照して、情報処理装置１００は、主たるハードウェアコンポーネントとして、プロセッサ１０２と、主メモリ１０４と、ディスプレイ１０６と、タッチパネル１０８と、ストレージ１１０と、入力部１２０と、インジケータ１２２と、スピーカ１２４と、通信モジュール１２６と、マイク１２８と、カメラ１３０とを含む。これらのハードウェアコンポーネントは、バス１３２を介して通信可能に接続される。
【００４１】
プロセッサ１０２は、主メモリ１０４に展開されたプログラムコードに従って命令を実行する演算部であり、例えば、ＣＰＵ（central processing unit）やＧＰＵ（graphics processing unit）などで構成される。
【００４２】
主メモリ１０４は、プロセッサ１０２が命令を実行するためのプログラムコードや各種ワークデータを一時的に格納する不揮発性記憶装置であり、例えば、ＤＲＡＭ（dynamic random access memory）やＳＲＡＭ（static random access memory）などで構成される。
【００４３】
ディスプレイ１０６は、プロセッサ１０２での演算処理によって生成される映像情報を表示し、例えば、ＬＣＤ（liquid crystal display）や有機ＥＬ（electroluminescent）ディスプレイなどの表示デバイスで構成される。
【００４４】
タッチパネル１０８は、ディスプレイ１０６の表示面に配置され、ユーザ操作を受け付ける。より具体的には、タッチパネル１０８は、ユーザによるタッチ操作を示す情報をプロセッサ１０２へ出力する。
【００４５】
ストレージ１１０は、情報処理装置１００において利用あるいは生成されたデータを不揮発的に格納する不揮発性記憶装置であり、例えば、フラッシュメモリやハードディスクドライブなどで構成される。典型的には、ストレージ１１０には、ＯＳ（operating system）やドライバなどを含むシステムプログラム１１２と、後述するようなゲーム処理を実質的に実行するためのアプリケーションプログラム１１４とが格納される。なお、アプリケーションプログラム１１４は、システムプログラム１１２が提供するライブラリなどを利用しつつ、ゲーム処理を実行することもある。
【００４６】
さらに、ストレージ１１０には、１または複数の履歴情報１１６が格納されてもよい。例えば、管理サーバ２００が履歴情報１１６を格納する形態ではなく、情報処理装置１００自体が履歴情報１１６を格納する形態を採用した場合には、複数の履歴情報１１６がストレージ１１０に格納されてもよい。
【００４７】
アプリケーションプログラム１１４は、情報処理装置１００の製造段階においてストレージ１１０に格納されていてもよいし、管理サーバ２００（図１）などの任意のサーバからダウンロードの形で提供されてもよい。さらに、アプリケーションプログラム１１４を格納するコンピュータ読取可能記憶媒体（例えば、ＵＳＢ（universal serial bus）メモリや任意のメモリカード）（図示しない）を情報処理装置１００に装着し、装着されたコンピュータ読取可能記憶媒体から読み出されたアプリケーションプログラム１１４をストレージ１１０にインストールするようにしてもよい。
【００４８】
入力部１２０は、例えば、ユーザ操作を受け付ける１または複数のボタンや、マウスなどの入力デバイスで構成される。
【００４９】
インジケータ１２２は、情報処理装置１００の筐体に露出して配置され、情報処理装置１００のユーザに対して任意の情報を視覚的に通知する。インジケータ１２２は、例えば、ＬＥＤ（light emitting diode）などの発光デバイスで構成される。
【００５０】
スピーカ１２４は、情報処理装置１００の筐体に露出して配置され、情報処理装置１００のユーザに対して任意の音声情報を提供する。
【００５１】
通信モジュール１２６は、外部装置との間で無線通信するためのモジュールであり、例えば、５Ｇ（generation）、ＬＴＥ（long term evolution）、ＷｉＭＡＸなどに従う広域通信モジュールや、無線ＬＡＮ（local area network）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、赤外線通信などに従う狭域通信モジュールなどで構成される。
【００５２】
マイク１２８は、情報処理装置１００の筐体に露出して配置され、情報処理装置１００の周囲で発生する音声を収集する。
【００５３】
カメラ１３０は、情報処理装置１００の筐体に露出して配置され、情報処理装置１００の周囲を撮像して得られる画像を出力する。
【００５４】
なお、図２には、プロセッサ１０２がプログラム（システムプログラム１１２およびアプリケーションプログラム１１４）が実行することで各種処理を実現する形態（すなわち、ソフトウエア実装）を例示するが、これらの処理の全部または一部をハードワイヤード回路で実現してもよい。具体的には、ＡＳＩＣ（application specific integrated circuit）またはＦＰＧＡ（field-programmable gate array）を含む演算回路（processing circuitry）が本実施の形態に従う情報処理装置１００が実行すべき処理の全部または位置を担当するようにしてもよい。なお、演算回路には、プロセッサ１０２および主メモリ１０４を含めるようにしてもよい。したがって、本実施の形態に従う情報処理装置１００に係る処理は、プロセッサ１０２および主メモリ１０４、ならびに／または、ＡＳＩＣもしくはＦＰＧＡのようなハードワイヤード回路を含む、演算回路によって実行されるとも言える。
【００５５】
（ａ３：管理サーバ２００の構成例）
管理サーバ２００は、典型的には、ネットワーク接続された汎用コンピュータからなる。管理サーバ２００は、単一のコンピュータで構成されてもよいし、互いに連携した複数のコンピュータで構成されてもよい。各コンピュータは、１または複数のプロセッサを有している。各コンピュータが有している各プロセッサは、複数のプロセッサコアを有していてもよい。
【００５６】
管理サーバ２００は、典型的には、１または複数のプロセッサがプログラムを実行することで、後述するような各種処理を実現する。但し、管理サーバ２００が実行する処理の全部または一部をＡＳＩＣやＦＰＧＡなどのハードワイヤード回路で実現してもよい。
【００５７】
管理サーバ２００を構成する汎用コンピュータのハードウェア構成は公知であるので、ここではその詳細な説明は行わない。
【００５８】
［Ｂ．処理の概要］
次に、本実施の形態に従うゲームシステム１における処理の概要について説明する。
【００５９】
図３は、本実施の形態に従うゲームシステム１における処理の概要を示すシーケンスチャートである。図３に示す情報処理装置１００で実行される各ステップは、典型的には、情報処理装置１００のプロセッサ１０２がプログラム（システムプログラム１１２およびアプリケーションプログラム１１４など）を実行することで実現される。
【００６０】
図３を参照して、先に、情報処理装置１００−２においてレース（レースゲーム）が実行され（ステップＳ１）、そのレースの実行により得られた、ゲームオブジェクトの移動ルートを示す履歴情報が管理サーバ２００へ送信される（ステップＳ２）。同様に、情報処理装置１００−３においてレースが実行され（ステップＳ３）、そのレースの実行により得られた、ゲームオブジェクトの移動ルートを示す履歴情報が管理サーバ２００へ送信される（ステップＳ４）。なお、ステップＳ１およびＳ２ならびにステップＳ３およびＳ４のいずれか一方が実行されればよい。
【００６１】
管理サーバ２００は、情報処理装置１００−２および１００−３から送信された履歴情報を順次格納する。
【００６２】
その後、情報処理装置１００−１に対して、ユーザからレース開始操作が行われると（ステップＳ５）、情報処理装置１００−１は、管理サーバ２００に対して、履歴情報要求を送信する（ステップＳ６）。管理サーバ２００は、情報処理装置１００−１からの履歴情報要求に応答して、格納している履歴情報のうち、条件に合致する履歴情報を検索する（ステップＳ７）。そして、管理サーバ２００は、検索により得られた履歴情報を情報処理装置１００−１へ応答する（ステップＳ８）。
【００６３】
情報処理装置１００−１は、ノンプレイヤオブジェクトに管理サーバ２００からの履歴情報を対応付け（ステップＳ９）、レースを実行する（ステップＳ１０）。レースの実行において、当該レースで発生するゲームイベントに起因するレース状態に応じて、ノンプレイヤオブジェクトを、対応付けられた履歴情報により特定される第１移動ルート（後述する「同一ルート」）と、第１移動ルートとは異なる第２移動ルート（後述する「変更ルート」）とのうちいずれで移動させるかが逐次判定される。この判定処理の詳細については、後述する。
【００６４】
このようなゲームイベントに起因するレース状態に応じた判定処理を採用することで、ノンプレイヤオブジェクトに対するより自然な動作制御が可能になる。
【００６５】
なお、レースの実行後、情報処理装置１００−１は、レースの実行により得られた、ゲームオブジェクトの移動ルートを示す履歴情報を管理サーバ２００へ送信してもよい（ステップＳ１１）。
【００６６】
本実施の形態に従うゲームシステム１においては、以上のような処理が適宜繰り返される。
【００６７】
ここで、本明細書において使用される用語について説明する。
本明細書において、「レース」は、予め定められたコースのクリア（移動）に要する時間または順位を競うゲームを包含する。「レース」は、ドライビングゲームに限られず、キャラクタをスタートからゴールまで移動させるアクションゲーム（スクロール方向は、縦方向であってもよいし、横方向であってもよい）なども含み得る。本明細書における「レース」は、１または複数のゲームオブジェクトが同時に参加できるものが想定されている。
【００６８】
本明細書において、「仮想ゲームステージ」は、ゲーム空間においてレースが行われるコースを包含する。「仮想ゲームステージ」は、典型的には、レースが行われるコースが想定されている。
【００６９】
本明細書において、「ゲームオブジェクト」は、ゲーム空間に配置される任意のオブジェクト（キャラクタおよびアイテム（あるいは、ゲームアイテム）を含む）を包含する。本明細書においては、特に、「ゲームオブジェクト」の一例として、ユーザあるいはコンピュータが操作可能なキャラクタ、あるいは、キャラクタに関連付けられた車両などに着目して説明する。
【００７０】
本明細書において、「プレイヤオブジェクト」および「ノンプレイヤオブジェクト」は、「ゲームオブジェクト」に包含され得る用語である。着目している情報処理装置１００で行われるレースにおいて操作対象となるゲームオブジェクトを「プレイヤオブジェクト」と称し、それ以外の操作対象とはならないゲームオブジェクトを「ノンプレイヤオブジェクト」と称す。通常、「プレイヤオブジェクト」は現実のユーザ（プレイヤ）が操作することが想定されているが、コンピュータが操作指示を与えてもよい。
【００７１】
本明細書において、「移動ルート」は、レースにおいて着目しているゲームオブジェクトが移動したルートを包含する。「移動ルート」は、仮想ゲームステージであるコースにおいて、着目しているゲームオブジェクトが分岐ルートのいずれを通行したのかといった情報、および、コース（例えば、カーブ）のイン側およびアウト側のいずれを通行したかのかといった情報を含み得る。
【００７２】
本明細書において、「履歴情報」は、いずれかのゲームにおいてゲームオブジェクトが移動した移動ルートを特定するための情報である。「履歴情報」は、移動ルートを特定できればどのような内容であってもよい。例えば、「履歴情報」として、対象のゲームオブジェクトが移動したルートを示す位置の群を採用した場合には、そのまま移動ルートを再現できる。位置の群を採用する場合には、各位置に対応する時間（例えば、スタートからの経過時間）を関連付けてもよい。あるいは、「履歴情報」として、対象のゲームオブジェクトに対して与えられた操作指示の内容（例えば、情報処理装置１００の入力部１２０が受け付けたユーザ操作）を採用してもよい。
【００７３】
本明細書において、「ゲームイベント」は、ゲーム進行に伴ってランダムに発生する任意のイベントを包含する。例えば、「ゲームイベント」は、ゲーム進行中に（ランダムに）発生するアイテムの取得および使用、レースの順位などの様々な変動要因を含む。そのため、あるレースで発生した「ゲームイベント」が別のレースで発生するとは限らない。すなわち、通常、先に実行されたレースと後に実行されたレースとの間では、発生するゲームイベントは互いに独立したものとなる。
【００７４】
本明細書において、「レース状態」は、ゲームイベントに起因するものであり、コース全体およびゲームオブジェクトの状態を包含する。例えば、プレイヤオブジェクトまたはノンプレイヤオブジェクトがアイテムボックスを通過することで、アイテムの取得というゲームイベントが発生すると、このゲームイベントに起因して、アイテムボックスを通過したプレイヤオブジェクトまたはノンプレイヤオブジェクトが保有するアイテムが追加されると、そのアイテムが追加された状態が「レース状態」に包含され得る。
【００７５】
［Ｃ．レースの概要］
次に、本実施の形態に従う情報処理装置１００で実行されるレースの一例について説明する。
【００７６】
図４は、本実施の形態に従う情報処理装置１００で実行されるレースを説明するための図である。図４を参照して、情報処理装置１００は、仮想ゲームステージ３００に設けられたコース３０２に沿って、ゲームオブジェクト（プレイヤオブジェクトおよび／またはノンプレイヤオブジェクト）が移動に要する時間または順位を競うレースゲームを実行する。コース３０２には、スタートおよびゴールを示す基準位置３０４が設定されており、典型的には、基準位置３０４を通過してからコース３０２を所定回数に亘って周回した後に基準位置３０４を再度通過することでコースのクリアとなる。このような予め定められたコースのクリア（移動）に要する時間または順位を競うレースゲームが情報処理装置１００において実行される。
【００７７】
ユーザは、タッチパネル１０８、入力部１２０、マイク１２８、カメラ１３０などの入力デバイスを介して操作指示を与えることで、仮想ゲームステージ３００に表示されるプレイヤオブジェクトの移動を制御することで、ノンプレイヤオブジェクトとの間で、時間あるいは順位を競う。
【００７８】
なお、情報処理装置１００のディスプレイ１０６に表示される視点は任意に異ならせることもできる。
【００７９】
情報処理装置１００で実行されるレースにおいては、ゲームイベントとして、アイテムの取得が可能であってもよい。例えば、プレイヤオブジェクトまたはノンプレイヤオブジェクトが仮想ゲームステージ３００に配置されたオブジェクトを通過すると、ランダムに決定されるアイテムを取得できるようなゲームイベントを実装してもよい。また、プレイヤオブジェクトまたはノンプレイヤオブジェクトは、保有しているアイテムを任意のタイミングで使用することもできる。アイテムの使用によって、プレイヤオブジェクトがノンプレイヤオブジェクトに比較して有利な挙動に変化し、あるいは、ノンプレイヤオブジェクトがプレイヤオブジェクトに比較して不利な挙動に変化するようにしてもよい。
【００８０】
レースゲームにおいて保有できるアイテムは複数であってもよい。この場合には、予め定められた使用順序（典型的には、アイテムを取得した順序と同じ順序）に従ってアイテムが使用されるようにしてもよい。あるいは、保有しているアイテムを選択的あるいはランダムに使用できるようにしてもよい。
【００８１】
［Ｄ．機能構成］
図５は、本実施の形態に従う情報処理装置１００でのレース実行を実現するための機能構成を示すブロック図である。図５に示す機能構成は、典型的には、情報処理装置１００のプロセッサ１０２が情報処理プログラム（システムプログラム１１２および／またはアプリケーションプログラム１１４）を実行することで実現される。
【００８２】
図５を参照して、情報処理装置１００は、機能構成として、ゲーム実行モジュール１５０と、履歴情報取得モジュール１５２と、履歴情報対応付けモジュール１５４と、ルート判定モジュール１５６と、アイテム管理モジュール１５８と、履歴情報出力モジュール１６０とを含む。また、情報処理装置１００は、プレイヤオブジェクトの状態を示すプレイヤオブジェクト状態１６２と、１または複数のノンプレイヤオブジェクトの状態を示す１または複数のノンプレイヤオブジェクト状態１６４とを保持している。
【００８３】
プレイヤオブジェクト状態１６２およびノンプレイヤオブジェクト状態１６４は、キャラクタオブジェクトの移動速度、アイテムの保有あるいは使用の状態、何らかのアイテムによる特殊状態への遷移などを含む。
【００８４】
ゲーム実行モジュール１５０は、仮想ゲームステージ３００で行われるレースを仮想的に実行する。ゲーム実行モジュール１５０は、所定規則およびランダム性に基づいて、レース中に任意のゲームイベントを発生する。そのため、ゲーム実行モジュール１５０が同一の仮想ゲームステージ３００で行うレース間においては、互いに独立してゲームイベントが発生することになる。ゲーム実行モジュール１５０は、仮想ゲームステージ３００の状態である仮想ゲームステージ状態１６６を保持しており、レース進行に応じて、仮想ゲームステージ状態１６６の内容を逐次更新する。
【００８５】
ゲーム実行モジュール１５０が実行するレースには、プレイヤオブジェクトおよび少なくとも１つのノンプレイヤオブジェクトが参加する。ゲーム実行モジュール１５０は、プレイヤオブジェクト状態１６２およびノンプレイヤオブジェクト状態１６４に基づいて、参加するプレイヤオブジェクトおよびノンプレイヤオブジェクトの動作を制御する。
【００８６】
履歴情報取得モジュール１５２は、先に行われたレースについての履歴情報１１６を取得する。取得される履歴情報１１６は、ゲーム実行モジュール１５０がレースを実行する仮想ゲームステージ３００と実質的に同じ仮想ゲームステージ３００で先に行われたレースにおいてゲームオブジェクト（典型的には、プレイヤオブジェクト）が移動した移動ルートを特定可能になっている。ここで、実質的に同じ場合の例としては、先にレースが実行された仮想ゲームステージ３００に対して、天候、時刻（朝・昼・夜）、コース上に置かれた障害物の位置など異なっていても、コースの形状が同等であるものは同じ仮想ゲームステージ３００とみなしてもよい。履歴情報１１６は、管理サーバ２００および情報処理装置１００（典型的には、ストレージ１１０）のいずれに格納されていてもよい。履歴情報取得モジュール１５２は、履歴情報１１６の格納先に応じて、取得先を選択する。
【００８７】
履歴情報対応付けモジュール１５４は、情報処理装置１００で次に実行される予定のレースについて、１または複数のノンプレイヤオブジェクトに、履歴情報取得モジュール１５２により取得された履歴情報１１６（先に行われたレースにより取得されたもの）をそれぞれ対応付ける。対応付けられた履歴情報１１６の内容は、それぞれのノンプレイヤオブジェクト状態１６４に反映されてもよい。
【００８８】
ルート判定モジュール１５６は、情報処理装置１００で実行されるレースにおいて、当該レースで発生するゲームイベントに起因するレース状態（ノンプレイヤオブジェクト状態１６４を含む）に応じて、ノンプレイヤオブジェクトを、対応付けられた履歴情報１１６により特定される第１移動ルート（後述する「同一ルート」）と、第１移動ルートとは異なる第２移動ルート（後述する「変更ルート」）とのうちいずれで移動させるかを判定する。
【００８９】
アイテム管理モジュール１５８は、ノンプレイヤオブジェクトが保有するアイテムを管理する。より具体的には、アイテム管理モジュール１５８は、各ノンプレイヤオブジェクトについて、アイテムの取得、保有および使用を管理する。アイテム管理モジュール１５８は、ノンプレイヤオブジェクトが保有するアイテムを予め定められた使用順序に従って使用させることもできる。アイテム管理モジュール１５８による各ノンプレイヤオブジェクトのアイテムの状態は、対応するノンプレイヤオブジェクト状態１６４に反映されてもよい。
【００９０】
履歴情報出力モジュール１６０は、情報処理装置１００で実行されるレースが終了すると、そのレースにおけるゲームオブジェクトの移動ルートを示す新たな履歴情報を出力する。
【００９１】
［Ｅ．履歴情報の一例］
次に、情報処理装置１００においてレースが実行されることで生成される履歴情報１１６の一例についてより詳細に説明する。
【００９２】
図６は、本実施の形態に従う情報処理装置１００における履歴情報１１６の生成処理の一例を説明するための図である。
【００９３】
図６（Ａ）を参照して、情報処理装置１００は、ゲームオブジェクトの実際の移動ルート３１０を取得できるので、この取得される移動ルート３１０をそのまま履歴情報１１６として格納してもよい。但し、履歴情報１１６の情報量を圧縮するために、コース３０２をゲームオブジェクトの移動方向に沿って複数のゾーン３０８に区分した上で、各ゾーン３０８の境界における移動ルート３１０の通過位置のみを格納するようにしてもよい。
【００９４】
すなわち、履歴情報１１６は、ゲームオブジェクトの位置に関する情報を含むようにしてもよい。例えば、ゾーン３０８の境界に対応するラインｌ１，ｌ２，ｌ３，ｌ４，・・・の各々を通過する位置（オフセット）ｘ１，ｘ２，ｘ３，ｘ４，・・・を履歴情報１１６に格納するようにしてもよい。この場合、図６（Ｂ）に示すように、履歴情報１１６には、ラインｌ１，ｌ２，ｌ３，ｌ４，・・・と位置ｘ１，ｘ２，ｘ３，ｘ４，・・・とが対応付けて格納されてもよい（移動記録１１６４）。
【００９５】
さらに、移動ルート３１０の一部においてゲームオブジェクトが特別な挙動を行った場合には、その情報も履歴情報１１６に格納するようにしてもよい。例えば、図６（Ａ）に示ように、ラインｌ２からラインｌ４までの区間の一部において、ゲームオブジェクトが特別な挙動を行ったとする（図６に示す例では、「ターボ走行」）。この特別な挙動についても、例えば、区間の開始位置および終了位置をラインからの距離（オフセット）Ｌ１，Ｌ２を用いて規定してもよい。図６（Ｂ）に示す履歴情報１１６においては、ターボ走行がラインｌ２から距離Ｌ１だけ過ぎた地点から開始され、ラインｌ２から距離Ｌ２だけ過ぎた地点で終了することが規定されている（特別挙動記録１１６５，１１６６）。
【００９６】
あるいは、履歴情報１１６には、上述したような位置の情報に加えて、あるいは、位置の情報に代えて、対象のゲームオブジェクトに対して与えられた操作指示の内容（例えば、情報処理装置１００の入力部１２０が受け付けたユーザ操作）を格納するようにしてもよい。この場合、履歴情報１１６には、時刻あるいは区間に対応付けて、ユーザ操作の内容（入力情報）が順次格納されてもよい。すなわち、履歴情報１１６は、ユーザによるキー入力の履歴などの入力情報に関する情報を含んでいてもよい。
【００９７】
また、履歴情報１１６は、対応するプレイヤオブジェクトを操作したユーザを特定するためのユーザ情報１１６１と、対応するコースを特定するためのコース情報１１６２と、プレイヤオブジェクトが選択したキャラクタを特定するためのキャラクタ情報１１６３とを含んでいてもよい。
【００９８】
このように、情報処理装置１００は、レースを実行することで履歴情報１１６を生成する。
【００９９】
［Ｆ．履歴情報を用いたノンプレイヤオブジェクトの動作制御］
（ｆ１：概要）
本実施の形態に従う情報処理装置１００において実行されるレースには、プレイヤオブジェクトと１または複数のノンプレイヤオブジェクトとが参加可能になっている。ノンプレイヤオブジェクトがレースに参加する場合には、過去に生成されたいずれかの履歴情報１１６に基づいて、移動ルートを含む挙動が制御される。
【０１００】
図７は、本実施の形態に従う情報処理装置１００で実行されるレースに参加するゲームオブジェクトを説明するための図である。図７には、プレイヤオブジェクト３４０と、５つのノンプレイヤオブジェクト３４２とがレースに参加する例を示す。プレイヤオブジェクト３４０およびノンプレイヤオブジェクト３４２の各々には、レースで使用されるキャラクタが対応付けられる。
【０１０１】
プレイヤオブジェクト３４０は、ユーザ（プレイヤ）の操作によってレース中の挙動が制御される一方で、ノンプレイヤオブジェクト３４２の各々は、対応付けられた履歴情報１１６に基づいてレース中の挙動が制御される。
【０１０２】
ノンプレイヤオブジェクト３４２の各々に対応付けられた履歴情報１１６は、管理サーバ２００あるいは情報処理装置１００に予め格納された履歴情報１１６のうち、条件に合致するものが検索されることで決定される。例えば、まず、ユーザ（プレイヤ）の過去の成績などに基づいて算出されるレベルなどに応じて、１または複数の競争相手（他のユーザ）を検索（マッチング）し、検索された競争相手の履歴情報１１６を管理サーバ２００から取得するようにしてもよい。あるいは、予め格納された履歴情報の各々についてレベルを算出するとともに、ユーザのレベルと類似したレベルを示す履歴情報１１６を検索するようにしてもよい。いずれの方法であっても、ユーザのレベルと類似したレベルを示す履歴情報１１６が選択されるので、レースにおいてプレイヤオブジェクト３４０とノンプレイヤオブジェクト３４２とが拮抗して、レースに参加するユーザがより楽しむことができる。このように、対応する履歴情報１１６を検索する条件の一例としては、ユーザのレベルと類似したレベルであることを含み得る。
【０１０３】
本実施の形態においては、ノンプレイヤオブジェクト３４２は、対応付けられる履歴情報１１６により特定される移動ルートと同一のルートを移動するのではなく、レースで発生するゲームイベントに起因するレース状態に応じて移動することになる。より具体的には、情報処理装置１００は、ノンプレイヤオブジェクト３４２を、対応付けられる履歴情報１１６により特定される移動ルート（以下、「同一ルート」とも称す。）と、同一ルートとは異なる移動ルート（以下、「変更ルート」とも称す。）とのうちいずれで移動させるのかを、レース状態に応じて判定する。このルートの判定処理は、コース上の予め定められた位置に到達したタイミング、任意のゲームイベントが発生したタイミング、レース状態が予め定められた条件を満たしたタイミングなどで実行されてもよい。
【０１０４】
以下、典型的なルートの選択処理として、（１）分岐区間のルート選択、および、（２）同一コース内のルート選択について説明する。
【０１０５】
（ｆ２：分岐区間のルート選択）
図８および図９は、本実施の形態に従う情報処理装置１００におけるルート選択に係る処理を説明するための図である。図８および図９には、仮想ゲームステージ３００に設けられたコース３０２の一部に分岐区間として、ショートカット３１６が設けられている例を示す。情報処理装置１００において実行されるゲームにおいては、ショートカット３１６の通行は、ゲームオブジェクト（プレイヤオブジェクトおよびノンプレイヤオブジェクト）が特定アイテム（具体例については、後述する。）を保有あるいは使用している状態であることに基づいてもよい。
【０１０６】
このようなルール下において、ノンプレイヤオブジェクトに対応付けられた履歴情報１１６により特定される移動ルートがショートカット３１６を含む場合であっても、ノンプレイヤオブジェクトがショートカット３１６の開始点の近傍に到達した時点で、特定アイテムを保有あるいは使用していなければ、ショートカット３１６を通行することはない。情報処理装置１００は、ショートカット３１６を通行するか否かをこのようなレース状態に応じて判定することで、より自然な動作制御を実現する。
【０１０７】
図８には、ノンプレイヤオブジェクトに対応付けられた履歴情報１１６により特定される移動ルート３１０がショートカット３１６を通行している例を示す（図８（Ａ））。この場合、図８（Ｂ）に示すように、同一ルート３１２は、履歴情報１１６により特定される移動ルート３１０と実質的に同じものとなる。一方、図８（Ｃ）に示すように、変更ルート３１４は、履歴情報１１６により特定される移動ルート３１０（すなわち、同一ルート３１２）とは異なり、ショートカット３１６を含まないルートになる。
【０１０８】
図８に示す例においては、ノンプレイヤオブジェクトが保有しているアイテムに特定アイテムが含まれる場合に、情報処理装置１００（図５のアイテム管理モジュール１５８）は、ノンプレイヤオブジェクトに特定アイテムを使用させるとともに、情報処理装置１００（図５のルート判定モジュール１５６）は、ノンプレイヤオブジェクトを同一ルート３１２で移動させると判定する（図８（Ｂ）参照）。
【０１０９】
一方、ノンプレイヤオブジェクトが保有しているアイテムに特定アイテムが含まれない場合に、情報処理装置１００（図５のルート判定モジュール１５６）は、ノンプレイヤオブジェクトを変更ルート３１４で移動させると判定する（図８（Ｃ）参照）。
【０１１０】
また、図９には、ノンプレイヤオブジェクトに対応付けられた履歴情報１１６により特定される移動ルート３１０がショートカット３１６を通行していない例を示す（図９（Ａ））。この場合、図９（Ｂ）に示すように、同一ルート３１２は、履歴情報１１６により特定される移動ルート３１０と実質的に同じものとなる（すなわち、ショートカット３１６を含まないルート）。一方、図９（Ｃ）に示すように、変更ルート３１４は、履歴情報１１６により特定される移動ルート３１０（すなわち、同一ルート３１２）とは異なり、ショートカット３１６を含むルートになる。このように、変更ルート３１４は、同一ルート３１２から枝分かれするルートであるショートカット３１６を含んでいてもよい。
【０１１１】
図９に示す例においては、ノンプレイヤオブジェクトが保有しているアイテムに特定アイテムが含まれない場合に、情報処理装置１００（図５のルート判定モジュール１５６）は、ノンプレイヤオブジェクトを同一ルート３１２で移動させると判定する（図９（Ｂ）参照）。
【０１１２】
一方、ノンプレイヤオブジェクトが保有しているアイテムに特定アイテムが含まれる場合に、情報処理装置１００（図５のアイテム管理モジュール１５８）は、ノンプレイヤオブジェクトに特定アイテムを使用させるとともに、情報処理装置１００（図５のルート判定モジュール１５６）は、ノンプレイヤオブジェクトを変更ルート３１４で移動させると判定する（図９（Ｃ）参照）。
【０１１３】
図１０および図１１は、本実施の形態に従う情報処理装置１００で実行されるレースのスクリーンショットの一例を示す図である。図１０には、特定アイテムが使用されていない場合の挙動を示し、図１１には、特定アイテムが使用されている場合の挙動を示す。情報処理装置１００で実行されるレースにおいては、仮想ゲームステージ３００に設けられたコース３０２に沿って、ノンプレイヤオブジェクト３４２の移動が制御される。
【０１１４】
図１０を参照して、情報処理装置１００のディスプレイ１０６には、ノンプレイヤオブジェクト３４２が保有しているアイテムを示す保有アイテム表示オブジェクト３３８が表示されている。図１０に示す例では、ノンプレイヤオブジェクト３４２は、何らのアイテムも保有していない。そのため、特定アイテムを使用することもできないので、ショートカット３１６ではないルート（すなわち、図８に示す例では、変更ルート３１４に相当し、図９に示す例では、同一ルート３１２に相当する）を移動する。
【０１１５】
これに対して、図１１に示す例では、ノンプレイヤオブジェクト３４２は、特定アイテムとして加速アイテム３３０を保有しており、その保有している加速アイテム３３０が使用されている（ノンプレイヤオブジェクト３４２の後ろに加速アイテム３３０が付加されている）。特定アイテムの一例である加速アイテム３３０が使用されることで、ノンプレイヤオブジェクト３４２は、ショートカット３１６を含むルートを移動する。
【０１１６】
このように、特定アイテムの保有または使用を含むノンプレイヤオブジェクト３４２の状態に応じて、ノンプレイヤオブジェクト３４２の移動ルートが適宜選択される。
【０１１７】
なお、レースの趣向性を高めるために、コース３０２のショートカット３１６に代えて、ゲームオブジェクトの移動速度に対して何らかの変化を与える特殊区間３１８を設けてもよい。
【０１１８】
図１２は、本実施の形態に従う情報処理装置１００が提供する仮想ゲームステージ３００に設けられたコース３０２の一例を示す図である。図１２を参照して、コース３０２の一部に設けられた特殊区間３１８においては、他の区間に比較して、移動速度が低下するような作用をゲームオブジェクトに与えてもよい。特殊区間３１８は、例えば、本来のコースから外れたダートコースや、オイルなどが撒かれたコースなどが想定される。
【０１１９】
そして、加速アイテム３３０などの特定アイテムを使用した場合には、ダートコースのような特殊区間３１８を通行したとしても、通常のルートで加速アイテム３３０を使用した場合に比較して、（使用した特定アイテムの効果が有効である期間においては）減速することがないように設定してもよい。すなわち、特定アイテムの効果が有効であれば、どのようなルートを通行しても、通常のルートで加速アイテム３３０を使用した場合と同様の移動速度になるようにしてもよい。
【０１２０】
ショートカット３１６に代えて、特殊区間３１８を設けた場合には、図８（Ａ）に示すような実際の移動ルート３１０が取得された場合には、同一ルート３１２（図８（Ｂ）参照）は、変更ルート３１４（図８（Ｃ）参照）に比較して、ノンプレイヤオブジェクトの移動速度を低下させるものとなる。一方、図９（Ａ）に示すような実際の移動ルート３１０が取得された場合には、同一ルート３１２（図９（Ｂ）参照）は、変更ルート３１４（図９（Ｃ）参照）に比較して、ノンプレイヤオブジェクトの移動速度を増加させるものとなる。
【０１２１】
なお、分岐区間（ショートカット３１６または特殊区間３１８）においては、ゲームオブジェクト（プレイヤオブジェクトおよび／またはノンプレイヤオブジェクト）の動作制御に任意の影響を与えるようにしてもよい。例えば、図１２においては、ゲームオブジェクトを減速させる作用を例示したが、逆にゲームオブジェクトを加速させる作用を与えてもよい。
【０１２２】
（ｆ３：同一コース内のルート選択）
同一コース内においても、ゲームイベントに起因するレース状態に応じてルートを変更するようにしてもよい。
【０１２３】
図１３は、本実施の形態に従う情報処理装置１００が提供する仮想ゲームステージ３００に発生する障害物オブジェクトに応じたルート選択を説明するための図である。図１３（Ａ）を参照して、ノンプレイヤオブジェクトに対応付けられた履歴情報１１６により、コース３０２上のゲームオブジェクトの実際の移動ルート３１０が特定される。図１３（Ｂ）を参照して、仮想ゲームステージ３００のコース３０２上には、障害物オブジェクト３２０がランダムに発生および配置されることがある。ユーザ操作によって障害物オブジェクト３２０が配置されることもある。
【０１２４】
コース３０２上に障害物オブジェクト３２０が存在しない場合には、ノンプレイヤオブジェクトは、実際の移動ルート３１０と実質的に同じ同一ルート３１２で移動する。これに対して、コース３０２上に障害物オブジェクト３２０が存在する場合には、ノンプレイヤオブジェクトは、同一ルート３１２とは異なる変更ルート３１４で移動する。
【０１２５】
なお、変更ルート３１４は、コース３０２上に存在する障害物オブジェクト３２０の位置などに応じて、動的に決定されてもよい。あるいは、同一ルート３１２に予め定められた変化を与えることで変更ルート３１４を静的に決定してもよい。
【０１２６】
このように、レース状態の一例として、仮想ゲームステージ３００の状態（この例では、障害物オブジェクト３２０の有無）を含んでいてもよい。そして、情報処理装置１００（図５のルート判定モジュール１５６）は、同一ルート３１２に障害物オブジェクト３２０が存在する場合に、ノンプレイヤオブジェクトを変更ルート３１４で移動させると判定してもよい。
【０１２７】
図１４は、本実施の形態に従う情報処理装置１００が提供する仮想ゲームステージ３００におけるゲームオブジェクトの状態に応じたルート選択を説明するための図である。図１４（Ａ）を参照して、ノンプレイヤオブジェクトに対応付けられた履歴情報１１６により、カーブ状のコース３０２におけるゲームオブジェクトの実際の移動ルート３１０が特定される。
【０１２８】
図１４（Ｂ）を参照して、ノンプレイヤオブジェクトは、実際の移動ルート３１０と実質的に同じ同一ルート３１２で移動することが想定される。但し、現実のカーブの通行を考慮すると、移動速度の高低に応じて、カーブの外側を通行する、あるいは、カーブの内側を通行するといった挙動が生じ得る。
【０１２９】
情報処理装置１００は、カーブ状のルートを通行するノンプレイヤオブジェクトの状態に応じて、移動ルートを異ならせてもよい。図１４（Ｂ）には、変更ルート３１４が同一ルート３１２とは異なる曲率半径を有するルートを含む例を示す。より具体的には、変更ルート３１４の曲率半径３２４は、同一ルート３１２の曲率半径３２２より大きくなっている。このように、変更ルート３１４は、同一ルート３１２とは曲率半径を有するルートを含んでいてもよい。
【０１３０】
ノンプレイヤオブジェクトの移動性能が通常時に比較して変化している場合に選択されてもよい。すなわち、ノンプレイヤオブジェクトの状態は、ノンプレイヤオブジェクトの移動性能が通常時に比較して変化しているか否かを含んでいてもよい。例えば、ノンプレイヤオブジェクトの移動性能として、ノンプレイヤオブジェクトが通常時に比較して減速状態になっている場合に、同一ルート３１２に代えて変更ルート３１４が選択されてもよい。あるいは、ノンプレイヤオブジェクトの移動性能として、ノンプレイヤオブジェクトが通常時に比較して増速状態になっている場合に、同一ルート３１２に代えて変更ルート３１４が選択されてもよい。
【０１３１】
さらに、ノンプレイヤオブジェクトのハンドリング性能（曲がりやすさ）に応じて、同一ルート３１２および変更ルート３１４のいずれが選択されるのかを決定してもよい。
【０１３２】
このように、情報処理装置１００は、ノンプレイヤオブジェクトの状態として、ノンプレイヤオブジェクトの移動性能が通常時に比較して変化しているか否かを判定し、同一ルート３１２および変更ルート３１４のいずれでノンプレイヤオブジェクトを移動させるのかを判定するようにしてもよい。
【０１３３】
なお、変更ルート３１４は、ノンプレイヤオブジェクトの移動性能に応じて、動的に決定されてもよい。あるいは、同一ルート３１２に予め定められた変化を与えることで変更ルート３１４を静的に決定してもよい。
【０１３４】
なお、上述した状態変化に限らず、仮想ゲームステージ３００の任意の状態、および／または、ノンプレイヤオブジェクトの任意の状態に応じて、同一ルート３１２および変更ルート３１４のいずれでノンプレイヤオブジェクトを移動させるのかを判定するようにしてもよい。例えば、ダートや障害物の位置、コースに雨が降っている（スリップしやすい）などのレース毎にランダムで変化する要素に応じて、ルートを変更するようにしてもよい。
【０１３５】
また、レース中の順位に応じて、ルートを変更するようにしてもよい。例えば、先のレースにおいて、ショートカット３１６を通行した場合であっても、後のレースにおいては、順位が高い場合には、ショートカット３１６を通行しないといった処理が可能となる。
【０１３６】
［Ｇ．特定アイテム］
次に、本実施の形態に従う情報処理装置１００でのゲーム進行中に発生する特定アイテムの一例について説明する。
【０１３７】
（ｇ１：特定アイテムの種類）
図１５は、本実施の形態に従う情報処理装置１００で実行されるレースにおいて発生する特定アイテムの一例を示す図である。図１５を参照して、特定アイテムとしては、加速アイテム３３０および通行可能アイテム３３２が例示されている。
【０１３８】
加速アイテム３３０は、使用されると、ゲームオブジェクト（プレイヤオブジェクトおよび／またはノンプレイヤオブジェクト）の移動速度を増加させる効果を発生する。すなわち、加速アイテム３３０は、ノンプレイヤオブジェクトが加速アイテム３３０を使用しない場合に比較して、ノンプレイヤオブジェクトの移動速度を増加させる。
【０１３９】
通行可能アイテム３３２は、使用されると、通常は通行できないルートをゲームオブジェクト（プレイヤオブジェクトおよび／またはノンプレイヤオブジェクト）が通行できるようになる。例えば、通行可能アイテム３３２が使用されることで、ルート上に設けられた穴をジャンプするような挙動や、ルート上に配置された障害物を破壊するような作用が有効化されてもよい。すなわち、通行可能アイテム３３２は、ノンプレイヤオブジェクトが通行可能アイテム３３２を使用しない場合には通行できないルートを通行できるようにする。
【０１４０】
なお、図１５に示す加速アイテム３３０および通行可能アイテム３３２の両方を使用可能とする必要はなく、いずれか一方のみを使用可能としてもよい。逆に、図１５に示す特定アイテムに加えて、別の特定アイテムを使用可能にしてもよい。さらに、特定アイテムに限らず、任意のアイテムを使用可能にしてもよい。
【０１４１】
（ｇ２：アイテム使用の促進／抑制）
図１６は、本実施の形態に従う情報処理装置１００で実行されるレースにおけるアイテムの保有および使用に係る処理を説明するための図である。特定アイテムを含むアイテムは、情報処理装置１００で実行されるレースにおいて発生するゲームイベントとして、確率に基づいてゲームオブジェクト（プレイヤオブジェクトおよび／またはノンプレイヤオブジェクト）に付与される。すなわち、ゲームイベントは、レースにおいて、ノンプレイヤオブジェクトにアイテムを確率に基づいて付与することを含んでいてもよい。このようにノンプレイヤオブジェクトにアイテムが付与されて、各ゲームオブジェクトが保有しているアイテムの状態は、ノンプレイヤオブジェクトの状態に相当する。
【０１４２】
図１６（Ａ）を参照して、ゲーム進行中には、各ゲームオブジェクトが保有しているアイテムを示す保有アイテム表示オブジェクト３３８が表示されてもよい。図１６に示す例においては、保有アイテム表示オブジェクト３３８の左側からアイテムが使用されるものとする。すなわち、保有アイテム表示オブジェクト３３８の左側から右側に向けての並びが使用順序となる。図１６（Ａ）は、最も左側にあるアイテムが使用されて、当初３つ保有していたアイテムが２つに減る状態を示す。
【０１４３】
このように、ゲームオブジェクト（プレイヤオブジェクトおよび／またはノンプレイヤオブジェクト）が保有するアイテムは、予め定められた使用順序に従って使用されることになる。
【０１４４】
なお、プレイヤオブジェクトについては、ユーザが明示的な操作を行うことで、アイテムが使用される。但し、使用の明示的な操作を行わなくても、プレイヤオブジェクトがアイテムを所持しているだけ、あるいは、取得した瞬間に、対応する効果を生じるようにしてもよい。
【０１４５】
上述したように、特定アイテムを保有しているか否かに応じて、ノンプレイヤオブジェクトをいずれのルートで移動させるのかが判定される。そのため、ノンプレイヤオブジェクトについては、分岐区間の近傍を基準として、アイテムの使用を制御するようにしてもよい。
【０１４６】
図１６（Ｂ）に示す例では、ノンプレイヤオブジェクトが通常アイテム３３６および特定アイテムの一例である加速アイテム３３０を保有している。このとき、加速アイテム３３０の使用順序は２番目になっており、ノンプレイヤオブジェクトが分岐区間の近傍に到達した時点でアイテムを使用したとしても、使用されるアイテムが加速アイテム３３０ではなく、通常アイテム３３６となる。
【０１４７】
そこで、より自然な動作制御を行う（すなわち、現実のプレイヤであれば行うであろう操作を実現する）ために、ノンプレイヤオブジェクトに通常アイテム３３６を先に使用させて、分岐区間の近傍に到達した時点で加速アイテム３３０を使用できる状態にしておいてもよい。このように、情報処理装置１００（図５のアイテム管理モジュール１５８）は、ノンプレイヤオブジェクトが保有している特定アイテム（例えば、加速アイテム３３０）の使用順序が２番目以降である場合に、特定アイテムの使用順序が１番目になるまで、特定アイテム以外のアイテム（例えば、通常アイテム３３６）を、特定アイテムが含まれない場合に比較して、ノンプレイヤオブジェクトに早く使用させるようにしてもよい。
【０１４８】
図１６（Ｃ）に示す例では、ノンプレイヤオブジェクトが特定アイテムの一例である加速アイテム３３０のみを保有している。このとき、加速アイテム３３０の使用順序は１番目になっており、ノンプレイヤオブジェクトが分岐区間の近傍に到達する前に加速アイテム３３０を使用してしまうと、分岐区間の近傍では加速アイテム３３０を使用できなくなる。
【０１４９】
そこで、より自然な動作制御を行う（すなわち、現実のプレイヤであれば行うであろう操作を実現する）ために、ノンプレイヤオブジェクトに加速アイテム３３０を使用させるタイミングを、分岐区間の近傍に到達するまで遅らせるようにしておいてもよい。このように、情報処理装置１００（図５のアイテム管理モジュール１５８）は、ノンプレイヤオブジェクトが保有する特定アイテム（例えば、加速アイテム３３０）の使用順序が１番目である場合に、ノンプレイヤオブジェクトが近傍区間の近傍（すなわち、変更ルート３１４の開始点の近傍）に到達するまで、特定アイテムを保有させ続けさせてもよい。
【０１５０】
上述したように、ノンプレイヤオブジェクトによる特定アイテムを含むアイテムの使用を促進あるいは抑制することで、レースの趣向性を高めることができる。
【０１５１】
［Ｈ．処理手順］
次に、本実施の形態に従うゲームシステム１の情報処理装置１００において実行される処理手順についてより詳細に説明する。
【０１５２】
図１７および図１８は、本実施の形態に従う情報処理装置１００において実行される処理手順を示すフローチャートである。すなわち、図１７および図１８には、情報処理装置１００のコンピュータにおいて実行される情報処理方法が示される。
【０１５３】
図１７および図１８に示す各ステップは、典型的には、情報処理装置１００のプロセッサ１０２が情報処理プログラム（システムプログラム１１２および／またはアプリケーションプログラム１１４）を実行することで実現される。以下では、図３に示すシーケンスチャートと対応付けて説明する。
【０１５４】
図１７および図１８を参照して、情報処理装置１００は、ユーザからレース開始操作を受け付ける（ステップＳ５）。より具体的には、情報処理装置１００は、レースゲーム開始の操作を受け付けると（ステップＳ１００）、メニュー画面などを表示し（ステップＳ１０２）、レースが行われるコース、プレイヤオブジェクトのキャラクタ、レベルなどの選択を受け付ける（ステップＳ１０４）。
【０１５５】
続いて、情報処理装置１００は、プレイヤオブジェクトの他にレースに参加するノンプレイヤオブジェクトの数を決定し（ステップＳ１０６）、各ノンプレイヤオブジェクトに対応付ける履歴情報を取得するための履歴情報要求を管理サーバ２００へ送信する（ステップＳ１０８）（図３に示すステップＳ６に相当）。情報処理装置１００は、履歴情報要求に応答して管理サーバ２００から送信される履歴情報を取得し（ステップＳ１１０）、ノンプレイヤオブジェクトに取得した履歴情報を対応付ける（ステップＳ１１２）（図３に示すステップＳ９に相当）。
【０１５６】
続いて、情報処理装置１００は、レースを開始するための準備処理を実行する。具体的には、情報処理装置１００は、ユーザによる選択内容に応じて、仮想ゲームステージ３００の状態である仮想ゲームステージ状態１６６を初期化する（ステップＳ１１４）とともに、初期状態のプレイヤオブジェクト状態１６２を生成する（ステップＳ１１６）。また、情報処理装置１００は、必要数のノンプレイヤオブジェクト状態１６４を生成する（ステップＳ１１８）。
【０１５７】
続いて、情報処理装置１００は、レースの実行に係る処理を開始する。より具体的には、情報処理装置１００は、発生した乱数に基づいて、何らのゲームイベントを発生するか否かを判定する（ステップＳ１２０）。何らのゲームイベントを発生すべきと判定されると（ステップＳ１２０においてＹＥＳ）、情報処理装置１００は、発生すべきゲームイベントの内容を決定する（ステップＳ１２２）。何らのゲームイベントを発生すべきと判定されなければ（ステップＳ１２０においてＮＯ）、ステップＳ１２２の処理はスキップされる。情報処理装置１００は、ステップＳ１２２の内容も考慮して、仮想ゲームステージ３００の状態である仮想ゲームステージ状態１６６を更新する（ステップＳ１２４）。
【０１５８】
プレイヤオブジェクトに関して、ステップＳ１３０〜Ｓ１３４の処理が実行され、各ノンプレイヤオブジェクトに関して、ステップＳ１４０〜Ｓ１５０の処理が実行される。ステップＳ１４０〜Ｓ１５０の処理は、ノンプレイヤオブジェクトの数だけ並列に実行されることになる。
【０１５９】
プレイヤオブジェクトに関して、情報処理装置１００は、ユーザ操作を受け付け（ステップＳ１３０）、受け付けたユーザ操作に応じて、プレイヤオブジェクト３４０の位置および移動速度やアイテムの保有の状態を示すプレイヤオブジェクト状態１６２を更新する（ステップＳ１３２）。また、情報処理装置１００は、ユーザ操作に応じたプレイヤオブジェクト３４０の移動ルートを履歴情報として記録する（ステップＳ１３４）。
【０１６０】
ノンプレイヤオブジェクトに関して、情報処理装置１００は、発生した乱数に基づいて、何らのアイテムを付与するか否かを判定する（ステップＳ１４０）。何らのアイテムを付与すべきと判定されると（ステップＳ１４０においてＹＥＳ）、情報処理装置１００は、付与すべきアイテムの種類を決定する（ステップＳ１４２）。何らのアイテムも付与する必要はないと判定されなければ（ステップＳ１４０においてＮＯ）、ステップＳ１４２の処理はスキップされる。
【０１６１】
情報処理装置１００は、ノンプレイヤオブジェクトが保有しているアイテムに特定アイテムが含まれるか否か、および、（含まれている場合の）特定アイテムの使用順序等に基づいて、アイテムの使用を促進または抑制する必要があるか否かを判定する（ステップＳ１４４）。アイテムの使用を促進または抑制する必要があると判定されると（ステップＳ１４４においてＹＥＳ）、情報処理装置１００は、アイテム使用の促進または抑制に係る処理を実行する（ステップＳ１４６）（図１６など参照）。
【０１６２】
情報処理装置１００は、ゲームイベントに起因するレース状態（プレイヤオブジェクト３４０の状態を含む）に応じて、ノンプレイヤオブジェクトを、対応付けられた履歴情報により特定される同一ルート３１２と、同一ルート３１２とは異なる変更ルート３１４とのうちいずれで移動させるかを判定する（ステップＳ１４８）。
【０１６３】
そして、情報処理装置１００は、ノンプレイヤオブジェクト３４２の位置および移動速度やアイテムの保有の状態を示すノンプレイヤオブジェクト状態１６４を更新する（ステップＳ１５０）。
【０１６４】
そして、情報処理装置１００は、仮想ゲームステージ状態１６６、プレイヤオブジェクト状態１６２、ノンプレイヤオブジェクト状態１６４に基づいて、表示内容を更新する（ステップＳ１６０）。情報処理装置１００は、レースの終了条件が成立したか否かを判定する（ステップＳ１６２）。レースの終了条件が成立していなければ（ステップＳ１６２においてＮＯ）、ステップＳ１２０以下の処理が繰り返される。
【０１６５】
レースの終了条件が成立していれば（ステップＳ１６２においてＹＥＳ）、情報処理装置１００は、レース結果を表示する（ステップＳ１６４）とともに、プレイヤオブジェクト３４０の移動ルートを示す履歴情報を出力する（ステップＳ１６６）。そして、処理は終了する。
【０１６６】
［Ｉ．変形例］
図１７および図１８に示す処理手順においては、先に行われたレースで取得された履歴情報１１６（図３のステップＳ１〜Ｓ４など参照）は、プレイヤオブジェクトの移動ルートを含むことを主として説明したが、ノンプレイヤオブジェクトの移動ルート（すなわち、情報処理装置１００による動作制御の結果）を含むようにしてもよい。
【０１６７】
履歴情報１１６を取得するための先に行われるレースは、複数のゲームオブジェクトが競うものに限られず、プレイヤオブジェクトあるいはノンプレイヤオブジェクトが単独で行うレース（一種のタイムトライアル）であってもよい。また、先に行われるレースはランダム性を有していなくてもよい（すなわち、同じ入力に対して同じ結果が出力されるようにしてもよい）。
【０１６８】
あるレースの実行に用いられる先のレースで取得された履歴情報１１６については、同じユーザの履歴情報１１６であってもよい。この場合には、あるユーザが過去のプレイでの操作により得られた挙動と同様の挙動を行うノンプレイヤオブジェクトが当該ユーザの競争相手となる。この場合には、あたかも、ユーザは、過去の自分と競争することができる。
【０１６９】
履歴情報１１６が情報処理装置１００のストレージ１１０に格納される場合において、同一の情報処理装置１００を複数のユーザが利用するときには、先にレースを行ったユーザの挙動と同様の挙動を行うノンプレイヤオブジェクトを競争相手とすることもできる。この場合には、一台の情報処理装置１００を用いて、あたかも複数のユーザ同士でレースを行うことができる。
【０１７０】
図１０および図１１に示すように、レースに参加するゲームオブジェクト（プレイヤオブジェクトおよびノンプレイヤオブジェクト）に対応付けられるキャラクタを任意に選択できるようにしてもよい。この場合には、履歴情報１１６にキャラクタを特定するための情報を対応付けて格納しておくことで、あるキャラクタが選択されたときに、当該選択されたキャラクタに対応する履歴情報１１６のうちから、適切な履歴情報１１６を選択できる。但し、選択されたキャラクタとは別のキャラクタに対応する履歴情報１１６を選択できるようにしてもよい。
【０１７１】
図３に示すシーケンスチャートにおいては、管理サーバ２００が格納している履歴情報を利用してレースが実行されるが、管理サーバ２００が保持している履歴情報を必ずしも情報処理装置１００にダウンロードする必要はない。例えば、管理サーバ２００が格納している履歴情報を都度参照することでレースを実行してもよい。また、ある情報処理装置１００に向けられた１または複数の履歴情報を別の情報処理装置１００と共有するようにしてもよい。
【０１７２】
なお、ノンプレイヤオブジェクトの移動速度は、対応する履歴情報が取得されたレースでの移動速度とは異なるものとしてもよい。例えば、レース中に走行を妨害するようなアイテムをぶつけられて減速した場合には、その遅れを取り戻すために、加速するように制御してもよい。
【０１７３】
また、レース中においては、他のゲームオブジェクト（プレイヤオブジェクトおよび／またはノンプレイヤオブジェクト）との関係で移動ルートを適宜選択するようにしてもよい。例えば、ノンプレイヤオブジェクトの周囲に特殊状態（例えば、無敵状態）のゲームオブジェクトがいる場合には、特殊状態のゲームオブジェクトに接触すると、クラッシュやコースアウトしてしまうので、そのような特殊状態のゲームオブジェクトを避けるような移動ルートを選択するようにしてもよい。
【０１７４】
また、レース中においては、ノンプレイヤオブジェクトの後方から他のゲームオブジェクト（プレイヤオブジェクトおよび／またはノンプレイヤオブジェクト）が迫ってきた場合に、追い抜きを防止するために、当該他のゲームオブジェクトの進路を妨害するような移動ルートをするようにしてもよい。
【０１７５】
また、履歴情報１１６にはゲームオブジェクトが特別な挙動を行ったこと（例えば、ルートの上空を通行する滑空ルートを通行）が記録されているものの、特別な挙動の最中に他のゲームオブジェクトからの攻撃などによって、特別な挙動が無効化されてしまった場合（例えば、通常のルートに落下）には、無効化された後に、履歴情報１１６に記録された特別な挙動に復帰することは不自然な挙動となるので、移動ルートとして、滑空ルートではなく、通常のルートを選択するようにしてもよい。
【０１７６】
同じコースを複数回周回するようなレースにおいては、先に行われたレースのある周における移動ルートに応じて、後に行われるレースの別の周の移動ルートを決定してもよい。例えば、先のレースの第１周目において、特定アイテムを使用してショートカット３１６を通行したものの、第２周目においては特定アイテムを有しておらずショートカット３１６を通行できなかった場合において、後のレースの第２周目に特定アイテムを有していれば、ショートカット３１６を通行するようにしてもよい。このように、異なる周回における履歴情報を用いて、ルート選択やルート決定などを行ってもよい。
【０１７７】
［Ｊ．利点］
本実施の形態によれば、先に行われたレースにおいてゲームオブジェクトが移動した移動ルートを特定可能な履歴情報を利用しつつ、後のレースにおいては、当該後のレースで発生するゲームイベントに起因するレース状態に応じて、先のレースで取得された履歴情報により特定される第１移動ルートと、当該第１移動ルートとは異なる第２移動ルートとのうちいずれで、ノンプレイヤオブジェクトを移動させるかを判定する。このように、ゲームイベントに起因するレース状態に応じて移動ルートを選択することで、仮想ゲームステージで実行されるレースの状況に応じて、より自然な動作制御を実現できる。
【０１７８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１７９】
１  ゲームシステム、１００  情報処理装置、１０２  プロセッサ、１０４  主メモリ、１０６  ディスプレイ、１０８  タッチパネル、１１０  ストレージ、１１２  システムプログラム、１１４  アプリケーションプログラム、１１６  履歴情報、１２０  入力部、１２２  インジケータ、１２４  スピーカ、１２６  通信モジュール、１２８  マイク、１３０  カメラ、１３２  バス、１５０  ゲーム実行モジュール、１５２  履歴情報取得モジュール、１５４  対応付けモジュール、１５６  ルート判定モジュール、１５８  アイテム管理モジュール、１６０  履歴情報出力モジュール、１６２  プレイヤオブジェクト状態、１６４  ノンプレイヤオブジェクト状態、１６６  仮想ゲームステージ状態、２００  管理サーバ、３００  仮想ゲームステージ、３０２  コース、３０４  基準位置、３０８  ゾーン、３１０  移動ルート、３１２  同一ルート、３１４  変更ルート、３１６  ショートカット、３１８  特殊区間、３２０  障害物オブジェクト、３２２，３２４  曲率半径、３３０  加速アイテム、３３２  通行可能アイテム、３３６  通常アイテム、３３８  保有アイテム表示オブジェクト、３４０  プレイヤオブジェクト、３４２  ノンプレイヤオブジェクト、１１６１  ユーザ情報、１１６２  コース情報、１１６３  キャラクタ情報、１１６４  移動記録、１１６５，１１６６  特別挙動記録。
【図１】
2020185283.tif 000003
【図２】
2020185283.tif 000004
【図３】
2020185283.tif 000005
【図４】
2020185283.tif 000006
【図５】
2020185283.tif 000007
【図６】
2020185283.tif 000008
【図７】
2020185283.tif 000009
【図８】
2020185283.tif 000010
【図９】
2020185283.tif 000011
【図１０】
2020185283.tif 000012
【図１１】
2020185283.tif 000013
【図１２】
2020185283.tif 000014
【図１３】
2020185283.tif 000015
【図１４】
2020185283.tif 000016
【図１５】
2020185283.tif 000017
【図１６】
2020185283.tif 000018
【図１７】
2020185283.tif 000019
【図１８】
2020185283.tif 000020