(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-27
(45)【発行日】2024-01-11
(54)【発明の名称】異種アプリケーションのためのインタラクティブメニューのキャッシュ及び提示方法
(51)【国際特許分類】
G06F 3/14 20060101AFI20231228BHJP
H04N 21/482 20110101ALI20231228BHJP
G06F 3/0481 20220101ALI20231228BHJP
【FI】
G06F3/14 350
H04N21/482
G06F3/0481
(21)【出願番号】P 2022549214
(86)(22)【出願日】2021-02-24
(86)【国際出願番号】 US2021019408
(87)【国際公開番号】W WO2021178176
(87)【国際公開日】2021-09-10
【審査請求日】2022-08-16
(32)【優先日】2020-03-03
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100099324
【氏名又は名称】鈴木 正剛
(72)【発明者】
【氏名】兵頭 克也
(72)【発明者】
【氏名】河村 大輔
(72)【発明者】
【氏名】青木 剛一
(72)【発明者】
【氏名】ジョセフ ビー. リンチ
(72)【発明者】
【氏名】ケン ヨシヒコ ヒラカワ
(72)【発明者】
【氏名】ダニエル モラレス
(72)【発明者】
【氏名】ロバート エルドン ブラウン
(72)【発明者】
【氏名】山本 徹
(72)【発明者】
【氏名】小林 智
【審査官】▲高▼瀬 健太郎
(56)【参考文献】
【文献】米国特許出願公開第2017/0329500(US,A1)
【文献】国際公開第2015/066658(WO,A1)
【文献】特開2019-197527(JP,A)
【文献】国際公開第2015/005146(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/14
H04N 21/482
G06F 3/0481
(57)【特許請求の範囲】
【請求項1】
異種アプリケーションのためのインタラクティブメニューをキャッシュして提示するための方法であって、前記方法はコンピュータシステムによって実行され、
前記コンピュータシステムのメニューアプリケーションによってデータテンプレートを決定し、前記データテンプレートは、(i)前記コンピュータシステムの第一ターゲットアプリケーション用に定義され、(ii)キャッシュされる前記第一ターゲットアプリケーションのコンテンツのタイプを識別し、(iii)各タイプを1つ以上の提示状態に関連付けるもので、かつ、前記第一ターゲットアプリケーションは、システムアプリケーションまたはユーザアプリケーションであって前記メニューアプリケーションとは異なるものであり、
前記メニューアプリケーションによって、かつ、前記データテンプレートに基づいて、前記第一ターゲットアプリケーションのデータを前記メニューアプリケーションのキャッシュに格納し、前記データは第一コンテンツまたは前記第一コンテンツの第一統一資源識別子(URI)を含み、さらに、前記データは第二コンテンツまたは前記第二コンテンツの第二URIを含み、前記第一コンテンツは前記データテンプレート内で識別されて前記データテンプレート内で第一提示状態及び
第三提示状態に関連付けられる第一タイプのものであり、前記第二コンテンツは、前記データテンプレート内で識別されて前記データテンプレート内で前記
第三提示状態に関連付けられる第二タイプのものであり、前記キャッシュは、異なるターゲットアプリケーション用に定義される異なるテンプレートに基づいて前記コンピュータシステムの前記異なるターゲットアプリケーションによって異なるデータを格納するものであり、
入力デバイスから、前記インタラクティブメニューを要求するユーザ入力を受信し、
前記メニューアプリケーションによって、ディスプレイ上に前記インタラクティブメニューを提示し、前記インタラクティブメニューは前記第一提示状態で提示されて前記異なるターゲットアプリケーションに対応するウィンドウを含み、前記ウィンドウは前記第一ターゲットアプリケーションに対応する第一ウィンドウを含み、かつ、前記第一ウィンドウには、前記メニューアプリケーションの前記キャッシュからの前記データに基づいて、また、前記データテンプレートに基づいて、前記第一コンテンツが含まれるものであり、
前記入力デバイスから、前記
第三提示状態を要求する前記第一ウィンドウとのユーザインタラクションを受信し、
前記メニューアプリケーションによって、前記第一ウィンドウとの前記ユーザインタラクションに基づいて、前記キャッシュから前記第一ターゲットアプリケーションの前記データのコピーを生成し、
前記メニューアプリケーションによって、前記コンピュータシステムのウィンドウアプリケーションに、前記第一ターゲットアプリケーションの前記データの前記コピーを送信し、前記ウィンドウアプリケーションは前記メニューアプリケーション及び前記第一ターゲットアプリケーションとは異なるものであり、
前記ウィンドウアプリケーションによって、前記ディスプレイ上に前記第一ターゲットアプリケーションに対応する第二ウィンドウを提示し、前記第二ウィンドウは前記
第三提示状態で提示され、かつ、前記第二ウィンドウには、前記ウィンドウアプリケーションによって、前記データの前記コピーに基づいて、また、前記データテンプレートに基づいて、前記第一コンテンツ及び前記第二コンテンツが含まれるものである、方法。
【請求項2】
さらに、前記メニューアプリケーションのコンピューティングサービスによって、前記ユーザ入力を受信する前に、前記第一ターゲットアプリケーションの前記データ、及び前記異なるデータテンプレートに基づいて前記コンピュータシステムの他のターゲットアプリケーションの追加データをフェッチし、前記他のターゲットアプリケーションは前記ウィンドウの残りのものに対応するものであり、
前記コンピューティングサービスによって、前記データ及び前記追加データを前記メニューアプリケーションの前記キャッシュに格納する、請求項1に記載の方法。
【請求項3】
前記インタラクティブメニューの提示では、
前記メニューアプリケーションの前記キャッシュからの前記データに基づいて、また、前記第一ターゲットアプリケーション用に定義された前記データテンプレートに基づいて、前記第一ウィンドウに前記第一コンテンツが含まれるようにし、
前記追加データに基づいて前記ウィンドウの第三ウィンドウについての第三コンテンツを決定し、前記第三ウィンドウは前記第一ターゲットアプリケーションとは異なる第二ターゲットアプリケーションに対応するものであり、
前記第二ターゲットアプリケーション用に定義された第二データテンプレートに基づいて、前記第三ウィンドウに前記第三コンテンツが含まれるようにする、請求項2に記載の方法。
【請求項4】
前記第一ターゲットアプリケーションの前記データは、イベントに基づいてフェッチされ、
前記イベントは、前記第一ターゲットアプリケーションの動作状態への変更、前記第一ターゲットアプリケーションによる新しいデータの生成、または前記第一ターゲットアプリケーションへの新しいデータの送信のうちの少なくとも1つを含む、請求項2に記載の方法。
【請求項5】
さらに、前記コンピュータシステムへのユーザログイン時で、かつ前記
ユーザ入力を受信する前
に、前記メニューアプリケーション及び前記ウィンドウアプリケーションをそれぞれ前記コンピュータシステムの対応するバックグラウンドプロセス中に起動し、
前記ユーザ入力を受信すると、前記ウィンドウアプリケーションが前記対応するバックグラウンドプロセス中に実行している間、対応するフォアグラウンドプロセス中に前記メニューアプリケーションを実行する、請求項1に記載の方法。
【請求項6】
さらに、前記ユーザインタラクションを受信すると、前記ウィンドウアプリケーションを対応するフォアグラウンドプロセス中に実行する、請求項5に記載の方法。
【請求項7】
前記ウィンドウアプリケーションの起動では、前記ウィンドウアプリケーションの論理コンテナをインスタンス化し、前記論理コンテナは、前記異なるターゲットアプリケーションに共通のパラメータを有し、
前記ウィンドウアプリケーションの実行では、前記メニューアプリケーションによって、前記ウィンドウアプリケーションに、前記第一ターゲットアプリケーションに固有のパラメータを送信する、請求項6に記載の方法。
【請求項8】
さらに、
前記ユーザインタラクションを受信した場合で、かつ、前記対応するフォアグラウンドプロセス中に前記ウィンドウアプリケーションを実行する前に、前記メニューアプリケーションによって、前記
第三提示状態で前記第一ウィンドウを提示し、
前記ウィンドウアプリケーションが前記対応するフォアグラウンドプロセス中に実行されている際に、前記ウィンドウアプリケーションによって、前記第二ウィンドウを前記第一ウィンドウ上のオーバーレイ内に提示し、
前記メニューアプリケーションによって、前記第一ウィンドウの前記提示を終了する、請求項6に記載の方法。
【請求項9】
前記データの前記コピーのみが前記ウィンドウアプリケーションに送信され、前記キャッシュからの別のターゲットアプリケーションの追加データのコピーは前記ウィンドウアプリケーションに送信されない、請求項1に記載の方法。
【請求項10】
さらに、前記メニューアプリケーションによって、前記ウィンドウアプリケーションが前記第二ウィンドウを提示している間、前記キャッシュから前記データへの変更を決定し、
前記メニューアプリケーションによって、前記ウィンドウアプリケーションに、前記キャッシュからの前記変更のコピーを送信し、
前記ウィンドウアプリケーションによって、前記変更の前記コピーに基づいて前記第二ウィンドウ内の前記第一コンテンツを更新する、請求項1に記載の方法。
【請求項11】
前記メニューアプリケーションによって、コマンドオプションを提示し、前記コマンドオプションは前記第一ウィンドウの隣に提示され、前記第一ターゲットアプリケーションのメディアコンテンツの提示を制御するコマンドを生成するために選択可能である、請求項1に記載の方法。
【請求項12】
さらに、前記メニューアプリケーションによって、前記コマンドオプションのユーザ選択を受信し、
前記メニューアプリケーションによって、前記ウィンドウアプリケーションに、前記ユーザ選択に基づいて、前記第一ターゲットアプリケーションに固有のパラメータを送信し、
前記ウィンドウアプリケーションが前記パラメータに基づいて実行されると、前記メニューアプリケーションによって、前記ウィンドウアプリケーションに前記コマンドを送信する、請求項11に記載の方法。
【請求項13】
さらに、前記ウィンドウアプリケーションによって、コマンドオプションを提示し、前記コマンドオプションは前記第二ウィンドウの隣に提示され、前記第一ターゲットアプリケーションのメディアコンテンツの提示を制御するコマンドを生成するために選択可能である、請求項1に記載の方法。
【請求項14】
さらに、前記ウィンドウアプリケーションによって、前記コマンドオプションのユーザ選択を受信し、
前記ウィンドウアプリケーションによって、前記第一ターゲットアプリケーションの前記メディアコンテンツの提示を制御する、請求項13に記載の方法。
【請求項15】
1つ以上のプロセッサと、
コンピュータ可読命令を格納する1つ以上のメモリと、
を含むコンピュータシステムであって、
前記コンピュータ可読命令は、前記1つ以上のプロセッサにより実行されると、前記コンピュータシステムを、
前記コンピュータシステムのメニューアプリケーションによってデータテンプレートを決定し、前記データテンプレートは、(i)前記コンピュータシステムの第一ターゲットアプリケーション用に定義され、(ii)キャッシュされる前記第一ターゲットアプリケーションのコンテンツのタイプを識別し、(iii)各タイプを1つ以上の提示状態に関連付けるもので、かつ、前記第一ターゲットアプリケーションは、システムアプリケーションまたはユーザアプリケーションであって前記メニューアプリケーションとは異なるものであり、
前記メニューアプリケーションによって、かつ、前記データテンプレートに基づいて、前記第一ターゲットアプリケーションのデータを前記メニューアプリケーションのキャッシュに格納し、前記データは第一コンテンツまたは前記第一コンテンツの第一統一資源識別子(URI)を含み、さらに前記データは第二コンテンツまたは前記第二コンテンツの第二URIを含み、前記第一コンテンツは前記データテンプレート内で識別され、前記データテンプレート内で第一提示状態及び
第三提示状態に関連付けられる第一タイプのものであり、前記第二コンテンツは、前記データテンプレート内で識別されて前記データテンプレート内で前記
第三提示状態に関連付けられる第二タイプのものであり、前記キャッシュは、異なるターゲットアプリケーション用に定義される異なるテンプレートに基づいて、前記コンピュータシステムの前記異なるターゲットアプリケーションによって異なるデータを格納するものであり、
入力デバイスから、
インタラクティブメニューを要求するユーザ入力を受信し、
前記メニューアプリケーションによって、ディスプレイ上に前記インタラクティブメニューを提示し、前記インタラクティブメニューは前記第一提示状態で提示されて前記異なるターゲットアプリケーションに対応するウィンドウを含み、前記ウィンドウは前記第一ターゲットアプリケーションに対応する第一ウィンドウを含み、かつ、前記第一ウィンドウには、前記メニューアプリケーションの前記キャッシュからの前記データに基づいて、また、前記データテンプレートに基づいて、前記第一コンテンツが含まれるものであり、
前記入力デバイスから、前記
第三提示状態を要求する前記第一ウィンドウとのユーザインタラクションを受信し、
前記メニューアプリケーションによって、前記第一ウィンドウとの前記ユーザインタラクションに基づいて、前記キャッシュから前記第一ターゲットアプリケーションの前記データのコピーを生成し、
前記メニューアプリケーションによって、前記コンピュータシステムのウィンドウアプリケーションに、前記第一ターゲットアプリケーションの前記データの前記コピーを送信し、前記ウィンドウアプリケーションは前記メニューアプリケーション及び前記第一ターゲットアプリケーションとは異なるものであり、
前記ウィンドウアプリケーションによって、前記ディスプレイ上に前記第一ターゲットアプリケーションに対応する第二ウィンドウを提示し、前記第二ウィンドウは前記
第三提示状態で提示され、かつ、前記第二ウィンドウには、前記ウィンドウアプリケーションによって、前記データの前記コピーに基づいて、また、前記データテンプレートに基づいて、前記第一コンテンツ及び前記第二コンテンツが含まれるものであるように構成する、コンピュータシステム。
【請求項16】
コンピュータ可読命令を格納する1つ以上の
コンピュータ可読媒体であって、前記コンピュータ可読命令は、コンピュータシステム上で実行されると、前記コンピュータシステムを、
前記コンピュータシステムのメニューアプリケーションによってデータテンプレートを決定し、前記データテンプレートは、(i)前記コンピュータシステムの第一ターゲットアプリケーション用に定義され、(ii)キャッシュされる前記第一ターゲットアプリケーションのコンテンツのタイプを識別し、(iii)各タイプを1つ以上の提示状態に関連付けるもので、かつ、前記第一ターゲットアプリケーションは、システムアプリケーションまたはユーザアプリケーションであって前記メニューアプリケーションとは異なるものであり、
前記メニューアプリケーションによって、かつ、前記データテンプレートに基づいて、前記第一ターゲットアプリケーションのデータを前記メニューアプリケーションのキャッシュに格納し、前記データは第一コンテンツまたは前記第一コンテンツの第一統一資源識別子(URI)を含み、さらに前記データは第二コンテンツまたは前記第二コンテンツの第二URIを含み、前記第一コンテンツは前記データテンプレート内で識別され、前記データテンプレート内で第一提示状態及び
第三提示状態に関連付けられる第一タイプのものであり、前記第二コンテンツは前記データテンプレート内で識別され、前記データテンプレート内で前記
第三提示状態に関連付けられる第二タイプのものであり、前記キャッシュは、異なるターゲットアプリケーション用に定義される異なるテンプレートに基づいて、前記コンピュータシステムの前記異なるターゲットアプリケーションによって異なるデータを格納するものであり、
入力デバイスから、
インタラクティブメニューを要求するユーザ入力を受信し、
前記メニューアプリケーションによって、ディスプレイ上に前記インタラクティブメニューを提示し、前記インタラクティブメニューは前記第一提示状態で提示されて前記異なるターゲットアプリケーションに対応するウィンドウを含み、前記ウィンドウは前記第一ターゲットアプリケーションに対応する第一ウィンドウを含み、かつ、前記第一ウィンドウには、前記メニューアプリケーションの前記キャッシュからの前記データに基づいて、また、前記データテンプレートに基づいて、前記第一コンテンツが含まれるものであり、
前記入力デバイスから、前記
第三提示状態を要求する前記第一ウィンドウとのユーザインタラクションを受信し、
前記メニューアプリケーションによって、前記第一ウィンドウとの前記ユーザインタラクションに基づいて、前記キャッシュから前記第一ターゲットアプリケーションの前記データのコピーを生成し、
前記メニューアプリケーションによって、前記コンピュータシステムのウィンドウアプリケーションに、前記第一ターゲットアプリケーションの前記データの前記コピーを送信し、前記ウィンドウアプリケーションは前記メニューアプリケーション及び前記第一ターゲットアプリケーションとは異なるものであり、
前記ウィンドウアプリケーションによって、前記ディスプレイ上に前記第一ターゲットアプリケーションに対応する第二ウィンドウを提示し、前記第二ウィンドウは前記
第三提示状態で提示され、かつ、前記第二ウィンドウには、前記ウィンドウアプリケーションによって、前記データの前記コピーに基づいて、また、前記データテンプレートに基づいて、前記第一コンテンツ及び前記第二コンテンツが含まれるものであることを含む操作を前記コンピュータシステムに実行させる、1つ以上の
コンピュータ可読媒体。
【請求項17】
前記操作は、さらに、
前記第一ウィンドウとの前記ユーザインタラクションを受信
する前に、前記メニューアプリケーションによって、前記インタラクティブメニューとのユーザインタラクションを受信し、
前記インタラクティブメニューとの前記ユーザインタラクションに基づいた前記メニューアプリケーションによって、前記第一ウィンドウを
第二提示状態で提示する、請求項16に記載の1つ以上の
コンピュータ可読媒体。
【請求項18】
前記第一提示状態は、非フォーカス瞥見提示状態であり、
前記第一コンテンツは、前記第一ターゲットアプリケーションのタイトル、前記第一ターゲットアプリケーションのアイコン、または前記第一ターゲットアプリケーションのメディアコンテンツのうちの少なくとも1つを含む、請求項17に記載の1つ以上の
コンピュータ可読媒体。
【請求項19】
前記
第二提示状態はフォーカス提示状態であり、
前記第一ウィンドウのサイズは前記第一提示状態と比較して前記
第二提示状態では増大し、
前記第一ウィンドウは、前記
第二提示状態中に、前記タイトル、前記アイコン、または前記メディアコンテンツのうちの少なくとも1つ、及び前記メディアコンテンツまたは前記第一ウィンドウ上で選択可能なアクションが含まれる、請求項18に記載の1つ以上の
コンピュータ可読媒体。
【請求項20】
前記
第三提示状態は展開提示状態であり、
前記第二ウィンドウのサイズは、前記フォーカス提示状態での前記第一ウィンドウの前記サイズより大きく、
前記第二ウィンドウは、前記タイトル、前記アイコン、または前記メディアコンテンツのうちの少なくとも1つ、前記選択可能なアクション、及び前記第一ターゲットアプリケーションまたは前記選択可能なアクションの記述が含まれる、請求項19に記載の1つ以上の
コンピュータ可読媒体。
【請求項21】
前記第一提示状態、前記第二提示状態、及び前記第三提示状態のそれぞれは、
一つ以上のパターンに従って異なる要素
の組み合わせが配置されるように構成され、
前記データテンプレートは、前記第一提示状態、前記第二提示状態、及び前記第三提示状態の前記
一つ以上のパターンを定義する、請求項20に記載の1つ以上の
コンピュータ可読媒体。
【請求項22】
前記第一提示状態には、前記第二提示状態より少ない要素が含まれ、
前記第二提示状態には、前記第三提示状態より少ない要素が含まれる、請求項21に記載の1つ以上の
コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【0001】
グラフィカルユーザインタフェース(GUI)は、コンピュータシステムとインタラクトするためにユーザが利用できる主なタイプのインタフェースである。GUIは、アプリケーションを起動するために選択可能なアイコンを含む。通常、第一アプリケーションの起動時に、第一アプリケーションは第一ウィンドウ内に提示される。第二アプリケーションの起動時に、第二ウィンドウが使用され、ユーザコントロールは第一ウィンドウから第二ウィンドウに移行する。さらに、第一ウィンドウ内に提示される動的コンテンツ(例えば、インタラクティブメディアコンテンツ)は一時停止され得る。ユーザが第一アプリケーションとインタラクトしたい場合、コントロールを第二ウィンドウから移行させて第一ウィンドウに戻すために追加のユーザ入力が必要である。
【0002】
説明するために、ビデオゲームアプリケーション及び音楽ストリーミングアプリケーションをホストするビデオゲームシステムのGUIの一例を考えてみる。GUIは、ビデオゲームアイコン及び音楽ストリーミングアイコンを含むホームページを提示する。このホームページから、ビデオゲームプレイヤは、ビデオゲームアイコンを選択して、ビデオゲームアプリケーションを起動する。次に、ビデオゲームコンテンツはGUI内に提示される。音楽をストリーミングするには、ビデオゲームプレイヤがビデオゲームアプリケーションの実行を一時停止し、ホームページに戻り、音楽ストリーミングアイコンを選択する必要があり得る。この選択により、音楽ストリーミングアプリケーションが起動され、ビデオゲームシステムのスピーカを介して音楽が再生され得る。ビデオゲームを再開するには、ビデオゲームプレイヤは、音楽ストリーミングアプリケーションのウィンドウを最小化し、ホームページに戻り、ビデオゲームアプリケーションのウィンドウを展開し、ビデオゲームコンテンツの一時停止を解除する必要があり得る。
【0003】
したがって、GUIは有効なユーザインタフェースであり得るが、アプリケーション間の切り替えはシームレスであり得ず、情報の提示はアクティブなウィンドウに限定され得る。より良い情報共有及び制御切り替えを可能にする改善されたGUIが必要である。
【発明の概要】
【0004】
本開示の実施形態は、グラフィカルユーザインタフェース(GUI)におけるより良い情報共有及び制御切り替えのための技術に関する。一例において、異種アプリケーションのためのインタラクティブメニューをキャッシュして提示するための方法であって、前記方法はコンピュータシステムによって実行される。特に、コンピュータシステムのメニューアプリケーションによってデータテンプレートを決定し、前記データテンプレートは、(i)前記コンピュータシステムの第一ターゲットアプリケーション用に定義され、(ii)キャッシュされる前記第一ターゲットアプリケーションのコンテンツのタイプを識別し、(iii)各タイプを1つ以上の提示状態に関連付ける。特に、前記第一ターゲットアプリケーションは、システムアプリケーションまたはユーザアプリケーションであって前記メニューアプリケーションとは異なるものである。前記メニューアプリケーションによって、かつ、前記データテンプレートに基づいて、前記第一ターゲットアプリケーションのデータを前記メニューアプリケーションのキャッシュに格納する。前記データは第一コンテンツまたは前記第一コンテンツの第一統一資源識別子(URI)を含む。さらに、前記データは第二コンテンツまたは前記第二コンテンツの第二URIを含む。前記第一コンテンツは前記データテンプレート内で識別されて前記データテンプレート内で第一提示状態及び第二提示状態に関連付けられる第一タイプのものである。前記第二コンテンツは、前記データテンプレート内で識別されて前記データテンプレート内で前記第二提示状態に関連付けられる第二タイプのものである。前記キャッシュは、異なるターゲットアプリケーション用に定義される異なるテンプレートに基づいて前記コンピュータシステムの前記異なるターゲットアプリケーションによって異なるデータを格納するものである。前記コンピュータシステムは、入力デバイスから、前記インタラクティブメニューを要求するユーザ入力を受信する。前記メニューアプリケーションは、ディスプレイ上に前記インタラクティブメニューを提示する。前記インタラクティブメニューは前記第一提示状態で提示されて前記異なるターゲットアプリケーションに対応するウィンドウを含む。前記ウィンドウは前記第一ターゲットアプリケーションに対応する第一ウィンドウを含み、かつ、前記第一ウィンドウには、前記メニューアプリケーションの前記キャッシュからの前記データに基づいて、また、前記データテンプレートに基づいて、前記第一コンテンツが含まれる。コンピュータシステムは、前記入力デバイスから、前記第二提示状態を要求する前記第一ウィンドウとのユーザインタラクションを受信する。前記メニューアプリケーションは、前記第一ウィンドウとの前記ユーザインタラクションに基づいて、前記キャッシュから前記第一ターゲットアプリケーションの前記データのコピーを生成する。前記メニューアプリケーションは、前記コンピュータシステムのウィンドウアプリケーションに、前記第一ターゲットアプリケーションの前記データの前記コピーを送信する。前記ウィンドウアプリケーションは前記メニューアプリケーション及び前記第一ターゲットアプリケーションとは異なるものである。前記ウィンドウアプリケーションは、前記ディスプレイ上に前記第一ターゲットアプリケーションに対応する第二ウィンドウを提示する。前記第二ウィンドウは前記第二提示状態で提示され、かつ、前記第二ウィンドウには、前記ウィンドウアプリケーションは、前記データの前記コピーに基づいて、また、前記データテンプレートに基づいて、前記第一コンテンツ及び前記第二コンテンツが含まれるものである。
【図面の簡単な説明】
【0005】
【
図1】本開示の一実施形態による、選択可能なアクションを有するメニューの一例を示す。
【
図2】本開示の一実施形態による、メニューを提示するコンピュータシステムを示す。
【
図3】本開示の実施形態による、異なる状態中のウィンドウの一例を示す。
【
図4】本開示の一実施形態による、メニュー内のコンテンツの提示のためのコンピュータシステムの一例を示す。
【
図5】本開示の一実施形態による、メニュー内のコンテンツの提示のための
コンピュータシステムの別の例を示す。
【
図6】本開示の一実施形態による、メニュー内のコンテンツの提示のための
コンピュータシステムの別の例を示す。
【
図7】本開示の一実施形態による、フォアグラウンドプロセス及びバックグラウンドプロセスを有するコンピュータシステムの一例を示す。
【
図8】本開示の一実施形態による、フォアグラウンドプロセス及びバックグラウンドプロセスを有し、ディスプレイ上にウィンドウを提示する
コンピュータシステムの別の例を示す。
【
図9】本開示の一実施形態による、ディスプレイ上の更新されたウィンドウ内のコンテンツの提示のための
コンピュータシステムの別の例を示す。
【
図10】本開示の実施形態による、インタラクティブメニュー内にコンテンツを提示するための例示的なフローを示す。
【
図11】本開示の実施形態による、アプリケーションモジュールを起動し、メニューアプリケーションを終了する一例を示す。
【
図12】本開示の実施形態による、アプリケーションモジュールを起動し、メニューアプリケーションを終了するための例示的なフローを示す。
【
図13】本開示の実施形態による、コンピュータシステムを実装するのに適したハードウェアシステムの一例を示す。
【発明を実施するための形態】
【0006】
一般に、グラフィカルユーザインタフェース(GUI)における、より良い情報共有及び制御切り替えのためのシステム及び方法が説明される。一例では、コンピュータシステムは、ディスプレイ上にGUIを提示する。第一アプリケーションの実行時に、第一アプリケーションの第一コンテンツがGUI内に提示される。メニューを要求するユーザ入力時に、メニューは、メニューアプリケーションの実行に基づいて、第一コンテンツの少なくとも一部の上のレイヤ内に提示される。
メニューは、複数のウィンドウを提示する動的領域(インタラクティブメニューとも称される)と、アイコンを提示する静的領域とを含む。各ウィンドウは、異なるアプリケーションに対応する。各アイコンはプリセットされることができ、コンピュータシステムのシステム機能に、またはアプリケーションのウィンドウに対応することができる。動的メニュー領域は、第一提示状態(例えば、瞥見状態、あるいは、一瞥するようにちらっと見る状態:glanced state)中のウィンドウを示し、各ウィンドウは、この提示状態中にコンテンツを提示する。
動的メニュー領域とのユーザインタラクション時に、ウィンドウの提示は、第二提示状態(例えば、フォーカス状態:focused state)に変更することができ、第二状態中のウィンドウ及びそのコンテンツはリサイズされ、コンテンツ上で実行可能なアクションは選択されることができる。第二状態中のウィンドウのユーザ選択時に、ウィンドウの提示は、第三提示状態(例えば、展開状態:expanded state)に変更し、ウィンドウ及びそのコンテンツは再びリサイズされ、ウィンドウ上で実行可能なアクションはさらに選択されることができる。ウィンドウアクションまたはコンテンツアクションのユーザ選択時に、選択されたアクションは実行され、ユーザコントロールは自動的に第一アプリケーションに戻される。
【0007】
さらなる例では、GUIを介して上記のUI機能を実装することで、コンピュータシステムは、インタラクティブメニュー(動的メニュー領域)内の提示状態のうちの1つの状態でウィンドウを生成する、及び/または提示するための1つ以上のアプリケーションを実行する。例えば、コンピュータシステムは、複数のウィンドウ内での提示のためのコンテンツを含むデータをプリフェッチする、及び/または受信するコンテンツ監視サービスを含むメニューアプリケーションを実行する。
このメニューアプリケーションは、コンピュータシステム上で実行している複数のアプリケーションに関連するデータテンプレートを使用して、ウィンドウごとにコンテンツを決定する。さらに、メニューアプリケーションは、複数のウィンドウを生成するためにUIデータを提供し、各ウィンドウは、異なるアプリケーションに対応する。インタラクティブメニュー内の各ウィンドウは、新しいデータが利用可能になると、メニューアプリケーションによって更新される。
また、メニューアプリケーションは、データのコピーをウィンドウアプリケーションに送信して、第三提示状態でウィンドウを生成するためのUIデータを提供し、これらのウィンドウも、新しいデータが利用可能になると、更新される。コンテンツ監視サービスは、テンプレートを使用してデータをプリフェッチし、メニューアプリのキャッシュに格納する。ユーザがメニューを要求すると、メニューアプリは、第一状態または第二状態中のウィンドウを含むメニューを提示し、メニュー内のウィンドウにキャッシュからのデータをポピュレートあるいは含まれるようにする。特定のウィンドウのユーザ選択時に、メニューアプリはデータのコピーをウィンドウアプリに提供し、ウィンドウアプリは、このデータが与えられると、第三状態でウィンドウを提示する。
【0008】
説明するために、ビデオゲームシステムの一例を考えてみる。ビデオゲームシステムは、メニューアプリケーション、ビデオゲームアプリケーション、音楽ストリーミングアプリケーション、ビデオストリーミングアプリケーション、ソーシャルメディアアプリケーション、チャットアプリケーション(例えば、「パーティチャット」アプリケーション)、及び他の複数のアプリケーションをホストすることができる。ビデオゲームプレイヤはビデオゲームシステムにログインすることができ、ディスプレイ上のそこにホームユーザインタフェースが提示される。このインタフェースから、ビデオゲームプレイヤはビデオゲームアプリケーションを起動することができ、ビデオゲームコンテンツはディスプレイ上に提示されることができる。ビデオゲームアプリケーションがアクティブであり、ビデオゲームコンテンツがディスプレイを占有している間、コンテンツ監視サービスは、ビデオゲームアプリケーションを含む、これらのアプリケーションに関連するアプリケーションデータをプリフェッチしてキャッシュすることができる。
ビデオゲームコントローラ上でのユーザのボタン押下時に、メニューは、メニューアプリケーションの実行に基づいて、ディスプレイの下部にあるレイヤ内に提示されることができる。メニューには、メニュー内の各アプリケーションに関連するウィンドウのUI要素のデータ及び配置を定義するデータテンプレートをアプリケーションごとに使用して、キャッシュに格納されているアプリケーションデータがポピュレートあるいは含まれるようにする。メニューはゲームウィンドウを含み、このゲームウィンドウは、ビデオゲームアプリケーションに対応し、ゲームプレイのコンテキストに基づいてコンテンツを提示する(例えば、ビデオゲームプレイヤがカーレースゲームをプレイしており、現在のカーレースを終了しようとしているときに、カーレーストーナメントへの招待を提示する)。
また、メニューは音楽ウィンドウを含み、この音楽ウィンドウは、音楽ストリーミングアプリケーションに対応し、ビデオゲームプレイヤの音楽ライブラリから音楽アルバムを提示する。このレイヤは、ビデオゲームアプリケーションの実行、及びビデオゲームコンテンツの提示が続行している間に、フォアグラウンド内にメニューを提示することができる(例えば、ビデオゲームコンテンツは、現在のカーレースでの進行状況を示しているバックグラウンド内に連続して更新されることができる)。
メニューの動的領域内のウィンドウは、瞥見状態で示され、アプリケーションに関する十分な情報をビデオゲームプレイヤに提供する(例えば、カーレース招待に気がつく、音楽アルバムのカバーを見る)。ビデオゲームコントローラ上のキーのユーザ押下時に、提示されたウィンドウを通してスクロールが実行され、一度にウィンドウのうちの1つのみがフォーカス状態で示され、残りのウィンドウは瞥見状態で示される。例えば、ユーザフォーカス(例えば、ユーザスクロール)が音楽ウィンドウ上にあると、そのウィンドウが展開され、音楽ファイルの部分的なリストが示され、再生キーが提示される。再生キーが選択される場合、音楽ストリームが開始され、音楽がバックグラウンドで再生され、ユーザコントロールが自動的にビデオゲームコンテンツに戻ることで、ユーザがゲームプレイを続行することができる(例えば、現在のカーレース中の車を操縦することができる)。ユーザが再生キーではなく音楽ウィンドウを選択する場合、音楽ウィンドウがさらに展開されることで、音楽ファイルの完全なリストが示される。
この方法では、音楽ウィンドウを選択すると、キャッシュからの関連データのコピーを、第三提示状態(例えば、展開状態)中の音楽ウィンドウに含めて使用するように促す。一般に、それらのような技法は、アプリケーションデータをプリフェッチしてキャッシュすることにより、GUIの応答性を向上させ、更新されたメニューデータはメニューの要求に応じて即時に利用できる。さらに、メニュー提示中、特に提示状態間に知覚されるレイテンシは、制限されたデータを提示する第一提示状態と、詳細データを提示する第三提示状態との間に第二提示状態を提供することによって低減する。第二提示状態(例えば、フォーカス状態)は、システムリソースを1つのアプリケーションメニューのみに集中させ、第三提示状態中にウィンドウを迅速にスクロールできないようにすることで、メニューとのよりシームレスで流動的なインタラクションをもたらす。
【0009】
本開示の実施形態は、既存のGUI及びそれらの基礎となるコンピュータシステムに勝る、いくつかの利点を提供する。例えば、動的メニュー領域内に提示するウィンドウを選択することにより、関連するアプリケーション情報をユーザに見せることができる。これらのウィンドウを、ユーザフォーカスに基づいて異なる提示状態(例えば、瞥見状態、フォーカス状態、及び展開状態)で提示することにより、ウィンドウのインタラクティビティはユーザフォーカス(例えば、瞥見、フォーカス、選択)に合わせられることができる。さらに、いずれかの基盤となるアプリケーションの実行、及びこのアプリケーションのコンテンツの提示が中断され得ず、ユーザコントロールは、自動的にアプリケーションに戻されることができる。したがって、GUI全体で、情報共有を改善しながらシームレスな切り替えが可能になる。
【0010】
説明を明確にするために、実施形態は、ビデオゲームシステムに関連して説明され得る。ただし、実施形態は、そのように限定されるものではなく、あらゆる他のタイプのコンピュータシステムにも同様に適用される。一般に、コンピュータシステムはGUIをディスプレイ上に提示する。GUIは、ホームユーザインタフェースを含み得、このホームユーザインタフェースから、コンピュータシステムのさまざまなアプリケーションは起動されることができる。アプリケーションを起動すると、そのアプリケーションに対応するウィンドウがGUI内に提示されることができる。ユーザがメニューを要求すると、動的領域及び静的領域を含むメニューは、アプリケーションのウィンドウ上に表示されることができる。関心のあるアプリケーションは、瞥見される、フォーカスされる、及び/またはシステムコントロールの選択に加えて、メニューから選択されることができる。メニューは解除されることができ、ユーザコントロールは自動的にアプリケーションに戻されることができる。
【0011】
図1は、本開示の一実施形態による、選択可能なアクションを有するメニューの一例を示す。図示されるように、コンピュータシステム(例えば、ビデオゲームシステム)のグラフィカルユーザインタフェース100がディスプレイ上に提示される。GUI100は、コンピュータシステムのビデオゲームアプリケーション(例えば、ビデオゲームシステムによって実行されるもの)のビデオゲームコンテンツ110と、コンピュータシステムのメニューアプリケーション(例えば、ビデオゲームシステムによって実行されるもの)のメニュー120とを提示する。
メニュー120は、ビデオゲームコンテンツ110がGUI100のバックグラウンド内に現れている間、GUI100のフォアグラウンド内に現われるように、ビデオゲームコンテンツ110の少なくとも一部の上に提示され得る。例えば、メニュー120及びビデオゲームコンテンツ110は、それぞれメニューウィンドウ及びコンテンツウィンドウ内に表示され、メニューウィンドウは、コンテンツウィンドウの上にあり、コンテンツウィンドウの一部のみとオーバーラップするレイヤ内に示される。
【0012】
一例では、メニュー120は、その背後にあるビデオコンテンツ110の一部を遮ることができる、またはある程度の透明度を有することができる。さらに、または代替に、メニュー120及びビデオゲームコンテンツ110のテクスチャリング及び/または明るさは、メニュー120がフォアグラウンド内に現れ、ビデオゲームコンテンツ110がバックグラウンド内に現われるように設定されることができる。
【0013】
図示されるように、メニュー120は、動的メニュー領域130及び静的メニュー領域140を含む。動的メニュー領域130は、複数のウィンドウ132A、132B、...、132Kを提示し、これらのウィンドウのそれぞれは、コンピュータシステムのアプリケーションに対応する。静的メニュー領域140は、アイコン142A、142B、...、142Lを提示し、これらのアイコンのそれぞれは、コンピュータシステムのシステム機能(例えば、電源オン、音量調節、ミュート及びミュート解除など)またはアプリケーションに対応する。簡潔にするために、ウィンドウ132A、132B、...、132Kのそれぞれは、本明細書ではウィンドウ132と称され、アイコン142A、142B、...、142Lのそれぞれは、アイコン142と称される。メニュー120は、2つの領域130及び140を含むことにより、ユーザがゲームプレイを終了することを必要とすることなく、コンテキストに関連する特徴及び関連するシステム機能を示すダッシュボードを表す。
【0014】
一般に、ウィンドウ132は、コンピュータシステム(例えば、ビデオゲームプレイヤ)のユーザのコンテキスト及び/またはコンピュータシステム上で実行されているアプリケーションのコンテキストに基づいて、動的メニュー領域130に追加されることができる。ユーザのコンテキスト(ユーザコンテキスト)は、一般に、ユーザに関する情報、ユーザのアカウント、アクティブなバックグラウンドアプリケーション及び/またはサービス、及び/またはコンピュータシステムから、または他のネットワーク環境から(例えば、ソーシャルメディアプラットフォームから)ユーザが利用できるアプリケーション及び/またはサービスのうちのいずれかを含む。
アプリケーションのコンテキスト(アプリケーションコンテキスト)は、一般に、アプリケーションに関する情報、アプリケーションのステータス(アクティブまたは非アクティブ)、アプリケーションによって示される特定のコンテンツ、及び/またはアプリケーションの特定の状態(バックグラウンドでアクティブ、システムによる再開など)のうちのいずれかを含む。例えば、ビデオゲームプレイヤのコンテキストは、ビデオゲームアプリケーション、音楽ストリーミングアプリケーション、ビデオストリーミングアプリケーション、ビデオゲームプレイヤがサブスクライブしているソーシャルメディアフィード、及びビデオゲームプレイヤのフレンドの同様のコンテキストを含むことができる。ビデオゲームアプリケーションのコンテキストは、ゲームタイトル、ゲームレベル、現在のゲームフレーム、利用可能なレベル、利用可能なゲームトーナメント、利用可能な新しいバージョンのビデオゲームアプリケーション、及び/またはビデオゲームアプリケーションの続編を含む。
【0015】
比較すると、静的メニュー領域140は、動的メニュー領域130の動的状態を提示し得ない。代わりに、アイコン142は、システム設定及び/またはユーザ設定に基づいて、静的メニュー領域140にプリセットされることができる。アイコン142の選択時に、対応するウィンドウ(例えば、システムコントロール用、または特定のバックグラウンドアプリケーション用)が提示されることができる。メニュー120はウィンドウが提示されている間に解除されることができる、または代替にメニュー120の提示が持続する。
【0016】
ウィンドウ132のコンテンツ、インタラクティビティ、及び状態は、この次の図に関連してさらに説明される。一般に、メニュー120の提示時に、ビデオゲームアプリケーションの実行及びビデオゲームコンテンツ110の提示が継続する。一方、入力デバイスから(例えば、ビデオゲームコントローラから)ユーザ入力は、受信され、動的領域130及び/または静的領域140内のメニュー120とインタラクトするために使用されることができる。動的領域のインタラクションにより、ユーザは、異なる状態のウィンドウ132を見て、ウィンドウ132のコンテンツまたはウィンドウ132自体に関するアクションを選択して実行することができる。
静的領域のインタラクションにより、ユーザは、アイコン142のいずれかを選択して、システム機能を更新する(例えば、音量を変更する)、または特定のアプリケーションのプリセットウィンドウを起動する(例えば、音楽ストリーミングアプリケーションのウィンドウを起動する)ことができる。インタラクションが終了すると、メニュー120が解除され、ユーザコントロールは自動的にビデオゲームアプリケーションに切り替わる(例えば、ユーザの入力が明示的に、及び/または単に切り替えを要求することなく)。あるいは、切り替えは、自動でなくてもよく、ユーザコントロールを変更してビデオゲームアプリケーションに戻すために関連するユーザ入力を必要としてもよい。どちらの場合も、入力デバイスから受信したユーザ入力を使用して、ビデオゲームコンテンツ110及び/またはビデオゲームアプリケーションとインタラクトすることができる。
【0017】
例示では、メニュー120を提示するユーザ要求が受信されることに応じて、メニュー120がビデオゲームコンテンツ110上に提示される。したがって、動的領域130は、音楽ストリーミングアプリケーションに対応する音楽ウィンドウ(例えば、第一ウィンドウ132A)と、ビデオゲームアプリケーションに対応するゲームウィンドウ(例えば、第二ウィンドウ132B)とを含む。音楽ウィンドウは、ユーザが所有する音楽アルバムのカバーを瞥見状態で示してもよい。ゲームウィンドウは、ゲームトーナメントへの招待を瞥見状態で示してもよい。ユーザがスクロールすると、ウィンドウ132上のユーザフォーカスが更新される。特に、ユーザスクロールが音楽ウィンドウ上にある場合、そのウィンドウはフォーカス状態で提示され、残りのウィンドウは瞥見状態で提示される。フォーカス状態では、音楽ウィンドウ及びカバーのサイズが拡大され、音楽アルバムを再生するためのオプションが提示される。
音楽アルバムを再生するユーザ選択が受信される場合、音楽ストリーミングが開始され、メニュー120が解除され、ユーザコントロールがビデオゲームアプリケーションに戻る。代わりに、音楽ウィンドウのユーザ選択が受信される場合、音楽ウィンドウをディスプレイにピン止めあるいはピニングするオプションが提示されることができる。このピン止めを実行すると、音楽ウィンドウがディスプレイ上に提示され、メニュー120が解除され、ユーザコントロールがビデオゲームアプリケーションに戻る。ユーザスクロールが続行される場合、音楽ウィンドウは瞥見状態で再び提示される。ビデオゲームアプリケーションとの同様のインタラクティビティが発生することができる。ここで、ユーザがゲームトーナメントへの招待を受け入れる場合、ビデオゲームアプリケーションは、ゲームプレイをビデオゲームトーナメントに変更するように更新され、ビデオゲームコンテンツ110は、ビデオゲームプレイヤがトーナメントに参加していることを示す。
【0018】
図1は、ウィンドウが動的メニュー領域に提示されること、またはウィンドウが静的メニュー領域内のアイコンから起動されることができることを説明するが、ウィンドウの他の提示は可能である。例えば、入力デバイスからのユーザ入力(例えば、特定のキー押下)はウィンドウに関連付けられることができる。ユーザ入力を受信すると、メニュー120を提示する必要なく、ウィンドウはビデオゲームコンテンツ110上のレイヤ内に提示されることができる。
【0019】
図2は、本開示の一実施形態による、メニューを提示するコンピュータシステムを示す。図示されるように、コンピュータシステムは、ビデオゲームコンソール210、ビデオゲームコントローラ220、及びディスプレイ230を含む。示されていないが、コンピュータシステムは、ビデオゲームコンソール210と通信可能に結合されるクラウドサーバのセットなどのバックエンドシステムをも含み得る。ビデオゲームコンソール210は、ビデオゲームコントローラ220(例えば、無線ネットワークを介して)及びディスプレイ230(例えば、通信バスを介して)と通信可能に結合される。ビデオゲームプレイヤ222は、ビデオゲームコントローラ220を操作して、ビデオゲームコンソール210とインタラクトする。これらのインタラクションは、ディスプレイ230上に提示されるビデオゲームをプレイすること、ディスプレイ230上に提示されたメニュー212とインタラクトすること、及びビデオゲームコンソール210の他のアプリケーションとインタラクトすることを含み得る。
【0020】
ビデオゲームコンソール210は、プロセッサ、及びプロセッサによって実行されることができるコンピュータ可読命令を格納するメモリ(例えば、非一時的なコンピュータ可読記憶媒体)を含み、これらのコンピュータ可読命令は、プロセッサによる実行時に、ビデオゲームコンソール210にさまざまなアプリケーションに関連する動作を実行させる。特に、コンピュータ可読命令は、ビデオゲームコンソール210のさまざまなアプリケーションに対応することができ、これらのアプリケーションは、ビデオゲームコンソール210の他のアプリケーション(例えば、ディスプレイ230上にホームページを提示するホームユーザインタフェース(UI)アプリケーション)の中でも、ビデオゲームアプリケーション240、音楽アプリケーション242、ビデオアプリケーション244、ソーシャルメディアアプリケーション246、チャットアプリケーション248、メニューアプリケーション250を含むことができる。
【0021】
ビデオゲームコントローラ220は、入力デバイスの一例である。キーボード、タッチスクリーン、タッチパッド、マウス、光学系、またはユーザの入力を受信するのに適した他のユーザデバイスを含む、他のタイプの入力デバイスが可能である。
【0022】
一例では、メニュー212は、
図1のメニュー130と同様である。ビデオゲームアプリケーション240の実行時に、ビデオゲームコンソール210のレンダリングプロセスは、ビデオゲームコンテンツ(例えば、カーレースビデオゲームコンテンツとして示されている)をディスプレイ230上に提示する。ビデオゲームコントローラ220からのユーザ入力(例えば、特定のキーまたはボタンのユーザ押下)時に、レンダリングプロセスもまた、メニューアプリケーション250の実行に基づいてメニュー212を提示する。メニュー212は、ビデオゲームコンテンツ上のレイヤ内に提示され、動的領域及び静的領域を含む。動的領域内のウィンドウは、ビデオゲームコンソールのアプリケーションのサブセットに対応する。
【0023】
メニュー212の提示時に、ユーザコントロールは、ビデオゲームアプリケーション240からメニューアプリケーション250に変わる。メニュー212とのインタラクションを要求するユーザ入力をビデオゲームコントローラ220から受信すると、それらのようなインタラクションをメニューアプリケーション250は、メニュー212を更新して、バックグラウンドまたはフォアグラウンド内で任意の関連するアプリケーションを起動することによってサポートする。ビデオゲームプレイヤ222は、バックグラウンドまたはフォアグラウンド内でのアプリケーションの起動時に、メニュー212を終了する、またはメニュー212を自動的に解除することができる。メニュー212を終了すると、またはバックグラウンドアプリケーションの起動に基づいて解除すると、ユーザコントロールは、メニューアプリケーション250からビデオゲームアプリケーション240に変わる。
フォアグラウンドグラウンドアプリケーションが起動される場合、ユーザコントロールはメニューアプリケーション250から、その代替にこのアプリケーションに変わる。どちらの場合も、ビデオゲームコントローラ220から受信するさらなるユーザ入力は、関連するアプリケーションを制御するために、及び/またはメニュー212を再び要求するために使用される。
【0024】
メニューアプリケーション250は、
図5を参照して以下でより詳細に説明されるように、コンテンツ監視サービスを含む。コンテンツ監視サービスは、コンテンツネットワークまたは他のソースを介して利用可能な新しいアプリケーションコンテンツに応答して、データをプリフェッチする。次に、プリフェッチされたデータは、メニューアプリケーション250によってキャッシュされ、第一提示状態または第二提示状態中のウィンドウに含めるように使用される。第三提示状態中のウィンドウの場合、プリフェッチされたデータは、キャッシュからコピーされて、ウィンドウアプリケーション252に送信されることで、
図4を参照してより詳細に説明されるようにウィンドウが生成される、及び/または提示される。
【0025】
図2は、異なるアプリケーションがビデオゲームコンソール210上で実行されることを示すが、本開示の実施形態は、そのように限定されない。代わりに、アプリケーションはバックエンドシステム(例えば、クラウドサーバ)上で実行されることができる、及び/またはそれらの実行はビデオゲームコンソール210とバックエンドシステムとの間に分散されることができる。
【0026】
図3は、本開示の実施形態による、異なる状態中のウィンドウの一例を示す。本明細書及び後続の図では、アクションカードがウィンドウの一例として説明され、アプリケーションに対応する。一般に、ウィンドウは、GUIオブジェクトを表し、このGUIオブジェクトは、コンテンツを示すことができ、コンテンツ及び/またはウィンドウ上で実行可能なアクションをサポートすることができる。一例では、アクションカードは、特定のタイプのウィンドウであり、アクションカードは、MicroUXサービスのコンテナオブジェクトを含み、アクションカードは、単一の概念のコンテンツ及びアクションを含む。メニュー内に含まれるアクションカードは、ユーザが従事していることのコンテキストと、コンピュータ環境内の人々、コンテンツ、及びサービスの関係とに基づいて、即時アクション及び関連アクションを容易にする。
【0027】
図3に示されるように、アクションカードは、複数の状態のうちの1つで提示され得る。その次の図でさらに説明されるように、どの状態が提示されるかは、ユーザ入力によって異なる。これらの状態のうちの1つは、アクションカードがアプリケーションに関する瞥見をユーザに提供する瞥見状態310であり得る。瞥見は、アクションカードに関する関連情報を含み、この情報は、ユーザがアクションを実行するかどうかを決定する際に有用である。例えば、瞥見状態310では、アクションカードは、第一サイズを有し、第一サイズに基づいて、コンテンツ312、及びコンテンツ312またはアクションカードのタイトル314を提示する。説明のために、音楽アプリケーションのアクションカードは、音楽アルバムのカバー及びタイトルを示す、特定の寸法を有する矩形として第一状態で提示されることができる。
【0028】
別の状態は、フォーカス状態320であり得、このフォーカス状態では、アクションは、ユーザに関連する情報、及び実行される1つ以上のアクション(例えば、アプリケーションまたはアクションカード自体のコンテンツに関する1つ以上の選択可能なアクション)の1つ以上のオプションを提供する。換言すれば、アクションカードは、アクションカード上にあるユーザフォーカスに応答してユーザが選択するアクションを迅速に見せることができる。例えば、フォーカス状態320では、アクションカードは第二サイズ(第一サイズより大きくなり得る)を有し、この第二サイズに基づいてコンテンツ312及びタイトル314の提示をリサイズし、1つ以上の選択可能なコンテンツアクション322(例えば、コンテンツの再生、コンテンツのスキップなど)及び1つ以上の選択可能なカードアクションを提示する(例えば、アクションカードをディスプレイ上の位置に移動させる、アクションカードをリサイズする、アクションカードをピン止めする、ピクチャインピクチャとしてアクションカードを提示するなど)。音楽アクションカードの例示に戻り参照すると、フォーカス状態320では、音楽カバー及びアルバムタイトルは拡大され、音楽アルバムの音楽ファイルを再生するための再生ボタンはさらに提示される。
【0029】
さらに別の状態は、展開状態330であり得、この展開状態では、アクションは、さらに拡大された提示形式で関連情報をユーザに提供し続け、コンテンツ及び/またはアクションカード自体の上で実行される1つ以上のアクション(例えば、アプリケーションまたはアクションカード自体のコンテンツに関する1つ以上の選択可能なアクション)の1つ以上のオプションを提供する。換言すれば、アクションカードは、MicroUXとインタラクトするための主要なモダリティになり、関連するビジュアルインタフェースを表示する。例えば、展開状態330では、アクションカードは第三サイズ(第二サイズよりも大きくなり得る)を有し、この第三サイズに基づいてコンテンツ312及びタイトル314の提示をリサイズし、コンテンツアクション322の提示を継続し、アプリケーションの追加のコンテンツ332を提示し、アクションカード上で実行されることができる、1つ以上のコンテンツアクション及び1つ以上のカードアクションの1つ以上のオプション334を提示する。
音楽アクションカードの例示に戻り参照すると、展開状態330では、音楽カバー及びアルバムタイトルがさらに拡大され、再生ボタンの提示が続く。音楽アルバムの追加の音楽ファイルも識別される。オプション334は、ディスプレイ上に提示されている他のコンテンツ(例えば、ビデオゲームコンテンツ)の側にアクションカードをピン止めする、アクションカードを他のコンテンツ内のピクチャインピクチャとして提示する、またはバックグラウンドで音楽アプリケーションを実行する(例えば、音楽アルバムを再生する)との選択肢を提供する。上記の状態では、コンテンツ312、タイトル314、コンテンツアクション322、及び追加のコンテンツ332は、アプリケーションから受信したメタデータから識別されることができる。
【0030】
図3に示されるように、アクションカードは、静的提示領域及び動的提示領域を含むことができ、それぞれは、状態に応じてリサイズされることができる。例えば、タイトル314は、静的領域内に提示され、アクションカードに関連する下にあるアプリケーションを識別し、状態によって変えない。比較すると、コンテンツ312は、動的領域内に提示されることができ、各状態内及び状態間で変えることができる。特に、コンテンツ自体はインタラクティブであり得(例えば、ビデオであり得)、その提示は、そのインタラクティブな性質によって経時的に変わることができる。さらに、または代替に、コンテンツ312もまた、ユーザコンテキスト及び/またはアプリケーションコンテキストに応じて、経時的に変わることができる。
【0031】
図3に示されるように、第一ウィンドウ310、第一ウィンドウ320、及び第二ウィンドウ330は、アイコン316を各含む。アイコンは、1つ以上のモノを表す画像であり得、この画像は、ユーザ(例えば、プロフィール写真)、コンピュータシステム(例えば、システムロゴまたは画像)、ターゲットアプリケーション(例えば、アプリケーションからのバッジまたはアイコン)、及びターゲットアプリケーションのタイプを表すシステムアイコン(例えば、提示されているコンテンツのタイプの一般的な記号、例えば、オーディオプレイヤの音楽ノート、画像ギャラリーのカメラ、チャットアプリケーションのマイクロフォンなど)を含み得るが、これらに限定され得ない。
【0032】
図3に示されるように、瞥見状態310中のアクションカード、フォーカス状態320中のアクションカード、及び選択状態330中のアクションカードは、アイコン316を各含む。アイコン316は、1つ以上のモノを表す画像であり得、この画像は、ユーザ(例えば、プロフィール写真)、コンピュータシステム(例えば、システムロゴまたは画像)、アクションカードに対応するターゲットアプリケーション(例えば、アプリケーションからのバッジまたはアイコン)、及びターゲットアプリケーションのタイプを表すシステムアイコン(例えば、提示されているコンテンツのタイプの一般的な記号、例えば、オーディオプレイヤの音楽ノート、画像ギャラリーのカメラ、チャットアプリケーションのマイクロフォンなど)を含み得るが、これらに限定され得ない。
【0033】
図3に示されるように、フォーカス状態(例えば、フォーカス状態320)中のアクションカードには、1つ以上のコマンドオプション340が含まれる。
図3は、コンテンツより下に配置されたパネル内にコマンドオプション340を示し、コマンドオプション340は、サイドパネル内のコンテンツの前にオーバーレイとして配置され得る、及び/またはタイトル314の近くのコンテンツの上に配置され得る。コマンドオプション340は、テキストまたは画像ベースの命令を含み得る、またはボタンもしくは他の仮想インタラクティブ要素などの1つ以上のインタラクティブ要素342を含み得る。例えば、インタラクティブ要素342は、ユーザクリックを受信するように構成されるボタンを含み得る。
いくつかの実施形態では、コマンドオプション340及びインタラクティブ要素342は、コンテンツ312及び/または追加のコンテンツ332とのインタラクションを容易にする。例えば、コマンドオプションは、コンテンツアクション322によって提供されるものを越えた、コンテンツにわたる追加及び/または代替の機能制御を提供することができる。説明のために、コンテンツアクション322は、オーディオまたはビデオプレイヤに再生/一時停止機能を提供し得、コマンドオプション340のうちの1つは、パーティチャットアプリケーションのミュート/ミュート解除機能を含み得る。コマンドオプション
340は、例えば、アクションカード内のコンテンツの現在の状態に基づいて、コンテキスト固有であり得る。例えば、アクションカードがオーディオビジュアルコンテンツを再生しているとき、コマンドオプション
340は、ミュート/ミュート解除ボタンではなくミュートボタン、及び再生ボタンではなく停止ボタンのみを含み得る。
【0034】
図3に示されるように、アクションカードの異なる提示状態は、異なる数の要素(例えば、コンテンツのタイプ、コマンドオプション、サブウィンドウなど)を含む。これらの要素は、アクションカード内の要素の表示配置を各定義する1つ以上のパターンに従って配置されることができる。いくつかの実施形態では、パターンは、
図4を参照してより詳細に説明されるように、データテンプレートによって定義されるものの一部である。
【0035】
アクションカード内の要素の表示のための任意の適切なタイプの要素、配置、及び/またはケイデンスがデータテンプレートによって定義され得ることを理解されたい。データテンプレートは、単一の提示状態に固有であってもよい、または複数の提示状態に適用可能であってもよい。また、任意の適切な数のデータテンプレートがあり得る。例えば、第一アクションカードのデータテンプレートは、第一アクションカードと同じ提示状態で異なるアクションカードを提示するために使用されるデータテンプレートとは異なり得る。
【0036】
異なるアクションカードが同じデータテンプレートを使用することができるが、データテンプレートに従って提示されるコンテンツの基礎となるソースがアクションカードごとに異なり得ることも理解されたい。アクションカードごとのデータコンテンツのソース(例えば、コンピュータシステムのローカルストレージ内、及び/または統一資源識別子(URI)内)は、任意の適切な方法で指定されることができる。例えば、コンテンツ監視サービスは、データテンプレートに加えて、ソースマニフェスト(またはスクリプト、コードなど)を入力として受信してもよい。ソースマニフェストは、データコンテンツを取得する特定の位置を示し得、データテンプレートは、提示のためにアクションカード内にコンテンツ(例えば、寸法、色、コントラストなど)を配置する方法を示し得る。
【0037】
いくつかの実施形態では、データテンプレートは、提示状態のうちの1つ以上の状態のアクションカード内に提示され得る要素の数及び/またはタイプを制約するように事前定義され得る。例えば、データテンプレートは、通常、他の要素(例えば、テキスト)よりもロード及びレンダリングに時間がかかる場合がある、瞥見状態(例えば、タイル)中のビデオリンクの自動再生を禁止し得る。別の例では、データテンプレートは各要素にコストを割り当てることができる。ロード及び提示を許容する要素の数は、許容可能な総コストを下回るように制約され得る。このようにして、そして本明細書でさらに説明されるように、システムは、特定の提示状態でアクションカードを提示するためのパフォーマンスを向上させることができる。例えば、アクションカードが最初に瞥見状態で提示される場合、システムは、フォーカス状態または選択状態で提示され得る追加のコンテンツではなく、この提示状態に対応するコンテンツのみを最初にロードして提示することができる。いくつかの実施形態では、提示状態に事前定義されたデータテンプレートを利用することにより、アクションカードは、パフォーマンス目標に対応する事前定義された時間(例えば、200ミリ秒(ms)、500msなど)以下で提示され得る。
【0038】
図3に示されるように、第一提示状態には、最も少ない要素が含まれ、第二提示状態には、第三提示状態よりも少ない要素が含まれ、第三提示状態には、最大数の要素が含まれる。複数の提示状態でアクションカードを定義する複数のパターンを提供することで、ユーザエクスペリエンス及びシステムパフォーマンスの両方が向上する。フォーカス状態320でのアクションカードの数を制限することで、例えば、ユーザの疲労が予防され、展開状態330が単一のアクションカードに対してのみ生成される、及び/または提示されることが確保される。図を参照して以下でより詳細に説明されるように、展開状態330を提示することは、システムリソース及び追加のウィンドウアプリケーションを要求するプロセスを含む。その目的を達成するために、展開状態330中のアクションカード間の直接循環を防止することで、システム効率が改善される。
【0039】
図を参照して、以下では、アクションカードという用語は、提示状態のうちの1つ以上の状態中のウィンドウを説明するために使用される。例えば、メニューアプリケーションとは異なるコンピュータシステム上のターゲットアプリケーションに関連付けられるコンテンツを動的メニュー内に提示するウィンドウは、「アクションカード」と称される。
【0040】
図4は、本開示の一実施形態による、インタラクティブメニュー及びアクションカード内のコンテンツの提示のためのコンピュータシステム400の一例を示す。
図1~2を参照してより詳細に説明されるように、コンピュータシステム400は、ビデオゲームシステム、バックエンドシステム、またはコンテンツを格納してディスプレイ上に提示するように構成されるいずれかの他のシステムであり得る。図示されるように、コンピュータシステム400は、複数のターゲットアプリケーション402a~n(以降本明細書では、簡単にするために、ターゲットアプリケーション(target application)402、ターゲットアプリケーション(複数可)402、ターゲットアプリ(target app)402、またはターゲットアプリ(複数可)402とも称される)を含み、ここでは、「a」、「b」、及び「n」は正の整数であり、「n」はターゲットアプリケーションの総数を指す。図示されるように、コンピュータシステム400は、メニューアプリケーション410、キャッシュ418、及びウィンドウアプリケーション460をさらに含む。
ターゲットアプリケーション402のそれぞれは、
図1~2を参照してより詳細に説明されるように、コンピュータシステム上で、またはバックエンドシステム上で実行している異なるアプリケーションに対応し得る。ターゲットアプリケーション402は、システムアプリケーションまたはユーザアプリケーションであり得、メニューアプリケーション410とは異なる。一般に、システムアプリケーションとユーザアプリケーションとの差異は、コンピュータシステム400のプロバイダがコンピュータシステム400のシステムアプリケーションレイヤ及びユーザアプリケーションレイヤをどのように画定するかに依存する。
システムアプリケーションは、コンピュータシステム400のオペレーティングシステムに固有のアプリケーションなどのシステムアプリケーションレイヤのアプリケーションである。比較すると、ユーザアプリケーションは、コンピュータシステム400のプロバイダによって管理されてもされなくてもよいアプリケーションストアからダウンロードされることができるアプリケーションなど、ユーザアプリケーションレイヤのアプリケーションである。
【0041】
キャッシュ418は、データの迅速な格納及び取得のためにレイテンシを最小にするように構成されるコンピュータシステム上にローカルメモリ(例えば、ハードディスク、フラッシュドライブ、RAMなど)を含み得る。図示されるように、メニューアプリケーション410は、決定ユニット412、1つ以上のデータテンプレート414、及びコンテンツ監視サービス416を含む。決定ユニット412は、メニューアプリケーション410が特定のターゲットアプリケーション402のために定義されるデータテンプレート414を決定することができるように、ソフトウェア及び/またはハードウェアとして実装され得る。データテンプレート414は、データテンプレート414とターゲットアプリケーション402との関連付けに基づいて、ターゲットアプリケーション402についてキャッシュ418に格納するコンピュータシステム400のコンテンツのタイプを識別する。場合によっては、各データテンプレート414は、コンテンツのタイプ(例えば、オーディオ、ビデオ、ビデオゲームコンテンツなど)を1つ以上の提示状態にさらに関連付ける。
【0042】
メニューアプリケーションは、データ420をキャッシュ418に格納することができ、データ420は、第一コンテンツ422及び第二コンテンツ424を含むがこれらに限定されない複数のタイプのコンテンツを含み得る。例えば、
図1~2を参照してより詳細に説明されるように、コンテンツは、ビデオコンテンツ、オーディオコンテンツ、ビデオゲームコンテンツ、パーティチャット情報などを含み得る。また、データ420は、第一コンテンツ422の第一統一資源識別子(URI)を含み得、通常、URIは、事前定義された1セットのシンタックスルールに従うリソースを識別する文字列によって特徴付けられる。例えば、URIは、リソースを識別して、そのリソースに関連するインタラクションをネットワーク化されたシステム間で促進し得る。
同様に、データ420は、コンテンツのタイプ、例えば、第二コンテンツ424の第二URIごとのURI情報を含み得る。第一コンテンツ422及び第二コンテンツ424は、
図1~2を参照してより詳細に説明されるように、1つ以上のデータテンプレート414内で識別され得、データテンプレート424内で、第一提示状態、第二提示状態、及び/または第三提示状態と関連付けられ得る。例えば、所与のデータテンプレート414内で定義されるように、第一コンテンツ422は第一提示状態及び第二提示状態に関連付けられ得、第二コンテンツ424は第二提示状態のみに関連付けられ得る。このようにして、キャッシュ418は、さまざまなターゲットアプリケーション402のデータを構成する、複数のデータテンプレート414に関連する複数のタイプのコンテンツを格納することができる。
【0043】
図示されるように、コンピュータシステム400は、1つ以上のコンテンツソース430と通信可能に結合され、これらのコンテンツソースから、コンピュータシステムは、データ420をプリフェッチする、及び/または受信することができる。例えば、コンテンツソース430は、クラウドベースのコンテンツストレージ及び/または配信システムを含むがこれに限定されないコンテンツネットワーク432を含み得る。また、コンテンツソース430は、コンピュータシステムと通信可能に結合されたデータストア(例えば、ハードドライブ、フラッシュドライブ、ローカルメモリ、外付けドライブ、光学ドライブなど)によって提供されるシステムコンテンツ434を含み得る。
【0044】
図示されるように、コンピュータシステム400は、入力デバイス440に通信可能に結合され、この入力デバイスは、
図2を参照してより詳細に説明されるように、ユーザ入力デバイス(例えば、
図2のビデオゲームコントローラ220)を含み得るが、これに限定されない。入力デバイス440は、キャッシュ418に格納されたデータ420とのユーザインタラクションを容易にするように、ユーザ入力をコンピュータシステム400に提供することができる。以下でより詳細に説明されるように、インタラクションは、UI内の1つ以上のメニュー及び/またはアクションカードを介して行われ得る。例えば、コンピュータシステム400は、
図1を参照してより詳細に説明されるように、静的メニュー及び動的メニュー(例えば、
図1のメニュー120の静的メニュー領域140及び動的メニュー領域130)を含むユーザインタフェースを構成するようにユーザインタフェースデータを生成することができる。
【0045】
図示されるように、コンピュータシステム400は、ディスプレイ450と通信可能に結合される。ディスプレイ450は、インタラクティブユーザインタフェースと互換性のある任意の一般的な形態のディスプレイ(例えば、
図2のディスプレイ230)を含むことができる。ディスプレイ450は、ヘッドセット、モバイルデバイス、スマートフォンなどを含むがこれらに限定されない、ウェアラブル及び/またはポータブルディスプレイシステムによって生成される拡張現実及び/または仮想現実インタフェースを含むことができる。入力デバイス440によって提供され、コンピュータシステム400によってユーザ入力として受信される入力に応答して、コンピュータシステム400は、ディスプレイ450(例えば、
図1の動的メニュー領域130)を介してインタラクティブメニュー452を提示することができる。
図1~2を参照してより詳細に説明されるように、インタラクティブメニュー452は、静的メニュー及び動的メニューを含み得、動的メニューは、1つ以上のアクションカード456a~nを含み、「a」及び「n」は正の整数であり、「n」は、アクションカードの総数を指す(以降本明細書では、簡単にするためにアクションカード456と称される)。図示されるように、アクションカード456は、第一提示状態(例えば、瞥見状態)で提示され得、アクションカードのそれぞれは、異なるターゲットアプリケーション402に対応し得、アクションカードのそれぞれには、異なるターゲットアプリケーション402に関連する異なるデータテンプレート414に従って異なるデータ420が集められ得る。
例えば、アクションカード456は、第一ターゲットアプリケーション402に対応する第一アクションカード454を含み得ることで、第一アクションカード454は、キャッシュ418からのデータに基づいて、そして第一ターゲットアプリケーション402用に定義されたデータテンプレート414に従って、第一コンテンツ422を提示する。例えば、ビデオゲームアプリケーションのデータテンプレート414のうちの1つのデータテンプレートは、瞥見状態中のビデオゲームアプリケーションのアクションカードに、コンピュータシステム400のユーザがプレイした、ビデオゲームアプリケーションのタイトル及び最新のレベルを提示するコンテンツが集められることを定義する。
さらに、瞥見状態中のアクションカードは、新しいレベルをダウンロードするための追加オプションが利用可能であることを示し得る。フォーカス状態では、対照的に、ビデオゲームアプリケーションのデータテンプレートは、トロフィー形式でさらなるコンテンツと、新しいレベルを起動する、または追加の方法でビデオゲームアプリケーションとインタラクトする(例えば、リプレイを見る、他のプレイヤとチャットするなど)コマンドオプションとを提供する。メニューのロード中のレイテンシを低減させるために、コンテンツ監視サービス416は、3つの提示状態に使用されるコンテンツ(例えば、タイトル、レベルプレイ情報、トロフィー情報、利用可能なレベル情報、及びダウンロード可能なコンテンツ)をプリフェッチし、プリフェッチされたデータをキャッシュ418に格納する。
【0046】
図1~2を参照してより詳細に説明されるように、コンピュータシステム400は、
図3を参照してより詳細に説明されるように、第一アクションカード454のターゲットアプリケーションに関連する第二提示状態(例えば、フォーカス状態)の要求の形式を取る、入力デバイス440を介した1つ以上のタイプのユーザインタラクションを受信することができる。これは、第一アクションカード454上のユーザのボタン押下、及び/またはコマンドオプション(例えば、
図3のコマンドオプション340)を構成する、入力デバイス440を介した別の形式のユーザインタラクションを含み得る。コンピュータシステム400は、キャッシュから第一ターゲットアプリケーション402に関連するデータのコピーを生成し、第一ターゲットアプリケーション402に関連するデータのコピーをウィンドウアプリケーション460に送信することによって、ユーザ入力に応答することができる。
図示されるように、ウィンドウアプリケーション460は、メニューアプリケーション及び第一ターゲットアプリケーション402とは異なる。ウィンドウアプリケーション460は、ユーザインタフェースデータを生成するように構成され得ることで、ユーザインタフェースデータを使用して生成されたユーザインタフェースは、ディスプレイ450を介して、第二提示状態で提示される第一ターゲットアプリケーション402に対応する第二アクションカード470を提示し得る。
第二アクションカード470は、第二提示状態では、ターゲットアプリケーション402に関連するデータテンプレート414に基づいて提示される第一コンテンツ472及び第二コンテンツ474の両方を含み得る。第一コンテンツ472及び第二コンテンツ474は、入力デバイス440を介してコンピュータシステム400によって受信されるユーザ入力に応答して、メニューアプリケーション410によってウィンドウアプリケーション460に送信されるコピーされたデータを使用して、ウィンドウアプリケーション460によって第二アクションカード470内に集められ得る。
【0047】
図5は、本開示の一実施形態による、インタラクティブメニュー及びアクションカード内のコンテンツの提示のための別のコンピュータシステム500の別の例を示す。
図5に示されるように、コンピュータシステム500は、ユーザインタラクションを受信することなく(例えば、
図4の入力デバイス440を介して)、1つ以上のコンテンツソース530からデータ520を能動的にプリフェッチすることができる。コンピュータシステム500は、メニューアプリケーション510、キャッシュ518、及び1つ以上のイベント540に関連するデータを含み得る。図示されるように、コンピューティングシステム500は、コンテンツソース530と通信可能に結合されることにより、メニューアプリケーション510のコンテンツ監視サービス516は、第一コンテンツ522及び第二コンテンツ524を含むデータ520をフェッチする。
図4のコンテンツネットワーク432及びシステムコンテンツ434を参照してより詳細に説明されるように、コンテンツソース530は、コンテンツネットワーク532及び/またはシステムコンテンツ534を含み得る。
【0048】
コンテンツ監視サービス516は、コンピュータシステム500または1つ以上のターゲットアプリケーション(例えば、
図4のターゲットアプリケーション402)の動作状態542に対する変更について、コンピュータシステム500のアクティブなプロセスを能動的に監視することができる。例えば、パーティチャットアプリケーションの動作状態は、特定のチャットグループの参加者の動的リストに関連付けられ得ることで、参加者における変化は、動作状態における対応する変化を誘発し得る。
別の例では、音楽プレイヤアプリケーションは、プレイリスト機能を含み得、このプレイリスト機能は、キューがユーザインタラクションまたは過去のユーザ選択に基づいて動的に埋められるように、レコメンデーションエンジンを使用してキューに集める。システムは、音楽プレイヤアプリケーションがキュー内のその次のファイルに順方向にスキップすること、またはファイルの1つ以上の特徴(例えば、「お気に入り」コマンド)に従ってファイルの後に同様のファイルが続くことを要求するユーザインタラクションを受信し得る。それらのようなインタラクションは、ターゲットアプリケーションの動作状態542における対応する変化に関連付けられ得、コンピューティングサービス516がコンテンツソース530から対応するデータ520をプリフェッチすることを誘発する。
【0049】
図示されるように、イベント540は、新しいデータの受信544及び新しいデータの生成546をも含む。新しいデータの受信544は、システムアプリケーション(例えば、バックグラウンドゲームネットワークプラットフォーム)またはユーザアプリケーション(例えば、ビデオゲーム)によって作成されたコンピュータシステム500上で動作するプロセスによってコンピュータシステム500に提供されるデータを含み得ることで、コンピュータシステム500は、メニューアプリケーション510のコンテンツ監視サービス516を介して、コンテンツソース530からデータ520をプリフェッチする。
例えば、システムアプリケーションは、コンピュータシステム500上の1つ以上のターゲットアプリケーションにコンテンツソース530から利用可能な新しいコンテンツに対応する新しいデータを送信することができる。例示的な例として、これは第一コンテンツ522を含み得、この第一コンテンツに、コンテンツ監視サービス516は、いずれかの新しいダウンロード可能なコンテンツを自動的にプリフェッチして格納するように構成される。別の例示的な例として、新しいデータの受信544は、コンテンツソース530内に第二コンテンツ524のURIを含み得、このURIに従って、コンテンツ監視サービス516は、コンテンツソース530から第二コンテンツ524をプリフェッチし、キャッシュ518に第二コンテンツ524を格納する。
同様に、新しいデータの生成546は、コンテンツ監視サービス516によるプリフェッチプロセスが、
図4を参照してより詳細に説明されるようにターゲットアプリケーションに追加のコンテンツを提供することを誘発することができる。例えば、第一アクションカード(例えば、
図4の第一アクションカード454)を第二提示状態で(例えば、
図4の第一アクションカード454をフォーカス状態で)提示するための、入力デバイス(例えば、
図4の入力デバイス440)を介したユーザ入力要求は、ウィンドウアプリケーション(例えば、
図4のウィンドウアプリケーション460)による使用のために、コンピューティングサービス516が、第二アクションカード(例えば、
図4の第二アクションカード470)を生成する、及び/または提示する際に、第二コンテンツ524をプリフェッチし、それをキャッシュ518に格納することを誘発することができる。
コンテンツ監視サービス516の一部の上でプリフェッチを誘発するイベント540を構成するコンピュータシステム500による新しいデータの生成546の同様の例は、ターゲットアプリケーションデータ(例えば、ゲーム内イベント、ゲーム内アチーブメント、オンラインカタログアプリケーションを介したユーザコンテンツのユーザ要求など)、コンピュータシステム500の動作中にシステムアプリケーションによって生成されたデータ(例えば、ターゲットアプリケーションのライセンスの有効期限、メニュー内の1つ以上のアクションカードを介した提示のために構成されたシステムレベル情報など)、及びユーザデータ(例えば、コンピュータシステム500に新しいターゲットアプリケーションを追加することによるなど、コンピュータシステム500のメニューまたはUIを介したユーザインタラクション)を含むが、これらに限定されない。
【0050】
図6は、本開示の一実施形態による、インタラクティブメニュー及びアクションカード内のコンテンツの提示のための別のコンピュータシステム600の別の例の一例を示す。
図6に示されるように、そして
図4を参照してより詳細に説明されるように、第一アクションカード654は、入力デバイス640を介したユーザインタラクションに応答して、ディスプレイ650を介してインタラクティブメニュー652内に提示され得る。第一アクションカード654には、ターゲットアプリ602に関連するデータテンプレート614に従って第一コンテンツ672が集められ得、第一コンテンツは、コンテンツソース630のデータ620からコンピュータシステム600のコンピューティングサービス616によって受信される、及び/またはフェッチされる。
図4を参照してより詳細に説明されるように、コンテンツソースは、コンテンツネットワーク632であって、これにより第三コンテンツ626がリモートに格納される、コンテンツネットワークと、システムコンテンツ634であって、これにより第三コンテンツ626がコンピュータシステム600にローカルに格納される、システムコンテンツとを含むことができる。
【0051】
いくつかの実施形態では、第一アクションカード654の提示に加えて、コンピュータシステム600は、例えば、コンテンツソース630からのデータ620に含まれる第三コンテンツ626の第三URIに基づいて、追加のコンテンツを決定することができる。追加のコンテンツは、コンテンツソース630からのデータ620内の第一コンテンツ622のものとは異なるターゲットアプリ602に関連付けられ得る。
図5を参照してより詳細に説明されるように、コンピュータシステムは、異なるターゲットアプリ602に関連するデータテンプレート614に従って、追加のコンテンツをフェッチし、それをキャッシュ618に格納して、第一提示状態でのインタラクティブメニュー652のアクションカード658内に提示することができる。
例えば、コンピュータシステム600のメニューアプリケーション610は、コンテンツソース630から第三コンテンツ626をフェッチし、第三コンテンツ626をキャッシュ618に格納することができる。入力デバイス640を介したユーザインタラクションに応答して、メニューアプリケーションは、第一提示状態中のデータテンプレート614に従って、第三アクションカード658に第三コンテンツ676を集めることができる。同様に、追加のコンテンツは、コンピュータシステム600によってコンテンツソース630から取得される、受信される、及びまたはフェッチされることで、追加のアクションカード656に集めれられることができる。
【0052】
図7は、本開示の一実施形態による、フォアグラウンドプロセス及びバックグラウンドプロセスを有するコンピュータシステム700の一例を示す。
図1~3を参照してより詳細に説明されるように、コンピュータシステム700(例えば、コンソール、ゲームシステム、ユーザデバイス)は、バックグラウンドプロセス710かフォアグラウンドプロセス720かいずれかとして複数のプロセスを操作することができる。「バックグラウンド」及び「フォアグラウンド」という用語は、システムリソース(例えば、CPUまたはGPUリソース)を使用してプロセスがデータをアクティブに送信している、及び/または受信しているかどうかなどを含む、他の態様の中でも、周辺機器、ディスプレイに関して、特定のプロセスがコンピュータシステム700の動作を制御するかどうかを指し得る。例えば、バックグラウンドプロセス710は、コンピュータシステム700の処理順序を決定しないシステムアプリケーションまたはユーザアプリケーションを含み得る。例えば、フォアグラウンドプロセス720は、GUIがそのプロセスのために提示されるかどうかにかかわらず、ユーザ入力を受信するように指定され得る。
【0053】
図7に示されるように、コンピュータシステム700は、第一ユーザ入力750などのユーザ入力を受信する前に、バックグラウンドプロセス710としてメニューアプリケーション730及びウィンドウアプリケーション740を起動する。第一ユーザ入力750の一例は、
図1~2(例えば、
図1の動的メニュー領域130)を参照してより詳細に説明されるように、ディスプレイを介してインタラクティブメニューを生成する、及び/または提示するためのユーザ要求を含み得る。第一ユーザ入力570を受信すると、コンピュータシステム700は、
図4~6を参照してより詳細に説明されるように、ディスプレイを介して瞥見状態またはフォーカス状態中のアクションカードを提示するためのデータをアクティブに生成する、対応するフォアグラウンドプロセス中にメニューアプリケーション730を実行する。
同様に、
図4を参照してより詳細に説明されるように、第二ユーザインタラクションは、インタラクティブメニュー(例えば、
図4のインタラクティブメニュー452)内のアクションカード(例えば、
図4の第一アクションカード454)をフォーカス状態から展開状態に展開する要求を含み得、この要求は、メニューアプリケーション730とは異なるウィンドウアプリケーション740によって促進され得る。
図7に示されるように、コンピュータシステム700は、ウィンドウアプリケーション740に展開状態中のアクションカードを生成する、及び/または提示するように促すユーザインタラクションを受信することに応答して、対応するフォアグラウンドプロセス中にウィンドウアプリケーション740を実行することができる。瞥見状態、フォーカス状態、及び展開状態のそれぞれでは、提示されるコンテンツ及びアクション、ならびにそれらの配置は、アクションカードに対応するターゲットアプリケーション用に定義されるデータテンプレート(例えば、
図4のデータテンプレート414)に依存する。さらに、
図5を参照してより詳細に説明されるように、コンテンツ及びアクションは、メニューアプリケーションのコンテンツ監視サービスによって先にプリキャッシュされる。
【0054】
図8は、本開示の一実施形態による、フォアグラウンドプロセス及びバックグラウンドプロセスを有し、ディスプレイ上にアクションカードを提示する別のコンピュータシステム800の別の例を示す。図示されるように、コンピュータシステム800は、フォアグラウンドプロセス820として動作を実行するメニューアプリケーション830に基づいて、ディスプレイ880を介して第一アクションカード882を提示することができる。第一アクションカード882は、x-y軸方向内の二次元マルチレイヤウィンドウであり、インジケータ「z」によって示される、レイヤ位置に従って順序付きレイヤ提示内に配置される。
第二ユーザ入力860、例えば、第一アクションカード882を展開状態で提示するユーザ要求に応答して、コンピュータシステム800は、ウィンドウアプリケーション840をフォアグラウンドプロセス820として実行することができることで、コンピュータシステム800は、ディスプレイ880内に第二アクションカード884を提示することができる。図示されるように、第二アクションカード884は、第一アクションカード882上のオーバーレイとして(例えば、第一アクションカード882のものよりも優れた提示順序を示すレイヤ位置zに)提示されてから、第一アクションカード882は、フォアグラウンドプロセス820の1つとして残るメニューアプリケーション830によって終了する。第一アクションカード882を終了させる前に第二アクションカード884を第一アクションカード882上にオーバーレイすることで、コンピュータシステムプロセス中に知覚されたレイテンシ(例えば、キャッシュからデータが取得される、または第二アクションカード88
4が生成される、及び/または提示される)を低減させる目的が果たされる。
【0055】
図9は、本開示の一実施形態による、ディスプレイ上の更新されたアクションカード内のコンテンツの提示のための別のコンピュータシステム900の別の例を示す。第二アクションカード982が提示されている間に、新しいデータ920がメニューアプリケーション930によって(例えば、コンテンツ監視サービスによって)キャッシュ910に格納されると、コンピュータシステム900は、第二アクションカード982を動的に更新することができる。
そのような結果を達成するために、第二アクションカード982がディスプレイ980上に提示されるデータテンプレートによって、新しいデータ920がターゲットアプリケーションに関連付けられると、メニューアプリケーション930は、キャッシュ910からの新しいデータ920のコピーを、フォアグラウンドプロセス920として実行しているウィンドウアプリケーション940に送信する。コンピュータシステム900は、決定ユニット(例えば、
図4の決定ユニット412)に基づいて、第二アクションカード982を更新するために新しいデータが利用可能であると決定することができる。ウィンドウアプリケーション940は、第二アクションカード982を更新して、新しいデータ920を更新された第二アクションカード982として提示する。例えば、新しいデータは、データソース(例えば、
図4のデータソース430)からの新しいコンテンツを含むがこれに限定されない、キャッシュ910内のデータへの任意の変更を含み得る。
【0056】
図10は、本開示の実施形態による、インタラクティブメニュー内にコンテンツを提示するための例示的なフローを示す。フローの操作は、ハードウェア回路として実装されることができる、及び/またはビデオゲームシステムなどのコンピュータシステムの非一時的なコンピュータ可読媒体にコンピュータ可読命令として格納されることができる。実装されるように、これらの命令は、コンピュータシステムのプロセッサ(複数可)によって実行可能な回路またはコードを含むモジュールを表す。それらのような命令の実行は、本明細書で説明される特定の操作を実行するようにコンピュータシステムを構成する。プロセッサと組み合わせた各回路またはコードは、それぞれの操作(複数可)を実行するための手段を表す。操作が特定の順序で示されているが、特定の順序は必要ではなく、1つまたは複数の操作は省略、スキップ、及び/または順序を変更し得ることを理解されたい。
【0057】
一例では、フローは、操作1002を含み、この操作では、コンピュータシステムは、(i)コンピュータシステムの第一ターゲットアプリケーション用に定義され、(ii)キャッシュされる第一ターゲットアプリケーションのコンテンツのタイプを識別し、(iii)各タイプを1つ以上の提示状態に関連付ける、データテンプレートを決定する。
図3~9を参照してより詳細に説明されるように、コンピュータシステムは、コンピュータシステム上で実行する1つ以上のターゲットアプリケーション(例えば、ターゲットアプリケーション402)に従ってメニューアプリケーション(例えば、
図4のメニューアプリケーション410及び決定ユニット412)のプロセスに基づいて、データテンプレートを決定することができる。
【0058】
一例では、フローは、コンピュータシステムが第一ターゲットアプリケーションのデータをメニューアプリケーションのキャッシュに格納する操作1004を含む。例えば、これは、イベントデータ(例えば、
図5のイベント540)に応答して、メニューアプリケーションのコンピューティングサービス(例えば、
図4のコンテンツ監視サービス416)を使用してデータを受信する、及び/またはフェッチすることを含み得る。
【0059】
一例では、フローは、コンピュータシステムがインタラクティブメニューを要求するユーザ入力を受信する、操作1006を含む。例えば、ユーザ入力は、入力デバイス(例えば、ビデオゲームコントローラ)から受信され、入力デバイス上のキーもしくはボタン(例えば、特定のビデオゲームコントローラボタン)のユーザ押下、または他の任意のタイプの入力(例えば、マウスクリック)に対応する。コマンドを示すイベントは、ユーザ入力から生成されてもよい。コマンドは、メニューの提示のためのものであることができる。それ以外の場合、コマンドは、ユーザ入力のタイプに応じて、他のコントロール(例えば、ホームユーザインタフェースの表示、ビデオゲームアプリケーションの終了など)のためのものであることができる。
【0060】
一例では、フローは、操作1008を含み、この操作では、コンピュータシステムは、異なるターゲットアプリケーションに対応する第一提示状態中のアクションカードを含むインタラクティブメニューを提示する。
図4を参照してより詳細に説明されるように、メニューアプリケーションは、インタラクティブメニュー(例えば、
図4のインタラクティブメニュー452)を生成し、及び/または提示し、このインタラクティブメニューは、データテンプレートに従って、コンテンツソースからのデータに基づいて、ディスプレイ(例えば、
図4のディスプレイ450)を介して1つ以上のアクションカード(例えば、
図4のアクションカード456)を含み、1つ以上のアクションカードのそれぞれは、異なるターゲットアプリケーションに対応し、第一提示状態で提示される。
【0061】
一例では、フローは、コンピュータシステムが第二提示状態を要求するユーザ入力を受信する、操作1010を含む。
図4を参照してより詳細に上記で説明されるように、ユーザ入力は、例えば、アクションカード(例えば、
図4のアクションカード456、第一アクションカード454)とのユーザインタラクションによる、インタラクティブメニューを介した入力デバイス(例えば、図
4の入力デバイス440)からのコンピュータシステムとのインタラクションを含み得る。
【0062】
一例では、フローは、コンピュータシステムがキャッシュから第一ターゲットアプリケーションのデータのコピーを生成する、操作1012を含む。
図4を参照してより詳細に説明されるように、第二アクションカード(例えば、
図4の第二アクションカード470)は、ターゲットアプリケーションに関連するデータテンプレートに従ってキャッシュ(例えば、
図4のキャッシュ418)からコピーされて第二アクションカード内に集められるデータに基づいて、複数のコンテンツタイプ(例えば、
図4の第一コンテンツ472、第二コンテンツ474)が集められる。
【0063】
一例では、フローは、コンピュータシステムが第一ターゲットアプリケーションのデータのコピーをウィンドウアプリケーションに送信する、操作1014を含む。
図4を参照してより詳細に説明されるように、第二アクションカードは、キャッシュからのデータのコピーを使用して、ウィンドウアプリケーションによって生成される、及び/または提示される。
【0064】
一例では、フローは、操作1016を含み、この操作では、コンピュータシステムは、第二提示状態中の第一ターゲットアプリケーションに対応し、第一コンテンツ及び第二コンテンツが集められる第二アクションカードを提示する。
図3を参照してより詳細に説明されるように、第二アクションカードは、複数のコンテンツタイプ及びコマンドオプション(
図3のコマンドオプション340、ボタン342)を含む第二提示状態(例えば、
図3のフォーカス状態320)で提示される。第二アクションカード内に提示されるコンテンツは、コントロール(例えば、再生/一時停止ボタン、ミュート/ミュート解除コントロール、チャット開始など)も含み得る。
【0065】
図11は、本開示の実施形態による、アプリケーションモジュールを起動し、メニューアプリケーションを終了する一例を示す。
図7~9に関連して説明されるように、メニューアプリケーションは、ウィンドウ(例えば、アクションカード)を瞥見状態及びフォーカス状態で提示するが、ウィンドウアプリケーションは、ウィンドウを選択状態で提示する。ここで、
図11は、提示状態がフォーカス状態から選択状態に変化するときに、ウィンドウの提示が2つのアプリケーション間で切り替わることができるように、メニューアプリケーションがウィンドウアプリケーションをインスタンス化する方法をさらに説明する。
【0066】
特に、メニューアプリケーションは、複数のウィンドウを含むメニューを提示するために使用される。図示されるように、メニューアプリケーション1110は、本明細書で上記に説明されるように、入力デバイスからのユーザ入力に応じて、瞥見状態1122、フォーカス状態1124、及び展開状態1126でのウィンドウ1120の提示をサポートする。ウィンドウ1120は、アプリケーションに対応する(明確にするために、本明細書では「ターゲットアプリケーション」と称される)。コンテンツ及び/またはURIを含む、ターゲットアプリケーションに関するデータは、本明細書で上述されるようにターゲットアプリケーション用に定義されたデータテンプレートに基づいて、プリフェッチされ、キャッシュされることができる。
【0067】
一例では、ウィンドウ1120がメニューに(異なる下にあるアプリケーションに対応する他のウィンドウと共に)追加されると、メニューアプリケーション1110は、アプリケーションモジュール1130をもインスタンス化する。アプリケーションモジュール1130は、任意選択のプログラミングウィンドウを備えた(例えば、インタフェースウィンドウを提示する)タスクに関連する調整されたオブジェクトの論理コンテナであり得る。アプリケーションモジュール1130は、異なる下にあるアプリケーション(例えば、共通オブジェクト)に共通のパラメータを有することができることにより、これらのアプリケーションのいずれかを迅速に起動することができるシェルを表す。ウィンドウ1110が瞥見状態1122またはフォーカス状態1124にあるとき、メニューアプリケーション1110は、コンテンツまたはアプリケーション関連情報をアプリケーションモジュール1130に渡さない(これは、アプリケーションモジュール1130の空白領域と共に
図11に示されている)。
【0068】
ウィンドウ1120がウィンドウ1120のユーザ選択に応答して、フォーカス状態1124から展開状態1126への遷移を開始すると、ウィンドウ1120のサイズ、コンテンツ、及び選択可能なアクションが変化し始める。メニューアプリケーションは、この変化に関する情報を、下にあるアプリケーション(ウィンドウ1120に対応する)に固有のパラメータ(例えば、状態情報、プログラミングロジックなど)と共にアプリケーションモジュール1130に渡す。したがって、アプリケーションモジュール1130は、展開状態1126への遷移中で、かつ展開状態中に、ウィンドウ1120内に提示されるアクションカードコンポーネント1112と同じアクションカードコンポーネント1132を有する。さらに、アプリケーションモジュール1130は、このアプリケーションの固有パラメータが与えられると、下にあるアプリケーションのインスタンス化に対応する。
【0069】
その遷移中で、かつ展開状態1126中に、アプリケーションモジュール1130は、ウィンドウ1120と同じサイズを有し、同じコンテンツ及びアクションを含むオーバーレイウィンドウをサポートする。レンダリングプロセスは、オーバーレイウィンドウをウィンドウ1120上に提示することで、両方のウィンドウは、遷移中で、かつ展開状態1126中に完全にオーバーラップする。したがって、ユーザの観点から、ユーザは1つのウィンドウ(例えば、オーバーレイウィンドウ)のみを知覚するが、実際には、2つのウィンドウが互いの上に提示される。
【0070】
遷移の終了時、またはユーザ入力がアクションを要求すると、ウィンドウ1120は、解除され得(例えば、閉じられ得)、代わりに、オーバーレイウィンドウが使用され得る。その時点から、オーバーレイウィンドウは、下にあるアプリケーションへのインタフェースになり、メニューアプリケーション1110は終了することができる(またはバックグラウンド中で実行されることができる)。
【0071】
図12は、本開示の実施形態による、アプリケーションモジュールを起動し、メニューアプリケーションを終了するための例示的なフローを示す。フローの操作は、ハードウェア回路として実装されることができる、及び/またはビデオゲームシステムなどのコンピュータシステムの非一時的なコンピュータ可読媒体にコンピュータ可読命令として格納されることができる。実装されるように、これらの命令は、コンピュータシステムのプロセッサ(複数可)によって実行可能な回路またはコードを含むモジュールを表す。それらのような命令の実行は、本明細書で説明される特定の操作を実行するようにコンピュータシステムを構成する。プロセッサと組み合わせた各回路またはコードは、それぞれの操作(複数可)を実行するための手段を表す。操作が特定の順序で示されているが、特定の順序は必要ではなく、1つまたは複数の操作は省略、スキップ、及び/または順序を変更し得ることを理解されたい。
【0072】
一例では、フローは、コンピュータシステムがビデオゲームアプリケーションのビデオコンテンツ(例えば、第一アプリケーションの第一コンテンツ)をディスプレイ上に提示する操作1202を含む。ビデオゲームアプリケーションは、コンピュータシステム上で実行されることができ、ビデオゲームコンテンツは、コンピュータシステムのユーザ(例えば、ビデオゲームプレイヤ)のゲームプレイに基づいて提示されることができる。
【0073】
一例では、フローは、コンピュータシステムがメニューを要求するユーザ入力を受信する、操作1204を含む。例えば、ユーザ入力は、入力デバイス(例えば、ビデオゲームコントローラ)から受信され、入力デバイス上のキーもしくはボタン(例えば、特定のビデオゲームコントローラボタン)のユーザ押下、または他の任意のタイプの入力(例えば、マウスクリック)に対応する。コマンドを示すイベントは、ユーザ入力から生成されてもよい。コマンドは、メニューの提示のためのものであることができる。それ以外の場合、コマンドは、ユーザ入力のタイプに応じて、他のコントロール(例えば、ホームユーザインタフェースの表示、ビデオゲームアプリケーションの終了など)のためのものであることができる。
【0074】
一例では、フローは、コンピュータシステムがメニューを提示する、操作1206を含み、このメニューは、メニューの動的領域内に表示される複数のウィンドウ(例えば、アクションカード)、及びメニューの静的領域内に表示される複数のアイコンを含む。例えば、メニューは、メニューの提示のためのコマンドに応答して提示される。さらに、ユーザコンテキスト及びアプリケーションコンテキストを決定して使用することで、ユーザが関心を持つ可能性のある特定のアプリケーションまたはリモートコンピューティングサービスを選択することができる。動的メニュー領域内の各ウィンドウは、これらのアプリケーションのうちの1つに対応する。これらのウィンドウは瞥見状態でも提示されることができる。1つの例示では、ユーザコンテキスト及びアプリケーションコンテキストが与えられると、ユーザが最も関心を持つ可能性のあるウィンドウは、別の状態(例えば、フォーカス状態)で示されることができる。別の例示では、ウィンドウの1つが、選択された場合、またはメニューを最後に解除したときにフォーカス状態であった場合、そのウィンドウはフォーカス状態で提示されることができる。
【0075】
一例では、フローは、コンピュータシステムがアプリケーションモジュールをインスタンス化する、操作1208を含む。アプリケーションモジュールは、メニューのウィンドウに対応するさまざまなアプリケーションに共通のパラメータを有することができる。
【0076】
一例では、フローは、操作1210を含み、この操作では、コンピュータシステムは、動的メニュー領域内のウィンドウを介したユーザスクロール(またはユーザフォーカスを示す動的メニュー領域内の他の任意のタイプのインタラクション)を受信する。ユーザスクロールは、入力デバイスからのユーザ入力に基づいて受信されることができ、この入力に基づいて関連するイベントは、生成されることができる。
【0077】
一例では、フローは、操作1212を含み、この操作では、コンピュータシステムは、ウィンドウ(例えば、ユーザフォーカスが現在ある、アプリケーションのうちの1つに対応するアプリケーションウィンドウ)を他の状態(例えば、フォーカス状態)で提示する。例えば、ユーザスクロールがウィンドウ上にある場合、そのウィンドウはフォーカス状態で提示され、残りのウィンドウの提示は瞥見状態にある。
【0078】
一例では、フローは、コンピュータシステムがウィンドウのユーザ選択を受信する、操作1214を含む。ユーザ選択は、入力デバイスからのユーザ入力に基づいて、ウィンドウがフォーカス状態で提示されている間に受信されることができる。この入力に基づいて、関連するイベントが生成されることができる。
【0079】
一例では、フローは、コンピュータシステムが異なる状態(例えば、展開状態)のウィンドウを提示する、操作1216を含む。例えば、ウィンドウのサイズはフォーカス状態から展開状態に変更されるが、残りのウィンドウの提示は瞥見状態に留まる。
【0080】
一例では、フローは、操作1218を含み、この操作では、コンピュータシステムは、選択されたウィンドウの対応するアプリケーションに固有のパラメータを含むアプリケーションモジュールを更新し、オーバーレイウィンドウを提示する。例えば、ウィンドウのサイズ、コンテンツ、及びアクション、ならびにアプリケーションの状態情報及びプログラミングロジックは、アプリケーションウィンドウに渡されることで、アプリケーションモジュールからアプリケーションのインスタンスを起動し、このインスタンスは、オーバーレイウィンドウの提示のために、ウィンドウのサイズ、コンテンツ、及びアクションに関する情報を使用することができる。
【0081】
一例では、フローは、コンピュータシステムがオーバーレイウィンドウを提示する、操作1220を含む。例えば、ウィンドウが、フォーカス状態から展開状態に遷移するとき、または展開状態になると、レンダリングプロセスもまたウィンドウ上にオーバーレイウィンドウを提示する。
【0082】
一例では、フローは、コンピュータシステムがウィンドウの提示を解除する、操作1222を含む。例えば、オーバーレイウィンドウの提示時に、または展開状態への遷移時に、ウィンドウは閉じられる。さらに、メニューアプリケーションは終了させることができる、またはバックグラウンドに移動することができる。
【0083】
図13は、本開示の実施形態による、コンピュータシステムを実装するのに適したハードウェアシステムの一例を示す。コンピュータシステム1300は、例えば、ビデオゲームシステム、サーバのバックエンドセット、または他のタイプのコンピュータシステムを表す。コンピュータシステム1300は、ソフトウェアアプリケーション及び任意選択的にオペレーティングシステムを動作させる中央処理装置(CPU)1305を含む。CPU1305は、1つまたは複数の同種または異種の処理コアで構成され得る。メモリ1310は、CPU1305が使用するアプリケーション及びデータを格納する。ストレージ1315は、アプリケーション及びデータ用の不揮発性ストレージ及び他のコンピュータ可読媒体を提供し、かつ、固定ディスクドライブ、取り外し可能ディスクドライブ、フラッシュメモリデバイス、及びCD-ROM、DVD-ROM、Blu-ray(登録商標)、HD-DVD、または他の光学記憶デバイス、ならびに信号伝送及び記憶媒体を含み得る。
ユーザ入力デバイス1320は、1人以上のユーザからコンピュータシステム1300にユーザ入力を通信し、その例は、キーボード、マウス、ジョスティック、タッチパッド、タッチスクリーン、スチールもしくはビデオカメラ、及び/またはマイクロフォンを含み得る。ネットワークインタフェース1325は、コンピュータシステム1300が、電子通信ネットワーク経由で他のコンピュータシステムと通信することを可能にし、ローカルエリアネットワークやインターネットなどのワイドエリアネットワーク上の有線または無線通信を含み得る。オーディオプロセッサ1355は、CPU1305、メモリ1310、及び/またはストレージ1315によって提供される命令及び/またはデータから、アナログまたはデジタルのオーディオ出力を生成するように適合されている。CPU1305、メモリ1310、データストレージ1315、ユーザ入力デバイス1320、ネットワークインタフェース1325、及びオーディオプロセッサ1355を含むコンピュータシステム1300のコンポーネントは、1つ以上のデータバス1360を経由して接続される。
【0084】
グラフィックスサブシステム1330は、さらに、データバス1360及びコンピュータシステム1300のコンポーネントに接続され得る。グラフィックサブシステム1330は、グラフィック処理装置(GPU)1335と、グラフィックスメモリ1340とを含む。グラフィックスメモリ1340は、出力画像の各画素の画素データを記憶するために使用される表示メモリ(例えばフレームバッファ)を含む。グラフィックスメモリ1340は、GPU1335と同じデバイスに統合され得、GPU1335を有する別個のデバイスとして接続され得、及び/またはメモリ1310内に実装され得る。
画素データは、CPU1305から直接的にグラフィックスメモリ1340に提供され得る。あるいは、CPU1305は、所望の出力画像を定義するデータ及び/または命令をGPU1335に提供し、これを基に、GPU1335は、1つまたは複数の出力画像の画素データを生成する。所望の出力画像を定義するデータ及び/または命令は、メモリ1310及び/またはグラフィックスメモリ1340内に記憶され得る。実施形態では、GPU1335は、シーンの幾何学的構造、照明、陰影、質感、動き、及び/またはカメラのパラメータを定義する命令及びデータから、出力画像の画素データを生成する3Dレンダリング機能を含む。GPU1335は、シェーダプログラムを実行することが可能な1つ以上のプログラム可能な実行部を更に含むことができる。
【0085】
グラフィックスサブシステム1330は、グラフィックスメモリ1340から画像の画素データを定期的に出力して、ディスプレイデバイス1350に表示させる。ディスプレイデバイス1350は、CRT、LCD、プラズマ、及びOLEDディスプレイを含む、コンピュータシステム1300からの信号に応答して視覚情報を表示することが可能な任意のデバイスであり得る。コンピュータシステム1300は、アナログまたはデジタル信号をディスプレイデバイス1350に提供することができる。
【0086】
様々な実施形態によれば、CPU1305は、1つまたは複数の処理コアを有する1つまたは複数の汎用マイクロプロセッサである。さらなる実施形態は、高度並列及び計算集約的なアプリケーション、例えばメディア及びインタラクティブインターテインメントアプリケーションなどに特に適合された、マイクロプロセッサアーキテクチャを有する1つまたは複数のCPU1305を使用して実装され得る。
【0087】
システムのコンポーネントは、異なる実施形態では、インターネット、IPネットワーク、イントラネット、ワイドエリアネットワーク(「WAN」)、ローカル-エリアネットワーク(「LAN」)、仮想プライベートネットワーク(「VPN」)、公衆交換電話網(「PSTN」)、または本明細書に記載のデバイス間のデータ通信をサポートするいずれかの他のタイプのネットワークのいずれかの組み合わせであり得るネットワークを経由して接続され得る。ネットワークには、光リンクを含む有線接続と無線接続の両方が含まれ得る。他の多くの例が可能であり、本開示に照らして当業者には明らかである。本明細書での議論では、ネットワークは特に注目される場合と注目されない場合がある。
【0088】
前述の明細書において、本発明は、その特定の実施形態を参照して説明されるが、当業者は、本発明がそれに限定されないことを認識するであろう。上記の発明の様々な特徴及び態様は、個別にまたは共同で使用することができる。さらに、本発明は、本明細書のより広い趣旨及び範囲から逸脱することなく、本明細書に記載されているものを超える任意の数の環境及び用途で利用されることができる。したがって、明細書及び図面は、限定的ではなく例示的と見なされるべきである。
【0089】
上記で論じられた方法、システム、及びデバイスは、単なる例であることを意図していることに留意されたい。様々な実施形態が、必要に応じて様々な手順または構成要素を省略、置換、または追加する可能性があることを強調しなければならない。例えば、代替の実施形態では、方法が記載されたものとは異なる順序で実行され得、そして様々なステップが追加、省略、または組み合わされ得ることを理解されたい。また、ある特定の実施形態に関して記載された特徴は、他の様々な実施形態において組み合わされることができる。実施形態の異なる態様及び要素は、同様の方法で組み合わされることができる。また、技術は進化しており、したがって、要素の多くは例であり、本発明の範囲を限定するように解釈されるべきではないことを強調する必要がある。
【0090】
具体的な詳細は、実施形態の完全な理解を提供するために説明に記載されている。しかしながら、実施形態がこれらの具体的な詳細なしで実践することができることは、当業者によって理解されよう。例えば、実施形態を曖昧にすることを回避するために、よく知られている回路、プロセス、アルゴリズム、構造、及び技術は不必要な詳細なしに示されている。
【0091】
また、複数の実施形態は、フロー図またはブロック図として示されるプロセスとして説明され得ることに留意されたい。それぞれが操作を逐次プロセスとして説明する場合があるが、操作の多くは並行して実行することも、同時に実行することもできる。また、操作の順序は変更され得る。プロセスは、図に含まれていない追加のステップを有し得る。
【0092】
さらに、本明細書に開示されるように、「メモリ」または「メモリユニット」という用語は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気RAM、コアメモリ、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、または情報を保存するための他のコンピュータ可読媒体を含む、データを格納するための1つまたは複数のデバイスを表すことができる。「コンピュータ可読媒体」という用語は、限定ではないが、携帯型または固定式のストレージデバイス、光学式ストレージデバイス、無線チャネル、SIMカード、他のスマートカード、及び命令またはデータを記憶、含む、または運ぶことが可能な他の様々な媒体を含む。
【0093】
さらに、複数の実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらのいずれかの組み合わせによって実現され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装するとき、必要なタスクを行うプログラムコードまたはコードセグメントを、記憶媒体などのコンピュータ可読媒体に記憶してもよい。プロセッサは必要なタスクを実行できる。
【0094】
特に明記しない限り、以下の特許請求の範囲を含む、本明細書に記載されている全ての測定値、値、定格、位置、大きさ、サイズ、及び他の仕様は概数であり、厳格ではない。それらは、それらが関連する機能及びそれらが関連する技術において通例であるものと一致する合理的な範囲を有することを意図している。「約」は、±0.01%、±0.1%、±1%、±2%、±3%、±4%、±5%、±8%、±10%、±15%、±20%、±25%の許容範囲内、またはそれ以外の当技術分野で既知の許容範囲内に含まれる。「実質的に」は、76%、135%、90%、100%、105%、109%、109.9%、またはその用語が実質的に現れる文脈に応じて、当技術分野で既知の値を指す。
【0095】
いくつかの実施形態を説明してきたが、本発明の趣旨から逸脱することなく、様々な修正、代替構造、及び等価物を使用できることが当業者によって認識されるであろう。例えば、上記の要素は、より大きなシステムの構成要素にすぎない場合があり、他の規則が本発明の適用よりも優先されるか、そうでなければ変更される場合がある。また、いくつかのステップは、上記の要素を検討する前、検討中、または検討した後に実行されることができる。したがって、上記の説明は、本発明の範囲を限定するものとして解釈されるべきではない。