(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-09-13
(45)【発行日】2024-09-25
(54)【発明の名称】プログラム、方法、情報処理装置、及びシステム
(51)【国際特許分類】
G06N 5/04 20230101AFI20240917BHJP
A63F 13/86 20140101ALI20240917BHJP
【FI】
G06N5/04
A63F13/86
(21)【出願番号】P 2023218970
(22)【出願日】2023-12-26
【審査請求日】2024-06-21
【早期審査対象出願】
(73)【特許権者】
【識別番号】514080981
【氏名又は名称】HEROZ株式会社
(73)【特許権者】
【識別番号】504440133
【氏名又は名称】株式会社ポケモン
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】清田 英寿
(72)【発明者】
【氏名】大井 恵介
(72)【発明者】
【氏名】浅野 隼吾
【審査官】松谷 洋平
(56)【参考文献】
【文献】特開2023-155679(JP,A)
【文献】特開2023-39457(JP,A)
【文献】特開2012-65852(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/04
A63F 13/86
(57)【特許請求の範囲】
【請求項1】
プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムであって、前記プログラムは、前記プロセッサに、
対戦ゲームにおける対戦において複数のプレイヤが使用する、複数のキャラクタで組んだチームに関する情報を取得するステップと、
前記対戦に係るキャラクタの状態に基づいて前記対戦の戦局を出力するように学習された学習済みモデルに、前記対戦における現在の状態を入力し、現在の戦局を出力させるステップと、
前記学習済みモデルから出力された戦局を前記対戦の観戦者に提示するステップと
を実行させ、
前記戦局を出力させるステップにおいて、前記チームに関する情報から前記複数のプレイヤにより指定されたキャラクタの前記対戦における最初の行動前の状態を前記学習済みモデルに入力し、前記対戦における最初の行動前の戦局を出力させるプログラム。
【請求項2】
前記出力させるステップにおいて、前記対戦に実際に使用すると認識されたキャラクタの状態を前記学習済みモデルに入力し、現在の戦局を出力させる請求項1記載のプログラム。
【請求項3】
前記出力させるステップにおいて、前記複数のプレイヤにより指定された全てのキャラクタの状態を前記学習済みモデルに入力し、現在の戦局を出力させる請求項1記載のプログラム。
【請求項4】
前記出力させるステップにおいて、前記学習済みモデルは、前記対戦に係るキャラクタの状態に基づいて前記対戦において前記キャラクタが採用可能な行動のスコアを出力するように学習されており、前記学習済みモデルに、前記対戦における現在の状態を入力し、前記キャラクタの次の行動のスコアを出力させ、
前記提示するステップにおいて、前記キャラクタが採用可能な行動と、前記学習済みモデルから出力されたスコアとを前記観戦者に提示する請求項1記載のプログラム。
【請求項5】
前記出力させるステップにおいて、前記対戦に実際に使用すると認識されたキャラクタの状態を前記学習済みモデルに入力し、前記キャラクタの次の行動のスコアを出力させる請求項4記載のプログラム。
【請求項6】
前記出力させるステップにおいて、前記複数のプレイヤにより指定された全てのキャラクタの状態を前記学習済みモデルに入力し、前記キャラクタの次の行動のスコアを出力させる請求項4記載のプログラム。
【請求項7】
前記提示するステップにおいて、前記キャラクタが採用可能な行動のスコアと、当該行動に対する前記観戦者の予想とを前記観戦者に提示する請求項4記載のプログラム。
【請求項8】
前記対戦における所定の状況下において、前記対戦では採用されなかった行動を採用した後の状態を前記学習済みモデルに入力し、仮想の戦局を出力させるステップを前記プロセッサに実行させ、
前記提示するステップにおいて、前記仮想の戦局を前記観戦者に提示する請求項1記載のプログラム。
【請求項9】
前記対戦において、前記戦局に基づいて注目するべき場面を抽出するステップを前記プロセッサに実行させる請求項1記載のプログラム。
【請求項10】
前記抽出するステップにおいて、前記戦局の変動が大きかった場面を前記注目するべき場面として抽出する請求項9記載のプログラム。
【請求項11】
前記対戦において、前記キャラクタが採用した行動に付されたスコアに基づき、注目するべき場面を抽出するステップを前記プロセッサに実行させる請求項4記載のプログラム。
【請求項12】
前記抽出するステップにおいて、複数の対戦から前記注目するべき場面を抽出する請求項9記載のプログラム。
【請求項13】
プロセッサと、メモリとを備えるコンピュータに実行される方法であって、前記プロセッサが、請求項1から請求項12のいずれかに係る発明において実行されるすべてのステップを実行する方法。
【請求項14】
プロセッサと、メモリとを備える情報処理装置であって、前記プロセッサが、請求項1から請求項12のいずれかに係る発明において実行されるすべてのステップを実行する情報処理装置。
【請求項15】
請求項1から請求項12のいずれかに係る発明において実行されるすべてのステップを実行する手段を備えるシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、方法、情報処理装置、及びシステムに関する。
【背景技術】
【0002】
AIがゲーム環境をブラックボックスとして扱ったまま、盤面(ゲーム状態)の変化過程と勝敗結果(ゲーム結果)を紐付けた近似最近傍探索によるPvPゲームのゲーム形勢を評価する技術がある(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、ある特定の盤面から勝敗を予測するとき、その盤面と類似する局面を、対戦したキャラクタの組み合わせと初手から数えた時のアクション回数毎に分類された過去データから探索し、その類似局面の勝敗結果から勝敗確率を算出する。このとき、特許文献1では、ゲームルールや環境をシステムが学習することなく、すなわち、ゲームシステムをブラックボックス化したままプレイ中の盤面と勝敗結果のペアのみで学習するようにしている。
【0005】
しかしながら、特許文献1では、ゲームルールや環境を考慮していないため、勝敗結果の精度を高めにくい。
【0006】
本開示の目的は、所定のキャラクタで組んだチーム同士で対戦するゲームにおいて、対戦の戦況をリアルタイムかつ高精度に推定することである。
【課題を解決するための手段】
【0007】
プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムである。プログラムは、プロセッサに、対戦ゲームにおける対戦において複数のプレイヤが使用する、複数のキャラクタで組んだチームに関する情報を取得するステップと、対戦に係るキャラクタの状態に基づいて対戦の戦局を出力するように学習された学習済みモデルに、対戦における現在の状態を入力し、現在の戦局を出力させるステップと、学習済みモデルから出力された戦局を対戦の観戦者に提示するステップとを実行させる。戦局を出力させるステップにおいて、チームに関する情報から複数のプレイヤにより指定されたキャラクタの対戦における最初の行動前の状態を学習済みモデルに入力し、対戦における最初の行動前の戦局を出力させる。
【発明の効果】
【0008】
本開示によれば、所定のキャラクタで組んだチーム同士で対戦するゲームにおいて、対戦の戦況をリアルタイムかつ高精度に推定できる。
【図面の簡単な説明】
【0009】
【
図1】システム1の全体構成の例を示すブロック図である。
【
図2】
図1に示す第1端末装置10の構成例を表すブロック図である。
【
図3】
図1に示す第2端末装置30の構成例を表すブロック図である。
【
図4】
図1に示す第3端末装置40の構成例を表すブロック図である。
【
図5】サーバ20の機能的な構成の例を示す図である。
【
図6】ユーザ情報テーブル2021のデータ構造の例を示す図である。
【
図7】キャラクタテーブル2022のデータ構造の例を示す図である。
【
図8】対戦情報テーブル2023のデータ構造の例を示す図である。
【
図9】戦局の表示を含む対戦動画を第1端末装置10へ配信する際のサーバ20及び第2端末装置30の動作を説明するための図である。
【
図10】第2端末装置30で表示される、サーバ20へ盤面情報を入力するためのインタフェース1411の例を表す模式図である。
【
図11】戦局及び行動スコアが関連付けられた対戦動画1412の例を表す模式図である。
【
図12】第2端末装置30で表示される、サーバ20へ盤面情報を入力するためのインタフェース1411のその他の例を表す模式図である。
【
図13】コンピュータ90の基本的なハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【0010】
以下、図面を参照しつつ、本開示の実施形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称及び機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0011】
<概略>
本実施形態に係るシステムは、所定のキャラクタで組んだチーム同士で対戦するゲームにおいて、対戦の優劣(戦局)をリアルタイムに観戦者に提示する。システムは、チームの情報、対戦中の状況、対戦結果等を用いて学習させたAIに、現在の状況を入力することで、対戦の優劣を出力させる。
【0012】
まず、本実施形態に係る対戦ゲームの概要について説明する。次いで、本実施形態に係るプログラムについて説明する。
【0013】
<0 対戦の概要>
本実施形態に係る対戦ゲームでは、プレイヤ同士がキャラクタを操作し、キャラクタ同士を戦わせることで勝敗を決める。
【0014】
対戦は、例えば、以下のような流れで進められる。
【0015】
まず、プレイヤは、対戦の条件を設定する。対戦の条件は、例えば、対戦形式、及び対戦形式における種々のルールを含む。対戦形式には、例えば、キャラクタが1対1で戦うシングルバトル、タッグを組んだ2体のキャラクタが2対2で戦うダブルバトル、3体のキャラクタが3体3で戦うトリプルバトルが存在する。プレイヤは、所望の対戦形式と、それぞれの対戦形式における種々のルールを設定する。プレイヤは、例えば、対戦の条件を設定した後、対戦相手のマッチングを行う。なお、対戦相手が決まっている状態において対戦の条件を設定してもよい。
【0016】
対戦相手が決定すると、プレイヤは、例えば、所有する複数のキャラクタから所定の数のキャラクタを選択してチームを組む。チームは、例えば、6体のキャラクタにより構成される。プレイヤは、例えば、チームに含まれる6体のキャラクタのうち、3体を対戦で使うことが可能である。
【0017】
実際に対戦が開始される前段において、プレイヤは、対戦で使用するキャラクタをチームから選出する。例えば、プレイヤは、チームに含まれる6体のキャラクタから、実際に対戦で使用する規定数(例えば、3体)のキャラクタを選択する。
【0018】
対戦が開始されると、プレイヤは、選択した3体のキャラクタから、最初に使用する少なくとも1体のキャラクタを選択する。プレイヤは、例えば、シングルバトルである場合は1体のキャラクタを選択し、ダブルバトルである場合は2体のキャラクタを選択し、トリプルバトルである場合は3体のキャラクタを選択する。
【0019】
プレイヤは、自身が選択したキャラクタの行動を操作し、対戦相手が選択したキャラクタと戦わせる。対戦は、例えば、ターン制で進行する。各ターンにおいて、プレイヤは自身のキャラクタの行動を選択する。キャラクタの行動には、例えば、攻撃技の使用、特殊な技の使用、キャラクタの交代等が含まれる。特殊な技には、状態異常の付与、ステータスの回復、状態異常の治癒、自キャラクタ又は他キャラクタへの所定の影響の付与、場に対する変化の付与(フィールドの天気、場の特性の変更等)等が含まれる。キャラクタは、プレイヤにより選択された行動を、例えば、キャラクタの行動順序に係る数値に基づいた順序で実行する。
【0020】
操作するキャラクタのHPがゼロになると、当該キャラクタは、残っているキャラクタへ交代させられる。プレイヤは、対戦相手の3体のキャラクタのHPがゼロになるか、自身の3体のキャラクタのHPがゼロになるまで対戦を続ける。勝利条件を満たした(例えば、対戦相手の3体のキャラクタのHPをゼロにした)プレイヤが対戦の勝利者となる。
【0021】
<0.1 キャラクタの特徴>
プレイヤは、対戦ゲームにおける育成機能を利用し、予めキャラクタを育成している。キャラクタは、それぞれタイプ、ステータス、特性、使用可能な技等が設定されている。プレイヤは、タイプ、ステータス、特性、技等を適宜組み合わせ、対戦で勝てるキャラクタを育成する。
【0022】
タイプは、例えば、キャラクタの属性を表す。タイプには、例えば、火タイプ、水タイプ、草タイプ等、複数のタイプが存在する。タイプには、有利不利が存在する。例えば、火タイプのキャラクタは、草タイプのキャラクタに強いが、水タイプのキャラクタに弱い。
【0023】
ステータスは、例えば、キャラクタの能力を表す。ステータスは、例えば、HP、攻撃力、防御力、とくこう、とくぼう、素早さ等の能力を含む。ステータスの値はキャラクタ毎に様々である。なお、ステータスは、これらに限定されず、例えば、技の使用回数に係る値を含んでもよい。
【0024】
特性は、キャラクタに対して所定の効果をもたらす固有の能力である。特性は、例えば、同一種類のキャラクタが一様に有する。同一種類のキャラクタであっても異なる特性を有していてもよい
【0025】
技は、攻撃技、特殊な技等を含む。技にもタイプが割り当てられており、対戦相手のキャラクタのタイプに応じ、効果的な技、効かない技が存在する。
【0026】
キャラクタには、例えば、ステータスの成長に影響を与える要素が設定されていてもよい。この要素は、例えば、性格として表現される。キャラクタの性格に応じ、ステータスに含まれる能力の成長度が異なる。プレイヤは、例えば、性格についても考慮し、キャラクタを育成する。
【0027】
<1 システム全体の構成図>
図1は、システム1の全体構成の例を示すブロック図である。
図1に示すシステム1は、例えば、第1端末装置10、サーバ20、第2端末装置30、及び第3端末装置40を含む。第1端末装置10、サーバ20、第2端末装置30、及び第3端末装置40は、例えば、ネットワーク80を介して通信接続する。
【0028】
図1において、システム1が第1端末装置10、第2端末装置30、及び第3端末装置40を1台ずつ含む例を示しているが、システム1に含まれる第1端末装置10、第2端末装置30、及び第3端末装置40の数は、1台ずつに限定されない。システム1に含まれる第1端末装置10、第2端末装置30、及び第3端末装置40は、1台以上であってもよい。
【0029】
図1において、システム1がサーバ20を1台含む例を示しているが、システム1に含まれるサーバ20の数は、1台に限定されない。サーバ20は、有する機能に応じ、複数のサーバから構成されていてもよい。また、サーバ20は、例えば、複数の装置の集合体を1つのサーバとしてもよい。1つ又は複数のハードウェアに対して本実施形態に係るサーバ20を実現することに要する複数の機能の配分の仕方は、各ハードウェアの処理能力及び/又はサーバ20に求められる仕様等に鑑みて適宜決定することができる。
【0030】
図1に示す第1端末装置10は、例えば、対戦を観戦するユーザが操作する情報処理装置である。第1端末装置10は、例えば、移動体通信システムに対応したスマートフォン、タブレット等の携帯端末等により実現される。この他に、第1端末装置10は、例えば、据え置き型のPC(Personal Computer)、ラップトップPC、ゲーム専用機により実現されてもよい。また、第1端末装置10は、例えば、HMD(Head Mount Display)等のウェアラブル端末により実現されてもよい。
【0031】
第1端末装置10は、通信IF(Interface)12と、入力装置13と、出力装置14と、メモリ15と、ストレージ16と、プロセッサ19とを備える。入力装置13は、ユーザからの入力操作を受け付けるための装置(例えば、タッチパネル、タッチパッド等)である。出力装置14は、ユーザに対して情報を提示するための装置(ディスプレイ、スピーカー等)である。
【0032】
サーバ20は、例えば、対戦に係る動画を配信する情報処理装置である。
【0033】
サーバ20は、例えば、ネットワーク80に接続されたコンピュータにより実現される。
図1に示すように、サーバ20は、通信IF22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備える。入出力IF23は、ユーザからの入力操作を受け付けるための入力装置、及び、ユーザに対して情報を提示するための出力装置のインタフェースとして機能する。
【0034】
第2端末装置30は、例えば、盤面情報の少なくとも一部を入力する運用者が操作する情報処理装置である。本実施形態において、盤面情報は、例えば、現在の対戦の状態を表す情報である。盤面情報は、例えば、対戦で使用されている複数のキャラクタに関する情報、及び場に関する情報等を含む。キャラクタに関する情報は、例えば、キャラクタの名称、キャラクタの現在のHP、自キャラクタ又は他キャラクタの所定の技による影響等を含む。場に関する情報は、例えば、天気、場に付与された特性等を含む。
【0035】
第2端末装置30は、例えば、据え置き型のPC、ラップトップPCにより実現される。第2端末装置30は、例えば、スマートフォン、タブレット等の携帯端末等により実現されてもよい。
【0036】
第3端末装置40は、例えば、対戦の内容を実況する実況者が操作する情報処理装置である。第3端末装置40は、例えば、据え置き型のPC、ラップトップPCにより実現される。第3端末装置40は、例えば、スマートフォン、タブレット等の携帯端末等により実現されてもよい。
【0037】
各情報処理装置は演算装置と記憶装置とを備えたコンピュータにより構成されている。コンピュータの基本ハードウェア構成及び、当該ハードウェア構成により実現されるコンピュータの基本機能構成は後述する。第1端末装置10、サーバ20、第2端末装置30、第3端末装置40のそれぞれについて、後述するコンピュータの基本ハードウェア構成及びコンピュータの基本機能構成と重複する説明は省略する。
【0038】
<1.1 第1端末装置の構成>
図2は、
図1に示す第1端末装置10の構成例を表すブロック図である。
図2に示すように、第1端末装置10は、通信部120と、入力装置13と、出力装置14と、音声処理部17と、マイク171と、スピーカー172と、位置情報センサ150と、カメラ160と、モーションセンサ170と、記憶部180と、制御部190とを備える。第1端末装置10に含まれる各ブロックは、例えば、バス等により電気的に接続される。
【0039】
通信部120は、第1端末装置10が他の装置と通信するための変復調処理等の処理を行う。通信部120は、制御部190で生成された信号に送信処理を施し、外部(例えば、サーバ20)へ送信する。通信部120は、外部から受信した信号に受信処理を施し、制御部190へ出力する。
【0040】
入力装置13は、第1端末装置10を操作するユーザが指示、又は情報を入力するための装置である。入力装置13は、例えば、操作面へ触れることで指示が入力されるタッチ・センシティブ・デバイス131等により実現される。第1端末装置10がPC等である場合には、入力装置13は、リーダー、キーボード、マウス等により実現されてもよい。入力装置13は、ユーザから入力される指示を電気信号へ変換し、電気信号を制御部190へ出力する。なお、入力装置13には、例えば、外部の入力機器から入力される電気信号を受け付ける受信ポートが含まれてもよい。
【0041】
出力装置14は、第1端末装置10を操作するユーザへ情報を提示するための装置である。出力装置14は、例えば、ディスプレイ141等により実現される。ディスプレイ141は、制御部190の制御に応じたデータを表示する。ディスプレイ141は、例えば、LCD(Liquid Crystal Display)、又は有機EL(Electro-Luminescence)ディスプレイ等によって実現される。
【0042】
音声処理部17は、例えば、音声信号のデジタル-アナログ変換処理を行う。音声処理部17は、マイク171から与えられる信号をデジタル信号に変換して、変換後の信号を制御部190へ与える。また、音声処理部17は、音声信号をスピーカー172へ与える。音声処理部17は、例えば音声処理用のプロセッサによって実現される。マイク171は、音声入力を受け付けて、当該音声入力に対応する音声信号を音声処理部17へ与える。スピーカー172は、音声処理部17から与えられる音声信号を音声に変換して当該音声を第1端末装置10の外部へ出力する。
【0043】
位置情報センサ150は、第1端末装置10の位置を検出するセンサであり、例えばGPS(Global Positioning System)モジュールである。GPSモジュールは、衛星測位システムで用いられる受信装置である。衛星測位システムでは、少なくとも3個または4個の衛星からの信号を受信し、受信した信号に基づいて、GPSモジュールが搭載される第1端末装置10の現在位置を検出する。位置情報センサ150は、第1端末装置10が接続する無線基地局の位置から、第1端末装置10の現在の位置を検出してもよい。
【0044】
カメラ160は、受光素子により光を受光し、撮影信号として出力するためのデバイスである。
【0045】
モーションセンサ170は、例えば、加速度センサ、角速度センサ、又はこれらの組み合わせを含む。なお、これらに限定されない。モーションセンサ170は、第1端末装置10の動きを検出し、センシング結果として出力する。
【0046】
記憶部180は、例えば、メモリ15、及びストレージ16等により実現され、第1端末装置10が使用するデータ、及びプログラムを記憶する。記憶部180は、例えば、ユーザ情報181を記憶する。
【0047】
ユーザ情報181は、操作するユーザに関する情報を記憶する。ユーザに関する情報は、例えば、ユーザID、氏名、年齢、住所、生年月日、登録年月日等の情報を含む。
【0048】
制御部190は、プロセッサ19が記憶部180に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部190は、第1端末装置10の動作を制御する。制御部190は、プログラムに従って動作することにより、操作受付部191、送受信部192、提示制御部193としての機能を発揮する。
【0049】
操作受付部191は、入力装置13から入力される指示、又は情報を受け付けるための処理を行う。例えば、操作受付部191は、タッチ・センシティブ・デバイス131等から入力される指示、又は情報を受け付ける。具体的には、例えば、操作受付部191は、ユーザから所定の時刻の設定を受け付ける。所定の時刻は、例えば、起床予定時刻、又は確認予定時刻等を含む。
【0050】
また、操作受付部191は、カメラ160から入力される画像を受け付ける。具体的には、例えば、操作受付部191は、カメラ160により撮影された撮影データを受信する。
【0051】
また、操作受付部191は、マイク171から入力される音声情報を受け付ける。具体的には、例えば、操作受付部191は、マイク171から入力され、音声処理部17でデジタルデータに変換された音声データを受信する。
【0052】
また、操作受付部191は、モーションセンサ170から入力される挙動情報を受け付ける。具体的には、例えば、操作受付部191は、モーションセンサ170で検知された所定の挙動を受信する。
【0053】
送受信部192は、第1端末装置10が、サーバ20等の外部の装置と、通信プロトコルに従ってデータを送受信するための処理を行う。具体的には、例えば、送受信部192は、ユーザから入力された指示をサーバ20へ送信する。送受信部192は、サーバ20から提供される情報を受信する。サーバ20から提供される情報は、例えば、対戦に係る動画を表示させるための情報を含む。
【0054】
提示制御部193は、ユーザに対して所定の情報を提示するため、出力装置14等を制御する。例えば、提示制御部193は、対戦に係る動画をユーザに提示するように、出力装置14等を制御する。例えば、提示制御部193は、対戦に係る動画をユーザに表示するように、ディスプレイ141を制御する。また、例えば、提示制御部193は、対戦に係る動画の音を発生させるように、スピーカ142を制御する。また、提示制御部193は、対戦に係る動画に基づくイベントに係る振動を発生させるように、バイブレータ(図示せず)を制御してもよい。
【0055】
<1.2 第2端末装置、第3端末装置の構成>
図3は、
図1に示す第2端末装置30の構成例を表すブロック図である。
図3に示すように、第2端末装置30は、通信部120と、入力装置33と、出力装置14と、音声処理部17と、マイク171と、スピーカー172と、位置情報センサ150と、カメラ160と、モーションセンサ170と、記憶部180と、制御部190とを備える。第2端末装置30に含まれる各ブロックは、例えば、バス等により電気的に接続される。
【0056】
図4は、
図1に示す第3端末装置40の構成例を表すブロック図である。
図4に示すように、第3端末装置40は、通信部120と、入力装置33と、出力装置14と、音声処理部17と、マイク171と、スピーカー172と、位置情報センサ150と、カメラ160と、モーションセンサ170と、記憶部180と、制御部190とを備える。第3端末装置40に含まれる各ブロックは、例えば、バス等により電気的に接続される。
【0057】
<1.3 サーバの機能的な構成>
図5は、サーバ20の機能的な構成の例を示す図である。
図5に示すように、サーバ20は、通信部201と、記憶部202と、制御部203としての機能を発揮する。
【0058】
通信部201は、サーバ20が外部の装置と通信するための処理を行う。
【0059】
記憶部202は、例えば、ユーザ情報テーブル2021、キャラクタテーブル2022、対戦情報テーブル2023、学習済みモデル2024を有する。記憶部202は、キャラクタについてのマスタ情報を記憶するキャラクタマスタを有してもよい。また、記憶部202は、キャラクタが習得可能な技についてのマスタ情報を記憶する技マスタを有してもよい。また、記憶部202は、キャラクタの特性についてのマスタ情報を記憶する特性マスタを有してもよい。
【0060】
ユーザ情報テーブル2021は、例えば、対戦に係る動画を配信するサービスに登録しているユーザに関する情報を記憶するテーブルである。詳細は後述する。
【0061】
キャラクタテーブル2022は、対戦において使用されるキャラクタに関する情報を記憶するテーブルである。つまり、キャラクタテーブル2022は、対戦において使用するチームに含まれるキャラクタに関する情報を記憶するテーブルである。詳細は後述する。
【0062】
対戦情報テーブル2023は、対戦における盤面に関する情報を記憶するテーブルである。詳細は後述する。
【0063】
学習済みモデル2024は、モデル学習アルゴリズムに従い、サーバ20で機械学習モデルに機械学習を行わせることで生成されるモデルである。なお、機械学習モデルに機械学習を行わせるのは、サーバ20に限定されない。図示されない他のサーバで機械学習を行い、生成した学習済みモデルをサーバ20に記憶させてもよい。学習済みモデル2024は、例えば、入力されるデータに基づき、所定の推論を実施する、複数の関数が合成されたパラメータ付き合成関数である。パラメータ付き合成関数は、複数の調整可能な関数及びパラメータの組合せにより定義される。本実施形態に係る学習済みモデルは、上記の要請を満たす如何なるパラメータ付き合成関数であってもよい。
【0064】
例えば、学習済みモデル2024が順伝播型の多層化ネットワークを用いて生成される場合、パラメータ付き合成関数は、例えば、重み行列を用いた各層間の線形関係、各層における活性化関数を用いた非線形関係(又は線形関係)、及びバイアスの組み合わせとして定義される。重み付行列、及びバイアスは、多層化ネットワークのパラメータと呼ばれる。パラメータ付き合成関数は、パラメータをどのように選ぶかで、関数としての形を変える。多層化ネットワークでは、構成するパラメータを適切に設定することで、出力層から好ましい結果を出力することが可能な関数を定義することができる。
【0065】
本実施形態では、学習済みモデル2024は、例えば、AI同士が対戦した際の各ターンの盤面と、対戦結果とに基づき、現在のターンの盤面が勝利にどれだけ近い状態かを数値で出力するようにトレーニングされている。例えば、学習済みモデル2024は、現在の盤面からどのように盤面が遷移し、どのような対戦結果となったかに基づき、盤面を評価する評価パラメータが調整される。このようにトレーニングされた学習済みモデル2024に盤面情報が入力されると、当該盤面が勝利にどれだけ近い状態かを表す数値が戦局として学習済みモデル2024から出力される。
【0066】
また、学習済みモデル2024は、例えば、AI同士が対戦した際の各ターンの盤面と、対戦結果とに基づき、採用し得る行動が勝利にどれだけ貢献するかを数値で出力するようにトレーニングされている。例えば、学習済みモデル2024は、現在の盤面で採用した行動により遷移した盤面が勝利に近付いたか否かに基づき、採用し得る行動を評価する評価パラメータが調整される。このようにトレーニングされた学習済みモデル2024に盤面情報を入力すると、採用し得る行動が勝利にどれだけ貢献するかを表す数値が行動スコアとして学習済みモデル2024から出力される。行動スコアは、例えば、観戦者が行動に対して、相対的な評価を下せる数値であればよい。行動スコアは、例えば、1~3桁程度の数値で表され得る。
【0067】
学習済みモデル2024をトレーニングする際に利用したAIは、例えば、機械学習モデルのパラメータが強化学習のトレーニング方法に従って調節されることでトレーニングされている。強化学習は、ある環境下に置かれたエージェントが環境に対して行動をし、得られる報酬が最大化されるような方策を求める機械学習アルゴリズムである。本実施形態において機械学習アルゴリズムは、例えば、Q学習、DQN(Deep-Q-Network)等を含む。強化学習では、エージェントが環境に対して行動を起こし、環境が状態の更新と行動の評価を行い、状態と報酬をエージェントに知らせるというサイクルを複数回繰り返す。そして、得られる報酬の合計が最大化されるように、行動価値関数と方策とを最適化する。
【0068】
より具体的には、例えば、学習担当者は、対戦を行う2人のプレイヤをエージェントとする。学習担当者は、所定の6体のキャラクタによりチームを組んだ状態を提供する。エージェントは、所定の方策に基づき、チームに属するキャラクタから、実際に使用する3体のキャラクタを選択する。エージェントは、所定の方策に基づき、選択した3体のキャラクタから、対戦させるキャラクタを選択する。エージェントは、所定の方策に基づき、採用可能なキャラクタの行動のうち、一つの行動を取る。環境は、エージェントの行動に応じて状態を更新し、エージェントの行動を評価する。環境は、状態と報酬とをエージェントに知らせる。エージェントは、例えば、報酬の合計を最大化させるための行動を取る。
【0069】
エージェントは、エージェントの行動を変えながら、つまり、チームを組む6体のキャラクタ、実際に使用する3体のキャラクタ、対戦させるキャラクタ、採用するキャラクタの行動を変えながら対戦を繰り返す。これにより、行動価値関数と方策とが最適化され、対戦に適したAIが生成される。
【0070】
制御部203は、プロセッサ29が記憶部202に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部203は、プログラムに従って動作することにより、受信制御モジュール2031、送信制御モジュール2032、管理モジュール2033、推定モジュール2034、算出モジュール2035、抽出モジュール2036、生成モジュール2037、提示モジュール2038としての機能を発揮する。
【0071】
受信制御モジュール2031は、サーバ20が外部の装置から通信プロトコルに従って信号を受信する処理を制御する。具体的には、例えば、受信制御モジュール2031は、第2端末装置30から送信される信号を受信する。
【0072】
送信制御モジュール2032は、サーバ20が外部の装置に対し通信プロトコルに従って信号を送信する処理を制御する。具体的には、例えば、送信制御モジュール2032は、対戦動画に関する情報を第1端末装置10、及び第3端末装置40へ送信する。
【0073】
管理モジュール2033は、記憶部202に記憶されるテーブルを管理する。具体的には、例えば、管理モジュール2033は、提供される情報に基づき、ユーザ情報テーブル2021を更新する。また、例えば、管理モジュール2033は、提供される情報に基づき、キャラクタテーブル2022を更新する。また、例えば、管理モジュール2033は、提供される情報に基づき、対戦情報テーブル2023を更新する。
【0074】
推定モジュール2034は、現在の盤面に基づいて戦局を推定する。具体的には、例えば、推定モジュール2034は、現在の盤面に関する情報(盤面情報)を第2端末装置30から取得する。推定モジュール2034は、現在の盤面情報を学習済みモデル2024へ入力し、学習済みモデル2024から戦局を出力させる。
【0075】
また、推定モジュール2034は、現在の盤面においてキャラクタが取り得る行動の行動スコアを推定する。具体的には、例えば、推定モジュール2034は、現在の盤面情報を学習済みモデル2024へ入力し、キャラクタが取り得る行動の行動スコアを学習済みモデル2024から出力させる。
【0076】
推定モジュール2034は、学習済みモデル2024への盤面情報の入力に、複数種類の形態を有していてもよい。具体的には、例えば、プレイヤは、対戦の開始時に実際に使用する複数のキャラクタをチームから指定する。対戦の観戦者は、プレイヤにより指定された複数のキャラクタのうち、最初にバトル場に配置されるキャラクタについては認識可能であるが、配置されていない残りのキャラクタについては認識できない。推定モジュール2034は、盤面情報の入力に係る第1形態として、プレイヤにより指定された複数のキャラクタに関する情報を盤面情報として学習済みモデル2024に入力してもよい。また、推定モジュール2034は、盤面情報の入力に係る第2形態として、バトル場に配置され、開示されたキャラクタに関する情報のみを盤面情報として学習済みモデル2024に入力してもよい。第1形態の入力に基づく推定によれば、より正確な戦局を出力可能である。また、第2形態の入力に基づく推定によれば、観戦者が把握する情報に基づく戦局を出力可能である。
【0077】
算出モジュール2035は、プレイヤが取った行動に基づいて発生する結果を算出する。具体的には、例えば、算出モジュール2035は、所定のターンの盤面においてプレイヤが取った行動を、第2端末装置30を介して運用者から受け付ける。算出モジュール2035は、受け付けた行動に基づき、発生する結果を算出する。算出モジュール2035は、発生した結果を盤面に反映させる。
【0078】
また、算出モジュール2035は、実際の対戦では採用されなかったキャラクタの行動に基づいて発生する結果を算出する。具体的には、例えば、算出モジュール2035は、所定のターンの盤面に対し、プレイヤが取った行動と異なる行動を、第2端末装置30を介して運用者から受け付ける。算出モジュール2035は、受け付けた行動に基づき、発生する結果を算出する。算出モジュール2035は、発生した結果を盤面に反映させる。推定モジュール2034は、算出モジュール2035により模擬された盤面に基づいて戦況を推定してもよい。
【0079】
抽出モジュール2036は、対戦において注目するべき場面を抽出する。このことは、例えば、抽出モジュール2036は、対戦において盛り上がったと推定される場面を抽出すると換言可能である。具体的には、例えば、抽出モジュール2036は、単一の対戦において、注目するべき場面を抽出する。抽出モジュール2036は、例えば、少なくとも以下のいずれかのターンを、注目するべき場面として抽出する。
・戦局が所定値以上変動した行動を実施したターン
・提示される行動スコアとの差が所定値以上の行動をプレイヤが選択したターン
・キャラクタのHPがゼロになったターン
【0080】
また、抽出モジュール2036は、例えば、複数の対戦において、注目するべき場面を抽出する。複数の対戦は、例えば、所定の期間に実施された複数の対戦である。所定の期間は、例えば、所定の時間であってもよいし、所定の日であってもよいし、大会開催中の複数の日であってもよい。抽出モジュール2036は、例えば、少なくとも以下のいずれかのターンを、注目するべき場面として抽出する。
・戦局が所定値以上変動した行動を実施したターン
・提示される行動スコアとの差が所定値以上の行動をプレイヤが選択したターン
・キャラクタのHPがゼロになったターン
・所定のターン数の経過後において、均衡していることを表す範囲内(例えば、40対60~60対40等の範囲)に戦局が維持されているターン
・劣勢だった戦局が一気にひっくり返った行動を実施したターン
【0081】
抽出モジュール2036は、仮想的な行動を入力する場面を抽出してもよい。仮想的な行動を入力する場面は、例えば、対戦において、ターニングポイントとなった場面である。抽出モジュール2036は、例えば、少なくとも以下のいずれかのターンを、対戦におけるターニングポイントとなった場面として抽出する。
・戦局が所定値以上変動した行動を実施したターン
・提示される行動スコアとの差が所定値以上の行動をプレイヤが選択したターン
・劣勢だった戦局が一気にひっくり返った行動を実施したターン
【0082】
抽出モジュール2036は、例えば、運用者からの要求に応じ、仮想的な行動を入力する場面を抽出し、第2端末装置30へ送信する。運用者は、例えば、対戦の最中、又は対戦の振り返りの際にサーバ20に対して仮想的な行動を入力する場面を要求する。
【0083】
生成モジュール2037は、抽出されたターンに基づき、ハイライト動画を生成する。具体的には、例えば、生成モジュール2037は、単一の対戦から抽出されたターンの動画を繋ぎ合わせ、単一の対戦におけるハイライト動画を生成する。また、例えば、生成モジュール2037は、複数の対戦から抽出されたターンの動画を繋ぎ合わせ、所定の期間において実施された複数の対戦のハイライト動画を生成する。所定の期間において実施された複数の対戦のハイライト動画は、例えば、所定の大会のハイライト動画と換言可能である。生成されたハイライト動画は、例えば、運用者が編集してもよい。なお、ハイライト動画の編集は、運用者に限られず、図示しないその他の管理者が実施してもよい。
【0084】
提示モジュール2038は、対戦を観戦するユーザ、運用者、及び実況者に対し、対戦に係る動画を提示する。また、例えば、提示モジュール2038は、所定のユーザ等に対し、ハイライト動画、又は編集されたハイライト動画を提示する。
【0085】
また、提示モジュール2038は、実際の対戦では採用されなかったキャラクタの行動に基づいて発生する仮想的な結果を所定のユーザ等に対して提示する。また、提示モジュール2038は、仮想的な結果から推定される仮想的な戦局を所定のユーザ等に対して提示する。
【0086】
また、例えば、対戦を観戦するユーザは、ターン毎に、バトル場に配置されているキャラクタがどのような行動を取るかについて投票してもよい。提示モジュール2038は、例えば、どのような行動を取るかについての投票結果を取得する。提示モジュール2038は、例えば、キャラクタが採用可能な行動と、当該行動に対する投票結果(観戦者の予想)とを観戦者に提示する。提示モジュール2038は、例えば、キャラクタが採用可能な行動と、行動について推定された行動スコアと、行動に対する投票結果とを顧客に提示してもよい。
【0087】
<2 データ構造>
図6~
図8は、サーバ20が記憶する情報のデータ構造の例を示す図である。なお、
図6~
図8は一例であり、記載されていないデータを除外するものではない。
【0088】
図6は、ユーザ情報テーブル2021のデータ構造の例を示す図である。
図6に示すユーザ情報テーブル2021は、ユーザIDをキーとして、氏名、年齢、住所、生年月日、登録年月日等のカラムを有するテーブルである。ユーザ情報テーブル2021は、上記に限らず、腕前(熟練度、プレイヤレベル)を記憶するカラムを有してもよい。また、ユーザ情報テーブル2021は、ユーザによる対戦の戦績を記憶するカラムを有してもよい。
【0089】
ユーザIDは、ユーザを一意に識別するための識別子を記憶する項目である。氏名は、ユーザの氏名を記憶する項目である。年齢は、ユーザの年齢を記憶する項目である。住所は、ユーザが住んでいる場所を記憶する項目である。生年月日は、ユーザが生まれた日付を記憶する項目である。登録年月日は、対戦動画の配信に係るサービスの利用をユーザが開始した日付を記憶する項目である。
【0090】
ユーザ情報テーブル2021におけるレコードは、ユーザが新たに登録されると追加される。
【0091】
図7は、キャラクタテーブル2022のデータ構造の例を示す図である。
図7に示すキャラクタテーブル2022は、対戦IDをキーとして、開始時刻、キャラクタ名、キャラクタID、タイプ、ステータス、特性、技、ユーザID等のカラムを有するテーブルである。なお、キャラクタテーブル2022に含まれるカラムは、これらに限定されず、いずれのカラムが含まれなくてもよいし、他のカラムが含まれていてもよい。例えば、キャラクタテーブル2022は、対戦に影響を与えるもちもの、又は上記のタイプとは異なる第2タイプ等のカラムを有していてもよい。
【0092】
対戦IDは、対戦を一意に識別するための識別子を記憶する項目である。開始時刻は、対戦が開始された時刻を記憶する項目である。キャラクタ名は、プレイヤが対戦で使用するキャラクタの名称を記憶する項目である。キャラクタ名は、例えば、プレイヤにより設定された名称が付されていてもよいし、デフォルトで設定された名称が付されていてもよい。キャラクタIDは、キャラクタを一意に識別するための識別子を記憶する項目である。キャラクタIDは、例えば、デフォルトで設定されているキャラクタ名が同じキャラクタについては、同じキャラクタIDが付されている。
【0093】
タイプは、キャラクタのタイプを記憶する項目である。ステータスは、キャラクタのステータスを記憶する項目である。特性は、キャラクタの特性を記憶した項目である。技は、キャラクタが使用可能な技を記憶する項目である。項目「技」には、1体のキャラクタに対して複数の技が記憶されていてもよい。項目「技」には、1回の対戦においてキャラクタが当該技を使用可能な回数が記憶されていてもよい。項目「技」には、技を使用するごとに消費されるエネルギーのような概念が技毎に記憶されていてもよい。ユーザIDは、キャラクタを有するユーザを一意に識別するための識別子を記憶する項目である。
【0094】
キャラクタテーブル2022におけるレコードは、例えば、新たな対戦が始まる際に、プレイヤにより6体のキャラクタが選択されると追加される。
【0095】
図8は、対戦情報テーブル2023のデータ構造の例を示す図である。
図8に示す対戦情報テーブル2023は、対戦IDをキーとして、ターン、場、バトル場1、行動1、キャラクタ1-1、キャラクタ1-2、キャラクタ1-3、バトル場2、行動2、キャラクタ2-1、キャラクタ2-2、キャラクタ2-3、戦局等のカラムを有するテーブルである。なお、対戦情報テーブル2023に含まれるカラムは、これらに限定されず、いずれのカラムが含まれなくてもよいし、他のカラムが含まれていてもよい。例えば、対戦情報テーブル2023は、対戦しているプレイヤを記憶するカラムを有してもよい。また、対戦情報テーブル2023は、ターン毎に表示される行動と、行動に付された行動スコアを記憶するカラムを有してもよい。
【0096】
ターンは、レコードが作成されたターンを記憶する項目である。例えば、項目「ターン」における情報が「1」である場合、そのレコードは、1ターン目に作成されたものであることを表す。場は、場に対して付されている状態を記憶する項目である。項目「場」は、例えば、天気、又は場に付されている特性を含む。本実施形態において天気は、例えば、日差しが強い、雨、雪、砂嵐等を含む。また、本実施形態において場に付されている特性は、例えば、エレキフィールド、グラスフィールド、ミストフィールド、サイコフィールド等を含む。
【0097】
バトル場1は、対戦している一方のプレイヤ(第1プレイヤ)のバトル場に出されているキャラクタを記憶する項目である。つまり、項目「バトル場1」に記憶されるキャラクタは、対戦において第1プレイヤが操作可能なキャラクタを表す。項目「バトル場1」は、例えば、バトル場に出ているキャラクタのキャラクタ名が記憶されている。なお、項目「バトル場1」に記憶される情報は、第1プレイヤの所定のキャラクタであることが把握できればキャラクタ名に限定されない。例えば、キャラクタテーブル2022にレコードが作成される際に識別情報が発行される場合、その識別情報が項目「バトル場1」に記憶されてもよい。
【0098】
行動1は、バトル場1に出されているキャラクタが取った行動を記憶する項目である。項目「行動1」は、例えば、キャラクタが使用した技、又は所定のキャラクタへの交代等が記憶されている。1ターン中に実施される行動は、例えば、1回である。
【0099】
キャラクタ1-1~キャラクタ1-3は、チームに含まれるキャラクタから、第1プレイヤが実際に対戦で使用するとして選択したキャラクタを記憶する項目である。項目「キャラクタ1-1~キャラクタ1-3」には、例えば、キャラクタ名、キャラクタのHP、自キャラクタ又は他キャラクタの所定の技による影響(例えば、ステータスに対する補正値)、異常の付与等が記憶される。
【0100】
バトル場2は、対戦している他方のプレイヤ(第2プレイヤ)のバトル場に出されているキャラクタを記憶する項目である。つまり、項目「バトル場2」に記憶されるキャラクタは、対戦において第2プレイヤが操作可能なキャラクタを表す。項目「バトル場2」は、例えば、バトル場に出ているキャラクタのキャラクタ名が記憶されている。なお、項目「バトル場2」に記憶される情報は、第2プレイヤの所定のキャラクタであることが把握できればキャラクタ名に限定されない。例えば、キャラクタテーブル2022にレコードが作成される際に識別情報が発行される場合、その識別情報が項目「バトル場2」に記憶されてもよい。
【0101】
行動2は、バトル場2に出されているキャラクタが取った行動を記憶する項目である。項目「行動2」は、例えば、キャラクタが使用した技、又は所定のキャラクタへの交代等が記憶されている。
【0102】
キャラクタ2-1~キャラクタ2-3は、チームに含まれるキャラクタから、第2プレイヤが実際に対戦で使用するとして選択したキャラクタを記憶する項目である。項目「キャラクタ2-1~キャラクタ2-3」には、例えば、キャラクタ名、キャラクタのHP、自キャラクタ又は他キャラクタの所定の技による影響(例えば、ステータスに対する補正値)、異常の付与等が記憶される。
【0103】
戦局は、戦局を表す数値を記憶する項目である。
【0104】
対戦情報テーブル2023におけるレコードは、ターン毎の盤面情報が提供されると作成される。
【0105】
<3 動作>
(戦局の表示を含む対戦動画の配信)
戦局の表示を含む対戦動画を第1端末装置10へ配信する際のサーバ20及び第2端末装置30の動作について説明する。
【0106】
図9は、戦局の表示を含む対戦動画を第1端末装置10へ配信する際のサーバ20及び第2端末装置30の動作を説明するための図である。
【0107】
まず、対戦を実施する第1プレイヤ及び第2プレイヤは、例えば、対戦で使用する端末を操作し、対戦のルールを設定する。対戦で使用する端末は、例えば、ゲーム専用機であってもよい。具体的には、第1プレイヤ及び第2プレイヤは、例えば、ゲーム専用機を操作し、所望の対戦形式と、それぞれの対戦形式における種々のルールを設定する。ルールを設定すると、第1プレイヤ及び第2プレイヤは、例えば、所有する複数のキャラクタから6体のキャラクタを選択してチームを組む。
【0108】
第1プレイヤ及び第2プレイヤは、選択した6体のキャラクタに関する情報をサーバ20へ送信する。第1プレイヤ及び第2プレイヤは、選択した6体のキャラクタに関する情報を、例えば、対戦で使用する端末からサーバ20へ送信する。また、第1プレイヤ及び第2プレイヤは、選択した6体のキャラクタに関する情報を、対戦で使用する端末以外からサーバ20へ送信してもよい。例えば、第1プレイヤ及び第2プレイヤは、選択した6体のキャラクタに関する情報を、対戦で使用する端末(例えば、ゲーム専用機)から自身が所有する端末装置(例えば、スマートフォン等)へ移行し、端末装置からサーバ20へ送信する。
【0109】
ステップS11において、サーバ20は、第1プレイヤ及び第2プレイヤにより選択されたキャラクタに関する情報を登録する。具体的には、管理モジュール2033は、第1プレイヤ及び第2プレイヤによりそれぞれ選択された6体のキャラクタについてのレコードをキャラクタテーブル2022に作成する。管理モジュール2033は、例えば、作成したレコードのキャラクタ名、キャラクタID、タイプ、ステータス、特性、技、ユーザID等に、選択された6体のキャラクタに関する情報のうち対応する情報を記憶する。
【0110】
なお、選択した6体のキャラクタに関する情報は、第2端末装置30を介してサーバ20へ送信されてもよい。第1プレイヤ及び第2プレイヤは、例えば、対戦で使用する端末を操作し、選択した6体のキャラクタに関する情報を第2端末装置30へ送信する。第2端末装置30は、6体のキャラクタに関する情報をサーバ20へ送信する。
【0111】
選択したキャラクタに関する情報をサーバ20へ送信すると、第1プレイヤ及び第2プレイヤは、対戦で実際に使用するキャラクタをチームの中から指定する。具体的には、第1プレイヤ及び第2プレイヤは、チームに含まれる6体のキャラクタから、対戦で実際に使用する3体のキャラクタ、及び当該3体のキャラクタのうち最初にバトル場に配置するキャラクタを指定する。
【0112】
第1プレイヤ及び第2プレイヤは、指定した3体のキャラクタ、及び最初に戦わせるキャラクタを第2端末装置30へ通知する。第1プレイヤ及び第2プレイヤは、指定した3体のキャラクタ、及び最初に戦わせるキャラクタを、例えば、対戦で使用する端末から第2端末装置30へ通知する。また、第1プレイヤ及び第2プレイヤは、指定した3体のキャラクタ、及び最初に戦わせるキャラクタを、対戦で使用する端末以外から第2端末装置30へ通知してもよい。例えば、第1プレイヤ及び第2プレイヤは、指定した3体のキャラクタ、及び最初に戦わせるキャラクタを、自身が所有する端末装置(例えば、スマートフォン等)から第2端末装置30へ通知する。また、第1プレイヤ及び第2プレイヤは、指定した3体のキャラクタ、及び最初に戦わせるキャラクタを、第2端末装置30を操作する運用者が所有する他の装置へ通知してもよい。運用者は、例えば、当該装置への通知内容を確認し、第2端末装置30を操作する。
【0113】
ステップS12において、第2端末装置30は、第1プレイヤ及び第2プレイヤから通知されたキャラクタに関する情報をサーバ20へ送信する。具体的には、例えば、送受信部192は、第1形態の入力に基づく推定、又は第2形態の入力に基づく推定を実施するように指示を出す。第1形態の入力に基づく推定を実施させる場合、送受信部192は、例えば、第1プレイヤ及び第2プレイヤから指定された3体のキャラクタのキャラクタ名、及び最初に戦わせるキャラクタのキャラクタ名をサーバ20へ送信する。
【0114】
ステップS13において、サーバ20は、第2端末装置30から送信されたキャラクタに関する情報を登録する。具体的には、例えば、管理モジュール2033は、第0ターンについてのレコードを対戦情報テーブル2023に作成する。管理モジュール2033は、例えば、作成したレコードのバトル場1、バトル場2、キャラクタ1-1~キャラクタ1-3、キャラクタ2-1~キャラクタ2-3等に、第2端末装置30から送信された情報のうち対応する情報を記憶する。
【0115】
ステップS14において、サーバ20は、現在の盤面に基づいて戦局を推定する。具体的には、例えば、推定モジュール2034は、対戦情報テーブル2023に記憶されているターン0における情報と、キャラクタテーブル2022に記憶されている対応するキャラクタについての情報とを読み出す。推定モジュール2034は、例えば、対戦情報テーブル2023の項目:キャラクタ1-1~キャラクタ1-3、キャラクタ2-1~キャラクタ2-3に記憶されている情報、及び項目:場に記憶されている情報と、キャラクタテーブル2022の項目:タイプ、ステータス、特性、技等に記憶されている情報とを学習済みモデル2024に入力し、学習済みモデル2024から戦局を出力させる。
【0116】
また、推定モジュール2034は、例えば、現在の盤面においてキャラクタが取り得る行動の行動スコアを推定する。具体的には、例えば、推定モジュール2034は、対戦情報テーブル2023の項目:キャラクタ1-1~キャラクタ1-3、キャラクタ2-1~キャラクタ2-3に記憶されている情報、及び項目:場に記憶されている情報と、キャラクタテーブル2022の項目:タイプ、ステータス、特性、技等に記憶されている情報とを学習済みモデル2024に入力し、バトル場1、及びバトル場2に配置されているキャラクタが取り得る行動の行動スコアを学習済みモデル2024から出力させる。
【0117】
ステップS15において、サーバ20は、戦局、及び行動スコアと、対戦動画とを第1端末装置10、第2端末装置30、第3端末装置40の操作者に提示する。具体的には、例えば、提示モジュール2038は、対戦動画を第1端末装置10、第2端末装置30、第3端末装置40の操作者に提示する。提示モジュール2038は、戦局、及び行動スコアを対戦動画に関連付ける。提示モジュール2038は、戦局、及び行動スコアを、対戦動画と関連付けて第1端末装置10、第2端末装置30、第3端末装置40の操作者に提示する。送信制御モジュール2032は、対戦動画を表示させるためのデータを第1端末装置10、第2端末装置30、第3端末装置40へ送信する。送信制御モジュール2032は、対戦動画と関連付けた戦局、及び行動スコアを表示させるためのデータを第1端末装置10、第2端末装置30、第3端末装置40へ送信する。
【0118】
ステップS16において、第1端末装置10、第2端末装置30、第3端末装置40は、対戦動画と、対戦動画に関連付けられた戦局、及び行動スコアとを表示する。
【0119】
最初に戦わせるキャラクタを選択すると、第1プレイヤ及び第2プレイヤは、対戦を開始する。第1プレイヤは、バトル場1に配置したキャラクタを操作し、第2プレイヤがバトル場2に配置したキャラクタと戦わせる。第1プレイヤ及び第2プレイヤは、第1ターンにおいて、自身のキャラクタの行動を選択する。キャラクタは、プレイヤにより選択された行動を、例えば、キャラクタの素早さに係る数値に基づいた順序で実行する。キャラクタは、プレイヤにより選択された行動に基づく影響を、対戦相手のキャラクタに与える。
【0120】
ステップS17において、第2端末装置30は、第1プレイヤ及び第2プレイヤが取った行動を受け付ける。具体的には、例えば、運用者は、第1プレイヤ及び第2プレイヤが取った行動を、対戦動画を介して把握する。第2端末装置30は、サーバ20へ盤面情報を入力するための所定のインタフェースを表示している。運用者は、第2端末装置30を操作し、第1プレイヤ、及び第2プレイヤが取った行動をインタフェースへ入力する。第2端末装置30は、入力された情報をサーバ20へ送信する。
【0121】
技によっては、所定の確率で効果が発生する技もある。第1プレイヤ又は第2プレイヤが確率で効果が発生する技を選択した場合、インタフェースには、効果が発生したか否かを入力するためのコマンドが表示されてもよい。運用者は、対戦において技の効果が発生した場合、技の効果が発生したことをコマンドに入力する。
【0122】
図10は、第2端末装置30で表示される、サーバ20へ盤面情報を入力するためのインタフェース1411の例を表す模式図である。
図10に示されるインタフェース1411では、例えば、第1領域14111、第2領域14112、第3領域14113、第4領域14114、第5領域14115、第6領域14116、第7領域14117、第8領域14118、第9領域14119が表示されている。
【0123】
第1領域14111は、バトルログを表示する領域である。提示制御部193は、第1領域14111に、対戦中に取られた行動及び当該行動による結果を表示する。具体的には、例えば、提示制御部193は、第3領域14113、及び第5領域14115に表示された行動から、運用者により選択された行動を第1領域14111に表示する。提示制御部193は、運用者により選択された行動の結果を第1領域14111に表示する。運用者により選択された行動の結果は、例えば、サーバ20で算出される。例えば、第2端末装置30は、例えば、運用者により選択された行動をサーバ20へ送信する。サーバ20は、運用者により選択された行動に基づいて結果を算出し、第2端末装置30へ送信する。
【0124】
第2領域14112は、第1プレイヤのバトル場1に配置されたキャラクタの状態を表示する領域である。具体的には、例えば、第2領域14112は、バトル場1に配置されたキャラクタのキャラクタ名、及び当該キャラクタの現在のHPを表示する。また、第2領域14112は、バトル場1に配置されたキャラクタが受けている、自キャラクタ又は他キャラクタの所定の技による影響を表示する。キャラクタの現在のHP、及び受けている影響は、例えば、サーバ20で算出される。第2端末装置30は、例えば、運用者により選択された行動をサーバ20へ送信する。サーバ20は、運用者により選択された行動に基づいてキャラクタの現在のHP、及び受けている影響を算出し、第2端末装置30へ送信する。提示制御部193は、第2領域14112に、現在のHP、及び影響を反映させる。
【0125】
第3領域14113は、運用者が選択可能な、第1プレイヤのバトル場1に配置されたキャラクタの行動を表示する領域である。提示制御部193は、第2領域14112に表示されるキャラクタの技をキャラクタテーブル2022から読み出し、読み出した技を第3領域14113に表示する。提示制御部193は、技を使用可能な回数を第3領域14113に表示してもよい。提示制御部193は、交代の選択肢としてキャラクタ名2、キャラクタ名3を第3領域14113に表示する。第2端末装置30は、第3領域14113に表示される行動のうち、第1プレイヤが取った行動について、運用者からの選択を受け付ける。
【0126】
第4領域14114は、第2プレイヤのバトル場2に配置されたキャラクタの状態を表示する領域である。具体的には、例えば、第4領域14114は、バトル場2に配置されたキャラクタのキャラクタ名、及び当該キャラクタの現在のHPを表示する。また、第4領域14114は、バトル場2に配置されたキャラクタが受けている、自キャラクタ又は他キャラクタの所定の技による影響を表示する。キャラクタの現在のHP、及び受けている影響は、例えば、サーバ20で算出される。提示制御部193は、第4領域14114に、現在のHP、及び影響を反映させる。
【0127】
第5領域14115は、運用者が選択可能な、第2プレイヤのバトル場2に配置されたキャラクタの行動を表示する領域である。提示制御部193は、第4領域14114に表示されるキャラクタの技をキャラクタテーブル2022から読み出し、読み出した技を第5領域14115に表示する。提示制御部193は、技を使用可能な回数を第5領域14115に表示してもよい。提示制御部193は、交代の選択肢としてキャラクタ名5、キャラクタ名6を第5領域14115に表示する。第2端末装置30は、第5領域14115に表示される行動のうち、第2プレイヤが取った行動について、運用者からの選択を受け付ける。
【0128】
第6領域14116は、場に関する情報を表示する領域である。具体的には、例えば、第6領域14116は、天気の情報、又はフィールドの特性の情報を表示する。天気の情報、又はフィールドの特性の情報は、例えば、サーバ20で算出される。提示制御部193は、例えば、運用者により選択された行動に基づいて取得された天気の情報、又はフィールドの特性の情報を、第6領域14116に反映させる。
【0129】
第7領域14117は、戦局を表示する領域である。具体的には、第7領域14117は、推定モジュール2034によって推定された戦局を表す図、及び戦局を表す数値を表示する。なお、第7領域14117は、戦局を表す図、又は戦局を表す数値を表示してもよい。提示制御部193は、サーバ20で推定された戦局をサーバ20から受信し、受信した戦局に係る情報をディスプレイ141に表示させる。
【0130】
第8領域14118は、バトル場1に配置されたキャラクタが採用可能な行動の行動スコアを表示する領域である。サーバ20は、例えば、第3領域14113に記載されている行動に対し、行動スコアを付す。提示制御部193は、例えば、行動スコアが付された行動を、行動スコアが高い順に、第8領域14118に表示する。第9領域14119は、バトル場2に配置されたキャラクタが採用可能な行動の行動スコアを表示する領域である。サーバ20は、例えば、第5領域14115に記載されている行動に対し、行動スコアを付す。提示制御部193は、例えば、行動スコアが付された行動を、行動スコアが高い順に、第9領域14119に表示する。
【0131】
ステップS18において、サーバ20は、行動結果を算出する。具体的には、例えば、受信制御モジュール2031は、第2端末装置30を介し、第1プレイヤ、及び第2プレイヤが取った行動を受信する。管理モジュール2033は、第1ターンについてのレコードを対戦情報テーブル2023に作成する。管理モジュール2033は、作成したレコードの行動1、行動2等に、第2端末装置30から送信された情報のうち対応する情報を記憶する。算出モジュール2035は、受け付けた行動に基づき、発生する結果を算出する。管理モジュール2033は、第1プレイヤ、及び第2プレイヤが取った行動により発生した結果を、作成したレコードのキャラクタ1-1~キャラクタ1-3、キャラクタ2-1~キャラクタ2-3等に記憶する。送信制御モジュール2032は、対戦情報テーブル2023に記憶された結果を第2端末装置30へ送信する。第2端末装置30は、サーバ20から送信された結果をインタフェースに反映させる。
【0132】
ステップS19において、サーバ20は、現在の盤面に基づいて戦局を推定する。具体的には、例えば、推定モジュール2034は、対戦情報テーブル2023に記憶されている第1ターンにおける情報と、キャラクタテーブル2022に記憶されている対応するキャラクタについての情報とを読み出す。推定モジュール2034は、対戦情報テーブル2023の項目:キャラクタ1-1~キャラクタ1-3、キャラクタ2-1~キャラクタ2-3に記憶されている情報、及び項目:場に記憶されている情報と、キャラクタテーブル2022の項目:タイプ、ステータス、特性、技等に記憶されている情報とを学習済みモデル2024に入力し、学習済みモデル2024から戦局を出力させる。また、推定モジュール2034は、現在の盤面においてキャラクタが取り得る行動の行動スコアを推定する。具体的には、例えば、推定モジュール2034は、対戦情報テーブル2023の項目:キャラクタ1-1~キャラクタ1-3、キャラクタ2-1~キャラクタ2-3に記憶されている情報、及び項目:場に記憶されている情報と、キャラクタテーブル2022の項目:タイプ、ステータス、特性、技等に記憶されている情報とを学習済みモデル2024に入力し、バトル場1、及びバトル場2に配置されているキャラクタが取り得る行動の行動スコアを学習済みモデル2024から出力させる。
【0133】
ステップS110において、サーバ20は、戦局、及び行動スコアを第1端末装置10、第2端末装置30、第3端末装置40の操作者に提示する。具体的には、例えば、提示モジュール2038は、ターン1の行動の結果に基づいて推定した戦局、及び行動スコアを表示させるためのデータを第1端末装置10、第2端末装置30、第3端末装置40へ送信する。
【0134】
ステップS111において、第1端末装置10、第2端末装置30、第3端末装置40は、対戦動画と、対戦動画に関連付けられた戦局、及び行動スコアとを表示する。具体的には、例えば、第1端末装置10、第2端末装置30、第3端末装置40は、対戦動画と関連付けて表示されている戦局、及び行動スコアを、新たに推定した戦局、及び行動スコアで更新する。
【0135】
図11は、戦局及び行動スコアが関連付けられた対戦動画1412の例を表す模式図である。
図11で示される対戦動画1412では、例えば、第1領域14121、第2領域14122、第3領域14123、第4領域14124、第5領域14125、第6領域14126、第7領域14127、第8領域14128、第9領域14129が表示されている。
【0136】
第1領域14121は、対戦動画を表す領域である。運用者は、例えば、第1領域14121に表示される対戦動画を参照し、第1プレイヤ及び第2プレイヤによりどのような行動がとられたかを把握する。なお、運用者は、配信用の対戦動画でなく、第1プレイヤ及び第2プレイヤの動向をより高精度に把握可能な動画を参照してもよい。
【0137】
第2領域14122は、第1プレイヤの控えキャラクタを表す領域である。
図11に示す例では、例えば、2体のキャラクタが控えとして表示されている。提示制御部193は、対戦情報テーブル2023を参照し、控えキャラクタを第2領域14122に表示する。提示制御部193は、控えキャラクタの現在のHP、控えキャラクタのタイプ等を第2領域14122に表示してもよい。第3領域14123は、第1プレイヤを表示する領域である。第3領域14123で表示される第1プレイヤは、第1プレイヤの実際の画像であってもよいし、実際の画像に対して所定の加工がされた画像であってもよいし、第1プレイヤのアバター画像であってもよい。
【0138】
第4領域14124は、第2プレイヤの控えキャラクタを表す領域である。
図11に示す例では、例えば、2体のキャラクタが控えとして表示されている。提示制御部193は、対戦情報テーブル2023を参照し、控えキャラクタを第4領域14124に表示する。提示制御部193は、控えキャラクタの現在のHP、控えキャラクタのタイプ等を第4領域14124に表示してもよい。第5領域14125は、第2プレイヤを表示する領域である。第5領域14125で表示される第2プレイヤは、第2プレイヤの実際の画像であってもよいし、実際の画像に対して所定の加工がされた画像であってもよいし、第2プレイヤのアバター画像であってもよい。
【0139】
第6領域14126は、戦局を表示する領域である。具体的には、第6領域14126は、推定モジュール2034によって推定された戦局を表す図、及び戦局を表す数値を表示する。なお、第6領域14126は、戦局を表す図、又は戦局を表す数値を表示してもよい。提示制御部193は、サーバ20で推定された戦局をサーバ20から受信し、受信した戦局に係る情報をディスプレイ141に表示させる。サーバ20において戦局はターン毎に推定され、提示制御部193は、例えば、戦局が推定される度に第6領域14126を更新する。第7領域14127は、戦局の遷移を表示する領域である。
【0140】
第8領域14128は、バトル場1に配置されたキャラクタが採用可能な行動の行動スコアを表示する領域である。提示制御部193は、例えば、第8領域14128に、行動スコアが高い順に行動を表示する。第9領域14129は、バトル場2に配置されたキャラクタが採用可能な行動の行動スコアを表示する領域である。提示制御部193は、例えば、第9領域14129に、行動スコアが高い順に行動を表示する。
【0141】
第1端末装置10、サーバ20、第2端末装置30は、
図9に示されるステップS17~ステップS111をターン毎に繰り返す。
【0142】
第1プレイヤ、及び第2プレイヤがキャラクタの行動を選択し、バトル場1、又はバトル場2に配置されるキャラクタのHPがゼロになると、当該キャラクタは、HPが残っている控えキャラクタへ交代させられる。第1プレイヤ、及び第2プレイヤは、対戦相手の3体のキャラクタのHPがゼロになるか、自身の3体のキャラクタのHPがゼロになるまで対戦を続ける。
【0143】
一方のプレイヤの3体のキャラクタのHPがゼロになった場合、戦局は、例えば、0対100となる。このとき、当該プレイヤが対戦で負けたことになる。
【0144】
ステップS12において、例えば、第2端末装置30が、第1形態の入力に基づく推定でなく、第2形態の入力に基づく推定を実施するように指示を出すことがある。この場合、送受信部192は、例えば、第1プレイヤ及び第2プレイヤから指定された、最初に戦わせるキャラクタのキャラクタ名をサーバ20へ送信する。
【0145】
ステップS13において、サーバ20は、第2端末装置30から送信されたキャラクタに関する情報を登録する。具体的には、例えば、管理モジュール2033は、第0ターンについてのレコードを対戦情報テーブル2023に作成する。管理モジュール2033は、例えば、作成したレコードのバトル場1、バトル場2、キャラクタ1-1、キャラクタ2-1等に、第2端末装置30から送信された情報のうち対応する情報を記憶する。
【0146】
ステップS14において、サーバ20は、現在の盤面に基づいて戦局を推定する。具体的には、例えば、推定モジュール2034は、対戦情報テーブル2023に記憶されているターン0における情報と、キャラクタテーブル2022に記憶されている対応するキャラクタについての情報とを読み出す。推定モジュール2034は、例えば、対戦情報テーブル2023の項目:キャラクタ1-1、キャラクタ2-1に記憶されている情報、及び項目:場に記憶されている情報と、キャラクタテーブル2022の項目:タイプ、ステータス、特性、技等に記憶されている情報とを学習済みモデル2024に入力し、学習済みモデル2024から戦局を出力させる。
【0147】
また、推定モジュール2034は、例えば、現在の盤面においてキャラクタが取り得る行動の行動スコアを推定する。具体的には、例えば、推定モジュール2034は、対戦情報テーブル2023の項目:キャラクタ1-1、キャラクタ2-1に記憶されている情報、及び項目:場に記憶されている情報と、キャラクタテーブル2022の項目:キャラクタ名、タイプ、ステータス、特性、技等に記憶されている情報とを学習済みモデル2024に入力し、バトル場1、及びバトル場2に配置されているキャラクタが取り得る行動の行動スコアを学習済みモデル2024から出力させる。
【0148】
対戦で実際に使用する3体のキャラクタのうち、1体しか開示されていない場合、インタフェース1411は、例えば、以下のように表示される。
【0149】
図12は、第2端末装置30で表示される、サーバ20へ盤面情報を入力するためのインタフェース1411のその他の例を表す模式図である。
図12に示される第3領域14113、第5領域14115、第8領域14118、第9領域14119は、例えば、以下のように表示される。
【0150】
例えば、第3領域14113では、第2領域14112に表示されるキャラクタの技と、交代の選択肢として、チームに組んだその他の5体のキャラクタとが選択可能な行動として表示される。対戦で実際に使用する3体のキャラクタのうち1体しか開示されていないため、交代対象が明らかとなっていないためである。第5領域14115では、例えば、第4領域14114に表示されるキャラクタの技と、交代の選択肢として、チームに組んだその他の5体のキャラクタとが選択可能な行動として表示される。
【0151】
第8領域14118では、バトル場1に配置されたキャラクタの技と、交代の選択肢として、チームに組んだその他の5体のキャラクタとが、それぞれにサーバ20で推定された行動スコアが付されて表示される。第9領域14119では、バトル場2に配置されたキャラクタの技と、交代の選択肢として、チームに組んだその他の5体のキャラクタとが、それぞれにサーバ20で推定された行動スコアが付されて表示される。
【0152】
管理モジュール2033は、例えば、交代等により、対戦で実際に使用する3体のキャラクタが開示されると、対戦情報テーブル2023のキャラクタ1-2、1-3、2-2、2-3のうち、情報が記憶されていないカラムに情報を記憶する。推定モジュール2034は、キャラクタ1-2、1-3、2-2、2-3のうちいずれかのカラムに情報が開示されると、開示されたキャラクタの情報も用いて戦局を推定する。また、推定モジュール2034は、開示されたキャラクタへの交代も含めてバトル場1、及びバトル場2に配置されているキャラクタが取り得る行動の行動スコアを推定する。
【0153】
以上のように、上記実施形態では、送信制御モジュール2032は、対戦ゲームにおける対戦において複数のプレイヤが使用する、複数の所定のキャラクタで組んだチームに関する情報を取得する。推定モジュール2034は、対戦に係るキャラクタの状態に基づいて対戦の戦局を出力するように学習された学習済みモデル2024に、対戦における現在の状態を入力し、現在の戦局を出力させる。提示モジュール2038は、学習済みモデル2024から出力された戦局を対戦の観戦者に提示する。推定モジュール2034は、チームに関する情報から複数のプレイヤにより指定されたキャラクタの行動前の状態を学習済みモデル2024へ入力し、最初の行動前の戦局を出力させる。
【0154】
これにより、サーバ20は、対戦の最初を含む、所定のタイミングでの対戦の状態に基づき、戦局を推定することが可能となる。プレイヤが最初にどのキャラクタを選択するかは、戦局を判断する際の重要な要素である。経験が豊かな観戦者であれば、プレイヤにより選択されたキャラクタを確認した時点で戦局を推定することが可能である。一方、初心者にとっては、登場したキャラクタを把握するのみでは、戦局を推定するのが難しい。サーバ20は、最初に選択されたキャラクタにも基づいて戦局を推定するため、初心者に対しても対戦当初から戦局を把握させることが可能となる。つまり、予備知識がない観戦者に対しても見ごたえのある観戦体験を提供できる。
【0155】
したがって、本実施形態に係るサーバ20によれば、所定のキャラクタで組んだチーム同士で対戦するゲームにおいて、対戦の戦況をリアルタイムかつ高精度に推定できる。
【0156】
また、上記実施形態では、推定モジュール2034は、対戦に実際に使用すると認識されたキャラクタの状態を学習済みモデル2024に入力し、現在の戦局を出力させる。これにより、実際に対戦で使用すると開示されたキャラクタのみを考慮して戦局が推定される。このため、プレイヤがキャラクタを開示させたタイミングで戦局が変わるため、観戦者は、より臨場感を持って対戦を観戦することが可能となる。また、どのようなキャラクタをプレイヤが選択したか、実際にキャラクタが登場するまで観戦者は把握することができないので、ワクワクしながら対戦を観戦することが可能となる。
【0157】
また、上記実施形態では、推定モジュール2034は、複数のプレイヤにより指定された全てのキャラクタの状態を学習済みモデル2024へ入力し、現在の戦局を出力させる。これにより、プレイヤにより指定された全てのキャラクタを考慮して戦局が推定される。このため、プレイヤが操作するキャラクタが開示されていない場合であっても、対戦の戦局を正しく推定することが可能となる。
【0158】
また、上記実施形態では、学習済みモデル2024は、対戦に係るキャラクタの状態に基づいて対戦においてキャラクタが採用可能な行動のスコアを出力するように学習されている。推定モジュール2034は、学習済みモデル2024に、対戦における現在の状態を入力し、キャラクタの次の行動のスコアを出力させる。提示モジュール2038は、キャラクタが採用可能な行動と、学習済みモデル2024から出力されたスコアとを観戦者に提示する。これにより、現在の状況において、どの行動を取るのが確からしいのか、スコアに基づき把握することが可能となる。そのため、プレイヤが取る行動の妥当性、又は意外性を認識しながら対戦を観戦することが可能となる。
【0159】
また、上記実施形態では、推定モジュール2034は、対戦に実際に使用すると認識されたキャラクタの状態を学習済みモデルに入力し、キャラクタの次の行動のスコアを出力させる。これにより、実際に対戦で使用すると開示されたキャラクタのみを考慮して、キャラクタの次の行動のスコアが推定される。このため、どのようなキャラクタをプレイヤが選択したか、実際にキャラクタが登場するまで観戦者は把握することができないので、ワクワクしながら対戦を観戦することが可能となる。
【0160】
また、上記実施形態では、推定モジュール2034は、複数のプレイヤにより指定された全てのキャラクタの状態を学習済みモデルに入力し、キャラクタの次の行動のスコアを出力させる。これにより、プレイヤにより指定された全てのキャラクタを考慮して、キャラクタの次の行動のスコアが推定される。このため、プレイヤが操作するキャラクタが開示されていない場合であっても、対戦の所定の局面における有力候補手を推定することが可能となる。
【0161】
また、上記実施形態では、提示モジュール2038は、キャラクタが採用可能な行動のスコアと、当該行動に対する観戦者の予想とを観戦者に提示する。これにより、観戦者は、サーバ20が推定したスコアと、観戦者の予想とを比較することが可能となり、AIと、観戦者の総意との一致、相違を楽しむことが可能となる。
【0162】
また、上記実施形態では、推定モジュール2034は、対戦における所定の状況下において、対戦では採用されなかった行動を採用した後の状態を学習済みモデルに入力し、仮想の戦局を出力させる。提示モジュール2038は、仮想の戦局を観戦者に提示する。これにより、実際の対戦でプレイヤが採用しなかった行動により、戦局がどのように変動したかを、対戦中、又は対戦の終了後において確認することが可能となる。このため、対戦中のプレイヤの行動を検証することが可能となる。また、異なる行動を取った場合のその後の戦局を推定することが可能となる。
【0163】
また、上記実施形態では、抽出モジュール2036は、対戦において、戦局に基づいて注目するべき場面を抽出する。これにより、サーバ20は、対戦において勝負が動き出した場面を自動で取得することが可能となる。具体的には、抽出モジュール2036は、戦局の変動が大きかった場面を注目するべき場面として抽出する。これにより、サーバ20は、対戦の形勢が変わった場面を、高精度に取得することが可能となる。また、抽出モジュール2036は、対戦において、キャラクタが採用した行動に付されたスコアに基づき、注目するべき場面を抽出する。これにより、採用した行動によっても、対戦において注目するべき場面を抽出することが可能となる。
【0164】
また、上記実施形態では、抽出モジュール2036は、複数の対戦から注目するべき場面を抽出する。これにより、サーバ20は、大会等、複数の対戦を含むイベントにおいて、盛り上がった対戦を自動で取得することが可能となる。
【0165】
<変形例>
上記実施形態では、実際に対戦で使用するキャラクタを最初から認識した状態で戦局を推定する第1形態と、対戦が進むことで、徐々に開示されるキャラクタに基づいて戦局を推定する第2形態とについて説明した。しかしながら、上記実施形態は、第1形態及び第2形態に限定されない。送受信部192は、例えば、第1プレイヤ及び第2プレイヤから指定された3体のキャラクタのキャラクタ名、及び最初に戦わせるキャラクタのキャラクタ名をサーバ20へ送信するが、サーバ20は、戦局の推定に使用する情報を、開示されたキャラクタに関する情報に限定してもよい。
【0166】
つまり、管理モジュール2033は、例えば、第0ターンについてのレコードを対戦情報テーブル2023に作成し、作成したレコードのバトル場1、バトル場2、キャラクタ1-1~キャラクタ1-3、キャラクタ2-1~キャラクタ2-3等に、第2端末装置30から送信された情報のうち対応する情報を記憶する。推定モジュール2034は、例えば、対戦情報テーブル2023の項目:キャラクタ1-1、キャラクタ2-1に記憶されている情報、及び項目:場に記憶されている情報と、キャラクタテーブル2022の項目:タイプ、ステータス、特性、技等に記憶されている情報とを学習済みモデル2024に入力し、学習済みモデル2024から戦局を出力させる。
【0167】
こうすることで、観戦者向けに表示される戦局、及び有力候補手は、開示されたキャラクタについての情報に基づいて推定されるが、インタフェース1411に表示される情報は、プレイヤが指定した3体のキャラクタに基づくものとなる。これにより、観戦者が把握する情報に基づく戦局を出力可能としつつ、運用者の入力の負担を軽減することが可能となる。
【0168】
また、上記実施形態では、運用者により選択された行動の結果がサーバ20で算出される場合を例に説明した。しかしながら、運用者により選択された行動の結果は、第2端末装置30で算出されてもよい。具体的には、例えば、第2端末装置30は、運用者により選択された行動を受け付ける。第2端末装置30は、例えば、受け付けた行動に基づき、発生する結果を算出する。第2端末装置30は、インタフェース1411に、算出した結果を反映させる。第2端末装置30は、算出した結果をサーバ20へ送信する。
【0169】
また、上記実施形態では、運用者が対戦動画を参照し、盤面情報をサーバ20へ送信する例を説明した。しかしながら、運用者が盤面情報をサーバ20へ送信しなくても構わない。例えば、サーバ20は、対戦動画を解析することで、盤面情報を取得してもよい。具体的には、例えば、サーバ20は、対戦動画を取得する。サーバ20の制御部203は、プロセッサ29が記憶部202に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行するで、画像解析モジュールとしての機能を発揮する。画像解析モジュールは、例えば、対戦動画を入力されることで、プレイヤが採用した行動を検出するようにトレーニングされた学習済みモデルを利用する。学習済みモデルは、対戦動画に基づき、プレイヤが採用した行動と、その行動により発生する効果とを検出するようにトレーニングされてもよい。また、学習済みモデルに入力されるのは動画に限定されず、動画をキャプチャした静止画であってもよい。画像解析モジュールは、対戦動画に含まれるテキスト情報に基づき、プレイヤが採用した行動等を検出してもよい。
【0170】
また、例えば、第1プレイヤ及び第2プレイヤが対戦で使用する端末(例えば、ゲーム専用機)とサーバ20とが通信接続可能である場合、ゲーム専用機からサーバ20へ、盤面情報を送信してもよい。具体的には、例えば、第1プレイヤ及び第2プレイヤがゲーム専用機を操作してキャラクタの行動を入力すると、ゲーム専用機からサーバ20へ、行動に関する情報が送信される。サーバ20は、受信した行動に関する情報から、行動により発生する結果を算出する。また、ゲーム専用機からサーバ20へ、行動に関する情報と、当該行動により発生する結果が送信されてもよい。
【0171】
上記実施形態では、各機能を第2端末装置30、又はサーバ20が備える態様の一例について説明したが、この形態に限定されることはなく、一部または全部の機能について上記実施形態と異なる態様で第2端末装置30、サーバ20、又は第2端末装置30とサーバ20の両方が備える構成としてもよい。
【0172】
また、上記実施形態は、上述した第2端末装置30又はサーバ20が備える機能を情報処理装置に実行させるプログラムとして実現してもよいし、当該プログラムを格納する、コンピュータ読み取り可能な非一時的な記録媒体として実現してもよい。
【0173】
また、上記実施形態では、プレイヤが二人である場合を説明した。しかしながら、プレイヤは、三人以上であっても構わない。
【0174】
<4 コンピュータの基本ハードウェア構成>
図13は、コンピュータ90の基本的なハードウェア構成を示すブロック図である。コンピュータ90は、プロセッサ94、主記憶装置95、補助記憶装置96、通信IF99(インタフェース、Interface)を少なくとも備える。これらはバスにより相互に電気的に接続される。
【0175】
プロセッサ94とは、プログラムに記述された命令セットを実行するためのハードウェアである。プロセッサ94は、演算装置、レジスタ、周辺回路等から構成される。
【0176】
主記憶装置95とは、プログラム、及びプログラム等で処理されるデータ等を一時的に記憶するためのものである。例えば、DRAM(Dynamic Random Access Memory)等の揮発性のメモリである。
【0177】
補助記憶装置96とは、データ及びプログラムを保存するための記憶装置である。例えば、フラッシュメモリ、HDD(Hard Disc Drive)、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等である。
【0178】
通信IF99とは、有線又は無線の通信規格を用いて、他のコンピュータとネットワークを介して通信するための信号を入出力するためのインタフェースである。
【0179】
ネットワークは、インターネット、LAN、無線基地局等によって構築される各種移動通信システム等で構成される。例えば、ネットワークには、3G、4G、5G移動通信システム、LTE(Long Term Evolution)、所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えば、Wi-Fi(登録商標))等が含まれる。無線で接続する場合、通信プロトコルとして例えば、Z-Wave(登録商標)、ZigBee(登録商標)、Bluetooth(登録商標)等が含まれる。有線で接続する場合は、ネットワークには、USB(Universal Serial Bus)ケーブル等により直接接続するものも含む。
【0180】
なお、各ハードウェア構成の全部または一部を複数のコンピュータ90に分散して設け、ネットワークを介して相互に接続することによりコンピュータ90を仮想的に実現することができる。このように、コンピュータ90は、単一の筐体、ケースに収納されたコンピュータ90だけでなく、仮想化されたコンピュータシステムも含む概念である。
【0181】
<コンピュータ90の基本機能構成>
図13に示すコンピュータ90の基本ハードウェア構成により実現されるコンピュータの機能構成を説明する。コンピュータは、制御部、記憶部、通信部の機能ユニットを少なくとも備える。
【0182】
なお、コンピュータ90が備える機能ユニットは、それぞれの機能ユニットの全部または一部を、ネットワークで相互に接続された複数のコンピュータ90に分散して設けても実現することができる。コンピュータ90は、単一のコンピュータ90だけでなく、仮想化されたコンピュータシステムも含む概念である。
【0183】
制御部は、プロセッサ94が補助記憶装置96に記憶された各種プログラムを読み出して主記憶装置95に展開し、当該プログラムに従って処理を実行することにより実現される。制御部は、プログラムの種類に応じて様々な情報処理を行う機能ユニットを実現することができる。これにより、コンピュータは情報処理を行う情報処理装置として実現される。
【0184】
記憶部は、主記憶装置95、補助記憶装置96により実現される。記憶部は、データ、各種プログラム、各種データベースを記憶する。また、プロセッサ94は、プログラムに従って記憶部に対応する記憶領域を主記憶装置95または補助記憶装置96に確保することができる。また、制御部は、各種プログラムに従ってプロセッサ94に、記憶部に記憶されたデータの追加、更新、削除処理を実行させることができる。
【0185】
データベースは、リレーショナルデータベースを指し、行と列によって構造的に規定された表形式のテーブルと呼ばれるデータ集合を、互いに関連づけて管理するためのものである。データベースでは、表をテーブル、表の列をカラム、表の行をレコードと呼ぶ。リレーショナルデータベースでは、テーブル同士の関係を設定し、関連づけることができる。
【0186】
通常、各テーブルにはレコードを一意に特定するためのキーとなるカラムが設定されるが、カラムへのキーの設定は必須ではない。制御部は、各種プログラムに従ってプロセッサ94に、記憶部に記憶された特定のテーブルにレコードを追加、削除、更新を実行させることができる。
【0187】
通信部は、通信IF99により実現される。通信部は、ネットワークを介して他のコンピュータ90と通信を行う機能を実現する。通信部は、他のコンピュータ90から送信された情報を受信し、制御部へ入力することができる。制御部は、各種プログラムに従ってプロセッサ94に、受信した情報に対する情報処理を実行させることができる。また、通信部は、制御部から出力された情報を他のコンピュータ90へ送信することができる。
【0188】
本明細書中に記載されている構成要素により実現される機能は、当該記載された機能を実現するようにプログラムされた、汎用プロセッサ、特定用途プロセッサ、集積回路、ASICs (Application Specific Integrated Circuits)、CPU (a Central Processing Unit)、従来型の回路、および/又はそれらの組合せを含む、circuitry又はprocessing circuitryにおいて実装されてもよい。プロセッサは、トランジスタやその他の回路を含み、 circuitry又はprocessing circuitryとみなされる。プロセッサは、メモリに格納されたプログラムを実行する、programmed processorであってもよい。
本明細書において、circuitry、ユニット、手段は、記載された機能を実現するようにプログラムされたハードウェア、又は実行するハードウェアである。当該ハードウェアは、本明細書に開示されているあらゆるハードウェア、又は、当該記載された機能を実現するようにプログラムされた、又は、実行するものとして知られているあらゆるハードウェアであってもよい。
当該ハードウェアがcircuitryのタイプであるとみなされるプロセッサである場合、当該circuitry、手段、又はユニットは、ハードウェアと、当該ハードウェア及び又はプロセッサを構成する為に用いられるソフトウェアの組合せである。
【0189】
以上、本開示のいくつかの実施形態を説明したが、これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
【0190】
<付記>
以上の各実施形態で説明した事項を以下に付記する。
(付記1)
プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムであって、プログラムは、プロセッサに、対戦ゲームにおける対戦において複数のプレイヤが使用する、複数のキャラクタで組んだチームに関する情報を取得するステップと、対戦に係るキャラクタの状態に基づいて対戦の戦局を出力するように学習された学習済みモデルに、対戦における現在の状態を入力し、現在の戦局を出力させるステップと、学習済みモデルから出力された戦局を対戦の観戦者に提示するステップとを実行させ、戦局を出力させるステップにおいて、チームに関する情報から複数のプレイヤにより指定されたキャラクタの対戦における最初の行動前の状態を学習済みモデルに入力し、対戦における最初の行動前の戦局を出力させるプログラム。
(付記2)
出力させるステップにおいて、対戦に実際に使用すると認識されたキャラクタの状態を学習済みモデルに入力し、現在の戦局を出力させる(付記1)に記載のプログラム。
(付記3)
出力させるステップにおいて、複数のプレイヤにより指定された全てのキャラクタの状態を学習済みモデルに入力し、現在の戦局を出力させる(付記1)に記載のプログラム。
(付記4)
出力させるステップにおいて、学習済みモデルは、対戦に係るキャラクタの状態に基づいて対戦においてキャラクタが採用可能な行動のスコアを出力するように学習されており、学習済みモデルに、対戦における現在の状態を入力し、キャラクタの次の行動のスコアを出力させ、提示するステップにおいて、キャラクタが採用可能な行動と、学習済みモデルから出力されたスコアとを観戦者に提示する(付記1)から(付記3)のいずれかに記載のプログラム。
(付記5)
出力させるステップにおいて、対戦に実際に使用すると認識されたキャラクタの状態を学習済みモデルに入力し、キャラクタの次の行動のスコアを出力させる(付記4)に記載のプログラム。
(付記6)
出力させるステップにおいて、複数のプレイヤにより指定された全てのキャラクタの状態を学習済みモデルに入力し、キャラクタの次の行動のスコアを出力させる(付記4)に記載のプログラム。
(付記7)
提示するステップにおいて、キャラクタが採用可能な行動のスコアと、当該行動に対する観戦者の予想とを観戦者に提示する(付記4)から(付記6)のいずれかに記載のプログラム。
(付記8)
対戦における所定の状況下において、対戦では採用されなかった行動を採用した後の状態を学習済みモデルに入力し、仮想の戦局を出力させるステップをプロセッサに実行させ、提示するステップにおいて、仮想の戦局を観戦者に提示する(付記1)から(付記7)のいずれかに記載のプログラム。
(付記9)
対戦において、戦局に基づいて注目するべき場面を抽出するステップをプロセッサに実行させる(付記1)から(付記8)のいずれかに記載のプログラム。
(付記10)
抽出するステップにおいて、戦局の変動が大きかった場面を注目するべき場面として抽出する(付記9)に記載のプログラム。
(付記11)
対戦において、キャラクタが採用した行動に付されたスコアに基づき、注目するべき場面を抽出するステップをプロセッサに実行させる(付記4)に記載のプログラム。
(付記12)
抽出するステップにおいて、複数の対戦から注目するべき場面を抽出する(付記9)から(付記11)のいずれかに記載のプログラム。
(付記13)
プロセッサと、メモリとを備えるコンピュータに実行される方法であって、プロセッサが、(付記1)から(付記12)のいずれかに係る発明において実行されるすべてのステップを実行する方法。
(付記14)
プロセッサと、メモリとを備える情報処理装置であって、プロセッサが、(付記1)から(付記12)のいずれかに係る発明において実行されるすべてのステップを実行する情報処理装置。
(付記15)
(付記1)から(付記12)のいずれかに係る発明において実行されるすべてのステップを実行する手段を備えるシステム。
【符号の説明】
【0191】
1…システム
10…第1端末装置
12…通信IF
120…通信部
13…入力装置
131…ボタン
14…出力装置
141…ディスプレイ
15…メモリ
150…位置情報センサ
16…ストレージ
160…カメラ
17…音声処理部
171…マイク
172…スピーカー
180…記憶部
19…プロセッサ
190…制御部
20…サーバ
30…第2端末装置
40…第3端末装置
【要約】
【課題】所定のキャラクタで組んだチーム同士で対戦するゲームにおいて、対戦の戦況をリアルタイムかつ高精度に推定できる。
【解決手段】 プロセッサと、メモリとを備えるコンピュータに実行させるためのプログラムである。プログラムは、プロセッサに、対戦ゲームにおける対戦において複数のプレイヤが使用する、複数のキャラクタで組んだチームに関する情報を取得するステップと、対戦に係るキャラクタの状態に基づいて対戦の戦局を出力するように学習された学習済みモデルに、対戦における現在の状態を入力し、現在の戦局を出力させるステップと、学習済みモデルから出力された戦局を対戦の観戦者に提示するステップとを実行させる。戦局を出力させるステップにおいて、チームに関する情報から複数のプレイヤにより指定されたキャラクタの対戦における最初の行動前の状態を学習済みモデルに入力し、対戦における最初の行動前の戦局を出力させる。
【選択図】
図11