以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.ゲームシステム
図1は、本実施形態のゲームシステム(シミュレーションシステム、ゲーム装置)の構成例を示すブロック図である。なお、本実施形態のゲームシステムは図1の構成に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
可動筐体40(広義には筐体)は、ユーザのプレイ位置を変化させる筐体である。この可動筐体40は、例えばアーケード筐体などと呼ばれるものである。可動筐体40は、ロボットゲームや車ゲームや飛行機ゲームなどにおけるコックピット筐体(体感筐体)であってもよい。可動筐体40は、ゲームシステムの本体部分であり、ゲームシステムを実現するための種々の機器、構造物が設けられる。
操作部160は、ユーザ(プレーヤ)が種々の操作情報(入力情報)を入力するためのものである。操作部160は、例えば操作ボタン、方向指示キー、ジョイスティック、ハンドル、ペダル、レバー又は音声入力装置等の種々の操作デバイスにより実現できる。
記憶部170は各種の情報を記憶する。記憶部170は、処理部100や通信部196などのワーク領域として機能する。ゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。記憶部170の機能は、半導体メモリ(DRAM、VRAM)、HDD(ハードディスクドライブ)、SSD、光ディスク装置などにより実現できる。記憶部170は、オブジェクト情報記憶部172、対話情報記憶部173、行動制御情報記憶部174、パラメータ情報記憶部175、描画バッファ178を含む。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、BD、CD)、HDD、或いは半導体メモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(入力装置、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
HMD200(頭部装着型表示装置)は、ユーザの頭部に装着されて、ユーザの眼前に画像を表示する装置である。HMD200は非透過型であることが望ましいが、透過型であってもよい。またHMD200は、いわゆるメガネタイプのHMDであってもよい。
HMD200は、センサ部210、表示部220、処理部240を含む。なおHMD200に発光素子を設ける変形実施も可能である。センサ部210は、例えばヘッドトラッキングなどのトラッキング処理を実現するためものである。例えばセンサ部210を用いたトラッキング処理により、HMD200の位置、方向を特定する。HMD200の位置、方向が特定されることで、ユーザの視点位置、視線方向を特定できる。
トラッキング方式としては種々の方式を採用できる。トラッキング方式の一例である第1のトラッキング方式では、後述の図3(A)、図3(B)で詳細に説明するように、センサ部210として複数の受光素子(フォトダイオード等)を設ける。そして外部に設けられた発光素子(LED等)からの光(レーザー等)をこれらの複数の受光素子により受光することで、現実世界の3次元空間でのHMD200(ユーザの頭部)の位置、方向を特定する。第2のトラッキング方式では、後述の図4(A)、図4(B)で詳細に説明するように、複数の発光素子(LED)をHMD200に設ける。そして、これらの複数の発光素子からの光を、外部に設けられた撮像部で撮像することで、HMD200の位置、方向を特定する。第3のトラッキング方式では、センサ部210としてモーションセンサを設け、このモーションセンサを用いてHMD200の位置、方向を特定する。モーションセンサは例えば加速度センサやジャイロセンサなどにより実現できる。例えば3軸の加速度センサと3軸のジャイロセンサを用いた6軸のモーションセンサを用いることで、現実世界の3次元空間でのHMD200の位置、方向を特定できる。なお、第1のトラッキング方式と第2のトラッキング方式の組合わせ、或いは第1のトラッキング方式と第3のトラッキング方式の組合わせなどにより、HMD200の位置、方向を特定してもよい。またHMD200の位置、方向を特定することでユーザの視点位置、視線方向を特定するのではなく、ユーザの視点位置、視線方向を直接に特定するトラッキング処理を採用してもよい。
HMD200の表示部220は例えば有機ELディスプレイ(OEL)や液晶ディスプレイ(LCD)などにより実現できる。例えばHMD200の表示部220には、ユーザの左眼の前に設定される第1のディスプレイ又は第1の表示領域と、右眼の前に設定される第2のディスプレイ又は第2の表示領域が設けられており、立体視表示が可能になっている。立体視表示を行う場合には、例えば視差が異なる左眼用画像と右眼用画像を生成し、第1のディスプレイに左眼用画像を表示し、第2のディスプレイに右眼用画像を表示する。或いは1つのディスプレイの第1の表示領域に左眼用画像を表示し、第2の表示領域に右眼用画像を表示する。またHMD200には左眼用、右眼用の2つの接眼レンズ(魚眼レンズ)が設けられており、これによりユーザの視界の全周囲に亘って広がるVR空間が表現される。そして接眼レンズ等の光学系で生じる歪みを補正するための補正処理が、左眼用画像、右眼用画像に対して行われる。この補正処理は表示処理部120が行う。
HMD200の処理部240は、HMD200において必要な各種の処理を行う。例えば処理部240は、センサ部210の制御処理や表示部220の表示制御処理などを行う。また処理部240が、3次元音響(立体音響)処理を行って、3次元的な音の方向や距離や広がりの再現を実現してもよい。
音出力部192は、本実施形態により生成された音を出力するものであり、例えばスピーカ又はヘッドホン等により実現できる。
I/F(インターフェース)部194は、携帯型情報記憶媒体195とのインターフェース処理を行うものであり、その機能はI/F処理用のASICなどにより実現できる。携帯型情報記憶媒体195は、ユーザが各種の情報を保存するためのものであり、電源が非供給になった場合にもこれらの情報の記憶を保持する記憶装置である。携帯型情報記憶媒体195は、ICカード(メモリカード)、USBメモリ、或いは磁気カードなどにより実現できる。
通信部196(通信インターフェース)は、有線や無線のネットワークを介して外部(他の装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作情報や、HMD200でのトラッキング情報(HMDの位置及び方向の少なくとも一方の情報。視点位置及び視線方向の少なくとも一方の情報)や、プログラムなどに基づいて、ゲーム処理(シミュレーション処理)、表示処理、或いは音処理などを行う。
処理部100の各部が行う本実施形態の各処理(各機能)はプロセッサ(ハードウェアを含むプロセッサ)により実現できる。例えば本実施形態の各処理は、プログラム等の情報に基づき動作するプロセッサと、プログラム等の情報を記憶するメモリにより実現できる。プロセッサは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。例えば、プロセッサはハードウェアを含み、そのハードウェアは、デジタル信号を処理する回路及びアナログ信号を処理する回路の少なくとも一方を含むことができる。例えば、プロセッサは、回路基板に実装された1又は複数の回路装置(例えばIC等)や、1又は複数の回路素子(例えば抵抗、キャパシター等)で構成することもできる。プロセッサは、例えばCPU(Central Processing Unit)であってもよい。但し、プロセッサはCPUに限定されるものではなく、GPU(Graphics Processing Unit)、或いはDSP(Digital Signal Processor)等、各種のプロセッサを用いることが可能である。またプロセッサはASICによるハードウェア回路であってもよい。またプロセッサは、アナログ信号を処理するアンプ回路やフィルター回路等を含んでもよい。メモリ(記憶部170)は、SRAM、DRAM等の半導体メモリであってもよいし、レジスターであってもよい。或いはハードディスク装置(HDD)等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリはコンピュータにより読み取り可能な命令を格納しており、当該命令がプロセッサにより実行されることで、処理部100の各部の処理(機能)が実現されることになる。ここでの命令は、プログラムを構成する命令セットでもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
処理部100は、入力処理部102、演算処理部110、出力処理部140を含む。演算処理部110は、対話処理部111、分析処理部112、行動処理部113、ゲーム処理部116、カスタマイズ処理部118、表示処理部120、音処理部130を含む。上述したように、これらの各部により実行される本実施形態の各処理は、プロセッサ(或いはプロセッサ及びメモリ)により実現できる。なお、これらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
入力処理部102は、操作情報やトラッキング情報を受け付ける処理や、記憶部170から情報を読み出す処理や、通信部196を介して情報を受信する処理を、入力処理として行う。例えば入力処理部102は、操作部160を用いてユーザが入力した操作情報やHMD200のセンサ部210等により検出されたトラッキング情報を取得する処理や、読み出し命令で指定された情報を、記憶部170から読み出す処理や、外部装置(サーバ等)からネットワークを介して情報を受信する処理を、入力処理として行う。ここで受信処理は、通信部196に情報の受信を指示したり、通信部196が受信した情報を取得して記憶部170に書き込む処理などである。
演算処理部110は、各種の演算処理を行う。例えば対話処理、分析処理、行動処理、ゲーム処理(シミュレーション処理)、カスタマイズ処理、表示処理、或いは音処理などの演算処理を行う。
対話処理部111は、ユーザとアバター間やアバター間での対話を行うための各種処理を行う。分析処理部112は対話内容の分析処理を行う。行動処理部113は移動体の行動制御のための各種の処理を行う。これらの対話処理部111、分析処理部112、行動処理部113の詳細については後述する。
ゲーム処理部116(ゲーム処理のプログラムモジュール)は、ユーザがゲームをプレイするための種々のゲーム処理を行う。別の言い方をすれば、ゲーム処理部116(シミュレーション処理部)は、ユーザが仮想現実(バーチャルリアリティ)を体験するための種々のシミュレーション処理を実行する。ゲーム処理は、例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、開始したゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、或いはゲーム成績を演算する処理などである。
表示処理部120(表示処理のプログラムモジュール)は、ゲーム画像(シミュレーション画像)の表示処理を行う。例えば処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部220に表示する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、仮想空間において仮想カメラ(所与の視点。左眼用、右眼用の第1、第2の視点)から見える画像が生成される。なお、表示処理部120で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
音処理部130(音処理のプログラムモジュール)は、処理部100で行われる種々の処理の結果に基づいて音処理を行う。具体的には、楽曲(音楽、BGM)、効果音、又は音声などのゲーム音を生成し、ゲーム音を音出力部192に出力させる。なお音処理部130の音処理の一部(例えば3次元音響処理)を、HMD200の処理部240により実現してもよい。
出力処理部140は各種の情報の出力処理を行う。例えば出力処理部140は、記憶部170に情報を書き込む処理や、通信部196を介して情報を送信する処理を、出力処理として行う。例えば出力処理部140は、書き込み命令で指定された情報を、記憶部170に書き込む処理や、外部の装置(サーバ等)に対してネットワークを介して情報を送信する処理を行う。送信処理は、通信部196に情報の送信を指示したり、送信する情報を通信部196に指示する処理などである。
図1に示すように本実施形態のゲームシステムは、対話処理を行う対話処理部111と、分析処理を行う分析処理部112と、行動処理を行う行動処理部113と、ゲーム処理を行うゲーム処理部116を含む。
対話処理部111(対話処理のプログラムモジュール)は、ユーザ(プレーヤ)とアバターが対話を行うための対話処理を行う。アバターはユーザの対話相手になると共に、ゲームに登場する移動体の頭脳となるものである。アバターは、移動体の分身とも言うことができる。対話処理部111は、対話処理として、例えばユーザの会話入力を受け付ける処理を行う。ユーザは例えば音声により会話を入力してもよいし、例えば操作部160のキー入力やタッチパネルのタッチ操作などにより会話を入力してもよい。音声で会話が入力された場合には、対話処理部111は、対話処理として、例えば会話の音声認識処理を行い、例えば会話内容をテキストデータ等の会話データとして取得する。例えばユーザの音声から音響モデルに基づき音素列を抽出し、音素列から単語候補を推定する。そして推定された単語候補から言語モデルに基づいて音声の会話内容の認識処理を行って、テキストデータ等の会話データを取得する。キー入力やタッチ操作により会話が入力された場合には、キー入力やタッチ操作の操作情報に基づいて、テキストデータ等の会話データを取得する。このようにして取得された会話データは、対話情報として対話情報記憶部173に蓄積される。また対話処理部111は、ユーザとアバターとの間で行われる対話のシーケンス処理を対話処理として行う。例えば対話処理部111は、ユーザの会話に対して、アバターが行う会話内容の選択処理や、会話の流れの分岐を制御する処理などを、対話処理として行う。また対話処理部111は、複数のアバター間で対話を行うための対話処理を行ってもよい。
分析処理部112(分析処理のプログラムモジュール)は対話内容の分析処理を行う。具体的にはユーザとアバターとの間で行われた対話内容を分析する処理を行う。例えば、対話情報記憶部173に蓄積された対話情報である会話データを読み出して、対話内容の分析処理を行う。例えばアバターの会話に対するユーザの会話の応答の会話データを取得し、会話データに基づいてユーザの会話内容の分析処理を行う。例えばユーザの会話の要約処理などを行い、ユーザの会話の応答が、候補となる会話応答のうちのいずれの会話応答に合致又は類似するかを判断する会話内容の推定処理を行う。例えば、ユーザの会話応答のデータと、候補となる会話応答のデータとのマッチング処理などを行って、ユーザの会話応答の内容を推定する分析処理を行う。或いは、ユーザの会話応答の選択肢を表示部などを用いてユーザに提示し、選択肢の中から、ユーザが、自身が所望する会話応答を選択することで、ユーザの会話応答の内容を分析してもよい。分析処理部112が行う対話内容の分析処理は、例えば公知のテキストマイニングやディープランニングなどの処理により実現できる。
行動処理部113(行動処理のプログラムモジュール)は、移動体の行動制御情報の作成処理(生成処理、設定処理)を行う。具体的には対話内容の分析結果に基づいて、ゲームでの移動体の一連の行動を制御するための行動制御情報(アバターの思考方針)をアバターに対応づけて作成する処理を行う。作成された行動制御情報は、例えばアバターに対応づけられて行動制御情報記憶部174に記憶されて登録される。例えば複数のアバターが登場する場合には、複数のアバターの各アバターに対して、複数の行動制御情報の各行動制御情報が対応づけられて行動制御情報記憶部174に記憶される。行動制御情報は、ゲームに登場するロボットや乗り物等の移動体がゲームおいて行う一連の行動を制御するための情報である。移動体の行動は、移動体の移動や動作(モーション)などである。例えば移動体がゲームにおいて第1〜第Mの行動というような一連の行動を行う場合に、第1〜第Mの行動の各行動が、行動制御情報により制御される。例えば行動制御情報は、移動体の行動を制御するプログラム(アルゴリズム)である行動制御プログラムや、行動制御用の各種データを含むことができる。例えばゲームにおいては、敵移動体の行動の状況、同じチームに属する味方移動体の行動の状況、移動体の環境状況(移動体が移動するマップの状況、移動体の周囲の状況、或いは時刻等の時間情報の状況)、或いはゲームの進行状況などを含むゲーム状況が、様々に変化する。行動制御情報である行動制御プログラムは、これらのゲーム状況である1又は複数の状況を入力として、当該状況に対して移動体がどのような行動を行うかを決定するプログラム(アルゴリズム)である。例えば敵移動体が攻撃して来た場合に、反撃するか、防御するか、逃避するか、反撃する場合にはどのような攻撃内容で反撃するか、防御する場合にはどのような態様で防御するかなどを、行動制御情報である行動制御プログラムに基づき決定する。また行動制御情報である行動制御用データは、移動体が各種の行動をとる場合の行動の態様(例えば攻撃の強さ、防御の度合い、移動の速さ、又は逃避の度合い等)を決定するためのパラメータなどである。行動制御情報は、例えばAI処理と呼ばれるニューラルネットワークの処理により生成される情報であってもよい。また行動制御情報の作成処理は、ユーザが行動制御情報を作成できるようにするためにコンピュータが行う行動制御情報の生成・設定処理である。
ゲーム処理部116は、移動体が登場するゲームの処理を行う。具体的にはゲーム処理部116は、アバターに対応づけられた行動制御情報に基づき制御される移動体が登場するゲームの処理を行う。例えば、ユーザが使用するアバターに対応づけられる行動制御情報を行動制御情報記憶部174から読み出し、読み出された行動制御情報に基づいて、ゲームでの移動体の一連の行動を制御するためのゲーム処理を行う。例えばゲーム処理部116は、敵移動体の行動状況、味方移動体の行動状況、移動体の環境状況、或いはゲームの進行状況などのゲーム状況を、行動制御情報である行動制御プログラムに入力して、移動体の行動を決定して、移動体を移動させたり、動作させるなどの移動体の制御処理を実行する。またゲーム処理部116は、移動体が登場するゲームを開始する処理、開始したゲームを進行させる処理、移動体と敵移動体を対戦させるための処理、移動体が登場するゲームを終了する処理、或いは移動体と敵移動体との対戦結果等に基づいてユーザのゲームの成績(ゲーム結果)を演算する処理などを行う。
またアバターは、例えば仮想空間に登場するキャラクタである。例えばアバターは、ゲーム空間である仮想空間に登場して表示される表示物であるキャラクタである。このアバターは、ユーザとの対話処理や行動制御情報の作成処理の際にだけユーザに対して表示してもよいし、ゲーム中において移動体と同様にユーザに対して表示してもよい。この場合に、対話処理や行動制御情報の作成処理の際におけるアバターの表示態様と、移動体が登場するゲームにおけるアバターの表示態様を異ならせてもよい。例えばアバターを3次元のキャラクタとして表示したり、アバターを2次元のキャラクタとして表示したり、或いはアバターの一部の部位(例えば顔)だけを表示するなどして、対話処理や行動制御情報の作成処理の際の表示態様と、ゲームでの表示態様を異ならせてもよい。
なお、アバターは実空間に登場するロボットなどの機器などであってもよい。同様に移動体は、ゲームにおいて表示される表示物には限定されず、例えば実空間に登場するロボットや乗り物等の実機の移動機器であってもよい。また本実施形態では、移動体やアバターが登場するゲームの画像が、HMD200に表示されるVRゲームの場合を主に例にとり説明するが、ゲーム画像が、HMD200とは異なる通常のディスプレイ(液晶ディスプレイ、ドーム型ディスプレイ、PCのモニター等)に表示されるものであってもよい。
また行動処理部113は、行動制御情報の作成処理の際に学習処理を行う。この学習処理は学習処理部114が行う。具体的には行動処理部113は、移動体が登場するゲームのゲーム結果に基づいて学習処理を行い、学習処理の結果に基づいて行動制御情報を更新する処理を行う。即ち、移動体が登場するゲームでのゲーム結果をフィードバックして、行動制御情報の更新処理を行う。例えば移動体が登場するゲームのゲーム結果を教師データとして学習処理を行い、この学習処理の結果を行動制御情報に反映させる処理を行う。例えば行動処理部113は、ニューラルネットワーク処理などに基づいて行動制御情報の作成処理や更新処理を行う。例えばゲームにおいて移動体が第1の行動を行った場合のゲーム結果が、第2の行動を行った場合のゲーム結果よりも、より高く評価されるゲーム結果(例えば得点や取得したポイントなどのゲーム成績が高い)であったとする。この場合には行動処理部113は、第2の行動に比べて、第1の行動を行う確率がより高くなるように、行動制御情報を更新する。ニューラルネットワーク処理を例にとれば、第2の行動に比べて、第1の行動の方を選択するように、ニューラルネットワークの重み係数等を変化させる更新処理を行う。
また対話処理部111は、アバターに対応する移動体によるゲーム結果に応じて、ユーザとアバターとの対話内容を変化させる処理を行う。例えばゲームにおいて移動体が第1の行動を行った場合のゲーム結果が、第2の行動を行った場合のゲーム結果よりも、より高く評価されるゲーム結果であったとする。この場合には、第2の行動に比べて、第1の行動を採用することを誘導するような会話をアバターが行うように、ユーザとアバターとの対話内容を変化させる。例えば、移動体の行動として、第2の行動に比べて、第1の行動の方がお勧めの行動であることをユーザに知らせるような会話を、アバターに行わせる。或いは、ユーザが、移動体の行動として、第2の行動に比べて第1の行動を選びやすくような会話の流れになるように、会話の分岐処理を行う。またユーザの移動体が、敵移動体等との対戦に敗戦したというゲーム結果の場合には、アバターが、ゲーム内容に基づき反省点について会話する。そして移動体の行動制御の思考方針の補正が行われるように、対話内容を変更する。
またゲーム処理部116は、ユーザによるアバターの選択を受け付ける処理を行う。具体的には、行動態様、性格、能力及び属性の少なくとも1つが異なる複数の候補アバターの中から、ユーザがゲームにおいて使用するアバターの選択を受け付ける処理を行う。例えば、行動態様、性格、能力及び属性の少なくとも1つが異なる複数の候補アバターを選択するための選択画面をユーザに対して表示する。そして、当該選択画面に表示された候補アバターの中からユーザが所望のアバターを選択すると、選択されたアバターが、例えば行動制御情報の作成処理の対象に設定される。また当該選択画面は、移動体に対応づけるアバター(移動体の頭脳として使用されるアバター)をゲームにおいてユーザが選択するための画面であってもよい。アバターの行動態様は、アバターがどのような行動を行う傾向にあるかを表す指標である。例えば行動態様としては、攻撃の行動をとる傾向にある攻撃型、守備の行動をとる傾向にある守備型、攻守のバランスがとれたバランス型、或いは攻撃や守備よりも移動を優先する傾向にある機動型などの種々の態様を想定できる。アバターの性格は、擬人化されているアバターの擬人としての性格を表す指標である。例えば性格としては、行動的で積極的で楽観的なポジティブタイプ(外向的)、否定的で消極的で悲観的なネガティブタイプ(内向的)、客観的・論理的に知性で物事を捉えようとする熟考タイプ(思考型)、直感などの無意識で判断をくだす直感タイプ、或いは好き嫌いで物事を判断する感情タイプなど、種々のタイプを想定できる。アバターの能力は、移動体の頭脳や操作主体となるアバターの頭脳や操作主体としての能力を表す指標である。例えばアバターの頭脳や操作主体としての能力が高いと、当該アバターに対応する移動体は、より思考能力の高い行動を行ったり、より高い操作能力で操作された行動を行うようになる。アバターの属性は、当該アバターに備わっている固有の性質や特徴であり、同じ属性のアバターは共通の性質や特徴を有することになる。例えばアバターの属性としては、炎属性、水属性、雷属性、闇属性又は土属性などのキャラクタとしての属性がある。或いはアバターの属性は、性別や年齢層などの属性であってもよい。
また本実施形態のゲームシステムはカスタマイズ処理部118(カスタマイズ処理のプログラムモジュール)を含み、カスタマイズ処理部118は、例えばアバターの外観のカスタマイズ処理を行う。或いはカスタマイズ処理部118は、移動体の構成パーツや装備品についてのカスタマイズ処理を行ってもよい。例えば、アバターや移動体のカスタマイズを行うためのカスタマイズ画面をユーザに対して表示する。そしてユーザは、このカスタマイズ画面において、アバターや移動体に対する種々のカスタマイズを行う。例えばカスタマイズ処理部118は、アバターの外観を変化させるような衣装や装飾物やメークをユーザが任意に変更するためカスタマイズ処理を行う。或いは移動体の構成パーツや装備品をユーザが選択するためのカスタマイズ処理を行う。そして行動処理部113は、対話内容の分析結果とカスタマイズ処理の結果に基づいて、行動制御情報の作成処理を行う。例えばアバターに対して行われたカスタマイズ処理の結果を反映させた行動制御情報の作成処理を行う。例えばアバターに対してフォーマルな外観の衣装や装飾品を着用させるカスタマイズが行われると、突飛な行動よりも、オーソドックスな行動を行うような行動制御情報が作成されるようになる。一方、アバターに対してインフォーマルな外観の衣装や装飾品を着用させるカスタマイズが行われると、オーソドックスな行動よりも、突飛な行動を行うような行動制御情報が作成されるようになる。例えば、アバターに対しては、行動態様、性格、能力又は属性を表すパラメータが設定されている。このパラメータの情報はパラメータ情報記憶部175に記憶されている。そしてアバターの外観等に対してカスタマイズ処理が行われると、そのカスタマイズ処理の結果に応じて、アバターの行動態様、性格、能力又は属性を表すパラメータが間接的に変化する。そして、これらのパラメータの変化に応じて、アバターに対応づけて作成される行動制御情報も変化するようになる。
また対話処理部111は、複数のアバターとユーザとの対話処理を行う。例えば複数のアバターの各アバターの会話とユーザの会話とによる対話を進行させる対話処理を行う。そして行動処理部113は、複数のアバターとユーザとの対話内容の分析結果に応じて、行動制御情報の作成処理を行う。例えば複数のアバターとユーザとの対話の内容に応じて、行動制御情報を変化させる処理を行う。例えばゲーム画面に、複数のアバターとユーザを表示したり、複数のアバターの各アバターとユーザを表示する。そして、これらのアバターとユーザとの対話を進行させる処理を行う。例えば、第1のアバター及び第2のアバターの一方のアバターに対応づけられる行動制御情報を作成する場合に、対話処理部111は、一方のアバターとは異なる他方のアバターとユーザとの対話処理も行う。そして行動処理部113は、一方のアバターとユーザとの間での対話内容の分析結果のみならず、他方のアバターとユーザとの間での対話内容の分析結果に基づいて、一方のアバターに対応づけられる行動制御情報の作成処理を行う。このようにすることで、複数のアバターとの対話内容も反映させた行動制御情報の作成処理が可能になる。
具体的には対話処理部111は、ユーザの対話相手となる複数のアバターを登場させる。例えばアバターとして第1のアバターと第2のアバターを登場させる。そして行動処理部113は、ユーザと第1のアバターとの間で行われた対話内容の分析結果に基づいて、第2のアバターに対応づけられる行動制御情報の作成処理を行う。例えば行動処理部113は、第2のアバターに対応づけられる行動制御情報の作成処理を行う際に、第2のアバターとユーザとの間での対話内容の分析結果のみならず、第1のアバターとユーザとの間での対話内容の分析結果も反映させて、第2のアバターに対応づけられる行動制御情報の作成処理を行う。このようにすれば、例えば第1のアバターに対応する第1の移動体と第2のアバターに対応する第2の移動体が、ゲームにおいて同じグループに属して行動する場合(チームを組んで行動する場合)などにおいて、有効な行動制御処理を実現できるようになる。
また行動処理部113は、第1のアバターと第2のアバターとの間で行われた対話内容の分析結果に基づいて、第1、第2のアバターの少なくとも一方の行動制御情報の作成処理を行う。即ち、ユーザとアバターの間での対話内容のみならず、複数のアバター間での対話内容も反映させた行動制御情報の作成処理を行う。このようにすれば、複数のアバターが連携して行動を行うことを可能にするような行動制御情報の作成処理が可能になる。
そして以上のような手法により行動情報の作成処理を行う場合には、複数のアバター間での相性情報を用いることが望ましい。即ち行動処理部113は、第1のアバターと第2のアバターの間の相性情報に基づき、行動制御情報の作成処理を行う。具体的にはアバターの間には相性情報が設定されており、例えば第1のアバターと第2のアバターは相性度が高く設定されており(相性が良い)、第1のアバターと第3のアバターは相性度が低く設定されていた(相性が悪い)とする。このとき、相性が良い第1のアバターと第2のアバターの対話内容の分析結果に基づき行動制御情報を作成する場合には、相性が良くない第1のアバターと第3のアバターの対話内容の分析結果に基づき作成する場合に比べて、よりユーザに有利になるような行動制御情報を作成する。或いは第1のアバターと第2のアバターが対話を行い、第1のアバターと第3のアバターも対話を行った場合に、相性の悪い第1のアバターと第3のアバターの間の対話内容よりも、相性の良い第1のアバターと第2のアバターの間の対話内容の方が、より反映されるように行動制御情報を作成する。こうすることで、複数のアバター間での対話の分析結果を用いる場合に、アバター間の相性情報を反映させた行動制御情報の作成処理が可能になる。
またゲーム処理部116は、仮想空間の設定処理を行い、仮想空間において移動体を移動させる処理を行う。この移動体を移動させる制御処理は移動体制御部117が行う。
即ちゲーム処理部116は仮想空間の設定処理を行う。例えばゲーム処理部116(仮想空間設定部)は、仮想空間の設定処理として、オブジェクトが配置される仮想空間(オブジェクト空間)の設定処理を行う。例えば、移動体(ロボット、戦車、人、車、電車、飛行機、船、モンスター又は動物等)、マップ(地形)、建物、観客席、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)を仮想空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクト情報記憶部172には、仮想空間でのオブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等の情報であるオブジェクト情報がオブジェクト番号に対応づけて記憶される。ゲーム処理部116は、例えば各フレーム毎にこのオブジェクト情報を更新する処理などを行う。
そしてゲーム処理部116は、移動体の制御処理として、仮想空間内で移動する移動体についての種々の処理を行う。例えば仮想空間(オブジェクト空間、ゲーム空間)において移動体を移動させる処理や、移動体を動作させる処理を行う。例えばゲーム処理部116は、移動体制御情報や、各種データ(モーションデータ)などに基づいて、移動体(モデルオブジェクト)を仮想空間内で移動させたり、移動体を動作(モーション、アニメーション)させる制御処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(例えば1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
またゲーム処理部116は仮想カメラを制御する処理を行う。例えば操作部160により入力されたユーザの操作情報やトラッキング情報などに基づいて、仮想カメラを制御する処理を行う。例えばゲーム処理部116(仮想カメラ制御部)は、ユーザの一人称視点又は三人称視点として設定される仮想カメラの制御を行う。例えば仮想空間において移動するユーザ移動体(仮想ユーザ)の視点(一人称視点)に対応する位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置(位置座標)や姿勢(回転軸回りでの回転角度)を制御する。或いは、ユーザ移動体に追従する視点(三人称視点)の位置に、仮想カメラを設定して、仮想カメラの視点位置や視線方向を設定することで、仮想カメラの位置や姿勢を制御する。例えばゲーム処理部116は、視点トラッキングにより取得されたユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御する。例えば本実施形態では、ユーザの視点位置、視線方向の少なくとも1つである視点情報のトラッキング情報(視点トラッキング情報)が取得される。このトラッキング情報は、例えばHMD200のトラッキング処理を行うことで取得できる。そしてゲーム処理部116は、取得されたトラッキング情報(ユーザの視点位置及び視線方向の少なくとも一方の情報)に基づいて仮想カメラの視点位置、視線方向を変化させる。例えば、ゲーム処理部116は、実空間でのユーザの視点位置、視線方向の変化に応じて、仮想空間での仮想カメラの視点位置、視線方向(位置、姿勢)が変化するように、仮想カメラを設定する。このようにすることで、ユーザの視点情報のトラッキング情報に基づいて、ユーザの視点変化に追従するように仮想カメラを制御できる。
また本実施形態のゲームシステムは、アミューズメント施設に設置される業務用のゲーム装置により実現してもよいし、家庭において利用される家庭用のゲーム装置により実現してもよいし、パーソナルコンピュータ(PC)やタブレット型コンピュータなどの情報処理装置により実現してもよい。或いはスマートフォン等の携帯型通信端末や携帯型ゲーム装置により実現してもよい。例えば本実施形態のゲームシステムは、図2に示すようにサーバシステム500と端末装置TM1〜TMnとがネットワーク510を介して通信接続されるシステムにおいて実現してもよい。なお以下では端末装置TM1〜TMnを、適宜、端末装置TMと記載する。
サーバシステム500は例えば1又は複数のサーバ(管理サーバ、ゲームサーバ、課金サーバ、サービス提供サーバ、コンテンツ配信サーバ、認証サーバ、データベースサーバ、又は通信サーバ等)により実現できる。このサーバシステム500は、コミュニティ型ウェブサイトやオンラインゲームを運営するための各種サービスを提供し、ゲーム実行に必要なデータの管理や、クライアントプログラム及び各種データ等の配信を行うことができる。これにより、例えば、ユーザ端末である端末装置TMによりSNS(Social Networking Service)などを利用するためにサーバシステム500にアクセスし、当該サーバシステム500から提供されるオンラインゲームであるソーシャルゲーム等のネットワークゲームのプレイが可能になる。
ネットワーク510(配信網、通信回線)は、例えばインターネットや無線LAN等を利用した通信路であり、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLANの他、電話通信網やケーブル網や無線LAN等の通信網を含むことができる。また通信方法については有線/無線を問わない。
端末装置TM(ユーザ端末)は、例えばネット接続機能(インターネット接続機能)を有する端末である。これらの端末装置TMとしては、例えば携帯型通信端末(スマートフォン、携帯電話機)、携帯型ゲーム装置、家庭用ゲーム装置、業務用ゲーム装置、或いは情報処理装置(PC)などの種々の装置を用いることができる。
例えば図2において、サーバシステム500が、ユーザとアバターが対話を行うための対話処理を行う対話処理部111と、対話内容を分析する分析処理部112と、対話内容の分析結果に基づいて、行動制御情報を作成する処理を行う行動処理部113と、行動制御情報に基づき制御される移動体が登場するゲームの処理を行うゲーム処理部116を含んでもよい。この場合に例えばサーバシステム500は、携帯型通信端末、携帯型ゲーム装置、家庭用ゲーム装置又は情報処理装置などの端末装置とネットワーク510と通信接続され、端末装置からの受信情報(端末装置の操作情報等)などを用いて、上記の対話処理、分析処理、行動処理、或いはゲーム処理などを行う。また業務用のゲーム装置などの端末装置は、ユーザとアバターとの間で行われた対話内容の分析結果に基づき作成された移動体の行動制御情報を、アバターに対応づけて記憶する記憶部170と、ゲームでの移動体の一連の行動を制御するための情報である行動制御情報を、記憶部170から読み出して、行動制御情報に基づいて、移動体を制御し、移動体が登場するゲームの処理を行うゲーム処理部116を含んでもよい。例えば対話処理、分析処理、行動処理、及びゲーム処理の一部をサーバシステム500が行い、業務用ゲーム装置等の端末装置は、サーバシステム500により作成された行動制御情報を記憶部170に記憶する。そして、記憶された行動制御情報に基づいて、ゲームに登場する移動体を制御し、移動体を移動したり、動作させる制御を行う。このようにすることで、ユーザは、例えば携帯型通信端末等でアバターとの対話を行って、行動制御情報を作成し、作成された行動制御情報を、例えばサーバシステム500から業務用のゲーム装置(広義には端末装置)に転送させることができる。そしてユーザは、アミューズメント施設の業務用ゲーム装置において、転送された行動制御情報に基づき行動が制御されるロボット等の移動体を用いて、ゲームを楽しむことが可能になる。なお本実施形態の各処理(対話処理、分析処理、行動処理、ゲーム処理、カスタマイズ処理、表示処理等)は、サーバシステム500と端末装置との分散処理により実現してもよい。
またゲーム処理部116は、アバターに対応づけられた行動制御情報に基づいて、移動体の制御を行うと共に、移動体のパラメータを変化させるユーザの操作入力を受け付ける処理を行う。例えばユーザは、操作部160を用いて移動体を直接には操作せずに、移動体の移動や動作は、アバターに対応づけられた行動制御情報に基づいて制御される。そして操作部160を介したユーザの操作入力としては、移動体のパラメータを変化させる操作入力を受け付ける。この移動体のパラメータは、移動体の移動や動作を制御するために使用されるパラメータ(ゲームパラメータ)であり、パラメータ情報記憶部175に記憶される。例えば移動体のパラメータは、移動体の攻撃力、守備力、機動力、魔法力、ヒットポイント或いはマジックポイント等のゲーム処理に使用されるパラメータであり、これらのパラメータを変化させるユーザの操作入力については受け付ける。こうすることで、ユーザは、ゲームでの移動体の行動に対しては直接に操作することはできないが、移動体のパラメータを変化させる操作を行うことで、移動体が敵と行う対戦に対して、間接的に関与できるようになる。
またゲーム処理部116は、ユーザによるアバターの変更要求を受け付ける処理を行う。具体的には、ゲーム中においてユーザによるアバターの変更要求を受け付け、変更後のアバターに対応づけられた行動制御情報に基づいて移動体の制御処理を行う。例えばゲーム開始時には、第1のアバターに対応づけられた行動制御情報に基づいて移動体が操作されて制御されていたとする。そしてゲームが進行し、ユーザがアバターの変更要求を行った場合に、この変更要求を受け付ける。そしてユーザが使用するアバターを第1のアバターから第2のアバターに変更し、第1のアバターに対応づけられた行動制御情報に基づき制御されていた移動体を、第2のアバターに対応づけられた行動制御情報により制御するように、行動制御情報の変更処理を行う。こうすることで、ユーザは、移動体の頭脳として動作する行動制御情報を、ゲーム中において変更できるようになり、ゲームの戦略性の向上等を図れるようになる。
2.トラッキング処理
次にトラッキング処理の例について説明する。図3(A)に本実施形態のゲームシステムに用いられるHMD200の一例を示す。図3(A)に示すようにHMD200には複数の受光素子201、202、203(フォトダイオード)が設けられている。受光素子201、202はHMD200の前面側に設けられ、受光素子203はHMD200の右側面に設けられている。またHMDの左側面、上面等にも不図示の受光素子が設けられている。またHMD200には、ヘッドバンド260やヘッドホン270が設けられている。
図3(B)に示すように、ユーザUSは、アミューズメント施設等に設置されたゲーム装置の可動筐体40に搭乗してゲームをプレイする。この可動筐体40の周辺には、ベースステーション280、284が設置されている。ベースステーション280には発光素子281、282が設けられ、ベースステーション284には発光素子285、286が設けられている。発光素子281、282、285、286は、例えばレーザー(赤外線レーザー等)を出射するLEDにより実現される。ベースステーション280、284は、これら発光素子281、282、285、286を用いて、例えばレーザーを放射状に出射する。そして図3(A)のHMD200に設けられた受光素子201〜203等が、ベースステーション280、284からのレーザーを受光することで、HMD200のトラッキング処理が実現され、ユーザUSの頭の位置や向く方向(視点位置、視線方向)を検出できるようになる。例えばユーザUSの位置情報や姿勢情報(方向情報)を検出できるようになる。
図4(A)にHMD200の他の例を示す。図4(A)では、HMD200に対して複数の発光素子231〜236が設けられている。これらの発光素子231〜236は例えばLEDなどにより実現される。発光素子231〜234は、HMD200の前面側に設けられ、発光素子235や不図示の発光素子236は、背面側に設けられる。これらの発光素子231〜236は、例えば可視光の帯域の光を出射(発光)する。具体的には発光素子231〜236は、互いに異なる色の光を出射する。
そして図4(B)に示す撮像部150を、ユーザUSの周囲の少なくとも1つの場所(例えば前方側、或いは前方側及び後方側など)に設置し、この撮像部150により、HMD200の発光素子231〜236の光を撮像する。即ち、撮像部150の撮像画像には、これらの発光素子231〜236のスポット光が映る。そして、この撮像画像の画像処理を行うことで、ユーザUSの頭部(HMD)のトラッキングを実現する。即ちユーザUSの頭部の3次元位置や向く方向(視点位置、視線方向)を検出する。
例えば図4(B)に示すように撮像部150には第1、第2のカメラ151、152が設けられており、これらの第1、第2のカメラ151、152の第1、第2の撮像画像を用いることで、ユーザUSの頭部の奥行き方向での位置等が検出可能になる。またHMD200に設けられたモーションセンサのモーション検出情報に基づいて、ユーザUSの頭部の回転角度(視線)も検出可能になっている。従って、このようなHMD200を用いることで、ユーザUSが、周囲の360度の全方向うちのどの方向を向いた場合にも、それに対応する仮想空間(仮想3次元空間)での画像(ユーザの視点に対応する仮想カメラから見える画像)を、HMD200の表示部220に表示することが可能になる。
なお、発光素子231〜236として、可視光ではなく赤外線のLEDを用いてもよい。また、例えばデプスカメラ等を用いるなどの他の手法で、ユーザの頭部の位置や動き等を検出するようにしてもよい。
また、ユーザUSの位置情報、姿勢情報(視点位置、視線方向)を検出するトラッキング処理の手法は、図3(A)〜図4(B)で説明した手法には限定されない。例えばHMD200に設けられたモーションセンサ等を用いて、HMD200のトラッキング処理を行って、位置情報や姿勢情報を検出してもよい。即ち、図3(B)のベースステーション280、284、図4(B)の撮像部150などの外部装置を設けることなく、トラッキング処理を実現する。或いは、公知のアイトラッキング、フェイストラッキング又はヘッドトラッキングなどの種々の視点トラッキング手法を用いてもよい。
3.本実施形態の手法
次に本実施形態の手法について説明する。なお、以下では、行動制御情報に基づき制御される移動体がロボットであり、ロボットと敵ロボットとが対戦するロボットゲームに本実施形態の手法を適用した場合について主に説明する。但し本実施形態の手法が適用されるゲームはこのようなロボットゲームには限定されない。例えば本実施形態の手法は、ロボットゲーム以外の種々のゲーム(仮想体験ゲーム、対戦ゲーム、RPG、アクションゲーム、競争ゲーム、スポーツゲーム、ホラー体験ゲーム、電車や飛行機等の乗り物のシミュレーションゲーム、パズルゲーム、コミュニケーションゲーム、或いは音楽ゲーム等)に適用可能である。また以下では、アバターがゲームに登場するキャラクタであり、ロボット等の移動体が仮想空間(仮想3次元空間、ゲーム空間)に登場するゲームへの適用例について説明する。しかしながら、例えばアバターは実空間のロボット等の機器であってもよいし、移動体も、実空間の対戦用ロボット等の移動機器であってもよい。また以下では、適宜、行動制御情報を単に行動制御プログラムと呼ぶ。
3.1 ゲームの説明
まず本実施形態の手法により実現されるロボットゲームについて説明する。このロボットゲームでは、アバターが頭脳となって動作するロボット(広義には移動体)が、アバターに対応する行動制御プログラム(アバターに対応づけられた行動制御情報)に基づき制御されて、敵ロボットと対戦する。ユーザは、このロボット対戦が行われる仮想世界に入り込み、自身がその行動制御プログラムを作成したロボットが、敵ロボットと戦う様子を観戦することで、ゲームを楽しむ。
例えば図5ではロボットRBが、実空間のビルを模した仮想空間のビルの前に立っており、仮想空間に入り込んだユーザUSは、この巨大なロボットRBを眺めている。例えばユーザUSはHMD200を装着しており、ユーザUSの全周囲の方向に亘って、ゲーム空間である仮想空間(VR空間)の世界が広がっている。例えばHMD200を装着したユーザUSが前方向を向けば、仮想空間において前方向に見えるゲーム画像がHMD200に表示され、ユーザUSが右方向を向けば、仮想空間において右方向に見えるゲーム画像がHMD200に表示される。これにより、あたかも本当に仮想空間の中に入り込んだかのような仮想現実感をユーザUSに与えることができる。なお、仮想空間には、実際には実空間のユーザUSは存在せず、ユーザUSに対応する仮想ユーザが存在することになるが、以下では説明の簡素化のために、適宜、仮想ユーザについてもユーザUSとして表記して説明を行う。
ゲームが開始すると、図6に示すように、ロボットRBと敵ロボットERBとの対戦が行われる。ユーザUS(実際には仮想ユーザ。以下、同様)は、ロボットRBと敵ロボットERBが戦っている空間の周囲を、飛行体PD(ポッド)に搭乗して自在に移動(飛行)できる。具体的には実空間においてはユーザUSは図3(B)に示すような可動筐体40の椅子42に座って搭乗しており、操作レバー44、46(操作部)などを操作する。そしてユーザUSは、操作レバー44、46を操作することで、仮想空間の飛行体PDの移動を操作することができる。そしてロボットRBと敵ロボットERBの周りを飛行体PDを用いて自由に飛び回って、自身が最適と考える観戦ポイントでロボット対戦の様子を観戦する。そしてロボットRBは、行動制御プログラム(広義には行動制御情報)に基づき、その移動や動作が制御される。例えばゲームでのロボットRBの移動、攻撃、防御又は退避などの一連の行動が、行動制御プログラムに基づき制御される。
本実施形態では、この行動制御プログラムを擬人化したアバターAVTが用意される。例えば図7に示すようにユーザは、スマートフォンなどの携帯型通信端末を用いて、行動制御プログラム(AIプログラム)を擬人化したアバターAVTとの対話を行う。このアバターAVTとの対話により、ロボットRBの行動制御プログラムが自動的に作成される。またユーザは、アバターAVTの衣装や装飾品を交換したり、ロボットRBのパーツや装備品を交換するなどのカスタマイズを行う。また図7に示すようにユーザは、携帯型通信端末のゲーム画面でプレイ可能な性能テストの戦闘を行い、腕試しや、実戦のゲームに向けてのテストを行う。そして例えば戦闘分析ツールを用いて、ロボットRBの機体や行動制御プログラムの改善などについての分析を行い、改善の方針を立てる。そして、例えば実戦のゲームで取得したゲーム内通貨やゲームポイントなどを消費して、ロボットRBのパーツや装備品を購入したり、アバターAVTの衣装や装飾品を購入して、カスタマイズを行う。
ユーザは、このようにして作り上げた行動制御プログラムを用いて、アミューズメント施設のゲーム装置(VRのシミュレーション装置)を用いて、実戦のゲームをプレイする。例えばユーザ(US)は、HMD200を頭部に装着して、可動筐体40の椅子42に座って搭乗する。そして操作レバー44、46を操作することで、図6に示す仮想空間での飛行体PDを操作して、自身が所望する観戦ポイントで、ロボットRBと他ユーザが操作する敵ロボットERBとのロボット対戦の観戦を楽しむ。このロボット対戦は、複数のユーザが各チームに属するチーム間同士で対戦を行うチーム対戦であってもよい。この場合にはユーザは、同じチーム(グループ)に属する他のユーザとの協力プレイを楽しむことになる。
図8はロボットRBのカスタマイズ画面の例である。ユーザは、ゲームで取得したゲーム内通貨やゲームポイントなどを用いて、ロボットRBを構成するパーツPTA〜PTDや、ロボットRBに装備する武器や防具などの装備品PTE〜PTHを購入して、ロボットRBのカスタマイズを行う。従って、ユーザはゲームに勝利することで、ロボットRBをカスタマイズにより強化することが可能になり、ロボットRBの性能や能力を成長させるという楽しみを得ることができる。
3.2 行動制御プログラム
本実施形態ではアバターとの対話を介して、ロボットRBの行動制御プログラムを作成する手法を採用している。例えば図9(A)、図9(B)は、スクラッチを利用して行動制御プログラムを作成する手法の説明図である。まず図9(A)の選択画面でロボットのタイプを選ぶ。例えばミサイルなどの遠距離攻撃が得意な遠距離タイプ、接近戦が得意な近接タイプ、中距離攻撃が得意な中距離タイプ、他の味方ロボットをサポートすることが得意なサポートタイプの中から、ユーザが所望するロボットのタイプを選択する。そして図9(A)ではユーザは近接タイプのタブをクリックして選択し、これにより図9(B)に示すようなプログラム作成画面が表示される。例えば図9(B)では、ユーザは、近接タイプのロボットの行動として右旋回のタブをクリックして選択している。そしてユーザは例えば右旋回時におけるロボットの攻撃、防御、移動等の詳細な行動を選択して、ロボットの行動制御プログラムを作成して行く。
このスクラッチを用いる手法は、ユーザが使い易いビジュアルインターフェースを採用している。しかしながら、ゲームに慣れていない初心者等のユーザには、行動制御プログラムの作成作業が煩雑であり、当該作成作業の煩雑さが、ゲームをプレイすることの大きな障壁となってしまう。例えば、ゲームをプレイする前に、ロボットの全ての行動パターンを図9(A)、図9(B)のようにユーザが選択して入力するのは煩雑であり、結果的に、ユーザがこのようなゲームをプレイすることを避けてしまう事態が発生してしまう。
そこで本実施形態では、ロボットの行動制御プログラムを擬人化したアバターと対話するだけという、ユーザにとって煩わしさの少ない作業で、ロボットの行動制御プログラムを作成できるようにする。このようにすれば、擬人化され個性を持ったアバター(プログラミングツール)と対話するだけで、自分好みのAIの行動制御プログラムを作成(生成)できるようになる。例えば本実施形態のゲームシステムでは、ユーザとアバターが対話を行う対話処理と、蓄積した対話内容を分析する分析処理と、分析結果によってアバターの思考方針が形成されるシステムにおいて、形成されたアバターの思考によって、ゲーム上の移動体(操作体)の操作(制御)を行い、その操作結果(制御結果)によって、ゲームの演算を実行する。具体的には本実施形態のゲームシステムでは、ユーザとアバターが対話を行うための対話処理を行い、ユーザとアバターとの間で行われた対話内容の分析処理を行い、対話内容の分析結果に基づいて、ゲームでのロボット(移動体)の一連の行動を制御するための行動制御プログラム(行動制御情報)をアバターに対応づけて作成する処理を行う。そしてアバターに対応づけられた行動制御プログラムに基づき制御されるロボットが登場するゲームの処理を行う。これらの処理は、携帯型通信端末等の端末装置が通信接続されるサーバシステムが行ったり、携帯型通信端末が行う。そして例えばアミューズメント施設等に設置されるゲーム装置(例えば業務用のゲーム装置)では、ユーザとアバターとの間で行われた対話内容の分析結果に基づき作成された移動体の行動制御プログラムを、アバターに対応づけて記憶部に記憶し、この行動制御プログラムを記憶部から読み出して、読み出された行動制御プログラムに基づいて、ロボットを制御し、ロボットが登場するゲームの処理を行う。アミューズメント施設のゲーム装置への行動制御プログラムの転送は、ネットワークを介して行ってもよいし、例えばユーザが所持する携帯型情報記憶媒体を、ゲーム装置の読み取り装置によって読み取ることで行ってもよい。
例えば図10はアバターAVTとユーザとの間で行われる対話処理の説明図である。ここではユーザはアバターAVTによりマスターと呼ばれている。例えば図10では、ロボットの行動制御プログラムを作成するために、敵が接近した際の使用武器や、武器の発射間隔や、弾薬が切れた場合の対応などを、アバターAVTがユーザに対して質問形式で会話している。例えば、このアバターAVTの質問に対してユーザが回答するという態様で、アバターAVTとユーザとの対話処理が実行される。そしてこのようにアバターAVTとユーザの対話が行われることで、図9(A)、図9(B)と同様に、ロボットの行動制御プログラムが作成されて行く。この場合にユーザの回答に対しては、要約処理やテキストマイニング処理を行うことで、その意味内容を分析し、分析された意味内容に応じて、行動制御プログラムを作成する。またアバターAVTが、行動制御プログラムの作成用の会話ばかりを行ってしまうと、ゲームへのユーザの没入度が低下してしまうおそれがある。従って、例えばアバターAVTは図11に示すような行動制御プログラムの作成とは無関係な通常の会話も行う。例えばユーザと共に実戦を重ねると、それに応じて普段のアバターAVTの会話も図11に示すような親密な会話内容に変化して行く。このようにすることで、アバターAVTがあたかも本物の人間のように感じることができる仮想現実感をユーザに与えることができ、ゲームへのユーザの没入度や熱中度を向上できる。
また、ゲームでのロボットの一連の行動(攻撃、防御、移動又は退避等)の各行動が、標準的な行動として記述された基本行動制御プログラムを用意してもよい。そして図10に示すようなアバターAVTとの対話の分析結果に基づいて、当該基本行動制御プログラムを更新することで、アバターAVTに対応する行動制御プログラムを作成して行く。この場合に、ユーザが選択可能な複数のアバターに対応する複数の基本行動制御プログラムを用意してもよい。そしてユーザが選択したアバターに対応する基本行動制御プログラムに対して、アバターAVTとユーザとの対話の内容に応じた更新処理を行うことで、当該アバターの行動制御プログラムを作成して行く。
また本実施形態ではロボットが登場するゲームのゲーム結果に基づいて学習処理を行う。そして学習処理の結果に基づいて行動制御プログラムを更新する。学習処理(ディープラーニング)に基づく行動制御プログラムの作成処理は、例えば図12(A)、図12(B)に示すようなニューラルネットワークのAI処理により実現できる。例えば図12(A)に示すようにニューラルネットワークは、入力層と中間層(隠れ層)と出力層で構成される。そして、出力層からの出力と、教師データである正解ラベルとの誤差を計算し、出力が正解ラベルに近づくように、図12(B)に示すパーセプトロンにおける重み係数(W1、W2、W3)やバイアス係数(b)を調整する。図12(B)の活性化関数としては、例えばシグモイド関数やReLU(Rectified Linear Unit)関数などが用いることができる。具体的にはディープラーニングの学習処理では、ニューラルネットワークの入力層にデータを入力して重みをかけて出力するという操作を最終層まで繰り返す。これを順伝播(フォワード・プロパゲーション)と呼ぶ。行動制御プログラムを作成する際に、初期段階では、期待通りの答えは出力されない。このため、正解ラベルと出力値の誤差を求め、誤差を各層に伝播させて正解値に近づくように各層の重みを調整する処理を行う。この誤差を逆伝播する処理を、誤差逆伝播(バック・プロパゲーション)と呼ぶ。即ち、正解値に対する誤差を求め、各層にフィードバックし、重みを調整しながら、正解値に近づけて行く。この場合に教師データとなる正解ラベルとしては、例えば行動制御プログラムに基づきゲームにおいて行動するロボットのゲーム結果(各行動の結果)を用いることができる。例えば、ニューラルネットワークのAI処理により作成された行動制御プログラムに基づき動作するロボットをゲームに登場させ、そのロボットによる対戦ゲームなどのゲームの結果が、より良いゲーム結果(より高い得点、ポイント)となるように、ニューラルネットワークにおける学習処理(ディープラーニング)を行う。この場合にニューラルネットワークの入力層には、例えば各種のゲーム状況を入力できる。具体的には、敵ロボットの行動の状況、同じチームに属する味方ロボットの行動の状況、ロボットの環境状況(マップ状況、周囲状況、時間情報の状況等)、及びゲームの進行状況の少なくとも1つを入力できる。そして、これらのゲーム状況におけるロボットの行動を、ニューラルネットワークのAI処理により決定し、決定された行動をロボットが行った時のゲーム結果を判断する。このゲーム結果は、ロボットが各行動を行った場合の各ゲーム結果であってもよいし、最終的なゲーム結果であってもよい。例えば行動制御プログラムに基づきロボットが攻撃行動や防御行動を行った場合に、その攻撃行動や防御行動の成功度合いを評価する処理を行う。そして、その評価結果をロボットの各行動のゲーム結果としてフィードバックして、ニューラルネットワークの重み係数等の更新を行う。このようなゲーム結果に基づく学習処理を行うことで、行動制御プログラムに基づき制御されるロボットが、より良いゲーム結果となるような行動をとるようになる。従って、AIにより行動を学習して行くようなロボットの制御が可能になり、これまでにないタイプのロボットゲームの実現が可能になる。
そして本実施形態では図13に示すように、ロボットRBは、アバターに対応づけられた行動制御プログラムに基づき制御され、ユーザ(US)はロボットRBに対する直接的な操作は行わない。例えばユーザは、後述の図23(A)、図23(B)に示すようなロボットRBに対する間接的な関与しか行わず、作成された行動制御プログラムに基づき動作するロボットRBの様子を観戦者として観戦する。そして図10、図11に示すようなアバターAVTとユーザとの対話内容と、図12(A)、図12(B)に示すようなゲーム結果のフィードバックによる学習処理とに基づき、行動制御プログラムが作成され、この行動制御プログラムがロボットRBの頭脳として機能して、ロボットRBが行動するようになる。
このようにすれば、ユーザがアバターと対話するという簡単な作業だけで、AIによってプログラミングされた行動制御プログラムが作成されて、アバターを頭脳とするロボットがゲームにおいて行動するようになる。そしてこのロボットがゲームで行った行動の結果であるゲーム結果がフィードバックされて、AIの行動制御プログラムが更に賢くなるように変化して行く。従ってユーザが図7に示すようなサイクルでゲームをプレイすることで、普段の生活においては例えばスマートフォン等の携帯型通信端末を使ってアバターとの対話を楽しみながら、アミューズメント施設では、その対話によって成長した行動制御プログラムを使ったロボットのゲームを楽しめるようになる。従って、アバターとの対話と、それによるAIの行動制御プログラムの作成及び成長による作ることの楽しみと、ゲーム空間でのロボット(移動体)を用いたゲームの楽しみとを両立して実現することが可能になる。
また本実施形態では図14に示すように、アバターAVTに対応するロボットRBによるゲーム結果をフィードバックして、行動制御プログラムの学習処理を行うと共に、当該ゲーム結果に応じて、ユーザとアバターAVTとの対話内容を変化させる。例えばゲーム結果が良かった場合には、その良いゲーム結果を生んだ行動を採用したことを褒めるような会話を、アバターAVTが行う。或いは、良いゲーム結果を生んだ行動やそれに関連する行動をとることをユーザに勧めるような会話を、アバターAVTが行う。例えばアバターAVTが行う会話を、図12(A)、図12(B)に示すようなニューラルネットワークのAI処理により生成する場合には、ゲーム結果をフィードバックする学習処理を行って、パーセプトロンの重み係数を変化させる。そして、ユーザが、より良い結果を生む行動をとることを誘導するようなアバターAVTの会話を、ニューラルネットワークを利用して生成する。また例えばアバターAVTの候補となる複数の会話を用意しておく。そして、ゲーム結果に応じて、これらの複数の会話の中から適切な会話を選択して、ユーザに話しかけるようにしてもよい。この場合には、ゲーム結果についての評価値を演算して、演算された評価値に基づいて、候補となる複数の中から適切な会話を選択すればよい。
またロボットによる戦闘を繰り返して、学習処理が進むにつれて、アバターAVTの心持ちや表情も変化する。例えば図14に示すように、ポジティブでニコニコ型のアバターAVTXに変化したり、ネガティブでめそめそ型のアバターAVTYに変化したり、つれない素振りや態度のアバターAVTZに変化する。このようにすることでユーザは、アバターAVTの成長する様子を更に楽しむことが可能になる。
また本実施形態ではユーザは、様々なタイプのアバターを選択できるようになっている。具体的には、行動態様、性格、能力、及び属性の少なくとも1つが異なる複数の候補アバターの中から、ユーザがゲームにおいて使用するアバターの選択を受け付ける処理を行う。例えば図15にアバターの選択画面の例を示す。選択画面に表示されるアバターAVTA、AVTB、AVTC、AVTDは、その行動態様、性格、能力、属性などが異なっている。ユーザは、これらのアバターAVTA、AVTB、AVTC、AVTDの中から所望のアバターを選択して、ゲームにおいてロボットの頭脳となるアバターとして使用する。
例えばアバターAVTAは、行動態様は攻撃型であり、性格はポジティブタイプである。一方、アバターAVTBは、行動態様は守備型であり、性格はネガティブタイプである。従って、ユーザがアバターAVTAを選択した場合には、攻撃的で積極的な行動を行う傾向が高い行動制御プログラムが作成されるようになり、ゲームでのロボットの行動も攻撃的で積極的になる。一方、ユーザがアバターAVTBを選択した場合には、守備的で消極的な行動を行う傾向が高い行動制御プログラムが作成されるようになり、ゲームでのロボットの行動も守備的で消極的になる。またユーザがアバターAVTCを選択すると、攻撃と防御の行動をバランス良く行うと共に、より慎重に熟考して行動する傾向が高い行動制御プログラムが作成されるようになり、ゲームでのロボットの行動も、攻守のバランスが良く、慎重で熟考した行動をとるようになる。またユーザがアバターAVTDを選択すると、機動を重視した行動を行うと共に、直感に頼って行動する傾向が高い行動制御プログラムが作成されるようになり、ゲームでのロボットの行動も、高い機動力で移動して、直感的な攻撃や守備を行うようになる。また、アバターAVTA、AVTB、AVTC、AVTDは、その能力や属性も異なっており、ユーザは、自身が好むタイプの能力や属性を有するアバターを選択できる。例えばユーザが、特定の能力を有するアバターを選択すると、そのアバターがAIの頭脳となって行動するロボットが、そのアバターの能力に対応する能力を発揮するようになる。例えば能力としては、遠距離攻撃を得意とするタイプの能力、近距離攻撃を得意とするタイプの能力、接近戦による直接的な攻撃を得意とするタイプの能力、司令官となるタイプの能力、或いはサーポーターとなるタイプの能力などの種々の能力を想定できる。またアバターが特殊能力を有していると、そのアバターに対応するロボットも、特殊能力を発揮したり、特殊技を繰り出すようになる。また、ロボットにも属性が設定されており、アバターの属性(例えば炎、水、雷、土、闇等)とそのアバターが使用されるロボットの属性(例えば炎、水、雷、土、闇等)の相性が高い場合には、そのロボットは、より高い攻撃力で攻撃したり、より高い守備力で守備を行うようになる。従って、ユーザは、アバターの能力や、アバターの属性とロボットの属性の関係などを考慮しながら、アバターを選択できるようになり、アバターの選択がゲームの勝敗に影響を与えるようになるため、ゲームの戦略性や面白味を更に増すことができる。
また本実施形態ではアバターの外観(衣装、装飾品又はメーク)などのカスタマイズが可能になっている。そしてユーザとアバターとの対話内容(対話内容の分析結果)と、カスタマイズの内容(カスタマイズ処理の結果)に基づいて、行動制御プログラムが作成される。例えば図16はアバターAVTに着せる衣装の選択画面の例であり、ユーザは、自身が所望する衣装をアバターAVTに着せることが可能になっている。そして、アバターAVTの衣装を変更すると、ゲーム画面に表示されるアバターAVTの外観も変わるようになり、ユーザは衣装を着せることの楽しみを得ることができる。また衣装の変更は、アバターの思考方針である行動制御プログラムにも影響を与える。例えばフォーマルな衣装をアバターAVTに着せると、突飛な行動よりもオーソドックスな行動を行う傾向が高い行動制御プログラムが作成されるようになり、ゲームでのロボットも、よりオーソドックスな行動をとるようになる。またインフォーマルでカジュアルな衣装をアバターAVTに着せると、オーソドックスな行動よりも、突飛な行動や、より変化に富んだ行動を行う傾向が高い行動制御プログラムが作成されるようになり、ゲームでのロボットも、より突飛で変化に富んだ行動をとるようになる。このようにすれば、アバターAVTの外観と、ゲームでのロボットの行動がリンクするようになり、ユーザは、衣装や装飾品やメークを変えることによるアバターAVTの外観の変化のみならず、その外観の変化に伴うゲームでのロボットの行動の変化も楽しむことが可能になる。そして、この行動の変化は、そのアバターが対応する衣装等を着用している場合に限って発生する。従って、ユーザは、より変化や面白味に富んでゲームをプレイできるようになり、ゲームへのユーザの没入度や熱中度を向上できる。
また本実施形態では、複数のアバターとユーザとが対話を行い、複数のアバターとユーザの対話内容(対話の分析結果)に応じて、行動制御プログラムを作成する。或いは複数のアバター間での対話内容(対話の分析結果)に応じて、行動制御プログラムを作成する。例えば複数のアバター間での対話内容と複数のアバター間の相性情報に応じて、行動制御プログラムを作成する。
例えば図17では、複数のアバターAVTA、AVTBとユーザUSとの間で対話が行われている。また複数のアバターAVTA、AVTB間でも対話が行われている。この場合に、複数のアバターAVTA、AVTBとユーザUSとの間での対話内容や、複数のアバターAVTA、AVTB間での対話内容に応じて、ロボットの行動制御プログラムを作成する。そして行動制御プログラムの作成の際にはアバターAVTA、AVTBの間の相性情報も反映させる。
例えば図18に示すように、図17の対話処理により、ユーザとアバターAVTAとの対話情報、ユーザとアバターAVTBとの対話情報、アバターAVTAとアバターAVTBとの対話情報が、記憶部170に記憶されて蓄積される。また記憶部170には、アバターAVTAとAVTBの間の相性情報が記憶されている。分析処理部112は、記憶部170に記憶されるこれらの情報の分析処理を行う。そして行動処理部113は、ユーザとアバターAVTA、AVTBとの対話情報、アバターAVTAとアバターAVTBとの対話情報、アバターAVTA、AVTBとの間の相性情報に基づいて、アバターAVTAに対応する行動制御プログラムの作成処理や、アバターAVTBに対応する行動制御プログラムの作成処理を行う。そして作成された行動制御プログラムに基づいて、ゲームでのロボットの行動を制御する。
図19〜図22に、図17、図18の対話処理の具体例を示す。例えば図19では、ユーザUS(マスター)とアバターAVTAが、次の対戦についての会話を行っている。次の対戦では、アバターAVTAの行動制御プログラムにより行動するロボットRBAと、アバターAVTBの行動制御プログラムにより行動するロボットRBBとが、チームを組んで、敵と戦う。アバターAVTAは、近距離攻撃を得意とするタイプの能力を有しており、アバターAVTAは、遠距離攻撃を得意とするタイプの能力を有している。またアバターAVTBは、ユーザUSとアバターAVTAが会話を行っている空間に居る状態になっている。
図19に示すようにユーザUSは、次の戦いでは、敵(敵ロボット)は装甲が硬くて強力であるため、通常の攻撃では通用せず、どのような戦い方が良いかを、アバターAVTAに聞いている。これに対して、近距離攻撃を得意とするタイプであるアバターAVTAは、速攻攻撃を勧めている。ユーザUSが、速攻攻撃の具体内容を聞くと、アバターAVTAは、開戦と同時に敵に接近して、閃光弾を放つことを勧めており、ユーザUSは同意している。
遠距離攻撃を得意とするタイプであるアバターAVTBは、図19の会話を、傍らで聞いている。そして、アバターAVTAとチームを組んで協力プレイを行うアバターAVTBは、アバターAVTAが閃光弾を撃つならば、時間を稼げると考え、起動に時間がかかるものの、威力が強いメガランチャー(巨大砲)を使用しようと考える。これにより、アバターAVTAに対応するロボットRBAがゲームにおいて閃光弾を撃つと、アバターAVTBに対応するロボットRBBは、メガランチャーの攻撃を行うようになる。
このように本実施形態では、アバターとして、アバターAVTAとアバターAVTBが登場する。そしてユーザとアバターAVTA(第1のアバター)との間で行われた対話内容の分析結果に基づいて、アバターAVTB(第2のアバター)に対応づけられる行動制御プログラムが作成される。即ちユーザとアバターAVTAとの間で行われた対話内容(閃光弾の使用)が、アバターAVTBに対応づけられる行動制御プログラムにも影響し、当該行動制御プログラムに基づき行動するロボットRBBの行動(メガランチャーによる攻撃)にも影響する。これにより複数のアバターの対話内容を反映させたロボットの行動制御が可能になり、例えばチーム戦などの協力プレイの戦略性や面白味の向上等を図れるようになる。
また図20では、マスターであるユーザUSが不在であるが、ゲームシステムは起動している状態であり、チームを組んで協力プレイを行うアバターAVTAとアバターAVTBの間で会話が行われている。そしてアバターAVTAは、次の対戦においてアバターAVTBがどのような戦い方をするかを聞いている。これに対してアバターAVTBは、ユーザUSとアバターAVTAとの間の会話により、アバターAVTAが閃光弾を使用することを知っている。そしてアバターAVTBは、アバターAVTAが閃光弾の使用に成功した場合に、閃光弾が閃光している時間を利用して、起動時間は長いが威力が強いメガランチャーを使用することを提案しており、この提案にアバターAVTAが同意している。そしてアバターAVTAは、アバターAVTAに対応するロボットRBAが、閃光弾を撃った後に敵から離れて、二発目の閃光弾を撃つことを提案し、この提案にアバターAVTBが同意している。
このように図20では、アバターAVTAとAVTB(第1、第2のアバター)の間で行われた対話内容の分析結果に基づいて、アバターAVTA、AVTBに対応づけられる行動制御プログラムが作成される。即ち、ユーザが不在であっても、アバターAVTAとAVTBの間で行われた対話内容に基づき、行動制御プログラムが作成され、当該行動制御プログラムに基づいて、アバターAVTA、AVTBに対応するロボットRBA、RBBの行動が制御される。これにより複数のアバターの対話内容を反映させたロボットの行動制御が可能になり、例えばチーム戦などの協力プレイの戦略性や面白味の向上等を図れるようになる。
また本実施形態では、アバター間の相性情報に基づいて行動制御プログラムの作成処理を行っている。例えば図20でも、アバターAVTA、AVTBの間の相性情報(第1のアバターと第2のアバターの間の相性情報)に基づき、行動制御プログラムの作成処理を行っており、図20はアバターAVTAとAVTBの相性が良い場合の例になる。図20では、アバターAVTAとAVTBの相性が良いため、お互いに協力して戦略を練り合う対話を行うようになり、チーム戦などにおいてユーザがより有利になるような行動制御プログラムが作成されるようになる。
一方、図21は、アバターAVTAとAVTBの相性がやや悪い場合の例である。アバターAVTBは協調性が無く、チームのリーダーであるアバターAVTAをライバル視している。そしてアバターAVTAが、次の対戦でのアバターAVTBの戦い方を聞くと、アバターAVTBは、アバターAVTAが閃光弾を使用する予定なのを知っていて、開戦後に、すぐにクイックランチャー(速射砲)を撃つと回答している。すると、閃光弾を放つ予定のアバターAVTAは、アバターAVTBのクイックランチャーの使用に対して拒否反応を示し、これに応答してアバターAVTBも、閃光弾の使用に対して拒否反応を示している。このようにチームを組むアバターAVTAとAVTBの相性があまり良くない場合には、アバターAVTA、AVTBに対応するロボットRBA、RBBのゲームでの行動の連携があまり良くない行動制御プログラムが作成されるようになり、チーム戦などにおいてユーザのゲームプレイが有利にならないゲーム展開になってしまう。
また図22は、アバターAVTAとAVTBの相性が非常に悪い場合の例である。アバターAVTBは、自身の戦略を隠す秘密主義の傾向があり、チームのリーダーであるアバターAVTAに対して嫉妬している。そしてアバターAVTAが、次の対戦でのアバターAVTBの戦い方を聞くと、アバターAVTBは、アバターAVTAが閃光弾を使用する予定なのを知っているのに、少し考えて、次の戦い方を未だ決めていないと回答している。これに対してアバターAVTAは、閃光弾を放つ予定であることを告げて、アバターAVTBに対して援護を要請している。するとアバターAVTBは、少し考えた後に、援護の提案に対して同意する会話を行う。しかしながら、実際にはアバターAVTBは、アバターAVTAのロボットRBAは敵の近くに居るはずだから、散弾銃を使用して敵と一緒にアバターAVTAのロボットRBAも攻撃してしまおうと考えている。このようにアバターAVTAとAVTBの相性が悪い場合には、アバターAVTA、AVTBに対応するロボットRBA、RBBのゲームでの行動の連携が非常に悪くなる行動制御プログラムが作成されるようになり、チーム戦などにおいてユーザのゲームプレイが非常に不利になるゲーム展開になってしまう。
このように本実施形態では、アバター間の相性情報に基づいて行動制御プログラムを作成しているため、ユーザは、チームなどを組む場合に、アバター間の相性にも考慮するようになり、ゲームの戦略性や面白味を格段に増すことが可能になる。
また本実施形態では、アバターに対応づけられた行動制御プログラムに基づいて、ロボットの制御を行うと共に、ロボットのパラメータを変化させるユーザの操作入力を受け付けるようにしている。
例えば図23(A)では、仮想空間において飛行体PDに搭乗して飛行しているユーザUS(仮想ユーザ)は、自身のプレイ対象となるロボットRBに対して、ロボットRBのヒットポイントのパラメータを補給して変化させる操作を行っている。このような操作の要求がゲーム中において行われると、このユーザUSの操作が受け付けられて、ロボットRBのパラメータであるヒットポイントが補充されて変化するようになる。また図23(B)では、飛行体PDに搭乗して飛行しているユーザUSは、これから敵に対して攻撃動作を行おうとしているロボットRBに対して、攻撃力のパラメータを上昇させる操作を行っている。このような操作の要求がゲーム中において行われると、このユーザUSの操作が受け付けられて、ロボットRBのパラメータである攻撃パラメータが上昇するようになる。
例えば本実施形態では図13で説明したように、ユーザUSは直接にはロボットRBを操作せずに、アバターに対応づけられた行動制御プログラムに基づいてロボットRBは操作される。即ちアバターが頭脳となって操作されてロボットRBは種々の行動を行う。一方、図23(A)、図23(B)に示すように、ロボットRBのヒットポイントのパラメータや攻撃パラメータを変化させるユーザUSの操作については受け付けるようにする。このようなユーザUSの操作を受け付けることで、ユーザUSは、ロボットRBの直接的な操作はできないが、ロボットRBに対する間接的な関与が可能になる。即ち、ユーザUSは、ロボット同士の対戦を観戦しながら、例えば自身のロボットRBが不利な状況になった場合や、ロボットRBの戦いを有利に展開したい場合に、図23(A)、図23(B)に示すような間接的な関与を行うことができる。そしてロボットRBのヒットポイントのパラメータや攻撃力のパラメータなどの各種のパラメータを変化させることで、不利な状況を回避したり、ゲーム展開を有利な方向に進めることが可能になる。
なお、図23(A)、図23(B)に示すようにパラメータを変化させるアイテムを、ユーザに購入させるための課金処理を行ってもよい。またゲームでのユーザの取得ポイントに基づいて、当該アイテムをユーザに取得させるようにしてもよい。また、ゲーム中においてユーザの操作により変化させることができるパラメータとしては、種々のパラメータを想定できる。例えばパラメータは、魔法についてのポイントであるマジックポイントのパラメータ、守備力のパラメータ、機動力のパラメータ、魔法力のパラメータ、或いは時間についてのパラメータなどであってもよい。
また本実施形態では、ゲーム中においてユーザによるアバターの変更要求を受け付け、変更後のアバターに対応づけられた行動制御プログラムに基づいてロボットの制御処理を行う。
例えば図24では、ユーザUSのロボットRBは、アバターAVTAに対応する行動制御プログラムにより制御されており、ロボットRBと敵ロボットERBとが対戦するゲームが行われている。そして、このようなゲームにおいて、例えば、ロボットの対戦を観戦しているユーザUSによりゲーム進行のポーズ操作が行われている。そしてユーザUSに対して、アバターの変更を行うか否かを選択するための選択画面が表示される。例えばユーザUSが装着するHMD200の画面に当該選択画面が表示される。そして、ユーザUSが、それまで使用していたアバターAVTAから、別のアバターAVTBへの変更を選択する操作を行うと、当該操作が受け付けられて、アバターAVTAからアバターAVTBへの変更が行われる。すると、それ以降は、アバターAVTBがアバターAVTAに代わって、ロボットRBの頭脳として使用されるようになる。即ち、ロボットRBは、アバターAVTBに対応する行動制御プログラムにより制御されて、ゲームでの一連の行動を行うようになる。
このようにすればユーザは、ゲーム展開に応じて最適なアバターを選択して、当該アバターに対応する行動制御プログラムを用いてロボットを動作させることが可能になる。例えば攻撃よりも守備が優先されるようなゲーム状況になった場合には、ユーザは、攻撃型のアバターから守備型のアバターに変更する操作を行う。例えば図15で説明したアバターAVTAからアバターAVTBへと変更され、アバターAVTBに対応する行動制御プログラムによりロボットの行動が制御されるようになる。従って、守備が優先される状況において、ロボットが守備重視の行動を行うようになり、ユーザはゲームを有利に展開できるようになる。そしてその後に、例えば守備が優先される状況から、攻撃が優先される状況へと、ゲーム状況が変化した場合には、ユーザは、今度はアバターAVTBからアバターAVTAへと、使用するアバターを変更する操作を行う。これにより、ロボットが攻撃重視の行動を行うようになり、ユーザはゲームを有利に展開できるようになる。また例えばロボットの高速移動による機動力が重視される状況に、ゲーム状況が変化した場合には、例えば図15で説明したアバターAVTDへと、使用するアバターを変更すればよい。このようにすれば、ユーザは、ゲーム状況に応じた最適なアバターを選択できるようになるため、ゲームの戦略性や面白味を格段に向上できる。
また本実施形態では、仮想空間の設定処理を行い、仮想空間においてロボット等の移動体を移動させる処理を行っている。即ち、ロボットは仮想空間に登場する移動体のオブジェクトであり、図5、図6、図13に示すような仮想空間が設定されて、当該仮想空間においてロボットを移動させたり、動作させる処理が行われる。そして、仮想空間において仮想カメラから見える画像が、HMD等の表示部に表示される。
このようにすれば、アバターに対応する行動制御プログラムに基づいて、仮想空間においてロボットが移動したり動作するVR空間での画像が生成されるようになり、ユーザの仮想現実感の向上を図れる。但し本実施形態における移動体は、仮想空間におけるロボット等の移動体(キャラクタ)には限定されず、実空間でのロボット等の実機の移動機器(玩具)であってもよい。このような移動機器を、アバターに対応する行動制御プログラムに基づき動作させることで、これまでにないタイプのゲームシステムの実現が可能になる。
3.3 詳細な処理
次に本実施形態の処理例について図25のフローチャートを用いて説明する。まず、ユーザによるアバターの選択の受け付け処理を行う(ステップS1)。例えば図15に示すようなアバターの選択画面を表示し、候補となるアバターの中から、所望のアバターをユーザが選択できるようにする。次にユーザとアバターとの対話処理を行う(ステップS2)。例えば図10、図11、図17、図19〜図22に示すような対話を行うための対話処理を実行する。そして、得られた対話情報を記憶部に記憶して蓄積する(ステップS3)。即ち、図18に示すような各種の対話情報を記憶部に記憶する。そして、蓄積された対話情報の分析処理を行う(ステップS4)。即ち、対話の内容を解析して、テキストマイニングなどにより対話の意味内容を分析する。そして対話情報の分析結果に基づいて、移動体の行動制御プログラムをアバターに対応づけて作成し、記憶部に記憶する(ステップS5)。例えば図12(A)、図12(B)で説明したようなニューラルネットワークによるAI処理などに基づいて、移動体の行動制御プログラムを作成する。この場合に図14で説明したように、ゲーム結果等のフィードバックによる学習処理を行いながら、行動制御プログラムを作成する。
次に、ゲームが開始されたか否かを判断する(ステップS6)。例えば図7においてユーザがアミューズメント施設に出向き、ゲーム装置においてゲームを開始する操作を行うことで、ゲームが開始される。この際にゲーム装置の記憶部には、ステップS5で作成された行動制御プログラムが転送されて記憶されている。そして、記憶部から、ユーザが使用するアバターに対応する行動制御プログラムを読み出す(ステップS7)。即ち、ユーザがゲームに使用することを選択したアバターに対応づけられた行動制御プログラムを読み出す。この行動制御プログラムは、例えばユーザと当該アバターとの対話処理等に基づき作成されたものである。そして、読み出された行動制御プログラムに基づいて、ゲームでの移動体の一連の行動を制御する(ステップS8)。これにより図5、図6、図13に示すような仮想空間でのVRゲームの実現が可能になる。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(移動体、行動制御情報等)と共に記載された用語(ロボット、行動制御プログラム等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またゲームシステムの構成、対話処理、対話内容の分析処理、行動制御情報の作成処理、ゲーム処理、移動体の制御処理、カスタマイズ処理、表示処理等も、本実施形態で説明したものに限定されず、これらと均等な手法・処理・構成も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲーム装置、家庭用ゲーム装置、又は多数のユーザが参加する大型アトラクションシステム等の種々のゲームシステムに適用できる。