(57)【要約】      （修正有）【課題】ビデオゲームのゲームプレイの記録を生成する方法が提供される。【解決手段】少なくともビデオおよび対応するオーディオ信号を含むビデオゲームのプレイ中に生成されたビデオゲームデータを受信するステップを含む。この方法は、受信したビデオゲームデータの各信号をそれぞれの機械学習モデルに入力し、各モデルの出力に基づいて、ビデオゲームのプレイ中にハイライトイベントが発生したかどうかを判断するステップも含む。次に、ハイライトイベントが発生したという判断に基づいて、ビデオおよびまたはオーディオ信号のフレームの少なくとも一部を選択して、ビデオゲームのゲームプレイの記録に含め、選択したビデオおよびまたはオーディオフレームを含む記録を生成する。モデルをトレーニングするための方法も、トレーニングおよびトレーニングされたモデルを実行するシステムとともに提供される。【選択図】図５
2020121102.tif 000002
【特許請求の範囲】
【請求項１】
ビデオゲームのゲームプレイの記録を生成する方法であって、前記方法は、
ビデオゲームのプレイ中に生成されたビデオゲームデータを受信するステップであって、前記ビデオゲームデータは、少なくともビデオ信号および対応するオーディオ信号を含み、各信号は複数のフレームを含む、ステップと、
前記受信したビデオゲームデータの各信号をそれぞれの機械学習モデルに入力するステップであって、各機械学習モデルは、そのモデルに入力された前記信号に基づいて前記ビデオゲーム内で発生するイベントを識別するようにトレーニングされている、ステップと、
各機械学習モデルの出力に基づいて、前記ビデオゲームのプレイ中にハイライトイベントが発生したかどうかを判断するステップと、
ハイライトイベントが発生したという判断に基づいて、前記ビデオゲームの前記プレイの記録に含める前記ビデオ信号およびまたはオーディオ信号の少なくとも一部の前記フレームを選択し、前記選択したビデオフレームおよびまたはオーディオフレームを含む前記ビデオゲームのゲームプレイの記録を生成するステップと
を含む、方法。
【請求項２】
各機械学習モデルが、前記ビデオゲームの以前のプレイ中に生成された以前に生成されたビデオゲームデータを使用してトレーニングされ、各モデルは、半教師付き学習を使用してトレーニングされて、そのモデルへの信号入力と対応するイベントとの関係を決定する、請求項１に記載の方法。
【請求項３】
前記ビデオゲームデータが、ゲーム内イベントを示すテレメトリ信号をさらに含み、
前記方法は、各機械学習モデルの前記出力および前記受信されたテレメトリ信号に基づいて、ハイライトイベントが発生したかどうかを判断するステップをさらに含む、
請求項１または２に記載の方法。
【請求項４】
前記ビデオゲームデータが、
ｉ．前記ビデオゲームのプレイに使用されている１つまたは複数のデバイスでの触覚フィードバック出力を示す触覚信号、
ｉｉ．プレイヤの動きを示す動き信号、
ｉｉｉ．前記プレイヤのスピーチを含むスピーチ信号、
ｉｖ．前記ビデオゲームのプレイに使用されている１つまたは複数のデバイスで受信したプレイヤ入力を示すプレイヤ入力信号、
ｖ．前記プレイヤのビデオ記録を含むビデオカメラ信号、
のうちの１つまたは複数をさらに含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記方法が、前記ビデオ信号の前記フレームの少なくとも一部をビデオ機械学習モデルに入力するステップを含み、
前記ビデオ機械学習モデルは、各入力ビデオフレームが対応するシーンのタイプを識別するようにトレーニングされる、
請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記方法が、前記オーディオ信号の前記オーディオフレームの少なくとも一部をオーディオ機械学習モデルに入力するステップを含み、
前記オーディオ機械学習モデルは、各入力オーディオフレームが対応するオーディオイベントを識別するようにトレーニングされる、
請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記方法が、各信号の前記フレームの少なくとも一部の特徴表現を生成するステップを含み、
各信号の前記フレームの少なくとも一部をそれぞれの機械学習モデルに入力するステップは、前記フレームの前記特徴表現を前記それぞれの機械学習モデルに入力するステップを含む、
請求項５または６に記載の方法。
【請求項８】
前記ビデオ信号の特徴表現を生成するステップが、前記ビデオ信号の前記フレームの少なくとも一部を事前トレーニングモデルに入力するステップを含む、請求項７に記載の方法。
【請求項９】
前記オーディオ信号の特徴表現を生成するステップが、前記オーディオ信号の前記フレームの少なくとも一部のメルスペクトログラムを生成するステップを含む、請求項７または８に記載の方法。
【請求項１０】
前記ビデオ機械学習モデルがニューラルネットワークを含む、請求項５から９のいずれか一項に記載の方法。
【請求項１１】
前記オーディオ機械学習モデルが、ロジスティック回帰モデルまたはバイナリ分類モデルを含む、請求項６から１０のいずれか一項に記載の方法。
【請求項１２】
各トレーニングされた機械学習モデルが、前記ビデオゲームをプレイするために使用されているコンピューティングデバイスでローカルに実行される、請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
１人または複数の他のプレイヤによる前記ビデオゲームの前記プレイ中に生成された履歴データを受信するステップと、
前記履歴データの少なくとも一部と、前記選択されたビデオおよびまたはオーディオフレームとの間の対応関係を決定するステップと、
前記ビデオゲームのゲームプレイの記録を再生するときに、前記選択したビデオフレームおよびオーディオフレームに対応する前記履歴データを表示するステップと
を含む、請求項１から１２のいずれか一項に記載の方法。
【請求項１４】
一連の機械学習モデルをトレーニングする方法であって、前記方法は、
ビデオゲームのプレイ中に生成されたビデオゲームデータを受信するステップであって、前記ビデオゲームデータは、少なくともビデオ信号および対応するオーディオ信号を含み、各信号は複数のフレームを含む、ステップと、
前記受信したビデオゲームデータの各信号をそれぞれの機械学習モデルに入力し、そのモデルに入力された前記信号に基づいて前記ビデオゲーム内で発生するイベントを識別するようにトレーニングするステップと、
を含み、
各機械学習モデルは、半教師付き学習を使用してトレーニングされ、そのモデルへの信号入力と対応するイベントとの関係を決定し、前記半教師付き学習は、
前記ビデオゲームデータの前記信号の特徴表現を生成するステップと、
前記ビデオゲームデータ内の前記信号の前記特徴表現をクラスタリングするステップと、
教師なし学習を使用して、各信号の前記特徴表現をそれぞれのクラスタにクラスタリングするステップと、
前記それぞれのクラスタに関連付けられたイベントを示すラベルで各クラスタに手動でラベル付けするステップと、
前記信号または前記信号の特徴表現と前記対応するラベルをそれぞれの機械学習モデルに入力するステップと、
各モデルについて、教師付き学習により、前記信号または特徴表現と、そのモデルに入力される対応するラベルとの関係を決定するステップと、
を含む、
方法。
【請求項１５】
ｋ平均クラスタリングまたはミニバッチｋ平均クラスタリングを使用して、以前に生成された入力特徴表現をクラスタにクラスタリングする、請求項１４に記載の方法。
【請求項１６】
各クラスタに手動でラベル付けするステップが、そのクラスタ内の入力特徴表現に対応する前記フレームをレビューし、そのクラスタのラベルを決定するステップを含む、請求項１４または１５に記載の方法。
【請求項１７】
前記方法が、前記クラスタに手動でラベル付けする前に、各クラスタから特徴表現をフィルタリングするステップを含み、
前記フィルタリングするステップは、そのクラスタの重心からの閾値距離を超える特徴表現をそれぞれのクラスタから除去するステップを含む、
請求項１４から１６のいずれか一項に記載の方法。
【請求項１８】
コンピュータシステムに、請求項１から１７のいずれか一項に記載の方法を実行させるように適合されたコンピュータ実行可能命令を有するコンピュータ可読媒体。
【請求項１９】
ビデオゲームのゲームプレイの記録を生成するためのシステムであって、前記システムは、
前記ビデオゲームのプレイ中に生成されたビデオゲームデータを受信するように構成された受信ユニットであって、前記ビデオゲームデータは、少なくともビデオ信号および対応するオーディオ信号を含み、各信号は複数のフレームを含む、受信ユニットと、
第１および第２のモジュールであって、各モジュールは、前記ビデオゲームデータ内の前記信号の異なる１つを受信し、トレーニングされたモデルを使用して、そのモジュールへの信号入力に基づいて前記ビデオゲーム内で発生するイベントを決定する、第１および第２のモジュールと、
各モジュールによって検出された前記イベントに基づいて、前記ビデオゲームのプレイ中に発生する１つまたは複数のハイライトイベントを検出するように構成されたハイライト検出器と、
前記ハイライト検出器の出力に基づいて前記ビデオゲームのゲームプレイの記録を生成するように構成された記録ユニットであって、前記記録は、前記１つまたは複数の検出されたハイライトイベントに対応する前記ビデオゲームデータの前記ビデオおよびまたはオーディオフレームの少なくとも一部を含む、記録ユニットと
を備える、システム。
【請求項２０】
少なくとも前記第１および第２のモジュールが、半教師付き学習を使用してトレーニングされ、そのモデルに入力される前記信号と対応するイベントとの関係を決定する、請求項１９に記載のシステム。
【請求項２１】
前記ビデオゲームデータが、ゲーム内イベントを示すテレメトリ信号をさらに含み、
前記ハイライト検出器は、前記第１および第２のモジュールの前記出力ならびに前記受信されたテレメトリ信号に基づいて、前記ビデオゲーム内で発生するイベントを決定するように構成される、
請求項１９または２０に記載のシステム。
【請求項２２】
前記システムが複数の特徴抽出器をさらに備え、各特徴抽出器は、前記受信したビデオゲームデータ内の異なる信号を受信し、その信号内の前記フレームの特徴表現を生成するように構成され、
少なくとも前記第１および第２のモジュールは、前記それぞれの信号の異なる１つについて生成された前記特徴表現を受信するように構成される、
請求項１９から２１のいずれか一項に記載のシステム。
【請求項２３】
第１の特徴抽出器がビデオフレームを受信するように構成され、第２の特徴抽出器がオーディオフレームを受信するように構成され、
前記第１のモジュールは、ビデオフレームの特徴表現を受信するように構成され、前記第２のモジュールは、オーディオフレームの特徴表現を受信するように構成される、
請求項２２に記載のシステム。
【請求項２４】
以前に生成されたビデオゲームデータを受信するための複数の特徴抽出器であって、各特徴抽出器は、前記以前に生成されたビデオゲームデータの異なる信号を受信するように構成される、複数の特徴抽出器と、
複数のクラスタリングユニットであって、各クラスタリングユニットは、異なる特徴抽出器によって出力された前記特徴表現を受信し、教師なし学習を使用して、前記受信した特徴表現を複数のクラスタにソートするように構成される、複数のクラスタリングユニットと、
各クラスタリングユニットによって出力される前記クラスタのラベルを生成するように動作可能なラベリングユニットであって、前記ラベリングユニットは、ユーザからの入力に基づいて前記ラベルを生成するように構成され、各ラベルは、各クラスタの前記フレームまたは対応する特徴表現に関連付けられたイベントを示す、ラベリングユニットと、
少なくとも前記第１および第２のモジュールをトレーニングするように構成されたトレーニングユニットであって、前記トレーニングユニットは、前記第１および第２のモジュールに入力される前記フレームまたは特徴表現と前記ラベリングユニットによって生成される前記対応するラベルとの関係を決定するように構成される、トレーニングユニットと、
を備える、請求項２２または２３に記載のシステム。
【請求項２５】
各クラスタリングユニットが、前記特徴表現を異なるそれぞれのクラスタにソートするように構成されたｋ平均またはミニバッチｋ平均クラスタリングアルゴリズムを含む、請求項２４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオゲームのゲームプレイの記録を生成するための方法およびシステムに関する。
【背景技術】
【０００２】
多くの異なるビデオゲームコンソールでは、プレイヤがゲームプレイの記録をキャプチャできる。通常、これには、特定の間隔でゲームプレイを連続的に記録し、その記録を一時バッファに保存することが含まれる。記録は、最新のもののみ、例えば１５分間のゲームプレイがバッファに保存されるように、それぞれの連続する間隔で上書きされてもよい。プレイヤが「共有ボタン」を選択するなどの入力を行うと、入力のタイミングに対応するクリップが生成され、永続的なメモリに保存される。
【０００３】
通常、クリップには、入力が受信される前後に出力されたビデオフレームの一部が含まれ、これにより、ビデオゲーム内で関心のあるイベントが発生しようとしていることを認識するユーザの早期または遅延の反応が補正される。その後、プレイヤは、キャプチャする予定のイベントを十分にカバーするクリップを生成するために、「ＳＨＡＲＥｆａｃｔｏｒｙ（商標）」などのビデオ編集ソフトウェアを使用する必要がある場合がある。理解されるように、この方法で記録をキャプチャすることは、プレイヤが関心のあるイベントを予測する能力に依存している。さらに、この方法でゲーム内イベントをキャプチャすると、没入感が失われることがよくあり、例えば、ユーザが「共有ボタン」とやり取りするために、自分がしていたことを中断する必要がある。
【０００４】
最近では、人工知能（ＡＩ）がｅＳｐｏｒｔｓの試合のハイライトリールを自動的に生成するために使用されている。ただし、このＡＩのトレーニングは通常、費用と時間がかかるプロセスである。例えば、特定のビデオゲームの場合、データサイエンティストがＡＩのトレーニングに十分なラベル付きデータを取得するには、最大６時間のフルタイム雇用（ＦＴＥ）が必要になる場合がある。理解されるように、この方法でＡＩをトレーニングすると、新しいまたは異なるビデオゲーム機能に対応するためにＡＩを更新できる容易さが制限される。
【０００５】
さらに、場合によっては、ビデオゲームをプレイするために使用されているデバイスで、トレーニングされたＡＩをローカルで実行できない場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上記で特定された問題を対処または軽減しようとするものである。
【課題を解決するための手段】
【０００７】
本明細書で開示される一態様によれば、請求項１に従ってビデオゲームのゲームプレイの記録を生成する方法が提供される。
【０００８】
本明細書で開示されるさらなる態様によれば、請求項１４に従って一連の機械学習モデルをトレーニングする方法が提供される。
【０００９】
本明細書で開示されるさらなる態様によれば、請求項１９に従ってビデオゲームのゲームプレイの記録を生成するためのシステムが提供される。
【図面の簡単な説明】
【００１０】
本開示の理解を支援し、実施形態を実施する方法を示すために、添付図面を例として参照する。
【図１】ビデオゲームプレイデバイスの例を概略的に示す図である。
【図２】ビデオゲームのゲームプレイの記録を生成するための方法のフローチャートである。
【図３】トレーニングされたビデオ機械学習モデルによって識別され得るさまざまなシーンタイプ、およびトレーニングされたオーディオ機械学習モデルによって識別され得るハイライトイベントの例を示す図である。
【図４】ハイライトリールに含めるために選択できるビデオフレームの例を示す図である。
【図５】ビデオゲームのゲームプレイでハイライトイベントを検出するためのリスニングユニットの例を示す図である。
【図６】ビデオゲーム内のハイライトイベントを検出するために機械学習モデルをトレーニングするための方法の例を示す図である。
【図７】複数の異なるクラスタのそれぞれにおけるＲＧＢフレームの例を示す図である。
【図８ａ】ビデオフレームクラスタ用に手動で生成され得るさまざまな記述ラベルの例を示す図である。
【図８ｂ】オーディオフレームクラスタ用に手動で生成され得るさまざまな記述ラベルの例を示す図である。
【図９】ゲーム内イベントを識別するために機械学習モデルをトレーニングするためのシステムの例を概略的に示す図である。
【発明を実施するための形態】
【００１１】
システムおよび方法が開示されている。以下の説明では、本発明の実施形態の完全な理解を提供するために、いくつかの特定の詳細が提示されている。しかし、これらの特定の詳細を使用して本発明を実施する必要がないことは、当業者には明らかであろう。逆に、明確にするために、必要に応じて、当業者に知られている特定の詳細は省略されている。
【００１２】
本明細書に記載の方法を採用し得るシステムは、方法をカプセル化する適切なソフトウェア命令を実行し、ユーザが所有するビデオゲームプレイデバイスが、例えばインターネットなどのネットワークを介して接続され得るサービスプロバイダが運営するサーバまたは類似の汎用コンピュータを含み得る。通常、サーバまたは汎用コンピュータには、複数のビデオゲームプレイデバイスからデータを収集し、これを使用して人工知能をトレーニングするという役目がある（以下で説明する）。一般に、人工知能のこのトレーニングは、１つまたは複数のグラフィック処理ユニット（ＧＰＵ）またはテンソル処理ユニット（ＴＰＵ）を使用して達成される。
【００１３】
トレーニングが完了すると、人工知能をビデオゲームプレイデバイスにエクスポートできる。これは、例えば、ソフトウェア更新の一部としてビデオゲームプレイデバイスにダウンロードされるトレーニングされた人工知能を備えたソフトウェア更新として提供されてもよい。追加的または代替的に、トレーニングされた人工知能は、ビデオゲームプレイデバイスによって、例えば、インターネット接続を介してアクセスされてもよい。人工知能は、トレーニングされたモデル、またはトレーニングされたモデルにアクセスできるソフトウェアモジュールに対応してもよい。
【００１４】
代替的または追加的に、システムは、ユーザが所有するビデオゲームプレイデバイスを備えてもよい。代替的または追加的に、ビデオゲームプレイデバイスとサーバの両方が協調して動作して方法を実装してもよいし、ビデオゲームプレイデバイスが方法をローカルに実装してもよい。
【００１５】
トレーニングされたＡＩは、特定のビデオゲームのプレイ中に生成されたデータを使用してトレーニングされた結果として、ゲーム固有であってもよい。このような場合、トレーニングされたＡＩへのアクセスは、ＡＩがトレーニングされたビデオゲームを持っているとプレイヤが検出された場合にのみ許可され得る。
【００１６】
ビデオゲームプレイデバイスの例として、図１は、Ｓｏｎｙ（登録商標）ＰｌａｙＳｔａｔｉｏｎ４（登録商標）エンターテイメントデバイスの全体的なシステムアーキテクチャを概略的に示している。図１に示すデバイスは単なる例示であり、いくつかの実施形態では、エンターテイメントデバイスは、Ｓｏｎｙ（登録商標）ＰｌａｙＳｔａｔｉｏｎ５（登録商標）デバイスなどの次世代コンソールを含み得ることが理解されよう。
【００１７】
システムユニット１０は、システムユニットに接続可能なさまざまな周辺機器とともに提供される。
【００１８】
システムユニット１０は、中央処理ユニット（ＣＰＵ）２０Ａおよびグラフィックス処理ユニット（ＧＰＵ）２０Ｂを含む単一チップである加速処理ユニット（ＡＰＵ）２０を備える。ＡＰＵ２０は、ランダムアクセスメモリ（ＲＡＭ）ユニット２２へのアクセスを有する。
【００１９】
ＡＰＵ２０は、オプションとしてＩ／Ｏブリッジ２４を介してバス４０と通信し、Ｉ／Ｏブリッジ２４は、ＡＰＵ２０の個別のコンポーネントまたは部分であってもよい。
【００２０】
バス４０に接続されるのは、ハードディスクドライブ３７、および互換性のある光ディスク３６Ａ上のデータにアクセスするように動作可能なブルーレイ（登録商標）ドライブ３６などのデータ記憶コンポーネントである。さらに、ＲＡＭユニット２２はバス４０と通信し得る。
【００２１】
オプションとして、補助プロセッサ３８もバス４０に接続されている。補助プロセッサ３８は、オペレーティングシステムを実行またはサポートするために提供され得る。
【００２２】
システムユニット１０は、オーディオ／ビジュアル入力ポート３１、イーサネット（登録商標）ポート３２、ブルートゥース（登録商標）ワイヤレスリンク３３、Ｗｉ−Ｆｉ（登録商標）ワイヤレスリンク３４、または１つまたは複数のユニバーサルシリアルバス（ＵＳＢ）ポート３５を介して適切に周辺機器と通信する。オーディオおよびビデオは、ＨＤＭＩ（登録商標）ポートなどのＡＶ出力３９を介して出力され得る。
【００２３】
周辺機器は、ＰｌａｙＳｔａｔｉｏｎ  Ｅｙｅ（登録商標）などのモノスコピックまたはステレオスコピックのビデオカメラ４１；ＰｌａｙＳｔａｔｉｏｎ  Ｍｏｖｅ（登録商標）などの杖型ビデオゲームコントローラ４２およびＤｕａｌＳｈｏｃｋ  ４（登録商標）などの従来のハンドヘルド型ビデオゲームコントローラ４３；ＰｌａｙＳｔａｔｉｏｎ  Ｐｏｒｔａｂｌｅ（登録商標）やＰｌａｙＳｔａｔｉｏｎ  Ｖｉｔａ（登録商標）などのポータブルエンターテイメントデバイス４４；キーボード４５および／またはマウス４６；例えばリモートコントロールの形態のメディアコントローラ４７；およびヘッドセット４８を含んでもよい。マイクロホン、スピーカー、携帯電話、プリンタ、３Ｄプリンタ（図示せず）など、他の周辺機器も同様に考慮することができる。
【００２４】
ＧＰＵ２０Ｂは、オプションでＣＰＵ２０Ａと連携して、ＡＶ出力３９を介して出力するためのビデオ画像とオーディオを生成する。オプションで、オーディオは、オーディオプロセッサ（図示せず）とともに、またはオーディオプロセッサによって代わりに生成され得る。
【００２５】
ビデオおよびオプションでオーディオは、テレビ５１に提示されてもよい。テレビでサポートされている場合、ビデオは立体視される場合がある。オーディオは、ステレオ、５．１サラウンドサウンド、７．１サラウンドサウンドなどの多くの形式の１つでホームシネマシステム５２に提示され得る。同様に、ビデオおよびオーディオは、ユーザ６０が装着するヘッドマウントディスプレイユニット５３に提示されてもよい。
【００２６】
動作中、エンターテイメントデバイスはデフォルトで、ＦｒｅｅＢＳＤ９．０の変形例などのオペレーティングシステムになる。オペレーティングシステムは、ＣＰＵ２０Ａ、補助プロセッサ３８、またはこれら２つの組み合わせで実行することができる。オペレーティングシステムは、ＰｌａｙＳｔａｔｉｏｎ  Ｄｙｎａｍｉｃ  Ｍｅｎｕなどのグラフィカルユーザインタフェースをユーザに提供する。このメニューにより、ユーザはオペレーティングシステム機能２５にアクセスし、ゲームやオプションで他のコンテンツを選択できる。
【００２７】
図１に示すようなビデオゲームプレイデバイスをプレイするとき、プレイヤはゲームプレイの瞬間をキャプチャしたい場合があり、例えば、プレイヤはビデオゲーム内で特に印象的な偉業を実行している。これは、例えば特定の敵または複数の敵を倒す、複雑な戦闘シーケンスを実行する、難しいジャンプをするなどに対応し得る。このような偉業を含むビデオは、例えばＹｏｕＴｕｂｅ（商標）などのビデオ共有プラットフォームで人気がある。場合によっては、プレイヤは単にゲームプレイセッションの記念品が欲しい場合がある。
【００２８】
前に述べたように、興味深いゲームプレイをキャプチャするには、通常、ユーザはビデオゲームをプレイしながら、例えば「共有ボタン」とやり取りする必要がある。場合によっては、これはプレイヤが手動でキャプチャした覚えのある瞬間のみが保存されることを意味する。例えば、ビデオゲームのゲームプレイの記録は、ゲームプレイの最後の１５分間のみが一時バッファに保存されるように、周期的に上書きされてもよい。場合によっては、バッファ内の記録が興味のあるイベントをキャッチするのに十分に長い場合があるが、プレイヤが記録に戻り、残りの記録から興味のあるイベントを継ぎ合わせるのは多少面倒であるかもしれない。
【００２９】
さらに、共有ボタンとのやり取りは、ゲームプレイ自体を中断する可能性があり、したがって、プレイヤがキャプチャしようとしていたイベントを妨げる可能性がある。例えば、テンポの速いビデオゲームのプレイ中に共有ボタンを押すのは不便な場合があり、つまり、プレイヤが意図した方法で興味のあるイベントがプレイされないということである。
【００３０】
一部のビデオゲームでは、テレメトリデータが生成され、ビデオゲーム内で発生するゲーム内イベントの表示、例えば、プレイヤが死んでいる、ゴールが決められている、車がクラッシュしているなど、を提供することができ、このデータを使用して、対応するハイライトクリップを生成できる。例えば、Ｃａｌｌ  ｏｆ  Ｄｕｔｙ（登録商標）ゲームでは、プレイヤは通常、そのプレイヤが死ぬ責任を負っている他のプレイヤ（または弾丸）の観点から、彼らの死のリプレイを提示される。ただし、多くの場合、この記録は永続的なメモリに保存されない。さらに、テレメトリデータが生成されないビデオゲームまたはビデオゲーム内の状況がいくつか存在する場合がある。したがって、テレメトリデータに基づいて、ゲームプレイ内の興味深い瞬間を常にキャプチャできるとは限らない。
【００３１】
そのため、プレイヤのゲームセッションの最後に、プレイヤのゲームプレイに対応する興味深いゲーム内イベントを自動的に識別し、ハイライトリールに含めることができれば望ましい。さらに、ビデオゲームのプレイ中に、ビデオゲームプレイデバイスがそのようなイベントを監視または「リッスン」できることがさらに望ましい。
【００３２】
［ゲームプレイの記録を生成する］
ここで図２を参照すると、本開示によるビデオゲームのゲームプレイの記録を生成するための方法の例が記載されている。図２では、この方法は、ビデオゲームのプレイ中またはビデオゲームセッション後に実施できる方法に対応している。
【００３３】
ステップＳ２０２では、ビデオゲームのプレイ中に生成されたビデオゲームデータが受信される。ビデオゲームデータは、ビデオゲームプレイデバイスによって生成された少なくともビデオ信号および対応するオーディオ信号を含む。好ましい例では、ビデオゲームデータは、例えば、ビデオゲームプレイデバイスで実施されるモニタリングまたはリスニングモジュールで受信される。他の例では、ビデオゲームデータは、そこで処理するために１つまたは複数のサーバ（例えば、コンピュータクラウドネットワークに対応する１つまたは複数のサーバ）に送信される。
【００３４】
ビデオ信号は、ビデオゲームのプレイ中に出力される視覚コンテンツを表す複数のＲＧＢまたはＹＵＶビデオフレームを含んでもよい。オーディオ信号は、視覚コンテンツと同期して出力されるオーディオコンテンツに対応する複数のオーディオフレームを含んでもよい。いくつかの例では、オーディオ信号はフレームに分割されない場合があり、オーディオ信号を複数のフレームに分割する別個のステップがあり得る。一例では、オーディオ信号は９６０ミリ秒間隔で分割され、各オーディオフレームの持続時間は９６０ミリ秒になり得る。例えば、オーディオは４４ｋＨｚの周波数で出力され、１６ｋＨｚにダウンサンプリングされた後、各フレームに１５３６０個のサンプルが含まれるようにフレームに分割され得る。
【００３５】
いくつかの例では、ビデオ信号は、ＲＧＢまたはＹＵＶフレームと対応するオーディオの両方を含むビデオファイル（例えば、「．ｗａｖ」ファイル）を含んでもよい。そのような場合、ステップＳ２０２は、ＲＧＢまたはＹＵＶフレームからのオーディオを別々のそれぞれの信号に分離することを含み得る。以下で説明する分析を実行する前に、各信号のそれぞれのビデオおよびオーディオフレームを一時バッファに保存することができる。一時バッファは、例えばＰＳ４（登録商標）またはＰＳ５（登録商標）デバイスのリングバッファなど、ビデオゲームプレイデバイスでゲームプレイを記録するために使用されるリングバッファに対応し得る。
【００３６】
ステップＳ２０２で受信されたビデオゲームデータはサンプリングされてもよい。例えば、受信信号内のＲＧＢまたはＹＵＶフレームおよび対応するオーディオフレームは、例えば、１秒あたり５フレームなどで定期的にサンプリングされることがあり得る。いくつかの例では、ＲＧＢまたはＹＵＶフレームは、例えば１２８０（幅）×７２０（高さ）ピクセルから３９８（幅）×２２４（高さ）ピクセルに縮小されることもある。
【００３７】
いくつかの実施形態では、ビデオゲームデータは、ゲーム内イベントを示すテレメトリ信号をさらに含んでもよい。例えば、トロフィーの取得、対戦相手の殺害、ヘッドショットの作成、死に至る、ゴールを決める、角を曲がるなどのゲーム内イベントは、テレメトリデータとして保存され、ビデオゲームデータの一部として受信され得る。テレメトリデータは、検出された各ゲーム内イベントと、ビデオゲームで発生しているイベントがいつ検出されたかを示すタイミング情報を含んでもよい。テレメトリデータは、ビデオゲームプレイデバイスで実行されているビデオゲームに応じて、例えばＡＰＵで生成されてもよい。
【００３８】
代替的または追加的に、ビデオゲームデータは、ビデオゲームのプレイ中に１つまたは複数のデバイスで出力される触覚フィードバックを示す触覚データを含む触覚信号を含んでもよい。触覚フィードバックは、図１に関連して前述した１つまたは複数の周辺機器で出力された可能性がある。触覚データは、振動が周辺機器で出力された時間の表示および／またはそれらの振動の大きさを含んでもよい。
【００３９】
代替的または追加的に、ビデオゲームデータは、ビデオゲームのプレイ中のプレイヤの動きを示す動きデータを含む動き信号をさらに含んでもよい。プレイヤの動きは、ビデオゲームプレイデバイスに接続されているか、その一部を形成しているビデオカメラを使用して記録され得る。ビデオカメラは、例えば前述のＰｌａｙＳｔａｔｉｏｎ  Ｅｙｅ（登録商標）に対応し得る。追加的または代替的に、ユーザが保持しているデバイス（ＤｕａｌＳｈｏｃｋ  ４（登録商標）またはＭｏｖｅ（登録商標）コントローラなど）またはユーザが装着しているデバイス（ＨＭＤなど）などの周辺機器の動き検出器によって動き信号を生成してもよく、このデータは、ステップＳ２０２で受信したビデオゲームデータに含まれてもよい。
【００４０】
代替的または追加的に、ビデオゲームデータは、プレイヤによるスピーチ（またはより一般的にはオーディオ）出力を示すスピーチデータを含むスピーチ信号を含んでもよい。スピーチ信号は、マイクロホンを含みかつビデオゲームプレイデバイスと通信している１つまたは複数の周辺機器によってキャプチャされてもよい。
【００４１】
ビデオゲームデータはまた、プレイヤ入力信号を含んでもよい。プレイヤ入力信号は、例えばビデオゲームのプレイ中に、コントローラデバイスで受信したボタンを押すなど、さまざまなプレイヤ入力を示すデータを含んでもよい。入力信号は、さまざまなプレイヤ入力およびそれらのプレイヤ入力が受信されたタイミングの表示を提供してもよい。
【００４２】
ビデオゲームデータはまた、プレイヤのビデオ記録を含むビデオカメラ信号を含んでもよい。ビデオ記録は、前に説明した動きデータを使用して識別できる大きな体の動きとは対照的に、プレイヤの表情の変化などを決定する際に役立ち得る。プレイヤのビデオ記録は、例えばＰｌａｙＳｔａｔｉｏｎ  Ｅｙｅ（商標）などのビデオゲームプレイデバイスと通信するビデオカメラによってキャプチャされてもよい。
【００４３】
ステップＳ２０４では、受信したビデオゲームデータ中の少なくともビデオ信号および対応するオーディオ信号がそれぞれの機械学習モデルに入力される。これは、ビデオ信号のビデオフレームの少なくとも一部をビデオ機械学習モデルに入力し、オーディオフレームの少なくとも一部をオーディオ機械学習モデルに入力することを含んでもよい。
【００４４】
他の例では、テレメトリ信号、触覚信号、動き信号、スピーチ信号、およびビデオ記録信号のうちの１つまたは複数のそれぞれの機械学習モデルがあり得る。明確にするために、本明細書で説明される実施形態は、主にビデオおよびオーディオ機械学習モデルのトレーニングおよび実行に焦点を当てる。
【００４５】
各機械学習モデルは、その機械学習モデルに入力された信号に基づいて、ビデオゲーム内で発生する１つまたは複数のイベントを識別するようにトレーニングされる。機械学習モデルは、後で詳細に説明するように、半教師付き深層学習を使用してトレーニングされ得る。図２に関連して説明した方法では、モデルを「トレーニングされている（ｂｅｉｎｇ  ｔｒａｉｎｅｄ）」と呼ぶことは、モデルが既にトレーニングされていること（つまり、過去形）を意味することに留意されたい。
【００４６】
ビデオゲームデータがテレメトリ、触覚、動き、スピーチ、ビデオ記録データのうちの１つまたは複数を含む実施形態では、これらを対応する機械学習モデルに入力する必要がない場合があることは理解されよう。例えば、テレメトリデータは、ゲーム内イベントを識別する際に多少明示的である可能性があるため、イベントを識別するために機械学習を使用する必要がない場合がある。ただし、機械学習は、例えば異なるボタンを押すタイミングや周辺機器の動きがゲーム内イベントに対応するかどうかを決定するのにより役立ち得る。一般に、機械学習が適用されるさまざまな信号タイプごとに、それぞれの機械学習モデルが存在し得る。
【００４７】
いくつかの例では、受信したビデオゲームデータ内の各信号の特徴表現を生成する前のステップ（すなわち、ステップＳ２０３）があってもよい。特徴表現は、それぞれの信号のデータの数値表現に対応していてもよい。したがって、ステップ２０４は、各信号の特徴表現をそれぞれの機械学習モデルに入力することを含み得る。
【００４８】
ビデオ信号の特徴表現は、ビデオ機械学習モデルに入力される各ビデオフレームの特徴表現を生成することにより生成され得る。ビデオフレームの特徴表現は、例えば、Ｄｅｅｐ  Ｒｅｓｉｄｕａｌ  Ｎｅｔｗｏｒｋ（ＲｅｓＮｅｔ）、Ｄｅｎｓｅｌｙ  Ｃｏｎｎｅｃｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｔｗｏｒｋ（ＤｅｎｓｅＮｅｔ）、ＭｏｂｉｌｅＮｅｔなどの事前トレーニングモデルに各フレームを入力することで生成され得る。より一般的には、特徴表現は、ＩｍａｇｅＮｅｔデータベース内の画像などの一般的な画像データセットでトレーニングされた深層学習モデルに入力され得る。
【００４９】
一例では、Ｄｅｎｓｅｎｅｔ２０１事前トレーニングモデルを使用して、入力ＲＧＢ（またはＹＵＶ）ビデオフレームを１９２０要素の数値ベクトルに変換し、各要素は、ＤｅｎｓｅＮｅｔ２０１アーキテクチャの最後から２番目のレイヤの７×１２特徴マップの平均に対応している。各ＲＧＢ（またはＹＵＶ）フレームのベクトルは、メモリに保持され得る。
【００５０】
オーディオ信号の特徴表現を生成することは、オーディオ信号内の各オーディオフレームの特徴表現を生成することを含み得る。上述のように、生のオーディオ信号はダウンサンプリングされ、複数のフレームに分割され、各フレームは、所望の持続時間のオーディオの連続した重複しないセクションを含む。したがって、フレームに対応するオーディオ信号内のオーディオの各セクションに対して特徴表現を生成することができる。いくつかの例では、これには、対数メル（ｌｏｇ−ｍｅｌ）スペクトログラムなど、各オーディオフレームのスペクトログラムの生成が含まれてもよい。ここで、対数メルスペクトログラムは、対数スケールのメルスペクトログラムに対応する。
【００５１】
一例では、オーディオフレームの持続時間は９６０ミリ秒で、１０ミリ秒ごとに２５ミリ秒のウィンドウを適用する短時間フーリエ変換で各フレームを分解することにより、対数メルスペクトログラムが生成される。次に、結果のスペクトログラムは、６４個のメル間隔の周波数ビンに統合され、各ビンの大きさは対数変換される。これにより、９６×６４ビンの対数メルスペクトログラムが得られる。次に、各フレーム（９６×６４ビン）の対数メルスペクトログラムを平均化して、オーディオフレームの６４次元ベクトル表現を形成できる。各フレームのベクトルは、メモリに保持され得る。
【００５２】
いくつかの実施形態では、ビデオおよびオーディオフレームの特徴表現を生成するステップがないことは理解されよう。特徴表現の生成は、ビデオおよびオーディオの機械学習モデルがどのようにトレーニングされたかに依存する（後述、「機械学習モデルのトレーニング」を参照）。いくつかの実施形態では、機械学習モデルがビデオおよびオーディオフレームでトレーニングされ、必ずしもその特徴表現であるとは限らない可能性がある。
【００５３】
前述のように、各機械学習モデルは、そのモデル（または、場合によってはそのモデルへの特徴表現入力）に入力された信号に基づいて、ビデオゲーム内で発生する１つまたは複数のイベントを識別するようにトレーニングされる。
【００５４】
ビデオ機械学習モデルは、各ビデオフレーム（またはその特徴表現）が対応するシーンのタイプを識別するようにトレーニングされてもよい。例えば、ビデオ機械学習モデルは、特定のビデオフレームがカットシーン、ゲームプレイ、読み込み画面、メニュー、ソリッドカラー画面（例えば、死）、その他などのうちの１つまたは複数に対応するかどうかを判断するようにトレーニングされ得る。機械学習モデルがさまざまなシーンタイプを決定できる粒度は、最終的にトレーニングに依存する。いくつかの例では、ビデオ機械学習モデルは、例えば戦闘、ウォーキング、アイドルなど、異なるタイプのゲームプレイに対応するものとしてシーンタイプを識別するようにトレーニングされてもよい。
【００５５】
ビデオ機械学習モデルは、例えば、畳み込みまたはリカレントニューラルネットワーク（ＲＮＮ、またはＣＮＮ）などのニューラルネットワークを備えてもよい。ただし、任意の適切な機械学習システムを検討できる。
【００５６】
オーディオ機械学習モデルは、モデルに入力された各オーディオフレーム（または対応する特徴表現）が対応するオーディオイベントを識別するようにトレーニングされている場合がある。一例では、オーディオ機械学習モデルは、オーディオフレームが「ハイライト」または「非ハイライト」オーディオイベントに対応するかどうかを判断するようにトレーニングされる。オーディオイベントが「ハイライト」または「非ハイライト」イベントに対応するものとして判断されるかどうかは、後述するように、オーディオ機械学習モデルのトレーニング方法によって異なり得る。オーディオの「ハイライト」イベントの例には、例えば使用されている武器の音が含まれてもよく、「非ハイライト」のオーディオイベントは、例えばビデオゲームに存在し得る都市や自然の音に対応してもよい。いくつかの例では、オーディオ機械学習モデルをトレーニングして、より細かい粒度でオーディオイベントを検出することができ、例えば、さまざまなタイプのハイライトオーディオイベントを区別する。
【００５７】
いくつかの例では、オーディオ機械学習モデルは、ロジスティック回帰モデルを含んでもよい。他の例では、オーディオ機械学習モデルは、Ｇｒａｄｉｅｎｔ  Ｂｏｏｓｔｉｎｇ  Ｔｒｅｅｓ、Ｒａｎｄｏｍ  Ｆｏｒｅｓｔｓ、Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅなどのバイナリ分類アルゴリズムを含んでもよい。ただし、任意の適切な機械学習システムを検討できる。
【００５８】
好ましい例では、トレーニングされた各機械学習モデルは、ビデオゲームをプレイするために使用されているビデオゲームプレイデバイスでローカルに実行される。
【００５９】
ステップＳ２０６では、各機械学習モデルの出力に基づいて、ハイライトイベントが発生したかどうかが判断される。この判断は、例えば、ビデオ機械学習モデルによって識別されたシーンのタイプおよびオーディオ機械学習モデルによって識別されたオーディオイベントのタイプに基づいてもよい。いくつかの例では、シーンタイプが「ゲームプレイ」に対応するものとして識別され、オーディオが「ハイライト」オーディオイベントに対応する場合、ハイライトイベントが発生したと判断され得る。この方法でハイライトイベントを検出するということは、例えば、カットシーンの銃の発射が、ゲームプレイに起因するハイライトイベントに対応するものとして識別されないことを意味する。
【００６０】
この例を図３に概略的に示しており、図３は、複数のフレーム（この場合は約３０５フレーム）にわたるビデオ機械学習モデルとオーディオ機械学習モデルの出力を示している。上の２つのチャートは、ＲＧＢフレームがカットシーンとゲームプレイ（つまり、仮想環境でキャラクタを制御しているプレイヤ）に対応していることをビデオ機械学習が決定する確率を示している。「１」の確率は、イベントの検出に対応している。図４からわかるように、ゲームプレイはフレーム７５〜１６０と２５０〜２９０の間に発生していることが検出されている。ビデオ機械学習モデルでは、カットシーンが、例えばフレーム２０〜６０、６５〜７０、２９０〜３０５の間で発生していることも検出されている。一番下のチャートでは、オーディオ機械学習モデルがフレーム８５〜１５５の間でハイライトオーディオイベントを検出したことがわかる。この結果、ビデオゲーム内のハイライトイベントがフレーム８５〜１５５の間で発生したと判断され得る。
【００６１】
図４は、ハイライトイベントに対応するものとして識別されたビデオフレーム４００の例を示している。図４のフレーム４００は、ビデオゲームＨｏｒｉｚｏｎ  Ｚｅｒｏ  Ｄａｗｎ（商標）から取られたＲＧＢフレームであり、主人公のＡｌｏｙが敵に銃を発射しているのを示している。この例では、ビデオ機械学習モデルは、「シーン分類」および「ハイライト分類」で示されるように、「ゲームプレイ」に対応するＲＧＢフレーム、およびハイライトオーディオイベントに対応する発射（または発射準備）されている銃のオーディオを識別した。
【００６２】
場合によっては、ハイライトイベントが発生したかどうかの判断は、ビデオ機械学習モデルによって識別されるゲームプレイのタイプ（．ｃｏｍｂａｔなど）と、オーディオ機械学習モデルによって検出されるオーディオのタイプによって異なり得る。これにより、例えば、ハイライトイベントが発生している可能性があることを示す対応するオーディオにもかかわらず、プレイヤが盲目的に空の風景（ｅｍｐｔｙ  ｌａｎｄｓｃａｐｅ）をシューティングしているビデオフレームがハイライトイベントに対応するものとして識別されないことが保証され得る。
【００６３】
図２に戻ると、この方法は、ビデオゲームのゲームプレイの記録に含めるために、ビデオおよびまたはオーディオ信号（ビデオゲームデータで受信）のフレームの少なくとも一部を選択するさらなるステップＳ２０８を含む。いくつかの例では、記録に含めるためにビデオとオーディオの両方のフレームを選択できる（つまり、記録はビデオファイルであってもよい）。ビデオおよびまたはオーディオフレームは、ハイライトイベントが検出されたフレームに対応するように選択されてもよい。場合によっては、これには、検出されたハイライトイベントの前後に発生したフレームの少なくとも一部を選択することが含まれ、ハイライトがコンテキストで表示されることを確実にし、ハイライトイベントの検出を補正する。理解されるように、記録が過度に長い期間または短い期間にわたって発生するハイライトイベントを含まないことを保証するために、所定の検出されたハイライトイベントが発生していると検出される持続時間を決定する必要がある場合がある。
【００６４】
いくつかの例では、テレメトリ信号、動き信号、スピーチ信号、プレイヤ入力信号、およびビデオカメラ信号の１つまたは複数のデータの少なくとも一部が、選択したビデオおよびまたはオーディオフレームとともに記録に含めるために選択され得る。例えば、プレイヤのスピーチも、ビデオゲームのプレイ中に反応するプレイヤのビデオ記録とともに、記録に含まれる場合がある。
【００６５】
ステップＳ２１０で、選択されたビデオおよびまたはオーディオフレームを含むビデオゲームのゲームプレイの記録が生成される。記録は、ビデオファイルの形式で生成され、例えばビデオゲームプレイデバイスまたはリモートサーバで電子ストレージ保存されてもよい。あるいは、記録は、１つまたは複数のサーバで生成され、ビデオゲームプレイデバイスに送信されてもよい（ビデオゲームプレイデバイスと１つまたは複数のサーバとの間の接続が存在するか、復元されている限り）。
【００６６】
記録は、ゲームプレイ中に検出された複数の異なるハイライトイベントを含み、ハイライトリールを形成してもよい。各ハイライトイベントには、ハイライトイベントに対応するものとして識別されたビデオとオーディオを含む、対応するハイライトクリップを含めてもよい。一般に、各ハイライトビデオクリップには、複数の連続したビデオフレームとオーディオフレームが含まれる。
【００６７】
この方法は、ビデオゲームのゲームプレイの記録を表示デバイスに表示するステップをさらに含んでもよい。例えば、ビデオゲームプレイデバイスは、表示デバイスを含むか、それに接続されてもよい。記録は、プレイヤがゲームセッションを終了したことに応じて自動的に表示されてもよいし、メニューから記録を選択したユーザに応答して表示されてもよい。例えば、ＰＳ４（商標）またはＰＳ５（商標）には関連付けられたホーム画面メニューがあってもよく、そこから「Ｃａｐｔｕｒｅ  Ｇａｌｌｅｒｙ」タブを介して記録にアクセスできる。
【００６８】
いくつかの例では、方法は、選択されたビデオおよびまたはオーディオフレームに対応するテレメトリ信号、動き信号、スピーチ信号、プレイヤ入力信号、ビデオカメラ信号の１つまたは複数のデータの少なくとも一部を表示または出力するステップを含んでもよい。例えば、この方法は、ビデオゲームのゲームプレイのビデオに加えて、実際のプレイヤのビデオを表示するステップを含んでもよい。このビデオは、例えば、ビデオゲームのゲームプレイのビデオに重ね合わせて小さなウィンドウに表示されてもよい。追加または代替の例では、選択されたビデオフレームに対応するゲーム内イベントを示すテレメトリデータが表示されてもよい。これは、例えば、そのイベントを含む対応するビデオフレームに「ＨＥＡＤＳＨＯＴ！」などのスーパインポーズテキストを含んでもよい。
【００６９】
いくつかの例では、ビデオゲームのゲームプレイの記録は、ビデオゲームプレイデバイスからビデオゲームプレイデバイスと通信しているモバイルデバイスに送信されてもよい。例えば、ビデオゲームプレイデバイスは、ビデオゲームデバイスで実行されているゲームアプリケーションが閉じられたことを検出し、それに応答して、記録をモバイル通信デバイスに送信するように構成されてもよい。
【００７０】
記録の生成にかかる時間は、検出されたハイライトイベントの数と生成される記録のサイズによって異なり得る。したがって、状況によっては、プレイヤがゲームセッションを終了するとすぐに（つまり、記録が比較的大きい場合）、記録をプレイヤに提示できないことがある。したがって、いくつかの実施形態では、方法は、記録の再生準備ができていることを示す表示用のメッセージを生成するステップを含むことができる。例えば、記録がクラウド経由で生成される場合、ユーザは自分の電話のアプリ（ＰＳ  Ａｐｐ（商標）など）を介してメッセージを受信し、記録の再生準備ができたことを通知することができる。メッセージは、対応する記録を含む（つまり、埋め込んでいる）か、対応する記録へのリンクを提供することができる。この結果、次のビデオゲームセッションまでプレイヤに記録が提示されない場合がある。
【００７１】
あるいは、プレイヤが他のコンテンツと対話しながら、記録がビデオゲームプレイデバイスによってバックグラウンドで生成される場合もある。そのような場合、メッセージはプレイヤに通知として提示され得、同様の方法でプレイヤに、例えばソフトウェアの更新が利用可能であると通知される。
【００７２】
好ましい実施形態では、記録は、ビデオゲームプレイセッションの終わりにプレイヤに利用可能になる。
【００７３】
記録は、ビデオゲームセッションごとに、つまり各ビデオゲームセッション内で発生するハイライトイベントの概要として生成され得る。ビデオゲームセッションは、ビデオゲームの連続プレイ（すなわち、ビデオゲームアプリケーションが閉じられていない持続時間）、またはビデオゲーム内の特定のイベント、例えば試合、レース、またはその他の時限イベントに対応し得る。プレイヤは、ビデオゲームをオフラインで（他のオンラインプレイヤとではなく）またはオンラインで（つまり、他のオンラインプレイヤと）プレイしていてもよい。
【００７４】
代替的または追加的に、記録は複数のビデオゲームセッションにわたって生成されてもよい。例えば、シングルプレイヤのゲームでは、検出されたハイライトイベントの記録を、プレイヤの、例えばストーリーモードの完了時に生成することが望ましい場合がある。そのような場合、記録は、ストーリー内のさまざまなポイントでのプレイヤのハイライトの要約に対応し得る。この記録は、例えばエンドクレジットとともに、ストーリーモードを完了した後にユーザに提示され得る。他の例では、例えば競争的なトーナメントにおけるさまざまなゲームにわたるプレイヤのハイライトイベントの記録を生成することが望ましい場合がある。
【００７５】
いくつかの実施形態では、方法は、生成された記録の持続時間を決定するステップを含む。例えば、記録が閾値持続時間よりも長いか短い場合、その記録をプレイヤに提示することは望ましくない場合がある。記録の持続時間が閾値持続時間の許容範囲内にあると決定されることに応答して、記録の再生準備ができていることをプレイヤに通知することができる。
【００７６】
記録が長期間にわたるプレイヤの進行状況の概要に対応する場合、プレイヤに記録を提示する前にプレイヤの進行状況を判断する必要がある場合がある。例えば、最終バージョンとして記録を保存する前に、プレイヤが十分な数のミッション、ゲーム、タスク、試合などを完了したかどうかを判断する必要がある場合がある。最終バージョンが生成されると、記録の再生準備ができたことを示すメッセージがプレイヤに提示され得る。
【００７７】
いくつかの実施形態では、各機械学習モデルの出力に基づいて検出することができる複数の異なるハイライトイベントがあってもよい。この方法は、各選択フレームが対応するハイライトイベントおよび異なるハイライトイベントを再生するための所定の順序に基づいて、ステップＳ２０８で選択されたビデオおよびまたはオーディオフレームを再生する順序を選択するステップをさらに含んでもよい。
【００７８】
所定の順序は、異なるハイライトイベントが記録で再生される順序を定義する物語の弧に対応し得る。所定の順序は、ハイライトイベントが発生した時系列の順序に対応する場合もあるし、ビデオゲームでプレイヤがゆっくりと改善するのを示す構造に従う場合もある。例えば、所定の順序は、記録内の相対的な位置を定義し、その中で、例えばプレイヤのキャラクタが死にかけているか負けているかのビデオや、プレイヤが相手を倒すことに成功したビデオが配置されることになる。
【００７９】
いくつかの実施形態では、この方法は、１人または複数の他のプレイヤによるビデオゲームのプレイ中に生成された履歴データを受信するステップを含む。履歴データには、同じビデオゲームをプレイするときに他のプレイヤがどのように比較したかを示す統計データが含まれてもよい。他のプレイヤには、例えば、現在のプレイヤの友人リストにある友人など、現在のプレイヤに知られているプレイヤが含まれてもよい。
【００８０】
次いで、受信された履歴データの少なくとも一部と、選択されたビデオおよびまたはオーディオフレームとの間の対応関係が決定され得る。すなわち、選択されたビデオおよびまたはオーディオフレームに関連する履歴データが識別され得、この関連情報はビデオゲームの記録を再生するときに表示され得る。例えば、ビデオフレームが、プレイヤのアバタがビデオゲーム内の特定の敵または相手を倒し、打ち負かすものである場合、プレイヤは他のプレイヤが同じ相手に対してどのように戦ったかを示す統計を表示できる場合がある。これには、例えば、「この敵に直面したときに全プレイヤの８０％が少なくとも１回死亡した」または「この相手に直面したときに友人であるＪｉｍＢｏｂ８６が８回死亡した」などが含まれてもよい。いくつかの例では、履歴データには、ビデオゲームの同じ時点でのプレイヤの友人の記録が含まれる場合があり、プレイヤは、現在のプレイヤに対して生成された記録とともに、特定のフレームの記録を表示できる場合がある。
【００８１】
図５は、トレーニングされた機械学習モデルを実装するための高レベルシステムの例を概略的に示している。高レベルシステムは、ビデオゲームのゲームプレイ内で発生するハイライトイベントを検出する（すなわち、監視する、または「リッスンする」）ように構成されたリスニングユニット５００を含む。リスニングユニット５００は、ゲームコンソール、パーソナルコンピュータ、モバイルデバイスなどのビデオゲームプレイデバイスにインストールされたソフトウェアとしてローカルに実装されてもよい。代替として、リスニングユニット５００は、１つまたは複数のサーバ（クラウドネットワークなど）で実装され得、ビデオ、オーディオ、および他のビデオゲームデータは、ビデオゲームプレイデバイスによって取得され、１つまたは複数のサーバに渡される。このような場合、リスニングユニット５００は、その出力を、ビデオゲームデータが受信されたビデオゲームプレイデバイスに送信するように構成され得る。システムの特定の例については、図６に関連して後述する。
【００８２】
リスニングユニット５００は、ビデオゲームのプレイ中に生成されたビデオゲームデータを受信するように構成された受信ユニット５０２を備える。ビデオゲームデータは、少なくともビデオ信号と対応するオーディオ信号を含む。ビデオおよびオーディオ信号は、図２に関連して前述した形式のいずれかであり得る。
【００８３】
受信ユニット５０２は、ビデオ（例えば、ＲＧＢ，ＹＵＶ）および対応するオーディオフレームがサンプリングされることを可能にするリングバッファなどのビデオバッファを含んでもよい。
【００８４】
いくつかの実施形態では、ビデオゲームデータは、ゲーム内イベントを示すテレメトリ信号、ビデオゲームをプレイするために使用されている１つまたは複数のデバイスでの触覚フィードバック出力を示す触覚信号、およびビデオゲームのプレイ中にプレイヤが受信する入力を示すプレイヤ入力信号のうちの１つまたは複数をさらに含んでもよい。プレイヤ入力信号は、例えばプレイヤによるボタンの押下、プレイヤの動き、プレイヤによるスピーチ出力、プレイヤの表情やポーズの変化などの表示を提供してもよい。簡潔にするために、図５は単一のプレイヤ入力信号を示しているが、図２に関連して前述したように、これらのタイプのデータごとに個別の信号が存在する場合があることは理解されよう。
【００８５】
リスニングユニット５００は、複数のモジュール５０４ａ，５０４ｂ，５０４ｃ，５０４ｄ，５０４ｅをさらに備え、各モジュールは、ビデオゲームデータ内の信号の異なる１つを受信するように構成される。すなわち、各モジュールは、受信したビデオゲームデータで異なるタイプの信号（例えば、ビデオまたはオーディオなど）を受信するように構成される。図５では、これらのモジュールがオプションではないことを示すために、ビデオおよびオーディオ信号と対応するモジュールが太字で示されている。受信したビデオゲームデータの他の信号と対応するモジュールは、これらがオプションであることを示すために破線で示されている。
【００８６】
各モジュールは、そのモジュールに入力された信号に基づいて、ビデオゲーム内で発生するイベントを判断するように構成される。例えば、第１のモジュール５０４ａは、そのモジュール５０４ａに入力されるビデオフレームに基づいて、ビデオゲーム内で発生するイベントを検出するように構成され得る。第２のモジュール５０４ｂは、その学習モジュール５０４ｂに入力されるオーディオフレームに基づいて、ビデオゲーム内で発生するイベントを検出するように構成され得る。第１のモジュール５０４ａは、ビデオフレームを異なるシーンタイプに分類するようにトレーニングされてもよいし；第２のモジュール５０４ｂは、オーディオフレームを「ハイライト」または「非ハイライト」オーディオイベントに分類するようにトレーニングされてもよい。第１および第２のモジュール５０４ａ，５０４ｂによって実行される分類は、図２に関連して前述した方法のいずれかを使用して実行され得る。
【００８７】
他のモジュール５０４ｃ，５０４ｄ，５０４ｅは、存在する場合、例えば、受信したテレメトリデータ、触覚データ、およびプレイヤ入力データに基づいてゲーム内イベントを識別するように構成されてもよい。前述のように、機械学習はこのデータの一部にのみ適用される場合がある。例えば、テレメトリデータおよび／または触覚データには決定論的なルールを使用できるが、プレイヤの入力データには機械学習を使用する。したがって、モジュール５０４ｃ，５０４ｄ，および／または５０４ｅのすべてが入力信号に基づいてゲーム内イベントを識別するために機械学習を使用するわけではない可能性がある。しかしながら、機械学習は、分類を実行するために第１および第２のモジュール５０４ａ，５０４ｂによって使用される。
【００８８】
後で詳しく説明するように、第１および第２のモジュールは、半教師付き学習を使用してトレーニングされ、そのモデルに入力される信号と対応するイベントとの関係を決定する。いくつかの例では、第３、第４、および第５のモジュール５０４ｃ，５０４ｄ，５０４ｅのうちの１つまたは複数がこの方法でトレーニングされる。
【００８９】
各モジュールの出力は、ハイライト検出器５０６で受信される。ハイライト検出器５０６は、各モジュールによって検出されたイベントに基づいて、ビデオゲーム内のハイライトイベントの発生を検出するように構成される。ハイライト検出器５０６はまた、ハイライトイベントの不在を検出するように構成されてもよい。
【００９０】
いくつかの例では、ハイライト検出器５０６は、第１のモジュール５０４ａによって識別されたシーンタイプ、および第２のモジュール５０４ｂによって検出されたオーディオイベントに基づいてハイライトイベントを検出するように構成されてもよい。例えば、シーンタイプが、例えば「戦闘」に対応するものとして識別され、オーディオが「ハイライトイベント」に対応するものとして検出された場合、ビデオおよび対応するオーディオフレームは、ビデオゲームのハイライトイベントに対応するものとして識別され得る。
【００９１】
理解されるように、ハイライト検出器５０６がハイライトを検出する精度は、さらなるモジュールを含めることにより改善され得る。例えば、３つ以上のモジュールの出力に基づいて、ハイライトイベントに対応するイベントが検出される場合がある。これにより、個々のモジュールのいずれかの出力の不正確さが補われる場合がある。例えば、ビデオ、オーディオ、ならびに触覚および／またはテレメトリおよび／またはプレイヤの入力データがすべて、興味深いゲーム内イベントが発生したことを示している場合、ハイライトイベントが実際に発生したと強く確信して判断できる。
【００９２】
いくつかの例では、テレメトリデータをモジュール５０４ｃに入力する必要がない場合があることは理解されよう。例えば、テレメトリデータは、ゲーム内イベント（「ヘッドショット」、「プレイヤの死」など）を示す際にある程度明示的であってもよく、これは、ゲームプレイ中にハイライトイベントが発生したかどうかを判断するときに、ハイライト検出器５０６によって直接使用されてもよい。例えば、ハイライトイベントがビデオ、オーディオ、およびテレメトリデータの３つすべてによって示されている場合、ハイライトイベントが発生したことを強く確信して判断できる。
【００９３】
リスニングユニット５００は、ハイライト検出器５０６の出力に基づいて、ビデオゲームのゲームプレイの記録を生成するように構成された記録ユニット５０８をさらに備える。例えば、検出されたハイライトの指示の受信に応答して、記録ユニット５０８は、検出されたハイライトイベントに対応するビデオおよびまたはオーディオフレームを含む記録を生成するように構成されてもよい。記録には、選択したビデオと対応するオーディオの両方を含むビデオファイルが含まれてもよい。記録は、出力ユニット５１０を介して出力される前に、メモリ（図示せず）に保存されてもよい。記録は、ビデオの再生中に検出された異なるハイライトイベントに対応するビデオクリップを含むハイライトリールの形式で出力されてもよい。例えば、システムは、生成された記録が出力される表示デバイス（図示せず）を含んでもよい。いくつかの実施形態では、記録は、例えば、図２に関連して前述したように、リスニングユニット５００と通信しているモバイルデバイスで出力され得る。
【００９４】
いくつかの実施形態では、リスニングユニット５００は、ビデオゲームのゲームプレイの記録において、テレメトリまたはプレイヤ入力信号の少なくとも１つで受信されたデータの少なくとも一部を含むように構成され得る。これには、例えばプレイヤのビデオ（アバタではなく）、プレイヤのスピーチ、プレイヤが押したボタン、テレメトリデータによって示されるゲーム内イベントなどが含まれてもよい。前述のように、このデータは記録の一部として出力されてもよい。
【００９５】
いくつかの実施形態では、リスニングユニット５００は、複数の特徴抽出器５０３を備え、各特徴抽出器は、受信したビデオゲームデータの異なる信号を受信し、その信号のデータフレームの特徴表現を生成するように構成される。第１の特徴抽出器は、ビデオフレームを受信するように構成されてもよく、第２の特徴抽出器は、オーディオフレームを受信するように構成されてもよい。第１および第２の特徴抽出器は、図２に関連して前述した方法で特徴表現を生成するように構成されてもよい。各特徴抽出器によって生成された特徴表現は、対応する機械学習モデルに入力されてもよい。例えば、第１および第２の特徴抽出器は、ビデオおよびオーディオフレームの特徴表現をそれぞれ受信するように構成され得る。図５に示すシステムの特定の実装例については、図９に関連して後述する。
【００９６】
いくつかの実施形態では、特徴抽出器が存在しない場合があることは理解されよう。これは、例えば、第１および第２のモジュール５０４ａ，５０４ｂが、以下でさらに説明されるように、その特徴表現ではなく、ビデオおよびオーディオフレームでトレーニングされた場合に当てはまる可能性がある。
【００９７】
［機械学習モデルのトレーニング］
ビデオゲームの映像からハイライトリールを生成するためにＡＩを使用することは知られている。ただし、既知の方法では、ＡＩは通常、教師付き学習のみを使用してトレーニングされる。この方法でＡＩをトレーニングするには、開発者またはデータサイエンティストが、ＡＩのトレーニング用に十分な量のトレーニングデータを生成するために、数十時間のビデオゲーム映像からのビデオフレームを、それらのフレームがハイライトイベントに対応するかどうかを示す対応するラベルで、手動でタグ付けする必要がある。例えば、ゲームＨｏｒｉｚｏｎ  Ｚｅｒｏ  Ｄａｗｎ（商標）（約３００，０００フレームに相当）の１５時間のゲームビデオの手動タグ付けは、完了するのに６ＦＴＥ日近くかかることが発明者らによって発見された。この方法でトレーニングデータを明確に生成することは望ましくなく、ＡＩを他のビデオゲームに簡単に移動できないことを意味する。
【００９８】
本開示では、この問題は、各機械学習モデルを以前に生成されたビデオゲームデータでトレーニングし、半教師付き深層学習を使用して、以前に生成されたビデオゲームデータの信号と１つまたは複数の対応するイベントとの関係を決定することによって克服される。半教師付き学習を使用して機械学習モデルをトレーニングするための方法を、図６に関連して説明する。
【００９９】
ステップＳ６０２において、以前に生成されたビデオゲームデータが受信される。以前に生成されたビデオゲームデータは、ビデオゲームの以前のプレイ中に生成された少なくともビデオおよびオーディオ信号を含んでもよい。いくつかの例では、このデータはＹｏｕＴｕｂｅ（商標）などのビデオ共有プラットフォームから取得され得る。以前に生成されたビデオゲームデータは、一般に特定のビデオゲームに固有である。例えば、機械学習モデルは、特定のビデオゲーム用にトレーニングされ得、（一度トレーニングされると）そのビデオゲームを持っていると検出されたプレイヤに利用可能になる。理解されるように、ダウンロード可能なコンテンツ（ＤＬＣ）、前編、続編など、そのゲームのために、またはそのゲームに関連して追加のコンテンツがリリースされた場合、モデルを再トレーニングする必要があり得る。
【０１００】
以前に生成されたビデオゲームデータは、複数の異なるプレイヤによって生成され、ビデオゲーム全体またはビデオゲーム内で発生する可能性のある異なるイベントの代表的なカバレッジを提供し得る。一部のゲームでは、これらのビデオが可能なゲームプレイの十分な範囲をカバーしている限り、２〜５個のビデオを収集できる場合がある。これは、例えば、各ビデオがメインストーリーの大部分をカバーしている場合、Ｈｏｒｉｚｏｎ  Ｚｅｒｏ  Ｄａｗｎ（商標）のビデオを使用することで可能になり得る。
【０１０１】
以前に生成されたビデオゲームデータは、ビデオゲームの以前のプレイ中に生成されたテレメトリ信号、触覚信号、動き信号、スピーチ信号、プレイヤ入力信号、ビデオカメラ信号のうちの１つまたは複数を含んでもよい。好ましい例では、以前に生成されたオーディオ信号にはプレイヤのボイスオーバーが含まれておらず、つまり、これは別のスピーチ信号で受信されるか、またはまったく受信されない。オーディオ信号にゲームのオーディオとプレイヤのスピーチの両方が含まれる場合、オーディオ機械学習モデルのトレーニングが困難になる場合がある。いくつかの例では、ビデオとオーディオはビデオファイルとして一緒に受信される場合があり、異なるそれぞれの信号に分離される必要がある。前と同様に、オーディオ信号は９６０ミリ秒のセグメント（つまりフレーム）に分割される必要がある場合がある。
【０１０２】
ステップ６０４で、この方法は、以前に生成されたビデオゲームデータ内の信号の特徴表現を生成するステップを含む。
【０１０３】
いくつかの例では、以前に生成されたビデオ信号の特徴表現を生成するステップは、以前に生成されたビデオ信号内のＲＧＢまたはＹＵＶビデオフレームの少なくとも一部を、例えばＤｅｎｓｅＮｅｔ、ＲｅｓＮｅｔ、ＭｏｂｉｌｅＮｅｔなどの事前トレーニングモデルに入力するステップを含んでもよい。
【０１０４】
以前に生成されたオーディオ信号の特徴表現を生成するステップは、以前に生成されたオーディオ信号内のオーディオフレームの少なくとも一部の対数メルスペクトログラムを生成するステップを含み得る。各スペクトログラムは９６０ミリ秒のオーディオフレームに対応していてもよく、この方法は、そのスペクトログラムの６４の周波数帯域（１２５Ｈｚから７０００Ｈｚの範囲）で平均を取ることにより、各スペクトログラムの６４次元の特徴表現を生成するステップを含んでもよい。これは、図２に関連して前述した特徴表現の生成に対応し得る。
【０１０５】
ステップＳ６０６で、各信号について生成された特徴表現は、教師なし学習を使用してそれぞれのクラスタにクラスタリングされる。各クラスタは、そのクラスタ内の他のコンテンツに関していくつかの点で類似していると識別されたコンテンツ（特定の信号について）に対応する。
【０１０６】
いくつかの例では、これにはｋ平均クラスタリングまたはミニバッチｋ平均クラスタリングを使用して、各信号に対して生成された特徴表現をそれぞれのクラスタにソートすることが含まれる。本発明者らは、ｋ平均およびミニバッチｋ平均クラスタリングのいずれかが、ビデオゲームデータのクラスタリングに特に適していることを発見した。ほとんどのビデオゲームでは、発生する可能性のあるさまざまなタイプの視覚およびオーディオイベントは構造化されており、本質的に反復的であるため、比較的高い精度で相互に区別できる。例えば、シューティングゲームでは、手りゅう弾や爆弾などの爆発は、色、サイズなどの点で実質的に類似しているため、これらは武器の照準を合わせるプレイヤとは別個のものとして容易に識別できる。後者の場合でも、ターゲットが異なるにも関わらず、武器の照準を合わせるときプレイヤのアバタの外観が実質的に似ているため、これは異なるクラスタとして識別される場合がある。
【０１０７】
いくつかの実施形態では、ミニバッチｋ平均クラスタリングを使用して、ビデオフレームの特徴表現を６４個の異なるグループにソートする（すなわち、ｋ＝６４）。ＲＧＢまたはＹＵＶビデオフレームをＲＧＢスケーラモデルに入力して、ミニバッチｋ平均クラスタリングがビデオデータに適用される前に、ビデオデータがゼロ平均とユニット標準偏差を有するように標準化できる。同じまたは異なる実施形態では、ミニバッチｋ平均クラスタリングを使用して、オーディオフレームの特徴表現を３２個の異なるグループにソートする（つまりｋ＝３２）。同様に、オーディオフレームをオーディオスケーラモデルに入力して、ミニバッチｋ平均がオーディオデータに適用される前に、入力データがゼロ平均とユニット標準偏差を有するように標準化できる。
【０１０８】
以前に生成されたビデオゲームデータの信号内の異なるイベント（異なるクラスタに対応する）を検出するために必要な粒度のレベルに応じて、ｋの異なる値がｋ平均またはミニバッチｋ平均に使用され得ることは理解されよう。
【０１０９】
図７は、ゲームＨｏｒｉｚｏｎ  Ｚｅｒｏ  Ｄａｗｎ（商標）から１５時間のビデオゲーム映像（ＲＧＢフレーム）をソートするためにミニバッチｋ平均クラスタリングを使用して特定されたさまざまなクラスタのいくつかの例を示している。第１のクラスタ７０２ａは、例えば、戦闘中または狩猟の目的のために、標的を狙うキャラクタＡｌｏｙに対応する。第２のクラスタ７０２ｂは、メニュー設定の「クエスト」タブを開くプレイヤに対応する。第３のクラスタ７０２ｃは、カットシーンに対応する。これらは、異なるクラスタに属していると識別できるＲＧＢフレームのほんの一部の例であることが理解されよう。いくつかの例では、複数のクラスタが同じタイプのイベントに関連している場合がある。例えば、「ゲームプレイ」（つまり、プレイヤがオープンワールドをナビゲートしている場所）に対応する複数のクラスタがあり、各クラスタが特定のタイプの環境、例えば、凍結した／雪に覆われた土地、砂漠、暗い「Ｃｏｌｄｒｏｎｓ」などに対応している場合がある。メニュー画面のタイプごとに複数の異なるクラスタがあってもよい。例えば、「Ｑｕｅｓｔｓ」、「Ｉｎｖｅｎｔｏｒｙ」、「Ｍａｐ」などのそれぞれのクラスタがある。
【０１１０】
いくつかの実施形態では、トレーニング方法は、各クラスタからの特徴表現の少なくとも一部をフィルタリングするステップを含む。これには、各クラスタから、そのクラスタの重心からの閾値距離を超える特徴表現を削除することが含まれる場合がある。
【０１１１】
例えば、各クラスタ重心に最も近いＲＧＢまたはＹＵＶフレームの上位１０％は、そのクラスタ内のデータが対応する視覚イベントを表すものとして選択され得る。一般に、クラスタの重心に最も近いＲＧＢフレームは、クラスタが表すゲーム内イベントのより良い例と見なされる。多数のＲＧＢまたはＹＵＶフレームが、それぞれのクラスタまでの距離で上位１０％を超えているため、機械ビデオの機械学習モデルをトレーニングするときに使用されない場合がある。
【０１１２】
オーディオイベントの異なるタイプごとのクラスタは、同様の方法でフィルタリングされ得る。いくつかの例では、各クラスタのオーディオフレームの２５％がランダムにサンプリングされ、そのクラスタでサンプリングされたすべてのオーディオフレームの対応するオーディオファイルを作成するために使用される。例えば、オーディオファイルは一度に９６０ミリ秒のチャンクで作成される。
【０１１３】
上記の１０％および２５％は非限定的な例であることが理解されよう。
【０１１４】
ＲＧＢまたはＹＵＶビデオフレームとオーディオフレームをクラスタリングするステップでは、モデルファイルを生成して、各クラスタの特徴表現にラベルを付けることもできる。
【０１１５】
図６に戻ると、トレーニング方法は、各クラスタ（所与の信号について）をそのクラスタに関連するイベントを示すラベルを手動でラベル付けするステップＳ６０８をさらに含む。ここで、手動でのラベル付けは、例えばデータサイエンティストまたは開発者が、各クラスタに付与されるラベルを示す入力を提供する必要があることを意味する。これには、各クラスタ内のフレームの少なくとも一部をレビューし、そのクラスタ内のフレームが対応するイベントを決定することが含まれてもよい。
【０１１６】
ビデオフレームの場合、例えば各クラスタ内の５０個のＲＧＢフレームをレビューしてから、そのクラスタ内のすべてのＲＧＢフレームを特定のゲーム内イベントに対応するものとして識別できる必要があり得る。例えば、クラスタが、例えばそのクラスタのビデオコンテンツのレビューに基づく「ゲームプレイ」に対応することを決定することが可能であってもよい。クラスタを「ゲームプレイ」に対応するものとしてラベル付けすることにより、すべてのフレーム（またはフレームの特徴表現）が「ゲームプレイ」に対応するものとして識別される。理解されるように、この方法でフレームにラベルを付けることは、数千または数十万のフレームを通過し、各フレームに対応するラベルを手動でラベル付けするよりもかなり高速である。
【０１１７】
オーディオフレームの場合、オーディオクラスタのラベルを決定するときに、対応するビデオも表示して、開発者またはデータサイエンティストが各クラスタのオーディオが何を表しているかを見る（および聞く）ことができるようにすることが望ましい場合がある。これには、各オーディオクラスタが対応するビデオのさまざまなセクションを識別し、そのクラスタに関連付けられたビデオクリップに基づいて各オーディオクラスタのラベルを決定することが含まれてもよい。例えば、特定のビデオの０〜３分はオーディオクラスタ１５に関連するものとして、３〜４分はオーディオクラスタ２に関連するものとして、４〜７分はオーディオクラスタ１５に関連するものとして（など）識別されてもよい。次に、対応するオーディオとともに、０〜３分と４〜７分との間のビデオ出力の一部を表示することにより、例えばクラスタ１５のラベルを決定できる。
【０１１８】
発明者らは、この方法を使用すると、１〜２時間で十分な量のラベル付きトレーニングデータを取得できることを発見した。例えば、ゲームＨｏｒｉｚｏｎ  Ｚｅｒｏ  Ｄａｗｎ（登録商標）の場合、約９０時間のビデオゲーム映像で、ラベル付きシーンタイプクラスタの生成に約１時間かかることがわかった。また、（同じゲームからの）約１０時間のオーディオの場合、ハイライトおよび非ハイライトとしてラベル付けされたクラスタの生成には約１時間かかることがわかった。
【０１１９】
図８ａは、ＲＧＢビデオフレーム用に識別された６４個のクラスタのいくつかに与えられた記述ラベルの例を示している。図８ａでは、最初のクラスタは「カットシーン」に対応するものとして識別され、２番目と３番目のクラスタは、「メニュー画面」に対応するものとして識別され、６４番目のクラスタは「ゲームプレイ」に対応するものとして識別されている。
【０１２０】
場合によっては、同じゲーム内（高レベルであっても）イベントに対応するように異なるクラスタをマージすることが望ましい場合がある。例えば、クラスタ２は「クエスト（ｑｕｅｓｔｓ）」メニュー画面に対応し、クラスタ３は例えば「作成（ｃｒａｆｔｉｎｇ）」画面に対応してもよい。これらの画面のいずれかを含むビデオフレームがハイライトイベントと見なされる可能性は低いため、これらのクラスタに同じ記述ラベルを付けて単一のクラスタにマージすることが望ましい場合がある。いくつかの例では、いくつかのクラスタは異なるタイプのゲームプレイ（例えば、「戦闘」、「探索」、「水泳」など）に対応し、これらのクラスタを「ゲームプレイ」に対応する単一のクラスタにマージすることが望ましい場合がある。これは、例えば、対応するオーディオからハイライトイベントが発生したかどうかを判断できる場合に望ましい場合がある。
【０１２１】
図８ｂは、オーディオフレーム用に識別された３２個のクラスタの一部に与えられた記述ラベルの例を示している。図８ａでは、クラスタ１および３２はハイライトオーディオイベントに対応するものとして識別され、クラスタ２および３は非ハイライトイベントに対応しないものとして識別されている。クラスタ１および３２は、さまざまなタイプの戦闘中に生成されるオーディオに対応する場合がある。クラスタ２および３は、例えば通常、背景雑音として存在するカットシーンの会話または音（鳥のさえずり、雨など）に対応してもよい。
【０１２２】
図８ａに関連して前述したように、同じ高レベルクラスタを表すクラスタを手動でマージすることが望ましい場合がある。例えば、特定のオーディオイベントに対応するように異なるオーディオクラスタを識別するのではなく、アクション／戦闘に対応するすべてのオーディオイベントを「ハイライト」に対応するものとして一緒にラベル付けしてマージすることが望ましい場合がある。この方法でオーディオクラスタにラベルを付けることにより、各クラスタに対してバイナリフラグ（つまり、１＝ハイライト、０＝非ハイライト）が作成される。したがって、このデータを使用してオーディオ機械学習モデルをトレーニングすることは、バイナリ分類の問題になる。本発明者らは、このようにトレーニングされたオーディオモデルが、非常に計算効率が高く、ＧＰＵを実行する必要がないことを発見した（つまり、ＣＰＵ上で実行できる）。
【０１２３】
図６に戻ると、この方法は、各信号の特徴表現と対応するラベルをそれぞれの機械学習モデルに入力するステップＳ６１０を含む。機械学習モデルは、教師付き深層学習を使用してトレーニングされる。モデルは、トレーニングデータが教師なし学習を使用して少なくとも部分的に生成されたため、教師付き学習を使用してトレーニングされたと言われる。
【０１２４】
ビデオフレームの特徴表現とそれに対応するラベルは、マルチクラス分類アルゴリズム（ビデオ機械学習モデルに対応）に入力され得る。次に、ビデオ機械学習モデルをトレーニングして、ＲＧＢまたはＹＵＶフレームの特徴表現と、それらのフレームに関連付けられた記述ラベルとの関係を決定することができる。ビデオ機械学習モデルは、例えば、畳み込みまたはリカレントニューラルネットワークなどのニューラルネットワークを備えてもよい。ビデオ機械学習モデルは、各ビデオフレーム（またはむしろその表現）について、異なる対応するラベルのそれぞれの予測確率を出力するように構成され得る。ビデオフレームは、最も高い確率に関連付けられたラベルに基づいて、特定のイベントに対応するものとして識別され得る。
【０１２５】
オーディオフレームの特徴表現と対応するラベルは、対応するオーディオ機械学習モデル、または、例えば、Ｇｒａｄｉｅｎｔ  Ｂｏｏｓｔｉｎｇ  Ｔｒｅｅｓ、Ｒａｎｄｏｍ  Ｆｏｒｅｓｔｓ、Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅアルゴリズムなどのバイナリ分類モデルに入力され得る。
【０１２６】
各モデルは、反復的な方法でトレーニングされ得る。例えば、各エポック（トレーニングセットを通過）の後、モデルが前の反復よりもパフォーマンスが良いと判断された場合、モデルの最終バージョンを保存できる。場合によっては、特定のモデルが、表示されていないトレーニングデータの入力セットに対して十分に正確な結果を生成したときに、展開の準備ができていると判断されることがある。
【０１２７】
いくつかの実施形態では、機械学習モデルは、以前に生成されたビデオゲームデータ内の異なる信号の特徴表現でトレーニングされない場合がある。むしろ、（上記のように）所定のクラスタ内のビデオフレームとオーディオフレームのラベルが決定されると、オーディオフレームとビデオフレームが対応するラベルとともにそれぞれの機械学習モデルに入力される可能性がある。
【０１２８】
この方法でモデルをトレーニングすると、機械学習モデルをより特注の方法でトレーニングできるという利点があり得る。例えば、ＤｅｎｓｅＮｅｔのような事前トレーニングモデルを使用して特徴表現を生成することは、事前トレーニングモデルが特定のビデオゲームに関係のない数千の画像を使用してトレーニングされている可能性が高いため、非効率的な場合がある。その結果、そのような事前トレーニングモデルの使用は、モデルの保存に必要なメモリとモデルの実行にかかる時間の観点から過度になる場合がある（例えば、ＧＰＵの使用が必要）。
【０１２９】
したがって、モデルのトレーニングが完了したら、ＤｅｎｓｅＮｅｔが不要であることを確認することが望ましい場合がある。これは、例えば、クラスタリングの目的でＤｅｎｓｅＮｅｔを使用するが、その後、例えば上記のように生成されたビデオ（ＲＧＢまたはＹＵＶ）およびオーディオフレームと、対応するラベルを有するニューラルネットワークをトレーニングすることで実現され得る。これは、トレーニングされたモデルが、入力ビデオおよびオーディオフレームが例えばＤｅｎｓｅＮｅｔを最初に通過することなく、対応するラベルとともに、入力としてビデオおよびオーディオフレームを取ることができることを意味する。
【０１３０】
上記は主にビデオおよびオーディオフレームに関連して説明されたが、特徴表現の生成、特徴表現のクラスタリング、およびクラスタの手動ラベル付けのステップは、トレーニングデータに含まれる触覚、テレメトリ、動き、プレイヤ入力、スピーチ、ビデオカメラ信号のいずれかに等しく適用できることが理解されよう。所定の信号のクラスタにラベルが付けられると、データ（またはその特徴表現）が対応する機械学習モデルに入力され得る。
【０１３１】
一例として、プレイヤの入力信号の場合、これは、信号を複数のフレームに分割し、押されたボタン、および各フレームのボタンが押された頻度を検出することを含み得る。ボタンを押すと、対応する周波数をクラスタリングし（上記のように）、対応するビデオと関連付けることができる。次に、異なるクラスタにラベルを付け（「戦闘」、「のんびり歩く」など）、機械学習モデルのトレーニングに使用できる。機械学習モデルは、ボタンを押す特定のフレームについて、そのフレームに対応するラベルを識別するようにトレーニングできる。
【０１３２】
さらに、コンピュータ実行可能命令を有するコンピュータ可読媒体を適合させて、コンピュータシステムに前述のトレーニング方法ステップのいずれかを実行させることができることが理解されよう。
【０１３３】
図９は、前述の第１および第２のモジュール５０４ａ，５０４ｂをトレーニングするためのシステム９００の一例を概略的に示している。図９では、システムはビデオフレームと対応するオーディオのみを示している。前述のように、システムはテレメトリデータ、触覚データ、プレイヤ入力データなどを使用してトレーニングすることもできることが理解されよう。そのような場合、システムには異なる信号タイプごとに並列分岐があり、各分岐には対応するユニットが含まれてもよい。システムは、図６に関連して前述した方法のいずれかで生成および収集され得る、以前に生成されたビデオゲームデータでトレーニングされ得る。
【０１３４】
図９では、ＲＧＢまたはＹＵＶフレーム９０４ａ（ビデオ信号に対応する）および対応するオーディオ信号９０４ｂを含むビデオファイル９０２が示されている。前述のように、ビデオゲームプレイデバイスはゲームプレイのビデオファイルを生成する場合があり、ＲＧＢまたはＹＵＶフレームと対応するオーディオを個別のファイル（または信号）に分離する必要がある場合がある。また、オーディオ信号を、例えば持続時間が９６０ミリ秒であるオーディオフレームに分割する必要がある場合もある。この機能のために、別個のユニット（図示せず）が設けられてもよい。
【０１３５】
図９では、システムは複数の特徴抽出器を含むものとして示されている。各特徴抽出器は、異なるタイプの信号を受信し、それらの信号のデータの特徴表現を生成するように構成される。
【０１３６】
図９では、第１の特徴抽出器９０６ａは、ビデオフレームを受信するように配置されて示されている。第１の特徴抽出器９０６ａは、前述の方法のいずれかを使用して、受信したビデオフレームの特徴表現を生成するように構成される。例えば、第１の特徴抽出器９０６ａは、入力としてＲＧＢまたはＹＵＶビデオフレームを受信し、それらのフレームの特徴表現を出力するために事前にトレーニングされた事前トレーニングモデル（例えば、ＤｅｎｓｅＮｅｔ、ＲｅｓＮｅｔ、ＭｏｂｉｌｅＮｅｔなど）を含んでもよい。
【０１３７】
第２の特徴抽出器９０６ｂは、オーディオフレームを受信するものとして示されている。第２の特徴抽出器９０６ｂは、前述の方法のいずれかを使用してオーディオフレームの特徴表現を生成するように構成される。例えば、第２の特徴抽出器９０６ｂは、受信されたオーディオ信号内のオーディオフレームのそれぞれの対数メルスペクトログラムを生成するように構成され得る。
【０１３８】
システムは、複数のクラスタリングユニットをさらに備える。各クラスタリングユニットは、対応する特徴抽出器によって出力された特徴表現を受け取り、教師なし学習を使用して、受信した特徴表現を複数のクラスタにソートするように構成される。
【０１３９】
図９からわかるように、特徴抽出器とクラスタリングユニットの間には１対１のマッピングがあり、つまり、各クラスタリングユニットは、異なるタイプの信号の特徴表現を受信するように構成される。前述のように、各信号の特徴表現は、ｋ平均またはミニバッチｋ平均クラスタリングを使用してクラスタリングできる。図９では、第１のクラスタリングユニット９０８ａは、第１の特徴抽出器９０６ａによって出力された特徴表現を受信するものとして示されており、第２のクラスタリングユニット９０８ｂは、第２の特徴抽出器９０６ｂによって出力された特徴表現を受信するものとして示されている。
【０１４０】
システムは、クラスタリングユニットによって出力されたクラスタのラベルを生成するように動作可能なラベリングユニットをさらに備える。図９では、システムは、各クラスタリングユニットに１つずつ、複数のラベリングユニットを備えるものとして示されている。各ラベリングユニットは、ユーザから受信した入力に基づいて各クラスタのラベルを生成するように構成される。ラベルは、それぞれのクラスタの特徴表現に関連付けられたイベントを示す記述ラベルに対応している。ラベルは、図６に関連して前述した方法のいずれかで、特定の信号のクラスタごとに生成され得る。
【０１４１】
システムは、前述の第１および第２のモジュール５０４ａ，５０４ｂをトレーニングするためのトレーニングユニットをさらに備える。システムは、複数のトレーニングユニットを備えてもよく、各トレーニングユニットは、特定の信号タイプに対して生成された特徴表現および対応するラベルを受信するように構成される。各トレーニングユニットは、信号の特徴表現と、そのトレーニングユニットに入力された対応する記述ラベルとの関係を決定するように構成される。
【０１４２】
図９では、第１のトレーニングユニット９１２ａは、第１の特徴抽出器９０６ａによって出力された特徴表現と、第１のラベリングユニット９１０ａによって出力された対応するラベルを受信し、２つの間の関係を決定するように構成される。同様に、第２のトレーニングユニット９１２ｂは、第２の特徴抽出器９０６ｂによって出力された特徴表現と、第２のラベリングユニット９１０ｂによって出力された対応するラベルを受信し、２つの間の関係を決定するように構成される。第１のトレーニングユニット９１２ａは、前述のように、ビデオフレームの特徴表現および対応する記述ラベルでトレーニングされるニューラルネットワークを備えてもよい。第２のトレーニングユニット９１２ｂは、前述のように、オーディオフレームの対数メルスペクトログラムおよび対応する記述ラベルでトレーニングされるロジスティック回帰学習モデルまたはバイナリ分類モデルを備えてもよい。ただし、どちらのトレーニングユニットでも適切な機械学習モデルまたはシステムを使用できる。
【０１４３】
第１および第２のトレーニングユニット９１２ａ，９１２ｂは、第１および第２のモジュール５０４ａ，５０４ｂがトレーニングされる１つまたは複数のサーバ（「クラウド」を形成する）に対応し得る。特徴抽出器およびラベリングユニットによって生成された特徴表現および対応する記述ラベルは、これらの１つまたは複数のサーバにアップロードされ得、そこにインストールされた対応するモジュール５０４ａ，５０４ｂをトレーニングすることができる。
【０１４４】
各モジュール５０４ａ，５０４ｂが対応するトレーニングユニットによって十分にトレーニングされると、図５に関連して前述したリスニングユニット５００にエクスポートされ得る。
【０１４５】
以前に生成されたビデオゲームデータが触覚データ、テレメトリデータ、プレイヤ入力データの少なくとも１つを含む実施形態では、システムは、これらの異なるタイプのデータのそれぞれを処理するための特徴抽出器、クラスタリングユニット、ラベリングユニット、およびトレーニングユニットを含み得ることが理解されよう。前述のように、テレメトリデータを使用して機械学習モジュールをトレーニングする必要はない場合があり、これは通常、ゲーム内イベントの明示的な指示を提供するためである。ただし、プレイヤの入力データには、特徴抽出器、クラスタリングユニット、ラベリングユニット、およびトレーニングユニットが必要になることが一般に予想される。
【０１４６】
複数の機械学習モデルを参照して本明細書で説明するビデオゲームのゲームプレイの記録を生成する方法は、本明細書で説明するように、一連の機械学習モデルをトレーニングする方法と組み合わせて、例えば開発者によるトレーニング中のシステムの出力を監視し、または部分的にトレーニングされた一連の機械学習モデルを改良して、個人のゲームプレイスタイルに応答し得る（例えば、プレイヤが乱闘スタイルのプレイヤではなく狙撃兵である場合、イベントのさまざまなバランスを蓄積する可能性があり、オプションで結果として１つまたは複数のクラスタがトレーニングメソッド内で作成、変更、または分割されて１つまたは複数のモデルを改良する可能性がある）。同様に、オプションで複数の機械学習モデル（ビデオやオーディオなど）が本明細書で説明するように動作するようにトレーニングされている間、エンドユーザ向けのビデオゲームのゲームプレイの記録を生成するプロセスと並行して１つまたは複数の追加モデルがトレーニングされてもよく；例えば、ユーザ入力および／またはゲームプレイへの応答に基づいたモデルは、エンドユーザの特定の入力および／または応答に応じてトレーニングまたは再トレーニング／改良されてもよい。
【０１４７】
したがって、２つ以上のトレーニングされた機械学習モデルの任意の適切な組み合わせと、それらのモデルまたは追加のモデルの（再）トレーニング体制を、組み合わせた方法として実装できる。
【０１４８】
本明細書に記載の方法は、ソフトウェア命令によって、または専用ハードウェアの包含または置換によって適切に適合された従来のハードウェアで実行できることが理解されよう。したがって、従来の同等のデバイスの既存の部分への必要な適応は、フロッピー（登録商標）ディスク、光ディスク、ハードディスク、ＰＲＯＭ、ＲＡＭ、フラッシュメモリ、またはこれらもしくは他のストレージメディアの任意の組み合わせなどの非一時的な機械可読媒体に格納されたプロセッサ実装可能な命令を含むコンピュータプログラム製品の形で実装され得るか、またはＡＳＩＣ（特定用途向け集積回路）またはＦＰＧＡ（フィールドプログラマブルゲートアレイ）または従来の同等のデバイスの適合に使用するのに適した他の構成可能な回路としてハードウェアで実現され得る。これとは別に、そのようなコンピュータプログラムは、イーサネット、無線ネットワーク、インターネット、またはこれらもしくは他のネットワークの任意の組み合わせなどのネットワーク上のデータ信号を介して送信されてもよい。
【図１】
2020121102.tif 000003
【図２】
2020121102.tif 000004
【図３】
2020121102.tif 000005
【図４】
2020121102.tif 000006
【図５】
2020121102.tif 000007
【図６】
2020121102.tif 000008
【図７】
2020121102.tif 000009
【図８ａ】
2020121102.tif 000010
【図８ｂ】
2020121102.tif 000011
【図９】
2020121102.tif 000012
【外国語明細書】
2020121102000001.pdf