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

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

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

特許7376607対戦マッチのための人工知能モデルを訓練するためのシステム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-30
(45)【発行日】2023-11-08
(54)【発明の名称】対戦マッチのための人工知能モデルを訓練するためのシステム及び方法
(51)【国際特許分類】
   A63F 13/67 20140101AFI20231031BHJP
   A63F 13/215 20140101ALI20231031BHJP
   A63F 13/428 20140101ALI20231031BHJP
   A63F 13/825 20140101ALI20231031BHJP
   A63F 13/55 20140101ALI20231031BHJP
   G06N 3/02 20060101ALI20231031BHJP
   G06N 20/00 20190101ALI20231031BHJP
【FI】
A63F13/67
A63F13/215
A63F13/428
A63F13/825
A63F13/55
G06N3/02
G06N20/00
【請求項の数】 21
(21)【出願番号】P 2021555794
(86)(22)【出願日】2020-02-19
(65)【公表番号】
(43)【公表日】2022-05-13
(86)【国際出願番号】 US2020018749
(87)【国際公開番号】W WO2020190438
(87)【国際公開日】2020-09-24
【審査請求日】2021-11-08
(31)【優先権主張番号】16/355,560
(32)【優先日】2019-03-15
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】テイラー、マイケル
(72)【発明者】
【氏名】リコ、ハビエル、フェルナンデス
(72)【発明者】
【氏名】ブラック、グレン
【審査官】岸 智史
(56)【参考文献】
【文献】特表2016-526952(JP,A)
【文献】米国特許出願公開第2018/0318719(US,A1)
【文献】特開2018-63602(JP,A)
【文献】国際公開第2018/150654(WO,A1)
【文献】Volodymyr Mnih, 外6名,Playing Atari with Deep Reinforcement Learning,arXiv [online],2013年12月19日,https://arxiv.org/pdf/1312.5602.pdf,[2023年3月27日検索]
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24、13/00-13/98
G06N 3/02
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
ゲームのキャラクターを訓練するための方法であって、
前記ゲームの1又は複数のシーンの複数の仮想オブジェクトとユーザによって操作される第1のキャラクターとのインタラクションに関する入力データを受信することであって、前記1つまたは複数のシーンは、前記第1のキャラクターを含む、受信することと、
前記1つまたは複数のシーンにおける前記第1のキャラクターと前記複数の仮想オブジェクトとの間のインタラクションパターンを識別するために前記入力データを分析することであって、前記インタラクションパターンは、前記ユーザのユーザアカウントに関連付けられた第1の人工知能(AI)モデルを訓練するための入力を定義する、前記分析することと、
前記第1のAIモデルが、前記複数の仮想オブジェクトとインタラクションを行うために、前記インタラクションパターンを適用することと、
前記複数の仮想オブジェクトとインタラクションを行うために、前記第1のAIモデルによる前記インタラクションパターンの前記適用に基づいて生成される反応データを受信することと、
前記第1のAIモデルが新しいシーンから訓練するために前記第1のキャラクターとインタラクションを行うための前記新しいシーンを提供することと、
前記第1のAIモデルの追加の訓練を実行するために前記第1のAIモデルによって操作される前記第1のキャラクターの前記新しいシーンとの前記インタラクションを追跡することであって、前記追跡することは、他のインタラクションパターンを識別するために行われる、追跡することと、
前記第1のAIモデルによって操作される前記第1のキャラクターと前記新しいシーンとの間の前記他のインタラクションパターンに基づいて生成される他の反応データを受信することと、
前記他の反応データが前記反応データを超えるか否かを判断することと、
前記他の反応データが前記反応データを超えると判断されたことに応答して前記他のインタラクションパターンを適用するように前記第1のAIモデルを訓練することと、
を含む、前記方法。
【請求項2】
前記第1のAIモデルの前記追加の訓練は、前記第1のキャラクターによって、前記第1のAIモデルを使用して行われる判断を使用して自動的に操作されるときに引き起こされるインタラクションによるものである、請求項1に記載の方法。
【請求項3】
前記第1のAIモデルを使用して行われる前記判断は、前記ユーザからの操作を含まない、請求項2に記載の方法。
【請求項4】
前記入力データはコンピュータネットワークを介して受信され、前記入力データを前記分析することは、
前記入力データに関連する特徴を識別することであって、前記特徴は、前記1つまたは複数のシーン内の前記第1のキャラクター及び前記複数の仮想オブジェクトに関連する、前記識別することと、
分類子を出力するために前記特徴を分類することであって、前記分類子のそれぞれは、前記第1のキャラクターによって実行される対応する機能に関連する、前記分類することと、
前記第1のAIモデルを訓練するための入力として前記分類子を提供することと、
を含む、請求項1に記載の方法。
【請求項5】
第2のAIモデルにアクセスするための許諾を他のユーザアカウントに要求することと、
前記第2のAIモデルを訓練するために使用される追加のインタラクションパターンを要求することと、
前記第1のAIモデルを訓練するために前記追加のインタラクションパターンを適用することと、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記1つまたは複数のシーンの追加のインスタンスの間に前記他のインタラクションパターンを適用するために前記第1のAIモデルが訓練される、請求項1に記載の方法。
【請求項7】
前記新しいシーンは、前記1つまたは複数のシーンに存在しない仮想オブジェクトを含むか、前記1つまたは複数のシーンに存在する前記複数の仮想オブジェクトのうちの1つまたは複数を含まないか、あるいはそれらの組み合わせである、請求項1に記載の方法。
【請求項8】
訓練前の前記第1のAIモデルにスキルレベルを割り当て、訓練後の前記第1のAIモデルにスキルレベルを割り当て、前記追加の訓練前の前記第1のAIモデルにスキルレベルを割り当て、前記追加の訓練後の前記第1のAIモデルにスキルレベルを割り当てることと、
第2のAIモデルのスキルレベルを要求することと、
前記第1のAIモデルと前記第2のAIモデルとの間の対戦において、前記第2のAIモデルの前記スキルレベルに対応する前記第1のAIモデルの前記スキルレベルの1つを適用することと、
をさらに含む、請求項1に記載の方法。
【請求項9】
前記第1のキャラクターは前記対戦中に前記ユーザによって操作されず、前記第1のAIモデルによって操作され、第2のキャラクターは前記対戦中に前記第2のAIモデルによって操作される、請求項8に記載の方法。
【請求項10】
前記ユーザと前記ゲームをプレイする要求が他のユーザから受信されたと判定することと、
前記要求を受信したことに応答して、前記ユーザが前記ユーザアカウントからログアウトしていることを識別することと、
前記ユーザの代わりに前記第1のAIモデルが前記他のユーザと前記ゲームをプレイできることを表示するためのデータを生成することと、
をさらに含む、請求項1に記載の方法。
【請求項11】
前記ゲームの前記1つまたは複数のシーンの表示中の前記ユーザのジェスチャデータ及び前記ユーザの音声データの記録を受信することと、
前記第1のキャラクターがジェスチャ及び音声を適用することを可能にするために、前記ジェスチャデータ及び前記音声データを、前記第1のAIモデルの訓練に使用される前記入力と統合することと、
をさらに含む、請求項1に記載の方法。
【請求項12】
ゲームのキャラクターを訓練するためのサーバであって、
前記ゲームの1つまたは複数のシーンの複数の仮想オブジェクトとユーザによって操作される第1のキャラクターとのインタラクションに関する入力データを受信するように構成されるプロセッサであって、前記1つまたは複数のシーンは、前記第1のキャラクターを含み、
前記プロセッサは、前記1つまたは複数のシーンにおける前記第1のキャラクターと前記複数の仮想オブジェクトとの間のインタラクションパターンを識別するために前記入力データを分析するように構成され、前記インタラクションパターンは、前記ユーザのユーザアカウントに関連付けられた第1の人工知能(AI)モデルを訓練するための入力を定義し、
前記プロセッサは、前記第1のAIモデルを使用して、前記複数の仮想オブジェクトとインタラクションを行うために、前記インタラクションパターンを適用するように構成され、
前記複数の仮想オブジェクトとインタラクションを行うために、前記第1のAIモデルによる前記インタラクションパターンの前記適用に基づいて生成される反応データを受信するように構成され、
前記プロセッサは、前記第1のAIモデルが新しいシーンから訓練するために前記第1のキャラクターとインタラクションを行うための前記新しいシーンを提供することを可能にするように構成され、
前記プロセッサは、前記第1のAIモデルの追加の訓練を実行するために前記第1のAIモデルによって操作される前記第1のキャラクターの前記新しいシーンとの前記インタラクションを追跡するように構成され、前記インタラクションは、他のインタラクションパターンを識別するために追跡され、
前記プロセッサは、前記第1のAIモデルによって操作される前記第1のキャラクターと前記新しいシーンとの間の前記他のインタラクションパターンに基づいて生成される他の反応データを受信するように構成され、
前記プロセッサは、前記他の反応データが前記反応データを超えるか否かを判断するように構成され、
前記プロセッサは、前記他の反応データが前記反応データを超えると判断されたことに応答して前記他のインタラクションパターンを適用するように前記第1のAIモデルを訓練するように構成される、前記プロセッサと、
前記プロセッサに結合されたメモリデバイスと、を備え、前記メモリデバイスは、前記第1のAIモデルを記憶するように構成される、前記サーバ。
【請求項13】
前記入力データはコンピュータネットワークを介して受信され、前記入力データを分析するために、前記プロセッサは、
前記入力データに関連する特徴を識別することであって、前記特徴は、前記1つまたは複数のシーン内の前記第1のキャラクター及び前記複数の仮想オブジェクトに関連する、前記識別することと、
分類子を出力するために前記特徴を分類することであって、前記分類子のそれぞれは、前記第1のキャラクターによって実行される対応する機能に関連する、前記分類することと、
前記第1のAIモデルを訓練するための入力として前記分類子を提供することと、
を行うように構成される、請求項12に記載のサーバ。
【請求項14】
前記プロセッサは、
第2のAIモデルにアクセスするための許諾を他のユーザアカウントに要求することと、
前記第2のAIモデルを訓練するために使用される追加のインタラクションパターンを要求することと、
前記第1のAIモデルを訓練するために前記追加のインタラクションパターンを適用することと、
を行うように構成される、請求項12に記載のサーバ。
【請求項15】
前記1つまたは複数のシーンの追加のインスタンスの間に前記他のインタラクションパターンを適用するために前記第1のAIモデルが訓練される、請求項12に記載のサーバ。
【請求項16】
前記新しいシーンは、前記1つまたは複数のシーンに存在しない仮想オブジェクトを含むか、前記1つまたは複数のシーンに存在する前記仮想オブジェクトのうちの1つまたは複数を含まないか、あるいはそれらの組み合わせである、請求項12に記載のサーバ。
【請求項17】
前記プロセッサは、
訓練前の前記第1のAIモデルにスキルレベルを割り当て、訓練後の前記第1のAIモデルにスキルレベルを割り当て、前記追加の訓練前の前記第1のAIモデルにスキルレベルを割り当て、前記追加の訓練後の前記第1のAIモデルにスキルレベルを割り当てることと、
第2のAIモデルのスキルレベルを検出することと、
前記第1のAIモデルと前記第2のAIモデルとの間の対戦において、前記第2のAIモデルの前記スキルレベルに対応する前記第1のAIモデルの前記スキルレベルの1つを適用することと、
を行うように構成される、請求項12に記載のサーバ。
【請求項18】
前記第1のキャラクターは前記対戦中に前記ユーザによって操作されず、前記第1のAIモデルによって操作され、第2のキャラクターは前記対戦中に前記第2のAIモデルによって操作される、請求項17に記載のサーバ。
【請求項19】
前記プロセッサは、
前記ユーザと前記ゲームをプレイする要求が他のユーザから受信されたと判定することと、
前記要求を受信したことに応答して、前記ユーザが前記ユーザアカウントからログアウトしていることを検出することと、
前記ユーザの代わりに前記第1のAIモデルが前記他のユーザと前記ゲームをプレイできることを表示するためのデータを生成することと、
を行うように構成される、請求項12に記載のサーバ。
【請求項20】
前記プロセッサは、
前記ゲームの前記1つまたは複数のシーンの表示中の前記ユーザのジェスチャデータ及び前記ユーザの音声データの記録を受信することと、
前記第1のキャラクターがジェスチャ及び音声を適用することを可能にするために、前記ジェスチャデータ及び前記音声データを、前記第1のAIモデルの訓練に使用される前記入力と統合することと、
を行うように構成される、請求項12に記載のサーバ。
【請求項21】
プログラム命令を含むコンピュータ可読媒体であって、コンピュータシステムの1つまたは複数のプロセッサによる前記プログラム命令の実行は、前記1つまたは複数のプロセッサに、
ゲームの1つまたは複数のシーンの複数の仮想オブジェクトとユーザによって操作される第1のキャラクターとのインタラクションに関する入力データを受信することであって、前記1つまたは複数のシーンは、前記第1のキャラクターを含む、前記受信することと、
前記1つまたは複数のシーンにおける前記第1のキャラクターと前記複数の仮想オブジェクトとの間のインタラクションパターンを識別するために前記入力データを分析することであって、前記インタラクションパターンは、前記ユーザのユーザアカウントに関連付けられた第1の人工知能(AI)モデルを訓練するための入力を定義する、前記分析することと、
前記第1のAIモデルが、前記複数の仮想オブジェクトとインタラクションを行うために、前記インタラクションパターンを適用することと、
前記複数の仮想オブジェクトとインタラクションを行うために、前記第1のAIモデルによる前記インタラクションパターンの前記適用に基づいて生成される反応データを受信することと、
前記第1のAIモデルが新しいシーンから訓練するために前記第1のキャラクターとインタラクションを行うための前記新しいシーンを提供することと、
前記第1のAIモデルを使用して前記第1のキャラクターが新しいシーンとインタラクションを行うことを可能にすることと、
前記第1のAIモデルの追加の訓練を実行するために前記第1のAIモデルによって操作される前記第1のキャラクターによる前記新しいシーンとの前記インタラクションを追跡することであって、前記追跡することは、他のインタラクションパターンを識別するために行われる、追跡することと、
前記第1のAIモデルによって操作される前記第1のキャラクターと前記新しいシーンとの間の前記他のインタラクションパターンに基づいて生成される他の反応データを受信することと、
前記他の反応データが前記反応データを超えるか否かを判断することと、
前記他の反応データが前記反応データを超えると判断されたことに応答して前記他のインタラクションパターンを適用するように前記第1のAIモデルを訓練することと、
の複数の動作を行わせる、前記コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、対戦マッチのための人工知能(AI)モデルを訓練するためのシステム及び方法に関する。
【背景技術】
【0002】
近頃のビデオゲームは、コンピュータネットワークを介してアクセスされる。たとえば、Fortnite(商標)というゲームは、世界各地からの多くのプレーヤーによってプレイされる。あるプレーヤーが第1のアバターを操作し、他のプレーヤーが第2のアバターを操作する。各アバターは、ゲーム中に武器を集め、木を切る。その後、アバターは強制的に仮想サークル内に閉じ込められる。アバターが仮想サークルの外に取り残された場合、アバターはゲーム内で仮想的に死ぬ。両方のアバターがサークル内にいるとき、彼らは互いを探し出して、武器で互いと戦う。2人のアバターのうち1人のみが生き残る。
【0003】
しかしながら、世界中で何百万人ものプレーヤーがゲームをプレイしているゲームのプレイ中に、ネットワークトラフィックが増加する。
【発明の概要】
【0004】
本開示の実施形態は、対戦マッチのための人工知能(AI)モデルを訓練するためのシステム及び方法を提供する。
【0005】
本開示の他の態様は、本開示に記載の実施形態の原理の例として示す添付図面と併せて、下記の詳細な説明から明らかになろう。
【0006】
本開示に記載のシステム及び方法は、プレーヤーが他のユーザの人工知能(AI)モデルとの試合をセットアップすることを可能にする。たとえば、人工知能モデルが、プレーヤーまたはユーザのゲームスキルに一致するように時間の経過と共に構築され、他の人工知能モデルが、他のプレーヤーまたはユーザのために構築される。ユーザは、自身の人工知能モデルが、自身のフレンドの人工知能モデルを倒すことができるか否かを確かめたい場合があり、そしてユーザ及びそのフレンドは、人工知能モデルを表す仮想キャラクター同士が対戦するのを観戦する。これにより、ユーザらがセットアップして受動的に観戦するカスタムマッチが提供される。
【0007】
一実施形態では、ゲームのキャラクターを訓練するための方法を説明する。この方法は、ゲームの1つまたは複数のシーンの表示を容易にすることを含む。1つまたは複数のシーンは、キャラクター及び仮想オブジェクトを含む。この方法は、仮想オブジェクトとインタラクションを行うようにユーザによってキャラクターを操作するための入力データを受信することと、1つまたは複数のシーンにおけるキャラクターのインタラクションパターンを識別するために入力データを分析することと、をさらに含む。インタラクションパターンは、ユーザのユーザアカウントに関連付けられたAIモデルを訓練するための入力を定義する。この方法は、AIモデルに基づいてキャラクターが新しいシーンとインタラクションを行うことを可能にすることを含む。この方法は、AIモデルの追加の訓練を実行するためにキャラクターによる新しいシーンとのインタラクションを追跡することを含む。
【0008】
一実施形態では、ゲームのキャラクターを訓練するためのサーバを説明する。このサーバは、ゲームの1つまたは複数のシーンの表示を容易にするように構成されるプロセッサ含む。1つまたは複数のシーンは、キャラクター及び仮想オブジェクトを含む。プロセッサは、仮想オブジェクトとインタラクションを行うようにユーザによってキャラクターを操作するための入力データを受信し、1つまたは複数のシーンにおけるキャラクターのインタラクションパターンを識別するために入力データを分析する。インタラクションパターンは、ユーザのユーザアカウントに関連付けられたAIモデルを訓練するための入力を定義する。プロセッサは、AIモデルに基づいてキャラクターが新しいシーンとインタラクションを行うことを可能にする。キャラクターはAIモデルに従って新しいシーンとインタラクションを行う。プロセッサは、AIモデルの追加の訓練を実行するためにキャラクターによる新しいシーンとのインタラクションを追跡する。サーバは、プロセッサに結合されたメモリデバイスを含み、メモリデバイスは、AIモデルを記憶するように構成される。
【0009】
一実施形態では、プログラム命令を含むコンピュータ可読媒体を説明する。コンピュータシステムの1つまたは複数のプロセッサによるプログラム命令の実行は、1つまたは複数のプロセッサに複数の動作を行わせ、複数の動作は、ゲームの1つまたは複数のシーンの表示を容易にすることを含む。1つまたは複数のシーンは、キャラクター及び仮想オブジェクトを含む。複数の動作は、仮想オブジェクトとインタラクションを行うようにユーザによってキャラクターを操作するための入力データを受信することと、1つまたは複数のシーンにおけるキャラクターのインタラクションパターンを識別するために入力データを分析することと、をさらに含む。インタラクションパターンは、ユーザのユーザアカウントに関連付けられたAIモデルを訓練するための入力を定義する。複数の動作は、AIモデルに基づいてキャラクターが新しいシーンとインタラクションを行うことを可能にすることを含む。複数の動作は、AIモデルの追加の訓練を実行するためにキャラクターによる新しいシーンとのインタラクションを追跡することを含む。
【0010】
本明細書に記載のシステム及び方法のいくつかの利点には、ゲームのプレイ中にユーザによって実行されるアクションが監視されて、人工知能モデルがそれらのアクションから学習できるようになることが含まれる。また、人工知能モデルは、ゲームのゲームプログラムの実行中に自己学習し、ゲームプログラムの実行中に他の人工知能モデルから学習し、ゲームの新しいシーンから学習する。人工知能モデルによるこれらのタイプの学習により、ハンドヘルドコントローラ、ヘッドマウントディスプレイ、またはコンピューティングデバイスなどのクライアントデバイスと1つまたは複数のサーバとの間でゲームのプレイ中に転送される入力データの量が削減されると同時に、より良いゲーム体験がユーザに提供される。入力データの量を削減することにより、クライアントデバイスと1つまたは複数のサーバとの間で転送されるネットワークトラフィックの量が削減される。ネットワークトラフィックの量が削減されると、クライアントと1つまたは複数のサーバとの間のネットワークデータの転送速度が向上する。そのため、人工知能モデルが訓練されるとき、コンピュータネットワークを介して転送される入力データが削減されて、ネットワーク遅延が短縮される。
【0011】
また、入力データの生成は、ゲームプログラムの実行中に人工知能モデルを使用するよりも予測が困難である。たとえば、人間のユーザは、ハンドヘルドコントローラのボタンを選択したり、ジェスチャを行ったり、ゲームプレイ中に休憩したりするのに長い時間がかかり得る。これにより、入力データの生成及びクライアントデバイスから1つまたは複数のサーバへの転送は、予測が困難になる。そのため、1つまたは複数のサーバあるいはコンピュータネットワークによるネットワークトラフィックの管理は、予測が困難になる。人工知能モデルを使用すると、人的要因はあまり重要でなくなり、ネットワークトラフィックの予測可能性が高まって、より優れたネットワークトラフィック管理が実現される。
【0012】
本開示の様々な実施形態は、添付図面と併せて、以下の説明を参照することによって、最も良く理解される。
【図面の簡単な説明】
【0013】
図1A-1】人工知能(AI)の訓練を説明するためのシステムの一実施形態の図である。
図1A-2】ユーザによるAIモデルの訓練を説明するための他のシステムの一実施形態の図である。
図1B】ユーザによる人工知能モデルの訓練を説明するための一実施形態の図である。
図2】他の人工知能モデルによる人工知能モデルの訓練を説明するための仮想シーンの一実施形態の図である。
図3-1】人工知能モデルが自身を訓練することについて説明するための仮想シーンの実施形態の図である。
図3-2】1つまたは複数のインタラクションパターンから学習した人工知能モデルが、他の1つまたは複数のインタラクションパターンから学習したAIモデルと比較してより良い成果または結果をもたらすと判断するための人工知能モデルによる分析を説明するための一実施形態の図である。
図4】新しい仮想シーンを使用して人工知能モデルを訓練することについて説明するための、新しい仮想シーンの一実施形態の図である。
図5A】人工知能モデルがゲームの対戦中に任意のスキルレベルを適用できることについて説明するための一実施形態の図である。
図5B】ゲームプログラムの実行中にキャラクターが他のキャラクターと対戦している仮想シーンの一実施形態の図である。
図5C】ユーザがキャラクターを操作することなくキャラクター間の対戦を観戦することについて説明するための仮想シーンの一実施形態である。
図6】他のユーザがゲームをプレイすることができず、代わりに人工知能モデルがユーザと一緒にゲームをプレイすることができることをユーザに示すための、ヘッドマウントディスプレイ(HMD)のディスプレイデバイスに表示される通知を説明するためのシステムの一実施形態の図であり。
図7】複数の人工知能モデルからの人工知能モデルの選択を説明するための一実施形態の図である。
図8A】ゲームプログラムの実行中にユーザによって実行されたジェスチャをキャプチャして、人工知能モデルがジェスチャをキャラクターに適用できるようにすることについて説明するためのシステムの一実施形態の図である。
図8B】ゲームのプレイ中にユーザによって実行されたアクションまたはジェスチャと同様のアクションをキャラクターが実行することを示す、HMD上に表示される仮想シーンの一実施形態の図である。
【発明を実施するための形態】
【0014】
対戦マッチのための人工知能(AI)モデルを訓練するためのシステム及び方法を説明する。本開示の様々な実施形態は、これらの特定の詳細の一部または全部がなくとも実施されることに留意されたい。他の例では、本開示の様々な実施形態を不必要にわかりにくくすることを避けるために、よく知られている処理動作については詳述していない。
【0015】
図1A-1は、人工知能モデルAI1Aを説明するためのシステム10の一実施形態の図である。システム10は、仮想シーン12、他の仮想シーン14、AIモデルAI1A、及び他の仮想シーン16を含む。図1A-1に示す仮想シーン12、14、及び16は、ビデオゲームまたはインタラクティブゲームのプレイ中に、ヘッドマウントディスプレイ、または他のディスプレイデバイス、たとえば、テレビ、コンピュータ、スマートフォン、もしくはタブレットなどに表示される。仮想シーン12では、キャラクターC1は他のキャラクターCAに向かって武器を振るっている。キャラクターC1は、キャラクターCAを仮想的にキルするためにパターン26でキャラクターCAに向かって動く。
【0016】
同様に、仮想シーン14では、キャラクターC1は仮想的な山の上に登り、仮想的な山の反対側にある仮想的な水に飛び込む。キャラクターC1は、動きのパターン28に従って、仮想的な山の上に登り、仮想的な水に飛び込む。
【0017】
AIモデルAI1Aは、パターン26をAI入力18として、パターン28をAI入力20として受け取り、パターン26及び28から学習してAI出力22を生成し、これが学習した方法となる。AI出力22は、AIモデルAI1Aによって仮想シーン16にAI入力として適用される。たとえば、仮想シーン16内で仮想的な武器を持たないキャラクターC1は、AIモデルAI1Aによって操作されて、仮想シーン16の仮想的な山の上に登るが、飛び込みはしない。キャラクターC1は仮想的な山を下りてキャラクターCAに出くわし、素手でキャラクターCAと戦う。仮想シーン16では、仮想的な水はないが、仮想的な山があり、仮想的な山の反対側にキャラクターCAがいる。
【0018】
キャラクターC1を介して仮想シーン16とインタラクションを行っている間に、AIモデルAI1Aは、キャラクターC1が仮想シーン16の仮想的な山を登って素手でキャラクターCAを打ち負かしたとき、キャラクターC1が仮想的な山を登るがキャラクターCAを打ち負かさないときと比較して、またはキャラクターC1が仮想的な山を登らずに仮想シーン16の他の場所に行くときと比較して、仮想コイン数またはゲームポイント数などのゲームレベルが上昇すると判断する。ゲームレベルに関する判断に基づいて、AIモデルAI1Aは、たとえば、仮想的な山を登って素手でキャラクターCAと戦うなどのインタラクションパターン24を学習する。AIモデルAI1Aは、インタラクションパターン24を自身に適用して、ビデオゲームまたはインタラクティブゲームの他のインスタンスのために、そのインタラクションパターンから学習または訓練する。
【0019】
図1A-2は、ユーザAがゲームのプレイ中に反応するのと同一または類似の方法で人工知能モデルAI1Aが反応するような、ユーザAによるAIモデルAI1Aの訓練を説明するためのシステム100の一実施形態の図である。一例として、本明細書に記載の人工知能モデルは、ニューラルノードのニューラルネットワークである。各ニューラルノードは、サーバまたはプロセッサであり得る。ニューラルノードは、接続を介して相互に結合される。たとえば、2つの隣接するニューラルノードは、接続を介して相互に接続される。他の例として、2つのサーバノードがネットワークケーブルを介して相互に結合され、または2つのプロセッサがケーブルを介して相互に接続される。AI入力がニューラルネットワークに供給され、AI出力が生成される。システム100は、複数のサーバA、B、及びCを含む。また、システム100は、コンピュータネットワーク102及びコンピューティングデバイス104を含む。また、システム100は、ヘッドマウントディスプレイ(HMD)106及びハンドヘルドコントローラ108を含む。
【0020】
本明細書で使用する場合、サーバは、1つまたは複数のプロセッサ、及び1つまたは複数のメモリデバイスを含む。たとえば、サーバ1は、プロセッサ118及びメモリデバイス120を含む。プロセッサ118はメモリデバイス120に結合される。サーバA、B、及びCのうちの1つまたは複数のサーバの1つまたは複数のメモリデバイスは、本明細書に記載の1つまたは複数のAIモデルを記憶する。プロセッサの例には、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、マイクロプロセッサ、及び中央処理装置が含まれる。メモリデバイスの例には、読み取り専用メモリデバイス(ROM)及びランダムアクセスメモリデバイス(RAM)が含まれる。例示すると、メモリデバイスは、不揮発性メモリデバイスまたは揮発性メモリデバイスである。メモリデバイスの例には、独立ディスク冗長アレイ(RAID)及びフラッシュメモリが含まれる。本明細書に記載のハンドヘルドコントローラの例には、PlayStation Move(登録商標)コントローラ、ジョイスティック、銃型コントローラ、及び剣型コントローラが含まれる。
【0021】
コンピュータネットワーク102は、インターネットなどの広域ネットワーク、またはローカルエリアネットワーク、あるいはそれらの組み合わせである。本明細書に記載のコンピューティングデバイスの例には、ゲームコンソール、またはコンピュータ、たとえば、デスクトップもしくはラップトップ、あるいはスマートフォンが含まれる。HMD106は、有線または無線接続を介してコンピューティングデバイス104に結合され、ハンドヘルドコントローラ108は、有線または無線接続を介してコンピューティングデバイス104またはHMD106に結合される。本明細書で使用する、ハンドヘルドコントローラ及びコンピューティングデバイスの間、HMD及びコンピューティングデバイスの間、またはカメラ及びコンピューティングデバイスの間の有線接続の例には、同軸ケーブル接続またはユニバーサルシリアルバス(USB)ケーブル接続が含まれる。本明細書で使用する、ハンドヘルドコントローラ及びコンピューティングデバイスの間、HMD及びコンピューティングデバイスの間、HMD及びハンドヘルドコントローラの間、またはカメラ及びコンピューティングデバイスの間の無線接続の例には、Wi-Fi(登録商標)接続、Bluetooth(登録商標)接続、または短距離無線接続が含まれる。コンピューティングデバイス104は、コンピュータネットワーク102を介してサーバA、B、及びCに結合される。
【0022】
ユーザAは、ユーザAに割り当てられたユーザアカウント1にログインして、ゲームのゲームセッションにアクセスする。たとえば、ユーザAがユーザアカウント1にログインすることを許可するために、サーバA、B、及びCのうちの1つまたは複数によってユーザ識別情報(ID)が認証される。ユーザアカウントに関するデータは、1つまたは複数のサーバA、B、及びCの1つまたは複数のメモリデバイスに記憶される。たとえば、ユーザアカウント1のユーザIDは、メモリデバイス120に記憶され、他のユーザアカウント2のユーザIDは、メモリデバイス120に記憶され、他のユーザアカウント3のユーザIDは、メモリデバイス120に記憶される。ユーザアカウント2は他のユーザBに割り当てられ、ユーザアカウント3はさらに他のユーザCに割り当てられる。ユーザアカウント1にログインした後、ゲームセッション中に、サーバA、B、及びCのうちの1つまたは複数によって、たとえば、プロセッサ118によって、ゲームプログラムが実行されて、クラウドゲームが提供される。サーバA、B、及びCのうちの1つまたは複数によってゲームプログラムが実行されたとき、サーバA、B、及びCのうちの1つまたは複数によって仮想シーンを表示するための1つまたは複数の画像フレームが生成される。本明細書で使用する仮想シーンの一例には、仮想現実(VR)シーンが含まれる。
【0023】
画像フレームは、コンピュータネットワーク102及びコンピューティングデバイス104を介してサーバA、B、及びCのうちの1つまたは複数からHMD106に送信されて、HMD106のディスプレイデバイス上に仮想シーンが表示される。ディスプレイデバイスの例には、液晶ディスプレイ(LCD)及び発光ダイオードディスプレイ(LED)が含まれる。
【0024】
仮想シーンを見ると、ユーザAは、ハンドヘルドコントローラ108を操作して、ハンドヘルドコントローラ108上の1つまたは複数のボタンを選択し、及び/またはハンドヘルドコントローラ108上の1つまたは複数のジョイスティックを動かす。ハンドヘルドコントローラ108はユーザAによって操作されて、入力データ116が生成される。
【0025】
入力データ116は、ハンドヘルドコントローラ108から、有線または無線接続を介してコンピューティングデバイス104に送信される。コンピューティングデバイス104は、インターネットプロトコルまたは伝送制御プロトコル(TCP)/IPプロトコルなどのネットワーク通信プロトコルを適用して入力データをパケット化することによって1つまたは複数のパケットを生成し、コンピュータネットワーク102を介してサーバA、B、及びCのうちの1つまたは複数に1つまたは複数のパケットを送信する。サーバA、B、及びCのうちの1つまたは複数は、ネットワーク通信プロトコルを適用してパケットから入力データ116を取得する。サーバA、B、及びCのうちの1つまたは複数は、ゲームプログラムを実行して入力データ116を分析することによって、人工知能モデルAI1Aを表すキャラクターC1が、仮想シーン110内の他の仮想オブジェクト114ではなく仮想オブジェクト112を撃っている仮想シーン110の1つまたは複数の画像フレームを生成する。たとえば、ユーザAがハンドヘルドコントローラ108を使用して入力データ116を生成したとき、サーバA、B、及びCのうちの1つまたは複数は、人工知能モデルAI1Aを表すキャラクターC1が、仮想シーン110内で仮想オブジェクト114を撃つ前に仮想オブジェクト112を撃つと判断して、仮想シーン110を表示するための1つまたは複数の画像フレームを生成する。
【0026】
仮想オブジェクトの例には、仮想キャラクター、ゲームキャラクター、仮想武器、仮想車両、仮想航空機、仮想箱、仮想気球、及びユーザを表すアバターが含まれる。人工知能モデルAI1Aによって操作されるとき、キャラクターC1はノンプレイヤーキャラクター(NPC)である。仮想オブジェクト112は、仮想パラシュートを使用しており、仮想シーン110内の地面に着地しようとしているキャラクターである。また、仮想オブジェクト114は、キャラクターC1を撃とうとしているキャラクターである。人工知能モデルAI1Aは、サーバA、B、及びCのうちの1つまたは複数によってユーザアカウント1に関連付けられ、たとえば、マッピングまたはリンクされる。同様に、他の人工知能モデルAI2が、サーバA、B、及びCのうちの1つまたは複数によってユーザアカウント2に関連付けられ、さらに他の人工知能モデルAI3が、サーバA、B、及びCのうちの1つまたは複数によってユーザアカウント3に関連付けられる。
【0027】
サーバA、B、及びCのうちの1つまたは複数は、入力データ116を分析して、入力データ116に関連するキャラクターC1の1つまたは複数のインタラクションパターン119を特定または識別する。一例として、特定または識別された1つまたは複数のインタラクションパターン119は、仮想シーン110において、キャラクターC1が仮想オブジェクト114を撃つ前に仮想オブジェクト112を撃つことを示す。ユーザAがハンドヘルドコントローラ108のジョイスティックを使用して仮想オブジェクト112に照準を合わせ、仮想オブジェクト112を撃つためにハンドヘルドコントローラ108上のボタンを選択したときに、キャラクターC1は仮想オブジェクト112を撃つ。仮想シーン110において、人工知能モデルAI1Aを表すキャラクターC1は、着地しようとしている仮想オブジェクト112に遭遇しており、また、キャラクターC1を撃とうとしている他の仮想オブジェクト114に遭遇する。さらに他の例として、特定された1つまたは複数のインタラクションパターン119は、キャラクターC1が、飛んでいる仮想オブジェクトに遭遇し、また、キャラクターC1を撃とうとしている他の仮想オブジェクトに遭遇する仮想シーンのインスタンスの大部分では、キャラクターC1が他の仮想オブジェクトを撃つ前に飛んでいる仮想オブジェクトを撃つ可能性が高いことを示す。
【0028】
サーバA、B、及びCのうちの1つまたは複数は、1つまたは複数のインタラクションパターン119を、人工知能モデルAI1Aを訓練するための訓練プログラムとして、1つまたは複数のサーバA、B、及びCの1つまたは複数のメモリデバイスに記憶する。たとえば、1つまたは複数のインタラクションパターン119は、人工知能モデルAI1Aが1つまたは複数のインタラクションパターン119から学習することを可能にするために、人工知能モデルAI1Aへの入力として提供され、学習された方法または動作は、人工知能モデルAI1Aによって、仮想シーン110とは異なる新しい仮想シーンに適用される。新しい仮想シーンは、サーバA、B、及びCのうちの1つまたは複数がゲームプログラムを実行することによって生成される画像フレームから表示される。学習された方法または動作は、仮想シーン110と同一または類似の仮想シーンにも適用され得る。
【0029】
サーバA、B、及びCのうちの1つまたは複数は、ネットワーク通信プロトコルを適用して、キャラクターC1が仮想オブジェクト114ではなく仮想オブジェクト112を撃つ仮想シーン110の1つまたは複数の画像フレームをパケット化することによって、1つまたは複数のパケットを生成し、コンピュータネットワーク102を介してコンピューティングデバイス104にパケットを送信する。コンピューティングデバイス104は、ネットワーク通信プロトコルを適用して1つまたは複数のパケットをデパケット化することによって1つまたは複数の画像フレームを取得し、1つまたは複数の画像フレームを有線または無線接続を介してHMD106に送信することによって、射撃を示す仮想シーン110をHMD106のディスプレイデバイス上に表示する。
【0030】
一実施形態では、サーバA、B、及びCのうちの1つまたは複数は、1つまたは複数のインタラクションパターン119を、キャラクターC1、仮想オブジェクト112、及び仮想オブジェクト114を有する仮想シーン110に関連付け、あるいは、ある仮想オブジェクトが飛んでおり、他の仮想オブジェクトが仮想地面に着地しようとしている、仮想シーン110に類似した他の仮想シーンに関連付ける。たとえば、サーバA、B、及びCのうちの1つまたは複数は、1つまたは複数のインタラクションパターン119の識別子を生成し、1つまたは複数のインタラクションパターン119の識別子と、仮想シーン110の識別子との間のマッピング、たとえば、1対1の対応またはリンクなどを確立する。マッピングは、サーバA、B、及びCのうちの1つまたは複数のサーバの1つまたは複数のメモリデバイス内に記憶され、人工知能モデルAI1Aが自身の訓練用にアクセスできるようになる。
【0031】
一実施形態では、HMD106は、無線ネットワークインターフェースコントローラ(WNIC)を介してコンピュータネットワーク102と通信し、HMD106がコンピュータネットワーク102と通信するためにコンピューティングデバイス104は必要ない。
【0032】
一実施形態では、本明細書に記載のHMDまたはコンピューティングデバイスは、第5世代(5G)ネットワークプロトコルを使用して、コンピュータネットワーク102を介してサーバA、B、及びCのうちの1つまたは複数と通信する。前世代の第2世代(2G)、第3世代(3G)、及び第4世代(4G)のモバイルネットワークと同様に、5Gネットワークは、プロバイダによってカバーされるサービスエリアが、セルと呼ばれる小さな地理的エリアの寄せ集めへと分割されたデジタルセルラーネットワークである。音及び画像を表すアナログ信号は、コンピューティングデバイスまたはHMD内のアナログ/デジタルコンバータにより変換されることによって、コンピューティングデバイスまたはHMD内でデジタル化され、コンピュータネットワーク102を介してサーバA、B、及びCのうちの1つまたは複数にビットのストリームとして送信される。セル内のコンピュータまたはHMDを含む全ての5G無線デバイスは、ローカルアンテナアレイ及びセル内の低電力自動送受信器との電波による通信を、低電力自動送受信器によって地理的に離れたセルで再利用される周波数の共通プールから割り当てられた周波数チャネル上で行う送受信器を有する。ローカルアンテナは、高帯域幅光ファイバまたは無線バックホール接続によって、電話網及びコンピュータネットワーク102に接続される。ユーザがあるセルから他のセルに移ったとき、HMDまたはコンピューティングデバイスは新しいセルのアンテナに自動的にシームレスにハンドオフされる。利点は、5Gネットワークが以前のセルラーネットワークよりもはるかに高いデータレートを実現することであり、5Gネットワークは最大で10Gbit/sを実現し、4Gロングタームエボリューション(LTE)セルラーテクノロジーよりも100倍高速である。
【0033】
一実施形態では、スマートフォンなどのコンピューティングデバイス104は、HMD106の一部である。たとえば、コンピューティングデバイス104のディスプレイデバイスは、HMD106のディスプレイデバイスとして使用される。
【0034】
一実施形態では、ゲームはHMD106の代わりに、コンピューティングデバイス104上に表示され、または無線もしくは有線接続を介してコンピューティングデバイス104に結合されたテレビに表示される。
【0035】
一実施形態では、ハンドヘルドコントローラの代わりに、1つまたは複数のグローブコントローラ、あるいは1つまたは複数のリングコントローラが使用され、またはコントローラは使用されない。たとえば、グローブコントローラはユーザの手に装着され、リングコントローラはユーザの手の指に装着される。コントローラが使用されないとき、ユーザは自身の身体の1つまたは複数の部分のジェスチャを行い、ジェスチャはカメラなどの画像キャプチャデバイスによってキャプチャされる。カメラの例には、深度カメラ、ビデオカメラ、及びデジタルカメラが含まれる。画像キャプチャデバイスは、ユーザがいる部屋、倉庫、建物、または家など、同じ現実世界の環境に配置される。カメラは、有線または無線接続を介してコンピューティングデバイスに結合されて、ジェスチャを識別するジェスチャデータを含む入力データを、コンピューティングデバイス及びコンピュータネットワーク102を介してサーバA、B、及びCに伝達する。コンピューティングデバイスが使用されない実施形態では、カメラは、サーバA、B、及びCと通信するために、ネットワークインターフェースカード(NIC)または無線ネットワークインターフェースカードなどのネットワークインターフェースコントローラを含む。
【0036】
一実施形態では、HMDは、ユーザの手によって行われたジェスチャをキャプチャしてジェスチャデータを出力する1つまたは複数のカメラを含む。
【0037】
一実施形態では、サーバA、B、及びCのうちの1つまたは複数によって実行される本明細書に記載の動作は、サーバのうちの1つまたは複数の中の1つまたは複数のプロセッサによって実行される。
【0038】
一実施形態では、本明細書に記載の人工知能モデルAI1A、AI2、及びAI3などの全ての人工知能モデルは、サーバA、B、及びCのうちの1つまたは複数によって実行される。たとえば、各サーバは、人工知能モデルのノードである。他の例として、2つ以上のサーバが人工知能モデルのノードを形成する。任意の2つのサーバ間の接続は、人工知能モデルの任意の2つのノード間の接続である。一実施形態では、本明細書に記載の人工知能は、サーバA、B、及びCのうちの1つまたは複数と、サーバA、B、及びCのうちの1つまたは複数によって実行されるコンピュータ動作との組み合わせである。一実施形態では、本明細書に記載の人工知能モデルは、1つまたは複数のインタラクションパターンから学習し、人工知能モデルの学習した動作は、サーバA、B、及びCのうちの1つまたは複数によって適用されて、結果が得られる。
【0039】
仮想シーン110に関して本明細書に記載した全ての動作は、HMD106上に表示される複数の仮想シーンに等しく適用されることに留意されたい。
【0040】
図1Bは、人工知能モデルAI1Aの訓練を説明するための一実施形態の図である。サーバA、B、及びCのうちの1つまたは複数は、入力データ116を分析して、入力データ116に関連付けられた機能(function)、たとえば、f1、f2、f3~fnなどを識別する。たとえば、入力データ116を分析して、ハンドヘルドコントローラ108の×とラベル付けされたボタンがユーザAによって選択された、もしくはジョイスティックがユーザAによって上方向に動かされた、またはユーザがハンドヘルドコントローラ108のタッチスクリーン上で指をスライドさせた、もしくはジェスチャがユーザAによって行われたと判断する。入力データ116に関連付けられた機能の例には、ユーザAによって操作されるハンドヘルドコントローラ108のボタンの選択、タッチスクリーン上の指の動き、またはジョイスティックの指向運動もしくは回転運動が含まれる。さらに例示すると、入力データ116に関連付けられた機能の例には、ハンドヘルドコントローラ108のボタンの選択、ハンドヘルドコントローラ108のジョイスティックのある方向への動き、ユーザAによって行われる照準ジェスチャ、ユーザAによって行われる射撃ジェスチャなどが含まれる。
【0041】
入力データ116に関連付けられた各機能f1~fnは、ユーザAによって実行される異なる機能または異なるジェスチャである。たとえば、機能f1は、ハンドヘルドコントローラ108の「○」とマークされたボタンの選択であり、機能f2は、ハンドヘルドコントローラ108の「×」とマークされた他のボタンの選択である。他の例として、機能f1は、ユーザAの左手の人差し指によって実行される照準ジェスチャであり、機能f2は、ユーザの左手の人差し指及び中指によって実行される射撃ジェスチャである。
【0042】
入力データ116に関連付けられた機能及び仮想シーン110に基づいて、サーバA、B、及びCのうちの1つまたは複数は、仮想シーン110の特徴(feature)、たとえば、fe1、fe2~fenなどを決定し、特徴を分類して分類子(classifier)、たとえば、Cl1、Cl2、Cl3~Clnなどを出力する。仮想シーン110の特徴の一例は、動いて射撃しているキャラクターC1である。仮想シーン110の特徴の他の例は、仮想空中を仮想パラシュートで飛んでいる仮想オブジェクト112である。仮想シーン110の特徴のさらに他の例は、仮想銃を保持している仮想オブジェクト114である。分類子の一例には、ハンドヘルドコントローラ108の操作に基づいて、またはユーザAによって行われた1つまたは複数のジェスチャに基づいてキャラクターC1によって実行される機能、動き、動作、またはそれらの組み合わせが含まれる。例示すると、分類子の例には、キャラクターC1が仮想オブジェクト112を撃ったこと、ゲームの宝箱を開けたこと、ゲームの仮想建物に着地したこと、またはゲーム内で仮想航空機を撃ったことが含まれる。さらに例示すると、分類子Cl2の一例は、キャラクターC1が仮想オブジェクト112に向かって動くことである。分類子Cl3の一例は、キャラクターC1が仮想オブジェクト112を撃ったことである。分類子Cl4の一例は、キャラクターC1が仮想オブジェクト114を撃たなかったことであり、分類子Clnの一例は、仮想オブジェクト114が仮想オブジェクト112を撃った後に仮想オブジェクト114を撃ったことである。各分類子は、仮想シーン110に存在するときにキャラクターC1によって実行される動きまたは動作を識別する。各分類子Cl1~Clnは、仮想シーン110内でキャラクターC1によって実行される異なる機能もしくは動きまたはそれらの組み合わせに対応する。たとえば、仮想シーン110において、分類子Cl1は射撃機能であり、分類子Cl2はジャンプ機能である。
【0043】
分類子は、人工知能モデルAI1Aを訓練するために、サーバA、B、及びCのうちの1つまたは複数によって人工知能モデルAI1AにAI入力として提供される。たとえば、プロセッサ118は、仮想シーン110の分類子内の1つまたは複数のインタラクションパターン119を識別する。例示すると、1つまたは複数のインタラクションパターン119から、仮想オブジェクト112がキャラクターC1に向かって飛んでおり、仮想オブジェクト114がキャラクターC1を撃とうとしている仮想シーン110にキャラクターC1が置かれたときに、キャラクターC1が仮想オブジェクト114を撃つのではなく仮想オブジェクト112を撃つと判断すると、サーバA、B、及びCのうちの1つまたは複数は、ゲームプログラムの他の実行インスタンスにおいてキャラクターC1が同一の状況または類似した状況に直面したときに、キャラクターC1が、地上の他の仮想オブジェクトを撃つのではなく、飛んでいる仮想オブジェクトを先に撃つまたは撃とうとする可能性が、そうでないときよりも高いと判断するようにAIモデルAI1Aを訓練する。類似した状況の一例は、仮想オブジェクトがキャラクターC1に向かって飛んでおり、他の仮想オブジェクトが地上でキャラクターC1を撃つ準備ができている状況である。類似した状況の他の例は、仮想オブジェクトの過半数などの所定数が、仮想シーン110内で仮想オブジェクト112及び114によって実行される機能と同一の機能を実行している状況である。他の例として、プロセッサ118は、キャラクターC1に向かって飛んでいる仮想航空機、またはキャラクターC1を撃とうとしている地上の仮想武器にキャラクターC1が遭遇しているゲームのインスタンスがキャラクターC1に提示されたときに、キャラクターC1がキャラクターC1に向かって飛んでいる仮想航空機を撃つ可能性が、そうでないときよりも高いと判断するようにAIモデルAI1Aを訓練する。さらに他の例では、プロセッサ118は、仮想オブジェクトがキャラクターC1に向かって飛んでいる入力と、他の仮想オブジェクトがキャラクターC1を撃とうとしている入力とが与えられた場合に、キャラクターC1が、他の仮想オブジェクトを撃つ前に、キャラクターC1に向かって飛んでいる仮想オブジェクトを先に撃つという出力になる可能性が、そうでない場合よりも高いと判断するように、AIモデルAI1Aのニューラルネットワークを訓練する。他の例として、サーバA、B、及びCのうちの1つまたは複数は、仮想オブジェクトが飛んでいない、またはキャラクターC1を撃とうとしていない異なる仮想シーンまたは新しい仮想シーンが与えられた場合に、キャラクターC1が仮想オブジェクトのいずれも撃たず、それらの前で踊ったり、それらと仮想武器を交換したりすると判断するように、分類子を使用してAIモデルAI1Aを訓練する。異なる仮想シーンまたは新しい仮想シーンの一例は、仮想オブジェクトの過半数などの所定数が、仮想シーン110で実行される機能とは異なる機能を実行している仮想シーンである。例示すると、新しい仮想シーンまたは異なる仮想シーンの仮想オブジェクトは、木を集めているか踊っていて、キャラクターC1に照準を合わせた仮想武器を有していない。
【0044】
識別された1つまたは複数のインタラクションパターン119は、サーバA、B、及びCのうちの1つまたは複数によってAIモデルAI1AにAI入力として適用される。たとえば、AIモデルAI1Aは、プロセッサ118またはサーバA、B、及びCのうちの1つまたは複数によって実行されるコンピュータ動作のセットである。コンピュータ動作のセットは、人間のユーザによって書かれたりコード化されたりするものではなく、AIモデルAI1Aによって、仮想シーンから、他のAIモデルから、ユーザによってハンドヘルドコントローラもしくはジェスチャを介して実行される操作から、対戦から、またはそれらの組み合わせから学習される。
【0045】
図2は、人工知能モデルAI2による人工知能モデルAI1Aの訓練を説明するための仮想シーン202の一実施形態の図である。仮想シーン202は、ゲームのプレイ中にサーバA、B、及びCのうちの1つまたは複数によって仮想シーン110が生成されるのと同様の方法で生成される。たとえば、仮想シーン110を表示するための画像フレームが、サーバA、B、及びCのうちの1つまたは複数によって生成され、コンピュータネットワーク102及びコンピューティングデバイス104を介してHMD106に送信され、HMD106上に仮想シーン202が表示される。ただし、人工知能モデルAI1Aが人工知能モデルAI2から学習するために、仮想シーン202を表示したり、仮想シーン202に関する画像フレームを生成したりする必要はない。
【0046】
人工知能モデルAI1Aは、自身を人工知能モデルAI2に基づいて訓練する許諾を人工知能モデルAI2に要求する。たとえば、プロセッサ118は、人工知能モデルAI1Aを実行して許諾の要求を生成し、ユーザアカウント2を介して要求を人工知能モデルAI2に送信する。ユーザアカウント2を介して許諾の要求を受信すると、サーバA、B、及びCのうちの1つまたは複数は、要求が承諾されるか否かを判定する。たとえば、ユーザBは、ハンドヘルドコントローラを使用して、人工知能モデルAI2に他のユーザへのアクセス権が付与されないこと、選択したユーザグループへのアクセス権が付与されること、プライベートユーザグループへのアクセス権が付与されること、アクセスを要求する全てのユーザへのアクセス権が付与されること、またはユーザが人工アクセスモデルAI2へのアクセスを要求するか否かに関係なく全てのユーザへのアクセス権が付与されることを示すデータをサーバA、B、及びCのうちの1つまたは複数に送信する。人工知能モデルへのアクセスの指示に関するデータは、ユーザアカウント2に関連付けられ、たとえば、リンクまたはマッピングされる。人工知能モデルAI2は、ユーザアカウント2に関連付けられ、人工知能モデルAI1AがユーザAによって作成されるのと同様の方法で、ユーザBによって作成される。
【0047】
要求が承諾されると判定すると、人工知能モデルAI2の1つまたは複数の追加のパターン204または追加の分類子が、人工知能モデルAI2を実行するサーバA、B、及びCのうちの1つまたは複数から、人工知能モデルAI1Aを実行するサーバA、B、及びCのうちの1つまたは複数に送信される。人工知能モデルAI2を訓練するために使用される1つまたは複数の追加のパターン204はインタラクションパターンであり、人工知能モデルAI1Aの1つまたは複数のインタラクションパターン119及び他のインタラクションパターンがサーバA、B、及びCのうちの1つまたは複数によって作成されるのと同様の方法で、サーバA、B、及びCのうちの1つまたは複数によって作成される。1つまたは複数の追加のパターン204は、サーバA、B、及びCのうちの1つまたは複数によって、人工知能モデルAI2を訓練するために適用される。
【0048】
1つまたは複数の追加のパターン204を受信すると、サーバA、B、及びCのうちの1つまたは複数は、1つまたは複数の追加のパターン204を人工知能モデルAI1AにAI入力として提供して、1つまたは複数の追加のパターン204に基づいて人工知能モデルAI1Aを訓練する。人工知能モデルAI1Aは、1つまたは複数の追加のパターン204から学習する。たとえば、人工知能モデルAI1Aは、キャラクターC1に向かって飛んでいる仮想オブジェクト112を撃つようにキャラクターC1を操作する代わりに、仮想箱または仮想容器などの仮想オブジェクト206を、仮想オブジェクト206が仮想地面に着地した後に開けるようにキャラクターC1を操作するよう学習する。仮想オブジェクト206は、銃及び弾丸などの仮想武器、ならびに仮想薬及び包帯を含む。ユーザアカウント2に割り当てられた人工知能AI2によって操作されるキャラクターC2もまた、1つまたは複数の追加のパターン204を適用して、仮想オブジェクト206を開ける。仮想オブジェクト206は、図示のように、気球に取り付けられた箱である。人工知能モデルAI2によって操作されるとき、キャラクターC2はNPCである。
【0049】
一実施形態では、人工知能モデルAI2は、本明細書に記載の追加のタイプの訓練、たとえば、自己訓練、または他の人工知能モデルもしくは新しい仮想シーンからの訓練などを行う。
【0050】
一実施形態では、ゲーム内の一部のキャラクターはユーザによって操作され、ゲーム内の残りのキャラクターは、対応する人工知能モデルによって操作されるNPCである。
【0051】
図3-1は、人工知能モデルAI1Aが自身を訓練することについて説明するための仮想シーン110の実施形態の図である。たとえば、ユーザAがユーザアカウント1にログインしているか否かに関係なく、人工知能モデルAI1Aは、ユーザアカウント1に関連付けられたスキルレベルを上昇させるために、インタラクションパターンである1つまたは複数の他のパターン302から学習する。例示すると、ユーザAがユーザアカウント1からログアウトしているとき、人工知能モデルAI1Aは、ユーザアカウント1にログインし、プロセッサ118にゲームプログラムを実行するように要求する。ゲームプログラムが実行されたとき、人工知能モデルAI1Aは、キャラクターC1が仮想シーン110に置かれ、キャラクターC1が仮想オブジェクト112を撃つ前に仮想オブジェクト114を先に撃ったときに、ゲームのスキルレベル、たとえば、ゲームスコア、ゲームレベル、または仮想コイン数などが増加すると判断する。1つまたは複数の他のパターン302は、仮想オブジェクト112がキャラクターC1に向かって飛んでおり、仮想オブジェクト114がキャラクターC1を撃とうとしている仮想シーン110がキャラクターC1に提示されたときに、ユーザアカウント1に関連付けられたスキルレベルを上昇させるためには、キャラクターC1が仮想オブジェクト112を撃つ前に、仮想オブジェクト114を先に撃つべきであるということを示す。スキルレベルは、ユーザアカウント1に関連付けられた他のスキルレベルよりも上昇し、人工知能モデルAI1AのAI出力の一例である。他のスキルレベルは、図1A-2及び図1Bに関して示した1つまたは複数のインタラクションパターン119を適用することによる人工知能モデルAI1Aの訓練に対応する。人工知能モデルAI1Aは、AIモデルAI1Aへの入力であるAI入力として1つまたは複数の他のパターン302を適用することによって自身を訓練する。
【0052】
他の例として、ユーザAがユーザアカウント1にログインしており、仮想シーン110がHMD106のディスプレイデバイスに表示されているとき、ユーザAは、ハンドヘルドコントローラ108を操作して、仮想オブジェクト114を撃つのではなく仮想オブジェクト112を先に撃つ。人工知能モデルAI1Aは、機械学習を適用して、キャラクターC1が仮想オブジェクト112を撃つ前に仮想オブジェクト114を撃ったときに、ユーザアカウント1に関連付けられたスキルレベルが上昇すると判断することによって、1つまたは複数の他のパターン302から学習する。
【0053】
図3-2は、1つまたは複数の他のパターン302をAI入力として適用することにより、1つまたは複数のインタラクションパターン119をAI入力として適用することと比較してより良い成果または結果がもたらされると判断するための、人工知能モデルAI1Aによる分析を説明するための一実施形態の図である。人工知能モデルAI1Aが1つまたは複数のインタラクションパターン119を適用するように訓練されたとき、サーバA、B、及びCのうちの1つまたは複数がゲームプログラムを実行している間に、複数の出力O1、O2~Onが生成される。各出力O1、O2~Onの例には、ゲームプログラムの実行中に蓄積されたポイント数、ゲームプログラムの実行中に蓄積された仮想キャラクターキル数、及びキャラクターC1のヘルスレベルが含まれる。
【0054】
同様に、人工知能モデルAI1Aが1つまたは複数の他のパターン302を適用するように訓練されたとき、サーバA、B、及びCのうちの1つまたは複数がゲームプログラムを実行している間に複数の出力O11、O12からO11nが生成される。各出力O11、O12~O11nの例には、ゲームプログラムの実行中に蓄積されたポイント数、ゲームプログラムの実行中に蓄積された仮想キャラクターキル数、及びキャラクターC1のヘルスレベルが含まれる。人工知能モデルAI1Aは、ゲームプログラムの実行中に1つまたは複数の他のパターン302を適用して出力O11~O11nを得て、出力O11~O11nが、出力O1~Onに対応するスキルレベルよりも高いスキルレベルに対応すると判断することによって学習する。出力O11~O11nが、出力O1~Onに対応するスキルレベルよりも高いスキルレベルに対応すると判断すると、人工知能モデルAI1Aは、1つまたは複数のインタラクションパターン119の代わりに1つまたは複数の他のパターン302を適用することを決定する。
【0055】
ゲームプログラムの追加の実行インスタンス中に、人工知能モデルAI1Aは、インタラクションパターン119を適用する代わりに、1つまたは複数の他のパターン302を適用する。たとえば、ゲームプログラムの追加の実行インスタンス中に、仮想キャラクターがキャラクターC1を撃とうとしており、他の仮想キャラクターがキャラクターC1の前に着地しようとしている仮想シナリオがHMD106に表示されたとき、人工知能モデルAI1Aは、キャラクターC1を操作して、キャラクターC1を撃とうとしているキャラクターを先に撃ち、次いで着地しようとしている仮想キャラクターを撃つ。
【0056】
一実施形態では、人工知能モデルAI1Aは、本明細書に記載の1つまたは複数のインタラクションパターンを適用する前に、ユーザAに許諾を要求する。たとえば、仮想シーン110の表示中に、サーバA、B、及びCのうちの1つまたは複数は、許諾の要求を含む画像フレームを生成し、ネットワーク通信プロトコルを適用して画像フレームをパケット化することによって1つまたは複数のパケットを生成し、コンピュータネットワーク102を介してコンピューティングデバイス104にパケットを送信する。コンピューティングデバイス104は、ネットワーク通信プロトコルを適用してパケットをデパケット化することによって画像フレームを取得し、有線または無線接続を介して画像フレームをHMD106に送信して、許諾の要求を表示する。ユーザAは、ハンドヘルドコントローラ108を使用して、要求を承諾するか拒否するかを指示する。要求が承諾されたという肯定指示を受信すると、肯定指示はコンピューティングデバイス104によってパケット化されて1つまたは複数のパケットが生成され、パケットはコンピュータネットワーク102によって1つまたは複数のサーバA、B、及びCに送信される。1つまたは複数のサーバA、B、及びCは、ネットワーク通信プロトコルをパケットに適用して肯定指示を取得し、肯定指示を人工知能モデルAI1Aに送信する。肯定指示を受信すると、人工知能モデルAI1Aは1つまたは複数のインタラクションパターンを適用する。
【0057】
一方、要求が拒否されたという否定指示を受信すると、否定指示はコンピューティングデバイス104によってパケット化されて1つまたは複数のパケットが生成され、パケットはコンピュータネットワーク102によって1つまたは複数のサーバA、B、及びCに送信される。1つまたは複数のサーバA、B、及びCは、ネットワーク通信プロトコルをパケットに適用して否定指示を取得し、否定指示を人工知能モデルAI1Aに送信する。否定指示を受信すると、人工知能モデルAI1Aは1つまたは複数のインタラクションパターンを適用しない。
【0058】
図4は、新しい仮想シーン400を使用して人工知能モデルAI1Aを訓練することについて説明するための、新しい仮想シーン400の一実施形態の図である。サーバA、B、及びCのうちの1つまたは複数がゲームプログラムを実行して1つまたは複数の画像フレームを生成し、ネットワーク通信プロトコルを適用して画像フレームをパケット化することによって1つまたは複数のパケットを生成したときに、新しい仮想シーン400が生成される。一例として、人工知能モデルAI1Aは、サーバA、B、及びCのうちの1つまたは複数に、ゲームプログラムを実行して、新しい仮想シーン400を表示するための1つまたは複数の画像フレームを生成するように要求する。パケットはサーバA、B、及びCのうちの1つまたは複数によって、コンピュータネットワーク102を介してコンピューティングデバイス104に送信される。コンピューティングデバイス104は、ネットワーク通信プロトコルを適用してパケットから画像フレームを抽出し、画像フレームをHMD106に送信して仮想シーン400を表示する。仮想シーン400は、キャラクターC1、仮想オブジェクト112、及び他の仮想オブジェクト402を含むが、仮想オブジェクト114を含まない。仮想オブジェクト402は、仮想オブジェクト404が着席してキャラクターC1を撃っている航空機である。仮想オブジェクト404は、仮想オブジェクト402の仮想銃を使用して、キャラクターC1を撃つ。仮想シーン400は、ゲームのプレイ中にユーザAに提示されていない。たとえば、ユーザAは、ゲームプログラムの実行中にあるレベルに到達しておらず、そのレベルは仮想オブジェクト402及び404を含む。
【0059】
1つまたは複数のインタラクションパターン119、1つまたは複数の追加のパターン204、1つまたは複数の他のパターン302、あるいはそれらの組み合わせなど、本明細書に記載の任意のインタラクションパターンから学習した人工知能モデルAI1Aは、その学習した動作を適用して、仮想オブジェクト112を撃つのではなく、仮想オブジェクト402または仮想オブジェクト404を先に撃つようにキャラクターC1を操作する。たとえば、人工知能モデルAI1Aは、仮想オブジェクト402及び404の1つまたは複数を先に撃つことによって、仮想オブジェクト112を先に撃つことにより達成されるスキルレベルと比較して、ユーザアカウント1に関連付けられたスキルレベルが上昇すると判断する。上昇するスキルレベルは、反応データ406の一例である。たとえば、上昇するスキルレベルには、ユーザアカウント1に対応する仮想コイン数、ユーザアカウント1に対応する仮想スコア、またはそれらの組み合わせが含まれる。
【0060】
反応データ406に基づいて、人工知能モデルAI1Aは、1つまたは複数の追加のインタラクションパターン408に従うことが、より高いスキルレベルを達成するのに役立つと判断または学習する。1つまたは複数の追加のインタラクションパターン408の一例には、仮想オブジェクト402または仮想オブジェクト404を先に撃ってから、仮想オブジェクト112を撃つことが含まれる。そのように判断すると、人工知能モデルAI1Aは、ゲームプログラムの次回以降の実行インスタンス中に1つまたは複数の追加のインタラクションパターン408を適用するように自身を訓練する。たとえば、仮想飛行体がキャラクターC1に接近しており、同時に仮想キャラクターが仮想地面に着地しようとしているゲームプログラムの実行インスタンスに直面したとき、人工知能モデルAI1AはキャラクターC1を操作して、仮想飛行体を先に撃ってから、現在仮想地面にいる仮想キャラクターを撃つ。
【0061】
人工知能モデルAI1Aに新しい仮想シーン400が提示されたとき、人工知能モデルAI1Aは、図3-2を参照して上述したのと同様の方法で自身を訓練する。たとえば、新しい仮想シナリオ400が提示されたとき、人工知能モデルAI1Aは、仮想オブジェクト112を撃つ前に仮想オブジェクト402または仮想オブジェクト404を撃墜することによって、ゲーム内の仮想ポイント数またはゲームスコアなどのゲームレベルが上昇するか否かを判定する。ゲームレベルの上昇は、仮想オブジェクト402または404を撃つ前に仮想オブジェクト112がキャラクターC1によって先に撃たれたときのゲームレベルの上昇量と比較して高い。ゲームレベルが上昇すると判定すると、人工知能モデルAI1Aは、パラシュートに取り付けられた飛んでいる仮想キャラクターを撃つ前に、飛行している仮想航空機を先に撃つように学習する。一方、ゲームレベルの上昇が、仮想オブジェクト402または404を撃つよりも先に仮想オブジェクト112がキャラクターC1によって撃たれたときのゲームレベルの上昇量と比較して低いと判定すると、人工知能モデルAI1Aは、飛行している仮想航空機を撃つよりも先にパラシュートに取り付けられた飛んでいる仮想キャラクターを撃つように学習する。
【0062】
図5Aは、人工知能モデルAI1Aがゲームの対戦中に1~5の範囲の任意のスキルレベルを適用できることについて説明するための一実施形態の図である。一例として、本明細書に記載の人工知能モデルAI1Aの訓練は全て、ゲーム内で人工知能モデルAI3と対戦するように人工知能モデルAI1Aを訓練することを意図して実行される。対戦において、ゲームの1つまたは複数の仮想オブジェクトまたは仮想キャラクターは、ゲーム内で勝利を収めるため、ゲーム内で他の仮想キャラクターの所定のキル数を達成するため、ゲーム内で所定の仮想ポイント数を達成するため、生き残るため、またはそれらの組み合わせのために対戦する。スキルレベル1~5は全てデータファイルに記憶され、データファイルはサーバA、B、及びCのうちの1つまたは複数のサーバの1つまたは複数のメモリデバイスに記憶される。スキルレベル1の一例は、図1A-2及び図1Bに示すように、ユーザAが人工知能モデルAI1Aを訓練する前のスキルレベルであり、スキルレベル2の一例は、ユーザAが人工知能モデルAI1Aを訓練した後のスキルレベルである。スキルレベル2の一例は、図2に示すように、人工知能モデルAI1Aが人工知能モデルAI2によって訓練される前のスキルレベルであり、スキルレベル3の一例は、人工知能モデルAI1Aが人工知能モデルAI2によって訓練された後のスキルレベルである。また、スキルレベル3の一例は、図3-1に示すように、人工知能モデルAI1Aが自身を訓練する前のスキルレベルであり、スキルレベル4の一例は、人工知能モデルAI1Aが自身を訓練した後のスキルレベルである。スキルレベル4の一例は、図4Aに示す新しいシーン400を使用して人工知能モデルAI1Aを訓練する前のスキルレベルであり、スキルレベル5の一例は、新しいシーン400を使用して人工知能モデルAI1Aを訓練した後のスキルレベルである。スキルレベル1~5は、サーバA、B、及びCのうちの1つまたは複数によって、人工知能モデルAI1Aに割り当てられ、たとえば、マッピングまたはリンクされる。
【0063】
スキルレベル2はスキルレベル1よりも高い。また、スキルレベル3はスキルレベル2よりも高く、スキルレベル4はスキルレベル3よりも高く、スキルレベル5はスキルレベル4よりも高い。たとえば、スキルレベル1は低スキルレベル、スキルレベル2は中スキルレベル、スキルレベル3は高スキルレベル、スキルレベル4は優秀スキルレベル、スキルレベル5は最高スキルレベルである。人工知能モデルAI1Aは、データファイルからスキルレベル1~5のいずれかにアクセスして、ゲームプログラムの実行中に適用する。人工知能モデルAI1Aのスキルレベルは時間tと共に上昇する。
【0064】
一実施形態では、図5Aに示すスキルレベルは、人工知能モデルAI1Aのスキルレベルであり、ユーザアカウント1に関連付けられたスキルレベルでもある。
【0065】
一実施形態では、人工知能モデルAI1Aは、キャラクターC3を操作する人工知能モデルAI3と対戦する。
【0066】
一実施形態では、ユーザアカウント3及び人工知能モデルAI3は、ユーザB以外のユーザCに割り当てられる。
【0067】
図5Bは、ゲームプログラムの実行中にキャラクターC1がキャラクターC3と対戦している仮想シーン508の一実施形態の図である。ユーザアカウント3に割り当てられた人工知能AI3によって操作されるキャラクターC3は、本明細書に記載のインタラクションパターンと同様の1つまたは複数のインタラクションパターンを適用して、キャラクターC3と対戦する。人工知能モデルAI3によって操作される場合、キャラクターC3はNPCである。ユーザCは自身のユーザアカウント3にログインして仮想シーン508にアクセスする。仮想シーン508は、HMD106ならびにHMD510に表示されて、共有された仮想環境を提供する。ユーザAが自身の頭にHMD106を装着するのと同様の方法で、ユーザCは自身の頭にHMD510を装着する。仮想シーン508において、ユーザCがハンドヘルドコントローラ512を使用してキャラクターC3を操作するか、または人工知能モデルAI3がキャラクターC3を操作し、ユーザAがハンドヘルドコントローラ108を使用してキャラクターC1を操作するか、または人工知能モデルAI1AがキャラクターC1を操作する。キャラクターC1及びC3は、ゲームプログラムの実行中に、仮想コイン数、仮想ポイント数、キル数、またはゲーム内のゲームレベルなどの仮想報酬数を達成するために競争または対戦する。
【0068】
ユーザCは、ハンドヘルドコントローラ512を介して、キャラクターC3または人工知能モデルAI3によって適用されるスキルレベル3と類似したスキルレベルを選択する。たとえば、ユーザCは、ハンドヘルドコントローラ512のボタンを選択することによって、対戦中のキャラクターC3のスキルレベルを選択する。この選択を示すデータは、ハンドヘルドコントローラ512とコンピューティングデバイス514との間の有線または無線接続を介してコンピューティングデバイス514に送信される。コンピューティングデバイス514は、ネットワーク通信プロトコルを適用して選択データをパケット化することによって1つまたは複数のパケットを生成し、コンピュータネットワーク102を介して1つまたは複数のサーバA、B、及びCにパケットを送信する。サーバA、B、及びCのうちの1つまたは複数は、パケットを受信し、ネットワーク通信プロトコルをパケットに適用して選択データを取得し、選択データを分析して、ユーザCがキャラクターC3のスキルレベルを適用することを望んでいると判断し、ユーザCによって選択されたスキルレベルに対応する1つまたは複数のインタラクションパターンが、人工知能モデルAI3によって選択されて、対戦中に適用される。サーバA、B、及びCのうちの1つまたは複数は、人工知能モデルAI3を適用し、ユーザCによって選択されたスキルレベルに対応する1つまたは複数のインタラクションパターンをさらに適用する。たとえば、キャラクターC3が図2の仮想シーン202内にいるとき、キャラクターC3は、仮想オブジェクト112を撃つのではなく、仮想オブジェクト206に近づく。
【0069】
人工知能モデルAI1Aは、キャラクターC3のスキルレベルを決定する要求を人工知能モデルAI3に送信する。たとえば、人工知能モデルAI1Aを適用または実行するサーバA、B、及びCのうちの1つまたは複数は、要求をユーザアカウント3のID、キャラクターC3のID、及びゲームプログラムの実行のゲームセッションのIDと共に、人工知能モデルAI3を適用または実行するサーバA、B、及びCのうちの1つまたは複数に送信する。サーバA、B、及びCのうちの1つまたは複数によって実行される人工知能モデルAI3は、ユーザアカウント3、キャラクターC3、及びゲームセッションのIDを要求と共に受信して、要求がユーザアカウント3、キャラクターC3、及びゲームセッションに対応し、キャラクターC3のスキルレベルのIDに関するものであると判断する。人工知能モデルAI3は、1つまたは複数のサーバA、B、及びCのメモリデバイスのうちの1つまたは複数に記憶されたデータベースにアクセスして、キャラクターC3のスキルレベルを人工知能モデルAI1Aに提供するための許諾がユーザアカウント3内にあるか否かを判定する。たとえば、ユーザCは、ハンドヘルドコントローラ512を使用して、キャラクターC3のスキルレベルにアクセスするための許諾を全ての人工知能モデルあるいは1つまたは複数の特定の人工知能モデルに提供する。許諾は、ハンドヘルドコントローラ512から有線または無線接続を介してコンピューティングデバイス514に送信される。コンピューティングデバイス514は、ネットワーク通信プロトコルを適用して許諾をパケット化することによって1つまたは複数のパケットを生成し、1つまたは複数のパケットをコンピュータネットワーク102を介して1つまたは複数のサーバA、B、及びCに送信する。1つまたは複数のサーバA、B、及びCは、許諾と人工知能モデルAI3またはユーザアカウント3とを関連付け、たとえば、それらの間にリンクもしくは1対1の対応またはマッピングを確立する。
【0070】
人工知能モデルAI1AがキャラクターC3のスキルレベルへのアクセスを許可されると判定すると、人工知能モデルAI3は許諾を人工知能モデルAI1Aに提供する。人工知能モデルAI3から許諾を受信すると、人工知能モデルAI1Aは、対戦中にスキルレベル3をキャラクターC1に適用することを決定する。スキルレベル3は、キャラクターC3のスキルレベルと類似もしくは実質的に同一または同一である。一例として、スキルレベルが互いに所定の範囲内にあるとき、スキルレベルは実質的に同一または類似である。例示すると、スキルレベル2.5はスキルレベル2からの所定の範囲内にあり、スキルレベル3.4はスキルレベル3からの所定の範囲内にある。人工知能モデルAI1Aは、キャラクターC3のスキルレベル3に対応するパターン、たとえば、1つまたは複数の追加のパターン204などにアクセスする。人工知能モデルAI1Aは、ゲーム内の対戦中に、スキルレベル3に対応するパターンをキャラクターC1に適用する。
【0071】
一実施形態では、ユーザCは、ジェスチャを行うことによって、対戦中のキャラクターC3のスキルレベルを選択する。ジェスチャを示すデータは、ユーザCがいる現実世界の環境に配置されたカメラによってキャプチャされ、カメラとコンピューティングデバイス514との間の有線または無線接続を介してコンピューティングデバイス514に送信される。コンピューティングデバイス514は、ネットワーク通信プロトコルを適用してジェスチャデータをパケット化することによって1つまたは複数のパケットを生成し、コンピュータネットワーク102を介して1つまたは複数のサーバA、B、及びCにパケットを送信する。サーバA、B、及びCのうちの1つまたは複数は、パケットを受信し、ネットワーク通信プロトコルをパケットに適用してジェスチャデータを取得し、ジェスチャデータを分析して、ユーザCがキャラクターC3のスキルレベルを適用することを望んでいると判断し、ユーザCによって選択されたスキルレベルに対応する1つまたは複数のインタラクションパターンが、人工知能モデルAI3によって選択されて、対戦中に適用される。
【0072】
一実施形態では、人工知能モデルAI1A及びAI3のそれぞれは、対戦中にゲームスコアまたは仮想ポイントを含む情報などの出力データを収集し、出力データに基づいて、対戦に勝つための人工知能モデルの訓練を容易にするパターンを決定する。たとえば、対戦中、人工知能モデルAI1Aは、人工知能モデルAI3によって操作されるキャラクターC3が、大部分のインスタンスにおいて撃たれたときにジャンプするというデータを受け取る。人工知能モデルAI1Aは、このデータから、人工知能モデルAI3がキャラクターC3をジャンプさせるように操作するインタラクションパターンを特定する。人工知能モデルAI1Aは、キャラクターC3がジャンプしたときにキャラクターC1がジャンプするように操作することによって、キャラクターC3を簡単にキルできることを学習する。次の対戦中に、人工知能モデルAI1Aは、学習した動作を適用して、キャラクターC3がジャンプしたときに、キャラクターC1がジャンプしてキャラクターC3を撃つように操作する。
【0073】
図5Cは、ユーザA及びBが、キャラクターC1及びC3を操作することなく、キャラクターC1及びC3の間の対戦を観戦することについて説明するための仮想シーン508の一実施形態である。たとえば、対戦中、人工知能モデルAI1AがキャラクターC1を操作し、人工知能モデルAI3がキャラクターC3を操作する。例示すると、対戦中に、1つまたは複数のインタラクションパターン119、1つまたは複数の追加のパターン202、1つまたは複数の他のパターン302、1つまたは複数の追加のインタラクションパターン408、あるいはそれらの組み合わせが、人工知能モデルAI1Aによって、キャラクターC1を操作するために適用される。同様に、対戦中、ユーザアカウント3及び人工知能モデルAI3に対応する1つまたは複数のインタラクションパターンが、人工知能モデルAI3によってキャラクターC3を操作するために適用される。
【0074】
ハンドヘルドコントローラ106を介した、またはジェスチャを使用した、ユーザAによるキャラクターC1の操作は存在せず、ハンドヘルドコントローラ512を介した、またはジェスチャを使用した、ユーザCによるキャラクターC3の操作は存在しない。たとえば、ハンドヘルドコントローラ106からコンピューティングデバイス104及びコンピュータネットワーク102を介してサーバA、B、及びCのうちの1つまたは複数に送信される、キャラクターC1によって実行される動きまたはアクション、たとえば、射撃、探検、回収、獲得、または探索などを操作するための入力データは存在しない。また、ハンドヘルドコントローラ512からコンピューティングデバイス514及びコンピュータネットワーク102を介してサーバA、B、及びCのうちの1つまたは複数に送信される、キャラクターC3によって実行される動きまたはアクションを操作するための入力データは存在しない。ユーザA及びCは、対応するキャラクターC1及びC3を操作することなく、自身に対応するHMD106及び510を介して受動的に対戦を観戦している。キャラクターC1及びC3は、入力データを受信せずに、対応する人工知能モデルAI1A及びAI3によって操作されている。ユーザがハンドヘルドコントローラを使用しないときやジェスチャを行ったりしないとき、入力データは生成されない。
【0075】
図6は、ユーザAがゲームをプレイできないこと、及び人工知能モデルAI1AがユーザCとゲームをプレイできることをユーザCに示す、HMD602のディスプレイデバイスに表示される通知510を説明するためのシステム600の一実施形態の図である。ユーザCは、ハンドヘルドコントローラ512上の1つまたは複数のボタンを選択して、ゲームをプレイするためにユーザアカウント1を介してユーザAに送信する要求及びユーザアカウント3の識別情報を含む入力データを生成する。入力データは、ハンドヘルドコントローラ512から有線または無線接続を介してコンピューティングデバイス514に送信される。コンピューティングデバイス514は、ネットワーク通信プロトコルを入力データに適用して、入力データを有する1つまたは複数のパケットを生成し、コンピュータネットワーク102を介して、ユーザアカウント情報がサーバA、B、及びCのうちの1つまたは複数のサーバの1つまたは複数のメモリデバイスに記憶されているユーザアカウント1にパケットを送信する。
【0076】
要求がユーザアカウント1によって受信されたとき、ユーザAはユーザアカウント1からログアウトしており、ゲームをプレイしていない。たとえば、ユーザAは、ハンドヘルドコントローラ108を使用して、HMD106のディスプレイデバイスに表示されるログアウトボタンを選択することによって、ユーザアカウント1からログアウトする。ログアウトボタンが選択されたとき、ログアウトボタンの選択を示す入力データがハンドヘルドコントローラ108によって生成され、ハンドヘルドコントローラ108から有線または無線接続を介してコンピューティングデバイス104に送信される。コンピューティングデバイス104は、入力データをパケット化して1つまたは複数のパケットを生成し、コンピュータネットワーク102を介してサーバA、B、及びCのうちの1つまたは複数にパケットを送信して、ユーザAがユーザアカウント1からログアウトしたことをサーバA、B、及びCのうちの1つまたは複数に示す。他の例として、ユーザAは、コンピューティングデバイス104の電源オフボタンを選択することによって、ユーザアカウントからログアウトする。
【0077】
サーバA、B、及びCのうちの1つまたは複数は、ユーザアカウント3から受信した要求に対する応答を生成して、ユーザAがユーザアカウント1からログアウトしていること、及びユーザアカウント1に対応する、たとえば、それにリンクまたはマッピングされた人工知能モデルAI1Aがゲームをプレイできることを示す。サーバA、B、及びCのうちの1つまたは複数は、ネットワーク通信プロトコルを応答に適用して1つまたは複数のパケットを生成し、コンピュータネットワーク102を介してコンピューティングデバイス514にパケットを送信する。コンピューティングデバイス514は、ネットワーク通信プロトコルをパケットに適用してパケットから応答を取得し、有線または無線接続を介して応答を表示するためのデータをHMD510に送信する。
【0078】
HMD510は、ユーザAがゲームをプレイできず、代わりに人工知能モデルAI1AがゲームをプレイできることをユーザCに示すための通知610として応答を表示する。通知610はまた、ユーザAの代わりに人工知能モデルAI1AがゲームをプレイすることをユーザCが望むか否かについてのユーザCに対する質問を含む。ユーザCは、ハンドヘルドコントローラ512の1つまたは複数のボタンを選択して、質問への回答を提供することによって、入力データを生成し、入力データは、ハンドヘルドコントローラ512から有線または無線接続を介してコンピューティングデバイス514に送信される。コンピューティングデバイス514は、ネットワーク通信プロトコルを適用して回答を含む入力データをパケット化することによって1つまたは複数のパケットを生成し、コンピュータネットワーク102を介して、サーバA、B、及びCのうちの1つまたは複数に記憶されたユーザアカウント1にパケットを送信する。サーバA、B、及びCのうちの1つまたは複数は、ネットワーク通信プロトコルをパケットに適用して、回答を含むデータを取得し、人工知能モデルAI1Aに回答を送信する。
【0079】
回答を受信すると、人工知能モデルAI1Aは、ユーザCとゲームをプレイする。たとえば、1つまたは複数のインタラクションパターン119、1つまたは複数の追加のパターン204、1つまたは複数の他のパターン302、1つまたは複数の追加のインタラクションパターン408、あるいはそれらの組み合わせに基づいて訓練された1つまたは複数のサーバA、B、及びCは、それらが訓練から学習した方法を適用して、ユーザCとゲームをプレイする。
【0080】
図7は、全てユーザアカウント1に対応する複数の人工知能モデルAI1A、AI2A、及びAI3Aからの人工知能モデルAI1Aの選択を説明するための一実施形態の図である。たとえば、人工知能モデルAI2Aは、ゲームプログラムの実行中に他のキャラクターC11を操作するように1つまたは複数のインタラクションパターンに基づいて訓練され、人工知能モデルAI3Aは、ゲームプログラムの実行中にさらに他のキャラクターC12を操作するように1つまたは複数のインタラクションパターンに基づいて訓練される。他の例として、人工知能モデルAI1Aは、スキルレベル2を有するキャラクターC1を操作し、人工知能モデルAI2Aは、スキルレベル3または4を有するキャラクターC1を操作し、人工知能モデルAI3Aは、スキルレベル5を有するキャラクターC1を操作する。人工知能モデルAI2A及びAI3Aは、人工知能モデルAI1Aが生成されるのと同様の方法で生成され、サーバA、B、及びCのうちの1つまたは複数によって実行される。
【0081】
1つまたは複数のサーバA、B、及びCは、仮想シーン702を表示するためのデータを含む1つまたは複数の画像フレームを生成する。サーバA、B、及びCのうちの1つまたは複数は、ネットワーク通信プロトコルを画像フレームに適用して、1つまたは複数のパケットを生成し、コンピュータネットワーク102を介してコンピューティングデバイス104にパケットを送信する。コンピューティングデバイス104は、ネットワーク通信プロトコルをパケットに適用して画像フレームを取得し、有線または無線接続を介して画像フレームをHMD106に送信して、HMD106のディスプレイデバイス上に仮想シーン702を表示する。
【0082】
ゲームプログラムの実行中に仮想シーン702を見ると、ユーザAは、ハンドヘルドコントローラ108を使用して、1つまたは複数のボタンを選択することによって、ゲームをプレイするための人工知能モデルAI1Aを選択する。選択を含む入力データは、ハンドヘルドコントローラ108から有線または無線接続を介してコンピューティングデバイス104に送信される。コンピューティングデバイス104は、ネットワーク通信プロトコルを適用して選択をパケット化することによって1つまたは複数のパケットを生成し、コンピュータネットワーク102を介してサーバA、B、及びCのうちの1つまたは複数にパケットを送信する。
【0083】
サーバA、B、及びCのうちの1つまたは複数は、ネットワーク通信プロトコルをパケットに適用して選択を取得し、ゲームのプレイのために人工知能モデルAI1Aを適用することを決定する。同様に、ユーザAによってハンドヘルドコントローラ108を介して他の人工知能モデルAI2A及びAI3Aが選択される。人工知能モデルAI1Aが適用されたとき、キャラクターC1は、ゲームプログラムの実行中に人工知能モデルAI1Aによって操作される。
【0084】
一実施形態では、人工知能モデルAI1A、AI2A、及びAI3Aのうちの1つは、ユーザAによりジェスチャを行うことによって選択され、ジェスチャは、現実世界の環境のカメラによってキャプチャされて、ジェスチャデータが生成される。ジェスチャデータは、カメラとコンピューティングデバイス104との間の有線または無線接続を介して、カメラからコンピューティングデバイス104に送信される。コンピューティングデバイス104は、ジェスチャデータを含む1つまたは複数のパケットを生成し、コンピュータネットワーク102を介してサーバA、B、及びCのうちの1つまたは複数に送信する。
【0085】
図8Aは、ゲームプログラムの実行中にユーザAによって行われたジェスチャをキャプチャして、人工知能モデルAI1AがジェスチャをキャラクターC1に適用できるようにすることについて説明するためのシステム800の一実施形態の図である。システム800は、HMD106、ハンドヘルドコントローラ108、カメラ802、コンピューティングデバイス104、コンピュータネットワーク102、ならびにサーバA、B、及びCを含む。
【0086】
カメラ802は、有線または無線接続を介してコンピューティングデバイスに結合される。ゲームのプレイ中に、ユーザAは1つまたは複数のジェスチャを行う。たとえば、ユーザ106は、ゲームで仮想キャラクターをキルした後、自身の右手を空中に上げて、大声で「よし!勝った」と叫ぶ。カメラ802は、ゲームプログラムの実行中にユーザAによって行われた1つまたは複数のジェスチャを記録して、入力データの一例であるジェスチャデータ804を生成し、有線または無線接続を介してジェスチャデータ804をコンピューティングデバイス104に送信する。ジェスチャデータ804は、オーディオデータ及びビデオデータを含む。
【0087】
コンピューティングデバイス104は、ネットワーク通信プロトコルをジェスチャデータ804に適用して、1つまたは複数のパケットを生成し、コンピュータネットワーク102を介して、ゲームプログラムを実行するサーバA、B、及びCのうちの1つまたは複数にパケットを送信する。サーバA、B、及びCのうちの1つまたは複数は、ネットワーク通信プロトコルを適用してパケットからジェスチャデータ804を取得し、ジェスチャデータを適用して人工知能モデルAI1Aを訓練する。たとえば、サーバA、B、及びCのうちの1つまたは複数は、ジェスチャデータ804からパターン808を識別し、1つまたは複数のインタラクションパターン119、1つまたは複数の追加のパターン204、1つまたは複数の他のパターン302、ならびに/あるいは1つまたは複数の追加のインタラクションパターン408から学習した自身の方法にパターン808を追加するなどして統合することによって、人工知能モデルAI1Aを訓練する。例示すると、サーバA、B、及びCのうちの1つまたは複数は、ゲーム内で仮想キャラクターをキルした後、ゲーム内で仮想飛行体を撃って破壊した後、ゲーム内で仮想ポイントを獲得した後、またはゲームプログラムの実行中にヘルスレベルを上昇させた後に、キャラクターC1の右手または左手を空中で動かし、「よし!勝った」、「勝った!」、「やった!」、または「素晴らしい!」という語を発するようにキャラクターC1の口を動かすよう、人工知能モデルAI1Aを訓練する。他の例として、サーバA、B、及びCのうちの1つまたは複数は、ゲーム内のキルもしくは仮想ポイントの獲得後、またはゲーム内のヘルスレベルの上昇後にキャラクターC1が踊るように操作し、それらの言葉のうちの1つまたは複数を発声するようにキャラクターC1の口を操作するよう、人工知能モデルAI1Aを訓練する。
【0088】
図8Bは、キャラクターC1がゲームのプレイ中にユーザAと同様のアクションを実行することについて説明するための、ユーザAによって装着されたHMD106上に表示される仮想シーン820の一実施形態の図である。仮想シーン820に示すように、キャラクターC1は、ゲームの実行中にゲームレベル、仮想ポイント、仮想コイン、またはヘルスレベルを達成した後に、右手を上げて、「勝った!」を示す音を出力する。たとえば、サーバA、B、及びCのうちの1つまたは複数は、ゲームの実行中に、キャラクターC1が仮想ポイントを獲得した、もしくはゲームレベルを達成した、またはそのヘルスレベルを上昇させたと判断する。そのように判断すると、サーバA、B、及びCのうちの1つまたは複数は、人工知能モデルAI1Aを適用して、キル、ポイントの獲得、またはゲームレベルもしくはヘルスレベルの達成などの勝利後に、ユーザAによって実行されるアクションと同様の1つまたは複数の画像フレーム及び音声フレームを生成する。画像フレーム及び音声フレームは、サーバA、B、及びCのうちの1つまたは複数によって、ネットワーク通信プロトコルを適用することによりパケット化されて、1つまたは複数のパケットが生成される。サーバA、B、及びCのうちの1つまたは複数は、画像フレーム及び音声フレームを有するパケットを、コンピュータネットワーク102を介してコンピューティングデバイス104に送信する。コンピューティングデバイス104は、ネットワーク通信プロトコルを適用してパケットから画像フレーム及び音声フレームを取得し、有線または無線接続を介して画像フレーム及び音声フレームをHMD106に送信する。HMD106のディスプレイデバイスは、画像フレームを表示して、右手を上げて勝利を喜んでいるキャラクターC1を含む仮想シーン820を表示する。また、HMD106の1つまたは複数のオーディオスピーカーに結合された1つまたは複数のオーディオアンプを含むオーディオデバイスは、音声フレームを処理して、キャラクターC1によって発せられた音を出力する。
【0089】
一実施形態では、本明細書に記載のインタラクションパターンのいずれかを使用して、本明細書に記載のAIモデルを訓練し、またはAIモデルが学習して、学習した方法を生成することを支援する。AIモデルは自身が学習した方法を適用して、AI出力などの判断結果を出力し、学習した方法を適用して判断結果を出力している間、ユーザによるAIモデルの制御は存在しない。一例として、判断結果は新しい仮想シーンに適用される。
【0090】
本明細書に記載の実施形態は、仮想シーンを参照して説明しているが、一実施形態では、これらの実施形態は拡張現実(AR)シーンに等しく適用される。たとえば、キャラクターC1は、HMD106上に表示されるARシーン内で人工知能モデルAI1Aによって操作され、キャラクターC3は、HMD510上に表示されるARシーン内で人工知能モデルAI3によって操作される。HMDに表示されているARシーンの一部分を含むデータは、HMDを装着しているユーザがいるのと同じ現実世界の環境にあるカメラによってキャプチャされる。ARシーンのその部分は、ユーザの目の前にある現実世界の環境の一部分である。そのデータは、カメラから有線または無線接続を介してコンピューティングデバイスに送信される。コンピューティングデバイスは、ネットワーク通信プロトコルを適用してそのデータをパケット化することによって1つまたは複数のパケットを生成し、コンピュータネットワーク102を介してサーバA、B、及びCのうちの1つまたは複数にパケットを送信する。サーバA、B、及びCのうちの1つまたは複数は、人工知能モデルAI1Aを適用して、コンピューティングデバイス104に結合されたカメラによってキャプチャされたデータの上にキャラクターC1をオーバーレイするための1つまたは複数の画像フレームを生成する。同様に、サーバA、B、及びCのうちの1つまたは複数は、人工知能モデルAI3を適用して、コンピューティングデバイス514に結合されたカメラによってキャプチャされたデータの上にキャラクターC3をオーバーレイするための1つまたは複数の画像フレームを生成する。画像フレームは、サーバA、B、及びCのうちの1つまたは複数によってパケット化され、コンピュータネットワーク102によって、対応するコンピューティングデバイス104及び514に送信される。コンピューティングデバイス104は、ネットワーク通信プロトコルを適用してパケットから画像フレームを取得し、画像フレームをHMD106に送信して、HMD106上にARシーンを表示する。HMD106に表示されるARシーンは、ユーザAがいる現実世界の環境の一部分と、現実世界の環境のデータの上にオーバーレイされたキャラクターC1とを含む。同様に、コンピューティングデバイス514は、ネットワーク通信プロトコルを適用してパケットから画像フレームを取得し、画像フレームをHMD512に送信して、HMD512上にARシーンを表示する。HMD512に表示されるARシーンは、ユーザCがいる現実世界の環境の一部分と、現実世界の環境のデータの上にオーバーレイされたキャラクターC3とを含む。
【0091】
様々な実施形態において、本明細書に記載の一部の実施形態の1つまたは複数の特徴は、本明細書に記載の残りの実施形態のうちの1つまたは複数の実施形態の1つまたは複数の特徴と組み合わせられることに留意されたい。
【0092】
本開示に記載の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家電製品、ミニコンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成で実施され得る。一実施態様では、本開示に記載の実施形態は、有線ベースまたは無線のネットワークを介してリンクされた遠隔処理デバイスによりタスクが実行される分散コンピューティング環境において実施される。
【0093】
上記の実施形態を念頭に置いて、一実施態様では、本開示に記載の実施形態は、コンピュータシステムに記憶されたデータを伴う様々なコンピュータ実施動作を用いることを理解されたい。これらの動作は、物理量の物理的操作を要する動作である。本開示に記載の実施形態の一部を形成する、本明細書に記載の動作はいずれも、有用な機械動作である。本開示に記載のいくつかの実施形態はまた、これら動作を実行するためのデバイスまたは装置に関する。この装置は、必要な目的のために専用に構築されるか、またはこの装置は、コンピュータに記憶されたコンピュータプログラムにより選択的に起動または構成される汎用コンピュータであり得る。具体的には、一実施形態では、様々な汎用マシンが、本明細書の教示に従って書かれたコンピュータプログラムと共に使用され、あるいは、必要な動作を実行するには、さらに特化した装置を構築する方がより好都合であり得る。
【0094】
一実施態様では、本開示に記載のいくつかの実施形態は、コンピュータ可読媒体上のコンピュータ可読コードとして具現化される。コンピュータ可読媒体は、データを記憶する任意のデータストレージデバイスであり、このデータは後でコンピュータシステムにより読み出される。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ(NAS)、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、コンパクトディスクROM(CD-ROM)、CDレコーダブル(CD-R)、CDリライタブル(CD-RW)、磁気テープ、光学データストレージデバイス、非光学データストレージデバイスなどが含まれる。一例として、コンピュータ可読媒体は、コンピュータ可読コードが分散方式で記憶及び実行されるような、ネットワーク結合コンピュータシステム上に分散されたコンピュータ可読有形媒体を含む。
【0095】
また、上述の実施形態のいくつかは、ゲーム環境に関して説明しているが、いくつかの実施形態では、ゲームの代わりに、ビデオ会議環境などの他の環境が使用される。
【0096】
方法の動作は特定の順序で説明したが、オーバーレイ動作の処理が所望の方法で実行される限り、動作の合間に他の維持管理動作が実行され得、もしくは動作はわずかに異なる時間に行われるように調整され得、または動作をシステム内に分散させて、処理に関連する様々な間隔で処理動作が行われることを可能にし得ることを理解されたい。
【0097】
本開示に記載の前述の実施形態は、理解を明確にする目的である程度詳細に説明したが、添付の特許請求の範囲内で特定の変更及び修正を実施できることは明らかであろう。したがって、本実施形態は、限定ではなく例示なものと考えられるべきであり、本実施形態は、本明細書に記載した詳細に限定されるべきではなく、添付の特許請求の範囲及び均等物の中で修正され得る。
図1A-1】
図1A-2】
図1B
図2
図3-1】
図3-2】
図4
図5A
図5B
図5C
図6
図7
図8A
図8B