(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-22
(45)【発行日】2024-05-01
(54)【発明の名称】ビデオゲーム処理プログラム及びビデオゲーム処理システム
(51)【国際特許分類】
A63F 13/56 20140101AFI20240423BHJP
A63F 13/47 20140101ALI20240423BHJP
A63F 13/67 20140101ALI20240423BHJP
A63F 13/822 20140101ALI20240423BHJP
【FI】
A63F13/56
A63F13/47
A63F13/67
A63F13/822
(21)【出願番号】P 2019161266
(22)【出願日】2019-09-04
【審査請求日】2022-09-05
(73)【特許権者】
【識別番号】308033283
【氏名又は名称】株式会社スクウェア・エニックス
(74)【代理人】
【識別番号】100188662
【氏名又は名称】浅見 浩二
(72)【発明者】
【氏名】三宅 陽一郎
(72)【発明者】
【氏名】長谷川 誠
【審査官】遠藤 孝徳
(56)【参考文献】
【文献】特許第5441461(JP,B2)
【文献】特許第5234716(JP,B2)
【文献】国際公開第2019/122805(WO,A1)
【文献】特許第5350813(JP,B2)
【文献】米国特許出願公開第2007/0043803(US,A1)
【文献】特開2013-6269(JP,A)
【文献】特許第5779735(JP,B1)
【文献】米国特許出願公開第2015/0254564(US,A1)
【文献】特許第6360942(JP,B1)
【文献】特表2004-503351(JP,A)
【文献】特許第5891183(JP,B2)
【文献】特許第6333171(JP,B2)
【文献】米国特許出願公開第2009/0265299(US,A1)
【文献】特許第5890331(JP,B2)
【文献】特開2018-117927(JP,A)
【文献】国際公開第2018/066862(WO,A1)
【文献】伊藤毅志,「ゲーム情報学概論-ゲームを切り拓く人工知能-」,初版,株式会社コロナ社,2018年08月20日,p.186-189
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00 - 13/98
(57)【特許請求の範囲】
【請求項1】
キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、前記プランに基づいて仮想空間におけるキャラクタの行動を制御する処理をサーバに実現させるためのビデオゲーム処理プログラムであって、
前記サーバに、
複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する抽出機能と、
抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定して前記プランを生成するプランニング機能と、
プランニングした前記プランに基づいて前記キャラクタの行動を制御する制御機能と、
前記キャラクタが前記プランの途中で前記タスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る部分プランニング機能とを備え、
前記制御機能は、前記部分修正プランを取得した場合には、当該部分修正プランに基づいて前記キャラクタの行動を制御する
ビデオゲーム処理プログラム。
【請求項2】
前記部分プランニング機能は、失敗した際に実行していたメソッドを含むコンパウンドタスクにおいて部分プランニングに失敗した場合、前記プランにおいて失敗した当該コンパウンドタスクよりも所定階層前段に位置するコンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る
請求項1に記載のビデオゲーム処理プログラム。
【請求項3】
最初に失敗した前記コンパウンドタスクよりも所定階層だけ前段に位置するコンパウンドタスクを出発点タスクとした前記部分修正プランを実行して失敗した場合、前記プランニング機能に基づいて前記ドメインのルートタスクからプランニングし直す
請求項2に記載のビデオゲーム処理プログラム。
【請求項4】
通信ネットワークと、サーバと、ユーザ端末とを備え、キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、前記プランに基づいて仮想空間におけるキャラクタの行動を制御する処理をユーザ端末に実現させるためのビデオゲーム処理システムであって、
複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する抽出手段と、
抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定して前記プランを生成するプランニング手段と、
プランニングした前記プランに基づいて前記キャラクタの行動を制御する制御手段と、
前記キャラクタが前記プランの途中で前記タスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る部分プランニング手段とを含み、
前記制御手段は、前記部分修正プランを取得した場合には、当該部分修正プランに基づいて前記キャラクタの行動を制御する
ビデオゲーム処理システム。
【請求項5】
キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、前記プランに基づいて仮想空間におけるキャラクタの行動を制御する処理をユーザ端末に実現させるためのビデオゲーム処理プログラムであって、
前記ユーザ端末に、
複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する抽出機能と、
抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定して前記プランを生成するプランニング機能と、
プランニングした前記プランに基づいて前記キャラクタの行動を制御する制御機能と、
前記キャラクタが前記プランの途中で前記タスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る部分プランニング機能とを備え、
前記制御機能は、前記部分修正プランを取得した場合には、当該部分修正プランに基づいて前記キャラクタの行動を制御する
ビデオゲーム処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態の少なくとも1つは、キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、プランに基づいて仮想空間におけるキャラクタの行動を制御する処理をサーバに実現させるためのビデオゲーム処理プログラム及びビデオゲーム処理システムに関する。
【背景技術】
【0002】
従来、ビデオゲームにおいてキャラクタを移動させるための技術が種々提案されている。
【0003】
このような技術には、ビデオゲームを構成する仮想空間に関する位置情報を用いてキャラクタの移動経路を探索するものがあり、ナビゲーションメッシュとウェイポイントが利用される。そして、移動経路の探索に要する処理負荷の増大を抑制するために、探索領域の所定範囲に配される経由候補位置の間隔よりも、所定範囲外に配される経由候補位置の間隔の方が大きくなるように、探索領域の経由候補位置の配置を決定するものもある(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、ビデオゲームにおいてユーザの操作対象外のキャラクタに実行させるべきタスクを自動で決定してキャラクタの制御を行う方法として、階層型タスクネットワークを用いることが行われてきた。階層型タスクネットワークは、所定の条件下において実行され得るタスクの集合をドメインとして保持し、その時点でのワールドステートの状況を把握して、ワールドステートの状況に応じた最適なタスクを選択して適切な実行順序で実行させるようにプランを決定することができる。
【0006】
階層型タスクネットワークを用いることにより、キャラクタが行動する仮想空間の状況など変化する環境に応じた最適行動をその都度プランニングできるようになる。すなわち、キャラクタ制御のためのAIを導入するにあたり開発者が予め全てのタスク間の関係性についてツリー構造のように接続関係を決定する必要がなくなるため、開発者の負担が軽減されるというメリットがある。他方で、階層型タスクネットワークによってプランを作成する処理と、プランニングされたプランを実行する処理は別な処理であるため、従来、プランの途中のタスクで失敗した場合には、もう一度最初からプランニングし直していた。この場合、当該プランに基づいて制御されるキャラクタを客観的に観察すると、実行しようとして失敗した行動と脈絡のない行動を突如実行し始めたように見える、すなわち不自然な行動を行っているように見えてしまうおそれがあった。
【0007】
本発明の少なくとも1つの実施形態の目的は、制御対象のキャラクタの行動が自然な行動に見えるような階層型タスクネットワークによるプランニングを実行可能なビデオゲーム処理プログラム及びビデオゲーム処理装置を提供することである。
【課題を解決するための手段】
【0008】
非限定的な観点によると、本発明の一実施形態に係るビデオゲーム処理プログラムは、キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、前記プランに基づいて仮想空間におけるキャラクタの行動を制御する処理をサーバに実現させるためのビデオゲーム処理プログラムであって、前記サーバに、複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する抽出機能と、抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定して前記プランを生成するプランニング機能と、プランニングした前記プランに基づいて前記キャラクタの行動を制御する制御機能と、前記キャラクタが前記プランの途中で前記タスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る部分プランニング機能とを備え、前記制御機能は、前記部分修正プランを取得した場合には、当該部分修正プランに基づいて前記キャラクタの行動を制御することを特徴とする。
【0009】
非限定的な観点によると、本発明の一実施形態に係るビデオゲーム処理システムは、通信ネットワークと、サーバと、ユーザ端末とを備え、キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、前記プランに基づいて仮想空間におけるキャラクタの行動を制御する処理をユーザ端末に実現させるためのビデオゲーム処理システムであって、複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する抽出手段と、抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定して前記プランを生成するプランニング手段と、プランニングした前記プランに基づいて前記キャラクタの行動を制御する制御手段と、前記キャラクタが前記プランの途中で前記タスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る部分プランニング手段とを含み、前記制御手段は、前記部分修正プランを取得した場合には、当該部分修正プランに基づいて前記キャラクタの行動を制御することを特徴とする。
【0010】
非限定的な観点によると、本発明の一実施形態に係るビデオゲーム処理プログラムは、キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、前記プランに基づいて仮想空間におけるキャラクタの行動を制御する処理をユーザ端末に実現させるためのビデオゲーム処理プログラムであって、前記ユーザ端末に、複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する抽出機能と、抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定して前記プランを生成するプランニング機能と、プランニングした前記プランに基づいて前記キャラクタの行動を制御する制御機能と、前記キャラクタが前記プランの途中で前記タスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る部分プランニング機能とを備え、前記制御機能は、前記部分修正プランを取得した場合には、当該部分修正プランに基づいて前記キャラクタの行動を制御することを特徴とする。
【発明の効果】
【0011】
本願の各実施形態により1または2以上の不足が解決される。
【図面の簡単な説明】
【0012】
【
図1】本発明の実施形態の少なくとも一つに対応するビデオゲーム処理システムの構成の例を示すブロック図である。
【
図2】本発明の実施形態の少なくとも一つに対応するサーバ装置の構成を示すブロック図である。
【
図3】本発明の実施形態の少なくとも一つに対応するキャラクタ制御処理の例を示すフローチャートである。
【
図4】本発明の実施形態の少なくとも一つに対応するキャラクタ制御処理におけるサーバ側の動作の例を示すフローチャートである。
【
図5】本発明の実施形態の少なくとも一つに対応するキャラクタ制御処理における端末側の動作の例を示すフローチャートである。
【
図6】本発明の実施形態の少なくとも一つに対応するサーバ装置の構成を示すブロック図である。
【
図7】本発明の実施形態の少なくとも一つに対応するキャラクタ制御処理の例を示すフローチャートである。
【
図8】本発明の実施形態の少なくとも一つに対応するサーバ装置の構成を示すブロック図である。
【
図9】本発明の実施形態の少なくとも一つに対応するキャラクタ制御処理の例を示すフローチャートである。
【
図10】本発明の実施形態の少なくとも一つに対応するサーバ装置の構成を示すブロック図である。
【
図11】本発明の実施形態の少なくとも一つに対応するキャラクタ制御処理の例を示すフローチャートである。
【
図12】本発明の実施形態の少なくとも一つに対応する階層型タスクネットワークによるプランニングの概要について説明するための説明図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態の例について図面を参照して説明する。なお、以下で説明する各実施形態の例における各種構成要素は、矛盾等が生じない範囲で適宜組み合わせ可能である。また、ある実施形態の例として説明した内容については、他の実施形態においてその説明を省略している場合がある。また、各実施形態の特徴部分に関係しない動作や処理については、その内容を省略している場合がある。さらに、以下で説明する各種フローを構成する各種処理の順序は、処理内容に矛盾等が生じない範囲で順不同である。
【0014】
[第1の実施形態]
図1は、本発明の一実施の形態におけるビデオゲーム処理システム100の構成の例を示すブロック図である。
図1に示すように、ビデオゲーム処理システム100は、サーバ装置10と、ビデオゲーム処理システムのユーザが使用するユーザ端末201~20n(nは任意の整数。以下、これらを代表して単にユーザ端末20と表現する場合がある。)とを含む。なお、ビデオゲーム処理システム100の構成はこれに限定されず、単一のユーザ端末を複数のユーザが使用する構成としてもよいし、複数のサーバ装置を備える構成としてもよい。
【0015】
サーバ装置10と複数のユーザ端末201~20nは、それぞれインターネットなどの通信ネットワーク30に接続されている。なお、図示しないが、複数のユーザ端末201~20nは、例えば、通信業者によって管理される基地局と無線通信回線によるデータ通信を行うことによって、通信ネットワーク30と接続する。
【0016】
ビデオゲーム処理システム100は、サーバ装置10と複数のユーザ端末201~20nとを備えることにより、ユーザの操作に応じて各種処理を実行するための各種機能を実現する。
【0017】
サーバ装置10は、ビデオゲーム処理システム100の管理者によって管理され、複数のユーザ端末201~20nに対して各種処理に関する情報を提供するための各種機能を有する。本例において、サーバ装置10は、WWWサーバなどの情報処理装置によって構成され、各種情報を格納する記憶媒体を備える。なお、サーバ装置10は、制御部や通信部などコンピュータとして各種処理を行うための一般的な構成を備えるが、ここでの説明は省略する。また、ビデオゲーム処理システム100においては、複数のユーザ端末201~20nそれぞれにかかる処理負荷を軽減させるといった観点から、各種情報はサーバ装置10が管理することが好ましい。ただし、各種情報を記憶する記憶部は、サーバ装置10がアクセス可能な状態で記憶領域を備えていればよく、例えば専用の記憶領域をサーバ装置10の外部に有する構成とされていてもよい。
【0018】
複数のユーザ端末201~20nは、それぞれ、ユーザによって管理され、例えば携帯電話端末やPDA(Personal Digital Assistants)などの通信端末が挙げられ、ユーザが動画及び/又は静止画の撮影を行うためのカメラ装置を搭載しており、かつ、撮影画像データ等を表示するためのディスプレイを備えた構成である必要がある。ユーザ端末の構成の他の例には、スマートウォッチなどの所謂ウェアラブルデバイスや、ウェアラブルデバイスと通信端末等との組み合わせがある。また、カメラ装置は、光学式カメラの他、3次元カメラ装置を併用するものであってもよい。また、ユーザ端末201~20nは、描画情報を入力するためのマウス、タッチパネル、タッチペン等の入力手段を備えている。
【0019】
また、複数のユーザ端末201~20nは、それぞれ、通信ネットワーク30に接続し、サーバ装置10との通信を行うことにより各種処理を実行するためのハードウェアおよびソフトウェアを備える。なお、複数のユーザ端末201~20nそれぞれは、サーバ装置10を介さずに互いに直接通信を行うこともできる構成とされていてもよい。
【0020】
情報処理を行う過程においては、サーバ装置10は適宜ユーザ端末201~20nに対して処理過程を送信するものとし、ユーザ端末201~20n側では、受信した処理過程の内容に基づいた画面内容を表示装置の表示画面に表示させるものとする。画面内容の生成は、サーバ装置10側で行ってもよいし、ユーザ端末201~20n側で行ってもよい。
【0021】
図2は、本発明の実施形態の少なくとも一つに対応するサーバ装置の構成を示すブロック図である。
図2に示すように、サーバ装置10Aは、抽出部11と、プランニング部12と、制御部13、部分プランニング部14と、記憶部15とを少なくとも備える。
【0022】
抽出部11は、複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する機能を有する。前提として、階層型タスクネットワークでは、特定の状況下の仮想空間をワールド、ワールドの状態をワールドステート、特定の状況下において選択され得るタスクの集合をドメインという。ドメインは、コンパウンドタスクとプリミティブタスクを含み得る。ここで、コンパウンドタスクとは、階層型タスクネットワークにおいて実行されるタスクの1つであってタスクが達成すべき結果に至る方法を記述したメソッドを複数持つものをいう。メソッドとは、自身が選ばれるためのコンディションと、選ばれたときのタスク(への参照)のリストを持つものをいう。メソッドは、コンディションと、コンパウンドタスクとプリミティブタスクの何れかに対する参照であるリストとを持つ。プリミティブタスクとは、実際に操作対象に影響を与えるオペレータを含むタスクのことをいう。プリミティブタスクは、実行するためのコンディションと、実行する内容を表すオペレータと、実行した時ワールドステートへの影響(エフェクト)とを持つ。オペレータとは、実際の処理を行う単一の行動(アクション)のことをいう。この抽出部11では、プランニング時点でのワールドステートに適したドメインからプランニングの対象となる複数のタスクを抽出する。また、この抽出部11において、ドメイン全体をそのまま抽出するようにしてもよい。
【0023】
プランニング部12は、抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定してプランを生成する機能を有する。プランの生成は、プラナー(Planner)によって実行される。プラナーとは、ドメインに含まれる複数のタスク(抽出した複数のタスク)について適宜ワールドステートを参照・編集するシミュレーションを実行しつつタスクのリストにする機能のことをいう。ドメインに含まれるタスクのうち、必ず最初に検討されるドメイン内の最上位タスクのことをルートタスクという。プランニング部12では、ドメインのルートタスクからプランニングが開始されて、その時のワールドステートに基づいてプランが生成される。
【0024】
制御部13は、プランニングしたプランに基づいてキャラクタの行動を制御する機能を有する。ここで、キャラクタとは、階層型タスクネットワークによって生成されたプランに基づいて行動制御を行う対象のことをいう。例えば、ユーザが操作不能なキャラクタ(ノンプレイヤキャラクタ)が該当する。プラン生成時のワールドステートへの影響はあくまでシミュレーション段階でのものであるので、実際にビデオゲーム内のキャラクタにプランに基づく行動を実行させた場合、プラン通りに全てのタスクを実行できるとは限らない。プランの実行順にキャラクタの行動を順次制御し、プラン通りに全てのタスクを実行できた場合はそのプランが正常終了であると判定してそのプランを終了し、プランの何れかのタスクにて実行に失敗した場合は何れのタスクで実行に失敗したかを制御部13において記憶する。
【0025】
また、制御部13は、後述する部分プランニング部14において部分プランニングを行った結果として部分修正プランを得た場合には、当該部分修正プランに基づいてキャラクタの行動を制御する機能を有する。
【0026】
部分プランニング部14は、キャラクタがプランの途中でタスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る機能を有する。コンパウンドタスクに複数のメソッドが含まれる場合、状況に応じたメソッドの選択条件や、特定の条件を満たさない場合に優先的に選択されるメソッドの指定条件など種々の条件が設定されるが、この部分プランニング部14においてコンパウンドタスクの失敗を特定した場合には、種々の条件に関わらず、失敗したメソッドを選択対象から除外することを記録する。そして、失敗したメソッドを選択対象外とした上で当該コンパウンドタスクを出発点タスクに設定して、そのコンパウンドタスクからプランニングを行う。このように、ドメインのルートタスクではなく失敗したコンパウンドタスクを出発点タスクとしてプランニングすることを、本例では部分プランニングというものとする。
【0027】
記憶部15は、サーバ装置10において行われる様々な処理で必要なデータ及び処理の結果として得られたデータを記憶させる機能を有する。
【0028】
次に、本例のビデオゲーム処理システム100において行われる処理の流れについて説明を行う。
図3は、本発明の実施形態の少なくとも一つに対応するキャラクタ制御処理の例を示すフローチャートである。以下、制御対象が決まったことでキャラクタ制御処理が開始される場合を例にして説明する。
【0029】
図3に示すように、キャラクタ制御処理は、先ず、ビデオゲーム処理システム100がドメインの情報を取得(プランニングの対象となる複数のタスクを抽出)することによって開始される(ステップS11)。次に、ビデオゲーム処理システム100は、プランニングを実行してプランを生成する(ステップS12)。次に、ビデオゲーム処理システム100は、プランに基づいてキャラクタの制御を実行する(ステップS13)。ビデオゲーム処理システム100は、プラン通りに全てのタスクを実行できた場合はそのプランが正常終了であると判定して、当該プランに基づくキャラクタ制御処理を終了する。しかし、プランに含まれる何れかコンパウンドタスク内のメソッドの実行に失敗した場合、ビデオゲーム処理システム100は、コンパウンドタスク内のメソッドの実行に失敗した場合の処理を実行する(ステップS14)。
【0030】
コンパウンドタスク内のメソッドの実行に失敗した場合、ビデオゲーム処理システム100は、当該失敗したメソッドを選択対象から除外することを記録する。次に、ビデオゲーム処理システム100は、失敗したメソッドを選択対象外とした上で当該コンパウンドタスクを出発点タスクに設定して部分プランニングを実行する。そして、ビデオゲーム処理システム100は、部分プランニングによって得られた部分修正プランに基づいてキャラクタの行動制御を実行する。
【0031】
図4は、本発明の実施形態の少なくとも一つに対応するキャラクタ制御処理におけるサーバ側の動作の例を示すフローチャートである。ここでは、システム100におけるサーバ装置10Aの動作について説明する。
【0032】
図4に示すように、キャラクタ制御処理は、先ず、サーバ装置10Aがドメインの情報を取得(プランニングの対象となる複数のタスクを抽出)することによって開始される(ステップS101)。次に、サーバ装置10Aは、プランニングを実行してプランを生成する(ステップS102)。次に、サーバ装置10Aは、プランに基づいてキャラクタの制御を実行する(ステップS103)。サーバ装置10Aは、プラン通りに全てのタスクを実行できた場合はそのプランが正常終了であると判定して、当該プランに基づくキャラクタ制御処理を終了する。しかし、プランに含まれる何れかコンパウンドタスク内のメソッドの実行に失敗した場合、サーバ装置10Aは、コンパウンドタスク内のメソッドの実行に失敗した場合の処理を実行する(ステップS104)。コンパウンドタスク内のメソッドの実行に失敗した場合、サーバ装置10Aは、当該失敗したメソッドを選択対象から除外することを記録する。次に、サーバ装置10Aは、失敗したメソッドを選択対象外とした上で当該コンパウンドタスクを出発点タスクに設定して部分プランニングを実行する。そして、サーバ装置10Aは、部分プランニングによって得られた部分修正プランに基づいてキャラクタの行動制御を実行する。
【0033】
図5は、本発明の実施形態の少なくとも一つに対応するキャラクタ制御処理におけるユーザ端末側の動作の例を示すフローチャートである。なお、ユーザ端末20の構成については、サーバ装置10Aから各種情報を受信することを除きサーバ装置10の構成と同様の機能を備えるものであるため、重複説明を避ける観点から記載を省略する。
【0034】
図5に示すように、キャラクタ制御処理は、先ず、ユーザ端末20がドメインの情報を取得(プランニングの対象となる複数のタスクを抽出)することによって開始される(ステップS201)。次に、ユーザ端末20は、プランニングを実行してプランを生成する(ステップS202)。次に、ユーザ端末20は、プランに基づいてキャラクタの制御を実行する(ステップS203)。ユーザ端末20は、プラン通りに全てのタスクを実行できた場合はそのプランが正常終了であると判定して、当該プランに基づくキャラクタ制御処理を終了する。しかし、プランに含まれる何れかコンパウンドタスク内のメソッドの実行に失敗した場合、ユーザ端末20は、コンパウンドタスク内のメソッドの実行に失敗した場合の処理を実行する(ステップS204)。コンパウンドタスク内のメソッドの実行に失敗した場合、ユーザ端末20は、当該失敗したメソッドを選択対象から除外することを記録する。次に、ユーザ端末20は、失敗したメソッドを選択対象外とした上で当該コンパウンドタスクを出発点タスクに設定して部分プランニングを実行する。そして、ユーザ端末20は、部分プランニングによって得られた部分修正プランに基づいてキャラクタの行動制御を実行する。
【0035】
以上に説明したように、第1の実施形態の一側面として、サーバ装置10Aが、抽出部11と、プランニング部12と、制御部13、部分プランニング部14とを備える構成とし、複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出し、抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定してプランを生成し、プランニングしたプランに基づいてキャラクタの行動を制御し、キャラクタがプランの途中でタスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得るようにし、部分修正プランを取得した場合には、当該部分修正プランに基づいてキャラクタの行動を制御するようにしたので、制御対象のキャラクタの行動が自然な行動に見えるようなキャラクタ制御が可能となる。
【0036】
すなわち、従来はプランの途中のタスクで失敗した場合はもう一度最初からプランニングし直していたため、当該プランに基づいて制御されるキャラクタを客観的に観察すると実行しようとして失敗した行動と脈絡のない別の行動を突如実行し始めたように見えてしまうおそれがあったが、本例によれば、コンパウンドタスクで1つのメソッドについて失敗したとしても他のメソッドを実行する部分修正プランに基づいてキャラクタ制御が実行されることになるため、失敗した行動と関連性の高い行動を実行するようにキャラクタが制御され、結果として、キャラクタの行動が自然な行動に見えるようなキャラクタ制御が実現される。
【0037】
[第2の実施形態]
図6は、本発明の実施形態の少なくとも一つに対応するサーバ装置の構成を示すブロック図である。
図6に示すように、サーバ装置10Bは、抽出部11と、プランニング部12と、制御部13、部分プランニング部14Bと、記憶部15とを少なくとも備える。
【0038】
部分プランニング部14Bは、キャラクタがプランの途中でタスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る機能を有する。また、部分プランニング部14Bは、失敗した際に実行していたメソッドを含むコンパウンドタスクにおいて部分プランニングに失敗した場合、プランにおいて失敗した当該コンパウンドタスクよりも所定階層前段に位置するコンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る機能を有する。ここで、失敗した際に実行していたメソッドを含むコンパウンドタスクにおいて部分プランニングに失敗するとは、プランにおいて失敗したメソッドを選択対象外とした上でそのコンパウンドタスクを出発点タスクに設定して部分プランニングを実行したがそのときのワールドステートの条件では他のメソッドを選択し得なかった場合、若しくは、部分プランニングを実行して順次得た部分修正プランに基づいてキャラクタ制御を実行したが当該コンパウンドタスクが含む全てのメソッドについて実行失敗した場合のことをいう。本例においては、これらの状況をコンパウンドタスク全体について失敗したというものとする。また、失敗したコンパウンドタスクよりも所定階層前段に位置するコンパウンドタスクとは、プランニング部12において生成したプランに基づいてキャラクタ制御を最初に実行した際に一度は成功している所定階層前段に位置するコンパウンドタスクのことをいう。所定階層の数はどのように設定してもよいが、制御対象のキャラクタが不自然な行動をしているように見えないようにするためには、多い階層数に設定するよりは少ない階層数に設定する方が好ましい。なお、所定階層前段に位置するコンパウンドタスクを出発点タスクに設定して部分プランニングを実行する場合において、プランに基づいてキャラクタ制御を最初に実行した際に一度は成功したメソッドを選択対象外とするか否かについては適宜設定可能であるが、全体について失敗したコンパウンドタスクに向かうルートと異なるルートをとらせるためには、所定階層前段に位置するコンパウンドタスクにおいて最初に選択されたメソッドを選択対象外とすることが好ましい。
【0039】
図7は、本発明の実施形態の少なくとも一つに対応するキャラクタ制御処理におけるサーバ側の動作の例を示すフローチャートである。ここでは、システム100におけるサーバ装置10Bの動作について説明する。以下、制御対象が決まったことでキャラクタ制御処理が開始される場合を例にして説明する。
【0040】
図7に示すように、キャラクタ制御処理は、先ず、サーバ装置10Bがドメインの情報を取得(プランニングの対象となる複数のタスクを抽出)することによって開始される(ステップS101)。次に、サーバ装置10Bは、プランニングを実行してプランを生成する(ステップS102)。次に、サーバ装置10Bは、プランに基づいてキャラクタの制御を実行する(ステップS103)。サーバ装置10Bは、プラン通りに全てのタスクを実行できた場合はそのプランが正常終了であると判定して、当該プランに基づくキャラクタ制御処理を終了する。しかし、プランに含まれる何れかコンパウンドタスク全体について失敗した場合、サーバ装置10Bは、コンパウンドタスク全体について失敗した場合の処理を実行する(ステップS104-2)。コンパウンドタスク全体について失敗した場合、サーバ装置10Bは、当該失敗したコンパウンドタスクよりも所定階層前段に位置するコンパウンドタスクを出発点タスクに設定して部分プランニングを実行する。その際、サーバ装置10Bは、最初にプランを実行した際には成功したメソッド(全体について失敗したコンパウンドタスクに移行するメソッド)を選択対象外に設定した上で部分プランニングを実行するようにしてもよい。そして、サーバ装置10Bは、部分プランニングによって得られた部分修正プランに基づいてキャラクタの行動制御を実行する。
【0041】
以上に説明したように、第2の実施形態の一側面として、サーバ装置10Bが、抽出部11と、プランニング部12と、制御部13、部分プランニング部14Bとを備える構成とし、失敗した際に実行していたメソッドを含むコンパウンドタスクにおいて部分プランニングに失敗した場合、プランにおいて失敗した当該コンパウンドタスクよりも所定階層前段に位置するコンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得るようにしたので、制御対象のキャラクタの行動が自然な行動に見えるようなキャラクタ制御が可能となる。
【0042】
すなわち、最初のプランによるキャラクタ制御時に失敗したコンパウンドタスク全体について失敗してしまった場合に、プランニング部12によってもう一度最初からプランを生成するよりも、全体について失敗したコンパウンドタスクよりも少し階層が前段にあるコンパウンドタスクに戻る部分修正プランに基づいてキャラクタ制御を行うことで、当該キャラクタを客観的に観察すると少し前の状況に戻って行動するように見えるため、結果として制御対象のキャラクタの行動が自然な行動に見えるようなキャラクタ制御が可能となる。
【0043】
[第3の実施形態]
図8は、本発明の実施形態の少なくとも一つに対応するサーバ装置の構成を示すブロック図である。
図8に示すように、サーバ装置10Cは、抽出部11と、プランニング部12と、制御部13、部分プランニング部14Cと、記憶部15とを少なくとも備える。
【0044】
部分プランニング部14Cは、キャラクタがプランの途中でタスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る機能を有する。また、部分プランニング部14Cは、失敗した際に実行していたメソッドを含むコンパウンドタスクにおいて部分プランニングに失敗した場合、プランにおいて失敗した当該コンパウンドタスクよりも所定階層前段に位置するコンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る機能を有する。さらに、部分プランニング部14Cは、最初に失敗したコンパウンドタスクよりも所定階層だけ前段に位置するコンパウンドタスクを出発点タスクとした部分修正プランを実行して失敗した場合、プランニング機能に基づいてドメインのルートタスクからプランニングし直す機能を有する。最初に失敗したコンパウンドタスクよりも所定階層だけ前段に位置するコンパウンドタスクを出発点タスクとした部分修正プランを実行して失敗した場合とは、所定階層だけ前段に位置するコンパウンドタスク全体について失敗したことをいう。なお、最初に失敗したコンパウンドタスクから階層を戻る際の移動階層数と、ドメインのルートタスクからプランニングし直すことを決定する所定階層数はそれぞれ設定可能であり、異なる階層数に設定してもよい。例えば、コンパウンドタスク全体について失敗した際に移動する階層数は1つと設定し、ドメインのルートタスクからプランニングし直すことを決定する所定階層数は2つと設定するといったことが考えられる。
【0045】
図9は、本発明の実施形態の少なくとも一つに対応するキャラクタ制御処理におけるサーバ側の動作の例を示すフローチャートである。ここでは、システム100におけるサーバ装置10Cの動作について説明する。以下、制御対象が決まったことでキャラクタ制御処理が開始される場合を例にして説明する。
【0046】
図9に示すように、キャラクタ制御処理は、先ず、サーバ装置10Cがドメインの情報を取得(プランニングの対象となる複数のタスクを抽出)することによって開始される(ステップS101)。次に、サーバ装置10Cは、プランニングを実行してプランを生成する(ステップS102)。次に、サーバ装置10Cは、プランに基づいてキャラクタの制御を実行する(ステップS103)。サーバ装置10Cは、プラン通りに全てのタスクを実行できた場合はそのプランが正常終了であると判定して、当該プランに基づくキャラクタ制御処理を終了する。しかし、最初に失敗したコンパウンドタスクを基準として所定階層遡った点のコンパウンドタスク全体について失敗した場合、サーバ装置10Cは、所定階層遡った点のコンパウンドタスク全体について失敗した場合の処理を実行する(ステップS104-3)。所定階層遡った点のコンパウンドタスク全体について失敗した場合、サーバ装置10Cは、ドメインのルートタスクからプランニングし直す処理を実行する。そして、サーバ装置10Cは、得られたプランに基づいてキャラクタの行動制御を実行する。
【0047】
以上に説明したように、第3の実施形態の一側面として、サーバ装置10Cが、抽出部11と、プランニング部12と、制御部13、部分プランニング部14Cとを備える構成とし、最初に失敗した前記コンパウンドタスクよりも所定階層だけ前段に位置するコンパウンドタスクを出発点タスクとした部分修正プランを実行して失敗した場合、プランニング機能に基づいてドメインのルートタスクからプランニングし直すようにしたので、制御対象のキャラクタの行動が自然な行動に見えるようなキャラクタ制御が可能となる。
【0048】
すなわち、最初に失敗したコンパウンドタスクよりも所定階層だけ前段に位置するコンパウンドタスク全体に失敗した場合に、さらに所定階層だけ前段のコンパウンドタスクを出発点タスクに設定して部分プランニングすることも可能であるが、最初に失敗したコンパウンドタスクにおいて実行していたメソッドの内容とは大きく離れた内容となりキャラクタの行動に一貫性がなくなる可能性の方が高いので、このような場合にはドメインのルートタスクからプランニングし直すようにすることで、客観的に観察した場合に、一度決定した行動に関連した行動を何度かトライしたが全て失敗したので、別な行動を改めて計画したというように見えるようにキャラクタの行動を制御することが可能となる。
【0049】
[第4の実施形態]
図10は、ビデオゲーム処理システム100(
図1参照)におけるサーバ装置10の例であるサーバ装置10Dの構成を示すブロック図である。本例において、サーバ10Dは、抽出部11Dと、プランニング部12Dと、制御部13D、部分プランニング部14Dと、記憶部15Dとを少なくとも備える。なお、本例ではサーバ装置Dにおいて主に処理を実行するものとして説明を行うが、あくまで一例であり、ユーザ端末において主に処理を実行する構成であってもよいし、オフライン環境下のユーザ端末上にてプログラムを実行することで実現される構成であってもよい。
【0050】
抽出部11Dは、複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する機能を有する。
【0051】
プランニング部12Dは、抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定してプランを生成する機能を有する。
【0052】
制御部13Dは、プランニングしたプランに基づいてキャラクタの行動を制御する機能を有する。また、制御部13Dは、後述する部分プランニング部14Dにおいて部分プランニングを行った結果として部分修正プランを得た場合には、当該部分修正プランに基づいてキャラクタの行動を制御する機能を有する。
【0053】
部分プランニング部14Dは、キャラクタがプランの途中でタスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る機能を有する。また、部分プランニング部14Dは、失敗した際に実行していたメソッドを含むコンパウンドタスクにおいて部分プランニングに失敗した場合、プランにおいて失敗した当該コンパウンドタスクよりも所定階層前段に位置するコンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る機能を有する。さらに、部分プランニング部14Dは、最初に失敗したコンパウンドタスクよりも所定階層だけ前段に位置するコンパウンドタスクを出発点タスクとした部分修正プランを実行して失敗した場合、プランニング機能に基づいてドメインのルートタスクからプランニングし直す機能を有する。
【0054】
記憶部15Dは、サーバ装置10において行われる様々な処理で必要なデータ及び処理の結果として得られたデータを記憶させる機能を有する。
【0055】
図11は、本発明の実施形態の少なくとも一つに対応するキャラクタ制御処理におけるサーバ側の動作の例を示すフローチャートである。ここでは、システム100におけるサーバ装置10Dの動作について説明する。以下、制御対象が決まったことでキャラクタ制御処理が開始される場合を例にして説明する。
【0056】
図11に示すように、キャラクタ制御処理は、先ず、サーバ装置10Dがドメインの情報を取得(プランニングの対象となる複数のタスクを抽出)することによって開始される(ステップS101)。次に、サーバ装置10Dは、プランニングを実行してプランを生成する(ステップS102)。次に、サーバ装置10Dは、プランに基づいてキャラクタの制御を実行する(ステップS103)。サーバ装置10Dは、プラン通りに全てのタスクを実行できた場合はそのプランが正常終了であると判定して、当該プランに基づくキャラクタ制御処理を終了する。しかし、プランに含まれる何れかコンパウンドタスクの実行に失敗した場合、サーバ装置10Dは、コンパウンドタスク内失敗時の処理を実行する(ステップS104-4)。先ず、コンパウンドタスク内のメソッドの実行に失敗した場合、サーバ装置10Dは、当該失敗したメソッドを選択対象から除外することを記録する(失敗履歴を記憶させる)。次に、サーバ装置10Dは、失敗したメソッドを選択対象外とした上で当該コンパウンドタスクを出発点タスクに設定して部分プランニングを実行する。そして、サーバ装置10Dは、部分プランニングによって得られた部分修正プランに基づいてキャラクタの行動制御を実行する。
【0057】
部分修正プランに基づいてキャラクタ制御を実行したがそのコンパウンドタスク全体について失敗した場合、サーバ装置10Dは、当該失敗したコンパウンドタスクよりも所定階層前段に位置するコンパウンドタスクを出発点タスクに設定して部分プランニングを実行する。その際、サーバ装置10Dは、最初にプランを実行した際には成功したメソッド(全体について失敗したコンパウンドタスクに移行するメソッド)を選択対象外に設定した上で部分プランニングを実行するようにしてもよい。そして、サーバ装置10Dは、部分プランニングによって得られた部分修正プランに基づいてキャラクタの行動制御を実行する。
【0058】
所定階層遡った点のコンパウンドタスク全体について失敗した場合、サーバ装置10Dは、ドメインのルートタスクからプランニングし直す処理を実行する(プランニング部12Dで実行される)。そして、サーバ装置10Dは、得られたプランに基づいてキャラクタの行動制御を実行する。
【0059】
以上のような構成に基づくキャラクタ制御の具体例について説明を行う。一例として、3次元仮想空間において、ユーザの操作対象のキャラクタ(プレイヤキャラクタ:PC)と行動を共にする味方であってユーザの操作対象外のキャラクタ(ノンプレイヤキャラクタ:NPC)とが行動を共にするビデオゲームにおいて、NPCの行動を階層型タスクネットワーク(HTN)に基づいてプランニングする場合を想定する。PC及びNPCに与えられる任務として、例えば、敵キャラクタを狙撃する任務と、周辺を探索して宝箱等を回収する任務が与えられているものとする。ユーザは当該任務に基づいてPCを操作するが、NPCの行動は、HTNに基づいてプランニングすることで決定されたプランに基づいて行動制御がなされるものとする。
【0060】
図12は、本発明の実施形態の少なくとも一つに対応する階層型タスクネットワークによるプランニングの概要について説明するための説明図である。先ず、HTNでは、PCとNPCが行動する仮想空間の状況をワールドステートとして定義し、PC及びNPCに与えられる環境に応じたタスクの集合としてのドメインを予め登録して記憶させておく。
図12に示すように、ドメインは、複数のタスクを包含する。ドメインに基づいてプランニングを行うが、プランニングはプラナーによって実行される。プラナーは、適宜ワールドステートを参照し、また、タスク実行後のワールドステートへの影響をシミュレーションしながらプランニングを行う。プランニングの結果として、複数のタスクの実行順序を指定するプランが生成される。
【0061】
HTNによってプランを生成する処理は、先ず、サーバ装置において、敵キャラクタを狙撃する任務と、周辺を探索して宝箱等を回収する任務とが与えられた状況において実行する可能性のあるタスクの集合であるドメインを抽出する。ドメインには、ドメイン内の最上位タスクであるルートタスクが設定してあり、それ以降は、ワールドステートの状況に応じたタスクがプラナーによって適宜選択されることになる。また、プラナーには、タスクを選択するための条件付けがなされている。例えば、敵キャラクタを狙撃する任務を実行するタスクが優先的に選択され、敵キャラクタが存在しない状況などにおいて周辺を探索して宝箱等を回収する任務を実行するというような条件設定がなされているものとする。
【0062】
一例として、(1)ワールドステートの情報を取得、(2)その場で周囲の環境を観察して把握する、(3)所定範囲に移動しつつ周囲の環境を把握する、(4)発見した建物の入り口にある扉を開ける行動をとる、といったタスクが存在するものとする。(2)~(4)はそれぞれコンパウンドタスクである。例えば、(2)には、(2-1)肉眼で観察するというメソッドと、(2-2)双眼鏡を使用して観察するというメソッドがあり、(3)には、(3-1)隠れることが可能な障害物の位置まで移動して隠れながら観察するというメソッドと、(3-2)所定範囲を歩いて移動しながら観察するというメソッドがあり、(4)には、(4-1)所持している鍵で扉を開ける(正しい鍵であるかは不明)というメソッドと、(4-2)扉を破壊して開けるというメソッドと、(4-3)ピッキングによって扉を開ける(ピッキング技術を有している場合限定)というメソッドがあるものとする。これら(2)~(4)のコンパウンドタスクではそれぞれの状況に適したメソッドが選択される。また、敵キャラクタを狙撃する任務が優先されるため、(2)や(3)において敵キャラクタを発見した場合には、敵キャラクタを狙撃するための準備行動に移るためのコンパウンドタスクに移行することになる。
【0063】
HTNによってプランを生成する処理を実行した結果、(1)~(4)を順次実行するルートを含むプランが生成されたものとする。このプランに基づいてNPCの行動制御を実行した結果、途中で敵キャラクタを発見することなく、(4)の発見した建物の入り口にある扉を開ける行動をとるコンパウンドタスクに到達し、選択されたメソッドである(4-1)所持している鍵で扉を開けるメソッドを実行して失敗したものとする。従来であれば、タスクに失敗した場合は最初からプランニングし直すので、(3)の周囲の探索行動を再度実行するなど客観的に観察した時に不自然な行動をとってしまう可能性があった。しかし、本例では、(4-1)のメソッドに失敗した場合、(4-1)のメソッドを選択対象外に設定した上で(4)のコンパウンドタスクを出発点タスクに設定した上で部分プランニングを実行する。部分プランニングを実行して(4-2)又は(4-3)を実行する部分修正プランを得て、その部分修正プランに基づいてNPCの行動制御を実行した結果、扉を開けることに成功すれば、当該プラン全体が正常終了したと判定する。失敗した場合、(4)のコンパウンドタスク内の全てのメソッドを試すように部分プランニングを行う。
【0064】
(4)のコンパウンドタスク全体に失敗した場合、最初からプランニングし直すのではなく、所定階層だけ前段のコンパウンドタスク、例えば1階層前の(3)のコンパウンドタスクを出発点タスクとして部分プランニングを実行する。このとき、(3)の複数のメソッドのうち、最初に生成されたプランにおいて(4)に移行する際に実行したメソッドを選択対象外に設定してもよい。(3)から出発する部分修正プランを実行した結果、最初に失敗した扉とは異なる扉を発見して扉を開けることに成功した場合などは、部分修正プランが正常終了したと判定する。
【0065】
ここで、(3)から出発する部分修正プランにおいて(3)のコンパウンドタスク全体について失敗したものとする。全体に失敗と判定される例としては、何も探索の結果が得られない場合、探索行動を実行する前に中断事由が発生した場合(例えば、敵に狙われた場合)などが考えられる。この(3)のコンパウンドタスク全体についての失敗が、最初からプランニングし直す所定階層前段のコンパウンドタスク全体についての失敗に相当する場合、(1)に戻って最初からプランニングし直す処理を実行する。このように、コンパウンドタスクに失敗したときにその失敗したコンパウンドタスクを出発点タスクに設定して部分プランニングを行う処理と、所定階層前段のコンパウンドタスク全体について失敗したときに最初からプランニングし直す処理を使い分けることで、制御対象のNPCの行動が自然な行動に見えるようなキャラクタ制御が可能となる。
【0066】
以上に説明したように、第4の実施形態の一側面として、サーバ装置10Dが、抽出部11Dと、プランニング部12Dと、制御部13D、部分プランニング部14Dとを備える構成とし、複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出し、抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定してプランを生成し、プランニングしたプランに基づいてキャラクタの行動を制御し、キャラクタがプランの途中でタスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得るようにし、部分修正プランを取得した場合には、当該部分修正プランに基づいてキャラクタの行動を制御するようにしたので、制御対象のキャラクタの行動が自然な行動に見えるようなキャラクタ制御が可能となる。
【0067】
なお、上述した第1乃至第4の実施形態においては、コンパウンドタスクに失敗した場合に部分修正プランを生成するものとして説明を行ったが、失敗していない状況でリプランニングしてプランを置き換えるようにしてもよい。例えば、最初に生成したプランにおいて5つのタスクを実行する予定である場合に、NPCが2つ目のタスクを実行中にワールドステートの状況が変化して3つ目以降のタスクが最適ではなくなるという状況が発生し得る。この場合に、ワールドステートの状況変化に応じて新しいプランを生成した場合に、タスク内容が変更された箇所が現在NPCにより実行中のタスクよりも上位のメソッドで分岐している場合は、現プランをすべて破棄して、新しいプランに置き換えるようにする。現在NPCが実行中のタスクよりも下位のメソッドで分岐している場合、現在実行中のタスクはそのまま実行し、未実行タスク部分だけを置き換えるようにする。
【0068】
以上に説明したように、本願の各実施形態により1または2以上の不足が解決される。なお、夫々の実施形態による効果は、非限定的な効果または効果の一例である。
【0069】
なお、上述した各実施形態では、複数のユーザ端末201~20nとサーバ装置10は、自己が備える記憶装置に記憶されている各種制御プログラム(例えば、ビデオゲーム処理プログラム)に従って、上述した各種の処理を実行する。
【0070】
また、システム100の構成は、上述した各実施形態の例として説明した構成に限定されず、例えばユーザ端末が実行する処理として説明した処理の一部または全部をサーバ装置10が実行する構成としてもよいし、サーバ装置10が実行する処理として説明した処理の一部または全部を複数のユーザ端末201~20nの何れかが実行する構成としてもよい。また、サーバ装置10が備える記憶部の一部または全部を複数のユーザ端末201~20nの何れかが備える構成としてもよい。すなわち、システム100におけるユーザ端末20とサーバ装置10のどちらか一方が備える機能の一部または全部を、他の一方が備える構成とされていてもよい。
【0071】
また、プログラムが、上述した各実施形態の例として説明した機能の一部または全部を、通信ネットワークを含まない装置単体に実現させる構成としてもよい。
【0072】
[付記]
上述した実施形態の説明は、少なくとも下記発明を、当該発明の属する分野における通常の知識を有する者がその実施をすることができるように記載した。
[1]
キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、前記プランに基づいて仮想空間におけるキャラクタの行動を制御する処理をサーバに実現させるためのビデオゲーム処理プログラムであって、
前記サーバに、
複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する抽出機能と、
抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定して前記プランを生成するプランニング機能と、
プランニングした前記プランに基づいて前記キャラクタの行動を制御する制御機能と、
前記キャラクタが前記プランの途中で前記タスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る部分プランニング機能とを備え、
前記制御機能は、前記部分修正プランを取得した場合には、当該部分修正プランに基づいて前記キャラクタの行動を制御する
ビデオゲーム処理プログラム。
[2]
前記部分プランニング機能は、失敗した際に実行していたメソッドを含むコンパウンドタスクにおいて部分プランニングに失敗した場合、前記プランにおいて失敗した当該コンパウンドタスクよりも所定階層前段に位置するコンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る
[1]に記載のビデオゲーム処理プログラム。
[3]
最初に失敗した前記コンパウンドタスクよりも所定階層だけ前段に位置するコンパウンドタスクを出発点タスクとした前記部分修正プランを実行して失敗した場合、前記プランニング機能に基づいて前記ドメインのルートタスクからプランニングし直す
[2]に記載のビデオゲーム処理プログラム。
[4]
前記部分プランニング機能は、前記キャラクタがタスク実行に失敗した場合の履歴を保持するようにし、前記部分修正プランが失敗せずに正常終了するまで当該履歴を保持し続ける
[1]から[3]のうち何れかに記載のビデオゲーム処理プログラム。
[5]
[1]から[4]のうち何れかに記載のビデオゲーム処理プログラムが前記サーバに実現させる機能のうち少なくとも1つの機能を、当該サーバ装置と通信可能なユーザ端末に実現させるためのビデオゲーム処理プログラム。
[6]
[1]から[5]のうち何れかに記載のビデオゲーム処理プログラムがインストールされたサーバ。
[7]
通信ネットワークと、サーバと、ユーザ端末とを備え、キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、前記プランに基づいて仮想空間におけるキャラクタの行動を制御する処理をユーザ端末に実現させるためのビデオゲーム処理システムであって、
複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する抽出手段と、
抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定して前記プランを生成するプランニング手段と、
プランニングした前記プランに基づいて前記キャラクタの行動を制御する制御手段と、
前記キャラクタが前記プランの途中で前記タスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る部分プランニング手段とを含み、
前記制御手段は、前記部分修正プランを取得した場合には、当該部分修正プランに基づいて前記キャラクタの行動を制御する
ビデオゲーム処理システム。
[8]
前記サーバが、前記抽出手段と、前記プランニング手段と、前記制御手段と、前記部分プランニング手段とを含み、
前記ユーザ端末が、前記制御手段により制御された前記キャラクタが表示されたゲーム画面を表示装置の表示画面に出力する出力手段を含む
[7]記載のビデオゲーム処理システム。
[9]
キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、前記プランに基づいて仮想空間におけるキャラクタの行動を制御する処理をユーザ端末に実現させるためのビデオゲーム処理プログラムであって、
複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する抽出機能と、抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定して前記プランを生成するプランニング機能と、プランニングした前記プランに基づいて前記キャラクタの行動を制御する制御機能と、前記キャラクタが前記プランの途中で前記タスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る部分プランニング機能とを備え、前記制御機能は、前記部分修正プランを取得した場合には、当該部分修正プランに基づいて前記キャラクタの行動を制御する構成であるサーバから、当該サーバが備える機能に関する情報を受信して当該機能に対応する入出力を行う機能を前記ユーザ端末に
実現させるためのビデオゲーム処理プログラム。
[10]
キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、前記プランに基づいて仮想空間におけるキャラクタの行動を制御する処理をユーザ端末に実現させるためのビデオゲーム処理プログラムであって、
前記ユーザ端末に、
複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する抽出機能と、
抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定して前記プランを生成するプランニング機能と、
プランニングした前記プランに基づいて前記キャラクタの行動を制御する制御機能と、
前記キャラクタが前記プランの途中で前記タスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る部分プランニング機能とを備え、
前記制御機能は、前記部分修正プランを取得した場合には、当該部分修正プランに基づいて前記キャラクタの行動を制御する
ビデオゲーム処理プログラム。
[11]
[10]記載のビデオゲーム処理プログラムが前記ユーザ端末に実現させる機能のうち少なくとも1つの機能を、当該ユーザ端末と通信可能なサーバに実現させるためのビデオゲーム処理プログラム。
[12]
[10]または[11]記載のビデオゲーム処理プログラムがインストールされたユーザ端末。
[13]
キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、前記プランに基づいて仮想空間におけるキャラクタの行動を制御する処理を行うビデオゲーム処理方法であって、
複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する抽出処理と、
抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定して前記プランを生成するプランニング処理と、
プランニングした前記プランに基づいて前記キャラクタの行動を制御する制御処理と、
前記キャラクタが前記プランの途中で前記タスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る部分プランニング処理とを含み、
前記制御処理は、前記部分修正プランを取得した場合には、当該部分修正プランに基づいて前記キャラクタの行動を制御する
ビデオゲーム処理方法。
[14]
通信ネットワークと、サーバと、ユーザ端末とを備えるビデオゲーム処理システムが、キャラクタに実行させる行動の候補である複数のタスクを包含したドメインの中から実行順序も含めて実行すべきタスクを指定するプランを階層型タスクネットワークに基づいて生成して、前記プランに基づいて仮想空間におけるキャラクタの行動を制御する処理を行うビデオゲーム処理方法であって、
複数のメソッドが設定されたコンパウンドタスクを少なくとも1以上含んだドメインからプランニングの対象となる複数のタスクを抽出する抽出処理と、
抽出した複数のタスクについて、実行順序も含めて実行すべきタスクを決定して前記プランを生成するプランニング処理と、
プランニングした前記プランに基づいて前記キャラクタの行動を制御する制御処理と、
前記キャラクタが前記プランの途中で前記タスクに失敗した状況において当該タスクが複数のメソッドが設定されたコンパウンドタスクである場合、失敗したメソッドを選択対象から除外した上で当該コンパウンドタスクを出発点タスクとして部分的にプランニングし直して部分修正プランを得る部分プランニング処理とを含み、
前記制御処理は、前記部分修正プランを取得した場合には、当該部分修正プランに基づいて前記キャラクタの行動を制御する
ビデオゲーム処理方法。
【符号の説明】
【0073】
100 ビデオゲーム処理システム
10、10A~10D サーバ装置
11 抽出部
12 プランニング部
13 制御部
14、14B~14D 部分プランニング部
15 記憶部
20、201~20n ユーザ端末
30 通信ネットワーク