(57)【特許請求の範囲】
【請求項１】
ゲームキャラクタの制動距離を取得する第１の取得手段と、
前記ゲームキャラクタが攻撃用のモーションを再生した場合に該ゲームキャラクタの周囲において該ゲームキャラクタの攻撃部位が通過する領域を攻撃可能範囲として取得する第２の取得手段と、
前記攻撃可能範囲に基づいて、前記攻撃部位が前記ゲームキャラクタの攻撃対象と接触可能な前記ゲームキャラクタの位置を求める第１の計算手段と、
前記攻撃対象に向かって移動する前記ゲームキャラクタの経路に沿って、前記第１の計算手段が求めた位置から前記第１の取得手段が取得した制動距離だけ戻った位置を、前記攻撃対象に向かって移動する前記ゲームキャラクタが該移動の制動を開始する位置として求める第２の計算手段と、
前記制動を、前記第２の計算手段が求めた位置で開始させる手段と、
前記ゲームキャラクタの複数の攻撃用のモーションのそれぞれについて、該ゲームキャラクタが該攻撃用のモーションを再生した場合に該ゲームキャラクタの周囲において該ゲームキャラクタの攻撃部位が通過する領域を攻撃可能範囲として取得する第３の取得手段と、
前記複数の攻撃用のモーションのうち、前記ゲームキャラクタの攻撃対象の一部若しくは全部が含まれるような攻撃可能範囲に対応する１つの攻撃用のモーションを選択する選択手段と、
前記制動により前記ゲームキャラクタの移動が停止した後、前記選択手段が選択した攻撃用のモーションを再生する再生手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記第１の取得手段は、前記ゲームキャラクタの重量及び移動速度を含む特性パラメータに対応する制動距離を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の取得手段は、前記ゲームキャラクタの重量及び移動速度及び前記ゲームキャラクタが位置するゲームフィールドの属性を含む特性パラメータに対応する制動距離を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第１の計算手段は、前記攻撃可能範囲内に前記攻撃対象の一部若しくは全部が含まれるような前記ゲームキャラクタの位置を求めることを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記第１の計算手段は、前記移動の経路上の位置であって、前記攻撃可能範囲内に前記攻撃対象の一部若しくは全部が含まれるような前記ゲームキャラクタの位置を求めることを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項６】
前記第１の取得手段、前記第２の取得手段、前記第１の計算手段、前記第２の計算手段は、前記移動の前若しくは前記移動の最中に動作することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記選択手段は、前記複数の攻撃用のモーションのうち、前記攻撃対象を最も大きく含む攻撃可能範囲に対応する攻撃用のモーションを選択することを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記選択手段は、前記複数の攻撃用のモーションのうち１つをランダムに選択することを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項９】
ゲームキャラクタの制動距離を取得し、
前記ゲームキャラクタが攻撃用のモーションを再生した場合に該ゲームキャラクタの周囲において該ゲームキャラクタの攻撃部位が通過する領域を攻撃可能範囲として取得し、
前記攻撃可能範囲に基づいて、前記攻撃部位が前記ゲームキャラクタの攻撃対象と接触可能な前記ゲームキャラクタの位置を求め、
前記攻撃対象に向かって移動する前記ゲームキャラクタの経路に沿って、前記求めた位置から前記取得した制動距離だけ戻った位置を、前記攻撃対象に向かって移動する前記ゲームキャラクタが該移動の制動を開始する位置として求め、
前記制動を、前記求めた制動を開始する位置で開始させ、
前記ゲームキャラクタの複数の攻撃用のモーションのそれぞれについて、該ゲームキャラクタが該攻撃用のモーションを再生した場合に該ゲームキャラクタの周囲において該ゲームキャラクタの攻撃部位が通過する領域を攻撃可能範囲として取得し、
前記複数の攻撃用のモーションのうち、前記ゲームキャラクタの攻撃対象の一部若しくは全部が含まれるような攻撃可能範囲に対応する１つの攻撃用のモーションを選択し、
前記制動により前記ゲームキャラクタの移動が停止した後、前記選択した攻撃用のモーションを再生する
ことを特徴とする情報処理方法。
【請求項１０】
コンピュータを請求項１乃至８の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム、を格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームキャラクタの移動制御技術に関するものである。
【背景技術】
【０００２】
近年、ゲームで用いられる人工知能には、より抽象的な思考が求められると同時に、柔軟な振る舞いが必要とされている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Damian Isla、“GDC 2005 Proceeding: Handling Complexity in the Halo 2 AI”、［online］、March 11, 2005、［平成２８年２月５日検索］、インターネット＜URL：http:／／www.gamasutra.com／view／feature／130663／gdc_2005_proceeding_handling_.php＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ゲームキャラクタＡの行動を人工知能技術を用いて制御して、次のような一連の動作をゲームキャラクタＡに行わせることを考える。すなわち、ゲームキャラクタＡに攻撃用のモーションをとらせることでゲームキャラクタＢとのコリジョンが発生する（つまりゲームキャラクタＡによるゲームキャラクタＢへの攻撃を行わせる）ようにすることを考える。
【０００５】
本発明では、このような攻撃動作を行う場合に、より柔軟な攻撃動作を可能にするための技術を提供する。
【課題を解決するための手段】
【０００６】
本発明は、例えば、ゲームキャラクタの制動距離を取得する第１の取得手段と、
前記ゲームキャラクタが攻撃用のモーションを再生した場合に該ゲームキャラクタの周囲において該ゲームキャラクタの攻撃部位が通過する領域を攻撃可能範囲として取得する第２の取得手段と、
前記攻撃可能範囲に基づいて、前記攻撃部位が前記ゲームキャラクタの攻撃対象と接触可能な前記ゲームキャラクタの位置を求める第１の計算手段と、
前記攻撃対象に向かって移動する前記ゲームキャラクタの経路に沿って、前記第１の計算手段が求めた位置から前記第１の取得手段が取得した制動距離だけ戻った位置を、前記攻撃対象に向かって移動する前記ゲームキャラクタが該移動の制動を開始する位置として求める第２の計算手段と、
前記制動を、前記第２の計算手段が求めた位置で開始させる手段と、
前記ゲームキャラクタの複数の攻撃用のモーションのそれぞれについて、該ゲームキャラクタが該攻撃用のモーションを再生した場合に該ゲームキャラクタの周囲において該ゲームキャラクタの攻撃部位が通過する領域を攻撃可能範囲として取得する第３の取得手段と、
前記複数の攻撃用のモーションのうち、前記ゲームキャラクタの攻撃対象の一部若しくは全部が含まれるような攻撃可能範囲に対応する１つの攻撃用のモーションを選択する選択手段と、
前記制動により前記ゲームキャラクタの移動が停止した後、前記選択手段が選択した攻撃用のモーションを再生する再生手段と
を備えることを特徴とする。
【発明の効果】
【０００７】
本発明の構成によれば、より柔軟な攻撃動作を可能にする。
【０００８】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成要素には、同じ参照番号を付す。
【図面の簡単な説明】
【０００９】
添付図面は明細書の一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】図１は、コンピュータ装置のハードウェア構成例を示すブロック図。
【図２】図２は、図３のテーブルを取得するための処理を説明する図。
【図３】図３は、重量及び移動速度に対応する制動距離が登録されたテーブルの構成例を示す図。
【図４】図４は、攻撃可能範囲のサンプリングを説明する図。
【図５】図５は、コンピュータ装置が行う処理のフローチャート。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明の実施形態について説明する。
【００１１】
第１の実施形態
以下では、ゲームキャラクタの複数の攻撃用のモーションのそれぞれについて、該ゲームキャラクタが該攻撃用のモーションを再生した場合に該ゲームキャラクタの周囲において該ゲームキャラクタの攻撃部位が通過する領域を攻撃可能範囲として取得し、該複数の攻撃用のモーションのうち、ゲームキャラクタの攻撃対象の一部若しくは全部が含まれるような攻撃可能範囲に対応する１つの攻撃用のモーションを選択し、該選択した攻撃用のモーションを再生する情報処理装置の一例について説明する。
【００１２】
また、ここでいうところの「ゲームキャラクタ」とは、ゲームの世界（所謂仮想世界）に存在する仮想物体のことである。このような定義に該当するものには、例えば、人や動物、植物、乗り物、建物等のゲーム中に登場するオブジェクトがある。
【００１３】
先ず、このような情報処理装置を適用したゲーム機、タブレット端末装置、スマートフォン、ＰＣ（パーソナルコンピュータ）等のコンピュータ装置のハードウェア構成例について、図１のブロック図を用いて説明する。なお、図１に示したハードウェア構成例は、あくまでも上記の情報処理装置に適用可能なコンピュータ装置のハードウェア構成の一例であり、以下に説明する処理を実現可能な構成であれば、如何なる構成を採用しても良い。
【００１４】
ＣＰＵ１０１は、ＲＡＭ１０２やＲＯＭ１０３に格納されているコンピュータプログラムやデータを用いて処理を実行することで、コンピュータ装置全体の動作制御を行うと共に、コンピュータ装置が行うものとして後述する各処理を実行若しくは制御する。
【００１５】
ＲＡＭ１０２は、ＲＯＭ１０３や外部記憶装置１０６からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ（インターフェース）１０７を介して外部から受信したデータ、を格納するためのエリアを有する。更にＲＡＭ１０２は、ＣＰＵ１０１が各種の処理を実行する若しくは制御する際に用いるワークエリアを有する。このように、ＲＡＭ１０２は、各種のエリアを適宜提供することができる。
【００１６】
ＲＯＭ１０３には、書き換え不要の本装置の設定データやコンピュータプログラム（ブートプログラムなど）が格納されている。
【００１７】
操作部１０４は、キーボードやマウスなどを含み、本装置のユーザが操作することで各種の指示をＣＰＵ１０１に対して入力することができるユーザインターフェースである。
【００１８】
表示部１０５はＣＲＴや液晶画面などを含み、ＣＰＵ１０１による処理結果を画像や文字などでもって表示することができる。なお、操作部１０４と表示部１０５とを一体化させてタッチパネル画面を構成しても構わない。
【００１９】
外部記憶装置１０６は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置１０６には、ＯＳ（オペレーティングシステム）や、コンピュータ装置が行うものとして後述する各処理をＣＰＵ１０１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置１０６に保存されているデータには、以下の説明において既知の情報として取り扱うデータが含まれている。外部記憶装置１０６に保存されているコンピュータプログラムやデータは、ＣＰＵ１０１による制御に従って適宜ＲＡＭ１０２にロードされ、ＣＰＵ１０１による処理対象となる。
【００２０】
Ｉ／Ｆ１０７は、外部の機器との間で有線及び／又は無線でもってデータ通信を行うためのものであり、例えば、以下の説明において外部記憶装置１０６から取得するものとして説明するコンピュータプログラムやデータ等は、Ｉ／Ｆ１０７を介して外部の機器から取得するようにしても構わない。
【００２１】
上記のＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、操作部１０４、表示部１０５、外部記憶装置１０６、Ｉ／Ｆ１０７は何れも、バス１０８に接続されている。
【００２２】
以下では、ゲームフィールドにおけるゲームキャラクタＡをゲームキャラクタＢに向けて移動させた後、所望の位置で停止させ、そこでゲームキャラクタＡに攻撃用のモーションを再生させることでゲームキャラクタＢへの攻撃を行う（ゲームキャラクタＡの攻撃部位をゲームキャラクタＢに接触させる）ためにゲームキャラクタＡが移動の制動を開始する位置（制動開始位置）を求める。本実施形態では、この制動開始位置を、ゲームキャラクタＡの移動速度や重量などの特性パラメータと、ゲームキャラクタＡが所望の位置で再生する攻撃用のモーションによる攻撃可能範囲と、に基づいて求める。そして、求めた制動開始位置で移動の制動を開始することでゲームキャラクタＡを上記所望の位置で停止させ、そこで攻撃用のモーションを再生することで、ゲームキャラクタＢへの攻撃を行わせる。このような一連の処理についてフローチャートを示す図５を用いて説明する。図５のフローチャートに従った処理は、ゲームキャラクタＢに向けたゲームキャラクタＡの移動開始前、若しくは移動中に開始する。
【００２３】
＜ステップＳ５０１＞
ＣＰＵ１０１は先ず、ゲームキャラクタＡのサイズや重量など、ゲームキャラクタＡを規定する規定パラメータを取得する。規定パラメータは、ゲームキャラクタＡと関連づけて外部記憶装置１０６にゲームデータとしてインストールされているものである。またＣＰＵ１０１は、ゲームキャラクタＢに向けたゲームキャラクタＡの移動速度を取得する。移動速度はゲームキャラクタＡに固有の速度として予め定められた値であっても良いし、ゲームキャラクタＢまでの距離など、ゲームの状況に応じて動的に決定される値であっても良い。そしてＣＰＵ１０１は、取得した規定パラメータ及び移動速度に対応する制動距離ＳＤを取得する。
【００２４】
規定パラメータ及び移動速度に対応する制動距離ＳＤの取得方法には様々な方法が考えられる。例えば、図３に例示するようなテーブルを予めゲームデータとして作成して外部記憶装置１０６にインストールしておき、該テーブルから、上記取得した規定パラメータ及び移動速度に対応する制動距離ＳＤを取得する方法がある。図３のテーブルは、規定パラメータがゲームキャラクタの重量であるケースにおいて、ゲームキャラクタの重量と、ゲームキャラクタの移動速度と、の組み合わせ毎に制動距離ＳＤが登録されたテーブルである。例えば、ゲームキャラクタＡの重量＝４０、移動速度＝２０である場合、図３のテーブルより、制動距離ＳＤ＝２０を取得することができる。このようなテーブルは、ゲームの開発段階で作成されるものであり、例えば以下のような方法でもって作成することができる。
【００２５】
例えば、図２に示す如く、ゲームフィールド上に、それぞれ重量が異なる複数のゲームキャラクタ２０１，２０２，２０３を配置させる。そしてゲームキャラクタ２０１〜２０３のそれぞれに「移動→移動の制動開始→停止→移動再開」のサイクルを繰り返し行わせて、サイクル毎の制動距離をサンプリングする。なお、移動中のゲームキャラクタのモーション（移動モーション）は制動を開始したときに立ち止まるモーションに切り替わるが、制動距離は、立ち止まるモーションが完了するまでにゲームキャラクタが進んだ距離とすることができる。なお、移動速度はサイクル単位で変える。つまり、様々な重量及び様々な移動速度に対応する制動距離をサンプリングする。そして、様々な重量及び様々な移動速度に対応する制動距離を登録したテーブルを作成する。このテーブルの一例が図３に示したテーブルである。
【００２６】
なお、ここでは規定パラメータ＝重量としたが、規定パラメータは重量以外の属性であっても良いし、重量を含む複数の属性から成るものであっても良い。何れにせよ、規定パラメータ及び移動速度に対応する制動距離ＳＤが得られればよい。
【００２７】
また、図３に例示したようなテーブルは、属性が異なるゲームフィールド（例えば、川、砂地、足場が雪のフィールドなど）ごとに作成しても良い。つまり、規定パラメータ及び移動速度に対応する制動距離のサンプリングを、属性が異なるフィールドごとに行って、それぞれの属性のフィールドについて図３のようなテーブルを作成する。このような場合、ゲームキャラクタＡが位置するゲームフィールドの属性に対応するテーブルを用いて制動距離を取得する。また、図３のようなテーブルの代わりに、規定パラメータ及び移動速度と制動距離との関係を表す関数データを作成しても良い。
【００２８】
＜ステップＳ５０２＞
ＣＰＵ１０１は、ゲームキャラクタＢを攻撃するためにゲームキャラクタＡに再生させる攻撃用のモーションを取得する。攻撃用のモーションは、ユーザが操作部１０４を操作することで決定した攻撃パターンに対応するものであっても良いし、ゲームの状況などに応じてＣＰＵ１０１が決定したものであっても良い。
【００２９】
＜ステップＳ５０３＞
ＣＰＵ１０１は、ゲームキャラクタＡがステップＳ５０２で取得した攻撃用のモーションを再生した場合に該ゲームキャラクタＡの周囲において該ゲームキャラクタＡの攻撃部位が通過する領域を攻撃可能範囲Ｒとして取得する。
【００３０】
攻撃可能範囲は攻撃用のモーション毎に異なるため、攻撃用のモーションごとに予めサンプリングしておく。このサンプリングはゲームの開発段階で行うものである。例えば図４に示す如く、先ずゲームキャラクタＡ（ゲームキャラクタ４０）を配置した空間（より詳しくはゲームキャラクタＡを含む周囲の空間）を複数の部分空間に分割しておき、該ゲームキャラクタＡに攻撃用のモーションＡを再生させて、ゲームキャラクタＡの攻撃部位４０３（図４では左前足）が通過した部分空間４０２をサンプリングする。ゲームキャラクタＢの一部でもこの部分空間４０２に含まれていれば、ゲームキャラクタＡが攻撃用のモーションＡを再生すると攻撃部位が該ゲームキャラクタＢと接触することになるため、この部分空間４０２は攻撃用のモーションＡを再生するゲームキャラクタＡにとって攻撃可能範囲となる。然るに、この部分空間４０２を攻撃用のモーションＡと関連づけたゲームデータを予め作成して外部記憶装置１０６にインストールする。これは他の攻撃用のモーションＢ，Ｃ，…についても同様で、攻撃用のモーションＢ，Ｃ，…のそれぞれについて予めサンプリングした攻撃可能範囲を、攻撃用のモーションＢ，Ｃ，…のそれぞれと関連づけたゲームデータを予め作成して外部記憶装置１０６にインストールする。
【００３１】
然るにステップＳ５０３では、ＣＰＵ１０１は、攻撃用のモーションごとに予めサンプリングした攻撃可能範囲のうち、ステップＳ５０２で取得した攻撃用のモーションに対応する攻撃可能範囲Ｒを取得する。
【００３２】
＜ステップＳ５０４＞
ＣＰＵ１０１は、ステップＳ５０３で取得した攻撃可能範囲Ｒ内に、ゲームフィールドに配置されているゲームキャラクタＢの一部若しくは全部が含まれるようなゲームキャラクタＡの位置を、停止位置Ｄとして求める。ここで、ゲームキャラクタＢに向かって移動するゲームキャラクタＡの移動経路は、移動前に人工知能技術などでもって予め決定しているので、この移動経路上の位置であって、攻撃可能範囲Ｒ内にゲームキャラクタＢの一部若しくは全部が含まれるようなゲームキャラクタＡの位置を、停止位置Ｄとして求める。例えば、ゲームキャラクタＡを移動経路に沿ってゲームキャラクタＢに近づけた場合にゲームキャラクタＢがゲーム空間中に占める部分空間の１０％が攻撃可能範囲Ｒに含まれた時点におけるゲームキャラクタＡの位置が停止位置Ｄとなる。
【００３３】
＜ステップＳ５０５＞
ＣＰＵ１０１は、停止位置Ｄから移動経路に沿って移動開始時の位置に向けて制動距離ＳＤだけ戻った位置を制動開始位置Ｓとして特定する。
【００３４】
＜ステップＳ５０６＞
ＣＰＵ１０１は、移動中の若しくはこれから移動するゲームキャラクタＡの制動を制動開始位置Ｓで開始する。
【００３５】
＜ステップＳ５０７＞
ＣＰＵ１０１は、ゲームキャラクタＡが停止すると、ステップＳ５０２で取得した攻撃用のモーションの再生を開始する。なお、ステップＳ５０７において再生を開始する攻撃用のモーションは、ステップＳ５０２で取得した攻撃用のモーションに限らない。例えば、ゲームキャラクタＡの複数の攻撃用のモーションのそれぞれの攻撃可能範囲を取得し、該複数の攻撃用のモーションのうち、ゲームキャラクタＢの一部若しくは全部が含まれるような攻撃可能範囲に対応する１つの攻撃用のモーションを、ステップＳ５０７において再生を開始する攻撃用のモーションとして選択するようにしてもよい。攻撃用のモーションの選択方法には様々な方法が考えられる。例えば、複数の攻撃用のモーションのうち、ゲームキャラクタＢを最も大きく含む攻撃可能範囲に対応する攻撃用のモーションを選択するようにしてもよいし、複数の攻撃用のモーションのうち１つをランダムに選択するようにしてもよい。
【００３６】
第２の実施形態
上記の停止位置Ｄは移動経路上の位置に限らず、例えば、攻撃可能範囲Ｒのどの部分にゲームキャラクタＢのどの部分を含ませるのかに応じて停止位置Ｄを決定しても良い。
【００３７】
第３の実施形態
第１の実施形態では、停止位置Ｄは、ゲームキャラクタＡの攻撃用のモーションに対応する攻撃可能範囲Ｒに基づいて決定していた。しかし、停止位置Ｄの求め方はこれに限らず、停止位置Ｄは、ゲームキャラクタＢの周囲の適当な位置としても良い。このとき、停止位置ＤにおいてゲームキャラクタＡが再生すべき攻撃用のモーションは、該攻撃用のモーションの攻撃可能範囲Ｒ内にゲームキャラクタＢの一部若しくは全部は含まれている必要がある。そこで、ＣＰＵ１０１は、ゲームキャラクタＡの複数の攻撃用のモーションのそれぞれの攻撃可能範囲を取得し、該複数の攻撃用のモーションのうち、ゲームキャラクタＢの一部若しくは全部が含まれるような攻撃可能範囲に対応する１つの攻撃用のモーションを、ステップＳ５０７において再生を開始する攻撃用のモーションとして選択するようにしてもよい。選択方法は上記の通りである。
【００３８】
第４の実施形態
図３のテーブルに加えて、ゲームキャラクタＡの様々な移動速度に対する旋回半径を予めサンプリングし、移動速度と旋回半径との関係を登録したテーブルを作成するようにしても良い。このようなテーブルを作成しておけば、ゲームキャラクタＡがゲームキャラクタＢに向かって移動する途中で旋回する場合に、障害物に衝突せず、且つ目的位置で停止するために移動速度を制御することができる。
【００３９】
第５の実施形態
上記の通り、ＣＰＵ１０１がコンピュータプログラムやデータを用いて上記の各処理を実行することで、上記の機能を実現するわけであるから、当然、該コンピュータプログラムは本願発明の範疇になる。また、通常コンピュータプログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な記憶媒体に格納されており、コンピュータが有する読み取り装置（ＣＤ−ＲＯＭドライブ等）にセットし、システムにコピーもしくはインストールすることで実行可能になるわけであるから、係るコンピュータ読み取り可能な記憶媒体も本願発明の範疇に入ることも明らかである。
【００４０】
なお、本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【００４１】
本願は、２０１５年８月２０日提出の米国仮出願番号６２／２０７５４７を基礎として優先権を主張するものであり、その記載内容の全てを、ここに援用する。
【図１】
0006576544.tif 000002
【図２】
0006576544.tif 000003
【図３】
0006576544.tif 000004
【図４】
0006576544.tif 000005
【図５】
0006576544.tif 000006