(57)【特許請求の範囲】
【請求項１】
コンピューターにより実行される方法であって、
前記コンピューターが、予め記録されたモーションとユーザーの生のモーションを受け取るステップと、
前記コンピューターが、仮想キャラクターの１つ以上の体部分を、前記生のモーションに関連した前記ユーザーの第１モデルにおける１つ以上の関節にマッピングするステップと、
前記コンピューターが、前記仮想キャラクターの１つ以上の体部分を、前記予め記録されたモーションに関連した第２モデルにおける１つ以上の関節にマッピングするステップと、
前記コンピューターが、前記予め記録されたモーションと前記生のモーションによって前記仮想キャラクターを動画化するステップであって、少なくとも、
前記コンピューターが、前記仮想キャラクターの第２部分における１つ以上の体部分に対応する前記ユーザーの前記第１モデルにおける１つ以上の関節をディスエーブルするステップと、
前記コンピューターが、前記仮想キャラクターの第１部分における１つ以上の体部分に対応する前記予め記録されたモーションに関連した前記第２モデルにおける１つ以上の関節をディスエーブルするステップと、
前記コンピューターが、前記ユーザーの前記第１モデルにおける前記１つ以上の関節をディスエーブルすることおよび前記第２モデルにおける前記１つ以上の関節をディスエーブルすることに応答して、前記ユーザーの前記第１モデルに関連した前記生のモーションを、前記第２モデルに関連した前記予め記録されたモーションと混合するステップと、
前記コンピューターが、前記仮想キャラクターの前記第１部分および前記第２部分を、前記混合された生のモーションおよび予め記録されたモーションを使って動画化するステップと、
によって行う、ステップと、
を含む、方法。
【請求項２】
請求項１記載の方法において、前記予め記録されたモーションは、前記ユーザーの予め記録されたモーション、アーティストが制作したモーション、およびプログラム制御された変換のうち少なくとも１つを含む、方法。
【請求項３】
請求項１記載の方法であって、更に、前記コンピューターが、前記ユーザーからジェスチャーを受け取るステップを含み、前記ジェスチャーが、アニメーションを前記仮想キャラクターに適用するコマンドと関連付けられた、方法。
【請求項４】
請求項３記載の方法において、前記仮想キャラクターは、前記ユーザーからの前記ジェスチャーの受け取りに応答して、前記生のモーションおよび前記予め記録されたモーションによって動画化される、方法。
【請求項５】
システムであって、
少なくとも１つのプロセッサーを含み、該少なくとも１つのプロセッサーが、コンピューター実行可能命令を実行し、該コンピューター実行可能命令が、
ユーザーの予め記録されたモーションおよび生のモーションを受け取る命令と、
仮想キャラクターの１つ以上の体部分を、前記生のモーションに関連した前記ユーザーの第１モデルにおける１つ以上の関節にマッピングする命令と、
前記仮想キャラクターの１つ以上の体部分を、前記予め記録されたモーションに関連した第２モデルにおける１つ以上の関節にマッピングする命令と、
前記予め記録されたモーションおよび前記生のモーションにより、前記仮想キャラクターを動画化する命令であって、少なくとも、
前記仮想キャラクターの第２部分における１つ以上の体部分に対応する前記ユーザーの前記第１モデルにおける１つ以上の関節をディスエーブルすること、
前記仮想キャラクターの第１部分における１つ以上の体部分に対応する前記予め記録されたモーションに関連した前記第２モデルにおける１つ以上の関節をディスエーブルすること、
前記ユーザーの前記第１モデルにおける前記１つ以上の関節をディスエーブルすることおよび前記第２モデルにおける前記１つ以上の関節をディスエーブルすることに応答して、前記ユーザーの前記第１モデルに関連した前記生のモーションを、前記第２モデルに関連した前記予め記録されたモーションと混合すること、
前記仮想キャラクターの前記第１部分および前記第２部分を、前記混合された生のモーションおよび予め記録されたモーションを使って動画化すること、
によって行う、命令と、
を含む、システム。
【請求項６】
請求項５記載のシステムにおいて、前記予め記録されたモーションが、前記ユーザーの予め記録されたモーション、アーティストが制作したモーション、およびプログラム制御された変換のうち少なくとも１つを含む、システム。
【請求項７】
請求項５記載のシステムであって、前記コンピューター実行可能命令が更に、前記ユーザーからジェスチャーを受け取る命令を含み、前記ジェスチャーが、アニメーションを前記仮想キャラクターに適用するコマンドと関連付けられた、システム。
【請求項８】
請求項７記載のシステムにおいて、前記仮想キャラクターは、前記ユーザーからの前記ジェスチャーの受け取りに応答して、前記生のモーションおよび前記予め記録されたモーションによって動画化される、システム。
【請求項９】
コンピューター実行可能命令が格納されたコンピューター読み取り可能記憶デバイスであって、前記コンピューター実行可能命令が、
予め記録されたモーションとユーザーの生のモーションを受け取る命令と、
仮想キャラクターの１つ以上の体部分を、前記生のモーションに関連した前記ユーザーの第１モデルにおける１つ以上の関節にマッピングするステップと、
前記仮想キャラクターの１つ以上の体部分を、前記予め記録されたモーションに関連した第２モデルにおける１つ以上の関節にマッピングするステップと、
前記予め記録されたモーションと前記生のモーションによって前記仮想キャラクターを動画化する命令であって、少なくとも、
前記仮想キャラクターの第２部分における前記１つ以上の体部分に対応する前記ユーザーの前記第１モデルにおける１つ以上の関節をディスエーブルすること、
前記仮想キャラクターの第１部分における１つ以上の体部分に対応する前記予め記録されたモーションに関連した前記第２モデルにおける１つ以上の関節をディスエーブルすること、
前記ユーザーの前記第１モデルにおける前記１つ以上の関節をディスエーブルすることおよび前記第２モデルにおける前記１つ以上の関節をディスエーブルすることに応答して、前記ユーザーの前記第１モデルに関連した前記生のモーションを、前記第２モデルに関連した前記予め記録されたモーションと混合すること、
前記仮想キャラクターの前記第１部分および前記第２部分を、前記混合された生のモーションおよび予め記録されたモーションを使って動画化すること、
によって行う、命令と、
を含む、コンピューター読み取り可能記憶デバイス。
【請求項１０】
請求項９記載のコンピューター読み取り可能記憶デバイスにおいて、前記予め記録されたモーションは、前記ユーザーの予め記録されたモーション、アーティストが制作したモーション、およびプログラム制御された変換のうち少なくとも１つを含む、コンピューター読み取り可能記憶デバイス。
【請求項１１】
請求項９記載のコンピューター読み取り可能記憶デバイスであって、前記コンピューター実行可能命令が、更に、前記ユーザーからジェスチャーを受け取る命令を含み、前記ジェスチャーが、アニメーションを前記仮想キャラクターに適用するコマンドと関連付けられた、コンピューター読み取り可能記憶デバイス。
【請求項１２】
請求項１１記載のコンピューター読み取り可能記憶デバイスにおいて、前記仮想キャラクターは、前記ユーザーからの前記ジェスチャーの受け取りに応答して、前記生のモーションおよび前記予め記録されたモーションによって動画化される、コンピューター読み取り可能記憶デバイス。
【発明の詳細な説明】
【従来技術】
【０００１】
[0001]  コンピューター・ゲーム、マルチメディア・アプリケーション等のような多くの計算アプリケーションは、アバターまたはキャラクターを含み、これらは、典型的なモーション・キャプチャー技法を使って動画化される。例えば、ゴルフ・ゲームを開発するとき、モーション・キャプチャー機器を有するスタジオにプロのゴルファーを連れてくることができる。モーション・キャプチャー機器は、例えば、スタジオ内の特定ポイントに向けられている複数のカメラを含む。次いで、プロのゴルファーに、複数のポイント・インディケーターを有するモーション・キャプチャー・スーツを着用させる。モーション・キャプチャー・スーツは、カメラが、例えば、プロのゴルファーのゴルフをするモーションを取り込むことができるように構成され、カメラによって追跡させることができる。次いで、これらのモーションを、ゴルフ・ゲームの開発中に、アバターまたはキャラクターに適用することができる。ゴルフ・ゲームが完成したとき、アバターまたはキャラクターは、ゴルフ・ゲームの実行中にプロのゴルファーのモーションで動画化することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
生憎、典型的なモーション・キャプチャー技法は、費用がかかり、特定のアプリケーションの開発に結びつけられており、実際のプレーヤーまたはアプリケーションのユーザーと関連付けられたモーションを含まない。
【課題を解決するための手段】
【０００３】
[0002]  本明細書において開示するのは、アニメーションを混合する(blend)するシステムおよび方法である。例えば、一実施形態では、ユーザーの生のモーションを取り込み、アーティストが生成した予め記録されたモーションというような予め記録されたモーション、予め記録されたユーザーのモーション、および／またはプログラムで制御された変換を受けることができる。次いで、生のモーションを仮想キャラクターの第１部分に適用することができ、予め記録されたモーションをこの仮想キャラクターの第２部分に適用することができ、仮想キャラクターが生のモーションおよび予め記録されたモーションの組み合わせで動画化されるようにすることができる。一実施形態によれば、生のモーションおよび／または予め記録されたモーションは、ユーザーからのジェスチャーを受けたことに応答して、仮想キャラクターに適用することができ、ジェスチャーにはアニメーション・コマンドを関連付けることができる。加えて、仮想キャラクターは、予め記録されたユーザーのモーション、および予め記録されたアーティストが生成したモーションというような、予め記録されたモーションの組み合わせで、例えば、予め記録されたユーザーのモーションを仮想キャラクターの第１部分に適用し、予め記録されたアーティストが生成したモーションを仮想キャラクターの第２部分に適用することによって、動画化されていてもよい。
【０００４】
[0003]  この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するために使われることを意図するのでもない。更に、特許請求する主題は、本開示のいずれの部分に記されている実施形態のうちいずれかの欠点を解決するものにも、また全ての欠点を解決するものにも限定されないものとする。
【図面の簡単な説明】
【０００５】
【図１Ａ】図１Ａは、ターゲット認識、分析、および追跡システムの一実施形態例を、ゲームをプレーするユーザーと共に示す。
【図１Ｂ】図１Ｂは、ターゲット認識、分析、および追跡システムの一実施形態例を、ゲームをプレーするユーザーと共に示す。
【図２】図２は、ターゲット認識、分析、および追跡システムにおいて使うことができるキャプチャー・デバイスの一実施形態例を示す。
【図３】図３は、ターゲット認識、分析、および追跡システムにおいて１つ以上のジェスチャーを解釈するため、および／またはターゲット認識、分析、および追跡システムによって表示された仮想キャラクターを動画化するために使うことができる計算環境の一実施形態例を示す。
【図４】図４は、ターゲット認識、分析、および追跡システムにおいて１つ以上のジェスチャーを解釈するため、および／またはターゲット認識、分析、および追跡システムによって表示された仮想キャラクターを動画化するために使うことができる計算環境の他の実施形態例を示す。
【図５】図５は、ユーザーのモーション・キャプチャー・ファイルを生成し適用する方法例の流れ図を示す。
【図６】図６は、ユーザーと関連付けられたヒトのターゲットを含む画像の一実施形態例を示す。
【図７】図７は、ユーザーと関連付けられたヒトのターゲットに生成することができるモデルの一実施形態例を示す。
【図８Ａ】図８Ａは、モーション・キャプチャー・ファイル内に種々の時点において取り込むことができるユーザーと関連付けられたモデルの一実施形態例を示す。
【図８Ｂ】図８Ｂは、モーション・キャプチャー・ファイル内に種々の時点において取り込むことができるユーザーと関連付けられたモデルの一実施形態例を示す。
【図９Ａ】図９Ａは、種々の時点におけるモデルに基づいて動画化することができる仮想キャラクターのモデルの一実施形態例を示す。
【図９Ｂ】図９Ｂは、種々の時点におけるモデルに基づいて動画化することができる仮想キャラクターのモデルの一実施形態例を示す。
【図１０Ａ】図１０Ａは、動画化することができる仮想キャラクターの一実施形態例を示す。
【図１０Ｂ】図１０Ｂは、動画化することができる仮想キャラクターの一実施形態例を示す。
【図１１Ａ】図１１Ａは、動画化することができる仮想キャラクターの他の一実施形態例を示す。
【図１１Ｂ】図１１Ｂは、動画化することができる仮想キャラクターの他の一実施形態例を示す。
【図１１Ｃ】図１１Ｃは、動画化することができる仮想キャラクターの他の実施形態例を示す。
【図１１Ｄ】図１１Ｄは、動画化することができる仮想キャラクターの他の実施形態例を示す。
【図１１Ｅ】図１１Ｅは、動画化することができる仮想キャラクターの他の実施形態例を示す。
【図１１Ｆ】図１１Ｆは、動画化することができる仮想キャラクターの他の実施形態例を示す。
【図１２Ａ】図１２Ａは、動画化することができる仮想キャラクターの他の実施形態例を示す。
【図１２Ｂ】図１２Ｂは、動画化することができる仮想キャラクターの他の実施形態例を示す。
【発明を実施するための形態】
【０００６】
[0016]  本明細書において説明するように、ユーザーは、ゲーム・コンソール、コンピューター等のような計算環境において実行するアプリケーションを制御することができ、および／またはアバター、画面上のキャラクター、画面上のオブジェクト等というような仮想キャラクターを、１つ以上のジェスチャーおよび／または動きを行うことによって動画化することができる。一実施形態によれば、ジェスチャーおよび／または動きを、例えば、キャプチャー・デバイスによって受けることができる。例えば、キャプチャー・デバイスは、シーンの深度画像を取り込むことができる。一実施形態では、キャプチャー・デバイスは、そのシーンにおける１つ以上のターゲットまたはオブジェクトが、ユーザーのようなヒトのターゲットに対応するか否か判断することができる。次に、ヒトのターゲットに対応する各ターゲットまたはオブジェクトを走査して、スケルトン・モデル、メッシュ・ヒト・モデル等のような、それと関連付けられたモデルを生成することができる。一実施形態例では、このモデルを追跡することができ、追跡されたモデルのモーション・キャプチャー・ファイルを生成することができ、ユーザーのモデルと関連付けられた仮想キャラクターまたはオブジェクトをレンダリングし、ユーザーのモデルと関連付けられた生のモーションおよび／または予め記録されているモーションによって、仮想キャラクターまたはオブジェクトを動画化することができ、および／または計算環境において実行中のアプリケーションにおいて、例えば、追跡したモデルに基づいて、どの制御を行うべきか決定することができる。
【０００７】
[0017]  図１Ａおよび図１Ｂは、ターゲット認識、分析、および追跡システム１０の構成の一実施形態例を、ゲームをプレーするユーザー１８と共に示す。一実施形態例では、目標認識、分析、および追跡システム１０は、ユーザー１８のようなヒトのターゲットを認識し、分析し、および／または追跡するために使うことができる。
【０００８】
[0018]  図１Ａに示すように、ターゲット認識、分析、および追跡システム１０は、計算環境１２を含む。計算環境１２は、コンピューター、ゲーミング・システムまたはコンソール等であればよい。一実施形態例によれば、ゲーミング・アプリケーション、ゲーミング以外のアプリケーション等のようなアプリケーションを実行するために計算環境１２を使うことができるように、計算環境１２はハードウェア・コンポーネントおよび／またはソフトウェア・コンポーネントを含むことができる。一実施形態では、計算環境１２は、標準化されたプロセッサー、特殊化されたプロセッサー、マイクロプロセッサー等のようなプロセッサーを含むことができ、このプロセッサーは、例えば、ユーザーの生のモーションを取り込み、予め記録されているモーションを受け取り、生のモーションを仮想オブジェクトの第１部分に適用し、予め記録されているモーションを仮想オブジェクトの第２部分に適用する命令、あるいは任意の他の適した命令を含む、命令を実行することができる。これについては、以下で更に詳しく説明する。
【０００９】
[0019]  図１Ａに示すように、ターゲット認識、分析、および追跡システム１０は、更に、キャプチャー・デバイス２０を含むことができる。キャプチャー・デバイス２０は、例えば、ユーザー１８のような、一人以上のユーザーを視覚的に監視するために使うことができるカメラとすればよく、一人以上のユーザーによって行われるジェスチャーおよび／またはモーションを取り込み、分析し、そして追跡して、アプリケーションにおいて１つ以上の制御または動作を実行する、および／またはアバター、画面上のキャラクター、画面上のオブジェクト等のような、仮想キャラクターを動画化することができる。これについては、以下で更に詳しく説明する。
【００１０】
[0020]  一実施形態によれば、ターゲット認識、分析、および追跡システム１０は、テレビジョン、モニター、高品位テレビジョン（ＨＤＴＶ）等のような、ゲームまたはアプリケーションの映像(visual)および／または音声(audio)をユーザー１８のようなユーザーに与えることができるオーディオビジュアル・デバイス１６に接続することができる。例えば、計算環境１２は、グラフィクスカードのようなビデオ・アダプターおよび／またはサウンド・カードのようなオーディオ・アダプターを含むことができる。これらは、ゲーム・アプリケーション、ゲーム以外のアプリケーション等と関連のあるオーディオビジュアル信号を供給することができる。オーディオビジュアル・デバイス１６は、計算環境１２からオーディビジュアル信号を受け取ることができ、次いで、これらのオーディオビジュアル信号と関連付けられたゲームまたはアプリケーションの映像および／または音声をユーザー１８に出力することができる。一実施形態によれば、オーディオビジュアル・デバイス１６は、例えば、Ｓ−Ｖｉｄｅｏケーブル、同軸ケーブル、ＨＤＭＩケーブル、ＤＶＩケーブル、ＶＧＡケーブル等によって、計算環境１２に接続することができる。
【００１１】
[0021]  図１Ａおよび図１Ｂに示すように、ターゲット認識、分析、および追跡システム１０は、ユーザー１８のようなヒトのターゲットを認識、分析、および／または追跡するために使うことができる。例えば、ユーザー１８を、キャプチャー・デバイス２０を使って追跡し、ユーザー１８のジェスチャーおよび／またはモーションを取り込んで、アバター、画面上のキャラクター、画面上のオブジェクト等のような仮想キャラクターを動画化することができ、および／または計算環境１２によって実行されているアプリケーションに作用するために使うことができる制御として解釈することができる。このように、一実施形態によれば、ユーザー１８は彼または彼女の体を動かして、アプリケーションを制御すること、および／または仮想オブジェクトを動画化することができる。
【００１２】
[0022]  図１Ａおよび図１Ｂに示すように、一実施形態例では、計算環境１２において実行するアプリケーションは、ユーザー１８がプレーしているかもしれないボクシング・ゲームであってもよい。例えば、コンピューター環境１２は、オーディオビジュアル・デバイス１６を使って、ボクシングの相手３８の視覚的表現をユーザー１８に与えることができる。また、計算環境１２は、オーディオビジュアル・デバイス１６を使って、ユーザー１８が彼または彼女の動きで制御することができるプレーヤー・アバター４０の視覚表現も与えることができる。例えば、図１Ｂに示すように、ユーザー１８はプレーヤー・アバター４０にゲーム空間においてパンチを打たせるために、実空間おいてパンチを打つことができる。このように、一実施形態例によれば、計算環境１２、ならびにターゲット認識、分析、および追跡システム１０のキャプチャー・デバイス２０は、実空間におけるユーザー１８のパンチを認識および分析するために使うことができ、このパンチをゲーム空間におけるプレーヤー・アバター４０のゲーム制御として解釈することができ、および／またはパンチのモーションを使って、ゲーム空間におけるプレーヤー・アバター４０を動画化することができる。
【００１３】
[0023]  ユーザー１８による他の動きも、軽く叩く、行ったり来たりする、あちこち動き回る、防御する、ジャブする、または種々の異なる力のパンチを出すように制御するというように、プレーヤー・アバターを動画化するために用いられる他の制御または動作として解釈することができる。更に、動きの中には、プレーヤー・アバター４０を制御する以外の動作に対応することもできる制御として解釈してもよい場合もある。例えば、プレーヤーは、動きを使って、ゲームを終了する、一時停止する、またはセーブする、レベルを選択する、高スコアを見る、友人と通信する等を行うこともできる。加えて、ユーザー１８のモーションの最大範囲が利用可能であり、アプリケーションと相互作用するために任意の適した方法で使って、分析することができる。
【００１４】
[0024]  実施形態例では、ユーザー１８のようなヒトのターゲットがオブジェクトを有することもできる。このような実施形態では、電子ゲームのユーザーがそのオブジェクトを保持しているとよく、ゲームのパラメータを調節および／または制御するために、プレーヤーおよびオブジェクトのモーションを使うことができるようにするとよい。例えば、ラケットを保持しているプレーヤーのモーションを追跡し、電子スポーツ・ゲームにおける画面上のラケットを制御するために利用することができる。他の実施形態例では、オブジェクトを保持しているプレーヤーのモーションを追跡し、電子戦争ゲームにおける画面上の兵器を制御するために利用することができる。
【００１５】
[0025]  他の実施形態例では、ターゲット認識、分析、および追跡システム１０は、更に、ターゲットの動きを、ゲームの範囲の外側にあるオペレーティング・システムおよび／またはアプリケーション制御として解釈するために使うこともできる。例えば、オペレーティング・システムおよび／またはアプリケーションの事実上あらゆる制御可能な態様を、ユーザー１８のようなターゲットの動きによって制御することができる。
【００１６】
[0026]  図２は、ターゲット認識、分析、および追跡システム１０において使うことができるキャプチャー・デバイス２０の一実施形態例を示す。一実施形態例によれば、キャプチャー・デバイス２０は、例えば、飛行時間、構造化光、立体画像等を含む任意の適した技法によって、深度値を含むことができる深度画像を含む深度情報と共にビデオを取り込むように構成することができる。一実施形態によれば、キャプチャー・デバイス２０は、深度情報を「Ｚレイヤー」、または深度カメラからその視線に沿って延びるＺ軸に対して垂直となることができるレイヤーに編成することができる。
【００１７】
[0027]  図２に示すように、キャプチャー・デバイス２０は、画像カメラ・コンポーネント２２を含むことができる。一実施形態例によれば、画像カメラ・コンポーネント２２は、シーンの深度画像を取り込むことができる深度カメラとするとよい。深度カメラは、取り込まれたシーンの二次元（２Ｄ）画素エリアを含むことができ、この２Ｄ画素エリアにおける各画素は、カメラから取り込まれたシーンにおけるオブジェクトの、例えば、センチメートル、ミリメートル等の単位の長さまたは距離というような、深度値を表すことができる。
【００１８】
[0028]  図２に示すように、一実施形態例によれば、画像カメラ・コンポーネント２２は、シーンの深度画像を取り込むために使うことができるＩＲ発光コンポーネント２４、三次元（３Ｄ）カメラ２６、およびＲＧＢカメラ２８を含むことができる。例えば、飛行時間分析では、キャプチャー・デバイス２０のＩＲ発光コンポーネント２４は、シーンに向けて赤外線光を放出することができ、次いでセンサ（図示せず）を使って、そのシーンの中にある１つ以上のターゲットおよびオブジェクトの表面から散乱される光を、例えば、３Ｄカメラ２６および／またはＲＧＢカメラ２８を使って検出することができる。実施形態の中には、パルス状赤外線光を使って、発信光パルスと対応する入射光パルスとの間の時間を測定し、キャプチャー・デバイス２０からシーン内にあるターゲットまたはオブジェクト上における特定の場所までの物理的距離を判定するために使うことができるようにするとよい場合がある。加えて、他の実施形態例では、発信光波の位相を着信光波の位相と比較して、位相ずれを判定するとよい場合もある。次いで、位相ずれを使って、キャプチャー・デバイスからターゲットまたはオブジェクト上の特定の場所までの物理的距離を判定することができる。
【００１９】
[0029]  他の実施形態例によれば、例えば、散乱光パルス撮像を含む種々の技法によって、経時的な光の反射ビームの強度を分析することによって、飛行時間分析を使って、キャプチャー・デバイス２０からターゲットまたはオブジェクト上の特定の場所までの物理的距離を間接的に判定することができる。
【００２０】
[0030]  他の実施形態例によれば、キャプチャー・デバイス２０は、構造化光を使って深度情報を取り込むことができる。このような分析では、パターン光（即ち、格子パターン、縞パターンのような既知のパターンとして表示される光）を、例えば、ＩＲ発光コンポーネント２４によってシーンに向けて投射する。シーンにおいて１つ以上のターゲットまたはオブジェクトの表面に衝突したときに、それに応答して、パターンが変形する可能性がある。このようなパターンの変形を、例えば、３Ｄカメラ２６および／またはＲＧＢカメラ２８によって取り込むことができ、次いで分析して、キャプチャー・デバイスからターゲットまたはオブジェクト上における特定の場所までの物理的距離を判定することができる。
【００２１】
[0031]  他の実施形態によれば、キャプチャー・デバイス２０は、２つ以上の物理的に分離されたカメラを含むことができ、これらが異なる角度からのシーンを捕らえて、視覚的な立体像を得て、これを解明することによって深度情報を発生することができる。
【００２２】
[0032]  キャプチャー・デバイス２０は、更に、マイクロフォン３０を含むことができる。マイクロフォン３０は、音響を受信し電気信号に変換するトランスデューサまたはセンサを含むことができる。一実施形態によれば、マイクロフォン３０を使うと、ターゲット認識、分析、および追跡システム１０においてキャプチャー・デバイス２０と計算環境１２との間におけるフィードバックを低減することができる。加えて、マイクロフォン３０を使うと、ユーザーによって供給することもできるオーディオ信号を受信し、計算環境１２において実行することができるゲーム・アプリケーション、ゲーム以外のアプリケーション等のようなアプリケーションを制御することができる。
【００２３】
[0033]  一実施形態例では、キャプチャー・デバイス２０は、更に、画像カメラ・コンポーネント２２と動作的に通信することができるプロセッサー３２を含むことができる。プロセッサー３２は、標準化されたプロセッサー、特殊化されたプロセッサー、マイクロプロセッサー等を含むことができ、例えば、ユーザーの生のモーションを取り込む命令、予め記録されているモーションを受け取る命令、生のモーションを仮想オブジェクトの第１部分に適用し、予め記録されているモーションを仮想オブジェクトの第２部分に適用する命令、あるいは任意の他の適した命令を実行することができる。これについては、以下で更に詳しく説明する。
【００２４】
[0034]  更に、キャプチャー・デバイス２０は、メモリー・コンポーネント３４を含むことができる。メモリー・コンポーネント３４は、プロセッサー３２によって実行することができる命令、３ＤカメラまたはＲＧＢカメラによって取り込まれた画像またはフレーム、あるいは任意の他の適した情報、画像等を格納することができる。一実施形態例によれば、メモリー・コンポーネント３４は、ランダム・アクセス・メモリー（ＲＡＭ）、リード・オンリー・メモリー（ＲＯＭ）、キャッシュ、フラッシュ・メモリー、ハード・ディスク、または任意の他の適した記憶コンポーネントを含むことができる。図２に示すように、一実施形態では、メモリー・コンポーネント３４は、画像キャプチャー・コンポーネント２２およびプロセッサー３２と通信する別のコンポーネントとすることができる。他の実施形態によれば、メモリー・コンポーネント３４をプロセッサー３２および／または画像キャプチャー・コンポーネント２２に統合してもよい。
【００２５】
[0035]  図２に示すように、キャプチャー・デバイス２０は、通信リンク３６を通して、計算環境１２と通信状態に置くことができる。通信リンク３６は、例えば、ＵＳＢ接続、Firewire接続、イーサネット・ケーブル接続等を含む有線接続、および／またはワイヤレス８０２．１１ｂ、ｇ、ａ、またはｎ接続のようなワイヤレス接続とすることができる。一実施形態によれば、計算環境１２は、クロックをキャプチャー・デバイス２０に供給することができ、通信リンク３６を通して、例えば、いつシーンを取り込むか判断するために、このクロックを使うことができる。
【００２６】
[0036]  加えて、キャプチャー・デバイス２０は、例えば、３Ｄカメラ２６および／またはＲＧＢカメラ２８によって取り込まれた深度情報および画像、および／またはキャプチャー・デバイス２０によって生成することができるスケルトン・モデルを、計算環境１２に通信リンク３６を通して供給することができる。次いで、計算環境１２は、このモデル、深度情報、および取り込まれた画像を使って、例えば、ゲームまたはワード・プロセッサーのようなアプリケーションを制御すること、および／または画面上のキャラクター、アバター、画面上のオブジェクト等のような仮想キャラクターを動画化することができる。例えば、図２に示すように、計算環境１２は、ジェスチャー・ライブラリー１９０を含むことができる。ジェスチャー・ライブラリー１９０は、ジェスチャー・フィルターの集合体を含むことができ、各集合体は、（ユーザーが動くに連れて）スケルトン・モデルによって実行することができるジェスチャーに関する情報を含む。カメラ２６、２８およびキャプチャー・デバイス２０によって取り込まれたスケルトン・モデルの形態のデーター、およびそれと関連付けられた動きを、ジェスチャー・ライブラリー１９０の中にあるジェスチャー・フィルターと比較して、いつユーザー（スケルトン・モデルによって表現される）が１つ以上のジェスチャーを行ったのか特定することができる。これらのジェスチャーは、アプリケーションの種々の制御と関連付けることができる。つまり、計算環境１２は、ジェスチャー・ライブラリー１９０を使って、スケルトン・モデルの動きを解釈し、その動きに基づいてアプリケーションを制御することができる。
【００２７】
[0037]  図３は、ターゲット認識、分析、および追跡システムにおいて１つ以上のジェスチャーを解釈するため、および／またはターゲット認識、分析、および追跡システムによって表示された、アバター、画面上のキャラクター、画面上のオブジェクト等のような、仮想キャラクターを動画化するために使うことができる計算環境の一実施形態例を示す。図１Ａから図２に関して先に説明した計算環境１２のような計算環境は、ゲーミング・コンソールのような、マルチメディア・コンソール１００とするとよい。図３に示すように、マルチメディア・コンソール１００は、レベル１キャッシュ１０２、レベル２キャッシュ１０４、およびフラッシュＲＯＭ（リード・オンリー・メモリー）１０６を有する中央処理ユニット（ＣＰＵ）１０１を有する。レベル１キャッシュ１０２およびレベル２キャッシュ１０４は、一時的にデーターを格納し、こうしてメモリー・アクセス・サイクルの回数を減らすことによって、処理速度およびスループットを向上させる。ＣＰＵ１０１は、１つよりも多いコア、つまり、追加のレベル１およびレベル２キャッシュ１０２および１０４を有して設けることもできる。フラッシュＲＯＭ１０６は、実行可能コードを格納することができる。実行可能コードは、マルチメディア・コンソール１００の電源をオンにしたときに、ブート・プロセスの初期段階中にロードされる。
【００２８】
[0038]  グラフィクス処理ユニット（ＧＰＵ）１０８およびビデオ・エンコーダー／ビデオ・コデック（コーダー／デコーダー）１１４が、高速および高分解能グラフィクス処理のためにビデオ処理パイプラインを形成する。データーは、バスを通して、グラフィクス処理ユニット１０８からビデオ・エンコーダー／ビデオ・コデック１１４に伝達される。ビデオ処理パイプラインは、テレビジョンまたは他のディスプレイに送信するために、データーをＡ／Ｖ（オーディオ／ビデオ）ポート１４０に出力する。メモリー・コントローラー１１０がＧＰＵ１０８に接続されており、限定ではなく、ＲＡＭ（ランダム・アクセス・メモリー）のような、種々のタイプのメモリー１１２にプロセッサーがアクセスし易くしている。
【００２９】
[0039]  マルチメディア・コンソール１００は、Ｉ／Ｏコントローラー１２０、システム管理コントローラー１２２、オーディオ処理ユニット１２３、ネットワーク・インターフェース・コントローラー１２４、第１ＵＳＢホスト・コントローラー１２６、第２ＵＳＢコントローラー１２８、およびフロント・パネルＩ／Ｏサブアセンブリ１３０を含む。好ましくは、これらをモジュール１１８に実装する。ＵＳＢコントローラー１２６および１２８は、周辺コントローラー１４２（１）〜１４２（２）、ワイヤレス・アダプター１４８、および外部メモリー・デバイス１４６（例えば、フラッシュ・メモリー、外部ＣＤ／ＤＶＤ  ＲＯＭドライブ、リムーバブル媒体等）のためのホストとしての役割を果たす。ネットワーク・インターフェース１２４および／またはワイヤレス・アダプター１４８は、ネットワーク（例えば、インターネット、ホーム・ネットワーク等）へのアクセスを与え、イーサネット・カード、モデム、Ｂｌｕｅｔｏｏｔｈモジュール、ケーブル・モデム等を含む広範囲の種々の有線またはワイヤレス・アダプター・コンポーネントのうち任意のものとすることができる。
【００３０】
[0040]  システム・メモリー１４３は、ブート・プロセスの間にロードされるアプリケーション・データーを格納するために設けられている。メディア・ドライブ１４４が設けられており、ＤＶＤ／ＣＤドライブ、ハード・ドライブ、またはその他のリムーバブル・メディア・ドライブ等を備えることができる。メディア・ドライブ１４４は、マルチメディア・コンソール１００の内部にあっても外部にあってもよい。アプリエーション・データーは、実行、再生等のためにマルチメディア・コンソール１００によってメディア・ドライブ１４４を通してアクセスすることができる。メディア・ドライブ１４４は、シリアルＡＴＡバスまたはその他の高速接続（例えば、ＩＥＥＥ１３９４）のようなバスを通して、Ｉ／Ｏコントローラー１２０に接続されている。
【００３１】
[0041]  システム管理コントローラー１２２は、メディア・コンソール１００の利用可能性を確保することに関する種々のサービス機能を提供する。オーディオ処理ユニット１２３およびオーディオ・コデック１３２は、高忠実度およびステレオ処理を行う、対応のオーディオ処理パイプラインを形成する。オーディオ・データーは、通信リンクを通して、オーディオ処理ユニット１２３とオーディオ・コデック１３２との間で伝達される。オーディオ処理パイプラインは、外部オーディオ・プレーヤーまたはオーディオ処理能力を有するデバイスによる再生のために、データーをＡ／Ｖポート１４０に出力する。
【００３２】
[0042]  フロント・パネルＩ／Ｏサブアセンブリ１３０は、電力ボタン１５０およびイジェクト・ボタン１５２の機能をサポートするだけでなく、マルチメディア・コンソール１００の外面上に露出する任意のＬＥＤ（発光ダイオード）またはその他のインディケーターもサポートする。システム電源モジュール１３６が、マルチメディア・コンソール１００のコンポーネントに電力を供給する。ファン１３８は、マルチメディア・コンソール１００内部にある回路を冷却する。
【００３３】
[0043]  ＣＰＵ１０１、ＧＰＵ１０８、メモリー・コントローラー１１０、およびマルチメディア・コンソール１００内部にある種々のその他のコンポーネントは、１系統以上のバスを通して相互接続されている。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、周辺バス、および種々のバス・アーキテクチャーのうち任意のものを使うプロセッサー・バスまたはローカル・バスが含まれる。一例として、このようなアーキテクチャーは、ペリフェラル・コンポーネント相互接続（ＰＣＩ）バス、ＰＣＩ−Ｅｘｐｒｅｓｓバス等を含むことができる。
【００３４】
[0044]  マルチメディア・コンソール１００の電源をオンにすると、システム・メモリー１４３からメモリー１１２および／またはキャッシュ１０２、１０４にアプリケーション・データーをロードし、ＣＰＵ１０１において実行することができる。アプリケーションは、グラフィカル・ユーザー・インターフェースを提示することができる。グラフィカル・ユーザー・インターフェースは、マルチメディア・コンソール１００において利用可能な異なるタイプのメディアにナビゲートするときに、一貫性のあるユーザー体験を提供する。動作において、アプリケーションおよび／またはメディア・ドライブ１４４に含まれている他のメディアをメディア・ドライブ１４４から起動または再生して、マルチメディア・コンソール１００に追加の機能を設けることもできる。
【００３５】
[0045]  マルチメディア・コンソール１００は、単にシステムをテレビジョンまたはその他のディスプレイに接続することによって、スタンドアロン・システムとして動作させることができる。この単独モードでは、マルチメディア・コンソール１００は、一人以上のユーザーがシステムと相互作用を行い、ムービーを見ること、または音楽を聞くことを可能にする。しかしながら、ネットワーク・インターフェース１２４またはワイヤレス・アダプター１４８によって利用可能となるブロードバンド接続機能を統合することにより、マルチメディア・コンソール１００を更に大きなネットワーク・コミュニティにおける一員(participant)として動作させることもできる。
【００３６】
[0046]  マルチメディア・コンソール１００の電源をオンにすると、マルチメディア・コンソールのオペレーティング・システムによって、設定されている量のハードウェア・リソースがシステムの使用のために確保される。これらのリソースは、メモリー（例えば、１６ＭＢ）、ＣＰＵおよびＧＰＵサイクル（例えば、５％）、ネットワーキング帯域幅（例えば、８ｋｂｓ）等の確保を含むことができる。これらのリソースは、システムのブート時に確保されるので、確保されたリソースは、アプリケーションの視点からは存在しない。
【００３７】
[0047]  特に、メモリーの確保は、起動カーネル、コンカレント・システム・アプリケーション、およびドライバーを含めるのに十分大きいことが好ましい。サーブされたＣＰＵの使用がそのシステム・アプリケーションによって用いられない場合、アイドル状態にあるスレッドが未使用サイクルのうち任意のものを消費するように、ＣＰＵの確保を一定レベルに維持することが好ましい。
【００３８】
[0048]  ＧＰＵの確保に関して、ＧＰＵ割り込みを使うことによって、システム・アプリケーション（例えば、ポップアップ）によって発生される軽量メッセージを表示して、ポップアップをオーバーレイにレンダリングするコードをスケジューリングする。オーバーレイに用いられるメモリー量は、オーバーレイのエリア・サイズに依存し、オーバーレイは画面の解像度と共にスケーリングする(scale)ことが好ましい。コンカレント・システム・アプリケーションによってフル・ユーザー・インターフェースが用いられる場合、アプリケーションの解像度とは独立した解像度を使うことが好ましい。周波数を変更しＴＶの同期を取り直す必要性をなくすように、スケーラーを使ってこの解像度を設定するとよい。
【００３９】
[0049]  マルチメディア・コンソール１００がブートして、システム・リソースを確保した後、コンカレント・システム・アプリケーションが実行してシステム機能を提供する。システム機能は、前述の確保したシステム・リソースの内部で実行する１組のシステム・アプリケーションの中にカプセル化されている。オペレーティング・システム・カーネルは、システム・アプリケーション・スレッドと、ゲーミング・アプリケーション・スレッドとの間でスレッドを識別する。一貫したシステム・リソース・ビューをアプリケーションに提供するために、システム・アプリケーションは、所定の時点および間隔でＣＰＵ１０１において実行するようにスケジューリングされていることが好ましい。このスケジューリングは、コンソールにおいて実行しているゲーミング・アプリケーションに対するキャッシュの分裂(disruption)を最少に抑えるためにある。
【００４０】
[0050]  コンカレント・システム・アプリケーションがオーディオを必要とする場合、時間に敏感であるため、オーディオ処理を非同期にゲーミング・アプリケーションにスケジューリングする。マルチメディア・コンソール・アプリケーション・マネージャー（以下で説明する）は、システム・アプリケーションがアクティブのとき、ゲーミング・アプリケーションのオーディオ・レベル（例えば、無音化、減衰）を制御する。
【００４１】
[0051]  入力デバイス（例えば、コントローラー１４２（１）および１４２（２））は、ゲーミング・アプリケーションおよびシステム・アプリケーションによって共有される。入力デバイスは、確保されたリソースではないが、システム・アプリケーションとマルチメディア・アプリケーションとの間で切り換えられて、各々がそのデバイスのフォーカス(a focus of the device)を有するようにする。アプリケーション・マネージャは、好ましくは、マルチメディア・アプリケーションの知識を用いずに入力ストリームの切換を制御し、ドライバーはフォーカス・スイッチ(focus switches)に関する状態情報を維持する。カメラ２６、２８およびキャプチャー・デバイス２０は、コンソール１００のための追加の入力デバイスを定めることができる。
【００４２】
[0052]  図４は、ターゲット認識、分析、および追跡システムにおいて１つ以上のジェスチャーを解釈するため、および／またはターゲット認識、分析、および追跡システムによって表示された、アバター、画面上のキャラクター、画面上のオブジェクト等のような、仮想キャラクターを動画化するために用いられる、図１Ａから図２に示した計算環境１２の他の実施形態例を示す。計算システム環境２２０は、適した計算環境の一例に過ぎず、本明細書において開示される主題の使用範囲または機能に関して、いかなる限定をも示唆する意図はない。また、計算環境２２０が、本明細書において例示されるいずれの１つのコンポーネントまたはコンポーネントの組み合わせに関して何らかの依存性または要件を有するように解釈してはならない。実施形態によっては、図示する種々の計算エレメントが、本開示の特定の態様をインスタンス化するように構成されている回路を含むこともあり得る。例えば、本開示において用いられる回路という用語は、ファームウェアまたはスイッチによって機能（１つまたは複数）を実行するように構成されている特殊ハードウェア・コンポーネントを含むことができる。別の実施形態例では、回路という用語は、機能（１つまたは複数）を実行するために動作可能なロジックを具現化するソフトウェア命令によって構成される汎用処理ユニット、メモリー等を含むことができる。回路がハードウェアおよびソフトウェアの組み合わせを含む実施形態例では、実装者(implementer)は、ロジックを具現化するソース・コードを書くことができ、ソース・コードを機械読み取り可能コードにコンパイルすることができ、この機械読み取り可能コードを汎用処理ユニットによって処理することができる。技術的現状では、ハードウェア、ソフトウェア、またはハードウェア／ソフトウェアの組み合わせの間には殆ど差がないというところまで発展していることを当業者は認めることができるので、特定の機能を実行するためにハードウェアまたはソフトウェアのどちらを選択するかということは、実装者に委ねられた設計選択事項である。更に具体的には、ソフトウェア・プロセスを等価のハードウェア構造に変換することができ、更にハードウェア構造自体を等価のソフトウェア・プロセスに変換することができることを、当業者は認めることができる。つまり、ハードウェアの実施態様およびソフトウェアの実施態様のどちらを選択するかということは、実装者に委ねられた設計選択事項の１つである。
【００４３】
[0053]  図４において、計算環境２２０は、コンピューター２４１を含む。コンピューター２４１は、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター２４１がアクセス可能な入手可能な媒体であればいずれでも可能であり、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。システム・メモリー２２２は、リード・オンリー・メモリー（ＲＯＭ）２２３およびランダム・アクセス・メモリー（ＲＡＭ）２６０のような揮発性および／または不揮発性メモリーの形態で、コンピューター記憶媒体を含む。基本入出力システム２２４（ＢＩＯＳ）は、起動中のように、コンピューター２４１内のエレメント間におけるデーター転送を補助する基本的なルーチンを含み、通例ＲＯＭ２２３内に格納されている。ＲＡＭ２６０は、通例、処理ユニット２５９が直ちにアクセス可能であるデーターおよび／またはプログラム・モジュール、または現在これによって処理されているデーターおよび／またはプログラム・モジュールを収容する。一例として、そして限定ではなく、図４は、オペレーティング・システム２２５、アプリケーション・プログラム２２６、その他のプログラム・モジュール２２７、およびプログラム・データー２２８を示す。
【００４４】
[0054]  また、コンピューター２４１は、その他のリムーバブル／非リムーバブル揮発性／不揮発性コンピューター記憶媒体も含むことができる。一例にすぎないが、図４は、非リムーバブル不揮発性磁気媒体からの読み取りおよびこれへの書き込みを行なうハード・ディスク・ドライブ２３８、リムーバブル不揮発性磁気ディスク２５４からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ２３９、ならびにＣＤ  ＲＯＭまたはその他の光媒体のようなリムーバブル不揮発性光ディスク２５３からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ２４０を示す。動作環境の一例において使用可能なその他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピューター記憶媒体には、限定する訳ではないが、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートＲＡＭ、ソリッド・ステートＲＯＭ等が含まれる。ハード・ディスク・ドライブ２３８は、通例、インターフェース２３４のような非リムーバブル・メモリー・インターフェースを介してシステム・バス２２１に接続され、磁気ディスク・ドライブ２３９および光ディスク・ドライブ２４０は、通例、インターフェース２３５のようなリムーバブル・メモリー・インターフェースによって、システム・バス２２１に接続する。
【００４５】
[0055]  先に論じ図４に示すドライブおよびそれらに関連するコンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、およびコンピューター２４１のその他のデーターを格納する。図４では、例えば、ハード・ディスク・ドライブ２３８は、オペレーティング・システム２５８、アプリケーション・プログラム２５７、他のプログラム・モジュール２５６、およびプログラム・データー２５５を格納するように示されている。尚、これらの構成要素は、オペレーティング・システム２２５、アプリケーション・プログラム２２６、他のプログラム・モジュール２２７、およびプログラム・データー２２８と同じでも異なっていても可能であることを注記しておく。オペレーティング・システム２５８、アプリケーション・プログラム２５７、他のプログラム・モジュール２５６、およびプログラム・データー２５５は、ここで、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。ユーザーは、キーボード２５１、および一般にマウス、トラックボールまたはタッチ・パッドと呼ばれているポインティング・デバイス２５２のような入力デバイスによって、コマンドおよび情報をコンピューター２４１に入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザー入力インターフェース２３６を介して、処理ユニット２５９に接続されている。ユーザー入力インターフェース２３６は、システム・バスに結合されているが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス（ＵＳＢ）によって接続することも可能である。カメラ２６、２８およびキャプチャー・デバイス２０は、コンソール１００の追加入力デバイスを定めることができる。モニター２４２またはその他のタイプの表示装置も、ビデオ・インターフェース２３２のようなインターフェースを介して、システム・バス２２１に接続されている。モニターに加えて、コンピューターは、スピーカー２４４およびプリンター２４３のような、その他の周辺出力装置も含むことができ、これらは出力周辺インターフェース２３３を通して接続することができる。
【００４６】
[0056]  コンピューター２４１は、リモート・コンピューター２４６のような１つ以上のリモート・コンピューターへの論理接続を使って、ネットワーク環境において動作することも可能である。リモート・コンピューター２４６は、パーソナル・コンピューター、サーバー、ルータ、ネットワークＰＣ、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター２４１に関して先に説明したエレメントの多くまたは全てを含むが、図４にはメモリー記憶装置２４７のみを示す。図４に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）２４５およびワイド・エリア・ネットワーク（ＷＡＮ）２４９を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネットおよびインターネットにおいては一般的である。
【００４７】
[0057]  ＬＡＮネットワーク環境で使う場合、コンピューター２４１は、ネットワーク・インターフェースまたはアダプター２３７を介してＬＡＮ２４５に接続する。ＷＡＮネットワーク環境で使う場合、コンピューター２４１は、通例、モデム２５０、またはインターネットのようなＷＡＮ２４９を通して通信を設定するその他の手段を含む。モデム２５０は、内蔵でも外付けでもよく、ユーザー入力インターフェース２３６またはその他の適切な機構を介してシステム・バス２２１に接続することができる。ネットワーク環境では、コンピューター２４１に関係付けて図示したプログラム・モジュール、またはその一部は、リモート・メモリー記憶装置に格納することもできる。一例として、そして限定ではなく、図４は、リモート・アプリケーション・プログラム２４８がメモリー・デバイス２４７に存在するものとして示している。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを設定する他の手段も使用可能であることは認められよう。
【００４８】
[0058]  図５は、アニメーションを混合するする方法例３００の流れ図を示す。方法例３００は、例えば、図１Ａから図４に関して説明したターゲット認識、分析、および追跡システム１０のキャプチャー・デバイス２０および／または計算環境１２を使って実現することができる。一実施形態例では、方法例３００は、プログラム・コード（即ち、命令）の形態を取ることができ、例えば、図１Ａから図４に関して説明したターゲット認識、分析、および追跡システム１０のキャプチャー・デバイス２０および／または計算環境１２によって実行することができる。
【００４９】
[0059]  一実施形態によれば、３０５において、画像を受け取ることができる。例えば、ターゲット認識、分析、および追跡システムは、図１Ａから図２に関して先に説明したキャプチャー・デバイス２０のような、キャプチャー・デバイスを含むことができる。キャプチャー・デバイスは、１つ以上のターゲットを含むこともあるシーンを取り込むまたは観察することができる。一実施形態例では、キャプチャー・デバイスは、飛行時間分析、構造化光分析、ステレオ映像分析等のような任意の適した技法を使って、ＲＧＢ画像、深度画像等のような画像を入手するように構成されている深度カメラとするとよい。
【００５０】
[0060]  例えば、一実施形態では、画像は深度画像を含むことができる。深度画像は、複数の被観察画素とすることができ、各被観察画像は、被観察深度値を有する。例えば、深度画像は、取り込まれたシーンの二次元（２Ｄ）画素エリアを含むことができ、２Ｄ画素エリアにおける各画層は、キャプチャー・デバイスから取り込まれたシーンにおけるオブジェクトの、例えば、センチメートル、ミリメートル等を単位とする長さまたは距離というような深度値を表すことができる。
【００５１】
[0061]  図６は、３０５において受け取ることができる深度画像４００の一実施形態例を示す。一実施形態例によれば、深度画像４００は、例えば、図２に関して先に説明したキャプチャー・デバイス２０の３Ｄカメラ２６および／またはＲＧＢカメラ２８によって取り込まれたシーンの画像またはフレームとすることができる。図６に示すように、深度画像４００は、例えば、図１Ａおよび図１Ｂに関して先に説明したユーザー１８のようなユーザーに対応するヒト・ターゲット４０２と、取り込まれたシーンの中にある壁、テーブル、モニター等のような１つ以上の非ヒト・ターゲット４０４とを含むことができる。前述のように、深度画像４００は、複数の被観察画素を含むことができ、各被観察画素には、観察された深度値が関連付けられている。例えば、深度画像４００は、取り込まれたシーンの二次元（２Ｄ）画素エリアを含むことができ、この２Ｄ画素エリアの中にある各画素は、キャプチャー・デバイスからの取り込まれたシーンの中にあるターゲットまたはオブジェクトの、例えば、センチメートル、ミリメートル等を単位とする長さまたは距離のような深度値を表すことができる。一実施形態では、当該深度画像４００の画素の異なる色が、キャプチャー・デバイスからのヒト・ターゲット４０２および非ヒト・ターゲット４０４の異なる距離に対応するように、および／または視覚的に描画するように、深度画像４００に着色することもできる。例えば、一実施形態によれば、キャプチャー・デバイスに最も近いターゲットと関連付けられた画素には、深度画像では赤および／またはオレンジ色の濃淡で着色することができ、一方離れたターゲットと関連付けられた画素には、深度画像において緑および／または青の濃淡で着色することができる。
【００５２】
[0062]  再び図５を参照すると、一実施形態では、３０５において画像を受け取ったときに、この画像を更に低い処理分解能にダウンサンプルして、深度画像を一層使いやすくすること、および／または計算オーバーヘッドを減らして、更に素早く処理できるようにすることもできる。加えて、１つ以上の高分散および／またはノイズの多い深度値を深度画像から除去すること、および／または平滑化することもできる。失われた深度情報および／または除去した深度情報の部分は、補充することおよび／または再生することができ、および／またはスケルトン・モデルのようなモデルを生成するために深度情報を使うことができるように、受け取った深度情報に対して任意の他の適した処理を実行することもできる。これについては、以下で更に詳しく説明する。
【００５３】
[0063]  ３１０において、画像におけるユーザーのモデルを生成することができる。例えば、画像を受け取ったとき、ターゲット認識、分析、および追跡システムは、深度画像の中にある各ターゲットまたはオブジェクトを塗りつぶし(flood filling)、塗りつぶした各ターゲットまたはオブジェクトを、種々の位置またはポーズのヒトの体モデルと関連付けられたパターンと比較することによって、例えば、図１Ａおよび図１Ｂに関して先に説明したユーザー１８のようなユーザーに対応する、図６に関して先に説明したヒト・ターゲット４０２のようなヒト・ターゲットが深度画像に含むか否か判断することができる。塗りつぶされたターゲットまたはオブジェクトがパターンと一致した場合、これを分離し、走査して、例えば、種々の体部分の測定値を含む値を判定することができる。一実施形態例によれば、次いで、走査に基づいて、スケルトン・モデル、メッシュ・モデル等のようなモデルを生成することができる。例えば、一実施形態によれば、走査によって決定することができる測定値を、１つ以上のデーター構造に格納することができ、このデーター構造は、モデルにおける１つ以上の関節を定めるために使うことができる。１つ以上の関節は、ヒトの体部分に対応することができる１つ以上の骨を定めるために使うことができる。
【００５４】
[0064]  図７は、３１０にいてユーザーについて生成することができるモデル５００の一実施形態例を示す。一実施形態例によれば、モデル５００は、１つ以上のデーター構造を含むことができ、このデーター構造は、例えば、図６に関して先に説明した深度画像４００におけるヒト・ターゲット４０２のような、深度画像におけるユーザーと関連付けられたヒト・ターゲットの三次元モデルを表すことができる。一実施形態では、ユーザーと関連付けられたヒト・ターゲットの各体部分は、モデル５００の関節および骨を定める数学的ベクトルとして特徴付けることができる。
【００５５】
[0065]  図７に示すように、モデル５００は、１つ以上の関節ｊ１〜ｊ１８を含むことができる。一実施形態例によれば、関節ｊ１〜ｊ１８の各々は、それらの間に定められる１つ以上の体部分が、互いに対してまたは他の１つ以上の体部分に対して動くことを可能にする。例えば、ヒト・ターゲットを表すモデルは、複数の剛体の体部分および／または変形可能な体部分を含むことができ、これらの体部分は、「骨」のような１つ以上の構造的部材と、隣接する骨の交点に位置する関節ｊ１〜ｊ１８とによって定めることができる。関節ｊ１〜ｊ１８は、骨および関節ｊ１〜ｊ１８と関連付けられている種々の体部分が、互いに独立して動くことを可能にすることができる。例えば、図７に示す関節ｊ７およびｊ１１間に定められている骨は、前腕に対応することができ、この前腕は、例えば、ふくらはぎに対応することができる関節ｊ１５およびｊ１７間に定められている骨とは独立して動かすことができる。
【００５６】
[0066]  前述のように、体部分の各々は、図７に示す関節および骨を定める、Ｘ値、Ｙ値、およびＺ値を有する数学的ベクトルとして特徴付けることができる。一実施形態例では、図７に示す、骨と関連付けられたベクトルの交点は、関節ｊ１〜ｊ１８と関連付けられたそれぞれのポイントを定めることができる。
【００５７】
[0067]  再度図５を参照すると、３１５において、ユーザーと関連付けられたモデルのリアル・タイムのモーション、即ち、生のモーションを取り込むことができる。例えば、モデルを追跡して、ユーザーのモーションを真似するように、モデルを調節するまたは動かすことができる。このようなユーザーと関連付けられたモデルの調節またはモーションは、リアル・タイムで取り込むことができる。加えて、このような調節またはモーションは、アバター、画面上のキャラクター、画面上のオブジェクト等のような、仮想キャラクターに適用することもできる。これについては、以下で更に詳しく説明する。
[0068]  一実施形態によれば、図７に関して先に説明したモデル５００のようなモデルは、図１Ａおよび図１Ｂに関して先に説明したユーザー１８のようなユーザーの一表現とするとよい。ターゲット認識、分析、および追跡システムは、ユーザー１８からの動きを観察するまたは取り込むことができ、その動きを使ってモデル５００を調節するまたは動かして、３１５においてモデル５００の調節またはモーションを取り込むことができるようにする。
【００５８】
[0069]  例えば、図１Ａから図２に関して先に説明したキャプチャー・デバイス２０のようなキャプチャー・デバイスは、シーンの深度画像、ＲＧＢ画像のような複数の画像を観察するまたは取り込むことができ、モデルを調節するために使うことができる。一実施形態によれば、画像の各々は、定められた頻度に基づいて観察するまたは取り込むことができる。例えば、キャプチャー・デバイスは、シーンの新たな画像を、ミリ秒毎、マイクロ秒毎等で観察するまたは取り込むことができる。
【００５９】
[0070]  画像の各々を受け取ると、個々の画像と関連付けられた情報を、モデルと関連付けられた情報と比較して、ユーザーが動きを行った可能性があるか否か判断することができる。例えば、一実施形態では、合成深度画像のような合成画像に、モデルをラスタライズ (rasterize)することができる。合成画像における画素を、受け取った画像の各々におけるヒト・ターゲットと関連付けられた画素と比較して、受け取った画像におけるヒト・ターゲットが動いたか否か判断することができる。
【００６０】
[0071]  一実施形態例によれば、合成画像と受け取った画像との間における画素の比較に基づいて、１つ以上の力ベクトル(force vector)を計算することができる。次いで、モデルの関節のような１つ以上の力を受ける態様に、１つ以上の力を加えてまたはマッピングして、実空間にいるヒト・ターゲットまたはユーザーのポーズに一層密接に対応するポーズに、モデルを調節するまたは動かすことができる。
【００６１】
[0072]  被追跡モデルの調節またはモーションを、次に３１５において取り込むことができる。一実施形態では、被追跡モデルの調節またはモーションを、モーション・キャプチャー・ファイルに記録することができる。例えば、ターゲット認識、分析、および追跡システムは、手を振るモーション、ゴルフのスイングのような振り回すモーション、パンチを打つモーション、歩くモーション、走るモーション等のような、図１Ａおよび図１Ｂに関して先に説明したユーザー１８のようなユーザーに特定の１つ以上のモーションを含むことができるモーション・キャプチャー・ファイルをレンダリングおよび格納することができる。一実施形態によれば、モーション・キャプチャー・ファイルは、被追跡モデルと関連付けられたＸ、Ｙ、Ｚ値を含むベクトルのような情報に基づいてリアル・タイムで生成することができ、モデルに適用することができる、ユーザーによって行われる動きの１つ以上のフレームを含むことができる。更に、モーション・キャプチャー・ファイルにおけるモデルのモーションは、アバター、画面上オブジェクト、画面上キャラクター等のような仮想キャラクターに、リアル・タイムで、または生で適用することもできる。加えて、モーション・キャプチャー・ファイルにおけるモデルのモーションは、モーション・キャプチャー・ファイルを仮想オブジェクトまたはキャラクターに今後の時点において適用することができるように、格納するまたは予め記録しておくこともできる。これについては、以下で更に詳しく説明する。
【００６２】
[0073]  図８Ａおよび図８Ｂは、モーション・キャプチャー・ファイル内に種々の時点において取り込むことができる、図１Ａおよび図１Ｂに関して先に説明したユーザー１８のようなユーザーと関連付けられたモデル５００の一実施形態例を示す。図８Ａおよび図８Ｂに示すように、図７に関して先に説明したモデル５００は、前述のように種々の時点におけるユーザーの動きに基づいて、調節するまたは動かすことができる。例えば、図８Ａに示すように、モデル５００の関節ｊ３、ｊ７、およびｊ１１、ならびにそれらの間に定められる骨は、ユーザーが彼または彼女の右前腕を上げたときに、例えば、前述のように１つ以上の力ベクトルを関節ｊ３、ｊ７、およびｊ１１に適用することによって、ポーズ５０２を表すように、調節するまたは動かすことができる。図８Ａに示すようにユーザーが彼または彼女の右前腕を上げた後、ユーザー１８のようなユーザーは、次に彼または彼女の左前腕を上げることができる。図８Ｂに示すように、モデル５００を次にポーズ５０２からポーズ５０４に調節して、ユーザーが彼または彼女の左前腕を上げたときに、例えば、前述のように１つ以上の力ベクトルを関節ｊ４、ｊ８、およびｊ１２に適用することによって、モデル５００の関節ｊ４、ｊ８、およびｊ１２ならびにそれらの間に定められている骨を調節するまたは動かすことができるようにする。図８Ａおよび図８Ｂにおいてポーズ５０２および５０４によって示されるように、モデル５００に適用することができる調節またはモーションは、前述のように、モーション・キャプチャー・ファイルのそれぞれのフレームに、３１５において取り込むことができる。
【００６３】
[0074]  再度図５を参照すると、予め記録されているモーションを３２０において受け取ることができる。例えば、ターゲット認識、分析、および追跡システムは、画面上ゲーム・キャラクター、アバター、画面上オブジェクト等のような仮想キャラクターについて予め記録されているモーションを受け取ることができる。一実施形態では、予め記録されているモーションは、アプリケーション開発者によって作成された仮想キャラクターまたはオブジェクトのためにアーティストが制作した仮想キャラクターまたはオブジェクト、および／またはアプリケーション開発者によって作成された入力デバイス制御のアニメーションまたはモーション、ラグ・ドール(rag doll)のアニメーションまたはモーション等の、アーティストが制作したアニメーションまたはモーション・キャプチャー・ファイルとすることができる。他の実施形態によれば、予め記録されているモーションは、ターゲット認識、分析、および追跡システムのユーザーと関連付けられているモデルのモーション・キャプチャー・ファイルとすることができ、前述のように、今後の使用のために格納することもできる。
【００６４】
[0075]  図９Ａおよび図９Ｂは、種々の時点における、または３２０において予め記録されているアーティストが制作したモーションとして受け取ることができる種々のフレームにおける、ケンタウルのような仮想オブジェクトまたはキャラクターについてのキャラクター・モデル６００の一実施形態例を示す。図９Ａおよび図９Ｂに示すように、キャラクター・モデル６００は１つ以上の関節ｊ１’〜ｊ２０’を含むことができる。一実施形態では、関節ｊ１’〜ｊ２０’の各々は、１つ以上の体部分を定めることができる。これらの体部分は、関節ｊ１’〜ｊ２０’における１つ以上の他の体部分と関係付けて、またはこれらとは独立して動くことができ、仮想オブジェクトまたはキャラクターを動画化することができる。これについては、以下で更に詳しく説明する。
【００６５】
[0076]  加えて、一実施形態例によれば、キャラクター・モデル６００の関節ｊ１’〜ｊ２０’の各々は、種々の時点において、または予め記録されているアーティスト制作アニメーションまたはモーション・キャプチャー・ファイルのそれぞれのフレームにおいて、予め記録されているアーティスト制作アニメーションまたはモーション・キャプチャー・ファイルの中に、対応するアニメーション・トラック(animation track)を有することもできる。例えば、図９Ａに示すように、キャラクター・モデル６００の関節ｊ１６’、ｊ１８’、およびｊ２０’、ならびにそれらの間に定められた体部分は、各々、予め記録されているアーティスト制作アニメーションまたはモーション・キャプチャー・ファイルにおける第１時点または第１フレームにおいて、アニメーション・トラック(animation track)を有することができ、その結果、予め記録されているアーティスト制作アニメーションまたはモーション・ファイルにおけるキャラクター・モデル６００のポーズ６０２が生ずることができる。次いで、関節ｊ１６’、ｊ１８’、およびｊ２０’は、予め記録されているアーティスト制作アニメーションまたはモーション・ファイルにおけるキャラクター・モデル６００の関節ｊ１６’、ｊ１８’、およびｊ２０’についてのアニメーション・トラックの各々について、後続の第２時点または第２の後続フレームにおけるポーズ６０４を表すように調節することができる。
【００６６】
[0077]  再度図５を参照すると、３２５において、モデルのモーション、および／または予め記録されているモーションを、仮想オブジェクトまたはキャラクターに適用することができる。例えば、ターゲット認識、分析、および追跡システムは、ユーザーの１つ以上のリアル・タイムまたは生のモーション、および／またはユーザーの予め記録されているモーションを、仮想オブジェクトまたはキャラクターの少なくとも一部にマッピングすることができ、この仮想オブジェクトまたはキャラクターを動画化して、図１Ａおよび図１Ｂに関して先に説明したユーザー１８のようなユーザーによって行われる動きを真似させるようにすることができる。加えて、ターゲット認識、分析、および追跡システムは、１つ以上の予め記録されているアーティスト制作アニメーションまたはモーションおよび／または１つ以上の予め記録されているプログラム制御変換を、仮想オブジェクトまたはキャラクターの少なくとも一部にマッピングすることができ、この仮想オブジェクトまたはキャラクターを動画化して、予め記録されているアーティスト制作モーションおよび／または予め記録されているプログラム制御変換をまねるようにすることができる。
【００６７】
[0078]  図１０Ａおよび図１０Ｂは、３２５において適用された、ユーザーの生のモーションおよび／または予め記録されているモーションを有することができる、仮想キャラクター７００の一実施形態例を示す。図１０Ａおよび図１０Ｂに示すように、キャラクター７００は、例えば、ゲーム・アプリケーションにおけるキャラクターとすることもできる、ケンタウルを含むことができる。一実施形態によれば、仮想キャラクター７００は、ユーザーと関連付けられたモデルを追跡して得られた生のモーション、および予め記録されているアーティスト制作モーションのような、予め記録されているモーションを使って、３２５において動画化することができる。例えば、仮想キャラクター７００の第１部分Ａは、図１Ａおよび図１Ｂに関して先に説明したユーザー１８のようなユーザーによって行われる生のモーションを使って動画化することができ、第２部分Ｂは、予め記録されているアーティスト制作モーションを使って動画化することができる。
【００６８】
[0079]  一実施形態例によれば、図７から図８Ｂに関して先に説明したように、ユーザーと関連付けられたモデル５００の関節ｊ１〜ｊ１２を、仮想キャラクター７００の第１部分Ａにマッピングすることができ、図９Ａおよび図９Ｂに関して先に説明したように、キャラクター・モデル６００の関節ｊ９’〜ｊ２０’を、仮想キャラクター７００の第２部分Ｂにマッピングすることができ、ユーザーが行うことができる生のモーションを真似するように第１部分Ａを動画化し、仮想キャラクター７００と関連付けられたキャラクター・モデル６００のようなキャラクター・モデルのアニメーションをまねるように、第２部分Ｂを動画化することができるようになる。例えば、図８Ａおよび図８Ｂに示したモデル５００の関節ｊ４、ｊ８、およびｊ１２、ならびにその間に定められている骨を、仮想キャラクター７００の左肩、左肘、および左手首、ならびにそれらの間に定められている対応する体部分にマッピングすることができ、図１０Ａおよび図１０Ｂに示す仮想キャラクター７００の第１部分Ａが、ユーザーが彼または彼女の左腕を動かしている姿と関連付けられる、図８Ａおよび図８Ｂに示した関節ｊ４、ｊ８、およびｊ１２のポーズ５０２および５０４を真似することができるようになる。加えて、図９Ａおよび図９Ｂに示したキャラクター・モデル６００の関節ｊ１６’、ｊ１８’、およびｊ２０’ならびにそれらの間に定められている骨を、仮想キャラクター７００の前左臀部(front left hip)、前左膝、および前左踝、ならびにそれらの間に定められる対応する体部分にマッピングすることができ、図１０Ａおよび図１０Ｂに示した仮想キャラクター７００の第２部分Ｂが、左前足を伸ばしているケンタウルのモデルの図９Ａおよび図９Ｂに示した関節ｊ１６’、ｊ１８’、およびｊ２０’のポーズ６０２および６０４を真似することができるようになる。このように、一実施形態例によれば、仮想キャラクター７００は、ユーザーと関連付けられたモデル５００の生のモーションを、仮想キャラクターまたはオブジェクトと関連付けられたキャラクター・モデル６００の予め記録されているモーションと混合して、含むことができる。
【００６９】
[0080]  一実施形態では、生のモーションおよび予め記録されているモーションによって仮想キャラクター７００を動画化するには、ターゲット認識、分析、および追跡システムは、仮想キャラクター７００の第１部分Ａに対応するキャラクター・モデル６００の関節および／または体部分と関連付けられているアニメーションまたはモーションの追跡をディスエーブルすればよい。加えて、ターゲット認識、分析、および追跡システムは、仮想キャラクター７００の第２部分Ｂに対応する、モーション・キャプチャー・ファイルにおけるモデル５００の関節と関連付けられているアニメーションまたはモーションをディスエーブルしてもよい。ターゲット認識、分析、および追跡システムは、次いで、モーション・キャプチャー・ファイルの中にある、ユーザーと関連付けられているモデル５００のアニメーションまたはモーションを、キャラクター・モデル６００のアニメーションまたはモーション・トラックと混合して、ユーザーと関連付けられているモデル５００のモーションによって、第１部分Ａを動画化し、仮想キャラクター７００と関連付けられているキャラクター・モデル５００のアニメーションまたはモーションで、第２部分を動画化することができる。
【００７０】
[0081]  例えば、ターゲット認識、分析、およびターゲット・システムは、キャラクター・モデル６００の関節ｊ１’〜ｊ８’のアニメーションまたはモーション・トラック、ならびにユーザーと関連付けられているモデル５００の関節ｊ１３〜ｊ１８のアニメーションまたはモーションをディスエーブルすることができる。次に、ターゲット認識、分析、およびターゲット・システムは、キャラクター・モデル６００と、ユーザーと関連付けられているモデル５００とのアニメーションおよびモーションを混合して、仮想キャラクター７００の第１部分Ａが、ユーザーによる動きを真似することができ、仮想キャラクター７００の第２部分Ｂが、図１０Ａおよび図１０Ｂに示すような、キャラクター・モデルの予め記録されているアニメーションまたはモーションを真似することができるようになる。
【００７１】
[0082]  図１１Ａ〜図１１Ｆは、３２５において、ユーザーの生のモーションおよび／または予め記録されているモーションが適用された仮想キャラクター８００の他の実施形態例を示す。図１１Ａ〜図１１Ｆに示すように、仮想キャラクター８００は、例えば、ゲーム・アプリケーションにおけるキャラクターとしてもよいロボットを含むことができる。一実施形態によれば、仮想キャラクター８００は、３２５において、ユーザーと関連付けられた被追跡モデルの生のモーション、および／またはユーザーと関連付けられたモデルの格納されているモーションまたはアーティストが制作した予め記録されているモーションというような、予め記録されているモーションを使って動画化することができる。例えば、仮想キャラクター８００の第１部分Ａ’は、図１Ａおよび図１Ｂに関して先に説明したユーザー１８のようなユーザーによって行われる生のモーションを使って動画化することができ、および／または第２部分Ｂ’は、モーション・キャプチャー・ファイルに予め記録されているユーザーのモーションまたはアーティストが制作した予め記録されているモーションを使って動画化することができる。
【００７２】
[0083]  一実施形態によれば、生のおよび／または予め記録されているモーションあるいはアニメーションは、ユーザーから受けたジェスチャーに応答して、仮想キャラクター８００に適用することができる。例えば、３１５において取り込むことができる、ユーザーと関連付けられたモデルのリアル・タイムまたは生のモーションが、３２５において、仮想キャラクター８００の動きまたはアニメーションを制御するために使うことができるジェスチャーを含むことができる。
【００７３】
[0084]  一実施形態例では、ユーザーと関連付けられているモデルを調節して、彼または彼女の左腕を上げているユーザーを真似して、そして３１５において取り込むことができるように、ユーザーが彼または彼女の左腕を上げることができる。例えば、図７から図８Ｂに関して先に説明したモデル５００の関節ｊ４、ｊ８、およびｊ１２は、ユーザーが彼または彼女の左腕を上げたことを反映するように調節することができる。次いで、ターゲット認識、分析、および追跡システムは、持ち上げられた左腕と関連付けられたジェスチャーを解釈し、ターゲット認識、分析、および追跡システムが、予め記録されているモーションまたは生のモーションを、仮想キャラクター８００の第１部分Ａ’のような少なくとも一部に適用することができ、ユーザーによって持ち上げられた左腕と関連付けられたジェスチャーに応答して、仮想キャラクター８００の第１部分Ａ’等のような少なくとも一部に適用されている、予め記録されているモーションまたは生のモーションから切り替えることができる。
【００７４】
[0085]  例えば、一実施形態によれば、ユーザーが彼または彼女の左腕を上げたことに応答して、例えば、ユーザーと関連付けられているモデル５００に行われた調節に基づいて仮想キャラクター８００を動画化し、図１１Ｂに示すように、ユーザーが彼または彼女の左腕を上げたという生のモーションを、例えば、仮想キャラクター８００の第１部分Ａ’に適用することができるようになる。即ち、ユーザーが彼または彼女の左腕を上げたことに応答して、ユーザーと関連付けられているモデル５００の関節ｊ４、ｊ８、およびｊ１２を、仮想キャラクター８００の左腕にマッピングすることができ、仮想キャラクター８００の第１部分Ａ’を、ユーザーが彼または彼女の上半身によって行う生のモーションによって動画化することができるようになる。加えて、ユーザーによる彼または彼女の上半身のその後の動きも、仮想キャラクター８００に適用することができる。例えば、ユーザーが彼または彼女の右前腕を上げると、ユーザーが彼または彼女の右前腕を上げた生のモーションを、モデル５００の関節ｊ７およびｊ１１に適用することができる。これらの生のモーションは、次に、前述のように仮想キャラクター８００に適用され、仮想キャラクター８００が、図１１Ｃに示すように、彼または彼女の左前腕を上げるように動画化させるまたは動かすことができるようになる。このように、一実施形態によれば、受け取ったジェスチャーに応答して、仮想キャラクター８００の少なくとも一部を、ユーザーと関連付けられたモデル５００に適用することができるユーザーの動きを真似するように動画化することができる。
【００７５】
[0086]  同様に、ユーザーが彼または彼女の左足を上げると、ユーザーと関連付けられているモデルは、ユーザーが彼または彼女の左足を上げる動作を真似することができ、３１５においてこのモデルを取り込むことができるようになる。例えば、図７から図８Ｂに関して先に説明したモデル５００の関節ｊ１４、ｊ１６、およびｊ１８は、ユーザーが彼または彼女の左足を上げたことを反映するように調節することができる。ターゲット認識、分析、および追跡システムは、次に、上げられた左足と関連のあるジェスチャーを解釈することができ、ターゲット認識、分析、および追跡システムが、ユーザーによって上げられた左足と関連のあるジェスチャーに応答して、予め記録されているモーションまたは生のモーションを、仮想キャラクター８００の第２部分Ｂ’のような少なくとも一部に適用することができ、仮想キャラクター８００の第２部分Ｂ’のような少なくとも一部に適用されている、予め記録されているモーションまたは生のモーションから切り替えること等ができるようになる。
【００７６】
[0087]  例えば、一実施形態によれば、ユーザーが彼または彼女の左足を上げたことに応答して、仮想キャラクター８００の第２部分Ｂ’を、モーション・キャプチャー・ファイルに取り込まれているユーザーと関連付けられているモデル５００の予め記録されている歩行運動、または図１１Ｄから図１１Ｆに示すような、アーティストが制作した歩行アニメーションというような、予め記録されている歩行運動を使って動画化することができる。即ち、ユーザーが彼または彼女の左足を上げたことに応答して、格納されているモーション・キャプチャー・ファイルの中にあるモデル５００の関節ｊ１３〜ｊ１８を、仮想キャラクター８００の右足および左足それぞれにマッピングすることができ、仮想キャラクター８００の第２部分Ｂ’を、ユーザーが行った歩行運動を予め記録したものによって動画化することができる。あるいは、ユーザーが彼または彼女の左足を上げたことに応答して、キャラクター・モデルの関節および／または体部分を、仮想キャラクター８００の右足および左足それぞれにマッピングすることができ、仮想キャラクター８００の第２部分Ｂ’を、アーティストが制作して予め記録されている歩行運動によって動画化することができる。
【００７７】
[0088]  一実施形態では、仮想キャラクター８００に適用されるアニメーションを制御することができる後続のジェスチャーを受け取ることができるまで、ユーザーの生のモーションおよび／または予め記録されているモーションを、例えば、仮想キャラクター８００の第１および第２部分Ａ’およびＢ’に適用することができる。例えば、ユーザーが彼または彼女の右および左腕双方を上げるというような後続のジェスチャーを受け取ることができるまで、ユーザーの生のモーションを、仮想キャラクター８００の第１部分Ａ’に適用することができる。後続のジェスチャーを受け取ると、仮想キャラクター８００の第１部分Ａ’を静止させるか、あるいは、例えば、前述のモーション・キャプチャー・ファイルの中に予め記録されているユーザーのモーションまたはアーティストが生成し予め記録されているアニメーションというような、予め記録されているモーションを使って動画化されるように切り替えることができる。
【００７８】
[0089]  一実施形態例によれば、ユーザーが彼または彼女の左手を上げたことに応答して、ユーザーが彼または彼女の上半身によって行った生のモーションを使って仮想キャラクター８００の第１部分Ａ’を動画化するには、ターゲット認識、分析、および追跡システムは、ユーザーの下半身と関連付けられているモデル５００の関節ｊ１３〜ｊ１８のような、関節および／または体部分のアニメーションまたはモーションをディスエーブルすることができる。加えて、ユーザーが彼または彼女の左足を上げたことに応答して、予め記録されている歩行運動を使って仮想キャラクター８００の第２部分Ｂ’を動画化するには、ターゲット認識、分析、および追跡システムは、仮想キャラクター８００またはユーザーと関連付けられたキャラクター・モデルの上半身と関連付けられたキャラクター・モデルまたはモデル５００の関節および／または体部分のアニメーションまたはモーションをディスエーブルすることができる。ターゲット認識、分析、および追跡システムは、次に、キャラクター・モデル６００の予め記録されている歩行運動をイネーブルしこれと、ユーザーの上半身のイネーブルされている生のアニメーションまたはモーションを混合することができ、ユーザーが彼または彼女の左腕を上げたことに応答して、第１部分Ａ’をユーザーの上半身の生のモーションを使って、図１１Ｄから図１１Ｆに示すような予め記録されている歩行運動によって動画化することができる。
【００７９】
[0090]  加えて、一実施形態では、ユーザーが双方の腕を上げるというような後続のジェスチャーを受け取ったことに応答して、例えば、仮想キャラクター８００の第１部分Ａ’に適用されているユーザーの生のモーションを、予め記録されているモーションと切り替えることができ、ターゲット認識、分析、および追跡システムは、例えば、１５〜２０フレームのような所定数のフレームに渡って移り変わり(transition)を混合することができ、仮想キャラクターの第１部分Ａ’が、生のモーションと予め記録されているモーションとの間で滑らかに移り変わることができるようにする。例えば、生のモーションにおけるモデル５００の関節および／または体部分の各々を、１５〜２０フレームにわたる予め記録されているモーションにおける、対応する関節および／または体部分と混合することができる。このように、モーション・キャプチャー・ファイルにおける生のモーションの第１フレームにおけるモデル５００の上半身と関連のある各関節を、予め記録されているモーションまたはアニメーションの第１フレームにおけるキャラクター・モデルの各対応する関節および／または体部分と混合することができる。次いで、生のモーションは、所定数のフレームの後に、徐々に消えて行き、仮想キャラクター８００の第１部分Ａ’が、予め記録されているモーションまたはアニメーションを使って動画化されるようにすることができる。
【００８０】
[0091]  図１２Ａおよび図１２Ｂは、ユーザーの生のモーションおよび／または３２５において適用されたプログラム制御変形を有することができるゲーム・キャラクター９００の一実施形態例を示す。図１２Ａおよび図１２Ｂに示すように、ゲーム・キャラクター９００は、例えば、フットボール・ゲーム・アプリケーションにおけるキャラクターとしてもよい、フットボール・プレーヤーを含むことができる。一実施形態によれば、ゲーム・キャラクター９００は、３２５において、ユーザーと関連付けられた被追跡モデルの生のモーション、および入力デバイスによって制御されるアニメーションまたはモーション、ラグ・ドール(rag doll)のアニメーションまたはモーション等のようなプログラム制御変換を使って動画化することができる。例えば、ゲーム・キャラクター９００の腕９０６ａおよび９０６ｂのような第１部分は、図１Ａおよび図１Ｂに関して説明したユーザー１８のようなユーザーが彼または彼女の腕によって行った生のモーションによって、制御または動画化することができる。一実施形態例によれば、図１２Ａおよび図１２Ｂに示すゲーム・キャラクター９００の残りの体部分の各々のような第２部分には、予め記録されているプログラム制御変形が適用されていてもよい。
【００８１】
[0092]  一実施形態では、予め記録されているプログラム制御変形は、ゴール・ベース(goal based)アニメーションまたはモーションを含むことができる。このアニメーションまたはモーションは、物理的過程を使って、ゲーム・キャラクター９００のようなゲーム・キャラクターがアプリケーションにおいてそのゴールに到達することを可能にすることができる。例えば、ゲーム・キャラクター９００は、ワイド・レシーバーとすることができ、パスを捕球するために、フットボール・ゲーム・アプリケーションにおいて設けられているフットボール競技場において、特定の位置に到達して得点を得ることができる。この予め記録されているプログラム制御変形は、例えば、ゲーム・キャラクター９００に自動的にその位置に到達させることができる物理的過程を使って、アニメーションまたはモーションを含むことができる。
【００８２】
[0093]  加えて、他の実施形態例によれば、ゲーム・キャラクター９００は、図１２Ａおよび図１２Ｂに示すように、相手チームのゲーム・キャラクターによってタックルされてもよい。プログラム制御変形は、フットボール・ゲーム・アプリケーションにおいて所与の位置でゲーム・キャラクター９００にタックルするように位置付けることができるラグ・ドールに基づいて、予め記録されているアニメーションまたはモーションを含むことができる。例えば、プログラム制御変形のモーションまたはアニメーションは、ゲーム・キャラクター９００が、敵のプレーヤーの位置と関連付けられたラグ・ドールによってタックルされたと考えたときのゲーム・キャラクター９００の反応に基づく物理的過程の計算に基づいて生成することができる、ラグ・ドールのアニメーションまたはモーションを含むことができる。
【００８３】
[0094]  このように、一実施形態では、腕９０６ａおよび９０６ｂには、ユーザーの腕の生のモーションを適用することができ、ゲーム・キャラクター９００の残りの体部分は、ゲーム・キャラクター９００にタックルする敵のプレーヤーと関連付けられたラグ・ドールのアニメーションまたはモーションのプログラム制御変換によって動画化することができ、ユーザーは、図１２Ａおよび図１２Ｂに示すように、捕球を行うように腕９０６ａおよび９０６ｂを制御し続けることができ、体の残りの部分は、敵のプレーヤーによって実際にタックルされたプレーヤーと同様に反応することができる。
【００８４】
[0095]  このように、一実施形態例では、図５に示した３２５において、１つ以上の生のモーションまたはモーション・キャプチャー・ファイルに予め記録されているモーションに応答して、 画面上のキャラクターの視覚的外観を変化させることができる。例えば、ゲーミング・コンソールにおいて電子ゲームをプレーしている図１Ａおよび図１Ｂに関して先に説明したユーザー１８のようなゲーム・プレーヤーを、本明細書において記載したように、ゲーミング・コンソールによって追跡することができる。ゲーム・プレーヤーが腕を振ると、ゲーミング・コンソールはこのモーションを追跡し、次いでこの追跡したモーションに応答して、ユーザーと関連付けられているモデルを調節することができる。前述のように、被追跡モデルを更にモーション・キャプチャー・ファイルに取り込むこともできる。次いで、モーション・キャプチャー・ファイルを、例えば、画面上のキャラクターの上半身部分に適用することができ、ユーザーが彼らの腕を振る実際のモーションを真似るように、画面上のキャラクターを動画化することができるようになる。加えて、アーティストが生成した予め記録されているモーション、またはプログラム制御変換を、生のモーションまたはモーション・キャプチャー・ファイルに予め記録されているモーションと混合することもできる。例えば、実施形態例によれば、画面上のキャラクターは、例えば、ユーザーが彼または彼女の腕をリアル・タイムで、または生で振るのと全く同様に、ゲームにおいて、ゴルフ・クラブ、バットを振る、またはパンチを打つように動画化することができ、そして予め記録されている走行、歩行、あるいはバイクのモーションまたはアニメーションに取り込むことができるプロの競技者と同様に、画面上のキャラクターが走行する、歩行する、またはバイクに乗るように動画化することができる。
【００８５】
[0096]  尚、本明細書において記載した構成および／または手法は、本質的に例示であること、そしてこれら具体的な実施形態または例を限定と見なしてはならないことは言うまでもない。本明細書において記載したこれら具体的なルーチンおよび方法は、任意の数の処理方策のうち１つ以上を表すことができる。したがって、例示した種々の動作(act)は、例示したシーケンスで、他のシーケンスで、並行して等で実行することができる。同様に、前述のプロセスの順序も変更することができる。
【００８６】
[0097]  本開示の主題は、本明細書において開示した種々のプロセス、システムおよび構成、ならびに他の特徴、機能、動作、および／または特性のあらゆる新規でかつ非明示的なコンビネーションおよびサブコンビネーション、更にはそのいずれの均等物および全ての均等物も含むこととする。
【図１Ａ】
0005576932.tif 000002
【図１Ｂ】
0005576932.tif 000003
【図２】
0005576932.tif 000004
【図３】
0005576932.tif 000005
【図４】
0005576932.tif 000006
【図５】
0005576932.tif 000007
【図６】
0005576932.tif 000008
【図７】
0005576932.tif 000009
【図８Ａ】
0005576932.tif 000010
【図８Ｂ】
0005576932.tif 000011
【図９Ａ】
0005576932.tif 000012
【図９Ｂ】
0005576932.tif 000013
【図１０Ａ】
0005576932.tif 000014
【図１０Ｂ】
0005576932.tif 000015
【図１１Ａ】
0005576932.tif 000016
【図１１Ｂ】
0005576932.tif 000017
【図１１Ｃ】
0005576932.tif 000018
【図１１Ｄ】
0005576932.tif 000019
【図１１Ｅ】
0005576932.tif 000020
【図１１Ｆ】
0005576932.tif 000021
【図１２Ａ】
0005576932.tif 000022
【図１２Ｂ】
0005576932.tif 000023