(57)【特許請求の範囲】
【請求項１】
サーバと、前記サーバにネットワークを介して接続された１以上の電子装置とを備え、前記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムであって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される前記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、
プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定する移動開始決定手段と、
１以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、前記決定された移動開始位置から前記決定された移動目標位置までの１以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する大局的移動経路決定手段と、
前記決定された大局的移動経路を構成するログブロックのうち前記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、前記決定された移動開始位置又は小目的地位置から、前記決定された大局的移動経路上の次のログブロック内の小目的地位置又は前記決定された移動目標位置までの経路を決定する局所的移動経路決定手段と、
前記決定された経路に従ってノンプレイヤキャラクタを移動させる移動制御手段と、
の各手段を、前記サーバ又は前記電子装置が備える、ゲームシステム。
【請求項２】
前記局所的移動経路決定手段は、前記決定された大局的移動経路上における隣接するログブロック内のみを通る経路を確保できるように、小目的地位置を選択する、請求項１に記載のゲームシステム。
【請求項３】
前記履歴情報は、プレイヤの属性及びゲームの進行度のうちの少なくとも１つによりグループに分けられ、
前記大局的移動経路決定手段は、プレイヤに対応したグループの前記履歴情報に基づいて、１以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する、請求項１又は２に記載のゲームシステム。
【請求項４】
前記プレイヤの属性は、プレイヤの習熟度、総プレイ時間、使用するキャラクタ、使用するキャラクタの属性、課金金額、属する国、及びプレイ人数の少なくとも１つを含む、請求項３に記載のゲームシステム。
【請求項５】
前記サーバ又は前記電子装置は移動経路学習手段をさらに備え、
前記移動経路学習手段は、同一のログブロック内にプレイヤキャラクタが位置する時間又はゲームの進行に基づいてログブロックの位置で表される移動開始位置及び移動目標位置を決定するとともに、移動開始位置から移動目標位置までの大局的移動経路を前記履歴情報として記憶する、請求項１から４のいずれか１項に記載のゲームシステム。
【請求項６】
前記履歴情報は、移動開始位置のログブロックと移動終了位置のログブロックの各々の組み合わせごとに算出された頻度情報である、請求項１から４のいずれか１項に記載のゲームシステム。
【請求項７】
ネットワークを介してサーバに接続された１以上の電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてプレイさせるゲームのためのプログラムであって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される前記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、前記プログラムは、前記サーバに、
プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定するステップと、
１以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、前記決定された移動開始位置から前記決定された移動目標位置までの１以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定するステップと、
前記決定された大局的移動経路を構成するログブロックのうち前記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、前記決定された移動開始位置又は小目的地位置から、前記決定された大局的移動経路上の次のログブロック内の小目的地位置又は前記決定された移動目標位置までの経路を決定するステップと、
前記決定された経路に従ってノンプレイヤキャラクタを移動させるステップと、
を実行させるプログラム。
【請求項８】
前記プログラムは、前記サーバに、
同一のログブロック内にプレイヤキャラクタが位置する時間又はゲームの進行に基づいてログブロックの位置で表される移動開始位置及び移動目標位置を決定するとともに、移動開始位置から移動目標位置までの大局的移動経路を前記履歴情報として記憶するステップをさらに実行させる、請求項７に記載のプログラム。
【請求項９】
サーバと、前記サーバにネットワークを介して接続された１以上の電子装置とを備え、前記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムにおけるサーバであって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される前記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、
プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定する移動開始決定手段と、
１以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、前記決定された移動開始位置から前記決定された移動目標位置までの１以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する大局的移動経路決定手段と、
前記決定された大局的移動経路を構成するログブロックのうち前記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、前記決定された移動開始位置又は小目的地位置から、前記決定された大局的移動経路上の次のログブロック内の小目的地位置又は前記決定された移動目標位置までの経路を決定する局所的移動経路決定手段と、
前記決定された経路に従ってノンプレイヤキャラクタを移動させる移動制御手段と、
を備える、サーバ。
【請求項１０】
サーバと、前記サーバにネットワークを介して接続された１以上の電子装置とを備え、前記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムにおける電子装置であって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される前記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、
プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定する移動開始決定手段と、
１以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、前記決定された移動開始位置から前記決定された移動目標位置までの１以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する大局的移動経路決定手段と、
前記決定された大局的移動経路を構成するログブロックのうち前記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、前記決定された移動開始位置又は小目的地位置から、前記決定された大局的移動経路上の次のログブロック内の小目的地位置又は前記決定された移動目標位置までの経路を決定する局所的移動経路決定手段と、
前記決定された経路に従ってノンプレイヤキャラクタを移動させる移動制御手段と、
を備える、電子装置。
【請求項１１】
サーバと、前記サーバにネットワークを介して接続された１以上の電子装置とを備え、前記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムにおけるゲーム制御方法であって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される前記ゲームフィールドは各々が複数のナビブロックから構成される複数のログブロックを含むものであり、
プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定するステップと、
１以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、前記決定された移動開始位置から前記決定された移動目標位置までの１以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定するステップと、
前記決定された大局的移動経路を構成するログブロックのうち前記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、前記決定された移動開始位置又は小目的地位置から、前記決定された大局的移動経路上の次のログブロック内の小目的地位置又は前記決定された移動目標位置までの経路を決定するステップと、
前記決定された経路に従ってノンプレイヤキャラクタを移動させるステップと、
を備え、各ステップは前記サーバ又は前記電子装置により実行されるゲーム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム、プログラム、サーバ、電子装置、及びゲーム制御方法に関する。
【背景技術】
【０００２】
近年、ネットワークを通じて複数のプレイヤが参加可能なネットワーク対応のゲームを楽しむプレイヤが増えている。当該ゲームは、ゲーム機、ＰＣ端末、又は携帯電話等の電子装置がゲーム運営者のサーバ装置等と通信を行うゲームシステムにより実現され、電子装置を操作するプレイヤは、他のプレイヤと協力してゲームを進行したり、対戦ゲームにおいて対戦したりすることができる。
【０００３】
ゲームに登場するキャラクタは、プレイヤが操作可能なプレイヤキャラクタの他に、プレイヤが操作しないノンプレイヤキャラクタ（以下「ＮＰＣ」という）があり、コンピュータは、ＮＰＣを制御して自立して行動させることができる。
【０００４】
例えばカーレースゲームにおいては、プレイヤの以前操作した記録に応じてＮＰＣ（ゴーストカー）を走らせる技術が特許文献１に記載されている。また例えば複数のキャラクタが登場するゲームにおいては、プレイヤキャラクタの周辺領域以外の仮想空間に存在するＮＰＣが、何らかのターゲットを目標位置として移動するようなゲームがリリースされている。このようなゲームにおいて最も一般的なＮＰＣは、アクションゲームやロールプレイングゲームと呼ばれるジャンルにおいて一般的な敵キャラクタであり、これらの敵キャラクタは、プレイヤへの攻撃や、プレイヤの行動を妨害する行為を行うことを目的として、すなわちプレイヤの操作するプレイヤキャラクタをターゲットとするようゲーム内に配置されている。これらの敵キャラクタを倒すこと、あるいは、回避することがゲームの面白さの一つになっている。ＮＰＣは、ゲーム用人工知能(Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，  ＡＩ)技術を用いて制御されており、ＮＰＣの移動も、従来技術では、人工知能研究の一分野である最短経路探索法により制御されてきた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２３７４５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように何らかのターゲットを目標位置としてＮＰＣを移動させる場合、これらのキャラクタが含まれる探索領域を設定し、目標位置までの経路探索を行い、この探索結果に従ってＮＰＣを移動させることとなる。３Ｄゲームにおいて、プレイヤが様々な経路で移動することができる複雑なマップは、多様な戦術を生み出すため、ゲームの面白さを向上させる重要な要素であるが、経路探索の実施にあたって以下のような問題がある。
【０００７】
従来の３Ｄゲームでは、Ａ＊（エイスター）アルゴリズムやＪＰＳ（Ｊｕｍｐ  Ｐｏｉｎｔ  Ｓｅａｒｃｈ）アルゴリズムなどの最短経路探索アルゴリズムを３Ｄマップに適用し、ＮＰＣの移動経路を選択している。この方式では、経路探索アルゴリズムが最短経路を抽出するため、最短経路を常に移動するわけではない人間が動かすキャラクタの経路とコンピュータが制御するＮＰＣの移動経路は、マップが複雑化すればするほど乖離することになる。このような人間とＮＰＣとの行動のギャップにより、人間のプレイヤからはＮＰＣの振る舞いが不自然かつ単調に見えてしまう。特に、移動のための操作が煩雑であるが距離の短い経路を、ＮＰＣが難なく移動するさまを見たとき、プレイヤは理不尽さを感じることが多い。
【０００８】
人間に近く、自然に見える経路を選択する方法としては、ファジー制御やエージェントモデルを最短経路探索アルゴリズムの重みとして適用する方法がある。ファジー制御やエージェントモデルは、一見人間に近い振る舞いを与えることができるものの、３Ｄマップが複雑になると、その複雑さに応じて、制御パラメータを用意する必要があるため、複雑なマップに適用することが困難である。
【０００９】
最短経路探索アルゴリズムは、計算量の問題があるため、最短経路探索アルゴリズムへの重みづけでは、距離以外の多様な要素を考慮した経路探索を行うことが困難であり、通常の最短経路を大きく迂回する経路や、移動操作が容易になる経路を選択するためのパラメータ調整は困難を極める。特に複雑な構造を有するマップの場合、視野の確保や移動速度など、経路上の距離以外に考慮すべき要素が多岐にわたるため、最短経路探索アルゴリズムへの重みづけでは、人間から見て自然な経路を得ることが難しい。
【００１０】
本発明は、このような状況を鑑みてなされたものであり、３Ｄゲームにおける複雑なマップ上で、ＮＰＣが人間により操作されているかのようにプレイヤが認識するように、それによってプレイヤが臨場感と没入間を持つことができるように、ＮＰＣの移動経路の重み付けと決定を自動的に行う機能を提供する。さらに、３Ｄマップでのキャラクタの位置取りが勝敗に強い影響を及ぼすゲームにおいてリアリティのあるＮＰＣを実現するために、ゲーム内でのキャラクタの強さや性質に応じた経路探索を自動的に行う機能を提供する。また一般的なゲームにおいては、プレイヤがゲームシステムに習熟するスピードに合わせて徐々に強く賢い敵が登場することが期待されるため、プレイヤの行動の変化に応じてＮＰＣの行動が変化するように経路探索を行う学習機能を提供する。
【課題を解決するための手段】
【００１１】
本発明は上記の課題に鑑みてなされたものであり、以下のような特徴を有している。すなわち、本発明の一態様としてのシステムは、サーバと、上記サーバにネットワークを介して接続された１以上の電子装置とを備え、上記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムであって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される上記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定する移動開始決定手段と、１以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、上記決定された移動開始位置から上記決定された移動目標位置までの１以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する大局的移動経路決定手段と、上記決定された大局的移動経路を構成するログブロックのうち上記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、上記決定された移動開始位置又は小目的地位置から、上記決定された大局的移動経路上の次のログブロック内の小目的地位置又は上記決定された移動目標位置までの経路を決定する局所的移動経路決定手段と、上記決定された経路に従ってノンプレイヤキャラクタを移動させる移動制御手段と、の各手段を、上記サーバ又は上記電子装置が備える、ゲームシステムである。
【００１２】
本発明の一態様として、上記局所的移動経路決定手段は、上記決定された大局的移動経路上における隣接するログブロック内のみを通る経路を確保できるように、小目的地位置を選択する。
【００１３】
本発明の一態様として、上記履歴情報は、プレイヤの属性及びゲームの進行度のうちの少なくとも１つによりグループに分けられ、上記大局的移動経路決定手段は、プレイヤに対応したグループの上記履歴情報に基づいて、１以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する。
【００１４】
本発明の一態様として、上記プレイヤの属性は、プレイヤの習熟度、総プレイ時間、使用するキャラクタ、使用するキャラクタの属性、課金金額、属する国、及びプレイ人数の少なくとも１つを含む。
【００１５】
本発明の一態様として、上記サーバ又は上記電子装置は移動経路学習手段をさらに備え、上記移動経路学習手段は、同一のログブロック内にプレイヤキャラクタが位置する時間又はゲームの進行に基づいてログブロックの位置で表される移動開始位置及び移動目標位置を決定するとともに、移動開始位置から移動目標位置までの大局的移動経路を上記履歴情報として記憶する。
【００１６】
本発明の一態様として、上記履歴情報は、移動開始位置のログブロックと移動終了位置のログブロックの各々の組み合わせごとに算出された頻度情報である。
【００１７】
本発明の一態様としてのプログラムは、ネットワークを介してサーバに接続された１以上の電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてプレイさせるゲームのためのプログラムであって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される上記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、上記プログラムは、上記サーバに、プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定するステップと、１以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、上記決定された移動開始位置から上記決定された移動目標位置までの１以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定するステップと、上記決定された大局的移動経路を構成するログブロックのうち上記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、上記決定された移動開始位置又は小目的地位置から、上記決定された大局的移動経路上の次のログブロック内の小目的地位置又は上記決定された移動目標位置までの経路を決定するステップと、上記決定された経路に従ってノンプレイヤキャラクタを移動させるステップと、を実行させるプログラムである。
【００１８】
本発明の一態様として、上記プログラムは、上記サーバに、同一のログブロック内にプレイヤキャラクタが位置する時間又はゲームの進行に基づいてログブロックの位置で表される移動開始位置及び移動目標位置を決定するとともに、移動開始位置から移動目標位置までの大局的移動経路を上記履歴情報として記憶するステップをさらに実行させる。
【００１９】
本発明の一態様としてのサーバは、サーバと、上記サーバにネットワークを介して接続された１以上の電子装置とを備え、上記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムにおけるサーバであって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される上記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定する移動開始決定手段と、１以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、上記決定された移動開始位置から上記決定された移動目標位置までの１以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する大局的移動経路決定手段と、上記決定された大局的移動経路を構成するログブロックのうち上記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、上記決定された移動開始位置又は小目的地位置から、上記決定された大局的移動経路上の次のログブロック内の小目的地位置又は上記決定された移動目標位置までの経路を決定する局所的移動経路決定手段と、上記決定された経路に従ってノンプレイヤキャラクタを移動させる移動制御手段と、を備える、サーバである。
【００２０】
本発明の一態様としての電子装置は、サーバと、上記サーバにネットワークを介して接続された１以上の電子装置とを備え、上記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムにおける電子装置であって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される上記ゲームフィールドは、各々が複数のナビブロックから構成される複数のログブロックを含むものであり、プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定する移動開始決定手段と、１以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、上記決定された移動開始位置から上記決定された移動目標位置までの１以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定する大局的移動経路決定手段と、上記決定された大局的移動経路を構成するログブロックのうち上記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、上記決定された移動開始位置又は小目的地位置から、上記決定された大局的移動経路上の次のログブロック内の小目的地位置又は上記決定された移動目標位置までの経路を決定する局所的移動経路決定手段と、上記決定された経路に従ってノンプレイヤキャラクタを移動させる移動制御手段と、を備える、電子装置である。
【００２１】
本発明の一態様としてのゲーム制御方法は、サーバと、上記サーバにネットワークを介して接続された１以上の電子装置とを備え、上記サーバに接続された電子装置のプレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるゲームシステムにおけるゲーム制御方法であって、各々がキャラクタの移動可能位置を定める複数のナビブロックから構成される上記ゲームフィールドは各々が複数のナビブロックから構成される複数のログブロックを含むものであり、プレイヤが操作しないノンプレイヤキャラクタを移動させるために、当該ノンプレイヤキャラクタの移動開始位置及び移動目標位置を決定するステップと、１以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいて、上記決定された移動開始位置から上記決定された移動目標位置までの１以上のプレイヤにより選択される頻度が最も高い大局的移動経路を決定するステップと、上記決定された大局的移動経路を構成するログブロックのうち上記決定された移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として各々選択し、上記決定された移動開始位置又は小目的地位置から、上記決定された大局的移動経路上の次のログブロック内の小目的地位置又は上記決定された移動目標位置までの経路を決定するステップと、上記決定された経路に従ってノンプレイヤキャラクタを移動させるステップと、を備え、各ステップは上記サーバ又は上記電子装置により実行されるゲーム制御方法である。
【発明の効果】
【００２２】
本発明は、ＮＰＣの移動開始地点から目的地までの経路探索において、大局的には人間の移動経路の頻度情報から算出した人間の移動経路を採用し、局所的には最短経路探索アルゴリズムを適用することで、ゲームとして適切であり、かつ、人間から見て自然な経路探索を実現することができる。したがって、プレイヤに臨場感と没入間を持ってプレイさせることを可能にする。
【００２３】
また本発明は、プレイヤを所定のグループにクラス分けし、クラス分けされたプレイヤ毎の移動経路の頻度情報を用いて、ゲーム内でのキャラクタの強さや性質に応じた経路探索を自動的に行ってＮＰＣを制御することにより、ＮＰＣの振る舞いが従来よりも自然になるとともに、長期に運用するゲームタイトルにおいては、プレイヤ間では常識的な移動戦術をＮＰＣが自動的に採用することを可能にする。
【００２４】
さらに本発明は、ゲーム内でのキャラクタの強さや性質に応じた経路探索を自動的に行ってＮＰＣを制御することで、プレイヤの集団がゲームに習熟する速度に合わせて自らの行動を変化させるＮＰＣを実現することができる。これは、プレイヤ集団がゲームシステムに習熟する速度で難易度を調整することが重要であるソーシャルゲームにおいては特に有効である。
【図面の簡単な説明】
【００２５】
【図１】本発明の１つの実施形態に係るシステムの全体構成である。
【図２】本発明の１つの実施形態に係るサーバのハードウェア構成である。
【図３】本発明の１つの実施形態に係る電子装置のハードウェア構成である。
【図４】本発明の１つの実施形態に係るゲームシステムの機能ブロック図である。
【図５ａ】ログメッシュを用いて、プレイヤキャラクタの移動開始位置から移動終了位置までの移動経路を学習する様子を示す図である。
【図５ｂ】ナビメッシュを用いて、学習した経路に基づいてＮＰＣを移動させる経路を決定する様子を示す図である。
【図６】本発明の１つの実施形態に係るゲームシステムにおけるサーバと電子装置の情報処理を示すフローチャートである。
【図７】本発明の１つの実施形態に係るゲームシステムにおける移動経路探索の情報処理を示すフローチャートである。
【図８】本発明の１つの実施形態に係るゲームシステムのシステムアーキテクチャである。
【発明を実施するための形態】
【００２６】
以下、図面を参照して、本発明の実施形態を説明する。本実施形態に係るゲームシステムは、１以上の電子装置がネットワーク等で接続され、それぞれの電子装置で情報を送受信することにより、１以上のプレイヤが参加可能なゲームを提供する。
【００２７】
このようにネットワークを介して各電子装置が接続される本実施形態に係るゲームシステムは、サーバ‐クライアントシステムを想定しているが、ＰｔｏＰのようなサーバのないシステムで構成することもできる。またネットワークに接続される電子装置は１つであってもよい。なお本発明は、ネットワークに接続せずに１つの電子装置によってのみ実現することもできるが、本明細書では主に、ネットワークを介して複数の電子装置が接続されるシステムによって実現される実施形態を説明する。
【００２８】
続いて本発明の１つの実施形態に係るゲームシステムが提供するゲームの概要について説明する。当該ゲームは、それぞれの電子装置上で操作される各キャラクタを、ゲーム上の仮想空間であるゲームフィールド又はゲームマップに配置させて、各プレイヤにプレイさせるとともに、プレイヤが操作しないノンプレイヤキャラクタ（ＮＰＣ）をゲームフィールドに配置し、移動を含む動作を制御する。
【００２９】
本実施形態においてゲームフィールドは３次元の仮想空間であり、ナビゲーションメッシュ（以下「ナビメッシュ」という）により形成される。ナビメッシュ（又はゲームフィールド）は、複数のナビブロックから構成されるものであり、ナビブロックは、ゲームフィールド上におけるキャラクタの移動可能位置（移動可能地点）を定めるものである。例えばナビメッシュを構成する各々のナビブロックはポリゴンであり、各ポリゴンは、背景やオブジェクト等を表現するためのポリゴンとは別の、キャラクタの移動可能位置（歩行可能エリア）を示すポリゴンである。１つの実施例においては、ナビメッシュに関するデータはマップデータから生成される。またナビメッシュを構成する各ポリゴンのデータについては、ナビメッシュデータベースが格納する。１つの実施例においては、ナビメッシュデータベースは、ゲームにおけるシーンのジオメトリの表面部分を凸ポリゴンとして格納する。
【００３０】
また本発明の１つの技術的特徴は、ＮＰＣを移動させる必要が生じた場合に、ＮＰＣの移動開始位置から移動目標位置までの経路を決定するものであるため、当該ゲームは、ゲームの進行に応じて、キャラクタがゲームフィールド上で移動する必要のあるものである。例えば当該ゲームは、プレイヤがあるステージをクリアして次のステージに移行した場合や何らかのイベントが発生した場合などに、目標となる敵を倒しに行くために、又は目標となるアイテムを取得するために、ＮＰＣを含むキャラクタを移動させる必要が発生するものである。なお、ここでイベントとは、ゲーム内でのプレイヤの操作やゲームシステム側の処理により発生する、一つの意味とまとまりを持った処理又は制御のことを示す。また本発明においてＮＰＣの移動開始位置から移動目標位置までの経路を決定する場合というのは、特に言及がない限り、移動目標位置が移動開始位置にいるＮＰＣの視界（又は視点カメラ内）にない場合を想定している。
【００３１】
さらに本発明においては複数のナビブロックから構成されるログブロックを定め、移動経路の頻度計算を行うために使用する。ゲームフィールドは、複数のログブロックから構成されるログメッシュによっても形成される。メッシュ構造の観点から記載すれば、ログメッシュは、ナビメッシュよりも大きな粒度を持つ疎なメッシュであり、好ましくはナビメッシュと等しい外縁を持つメッシュ構造であり、ゲームフィールド全体をカバーするものである。そして、ナビメッシュの各々の網目領域に対応する領域（位置）がナビブロックであり、ログメッシュの各々の網目領域に対応する領域がログブロックである。このようにログブロック（ログメッシュ）を定めることにより、プレイヤキャラクタが通過したログブロックの位置の履歴に基づいて、大局的な移動経路の頻度を把握することができる。ログメッシュを構成するログブロックに関する情報は、ログメッシュデータベースが格納し、移動経路の頻度情報は、経路頻度情報データベースが格納する。詳細については以下に記載する。なお本明細書においては、特に言及がない限り、単に位置と記載した場合はナビブロックの位置を表すものとする。
【００３２】
［システム構成］
図１は本発明の実施形態に係るゲームシステム１００の全体構成の一例を示す。システム１００は、サーバ２００と、複数の電子装置３００と、を含んで構成される。これらはネットワーク１０１によって互いに接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。また複数の電子装置のうちの１つをサーバとしても機能させる場合、システム１００はサーバを含まない構成とすることもできる。
【００３３】
またシステム１００は、サーバ２００や電子装置３００が備えうるデータベースとは別に、データベース１５０を含むこともできる。システム１００がデータベース１５０を含む場合、データベース１５０は各種データベースを格納し、サーバ２００又は電子装置３００はデータベース１５０に照会することで、所望のデータを取得することができる。以下では主としてサーバ２００内のデータベースの使用を想定しているが、ネットワークに直接接続されたデータベース１５０を使用した場合においても同様である。
【００３４】
［サーバの構成概要］
図２は本発明の実施形態に係るサーバ２００のハードウェア構成を示すブロック図である。サーバ２００は、処理部２０１、表示部２０２、入力部２０３、記憶部２０４及び通信部２０５を備える。これらの各構成部はバス２１０によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。
【００３５】
処理部２０１は、サーバ２００が備える各部を制御するプロセッサを備えており、記憶部２０４をワーク領域として各種処理を行う。表示部２０２は使用者に情報を表示する機能を有する。入力部２０３はキーボードやマウス等のように使用者からの入力を受け付ける機能を有するものである。
【００３６】
記憶部２０４は、ハードディスク、メインメモリ、及びバッファメモリを含む。ハードディスクにはプログラム２０６が記憶される。ただしハードディスクは、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。記憶部２０４には、プログラム２０６や当該プログラムの実行に伴って参照され得る各種のデータが記憶される。さらに記憶部２０４は、データベース２０７を含むことができる。この場合データベース２０７は、ナビメッシュデータベースと、ログメッシュデータベースと、移動経路の頻度情報を格納する経路頻度情報データベースと、を含む。
【００３７】
通信部２０５はイーサネット（登録商標）ケーブル等を用いた有線通信や移動体通信、無線ＬＡＮ等の無線通信を行い、ネットワーク１０１へ接続する。
【００３８】
例えばサーバ２００は、システム管理者等がゲームサービスを運営、管理する際に利用する上記ハードウェア構成を備えた情報処理装置であり、電子装置３００から各種のコマンド（リクエスト）を受信すると、電子装置３００上で動作可能なゲームプログラム、又は電子装置３００の規格に合わせたマークアップ言語で作成されたＷｅｂページやゲーム画面等を配信（レスポンス）することができる。
【００３９】
サーバ２００は、プログラム２０６が実行されることによって様々な機能が実現されるが、これらの機能の一部は電子回路等を構成することによっても実現できる。
【００４０】
［電子装置の構成概要］
図３は本発明の実施形態に係る電子装置３００のハードウェア構成を示すブロック図である。電子装置３００は、処理部３０１、表示部３０２、入力部３０３、記憶部３０４、及び通信部３０５を備える。これらの各構成部はバス３１０によって接続されるが、それぞれが必要に応じて個別に接続される形態であってもかまわない。
【００４１】
電子装置３００は、好ましくはスマートフォンであるが、例えば、携帯電話、携帯型情報端末、タブレット型コンピュータ、ビデオゲーム機、携帯型ビデオゲーム機、タッチパッド等の接触型入力装置を備えるコンピュータも含まれる。
【００４２】
処理部３０１は、プログラム、入力部３０３からの入力データ、又はサーバから受信したデータに基づいて、ゲーム処理、画像生成処理などの各種の処理を行う。処理部３０１は、電子装置３００が備える各部を制御するプロセッサを備えており、記憶部３０４をワーク領域として各種処理を行う。
【００４３】
表示部（ディスプレイ）３０２は、処理部３０１の制御に従って、ゲームの進行やプレイヤ操作に応じた画面を表示する。好ましくは液晶ディスプレイであるが、有機ＥＬを用いたディスプレイやプラズマディスプレイ等であってもよい。
【００４４】
入力部３０３は、タッチパネル、タッチパッド、キーボード、マウス、又はゲームコントローラ等のように使用者からの入力を受け付ける機能を有するものである。例えばタッチパネルの場合、プレイヤがタッチした位置に基づいた入力を電子装置３００に与える。この場合、表示部３０２と入力部３０３は一体とした構造であり、表示部３０２へのプレイヤのタッチによる入力を受け付け、入力部３０３はプレイヤがタッチした位置に対応する座標を検出し、電子装置３００に与える。検出方式は（例えばタッチパネルにおける静電容量方式等）あらゆる方式を含みうるが、入力部３０３は、少なくとも２点同時にプレイヤの指等がタッチしたことを検出し、検出した位置に対応する各座標情報を電子装置３００に与えるものであることが好ましい。
【００４５】
記憶部３０４は、ハードディスク、メインメモリ、及びバッファメモリを含む。ハードディスクにはプログラム３０６が記憶される。ただしハードディスクは、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。例えば電子装置３００がスマートフォンである場合はＲＯＭ及びＲＡＭを含む。記憶部３０４には、プログラム３０６や当該プログラムの実行に伴って参照され得る各種のデータが記憶される。当該プログラムは、オペレーティングシステム、又はビデオゲーム、ウェブブラウザ等のユーザ入力を要求するあらゆるアプリケーションのためのプログラムを含み、各種のデータには、例えばゲームに登場するオブジェクトなどの各種画像を表示するための画像データやゲーム中に記憶部３０４に書き込まれうるデータも含まれる。記憶部３０４は、サーバ２００の有するデータベース２０７に代わって、データベース３０７を含むことができる。この場合データベース３０７は、ナビメッシュデータベースと、ログメッシュデータベースと、移動経路の頻度情報を格納する経路頻度情報データベースと、を含む。
【００４６】
通信部３０５はイーサネット（登録商標）ケーブル等を用いた有線通信や移動体通信、無線ＬＡＮ等の無線通信を行い、ネットワーク１０１へ接続する。
【００４７】
電子装置３００は、プログラム３０６が実行されることによってこれらの機能が実現されるが、これらの機能は電子回路等を構成することによっても実現できる。
【００４８】
［機能ブロック］
図４は本発明のゲームシステムの機能ブロック図の一例を示す。システム１００は、入力受付手段４０１、画面表示手段４０２、移動制御手段４０３、移動経路学習手段４０４、移動経路頻度決定手段４０５、移動開始決定手段４０６、大局的移動経路決定手段４０７、局所的移動経路決定手段４０８、記憶手段４０９、及び通信手段４１０を備える。前述のとおり、これらの機能は、プログラム２０６をサーバ２００に実行させることで実現されるか、プログラム３０６を電子装置３００に実行させることで実現されるか、又はプログラム２０６をサーバ２００に実行させ、かつプログラム３０６を電子装置３００に実行させることで実現される。すなわち、サーバ２００及び電子装置３００の少なくとも一方が図４に示す各種機能を備える。このように各種機能がプログラム読み込みにより実現される場合は、当然ながら１つの手段の一部の機能を他の手段が有していてもよい。
【００４９】
入力受付手段４０１は、電子装置３００が備える機能であり、プレイヤによる入力を検出し、電子装置３００に与える機能を有する。例えば電子装置３００がタッチパネルを有する場合、入力部３０３上へのプレイヤによるタッチ位置を検出し、電子装置３００に与える。
【００５０】
画面表示手段４０２は、処理部３０１により処理された画像出力データを表示部３０２へ表示する機能を有する。サーバ２００から受信したｗｅｂページやゲーム画面等をそのまま表示することもできる。
【００５１】
移動制御手段４０３は、ナビメッシュデータベースを参照し、移動可能な領域のチェックや移動速度等のキャラクタの移動を制御する機能を有する。また後述の局所的移動経路決定手段４０８により決定された経路に従って、ＮＰＣを移動させることができる。
【００５２】
移動経路学習手段４０４は、プレイヤキャラクタのひとつながりの移動経路について、任意の移動開始位置から移動終了位置（移動目標位置）までの大局的な移動経路を学習する機能を有する。学習する移動開始位置及び移動終了位置は、各々が位置するログブロックの位置であり、学習する移動経路は通過したログブロックの位置である。また学習する移動経路は、１以上のプレイヤにより操作されたプレイヤキャラクタの一連の移動経路である。すなわち移動経路学習手段４０４は、１以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置及び移動終了位置のログブロックの位置を含む当該プレイヤキャラクタが通過したログブロックの位置の順番で表される大局的移動経路を記憶する。この大局的移動経路の履歴情報は、データベース２０７又は３０７が含みうる経路履歴情報データベースに記憶することができる。あるいは当該履歴情報は、経路履歴情報データベースに記憶せずに、移動経路頻度決定手段４０５にそのまま渡すこともできる。
【００５３】
１つの実施形態として、移動経路学習手段４０４は、ゲームの進行において次の場面に移行した場合や何らかのイベントが発生した場合において、目標となる敵を倒しに行く、又は目標となるアイテムを取得する必要が生じた場合などに、ひとつながりの移動経路を開始したと判断し、その時点のプレイヤキャラクタが位置するログブロックの位置を移動開始位置として決定するとともに、プレイヤキャラクタが目標位置に達したときに移動経路を終了したと判断し、その時点のプレイヤキャラクタが位置するログブロックの位置を移動終了位置として決定する。他の１つの実施形態として、移動経路学習手段４０４は、同一のログブロック内に所定時間以上プレイヤキャラクタが位置する場合に当該ログブロックの位置を移動開始位置として決定し、その後プレイヤキャラクタの位置が他のログブロックへ移動し、移動後のログブロック内に所定時間時間以上プレイヤキャラクタが位置する場合に当該ログブロックの位置を移動終了位置として決定する。
【００５４】
さらなる他の１つの実施形態として、移動経路学習手段４０４は、学習する対象のプレイヤキャラクタを操作するプレイヤの属性及びゲームの進行度のうちの少なくとも１つにより、記憶された履歴情報をグループに分けて集計することができる。プレイヤの属性は、当該プレイヤの習熟度、当該プレイヤの総プレイ時間、当該プレイヤの使用するキャラクタ、当該プレイヤの使用するキャラクタの属性（例えばキャラクタの使用する武器、キャラクタのレベル、キャラクタのゲームフィールドとの相性等）、当該プレイヤの課金金額、当該プレイヤの属する国（例えばプレイヤの国籍、プレイヤの居住国、ゲームがダウンロードされた国等）、及びプレイ人数の少なくとも１つを含むことができる。
【００５５】
移動経路頻度決定手段４０５は、前述のとおり学習した大局的移動経路の履歴情報を用いて、移動開始位置（ログブロックの位置）と移動終了位置（ログブロックの位置）の各々の組み合わせごとに、大局的移動経路の頻度を算出又は決定する機能を有する。大局的移動経路の頻度情報は、経路頻度情報データベースに記憶する。ここで大局的移動経路は、前述のとおりキャラクタが通過するログブロックの位置の順番で表される移動経路である。したがって経路履歴情報データベース又は経路頻度情報データベースは、ログメッシュデータベースを参照して作成される。また移動経路頻度決定手段４０５は、学習した大局的移動経路の履歴情報をそのまま受け取り、移動経路頻度を算出し決定することができる。なお本実施形態においては、大局的移動経路の履歴情報と頻度情報はそれぞれ別々のデータベースに格納されることが好ましいが、頻度情報は履歴情報に基づき作成される情報ゆえ、履歴情報は頻度情報を包含する広い概念の構成要素として解釈することができる。ただし、頻度情報が作成される際には、本発明が実施されるゲームの種類や性質なども考慮し、何らかの別の情報を履歴情報に加味しながら作成してもよい。したがって、頻度情報は必ずしも履歴情報のみから作成される情報ではない。
【００５６】
移動経路学習手段４０４が、大局的移動経路の履歴情報を、プレイヤキャラクタを操作するプレイヤの属性及びゲームの進行度のうちの少なくとも１つによりグループに分けている場合、移動経路頻度決定手段４０５は、実際に電子装置３００をプレイするプレイヤに対応するグループにおける大局的移動経路の履歴情報を用いて、移動経路の頻度を算出又は決定することができる。
【００５７】
移動開始決定手段４０６は、ＮＰＣの移動を決定するとともに、移動開始位置及び移動目標位置を決定する機能を有する。ＮＰＣの移動の決定は、ゲームの進行において次の場面に移行した場合や何らかのイベントが発生した場合に、目標となる敵を倒しに行くために、又は目標となるアイテムを取得するために、行われる。この決定によりＮＰＣを移動させることができる。概して移動開始位置は、決定した時点においてＮＰＣが存在する位置である。
【００５８】
大局的移動経路決定手段４０７は、前述のとおり決定された移動開始位置及び移動目標位置について、当該移動開始位置（ログブロックの位置）から当該移動目標位置（ログブロックの位置）までの大局的移動経路を、前述のとおり決定された移動経路頻度の高さに基づいて決定する。好ましくは移動経路頻度が最も高い大局的移動経路を決定する。前述のとおり大局的移動経路は、移動開始位置から移動目標位置までに通過するログブロックを順番に並べて表された移動経路である。なお移動経路頻度の高さに基づいて大局的移動経路は決定されるため、大局的移動経路決定手段４０７は、移動経路頻度決定手段４０５を含むことができる。
【００５９】
局所的移動経路決定手段４０８は、大局的移動経路決定手段により決定された大局的移動経路を構成する各ログブロックのうち、移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として選択する。その後、決定された大局的移動経路におけるログブロックの順番に従って、（１）移動開始位置から大局的移動経路上の次のログブロック内の小目的地位置までの経路を決定するか、（２）小目的地位置から大局的移動経路上の次のログブロック内の小目的地位置までの経路を決定するか、又は（３）小目的地位置から大局的移動経路上の次のログブロック内の移動目標位置までの経路を決定する。局所的移動経路決定手段４０８は上記３つのいずれかの経路（局所的移動経路）を決定すると、移動制御手段４０３は、決定された経路に従ってＮＰＣを移動させる。上記３つの決定される経路は、従来の最短経路探索アルゴリズムを用いて決定される最短経路であることが好ましい。ＮＰＣの移動が終了すると、再び経路の決定とＮＰＣの移動をＮＰＣが最終目標位置に到達するまで繰り返す。ただし、局所的移動経路決定手段４０８が上記３つの経路をすべて決定した後、移動制御手段４０３が決定された経路に従ってＮＰＣを移動させてもよい。なお、移動開始位置と移動目標位置が隣接するログブロック内にある場合は、小目的地は存在しない。この場合は、移動開始位置から移動目標位置までの経路を探索する。
【００６０】
ここで移動経路の学習及び決定に関して以下に詳細に説明する。図５ａは、ログブロックによる移動経路を学習する様子を示し、図５ｂは、学習した経路をナビブロック上で再現する様子を示す。図５ａと図５ｂが示すように、本発明においては、比較的疎な３Ｄメッシュであるログメッシュと、比較的密な３Ｄメッシュであるナビメッシュとを用いる。ここで図５ａに示す各々の升目はログブロックに対応し、それぞれが図５ａに示すように座標位置を有する。また図５ｂに示す各々の升目はナビブロックに対応し、それぞれが座標位置を有する。説明を簡単にするため、これらの図は二次元的に表示しているが、３Ｄメッシュは３次元データであり、好ましくは高低に関する情報も含む。
【００６１】
具体的には、図５ａは、プレイヤキャラクタのひとつながりの移動経路について、移動開始位置から移動終了位置までの移動経路を学習する様子を示す。図５ａにおいては、左上から右下へ移動している。ここでは説明を簡単にするために、ログブロックの位置における移動開始位置（０，０）から移動終了位置（２，２）までの移動経路を学習する様子のみを表すが、実際にはあらゆるログブロックの位置が移動開始位置及び移動終了位置となりえ、その間の移動経路が学習されうる。経路５０３〜５０７は、プレイヤ（人間）により操作されたプレイヤキャラクタの移動経路を示し、経路５０８は、最短経路を示す。図５ａから分かるように、人間の移動履歴では大きく迂回する経路が頻出している。本発明においては、プレイヤキャラクタの移動履歴を取得するのにログブロックを用いているため、履歴ごとに多少のずれがあっても、同一の場所への移動履歴として積算することができる。具体的には、表１に示すように、ログメッシュを構成するログブロックごとに移動経路を分割し、移動履歴の頻度を積算することができる。表１は、経路頻度情報データベースの１つの実施形態である。表１に示される各座標はログブロックの位置に対応するものである。ここで、Originは、移動開始位置であり、Destinationは、移動終了位置である。Path_originは、この移動経路の部分パスの開始位置であり、Path_destは、部分パスの終了位置である。そしてFrequencyが、OriginからDestinationへの移動においてこの部分パスを通過した頻度である。このようにして、ある地点から別の地点へ移動する際に辿った経路を、大局的に学習することができる。前述のとおり、ここでは説明を簡単にするために、表１はOrigin（０，０）及びDestination（２，２）の組み合わせのみを記載するが、実際には学習したすべてのOriginとDestinationの組み合わせを表１は含むことができる。
【表１】
0005887458.tif 000002
【００６２】
図５ｂは、移動開始決定手段４０６が、ＮＰＣの移動を決定し、移動開始位置５０１及び移動目標位置５０２を決定した場合において、図５ａにより学習した経路に基づいてＮＰＣを移動させる経路を決定する様子を示す。具体的には、経路頻度情報データベースに対して、移動開始位置（ＮＰＣの現在位置）であるログブロックの位置（０，０）及び移動目標位置であるログブロックの位置（２，２）を照会し、それら２地点を形成する部分パスのうち、最も頻度が高い列を抽出する。この場合、Origin（０，０）及びDestination（２，２）の移動経路において、Path_origin（０，０）からの部分パスのうち最も頻度が高い経路は、Path_dest（０，１）への部分パスである。続いてPath_origin（０，１）からの部分パスのうち最も頻度が高い経路は、Path_dest（０，２）への部分パスである。同様の処理を繰り返し、Path_origin（０，０）及びPath_origin（０，１）、Path_origin（０，１）及びPath_origin（０，２）、Path_origin（０，２）及びPath_origin（１，２）、並びにPath_origin（１，２）及びPath_origin（２，２）の部分パスを抽出することにより、ログブロックの位置の順番で表される大局的移動経路｛（０，０）、（０，１）、（０，２）、（１，２）、（２，２）｝を決定する。この大局的移動経路から、図５ｂに示すように小目的地５０９を生成する。小目的地５０９の位置は、大局的移動経路を構成するログブロックのうち、移動開始位置５０１及び移動目標位置５０２を含まないログブロック内の任意のナビブロックの位置であり、大局的移動経路が決定された後に選択される。
【００６３】
続いて決定された大局的移動経路におけるログブロックの順番に従って、（１）移動開始位置５０１から大局的移動経路上の次のログブロック（０，１）内の小目的地位置５０９までの経路を決定し、（２）ログブロック（０，１）内の小目的地位置５０９から大局的移動経路上の次のログブロック（０，２）内の小目的地位置５０９までの経路を決定し、ログブロック（０，２）内の小目的地位置５０９から大局的移動経路上の次のログブロック（１，２）内の小目的地位置５０９までの経路を決定し、（３）ログブロック（１，２）内の小目的地位置５０９から大局的移動経路上の次のログブロック（２，２）内の移動目標位置５０２までの経路を決定する。小目的地位置間の移動経路（局所的移動経路）の探索には、好ましくは従来の最短経路探索アルゴリズムを用いることで、最短経路を決定する。このように決定された局所的移動経路に従ってＮＰＣを移動させる。なおＮＰＣの移動については、局所的移動経路を決定するごとにＮＰＣを移動させ、その後局所的移動経路の決定とＮＰＣの移動とを繰り返し行うようにしてもよいし、すべての局所的移動経路を決定した後にＮＰＣを移動させてもよい。ここで、小目的地位置間（部分パスの開始位置から部分パスの終了位置）の移動経路は、対象の２つの小目的地位置のあるログブロック以外のログブロックを通過しないようにする必要がある。さもなければ、ＮＰＣは決定された大局的移動経路を通らないこととなるからである。したがって、決定された大局的移動経路上における隣接するログブロック内のみを通る経路を確保できるように、小目的地位置を選択することが好ましい。これらは移動開始位置から小目的地位置、又は小目的地位置から移動目標位置への移動においても同様である。
【００６４】
このように、比較的疎な３Ｄメッシュであるログメッシュを構成するログブロックと、比較的密な３Ｄメッシュであるナビメッシュを構成するナビブロックとを用いることにより、自然な経路探索を実現することができる。
【００６５】
記憶手段４０９は、プログラムやデータ等を記憶部２０４又は３０４へ格納する機能を有する。各種データベースへ蓄積することもできる。なお、移動経路学習手段４０４は、記憶手段４０９の一部とみなすこともできる。
【００６６】
通信手段４１０は無線通信、有線通信を行う機能を有する。記憶手段４０９は、通信手段４１０を介して、サーバ、光学ディスク等からプログラム又はデータを取得して、格納することができる。
【００６７】
［情報処理］
本発明においてゲームシステムが提供するゲームは、プログラム２０６をサーバ２００に実行させ、かつプログラム３０６を電子装置３００に実行させることで実現される。以下に説明する処理又は動作において、処理又は動作上の矛盾が生じない限りにおいて、プログラム２０６によりサーバ２００に実行させる処理又は動作をプログラム３０６により電子装置３００に実行させることで実現させることができ、その逆もまた同様である。
【００６８】
図６は、１つの実施形態に係るシステム１００におけるサーバ２００と電子装置３００の情報処理を示すフローチャートである。電子装置３００は、プログラム３０６が実行されることでゲームを起動し（ステップ６０１）、サーバ２００との通信を開始する。例えば電子装置３００としてスマートフォンを用いる場合、プログラム３０６はゲーム用アプリを含むことができ、プレイヤは当該アプリを起動してゲームを開始することができる。これによりサーバ２００は電子装置３００を認識する（ステップ６０２）。続いてサーバ２００は、例えばプログラム２０６から、ゲームフィールドを読み込み、ゲームフィールドに関する情報を電子装置３００に送信する（ステップ６０３）。ただしプログラム３０６の実行によりゲームフィールドが読み込まれ、又は生成されてもよい。
【００６９】
続いて電子装置３００はプレイヤキャラクタを生成する（ステップ６０４）。プレイヤキャラクタは、プレイヤの選択により又はプログラムにより自動で、生成される。電子装置３００は、生成したプレイヤキャラクタ情報をサーバ２００に送信する（ステップ６０４）。サーバ２００は当該キャラクタ情報を記憶するとともに、他のプレイヤから送信されるキャラクタ情報を記憶する（ステップ６０５）。ただし、サーバ２００がすでに他のプレイヤから送信されるキャラクタ情報を記憶していた場合や他のプレイヤが存在しない場合は、ステップ６０５において他のプレイヤから送信されるキャラクタ情報を記憶しない。
【００７０】
ここでキャラクタ情報は、ゲームにおけるキャラクタの各種ステータスを示すものであり、当該時点におけるキャラクタの動作やキャラクタのゲームフィールド内の位置情報を含むことができる。電子装置３００とサーバ２００はこのようなキャラクタ情報等を含むゲーム情報をやりとりする。ただしゲームに関する情報についてのデータ構造はこれらに限定されない。
【００７１】
サーバ２００は、記憶したキャラクタ情報及びプログラム２０６等から読み込んだＮＰＣのキャラクタ情報の一部又は全部を、各電子装置３００に送信する（ステップ６０６）。
【００７２】
続いて電子装置３００は、サーバ２００からキャラクタ情報を受信し、画面や各キャラクタの各種ステータスを更新する（ステップ６０７）。受信する情報は、ゲームに関して必要な情報すべてではなく、プレイヤがゲームを操作する上で必要な情報だけでもよい。
【００７３】
ゲームの進行に伴って、プレイヤキャラクタが操作されることにより又はゲームフィールド上のイベントにより、位置情報を含むキャラクタ情報が更新される。電子装置３００は所定の間隔でプレイヤキャラクタ情報やサーバに対する送信要求などを含むゲーム情報をサーバ２００に送信する（ステップ６０８）。電子装置３００は、このように定期的にサーバ２００へ送信してもよいし、サーバ２００からの要求に応じて、ゲーム情報をサーバ２００に送信してもよい。サーバ２００は、各電子装置３００より受信したゲーム情報を記憶し（ステップ６０９）、記憶したキャラクタ情報及びプログラム２０６等から読み込んだキャラクタ情報の一部又は全部を含むゲーム情報を送信し（ステップ６１０）、電子装置３００は当該情報を受信する。サーバ２００も同様に、所定の間隔で各電子装置３００に各キャラクタ情報を含むゲーム情報を送信してもよいし、電子装置３００からの要求に応じて送信してもよい。以降は、電子装置３００がゲームを継続して実行し続ける限り（ステップ６１１）、ステップ６０７からステップ６１１を繰り返す。
【００７４】
本発明がネットワークに接続されない１つの電子装置によって実現される場合は、プログラム３０６を電子装置３００に実行させることで実現され、電子装置３００が図４に示す機能をすべて備える。この場合、図６に示すような通信は行われない。ただし図４に示す一部機能をサーバ２００が備える場合、電子装置３００はサーバ２００に接続する必要があるため、図６に示すフローチャートの一部又は全部の情報処理を含む通信を行う。
【００７５】
図７は、本発明の１つの実施形態に係るゲームシステムにおける移動経路探索の情報処理を示すフローチャートであり、サーバ２００が、移動制御手段４０３、移動経路学習手段４０４、移動経路頻度決定手段４０５、移動開始決定手段４０６、大局的移動経路決定手段４０７、及び局所的移動経路決定手段４０８を備えることを想定したフローチャートである。以下のフローチャートの処理は、図６のステップ６０７からステップ６１１が実行されるときに同時に実行されるものである。ただし、ステップ６０７からステップ６１１に組み込まれるように変形することで、１つのフローチャートの情報処理で実行されるように構成することもできる。
【００７６】
まず移動開始決定手段４０６がＮＰＣの移動を決定することで当該フローは開始し、移動開始位置（概して現在のＮＰＣの位置）と移動目標位置を決定する（ステップ７０１）。移動開始決定手段４０６は、ゲームの進行において次の場面に移行した場合や何らかのイベントが発生した場合に、目標となる敵を倒しに行くために、又は目標となるアイテムを取得するために、ＮＰＣの移動の決定し、移動開始位置及び移動目標位置を決定する。好ましくは、これらの位置は、ナビメッシュデータベースを適宜参照することで、ナビブロックの位置として決定する。
【００７７】
続いて、大局的移動経路決定手段４０７が、決定された移動開始位置及び移動目標位置について、移動経路頻度決定手段４０５により決定された当該移動経路の頻度の高さに基づいて、当該移動開始位置から当該移動目標位置までの大局的移動経路を決定する（ステップ７０２）。
【００７８】
続いて、局所的移動経路決定手段４０８が、大局的移動経路決定手段により決定された大局的移動経路を構成するログブロックのうち、移動開始位置及び移動目標位置を含まないログブロック内の任意のナビブロックの位置を小目的地位置として決定する（ステップ７０３）。ただし、移動開始位置と移動目標位置が隣接するログブロック内にある場合は、小目的地は存在しないため、当該決定は行なわれない。小目的地位置を決定した後、移動開始位置から移動経路上の次のログブロック内の小目的地位置までの経路を探索する（ステップ７０４）。前述のとおり、ここでの経路探索は最短経路探索であるのが好ましい。小目的地が存在しない場合は、移動開始位置から移動目標位置までの経路を探索する。
【００７９】
続いて、局所的移動経路決定手段４０８は、探索して経路を決定できたかを判断する（ステップ７０５）。経路が決定できない場合とは、経路探索対象の２つの位置を通る経路が見つからなかった場合や、経路は見つかったものの、見つかった経路が２つの位置の各々が位置するログブロック以外のログブロックを通過するものである場合である。経路を決定できた場合はステップ４０６へ進むが、経路を決定できなかった場合は、ＮＰＣを移動させることができないため、図７に示す情報処理のフローを終了するか、又は再度ステップ７０２若しくは７０３へ戻る（図示せず）。経路を決定できなかった場合には、当該事象を管理者へ報告するように構成することもできる。
【００８０】
経路が決定されると、移動制御手段４０３が、決定された経路に従ってＮＰＣを移動させる（ステップ７０６）。ＮＰＣの移動が終了すると、移動目標位置へ到達したかどうかを判断する（ステップ７０７）。到達した場合は図７に示す情報処理のフローを終了する。到達していない場合は、ステップ７０４へ戻り、ＮＰＣが現在いる小目的地位置から移動経路上の次のログブロック内の小目的地位置又は移動目標位置までの経路を探索し、ステップ７０５へ進み、これらの処理をＮＰＣが移動目標位置に到達するまで繰り返す。
【００８１】
図７に示す情報処理のフローは、ステップ７０１をトリガーとしてゲームプログラムのメインループからの呼び出しにより実行されるか、又はゲームプログラムのメインループの一部として実行される。ゲームプログラムのメインループにおいては様々な割り込み処理が存在し、所定の割り込み処理が実行されると、図７に示す情報処理は終了する。それは例えば、ＮＰＣが敵であるプレイヤキャラクタと遭遇した場合や、最終目的位置へ到達する前にゲームのステージが終了するなどゲームの場面ステータスが変更された場合などである。
【００８２】
［システムアーキテクチャ］
上記のとおり、本実施形態に係るシステムは、１つの電子装置によっても、ネットワークを介して複数の電子装置が接続されるシステムによっても実現することができる。当該システムは、図４に示す機能を有するものであるが、１つの実施形態に係るシステムアーキテクチャ８００は、図８に示す９つのモジュールから構成することができる。このようにモジュール化を行うことにより、一部のモジュールを変更して各種のゲームに適用することが可能になる。
【００８３】
インプットモジュール８０１は、ゲームが実行されている端末のユーザインターフェイスを通じて人間からの入力を受け付けるモジュールである。既存のゲームシステムが有するインプット・イベント・ハンドラに相当し、入力受付手段４０１に対応する機能を有する。
【００８４】
移動制御モジュール８０２は、移動可能な領域のチェックや移動速度など、プレイヤキャラクタの移動を制御するモジュールであり、移動制御手段４０３に対応する機能を有する。プレイヤキャラクタの移動制御には、ナビメッシュＤＢ内に格納されているナビブロックの情報が必要であるため、適宜ナビメッシュＤＢを参照する。
【００８５】
パスフリークエンシーカルキュレータ８０３は、プレイヤキャラクタのひとつながりの移動経路を、ログメッシュを構成するログブロックごとに、頻度を積算するモジュールであり、移動経路頻度決定手段４０５に対応する機能を有する。
【００８６】
ログメッシュＤＢ８０４は、移動経路の頻度計算を行うための、ナビメッシュよりも大きな粒度のログメッシュに関するデータを格納するデータベースである。
【００８７】
ナチュラルパスフリークエンシーＤＢ８０５は、表１に示すデータ構造の、移動経路の頻度情報を格納するデータベースであり、経路頻度情報データベースに対応する機能を有する。
【００８８】
行動決定ＡＩモジュール８０６は、ＮＰＣの行動を決定するソフトウェアモジュールであり、移動開始決定手段４０６に対応する機能を有するものである。このモジュールが、ＮＰＣの移動を決定した時に、Origin（移動開始位置）とDestination（移動目標位置）をナチュラルパスファインダ８０７へのパラメータとして入力する。
【００８９】
ナチュラルパスファインダ８０７は、ナチュラルパスフリークエンシーＤＢ８０５の中で頻度の高い経路を部分経路の列として抽出し、大局的経路探索を人間の移動経路の履歴を用いて行うモジュールであり、大局的移動経路決定手段４０７に対応する機能を有する。
【００９０】
最短パスファインダ８０８は、ナチュラルパスファインダ８０７が出力した部分経路間の移動経路を、ナビメッシュを構成するナビブロックを用いて最短経路として探索するモジュールであり、局所的移動経路決定手段４０８に対応する機能を有する。本モジュールは、（ｉ）移動目標位置に到達する、（ｉｉ）プレイヤとの会敵などの割り込みがある、のいずれかの条件を満たすまで、経路探索を繰り返し、ＮＰＣを移動させる。
【００９１】
ナビメッシュＤＢ８０９は、ナビメッシュに関するデータを格納するデータベースである。
【００９２】
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【符号の説明】
【００９３】
１００  システム
１０１  ネットワーク
１５０  データベース
２００  サーバ
２０１、３０１  処理部
２０２、３０２  表示部
２０３、３０３  入力部
２０４、３０４  記憶部
２０５、３０５  通信部
２０６、３０６  プログラム
２０７、３０７  データベース
２１０、３１０  バス
３００  電子装置
４０１  入力受付手段
４０２  画面表示手段
４０３  移動制御手段
４０４  移動経路学習手段
４０５  移動経路頻度決定手段
４０６  移動開始決定手段
４０７  大局的移動経路決定手段
４０８  局所的移動経路決定手段
４０９  記憶手段
４１０  通信手段
５０１  移動開始位置
５０２  移動終了位置（移動目標位置）
５０３、５０４、５０５、５０６、５０７  経路
５０８  最短経路
５０９  小目的地
８００  システムアーキテクチャ
８０１  インプットモジュール
８０２  移動制御モジュール
８０３  パスフリークエンシーカルキュレータ
８０４  ログメッシュＤＢ
８０５  ナチュラルパスフリークエンシーＤＢ
８０６  行動決定ＡＩモジュール
８０７  ナチュラルパスファインダ
８０８  最短パスファインダ
８０９  ナビメッシュＤＢ
【要約】
【課題】ＮＰＣが人間により操作されているかのようにプレイヤが認識するように、ＮＰＣの移動経路の重み付けと決定を自動的に行う機能を提供する。
【解決手段】サーバと、サーバにネットワークを介して接続された１以上の電子装置とを備え、プレイヤにより操作されるキャラクタを共通のゲームフィールドに配置させてゲームを進行させるシステムは、ＮＰＣを移動させるための移動開始位置及び移動目標位置を決定し、１以上のプレイヤにより操作されたプレイヤキャラクタの移動開始位置から移動目標位置までのログブロックの位置の順番で表される大局的移動経路の履歴情報に基づいてプレイヤにより選択される頻度が最も高い大局的移動経路を決定し、決定された移動開始位置又は小目的地位置から、決定された大局的移動経路上の次のログブロック内の小目的地位置又は決定された移動目標位置までの経路を決定し、及び決定された経路に従ってＮＰＣを移動させる。
【選択図】図１【図１】
0005887458.tif 000003
【図２】
0005887458.tif 000004
【図３】
0005887458.tif 000005
【図４】
0005887458.tif 000006
【図５ａ】
0005887458.tif 000007
【図５ｂ】
0005887458.tif 000008
【図６】
0005887458.tif 000009
【図７】
0005887458.tif 000010
【図８】
0005887458.tif 000011