(57)【特許請求の範囲】
【請求項１】
アバターを制御するコンピューター・システムにおいて、アバターのジェスチャー表示を制限する方法であって、
キャプチャー・デバイスを使って少なくとも１人のユーザーの動きを追跡するステップであって、これによりローカル・システムにおいて動きデーターを生成する、ステップと、
動き追跡データーから、前記アバターのジェスチャーを作る前記少なくとも１人のユーザーの前記動きが禁止ジェスチャーの組の内の１つであるか否か判断するステップと、
前記ジェスチャーを生成する前記動きデーターが、前記ローカル・システムに結合されたディスプレイにおいてローカルのアバターに対応する動きを有するリモート表示のアバターの生成を可能にするため、リモート・システムに送られるべきかどうか判断するステップと、
前記ジェスチャーが禁止ジェスチャーの組のものであることに応答して、かつ前記ジェスチャーを生成する前記動きデーターが送られるべき場合、前記リモートのアバターにおいて前記ジェスチャーをレンダリングすることを阻止するために、前記リモート表示のアバターのための前記ジェスチャーを表す前記リモート・システムに送られるべき動き追跡データーを変更するステップと、
前記ローカル・システムに結合された前記ディスプレイにおいて前記ローカルのアバターを前記禁止ジェスチャーでレンダリングするステップと、
を含む、方法。
【請求項２】
請求項１記載の方法において、前記ジェスチャーが禁止ジェスチャーの組のものであることに応答して、前記ローカルのアバターにおいて前記ジェスチャーを表示する、方法。
【請求項３】
請求項１記載の方法において、前記アバターのジェスチャーを表す画像データーを変更するステップが、更に、前記禁止ジェスチャーをディスプレイ上において視覚的に隠すために、前記ジェスチャーを表す前記動きデーターに対してフィルタリング技法を実行することを含む、方法。
【請求項４】
請求項１記載の方法において、前記アバターのジェスチャーを表す画像データーを変更するステップが、更に、前記ジェスチャーについての動きデーターを、前記アバターについてのそれとは異なった動きデーターと置き換えることによって、前記禁止ジェスチャーを表す動きデーターを置換するステップを含む、方法。
【請求項５】
アバターのジェスチャー表示を制限するコンピューター実装システムであって、
ユーザーの生の動きを表す画像データーを取り込むローカルの深度画像キャプチャー・システムと、
前記画像キャプチャー・システムに通信可能に結合され、前記取り込まれた画像データーを受信する命令を実行する１つ以上の処理モジュールと、
前記１つ以上の処理モジュールによってアクセス可能であり、前記画像キャプチャー・システムから受け取った動き追跡データーを格納する１つ以上のメモリー・デバイスと、
を含み、
前記１つ以上の処理モジュールが、前記受け取った動き追跡データーに基づいて、ユーザーについての動き追跡データーを更新する命令を実行し、
前記１つ以上の処理モジュールが、前記処理モジュールに結合されたローカル・ディスプレイにおいてアバターをレンダリングする命令を実行し、前記アバターが前記ユーザーの生の動きを前記アバターの動きに追跡し、前記アバターが前記ユーザーと関連し、
前記１つ以上の処理モジュールが、禁止ジェスチャーの組を表す動きについて規準を定めるパラメーター・データーに基づいて前記禁止ジェスチャーの組に含まれるジェスチャーを含む前記ユーザーによる動きを前記動きデーターが含むか否か判断し、
前記１つ以上の処理モジュールが、リモート・システムに結合されたリモート・ディスプレイにおいてリモートのアバターの表示を可能にするために、前記動きデーターが前記リモート・システムに送られるべきか否か判断し、
前記ジェスチャーが前記禁止ジェスチャーの組のものであることに応答し、かつ前記動きデーターが送られるべき場合、前記１つ以上の処理モジュールが、表示のため前記アバターの前記ジェスチャーを表す動きデーターを変更し、変更後に前記リモート・ディスプレイに前記動きデーターを送り、
前記１つ以上の処理モジュールが、前記ローカル・ディスプレイにおいて前記アバターを前記禁止ジェスチャーでレンダリングする、
システム。
【請求項６】
請求項５記載のシステムにおいて、前記１つ以上の処理モジュールが、更に、前記禁止ジェスチャーを前記リモート・ディスプレイ上において視覚的に隠すために、前記ジェスチャーを表す画像データーに対してフィルタリング技法を実行することによって、前記アバターのジェスチャーを表す画像データーを変更するロジックを含む、システム。
【請求項７】
請求項５記載のシステムにおいて、前記画像キャプチャー・システムが、前記ユーザーのオーディオ・データーを取り込むマイクロフォンを含み、前記１つ以上の処理モジュールが、更に、前記禁止ジェスチャーを行いながら前記ユーザーによって生成された音声データーを編集するロジックを含む、システム。
【請求項８】
コンピューター記憶デバイスであって、第１処理デバイスにおけるプロセッサーに、アバターのジェスチャー表示を制限する方法を実行させる命令がエンコードされたコンピューター記憶デバイスであって、前記方法が、
深度画像キャプチャー・デバイスを使って少なくとも第１のユーザーと第２のユーザーの動きを追跡するステップであって、これによりローカル・システムにおいて動き追跡データーを生成し、該動き追跡データーが、ローカル・ディスプレイにおける第１のアバターとリモート・ディスプレイにおける第２のアバターの生成を可能にする、ステップと、
前記第１のユーザーの前記第２のユーザーに対する前記動き追跡データーが、前記第１のアバターによる禁止ジェスチャーの組の内の１つの実行を生ずるか判断するステップと、
前記アバターの表現が、第２処理デバイスへの送信のための画像データーに変換されたか否か判断するステップと、
前記画像データーが第２の処理デバイスに送られるべき場合で、かつ前記ジェスチャーが前記禁止ジェスチャーの組内のものである場合、前記ジェスチャーについての動きデーターを、前記リモートのアバターについてのそれとは異なる動きデーターと置き換えるステップであって、前記異なった動きデーターを前記第２の処理デバイスに送って、前記リモート・ディスプレイにおける前記第２のアバターを前記禁止ジェスチャなしでレンダリングする一方、前記ローカル・システムに結合された前記ディスプレイにおいて前記ローカルのアバターを前記禁止ジェスチャーでレンダリングすることを可能にする、ステップと、
を含む、コンピューター記憶デバイス。
【請求項９】
請求項８記載のコンピューター記憶デバイスにおいて、前記追跡は、リアル・タイムで、前記ユーザーの画像データーから判断されたユーザーの動きを、前記アバターによる動きの表示するための画像データーに追跡することにより実行する、コンピューター記憶デバイス。
【請求項１０】
請求項８記載のコンピューター記憶デバイスにおいて、第２処理デバイスへの送信のための前記画像データーが、格納されたビデオ・ファイルを含み、更に、前記ビデオ・ファイルが送信されているという指示に応答して、前記格納されたビデオ・ファイルにおいて、前記リモートのアバターについての動き追跡データーを再生するステップを含む、コンピューター記憶デバイス。
【発明の詳細な説明】
【従来技術】
【０００１】
[0001]  アバターは、通例人であるユーザーを表す、コンピューター生成イメージとすることができる。アバターは、ユーザーのイメージを描写することができ、ユーザーが実際にどのように見えるか高度に表すか、あるいはユーザーに対する類似度が変化するか全く変化しないキャラクター（例えば、人間、架空の物体、動物、動く物体）であってもよい。ユーザーは、リモート・コントロール・デバイス上のボタンを選択する、またはコントローラーをある種のやり方で動かすというように、ある種の行為によってアバターを制御することができる。あるいは、ユーザーがセンサを身体の部分に装着して、追跡システムがユーザーの行為をアバターに伝えるのを補助することもできる。
【０００２】
[0002]  他の例では、特殊な検知デバイスをユーザーに取り付けることなく、ユーザーは彼女の体の動きを使用して画面上のアバターを制御することができる。ターゲット認識、分析、および追跡システムは、画像キャプチャー・システムを使用して、物理的空間におけるユーザーの画像データーを取り込む。取り込んだ画像データーに基づいて、このシステムは三次元空間におけるユーザーの自然な動きを認識し追跡する。このシステムを使用すると、ユーザーの行為がディスプレイ上における、彼女に関連したアバターの行為を直接制御することができる。言い換えると、アバターはユーザーの行為をリアル・タイムで真似することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0003]  ユーザーは、表示された場面において不快な行為を行うように彼または彼女のアバターを誘導することもある。例えば、アバターに、卑猥な行為または不快な行為を行ったり、あるいは卑猥な姿勢または不快な姿勢を取るように誘導することもある。
【課題を解決するための手段】
【０００４】
[0004]  ジェスチャーを表す動き追跡データーに基づいて、ジェスチャーが禁止ジェスチャーを描写するか否か判断することによって、アバターのジェスチャー表示を制限する技術を紹介する。そうである場合、アバターに対してそのジェスチャーを表す画像データーを変更する。一実施形態では、ユーザーの動きを追跡して、リアル・タイムのアバターの動きが得られ、したがって、ジェスチャーの判断および変更がリアル・タイムで行われる。
【０００５】
[0005]  変更は、禁止ジェスチャーをフィルタリングすること、またはアバターの表示において禁止ジェスチャーの画像データーを交換することを含むことができる。加えて、アバターがローカルで表示されているのか、または表示のために他のコンピューターに送信されているのかというような規準が、ジェスチャーをそのまま表示するのか、またはその画像データーを変更するのかに作用することができる。
【０００６】
[0006]  この摘要は、詳細な説明の章において以下で更に説明する概念から選択したものを簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するときに補助として使用されることを意図するのでもない。この摘要および以下の詳細な説明において記載される特徴は、全てを含むのではなく、特に、当業者には、図面、明細書、および特許請求の範囲を考慮することにより、多くの追加の特徴や利点が明白となるであろう。
【図面の簡単な説明】
【０００７】
[0007]  本明細書にしたがってアバターのジェスチャー表示を制限するシステム、方法、およびコンピューター読み取り可能記憶媒体について、添付図面を参照しながら更に説明する。図面において、
【図１Ａ】図１Ａは、アバターによる禁止ジェスチャーの表示を制限するための技術の実施形態が動作することができる、ターゲット認識、分析、および追跡システムの実施形態例を、ゲームをプレーするユーザーと共に示す。
【図１Ｂ】図１Ｂは、アバターによる禁止ジェスチャーの表示を制限するための技術の実施形態が動作することができる、ターゲット認識、分析、および追跡システムの実施形態例を、ゲームをプレーするユーザーと共に示す。
【図２】図２は、アバターによる禁止ジェスチャーの表示を制限するシステムの機能的コンピューター実装アーキテクチャーの例示的実施形態である。
【図３Ａ】図３Ａは、アバターによる禁止ジェスチャーの表示を制限する１つ以上の実施形態が動作することができる計算環境の実施形態例を示す。
【図３Ｂ】図３Ｂは、アバターによる禁止ジェスチャーの表示を制限する１つ以上の実施形態が動作することができる、ゲーム・コンソールにおける計算環境の更に詳しい実施形態例を示す。
【図４】図４は、１つ以上の実施形態と共に使用することができる画像キャプチャー・システムを含む、ターゲット認識、分析、および追跡システムの実施形態例を示す。
【図５Ａ】図５Ａは、１つ以上の実施形態によって使用することができる、ユーザーのスケルトン・モデル例を前方から見たところを示す。
【図５Ｂ】図５Ｂは、１つ以上の実施形態によって使用することができるユーザーの他のモデル例の斜視図(skewed view)を示す。
【図６Ａ】図６Ａは、モデルの力受入位置への力の作用、およびその結果の一例を示す。
【図６Ｂ】図６Ｂは、モデルの力受入位置への力の作用、およびその結果の一例を示す。
【図６Ｃ】図６Ｃは、図６Ａおよび図６Ｂのモデルからレンダリングされたプレーヤーのアバターを示す。
【図６Ｄ】図６Ｄは、図６Ａおよび図６Ｂのモデルからレンダリングされたプレーヤーのアバターを示す。
【図７】図７は、１つ以上の実施形態によって使用することができる、ユーザーのスケルトン・モデルの他の例を示す。
【図８Ａ】図８Ａは、ディスプレイ上で禁止ジェスチャーを視覚的に隠すフィルタリング技法の一例を示す。
【図８Ｂ】図８Ｂは、禁止ジェスチャーと置き換えるためにスケルトン・モデル例に適用される交換画像データーの例を示す。
【図８Ｃ】図８Ｃは、図８Ｂにおける例の交換画像データーを表示するために更新されたアバターを示す。
【図９Ａ】図９Ａは、２人のユーザーについてのスケルトン・モデル・データーによって示された、禁止相互作用の一例を示す。
【図９Ｂ】図９Ｂは、２人のユーザーについてのスケルトン・モデル・データーによって示された、図９Ａの禁止相互作用の例を、動きデーターの形態とした画像データーと交換する例を示す。
【図１０】図１０は、アバターのジェスチャー表示を制限する方法の一実施形態のフローチャートである。
【図１１】図１１は、アバターのジェスチャー表示を制限する方法の他の実施形態のフローチャートである。
【図１２】図１２は、アバターのジェスチャーを表す画像データーを変更する方法を示す。
【発明を実施するための形態】
【０００８】
[0026]  図１Ａおよび図１Ｂは、人間の自然環境において、対象者に特殊な検知デバイスを取り付けることなく、人間を認識し、彼らを一意に識別し、三次元空間において彼らを追跡する、ターゲット認識、分析、および追跡システム５０の実施形態例と対話処理するユーザーを示す。このような例示的なコンテキストは、禁止ジェスチャーのアバター表示を制限する技術が特に有用であるコンテキスト例を紹介する。しかしながら、本技術は、ユーザーがセンサを着用するセンサ・ベース・システム、またはデバイスに基づくアバター制御システムというような、他のアバター制御メカニズムにも適用可能である。デバイスの例には、キーボード、マウス、トラックボール、ゲーム・パッド、またはジョイスティックがある。
【０００９】
[0027]  この実施形態例によれば、ターゲットは、人間のターゲット（例えば、ユーザー５８）、物体を持った人間のターゲット、２人以上の人間のターゲット等とすることができ、このターゲットを走査して、スケルトン・モデル、メッシュ人間モデル、またはその任意の他の適した表現を生成することができる。このモデルを追跡すれば、ターゲットの物理的動き(movement)または運動(motion)がリアル・タイムのユーザー・インターフェースとして作用し、電子ゲームのようなアプリケーションのパラメーターを調節および／または制御するというようなことが可能になる。更に、このモデルは、アプリケーションに対してモデルとして提示され、リアル・タイムでアプリケーションに配信することができる。例えば、ユーザーの動きを追跡し、電子ロール・プレーイング・ゲームにおける画面上のキャラクターまたはアバターを動かすために、追跡したユーザーの動きを使用することができる。
【００１０】
[0028]  モデルがマルチ・ポイント・スケルトン・モデルである一例では、ターゲット認識、分析、および追跡システム５０は、人間の筋肉−骨格系の自然な力学および能力を理解することによって、効率的に人間およびその自然な動きを追跡する。また、システム例５０は、複数の人間がその四肢および身体の自然な動きによって本システムと対話処理できるようにするために、個人を一意に認識する。
【００１１】
[0029]  具体的には、図１Ａおよび図１Ｂは、ターゲット認識、分析、および追跡システム５０の構成の実施形態例を、ボクシング・ゲームをプレーしているユーザー５８と共に示す。以下で論ずるように、通信可能に結合されているカメラ・システム６０およびオーディオビジュアル・ディスプレイ・ユニット５６の他のコンピューター・システムにおけるソフトウェアを制御するまたはこのソフトウェアと相互作用を行う、コンピューター・システム５２において実行するソフトウェアは、ユーザー５８の動きを追跡し、これらを分析し、その動きをユーザーのアバターにマッピングする。つまり、この例では、ユーザー５８は、ボクシング・ゲームにおいて彼の身体を動かして、彼の対戦相手のアバター６２に対して、表示画面５４上の彼のアバター６４を制御することができる。
【００１２】
[0030]  ジェスチャーは動きまたは姿勢を含む。ジェスチャーは、アバターによってまたはユーザーによって行うことができる。ユーザーは、彼の身体を動かすことによって、ジェスチャーを行うことができる。例えば、ユーザーを画像データーに取り込むことができる。ユーザーのジェスチャーを識別し、アプリケーションに対する制御または実行すべき動作としての意味を求めて解析することができる。例えば、ユーザー１８は図１Ａおよび図１Ｂのボクシング・ゲームにおいてジャブを出す。このゲーム・アプリケーションは、それをボクシングの試合において表し、それがアバター６２と接触するか否か判断し、接触する場合、ユーザーのスコアを増やす。また、ジェスチャーは、意味のある表現である動きまたは姿勢であることもできる。例えば、感情あるいは考えまたは意味を表現することができる。例えば、中指のみを立てた手は、怒りまたは軽蔑を表現することができる。ナチの敬礼のようなジェスチャーは、民族または文化に基づく軽蔑的な意味を示す可能性がある。ジェスチャーは、胴体の前で腕を組んだままにするというような静止姿勢であってもよく、または１つ以上の動きであってもよい。更に、ジェスチャーは、両手を一緒にたたくというような、１つよりも多い身体部分を含むのでもよい。
【００１３】
[0031]  例えば、ターゲット認識、分析、および追跡システム５０は、キャプチャー・エリア（例えば、画像キャプチャー・システム６０の視野内にある彼の居間の一部）においてユーザー５８のパンチを認識し分析するために使用して、このパンチをジェスチャーとして、この場合、ゲーム空間において彼のプレーヤー・アバター６４が行うパンチのゲーム制御として解釈することもできる。また、ユーザー５８による他のジェスチャーも、軽く叩く、行ったり来たりする、あちこち動き回る、防御する、ジャブを出す、または種々の異なる力のパンチを出すように制御するというように、他の制御または動作として解釈することができる。ユーザー５８のパンチおよびジャブを追跡することによって、ボクシング・ゲームのソフトウェア・アプリケーションは、彼のアバター６４のスコアを判断し、どちらのアバター（６２または６４）がその試合に勝つか判断する。異なるアプリケーションであれば、異なるジェスチャーを認識し追跡する。例えば、野球ゲームにおけるユーザーによる投球を追跡して、それがストライクかまたはボールか判断する。また、卑猥なジェスチャーまたは不快なジェスチャーを表す異なる動きまたは姿勢、およびそれに応答して行われる処理も、認識することができる。
【００１４】
[0032]  他の実施形態例では、ユーザー５８のような人間のターゲットが物体を有していてもよい。また、ジェスチャーがプロップ(prop)を組み込んでいてもよい。このような実施形態では、電子ゲームのユーザーは、ゲームに参加している間、その物体を保持しているまたは使用している場合がある。その物体の動きを追跡し画面上でマッピングして、ユーザーが操作しているその物体を表す仮想物体も併せて、アバターを描く。実施形態例では、仮想物体は、実際の物体がユーザーによって動かされるに連れて、その動きを追跡する。例えば、ユーザーが保持しているラケットの動きを追跡し、電子スポーツ・ゲームにおいてボールを打つように画面上のラケットを制御するために利用することができる。他の実施形態例では、物体を保持しているユーザーの動きを追跡して、電子戦闘ゲームにおいて画面上の兵器を制御するために利用することもできる。また、他の物体も含むこともでき、その例の中には、１つ以上のグローブ、ボール、バット、クラブ、ギター、マイクロフォン、スティック、ペット、動物、ドラム等がある。
【００１５】
[0033]  ボクシング・ゲームのコンテキストは、ユーザーが不適切に行動するかもしれないリアル・タイムの計算環境を例示するのであり、この行動は、彼のコンピューター生成アバターの動作にリアル・タイムで反映される。更に、アバターの動作は、オンライン環境では、1人以上のユーザーに伝えているのでもよい。オンライン送信は、参加するために使用される技術にアクセスすることができる誰にでも解放されているブロードキャスト送信とするとよい。これは、種々の年齢および感受性の人々を含むことができる。
【００１６】
[0034]  図２は、アバターによる禁止ジェスチャーの表示を制限するシステム２００の機能的コンピューター実装アーキテクチャーの例示的実施形態である。このようなアーキテクチャー・システムは、１つ以上のプロセッサーおよび／またはコンピューター・ハードウェアにおいて実行するソフトウェアによって、あるいはハードウェアまたはファームウェアとして動作することができる１つ以上の処理モジュールとして実現することができる。アバター制御システム２０２は、動きモジュール２０４を含む。動きモジュール２０４は、アバター表示制御モジュール２０９、オーディオビジュアル・データー・キャプチャー・システム６０、およびインターネット２０３に通信可能に結合されている。また、動きモジュール２０４は、アバター・プロファイル２１４のような、メモリー（例えば、１１２、３１４）に格納されているデーター・ストアにアクセスすることもできる。
【００１７】
[0035]  この実施形態では、アバター・プロファイル２１４は、１つ以上のアバターのリアル・タイム表示についてのデーターおよび情報を含む。このデーターおよび情報の例には、各アバターについてのモデル・データー２１６が含まれ、これは、動きモジュール２０４による動き追跡のための規準として使用される。モデル・データー２１６は、アバターを表示するための画像データー２１９の部分集合であることができる。画像データー２１９は、アバター表示制御モジュール２０７によって場面の一部として表示されるために送られる。アバターの画像データー２１９は、アバターの動きまたは姿勢を表す。一例では、動きまたは姿勢を表す画像データー２１９は、アバターについての動き追跡データーとすることができる。一例では、このような動き追跡データーは、動き取り込みファイルに格納することができ、動きモジュールが、新たな動き追跡データー２０５を受けると、ときの経過と共にこの動き取り込みファイルを更新する。画像データー２１９の他の例は、紙、顔の造作、皮膚の色、衣服、場面におけるアバターの位置、およびそれと関連した任意のプロップというような、アバターの特徴についての色画像データーとすることができる。以下で論ずるように、一実施形態では、禁止ジェスチャー２１０を行うアバターは、そのジェスチャーを行うローカル・ディスプレイ上で表示することができるが、他のコンピューターまたはネットワークに送信されるその画像データーは、禁止ジェスチャーを描写するのを避けるために、変更させることができる。このような場合、画像データーの別個のバージョン、１つのローカル・バージョン２１９ｌおよび送信用バージョン２１９ｉが、少なくとも禁止ジェスチャーを含む部分について生成される。プロファイル２１４に格納される他の情報には、典型的な使用またはプレー・モード、年齢、身長、体重情報、名前、高スコア、またはユーザーおよび本システムの使用と関連した他の任意の情報を含むことができる。
【００１８】
[0036]  動き追跡データーは、セッションずつ格納することができる。例えば、ゲームにおけるユーザーが、進行中のゲームをセーブして、後にそこに戻ることができるようにするとよい。
【００１９】
[0037]  モデル・データー２１６は、アバター用モデルを含む。これは、例えば、スケルトン・モデルとすることができる。トラックボール、キーボード、またはジョイスティックのようなアバター制御デバイスが使用されるアプリケーションのコンテキストでは、ユーザーについて別個のモデル・データーがないこともある。動きモジュール２０４は、アバターについての直接モデル・データー２１６ａに関する入力コマンドを処理し、禁止ジェスチャーが行われていないことを検証するための処理を含む。加えて、ネットワークを介して受信されたモデル・データーは、アバターのモデル２１６ａに関する場合もある。動きモジュール２０４は、以下で論ずるように、画像キャプチャー・システム６０からのユーザー・モデル・データー２１６ｕを処理するのと同様に、アバターのモデル・データーを処理することができ、禁止ジェスチャーの処理を含む。この例では、画像キャプチャー・システム６０は、オーディオ・データー２１７を、ユーザーについての動き追跡データー２０５ｌと共に送る、オーディオビジュアル・キャプチャー・システム６０である。
【００２０】
[0038]  システムの中には、図１Ａおよび図１Ｂに示されたように、ユーザーに対して特殊な検知デバイスを使用せずに、アバターの制御のためにユーザーの身体の自然な動きを追跡する場合もある。他の実施形態では、ユーザーが異なる身体部分にセンサを装着してもよく、センサ・データーが、ユーザーの動きを彼の画面上のアバターに対して追跡するときに補助する。これら２つの例は、ユーザーの自然な動きを追跡して、直接対応するアバターを動かすことを可能にする。システムの中には、ある種の身体部分または領域、例えば、手および腕に対してアバターが行うことができる動きまたは姿勢の組み合わせを一定の数だけに止める一方、他の身体部分または領域、例えば、脚部には直接追跡を可能にすることができる場合もある。
【００２１】
[0039]  ユーザーの身体の動きがアバターの動きにマッピングされる（例えば、ユーザーの画像取り込み、またはユーザーの身体上にあるセンサに基づいて）システムでは、ユーザーを表すモデル・データー２１６ｕと、アバターを表すモデル・データー２１６ａとがあることができる。アバターの体形が全く異なる場合、動きモジュール２０４は、これら２つのモジュール間でマッピングを行う。例えば、ユーザー１８が少年である場合、彼はそのアバター・ボクサー６４よりも背が低く、腕の長さがありそうもない。言い換えると、スケルトン・モデルが使用された場合、これらはユーザーおよびアバターに対して同一であってもよい。しかしながら、実施形態の中には、アプリケーションが、同じモデル・データー２１６を使用して、ユーザーの身体の動きを分析し、更に対応するアバターの動きを命令する場合もある。一例では、身体モデルは、身体部分と、次元空間における(in dimensions)それらの位置および／または基準に対する回転角度とを表す１つ以上のデーター構造として実現することができる。モデル・データー２１６は、絶対位置に関する更新または位置および回転の変化で更新することができる。位置および回転の変化は、ベクトルおよび角度で表すとよい。
【００２２】
[0040]  場面データー２１８は、場面のコンテキストを規定し、その場面における他の物体を定める。例えば、場面データー２１８は、図１Ａおよび図１Ｂにおけるボクシングの試合のコンテキスト環境、ならびにボクシング・リングのロープを含む物体の位置、および対戦相手のボクサー・アバター６２の存在を規定している。この場面における他のボクサー・アバター６２の最新の動き、特徴、および身体部分は、アバター・プロファイル・データー・ストア２１４に他のプロファイルとして格納することもできる。場面データー２１８に対する更新は、アバター表示制御モジュール２０９または動きモジュール２０４のような１つ以上のモジュールによって、インターネット２０３または他のネットワークを介して、リモート・モジュールまたは場面表示処理モジュール２０７のようなローカルな場面制御モジュールから受け取ることができる。
【００２３】
[0041]  図示されている実施形態例では、アバター制御システム２０２は、動き追跡データー２０５をオーディオビジュアル・データー・キャプチャー・システム６０からローカルに受け取る。加えて、アバター制御システム２０２は、動き追跡データー２０５ｉをインターネット２０３または他のネットワーク上で離れて受信することができる。ユーザーに関して、動き追跡データーは、画像データー自体、またはそのデーターのダウン・サンプル・バージョンを含むことができる。加えて、深度データー、ならびに画像および／または深度データーから派生された種々の形態のデーターを、動き追跡データーに含めることができ、その例には、ユーザーの身体のモデル、モデルを参照する数学的原形における動きデーター、またはモデルの以前の状態との比較のためにユーザーに対して得られたビットマスク画像がある。アバター制御システム２０２は、このデーターを分析して、ユーザーの動きを認識し、その動きを追跡して、画面上におけるユーザーのアバターを動かす。
【００２４】
[0042]  動き追跡データー２０５ｉは、ローカルに受け取ったデーター２０５ｌと同じタイプであってよい。加えて、特にマルチプレーヤー環境においてネットワークを介して受信された動き追跡データー２０５ｉは、アバターのモデル・データー２１６ａに関する動き追跡データーであってもよい。更に、動き追跡データー２０５ｌおよび２０５ｉは、キーボード、マウス、トラックボール、ゲーム・パッドなどのような、入力／出力デバイスによって指示された動きに対するコマンドも含むことができる。
【００２５】
[0043]  先に論じたように、動きおよび姿勢、ジェスチャーの中には、娯楽プログラムまたは他のアプリケーションのコンテキストにおいて特別な意味を有するものがあり、アバター制御システム２０２はそれらを識別する命令を実行する。即ち、動きモジュール２０４は、メモリーに格納されているジェスチャー・フィルター２０６にアクセスすることができる。一例では、動きモジュール２０４は、例えば、身体部分インデックスのような、関連データー・インデックスに基づいて、１つ以上のジェスチャー・フィルター２０６を選択することができる。例えば、動き追跡データー・セット更新がアバター制御システム２０２によって受け取られ、ある身体部分に対する動きの変化が指示された場合、動きモジュール２０４は、これらある身体部分と関連したジェスチャー・フィルター２０６をインデックスする。
【００２６】
[0044]  ジェスチャー・フィルター２０６は、特定のジェスチャーが動き追跡データー２０５に基づいて行われたか否か判断するための規準を定めるパラメーターに基づいて命令を実行する。一実施形態では、各ジェスチャー・フィルター２０６は、ジェスチャー・ライブラリー２０８における特定のジェスチャーのライブラリー・モジュールとリンクされている。ジェスチャーと関連付けられている各ライブラリー・モジュール２０８は、そのジェスチャーに応答して処理を実行する実行可能命令を含む。この処理は、多くの場合、ジェスチャーを何らかの形態で反映するためにアバターの動きまたは画像を更新することを伴う。
【００２７】
[0045]  例えば、図１Ａにおける少年のユーザー５８は、彼のアバター６４ボクサーよりも遙かに小さい体形をしている。アバターとゲームをプレーする楽しさの一部は、アバターの方が実生活におけるユーザーよりも上手に事を行うことが多いということにある。彼の居間における図１Ａの身体５８のパンチは、表示画面５４上では、彼のアバター６４による貼るかに強いパンチに変わる(translate)。ボクシング・ゲームにおける「パンチ」についてのライブラリー・モジュールは、ユーザーの拳が彼の肘から繰り出される速度の加速度(acceleration in speed)から、これはゲームにおけるこのユーザー５８の「強力なパンチ」であると判断することができ、彼のアバター６４のパンチは、ライブラリー・パンチ・モジュールの命令によって、これをディスプレイ上に反映する。また、この命令は、例えば、スコアを更新するというような、他のアプリケーション・タスクも含むことができる。
【００２８】
[0046]  禁止ジェスチャーに対するライブラリー・モジュール２１０の実行可能命令は、この禁止ジェスチャーの描写を回避するために、後続の表示更新におけるアバターの画像データーに対する変更(alterations or changes)を含むことができる。卑猥なまたは不快なジェスチャーの動きまたは姿勢に対する交換２１２を、禁止ジェスチャーのライブラリー・モジュール２１０に組み込むことができる。他の例では、禁止ジェスチャーについての画像データーを交換する処理は、分離して、それぞれの禁止ジェスチャー・ライブラリー・モジュールにリンクされている交換ライブラリー・モジュール２１２に入れることができる。
【００２９】
[0047]  例えば、禁止ジェスチャー・ライブラリーにおける１つ以上のモジュールを、その禁止ジェスチャーと関連付けられている交換画像データーの１つ以上のモジュールとリンクする関連アレイまたはデーターベース相互参照があるとよい。共通身体部分のような、身体的特性に基づいて、交換を禁止ジェスチャーにリンクすることができる。しかしながら、似ている意味、似ている感情、または似ている感情の強さというような規準に基づいて、交換をリンクすることもできる。とはいえ、一般に、交換画像の方が、強さは穏やかである。一実施形態では、ジェスチャーと画像データーの交換は、そのジェスチャーについての動きデーターを、アバターについての異なる動きデーターで置き換えることによって行われる。
【００３０】
[0048]  また、本システムは、ユーザーが本システムを訓練して、他の禁止ジェスチャーを認識し、交換を選択するまたは用意する機構を含むこともできる。親は新しい不快なジェスチャーに気がつくので、これは親にとっては助けになることができる。
【００３１】
[0049]  また、アプリケーションは、ユーザーが、シンボルを彼または彼女のアバターと関連付けることを可能にすることもできる。これを「トロフィー」(trophy)と呼ぶこともある。このシンボルは、動きまたは姿勢、つまり、ジェスチャーを含むことができ、ユーザーは画像キャプチャー・システム（例えば、６０）に対してそれを実行することによって、シンボルを割り当て、次いで、計算環境（例えば、３００または５２）において実行するアプリケーションによって処理される。トロフィーに対するジェスチャーをチェックして、これらが禁止されているか否か確かめることもできる。
【００３２】
[0050]  アバター表示制御モジュール２０９は、周期的に、または動きモジュール２０４からのメッセージに応答して、アバター・プロファイル（１つまたは複数）２１４に対する更新を読み込み、アバターの動きまたは姿勢を表す画像データー２１９を場面表示処理モジュール２０７に送る。場面表示処理モジュール２０７は、この例では、ディスプレイ・システム（例えば、５６）に場面をレンダリングするのに備えて、アバター画像データー２１９を場面データーと一体にする。一例では、動きまたは姿勢を表す画像データーは、アバターについての動き追跡データーとすることができる。画像データーの他の例は、髪、顔の特徴、および衣服というような、アバターの特徴についての色画像データーとすることができる。画像データー２１９ｌはローカルに送ることができる。あるいは、アバターの動きまたは姿勢を表す画像データー２１９ｉをインターネット２０３または他のネットワークを介して送信しようとする場合、動きモジュール２０４は、ネットワーク送信に適したポートに画像データー２１９ｉを送ることを、アバター表示制御モジュール２０９に通知することができる。
【００３３】
[0051]  アバターの表示に対するユーザーの動きの追跡は、好ましくは、リアル／タイムで行われ、ユーザーが実行中のアプリケーションとリアル・タイムで対話処理できるようにするとよい。リアル・タイムの表示とは、ジェスチャーの仮想表現を指し、この表示は、物理空間におけるジェスチャーの実行と同時にまたは殆ど同時に行われる(displayed)。例えば、本システムがユーザーにオウム返しする表示を提供することができる表示更新レートは、２０Ｈｚ以上のレートとするとよく、この場合、些細な処理の遅れは、最小限の表示の遅れにしかならず、またはユーザーには全く見えない。つまり、リアル・タイムには、自動データー処理のために必要な時間だけ遅れているデーターの適時性(timeliness)に関する些細な遅れはいずれも含まれる。
【００３４】
[0052]  画像キャプチャー・システム６０は、人間のターゲットおよび人間以外のターゲットをキャプチャー・エリア内で認識し（対象に特殊な検知デバイスが取り付けられているまたは取り付けられていない）、これらを一意に識別し、三次元空間においてこれらを追跡する。
【００３５】
[0053]  実施形態例によれば、画像キャプチャー・システム６０は、深度画像を含む深度情報と共にビデオを取り込むように構成することができる。深度画像は、例えば、飛行時間、構造化光、立体画像などを含む任意の適した技法によって、深度値を含むことができる。図２に示されるように、実施形態例によれば、画像カメラ・コンポーネント７０は、ＩＲ光コンポーネント７２、三次元（３Ｄ）カメラ７４、およびキャプチャー・エリアの深度画像を取り込むために用いることができるＲＧＢカメラ７６を含むことができる。例えば、飛行時間分析では、キャプチャー・システム６０のＩＲ光コンポーネント７２は、キャプチャー・エリアに向けて赤外線光を放出することができ、次いでセンサを用いて、そのキャプチャー・エリアの中にある１つ以上のターゲットおよび物体の表面からの後方散乱光を、例えば、３Ｄカメラ７４および／またはＲＧＢカメラ７６を用いて検出することができる。実施形態の中には、パルス状赤外線光を用いて、発信光パルスと対応する入射光パルスとの間の時間を測定し、深度カメラ・システム６０からキャプチャー・エリア内にあるターゲットまたはオブジェクト上における特定の場所までの物理的距離を判定するために用いることができるようにするとよい場合がある。加えて、他の実施形態例では、発信光波の位相を着信光波の位相と比較して、位相ずれを判定することもできる。次いで、位相ずれを用いて、キャプチャー・システムからターゲットまたはオブジェクト上の特定の場所までの物理的距離を判定することができる。
【００３６】
[0054]  他の実施形態例によれば、飛行時間分析を使用して、例えば、散乱光パルス撮像(shuttered light pulse imaging)を含む種々の技法によって、経時的な光の反射ビームの強度を分析することによって、キャプチャー・システム６０からターゲットまたは物体上の特定の場所までの物理的距離を間接的に判定することができる。
【００３７】
[0055]  他の一実施形態例では、キャプチャー・システム６０は、構造化光を用いて深度情報を取り込むことができる。このような分析では、パターン光（即ち、格子パターン、縞パターンのような既知のパターンとして表示される光）を、例えば、ＩＲ光コンポーネント７２によって、場面に向けて投射する。キャプチャー・エリアにおいて１つ以上のターゲットまたは物体の表面に衝突したときに、パターンが、それに応答して、変形する可能性がある。このようなパターンの変形を、例えば、３Ｄカメラ７４および／またはＲＧＢカメラ７６によって取り込むことができ、次いで分析して、キャプチャー・システムからターゲットまたは物体上における特定の場所までの物理的距離を判定することができる。
【００３８】
[0056]  他の実施形態によれば、キャプチャー・システム６０は、２つ以上の物理的に分離されたカメラを含むことができ、これらが異なる角度からのシーンを捕らえて、視覚的な立体像を得て、これを解明することによって深度情報を生成することができる。
【００３９】
[0057]  これらのエレメントによって得られる相乗効果の例として、ＩＲ光コンポーネント７２および３−Ｄカメラ７４がキャプチャー・エリアの深度画像を供給するが、ある状況では、深度画像のみでは、人間のターゲットの位置または動きを識別するのに十分ではない可能性がある場合について考える。これらの状況では、ＲＧＢカメラ７６が３−Ｄカメラからの情報を「引き継ぎ」または補充して、人間のターゲットの動きまたは位置の一層完全な認識を可能にすることができる。例えば、ＲＧＢカメラは、とりわけ、１つ以上のターゲットと関連した色を認識するために使用することができる。ユーザーが模様のあるシャツを着用しており、深度カメラがこのパターンを検出することができない場合、そのパターンを追跡し、ユーザーが行っている動きについての情報を提供するために、ＲＧＢカメラを使用することができる。他の例として、ユーザーが体を捻った場合、ユーザーのこの動きを判断するために１つ以上の他のセンサからの情報を補充するために、ＲＧＢカメラを使用することができる。更に他の例として、ユーザーが壁または第２ターゲットというような他の物体の隣にいる場合、２つの物体間で区別するためにＲＧＢデーターを使用することができる。また、ＲＧＢカメラは、追加情報を提供するために使用することができる、顔の認識、髪の色等のような、ユーザーの特徴を判定することもできるとよい。例えば、ユーザーが後ろを向いた場合、ＲＧＢカメラは髪の色および／または顔の特徴がないことを使用して、ユーザーがキャプチャー・システムに背を向けていると判断することができる。
【００４０】
[0058]  キャプチャー・システム６０は、インタラクティブ・レート(interactive rate)でデーターを取り込むことができ、データーの忠実性を高め、開示する技法が生の深度データーを処理し、場面における物体をディジタル化し、物体の表面および模様を抽出し、ディスプレイ（５６）がその表示画面（例えば、５４）上に場面のリアル・タイム描画を供給できるように、これらの技法の内任意のものをリアル・タイムで実行することを可能にする。
【００４１】
[0059]  図２のシステムの実施形態では、画像キャプチャー・システム６０は、図３Ａ、図３Ｂにおけるコンピューター・システム例のような計算環境に、通信可能に結合されている（８４）。この通信結合は、例えば、ＵＳＢ接続、Firewire接続、イーサネット（登録商標）・ケーブル接続等および／またはワイヤレス８０２．１１ｂ、ｇ、ａ、またはｎ接続のようなワイヤレス接続というような、１つ以上の有線またはワイヤレス接続で実現することができる。
【００４２】
[0060]  更に、キャプチャー・システム６０は、プロセッサー８０によって実行することができる命令、およびフレーム・フォーマットで取り込むことができる画像データーを格納するためにメモリー・コンポーネント８２も含むことができる。メモリー・コンポーネント８２は、ランダム・アクセス・メモリー（ＲＡＭ）、リード・オンリー・メモリー（ＲＯＭ）、キャッシュ、フラッシュ・メモリー、ハード・ディスク、または任意の他の適した記憶コンポーネントを含むことができる。一実施形態では、メモリー・コンポーネント８２は、図示されているように、画像取り込みコンポーネント７０およびプロセッサー８０と通信（９０）が可能な別個のコンポーネントであってもよい。他の実施形態によれば、メモリー・コンポーネント８２をプロセッサー８０および／または画像取り込み・コンポーネント７０に統合してもよい。
【００４３】
[0061]  更に、キャプチャー・システム６０は、画像カメラ・コンポーネント７０に通信可能に結合（９０）されているプロセッサー８０も含む。プロセッサー７０は、画像カメラ・コンポーネント７０および画像データーを格納するメモリー８２を制御する。プロセッサー８０は、標準化されたプロセッサー、特殊化されたプロセッサー、マイクロプロセッサー等を含むことができ、プロファイルを格納し、深度画像データーを受け取り、そのデーターを指定フォーマットでメモリー８２に格納し、深度画像に適したターゲットが含まれるかもしれないか否か判断し、適したターゲットをスケルトン表現または他のタイプのターゲットのモデルに変換する命令、または任意の他の適した命令を含むことができる命令を実行することができる。更に、この処理の一部は、１つ以上の通信可能に結合されている計算環境において他のプロセッサー（例えば、１０１、１０８、２５９、２２９、３０４、３７２）によって実行することもできる。
【００４４】
[0062]  処理能力を画像キャプチャー・システム６０に含ませることによって、ユーザーのマルチポイント・スケルトン・モデルのようなモデルを、リアル・タイムで配信することが可能になる。一実施形態では、キャプチャー・システムの複数のコンポーネント毎に別個のプロセッサーがあってもよく、または１つの中央プロセッサーがあってもよい。他の例として、中央プロセッサーと、少なくとも１つの他の関連プロセッサーがあってもよい。高コストの計算タスクがある場合、２つ以上のプロセッサーが任意の方法でこの処理タスクを分配することができる。プロセッサー（１つまたは複数）は、前述のようなメモリーを含むことができ、このメモリーは１つ以上のユーザー・プロファイルを格納することができる。これらのプロファイルは、身体走査、典型的な使用モードまたはプレー・モード、年齢、身長、体重情報、名前、アバター、高スコア、またはシステムのユーザーまたは使用に関連した任意の他の情報を格納することができる。
【００４５】
[0063]  キャプチャー・システム６０は、更に、ユーザーによって生成されたオーディオ信号を受けるために使用することができるマイクロフォン７８も含むことができる。つまり、この実施形態では、画像キャプチャー・システム６０は、オーディオビジュアル・データー・キャプチャー・システムとなる。キャプチャー・システムにおけるマイクロフォン（１つまたは複数）は、本システムがターゲットの位置または動きの態様をより良く識別することを可能にするように、ターゲットについて追加の情報および補足情報を提供するために使用することができる。例えば、マイクロフォン（１つまたは複数）は、指向性マイクロフォン（１つまたは複数）、または指向性マイクロフォンのアレイを含むことができ、人間のターゲットの位置を更に識別するため、または２つのターゲット間で区別するために使用することができる。例えば、２人のユーザーが同様の体形または背格好であり、キャプチャー・エリア内にいる場合、例えば、彼らの別々の音声を認識してこれらのユーザーを互いに区別することができるように、ユーザーについての情報を提供するためにマイクロフォンを使用することができる。他の例として、マイクロフォンは、ユーザーについてのユーザー・プロファイルに情報を提供するために、または「音声−テキスト」型実施形態において、使用することもでき、計算システムにおいてテキストを作るために少なくとも１つのマイクロフォンを使用するとよい。
【００４６】
[0064]  画像についての深度値を有する画素データーを、深度画像と呼ぶ。一実施形態によれば、この深度画像は、取り込まれた場面の二次元（２−Ｄ）画素エリアを含むことができ、２−Ｄ画素エリアにおける各画素は、例えば、カメラ・コンポーネント７０の何らかの態様に関する基準点からの、取り込まれた場面における物体の、例えば、センチメートル、ミリメートル等の単位とした、長さまたは距離のような、関連する深度値を有する。例えば、画素に対する深度値は、「Ｚレイヤー」で表すことができる。Ｚレイヤーは、深度カメラ７０からその見通し線に沿って延びるＺ軸に対して垂直であるとよいレイヤーである。これらの深度値は、纏めて深度マップと呼ぶことができる。
【００４７】
[0065]  深度画像をより簡単に使用し、より少ない計算オーバーヘッドで素早く処理できるように、深度画像をより低い処理分解能にダウン・サンプルするとよい。例えば、観察された深度画像の種々の領域を、背景領域と、ターゲットの画像が占める領域に分けることができる。背景領域は、画像から除去するか、または識別して、１つ以上の後続の処理ステップの間これらを無視できるようにすることができる。加えて、１つ以上の高分散および／またはノイズ深度値を除去する、および／または深度画像からスムージングすることができる。失われた深度情報および／または除去された深度情報の部分は、充填すること、および／または再現することができる。このようなバックフィリング(backfilling)は、最も近い近隣を平均化すること、フィルタリング、および／または任意の他の適した方法で行うことができる。スケルトン・モデルのようなモデルを生成するために深度情報を使用できるように、他の適した処理を実行することもできる。
【００４８】
[0066]  図３Ａは、図１Ａから図２におけるようなゲーミング・コンソールにおいて使用することができる計算環境の実施形態の詳細な例を示し、アバターによる禁止ジェスチャーの表示を制限する１つ以上の実施形態が動作することができる。図３Ａに示すように、マルチメディア・コンソール５２は、レベル１キャッシュ１０２、レベル２キャッシュ１０４、およびフラッシュＲＯＭ（リード・オンリー・メモリー）１０６を有する中央処理ユニット（ＣＰＵ）１０１を有する。レベル１キャッシュ１０２およびレベル２キャッシュ１０４は、一時的にデーターを格納し、こうしてメモリー・アクセス・サイクルの回数を減らすことによって、処理速度およびスループットを向上させる。ＣＰＵ１０１は、１つよりも多いコア、したがって追加のレベル１およびレベル２キャッシュ１０２および１０４を有して設けることもできる。フラッシュＲＯＭ１０６は、実行可能コードを格納することができる。実行可能コードは、マルチメディア・コンソール５２の電源をオンにしたときに、ブート・プロセスの初期段階中にロードされる。
[0067]  グラフィクス処理ユニット（ＧＰＵ）１０８およびビデオ・エンコーダー／ビデオ・コデック（コーダー／デコーダー）１１４は、高速および高分解能グラフィクス処理のためにビデオ処理パイプラインを形成する。データーは、バスを介して、ＧＰＵ１０８からビデオ・エンコーダー／ビデオ・コデック１１４に伝えられる。ビデオ処理パイプラインは、テレビジョンまたは他のディスプレイに送信するために、データーをＡ／Ｖ（オーディオ／ビデオ）ポート１４０に出力する。メモリー・コントローラー１１０がＧＰＵ１０８に接続されており、限定ではなく、ＲＡＭ（ランダム・アクセス・メモリー）のような、種々のタイプのメモリー１１２にプロセッサーがアクセスし易くなる。
[0068]  マルチメディア・コンソール５２は、Ｉ／Ｏコントローラー１２０、システム管理コントローラー１２２、オーディオ処理ユニット１２３、ネットワーク・インターフェース・コントローラー１２４、第１ＵＳＢホスト・コントローラー１２６、第２ＵＳＢコントローラー１２８、およびフロント・パネルＩ／Ｏサブアセンブリ１３０を含む。好ましくは、これらはモジュール１１８上に実装される。ＵＳＢコントローラー１２６および１２８は、周辺コントローラー１４２（１）〜１４２（２）、ワイヤレス・アダプター１４８、および外部メモリー・デバイス１４６（例えば、フラッシュ・メモリー、外部ＣＤ／ＤＶＤ  ＲＯＭドライブ、リムーバブル媒体等）のためのホストとしての役割を果たす。ネットワーク・インターフェース１２４および／またはワイヤレス・アダプター１４８は、ネットワーク（例えば、インターネット、ホーム・ネットワーク等）へのアクセスを与え、イーサネット（登録商標）・カード、モデム、Bluetooth（登録商標）モジュール、ケーブル・モデム等を含む広範囲の種々の有線またはワイヤレス・インターフェース・コンポーネント内任意のものでよい。
[0069]  システム・メモリー１４３は、ブート・プロセスの間にロードされるアプリケーション・データーを格納するために設けられている。メディア・ドライブ１４４が設けられており、ＤＶＤ／ＣＤドライブ、ハード・ドライブ、またはその他のリムーバブル・メディア・ドライブを含むことができる。メディア・ドライブ１４４は、マルチメディア・コンソール１００の内部にあっても外部にあってもよい。アプリケーション・データーには、実行、再生等のためにマルチメディア・コンソール５２がアクセスすることができる。メディア・ドライブ１４４は、シリアルＡＴＡバスまたはその他の高速接続（例えば、ＩＥＥＥ１３９４）のようなバスを介して、Ｉ／Ｏコントローラー１２０に接続されている。
【００４９】
[0070]  一実施形態では、アバター制御システム２０２のためのソフトウェアおよびデーターのコピーをメディア・ドライブ１４４に格納することができ、実行するときにシステム・メモリー１４３にロードすることができる。
【００５０】
[0071]  システム管理コントローラー１２２は、メディア・コンソール５２が利用できるように確保することに関する種々のサービス機能を提供する。オーディオ処理ユニット１２３およびオーディオ・コデック１３２は、高忠実度およびステレオ処理を行う、対応のオーディオ処理パイプラインを形成する。オーディオ・データーは、通信リンクを通じて、オーディオ処理ユニット１２３とオーディオ・コデック１３２との間で伝えられる。オーディオ処理パイプラインは、外部オーディオ・プレーヤーまたはオーディオ処理能力を有するデバイスによる再生のために、データーをＡ／Ｖポート１４０に出力する。
【００５１】
[0072]  フロント・パネルＩ／Ｏサブアセンブリ１３０は、電力ボタン１５０およびイジェクト・ボタン１４２の機能をサポートするだけでなく、マルチメディア・コンソール５２の外面上に露出する任意のＬＥＤ（発光ダイオード）またはその他のインディケータもサポートする。システム電源モジュール１３６が、マルチメディア・コンソール５２のコンポーネントに電力を供給する。ファン１３８は、マルチメディア・コンソール５２内部にある回路を冷却する。
【００５２】
[0073]  ＣＰＵ１０１、ＧＰＵ１０８、メモリー・コントローラー１１０、およびマルチメディア・コンソール１００内部にある種々のその他のコンポーネントは、１系統以上のバスを通じて相互接続されている。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、周辺バス、および種々のバス・アーキテクチャーのいずれかを用いるプロセッサー・バスまたはローカル・バスが含まれる。一例として、このようなアーキテクチャーは、ペリフェラル・コンポーネント相互接続（ＰＣＩ）バス、PCI-Expressバス等を含むことができる。
【００５３】
[0074]  マルチメディア・コンソール５２の電源をオンにすると、システム・メモリー１４３からメモリー１１２および／またはキャッシュ１０２、１０４にアプリケーション・データーをロードし、ＣＰＵ１０１において実行することができる。アプリケーションは、グラフィカル・ユーザー・インターフェースを提示することができる。このグラフィカル・ユーザー・インターフェースは、マルチメディア・コンソール１００において利用可能な異なるタイプのメディアにナビゲートするときに、一貫性のあるユーザー体験を提供する。動作において、アプリケーションおよび／またはメディア・ドライブ１４４内に収容されている他のメディアをメディア・ドライブ１４４から起動または再生して、マルチメディア・コンソール５２に追加の機能を設けることもできる。
【００５４】
[0075]  マルチメディア・コンソール５２は、単にシステムをテレビジョンまたはその他のディスプレイに接続することによって、単体システムとして動作させることができる。この単体モードでは、マルチメディア・コンソール５２は、一人以上のユーザーがシステムと対話処理を行い、ムービーを見ること、または音楽を聞くことを可能にする。しかしながら、ネットワーク・インターフェース１２４またはワイヤレス・アダプター１４８によって利用可能となるブロードバンド接続機能を統合することにより、マルチメディア・コンソール５２を更に大きなネットワーク・コミュニティにおける一構成要素(participant)として動作させることもできる。
【００５５】
[0076]  マルチメディア・コンソール５２の電源をオンにすると、マルチメディア・コンソールのオペレーティング・システムによって、設定されている量のハードウェア・リソースがシステムの使用のために確保される。これらのリソースは、メモリー（例えば、１６ＭＢ）、ＣＰＵおよびＧＰＵサイクル（例えば、５％）、ネットワーキング帯域幅（例えば、８ｋｂｓ）等の確保を含むことができる。これらのリソースは、システムのブート時に確保されるので、確保されたリソースは、アプリケーションの視点からは存在しない。
【００５６】
[0077]  特に、メモリーの確保は、起動カーネル、コンカレント・システム・アプリケーション、およびドライバーを含めるのに十分大きいことが好ましい。確保されたＣＰＵ使用枠(usage)がシステム・アプリケーションによって用いられない場合、アイドルのスレッドが任意の未使用サイクルを消費するように、ＣＰＵの確保は、一定であることが好ましい。
【００５７】
[0078]  ＧＰＵの確保に関して、ＧＰＵ割り込みを用いることによって、システム・アプリケーション（例えば、ポップアップ）によって発生される軽量メッセージ(lightweight message)を表示して、ポップアップをオーバーレイにレンダリングするコードをスケジューリングする。オーバーレイに用いられるメモリー量は、オーバーレイのエリア・サイズに依存し、オーバーレイは画面の解像度と共にスケーリングする(scale)ことが好ましい。コンカレント・システム・アプリケーションによってフル・ユーザー・インターフェースが用いられる場合、アプリケーションの解像度とは独立した解像度を用いることが好ましい。周波数を変更しＴＶの同期を取り直す必要性をなくすように、この解像度を設定するためにスケーラーを用いるとよい。
【００５８】
[0079]  マルチメディア・コンソール５２がブートして、システム・リソースを確保した後、コンカレント・システム・アプリケーションが実行してシステム機能を提供する。システム機能は、前述の確保したシステム・リソースの内部で実行する１組のシステム・アプリケーションの中にカプセル化されている。オペレーティング・システム・カーネルは、システム・アプリケーション・スレッドと、ゲーミング・アプリケーション・スレッドとの間でスレッドを識別する。一貫したシステム・リソース・ビューをアプリケーションに提供するために、システム・アプリケーションは、所定の時点および間隔でＣＰＵ１０１において実行するようにスケジューリングされていることが好ましい。このスケジューリングは、コンソールにおいて実行しているゲーミング・アプリケーションに対するキャッシュ破壊 (disruption)を最少に抑えるためにある。
【００５９】
[0080]  コンカレント・システム・アプリケーションがオーディオを必要とする場合、時間に敏感であるため、オーディオ処理を非同期にゲーミング・アプリケーションにスケジューリングする。マルチメディア・コンソール・アプリケーション・マネージャー（以下で説明する）は、システム・アプリケーションがアクティブのとき、マルチメディア・アプリケーションのオーディオ・レベル（例えば、無音化、減衰）を制御する。
【００６０】
[0081]  入力デバイス（例えば、コントローラー１４２（１）および１４２（２））は、ゲーミング・アプリケーションおよびシステム・アプリケーションによって共有される。入力デバイスは、確保されるリソースではないが、システム・アプリケーションとゲーミング・アプリケーションとの間で切り換えられて、各々がデバイスのフォーカス(a focus of the device)を有するようにする。アプリケーション・マネージャは、好ましくは、ゲーミング・アプリケーションの知識を用いずに入力ストリームの切換を制御し、ドライバーはフォーカス・スイッチ(focus switches)に関する状態情報を維持する。画像キャプチャー・システム６０は、コンソール５２に対して（例えば、そのカメラ・システムに対して）追加の入力デバイスを定めることができる。
【００６１】
[0082]  図３Ｂは、パーソナル・コンピューターのような、計算環境の他の実施形態例を示す。
[0083]  図３Ｂを参照すると、本技術を実現するシステム例は、コンピューター３１０の形態とした汎用計算機を含む。コンピューター３１０のコンポーネントは、限定ではなく、処理ユニット３２０、システム・メモリー３３０、およびシステム・バス３２１を含むことができる。システム・バス３２１は、システム・メモリーを含む種々のシステム・コンポーネントを処理ユニット３２０に結合する。システム・バス３２１は、メモリー・バスまたはメモリー・コントローラー、周辺バス、および種々のバス・アーキテクチャーの内任意のものを用いるローカル・バスを含む、様々なタイプのバス構造の内任意のものとすることができる。一例として、そして限定ではなく、このようなアーキテクチャーは、業界標準アーキテクチャー（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャー（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス標準連盟（ＶＥＳＡ）ローカル・バス、および メザニン・バス(Mezzanine bus)としても知られている周辺素子相互接続（ＰＣＩ）バスを含む。
【００６２】
[0084]  コンピューター３１０は、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター３１０によってアクセス可能な任意の入手可能な媒体とすることができ、揮発性および不揮発性、リムーバブルおよび非リムーバブル双方の媒体を含む。一例として、そして限定ではなく、コンピューター読み取り可能媒体は、コンピューター記憶媒体および通信媒体を含むことができる。コンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターというような情報の格納のために、任意の方法または技術で実現される、揮発性および不揮発性の双方、リムーバブル媒体および非リムーバブル媒体を含む。コンピューター記憶媒体は、限定ではなく、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリーまたはその他のメモリー技術、ＣＤ−ＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）またはその他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができしかもコンピューター３１０がアクセス可能なその他のあらゆる媒体を含む。通信媒体は、通例、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターを、搬送波またはその他の移送機構のような変調データー信号において具体化し、任意の情報配信媒体を含む。「変調信号」という用語は、その信号に情報をエンコードするようなやり方で、１つ以上のその特性が設定または変化させられている信号を意味する。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続というような有線媒体、ならびに音響、ＲＦ、赤外線、およびその他のワイヤレス媒体というようなワイヤレス媒体を含む。前述の内任意のものの組み合わせも、コンピューター読み取り可能媒体の範囲に含まれてしかるべきである。
【００６３】
[0085]  システム・メモリー３３０は、リード・オンリ・メモリー（ＲＯＭ）３３１およびランダム・アクセス・メモリー（ＲＡＭ）３３２のような揮発性および／または不揮発性メモリーの形態をなすコンピューター記憶媒体を含む。基本入出力システム３３３（ＢＩＯＳ）は、起動中のように、コンピューター３１０内のエレメント間における情報転送を補助する基本的なルーチンを含み、通例ＲＯＭ３３１内に格納されている。ＲＡＭ３３２は、通例、処理ユニット３２０が直ちにアクセス可能であるデーターおよび／またはプログラム・モジュール、あるいは現在処理ユニット３２０によって処理されているデーターおよび／またはプログラム・モジュールを収容する。一例として、そして限定ではなく、図３は、オペレーティング・システム３３４、アプリケーション・プログラム３３５、その他のプログラム・モジュール３３１、およびプログラム・データー３３７を示す。
【００６４】
[0086]  また、コンピューター３１０は、その他のリムーバブル／非リムーバブル揮発性／不揮発性コンピューター記憶媒体も含むことができる。一例として示すに過ぎないが、図３Ｂは、非リムーバブル不揮発性磁気媒体からの読み取りおよびこれへの書き込みを行なうハード・ディスク・ドライブ３４０、リムーバブル不揮発性磁気ディスク３５２からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ３５１、ならびにＣＤ  ＲＯＭまたはその他の光媒体のようなリムーバブル不揮発性光ディスク３５６からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ３５５を示す。本動作環境例において使用可能なその他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピューター記憶媒体には、限定ではないが、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートＲＡＭ、ソリッド・ステートＲＯＭ等が含まれる。ハード・ディスク・ドライブ３４１は、通例、インターフェース３４０のような非リムーバブル・メモリー・インターフェースを介してシステム・バス３２１に接続され、磁気ディスク・ドライブ３５１および光ディスク・ドライブ３５５は、通例、インターフェース３５０のようなリムーバブル・メモリー・インターフェースによって、システム・バス３２１に接続する。
【００６５】
[0087]  先に論じ図３Ｂに示すドライブおよびそれらと関連したコンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、およびコンピューター３１０のその他のデーターを格納する。図３Ｂでは、例えば、ハード・ディスク・ドライブ３４１は、オペレーティング・システム３４４、アプリケーション・プログラム３４５、その他のプログラム・モジュール３４６、およびプログラム・データー３４７を格納するように示されている。尚、これらのコンポーネントは、オペレーティング・システム３３４、アプリケーション・プログラム３３５、その他のプログラム・モジュール３３６、およびプログラム・データー３３７と同じでも異なっていても可能であることを注記しておく。オペレーティング・システム３４４、アプリケーション・プログラム３４５、その他のプログラム・モジュール３４６、およびプログラム・データー３４７は、ここで、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。ユーザーは、キーボード３６２のような入力デバイス、および一般にマウス、トラックボールまたはタッチ・パッドと呼ばれているポインティング・デバイス３６１によって、コマンドおよび情報をコンピューター２０に入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザー入力インターフェース３６０を介して、処理ユニット３２０に接続されている。ユーザー入力インターフェース３６０は、システム・バスに結合されているが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス（ＵＳＢ）のようなその他のインターフェースおよびバス構造によって接続することも可能である。モニター３９１またはその他の形式のディスプレイ・デバイスも、ビデオ・インターフェース３９０のようなインターフェースを介して、システム・バス３２１に接続されている。モニターに加えて、コンピューターは、スピーカー３９７およびプリンター３９６のような、その他の周辺出力装置も含むことができ、これらは出力周辺インターフェース３９０を通じて接続することができる。
【００６６】
[0088]  コンピューター３１０は、リモート・コンピューター３８０のような１つ以上のリモート・コンピューターへの論理接続を用いて、ネットワーク環境において動作することも可能である。リモート・コンピューター３８０は、パーソナル・コンピューター、サーバー、ルータ、ネットワークＰＣ、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター３１０に関して先に説明したエレメントの多くまたは全てを含むが、図３にはメモリー記憶装置３８１のみが示されている。図３に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）３７１およびワイド・エリア・ネットワーク（ＷＡＮ）３７３を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネットおよびインターネットにおいては、一般的である。
【００６７】
[0089]  ＬＡＮネットワーク環境で用いる場合、コンピューター３１０は、ネットワーク・インターフェースまたはアダプター３７０を介してＬＡＮ３７１に接続される。ＷＡＮネットワーク環境で用いる場合、コンピューター３１０は、通例、モデム３７２、またはインターネットのようなＷＡＮ３７３を介して通信を行うその他の手段を含む。モデム３７２は、内蔵でも外付けでもよく、ユーザー入力インターフェース３１０またはその他のしかるべきメカニズムを介してシステム・バス３２１に接続することができる。ネットワーク接続環境では、コンピューター３１０に関して図示したプログラム・モジュール、またはその一部は、離れたメモリー記憶装置に格納することもできる。一例として、そして限定ではなく、図３は、リモート・アプリケーション・プログラム３８５がメモリー・デバイス３８１上に存在するものとして示している。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを作る他の手段も使用可能であることは認められよう。
【００６８】
[0090]  図４は、アバターによる禁止ジェスチャーの表示を制限する１つ以上の実施形態が動作することができる、ネットワーク接続計算環境の実施形態例を示す。図４に示されるように、複数のコンソール４００Ａ〜４００Ｘ、または図３Ａおよび図３Ｂに示されたような処理デバイスをネットワーク４０２に結合することができ、更に互いに通信すること、およびネットワーク４０２を介して、１つ以上のサーバー（１つまたは複数）４０６を有するネットワーク・ゲーミング・サービス４０４と通信することができる。サーバー９（１つまたは複数）４０６は、コンソール４００Ａ〜４００Ｘから情報を受信することおよびコンソール４００Ａ〜４００Ｘに情報を送信することが可能な通信コンポーネントを含むことができ、コンソール４００Ａ〜４００Ｘにおいて実行しているアプリケーションが呼び出して利用することができるサービスの集合体を提供することもできる。
【００６９】
[0091]  コンソール４００Ａ〜４００Ｘは、ユーザー・ログイン・サービス４０８を呼び出すことができる。ユーザー・ログイン・サービス４０８は、コンソール４００Ａ〜４００Ｘにおいてユーザーを認証し特定するために使用される。ログインの間、ログイン・サービス４０８はゲーマー・タグ(gamer tag)（ユーザーと関連付けられている一意の識別子）およびパスワードをユーザーから取得し、更にユーザーが使用しているコンソールを一意に識別するコンソール識別子、およびこのコンソールへのネットワーク・パスも取得する。ゲーマー・タグおよびパスワードは、これらをユーザー・グローバル・プロファイル・データーベース４１６と比較することによって認証される。グローバル・プロファイル・データーベース４１６は、ユーザー・ログイン・サービス４０８と同じサーバーに配置することができ、あるいは１つの異なるサーバーまたは異なるサーバーの集合体に分散することもできる。一旦認証されたなら、ユーザー・ログイン・サービス４０８はコンソール識別子およびネットワーク・パスをグローバル・ユーザー・プロファイル・データーベース４１６に格納し、メッセージおよび情報をコンソールに送ることができるようにする。
【００７０】
[0092]  一実施形態では、コンソール４００Ａ〜４００Ｘは、ゲーミング・サービス４１０、共有サービス４１２、禁止ジェスチャー検出器、ユーザー共有データー４２８、および交換データーベース４１８を含むことができる。ゲーミング・サービスは、ユーザーがオンライン・インタラクティブ・ゲームをプレーすること、コンソール間で合同ゲーム・プレーのためのゲーミング環境を作り共有すること、そしてオンライン市場、種々のゲームに跨がる集中達成追跡(centralized achievement tracking)、および他の共有体験機能というような、他のサービスを提供することを可能にするのであるとよい。共有サービス４１２は、ユーザーが他のユーザーとゲーム・プレー・エレメントを共有することを可能にする。例えば、コンソール４００ｘにおけるユーザーが、ゲームにおいて使用するためのエレメントを作り、これらを他のユーザーと共有するまたはこれらを他のユーザーに販売することができる。加えて、ユーザーは、ゲームにおけるレースのムービーまたは種々の場面というような、ゲーム・プレー体験のエレメントを記録し、これらを他のユーザーと共有することもできる。共有または販売のためにユーザーによって提供される情報は、ユーザー共有データー４２８に格納することができる。
【００７１】
[0093]  グローバル・ユーザー・プロファイル・データーベース４１６は、ユーザーのアカウント情報、および各ユーザーが使用している個々のコンソールを一意に識別するコンソール識別子というような、コンソール４００Ａ〜４００Ｘにおけるユーザー全てについての情報を含むことができる。また、グローバル・ユーザー・プロファイル・データーベース４１６は、コンソール４００Ａ〜４００Ｘにおける全てのユーザーと関連したユーザー好み情報も含むことができる。また、グローバル・ユーザー・プロファイル・データーベース４１６は、ユーザーと関連したゲーム記録および友人リストのような、ユーザーに関する情報も含むことができる。
【００７２】
[0094]  禁止ジェスチャー検出器は、ゲーミング・サービス４０４において提供するとよい。禁止ジェスチャー検出器は、サーバーにアップロードされユーザー共有データー４２８に格納されたゲーム・プレー・エレメントにおいて禁止ジェスチャーおよび動きを検出することができる。交換ジェスチャー・データーベースは、データーベース４２８におけるユーザー共有データーにアップロードされた禁止ジェスチャーと置き換えるときに使用する交換ジェスチャーを含むことができる。
【００７３】
[0095]  図４に示したようなゲーミング・システムにしたがって、任意の数のネットワーク接続された処理デバイスを設けることができる。したがって、本明細書において紹介される技術は、ゲーミング・サービス４０４と共に１つ以上のサーバー４０６において動作することができ、またはデバイス４００Ａ〜４００Ｘのような、ネットワーク接続環境における個々の処理デバイスに設けることもできる。
【００７４】
[0096]  ターゲット認識、分析、および追跡システム５０は、深度画像が人間のターゲットを含むか否か判定することができる。一実施形態では、取り込まれた深度画像の場面における人間のターゲットおよび人間以外のターゲットというような各ターゲットのエッジを判定することができる。前述のように、深度値の各々は、カメラ７０から取り込まれた場面における物体の長さまたは距離というような深度値を、例えば、センチメートル、ミリメートル等の単位で表すことができる。実施形態例によれば、エッジを判定するには、例えば、深度画像の隣接する画素または近隣の画素と関連した種々の値同士を比較すればよい。比較された種々の深度値が所定のエッジ許容度(tolerance)よりも大きい場合、その画素はエッジを定めると考えられる。一実施形態では、所定のエッジ許容度は、例えば、１００ミリメートルとするとよい。１０００ミリメートルの深度値を表す画素が、１２００ミリメートルの深度値を表す隣接画素と比較された場合、これらの画素はターゲットのエッジを定めることができる。何故なら、これらの画素間の長さまたは距離の差が、１００ｍｍという所定のエッジ許容度よりも大きいからである。  
【００７５】
[0097]  他の実施形態によれば、深度画像における所定のポイントまたはエリアを塗り潰して(flood fill)、深度画像が人間のターゲットを含むか否か判断することができる。例えば、深度画像の選択されたエリアまたはポイントにおける画素の種々の深度値を比較して、前述のようにターゲットまたは物体を定めることができるエッジを判定することができる。実施形態例では、所定のポイントまたはエリアが深度画像全体に均一に分布されているとよい。例えば、所定のポイントまたはエリアは、深度画像の中心にあるポイントまたはエリア、深度画像の左エッジと中心との間にある２つのポイントまたはエリア、深度画像の右エッジと中心との間にある２つのポイントまたはエリアなどを含むことができる。
【００７６】
[0098]  判定されたエッジに基づいて、ＺレイヤーのＺ値を塗り潰すことができる。例えば、判定されたエッジと関連した画素、および判定されたエッジの内部にあるエリアの画素を互いに関連付けて、キャプチャー・エリアの中にあるターゲットまたは物体を定めることができ、これをパターンと比較することができる。
【００７７】
[0099]  実施形態例によれば、塗り潰したターゲット、人間および人間以外のターゲットの各々をパターンと照合して、キャプチャー・エリアの中にいるターゲットが人間を含むか否か、および／またはどのターゲットが人間を含むか判定することができる。このパターンは、例えば、両腕が各側にある典型的な起立姿勢というような、種々の位置または姿勢の人間と関連した所定の身体モデルのマシン表現を含むことができる。
データーにおける身体部分の識別および表現
[00100]  実施形態例では、人間のターゲットを分離し、この人間のターゲットのビットマスクを作り、１つ以上の身体部分を求めて走査することができる。例えば、深度画像内において有効な人間のターゲットが発見された後、背景またはこの人間のターゲットと一致しない深度画像のエリアを除去することができる。次いで、例えば、Ｘ、Ｙ、およびＺ軸に沿って人間のターゲットの値を含むことができるビットマスクを、この人間のターゲットに生成することができる。実施形態例によれば、例えば、頭部から始めて、人間のターゲットのビットマスクを走査して、種々の身体部分を求め、人間のターゲットのモデルを生成することができる。ビットマスクの最上部を、頭部の最上部の位置と関連付けることができる。頭部の最上部を決定した後、下に向かってビットマスクを走査し、首の位置、肩の位置等を判定することができる。画素がモデルにおける特定の仮想身体部分と関連がある確率を含むように、深度マップまたは深度画像を更新することができる。
【００７８】
[00101]  実施形態例によれば、身体部分の値を判定するときに、データー構造を作ることができる。このデーター構造は、人間のターゲットのビットマスクと関連した身体部分の長さ、幅等のような測定値を含むことができる。一実施形態では、身体部分のデーター構造は、フレーム・レートでキャプチャー・システム６０においてフレーム単位で取り込まれた複数の深度画像から平均を取った結果を含むことができる。このモデルは、あるフレーム数毎に繰り返し調節することができる。他の実施形態によれば、判定された身体部分の測定値を拡大、縮小等のように調節して、データー構造における測定値が、人間の身体の典型的なモデルにより密接に対応するようにすることができる。身体モデルは、任意の数の身体部分を含むことができ、その各々が、モデル化されたターゲットの対応する部分の任意の機械理解可能な表現とするとよい。
【００７９】
[00102]  ２つ以上の身体部分を含むモデルの例では、このモデルの各身体部分が、１つ以上の構造部材（即ち、「骨」）を含み、隣接する骨の交点に関節が位置する。例えば、ビットマスクによって決定された測定値を使用して、スケルトン・モデルにおける１つ以上の関節を定めることができる。１つ以上の関節を使用して、人間の身体部分に対応すると考えられる１つ以上の骨を定めることができる。各関節は、１つ以上の身体部分が１つ以上の他の身体部分に対して動くことを可能にする場合もある。例えば、人間のターゲットを表すモデルが、複数の硬質で(rigid)および／または変形可能な身体部分を含むことができ、一部の身体部分は、人間のターゲットの対応する解剖学的身体部分を表すことができる。各身体部分は、スケルトン・モデルの関節および骨を定める数学的ベクトルとして特徴付けることができる。尚、一部の骨には人間のターゲットにおける解剖学的な骨に対応すると考えられるものがあること、および／または骨の一部は人間のターゲットにおいて対応する解剖学的な骨を有さないと考えられるものがあることは理解されてしかるべきであろう。
【００８０】
[00103]  骨および関節は、集合的にスケルトン・モデルを構成することができ、このスケルトン・モデルが他のモデルの構成エレメントとなることもある。このスケルトン・モデルは、身体部分毎に１つ以上のスケルトン部材と、隣接するスケルトン部材間に関節とを含む。三次元スケルトン・モデルの例、スケルトン・モデル４０７およびスケルトン・モデル４０８を、それぞれ、図５Ａおよび図５Ｂに示す。図５Ａは、前方から見たスケルトン・モデル４０７を示し、関節ｊ１〜ｊ３３までを有する。スケルトン・モデル４０７は、１つ以上の関節ｊ１〜ｊ３３を含むことができる。実施形態例によれば、関節ｊ１〜ｊ３３の各々は、それらの間に定められている１つ以上の身体部分が１つ以上の他の身体部分に対して動くこと、そして互いに独立して動くことを可能にすることができる。例えば、関節ｊ１７およびｊ１９間に定められている骨は、前腕に対応することができ、この前腕は、例えば、ふくらはぎに対応することができる関節ｊ２３およびｊ２５間に定められている骨とは独立して動かすことができる。
【００８１】
[00104]  図５Ｂは、歪んだ視点から見たときのスケルトン・モデル４０８を示し、同様に関節ｊ１〜ｊ３３までがある。更に、スケルトン・モデル４０８はねじり関節ｊ３４からｊ４７までも含み、各ねじり関節(roll joint)は、軸ねじれ角(axial roll angle)を追跡するために利用することができる。例えば、軸ねじれ角は、親肢および／または胴体に対する肢の回転方位を定めるために使用することができる。例えば、スケルトン・モデルが腕の軸回転を示している場合、ねじり関節ｊ４０は、関連した手首が指し示す方向を示すために使用することができる（例えば、掌を上に向けている）。つまり、以下で説明するように、関節は力を受けてスケルトン・モデルを調節することができるが、一方、ねじり関節は、代わりに、軸ねじれ角を追跡するために組み立てて利用することができる。更に一般的には、親肢および／または胴体に対する肢の方位を調べることによって、軸ねじれ角を判定することもできる。例えば、下肢を調べる場合、軸ねじれ角度を判定するために関連した上肢および臀部に対する下肢の方位も調べることができる。
関節および骨、ならびに力ベクトルの適用
[00105]  ユーザーが物理空間において動き、画像キャプチャー・システム６０によって取り込まれると、結果的に得られた画像データーは、スケルトン・モデルが正確にユーザーを表すように、スケルトン・モデルを調節するために使用することができる。実施形態例によれば、モデルをラスタ化して合成深度画像を得ることができる。ラスタ化によって、数学的ベクトル、ポリゴン・メッシュ、または他のオブジェクトによって記述されたモデルを、画素に関する合成深度画像に変換することが可能になる。キャプチャー・システムによって引き出されたターゲットの被観察イメージと、モデルのラスタ化された（即ち、合成された）イメージとの間の差を使用して力ベクトルを決定することができる。この力ベクトルは、身体を異なる姿勢に調節するためにモデルに適用される。一実施形態では、１つ以上の力ベクトルを １つ以上の受力面(force receiving aspect)に適用して、キャプチャー・エリアの物理空間におけるターゲットの姿勢に一層緊密に対応する姿勢に、モデルを調節することができる。このモデルは、フレームが取り込まれるに連れて繰り返し調節することができる。使用されているモデルのタイプに依存して、力ベクトルは、関節、身体部分の重心、三角形の頂角、またはモデルの任意の他の適した受力面に適用することができる。更に、実施形態によっては、力の方向および／または大きさを決定するときに、２つ以上の異なる計算を使用するとよい場合もある。
【００８２】
[00106]  制約
[00107]  画面上のキャラクターの視覚的外観は、追跡されているスケルトン・モデルに対する変更および制約に応答して、変更することもできる。力を加えたときにスケルトン・モデルの完全性を維持することは、１つ以上の制約を適用することの結果得ることができる。異なる可能なモデル・タイプの完全性を維持するためには、種々の異なる制約を強制することができる。
【００８３】
[00108]  モデルを修正する各繰り返しの間、行為およびジェスチャーの集合を、１つ以上のターゲットの１つ以上の実際の身体によって物理的に表現可能なものに制限するために、動きまたは姿勢に対して緩やかにおよび／または徐々に制約を適用することができる。加えてまたは代わりに、ターゲットに基づいて各スケルトン部材の長さを計算し、これらの長さが修正の間制約として使用できるようにすることによって、スケルトン・モデルに制約を加えることもできる。例えば、ターゲットの身体の種々の部分の寸法（例えば、腕の長さ、臀部の幅、頭の大きさ等）は、身体モデルの種々のバージョンをレンダリングし、各レンダリングにおいて寸法を変更して使用し、１つ以上の適したメトリックにしたがってターゲットに最も緊密に一致するレンダリングの寸法を選択することによって決定することができる。他の例では、１回のレンダリングを行うのでもよく、レンダリングが被観察深度画像に一致する特定のエリア、および一致しない特定のエリアの分析によって、適正な身体の寸法を推論することができる。実施形態の中には、ターゲットの異なる部分がある時間枠（例えば、１秒の３０分の１または６０分の１）において動くことができる距離を制限することができるという知識を、モデルを得るときの制約として使用することができる。このような制約は、以前の枠が解っているときに、ある種の姿勢を除外するために使用することもできる。
【００８４】
[00109]  関節角度の制約に関して、ある種の肢および身体部分は、隣接する身体部分に対するそれらの運動範囲を制限するとよい。加えて、この運動範囲は、隣接する身体部分の方位に基づいて変化することもある。つまり、関節角度の制約を適用することによって、親肢(parent limps)および／または身体部分の方位が示されたときに、肢節(limb segment)を可能な構成に制約することが可能になるとよい。
【００８５】
[00110]  図６Ａおよび図６Ｂは、モデルの力受け取り位置に力を加える例、および力を加えた結果を示す。図６Ａは、スケルトン・モデル４０７を示し、被観察深度画像に一層緊密に一致させるためにスケルトン・モデル４０７の一方の腕を真っ直ぐに伸ばす目的で、力ベクトル４９２が関節ｊ１８（例えば、肘）に加えられ、力ベクトル４９４が関節ｊ２０（例えば、手首）に加えられる。図６Ｃは、図６Ａのユーザーのモデルを表す画面上のアバター５００の視覚的外観を示す。図６Ｂは、力が加えられた後におけるスケルトン・モデル４０９を示す。図６Ｂは、加えられた力が、モデルの姿勢をどのように調節したかを示す。図６Ｂに示されるように、スケルトン部材の長さは、保存することができる。更に示されるように、関節ｊ２の位置は、スケルトン・モデルの肩に残っている。これは、人間が腕を伸ばした場合に予期されることである。言い換えると、スケルトン・モデルは、力が加えられた後元のままになっている。図６Ｂに示されている変更のような、モデルに対する変更に応答して、アバター制御システム２０２は、図６Ｄに示されている、調節されて腕を伸ばしたプレーヤー・アバター５０２を、オーディオビジュアル・ディスプレイ・システム５６に表示させる。
【００８６】
[00111]  ターゲットのモデルは、本開示の範囲から逸脱することなく、種々に構成することができる。例の中には、モデルが１つ以上のデーター構造を含み、これらが、硬質および／または変形可能な形状、または身体部分を含む二次元または三次元モデルとして、ターゲットを表すことができる場合もある。各身体部分は、数学的原子関数として特徴付けることができ、その例には、球体、異方的スケーリングされた球体、円筒、異方性円筒、滑らかな円筒、ボックス、面取されたボックス(beveled box)、角柱などが含まれるが、これらに限定されるのではない。
【００８７】
[00112]  前述のように、モデルの中には、モデル化されたターゲットのマシン表現として作用するスケルトンおよび／または身体部分を含むことができるものもある。実施形態の中には、代わりにまたは加えて、モデルが、ワイヤフレーム・メッシュを含むとよい場合もある。フレーム・メッシュは、硬質なポリゴン・メッシュ（例えば、三角形）の階層、１つ以上の変形可能なメッシュ、または身体モデルの形状を定めるメッシュに配置されたこれら２つの任意の組み合わせを含むことができる。このようなメッシュは、ポリゴン・エッジ毎に、折り曲げ限界を含むとよい。他の例では、モデルの中には、パッチ、非均一回転Ｂ−スプライン、または他の高次表面を含むことができるものもある。また、モデルは、より精度高く衣服、髪、および／またはモデル化されたターゲットの他の態様を表すために、表面模様および／または他の情報も含むことができる。
【００８８】
[00113]  ターゲット認識、分析、および追跡システムは、１つ以上の動きを含むモーション・キャプチャー・ファイルをレンダリングおよび格納することができる。このような動きの例には、ユーザーに特定の手を振る動き、ゴルフ・スウィングのような素振りの動き、殴る動き、歩く動き、走る動き等がある。一実施形態によれば、モーション・キャプチャー・ファイルは、追跡されているモデルと関連した情報に基づいて、リアル・タイムに生成することができる。例えば、一実施形態では、モーション・キャプチャー・ファイルは、例えば、種々の時点において、追跡されているときのモデルの関節および骨を定めることができるＸ、Ｙ、およびＺ値を含むベクトルを含むことができる。
【００８９】
[00114]  一実施形態例では、ユーザーに、モーション・キャプチャー・ファイルに取り込むことができる種々の動きを行うように促すことができる。例えば、インターフェースを表示して、例えば、歩く、またはゴルフの素振りの動きを行うようにユーザーに促すことができる。前述のように、追跡されているモデルは、次に、種々の時点におけるこれらの動きに基づいて調節することができ、促された動きに対するモデルのモーション・キャプチャー・ファイルを生成して格納することができる。
【００９０】
[00115]  一実施形態によれば、モーション・キャプチャー・ファイルは、例えば、異なる時点におけるユーザーの動きのスナップショットに対応するフレームを含むことができる。追跡されているモデルを取り込むとき、このモデルと関連した情報は、任意の動きまたは特定の時点においてこれに適用された調節を含み、モーション・キャプチャー・ファイルのフレームにレンダリングすることができる。このフレームの中にある情報は、例えば、追跡されているモデルの関節および骨を定めることができるＸ、Ｙ、およびＺ値を含むベクトルと、例えば、追跡されているモデルのポーズに対応する動きをユーザーが行った時点を示すことができるタイム・スタンプとを含むことができる。
【００９１】
[00116]  例えば、図６Ｂに示されているモデル４０８は、ユーザーが最初に彼または彼女の左肘を伸ばした時点に対応することができる。この動きは、当該動きに対する関節および骨のＸ、Ｙ、およびＺ値のような情報を含み、例えば、ユーザーが彼または彼女の左腕を伸ばした時点と関連付けられた第１タイム・スタンプを有する、モーション・キャプチャー・ファイルの第１フレームにレンダリングすることができる。
【００９２】
[00117]  同様に、図６Ｂでは、ユーザーによる同様の動きに応答して、モデルが手首の関節ｊ２０を延ばし、この動きは後の時点に対応することができる。動きは、その動きに対する関節および骨のＸ、Ｙ、およびＺ値のような情報を含み、例えば、ユーザーが彼または彼女の肘および手首を伸ばした異なる時点と関連付けられた第１および第２タイム・スタンプをそれぞれ有する、モーション・キャプチャー・ファイルの第１および第２フレームにそれぞれレンダリングすることができる。
【００９３】
[00118]  モーション・キャプチャー・ファイルは、アバターまたはゲーム・キャラクターに適用することもできる。例えば、ターゲット認識、分析、および追跡システムは、モーション・キャプチャー・ファイルに取り込まれている、追跡されているモデルの１つ以上の動きを、アバターまたはゲーム・キャラクターに適用することができ、このアバターまたはゲーム・キャラクターが、図１Ａおよび図１Ｂに関して先に説明したユーザー５８のような、ユーザーによって行われる動きを真似するように、動画化することができる。実施形態例では、モーション・キャプチャー・ファイルに取り込まれたモデルの関節および骨を、ゲーム・キャラクターまたはアバターの特定の部分にマッピングすることができる。例えば、左肘ｊ１８と関連した関節を、アバターまたはゲーム・キャラクターの左腕にマッピングすることができる（例えば、図６Ｄにおける５０２）。次いで、モーション・キャプチャー・ファイルの各フレームにおいてユーザーのモデルと関連した左肘の動きを真似するように、左肘を動画化することができる。
【００９４】
[00119]  実施形態例によれば、ターゲット認識、分析、および追跡システムは、モーション・キャプチャー・ファイルに動きが取り込まれるときに、１つ以上の動きを適用することができる。つまり、フレームがモーション・キャプチャー・ファイルにレンダリングされると、そのフレームに取り込まれた動きをアバターまたはゲーム・キャラクターに適用することができ、このフレームに取り込まれた動きを直ちに真似するように、アバターまたはゲーム・キャラクターを動画化することができる。
【００９５】
[00120]  他の実施形態では、ターゲット認識、分析、および追跡システムは、動きがモーション・キャプチャー・ファイルに取り込まれた後に、１つ以上の動きを適用することもできる。例えば、歩行の動きというような動きがユーザーによって行われ、取り込まれ、モーション・キャプチャー・ファイルに格納されるのでもよい。この歩行の動きは、次に、ユーザーが彼または彼女の足を上げる毎に、アバターに歩行させるジェスチャーまたはコマンドとして、アバターまたはゲーム・キャラクターに適用することができる。次いで、アバターは歩行し始めることができ、ユーザーと関連がありモーション・キャプチャー・ファイルに格納された歩行の動きに基づいて、動画化することができる。このように、画面上のキャラクターの視覚的外観は、モーション・キャプチャー・ファイルに応答して変化させることができる。更に、画面上のアバターは、ユーザーの実際の動きを真似るように動画化することができる。例えば、ユーザーがゴルフ・クラブを振る動作がモーション・キャプチャー・ファイルに取り込まれ、これと全く同じように、ゴルフ・クラブを振るようにアバターが動画化される。
【００９６】
[00121]  スケルトン・モデル（例えば、４０７または７００）のようなモデルは、ユーザーの動きを分析し、これらを追跡するアバターの動きを表示するために、動きモジュール２０４およびアバター表示制御モジュール２０９のような、アバター制御システム２０２における異なるモジュールに対して、共通の参照基準を設ける。
【００９７】
[00122]  本技術と共に使用することができる画像キャプチャー・システムおよびその処理についての更に詳細な情報については、以下の出願を参照することができる。２００９年５月２９日に出願された"Environment And/Or Target Segmentation"（環境および／またはターゲット区分）、ここで引用したことにより本願にもその内容全体が含まれるものとする。２００９年１０月２１に出願された米国特許出願第１２／６０３，４３７号、"Pose Tracking Pipeline"（姿勢追跡パイプライン）、ここで引用したことにより本願にもその内容全体が含まれるものとする。２００９年５月２９日に出願された米国特許出願第１２／４７５，３０８号、"Device for Identifying and Tracking Multiple Humans Over Time"（ときの経過と共に複数の人間を識別および追跡するデバイス）、ここで引用したことにより本願にもその内容全体が含まれるものとする。２００９年１２月１８日に出願された"Motion Detection Using Depth Images"（深度画像を使用した動き検出）、ここで引用したことにより本願にもその内容全体が含まれるものとする。 ２００９年１０月７日に出願された米国特許出願第１２／５７５,３８８号"Human Tracking System"（人間追跡システム）、ここで引用したことにより本願にもその内容全体が含まれるものとする。
ジェスチャー判定
[00123]  ユーザーの自然な動きを取り込む１つ以上の実施形態では、キャプチャー・システム６０は、ユーザーが適時に(in time)動くと、表示画面５４上の場面を更新するために、動き追跡のためのデーター２０５ｌを、通信可能に結合されている動きモジュール２０４に繰り返し送る。先の例では、動き追跡データーは、異なる関節に関するベクトル、動きの変化を示すための重心またはノードというようなスケルトン・モデルの何らかの形態に関して参照されるデーターを含むことができる。このような変化は、モーション・キャプチャー・ファイルに取り込むことができる。このデーターは、ベクトル・データーをラスタ化することによって作られた合成画素データー表現を基準にする(reference)こともできる。また、このデーターは、どの身体部分が動いているのか検出するために、各更新において比較のためにユーザーのビットマスクを含むこともできる。各身体部分は、識別できるように、インデックス化されており、居間にある家具というようなキャプチャー・エリアの他の部分は、背景として識別され、ユーザーは、それぞれの身体部分についてのマシン表現可能データーをこれらにリンクできるように、インデックス化される。
【００９８】
[00124]  動きモジュール２０４は、インデックスを使用して、どの身体部分が更新の間に位置を変化させたか識別することができる。異なる身体部分毎に、ジェスチャー・フィルター２０６が関連付けられている。ジェスチャー・フィルター２０６は、更新２０５または一連の更新において示された動きが、ジェスチャーを表すか否か判断するための命令を含む。このジェスチャーは、動き自体または最終的な姿勢とすることができる。先に論じたように、ジェスチャーは、通常アプリケーションのコンテキストにおける意味を有するが、アプリケーションに関係なく、異なる文化では不快になる意味を有する可能性もある。動きモジュール２０４は、これらの行為に対する特定のジェスチャー・フィルターを有する。これらの行為を、以後禁止ジェスチャーと呼び、これらを認識するために、種々の身体部分と関連した動き追跡データーと、禁止ジェスチャーを比較する。
【００９９】
[00125]  一実施形態では、ジェスチャー・フィルター２０６は、ジェスチャーに伴う１つ以上の身体部分についての動き追跡データーを、そのジェスチャーを定める動き特性に関する規準を含むパラメーターと比較する命令を実行する。動き特性の例には、位置、角度、速度、および加速度が含まれる。例えば、投げる場合、一方の手が身体の背後から身体の前を通過する運動が含まれ、ユーザーの一方の手が身体の背後から身体の前を通過する動きを表す情報を含むジェスチャーとして実現することができる。この動きは、深度カメラによって取り込まれる。「投げる」に対するパラメーターの例には、手が到達しなければならないしきい値速度、手が移動しなければならない距離（絶対的またはユーザー全体の大きさに対して相対的な距離）、および身体の背後からその前面を通過する手の動く方向が含まれる。これらのパラメーターは、その対応するジェスチャーについてのメタデーターとして格納することができる。パラメーターは、ジェスチャーについての多様な動き特性の内任意のものを含むことができる。フィルターがパラメーターを含む場合、そのパラメーター値は異なる形態をなすことができる。例えば、しきい値、絶対値、フォールト・トレランス、または範囲であってもよい。
【０１００】
[00126]  パラメーターによって表すことができる動き特性の更に別の例には、次のようなものがある。ジェスチャーに関与する身体部分、動きの身体部分に対する角度、関節、他の身体部分またはスケルトン・モデルによって表されるユーザーの身体の重心、身体部分または身体全体の位置変化、および身体部分または身体全体が動いた距離である。加えて、特性の他の例には、ユーザーの身体周囲において身体部分が動く空間の広さ(volume)、動きの方向、身体部分の動きの速度、動きが起こる場所、場面における身体部分と他の物体との間の角度、加速度しきい値、ジェスチャーの時間期間、ジェスチャーの特定時間、および解放点（release point)がある。
【０１０１】
[00127]  実施形態では、パラメーターの値は、アプリケーションのエンド・ユーザーがジェスチャーを行うことによって決定される。例えば、ユーザーが、どの動きがジェスチャーを構成すると彼が信じるか指定することができるように、アプリケーションがユーザーにそれを訓練させるとよい。これは、ユーザーが、彼または彼女の運動能力によって正しい制御を行うことなく、ユーザーが行うことができる動きを対応するジェスチャーにリンクさせることができるという利点があると考えられる。これが利用可能でないと、ユーザーは、ジェスチャーを行うためにアプリケーションによって要求されるように彼の身体を動かすことができないので、いらいらする可能性がある。例えば、ピッチャーが５０ｍｐｈと１０５ｍｐｈとの間の任意の整数の速度で投球を行う野球ゲームを仮定し、ユーザーがジェスチャーを行うときの最大の腕の速度にその速度が基づくとすると、これら５６通りの可能な速度の各々に対して、別の１組のパラメーターを定めるのは厄介である。代わりに、アプリケーションには、ユーザーの最大の腕の速度でジェスチャーが行われたことの指示を与えればよく、次いで、アプリケーションは内部ロジックを使用して、対応するピッチャーのアバターが投球を行うべき速度を決定することができる。
【０１０２】
[00128]  実施形態では、ユーザーは彼の声も使用して、ジェスチャーを行う、補強する、区別する、または明確にする。この実施形態では、動きモジュール２０４は音声データーを受け取り、データーと音声データーとの組み合わせがジェスチャーを示すと判断する。例えば、ユーザーは、彼の口を開いて閉じることによって、歌うジェスチャーを行うことができるが、特定の音程を歌うことによって、その歌うジェスチャーのその音程を指定することができる。加えて、ユーザーは、「通常のパンチ」のジェスチャーを行いながら叫ぶことによって、「通常のパンチ」ではなく、「強いパンチ」のジェスチャーを行うことができるとよい。
【０１０３】
[00129]  一例では、ジェスチャー・フィルター２０６の規準が、モデル・データー２１６に格納されている、図５Ａ〜図７に示されているスケルトン・モデルの１つ以上のような、スケルトン・モデルを参照する。このフィルターは、パラメーター規準が満たされているか否か判断するときに、深度値、またはスケルトン・データーに関するベクトル、または色画像データー、あるいはこれらの内２つ以上の組み合わせを処理することができる、コードおよび関連データーを含むことができる。例えば、フィルターへの入力は、ユーザーの関節位置についての関節データー、関節でつながる骨が形成する角度、衝突検査に役立つことができるユーザーのＲＧＢ色データー、およびユーザーの態様(aspect)の変化率というような事項を含むことができる。入力データー２０５は、位置、速度、動きの方向、関節角度などが変化するに連れて、ジェスチャーに関与する１つ以上の身体部分についての以前の測位データー集合も一緒に、提示することができる。
【０１０４】
[00130]  一致があるか否かは、１つ以上の出力される信頼性レベルによって表すことができる。一例では、信頼性レベルは、０と１（１も含む）との間の浮動小数点数を範囲とする線形目盛り上で実現することができる。実施形態では、信頼性レベルの判定は、フィルターと関連したパラメーターに基づくブール判定を含むことができる。例えば、各パラメーターには、それと関連した動き特性が作られていることについてそれ自体の信頼性レベルが関連付けられており、動きモジュール２０４はそのジェスチャー判定のためにこの信頼性レベルを引き出すことができる。各パラメーターに重みおよびその信頼性レベルを与えることもでき、ジェスチャー全体が行われていることの信頼性レベルを判定するために、重み付け技法によってこの信頼性レベルを使用することができる。
【０１０５】
[00131]  加えて、所与のジェスチャーについて動き特性の出力があってもよい。動き特性の例には、時間、速度、加速度、またはジェスチャーが作る角度が含まれる。アバター制御表示モジュール２０９は、動き特性をアバターについての画像データー２１９に組み込むことができる。
【０１０６】
[00132]  一実施形態では、動きモジュール２０４は、 認識されたジェスチャーおよび他の動きを追跡する経時入力アーカイブを維持する。例えば、モーション・キャプチャー・ファイルを、アプリケーションのセッションまたはインスタンス（例えば、ゲーム）のスケルトン・データー変化に対してセーブすることができる。一例では、動きモジュール２０４は、隠れマルコフ・モデルを実装し、モデル化されるシステムは、未知のパラメーターを有するマルコフ・プロセスであると仮定される。このプロセスでは、現在の状態が、今後の状態を判定するために必要な任意の過去の状態情報をカプセル化するので、この目的のために他の過去の状態情報を維持しなくてもよい。未知のパラメーター、および隠れているパラメーターは、観察可能なデーターから判定される。
【０１０７】
[00133]  動きモジュール２０４が分析するために、対応するフィルターが含むジェスチャーおよびパラメーターの例は、本技術の１つ以上の実施形態によって使用することができる図７におけるユーザーのより簡略化されたスケルトン・マッピング７００を参照して、例示の目的で設けられている。ユーザーのスケルトン・マッピング例７００は、オーディオビジュアル・データー・キャプチャー・システム６０によって取り込まれる動き追跡データー２０５から生成されているとよい。この実施形態では、種々の関節および骨が識別される。即ち、各指７０１ａ〜７０１ｊ、各手７０３ａ、７０３ｂ、各手首７０２ａ、７０２ｂ、各前腕７０４ａ、７０４ｂ、各肘７０６ａ、７０６ｂ、各二頭筋７０８ａ、７０８ｂ、各肩７１０ａ、７１０ｂ、各臀部７１２ａ、７１２ｂ、各腿７１４ａ、７１４ｂ、各膝７１６ａ、７１６ｂ、各前肢７１８ａ、７１８ｂ、各足７２０ａ、７２０ｂ、頭部７２２、胴体７２４、脊柱の上端７２６および下端７２８、およびウェスト７３０が識別される。更に多くのポイントを追跡する場合、鼻や目というような、顔の個々の特徴というような、追加の特徴を識別することもできる。追跡するデーターが多い程、更に詳細なジェスチャー、または唇をすぼめるというような更に繊細な動きを追跡することができる。しかしながら、追跡するデーター変化が多い程、アバターの表示が遅くなる可能性もある。
【０１０８】
[00134]  他のジェスチャー例に、「踵上げジャンプ」(heel lift jump)がある。この場合、ユーザーは、彼の踵を地面から上げるが、彼のつま先を付けたままにすることによって、このジェスチャーを行うことができる。あるいは、ユーザーは空中にジャンプすることもでき、この場合彼の両足７２０は完全に地上から離れている。本システムは、肩７１０、臀部７１２、および膝７１６の角度関係を分析することによって、このジェスチャーについてスケルトンを解析し、これらが、真っ直ぐに直立するときと等しい並び(alignment)の位置にあるか否か調べることができる。次いで、これらのポイントならびに上下の脊椎点７２６および７２８を監視して、あらゆる上方向への加速度を求めることができる。十分な加速度の組み合わせがあると、ジャンプ・ジェスチャーをトリガーすることができる。
【０１０９】
[00135]  この「踵上げジャンプ」ジェスチャーを想定した場合、パラメーターは、このジェスチャーをトリガーするためには、ユーザーの肩７１０、臀部７１２、および膝７１６の何らかの組み合わせが、どの位速く上に動かなければならないかを決定する前述の加速度しきい値、ならびに、ジャンプをまだトリガーすることができる肩７１０、臀部７１２、および膝７１６の間の並びの最大角を含むことができる。出力は、確実度レベル、およびジャンプの時点におけるユーザーの身体の角度を含むとよい。
【０１１０】
[00136]  禁止行為またはジェスチャーの例は、立てた中指を除く拳とすることができる。これは、相手に中指を立てる(flipping someone off or flipping someone the bird)と呼ばれることもある。動きモジュール２０４は、１本以上の指７０１ａから７０１ｊまでに関して動きの変化を判定することができる。一例では、画像キャプチャー・システム６０は、開いた位置または閉じた位置に対応して、指毎に０または１のビットマスクの値を割り当てる。「相手に中指を立てる」ポーズに対するジェスチャー・フィルターは、指の身体部分にリンクされているデーター２０５の部分を調べて(traverse)、どの指が開いており、どの指が閉じているか判断する。手の中指だけが立てられている、即ち、「開いている」ことに応答して、対応するジェスチャー・フィルター２０６は、このジェスチャーを描写するのを回避するために、アバターの表示の変更をトリガーするのに十分高い確率を示す信頼性レベルを返す。
【０１１１】
[00137]  動きモジュール２０４は、中指を立てるジェスチャー・フィルターと関連した禁止ジェスチャー・ライブラリー・モジュール２１０にリンクする。禁止ジェスチャー・ライブラリー・モジュール２１０の処理は、変更のための１つ以上の選択肢を含むことができる。１つの選択肢は、単なる省略、即ち、立てた指を表示しないことである。立てた指を省略すると、拳の表示のみを残すことができる。言い換えると、指を立てる動きは、アバターの表示のための画像データー２１９の中では表現されなくすることができる。他の選択肢は、ディスプレイ上で禁止ジェスチャーを視覚的に隠すフィルタリング技法を適用することである。
【０１１２】
[00138]  本技術と共に使用することができる画像キャプチャー・システムおよびその処理についての更に詳細な情報については、以下の出願を参照することができる。２００９年５月２９日に出願された米国特許出願第１２／４７４，６５５号、"Gesture Tool"（ジェスチャー・ツール）、ここで引用したことにより本願にもその内容全体が含まれるものとする。２００９年４月１３日に出願された米国特許出願第１２／４２２，６６１号"Gesture Recognizer System Architecture"（ジェスチャー認識システムのアーキテクチャー）、ここで引用したことにより本願にもその内容全体が含まれるものとする。２００９年２月２３日に出願された米国特許第１２／３９１，１５０号"Standard Gestures"（標準的なジェスチャー）、ここで引用したことにより本願にもその内容全体が含まれるものとする。
【０１１３】
[00139]  図８Ａは、アバター８０１の表示において禁止ジェスチャーを視覚的に隠すフィルタリング技法の例を示す。このような技法の一例は、図８Ａに示されているモザイク(pixelation)である。立てた中指を含むアバター８０１の左手８０３ｂは、種々の色または中間色８０５の画素で覆われており、禁止ジェスチャーが画像では隠されるようになっている。
【０１１４】
[00140]  他の選択肢は、代わりに他の動きまたは姿勢と交換することである。禁止ジェスチャー・モジュール２１０は、交換画像データー処理命令２１２を含むことができ、または交換画像データー処理２１２に対する命令を有するルーチンをコールすることができる。禁止ジェスチャー・モジュール２１０は、プログラミングの優先度によって指令されることがあると、この処理２１２にリンクされる。
【０１１５】
[00141]  図８Ｂは、禁止ジェスチャーと置き換えるためにスケルトン・モデル例に適用される交換画像データーの一例を示し、図８Ｃは、図８Ｂにおける例の交換画像データーを表示するように更新されたアバターを示す。このジェスチャーについての動きデーターは、異なる、不快感が少ない、アバターの動きデーターと置き換えられる。この例では、手を振ることが、相手に中指を立てることと交換される。手を振る動作を生成するために、「録画された」または格納されたアニメーション・データー（例えば、モーション・キャプチャー・ファイル）が用いられる。一例では、指の動きは、それらと関連した関節に対する「開く」または「閉じる」という表現にかなり制限され、指の関節の位置を示すためにビット値が使用される。左手の指に対するデーター構造は、これらが全て広げられるように指定される。この例は、図８Ｂに示されるスケルトン・データー・モデルの上半分８０７において反映され、手を振るために、スケルトン指関節７０１ｆ〜７０１ｊは左手７０３ｂにおいて開いている、即ち、広げられている。図８Ｃにおける対応するアバター８０１は、「関節」８０４ｆ〜８０４ｊによって表されるように、彼のモデルに対して更新されたスケルトン指データーと一致して、彼の左手８０３ｂの指を振る。加えて、アバターの手首の関節８０２ｂ、前腕８０４ｂ、肘８０６ｂ、二頭筋８０８ｂ、および肩の関節８１０ｂは、図８Ｂにおけるユーザーのスケルトン・モデルの対応する関節７０２ｂ、７０４ｂ、７０６ｂ、７０８ｂ、および７１０ｂの動きを真似する。
【０１１６】
[00142]  禁止ジェスチャーまたは禁止行為は、姿勢自体ではなく、キャプチャー・エリアの中にある他の物体との相互作用であることもある。図９Ａは、２人のユーザーについてのスケルトン・モデル・データーによって例示された、禁止相互作用の一例を示す。図９Ａに示されている例では、モデル９０４と関連したユーザーは、女性アバターによって表されている。彼女のスケルトン・データー・モデル９０４は、彼女の胸部に禁止ゾーン９５２を含む。禁止ゾーンは、モデルに関して定められる表面または空間の広がりとすることができる。女性アバターの胸部以外では、このような禁止ゾーンの他の例には、男性または女性アバターいずれもの生殖領域がある。これらの禁止エリアは、卑猥なジェスチャーが行われそうな領域であり、ゲームや業務用アプリケーションというような、アバターを使用する多くのアプリケーションにおいて、一般的に適切さを欠いている。
【０１１７】
[00143]  一例では、異なるユーザー、およびこれらのユーザーの内1人について定められた禁止ゾーン９５２と関連付けられている深度データーに基づいて、直接動き追跡処理(straight-through motion tracking processing)が行われようとしている場合、スケルトン・モデル９０２、例えば、この場合男性ユーザーが女性アバター９０４の禁止ゾーン９５２における不適切な接触を表す。
【０１１８】
[00144]  図９Ｂは、２人のユーザーについてのスケルトン・モデル・データーによって例示された、図９Ａの禁止相互作用の例について、動きデーターの形態とした画像データーを交換する例を示す。この例では、動きモジュール２０４は、ジェスチャー・フィルター２０６をコールする、または処理自体を実行して、他の場面のオブジェクト、この場合は不快にする手を、禁止ゾーン９５２の外側にマッピングし直すことができる。一例では、力ベクトル（同じ拡縮率では描かれておらず、角度も正確には描かれていない）によって動きを表し、ベクトルｆ２は、肩の関節２が上に向かってやや右よりに動いたことを示す。ベクトル力ｆ１８は、上方向の動きおよび肘関節ｊ１８の右への並進を示す。ベクトル力ｆ２０は、上向きの動きおよび手首関節ｊ２０の右への並進を示す。そして、力ベクトルｆ２２（図面では見やすくするために大きくそして広くなっているが、大きさを表すのではない）は関節ｊ２２を押し上げる。これは、指関節（knuckle)即ち指の関節が上および右に移り、スケルトン・モデル９０２と関連した手が今ではユーザー９０５の肩の上に載っていることを表す。この異なる動きのデーター（例えば、モーション・キャプチャー・ファイルに格納することができるようなデーター）の交換は、禁止ゾーン９５２と関連した禁止ジェスチャー・モジュール２１０と関連した交換ライブラリー処理モジュール２１２において定めることができる。交換動き処理を組み込むために、アニメーション・ブレンディングおよびリマッピング技法を使用することもできる。ブレンディングまたはリマッピングによっていくらかの遅延が生ずる場合もある。一般に、同様の動作を使用する場合、交換動作を実施するタイミングは、元のジェスチャーを表示するタイミングと同様である。動作間における類似性の一例では、同じ身体部分を使用している。他の例では、禁止ゾーンに近いエリアと相互作用することである。中指のジェスチャーの代わりに、掌または手を振る様子を表示することは、同様の身体部分を使用する適した動作の一例である。手を振る例では、５本の指全てを広げることを命令すると、中指だけを立てる場合とほぼ同じ時間量がかかる。接触を胸部ではなく肩に移すことは、動作のタイミング・フローを過度に混乱させないように、位置をある距離内に抑える例である。
【０１１９】
[00145]  アニメーション・ブレンディングおよびリマッピングに関する更なる情報については、２００９年５月２９日に出願された、SYSTEMS AND METHODS FOR APPLYING ANIMATIONS OR MOTIONS TO A CHARACTER（アニメーションまたは動きをキャラクターに適用するシステムおよび方法）と題する米国特許出願第１２／４７５４２２号（発明者：Jeffrey Margolis, Kathryn Stone Peres, およびAlex Kipman)、および２００９年５月２９日に出願された、EXTENDING STANDARD GESTURES（標準的なジェスチャーの拡大）と題する米国特許出願第１２／４７５，２９５号（発明者：Kathryn Stone Perez)を参照のこと。
【０１２０】
[00146]  他の実施形態では、全てのプレーヤーは、同じキャプチャー・システムによってローカルに取り込まれない。離れたプレーヤーが、動画化された場面のコンテキスト内において、卑猥な行為を行うかもしれない。例えば、ユーザーが、彼の腕を伸ばして、場面の中にいる他のプレーヤーのアバターの禁止ゾーンに接触するかもしれない。離れた場所におけるアバターの相互作用に対処するときには、受信されたデーターを異なる形態にすることができる。
【０１２１】
[00147]  例えば、クラウド計算環境（例えば、３７０）では、ローカル画像キャプチャー・システムが、それ自体によってまたはゲーム・コンソール（例えば、５２）のような追加の処理能力によって、動き追跡データーをインターネットを介して、図４におけるように１つ以上のサーバーに送り、このデーターは、ユーザーの動き追跡データーとすることができ、モデル更新およびアバター更新によって、その処理能力向上を補助するために深度データーを含む。または、このデーターは、取り込まれた最新の行為によって既に更新されている、ユーザーについてのモデル・データーであってもよい。
【０１２２】
[00148]  他の例では、ユーザーについてのモデル・データーは、アバターについてのモデル・データーと同じである。例えば、アバターは、ユーザーの体形を現実的な表現である。他の例では、ユーザーのモデル・データーが、アバターのモデルにマッピングし直されることも可能である。前述のように、図１Ａおよび図１Ｂにおけるユーザー１８は、少年または１０代の若者であり、彼のアバター・ボクサー６４と同じ身長や体格ではない。受けられる動き追跡データーは、アバターについてのモデル・データーに関するのであってもよい。また、アバターについての動き追跡データーは、ユーザーがアバターを制御するときに彼の身体の動きを使用するのではなく、キーボード、マウス、トラックボール、ジョイスティック、ゲーム・パッドというようなデバイス、または他のものを使用するシステムから受けることもできる。動き追跡データーは、アバターのモデルを含むことができ、またはアバターについてのモデル・データーを参照する更新を含むことができる。アバターについてのモデル・データーは、ユーザーについてのモデル・データーと同じように、マシン表現可能な形態で構造化することができる。例えば、その身体部分は、現ベクトル(current vector)またはそれらに作用する回転を表す、関節および骨のデーター構造にすることもできる。加えて、異なるアバター・データー構造が、互いにそして場面データーから区別するために、プレーヤー・インデックスを含むこともできる。
【０１２３】
[00149]  例示の目的のためだけに図２に戻ると、アバターについてのモデル・データーを受け取る一実施形態において、動きモジュール２０４は、モデル・データーを処理して、モデル追跡データーに基づいて、禁止ジェスチャーがアバターによって行われているか否か判断する。具体的には、場面データー２１８にアクセスすることができる動きモジュール２０４がアバター・モデルのデーター構造を調べて、その禁止ゾーンを判断し、その身体部分が現在または以前にどのように位置付けられていたか判断する。これは、モーション・キャプチャー・ファイルに取り込まれていてもよい。動きモジュール２０４は、ジェスチャー・フィルター２０６を適用して、禁止ジェスチャーが行われているか否か検出する。行われている場合、禁止ジェスチャー・ライブラリー・モジュール２１０がコールされ、アバターのモデルを処理して、ジェスチャーを表す画像データーを変更する。これは、フィルタリング、省略、または交換のいずれによってでもよい。
【０１２４】
[00150]  また、動きモジュール２０４は、他のアバターまたは画面のオブジェクトとの相互作用も判断することができる。図９Ａおよび図９Ｂの例では、動きモジュール２０４は、場面に関するユーザー９０２の動き、およびキャプチャー・エリアの中におけるユーザー９０２の動きを追跡し、彼の腕が、ユーザー９０４のアバターについてのモデル・データーにおいて示されている禁止ゾーン９５２上にあることを認識することができる。この例では、ユーザー９０４は、ユーザー９０２から離れた場所でプレーしている。
【０１２５】
[00151]  戦争ゲームの他の例では、ユーザーのアバターが殺されたとき、そしてユーザーがゲームを止めるとき、画面上のアバターが地面に倒れている場合がある。地面上にあるアバターは、動きモジュール２０４によって、アバターおよび場面データー２１８の処理のために、検出することができる。例えば、場面データー２１８の中に死んだアバターの周囲に文字枠と、それと関連付けられたプレーヤー・インデックスがあり、このアバターを生き残っているアバターおよび背景から区別することができる。他のインアクティブなアバターに対してゲームの中に未だ残っているユーザーの他のアバターの不快なジェスチャーを表示するのを避けるために、交換ライブラリー・モジュールを使用することができる。例えば、１つのジェスチャーが、実際のプレーヤー死んだアバターを跨いで立っており、彼の膝を曲げたり伸ばしたりして、不快なやり方で、または不快と考えられる他の模した動きでこのアバターに接触していることもあり得る。このような場合、交換ライブラリー・モジュール２１２は、脚を、直前の動きの方向とは逆に、立ち上がっている姿勢における他方の脚と同じ身体の側に持って行くために実行することができる。
【０１２６】
[00152]  望ましければ、更に他の交換画像データーの処理も行うことができる。例えば、生き残っているアバターが死んだ身体からある距離以内にある間に、足を動かさずに膝を折り曲げたことを検出した場合、アバターを立ったままにしておくことができる。動きがないことによって、不快な行為を行うプレーヤーが、卑猥な行為ではなく、ゲームの行為に戻るように促すことができる。
【０１２７】
[00153]  図１０、図１１、および図１２の方法の実施形態について、それぞれ、図２の機能コンピューター実装アーキテクチャーの実施形態のコンテキストで論ずるが、これは例示を目的とするのであって、限定ではない。
【０１２８】
[00154]  図１０は、アバターのジェスチャー表示を制限する方法１０００の実施形態のフローチャートである。動きモジュール２０４は、アバターのジェスチャーが１組の禁止ジェスチャーの内１つを描写するか否か判断する（１００２）。たとえば、動きモジュールは、動き追跡データーに基づいてこの判断を下すことができる。ジェスチャーが１組の禁止ジェスチャーのものであることに応答して、動きモジュール２０４は、アバターのジェスチャーを表す画像データーを変更する（１００４）。ジェスチャーが１組の禁止ジェスチャーの内の１つではない場合、動きモジュール２０４は、ジェスチャーを表す画像データーを、アバターによる表示のために含ませる。アバターのジェスチャーを表す画像データーの例には、アバターの表示の更新を制御するために使用されるモデルに関する動き追跡データーがある。
【０１２９】
[00155]  図１１は、アバターのジェスチャー表示を制限する方法１１００の他の実施形態のフローチャートである。動きモジュール２０４は、アバターのジェスチャーが１組の禁止ジェスチャーの内１つを描写するか否か判断する（１００２）。ジェスチャーが１組の禁止ジェスチャーの内の１つではない場合、動きモジュール２０４は、アバターによるジェスチャーを表す画像データーを、表示のために含ませる（１００６）。例えば、動きモジュールは、アバター・プロファイル２１４の画像データーを更新する。
【０１３０】
[00156]  ジェスチャーが１組の禁止ジェスチャーのものであることに応答して、動きモジュール２０４は、アバターの禁止ジェスチャーを表す画像データーが、他のコンピューターに、またはネットワークを介して送信されているか否か判断する（１１０４）。送信されようとしている場合、動きモジュール２０４は、送信用データーにおいて、アバターのジェスチャーを表す画像データーを変更する（１００４）。アバター制御システム２０２は、ユーザーに、送信されたバージョンが変更されたことを通知しながら、ユーザーのコンピューターに直接またはローカルに接続されているディスプレイ（例えば、図１Ａおよび図１Ｂにおけるディスプレイ５６）上にジェスチャーを表示し続ける。例えば、ウィンドウ上にもっと小さなウィンドウを表示することができ（例えば、ピクチャー・イン・ピクチャー表示）、この小さい方のウィンドウが、アバターのジェスチャーの送信されたバージョンを表示することができる。
【０１３１】
[00157]  図２の実施形態において、アバター・プロファイル２１４は、画像データーの異なるバージョン、即ち、禁止ジェスチャーを含むローカル・バージョン２１９ｌと、ディスプレイ上におけるその描写を回避するために禁止ジェスチャーについての画像データーの変更を含む送信バージョン２１９ｉとを格納することができる。
【０１３２】
[00158]  ユーザーが、禁止ジェスチャーを含むアプリケーションのセッション、例えば、送信されなかったローカル・コピーを不揮発性メモリーに格納する、または記録するという状況が生ずる可能性がある。後に、彼は、他の者がそれにアクセスできるように、それを共有サイトにアップロードすることを決断する。一実施形態では、動きモジュール２０４は、ユーザーまたはアバター、あるいは双方のモデルについての動き追跡データーをセッション全体の間格納する。例えば、モデル・データーにおける変化を時間順に保管して、ベクトルおよび回転で表すことができるような変化を保存して再生できるようにする。セッションをセーブするというメッセージまたは指示に応答して、セッション全体についての動き追跡データーが、ビデオ・ファイルと共にセーブされる。
【０１３３】
[00159]  ビデオ・ファイルをオペレーティング・システム３１８から送信するというメッセージまたは指示に応答して、アバター制御システム２０２の動きモジュール２０４は、そのセッションについての動き追跡データーを再生または処理して、禁止ジェスチャーがないかチェックする。禁止ジェスチャーが検出された場合、アバターのジェスチャーを表す画像データーの変更が行われる。
【０１３４】
[00160]  あるいは、またはこれに加えて、受信側のシステムの動きモジュール２０４は、そのセッションの間に保管された動き追跡データーを処理して、あらゆる禁止ジェスチャーについてチェックする。
【０１３５】
[00161]  他の実施形態では、動き追跡データーがないビデオ・ファイルのみがセーブされる場合、このビデオ・ファイルは生の画像データーとして扱うことができ、アバターの各々にモデルが生成され、これらのいずれかが禁止ジェスチャーを行っているか否か判断する。
【０１３６】
[00162]  動きモジュール２０４は、画像データー２０５のソースを、オーディオビジュアル・データー・キャプチャー・システム６０からのもの（２０５ｌ）、またはインターネット２０３のようなネットワークを介して他のコンピューターから受信されたもの（２０５ｉ）として、追跡することができる。画像ジェスチャー・データーが送信用でない場合、動きモジュール２０４は、禁止ジェスチャーを表す画像データーが、他のコンピューターから受信されたのか、またはローカルに生成されたのか判断する（１１０６）。他のコンピューターから受信されたのではなく、送信用でもない場合、この実施形態では、動きモジュール２０４は、アバターによるジェスチャーを表す画像データーを表示のために含ませる（１００６）。例えば、プロファイルがアバター表示制御モジュール２０９によってアクセスされるときに、アバター・プロファイル２１４を、ジェスチャーの表示用に更新する。禁止ジェスチャーが他のコンピューターから受信されたのである場合、動きモジュール２０４は、アバターのジェスチャーを表す画像データーを変更し（１００４）、禁止ジェスチャーがその元の形態で表示されないようにする。一般に、この変更は、表示されるジェスチャーが、禁止ジェスチャーよりも不快でないようにする。
【０１３７】
[00163]  図１２は、アバターのジェスチャーを表す画像データーを変更する方法１２００を示す。図２のシステムを再度例示のコンテキストのみとして使用すると、動きモジュール２０４は、交換画像データーがこの禁止ジェスチャーと関連があるか否か判断する（１２０２）。例えば、動きモジュール２０４は、データーベースをサーチするか、または禁止ジェスチャー・ライブラリー２１０およびその関連する交換ライブラリー２１２のリンクリストを調べることができる。関連した交換があることに応答して、動きモジュール２０４は、禁止ジェスチャーを、交換画像データーと、アバターの画像データーにおいて置き換える（１２０４）。例えば、身体部分（１つまたは複数）についての画像データー２１９において、動き追跡データーを変更する。例えば、動きモジュール２０４は、動き追跡データーを含む動きデーターを、ジェスチャーについての画像データーにおいて、アバターについての異なる動きデーターと置き換える。先に論じたように、検出される禁止ジェスチャーの一例は、中指を立てたことを除く掌とすることができる。リンクされている交換画像または動きデーターは、通例描写される、指を立てない通常の拳、または図８Ｂおよび図８Ｃにおいて開示されたような手を振る動作とすることができる。
【０１３８】
[00164]  関連した交換画像データーがないことに応答して、動きモジュール２０４は、ジェスチャーを表す画像データーに対してフィルタリング技法を実行し（１２０６）、禁止ジェスチャーを視覚的に隠す。例えば、図８Ａにおけるモザイクのオーバーレイ８０５を参照のこと。
【０１３９】
[00165]  随意な選択肢として、動きモジュール２０４は、禁止ジェスチャーを行いつつユーザーによって生成された音声データーを編集すること（１２０８）ができる。このような編集の例には、オーディオ全体を切除すること、または音声認識を使用して間投語句を削除することが含まれる。
【０１４０】
[00166]  本技術は、その主旨や本質的な特性から逸脱することなく、他の特定形態においても具体化することができる。同様に、モジュール、ルーチン、特徴、属性、方法、およびその他の態様の特定の命名および区分は、必須ではなく、本技術またはその特徴を実現するメカニズムは、異なる名称、分割、および／またはフォーマットを有してもよい。更に、当業者には明白であろうが、開示された実施形態のモジュール、ルーチン、特徴、属性、方法、および他の態様は、ソフトウェア、ハードウェア、ファームウェア、またはこれら３つの任意の組み合わせで実現することができる。勿論、モジュールが一例であるコンポーネントがソフトウェアとして実現されるときはいつでも、このコンポーネントは単体のプログラムとして、もっと大きなプログラムの一部として、複数の別個のプログラムとして、静的または動的にリンクされたライブラリーとして、カーネル・ロード可能なモジュールとして、デバイス・ドライバーとして、および／または当業者に現在知られているまたは今後知られることになるあらゆる他の方法およびその内の任意のものとして実現することができる。
【０１４１】
[00167]  以上の詳細な説明は、例示および説明を目的として提示された。これは、網羅的であることも、開示された技術を開示された形態そのものに限定することを意図するのではない。多くの変更や変形が、以上の教示に照らして、可能である。記載された実施形態は、本技術の原理およびその実用的な用途を最良に説明し、それによって当業者が本技術を種々の実施形態において、そして個々の考えられる使用に適するような種々の変更と共に、最良に利用することを可能にするために選択されたのである。更に、本明細書において用いられた文言は、主に読みやすさのためそして教育的な目的のために選択されたことは、注記してしかるべきであろう。主題は、構造的特徴および／または方法論的動作に特定の文言で記載されたが、添付されている特許請求の範囲において定められている主題は、必ずしも、前述した特定の特徴や動作には限定されないことは理解されてしかるべきである。むしろ、先に記載した特定の特徴および動作は、特許請求の範囲を実現する形態例として、開示したまでである。
【図１Ａ】
0005865357.tif 000002
【図１Ｂ】
0005865357.tif 000003
【図５Ａ】
0005865357.tif 000004
【図５Ｂ】
0005865357.tif 000005
【図６Ａ】
0005865357.tif 000006
【図６Ｂ】
0005865357.tif 000007
【図６Ｃ】
0005865357.tif 000008
【図６Ｄ】
0005865357.tif 000009
【図７】
0005865357.tif 000010
【図８Ａ】
0005865357.tif 000011
【図８Ｂ】
0005865357.tif 000012
【図８Ｃ】
0005865357.tif 000013
【図２】
0005865357.tif 000014
【図３Ａ】
0005865357.tif 000015
【図３Ｂ】
0005865357.tif 000016
【図４】
0005865357.tif 000017
【図９Ａ】
0005865357.tif 000018
【図９Ｂ】
0005865357.tif 000019
【図１０】
0005865357.tif 000020
【図１１】
0005865357.tif 000021
【図１２】
0005865357.tif 000022