説明

人間とコンピューターのインターフェースのためのインタラクションの処理

ユーザーと画面上のオブジェクトとの間のインタラクションを制御するために画面上のグラフィカルなハンドルを提供するシステムが開示される。ハンドルは、例えばテキスト又はグラフィカルなナビゲーションメニュー内をスクロールするなど、ユーザーがオブジェクトに対してどのようなアクションを実行することができるかを定義する。ハンドルとのインタラクションのプロセスを通じてユーザーを導くためにアフォーダンスが提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人間とコンピューターのインターフェースのためのインタラクションの処理に関する。
【背景技術】
【0002】
[0001]過去、コンピューターゲームやマルチメディアアプリケーションなどのコンピューティングアプリケーションは、コントローラー、リモコン、キーボード、マウスなどを使用して、ユーザーがゲームのキャラクターやアプリケーションの他の側面を操作できるようにしていた。最近では、コンピューターゲームやマルチメディアアプリケーションは、人間とコンピューターのインターフェース(「HCI」)を提供するために、カメラ及びソフトウェアのジェスチャー認識エンジンを採用し始めている。HCIによって、ユーザーのジェスチャーが検出されて解釈され、ゲームのキャラクターやアプリケーションの他の側面を制御するために使用される。
【0003】
[0002]HCIシステムでは、手のジェスチャーが、しばしば、ゲームや他のアプリケーションとのインタラクションを制御するために使用される。既存のジェスチャー認識システムは、一般に、位置ベースのポインティングジェスチャー又はモーションベースのシンボリックなジェスチャーのいずれかに注目する。ポインティングジェスチャーを使用して、ユーザーは、ユーザーの手に従う画面上のカーソルに指示をする。
【発明の概要】
【発明が解決しようとする課題】
【0004】
そのようなジェスチャー認識システムは、手の動きとカーソル位置との間のジッター及び遅延(又は遅延時間)、並びにユーザーインターフェース(UI)の密度の制限を含む、様々な欠点を有する。モーションベースのシンボリックジェスチャーによると、ユーザーの動きが解釈され、所定のジェスチャーに一致する場合には、いくつかの関連付けられるアクションがとられる。モーションベースのシステムは、誤検出、ジェスチャーの不一致並びにアフォーダンス及びフィードバックを即座に提供できないこと(特定のジェスチャーが最初に認識されなければならない)などを含む、いくつかの欠点を有する。
【課題を解決するための手段】
【0005】
[0003]一般に、本技術は、ユーザーと画面上のオブジェクトとの間のインタラクションを制御する画面上のグラフィカルなハンドルを使用するシステムに関連する。実施例において、ハンドルは所与のオブジェクトと関連してディスプレイ上に表示されるUIオブジェクトである。ハンドルは、例えばテキストの又はグラフィカルなナビゲーションメニューをスクロールするなど、ユーザーがオブジェクトに対してどのようなアクションを実行することができかを規定する。ユーザーは、ハンドルを使って、例えば表示画面上でハンドルを上下左右に動かすといったようにハンドルを操作するジェスチャーを実行する。この操作はオブジェクトに対して実行される関連付けられるアクションをもたらす。ハンドルとのインタラクションのプロセスを通じてユーザーを導くアフォーダンスが提供される。
【0006】
[0004]実施例において、本技術は、ユーザーの位置をキャプチャーして人間とコンピューターのインターフェースを提供するために、キャプチャーデバイスに結合されたコンピューティング環境に関連する。このシステムは、(a)ユーザーインターフェースの領域に関連付けられるハンドルを生成するステップ、(b)ステップ(a)で生成されたハンドルとのユーザーの係合(engagement)を検出するステップ、(c)ユーザーによるジェスチャーの指示を受信するステップ、及び(d)ステップ(c)に応答してユーザーインターフェースの領域上でアクションを実行するステップを含む、人間とコンピューターのインターフェースのための表示領域とのユーザーのインタラクションを容易にする方法を実行する。
【0007】
[0005]さらなる実施例は、ユーザーの位置をキャプチャーして人間とコンピューターのインターフェースを提供するキャプチャーデバイスに結合された、コンピューティング環境のためのプロセッサー読み取り可能な記憶媒体に関し、プロセッサー読み取り可能な記憶媒体は、人間とコンピューターのインターフェースのためにディスプレイの動作領域とのユーザーのインタラクションを容易にする方法を実行するようにプロセッサーをプログラミングする。この実施例は、(a)ユーザーインターフェースの領域に関連付けられるグラフィカルなハンドルをディスプレイ上に表示することであって、当該グラフィカルなハンドルがアクション領域と係合するための明確な係合点(engagement point)を提供し、当該グラフィカルなハンドルが、ユーザーによる所定のジェスチャーが受信されたときにユーザーがアクション領域とどのようにインタラクトすることができるかを規定する、グラフィカルなハンドルを表示すること、(b)ユーザーの位置を検出した結果として、ユーザーがハンドルの方へ進んでいるという指示を受信すること、(c)ユーザーがハンドルを突き止めた場合にハンドルとの係合を確立すること、(d)ユーザーによるジェスチャーの指示を受信すること、及び(e)ステップ(d)で受信されたジェスチャーの指示がステップ(a)の所定のジェスチャーと一致する場合にグラフィカルなハンドルによって規定されるディスプレイのアクション領域に対してアクションを実行することを含む。
【0008】
[0006]さらなる実施例は人間とコンピューターのインターフェースに関連し、アクションを実行すること及びアクションを実行させることのうちの少なくとも1つを可能にする、ディスプレイ上のアクション領域、ディスプレイ上に表示されてアクション領域に関連付けられるハンドルであって、アクション領域との明確な係合点を提供してユーザーがアクション領域とどのようにインタラクトすることができるかを規定する、ハンドル、並びに、ユーザーがハンドルをどのように操作することができるかを規定するためにハンドルに関連付けられる、ディスプレイ上に表示されるレールを含む。
【図面の簡単な説明】
【0009】
【図1】[0007]目標の認識、分析及び追跡システムの例示的な実施例を、当該システムとインタラクトするユーザーとともに示す。
【図2】[0008]本発明の実施例による、ハンドルを含むサンプル画面表示を示す。
【図3】[0009]目標の認識、分析及び追跡システムで使用することができるキャプチャーデバイスの例示的な実施例を示す。
【図4A】[0010]本発明の目標認識、分析及び追跡システムで使用することができるコンピューティング環境の例示的な実施例を示す。
【図4B】[0011]本発明の目標認識、分析及び追跡システムで使用することができるコンピューティング環境の別の例示的な実施例を示す。
【図5】[0012]本発明の実施例の動作を示すフローチャートである。
【図6】[0013]カーソルを引き付けるハンドルの動作のフローチャートである。
【図7】[0014]ジェスチャーを認識するための本発明のシステムの動作のフローチャートである。
【図8】[0015]本発明の実施例による、ハンドル及びレールを含むサンプル画面表示を示す。
【図9】[0016]本発明のさらなる実施例による、ハンドル及びレールを含むサンプル画面表示を示す。
【発明を実施するための形態】
【0010】
[0017]本発明の実施例は、図1−9を参照して説明され、一般に、ユーザーと画面上のオブジェクトとの間のインタラクションを制御するために画面上のハンドルを使用する、ジェスチャー認識及びインタラクションシステムに関連する。実施例において、ハンドルは、人間とコンピューターのインターフェースとインタラクトし、ナビゲートし、制御するためのUIオブジェクトである。実施例において、ハンドルは、UI上のオブジェクトなどの、アクション領域との明示的な係合点(エンゲージメントポイント)を提供し、ユーザーがそのオブジェクトとどのようにインタラクトすることができるかについてアフォーダンスを提供する。ユーザーが一旦ハンドルと係合すると、ユーザーは、例えば、ハンドルを動かしたり、そのハンドルに関連付けられる1つ又は複数のジェスチャーを行ったりすることにより、ハンドルを操作することができる。
【0011】
[0018]図1−3を最初に参照すると、本発明を実施するためのハードウェアは、ユーザー18などの人間の目標を認識し、分析し、及び/又は追跡するために使用することができる目標認識、分析及び追跡システム10を含む。目標認識、分析及び追跡システム10の実施例は、ゲームや他のアプリケーションを実行するためのコンピューティング環境12、並びに、ゲームや他のアプリケーションからの音声及び視覚表現を提供する視聴覚装置16を含む。システム10は、さらに、ゲームや他のアプリケーションを制御するためにコンピューティング環境12が受信し、解釈し、使用する、位置及びユーザー18によって実行される動きをキャプチャーするキャプチャーデバイス20を含む。これらのコンポーネントの各々は以下により詳細に説明される。
【0012】
[0019]図1に示すように、例示的な実施例では、コンピューティング環境12上で実行されるアプリケーションは、ユーザー18にUI19を提示してもよい。UIは、ゲームアプリケーションやプラットフォームの一部であってもよく、実施例においては、ゲームアプリケーションやプラットフォームの選択された領域にアクセスするためのナビゲーションメニューであってもよい。コンピューティング環境12は、UI上に1つ又は複数のハンドル21を生成し、各ハンドルはUI19上のアクション領域23に結び付けられるかその他の方法で関連付けられる。各ハンドルは、一般に、以下により詳細に説明されるように、関連付けられるアクション領域に関して動作を制御するための、画面に表示されるグラフィカルなオブジェクトである。
【0013】
[0020]実施例において、ハンドル21は、ディスプレイ上の円又は3次元の球体の形状であってもよいが、当業者であれば、ハンドルが代替的な実施例において様々な他の形状のうちの任意のものであってもよいことを理解するであろう。以下に説明するように、ハンドル21の存在及び外観は、ユーザーが存在するかどうかに依存して、及びユーザーがハンドルを使用しているかどうかに依存して、変化してもよい。実施例において、ハンドルの形状は、すべてのアクション領域23と同一であってもよいが、さらなる実施例においては異なるアクション領域が異なる形状のハンドルを有すると考えられる。図1は単一のハンドル21を示すが、後述するように、UI19は、各々が異なるアクション領域23に関連付けられる複数のハンドル21を含んでもよい。
【0014】
[0021]本明細書中で使用される「アクション領域」は、それに関連付けられるハンドルを有し得るUI19上の任意の領域であり、そのハンドルの操作のときにアクションを実行することができるか、又はハンドルの操作のときにアクションを実行させることができる。実施例において、アクション領域23は、ナビゲーションメニューの一部として表示されるテキスト又はグラフィカルオブジェクトであってもよい。しかし、実施例において、アクション領域23は、ナビゲーションメニューの一部である必要はなく、特定の表示されるグラフィカルオブジェクトである必要はない。アクション領域23は代替的にUIの領域であってもよく、それは、ハンドルを介してアクセスされると、その領域において又は一般にUI上で、いくつかのアクションを実行させる。
【0015】
[0022]アクション領域がディスプレイ上の特定のグラフィックオブジェクトである場合、そのグラフィカルオブジェクトに関連付けられるハンドル21は、グラフィカルオブジェクト上に表示されてもよいし、又は、グラフィカルオブジェクトの周囲の任意の位置において、グラフィカルオブジェクトに隣接して表示されてもよい。さらなる実施例では、ハンドル21は、特定のオブジェクトにマッピングされなくてもよい。この実施例では、アクション領域23は、多くのグラフィカルオブジェクトを含む、UI19上の領域であってもよい。そのアクション領域に関連付けられるハンドル21が操作される場合、アクションがアクション領域23内のすべてのオブジェクトに実行されてもよい。さらなる実施例では、ハンドル21は、グラフィカルオブジェクトに統合されてもよい。このような実施例では、オブジェクトとは別個のハンドル21についての視覚的な表示はない。そうではなく、オブジェクトが把握されるか又は選択されると、当該オブジェクトはハンドル21として機能し、ハンドルに関連付けられるアクションが実行される。これらのアクションは以下でより詳細に説明される。
【0016】
[0023]インターフェース19は、ユーザーの動きを介して制御されるカーソル25をさらに含んでもよい。特に、以下で説明するように、キャプチャーデバイス20はユーザーが指しているところをキャプチャーし、コンピューティング環境は、この画像データを解釈して、視聴覚装置16上の決定されたスポットにおいてカーソル25を表示する。カーソルは、ユーザーが視聴覚装置16上の具体的にどこを指しているかについて閉ループフィードバックをユーザーに提供することができる。以下に説明するように、これは視聴覚装置16上のハンドルの選択を容易にする。同様に、各ハンドルは、カーソルがハンドルに対して十分近い時にハンドルへとカーソルを引き付けるために、磁場に似た引力(attractive force)を有してもよい。この特徴は以下により詳細に説明される。カーソル25は、ユーザーが視界に存在する場合にのみ、又はユーザーがディスプレイ上の特定のオブジェクトを追跡している場合にのみ、常に可視であってもよい。
【0017】
[0024]ハンドル21の1つの目的は、ユーザーがアクション領域23とインタラクトすることができる明示的な係合点を提供することである。動作において、ユーザーは、ハンドル21へとカーソル25を導き、ハンドルにくっつくようにジェスチャーを実行する。ユーザーが動作をする3次元実空間は、z軸がキャプチャーデバイス20から水平方向にまっすぐに延びる軸であり、x軸がz軸に対して垂直な水平軸であり、y軸がz軸に対して垂直な垂直軸である座標系として定義することができる。この座標系を考えると、ユーザーは、ハンドルの上にカーソルを配置するようにxy平面において自分の手を動かし、次いで、キャプチャーデバイスに向かってz軸に沿ってその手を動かすことによってハンドルにくっつくことができる。カーソルがハンドルの上に配置される場合、コンピューティング環境12は、内側に向かうユーザーの手の内側の動き(すなわち、z軸に沿って、画面上のハンドル21により近づく)を、ユーザーがハンドルにくっつこうとしているものとして解釈し、コンピューティング環境はこのアクションを実行する。実施例において、画面上のxyの動きは湾曲した座標空間で達成される。つまり、ユーザーの動きはいまだ主にx方向及びy方向であるが、ある大きさのz方向の曲がり(warping)は、人間の腕が従う湾曲した経路の原因となるように考慮される。
【0018】
[0025]様々な係合の方法をもつ異なる種類のハンドルが存在する。第1のハンドルは片手ハンドルであってもよい。これらの種類のハンドルはユーザーの右手又は左手の両方ではなくいずれかによって係合することができる。第2の種類のハンドルはデュアルハンドル(dual-handed handle)であってもよい。これらの種類のハンドルは、ユーザーの右手又は左手によって係合することができる。デュアルハンドルの別の例は、ハンドルがユーザーにとって3D空間でのより自然な係合のために配置することができるように、右手及び左手のバージョン用に作成され、アクション領域の左又は右に配置することができる。第3の種類のハンドルは両手ペアのハンドルである。これらのハンドルは、インタラクションを達成するのにユーザーの両手を必要とする。これらのインタラクションは、以下に説明するようにより複雑なインタラクションをどのように達成するかをユーザーに通知するために、視覚的なアフォーダンス、及び、実施例において、聴覚アフォーダンスを利用する。
【0019】
[0026]図1は片手ハンドル21の例を含む。図2はハンドルの追加の例を含むディスプレイの図である。図2においてUI19の上部に向かうハンドル21はアクション領域23に関連付けられる片手ハンドル21であり、この例ではテキストのナビゲーションメニューである。UI19の底部に向かう2つのハンドル21は、アクション領域23に関連付けられるデュアルハンドルの例である。図2の例において、アクション領域23は、特定のソフトウェアのタイトルを示す1つ又は複数のグラフィカルナビゲーションオブジェクト(「スロット」とも呼ばれる)であって、スロットの下型のコーナーにおいてユーザーが両方のハンドル21を選択することによって、いくつかのアクションを実行することができる。
【0020】
[0027]異なるハンドル21はまた、ユーザーによって係合されると異なる動作をすることができてもよい。たとえば、いくつかのハンドルは単一の方向に(例えば、画面のx軸又はy軸に沿って)移動するように制約される。他のハンドルがx軸及びy軸に沿った2軸の移動のために用意される。さらなるハンドルが、x−y平面の周りでの多方向運動のために用意される。さらなるハンドルを、排他的に又は多次元運動の一部として、z軸に沿って移動させることができる。各ハンドルは、ハンドルを操作する方法を明確にユーザーに示すためのアフォーダンスを含んでもよい。たとえば、ユーザーがハンドル21に近づくと、本明細書において「レール」と呼ばれるグラフィカルな指示がハンドルに隣接したディスプレイ上に現れる。当該レールは、関連付けられるアクション領域23上でいくつかのアクションを達成するためにハンドル21を動かすことができる方向を示す。レールは以下でより詳細に説明されるが、図1はハンドル21がx軸に沿って(図1における左側へ)移動させることができることを示すレール27を示す。示されるように、レールは、ユーザーがハンドル21に近づくか又はハンドル21と係合するときに、現れるにすぎない。そうでない場合は、レールは、ディスプレイを乱雑にしないようにするために、画面に表示されない。しかし、代替的な実施例において、ハンドルに関連付けられる任意のレールは、そのハンドルが見えているときは常に表示されてもよい。
【0021】
[0028]さらなる実施例において、カーソル25もまた、可能性のあるハンドル操作についてフィードバック及び指示(cues)を提供してもよい。つまり、カーソルの位置は、レールを表示させ、又は、ハンドル自体に加えて操作のフィードバックを提供してもよい。
【0022】
[0029]図3は、目標認識、分析及び追跡システム10で使用することができるキャプチャーデバイス20の例示的な実施例を示す。本発明で使用するキャプチャーデバイスに関連するさらなる詳細については、その全体が参照により本明細書に組み込まれる「Device For Identifying And Tracking Multiple Humans Over Time」と題する同時係属の特許出願第12/475,308号に記載されている。しかし、例示的な実施例では、キャプチャーデバイス20は、例えば、飛行時間型、構造化された光、ステレオイメージ等を含む任意の適切な技術による奥行き値(深度値、depth value)を含み得る奥行き画像を有する動画をキャプチャーするように構成することができる。1つの実施例によれば、キャプチャーデバイス20は、計算された深さ情報を、「Z層」、又は視線(line of sight)に沿ってデプスカメラ(depth camera)から延在する、Z軸に垂直な層へと整理することができる。
【0023】
[0030]図3に示すように、キャプチャーデバイス20は画像カメラコンポーネント22を含んでもよい。例示的な実施例によれば、画像カメラコンポーネント22は、シーンの奥行き画像をキャプチャーすることができるデプスカメラであってもよい。奥行き画像はキャプチャーされたシーンの2次元の(2−D)画素領域を含んでもよく、2次元の(2−D)画素領域内の各ピクセルは、カメラからのキャプチャーしたシーンにおける物体の、例えば、センチメートル、ミリメートルなどの単位の長さを表すことができる。
【0024】
[0031]図3に示すように、例示的な実施例によれば、画像カメラコンポーネント22は、シーンの奥行き画像をキャプチャーするために使用される、IR光コンポーネント24、3次元(3−D)カメラ26、及びRGBカメラ28を含んでもよい。例えば、飛行時間分析において、キャプチャーデバイス20のIR光コンポーネント24は、シーンに赤外光を発することができ、その後、例えば3次元カメラ26及び/又はRGBカメラ28を使用してシーン内の1つ又は複数の目標及び物体の表面からの後方散乱光を検出するためにセンサー(図示せず)を使用することができる。
【0025】
[0032]別の実施例によれば、キャプチャーデバイス20は、奥行き情報を生成するために分解することができる視覚的なステレオデータを取得するために、異なる角度からシーンを見ることができる2つ以上の物理的に分離されたカメラを含んでもよい。
【0026】
[0033]キャプチャーデバイス20はさらにマイク30を含んでもよい。マイク30は、音声を受信して電気信号に変換することができるトランスデューサーやセンサーを含んでもよい。1つの実施例によれば、マイク30は、目標認識、分析及び追跡システム10におけるキャプチャーデバイス20とコンピューティング環境12との間のフィードバックを減らすために使用することができる。さらに、マイク30は、コンピューティング環境12により実行され得るゲームアプリケーション、ゲーム以外のアプリケーションなどのアプリケーションを制御するためにユーザーによって提供され得る音声信号を受信するために使用することができる。
【0027】
[0034]例示的な実施例において、キャプチャーデバイス20は、画像カメラコンポーネント22と動作可能に通信するプロセッサー32をさらに含んでもよい。プロセッサー32は、奥行き画像を受信し、適切な目標が奥行き画像に含まれるかどうかを決定し、当該適切な目標を当該目標の骨格表現もしくはモデルに変換するための命令又は他の適切な命令を実行することができる、標準化されたプロセッサー、専用プロセッサー、マイクロプロセッサーなどを含んでもよい。
【0028】
[0035]キャプチャーデバイス20はさらに、プロセッサー32により実行することができる命令、3−DカメラやRGBカメラで撮影した画像のイメージもしくはフレーム、又は任意の他の適切な情報、画像などを格納することができるメモリーコンポーネント34を含んでもよい。例示的な実施例によれば、メモリーコンポーネント34は、ランダムアクセスメモリー(RAM)、読み取り専用メモリー(ROM)、キャッシュ、フラッシュメモリー、ハードディスク、又は任意の他の適切なストレージコンポーネントを含んでもよい。図3に示すように、1つの実施例では、メモリーコンポーネント34は、画像カメラコンポーネント22及びプロセッサー32と通信する別個のコンポーネントであってもよい。別の実施例によれば、メモリーコンポーネント34は、プロセッサー32及び/又は画像カメラコンポーネント22に統合することができる。
【0029】
[0036]図3に示すように、キャプチャーデバイス20は、通信リンク36を介してコンピューティング環境12と通信することができる。通信リンク36は、例えば、USB接続、FireWire(商標)接続、イーサネット(商標)ケーブル接続等を含む有線接続及び/又は無線802.11b、g、aもしくはn接続などの無線接続であってもよい。1つの実施例によれば、コンピューティング環境12は、例えば通信リンク36を介してシーンをいつキャプチャーするかを決定するために使用することができるキャプチャーデバイス20にクロックを提供してもよい。
【0030】
[0037]さらに、キャプチャーデバイス20は、例えば3−Dカメラ26及び/又はRGBカメラ28によって取得された奥行き情報及び画像、並びにキャプチャーデバイス20によって生成することができる骨格モデルを、通信リンク36を介してコンピューティング環境12に提供してもよい。キャプチャーデバイス20によって検出された目標又は物体が人間の目標に対応するかどうか決定するための様々な既知の技術が存在する。骨格のマッピング技術は、そのユーザーの骨格、手、手首、肘、膝、鼻、足首、肩の関節、及び骨盤が背骨と接する部分上の、さまざまなスポットを決定するために使用することができる。他の技術は、画像を人の体のモデル表現へと変換し、画像を人のメッシュモデル表現へと変換することを含む。
【0031】
[0038]骨格モデルは、例えばユーザーが指している場所及びユーザーが行っている動作を識別するためにコンピューティング環境が骨格モデルを追跡することができるように、コンピューティング環境12に対して提供することができる。以下に説明するように、ユーザーは、ハンドル21とのインタラクション及びある所定のジェスチャーの実行を介して、UI19とインタラクトすることができる。コンピューティング環境12は、さらに、ユーザー18からのこれらの所定のジェスチャーを認識するジェスチャー認識エンジン190を含んでもよい。ジェスチャー認識エンジン190のさらなる詳細は以下に示される。
【0032】
[0039]図4Aは、ハンドル21とのユーザーインタラクションを解釈し、1つ又は複数のジェスチャーを認識するために使用することができるコンピューティング環境の例示的な実施例を示す。図1及び3に関して上述したコンピューティング環境12などのコンピューティング環境は、ゲーム機などのマルチメディアコンソール100であってもよい。図4Aに示すように、マルチメディアコンソール100は、レベル1キャッシュ102、レベル2キャッシュ104、及びフラッシュROM106を有する中央処理装置(CPU)101を有する。レベル1キャッシュ102及びレベル2キャッシュ104は、一時的にデータを格納し、したがってメモリーアクセスサイクル数を減らし、それによって処理速度及びスループットを向上させる。CPU101は、複数のコアを有してもよく、したがって、追加のレベル1キャッシュ102及びレベル2キャッシュ104を有してもよい。フラッシュROM106は、マルチメディアコンソール100の電源がオンになったときにブートプロセスの初期段階中にロードされる実行可能コードを格納してもよい。
【0033】
[0040]グラフィックスプロセッシングユニット(GPU)108及びビデオエンコーダー/ビデオコーデック(コーダー/デコーダー)114は、高速で高解像度のグラフィックス処理のための動画処理パイプラインを形成する。データはバスを介してGPU108からのビデオエンコーダ/ビデオコーデック114に運ばれる。動画処理パイプラインは、テレビや他のディスプレイへの送信のために、A/V(オーディオ/ビデオ)ポート140にデータを出力する。メモリーコントローラー110は、RAMなどの(しかしこれに限定されない)様々な種類のメモリー112へのプロセッサーのアクセスを容易にするために、GPU108に接続される。
【0034】
[0041]マルチメディアコンソール100は、好ましくはモジュール118上に実装される、I/Oコントローラー120、システム管理コントローラー122、音声処理部123、ネットワークインターフェースコントローラー124、第1のUSBホストコントローラー126、第2のUSBホストコントローラー128及びフロントパネルI/Oサブアセンブリー130を含む。USBコントローラー126及び128は、周辺コントローラー142(1)−142(2)、ワイヤレスアダプター148、及び外部メモリーデバイス146(例えば、フラッシュメモリー、外付けCD/DVD−ROMドライブ、取り外し可能な媒体など)のホストとして機能する。ネットワークインターフェース124及び/又はワイヤレスアダプター148は、ネットワーク(例えば、インターネット、ホームネットワークなど)へのアクセスを提供し、イーサネットカード、モデム、ブルートゥース(登録商標)モジュール、ケーブルモデムなどを含むさまざまな有線又は無線アダプターコンポーネントのうちのいずれであってもよい。
【0035】
[0042]システムメモリー143は、ブートプロセス中にロードされるアプリケーションデータを格納するために提供される。メディアドライブ144が提供され、メディアドライブ144は、DVD/CDドライブ、ハードドライブ、又は他の取り外し可能なメディアドライブなどを含んでもよい。メディアドライブ144はマルチメディアコンソール100の内部にあってもよいし外部にあってもよい。アプリケーションデータは、マルチメディアコンソール100による実行、再生などのために、メディアドライブ144を介してアクセスすることができる。メディアドライブ144は、シリアルATAバスや他の高速接続(例えば、IEEE1394)などのバスを介してI/Oコントローラー120に接続される。
【0036】
[0043]システム管理コントローラー122は、マルチメディアコンソール100の利用可能性を保証することに関連する様々なサービス機能を提供する。音声処理部123及び音声コーデック132は、高忠実度のステレオ処理を備えた対応する音声処理パイプラインを形成する。音声データは通信リンクを介して音声処理部123及びオーディオコーデック132の間で運ばれる。音声処理パイプラインは、オーディオ機能を有する外部のオーディオプレーヤーやデバイスによる再生のために、A/Vポート140にデータを出力する。
【0037】
[0044]フロントパネルI/Oアセンブリー130は、電源ボタン150及び取り出しボタン152のほか、マルチメディアコンソール100の外側表面に露出している任意のLED(発光ダイオード)や他のインジケーターの機能をサポートする。システムの電源モジュール136はマルチメディアコンソール100のコンポーネントに電力を供給する。ファン138はマルチメディアコンソール100内の回路を冷却する。
【0038】
[0045]マルチメディアコンソール100内のCPU101、GPU108、メモリーコントローラー110、及び様々な他のコンポーネントは、様々なバスアーキテクチャーのうちのいずれかを使用する、シリアル及びパラレルバス、メモリーバス、周辺バス、及びプロセッサー又はローカルバスを含む、1又は複数のバスを介して相互接続される。例として、このようなアーキテクチャーは、周辺コンポーネント相互接続(PCI)バス、PCI−Expressバスなどを含んでもよい。
【0039】
[0046]マルチメディアコンソール100の電源がオンになると、アプリケーションデータがシステムメモリー143からメモリー112及び/又はキャッシュ102、104へとロードされて、CPU101上で実行することができる。アプリケーションは、マルチメディアコンソール100上で利用できるさまざまなメディアタイプにナビゲートするときに一貫したユーザーエクスペリエンスを提供する、グラフィカルユーザーインターフェースを提示してもよい。動作において、アプリケーション及び/又はメディアドライブ144内に含まれる他のメディアは、マルチメディアコンソール100に追加の機能を提供するために、メディアドライブ144から起動又は再生することができる。
【0040】
[0047]マルチメディアコンソール100は、単にテレビや他のディスプレイにシステムを接続することにより、スタンドアロンのシステムとして動作させることができる。このスタンドアロンモードでは、マルチメディアコンソール100は、1人又は複数のユーザーがシステムとインタラクトしたり、映画を見たり、音楽を聴いたりすることを可能にする。しかし、ネットワークインターフェース124又はワイヤレスアダプター148を介して利用可能となるブロードバンド接続の統合によって、マルチメディアコンソール100は、より大規模なネットワークコミュニティの参加者としてさらに動作させることができる。
【0041】
[0048]マルチメディアコンソール100の電源がオンになると、ある量のハードウェアリソースが、マルチメディアコンソールのオペレーティングシステムによるシステム使用のために用意される。これらのリソースは、メモリー(例えば、16MB)、CPU及びGPUのサイクル(例えば、5%)、ネットワーク帯域幅(例えば、8kbs)などの予約を含んでもよい。これらのリソースはシステムのブート時に予約されるので、予約されたリソースはアプリケーションからは見えない。
【0042】
[0049]特に、メモリー予約は、好ましくは、起動カーネル、並行システムアプリケーション及びドライバを格納するのに十分に大きい。CPU予約は、予約されたCPU使用がシステムアプリケーションによって使用されていない場合にアイドルスレッドが未使用のサイクルを消費するよう、好ましくは一定である。
【0043】
[0050]GPUの予約に関して、システムアプリケーションによって生成される軽量の(lightweight)メッセージ(例えば、ポップアップ)が、オーバーレイにポップアップをレンダリングするコードをスケジューリングするためにGPU割り込みを使用することによって、表示される。オーバーレイのために必要なメモリーの量はオーバーレイ領域のサイズに依存し、オーバーレイは好ましくは画面の解像度に対応する。完全なユーザーインターフェースが並行システムアプリケーションによって使用される場合には、アプリケーションの解像度から独立した解像度を使用することが好ましい。スケーラーは、周波数を変更したりテレビの再同期を引き起こす必要性が排除されるように、この解像度を設定するために使用することができる。
【0044】
[0051]マルチメディアコンソール100がブートしてシステムリソースが予約された後に、並行システムアプリケーションがシステムの機能を提供するために実行される。システムの機能は、上述した予約システムリソース内で実行されるシステムアプリケーションのセットへとカプセル化される。オペレーティングシステムのカーネルは、ゲームアプリケーションスレッドに対してシステムアプリケーションのスレッドを識別する。システムアプリケーションは、好ましくは、アプリケーションに対して一貫したシステムリソース表示(view)を提供するために、所定の時間や間隔で、CPU101上で実行するようにスケジューリングされる。スケジューリングは、コンソール上で実行するゲームアプリケーションのキャッシュの中断を最小限にする。
【0045】
[0052]並行システムアプリケーションが音声を必要とする場合は、音声処理は、時間感度(time sensitivity)に起因して、ゲームアプリケーションに対して非同期的にスケジューリングされる。システムアプリケーションがアクティブなとき、マルチメディアコンソールアプリケーションマネージャー(後述)は、ゲームアプリケーションの音声レベルを制御する(例えば、ミュート、減衰)。
【0046】
[0053]入力装置(例えば、コントローラー142(1)及び142(2))はゲームアプリケーションとシステムアプリケーションによって共有される。入力装置は予約されるリソースではなく、各々がデバイスに注目するように、システムアプリケーションとゲームアプリケーションとの間で切り替えられるものである。アプリケーションマネージャーは、好ましくは、ゲームアプリケーションの知識なしに入力ストリームの切り替えを制御し、ドライバーはフォーカススイッチ(focus switch)に関する状態情報を保持する。カメラ26、28及びキャプチャーデバイス20は、コンソール100のための追加の入力装置を定義してもよい。
【0047】
[0054]図4Bは、ハンドル21とのユーザーインタラクションを解釈してシステム10内の1つ又は複数のジェスチャーを解釈するために使用される図1及び3に示すコンピューティング環境12であってもよいコンピューティング環境220の別の例示的な実施例を示す。コンピューティングシステム環境220は、適切なコンピューティング環境の一例に過ぎず、本開示の主題の使用又は機能の範囲について何ら限定を示唆するものではない。コンピューティング環境220は、例示的な動作環境220に示すコンポーネントのうちのいずれか又は組み合わせに関連する依存関係も要件も有するものとして解釈されるべきではない。いくつかの実施例では、様々な図示されたコンピューティング要素は、本発明の特定の側面を例示化するように構成される回路を含んでもよい。例えば、本開示で使用される回路という用語は、ファームウェア又はスイッチによって機能を実行するように構成される専門のハードウェアコンポーネントを含んでもよい。他の例示的な実施例では、回路という用語は、機能を実行するように動作可能なロジックを具体化するソフトウェア命令によって構成される汎用処理装置、メモリーなどを含んでもよい。回路がハードウェアとソフトウェアの組み合わせを含む例示的な実施例では、実施者がロジックを具体化するソースコードを書いてもよいし、ソースコードは汎用処理装置によって処理できる機械読み取り可能なコードへとコンパイルされてもよい。当業者は、最先端の技術がハードウェア、ソフトウェア、又はハードウェア/ソフトウェアの組み合わせの間にほとんど差がないところにまで進化したことを理解できるので、特定の機能を達成するためのハードウェアとソフトウェアの選択は実装者に任される設計上の選択である。より具体的には、当業者は、ソフトウェアプロセスを等価なハードウェア構造に変換することができ、ハードウェア構造が等価なソフトウェアプロセスに変換することができることを理解することができる。したがって、ソフトウェア実施対ハードウェア実施の選択は、設計上の選択の1つであって、実装者に委ねられる。
【0048】
[0055]図4Bにおいて、コンピューティング環境220は、通常、様々なコンピューター読み取り可能な媒体を含むコンピューター241を含む。コンピューター読み取り可能な媒体は、コンピューター241によってアクセスすることができる任意の利用可能な媒体とすることができ、揮発性及び不揮発性の媒体、取り外し可能な及び取り外し不能な媒体の両方を含む。システムメモリー222は、ROM223及びRAM260などの揮発性及び/又は不揮発性メモリーの形式のコンピューター記憶媒体を含む。起動中などにコンピューター241内の要素間で情報を転送することを助ける基本ルーチンを含む基本入出力システム224(BIOS)は、通常はROM223に格納される。RAM260は、通常、すぐにアクセスすることができ及び/又は現在処理装置259によって動作されているデータ及び/又はプログラムモジュールを含む。限定ではなく例として、図4Bは、オペレーティングシステム225、アプリケーションプログラム226、他のプログラムモジュール227、及びプログラムデータ228を示す。
【0049】
[0056]コンピューター241はまた、他の取り外し可能/取り外し不能な、揮発性/不揮発性のコンピューター記憶媒体を含んでもよい。単なる例として、図4Bは、取り外し不能な不揮発性磁気媒体に対して読み取り又は書き込みを行うハードディスクドライブ238、取り外し可能な不揮発性磁気ディスク254に対して読み取り又は書き込みを行う磁気ディスクドライブ239、及び、CD−ROMや他の光学媒体などの取り外し可能な不揮発性光ディスク253に対して読み取り又は書き込みを行う光ディスクドライブ240を示す。例示的な動作環境で使用することができる他の取り外し可能な/取り外し不能な、揮発性/不揮発性のコンピューター記憶媒体は、磁気テープカセット、フラッシュメモリーカード、デジタルバーサタイルディスク、デジタルビデオテープ、固体RAM、固体ROMなどを含むが、これらに限定されない。ハードディスクドライブ238は、通常、インターフェース234などの取り外し不能なメモリーインターフェースを介してシステムバス221に接続され、磁気ディスクドライブ239及び光ディスクドライブ240は、通常、インターフェース235などの取り外し可能なメモリーインターフェースによってシステムバス221に接続される。
【0050】
[0057]上述の図4Bに示されるドライブ及び関連するコンピューター記憶媒体は、コンピューター241のためのコンピューター読み取り可能な命令、データ構造、プログラムモジュール、及び他のデータの記憶を提供する。図4Bにおいて、例えば、ハードディスクドライブ238は、オペレーティングシステム258、アプリケーションプログラム257、他のプログラムモジュール256、及びプログラムデータ255を格納するものとして示される。これらのコンポーネントが、オペレーティングシステム225、アプリケーションプログラム226、他のプログラムモジュール227、及びプログラムデータ228と同じであってもよいし又は異なっていてもよいことに留意されたい。オペレーティングシステム258、アプリケーションプログラム257、他のプログラムモジュール256、及びプログラムデータ255は、少なくとも、それらが異なるコピーであることを示すために、ここでは異なる番号を与えられている。ユーザーは、キーボード251及び一般にマウス、トラックボール又はタッチパッドと呼ばれるポインティングデバイス252などの入力装置を介してコンピューター241にコマンド及び情報を入力することができる。他の入力装置(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナーなどを含んでもよい。これら及び他の入力装置は、しばしば、システムバスに結合されたユーザー入力インターフェース236を介して処理装置259に接続されるが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス(USB)などの他のインターフェース及びバス構造によって接続することができる。カメラ26、28、及びキャプチャーデバイス20は、コンソール100のための追加の入力装置を規定することができる。モニター242又は他のタイプの表示装置もまた、ビデオインターフェース232などのインターフェースを介してシステムバス221に接続される。モニターに加えて、コンピューターはまた、出力周辺インターフェース233を介して接続することができるスピーカー244、プリンター243などの他の周辺出力装置を含んでもよい。
【0051】
[0058]コンピューター241は、リモートコンピューター246などの1つ又は複数のリモートコンピューターへの論理接続を使用してネットワーク環境で動作することができる。リモートコンピューター246は、パーソナルコンピューター、サーバー、ルーター、ネットワークPC、ピアデバイス又は他の共通ネットワークノードであってもよく、通常、コンピューター241に関連して上述した要素の多く又はすべてを含むが、メモリー記憶装置247のみが図4Bに示されている。図4Bに示す論理接続は、ローカルエリアネットワーク(LAN)245及びワイドエリアネットワーク(WAN)249を含むが、他のネットワークを含んでもよい。このようなネットワーキング環境は、オフィス、企業規模のコンピューターネットワーク、イントラネット及びインターネットにおいて一般的である。
【0052】
[0059]LANネットワーキング環境で使用する場合、コンピューター241はネットワークインターフェース又はアダプター237を介してLAN245に接続される。WANネットワーキング環境で使用する場合、コンピューター241は、通常、インターネットなどのWAN249を介した通信を確立するためのモデム250又は他の手段を含む。内部にあってよいし外部にあってもよいモデム250は、ユーザー入力インターフェース236又は他の適切な機構を介してシステムバス221に接続することができる。ネットワーク環境において、コンピューター241に関連して示したプログラムモジュール又はその一部は、リモートメモリー記憶装置に格納することができる。限定ではなく例として、図4Bは、メモリーデバイス247に存在するものとして、リモートアプリケーションプログラム248を示す。示されるネットワーク接続が例示的なものであって、コンピューター間の通信リンクを確立する他の手段が使用されてもよいことが理解されよう。
【0053】
[0060]ここで本発明の実施例は図5のフローチャートを参照して説明される。以下の手順は、コンピューティング環境12に関連付けられるプロセッサー101(図4A)又は299(図4B)によって実行されてもよい。ステップ300において、システムは、キャプチャーデバイス20の視野に入るユーザーを追跡する。上に示したように、装置20は、視野内のユーザーを追跡し、その動きの骨格モデルを生成することができる。ステップ304において、システムはシステムとのユーザーによる係合を検出する。実施例において、このような係合は、物理的インタラクションゾーンと本明細書において呼ばれる領域へとユーザーが片手又は両手を持ち上げることによって、検出されてもよい。物理的インタラクションゾーンは、ユーザーがUI19とインタラクトする可能性が最も高い、ユーザー18の物理空間内の領域である。
【0054】
[0061]しかし、実施例では、システムは、ユーザーがシステム10と係合しているかどうかを決定するときに様々なファクターを分析することができる。一緒にとられるファクターは信頼性レベルをもたらしてもよく、信頼性レベルがある所定の閾値を超える場合にシステムが係合を検出する。これらのファクターは、ユーザーの体の動き(手のみに対して全身を動かすと信頼性が減少する)、ユーザーの体の向き(カメラに向いていると信頼性が増す)、どの手が物理的インタラクションゾーンにあるか(ユーザーの側面上の手がカメラに向いていると信頼性が増す)、並びに、どのように及びいつ、ユーザーが最後に解放するか(時間が増加すると信頼性が減少する)を含んでもよい。この信頼性レベルは時間の経過とともに蓄積されてもよく、信頼性レベルの合計がある確立されたしきい値を超える場合、システムは係合を検出する。
【0055】
[0062]ユーザーが係合しようとするが信頼性がまだこのしきい値に達していない間の短い期間において、リアルタイムのフィードバック(例えば、徐々に現れるカーソル)が、システムがユーザーを認識しているがまだジェスチャーコントロールを許可していないことを示すために提供することができる。
【0056】
[0063]係合が確立された後、システムは、ステップ306において、目標のUIオブジェクトへのユーザーの追跡を検出する。特に、システムは、ユーザーが目標のUIオブジェクトを指していることを検知する。実施例のUIオブジェクトはハンドル21であってもよい。システムは、目標のハンドル21に対してカーソル25を中心に置くように適切な指示動作を達成するためにユーザーに依存してもよい。さらなる実施例では、ハンドル21は、実質的に引力を有してもよい。したがって、ハンドル21に対するカーソル25の近接性を含むファクターに基づいて、コンピューティング環境は、ハンドル21へとカーソル25を引き寄せて、したがってカーソル25をハンドル21の右に配置する際にユーザーが必要とする正確さに関して誤りの許容範囲を提供することができる。代替的な実施例において引力はカーソルの位置に影響を与えなくてもよい。代わりに、カーソルが以下に説明する1つ又は複数の基準を満たしている場合に、カーソルは、それがハンドルの上にホバリングしていたかのように、特性を示してもよい。たとえば、ハンドル及び/又はカーソルの外観が変化してもよく、視覚的アフォーダンス及びフィードバックがユーザーに対して表示されて、自分がハンドルとどのようにインタラクトすることができるかをユーザーに示してもよい。
【0057】
[0064]図6は引力がハンドル21のまわりでシミュレートされる実施例を示す。このような実施例では、ステップ324において、システムはユーザーが目標のハンドルへと追跡していることを検出する。ステップ326において、システムは、カーソル25が、ハンドル21へと引っ張られてハンドル21上の中心に置かれる基準を満たしているかどうかを決定する。カーソルがステップ326の基準を満たしている場合、ステップ330において、目標オブジェクト上に中心に置かれ、容易に(lightly)保持することができる(容易に保持されるとは、カーソルがハンドル上で中心に置かれていない場合よりも、カーソルを動かすためにより大きな(significant)手の動きが必要とされることを意味する)。その時点で、ハンドル及び/又はカーソルの外観はまた、ハンドルの活性化を示すために変化してもよく、視覚的アフォーダンス及びフィードバックがユーザーに対して表示されてもよい。また、上述したように、カーソルの位置は変化しないままでもよいが、ハンドルが活性化して、視覚的アフォーダンス及びフィードバックが提供されてもよい。
【0058】
[0065]カーソル25がハンドル21の引力で捕獲されるかどうかについてステップ326において適用される基準は、ハンドル21に対するカーソル25の近接性を含んでもよく、その結果、近ければ近いほど、ハンドルへと引っ張られやすくなる。当該基準は、ユーザーの体に対するユーザーの指し示す手の奥行きの変化を含んでもよく、その結果、動きがキャプチャーデバイス20に近いほど、カーソルがハンドルへと引っ張られる可能性が高くなる。さらに当該基準はハンドルの近くで費やした時間を含んでもよく、ハンドルの近くでより多くの時間が費やされるほど、カーソルがハンドルへと引っ張られる可能性が高くなる。他の基準がさらなる実施例において適用されてもよい。実施例において、カーソル25は、ハンドルに引っ張られるときにその形状を維持する。さらなる実施例では、カーソル25はハンドルへと引っ張られても引っ張られなくてもよいが、カーソルは形状を変形又は変化させて、ハンドルとの係合を示してもよい。
【0059】
[0066]図5に戻ると、ユーザーが一旦目標のハンドルを追跡すると、システムはステップ308において、ユーザーが目標のハンドルにくっつくことを検出する。上述のように、カーソルがハンドルの上に配置される場合、コンピューティング環境12は、ユーザーがz軸に沿って自分の手をより近くへ動かすときにオブジェクトへの付着を検知してもよい。代替的に又はさらに、ユーザーは取り付け動作(attaching motion)(開いた位置から閉じた位置へ指を動かす)を実行してもよく、そのジェスチャーは、カーソルが中央に配置されるオブジェクトにユーザーがくっつくものとして解釈される。ハンドルと係合するためのユーザーの要望を感知するさらなる方法は、身体活動(physical activity)内の具体的なホットスポットを規定することを含み、ユーザーは、ハンドルにくっついて所定の期間の間オブジェクト上を単にホバリングするように自分の手を置くことを知っている。ユーザーがハンドルに係合することを望むことを検知する他の方法はさらなる実施例において提供することができる。
【0060】
[0067]ユーザーがハンドルに一旦くっつくと(又はその代わりに、カーソルが近くにあると)、システムは、ステップ310において、そのハンドル21のアフォーダンスを表示してもよい。ハンドル21は多種多様なアフォーダンスを含んでもよく、いくつかが図1、8及び9に示される。図1において、アフォーダンスは、ユーザーがハンドルをつかみ、(図1の観点から)左へスライドさせることができることを示すレール27である。これは、ハンドル21が一旦つかまれるとユーザーが自分の手を左に動かすことによって達成される。ハンドルが一旦つかまれると、所与の手の動きに対してハンドルが移動する長さは、ディスプレイ上の他のオブジェクトを動かすことに関して同じ割合となってもよいし、より鈍感になってもよいし(すなわち、ハンドルは所与の手の動きに対してより小さく動く)より敏感になってもよい(すなわち、ハンドルは所与の手の動きに対してより大きく動く)。
【0061】
[0068]レール27は、一般に、一旦ユーザーがハンドルにくっつくか又はほぼくっつくと所与のハンドル21に関連付けて表示されるグラフィカルオブジェクトであり、そのハンドルを操作する方法をユーザーに示す。当該レールは、ハンドルに対して行うことができる動きを明確にする矢印を有してもよい。実施において、レール27は、関連付けられるハンドルが水平方向及び/又は垂直方向に操作することができることを示すように、水平及び/又は垂直であってもよい。さらなる例においてはレール27は水平又は垂直である必要はない。たとえば、レールは、ユーザーがx−y平面内で斜めに又は全面的にハンドルを移動できることを示してもよい。レール27は、さらに、ハンドルが、例えば円を描くように、非直線的な方向に操作することができることを示してもよい。
【0062】
[0069]図8は、後にユーザーが画面の上部近くでハンドル21にくっついたときにおける図2の画面の説明を示す。このように、レール27a及び27bがユーザーに対して表示される。レール27aは、ユーザーがハンドルを上下に移動することができることを示す。ハンドル21についてのそのような操作に関連付けられるアクションは、アクション領域23におけるテキストのメニューを上下にスクロールすることである。レール27bは、ユーザーがハンドルを(図8の視点から)右に移動することができることを示す。ハンドル21についてのそのような操作に関連付けられるアクションは、ハンドルがその後に配置されるメニュー項目のサブトピックへとアクション領域23内でスクロールすることである。一旦サブトピックへとスクロールされると、新たな水平のレールが現れて、ユーザーが(図8の視点から)左にハンドルを移動させて次の高位のメニューに戻ることができることをユーザーに示してもよい。
【0063】
[0070]図9は、後にユーザーが画面の下部付近でハンドル21a、21bにくっついたときにおける図2の画面の説明を示す。このように、レール27c及び27dがユーザーに対して表示される。スロットのコーナーにおいて一緒に表示されるハンドル21a、21b及びレール27c、27dは、ユーザーが2つの手で(それぞれのハンドルに対して1つの手)そのスロットを選択することができることを示す。図9はさらに、UI19のいずれかの側に向かうハンドル21c及び21dを示す。ハンドル21cの係合及び(図9の視点から)左への動きにより、スロット29を介した左へのスクロールのアクションが達成される。ハンドル21dの係合及び(図9の視点から)右への動きにより、スロット29を介した右へのスクロールのアクションが達成される。
【0064】
[0071]図5のフローチャートに戻ると、ユーザーがハンドルにくっついてアフォーダンスを示された後、ユーザーは、ステップ311においてハンドルを操作したり、ステップ314においてオブジェクトを解放すると決定したりしてもよい。ユーザーがステップ311においてオブジェクトを操作することを選択した場合、操作がステップ312においてで実行される。ハンドル21のいくつかの操作及び関連するアクションは、図8及び9に関して上で説明された。しかし、一般に、ハンドル21の操作は、x軸及び/又はy軸に沿ってハンドルをスライドさせること、z軸に沿ってハンドルを引くこと、円を描くようにハンドルを回転させること、又はx−y平面内のジョイスティックとしてハンドルを使用することを含んでもよい。特定のアクションを実行するための特定のハンドルが以下で説明される。
【0065】
[0072]ここでハンドル21の操作が図7のフローチャートに関してより詳細に説明される。ステップ338において、一旦ユーザーが特定のハンドルにくっつくと、システムは、ユーザーの動きを探す。ステップ338において動きが検出されると、システムはステップ340において、ユーザーが実行する動作と一致する事前に定義されたジェスチャーを探す。そのような所定のジェスチャーがハンドル21によって許可されると分かると、そのアクションは、ステップ346において、関連付けられるアクション領域23に対して実行される。ハンドルを使用する利点の1つは、予め定義されたあるジェスチャーのみがそのハンドルに適用できるということである。したがって、以下で説明するようにコンピューティング環境12に知られている様々なジェスチャーが存在し得るが、コンピューティング環境12が気にする必要のある所定のジェスチャーの数は選択される特定のハンドル21に依存して狭められる。
【0066】
[0073]当業者であれば、ユーザーの位置及び/又は動きが所定のジェスチャーに一致するかどうかを決定するためにユーザーの位置及び動きを分析する様々な方法を理解するであろう。そのような方法は、例えば、上述した本願に組み込まれる出願第12/475,308号のほか、参照によりその全体が本願に組み込まれる「Gesture-Controlled Interfaces For Self-Service Machines And Other Applications」と題する米国特許出願公開公報第2009/0074248号に開示される。しかし、一般に、ユーザーの位置及び動きはキャプチャーデバイス20によって検出される。このデータから、体の各部分の位置/動きに関連するさまざまなパラメーターを収集して、コンピューティング環境12内のジェスチャー認識エンジンに転送することができる。ジェスチャー認識エンジン190は、しきい値の信頼性レベルより高い一致があるかどうかを決定するために、格納されているジェスチャーのライブラリーに対して、位置/動きのパラメーターを比較する。そのような一致がある場合、ユーザーはその一致したジェスチャーを実行したとされ、関連付けられるアクションがとられる。
【0067】
[0074]ジェスチャー認識エンジンが調べる必要のある格納されているジェスチャーの数を大幅に減らすことに加えて、オブジェクトに係合するためにハンドルを使用することはまた、所与のジェスチャーが実行されたかどうかについての誤検出及び検出漏れのリスクを大幅に低減する。特に、所与のハンドル21に対して実行され得る可能性のあるジェスチャーの組を制限することによって、誤って識別されたかもしれない他のジェスチャーは検討されない。
【0068】
[0075]上述のように、ハンドル21は、ハンドルを係合することができる方法を定義するいくつかのグループのうちの1つに属するものとして広く分類することができる。つまり、ハンドルは、片手ハンドル、両手ハンドル(dual-handed handle)又は両手ペアのハンドル(two-handed paired handle)のいずれかであってもよい。しかし、ハンドル21は、それらが関連するアクション領域23に対して又は関連するアクション領域23によって実行させることができる特定の種類のアクションへとさらに分けることができる。つまり、特定のハンドルは、アクション領域が実行できるアクション及びアクション領域に対して実行できるアクションに基づいて、特定のアクション領域に割り当てられる。したがって、例えば、アクション領域がスクロールアップ、スクロールダウン又は両側にスクロールすることを意図される場合、そのアクション領域には、それらのアクション、すなわち、ユーザーがそのハンドルにくっついている間にユーザーの手を上、下又は横へと動かすことを実行するジェスチャーを具体的に認識するハンドルが割り当てられる。以下は、所与のハンドルについて認識されるジェスチャーのセットに含まれ得るいくつかのジェスチャーである。以下のものは、所与のハンドルに適用することができるすべての可能なジェスチャーについての排他的なリストとして意図されるものではない。
【0069】
[0076]ほとんどの場合、アクションがアクション領域23に対して又はアクション領域23によって実行されるように必要とされるジェスチャーは、ハンドルをそのレールのうちの1つに沿って移動させることにすぎない。これを行うためのユーザーの動きは、単に、ユーザーがハンドルにくっついている間、レールの方向に沿って自分の手を動かすことである。しかし、ハンドルをそのレールに沿ってスライドさせることを単に含むのではない他のジェスチャーが、所与のハンドルに対して認識され得ることが考えられる。以下には、ハンドルに関連付けられるアクション項目に対して又はアクション項目によって実行されるアクションを記述する多くのハンドルの名が記載される。
・クランクハンドル−ユーザーは、クランクハンドルと係合し、それが適用される特定のアクション領域に依存して、3つの平面(x−y、y−z及びx−z)のいずれかにおいて円形のジェスチャーを実行することができる。このハンドルは、スロット又はリストのナビゲーションに使用することができ、円上の点にオブジェクトをマッピングすることにより、ファイングレイン制御(fine grain control)や加速制御のために調整することができる。
・スライダーハンドル(1方向及び双方向)−関連付けられるレールによって示されるように、1つ又は2つの方向に操作することができる単一の次元のハンドル。図1に示すバックハンドルは単一方向のスライダーハンドルの例であるが、例えば図9に示すリストスクロールスライダーハンドルは双方向のスライダーハンドルの例である。
・仮想ジョイスティックハンドル−コントローラーDパッド(D-pad)の状態を模倣することができ、UIナビゲーションに使用することができる、多次元、多方向のハンドル。ユーザーは、1つの状態から次の状態に遷移する前に中間の中心点を通過してもよいししなくてもよい。
・ドロップダウンメニューハンドル−係合されているときに追加のUIを見せる、部分的に画面上にあるハンドル。これは、たとえば、選択できる項目のクイック起動パネルを提示するのに使用することができる。
・コンテキストメニューハンドル(マーキングメニューハンドルとも呼ばれる)−アクション領域内でオブジェクトと係合して3つの方向(上、左、又は右)のいずれかに引くことによって提示されるハンドル。以下に説明するように、ユーザーは下方向に動くことによって、このハンドルから離れることができる。
・ボタンハンドル−アクションを実行するためにこのハンドルに係合することによってハンドルを選択することをユーザーに単に要求する、オブジェクトに取り付けられた簡易なハンドル。その後のレールやユーザーの操作はインタラクションを完了するのに必要ではない。
・ドラッグアンドドロップ(自由形式)ハンドル−画面上及び3D空間内のハンドルの位置を、新たな位置に対して見えるハンドルを係合して操作することによって変更することができるようハンドル。
・ピール(バック及びスロット)ハンドル−UI19のオブジェクト又は背景シーンの一部とすることができる統合されたハンドル。このハンドルの直接的なインタラクション及び操作によって、以前のシーンや表示を見せたり(バックナビゲーションの場合)、スロットなどのオブジェクトの追加データを見せたりすることができる。
・両手引き離し(two-handed pull apart)ハンドル−両手が係合される必要がある選択のための機構。ユーザーがいずれかのハンドルと係合した後、他方の手に係合するようにユーザーに警告するためにフィードバックが提供される。一旦両手が係合されると、両方のレールの端に達するまで両方の手を引き離すことによってジェスチャーが達成される。
・両手フリップ(two-handed flip)ハンドル−これもまた、両手が係合される必要があるハンドルであるが、互いに向かって両手を動かすことによってジェスチャーが実行される。スロットの視覚的なレール及びアナログ動作によって、ユーザーに、自身がジェスチャーの達成にどれだけ近づいているかを通知する。
・スクラブハンドル−係合された後に項目のリストの直接的な操作を可能にするハンドル。これは、より少ない数のコンテンツ項目についてのよりきめ細かい操作を可能にする。
・ギアシフトハンドル−ギアシフトハンドルが、(文字「E」の形状のように)主要な方向に対して各々が垂直である複数の並列な二次的な方向をサポートすることを意図されることを除いて、仮想ジョイスティックに類似した、多次元、多方向のハンドル。
・ラチェット(ratchet)ハンドル−解放することなくトラックに沿った繰り返し動作を可能にすることを除いて、スライダーに類似したハンドル。
【0070】
上記の開示を考えると、当業者であれば、アクション領域のオブジェクトや背景に関して追加のアクションを実行するために使用することができるさらなるハンドルがあることを理解するであろう。
【0071】
[0077]再び図5を参照すると、ユーザーが所与のアクションを達成するためにハンドルを操作した後(又は、ステップ311においてユーザーがオブジェクトを操作しないと決定した場合)、ユーザーはステップ314においてハンドルを解放することができる。実施例において、ハンドルはジェスチャーの完了の際に自動的に解放されてもよい。オブジェクトの解放は、代替的に、システムに対するユーザーによるある手動のアクションによって指示されてもよい。このような手動のアクションは、z軸に沿ってさらに遠くにユーザーの手を動かすこと、物理的な双方向性(インタラクティビティ)ゾーン内の特定のホットスポットへ又はその外へ移動すること、ユーザーの手を特定の距離動かしたりサポートされていない方向に動かしたりすること、又は他のユーザーの動作を含む。
【0072】
[0078]実施例において、シミュレートされた引力は、シミュレートされた引力を有していない他のオブジェクトを解放するために必要とされるよりも大きな動作を、ハンドルから離すためにユーザーに実行させてもよい。解放が検出されない場合、システムはステップ312において再びさらなるオブジェクトの操作を探す。
【0073】
[0079]ユーザーがステップ314においてオブジェクトを解放する場合、ステップ316において、システムは、ユーザーが例えば手を降ろすことによるなどしてインタラクションから離れているかどうかを見る。そのような解放が検出されない場合、システムはステップ306に戻って、オブジェクト(以前にくっつけられたオブジェクトと同一であってもよいし異なっていてもよい)に対する追跡を探す。
[0080]ステップ316においてユーザーが離れる場合、ステップ320においてシステムはユーザーが視野から離れるかどうかを確認する。視野から離れない場合、システムはステップ304に戻ってさらにユーザーの係合を検出する。一方、ユーザーが視界を離れる場合、システムは、ステップ300に戻って、ユーザーが再び視野に入るときを監視する。
【0074】
[0081]実施例において、ハンドル21の外観は、ユーザーが図5のフローチャートのどこにいるかに依存して変化してもよい。視界にユーザーがいない間、いずれのハンドルも表示されなくてもよい。一旦ユーザーが視界において検出されると、ハンドルが表示されてもよい。ハンドルは最初にUI19のどの位置にハンドルがあるかについてユーザーに警告するために光で表示されてもよい。その後、ハンドルはユーザーがそれに近づくまで中立のままであってもよく、その時点において、ハンドルは接近について認識したことを示すために光ってもよい。その後、一旦ユーザーがハンドル上でホバリングするとハンドルの外観は変化してもよく、一旦ユーザーがハンドルにくっつこうと試みると再び外観が変化してもよく、ユーザーがハンドルにくっついた後に再び変化してもよく、一旦ユーザーがハンドルを操作すると再び変化してもよい。これらの変化の一部又はすべてが、さらなる実施例において省略されてもよい。
【0075】
[0082]上記の説明を考えると、本発明は、人間とコンピューターのインターフェースシステムにおいて画面上のオブジェクト及びアクション領域との容易なインタラクションを可能にするシステムを提供する。ハンドルによって提供される明示的な係合ポイント、及び適用され得るジェスチャーを狭めることにより、誤検出及び検出漏れの少ない信頼性の高いシステムが提供される。システムはまた使いやすいものとなる。何にくっつくことができるかを示し、ハンドルにくっついた際にハンドルによってどのように何をすることができるかを、明確なアフォーダンスが示す。インタラクションは記憶しやすく、実行するのが容易である。インタラクションはまた、システムの一部を使用する方法を学ぶことによってシステム全体の使用を可能にするように、一貫性している。
【0076】
[0083]本発明のシステムの上記の詳細な説明は、例示及び説明の目的のために提示された。完全であることや開示された正確な形式に本発明のシステムを限定することは意図されていない。多くの変更及び変形が上記の教示に照らして可能である。説明した実施例は、本発明の原理及び実際の応用をよく説明し、それによって当業者が様々な実施例において及び考えられる特定の使用に適するような様々な修正をして本発明のシステムをよく利用することを可能にするために、選択されたものである。本発明のシステムの範囲は添付の特許請求の範囲によって規定されることが意図される。

【特許請求の範囲】
【請求項1】
ユーザーの位置を取得するキャプチャーデバイスに結合されて人間とコンピューターのインターフェースを提供するコンピューティング環境を含むシステムにおいて、人間とコンピューターのインターフェースのための表示領域とのユーザーのインタラクションを容易にする方法をであって、
(a)インターフェースの領域に関連付けられるハンドルを生成するステップと、
(b)ユーザーの動きを検知するカメラを介して、前記ステップ(a)において生成されたハンドルとの前記ユーザーによる係合を検出するステップと、
(c)前記ユーザーによるジェスチャーの指示を受信するステップと、
(d)前記ステップ(c)に応答して前記ユーザーインターフェースの領域に対してアクションを実行するステップと
を含む方法。
【請求項2】
前記ステップ(a)は前記ユーザーインターフェースの領域に前記ハンドルを表示するステップを含む請求項1に記載の方法。
【請求項3】
前記ステップ(a)は前記ユーザーインターフェースの領域に隣接した前記ハンドルをを表示するステップを含む請求項1に記載の方法。
【請求項4】
前記ステップ(a)は、分離したハンドルが表示されないように前記ユーザーインターフェースの領域の一部として前記ハンドルを統合するステップを含む請求項1に記載の方法。
【請求項5】
ハンドルとのユーザーによる係合を検出する前記ステップ(b)は、カーソルを前記ハンドルへと引っ張る前記ハンドルのまわりの引力をシミュレートすることによって容易にされ、前記カーソルが前記ハンドルへと引っ張られる際に係合が検出される請求項1に記載の方法。
【請求項6】
ユーザーインターフェースの領域に関連付けられるハンドルを生成する前記ステップ(a)は、前記ハンドルを係合する間にユーザーによって実行されるジェスチャーの検出の際に前記領域に対して実行されるべきアクションに基づいて、ハンドルを前記領域に関連付けるステップを含む請求項1に記載の方法。
【請求項7】
前記ステップ(a)において生成されたハンドルとユーザーがどのようにインタラクトすることができるかを示す、前記ハンドルに関連付けられるアフォーダンスを表示するステップ(f)をさらに含む請求項1に記載の方法。
【請求項8】
ユーザーの位置を取得するキャプチャーデバイスに結合されて人間とコンピューターのインターフェースを提供するコンピューティング環境のためのプロセッサー読み取り可能な記憶媒体であって、前記プロセッサー読み取り可能な記憶媒体は、人間とコンピューターのインターフェースのためのディスプレイのアクション領域とのユーザーのインタラクションを容易にする方法を実行するようにプロセッサーをプログラミングし、前記方法は、
(a)前記インターフェースの領域と関連付けられるグラフィカルなハンドルをディスプレイに表示するステップであって、前記グラフィカルなハンドルは前記アクション領域を係合するための明示的な係合ポイントを提供し、前記グラフィカルなハンドルはユーザーによる所定のジェスチャーの受信の際にユーザーが前記アクション領域とどのようにインタラクトすることができるかを定義する、ステップと、
(b)前記ユーザーの位置の検出の結果として前記ユーザーが前記ハンドルを追跡しているという指示を受信するステップと、
(c)前記ユーザーが前記ハンドルを追跡する場合に前記ハンドルとの係合を確立するステップと、
(d)前記ユーザーによるジェスチャーの指示を受信するステップと、
(e)前記グラフィカルなハンドルによって定義される前記ディスプレイのアクション領域に対してアクションを実行するステップであって、前記ステップ(d)において受信された前記ジェスチャーの指示が前記ステップ(a)の前記所定のジェスチャーと一致する、ステップと
を含む、プロセッサー読み取り可能な記憶媒体。
【請求項9】
前記方法が、ハンドルとの係合を確立する前記ステップ(b)の際に、ユーザが前記ハンドルとどのようにインタラクトすることができるかを定義するアフォーダンスを表示するステップ(f)をさらに含む請求項8に記載のプロセッサー読み取り可能な記憶媒体。
【請求項10】
前記ステップ(f)は前記ハンドルを移動することができる方向を示すレールを表示するステップを含む請求項9に記載のプロセッサー読み取り可能な記憶媒体。
【請求項11】
ユーザーによるジェスチャーの指示を受信する前記ステップ(d)は、前記ステップ(f)における前記レールによって定義される方向に前記ハンドルを移動するためのジェスチャーを受信するステップを含む請求項10に記載のプロセッサー読み取り可能な記憶媒体。
【請求項12】
前記ステップ(e)は、前記ステップ(d)で前記ハンドルを上、下、左又は右に移動する指示を受信すると、オブジェクトのメニュー内をナビゲートするステップを含む請求項11に記載のプロセッサー読み取り可能な記憶媒体。
【請求項13】
ユーザーの位置を取得するキャプチャーデバイスに結合され、ディスプレイに結合されるコンピューターシステムにおける、人間とコンピューターのインターフェースであって、
アクションを実行すること及びアクションを実行させることのうちの少なくとも1つを可能にする、ディスプレイ上のアクション領域と、
前記ディスプレイ上に表示され前記アクション領域と関連付けられるハンドルであって、アクション領域との明示的な係合ポイントを提供し、ユーザーが前記アクション領域とどのようにインタラクトすることができるかを定義する、ハンドルと、
ユーザーが前記ハンドルをどのように操作することができるかを定義する、前記ハンドルに関連付けられる前記ディスプレイ上に表示されるレールと
を備える人間とコンピューターのインターフェース。
【請求項14】
前記アクション領域はナビゲーションメニューであり、前記ハンドルは前記ナビゲーションメニュー内のナビゲーションパスを定義する請求項13に記載の人間とコンピューターのインターフェース。
【請求項15】
ユーザーによる前記ハンドルとの係合を確立することを容易にするために、シミュレートされた力が前記ハンドルのまわりに生成される請求項13に記載の人間とコンピューターのインターフェース。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2013−519175(P2013−519175A)
【公表日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2012−552928(P2012−552928)
【出願日】平成23年2月8日(2011.2.8)
【国際出願番号】PCT/US2011/024078
【国際公開番号】WO2011/100254
【国際公開日】平成23年8月18日(2011.8.18)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】