ボール付属コントローラの位置および移動の決定
プレイフィールド内でのゲームコントローラの位置を決定するための方法、システムおよびコンピュータプログラムが提供される。視覚情報を使用して、前記コントローラの位置を特定するために前記ゲームコントローラにボール部分が取り付けられている。前記方法は、前記ゲームコントローラが存在する前記プレイフィールドの画像を取得し、次に、前記ボール部分に関連するピクセルを前記画像内で見つける。前記方法は、更に、前記見つかったピクセルを包含する領域を特定し、前記領域に基づき前記ボールに関連する幾何学形状を決定する。前記幾何学形状の中心は、前記コントローラの水平位置および垂直位置を示し、前記幾何学形状のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する前記幾何学形状に基づいて、前記コントローラの前記位置が計算される。前記位置がメモリに記憶され、これを使用して前記コンピュータによる動作が起動される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、プレイフィールド内でのゲームコントローラの位置のトラッキングに関し、より詳細には、ボールアタッチメント付属ゲームコントローラの位置および移動の視覚情報を使用したトラッキングに関する。
【背景技術】
【0002】
ビデオゲーム業界は、長年にわたり多くの変化を遂げてきた。コンピュータの処理能力の向上とともに、ビデオゲームの開発者らも、このような処理能力の高度化を利用したゲームソフトウェアを作製してきた。このため、ビデオゲームの開発者らは、非常にリアルなゲーム体験となるように高度な演算や数値演算を組み込んだゲームをコーディングしてきた。
【0003】
このようなゲームのプラットフォームの例には、ソニープレイステーション(登録商標)、ソニープレイステーション2(登録商標)(PS2)およびソニープレイステーション3(登録商標)(PS3)があり、これらは共にゲームコンソールの形態で販売されている。周知のように、ゲームコンソールは、モニタ(通常、テレビ受像機)に接続して、ハンドヘルドコントローラを介してユーザインタラクションが可能になるように設計される。ゲームコンソールは、CPU、重いグラフィック演算を処理するためのグラフィックシンセサイザ、ジオメトリ変換を実行するためのベクトル演算ユニット、およびグルーハードウェアと呼ばれるその他のハードウェア、ファームウェア、およびソフトウェアを含む専用の処理ハードウェアで設計されている。ゲームコンソールは、ゲームコンソールを介してローカルでプレイするためのゲームのコンパクトディスクを受け入れるための光ディスクトレイを備えるように更に設計される。また、ユーザが、インターネット上で他のユーザと対戦して、または、他のユーザと一緒にインタラクティブにプレイすることができるオンラインゲームも可能である。
【0004】
ゲームを複雑にしてプレーヤの興味を引き付けるために、ゲームおよびハードウェアの製造業者らは、新しい手法を取り入れてさらなるインタラクティビティ、つまり対話性、とコンピュータプログラムとを可能にしようとしてきた。コンピュータゲーム業界においては、ユーザとゲームシステム間のインタラクションを高めるゲームを開発する傾向が広がっている。より質の高いインタラクティブな体験を実現する1つのやり方として、プレーヤの動きをトラッキングして、この動きをゲームの入力として使用するために、ゲームシステムによって移動がトラッキングされる無線ゲームコントローラを使用する方法がある。一般的にいうと、ジェスチャ入力とは、コンピューティングシステム、ビデオゲームコンソール、インテリジェント家電などの電子装置を、物体をトラッキングするビデオカメラがキャプチャした何らかのジェスチャに反応させることを指す。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、現在の物体トラッキングは、キャプチャ精度が低い。この問題は、従来の画像解析では、ユーザの位置の二次元の測定値が、そこそこの精度の値でしか得られないために生じる。この理由は、認識したコントローラの形状のわずかな変動により、コントローラの水平位置および垂直位置の決定の信頼性が低くなると共に、ノイズの影響を極めて受けやすくなるためである。また、カメラに近づいたりカメラから離れることによるわずかな形状の変化では、カメラとコントローラ間の距離を正確に計算するのに十分な情報が得られないため、カメラとトラッキング対象の物体間の距離を決定することが困難である。
【0006】
本発明の実施形態は、この状況においてなされたものである。
【課題を解決するための手段】
【0007】
本発明の実施形態は、プレイフィールド内でのゲームコントローラの位置を決定するための方法、システムおよびコンピュータプログラムを提供する。前記ゲームコントローラに取り付けたボール部分が、視覚情報を使用した前記コントローラの位置の特定を補助する。
【0008】
本発明は、プロセス、装置、システム、デバイスまたはコンピュータ可読媒体上の方法など、多くの方法で実施することができる点を理解されたい。以下に本発明のいくつかの発明の実施形態を記載する。
【0009】
一実施形態では、コンピュータは、プレイフィールド内でのゲームコントローラの位置を決定するための方法を実行する。前記方法は、前記ゲームコントローラが存在する前記プレイフィールドの画像を取得し、次に、前記ボール部分に関連するピクセルを前記画像内で見つける。前記方法は、更に、前記見つかったピクセルを包含する領域を特定し、前記領域に基づき前記ボールに関連する幾何学形状を決定する。前記幾何学形状に基づいて、前記コントローラの前記位置が計算され、前記幾何学形状の中心は、前記コントローラの水平位置および垂直位置を示し、前記幾何学形状のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する。前記位置がメモリに記憶され、これを使用して前記コンピュータによる動作が起動される。
【0010】
別の実施形態では、プレイフィールド内でのゲームコントローラの位置を決定するための方法が提示される。前記方法は、前記プレイフィールドの画像を取得し、前記ゲームコントローラに連結されているボール部分内のリングに関連するピクセルを前記画像内で見つける。更に、前記方法は、前記リングに関連する前記見つかったピクセルを包含する領域を特定する。先に特定した前記領域に基づき楕円が決定され、前記楕円に基づいて、前記コントローラの前記位置が計算され、前記楕円の中心は、前記コントローラの水平座標および垂直座標を示し、前記楕円のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する。前記位置がメモリに記憶され、これを使用して前記コンピュータによる動作が起動される。
【0011】
別の実施形態では、ゲームコントローラの位置および移動に関する複数の情報源の組み合わせを使用した、プレイフィールド内で前記コントローラの位置を決定するための方法が提示される。前記方法は、前記コントローラの画像を取得し、前記ゲームコントローラから状態情報を受け取る。前記状態情報は、加速度計、ジャイロスコープまたは磁力計からの情報であってもよい。前記方法は、前記ゲームコントローラに連結されているボール部分に関連する幾何学形状を決定し、前記状態情報と前記幾何学形状に関する情報とを組み合わせることにより前記コントローラの前記位置を計算する。
【0012】
本発明の他の態様は、例示のために本発明の原理を示す添付の図面と併せて、以下の詳細な説明を読めば明らかとなるであろう。
【0013】
本発明は、添付の図面を参照して以下の説明を読めば理解が深まるであろう。
【図面の簡単な説明】
【0014】
【図1A】ボール部分が取り付けられているゲームコントローラの実施形態を示す。
【図1B】ボール部分が取り付けられているゲームコントローラの実施形態を示す。
【図1C】図1A〜Bのゲームコントローラの異なる動作モードを示す。
【図1D】図1A〜Bのゲームコントローラの異なる動作モードを示す。
【図1E】図1A〜Bのゲームコントローラの異なる動作モードを示す。
【図2A】ボールが取り付けられているゲームコントローラの別の実施形態を示す。
【図2B】ボールが取り付けられているゲームコントローラの別の実施形態を示す。
【図3A】ボール付属ゲームコントローラの異なる実施形態を示す。
【図3B】ボール付属ゲームコントローラの異なる実施形態を示す。
【図4A】フェイスプレートが交換可能なボール付属ゲームコントローラの実施形態を示す。
【図4B】フェイスプレートが交換可能なボール付属ゲームコントローラの実施形態を示す。
【図4C】フェイスプレートが交換可能なボール付属ゲームコントローラの実施形態を示す。
【図4D】フェイスプレートが交換可能なボール付属ゲームコントローラの実施形態を示す。
【図5】一実施形態による、マルチプレーヤ環境と、プレーヤが持っている異なるコントローラの位置を決定するための視覚情報の使用とを示す模式図である。
【図6A】キャプチャした画像から認識した形状に幾何学形状を割り当てるための異なる実施形態を示す。
【図6B】キャプチャした画像から認識した形状に幾何学形状を割り当てるための異なる実施形態を示す。
【図6C】キャプチャした画像から認識した形状に幾何学形状を割り当てるための異なる実施形態を示す。
【図6D】キャプチャした画像から認識した形状に幾何学形状を割り当てるための異なる実施形態を示す。
【図7】一実施形態による、ボール部分に対応するピクセルを見つけるためのサブピクセル分析の使用法を示す。
【図8】本発明の一実施形態による、形状の検出を改善するために画像をブラーリングする効果を示す。
【図9】一実施形態による、ボール位置を決定するための、いくつかの連続するキャプチャ画像の使用を示す。
【図10】精度を向上させるためにプレイフィールドの狭めた領域から画像を取得するための一実施形態を示す。
【図11】一実施形態による、ピクセル数が少ない場合のボールの画像認識を示す。
【図12】高解像度カメラを使用した画像認識の一実施形態を示す。
【図13A】一実施形態による、カメラと対面するための可動の照光リングを使用するボールの検出を示す。
【図13B】一実施形態による、カメラと対面するための可動の照光リングを使用するボールの検出を示す。
【図13C】一実施形態による、カメラと対面するための可動の照光リングを使用するボールの検出を示す。
【図14A】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14B】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14C】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14D】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14E】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14F】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14G】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14H】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図15A】部分弧の部分から完全なリング領域を推定するための方法を示す。
【図15B】部分弧の部分から完全なリング領域を推定するための方法を示す。
【図16】認識されるボール表面を広げるためにボールを振動させる実施形態を示す。
【図17A】検出を改善するためにサイズまたは外観を変えることができるボールの実施形態を示す。
【図17B】検出を改善するためにサイズまたは外観を変えることができるボールの実施形態を示す。
【図18】ボール部分がシェルに収容されているゲームコントローラの実施形態を示す。
【図19A】一実施形態による、移動トラッキングを改善するためのセンサを有するコントローラを示す。
【図19B】一実施形態による、移動トラッキングを改善するためのセンサを有するコントローラを示す。
【図20】一実施形態による、コントローラ位置の評価のための異なる情報源の使用を示す。
【図21A】一実施形態による、コンピュータの動作を開始するためのコントローラのホイールの使用を示す。
【図21B】一実施形態による、コンピュータの動作を開始するためのコントローラのホイールの使用を示す。
【図21C】一実施形態による、コンピュータの動作を開始するためのコントローラのホイールの使用を示す。
【図22】本発明の一実施形態による、コントローラの位置を決定するために使用されうるハードウェアおよびユーザインタフェイスを示す。
【図23】本発明の一実施形態による、命令の処理に使用されうる追加のハードウェアを示す。
【図24】プレイフィールド内でのボール付属ゲームコントローラの位置を決定するための方法の実施形態を示すフローチャートを示す。
【図25】一実施形態による、プレイフィールド内での識別可能なリングを含むボールの位置を決定するための方法のフローチャートを示す。
【発明を実施するための形態】
【0015】
以下の実施形態は、プレイフィールド内でのゲームコントローラの位置を決定するための方法、システムおよびコンピュータプログラムを記載する。視覚情報を使用して、前記コントローラの位置を特定するために前記ゲームコントローラにボール部分が取り付けられている。前記方法は、前記ゲームコントローラが存在する前記プレイフィールドの画像を取得し、次に、前記ボール部分に関連するピクセルを前記画像内で見つける。前記方法は、更に、前記見つかったピクセルを包含する領域を特定し、前記領域に基づき前記ボールに関連する幾何学形状を決定する。前記幾何学形状に基づいて、前記コントローラの前記位置が計算され、前記幾何学形状の中心は、前記コントローラの水平位置および垂直位置を示し、前記幾何学形状のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する。前記位置がメモリに記憶され、これを使用して前記コンピュータによる動作が起動される。
【0016】
しかし、本発明を、このような詳細な内容の一部または全てを用いなくても実施しうることは当業者にとって自明である。場合によっては、本発明を不必要にあいまいにすることのないよう、公知の処理操作は詳述していない。
【0017】
図1A〜Bは、ボール部分が取り付けられているゲームコントローラの実施形態を示す。コントローラに取り付けられているボールは色が異なっており、一実施形態では、ボールは発光してもよい。ボール内部の色は、ボール内部のRGB(赤緑青)の発光ダイオード(LED)によって作り出すことができる。また、カメラの異なる露出設定下でボールをトラッキングするために、照光されているボールの明るさが制御されうる。一実施形態では、ボールの色は、個々のユーザのコントローラを区別したり、1人のユーザが両手に持っているコントローラを区別するために使用される。
【0018】
図1A,1Bのコントローラでは球形状のボールが示されているが、ボールが、視覚トラッキングのために、部分球、不完全な球、(アメリカンフットボールまたはラグビーで使用されるような)長尺状のボール、立方体様の形状などの他の形状を有してもよい。
【0019】
図1A,1Bのコントローラは片手で使用するように設計されているが、本明細書に記載する実施形態を使用して、ボール付属の両手コントローラをトラッキングすることもできる。一実施形態では、ユーザが両手に持つ2台のコントローラは同じであるが、別の実施形態では、コントローラが異なる。一般に、各コントローラは、ボタンが違っている以外の点では極めて類似する。一実施形態では、コントローラは、コントローラを充電するためのユニバーサルシリアルバス(USB)接続と、コンソールとの無線通信のためのブルートゥースと、起動、選択およびPS等のボタンとを有する。
【0020】
一実施形態では、ボールまたは球の直径は4cmであるが、他のサイズも可能である。サイズが大きいほうが視覚的に認識しやすい。直径5cmのボールは、4cmのボールよりも、画像認識のためのピクセルが約55パーセント多くなる。
【0021】
図1C〜1Eは、図1A〜Bのゲームコントローラの異なる動作モードを示す。図1Cは、ボール部分がコントローラの下に存在し、上に入力ボタンがある「逆ワンド」動作を示す。この構成では、コントローラは、球体を回転させることによりアーケードフライトスティックとして使用されうる。一実施形態では、慣性ユニットが「スティック」(コントローラ)の角度およびねじれを提供し、上面には方向指示パッドが設けられている。別の実施形態では、図4A〜4Dを参照して後述するように、上面にはボタン構成を変更するための着脱可能なプレートが取り付けられている。この動作モードは、発砲、ドライビング、フライトゲームなどで使用することができる。
【0022】
一実施形態では、コントローラは、逆ワンド構成において人差し指用ボタンと中指用ボタンを備える。このため、2本の逆ワンドコントローラは、ソニー・コンピュータエンターテインメント・アメリカ社が販売しているSony DualShock(登録商標)2コントローラと同じ機能を提供することになる。
【0023】
図1Dは、「鉛筆」構成で隠すように持っている状態のコントローラを示す。ボールは視覚認識のためにカメラと対面しており、コントローラの本体のボタンを使用してのユーザ入力が可能である。このモードは、コントローラが絵筆、懐中電灯、ポインタ、火器などのゲームで使用されうる。図1Eは、ワンドモードでのコントローラの使用を示す。一実施形態では、ワンドはハンドル上部に2つの親指ボタンと、人差し指用のトリガとを備えるが、ほかの構成も可能である。ワンドモードは、魔法の杖、指揮者のタクト、テニスラケット、手斧または同様の武器、つるはし、傘、ロープなどの道具として使用することができる。
【0024】
図2A〜Bは、ボールが取り付けられているゲームコントローラの別の実施形態を示す。図2A,2Bのコントローラの本体は、取り付けられているボールと同じように球形である。これらのコントローラは、ボタン構成が異なっており、左手と右手でそれぞれ使用するようになっている。一実施形態では、これらのコントローラは全く同じであり、左手でも右手でも使用することができる。図2A,2Bのコントローラは、「野球」構成で保持される。つまり、コントローラが、野球のボールまたはテニスボールのサイズであり、手のひらに野球のボールとして保持される。図1C〜1Eの構成と同様に、図2A,2Bのコントローラは、ボールアタッチメントを、カメラ、床、天井に向けるなど、別の方向に向けて保持されてもよい。
【0025】
図3A〜3Bは、ボール付属ゲームコントローラの異なる実施形態を示す。コントローラが薄型になっており、軽量のアプリケーション用に設計されている。
【0026】
図4A〜Dは、フェイスプレートが交換可能なボール付属ゲームコントローラの実施形態を示す。図4Aは、図1A〜Bのコントローラに似ているが、フェイスプレートが交換可能なコントローラを示す。図4B〜4Dのフェイスプレートは、コントローラの上部または側面に取り付けることができる。別の実施形態では、上部の取り付け穴と側面の取り付け穴とではフェイスプレートのサイズが異なっており、上部用のフェイスプレートを側面用のフェイスプレートと交換することができない。図4B〜4Dは、D−パッドアタッチメント、アクションボタンパッド、およびタッチパッドをそれぞれ示す。アタッチメントは、電気的接続と、コントローラに取り付ける際にアタッチメントをしっかりと留めるための機械式固定手段とを有する。
【0027】
図5は、一実施形態による、マルチプレーヤ環境と、プレーヤが持っている異なるコントローラの位置を決定するための視覚情報の使用とを示す模式図である。画像キャプチャデバイス508はプレイフィールド518の画像を取得し、画像が分析されてボール付属コントローラC1,C2,C4,C5の位置が取得される。キャプチャした画像内の個々のボールの形状を分析することによって、距離dz1,dz2,dz4,dZ5が推定される。コンピューティングシステム502は、取得した座標と距離とを使用して、画面504内でプレーヤを表現するアバター512a,512bを生成する。画像認識に適した代表的な距離は約10フィート(3m)である。視覚認識を使用する1つの利点は、コントローラを変更する必要なく、画像キャプチャおよび画像認識の改善を、システムに取り入れることができる点にある。
【0028】
図6A〜6Dは、キャプチャした画像から認識した形状に幾何学形状を割り当てるための異なる実施形態を示す。図4Aは、キャプチャした画像に対する「正しい」幾何学形状(すなわちボール)を決定するうえでの問題のいくつかを示す。ボールは球形であるため、カメラがキャプチャした画像内でボールに対応する円を求めることが目標となる。図6Aに示す例のように認識した形状に円を割り当てるための方法は、その手法に応じて各種に存在する。例えば、円内の全てのピクセルが、ボールに対応するピクセルであることを保証するために、受け取った形状の内側の円を選択してもよい。すなわち、形状のピクセルが全て含まれ、形状以外のピクセルが最小となるように円を選択してもよい。あるいは、アルゴリズムが、キャプチャした形状を区切っている外側の曲線を検出し、次に、これらの曲線を近似する円を合わせこむ、いわゆるフィッティングを行ってもよい。
【0029】
多くの場合、ボールに関連し、キャプチャされるピクセルの数は少ない。一実施形態では、10フィート(3m)の地点にあるボールから、円の半径が4ピクセルの画像が得られる。すなわち、各ピクセルは、2.5フィートの深度に対応する。ノイズのため、あるいはアルゴリズムが不正確であるためピクセルが見落とされると、プレーヤの位置が2.5フィートずれてしまう。この結果、ピクセルのカウント自体では深度の正確な測定が得られない。また、コントローラが動いたためにボールが隠れた場合、カメラが部分的な画像しかキャプチャしないこともある。認識した形状を分析し、ボールの最適な位置と形状とを決定するためには、カーブフィッティングが肝要となる。
【0030】
図6Bは、円の中心および半径rの推定を示す。深度(本明細書ではzとも称する)は、ボールの面積に関連し、1/rに比例する。一実施形態では、この方法は、ボールの視覚特定に対応するピクセルを見つける。ボールに関連するピクセルがカウントされて面積が求められ、次に、サイズに基づいて中心およびrが計算される。
【0031】
別の実施形態では、図6Bの形状の外周が分析され、形状を取り囲んでいる曲線が求められる。この曲線が分析され、曲線に最もフィットする円が決定される。一実施形態では、選択される円は、その円と認識した形状を取り囲む曲線とによって区切られた一意な面積の合計が最も小さな円である。
【0032】
図6Cは、不完全な形状に対して関連する円の特定が困難であることを示す。形状を視覚的に調べると、ボールの一部分しかキャプチャされていないことが推測できる。面積を求めるために単純なピクセルのカウントを行っても、正確な結果が得られない。一実施形態では、この方法は、エッジの周囲の、影、光の変化などによって生じうる「曖昧な」境界をチェックして、外側の曲線の形状を求める。形状の外周の曲線が分析されて、中心(本明細書では「重心」とも称する)が決定されると共に、領域と外側の曲線とに最もフィットする半径が決定される。
【0033】
図6Dは、「最長のスティック合わせ」法を示す。上で説明したように、画像が分析されて、キャプチャしたボールの形状が決定される。この方法では、形状の内側に適合する最長の直線部分、すなわち「スティック」を求める。次に、この最長の部分が、ボールに関連する円の直径であるとみなされる。
【0034】
図7は、一実施形態による、ボール部分に対応するピクセルを見つけるためのサブピクセル分析の使用法を示す。多くの表示および画像取得システムにおいては、ピクセルグリッドが単色の領域に分割されており、これらが、離れた位置から見たときに表示または知覚される色を作り出している。LCD、LED、プラズマディスプレイなどの一部のディスプレイでは、このような単色の領域は別個にアドレス指定可能な素子であり、サブピクセルとして知られている。例えば、LCDは、通常、各ピクセル702を、3つのサブピクセル704,706,708に分割している。
【0035】
一実施形態では、ピクセル分析が、単色(例えば青)のみを対象とする。別の実施形態では、ピクセル分析が2つのサブピクセルの組み合わせを対象とし、この場合、精度は向上するが、演算量が増える。また、1つのピクセルの分析が、このピクセルまたはピクセル内のサブピクセルの分析に限られず、精度を向上させ、ノイズあるいは矛盾する照明等の他の条件の影響を低減させるために、近隣のピクセルも分析される。
【0036】
図8は、本発明の一実施形態による、形状の検出を改善するために画像をブラーリングする効果を示す。カメラにより、画像が、わずかにピントが外れており、ボールにブラーリング効果が生じている状態で撮像されており、このため、ブラーリングのない状態で撮像したよりも検知したボールの領域が大きくなっている。面積が大きくなったため分析されるピクセルが多くなり、精度が向上する。
【0037】
図9は、一実施形態による、ボール位置を決定するための、いくつかの連続するキャプチャ画像の使用(ここでは、スムージングと称する)を示す。一実施形態では、キャプチャされた画像が独立して分析されることはない。ある画像からの情報が、前に撮像した画像と比較される。撮像の頻度が十分に高い場合、コントローラの移動を考慮した(factoring)後でも、連続する画像は類似している。この結果、前の画像からの情報を使用して、おそらくはノイズ、不適切な照明、ボールの隠れなどによって生じる、突発的な異常ピクセルの変動を検出することができる。
【0038】
一実施形態では、古い画像が伝える情報は重要度が低下するため、以前の画像からの情報は、その経過時間に反比例して重み付けされる、すなわち、画像が古いほど重みが小さく設定される。
【0039】
図10は、精度を向上させるためにプレイフィールド152の狭めた領域156から画像を取得するための一実施形態を示す。コンピュータシステムは、ボールの移動を、ボールに付随するコントローラと共に追跡し、ビデオの撮像の頻度が画像間のコントローラの小さな動きを許容する適切な値に設定されている場合に、ボールが、直前に撮像した場所とほぼ同じ場所に存在すると仮定する。一実施形態では、ズーム機能を有するビデオ撮像カメラは、コントローラの移動を許容するために、直前の画像でボールが存在していた狭めた領域156と、ボールの周囲のバッファ領域との画像154を取得する。狭めた領域の画像は、より確実な位置決定を行うために解像度が高く、ボールに関連するピクセルの数が多い。
【0040】
この結果、狭めた領域の画像を撮像する際には、ボールが存在するプレイフィールドが狭められるが、ボールの既知の直前の位置を中心とするズームイン画像をキャプチャするためにボールの移動をトラッキングすることにより、これを容易に補償することができる。
【0041】
別の実施形態では、カメラは、プレイフィールドの中央にしかズームインできない。この場合、ズームイン機能は、ボールがプレイフィールドの中央のほうに存在する場合にのみ使用される。この場合、解像度はプレーヤがプレイフィールドの中央の近くに存在する場合には良いが、ボールがプレイフィールドの端に存在する場合には悪くなる。
【0042】
図11は、一実施形態による、ピクセル数が少ない場合のボールの画像認識を示す。図6Aに関して上で説明したように、ピクセル数が少ない場合には、わずか1つのピクセルが見落とされたりその計算の誤りが発生しても、認識される形状が大幅に変わってしまうことがある。ピクセル数が少ないという問題は、ボールが動いてピクセルの境界を超える場合に悪化しうる。ボールの第1の位置160では、この方法は、ボールを4つのピクセルを有するものとして認識する。一実施形態では、方法は、あるピクセルの少なくとも50パーセントがボールに対応する場合に、当該ピクセルがボールの色に関連すると決定するが、別の実施形態は、しきい値として他の割合を使用してもよい。ボールが第2の位置162に移動すると、方法はボールに関連する7つのピクセルを認識する。ボールに対応するピクセルの数が少ないため、ピクセルグリッド内でのボールの位置が図11の場合の要因(factor)となる。また、この問題は、ノイズ、ラスタライゼーションなどの他の要因によってこじれることがある。
【0043】
一実施形態は、高解像度カメラを使用することにより、ピクセル数が少ないという問題を解決する。図12は、高解像度カメラを使用した画像認識の一実施形態を示す。ボールに含まれるピクセルの数が多いため、低解像度のカメラを使用する場合よりも、ピクセルグリッドを超えるボールの微少な動きが形状認識に与える影響が小さくなる。
【0044】
図13A〜Cは、一実施形態による、カメラと対面するための可動の照光リングを使用するボールの検出を示す。コントローラ170は、画像キャプチャデバイス180によって撮像される画像に基づく視覚認識のために取り付けられたボール部分172を有する。ボール部分172は、内側の球またはボール174を有する。ボール174は、複数の光源178a〜nを有し、これらが画像キャプチャデバイス180に対向する視覚リングを形成している。一実施形態では、光源は、光ファイバ(optical wire)の端部に対応しており、対応する光ファイバから受光した光を発する。別の実施形態では、光源はLEDに対応している。
【0045】
内部ボール174は、キャプチャデバイス180とほぼ対面するために、内部ボール172を動かすように構成されている。一実施形態では、ボール174は、動きやすいように液体中に浮いている。図13Bは、約45°向きを変更したあとの図13Aと同じコントローラ170を示す。コントローラ170が動いたが、内部ボール174もコントローラ170に対して回転したため、照光リングはキャプチャデバイス180と対面したままとなる。この結果、キャプチャされる画像はリングとなり、これが、図15A〜Bに関して下記で説明するようにボールの位置の決定を支援する。
【0046】
別の実施形態では、画像認識を改善するか、あるいはプレイフィールド内で異なるコントローラ同士を区別するために、リングが、異なる色の光で照光されてもよい。更に別の実施形態では、複数のリングを照光可能であり、一度に1本のリングのみが照光されるか、あるいは画像認識のために複数のリングが同時に照光される。図13Cは、画像キャプチャデバイス180からみた、ボール部分の正面図を示す。
【0047】
図14A〜Hは、一実施形態による、ボール部分内の識別可能なリングの検出を示す。図14Aは、照光されたリング196を備える内部ボール194を含むボール192が取り付けられているコントローラ190を示す。図13A〜Cのコントローラとは異なり、図14A〜Cのコントローラは、コントローラに対して動くボールは有さない。このため、コントローラが、図14Aの実質的に垂直の位置から、図14Bに示すような別の向きに動くと、リング196は、画像キャプチャデバイス180の正面に対面する位置から、ボールをキャプチャデバイス180に連結する線に対して所定の角度で画像キャプチャデバイスと対面する位置に移動する。図14Aでは、画像は照光された円をキャプチャし、図14Bでは、画像は楕円のリングをキャプチャする。リングがカメラと正面で対面していないほとんどのコントローラ位置では、リングの半分が、ボールの背後の見えない側に隠れるため、画像にはリングのほぼ半分しか捉えられない。
【0048】
図14Cは、コントローラの位置が図14Bに示す位置にあるときに、カメラによってキャプチャされる画像を示す。図14Dは、異なる軸x、y、zについて、カメラに対してコントローラの向きを変える効果を示す。位置250のコントローラはカメラと対面しており、このため、カメラはボールしか「見えない」。ほかの位置は、異なる軸内でコントローラの向きを変えた場合に対応している。この図は、位置250において、プレーヤに、コントローラを、カメラに直接向けるように持たせ、その後、プレーヤが、肘をx方向、y方向またはz方向に回転させることにより、コントローラの位置を変えることによって描画することができる。
【0049】
コントローラがx方向に(水平に)回転すると、コントローラが横256を向くまで、(プレーヤの実際の手を無視すると)見えるコントローラの部分が次第に大きくなると共にリングが回転し、256ではリングが横向きに線として認識される。コントローラをy方向に(垂直に)回転させても、同様の現象が観察できる。コントローラをz(深度)方向に動かしても、認識されるリングが変化する。図14Dでは、カメラからボールが離れる移動は無視されるため、ボールのサイズの影響が小さくなる。
【0050】
図14Eは、図14Dで説明したようにコントローラを移動させたときの、カメラによって認識されるリングの形状を示す。ボールがカメラと対面しているときは完全な円250であるが、ボールの移動に伴い円が変形して楕円となり、カメラと対面する位置からリングが離れるにつれ、楕円の短軸が次第に短くなる。
【0051】
楕円は、2定点への距離の和が一定となるような、面内の点の集合であるという点に留意されたい。この2定点は「焦点」と呼ばれる。2つの焦点が一致する場合、楕円は円となる。すなわち、円とは、楕円の特別な場合である。図14Eの円250のように、円は単に楕円の一形態であるため、楕円に関して本明細書に記載した実施形態は、楕円が円である場合も包含するように設計されている。
【0052】
図14Fは、コントローラが、カメラと対面しつつ、カメラからz方向に離れる様子を示す。予想されるように、ボールがカメラから離れるにつれて、リングが次第に小さくなる。
【0053】
別の実施形態では、ボールが、図14Gの3本のリングなどの、異なる照光パターンを有する。図14Hは、互いに直交する2本のリングを有するボールを示す。更に別の実施形態では、ボールは、図14Eに示すような照光されたリングを有するが、コントローラがカメラの正面を向いているときのリングの向きが異なる。照光されたリングによって形成される円は、カメラに垂直であり、コントローラがカメラの正面を向いているときは、カメラは、図14Hに示すリングのいずれかのような直線を認識する。更に別の実施形態では、コントローラを向いているリングの一部は、カメラによってキャプチャされることがほとんどないため、リングを完全には照光せず、これによりリングの製造コストとバッテリ消費とを削減できる。一実施形態では、リングの270°の円弧のみが照光されるが、他の値も可能である。
【0054】
図15A〜Bは、部分弧の部分から完全なリング領域を推定するための方法を示す。図15Aは、ボールが隠れているときのように、リングのほぼ半分352しか検出されていない状態のキャプチャされたリング350を示す。一般に、部分的な情報を用いて円の中心を特定するよりも、部分的な情報を用いて弧の中心を特定するほうが容易である。図6A〜6Dに関して上で説明したように、円の中心の決定は、完全な情報が揃わなければ煩雑な作業となる。一方、図15Aのように、半弧に関する情報を用いて弧の中心を特定することは比較的容易である。
【0055】
リングに対応する曲線を分析することによって、半径354が、弧の中心と共に推定されうる。図15Bは、リングのほんの一部356しかキャプチャされていない場合を示す。しかし、図15Aで使用したのと同じ方法を使用して、高い精度レベルで円を決定することができる。利用できる情報は少ないが、この曲線にフィットする円の数が少なく、円のばらつきが小さい(すなわち、円から同様のrの値が得られ、中心が互いに離れていない)ため、検出された曲線の分析から正確な結果が得られる。
【0056】
図14A〜Dに対応するリングのように、カメラに対するリングの角度が変わりうる場合には、楕円を補填するために分析が拡張される。例えば、図14Eの半楕円252のようなリングが認識されると、この方法は、この楕円を分析して、楕円の長軸および短軸と、楕円の中心とを推定する。
【0057】
図16は、認識されるボール表面を広げるためにボールを振動させる実施形態を示す。ボールが振動すると、カメラによってキャプチャされる認識領域が長くなる。この方法は、位置決定を向上させるために、図9に示したアルゴリズムなどのスムージングと組み合わせることができる。ボールはそれぞれの中心に対して振動するため、連続する画像を比較したりその平均を求めることにより、ボールの正しい中心を高い精度で決定することができる。
【0058】
図17A〜Bは、検出を改善するためにサイズまたは外観を変更可能なボールの実施形態を示す。図17Aは、サイズを変更可能なボールを示す。プレーヤ450aがディスプレイ458の上に置かれたカメラ456に近いときに、コントローラ452に取り付けられているボール454aが所定のサイズを有する。プレーヤが位置450bのときは、コントローラ452と取り付けられているボールとが画面から離れてしまう。カメラによってキャプチャされる画像でボールが比較的小さくなると、ボール位置の決定が困難になる。検出を改善するために、ボール454bが広がり精度を改善する。ボールが大きくなるとキャプチャされる画像のピクセル数が増えるようになり、コントローラ位置の決定の精度が向上する。膨張、モーターなど、ボールを膨らませる数種類の方法が可能である。
【0059】
一実施形態では、コントローラ452は、ボールのサイズを通知するためにコンピューティング装置460と通信している。別の実施形態では、ボールで検出されたピクセル数が所定のしきい値を下回ると、コンピューティング装置460は、ボールを拡大するためのコマンドをコントローラに送信する。
【0060】
図17Bは、プレイフィールドの照光条件に応じて検出を改良するために、外観の変更、修正または改善が可能なボール460付きコントローラを示す。プレイフィールドが、太陽462からの光が入り込む窓などの光源(自然光源または人工光源)の近くに存在する場合、視覚検出が、昼夜の時刻、プレイフィールドの光量の影響を受けることがある。また、ボールの外観も、太陽光線からの入射角に影響される。例えば、日光がボールの正面に当たった場合、背面に当たった場合、側面に当たった場合では、ボールの外観が変わる。同様に、ランプ464(など)は、ランプが点灯か消灯かに応じて視覚検出に影響しうる。
【0061】
一実施形態では、ボール460は、ボール460の視認性を向上させるために点灯/消灯されうる光源を内部に備える。光源は、プレーヤによって、あるいは、ボール460付きコントローラと通信しているコンピュータシステムによって点灯されうる。別の実施形態では、ボール460は、透明なシェルを有してもよい。別の実施形態では、シェルにつや消し加工が施されてもよい。更に、シェル(透明またはつや消し)は、任意の陰影、色またはテクスチャを有してもよい。例えば、シェルがつや消しであるかまたは陰影を有する場合、ボール460は、非照光時に暗くみえてもよい。陰影の例としては、特定の環境に置かれた場合に、色または陰影によって、識別に好適なコントラストが得られる限りは、灰色、黒、銀または色の組み合わせなどがある。シェルは、プラスチック、ゴム、ガラス、発泡体、成形物などの多くの材料から作製することができる。また、これらの材料は、塗布、染色、成形などにより、どのような色に着色されてもよい。
【0062】
更に、ボール460内部の光源により、白または黄色などの異なる色でボール460を照光してもよいが、他の色も可能である。ボールを照光すると、低環境光条件における検出を改善でき、ボールを暗い色にすることで、明るい光条件における検出を改善することができる。
【0063】
図18は、ボール部分472がシェル478に収容されているゲームコントローラ470の実施形態を示す。シェル478は、ボールを視覚的に検出可能なように、光を透過させる。一実施形態では、シェル478は、ボールからカメラの方向に出る光474を透過させるが、外から来る光476は透過させない。このようにして、内部の照光されたボールとの干渉が低減される。
【0064】
別の実施形態では、シェル478は、例えば、青いボールを識別するために青色光を透過させるなど、透過光を選択的にフィルタしてもよい。
【0065】
図19A〜Bは、一実施形態による、移動トラッキングを改善するためのセンサを有するコントローラを示す。実施形態によって、磁力計、加速度計、ジャイロスコープなどのセンサの組み合せが異なる。
【0066】
加速度計は加速度と、重力に起因する反力とを測定するための装置である。異なる方向での加速度の大きさおよび方向を検出するために、一軸モデルと多軸モデルとを使用することができる。加速度計は、傾斜、振動および衝撃を検出するために使用される。一実施形態では、2角度(世界空間ピッチおよび世界空間ロール)の絶対基準となる重力の方向を提供するために、3台の加速度計が使用される。コントローラが5G超の加速度を受ける可能性もあり、このため、5G超の力でも動作可能な加速度計が、コントローラ550内部に使用されている。
【0067】
磁力計は、コントローラの近くの磁界の強度と向きとを測定する。一実施形態では、コントローラ内部に3台の磁力計552が使用されており、世界空間ヨー角度の絶対基準を規定している。磁力計は、±80マイクロテスラである地磁界の範囲をカバーするように設計されている。磁力計は、金属の影響を受け、実際のヨーと単調関係を示すヨー測定値を提供する。磁界は、環境に存在する金属の影響で歪むことがあり、このため、ヨー測定値に歪みが生じる。必要に応じて、この歪みを、ジャイロ(下記参照)またはカメラからの情報を使用して較正することができる。一実施形態では、加速度計554は、コントローラの傾斜および方位角を取得するために、磁力計552と共に使用される。
【0068】
ジャイロスコープは、角運動量の原理に基づいて、向きを測定および保持するための装置である。一実施形態では、3台のジャイロスコープが、検知された慣性に基づいて、各軸(x、yおよびz)の移動に関する情報を提供する。ジャイロスコープは、高速回転の検出を補助する。しかし、ジャイロスコープは、絶対基準が存在しなければ、時間が経つとずれることがある。このため、ジャイロスコープの定期的なリセットが必要であり、このリセットは、ボール558の視覚トラッキング、加速度計、磁力計などの他の入手可能な情報を使用して行なうことができる。ハンドヘルドデバイスは500°/秒より高速に回転することがあるため、1000°/秒を超える性能を有するジャイロスコープが推奨されるが、これより低い値でもよい。
【0069】
位置および向きの検出を改善するために、異なる情報源からの情報が組み合わされうる。例えば、ボールが視界から消えた場合、加速度計の向き検知を使用して、コントローラがカメラに向いていないことが検出される。一実施形態では、コントローラ550は、音声によるフィードバックをプレーヤに提供するためのスピーカを備える。例えば、カメラがボールを認識できない場合、コントローラはビープ音を発生させて、コントローラを正しい方向に向けるか、またはプレイフィールドに戻るようプレーヤを促すことができる。
【0070】
図19Bに示す実施形態では、数フレームからの視覚情報とセンサからの情報とが分析されて、コントローラの位置とコントローラの向きとが決定される。数フレームからの情報を分析することによって、コントローラの移動および向きに関連するセンサ情報が、数フレームにわたって「スムージング」される。数フレームでボールの軌跡が決定されると、センサ情報が分析されて、これらのフレームの対応するセンサ情報に対して、この軌道を与えるコントローラの対応する向きが特定される。
【0071】
図20は、一実施形態による、コントローラ位置の評価のための異なる情報源の使用を示す。コントローラ570は、ボール部分が取り付けられているほか、図19に関して上で説明したように、加速度計も有する。コンピューティングシステムは、コントローラ570のボールの視覚トラッキングを使用する。ボールが隠れた場合(例えば、コントローラが軌道582をとっているときに、ボールがプレーヤの頭の後ろに移動したために隠れた場合)、システムは推測航法を使用する。推測航法(DR)は、既定の位置すなわち定点に基づいて現在位置を推定し、既知の速度、経過時間および針路に基づいてこの現在位置を進めるプロセスである。
【0072】
コントローラのボールが経路582をとると、コンピューティングシステムは曲線580の下でコントローラをトラッキングする。ボールが隠れた場合、加速度計がリセットされ、システムは推測航法の使用を開始する。推測航法は時間の経過に伴い精度を失うため、正確なトラッキングを行うためには、他の位置情報により推測航法を補足することが望ましい点に注意すべきである。加速度計からのデータは常にキャプチャされているが、システムによって必ずしも使用されるとは限らない。
【0073】
ボールが隠れている間は(領域574)推測航法が使用される。領域578においてボールが再び見えるようになると、視覚トラッキングが再開される。一実施形態では、ボールが隠れた状態から見えるようになっているが、部分的に隠れているか、あるいは、ボールの移動をトラッキングするための視覚的な履歴がないために、視覚情報がまださほど正確でない場合など、時には、推測航法が領域などの視覚トラッキングと組み合わせられてもよい。
【0074】
図21A〜Cは、一実施形態による、コンピュータの動作を開始するためのコントローラの入力ホイールの使用を示す。コントローラの向きとホイールの移動の組み合わせにより、コンピューティングシステムでの動作が誘発される。例えば、プレーヤが、コントローラをx方向、y方向またはz方向に向けてからホイールを回転させると、画面のアイコンが、その方向に移動しうる。実際、コントローラを軸に合わせる必要はなく、どのような向きでも、画面上で対応して移動が行うことができる。例えば、コントローラをx軸とy軸の間で45°にすると、ディスプレイ654上のアイコンがこの方向に移動する。また、ホイールを、メニュー内の移動に使用することができる。例えば、メニュー内で、コントローラの向きに従って垂直または水平に移動してもよい。図21Aは、垂直方向すなわち経度方向のホイール658A付きのコントローラ650を示す。図21Bは、水平方向すなわち緯度方向のホイール672付きのコントローラ670を示す。コマンドを入力するために、ホイール672の上部分がプレーヤによって使用される。図21Cも、水平方向すなわち緯度方向のホイール676付きのコントローラ674を示す。ホイール676は、コントローラの周囲を取り巻いており、コントローラの本体の把持部分678に対して垂直680に動く。ホイール676の全周をユーザが使用することができ、ホイールを上、横、下または他の任意の角度から操作することができ、ホイールを色々な指で操作することも可能となる。
【0075】
図22は、本発明の一実施形態による、コントローラの位置を決定するために使用されうるハードウェアおよびユーザインタフェイスを示す。図22は、本発明の一実施形態による、三次元コントローラ位置特定システムを実装するために互換性を有しうるコンソールであるソニー(登録商標)プレイステーション3(登録商標)エンターテイメントデバイスのシステムアーキテクチャ全体を模式的に示す。システムユニット1400は、システムユニット1400に接続可能なさまざまな周辺機器を備える。システムユニット1400は、Cellプロセッサ1428、Rambus(登録商標)ダイナミックランダムアクセスメモリ(XDRAM)ユニット1426、専用のビデオランダムアクセスメモリ(VRAM)ユニット1432を有するReality Synthesizerグラフィックユニット1430、およびI/Oブリッジ1434を備える。また、システムユニット1400は、I/Oブリッジ1434を介してアクセス可能な、ディスク1440aから読み出すためのブルーレイ(登録商標)ディスクBD−ROM(登録商標)光ディスクリーダ1440および着脱可能なスロットインハードディスクドライブ(HDD)1436も備える。任意選択で、システムユニット1400は、同様にI/Oブリッジ1434を介してアクセス可能な、コンパクトフラッシュ(登録商標)メモリカード、メモリースティック(登録商標)メモリカードなどを読み出すためのメモリカードリーダ1438も備える。
【0076】
また、I/Oブリッジ1434は、6つのユニバーサルシリアルバス(USB)2.0ポート1424、ギガビットイーサネット(登録商標)ポート1422、IEEE 802.11b/g無線ネットワーク(Wi−Fi)ポート1420、および最大7つのブルートゥース(登録商標)接続に対応可能なブルートゥース無線リンクポート1418にも接続している。
【0077】
動作時に、I/Oブリッジ1434は、1台以上のゲームコントローラ1402〜1403からのデータを含む、全ての無線、USB、およびイーサネット(登録商標)のデータを処理する。例えば、ユーザがゲームをプレイ中に、I/Oブリッジ1434はブルートゥースリンクを介してゲームコントローラ1402〜1403からデータを受信して、これをCellプロセッサ1428に転送し、Cellプロセッサ1428が適宜ゲームの現在の状態を更新する。
【0078】
また、無線、USB、およびイーサネット(登録商標)の各ポートを介して、ゲームコントローラ1402〜1403のほかに、他の周辺機器も接続することが可能となる。このような周辺機器には、例えば、リモコン1404、キーボード1406、マウス1408、ソニープレイステーションポータブル(登録商標)エンターテイメントデバイスなどのポータブルエンターテイメントデバイス1410、EyeToy(登録商標)ビデオカメラ1412などのビデオカメラ、マイクロフォンヘッドセット1414、マイクロフォン1415などがある。このため、これらの周辺機器は、原則としてシステムユニット1400に無線で接続されうる。例えば、ポータブルエンターテイメントデバイス1410はWi−Fiアドホック接続を介して通信し、マイクロフォンヘッドセット1414はブルートゥースリンクを介して通信しうる。
【0079】
これらのインタフェイスを提供することにより、プレイステーション3デバイスは、デジタルビデオレコーダ(DVR)、セットトップボックス、デジタルカメラ、ポータブルメディアプレーヤ、VoIP電話、携帯電話、プリンタ、およびスキャナなどの他の周辺機器と場合によっては互換となりうる。
【0080】
更に、USBポート1424を介して旧式メモリカードリーダ1416をシステムユニットに接続することができ、プレイステーション(登録商標)デバイスまたはプレイステーション2(登録商標)で用いられていたタイプのメモリカード1448の読み出しが可能となる。
【0081】
ゲームコントローラ1402〜1403は、ブルートゥースリンクを介してシステムユニット1400とワイヤレスで通信するか、あるいは、USBポートと接続され、これにより、ゲームコントローラ1402〜1403のバッテリを充電する電力を供給するように動作可能である。また、ゲームコントローラ1402〜1403は、メモリ、プロセッサ、メモリカードリーダ、フラッシュメモリなどの恒久メモリ、LEDまたは赤外ライトなどの発光素子、超音波通信のためのマイクロフォンおよびスピーカ、アコースティックチェンバ、デジタルカメラ、内部クロック、ゲームコンソールに向いている球形部分等の認識可能な形状、ブルートゥース(登録商標)、WiFi(登録商標)などのプロトコルを使用する無線通信も有しうる。
【0082】
ゲームコントローラ1402は両手で使用されるように設計されたコントローラであり、ゲームコントローラ1403は、図1A〜4Aにおいて上で説明したようなボールアタッチメント付きの片手コントローラである。ゲームコントローラは、1つ以上のアナログジョイスティックおよび従来のコントロールボタンに加えて、三次元位置決定の対象となる。したがって、従来のボタンまたはジョイスティックコマンドに加えて、あるいはこれらの代わりに、ゲームコントローラのユーザが行なったジェスチャおよび移動が、ゲームへの入力として変換されうる。任意選択で、プレイステーション(登録商標)ポータブルデバイスなどの他の無線対応の周辺機器をコントローラとして使用することができる。プレイステーション(登録商標)ポータブルデバイスの場合、追加のゲーム情報または制御情報(例えば制御命令またはライブの数)が、当該デバイスの画面に提示されうる。ほかの代替的または補助的な制御装置が使用されてもよく、これには、ダンスマット(不図示)、ライトガン(不図示)、ハンドルおよびペダル(不図示)、あるいは、即答クイズゲームのための1つまたは複数の大型のボタン(これも図示なし)などの特注品のコントローラなどがある。
【0083】
また、リモコン1404も、ブルートゥースリンクを介してシステムユニット1400と無線通信するように動作可能である。リモコン1404は、ブルーレイ(登録商標)ディスクBD−ROMリーダ1440の操作、およびディスクの内容の閲覧のために適した制御を備える。
【0084】
ブルーレイ(登録商標)ディスクBD−ROMリーダ1440は、従来の記録済みCD、記録可能CD、およびいわゆるスーパーオーディオCDのほか、プレイステーションデバイスおよびプレイステーション2デバイスと互換のCD−ROMを読み出すように動作可能である。また、リーダ1440は、従来の記録済みDVDおよび記録可能DVDのほか、プレイステーション2デバイスおよびプレイステーション3デバイスと互換のDVD−ROMを読み出すように動作可能である。更に、リーダ1440は、従来の記録済みブルーレイディスクおよび記録可能ブルーレイディスクのほか、プレイステーション3デバイスと互換のBD−ROMを読み出すように動作可能である。
【0085】
システムユニット1400は、Reality Synthesizerグラフィックユニット1430を介して、プレイステーション3デバイスによって生成またはデコードされた音声およびビデオを、音声コネクタおよびビデオコネクタ経由で、ディスプレイ1444および1つ以上のスピーカ1446を備えた表示および音声出力デバイス1442(モニタまたはテレビ受像機など)に提供するように動作可能である。音声コネクタ1450は、従来のアナログ出力およびデジタル出力を備える一方、ビデオコネクタ1452は、コンポーネントビデオ、S−ビデオ、コンポジットビデオ、および1つ以上の高品位マルチメディアインタフェイス(HDMI)の出力などを種々備えうる。したがって、ビデオ出力は、PALまたはNTSC、あるいは720p、1080iまたは1080pの高解像度などのフォーマットであってもよい。
【0086】
音声処理(生成、デコードなど)はCellプロセッサ1428によって実行される。プレイステーション3デバイスのオペレーティングシステムは、ドルビー(登録商標)5.1サラウンドサウンド、ドルビー(登録商標)シアターサラウンド(DTS)、およびブルーレイ(登録商標)ディスクからの7.1サラウンドサウンドのデコードに対応している。
【0087】
本実施形態では、ビデオカメラ1412は、1つの電荷結合素子(CCD)、LEDインジケータ、およびハードウェアベースのリアルタイムデータ圧縮およびエンコード装置を備え、圧縮ビデオデータが、システムユニット1400によるデコードのために、イントラ画像ベースのMPEG(motion picture expert group)標準などの適切なフォーマットで送信されるようになる。カメラのLEDインジケータは、例えば不利な照明条件を示す適切な制御データをシステムユニット1400から受け取ると、発光するように配置されている。ビデオカメラ1412の実施形態は、USB、ブルートゥースまたはWi−Fiの通信ポートを介して、システムユニット1400にさまざまな方法で接続しうる。ビデオカメラの実施形態は、1つ以上の関連するマイクロフォンを備えており、音声データを送信することができる。ビデオカメラの実施形態では、CCDは、高解像度のビデオキャプチャに適した解像度を備えうる。使用時に、ビデオカメラによってキャプチャされた画像が、例えば、ゲーム内に取り込まれるか、またはゲームの制御入力として解釈されうる。別の実施形態では、カメラは、赤外光の検出に適した赤外線カメラである。
【0088】
一般に、システムユニット1400の通信ポートの1つを介して、ビデオカメラまたはリモコン等などの周辺機器とのデータ通信がうまく行われるように、デバイスドライバ等の適切なソフトウェアを提供する必要がある。デバイスドライバ技術は公知であり、ここで詳細に説明しないが、デバイスドライバまたは同様のソフトウェアインタフェイスが、記載する本実施形態で必要とされうることを当業者は理解するであろう。
【0089】
図23は、本発明の一実施形態による、命令の処理に使用されうる追加のハードウェアを示す。Cellプロセッサ1428は、メモリコントローラ1560およびデュアルバスインタフェイスコントローラ1570A,Bを含む外部入出力構造、パワープロセッシングエレメント1550と呼ばれるメインプロセッサ、シナジスティックプロセッシングエレメント(SPE)1510A〜Hと呼ばれる8基のコプロセッサ、エレメント相互接続バス1580と呼ばれる上記のコンポーネントに接続している環状データバス、の4つの基本コンポーネントを備えたアーキテクチャを有する。プレイステーション2デバイスのエモーションエンジンは6.2ギガフロップスであるのに対し、Cellプロセッサの総浮動小数点演算性能は、218ギガフロップスである。
【0090】
パワープロセッシングエレメント(PPE)1550は、3.2GHzの内部クロックで動作し、双方向同時マルチスレッディングPower1470準拠のPowerPCコア(PPU)1555をベースにしている。PPE1550は、512kBのレベル2(L2)キャッシュと、32kBのレベル1(L1)キャッシュとを備える。PPE1550は、クロックサイクルごとに8つの単一位置(single position)操作ができ、これは、3.2GHzで25.6ギガフロップスに相当する。PPE1550の主な役割は、演算作業負荷の大部分を処理するシナジスティックプロセッシングエレメント1510A〜Hのコントローラとして機能することにある。動作時に、PPE1550はジョブキューを保持し、シナジスティックプロセッシングエレメント1510A〜Hのジョブをスケジュールしており、その進捗を監視する。したがって、各シナジスティックプロセッシングエレメント1510A〜Hはカーネルを実行し、その役割は、ジョブを取り出して、これを実行し、PPE1550と同期されることにある。
【0091】
各シナジスティックプロセッシングエレメント(SPE)1510A〜Hは、シナジスティックプロセッシングユニット(SPU)1520A〜Hおよびメモリフローコントローラ(MFC)1540A〜Hをそれぞれ備え、MFC1540A〜Hは、ダイナミックメモリアクセスコントローラ(DMAC)1542A〜H、メモリ管理ユニット(MMU)1544A〜H、およびバスインタフェイス(不図示)をそれぞれ備える。各SPU1520A〜Hは3.2GHzでクロック供給され、原則として4GBまで拡張可能な256kBのローカルRAM1530A〜Hを備えたRISCプロセッサである。各SPEは、理論的には単精度処理性能で25.6ギガフロップスを示す。1つのSPUは、1クロックサイクルに、4つの単精度浮動小数点数(member)、4つの32ビット数、8つの16ビット整数または16の8ビット整数を処理することができる。同じクロックサイクルで、メモリ操作も実行することができる。SPU1520A〜HはシステムメモリXDRAM1426に直接アクセスしない。SPU1520A〜Hが作成した64ビットアドレスがMFC1540A〜Hに渡され、MFC1540A〜Hが、自身のDMAコントローラ1542A〜Hに対して、エレメント相互接続バス1580およびメモリコントローラ1560を介してメモリにアクセスするように指示する。
【0092】
エレメント相互接続バス(EIB)1580は、Cellプロセッサ1428内部の論理的には環状の通信バスであり、上記のプロセッサエレメント(すなわち、PPE1550、メモリコントローラ1560、デュアルバスインタフェイス1570A,B、および8基のSPE1510A〜H、合計12個のパーティシパント)を接続している。パーティシパントは、1クロックサイクルにつき8バイトの速度で、バスに同時に読み出しおよび書き込みを行うことができる。上で説明したように、各SPE1510A〜Hは、長いリードまたはライトのシーケンスをスケジュールするためのDMAC1542A〜Hを備える。EIBは、4つのチャネルを備え、そのうち2つは時計回り方向であり、残り2つは反時計回り方向である。したがって、12のパーティシパントについて、2つのパーティシパント間のステップ方式の最長のデータフローは、適切な方向で6ステップとなる。このため、パーティシパント間でアービトレーションが行われて完全な利用度が実現されると、12のスロットの理論上のピーク瞬間EIB帯域幅は、1クロックにつき96Bとなる。これは、3.2GHzのクロック速度で307.2GB/s(ギガバイト/秒)の理論上のピーク帯域幅に相当する。
【0093】
メモリコントローラ1560は、ラムバス社(Rambus Incorporated)によって開発されたXDRAMインタフェイス1562を備える。このメモリコントローラは、25.6GB/sの理論上のピーク帯域幅で、Rambus XDRAM1426とインタフェイスする。
【0094】
デュアルバスインタフェイス1570A,Bは、Rambus FlexIO(登録商標)システムインタフェイス1572A,Bを備える。このインタフェイスは、それぞれ8ビット幅の12のチャネルに編成されており、このうち、5の経路が受信用、7つの経路が送信用である。これにより、Cellプロセッサと、コントローラ170Aを介してI/Oブリッジ700間、およびコントローラ170Bを介してReality Simulatorグラフィックユニット200間で、理論上のピーク帯域幅が62.4GB/s(送信36.4GB/s、受信26GB/s)が得られる。
【0095】
Cellプロセッサ1428によってReality Simulatorグラフィックユニット1430に送信されるデータには、通常、表示リストが含まれ、これは、頂点を描画したり、ポリゴンにテクスチャを貼り付けたり、照明条件を指定するなどための一連のコマンドである。
【0096】
図24は、プレイフィールド内でのボール付属ゲームコントローラの位置を決定するための方法の実施形態を示すフローチャート2400を示す。操作2402において、本方法は、ゲームコントローラが存在するプレイフィールドの画像を取得し、次に、ゲームコントローラに連結されているボールに関連するピクセルをこの画像内で見つける。一実施形態では、ボールの色に対応するピクセルを見つけるために画像がスキャンされ、別の実施形態では、図7に関して上で説明したように、ボールに関連するピクセルを見つけるためにサブピクセル分析が使用される。
【0097】
操作2406において、本方法は、見つかったピクセルを包含する領域を特定する。操作2408において、領域に基づきボールに関連する幾何学形状が決定される。領域認識を実行するための方法の異なる実施形態については、図6A〜6D,9,12を参照されたい。幾何学形状が決定されると、本方法は、操作2410において、幾何学形状に基づいてコントローラの位置を計算し、この幾何学形状の中心は、コントローラの水平位置および垂直位置を示し、幾何学形状のサイズは、プレイフィールド内でのコントローラの深度を決定する。操作2412において、計算で求めた位置がコンピュータに関連するメモリに記憶され、操作2414において、コンピュータが、この記憶した位置に基づいて動作を起動する。
【0098】
図25は、一実施形態による、プレイフィールド内での識別可能なリングを含むボールの位置を決定するための方法のフローチャートを示す。この方法は、図24に関して上で説明した方法と似ているが、図25の方法は、三次元空間内でコントローラが移動したときのリングの変形に関する検討が新たに追加されている。
【0099】
操作2502において、本方法は、図5に示すように、ゲームコントローラが存在するプレイフィールドの画像を取得する。操作2504において、ゲームコントローラに連結されているボール部分内のリングに関連するピクセルを見つけるために、この画像がスキャンされる。コントローラに取り付けられているボール内部のリングに基づく位置決定に関する異なる実施形態については、図13A〜15Bを参照されたい。
【0100】
操作2506において、本方法は、操作2504で見つかったピクセルを包含する領域を特定し、操作2508において、本方法は、領域に基づきリングに関連する楕円を決定する。操作2510において、楕円に基づいてコントローラの位置が計算される。この楕円の中心は、コントローラの水平位置および垂直位置を示し、楕円のサイズは、プレイフィールド内でのコントローラの深度を決定する。操作2212において、この位置がコンピュータに関連するメモリに記憶される。操作2514において、コンピュータが、この記憶した位置に応じて動作を起動する。
【0101】
本発明の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電気製品、ミニコンピュータ、メインフレームコンピュータなどの各種のコンピュータシステム構成によって実施されてもよい。また、本発明は、分散コンピューティング環境で実施されてもよく、このような環境では、有線ベースまたは無線ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される。
【0102】
上記の実施形態を考慮に入れて、本発明が、コンピュータシステムに記憶されているデータを使用する、各種のコンピュータで実行される操作を使用してもよい点を理解すべきである。これらの操作は、物理量の物理的操作を必要とする。本発明の一部を構成している、本明細書に記載した操作はいずれも、有用な機械的操作である。本発明は、これらの操作を実行するデバイスまたは装置にも関する。この装置は、所望の目的のために特別に作製されたものであっても、あるいは汎用コンピュータであり、そのコンピュータに記憶されているコンピュータプログラムによって選択的に作動もしくは構成されてもよい。特に、各種の汎用の機械を、本明細書の教示に従って記述したコンピュータプログラムと併用してもよく、あるいは所望の操作を実行するために特化した機械を作製するほうが利便性が高いこともある。
【0103】
また、本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして実施されてもよい。コンピュータ可読媒体は、コンピュータシステムによって後から読み取ることができるデータを記憶可能なデータ記憶デバイスであれば、どのようなものであってもよい。コンピュータ可読媒体の例には、ハードディスク、ネットワーク接続記憶装置(NAS)、リードオンリーメモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープおよび他の光学式データ記憶装置および非光学式データ記憶装置などがある。また、コンピュータ可読媒体は、コンピュータ可読コードが分散式に記憶されて、実行されるように、ネットワークに結合されたコンピュータシステムを介して分散されたコンピュータ可読有形媒体を介して分散されてもよい。
【0104】
方法の操作を特定の順序で記載したが、同時に実行される操作の処理が所期どおりに実行される限り、操作と操作の間に他の管理操作が実行されても、操作がわずかに時間をずらして実行されるように操作が調整されても、操作がシステム内で分散されて、処理に係るさまざまな間隔で処理操作を行なうことができるようにしてもよい。
【0105】
上記に、本発明を明確に理解できるように多少詳細に記載したが、添付の特許請求の範囲内で変更例または変形例を実施できることは明らかである。したがって、本実施形態は例示的なものであり、制限するものではなく、本発明は本明細書に記載されている詳細な事項に限定されず、添付の特許請求の範囲およびその均等物の範囲内で変更されてもよい。
【技術分野】
【0001】
本発明は、一般に、プレイフィールド内でのゲームコントローラの位置のトラッキングに関し、より詳細には、ボールアタッチメント付属ゲームコントローラの位置および移動の視覚情報を使用したトラッキングに関する。
【背景技術】
【0002】
ビデオゲーム業界は、長年にわたり多くの変化を遂げてきた。コンピュータの処理能力の向上とともに、ビデオゲームの開発者らも、このような処理能力の高度化を利用したゲームソフトウェアを作製してきた。このため、ビデオゲームの開発者らは、非常にリアルなゲーム体験となるように高度な演算や数値演算を組み込んだゲームをコーディングしてきた。
【0003】
このようなゲームのプラットフォームの例には、ソニープレイステーション(登録商標)、ソニープレイステーション2(登録商標)(PS2)およびソニープレイステーション3(登録商標)(PS3)があり、これらは共にゲームコンソールの形態で販売されている。周知のように、ゲームコンソールは、モニタ(通常、テレビ受像機)に接続して、ハンドヘルドコントローラを介してユーザインタラクションが可能になるように設計される。ゲームコンソールは、CPU、重いグラフィック演算を処理するためのグラフィックシンセサイザ、ジオメトリ変換を実行するためのベクトル演算ユニット、およびグルーハードウェアと呼ばれるその他のハードウェア、ファームウェア、およびソフトウェアを含む専用の処理ハードウェアで設計されている。ゲームコンソールは、ゲームコンソールを介してローカルでプレイするためのゲームのコンパクトディスクを受け入れるための光ディスクトレイを備えるように更に設計される。また、ユーザが、インターネット上で他のユーザと対戦して、または、他のユーザと一緒にインタラクティブにプレイすることができるオンラインゲームも可能である。
【0004】
ゲームを複雑にしてプレーヤの興味を引き付けるために、ゲームおよびハードウェアの製造業者らは、新しい手法を取り入れてさらなるインタラクティビティ、つまり対話性、とコンピュータプログラムとを可能にしようとしてきた。コンピュータゲーム業界においては、ユーザとゲームシステム間のインタラクションを高めるゲームを開発する傾向が広がっている。より質の高いインタラクティブな体験を実現する1つのやり方として、プレーヤの動きをトラッキングして、この動きをゲームの入力として使用するために、ゲームシステムによって移動がトラッキングされる無線ゲームコントローラを使用する方法がある。一般的にいうと、ジェスチャ入力とは、コンピューティングシステム、ビデオゲームコンソール、インテリジェント家電などの電子装置を、物体をトラッキングするビデオカメラがキャプチャした何らかのジェスチャに反応させることを指す。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、現在の物体トラッキングは、キャプチャ精度が低い。この問題は、従来の画像解析では、ユーザの位置の二次元の測定値が、そこそこの精度の値でしか得られないために生じる。この理由は、認識したコントローラの形状のわずかな変動により、コントローラの水平位置および垂直位置の決定の信頼性が低くなると共に、ノイズの影響を極めて受けやすくなるためである。また、カメラに近づいたりカメラから離れることによるわずかな形状の変化では、カメラとコントローラ間の距離を正確に計算するのに十分な情報が得られないため、カメラとトラッキング対象の物体間の距離を決定することが困難である。
【0006】
本発明の実施形態は、この状況においてなされたものである。
【課題を解決するための手段】
【0007】
本発明の実施形態は、プレイフィールド内でのゲームコントローラの位置を決定するための方法、システムおよびコンピュータプログラムを提供する。前記ゲームコントローラに取り付けたボール部分が、視覚情報を使用した前記コントローラの位置の特定を補助する。
【0008】
本発明は、プロセス、装置、システム、デバイスまたはコンピュータ可読媒体上の方法など、多くの方法で実施することができる点を理解されたい。以下に本発明のいくつかの発明の実施形態を記載する。
【0009】
一実施形態では、コンピュータは、プレイフィールド内でのゲームコントローラの位置を決定するための方法を実行する。前記方法は、前記ゲームコントローラが存在する前記プレイフィールドの画像を取得し、次に、前記ボール部分に関連するピクセルを前記画像内で見つける。前記方法は、更に、前記見つかったピクセルを包含する領域を特定し、前記領域に基づき前記ボールに関連する幾何学形状を決定する。前記幾何学形状に基づいて、前記コントローラの前記位置が計算され、前記幾何学形状の中心は、前記コントローラの水平位置および垂直位置を示し、前記幾何学形状のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する。前記位置がメモリに記憶され、これを使用して前記コンピュータによる動作が起動される。
【0010】
別の実施形態では、プレイフィールド内でのゲームコントローラの位置を決定するための方法が提示される。前記方法は、前記プレイフィールドの画像を取得し、前記ゲームコントローラに連結されているボール部分内のリングに関連するピクセルを前記画像内で見つける。更に、前記方法は、前記リングに関連する前記見つかったピクセルを包含する領域を特定する。先に特定した前記領域に基づき楕円が決定され、前記楕円に基づいて、前記コントローラの前記位置が計算され、前記楕円の中心は、前記コントローラの水平座標および垂直座標を示し、前記楕円のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する。前記位置がメモリに記憶され、これを使用して前記コンピュータによる動作が起動される。
【0011】
別の実施形態では、ゲームコントローラの位置および移動に関する複数の情報源の組み合わせを使用した、プレイフィールド内で前記コントローラの位置を決定するための方法が提示される。前記方法は、前記コントローラの画像を取得し、前記ゲームコントローラから状態情報を受け取る。前記状態情報は、加速度計、ジャイロスコープまたは磁力計からの情報であってもよい。前記方法は、前記ゲームコントローラに連結されているボール部分に関連する幾何学形状を決定し、前記状態情報と前記幾何学形状に関する情報とを組み合わせることにより前記コントローラの前記位置を計算する。
【0012】
本発明の他の態様は、例示のために本発明の原理を示す添付の図面と併せて、以下の詳細な説明を読めば明らかとなるであろう。
【0013】
本発明は、添付の図面を参照して以下の説明を読めば理解が深まるであろう。
【図面の簡単な説明】
【0014】
【図1A】ボール部分が取り付けられているゲームコントローラの実施形態を示す。
【図1B】ボール部分が取り付けられているゲームコントローラの実施形態を示す。
【図1C】図1A〜Bのゲームコントローラの異なる動作モードを示す。
【図1D】図1A〜Bのゲームコントローラの異なる動作モードを示す。
【図1E】図1A〜Bのゲームコントローラの異なる動作モードを示す。
【図2A】ボールが取り付けられているゲームコントローラの別の実施形態を示す。
【図2B】ボールが取り付けられているゲームコントローラの別の実施形態を示す。
【図3A】ボール付属ゲームコントローラの異なる実施形態を示す。
【図3B】ボール付属ゲームコントローラの異なる実施形態を示す。
【図4A】フェイスプレートが交換可能なボール付属ゲームコントローラの実施形態を示す。
【図4B】フェイスプレートが交換可能なボール付属ゲームコントローラの実施形態を示す。
【図4C】フェイスプレートが交換可能なボール付属ゲームコントローラの実施形態を示す。
【図4D】フェイスプレートが交換可能なボール付属ゲームコントローラの実施形態を示す。
【図5】一実施形態による、マルチプレーヤ環境と、プレーヤが持っている異なるコントローラの位置を決定するための視覚情報の使用とを示す模式図である。
【図6A】キャプチャした画像から認識した形状に幾何学形状を割り当てるための異なる実施形態を示す。
【図6B】キャプチャした画像から認識した形状に幾何学形状を割り当てるための異なる実施形態を示す。
【図6C】キャプチャした画像から認識した形状に幾何学形状を割り当てるための異なる実施形態を示す。
【図6D】キャプチャした画像から認識した形状に幾何学形状を割り当てるための異なる実施形態を示す。
【図7】一実施形態による、ボール部分に対応するピクセルを見つけるためのサブピクセル分析の使用法を示す。
【図8】本発明の一実施形態による、形状の検出を改善するために画像をブラーリングする効果を示す。
【図9】一実施形態による、ボール位置を決定するための、いくつかの連続するキャプチャ画像の使用を示す。
【図10】精度を向上させるためにプレイフィールドの狭めた領域から画像を取得するための一実施形態を示す。
【図11】一実施形態による、ピクセル数が少ない場合のボールの画像認識を示す。
【図12】高解像度カメラを使用した画像認識の一実施形態を示す。
【図13A】一実施形態による、カメラと対面するための可動の照光リングを使用するボールの検出を示す。
【図13B】一実施形態による、カメラと対面するための可動の照光リングを使用するボールの検出を示す。
【図13C】一実施形態による、カメラと対面するための可動の照光リングを使用するボールの検出を示す。
【図14A】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14B】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14C】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14D】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14E】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14F】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14G】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図14H】一実施形態による、ボール部分内の識別可能なリングの検出を示す。
【図15A】部分弧の部分から完全なリング領域を推定するための方法を示す。
【図15B】部分弧の部分から完全なリング領域を推定するための方法を示す。
【図16】認識されるボール表面を広げるためにボールを振動させる実施形態を示す。
【図17A】検出を改善するためにサイズまたは外観を変えることができるボールの実施形態を示す。
【図17B】検出を改善するためにサイズまたは外観を変えることができるボールの実施形態を示す。
【図18】ボール部分がシェルに収容されているゲームコントローラの実施形態を示す。
【図19A】一実施形態による、移動トラッキングを改善するためのセンサを有するコントローラを示す。
【図19B】一実施形態による、移動トラッキングを改善するためのセンサを有するコントローラを示す。
【図20】一実施形態による、コントローラ位置の評価のための異なる情報源の使用を示す。
【図21A】一実施形態による、コンピュータの動作を開始するためのコントローラのホイールの使用を示す。
【図21B】一実施形態による、コンピュータの動作を開始するためのコントローラのホイールの使用を示す。
【図21C】一実施形態による、コンピュータの動作を開始するためのコントローラのホイールの使用を示す。
【図22】本発明の一実施形態による、コントローラの位置を決定するために使用されうるハードウェアおよびユーザインタフェイスを示す。
【図23】本発明の一実施形態による、命令の処理に使用されうる追加のハードウェアを示す。
【図24】プレイフィールド内でのボール付属ゲームコントローラの位置を決定するための方法の実施形態を示すフローチャートを示す。
【図25】一実施形態による、プレイフィールド内での識別可能なリングを含むボールの位置を決定するための方法のフローチャートを示す。
【発明を実施するための形態】
【0015】
以下の実施形態は、プレイフィールド内でのゲームコントローラの位置を決定するための方法、システムおよびコンピュータプログラムを記載する。視覚情報を使用して、前記コントローラの位置を特定するために前記ゲームコントローラにボール部分が取り付けられている。前記方法は、前記ゲームコントローラが存在する前記プレイフィールドの画像を取得し、次に、前記ボール部分に関連するピクセルを前記画像内で見つける。前記方法は、更に、前記見つかったピクセルを包含する領域を特定し、前記領域に基づき前記ボールに関連する幾何学形状を決定する。前記幾何学形状に基づいて、前記コントローラの前記位置が計算され、前記幾何学形状の中心は、前記コントローラの水平位置および垂直位置を示し、前記幾何学形状のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する。前記位置がメモリに記憶され、これを使用して前記コンピュータによる動作が起動される。
【0016】
しかし、本発明を、このような詳細な内容の一部または全てを用いなくても実施しうることは当業者にとって自明である。場合によっては、本発明を不必要にあいまいにすることのないよう、公知の処理操作は詳述していない。
【0017】
図1A〜Bは、ボール部分が取り付けられているゲームコントローラの実施形態を示す。コントローラに取り付けられているボールは色が異なっており、一実施形態では、ボールは発光してもよい。ボール内部の色は、ボール内部のRGB(赤緑青)の発光ダイオード(LED)によって作り出すことができる。また、カメラの異なる露出設定下でボールをトラッキングするために、照光されているボールの明るさが制御されうる。一実施形態では、ボールの色は、個々のユーザのコントローラを区別したり、1人のユーザが両手に持っているコントローラを区別するために使用される。
【0018】
図1A,1Bのコントローラでは球形状のボールが示されているが、ボールが、視覚トラッキングのために、部分球、不完全な球、(アメリカンフットボールまたはラグビーで使用されるような)長尺状のボール、立方体様の形状などの他の形状を有してもよい。
【0019】
図1A,1Bのコントローラは片手で使用するように設計されているが、本明細書に記載する実施形態を使用して、ボール付属の両手コントローラをトラッキングすることもできる。一実施形態では、ユーザが両手に持つ2台のコントローラは同じであるが、別の実施形態では、コントローラが異なる。一般に、各コントローラは、ボタンが違っている以外の点では極めて類似する。一実施形態では、コントローラは、コントローラを充電するためのユニバーサルシリアルバス(USB)接続と、コンソールとの無線通信のためのブルートゥースと、起動、選択およびPS等のボタンとを有する。
【0020】
一実施形態では、ボールまたは球の直径は4cmであるが、他のサイズも可能である。サイズが大きいほうが視覚的に認識しやすい。直径5cmのボールは、4cmのボールよりも、画像認識のためのピクセルが約55パーセント多くなる。
【0021】
図1C〜1Eは、図1A〜Bのゲームコントローラの異なる動作モードを示す。図1Cは、ボール部分がコントローラの下に存在し、上に入力ボタンがある「逆ワンド」動作を示す。この構成では、コントローラは、球体を回転させることによりアーケードフライトスティックとして使用されうる。一実施形態では、慣性ユニットが「スティック」(コントローラ)の角度およびねじれを提供し、上面には方向指示パッドが設けられている。別の実施形態では、図4A〜4Dを参照して後述するように、上面にはボタン構成を変更するための着脱可能なプレートが取り付けられている。この動作モードは、発砲、ドライビング、フライトゲームなどで使用することができる。
【0022】
一実施形態では、コントローラは、逆ワンド構成において人差し指用ボタンと中指用ボタンを備える。このため、2本の逆ワンドコントローラは、ソニー・コンピュータエンターテインメント・アメリカ社が販売しているSony DualShock(登録商標)2コントローラと同じ機能を提供することになる。
【0023】
図1Dは、「鉛筆」構成で隠すように持っている状態のコントローラを示す。ボールは視覚認識のためにカメラと対面しており、コントローラの本体のボタンを使用してのユーザ入力が可能である。このモードは、コントローラが絵筆、懐中電灯、ポインタ、火器などのゲームで使用されうる。図1Eは、ワンドモードでのコントローラの使用を示す。一実施形態では、ワンドはハンドル上部に2つの親指ボタンと、人差し指用のトリガとを備えるが、ほかの構成も可能である。ワンドモードは、魔法の杖、指揮者のタクト、テニスラケット、手斧または同様の武器、つるはし、傘、ロープなどの道具として使用することができる。
【0024】
図2A〜Bは、ボールが取り付けられているゲームコントローラの別の実施形態を示す。図2A,2Bのコントローラの本体は、取り付けられているボールと同じように球形である。これらのコントローラは、ボタン構成が異なっており、左手と右手でそれぞれ使用するようになっている。一実施形態では、これらのコントローラは全く同じであり、左手でも右手でも使用することができる。図2A,2Bのコントローラは、「野球」構成で保持される。つまり、コントローラが、野球のボールまたはテニスボールのサイズであり、手のひらに野球のボールとして保持される。図1C〜1Eの構成と同様に、図2A,2Bのコントローラは、ボールアタッチメントを、カメラ、床、天井に向けるなど、別の方向に向けて保持されてもよい。
【0025】
図3A〜3Bは、ボール付属ゲームコントローラの異なる実施形態を示す。コントローラが薄型になっており、軽量のアプリケーション用に設計されている。
【0026】
図4A〜Dは、フェイスプレートが交換可能なボール付属ゲームコントローラの実施形態を示す。図4Aは、図1A〜Bのコントローラに似ているが、フェイスプレートが交換可能なコントローラを示す。図4B〜4Dのフェイスプレートは、コントローラの上部または側面に取り付けることができる。別の実施形態では、上部の取り付け穴と側面の取り付け穴とではフェイスプレートのサイズが異なっており、上部用のフェイスプレートを側面用のフェイスプレートと交換することができない。図4B〜4Dは、D−パッドアタッチメント、アクションボタンパッド、およびタッチパッドをそれぞれ示す。アタッチメントは、電気的接続と、コントローラに取り付ける際にアタッチメントをしっかりと留めるための機械式固定手段とを有する。
【0027】
図5は、一実施形態による、マルチプレーヤ環境と、プレーヤが持っている異なるコントローラの位置を決定するための視覚情報の使用とを示す模式図である。画像キャプチャデバイス508はプレイフィールド518の画像を取得し、画像が分析されてボール付属コントローラC1,C2,C4,C5の位置が取得される。キャプチャした画像内の個々のボールの形状を分析することによって、距離dz1,dz2,dz4,dZ5が推定される。コンピューティングシステム502は、取得した座標と距離とを使用して、画面504内でプレーヤを表現するアバター512a,512bを生成する。画像認識に適した代表的な距離は約10フィート(3m)である。視覚認識を使用する1つの利点は、コントローラを変更する必要なく、画像キャプチャおよび画像認識の改善を、システムに取り入れることができる点にある。
【0028】
図6A〜6Dは、キャプチャした画像から認識した形状に幾何学形状を割り当てるための異なる実施形態を示す。図4Aは、キャプチャした画像に対する「正しい」幾何学形状(すなわちボール)を決定するうえでの問題のいくつかを示す。ボールは球形であるため、カメラがキャプチャした画像内でボールに対応する円を求めることが目標となる。図6Aに示す例のように認識した形状に円を割り当てるための方法は、その手法に応じて各種に存在する。例えば、円内の全てのピクセルが、ボールに対応するピクセルであることを保証するために、受け取った形状の内側の円を選択してもよい。すなわち、形状のピクセルが全て含まれ、形状以外のピクセルが最小となるように円を選択してもよい。あるいは、アルゴリズムが、キャプチャした形状を区切っている外側の曲線を検出し、次に、これらの曲線を近似する円を合わせこむ、いわゆるフィッティングを行ってもよい。
【0029】
多くの場合、ボールに関連し、キャプチャされるピクセルの数は少ない。一実施形態では、10フィート(3m)の地点にあるボールから、円の半径が4ピクセルの画像が得られる。すなわち、各ピクセルは、2.5フィートの深度に対応する。ノイズのため、あるいはアルゴリズムが不正確であるためピクセルが見落とされると、プレーヤの位置が2.5フィートずれてしまう。この結果、ピクセルのカウント自体では深度の正確な測定が得られない。また、コントローラが動いたためにボールが隠れた場合、カメラが部分的な画像しかキャプチャしないこともある。認識した形状を分析し、ボールの最適な位置と形状とを決定するためには、カーブフィッティングが肝要となる。
【0030】
図6Bは、円の中心および半径rの推定を示す。深度(本明細書ではzとも称する)は、ボールの面積に関連し、1/rに比例する。一実施形態では、この方法は、ボールの視覚特定に対応するピクセルを見つける。ボールに関連するピクセルがカウントされて面積が求められ、次に、サイズに基づいて中心およびrが計算される。
【0031】
別の実施形態では、図6Bの形状の外周が分析され、形状を取り囲んでいる曲線が求められる。この曲線が分析され、曲線に最もフィットする円が決定される。一実施形態では、選択される円は、その円と認識した形状を取り囲む曲線とによって区切られた一意な面積の合計が最も小さな円である。
【0032】
図6Cは、不完全な形状に対して関連する円の特定が困難であることを示す。形状を視覚的に調べると、ボールの一部分しかキャプチャされていないことが推測できる。面積を求めるために単純なピクセルのカウントを行っても、正確な結果が得られない。一実施形態では、この方法は、エッジの周囲の、影、光の変化などによって生じうる「曖昧な」境界をチェックして、外側の曲線の形状を求める。形状の外周の曲線が分析されて、中心(本明細書では「重心」とも称する)が決定されると共に、領域と外側の曲線とに最もフィットする半径が決定される。
【0033】
図6Dは、「最長のスティック合わせ」法を示す。上で説明したように、画像が分析されて、キャプチャしたボールの形状が決定される。この方法では、形状の内側に適合する最長の直線部分、すなわち「スティック」を求める。次に、この最長の部分が、ボールに関連する円の直径であるとみなされる。
【0034】
図7は、一実施形態による、ボール部分に対応するピクセルを見つけるためのサブピクセル分析の使用法を示す。多くの表示および画像取得システムにおいては、ピクセルグリッドが単色の領域に分割されており、これらが、離れた位置から見たときに表示または知覚される色を作り出している。LCD、LED、プラズマディスプレイなどの一部のディスプレイでは、このような単色の領域は別個にアドレス指定可能な素子であり、サブピクセルとして知られている。例えば、LCDは、通常、各ピクセル702を、3つのサブピクセル704,706,708に分割している。
【0035】
一実施形態では、ピクセル分析が、単色(例えば青)のみを対象とする。別の実施形態では、ピクセル分析が2つのサブピクセルの組み合わせを対象とし、この場合、精度は向上するが、演算量が増える。また、1つのピクセルの分析が、このピクセルまたはピクセル内のサブピクセルの分析に限られず、精度を向上させ、ノイズあるいは矛盾する照明等の他の条件の影響を低減させるために、近隣のピクセルも分析される。
【0036】
図8は、本発明の一実施形態による、形状の検出を改善するために画像をブラーリングする効果を示す。カメラにより、画像が、わずかにピントが外れており、ボールにブラーリング効果が生じている状態で撮像されており、このため、ブラーリングのない状態で撮像したよりも検知したボールの領域が大きくなっている。面積が大きくなったため分析されるピクセルが多くなり、精度が向上する。
【0037】
図9は、一実施形態による、ボール位置を決定するための、いくつかの連続するキャプチャ画像の使用(ここでは、スムージングと称する)を示す。一実施形態では、キャプチャされた画像が独立して分析されることはない。ある画像からの情報が、前に撮像した画像と比較される。撮像の頻度が十分に高い場合、コントローラの移動を考慮した(factoring)後でも、連続する画像は類似している。この結果、前の画像からの情報を使用して、おそらくはノイズ、不適切な照明、ボールの隠れなどによって生じる、突発的な異常ピクセルの変動を検出することができる。
【0038】
一実施形態では、古い画像が伝える情報は重要度が低下するため、以前の画像からの情報は、その経過時間に反比例して重み付けされる、すなわち、画像が古いほど重みが小さく設定される。
【0039】
図10は、精度を向上させるためにプレイフィールド152の狭めた領域156から画像を取得するための一実施形態を示す。コンピュータシステムは、ボールの移動を、ボールに付随するコントローラと共に追跡し、ビデオの撮像の頻度が画像間のコントローラの小さな動きを許容する適切な値に設定されている場合に、ボールが、直前に撮像した場所とほぼ同じ場所に存在すると仮定する。一実施形態では、ズーム機能を有するビデオ撮像カメラは、コントローラの移動を許容するために、直前の画像でボールが存在していた狭めた領域156と、ボールの周囲のバッファ領域との画像154を取得する。狭めた領域の画像は、より確実な位置決定を行うために解像度が高く、ボールに関連するピクセルの数が多い。
【0040】
この結果、狭めた領域の画像を撮像する際には、ボールが存在するプレイフィールドが狭められるが、ボールの既知の直前の位置を中心とするズームイン画像をキャプチャするためにボールの移動をトラッキングすることにより、これを容易に補償することができる。
【0041】
別の実施形態では、カメラは、プレイフィールドの中央にしかズームインできない。この場合、ズームイン機能は、ボールがプレイフィールドの中央のほうに存在する場合にのみ使用される。この場合、解像度はプレーヤがプレイフィールドの中央の近くに存在する場合には良いが、ボールがプレイフィールドの端に存在する場合には悪くなる。
【0042】
図11は、一実施形態による、ピクセル数が少ない場合のボールの画像認識を示す。図6Aに関して上で説明したように、ピクセル数が少ない場合には、わずか1つのピクセルが見落とされたりその計算の誤りが発生しても、認識される形状が大幅に変わってしまうことがある。ピクセル数が少ないという問題は、ボールが動いてピクセルの境界を超える場合に悪化しうる。ボールの第1の位置160では、この方法は、ボールを4つのピクセルを有するものとして認識する。一実施形態では、方法は、あるピクセルの少なくとも50パーセントがボールに対応する場合に、当該ピクセルがボールの色に関連すると決定するが、別の実施形態は、しきい値として他の割合を使用してもよい。ボールが第2の位置162に移動すると、方法はボールに関連する7つのピクセルを認識する。ボールに対応するピクセルの数が少ないため、ピクセルグリッド内でのボールの位置が図11の場合の要因(factor)となる。また、この問題は、ノイズ、ラスタライゼーションなどの他の要因によってこじれることがある。
【0043】
一実施形態は、高解像度カメラを使用することにより、ピクセル数が少ないという問題を解決する。図12は、高解像度カメラを使用した画像認識の一実施形態を示す。ボールに含まれるピクセルの数が多いため、低解像度のカメラを使用する場合よりも、ピクセルグリッドを超えるボールの微少な動きが形状認識に与える影響が小さくなる。
【0044】
図13A〜Cは、一実施形態による、カメラと対面するための可動の照光リングを使用するボールの検出を示す。コントローラ170は、画像キャプチャデバイス180によって撮像される画像に基づく視覚認識のために取り付けられたボール部分172を有する。ボール部分172は、内側の球またはボール174を有する。ボール174は、複数の光源178a〜nを有し、これらが画像キャプチャデバイス180に対向する視覚リングを形成している。一実施形態では、光源は、光ファイバ(optical wire)の端部に対応しており、対応する光ファイバから受光した光を発する。別の実施形態では、光源はLEDに対応している。
【0045】
内部ボール174は、キャプチャデバイス180とほぼ対面するために、内部ボール172を動かすように構成されている。一実施形態では、ボール174は、動きやすいように液体中に浮いている。図13Bは、約45°向きを変更したあとの図13Aと同じコントローラ170を示す。コントローラ170が動いたが、内部ボール174もコントローラ170に対して回転したため、照光リングはキャプチャデバイス180と対面したままとなる。この結果、キャプチャされる画像はリングとなり、これが、図15A〜Bに関して下記で説明するようにボールの位置の決定を支援する。
【0046】
別の実施形態では、画像認識を改善するか、あるいはプレイフィールド内で異なるコントローラ同士を区別するために、リングが、異なる色の光で照光されてもよい。更に別の実施形態では、複数のリングを照光可能であり、一度に1本のリングのみが照光されるか、あるいは画像認識のために複数のリングが同時に照光される。図13Cは、画像キャプチャデバイス180からみた、ボール部分の正面図を示す。
【0047】
図14A〜Hは、一実施形態による、ボール部分内の識別可能なリングの検出を示す。図14Aは、照光されたリング196を備える内部ボール194を含むボール192が取り付けられているコントローラ190を示す。図13A〜Cのコントローラとは異なり、図14A〜Cのコントローラは、コントローラに対して動くボールは有さない。このため、コントローラが、図14Aの実質的に垂直の位置から、図14Bに示すような別の向きに動くと、リング196は、画像キャプチャデバイス180の正面に対面する位置から、ボールをキャプチャデバイス180に連結する線に対して所定の角度で画像キャプチャデバイスと対面する位置に移動する。図14Aでは、画像は照光された円をキャプチャし、図14Bでは、画像は楕円のリングをキャプチャする。リングがカメラと正面で対面していないほとんどのコントローラ位置では、リングの半分が、ボールの背後の見えない側に隠れるため、画像にはリングのほぼ半分しか捉えられない。
【0048】
図14Cは、コントローラの位置が図14Bに示す位置にあるときに、カメラによってキャプチャされる画像を示す。図14Dは、異なる軸x、y、zについて、カメラに対してコントローラの向きを変える効果を示す。位置250のコントローラはカメラと対面しており、このため、カメラはボールしか「見えない」。ほかの位置は、異なる軸内でコントローラの向きを変えた場合に対応している。この図は、位置250において、プレーヤに、コントローラを、カメラに直接向けるように持たせ、その後、プレーヤが、肘をx方向、y方向またはz方向に回転させることにより、コントローラの位置を変えることによって描画することができる。
【0049】
コントローラがx方向に(水平に)回転すると、コントローラが横256を向くまで、(プレーヤの実際の手を無視すると)見えるコントローラの部分が次第に大きくなると共にリングが回転し、256ではリングが横向きに線として認識される。コントローラをy方向に(垂直に)回転させても、同様の現象が観察できる。コントローラをz(深度)方向に動かしても、認識されるリングが変化する。図14Dでは、カメラからボールが離れる移動は無視されるため、ボールのサイズの影響が小さくなる。
【0050】
図14Eは、図14Dで説明したようにコントローラを移動させたときの、カメラによって認識されるリングの形状を示す。ボールがカメラと対面しているときは完全な円250であるが、ボールの移動に伴い円が変形して楕円となり、カメラと対面する位置からリングが離れるにつれ、楕円の短軸が次第に短くなる。
【0051】
楕円は、2定点への距離の和が一定となるような、面内の点の集合であるという点に留意されたい。この2定点は「焦点」と呼ばれる。2つの焦点が一致する場合、楕円は円となる。すなわち、円とは、楕円の特別な場合である。図14Eの円250のように、円は単に楕円の一形態であるため、楕円に関して本明細書に記載した実施形態は、楕円が円である場合も包含するように設計されている。
【0052】
図14Fは、コントローラが、カメラと対面しつつ、カメラからz方向に離れる様子を示す。予想されるように、ボールがカメラから離れるにつれて、リングが次第に小さくなる。
【0053】
別の実施形態では、ボールが、図14Gの3本のリングなどの、異なる照光パターンを有する。図14Hは、互いに直交する2本のリングを有するボールを示す。更に別の実施形態では、ボールは、図14Eに示すような照光されたリングを有するが、コントローラがカメラの正面を向いているときのリングの向きが異なる。照光されたリングによって形成される円は、カメラに垂直であり、コントローラがカメラの正面を向いているときは、カメラは、図14Hに示すリングのいずれかのような直線を認識する。更に別の実施形態では、コントローラを向いているリングの一部は、カメラによってキャプチャされることがほとんどないため、リングを完全には照光せず、これによりリングの製造コストとバッテリ消費とを削減できる。一実施形態では、リングの270°の円弧のみが照光されるが、他の値も可能である。
【0054】
図15A〜Bは、部分弧の部分から完全なリング領域を推定するための方法を示す。図15Aは、ボールが隠れているときのように、リングのほぼ半分352しか検出されていない状態のキャプチャされたリング350を示す。一般に、部分的な情報を用いて円の中心を特定するよりも、部分的な情報を用いて弧の中心を特定するほうが容易である。図6A〜6Dに関して上で説明したように、円の中心の決定は、完全な情報が揃わなければ煩雑な作業となる。一方、図15Aのように、半弧に関する情報を用いて弧の中心を特定することは比較的容易である。
【0055】
リングに対応する曲線を分析することによって、半径354が、弧の中心と共に推定されうる。図15Bは、リングのほんの一部356しかキャプチャされていない場合を示す。しかし、図15Aで使用したのと同じ方法を使用して、高い精度レベルで円を決定することができる。利用できる情報は少ないが、この曲線にフィットする円の数が少なく、円のばらつきが小さい(すなわち、円から同様のrの値が得られ、中心が互いに離れていない)ため、検出された曲線の分析から正確な結果が得られる。
【0056】
図14A〜Dに対応するリングのように、カメラに対するリングの角度が変わりうる場合には、楕円を補填するために分析が拡張される。例えば、図14Eの半楕円252のようなリングが認識されると、この方法は、この楕円を分析して、楕円の長軸および短軸と、楕円の中心とを推定する。
【0057】
図16は、認識されるボール表面を広げるためにボールを振動させる実施形態を示す。ボールが振動すると、カメラによってキャプチャされる認識領域が長くなる。この方法は、位置決定を向上させるために、図9に示したアルゴリズムなどのスムージングと組み合わせることができる。ボールはそれぞれの中心に対して振動するため、連続する画像を比較したりその平均を求めることにより、ボールの正しい中心を高い精度で決定することができる。
【0058】
図17A〜Bは、検出を改善するためにサイズまたは外観を変更可能なボールの実施形態を示す。図17Aは、サイズを変更可能なボールを示す。プレーヤ450aがディスプレイ458の上に置かれたカメラ456に近いときに、コントローラ452に取り付けられているボール454aが所定のサイズを有する。プレーヤが位置450bのときは、コントローラ452と取り付けられているボールとが画面から離れてしまう。カメラによってキャプチャされる画像でボールが比較的小さくなると、ボール位置の決定が困難になる。検出を改善するために、ボール454bが広がり精度を改善する。ボールが大きくなるとキャプチャされる画像のピクセル数が増えるようになり、コントローラ位置の決定の精度が向上する。膨張、モーターなど、ボールを膨らませる数種類の方法が可能である。
【0059】
一実施形態では、コントローラ452は、ボールのサイズを通知するためにコンピューティング装置460と通信している。別の実施形態では、ボールで検出されたピクセル数が所定のしきい値を下回ると、コンピューティング装置460は、ボールを拡大するためのコマンドをコントローラに送信する。
【0060】
図17Bは、プレイフィールドの照光条件に応じて検出を改良するために、外観の変更、修正または改善が可能なボール460付きコントローラを示す。プレイフィールドが、太陽462からの光が入り込む窓などの光源(自然光源または人工光源)の近くに存在する場合、視覚検出が、昼夜の時刻、プレイフィールドの光量の影響を受けることがある。また、ボールの外観も、太陽光線からの入射角に影響される。例えば、日光がボールの正面に当たった場合、背面に当たった場合、側面に当たった場合では、ボールの外観が変わる。同様に、ランプ464(など)は、ランプが点灯か消灯かに応じて視覚検出に影響しうる。
【0061】
一実施形態では、ボール460は、ボール460の視認性を向上させるために点灯/消灯されうる光源を内部に備える。光源は、プレーヤによって、あるいは、ボール460付きコントローラと通信しているコンピュータシステムによって点灯されうる。別の実施形態では、ボール460は、透明なシェルを有してもよい。別の実施形態では、シェルにつや消し加工が施されてもよい。更に、シェル(透明またはつや消し)は、任意の陰影、色またはテクスチャを有してもよい。例えば、シェルがつや消しであるかまたは陰影を有する場合、ボール460は、非照光時に暗くみえてもよい。陰影の例としては、特定の環境に置かれた場合に、色または陰影によって、識別に好適なコントラストが得られる限りは、灰色、黒、銀または色の組み合わせなどがある。シェルは、プラスチック、ゴム、ガラス、発泡体、成形物などの多くの材料から作製することができる。また、これらの材料は、塗布、染色、成形などにより、どのような色に着色されてもよい。
【0062】
更に、ボール460内部の光源により、白または黄色などの異なる色でボール460を照光してもよいが、他の色も可能である。ボールを照光すると、低環境光条件における検出を改善でき、ボールを暗い色にすることで、明るい光条件における検出を改善することができる。
【0063】
図18は、ボール部分472がシェル478に収容されているゲームコントローラ470の実施形態を示す。シェル478は、ボールを視覚的に検出可能なように、光を透過させる。一実施形態では、シェル478は、ボールからカメラの方向に出る光474を透過させるが、外から来る光476は透過させない。このようにして、内部の照光されたボールとの干渉が低減される。
【0064】
別の実施形態では、シェル478は、例えば、青いボールを識別するために青色光を透過させるなど、透過光を選択的にフィルタしてもよい。
【0065】
図19A〜Bは、一実施形態による、移動トラッキングを改善するためのセンサを有するコントローラを示す。実施形態によって、磁力計、加速度計、ジャイロスコープなどのセンサの組み合せが異なる。
【0066】
加速度計は加速度と、重力に起因する反力とを測定するための装置である。異なる方向での加速度の大きさおよび方向を検出するために、一軸モデルと多軸モデルとを使用することができる。加速度計は、傾斜、振動および衝撃を検出するために使用される。一実施形態では、2角度(世界空間ピッチおよび世界空間ロール)の絶対基準となる重力の方向を提供するために、3台の加速度計が使用される。コントローラが5G超の加速度を受ける可能性もあり、このため、5G超の力でも動作可能な加速度計が、コントローラ550内部に使用されている。
【0067】
磁力計は、コントローラの近くの磁界の強度と向きとを測定する。一実施形態では、コントローラ内部に3台の磁力計552が使用されており、世界空間ヨー角度の絶対基準を規定している。磁力計は、±80マイクロテスラである地磁界の範囲をカバーするように設計されている。磁力計は、金属の影響を受け、実際のヨーと単調関係を示すヨー測定値を提供する。磁界は、環境に存在する金属の影響で歪むことがあり、このため、ヨー測定値に歪みが生じる。必要に応じて、この歪みを、ジャイロ(下記参照)またはカメラからの情報を使用して較正することができる。一実施形態では、加速度計554は、コントローラの傾斜および方位角を取得するために、磁力計552と共に使用される。
【0068】
ジャイロスコープは、角運動量の原理に基づいて、向きを測定および保持するための装置である。一実施形態では、3台のジャイロスコープが、検知された慣性に基づいて、各軸(x、yおよびz)の移動に関する情報を提供する。ジャイロスコープは、高速回転の検出を補助する。しかし、ジャイロスコープは、絶対基準が存在しなければ、時間が経つとずれることがある。このため、ジャイロスコープの定期的なリセットが必要であり、このリセットは、ボール558の視覚トラッキング、加速度計、磁力計などの他の入手可能な情報を使用して行なうことができる。ハンドヘルドデバイスは500°/秒より高速に回転することがあるため、1000°/秒を超える性能を有するジャイロスコープが推奨されるが、これより低い値でもよい。
【0069】
位置および向きの検出を改善するために、異なる情報源からの情報が組み合わされうる。例えば、ボールが視界から消えた場合、加速度計の向き検知を使用して、コントローラがカメラに向いていないことが検出される。一実施形態では、コントローラ550は、音声によるフィードバックをプレーヤに提供するためのスピーカを備える。例えば、カメラがボールを認識できない場合、コントローラはビープ音を発生させて、コントローラを正しい方向に向けるか、またはプレイフィールドに戻るようプレーヤを促すことができる。
【0070】
図19Bに示す実施形態では、数フレームからの視覚情報とセンサからの情報とが分析されて、コントローラの位置とコントローラの向きとが決定される。数フレームからの情報を分析することによって、コントローラの移動および向きに関連するセンサ情報が、数フレームにわたって「スムージング」される。数フレームでボールの軌跡が決定されると、センサ情報が分析されて、これらのフレームの対応するセンサ情報に対して、この軌道を与えるコントローラの対応する向きが特定される。
【0071】
図20は、一実施形態による、コントローラ位置の評価のための異なる情報源の使用を示す。コントローラ570は、ボール部分が取り付けられているほか、図19に関して上で説明したように、加速度計も有する。コンピューティングシステムは、コントローラ570のボールの視覚トラッキングを使用する。ボールが隠れた場合(例えば、コントローラが軌道582をとっているときに、ボールがプレーヤの頭の後ろに移動したために隠れた場合)、システムは推測航法を使用する。推測航法(DR)は、既定の位置すなわち定点に基づいて現在位置を推定し、既知の速度、経過時間および針路に基づいてこの現在位置を進めるプロセスである。
【0072】
コントローラのボールが経路582をとると、コンピューティングシステムは曲線580の下でコントローラをトラッキングする。ボールが隠れた場合、加速度計がリセットされ、システムは推測航法の使用を開始する。推測航法は時間の経過に伴い精度を失うため、正確なトラッキングを行うためには、他の位置情報により推測航法を補足することが望ましい点に注意すべきである。加速度計からのデータは常にキャプチャされているが、システムによって必ずしも使用されるとは限らない。
【0073】
ボールが隠れている間は(領域574)推測航法が使用される。領域578においてボールが再び見えるようになると、視覚トラッキングが再開される。一実施形態では、ボールが隠れた状態から見えるようになっているが、部分的に隠れているか、あるいは、ボールの移動をトラッキングするための視覚的な履歴がないために、視覚情報がまださほど正確でない場合など、時には、推測航法が領域などの視覚トラッキングと組み合わせられてもよい。
【0074】
図21A〜Cは、一実施形態による、コンピュータの動作を開始するためのコントローラの入力ホイールの使用を示す。コントローラの向きとホイールの移動の組み合わせにより、コンピューティングシステムでの動作が誘発される。例えば、プレーヤが、コントローラをx方向、y方向またはz方向に向けてからホイールを回転させると、画面のアイコンが、その方向に移動しうる。実際、コントローラを軸に合わせる必要はなく、どのような向きでも、画面上で対応して移動が行うことができる。例えば、コントローラをx軸とy軸の間で45°にすると、ディスプレイ654上のアイコンがこの方向に移動する。また、ホイールを、メニュー内の移動に使用することができる。例えば、メニュー内で、コントローラの向きに従って垂直または水平に移動してもよい。図21Aは、垂直方向すなわち経度方向のホイール658A付きのコントローラ650を示す。図21Bは、水平方向すなわち緯度方向のホイール672付きのコントローラ670を示す。コマンドを入力するために、ホイール672の上部分がプレーヤによって使用される。図21Cも、水平方向すなわち緯度方向のホイール676付きのコントローラ674を示す。ホイール676は、コントローラの周囲を取り巻いており、コントローラの本体の把持部分678に対して垂直680に動く。ホイール676の全周をユーザが使用することができ、ホイールを上、横、下または他の任意の角度から操作することができ、ホイールを色々な指で操作することも可能となる。
【0075】
図22は、本発明の一実施形態による、コントローラの位置を決定するために使用されうるハードウェアおよびユーザインタフェイスを示す。図22は、本発明の一実施形態による、三次元コントローラ位置特定システムを実装するために互換性を有しうるコンソールであるソニー(登録商標)プレイステーション3(登録商標)エンターテイメントデバイスのシステムアーキテクチャ全体を模式的に示す。システムユニット1400は、システムユニット1400に接続可能なさまざまな周辺機器を備える。システムユニット1400は、Cellプロセッサ1428、Rambus(登録商標)ダイナミックランダムアクセスメモリ(XDRAM)ユニット1426、専用のビデオランダムアクセスメモリ(VRAM)ユニット1432を有するReality Synthesizerグラフィックユニット1430、およびI/Oブリッジ1434を備える。また、システムユニット1400は、I/Oブリッジ1434を介してアクセス可能な、ディスク1440aから読み出すためのブルーレイ(登録商標)ディスクBD−ROM(登録商標)光ディスクリーダ1440および着脱可能なスロットインハードディスクドライブ(HDD)1436も備える。任意選択で、システムユニット1400は、同様にI/Oブリッジ1434を介してアクセス可能な、コンパクトフラッシュ(登録商標)メモリカード、メモリースティック(登録商標)メモリカードなどを読み出すためのメモリカードリーダ1438も備える。
【0076】
また、I/Oブリッジ1434は、6つのユニバーサルシリアルバス(USB)2.0ポート1424、ギガビットイーサネット(登録商標)ポート1422、IEEE 802.11b/g無線ネットワーク(Wi−Fi)ポート1420、および最大7つのブルートゥース(登録商標)接続に対応可能なブルートゥース無線リンクポート1418にも接続している。
【0077】
動作時に、I/Oブリッジ1434は、1台以上のゲームコントローラ1402〜1403からのデータを含む、全ての無線、USB、およびイーサネット(登録商標)のデータを処理する。例えば、ユーザがゲームをプレイ中に、I/Oブリッジ1434はブルートゥースリンクを介してゲームコントローラ1402〜1403からデータを受信して、これをCellプロセッサ1428に転送し、Cellプロセッサ1428が適宜ゲームの現在の状態を更新する。
【0078】
また、無線、USB、およびイーサネット(登録商標)の各ポートを介して、ゲームコントローラ1402〜1403のほかに、他の周辺機器も接続することが可能となる。このような周辺機器には、例えば、リモコン1404、キーボード1406、マウス1408、ソニープレイステーションポータブル(登録商標)エンターテイメントデバイスなどのポータブルエンターテイメントデバイス1410、EyeToy(登録商標)ビデオカメラ1412などのビデオカメラ、マイクロフォンヘッドセット1414、マイクロフォン1415などがある。このため、これらの周辺機器は、原則としてシステムユニット1400に無線で接続されうる。例えば、ポータブルエンターテイメントデバイス1410はWi−Fiアドホック接続を介して通信し、マイクロフォンヘッドセット1414はブルートゥースリンクを介して通信しうる。
【0079】
これらのインタフェイスを提供することにより、プレイステーション3デバイスは、デジタルビデオレコーダ(DVR)、セットトップボックス、デジタルカメラ、ポータブルメディアプレーヤ、VoIP電話、携帯電話、プリンタ、およびスキャナなどの他の周辺機器と場合によっては互換となりうる。
【0080】
更に、USBポート1424を介して旧式メモリカードリーダ1416をシステムユニットに接続することができ、プレイステーション(登録商標)デバイスまたはプレイステーション2(登録商標)で用いられていたタイプのメモリカード1448の読み出しが可能となる。
【0081】
ゲームコントローラ1402〜1403は、ブルートゥースリンクを介してシステムユニット1400とワイヤレスで通信するか、あるいは、USBポートと接続され、これにより、ゲームコントローラ1402〜1403のバッテリを充電する電力を供給するように動作可能である。また、ゲームコントローラ1402〜1403は、メモリ、プロセッサ、メモリカードリーダ、フラッシュメモリなどの恒久メモリ、LEDまたは赤外ライトなどの発光素子、超音波通信のためのマイクロフォンおよびスピーカ、アコースティックチェンバ、デジタルカメラ、内部クロック、ゲームコンソールに向いている球形部分等の認識可能な形状、ブルートゥース(登録商標)、WiFi(登録商標)などのプロトコルを使用する無線通信も有しうる。
【0082】
ゲームコントローラ1402は両手で使用されるように設計されたコントローラであり、ゲームコントローラ1403は、図1A〜4Aにおいて上で説明したようなボールアタッチメント付きの片手コントローラである。ゲームコントローラは、1つ以上のアナログジョイスティックおよび従来のコントロールボタンに加えて、三次元位置決定の対象となる。したがって、従来のボタンまたはジョイスティックコマンドに加えて、あるいはこれらの代わりに、ゲームコントローラのユーザが行なったジェスチャおよび移動が、ゲームへの入力として変換されうる。任意選択で、プレイステーション(登録商標)ポータブルデバイスなどの他の無線対応の周辺機器をコントローラとして使用することができる。プレイステーション(登録商標)ポータブルデバイスの場合、追加のゲーム情報または制御情報(例えば制御命令またはライブの数)が、当該デバイスの画面に提示されうる。ほかの代替的または補助的な制御装置が使用されてもよく、これには、ダンスマット(不図示)、ライトガン(不図示)、ハンドルおよびペダル(不図示)、あるいは、即答クイズゲームのための1つまたは複数の大型のボタン(これも図示なし)などの特注品のコントローラなどがある。
【0083】
また、リモコン1404も、ブルートゥースリンクを介してシステムユニット1400と無線通信するように動作可能である。リモコン1404は、ブルーレイ(登録商標)ディスクBD−ROMリーダ1440の操作、およびディスクの内容の閲覧のために適した制御を備える。
【0084】
ブルーレイ(登録商標)ディスクBD−ROMリーダ1440は、従来の記録済みCD、記録可能CD、およびいわゆるスーパーオーディオCDのほか、プレイステーションデバイスおよびプレイステーション2デバイスと互換のCD−ROMを読み出すように動作可能である。また、リーダ1440は、従来の記録済みDVDおよび記録可能DVDのほか、プレイステーション2デバイスおよびプレイステーション3デバイスと互換のDVD−ROMを読み出すように動作可能である。更に、リーダ1440は、従来の記録済みブルーレイディスクおよび記録可能ブルーレイディスクのほか、プレイステーション3デバイスと互換のBD−ROMを読み出すように動作可能である。
【0085】
システムユニット1400は、Reality Synthesizerグラフィックユニット1430を介して、プレイステーション3デバイスによって生成またはデコードされた音声およびビデオを、音声コネクタおよびビデオコネクタ経由で、ディスプレイ1444および1つ以上のスピーカ1446を備えた表示および音声出力デバイス1442(モニタまたはテレビ受像機など)に提供するように動作可能である。音声コネクタ1450は、従来のアナログ出力およびデジタル出力を備える一方、ビデオコネクタ1452は、コンポーネントビデオ、S−ビデオ、コンポジットビデオ、および1つ以上の高品位マルチメディアインタフェイス(HDMI)の出力などを種々備えうる。したがって、ビデオ出力は、PALまたはNTSC、あるいは720p、1080iまたは1080pの高解像度などのフォーマットであってもよい。
【0086】
音声処理(生成、デコードなど)はCellプロセッサ1428によって実行される。プレイステーション3デバイスのオペレーティングシステムは、ドルビー(登録商標)5.1サラウンドサウンド、ドルビー(登録商標)シアターサラウンド(DTS)、およびブルーレイ(登録商標)ディスクからの7.1サラウンドサウンドのデコードに対応している。
【0087】
本実施形態では、ビデオカメラ1412は、1つの電荷結合素子(CCD)、LEDインジケータ、およびハードウェアベースのリアルタイムデータ圧縮およびエンコード装置を備え、圧縮ビデオデータが、システムユニット1400によるデコードのために、イントラ画像ベースのMPEG(motion picture expert group)標準などの適切なフォーマットで送信されるようになる。カメラのLEDインジケータは、例えば不利な照明条件を示す適切な制御データをシステムユニット1400から受け取ると、発光するように配置されている。ビデオカメラ1412の実施形態は、USB、ブルートゥースまたはWi−Fiの通信ポートを介して、システムユニット1400にさまざまな方法で接続しうる。ビデオカメラの実施形態は、1つ以上の関連するマイクロフォンを備えており、音声データを送信することができる。ビデオカメラの実施形態では、CCDは、高解像度のビデオキャプチャに適した解像度を備えうる。使用時に、ビデオカメラによってキャプチャされた画像が、例えば、ゲーム内に取り込まれるか、またはゲームの制御入力として解釈されうる。別の実施形態では、カメラは、赤外光の検出に適した赤外線カメラである。
【0088】
一般に、システムユニット1400の通信ポートの1つを介して、ビデオカメラまたはリモコン等などの周辺機器とのデータ通信がうまく行われるように、デバイスドライバ等の適切なソフトウェアを提供する必要がある。デバイスドライバ技術は公知であり、ここで詳細に説明しないが、デバイスドライバまたは同様のソフトウェアインタフェイスが、記載する本実施形態で必要とされうることを当業者は理解するであろう。
【0089】
図23は、本発明の一実施形態による、命令の処理に使用されうる追加のハードウェアを示す。Cellプロセッサ1428は、メモリコントローラ1560およびデュアルバスインタフェイスコントローラ1570A,Bを含む外部入出力構造、パワープロセッシングエレメント1550と呼ばれるメインプロセッサ、シナジスティックプロセッシングエレメント(SPE)1510A〜Hと呼ばれる8基のコプロセッサ、エレメント相互接続バス1580と呼ばれる上記のコンポーネントに接続している環状データバス、の4つの基本コンポーネントを備えたアーキテクチャを有する。プレイステーション2デバイスのエモーションエンジンは6.2ギガフロップスであるのに対し、Cellプロセッサの総浮動小数点演算性能は、218ギガフロップスである。
【0090】
パワープロセッシングエレメント(PPE)1550は、3.2GHzの内部クロックで動作し、双方向同時マルチスレッディングPower1470準拠のPowerPCコア(PPU)1555をベースにしている。PPE1550は、512kBのレベル2(L2)キャッシュと、32kBのレベル1(L1)キャッシュとを備える。PPE1550は、クロックサイクルごとに8つの単一位置(single position)操作ができ、これは、3.2GHzで25.6ギガフロップスに相当する。PPE1550の主な役割は、演算作業負荷の大部分を処理するシナジスティックプロセッシングエレメント1510A〜Hのコントローラとして機能することにある。動作時に、PPE1550はジョブキューを保持し、シナジスティックプロセッシングエレメント1510A〜Hのジョブをスケジュールしており、その進捗を監視する。したがって、各シナジスティックプロセッシングエレメント1510A〜Hはカーネルを実行し、その役割は、ジョブを取り出して、これを実行し、PPE1550と同期されることにある。
【0091】
各シナジスティックプロセッシングエレメント(SPE)1510A〜Hは、シナジスティックプロセッシングユニット(SPU)1520A〜Hおよびメモリフローコントローラ(MFC)1540A〜Hをそれぞれ備え、MFC1540A〜Hは、ダイナミックメモリアクセスコントローラ(DMAC)1542A〜H、メモリ管理ユニット(MMU)1544A〜H、およびバスインタフェイス(不図示)をそれぞれ備える。各SPU1520A〜Hは3.2GHzでクロック供給され、原則として4GBまで拡張可能な256kBのローカルRAM1530A〜Hを備えたRISCプロセッサである。各SPEは、理論的には単精度処理性能で25.6ギガフロップスを示す。1つのSPUは、1クロックサイクルに、4つの単精度浮動小数点数(member)、4つの32ビット数、8つの16ビット整数または16の8ビット整数を処理することができる。同じクロックサイクルで、メモリ操作も実行することができる。SPU1520A〜HはシステムメモリXDRAM1426に直接アクセスしない。SPU1520A〜Hが作成した64ビットアドレスがMFC1540A〜Hに渡され、MFC1540A〜Hが、自身のDMAコントローラ1542A〜Hに対して、エレメント相互接続バス1580およびメモリコントローラ1560を介してメモリにアクセスするように指示する。
【0092】
エレメント相互接続バス(EIB)1580は、Cellプロセッサ1428内部の論理的には環状の通信バスであり、上記のプロセッサエレメント(すなわち、PPE1550、メモリコントローラ1560、デュアルバスインタフェイス1570A,B、および8基のSPE1510A〜H、合計12個のパーティシパント)を接続している。パーティシパントは、1クロックサイクルにつき8バイトの速度で、バスに同時に読み出しおよび書き込みを行うことができる。上で説明したように、各SPE1510A〜Hは、長いリードまたはライトのシーケンスをスケジュールするためのDMAC1542A〜Hを備える。EIBは、4つのチャネルを備え、そのうち2つは時計回り方向であり、残り2つは反時計回り方向である。したがって、12のパーティシパントについて、2つのパーティシパント間のステップ方式の最長のデータフローは、適切な方向で6ステップとなる。このため、パーティシパント間でアービトレーションが行われて完全な利用度が実現されると、12のスロットの理論上のピーク瞬間EIB帯域幅は、1クロックにつき96Bとなる。これは、3.2GHzのクロック速度で307.2GB/s(ギガバイト/秒)の理論上のピーク帯域幅に相当する。
【0093】
メモリコントローラ1560は、ラムバス社(Rambus Incorporated)によって開発されたXDRAMインタフェイス1562を備える。このメモリコントローラは、25.6GB/sの理論上のピーク帯域幅で、Rambus XDRAM1426とインタフェイスする。
【0094】
デュアルバスインタフェイス1570A,Bは、Rambus FlexIO(登録商標)システムインタフェイス1572A,Bを備える。このインタフェイスは、それぞれ8ビット幅の12のチャネルに編成されており、このうち、5の経路が受信用、7つの経路が送信用である。これにより、Cellプロセッサと、コントローラ170Aを介してI/Oブリッジ700間、およびコントローラ170Bを介してReality Simulatorグラフィックユニット200間で、理論上のピーク帯域幅が62.4GB/s(送信36.4GB/s、受信26GB/s)が得られる。
【0095】
Cellプロセッサ1428によってReality Simulatorグラフィックユニット1430に送信されるデータには、通常、表示リストが含まれ、これは、頂点を描画したり、ポリゴンにテクスチャを貼り付けたり、照明条件を指定するなどための一連のコマンドである。
【0096】
図24は、プレイフィールド内でのボール付属ゲームコントローラの位置を決定するための方法の実施形態を示すフローチャート2400を示す。操作2402において、本方法は、ゲームコントローラが存在するプレイフィールドの画像を取得し、次に、ゲームコントローラに連結されているボールに関連するピクセルをこの画像内で見つける。一実施形態では、ボールの色に対応するピクセルを見つけるために画像がスキャンされ、別の実施形態では、図7に関して上で説明したように、ボールに関連するピクセルを見つけるためにサブピクセル分析が使用される。
【0097】
操作2406において、本方法は、見つかったピクセルを包含する領域を特定する。操作2408において、領域に基づきボールに関連する幾何学形状が決定される。領域認識を実行するための方法の異なる実施形態については、図6A〜6D,9,12を参照されたい。幾何学形状が決定されると、本方法は、操作2410において、幾何学形状に基づいてコントローラの位置を計算し、この幾何学形状の中心は、コントローラの水平位置および垂直位置を示し、幾何学形状のサイズは、プレイフィールド内でのコントローラの深度を決定する。操作2412において、計算で求めた位置がコンピュータに関連するメモリに記憶され、操作2414において、コンピュータが、この記憶した位置に基づいて動作を起動する。
【0098】
図25は、一実施形態による、プレイフィールド内での識別可能なリングを含むボールの位置を決定するための方法のフローチャートを示す。この方法は、図24に関して上で説明した方法と似ているが、図25の方法は、三次元空間内でコントローラが移動したときのリングの変形に関する検討が新たに追加されている。
【0099】
操作2502において、本方法は、図5に示すように、ゲームコントローラが存在するプレイフィールドの画像を取得する。操作2504において、ゲームコントローラに連結されているボール部分内のリングに関連するピクセルを見つけるために、この画像がスキャンされる。コントローラに取り付けられているボール内部のリングに基づく位置決定に関する異なる実施形態については、図13A〜15Bを参照されたい。
【0100】
操作2506において、本方法は、操作2504で見つかったピクセルを包含する領域を特定し、操作2508において、本方法は、領域に基づきリングに関連する楕円を決定する。操作2510において、楕円に基づいてコントローラの位置が計算される。この楕円の中心は、コントローラの水平位置および垂直位置を示し、楕円のサイズは、プレイフィールド内でのコントローラの深度を決定する。操作2212において、この位置がコンピュータに関連するメモリに記憶される。操作2514において、コンピュータが、この記憶した位置に応じて動作を起動する。
【0101】
本発明の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電気製品、ミニコンピュータ、メインフレームコンピュータなどの各種のコンピュータシステム構成によって実施されてもよい。また、本発明は、分散コンピューティング環境で実施されてもよく、このような環境では、有線ベースまたは無線ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される。
【0102】
上記の実施形態を考慮に入れて、本発明が、コンピュータシステムに記憶されているデータを使用する、各種のコンピュータで実行される操作を使用してもよい点を理解すべきである。これらの操作は、物理量の物理的操作を必要とする。本発明の一部を構成している、本明細書に記載した操作はいずれも、有用な機械的操作である。本発明は、これらの操作を実行するデバイスまたは装置にも関する。この装置は、所望の目的のために特別に作製されたものであっても、あるいは汎用コンピュータであり、そのコンピュータに記憶されているコンピュータプログラムによって選択的に作動もしくは構成されてもよい。特に、各種の汎用の機械を、本明細書の教示に従って記述したコンピュータプログラムと併用してもよく、あるいは所望の操作を実行するために特化した機械を作製するほうが利便性が高いこともある。
【0103】
また、本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして実施されてもよい。コンピュータ可読媒体は、コンピュータシステムによって後から読み取ることができるデータを記憶可能なデータ記憶デバイスであれば、どのようなものであってもよい。コンピュータ可読媒体の例には、ハードディスク、ネットワーク接続記憶装置(NAS)、リードオンリーメモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープおよび他の光学式データ記憶装置および非光学式データ記憶装置などがある。また、コンピュータ可読媒体は、コンピュータ可読コードが分散式に記憶されて、実行されるように、ネットワークに結合されたコンピュータシステムを介して分散されたコンピュータ可読有形媒体を介して分散されてもよい。
【0104】
方法の操作を特定の順序で記載したが、同時に実行される操作の処理が所期どおりに実行される限り、操作と操作の間に他の管理操作が実行されても、操作がわずかに時間をずらして実行されるように操作が調整されても、操作がシステム内で分散されて、処理に係るさまざまな間隔で処理操作を行なうことができるようにしてもよい。
【0105】
上記に、本発明を明確に理解できるように多少詳細に記載したが、添付の特許請求の範囲内で変更例または変形例を実施できることは明らかである。したがって、本実施形態は例示的なものであり、制限するものではなく、本発明は本明細書に記載されている詳細な事項に限定されず、添付の特許請求の範囲およびその均等物の範囲内で変更されてもよい。
【特許請求の範囲】
【請求項1】
プレイフィールド内でのゲームコントローラの位置を決定するためのコンピュータで実行される方法であって、前記方法は、
前記ゲームコントローラが存在する前記プレイフィールドの画像を取得するステップと、
前記ゲームコントローラに連結されているボール部分に関連するピクセルを前記画像内で見つけるステップと、
前記見つかったピクセルを包含する領域を特定するステップと、
前記領域に基づき前記ボールに関連する幾何学形状を決定するステップと、
前記幾何学形状の前記中心は、前記コントローラの水平位置および垂直位置を示し、前記幾何学形状のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する前記幾何学形状に基づいて、前記コントローラの前記位置を計算するステップと、
前記位置を前記コンピュータに関連するメモリに記憶するステップと、
前記記憶した位置に基づいて前記コンピュータによる動作を起動するステップと、を有する方法。
【請求項2】
幾何学形状を決定するステップは、
前記領域内に適合する最長の直線を計算するステップを更に有し、
前記幾何学形状は前記最長の直線を直径として有する円である請求項1に記載の方法。
【請求項3】
幾何学形状を決定するステップは、
前記領域を最適に包含する円を見つけるステップを更に有し、
前記幾何学形状は前記領域を最適に包含する円である請求項2に記載の方法。
【請求項4】
幾何学形状を決定するステップは、
前記領域に等しい前記幾何学形状を作成するステップと、
前記幾何学形状の重心を、前記領域内のピクセルの座標の算術平均として計算するステップと、
を更に有し、前記重心は前記幾何学形状の中心である請求項1に記載の方法。
【請求項5】
前記プレイフィールドの画像を取得するステップは、
画像キャプチャデバイスによって前記画像をブラーリングするステップを有し、
前記画像のブラーリングにより、前記ボール部分に関連するピクセルが前記画像内でより多く見つかるようになる請求項1に記載の方法。
【請求項6】
前記プレイフィールドの追加の画像を取得するステップと、
追加の画像ごとに前記コントローラの追加の位置を計算するステップと、
前記追加の位置に基づいて前記コントローラの移動をトラッキングするステップと、を更に有する請求項1に記載の方法。
【請求項7】
追加の位置を計算するステップは、
前記各追加の画像を、前に取得した画像と比較するステップと、
前記各追加の画像に対応する前記追加の位置を計算するために、前記各追加の画像と、前記前に取得した画像とから得られる情報を平均化するステップと、を更に有する請求項6に記載の方法。
【請求項8】
前記前に取得した画像の経過時間に関連する重みと、前記各追加の画像とが、前記情報の平均の計算に使用される請求項7に記載の方法。
【請求項9】
計算する前記位置の周囲で、狭めた領域の高解像度の第2の画像を取得するステップと、
前記第2の画像に基づいて前記コントローラのより高精度の位置を計算するステップと、を更に有する請求項1に記載の方法。
【請求項10】
前記画像の取得前にカメラの解像度を上げるステップを更に有する請求項1に記載の方法。
【請求項11】
ピクセルを見つけるステップは、各ピクセルが前記ボール部分に関連するかどうかを判定するために前記各ピクセルに関連するサブピクセルを分析するステップを更に有する請求項1に記載の方法。
【請求項12】
前記ボール部分は、第1の照光条件で照光されるが、第2の照光条件では照光されない請求項1に記載の方法。
【請求項13】
プレイフィールド内でのゲームコントローラの位置を決定するためのコンピュータで実行される方法であって、前記方法は、
前記ゲームコントローラが存在する前記プレイフィールドの画像を取得するステップと、
前記ゲームコントローラに連結されているボール部分内のリングに関連するピクセルを前記画像内で見つけるステップと、
前記見つかったピクセルを包含する領域を特定するステップと、
前記領域に基づき前記リングに関連する楕円を決定するステップと、
前記楕円の中心は、前記コントローラの水平位置および垂直位置を示し、前記楕円のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する前記楕円に基づいて、前記コントローラの前記位置を計算するステップと、
前記位置を前記コンピュータに関連するメモリに記憶するステップと、
前記記憶した位置に基づいて前記コンピュータによる動作を起動するステップと、を有する方法。
【請求項14】
楕円を決定するステップは、
前記リングの一部が前記画像内で隠れているかどうかを判定するステップと、
前記リングが隠れている場合に完全なリングに対応する第2の領域を推定するステップと、
前記リングが隠れている場合に前記第2の領域に基づいて前記楕円を決定するステップと、を更に有する請求項13に記載の方法。
【請求項15】
前記リングは、前記ボール部分の内部に固定されており、前記楕円の軸の長さは前記プレイフィールド内での前記コントローラの深度を決定するために使用される請求項13に記載の方法。
【請求項16】
前記軸の向きは、前記ゲームコントローラの向きを決定するために使用される請求項15に記載の方法。
【請求項17】
前記リングが照光され、ピクセルを見つけるステップは、ピクセルが前記照光されているリングに対応しているかどうかを判定するステップを更に有する請求項13に記載の方法。
【請求項18】
前記リングを画像キャプチャデバイスと対面させるために、前記ボール部分は、前記ゲームコントローラの移動に応答して移動する請求項17に記載の方法。
【請求項19】
前記ボール部分の前記移動は、前記コントローラの向きを決定するために使用される請求項18に記載の方法。
【請求項20】
プレイフィールド内でのゲームコントローラの位置を決定するためのコンピュータで実行される方法であって、前記方法は、
前記ゲームコントローラが存在する前記プレイフィールドの画像を取得するステップと、
前記ゲームコントローラから状態情報を受信するステップと、
前記ゲームコントローラに連結されているボール部分に関連する幾何学形状を決定するステップと、
前記状態情報と前記幾何学形状の特性との組み合わせに基づいて前記コントローラの前記位置を計算するステップと、
前記位置を前記コンピュータに関連するメモリに記憶するステップと、
前記記憶した位置に基づいて前記コンピュータによる動作を起動するステップと、を有する方法。
【請求項21】
前記ゲームコントローラはさまざまなやり方で保持することができ、前記状態情報には、前記コントローラの向きを決定するために、前記コントローラで押下されているボタンが含まれる請求項20に記載の方法。
【請求項22】
前記ボール部分は半透明のシェル内に収容されており、画像キャプチャデバイスが前記ボール部分の前記画像をキャプチャ可能とする請求項20に記載の方法。
【請求項23】
前記半透明のシェルは、前記光を前記球形部分から前記画像キャプチャデバイスに向かう方向にのみ透過させるが、逆方向には透過させない請求項22に記載の方法。
【請求項24】
前記ボール部分は、前記ボール部分に関連するピクセル数を増やすために振動し、前記状態情報は前記ボールが振動中であることを示す請求項20に記載の方法。
【請求項25】
前記ボール部分は、前記ボール部分に関連するピクセル数を増やすために広がり、前記状態情報は前記ボール部分のサイズを含む請求項20に記載の方法。
【請求項26】
前記状態情報は、加速度計、ジャイロスコープまたは磁力計の少なくとも1つからの情報を含む請求項20に記載の方法。
【請求項27】
前記コントローラの向きを決定するために、数フレームにわたりセンサ情報と前記コントローラの前記計算した位置と分析するステップを更に有する請求項26に記載の方法。
【請求項28】
前記位置を計算するステップは、
前記ボール部分が見える時点を検出するステップと、
前記ボール部分が見えるときは前記位置を決定するために画像情報を使用するステップと、
前記ボール部分が見えないときは前記位置を決定するために推測航法に切り替えるステップと、を有する請求項26に記載の方法。
【請求項29】
前記コントローラは、前記コントローラの本体の周囲の一部の周りに配置され、前記本体の把持部分に対して水平向きのホイールを有し、前記ホイールは、制御された方向移動を与える請求項20に記載の方法。
【請求項30】
前記コントローラは前記コントローラにホイール入力を更に有し、
動作を起動するステップは、
前記ゲームコントローラのx、yまたはzの向きを検出するステップと、
前記ホイールがアクティベートされたときに(@when the wheel is activated)、前記ゲームコントローラの前記向きの方向に前記コントローラに関連するアイテムを移動させるステップと、を有する請求項20に記載の方法。
【請求項31】
前記ゲームコントローラは、前記y方向を向いている場合には縦メニュー内を移動させ、前記ゲームコントローラは、前記x方向を向いている場合には横メニュー内を移動させる請求項30に記載の方法。
【請求項32】
プレイフィールド内でのゲームコントローラの位置を決定するためのシステムであって、
前記プレイフィールドに存在するゲームコントローラと、
前記コントローラに連結されたボール部分と、
前記プレイフィールドの画像を取得するための画像キャプチャデバイスと、
前記画像キャプチャデバイスに接続され、プロセッサおよびメモリを有するコンピュータ装置、と、を有し、前記メモリは、
前記画像キャプチャデバイスによってキャプチャされた画像と、
前記キャプチャされた画像に対応する位置と、
前記位置を計算するための画像分析プログラムと、を有し、
前記画像分析プログラムからのプログラム命令は、
前記ボール部分に関連するピクセルを前記画像内で見つけるためのプログラム命令と、
前記見つかったピクセルを包含する領域を特定するためのプログラム命令と、
前記領域に基づき前記ボールに関連する幾何学形状を決定するためのプログラム命令と、
前記幾何学形状に基づいて前記コントローラの前記位置を計算するためのプログラム命令と、
前記位置に基づいて前記コンピュータによる動作を起動するためのプログラム命令と、を有するシステム。
【請求項33】
1つ以上のプロセッサによって実行されると、プレイフィールド内でのゲームコントローラの位置を決定する、コンピュータ可読記憶媒体に搭載されたコンピュータプログラムであって、
前記ゲームコントローラが存在する前記プレイフィールドの画像を取得するプログラム命令と、
前記ゲームコントローラに連結されているボール部分内のリングに関連するピクセルを前記画像内で見つけるためのプログラム命令と、
前記見つかったピクセルを包含する領域を特定するためのプログラム命令と、
前記領域に基づき前記リングに関連する楕円を決定するためのプログラム命令と、
前記楕円の中心は、前記コントローラの水平位置および垂直位置を示し、前記楕円のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する前記楕円に基づいて、前記コントローラの前記位置を計算するためのプログラム命令と、
前記位置を前記コンピュータに関連するメモリに記憶するためのプログラム命令と、
前記記憶されている位置に基づいて前記コンピュータによる動作を起動するためのプログラム命令と、を有するコンピュータプログラム。
【請求項1】
プレイフィールド内でのゲームコントローラの位置を決定するためのコンピュータで実行される方法であって、前記方法は、
前記ゲームコントローラが存在する前記プレイフィールドの画像を取得するステップと、
前記ゲームコントローラに連結されているボール部分に関連するピクセルを前記画像内で見つけるステップと、
前記見つかったピクセルを包含する領域を特定するステップと、
前記領域に基づき前記ボールに関連する幾何学形状を決定するステップと、
前記幾何学形状の前記中心は、前記コントローラの水平位置および垂直位置を示し、前記幾何学形状のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する前記幾何学形状に基づいて、前記コントローラの前記位置を計算するステップと、
前記位置を前記コンピュータに関連するメモリに記憶するステップと、
前記記憶した位置に基づいて前記コンピュータによる動作を起動するステップと、を有する方法。
【請求項2】
幾何学形状を決定するステップは、
前記領域内に適合する最長の直線を計算するステップを更に有し、
前記幾何学形状は前記最長の直線を直径として有する円である請求項1に記載の方法。
【請求項3】
幾何学形状を決定するステップは、
前記領域を最適に包含する円を見つけるステップを更に有し、
前記幾何学形状は前記領域を最適に包含する円である請求項2に記載の方法。
【請求項4】
幾何学形状を決定するステップは、
前記領域に等しい前記幾何学形状を作成するステップと、
前記幾何学形状の重心を、前記領域内のピクセルの座標の算術平均として計算するステップと、
を更に有し、前記重心は前記幾何学形状の中心である請求項1に記載の方法。
【請求項5】
前記プレイフィールドの画像を取得するステップは、
画像キャプチャデバイスによって前記画像をブラーリングするステップを有し、
前記画像のブラーリングにより、前記ボール部分に関連するピクセルが前記画像内でより多く見つかるようになる請求項1に記載の方法。
【請求項6】
前記プレイフィールドの追加の画像を取得するステップと、
追加の画像ごとに前記コントローラの追加の位置を計算するステップと、
前記追加の位置に基づいて前記コントローラの移動をトラッキングするステップと、を更に有する請求項1に記載の方法。
【請求項7】
追加の位置を計算するステップは、
前記各追加の画像を、前に取得した画像と比較するステップと、
前記各追加の画像に対応する前記追加の位置を計算するために、前記各追加の画像と、前記前に取得した画像とから得られる情報を平均化するステップと、を更に有する請求項6に記載の方法。
【請求項8】
前記前に取得した画像の経過時間に関連する重みと、前記各追加の画像とが、前記情報の平均の計算に使用される請求項7に記載の方法。
【請求項9】
計算する前記位置の周囲で、狭めた領域の高解像度の第2の画像を取得するステップと、
前記第2の画像に基づいて前記コントローラのより高精度の位置を計算するステップと、を更に有する請求項1に記載の方法。
【請求項10】
前記画像の取得前にカメラの解像度を上げるステップを更に有する請求項1に記載の方法。
【請求項11】
ピクセルを見つけるステップは、各ピクセルが前記ボール部分に関連するかどうかを判定するために前記各ピクセルに関連するサブピクセルを分析するステップを更に有する請求項1に記載の方法。
【請求項12】
前記ボール部分は、第1の照光条件で照光されるが、第2の照光条件では照光されない請求項1に記載の方法。
【請求項13】
プレイフィールド内でのゲームコントローラの位置を決定するためのコンピュータで実行される方法であって、前記方法は、
前記ゲームコントローラが存在する前記プレイフィールドの画像を取得するステップと、
前記ゲームコントローラに連結されているボール部分内のリングに関連するピクセルを前記画像内で見つけるステップと、
前記見つかったピクセルを包含する領域を特定するステップと、
前記領域に基づき前記リングに関連する楕円を決定するステップと、
前記楕円の中心は、前記コントローラの水平位置および垂直位置を示し、前記楕円のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する前記楕円に基づいて、前記コントローラの前記位置を計算するステップと、
前記位置を前記コンピュータに関連するメモリに記憶するステップと、
前記記憶した位置に基づいて前記コンピュータによる動作を起動するステップと、を有する方法。
【請求項14】
楕円を決定するステップは、
前記リングの一部が前記画像内で隠れているかどうかを判定するステップと、
前記リングが隠れている場合に完全なリングに対応する第2の領域を推定するステップと、
前記リングが隠れている場合に前記第2の領域に基づいて前記楕円を決定するステップと、を更に有する請求項13に記載の方法。
【請求項15】
前記リングは、前記ボール部分の内部に固定されており、前記楕円の軸の長さは前記プレイフィールド内での前記コントローラの深度を決定するために使用される請求項13に記載の方法。
【請求項16】
前記軸の向きは、前記ゲームコントローラの向きを決定するために使用される請求項15に記載の方法。
【請求項17】
前記リングが照光され、ピクセルを見つけるステップは、ピクセルが前記照光されているリングに対応しているかどうかを判定するステップを更に有する請求項13に記載の方法。
【請求項18】
前記リングを画像キャプチャデバイスと対面させるために、前記ボール部分は、前記ゲームコントローラの移動に応答して移動する請求項17に記載の方法。
【請求項19】
前記ボール部分の前記移動は、前記コントローラの向きを決定するために使用される請求項18に記載の方法。
【請求項20】
プレイフィールド内でのゲームコントローラの位置を決定するためのコンピュータで実行される方法であって、前記方法は、
前記ゲームコントローラが存在する前記プレイフィールドの画像を取得するステップと、
前記ゲームコントローラから状態情報を受信するステップと、
前記ゲームコントローラに連結されているボール部分に関連する幾何学形状を決定するステップと、
前記状態情報と前記幾何学形状の特性との組み合わせに基づいて前記コントローラの前記位置を計算するステップと、
前記位置を前記コンピュータに関連するメモリに記憶するステップと、
前記記憶した位置に基づいて前記コンピュータによる動作を起動するステップと、を有する方法。
【請求項21】
前記ゲームコントローラはさまざまなやり方で保持することができ、前記状態情報には、前記コントローラの向きを決定するために、前記コントローラで押下されているボタンが含まれる請求項20に記載の方法。
【請求項22】
前記ボール部分は半透明のシェル内に収容されており、画像キャプチャデバイスが前記ボール部分の前記画像をキャプチャ可能とする請求項20に記載の方法。
【請求項23】
前記半透明のシェルは、前記光を前記球形部分から前記画像キャプチャデバイスに向かう方向にのみ透過させるが、逆方向には透過させない請求項22に記載の方法。
【請求項24】
前記ボール部分は、前記ボール部分に関連するピクセル数を増やすために振動し、前記状態情報は前記ボールが振動中であることを示す請求項20に記載の方法。
【請求項25】
前記ボール部分は、前記ボール部分に関連するピクセル数を増やすために広がり、前記状態情報は前記ボール部分のサイズを含む請求項20に記載の方法。
【請求項26】
前記状態情報は、加速度計、ジャイロスコープまたは磁力計の少なくとも1つからの情報を含む請求項20に記載の方法。
【請求項27】
前記コントローラの向きを決定するために、数フレームにわたりセンサ情報と前記コントローラの前記計算した位置と分析するステップを更に有する請求項26に記載の方法。
【請求項28】
前記位置を計算するステップは、
前記ボール部分が見える時点を検出するステップと、
前記ボール部分が見えるときは前記位置を決定するために画像情報を使用するステップと、
前記ボール部分が見えないときは前記位置を決定するために推測航法に切り替えるステップと、を有する請求項26に記載の方法。
【請求項29】
前記コントローラは、前記コントローラの本体の周囲の一部の周りに配置され、前記本体の把持部分に対して水平向きのホイールを有し、前記ホイールは、制御された方向移動を与える請求項20に記載の方法。
【請求項30】
前記コントローラは前記コントローラにホイール入力を更に有し、
動作を起動するステップは、
前記ゲームコントローラのx、yまたはzの向きを検出するステップと、
前記ホイールがアクティベートされたときに(@when the wheel is activated)、前記ゲームコントローラの前記向きの方向に前記コントローラに関連するアイテムを移動させるステップと、を有する請求項20に記載の方法。
【請求項31】
前記ゲームコントローラは、前記y方向を向いている場合には縦メニュー内を移動させ、前記ゲームコントローラは、前記x方向を向いている場合には横メニュー内を移動させる請求項30に記載の方法。
【請求項32】
プレイフィールド内でのゲームコントローラの位置を決定するためのシステムであって、
前記プレイフィールドに存在するゲームコントローラと、
前記コントローラに連結されたボール部分と、
前記プレイフィールドの画像を取得するための画像キャプチャデバイスと、
前記画像キャプチャデバイスに接続され、プロセッサおよびメモリを有するコンピュータ装置、と、を有し、前記メモリは、
前記画像キャプチャデバイスによってキャプチャされた画像と、
前記キャプチャされた画像に対応する位置と、
前記位置を計算するための画像分析プログラムと、を有し、
前記画像分析プログラムからのプログラム命令は、
前記ボール部分に関連するピクセルを前記画像内で見つけるためのプログラム命令と、
前記見つかったピクセルを包含する領域を特定するためのプログラム命令と、
前記領域に基づき前記ボールに関連する幾何学形状を決定するためのプログラム命令と、
前記幾何学形状に基づいて前記コントローラの前記位置を計算するためのプログラム命令と、
前記位置に基づいて前記コンピュータによる動作を起動するためのプログラム命令と、を有するシステム。
【請求項33】
1つ以上のプロセッサによって実行されると、プレイフィールド内でのゲームコントローラの位置を決定する、コンピュータ可読記憶媒体に搭載されたコンピュータプログラムであって、
前記ゲームコントローラが存在する前記プレイフィールドの画像を取得するプログラム命令と、
前記ゲームコントローラに連結されているボール部分内のリングに関連するピクセルを前記画像内で見つけるためのプログラム命令と、
前記見つかったピクセルを包含する領域を特定するためのプログラム命令と、
前記領域に基づき前記リングに関連する楕円を決定するためのプログラム命令と、
前記楕円の中心は、前記コントローラの水平位置および垂直位置を示し、前記楕円のサイズは、前記プレイフィールド内での前記コントローラの深度を決定する前記楕円に基づいて、前記コントローラの前記位置を計算するためのプログラム命令と、
前記位置を前記コンピュータに関連するメモリに記憶するためのプログラム命令と、
前記記憶されている位置に基づいて前記コンピュータによる動作を起動するためのプログラム命令と、を有するコンピュータプログラム。
【図1A】
【図1B】
【図1C】
【図1D】
【図1E】
【図2A】
【図2B】
【図3A】
【図3B】
【図4A】
【図4B】
【図4C】
【図4D】
【図5】
【図6A】
【図6B】
【図6C】
【図6D】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13A】
【図13B】
【図13C】
【図14A】
【図14B】
【図14C】
【図14D】
【図14E】
【図14F】
【図14G】
【図14H】
【図15A】
【図15B】
【図16】
【図17A】
【図17B】
【図18】
【図19A】
【図19B】
【図20】
【図21A】
【図21B】
【図21C】
【図22】
【図23】
【図24】
【図25】
【図1B】
【図1C】
【図1D】
【図1E】
【図2A】
【図2B】
【図3A】
【図3B】
【図4A】
【図4B】
【図4C】
【図4D】
【図5】
【図6A】
【図6B】
【図6C】
【図6D】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13A】
【図13B】
【図13C】
【図14A】
【図14B】
【図14C】
【図14D】
【図14E】
【図14F】
【図14G】
【図14H】
【図15A】
【図15B】
【図16】
【図17A】
【図17B】
【図18】
【図19A】
【図19B】
【図20】
【図21A】
【図21B】
【図21C】
【図22】
【図23】
【図24】
【図25】
【公表番号】特表2012−507101(P2012−507101A)
【公表日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2011−534553(P2011−534553)
【出願日】平成21年8月24日(2009.8.24)
【国際出願番号】PCT/US2009/054805
【国際公開番号】WO2010/051092
【国際公開日】平成22年5月6日(2010.5.6)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
【公表日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願日】平成21年8月24日(2009.8.24)
【国際出願番号】PCT/US2009/054805
【国際公開番号】WO2010/051092
【国際公開日】平成22年5月6日(2010.5.6)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
[ Back to top ]