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

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

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

特許7383151ゲームアクティビティに対するサーバベースの個々のプレイ時間推定
<>
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図1
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図2
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図3
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図4
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図5
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図6
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図7
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図8
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図9
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図10
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図11
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図12
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図13
  • 特許-ゲームアクティビティに対するサーバベースの個々のプレイ時間推定 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-09
(45)【発行日】2023-11-17
(54)【発明の名称】ゲームアクティビティに対するサーバベースの個々のプレイ時間推定
(51)【国際特許分類】
   A63F 13/67 20140101AFI20231110BHJP
【FI】
A63F13/67
【請求項の数】 15
(21)【出願番号】P 2022528081
(86)(22)【出願日】2020-09-30
(65)【公表番号】
(43)【公表日】2023-01-20
(86)【国際出願番号】 US2020053462
(87)【国際公開番号】W WO2021101627
(87)【国際公開日】2021-05-27
【審査請求日】2022-06-15
(31)【優先権主張番号】16/687,340
(32)【優先日】2019-11-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100099324
【弁理士】
【氏名又は名称】鈴木 正剛
(72)【発明者】
【氏名】ダニエル エス. ハイアット
(72)【発明者】
【氏名】アディル アーメッド シェルワニ
(72)【発明者】
【氏名】スティーブン パトリック トロンベッタ
【審査官】三田村 陽平
(56)【参考文献】
【文献】特開2011-218102(JP,A)
【文献】米国特許出願公開第2018/0161673(US,A1)
【文献】欧州特許出願公開第03028751(EP,A2)
【文献】米国特許出願公開第2008/0096663(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24
A63F 13/00-13/98
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムで実行される方法であって、
ビデオゲームにおけるアクティビティの識別子と、ビデオゲームプレーヤによる前記アクティビティの完了を示す第1のデータとを受け取り、前記識別子は前記ビデオゲームのプログラムコードにおいて予め定義され、前記識別子及び前記第1のデータを前記プログラムコードの実行に基づいて受け取るものであり、
前記識別子及び前記第1のデータをデータストアに記憶し、
前記識別子に基づいて、前記データストアから複数のビデオゲームプレーヤによる前記アクティビティの完了を示す第2のデータを決定し、前記第2のデータは、複数の開始イベントと複数の終了イベントを有し、
前記複数の前記ビデオゲームプレーヤによる前記アクティビティの前記完了についての測定値を、前記第2のデータに基づいて決定し、前記測定値は、(i)前記アクティビティの完了に成功するまでの時間または(ii)前記アクティビティのタイプに基づいて前記アクティビティの完了を試みた時間のうちの少なくとも一方を含むものであり、前記測定値の決定には、前記ビデオゲームプレーヤに関連付けて、かつ前記第2のデータに含まれる前記複数の開始イベントと前記複数の終了イベントのうちから、前記複数のビデオゲームプレーヤの各ビデオゲームプレーヤが前記アクティビティの完了に成功するまでの時間、または、前記複数のビデオゲームプレーヤの各ビデオゲームプレーヤが前記アクティビティの完了を試みた時間のうち少なくとも一方を決定することが含まれ、
前記アクティビティを完了させていないユーザに対して、前記測定値に基づいて前記アクティビティを完了させるまでの時間長を推定し、
前記ユーザに関連付けられるユーザデバイス上に前記時間長を提示する、方法。
【請求項2】
前記第1のデータは開始イベント及び終了イベントを含み、前記終了イベントは前記ビデオゲームプレーヤによる前記アクティビティの前記完了の成果を含み、前記測定値の決定では、
前記ビデオゲームプレーヤに関連して、前記第1データに含まれる前記開始イベント及び前記終了イベントから、前記ビデオゲームプレーヤが前記アクティビティの完了に成功するまでの時間または前記ビデオゲームプレーヤ前記アクティビティの完了を試みた時間のうちの少なくとも一方を決定する、請求項1に記載の方法。
【請求項3】
前記時間長の推定では、
前記複数の開始イベント及び前記複数の終了イベントに基づいて、前記アクティビティの完了に成功するまでの前記時間または前記アクティビティの完了を試みた前記時間のうちの少なくとも一方の統計的分布を生成し、
予め定義されたパーセンタイルに基づいて前記統計的分布から前記時間長を決定する、請求項2に記載の方法。
【請求項4】
前記アクティビティは複数のタスクを含み、前記複数のタスクの各1つは個々の時間長に関連付けられ、時間のそれぞれの個々の時間長を、前記複数の前記ビデオゲームプレーヤの前記測定値に基づいて推定し、前記時間長の推定には、前記複数のタスクの前記個々の時間長を組み合わせることが含まれる、請求項1に記載の方法。
【請求項5】
さらに、前記ユーザのビデオゲームコンソールから、前記アクティビティの前記識別子と前記複数のタスクのうちの第1のタスクの完了を示すイベントデータとを受け取り、
前記複数のタスクうち完了していない残りのタスクの前記個々の時間長に基づいて、前記アクティビティを完了させるまでの残りの時間長を決定し、
前記残りの時間長を前記ユーザに提示する、請求項に記載の方法。
【請求項6】
さらに、前記時間長の長さは前記アクティビティの前記タイプに対して予め定義された時間範囲内に入る長さであると決定し、
前記時間長に基づいて、前記ビデオゲーム及び別のビデオゲームに関連付けられる候補アクティビティから前記アクティビティを選択する、請求項1に記載の方法。
【請求項7】
コンピュータシステムであって、
1つ以上のプロセッサと、
コンピュータ可読命令を記憶する1つ以上のメモリであって、前記コンピュータ可読命令は、前記1つ以上のプロセッサによって実行されると、前記コンピュータシステムを、
ビデオゲームにおけるアクティビティの識別子と、ビデオゲームプレーヤによる前記アクティビティの完了を示す第1のデータとを受け取り、前記識別子は前記ビデオゲームのプログラムコードにおいて予め定義され、前記識別子及び前記第1のデータは前記プログラムコードの実行に基づいて受け取られ、
前記識別子及び前記第1のデータをデータストアに記憶し、
前記識別子に基づいて、前記データストアから複数のビデオゲームプレーヤによる前記アクティビティの完了を示す第2のデータを決定し、前記第2のデータは、複数の開始イベントと複数の終了イベントを有し、
前記複数の前記ビデオゲームプレーヤによる前記アクティビティの前記完了についての測定値を、前記第2のデータに基づいて決定し、前記測定値は、(i)前記アクティビティの完了に成功するまでの時間または(ii)前記アクティビティのタイプに基づいて前記アクティビティの完了を試みた時間のうちの少なくとも一方を含むものであり、前記測定値の決定には、前記ビデオゲームプレーヤに関連付けて、かつ前記第2のデータに含まれる前記複数の開始イベントと前記複数の終了イベントのうちから、前記複数のビデオゲームプレーヤの各ビデオゲームプレーヤが前記アクティビティの完了に成功するまでの時間、または、前記複数のビデオゲームプレーヤの各ビデオゲームプレーヤが前記アクティビティの完了を試みた時間のうち少なくとも一方を決定することが含まれ、
前記アクティビティを完了させていないユーザに対して、前記測定値に基づいて前記アクティビティを完了させるまでの時間長を推定し、
前記ユーザに関連付けられるユーザデバイス上に前記時間長を提示するように構成するものである、コンピュータシステム。
【請求項8】
前記アクティビティはシングルプレーヤタスクを含み、前記測定値の各1つは、ビデオゲームプレーヤごとの前記アクティビティの開始及び終了に対応する、請求項に記載のコンピュータシステム。
【請求項9】
前記アクティビティはマルチプレイヤータスクを含み、前記コンピュータ可読命令の前記実行はさらに、前記コンピュータシステムを、
前記マルチプレイヤータスクを共同で完了させた前記複数の前記ビデオゲームプレーヤのサブセットを決定し、
前記サブセットが共同で完了させた前記アクティビティの開始及び終了を決定し、前記測定値は、前記開始及び前記終了に対応する測定値を含むものであるように構成する、請求項に記載のコンピュータシステム。
【請求項10】
前記コンピュータ可読命令の前記実行では、さらに、前記コンピュータシステムを、
前記ユーザのビデオゲームコンソールから、前記アクティビティの前記識別子と前記ユーザによる前記アクティビティの開始を示す第3のデータとを受け取り、
前記開始からの継続時間が前記時間長を閾値量超え、かつ、前記ユーザによる前記アクティビティの終了が受け取られていないと決定し、
前記ユーザにヘルプオプションを提示するように構成する、請求項に記載のコンピュータシステム。
【請求項11】
命令を記憶する1つ以上のコンピュータ可読記憶媒体であって、前記命令は、コンピュータシステム上で実行されると、前記コンピュータシステムに、
ビデオゲームにおけるアクティビティの識別子とビデオゲームプレーヤによる前記アクティビティの完了を示す第1のデータとを受け取り、前記識別子は前記ビデオゲームのプログラムコードにおいて予め定義され、前記識別子及び前記第1のデータは前記プログラムコードの実行に基づいて受け取られるものであり、
前記識別子及び前記第1のデータをデータストアに記憶し、
前記識別子に基づいて、前記データストアから複数のビデオゲームプレーヤによる前記アクティビティの完了を示す第2のデータを決定し、前記第2のデータは、複数の開始イベントと複数の終了イベントを有し、
前記複数の前記ビデオゲームプレーヤによる前記アクティビティの前記完了についての測定値を、前記第2のデータに基づいて決定し、前記測定値は、(i)前記アクティビティの完了に成功するまでの時間または(ii)前記アクティビティのタイプに基づいて前記アクティビティの完了を試みるまでの時間のうちの少なくとも一方を含むものであり、前記測定値の決定には、前記ビデオゲームプレーヤに関連付けて、かつ前記第2のデータに含まれる前記複数の開始イベントと前記複数の終了イベントのうちから、前記複数のビデオゲームプレーヤの各ビデオゲームプレーヤが前記アクティビティの完了に成功するまでの時間、または、前記複数のビデオゲームプレーヤの各ビデオゲームプレーヤが前記アクティビティの完了を試みた時間のうち少なくとも一方を決定することが含まれ、
前記アクティビティを完了させていないユーザに対して、前記測定値に基づいて前記アクティビティを完了させるまでの時間長を推定し、
前記ユーザに関連付けられるユーザデバイス上に前記時間長を提示することを含む動作を行わせる、1つ以上のコンピュータ可読記憶媒体。
【請求項12】
前記動作にはさらに、
前記ユーザのプレイ時間履歴及び前記複数のビデオゲームプレーヤのプレイ時間履歴に基づいて、アクティビティ完了に対する前記ユーザの平均時間を推定し、
前記平均時間に基づいて前記時間長を調整することが含まれる、請求項11に記載の1つ以上のコンピュータ可読記憶媒体。
【請求項13】
前記動作の推定ではさらに、
前記プレイ時間履歴に基づいて、前記複数のビデオゲームプレーヤのデシル分布を生成し、各デシルはアクティビティ完了に対するプレーヤ平均時間に対応するものであり、
前記ユーザの前記プレイ時間履歴に基づいて、前記ユーザが前記デシル分布のデシルに属すると決定し、前記ユーザの前記平均時間は前記デシルに対応するものである、請求項12に記載の1つ以上のコンピュータ可読記憶媒体。
【請求項14】
前記動作では、さらに、
前記ビデオゲームプレーヤのプレイ時間履歴に基づいて、前記複数のビデオゲームプレーヤの複数のコホートを生成し、
前記ユーザのプレイ時間履歴に基づいて、前記ユーザが前記複数のコホートのうちの1つのコホートに属すると決定し、
前記コホートに属する前記複数の前記ビデオゲームプレーヤのサブセットを決定し、前記サブセットに対して前記測定値が決定される、請求項11に記載の1つ以上のコンピュータ可読記憶媒体。
【請求項15】
前記動作では、さらに、
前記アクティビティを完了させることについてのヘルプ情報を前記ユーザが見たか否か、見たヘルプ情報のタイプ、または前記見たヘルプ情報の個数、のうちの少なくとも1つに基づいて前記時間長を調整し、前記ヘルプ情報は、ビデオファイル、オーディオファイル、またはテキストファイルのうちの少なくとも1つを含むものである、請求項11に記載の1つ以上のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は米国出願第16/687,340号(2019年11月18日に出願)の継続出願である。なおこの文献はすべての目的に対してその全体において参照により本明細書に組み込まれている。
【背景技術】
【0002】
ビデオゲームは種々のコンピューティングデバイス上で利用できる。たとえば、ユーザはビデオゲームコンソール及びモバイルデバイスを操作して、第1のビデオゲーム及び第2のビデオゲームをそれぞれプレイする。加えて、ビデオゲームは種々の供給元から入手できる。たとえば、ビデオゲームコンソールは、2つ以上の異なるビデオゲーム開発者からの複数のビデオゲームをプレイするように動作可能である。
【0003】
ビデオゲーム数の増加及び種々のコンピューティングデバイス上でのその利用可能性及び種々の供給元からのその入手可能性を考えると、ユーザ経験あるいはユーザエクスペリエンスは通常変化する。たとえば、ゲームプレイヘルプを捜し得る方法は、ビデオゲーム間で著しく変化する可能性がある。加えて、ビデオゲームの特定の部分がプレイに利用できるとコンピューティングデバイス上に表れる仕方は、特定のビデオゲームに固有である可能性がある。
【0004】
したがって、ユーザ経験はビデオゲームプレーヤ間で共通でない場合がある。基となるビデオゲームとは関係なく、ビデオゲーム機能におけるなんらかの共通性が可能となるようにユーザ経験を改善することが求められている。
【発明の概要】
【0005】
ユーザビデオゲーム経験あるいはユーザビデオゲームエクスペリエンスを改善するための技術について説明する。一例では、ビデオゲーム関連情報を提示するためにコンピュータシステムが用いられる。コンピュータシステムは、1つ以上のプロセッサと、命令を記憶する1つ以上の非一時的なコンピュータ可読記憶媒体(たとえば、1つ以上のメモリ)とを含んでいる。命令は、1つ以上のプロセッサによって実行されると、コンピュータシステムに動作を行わせる。
【0006】
一例では、動作は、ビデオゲームにおけるアクティビティの識別子と、ビデオゲームプレーヤによるアクティビティの完了を示す第1のデータとを受け取ることを含む。識別子はビデオゲームのプログラムコードにおいて予め規定あるいは定義される。識別子及び第1のデータをプログラムコードの実行に基づいて受け取る。また動作は、識別子及び第1のデータをデータストアに記憶し、データストアからまた識別子に基づいて、複数のビデオゲームプレーヤによるアクティビティの完了を示す第2のデータを決定し、第2のデータに基づいて複数のビデオゲームプレーヤによるアクティビティの完了についての測定値を決定する。測定値は、(i)アクティビティの完了に成功するまでの時間または(ii)アクティビティのタイプに基づいてアクティビティの完了を試みるまでの時間のうちの少なくとも一方を含む。また動作は、アクティビティを完了させていないユーザに対して、測定値に基づいてアクティビティを完了させるまでの時間長を推定し、ユーザに関連付けられるユーザデバイス上に時間長を提示する。
【0007】
一例では、第1のデータは開始イベント及び終了イベントを含む。終了イベントは、ビデオゲームプレーヤによるアクティビティの完了の成果を含む。測定値を決定することは、ビデオゲームプレーヤに関連して及び開始イベント及び終了イベントから、アクティビティの完了に成功するまでのビデオゲームプレーヤの時間またはアクティビティの完了を試みるまでのビデオゲームプレーヤの時間のうちの少なくとも一方を決定することを含む。この例では、時間長を推定することは、第2のデータからの開始イベント及び終了イベントに基づいて、アクティビティの完了に成功するまでの時間またはアクティビティの完了を試みるまでの時間のうちの少なくとも一方の統計的分布を生成し、予め定義されたパーセンタイルに基づいて統計的分布から時間長を決定する。
【0008】
一例では、動作はさらに、アクティビティのタイプとアクティビティの識別子との間の関連付けに基づいてアクティビティのタイプを決定することを含む。関連付けをデータストアに記憶する。アクティビティのタイプは、アクティビティが、進行アクティビティ、競争アクティビティ、または挑戦アクティビティのうちの少なくとも1つを含むことを示す。進行アクティビティを失敗及び成功に関連付ける。競争アクティビティを、第1のビデオゲームプレーヤに対するまたは第1の仮想プレーヤに対する同期プレイに関連付ける。挑戦アクティビティを、第2のビデオゲームプレーヤに対するまたは第2の仮想プレーヤに対する非同期プレイに関連付ける。この例では、進行アクティビティに対して用いる測定値は、アクティビティの完了に成功するまでのビデオゲームプレーヤあたりの時間を含む。この例では、また、競争アクティビティまたは挑戦アクティビティに対して用いる測定値は、アクティビティの完了を試みるまでのビデオゲームプレーヤあたりの時間を含み、アクティビティの完了に成功するまでの時間は失敗時間を含む。
【0009】
一例では、動作はさらに、時間長を時間間隔の倍数に切り上げることを含む。時間間隔はアクティビティのタイプに基づく。
【0010】
一例では、アクティビティは複数のタスクを含む。複数のタスクの各1つは個々の時間長に関連付けられる。時間のそれぞれの個々の時間長を、複数のビデオゲームプレーヤの測定値に基づいて推定する。時間長の推定には、複数のタスクの個々の時間長を組み合わせることが含まれる。この例では、動作はさらに、ユーザのビデオゲームコンソールから、アクティビティの識別子と複数のタスクのうちの第1のタスクの完了を示すイベントデータとを受け取ることと、複数のタスクのうち完了していない残りのタスクの個々の時間長に基づいて、アクティビティを完了させるまでの残りの時間長を決定し、残りの時間長をユーザに提示する。
【0011】
一例では、動作はさらに、アクティビティのタイプに対して予め定義された時間範囲内に時間長が入ることを決定し、時間長に基づいて、ビデオゲーム及び別のビデオゲームに関連付けられる候補アクティビティからアクティビティを選択する。
【0012】
一例では、アクティビティはシングルプレーヤタスクを含む。測定値の各1つは、ビデオゲームプレーヤごとのアクティビティの開始及び終了に対応する。
【0013】
一例では、アクティビティはマルチプレイヤータスクを含む。この例では、動作はさらに、マルチプレイヤータスクを共同で完了させた複数のビデオゲームプレーヤのサブセットを決定し、サブセットが共同で完了させたアクティビティの開始及び終了を決定する。測定値は、開始及び終了に対応する測定値を含む。
【0014】
一例では、時間長を提示することは、ユーザデバイス上で実行されるアプリケーションに時間長を送ることを含む。この例では、動作はまた、ユーザのビデオゲームコンソールから、アクティビティの識別子とユーザによるアクティビティの完了を示す第3のデータとを受け取ることと、データストアに第3のデータを記憶する。
【0015】
一例では、動作にはさらに、ユーザのビデオゲームコンソールから、アクティビティの識別子とユーザによるアクティビティの開始を示す第3のデータとを受け取ること、開始からの継続時間が閾値量、時間長を超えたこと、ユーザによるアクティビティの終了を受け取っていないこととを決定し、ユーザにヘルプオプションを提示することが含まれる。
【0016】
一例では、動作にはさらに、ユーザのプレイ時間履歴及び複数のビデオゲームプレーヤのプレイ時間履歴に基づいて、アクティビティ完了に対するユーザの平均時間を推定し、平均時間に基づいて時間長を調整する。この例では、動作はまた、プレイ時間履歴に基づいて、複数のビデオゲームプレーヤのデシル分布を生成することを含む。各デシルはアクティビティ完了に対するプレーヤ平均時間に対応する。動作はまた、ユーザのプレイ時間履歴に基づいて、ユーザがデシル分布のデシルに属することを決定することを含む。ユーザの平均時間はデシルに対応する。
【0017】
一例では、動作はさらに、ビデオゲームプレーヤのプレイ時間履歴に基づいて、複数のビデオゲームプレーヤの群あるいはコホートを生成し、ユーザのプレイ時間履歴に基づいて、ユーザが複数のコホートのうちの1つのコホートに属することを決定し、そのコホートに属する複数のビデオゲームプレーヤのサブセットを決定する。測定値はサブセットに対して決定される。
【0018】
一例では、動作はさらに、アクティビティを完了させるためにビデオゲームにおいてユーザに利用可能なツール、ツールを用いるユーザの精通尺度、アクティビティの第2の場所に対するビデオゲーム内の仮想ゾーンにおけるユーザの第1の場所、または第1のプレイ場所と第2のプレイ場所との間の移動時間のうちの少なくとも1つに基づいて時間長を調整することを含む。
【0019】
一例では、動作はさらに、アクティビティを完了させることについてのヘルプ情報をユーザが見たか否か、見たヘルプ情報のタイプ、または見たヘルプ情報の個数のうちの少なくとも1つに基づいて時間長を調整することを含む。ヘルプ情報は、ビデオファイル、オーディオファイル、またはテキストファイルのうちの少なくとも1つを含む。
【図面の簡単な説明】
【0020】
図1】本開示の実施形態によるビデオゲームイベントを収集及び処理するためのコンピューティング環境の例を示す図である。
図2】本開示の実施形態による利用可能なゲームアクティビティに関するコンテキスト情報をユーザに提供するためのシステムアーキテクチャの例を示す図である。
図3】本開示の実施形態によるシステムアーキテクチャの別の例を示す図である。
図4】本開示の実施形態によるユニバーサルデータプラットフォームに対するデータモデルを与えるためのシステムの例を示す図である。
図5】本開示の実施形態によるアクティビティ階層の例を示す図である。
図6】本開示の実施形態によるアクティビティを完了させるための推定時間長についての情報を提示するためのユーザインターフェースの例を示す図である。
図7】本開示の実施形態によるアクティビティを完了させるための推定時間長についての情報を提示するためのユーザインターフェースの別の例を示す図である。
図8】本開示の実施形態によるアクティビティタイプの例を示す図である。
図9】本開示の実施形態によるビデオゲームイベントから生成された測定値の例を示す図である。
図10】本開示の実施形態によるビデオゲームイベントから生成されたプレーヤ分布の例を示す図である。
図11】本開示の実施形態によるビデオゲームにおけるアクティビティの時間長を推定するためのフローの例を示す図である。
図12】本開示の実施形態による推定時間長に基づいてアクティビティ提案を提示する例を示す図である。
図13】本開示の実施形態によるサブアクティビティに基づいてアクティビティの推定時間長を更新する例を示す図である。
図14】本開示の実施形態によるコンピュータシステムの実施に適したハードウェアシステムの例を示す図である。
【発明を実施するための形態】
【0021】
全般的に、ユーザビデオゲーム経験を改善するためのシステム及び方法について説明する。一例では、ユーザビデオゲーム経験を、とりわけ、複数のビデオゲーム機能、たとえばビデオゲームアクティビティを提案し、このようなアクティビティに対する完了時間を推定し、基礎をなすビデオゲームとは関係なくビデオゲームヘルプを提示するための統一された方法を提供することによって改善する。この統一された方法は、どのようにビデオゲームを開発するかまたはビデオゲーム開発に対する共通のアプローチを必要とするかを変える必要がない。その代わりに、ビデオゲームにおける種々のイベントの計測に基づく。ビデオゲームプラットフォーム(たとえば、サーバベースのビデオゲームサービス)は、ビデオゲームの実行に基づいてこのようなイベントを収集及び処理して、ビデオゲームアクティビティを提案し、完了時間を推定し、クライアントレベルにおけるビデオゲームヘルプを提示し、必要に応じて、このようなビデオゲーム機能をクライアントレベルにカスタマイズすることができる。
【0022】
たとえば、ビデオゲームは複数のアクティビティを含む。ビデオゲームのインスタンスをビデオゲームプレーヤに対して実行すると(ビデオゲームプレーヤのコンピューティングデバイス上でローカルであろうと、ビデオゲームプラットフォーム上でリモートであろうと)、ビデオゲームプラットフォームは、プレイしたアクティビティについてのイベントを受け取る。各イベントは、アクティビティ、その種類あるいはタイプ、その開始時間、その終了時間、及び/または潜在的にその成果(たとえば、成功または失敗)を特定することができる。複数のアクティビティ及び複数のビデオゲームプレーヤに対するイベントを、時間とともにデータストア(あるいはデータ記憶部)に記憶する。ビデオゲームプラットフォームは、各アクティビティに対して及び記憶したイベントから、アクティビティを完了させるための推定時間長(あるいは推定時間長さ)を生成する。ビデオゲームのアクティビティを完了していないユーザに対して、対応する時間長を、ユーザに関連付けられるユーザデバイス上に提示する。このような完了時間推定をアクティビティごとに、異なるビデオゲーム間で行うことができる。したがって、同じタイプのビデオ機能(たとえば、完了時間推定)を、(関連するイベントが収集される限り)ビデオゲームとは関係なくコンピューティングデバイスに表すことができる。
【0023】
加えて、ユーザ及び/またはユーザデバイスに関連付けられるデータに応じて、推定時間長をカスタマイズすることができる。詳細には、ビデオゲームプラットフォームは、他のビデオゲームプレーヤと比べてユーザがどのくらい速くまたは遅くアクティビティを完了させ得るかについての履歴データ、任意の利用可能なメカニック(たとえば、ツール、能力、及び/または技量)を含むユーザの現在のゲーム内特性、現在のゲームプレイデータ(たとえば、ビデオゲームにおける場所)、任意の視聴したヘルプビデオ、及び/またはコンピューティングデバイスのタイプ(たとえば、ビデオゲームコンソーラーまたはモバイルデバイス上でのプレイ、利用可能なユーザ入力デバイスなど)に応じて、調整係数を生成することができる。ビデオゲームプラットフォームは、調整係数に基づいて時間長をカスタマイズする。したがって、複数のビデオゲームプレーヤに対するデータから開始し、単一ユーザに対するデータによってそれを精緻なものにすることによって、ユーザ経験が増大される。
【0024】
さらに、アクティビティが開始されたら、アクティビティについてのイベントを受け取ることができる。ビデオゲームプラットフォームは、アクティビティを完了させるための残りの時間長を更新するために、これらのイベントをさらに処理することができる。詳細には、アクティビティは複数のサブアクティビティを含むことができる。サブアクティビティが完了したら、残りの時間長を残りのサブアクティビティに応じて上下に調整することができる。
【0025】
たとえば、対戦相手のフラッグを捕獲することに関係付けられたビデオゲームアクティビティの例を考える。アクティビティは、複数のサブアクティビティ(たとえば、フラッグを含む場所に入ること、場所における障害物をクリアすること)を含んでいてもよい。複数プレーヤからのイベントを考えると、ビデオゲームプラットフォームは、フラッグを捕獲するまでの推定時間は、エキスパートプレイヤーの場合に30分間であり、初心者プレーヤの場合に45分間であると決定する。ユーザが初心者プレーヤであると決定されたら、ビデオゲームプラットフォームは通知を生成してユーザのコンピューティングデバイスに送ってもよい。通知は45分間の推定を示す。この推定では、初心者プレーヤの、場所に入るまでの平均時間及び障害物をクリアするまでの平均時間は、いずれも20分間である。ユーザに対するアクティビティが開始されたら、サブアクティビティに入る場所に30分間かかった(平均値の20分間ではなく)ことを示すイベントを受け取ってもよい。したがって、ビデオゲームプラットフォームは第2の通知を生成して送って(または既存のものを更新して)、残りの時間長(たとえば、障害物をクリアするための)が、15分間(たとえば、45分間マイナス30分間)ではなくて、20分間であることを示すことができる(または平均のプレイ時間よりも遅いと、これを調整して上げることができる)。
【0026】
本開示の実施形態では、既存のビデオゲームプラットフォームと比べて多くの技術的な利点が得られる。詳細には、ユーザインターフェース(たとえば、GUI)が既存のユーザインターフェースと比べて改善される。なぜならば、その中で関連情報(たとえば、アクティビティについてのタイミング、アクティビティ提案など)を、異なるアプリケーション及び異なるコンピューティングデバイス間で共通の方法で提示することができるからである。たとえば、イベントをアクティビティ、ビデオゲーム、及びビデオゲームプレーヤごとに収集することによって、本開示のビデオゲームプラットフォームは、ユーザがアクティビティを完了するための時間長を正確に推定する。
正確な推定が形成できるため、複数のビデオゲーム機能が可能になる。詳細には、ビデオゲームにおけるアクティビティに対する推定時間長を、他のアクティビティ(そのビデオゲームにおける及び他のビデオゲームにおける)に共通及び異なるタイプのコンピューティングデバイスに共通の提示方法で、ユーザインターフェース上に提示することができる(たとえば、同じ情報をビデオゲームコンソール上及びモバイルデバイス上に表すことができる)。加えて、アクティビティを提案通知において提示することを、その完了時間長が、予め規定あるいは定義された閾値よりも短い場合にのみ行ってもよい。したがって、異なるアクティビティを、それらの完了時間長を考慮することによって、ビデオゲーム間で共通の方法で提案することができる。
【0027】
図1に、本開示の実施形態によるビデオゲームイベントを収集及び処理するためのコンピューティング環境の例を示す。例示するように、コンピューティング環境は、ビデオゲームコンソール110、ビデオゲームプレーヤデバイス130、ビデオゲームプラットフォーム150、ビデオゲーム開発者システム170、及びサードパーティシステム190を含む。ビデオゲームは、ビデオゲーム開発者システム170からビデオゲームプラットフォーム150を通してビデオゲームコンソール110において利用できる。
ビデオコンテンツ(たとえば、ビデオゲームアクティビティをどのようにプレイできるかを示すヘルプビデオ)も、サードパーティシステム190からビデオゲームプラットフォーム150を通してビデオゲームコンソール110において利用できる。ビデオゲームプラットフォーム150は、ビデオゲームプレーヤデバイス130及びビデオゲームコンソール110からイベントを収集し、記憶し、及び処理して、種々のビデオゲーム関連機能(たとえば、ビデオゲームアクティビティを提案し、このようなアクティビティに対する完了時間を推定し、及びビデオゲームヘルプを提示するなど)を提供する。
【0028】
一例では、ビデオゲームコンソール110は、コンピューティングデバイスであって、ユーザ112が利用でき、ビデオゲームを含む1つ以上のアプリケーションと相互に作用するように動作できるコンピューティングデバイスを表す。ビデオゲームコンソール110と通信可能に結合されているかまたは一体化されたディスプレイ120は、ビデオゲーム関連データ(たとえば、ビデオゲームコンテンツ122)をユーザ112に提示することができる。他のタイプのコンピューティングデバイスをユーザ112が利用できるようにすることができる。たとえば、スマートフォン、タブレット、ラップトップ、デスクトップコンピュータ、または他のデバイスであって、好適なメモリ及びプロセッサを伴うものである。
【0029】
ビデオゲームコンソール110は、ビデオゲームをローカルに実行して、ビデオゲームコンテンツ122をディスプレイ120上に提示することができる。それに加えてまたはその代わりに、ビデオゲームコンソール110は、ビデオゲームアプリケーションのインスタンスをビデオゲームプラットフォーム150、ビデオゲーム開発者システム170、または別のリモートコンピュータシステム上で実行することに基づいて、ビデオゲームコンテンツ122を受け取ることができる。またビデオゲームは、このようなシステムからビデオゲームコンソール110にダウンロード可能とすることもできる。
【0030】
さらに、ビデオゲームコンソール110は、直接的にまたはビデオゲームプラットフォーム150を通して、ビデオコンテンツをサードパーティシステム190からダウンロードまたはストリームして、ディスプレイ120上に提示することができる。ビデオコンテンツの例としては、ビデオゲーム開発者170によって生成されてサードパーティシステム190にアップロードされたビデオファイルが挙げられる。このビデオファイルは、ビデオゲームをどのようにプレイできるか、ビデオゲームにおけるアクティビティのセットをどのようにプレイできるか、またはアクティビティにおけるメカニックのセットをどのように用いてプレイアクティビティをプレイできるかを示す。
メカニックは全般的に、アクティビティまたはアクティビティの一部をプレイするのに利用できるツールのセット、能力のセット、または技量のセットのうちの少なくとも1つを表す。ビデオコンテンツの別の例としては、ビデオゲームプレーヤデバイスのうちの1つによって生成されて、直接的にまたはビデオゲームプラットフォーム190を通してサードパーティシステム190にアップロードされたビデオファイルが挙げられる。ビデオファイルは、ビデオゲームプレーヤデバイスを操作するビデオゲームプレーヤのゲームプレイを記録する。同様に、類似のビデオファイルを、ビデオゲームコンソール110からサードパーティシステム190にアップロードすることができる。
【0031】
一例では、ビデオゲームプレーヤデバイス130は、ビデオゲームプレーヤ(ユーザ112を含んでもよいが、含まれなくてもよい)のコンピューティングデバイスを表す。同様の機能を、ビデオゲームプレーヤデバイス及びビデオゲームコンソール110の各1つ上に設けることができる。
【0032】
一例では、ビデオゲームシステム170は、ビデオゲーム開発者が利用できるビデオゲーム開発用のコンピューティング資源のセットを含むコンピュータシステムを表す。詳細には、ビデオゲームシステム170は、ビデオゲームソフトウェア172を記憶し、このようなソフトウェア172をビデオゲームプラットフォーム150にアップロードし、及び/またはこのようなソフトウェア172をビデオゲームコンソール110にダウンロードすることができる。
【0033】
ビデオゲームのビデオゲームソフトウェア172は、ビデオゲームのビデオゲームコンテンツを提示しこれと相互に作用するように実行可能なプログラムコードである。プログラムコードは、プログラムコードの実行時にイベントを生成するための予め定義された計測手段を含むことができる。詳細には、プログラムコードはイベント定義174のセットを含む、イベント定義は、イベントの識別子とイベントに対して報告すべきデータとを定義するコードを表す。このようなイベント定義174の例は本明細書で後にさらに説明し、ビデオゲームプラットフォーム150から入手できるイベントテンプレートによりビデオゲームのプログラムコードにおいて予め定義される。このようなイベントテンプレートは、ビデオゲームプラットフォーム150のサービスプロバイダによって定義することができ、複数のビデオゲーム開発者システム170の間で広く用いることができる。
【0034】
一例では、サードパーティシステム190は、ビデオコンテンツ192をビデオゲームコンソール110に、ビデオゲームプラットフォーム150を通して直接または間接的に提供するためのコンピュータシステム(たとえば、1つ以上のコンテンツサーバー)を表す。本明細書で前述したように、ビデオコンテンツ192は、ビデオゲームをどのようにプレイできるか、ビデオゲームにおけるアクティビティのセットをどのようにプレイできるか、またはアクティビティにおけるメカニックのセットをどのように用いてプレイアクティビティをプレイできるかを示すビデオファイルを含むことができる。ビデオコンテンツ192をサードパーティシステム190に、ビデオゲーム開発者システム170、ビデオゲームコンソール110、及び/またはビデオゲームプレーヤデバイス130のうちの1つ以上から、ビデオゲームプラットフォーム150を通して直接または間接的にアップロードすることができる。
【0035】
一例では、ビデオゲームプラットフォーム150は、ビデオゲームコンソール110に種々のビデオゲーム関連機能を提供するコンピュータシステムを表す。たとえば、ビデオゲームプラットフォーム150は、ビデオゲームコンソール110、ビデオゲームプレーヤデバイス130、ビデオゲーム開発者システム170、及びサードパーティシステム190の間のハブとしてセットアップする。詳細には、ビデオゲームソフトウェア172及びビデオコンテンツ192は、ビデオゲームコンソーラー110にビデオゲームプラットフォーム150を通してダウンロードすることができる。
ビデオゲームプラットフォーム150上に記憶されたビデオゲームソフトウェアに基づいたビデオゲームのインスタンスを、ビデオゲームコンソール110に対してインスタンス化することができる。ビデオファイルを、ビデオゲームプラットフォーム150を通してビデオゲームコンソール110にストリーミングすることができる。また通信データ(たとえば、メッセージ、コマンドなど)を、ビデオゲームプラットフォーム150を通してビデオゲームコンソール110とビデオゲームプレーヤデバイス130との間で交換することができる。
【0036】
さらに、ビデオゲームプラットフォームは、ビデオゲームコンソール110からイベントデータ114を、ビデオゲームプレーヤデバイス130からイベントデータ132を受け取り、このような受信データをデータストア(あるいはデータ記憶部)152にイベントデータ154として記憶する。ビデオゲームプラットフォーム150のイベントプロセッサ156は、イベントデータ154を処理して、アクティビティ時間推定162、アクティビティ提案164、及びアクティビティヘルプ166のうちのいずれかを生成し、ビデオゲームコンソール110に送ってディスプレイ120上に提示する。
【0037】
受け取ったイベントデータ(イベントデータ114またはイベントデータ132のうちのいずれか)は、ビデオゲームのプログラムコードの実行に基づくイベントに対してデバイス(たとえば、ビデオゲームコンソール110、またはアプリケーションとしてのビデオゲームプレーヤデバイス130のうちの1つ)から報告されたデータを表す。プログラムコードは、イベントに対するイベント定義を含む。アクティビティ時間推定162は、ビデオゲームにおけるアクティビティを完了するまでの推定時間長(本明細書では完了時間と言う場合がある)を表す。
アクティビティ提案164は、ビデオゲームにおいてユーザ112が利用できるアクティビティであって、これまでにユーザ112が行ったことも完了させたこともないアクティビティを提案する情報を表す。アクティビティヘルプ166は、ビデオゲームにおけるアクティビティを完了させることまたはアクティビティの少なくとも一部においてメカニックを用いることについてのビデオファイル、テキストによる説明、及び/またはグラフィカルな説明などの情報を含む。プロセッサ156は、ロジックであって、たとえば、アクティビティに関連付けられるイベントデータ154のサブセット間の統計解析を行って、アクティビティ時間推定162、アクティビティ提案164、及びアクティビティヘルプ166を生成するロジックを実行する。加えて、プロセッサ156は、ロジックであって、アクティビティ時間推定162、アクティビティ提案164、またはアクティビティヘルプ166のうちのいずれかを、ビデオゲーム内及び/またはプラットフォーム内のユーザ110のコンテキスト及びビデオゲームコンソール110のタイプに基づいてカスタマイズするロジックを実行することができる。
【0038】
全般的に、アクティビティはビデオゲームの構造に固有のゲームプレイの単位である。異なるカテゴリのアクティビティが存在する。たとえば、進行アクティビティ、競争アクティビティ、挑戦アクティビティ、及びオープンエンドアクティビティである。アクティビティは、プログラムコードにおいて、複数の特性を伴うオブジェクトとして定義することができる。特性は、アクティビティ識別子、名前、及びカテゴリを含む。アクティビティ識別子はアクティビティの一意の識別子である。アクティビティについてのイベントがビデオゲームプラットフォーム150に報告されるとき、対応するイベントデータはアクティビティ識別子を指す。名前は、アクティビティの短いローカライズされた名前とすることができる。他の特性が可能である。
たとえば、説明(たとえば、アクティビティのより長い説明)、アクティビティの画像、デフォルト利用可能性(たとえば、ビデオゲームを開始する前にすべてのビデオゲームプレーヤがアクティビティを利用できるか否か)、ビデオゲームを完了させるためにアクティビティの完了が必要であるか否か、ビデオゲームにおいてアクティビティを繰り返しプレイすることができるか否か、及び入れ子タスク(子アクティビティ、本明細書ではサブアクティビティとも言う)などである。アクティビティについての複数のイベントが可能である。
【0039】
アクティビティについてのイベントの例としては、ビデオゲームプレーヤ(たとえば、ユーザ112)に対するアクティビティ利用可能性の変化を示すことができる。これは主に、どのアクティビティを表示するかを決定するために、またこれらのアクティビティに対するスポイラーブロックを取り除くために用いられる(スポイラを有するアクティビティはビデオゲームプレーヤに表さない場合がある)。このイベントの特性としては、たとえば現在利用できるアクティビティのリスト(たとえば、アレイ)が挙げられる。
【0040】
アクティビティについてのイベントの例としては、ビデオプレーヤが現在、アクティビティまたはタスク(たとえば、子アクティビティ)に参加していることを示すことができる。このイベントの特性としては、たとえばアクティビティのアクティビティ識別子が挙げられる。別の特性は任意選択で、アクティビティへの参加の開始に対応する時間とすることができる。
【0041】
アクティビティについてのイベントの例としては、アクティビティまたはタスク(たとえば、子アクティビティ)の終了を示すことができる。このイベントの特性としては、たとえばアクティビティのアクティビティ識別子が挙げられる。別の特性は任意選択で、アクティビティへの参加の終了に対応する時間とすることができる。さらに別の特性は任意選択で、アクティビティの成果、たとえば完了、失敗、または放棄とすることができる。
【0042】
またビデオゲームプラットフォーム150は、ビデオゲームにおけるゾーンについてのデータを収集することができる。このデータは、ビデオゲームのプログラムコードにおける事前定義に基づくイベントと同様に報告される。ゾーンは、単一の座標系を伴うビデオゲームのゲーム世界(たとえば、仮想世界)の領域を表す。ゾーンには、2次元(2D)マップ画像(ゾーン上に場所を表示するために用いる)が関連付けられ得る。
ゾーンは、プログラムコードにおいて、複数の特性を伴うオブジェクトとして定義することができる。特性はゾーン識別子及び名前を含む。ゾーン識別子はゾーンの一意の識別子である。名前は、ゾーンの短いローカライズ可能な名前とすることができる。他の特性とすることも可能であり、たとえば、スポイラーブロック使用の場合に対してオブジェクトを隠して扱うべきか否かの表示(デフォルトはフォールスに設定されている場合がある)、マップ(たとえば、ゾーン2Dマップに対する高解像度画像)、ビュー投影(たとえば、3次元(3D)ワーク座標から2Dマップ位置に変換する行列(4x4))、及び画像(たとえば、マップと異なる場合にゾーンに対する表示画像)などである。ゾーンについての複数のイベントが可能である。
【0043】
ゾーンについてのイベントの例としては、ビデオゲームプレーヤの現在のゲーム内場所の更新を示すことができる。このイベントは、定期的にまたはプレーヤのゲーム内場所が著しく変化するたびに、報告することができる。このイベントの特性はゾーン識別子を含む。他の特性が可能である。たとえば任意選択で、位置(たとえば、ゾーンにおけるビデオゲームプレーヤキャラクタ(ビデオゲームプレーヤの仮想プレーヤ)のx、y、z位置)及び向き(たとえば、ビデオゲームプレーヤキャラクタの方向を示すx、y、zベクトル)である。
【0044】
別のゾーンについてのイベントの例としては、アクティビティを開始する時のビデオゲームプレーヤのゾーン、場所、及び向きを示すことができる。このイベントによって、場所ベースのヘルプを可能にすることができる。このイベントの特性はアクティビティ識別子を含む。他の特性が可能である、たとえば任意選択で、ゾーン識別子と、ビデオゲームにおけるビデオゲームプレーヤのキャラクタの位置及び向きとである。
【0045】
ゾーンについてのイベントのさらに別の例としては、アクティビティを終了する時のビデオゲームプレーヤのゾーン、場所、及び向きを示すことができる。このイベントによっても、場所ベースのヘルプを可能にすることができる。このイベントの特性はアクティビティ識別子を含む。他の特性が可能である。たとえば任意選択で、アクティビティの成果、ゾーン識別子、及びビデオゲームにおけるビデオゲームプレーヤのキャラクタの位置及び向きである。
【0046】
またビデオゲームプラットフォーム150は、ビデオゲームにおける役者についてのデータを収集することができる。このデータは、ビデオゲームのプログラムコードにおける事前定義に基づくイベントと同様に報告される。役者は、ビデオゲームにおける動作を伴うエンティティを表す。役者はプレーヤ制御またはゲーム制御とすることができ、これはゲームプレイ中に動的に変わることができる。役者は、複数の特性を伴うオブジェクトとしてプログラムコードにおいて定義することができる。特性は役者識別子及び名前を含む。役者識別子は役者の一意の識別子である。名前は役者のローカライズ可能な名前とすることができる。他の特性が可能である。たとえば、スポイラーブロック使用の場合に対してオブジェクトを隠して扱うべきか否かの表示(デフォルトはフォールスに設定されている場合がある)、役者の画像、及び役者の短い説明などである。役者についての複数のイベントが可能である。
【0047】
役者についてのイベントの例としては、役者(複数可)のビデオゲームプレーヤの選択への変更を示すことができる。選択された役者は、ビデオゲームにおいてビデオゲームプレーヤが制御している役者を表し、ビデオゲームプレーヤのプロファイル及び他の提示スペース上で表示することができる。2つ以上の役者を一度に選択することができる。ビデオゲームは、セーブデータのロード時に役者のリストを取り替えなければならない。このイベントの特性は、ビデオゲームプレーヤが現時点で選択している役者のリスト(たとえば、アレイ)を含む。
【0048】
またビデオゲームプラットフォーム150は、ビデオゲームにおけるメカニックについてのデータを収集することができる。このデータは、ビデオゲームのプログラムコードにおける事前定義に基づくイベントと同様に報告される。メカニックは、ゲームプレイに影響を与える(たとえば、弓、矢、ステルス攻撃、火によるダメージ)ためにビデオゲームプレーヤまたはビデオゲームが用いることができるアイテム(たとえば、ツール)、能力、技量、または効果を表すことができる。
メカニックは全般的に、ゲームプレイに影響を与えないアイテム(たとえば、収集品)を除外する。メカニックは、複数の特性を伴うオブジェクトとしてプログラムコードにおいて定義することができる。特性はメカニック識別子及び名前を含む。メカニック識別子はメカニックの一意の識別子である。名前はメカニックの短いローカライズ可能な名前とすることができる。他の特性が可能である。たとえば、スポイラーブロック使用の場合に対してオブジェクトを隠して扱うべきか否かの表示(デフォルトはフォールスに設定されている場合がある)、メカニックの画像、及びメカニックの短い説明などである。メカニックについての複数のイベントが可能である。
【0049】
メカニックについてのイベントの例としては、ビデオゲームプレーヤが利用できるメカニックが変わったことを示すことができる。メカニックの利用可能性は、メカニックがゲーム世界においてビデオゲームプレーヤが使用できるように利用可能であるが、ビデオゲームプレーヤが使用前にそれを取得してインベントリに入れるためにはいくつかのステップを経る(たとえば、ストアからダウンロードして、世界から手に入れる)必要があり得ることを示している。またこのイベントを用いて、メカニックオブジェクト上のスポイラーブロックが解除されることを示し、ヘルプチップをフィルタリングして、利用できないメカニックの使用が提案されることを回避することができる。ビデオゲームは、セーブデータのロード時にメカニックのリストを取り替えなければならない。このイベントの特性は、現在利用できるメカニックのリスト(たとえば、アレイ)を含む。
【0050】
メカニックについてのイベントの別の例としては、ビデオゲームプレーヤのインベントリが変わったことを示すことができる。インベントリは、ビデオゲームにおいてそれを用いる前にさらなるステップを取る必要なく、ビデオゲームプレーヤがすぐに利用できるメカニックを指す。インベントリ情報を用いて、アクティビティに対してプレーヤが用意できていることを推定することができる。ビデオゲームは、セーブデータのロード時にインベントリのリストを取り替えなければならない。このイベントの特性は、現時点でインベントリにあるメカニックのリスト(たとえば、アレイ)を含む。
【0051】
メカニックについてのイベントのさらに別の例としては、ビデオゲームプレーヤのロードアウトが変わったことを示すことができる。ロードアウトは、ビデオプレーヤが最もすぐにアクセスできるメカニックを表し、ビデオゲームプレーヤに表示することができるインベントリのサブセットである。ビデオゲームは、セーブデータのロード時にメカニックのリストを取り替えなければならない。このイベントの特性は、今はアクティブロードアウトの一部であるメカニックのリスト(たとえば、アレイ)を含む。
【0052】
メカニックについてのイベントのさらなる例は、ビデオゲームプレーヤによってまたはビデオゲームプレーヤに対して用いられているメカニックを示すことができる。このイベントの特性は、用いたメカニックのリスト(たとえば、アレイ)(たとえば火矢、火によるダメージ)、及びメカニックをビデオゲームプレーヤが用いたかまたはビデオゲームプレーヤに対して用いたかを含む。他の特性が可能である。たとえば任意選択で、イニシエータ役者識別子(たとえば、メカニックの使用を開始した役者の識別子)、イニシエータ役者のゾーン識別子、及びイニシエータ役者の位置である。
【0053】
メカニックについてのイベントの別の例としては、メカニックがゲームプレイに影響を与えた(たとえば、矢がターゲットに当たった)ことを示すことができる。このイベントの特性は、用いたメカニックのリスト(たとえば、アレイ)(たとえば火矢、火によるダメージ)、及びメカニックをビデオゲームプレーヤが用いたかまたはビデオゲームプレーヤに対して用いたかを含む。他の特性が可能である。たとえば任意選択で、イニシエータ役者識別子、イニシエータ役者のゾーン識別子、イニシエータ役者の位置、ターゲット役者識別子(たとえば、メカニックがターゲットとした役者の識別子)、ターゲットのゾーン識別子、ターゲット役者の位置、及びイニシエータのメカニック(複数可)を軽減するメカニックの識別子である。
【0054】
またビデオゲームプラットフォーム150は、ビデオゲームにおけるゲームメディアについてのデータを収集することができる。このデータは、ビデオゲームのプログラムコードにおける事前定義に基づくイベントと同様に報告される。ゲームメディアは、ゲーム開発者によって提供されたビデオゲームに関係づけられるメディア(テキスト、オーディオ、ビデオ、画像)の一部を表す。ゲームメディアは、ゲーム内に存在する場合もあるし(たとえばカットシーン、オーディオログ、本)、そうでない場合もある(たとえば開発者解説)。
ゲームメディアは、複数の特性を伴うオブジェクトとしてプログラムコードにおいて定義することができる。特性は、ゲームメディア識別子、名前、形式、カテゴリ、ロック解除ルール、及び統一資源位置指定子(URL)を含む。ゲームメディア識別子はゲームメディアの一意の識別子である。名前は、ゲームメディアのローカライズ可能な名前とすることができる。形式は、メディア形式、たとえばゲームメディアが画像、オーディオ、ビデオ、テキスト、などであるか否かを示すことができる。
カテゴリは、ゲームメディアのタイプ、たとえばゲームメディアがカットシーン、オーディオログ、ポスター、開発者解説などであるか否かを示す。ロック解除ルールは、ゲームメディアを、すべてのビデオゲームプレーヤに対してロック解除すべきであるか、またはアクティビティまたは特定のゲームメディアイベントに基づいてロック解除すべきであるかを示す。
URLは、サーバプロビジョンされた、あるいは、サーバにより用意されたメディアファイルを参照する。このサーバは、ゲーム開発者システム170またはビデオゲームプラットフォーム150の一部とすることができる。他の特性とすることも可能であり、たとえば、スポイラーブロック使用の場合に対してオブジェクトを隠して扱うべきか否かの表示(デフォルトはフォールスに設定されている場合がある)、資格(たとえば、特定のビデオゲーム資格を所有するビデオゲームプレーヤのみがゲームメディアをロック解除できることを示す)、及びアクティビティ識別子(たとえば、ゲームメディアを特定のアクティビティと関連付けるため)などである。ゲームメディアについての複数のイベントが可能である。
【0055】
ゲームメディアについてのイベントの例としては、ゲームメディアの特定の一部がビデオゲームプレーヤに対してロック解除されたことを示すことができる。このイベントの特性はゲームメディア識別子を含む。
【0056】
ゲームメディアについてのイベントの別の例としては、ゲームメディアの特定の一部がビデオゲームにおいて開始されたことを示すことができる。ゲームメディアオブジェクトは、対応する時間においてビデオゲームプレーヤに対してロック解除されると考えるべきである。このイベントの特性はゲームメディア識別子を含む。
【0057】
ゲームメディアについてのイベントのさらに別の例としては、ゲームメディアの特定の一部がビデオゲームにおいて終了されたことを示すことができる。このイベントの特性はゲームメディア識別子を含む。
【0058】
図2に、本開示の実施形態による利用可能なゲームアクティビティに関するコンテキスト情報をユーザに提供するためのシステムアーキテクチャの例を示す。いくつかの実施形態では、典型的なシステムアーキテクチャ200は以下、ゲームクライアント205、ユニバーサルデータシステム(UDS)ソフトウェア開発キット(SDK)210、コンソールシステムソフトウェア215、ローカルルールエンジン220、UDSサーバ225、ゲームサーバ230、処理データ235、及び1つ以上の他のリモートネットワーク化サービス、たとえば、ヘルプサービス240、ゲームプラン245、ユーザ生成コンテンツ(UGC)タグ付け250、及び他のサービス(複数可)255を含む。
またヘルプサービス240は、他のデータソース(複数可)260から情報を受け取り得る。システムアーキテクチャ200のコンポーネントのうちのいくつかは、図1のビデオゲームプラットフォーム150のコンポーネントの例である。たとえば、UDSサーバ225及びゲームサーバ230はビデオゲームプラットフォーム150のコンポーネントである。
【0059】
ゲームクライアント205及びゲームサーバ230は、少なくとも1つのアプリケーションに関するコンテキスト情報を、ユニバーサルデータシステム(UDS)サーバ225に、UDS SDK210が用いるUDSデータの論理構造を記述するUDSデータモデルを介して送る。UDSデータモデルによって、プラットフォーム(たとえば、ビデオゲームプラットフォーム150)が、リモートネットワーク化サービス、たとえばヘルプサービス240、ゲームプラン245、UGCタグ付け250、及び他のサービス(複数可)255であって、ゲームデータを必要とするものを、サービスをサポートするためにゲームを別個にパッチする必要なく実現することができる。
UDSデータモデルは、ゲーム間で統一された方法で情報の一部にコンテキスト情報を割り当てる。ゲームクライアント205及びUDS SDK210からのコンテキスト情報を、UDSサーバ225に、コンソールシステムソフトウェア215を介して送る。当然のことながら、ゲームクライアント205、UDS SDK210、コンソールシステムソフトウェア215、及びローカルルールエンジン220は、少なくとも1つのアプリケーションを実行するためのコンピュータまたは他の好適なハードウェア上で実行し得る。
【0060】
UDSサーバ225は、少なくとも1つのアプリケーションからのゲームクライアント205及びゲームサーバ230からコンテキスト情報を受け取って記憶する。確実にするため、UDSサーバ225は、複数のユーザに対する複数のゲームクライアント及びゲームサーバからコンテキスト情報を受け取り得る。情報を一様に処理してもよく235、そして複数のリモートネットワーク化サービス240、245、250、及び255が受け取ってもよい。
【0061】
図3は、本開示の実施形態によるシステムアーキテクチャ300の別の例を示す。ゲームクライアント305は、コンテキスト情報をUDSサーバ310に送る。UDSサーバ310は、コンテキスト情報を、統一されたデータモデルで複数のリモートネットワーク化サービス(プロファイル統計値315、ゲームプラン320、セッション325、トーナメント330、プレゼンス335、及びヘルプシステム340を含む)に送る。
【0062】
図4に、本開示の実施形態によるユニバーサルデータプラットフォーム410に対するデータモデルを与えるためのシステム400の例を示す。ユニバーサルデータプラットフォーム410のコンポーネントのうちのいくつかは、図1のビデオゲームプラットフォーム150のコンポーネントの例である。
一実施形態例では、システム400は、複数のアプリケーション432(各アプリケーションはアプリケーションデータ構造を有する)のうちの少なくとも1つを実行するように構成された少なくとも1つのデバイス430を含むことができる。ユニバーサルデータプラットフォーム410は1つ以上のサーバ上で実行することができる。ユニバーサルデータプラットフォーム410は、複数のアプリケーションデータ構造間で一様なデータモデルを含むことができる。
データモデルは、データモデルにおいて示された少なくとも1つのオブジェクトに対応するメタデータ412と、少なくとも1つのメタデータエントリに関連付けられるトリガ条件に対応するイベント414とを含むことができる。メタデータ412及びイベント414の値は、ユーザプロファイルに関連付けることができる。ユニバーサルデータプラットフォーム410は、少なくとも1つのデバイス430からアプリケーションデータを受け取って、アプリケーションデータをデータモデル内に記憶するように構成することができる。またシステム400は、データモデルを用いてユニバーサルデータプラットフォーム410からのアプリケーションデータにアクセスするように構成された複数のリモートネットワーク化サービス420を含むことができる。
【0063】
種々の実施形態では、メタデータ412は、ユーザがアプリケーションにおいて行うことができるすべてのアクティビティのリスト、アクティビティ名、アクティビティの説明、アクティビティの状態(利用できるか、開始されたか、または完了されたか)、アクティビティは目的またはキャンペーンを完了させる必要があるか否か、アクティビティに対する完了報酬、イントロまたはアウトロカットシーン、ゲーム内場所、アクティビティが利用できるようになる前に満たすべき1つ以上の条件、及びアクティビティをサブアクティビティとして含む親アクティビティを含み得る。
メタデータ412はさらに、ユーザが実行できる能力のリスト、各アクションの効果、アクション及び効果がいつ起こるかを示す遠隔測定(対応するタイムスタンプ及び場所を含む)、ゲーム内座標系、ゲーム内分岐状況のリスト、及びいつ分岐状況に遭遇して、どのオプションをユーザが選択するかを示す遠隔測定を含み得る。。ゲーム内統計、アイテム、知識、ゲーム内ゾーン、及び各統計、アイテム、ロア、またはゾーンに関する対応する特性のリストも同様に、メタデータ412に含まれ得る。加えて、メタデータ412は、特定のアクティビティ、エンティティ(たとえばキャラクタ、アイテム、能力など)、セッティング、成果、アクション、効果、場所、または特性を、隠すとマーキングすべきか否かを示し得る。
【0064】
イベント414は、いくつかの種々のトリガ条件に応じて発生し得る。たとえば、このようなトリガ条件としては、これまで利用できなかったアクティビティが利用できるようになる、ユーザがアクティビティを開始する、ユーザがアクティビティを終了する、アクティビティに対するオープニングまたはエンディングカットシーンが始まるかまたは終了する、ユーザのゲーム内場所またはゾーンが変化する、ゲーム内統計が変化する、アイテムまたはロアが取得される、アクションが行われる、効果が生じる、ユーザがキャラクタ、アイテム、または他のゲーム内エンティティと相互に作用する、及びアクティビティ、エンティティ、セッティング、成果、アクション、効果、場所、または特性が発見されることが挙げられる。
イベント414は、イベント414がトリガされたときのアプリケーションの状態に関するさらなる情報を含んでいてもよい。たとえば、タイムスタンプ、ユーザがアクティビティを開始または終了する時の難易度設定及びキャラクタ統計、アクティビティの成功または失敗、または完了したアクティビティに関連付けられるスコアまたは継続時間である。当然のことながら、メタデータ412及びイベント414は、本開示で説明するアクティビティに関係づけられるすべてのコンテキスト情報を含んでいてもよい。
【0065】
図5に、本開示の実施形態によるアクティビティ階層の例を示す。例示するように、アクティビティ510は、階層500を形成する複数の入れ子タスク(本明細書ではサブアクティビティと言う)を含むことができる。アクティビティ510は、階層500の上のノード(たとえば、ルートノード)とすることができ、階層500の次のレベルにおける子サブアクティビティ520A~520Kのセットを含むことができる。
次に、サブアクティビティ520A~520Kの各1つは、アクティビティ510の子ノードであってもよく、可能であれば、次の階層レベルにおけるサブアクティビティのセットに対する親ノードである。たとえば、サブアクティビティ520Kは、サブアクティビティ530A~530Lのセットに対する親ノードである。ノード(それぞれサブアクティビティを表す)間のこのタイプの関連付けを、異なるレベルの階層500において繰り返すことができる。メカニックのセットを各ノードに関連付けて、このようなメカニック(複数可)が、ノードに対応するアクティビティにおいて入手または利用できることを示すことができる。
【0066】
本明細書で前述したように、アクティビティ510はアクティビティ識別子を有する。また各サブアクティビティはアクティビティを表し、したがってやはりアクティビティ識別子を有する。同様に、各メカニックはメカニック識別子を有する。アクティビティ識別子自体の間の関連付け、及びアクティビティ識別子とメカニック識別子との間の関連付けを、階層500に基づいて定義することができる。このような関連付けを、アクティビティ(またはサブアクティビティ)を定義し及び/もしくはメカニックを定義するオブジェクトに記憶することができ、ならびに/またはこのようなオブジェクトに関するイベントに記憶することができる。
たとえば、サブアクティビティ520Kのアクティビティ識別子を、アクティビティ510のアクティビティ識別子及び/またはサブアクティビティ530A~530Lのアクティビティ識別子に関連付けることができる。同様に、サブアクティビティ530Lのアクティビティ識別子を、サブアクティビティ520Lのアクティビティ識別子及び/またはメカニック540A~540Mのメカニック識別子に関連付けることができる。さらに、メカニックのメカニック識別子をアクティビティ識別子に関連付けることができる。
【0067】
図6に、本開示の実施形態によるアクティビティを完了させるための推定時間長についての情報を提示するためのユーザインターフェースの例を示す。詳細には、ビデオゲームコンソール(たとえば、図1のビデオゲームコンソール110)は、ビデオゲーム関連機能をビデオゲームのユーザ(たとえば、図1のユーザ112)に提示する。ゲームプレイを可能にすることに加えて、ゲーム関連機能は、アクティビティに対する推定時間長(たとえば、推定完了時間)を提示する。ユーザ入力を受け取って、その推定完了時間の提示に続いてアクティビティを開始することができる。
【0068】
図6に例示するように、ビデオゲームコンソールは、ユーザインターフェース600をディスプレイ(たとえば、図1のディスプレイ120)上に提示する。ユーザインターフェース600は、ビデオゲームに関する種々の情報及び機能を示すビデオゲームページを含む。例では、ビデオゲームの短い説明610が提示されている(たとえば、ゲームタイトル、開発者、ビデオゲームの版)。ビデオゲームを開始する選択可能なオプション620も提示されている。他の情報及び機能も可能である。
【0069】
加えて、アクティビティ提案630のセットが提示されている。アクティビティ提案630の各1つを、ウィンドウ、アイコン、オーバーレイ、またはユーザインターフェース600内の任意の他のグラフィカルユーザインターフェース要素において提示することができる。アクティビティ提案はビデオゲームにおけるアクティビティを特定することができる。アクティビティは、ユーザが利用することができ、これまでにユーザが試みたことも完了させたこともないものである。たとえば、アクティビティ提案は、テキストによる説明及びアクティビティの画像を含む。このようなデータは、アクティビティを定義するオブジェクトから入手できる。
【0070】
さらに、アクティビティ提案は、アクティビティに対する推定完了時間640を含む(たとえば、新しいタイヤを用いたウォーミングラップの走行についての第1の提案されたアクティビティに対しては20分間、新しいレーストラックの走行についての第2の提案されたアクティビティに対しては5分間と示す)。推定完了時間640は、アクティビティとのイベントデータ関連付けから生成することができる。イベントデータは、複数のビデオゲームデバイスから、アクティビティをプレイした複数のビデオゲームプレーヤに対して収集される。
【0071】
提案されたアクティビティがユーザ選択されると、ビデオゲームコンソールがトリガされてアクティビティを(たとえば、ビデオゲームプラットフォーム上のビデオゲームのインスタンスに基づいてローカルまたはリモートに)開始することができる。アクティビティに関係するビデオゲームコンテンツを、ユーザインターフェース600において提示することができる。
【0072】
図7に、本開示の実施形態によるアクティビティを完了させるための推定時間長についての情報を提示するためのユーザインターフェースの別の例を示す。ここで、ユーザデバイス700(ビデオゲームコンソール以外、たとえばスマートフォン)が、ユーザデバイス700のユーザインターフェース710を介してビデオゲームプラットフォーム(たとえば、図1のビデオゲームプラットフォーム150)からの機能にアクセスするアプリケーションを実行することができる。
機能には、引きメカニズムまたは押しメカニズムを介して、ユーザインターフェース710において提示するためのアクティビティ提案730を受け取ることが含まれる。アクティビティ提案730は、種々のビデオゲームにおけるアクティビティに関することができる。このようなアクティビティはそれぞれ、ユーザが利用することができ、これまでにユーザが試みたことも完了させたこともないものである。たとえば、各アクティビティ提案は、対応するビデオゲームを特定し、テキストによる説明及びアクティビティの画像を含む。このようなデータは、アクティビティを定義するオブジェクトから入手できる。
加えて、各アクティビティ提案は、アクティビティに対する推定完了時間730を含む(たとえば、スピードゲームにおいて新しいタイヤを用いたウォーミングラップの走行についての第1の提案されたアクティビティに対しては20分間、征服ゲームにおいて友人がフラッグを征服するのを助けることについての第2の提案されたアクティビティには45分間と示す)。ここでまた、提案された各アクティビティに対する推定完了時間720を、アクティビティとのイベントデータ関連付けから生成することができる。イベントデータは、複数のビデオゲームデバイスから、アクティビティをプレイした複数のビデオゲームプレーヤに対して収集される。
【0073】
提案されたアクティビティがユーザ選択されると、ユーザデバイス700がトリガされてユーザのユーザアカウントにキューイングして(たとえば、アクティビティをダウンロードする、行うべきアクティビティのリストにアクティビティを加えるなど)アクティビティをその後にユーザに対して開始できるようにすることができる。その代わりにまたはそれに加えて、ユーザ選択によって、ユーザデバイス700及び/またはユーザアカウントに関連付けられるビデオゲームコンソールがトリガされて、アクティビティを(たとえば、ビデオゲームプラットフォーム上のビデオゲームのインスタンスに基づいてローカルまたはリモートに)開始することができる。
【0074】
図8に、本開示の実施形態によるアクティビティタイプ800の例を示す。ビデオゲームにおけるアクティビティの完了時間は、アクティビティのアクティビティタイプに基づいて推定することができる。アクティビティタイプは、アクティビティを定義するオブジェクトにおける特性として設定することができる。
【0075】
例示するように、進行アクティビティ、競争アクティビティ、挑戦アクティビティ、及びオープンエンドアクティビティの複数のアクティビティタイプ800が可能である。進行アクティビティは失敗及び成功に関連付けられる(たとえば、その成果が、放棄されなかった場合に、失敗、成功のいずれかである)。進行アクティビティは、シングルプレーヤモードまたはマルチプレイヤーモードでプレイすることができる。競争アクティビティは、別のビデオゲームプレーヤまたは仮想プレーヤに対する(たとえば、ビデオゲームに対する)同期プレイ(たとえば、リアルタイムでプレイする)に関連付けられる。挑戦アクティビティは、別のビデオゲームプレーヤまたは仮想プレーヤに対する非同期プレイ(たとえば、リアルタイムでない)に関連付けられる。
オープンエンドアクティビティは、特定の成果が予め定義されているわけではない(たとえば、アクティビティは放棄または失敗もしくは成功で終了する必要はない)ゲーム世界に関連付けられる。進行アクティビティ、競争アクティビティ、及びオープンエンドアクティビティは、シングルプレーヤモードまたはマルチプレイヤーモードでプレイすることができる。比較すると、挑戦アクティビティは通常、シングルプレーヤモードでプレイされる。
【0076】
アクティビティの完了時間を推定するアプローチは、そのアクティビティタイプに応じて変わる。たとえば、シングルプレーヤモードにおいて進行アクティビティを開始する前に、進行アクティビティに対する完了時間は、成功までの時間(TTS)についての測定値に基づく。測定値は、複数のビデオゲームプレーヤに対して記録された進行アクティビティについてのイベントデータから得られる。このようなプレーヤはそれぞれ、シングルプレーヤモードでアクティビティをプレイしており、(たとえば、平均または平均値として)統計的に解析されて完了時間を生成する。シングルビデオゲームプレーヤのTTSに対する測定値は、該当する場合は、失敗成果を伴う進行アクティビティの開始及び終了間の継続時間(該当する場合は、これらの継続時間の倍数)と、成功成果を伴う進行アクティビティの開始及び終了間の継続時間とを含む。
たとえば、ビデオゲームプレーヤがアクティビティを「n」回失敗した後に成功した場合、ビデオゲームプレーヤに対するアクティビティのTTS測定値は、失敗を伴うアクティビティの「n」個の継続時間(複数可)と、成功を伴うアクティビティの継続時間とを含み得る。アクティビティの推定完了時間は、失敗を伴うアクティビティの平均継続時間と成功までの平均の失敗数とを乗じ、それに、成功を伴うアクティビティの平均継続時間を足すことによって、計算し得る。進行アクティビティが開始されたら、経過時間とアクティビティに関連付けられる残りのサブアクティビティとを考慮して、その推定時間長を比例配分する。
【0077】
マルチプレイヤーモードにおいて進行アクティビティが利用できるとき、同様のアプローチを採用することができる。進行アクティビティを開始する前にTTS測定値を用いて、その開始に比例配分を適用する。しかし、ここでは、イベントデータを個々のプレーヤレベルではなくグループレベルで解析する。詳細には、進行アクティビティを共同でプレイしたビデオゲームプレーヤのグループに対して受け取ったイベントデータを特定する。これらのビデオゲームプレーヤの失敗及び成功に対する継続時間を総計する。複数のビデオゲームプレーヤグループ全体で総計した継続時間を平均して(またはなんらかの他の統計関数を適用して)推定完了時間を生成する。言い換えれば、マルチプレイヤー進行アクティビティに対する推定完了時間は、アクティビティを完了させるためにビデオゲームプレーヤのグループに対して推定される時間長を表す。
【0078】
一例では、シングルプレーヤモードにおいて競争アクティビティを開始する前に、競争アクティビティに対する完了時間は、試みた時間(TTA)についての測定値に基づく。測定値は、複数のビデオゲームプレーヤに対して記録された競争アクティビティについてのイベントデータから得られる。このようなプレーヤはそれぞれ、シングルプレーヤモードでアクティビティをプレイしており、(たとえば、平均または平均値として)統計的に解析されて完了時間を生成する。
シングルビデオゲームプレーヤのTTAに対する測定値は、該当する場合は、競争アクティビティの成果(もしあれば)とは関係なく試みられた進行アクティビティの開始及び終了間の継続時間を含む。シングルビデオゲームプレーヤが競争アクティビティを繰り返した場合は、該当する場合は、これらの継続時間の倍数である。競争アクティビティが開始されたら、その推定時間長は比例配分しない。その代わりに、推定完了時間を、当初の推定と経過時間との間の差に基づいて更新することができる。
【0079】
マルチプレイビデオゲームにおいて競争アクティビティがプレイされるとき、TTAに対する測定値はビデオゲームプレーヤグループの継続時間に対応する。たとえば、ビデオゲームプレーヤグループが第1及び第2のビデオゲームプレーヤを含む場合、及びこのグループのTTAを第1のビデオゲームプレーヤのTTAと第2のビデオゲームプレーヤのTTAとの総計とすることができる場合、または該当する場合は競争アクティビティ自体に応じて、第1のビデオゲームプレーヤのTTAと第2のビデオゲームプレーヤのTTAとのうちの最長のものまでである。
【0080】
一例では、シングルプレーヤモードで挑戦アクティビティを開始する前に、挑戦アクティビティに対する完了時間はTTAに対する測定値に基づく。測定値は、複数のビデオゲームプレーヤに対して記録された挑戦アクティビティについてのイベントデータから得られる。このようなプレーヤはそれぞれ、シングルプレーヤモードでアクティビティをプレイしており、(たとえば、平均または平均値として)統計的に解析されて完了時間を生成する。挑戦アクティビティが開始されたら、その推定時間長は比例配分しない。その代わりに、推定完了時間を、当初の推定と経過時間との間の差に基づいて更新することができる。
【0081】
一例では、オープンエンドアクティビティに対する推定完了時間を生成しなくてもよい。したがって、このようなアクティビティが提案された場合、推定完了時間がアクティビティ提案に含まれない場合がある。
【0082】
一例では、アクティビティに対する推定完了時間は、アクティビティを提案するか否かを判定するときの要因となる可能性がある。詳細には、完了時間は上限及び下限によって制限することができる。例示するように、上限は2時間で下限は5分間である(しかし、他の時間範囲も可能であり、これらの範囲はアクティビティタイプに基づいて変わる可能性がある)。アクティビティの推定完了時間がこれらの2つの限界の間にある場合に、アクティビティを提案することができる。2つの限界の外側にある(たとえば、2時間よりも長いかまたは5分間よりも短い)場合には、アクティビティは通常、提案されない。
【0083】
加えて、推定完了時間を生成したときに、この完了時間を、ユーザインターフェースにおいて提示するために切り上げてもよい。時間間隔の倍数に切り上げる。時間間隔はアクティビティのタイプに基づくことができる。例示したように、時間間隔は5分間に設定されている(しかし、異なる値を用いることができ、アクティビティタイプに基づいて変わる可能性がある)。たとえば、正確な推定が13分間と29秒間であると示すのではなくて、完了時間を15分間と提示する(5分間の時間間隔の3倍に切り上げる)。
【0084】
図5に関連して説明したように、アクティビティはサブアクティビティのセットを含むことができる。しかし、サブアクティビティは、同じタイプである必要はない場合がある。したがって、アクティビティが複数のアクティビティタイプを有することが可能である。アクティビティの推定完了時間はサブアクティビティの推定完了時間の総計とすることができる。逆に、サブアクティビティの推定完了時間は、本明細書で前述したように、そのアクティビティタイプに応じて行うことができる。
【0085】
説明では、サブアクティビティの親が進行アクティビティまたはオープンエンドアクティビティであるときには、その開始前にサブアクティビティに対してTTS測定値を用いることができ、それが開始されたら比例配分を用いることができる。上限及び下限を2時間及び1分間と定義して、切り上げ用の時間間隔を1分間とすることができる。加えて、タスクがサブアクティビティの子であり、他の子依存性がない場合、タスクに対してTTS測定値を用いることができる。
【0086】
図9に、本開示の実施形態によるビデオゲームイベントから生成された測定値の例を示す。詳細には、アクティビティについてのイベントデータを、複数のビデオゲームプレーヤに対する複数のビデオゲームプレーヤデバイスからのデータを介して収集する。たとえば、イベントをビデオゲームプレーヤから受け取り、イベントには、その特性において、アクティビティのアクティビティ識別子が含まれる。イベントデータを処理して、各ビデオゲームプレーヤに対して(アクティビティがシングルプレーヤモードに対応する場合)またはビデオゲームプレーヤの各グループに対して(アクティビティがマルチプレイヤーモードに対応する場合)、アクティビティの開始及び終了、及び該当する場合はその成果を決定する。開始及び終了間の継続時間は、該当する場合は、TTSまたはTTAを計算するために用いる測定値である(たとえば、図8に関連して説明したようにアクティビティタイプに基づいて)。
【0087】
測定値から統計的分布を生成することができる。統計的分布は、継続時間910(たとえば、種々のビデオゲームプレーヤに対して決定されたTTS及び/またはTTA)を、ビデオゲームプレーヤのカウント920に関連付ける。継続時間910は分布の変数として設定することができる。たとえば、特定の継続時間においてビデオゲームプレーヤがアクティビティを完了する度に、その特定の継続時間に関連付けられるカウントを1つだけ増加させる。当然のことながら、他の統計的分布を継続時間910及びカウント920から生成することができ、たとえば確率分布関数、累積分布関数などである。
【0088】
アクティビティに対する完了時間を分布から推定することができる。たとえば、完了時間は、継続時間910の平均または平均値として、予め定義されたパーセンタイル(たとえば、80番目のパーセンタイル)に対応する特定の継続時間として、またはパーセンタイル範囲(たとえば、70番目及び80番目のパーセンタイルの間)に属する平均または平均値継続時間として推定される。
【0089】
図10に、本開示の実施形態によるビデオゲームイベントから生成されたプレーヤ分布の例を示す。プレーヤ分布を用いて、特定のユーザに対する推定完了時間をカスタマイズするために用いることができる調整係数を生成することができる。
【0090】
一例では、イベントデータを、種々のビデオゲームプレーヤに対するビデオゲームプレーヤデバイスから受け取っている。ビデオゲームプレーヤに対するイベントデータは、ビデオゲームにおけるアクティビティを示すこと(たとえば、アクティビティのアクティビティ識別子を含むことによって)、及びアクティビティの継続時間を示すこと(たとえば、アクティビティの開始及び終了の表示を含むことによって、継続時間はアクティビティタイプに応じてTTS及び/またはTTAとして得ることができる)ができる。
このような継続時間を各プレーヤに対して統計的に解析して、ビデオゲームプレーヤあたりの平均完了時間を決定する。この平均完了時間1010は、全般的なアクティビティもしくは特定のビデオゲームにおけるアクティビティに対するもの、及び/または全般的なアクティビティタイプまたは特定のビデオゲームにおけるアクティビティタイプに対するものである可能性がある。種々のビデオゲームプレーヤに対する平均完了時間1010の統計的分布を生成することができる。平均完了時間1010は分布の変数である。
【0091】
一例では、分布は平均完了時間1010をデシル1020に関連付けている。詳細には、ビデオゲームプレーヤのコーパスを10個の等しいサブセクションに分割することができる。各サブセクションは平均完了時間1010の特定の範囲に対応する。たとえば、最大の平均完了時間は60分間である。したがって、10個のサブセクションは6分間の増加に対応する。第1のデシルは、平均完了時間がゼロ~6分間のビデオゲームプレーヤに対応することができ、次のデシルは、平均完了時間が6分間~12分間のビデオゲームプレーヤに対応することができるなど、第10のデシルが、平均完了時間が54分間~60分間のビデオゲームプレーヤに対応するまで、などである。
【0092】
各デシルを調整係数に対する値に関連付けることができる。例では、デシルに対応する平均完了時間が長いほど、そのデシルに関連付けられる値が大きい。この例では、調整係数を、特定のアクティビティに対する推定完了時間の乗数として用いる。たとえば、値はデシルの間で0.2だけ増加する。したがって、第1のデシルは0.2値の値に関連付けられ、第2のデシルは0.4の値に関連付けられ、最後のデシルは2の値に関連付けられる。
【0093】
特定のアクティビティに対する推定完了時間を特定のユーザに対して調整するために、ユーザに関連付けられるイベントデータからユーザの平均完了時間を決定する。平均完了時間に対応する特定のデシルを決定して、デシルに関連付けられる値を検索する。調整係数をその値に設定して、推定完了時間に調整係数を乗じる。
【0094】
たとえば、特定のアクティビティに対する推定完了時間は10分間である。ユーザのプレイ時間履歴に基づいて、ユーザを、0.4値に対応付けられる第2のデシルに属すると決定する(たとえば、ユーザはビデオゲームプレーヤの2番目に速いグループに属する)。したがって、推定完了時間をユーザに対して10分間から4分間に調整する。
【0095】
調整係数を設定する他の方法も可能である。第1の例では、ビデオゲームプレーヤのコホートを生成する。たとえば、コホートをプレーヤのプレイ時間履歴から生成する。コホートは、遅い、中間、及び速いプレーヤを示す。別の説明では、コホートを、ビデオゲームプレーヤ及び/またはプレーヤのビデオゲームプレーヤデバイスの特性に基づいて生成する(たとえば、エキスパートプレイヤーに対するコホート、及び初心者プレーヤに対するコホート、メカニックごとのコホート、または入力デバイスのタイプごとのコホートなど)。各コホートを調整係数に対する値に関連付ける。ユーザについてのデータ(たとえば、ユーザのプレイ時間履歴、特性、及び/またはユーザデバイス)を処理して、ユーザがコホートのうちのコホートに属すると決定することができる。そのコホートに対する値を決定して、調整係数として設定する。
【0096】
第2の例では、調整係数を、アクティビティを完了させるためにビデオゲームにおいてユーザが利用できるメカニック、ツールを用いるユーザの精通尺度、ビデオゲーム内の仮想ゾーンにおけるユーザの、仮想ゾーンにおけるアクティビティの場所に対する場所、2つの場所の間の移動時間、またはアクティビティについて調べたヘルプチップ(たとえば、ビデオ、テキストなど)の関数として設定する。
たとえば、推定完了時間を特定のアクティビティについてのイベントデータから生成する。そのイベントデータは、少なくとも部分的に特定のメカニックを用いることによってアクティビティの完了に成功したビデオゲームプレーヤの特定の割合を示すことができる。調整係数をメカニックの関数として設定する。したがって、メカニックをユーザが利用できる場合、調整係数は推定完了時間を減少させることができる、または、逆に、メカニックをユーザが利用できない場合、調整係数は推定完了時間を増加させることができる。
別の説明では、ユーザのプレイ時間履歴を処理して、メカニックの使用頻度及び使用の成功率を決定することができる(たとえば、使用及び影響を示すイベントデータに基づいて)。精通尺度を、頻度及び成功率の関数として設定することができる(たとえば、頻度が大きくて成功率が大きいほど、精通尺度が大きい)。また、調整係数を精通尺度の関数として設定することができる(たとえば、精通尺度が大きいほど、調整係数が小さい(この係数を乗数として用いるとき))。
さらなる説明では、ユーザのビデオゲームキャラクタ(たとえば、ユーザの仮想プレーヤ)が場所間を移動することを考慮するために、場所が互いに離れているほど、調整係数は大きく設定される(それを乗数として用いるとき)。移動時間は推定することができ(たとえば、距離及び可能な速度から)、調整係数を移動時間に等しくなるように設定することができる(この場合、調整係数を、乗数として用いるのではなくて推定完了時間に足す)。さらに別の説明では、ユーザがアクティビティを完了させる方法に固有のヘルプチップを調べた場合には、調整係数を減少させることができる(それを乗数として用いるときに)。調べたヘルプチップの数が大きいほど、減少は大きくなり得る。
【0097】
別の例では、やはりコホートを生成するが、調整係数は用いない。その代わりに、ユーザをコホートに属すると決定する。また、特定のアクティビティとそのコホートに属するビデオゲームプレーヤとに対応するイベントデータを決定する。特定のアクティビティに対する推定完了時間を、この特定のイベントデータに基づいてユーザに対して決定する。
【0098】
図11~13に、ユーザに対するビデオゲームにおけるアクティビティの時間長を推定するためのフロー例を例示する。フローの動作は、ハードウェア回路として実施することができ、及び/またはコンピュータシステム(たとえば、ビデオゲームコンソール及び/またはビデオゲームプラットフォーム)の非一時的コンピュータ可読媒体上にコンピュータ可読命令として記憶することができる。実施されると、命令は、コンピュータシステムのプロセッサ(複数可)によって実行可能な回路またはコードを含むモジュールを表す。このような命令の実行によって、本明細書で説明する特定の動作を行うコンピュータシステムが構成される。プロセッサと組み合わせた各回路またはコードは、対応する動作(複数可)を行うための手段を表す。動作を特定の順番で例示しているが、当然のことながら、特定の順番が要求されるわけではなく、特定の動作を省略することもできる。
【0099】
図11に、本開示の実施形態によるビデオゲームにおけるアクティビティの時間長(たとえば、推定完了時間)を推定するためのフローの例を示す。例では、フローは動作1102を含む。ここでは、コンピュータシステムが、アクティビティの識別子とビデオゲームプレーヤによるアクティビティの完了を示す完了データとを受け取る。
本明細書で前述したように、アクティビティ識別子はビデオゲームのプログラムコードにおいて予め定義される。アクティビティ識別子及び完了データは、たとえば、ビデオゲームコンソール、ビデオゲームプラットフォーム、及び/またはリモートシステム上でのプログラムコードの実行に基づいて受け取ることができる。たとえば、アクティビティ識別子及び完了データをイベントとして受け取る。このようなイベントはそれぞれ、アクティビティ識別子を特性として、アクティビティの開始または終了のいずれかを特性として、及び、任意選択で、アクティビティの成果を含む。
【0100】
一例では、フローは動作1104を含む。ここでは、コンピュータシステムが、アクティビティ識別子及び完了データをデータストアに記憶する。たとえば、受け取ったイベントをイベントデータとしてデータストアに記憶する。データストアは、複数の他のビデオゲームプレーヤに対する同様のイベントを記憶し得る。このようなイベントはそれぞれ、アクティビティまたは別のアクティビティ(ビデオゲームまたは別のビデオゲームにあることができる)のいずれかを示す。
【0101】
一例では、フローは動作1106を含む。ここでは、コンピュータシステムが、データストアからのアクティビティ及び複数のビデオゲームプレーヤに対する完了データを決定する。たとえば、アクティビティ識別子を用いて、記憶したイベントデータを検索し、アクティビティ識別子を参照するイベントを取り出す。イベントデータは、各ビデオゲームプレーヤに対して、アクティビティの開始及び終了及び、任意選択で、アクティビティの成果を示すことができる。開始、終了、及び成果は完了データを表す。
【0102】
一例では、フローは動作1108を含む。ここでは、コンピュータシステムが、決定した完了データに基づいて複数のビデオゲームデータによるアクティビティの完了についての測定値を決定する。測定値は、アクティビティのタイプに基づいてTTSまたはTTAのうちの少なくとも一方を含む。たとえば、アクティビティが進行アクティビティである場合には、TTS測定値を、イベントデータが示す開始、終了、及び成果から得る。アクティビティが競争アクティビティまたは挑戦アクティビティである場合には、測定したTTAを、イベントデータが示す開始及び終了から得る。アクティビティがマルチプレイヤーモードアクティビティでプレイされる場合には、測定値は、ビデオゲームプレーヤのグループを形成するビデオゲームプレーヤの総継続時間を含むこともできる。
【0103】
一例では、フローは動作1110を含む。ここでは、コンピュータシステムが、アクティビティを完了させていないユーザに対して、測定値に基づいてアクティビティを完了させるための時間長を推定する。詳細には、統計解析を測定値に適用することができる、たとえば、平均、平均値、またはパーセンタイル関数を用いて、図9に関連して説明した推定時間長を得る。加えて、この推定を、図10に関連して説明したように、ユーザに対して具体的に変更することができる。
【0104】
一例では、フローは動作1112を含む。コンピュータシステムは、ユーザに関連付けられるユーザデバイス上に時間長を提示する。たとえば、ユーザデバイスは、図6~7に関連して例示したように、ビデオゲームコンソールまたはモバイルデバイスとすることができる。時間長を、アクティビティを提案する一部として提示することができる。加えて、時間長を時間間隔の乗数に切り上げることができる。この時間間隔はアクティビティのタイプに依存し得る。
【0105】
図12に、本開示の実施形態による推定時間長に基づいてアクティビティ提案を提示する例を示す。例では、フローは動作1202を含む。ここでは、コンピュータシステムが、複数のビデオゲームプレーヤに対する完了データに基づいて時間長を推定する。
【0106】
一例では、フローは動作1204を含む。ここでは、コンピュータシステムが調整係数を決定する。たとえば、調整係数を、ユーザがアクティビティを開始する前に決定する。図10に関連して説明したように調整係数を決定するために種々の技術が利用できる。第1の技術では、平均完了時間のデシル分布を、複数のビデオゲームプレーヤのプレイ時間履歴に基づいて生成する。またユーザの平均完了時間を、ユーザのプレイ時間履歴及びユーザがどのデシルに属するかの判定に基づいて決定する。調整係数をデシルに基づいて設定し、推定時間長を増加または減少させるために使用する。
第2の技術では、コホートを、複数のビデオゲームプレーヤのプレイ時間履歴、ビデオゲームプレーヤのキャラクタ、及び/またはビデオゲームプレーヤデバイスに基づいて生成する。ユーザについてのデータを処理して、どのコホートにユーザが属するかを決定する。また推定完了時間をコホートに基づいて上下に調整するか、または、アクティビティに及びこのコホートに属するビデオゲームプレーヤのみに対応するイベントデータを統計的に解析して、ユーザに対して具体的に推定完了時間を生成する。
さらに別の技術では、ビデオゲームにおけるユーザの場所、アクティビティの場所、アクティビティを完了させるために他のビデオゲームプレーヤが用いるメカニック(複数可)、ユーザが利用できるメカニック(複数可)、アクティビティの完了について調べたヘルプチップの数、及び/または他のパラメータを考慮して、推定時間長を上下に調整することができる。
【0107】
一例では、フローは動作1206を含む。ここでは、コンピュータシステムが、調整係数に基づいてユーザに対する推定時間長を調整する。たとえば、調整係数を乗数として設定し、それに調整係数を乗じることによって推定時間を調整する。別の説明では、調整係数を推定時間長に足すかまたはそこから引く。たとえば、調整係数を、ビデオゲームにおける場所間の推定した移動時間に等しくなるように設定し、その推定した移動時間を推定時間長に足す。
【0108】
一例では、フローは動作1208を含む。ここでは、コンピュータシステムが、アクティビティをユーザに提案できると決定する。たとえば、コンピュータシステムは、推定時間長(ユーザに合わせて調整された)を、提案する候補アクティビティからアクティビティを選択するときの要因として考える。詳細には、推定時間長が、予め定義された時間範囲(たとえば、予め定義された上限と下限の間)の範囲に入る場合、アクティビティを提案することができる。
【0109】
一例では、フローは動作1210を含む。ここでは、コンピュータシステムが、完了に対する時間長を含むアクティビティ提案を提示する。
【0110】
図13に、本開示の実施形態によるサブアクティビティに基づいてアクティビティの推定時間長を更新する例を示す。例では、フローは動作1302を含む。ここでは、コンピュータシステムが、アクティビティ識別子に関連付けられるサブアクティビティを決定する。たとえば、アクティビティを、図5に関連して説明した階層と同様に、特定の階層に従い得るサブアクティビティのセットによって形成することができる。サブアクティビティを、これらのサブアクティビティのアクティビティ識別子の、アクティビティのアクティビティ識別子への関連付けに基づいて特定することができる。
【0111】
一例では、フローは動作1304を含む。ここでは、コンピュータシステムが、各サブアクティビティに対して、サブアクティビティを完了させるための時間長を推定することができる。各時間長を、図11に関連して説明した統計解析と同様に、統計解析に基づいて決定することができる。
【0112】
一例では、フローは動作1306を含む。ここでは、コンピュータシステムが、サブアクティビティの時間長に基づいてアクティビティの時間長を推定する。たとえば、時間長を、アクティビティを開始する前に推定し、時間長の和とすることができる。
【0113】
一例では、フローは動作1308を含む。ここでは、コンピュータシステムが、ユーザによるサブアクティビティのうちのサブアクティビティの完了を決定する。たとえば、ビデオゲームコンソールからイベントデータを受け取る。イベントデータは、サブアクティビティのアクティビティ識別子を含み、このサブアクティビティの終了を示す。
【0114】
一例では、フローは動作1310を含む。コンピュータシステムが、アクティビティを完了させるための残りの時間長を決定する。たとえば、まだ完了していない残りのサブアクティビティを特定する。それらの個々の推定した時間長を足して、残りの時間長を生成する。さらに、アクティビティを完了させるために用いた実時間長とその推定時間長との比較(たとえば、比)を用いて、調整係数を設定することができる。個々の推定した時間長の和を、調整係数に基づいて上下に調整することができる。
【0115】
一例では、フローは動作1312を含む。ここでは、コンピュータシステムが残りの時間長を提示する。たとえば、アクティビティを開始して、アクティビティに関係するビデオゲームコンテンツをユーザインターフェース上に提示する。残りの時間を同時にユーザインターフェース上に表示することができる。
【0116】
図14に、本開示の実施形態によるコンピュータシステム1400の実施に適したハードウェアシステムの例を示す。コンピュータシステム1400は、たとえば、ビデオゲームコンソール、ビデオゲームプラットフォーム、または他のタイプのコンピュータシステムを表す。コンピュータシステム1400は、ソフトウェアアプリケーション及び任意選択でオペレーティングシステムを実行するための中央処理ユニット(CPU)1402を含む。CPU1402は、1つ以上の同種または異種の処理コアで構成され得る。メモリ1404は、CPU1402が用いるためのアプリケーション及びデータを記憶する。
記憶装置1406は、アプリケーション及びデータに対する不揮発性記憶装置及び他のコンピュータ可読媒体をもたらし、固定ディスクドライブ、リムーバブルディスクドライブ、フラッシュメモリ装置、及びCD-ROM、DVD-ROM、ブルーレイ(登録商標)、HD-DVD、または他の光学記憶装置、ならびに信号伝送及び記憶媒体を含み得る。ユーザ入力デバイス1408は、1人以上のユーザからのユーザ入力をコンピュータシステム1400に伝達する。その例としては、キーボード、マウス、ジョイスティック、タッチパッド、タッチスクリーン、スチールまたはビデオカメラ、及び/またはマイクロフォンが挙げられる。
ネットワークインターフェース1410は、コンピュータシステム1400が電子通信ネットワークを介して他のコンピュータシステムと通信することを可能にし、ローカルエリアネットワーク及びワイドエリアネットワーク(たとえばインターネット)上での有線または無線通信を含み得る。
オーディオプロセッサ1412は、CPU1402、メモリ1404、及び/または記憶装置1406が与える命令及び/またはデータからアナログまたはデジタルオーディオ出力を生成するように適応されている。コンピュータシステム1400のコンポーネント(CPU1402、メモリ1404、データ記憶装置1406、ユーザ入力デバイス1408、ネットワークインターフェース1410、及びオーディオプロセッサ1412を含む)は、1つ以上のデータバス1460を介して接続されている。
【0117】
グラフィックスサブシステム1430がさらに、データバス1460及びコンピュータシステム1400のコンポーネントと接続されている。グラフィックスサブシステム1430は、グラフィックス処理ユニット(GPU)1432及びグラフィックスメモリ1434を含む。グラフィックスメモリ1434は、出力画像の各画素に対する画素データを記憶するために用いるディスプレイメモリ(たとえば、フレームバッファ)含む。
グラフィックスメモリ1434を、GPU1432と同じデバイスにおいて一体化すること、別個のデバイスとしてGPU1432と接続すること、及び/またはメモリ1404内で実施することができる。画素データを、CPU1402から直接グラフィックスメモリ1434に送ることができる。あるいは、CPU1402は、GPU1432に、所望の出力画像を定義するデータ及び/または命令を送る。これらから、GPU1432が1つ以上の出力画像の画素データを生成する。
所望の出力画像を定義するデータ及び/または命令を、メモリ1404及び/またはグラフィックスメモリ1434に記憶することができる。実施形態では、GPU1432は、シーンに対する幾何学的形状、照明、シェーディング、模様付け、動作、及び/またはカメラパラメータを定義する命令及びデータから、出力画像に対する画素データを生成するために3Dレンダリング能力を含む。GPU1432はさらに、シェーダープログラムを実行することができる1つ以上のプログラム可能な実行ユニットを含むことができる。
【0118】
グラフィックスサブシステム1430は、ディスプレイデバイス1450上に表示すべきグラフィックスメモリ1434からの画像に対する画素データを定期的に出力する。ディスプレイデバイス1450は、コンピュータシステム1400からの信号に応じて視覚情報を表示することができる任意のデバイスとすることができ、CRT、LCD、プラズマ、及びOLEDディスプレイを含む。コンピュータシステム1400は、ディスプレイデバイス1450に、アナログまたはデジタル信号を送ることができる。
【0119】
種々の実施形態により、CPU1402は、1つ以上の処理コアを有する1つ以上の汎用マイクロプロセッサである。さらなる実施形態を、高並列及びコンピュータ集約的アプリケーション(たとえば、メディア及び双方向エンターテインメントアプリケーション)に対して具体的に適応されたマイクロプロセッサアーキテクチャを伴う1つ以上のCPU1402を用いて実施することができる。
【0120】
システムのコンポーネントを、以下、インターネット、IPネットワーク、イントラネット、ワイドエリアネットワーク(「WAN」)、ローカルエリアネットワーク(「LAN」)、仮想プライベートネットワーク(「VPN」)、公衆交換電話網(「PSTN」)、または任意の他のタイプのネットワークであって、種々の実施形態において、本明細書で説明するデバイスの間のデータ通信をサポートするもの、のうちの任意の組み合わせであり得るネットワークを介して接続してもよい。ネットワークは、有線及び無線接続(光リンクを含む)の両方を含んでいてもよい。他の多くの例が可能であり、本開示を考慮すれば当業者に明らかである。本明細書の説明において、ネットワークは特に留意してもよいししなくてもよい。
【0121】
前述の明細書において、本発明をその特定の実施形態に言及して説明しているが、当業者であれば分かるように、本発明はそれに限定されない。前述した発明の種々の特徴及び態様を別個にまたは一緒に用いてもよい。さらに、本発明を、明細書のより広い趣旨及び範囲から逸脱することなく、明細書で説明したものを超えて任意の数の環境及びアプリケーションにおいて用いることができる。したがって、明細書及び図面は、限定的ではなく例示的と考えるべきである。
【0122】
前述した方法、システム、及びデバイスは単に例であることが意図されていることに注意されたい。種々の実施形態において、種々のプロシージャまたはコンポーネントを、必要に応じて、省略し、置換し、または加えてもよいことを強調しなければならない。たとえば、当然のことながら、他の実施形態では、方法を、説明したものと異なる順番で行ってもよく、また種々のステップを加え、省略し、または組み合わせてもよい。また、ある実施形態に対して説明した特徴を、他の種々の実施形態において組み合わせてもよい。実施形態の異なる態様及び要素を同様の方法で組み合わせてもよい。また、技術は発展することを強調しておかなければならない。したがって、要素の多くが例であり、本発明の範囲を限定すると解釈してはならない。
【0123】
実施形態の十分な理解を得るために、具体的な詳細を説明において示している。しかし、当業者であれば分かるように、これらの具体的な詳細を伴わずに実施形態を実施してもよい。たとえば、実施形態が不明瞭になることを避けるために、良く知られた回路、プロセス、アルゴリズム、構造、及び技術については不要な詳細を伴わずに示している。
【0124】
また、実施形態を、フロー図またはブロック図として示したプロセスとして説明され得ることに注意されたい。それぞれは動作を逐次プロセスとして説明する場合があるが、動作の多くは並列または同時に行うことができる。加えて、動作の順番を並べ替えてもよい。プロセスは、図に含まれていないさらなるステップを有し得る。
【0125】
また、本明細書で開示したように、用語「メモリ」または「メモリユニット」は、データを記憶するための1つ以上のデバイスを表し得、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気RAM、コアメモリ、磁気ディスク記憶媒体、光学的記憶媒体、フラッシュメモリ装置、または他のコンピュータ可読媒体であって、情報を記憶するものを含む。用語「コンピュータ可読媒体」としては、限定することなく、携帯または固定記憶装置、光学記憶装置、無線チャネル、SIMカード、他のスマートカード、及び他の種々のメディアであって、命令またはデータを記憶し、収容し、または運ぶことができるものが挙げられる。
【0126】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実施してもよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードにおいて実施するとき、必要なタスクを行うためのプログラムコードまたはコードセグメントを、記憶媒体などのコンピュータ可読媒体に記憶してもよい。プロセッサは必要なタスクを行ってもよい。
【0127】
特に明記しない限り、本明細書で述べたすべての測定値、値、格付け、位置、大きさ、サイズ、及び他の仕様は、それに続く請求項も含んで、概算であり、正確ではない。それらは、それらが関係する機能及びそれらが属する該技術分野において従来通りのものと整合する妥当な範囲を有するように意図されている。「約」は、±0.01%、±0.1%、±1%、±2%、±3%、±4%、±5%、±8%、±10%、±15%、±20%、±25%の許容範囲内を、または当該技術分野で別途知られているように含む。「実質的に」は、66%、155%、80%、90%、95%、99%、99.9%超えを指し、または、用語が実質的に現れる文脈に応じて、他の場合には当該技術分野で知られている値を指す。
【0128】
いくつかの実施形態について説明したが、当業者であれば分かるように、本発明の趣旨から逸脱することなく、種々の変更、他の構成、及び均等物を用いてもよい。たとえば、前述の要素は単に、より大きいシステムのコンポーネントであってもよく、他のルールが、本発明の適用よりも優先されるか、そうでなければ本発明を変更してもよい。また、多くのステップを、前述の要素を考慮する前、考慮する間、考慮した後に始めてもよい。したがって、前述の説明を本発明の範囲を限定するものと解釈してはならない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14