(57)【特許請求の範囲】
【請求項１】
アニメーションを連鎖させる方法であって、
捕らえられた動作を表す画像データを受け取るステップと、
予め準備されたアニメーションを選択するステップと、
ユーザーに関連付けられる履歴データに応答して前記予め準備されたアニメーション中の位置を修正するステップと、
転移点を示す少なくとも１つのパラメーターを識別するステップであって、前記少なくとも１つのパラメーターを満たすことにより、前記捕らえられた動作のアニメーション及び前記予め準備されたアニメーションの連鎖が引き起こされる、ステップと、
少なくとも前記捕らえられた動作及び前記予め準備されたアニメーションを連続して表示することによって、前記捕らえられた動作のアニメーション及び前記予め準備されたアニメーションをつなぐステップと
を含む方法。
【請求項２】
前記捕らえられた動作のアニメーション及び前記予め準備されたアニメーションをつなぐ前記ステップは、前記捕らえられた動作のアニメーションを前記予め準備されたアニメーションへ混合するステップ、又は前記予め準備されたアニメーションを前記捕らえられた動作のアニメーションへ混合するステップを含む請求項１に記載の方法。
【請求項３】
前記予め準備されたアニメーションを選択するステップは、複数の予め準備されたアニメーションから予め準備されたアニメーションを選択するステップを含む請求項２に記載の方法。
【請求項４】
前記捕らえられた動作のアニメーション及び前記予め準備されたアニメーションをつなぐ前記ステップは、前記捕らえられた動作のパラメーターを前記予め準備されたアニメーションの初期パラメーター又は前記予め準備されたアニメーションの終了パラメーターの少なくとも１つへ混合するステップを含む請求項２に記載の方法。
【請求項５】
複数の予め準備されたアニメーションを選択し、新たな予め準備されたアニメーションを生成するために前記複数の予め準備されたアニメーションを混合するステップと、前記捕らえられた動作のアニメーションとつなぐために前記新たな予め準備されたアニメーションを選択するステップとをさらに含む請求項１に記載の方法。
【請求項６】
前記転移点を示す少なくとも１つのパラメーターは、アプリケーションの種類、ジェスチャー履歴、ジェスチャーの難しさ、ジェスチャーの冗長性、環境状況、スキルレベル又は文化的背景のうちの少なくとも１つに基づいて設定される請求項１に記載の方法。
【請求項７】
前記捕えられた動作のアニメーションを前記予め準備されたアニメーションに混合するのに使用される混合の量はアプリケーションの成功のレベルに対応する請求項１に記載の方法。
【請求項８】
前記捕えられた動作の意図を予測するステップをさらに含み、前記予め準備されたアニメーションは前記予測された意図に基づいて選択される請求項１に記載の方法。
【請求項９】
前記捕らえられた動作は物理空間中の目標の生の動作である請求項１に記載の方法。
【請求項１０】
アニメーションを連鎖させる方法であって、
ユーザーのジェスチャーを表す画像データを受け取るステップと、
予め準備されたアニメーションを選択するステップと、
ユーザーに関連付けられる履歴データに応答して前記予め準備されたアニメーション中の位置を修正するステップと、
転移点を示す少なくとも１つのパラメーターを識別するステップであって、前記少なくとも１つのパラメーターを満たすことにより、前記ジェスチャーのアニメーション及び前記予め準備されたアニメーションの連鎖が引き起こされる、ステップと、
少なくとも前記ジェスチャー及び前記予め準備されたアニメーションを連続して表示することにより、前記ジェスチャーのアニメーション及び前記予め準備されたアニメーションをつなぐステップと
を含む方法。
【請求項１１】
前記ジェスチャーがゲームに適用できるジェスチャーである請求項１０に記載の方法。
【請求項１２】
予め準備されたアニメーションを選択するステップは、複数の予め準備されたアニメーションから予め準備されたアニメーションを選択するステップを含む請求項１０に記載の方法。
【請求項１３】
複数の予め準備されたアニメーションを選択し、新たな予め準備されたアニメーションを生成するために前記複数の予め準備されたアニメーションを混合するステップと、前記ジェスチャーのアニメーションとつなぐために前記新たな予め準備されたアニメーションを選択するステップとをさらに含む請求項１０に記載の方法。
【請求項１４】
前記ジェスチャーのアニメーション及び前記予め準備されたアニメーションをつなぐステップは、前記ジェスチャーのアニメーションを前記予め準備されたアニメーションにつなぐステップ、又は前記予め準備されたアニメーションを前記ジェスチャーのアニメーションへつなぐステップを含む請求項１０に記載の方法。
【請求項１５】
前記ジェスチャーのアニメーション及び前記予め準備されたアニメーションをつなぐステップは、前記転移点における前記ジェスチャーのアニメーションのパラメーターを前記予め準備されたアニメーションの初期パラメーター又は前記予め準備されたアニメーションの終了パラメーターの少なくとも１つへつなぐステップを含む請求項１０に記載の方法。
【請求項１６】
前記転移点を示す少なくとも１つのパラメーターは、アプリケーションの種類、ジェスチャーの履歴、ジェスチャーの難しさ、ジェスチャーの冗長性、環境状況、スキルレベル又は文化的背景のうちの少なくとも１つに基づいて設定される請求項１０に記載の方法。
【請求項１７】
前記ジェスチャーのアニメーション及び前記予め準備されたアニメーションをつなぐのに要する混合の量はアプリケーションの成功のレベルに対応する請求項１０に記載の方法。
【請求項１８】
前記ジェスチャーの意図を予測するステップをさらに含み、前記予め準備されたアニメーションは前記予測された意図に基づいて選択される請求項１０に記載の方法。
【請求項１９】
アニメーション混合のためのシステムであって、
捕らえられた動作を表す画像データを受け取る取り込み装置コンポーネントと、
コンピューター実行可能命令を実行するプロセッサーであって、前記コンピューター実行可能命令は、
予め準備されたアニメーションを選択し、
ユーザーに関連付けられる履歴データに応答して前記予め準備されたアニメーション中の位置を修正し、
転移点を示す少なくとも１つのパラメーターを識別し、前記少なくとも１つのパラメーターを満たすことにより、前記捕らえられた動作のアニメーション及び前記予め準備されたアニメーションの混合が引き起こされ、
前記転移点において、前記捕らえられた動作のアニメーション及び前記予め準備されたアニメーションを連続して表示する
ための命令を含む、システム。
【請求項２０】
前記捕らえられた動作のアニメーション及び予め準備されたアニメーションを表示することは、前記捕らえられた動作のアニメーションを前記予め準備されたアニメーションへ混合すること、又は前記予め準備されたアニメーションを前記捕らえられた動作のアニメーションへ混合することを含む請求項１９に記載のシステム。
【請求項２１】
前記捕らえられた動作及び予め準備されたアニメーションの混合されたアニメーションを表示する表示装置をさらに含む請求項１９に記載のシステム。
【請求項２２】
前記捕らえられた動作は前記取り込み装置によって捕らえられた物理空間中の目標の生の動作である請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連鎖アニメーションに関する。
【背景技術】
【０００２】
[0001]コンピューターゲーム、マルチメディアアプリケーション、オフィスアプリケーションなどの多くのコンピューターアプリケーションは、ユーザーがゲームキャラクター又はアプリケーションの他の側面を操作することを可能にするためにコントロールを使用する。通常、そのようなコントロールは、例えば、コントローラー、リモコン、キーボード、マウスなどを使用して入力される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
残念ながら、そのようなコントロールは学習するのが難しく、したがって、ユーザーとそのようなゲーム及びアプリケーションとの間の障壁を作成することになり得る。さらに、そのようなコントロールは、コントロールが使用される実際のゲーム動作又は他のアプリケーション動作と異なることがある。例えば、ゲームキャラクターに野球のバットをスイングさせるゲームの制御は野球のバットをスイングする実際の動作に対応しないかもしれない。
【課題を解決するための手段】
【０００４】
[0002]いくつかのシステムでは、モニターは、システムによって捕らえられた動作をユーザーにマッピングするユーザーフィードバックを表示してもよい。例えば、ユーザーフィードバックはアバターとしてスクリーンに表示されてもよく、そのアバターの動作はユーザーの動作にアバターの動作をマッピングすることにより制御することができる。しばしば、ユーザーは、アプリケーションの実行に必要でない動作をしてもよい。ある場合には、特定のアプリケーションに適用可能なユーザー動作は、ユーザー間で冗長であるか又は非常に類似している。
【０００５】
[0003]実際のユーザー動作を表すのではなく予め準備されたキャラクターアニメーションを挿入することはいくつかのシナリオにおいて有益となり得る。例えば、テニスのスイングにおいて、サーブにおけるボールのトス及びテークバックは予め準備されたアニメーションであってもよい一方、前方へのスイングのアニメーションはユーザー動作にマッピングしてもよい。予め準備されたアニメーション及び物理空間中の動作を表すアニメーションをつなぐ（連鎖させる）ための境界及び転移点（transition points）を決定する技術のほか、２つの種類のアニメーションを混合する（融合する、一体化させる、blend）ための技術が本明細書において開示される。そのような連鎖及びアニメーションの混合の技術はアニメーションの効率化の目的のために望ましいものとなり得る。
【０００６】
[0004]連鎖アニメーションは、予め準備されたアニメーションの選択、及び、予め準備されたアニメーションから捕らえられた動作のアニメーションへの又は捕らえられた動作のアニメーションから予め準備されたアニメーションへのアニメーション間の移行を含んでもよい。例えば、ユーザーのジェスチャーのアニメーションは、予め準備されたアニメーションとともに連続してつなぐことができる。アニメーション混合技術はジェスチャーのアニメーション間のより滑らかな遷移を提供することができる。関節の位置、速度及び加速を含むジェスチャー履歴は、ユーザーの意図を決定し、後のアニメーション及びゲームの制御のためのパラメーターをシード（seed）し、開始する後のジェスチャーを決定するために使用することができる。
【０００７】
[0005]この概要は詳細な説明において以下にさらに述べられる概念のうち選択されたものを単純化された形式で紹介するために提供される。この概要は、特許請求された主題の主要な特徴又は不可欠な特徴を識別するようには意図されず、特許請求された主題の範囲を限定するために使用されるようにも意図されない。更に、特許請求された主題は、本開示の任意の部分において言及されるいずれの又はすべての不利益を解決する実施例にも限定されない。
【０００８】
[0006]本明細書によるジェスチャー認識システムアーキテクチャーのためのシステム、方法及びコンピューター読み取り可能な媒体は、添付の図面に関してさらに記載される。
【図面の簡単な説明】
【０００９】
【図１Ａ】[0007]目標認識、分析及び追跡システムの例示的な実施例をゲームをするユーザーとともに示す。
【図１Ｂ】目標認識、分析及び追跡システムの例示的な実施例をゲームをするユーザーとともに示す。
【図２】[0008]目標認識、分析及び追跡システムにおいて使用されてもよく、連鎖技術及びアニメーション混合技術を組み込んでもよい、取り込み装置の例示的な実施例を示す。
【図３】[0009]本明細書において記載されるアニメーション技術が具体化され得るコンピューター環境の例示的な実施例を示す。
【図４】[0010]本明細書において記載されるアニメーション技術が具体化され得るコンピューター環境の別の例示的な実施例を示す。
【図５】[0011]奥行き画像から生成されたユーザーの骨格マッピングを示す。
【図６Ａ】[0012]シーンにおけるユーザーの奥行き画像を得てユーザーがしているジェスチャーを解析するために使用される、様々な時点においてユーザーの動作を捕らえる例示的なフレームを示す。
【図６Ｂ】シーンにおけるユーザーの奥行き画像を得てユーザーがしているジェスチャーを解析するために使用される、様々な時点においてユーザーの動作を捕らえる例示的なフレームを示す。
【図６Ｃ】シーンにおけるユーザーの奥行き画像を得てユーザーがしているジェスチャーを解析するために使用される、様々な時点においてユーザーの動作を捕らえる例示的なフレームを示す。
【図６Ｄ】シーンにおけるユーザーの奥行き画像を得てユーザーがしているジェスチャーを解析するために使用される、様々な時点においてユーザーの動作を捕らえる例示的なフレームを示す。
【図６Ｅ】シーンにおけるユーザーの奥行き画像を得てユーザーがしているジェスチャーを解析するために使用される、様々な時点においてユーザーの動作を捕らえる例示的なフレームを示す。
【図６Ｆ】シーンにおけるユーザーの奥行き画像を得てユーザーがしているジェスチャーを解析するために使用される、様々な時点においてユーザーの動作を捕らえる例示的なフレームを示す。
【図７Ａ】一連のユーザー動作、並びに連鎖技術及びアニメーション混合技術の実施の例示的な実施例を示す。
【図７Ｂ】一連のユーザー動作、並びに連鎖技術及びアニメーション混合技術の実施の例示的な実施例を示す。
【図８】[0014]予め準備されたアニメーションを使用し、予め準備されたアニメーションを捕らえられた動作のアニメーションと混合するための例示的なフロー図を示す。
【発明を実施するための形態】
【００１０】
[0015]コンピューターシステムは、アバターの形式でなど、ユーザーの表現をモデル化し表示することができる。例えば、カメラにより制御されるコンピューターシステムは、ユーザーの画像データを捕らえて、ユーザーのジェスチャーにマッピングするユーザーフィードバックを表示してもよい。ユーザーフィードバックは、アバターとしてスクリーンに表示されてもよく、そのアバターの動作は、アバターの動作をユーザーのジェスチャーへマッピングすることにより直接的に制御することができる。ジェスチャーは、走ること、指を動かすこと、又は静止した姿勢などの、任意のユーザー動作であってもよい。ユーザーの捕らえられた動作又はユーザーのジェスチャーのアニメーションは、取り込み装置入力によって駆動することができる。
【００１１】
[0016]実際の捕らえられた動作にマッピングするのではなく、捕らえられた動作を視覚的に表すために予め準備されたアニメーションを使用することが、いくつかの状況においては望ましいかもしれない。捕らえられた動作は、カメラなどの取り込み装置によって捕らえられる物理空間中の任意の動作であってもよい。捕らえられた動作は、ユーザー又は物体などの、物理空間における目標の動作を含んでもよい。捕らえられた動作は、オペレーティングシステム又はアプリケーションにおける制御に変わるジェスチャーを含んでもよい。動作は走る動作などの動的なものであってもよいし、又は動作は、ほとんど動かずにポーズをとらされているユーザーなどの、静的なものであってもよい。
【００１２】
[0017]予め準備されたアニメーションは所定のキャラクターアニメーション又はあらかじめ記録されたジェスチャーであってもよい。実際の目標又はユーザー動作を表すのではなく予め準備されたアニメーションを挿入することは、いくつかのシナリオにおいて望ましいものとなり得る。例えば、テニスのスイングにおいて、予め準備されたアニメーションを挿入することにより、サーブにおけるボールトス及びテークバックのジェスチャーを表すための所定の動作を使用することは望ましいかもしれない。サーブに続いて、ユーザーの捕らえられた動作の使用に戻ること、例えば、実際の前方へのスイングのためのユーザーの動作のマッピングに戻ることは望ましいかもしれない。
【００１３】
[0018]異なるドライバーによって駆動されるアニメーション（例えば、予め準備されたアニメーション及びカメラ入力によって駆動されるアニメーション）間で境界及び転移点を決定することを含む、アニメーションタイプをつなぐための技術が本明細書に開示される。アニメーションタイプは任意の適切な方法でつながれてもよい。連鎖の方法は、連鎖アニメーション間で望まれる滑らかさのレベルに依存してもよい。例えば、コンピューターシステムは、ユーザーの捕らえられた動作のアニメーションとシームレスな遷移より多くの予め準備されたアニメーションとの間で移行するのに必要なだけ、連鎖アニメーションシーケンスの中へ多くの予め準備されたアニメーションを挿入してもよい。別の例において、コンピューターシステムは、転移点でのユーザーの捕らえられた動作のパラメーターを分析し、その点でのユーザーの捕らえられた動作をより緊密に表すために予め準備されたアニメーションを修正してもよい。アニメーションが単に順にアニメーションを表示することにより一緒につながれることができるよう、アニメーションは転移点で十分に類似していてもよい。別の例において、アニメーション混合技術は、様々なアニメーションタイプ間の非常に滑らかな遷移を提供するために使用されてもよい。
【００１４】
[0019]本明細書及び特許請求の範囲において使用されるとき、生の動作のアニメーションと予め準備されたアニメーションとの間の混合又は連鎖への言及は、捕らえられたジェスチャーのアニメーションから予め準備されたアニメーションへの連鎖又は混合、及び、反対に、予め準備されたアニメーションから捕らえられたジェスチャーのアニメーションへの連鎖又は混合の両方を含む。更に、連鎖技術の任意の組み合わせが、単独で又は組み合わせて使用されてもよい。例えば、コンピューターシステムは連鎖の前に予め準備されたアニメーションを修正してもよく、アニメーション混合技術もまた、捕らえられた動作のアニメーションと修正された予め準備されたアニメーションとの間の遷移を滑らかにするために使用されてもよい。
【００１５】
[0020]本明細書において記載された連鎖のシステム、方法及びコンポーネントは、ゲーム機などのマルチメディアコンソール、又は、例としてであっていかなる意図された限定もなしに、衛星受信機、セットトップボックス、業務用ゲーム、パーソナルコンピューター（ＰＣ）、携帯電話、携帯情報端末（ＰＤＡ）及び他の携帯装置を含む、ユーザー入力を予め準備されたデータと混合することが望まれる任意の他の計算装置に具体化されてもよい。
【００１６】
[0021]図１Ａ及び１Ｂは、連鎖技術及びアニメーション混合技術を利用することができる、カメラにより制御される目標認識、分析及び追跡システム１０の構成の例示的な実施例を示す。システムは、ボウリングゲームをするユーザー１８を表現する。例示的な実施例において、システム１０は、ユーザー１８などの人間の目標を認識し、分析し及び／又は追跡してもよい。目標認識、分析及び追跡システム１０は、物理空間中のユーザーの動作に関連する情報を集めてもよい。システム１０は、予め準備されたアニメーションに関連する情報を格納してもよい。ユーザー１８のボウリング動作の全体にわたるある点において、ユーザー１８の実際の動作又はジェスチャーを表すアニメーションを追跡し、分析し、ディスプレイにマッピングするのではなく、ボウリング動作の一部を表すために予め準備されたアニメーションを挿入することが望ましいかもしれない。
【００１７】
[0022]図１Ａに示されるように、目標認識、分析及び追跡システム１０は、コンピューター環境１２を含んでもよい。コンピューター環境１２は、コンピューター、ゲームシステム又はコンソールなどであってもよい。例示的な実施例によれば、コンピューター環境１２がゲームアプリケーション、ゲームでないアプリケーションなどのアプリケーションを実行するために使用され得るように、コンピューター環境１２はハードウェアコンポーネント及び／又はソフトウェアコンポーネントを含んでもよい。
【００１８】
[0023]図１Ａに示されるように、目標認識、分析及び追跡システム１０は、さらに取り込み装置２０を含んでもよい。取り込み装置２０は、例えば、ユーザー１８などの１人以上のユーザーを視覚的に監視するのに使用されてもよいカメラであってもよく、その結果、１人以上のユーザーによって行われるジェスチャーは、より詳細に以下に記載されるように、アプリケーション内の１つ以上の制御又は動作を行うために捕らえられ、分析され、追跡されてもよい。
【００１９】
[0024]１つの実施例によれば、目標認識、分析及び追跡システム１０は、ユーザー１８などのユーザーにゲーム又はアプリケーションの映像及び／又は音声を提供し得るテレビ、モニター、高解像度テレビ（ＨＤＴＶ）などの視聴覚装置１６に接続されてもよい。例えば、コンピューター環境１２は、ゲームアプリケーション、ゲームでないアプリケーションなどに関連した視聴覚信号を提供し得るグラフィックスカードなどのビデオアダプター及び／又はサウンドカードなどの音声アダプターを含んでもよい。視聴覚装置１６は、コンピューター環境１２から視聴覚信号を受け取り、次に、視聴覚信号に関連したゲーム又はアプリケーションの映像及び／又は音声をユーザー１８に対して出力してもよい。１つの実施例によれば、視聴覚装置１６は、例えば、Ｓ−ビデオケーブル、同軸ケーブル、ＨＤＭＩケーブル、ＤＶＩケーブル、ＶＧＡケーブルなどを介してコンピューター環境１２に接続されてもよい。
【００２０】
[0025]図１Ａ及び１Ｂに示されるように、目標認識、分析及び追跡システム１０は、ユーザー１８などの人間の目標を認識し、分析し及び／又は追跡するために使用され得る。例えば、ユーザー１８は、ユーザー１８の動作がコンピューター環境１２によって実行されているアプリケーションに影響を及ぼすために使用され得るコントロールとして解釈され得るように、取り込み装置２０を使用して追跡されてもよい。したがって、１つの実施例によれば、ユーザー１８は、アプリケーションを制御するために自身の体を動かしてもよい。
【００２１】
[0026]システム１０は、ユーザーの動作を表す取込み装置２０への入力を、アニメーションへ変換してもよく、その結果、アニメーションはその入力によって駆動される。したがって、物理空間中のユーザーの動作がアバターによって行われるように、ユーザーの動作はアバターにマッピングしてもよい。ユーザーの動作はアプリケーションでの制御に適用可能なジェスチャーであってもよい。例えば、図１Ａ及び１Ｂは各々、ユーザー１８がしていてもよいボウリングゲームかもしれない、コンピューター環境１２上で実行するアプリケーションの例示的な実施例を描く。コンピューター環境１２は、ユーザー１８に対してボウリング場及びボウリングレーンの視覚的な表現を提供するために、視聴覚装置１６を使用してもよい。コンピューター環境１２はまた、ユーザー１８が自分の動作で制御してもよいプレーヤーのアバター２２の視覚的な表現を提供するために、視聴覚装置１６を使用してもよい。例示的な実施例によれば、目標認識、分析及び追跡システム１０のコンピューター環境１２及び取り込み装置２０は、ユーザーのジェスチャーがゲーム空間におけるプレーヤーのアバター２４を制御するために解釈されてもよいように、ユーザーの三次元の物理空間の中でユーザー１８によってなされるジェスチャーを認識し分析するために使用されてもよい。例えば、図１Ｂに示されるように、プレーヤーのアバター２４にゲーム空間でボウリング動作をさせるために、ユーザー１８は物理空間中でボウリング動作をしてもよい。ユーザー１８による他の動作はまた、歩き、ボールを選択し、ボウリングレーン上にアバターを配置し、ボールをスイングするなどするための制御などの、制御又はアクションとして解釈されてもよい。
【００２２】
[0027]システム１０は、ユーザー１８の実際の動作又は捕らえられたジェスチャーのアニメーションの使用ではなく予め準備されたアニメーションを挿入してもよい。例えば、ゲーム制御のあるセグメントは予め準備されたアニメーションによって表されてもよい。上記のボウリングゲームの例において、例えば、ボウリングのボールを拾い上げたりレーンの方へ歩くことは、予め準備されたアニメーションによって表されるボウリング動作の一部であってもよい。
【００２３】
[0028]ユーザーのジェスチャー又は動作は、プレーヤーのアバター２４の制御以外のアクションに対応し得る制御として解釈されてもよい。例えば、プレーヤーは、ゲームを終了し、中止し又はセーブし、レベルを選択し、ハイスコアを見て、友達と通信したりするための動作を使用してもよい。ユーザーのジェスチャーは、オペレーティングシステム、ゲームのゲームでない側面、又はゲームでないアプリケーションに適用可能な制御であってもよい。例えば、ユーザーのジェスチャーは、ユーザーインターフェースの制御などの、物体の操作として解釈されてもよい。例えば、ブレード又は左右に垂直に並べられたタブ付けされたインターフェースを有するユーザーインターフェースであって、各ブレード又はタブの選択がアプリケーション又はシステム内の様々な制御のためのオプションを開発するものを考える。システムは、タブの動きについてユーザーの手のジェスチャーを識別してもよく、物理空間中のユーザーの手は、実質的にアプリケーション空間のタブと連携する。中止、つかむ動作、及び次に手を左へ一振りすることを含むジェスチャーは、タブの選択として解釈され、次に、それを離れたところに移動させて次のタブを開く。
【００２４】
[0029]ユーザーのタブ／ブレード選択のための動作などの他の制御を表すために予め準備されたアニメーションを挿入することは望ましいかもしれない。上記のユーザーインターフェースの例において、例えば、システムは、ブレード又はタブを選択又は移動させるものとしてユーザーのジェスチャーを解釈し、アニメーションに対してユーザーの捕らえられたジェスチャーをマッピングするのではなく、表示の目的のために、予め準備されたアニメーションを挿入してもよい。例えば、タブ間で移行するために、ユーザーの実際の手の動作にマッピングする速度でタブを移動させるのではなく、タブの動作について用意された移行速度で、予め準備されたアニメーションを挿入することが望ましいかもしれない。したがって、システムは、ユーザーのジェスチャーを捕らえてタブの選択及び動きとして解釈してもよいが、タブ間での切り替えを望むことを示すユーザーの手の閾値速度が一旦検出されると、予め準備された動作へ移行してもよい。予め準備されたアニメーションと生の動作を表すアニメーションとの間でアニメーションを混合することによって、より効率的なアニメーションが提供されてもよい。したがって、システムは、代わりに、アニメーションのためのユーザーの実際の動作又は捕らえられたジェスチャーのマッピングの間で切り替わって、予め準備されたアニメーションを表示及び実施してもよい。
【００２５】
[0030]いくつかのプレーヤー動作は転移点を示すパラメーターを有していると解釈され識別されてもよい。転移点は、ユーザーの捕らえられた動作又はジェスチャーのアニメーションと予め準備されたアニメーションとの間でシステム１０が移行する点であってもよい。例示的な実施例において、転移点は、予め準備されたアニメーションに移行するようにシステムに促すユーザーの捕らえられたジェスチャーにおける識別点であってもよい。別の例示的な実施例において、転移点は、ユーザーの捕らえられたジェスチャーの使用へとシステムを戻させる、予め準備されたアニメーション中の識別点である。
【００２６】
[0031]したがって、転移点の識別は、ユーザーの動作を表すことと予め準備されたアニメーションを表すこととの間でのシステムの遷移を引き起こすことができる。例えば、プレーヤー１８は、システム１０がボウリングのボールの選択のための制御として解釈してもよい、つかむ動作をしてもよい。つかむ動作の解釈により、ボール選択の点におけるユーザーの捕らえられたジェスチャーの表示から、ボール選択に続く動作、例えば、ボウリングレーンまで歩むことのための予め準備されたアニメーションの表示へのシステムの遷移が引き起こされてもよい。
【００２７】
[0032]転移点を設定するための任意の適切な方法を使用することができる。アプリケーション自体は、アプリケーションの種類又はユーザーの技術レベルもしくは経験に基づいて転移点を設定することができる。例えば、より多くの予め準備されたアニメーションは、成功のためのより困難なジェスチャーが予め準備されるように、ゲームの初歩のプレーヤーに対して実施されてもよい。予め準備されたアニメーションが特定の動作に使用されるように、ユーザーは転移点を設定することができ、また、ユーザーは、アプリケーションの実行中、多かれ少なかれ予め準備されたアニメーションの使用を要求することができる。
【００２８】
[0033]図１Ｂに示される例示的な実施例において、物体はボウリングのボールであり、ユーザーは、あたかも実際にボウリングのボールを扱っているかのように、三次元の物理空間中で動く。物理空間中のユーザーのジェスチャーは、スクリーン１４に表示されたボウリングのボールを制御することができる。例示的な実施例において、ユーザー１８などの人間の目標は実際に物体を保持していてもよい。そのような実施例において、コンピューターゲームのユーザーは、プレーヤーとオブジェクトの動作がゲームのパラメーターを調節及び／又は制御するために使用され得るように、物体を保持していてもよい。例えば、ラケットを保持するプレーヤーの動作は、電子スポーツゲームにおけるスクリーン上のラケットの制御のために追跡され利用されてもよい。別の例示的な実施例において、物体を保持するプレーヤーの動作は、電子戦闘ゲームにおけるスクリーン上の武器の制御のために追跡され利用されてもよい。
【００２９】
[0034]他の例示的な実施例によれば、目標認識、分析及び追跡システム１０は、ゲームの領域の外にあるオペレーティングシステム及び／又はアプリケーションの側面を制御するために目標の動作を解釈してもよい。例えば、オペレーティングシステム及び／又はアプリケーションの実質的に任意の制御可能な側面が、ユーザー１８などの目標の動作によって制御されてもよい。
【００３０】
[0035]図２は、目標がユーザー又は物体であり得る、目標認識、分析及び追跡のために使用され得る取り込み装置２０の例示的な実施例を示す。例示的な実施例によれば、取り込み装置２０は、例えば、飛行時間、構造化された光、ステレオイメージなどを含む任意の適切な技術を介して、奥行き値を含んでもよい奥行き画像を含む奥行き情報を備えた動画を得るように構成されてもよい。１つの実施例によれば、取り込み装置２０は、計算された奥行き情報を、「Ｚ層」、又はそのライン・オブ・サイトに沿って奥行きカメラから延在するＺ軸に垂直であり得る層へと組織化してもよい。
【００３１】
[0036]図２に示されるように、取り込み装置２０は画像カメラコンポーネント２２を含んでもよい。例示的な実施例によれば、画像カメラコンポーネント２２はシーンの奥行き画像を捕捉することのできる奥行きカメラであってもよい。奥行き画像は捕らえられたシーンの二次元の（２−Ｄ）画素領域を含んでもよく、２−Ｄ画素領域の各画素は、カメラからの得られたシーンにおける物体についての、例えば、センチメートル、ミリメートルなどの長さ又は距離などの奥行き値を表してもよい。
【００３２】
[0037]図２に示されるように、例示的な実施例によれば、画像カメラコンポーネント２２は、シーンの奥行き画像を得るために使用され得る、ＩＲ光コンポーネント２４、三次元（３−Ｄ）カメラ２６及びＲＧＢカメラ２８を含んでもよい。例えば、飛行時間分析において、取り込み装置２０のＩＲ光コンポーネント２４は、シーン上に赤外光を放射し、次に、例えば、３−Ｄカメラ２６及び／又はＲＧＢカメラ２８を使用して、シーンにおける１つ以上の目標及び物体の表面からの後方散乱光を検出するためにセンサー（図示せず）を使用してもよい。いくつかの実施例において、出ていく光パルスと対応する入ってくる光パルスとの間の時間が測定され、取り込み装置２０からシーンにおける目標又は物体上の特定の位置までの物理的な距離を決定するために使用され得るように、パルス赤外光が使用されてもよい。さらに、他の例示的な実施例において、出ていく光波の位相は、位相シフトを決定するために、入ってくる光波の位相と比較されてもよい。その後、位相シフトは、取り込み装置から目標又は物体上の特定の位置までの物理的な距離を決定するために使用されてもよい。
【００３３】
[0038]別の例示的な実施例によれば、飛行時間の分析は、例えば、シャッターされた（shuttered）光パルス画像化を含む様々な技術によって、時間にわたって、反射された光ビームの強度を分析することにより、取り込み装置２０から目標又は物体上の特定の位置までの物理的な距離を間接的に決定するために使用され得る。
【００３４】
[0039]別の例示的な実施例において、取り込み装置２０は、奥行き情報を得るために構造化された光を使用してもよい。そのような分析において、パターン化された光（すなわち、グリッドパターン又はストライプパターンなどの既知のパターンとして表示される光）は、例えば、ＩＲ光コンポーネント２４を介して、シーン上に投影されてもよい。シーンにおける１つ以上の目標又は物体の表面を打つと、パターンは応答して変形されるようになってもよい。パターンのそのような変形は、例えば、３−Ｄカメラ２６及び／又はＲＧＢカメラ２８によって捕らえられ、次に、取り込み装置から目標又は物体上の特定の位置までの物理的な距離を決定するために分析されてもよい。
【００３５】
[0040]別の実施例によれば、取り込み装置２０は、奥行き情報を生成するために解像することができる視覚的なステレオデータを得るために、異なる角度からシーンを見ることができる、２つ以上の物理的に分離されたカメラを含んでもよい。
【００３６】
[0041]取り込み装置２０はさらにマイクロホン３０又はマイクロホンのアレイを含んでもよい。マイクロホン３０は、音声を受信して電気信号へ変換し得るトランスデューサー又はセンサーを含んでもよい。１つの実施例によれば、マイクロホン３０は、目標認識、分析及び追跡システム１０における取り込み装置２０とコンピューター環境１２との間のフィードバックを低減するために使用され得る。さらに、マイクロホン３０は、コンピューター環境１２によって実行されてもよいゲームアプリケーション、ゲームでないアプリケーションなどのアプリケーションを制御するために、ユーザーによって提供され得る音声信号を受け取るために使用されてもよい。
【００３７】
[0042]例示的な実施例において、取り込み装置２０は、画像カメラコンポーネント２２と動作可能に通信し得るプロセッサー３２をさらに含んでもよい。プロセッサー３２は、奥行き画像を受け取り、適切な目標が奥行き画像に含まれ得るかどうかを決定し、適切な目標を当該目標の骨格表現又はモデルに変換するための命令、又は任意の他の適切な命令を含んでもよい命令を実行し得る、標準化されたプロセッサー、専用のプロセッサー、マイクロプロセッサーなどを含んでもよい。
【００３８】
[0043]取り込み装置２０は、さらに、プロセッサー３２によって実行され得る命令、３−ＤカメラもしくはＲＧＢカメラによって捕らえられる画像もしくは画像のフレーム、又は任意の他の適切な情報、画像などを格納し得るメモリーコンポーネント３４を含む。例示的な実施例によれば、メモリーコンポーネント３４は、ランダム・アクセス・メモリー（ＲＡＭ）、読み取り専用メモリー（ＲＯＭ）、キャッシュ、フラッシュメモリー、ハードディスク又は任意の他の適切な記憶コンポーネントを含んでもよい。図２に示されるように、１つの実施例において、メモリーコンポーネント３４は、画像取り込みコンポーネント２２及びプロセッサー３２と通信する別個のコンポーネントであってもよい。別の実施例によれば、メモリーコンポーネント３４は、プロセッサー３２及び／又は画像取り込みコンポーネント２２へ統合されてもよい。
【００３９】
[0044]図２に示されるように、取り込み装置２０は通信リンク３６を介してコンピューター環境１２と通信してもよい。通信リンク３６は、例えば、ＵＳＢ接続、ファイヤーワイヤー（商標）（Ｆｉｒｅｗｉｒｅ）接続、イーサネット（商標）ケーブル接続などを含む有線接続、及び／又は無線８０２．１１ｂ、ｇ、ａ又はｎ接続などの無線接続であってもよい。１つの実施例によれば、コンピューター環境１２は、例えば、通信リンク３６を介していつシーンを捕らえるかを決定するために使用され得る取り込み装置２０にクロックを提供してもよい。
【００４０】
[0045]さらに、取り込み装置２０は、例えば３−Ｄカメラ２６及び／又はＲＧＢカメラ２８によって捕らえられる奥行き情報及び画像、並びに、取り込み装置２０によって生成され得る骨格モデルを、通信リンク３６を介してコンピューター環境１２へ提供してもよい。その後、コンピューター環境１２は、例えば、ゲーム又はワードプロセッサーなどのアプリケーションを制御するために、骨格モデル、奥行き情報及び取得された画像を使用してもよい。例えば、図２に示されるように、コンピューター環境１２はジェスチャーライブラリー１９０を含んでもよい。
【００４１】
[0046]ジェスチャーライブラリー１９０は、一群のジェスチャーフィルター１９１を含んでもよい。各フィルター１９１は、そのジェスチャーについてのパラメーター又はメタデータとともにジェスチャーを定義する情報を含んでもよい。例えば、体の後部の背後から体の前を過ぎる、手のうちの１つを動きを含む、投げる動作は、その動作が奥行きカメラによって捕らえられるとき、体の後部の背後から体の前を過ぎる、ユーザーの手のうちの１つの動きを表す情報を含むジェスチャーフィルターとして実施されてもよい。その後、パラメーターは、そのジェスチャーについて設定されてもよい。ジェスチャーが投げる動作である場合、パラメーターは、手が達しなければならないしきい値速度、手が移動しなければならない距離（絶対的なもの、又は全体としてユーザーのサイズに対して相対的なもののいずれか）、及びジェスチャーが生じた認識エンジンによる信頼性評価（confidence rating）であってもよい。ジェスチャーについてのこれらのパラメーターは、アプリケーション間で、単一のアプリケーションのコンテキスト間で、又は時間にわたる１つのアプリケーションの１つのコンテキスト内で、変化してもよい。
【００４２】
[0047]カメラ２６、２８及び装置２０によって捕らえられた、関連した骨格モデル及び動作の形式のデータは、（骨格モデルによって表されるような）ユーザーが１つ以上のジェスチャーを行った場合を識別するために、ジェスチャーライブラリー１９０におけるジェスチャーフィルター１９１と比較されてもよい。したがって、フィルター１９１などのフィルターへの入力は、ユーザーの関節の位置に関する関節データ、関節において交わる骨によって形成される角度など、シーンからのＲＧＢ色データ、及びユーザーの態様の変化率などのものを含んでもよい。言及されるように、パラメーターはジェスチャーに対して設定されてもよい。フィルター１９１からの出力は、所与のジェスチャーがなされているという確かさ、ジェスチャー動作がなされる速度、及びジェスチャーが生じる時などのものを含んでもよい。
【００４３】
[0048]コンピューター環境１２は、室内のユーザー１８又は物体など、シーンにおいてどんな目標があるかを決定するために奥行き画像を処理することができるプロセッサー１９６を含んでもよい。これは、例えば、類似の距離値を共有する奥行き画像の画素を一緒にグループ化することにより行うことができる。画像はまた、ユーザーの骨格表現を生成するために解析することができ、関節及び関節の間に及ぶ組織などの特徴が識別される。奥行きカメラによって人を捕らえて、それからそのユーザーの骨格、手の関節、手首、肘、膝、鼻、足首、肩、及び骨盤が背骨に接触する場所における様々なスポットを決定する骨格マッピング技術が存在する。他の技術は、画像を人の体のモデル表現に変換すること、及び画像を人のメッシュモデル表現に変換することを含む。
【００４４】
[0049]実施例において、処理は取り込み装置２０自体において行われ、（取り込み装置が３Ｄカメラを含む場合）奥行き値及び明度（color value）の生の画像データは、リンク３６を介してコンピューター環境１２に送信される。別の実施例において、処理はカメラ４０２に結合されたプロセッサー３２によって実行され、次に、解析された画像データはコンピューター環境１２に送られる。さらに別の実施例において、生の画像データ及び解析された画像データの両方はコンピューター環境１２に送信される。コンピューター環境１２は解析された画像データを受信してもよいが、現在のプロセス又はアプリケーションを実行するためにさらに生データを受信してもよい。例えば、シーンの画像がべつのユーザーにコンピューターネットワークを介して送信される場合、コンピューター環境１２は別のコンピューター環境によって処理するために生データを送信してもよい。
【００４５】
[0050]コンピューター環境１２は、骨格モデルの動作を解釈し、当該動作に基づいてアプリケーションを制御するために、ジェスチャーライブラリー１９０を使用してもよい。コンピューター環境１２は、表示装置１９３などのディスプレイ上でアバター又はポインターの形式などで、ユーザーの表現をモデル化して表示することができる。表示装置１９３は、コンピューター・モニター、テレビスクリーン又は任意の適切なディスプレイ装置を含んでもよい。例えば、カメラにより制御されるコンピューターシステムは、ユーザー画像データを捕らえて、ユーザーのジェスチャーにマッピングするテレビスクリーン上にユーザーフィードバックを表示してもよい。図１Ａ及び１Ｂに示されるもののように、ユーザーフィードバックはアバターとしてスクリーンに表示されてもよい。アバターの動作は、アバターの動作をユーザーの動作へマッピングすることにより直接的に制御することができる。ユーザーのジェスチャーはアプリケーションのある側面を制御してもよい。
【００４６】
[0051]ユーザーの動作の表現を表示するのではなく予め準備されたアニメーションを使用することが望ましいこともある。ユーザーのジェスチャーは、アプリケーションに対して必ずしも適用可能であるとは限らないかもしれない。例えば、コンピューター環境を介したアプリケーションのアクセス中、ユーザーは飲み物に手を伸ばしてもよい。仮想世界アプリケーションにおいて、飲み物に手を伸ばしたり椅子での位置を変えたりするなどの共通のユーザー動作は、表示される動作にマッピングするのに望ましいかもしれない。スプレッドシートへ情報を入力するなど、他のアプリケーションにおいて、飲み物に手を伸ばすなどのユーザーのある捕らえられた動作を表示することは望ましくないかもしれない。ある場合には、特定のアプリケーションに適用可能なユーザー動作は、冗長であったり、ユーザーとユーザーとの間で非常に類似していたりする。例えば、ボウリング動作のバックスイングは共通しているかもしれないし、ユーザーの捕らえられたバックスイング動作を捕らえてモデル化することは必要ではないかもしれない。他の場合には、あるユーザー動作は捕らえるのがより難しく、又は、経験のないユーザーは、適切に動作をすることが困難であるかもしれない。例えば、適切なバックスイングは幼児にとっては困難な動作であるかもしれず、予め準備された動作をボウリング動作のその一部について使用することが望ましいかもしれない。ユーザーの動作は、アニメーションに直接マッピングされない場合でさえ、アプリケーションにおける制御のためにさらに解釈されてもよい。代替的に、予め準備されたアニメーションは、それが表示される期間の全て又は一部の間に制御を提供してもよい。
【００４７】
[0052]ジェスチャーライブラリー１９０は、所定の又はあらかじめ記録されるアニメーションデータを含む予め準備されたアニメーションライブラリー１９２を含んでもよい。コンピューター環境は、特定のジェスチャーなどのある動作を表すために、予め準備されたアニメーションライブラリー１９２からの予め準備されたデータを実施してもよい。予め準備されたアニメーションは、ユーザーの捕らえられた動作に直接マッピングする視覚的な表現を表示するのではなく、ユーザーの動作を表すために使用されてもよい。予め準備されたアニメーションライブラリー１９２は様々な予め準備されたアニメーションを含んでもよい。アニメーションは、特定のアプリケーション、特定のジェスチャー、特定の動作、技術レベルなどに対して、適用可能かもしれない。
【００４８】
[0053]予め準備されたアニメーションは捕らえられた動作のアニメーションに転移点においてつながれてもよいし、又は、捕らえられた動作のアニメーションが予め準備されたアニメーションに転移点においてつながれてもよい。両方のシナリオにおいて、捕らえられた動作のアニメーションにつながれるべき予め準備されたアニメーションの選択は、ユーザーのパラメーター、アプリケーションのタイプ、予め準備されたアニメーションのパラメーター、ユーザーのスキルのレベル、ジェスチャーを行う難しさのレベル、ジェスチャーの冗長性などの、様々な要因に依存してもよい。
【００４９】
[0054]多くの予め準備されたアニメーションが同じ所望の動作を表してもよく、コンピューター環境は、複数のうちから最も適した予め準備されたアニメーションを選択してもよい。例えば、複数の予め準備されたアニメーションの選択肢は、テニスのサーブのバックスイングを表すのに利用可能であってもよい。バックスイング動作の位置と速度のパラメーターは、バックスイングを表す複数の予め準備されたアニメーションの各々に対して変化してもよい。異なる要因に基づく複数の予め準備されたアニメーションの選択肢のいくつかの例が記載される。
【００５０】
[0055]例示的な実施例において、捕らえられた動作のアニメーションにつなぐための特定の予め準備されたアニメーションの選択は、転移点において捕らえられた動作のアニメーションのパラメーターに対する、予め準備されたアニメーションパラメーターのパラメーターの比較に依存してもよい。例えば、バックスイング動作を表す５つの予め準備されたアニメーションの選択肢があってもよい。転移点まで、及び転移点において、取り込み装置は、ユーザーの動作の画像データを受信してもよい。画像データは、転移点に対する、及び転移点における、ユーザーの位置を識別するために解析されてもよく、この例で、システムは、ユーザーのテニス動作の全体にわたってユーザーの腕の非常に遅い速度を識別する。５つの予め準備されたアニメーションの選択肢からの、バックスイング動作のための予め準備されたアニメーションの選択は、ユーザーの動作のパラメーターに最も近い位置及び速度のパラメーターを備えたアニメーションに基づいてもよい。同様に、予め準備されたアニメーションから捕らえられた動作のアニメーションに戻る場合、取り込み装置によって捕らえられた画像データは物理空間中の動作を識別するために解析されてもよい。
【００５１】
[0056]予め準備されたアニメーションのパラメーターは、取り込み装置によって捕らえられた動作により密接に関連するように修正されてもよい。画像データの分析は、実行する予め準備されたアニメーションのアニメーションを修正するか又は複数の予め準備されたアニメーションを混合するために、異なる予め準備されたアニメーションへの遷移を促してもよい。例えば、複数の予め準備されたアニメーションのうちの１つが、捕らえられた動作のアニメーションにつなぐために選択されてもよい。パラメーターは、ユーザーの物理的特徴、又はユーザーがする傾向がある動作により密接に対応するように修正されてもよい。
【００５２】
[0057]別の例示的な実施例において、予め準備されたアニメーションの選択は、実際には、ある方法で組み合わせられる２つ以上の予め準備されたアニメーションの選択であってもよい。例えば、２つ以上の予め準備されたアニメーションは、捕らえられた動作のアニメーションにつなぐために望まれるパラメーターを有してもよい。複数の予め準備されたアニメーションからのパラメーターは、捕らえられた動作のアニメーションにつなぐための、新たな、より適切な予め準備されたアニメーションを生成するために組み合わせられてもよい。例示的な実施例において、コンピューター環境は、新たな予め準備されたアニメーションを生成するためにアニメーション混合コンポーネント１９５を使用してもよく、入力は複数の予め準備されたアニメーションである。新たな予め準備されたアニメーションは、転移点におけるユーザーの捕らえられた動作についてのよりよい表現であってもよく、したがって、それらがともにつながれる場合、アニメーション間のより滑らかな遷移を提供してもよい。したがって、上記のテニスの例において、テニスのサーブにおけるバックスイングを表す２つ以上の予め準備されたアニメーションは、混合されるなど、ある方法で組み合わせられてもよく、ユーザーの位置及び速度に合わせられる新たな予め準備されたアニメーションを提供する。
【００５３】
[0058]別の例示的な実施例において、捕らえられた動作のアニメーションにつなぐための特定の予め準備されたアニメーションの選択は、ユーザーのパラメーターに基づいてもよい。例えば、取り込み装置は、ゲームをするユーザーの画像データを受信してもよい。画像データは、ユーザー及びユーザーの動作に関する各種パラメーターを決定するために解析されてもよい。画像データは、ユーザーの高さのほか、特定の動作に対するユーザーの関節の動作を示してもよい。転移点において捕らえられた、動作、及びユーザーの関節及び手足の動作の全体にわたって、ユーザーの関節の位置が識別されてもよい。ユーザーの同様の高さを表すアニメーションに対応し、取り込み装置によって捕らえられたユーザーの動作と同様の方法で動く、予め準備されたアニメーションが選択されてもよい。
【００５４】
[0059]別の例示的な実施例において、捕らえられた動作のアニメーションにつなぐための特定の予め準備されたアニメーションの選択は、ユーザーのスキルレベルに基づいてもよい。例えば、経験のないユーザーがテニス競技をしている場合、サーブのバックスイングにおけるアニメートされた腕のスイングの動作は、はるかに遅く基本的であることが望ましいかもしれない。したがって、経験のないユーザーに合わせた基本的な予め準備されたアニメーションの選択が適切かもしれない。他方では、より経験を積んだユーザーは、ボールにスピンをかけてもよく、又はよりよいラケットの制御又は照準を有してもよく、より速いバックスイングを有していてもよい。バックスイング動作においてボールに対するスピン又は照準が占められるように、予め準備されたアニメーションに対するより多くのオプションが、より高度な技術レベルに基づいて提示されてもよい。
【００５５】
[0060]複数の予め準備されたアニメーションからの選択について具体的な例が提供されるが、選択はパラメーターの任意の組み合わせに基づくことができることを考慮されたい。例えば、複数の予め準備されたアニメーションからの選択は、取り込み装置によって捕らえられたユーザーの技術レベル及びユーザーの高さの両方に基づくことができる。予め準備されたアニメーションの選択は、実行の最中に変化して、実行する予め準備されたアニメーションを、新たなもの、複数の混合された予め準備されたアニメーションに基づいたアニメーション、修正された予め準備されたアニメーションなどに移行させてもよい。
【００５６】
[0061]予め準備されたアニメーションはまた、捕らえられた動作のアニメーションにつながれる前に修正されてもよい。ある場合には、予め準備されたアニメーションは、予め準備されたアニメーション及び捕らえられた動作のアニメーションをつなぐために平滑化がほとんど又はまったく要求されないような点へと修正されてもよい。例えば、ユーザーの捕らえられた動作のパラメーターが分析されてもよく、予め準備されたアニメーションが連鎖のために選択されてもよい。連鎖の前に、予め準備されたアニメーションは、転移点におけるユーザーの捕らえられた動作をより密接に表すように修正されてもよい。例えば、アニメーション中の腕の位置は、ユーザーの捕らえられた動作についてのそれをより密接に表すように修正されてもよい。
【００５７】
[0062]そのようなやり方で予め準備されたアニメーションのあるパラメーターを修正することにより、時には、アニメーションの種類間のシームレスな遷移のための任意の平滑化技術の必要性をなくすことができる。パラメーターは実行中に修正されて、動作が捕らえられるときに、ランタイム中にユーザーの動作に対して予め準備されたアニメーションのパラメーターを合わせてもよい。代替的に、パラメーターはユーザーの履歴データに基づいて修正されてもよい。例えば、予め準備されたアニメーションがテニスのサーブにおけるユーザーのバックスイング動作に対して挿入される場合、ユーザーの位置の履歴データは、予め準備されたアニメーションとユーザーの捕らえられた動作のアニメーションとの間の転移点におけるユーザーの肘の典型的な位置を示してもよい。ユーザーが、そのユーザーに特有の方法で、毎回同様のやり方でルーチン又は共通の動作をしばしば行うので、予め準備されたアニメーションのパラメーターはそのユーザーの履歴データに基づいて修正することができる。同様に、ユーザーは、アプリケーションにおける制御のためのジェスチャーを徐々に改善してもよく、履歴データは、ユーザーの捕らえられた動作の変化を追跡し、したがって、予め準備されたアニメーションのパラメーターを修正することができる。
【００５８】
[0063]コンピューター環境１２は転移点コンポーネント１９４及びアニメーション混合コンポーネント２００を含んでもよい。転移点コンポーネント１９８は、予め準備されたアニメーションをいつ使用することが適切であるか、及びユーザーの捕らえられた動作に対応するアニメーションをいつ提供することが適切であるかを決定してもよい。アプリケーションのタイプ、ユーザーの技術レベル、ジェスチャーを行う難しさのレベル、ジェスチャーの冗長性などの様々な要因に依存して、転移点モジュール１９８は、転移点を識別又は設定することができ、表される動作は、ユーザーの動作に対応するアニメーションと予め準備されたアニメーションとの間で移行してもよい。
【００５９】
[0064]ジェスチャーライブラリー１９０、転移点コンポーネント１９４及びアニメーション混合コンポーネント２００は、ハードウェア、ソフトウェア又は両方の組み合わせで実施されてもよい。例えば、ジェスチャーライブラリー１９０、転移点コンポーネント１９４及びアニメーション混合コンポーネント２００は、プロセッサー１９６などのコンピューター環境のプロセッサー上（又は図３の演算処理装置１０１もしくは図４の演算処理装置２５９上）で実行するソフトウェアとして実施されてもよい。
【００６０】
[0065]図２−４に描かれるブロック図は例示的なものであり、特定の実施を意味するようには意図されないことが強調される。したがって、図１のプロセッサー１９５又は３２、図３の演算処理装置１０１及び図４の演算処理装置２５９は、単一のプロセッサー又は複数のプロセッサーとして実施することができる。複数のプロセッサーは分散されるか又は中心に配置されるかすることができる。例えば、ジェスチャーライブラリー１９０は、取り込み装置のプロセッサー３２上で実行するソフトウェアとして実施されてもよいし、又は、コンピューター環境中のプロセッサー１９５上で実行するソフトウェアとして実施されてもよい。本明細書において開示された技術を行うのに適したプロセッサーの任意の組み合わせが考えられる。複数のプロセッサーは、無線で、有線で又はその組み合わせによって、通信することができる。
【００６１】
[0066]転移点を識別するジェスチャーライブラリー及びパラメーターは、ジェスチャーツールによってアプリケーション又はアプリケーションのコンテキストに対して調整されてもよい。コンテキストは文化的コンテキスト（文化的背景）であってもよく、環境上のコンテキスト（環境状況）であってもよい。文化的コンテキストは、システムを使用するユーザーの文化を指す。異なる文化は著しく異なる意味を与える類似のジェスチャーを使用することがある。例えば、別のユーザーに「見る」か又は「自身の目を使う」ように言いたいアメリカ人のユーザーは、自分の目の遠位側（distal side）に近い自分の頭に自分の人差し指を置いてもよい。しかし、イタリア人のユーザーにとって、このジェスチャーはマフィアを指すものとして解釈され得る。
【００６２】
[0067]同様に、単一のアプリケーションの異なる環境間で異なるコンテキストがあってもよい。自動車を操作することを含む一人称のシューティングゲームを例にとる。ユーザーが歩いている間、指を地面に向けて拳を作り、拳を体から離して前に伸ばすことは、パンチをするジェスチャーを表してもよい。ユーザーがドライブの状況にある間、その同じ動作は「ギヤをシフトする」ジェスチャーを表してもよい。また、１つ以上のメニュー環境があってもよく、ユーザーは、自分のゲームをセーブし、自分のキャラクターの装備から選択をし、又は直接的なゲームプレイを含まない同様のアクションを行うことができる。その環境では、何かを選択したり別の画面へ進んだりするなどのために、この同じジェスチャーは第３の意味を持っていてもよい。
【００６３】
[0068]ジェスチャー、予め準備されたアニメーション及び転移点は、そのジャンルのアプリケーションによって使用される可能性のある挨拶のジェスチャーのジャンルパッケージへと一緒にグループ化されてもよい。挨拶のジェスチャー−一般に一緒に使用されるものにおけるような挨拶か、又は、別のもののパラメーターを変更する一つのもののパラメーターの変化におけるような挨拶−は、ジャンルパッケージへグループ化されてもよい。これらのパッケージはアプリケーションに提供されてもよく、少なくとも１つを選択してもよい。アプリケーションは、アプリケーションの独自の態様に最も合うよう、ジェスチャー、予め準備されたアニメーション又は転移点のパラメーターを調整するか又は修正してもよい。そのパラメーターが調整される場合、パラメーターが挨拶のままであるように、ジェスチャー又は第２のジェスチャーの一方の（相互依存の意味での）第２の挨拶のパラメーターもまた調整される。ビデオゲームのためのジャンルパッケージは、一人称のシューティングゲーム、アクション、ドライブ及びスポーツなどのジャンルを含んでもよい。
【００６４】
[0069]転移点コンポーネント１９８は、予め準備されたアニメーションをいつ使用することが適切であるか、及びユーザーの捕らえられた動作又はジェスチャーに基づいたアニメーションをいつ提供することが適切であるかを決定することができる。転移点コンポーネント１９４は、いずれかの関連するパラメーターが転移点を示すものを満たすかどうかを決定するためにユーザーの動作を分析してもよい。例えば、ボウリングアプリケーションでのボウリング動作のための様々なジェスチャーは、コンピューター環境１２によって解釈されてもよい。ジェスチャーフィルター１９１は、バックスイングのジェスチャーのものと一致するパラメーターに基づいてユーザーのバックスイングの開始を識別してもよい。
【００６５】
[0070]ユーザーの手が自分の腰の面と交差する点においてボウリング動作での転移点が設定されてもよい。転移点の特徴は、ユーザーの捕らえられた動作がバックスイング動作を含み、ある速度で生じるということであってもよい。物理空間でユーザーのジェスチャーから測定されたパラメーターは、転移点のパラメーターと一致してもよい。転移点の識別は、予め準備された又は所定のジェスチャーの実施を引き起こすことができる。予め準備されたアニメーションのライブラリー１９２は予め準備されたバックスイングのアニメーションを格納することができる。
【００６６】
[0071]アニメーション混合コンポーネント１９５は、生のアニメーションと予め準備されたアニメーションとの間の遷移を滑らかにしてもよい。例えば、コンピューター環境１２は、ユーザーの動作の骨格マッピングを生成し、転移点で測定されたユーザーの位置の、予め準備されたアニメーションの初期位置のそれへの遷移を滑らかにしてもよい。このようにユーザーの動作及び予め準備されたアニメーションをつなげることによって、潜在的にシームレスな遷移を提供して、ユーザーの表示された表現に対する任意の混乱を最小化することができる。捕らえられた動作はユーザー間で変わってもよく、ユーザーが特定のジェスチャーを行うごとに変わってもよい。したがって、所定の動作とつながれた、様々なユーザー及び様々な動作のための混合もまた、変わってもよい。連鎖のための選択された予め準備されたアニメーションはまた、必要とされる量の混合を決定することができる。
【００６７】
[0072]再びボールを持ち出すときにユーザーの手が自分の腰の面と交差する場合、別の転移点が設定されてもよい。第２の転移点は、ユーザーの捕らえられた動作又はジェスチャーに対応するアニメーションの使用へ戻ることを引き起こしてもよい。ここでも、アニメーション混合コンポーネント１９５は、ユーザーの動作のアニメーションと予め準備されたアニメーションとの間の遷移を滑らかにしてもよい。
【００６８】
[0073]図３は、目標認識、分析及び追跡システムにおいて１つ以上のジェスチャーを解釈するために使用され得るコンピューター環境の例示的な実施例を示す。図１Ａ−２に関して上述されたコンピューター環境１２などのコンピューター環境は、ゲーム機などのマルチメディアコンソール１００であってもよい。図３に示されるように、マルチメディアコンソール１００は、１次キャッシュ１０２、２次キャッシュ１０４及びフラッシュＲＯＭ（読み取り専用メモリー）１０６を有する中央処理装置（ＣＰＵ）１０１を有する。１次キャッシュ１０２及び２次キャッシュ１０４は、一時的にデータを格納し、したがってメモリーアクセスサイクルの数を減らし、それによって、処理速度とスループットを改善する。ＣＰＵ１０１は、１つより多くのコア、したがって、追加の１次及び２次キャッシュ１０２及び１０４を有するように提供されてもよい。フラッシュＲＯＭ１０６は、マルチメディアコンソール１００に電源が入れられる場合、ブート処理の初期段階中にロードされる実行可能コードを格納してもよい。
【００６９】
[0074]グラフィック処理部（ＧＰＵ）１０８及びビデオエンコーダー／ビデオコーデック（コーダー／デコーダー）１１４は、高速及び高解像度のグラフィック処理のためのビデオ処理パイプラインを形成する。データは、バスを介してグラフィック処理部１０８からビデオエンコーダー／ビデオコーデック１１４まで運ばれる。ビデオ処理パイプラインは、テレビ又は他のディスプレイへの送信のために、データをＡ／Ｖ（音声／ビデオ）ポート１４０へ出力する。ＲＡＭ（ランダムアクセスメモリー）等を含むがこれに限定されない様々な種類のメモリー１１２へのプロセッサーのアクセスを容易にするために、メモリーコントローラー１１０はＧＰＵ１０８に接続される。
【００７０】
[0075]マルチメディアコンソール１００は、好ましくはモジュール１１８上で実施される、Ｉ／Ｏコントローラー１２０、システム管理コントローラー１２２、音声処理部１２３、ネットワークインターフェースコントローラー１２４、第１のＵＳＢホストコントローラー１２６、第２のＵＳＢコントローラー１２８及び前面パネルＩ／Ｏサブアセンブリー１３０を含む。ＵＳＢコントローラー１２６及び１２８は、周辺コントローラー１４２（１）−１４２（２）、無線アダプター１４８及び外部記憶装置１４６（例えば、フラッシュメモリー、外部ＣＤ／ＤＶＤ  ＲＯＭドライブ、取り外し可能な媒体など）のホストとして役立つ。ネットワークインターフェース１２４及び／又は無線アダプター１４８は、ネットワーク（例えば、インターネット、ホームネットワークなど）へのアクセスを提供し、イーサネット（商標）カード、モデム、ブルートゥース（商標）モジュール、ケーブルモデムなどを含む、種々様々の有線又は無線アダプターコンポーネントのうちいずれであってもよい。
【００７１】
[0076]システムメモリー１４３はブート処理中にロードされるアプリケーションデータを格納するために提供される。メディアドライブ１４４が提供され、ＤＶＤ／ＣＤドライブ、ハードドライブ又は他の取り外し可能な媒体ドライブなどを含んでもよい。メディアドライブ１４４はマルチメディアコンソール１００の内部にあってもよいし又は外部にあってもよい。アプリケーションデータはマルチメディアコンソール１００による実行、再生などのためにメディアドライブ１４４を介してアクセスされてもよい。メディアドライブ１４４は、シリアルＡＴＡバス又は他の高速接続（例えば、ＩＥＥＥ  １３９４）などのバスを介してＩ／Ｏコントローラー１２０に接続される。
【００７２】
[0077]システム管理コントローラー１２２は、マルチメディアコンソール１００の能力の保証と関連する様々なサービス機能を提供する。音声処理部１２３及び音声コーデック１３２は、ハイファイ及びステレオ処理を備えた対応する音声処理パイプラインを形成する。音声データは、通信リンクを介して音声処理部１２３と音声コーデック１３２との間で運ばれる。音声能力を有する外部音声プレーヤー又は装置による再生のために、音声処理パイプラインはＡ／Ｖポート１４０へデータを出力する。
【００７３】
[0078]前面パネルＩ／Ｏサブアセンブリー１３０は、電源ボタン１５０及び取り出しボタン１５２の機能のほか、マルチメディアコンソール１００の外側表面上に露出した、任意のＬＥＤ（発光ダイオード）又は他のインジケーターをサポートする。システム電源モジュール１３６はマルチメディアコンソール１００のコンポーネントに電力を提供する。ファン１３８は、マルチメディアコンソール１００内の回路を冷やす。
【００７４】
[0079]ＣＰＵ１０１、ＧＰＵ１０８、メモリーコントローラー１１０及びマルチメディアコンソール１００内の様々な他のコンポーネントは、シリアル及びパラレルバス、メモリーバス、周辺バス、並びに様々なバスアーキテクチャーのうちの任意のものを使用するプロセッサー又はローカルバスを含む１つ以上のバスを介して相互に接続される。例として、そのようなアーキテクチャーは、周辺コンポーネント相互接続（ＰＣＩ）バス、ＰＣＩ−Ｅｘｐｒｅｓｓバスなどを含んでもよい。
【００７５】
[0080]マルチメディアコンソール１００に電源が入れられる場合、アプリケーションデータはシステムメモリー１４３からメモリー１１２及び／又はキャッシュ１０２、１０４にロードされ、ＣＰＵ１０１上で実行されてもよい。マルチメディアコンソール１００上で利用可能な異なるメディアタイプにナビゲートする場合、アプリケーションは、一貫したユーザー経験を提供するグラフィカルユーザーインターフェースを提示してもよい。動作において、マルチメディアコンソール１００に追加の機能を提供するために、アプリケーション及び／又はメディアドライブ１４４内に含まれる他の媒体は、メディアドライブ１４４から開始されてもよいしプレイされてもよい。
【００７６】
[0081]マルチメディアコンソール１００は、テレビ又は他のディスプレイに単にシステムを接続することにより、スタンドアローンシステムとして動作されてもよい。このスタンドアローンモードでは、マルチメディアコンソール１００は、１人以上のユーザーがシステムとインタラクトしたり、映画を見たり、又は音楽を聴いたりすることを可能にする。しかし、ネットワークインターフェース１２４又は無線アダプター１４８を介して利用可能になる広帯域接続の統合により、マルチメディアコンソール１００は、さらに、より大きなネットワークコミュニティの参加者として動作されてもよい。
【００７７】
[0082]マルチメディアコンソール１００に電源が入れられる場合、設定された量のハードウェア資源がマルチメディアコンソール・オペレーティングシステムによるシステムの使用のために予約される。これらの資源は、メモリー（例えば、１６ＭＢ）、ＣＰＵ及びＧＰＵサイクル（例えば、５％）、ネットワーキング帯域幅（例えば、８ｋｂｓ）などの予約を含んでもよい。これらの資源がシステム・ブート時間において予約されるので、予約された資源はアプリケーションの視界（ビュー）から存在しない。
【００７８】
[0083]特に、メモリーの予約は、開始（launch）カーネル、並行システムアプリケーション及びドライバーを含むのに十分なほど大きなことが好ましい。ＣＰＵの予約は、予約されるＣＰＵの使用がシステムアプリケーションによって使用されない場合、使用されていないスレッドが任意の未使用のサイクルを消費するように、一定であることが好ましい。
【００７９】
[0084]ＧＰＵの予約に関して、システムアプリケーション（例えば、ポップアップ）によって生成された軽量のメッセージは、ポップアップをオーバーレイへとレンダリングするためのコードを予定するためにＧＰＵ割り込みを使用することにより表示される。オーバーレイに必要なメモリーの量は、オーバーレイ領域のサイズに依存し、オーバーレイは好ましくは画面解像度に対応する。十分なユーザーインターフェースが並行システムアプリケーションによって使用される場合、アプリケーションの解像度と無関係な解像度を使用することが望ましい。周波数を変化させてテレビ再同期を引き起こす必要性が除去されるよう、スケーラーはこの解像度を設定するために使用され得る。
【００８０】
[0085]マルチメディアコンソール１００がブートし、システムリソースが予約された後、並行システムアプリケーションはシステム機能を提供するために実行する。システム機能は、上に記載された予約されたシステムリソース内で実行する１組のシステムアプリケーションにカプセル化される。オペレーティングシステムのカーネルは、ゲームアプリケーションスレッドに対するシステムアプリケーションスレッドであるスレッドを識別する。システムアプリケーションは、好ましくは、アプリケーションに対して一貫したシステムリソース・ビューを提供するために、所定の時間及び間隔においてＣＰＵ１０１上で実行するように予定される。スケジューリングは、コンソール上で動作するゲームアプリケーションのためのキャッシュの混乱を最小化するものである。
【００８１】
[0086]並行システムアプリケーションが音声を要求する場合、音声処理は、時間感度のために、ゲームアプリケーションに対して非同期に予定される。システムアプリケーションがアクティブな場合、マルチメディアコンソールアプリケーション・マネージャー（以下に述べられる）はゲームアプリケーションの音声レベル（例えば、ミュート、減衰）を制御する。
【００８２】
[0087]入力装置（例えば、コントローラー１４２（１）及び１４２（２））はゲームアプリケーション及びシステムアプリケーションによって共有される。入力装置は予約される資源ではないが、各々が装置の中心を有するように、システムアプリケーションとゲームアプリケーションとの間で切り替えられるべきである。アプリケーションマネージャーは、好ましくは、ゲームアプリケーションの知識なしに、入力ストリームのスイッチングを制御し、ドライバーは、焦点スイッチに関する状態情報を保持する。カメラ２６、２８及び取り込み装置２０は、コンソール１００のための追加の入力デバイスを定義してもよい。
【００８３】
[0088]図４は、目標認識、分析及び追跡システムにおいて１つ以上のジェスチャーを解釈するために使用される、図１Ａ−２に示されるコンピューター環境１２であってもよいコンピューター環境２２０の別の例示的な実施例を示す。コンピューターシステム環境２２０は、適切なコンピューター環境の１つの例にすぎず、本願に開示された主題の使用又は機能の範囲に関していかなる限定も示唆するようには意図されない。また、コンピューター環境２２０は、例示的な動作環境２２０に示されたコンポーネントのうちのいかなる１つ又は組み合わせに関連するいかなる依存性も要件も有しているものとは解釈されるべきでない。いくつかの実施例において、様々な示された計算要素は、本開示の特定の態様を説明するように構成された回路を含んでもよい。例えば、本開示の中で使用される回路という用語は、ファームウェア又はスイッチによって機能を実行するように構成された専門のハードウェアコンポーネントを含んでもよい。他の例示的な実施例において、回路という用語は、機能を実行するように動作可能なロジックを具体化するソフトウェア命令によって構成された、汎用演算処理装置、メモリーなどを含んでもよい。回路がハードウェアとソフトウェアの組み合わせを含む例示的な実施例において、開発者は、ロジックを具体化するソースコードを書いてもよく、ソースコードは、汎用演算処理装置によって処理することができる、機械読み取り可能なコードへコンパイルすることができる。当業者であれば、ハードウェア、ソフトウェア又はハードウェア／ソフトウェアの組み合わせの間の違いがほとんどない点へと最先端技術が進化したことを認識することができるので、特定の機能を有効にするためのハードウェア対ソフトウェアの選択は開発者に委ねられた設計選択である。より具体的には、当業者は、ソフトウェアプロセスが等価なハードウェア構造に転換することができ、ハードウエア構造はそれ自体等価なソフトウェアプロセスに転換することができることを認識することができる。したがって、ハードウェア実装対ソフトウェア実装の選択は設計選択のうちの１つであり、開発者に委ねられている。
【００８４】
[0089]図４において、コンピューター環境２２０はコンピューター２４１を含み、それは、通常、様々なコンピューター読み取り可能な媒体を含む。コンピューター読み取り可能な媒体は、コンピューター２４１によってアクセスすることができ、揮発性及び不揮発性の媒体、取り外し可能な媒体及び取り外し不能な媒体の両方を含む任意の利用可能な媒体であってもよい。システムメモリー２２２は、コンピューター記憶媒体を、読み取り専用メモリー（ＲＯＭ）２２３及びランダムアクセスメモリー（ＲＡＭ）２６０などの揮発性及び／又は不揮発性メモリーの形式で含む。起動中などに、コンピューター２４１内の要素間で情報を転送するのを支援する基本ルーチンを含む基本入出力システム２２４（ＢＩＯＳ）は、ＲＯＭ２２３に通常格納される。ＲＡＭ２６０は、通常、演算処理装置２５９に直ちにアクセス可能であり及び／又は演算処理装置２５９によって現在動作されているデータ及び／又はプログラムモジュールを含む。限定ではなく例として、図４は、オペレーティングシステム２２５、アプリケーションプログラム２２６、他のプログラムモジュール２２７及びプログラムデータ２２８を示す。
【００８５】
[0090]コンピューター２４１はまた、他の取り外し可能／取り外し不能な、揮発性／不揮発性のコンピューター記憶媒体を含んでもよい。ほんの一例として、図４は、取り外し不能で不揮発性の磁気媒体から読み出し又はそれに書き込むハードディスクドライブ２３８、取り外し可能で不揮発性の磁気ディスク２５４から読み出し又はそれに書き込む磁気ディスクドライブ２３９、及びＣＤＲＯＭ又は他の光学の媒体などの取り外し可能な不揮発性の光ディスク２５３から読み出し又はそれに書き込む光ディスクドライブ２４０を示す。例示的な動作環境の中で使用することができる、他の取り外し可能／取り外し不能な、揮発性／不揮発性のコンピューター記憶媒体は、磁気カセットテープ、フラッシュメモリーカード、デジタル・バーサタイル・ディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどを含むが、これらに限定されない。ハードディスクドライブ２３８は、通常、インターフェース２３４などの取り外し不能なメモリーインターフェースを介してシステムバス２２１に接続され、磁気ディスクドライブ２３９及び光ディスクドライブ２４０は、通常、インターフェース２３５などの取り外し可能なメモリーインターフェースによってシステムバス２２１に接続される。
【００８６】
[0091]上に記載され図４に示されたドライブ及びそれらの関連するコンピューター記憶媒体は、コンピューター２４１のための、コンピューター読み取り可能な命令、データ構造、プログラムモジュール及び他のデータの記憶を提供する。図４において、例えば、ハードディスクドライブ２３８は、オペレーティングシステム２５８、アプリケーションプログラム２５７、他のプログラムモジュール２５６及びプログラムデータ２５５を格納するものとして示される。これらのコンポーネントが、オペレーティングシステム２２５、アプリケーションプログラム２２６、他のプログラムモジュール２２７及びプログラムデータ２２８と同じであってもよいし異なっていてもよいことに留意されたい。オペレーティングシステム２５８、アプリケーションプログラム２５７、他のプログラムモジュール２５６及びプログラムデータ２５５は、少なくとも、それらが異なるコピーであることを示すために、ここでは異なる番号を与えられる。ユーザーは、キーボード２５１及び一般にマウス、トラックボール又はタッチパッドと呼ばれるポインティングデバイス２５２などの入力装置を介してコンピューター２４１へコマンドと情報を入力してもよい。他の入力装置（図示せず）は、マイクロホン、ジョイスティック、ゲームパッド、衛星放送アンテナ、スキャナーなどを含んでもよい。これら及び他の入力装置は、システムバスに結合されるユーザー入力インターフェース２３６を介して演算処理装置２５９にしばしば接続されるが、パラレルポート、ゲームポート又はユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェース及びバス構造によって接続されてもよい。カメラ２６、２８及び取り込み装置２０は、コンソール１００のための追加の入力装置を定義してもよい。モニター２４２又は他の種類の表示装置はまた、ビデオインターフェース２３２などのインターフェースを介してシステムバス２２１に接続される。モニターに加えて、コンピューターはまた、出力周辺インターフェース２３３を介して接続され得るスピーカー２４４及びプリンター２４３などの他の周辺の出力装置を含んでもよい。
【００８７】
[0092]コンピューター２４１は、リモートコンピューター２４６などの１つ以上のリモートコンピューターへの論理接続を使用して、ネットワーク化された環境において動作してもよい。記憶装置２４７のみが図４に示されたが、リモートコンピューター２４６は、パーソナルコンピューター、サーバ、ルーター、ネットワークＰＣ、ピア装置又は他の共通ネットワークノードであってもよく、通常、コンピューター２４１に関連して上に記載された要素のうちの多く又はすべてを含む。図２に示された論理接続は、ローカルエリアネットワーク（ＬＡＮ）２４５及び広域ネットワーク（ＷＡＮ）２４９を含むが、他のネットワークを含んでもよい。そのようなネットワーキング環境は、オフィス、企業規模のコンピューターネットワーク、イントラネット及びインターネットにおいて通常のものである。
【００８８】
[0093]ＬＡＮネットワーキング環境中で使用される場合、コンピューター２４１はネットワークインターフェース又はアダプター２３７を介してＬＡＮ２４５に接続される。ＷＡＮネットワーキング環境中で使用される場合、コンピューター２４１は、通常、インターネットなどのＷＡＮ２４９を介した通信を確立するためのモデム２５０又は他の手段を含む。内部にあっても外部にあってもよいモデム２５０は、ユーザー入力インターフェース２３６又は他の適切な機構を介してシステムバス２２１に接続されてもよい。ネットワーク化された環境では、コンピューター２４１又はその一部に関連して示されるプログラムモジュールは、遠隔記憶装置に格納されてもよい。限定ではなく例として、図４は、リモートアプリケーションプログラム２４８をメモリー装置２４７上に存在するものとして示す。示されたネットワーク接続は例示的なものであり、コンピューター間で通信リンクを確立する他の手段が使用されてもよいことが理解される。
【００８９】
[0094]図５Ａは、取り込み装置２０から生成され得るユーザーについての例示的な骨格マッピングを描く。この実施例において、様々な関節及び骨が識別される：各手５０２、各前腕５０４、各肘５０６、各二頭筋５０８、各肩５１０、各腰５１２、各もも５１４、各膝５１６、各前足５１８、各足５２０、頭５２２、胴５２４、背骨の上端５２６及び下端５２８、並びにウエスト５３０。より多くの点が追跡される場合、指もしくはつま先の骨及び関節、又は鼻及び目などの顔の個々の特徴など、追加の特徴が識別されてもよい。
【００９０】
[0095]自分の体を動かすことによって、ユーザーはジェスチャーを作成することができる。ジェスチャーは、画像データとして捕らえられ、目的のために解析され得る、ユーザーによる動き又は姿勢を含む。ジェスチャーは動的なものであってもよく、ボールを投げることを真似することなどの動作を含む。ジェスチャーは、人が自分の胴５２４の前で交差させた前腕５０４を保つなど、静的な姿勢であってもよい。ジェスチャーはまた、模擬の剣をスイングすることによるなど、支え（props）を組込んでもよい。ジェスチャーは、手５０２をともに叩くことなど、１つより多くの体の部分、又は唇をすぼめるなどの微妙な動作を含んでもよい。
【００９１】
[0096]ユーザーのジェスチャーは汎用のコンピューティングコンテキストの中で入力に使用されてもよい。例えば、手５０２又は他の体の部分の様々な動きは、階層リスト中で上下にナビゲートし、ファイルを開き、ファイルを閉じ、ファイルを保存するなどの共通システムの広範なタスクに対応してもよい。例えば、ユーザーは、指が上を指し且つ手のひらが取り込み装置２０に面するようにして自分の手を保ってもよい。その後、ユーザーは、拳を作るために手のひらのほうへ指を閉じてもよく、これは、ウィンドウベースのユーザーインターフェース・コンピューター環境における集中した（focused）ウィンドウが閉じられるべきであることを示すジェスチャーであってもよい。ジェスチャーはまた、ゲームに依存して、ビデオゲームに特有のコンテキストにおいて使用され得る。例えば、ドライビングゲームの場合、手５０２及び足５２０の様々な運きは、車両をある方向に操縦し、ギヤを変え、加速し及びブレーキをかけることに対応してもよい。したがって、ジェスチャーは、表示されたユーザー画像に対して、及びビデオゲーム、テキストエディター、ワードプロセシング、データ管理などの種々様々のアプリケーションにおいてマッピングする、種々様々の動作を示してもよい。
【００９２】
[0097]ユーザーは、適当な位置において自分を歩かせたり走らせたりすることにより、ウォーキング又はランニングに対応するジェスチャーを生成してもよい。例えば、ユーザーは、移動することなくウォーキングを模倣するために、各脚５１２−５２０を交互に上げ下げしてもよい。システムは各腰５１２及び各もも５１４の分析によりこのジェスチャーを解析してもよい。１つの腰−ももの角度（垂線に対して測定され、立っている脚は０°の腰−ももの角度を有し、前に水平に伸びた脚は９０°の腰−ももの角度を有する）が他のももに関するあるしきい値を超える場合、歩み（ステップ）が認識されてもよい。歩行又は走行は、脚を交互に入れ替えることによって連続する幾つかのステップの後に認識されてもよい。２つの最も最近のステップの間の時間は期間として考えられてもよい。そのしきい値角度が満たされない幾つかの期間の後、システムは、歩行又は走りのジェスチャーが終わったと決定してもよい。
【００９３】
[0098]「歩き又は走り」のジェスチャーを考えると、アプリケーションは、このジェスチャーに関連付けられるパラメーターの値を設定してもよい。これらのパラメーターは、上記のしきい値角度、歩行又は走りのジェスチャーを開始するのに要するステップの数、ジェスチャーを終了するためにステップが生じない期間の数、及びジェスチャーが歩きか走りかを判断するしきい値期間を含んでもよい。ユーザーが自分の脚を速く動かすとき、速い期間は走りに対応してもよく、より遅い期間は歩行に対応してもよい。
【００９４】
[0099]ジェスチャーは、アプリケーションがそれ自身のパラメーターで無効にし得る１組のデフォルトパラメーターに最初に関連付けられてもよい。このシナリオでは、アプリケーションは、パラメーターを提供することは強いられないが、その代わりに、ジェスチャーがアプリケーションで定義されるパラメーターがない状態で認識されることを可能にする１組のデフォルトパラメーターを使用してもよい。ジェスチャーと関連する情報は、予め準備されたアニメーションの目的のために格納されてもよい。
【００９５】
[0100]ジェスチャーに関連付けられてもよい様々な出力が存在する。ジェスチャーが生じているかどうかに関して「はい又はいいえ」の基準があってもよい。また、ユーザーの追跡される動作がジェスチャーに対応する可能性に対応する信頼水準がさらにあってもよい。これは、包括的な、０と１との間の浮動小数点数に及ぶ均等な尺度（linear scale）であってもよい。このジェスチャー情報を受け取るアプリケーションが入力として誤検出（誤判定、false-positives）を受け入れることができない場合、それは、少なくとも０．９５などの高い信頼水準を有する認識されたジェスチャーのみを使用してもよい。アプリケーションがジェスチャーのすべてのインスタンス（instance）を認識しなければならない場合、誤検出を犠牲にしてでも、０．２より大きいにすぎないものなどの、はるかに低い信頼水準を少なくとも有するジェスチャーを使用してもよい。ジェスチャーは、最も最近の２つのステップ（歩み、steps）間の時間についての出力を有してもよく、第一歩のみが登録された場合、（任意の２つのステップ間の時間が正でなければならないので）これは、−１などの予約された値に設定されてもよい。ジェスチャーはまた、最も最近のステップの間に到達した最も高いもも角度についての出力を有してもよい。
【００９６】
[0101]別の例示的なジェスチャーは「かかと上げジャンプ」である。この場合、ユーザーは、地面から自分のかかとを上げるがつま先はつけたままにすることにより、ジェスチャーを作成してもよい。代替的に、ユーザーは、自分の足５２０が地面から完全に離れる空気中へとジャンプしてもよい。システムは、まっすぐに立っていることと等しい配置の位置にあるかどうかを見るために、肩５１０、腰５１２及び膝５１６の角度の関係を分析することにより、このジェスチャーについての骨格を解析してもよい。その後、これらの点及び背骨上部の点５２６及び背骨下部の点５２８は、任意の上向きの加速について監視されてもよい。加速の十分な組み合わせによりジャンプのジェスチャーが引き起こされてもよい。特定のジェスチャーを備えた加速の十分な組み合わせは、転移点のパラメーターを満たしてもよい。
【００９７】
[0102]この「かかと上げジャンプ」のジェスチャーを考えると、アプリケーションはこのジェスチャーに関連したパラメーターについて値を設定してもよい。パラメーターは上記の加速しきい値を含んでもよく、それは、ユーザーの肩５１０、腰５１２及び膝５１６のある組み合わせがジェスチャーを引き起こすためにどれくらい速く上方へ移動しなければならないかのほか、ジャンプがいまだ引き起こされ得る、肩５１０、腰５１２及び膝５１６の間の配置の最大角度を決定する。その出力は、信頼水準のほか、ジャンプの時のユーザーの体の角度を含んでもよい。
【００９８】
[0103]ジェスチャーを受け取るアプリケーションの詳細に基づくジェスチャーのパラメーターを設定することは、ジェスチャーを正確に識別する際に重要である。ジェスチャー及びユーザーの意図を適切に識別することは、好意的なユーザー経験を生み出す際に大きな助けとなる。
【００９９】
[0104]アプリケーションは、予め準備されたアニメーションを使用すべき点を識別するために、様々な転移点に関連付けられるパラメーターの値を設定してもよい。転移点は、特定のジェスチャー、速度、目標もしくは物体の角度、又はそれらの任意の組み合わせの識別など、様々なパラメーターによって定義されてもよい。転移点が特定のジェスチャーの識別によって少なくとも部分的に定義される場合、その後、ジェスチャーを適切に識別することは、転移点のパラメーターが満たされる信頼水準を増加させるのを支援する。
【０１００】
[0105]ジェスチャーに対する別のパラメーターは動いた距離であってもよい。ユーザーのジェスチャーが仮想環境中のアバターのアクションを制御する場合、そのアバターはボールからの腕の長さ（arm’s length from a ball）であってもよい。ユーザーがボールとインタラクトしてそれをつかみたい場合、これは、ユーザーが、つかむジェスチャーをしている間に自分の腕５０２−５１０をいっぱいに伸ばすことを要求してもよい。この状況において、ユーザーが部分的に自分の腕５０２−５１０を伸ばすにすぎない場合、同様のつかむジェスチャーは、ボールとのインタラクトという結果を達成できない。同様に、転移点のパラメーターはつかむジェスチャーの識別であってもよく、ユーザーが部分的に自分の腕５０２−５１０を伸ばすにすぎず、それによってボールとのインタラクトという結果を達成しない場合、ユーザーのジェスチャーはまた、転移点ののパラメーターを満たさない。
【０１０１】
[0106]ジェスチャー又はその一部は、それが生じなければならない空間体積（volume of space）をパラメーターとして有してもよい。この空間体積は、通常、体に関して表現することができ、ジェスチャーは体の動きを含む。例えば、右利きのユーザーについてのフットボールを投げるジェスチャーは、右肩５１０ａよりも低くなく、頭５２２について投げる腕５０２ａ−５１０ａと同じ側の、空間体積中でのみ認識され得る。体積のすべての境界はこの投げるジェスチャーなどとともに定義する必要はなく、体から離れた外側の境界が未定義にされ、体積は無制限に広がり、又は監視されているシーンの端まで延在する。
【０１０２】
[0107]図６Ａ−６Ｆは、ユーザー６０２がボウリングゲーム中にし得るジェスチャーの例を描く。図６Ａ−６Ｆの各々は、異なる時点におけるユーザーの動作の画像データのスナップショット又はフレームに対応してもよい。画像データの各フレームはユーザーの骨格マップを生成するために解析されてもよく、図６に示される骨格マップに関して記載されるように、ジェスチャーは識別されてもよい。図６Ａ−６Ｆに示される画像データのフレーム又はスナップショットは、取り込み装置によって捕らえられ、取り込み装置２０によって、又は図２に示されるようなコンピューター環境１２において処理されてもよい。
【０１０３】
[0108]取り込み装置２０は、画像データの連続するフレームを、ユーザーが距離を進むより速く捕らえてもよい。例えば、ボウリングのジェスチャーは１０秒の期間にわたって生じてもよく、奥行きカメラは４０フレーム／秒でデータを捕らえ、画像データについて４００のフレームを捕らえる。ユーザーの奥行き画像から骨格マップを生成したシステムは、ここで、そのユーザーの体が時間の経過とともにどのように動くかを決定してもよく、それから、ジェスチャーを解析してもよい。ユーザー動作中の異なる点において、システムは、ユーザーの動作を表すアニメーションを表示するのではなく、表示のために予め準備されたアニメーションを実施してもよい。
【０１０４】
[0109]図６Ａにおいて、ユーザー６０２は、自分の脇に腕６０４を下した状態で開始する。ユーザーは、図６Ｂにおいてユーザーの動作のスナップショットによって示されるボウリングのボール・リターンに対して歩く。その後、ユーザーは、図６Ｃにおいて、ユーザーの動作のスナップショットによって示されるようにボールを選択する。ユーザーは、取り込み装置によって識別され、ゲーム空間のアバターに関して表示することができる、ユーザーの物理空間中の実際の物理的物体に手を伸ばしていてもよい。代替的に、特定のアプリケーションで使用される支え（props）又は物体が画面上に表示されてもよく、ユーザーは、ゲーム空間における位置に対応するよう物理空間において自分を適切に配置することにより、物体とインタラクトすることができる。例えば、ボウリングのボール・リターンにおける一群のボールがゲーム空間に表示された場合、ユーザーは、前方への歩行動作をして物理空間へ入って、アバターが歩行し、向き直ってゲーム空間に表示されるボウリングのボール・リターンの方へ向かうことを制御することができる。ユーザーのジェスチャーにマッピングされるアバターなどの、ユーザーの表示された表現を見ることによって、ユーザーは、ボール選択をするために自分の位置を決定することができる。
【０１０５】
[0110]一旦ボールが選択されると、ユーザーは、図６Ｃ及び図６Ｄに示されるフレーム間のボウリングレーン上の位置へと歩き、自身を所望の位置に配置する。ここでも、表示に対してマッピングされたユーザーの動作を観察することによって、ユーザーは、ゲーム空間に表示されたボウリングレーン上の適切な位置にアバターを移動させるために、ユーザーの物理空間の中で歩行動作をすることができる。ユーザーは、図６Ｄにおけるユーザーの動作のスナップショットによって示されるバックスイング動作の準備をするためにボールを保持し、図６Ｅにおけるユーザーの動作のスナップショットによって示されるバックスイング動作を開始する。図６Ｆは、ボウリングレーンを下るボウリングのボールを離す点におけるユーザーを描く。
【０１０６】
[0111]取り込み装置２０は一連の静止画像を捕らえ、その結果、任意の１つの画像においてユーザーが動いていないように見えるが、ユーザーは（固定されたジェスチャーとは対照的に）このジェスチャーを行う過程で動いていてもよい。システムは、各静止画像におけるこの一連の姿勢をとり、それから、ユーザーが行っている動いているジェスチャーの信頼水準を決定することができる。
【０１０７】
[0112]ジェスチャーを行う際、ユーザーの動作はアバターなどのディスプレイ上の表現にマッピングされてもよい。ユーザーの捕らえられた動作に対応するアニメーションをマッピングする代わりに、予め準備されたアニメーションを挿入することは適切かもしれない。ユーザーの動作がアプリケーションの側面を制御するジェスチャーでない場合、ユーザーの動作を表示するか、又は予め準備されたアニメーションを挿入することがさらに望ましいかもしれない。例えば、図６Ｃにおけるユーザーのボール選択に続いて、上方へ背を曲げてボウリングのピンの方を向くように動くことを含む、図６Ｃ及び図６Ｄに示されるフレーム間の動作は、予め準備されたアニメーションによって一層よく表すことができる。ユーザーの捕らえられた動作をマッピングするのではなく、予め準備されたアニメーションを使用することがアニメーションの目的にとてｔより効率的かもしれない。別の例として、そのスナップショットが図６Ｅに示される、図６Ｄ及び６Ｆに描かれる画像間で生じるユーザーのバックスイングは、経験のないユーザーにとって複雑であるかもしれず、又は、それはボウリングゲームについてのそのような共通の動作であるので、予め準備されたアニメーションについて設定してもよい。
【０１０８】
[0113]動作の特定のジェスチャー又は部分は、様々な理由で予め準備されたアニメーションによって表されるように選択されてもよい。例えば、動作はユーザーのゲームでの成績にとって重要でないかもしれず、予め準備されたアニメーションの使用はユーザーの動作にアニメーションをマッピングするより効率的かもしれない。アニメーションの目的のために予め準備されたアニメーションを挿入することは、共通の動作、又は測定したり識別したりすることが複雑なものについては望ましいかもしれない。自分の動作が表示にマッピングされることをユーザーが期待しない状況において予め準備されたアニメーションを使用することは望ましいかもしれない。アプリケーションに適用可能ないくつかの動作は非常に一般的なので、ユーザーは、予め準備されたアニメーションの使用を、ユーザーの捕らえられた動作又はジェスチャーに基づくアニメーションの表示と区別することができず、一方又は他方を表示することが効率的かもしれない。予め準備されたアニメーションはゲーム又はアプリケーションにおけるブレークポイントを提供するのに望ましいかもしれない。例えば、予め準備されたアニメーションがボール選択の後にボウリングのボール・リターンからレーンへとユーザーのアバターを移動させることにユーザーが気づいていれば、ユーザーはアバターの動作に影響を及ぼすことなくゲームを再開する前に休憩をとることができる。その後、ユーザーは、ユーザーの動作の表示へとシステムのリターンを引き起こすために、引き金となる動作を身振りで表すことができる。
【０１０９】
[0114]予め準備されたアニメーションの使用をもたらす転移点並びに要求される混合の種類及び量は、アプリケーションの詳細に最も役立つように、ジェスチャーに関連付けられるパラメーターによって調整されてもよい。例えば、関連するジェスチャー情報を有するジェスチャーライブラリーを利用するボウリングアプリケーションにおいて、図６Ａ−６Ｆに示されるユーザーの動作は、ボウリングのジェスチャーとして識別されてもよい。ジェスチャーに関連するパラメーター又はアプリケーションに特有のパラメーターは、転移点を識別して、当該転移点に続くアニメーションの部分のための予め準備されたアニメーションの使用をもたらしてもよい。
【０１１０】
[0115]転移点を識別するためのパラメーターの組は、ある角度内で曲がったり特定の動作をしたりすることをユーザーに要求するなど、より厳密なものであってもよい。例えば、ユーザーのアバターが所望のボウリングのボールの上に位置する場合にいっぱいに伸ばされたつかむ動作をユーザーがすることを要求する上述のボウリング動作における転移点などの転移点は、アプリケーションに特有の動作によって識別されてもよい。転移点がパラメーターの組み合わせによって識別される場合、パラメーターの組み合わせは転移点の指示の信頼水準を増大させ得る。例えば、図６Ｃと６Ｄとの間の動作が予め準備されたアニメーションによって表されることになっているボウリングアプリケーションを考える。転移点を示すパラメーターは、アプリケーションの種類（例えば、ボウリングゲーム）、あるユーザー動作（例えば、上半身を曲げる）及びアプリケーションに特有の動作（例えば、ボール選択のためのつかむ動作）の組み合わせを要求してもよい。
【０１１１】
[0116]転移点はアプリケーション間で変化してもよい。１つのアプリケーションにおけるパラメーターの充足は転移点を示してもよいが、第２のアプリケーションにおいてそれらの同じパラメーターを満たすことは転移点を示さなくてもよい。ゲームでのその特定の点におけるつかむ動作は転移点を識別してもよく、予め準備されたアニメーションは次の転移点までユーザーの動作を表す。ゲームでないスプレッドシートアプリケーションなどの別のアプリケーションでは、つかむ動作はスプレッドシート中の１つのセルから別のセルに情報を移動させるために使用されてもよい。転移点のパラメーターは、１．５秒などの特定期間に特定の位置をユーザーが進むことを要求してもよく、ユーザーがこれらの位置を進むのに１．５秒を超える時間がかかる場合、それは特定の転移点として認識されず、そのため、予め準備されたアニメーションを引き起こさない。
【０１１２】
[0117]システムは、ボウリングのボール・リターンに向かうアバターの動作、上半身を曲げ、次に特定のボールに対してつかむ動作をすること、に対する物理空間中でのユーザーのジェスチャーを測定してもよい。遷移の点において、システムは、ボール選択に続く動作（例えば、背を上に曲げアバターをボウリングのピンに面するボウリングレーン上に適切に配置する動作）のために予め準備されたアニメーションを実施してもよい。システムは、ユーザーの生の動作に対応するアニメーションから予め準備されたアニメーションへの、又はその逆（予め準備されたアニメーションからユーザーの動作に対応するアニメーションへの）遷移を、表示に対して混乱が最小になるよう一緒につなぐことができるように、アニメーション混合の技術を使用してもよい。
【０１１３】
[0118]図７Ａ及び７Ｂは、図６Ａ−６Ｅに描かれたユーザー動作のフレームの各々を表し、さらに一連のユーザーのジェスチャー及び予め準備されたアニメーションを表し、システムがアニメーション混合技術によってユーザーのジェスチャーのアニメーションと予め準備されたアニメーションをどのように一緒につなぐことができるかを表す。
【０１１４】
[0119]転移点＃１、＃２、＃３及び＃４は、パラメーター、例えばユーザーの動作に特有のパラメーターが、転移点のパラメーターを満たす点であり得る。遷移を識別するパラメーターは、アプリケーションにおけるある点を示すパラメーターなどの、ユーザーの動作以外の何かに対応してもよい。転移点を設定するための任意の適切な方法を使用することができる。アプリケーション自体が、アプリケーションの種類及び／又はユーザーの技術レベルもしくはユーザーの経験に基づいて転移点を設定することができる。例えば、より多くの予め準備された動作が初歩のプレーヤーのために実施されてもよい。予め準備された動作が特定の動作に使用されるようにユーザーは転移点を設定することができ、又は、ユーザーは、多かれ少なかれ、アプリケーションの使用の全体にわたって、予め準備されたアニメーションの使用を要求することができる。
【０１１５】
[0120]転移点のパラメーターを満たすことにより、ユーザーの動作のアニメーションから予め準備されたアニメーションへの遷移又は予め準備されたアニメーションからユーザーの動作のアニメーションへの戻りを引き起こすことができる。図７Ａに示されるように、セクションＡは、ユーザーの動作のアニメーションの使用を表して、ボウリングゲームの側面を制御する様々なジェスチャーを描く。転移点のパラメーターが満たされる場合、予め準備されたアニメーションの実施がもたらされてもよい。転移点＃１における遷移は、アプリケーションの種類（例えば、ボウリングゲーム）、あるユーザー動作（例えば、上半身を曲げる）及びアプリケーションに特有の動作（例えば、ボール選択のためのつかむ動作）の組み合わせによって引き起こされてもよい。
【０１１６】
[0121]セクションＣに示されるように、ボウリングアプリケーションにおける例示的な予め準備されたアニメーションは、ボウリングのピンを備えたボウリングレーンの前で、ボウリングのボール・リターンからボールを拾い上げ、直立の位置へと戻り、次にユーザーのアバター又は他の視覚表現を配置することを含む動作であってもよい。捕らえられた動作から予め準備されたアニメーションへ移行するために、セクションＢによって表され、より完全に以下に述べるように、アニメーション混合が組み込まれてもよい。
【０１１７】
[0122]別の例示的な実施例において、システムは、セクションＣで使用される予め準備されたアニメーションの最後の位置などの、予め準備されたアニメーションによって提供される最後の位置において表示される表現を休止してもよい。予め準備されたアニメーションによって提供される最後の位置は、ディスプレイ上で、アバターなどのユーザーの表現によって描かれてもよい。ユーザーによってなされた生の動作の表現を再開するために、ユーザーは、特定の生のジェスチャーによって移行を引き起こす必要があるかもしれない。例えば、ユーザーによってなされた生の動作についてのシステムの測定及び表示を再開するために、ユーザーは、予め準備されたアニメーションによって提供される最後の位置に類似した位置においてセットアップをする必要があるかもしれない。したがって、遷移は、切断点を提供するか又はプレーヤーが適切な位置へ自身を設定するのを支援するために意図的に中断されてもよい。ユーザーの生の動作を得ること及び特定の動作の検出は、ユーザーの生の動作の使用へのシステムのリターンを引き起こしてもよい。上に記載されるように、ユーザーの動作のアニメーションと予め準備されたアニメーションとの間の遷移は、ディスプレイ上の動作を観察するプレーヤーにとってシームレスとなる可能性があり得る。
【０１１８】
[0123]別の転移点＃２は、予め準備されたアニメーションによって表される動作の完了によって識別されてもよい。例示的な実施例では、転移点＃２において、システムはユーザーの動作をアニメートすることに戻ってもよい。予め準備されたアニメーションからユーザーの動作のアニメーションへと戻る遷移をなすために、セクションＤによって表されるように、セクションＣで使用される予め準備されたアニメーションは、セクションＥの開始におけるユーザーの位置をより密接に表すように修正されてもよい。
【０１１９】
[0124]図７Ｂに描かれるように、例示的なボウリング動作のための一連のジェスチャー及びアニメーションは継続する。図７Ｂに示されるように、セクションＥは、再び、転移点＃２に続くユーザーのジェスチャーについてのシステムの継続的なアニメーションを示す。ゲーム空間におけるユーザー表現の位置決めはユーザーの好みに基づいてもよいので、ボール選択の後に物理空間中のユーザーの動作のアニメーションを表示することは望ましいかもしれない。例えば、ユーザーは、レーンに近づいていることを望んでもよいし、又は中心を外れてボウリングのピンと並ぶことを望んでもよい。
【０１２０】
[0125]第３の転移点、転移点＃３のパラメーターは、ユーザーがボウリング動作のバックスイングを始めるための準備ができていることを示す、ユーザーの生の動作又はジェスチャーであってもよい。例えば、転移点＃３のためのパラメーターは、ユーザーの胴の前の準備ができた位置でボールを保持すること、ボウリングレーン上の所望の位置が得られたという指示として所定の時間の間休止すること、及び、ユーザーの腰に向かう胴の前の位置からのボールのバックスイングを開始することを含むユーザーのジェスチャーの識別であってもよい。システムは、転移点＃３を示すユーザーの動作を識別し、それによって、セクションＧに描かれた予め準備されたアニメーションの使用を引き起こしてもよい。セクションＧに示されるように、ボウリングアプリケーションにおける例示的な予め準備されたアニメーションは、バックスイング及びユーザーの腰の面の後ろで生じる前方へのスイングであってもよい。予め準備されたアニメーションは、バックスイング及び前方へのスイングを表す、複数の予め準備されたアニメーションから選択されてもよい。捕らえられた動作から予め準備されたアニメーションへの移行を行うために、セクションＦによって表されるように、アニメーション混合が組み込まれてもよい。
【０１２１】
[0126]第４の転移点＃４は、予め準備されたアニメーションによって表される動作の完了によって識別されてもよい。例示的な実施例で、転移点＃４において、システムは、ユーザー動作の表現のためにユーザーの捕らえられた動作の使用に戻ってもよい。予め準備されたアニメーションからユーザーの捕らえられた動作への移行を行うために、セクションＨによって表されるように、アニメーション混合が組み込まれてもよい。
【０１２２】
[0127]ユーザーの動作のアニメーションは制御に対応してもよいし、対応しなくてもよい。同様に、予め準備されたアニメーションは制御に対応してもよいし、対応しなくてもよい。例えば、物理空間中のユーザーの動作のアニメーションは、アバターなどのユーザーのアニメーション又は視覚表現にマッピングされてもよい。ユーザーの動作がアプリケーションの側面を制御しない場合、システムはそれでもなおユーザーの動作にマッピングするアニメーションを表示してもよい。同様に、動作の部分を表す予め準備されたアニメーションが挿入され表示されてもよく、その動作はアプリケーションでの制御に適用可能であってもよいし、適用不能であってもよい。代替的に、ユーザーの動作は、オペレーティングシステムのための又はアプリケーションにおける制御などの制御に適用可能なジェスチャーに対応してもよい。例えば、ボウリングゲームアプリケーションでのつかむ動作はボール選択のジェスチャーを表してもよい。同様に、予め準備されたアニメーションは、アプリケーションの側面を制御してもよい（例えば、予め準備されたアニメーションが実行される場合、アプリケーションの制御へと転換される予め準備されたアニメーションのパラメーターが定義されてもよい）。
【０１２３】
[0128]転移点＃１、＃２、＃３及び＃４の各々においてなど、ユーザーのジェスチャー又は生の動作のアニメーションを予め準備されたアニメーションとつなぐために、システムは、アニメーション混合の方法を使用してもよい。アニメーション混合は、１つ以上のソースから階層的ノード情報を得て、同様の階層のノードのための新たな配置（orientation）を生成するためにそれらを一緒に混合する処理である。最も典型的な階層は、人間の骨格を大まかに表すものである。この階層では、各ノードは、膝、肩又は脊椎骨などの、骨格の関節を表す。各ノードについて、通常、位置、回転及びスケール値を含む配置が格納される。このコンテキストにおいて、アニメーション混合は、１つ以上のソースから新たな骨格の姿勢を生成するためにこれらの個々の骨格の関節の配置を混合する処理である。
【０１２４】
[0129]オリエンテーションの組の混合を行うための様々な既存の方法が存在する。これらは、離散した配置成分の線形補間、回転についての球状線形補間、連続的なスプライン補間、又は配置成分についての単純な追加、減算もしくは調節を含んでもよい。アニメーション混合の質は非常に文脈的なものであり、したがって、アプリケーションは、所望の結果を達成するために、以前の方法のうちの何かを組み合わせてもよいし、拡大してもよい。また、データのための記憶方法もまた非常に柔軟であり、変換行列、離散した位置オフセット、均一な及び不均一なスケール値、及び極座標、軸−角度対、四元数（quaternion）又は離散オイラー角の形式の回転を含んでもよい。メモリーの使用はアニメートされたノード階層の大きな組にとってしばしば懸案であるので、様々な圧縮技術が、記載されるデータを量子化するか又はさらに圧縮するために使用されてもよい。
【０１２５】
[0130]アニメーション混合はまた、再目標化（retargetting）の処理を含む。再目標化は、１つ以上の相違するノード階層を混合のために共通のスペースへと変換する処理である。例として、プロのスポーツ選手から得られた動作を含むアニメートされた骨格の階層を想定する。第２のソースとして、思春期の子どもから捕らえられた動作がさらにあってもよい。これらの階層は、各骨格に含まれる関節の数のほか、各骨格が含み得る個々の骨の長さの両方ともにおいて異なってもよい。それらを一緒に混合するために、これらのソースの１つ以上は、共通の空間に変換される必要があるかもしれない。再目標化のこの処理は、１つの骨格の階層の動作を別のものの空間又は形状へと変換する。以前の例において、子どもの関節は、混合するべきデータについての均質の組を提供するために、スポーツ選手の大きさと一致するように拡大されてもよい。
【０１２６】
[0131]アニメートされたノード階層の直接的な混合に加えて、結果を生むために１つ以上のアニメーションを間接的にともに混合するための技術の組がさらに存在する。これらは順運動学及び逆運動学を含んでもよい。運動学の適用は、所望の目標及び周囲のノード配置からノード配置が推論されることを可能にする。例えば、肩の現在の位置及び手の所望の位置を仮定すると、肘の潜在的な位置は逆運動学によって推論することができる。上腕及び下腕の骨の長さが固定されるとすれば、肩及び手が一旦配置されると、肘の潜在的な配置の有限集合が存在する。人間の骨格の知識及び肘に関する経時的な（temporal）情報を使用して、適切な位置を選択することができる。この処理を使用して、配置を、ノードが混合される階層において直接表されない場合に推定することができる。
【０１２７】
[0132]アニメーション混合は図７Ａ及び７ＢにおいてセクションＢ及びＨで生じるものとして表される。セクションＤは、上述のように、予め準備されたアニメーションのパラメーターを修正する例を表し、セクションＦは、これもまた上述のように、複数のものから、ユーザーの捕らえられた動作に最も合う予め準備されたアニメーションを選択する例を表す。これらの選択肢のうちのいずれも、任意の順で、捕らえられた動作のアニメーションと予め準備されたアニメーションとの間の連鎖に利用可能であることに留意されたい。図７Ａ及び７Ｂに示される例は例示の目的のみのためのものである。例えば、予め準備された動作からユーザーの動作への遷移においてセクションＤで生じるものとして示される、予め準備されたアニメーションの修正は、捕らえられた動作のアニメーションから予め準備されたアニメーションへの遷移において生じてもよい。
【０１２８】
[0133]アニメーション混合は、ユーザーの生の動作又はジェスチャーのアニメーションと予め準備されたアニメーションとの間の遷移を滑らかにするための任意の適切な方法であってもよい。例えば、アニメーション混合技術は、位置間の補間又は単一軸もしくは複数軸の連続的な混合の使用を含んでもよい。アニメーション混合技術への入力のうちの１つは、三次元空間中のユーザー動作に基づくユーザーのジェスチャーであってもよい。アニメーション混合技術への他の入力は予め準備されたアニメーションによって提供される位置であってもよい。
【０１２９】
[0134]転移点におけるジェスチャーが固定であるか又はわずかな動作を含む場合、より少ない混合が必要となるかもしれない。例えば、転移点＃１において、ボウリングアプリケーションにおける転移点として識別され得るユーザーの捕らえられた動作は、ウエストで曲がって選択されるボールに対してつかむ動作をするユーザーの動作である。転移点を示すジェスチャーがわずかな動作を備えた制御された動作であるので、セクションＡのユーザーの捕らえられた動作からセクションＣの予め準備されたアニメーションへのアニメーション混合の量は小さくてもよい。これは、セクションＡ及びセクションＣの間の動作のグラフにおける小さな差によって表される。セクションＡの動作をセクションＣの予め準備されたアニメーションへ移行させるためのセクションＢの混合は、したがって、少量のアニメーション混合を必要とする。
【０１３０】
[0135]他の場合では、転移点におけるユーザーによる動作が大きく、又は、動作は、生の動作と予め準備されたアニメーションとの間で移行するためにより多くの混合が要求されるほど、ユーザー又はアプリケーションの間で変化されてもよい。転移点がユーザーによる多くの動作の点にある場合、予め準備された動作へのシームレスな遷移のために追加の混合が必要かもしれない。転移点において、物理空間中のユーザーの動作の位置が予め準備されたアニメーションの開始位置から変化すればするほど、より多くの混合が必要となり得る。
【０１３１】
[0136]例えば、図７Ｂに示されるように、転移点＃４において、システムは、予め準備されたボウリングのボールについてのバックスイング及び前方へのスイングの動作から、ユーザーの腰の面を過ぎるユーザーのスイングの生の動作へ移行する。転移点において、捕らえられた動作のアニメーション、つまり、バックスイング及び前方へのスイングの全体にわたるユーザーの動作は、例えば、ユーザーの腕の速度、腰からの距離、ユーザーの手首の回転の種類に基づいて、予め準備されたアニメーションから変化してもよい。したがって、図７Ｂの動作のグラフは、セクションＧの予め準備されたアニメーションからセクションＩのジェスチャーのアニメーションに戻る遷移をスムーズにするために、より多くのアニメーション混合を要求する、セクションＨにおけるアニメーション混合の例を表す。
【０１３２】
[0137]使用される混合の量は失敗又は成功の要因になり得る。例えば、捕らえられた動作及び予め準備されたアニメーションをつなぐために必要とされる混合の量は、アプリケーションにおける成功のレベルに対応してもよい。アプリケーションがボウリングゲームである場合、ユーザーの捕らえられたバックスイング動作、又はユーザーの遷移点における動作は、予め準備されたアニメーションの開始位置とは大いに異なってもよい。ユーザーのジェスチャーと予め準備されたアニメーションとの間の差異のこの量は、失敗として解釈され得る。失敗は、ボウリングレーンを下るボールについてのユーザーの結果として生じるスローを決定することができる。例えば、捕らえられた動作のアニメーションへ戻る予め準備されたアニメーションにおける遷移の点が、物理空間におけるユーザーの実際の位置と大きく異なる位置である場合、ボールはボウリングレーンをまっすぐ下って投げられないか、又は、ボールはボウリングのピンに位置合わせされないかもしれない。又は、例えば、ユーザーがボウリングのボールをリリースする間に物理空間中で転んだり、ボウリングのボールをオーバーハンドで投げることを試みたりする場合、捕らえられた動作と予め準備されたアニメーションのパラメーターとの間の差は、ゲーム又はアプリケーションにおけるユーザーの成功又は失敗によって明白であるかもしれない。
【０１３３】
[0138]ジェスチャーを伝えるためにユーザーがする動作又は姿勢は時間とともに変化してもよく、これは、コンテキストの変化を作成してもよい。例えば、ユーザーは、疲労して、もはや、ジャンプのジェスチャーを伝えるためにセッションの開始の際にしたのと同じくらい高くジャンプしないかもしれない。また、ユーザーは、練習を通じて、ジェスチャーに関連付けられる動作又は姿勢をよりうまくするようになってもよく、したがって、２つの異なるジェスチャーが動作又は姿勢の１つの組によってはより認識されそうにないように、パラメーターについて許容できる変化は低減されてもよい。ユーザーが注意を失わないように、アプリケーションはまた、ユーザーがより器用になるとユーザーにもっと困難な経験を与えるよう望んでもよい。別の実施例において、アプリケーションは、使用するためのジェスチャー又はより多くのジェスチャーに対するより繊細な制御を与えてもよい。例えば、テニスのビデオゲームの初心者は、ネットを越えてボールを打つことに関心があるにすぎず、ボールに対していかなるスピンをかけることにも関心がないかもしれない。しかし、ユーザーが上達していることをテニスアプリケーションが検出すると、アプリケーションは、標準的なヒットに加えて、トップスピン又はバックスピンのためのジェスチャーを導入してもよいし認識してもよい。
【０１３４】
[0139]同様に、アプリケーションの転移点に関連付けられるパラメーターは、時間とともに変化してもよいし、又は状況に基づいて変化してもよいし、又はユーザーの意図の予測に基づいて選択されてもよい。例えば、テニスのビデオゲームの初心者にとって、初心者がネットを越えてボールを打つことに関心をもつにすぎない場合には、より多くの予め準備されたアニメーションが望ましいかもしれない。このように、従って転移点は設定されてもよい。ユーザーの動作が改善していることをテニスアプリケーションが検出すると、より少ない予め準備されたアニメーションが挿入されるように、アプリケーションは転移点を修正してもよい。
【０１３５】
[0140]関節の位置、速度、加速度などを含むジェスチャー履歴は、ユーザーの意図を決定するために使用することができる。これらのファクターは、後のアニメーション、ゲームの制御及び転移点のためにパラメーターをシードし、開始すべき予め準備されたアニメーションを決定してもよい。例えば、ボウリング動作において、そのユーザーのバックスイング及び前方のスイングの動作の履歴が通常ある速度範囲内にある場合、同様の速度に従う動作のパラメーターを備えた予め準備されたアニメーションは、ユーザーの捕らえられた動作と混合するためにそのユーザーに対して選択されてもよい。
【０１３６】
[0141]第２のユーザーは入力を提供するものとして第１のユーザーに取って代わってもよく、第２のユーザーはジェスチャーを伝える大幅に異なる方法を有してもよい。実施例において、受信される奥行き画像は、第２のユーザーがジェスチャーを伝えるシーンにいることを決定するために解析されてもよい。したがって、第２のユーザーに関連した転移点は、第１のユーザーに関連した転移点と異なってもよい。
【０１３７】
[0142]通常、アニメーション混合動作は、２つ以上の入力を得て滑らかな出力を生成することを含む。アニメーション混合の様々な技術は、ユーザーの動作のアニメーションと及び１つ以上の加えられるアニメーションとを連続的又は並列的な構成でつなぐために使用されてもよい。これらの技術は、追加の及び減ずべき混合、線形補間、球状の線形補間、位相シフト、線形混合、分解、双線形混合、組み合わせ混合、ミラー混合、クランプ混合、マルチトラック（multi-track）混合、階層化などを含む。例えば、階層化は、２つのアニメーションがいつ同時に実行されるかであり、その結果はそれらの組み合わせである。アニメーション混合は、ユーザーの捕らえられた動作又はジェスチャーのアニメーション及び予め準備されたアニメーションのフレーム間でフレームを作成することを含んでもよい。異なるアニメーションは異なる方法でこれらの中間のフレームを作成する。例えば、点の位置は線形補間又はスプライン補間を使用して補間することができる。
【０１３８】
[0143]基本的なアニメーション混合動作は線形補間を含んでもよい。歩くジェスチャーのアニメーションと予め準備された走るアニメーションとの間の遷移は、測定された歩くジェスチャーのアニメーションのパラメーターの終わりを予め準備された走るアニメーションのパラメーターの始めへ混合することを含んでもよい。動作は、２つのアニメーション間の位置の差を計算すること、及び２つの位置の間に生じる運きを表すために線形補間を使用することを含んでもよい。ユーザーの捕らえられた動作のアニメーションと予め準備されたアニメーションとの間の補間された運動の表示は、アニメーション間のシームレスな又はほとんどシームレスな遷移を提供してもよい。遷移の持続期間は、物理空間におけるユーザーの捕らえられた動作から測定される加速度及び速度の変数の関数であってもよく、それは、歩くジェスチャーのアニメーションから予め準備された走るアニメーションへの遷移を滑らかにするために使用される。
【０１３９】
[0144]歩行から予め準備された走行への例をさらに考えると、歩くジェスチャーのアニメーションのパラメーターの終了から予め準備された走るアニメーションのパラメーターの開始への間の差分（delta）が小さい場合、アニメーション混合のためには簡易な分解技術で十分かもしれない。遷移が適度に迅速な場合、歩くジェスチャーの最後の位置から予め準備された走るジェスチャーの最初への分解（dissolving）で十分かもしれない。他の場合では、より長い期間にわたって遷移状態を維持して、予め準備された歩行のアニメーションと走行のアニメーションのそれぞれの移動速度のギャップを埋めるために、予め準備された歩行のアニメーションと走行のアニメーションと間のジョギング動作の幾つかのストライドを作成することが望まれてもよい。従来のアニメーション混合技術が、１つ以上の予め準備された歩行のアニメーション及び走行のアニメーションからジョギング動作を生成するために使用される。
【０１４０】
[0145]しかし、しばしば、捕らえられた動作と予め準備されたアニメーションとの間の差分は、可変のユーザー動作のために相殺される。したがって、歩行と走行は同相でないことがあり、したがって、混合は、２つのアニメーションを一緒に混合するかつなぐ動作をシミュレートする。位置、速度などにおけるオフセットを含む、２つのアニメーション間のオフセットが決定されてもよい。予め準備されたアニメーションは、転移点におけるユーザーのジェスチャーのパラメーターに基づいて選択されてもよい。また、予め準備されたアニメーションのパラメーターは、ユーザーの生の動作のパラメーターに同期するように調節されてもよい。所望の予め準備されたアニメーションが速い走行であって、捕らえられた動作が遅い歩行である場合、動作についてのより多くのフレームが、捕らえられた動作から予め準備されたアニメーションへの遷移を表すために挿入されてもよい。
【０１４１】
[0146]ある場合には、ユーザーの観察されたアニメーションが１組の予め準備されたアニメーション間の混合を導くことを可能にすることが望ましいかもしれない。このように、ユーザーの物理的なアクションは混合技術を導く入力パラメーターになる。例えば、アプリケーションは、様々な専門的に生み出された又は動作を捕らえられたテニスのスイングのアニメーションを含んでもよい。スイングのアニメーションのこのパレットにおいて、各々は、スイングの速度及び空間を介した手首の弧（アーク、arc）などの任意の数のパラメーターによって分類されてもよい。ユーザーがテニスのスイングのジェスチャーを行うと観察される場合、物理空間中のそれらのアクションに関する対応するパラメーターの組もまた観察することができる。ユーザーの観察されたパラメーターをガイドとして使用して、１つ以上の予め準備されたアニメーションは、その後、ユーザーの観察されたアクションを最も良く真似る、プロのように見えるテニスのスイングを生成するために、選択されて混合することができる。ユーザーが自分のスイングを行うときにそのような混合がリアルタイムに生じてもよく、予め準備されたアニメーション間の混合パラメーターを継続的に調節する。この継続的な調節は、ユーザーの物理的な動作とゲーム空間におけるアバターの対応するアクションとの間の任意の知覚された遅れを最小化するために使用することができる。
【０１４２】
[0147]遷移の点において及び表示のためのフレームの全体にわたって、アニメーションを記述するために異なるツールが使用される。いくつかの方法は、ユーザーの動作又はジェスチャーを定義するためにユーザーの３Ｄ骨格モデルの点の位置を使用してもよい。他の方法は、ユーザーの動作／ジェスチャー及び／又は予め準備されたアニメーションの位置について記述するために、行列又はオイラー角を使用する。
【０１４３】
[0148]予め準備されたアニメーション及び／又はユーザーの動作のアニメーションに特有のパラメーターを含む、補助データ又は制御パラメーターもまた、平滑化アルゴリズムを支援するために、入力としてとられてもよい。例えば、転移点は、１つのアニメーションから次のものへの遷移を開始するための基準点を示す。混合の期間は、フレーム中の混合の長さを示してもよい。混合の種類は、予め準備されたアニメーション及び／又はユーザーの動作のアニメーション間の連鎖がどれくらい滑らかであるべきかについての指示であってもよい。包括的なリストではないが、他のパラメーターは、アニメーションの動作の程度、様々な基準点（例えば、関節又は手足）の速度、ユーザーの動作のアニメーションと予め準備されたアニメーションとの間の差分などであってもよい。転移点並びにつながれるべきユーザーの動作のアニメーション及び予め準備されたアニメーションに関連するパラメーターを使用して、アニメーション混合は、アニメーションを滑らかに混合することを可能にする。
【０１４４】
[0149]図８は、アニメーション混合のための例示的な方法５００のフロー図を描く。例示的な方法５００は、例えば、図１Ａ−Ｂに関して記載された目標認識、分析及び追跡システム１０の取り込み装置２０及び／又はコンピューター環境１２を使用して実施されてもよい。例示的な実施例によれば、目標は、骨格モデル、メッシュの人間モデル又はそれらの任意の他の適切な表現などのモデルを生成するために走査され得る、人間の目標、物体を持った人間の目標、２人以上の人間の目標などであってもよい。その後、モデルは、図１Ａ−１Ｂに関して上に記載されたコンピューター環境１２によって実行され得るアプリケーションとインタラクトするために使用されてもよい。例示的な実施例によれば、目標は、アプリケーションが、例えばコンピューター環境１２上で及び／又は例えばコンピューター環境１２上のアプリケーションの実行中に周期的に、開始又は起動されてもよい場合に、モデルを生成するために走査されてもよい。
【０１４５】
[0150]例えば、上に記載されるように、目標は図１Ａ−１Ｂに関して上に記載されたユーザー１８を含んでもよい。目標は、例えば、ユーザー１８の物理的動き又は動作がコンピューターゲーム等のアプリケーションのパラメーターを調節及び／又は制御するリアルタイムのユーザーインターフェースとして働き得るように、追跡され得るユーザー１８の骨格モデルを生成するために走査されてもよい。例えば、プレーヤーの追跡される動きは、電子ロールプレイングゲーム中のスクリーン上のキャラクター又はアバターを移動させるため；電子レーシングゲームでのスクリーン上の車両を制御するため；仮想環境における物体の構築又は構成を制御するため；又はアプリケーションの任意の他の適切な制御を実行するために使用され得る。
【０１４６】
[0151]１つの実施例によれば、８０５において、コンピューター制御のカメラシステムは、例えば、ユーザーのジェスチャーに関連する奥行き情報を測定してもよい。例えば、目標認識、分析及び追跡システムは、図１Ａ−２に関して上に記載された取込み装置２０などの取り込み装置を含んでもよい。取り込み装置は、１つ以上の目標を含み得るシーンを捕らえてもよいし観察してもよい。例示的な実施例において、取り込み装置は、飛行時間の分析、構造化された光の分析、ステレオ画像の分析などの任意の適切な技術を使用してシーンにおける１つ以上の目標に関連付けられる奥行き情報を得るように構成された奥行きカメラであってもよい。さらに、奥行き情報は、奥行きデータ及び色データから生成される奥行き画像として、又は、画像中の任意のユーザーの骨格マッピングを有するものなど、さらに解析された奥行き画像データとして、予め処理されてもよい。
【０１４７】
[0152]例示的な実施例によれば、奥行き情報は奥行き画像を含んでもよい。奥行き画像は複数の観察された画素であってもよく、各々の観察された画素は観察された奥行き値を有する。例えば、奥行き画像は、捕らえられたシーンの二次元の（２−Ｄ）画素領域を含んでもよく、２−Ｄ画素領域における各画素は、取込み装置からの捕らえられたシーンにおける物体の長さ又は距離などの奥行き値を、例えば、センチメートル、ミリメートルなどで表してもよい。
【０１４８】
[0153]８１０において、システムは、転移点、及び、満たされた場合に転移点を示すパラメーターを識別してもよい。転移点は、ジェスチャーにおける、又はジェスチャー間の識別点であってもよく、システムは、捕らえられた動作又はユーザーのジェスチャーのアニメーションと予め準備されたアニメーションとの間で移行する。例示的な実施例において、転移点は、予め準備されたアニメーションへ切り替える指示を提供する、ジェスチャー中の又はジェスチャー間の識別点であってもよい。転移点を識別することは、転移点の任意の要件（てが頭より上にあるなど）を満たすような方法でユーザーが動いたことを決定することを含んでもよい。実施例において、ユーザーは、動作をするか、増大させるか、区別するか、又は明確にするために声を使用することができる。例えば、ユーザーは、自分の口を開閉することにより歌うジェスチャーをすることができてもよく、また、音符（note）を歌うことによってその歌うジェスチャーの特定の音符を指定することができてもよい。さらに、ユーザーは、他の「いつものパンチ」のジェスチャーをする間に叫ぶことにより、「いつものパンチ」のジェスチャーとは対照的な「強いパンチ」のジェスチャーをすることができてもよい。別の例示的な実施例において、転移点は、捕らえられた動作のアニメーションへの戻りを引き起こす、予め準備されたアニメーション中の識別点である。
【０１４９】
[0154]８１５において、転移点のパラメーターが満たされるかどうかの決定が、特定の転移点について定義されたパラメーターに対する捕らえられた動作又は予め準備されたアニメーション（現在どちらが利用されているかに依存する）のパラメーターの比較に基づいて、なされる。遷移のパラメーターが満たされない場合、奥行き情報の測定は８０５において継続する。
【０１５０】
[0155]８１５において、転移点のパラメーターが満たされる場合、動作８２０は、現在のアニメーションが捕らえられた動作に基づくか又は予め準備されたアニメーションであるかを決定する。予め準備されたアニメーションが現在実行している場合、ユーザーの捕らえられた動作のアニメーションは、アニメーション混合技術によるなどして、予め準備されたアニメーションにつながれる。現在のアニメーションが捕らえられた動作に基づく場合、転移点は、予め準備されたアニメーションが選択されるべきであることを示す。
【０１５１】
[0156]８２２において、システムは少なくとも１つの予め準備されたアニメーションを選択する。多くの予め準備されたアニメーションは同じ所望の動作を表してもよく、コンピューター環境は、複数のものから最も適した予め準備されたアニメーションを選択してもよい。例えば、複数の予め準備されたアニメーションの選択肢は、テニスのサーブのバックスイングを表すのに利用可能であってもよい。バックスイング動作の位置及び速度のパラメーターは、バックスイングを表す複数の予め準備されたアニメーションの各々について変化してもよい。システムは、転移点におけるユーザーの捕らえられた動作に最も類似するパラメーターを備えた予め準備されたアニメーションを選択してもよい。
【０１５２】
[0157]１つより多くの予め準備されたアニメーションが８２２において選択される場合、当該複数の予め準備されたアニメーションは、ユーザーの捕らえられた動作のアニメーションにつなぐために望まれる、新たな予め準備されたアニメーションを生成するために、ある方法で組み合わせられてもよい。例えば、８３２において、複数の予め準備されたアニメーションは、８３４におけるユーザーの捕らえられた動作のアニメーションにつなぐために混合されてもよい。
【０１５３】
[0158]８３２において、少なくとも１つの選択された予め準備されたアニメーションのパラメーターは修正されてもよい。ある場合には、予め準備されたアニメーションは、８３４において予め準備されたアニメーション及び捕らえられた動作のアニメーションをつなぐために平滑化がほとんど又はまったく要求されないような点に修正されてもよい。例えば、ユーザーの捕らえられた動作のパラメーターが分析されてもよく、予め準備されたアニメーションは連鎖のために選択されてもよい。連鎖に先立って、予め準備されたアニメーションは、転移点におけるでユーザーの捕らえられた動作をより密接に表すように修正されてもよい。例えば、アニメーション中の腕の位置は、ユーザーの捕らえられた動作のそれをより密接に表すように修正されてもよい。
【０１５４】
[0159]８２２における少なくとも１つの予め準備されたアニメーションの選択に続いて、８２５において、ユーザーの捕らえられた動作のアニメーション及び予め準備されたアニメーションがつながれる。８３０において、ユーザーの動作及び予め準備されたアニメーションの混合された表現の表示が提供される。したがって、システムは、ユーザーの捕らえられたジェスチャーのアニメーションにつながれるべき予め準備されたアニメーションを選択してもよいし修正してもよく、システムは、予め選択されたアニメーションを選択して、次に、混合技術などによって、アニメーション間の遷移を滑らかにしてもよく、又はシステムは両方の組み合わせを行ってもよい。予め準備されたアニメーションの選択は、単一の選択肢からのものであってもよいし、予め準備されたアニメーションによって提供される動作に基づいて選択されてもよいし、又は、予め準備されたアニメーションは、各々がアニメーションについての所望の動作を表す、複数の予め準備されたアニメーションから選択されてもよい。
【０１５５】
[0160]本明細書において記載された構成及び／又は手法は本来例示的なものであり、これらの特定の実施例又は例は、限定的であると考えるべきではないことが理解されるべきである。本明細書に記載された特定のルーチン又は方法は、任意の数の処理戦略のうちの１つ以上を表してもよい。そのため、示された様々な動作は、示されたシーケンス、他のシーケンス、又は並列になどの方法で行われてもよい。同様に、上記の処理の順序は変更されてもよい。
【０１５６】
[0161]更に、様々な図面に示されるように、本開示は特定の態様に関して記載されてきたが、他の同様の態様が使用されてもよく、また、修正及び追加が、本開示から逸脱することなく、本開示の同じ機能を行うために、記載された態様に対してなされてもよいことが理解される。本開示の主題は、本明細書に開示された、様々な処理、システム及び構成、他の特徴、機能、動作、並びに／又は特性のほか、それらの任意の又はすべての均等物のすべての新規且つ自明でない組み合わせ及びサブコンビネーションを含む。したがって、開示された実施例の方法及び装置、又はそれらのある態様もしくは一部は、フロッピーディスク、ＣＤ−ＲＯＭ、ハードドライブ又は任意の他の機械読み取り可能な記憶媒体などの有形の媒体に具体化されたプログラムコード（すなわち、命令）の形式をとってもよい。プログラムコードがコンピューターなどの機械へロードされ、機械によって実行される場合、機械は、開示された実施例を実行するために構成された装置になる。
【０１５７】
[0162]本明細書において明示的に述べられた特定の実施例に加えて、他の態様及び実施例は、ここに開示された明細書を考慮することにより、当業者にとって明らかである。したがって、本開示はいかなる単一の態様にも限定されるべきでなく、むしろ添付の特許請求の範囲に従う幅及び範囲において解釈されるべきである。例えば、本明細書に記載された様々な手続きは、ハードウェアもしくはソフトウェア、又は両方の組み合わせによって実施されてもよい。
【図１Ａ】
0005635069.tif 000002
【図１Ｂ】
0005635069.tif 000003
【図２】
0005635069.tif 000004
【図３】
0005635069.tif 000005
【図４】
0005635069.tif 000006
【図５】
0005635069.tif 000007
【図６Ａ】
0005635069.tif 000008
【図６Ｂ】
0005635069.tif 000009
【図６Ｃ】
0005635069.tif 000010
【図６Ｄ】
0005635069.tif 000011
【図６Ｅ】
0005635069.tif 000012
【図６Ｆ】
0005635069.tif 000013
【図７Ａ】
0005635069.tif 000014
【図７Ｂ】
0005635069.tif 000015
【図８】
0005635069.tif 000016