ジェスチャカタログ生成および認識
【課題】ジェスチャのカタログを生成し、ジェスチャを認識する方法と装置を開示する。
【解決手段】サンプルモーションデータを用いてジェスチャを検出する。エネルギー値と基準値とを計算する。エネルギー値が静的エネルギー閾値よりも小さいなら、基準値を更新する。更新された基準値にもとづいてサンプルモーションデータを調整する。所定数のサンプルにわたって局所分散を計算する。局所分散が記録を閾値を超えるなら、サンプルモーションデータの値を記録する。局所分散のスカラー値が記録をドロップ閾値を下回るなら、サンプルモーションデータの記録を中止する。入力されたジェスチャにおけるサンプル値の全分散を計算することによって入力されたジェスチャを認識する。入力されたジェスチャと1以上のカタログジェスチャからのサンプル値を用いてメリットの数値を計算する。メリットの数値にもとづいて、入力されたジェスチャがカタログジェスチャと一致するかどうかを判定する。
【解決手段】サンプルモーションデータを用いてジェスチャを検出する。エネルギー値と基準値とを計算する。エネルギー値が静的エネルギー閾値よりも小さいなら、基準値を更新する。更新された基準値にもとづいてサンプルモーションデータを調整する。所定数のサンプルにわたって局所分散を計算する。局所分散が記録を閾値を超えるなら、サンプルモーションデータの値を記録する。局所分散のスカラー値が記録をドロップ閾値を下回るなら、サンプルモーションデータの記録を中止する。入力されたジェスチャにおけるサンプル値の全分散を計算することによって入力されたジェスチャを認識する。入力されたジェスチャと1以上のカタログジェスチャからのサンプル値を用いてメリットの数値を計算する。メリットの数値にもとづいて、入力されたジェスチャがカタログジェスチャと一致するかどうかを判定する。
【発明の詳細な説明】
【技術分野】
【0001】
[優先権主張]
本願は、2008年1月11日に出願された、本出願と譲受人が共通する同時係属の特許文献1の優先権を主張し、その開示内容全体をここに参照により組み入れる。
【特許文献1】United States Provisional Patent application No. 61/020,669 to Thomas Miller IV entitled "GESTURE CATALOGING AND RECOGNITION" (Attorney Docket Number SCEA07026US00)
【0002】
[技術分野]
本発明は、一般にコンピュータエンタテインメントシステムに関し、特にコンピュータエンタテインメントシステム用のコントローラのユーザ操作に関する。
【背景技術】
【0003】
通常、コンピュータエンタテインメントシステムは、手持ち型コントローラ、ゲームコントローラ、またはその他のコントローラを備える。ユーザすなわちプレイヤは、コントローラを使ってコマンドや他の指令をエンタテインメントシステムに送り、プレイ中のビデオゲームやその他のシミュレーションを制御する。例えば、コントローラには、ジョイスティックなどのユーザが操作するマニピュレータが設けられてもよい。ジョイスティックの偏向量はアナログ値からデジタル値に変換され、ゲームマシンコンソールに送られる。コントローラにはユーザが操作することができるボタンも備えられる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ジョイスティックは幅広く使用されているけれども、ジョイスティックコントローラは多少扱いにくく、使用するとき直観ではわかりにくい。
これらの背景技術の情報要素に鑑みて本発明がなされた。
【課題を解決するための手段】
【0005】
本発明のある態様は、コンピュータ読み取り可能なインストラクションが格納されたコンピュータ読み取り可能な媒体であって、前記コンピュータ読み取り可能なインストラクションが実行されるとき、ジェスチャ認識方法が実装されるように構成されている。前記方法は、a)複数のサンプル値をもつ入力ジェスチャにおいてサンプル値の全分散を計算するステップと、b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップとを含む。
【図面の簡単な説明】
【0006】
本発明が教示するものは、添付の図面と併せて、以下の詳細な説明を考慮することによって容易に理解される。
【0007】
【図1】本発明の一実施形態にしたがって作動するビデオゲームシステムを示す図である。
【図2】本発明の一実施形態にしたがって作られたコントローラの透視図である。
【図3A】図3Aは、本発明の一実施形態によるコントローラに用いられる加速度計を示す3次元概略図である。
【図3B】図3Bは、ピッチまたはロール軸について回転状態にある図3Aの加速時計を示す概略断面図である。
【図3C】図3Cは、並進加速状態にある図3Aの加速時計を示す概略断面図である。
【図3D】図3Dは、ヨー軸について回転加速状態にある図3Aの加速時計を示す概略平面図である。
【図3E】図3Eは、ヨー軸について回転加速状態にある図3Aの加速時計を示す概略平面図である。
【図4】本発明の一実施形態による方向依存のゼロ点加速時計の補正を説明する3次元概略図である。
【図5A】図1のビデオゲームシステム部のブロック図である。
【図5B】本発明の一実施形態によるビデオゲームシステムのコントローラ追跡方法を示すフロー図である。
【図5C】本発明の一実施形態によるビデオゲームシステムでのゲームプレイ中の、位置情報および/または方向情報の利用方法を示すフロー図である。
【図5D】本発明の一実施形態によるジェスチャを検出し準備する方法を示すフロー図である。
【図5E】本発明の一実施形態によるジェスチャを認識する方法を示すフロー図である。
【図6】本発明の一実施形態によるビデオゲームシステムを示すブロック図である。
【図7】本発明の一実施形態によるビデオゲームシステムにおけるセルプロセッサ実装のブロック図である。
【発明を実施するための形態】
【0008】
以下の詳細な説明には、説明のための多くの具体的な詳細事項が含まれるが、それらに対する多くの変更や修正も本発明の技術範囲に含まれることは、当業者であれば誰でも理解するであろう。したがって、以下に説明する本発明の好適な実施形態は、クレームされた発明の普遍性をなんら損なうことなく、また限定も行うことなく記載されている。
【0009】
本明細書に記述した方法、装置、スキームおよびシステムに関する様々な実施形態は、ユーザによるコントローラ本体そのものの移動、動きおよび/または操作の検出、取り込み、および追跡を提供する。ユーザによるコントローラ本体全体の検出された移動、動き、および/または操作は、プレイ中のゲームや他のシミュレーションの様々な局面を制御する付加コマンドとして用いられる。
【0010】
ユーザによるゲームコントローラ本体の操作の検出および追跡は、様々な態様で実現されうる。例えば、ある実施の形態において、加速度計やジャイロスコープなどの慣性センサをコンピュータエンタテインメントシステムと共に使用し、ハンドヘルドコントローラ本体の動きを検出してゲームの中のアクションにその動きを送ることができる。慣性センサを用いて、コントローラの多くの違った動き方、例えば上下動、ねじり、水平動、急な動き(jerking movements)、棒のような動き(wand-like motions)、急降下の動きなどを検出することができる。そのような動きは、様々なコマンドに対応し、ゲームの中のアクションに移されるようになされていてもよい。
【0011】
ユーザによるゲームコントローラ本体の操作を検出し追跡することによって、多くの違ったタイプのゲームやシミュレーションなどが実現できる。例えば、刀やライトセーバーで闘ったり、物の形をたどるために棒を使ったり、各種のスポーツイベントに参加したり、画面上での闘いやその他の遭遇戦等を行うことができる。
【0012】
図1を参照する。本発明の一実施形態にしたがって作動するように構成されたシステム100が図示されている。図示のように、システム100はコンピュータエンタテインメントコンソール102を含み、コンピュータエンタテインメントコンソール102は、ビデオゲームや他のシミュレーションの画像を表示するためのテレビまたは他のビデオディスプレイ104に接続される。ゲームまたは他のシミュレーションは、コンソール102に挿入されたDVD、CD,フラッシュメモリ、USBメモリ、または他の記録媒体106に保存できる。ユーザすなわちプレイヤ108は、ゲームコントローラ110を操作してビデオゲームまたは他のシミュレーションを制御する。図2に示されるように、ゲームコントローラ110は、ゲームコントローラ110の位置、動き、方向、または方向の変化に応じて信号を生成する慣性センサ112を備える。この慣性センサ112に加えて、ゲームコントローラ110は、既知の制御入力装置、例えば、ジョイスティック111、ボタン113、R1、L1などを備えていてもよい。
【0013】
操作中、ユーザ108はコントローラ110を物理的に動かす。例えば、コントローラ110は、ユーザ108によって、上下動、水平動、ねじり、ロール、振動、急な動き、または急降下など、どの方向に動かされてもよい。以下に説明する態様で慣性センサ112からの信号を分析することを通して、コントローラ110自体のこれらの動きが検出され撮像されてもよい。
【0014】
再び図1に戻り、システム100は、カメラまたはデジタルカメラのような他のビデオ撮像装置114を任意に具備してもよく、それらはコントローラ110がカメラ視野角116内に入るように配置される。画像撮像装置114からの画像の分析は、慣性センサ112からのデータの分析と併せて利用される。図2に示されるように、コントローラには、発光ダイオード(LED)202、204、206、208などの光源が任意に設けられ、画像分析による追跡を容易にするようになされてもよい。コントローラ110を追跡することを目的としたビデオ画像分析は、例えば、米国特許出願第11/382,037号の”SCHEME FOR DETECTING AND TRACKING USER MANIPULATION OF A GAME CONTROLLER BODY”(米国特許出願公報第2006-027086号として公開されている)に開示されており、その開示内容は参照により本明細書に援用される。コンソール102は、マイクロホン配列118などの音響トランスデューサ(変換器)を備えてもよい。コントローラ110はさらに、音響信号発生器210(例えば、図2に示されるようなスピーカ)も備え、コントローラ110の音響追跡を容易にする音源を、マイクロホン配列118や適切な音響信号処理に提供するようにしてもよい。そのような音響信号処理は、たとえば、米国特許出願第11/381,724号(米国特許出願公報第2006-0233389号として公開されている)に開示されており、その開示内容は、参照により本明細書に援用される。
【0015】
本発明のある実施の形態において、慣性センサ112からの信号は、コントローラ110に対する位置データおよび方向データの生成に用いられてもよい。そのようなデータは、コントローラ110の動きに関する多くの物理的側面、例えば、コントローラ110の場所の遠隔測定(テレメトリ)だけではなく、任意の軸方向の加速度や速度、傾斜、ピッチ、ヨー、ロールなどの計算に用いることができる。本明細書において、遠隔測定とは、一般に、対象の情報を遠隔で計測し、システムまたはシステムのデザイナやオペレータに報告することを言う。
【0016】
コントローラ110の動きを検出し追跡できることにより、コントローラ110について予め決められた動きが行われているか否かがわかる。すなわち、コントローラ110の特定の動きのパターンまたはジェスチャを、ゲームまたは他のシミュレーションの入力コマンドとして予め決めて用いることができる。例えば、コントローラ110を下方に急降下させるジェスチャを一つのコマンドとして定義し、捻るジェスチャを別のコマンドとして定義し、振動させるジェスチャをさらに別のコマンドとして定義できる。このように、ユーザ108が物理的にコントローラ110を動かす態様を、ゲームを制御する別の入力として使用してもよく、より刺激的で楽しい体験をユーザに与えることができる。
【0017】
例示として、またいかなる限定を行うことなく、慣性センサ112は加速度計であってよい。図3Aに、フレーム304に4点で、例えばスプリング306、308、310、および312によって伸縮自在に取り付けられた単一質量302の形態での加速度計300を示す。ピッチ軸およびロール軸(それぞれX軸、Y軸で表示)はフレームを横断する面内にある。ヨー軸Zは、ピッチ軸Xとロール軸Yを含む平面に対して垂直に置かれている。フレーム304は適切な形態でコントローラ110に取り付けられている。フレーム304(およびゲームコントローラ110)の加速および/または回転に応じて、質量302はフレーム304に対して相対的に変位する。スプリング306、308、310、312は、並進加速度および/または回転加速度の量と方向、および/またはピッチ、ロール、ヨーの角度に応じて伸縮する。質量302の変位、および/またはスプリング306、308、310、312の伸縮量が、例えば適切なセンサ314、316、318、320を用いて計測され、公知のまたは確定可能な方法でピッチおよび/またはロールの加速度量に応じた信号に変換される。
【0018】
質量の位置および/またはそれに働く力を追跡する方法には、抵抗歪みゲージ、音響センサ、磁気センサ、ホール素子、圧電素子、容量センサなど、多くの異なった方法がある。本発明の実施形態では、任意の数のセンサ、または任意のタイプ、任意の組み合わせのセンサを備えてもよい。例示として、またいかなる限定も行うことなく、センサ314、316、318、320は質量320の上方に配置されたギャップ封鎖電極とすることができる。質量と各電極センサ間の静電容量は、各電極に対する質量の位置変化に応じて変わることがある。各電極は、電極に対しての質量302の静電容量に関する信号(したがって質量の接近に関する信号)を生成する回路に接続されてもよい。あるいは、スプリング306、308、310、312は、伸縮に関連した信号を生成する抵抗歪みゲージを備えてもよい。さらにセンサ314、316、318、320は、静電容量センシングと歪みゲージセンシングの両方の組み合わせを実装してもよい。
【0019】
いくつかの実施形態では、フレーム304はコントローラ110に取り付けられるジンバルであってもよく、これによって、加速度計300はピッチ軸、ロール軸、および/またはヨー軸に対して一定の方向を保つことができる。このような態様にすると、実空間座標軸に対するコントローラ軸の傾きを考慮することなく、コントローラのX軸、Y軸、Z軸を実空間における対応軸に直接にマッピングすることが可能になる。
【0020】
図3B〜3Dは、加速度および/または回転の異なる条件下におけるばね306、308、310、312に対する異なる伸長と圧縮の例を示す。具体的には、図3Bは、フレーム304がY軸に関して回転したときの状況を示す。質量302に作用する重力のために、ばね306、310が伸長し、質量302はセンサ314、318に近づき、センサ316、320から遠ざかる。Y(ロール)軸に関する逆の回転は、同様にばね306、310を伸長させるが、質量をセンサ316、320に近づかせ、センサ314、318から遠ざける。同様に、X(ピッチ)軸に関する回転は、ばね308、312を伸長させ、回転の方向によっては、質力をセンサ314、316に近づかせ、センサ318、320から遠ざける。
【0021】
図3Cは、フレーム304が鋭く下方に(矢印で示すように)加速されるが、レベルは維持された状況を示す。この状況において、4つのばね306、308、310、312すべてが伸長し、質量は4つのセンサ314、316、318、320すべてに近づく。図3Dにおいて、フレーム304が左に(矢印で示すように)加速されるがレベルは維持される。この状況では、ばね306、308および312は伸長するが、ばね310は圧縮される。質量302はセンサ314、318から離れ、センサ316、320に近づくように動く。図3Dはフレーム304にZ(ヨー)軸に関する角加速度が与えられた状態を示し、この角加速度により、4つのばね306、308、310、312すべてが伸長し、質力302が4つのセンサ314、316、318、320から離れるように動く。図3B〜3Eからわかるように、フレーム304の異なる動きおよび/または方向によって、信号の特定の組み合わせが生成され、その信号はフレーム304(およびコントローラ110)の方向と動きを判定するために分析される。
【0022】
質量302に作用する外的な力がないとき、質量302のZ軸に沿った静止位置からの変位は、Z軸に沿った加速度の大きさにおおよそ比例する。検出器314、316、318、320は、質量302の移動に比例し、したがって、フレーム304(およびコントローラ110)のZ軸に沿った加速度に比例する信号を生成する。同様の方法で、センサからの信号は、X軸およびY軸に沿った加速度を導き出すために用いられる。重力が質量302に作用し、センサ314、316、318、320が非ゼロの信号を生成することがあることに留意する。たとえば、静止状態において、ジョイスティックコントローラにピッチもロールも適用されていないとき、Z軸が(重力によって決定される)垂直軸に割り当てられてもよい。質量302は、重力によって、重力のないと仮定した場合に想定される位置から変位する。結果として、変位センサは非ゼロ信号V0を生成する。これをここでは「ゼロ点」加速度信号と呼ぶ。センサ314、316、318、320からの生の信号を分析する前に、加速度信号Vからゼロ点加速度信号V0を差し引く。
【0023】
フレーム304(およびコントローラ110)がピッチおよびロールに関して同じ方位にとどまるなら、ゼロ点加速度信号V0は定数である。しかし、ゼロ点加速度信号V0はピッチおよびロール軸に関する回転量に依存する。本発明の実施の形態では、ゼロ点加速度信号V0に対するピッチとロールの影響を考慮に入れる。たとえば、図4は、チューブ軸Zに沿ってチューブ404内で質量402の動きが制約される単一軸加速度計400の状態を示す。ばね406が質量402をチューブ404の端部のキャップに接続する。センサ408は、たとえば、上述の静電容量センサである。もしチューブ軸Zが、チューブ404のピッチおよびロールのゆえに垂直方向Z’に関して角度θだけ(透視図で示すように)傾くと、「回転」ゼロ点加速度信号V0’がV0とθに関して次式のように予測される。
V0’=V0cosθ
θ=90度という極端な例では、V0’=0であることに留意する。
【0024】
角度θは一般にはピッチとロールの角度に依存する。これらの角度は個々のセンサからの信号によって判定される。チューブ軸Zに沿った方向の単位ベクトルzは、既知の初期方位(たとえば、加速度計の軸が垂直軸に沿った方向の単位ベクトルz’に割り当てられた初期方位)に対するピッチとロールの絶対的な値から構成される。初期方位は、加速度計400からの安定した信号を生成するジョイスティックコントローラの方位であれば任意の方向でよいことに留意する。単位ベクトルzとz’の間のドット積は、二つのベクトル間の角度θのコサインで与えられる。このドット積にゼロ点信号V0を乗じて好ましい補正ファクタを供給してもよい。補正ファクタはセンサ408から得られた加速度信号から差し引きされる。
【0025】
本センサの実施の形態において、いろいろなタイプの慣性センサデバイスを用いて6つの自由度(たとえば、X、Y、Zの並進とX、Y、Z軸に関する回転)の情報を供給することができる。6つの自由度に関する情報を供給する好適な慣性センサの例には、図3Aに示したタイプの加速度計、一つまたは複数の単一軸加速度計、機械的なジャイロスコープ、リングレーザジャイロスコープ、あるいはこれらの二つ以上の組み合わせが含まれる。
【0026】
独創的な方法にしたがって、センサからの信号を分析してビデオゲームプレイ中のコントローラの動きおよび/または方位を判定してもよい。そのような方法は、プロセッサ読み取り可能な記録媒体に格納され、デジタルプロセッサ上で実行される、プロセッサ実行可能なプログラムコード列として実装することができる。たとえば、図5Aに示すように、ビデオゲームシステム100は、コンソール102上のプロセッサ502を含む。プロセッサ502は、たとえばビデオゲームコンソールで一般に使われるタイプのマイクロプロセッサのような、任意の好適なデジタルプロセッサユニットであってもよい。プロセッサは、プロセッサ読み取り可能なインストラクションの実行を通して慣性分析部504を実装する。これらのインストラクションの一部は、メモリ506に格納される。あるいは、慣性分析部504は、ハードウエアたとえば特定用途向け集積回路(ASIC)で実装してもよい。そのような分析部のハードウエアはコントローラ110またはコンソール102に設けてもよく、あるいは、他の場所にリモートに設けてもよい。ハードウエア実装において、分析部504はプログラマブルであり、プロセッサ502、または、たとえばUSBケーブル、ワイヤレスコネクションあるいはネットワークで接続されたリモートに設置された他のソースからの外部信号に応答してもよい。
【0027】
慣性分析部504は、慣性センサ112によって生成された信号を分析し、コントローラ110の位置および/または方向の情報を利用するインストラクションを含むか、実装する。たとえば、図5Bのフローダイアグラム510に示すように、ブロック512に示すように慣性センサ112によって信号が生成される。ブロック514に示すように、慣性センサ信号を分析してコントローラ110の位置および/または方向に関する情報を決定する。ブロック516に示すように、位置および/または方向の情報はシステム100でビデオゲームプレイ中に利用される。
【0028】
ある実施の形態において、ゲームプレイ中のユーザ108のジェスチャのカタログを作り、ジェスチャを認識する際、位置情報および/または方向情報を用いてもよい。図5Cのフロー図520に示されるように、コントローラ110の経路は、ブロック522で示される通り、位置情報および/または方向情報を用いて追跡することができる。例示として、またいかなる限定を与えることなく、この経路には、いくつかの座標系に対するコントローラの質量中心位置を示す点セットが含まれてもよい。各位置ポイントは、一つ以上の座標、例えば、デカルト座標系におけるX,Y,Z座標で表されてもよい。経路上の各点が時刻と関連付けられていてもよく、これによって、経路の形状と経路に沿ったコントローラの進行の両方を監視することができる。さらに、前記セットの各点は、コントローラの方向を表すデータ、例えば、コントローラの質量中心回りの一つ以上の回転角などと関連付けられてもよい。さらに、経路上の各点は、コントローラの質量中心の速度および加速度、質量中心回りのコントローラの角回転率および角加速度率の各値と関連付けられてもよい。
【0029】
ブロック524に示されるように、追跡経路は、プレイ中のビデオゲームの状況に関連した既知のジェスチャおよび/または事前に記録されているジェスチャ508に対応する一つ以上の記憶された経路と比較されてもよい。分析部504は、ユーザを認識するか、または音声認証ジェスチャなどを処理するように構成されていてもよい。例えば、ユーザに特有のジェスチャを通して、分析部504によりユーザを特定してもよい。そのような特有のジェスチャは、メモリ506に保存されている事前に記録されたジェスチャ508に記録されて含められる。記録処理においては、任意に、ジェスチャの記録中に生成される音を保存してもよい。被計測環境がマルチチャネルの分析部でサンプリングされて処理される。プロセッサは、ジェスチャモデルを参照し、音声パターンまたは音響パターンに基づいて、高精度かつ高能率でユーザまたは物体を決定、認証、および/または特定できる。
【0030】
図5Aに示されるように、ジェスチャはメモリ506に保存される。ジェスチャの例として、ボールのような物を投げる、バットやゴルフクラブのようなものを振る、手押しポンプを押す、ドアまたは窓を開閉する、ハンドルまたは他の車両コントロールを回す、格闘家がパンチなどを出す、研磨(sanding)動作、ワックス掛けとふき取り、家のペンキ塗り、振動、おしゃべり、ロール、フットボール投げ、ノブを回す動き、3Dマウスの動き、スクロール、既知の輪郭を持った動き、記録可能なあらゆる動き、あらゆるベクトルに沿った前後の動き、すなわち空間内の任意の方向に沿ったタイヤの空気入れ、小道に沿った移動、正確な停止時間と開始時間を持った動き、ノイズフロア内やスプライン内などで記録、追跡および繰り返し可能なユーザ操作に基づく任意の時刻、などがあるが、これらに限定されない。これらのジェスチャはそれぞれ、経路データから事前に記録し、時間基準のモデルとして保存できる。経路が安定状態から外れると、その経路が除去処理によって保存ジェスチャと比較することができるという安定状態についての仮定から、経路と保存ジェスチャとの比較がスタートする。ブロック526において一致しなければ、分析部504はブロック522に戻ってコントローラ110の経路追跡を継続できる。経路(またはその一部分)と保存ジェスチャとの間で十分な一致があれば、528に示されるように、システム100の状態、たとえばゲームの状態を変えることができる。システムまたはゲームの状態の変化は、これらに限定されないが、中断、コントロール信号の送信、変数の変化などを含んでもよい。
【0031】
これがどのようにして起こるか、例を一つ示す。コントローラ110が経路の安定状態から外れたと判断すると、分析部504はコントローラ110の動きを追跡する。コントローラ110の経路が保存されているジェスチャモデル508に定義される経路と合致している間は、これらのジェスチャは「ヒット」であり得る。コントローラ110の経路が、いずれかのジェスチャモデル508から外れると(耐ノイズ設定内で)、そのジェスチャモデルはヒットリストから除去してもよい。各ジェスチャ参照モデルは、ジェスチャが記録される時間軸を備える。分析部502は、適切な時間指標で、コントローラの経路データを保存ジェスチャ508と比較する。安定状態条件が発生するとクロックをリセットする。安定状態から外れる(すなわち、ノイズしきい値外で動きが追跡される)と、ヒットリストには、可能性のあるジェスチャモデルすべてが入ってくる。クロックがスタートして、コントローラの動きがヒットリストと比較される。再び、時系列で見ると比較はたやすい。ヒットリスト内のいずれかのジェスチャがジェスチャの端に到達すると、それはヒットである。
【0032】
ある実施形態では、分析部504は、特定のイベントが発生する時間をゲームプログラムに通知してもよい。そのようなイベントの例には下記のものが含まれる。
【0033】
・加速度0点への到達で中断(X軸、Y軸、および/またはZ軸)
あるゲーム状況において、コントローラの加速度が変曲点で変化すると、分析部504は、ゲームプログラム内のルーチンに通知するかまたはルーチンを中断できる。例えば、ユーザ108は、コントローラ110を使ってフットボールシミュレーションゲーム内のクォータバックを表すゲームアバターを制御できる。分析部504は、慣性センサ112からの信号から生成される経路を介して(フットボールを表す)コントローラを追跡してもよい。コントローラ110のある特定の加速度変化は、フットボールが投げられたことを信号発信してもよい。このときに、分析部はプログラム内の別のルーチン(例えば、物理シミュレーションパッケージ)をトリガして、投てき点におけるコントローラの位置、速度および/または方向に基づき、フットボールの軌道をシミュレーションできる。
【0034】
・新しいジェスチャの認識で中断
【0035】
また、分析部504は一つ以上の入力で構成されてもよい。そのような入力の例を以下に示すが、これらに限定されない。
【0036】
・ノイズレベルの設定(X軸、Y軸またはZ軸)
ノイズレベルは、ゲーム中のユーザの手の震えを分析するときの基準許容誤差であってもよい。
【0037】
・サンプリングレート設定
本明細書において、サンプリングレートとは、分析部502による慣性センサからの信号のサンプリング頻度を言う。サンプリングレートは信号のオーバーサンプリングかまたは平均化に設定されてもよい。
【0038】
・ギアリング設定
本明細書において、ギアリングとは、概してゲーム内で起こる動きに対するコントローラの動きの比を言う。ビデオゲーム制御の文脈におけるこのような「ギアリング」の例は、2006年5月7日付米国特許出願第11/382,040号(米国特許出願公報第20060252477号として公開)に開示されており、その開示内容は参照により本明細書に援用される。
【0039】
・マッピングチェーンの設定
本明細書において、マッピングチェーンとはジェスチャモデルのマップを言う。ジェスチャモデルマップは特定の入力チャネルに対して(例えば、慣性センサ信号だけから生成される経路データに対して)、またはミキサ装置に形成されるハイブリッドチャネルに対して作成される。慣性分析部504と同様の2台以上の異なった分析部によって、3つの入力チャネルが供給される。具体的には、これらには、ここで述べた慣性分析部504、例えばその開示内容が参照により本明細書に援用される米国特許出願第11/382,034号の”SCHEME FOR DETECTING AND TRACKING USER MANIPULATION OF A GAME CONTROLLER BODY”(米国特許出願公報第20060256081号として公開)に開示されたビデオ分析部、および、例えばその開示内容が参照により本明細書に援用される米国特許出願第11/381,721号(米国特許出願公報第20060239471号として公開)に開示される音響分析部が含まれてもよい。これら分析部はマッピングチェーンを用いて構成することができる。マッピングチェーンは、分析部やミキサに対する設定ができるように、ゲームプレイ中にゲームによって交換することができる。
【0040】
再び図5A、ブロック502に戻る。当業者であれば、慣性センサ112からの信号を生成するには多くの方法があることは理解するであろう。とりわけ2〜3の例について図3A〜3Eを参照して説明する。ブロック504を参照して、ブロック502で生成されるセンサ信号を分析しコントローラ110の位置および/または方向に関係する情報を得るには多くの方法がある。例示として、またいかなる限定を行うことなく、位置および/または方向に関係する情報には、個別にまたは任意の組み合わせて以下のパラメータに関する情報が含まれるが、これらに限定されない。
【0041】
・コントローラの方向
コントローラ110の方向は、ある基準方向に対するピッチ、ロール、またはヨー角(例えばラジアン)で表されてもよい。コントローラ方向の変化率(例えば、角速度または角加速度)は、位置情報および/または方向情報に含まれていてもよい。慣性センサ112がジャイロスコープセンサを含む場合、コントローラの方向情報は、ピッチ角、ロール角、またはヨー角に比例した一つ以上の出力値の形で直接求めることができる。
【0042】
・コントローラの位置(例えば、ある基準フレームにおけるコントローラ110のデカルト座標X、Y,Z)
・コントローラのX軸速度、たとえば、コントローラ110のX軸に沿った位置の時間変化率
・コントローラのY軸速度、たとえば、コントローラ110のY軸に沿った位置の時間変化率
・コントローラのZ軸速度、たとえば、コントローラ110のZ軸に沿った位置の時間変化率
・コントローラのX軸加速度、たとえばX軸速度の時間変化率
・コントローラのY軸加速度、たとえばY軸速度の時間変化率
・コントローラのZ軸加速度、たとえばZ軸速度の時間変化率
【0043】
位置、速度および加速度に関して、位置情報および/または方向情報がデカルト以外の座標系で表されてもよいことに注意する。例えば、円柱座標系または球座標系を位置、速度、加速度のために使用してもよい。X軸、Y軸、Z軸に対する加速度情報を、例えば図3A〜3Eを参照して説明したような加速度計タイプのセンサから直接に求めてもよい。X速度、Y速度、Z速度における変化を決定するために、ある初期時刻からの時間に対してX加速度、Y加速度、Z加速度を積分してもよい。これらの速度は、初期時刻における既知の値であるX速度、Y速度、およびZ速度に速度変化を加えることで算出してもよい。コントローラのX変位、Y変位およびZ変位を決定するために、時間に対してX速度、Y速度およびZ速度を積分してもよい。X位置、Y位置およびZ位置は、初期時刻における既知のX位置、Y位置およびZ位置に変位を加えることで決定してもよい。
【0044】
・安定状態 Y/N
この特殊な情報はコントローラが安定状態にあるかどうかを示し、いずれの位置として定義することができ、また変化もする。好適な実施例では、安定状態にある位置とは、コントローラが、ユーザの腰とほぼ同じ高さにあっておおよそ水平方向に保持されているような位置としてもよい。
【0045】
・前回の安定状態からの時間
「前回の安定状態からの時間」は、概して、(上述したような)安定状態が最後に検出された以降に経過した期間の長さに関係するデータを指す。その時間の決定は、前に注目したように、実時間、処理サイクル、またはサンプリング周期で計算されてもよい。「前回の安定状態からの時間」のデータ時間は、ゲーム環境におけるキャラクタまたは物体のマッピングの正確さを確保するために、初期点に関するコントローラの追跡をリセットすることに対して重要である。このデータはまた、ゲーム環境でその後に(排他的にまたは包括的に)実行される可能性のある利用可能なアクションおよび/またはジェスチャの決定に対しても重要である。
【0046】
・認識された最後のジェスチャ
「認識された最後のジェスチャ」とは、概して、(ハードウェアまたはソフトウェアで実装可能な)ジェスチャ認識部505によって認識された最後のジェスチャを指す。後に認識される可能性のあるジェスチャまたはゲーム環境で起こる他のアクションに前回のジェスチャが関係し得るという事実に対して、認識された最後のジェスチャの特定は重要である。
【0047】
・認識された最後のジェスチャ時間
【0048】
上記の出力は、ゲームプログラムまたはソフトウェアでいつでもサンプリングできる。
【0049】
本発明の好ましい実施の形態によれば、コントローラ110で作られたジェスチャは、発明の方法にしたがって、カタログに入れられ、および/または、認識される。図5Dは、ジェスチャを検出し、それをカタログ作成と認識のために準備する方法530の一例を示すフローダイアグラムである。図5Dに示すように、慣性センサ112のようなセンサ、ビデオキャプチャデバイス114、またはイメージマイクロホンアレイ118(あるいはこれらの二つ以上の組み合わせ)からの入力データは、符号532で示すようにローパスフィルタされる。特に、当該入力データを約50%のナイキスト周波数でローパスフィルタしてもよい。符号534において、コントローラ110のエネルギーEは次のように計算することができる。
E=(1−Δt)E0+Δt・Dot(S−B,S−B)
ここで、Sは現在のサンプルベクトルであり、Bは基準ベクトルである。
Δtは、現在のフレームのタイムスタンプと以前のフレームのタイムスタンプの間の差。
E0は、最後のフレームからのエネルギー。
Dot(S−B,S−B)は、ベクトル差S−Bとそれ自身の間のドット積である。
【0050】
一例として、一般性を損なうことなく、サンプルベクトルSと基準ベクトルBの成分は、コントローラ110の動きのX、Y、Z成分とヨー量(Z軸に関する回転)を含んでもよい。さらに、サンプルベクトルSと基準ベクトルBの成分は、重力ベクトルのX、Y、Z成分とヨー成分を含んでもよい。重力ベクトルは、コントローラ110の参照フレームに関して重力の方向を示す。サンプルベクトルSと基準ベクトルBのX、Y、Z、およびヨー成分は、コントローラ110の位置、速度、加速度値である。これらの値は、たとえば、慣性センサ112、イメージセンサ114、マイクロフォンアレイ118、あるいはこれらの二つ以上の組み合わせによって生成される信号から取得される。
【0051】
静的エネルギー閾値は、試行錯誤によって調整される。コントローラ110のエネルギーがあらかじめ定められたある静的エネルギー閾値以下であるならば、符号536および538で示すように基準ベクトルが更新される。特に、基準ベクトルBの値は次式にしたがって新しい値に更新される。
B=(1−α)・B0+α*S
ここで、B0は以前のフレームからの基準ベクトルを表し、αは定数または変数の調整パラメータである。調整パラメータαを変えることで、ジェスチャの認識が終わったならば、基準値をより速くもとに戻すことができる。
【0052】
サンプルベクトルSは、符号540に示すように新しい基準に合わせるために調整される。特に、サンプルベクトルSの新しい値は次式で与えられる。
S=S−B
【0053】
基準値を更新する際、ユーザ108が、たとえば、椅子に座ったり、もたれかかったりした結果、自分の静止位置を変えたことで、コントローラ110の方向に変化があったことを考慮に入れる。
【0054】
入力データの局所分散(local variance;LV)は符号542で示すように所定数の分散サンプル(variance sample;VS)にわたって計算される。
LV=(VS・ΣS2+(ΣS)2)/VS2
【0055】
局所分散LVは、たとえば5サンプルのスライディングウインドウにわたって取られた分散であってもよい。局所分散はジェスチャの記録の開始と終了のために使うことができる。たとえば、平均局所分散のスカラ値があらかじめ定められたジェスチャ閾値よりも大きいならば、符号544に示すようにサンプルをジェスチャとして記録することを開始する。いったん平均局所分散LVがジェスチャ閾値よりも低く下がったならば、符号546に示すようにサンプルの記録を中止する。実施の形態によっては、異なるジェスチャ閾値を記録の開始と終了のために用いてもよい。
【0056】
記録を中止した後、符号548に示すように、記録されたジェスチャの全分散(total variance)をジェスチャの多くのサンプル(GS)にわたって計算する。特に、全分散TVは次式にしたがって計算される。
TV=(GS・ΣS2+(ΣS)2)/GS2
上記の式において、合計はジェスチャのサンプルGSにわたって取られる。
【0057】
一般的に、各サンプルは2以上の成分で形成されている。たとえば、コントローラの動きの各自由度に対して一つの成分である。全分散TVは、個々の分散成分の集合(サンプルSの各成分に対する分散成分について一つ)に分解することができる。符号550に示すように、全分散TVのスカラ成分はランクづけされ、パッドの軸が最大動きから最小動きへ順序づけされる。そのようなランクづけは、一つのジェスチャの間の異なる期間で異ならせてもよい。
【0058】
いったんジェスチャが記録されると、そのジェスチャはカタログに入れられ、符号552で示すように他のジェスチャに対する比較に使われる。あるいは、記録されたジェスチャは、符号554で示すようにジェスチャ認識のために、蓄積されたジェスチャのカタログと比較される。ジェスチャ認識の一例を、図5Eを参照して以下説明する。
【0059】
図5Eは、本発明の実施の形態に係るジェスチャ認識の方法560を示すフローダイアグラムである。入力されたジェスチャIGはジェスチャカタログにおける一つ以上のカタログジェスチャCGのそれぞれと比較される。あるいは、入力されたジェスチャIGは、ジェスチャカタログにおけるあらかじめ定められたカタログジェスチャCGの部分集合に対してのみ比較されてもよい。カタログジェスチャCGの部分集合をゲームロジックによって決定してもよい。ある実施の形態では、ユーザが生成したジェスチャとカタログ化されたジェスチャの間の重複を判定し、互いに近すぎるジェスチャにフラグ付けをしてもよい。そのようなジェスチャにフラグ付けをすることにより、あるジェスチャを他のジェスチャと間違うことを避けることができる。
【0060】
図5Eに示すように、スケールSが符号562に示すように計算される。
S=CGSC/IGSC
ここでCGSCはカタログジェスチャにおけるサンプルカウントを示し、IGSCは入力されたジェスチャIGに対するサンプルカウントを示す。
【0061】
このスケールは、入力されたジェスチャIGよりも著しく長いまたは著しく短いカタログジェスチャを取り除くために使われる。たとえば、特定のカタログジェスチャCGに対するスケールSが低い方の閾値(たとえば0.5)よりも小さいか、高い方の閾値1.5よりも大きいなら、このカタログジェスチャはスキップされ、ジェスチャ認識を次のカタログジェスチャに進める。
【0062】
符号564に示すように、カタログジェスチャを上記のように計算されたスケールSにより、たとえば線形補間によってスケールする。スケールSは、CGおよびIGにもとづき、どちらがより多くのサンプルをもつかに依存して調整される。CGとIGの内、短い方、すなわちサンプルが少ない方がスケールアップされる。
【0063】
符号566に示すように、入力されたジェスチャIGとカタログジェスチャCG間の相関(COR)が次に計算される。たとえば、相関CORは次のように計算される。
COR=COV(CG,IG)/(σcg・σig)
ここでσcgはカタログジェスチャCGのサンプルに対する標準偏差ベクトルを示し、σigは入力ジェスチャIGのサンプルに対する標準偏差ベクトルを示す。さらに、COV(CG,IG)はカタログジェスチャCGと入力ジェスチャIGの共分散を表し、たとえば、次式で与えられる。
COV(CG,IG)=(1/sc)・Σ(CGi−μcg)・(IGi−μig)
ここで、μcgはカタログジェスチャのサンプルの平均値であり、μigは入力ジェスチャのサンプルの平均値である。総和(sum)は、入力ジェスチャのすべてのサンプルにわたって取られる。
【0064】
相関CORにおけるスカラ値は、符号568に示すように、最終的なスカラ相関FCORを計算するための入力として使われる。FCORはCORの成分の重みづけ平均を用いて計算される。たとえば、上記のように計算された全分散ランクに対応する重みを用いて、CORのX、Y、Zおよびヨー成分のそれぞれに0、0.5、0.25、0.025の重みを適用してもよい。各ランクに関連づけられる重みは、入力されたジェスチャIGの間、時間とともに変化してもよい。
【0065】
符号570で示されるように、入力されたジェスチャIGの全分散ランクはカタログジェスチャに対する全分散ランクと比較される。異なる各分散ランクに対して、ペナルティがFCORに適用される。
【0066】
FCORの最大値は、符号572で示すように各カタログジェスチャの比較から決定される。符号574に示すように、もし最大FCORがあらかじめ定められた認識閾値RTよりも大きいならば、ジェスチャは、そのFCORに対応するカタログジェスチャとして認識される。
【0067】
本発明の実施形態によれば、上述のタイプのジェスチャ認識方法は、図6に示すようなビデオゲームシステムに実装することができる。具体的には、ビデオゲームシステム600は、プロセッサ601とメモリ602(例えば、RAM、DRAM、ROMなど)を備える。ある実施の形態では、ビデオゲームシステム600は、並列処理が実装されるのであれば、複数のプロセッサ601を備えてもよい。メモリ602はデータとゲームプログラムコード604を備え、上述のように構成された部分を備える。具体的には、メモリ602は上述したような保存コントローラ経路情報を含む慣性信号データ606を備えてもよい。メモリ602は、保存ジェスチャデータ608、例えば、ゲームプログラム604に関連した一つ以上のジェスチャを表すデータなどを含んでもよい。プログラムコード604は、たとえば、図5Dを参照して上述したようなジェスチャ検出、および/または、図5Eを参照して上述したようなジェスチャ認識を実装する命令を含んでもよい。
【0068】
システム600はさらに、入出力(I/O)装置611、電源(P/S)612、クロック(CLK)613およびキャッシュ614などの公知のサポート機能610を備えてもよい。装置600は任意に、プログラムおよび/またはデータ保存のためのディスクドライブ、CD−ROMドライブ、テープドライブなどの大容量記憶装置615を備えてもよい。コントローラは任意に、コントローラ630とユーザとの相互作用を容易にするために、ディスプレイ装置616とユーザインタフェース618を備えてもよい。ディスプレイ装置616は、テキスト、数値、グラフ記号や画像を表示する陰極線管(CRT)、またはフラットパネルスクリーンの形であってもよい。ユーザインタフェース618は、キーボード、マウス、ジョイスティック、ライトペンや他の装置を備えてもよい。また、ユーザインタフェース618は分析対象の信号を直接取り込むために、マイクロホン、ビデオカメラ、またはその他の信号変換装置を備えてもよい。システム600のプロセッサ601、メモリ602、および他の部品は図6に示すように、システムバス620を介して、互いに信号(例えばコード命令およびデータ)を交換してもよい。
【0069】
マイクロホン配列622は、入出力装置611を介してシステム600に接続されてもよい。マイクロホン配列は、約2〜約8個のマイクロホン、好ましくは約4個を、隣接のマイクロホンとは約4cm未満、好ましくは約1〜2cmの距離離間して備えてもよい。好適には、配列622のマイクロホンは無指向性マイクロホンである。オプションの撮像装置623(例えばデジタルカメラ)は、入出力装置611を介して装置600に接続されてもよい。カメラに機械的に接続された一つ以上の位置決めアクチュエータ625が、入出力装置611を介してプロセッサ601との間で信号を交換してもよい。
【0070】
本明細書では、「入出力装置」という用語は、概してシステム600との間および周辺装置との間でデータを送受信するプログラム、操作または装置のいずれかを指す。すべてのデータ送受信は、ある装置からの出力と別の装置への入力と考えてよい。周辺装置には、キーボードやマウスなどの入力専用装置、プリンタなどの出力専用装置に加えて、入力装置および出力装置の両方として作動できる書き込み可能CD-ROMなどの装置が含まれてもよい。「周辺装置」という言葉には、マウス、キーボード、プリンタ、モニタ、マイクロホン、ゲームコントローラ、カメラ、外部Zipドライバまたはスキャナなどの外部装置に加えて、CD−ROMドライブ、CD−Rドライブまたは内部モデムなどの内部装置、または、フラッシュメモリ読み取りおよび書き込みハードドライブなどの他の周辺装置が含まれる。
【0071】
本発明のある実施形態では、装置600は、有線(例えばUSBケーブル)または無線を通した入出力装置611を介してプロセッサに接続されたコントローラ630を具備したビデオゲーム装置であってもよい。ある実施の形態では、ジョイスティックコントローラ630はユーザの身体に装着可能であってもよい。コントローラ630は、ビデオゲームプレイ中に通常使用されるコントロール信号を提供するアナログジョイスティックコントロール631と既知のボタン633を具備してもよい。そのようなビデオゲームは、メモリ602、または大容量記憶装置615に関連する他のプロセッサ読み取り可能媒体に保存されるプログラム604からの、プロセッサ読み取り可能データおよび/または指令として実装されてもよい。いくつかの実施形態では、ミキサ605は、アナログジョイスティックコントロール631とボタン633から入力を受信できる。
【0072】
ジョイスティックコントロール631は、通常、コントロールスティックを左右に動かすとX軸沿いの動きの信号を発信し、前後(上下)に動かすとY軸沿いの信号を発信するように構成されていてもよい。3次元の動き用に構成されたジョイスティックでは、スティックを左(反時計回り)または右(時計回り)に捻るとZ軸沿いの動きの信号を発信してもよい。これらX,Y,Zの3軸は、特に航空機に関する場合に、それぞれロール、ピッチ、ヨーと呼ばれることがある。
【0073】
従来の特徴に加えて、コントローラ630は、上述のような一つ以上の慣性センサ632を備えてもよい。慣性センサ632は、慣性信号を介して位置情報および/または方向情報をプロセッサ601に提供できる。方向情報には、コントローラ630の傾き、ロールまたはヨーなどの角度情報が含まれていてもよい。例示として、慣性センサ632には、任意の数の加速度計、ジャイロスコープまたは傾斜センサ、またはこれらの任意の組み合わせが含まれていてもよい。好適な実施形態では、慣性センサ632には、傾斜およびロール軸に対するジョイスティックコントローラの方向を検知するように適応された傾斜センサ、ヨー軸沿いの加速度を検知するように適応された第1の加速度計、およびヨー軸に対する角加速度を検知するように適応された第2の加速度計を備える。加速度計は、例えば、一つ以上のばねで取り付けられた質量と一つ以上の方向に対する質量の変位を検知するセンサとを備えるMEMS装置として実装されてもよい。質量の変位に依存するセンサからの信号は、ジョイスティックコントローラ630の加速度決定に用いられてもよい。そのような技術は、メモリ602に保存されプロセッサ601によって実行されるゲームプログラム604からの命令によって実現される。
【0074】
例示として、慣性センサ632として適した加速度計は、例えば、ばねなどで、フレームに3〜4点で伸縮自在に接続された単一の質量であってもよい。ピッチ軸とロール軸は、ジョイスティックコントローラ630に設けられたフレームと交差する面に存在する。フレーム(およびジョイスティックコントローラ630)がピッチ軸、ロール軸の回りを回転するにつれて、質量が重力の影響下で変位し、ばねがピッチ角および/またはロール角に依存する態様で伸縮する。質量の変位が検知され、ピッチ量および/またはロール量に依存した信号に変換される。ヨー軸回りの角加速度またはヨー軸沿いの線形加速度は、ばねの伸縮または質量の動きの特徴的なパターンを生成し、それらのパターンは検知されて角加速度量または線形加速度量に応じた信号に変換される。そのような加速度計装置は、質量の動きおよびばねの伸縮力を追跡することによって、傾斜、ヨー軸回りのロール角加速度およびヨー軸沿いの線形加速度を計測できる。質量の位置および/またはそれに働く力を追跡する方法には多くの違った方法があり、それらの方法には、抵抗歪みゲージ、音響センサ、磁気センサ、ホール効果素子、圧電素子、容量センサなどが含まれる。ある実施の形態では、慣性センサ632をジョイスティックコントローラ630の「本体」に取り外し可能に搭載してもよい。取り外し可能な慣性センサは、たとえばUSB接続を介して、コントローラ630の電子部品と信号を交換することができる。取り外し可能な慣性センサは、多数の異なる接続のいずれかを用いてジョイスティックコントローラの本体と機械的に接続されてもよい。
【0075】
また、ジョイスティックコントローラ630は、発光ダイオード(LED)などの光源634を一つ以上含んでもよい。光源634は、コントローラを他のコントローラと識別するために用いられる。例えば、一つ以上のLEDがあれば、LEDのパターンコードをぱっと光らせたり保持することで識別できる。例示として、ジョイスティックコントローラ630上に5個のLEDが直線または2次元模様で設けることができる。LEDを直線状に配列することが好ましいが、他の方法として、四角形またはアーチ状に配置して、撮像装置623で得られたLEDパターン画像の分析時に、LED配列の画面の決定を容易にするようになされてもよい。さらに、LEDパターンコードは、ゲームプレイ中のジョイスティックコントローラ630の位置決定にも使用できる。例えば、LEDは、コントローラの傾斜、ヨーおよびロールの特定を助けることができる。この検出パターンによって、例えば飛行機ゲームなどのゲームで、ユーザによりよい感情を提供できる。撮像装置623は、ジョイスティックコントローラ630と光源634を含む像を撮影してもよい。そのような画像を分析すると、ジョイスティックコントローラの位置および/または方向が決定できる。そのような分析は、メモリ602に保存されプロセッサ601で実行されるプログラムコード命令604によって実現されてもよい。撮像装置623による光源634の撮像を容易にするために、光源634は、ジョイスティックコントローラ630の複数の異なる端部、例えば、前方と後方に配置してもよい(図6に影として示す)。そのような配置することによって、撮像装置623は、ユーザのジョイスティックコントローラ630の保持の仕方に応じたジョイスティックコントローラ630の種々の方向に対して、光源634の像を得ることができる。
【0076】
さらに、光源634は、例えば、パルスコード、振幅変調または周波数変調フォーマットでテレメトリ信号をプロセッサ601に提供してもよい。そのようなテレメトリ信号は、いずれのジョイスティックボタンが押されているか、および/またはどれ位強くボタンが押されているかを表してもよい。テレメトリ信号は、例えばパルス符号化、パルス幅変調、周波数変調または光強度(振幅)変調などによって、光信号に符号化されてもよい。プロセッサ601は、光信号からテレメトリ信号を復号化し、復号化されたテレメトリ信号に応じてゲームコマンドを実行してもよい。テレメトリ信号は、撮像装置623で得られたジョイスティックコントローラ630の画像の分析から復号化されてもよい。または、プロセッサ601は、光源634からのテレメトリ信号受信専用の独立した光学センサを具備してもよい。コンピュータプログラムとのインタフェースにおける強度決定に併せてのLEDの使用は、例えば、2006年5月4日出願の米国特許出願第11/429,414号の”USE OF COMPUTER IMAGE AND AUDIO PROCESSING IN DETERMINING AN INTENSITY AMOUNT WHEN INTERFACING WITH A COMPUTER PROGRAM”(米国特許出願公報第20060277571号として公開)、発明者Richard L. Marks et al.に開示されており、その開示内容は全体として、参照により本明細書に援用される。また、光源634を含む画像の分析は、テレメトリおよびジョイスティックコントローラ630の位置および/または方向の決定にも用いることができる。そのような技術は、メモリ602に保存されプロセッサ601によって実行されるプログラム604の命令によって実現されてもよい。
【0077】
プロセッサ601は、撮像装置623で検出された光源634からの光信号、および/またはマイクロホン配列622によって検出された音響信号からの音源場所と音源特性情報と共に、慣性センサ632からの慣性信号を用いて、ここで記述したようなジェスチャの検出と認識と共に、コントローラ630および/またはユーザの場所および/または方向に関する情報を推測してもよい。例えば、「音響レーダ」の音源場所およびその特性は、マイクロホン配列622と共に用いられて、ジョイスティックコントローラの動きが(慣性センサ632および/または光源634を通して)独立に追跡されている間、移動音源を追跡する。音響レーダ選択において、較正済み聴取領域が実行時間中に選択されてもよい。較正済み聴取領域以外の音源から発生した音はフィルタされて除かれてもよい。較正済み聴取領域は、撮像装置623の焦点または視野にある音量に対応した聴取領域を含んでいてもよい。音響レーダの例は、米国特許出願第11/381,724号(米国特許出願公報第20060233389号として公開)に開示されており、その開示内容は参照により本明細書に援用される。コントロール信号をプロセッサ601に供給するための種々の形態を種々組み合わせたものも、本発明の実施形態と併せて用いられてもよい。そのような技術は、メモリ602に保存されプロセッサ601で実行されるプログラムコード命令604によって実現されてもよく、また、任意に、実行時間中は較正済み聴取領域を選択し、較正済み聴取領域以外の音源から発生した音はフィルタをかけて除くための一つ以上のプロセッサを指揮する一以上の指令を含んでもよい。較正済み聴取領域は、撮像装置623の焦点または視野にある音量に対応した聴取領域を含んでいてもよい。
【0078】
プログラム604は任意に、マイクロホン配列622のマイクロホンM0〜MMから離散時間領域入力信号Xm(t)を生成し、聴取セクタを決定し、有限インパルス応答フィルタ係数を選択するセミブラインド(semi-blind)音源分離において聴取セクタを用いて、入力信号Xm(t)から異なる音源を分離する一つ以上のプロセッサを指揮する一以上の命令を含んでもよい。プログラム604には、基準マイクロホンM0からの入力信号X0(t)以外の選択入力信号Xm(t)に、一つ以上の非整数遅延(fractional delay)を適用する命令をさらに備えてもよい。マイクロホン配列からの離散時間領域出力信号y(t)の信号対雑音比を最適化するために、各非整数遅延が選択されてもよい。非整数遅延は、基準マイクロホンM0からの信号が、配列の他のマイクロホンからの信号に対して最初であるように選択されてもよい。プログラム604は、非整数遅延Δを、y(t+Δ) = x(t+Δ)*b0 + x(t-1+Δ)*b1 + x(t-2+Δ)*b2 +…+ x(t-N+Δ)bNとなるようにマイクロホン配列の出力信号y(t)に導入する命令を含んでもよい。ここで、Δは0〜±1である。そのような技術の例は、2006年5月4日出願の米国特許出願第11/381,729号"ULTRA SMALL MICROPHONE ARRAY"(米国特許出願公報第20070260340号として公開)、発明者Xiadong Maoに詳細に開示されており、その開示内容は参照により本明細書に援用される。
【0079】
さらに、例えばスピーカ、ブザー、ホーンあるいはパイプなどのサウンドエミッタ636がジョイスティックコントローラ630に取り付けられてもよい。ある実施形態では、サウンドエミッタはジョイスティックコントローラ630の「本体」に脱着可能に取り付けられても良い。プログラムコード604によって、マイクロホン配列622で検出した音の場所が特定され特性が明らかになる「音響レーダ」の実施例では、サウンドエミッタ636が、マイクロホン配列622で検出され、プログラムコード604に用いられてゲームコントローラ630の位置を追跡する音響信号を提供してもよい。サウンドエミッタ636はさらに、ゲームコントローラ630からプロセッサ601へ、追加の「入力チャネル」を提供するように用いられてもよい。サウンドエミッタ636からの音響信号は、周期的にパルス化され、音響レーダが場所を追跡するためのビーコンを提供してもよい。
音響信号(パルス化されたものあるいはその他)は、可聴超音波であってもよい。音響レーダはユーザのゲームコントローラ630操作を追跡し、この場合、そのような操作の追跡には、ゲームコントローラ630の位置および方向に関する情報(例えば、ピッチ角、ロール角、ヨー角など)が含まれてもよい。前記パルスは、当業者が適用可能な適当なデューティサイクルで始動されてもよく、また、システムから調整されたコントロール信号に基づいて起動されてもよい。システム600(プログラムコード604を介した)は、プロセッサ601に接続された複数のジョイスティックコントローラ630の中でコントロール信号の送信を整合し、複数のコントローラの追跡が可能なことを保証してもよい。
【0080】
プログラム604は、実行されると、システム600に、音源を含んだ事前較正済み聴取領域を選択させる一つ以上の命令を含んでもよい。そのような命令によって、音源が最初の領域内にあるか、またはその領域の特定の側にあるか否かを装置が判断するようになされていてもよい。音源が初期設定領域内に存在しない場合、命令は、実行時に、初期設定領域の特定の側にある別の領域を選択してもよい。別の領域は、最適値に最も近い入力信号の減衰によって特徴付けられてもよい。これらの命令は、実行されると、マイクロホン配列622からの入力信号の減衰と最適値への減衰を計算してもよい。命令は、実行されると、装置600が、一つ以上の領域に対する入力信号の減衰値を決定し、減衰が最適値に最も近い領域を選択するようになされてもよい。そのような技術の例は、2006年5月4日出願の米国特許出願第11/381,725号の"METHOD AND APPARATUS FOR TARGETED SOUND DETECTION"(米国特許出願公報第20070025562号として公開)、発明者Xiadong Maoに開示されており、その開示内容は参照により本明細書に援用される。
【0081】
慣性センサ632からの信号は追跡情報入力の一部を提供し、撮像装置623による一つ以上の光源634の追跡から生成された信号は追跡情報入力の別の部分を提供する。例示として、またいかなる限定を行うことなく、そのような「混合モード」の信号は、フットボールタイプのビデオゲームで用いられ、ここでは、クォータバックが頭を左に動かすフェイントをかけた後ボールを右に投げる。具体的には、コントローラ630を保持したゲームプレイヤは、頭を左に向け、フットボールでするように、コントローラを右に振って投げる動作をしながら声を出す。「音響レーダ」プログラムコードと併せて、マイクロホン配列622はユーザの声を追跡できる。撮像装置623は、ユーザの頭の動きや、または、音やコントローラを必要としない他の命令を追跡できる。センサ632はジョイスティックコントローラ(フットボールを表す)の動きを追跡してもよい。撮像装置623はまた、コントローラ630の光源634を追跡してもよい。ユーザは、ジョイスティックコントローラ630の加速度がある量、および/またはある方向に達したとき、またはコントローラ630のボタンを押してトリガされるキーコマンドに基づいて、「ボール」を投げることができる。
【0082】
本発明のある実施形態では、加速度計またはジャイロスコープなどからの慣性信号は、コントローラ630の位置決めに用いられてもよい。具体的には、加速度計からの加速度信号は、速度変化を決定するために一旦時間積分されてもよく、速度は位置変化を決定するために時間積分されてもよい。ある時刻における初期位置と速度が既知であれば、これらの値と速度および位置変化とを用いて絶対位置を決定できる。慣性センサを用いた位置決定は、撮像装置623や光源634を用いる方法よりも早く行えるが、慣性センサ632は「ドリフト」として知られるタイプの誤差が起こりやすい。これは、時間と共に累積される誤差によって、慣性信号から計算されるジョイスティック630の位置(透視図で示す)とジョイスティックコントローラの実際の位置との間で不一致Dが生じうる現象である。本発明の実施形態では、様々な方法でそのような誤差を処理できる。
【0083】
例えば、コントローラ630の初期位置を現在の計算位置と等しくなるように設定することにより、ドリフトを手動でキャンセルすることができる。ユーザは、コントローラ630の一つ以上のボタンを使って、初期位置を再設定する命令をトリガできる。代替的に、画像ベースのドリフトであれば、撮像装置623から得られた基準となる画像から決定される位置に現在位置を再設定することによりキャンセルすることができる。そのような画像ベースのドリフトに対する補償は、例えば、ユーザがジョイスティックコントローラ630の一つ以上のボタンをトリガするときに、手動で行うことができる。または、画像ベースのドリフトに対する補償は、例えば、一定の間隔で、またはゲームプレイに応じて自動的に行える。そのような技術は、メモリ602に保存されプロセッサ601によって実行されるプログラムコード命令604によって実現される。
【0084】
ある実施形態では、慣性センサ信号の誤りデータを補正することが望ましい。例えば、慣性センサ632からの信号をオーバーサンプリングし、オーバーサンプリングされた信号から移動平均(sliding average)を計算して、慣性センサ信号から誤りデータを取り除くことができる。ある状況では、信号をオーバーサンプリングし、高い値および/または低い値をデータポイントの一部のサブセットから除き、残りのデータポイントから移動平均を計算することが望ましい。また、慣性センサからの信号を調節して誤りデータから優位性を除去または軽減する他のデータサンプリング技術やデータ処理技術も使用できる。いずれの技術を選択するかは、信号の性質、信号に対しての計算、ゲームプレイの性質、またはこれらの複数の組み合わせに依存する。そのような技術は、メモリ602に保存されプロセッサ601によって実行されるプログラム604の命令によって実現される。
【0085】
プロセッサ601は、上述のように、データ606と、メモリ602に保存、検索されプロセッサモジュール601によって実行されるプログラム604のプログラムコード命令とに応じて、慣性信号データ606の分析を実行する。プログラム604のコード部分は、アセンブリ、C++、JAVA(登録商標)またはその他の多くの言語などの多くの異なるプログラム言語のいずれにも準拠してよい。プロセッサモジュール601は、プログラムコード604などのプログラムを実行するときに専用コンピュータとなる汎用コンピュータを形成する。ここでは、プログラムコード604はソフトウェアに組み込まれ、汎用コンピュータで実行されるように説明したが、当業者には、タスク管理方法は、別の方法として、特定用途向け集積回路(ASIC)やその他のハードウェア回路などのハードウェアを用いて実現されることは理解されるであろう。このように、本発明の実施形態は、全体であれ一部分であれ、ソフトウェア、ハードウェアおよびその両方の組み合わせで実現されることは理解されるべきである。
【0086】
ある実施形態では、とりわけ、プログラムコード604は、図5Bの方法510と図5Cの方法520、またはこれらの複数の組み合わせに共通な特長を持った方法を実現するプロセッサ読み取り可能な命令セットを備えてもよい。プログラムコード604は、通常、一つ以上のプロセッサを指揮する一つ以上の命令を備えていて、慣性センサ632からの信号を分析し、位置情報および/または方向情報を生成して、ビデオゲームプレイ中、その情報を活用する。
【0087】
プログラムコード604は、実行されると、撮像装置623に、前方の視野を監視し、視野内の一つ以上の光源634を特定し、光源634からの光の変化を検出させ、変化の検出に応じてプロセッサ601に対する入力指令をトリガさせる、一つ以上の命令を含んだプロセッサ実行可能指令を任意に備えてもよい。ゲームコントローラのアクションをトリガするために撮像装置と共にLEDを使用することは、2004年1月16日出願の米国特許出願第10/759,782号の"METHOD AND APPARATUS FOR LIGHT INPUT DEVICE"(米国特許出願公報第20040207597号として公開)、発明者Richard L. Marksに開示されており、その開示内容は参照により本明細書に援用される。
【0088】
プログラムコード604は、実行されると上述のように、ゲームシステムへの入力として、慣性センサからの信号と一つ以上の光源を追跡する撮像装置からの信号とを用いる一つ以上の命令を含むプロセッサ実行可能な命令を、任意に含んでもよい。プログラムコード604は、実行されると、慣性センサ632のドリフトを補償する一つ以上の命令を含むプロセッサ実行可能な命令を、任意に備えてもよい。
【0089】
本発明の実施形態をビデオジョイスティックコントローラ630に関連する例として記述したが、システム600を含む本発明の実施形態は、慣性センシング能力を有し、かつ無線であれそれ以外の方法であれ慣性センサ信号送信能力を有するユーザにより操作される本体、成型品、ノブ、または構造物などのいずれにも使用することができる。
【0090】
例示として、本発明の実施形態は、並列処理システムに実装することができる。このような並列処理システムは、通常、別々のプロセッサを用いて並列にプログラムの一部を実行するように構成される複数のプロセッサを備える。例示として、また限定を行うことなく、図7は本発明の実施形態によるあるタイプのセルプロセッサ700を示す。セルプロセッサ700は、図6のプロセッサ601、または図5Aのプロセッサ502として使用することができる。図7の例では、セルプロセッサ700は、メインメモリ702、パワープロセッサ要素(power processor element:PPE)704、および多数の相乗的プロセッサ要素(synergistic processor element:SPE)706を備える。図7の例では、セルプロセッサ700は、1個のPPE704と8個のSPE706とを備える。このような構成では、7個のSPE706が並列処理に用いられ、1個は他の7個の一つが故障したときのバックアップとして確保されている。代替的に、セルプロセッサは、複数のPPEからなる複数のグループ(PPEグループ)と、複数のSPEからなる複数のグループ(SPEグループ)とを備えてもよく、そのような場合、1グループ内の各ユニットでハードウェアリソースが共有される。しかしながら、SPEとPPEは、ソフトウェアにとって独立要素であるように見える必要がある。このように、本発明の実施形態は、図7に示される構成での使用に限定されるものではない。
【0091】
メインメモリ702は、通常、汎用の不揮発性記憶装置に加えて、システム構成、データ同期転送、メモリーマップドI/O、およびI/Oサブシステムなどの機能に用いられる専用のハードウェアレジスタまたはアレイも備える。本発明の実施形態では、ビデオゲームプログラム703がメインメモリ702内に常駐してもよい。プログラム703は、図5A、図5Bおよび図5Cについて上述したような、またはこれらの組み合わせで構成される分析部を含んでもよい。さらに、プログラム703は、図5Dについて上述したようなジェスチャ検出および/または図5Eについて上述したようなジェスチャ認識を実装するためのインストラクションを含んでもよい。プログラム703はPPE上で走ってもよい。プログラム703は、SPEおよび/またはPPEで実行される複数の信号処理タスクに分割されてもよい。
【0092】
例示として、PPE704は、関連するキャッシュL1およびL2を持った64ビットのパワーPCプロセッサユニット(PPU)であってもよい。PPE704は、システム管理リソース(例えば、メモリ保護テーブルなど)にアクセス可能な汎用処理装置である。ハードウェアリソースは、PPEに見られるように実アドレス空間に明示的にマップされてもよい。したがって、PPEは適当な実効アドレス値を用いて、直接これらのリソースのいずれにでもアドレス指定できる。PPE704の主な機能は、セルプロセッサ700のSPE706に対するタスク管理とタスク割り当てである。
【0093】
図7では1個のPPEだけが示されているが、セルブロードバンドエンジンアーキテクチャ(CBEA)などのセルプロセッサ実装では、セルプロセッサ700は、複数のPPEが存在するPPEグループに系統だてられた複数のPPEを有してもよい。これらのPPEグループはメインメモリ702へのアクセスを共有してもよい。さらに、セルプロセッサ700は二つ以上のSPEを備えてもよい。SPEグループもメインメモリ702へのアクセスを共有してもよい。このような構成も本発明の範囲内である。
【0094】
SPE706のそれぞれは、SPUと独自のローカル記憶領域LSとを含む。ローカル記憶領域LSは、メモリ記憶内の一つ以上の分離領域を備えており、それぞれの領域は専用のSPUと関連付けられている。各SPUは、独自の関連付けられた記憶領域内からの命令(データロードとデータ保存操作とを含む)だけを実行するように構成されてもよい。そのような構成では、ローカル記憶領域LSとシステム700のそれ以外の間とのデータ転送は、メモリフローコントローラ(MFC)からダイレクトメモリアクセス(DMA)命令を出すことによって行われ、(個々のSPEの)ローカル記憶領域との間でデータ転送される。なんらシステム管理機能を果たさないSPUは、PPE704よりは簡単な構造のコンピュータ装置である。SPUは、一般にSIMD(single instruction, multiple data)機能を有し、通常はデータ処理を行い、割り当てられたタスクを行うために(PPEにより設定されたアクセス特性にしたがって)要求されたデータ転送を開始する。SPUの目的は、より高いコンピュータ装置密度を要求するアプリケーションを可能として、提供された命令セットを有効に利用できるようにすることである。PPE704で管理されるシステムにおけるかなり多くのSPEは、広範囲のアプリケーションにおいて費用効果の高い処理を可能にする。
【0095】
各SPE706は、メモリ保護情報とアクセス許可情報を保持し処理できる関連メモリ管理ユニットを備えた専用のメモリフローコントローラ(MFC)を備えている。MFCは、セルプロセッサのメイン記憶とSPEのローカル記憶間でのデータ転送、保護および同期化のための主要な方法を提供する。MFC命令は実行される転送を記述する。データ転送命令は、MFCダイレクトメモリアクセス(DMA)命令(またはMFCDMA命令)と呼ばれることがある。
【0096】
各MFCは、同時に複数のDMA転送をサポートし、複数のMFC命令を維持、処理してもよい。各MFCDMAデータ転送命令要求は、ローカルストレージアドレス(LSA)と有効アドレス(EA)の両方を伴ってもよい。ローカルストレージアドレスは、関連するSPEのローカルストレージアドレスだけに直接アドレス指定できる。実効アドレスは、例えば、実アドレス空間に名前を変えられれば、すべてのSPEローカルストレージ領域を含むメイン記憶を参照できるなどの、もっと一般的なアプリケーションを備えてもよい。
【0097】
SPE706同士の間、および/またはSPE706とPPE704との間の通信を容易にするために、SPE706とPPE704は、シグナリングイベントに関する信号通知レジスタを備えてもよい。PPE704とSPE706は、PPE704がSPE706にメッセージを送信するルータのように働くスター構成(topology)によって接続されてもよい。代替的に、各SPE706とPPE704は、メールボックスと呼ばれる一方向信号通知レジスタを有してもよい。メールボックスは、SPE706によって使用されOSの同期操作を主催する。
【0098】
セルプロセッサ700は、マイクロホン配列712、任意の撮像装置713およびジョイスティックコントローラ730などの周辺装置とインタフェースできる入出力(I/O)機能を備えてもよい。ジョイスティックコントローラユニットは慣性センサ732と光源734を備えてもよい。さらに、要素相互接続バス710は、上記に挙げた種々の部品を接続できる。各SPEおよびPPEは、バスインタフェースユニット(BIU)を介してバス710にアクセスできる。セルプロセッサ700は、通常プロセッサに見られる二つのコントローラと、バス710とメインメモリ702の間のデータ流れを制御するメモリインタフェースコントローラ(MIC)と、I/O708とバス710の間のデータ流れを制御するバスインタフェースコントローラ(BIC)とを備えてもよい。MIC、BIC,BIUおよびバス710に対する要件は、実装が異なると大きく変わるが、当業者はそれらの機能および実装回路については精通しているだろう。
【0099】
セルプロセッサ700は、内部割り込みコントローラ(IIC)を備えてもよい。IIC装置は、PPEに提示される割り込みの優先権を管理する。IICによって、セルプロセッサ700の他の要素からの割り込みを、メインシステムの割り込みコントローラを用いずに処理できる。IICは第2レベルのコントローラと考えることもできる。メインシステムの割り込みコントローラは、セルプロセッサの外部で発生した割り込みを処理してもよい。
【0100】
本発明の実施形態では、上述の非整数遅延などの計算は、PPE704および/または一つ以上のSPE706を用いて並列に実行されてもよい。各非整数遅延計算は、使用可能な異なるSPE706が別々に請け負う一つ以上の別々のタスクとして実行されてもよい。
【0101】
上記は、本発明の好適な実施形態に関する完全な記述であるが、種々の変形、変更および等価物を用いることが可能である。したがって、本発明の技術範囲は、上記の内容を参照して決定されるべきではなく、その代わりに、添付の特許請求の範囲およびそれらの等価物の全範囲と併せて決定されるべきである。本明細書で説明した好適なまたはそれ以外のすべての特徴は、本明細書に記載された他の好適なまたはそれ以外のいかなる特徴とも組み合わせることができる。特許請求の範囲においては、不定冠詞“A”または“An”は、特にそうでないと明確に述べられた場合を除いて、冠詞に続く品目の一つ以上の数量を指す。添付の特許請求の範囲は、”means for”の句を使って明確にそのような限定が行われない限り、ミーンズプラスファンクションの限定が含まれると解釈されるべきではない。
【0102】
本発明のいろいろな好ましい特徴は次の番号を付けたパラグラフで定義される。
【0103】
パラグラフ1.
a)コントロールデバイスに関連づけられた1以上のセンサから、前記コントロールデバイスの動きに関するサンプルモーションデータを受け取るステップと、
b)前記モーションデータからエネルギー値と前記モーションデータに対する基準値とを計算するステップと、
c)前記エネルギー値が静的エネルギー閾値よりも小さいなら、前記エネルギー値にもとづいて前記基準値を更新するステップと、
d)更新された前記基準値にもとづいて前記サンプルモーションデータを調整するステップと、
e)所定数の局所分散サンプルにわたって前記サンプルモーションデータの局所分散を計算するステップと、
f)前記局所分散のスカラ値が記録を開始するための閾値よりも大きいなら、ジェスチャに対する前記サンプルモーションデータの1以上の値の記録を開始するステップと、
g)ジェスチャに対する前記サンプルモーションデータの前記1以上の値を用いて平均的な局所分散のスカラー値を計算するステップと、
h)前記局所分散のスカラー値が記録を中止するための閾値よりも小さいなら、ジェスチャに対する前記サンプルモーションデータの前記1以上の値の記録を中止するステップとを含むことを特徴とするジェスチャ認識方法。
【0104】
パラグラフ2.
i)前記ジェスチャにおける前記サンプル値の全分散を計算するステップと、
j)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
k)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップと、
l)前記入力されたジェスチャが前記1以上のカタログジェスチャの一つと一致した場合にアクションを取るステップとをさらに含むパラグラフ1の方法。
【0105】
パラグラフ3.
前記サンプルモーションデータはベクトル成分を含むパラグラフ2の方法。
【0106】
パラグラフ4.
前記全分散は、前記ベクトル成分の異なる成分に対応する全分散の成分に割り当てられたランクとともに計算されるパラグラフ3の方法。
【0107】
パラグラフ5.
ステップj)は、入力されたジェスチャ成分のランクをカタログジェスチャ成分のランクと比較することを含むパラグラフ4の方法。
【0108】
パラグラフ6.
ステップj)は、全分散成分のランクキングによって成分を重みづけすることを含むパラグラフ5の方法。
【0109】
パラグラフ7.
ステップj)は、入力されたジェスチャとカタログジェスチャの間の相関を計算することを含むパラグラフ6の方法。
【0110】
パラグラフ8.
少ないサンプルしかもたない入力されたジェスチャまたはカタログジェスチャをスケールアップするステップをさらに含むパラグラフ6の方法。
【0111】
パラグラフ9.
入力されたジェスチャの全分散のランキングとカタログジェスチャの全分散のランキングを比較するステップと、一致しない入力されたジェスチャのランクにはそれぞれペナルティを適用するステップとをさらに含むパラグラフ6の方法。
【0112】
パラグラフ10.
前記メリットの数値は、全分散のランキングにもとづいた重みで重みづけされた相関スカラ平均として計算された相関スカラを含むパラグラフ9の方法。
【0113】
パラグラフ11.
全分散のランキングはジェスチャ内で異なる時間間隔で計算されるパラグラフ10の方法。
【0114】
パラグラフ12.
ジェスチャ内の異なる時間間隔において重みを異ならせるパラグラフ11の方法。
【0115】
パラグラフ13.
当該方法はビデオゲームに適用されるパラグラフ2の方法。
【0116】
パラグラフ14.
アクションを取るステップは、ジェスチャに関連づけられたコマンドに応答することを含むパラグラフ13の方法。
【0117】
パラグラフ15.
入力されたジェスチャをゲームロジックにもとづいてカタログジェスチャの選択された対象と比較するパラグラフ14の方法。
【0118】
パラグラフ16.
サンプルモーションデータは慣性センサからの信号から得られたデータを含むパラグラフ1の方法。
【0119】
パラグラフ17.
サンプルモーションデータはイメージキャプチャデバイスから得られた画像データを含むパラグラフ1の方法。
【0120】
パラグラフ18.
サンプルモーションデータは音響センサからの信号から得られたデータを含むパラグラフ1の方法。
【0121】
パラグラフ19.
ジェスチャ認識のための装置であって、
コントロールデバイスと、
ジェスチャ認識方法のプログラムを実行する機能を有するプロセッサとを含み、
前記方法は、
コントロールデバイスに関連づけられた1以上のセンサから、前記コントロールデバイスの動きに関するサンプルモーションデータを受け取るステップと、
前記モーションデータからエネルギー値と前記モーションデータに対する基準値とを計算するステップと、
前記エネルギー値が静的エネルギー閾値よりも小さいなら、前記エネルギー値にもとづいて前記基準値を更新するステップと、
更新された前記基準値にもとづいて前記サンプルモーションデータを調整するステップと、
所定数の局所分散サンプルにわたって前記サンプルモーションデータの局所分散を計算するステップと、
前記局所分散のスカラ値が記録を開始するための閾値よりも大きいなら、ジェスチャに対する前記サンプルモーションデータの1以上の値の記録を開始するステップと、
ジェスチャに対する前記サンプルモーションデータの前記1以上の値を用いて平均的な局所分散のスカラー値を計算するステップと、
前記局所分散のスカラー値が記録を中止するための閾値よりも小さいなら、ジェスチャに対する前記サンプルモーションデータの前記1以上の値の記録を中止するステップとを含むことを特徴とする装置。
【0122】
パラグラフ20.
前記ジェスチャ認識方法は、
前記ジェスチャにおける前記サンプル値の全分散を計算するステップと、
前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップと、
前記入力されたジェスチャが前記1以上のカタログジェスチャの一つと一致した場合にアクションを取るステップとをさらに含むパラグラフ19の装置。
【0123】
パラグラフ21.
コンピュータ読み取り可能なインストラクションが格納されたコンピュータ読み取り可能な記録媒体であって、前記コンピュータ読み取り可能なインストラクションが実行されるとき、ジェスチャ認識方法が実装されるように構成されており、前記方法は、
コントロールデバイスに関連づけられた1以上のセンサから、前記コントロールデバイスの動きに関するサンプルモーションデータを受け取るステップと、
前記モーションデータからエネルギー値と前記モーションデータに対する基準値とを計算するステップと、
前記エネルギー値が静的エネルギー閾値よりも小さいなら、前記エネルギー値にもとづいて前記基準値を更新するステップと、
更新された前記基準値にもとづいて前記サンプルモーションデータを調整するステップと、
所定数の局所分散サンプルにわたって前記サンプルモーションデータの局所分散を計算するステップと、
前記局所分散のスカラ値が記録を開始するための閾値よりも大きいなら、ジェスチャに対する前記サンプルモーションデータの1以上の値の記録を開始するステップと、
ジェスチャに対する前記サンプルモーションデータの前記1以上の値を用いて平均的な局所分散のスカラー値を計算するステップと、
前記局所分散のスカラー値が記録を中止するための閾値よりも小さいなら、ジェスチャに対する前記サンプルモーションデータの前記1以上の値の記録を中止するステップとを含むことを特徴とする記録媒体。
【0124】
パラグラフ22.
コントロールデバイスと前記コントロールデバイスに接続されたプロセッサとを含むシステムにおけるジェスチャ認識方法であって、当該方法は、
a)プロセッサが、前記コントロールデバイスに関連づけられた1以上のセンサから得た前記コントロールデバイスの動きに関するサンプルモーションデータの複数のサンプル値をもつ入力ジェスチャにおいて、サンプル値の全分散を計算するステップと、
b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップと、
d)前記入力されたジェスチャが前記1以上のカタログジェスチャの一つと一致すると判定された場合に前記システムの状態を変更するステップとを含むことを特徴とする方法。
【0125】
パラグラフ23.
前記システムはビデオゲームシステムであり、ステップd)は、ステップc)において入力されたジェスチャが前記1以上のカタログジェスチャの一つと一致すると判定された場合に、プロセッサが前記ビデオゲームシステムで実装されたゲームの状態を変更することを含むパラグラフ22のジェスチャ認識方法。
【0126】
パラグラフ24.
前記サンプルモーションデータはベクトル成分を含むパラグラフ22の方法。
【0127】
パラグラフ25.
前記全分散は、前記ベクトル成分の異なる成分に対応する全分散の成分に割り当てられたランクとともに計算されるパラグラフ24の方法。
【0128】
パラグラフ26.
ステップb)は、入力されたジェスチャ成分のランクをカタログジェスチャ成分のランクと比較することを含むパラグラフ25の方法。
【0129】
パラグラフ27.
ステップb)は、全分散成分のランクキングによって成分を重みづけすることを含むパラグラフ25の方法。
【0130】
パラグラフ28.
ステップb)は、入力されたジェスチャとカタログジェスチャの間の相関を計算することを含むパラグラフ25の方法。
【0131】
パラグラフ29.
少ないサンプルしかもたない入力されたジェスチャまたはカタログジェスチャをスケールアップするステップをさらに含むパラグラフ25の方法。
【0132】
パラグラフ30.
入力されたジェスチャの全分散のランキングとカタログジェスチャの全分散のランキングを比較するステップと、一致しない入力されたジェスチャのランクにはそれぞれペナルティを適用するステップとをさらに含むパラグラフ25の方法。
【0133】
パラグラフ31.
前記メリットの数値は、全分散のランキングにもとづいた重みで重みづけされた相関スカラ平均として計算された相関スカラを含むパラグラフ30の方法。
【0134】
パラグラフ32.
ジェスチャ認識のための装置であって、
コントロールデバイスと、
ジェスチャ認識方法のプログラムを実行する機能を有するプロセッサとを含み、
前記方法は、
a)前記コントロールデバイスに関連づけられた1以上のセンサから得た前記コントロールデバイスの動きに関するサンプルモーションデータの複数のサンプル値をもつ入力ジェスチャにおいて、サンプル値の全分散を計算するステップと、
b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップと、
d)前記入力されたジェスチャが前記1以上のカタログジェスチャの一つと一致すると判定された場合に当該装置の状態を変更するステップとを含むことを特徴とする装置。
【0135】
パラグラフ33.
コンピュータ読み取り可能なインストラクションが格納されたコンピュータ読み取り可能な記録媒体であって、前記コンピュータ読み取り可能なインストラクションが実行されるとき、ジェスチャ認識方法が実装されるように構成されており、前記方法は、
a)コントロールデバイスに関連づけられた1以上のセンサから得た前記コントロールデバイスの動きに関するサンプルモーションデータの複数のサンプル値をもつ入力ジェスチャにおいて、サンプル値の全分散を計算するステップと、
b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップとを含むことを特徴とする記録媒体。
【技術分野】
【0001】
[優先権主張]
本願は、2008年1月11日に出願された、本出願と譲受人が共通する同時係属の特許文献1の優先権を主張し、その開示内容全体をここに参照により組み入れる。
【特許文献1】United States Provisional Patent application No. 61/020,669 to Thomas Miller IV entitled "GESTURE CATALOGING AND RECOGNITION" (Attorney Docket Number SCEA07026US00)
【0002】
[技術分野]
本発明は、一般にコンピュータエンタテインメントシステムに関し、特にコンピュータエンタテインメントシステム用のコントローラのユーザ操作に関する。
【背景技術】
【0003】
通常、コンピュータエンタテインメントシステムは、手持ち型コントローラ、ゲームコントローラ、またはその他のコントローラを備える。ユーザすなわちプレイヤは、コントローラを使ってコマンドや他の指令をエンタテインメントシステムに送り、プレイ中のビデオゲームやその他のシミュレーションを制御する。例えば、コントローラには、ジョイスティックなどのユーザが操作するマニピュレータが設けられてもよい。ジョイスティックの偏向量はアナログ値からデジタル値に変換され、ゲームマシンコンソールに送られる。コントローラにはユーザが操作することができるボタンも備えられる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ジョイスティックは幅広く使用されているけれども、ジョイスティックコントローラは多少扱いにくく、使用するとき直観ではわかりにくい。
これらの背景技術の情報要素に鑑みて本発明がなされた。
【課題を解決するための手段】
【0005】
本発明のある態様は、コンピュータ読み取り可能なインストラクションが格納されたコンピュータ読み取り可能な媒体であって、前記コンピュータ読み取り可能なインストラクションが実行されるとき、ジェスチャ認識方法が実装されるように構成されている。前記方法は、a)複数のサンプル値をもつ入力ジェスチャにおいてサンプル値の全分散を計算するステップと、b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップとを含む。
【図面の簡単な説明】
【0006】
本発明が教示するものは、添付の図面と併せて、以下の詳細な説明を考慮することによって容易に理解される。
【0007】
【図1】本発明の一実施形態にしたがって作動するビデオゲームシステムを示す図である。
【図2】本発明の一実施形態にしたがって作られたコントローラの透視図である。
【図3A】図3Aは、本発明の一実施形態によるコントローラに用いられる加速度計を示す3次元概略図である。
【図3B】図3Bは、ピッチまたはロール軸について回転状態にある図3Aの加速時計を示す概略断面図である。
【図3C】図3Cは、並進加速状態にある図3Aの加速時計を示す概略断面図である。
【図3D】図3Dは、ヨー軸について回転加速状態にある図3Aの加速時計を示す概略平面図である。
【図3E】図3Eは、ヨー軸について回転加速状態にある図3Aの加速時計を示す概略平面図である。
【図4】本発明の一実施形態による方向依存のゼロ点加速時計の補正を説明する3次元概略図である。
【図5A】図1のビデオゲームシステム部のブロック図である。
【図5B】本発明の一実施形態によるビデオゲームシステムのコントローラ追跡方法を示すフロー図である。
【図5C】本発明の一実施形態によるビデオゲームシステムでのゲームプレイ中の、位置情報および/または方向情報の利用方法を示すフロー図である。
【図5D】本発明の一実施形態によるジェスチャを検出し準備する方法を示すフロー図である。
【図5E】本発明の一実施形態によるジェスチャを認識する方法を示すフロー図である。
【図6】本発明の一実施形態によるビデオゲームシステムを示すブロック図である。
【図7】本発明の一実施形態によるビデオゲームシステムにおけるセルプロセッサ実装のブロック図である。
【発明を実施するための形態】
【0008】
以下の詳細な説明には、説明のための多くの具体的な詳細事項が含まれるが、それらに対する多くの変更や修正も本発明の技術範囲に含まれることは、当業者であれば誰でも理解するであろう。したがって、以下に説明する本発明の好適な実施形態は、クレームされた発明の普遍性をなんら損なうことなく、また限定も行うことなく記載されている。
【0009】
本明細書に記述した方法、装置、スキームおよびシステムに関する様々な実施形態は、ユーザによるコントローラ本体そのものの移動、動きおよび/または操作の検出、取り込み、および追跡を提供する。ユーザによるコントローラ本体全体の検出された移動、動き、および/または操作は、プレイ中のゲームや他のシミュレーションの様々な局面を制御する付加コマンドとして用いられる。
【0010】
ユーザによるゲームコントローラ本体の操作の検出および追跡は、様々な態様で実現されうる。例えば、ある実施の形態において、加速度計やジャイロスコープなどの慣性センサをコンピュータエンタテインメントシステムと共に使用し、ハンドヘルドコントローラ本体の動きを検出してゲームの中のアクションにその動きを送ることができる。慣性センサを用いて、コントローラの多くの違った動き方、例えば上下動、ねじり、水平動、急な動き(jerking movements)、棒のような動き(wand-like motions)、急降下の動きなどを検出することができる。そのような動きは、様々なコマンドに対応し、ゲームの中のアクションに移されるようになされていてもよい。
【0011】
ユーザによるゲームコントローラ本体の操作を検出し追跡することによって、多くの違ったタイプのゲームやシミュレーションなどが実現できる。例えば、刀やライトセーバーで闘ったり、物の形をたどるために棒を使ったり、各種のスポーツイベントに参加したり、画面上での闘いやその他の遭遇戦等を行うことができる。
【0012】
図1を参照する。本発明の一実施形態にしたがって作動するように構成されたシステム100が図示されている。図示のように、システム100はコンピュータエンタテインメントコンソール102を含み、コンピュータエンタテインメントコンソール102は、ビデオゲームや他のシミュレーションの画像を表示するためのテレビまたは他のビデオディスプレイ104に接続される。ゲームまたは他のシミュレーションは、コンソール102に挿入されたDVD、CD,フラッシュメモリ、USBメモリ、または他の記録媒体106に保存できる。ユーザすなわちプレイヤ108は、ゲームコントローラ110を操作してビデオゲームまたは他のシミュレーションを制御する。図2に示されるように、ゲームコントローラ110は、ゲームコントローラ110の位置、動き、方向、または方向の変化に応じて信号を生成する慣性センサ112を備える。この慣性センサ112に加えて、ゲームコントローラ110は、既知の制御入力装置、例えば、ジョイスティック111、ボタン113、R1、L1などを備えていてもよい。
【0013】
操作中、ユーザ108はコントローラ110を物理的に動かす。例えば、コントローラ110は、ユーザ108によって、上下動、水平動、ねじり、ロール、振動、急な動き、または急降下など、どの方向に動かされてもよい。以下に説明する態様で慣性センサ112からの信号を分析することを通して、コントローラ110自体のこれらの動きが検出され撮像されてもよい。
【0014】
再び図1に戻り、システム100は、カメラまたはデジタルカメラのような他のビデオ撮像装置114を任意に具備してもよく、それらはコントローラ110がカメラ視野角116内に入るように配置される。画像撮像装置114からの画像の分析は、慣性センサ112からのデータの分析と併せて利用される。図2に示されるように、コントローラには、発光ダイオード(LED)202、204、206、208などの光源が任意に設けられ、画像分析による追跡を容易にするようになされてもよい。コントローラ110を追跡することを目的としたビデオ画像分析は、例えば、米国特許出願第11/382,037号の”SCHEME FOR DETECTING AND TRACKING USER MANIPULATION OF A GAME CONTROLLER BODY”(米国特許出願公報第2006-027086号として公開されている)に開示されており、その開示内容は参照により本明細書に援用される。コンソール102は、マイクロホン配列118などの音響トランスデューサ(変換器)を備えてもよい。コントローラ110はさらに、音響信号発生器210(例えば、図2に示されるようなスピーカ)も備え、コントローラ110の音響追跡を容易にする音源を、マイクロホン配列118や適切な音響信号処理に提供するようにしてもよい。そのような音響信号処理は、たとえば、米国特許出願第11/381,724号(米国特許出願公報第2006-0233389号として公開されている)に開示されており、その開示内容は、参照により本明細書に援用される。
【0015】
本発明のある実施の形態において、慣性センサ112からの信号は、コントローラ110に対する位置データおよび方向データの生成に用いられてもよい。そのようなデータは、コントローラ110の動きに関する多くの物理的側面、例えば、コントローラ110の場所の遠隔測定(テレメトリ)だけではなく、任意の軸方向の加速度や速度、傾斜、ピッチ、ヨー、ロールなどの計算に用いることができる。本明細書において、遠隔測定とは、一般に、対象の情報を遠隔で計測し、システムまたはシステムのデザイナやオペレータに報告することを言う。
【0016】
コントローラ110の動きを検出し追跡できることにより、コントローラ110について予め決められた動きが行われているか否かがわかる。すなわち、コントローラ110の特定の動きのパターンまたはジェスチャを、ゲームまたは他のシミュレーションの入力コマンドとして予め決めて用いることができる。例えば、コントローラ110を下方に急降下させるジェスチャを一つのコマンドとして定義し、捻るジェスチャを別のコマンドとして定義し、振動させるジェスチャをさらに別のコマンドとして定義できる。このように、ユーザ108が物理的にコントローラ110を動かす態様を、ゲームを制御する別の入力として使用してもよく、より刺激的で楽しい体験をユーザに与えることができる。
【0017】
例示として、またいかなる限定を行うことなく、慣性センサ112は加速度計であってよい。図3Aに、フレーム304に4点で、例えばスプリング306、308、310、および312によって伸縮自在に取り付けられた単一質量302の形態での加速度計300を示す。ピッチ軸およびロール軸(それぞれX軸、Y軸で表示)はフレームを横断する面内にある。ヨー軸Zは、ピッチ軸Xとロール軸Yを含む平面に対して垂直に置かれている。フレーム304は適切な形態でコントローラ110に取り付けられている。フレーム304(およびゲームコントローラ110)の加速および/または回転に応じて、質量302はフレーム304に対して相対的に変位する。スプリング306、308、310、312は、並進加速度および/または回転加速度の量と方向、および/またはピッチ、ロール、ヨーの角度に応じて伸縮する。質量302の変位、および/またはスプリング306、308、310、312の伸縮量が、例えば適切なセンサ314、316、318、320を用いて計測され、公知のまたは確定可能な方法でピッチおよび/またはロールの加速度量に応じた信号に変換される。
【0018】
質量の位置および/またはそれに働く力を追跡する方法には、抵抗歪みゲージ、音響センサ、磁気センサ、ホール素子、圧電素子、容量センサなど、多くの異なった方法がある。本発明の実施形態では、任意の数のセンサ、または任意のタイプ、任意の組み合わせのセンサを備えてもよい。例示として、またいかなる限定も行うことなく、センサ314、316、318、320は質量320の上方に配置されたギャップ封鎖電極とすることができる。質量と各電極センサ間の静電容量は、各電極に対する質量の位置変化に応じて変わることがある。各電極は、電極に対しての質量302の静電容量に関する信号(したがって質量の接近に関する信号)を生成する回路に接続されてもよい。あるいは、スプリング306、308、310、312は、伸縮に関連した信号を生成する抵抗歪みゲージを備えてもよい。さらにセンサ314、316、318、320は、静電容量センシングと歪みゲージセンシングの両方の組み合わせを実装してもよい。
【0019】
いくつかの実施形態では、フレーム304はコントローラ110に取り付けられるジンバルであってもよく、これによって、加速度計300はピッチ軸、ロール軸、および/またはヨー軸に対して一定の方向を保つことができる。このような態様にすると、実空間座標軸に対するコントローラ軸の傾きを考慮することなく、コントローラのX軸、Y軸、Z軸を実空間における対応軸に直接にマッピングすることが可能になる。
【0020】
図3B〜3Dは、加速度および/または回転の異なる条件下におけるばね306、308、310、312に対する異なる伸長と圧縮の例を示す。具体的には、図3Bは、フレーム304がY軸に関して回転したときの状況を示す。質量302に作用する重力のために、ばね306、310が伸長し、質量302はセンサ314、318に近づき、センサ316、320から遠ざかる。Y(ロール)軸に関する逆の回転は、同様にばね306、310を伸長させるが、質量をセンサ316、320に近づかせ、センサ314、318から遠ざける。同様に、X(ピッチ)軸に関する回転は、ばね308、312を伸長させ、回転の方向によっては、質力をセンサ314、316に近づかせ、センサ318、320から遠ざける。
【0021】
図3Cは、フレーム304が鋭く下方に(矢印で示すように)加速されるが、レベルは維持された状況を示す。この状況において、4つのばね306、308、310、312すべてが伸長し、質量は4つのセンサ314、316、318、320すべてに近づく。図3Dにおいて、フレーム304が左に(矢印で示すように)加速されるがレベルは維持される。この状況では、ばね306、308および312は伸長するが、ばね310は圧縮される。質量302はセンサ314、318から離れ、センサ316、320に近づくように動く。図3Dはフレーム304にZ(ヨー)軸に関する角加速度が与えられた状態を示し、この角加速度により、4つのばね306、308、310、312すべてが伸長し、質力302が4つのセンサ314、316、318、320から離れるように動く。図3B〜3Eからわかるように、フレーム304の異なる動きおよび/または方向によって、信号の特定の組み合わせが生成され、その信号はフレーム304(およびコントローラ110)の方向と動きを判定するために分析される。
【0022】
質量302に作用する外的な力がないとき、質量302のZ軸に沿った静止位置からの変位は、Z軸に沿った加速度の大きさにおおよそ比例する。検出器314、316、318、320は、質量302の移動に比例し、したがって、フレーム304(およびコントローラ110)のZ軸に沿った加速度に比例する信号を生成する。同様の方法で、センサからの信号は、X軸およびY軸に沿った加速度を導き出すために用いられる。重力が質量302に作用し、センサ314、316、318、320が非ゼロの信号を生成することがあることに留意する。たとえば、静止状態において、ジョイスティックコントローラにピッチもロールも適用されていないとき、Z軸が(重力によって決定される)垂直軸に割り当てられてもよい。質量302は、重力によって、重力のないと仮定した場合に想定される位置から変位する。結果として、変位センサは非ゼロ信号V0を生成する。これをここでは「ゼロ点」加速度信号と呼ぶ。センサ314、316、318、320からの生の信号を分析する前に、加速度信号Vからゼロ点加速度信号V0を差し引く。
【0023】
フレーム304(およびコントローラ110)がピッチおよびロールに関して同じ方位にとどまるなら、ゼロ点加速度信号V0は定数である。しかし、ゼロ点加速度信号V0はピッチおよびロール軸に関する回転量に依存する。本発明の実施の形態では、ゼロ点加速度信号V0に対するピッチとロールの影響を考慮に入れる。たとえば、図4は、チューブ軸Zに沿ってチューブ404内で質量402の動きが制約される単一軸加速度計400の状態を示す。ばね406が質量402をチューブ404の端部のキャップに接続する。センサ408は、たとえば、上述の静電容量センサである。もしチューブ軸Zが、チューブ404のピッチおよびロールのゆえに垂直方向Z’に関して角度θだけ(透視図で示すように)傾くと、「回転」ゼロ点加速度信号V0’がV0とθに関して次式のように予測される。
V0’=V0cosθ
θ=90度という極端な例では、V0’=0であることに留意する。
【0024】
角度θは一般にはピッチとロールの角度に依存する。これらの角度は個々のセンサからの信号によって判定される。チューブ軸Zに沿った方向の単位ベクトルzは、既知の初期方位(たとえば、加速度計の軸が垂直軸に沿った方向の単位ベクトルz’に割り当てられた初期方位)に対するピッチとロールの絶対的な値から構成される。初期方位は、加速度計400からの安定した信号を生成するジョイスティックコントローラの方位であれば任意の方向でよいことに留意する。単位ベクトルzとz’の間のドット積は、二つのベクトル間の角度θのコサインで与えられる。このドット積にゼロ点信号V0を乗じて好ましい補正ファクタを供給してもよい。補正ファクタはセンサ408から得られた加速度信号から差し引きされる。
【0025】
本センサの実施の形態において、いろいろなタイプの慣性センサデバイスを用いて6つの自由度(たとえば、X、Y、Zの並進とX、Y、Z軸に関する回転)の情報を供給することができる。6つの自由度に関する情報を供給する好適な慣性センサの例には、図3Aに示したタイプの加速度計、一つまたは複数の単一軸加速度計、機械的なジャイロスコープ、リングレーザジャイロスコープ、あるいはこれらの二つ以上の組み合わせが含まれる。
【0026】
独創的な方法にしたがって、センサからの信号を分析してビデオゲームプレイ中のコントローラの動きおよび/または方位を判定してもよい。そのような方法は、プロセッサ読み取り可能な記録媒体に格納され、デジタルプロセッサ上で実行される、プロセッサ実行可能なプログラムコード列として実装することができる。たとえば、図5Aに示すように、ビデオゲームシステム100は、コンソール102上のプロセッサ502を含む。プロセッサ502は、たとえばビデオゲームコンソールで一般に使われるタイプのマイクロプロセッサのような、任意の好適なデジタルプロセッサユニットであってもよい。プロセッサは、プロセッサ読み取り可能なインストラクションの実行を通して慣性分析部504を実装する。これらのインストラクションの一部は、メモリ506に格納される。あるいは、慣性分析部504は、ハードウエアたとえば特定用途向け集積回路(ASIC)で実装してもよい。そのような分析部のハードウエアはコントローラ110またはコンソール102に設けてもよく、あるいは、他の場所にリモートに設けてもよい。ハードウエア実装において、分析部504はプログラマブルであり、プロセッサ502、または、たとえばUSBケーブル、ワイヤレスコネクションあるいはネットワークで接続されたリモートに設置された他のソースからの外部信号に応答してもよい。
【0027】
慣性分析部504は、慣性センサ112によって生成された信号を分析し、コントローラ110の位置および/または方向の情報を利用するインストラクションを含むか、実装する。たとえば、図5Bのフローダイアグラム510に示すように、ブロック512に示すように慣性センサ112によって信号が生成される。ブロック514に示すように、慣性センサ信号を分析してコントローラ110の位置および/または方向に関する情報を決定する。ブロック516に示すように、位置および/または方向の情報はシステム100でビデオゲームプレイ中に利用される。
【0028】
ある実施の形態において、ゲームプレイ中のユーザ108のジェスチャのカタログを作り、ジェスチャを認識する際、位置情報および/または方向情報を用いてもよい。図5Cのフロー図520に示されるように、コントローラ110の経路は、ブロック522で示される通り、位置情報および/または方向情報を用いて追跡することができる。例示として、またいかなる限定を与えることなく、この経路には、いくつかの座標系に対するコントローラの質量中心位置を示す点セットが含まれてもよい。各位置ポイントは、一つ以上の座標、例えば、デカルト座標系におけるX,Y,Z座標で表されてもよい。経路上の各点が時刻と関連付けられていてもよく、これによって、経路の形状と経路に沿ったコントローラの進行の両方を監視することができる。さらに、前記セットの各点は、コントローラの方向を表すデータ、例えば、コントローラの質量中心回りの一つ以上の回転角などと関連付けられてもよい。さらに、経路上の各点は、コントローラの質量中心の速度および加速度、質量中心回りのコントローラの角回転率および角加速度率の各値と関連付けられてもよい。
【0029】
ブロック524に示されるように、追跡経路は、プレイ中のビデオゲームの状況に関連した既知のジェスチャおよび/または事前に記録されているジェスチャ508に対応する一つ以上の記憶された経路と比較されてもよい。分析部504は、ユーザを認識するか、または音声認証ジェスチャなどを処理するように構成されていてもよい。例えば、ユーザに特有のジェスチャを通して、分析部504によりユーザを特定してもよい。そのような特有のジェスチャは、メモリ506に保存されている事前に記録されたジェスチャ508に記録されて含められる。記録処理においては、任意に、ジェスチャの記録中に生成される音を保存してもよい。被計測環境がマルチチャネルの分析部でサンプリングされて処理される。プロセッサは、ジェスチャモデルを参照し、音声パターンまたは音響パターンに基づいて、高精度かつ高能率でユーザまたは物体を決定、認証、および/または特定できる。
【0030】
図5Aに示されるように、ジェスチャはメモリ506に保存される。ジェスチャの例として、ボールのような物を投げる、バットやゴルフクラブのようなものを振る、手押しポンプを押す、ドアまたは窓を開閉する、ハンドルまたは他の車両コントロールを回す、格闘家がパンチなどを出す、研磨(sanding)動作、ワックス掛けとふき取り、家のペンキ塗り、振動、おしゃべり、ロール、フットボール投げ、ノブを回す動き、3Dマウスの動き、スクロール、既知の輪郭を持った動き、記録可能なあらゆる動き、あらゆるベクトルに沿った前後の動き、すなわち空間内の任意の方向に沿ったタイヤの空気入れ、小道に沿った移動、正確な停止時間と開始時間を持った動き、ノイズフロア内やスプライン内などで記録、追跡および繰り返し可能なユーザ操作に基づく任意の時刻、などがあるが、これらに限定されない。これらのジェスチャはそれぞれ、経路データから事前に記録し、時間基準のモデルとして保存できる。経路が安定状態から外れると、その経路が除去処理によって保存ジェスチャと比較することができるという安定状態についての仮定から、経路と保存ジェスチャとの比較がスタートする。ブロック526において一致しなければ、分析部504はブロック522に戻ってコントローラ110の経路追跡を継続できる。経路(またはその一部分)と保存ジェスチャとの間で十分な一致があれば、528に示されるように、システム100の状態、たとえばゲームの状態を変えることができる。システムまたはゲームの状態の変化は、これらに限定されないが、中断、コントロール信号の送信、変数の変化などを含んでもよい。
【0031】
これがどのようにして起こるか、例を一つ示す。コントローラ110が経路の安定状態から外れたと判断すると、分析部504はコントローラ110の動きを追跡する。コントローラ110の経路が保存されているジェスチャモデル508に定義される経路と合致している間は、これらのジェスチャは「ヒット」であり得る。コントローラ110の経路が、いずれかのジェスチャモデル508から外れると(耐ノイズ設定内で)、そのジェスチャモデルはヒットリストから除去してもよい。各ジェスチャ参照モデルは、ジェスチャが記録される時間軸を備える。分析部502は、適切な時間指標で、コントローラの経路データを保存ジェスチャ508と比較する。安定状態条件が発生するとクロックをリセットする。安定状態から外れる(すなわち、ノイズしきい値外で動きが追跡される)と、ヒットリストには、可能性のあるジェスチャモデルすべてが入ってくる。クロックがスタートして、コントローラの動きがヒットリストと比較される。再び、時系列で見ると比較はたやすい。ヒットリスト内のいずれかのジェスチャがジェスチャの端に到達すると、それはヒットである。
【0032】
ある実施形態では、分析部504は、特定のイベントが発生する時間をゲームプログラムに通知してもよい。そのようなイベントの例には下記のものが含まれる。
【0033】
・加速度0点への到達で中断(X軸、Y軸、および/またはZ軸)
あるゲーム状況において、コントローラの加速度が変曲点で変化すると、分析部504は、ゲームプログラム内のルーチンに通知するかまたはルーチンを中断できる。例えば、ユーザ108は、コントローラ110を使ってフットボールシミュレーションゲーム内のクォータバックを表すゲームアバターを制御できる。分析部504は、慣性センサ112からの信号から生成される経路を介して(フットボールを表す)コントローラを追跡してもよい。コントローラ110のある特定の加速度変化は、フットボールが投げられたことを信号発信してもよい。このときに、分析部はプログラム内の別のルーチン(例えば、物理シミュレーションパッケージ)をトリガして、投てき点におけるコントローラの位置、速度および/または方向に基づき、フットボールの軌道をシミュレーションできる。
【0034】
・新しいジェスチャの認識で中断
【0035】
また、分析部504は一つ以上の入力で構成されてもよい。そのような入力の例を以下に示すが、これらに限定されない。
【0036】
・ノイズレベルの設定(X軸、Y軸またはZ軸)
ノイズレベルは、ゲーム中のユーザの手の震えを分析するときの基準許容誤差であってもよい。
【0037】
・サンプリングレート設定
本明細書において、サンプリングレートとは、分析部502による慣性センサからの信号のサンプリング頻度を言う。サンプリングレートは信号のオーバーサンプリングかまたは平均化に設定されてもよい。
【0038】
・ギアリング設定
本明細書において、ギアリングとは、概してゲーム内で起こる動きに対するコントローラの動きの比を言う。ビデオゲーム制御の文脈におけるこのような「ギアリング」の例は、2006年5月7日付米国特許出願第11/382,040号(米国特許出願公報第20060252477号として公開)に開示されており、その開示内容は参照により本明細書に援用される。
【0039】
・マッピングチェーンの設定
本明細書において、マッピングチェーンとはジェスチャモデルのマップを言う。ジェスチャモデルマップは特定の入力チャネルに対して(例えば、慣性センサ信号だけから生成される経路データに対して)、またはミキサ装置に形成されるハイブリッドチャネルに対して作成される。慣性分析部504と同様の2台以上の異なった分析部によって、3つの入力チャネルが供給される。具体的には、これらには、ここで述べた慣性分析部504、例えばその開示内容が参照により本明細書に援用される米国特許出願第11/382,034号の”SCHEME FOR DETECTING AND TRACKING USER MANIPULATION OF A GAME CONTROLLER BODY”(米国特許出願公報第20060256081号として公開)に開示されたビデオ分析部、および、例えばその開示内容が参照により本明細書に援用される米国特許出願第11/381,721号(米国特許出願公報第20060239471号として公開)に開示される音響分析部が含まれてもよい。これら分析部はマッピングチェーンを用いて構成することができる。マッピングチェーンは、分析部やミキサに対する設定ができるように、ゲームプレイ中にゲームによって交換することができる。
【0040】
再び図5A、ブロック502に戻る。当業者であれば、慣性センサ112からの信号を生成するには多くの方法があることは理解するであろう。とりわけ2〜3の例について図3A〜3Eを参照して説明する。ブロック504を参照して、ブロック502で生成されるセンサ信号を分析しコントローラ110の位置および/または方向に関係する情報を得るには多くの方法がある。例示として、またいかなる限定を行うことなく、位置および/または方向に関係する情報には、個別にまたは任意の組み合わせて以下のパラメータに関する情報が含まれるが、これらに限定されない。
【0041】
・コントローラの方向
コントローラ110の方向は、ある基準方向に対するピッチ、ロール、またはヨー角(例えばラジアン)で表されてもよい。コントローラ方向の変化率(例えば、角速度または角加速度)は、位置情報および/または方向情報に含まれていてもよい。慣性センサ112がジャイロスコープセンサを含む場合、コントローラの方向情報は、ピッチ角、ロール角、またはヨー角に比例した一つ以上の出力値の形で直接求めることができる。
【0042】
・コントローラの位置(例えば、ある基準フレームにおけるコントローラ110のデカルト座標X、Y,Z)
・コントローラのX軸速度、たとえば、コントローラ110のX軸に沿った位置の時間変化率
・コントローラのY軸速度、たとえば、コントローラ110のY軸に沿った位置の時間変化率
・コントローラのZ軸速度、たとえば、コントローラ110のZ軸に沿った位置の時間変化率
・コントローラのX軸加速度、たとえばX軸速度の時間変化率
・コントローラのY軸加速度、たとえばY軸速度の時間変化率
・コントローラのZ軸加速度、たとえばZ軸速度の時間変化率
【0043】
位置、速度および加速度に関して、位置情報および/または方向情報がデカルト以外の座標系で表されてもよいことに注意する。例えば、円柱座標系または球座標系を位置、速度、加速度のために使用してもよい。X軸、Y軸、Z軸に対する加速度情報を、例えば図3A〜3Eを参照して説明したような加速度計タイプのセンサから直接に求めてもよい。X速度、Y速度、Z速度における変化を決定するために、ある初期時刻からの時間に対してX加速度、Y加速度、Z加速度を積分してもよい。これらの速度は、初期時刻における既知の値であるX速度、Y速度、およびZ速度に速度変化を加えることで算出してもよい。コントローラのX変位、Y変位およびZ変位を決定するために、時間に対してX速度、Y速度およびZ速度を積分してもよい。X位置、Y位置およびZ位置は、初期時刻における既知のX位置、Y位置およびZ位置に変位を加えることで決定してもよい。
【0044】
・安定状態 Y/N
この特殊な情報はコントローラが安定状態にあるかどうかを示し、いずれの位置として定義することができ、また変化もする。好適な実施例では、安定状態にある位置とは、コントローラが、ユーザの腰とほぼ同じ高さにあっておおよそ水平方向に保持されているような位置としてもよい。
【0045】
・前回の安定状態からの時間
「前回の安定状態からの時間」は、概して、(上述したような)安定状態が最後に検出された以降に経過した期間の長さに関係するデータを指す。その時間の決定は、前に注目したように、実時間、処理サイクル、またはサンプリング周期で計算されてもよい。「前回の安定状態からの時間」のデータ時間は、ゲーム環境におけるキャラクタまたは物体のマッピングの正確さを確保するために、初期点に関するコントローラの追跡をリセットすることに対して重要である。このデータはまた、ゲーム環境でその後に(排他的にまたは包括的に)実行される可能性のある利用可能なアクションおよび/またはジェスチャの決定に対しても重要である。
【0046】
・認識された最後のジェスチャ
「認識された最後のジェスチャ」とは、概して、(ハードウェアまたはソフトウェアで実装可能な)ジェスチャ認識部505によって認識された最後のジェスチャを指す。後に認識される可能性のあるジェスチャまたはゲーム環境で起こる他のアクションに前回のジェスチャが関係し得るという事実に対して、認識された最後のジェスチャの特定は重要である。
【0047】
・認識された最後のジェスチャ時間
【0048】
上記の出力は、ゲームプログラムまたはソフトウェアでいつでもサンプリングできる。
【0049】
本発明の好ましい実施の形態によれば、コントローラ110で作られたジェスチャは、発明の方法にしたがって、カタログに入れられ、および/または、認識される。図5Dは、ジェスチャを検出し、それをカタログ作成と認識のために準備する方法530の一例を示すフローダイアグラムである。図5Dに示すように、慣性センサ112のようなセンサ、ビデオキャプチャデバイス114、またはイメージマイクロホンアレイ118(あるいはこれらの二つ以上の組み合わせ)からの入力データは、符号532で示すようにローパスフィルタされる。特に、当該入力データを約50%のナイキスト周波数でローパスフィルタしてもよい。符号534において、コントローラ110のエネルギーEは次のように計算することができる。
E=(1−Δt)E0+Δt・Dot(S−B,S−B)
ここで、Sは現在のサンプルベクトルであり、Bは基準ベクトルである。
Δtは、現在のフレームのタイムスタンプと以前のフレームのタイムスタンプの間の差。
E0は、最後のフレームからのエネルギー。
Dot(S−B,S−B)は、ベクトル差S−Bとそれ自身の間のドット積である。
【0050】
一例として、一般性を損なうことなく、サンプルベクトルSと基準ベクトルBの成分は、コントローラ110の動きのX、Y、Z成分とヨー量(Z軸に関する回転)を含んでもよい。さらに、サンプルベクトルSと基準ベクトルBの成分は、重力ベクトルのX、Y、Z成分とヨー成分を含んでもよい。重力ベクトルは、コントローラ110の参照フレームに関して重力の方向を示す。サンプルベクトルSと基準ベクトルBのX、Y、Z、およびヨー成分は、コントローラ110の位置、速度、加速度値である。これらの値は、たとえば、慣性センサ112、イメージセンサ114、マイクロフォンアレイ118、あるいはこれらの二つ以上の組み合わせによって生成される信号から取得される。
【0051】
静的エネルギー閾値は、試行錯誤によって調整される。コントローラ110のエネルギーがあらかじめ定められたある静的エネルギー閾値以下であるならば、符号536および538で示すように基準ベクトルが更新される。特に、基準ベクトルBの値は次式にしたがって新しい値に更新される。
B=(1−α)・B0+α*S
ここで、B0は以前のフレームからの基準ベクトルを表し、αは定数または変数の調整パラメータである。調整パラメータαを変えることで、ジェスチャの認識が終わったならば、基準値をより速くもとに戻すことができる。
【0052】
サンプルベクトルSは、符号540に示すように新しい基準に合わせるために調整される。特に、サンプルベクトルSの新しい値は次式で与えられる。
S=S−B
【0053】
基準値を更新する際、ユーザ108が、たとえば、椅子に座ったり、もたれかかったりした結果、自分の静止位置を変えたことで、コントローラ110の方向に変化があったことを考慮に入れる。
【0054】
入力データの局所分散(local variance;LV)は符号542で示すように所定数の分散サンプル(variance sample;VS)にわたって計算される。
LV=(VS・ΣS2+(ΣS)2)/VS2
【0055】
局所分散LVは、たとえば5サンプルのスライディングウインドウにわたって取られた分散であってもよい。局所分散はジェスチャの記録の開始と終了のために使うことができる。たとえば、平均局所分散のスカラ値があらかじめ定められたジェスチャ閾値よりも大きいならば、符号544に示すようにサンプルをジェスチャとして記録することを開始する。いったん平均局所分散LVがジェスチャ閾値よりも低く下がったならば、符号546に示すようにサンプルの記録を中止する。実施の形態によっては、異なるジェスチャ閾値を記録の開始と終了のために用いてもよい。
【0056】
記録を中止した後、符号548に示すように、記録されたジェスチャの全分散(total variance)をジェスチャの多くのサンプル(GS)にわたって計算する。特に、全分散TVは次式にしたがって計算される。
TV=(GS・ΣS2+(ΣS)2)/GS2
上記の式において、合計はジェスチャのサンプルGSにわたって取られる。
【0057】
一般的に、各サンプルは2以上の成分で形成されている。たとえば、コントローラの動きの各自由度に対して一つの成分である。全分散TVは、個々の分散成分の集合(サンプルSの各成分に対する分散成分について一つ)に分解することができる。符号550に示すように、全分散TVのスカラ成分はランクづけされ、パッドの軸が最大動きから最小動きへ順序づけされる。そのようなランクづけは、一つのジェスチャの間の異なる期間で異ならせてもよい。
【0058】
いったんジェスチャが記録されると、そのジェスチャはカタログに入れられ、符号552で示すように他のジェスチャに対する比較に使われる。あるいは、記録されたジェスチャは、符号554で示すようにジェスチャ認識のために、蓄積されたジェスチャのカタログと比較される。ジェスチャ認識の一例を、図5Eを参照して以下説明する。
【0059】
図5Eは、本発明の実施の形態に係るジェスチャ認識の方法560を示すフローダイアグラムである。入力されたジェスチャIGはジェスチャカタログにおける一つ以上のカタログジェスチャCGのそれぞれと比較される。あるいは、入力されたジェスチャIGは、ジェスチャカタログにおけるあらかじめ定められたカタログジェスチャCGの部分集合に対してのみ比較されてもよい。カタログジェスチャCGの部分集合をゲームロジックによって決定してもよい。ある実施の形態では、ユーザが生成したジェスチャとカタログ化されたジェスチャの間の重複を判定し、互いに近すぎるジェスチャにフラグ付けをしてもよい。そのようなジェスチャにフラグ付けをすることにより、あるジェスチャを他のジェスチャと間違うことを避けることができる。
【0060】
図5Eに示すように、スケールSが符号562に示すように計算される。
S=CGSC/IGSC
ここでCGSCはカタログジェスチャにおけるサンプルカウントを示し、IGSCは入力されたジェスチャIGに対するサンプルカウントを示す。
【0061】
このスケールは、入力されたジェスチャIGよりも著しく長いまたは著しく短いカタログジェスチャを取り除くために使われる。たとえば、特定のカタログジェスチャCGに対するスケールSが低い方の閾値(たとえば0.5)よりも小さいか、高い方の閾値1.5よりも大きいなら、このカタログジェスチャはスキップされ、ジェスチャ認識を次のカタログジェスチャに進める。
【0062】
符号564に示すように、カタログジェスチャを上記のように計算されたスケールSにより、たとえば線形補間によってスケールする。スケールSは、CGおよびIGにもとづき、どちらがより多くのサンプルをもつかに依存して調整される。CGとIGの内、短い方、すなわちサンプルが少ない方がスケールアップされる。
【0063】
符号566に示すように、入力されたジェスチャIGとカタログジェスチャCG間の相関(COR)が次に計算される。たとえば、相関CORは次のように計算される。
COR=COV(CG,IG)/(σcg・σig)
ここでσcgはカタログジェスチャCGのサンプルに対する標準偏差ベクトルを示し、σigは入力ジェスチャIGのサンプルに対する標準偏差ベクトルを示す。さらに、COV(CG,IG)はカタログジェスチャCGと入力ジェスチャIGの共分散を表し、たとえば、次式で与えられる。
COV(CG,IG)=(1/sc)・Σ(CGi−μcg)・(IGi−μig)
ここで、μcgはカタログジェスチャのサンプルの平均値であり、μigは入力ジェスチャのサンプルの平均値である。総和(sum)は、入力ジェスチャのすべてのサンプルにわたって取られる。
【0064】
相関CORにおけるスカラ値は、符号568に示すように、最終的なスカラ相関FCORを計算するための入力として使われる。FCORはCORの成分の重みづけ平均を用いて計算される。たとえば、上記のように計算された全分散ランクに対応する重みを用いて、CORのX、Y、Zおよびヨー成分のそれぞれに0、0.5、0.25、0.025の重みを適用してもよい。各ランクに関連づけられる重みは、入力されたジェスチャIGの間、時間とともに変化してもよい。
【0065】
符号570で示されるように、入力されたジェスチャIGの全分散ランクはカタログジェスチャに対する全分散ランクと比較される。異なる各分散ランクに対して、ペナルティがFCORに適用される。
【0066】
FCORの最大値は、符号572で示すように各カタログジェスチャの比較から決定される。符号574に示すように、もし最大FCORがあらかじめ定められた認識閾値RTよりも大きいならば、ジェスチャは、そのFCORに対応するカタログジェスチャとして認識される。
【0067】
本発明の実施形態によれば、上述のタイプのジェスチャ認識方法は、図6に示すようなビデオゲームシステムに実装することができる。具体的には、ビデオゲームシステム600は、プロセッサ601とメモリ602(例えば、RAM、DRAM、ROMなど)を備える。ある実施の形態では、ビデオゲームシステム600は、並列処理が実装されるのであれば、複数のプロセッサ601を備えてもよい。メモリ602はデータとゲームプログラムコード604を備え、上述のように構成された部分を備える。具体的には、メモリ602は上述したような保存コントローラ経路情報を含む慣性信号データ606を備えてもよい。メモリ602は、保存ジェスチャデータ608、例えば、ゲームプログラム604に関連した一つ以上のジェスチャを表すデータなどを含んでもよい。プログラムコード604は、たとえば、図5Dを参照して上述したようなジェスチャ検出、および/または、図5Eを参照して上述したようなジェスチャ認識を実装する命令を含んでもよい。
【0068】
システム600はさらに、入出力(I/O)装置611、電源(P/S)612、クロック(CLK)613およびキャッシュ614などの公知のサポート機能610を備えてもよい。装置600は任意に、プログラムおよび/またはデータ保存のためのディスクドライブ、CD−ROMドライブ、テープドライブなどの大容量記憶装置615を備えてもよい。コントローラは任意に、コントローラ630とユーザとの相互作用を容易にするために、ディスプレイ装置616とユーザインタフェース618を備えてもよい。ディスプレイ装置616は、テキスト、数値、グラフ記号や画像を表示する陰極線管(CRT)、またはフラットパネルスクリーンの形であってもよい。ユーザインタフェース618は、キーボード、マウス、ジョイスティック、ライトペンや他の装置を備えてもよい。また、ユーザインタフェース618は分析対象の信号を直接取り込むために、マイクロホン、ビデオカメラ、またはその他の信号変換装置を備えてもよい。システム600のプロセッサ601、メモリ602、および他の部品は図6に示すように、システムバス620を介して、互いに信号(例えばコード命令およびデータ)を交換してもよい。
【0069】
マイクロホン配列622は、入出力装置611を介してシステム600に接続されてもよい。マイクロホン配列は、約2〜約8個のマイクロホン、好ましくは約4個を、隣接のマイクロホンとは約4cm未満、好ましくは約1〜2cmの距離離間して備えてもよい。好適には、配列622のマイクロホンは無指向性マイクロホンである。オプションの撮像装置623(例えばデジタルカメラ)は、入出力装置611を介して装置600に接続されてもよい。カメラに機械的に接続された一つ以上の位置決めアクチュエータ625が、入出力装置611を介してプロセッサ601との間で信号を交換してもよい。
【0070】
本明細書では、「入出力装置」という用語は、概してシステム600との間および周辺装置との間でデータを送受信するプログラム、操作または装置のいずれかを指す。すべてのデータ送受信は、ある装置からの出力と別の装置への入力と考えてよい。周辺装置には、キーボードやマウスなどの入力専用装置、プリンタなどの出力専用装置に加えて、入力装置および出力装置の両方として作動できる書き込み可能CD-ROMなどの装置が含まれてもよい。「周辺装置」という言葉には、マウス、キーボード、プリンタ、モニタ、マイクロホン、ゲームコントローラ、カメラ、外部Zipドライバまたはスキャナなどの外部装置に加えて、CD−ROMドライブ、CD−Rドライブまたは内部モデムなどの内部装置、または、フラッシュメモリ読み取りおよび書き込みハードドライブなどの他の周辺装置が含まれる。
【0071】
本発明のある実施形態では、装置600は、有線(例えばUSBケーブル)または無線を通した入出力装置611を介してプロセッサに接続されたコントローラ630を具備したビデオゲーム装置であってもよい。ある実施の形態では、ジョイスティックコントローラ630はユーザの身体に装着可能であってもよい。コントローラ630は、ビデオゲームプレイ中に通常使用されるコントロール信号を提供するアナログジョイスティックコントロール631と既知のボタン633を具備してもよい。そのようなビデオゲームは、メモリ602、または大容量記憶装置615に関連する他のプロセッサ読み取り可能媒体に保存されるプログラム604からの、プロセッサ読み取り可能データおよび/または指令として実装されてもよい。いくつかの実施形態では、ミキサ605は、アナログジョイスティックコントロール631とボタン633から入力を受信できる。
【0072】
ジョイスティックコントロール631は、通常、コントロールスティックを左右に動かすとX軸沿いの動きの信号を発信し、前後(上下)に動かすとY軸沿いの信号を発信するように構成されていてもよい。3次元の動き用に構成されたジョイスティックでは、スティックを左(反時計回り)または右(時計回り)に捻るとZ軸沿いの動きの信号を発信してもよい。これらX,Y,Zの3軸は、特に航空機に関する場合に、それぞれロール、ピッチ、ヨーと呼ばれることがある。
【0073】
従来の特徴に加えて、コントローラ630は、上述のような一つ以上の慣性センサ632を備えてもよい。慣性センサ632は、慣性信号を介して位置情報および/または方向情報をプロセッサ601に提供できる。方向情報には、コントローラ630の傾き、ロールまたはヨーなどの角度情報が含まれていてもよい。例示として、慣性センサ632には、任意の数の加速度計、ジャイロスコープまたは傾斜センサ、またはこれらの任意の組み合わせが含まれていてもよい。好適な実施形態では、慣性センサ632には、傾斜およびロール軸に対するジョイスティックコントローラの方向を検知するように適応された傾斜センサ、ヨー軸沿いの加速度を検知するように適応された第1の加速度計、およびヨー軸に対する角加速度を検知するように適応された第2の加速度計を備える。加速度計は、例えば、一つ以上のばねで取り付けられた質量と一つ以上の方向に対する質量の変位を検知するセンサとを備えるMEMS装置として実装されてもよい。質量の変位に依存するセンサからの信号は、ジョイスティックコントローラ630の加速度決定に用いられてもよい。そのような技術は、メモリ602に保存されプロセッサ601によって実行されるゲームプログラム604からの命令によって実現される。
【0074】
例示として、慣性センサ632として適した加速度計は、例えば、ばねなどで、フレームに3〜4点で伸縮自在に接続された単一の質量であってもよい。ピッチ軸とロール軸は、ジョイスティックコントローラ630に設けられたフレームと交差する面に存在する。フレーム(およびジョイスティックコントローラ630)がピッチ軸、ロール軸の回りを回転するにつれて、質量が重力の影響下で変位し、ばねがピッチ角および/またはロール角に依存する態様で伸縮する。質量の変位が検知され、ピッチ量および/またはロール量に依存した信号に変換される。ヨー軸回りの角加速度またはヨー軸沿いの線形加速度は、ばねの伸縮または質量の動きの特徴的なパターンを生成し、それらのパターンは検知されて角加速度量または線形加速度量に応じた信号に変換される。そのような加速度計装置は、質量の動きおよびばねの伸縮力を追跡することによって、傾斜、ヨー軸回りのロール角加速度およびヨー軸沿いの線形加速度を計測できる。質量の位置および/またはそれに働く力を追跡する方法には多くの違った方法があり、それらの方法には、抵抗歪みゲージ、音響センサ、磁気センサ、ホール効果素子、圧電素子、容量センサなどが含まれる。ある実施の形態では、慣性センサ632をジョイスティックコントローラ630の「本体」に取り外し可能に搭載してもよい。取り外し可能な慣性センサは、たとえばUSB接続を介して、コントローラ630の電子部品と信号を交換することができる。取り外し可能な慣性センサは、多数の異なる接続のいずれかを用いてジョイスティックコントローラの本体と機械的に接続されてもよい。
【0075】
また、ジョイスティックコントローラ630は、発光ダイオード(LED)などの光源634を一つ以上含んでもよい。光源634は、コントローラを他のコントローラと識別するために用いられる。例えば、一つ以上のLEDがあれば、LEDのパターンコードをぱっと光らせたり保持することで識別できる。例示として、ジョイスティックコントローラ630上に5個のLEDが直線または2次元模様で設けることができる。LEDを直線状に配列することが好ましいが、他の方法として、四角形またはアーチ状に配置して、撮像装置623で得られたLEDパターン画像の分析時に、LED配列の画面の決定を容易にするようになされてもよい。さらに、LEDパターンコードは、ゲームプレイ中のジョイスティックコントローラ630の位置決定にも使用できる。例えば、LEDは、コントローラの傾斜、ヨーおよびロールの特定を助けることができる。この検出パターンによって、例えば飛行機ゲームなどのゲームで、ユーザによりよい感情を提供できる。撮像装置623は、ジョイスティックコントローラ630と光源634を含む像を撮影してもよい。そのような画像を分析すると、ジョイスティックコントローラの位置および/または方向が決定できる。そのような分析は、メモリ602に保存されプロセッサ601で実行されるプログラムコード命令604によって実現されてもよい。撮像装置623による光源634の撮像を容易にするために、光源634は、ジョイスティックコントローラ630の複数の異なる端部、例えば、前方と後方に配置してもよい(図6に影として示す)。そのような配置することによって、撮像装置623は、ユーザのジョイスティックコントローラ630の保持の仕方に応じたジョイスティックコントローラ630の種々の方向に対して、光源634の像を得ることができる。
【0076】
さらに、光源634は、例えば、パルスコード、振幅変調または周波数変調フォーマットでテレメトリ信号をプロセッサ601に提供してもよい。そのようなテレメトリ信号は、いずれのジョイスティックボタンが押されているか、および/またはどれ位強くボタンが押されているかを表してもよい。テレメトリ信号は、例えばパルス符号化、パルス幅変調、周波数変調または光強度(振幅)変調などによって、光信号に符号化されてもよい。プロセッサ601は、光信号からテレメトリ信号を復号化し、復号化されたテレメトリ信号に応じてゲームコマンドを実行してもよい。テレメトリ信号は、撮像装置623で得られたジョイスティックコントローラ630の画像の分析から復号化されてもよい。または、プロセッサ601は、光源634からのテレメトリ信号受信専用の独立した光学センサを具備してもよい。コンピュータプログラムとのインタフェースにおける強度決定に併せてのLEDの使用は、例えば、2006年5月4日出願の米国特許出願第11/429,414号の”USE OF COMPUTER IMAGE AND AUDIO PROCESSING IN DETERMINING AN INTENSITY AMOUNT WHEN INTERFACING WITH A COMPUTER PROGRAM”(米国特許出願公報第20060277571号として公開)、発明者Richard L. Marks et al.に開示されており、その開示内容は全体として、参照により本明細書に援用される。また、光源634を含む画像の分析は、テレメトリおよびジョイスティックコントローラ630の位置および/または方向の決定にも用いることができる。そのような技術は、メモリ602に保存されプロセッサ601によって実行されるプログラム604の命令によって実現されてもよい。
【0077】
プロセッサ601は、撮像装置623で検出された光源634からの光信号、および/またはマイクロホン配列622によって検出された音響信号からの音源場所と音源特性情報と共に、慣性センサ632からの慣性信号を用いて、ここで記述したようなジェスチャの検出と認識と共に、コントローラ630および/またはユーザの場所および/または方向に関する情報を推測してもよい。例えば、「音響レーダ」の音源場所およびその特性は、マイクロホン配列622と共に用いられて、ジョイスティックコントローラの動きが(慣性センサ632および/または光源634を通して)独立に追跡されている間、移動音源を追跡する。音響レーダ選択において、較正済み聴取領域が実行時間中に選択されてもよい。較正済み聴取領域以外の音源から発生した音はフィルタされて除かれてもよい。較正済み聴取領域は、撮像装置623の焦点または視野にある音量に対応した聴取領域を含んでいてもよい。音響レーダの例は、米国特許出願第11/381,724号(米国特許出願公報第20060233389号として公開)に開示されており、その開示内容は参照により本明細書に援用される。コントロール信号をプロセッサ601に供給するための種々の形態を種々組み合わせたものも、本発明の実施形態と併せて用いられてもよい。そのような技術は、メモリ602に保存されプロセッサ601で実行されるプログラムコード命令604によって実現されてもよく、また、任意に、実行時間中は較正済み聴取領域を選択し、較正済み聴取領域以外の音源から発生した音はフィルタをかけて除くための一つ以上のプロセッサを指揮する一以上の指令を含んでもよい。較正済み聴取領域は、撮像装置623の焦点または視野にある音量に対応した聴取領域を含んでいてもよい。
【0078】
プログラム604は任意に、マイクロホン配列622のマイクロホンM0〜MMから離散時間領域入力信号Xm(t)を生成し、聴取セクタを決定し、有限インパルス応答フィルタ係数を選択するセミブラインド(semi-blind)音源分離において聴取セクタを用いて、入力信号Xm(t)から異なる音源を分離する一つ以上のプロセッサを指揮する一以上の命令を含んでもよい。プログラム604には、基準マイクロホンM0からの入力信号X0(t)以外の選択入力信号Xm(t)に、一つ以上の非整数遅延(fractional delay)を適用する命令をさらに備えてもよい。マイクロホン配列からの離散時間領域出力信号y(t)の信号対雑音比を最適化するために、各非整数遅延が選択されてもよい。非整数遅延は、基準マイクロホンM0からの信号が、配列の他のマイクロホンからの信号に対して最初であるように選択されてもよい。プログラム604は、非整数遅延Δを、y(t+Δ) = x(t+Δ)*b0 + x(t-1+Δ)*b1 + x(t-2+Δ)*b2 +…+ x(t-N+Δ)bNとなるようにマイクロホン配列の出力信号y(t)に導入する命令を含んでもよい。ここで、Δは0〜±1である。そのような技術の例は、2006年5月4日出願の米国特許出願第11/381,729号"ULTRA SMALL MICROPHONE ARRAY"(米国特許出願公報第20070260340号として公開)、発明者Xiadong Maoに詳細に開示されており、その開示内容は参照により本明細書に援用される。
【0079】
さらに、例えばスピーカ、ブザー、ホーンあるいはパイプなどのサウンドエミッタ636がジョイスティックコントローラ630に取り付けられてもよい。ある実施形態では、サウンドエミッタはジョイスティックコントローラ630の「本体」に脱着可能に取り付けられても良い。プログラムコード604によって、マイクロホン配列622で検出した音の場所が特定され特性が明らかになる「音響レーダ」の実施例では、サウンドエミッタ636が、マイクロホン配列622で検出され、プログラムコード604に用いられてゲームコントローラ630の位置を追跡する音響信号を提供してもよい。サウンドエミッタ636はさらに、ゲームコントローラ630からプロセッサ601へ、追加の「入力チャネル」を提供するように用いられてもよい。サウンドエミッタ636からの音響信号は、周期的にパルス化され、音響レーダが場所を追跡するためのビーコンを提供してもよい。
音響信号(パルス化されたものあるいはその他)は、可聴超音波であってもよい。音響レーダはユーザのゲームコントローラ630操作を追跡し、この場合、そのような操作の追跡には、ゲームコントローラ630の位置および方向に関する情報(例えば、ピッチ角、ロール角、ヨー角など)が含まれてもよい。前記パルスは、当業者が適用可能な適当なデューティサイクルで始動されてもよく、また、システムから調整されたコントロール信号に基づいて起動されてもよい。システム600(プログラムコード604を介した)は、プロセッサ601に接続された複数のジョイスティックコントローラ630の中でコントロール信号の送信を整合し、複数のコントローラの追跡が可能なことを保証してもよい。
【0080】
プログラム604は、実行されると、システム600に、音源を含んだ事前較正済み聴取領域を選択させる一つ以上の命令を含んでもよい。そのような命令によって、音源が最初の領域内にあるか、またはその領域の特定の側にあるか否かを装置が判断するようになされていてもよい。音源が初期設定領域内に存在しない場合、命令は、実行時に、初期設定領域の特定の側にある別の領域を選択してもよい。別の領域は、最適値に最も近い入力信号の減衰によって特徴付けられてもよい。これらの命令は、実行されると、マイクロホン配列622からの入力信号の減衰と最適値への減衰を計算してもよい。命令は、実行されると、装置600が、一つ以上の領域に対する入力信号の減衰値を決定し、減衰が最適値に最も近い領域を選択するようになされてもよい。そのような技術の例は、2006年5月4日出願の米国特許出願第11/381,725号の"METHOD AND APPARATUS FOR TARGETED SOUND DETECTION"(米国特許出願公報第20070025562号として公開)、発明者Xiadong Maoに開示されており、その開示内容は参照により本明細書に援用される。
【0081】
慣性センサ632からの信号は追跡情報入力の一部を提供し、撮像装置623による一つ以上の光源634の追跡から生成された信号は追跡情報入力の別の部分を提供する。例示として、またいかなる限定を行うことなく、そのような「混合モード」の信号は、フットボールタイプのビデオゲームで用いられ、ここでは、クォータバックが頭を左に動かすフェイントをかけた後ボールを右に投げる。具体的には、コントローラ630を保持したゲームプレイヤは、頭を左に向け、フットボールでするように、コントローラを右に振って投げる動作をしながら声を出す。「音響レーダ」プログラムコードと併せて、マイクロホン配列622はユーザの声を追跡できる。撮像装置623は、ユーザの頭の動きや、または、音やコントローラを必要としない他の命令を追跡できる。センサ632はジョイスティックコントローラ(フットボールを表す)の動きを追跡してもよい。撮像装置623はまた、コントローラ630の光源634を追跡してもよい。ユーザは、ジョイスティックコントローラ630の加速度がある量、および/またはある方向に達したとき、またはコントローラ630のボタンを押してトリガされるキーコマンドに基づいて、「ボール」を投げることができる。
【0082】
本発明のある実施形態では、加速度計またはジャイロスコープなどからの慣性信号は、コントローラ630の位置決めに用いられてもよい。具体的には、加速度計からの加速度信号は、速度変化を決定するために一旦時間積分されてもよく、速度は位置変化を決定するために時間積分されてもよい。ある時刻における初期位置と速度が既知であれば、これらの値と速度および位置変化とを用いて絶対位置を決定できる。慣性センサを用いた位置決定は、撮像装置623や光源634を用いる方法よりも早く行えるが、慣性センサ632は「ドリフト」として知られるタイプの誤差が起こりやすい。これは、時間と共に累積される誤差によって、慣性信号から計算されるジョイスティック630の位置(透視図で示す)とジョイスティックコントローラの実際の位置との間で不一致Dが生じうる現象である。本発明の実施形態では、様々な方法でそのような誤差を処理できる。
【0083】
例えば、コントローラ630の初期位置を現在の計算位置と等しくなるように設定することにより、ドリフトを手動でキャンセルすることができる。ユーザは、コントローラ630の一つ以上のボタンを使って、初期位置を再設定する命令をトリガできる。代替的に、画像ベースのドリフトであれば、撮像装置623から得られた基準となる画像から決定される位置に現在位置を再設定することによりキャンセルすることができる。そのような画像ベースのドリフトに対する補償は、例えば、ユーザがジョイスティックコントローラ630の一つ以上のボタンをトリガするときに、手動で行うことができる。または、画像ベースのドリフトに対する補償は、例えば、一定の間隔で、またはゲームプレイに応じて自動的に行える。そのような技術は、メモリ602に保存されプロセッサ601によって実行されるプログラムコード命令604によって実現される。
【0084】
ある実施形態では、慣性センサ信号の誤りデータを補正することが望ましい。例えば、慣性センサ632からの信号をオーバーサンプリングし、オーバーサンプリングされた信号から移動平均(sliding average)を計算して、慣性センサ信号から誤りデータを取り除くことができる。ある状況では、信号をオーバーサンプリングし、高い値および/または低い値をデータポイントの一部のサブセットから除き、残りのデータポイントから移動平均を計算することが望ましい。また、慣性センサからの信号を調節して誤りデータから優位性を除去または軽減する他のデータサンプリング技術やデータ処理技術も使用できる。いずれの技術を選択するかは、信号の性質、信号に対しての計算、ゲームプレイの性質、またはこれらの複数の組み合わせに依存する。そのような技術は、メモリ602に保存されプロセッサ601によって実行されるプログラム604の命令によって実現される。
【0085】
プロセッサ601は、上述のように、データ606と、メモリ602に保存、検索されプロセッサモジュール601によって実行されるプログラム604のプログラムコード命令とに応じて、慣性信号データ606の分析を実行する。プログラム604のコード部分は、アセンブリ、C++、JAVA(登録商標)またはその他の多くの言語などの多くの異なるプログラム言語のいずれにも準拠してよい。プロセッサモジュール601は、プログラムコード604などのプログラムを実行するときに専用コンピュータとなる汎用コンピュータを形成する。ここでは、プログラムコード604はソフトウェアに組み込まれ、汎用コンピュータで実行されるように説明したが、当業者には、タスク管理方法は、別の方法として、特定用途向け集積回路(ASIC)やその他のハードウェア回路などのハードウェアを用いて実現されることは理解されるであろう。このように、本発明の実施形態は、全体であれ一部分であれ、ソフトウェア、ハードウェアおよびその両方の組み合わせで実現されることは理解されるべきである。
【0086】
ある実施形態では、とりわけ、プログラムコード604は、図5Bの方法510と図5Cの方法520、またはこれらの複数の組み合わせに共通な特長を持った方法を実現するプロセッサ読み取り可能な命令セットを備えてもよい。プログラムコード604は、通常、一つ以上のプロセッサを指揮する一つ以上の命令を備えていて、慣性センサ632からの信号を分析し、位置情報および/または方向情報を生成して、ビデオゲームプレイ中、その情報を活用する。
【0087】
プログラムコード604は、実行されると、撮像装置623に、前方の視野を監視し、視野内の一つ以上の光源634を特定し、光源634からの光の変化を検出させ、変化の検出に応じてプロセッサ601に対する入力指令をトリガさせる、一つ以上の命令を含んだプロセッサ実行可能指令を任意に備えてもよい。ゲームコントローラのアクションをトリガするために撮像装置と共にLEDを使用することは、2004年1月16日出願の米国特許出願第10/759,782号の"METHOD AND APPARATUS FOR LIGHT INPUT DEVICE"(米国特許出願公報第20040207597号として公開)、発明者Richard L. Marksに開示されており、その開示内容は参照により本明細書に援用される。
【0088】
プログラムコード604は、実行されると上述のように、ゲームシステムへの入力として、慣性センサからの信号と一つ以上の光源を追跡する撮像装置からの信号とを用いる一つ以上の命令を含むプロセッサ実行可能な命令を、任意に含んでもよい。プログラムコード604は、実行されると、慣性センサ632のドリフトを補償する一つ以上の命令を含むプロセッサ実行可能な命令を、任意に備えてもよい。
【0089】
本発明の実施形態をビデオジョイスティックコントローラ630に関連する例として記述したが、システム600を含む本発明の実施形態は、慣性センシング能力を有し、かつ無線であれそれ以外の方法であれ慣性センサ信号送信能力を有するユーザにより操作される本体、成型品、ノブ、または構造物などのいずれにも使用することができる。
【0090】
例示として、本発明の実施形態は、並列処理システムに実装することができる。このような並列処理システムは、通常、別々のプロセッサを用いて並列にプログラムの一部を実行するように構成される複数のプロセッサを備える。例示として、また限定を行うことなく、図7は本発明の実施形態によるあるタイプのセルプロセッサ700を示す。セルプロセッサ700は、図6のプロセッサ601、または図5Aのプロセッサ502として使用することができる。図7の例では、セルプロセッサ700は、メインメモリ702、パワープロセッサ要素(power processor element:PPE)704、および多数の相乗的プロセッサ要素(synergistic processor element:SPE)706を備える。図7の例では、セルプロセッサ700は、1個のPPE704と8個のSPE706とを備える。このような構成では、7個のSPE706が並列処理に用いられ、1個は他の7個の一つが故障したときのバックアップとして確保されている。代替的に、セルプロセッサは、複数のPPEからなる複数のグループ(PPEグループ)と、複数のSPEからなる複数のグループ(SPEグループ)とを備えてもよく、そのような場合、1グループ内の各ユニットでハードウェアリソースが共有される。しかしながら、SPEとPPEは、ソフトウェアにとって独立要素であるように見える必要がある。このように、本発明の実施形態は、図7に示される構成での使用に限定されるものではない。
【0091】
メインメモリ702は、通常、汎用の不揮発性記憶装置に加えて、システム構成、データ同期転送、メモリーマップドI/O、およびI/Oサブシステムなどの機能に用いられる専用のハードウェアレジスタまたはアレイも備える。本発明の実施形態では、ビデオゲームプログラム703がメインメモリ702内に常駐してもよい。プログラム703は、図5A、図5Bおよび図5Cについて上述したような、またはこれらの組み合わせで構成される分析部を含んでもよい。さらに、プログラム703は、図5Dについて上述したようなジェスチャ検出および/または図5Eについて上述したようなジェスチャ認識を実装するためのインストラクションを含んでもよい。プログラム703はPPE上で走ってもよい。プログラム703は、SPEおよび/またはPPEで実行される複数の信号処理タスクに分割されてもよい。
【0092】
例示として、PPE704は、関連するキャッシュL1およびL2を持った64ビットのパワーPCプロセッサユニット(PPU)であってもよい。PPE704は、システム管理リソース(例えば、メモリ保護テーブルなど)にアクセス可能な汎用処理装置である。ハードウェアリソースは、PPEに見られるように実アドレス空間に明示的にマップされてもよい。したがって、PPEは適当な実効アドレス値を用いて、直接これらのリソースのいずれにでもアドレス指定できる。PPE704の主な機能は、セルプロセッサ700のSPE706に対するタスク管理とタスク割り当てである。
【0093】
図7では1個のPPEだけが示されているが、セルブロードバンドエンジンアーキテクチャ(CBEA)などのセルプロセッサ実装では、セルプロセッサ700は、複数のPPEが存在するPPEグループに系統だてられた複数のPPEを有してもよい。これらのPPEグループはメインメモリ702へのアクセスを共有してもよい。さらに、セルプロセッサ700は二つ以上のSPEを備えてもよい。SPEグループもメインメモリ702へのアクセスを共有してもよい。このような構成も本発明の範囲内である。
【0094】
SPE706のそれぞれは、SPUと独自のローカル記憶領域LSとを含む。ローカル記憶領域LSは、メモリ記憶内の一つ以上の分離領域を備えており、それぞれの領域は専用のSPUと関連付けられている。各SPUは、独自の関連付けられた記憶領域内からの命令(データロードとデータ保存操作とを含む)だけを実行するように構成されてもよい。そのような構成では、ローカル記憶領域LSとシステム700のそれ以外の間とのデータ転送は、メモリフローコントローラ(MFC)からダイレクトメモリアクセス(DMA)命令を出すことによって行われ、(個々のSPEの)ローカル記憶領域との間でデータ転送される。なんらシステム管理機能を果たさないSPUは、PPE704よりは簡単な構造のコンピュータ装置である。SPUは、一般にSIMD(single instruction, multiple data)機能を有し、通常はデータ処理を行い、割り当てられたタスクを行うために(PPEにより設定されたアクセス特性にしたがって)要求されたデータ転送を開始する。SPUの目的は、より高いコンピュータ装置密度を要求するアプリケーションを可能として、提供された命令セットを有効に利用できるようにすることである。PPE704で管理されるシステムにおけるかなり多くのSPEは、広範囲のアプリケーションにおいて費用効果の高い処理を可能にする。
【0095】
各SPE706は、メモリ保護情報とアクセス許可情報を保持し処理できる関連メモリ管理ユニットを備えた専用のメモリフローコントローラ(MFC)を備えている。MFCは、セルプロセッサのメイン記憶とSPEのローカル記憶間でのデータ転送、保護および同期化のための主要な方法を提供する。MFC命令は実行される転送を記述する。データ転送命令は、MFCダイレクトメモリアクセス(DMA)命令(またはMFCDMA命令)と呼ばれることがある。
【0096】
各MFCは、同時に複数のDMA転送をサポートし、複数のMFC命令を維持、処理してもよい。各MFCDMAデータ転送命令要求は、ローカルストレージアドレス(LSA)と有効アドレス(EA)の両方を伴ってもよい。ローカルストレージアドレスは、関連するSPEのローカルストレージアドレスだけに直接アドレス指定できる。実効アドレスは、例えば、実アドレス空間に名前を変えられれば、すべてのSPEローカルストレージ領域を含むメイン記憶を参照できるなどの、もっと一般的なアプリケーションを備えてもよい。
【0097】
SPE706同士の間、および/またはSPE706とPPE704との間の通信を容易にするために、SPE706とPPE704は、シグナリングイベントに関する信号通知レジスタを備えてもよい。PPE704とSPE706は、PPE704がSPE706にメッセージを送信するルータのように働くスター構成(topology)によって接続されてもよい。代替的に、各SPE706とPPE704は、メールボックスと呼ばれる一方向信号通知レジスタを有してもよい。メールボックスは、SPE706によって使用されOSの同期操作を主催する。
【0098】
セルプロセッサ700は、マイクロホン配列712、任意の撮像装置713およびジョイスティックコントローラ730などの周辺装置とインタフェースできる入出力(I/O)機能を備えてもよい。ジョイスティックコントローラユニットは慣性センサ732と光源734を備えてもよい。さらに、要素相互接続バス710は、上記に挙げた種々の部品を接続できる。各SPEおよびPPEは、バスインタフェースユニット(BIU)を介してバス710にアクセスできる。セルプロセッサ700は、通常プロセッサに見られる二つのコントローラと、バス710とメインメモリ702の間のデータ流れを制御するメモリインタフェースコントローラ(MIC)と、I/O708とバス710の間のデータ流れを制御するバスインタフェースコントローラ(BIC)とを備えてもよい。MIC、BIC,BIUおよびバス710に対する要件は、実装が異なると大きく変わるが、当業者はそれらの機能および実装回路については精通しているだろう。
【0099】
セルプロセッサ700は、内部割り込みコントローラ(IIC)を備えてもよい。IIC装置は、PPEに提示される割り込みの優先権を管理する。IICによって、セルプロセッサ700の他の要素からの割り込みを、メインシステムの割り込みコントローラを用いずに処理できる。IICは第2レベルのコントローラと考えることもできる。メインシステムの割り込みコントローラは、セルプロセッサの外部で発生した割り込みを処理してもよい。
【0100】
本発明の実施形態では、上述の非整数遅延などの計算は、PPE704および/または一つ以上のSPE706を用いて並列に実行されてもよい。各非整数遅延計算は、使用可能な異なるSPE706が別々に請け負う一つ以上の別々のタスクとして実行されてもよい。
【0101】
上記は、本発明の好適な実施形態に関する完全な記述であるが、種々の変形、変更および等価物を用いることが可能である。したがって、本発明の技術範囲は、上記の内容を参照して決定されるべきではなく、その代わりに、添付の特許請求の範囲およびそれらの等価物の全範囲と併せて決定されるべきである。本明細書で説明した好適なまたはそれ以外のすべての特徴は、本明細書に記載された他の好適なまたはそれ以外のいかなる特徴とも組み合わせることができる。特許請求の範囲においては、不定冠詞“A”または“An”は、特にそうでないと明確に述べられた場合を除いて、冠詞に続く品目の一つ以上の数量を指す。添付の特許請求の範囲は、”means for”の句を使って明確にそのような限定が行われない限り、ミーンズプラスファンクションの限定が含まれると解釈されるべきではない。
【0102】
本発明のいろいろな好ましい特徴は次の番号を付けたパラグラフで定義される。
【0103】
パラグラフ1.
a)コントロールデバイスに関連づけられた1以上のセンサから、前記コントロールデバイスの動きに関するサンプルモーションデータを受け取るステップと、
b)前記モーションデータからエネルギー値と前記モーションデータに対する基準値とを計算するステップと、
c)前記エネルギー値が静的エネルギー閾値よりも小さいなら、前記エネルギー値にもとづいて前記基準値を更新するステップと、
d)更新された前記基準値にもとづいて前記サンプルモーションデータを調整するステップと、
e)所定数の局所分散サンプルにわたって前記サンプルモーションデータの局所分散を計算するステップと、
f)前記局所分散のスカラ値が記録を開始するための閾値よりも大きいなら、ジェスチャに対する前記サンプルモーションデータの1以上の値の記録を開始するステップと、
g)ジェスチャに対する前記サンプルモーションデータの前記1以上の値を用いて平均的な局所分散のスカラー値を計算するステップと、
h)前記局所分散のスカラー値が記録を中止するための閾値よりも小さいなら、ジェスチャに対する前記サンプルモーションデータの前記1以上の値の記録を中止するステップとを含むことを特徴とするジェスチャ認識方法。
【0104】
パラグラフ2.
i)前記ジェスチャにおける前記サンプル値の全分散を計算するステップと、
j)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
k)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップと、
l)前記入力されたジェスチャが前記1以上のカタログジェスチャの一つと一致した場合にアクションを取るステップとをさらに含むパラグラフ1の方法。
【0105】
パラグラフ3.
前記サンプルモーションデータはベクトル成分を含むパラグラフ2の方法。
【0106】
パラグラフ4.
前記全分散は、前記ベクトル成分の異なる成分に対応する全分散の成分に割り当てられたランクとともに計算されるパラグラフ3の方法。
【0107】
パラグラフ5.
ステップj)は、入力されたジェスチャ成分のランクをカタログジェスチャ成分のランクと比較することを含むパラグラフ4の方法。
【0108】
パラグラフ6.
ステップj)は、全分散成分のランクキングによって成分を重みづけすることを含むパラグラフ5の方法。
【0109】
パラグラフ7.
ステップj)は、入力されたジェスチャとカタログジェスチャの間の相関を計算することを含むパラグラフ6の方法。
【0110】
パラグラフ8.
少ないサンプルしかもたない入力されたジェスチャまたはカタログジェスチャをスケールアップするステップをさらに含むパラグラフ6の方法。
【0111】
パラグラフ9.
入力されたジェスチャの全分散のランキングとカタログジェスチャの全分散のランキングを比較するステップと、一致しない入力されたジェスチャのランクにはそれぞれペナルティを適用するステップとをさらに含むパラグラフ6の方法。
【0112】
パラグラフ10.
前記メリットの数値は、全分散のランキングにもとづいた重みで重みづけされた相関スカラ平均として計算された相関スカラを含むパラグラフ9の方法。
【0113】
パラグラフ11.
全分散のランキングはジェスチャ内で異なる時間間隔で計算されるパラグラフ10の方法。
【0114】
パラグラフ12.
ジェスチャ内の異なる時間間隔において重みを異ならせるパラグラフ11の方法。
【0115】
パラグラフ13.
当該方法はビデオゲームに適用されるパラグラフ2の方法。
【0116】
パラグラフ14.
アクションを取るステップは、ジェスチャに関連づけられたコマンドに応答することを含むパラグラフ13の方法。
【0117】
パラグラフ15.
入力されたジェスチャをゲームロジックにもとづいてカタログジェスチャの選択された対象と比較するパラグラフ14の方法。
【0118】
パラグラフ16.
サンプルモーションデータは慣性センサからの信号から得られたデータを含むパラグラフ1の方法。
【0119】
パラグラフ17.
サンプルモーションデータはイメージキャプチャデバイスから得られた画像データを含むパラグラフ1の方法。
【0120】
パラグラフ18.
サンプルモーションデータは音響センサからの信号から得られたデータを含むパラグラフ1の方法。
【0121】
パラグラフ19.
ジェスチャ認識のための装置であって、
コントロールデバイスと、
ジェスチャ認識方法のプログラムを実行する機能を有するプロセッサとを含み、
前記方法は、
コントロールデバイスに関連づけられた1以上のセンサから、前記コントロールデバイスの動きに関するサンプルモーションデータを受け取るステップと、
前記モーションデータからエネルギー値と前記モーションデータに対する基準値とを計算するステップと、
前記エネルギー値が静的エネルギー閾値よりも小さいなら、前記エネルギー値にもとづいて前記基準値を更新するステップと、
更新された前記基準値にもとづいて前記サンプルモーションデータを調整するステップと、
所定数の局所分散サンプルにわたって前記サンプルモーションデータの局所分散を計算するステップと、
前記局所分散のスカラ値が記録を開始するための閾値よりも大きいなら、ジェスチャに対する前記サンプルモーションデータの1以上の値の記録を開始するステップと、
ジェスチャに対する前記サンプルモーションデータの前記1以上の値を用いて平均的な局所分散のスカラー値を計算するステップと、
前記局所分散のスカラー値が記録を中止するための閾値よりも小さいなら、ジェスチャに対する前記サンプルモーションデータの前記1以上の値の記録を中止するステップとを含むことを特徴とする装置。
【0122】
パラグラフ20.
前記ジェスチャ認識方法は、
前記ジェスチャにおける前記サンプル値の全分散を計算するステップと、
前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップと、
前記入力されたジェスチャが前記1以上のカタログジェスチャの一つと一致した場合にアクションを取るステップとをさらに含むパラグラフ19の装置。
【0123】
パラグラフ21.
コンピュータ読み取り可能なインストラクションが格納されたコンピュータ読み取り可能な記録媒体であって、前記コンピュータ読み取り可能なインストラクションが実行されるとき、ジェスチャ認識方法が実装されるように構成されており、前記方法は、
コントロールデバイスに関連づけられた1以上のセンサから、前記コントロールデバイスの動きに関するサンプルモーションデータを受け取るステップと、
前記モーションデータからエネルギー値と前記モーションデータに対する基準値とを計算するステップと、
前記エネルギー値が静的エネルギー閾値よりも小さいなら、前記エネルギー値にもとづいて前記基準値を更新するステップと、
更新された前記基準値にもとづいて前記サンプルモーションデータを調整するステップと、
所定数の局所分散サンプルにわたって前記サンプルモーションデータの局所分散を計算するステップと、
前記局所分散のスカラ値が記録を開始するための閾値よりも大きいなら、ジェスチャに対する前記サンプルモーションデータの1以上の値の記録を開始するステップと、
ジェスチャに対する前記サンプルモーションデータの前記1以上の値を用いて平均的な局所分散のスカラー値を計算するステップと、
前記局所分散のスカラー値が記録を中止するための閾値よりも小さいなら、ジェスチャに対する前記サンプルモーションデータの前記1以上の値の記録を中止するステップとを含むことを特徴とする記録媒体。
【0124】
パラグラフ22.
コントロールデバイスと前記コントロールデバイスに接続されたプロセッサとを含むシステムにおけるジェスチャ認識方法であって、当該方法は、
a)プロセッサが、前記コントロールデバイスに関連づけられた1以上のセンサから得た前記コントロールデバイスの動きに関するサンプルモーションデータの複数のサンプル値をもつ入力ジェスチャにおいて、サンプル値の全分散を計算するステップと、
b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップと、
d)前記入力されたジェスチャが前記1以上のカタログジェスチャの一つと一致すると判定された場合に前記システムの状態を変更するステップとを含むことを特徴とする方法。
【0125】
パラグラフ23.
前記システムはビデオゲームシステムであり、ステップd)は、ステップc)において入力されたジェスチャが前記1以上のカタログジェスチャの一つと一致すると判定された場合に、プロセッサが前記ビデオゲームシステムで実装されたゲームの状態を変更することを含むパラグラフ22のジェスチャ認識方法。
【0126】
パラグラフ24.
前記サンプルモーションデータはベクトル成分を含むパラグラフ22の方法。
【0127】
パラグラフ25.
前記全分散は、前記ベクトル成分の異なる成分に対応する全分散の成分に割り当てられたランクとともに計算されるパラグラフ24の方法。
【0128】
パラグラフ26.
ステップb)は、入力されたジェスチャ成分のランクをカタログジェスチャ成分のランクと比較することを含むパラグラフ25の方法。
【0129】
パラグラフ27.
ステップb)は、全分散成分のランクキングによって成分を重みづけすることを含むパラグラフ25の方法。
【0130】
パラグラフ28.
ステップb)は、入力されたジェスチャとカタログジェスチャの間の相関を計算することを含むパラグラフ25の方法。
【0131】
パラグラフ29.
少ないサンプルしかもたない入力されたジェスチャまたはカタログジェスチャをスケールアップするステップをさらに含むパラグラフ25の方法。
【0132】
パラグラフ30.
入力されたジェスチャの全分散のランキングとカタログジェスチャの全分散のランキングを比較するステップと、一致しない入力されたジェスチャのランクにはそれぞれペナルティを適用するステップとをさらに含むパラグラフ25の方法。
【0133】
パラグラフ31.
前記メリットの数値は、全分散のランキングにもとづいた重みで重みづけされた相関スカラ平均として計算された相関スカラを含むパラグラフ30の方法。
【0134】
パラグラフ32.
ジェスチャ認識のための装置であって、
コントロールデバイスと、
ジェスチャ認識方法のプログラムを実行する機能を有するプロセッサとを含み、
前記方法は、
a)前記コントロールデバイスに関連づけられた1以上のセンサから得た前記コントロールデバイスの動きに関するサンプルモーションデータの複数のサンプル値をもつ入力ジェスチャにおいて、サンプル値の全分散を計算するステップと、
b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップと、
d)前記入力されたジェスチャが前記1以上のカタログジェスチャの一つと一致すると判定された場合に当該装置の状態を変更するステップとを含むことを特徴とする装置。
【0135】
パラグラフ33.
コンピュータ読み取り可能なインストラクションが格納されたコンピュータ読み取り可能な記録媒体であって、前記コンピュータ読み取り可能なインストラクションが実行されるとき、ジェスチャ認識方法が実装されるように構成されており、前記方法は、
a)コントロールデバイスに関連づけられた1以上のセンサから得た前記コントロールデバイスの動きに関するサンプルモーションデータの複数のサンプル値をもつ入力ジェスチャにおいて、サンプル値の全分散を計算するステップと、
b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップとを含むことを特徴とする記録媒体。
【特許請求の範囲】
【請求項1】
コンピュータ読み取り可能なインストラクションが格納されたコンピュータ読み取り可能な媒体であって、前記コンピュータ読み取り可能なインストラクションが実行されるとき、ジェスチャ認識方法が実装されるように構成されており、前記方法は、
a)複数のサンプル値をもつ入力ジェスチャにおいてサンプル値の全分散を計算するステップと、
b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップとを含むことを特徴とする媒体。
【請求項2】
ステップc)において、入力されたジェスチャが1以上のカタログジェスチャの一つと一致すると判定された場合にアクションを取るステップをさらに含む請求項1のコンピュータ読み取り可能な媒体。
【請求項3】
前記サンプルモーションデータはベクトル成分を含む請求項1のコンピュータ読み取り可能な媒体。
【請求項4】
前記全分散は、前記ベクトル成分の異なる成分に対応する全分散の成分に割り当てられたランクとともに計算される請求項3のコンピュータ読み取り可能な媒体。
【請求項5】
ステップb)は、入力されたジェスチャ成分のランクをカタログジェスチャ成分のランクと比較することを含む請求項4のコンピュータ読み取り可能な媒体。
【請求項6】
ステップb)は、全分散成分のランクキングによって成分を重みづけすることを含む請求項4のコンピュータ読み取り可能な媒体。
【請求項7】
ステップb)は、入力されたジェスチャとカタログジェスチャの間の相関を計算することを含む請求項4のコンピュータ読み取り可能な媒体。
【請求項8】
少ないサンプルしかもたない入力されたジェスチャまたはカタログジェスチャをスケールアップするステップをさらに含む請求項4のコンピュータ読み取り可能な媒体。
【請求項9】
入力されたジェスチャの全分散のランキングとカタログジェスチャの全分散のランキングを比較するステップと、一致しない入力されたジェスチャのランクにはそれぞれペナルティを適用するステップとをさらに含む請求項4のコンピュータ読み取り可能な媒体。
【請求項10】
前記メリットの数値は、全分散のランキングにもとづいた重みで重みづけされた相関スカラ平均として計算された相関スカラを含む請求項9のコンピュータ読み取り可能な媒体。
【請求項11】
当該方法はビデオゲームに適用される請求項1のコンピュータ読み取り可能な媒体。
【請求項12】
アクションを取るステップは、ジェスチャに関連づけられたコマンドに応答することを含む請求項11のコンピュータ読み取り可能な媒体。
【請求項13】
入力されたジェスチャをゲームロジックにもとづいてカタログジェスチャの選択された対象と比較する請求項12のコンピュータ読み取り可能な媒体。
【請求項14】
ジェスチャ認識のための装置であって、
コントロールデバイスと、
ジェスチャ認識方法のプログラムを実行する機能を有するプロセッサとを含み、
前記方法は、
a)複数のサンプル値をもつ入力ジェスチャにおいてサンプル値の全分散を計算するステップと、
b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップとを含むことを特徴とする装置。
【請求項15】
a)複数のサンプル値をもつ入力ジェスチャにおいてサンプル値の全分散を計算するステップと、
b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップとを含むことを特徴とするジェスチャ認識方法。
【請求項1】
コンピュータ読み取り可能なインストラクションが格納されたコンピュータ読み取り可能な媒体であって、前記コンピュータ読み取り可能なインストラクションが実行されるとき、ジェスチャ認識方法が実装されるように構成されており、前記方法は、
a)複数のサンプル値をもつ入力ジェスチャにおいてサンプル値の全分散を計算するステップと、
b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップとを含むことを特徴とする媒体。
【請求項2】
ステップc)において、入力されたジェスチャが1以上のカタログジェスチャの一つと一致すると判定された場合にアクションを取るステップをさらに含む請求項1のコンピュータ読み取り可能な媒体。
【請求項3】
前記サンプルモーションデータはベクトル成分を含む請求項1のコンピュータ読み取り可能な媒体。
【請求項4】
前記全分散は、前記ベクトル成分の異なる成分に対応する全分散の成分に割り当てられたランクとともに計算される請求項3のコンピュータ読み取り可能な媒体。
【請求項5】
ステップb)は、入力されたジェスチャ成分のランクをカタログジェスチャ成分のランクと比較することを含む請求項4のコンピュータ読み取り可能な媒体。
【請求項6】
ステップb)は、全分散成分のランクキングによって成分を重みづけすることを含む請求項4のコンピュータ読み取り可能な媒体。
【請求項7】
ステップb)は、入力されたジェスチャとカタログジェスチャの間の相関を計算することを含む請求項4のコンピュータ読み取り可能な媒体。
【請求項8】
少ないサンプルしかもたない入力されたジェスチャまたはカタログジェスチャをスケールアップするステップをさらに含む請求項4のコンピュータ読み取り可能な媒体。
【請求項9】
入力されたジェスチャの全分散のランキングとカタログジェスチャの全分散のランキングを比較するステップと、一致しない入力されたジェスチャのランクにはそれぞれペナルティを適用するステップとをさらに含む請求項4のコンピュータ読み取り可能な媒体。
【請求項10】
前記メリットの数値は、全分散のランキングにもとづいた重みで重みづけされた相関スカラ平均として計算された相関スカラを含む請求項9のコンピュータ読み取り可能な媒体。
【請求項11】
当該方法はビデオゲームに適用される請求項1のコンピュータ読み取り可能な媒体。
【請求項12】
アクションを取るステップは、ジェスチャに関連づけられたコマンドに応答することを含む請求項11のコンピュータ読み取り可能な媒体。
【請求項13】
入力されたジェスチャをゲームロジックにもとづいてカタログジェスチャの選択された対象と比較する請求項12のコンピュータ読み取り可能な媒体。
【請求項14】
ジェスチャ認識のための装置であって、
コントロールデバイスと、
ジェスチャ認識方法のプログラムを実行する機能を有するプロセッサとを含み、
前記方法は、
a)複数のサンプル値をもつ入力ジェスチャにおいてサンプル値の全分散を計算するステップと、
b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップとを含むことを特徴とする装置。
【請求項15】
a)複数のサンプル値をもつ入力ジェスチャにおいてサンプル値の全分散を計算するステップと、
b)前記ジェスチャにおける前記サンプル値と1以上のカタログジェスチャにおけるサンプル値を用いて、ジェスチャがカタログジェスチャとどれくらい一致するかを示す尺度であるメリットの数値を計算するステップと、
c)前記メリットの数値にもとづいて、入力されたジェスチャが1以上のカタログジェスチャの一つと一致するかどうかを判定するステップとを含むことを特徴とするジェスチャ認識方法。
【図1】
【図2】
【図3B】
【図3C】
【図3D】
【図3E】
【図5A】
【図5B】
【図5C】
【図5D】
【図5E】
【図6】
【図7】
【図3A】
【図4】
【図2】
【図3B】
【図3C】
【図3D】
【図3E】
【図5A】
【図5B】
【図5C】
【図5D】
【図5E】
【図6】
【図7】
【図3A】
【図4】
【公開番号】特開2009−165826(P2009−165826A)
【公開日】平成21年7月30日(2009.7.30)
【国際特許分類】
【外国語出願】
【出願番号】特願2009−3121(P2009−3121)
【出願日】平成21年1月9日(2009.1.9)
【出願人】(500551079)ソニー・コンピュータ・エンタテインメント・アメリカ・インク (95)
【Fターム(参考)】
【公開日】平成21年7月30日(2009.7.30)
【国際特許分類】
【出願番号】特願2009−3121(P2009−3121)
【出願日】平成21年1月9日(2009.1.9)
【出願人】(500551079)ソニー・コンピュータ・エンタテインメント・アメリカ・インク (95)
【Fターム(参考)】
[ Back to top ]