(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
[0015] ここで説明する技術の様々な構成は、一般には、ユーザー・インターフェース(UI)・エレメント(UIコントロールやUIオブジェクトとも呼ばれる)に対して選択の対象を定めること及びそれを選択すること、特に、大型エレメントと小型エレメントとが混在しているUIにおいて、ユーザーを補助するアダプティブ・エリア・カーソルに関する。一つの実装では、アダプティブ・エリア・カーソルは、エレメントに選択の対象を定めるために用いられ、この方法では、カーソルを、望まれるエレメントの近くに配すること及び/又は望まれるエレメントに重ねること(必ずしも全て重ねるということではない)により、ユーザーがUIエレメントを選択・操作することを可能にする。エリア・カーソルが1つより多くのエレメントに重なる状況では、選択の対象は、アダプティブ・エリア・カーソル機構により選択され、この機構は、一般に、選択の対象とすることが難しいエレメントを有利に扱う(従来のカーソルを用いる場合と比較して)。例えば、この機構は、エレメントを、カーソルのエリアと重なる各エレメントの面積の割合に基づいて、選択することができる。
【0011】
[0016] ここでの何れの例も限定ではないことを理解すべきである。実際、2次元の例を説明するが、この技術は3次元の領域にも適用できる。更に、この技術は、ゲーム・システム、パーソナル・コンピューター、及び/又はタブレットなど、何れの計算デバイスを用いても作用することができる。従って、本発明は、ここで説明される何れの特定の実施形態、構成、概念、構造、機能、または例にも限定されない。むしろ、ここで説明される何れの特定の実施形態、構成、概念、構造、機能、または例も、限定されるものではなく、本発明は、一般的な計算およびコンピューター入力における利益および利点を提供する様々な様式で用いることができる。
【0012】
[0017]
図1はブロック図であり、この図では、デプス・カメラ(depth camera)などのような入力デバイス102が、コンピューター・システム104への入力として用いられており、コンピューター・システム104がアダプティブ・エリア・カーソルを制御することを含んでいる。理解されるように、ゲーム・コントローラー、ジョイスティック、マウスまたは他のポインティング・デバイス、スタイラス、指などを含めての、カーソルを制御できる何れのヒューマン・インターフェース・デバイスも、ここで説明する技術から利益を得ることができる。従って、入力デバイス102は、そのようなデバイスの何れのものをも表す。
【0013】
[0018]
図1の例では、入力デバイス102からの入力信号は、ここで説明されるアダプティブ・エリア・カーソルの提供および使用のために、アダプティブ・エリア・カーソル機構110を含む入力処理機構108により処理される。例えば、入力処理機構108は、オペレーティング・システムの一部とすることができ、それは、サービスとして使用可能なリスト・コンテキストなどであり、アプリケーション及び他のオペレーティング・システム・コンポーネントを含む任意のプログラムにより使用可能であり、且つそれらのプログラムに対して基本的に透明である。この例では、入力処理機構108は、レイアウト機構の形であるレンダリング・コード112と通信し、プログラム114により配されたUIエレメントE1〜E7を考慮して、どのようにアダプティブ・エリア・カーソルを適応させるかを決定し、重畳テストを行うことができる。代替的には、プログラムは、入力処理機構108へ、対象となるエリア(例えば、そのエレメントの位置および大きさ)の集合を、例えば、APIコールを介して又は別の適切なインターフェースを介して、提供することができる。更に、ブラウザーなどのようなプログラムは、エリア・アダプテーション(area adaptation)および重畳テストを含めての、それ自体のカーソル操作を行うことができる。従って、
図1は単なる一つの限定ではない例を示す。
【0014】
[0019]
図1に表すように、アダプティブ・エリア・カーソル106は、出力機構116上でUIエレメントE1〜E7の中に混ざって見えるものとして示されている。容易に理解できるように、例示しているよりも多い数または少ない数のエレメントを呈示することができ、また、エレメントは、プログラム・ウィンドゥ内にあるものとすることも、1つのビュー領域に配することもできる。
【0015】
[0020] アダプティブ・エリア・カーソル106は、
図1では円として示されているが、エリア・ベースの検出のための他の任意の形状を用いることもでき、他の任意の形状は、矩形や三角形などのような他の幾何学形状、矢印、砂時計、十時線などのような形状、および人間の手をレンダリングしたもの(これは、何らかの追加の見方をユーザーに与えるので、ジェスチャー・ベースの制御においてユーザーには有用であり得る)を含む他の形状を含む。3次元(ボリューム型)の相互作用空間では、球形などのようなボリューム型カーソル形状を用いることができる。エリア・カーソルの大きさは、固定とすることも変化させることもでき、例えば、様々な方法で決定することができ、それは、カーソルの移動の速度、表示されたエレメントの密度、ユーザーの特性に基づくもの(例えば、ユーザーの指や手のひらの大きさ)、ユーザーから表示されたプログラム・エレメントまでの距離(デプス・カメラのデータから知ることができる)、ユーザーが明示した性能情報などを含む。
【0016】
[0021] アダプティブ・エリア・カーソル106は、何らかの方法で可視にすることができ(ソリッドまたは半透明)、また、覆われたエリアに関しては不可視にすることができる(場合によっては、ユーザーの操作を補助するために、カーソルの可視表現を用い、また、タッチ・スクリーンのシナリオでは、可視カーソル表現が全く無いようにすることができる)。これは、既存の任意のUIレイアウトおよびカーソルの視覚化とのコンパチビリティを容易なものとする。例えば、矢印(カーソルを単に重ねているときにポインティング・ハンド(pointing hand)に変わる)は、カーソルとしてユーザーに対して可視とすることができるが、矢印/ポインター・フィンガー(pointer finger)の先端またはその付近に中心がある不可視の円は、矢印の先端が有効にカバーするエリアを拡大することができ、それにより、エリア・カーソルを提供する。そのような「レギュラー」カーソルは、例えばその色を変更するなどのような、何らかの様式での変更を行って(特に、アダプティブ・エリア・カーソルが不可視の場合)、ターゲティングの補助がアクティブであることを示すようにできる。更に、理解されるように、アダプティブ・エリア・カーソルは、その大きさを適合させることができ、また、この変更された大きさは、ユーザーに対して可視とすることも不可視とすることもできる。即ち、アダプティブ・エリア・カーソルは、ユーザーに対して、可視、完全に不可視(例えば、可能性としては、任意の適切な方法で表される「レギュラー」カーソルやそれと同様のものを用いる)、または部分的に可視で部分的に不可視とすることができる。
【0017】
[0022]
図2A〜
図2Cは、エレメントに選択の対象を定める際にユーザーを支援するようにアダプティブ・エリア・カーソルを操作できる様々な様式を示す。
図2Aの例では、アダプティブ・エリア・カーソル206は、点C(1画素の小さいものとすることができる)に中心があり、ユーザーにより配されたとおりに、1つのエレメントE8およびE9と重なっている。
【0018】
[0023]
図2Aにおいて理解できるように、エリア・カーソルは、1つより多くのUIエレメントと同時に重なることができる。幾つかの既知のシステムでは、単純なエリア・カーソルは、同時に複数のオブジェクトに対して選択の対象を定めること(例えば、リスト内の複数アイテムにわたる選択を「ペイントする」こと)を可能とされている。選択の対象が1つでなければならない他のシステムでは、カーソルが最も多く重なっているエレメントに基づいて、オブジェクトのうちの1つが選択される。
図2Aの例の場合、選択の対象が1つでなければならないシステムでは、大きい方のエレメントE8が選択の対象とされる(ユーザーの意図に対して、誤っている場合も多い)が、それは単に、カーソルの表面面積におけるより多くの面積がそのエレメントと重なっているから、即ち、エレメントE8は、最も多くの画素がカーソルにより覆われているからである。
【0019】
[0024] ここで説明するように、そのような他のシステムとは対照的に、ユーザーは何れのエレメントに選択の対象を定めることを意図していると思われるか、ということの考慮に基づいて選択される。一つの実装では、カーソル206のエリアと重なるエレメントの表面面積の割合に基づいて、エレメントE9が選択される。これは
図2においても同じで、
図2Aでは、エレメントE9の重なっている絶対面積はエレメントE8の重なっている絶対面積ほど大きくないが、小さい方のエレメントE9が選択の対象とされる。なぜなら、エレメントE8におけるカーソル206と重なる表面面積の割合と比較して、高い割合のエレメントE9の表面面積がカーソル206と重なっているからである。このように、大きいエレメントの近くにある小さいエレメントは、より多くのターゲティング支援を受け、従って、比較的選択し易い。より特定的な例としては、ページを視覚的に再フォーマットせずに、大きいカテゴリーの見出し及び/又はイメージの近くにある小さいテキストのハイパーリンクや他のオブジェクトを、容易に選択可能である。
【0020】
[0025] しかし、アダプティブ・エリア・カーソル機構110が、特定のエレメントを除外するロジックを含むことができることに、留意されたい。例えば、幾つかのページは、追跡目的などに用いるが、選択されることを意図していない1画素×1画素のエレメント(one pixel by one pixel element)を含む。そのような小さいエレメントは、アダプティブ・エリア・カーソル機構110の選択判定において無視する(フィルタリングして除外する)ことができる。なぜなら、それらの画素は、重なったときにはどのような場合でも100%カバーされるが、選択可能とすることを意図されていないからである。このフィルタリングは、UIオブジェクトの大きさやタイプに基づくこと、またはそのオブジェクトの何らかの他の形態のデータに基づくことができる。
【0021】
[0026] 理解できるように、割合に基づく判定は、小型エレメントを選択の対象とすることにおける支援となり、例えば、各エレメントに関して、割合は、重なる画素の数を、そのエレメントの画素の総数で除算したものと等しい。また、割合の比較は、2より多くのエレメントの場合でも機能する。更には、最大割合を自動的に選択することに代えて、何らかの閾値を用いることもでき、例えば、2つのエレメントに関して、少なくとも60パーセント対40パーセントの重畳割合についての閾値を必要とするようにし、そうでない場合には第2の機構(例えば、最大の重畳画素数)を用いるようにすることができる。何れのそのような閾値も変数に基づいて変化させることができ、変数は、ディスプレイからユーザーまでの距離(これはデプス・カメラのデータを介して知ることができる)、エレメントの大きさ及び/又は離隔距離(例えば、2つの小型のエレメントは、50パーセントに近い閾値を有することができる)、エリア・カーソルの大きさなどである。更に、比較するための最終的な値として、正確な割合を使わないようにすることができ、例えば、何れか又は全ての計算された値を、乗算の係数や加算または減算される値などにより変更することができる。これらの係数の計算は、ローカルで、または入力を受け取る機械で、または例えばインターネットのようなコンピューター・ネットワークを介しての別の機械との通信を通じてリモートで、完了することができる。
【0022】
[0027] 別の構成では、エレメントの大きさは、エレメントの実際の大きさによるものではなく、異なる重み付けをしたものとすることができる。即ち、計算で用いられるエレメントの大きさを、その実際の大きさとせずに、1つ以上の基準に基づいて変更することができる。例えば、エレメントの重み付けされた大きさは、タスクに対してのその相対的重要性に基づくことができる。より特定的な例として、ディスエーブルとされていることが知られている選択ボタン(例えば、クリックに対する処理を行わなかったという情報を戻すことによる)は、重みを与えないようにするか、または少なくとも、近くのイネーブルとされたボタンよりもかなり小さい重みを与えるようにする(例えば、割合を用いたモデルでは、重み付けされた大きさを、その実際の大きさに対して大きくするか、または選択されたと考慮されるために必要とされる割合を、変更する)が、これは、2つのボタンへ向けてカーソルを移動させたユーザーが、イネーブルとされたものを選択することを意図している可能性が高いと予測してのことである。以前のユーザーの挙動(ユーザーのグループの中の観察された所与のユーザーに関して)もまた、相対的重要性を変更するための基準として用いることができ、ユーザーの挙動は、例えば、より多くのユーザーが、リンクのリストにおける人気のあるリンクの隣のリンクよりも、その人気のあるリンクをクリックすることや、推測された順に操作することなどでる。スポンサーのあるリンクにも、より多くの重みを与えることができる。
【0023】
[0028] 更に、エレメントを選択するユーザーの意図に関して、ページ・エレメントの間の関係を、エレメントを重み付けするために用いることができる。例えば、ページのタブの順(ユーザーがタブ・キーをクリックした場合の、リンクが操作された順)を、1つのエレメントを別のエレメントと相対して有効に重み付けするために用いることができる。ユーザーが或るフォームへ記入した場合を考えると、その記入において、ユーザーが、ユーザーの番地(street address)を入力し、そのフォーム内の次のエントリの近くへカーソルを移動させ、ユーザーの市区町村(city)を入力したとする。ここで、ユーザー(または殆どのユーザー)は、既に完了させたエレメントやデータ入力とは関係の無いエレメントなどのような別のエレメントではなく、市区町村のデータの入力エレメントへの移動を意図していることを、観察することができる。従って、市区町村の入力エレメントへ追加の重みを与えることができる(例えば、エレメントを有効に小さくして、その重畳割合値を大きくする)。
【0024】
[0029]
図2Bは別の例を示し、この例では、アダプティブ・エリア・カーソル206は、2つのエレメントの近くにあるが、何れとも重なっていない。この例では、アダプティブ・エリア・カーソル206は、エレメントに重なるまで、そのエリアを大きくさせる(大きい破線の円222で示しており、破線の矢印は、変更の方向を示す)。この例では、重なるエレメントはエレメントE11である。重なっていると考えられるためには、重畳部分が少なくとも或る十分な量となる必要があるようにし、その量は最小の場合で1画素とすることができるが、それより多くすることも可能である。大きさの変更は、カーソル・エリアを拡大または縮小させることにより、及び/又はスクリーンをズームすることにより、達成できることに留意されたい。大きさに対しての制限を適用することができ、例えば、それにより、ユーザーは、エレメントに選択の対象を定めないように(例えば、カーソルを単に重ねたり、外観を変える)、スクリーンの空白領域にカーソルを意図的に配することができる。カーソルの大きさの変更は、負の方向とすることもでき、例えば、カーソルの移動速度及び/又は他の変数に応じてエリアを縮めることができる。カーソルの大きさの変更は、カーソルを単に重ねた場合ではなく、エレメントの実際のユーザー選択に限定することができ、例えば、ユーザーは、アダプティブ・エリア・カーソル206が拡大して最も近くのエレメントの場所を示す前に、カーソルを配置してエレメントを選択するアクション(例えば、マウスのクリックに対応する)を行う必要がある(下にあるページ自体がクリック可能なエレメントであることもあり、従って、変更後の大きさの限定は、少なくとも1つの前景エレメントへ到達するように常に拡大させるのではなく、ユーザーがページをクリックできることを確実にするために用いられ得ることに、留意されたい)。
【0025】
[0030]
図2Cは、アダプティブ・エリア・カーソル206が大きさを大きくすることにより適応しているという点において
図2Bの例と類似の例を示すが、
図2Cでは、カーソル・エリアは、少なくとも2つのエレメントと重なるまで拡大される。この時、割合を用いた選択機構(または他のユーザー意図判定機構)を用いて、何れのエレメントに選択の対象が定められるかを判定することができる。この例では、拡大ステップの前に、或る最小数の画素の重畳部分(これはディスプレイに応じたものとすることができる)を必要とし、それにより、例えば、意味のある割合を計算することができる。従って、
図2Cは、エリア・カーソルの直径が拡大して、エレメントE10の最初の画素へ到達した時点で停止するのではなく、少なくとも、重なっていると考慮される十分な量までエレメントE10の或る広さを覆うことを、表している。
【0026】
[0031] カーソルの大きさを変更する他の方法もあり得る。例えば、一つの方法は、1つのエレメントを完全に囲むまで、エリアを大きく(例えば、円の半径を或る最大量まで)することである。別の方法は、完全包囲未満となる或る所定の割合を用いることであり、例えば、カーソルがエレメントの70パーセントと重なるまで大きく(最大まで)する。
【0027】
[0032] 円形カーソルは対称的に大きくしたり小さくしたりするが、非対称的な拡大も考慮されることに、留意されたい。例えば、円形カーソルは、x軸とy軸とで異なって大きくなることにより楕円になることができ、任意の他の形状のカーソルも同様であり、例えば、矩形は幅を広くしたり高くしたりできるが、必ずしも同じレートにしなくてもよい。カーソルは、ディスプレイ・スクリーンのx次元およびy次元や、プログラム・ウィンドゥのx次元およびy次元(またはそれらの何らかの組み合わせ)に比例して、拡大または縮小することができる。ユーザーがカーソルを主として水平方向に動かしているか又は主として垂直方向に動かしているか、ということもカーソルの大きさを変更する際に考慮することができる。
【0028】
[0033] 更に、アダプティブ・エリア・カーソルは、1つ以上の他の変数や基準に基づいて、大きさを動的に変更することができる。例えば、選択の対象となるUIの密度を、カーソルを大きくする場合の基準とすることができ、例えば、近くにある選択の対象となるエレメントが少ない場合に、カーソルの大きさを大きくする。別の基準はエレメントの大きさとすることができ、例えば、2つのエレメントが、それぞれ容易に選択されるほど十分な大きさの場合には、カーソルを大きくさせない(または僅かに大きくする)ようにする。更に別の基準は、現在または最近のカーソルの動きの速度とすることができ、例えば、ユーザーにより1つの場所へ素早く動かされるカーソルは、その場所へゆっくりと動かされる場合よりも不正確に配される場合が多く、従って、大きさを変更(または通常よりも大きい大きさの変更)をすることができる。例えば、円の半径を、カーソルの動きの現在の速度に基づいて、拡大または縮小(或る最小のところまで)させることができる。ユーザーに速度を落とすことを奨励するように、カーソルを、何らかの別の方法でフェード・アウトまたは視覚的に変更することができる。大きさの変更の決定(例えば、全く大きくしない/どの程度大きくする/1つのオブジェクトに対して大きくする又はそれより多くに対して大きくするか)における別の変数は、使用される入力デバイスのタイプとすることができ、また、知られている場合には、ユーザーからディスプレイまでの距離とすることもできる。ユーザー・パフォーマンス・データも変数とすることができる。
【0029】
[0034]
図3は、アダプティブ・エリア・カーソル・オペレーションを介して補助されるターゲティングをフロー図にまとめており、フロー図は、一つの実装の例示のステップを含み、これはステップ302で開始し、そのステップでは、適切にカーソルを動かすことによりプロセスが開始される。ステップ304は、上述したスクリーン・カーソルの動きの速度、近隣の選択の対象となるUIの密度、タブの順などに基づいて、パラメーター(例えば、エレメントの重み、カーソルの大きさ)を調節するオプションのステップを表す。ステップ306は、カーソルがスクリーンの場所へ動くことを可能にすることを表す。
【0030】
[0035] ステップ308は、カーソルが少なくとも1つのエレメントと重なったかを判定することを表す(このステップは、1画素×1画素のエレメントなどのような選択不可能なエレメントを除外/フィルタリング除去する論理を含み得ることに留意されたい)。
カーソルがいずれのエレメントと重ならない場合であり、且つ、ステップ310において、カーソルの大きさを変更する(例えば、拡大させる)オプションがアクティブである場合には、ステップ312において、停止基準に適合するまでカーソル・エリアを拡大させるが、停止基準は、例えば、1つのエレメントを十分に重なる(
図2B)、2つのエレメントを十分に重なる(
図2C)などである。カーソルが拡大しない場合または適切なエレメント重畳部分が無く拡大制限に該当した場合(ステップ312からの破線)、カーソルは、ユーザーが何れのエレメントに対しても選択の対象を定めなかったかのように配され、ステップ302へ戻り、更なる動きを待つ。
【0031】
[0036] ユーザーが配置することにより、またはカーソル・エリアの変更により、エレメントを直接に重なった場合、ステップ314は、選択の対象とされたエレメントを決定することを表し、これは上記で一般的に説明されており、
図4で更に例示されている。1つより多くの選択の対象とするエレメントを選択することが可能であるが、それは、プログラムがそのようなシナリオを望む場合のことである。実際、アダプティブ・エリア・カーソル機構は、重なったエレメントのランク付けリストや、それぞれに重畳割合値を付随させたエレメントのリストを返すことがでる。
【0032】
[0037]
図4において、ステップ402は、1つより多くのエレメントに重なったかを評価することを表す。1つのエレメントのみに重なった場合、ステップ404において、重なったエレメントが選択される。1つより多くのエレメントに重なった場合、ステップ406において、上述のようにユーザーの意図を判定する。
【0033】
[0038]
図4の例では、各エレメントに対して、ステップ406において、そのエレメントの大きさに対しての、カーソルがエレメントと重なった割合が計算される。上述のように、この大きさは、実際のエレメントの大きさと等しい必要はなく、1つ以上の別の基準に基づいて重み付けした大きさとすることができ、基準は、例えば、エレメントの重要性、タブの順、このユーザー及び/又は他のユーザーの過去の挙動などである。ステップ408では、選択されたターゲット・エレメントとして、最大の重畳割合値を持つものを選ぶ。その結果として、アダプティブ・エリア・カーソルは、そのカーソルと重なる小さいエレメントを、競合する大きいエレメントがより多くの重なっている画素を有しているか否かにかかわらず、その大きいエレメントに勝るものとして選ぶ(選択の対象とし、随意に選択する)。
[0039]
図3に戻ると、ステップ314はまた、選択されたエレメントを何らかの方法で適切なように示すことを表す。例えば、
図3において説明したカーソルを単に重ねるシナリオでは、カーソルは、エレメントが選択されたことを示すために、形状を変更することができる。カーソルはエレメント間に位置することができるので、可視カーソルはまた、システムにより自動的に動かすこと(例えば、選択されたエレメントの中心に対応する位置へジャンプさせる)ができ、それにより、その特定の選ばれたエレメントが選択されたことを更に明確に示せることに、留意されたい。カーソルを単に重ねるシナリオではないシナリオでは、カーソルの動きの停止をステップ308のトリガーとする代わりに、ユーザーによる選択のアクティブなインジケーション(例えば、クリックに対応する)がステップ308およびその先のものをトリガーする。
【0034】
[0040] ステップ316は、選択の対象としたエレメントを選択するためにユーザーが何らかのアクションを行うことを示し、アクションは、例えば、カーソルを単に重ねているエレメントにおいてのマウスのクリックの発生、カーソルを単に重ねている状況の一定時間以上の継続、コンテンツ・メニューの呼び出しなどのようなものである。そうである場合、ステップ318により表すようにアクションが行われ、例えば、エレメントを提供したプログラムに応じて適切に、クリックしたリンクに対応する新たなページのブラウジング、アイテムのハイライト化、ドロップダウン・メニューの提供などを行う。アクションが行われない場合、ステップ320により表すように、システムは、ユーザーがエレメントからカーソルを離すまで、現在の状態にとどまり、それにより、プロセスのターゲティング判定部分は、ユーザーがカーソルの動きを止めるまで、ステップ304および306を通じて待機する。
【0035】
[0041] 理解できるように、選択の対象とすることが難しいエレメントを選択の対象にする際にユーザーを補助するアダプティブ・エリア・カーソルが提供される。その結果として、ユーザーは、小さいUIエレメントを選択するために、そのUIエレメントの直上にカーソルを正確に動かす必要がなくなる。そのためには、円状の領域などのようなエリアを、実際のカーソル位置と関連して(例えば、実際のカーソル位置を中心として)配することができ、それぞれのインタラクティブUIエレメントと関連する重畳領域を決定する(重畳領域の大きさは、それぞれのオブジェクトの視覚表現と一致することも、一致しないこともある)。カーソルのエリアは、近くにあるUIオブジェクトの大きさ及び/又は位置に基づいて変更することができ、例えば、停止基準に適合するまで、エリアを拡大させることができ、停止基準は、例えば、少なくとも1つのインタラクティブ・エレメントに重なること、少なくとも2以上のインタラクティブ・エレメントに重なること、1つのエレメントを取り囲むことなどである。1つのエレメントが選択の対象とされ、これは、ユーザーの選択の意図と一致させることを試みるが、この試みは、例えば、カーソルの大きさと重なるそれぞれのエレメントの大きさ(例えば、表面面積または重み付けされた面積)の割合に基づき、最大の割合を用いて選択を行う。
【0036】
例示の動作環境
[0042] 上記の実装とその代替形態とを、任意の適切な計算デバイスにおいてインプリメントできることが容易に理解でき、計算デバイスは、ゲーム・システム、パーソナル・コンピューター、タブレット、スマートフォンなどを含む。説明を目的として、ゲーム(媒体を含む)・システムを、動作環境の一例として以下で説明する。
【0037】
[0043]
図5は、ゲームおよびメディア・システム500の機能ブロック図であり、より詳細に機能コンポーネントを示す。コンソール501は、中央処理装置(CPU)502とメモリ・コントローラー503とを含み、処理装置が様々なタイプのメモリへアクセスすることを容易にし、メモリは、フラッシュ・リード・オンリー・メモリ(ROM)504、ランダム・アクセス・メモリ(RAM)506、ハード・ディスク・ドライブ508、およびポータブル・メディア・ドライブ509を含む。一つの実装では、CPU502は、レベル1キャッシュ510およびレベル2キャッシュ512を含み、一時的にデータを格納し、それにより、ハード・ドライブに対して行われるメモリ・アクセスのサイクルの数を低減し、それにより処理速度およびスループットを向上させる。
【0038】
[0044] CPU502、メモリ・コントローラー503、および様々なメモリ・デバイスは、1つ以上のバス(図示せず)を介して相互接続される。この実装で用いられるバスの詳細は、ここで説明している対象となる主題事項を理解することと、特には関連しない。しかし、そのようなバスが、様々なバス・アーキテクチャーのうちの任意のものを用いるシリアル・バスおよびパラレル・バス、メモリ・バス、周辺バス、およびプロセッサー・バスまたはローカル・バスのうちの1つ以上のものを含み得ることは、理解されるであろう。例として、そのようなアーキテクチャーは、インダストリー・スタンダード・アーキテクチャー(ISA)・バス、マイクロ・チャンネル・アーキテクチャー(MCA)・バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)・ローカル・バス、およびメザニン・バスとしても知られているペリフェラル・コンポーネント・インターコネクト(PCI)・バスを含むことができる。
【0039】
[0045] 一つの実装では、CPU502、メモリ・コントローラー503、ROM504、およびRAM506は、共通モジュール514上に統合される。この実装では、ROM504は、フラッシュROMとして構成され、ペリフェラル・コンポーネント・インターコネクト(PCI)・バスなど及びROMバスなど(何れも示していない)を介して、メモリ・コントローラー503へ接続される。RAM506は、別個にされたバス(図示せず)を介してメモリ・コントローラー503により独立して制御される複数のダブル・データ・レート・シンクロナス・ダイナミックRAM(DDR SDRAM)モジュールとして構成することができる。示されているハード・ディスク・ドライブ508およびポータブル・メディア・デバイス509は、PCIバスおよびATアタッチメント(ATA)・バス516を介してメモリ・コントローラー503へ接続されている。しかし、別の実装では、別のタイプの専用のデータ・バス構造を代替物において適用することもできる。
【0040】
[0046] 三次元グラフィックス処理装置520とビデオ・エンコーダー522とが、高速および高分解能(例えば、高精細)のグラフィックス処理のためのビデオ処理パイプラインを形成する。データは、グラフィックス処理装置520からデジタル・ビデオ・バス(図示せず)を介してビデオ・エンコーダー522へ搬送される。オーディオ処理装置524とオーディオ・コーデック(コーダー/デコーダー)526とは、様々なデジタル・オーディオ・フォーマットのマルチチャンネル・オーディオ処理のための、対応するオーディオ処理パイプラインを形成する。オーディオ・データは、オーディオ処理装置524とオーディオ・コーデック526との間で通信リンク(図示せず)を介して搬送される。ビデオ処理パイプラインおよびオーディオ処理パイプラインは、データを、テレビジョンまたは他のディスプレイへ送信するために、A/V(オーディオ/ビデオ)ポート528へ出力する。例示の実装では、ビデオおよびオーディオの処理コンポーネント520、522、524、526、および528は、モジュール514へ取り付けられる。
【0041】
[0047]
図5は、USBホスト・コントローラー530とネットワーク・インターフェース(NW I/F)532とを含むモジュール514を示し、これは、有線コンポーネント及び/又はワイヤレス・コンポーネントを含むことができる。示されているUSBホスト・コントローラー530は、バス(例えば、PCIバス)介してCPU502およびメモリ・コントローラー503と通信し、ペリフェラル・コントローラー534のホストとして働く。ネットワーク・インターフェース532は、ネットワーク(例えば、インターネット、ホーム・ネットワークなど)へのアクセスを提供し、様々な多種の有線またはワイヤレスのインターフェース・コンポーネントのうちの任意のものとすることができ、そのインターフェース・コンポーネントは、イーサネット(登録商標)・カードまたはインターフェース・モジュール、モデム、Bluetooth(登録商標)・モジュール、ケーブル・モデムなどを含む。
【0042】
[0048]
図5に示す例示の実装では、コンソール501は4つのゲーム・コントローラー541(1)〜541(4)をサポートするためのコントローラー・サポート・サブアセンブリ540を含む。コントローラー・サポート・サブアセンブリ540は、例えばメディアおよびゲーム・コントローラーなどのような外部制御デバイスとの有線及び/又はワイヤレスのオペレーションをサポートするために必要な任意のハードウェアおよびソフトウェアのコンポーネントを含む。フロント・パネルI/Oサブアセンブリ542は、パワー・ボタン543、イジェクト・ボタン544および他の任意のボタン、および任意のLED(発光ダイオード)や、コンソール501の外面に露出した他のインジケーターの複数の機能を、サポートする。サブアセンブリ540および542は、1つ以上のケーブル・アセンブリ542などを介してモジュール514と通信する。別の実装では、コンソール501は、追加の制御サブアセンブリを含むことができる。例示の実装はまた、信号を送信および受信(例えば、リモート・コントローラー549から)するように構成される光I/Oインターフェース548示し、この信号はモジュール514と通信することができる。
【0043】
[0049] メモリ・ユニット(MU)550(1)および550(2)は、それぞれ、MUポート「A」552(1)およびMUポート「B」552(2)へ接続可能なものとして示されている。それぞれのMU550は、ゲーム、ゲーム・パラメーター、および他のデータを格納することができる追加のストレージを提供する。幾つかの実装では、他のデータは、デジタル・ゲーム・コンポーネント、実行可能ゲーム・アプリケーション、ゲーム・アプリケーションを拡張するための命令セット、およびメディア・ファイルのうちの1つ以上のものを含むことができる。それぞれのMU550は、コンソール501へ挿入されたときに、メモリ・コントローラー503によりアクセスされ得る。
【0044】
[0050] システム電源モジュール554は、ゲーム・システム500のコンポーネントへ電力を提供する。ファン556は、コンソール501内の回路を冷却する。
[0051] マシン命令を含むアプリケーション560は、典型的には、ハード・ディスク・ドライブ508に格納される。コンソール501がパワー・オンされると、アプリケーション560の様々な部分が、CPU502での実行のために、RAM506及び/又はキャッシュ510および512へロードされる。一般に、アプリケーション560は、様々な表示機能を行うための1つ以上のプログラム・モジュールを含むことができ、それらの機能とは、ディスプレイ(例えば、高精細モニター)へ表示するためのダイアログ・スクリーンの制御、ユーザー入力に基づくトランザクションの制御、およびコンソール501と外部接続されたデバイスとの間でのデータの送信および受信の制御などである。
【0045】
[0052] ゲーム・システム500は、システムを、テレビジョン、ビデオ・プロジェクター、または他のディスプレイ・デバイスへ接続することにより、スタンドアローンとして動作させることができる。このスタンドアローン・モードでは、ゲーム・システム500は、1人以上のプレーヤーがゲームを行うことや、例えば映画を見たり音楽を聴いたりすることにより、デジタル・メディアを楽しむことを、可能にする。しかし、ネットワーク・インターフェース532を介して使用可能とされるブロードバンド・コネクティビティと統合されると、ゲーム・システム100は、更に、大きいネットワーク・ゲームのコミュニティやシステムにおける参加コンポーネントとして動作させることができる。
【0046】
まとめ
[0053] 本発明は、様々な変更や代替の構成が可能であるが、その特定の例示の実施形態が図面に示され、上記で詳細に説明された。しかし、本発明を、開示した特定の形態に限定することは意図しておらず、逆に、本発明は、本発明の精神内および範囲内にある全ての変更物、代替構成、および等価物をカバーすると理解すべきである。