IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社バンダイナムコゲームスの特許一覧

特許7459328ゲームシステム、プログラム、学習装置及びゲーム提供方法
<>
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図1
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図2
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図3
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図4
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図5
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図6
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図7
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図8
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図9
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図10
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図11
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図12
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図13
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図14
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図15
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図16
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図17A
  • 特許-ゲームシステム、プログラム、学習装置及びゲーム提供方法 図17B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-03-22
(45)【発行日】2024-04-01
(54)【発明の名称】ゲームシステム、プログラム、学習装置及びゲーム提供方法
(51)【国際特許分類】
   A63F 13/67 20140101AFI20240325BHJP
   A63F 13/55 20140101ALI20240325BHJP
   A63F 13/79 20140101ALI20240325BHJP
   A63F 13/533 20140101ALI20240325BHJP
   A63F 13/35 20140101ALI20240325BHJP
   G06N 20/00 20190101ALI20240325BHJP
   A63F 13/833 20140101ALI20240325BHJP
【FI】
A63F13/67
A63F13/55
A63F13/79
A63F13/533
A63F13/35
G06N20/00
A63F13/833
【請求項の数】 13
(21)【出願番号】P 2023009241
(22)【出願日】2023-01-25
【審査請求日】2023-10-04
(73)【特許権者】
【識別番号】000134855
【氏名又は名称】株式会社バンダイナムコエンターテインメント
(74)【代理人】
【識別番号】100090387
【弁理士】
【氏名又は名称】布施 行夫
(74)【代理人】
【識別番号】100090398
【弁理士】
【氏名又は名称】大渕 美千栄
(72)【発明者】
【氏名】ボサー ジェローム
【審査官】岸 智史
(56)【参考文献】
【文献】特開2022-149268(JP,A)
【文献】特開2020-166528(JP,A)
【文献】特開2019-195512(JP,A)
【文献】特開平11-4969(JP,A)
【文献】中国特許出願公開第111111220(CN,A)
【文献】星野准一,外2名,模倣学習により成長する格闘ゲームキャラクタ,情報処理学会論文誌,2008年07月,49巻7号,2539-2548頁
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24、13/00-13/98
(57)【特許請求の範囲】
【請求項1】
プレーヤの操作入力に基づいて行動を制御する第1のキャラクタと、コンピュータによって制御される第2のキャラクタとが対戦する対戦ゲームにおいて、第2のキャラクタの行動を制御するゲームシステムであって、
第1のキャラクタの行動と当該行動に関連する関連情報とを学習する学習部と、
前記学習部において学習された学習データを用いて、第2のキャラクタの行動を制御する行動制御部と、
前記プレーヤの情報に基づいて、学習前に、前記関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、前記関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定する設定部と、を含むことを特徴とするゲームシステム。
【請求項2】
プレーヤの操作入力に基づいて行動を制御する第1のキャラクタと、コンピュータによって制御される第2のキャラクタとが対戦する対戦ゲームにおいて、第2のキャラクタの行動を制御するゲームシステムであって、
第1のキャラクタの行動と当該行動に関連する関連情報とを学習する学習部と、
前記学習部において学習された学習データを用いて、第2のキャラクタの行動を制御する行動制御部と、
前記プレーヤの情報に基づいて、ゲーム進行状況に応じて、前記関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、前記関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定する設定部と、を含むことを特徴とするゲームシステム。
【請求項3】
請求項1又は2において、
前記設定部は、
前記プレーヤの操作入力に基づき、前記関連情報を構成する複数の項目のうち、重みが高い項目の選択を受け付けることを特徴とするゲームシステム。
【請求項4】
請求項1又は2において、
前記設定部は、
前記プレーヤの操作入力に基づき、前記関連情報の複数の項目それぞれの優先順位を設定することを特徴とするゲームシステム。
【請求項5】
請求項1又は2において、
前記プレーヤの情報は、前記プレーヤのプレイ履歴に関する情報を含むことを特徴とするゲームシステム。
【請求項6】
請求項1又は2において、
前記プレーヤの情報は、前記プレーヤの過去のプレイ傾向に関する情報を含むことを特徴とするゲームシステム。
【請求項7】
請求項1又は2において、
前記プレーヤの情報は、前記プレーヤの所定情報に基づいて決定される他のプレーヤに関連する情報を含むことを特徴とするゲームシステム。
【請求項8】
プレーヤの操作入力に基づいて行動を制御する第1のキャラクタと、コンピュータによって制御される第2のキャラクタとが対戦する対戦ゲームにおいて、第2のキャラクタの行動の制御をコンピュータに行わせるプログラムであって、
第1のキャラクタの行動と当該行動に関連する関連情報とを学習する学習部と、
前記学習部において学習された学習データを用いて、第2のキャラクタの行動を制御する行動制御部と、
前記プレーヤの情報に基づいて、学習前に、前記関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、前記関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定する設定部として、コンピュータを機能させることを特徴とするプログラム。
【請求項9】
プレーヤの操作入力に基づいて行動を制御する第1のキャラクタと、コンピュータによって制御される第2のキャラクタとが対戦する対戦ゲームにおいて、第2のキャラクタの行動の制御をコンピュータに行わせるプログラムであって、
第1のキャラクタの行動と当該行動に関連する関連情報とを学習する学習部と、
前記学習部において学習された学習データを用いて、第2のキャラクタの行動を制御する行動制御部と、
前記プレーヤの情報に基づいて、ゲーム進行状況に応じて、前記関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、前記関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定する設定部として、コンピュータを機能させることを特徴とするプログラム。
【請求項10】
プレーヤの操作入力に基づいて行動を制御する第1のキャラクタと、コンピュータによって制御される第2のキャラクタとが対戦する対戦ゲームにおいて、第2のキャラクタの行動を制御する学習装置であって、
第1のキャラクタの行動と当該行動に関連する関連情報とを学習する学習部と、
前記学習部において学習された学習データを用いて、第2のキャラクタの行動を制御する行動制御部と、
前記プレーヤの情報に基づいて、学習前に、前記関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、前記関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定する設定部と、を含むことを特徴とする学習装置。
【請求項11】
プレーヤの操作入力に基づいて行動を制御する第1のキャラクタと、コンピュータによって制御される第2のキャラクタとが対戦する対戦ゲームにおいて、第2のキャラクタの行動を制御する学習装置であって、
第1のキャラクタの行動と当該行動に関連する関連情報とを学習する学習部と、
前記学習部において学習された学習データを用いて、第2のキャラクタの行動を制御する行動制御部と、
前記プレーヤの情報に基づいて、ゲーム進行状況に応じて、前記関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、前記関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定する設定部と、を含むことを特徴とする学習装置。
【請求項12】
プレーヤの操作入力に基づいて行動を制御する第1のキャラクタと、コンピュータによって制御される第2のキャラクタとが対戦する対戦ゲームにおいて、第2のキャラクタの行動を制御するサーバ装置から、プレーヤの端末装置に、ゲームに関する情報を提供するためのゲーム提供方法であって、
前記端末装置によって受け付けられた前記プレーヤの操作入力に関する情報を前記サーバ装置に送信し、
前記サーバ装置から前記端末装置にゲームに関する情報を送信し、
前記サーバ装置が、
第1のキャラクタの行動と当該行動に関連する関連情報とを学習する学習部と、
前記学習部において学習された学習データを用いて、第2のキャラクタの行動を制御する行動制御部と、
前記プレーヤの情報に基づいて、学習前に、前記関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、前記関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定する設定部と、を含む、ことを特徴とするゲーム提供方法。
【請求項13】
プレーヤの操作入力に基づいて行動を制御する第1のキャラクタと、コンピュータによって制御される第2のキャラクタとが対戦する対戦ゲームにおいて、第2のキャラクタの行動を制御するサーバ装置から、プレーヤの端末装置に、ゲームに関する情報を提供するためのゲーム提供方法であって、
前記端末装置によって受け付けられた前記プレーヤの操作入力に関する情報を前記サーバ装置に送信し、
前記サーバ装置から前記端末装置にゲームに関する情報を送信し、
前記サーバ装置が、
第1のキャラクタの行動と当該行動に関連する関連情報とを学習する学習部と、
前記学習部において学習された学習データを用いて、第2のキャラクタの行動を制御する行動制御部と、
前記プレーヤの情報に基づいて、ゲーム進行状況に応じて、前記関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、前記関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定する設定部と、を含む、ことを特徴とするゲーム提供方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームシステム、プログラム、学習装置及びゲーム提供方法
に関する。
【背景技術】
【0002】
従来から、仮想的な3次元空間内において、第1キャラクタと第2のキャラクタとに攻撃又は防御の動作を行わせ対戦格闘を行うゲームが知られている。
【0003】
近年、データを分析及び学習することで生成された学習モデルを利用するゲームシステムが存在する。
【0004】
例えば、特許文献1に示す従来技術では、所定タイミング毎に、入力操作部の操作に応じてキャラクタの繰り出す技に関連する操作データと、画面表示に関連する画面状態データとを収集して学習データ記憶部に書き込み、当該操作データと当該画面状態データとに基づいて深層学習の計算処理を行うことによって、学習結果の重みを最適化する。そして、プレーヤの操作対象の第1のキャラクタと、コンピュータの制御対象の第2のキャラクタとが対戦する場合、第2のキャラクタに対して、推論結果のキーデータを取得して、キー履歴に追加し、キー履歴とコマンド表を参照して動作(又は技)を決定する(特許文献1の0061~0062、0077~0079段落、図9参照)。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2019-195512号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
複数のキャラクタが対戦ゲームを行う場合、プレーヤの操作対象の第1のキャラクタの行動と当該行動に関連する関連情報とを学習し、学習された学習データを用いて、第2のキャラクタの行動を推論する場合がある。このような学習では、効率性や精度が向上することが好ましい。
【0007】
本発明は、上記課題に鑑みたものであり、第1のキャラクタの行動及び当該行動に関連する関連情報に基づいて、学習された学習データを用いて第2のキャラクタの行動を制御する対戦ゲームにおいて、効率よく学習ができるゲームシステム等を提供することを目的とする。
【課題を解決するための手段】
【0008】
(1)本発明は、
プレーヤの操作入力に基づいて行動を制御する第1のキャラクタと、コンピュータによって制御される第2のキャラクタとが対戦する対戦ゲームにおいて、第2のキャラクタの行動を制御するゲームシステムであって、
第1のキャラクタの行動と当該行動に関連する関連情報とを学習する学習部と、
前記学習部において学習された学習データを用いて、第2のキャラクタの行動を制御する行動制御部と、
前記プレーヤの情報に基づいて、学習前に、前記関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、前記関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定する設定部と、を含むことを特徴とするゲームシステムに関する。
【0009】
また、本発明は、上記各部を含む学習装置(端末装置、ゲーム装置)に関する。本発明は、上記各部を含むサーバ装置に関する。本発明は、上記各部としてコンピュータを機能させるプログラムに関する。また、本発明は、コンピュータが読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶する情報記憶媒体に関する。
【0010】
また、本発明は、プレーヤの操作入力に基づいて行動を制御する第1のキャラクタと、コンピュータによって制御される第2のキャラクタとが対戦する対戦ゲームにおいて、第2のキャラクタの行動を制御するサーバ装置から、プレーヤの端末装置に、ゲームに関する情報を提供するためのゲーム提供方法であって、前記端末装置によって受け付けられた前記プレーヤの操作入力に関する情報を前記サーバ装置に送信し、サーバ装置が上記各部を含む、ゲーム提供方法に関する。
【0011】
本発明によれば、プレーヤの情報に基づいて、学習前に、関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定するので、学習の早い段階から、効率よく学習ができる。
【0012】
「学習」とは、例えば、機械学習である。また、「学習」とは、情報を蓄積(記憶)することでもよい。
【0013】
「学習データ」とは、例えば、学習されたデータそのものでもよいし、機械学習によって生成される学習モデルでもよい。
【0014】
(2)本発明は、
プレーヤの操作入力に基づいて行動を制御する第1のキャラクタと、コンピュータによって制御される第2のキャラクタとが対戦する対戦ゲームにおいて、第2のキャラクタの行動を制御するゲームシステムであって、
第1のキャラクタの行動と当該行動に関連する関連情報とを学習する学習部と、
前記学習部において学習された学習データを用いて、第2のキャラクタの行動を制御する行動制御部と、
前記プレーヤの情報に基づいて、ゲーム進行状況に応じて、前記関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、前記関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定する設定部と、を含むことを特徴とするゲームシステムに関する。
【0015】
また、本発明は、上記各部を含む学習装置(端末装置、ゲーム装置)に関する。本発明は、上記各部を含むサーバ装置に関する。本発明は、上記各部としてコンピュータを機能させるプログラムに関する。また、本発明は、コンピュータが読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶する情報記憶媒体に関する。
【0016】
また、本発明は、プレーヤの操作入力に基づいて行動を制御する第1のキャラクタと、コンピュータによって制御される第2のキャラクタとが対戦する対戦ゲームにおいて、第2のキャラクタの行動を制御するサーバ装置から、プレーヤの端末装置に、ゲームに関する情報を提供するためのゲーム提供方法であって、前記端末装置によって受け付けられた前記プレーヤの操作入力に関する情報を前記サーバ装置に送信し、サーバ装置が上記各部を含む、ゲーム提供方法に関する。
【0017】
本発明によれば、プレーヤの情報に基づいて、ゲーム進行状況に応じて、関連情報を構
成する複数の項目の組み合わせ、学習頻度、及び、関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定するので、リアルタイムに効率よく学習ができる。
【0018】
(3)また、本発明に係るゲームシステム、学習装置、サーバ装置、プログラム、情報記憶媒体及びゲーム提供方法では、
前記設定部は、
前記プレーヤの操作入力に基づき、前記関連情報を構成する複数の項目のうち、重みが高い項目の選択を受け付けるようにしてもよい。本発明によれば、プレーヤが、重みが高い項目を選択できるので、プレーヤの意思を重視して重みの高い項目を設定できる。
【0019】
(4)また、本発明に係るゲームシステム、学習装置、サーバ装置、プログラム、情報記憶媒体及びゲーム提供方法では、
前記設定部は、
前記プレーヤの操作入力に基づき、前記関連情報の複数の項目それぞれの優先順位を設定するようにしてもよい。本発明によれば、プレーヤが複数の項目それぞれの優先順位を設定できるので、プレーヤの意思を重視してレーヤが複数の項目それぞれの優先順位を設定できる。
【0020】
(5)また、本発明に係るゲームシステム、学習装置、サーバ装置、プログラム、情報記憶媒体及びゲーム提供方法では、
前記プレーヤの情報は、前記プレーヤのプレイ履歴に関する情報を含むようにしてもよい。本発明によれば、プレーヤのプレイ履歴を考慮した重みの設定ができる。
【0021】
(6)また、本発明に係るゲームシステム、学習装置、サーバ装置、プログラム、情報記憶媒体及びゲーム提供方法では、
前記プレーヤの情報は、前記プレーヤの過去のプレイ傾向に関する情報を含むようにしてもよい。本発明によれば、プレーヤの過去のプレイ傾向を考慮した重みの設定ができる。
【0022】
(7)また、本発明に係るゲームシステム、学習装置、サーバ装置、プログラム、情報記憶媒体及びゲーム提供方法では、
前記プレーヤの情報は、前記プレーヤの所定情報に基づいて決定される他のプレーヤに関連する情報を含むようにしてもよい。本発明によれば、プレーヤの所定情報(例えば、レベル)に基づいて決定される他のプレーヤに関連する情報を考慮して、重みの設定ができる。
【図面の簡単な説明】
【0023】
図1】本実施形態のゲームシステムの構成の一例を示す図。
図2】本実施形態のサーバ装置の機能ブロックを示す図。
図3】本実施形態の端末装置の機能ブロックを示す図。
図4】本実施形態のコントローラの一例を示す図。
図5】本実施形態のゲーム画面の一例を示す図。
図6】本実施形態の行動及び関連情報の説明図。
図7】本実施形態の関連情報を探索するための説明図。
図8】本実施形態の行動に対応付けられたコマンドの一例を示す図。
図9】本実施形態の行動情報及び関連情報の取得の説明図。
図10】本実施形態の関連情報を説明するための図。
図11】本実施形態の所定期間を説明するための図。
図12】本実施形態の所定期間の設定画面を説明するための図。
図13】本実施形態の連続行動の説明するための図。
図14】本実施形態の重み設定画面の一例を示す図。
図15】本実施形態の重み設定画面の一例を示す図。
図16】本実施形態の重み設定画面の一例を示す図。
図17A】本実施形態の処理の流れの一例を示すフローチャート。
図17B】本実施形態の処理の流れの一例を示すフローチャート。
【発明を実施するための形態】
【0024】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0025】
[1]ゲームシステム
まず、図1を用いて本実施形態のゲームシステムの概要及び概要構成について説明する。なお、図1は、本実施形態のゲームシステムの構成を示すシステム構成の一例を示す図である。
【0026】
サーバ装置10は、インターネット(ネットワークの一例)を介して通信接続された端末装置(ゲーム装置)20を用いて、所与のサービスを提供することが可能な情報処理装置である。
【0027】
端末装置20は、家庭用テレビゲーム機、パーソナルコンピュータ(PCとも言う。)スマートフォン、携帯電話、PHS、コンピュータ、PDA、携帯型ゲーム機等、画像生成装置、業務用ゲーム装置、アーケードゲーム装置、筐体などの情報処理装置であり、インターネット(WAN)、LANなどのネットワークを介してサーバ装置10に接続可能な装置である。端末装置20には、入力部260が接続されるとともに、表示部290が接続される。
【0028】
本実施形態の端末装置20は、学習機能(例えば、機械学習による学習機能)を有する。端末装置20は、学習装置と言い換えてもよい。また、端末装置20は、機械学習による推論機能(予測機能)を有する。端末装置20は、推論装置(予測装置)と言い換えてもよい。
【0029】
[1.1]クライアントサーバモデルで構成されるゲームシステム
本実施形態のゲームシステムは、図1に示すように、サーバ装置10と、端末装置20(例えば、端末装置20A、20B、20C)とが、インターネット(ネットワークの一例)に接続可能に構成される。
【0030】
プレーヤは、端末装置20からサーバ装置10にアクセスすることにより、インターネットを介してサーバ装置10から送信される情報に基づき、ゲームをプレイすることができる。
【0031】
特に、本実施形態では、第1のキャラクタと第2のキャラクタとが対戦するゲームを実行させるサーバ装置10から、プレーヤの端末装置20に、ゲームに関する情報を提供する。端末装置20によって受け付けられたプレーヤの操作入力に関する情報をサーバ装置10に送信する。サーバ装置10から端末装置20にゲームに関する情報を送信する。
【0032】
本実施形態は、一つのサーバ装置10によって各ゲームを端末装置20に提供してもよいし、複数のサーバ装置10を連動させてサーバシステムを構築し、各ゲームを端末装置20に提供してもよい。
【0033】
なお、サーバ装置10だけで本発明に関する各種の処理を行うようにしてもよいし、端末装置20だけで本発明に関する各種の処理を行うようにしてもよい。
【0034】
[1.2]端末装置
本実施形態のゲームシステムは、サーバ装置10の機能を備えた単一の端末装置、すなわち、サーバ装置などの他の機器に依存せず単独で動作する装置(スタンドアローン)によって実現してもよい。
【0035】
また、本実施形態では、サーバ装置10と接続せずに、端末装置20だけで本発明を実現するものであってもよい。例えば、P2P(ピア・ツー・ピア方式)による通信によって複数の端末装置20で実現するゲームシステムであってもよい。
【0036】
そして、このような端末装置を有線又は無線によって複数連結させ、一の端末装置がホスト(サーバ装置10)として機能して、複数の端末装置によって実現してもよい。
【0037】
なお、端末装置は、端末装置だけでなく、タブレット型情報端末装置やパーソナルコンピュータ、又は、アミューズメントパークに設置される端末装置(筐体)でもよい。
【0038】
[1.3]クラウド型のゲームシステム
また、本実施形態のゲームシステムはクラウド型のゲームシステムでもよい。例えば、クラウド型のゲームシステムでは、サーバ装置10(クラウド装置)だけで基本的な処理(ゲーム処理、描画処理などを含む)を行い、端末装置20側ではサーバ装置10(クラウド装置)の処理結果の表示制御のみを行う。また、端末装置20は、サーバ装置10に対してコントローラの操作入力(操作情報、入力情報)などの情報を送信する。なお、かかる場合、端末装置20は、操作入力以外の情報を送信してもよい。
【0039】
さらに、本実施形態では、入力を除き、上記の端末装置20の処理部200の各機能及びゲームプログラムの実行をサーバ装置10で実行し、当該端末装置20は、入力とストリーミングによる画像表示を実行することによって、上記のゲームを実現してもよい。
【0040】
また、ゲームシステムは、インターネット上の所与の記憶領域に、サーバ装置10に記憶される情報、端末装置20に記憶される情報を記憶するようにしてもよい。
【0041】
[1.4]複数のコントローラを備えた端末装置
また、本実施形態では、1台の端末装置20が複数のコントローラ(入力部260)を備えたものでもよい。なお、複数のプレーヤが1台の端末装置20の各プレーヤのコントローラを用いてゲームをプレイする場合、複数のプレーヤが現実的に近くにいることが想定される。
【0042】
[1.5]ソーシャルゲームの例
また、本実施形態では、コミュニケーション型のサービスを提供するSNSサーバとして機能してもよい。ここで、SNSサーバとは、複数のプレーヤ間でコミュニケーションを提供することが可能なサービスを提供する情報処理装置であってもよい。
【0043】
また、本実施形態では、例えば、SNSサーバとして機能する場合には、提供するSNSの動作環境(API(アプリケーションプログラミングインタフェース)、プラットフォーム等)を利用して実行されるソーシャルゲーム(Social Game)と呼ばれるゲームを提供できる。
【0044】
なお、ソーシャルゲームとは、既存のオンラインゲームとは違い、専用のクライアント
ソフトウェアを必要とせず、WebブラウザとSNSのアカウントのみで利用可能なゲームが含まれる。また、本実施形態では、ネットワークを介して他のプレーヤの端末装置20と接続し、オンラインで同時に同じゲーム進行を共有することができるオンラインゲームを提供することが可能な構成を有している。
【0045】
[1.6]ブラウザゲームの例
特に、本実施形態では、端末装置20のWebブラウザ上で提供されるゲーム、例えばHTML、FLASH(登録商標)、CGI、PHP、shockwave、Java(登録商標)アプレット、JavaScript(登録商標)など様々な言語で作られたブラウザゲーム(Webブラウザで設置サイトを開くだけで起動するゲーム)を提供してもよい。
【0046】
また、端末装置20は、Webページ(HTML形式のデータ)を閲覧可能なWebブラウザを備えている。すなわち、端末装置20は、サーバ装置10との通信を行うための通信制御機能、及びサーバ装置10から受信したデータ(Webデータ、HTML形式で作成されたデータなど)を用いて表示制御を行うとともに、プレーヤ操作のデータをサーバ装置10に送信するWebブラウザ機能などを備え、画面をプレーヤに提供する各種の処理を実行し、プレーヤによってゲームを実行させるようになっている。ただし、端末装置20は、サーバ装置10から提供されたゲーム制御情報を取得して所定のゲーム処理を実行し、ゲーム処理に基づくゲームを実行してもよい。
【0047】
具体的には、端末装置20は、所定ゲームを行う旨の要求をサーバ装置10に対して行うと、サーバ装置10のゲームサイトに接続され、ゲームが開始される。特に、端末装置20は、必要に応じてAPIを用いることにより、SNSサーバとして機能するサーバ装置10に所定の処理を行わせ、又は、SNSサーバとして機能するサーバ装置10が管理するプレーヤの情報等を取得させてゲームを実行する構成を有してもよい。
【0048】
[1.7]その他
本実施形態では、1つの(装置、プロセッサ)で構成されていてもよいし、複数の(装置、プロセッサ)で構成されていてもよい。サーバ装置10の記憶領域(後述する記憶部170)に記憶される情報(例えば、プレーヤの情報、ゲーム情報等)を、ネットワーク(イントラネット又はインターネット)を介して接続されたデータベース(広義には記憶装置、メモリ)に記憶するようにしてもよい。なお、端末装置20とサーバ装置10との通信回線は、有線でもよいし無線でもよい。
【0049】
[2]サーバ装置
次に、図2を用いて本実施形態のサーバ装置10について説明する。なお、図2は、本実施形態のサーバ装置10の機能ブロックを示す図である。また、本実施形態の本実施形態では図2の構成要素(各部)の一部を省略した構成としてもよい。
【0050】
本実施形態では、管理者やその他の入力に用いるための入力部160、所定の情報が記憶された情報記憶媒体180、端末装置20やその他と通信を行う通信部196、主に提供するゲームに関する処理を実行する処理部100、及び、主にゲームに用いる各種のデータを記憶する記憶部170を含む。
【0051】
入力部160は、システム管理者等がゲームに関する設定やその他の必要な設定、データの入力に用いるものである。例えば、本実施形態の入力部160は、マウスやキーボード等によって構成される。
【0052】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデー
タなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などによって構成される。
【0053】
通信部196は、外部(例えば、端末、他のサーバや他のネットワークシステム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどによって構成される。
【0054】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能は、RAM(VRAM)などによって構成される。なお、記憶部170に記憶される情報は、データベースで管理してもよい。
【0055】
また、本実施形態の記憶部170は、主記憶部171の他に、ゲームに関する情報を示すゲーム情報が記憶されるゲーム情報記憶部174、及び、プレーヤ情報記憶部(ユーザ情報記憶部)176を有している。
【0056】
特に、ゲーム情報記憶部174には、ゲームが実施される仮想空間(ゲームフィールド)の情報、仮想カメラの情報、ゲームで用いられる設定値等が記憶される。
【0057】
また、プレーヤ情報記憶部176には、プレーヤ毎(ユーザ毎)に、プレーヤID(ユーザID)に対応付けてプレーヤ情報(ユーザの情報)が記憶される。プレーヤIDは、プレーヤを識別するための識別情報である。
【0058】
処理部100は、記憶部170内の主記憶部171をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0059】
処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0060】
例えば、処理部100(プロセッサ)は、情報記憶媒体180に記憶されているプログラムに基づいて、サーバ装置10全体の制御を行うとともに、各部間におけるデータ等の受け渡しの制御などの各種の処理を行う。さらに、端末装置20からの要求に応じた各種サービスを提供する処理を行う。
【0061】
なお、本実施形態では、サーバ装置10が処理部100の一部又は全部の処理を行ってもよいし、端末装置20が処理部100の一部の処理を行ってもよい。
【0062】
処理部100は、ゲーム処理部111、表示制御部112、受け付け部119、通信制御部120、Web処理部121、管理部122、通知部123を含む。
【0063】
ゲーム処理部111は、本実施形態のゲーム(例えば、格闘ゲーム)を提供するための各種制御を行う。例えば、処理部100は、端末装置20と連動し、当該端末装置20を介して入力されたプレーヤの入力に基づいて、各プレーヤにおいて本実施形態で提供するゲームのゲーム処理を実行する。
【0064】
また、処理部100は、タイマ機能を有し、ゲームの進行状況を管理するため、各端末装置20と同期を取るために用いるようにしてもよい。特に、現在時刻や予め設定された
時刻を各部に出力するようにしてもよい。
【0065】
ゲーム処理部111は、プレーヤの操作入力(操作情報)に基づいて、ゲーム処理を実行する。例えば、ゲーム処理部111は、プレーヤの端末装置20から当該プレーヤの操作入力(操作情報)を受信して、ゲーム処理を行うようにしてもよい。また、オンライン対戦時には、各プレーヤとのマッチング処理等を行う。
【0066】
表示制御部112は、ゲーム状況に応じてサーバ装置10が生成した画面(画像)を、端末装置20の表示部290に表示するように制御する。つまり、サーバ装置10が生成した画面(画像)の表示先を、端末装置20の表示部290とする。
【0067】
表示制御部112は、プレーヤ毎に、プレーヤの端末装置20に表示する画面(ゲーム画像、演出画像)を表示するための制御を行う。
【0068】
受け付け部119は、ゲームに関する情報を受け付けてもよい。例えば、受け付け部119は、受け付け部119は、端末装置20から操作入力の内容を受信して受け付けてもよい。
【0069】
また、受け付け部119は、通信制御部120によるデータ送受信によって、プレーヤの入力やゲームに関する情報などを受け付けるようにしてもよい。
【0070】
通信制御部120は、端末装置20との接続(セッションやコネクション)を確立し、ネットワークを介してデータを通信(送受信)する処理を行う。
【0071】
例えば、通信制御部120は、プレーヤの端末装置20に、ゲームに関する情報を送信する。また、通信制御部120は、プレーヤの端末装置20から、当該端末装置20によって受け付けられたプレーヤの操作情報を受信する。また、通信制御部120は、端末装置20にゲームに関する情報を送信する。
【0072】
Web処理部121は、Webサーバとして機能する。例えば、Web処理部121は、HTTP(Hypertext Transfer Protocol)等の通信プロトコルを通じて、端末装置20にインストールされているWebブラウザの要求に応じてデータを送信する処理、及び、端末装置20のWebブラウザによって送信されるデータを受信する処理を行う。
【0073】
管理部122は、ゲーム情報や、プレーヤ毎に、プレーヤの識別情報に対応付けられたプレーヤの情報を管理する。
【0074】
また、通知部123は、プレーヤに所与の情報を通知する。なお、「通知」するとは、プレーヤ(プレーヤの端末装置20)に対して情報を通知することである。なお、「通知」を、提供、提示、表示、送信という文言に言い換えて解釈してもよい。
【0075】
通知部123は、画面を端末装置20において通知するように送信制御をしてもよい。つまり、通知部123は、画面(画像)の表示制御情報を生成し、生成した表示制御情報を、プレーヤの端末装置20(例えば、端末装置20の表示部290)に表示するように制御する。
【0076】
なお、サーバ装置10は、以下に説明する端末装置20の全部又は一部の機能を有していてもよい。
【0077】
[3]端末装置
次に、図3を用いて本実施形態の端末装置20について説明する。なお、図3は、本実施形態における端末装置20の構成を示す機能ブロック図の一例である。また、本実施形態の端末装置20は図3の構成要素(各部)の一部を省略した構成としてもよい。
【0078】
情報記憶媒体280(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。
【0079】
入力部260は、操作入力(操作信号)を入力可能なボタンやレバーを備える。図4は、入力部260の一例のコントローラ30の外観図である。なお、コントローラ30は、ゲームセンターのアーケードゲームと同じコントローラでもよい。
【0080】
端末装置20は、プレーヤに表示部290に表示されたゲーム画面を視聴させながら、対戦格闘ゲームを興趣させるため、記憶部270や情報記憶媒体280から読み出したゲームのプログラムやゲーム情報、又は、コントローラ30から入力される操作入力等に基づいて、格闘ゲームを実行する。
【0081】
コントローラ30は、4つの押点を有する十字型の方向スイッチ31が装着され、4つの押ボタン33(33a~33d)が十字形(上下左右の4方向)に配置して装着される。
【0082】
また、コントローラ30は、アナログジョイスティック(以下「ジョイスティック」と略称する)32と、ジョイスティック34が傾動自在に装着される。
【0083】
方向スイッチ31、ジョイスティック32、押ボタン33及びジョイスティック34は、キャラクタの移動方向の指示、又は技の種類を指定するための操作に用いられる。具体的には、方向スイッチ31は、上下左右の4方向に押点を有し、上下左右の何れかの押点を押すことによって、上下左右の何れかの方向を指示するための入力を行うものである。また、ジョイスティック32及びジョイスティック34は、上下左右の4方向と、4方向の中間となる右斜め上(又は右上),右斜め下(又は右下),左斜め下(又は左下),左斜め上(又は左上)の4方向を加えた8方向の入力が可能である。
【0084】
なお、方向スイッチ31を用いて8方向を指示する場合は、上と右の押点を同時に押して「右斜め上」、右と下の押点を同時に押して「右斜め下」、下と左の押点を同時に押して「左斜め下」、左と上の押点を同時に押して「左斜め上」のそれぞれの入力(斜め4方向)を指示することもできる。
【0085】
押ボタン33a~33dは、その上面に△〇×□等の記号が付されてもよい。押ボタン33a~33dは、ゲームにおけるキャラクタの行動(例えば、攻撃)を指示するために用いられる。例えば、本実施形態では、押ボタン33a~33dには、右パンチ、右キック、左キック、左パンチの機能が割り当てられる。例えば、プレーヤは、ゲームプレイする場合、左手親指で方向スイッチ31又はジョイスティック32を操作し、右手親指で押ボタン33a~33d又はジョイスティック34を操作する。
【0086】
なお、入力部260は、タッチパネル又はタッチパネル型ディスプレイなどにより実現できてもよい。すなわち、入力部260は、画像が表示される画面上における2次元の指示位置座標(x,y)を検出可能な検出部262を備えている。例えば、入力部260は、接触検出領域(タッチパネル)における、2次元の接触位置座標(x,y)を検出可能
な検出部262を備えている。なお、表示画面(以下、特別な場合を除き「タッチパネル」という。)への接触操作は、指先を用いて行うようにしてもよいし、タッチペンなどの入力機器を用いて行うようにしてもよい。
【0087】
また、入力部260は、キーボード、ステアリング、マイク、加速度センサなどを備えていてもよい。
【0088】
記憶部270は、記憶部270は、200や通信部296などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0089】
記憶部270の記憶領域の一例の図である。そして、本実施形態の記憶部270は、主記憶部271と、画像バッファ272と、ゲーム情報記憶部274、プレーヤ情報記憶部276と、学習記憶部278、学習モデル記憶部279を含む。なお、これらの一部を省略する構成としてもよいし、サーバ装置10の記憶部170或いはネットワークを介して接続された所与の記憶装置(クラウド上の記憶領域)がその一部を構成してもよい。
【0090】
主記憶部271は、ワーク領域として使用される。画像バッファ272には、画像生成部230によって生成された画像データ(表示画像)が記憶される。なお、サーバ装置10が生成した画像データを受信し、当該画像データを画像バッファ272に記憶してもよい。
【0091】
ゲーム情報記憶部274には、ゲーム情報が記憶される。なお、端末装置20は、サーバ装置10から、ゲーム情報を受信して、ゲーム情報記憶部274に、当該ゲーム情報を記憶してもよい。
【0092】
ゲーム情報は、コマンド情報、キャラクタ情報を含む。ゲーム情報記憶部274に記憶されるゲーム情報は、キャラクタの行動情報及び当該行動情報に関連する関連情報を含んでもよい。また、ゲーム情報記憶部274に記憶されるゲーム情報は、ゲームフィールド(ゲーム空間)の情報、仮想カメラの情報、その他ゲームで用いられる設定値等を含んでもよい。
【0093】
コマンド情報は、キャラクタ毎に用意される。コマンド情報は、予め定義されたキーデータである。つまり、コマンド情報は、行動に対応する、コントローラ30の入力すべきキー(入力すべきキーが複数の場合はそのキーの入力順)を示す。
【0094】
キャラクタ情報は、キャラクタに関する情報である。例えば、キャラクタのパラメータ(体力値、攻撃力、防御力等のパラメータ)、キャラクタが有するアイテム(武器)、レベル(段位、ランク)等である。レベルは、技量レベルの高さ、キャラクタの強さを示す。本実施形態では、レベルは、ゲーム成績によって順次更新される。
【0095】
プレーヤ情報記憶部276は、プレーヤの情報が記憶される。なお、端末装置20は、サーバ装置10から、プレーヤIDに対応するプレーヤ情報を受信して、プレーヤ情報記憶部276に記憶するようにしてもよい。
【0096】
例えば、プレーヤ情報記憶部276には、プレーヤのレベル、プレイ履歴、プレイ傾向、プレーヤに関連する他のプレーヤの情報、等が記憶される。
【0097】
なお、プレーヤ情報は、プレーヤの操作入力(操作情報)を含んでもよい。また、プレーヤ情報は、プレーヤに対応付けられたプレーヤの情報だけでなく、プレーヤのゲーム媒体(例えば、プレーヤが所有するキャラクタ、カード、アイテムなどのゲーム媒体)の情
報等を含む概念であってもよい。
【0098】
学習記憶部278には、学習(例えば、機械学習)のための情報(例えば、学習データ、教師データ、重みデータ、各種パラメータ)が記憶される。
【0099】
機械学習とは、入力値と出力値から、そこに潜むパターンを獲得することを目的とした学習方法である。ニューラルネットワーク(深層学習)は、機械学習で用いられる1つの枠組みである。ニューラルネットワークは、人工ニューロンという数式的なモデル(関数)で表現したものである。本実施形態の機械学習は、ニューラルネットワークに限らず、他のアルゴリズム(ロジスティック回帰、決定木、ブースティング、ランダムフォレスト、サポートベクターマシン等)でもよい。
【0100】
学習モデル記憶部279には、学習モデルが記憶される。学習モデルは、入力データと出力データとの相関関係(関係性)や傾向を数式(関数)で表したものである。学習モデル記憶部279には、学習部218において機械学習された学習モデルが記憶される。
【0101】
情報記憶媒体280について説明すると、情報記憶媒体280は、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。なお、処理部200は、後述するように、情報記憶媒体280に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。
【0102】
表示部290は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。
【0103】
特に、本実施形態では表示部290は、タッチパネルディスプレイを用いることによりプレーヤがゲーム操作を行う入力部260としても機能する。ここでタッチパネルとして、例えば抵抗膜方式(4線式、5線式)、静電容量方式、電磁誘導方式、超音波表面弾性波方式、赤外線走査方式などのタッチパネルを用いることができる。
【0104】
音出力部292は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0105】
通信部296は、外部(例えばサーバ装置10や他の端末装置20)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0106】
なお、端末装置20は、サーバ装置10が有する情報記憶媒体180や記憶部170に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体280や記憶部270に記憶してもよい。このようにプログラムやデータを受信して端末装置20を機能させる場合も本発明の範囲内に含めることができる。
【0107】
処理部200(プロセッサ)は、入力部260からの入力データやプログラムなどに基づいて、サーバ装置10と連動して、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【0108】
特に、本実施形態においては、ゲーム処理として、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタ、敵キャラクタなどのオブ
ジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などが含まれる。
【0109】
また、処理部200は、入力部260によって入力されたプレーヤの操作入力に基づき、ゲーム処理(例えば、対戦ゲーム等の処理)、等を行う。また、処理部200は、サーバ装置10と連動して実行してもよいし、その一部又は全部がサーバ装置10に形成されていてもよい。
【0110】
また、処理部200は、記憶部270をワーク領域として各種処理を行う。処理部200の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0111】
処理部200は、通信制御部211、オブジェクト空間設定部212、移動・動作制御部213、操作入力受付部214、ゲーム制御部215、仮想カメラ制御部216、行動制御部217、学習部218、設定部219、判断部220、探索部221、表示制御部222、変化部223、画像生成部230、音処理部240を含む。なお、これらの一部を省略する構成としてもよい。
【0112】
通信制御部211は、サーバ装置10、それぞれとデータを送受信する処理を行う。また、通信制御部211は、サーバ装置10から受信したデータを記憶部270に格納する処理、受信したデータを解析する処理、その他のデータの送受信に関する制御処理等を行う。
【0113】
通信制御部211は、サーバ装置10から受信した情報に基づいて対戦ゲームを実行する場合に、又は、ネットワークを介して他のプレーヤと対戦する場合に、サーバ装置10や他の端末装置20から送信された各種の情報を受信し、サーバ装置10や他の端末装置20に送信する。
【0114】
通信制御部211は、プレーヤからの通信開始の操作入力を受け付けた場合に、他の端末装置20又はサーバ装置10との通信を行うようにしてもよい。
【0115】
また、通信制御部211は、他の端末装置20又はサーバ装置10と通信接続が確立されてから当該通信接続が切断されるまで、データを所定周期で互いに送受信する処理を行う。
【0116】
通信制御部211は、サーバ装置10にプレーヤの識別情報や操作入力を送信して、データ(プレーヤのWebページ、画面等)をサーバ装置10から受信する処理を行う。
【0117】
通信制御部211は、所定周期でサーバ装置10とデータ送受信を行ってもよいし、入力部260からの操作入力を受け付けた場合に、サーバ装置10とデータ送受信を行ってもよい。特に、本実施形態の通信制御部211は、所与の画面情報(例えば、画面の情報等)を、サーバ装置10から受信する処理を行うようにしてもよい。
【0118】
さらに、通信制御部211は、複数の端末装置20によって構成されるネットワークシステムの場合は、複数の端末装置20間でデータの送受信を行いながらオンラインゲームを実行するピア・ツー・ピア(いわゆるP2P)方式によって通信制御を実行してもよいし、サーバ装置10を介して各端末装置20がデータ(情報)の送受信を行いながらオンラインゲームを実行するクライアント・サーバ方式によって通信制御を実行してもよい。
なお、本実施形態のゲームシステムでは、有線通信のみならず無線通信でデータを送受信してもよい。
【0119】
オブジェクト空間設定部212は、オブジェクトをオブジェクト空間(仮想的三次元空間)に配置する処理を行う。例えば、仮想三次元仮想空間中にゲーム空間(例えば、キャラクタが格闘を繰り広げるためのステージ)を形成する処理を行う。キャラクタの他に、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を、オブジェクト空間に配置する処理を行う。ここでオブジェクト空間とは、仮想的なゲーム空間であり、例えば、ワールド座標系、仮想カメラ座標系のように、三次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0120】
例えば、オブジェクト空間設定部212は、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0121】
オブジェクト空間設定部212は、スクリーン(二次元画像、画面、スクリーン座標系)上に、特殊コマンドの入力指示オブジェクト、マーカーなどの指示オブジェクトを配置する処理を行うようにしてもよい。また、オブジェクト空間設定部212は、オブジェクト空間(三次元空間、ワールド座標系、仮想カメラ座標系、モデル座標系)に、指示オブジェクトを配置するようにしてもよい。
【0122】
移動・動作制御部213は、オブジェクト空間にあるオブジェクトの移動・動作演算を行う。すなわちコントローラ30から受け付けた操作入力や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。
【0123】
移動・動作制御部213は、オブジェクト空間において、主要なオブジェクトであるキャラクタオブジェクト(キャラクタ)の挙動を制御する。
【0124】
具体的には、移動・動作制御部213は、コントローラ30への操作入力に基づくキーデータに基づいて、自機を操作するプレーヤの操作対象のプレーヤキャラクタの動作を制御する処理、当該キャラクタが繰り出す攻撃技のヒット判定処理及び、相手キャラクタから攻撃を受けた際のダメージ処理などを行う。
【0125】
移動・動作制御部213は、対戦相手が実プレーヤである場合、対戦相手の端末装置20において入力されたキーデータを取得し、取得したキーデータに基づいて、相手キャラクタが繰り出す攻撃技の移動・動作、当該攻撃技のヒット判定処理、及び、プレーヤキャラクタから攻撃を受けた際のダメージの移動・動作処理などを行う。
【0126】
移動・動作制御部213は、対戦相手がコンピュータ(CPU)である場合、所定のプログラム、アルゴリズムに基づいて、コンピュータキャラクタ(NPC(ノンプレーヤキャラクタ)ともいう)が繰り出す攻撃技の移動・動作、当該攻撃技のヒット判定処理、及び、プレーヤキャラクタから攻撃を受けた際のダメージの移動・動作処理などを行う。つまり、対戦相手がコンピュータである場合、プレーヤによって操作されずに、コンピュータキャラクタの移動・動作の制御を行う。
【0127】
移動・動作制御部213は、コンピュータキャラクタが、AI(Artificial
Intelligenceの略)によって制御されるAIキャラクタである場合、学習モデルを用いて推論される行動による移動・動作を行う。
【0128】
また、移動・動作制御部213は、係る処理を1フレーム(例えば、1/60秒)毎に行う。なお、フレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【0129】
操作入力受付部214は、プレーヤによってコントローラ30に入力された操作入力に基づいて、操作指示コマンドを受け付ける。
【0130】
具体的には、本実施形態の操作入力受付部214は、入力部260によって入力されたキーの種別やキーの指示方向、キーの押し下げ回数、押し下げ時間、押し下げタイミング、及び、これらの組み合わせに基づいて、プレーヤによって入力された操作指示コマンドを検出する。
【0131】
ゲーム制御部215は、対戦ゲームの進行に係る処理を実行する。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理(以下、「ゲーム開始処理」ともいう。)、プレーヤの操作入力に応じて、プレーヤキャラクタを制御して対戦ゲームの進行を制御するゲーム処理、ゲーム終了条件が満たされた場合にゲームを終了する処理(以下、「ゲーム終了処理」ともいう。)、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【0132】
プレーヤがコンピュータと対戦する場合、ゲーム制御部215は、端末装置20の操作入力受付部214によって受け付けられたプレーヤの操作入力の情報と、コンピュータで制御される情報(例えば、行動制御部217によって決定された行動の情報を含む)に基づいて、ゲームの進行を行う。
【0133】
実プレーヤ同士で対戦する場合、ゲーム制御部215は、端末装置20Aの操作入力受付部214によって受け付けられた第1のプレーヤの操作入力の情報と、第2のプレーヤの端末装置20Bから送信された情報であって、端末装置20Bにおける第2のプレーヤの操作入力の情報と、に応じて、ゲームの進行を行う。
【0134】
ゲーム制御部215は、第1のキャラクタOB1と第2のキャラクタOB2とが、相互に攻撃や防御を行い、両者の体力値を減少させる。そして、両者の体力値に基づいて勝敗を判定する。例えば、1ラウンドのゲーム中に、先に体力値が所定値(0)に達した方が敗者となり他方が勝者となる。1ラウンドのゲーム期間の終了時において、両者ともに体力値が1以上である場合、体力値が高い方を勝者とし、他方を敗者と判定する。
【0135】
仮想カメラ制御部216は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。
【0136】
具体的には、仮想カメラ制御部216は、三次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置(X、Y、Z)、回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。
【0137】
すなわち、仮想カメラ制御部216は、仮想カメラの視点位置、視線方向、画角、移動方向、移動速度の少なくとも1つを制御する処理を行う。
【0138】
行動制御部217は、キャラクタの行動を制御する処理を行う。例えば、行動制御部217は、プレーヤの操作入力に基づいて、当該プレーヤの操作対象のキャラクタ(以下、「第1のキャラクタ」ともいう。)の行動を制御する。
【0139】
また、行動制御部217は、学習部218において学習(例えば、機械学習)された学習データ(例えば、学習モデル)を用いて、コンピュータによって制御されるコンピュータキャラクタ(以下、「第2のキャラクタ」ともいう。)の行動を制御する。
【0140】
行動制御部217は、探索部221において探索された関連情報に基づいて、第2のキャラクタの行動を制御してもよい。
【0141】
「行動」は、1つの行動でもよいし、継続条件を満たす複数の行動に基づく連続行動を含んでもよい。
【0142】
行動制御部217は、予め第1のキャラクタの行動の種類毎に、当該行動に対応する第2のキャラクタの行動を定義してもよい。
【0143】
行動制御部217は、第2のキャラクタの行動を定義したデータ、及び、学習データの少なくとも一方を用いて、第2のキャラクタの行動を制御してもよい。予め定義される第2のキャラクタの行動の数は1つでもよいし複数でもよい。
【0144】
例えば、行動制御部217は、探索された関連情報の一致度が所定値以上でない場合に、検出された未学習の当該第1のキャラクタの行動に対応する予め定義された行動を、第2のキャラクタに行わせるようにしてもよい。
【0145】
また、行動制御部217は、探索された関連情報の一致度が所定値以上でない場合に、検出された未学習の当該第1のキャラクタの行動に対応する複数の予め定義された行動の中から、1つの行動を所定の条件で選択し、選択された行動を第2のキャラクタに行わせるようにしてもよい。
【0146】
学習部218は、第1のキャラクタの行動と当該行動に関連する関連情報とを学習(例えば、機械学習)する。例えば、端末装置20は、関連情報を入力すると、キャラクタの行動(行動情報)が出力される学習モデルを機械学習によって生成する。
【0147】
設定部219は、ゲーム期間において、学習(例えば、機械学習)を行う頻度が高い期間として、所定期間を設ける。例えば、設定部219は、ゲーム期間の開始期間において、所定期間を設けるようにしてもよい。また、設定部219は、プレーヤの操作入力に基づいて、所定期間を設定可能とするようにしてもよい。
【0148】
設定部219は、関連情報を構成する複数の項目の組み合わせを設定してもよい。なお、「項目」は、要素或いは種類を言い換えてもよい。
【0149】
設定部219は、プレーヤの情報に基づいて、学習前(例えば、機械学習前)に、関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定してもよい。
【0150】
また、設定部219は、プレーヤの情報に基づいて、ゲーム進行状況に応じて、関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定してもよい。
【0151】

設定部219は、プレーヤの情報に応じて、関連情報を構成する複数の項目それぞれの重みを設定してもよい。
【0152】
設定部219は、第1のキャラクタの情報に応じて、関連情報を構成する各項目の重みを設定してもよい。
【0153】
設定部219は、ゲーム情報に応じて、関連情報を構成する各項目の重みを設定してもよい。
【0154】
設定部219は、プレーヤの操作入力に基づき、関連情報を構成する複数の項目のうち、重みが高い項目の選択を受け付けるようにしてもよい。設定部219は、プレーヤの操作入力に基づき、関連情報の複数の項目それぞれの優先順位を設定するようにしてもよい。設定部219は、なお、プレーヤの情報は、当該プレーヤのプレイ履歴に関する情報を含んでもよい。また、プレーヤの情報は、当該プレーヤの過去のプレイ傾向に関する情報を含んでもよい。また、プレーヤの情報は、当該プレーヤの所定情報(例えば、レベル)に基づいて決定される他のプレーヤに関連する情報を含むようにしてもよい。
【0155】
判断部220は、未学習の第1のキャラクタの行動及び当該行動の関連情報を検出したか否かを判断する。
【0156】
探索部221は、未学習の第1のキャラクタの行動及び当該行動の関連情報を検出した場合に、学習済みの第1のキャラクタの行動に関連する関連情報の中から、検出された未学習の当該第1のキャラクタの行動に関連する関連情報と一致度が高い関連情報を探索する。
【0157】
つまり、探索部221は、未学習の第1のキャラクタの行動及び当該行動の関連情報を検出した場合に、学習済みの第1のキャラクタの行動に関連する関連情報の中から、検出された未学習の当該第1のキャラクタの行動に関連する関連情報と同一の関連情報を探索する。学習済みの第1のキャラクタの行動に関連する関連情報の中に、検出された未学習の当該第1のキャラクタの行動に関連する関連情報と同一の関連情報がない場合は、最も近似する関連情報を探索する。
【0158】
探索部221は、未学習の第1のキャラクタの連続行動及び当該連続行動に関連する関連情報を検出した場合に、学習済みの第1のキャラクタの連続行動に関連する関連情報の中から、検出された未学習の当該第1のキャラクタの連続行動に関連する関連情報と一致度が高い関連情報を探索する。
【0159】
表示制御部222は、画面を表示部290に表示する処理を行う。例えば、端末装置20は、生成した画像を表示部290に表示する。
【0160】
表示制御部222は、サーバ装置10から受信した画面の表示情報を表示する。なお、表示制御部222は、Webブラウザを用いて表示情報や画面を表示してもよい。
【0161】
例えば、表示制御部222は、ゲーム画面に、現在の第1のキャラクタOB1のキャラクタ名、レベル(段位)、体力値を表示し、第2のキャラクタOB2のキャラクタ名、レベル(段位)、体力値を表示する。
【0162】
変化部223は、プレーヤの情報又は第1のキャラクタの情報に基づいて、重みづけを行う期間を変化させる。
【0163】
画像生成部230は、処理部200で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部290に出力する。
【0164】
すなわち、画像生成部230は、オブジェクト空間において、仮想カメラから見える画像を生成する。
【0165】
例えば、画像生成部230は、オブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0166】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0167】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そして、ラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。
【0168】
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ272(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット、フレームバッファ)に出力(描画)する。
【0169】
すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0170】
なお、頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。
【0171】
プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0172】
そして画像生成部230は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0173】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、記憶部270に保存される。
【0174】
テクスチャマッピングは、記憶部270に記憶されるテクスチャ(テクセル値)をオブ
ジェクトにマッピングするための処理である。
【0175】
具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部270からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、二次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0176】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。
【0177】
すなわち、オブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0178】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0179】
例えば、αブレンディングでは、これから画像バッファ272に描画する描画色(上書きする色)C1と、既に画像バッファ272(レンダリングターゲット)に描画されている描画色(下地の色)C2とを、α値に基づいて線形合成処理を行う。つまり、最終的な描画色をCとすると、C=C1*α+C2*(1-α)によって求めることができる。
【0180】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0181】
また、画像生成部230は、他の端末(第2の端末)とネットワークを介してデータを送受信するマルチプレーヤオンラインゲームを行う場合は、端末(第1の端末)の操作対称のオブジェクトの移動に追従する仮想カメラ(端末(第1の端末)で制御される仮想カメラ)から見える画像を生成する処理を行う。つまり、各端末が独立した描画処理を行う。
【0182】
音処理部240は、処理部200で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部292に出力する。なお、音処理部240は、サーバ装置10の音処理部140と全部又は一部の処理と同様の処理を行ってもよい。
【0183】
なお、本実施形態の端末装置20は、1人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他の端末装置20とデータを送受信してゲーム処理を行うようにしてもよいし、1つの端末装置20が、複数の入力部からの操作入力に基づいて処理を行うようにしてもよい。
【0184】
本実施形態の端末装置20が、P2Pなどによって複数の端末装置20でゲームを行う場合は、一の端末装置20がホストとしての役割を担い、処理を実行してもよい。かかる
場合、ホストとしての端末装置20は、サーバ装置10の各処理部(各処理部の一部又は全部)の処理を行うようにしてもよい。
【0185】
また、本実施形態の端末装置20は、サーバ装置10と同等の処理を行い、当該端末装置20の表示部に画面を表示するようにしてもよい。
【0186】
[4]概要
本実施形態の端末装置(学習装置)20は、格闘ゲームをプレイ可能な装置である。本実施形態では、説明の便宜上、端末装置20において、プレーヤP1がゲームプレイする場合を例にとり説明する。
【0187】
図5は、プレーヤP1の端末装置20に表示されるゲーム画面の一例を示す。ゲームは、プレーヤP1の操作対象のキャラクタOB1(第1のキャラクタOB1とも言う)と、対戦相手のキャラクタOB2(第2のキャラクタOB2とも言う)とが、相互に攻撃や防御を行い互いの体力値を減少させ、体力値に基づいて勝敗を判定する格闘ゲームである。
【0188】
本実施形態では、プレーヤP1が格闘ゲームを練習するために、実在しない仮想の対戦相手と対戦する練習モードのゲームを提供する。仮想の対戦相手とは、例えば、コンピュータ(CPU)で制御されるコンピュータキャラクタである。本実施形態のコンピュータキャラクタは、AIで行動情報が決定されるため、AIキャラクタと言い換えてもよい。
【0189】
本実施形態の端末装置20は、図6に示すように、第1のキャラクタOB1の行動(例えば、右パンチ)の情報及び当該行動の関連情報(例えば、右パンチ発動時の第1のキャラクタOB1と第2のキャラクタOB2との距離等)とを学習データ(例えば、教師データ)とし、当該学習データを用いて機械学習によって学習モデルを生成する。
【0190】
つまり、端末装置20は、「第1のキャラクタOB1の行動」と、「第1のキャラクタOB1の行動に関連する関連情報」とを機械学習する。
【0191】
そして、本実施形態では、学習済の学習モデルを利用して、第2のキャラクタOB2の行動を制御する。つまり、第2のキャラクタOB2は、プレーヤP1の操作態様を再現する。
【0192】
例えば、端末装置20は、第1のキャラクタOB1が「右パンチ」を発動したときに、「右パンチ」の行動の情報と、「右パンチ」の関連情報とをセットで機械学習する。
【0193】
端末装置20は、機械学習後、第2のキャラクタOB2は次のように制御する。例えば、図6に示すように、第1のキャラクタOB1の「右パンチ」が発動(開始)する。そして、第1のキャラクタOB1が「右パンチ」を繰り出したときの関連情報を学習モデルに入力し、出力データを取得する。例えば、端末装置20は、出力データとして「足技カウンター」の行動を取得すると、取得した「足技カウンター」の行動に基づいて、第2のキャラクタOB2に対し、「足技カウンター」の行動の移動・動作制御を開始する。
【0194】
ところで、第1のキャラクタOB1の行動や当該行動の関連情報が、学習モデルにおいて学習済みであれば第2のキャラクタOB2の行動に問題ない。しかし、第1のキャラクタOB1の行動やその関連情報が学習モデルにおいて未学習(学習不足)である場合、第2のキャラクタOB2の行動が決められない、或いは、行動が不適切になる問題がある。
【0195】
そこで、端末装置20は、未学習の、第1のキャラクタOB1の行動及び当該行動の関連情報が検出された場合に、次のように処理を行う。
【0196】
例えば、図7に示すように、未学習の、第1のキャラクタOB1の「ジャンプキック」及び「ジャンプキック」の関連情報が検出されたとする。
【0197】
本実施形態では、第1のキャラクタOB1の行動(例えば、「ジャンプキック」)及び「ジャンプキック」の関連情報が、学習モデルにおいて未学習である場合、第1のキャラクタOB1の「ジャンプキック」の関連情報(例えば、第1のキャラクタOB1と第2のキャラクタOB2との距離)から、一致度の高い、既に学習済みの第1のキャラクタOB1の行動の関連情報を探索(検索)する。例えば、探索結果として、「投げ技」の関連情報が探索される。すると、当該関連情報(「投げ技」に対応する行動の関連情報)とセットで学習された行動「投げ技」に対応する行動(例えば、「後ずさり防御」)を、第2のキャラクタOB2に行わせる。
【0198】
このように、本実施形態では、未学習の第1のキャラクタOB1の行動(例えば、「ジャンプキック」)に遭遇しても、関連情報の一致度が高い行動(例えば、「投げ技」)に対応する行動(例えば、「後ずさり防御」)を、第2のキャラクタOB2に行わせることができる。
【0199】
また、本実施形態では、プレーヤの操作入力に基づいて行動を制御する第1のキャラクタの行動及び当該行動の関連情報を機械学習するので、プレーヤP1は、プレーヤP1の癖を反映した第2のキャラクタOB2と対戦できる。
【0200】
なお、本実施形態のゲームシステムは、もちろん、実際に存在する複数のプレーヤ同士で対戦ゲームプレイできるが、説明の便宜上、プレーヤP1の操作対象のキャラクタOB1と、コンピュータによって制御されるキャラクタOB2とが対戦するゲームの例について説明する。
【0201】
[5]行動情報の説明
[5.1]行動の種類
次にキャラクタの行動について説明する。「行動」とは、前進、後退、ジャンプ、しゃがむなどの移動動作、右パンチ、右キック、左キック、左パンチ、投げ技などの攻撃の動作、後ずさり防御、ガードなどの防御の動作、コンボなどの連続行動、何もしないニュートラルを含む。
【0202】
なお、「連続行動」は、所定の継続条件を満たす複数の行動であり、「コンボ」又は「連続攻撃」と言ってもよい。本実施形態の行動の種類(項目)は複数存在するが、少なくとも1つの種類があればよい。
【0203】
[5.2]コマンド
コマンドは、プレーヤが入力すべきキーの種類や入力順を定義した情報である。コマンドは、キャラクタ毎に、予め、行動に対応付けて定義される。
【0204】
本実施形態の端末装置20は、プレーヤP1から入力されたキー履歴に基づき、行動を決定する。
【0205】
図8は、キャラクタ(例えば、第1のキャラクタOB1)の行動内容及び行動に対応付けられるコマンドの一例を示す。なお、キャラクタが右に向いているときのコマンドの一例である。また、行動IDに対応付けて行動内容及びコマンドをゲーム情報記憶部274に記憶する。
【0206】
例えば、操作対象のキャラクタOB1を前方向に移動させる「前進」は十字型の方向スイッチの右方向への入力を行う。操作対象のキャラクタOB1を後ろ方向に移動させる「後退」は十字型の方向スイッチの左方向への入力を行う。
【0207】
操作対象の第1のキャラクタOB1を右パンチさせる場合は、△マークのボタン33aの入力を行う。
【0208】
操作対象の第1のキャラクタOB1にコンボAを行わせる場合は、プレーヤは、例えば、3秒以内に、右パンチのコマンド(例えば、△マークのボタン33a)を2回入力した後、続けて左キックのコマンド(例えば、×マークのボタン33c)を1回入力する。
【0209】
[5.3]第2のキャラクタの行動
本実施形態では、機械学習された学習済みの学習モデルを用いて行動を決定し、決定された行動を第2のキャラクタOB2に行わせる。例えば、図9に示すように、第1のキャラクタOB1の行動(右パンチ)の行動(技)がタイミングT11で開始(発動)する。端末装置20は、タイミングT11で、第1のキャラクタOB1の右パンチの行動を検出する。例えば、端末装置20は、タイミングT12において、関連情報を学習モデルに入力し、出力結果である「足技カウンター」の行動を取得し、第2のキャラクタOB2に「足技カウンター」の動作を開始する。タイミングT11とタイミングT12とは、若干のずれがある(1~数フレームのずれが生じる)。また、第2のキャラクタOB2が新たな行動が開始できない状態も有り得る。例えば、第2のキャラクタOB2が硬直状態(行動不能状態)や、既に行っているアクションフレームの実行中の場合は、新たな行動を開始できない。かかる場合は、第2のキャラクタOB2が新たな行動ができるようになった時点の関連情報を学習モデルに入力し、出力結果の行動を取得し、第2のキャラクタOB2に取得した行動を開始する。
【0210】
[5.4]行動情報の項目
行動情報は、行動を特定するための情報であり、例えばアクション番号(識別子)とすることができる。なお、行動情報は、複数の項目(要素)によって構成されていてもよい。例えば、行動情報の項目には、アクション番号や、アクションフレームを含む。
【0211】
アクション番号は、キャラクタの行動に対応して振られる番号で、例えば、前進する動き、右パンチの攻撃の動き、右パンチがヒットしたときの攻撃を受ける動き、投げ技においての投げ掴みの動き、投げ技で投げられる動き、投げ技を回避するための投げ抜ける動き、等の番号である。なお、アクションフレームは、アクション番号に対応する動き(行動)の動き始めから終わりまでのどの段階かを示すものである。例えば、右パンチが4フレームの期間で行われる場合、右パンチという技が4つのアクションフレーム1~4で表現され、4段階のアクションフレームの全体で1つのアクションを特定するためのアクション番号が付される。
【0212】
[6]関連情報
本実施形態では、図9に示すように、第1のキャラクタOB1の行動(例えば、右パンチ)が発生したタイミングT11の関連情報を取得し、第1のキャラクタOB1の行動(例えば、右パンチ)と、当該関連情報とを、セットで学習記憶部278に記憶する。
【0213】
関連情報は、キャラクタが行動を行った際の当該行動に関連する情報であり、別の言い方をすればゲーム状況である。端末装置20は、第1のキャラクタOB1が行動したタイミングに基づいて、当該行動に関連する情報を取得する。例えば、図9に示すように、第1のキャラクタOB1がT11のタイミングで右パンチの行動を開始した場合、タイミングT11において関連情報を取得する。そして、右パンチの行動の情報と、当該関連情報
とをセットで学習記憶部278に記憶する。
【0214】
また、タイミングT11の後に、更に、タイミングT14でキャラクタOB1が左キックの行動を開始した場合、タイミングT14において関連情報を取得する。そして、左キックの行動の情報と、当該関連情報とをセットで学習記憶部278に記憶する。
【0215】
このように、端末装置20は、キャラクタOB1の行動が発生したタイミングの関連情報を取得する。
【0216】
関連情報は、複数の項目(複数の要素)が存在する。各項目に変数名及びその値を対応付ける。図10は、第1のキャラクタOB1が右パンチの行動を行ったタイミングT11に基づく、当該右パンチに関連する関連情報の一例を示す。
【0217】
例えば、関連情報は、第1のキャラクタOB1と第2のキャラクタOB2との距離の項目を含む。当該項目の変数名は、Distanceであり、例えば、タイミングT11においてDistanceの値は「2」であることを示す。
【0218】
また、関連情報は、1ラウンドの残り時間(第1のキャラクタOB1の行動タイミングからゲーム終了時点までの期間)の項目を含む。当該項目の変数名は、Timeであり、例えば、タイミングT11においてTimeの値は「47」(残り時間が47秒)であることを示す。
【0219】
また、関連情報は、第1のキャラクタOB1の体力値の項目を含む。当該項目の変数名は、MeHPであり、例えば、タイミングT11においてMeHPの値は「90」であることを示す。
【0220】
また、関連情報は、第2のキャラクタOB2の体力値の項目を含む。当該項目の変数名は、OpHPであり、例えば、タイミングT11においてOpHPの値は「80」であることを示す。
【0221】
体力値が残っているキャラクタは、精神状態に余裕があり、体力値が少ないキャラクタは、切羽詰まっている状況と予想される。したがって、これらの体力値を機械学習に生かしている。
【0222】
また、関連情報は、第1のキャラクタOB1の地面からの高さの項目を含む。当該項目の変数名は、MeOnFloorであり、例えば、タイミングT11においてMeOnFloorの値は「0」であることを示す。
【0223】
また、関連情報は、第1のキャラクタOB1の地面からの高さの項目を含む。当該項目の変数名は、OpOnFloorであり、例えば、タイミングT11においてOpOnFloorの値は「0」であることを示す。
【0224】
また、関連情報は、第1のキャラクタOB1の防御期間(防御開始時点から第1のキャラクタOB1の行動タイミングまでの期間)の項目を含む。当該項目の変数名は、GuardTimeであり、例えば、タイミングT11においてGuardTimeの値は「0」であることを示す。
【0225】
また、本実施形態の関連情報は、図示していないが、第1のキャラクタOB1のゲーム空間の位置座標(X、Y、Z)の項目、第2のキャラクタOB2のゲーム空間の位置座標(X、Y、Z)の項目、第1のキャラクタOB1の対戦エリアの外周からの距離(例えば
、壁からの距離)の項目、第2のキャラクタOB2の対戦エリアの外周からの距離(例えば、壁からの距離)の項目、経過時間(1ラウンドのゲーム開始時点から第1のキャラクタOB1の行動タイミングまでの期間)の項目、第1のキャラクタOB1のキャラクタのレベル(段位)の項目、第1のキャラクタOB1の向きの項目、第2のキャラクタOB2の向きの項目、第1のキャラクタOB1の身長の項目、第2のキャラクタの身長の項目、第1のキャラクタOB1の体力値と第2のキャラクタOB2の体力値との体力差の項目、など他の項目を有していてもよい。
【0226】
なお、関連情報は、画像情報(映像情報)の項目を有していてよい。例えば、第1のキャラクタOB1が、行動を行ったタイミングの画像情報の項目を含んでもよい。
【0227】
関連情報は、画像の明度、画像のキャラクタOB1の表示位置(X、Y)の項目、画像のキャラクタOB2の表示位置(X、Y)の項目、画像上の第1のキャラクタOB1と第2のキャラクタOB2との位置関係の項目を、有していてもよい。
【0228】
格闘ゲームは画面の中央を境界としてキャラクタ同士が対面する構図が多いが、両者が画面の右側或いは左側にいる場合は、他方が追い込まれているゲーム状況と考えられ、これらの情報を機械学習に生かすことができる。
【0229】
また、関連情報は、仮想カメラの位置、向き、画角の少なくとも1つの項目を含んでもよい。例えば、仮想カメラが第1のキャラクタOB1が近い場合は、遠い場合よりもアップに表示され、ゲーム状況が白熱している状況とも考えられる。この状況を機械学習に生かすことができる。
【0230】
関連情報は、その行動情報が連続行動情報(コンボ行動情報)か否かを示す情報(フラグ)の項目を含んでもよい。このようにすれば、機械学習時にコンボ特有の予測を行うことができる。
【0231】
関連情報は、キーデータ(操作入力)の項目を含んでもよい。例えば、プレーヤP1のキーデータの履歴であるキー履歴を含んでもよい。キー履歴は、フレーム番号に対応付けて、プレーヤが操作するキャラクタの操作入力(キーデータ)を記憶する。
【0232】
また、関連情報は、第1のキャラクタOB1の移動速度、加速度、移動方向、第2のキャラクタOB2の移動速度、加速度、移動方向の少なくとも1つの項目を含んでもよい。
【0233】
[7]記憶するデータの説明
本実施形態の端末装置20は、プレーヤP1の操作対象のキャラクタOB1の行動の情報と当該行動に関連する関連情報とをセットで学習記憶部278に記憶する。
【0234】
なお、端末装置20は、これらの情報を学習記憶部278以外の記憶領域(例えば、クラウド上の記憶領域)に記憶するようにしてもよい。
【0235】
本実施形態では、所与の1ラウンドのゲームが開始されてからそのラウンドのゲームが終了するまでの間(1ラウンド分が終了するまでの間)、第1のキャラクタOB1の行動の情報及び当該行動の関連情報を、学習データとして、累積的に学習記憶部278に記憶する。
【0236】
なお、本実施形態では、1ラウンドのうちの一部の期間において、学習データを取得し記憶してもよい。また、学習データを取得し記憶する頻度を調整してもよい。また、1ラウンドに限らず、複数ラウンドにおいて、学習データを取得してもよい。
【0237】
また、本実施形態では、学習モデルの機械学習のために、学習データの一部又は全部を加工してもよい。
【0238】
[8]学習モデル
本実施形態では、プレーヤP1の操作対象の第1のキャラクタOB1の行動と当該行動に関連する関連情報とを機械学習する学習モデルを生成する。学習モデルは、プレーヤP1が操作する第1のキャラクタOB1の行動を再現可能な学習モデルである。なお、学習モデルは、式、関数と言い換えることができる。
【0239】
本実施形態では、プレーヤにとって最適なAIキャラクタが練習相手となるように、プレーヤ毎に個別の学習モデルを生成する。例えば、プレーヤP1の端末装置20Aでは、プレーヤP1について、プレーヤP1に対応する学習モデルを生成する。また、プレーヤP2の端末装置20Bでは、プレーヤP2について、プレーヤP2に対応する学習モデルを生成する。
【0240】
[9]未学習の場合の第2のキャラクタの行動制御
[9.1]概要
本実施形態では、プレーヤP1の操作入力に基づき決定された第1のキャラクタOB1の行動(例えば、「ジャンプキック」)及び当該行動の関連情報が、学習モデルにおいて未学習である場合、第2のキャラクタOB2の行動制御ができない、或いは、行動が不適切という問題がある。
【0241】
そこで、本実施形態では、第1のキャラクタOB1の行動(例えば、「ジャンプキック」)及び当該行動の関連情報が、学習モデルにおいて未学習である場合、次のように処理する。
【0242】
端末装置20は、図7に示すように、第1のキャラクタOB1の行動(例えば、ジャンプキック)の関連情報と一致度が高い関連情報を、学習済みの第1のキャラクタOB1の行動に関連する関連情報の中から、探索(検索、抽出)する。例えば、学習記憶部278に記憶されている関連情報を参照する。
【0243】
例えば、第1のキャラクタOB1の行動(例えば、ジャンプキックの情報)の関連情報の1項目である「第1のキャラクタOB1と第2のキャラクタOB2との距離」が1メートルであるとする。すると、学習済みの関連情報の中から、第1のキャラクタOB1と第2のキャラクタOB2との距離が1メートルである関連情報を探索する。
【0244】
学習済みの関連情報の中から、第1のキャラクタOB1と第2のキャラクタOB2との距離が1メートルである関連情報がない場合、当該距離が1メートルに最も近似する値を有する関連情報を探索する。
【0245】
そして、学習済みの関連情報の中から、最も一致度の高い関連情報(例えば、第1のキャラクタOB1と第2のキャラクタOB2との距離で1メートル)が探索されると、当該関連情報と当該関連情報に対応する学習済みの行動(例えば、投げ技)に基づいて、第2のキャラクタOB2の行動を制御する。
【0246】
端末装置20は、予め「投げ技」に対応する行動として「後ずさり防御」を行うことが決められている場合、第2のキャラクタOB2に対し、「後ずさり防御」の行動の移動・動作制御を行う。
【0247】
例えば、端末装置20は、探索された関連情報とセットで学習された行動である「投げ技」を、第1のキャラクタOB1が繰り出した時に、第2のキャラクタOB2が対応したときの学習済みの関連情報を学習モデルに入力し、出力データを取得してもよい。当該出力データが「ガード」の行動である場合、端末装置20は、取得した「ガード」の行動に基づいて、第2のキャラクタOB2に対し、「ガード」の移動・動作制御を行う。
【0248】
なお、第1のキャラクタOB1の行動(例えば、ジャンプキック)に関連する関連情報を取得するタイミングは、例えば、第1のキャラクタOB1の行動(例えば、ジャンプキックの動作)を開始したタイミングであるが、当該行動(例えば、ジャンプキック)のアクションフレーム(動作中)の所与のタイミングでもよい。行動に関連する関連情報は、例えば、第1のキャラクタOB1と第2のキャラクタOB2との距離、第1のキャラクタOB1のパラメータ(例えば、体力値)等でもよいし、他の項目でもよい。
【0249】
なお、本実施形態では、第1のキャラクタOB1の行動(例えば、ジャンプキックの情報)の関連情報の複数の項目のうち、重要度の高い項目を参照して、一致度の高い関連情報を探索してもよい。例えば、学習済みの関連情報の中から、重要度の高い「第1のキャラクタOB1と第2のキャラクタOB2との距離」と「第1のキャラクタOB1の体力値」とを探索する。つまり、本実施形態では、「第1のキャラクタOB1と第2のキャラクタOB2との距離」について一致度が高く、かつ、「第1のキャラクタOB1の体力値」について一致度が高い関連情報を探索してもよい。
【0250】
[9.2]未学習である場合の判断
本実施形態では、プレーヤP1の操作入力に基づき決定された第1のキャラクタOB1の行動(例えば、「ジャンプキック」)及び当該行動の関連情報が、学習モデルにおいて未学習であるか否かの判断は、種々考えられる。
【0251】
例えば、端末装置20は、第2のキャラクタOB2に対して予め学習済の行動リストを記憶部270に登録(記憶)し、第1のキャラクタOB1の行動(例えば、「ジャンプキック」)が行動リストに登録されていない場合に、未学習であると判断してもよい。
【0252】
また、端末装置20は、学習記憶部278を参照して、第1のキャラクタOB1の行動の情報が記憶されていない場合に、未学習であると判断してもよい。
【0253】
また、例えば、第1のキャラクタOB1の関連情報を学習モデルに入力し、学習モデルの出力結果に基づいて、当該行動が未学習であるか否かを判断してもよい。例えば、学習モデルの出力値が所定値以下である場合、未学習と判断してもよい。
【0254】
[9.3]探索手法
本実施形態では、プレーヤP1の操作入力に基づき決定された第1のキャラクタOB1の行動(例えば、「ジャンプキック」)が、学習モデルにおいて未学習である場合、学習済みの第1のキャラクタOB1の行動に関連する関連情報の中から、検出された未学習の当該第1のキャラクタの行動(例えば、「ジャンプキック」)に関連する関連情報に一致する度合が高い関連情報を探索する。
【0255】
かかる場合、例えば、端末装置20は、学習記憶部278に記憶されている第1のキャラクタOB1の行動及び関連情報の中から、検出された未学習の当該第1のキャラクタの行動(例えば、「ジャンプキック」)に関連する関連情報に一致する度合が高い関連情報を探索する。
【0256】
探索結果の関連情報が複数存在する場合がある。例えば、探索結果として、「投げ技」
の関連情報と「ハイキック」の関連情報とが検出される場合もあり得る。かかる場合は、いずれか1つの探索結果の行動を用いて、第2のキャラクタOB2の行動を決定する。
【0257】
[9.4]探索の具体例
(A)関連情報の体力値を参照する例
本実施形態では、第1のキャラクタOB1の「ジャンプキック」の行動が、学習モデルにおいて未学習である場合、「ジャンプキック」の第1のキャラクタOB1の関連情報の1項目である体力値(つまり、ジャンプキック時の第1のキャラクタOB1の体力値)から、学習済みの第1のキャラクタOB1の関連情報の中から、一致度が最も高い関連情報を探索してもよい。
【0258】
例えば、ジャンプキック時の第1のキャラクタOB1の体力値が「10」であり、学習済みの第1のキャラクタOB1の「左キック」時の第1のキャラクタOB1の体力値が「10」であり、体力値が同じであり最も一致度が高いと判断される。すると、第1のキャラクタOB1の「左キック」の行動の関連情報に基づいて、第2のキャラクタOB2の行動を制御してもよい。例えば、「左キック」に対応する行動が「ガード」である場合、第2のキャラクタOB2の行動を「ガード」に決定し、「ガード」を第2のキャラクタOB2に行わせる。つまり、端末装置20は、第1のキャラクタOB1が「ジャンプキック」をした場合に、第2のキャラクタOB2に「ガード」の行動を行わせる。
【0259】
(B)残りゲーム時間を参照する例
本実施形態では、第1のキャラクタOB1の「ジャンプキック」の行動が、学習モデルにおいて未学習である場合、「ジャンプキック」の第1のキャラクタOB1の関連情報の1項目である残りゲーム時間(例えば、ジャンプキック時の残りゲーム時間)から、学習済みの第1のキャラクタOB1の関連情報の中から、一致度が最も高い関連情報を探索してもよい。
【0260】
例えば、ジャンプキック時の第1のキャラクタOB1の残りゲーム時間が「15」であり、学習済みの第1のキャラクタOB1の「左パンチ」時の第1のキャラクタOB1の残りゲーム時間が「15」であり、残りゲーム時間が同じである最も一致度が高いと判断される。すると、第1のキャラクタOB1の「左パンチ」の行動の関連情報に基づいて、第2のキャラクタOB2の行動を決定する。例えば、「左パンチ」に対応する行動が「後退」である場合、第2のキャラクタOB2の行動を「後退」に決定し、「後退」を第2のキャラクタOB2に行わせる。つまり端末装置20は、第1のキャラクタOB1が「ジャンプキック」をした場合に、第2のキャラクタOB2に「後退」の行動を行わせる。
【0261】
[9.5]効果
本実施形態によれば、機械学習されていない第1のキャラクタOB1に遭遇しても、学習済みの第1のキャラクタOB1の行動の関連情報から、第2のキャラクタのOB2の行動を制御するので、適切な行動を第2のキャラクタOB2に行わせることができる。また、本実施形態によれば、プレーヤの癖を反映した最適なAIキャラクタ(例えば、第2のキャラクタOB2)を練習相手として提供することができる。例えば、プレーヤP1の第1のキャラクタOB1が、パンチ攻撃が多い場合、AIキャラクタもパンチ攻撃が多いキャラクタとなる。プレーヤP1は、自分と似たプレイを行うコンピュータ対戦で練習を行うことにより、自分の癖を直す練習や、自分の癖を活かした練習を行うことができる。また、プレーヤP1は、未学習の行動(例えば、ジャンプキック)を行ったとして、AIキャラクタが適切な行動を行うことができる。
【0262】
[9.6]第2のキャラクタの行動及び当該行動の関連情報の学習
本実施形態では、第2のキャラクタOB2の行動と当該行動に関連する関連情報とを機
械学習してもよい。
【0263】
例えば、本実施形態では、未学習の第1のキャラクタOB1の行動(例えば、「ジャンプキック」)及び当該行動の関連情報に遭遇した場合、第2のキャラクタOB2がとった行動(例えば、「後ずさり防御」)と、当該行動時(例えば、「後ずさり防御」の行動開始時)の関連情報とをセットで機械学習してもよい。
【0264】
[10]学習モードと実戦モード
本実施形態では、学習モデルにより学習をさせる学習モード(学習期間)と、当該学習モデルを用いて、第2のキャラクタOB2の行動を予測(推論)しゲームを進行させる実践モード(実践期間)とを同時に行っている。しかし、本実施形態では、学習モデルを生成する学習モードの期間と実戦モードの期間とを、一部又は全部が異なる期間となるように、設定してもよい。
【0265】
例えば、第1のキャラクタと、コンピュータキャラクタとの対戦で、学習データを収集し、ある程度の学習データが蓄積された段階で、収集した学習データに基づいて学習モデルを生成してもよい。
【0266】
また、本実施形態では、プレーヤP1の端末装置20以外の装置(例えば、他のプレーヤの端末装置20、サーバ装置、又は学習装置)において、学習モデルを生成してもよい。そして、生成された当該学習モデルを、当該装置から受信して、学習モデル記憶部279に記憶し、当該学習モデルを用いてもよい。また、学習データを、当該装置から受信して、学習記憶部278に記憶してもよい。
【0267】
[11]学習を行う頻度が高い期間
本実施形態の端末装置20は、図11に示すように、ゲーム期間(格闘ゲームの1ラウンドの期間)において、学習(例えば、機械学習)を行う頻度が高い期間として所定期間を設けるようにしてもよい。所定期間の長さは、ゲーム期間(例えば、60秒間)よりも短い期間であり、例えば、20秒間の長さとする。
【0268】
「学習を行う頻度が高い」とは、例えば、所定期間において学習データを取得して学習モデルにおいて機械学習する回数が、所定期間以外の期間よりも多いことを意味する。
【0269】
例えば、図11に示すように、所定期間(TS~T1の期間)において、機械学習する回数は、少なくとも10回以上とし、所定期間外(T1~TEの期間)において機械学習する回数は、少なくとも5回以下とする。
【0270】
なお、端末装置20は、学習前に、所定期間の設定を行う。なお、端末装置20は、学習中においても、所定期間の設定や、所定期間の変更を行ってもよい。例えば、端末装置20は、ゲーム進行状況に応じて、所定期間の設定や、所定期間の変更を行ってもよい。
【0271】
[11.1]所定期間の設定例
本実施形態の端末装置20は、ゲーム期間の開始期間において、所定期間を設定してもよい。
【0272】
例えば、図11に示すように、ゲーム期間の開始時点と所定期間の開始時点とを同じタイミングTSに設定する。所定期間の終了時点T1は、開始時点TSから10秒後の時点とする。
【0273】
また、所定期間(TS~T1の期間)において学習データとして取得する行動の種類を
、単純行動、技、連続行動の全ての行動の種類とし、所定期間外(T1~TEの期間)において学習対象として取得する行動の種類を、技及び連続行動に限定してもよい。
【0274】
ゲーム期間の開始期間は、ゲームの流れや試合の方向性を左右する重要な場面である。例えば、先制攻撃をした方はどちらのキャラクタであるか、先に技を決めた方がどちらのキャラクタであるのか、ゲームの重要な要因になる。そして、ゲーム期間の開始期間は、プレーヤの癖が出る傾向にある。
【0275】
そのため、本実施形態では、効率的に学習を行うために、ゲーム期間の開始期間に所定期間を設けて多くの行動を学習する。そして、所定期間経過後は、技や連続行動(コンボ)などの行動について学習をする。
【0276】
[11.2]プレーヤの操作入力に基づいて所定期間を設定する例
本実施形態の端末装置20は、第1のキャラクタOB1を操作するプレーヤP1の操作入力に基づいて、所定期間を設定してもよい。
【0277】
図12は、設定画面の一例を示す。例えば、図12に示すように、プレーヤP1は、設定画面において、ゲーム開始時点を0とし、ゲーム終了時点を60とし、所定期間の開始タイミングA1と終了タイミングA2とを入力する。
【0278】
端末装置20は、プレーヤP1は、開始タイミングA1(例えば、50)と、終了タイミングA2(例えば、60)とを受け付けると、開始タイミングA1(例えば、50)と、終了タイミングA2(例えば、60)に基づいて、所定期間を設定する。
【0279】
このようにすれば、プレーヤP1は、所定期間を意識してプレーヤP1がゲームプレイを行うことができる。例えば、所定期間において、技や連続行動の練習をすれば、それに対応する返し技の行動を学習させることができ。その結果、プレーヤP1に最適な練習環境を提供できる。
【0280】
また、プレーヤP1が自分の癖が最後にでやすいことを認識している場合、最後の期間(残り10秒間)を、所定期間を設けるようにすれば、プレーヤP1にとって最適な練習環境を創出できる。
【0281】
[11.3]学習頻度の設定
端末装置20は、1ラウンドのゲーム期間(例えば、60秒間)を時系列で複数に区分し、各期間においての学習頻度を設定してもよい。例えば、ゲーム開始タイミングから10秒経過するまでは、10回以上の学習を行い、ゲーム開始タイミングから10秒経過後20秒経過するまでは、10回未満5回以上の学習を行い、ゲーム開始タイミングから20秒経過後は、5回未満の学習を行うように、学習頻度を設定する。
【0282】
また、端末装置20は、1ラウンドのゲーム期間(例えば、60秒間)を時系列で複数に区分し、各期間において、学習する行動の種類を設定してもよい。
【0283】
まず、行動の種類を、単純行動、技、コンボの3種類に分ける。例えば、ゲーム開始タイミングから10秒経過するまでは、単純行動、技、コンボの全ての種類の学習を行い、ゲーム開始タイミングから10秒経過後20秒経過するまでは、単純行動、技、コンボの行動うち、技、コンボの学習を行い、ゲーム開始タイミングから20秒経過後は、単純行動、技、コンボのうち、コンボの種類の学習を行うように、学習頻度を設定する。
【0284】
本実施形態の端末装置20は、プレーヤP1の操作入力に基づいて、学習頻度を設定し
てもよい。つまり、端末装置20は、プレーヤP1の操作入力に基づいて、ゲーム期間を複数に区分した各期間においての学習頻度、各期間においての学習する行動の種類を設定してもよい。
【0285】
[12]連続行動に関する説明
[12.1]連続行動の説明
本実施形態の行動は、所定の継続条件を満たす複数の行動である連続行動(コンボ)を含む。連続行動は、別の言い方をすれば連続攻撃である。連続攻撃は、相手キャラクタからの攻撃の隙を与えないようにでき、更に相手キャラクタに大きなダメージを与えることができる有益な攻撃手法である。キャラクタに連続行動を行わせる場合、複数のコマンド入力が要求される。連続して行う行動の数は、2つでもよいし3つ以上の行動でもよい。
【0286】
連続行動は、例えば、複数の行動の順列組み合わせ(右パンチ、右パンチ、左キックの順の連続行動)である。図8に示すように、本実施形態では、予め連続行動を行わせるためのコンボのコマンドを定義する。
【0287】
例えば、コンボAを発動させる場合、図13に示すように、連続行動期間内(例えば、3秒以内)に連続して、右パンチ、右パンチ、左キックの3つの行動のコマンド入力を行うことが要求される。
【0288】
コンボAが成功する例は次の通りである。図13に示すように、例えば、タイミングT21で、プレーヤP1の操作入力に基づき第1のキャラクタOB1が右パンチの行動のコマンドを入力し、右パンチの動作が開始される。キャラクタOB1の右パンチの行動に基づき、タイミングT22で、第1のキャラクタOB1が第2のキャラクタOB2にヒットし、右パンチが成功する。なお、第2のキャラクタOB2は第1のキャラクタOB1からヒットを受けると、数フレームの間、硬直状態となりキーデータが反映されない無防備となる。そして、タイミングT23で、プレーヤP1の操作入力に基づき第1のキャラクタOB1が右パンチの行動のコマンドを入力し、当該右パンチの動作が開始される。キャラクタOB1のタイミングT23で入力した右パンチの行動に基づき、タイミングT24で、第1のキャラクタOB1が第2のキャラクタOB2にヒットし、右パンチが成功する。そして、タイミングT25で、プレーヤP1の操作入力に基づき第1のキャラクタOB1が左キックの行動のコマンドを入力し、当該左キックの動作が開始される。キャラクタOB1のタイミングT25で発動した左キックの行動に基づき、タイミングT26で、第1のキャラクタOB1が第2のキャラクタOB2にヒットし、左キックが成功する。このようにして、コンボAが成功する。
【0289】
「継続条件」は、種々考えられる。例えば、「継続条件」は、連続行動期間内に、予め決められた連続行動(コンボAの場合、右パンチ、右パンチ、左キックの連続行動)を行うことである。別の言い方をすれば、「継続条件」は、相手キャラクタから攻撃を挟まれずに、連続して行動を複数回行うことである。
【0290】
連続行動は、単発の行動よりもキャラクタに強いダメージを与える(攻撃対象の体力値を、単発の行動よりも多く減少させる)。例えば、タイミングT24の右パンチがヒットしたときは、単発の右パンチよりも強いダメージを与えるようにしてもよい。また、タイミングT26の左キックがヒットしたときは、単発の左キックよりも強いダメージを与えるようにしてもよい。
【0291】
[12.2]連続行動と、連続行動の関連情報の学習
連続行動や連続行動に伴うヒット判定等は、図13に示すように、所与の連続行動期間(T21~T27の期間)で生じるものである。本実施形態では、連続行動に関連する関
連情報として、この連続行動期間(T21~T27の期間)で生じる情報を取得する。
【0292】
例えば、連続行動の関連情報は、連続行動期間の各フレーム(1/60秒毎)で取得したキャラクタOB1とキャラクタOB2との距離の平均値(平均距離)の項目を含む。
【0293】
また、連続行動の関連情報は、連続行動期間のキャラクタOB2の体力値の減少値の項目を含んでもよい。例えば、連続行動期間(T21~T27の期間)において、キャラクタOB2の体力値が100から10に減少した場合、その差分の90が減少値となる。
【0294】
また、連続行動の関連情報は、連続行動期間の各フレーム(1/60秒毎)で取得したキャラクタOB1とキャラクタOB2との距離の合計値(延べ値、合計距離)の項目を含んでもよい。
【0295】
また、連続行動の関連情報は、連続行動期間のキャラクタOB1がキャラクタOB2に与えたダメージの変化率の項目を含んでもよい。
【0296】
また、連続行動の関連情報は、連続行動を構成する複数の行動の組み合わせの項目を含んでもよい。例えば、コンボAの場合、右パンチ2回、左キック1回からなる組み合わせである。
【0297】
また、連続行動の関連情報は、連続行動を構成する複数の行動の順番(攻撃順)の項目を含んでもよい。例えば、コンボAの場合、右パンチ、右パンチ、左キックの順の情報である。
【0298】
また、連続行動の関連情報は、連続行動を構成する複数の行動の行動回数(例えば、攻撃回数)の項目を含んでもよい。例えば、コンボAの場合、右パンチ、右パンチ、左キックの攻撃を行うので、攻撃回数は3回である。
【0299】
[12.3]学習データ
端末装置20は、連続行動の情報及び、当該連続行動の関連情報として取得した情報を、学習データとして用いる。
【0300】
例えば、端末装置20は、第1のキャラクタOB1の連続行動の情報(コンボAの情報)及び、当該連続行動(コンボA)の関連情報として取得した情報(例えば、キャラクタ間の平均距離、等)の情報を、セットで学習記憶部278に記憶する。
【0301】
そして、端末装置20は、連続行動の情報と当該連続行動の関連情報とを機械学習する。
【0302】
なお、連続行動期間中は、第1のキャラクタOB1の連続行動及びその関連情報を取得しているが、併せて、第1のキャラクタOB1の単発の行動(例えば、右パンチ、右パンチ、左キックそれぞれの行動)及び各関連情報を取得し、機械学習してもよい。
【0303】
[12.4]連続行動の探索
本実施形態では、第1のキャラクタOB1の連続行動及び当該連続行動の関連情報が、学習モデルにおいて未学習である場合に、当該連続行動に関連する関連情報に基づいて、学習済みの行動(単一の行動、又は、連続行動)の関連情報を探索する。
【0304】
端末装置20は、第1のキャラクタOB1の「コンボA」の行動が、学習モデルにおいて未学習である場合、学習済みの関連情報の中から、コンボAの関連情報と一致度の高い
関連情報を探索する。
【0305】
例えば、関連情報のうち、第1のキャラクタOB1と第2のキャラクタOB2の平均距離に基づいて探索を行う場合、次のように処理する。
【0306】
関連情報の1項目である「コンボの攻撃順」の項目に重きをおいて、探索を行う場合の例を説明する。例えば、コンボAが、右パンチ、右パンチ、左キックの順で3つの攻撃を行う場合、端末装置20は、攻撃順が最も似ている学習済みのコンボを探索する。例えば、コンボBが、右パンチ、右パンチ、右キックが、コンボAに最も似ている学習済みのコンボとして探索される。すると、端末装置20は、コンボBに対応する行動を、第2のキャラクタOB2に行わせる。
【0307】
例えば、図13に示すように、端末装置20は、コンボBに対応する行動が「起き上がりキック」の場合、第2のキャラクタOB2に「起き上がりキック」の行動を行わせる。つまり、端末装置20は、学習モデルに、第1のキャラクタOB1の「コンボA」の連続行動期間の終了後(例えばタイミングT27以後)であって、第2のキャラクタOB2が行動可能状態となったタイミングT28で、第2のキャラクタOB2に対し、「起き上がりキック」の移動・動作制御を行う。
【0308】
次に、関連情報の1項目である「キャラクタOB1とキャラクタOB2との平均距離」の項目に重きをおいて探索を行う場合の例を説明する。例えば、コンボAの連続行動期間の平均距離(第1のキャラクタOB1と第2のキャラクタOB2の平均距離)が0.8メートルである場合、端末装置20は、当該平均距離と一致度の高い学習済みの行動(連続行動又は単一の行動)を探索する。例えば、学習済みのコンボCの当該平均距離(第1のキャラクタOB1と第2のキャラクタOB2の平均距離)が0.8メートルであり、コンボCが、コンボAに最も一致度が高い学習済みのコンボとして探索される。すると、端末装置20は、コンボCに対応する行動を、第2のキャラクタOB2に行わせる。
【0309】
例えば、端末装置20は、コンボCに対応する行動が「後方受け身」の場合、第2のキャラクタOB2に「後方受け身」の行動を行わせる。つまり、端末装置20は、学習モデルに、第1のキャラクタOB1の「コンボA」の連続行動期間の終了後であって、第2のキャラクタOB2が行動可能状態となったタイミングT28で、第2のキャラクタOB2に対し、「後方受け身」の移動・動作制御を行う。
【0310】
このように本実施形態によれば、コンボAが未学習であったとしても、コンボAの一連の流れがどれだけ一致しているかを学習済みのコンボの中から探索し、第2のキャラクタOB2の行動を適切に行う。
【0311】
なお、連続行動を探索する場合において、重視する関連情報の項目を変えて探索してもよい。例えば、コンボのキャラクタ間の平均距離、攻撃順だけでなく、他の関連情報の項目の一例として、例えば、攻撃回数を重視する場合、コンボAが、右パンチ2回、左キック1回の合計3回の攻撃回数による行動であるので、学習済みであって、かつ、攻撃回数が「3回」である連続行動を探索する。例えば、コンボCが、攻撃回数が3回であり、コンボAに最も一致度が高い学習済みのコンボとして探索されると、端末装置20は、コンボCに対応する行動を、第2のキャラクタOB2に行わせる。
【0312】
[13]関連情報の項目の設定
本実施形態の端末装置20は、予め機械学習で用いる関連情報の項目を設定してもよい。また、本実施形態の端末装置20は、プレーヤP1の入力情報に基づいて、関連情報の複数の項目を設定してもよい。
【0313】
端末装置20は、プレーヤP1の操作入力に基づいて、関連情報の複数の項目のうち、機械学習で用いる少なくとも2以上の項目の組み合わせを決定してもよい。
【0314】
関連情報の各項目の組み合わせとは、例えば、関連情報の複数の項目のうち少なくとも2以上の項目の組を意味する。
【0315】
[14]重みづけ
端末装置20は、は、関連情報の各項目の重みづけを決定する。重みづけは各項目の重要度を評価(点数化)することである。つまり、本実施形態では、学習対象の関連情報の各項目について、重要度を数値化することにより、重みづけを決定する。
【0316】
例えば、端末装置20は、プレーヤの情報、第1のキャラクタの情報、ゲーム情報の少なくとも1つに応じて、重みづけを決定してもよい。
【0317】
端末装置20は、重みづけによる数値(重みの値)は、機械学習の演算に用いてもよい。
【0318】
端末装置20は、学習前(機械学習前)に重みづけを行う。このようにすれば、早期に機械学習を効率的に行うことができる。つまり、リアルタイムに重みづけをする場合は、ある程度の時間を要するが、本実施形態では、早期に重みづけをすることで、効率的に学習を図ることができる。
【0319】
端末装置20は、ゲーム進行状況に応じて(例えば、学習中)に重みづけを行ってもよい。このようにすれば、リアルタイムに効率よく学習できる。また、ゲーム進行状況に適した重みづけを行うことができる。
【0320】
例えば、初期状態で、関連情報の各項目の重みの値を「1」に設定し、重要度の高い項目の値を「1」よりも大きな値にする。重要度の高い項目は、1つでもよいし複数あってもよい。
【0321】
具体的に説明すると、端末装置20は、プレーヤP1の操作入力に基づいて、学習対象の関連情報の各項目のうち「第1のキャラクタOB1と第2のキャラクタOB2との距離」の項目と、「1ラウンドの残り時間」の項目とに重きを置きたい項目として選択を受け付けた場合、この2つの項目の重みを「3」に設定し、この項目以外の重みを「1」のまま維持する。
【0322】
[14.1]プレーヤ情報に基づく重みづけの設定
端末装置20は、プレーヤ情報に応じて、学習対象の関連情報の各項目の重みづけを決定してもよい。事前に設定されたプレーヤの情報から、学習する際に優先順位の高い項目に重みづけを設定し、ユーザの満足度の高い動作を実現するための学習を実現することができる。
【0323】
プレーヤ情報とは、プレーヤのレベル、ランク、初心者、中級者又は上級者のうちいずれに該当するかの情報、格闘ゲームのゲームプレイ時間、勝率、対戦回数、戦績、等である。
【0324】
例えば、初心者の場合は、体力値を気にする傾向があるが、中級者や上級者は体力値を気にせずに、相手との距離を気にする傾向がある。したがって、初心者は体力値の項目の重みの値を「3」に設定し、この項目以外の重みを「1」のまま維持する。
【0325】
中級者や上級者は体力値の項目の重みの値を「3」に設定し、この項目以外の重みを「1」のまま維持する。
【0326】
プレーヤ情報とは、プレーヤP1の情報(年齢や性別)、に応じて、学習する各項目の重みづけを決定してもよい。
【0327】
[14.2]プレーヤキャラクタ情報に基づく重みづけの設定
そして、端末装置20は、プレーヤキャラクタ情報に応じて、学習対象の関連情報の各項目の重みづけを決定してもよい。
【0328】
プレーヤキャラクタ情報とは、例えば、プレーヤP1が操作したキャラクタの数、キャラクタの種類等である。また、プレーヤが管理するキャラクタ毎のキャラクタの技(コンボを含む)の習得度でもよい。技の習得度は、キャラクタの全ての技の数のうち、当該キャラクタが習得した技の数の割合を示す。例えば、プレーヤP1が練習モードにおいて成功した技については習得したとみなして判定する。
【0329】
例えば、習得度の高いキャラクタ(例えば、習得度50%以上のキャラクタ)の場合、関連情報の各項目のうち、距離の項目の重みを「3」に設定し、他の項目よりも高くする。
【0330】
例えば、習得度の低いキャラクタ(例えば、習得度50%未満のキャラクタ)の場合、関連情報の各項目のうち、体力値の重みを「3」に設定し、他の項目よりも高くする。
【0331】
[14.3]ゲーム情報に基づく重みづけの設定
そして、端末装置20は、ゲーム情報に応じて、学習対象の関連情報の各項目の重みづけを決定してもよい。
【0332】
ゲーム情報とは、例えば、プレーヤP1及び対戦相手プレーヤそれぞれのレベル、レベル差、プレーヤP1の操作対象のキャラクタOB1及び対戦相手のキャラクタOB2のレベル、レベル差、等である。
【0333】
例えば、レベル差が10以上ある場合、関連情報の各項目のうち、距離の項目の重みを「3」に設定するなど、距離以外項目よりも高くする
また、レベル差が9以下である場合、関連情報の各項目のうち、体力値の重みを「3」に設定し、体力値以外項目よりも高くする。
【0334】
また、ゲーム情報は、カジュアルモード、又は真剣モードなどのモードの種類でもよい。カジュアルモードは、気楽に行うモードであり、真剣モードは、運営会社が開催するイベント、大会やEスポーツなどの真剣な格闘ゲームを行うモードである。
【0335】
また、ゲームモードが真剣モードである場合、関連情報の各項目のうち、距離及び体力値の重みを「3」に設定し、体力値以外項目よりも高くする。
【0336】
[15]プレーヤの操作入力に基づく設定
[15.1]重みの設定画面の具体例
本実施形態では、プレーヤP1の操作入力に基づき、第1のキャラクタOB1の関連情報の複数の項目のうち、重みが高い項目の選択を受け付けるようにしてもよい。
【0337】
図14は、重み設定画面の一例を示す。例えば、図14に示すように、プレーヤP1が
第1のキャラクタOB1の体力値を気にしている場合であって、第1のキャラクタOB1の体力値を重視したいと考えている場合、体力値の項目の重みを高くする項目として選択する。
【0338】
また、図示していないが、プレーヤP1が、第1のキャラクタOB1と第2のキャラクタOB2との距離を重視したい場合、距離の項目の重みを高くする項目として選択する。
【0339】
本実施形態の重み設定画面では、図15に示すように、プレーヤP1の操作入力に基づき、第1のキャラクタOB1の関連情報の複数の項目それぞれに百分率(パーセンテージ)で重みの配分率を決めてもよい。そして、関連情報の各項目の重みを、配分率に応じてとの重みの値を決定する。配分率が高い程、重みの値が高くなるように重みを設定する。逆に言えば、配分率が低い程、重みの値が低くなるように、重みを設定する。
【0340】
また、本実施形態の重み設定画面では、プレーヤP1の操作入力に基づき、関連情報の複数の項目それぞれの優先順位を設定してもよい。
【0341】
例えば、図16に示すように、第1のキャラクタOB1の関連情報の複数の項目の優先順位を決めてもよい。端末装置20は、優先順位に基づいて、第1のキャラクタOB1の関連情報の複数の項目それぞれの重みを決定する。つまり、優先順位が高い程、重みが高くなるように重みを決定する。このようにすれば、プレーヤは簡単に重みの設定を行うことができる。また、関連情報の全ての項目のうちの一部の項目(例えば、上位5項目)について優先順位を設定してもよい。
【0342】
[16]プレーヤの情報に基づく重み等の設定
本実施形態の端末装置20は、プレーヤの情報に基づいて、学習前(例えば、機械学習前)に、第1のキャラクタOB1の関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、関連情報を構成する複数の項目それぞれの重みの少なくとも1つを設定してもよい。
【0343】
また、端末装置20は、プレーヤの情報に基づいて、ゲーム進行状況に応じて、第1のキャラクタOB1の関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、関連情報を構成する複数の項目それぞれの重みの少なくとも1つを設定してもよい。
【0344】
別の言い方をすると、端末装置20は、プレーヤの情報に基づいて、ゲーム中、学習中、学習後、ゲーム進行度、又は、ゲーム進捗度に応じて、第1のキャラクタOB1の関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、関連情報を構成する複数の項目それぞれの重みの少なくとも1つを設定してもよい。
【0345】
[16.1]プレーヤの情報の説明
プレーヤの情報について詳細に説明する。プレーヤの情報は、格闘ゲームのゲームプレイ時間、ゲーム経験の有無、格闘ゲームの戦歴、対戦数、対戦成績、勝率、今まで対戦した対戦相手の情報、対戦相手のレベル(段位、ランク)である。
【0346】
また、プレーヤの情報は、プレーヤが格闘ゲームで使用したキャラクタの情報や、当該キャラクタで習得した技や連続行動(コンボ)、当該キャラクタが使用した技や連続行動を含む。
【0347】
また、プレーヤが格闘ゲームで使用したキャラクタのうち、最も多く使用しているキャラクタの情報を含む。
【0348】
例えば、格闘ゲームのゲームプレイ時間は、プレーヤが、格闘ゲームを起動(ログイン、電源オン)してから、終了(スリープ、ログアウト、電源オフ等)するまでの期間の合計期間である。
【0349】
ゲームプレイ時間が、1時間未満である場合、初心者であるとみなされ、体力値に重みをおくように重みを決定する。例えば、関連情報のキャラクタOB1の体力値の項目の重みが、他の項目よりも高くなるように重みを設定する。
【0350】
プレーヤが行った行動のうち、遠距離攻撃よりも近距離攻撃が多い場合、第1のキャラクタOB1と第2のキャラクタOB2との距離を気にしている可能性が高い。そのため、関連情報の第1のキャラクタOB1と第2のキャラクタOB2との距離の項目の重みが、他の項目よりも高くなるように重みを設定する。
【0351】
[16.2]プレイ履歴
プレーヤの情報は、プレーヤのプレイ履歴に関する情報を含む。例えば、プレーヤP1のゲームプレイ履歴は、プレーヤP1の操作対象の第1のキャラクタOB1の行動情報の履歴、関連情報の履歴である。例えば、プレーヤP1のゲームプレイ履歴から攻撃パターンを判定する。つまり、第1のキャラクタOB1が、第2のキャラクタOB2を壁に追い詰めて、技を繰り出す行動が多い場合、第1のキャラクタOB1の位置情報が重要視される。そのため、関連情報の第1のキャラクタOB1の位置情報の項目の重みが、他の項目よりも高くなるように重みを設定する。
【0352】
[16.3]過去のプレイ傾向
プレーヤの情報は、プレーヤの過去のプレイ傾向に関する情報を含んでもよい。
【0353】
例えば、プレーヤP1の過去のプレイ傾向は、カジュアルモード又は真剣モードのいずれのモードでのゲームプレイが多いかを示す情報、上級者、中級者又は初心者のうち、いずれのプレーヤとの対戦が多いかを示す情報、プレーヤP1が、どのようなプレイスタイルが多いかを示す情報等である。
【0354】
プレイスタイルとしては、どういうキャラクタを使用して、どのような試合の流れが多いのか(例えば、ゲーム開始10秒以内に大技を繰り出して相手キャラクタの体力値を0にする傾向が強い、後半30秒間で、猛攻が繰り広げられる傾向)等である。
【0355】
例えば、プレーヤの過去のプレイ傾向が、カジュアルモードよりも真剣モードが多い場合、関連情報の第1のキャラクタOB1の体力値の項目の重みが、他の項目よりも高くなるように重みを設定する。
【0356】
また、プレーヤの過去のプレイ傾向が、初心者が多い場合、関連情報の第1のキャラクタOB1の体力値の項目の重みが、他の項目よりも高くなるように重みを設定する。
【0357】
また、プレーヤの過去のプレイ傾向が、ゲーム開始10秒以内に大技を繰り出して相手キャラクタの体力値を0にする傾向がある場合、関連情報の第1のキャラクタOB1の体力値の項目と第2のキャラクタOB2の体力値の項目との重みが、他の項目よりも高くなるように重みを設定する。
【0358】
[16.4]他のプレーヤに関連する情報
プレーヤの情報は、プレーヤの情報に基づいて決定される他のプレーヤに関連する情報を含んでもよい。
【0359】
例えば、プレーヤP1の情報に基づいて決定される他のプレーヤに関連する情報とは、プレーヤP1とレベルが似ている他のプレーヤである。
【0360】
例えば、プレーヤP1が上級者レベルである場合、上級者レベルの他のプレーヤP2の関連情報のうち重みの高い項目と同じ項目について、重みを高くする項目を決定する。
【0361】
上級者レベルの他のプレーヤP2の関連情報のうち重みの高い項目が、壁からの距離である場合、プレーヤP1の関連情報の壁からの距離の項目の重みが、他の項目よりも高くなるように重みを設定する。
【0362】
例えば、サーバ装置10が、サーバ装置10が管理する各プレーヤの関連情報を収集して一元管理してもよい。そして、プレーヤP1の端末装置20が、サーバ装置10から、プレーヤP1の情報に基づいて決定される他のプレーヤP2に関連する情報として、例えば、「プレーヤP2の関連情報の複数項目のうち重みの高い項目」を取得する。「プレーヤP2の関連情報の複数項目のうち重みの高い項目」は、最も重みの高い項目1つでもよいし、重みの高い上位(例えば、上位5つ)の項目でもよい。
【0363】
[16.5]ゲーム進行状況に応じて重みづけを設定する例の補足説明
端末装置20は、プレーヤの情報に基づいて、ゲーム進行状況に応じて、リアルタイムに第1のキャラクタOB1の関連情報を構成する複数の項目それぞれの重みの設定を行ってもよい。
【0364】
例えば、端末装置20は、第1のキャラクタOB1の体力値が減少している体力減少状況(ゲーム進行状況の一例)を検出すると、第1のキャラクタOB1の関連情報を構成する各項目の重みの値を、当該体力減少状況に対応する各項目の重みの値に設定する。
【0365】
また、例えば、端末装置20は、第1のキャラクタOB1の攻撃が成功している攻撃成功状況(ゲーム進行状況の一例)を検出すると、第1のキャラクタOB1の関連情報を構成する各項目の重みの値を、当該攻撃成功状況に対応する各項目の重みの値に設定する。
【0366】
[16.6]複数の項目の組み合わせの設定
端末装置20は、学習前において、学習前のプレーヤの情報に基づいて、関連情報を構成する複数の項目の組み合わせを、設定してもよい。例えば、プレーヤが初心者である場合は、初心者用の関連情報を構成する複数の項目の組み合わせを、設定する。プレーヤが上級者である場合は、上級者用の関連情報を構成する複数の項目の組み合わせを、設定する。
【0367】
また、端末装置20は、ゲーム開始後において、ゲーム進行状況に応じて、リアルタイムに第1のキャラクタOB1の関連情報を構成する複数の項目の組み合わせを設定してもよい。例えば、体力減少状況を検出すると、当該体力減少状況に対応する複数の項目の組み合わせを設定する。例えば、攻撃成功状況を検出すると、当該攻撃成功状況に対応する複数の項目の組み合わせを設定する。
【0368】
[16.7]学習頻度の設定
端末装置20は、学習前において、学習前のプレーヤの情報に基づいて、学習頻度を設定してもよい。例えば、プレーヤが初心者である場合は、初心者用の学習頻度を設定する。プレーヤが上級者である場合は、上級者用の学習頻度を、設定する。
【0369】
また、端末装置20は、ゲーム開始後において、ゲーム進行状況に応じて、リアルタイムに学習頻度を設定してもよい。例えば、体力減少状況を検出すると、当該体力減少状況
に対応する学習頻度を設定する。例えば、攻撃成功状況を検出すると、当該攻撃成功状況に対応する学習頻度を設定する。
【0370】
[17]フローチャート
図17A図17Bは、本実施形態の行動制御の一例を示すフローチャートを示す。図17A図17Bを用いて、プレーヤP1の端末装置20において、プレーヤP1の操作対象のキャラクタOB1と、AIキャラクタである第2のキャラクタOB2とが対戦する場合において、第2のキャラクタの行動制御の流れについて説明する。
【0371】
まず、図17Aに示すように、重みを設定する(ステップS1)。例えば、行動に関連する関連情報の複数の項目それぞれについて重みを設定する。重みの設定は、プレーヤP1の操作入力に基づいて行ってもよい。
【0372】
そして、ゲームが開始されると(ステップS2)、プレーヤP1の操作入力に基づいて第1のキャラクタOB1の行動を制御する(ステップS3)。
【0373】
未学習の第1のキャラクタOB1の行動と当該行動に関連する関連情報に遭遇したか否かを判断する(ステップS4)。
【0374】
未学習の第1のキャラクタOB1の行動と当該行動に関連する関連情報に遭遇しない場合(ステップS4のN)、関連情報に基づいて、学習モデルを用いて、第2のキャラクタOB2の行動を決定する(ステップS5)。そして、学習を行う(ステップS6)。例えば、第1のキャラクタOB1の行動と当該行動に関連する関連情報とを学習する。そして、ステップS14に進む。
【0375】
なお、未学習の第1のキャラクタOB1の行動と当該行動に関連する関連情報に遭遇した場合(ステップS4のY)、図17BのステップS11に進む。そして、図17Bに示すように、第1のキャラクタOB1の行動に関連する関連情報に基づき、学習済みの第1のキャラクタOB1の行動の関連情報を探索する(ステップS11)。
【0376】
そして、探索された関連情報に基づいて、第2のキャラクタOB2の行動を決定する(ステップS12)。
【0377】
そして、学習を行う(ステップS13)。例えば、第1のキャラクタOB1の行動と当該行動に関連する関連情報とを学習する。また、第2のキャラクタOB2の行動と当該行動に関連する関連情報とを学習する。そして、ステップS14に進む。
【0378】
ゲームが終了したか否かを判断し(ステップS14)、ゲームが終了した場合(ステップS14のY)、処理を終了する。一方、ゲームが終了していない場合(ステップS14のN)、ステップS3に戻る。以上で処理を終了する。
【0379】
[18]機械学習の詳細な説明
本実施形態では、機械学習により重みづけを最適化する。端末装置20は、学習記憶部278に記憶されている、行動(行動情報)と、当該行動の関連情報とに基づいて深層学習の処理を行うことによって学習に関する重みを最適化する。端末装置20は、第1のキャラクタ及び第2のキャラクタによる後続する対戦ゲームに際して、最適化した学習結果の重みを反映させて、入力部260による入力に基づくことなく第2のキャラクタOB2の動きを制御する。
【0380】
学習部218は、各関連情報を、複数層からなるリカレント・ニューラル・ネットワー
ク(再帰型ニューラルネットワーク)を用いて深層学習の計算処理を行って、行動情報を算出し、学習結果の重みを最適化する。
【0381】
例えば、学習部218は、第2のキャラクタOB2の行動情報を移動・動作制御部213に送り、移動・動作制御部213は、学習結果の重みを反映した行動情報を学習部218から受け取り、第2のキャラクタOB2の行動(移動・動作)の制御を行う。
【0382】
また、学習記憶部278は、行動に関連する関連情報の履歴を記憶する履歴データ記憶部と、深層学習の処理結果として複数の層別の重みの計算結果を記憶する層別の重み記憶部とを含んでもよい。
【0383】
また、端末装置20は、収集した関連情報を、学習記憶部278に書き込むとともに、履歴データ記憶部に記憶されている各関連情報を第一層の入力として、複数の層においてそれぞれの入力に対する重みを乗算して、層毎の出力を計算し、その出力を次の層の入力として計算する処理を逐次的に行い、最終層の出力として得た行動情報と、実際に行われた行動情報の差分を用いて、層別の重みを最適化して層別の重み記憶部に記憶させてもよい。
【0384】
また、学習部218は、現在の関連情報と、その時点で最新の重みとを掛け合わせて、キャラクタが行ったであろう行動を導き出すための推論処理部と、現在の関連情報とプレーヤP1が実際に操作入力に基づくキャラクタOB1の行動を深層学習の重みに反映するための学習処理部とを含んでもよい。
【0385】
推論処理部は、収集した関連情報を、履歴データ記憶部に書き込むとともに、履歴データ記憶部に記憶されている各関連情報を第一層の入力として、それぞれの層において重みを乗算して、層別の出力を算出し、その出力を次の層の入力として逐次的に計算することで、最終層の出力として行動情報を得るものである。
【0386】
学習処理部は、推論処理部によって算出された行動情報と、現在の関連情報の時点に対応するプレーヤの操作入力に基づいて決定される行動情報とに基づいて、深層学習の重みを最適化する。
【0387】
学習部218は、深層学習の処理として、少なくとも1つの全対全結合層による計算処理と、複数のゲーテッド・リカレント・ユニット層による計算処理を実行するものである。全対全結合層による計算処理では、重み行列を入力のベクトルと乗算する処理を実行する。各ゲーテッド・リカレント・ユニット層による計算処理では、複数のゲーテッド・リカレント・ユニット層のそれぞれにおいて、重みを使って忘れる量を計算し、重みを使って反映量を計算し、出力候補を計算する処理を順次行ってもよい。
【0388】
学習部218は、各ゲーテッド・リカレント・ユニット層による計算処理として、出力候補の計算後に、選択的にドロップアウト処理をして出力してもよい。
【0389】
端末装置20は、ゲーム情報記憶部274に、プレーヤによる入力部260の操作に応じた操作データを、先入れ先出し態様で記憶するようにしてもよい。
【0390】
端末装置20は、学習記憶部278は、学習に関する層別の重みを記憶してもよい。
【0391】
学習記憶部278(重み記憶部)は、深層学習後の各層の重みを記憶する複数層分の重み記憶部を含んでもよい。
【0392】
学習部218は、ゲームプレイ中の行動(行動情報)と当該行動の関連情報とを先入れ先出し態様でゲーム情報記憶部274に記憶させるとともに、深層学習後の各層の重みデータを対応する層別の重みデータ記憶部に記憶させるようにしてもよい。
【0393】
次に、関連情報を入力した場合、出力結果として、第2のキャラクタOB2の行動情報を得るための学習モデルの生成について説明する。
【0394】
本実施形態では、複数層(例えば、6層)のニューラルネットワークで構成される。ニューラルネットワークは、例えば、リカレントニューラルネットワーク(再帰型ニューラルネットワーク)で構成する。
【0395】
推論処理において、記憶部270の関連情報が記憶されると、関連情報の各項目をニューラルネットワークの第1層へ並列的に入力させる。入力に対するそれぞれの重みを乗算して出力を求める。
【0396】
続いて、ニューラルネットワークの各層では、前段の層の出力が次段の層で重み計算されて、次々段の層の入力となる。このようにして、出力層においての出力結果が、推論した第2のキャラクタOB2の行動情報となる。推論した第2のキャラクタOB2の行動情報は、学習処理の入力とする。なお、推論と学習を同時に行う必要はなく、個別に行ってもよい。
【0397】
続いて、学習について説明する。学習処理は、まず、推論した行動情報と、正解となる行動情報との差分の誤差を求める。層別に最適化された重みデータに更新的に書き込まれる。層別に最適化された重みが層別に更新的に記憶される。
【0398】
次に、各層の出力を計算する処理(推論処理)の一例について説明する。推論処理は、例えば、第1層の入力層と、隠れ層(第2層~第5層)と、第6層の出力層で構成される。そして、各層のノードの計算において、入力値と重みの積和を算出することによって出力を得る。なお、ノードの計算には、各層の入力値と重みの積和にバイアスを足してもよい。
【0399】
例えば、入力層は、関連情報の項目数であり、出力が第2のキャラクタOB2の行動情報の要素数である。
【0400】
出力層(最終層)の出力は、関連情報に対応した推定される第2のキャラクタOB2の行動情報となる。つまり、出力層には、行動情報の項目数(例えば、行動の種類が、64種類あれば64)のノードを用意する。例えば、各ノードの値が得られると、最も数値の高い項目が、例えば、「足技カウンター」の項目であれば、第2のキャラクタOB2の行動情報を足技カウンターに決定する。
【0401】
次に、各層の重みデータを使って出力を計算する処理(推論処理)を説明する。本実施形態では、推論処理において重みを調整する。重みの修正が必要な場合は出力側に一番近い層から行う必要がある。重みは、例えば、64×64の行列である。複数種類の重みを用意してもよい。これらの重みは、初期状態において、プレーヤの操作入力或いは予め決められた情報に基づき、予め設定されてもよいが、学習処理を重ねるに従って徐々に適正化され、最終的には最適化される。
【0402】
本実施形態では、1ラウンドの対戦が終了する度に、各ラウンドの6層分の重みデータがニューラルネットワークの各重みとして、学習記憶部278に累積的に記憶されることになる。
【0403】
重みデータでは、次回ゲーム時に再び読みだして学習を行うか、学習した行動情報を再現するのに使用してもよい。重みデータは、ネットワークを介して複数の端末装置20間で送受信されもよい。
【0404】
本実施形態によれば、機械学習を用いて、プレーヤP1のキャラクタOB1の操作を再現可能な、最適な対戦相手のキャラクタOB2を創出することができる。また、事前に学習させた結果を使用することによって、より人間らしい行動情報をコンピュータ相手の対戦でも実現することができる。
【0405】
[19]その他の補足説明
[19.1]サーバ装置
本実施形態では、機械学習によるゲームを提供する場合において、端末装置20が、学習機能及び推論機能を有する例について説明したが、サーバ装置10が、上述した端末装置20が行う学習機能及び推論機能を、有していてもよい。
【0406】
[19.2]学習データ
本実施形態では、プレーヤP1がゲームプレイしながら学習し、第2のキャラクタOB2の行動を予測するゲームについて説明したが、予め、プレーヤP1がコンピュータと対戦する期間(プレーヤP1の操作対象の第1のキャラクタOB1とコンピュータキャラクタである第2のキャラクタOB2とが対戦する期間)を設け、当該期間に学習データ(第1のキャラクタOB1の行動の情報及び当該行動の関連情報)を収集してもよい。また、収集した学習データに基づいて、学習済みの学習モデルを生成するようにしてもよい。
【0407】
本実施形態では、予め、プレーヤP1が、実在するプレーヤP2と対戦する期間(プレーヤP1の操作対象の第1のキャラクタOB1とプレーヤP1の操作対象である第2のキャラクタOB2とが対戦する期間)を設け、当該期間に学習データ(第1のキャラクタOB1行動の情報及び当該行動の関連情報及び/又は第2のキャラクタOB2行動の情報及び当該行動の関連情報)を収集してもよい。また、収集した学習データに基づいて、学習済みの学習モデルを生成するようにしてもよい。
【0408】
[19.3]重みづけを行う期間及びレベルの補足の説明
本実施形態では、プレーヤの情報又は第1のキャラクタの情報に基づいて、重みづけを行う期間を変化させてもよい。第1のキャラクタの情報は、第1のキャラクタの学習データ(第1のキャラクタの行動の情報及び当該行動の関連情報)を含む概念でもよい。なお、「重みづけを行う期間」とは、関連情報を構成する複数の項目のうち、所定の項目(例えば、プレーヤの操作入力に基づき、選択された項目等)について、重みを高くする期間である。
【0409】
例えば、端末装置20は、プレーヤの情報に基づき、プレーヤが初心者、中級者、上級者のいずれに該当するかを判定する。プレーヤのレベルが、例えば、10未満の場合、初心者と判定する。プレーヤのレベルが10以上であって80未満の場合、中級者と判定する。プレーヤのレベルが80以上の場合、上級者(ベテラン)と判定する。
【0410】
そして、端末装置20は、プレーヤのレベルに応じて、重みづけを行う期間を決定する。例えば、初心者のプレーヤの場合、ゲーム期間において、ゲーム開始時点TSから30秒の期間に、重みづけを行う期間として決定する。中級者のプレーヤの場合、ゲーム期間において、ゲーム開始時点TSから10秒の期間と、ゲーム開始時点TSから30秒を経過した時点から40秒を経過した時点までの10秒間とに、重みづけを行う期間として決定する。上級者のプレーヤの場合、ゲーム期間において、ゲーム開始時点TSから20秒
の期間と、ゲーム終了時点TEを含む最後の5秒間とに、重みづけを行う期間として決定する。このようにすれば、プレーヤのレベルに応じて、多様な期間で、学習の重みづけを行うことができる。
【0411】
なお、プレーヤのレベルと同様に、プレーヤが操作する対象の第1のキャラクタOB1のレベルに基づいて、初心者、中級車、上級者のいずれかに該当するかを判定してもよい。そして、第1のキャラクタOB1の情報(例えば、レベル)に基づいて、重みづけを行う期間を変化させてもよい。
【0412】
[19.4]第2のキャラクタの行動制御の補足説明
本実施形態では、予め第1のキャラクタの行動の種類毎に、当該行動に対応する第2のキャラクタの行動を定義してもよい。
【0413】
例えば、第1のキャラクタOB1の行動の「ジャンプキック」に対応する第2のキャラクタの行動として、「ガード」を定義する。また、第1のキャラクタOB1の行動の「投げ技」に対応する第2のキャラクタの行動として、「投げ抜け」を定義する。また、第1のキャラクタOB1の行動の「キック」に対応する第2のキャラクタの行動として、「しゃがむ」を定義する。このように、端末装置20は、予め、第1のキャラクタOB1の行動(行動ID)それぞれに対応付けて、第2のキャラクタOB2の行動を定義する。
【0414】
端末装置20は、予め第1のキャラクタの行動の種類毎に、当該行動に対応する第2のキャラクタの行動を定義したデータ(以下、「固定データ」とも言う)、及び、学習データの少なくとも一方を用いて、第2のキャラクタの行動を制御してもよい。
【0415】
例えば、端末装置20は、学習データが不足し、第1のキャラクタOB1の行動や当該行動の関連情報の学習が不十分である場合は、固定データ及び学習データの少なくとも一方を用いて第2のキャラクタの行動を制御する。かかる場合、固定データの使用か、学習データの使用かについては、所与の抽選処理に基づいて選択してもよい。例えば、学習データが不足している場合(例えば、学習データセットが100件以下の場合)は、固定データの当選確率を80%にし、固定データが抽選で選択される可能性が高くなるようにする。このようにすれば、第2のキャラクタに対する不自然な行動を極力減らすことができる。なお、端末装置20は、学習データの数が増えるにつれて、当選確率を減少させるようにしてもよい。
【0416】
[19.5]一致度の補足説明
端末装置20は、未学習の第1のキャラクタOB1の行動に関連する関連情報と、探索された関連情報とを対比し、未学習の第1のキャラクタOB1の行動に関連する関連情報と、探索された関連情報との一致度Kを百分率(パーセンテージ)で数値化する。
【0417】
所与のアルゴリズムや数式に基づき、一致度Kを算出する。また、検出された未学習の第1のキャラクタの行動(例えば、「ジャンプキック」)に関連する関連情報と一致度が高い学習済みの関連情報を探索する場合は、その探索過程、又は、探索後に、探索された関連情報の一致度Kを算出する。
【0418】
端末装置20は、各項目の重みに基づいて、探索された関連情報の一致度Kを、算出してもよい。
【0419】
また、端末装置20は、探索された関連情報を構成する各項目それぞれの一致度Lを算出する。なお、項目の一致度Lを、項目一致度と言い換えてもよい。
【0420】
例えば、関連情報の1項目である「体力値」の一致度Lを算出する例について説明する。第1のキャラクタOB1のジャンプキック時の第1のキャラクタOB1の体力値が「100」である場合において、探索された学習済みの「体力値」が「100」である場合、「体力値」の一致度Lが100%であると判定する。探索された学習済みの「体力値」が「80」である場合、一致度Lが80%であると判定する。探索された学習済みの「体力値」が「30」である場合、「体力値」の一致度Lが30%であると判定する。
【0421】
端末装置20は、探索された関連情報の各項目の一致度Lに基づいて、関連情報の一度Kを求める。例えば、探索された関連情報の各項目の一致度Lの平均値を、関連情報の一度Kとして算出してもよいし、全ての項目数(例えば、100項目ある場合は「100」)に対する、一致度Lが80%以上の項目の数(例えば、一致度が80%以上の項目が20あれば「20」)の割合(例えば、20%)を、関連情報の一度度Kとしてもよい。
【0422】
[19.6]探索手法の補足説明
端末装置20は、重みづけが行われた項目に着目して探索をする場合は、項目の重みづけの値に基づいて、探索する。例えば、重みづけの値が高い項目から順に、項目単位での一致度Lの高い関連情報を探索するようにしてもよい。
【0423】
具体的に説明すると、関連情報の複数の項目のうち、「体力値」の重みが「3」であり、「残りゲーム時間」の重みが「2」であり、その他の項目が「1」である場合、重みの値が高い「体力値」の項目について、最も一致度Lの高い関連情報を探索する。「体力値」について、最も一致度の高い関連情報が複数探索された場合(例えば、体力値の一致度Lが100%である関連情報が複数探索された場合)は、その中で、「残りゲーム時間」の項目について、最も一致度Lの高い関連情報を探索する。
【0424】
「体力値」及び「残りゲーム時間」の各項目について、最も一致度の高い関連情報が複数探索された場合(例えば、「体力値」及び「残りゲーム時間」いずれも一致度が100%である関連情報が複数探索された場合)は、他の項目の一致度Lが最も高い関連情報を探索する。
【0425】
[19.7]一致度に基づく第2のキャラクタの行動制御
本実施形態では、探索された関連情報の一致度Kが所定値以上でない場合に、検出された未学習の当該第1のキャラクタの行動に対応する予め定義された行動を、第2のキャラクタに行わせるようにしてもよい。このようにすれば、第2のキャラクタに対する不自然な行動を極力減らすことができる。
【0426】
例えば、未学習の当該第1のキャラクタの行動として「ジャンプキック」及び「ジャンプキック」の関連情報が検出されたとする。端末装置20は、「ジャンプキック」の関連情報の一致度Kが、所定値以上(例えば、70%以上)でない場合に、「ジャンプキック」に対応する予め定義された行動(例えば、「ガード」)を、第2のキャラクタに行わせる。
【0427】
また、本実施形態では、探索された関連情報の一致度Kが所定値以上でない場合に、検出された未学習の当該第1のキャラクタの行動に対応する複数の予め定義された行動の中から、1つの行動を所定の条件で選択し、選択された行動を第2のキャラクタに行わせるようにしてもよい。
【0428】
例えば、第1のキャラクタOB1の「ジャンプキック」に対応する予め定義された行動が、「ガード」、「後ずさり防御」、「しゃがみ」の3つの行動が定義されていたとする。端末装置20は、「ガード」、「後ずさり防御」、「しゃがみ」の3つの行動の中から
、1つの行動を所定の条件で選択し、選択された行動を第2のキャラクタに行わせる。所定の条件とは、抽選処理で選択することや、ゲーム状況(ゲーム情報)が所定の状況である場合、等である。
【0429】
例えば、端末装置20は、「ガード」、「後ずさり防御」、「しゃがみ」の3つの行動の中から、抽選処理によって「ガード」が当選されると、「ガード」を選択し、第2のキャラクタに「ガード」を行わせる。
【0430】
また、端末装置20は、ゲーム状況が所定の状況である場合、抽選処理ではなく、「ガード」を必ず選択するようにする、等の制御を行う。所定の状況とは、例えば、残りゲーム時間が残り10秒以内である場合、第2のキャラクタの体力値が10以下である場合、等である。
【0431】
また、本実施形態では、連続行動(コンボ)についても同様の処理を行う。つまり、端末装置20は、未学習の第1のキャラクタの連続行動が検出された場合、学習済みの関連情報の中から探索された関連情報の一致度Kが所定値以上でない場合に、検出された未学習の当該第1のキャラクタの連続行動に対応する予め定義された行動を、第2のキャラクタに行わせる。
【0432】
例えば、第1のキャラクタOB1が連続してキックを2回行う連続行動を行った場合において、「下段ガード」、「キック」、「離れる移動」のいずれか1つの行動を抽選で選択する。そして、選択された行動を、第2のキャラクタOB2に行わせる。
【0433】
また、第1のキャラクタOB1が連続してキックを2回行う連続行動を行った場合において、第2のキャラクタOB2の体力値が第1の所定値未満(例えば、上限値の50%未満)であって、第2の所定値以上(例えば、上限値の30%以上)のとき、「下段ガード」を、第2のキャラクタOB2に行わせ、第2のキャラクタOB2の体力値が第2の所定値未満(例えば、上限値の30%未満)である場合は、「離れる移動」を、第2のキャラクタOB2に行わせるように、制御してもよい。
【0434】
[20]応用例
本実施形態では、対戦ゲームだけでなく、レースゲーム、シューティングゲーム、音楽ゲーム、RPG(ロールプレイングゲーム)、アクションゲーム、スポーツゲーム、育成シミュレーションゲームなどに応用可能である。
【0435】
また、3次元の仮想空間でユーザのキャラクタ(アバター)を配置して、仮想空間を楽しむサービスにも応用可能である。
【0436】
[21]その他
本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0437】
本発明は、実施形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施形態で説明した構成に公知技術を付加した構成を含む。
【0438】
上記のように、本発明の実施形態について詳細に説明したが、本発明の新規事項及び効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。したがって、このような変形例はすべて本発明の範囲に含まれるものとする。
【符号の説明】
【0439】
10 サーバ装置、20、20A、20B、20C 端末装置、
100 処理部、111 ゲーム処理部、112 表示制御部、
119 受け付け部、120 通信制御部、121 Web処理部、
122 管理部、123 通知部、
160 入力部、170 記憶部、171 主記憶部、
174 ゲーム情報記憶部、176 プレーヤ情報記憶部、
180 情報記憶媒体、196 通信部、
200 処理部、211 通信制御部、212 オブジェクト空間設定部、
213 移動・動作制御部、214 操作入力受付部、215 ゲーム制御部、
216 仮想カメラ制御部、217 行動制御部、218 学習部、219 設定部、
220 判断部、221 探索部、222 表示制御部、
223 変化部、230 画像生成部、
240 音処理部、260 入力部、262 検出部、270 記憶部、
271 主記憶部、272 画像バッファ、274 ゲーム情報記憶部、
276 プレーヤ情報記憶部、278 学習記憶部、279 学習モデル記憶部、
280 情報記憶媒体、290 表示部、
292 音出力部、296 通信部
【要約】
【課題】第1のキャラクタの行動及び当該行動に関連する関連情報に基づいて、学習された学習データを用いて第2のキャラクタの行動を制御する対戦ゲームにおいて、効率よく学習ができるゲームシステム等を提供すること。
【解決手段】第1のキャラクタの行動と当該行動に関連する関連情報とを学習する。プレーヤの情報に基づいて、学習前に、前記関連情報を構成する複数の項目の組み合わせ、学習頻度、及び、前記関連情報を構成する複数の項目それぞれの重み、の少なくとも1つを設定する。
【選択図】図3
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17A
図17B