(57)【要約】  システムは、現在のゲーム状態に基づいてストリーミングゲームにおいてグラフィカルオーバレイを実施するように構成されている。ゲーム映像フレームを包含する映像ストリームの形態のゲーム映像を含む、ビデオゲームによって生成されたゲームデータを受信する。ビデオゲームを、コンピューティングデバイスにおいてビデオゲームをプレイするユーザにビデオゲームを示すために、ゲーム映像をコンピューティングデバイスの表示スクリーン上に表示する。少なくともゲームデータ内のビデオゲームの少なくとも１つの特徴を識別する。ビデオゲームのための複数のＵＩコントロール構成の中から、識別された少なくとも１つの特徴に関連付けられたユーザインターフェース（ＵＩ）コントロール構成を選択し、選択されたＵＩコントロール構成に対応するグラフィカルオーバレイを表示スクリーン内のビデオゲーム上において実施する。
2022502102.tif 000002
【特許請求の範囲】
【請求項１】
表示スクリーンを有するコンピューティングデバイスにおける方法であって、
ビデオゲームによって生成されたゲームデータを受信することであって、前記ゲームデータが、ゲーム映像フレームを包含する映像ストリームの形態のゲーム映像を含む、受信することと、
前記ビデオゲームを、前記コンピューティングデバイスにおいて前記ビデオゲームをプレイするユーザに示すために、前記表示スクリーン上において、前記ゲーム映像を表示することと、
少なくとも前記ゲームデータ内の前記ビデオゲームの少なくとも１つの特徴を識別することと、
前記ビデオゲームのための複数のＵＩコントロール構成から、前記識別された少なくとも１つの特徴に関連付けられたユーザインターフェース（ＵＩ）コントロール構成を選択することであって、前記ＵＩコントロール構成の各々が、前記ビデオゲームの対応するライブのゲームシナリオにおいて対話されるように構成された前記ビデオゲームへの対応するグラフィカルオーバレイを規定する、選択することと、
前記表示スクリーン内の前記ビデオゲーム上において、前記選択されたＵＩコントロール構成に対応する前記グラフィカルオーバレイを実施することと、
を含む方法。
【請求項２】
前記識別することが、以下のもの：
前記ゲームデータのゲーム映像フレーム、
前記ゲームデータのゲーム音声データ、
前記ビデオゲームに提供される入力イベントのストリーム、又は
前記コンピューティングデバイスのハードウェアの使用、
のうちの少なくとも１つにおける前記ビデオゲームの特徴を識別すること、を含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの特徴がオブジェクトを含み、前記識別することが、
前記表示スクリーンの所定のスクリーン領域を前記オブジェクトの画像のために分析することと、
前記オブジェクトの前記画像が前記所定のスクリーン領域内に包含される確率を指示する、前記オブジェクトに関連付けられた信頼スコアを決定することと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記分析することが、
前記オブジェクトの前記画像を包含する前記映像ストリームのゲーム映像フレームの部分を、訓練された機械学習モデルに適用し、前記信頼スコアを生成することを含む、請求項３に記載の方法。
【請求項５】
前記ビデオゲームを実行し、訓練映像ストリームを含む訓練ゲームデータを生成することと、
前記訓練映像ストリームのゲーム映像フレーム内に表示されたオブジェクトの訓練指示を受信することと、
前記訓練映像ストリーム及び前記訓練指示を機械学習アルゴリズムに適用し、前記訓練された機械学習モデルを生成することと、
をさらに含む、請求項４に記載の方法。
【請求項６】
前記表示スクリーンがタッチスクリーンであり、前記方法が、
前記グラフィカルオーバレイに対応する前記選択されたＵＩコントロール構成に関連付けられたコントロールを前記タッチスクリーンのために調整することをさらに含み、前記調整することが、
物理的ゲームコントローラ入力デバイスに関連付けられたゲーム入力応答曲線を線形化すること、
前記線形化されたゲーム入力応答曲線を前記グラフィカルオーバレイのタッチ入力のために調整すること、及び
前記調整されたゲーム入力応答曲線を前記グラフィカルオーバレイの前記タッチ入力に関連付けること、
を含む、請求項１に記載の方法。
【請求項７】
前記ゲームデータがゲーム映像フレームを含み、前記ゲーム映像フレームが、前記コンピューティングデバイスによってレンダリングされ、前記ゲーム映像フレーム内に合成された画像を含む、請求項１に記載の方法。
【請求項８】
ビデオゲームストリーミングクライアントを備える、コンピューティングデバイスにおいて実施されるシステムであって、前記ビデオゲームストリーミングクライアントが、
ゲームエンジンであって、
ビデオゲームによって生成されたゲームデータを受信することであって、前記ゲームデータが、ゲーム映像フレームを包含する映像ストリームの形態のゲーム映像を含む、受信すること、及び
前記ビデオゲームを、前記コンピューティングデバイスにおいて前記ビデオゲームをプレイするユーザに示すために、前記ゲーム映像を前記表示スクリーン上に表示すること、
を行うように構成されたゲームエンジンと、
コントロール構成決定器であって、
特徴識別器であって、少なくとも前記ゲームデータ内の前記ビデオゲームの少なくとも１つの特徴を識別するように構成されている、特徴識別器、並びに
コントロール構成選択器であって、
前記ビデオゲームのための複数のＵＩコントロール構成から、前記識別された少なくとも１つの特徴に関連付けられたユーザインターフェース（ＵＩ）コントロール構成を選択することであって、前記ＵＩコントロール構成の各々が、前記ビデオゲームの対応するライブのゲームシナリオにおいて対話されるように構成された前記ビデオゲームへの対応するグラフィカルオーバレイを規定する、選択すること、及び
前記選択されたＵＩコントロール構成に対応する前記グラフィカルオーバレイを前記表示スクリーン内の前記ビデオゲーム上において実施すること、
を行うように構成されている、コントロール構成選択器、
を備える、コントロール構成決定器と、
を備える、システム。
【請求項９】
前記特徴識別器が、以下のもの：
前記ゲームデータのゲーム映像フレーム、
前記ゲームデータのゲーム音声データ、
前記ビデオゲームに提供される入力イベントのストリーム、又は
前記コンピューティングデバイスのハードウェアの使用、
のうちの少なくとも１つにおける前記ビデオゲームの特徴を識別するようにさらに構成されている、請求項８に記載のシステム。
【請求項１０】
前記少なくとも１つの特徴がオブジェクトを含み、前記特徴識別器が、
前記表示スクリーンの所定のスクリーン領域を前記オブジェクトの画像のために分析することと、
前記オブジェクトの前記画像が前記所定のスクリーン領域内に包含される確率を指示する、前記オブジェクトに関連付けられた信頼スコアを決定することと、
を行うようにさらに構成されている、請求項８に記載のシステム。
【請求項１１】
前記特徴識別器が、前記オブジェクトの前記画像を包含する前記映像ストリームのゲーム映像フレームの部分を、訓練された機械学習モデルに適用し、前記信頼スコアを生成するように構成されている、請求項８に記載のシステム。
【請求項１２】
前記表示スクリーンがタッチスクリーンであり、前記ビデオゲームストリーミングクライアントが、
前記グラフィカルオーバレイに対応する前記選択されたＵＩコントロール構成に関連付けられたコントロールを前記タッチスクリーンのために調整するように構成されたゲーム入力応答調整器であって、
物理的ゲームコントローラ入力デバイスに関連付けられたゲーム入力応答曲線を線形化すること、
前記線形化されたゲーム入力応答曲線を前記グラフィカルオーバレイのタッチ入力のために調整すること、及び
前記調整されたゲーム入力応答曲線を前記グラフィカルオーバレイの前記タッチ入力に関連付けること、
を行うように構成されていることを含む、ゲーム入力応答調整器をさらに備える、請求項８に記載のシステム。
【請求項１３】
前記ゲームデータがゲーム映像フレームを含み、前記ゲームエンジンが、ゲーム映像変更器であって、
画像をレンダリングすること、及び
前記画像を前記ゲーム映像フレーム内に合成すること、
を行うように構成された、ゲーム映像変更器を含む、請求項８に記載のシステム。
【請求項１４】
少なくとも１つのプロセッサによって実行されたときに、前記少なくとも１つのプロセッサに請求項１〜７に記載の方法のうちのいずれかを実施させるプログラムコードが記録されたコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
[0001]  ゲームストリーミングは、ビデオゲームデータを、ビデオゲームアプリケーションを実行する第１のユーザデバイス（例えば、「発信」又は「ソース」デバイス）から、第２のユーザデバイス（例えば、「ゲームプレイ」又は「クライアント」「デバイス」）へ伝送し、ユーザが第２のユーザデバイスを用いてビデオゲームをプレイすることを可能にする技法である。例えば、ビデオゲームのデータは、デスクトップコンピュータから、スマートフォン、タブレット、又はタッチスクリーンを有する他のユーザデバイス（例えば、「タッチデバイス」）へストリーミングされ、ユーザがタッチスクリーンを用いてビデオゲームをプレイすることを可能にし得る。このようなビデオゲームストリーミングは、ユーザがビデオゲームを、そのビデオゲームが元来設計されていなかったデバイス上でプレイすることを可能にし得る。例えば、ゲームストリーミングは、ゲームコントローラを用いてビデオゲームコンソール（例えば、Microsoft Xbox（登録商標）、Sony PlayStation 4（登録商標）、Nintendo Switch（登録商標）等）上でプレイされるように設計されたゲームが、モバイルデバイス上でユーザによって対話され、したがって、プレイされることを可能にし得る。
【０００２】
[0002]  ユーザがビデオゲームを、それが設計されていなかったタッチスクリーンデバイス上でプレイすることを可能にするために、グラフィカルオーバレイがタッチスクリーンデバイス上に提示され得る。グラフィカルオーバレイは、ユーザがゲームをプレイするために対話するタッチスクリーンコントロールを提供し、タッチデバイスのタッチコントロールとのユーザ対話の、ビデオゲームのためのソースデバイスの物理的コントロールへの対応付けを提供する。例えば、ビデオゲームは、ユーザがハンドヘルドゲームコントローラを用いて対話するビデオゲームコンソールのために設計されていてもよい。ビデオゲームは、スマートフォンなどの、タッチデバイスにストリーミングされてもよい。それゆえ、グラフィカルオーバレイが、ユーザ対話のためのタッチコントロールを提示するためにタッチデバイス上で用いられてもよい。タッチスクリーンコントロール（例えば、グラフィカルボタン等）はゲームコントローラコントロール（物理的ボタン、スティック等）に対応する。タッチスクリーン上のグラフィカルオーバレイがゲームコントローラコントロールの全てをタッチコントロールとして提示したとき、タッチスクリーンは乱雑になり得、ビデオゲームのユーザの視界を遮る場所にタッチコントロールを提示し得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
[0003]  この発明の概要は、発明を実施するための形態においてさらに後述される概念の選択を、単純化された形態で伝えるために提供される。この発明の概要は、クレームされている主題の枢要な特徴又は本質的な特徴を特定することを意図されておらず、また、クレームされている主題の範囲を限定するために用いられることも意図されていない。
【０００４】
[0004]  ストリーミングゲームにおいてグラフィカルオーバレイを実施するための方法、システム、及びコンピュータプログラム製品が提供される。例えば、コンピューティングデバイスは、表示スクリーン、及びソースデバイスからストリーミングされたゲームデータを受信するビデオゲームストリーミングクライアントを含み得る。ビデオゲームストリーミングクライアントは、ゲームデータを受信し、ビデオゲームを、コンピューティングデバイスにおいてビデオゲームをプレイするユーザに示すために、ゲーム映像を表示スクリーン上に表示するように構成されたゲームエンジンを含む。ビデオゲームストリーミングクライアントは、特徴識別器及びコントロール構成選択器を含むコントロール構成決定器をさらに含む。特徴識別器は、少なくともゲームデータ内のビデオゲームの少なくとも１つの特徴を識別するように構成されている。コントロール構成選択器は、ビデオゲームのための複数のＵＩコントロール構成から、識別された少なくとも１つの特徴に関連付けられたユーザインターフェース（ＵＩ（user interface））コントロール構成を選択するように構成されている。ゲームエンジンは、選択されたＵＩコントロール構成に対応するグラフィカルオーバレイを表示スクリーン内のビデオゲーム上において実施する。
【０００５】
[0005]  実施形態のさらなる特徴及び利点並びに様々な実施形態の構造及び動作が以下において添付の図面を参照して詳細に説明される。方法及びシステムは、本明細書において説明される特定の実施形態に限定されないことに留意されたい。このような実施形態は本明細書において単に例示の目的のために提示されるにすぎない。当業者には、本明細書に包含される教示に基づいて追加の実施形態が明らかであろう。
【０００６】
図面／図の簡単な説明
[0006]  本明細書に組み込まれ、本明細書の部一部を形成する、添付の図面は本出願の実施形態を示し、本記載と共に、実施形態の原理を説明し、当業者が実施形態を作製して使用することを可能にする役割をさらに果たす。
【図面の簡単な説明】
【０００７】
【図１】[0007]図１は、例示的な実施形態に係る、ストリーミングビデオゲームのためのグラフィカルオーバレイを実施するためのシステムのブロック図を示す。
【図２】[0008]図２は、例示的な実施形態に係る、機械学習モデルをビデオゲーム特徴認識のために訓練するためのフローチャートを示す。
【図３】[0009]図３は、例示的な実施形態に係る、現在のゲーム状態に基づいてグラフィカルオーバレイを選択し、表示スクリーン上において実施するためのフローチャートを示す。
【図４】[0010]図４は、例示的な実施形態に係る、現在のビデオゲーム状態に基づいてグラフィカルオーバレイを選択し、実施するように構成された図１のシステムのユーザデバイスのブロック図を示す。
【図５】[0011]図５は、例示的な実施形態に係る、グラフィカルオーバレイを選択するために用いられるビデオゲーム内の特徴を識別するように構成された図１のシステムのユーザデバイスのブロック図を示す。
【図６】[0012]図６は、例示的な実施形態に係る、ビデオゲーム内のオブジェクトを識別するためのフローチャートを示す。
【図７】[0013]図７は、例示的な実施形態に係る、ビデオゲームグラフィカルオーバレイのユーザインターフェースコントロールの調整を可能にするように構成された図１のシステムのユーザデバイスのブロック図を示す。
【図８】[0014]図８は、例示的な実施形態に係る、タッチスクリーングラフィカルオーバレイに関連付けられたコントロールを調整するためのフローチャートを示す。
【図９】[0015]図９は、様々な実施形態を実施するために用いられ得る例示的なプロセッサベースのコンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００８】
[0016]  本明細書において説明される実施形態の特徴及び利点は、図面と併せて、以下において記載される詳細な説明からより明らかになるであろう。図面において、同様の参照符号は、全体を通じて、対応する要素を識別する。図面において、同様の参照符号は、概して、同一の、機能的に同様の、及び／又は構造的に同様の要素を指示する。要素が最初に現れる図面が、対応する参照符号における左端の桁によって指示される。
【０００９】
詳細な説明
Ｉ．序論
[0017]  本明細書及び添付の図面は、本開示の実施形態の特徴を組み込んだ１つ以上の実施形態を開示する。実施形態の範囲は、本明細書において開示される態様のみに限定されない。本開示の実施形態は、単に、意図された範囲を例示するにすぎず、本開示の実施形態の変更バージョンも包含される。実施形態は、本明細書に添付された請求項によって定義される。
【００１０】
[0018]  本明細書における「一実施形態（one embodiment）」、「一実施形態（an embodiment）」、「例示的な一実施形態（an example embodiment）」などへの言及は、説明されている実施形態は特定の特徴、構造、又は特性を含み得るが、全ての実施形態はその特定の特徴、構造、又は特性を必ずしも含まない場合もあることを指示する。さらに、このような表現は必ずしも同じ実施形態に言及しているわけではない。さらに、特定の特徴、構造、又は特性が一実施形態に関して説明されるときには、明示的に説明されているか否かにかかわらず、このような特徴、構造、又は特性を他の実施形態に関して実施することも当業者の理解の範囲のことであることが提示されている。
【００１１】
[0019]  さらに、本明細書において使用される空間表現（例えば、「上方（above）」、「下方（below）」、「上（up）」、「左（left）」、「右（right）」、「下（down）」、「上部（top）」、「底部（bottom）」、「鉛直（vertical）」、「水平（horizontal）」等）は単なる例示の目的のためのものにすぎず、本明細書において説明される構造の実際の実装形態は任意の向き又は様態で空間的に配置することができることを理解されたい。
【００１２】
[0020]  本記載では、特に明記しない限り、本開示の一実施形態の特徴又は特徴群の条件又は関係の特性を修飾する「実質的に（substantially）」及び「約（about）」などの形容詞は、条件又は特性が、実施形態の、それが意図された適用物のための動作のために許容可能である公差以内で規定されることを意味すると理解される。
【００１３】
[0021]  数多くの例示的な実施形態が以下のように説明される。本明細書において与えられるいかなるセクション／サブセクションの表題も、限定することを意図されていないことに留意されたい。諸実施形態が本文書全体を通して説明されており、いかなる種類の実施形態も任意のセクション／サブセクションの下に含まれ得る。さらに、任意のセクション／サブセクションにおいて開示される実施形態は、同じセクション／サブセクション及び／又は異なるセクション／サブセクションにおいて説明される任意の他の実施形態と任意の仕方で組み合わせられ得る。
【００１４】
ＩＩ．例示的な実施形態
[0022]  ユーザがビデオゲームを、それが設計されていなかったタッチスクリーンデバイス上でプレイすることを可能にするために、グラフィカルオーバレイがタッチスクリーンデバイス上に提示され得る。グラフィカルオーバレイは、ユーザがビデオゲームをプレイするために対話するタッチスクリーンコントロールを提供し、タッチデバイスのタッチコントロールとのユーザ対話をビデオゲームのためのソースデバイスの物理的コントロールに対応付ける。例えば、ビデオゲームは、ユーザがハンドヘルドゲームコントローラを用いて対話するビデオゲームコンソールのために設計されていてもよい。ビデオゲームは、スマートフォンなどの、タッチデバイスにストリーミングされてもよい。ゲームコントローラコントロール（物理的ボタン、スティック等）をユーザによるタッチ対話のためにタッチスクリーンコントロール（例えば、グラフィカルボタン等）に対応付けるために、グラフィカルオーバレイがタッチデバイス上に提示され得る。
【００１５】
[0023]  このようなグラフィカルオーバレイは従来、いくつかの仕方で構成される。例えば、ユーザが自分の２本の親指をタッチスクリーン上のコントロールに当てる２指構成を用いることができる。タッチ入力は、それらの２本の指のみを用いるジェスチャに対応付けられる。しかし、ゲームコントローラ、マウス、及び／又はキーボードと共に使用されるように設計されたビデオゲームは、ユーザが数多くの物理的コントロールを同時に操作することを必要とし得る。したがって、タッチスクリーン上の２指構成は、ユーザが、ビデオゲームが必要とする全ての入力信号を提供することができないため、特定のビデオゲームをプレイ不可能にし得る。
【００１６】
[0024]  別の従来の実装形態では、ゲームコントローラの全てのコントロールのためのコントロールをタッチスクリーン上に含むフリーサイズのグラフィカルオーバレイが提示され得る。しかし、ゲームコントローラは、通例、様々な場所において、様々な種類の数多くのコントロールを含むため、このようなコントロールレイアウトは、ユーザが使用する必要がないいくつかのコントロールを提示すると共に、表示スクリーン全体の、全てではなくとも、ほとんどを占有し得る。これは、ユーザがコントロールレイアウトの背後の実際のビデオゲームを見ることができなくなるため、いくつかのビデオゲームをプレイ不可能にし得る。したがって、フリーサイズの構成は、通例、ユーザエクスペリエンスの観点から実際的でない。
【００１７】
[0025]  これらの課題を解決する試みとして、グラフィカルオーバレイのコントロールレイアウトが特定のゲームシナリオのためにカスタマイズされ得る。しかし、多くのビデオゲームは、ビデオゲーム内で何が進行しているのか（すなわち、「ゲーム状態」又は「ゲームシナリオ」）に基づいてコントロールレイアウトを切り替える。例えば、ゲーム内のキャラクタに、歩き回ること、自動車を運転すること、飛ぶこと等をさせるために、コントロールの異なるセットが、ビデオゲームのメニューを操作するために用いられ得る。したがって、１つのゲームシナリオにカスタマイズされたコントロールのセットを用いることは、ゲームシナリオの変化によって、コントロールが、必要とされるものに正確に一致しなくなるため、通例、実際的でない。
【００１８】
[0026]  諸実施形態は、ビデオゲームストリーミングにおけるグラフィカルオーバレイに関連するこれら及び他の課題を克服する。一実施形態では、現在のゲームシナリオを決定し、以前のグラフィカルオーバレイから、決定された現在のゲームシナリオのために設計されたより適切なグラフィカルオーバレイへの切り替えを生じさせるために、機械学習が用いられ得る。代替的な実施形態では、ビデオゲームの特定の識別された画素配置及び／又は音響が現在のゲームシナリオを識別し、以前のグラフィカルオーバレイから、決定された現在のゲームシナリオのためのより適切なグラフィカルオーバレイへの切り替えを生じさせ得る。
【００１９】
[0027]  諸実施形態では、第１のコンピューティングデバイスにおいてビデオゲームによって生成されたゲームデータは映像フレームの映像ストリームの形態のゲーム映像を含み得る。ゲームデータは第２のコンピューティングデバイスへストリーミングされ得る。ゲーム映像は、ビデオゲームを、そのビデオゲームをプレイするユーザに示すために、第２のコンピューティングデバイスの表示スクリーン上に表示される。ゲームプレイの間に、ゲーム関連データ（例えば、ゲーム映像フレーム、ゲーム音声データ、入力イベントのストリーム、ビデオゲームプレイ中のハードウェア使用メトリック、ログファイル内容、ＡＰＩ（application programming interface（アプリケーションプログラミングインターフェース））アクセス等などのビデオゲームプレイの間に生成されるさらなるメタデータ）が、以前のゲームシナリオから変化したばかりであり得るか、又は変化する過程にあり得る、現在のゲームシナリオに対応する１つ以上のゲーム関連特徴を識別するために分析され得る。決定に応じて、ビデオゲームのための複数のＵＩコントロール構成から、識別された特徴に関連付けられたユーザインターフェース（ＵＩ）コントロール構成が選択される。選択されたＵＩコントロール構成に対応するグラフィカルオーバレイが表示スクリーン内のビデオゲーム上において実施される。グラフィカルオーバレイはその特定の現在のゲームシナリオのために構成されており、そのゲームシナリオにおいてユーザのためにゲームプレイをより効率良く、楽しくするように構成された、コントロール、コントロールの場所等の特定の選択されたセットを有する。ユーザは、その現在のゲームシナリオにおいてビデオゲームをプレイするためにグラフィカルオーバレイと対話すること可能にされる。
【００２０】
[0028]  それゆえ、諸実施形態は、識別されたゲーム関連特徴に基づく特定のゲームシナリオのための適切なコントロールの提供を可能にする。このように、タッチデバイスにストリーミングされるビデオゲームに対するユーザエクスペリエンスは、それが設計されたソースデバイス上でプレイされるビデオゲームに対するユーザエクスペリエンスとほぼ同じになる。
【００２１】
[0029]  一実施形態では、訓練された機械学習モデルが生成され、適切なグラフィカルオーバレイがゲームシナリオのために選択されることを可能にするために用いられ得る。一実施形態では、訓練された機械学習モデルは、ゲームの特徴を識別するためのゲーム関連データを受信し得、ゲーム関連データは、特徴が実際に識別されたこと、及びゲームが、関連付けられたゲームシナリオに切り替わったことの信頼レベルを指示する信頼スコアを生成するために用いられる。
【００２２】
[0030]  このような訓練された学習モデルは様々な仕方で生成され得る。例えば、このようなモデルを生成するために、ビデオゲームが、訓練映像ストリームを含む訓練ゲームデータを生成するべく、TensorFlow（商標）などの機械学習（ＭＬ（machine learning））アプリケーションにおいて実行され得る。ビデオゲームに対応する訓練指示が訓練ゲームプレイ中にＭＬアプリケーションに入力され得る。一実施形態では、訓練指示は（例えば、ゲーム開発者によって）手動で入力される。代替的に、訓練指示は、コンピュータなどによって、自動的に提供され得る。訓練された機械学習モデルは、訓練指示及び生成された訓練ゲームデータに基づいて生成される。
【００２３】
[0031]  レーシングゲームの場合など、実例によっては、グラフィカルオーバレイは、ゲームコントローラなどの元の入力デバイスを正確に模擬するために追加的な変更を必要とし得る。諸実施形態は、ユーザ入力に基づく、実施されるグラフィカルオーバレイのためのコントロール調整を可能にする。例えば、物理的ゲームコントローラ入力デバイスに関連付けられたゲーム入力応答曲線が線形化され得る。線形化されたゲーム入力応答曲線はグラフィカルオーバレイのタッチコントロールのために調整され得、これにより、調整された入力応答曲線はタッチコントロールに関連付けられる。調整された入力応答曲線は、ゲーム入力がゲームプレイ中にユーザ入力にどのように応答するのかを決定する。このように、ユーザエクスペリエンスがそのタッチコントロールのために改善され得る。
【００２４】
[0032]  ストリーミングされたビデオゲームのためのグラフィカルオーバレイを生成し、利用するための実施形態は様々な仕方で実施され得る。例えば、図１は、例示的な実施形態に係る、ストリーミングビデオゲームのためのグラフィカルオーバレイを実施するためのシステム１００のブロック図を示す。図１に示されるように、システム１００は、訓練段階１２６内に含まれる第１のコンピューティングデバイス１０２（訓練デバイス）と、ライブ（Live）のゲームプレイ段階１２８内に含まれる第２のコンピューティングデバイス１３６（ゲームソース／発信デバイス）及び第３のコンピューティングデバイス１０４（ゲームプレイ／クライアントデバイス）とを含む。コンピューティングデバイス１０２は、ビデオゲームアプリケーション１０６及び機械学習（ＭＬ）アプリケーション１０８を含む。コンピューティングデバイス１３６は、ソースビデオゲームアプリケーション１４０をストリーミングするストリーミングサービス１３８を含む。コンピューティングデバイス１０４は、表示スクリーン１１２及びビデオゲームストリーミングクライアント１１４を含む。ビデオゲームストリーミングクライアント１１４は、ビデオゲームイベント認識機械言語（ＶＧＥＲＭＬ（video game event recognition machine language））モデル１１０、コントロール構成決定器１１８、ゲームエンジン１２０、及びコントロール構成ライブラリ１２２を含む。図１は以下のとおりさらに詳細に説明される。
【００２５】
[0033]  コンピューティングデバイス１０２及び１３６は、移動型又は固定型の、任意の種類のコンピューティングデバイス、このようなデスクトップコンピュータ、サーバ、ビデオゲームコンソール等を各々含み得る。コンピューティングデバイス１０４は、任意の種類の移動型コンピューティングデバイス（例えば、Microsoft（登録商標）Surface（登録商標）デバイス、パーソナルデジタルアシスタント（ＰＤＡ（personal digital assistant））、ラップトップコンピュータ、ノートブックコンピュータ、Apple iPad（商標）などのタブレットコンピュータ、ネットブック等）、携帯電話（例えば、セルフォン、Microsoft Windows（登録商標）フォン、Apple iPhone、Google（登録商標）Android（商標）オペレーティングシステムを実装する電話などのスマートフォン等）、ウェアラブルコンピューティングデバイス（例えば、Google（登録商標）Glass（商標）、Oculus VR, LLCによるOculus Rift（登録商標）などのスマートグラスを含む頭部装着型デバイス等）、デスクトップコンピュータ又はＰＣ（personal computer（パーソナルコンピュータ））などの固定型コンピューティングデバイス、ゲーミングコンソール／システム（例えば、Microsoft Xbox（登録商標）、Sony PlayStation（登録商標）、Nintendo Wii（登録商標）、又はSwitch（登録商標）等）等であり得る。
【００２６】
[0034]  訓練段階１２６は、グラフィカルオーバレイを表示のために選択するために用いられるゲーム関連データ内の特徴を識別するためにライブのゲームプレイ段階１２８の間に用いられる機械学習モデルを生成するために用いられる。図１に示されるように、ビデオゲームアプリケーション１０６は、（例えば、１つ以上のプロセッサによって実行されるプログラムコードにおいて実施される）ビデオゲームプログラムである。ビデオゲームアプリケーション１０６は、コーザル（causal）ゲーム、シリアスゲーム、教育ゲーム、シューティングゲーム、運転ゲーム等を含む、任意の種類のビデオゲームであり得る。実行の間に、ビデオゲームアプリケーション１０６は、プレイ中のビデオゲームを表すデータを含む、訓練ゲームデータ１４８を生成する。訓練ゲームデータ１４８は、訓練の間に生成されたビデオゲームのゲームデータであり、ゲームをプレイするユーザに提示される。例えば、訓練ゲームデータ１４８は、表示スクリーン上における表示のための映像データ、１つ以上のラウドスピーカによる再生のための音声データ、及び／又は訓練段階の間に生成された他の種類のデータを含み得る。訓練段階１２６の間に、ビデオゲームアプリケーション１０６はまた、ゲームコントローラ、タッチスクリーン、キーボード等などの、ユーザによって用いられる１つ以上のユーザインターフェースデバイスからのユーザ入力データ１３４も受信する。ユーザ入力データ１３４は、訓練段階の間にビデオゲームをプレイする際にユーザによって取られたアクション（例えば、ボタンを押すこと、スティックを右に動かすこと等）を指示する。ユーザ入力データ１３４は、ビデオゲームアプリケーション１３４によって、ビデオゲームがどのように進行するのかを決定するために処理され、それゆえ、ユーザに提示される訓練ゲームデータ１４８の生成の際に用いられる。
【００２７】
[0035]  ＭＬアプリケーション１０８は、訓練ゲームデータ１４８及び訓練指示１４６を受信して処理し、ビデオゲームイベント認識機械言語（ＶＧＥＲＭＬ）モデル１１０を生成するように構成されている。例えば、一実施形態では、ＭＬアプリケーション１０８は、訓練ゲームデータ１４８の実際のゲームデータ、及び訓練指示１４６の形態で提供される訓練入力に基づく教師あり機械学習アルゴリズムを実施し、ＶＧＥＲＭＬモデル１１０を生成し得る。ＶＧＥＲＭＬモデル１１０は、ゲーム関連データ内の特徴を識別するべくライブのゲームプレイ段階１２８の間に用いられるために生成された機械学習モデルである。識別された特徴は、グラフィカルオーバレイを、表示、及びソースデバイス（コンピューティングデバイス１０２）とは異なるゲーム消費デバイスのユーザによる対話のために選択するために用いられる。上述されたように、訓練指示１４６は、手動で、又はコンピュータによって入力され得る。諸実施形態では、訓練指示１４６は、訓練ゲームデータのゲーム映像フレーム内に表示されたオブジェクトの場所を指示し得、訓練ゲームデータの音声フレーム内における音響のタイミングを指示し得、及び／又はさらなるゲーム関連態様を指示し得る。
【００２８】
[0036]  例えば、武器、道具、キャラクタ、車両、それらの部分（例えば、眼、ヘッドライト、テールライト、ナンバープレート等）などのオブジェクト、及び他のオブジェクトがゲームプレイの間にビデオゲームによって表示され得る。特定のゲームシナリオにとって重要であると決定されたこれら又は他のものなどのオブジェクトは、ゲーム開発者ユーザによって（又は自動的に）モデル訓練のための訓練ゲームプレイの間に、ゲーム映像内のそれらの場所を指示することなどによって（例えば、ユーザがオブジェクトの場所を指示すること、オブジェクトの周りに囲み線を描くこと等によって）、フラグを付けられ得る。加えて、又は代替的に、訓練指示１４６は、訓練ゲームデータの音声内における音響のタイミングの指示を含み得る。例えば、ユーザは、特定のゲームシナリオと相関すると考えられる、ビデオゲームにおける、自動車のエンジンの始動、武器の使用（例えば、チェーンソーの作動、銃の発射）、特定のキャラクタの発話、又は同様のものの音響の時間を指示し得る。
【００２９】
[0037]  なおさらなる実施形態では、訓練指示１４６は入力イベントのストリームを含み得る。例えば、モデル訓練を実施するユーザは、特定のゲームシナリオに相関する、ユーザが一覧表から、又はスクリーン上で自動車を選択したことに対応する１つ以上の入力イベント、ユーザが特定の武器を選択したことに対応する１つ以上の入力イベント、又は同様のものなどの、特定の入力イベントを指示し得る。なおさらなる実施形態では、訓練指示１４６は特定のハードウェア使用の指示を含み得る。例えば、指示されるハードウェア使用は、特定のゲームシナリオに相関する、特定のゲーム活動、自動車、トラック、船、ヘリコプター、キャラクタ、又は同様のものなどの、スクリーンにレンダリングされている特定のオブジェクトに対応する、特定のプロセッサ利用レベル、メモリ使用レベル、ディスクアクセス、又は同様のもの、並びにログファイル内容、ＡＰＩアクセス等の指示を含み得る。
【００３０】
[0038]  ＭＬアプリケーション１０８は、訓練ゲームデータ１４８及び訓練指示１４６に基づいてＶＧＥＲＭＬモデル１１０を生成する。ＭＬアプリケーション１０８は、教師ありベクトルマシン（ＳＶＭ（supervised vector machine））、線形回帰、ロジスティック回帰、単純ベイズ、線形判別分析、決定木、ｋ近傍アルゴリズム、ニューラルネットワーク等などの、教師ありＭＬモデル生成アルゴリズムを含む、任意の好適な技法を、ＶＧＥＲＭＬ１１０を生成するために用い得る。一実施形態では、生成されたＶＧＥＲＭＬモデル１１０は、特徴がゲームデータ内で識別されたかどうかを指示する信頼レベルを提供する能力を有する。信頼レベルが十分である（例えば、５０％超である）場合には、特徴（又は特徴）が識別されたゲームシナリオに対応するグラフィカルオーバレイが選択され得る。
【００３１】
[0039]  具体的には、ＭＬアプリケーション１０８がＶＧＥＲＭＬモデル１１０を生成すると、訓練段階１２６が完了し、ライブのゲームプレイ段階１２８が開始し得る。ライブのゲームプレイ段階１２８を可能にするために、ＶＧＥＲＭＬモデル１１０がコンピューティングデバイス１０４のビデオゲームストリーミングクライアント１１４内に含められる。ビデオゲームストリーミングクライアント１１４は、ライブのゲームプレイ段階１２８の間にストリーミングされたビデオゲームのインスタンスをプレイするために、ゲームプレイヤによってコンピューティングデバイス１０４において用いられるクライアントベースのアプリケーションである。ライブのゲームプレイ段階１２８は以下のとおりさらに詳細に説明される。
【００３２】
[0040]  上述されたように、コンピューティングデバイス１０４は、ユーザによって、コンピューティングデバイス１０４上でプレイされるように設計されていなかったビデオゲームをプレイするために使用可能である。ビデオゲームは、コンピューティングデバイス１３６などの、コンピューティングデバイスからストリーミングされ得る。例えば、ソースビデオゲームアプリケーション１４０はコンピューティングデバイス１３６（例えば、デスクトップコンピュータ、ゲームコンソール等）上で実行され得る。ソースビデオゲームアプリケーション１４０は、ゲームプレイヤがビデオゲームをプレイすることを可能にするためにコンピューティングデバイス１３６によって実行され得るビデオゲームアプリケーション１０６のインスタンスである。さらに、コンピューティングデバイス１３６は、ソースビデオゲームアプリケーション１４０のゲームデータ１４４を、コンピューティングデバイス１０４などの、別のデバイスへストリーミングするように構成されたストリーミングサービス１３８を含む。具体的には、ストリーミングサービス１３８は、１つ以上のネットワークケーブル、無線ＬＡＮ（ＷＬＡＮ）若しくは「Wi-Fi」）などのローカルエリアネットワーク（ＬＡＮ（local area network））、及び／又はインターネットなどの、ワイドエリアネットワーク（ＷＡＮ（wide area network））を含み得る、無線式及び／又は有線式の、ネットワークを通じてゲームデータ１４４を伝送するように構成されている。
【００３３】
[0041]  一実施形態では、コンピューティングデバイス１３６におけるストリーミングサービス１３８及びコンピューティングデバイス１０４におけるビデオゲームストリーミングクライアント１１４は、コンピューティングデバイス１３６において実行されるソースビデオゲームアプリケーション１４０のビデオゲームをコンピューティングデバイス１０４におけるユーザに提示するよう協働する。具体的には、ストリーミングサービス１３８は、ソースビデオゲームアプリケーション１４０の実行によって生成されたゲームデータ１４４（例えば、映像及び音声データ）を、ビデオゲームをコンピューティングデバイス１４０におけるユーザに提示するビデオゲームストリーミングクライアント１１４へストリーミングする。引き換えに、ビデオゲームストリーミングクライアント１１４は、コンピューティングデバイス１０４においてビデオゲームと対話するユーザから受信されたユーザ入力データ１４２を、ソースビデオゲームアプリケーション１４０にユーザ入力イベントとして提供するためにストリーミングサービス１３８へストリーミングする。このように、ソースビデオゲームアプリケーション１４０は第１のコンピューティングデバイス（コンピューティングデバイス１３６）において実行するが、たとえ、ビデオゲームが第２のコンピューティングデバイス上におけるプレイのために設計されていなかった場合でも、ユーザは第２のコンピューティングデバイス（コンピューティングデバイス１４０）においてビデオゲームをプレイすることができる。諸実施形態が組み込まれ得るサーバ−クライアントストリーミングサービスの例としては、Microsoft Xbox（登録商標）プラットフォーム、及びValve Corporationによって提供されるSteam（登録商標）プラットフォーム等によって提供されるものが挙げられる。
【００３４】
[0042]  さらなる例示的詳細によれば、図１に示されるように、ビデオゲームストリーミングクライアント１１４のゲームエンジン１２０が、ストリーミングサービス１３８によってストリーミングされたソースビデオゲームアプリケーション１４０からのゲームデータ１４４を受信する。一実施形態では、ビデオゲームストリーミングクライアント１１４は、コンピューティングデバイス１０４においてビデオゲームの映像及び音声を提示することを含む、ビデオゲームをコンピューティングデバイス１０４のユーザに提示すること、並びにコンピューティングデバイス１０４においてユーザによって提供されたユーザ入力イベントを受信することを行うように構成されている。例えば、諸実施形態では、ゲームエンジン１２０は、ゲームデータ１４４内の映像データの映像を表示スクリーン１１２上に表示し、ゲームデータ１４４内の（存在する場合には）音声データの音声をコンピューティングデバイス１０４のスピーカを通して流し、コンピューティングデバイス１０４のユーザに提示された入力コントロールからの入力信号を受信し得る。ユーザ入力データ１４２は、ゲームエンジン１２０によって、タッチスクリーンであり得る、表示スクリーン１１２を含む、コンピューティングデバイス１０４における１つ以上のユーザインターフェースから受信される。ユーザ入力データ１４２は、ライブのゲームプレイ段階１２８の間にビデオゲームをプレイする際にユーザによって取られたアクション（例えば、表示スクリーン１１２上に表示されたコントロールをタッチすること）を指示する。図１に示されるように、ゲームエンジン１２０は、入力コントロールからの入力信号をユーザ入力データ１４２としてソースビデオゲームアプリケーション１４０へ伝送し得る。ユーザ入力データ１４２は、ソースビデオゲームアプリケーション１４０によって、後続のビデオゲームの実行を決定するために処理され、それゆえ、ユーザに提示されるゲームデータ１４４の生成の際に用いられる。
【００３５】
[0043]  一実施形態では、ゲームデータ１４４は、ゲーム映像フレームを包含する映像ストリームの形態のゲーム映像を含む。表示スクリーン１１２は、ビデオゲームを、コンピューティングデバイスにおいてビデオゲームをプレイするユーザに示すために、ゲーム映像を表示するように構成されている。例えば、図１に示されるように、表示スクリーン１１２はビデオゲーム映像１１６を受信し、コンピューティングデバイス１０４において表示する。さらに、表示スクリーン１１２はグラフィカルオーバレイ１２４をビデオゲーム映像１１６の上に表示し得る。グラフィカルオーバレイ１２４は、ゲームプレイヤがゲームプレイ中に表示スクリーン１１２上で対話し得る、本明細書においてユーザインターフェース（ＵＩ）コントロール構成と称される、１つ以上のグラフィカルコントロールの配置を含む。
【００３６】
[0044]  コントロール構成決定器１１８は、ビデオゲームの現在のゲームシナリオに基づいてＵＩコントロール構成を選択するように構成されている。ゲームシナリオの識別を助けるために、コントロール構成決定器１１８は、ゲームデータ１４４内の１つ以上の特徴を識別するように構成されている。上述されたように、特徴は、ゲーム映像フレーム、ゲーム音声データ、ビデオゲームに提供される入力イベントのストリーム内、コンピューティングデバイスのハードウェア使用内、ログファイル、ＡＰＩ内等に存在し得る。
【００３７】
[0045]  例えば、図１に示されるように、コントロール構成決定器１１８は、特徴１３０を識別するためにＶＧＥＲＭＬ１１０にアクセスし得る。図１に示されるように、ＶＧＥＲＭＬモデル１１０はゲームデータ１４４を入力として受信し、追加的に、表示スクリーン１５０からの入力イベント１５０、及びコンピューティングデバイス１０４のタスクマネージャ若しくは他のハードウェアマネージャからのハードウェア／マシン使用データ１５２を受信してもよい。入力イベント１５０は、表示スクリーン１１２においてユーザによって提供されたユーザ入力イベント（ＵＩコントロールとの対話）のストリームの指示を含む。入力イベント１５０はまた、ゲームエンジン１２０によっても受信され、本明細書の他所において説明されるように、ソースビデオゲームアプリケーション１４０によって、ユーザ入力データ１４２内に含めて伝送される。ハードウェア使用データ１５２は、特定のゲーム活動に対応する、プロセッサ利用レベル、メモリ使用レベル、ディスクアクセス、ログファイル内容／アクセス、ＡＰＩアクセス、又は同様のものを含む、ビデオゲームプレイ中のコンピューティングデバイス１０４のハードウェアの指示を含む。ゲームデータ１４４、並びに任意選択的に、入力イベント１５０及び／又はハードウェア使用データ１５２に基づいて、ＶＧＥＲＭＬモデル１１０は特徴及び関連信頼スコア１３０を識別する。特徴及び関連信頼スコア１３０は、構成決定器１１８によってゲームシナリオを決定するために使用可能である。
【００３８】
[0046]  一実施形態では、信頼スコアが閾値と所定の関係を有する場合には、特徴が存在すると決定される。例えば、信頼スコアは、０．０（低信頼）〜１．０（高信頼）を含む、任意の好適な範囲を有し得る。信頼スコアは、０．５、０．７等などの、所定の閾値と比較され得る。信頼スコアが閾値よりも大きい場合には、コントロール構成決定器１１８は特徴を識別されたものとして指示し、コントロール構成ライブラリ１２２とインターフェースを取り、識別された特徴を指示するＵＩコントロール構成を選択するように構成されている。例えば、図１に示されるように、コントロール構成決定器１１８はコントロール構成ライブラリ１２２からＵＩコントロール構成を選択し得る。コントロール構成ライブラリ１２２は、ビデオゲームのプレイ中に提示され得る、関連付けられたグラフィカルオーバレイを有する複数のコントロール構成を含む。図１の例では、識別された特徴に応じて、コントロール構成決定器１１８は、グラフィカルオーバレイ１２４に対応するコントロール構成１３２を選択した。
【００３９】
[0047]  代替的に、コントロール構成決定器１１８は、識別された特徴に基づいてゲームシナリオを識別するために特徴−シナリオマップにアクセスし得る。具体的には、特徴−シナリオマップ内の１つ以上の特徴が特定的に探索され得る。１つ以上の特徴がゲームデータ内で見出された場合には（例えば、特定の音響、特定の色などの特定の属性を有する１つ以上の特定の画素）、識別された特徴は、特徴−シナリオマップによって、対応する現在のゲームシナリオに直接対応付けられる。例えば、例示的なビデオゲームでは、キャラクタが殺されたときに、ゲームデータ１４４内の１つ以上の特定のスクリーン画素が黒色に変化し得る。これらの黒色の画素は、特徴−シナリオマップ内の特定のゲームシナリオに対応する特徴であり得る。ゲームデータ１４４が特徴−シナリオマップに適用され得、これらの画素が、黒色であるときには、（例えば、対応するＵＩコントロール構成を選択すること／それに対応付けることによって）マップ内で指示されるゲームシナリオの対応する変化を生じさせ得る。
【００４０】
[0048]  ＵＩコントロール構成が選択されると、コントロール構成決定器１１８は、関連付けられたグラフィカルオーバレイ１２４をビデオゲームへのオーバレイとして実施するように構成されている。例えば、図１に示されるように、コントロール構成決定器１１８はコントロール構成１３２を選択し、選択されたコントロール構成１３２の指示をゲームエンジン１２０に提供する。それに応じて、ゲームエンジン１２０は、コントロール構成１３２のグラフィカルオーバレイ１２４をビデオゲーム映像１１６へのオーバレイとして表示スクリーン１１２内に表示するように構成されている。
【００４１】
[0049]  例えば、自動車のテールライトが、高い信頼値（例えば、０．８）を有する特徴として映像データ内で識別された場合には、テールライトの識別は自動車の存在を識別し得、それゆえ、ゲームプレイヤが自動車をビデオゲーム内で運転するために選択したものと指示し得る。それゆえ、識別されたテールライトの特徴に基づいてコントロール構成ライブラリ１２２から、自動車を運転するためのグラフィカルオーバレイを有するコントロール構成が選択され得る。グラフィカルオーバレイは、自動車を操向するため、自動車のスロットルを調整するため、自動車にブレーキをかけるため等の１つ以上のグラフィカルコントロールを含み得る。テールライトを識別すると、グラフィカルオーバレイが表示スクリーン１１２上に表示され得、ゲームプレイヤは、自動車を運転するためにグラフィカルオーバレイと対話し得る。
【００４２】
[0050]  諸実施形態では、システム１００は、その機能を実装するために様々な仕方で動作し得る。例えば、図２は、例示的な実施形態に係る、ビデオゲームイベント認識のための訓練された機械学習モデルを生成するためのフローチャート２００を示す。一実施形態では、フローチャート２００はコンピューティングデバイス１０２によって実装され得る。例示の目的のために、図２のフローチャート２００が図１を引き続き参照して説明される。フローチャート２００は、ゲーム映像データ内の表示オブジェクトの認識に関連するが、他の実施形態では、音響がゲーム音声データ内で識別されてもよく、入力イベントがユーザ入力データ内で識別されてもよく、マシン使用情報がマシン使用データ内で同様の仕方で識別されてもよいことに留意されたい。このようなデータのうちの任意のものが、機械学習モデルを生成するために用いられる訓練データとして用いられ得る。
【００４３】
[0051]  図２のフローチャート２００はステップ２０２から開始する。ステップ２０２において、ビデオゲームを実行し、訓練映像ストリームを含む訓練ゲームデータを生成する。例えば、図１を参照すると、ビデオゲームアプリケーション１０６をコンピューティングデバイス１０２において実行し、訓練ゲームデータ１４８を生成し得る。上述されたように、訓練ゲームデータ１４８は、訓練の間に生成されたビデオゲームのゲームデータであり、ゲームをプレイするユーザに提示される。訓練段階１２６の間に、ビデオゲームアプリケーション１０６はまた、ゲームコントローラ、タッチスクリーン、キーボード等などの、ユーザによって用いられる１つ以上のユーザインターフェースデバイスからのユーザ入力データ１３４も受信する。ユーザ入力データ１３４は実行中にビデオゲームアプリケーション１０６によって受信され、ユーザに提示される訓練ゲームデータ１４８のさらなるインスタンスの生成において用いられる。
【００４４】
[0052]  例えば、ゲームプレイヤは、ゲーム内の武器を発射するためにコントロールと対話し得る。コントロールとのゲームプレイヤの対話はユーザ入力データ１３４内に含めて受信される。ビデオゲームアプリケーション１０６は、武器の発射及びその任意の効果を組み込むようビデオゲームを実行し、これが訓練ゲームデータ１４８内に含めて出力され得る。
【００４５】
[0053]  ステップ２０４において、訓練映像ストリームのゲーム映像フレーム内に表示されたオブジェクトの訓練指示を受信する。例えば、図１を参照すると、ＭＬアプリケーション１０８が、訓練ゲームデータのゲーム映像フレーム内に表示されたオブジェクトの訓練指示を受信する。例えば、ＭＬアプリケーション１０８は、自動車のテールライト、自動車のナンバープレートの指示、及び／又は自動車の後部の他の指示を訓練指示として受信し得る。このような訓練指示は、ユーザのキャラクタが運転のために自動車にまさに乗り込もうとしているときにビデオゲームのために表示スクリーン上に表示され得る、自動車の後端部を認識するよう機械学習モデルを訓練するために、自動車の後端部に関連付けられた特徴として提供される。このような状況において、ユーザは、コンピューティングデバイスに、自動車を運転するためのコントロールを含むグラフィカルオーバレイを表示スクリーンに自動的に表示するよう望み得る。
【００４６】
[0054]  このような訓練指示は任意の好適な仕方で提供され得る。例えば、ゲーム開発者は、オブジェクトのためのスクリーンの場所／領域、及びオブジェクトのための識別子を訓練指示として指示し得る。例えば、データ対が訓練指示として提供され得る。ゲーム開発者は、映像フレーム内の表示スクリーン上に表示された自動車のテールライトの周りに自動車のテールライトの例の場所として長方形を描くことができ、長方形を、自動車のテールライト及び／又は後端部を含むものとして識別することができる。上述されたように、自動車の後端部は、ゲームプレイヤが自動車をビデオゲーム内で運転するために選択したことを指示するものとしてゲーム映像内で識別するために望ましい特徴であり得る。
【００４７】
[0055]  ステップ２０６において、訓練映像ストリーム及び訓練指示を機械学習アルゴリズムに適用し、訓練された機械学習モデルを生成する。例えば、図１を参照すると、ＭＬアプリケーション１０８が訓練映像ストリーム及び訓練指示を適用し、ＶＧＥＲＭＬモデル１１０を生成する。上述の例に従えば、ＶＧＥＲＭＬモデル１１０は、自動車関連ビデオゲームのための訓練されたモデルであり得、それゆえ、何よりも（例えば、武器、車両、キャラクタ等を識別することよりも）、キャラクタが自動車をまさに運転しようとしていると決定する能力を有するように訓練され得る。機械学習アルゴリズムは、ビデオゲームのプレイ中に自動車の後端部をどのように認識するのかを学習するべく用いるために、自動車の後端部を識別することに関連付けられた多くの様々な訓練指示を受信し得る。
【００４８】
[0056]  ＶＧＥＲＭＬモデル１１０は様々な形態で生成され得ることに留意されたい。一実施形態によれば、ＭＬアプリケーション１０８は、本明細書の他所において言及される、又は別途知られた、好適な教師あり機械学習アルゴリズムに従ってＶＧＥＲＭＬモデル１１０を生成し得る。例えば、ＭＬアプリケーション１０８は、決定木の形態のＶＧＥＲＭＬモデル１１０を生成及び／又は訓練するために、勾配ブースティング木アルゴリズム又は他の決定木アルゴリズムを実施し得る。決定木は、特徴を識別するために、入力データ（映像データ、音声データ、入力イベント、マシン使用データ等）を用いて走査され得る。代替的に、アプリケーション１０８は人工ニューラルネットワーク学習アルゴリズムを実施し、ＶＧＥＲＭＬモデル１１０を、人工ニューロンの相互連結されたグループであるニューラルネットワークとして生成し得る。ニューラルネットワークは、特徴を識別するために入力データを提示され得る。
【００４９】
[0057]  上述されたように、ＶＧＥＲＭＬモデル１１０は、現在のゲームシナリオに基づいてグラフィカルオーバレイを選択して実施するべく用いられるために、ビデオゲームストリーミングクライアント１１４内に含められる。任意の数のこのように構成されたビデオゲームストリーミングクライアント１１４が、対応するユーザデバイス内に、その内部において諸実施形態を可能にするために実装され得る。ビデオゲームストリーミングクライアント１１４は、この機能を実装するために様々な仕方で動作し得る。例えば、図３は、例示的な実施形態に係る、現在のゲーム状態に基づいてグラフィカルオーバレイを選択し、表示スクリーン上において実施するためのフローチャート３００を示す。例示の目的のために、フローチャート３００は、図１を引き続き参照して、及び図４を参照して説明される。図４は、例示的な実施形態に係る、現在のビデオゲーム状態に基づいてグラフィカルオーバレイを選択し、実施されたための図１のコンピューティングデバイス１０４関連部分を示す。
【００５０】
[0058]  図４のビデオゲームストリーミングクライアント１１４及び表示スクリーン１１２は、図１に関して上述されたのと実質的に同様の仕方で動作する。フローチャート３００はビデオゲームストリーミングクライアント１１４によって実装され得る。図４に示されるように、ビデオゲームストリーミングクライアント１１４は、コントロール構成決定器１１８、ゲームエンジン１２０、及びストレージ４０４を含む。ゲームエンジン１２０は任意選択的なゲーム映像変更器４１０を含む。コントロール構成決定器１１８は、ＶＧＥＲＭＬモデル１１０を含む、特徴識別器４０６、及びコントロール構成選択器４０８を含む。ストレージは図１のコントロール構成ライブラリ１２２を含む。当業者には、フローチャート３００に関する以下の説明に基づいて他の構造及び動作の実施形態が明らかであろう。
【００５１】
[0059]  フローチャート３００はステップ３０２から開始する。ステップ３０２において、ビデオゲームによって生成されたゲームデータを受信する。ゲームデータは、ゲーム映像フレームを包含する映像ストリームの形態のゲーム映像を含む。例えば、図１を参照すると、ゲームエンジン１２０が、ビデオゲームによって生成されたビデオゲーム映像１１６を含むゲームデータ１４４を受信する。図１に示されるように、ゲームデータ１４４は、ストリーミングサービス１３８によってソースビデオゲームアプリケーション１４０からビデオゲームストリーミングクライアント１１４へストリーミングされ得る。
【００５２】
[0060]  ステップ３０４において、ビデオゲームを、コンピューティングデバイスにおいてビデオゲームをプレイするユーザに示すために、ゲーム映像を表示スクリーン上に表示する。例えば、図１を参照すると、ビデオゲーム映像１１６がゲームエンジン１２０によってゲームデータ１４４から抽出され、表示スクリーン１１２に提供される。表示スクリーン１１２はビデオゲーム映像１１６を、コンピューティングデバイス１０４においてビデオゲームをプレイするユーザに表示する。
【００５３】
[0061]  ステップ３０６において、少なくともゲームデータ内のビデオゲームの少なくとも１つの特徴を識別する。例えば、図３を参照すると、特徴識別器４０６は、ゲームデータ内のビデオゲームの１つ以上の特徴を識別するように構成され得る。特徴識別器４０６はＶＧＥＲＭＬモデル１１０の使用によってビデオゲームの特徴を識別する。以上において指示されたように、ゲームデータ１４４はゲーム映像フレーム及びゲーム音声データのストリームを含み得る。さらなるゲーム関連データはユーザ入力イベント１５０及びハードウェア使用データ１５２を含み得る。諸実施形態では、ＶＧＥＲＭＬモデル１１０は、ビデオゲームの特徴を識別するために、ゲームデータ１４４の映像データ及び／又は音声データ、ユーザ入力イベント１５０、並びに／或いはハードウェア使用データ１５２のうちの任意の１つ以上を受信し得る。上述されたように、ＶＧＥＲＭＬ１１０は、特徴の指示、及び指示された特徴が存在する確度を指示する関連信頼値を生成し得る。識別された特徴は、視覚的オブジェクト又は音響を含む、任意のビデオゲーム特徴であり得る。さらに、複数の特徴が同時に識別されてもよく、又は特徴の系列が識別されてもよい。
【００５４】
[0062]  例えば、ＶＧＥＲＭＬモデル１１０は、０．９の信頼値を有する、音楽が特定のトラックに変化したという第１の特徴、及び０．９５の信頼値を有する、スクリーンが暗くなったという第２の特徴を指示するための特徴１３０を生成し得る。
【００５５】
[0063]  代替的に、上述されたように、図４の特徴識別器４０６は、特徴−シナリオマップ内に含まれる、特定の画素配置（例えば、色などの特定の属性を有する特定の画素）及び／又は音響などの、ゲームデータ内のビデオゲームの１つ以上の特徴を直接識別するように構成され得る。例えば、１つ以上の特定の画素の特定の色及び／又は特定の音響が特徴−シナリオマップによって特定のゲームシナリオに対応付けられてもよく、（例えば、ゲームキャラクタが歩いているところから、キャラクタが自動車に乗っているところへの）ゲームシナリオの変更をもたらす。このような場合には、ＶＧＥＲＭＬモデル１１０を用いる代わりに、特徴−シナリオマップがコントロール構成決定器１１８によって用いられてもよい。特徴−シナリオマップは特定のゲームデータ項目（例えば、特定の画素のための属性、音響等）を、関連付けられたゲームシナリオのための対応するＵＩコントロール構成に対応付け得る。特徴−シナリオマップは（例えば、ゲーム開発者によって）手動で構築されてもよく、又は諸実施形態では、他の仕方で構成されてもよい。
【００５６】
[0064]  ステップ３０８において、ビデオゲームのための複数のＵＩコントロール構成から、識別された少なくとも１つの特徴に関連付けられたユーザインターフェース（ＵＩ）コントロール構成を選択する。ＵＩコントロール構成の各々は、ビデオゲームの対応するライブのゲームシナリオにおいて対話されるように構成されたビデオゲームへの対応するグラフィカルオーバレイを規定する。例えば、図４を参照すると、コントロール構成選択器４０８は、特徴１３０に基づいてコントロール構成ライブラリ１２２からＵＩコントロール構成１３２を選択し得る。例えば、ＵＩコントロール構成１３２はライブラリ１２２内の特徴１３０に関連付けられていてもよく、これにより、特徴１３０が（許容可能な程度に高い信頼度をもって）識別されたときに、ＵＩコントロール構成１３２が選択される。一実施形態では、ＵＩコントロール構成１３２はグラフィカルオーバレイ１２４を規定する／含む。グラフィカルオーバレイ１２４は、ビデオゲームの特定のシナリオにおけるゲームプレイのために構成されている。
【００５７】
[0065]  実施形態によっては、単一の識別された特徴が、ＵＩコントロール構成を選択するためにコントロール構成によって用いられ得ることに留意されたい。例えば、テールライトが、識別された特徴である場合には、自動車の制御のためのＵＩコントロール構成が選択され得る。他の実施形態では、複数の識別された特徴が、ＵＩコントロール構成を選択するためにコントロール構成によって用いられ得る。例えば、複数の自動車関連特徴（例えば、テールライト、ナンバープレート、後面ガラス）が、自動車の制御のためのＵＩコントロール構成を選択するために識別される必要があり得る。
【００５８】
[0066]  ステップ３１０において、選択されたＵＩコントロール構成に対応するグラフィカルオーバレイを表示スクリーン内のビデオゲーム上において実施する。例えば、図３を参照すると、ゲームエンジン１２０が、選択されたＵＩコントロール構成１３２に関連付けられたグラフィカルオーバレイ１２４に（コントロール構成選択器４０８を介して）アクセスし得る。ゲームエンジン１２０はグラフィカルオーバレイ１２４をビデオゲーム映像１１６へのオーバレイとして表示スクリーン１１２内に表示する。
【００５９】
[0067]  したがって、グラフィカルオーバレイ１２４が表示スクリーン１１２内に表示されると、ゲームプレイヤはグラフィカルオーバレイ１２４の表示されたコントロールと対話し得る。グラフィカルオーバレイ１２４は、上述されたようにゲーム関連データ内で識別された１つ以上の特徴の存在に対応する、現在のゲームシナリオに対応する。
【００６０】
[0068]  一実施形態では、ビデオゲームから受信され、ビデオゲーム映像１１６として表示される映像データのストリームを変更するためのビデオゲーム変更器４１０が存在し得ることに留意されたい。例えば、一実施形態では、ビデオゲーム変更器４１０は、ビデオゲーム映像１１６のフレーム（又は複数のフレーム）として表示されるべき画像をレンダリングするように構成されている。ビデオゲーム変更器４１０は、画像を、受信された映像フレーム内に合成し、ビデオゲーム映像１１６内の変更された映像フレームを作成し得る。ビデオゲーム変更器４１０は、代替的に、ビデオゲーム映像１１６としての表示のために映像ストリーム内に挿入される、及び／又はその中の映像フレームを置換するための、全く新たな映像フレームを生成し得る。
【００６１】
[0069]  上述されたように、ビデオゲームプレイ中に表示されたオブジェクトはゲームシナリオの変化を指示し得、それゆえ、ゲームオーバレイを変更するためのトリガになり得る。したがって、図６は、例示的な実施形態に係る、ビデオゲーム内のオブジェクトを識別するためのフローチャート６００を示す。フローチャート６００はフローチャート３００（図３）のステップ３０６の間に実行され得る。例示の目的のために、フローチャート６００は、図４を引き続き参照して、及び図５を参照して説明される。フローチャート６００はゲーム映像データ内の表示オブジェクトの認識に関して説明されているが、他の実施形態では、音響がゲーム音声データ内で特徴として識別され得ることに留意されたい。さらに、特徴は、ユーザ入力データ内の入力イベント、及びマシン使用データを用いて識別され得る。諸実施形態は、ビデオゲームの特徴を識別するために用いられる、任意の組み合わせによる、このようなデータのうちの任意のものに関する。
【００６２】
[0070]  図５は、例示的な実施形態に係る、グラフィカルオーバレイを選択するために用いられるビデオゲーム内の特徴を識別するための図１のコンピューティングデバイス１０４の関連部分のブロック図を示す。フローチャート６００は特徴識別器３０６によって実装され得る。当業者には、フローチャート６００に関する以下の説明に基づいて他の構造及び動作の実施形態が明らかであろう。フローチャート６００は以下のように説明される。
【００６３】
[0071]  フローチャート６００はステップ６０２から開始する。ステップ６０２において、表示スクリーンの所定のスクリーン領域をオブジェクトの画像のために分析する。例えば、図５を参照すると、特徴識別器３０２のＶＧＥＲＭＬモデル１１０が、表示オブジェクトのための（表示スクリーン１１２上に示される）所定のスクリーン領域５１８を含む、全ての表示領域内の（図１におけるゲームデータ１４４の）ゲーム映像データ１１６を分析し得る。ＶＧＥＲＭＬモデル１１０は、所定のスクリーン領域５１８に、その領域が、関心のあるオブジェクトがゲームシナリオの変化と相関してゲームプレイ中に現れると分かっている場所であるがゆえに、注目するように構成され得る。例えば、所定のスクリーン領域５１８は、ＶＧＥＲＭＬモデル１１０の訓練（例えば、図２のフローチャート２００）の間にオブジェクトの場所として指示されていてもよい。
【００６４】
[0072]  例えば、図５に示されるように、所定のスクリーン領域５１８は、ユーザが自分のゲーム内キャラクタを、自動車を運転するために選択して乗り込むように制御したときに、自動車のテールライトが現れるための所定の場所であり得る。所定のスクリーン領域５１８内で識別されたテールライトは、ゲームが自動車運転シナリオに入ったことと高く相関する。それゆえ、ＶＧＥＲＭＬモデル１１０は自動車のテールライトを領域５１８内で識別し得る。
【００６５】
[0073]  ステップ６０４において、オブジェクトの画像が所定のスクリーン領域内に包含される確率を指示する、オブジェクトに関連付けられた信頼スコアを決定する。例えば、図５を参照すると、ＶＧＥＲＭＬモデル１１０が、オブジェクトの画像が所定のスクリーン領域内に包含される確率を指示する、オブジェクトに関連付けられた信頼スコアを決定する。
【００６６】
[0074]  例えば、図５に示されるように、特徴識別器３０６は、ＶＧＥＲＭＬモデル１１０によって生成された特徴５０８を出力する。特徴５０８は、自動車のテールライトが識別されたこと、及び関連付けられた生成された信頼スコアを指示し得る。コントロール構成選択器４０８は特徴５０８を受信し、信頼スコアが十分に高い（例えば、所定の閾値よりも大きい）場合には、コントロール構成選択器４０８は、識別された特徴と相関するＵＩコントロール構成をライブラリ１２２から選択する。図５の例では、コントロール構成選択器４０８は、識別された自動車テールライトと相関する、自動車用ＵＩコントロール構成５０２を選択する。
【００６７】
[0075]  コントロール構成選択器４０８は、自動車用ＵＩコントロール構成５０２に関連付けられた自動車用ＵＩオーバレイ５１０をゲームエンジン１２０に提供する。ゲームエンジン１２０は、自動車用ＵＩオーバレイ５１０を表示スクリーン１１２内のビデオゲーム映像１１６の上に表示するように構成されている。それゆえ、ユーザは、自分のゲーム内キャラクタによって自動車を運転するために自動車用ＵＩオーバレイ５１０のコントロールと対話することができる。自動車用ＵＩオーバレイ５１０は、汎用のＵＩオーバレイとなるのではなく、ビデオゲーム内での自動車の運転のためにカスタマイズされており、これにより、ユーザのゲームエクスペリエンスを改善する。
【００６８】
[0076]  上述されたように、特定のビデオゲームに合わせるために、諸実施形態は、グラフィカルオーバレイのコントロールによって提供される入力応答の調整を可能にする。ゲーム開発者は、ＵＩコントロールの対象を特定の対象入力デバイスとする過程で、ＵＩコントロールのための不感帯及び特定用途向け応答曲線を作成し得る。例えば、対象入力デバイスは、キーボード、マウス、又はゲームコントローラであり得る。したがって、ゲームストリーミングを実施する際には、クライアントコンピューティングデバイスにおける新たな入力コントロール（例えば、タッチコントロール）が、ゲームコントローラ上のスティックであり得る、元来意図された入力コントロールではないために、コントロールの入力応答が不正確になり得る。それゆえ、以下において説明されるように、システムは、クライアントデバイスにおけるＵＩコントロールの入力応答の調整を提供する。
【００６９】
[0077]  例えば、サムスティックなどの２次元コントロールは２次元旋回曲線を有し、放射状、楕円形、又は正方形などの幾何形状を有し得る。ビデオゲームがゲームコントローラのために調整されている場合には、自動車を左又は右に操向するために、サムスティック上の水平軸が−１から＋１まで枢転し得る。ゲーム開発者は、サムスティックの中央枢転領域（例えば、−．２５〜＋．２５）内の領域を、サムスティックがそこに位置付けられているときには操向が生じない不感帯となるようにプログラムし得、これは、操向がユーザに過度に落ち着きなく感じられることを防止し得る。さらに、応答曲線の最後においては、ユーザがサムスティックを用いて極端な動きを行った際の急旋回を可能にするために、より極端な応答がプログラムされてもよい。しかし、タッチスクリーンなどの、異なるデバイス上で用いられる際には、タッチコントロールが必ずしもサムスティック応答曲線を用いてうまく機能するとは限らないため、ユーザは不十分なエクスペリエンスを有することになる。
【００７０】
[0078]  それゆえ、一実施形態では、コントロール調整を用いて、ゲーム内の応答と１対１となるコントロールのための均一な応答を有するように、ゲーム調整を平坦化し得る。平坦化後に、コントロールを、タッチスクリーンなどの、クライアントコントロールのために調整し得る。このような調整は、例えば、対応する範囲を有する１つ以上の不感帯を挿入すること、曲線の領域を切り抜くこと、応答曲率を変更すること等を含み得る。
【００７１】
[0079]  したがって、諸実施形態では、コントロール構成決定器１１８は、コントロール調整を可能にするように構成され得る。例えば、コントロール構成決定器１１８は図８に従って動作し得る。図８は、例示的な実施形態に係る、タッチスクリーングラフィカルオーバレイに関連付けられたコントロールを調整するためのフローチャート８００を示す。例示の目的のために、フローチャート８００は、図４及び図５を引き続き参照して、並びに図７を参照して説明される。図７は、例示的な実施形態に係る、ビデオゲームグラフィカルオーバレイのユーザインターフェースコントロールを調整するための図１のコンピューティングデバイス１０４の関連部分のブロック図を示す。
【００７２】
[0080]  フローチャート８００はゲーム入力応答調整器７２０によって実装され得る。当業者には、フローチャート８００に関する以下の説明に基づいて他の構造及び動作の実施形態が明らかであろう。フローチャート８００は以下のように説明される。
【００７３】
[0081]  フローチャート８００はステップ８０２から開始する。ステップ８０２において、物理的ゲームコントローラ入力デバイスに関連付けられたゲーム入力応答曲線を線形化する。例えば、図７の例を参照すると、ゲーム入力応答調整器７２０が、自動車用ＵＩコントロール構成７０６のコントロールに関連付けられたコントロール入力応答曲線７０２を線形化する。例えば、コントロール入力応答曲線７０２はゲームコントローラのスティック又はボタンに元来関連付けられていてもよく、それゆえ、上述されたように線形でなくてもよい。ゲーム入力応答調整器７２０は、コントロール入力応答曲線７０２を、１：１の（曲線状でない）入力応答を有するよう平坦化するように構成されている。
【００７４】
[0082]  ステップ８０４において、線形化されたゲーム入力応答曲線をグラフィカルオーバレイのタッチ入力のために調整する。例えば、図７を参照すると、ゲーム入力応答調整器７２０が、ゲーム開発者又は他のユーザがグラフィカルオーバレイのコントロール入力応答曲線７０２のための調整情報を入力することを可能にする。諸実施形態では、調整情報は、自動車用ＵＩコントロール構成７０６に関連付けられた自動車用グラフィカルオーバレイ７１０を表示する、表示スクリーン１１２におけるタッチ入力の調節の形態のものであり得る。ゲーム開発は、ゲーム入力応答調整器７２０によって表示スクリーン１１２において表示された１つ以上の制御コントロールと対話することなどによって、コントロール入力応答曲線状７０２の調整を任意の仕方で調節することを可能にされ得る。ゲーム入力応答調整器７２０は、コントロール入力応答曲線７０２を、（ステップ８０２の）平坦化されたバージョンから、任意の所望の曲率を有すると共に、所望される場合には、１つ以上の不感領域を有するように調整することを可能にする。
【００７５】
[0083]  ステップ８０６において、調整されたゲーム入力応答曲線をグラフィカルオーバレイのタッチ入力に関連付ける。例えば、図７に示されるように、ゲーム入力応答調整器７２０が、コントロール入力応答曲線７０２を、自動車用ＵＩコントロール構成７０２において規定された自動車用グラフィカルオーバレイ７１０の関連コントロールに関連付ける。
【００７６】
ＩＩＩ．例示的なコンピュータシステムの実装形態
[0084]  コンピューティングデバイス１０２、コンピューティングデバイス１０４、ビデオゲームアプリケーション１０６、ＭＬアプリケーション１０８、ＶＧＥＲＭＬモデル１１０、表示スクリーン１１２、ビデオゲームストリーミングクライアント１１４、ビデオゲーム映像１１６、コントロール構成決定器１１８、ゲームエンジン１２０、コントロール構成ライブラリ１２２、ゲーム入力応答調整器７２０、ストレージ４０４、特徴識別器４０６、コントロール構成選択器４０８、ゲーム映像変更器４１０、フローチャート２００、フローチャート３００、フローチャート６００、及びフローチャート８００は、ハードウェア、或いはソフトウェア及び／又はファームウェアのうちの一方又は両方と組み合わせたハードウェアの形で実施され得る。例えば、コンピューティングデバイス１０２、コンピューティングデバイス１０４、ビデオゲームアプリケーション１０６、ＭＬアプリケーション１０８、ＶＧＥＲＭＬモデル１１０、表示スクリーン１１２、ビデオゲームストリーミングクライアント１１４、ビデオゲーム映像１１６、コントロール構成決定器１１８、ゲームエンジン１２０、コントロール構成ライブラリ１２２、ゲーム入力応答調整器７２０、ストレージ４０４、特徴識別器４０６、コントロール構成選択器４０８、ゲーム映像変更器４１０、フローチャート２００、フローチャート３００、フローチャート６００、及びフローチャート８００は、１つ以上のプロセッサにおいて実行され、コンピュータ可読記憶媒体内に記憶されるように構成されたコンピュータプログラムコード／命令として実施され得る。代替的に、コンピューティングデバイス１０２、コンピューティングデバイス１０４、ビデオゲームアプリケーション１０６、ＭＬアプリケーション１０８、ＶＧＥＲＭＬモデル１１０、表示スクリーン１１２、ビデオゲームストリーミングクライアント１１４、ビデオゲーム映像１１６、コントロール構成決定器１１８、ゲームエンジン１２０、コントロール構成ライブラリ１２２、ゲーム入力応答調整器７２０、ストレージ４０４、特徴識別器４０６、コントロール構成選択器４０８、ゲーム映像変更器４１０、フローチャート２００、フローチャート３００、フローチャート６００、及びフローチャート８００は、ハードウェア論理／電気回路機構として実施され得る。
【００７７】
[0085]  例えば、一実施形態では、コンピューティングデバイス１０２、コンピューティングデバイス１０４、ビデオゲームアプリケーション１０６、ＭＬアプリケーション１０８、ＶＧＥＲＭＬモデル１１０、表示スクリーン１１２、ビデオゲームストリーミングクライアント１１４、ビデオゲーム映像１１６、コントロール構成決定器１１８、ゲームエンジン１２０、コントロール構成ライブラリ１２２、ゲーム入力応答調整器７２０、ストレージ４０４、特徴識別器４０６、コントロール構成選択器４０８、ゲーム映像変更器４１０、フローチャート２００、フローチャート３００、フローチャート６００、及びフローチャート８００のうちの、任意の組み合わせによる、１つ以上は、ＳｏＣにおいて共同で実施され得る。ＳｏＣは、プロセッサ（例えば、中央処理装置（ＣＰＵ（central processing unit））、マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ（digital signal processor））等）、メモリ、１つ以上の通信インターフェース、及び／又はさらなる回路のうちの１つ以上を含む集積回路チップを含み得、任意選択的に、受信されたプログラムコードを実行し、及び／又は機能を実装するための組み込みファームウェアを含み得る。
【００７８】
[0086]  図９は、諸実施形態が実施され得るコンピューティングデバイス９００の例示的な実装形態を示す。例えば、コンピューティングデバイス１０２及びコンピューティングデバイス１０４は、コンピューティングデバイス９００の１つ以上の特徴及び／又は代替的な特徴を含む、固定型又は移動型コンピュータの実施形態におけるコンピューティングデバイス９００と同様の１つ以上のコンピューティングデバイスにおいて各々実施され得る。本明細書において与えられるコンピューティングデバイス９００の説明は例示の目的のために与えられており、限定であることを意図されていない。諸実施形態は、当業者に知られているように、さらなる種類のコンピュータシステムにおいて実施され得る。
【００７９】
[0087]  図９に示されるように、コンピューティングデバイス９００は、プロセッサ回路９０２と称される、１つ以上のプロセッサと、システムメモリ９０４と、システムメモリ９０４を含む様々なシステム構成要素をプロセッサ回路９０２に結合するバス９０６とを含む。プロセッサ回路９０２は、１つ以上の物理的ハードウェア電気回路デバイス要素及び／又は集積回路デバイス（半導体材料チップ若しくはダイ）において、中央処理装置（ＣＰＵ）、マイクロコントローラ、マイクロプロセッサ、及び／又は他の物理的ハードウェアプロセッサ回路として実施された電気及び／又は光回路である。プロセッサ回路９０２は、オペレーティングシステム９３０のプログラムコード、アプリケーションプログラム９３２、他のプログラム９３４等などの、コンピュータ可読媒体内に記憶されたプログラムコードを実行し得る。バス９０６は、メモリバス又はメモリコントローラ、周辺バス、アクセラレイティッドグラフィックスポート、並びに種々のバスアーキテクチャのうちの任意のものを用いるプロセッサ又はローカルバスを含む、いくつかの種類のバス構造のうちの任意のもののうちの１つ以上を表す。システムメモリ９０４は、リードオンリーメモリ（ＲＯＭ（read only memory））９０８及びランダムアクセスメモリ（ＲＡＭ（random-access memory））９１０を含む。基本入力／出力システム９１２（ＢＩＯＳ（basic input/output system））がＲＯＭ９０８内に記憶されている。
【００８０】
[0088]  コンピューティングデバイス９００はまた、以下のドライブ：ハードディスクからの読み出し、及びそれへの書き込みのためのハードディスクドライブ９１４、取り外し可能磁気ディスク９１８からの読み出し、及びそれへの書き込みのための磁気ディスクドライブ９１６、並びにＣＤ  ＲＯＭ、ＤＶＤ  ＲＯＭ、又は他の光媒体などの、取り外し可能光ディスク９２２からの読み出し、及びそれへの書き込みのための光ディスクドライブ９２０のうちの１つ以上を有する。ハードディスクドライブ９１４、磁気ディスクドライブ９１６、及び光ディスクドライブ９２０は、それぞれ、ハードディスクドライブインターフェース９２４、磁気ディスクドライブインターフェース９２６、及び光学ドライブインターフェース９２８によってバス９０６に接続されている。ドライブ及びそれらの関連コンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、及びコンピュータのための他のデータの不揮発性記憶をもたらす。ハードディスク、取り外し可能磁気ディスク、及び取り外し可能光ディスクが説明されたが、フラッシュメモリカード、デジタルビデオディスク、ＲＡＭ、ＲＯＭ、及び他のハードウェア記憶媒体などの、他の種類のハードウェアベースのコンピュータ可読記憶媒体を、データを記憶するために用いることもできる。
【００８１】
[0089]  多数のプログラムモジュールが、ハードディスク、磁気ディスク、光ディスク、ＲＯＭ、又はＲＡＭ上に記憶され得る。これらのプログラムは、オペレーティングシステム９３０、１つ以上のアプリケーションプログラム９３２、他のプログラム９３４、及びプログラムデータ９３６を含む。アプリケーションプログラム９３２又は他のプログラム９３４は、例えば、コンピューティングデバイス１０２、コンピューティングデバイス１０４、ビデオゲームアプリケーション１０６、ＭＬアプリケーション１０８、ＶＧＥＲＭＬモデル１１０、表示スクリーン１１２、ビデオゲームストリーミングクライアント１１４、ビデオゲーム映像１１６、コントロール構成決定器１１８、ゲームエンジン１２０、コントロール構成ライブラリ１２２、ゲーム入力応答調整器７２０、ストレージ４０４、特徴識別器４０６、コントロール構成選択器４０８、ゲーム映像変更器４１０、フローチャート２００、フローチャート３００、フローチャート６００、及びフローチャート８００、並びに／或いは本明細書において説明されるさらなる実施形態を実施するためのコンピュータプログラム論理（例えば、コンピュータプログラムコード又は命令）を含み得る。
【００８２】
[0090]  ユーザは、キーボード９３８及びポインティングデバイス９４０などの入力デバイスを通じてコマンド及び情報をコンピューティングデバイス９００に入力し得る。他の入力デバイス（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、タッチスクリーン及び／又はタッチパッド、音声入力を受け付けるための音声認識システム、ジェスチャ入力を受け付けるためのジェスチャ認識システム、或いは同様のものを含み得る。これら及び他の入力デバイスは、多くの場合、バス９０６に結合されたシリアルポートインターフェース９４２を通じてプロセッサ回路９０２に接続されるが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス（ＵＳＢ（universal serial bus））などの、他のインターフェースによって接続されてもよい。
【００８３】
[0091]  表示スクリーン９４４も、ビデオアダプタ９４６などの、インターフェースを介してバス９０６に接続されている。表示スクリーン９４４はコンピューティングデバイス９００の外部にあるか、又はそれに組み込まれ得る。表示スクリーン９４４は情報を表示すると共に、ユーザコマンド及び／又は他の情報を（例えば、タッチ、フィンガジェスチャ、仮想キーボード等によって）受け付けるためのユーザインターフェースであり得る。表示スクリーン９４４に加えて、コンピューティングデバイス９００は、スピーカ及びプリンタなどの他の周辺出力デバイス（図示せず）を含み得る。
【００８４】
[0092]  コンピューティングデバイス９００は、アダプタ若しくはネットワークインターフェース９５０、モデム９５２、又はネットワークを通じた通信を確立するための他の手段を通じてネットワーク９４８（例えば、インターネット）に接続される。内部又は外部にあり得る、モデム９５２は、図９に示されるように、シリアルポートインターフェース９４２を介してバス９０６に接続され得るか、又はパラレルインターフェースを含む、別のインターフェース形式を用いてバス９０６に接続され得る。
【００８５】
[0093]  本明細書において使用するとき、用語「コンピュータプログラム媒体」、「コンピュータ可読媒体」、及び「コンピュータ可読記憶媒体」は、ハードディスクドライブ９１４に関連付けられたハードディスク、取り外し可能磁気ディスク９１８、取り外し可能光ディスク９２２、ＲＡＭ、ＲＯＭ、フラッシュメモリカード、デジタルビデオディスク、ｚｉｐディスク、ＭＥＭ、ナノテクノロジーベースの記憶デバイスなどの他の物理的ハードウェア媒体、及びさらなる種類の物理的／有形のハードウェア記憶媒体などの物理的ハードウェア媒体を指すために使用される。このようなコンピュータ可読記憶媒体は通信媒体とは区別され、それらとは重複しない（通信媒体を含まない）。通信媒体は、搬送波などの変調データ信号でコンピュータ可読命令、データ構造、プログラムモジュール、又はその他のデータを具現する。用語「変調データ信号」は、信号内に情報を符号化するような仕方でその特性のうちの１つ以上を設定又は変更させた信号を意味する。限定ではなく、例として、通信媒体は、音響、ＲＦ、赤外線、及び他の無線媒体などの無線媒体、並びに有線媒体を含む。諸実施形態はまた、コンピュータ可読記憶媒体に関する実施形態とは別個であり、重複しないこのような通信媒体に関する。
【００８６】
[0094]  上述されたように、コンピュータプログラム及びモジュール（アプリケーションプログラム９３２及び他のプログラム９３４を含む）は、ハードディスク、磁気ディスク、光ディスク、ＲＯＭ、ＲＡＭ、又は他のハードウェア記憶媒体上に記憶され得る。このようなコンピュータプログラムはまた、ネットワークインターフェース９５０、シリアルポートインターフェース９４２、又は任意の他のインターフェース形式を介して受信され得る。このようなコンピュータプログラムは、アプリケーションによって実行又はロードされたときに、コンピューティングデバイス９００が、本明細書において説明される実施形態の特徴を実施することを可能にする。したがって、このようなコンピュータプログラムはコンピューティングデバイス９００のコントローラを表す。
【００８７】
[0095]  諸実施形態はまた、任意のコンピュータ可読媒体上に記憶されたコンピュータコード又は命令を含むコンピュータプログラム製品に関する。このようなコンピュータプログラム製品は、ハードディスクドライブ、光ディスクドライブ、メモリデバイスパッケージ、ポータブルメモリスティック、メモリカード、及び他の種類の物理的記憶ハードウェアを含む。
【００８８】
ＩＶ．追加の例示的な実施形態
[0096]  表示スクリーンを有するコンピューティングデバイスにおける方法が本明細書において説明される。本方法は、ビデオゲームによって生成されたゲームデータを受信することであって、ゲームデータが、ゲーム映像フレームを包含する映像ストリームの形態のゲーム映像を含む、受信することと、ビデオゲームを、コンピューティングデバイスにおいてビデオゲームをプレイするユーザに示すために、表示スクリーン上において、ゲーム映像を表示することと、少なくともゲームデータ内のビデオゲームの少なくとも１つの特徴を識別することと、ビデオゲームのための複数のＵＩコントロール構成から、識別された少なくとも１つの特徴に関連付けられたユーザインターフェース（ＵＩ）コントロール構成を選択することであって、ＵＩコントロール構成の各々が、ビデオゲームの対応するライブのゲームシナリオにおいて対話されるように構成されたビデオゲームへの対応するグラフィカルオーバレイを規定する、選択することと、表示スクリーン内のビデオゲーム上において、選択されたＵＩコントロール構成に対応するグラフィカルオーバレイを実施することと、を含む。
【００８９】
[0097]  上述の方法の一実施形態では、前記識別することが、以下のもの：ゲームデータのゲーム映像フレーム、ゲームデータのゲーム音声データ、ビデオゲームに提供される入力イベントのストリーム、又はコンピューティングデバイスのハードウェアの使用、のうちの少なくとも１つにおけるビデオゲームの特徴を識別することを含む。
【００９０】
[0098]  上述の方法の別の実施形態では、少なくとも１つの特徴がオブジェクトを含み、前記識別することが、表示スクリーンの所定のスクリーン領域をオブジェクトの画像のために分析することと、オブジェクトの画像が所定のスクリーン領域内に包含される確率を指示するオブジェクトに関連付けられた信頼スコアを決定することと、をさらに含む。
【００９１】
[0099]  上述の方法のさらに別の実施形態では、前記分析することが、オブジェクトの画像を包含する映像ストリームのゲーム映像フレームの部分を、訓練された機械学習モデルに適用し、信頼スコアを生成することを含む。
【００９２】
[0100]  上述の方法のさらに別の実施形態では、本方法が、ビデオゲームを実行し、訓練映像ストリームを含む訓練ゲームデータを生成することと、訓練映像ストリームを含む訓練ゲームデータのゲーム映像フレーム内に表示されたオブジェクトの訓練指示を受信することと、訓練映像ストリーム及び訓練指示を含む訓練ゲームデータを機械学習アルゴリズムに適用し、訓練された機械学習モデルを生成することと、をさらに含む。
【００９３】
[0101]  上述の方法のさらに別の実施形態では、表示スクリーンがタッチスクリーンであり、本方法が、グラフィカルオーバレイに対応する選択されたＵＩコントロール構成に関連付けられたコントロールをタッチスクリーンのために調整することをさらに含み、前記調整することが、物理的ゲームコントローラ入力デバイスに関連付けられたゲーム入力応答曲線を線形化すること、線形化されたゲーム入力応答曲線をグラフィカルオーバレイのタッチ入力のために調整すること、及び調整されたゲーム入力応答曲線をグラフィカルオーバレイのタッチ入力に関連付けること、を含む。
【００９４】
[0102]  上述の方法のさらに別の実施形態では、ゲームデータがゲーム映像フレームを含み、ゲーム映像フレームが、コンピューティングデバイスによってレンダリングされ、ゲーム映像フレーム内に合成された画像を含む。
【００９５】
[0103]  コンピューティングデバイスにおけるシステムが本明細書において説明される。システムはビデオゲームストリーミングクライアントを含み、ビデオゲームストリーミングクライアントは、ゲームエンジンであって、ビデオゲームによって生成されたゲームデータを受信することであって、ゲームデータが、ゲーム映像フレームを包含する映像ストリームの形態のゲーム映像を含む、受信すること、及びビデオゲームを、コンピューティングデバイスにおいてビデオゲームをプレイするユーザに示すために、ゲーム映像を表示スクリーン上に表示すること、を行うように構成されたゲームエンジンと、コントロール構成決定器であって、特徴識別器であって、少なくともゲームデータ内のビデオゲームの少なくとも１つの特徴を識別するように構成されている、特徴識別器、並びにコントロール構成選択器であって、ビデオゲームのための複数のＵＩコントロール構成から、識別された少なくとも１つの特徴に関連付けられたユーザインターフェース（ＵＩ）コントロール構成を選択することであって、ＵＩコントロール構成の各々が、ビデオゲームの対応するライブのゲームシナリオにおいて対話されるように構成されたビデオゲームへの対応するグラフィカルオーバレイを規定する、選択すること、及び選択されたＵＩコントロール構成に対応するグラフィカルオーバレイを表示スクリーン内のビデオゲーム上において実施すること、を行うように構成されている、コントロール構成選択器、を備える、コントロール構成決定器と、を備える。
【００９６】
[0104]  上述のシステムの一実施形態では、特徴識別器が、以下のもの：ゲームデータのゲーム映像フレーム、ゲームデータのゲーム音声データ、ビデオゲームに提供される入力イベントのストリーム、又はコンピューティングデバイスのハードウェアの使用、のうちの少なくとも１つにおけるビデオゲームの特徴を識別するようにさらに構成されている。
【００９７】
[0105]  上述のシステムの別の実施形態では、少なくとも１つの特徴がオブジェクトを含み、特徴識別器が、表示スクリーンの所定のスクリーン領域をオブジェクトの画像のために分析することと、オブジェクトの画像が所定のスクリーン領域内に包含される確率を指示するオブジェクトに関連付けられた信頼スコアを決定することと、を行うようにさらに構成されている。
【００９８】
[0106]  上述のシステムのさらに別の実施形態では、特徴識別器が、オブジェクトの画像を包含する映像ストリームのゲーム映像フレームの部分を、訓練された機械学習モデルに適用し、信頼スコアを生成するように構成されている。
【００９９】
[0107]  上述のシステムのさらに別の実施形態では、表示スクリーンがタッチスクリーンであり、ビデオゲームストリーミングクライアントが、グラフィカルオーバレイに対応する選択されたＵＩコントロール構成に関連付けられたコントロールをタッチスクリーンのために調整するように構成されたゲーム入力応答調整器を備え、ゲーム入力応答調整器が、物理的ゲームコントローラ入力デバイスに関連付けられたゲーム入力応答曲線を線形化すること、線形化されたゲーム入力応答曲線をグラフィカルオーバレイのタッチ入力のために調整すること、及び調整されたゲーム入力応答曲線をグラフィカルオーバレイのタッチ入力に関連付けること、を行うように構成されている。
【０１００】
[0108]  上述のシステムのさらに別の実施形態では、ゲームデータがゲーム映像フレームを含み、ゲームエンジンが、画像をレンダリングし、画像をゲーム映像フレーム内に合成するように構成されたゲーム映像変更器を含む。
【０１０１】
[0109]  少なくとも１つのプロセッサによって実行されたときに、少なくとも１つのプロセッサに方法を実施させるコンピュータプログラム論理が上に記録されたコンピュータ可読媒体であって、本方法が、ビデオゲームによって生成されたゲームデータを受信することであって、ゲームデータが、ゲーム映像フレームを包含する映像ストリームの形態のゲーム映像を含む、受信することと、ビデオゲームを、コンピューティングデバイスにおいてビデオゲームをプレイするユーザに示すために、表示スクリーン上において、ゲーム映像を表示することと、少なくともゲームデータ内のビデオゲームの少なくとも１つの特徴を識別することと、ビデオゲームのための複数のＵＩコントロール構成から、識別された少なくとも１つの特徴に関連付けられたユーザインターフェース（ＵＩ）コントロール構成を選択することであって、ＵＩコントロール構成の各々が、ビデオゲームの対応するライブのゲームシナリオにおいて対話されるように構成されたビデオゲームへの対応するグラフィカルオーバレイを規定する、選択することと、表示スクリーン内のビデオゲーム上において、選択されたＵＩコントロール構成に対応するグラフィカルオーバレイを実施することと、を含む。
【０１０２】
[0110]  上述のコンピュータ可読媒体の一実施形態では、前記識別することが、以下のもの：ゲームデータのゲーム映像フレーム、ゲームデータのゲーム音声データ、ビデオゲームに提供される入力イベントのストリーム、又はコンピューティングデバイスのハードウェアの使用、のうちの少なくとも１つにおけるビデオゲームの特徴を識別することを含む。
【０１０３】
[0111]  上述のコンピュータ可読媒体の別の実施形態では、少なくとも１つの特徴がオブジェクトを含み、前記識別することが、表示スクリーンの所定のスクリーン領域をオブジェクトの画像のために分析することと、オブジェクトの画像が所定のスクリーン領域内に包含される確率を指示するオブジェクトに関連付けられた信頼スコアを受信することと、をさらに含む。
【０１０４】
[0112]  上述のコンピュータ可読媒体の別の実施形態では、前記分析することが、オブジェクトの画像を包含する映像ストリームのゲーム映像フレームの部分を、訓練された機械学習モデルに適用し、信頼スコアを生成することを含む。
【０１０５】
[0113]  上述のコンピュータ可読媒体の別の実施形態では、本方法が、ビデオゲームを実行し、訓練映像ストリームを生成することと、訓練映像ストリームのゲーム映像フレーム内に表示されたオブジェクトの訓練指示を受信することと、訓練映像ストリーム及び訓練指示を機械学習アルゴリズムに適用し、訓練された機械学習モデルを生成することと、をさらに含む。
【０１０６】
[0114]  上述のコンピュータ可読媒体の別の実施形態では、表示スクリーンがタッチスクリーンであり、本方法が、グラフィカルオーバレイに対応する選択されたＵＩコントロール構成に関連付けられたコントロールをタッチスクリーンのために調整することをさらに含み、前記調整することが、物理的ゲームコントローラ入力デバイスに関連付けられたゲーム入力応答曲線を線形化すること、線形化されたゲーム入力応答曲線をグラフィカルオーバレイのタッチ入力のために調整すること、及び調整されたゲーム入力応答曲線をグラフィカルオーバレイのタッチ入力に関連付けること、を含む。
【０１０７】
[0115]  上述のコンピュータ可読媒体の別の実施形態では、ゲームデータがゲーム映像フレームを含み、ゲーム映像フレームが、コンピューティングデバイスによってレンダリングされ、ゲーム映像フレーム内に合成された画像を含む。
【０１０８】
Ｖ．結論
[0116]  本出願の様々な実施形態が以上において説明されたが、それらは、限定ではなく、単なる例として提示されたにすぎないことを理解されたい。添付の請求項において定義される本出願の趣旨及び範囲から逸脱することなく、形態及び細部の様々な変更が実施形態においてなされ得ることが当業者によって理解されるであろう。したがって、本出願の広さ及び範囲は、上述された例示的な実施形態のうちのいずれによっても限定されてはならず、添付の請求項及びそれらの等価物にのみ従って定義されるべきである。
【図１】
2022502102.tif 000003
【図２】
2022502102.tif 000004
【図３】
2022502102.tif 000005
【図４】
2022502102.tif 000006
【図５】
2022502102.tif 000007
【図６】
2022502102.tif 000008
【図７】
2022502102.tif 000009
【図８】
2022502102.tif 000010
【図９】
2022502102.tif 000011
【国際調査報告】
2022502102.tif 000012
2022502102.tif 000013
2022502102.tif 000014
2022502102.tif 000015
2022502102.tif 000016