【文献】
遠藤 理平,HTML5による物理シミュレーション 剛体編 初版,株式会社カットシステム,2014年 9月10日,第1版,pp.423-430
【文献】
伊庭 斉志,焼きなまし法とボルツマンマシン,人工知能の方法 ,株式会社コロナ社,2014年 9月 8日,第1版,pp.142-152
(58)【調査した分野】(Int.Cl.,DB名)
前記第2領域に設定された有利度から前記第1領域に設定された有利度を減算して得られる差と、前記算定された到達確率と、の積を、前記第1領域のいずれかの位置に存在するオブジェクトに対して前記学習された入力を与えたときの利得の期待値とすることにより、前記物理エンジンの管理下で前記第1領域のいずれかの位置に存在するオブジェクトに対して与える入力として、前記学習された入力を採用するか否かを決定する決定部
をさらに備えることを特徴とする請求項1から6のいずれか1項に記載の情報処理装置。
請求項1から6のいずれか1項に記載された情報処理装置により学習された前記入力、ならびに、前記情報処理装置により算定された前記到達確率を、コンピュータ通信網、もしくは、非一時的なコンピュータ読取可能な情報記録媒体を介して取得する取得部、
前記第2領域に設定された有利度から前記第1領域に設定された有利度を減算して得られる差と、前記算定された到達確率と、の積を、前記第1領域のいずれかの位置に存在するオブジェクトに対して前記学習された入力を与えたときの利得の期待値とすることにより、前記物理エンジンの管理下で前記第1領域のいずれかの位置に存在するオブジェクトに対して与える入力として、前記学習された入力を採用するか否かを決定する決定部
を備えることを特徴とする端末。
【発明を実施するための形態】
【0016】
以下に、本発明の実施形態に係る情報処理装置ならびに端末について説明する。なお、以下に説明する情報処理装置ならびに端末は、本発明の要旨を説明するためのものであり、本発明の技術的な範囲は、以下に説明する実施形態には限られない。また、各実施例にて説明する要素は、用途に応じて適宜省略することも可能である。このように、本発明の原理にしたがって構成された各種の情報処理装置ならびに端末、当該各種の情報処理装置ならびに端末にて実行される方法、当該各種の情報処理装置ならびに端末にて実行されるプログラム、ならびに、これらと均等な発明は、いずれも、本発明の範囲に含まれる。
【0017】
(情報処理装置および端末が実現されるハードウェア)
本実施形態に係る情報処理装置および端末は、典型的には、プログラムをコンピュータが実行することによって実現される。ここで、コンピュータとしては、サーバコンピュータ、デスクトップ型コンピュータ、ノート型コンピュータ、タブレット型コンピュータ等のように、コンピュータとして製造、販売等されているもののほか、携帯電話、スマートホン、タブレット型電話等のように、電話機として製造、販売等されているもの、携帯ゲーム機、家庭用エンターテインメント装置等のように、ゲーム機やマルチメディア端末として製造、販売等されているものも含まれる。典型的には、本実施形態に係る情報処理装置は、高性能な据置型コンピュータやクラウド型コンピュータ等の上に実現され、端末は、スマートホンや携帯ゲーム機等の上に実現される。
【0018】
コンピュータにて実行されるプログラムや、当該プログラムにより参照される各種のデータは、当該コンピュータが通信可能に接続されたサーバにより配布、販売することができるほか、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk ROM)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable ROM)などの非一時的(non-transitory)な情報記録媒体に記録した上で、当該情報記録媒体を配布、販売等することも可能である。
【0019】
プログラムは、コンピュータが有するハードディスク、ソリッドステートドライブ、フラッシュメモリ、EEPROMなどの非一時的な情報記録媒体にインストールされる。すると、当該コンピュータにより、本実施形態における情報処理装置が実現されることになる。一般的には、コンピュータのCPU(Central Processing Unit)は、コンピュータのOS(Operating System)による管理の下、情報記録媒体からRAM(Random Access Memory)へプログラムを読み出してから、当該プログラムに含まれるコードを解釈、実行する。ただし、携帯ゲーム機などでは、CPUがアクセス可能なメモリ空間内に情報記録媒体をマッピングできるようなアーキテクチャが採用されることがある。この場合には、プログラムのインストールや、RAMへの明示的なプログラムのロードは不要である。
【0020】
なお、プログラムの実行の過程で必要とされる各種情報は、CPUのレジスタやRAM、キャッシュ内に一時的(temporary)に記録しておくことができる。
【0021】
情報処理装置や端末における処理の結果は、ディスプレイやタッチスクリーン等の表示装置に表示することができる。また、情報記録媒体に記録して、後日自身が利用したり、他の機器で参照することが可能である。さらに、コンピュータ通信網等を介して、処理の結果を配布、販売することができる。
【0022】
ユーザは、キーボード、マウス、トラックボール、タッチパッド、ジョイスティック等のゲーム装置用コントローラ、タッチスクリーン等の入力装置を介して、情報処理装置や端末に対する各種の指示を与えることができる。
【0023】
なお、汎用のコンピュータでプログラムを実行することにより本実施形態の情報処理装置や端末を実現するのではなく、専用の電子回路を構築して本実施形態の情報処理装置や端末を構成することも可能である。
【0024】
この態様においても、コンピュータに実行させる実行用プログラムと同様に記述をしたり、実行用プログラムを比較的簡単な手直しをして移行することによって得られる定義プログラムを利用することができる。定義プログラムは、一見実行用プログラムのように見えるが、実際には、定義プログラムに記載された処理を順次実行するのではなく、定義プログラムに記載された処理を実現する電子的な素子を配線したり、各素子における演算のタイミングチャート等を決定したりするための仕様定義として機能する。
【0025】
このような態様では、プログラムに定められる仕様を満たすような電子回路が、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)により構成され、当該電子回路は、当該プログラムに定められた機能を果たす専用機器として機能して、本実施形態の情報処理装置や端末を実現することができる。
【0026】
以下では、理解を容易にするため、コンピュータがプログラムを実行することによって、本実施形態に係る情報処理装置や端末が実現される態様について説明する。
【0027】
(情報処理システム)
以下では、本実施形態に係る情報処理システムの概要について説明する。
図1は、本発明の実施形態に係る情報処理システムの一例を示す説明図である。以下、本図を参照して説明する。
【0028】
本実施形態に係る情報処理システム10は、情報処理装置101を備える。さらに、情報処理システム10は、端末201を備えることとしても良い。
【0029】
ここで、情報処理装置101は、複数の領域に分割されたマップを参照し、学習部102、算定部103を備える。さらに、情報処理装置101は、決定部104を備えることとしても良い。
【0030】
情報処理装置101の学習部102は、物理エンジンの管理下で、複数の領域のうち第1領域内の第1代表点に存在するオブジェクトを複数の領域のうち第2領域内の第2代表点に到達させるために、第1代表点においてオブジェクトに対して与えるべき入力を学習する。
【0031】
一方、算定部103は、物理エンジンの管理下で、第1領域内の任意の位置に存在するオブジェクトに対して学習された入力を与えると、オブジェクトが第2領域内のいずれかの位置に到達する到達確率を算定する。
【0032】
ここで学習された入力及び到達確率は、情報処理装置101内の決定部104で利用することもできるし、情報記録媒体に記録して端末201に渡したり、インターネット等のコンピュータ通信網を介して端末201に渡すことで、端末201で利用することもできる。
【0033】
前者の態様を採用する場合、情報処理装置101の決定部104は、第2領域に設定された有利度から第1領域に設定された有利度を減算して得られる差と、算定された到達確率と、の積を、第1領域のいずれかの位置に存在するオブジェクトに対して学習された入力を与えたときの利得の期待値とすることにより、物理エンジンの管理下で第1領域のいずれかの位置に存在するオブジェクトに対して与える入力として、学習された入力を採用するか否かを決定する。
【0034】
ここで、有利度とは、オブジェクトがその領域内にポジションを確保していることがどの程度当該オブジェクトにとって有利であるかを示す指標であり、その詳細については、後述する。
【0035】
後者の態様を採用する場合、端末201の取得部202は、情報処理装置により算定された到達確率を、コンピュータ通信網、もしくは、非一時的なコンピュータ読取可能な情報記録媒体を介して取得する。
【0036】
端末201の決定部203は、情報処理装置101の決定部104と同様に、前記第2領域に設定された有利度から第1領域に設定された有利度を減算して得られる差と、算定された到達確率と、の積を、第1領域のいずれかの位置に存在するオブジェクトに対して学習された入力を与えたときの利得の期待値とすることにより、物理エンジンの管理下で第1領域のいずれかの位置に存在するオブジェクトに対して与える入力として、学習された入力を採用するか否かを決定する。
【0037】
ここで、情報処理装置101の物理エンジンと、端末201の物理エンジンと、は、共通する仮想空間の設定ならびに物理法則のアルゴリズムに基づいて、仮想空間内の物理シミュレーションを行う。したがって、物理エンジンに対して設定される条件が完全に同一であれば、演算結果として得られるオブジェクトの移動等の結果も同一になる。
【0038】
ただし、リアルタイム性を向上させるため、演算速度を優先し、端末201の物理エンジンにおける演算精度を、情報処理装置101の物理エンジンにおける演算精度よりも低くすることとしても良い。
【0039】
(オブジェクトとマップ)
以下では、本実施形態にて情報処理装置101および端末201が参照するオブジェクトとマップについて説明する。
【0040】
本実施形態においては、オブジェクトが仮想空間内を移動する。たとえば、ゲームに本実施形態を適用する場合には、オブジェクトとして、ゲームのノンプレイヤーキャラクター、バスケットボールやサッカーなどの球技のゲームにおけるボール、戦闘ゲームにおけるミサイルや弾丸などが想定される。
【0041】
ここで想定するオブジェクトの移動は、オブジェクトに入力が与えられることによって始まり、オブジェクトが何かに到着する、すなわち、何かに衝突してその場所に一時的に固着することによって終わる。
【0042】
ここで、オブジェクトに与えるべき入力とは、オブジェクトが移動を開始するきっかけとなる仮想空間内での外力を引き起こすものであり、以下のようなものが考えられる。
(a)オブジェクトに対する外力。現実世界や、現実を模した仮想空間においては、外力によって、オブジェクトの加速度が決められる。
(b)オブジェクトに対する撃力。現実世界や仮想空間においては、撃力によって、オブジェクトの運動量の変化が決められる。
(c)オブジェクトをゲームのプレイヤーが操作していると仮定した際のコントローラに対する操作。たとえば、コントローラにおいて、どのボタンやキーをどの強さで押圧等したか、どのスティックをどの強さでどちらへ傾けたか、タッチスクリーンをどの速さでどちらへどれだけの時間フリックしたか、などによって、上記の外力や撃力が決まる態様である。
【0043】
上記のような入力がオブジェクトに与えられてオブジェクトの移動が開始された後は、仮想空間の物理法則に則ってオブジェクトが移動する。物理エンジンは、オブジェクトの移動を計算する。
【0044】
本実施形態では、マップによって、仮想空間において、オブジェクトが一時的に固着できる場所が表現される。
図2は、鳥瞰図により仮想空間を表す一例を示す説明図である。本図に示す仮想空間301はポリゴンを用いて立体的に構成されており、地面の中ほどに壁と屋上からなる塔のような建造物が構成されている。
【0045】
これに対する最も単純なマップは、仮想空間301を上方から俯瞰することによって、地面や地面の上に設定される道路、建造物等を平面状に表したマップである。
図3は、仮想空間を平面状に表すマップの一例を示す説明図である。本図に示すマップ401では、建造物の屋上、建造物の壁面、および、地面が、正方形もしくは台形の領域402に区切られている。
【0046】
マップ401における台形の領域402は、塔の壁面に相当するが、上方から俯瞰して平面化しているために、その形状はつぶれている。
【0047】
一方、ポリゴンの連結関係を示す展開図によってマップを表現することも可能である。
図4は、仮想空間を展開図により表すマップの一例を示す説明図である。本図に示すマップ401でも、建造物の屋上、建造物の壁面、および、地面が、正方形もしくは台形402の領域に区切られている。
【0048】
展開図によるマップ401では、実際には連結されている辺が、図内では離間して描かれている。本図では、連結関係にある辺同士を点線の矢印で記載している。また、塔の壁面を表す台形の領域402は、俯瞰した形状ではなく、正対したときに見える形状で表現されている。展開図においては、ポリゴンの連結状態ができるだけそのまま維持されるように、各ポリゴンを並べるが、3次元の表面をなすポリゴンを2次元平面に並べる際には、本来は連結されているポリゴン同士を切り離す必要がある。また、隣接するポリゴンを連結して並べると、ポリゴン同士が重なり合ってしまうこともある。連結されているポリゴン同士を切り離した場合には、2次元平面内に並べられたポリゴンの情報と、両者の連結関係を示す情報と、を合わせて、展開図のマップ401とする必要がある。
【0049】
展開図によるマップ401は、仮想空間301を構成するためのポリゴンおよびその連結関係を表す情報と等価であるから、立体交差やトンネル内外など、複雑な形状を有する建造物が用意された仮想空間を自然にそのまま表現することができる。
【0050】
上述の通り、仮想空間301の様子を表すマップ401は、正方形、長方形、台形等の四角形、凸六角形、三角形等の形状の領域402に分割される。各領域402の面積は、同程度とするのが典型的である。また、各領域402は、凸多角形とすることが望ましい。各領域402が凸多角形により定義される場合、各領域402の頂点を含む凸包は、当該領域402の凸多角形と一致する。したがって、当該凸包の面積は、当該領域402の面積に等しい。
【0051】
展開図のマップ401においては、仮想空間301の建造物等を定義するポリゴンを、そのまま各領域402として採用することができる。面積が大きいポリゴンは適宜分割することとして、各領域402の面積を一定範囲内に収まるようにしても良い。
【0052】
マップ401を分割して得られる各領域402は、ゲーム等の戦略を決める上で、仮想空間301内における各位置が戦略上どの程度有利か、を判断するための位置判断の単位となる。したがって、各領域402を小さくすれば、戦略を定める上での各パラメータはより詳細に検討ができることになるが、戦略を決定するために必要な計算時間も長大になる。
【0053】
仮想空間301においては、建造物の位置や底面の形状はマップ401上に表現されているが、建造物の高さ方向の形状は、十分には表現されていない。したがって、ある建造物が、移動に際して障害となるか否かは、マップ401からはわからないことがある。また、仮想空間301において、風、重力、電気力、磁気力等の各種の仮想的な自然現象の影響を受ける場合もある。
【0054】
したがって、オブジェクトをマップ401内のある領域402から別の領域402へ移動させるために、どのような入力を与えるべきか、については、物理エンジンを利用して、事前に試行錯誤をする必要がある。
【0055】
以下では、ある領域402から別の領域402へオブジェクトを移動させるための入力、ならびに、その入力が当該移動においてどの程度信頼できるかを表す到達確率を求める事前処理について説明する。この事前処理を実行することによって、オブジェクトの移動戦略を決定する決定処理が、合理的な精度で高速に実行できるようになる。
【0056】
(事前処理)
本実施形態に係る事前処理は、情報処理装置101において実行される。
図5は、本発明の実施形態に係る算定処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0057】
事前処理は、情報処理装置101を実現するコンピュータが、事前処理用のプログラムを実行することによって、開始される。
【0058】
プログラムが開始されると、情報処理装置101の学習部102は、マップ内の各領域を順に第1領域に設定しつつ以下の処理を繰り返す(ステップS501)。
【0059】
すなわち、学習部102は、マップ内の各領域を順に第2領域に設定しつつ以下の処理を繰り返す(ステップS502)。
【0060】
第1領域と第2領域が設定されたら、両者の代表点間でオブジェクトを移動させるための入力を学習する。ここで、代表点としては、両者の中心点(重心)を採用するのが典型的である。ただし、いずれかの頂点、あるいは、いずれかの辺上の点であって、他の領域の代表点となっていないものを採用することとしても良い。
【0061】
まず、オブジェクトに与える入力を設定し(ステップS503)、次に、第1領域の第1代表点にオブジェクトを配置し(ステップS504)、第2領域もしくは第2領域以外のオブジェクトが一時的に固着可能な場所に到着するまで(ステップS506;No)、物理エンジンによる物理シミュレーションを所定の微小時間分だけ実行する(ステップS507)。
【0062】
オブジェクトがいずれかに到着したら(ステップS506;Yes)、その到着点が、第2領域の第2代表点の所定近傍に含まれるまで(ステップS508;No)、オブジェクトの入力を再設定して(ステップS509)、ステップS506に戻り、処理を繰り返す。
【0063】
なお、ステップS503において学習の初期値として設定される入力は、ランダムに定めることができる。なお、本処理は、第1領域と第2領域を順次更新して繰り返し処理を実行しているので、直前の第1, 第2領域の組み合わせにおいて最終的に得られた入力を、ステップS503において設定する値として利用しても良い。
【0064】
一方、学習を進めるために、ステップS509において入力を再設定する際には、到着した場所と第2領域の代表点との差異が小さくなるように、新たな入力を作ることが望ましい。新たに再設定された入力によって、到着点と第2領域の代表点との距離が以前よりも短くなれば、学習が進んだことになる。
【0065】
たとえば、物理エンジンが決定的な動作をする場合には、これまでの入力と到達点の履歴を利用して、到着地点が第2領域の代表点に近付くように入力を修正することができる。この際には、ニュートン法、ニュートン・ラフソン法、最急降下法などを利用することができる。
【0066】
なお、物理エンジンが非決定的な動作をする場合には、上記の手法では収束しないことがある。この場合は、焼きなまし法を用いることができる。なお、焼きなまし法は、決定的な動作をする物理エンジンにおいても適用が可能である。
【0067】
焼きなまし法では、ステップS509において、今までの繰り返しで試行した入力のうち、到達点が第2領域の第2代表点に最も近付いた入力を選ぶ。そして、選ばれた入力をランダムに変動させて、次の繰り返しで試行する入力とする。ただし、ランダムに変動させる幅は、繰り返しが進み、到着地点が第2領域の第2代表点に近付くごとに小さくしていく。変動幅が十分に小さくなれば、到着位置が第2領域の第2代表点の所定近傍に含まれる(ステップS508;Yes)ことになるので、繰り返しが終了する。
【0068】
なお、過去の入力と到達点の履歴をすべて保存して走査する必要はない。実際には、前回選択された入力に対する到達点と、今回の入力に対する到達点と、を比較して、第2領域の代表点に最も近くに到達できた側の入力を選択してから、今回選択された入力をランダムに変動させれば良い。
【0069】
このようにして、第1領域の代表点に存在するオブジェクトを、第2領域の代表点に移動させるために与えるべき入力が学習されたら、情報処理装置101の算定部103は、当該学習された入力を、第1領域の任意の点からオブジェクトを移動させる際に使用したときに、第2領域内に到達できる到達確率を算定する(ステップS510)。到達確率の算定方法としては、以下のようなものが考えられる。
【0070】
第1の手法は、モンテカルロ法である。
図6は、モンテカルロ法を用いて到達確率を算定する技術を説明する説明図である。具体的には、第1領域402a内の点を複数ランダムに選択する。そして、選択された複数の点のそれぞれを出発点601としてオブジェクトを配置する。
【0071】
学習された入力603を第1代表点403aに存在するオブジェクトに対して与えると、第2代表点403bに到達する(図中点線の軌跡)。そこで、この入力603を各出発点601に配置されたオブジェクトに与えて物理シミュレーションを実行し、到達点604を求める(図中実線の軌跡)。
【0072】
そして、到達点604が第2領域402b内に入った数を集計し、集計された数と、全到達点604の数と、の比を計算して、これを到達確率とする。
【0073】
本図に示す例では、第1領域402a内から4つの出発点601に対する到達点604は、3つは、第2領域402b内に含まれるが、1つは、第2領域402b外に外れている。したがって、入力603の到達確率は3/4 = 75%となる。
【0074】
第2の手法は、凸包を用いる手法である。
図7は、凸包を用いて到達確率を算定する技術を説明する説明図である。この手法では、第1領域402aの各頂点を出発点601として選び、入力603によって物理シミュレーションを行って到達点604を求める。
【0075】
そして、到達点604を含む凸包605を求め、凸包605において第2領域402bと共通する部分の割合を、到達確率とする。
【0076】
本図に示す例では、凸包605と第2領域402bとの共通部分の、凸包605に対する、面積比を到達確率とすれば良い。
【0077】
なお、マップ401が平面的なものではなく、立体的なものである場合には、到達点604は、必ずしも同一の平面内に配置されるとは限らない。したがって、到達点604を含む凸包を二次元的に構成することはできない。以下では、このような場合の対処法について説明する。
【0078】
図8は、立体的なマップにおける到達点の様子を示す説明図である。本図に示す例では、第1代表点403aに存在するオブジェクトに入力603を与えて第2代表点403bへ到達する際のオブジェクトの速度ベクトル701が図示されている。オブジェクトが第2領域402bに垂直に到達した場合には、速度ベクトル701は、第2領域402bに直交するが、オブジェクトが第2領域402bに斜めに到達した場合には、速度ベクトル701は第2領域402bには直交しない。
【0079】
本図に示す例では、第1領域402aの4つの頂点を出発点601として選んだときの到達点604につき、3つは、第2領域402b内に含まれているが、1つは、第2領域402bに連結されている他の領域に含まれている。
【0080】
図9は、立体的なマップにおいて凸包を用いて到達確率を算定する技術を説明する説明図である。本図は、
図8の第2領域402bの近くを拡大して示している。ここで、速度ベクトル701に直交する投影面702を用意する。
【0081】
そして、当該投影面702に、第2領域402bと到達点604と、を、速度ベクトル701に平行に平行投影して、投影面702に投影された投影領域703および投影到達点704を求める。速度ベクトル701が第2領域402bに直交していない場合には、投影領域703は、第2領域402bにアフィン変換を施した形状となる。
【0082】
ついで、投影面702内で、投影到達点704を含む投影凸包705を求める。到達点604を結ぶ線分群は、同一の平面内に収まるとは限らないため、到達点604を結んでも平面内の多角形を形成するとは限らないので、その面積を決めることは難しい。しかし、投影凸包705は、到達点604を投影面702内に投影した投影到達点705を結ぶものであるから、平面内の多角形を形成するので、容易に面積を計算することができる。
【0083】
その上で、当該投影凸包705及び投影領域703の共通部分と、当該投影凸包705と、の面積比により、到達確率を算定すれば良い。
【0084】
この投影では、オブジェクトが第2代表点403bに近付いているときのばらつきをオブジェクトの移動方向から観察することになるので、計算量が少ないにもかかわらず、適正なばらつき度合を見積もることができ、合理的な精度で到達確率を算定することができる。
【0085】
第3の手法は、物理エンジンが非決定的に動作する場合に適用できる手法である。
図10は、所定近傍を用いて到達確率を算定する技術を説明する説明図である。この手法では、第2代表点403bの周囲に、所定範囲の近傍405を設定する。この近傍は、たとえば、第2領域402を適当な縮尺(たとえば50%乃至25%)で縮小したものとする。
【0086】
そして、第1代表点403aを出発点601として、ここに存在するオブジェクトに入力603を与える試行を複数回繰り返し、到達点604が近傍405に含まれる割合を到達確率とする。本図に示す例では、4回の試行のうち3回が近傍405内に到達しているため、到達確率は3/4 = 75%となる。
【0087】
なお、事前処理における焼きなましの収束の速度が速ければ、入力603はそれだけ信頼度が高いと考えられる。そこで、収束の速度や、これに対応付けられる信頼度に基づいて到達確率を算定しても良いし、収束の速度や信頼度を到達確率のかわりに利用しても良い。
【0088】
以上のようにして、到達確率が算定されたら、現在設定されている第1領域、現在設定されている第2領域、学習された入力、および、算定された到達確率の組を情報記録媒体等に出力し(ステップS511)、繰り返しを継続する(ステップS512、S513)。
【0089】
すべての繰り返しが終了したら、本処理を終了する。
【0090】
なお、ステップS501-S513の繰り返し、および、ステップS502-S512の繰り返しは、互いに独立して計算が可能である。したがって、並列化によって計算時間を短縮することも可能である。
【0091】
このようにして、情報記録媒体等に出力された組を、インターネットを介して、あるいは、情報記録媒体等を介して、端末201に伝達することで、端末201において、オブジェクトの移動戦略を決めるための決定処理が実行可能となる。また、当該決定処理を情報処理装置101にて実行することも可能である。
【0092】
(決定処理)
以下では、オブジェクトの移動戦略を決めるための決定処理について説明する。
図11は、本発明の実施形態に係る決定処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0093】
本処理が開始されると、まず、決定部104, 203は、マップ内の各領域に有利度を設定する(ステップS901)。ここで、有利度が各領域に設定されたマップは、影響マップと呼ばれることもある。
【0094】
有利度とは、オブジェクトがその領域内にポジションを確保していることがどの程度当該オブジェクトにとって有利であるかを示す指標である。
【0095】
たとえば、ゲームのキャラクターをオブジェクトとして考えた場合には、敵キャラクターからの発見されにくさ(距離が遠いか、障害物があるか)、敵キャラクターへの攻撃のしやすさ(視線が通っているか)、取得可能なアイテムの近さ(距離が近いか)などを、0以上1以下のパラメータで表現し、これらを、合計が1となる係数で積和合成することによって、計算することができる。
【0096】
なお、有利度の計算は、各領域ごとに独立しているため、並列計算により高速に処理することが可能である。
【0097】
次に、決定部104, 203は、第1領域をオブジェクトが現在存在する領域に固定する(ステップS902)。
【0098】
また、候補値として0を設定し、候補先として第1領域を設定する(ステップS903)。
【0099】
さらに、決定部104, 203は、マップ内の各領域を順に第2領域に設定しつつ以下の処理を繰り返す(ステップS904)。すなわち、第2領域の有利度から第1領域の有利度を減算した値に、オブジェクトを第1領域の代表点から第2領域の代表点へ移動させるために学習された入力の到達確率を乗じた期待値を計算する(ステップS905)。
【0100】
そして、決定部104, 203は、期待値が現在設定されている候補値より大きければ(ステップS906;Yes)、候補値として当該期待値を設定し、候補先として第2領域を設定する(ステップS907)。
【0101】
期待値が現在設定されている候補値未満であれば(ステップS906;No)、ステップS908に進む。全領域を第2領域に設定する繰り返し(ステップS908)が終了したら、オブジェクトを第1領域の代表点から現在設定されている候補先の代表点へ移動させるために学習された入力を採用して(ステップS909)、本処理を終了する。
【0102】
採用された入力は、オブジェクトの移動のリアルタイムシミュレーション等で利用される。
【0103】
たとえば、ゲームに適用した場合には、オブジェクトの飛距離だけではなく、仮想世界の地形や仮想世界に存在する各キャラクターの配置等の特性を踏まえて、ノンプレイヤーキャラクターの跳躍やノンプレイヤーキャラクターによるオブジェクトの投擲などを行うことができる。
【0104】
また、第1領域に存するオブジェクトに対してプレイヤーが与えた入力と、決定処理によって決定された入力と、を比較すれば、プレイヤーの入力がどれだけ適切であったか、を採点することができる。したがって、ゲームからプレイヤーに対して、プレイヤーの操作が良かったか悪かったか、を示すとともに、どのような操作が望ましかったか、助言することができるようになる。
【0105】
さらに、プレイヤーの上達度に応じて、影響マップを変更することもできる。たとえば、上達したプレイヤーであれば、敵キャラクターとの距離が遠くとも、プレイヤーキャラクターからの攻撃は成功しやすくなる。したがって、キャラクター同士の距離に基づくパラメータに対する係数を小さくして積和合成すれば、上級者向けの影響マップを形成することができる。
【0106】
この態様では、有利度の算定に用いられる積和合成の係数を調整するだけで、同じ仮想世界の中であっても、人間のプレイヤーの実力に応じて、いくぶん簡単な局面に設定してプレイヤーに手加減をしたり、少しだけ難しい局面に設定してプレイヤーの練習を促したりすることが、容易にできるようになる。
【0107】
このように、本実施形態では、状況に応じて臨機応変にオブジェクトへ与えるべき入力を決定して、オブジェクトの移動戦略を立てることができる。
【0108】
また、戦略を立てるための試行錯誤は、事前処理において済ませており、決定処理では、期待値の計算および最大期待値が得られる入力の選択のみを行うため、計算能力の低い端末等であっても、決定処理を高速に行うことができる。
【0109】
なお、上記の実施例では、事前処理は、情報処理装置101にて実行し、決定処理は、情報処理装置101もしくは端末201にて実行していたが、事前処理を端末201において実行することも可能である。たとえば、端末201が、計算負荷が低いアイドル状態にあることを検知すると、各マップに対する事前処理がバックグラウンドで実行される、等の態様である。この態様では、端末201を実現するスマートホン等のコンピュータは、情報処理装置101としても機能することになる。
【0110】
(まとめ)
以上説明したように、本実施形態に係る情報処理装置は、複数の領域に分割されたマップを参照し、
物理エンジンの管理下で、前記複数の領域のうち第1領域内の第1代表点に存在するオブジェクトを前記複数の領域のうち第2領域内の第2代表点に到達させるために、前記第1代表点において前記オブジェクトに対して与えるべき入力を学習する学習部、
前記物理エンジンの管理下で、前記第1領域内の任意の位置に存在する前記オブジェクトに対して前記学習された入力を与えると、前記オブジェクトが前記第2領域内のいずれかの位置に到達する到達確率を算定する算定部
を備える。
【0111】
本構成では、物理エンジンによって移動が決まるオブジェクトを代表点間で移動させる入力を学習し、当該学習された入力を、オブジェクトを領域間で移動させるために利用した場合の到達確率を算定することで、簡易な計算でリアルタイムシミュレーションを行うための材料となるデータを提供することができる。
【0112】
また、本実施形態に係る情報処理装置において、
前記算定部は、
前記第1領域をなす第1凸包の各頂点に存在するオブジェクトに対して前記学習された入力を与えることによって、当該オブジェクトが到達する到達点を包含する第2凸包を求め、前記第2凸包において前記第2領域と共通する部分の割合を、前記到達確率とする
ように構成することができる。
【0113】
本構成は、マップが平面的である場合に好適で、オブジェクトが出発する領域の凸包が、学習された入力によってどのような凸包に到達するか、を求めることにより、簡易な計算で、合理的な精度の到達確率を求めることができる。
【0114】
また、本実施形態に係る情報処理装置において、
前記マップを分割する領域は、立体物を構成するポリゴンもしくは当該ポリゴンをさらに分割したサブポリゴンからなり、
前記算定部は、
前記第1領域をなす第1凸包の各頂点に存在するオブジェクトに対して前記学習された入力を与えることによって、当該オブジェクトが到達する到達点を求め、
前記オブジェクトが前記学習された入力によって前記第1代表点から前記第2代表点へ到達したときの前記オブジェクトの速度ベクトルに直交する投影面を設定し、
前記投影面に、前記第2領域と、前記到達点と、を、当該速度ベクトルの方向に平行投影し、
前記投影面において、前記投影された到達点を包含する第2凸包を求め、前記第2凸包において前記投影された第2領域と共通する部分の割合を、前記到達確率とする
ように構成することができる。
【0115】
本構成では、マップが立体物の展開図によって構成され、出発領域の頂点から発したオブジェクトが到達する到達点が必ずしも1つの平面内に位置しない場合であっても、オブジェクトの移動方向から見た到達点のばらつきを適正に見積もることで、簡易な計算で合理的な精度で到達確率を得ることができる。
【0116】
また、本実施形態に係る情報処理装置において、
前記物理エンジンは決定的、もしくは、非決定的に動作し、
前記到達確率は、前記共通する部分の面積の、前記第2凸包の面積に対する比により定められる
ように構成することができる。
【0117】
すなわち、凸包を利用して到達確率を求める手法は、物理エンジンが決定的であっても非決定的であっても、いずれの場合にも適用可能である。また、共通部分の第2凸包に対する割合は、面積比によって定めることができる。
【0118】
また、本実施形態に係る情報処理装置において、
前記物理エンジンは非決定的に動作し、
前記学習部は、前記第1代表点に存在するオブジェクトを前記第2代表点の所定近傍内に到達させるために前記第1代表点において前記オブジェクトに対して与えるべき入力と、当該入力の信頼度と、を学習し、
前記算定部は、前記学習された入力の信頼度により、前記到達確率を算定する
ように構成することができる。
【0119】
本構成では、学習段階で試行錯誤をした際の収束の速度や、学習された入力がどの程度正しいかを試行した結果によって、学習された入力の信頼度を求め、この信頼度に基づいて到達確率を算定するもので、物理エンジンが非決定的な場合に好適である。
【0120】
また、本実施形態に係る情報処理装置において、
前記学習部は、焼きなまし法により、前記入力を学習する
ように構成することができる。
【0121】
本構成では、焼きなまし法を用いることで、オブジェクトの移動の途中に障害物があったり、物理シミュレーションにランダム性がある場合であっても、合理的な繰り返し回数で、合理的な計算時間で、入力を学習することができる。
【0122】
また、本実施形態に係る情報処理装置において、
前記第2領域に設定された有利度から前記第1領域に設定された有利度を減算して得られる差と、前記算定された到達確率と、の積を、前記第1領域のいずれかの位置に存在するオブジェクトに対して前記学習された入力を与えたときの利得の期待値とすることにより、前記物理エンジンの管理下で前記第1領域のいずれかの位置に存在するオブジェクトに対して与える入力として、前記学習された入力を採用するか否かを決定する決定部
をさらに備えるように構成することができる。
【0123】
本構成によれば、上記の情報処理装置によって得られた入力および到達確率を利用することで、少ない計算量で高速に、さまざまな状況に合理的に対応したオブジェクトの移動戦略を決定することができる。
【0124】
本実施形態に係る情報処理方法は、複数の領域に分割されたマップを参照する情報処理装置が実行し、
前記情報処理装置が、物理エンジンの管理下で、前記複数の領域のうち第1領域内の第1代表点に存在するオブジェクトを前記複数の領域のうち第2領域内の第2代表点に到達させるために、前記第1代表点において前記オブジェクトに対して与えるべき入力を学習する学習ステップ、
前記情報処理装置が、前記物理エンジンの管理下で、前記第1領域内の任意の位置に存在する前記オブジェクトに対して前記学習された入力を与えると、前記オブジェクトが前記第2領域内のいずれかの位置に到達する到達確率を算定する算定ステップ
を備える。
【0125】
本実施形態に係るプログラムは、複数の領域に分割されたマップを参照するコンピュータを、
物理エンジンの管理下で、前記複数の領域のうち第1領域内の第1代表点に存在するオブジェクトを前記複数の領域のうち第2領域内の第2代表点に到達させるために、前記第1代表点において前記オブジェクトに対して与えるべき入力を学習する学習部、
前記物理エンジンの管理下で、前記第1領域内の任意の位置に存在する前記オブジェクトに対して前記学習された入力を与えると、前記オブジェクトが前記第2領域内のいずれかの位置に到達する到達確率を算定する算定部
として機能させる。
【0126】
本実施形態に係る端末は、
上記の情報処理装置により算定された前記到達確率を、コンピュータ通信網、もしくは、非一時的なコンピュータ読取可能な情報記録媒体を介して取得する取得部、
前記第2領域に設定された有利度から前記第1領域に設定された有利度を減算して得られる差と、前記算定された到達確率と、の積を、前記第1領域のいずれかの位置に存在するオブジェクトに対して前記学習された入力を与えたときの利得の期待値とすることにより、前記物理エンジンの管理下で前記第1領域のいずれかの位置に存在するオブジェクトに対して与える入力として、前記学習された入力を採用するか否かを決定する決定部
を備えるように構成することができる。
【0127】
本構成によれば、事前に高性能の情報処理装置で入力および到達確率を学習および算定しておくことで、計算性能が低い端末であっても、短時間に合理的なオブジェクトの移動戦略を決定することができる。
【課題】物理エンジンの管理下で、マップの第1領域内にあるオブジェクトを第2領域内へ到達させるために当該オブジェクトに対して与えるべき入力と到達確率を算定したい。
【解決手段】複数の領域に分割されたマップを参照する情報処理装置101において、学習部102は、物理エンジンの管理下で、複数の領域のうち第1領域内の第1代表点に存在するオブジェクトを複数の領域のうち第2領域内の第2代表点に到達させるために、第1代表点においてオブジェクトに対して与えるべき入力を学習する。算定部103は、物理エンジンの管理下で、第1領域内の任意の位置に存在するオブジェクトに対して学習された入力を与えると、オブジェクトが第2領域内のいずれかの位置に到達する到達確率を算定する。