ベースステーションの移動検出および補償
コンピュータで実行するコンピュータプログラムとインターフェースする入力デバイスから受信するインタラクティブな通信を処理するための方法とシステムが提供されている。この方法は、コンピュータとインターフェースされるベースステーションにおいて第1入力デバイスと第2入力デバイスとから入力データを受信するステップを含む。第1入力デバイスと第2入力デバイスとは、コンピュータプログラムとインタラクティブにインターフェースするために、相互に独立して移動可能である。方法は、ベースステーションを介して第1入力デバイスと第2入力デバイスの位置をトラッキングし、トラッキングした、第1入力デバイスと第2入力デバイスの位置の、略同一の位置の変化を特定する。次いで該方法は、略同一の位置の変化を特定すると、フラグを設定する。フラグは、コンピュータプログラムとのインタラクティビティの間にアクションを発生させるように設定されたコンピュータプログラムにより処理される。一例では、ベースステーションは、移動の確認が可能な慣性センサを含む。移動が確認されれば、フラグはコンピュータプログラムにおいて定められているアクションを取るように処理される。
【発明の詳細な説明】
【背景技術】
【0001】
テレビゲーム業界は、長年にわたり多くの変化を遂げてきた。コンピュータの処理能力の向上とともに、テレビゲームの開発者らも、このような処理能力の高度化を利用したゲームソフトウェアを開発してきた。このため、テレビゲームの開発者らは、非常にリアルなゲーム体験となるように高度な演算や数値演算を組み込んだゲームをコーディングしてきた。
【0002】
このようなゲームのプラットフォームの例には、ソニープレイステーション(R)、ソニープレイステーション2(R)(PS2)およびソニープレイステーション3(R)(PS3)があり、これらは共にゲームコンソールの形態で販売されている。周知のように、ゲームコンソールは、モニタ(通常、テレビ受像機)に接続して、ハンドヘルドコントローラを介してユーザインタラクションが可能になるように設計される。
【0003】
ゲームコンソールは、CPU、重いグラフィック演算を処理するためのグラフィックシンセサイザ、ジオメトリ変換を実行するためのベクトル演算ユニット、およびグルーハードウェアと呼ばれるその他のハードウェア、ファームウェア、およびソフトウェアを含む専用の処理ハードウェアで設計されている。ゲームコンソールは、ゲームコンソールを介してローカルでプレイするためのゲームのコンパクトディスクを受け入れるための光ディスクトレイを備えるようにさらに設計される。また、ユーザが、インターネット上で他のユーザと対戦して、または、他のユーザと一緒にインタラクティブにプレイすることができるオンラインゲームも可能である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ゲームを複雑にしてプレーヤの興味を引き付けるために、ゲームおよびハードウェアの製造業者らは、新しい手法を取り入れてさらなるインタラクティビティ、つまり対話性、とコンピュータプログラムとを可能にしようとしてきた。
【0005】
コンピュータゲーム業界においては、ユーザとゲームシステム間のインタラクションを高めるゲームを開発する傾向が広がっている。より質の高いインタラクティブな体験を実現する1つのやり方として、プレーヤの動きをトラッキングして、この動きをゲームの入力として使用するために、ゲームシステムによって移動がトラッキングされる無線ゲームコントローラを使用する方法がある。一般的にいうと、ジェスチャ入力とは、コンピューティングシステム、テレビゲームコンソール、インテリジェント家電などの電子装置を、物体をトラッキングするビデオカメラがキャプチャした何らかのジェスチャに反応させることを指す。
【0006】
しかし、ビデオカメラやその他の電子装置を置いてユーザ入力をトラッキングするのは困難な場合がある。テレビやモニタが大型化しているので、全体像をとらえるには、ユーザはテレビからさらに離れて立つ必要がある。通常、コンソールはテレビの近くに置かれるために、センサの性能が低下してしまう。同様に、ユーザがカメラから離れるときに、トラッキング用ビデオカメラと深度検知用ビデオカメラの性能は低下してしまう。
【0007】
本発明の実施形態は、この状況においてなされたものである。
【課題を解決するための手段】
【0008】
概して、本発明は、ユーザ入力をゲームコンソールに送信するために使用されるベースステーションの移動を略リアルタイムで補償するものである。ある実施形態では、ベースステーションは、ゲームコンソールに関連づけられるコントローラの位置に関する深度データを抽出するために画像データをキャプチャし処理するようにさらに構成されている。
【0009】
コンピュータで実行するコンピュータプログラムとインターフェースする入力デバイスから受信したインタラクティブな通信を処理するための方法が提供されている。コンピュータとインターフェースするベースステーションにおいて、第1入力デバイスと第2入力デバイスとから入力データを受信するステップを含む方法も提供される。第1入力デバイスと第2入力デバイスは、コンピュータプログラムとインタラクティブにインターフェースするために相互に独立して移動可能である。この方法では、ベースステーションを介して第1入力デバイスと第2入力デバイスの位置をトラッキングし、トラッキングした第1入力デバイスと第2入力デバイスの略同一の位置変化が生じたことを特定する。次いで、この方法では、略同一の位置変化を特定するとフラグを設定する。フラグは、コンピュータプログラムとのインタラクティビティの間に取るべきアクションを設定するコンピュータプログラムにより処理される。一例では、ベースステーションは、移動を確認できる慣性センサを含む。移動が確認された場合、フラグが処理されて、コンピュータプログラムで定められたアクションが行なわれる。
【0010】
一実施形態では、ゲームコンソールで実行され、スクリーンに表示されるコンピュータゲームとインターフェースするときにインタラクティブな通信を検出するための方法が開示されている。方法は、第1入力デバイスと第2入力デバイスとから入力と位置とを受信する操作を含む。第1入力デバイスと第2入力デバイスとは、コンピュータゲームとインタラクティブにインターフェースするために、第1ユーザと第2ユーザそれぞれにより独立して移動される。ベースステーションは入力と位置とを第1入力デバイスと第2入力デバイスとから受信し、この入力および位置をゲームコンソールに無線でインターフェースする。方法は、第1入力デバイスと第2入力デバイス両方の略同一位置変化が検出されればコンピュータゲームのインタラクションを表示するスクリーンに示される、第1入力デバイスおよび第2入力デバイス両方の位置を補正する操作をさらに含む。
【0011】
別の実施形態では、テレビゲームをインタラクティブに制御するシステムが開示されている。システムは、ゲームコンソールと、ゲームコンソールから離れた場所に置かれるベースステーションとを含む。ベースステーションは、ベースステーションとゲームコンソール間のインターフェースを可能にする通信回路を有する。ベースステーションは、プレイゾーン内の画像データをキャプチャするためのビデオカメラをさらに有する。システムは、ベースステーションとゲームコンソールの一方または両方とインターフェースされるコントローラをさらに含む。コントローラを含む画像データの分析を利用により、プレイゾーン内のコントローラの移動が決定される。コントローラの移動はゲームコンソールによりテレビゲームのインタラクティブな制御に相関される。
【0012】
さらに別の実施形態では、テレビゲームを制御するためのゲームコンソールとインターフェースするシステムが開示されている。システムは、ゲームコンソールと、ゲームコンソールとインターフェースするベースステーションとを含む。ベースステーションは、ベースステーションとゲームコンソール間のデータを送受信するように構成された処理回路をさらに含む。ベースステーションは、位置データを処理するようにさらに構成されている。システムは、ベースステーションとインターフェースするコントローラをさらに含む。コントローラは、コントローラの移動データを検出し、この移動データをベースステーションへ送信するハードウェアを含む。ベースステーションは、ベースステーションに対するコントローラの相対位置を決定するためにベースステーションからゲームコンソールへと中継されるコントローラの位置データを処理するものであり、コントローラの相対位置が変わると、テレビゲームとのインタラクティブな制御がしやすくなる。
本発明の他の態様は、例示のために本発明の原理を示す添付の図面と併せて、以下の詳細な説明を読めば明らかとなるであろう。
【図面の簡単な説明】
【0013】
【図1】本発明の一実施形態による、ベースステーション、ゲームコンソールとともにコントローラを操作するユーザ、およびモニタを含むシーンを例示的に示した図。
【図2A】本発明の一実施形態による、コントローラの例示的略図。
【図2B】本発明の一実施形態による、コントローラの別の例示的略図。
【図3A】本発明の一実施形態による、ベースステーションの例を示した図。
【図3B】本発明の一実施形態による、ベースステーションの例を示した図。
【図3B−1】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図3B−2】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図3B−3】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図3B−4】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図3B−5】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図3C】本発明の一実施形態による、ベースステーションのハードウェアを例示的に示した図。
【図4】本発明の一実施形態による、スクリーンの例示的上面図。
【図5】本発明の一実施形態による、距離測定から絶対深度測定への変換を示した図。
【図6A】本発明の一実施形態による、ベースステーションの水平移動の検出法を示した図。
【図6B】本発明の一実施形態による、ベースステーションの水平移動の検出法を示した図。
【図6C】本発明の一実施形態による、テレビゲームのインタラクティブな制御を示した図。
【図6D】本発明の一実施形態による、ベースステーション内のカメラを用いてキャプチャしたインタラクティブ制御の画像データの図。
【図7】本発明の一実施形態による、エンターテイメントシステムにおける各種要素のブロック図。
【図8】本発明の一実施形態による、コントローラの位置を決定するために用いられうるハードウェアとユーザインターフェースの図。
【図9】本発明の一実施形態による、命令の処理に利用されうる付加的ハードウェアの図。
【図10】本発明の一実施形態による、シーンA〜シーンEと、インターネットを介してサーバ処理に接続されているゲームクライアントとインターフェース中のそれぞれのユーザA〜ユーザEを例示的に示した図。
【発明を実施するための形態】
【0014】
コンピュータプログラムとインターフェースする入力デバイスからのインタラクティブな通信を処理するための方法およびシステムが開示されている。方法は、コンピュータとインターフェースするベースステーションにおいて、第1入力デバイスと第2入力デバイスとから入力データを受信するステップを含む。ベースステーションは、有線あるいは無線であってよい。各入力デバイスは、1人のユーザによって把持されてもよく、この場合は1つの入力デバイスがそれぞれの手に把持される。あるいは、2人以上の別々のユーザが1つの入力デバイスを把持してもよい。第1入力デバイスと第2入力デバイスとは、コンピュータプログラムとインタラクティブにインターフェースするために、相互に独立して移動可能である。
【0015】
一実施形態では、コンピュータプログラムはコンピュータゲームプログラムである。しかし、他の実施形態では、コンピュータプログラムは汎用オフィスプログラム、エンターテイメントプログラム、あるいは特殊用途プログラムであってよい。、
実施形態によれば、この方法ではベースステーションを介して第1入力デバイスと第2入力デバイスの位置をトラッキングする。
【0016】
例えば、各入力デバイスはベースステーションと通信し、それぞれの位置を知らせるようにするか、データを与えてそれぞれの位置を確認する。入力デバイスの位置は、入力デバイスからデータを受信するベースステーションから位置データを受信し、その後、(ゲームコンソールなどの)コンピュータで処理されるようにしてもよい。いずれの実施形態でも、第1入力デバイスおよび第2入力デバイスの、トラッキングされた位置における略同一の位置変化を特定するために、位置をトラッキングする必要がある。
【0017】
この方法は、略同一の位置変化を特定後にフラグを設定するように構成されている。フラグは、コンピュータプログラムとのインタラクティビティの間に取るべきアクションを設定するコンピュータプログラムにより処理される。一例では、ベースステーションは移動を確認できる慣性センサを含む。移動が確認されれば、フラグは、コンピュータプログラム(あるいはゲームプログラム)において定められているアクションを取るように処理される。
【0018】
他の実施形態では、ベースステーション内には画像データをキャプチャするためのカメラが設けられており、該画像データは、入力デバイスの位置を特定するために用いられる。さらに別の実施形態では、入力デバイスとベースステーション間の超音波通信を利用して入力デバイスの位置が決定される。以下に各種の例を図面を参照しながら説明する。
【0019】
図1は、本発明の一実施形態による、ベースステーション101、ゲームコンソール108とともにコントローラ102を操作するユーザ104、およびモニタ106を含むシーンを例示している。モニタ106は、ゲームコンソール108からのビデオ出力を表示する。ユーザ104は、コントローラ102とベースステーション101とにより、モニタ106に表示される映像を介してゲームコンソール108とインタラクトする。一実施形態では、モニタ106は、ゲームコンソール108からの音声出力の再生も可能なテレビである。他の実施形態では、ゲームコンソール108からの音声出力が複数のスピーカによって再生され、仮想のマルチメディア体験が作り出される。ベースステーション101は、プレイゾーン110でゲームコンソール108とコントローラ102間の通信を行う。
【0020】
ベースステーションを利用することで、プレイゾーン110がコンソール108から離れて画定される。プレイゾーン110をコンソール108から離して設ける利点としては、ベースステーション内のセンサをユーザ104に近づけることができる点が挙げられるが、これに限定されない。ベースステーションにより、シーン100全体を移動可能なコントローラへのデータ送受信が可能なセンサ用モバイルプラットフォームが設けられる。ベースステーションは可動性なので、センサをコンソールから離し、ユーザと、関連するコントローラとに近づけることができる。ベースステーションとコントローラとが非常に近接することで、コントローラの移動の検出が改善され、さらに、インタラクティビティが高まる。一実施形態では、ベースステーションはユーザ104に視覚フィードバックおよび音声フィードバックを送る。また、これを利用して、シーン100においてコ
ントローラ102の位置が決定される。
【0021】
一実施形態では、コントローラ102はブルートゥース(R)やIEEE802.11の仕様書で定義されているプロトコルのうちの1つ(これらに限定されない)などの無線通信プロトコルによりベースステーションと通信する。別の実施形態では、ベースステーション101とコントローラ102間は、赤外光または赤外光と無線通信プロトコルとの組合せにより通信される。図1はコントローラ102を持つ一人のユーザ104だけを示しているが、ベースステーション101は複数のユーザからの複数のコントローラからのユーザ入力の受信と処理とが可能である。ベースステーション101は、同様の無線通信プロトコルを用いてゲームコンソール108と通信することができる。さらに、ある実施形態では、有線接続によってベースステーション101とゲームコンソール108間の通信が実現されうる。
【0022】
ユーザ104の、コントローラ102への入力は、ある実施形態の場合はベースステーション101により受信される。ベースステーション内のコンピュータのハードウェアは、ユーザ入力がゲームコンソール108へ中継される前にユーザ入力を処理する。他の実施形態では、ベースステーション101はコンピュータのハードウェアを含んでおらず、ユーザ入力はベースステーション101からゲームコンソール108へ中継される。他の実施形態では、ベースステーション101は、ユーザ入力がゲームコンソール108へ中継される前にユーザー入力の一部を処理するコンピュータのハードウェアを含む。一実施形態では、ベースステーション101は、シーン100においてコントローラ102をトラッキングできる。
【0023】
図2Aは、本発明の一実施形態による、コントローラ102の例示的略図である。コントローラ102は、コントローラ102に関連づけられたハードウェア112を含む。ハードウェア112によりシーンにおけるコントローラの移動が検出される。例えば、一実施形態では、3次元空間におけるコントローラ102の移動はハードウェア112により検出される。同様に、ハードウェア112は、コントローラのロール、ピッチ、ヨーの検出も可能である。一実施形態では、ハードウェア112は、3つのジャイロスコープ、3つの加速度計、および3つの磁力計を含む。そのような実施形態では、加速度計により重力方向が得られ、さらに、ピッチとロールに対する絶対参照が得られる。同様に、磁力計はヨーに対する絶対参照を与える。
【0024】
ジャイロスコープ、加速度計、および磁力計の組合せより収集されるデータにより、コントローラ102の相対位置を決定することができる。コントローラ102の他の実施形態では、ハードウェアは様々なセンサの組み合わせを利用することができる。この検討されたジャイロスコープ、加速度計、および磁力計の特定の組合せは、他の組合せも可能であることから、限定的なものと解釈すべきではない。図示している実施形態では、ハードウェア112はコントローラ102に埋め込まれるか一体化されて例示されている。しかし、他の実施形態では、オブジェクトの動作を検出をできるようにするために、モジュラアタッチメントによってハードウェア112がオブジェクトに付加される。
【0025】
図2Bは、本発明の一実施形態による、別のコントローラ102を例示的に示したものである。コントローラ102は、ハードウェア112を含み、さらに、超音波送信機154と超音波受信機152に加えて超音波のアコースティックチャンバ150を含む。超音波送信機とエミッタとを実装することにより、超音波エコーロケーションを用いて、コントローラの位置を更に得ることができる。超音波エミッタと受信機とを実装したコントローラ102の実施形態は、エミッタと受信機とを適切に機能させることができるように、適切な外観の特徴を備えて構成されるものである。
【0026】
図2Aと2Bとに図示したそれぞれの実施形態では、コントローラ102は、ベースステーションとの通信を可能にする無線ハードウェアをさらに含む。無線ハードウェアにより、コントローラ102をベースステーションと関連づけることができる。複数のコントローラがベースステーションと関連づけられる実施形態では、ベースステーションとの信頼性の高い通信を確実に行うために、各種コントローラは様々に異なる無線周波数を使用しうる。複数のコントローラからの信号をベースステーションからの信号と区別するために他の技術を使用してもよく、また、提供されている特定の例を限定的に解釈すべきではない。さらに、無線ハードウェアは、ハードウェア112からのデータをベースステーション101に送信する。
【0027】
図3Aおよび図3Bは、本発明の実施形態による、ベースステーション101の一例である。ベースステーション101は、コントローラの移動を検出するためのハードウェアやセンサを含むゲームコンソールに関連づけられたポータブルデバイスである。ハードウェアは、各ユーザと各ユーザのそれぞれのコントローラに非常に近づけて置くことができるので、ベースステーション101内に動作検出ハードウェアがあることは有利である。ゲームコンソールは、ユーザがコントローラを操作する場所から比較的遠く離れた棚やラックに置かれることが多い。ベースステーションからゲームコンソールを離すことにより、動作検出センサをコントローラに非常に近づけることができる。センサとコントローラとが非常に近いことで、動作検出の分解能が向上し、さらに、動作検出が向上するのでユーザインタラクティビティが高まり、より充実したゲーム体験を与えることができる。さらに、ベースステーションは、ベースステーションがゲームコンソールから離れている状態で、視覚フィードバックと音声フィードバックとがユーザに送られる、別の領域として機能しうる。
【0028】
図3Aでは、ベースステーション101は、エレメント200をコーナに備えたベーシックボックスとして図示されている。そのような実施形態では、ベースステーション101は、床またはゲームコンソールとユーザ間の面に置かれる。一実施形態では、エレメント200は、すりガラスや透明ガラス、あるいは半透明のプラスチックなどの材料から作られる。これにより、エレメント200は、光と組み合わせることで、ライトパイプやライトチューブとして機能することができ、ユーザに視覚フィードバックを送ることができる。他の実施形態では、エレメント200は、視覚フィードバックを送るための小型の逆光式液晶ディスプレー(LCD)アレイである。ある実施形態では、光とエレメント200との組み合わせにより、ゲームプレイ中に発生するイベントに基づいて視覚フィードパックを送ることができる。他の実施形態では、エレメント200は、ベースステーションに対するユーザの位置に基づいて視覚フィードバックを送ることができる。図3Aに示す実施形態は、エレメント200の方向や位置についての限定とみなされるべきではない。他の実施形態では、複数のエレメント200をベースステーションの周りにリング状に配置することができる。さらに別の実施形態では、複数のエレメント200を複数のパターンで配置してもよいし、ベースステーション101の全側面がエレメント200であってもよい。
【0029】
図3Bに、ベースステーション101の別の例示的実施形態を示す。本実施形態もまたユーザに視覚フィードバックを送るためのエレメント200を含む。エレメント200は球体202に含まれており、これは、基部(ベース)206に取り付けられているアーム204に取り付けられているものである。図3Bに示す実施形態は、限定的に解釈されるべきものではなく、また、球体202を他の3次元の形状体に置き換えることができる。各種実施形態では、アーム204を短くすることができる。これによりベース206上方の球体202の高さを調整することができる。球体202の高さが調整可能なことで、基準面の較正に対応することができる。他の実施形態では、球体202はジンバル上のアーム204に取り付けられており、これにより、ユーザは、アーム204の端部の球体202の方向を調整することができる。
【0030】
ベースステーション101に回路を有する図3Aと図3Bとに示すベースステーション101の実施形態では、加速度計、ジャイロスコープ、および磁力計(これらに限定されない)等のハードウェアからのデータに基づいて基準面が確立されうる。基準面を利用して、この基準面に対するコントローラの移動が、各コントローラに関連づけられるハードウェアからのデータ測定値に基づいて決定されうる。ベースステーション101の他の実施形態では、光を利用した基準面を確立するうえで、ユーザインタラクションが役立つ。例えば、球体202を含む各実施形態では、球体202の高さと方向により、ベースステーションに関連付けられるコントローラの相対的位置を決定するために利用されうる基準面を確立することができる。
【0031】
図3Aおよび3Bを参照すると、両方に図示されているベースステーション101の実施形態では、エレメント200には、プレイゾーン内の1以上のコントローラの画像をキャプチャする一台以上のカメラが含まれ、1以上のコントローラの相対運動を決定するようにしてもよい。ベースステーション101の1台以上のカメラは、エレメント200内だけ内蔵される訳ではない。図3B−1および3B−2は、本発明の各実施形態による、複数のカメラ位置を備えたベースステーションの別の各実施形態を示す。図3B−1は、ベースステーション101の上部のドーム(半球体)に配置されたカメラ226を含む。カメラ226は、ベースステーション101全体にわたる画像データをキャプチャするように一定の間隔を置いて配置されている。図3B−2では、カメラ226は、エレメント200から離れた領域に設置されて図示されている。図3B−3、3B−4、および3B−5は、エレメント200から離れたカメラ226の様々な位置を示したベースステーション101の別の実施形態である。
【0032】
加えて、図3Bに示す実施形態では、球体202の高さを調節すると、ベースステーション101内に取り付けられた1台以上のカメラを、プレイゾーンのモニタリングを行うように配置することができる。ベースステーション101は、ベースステーションを動作させるための付加的センサやプロセッサを含むベースステーションハードウェア208をさらに含む。
【0033】
図3Cは、本発明の一実施形態による、ベースステーションハードウェア208を例示的に示したものである。ベースステーションハードウェア208は、バッテリ232、無線機212と通信するコントローラポジションプロセッサ210、音声プロセッサ214、画像プロセッサ216、超音波送信機240と超音波受信機242に結合された超音波プロセッサ238、および光コントローラ218を含む。ベースステーションハードウェア208は、動作検出ハードウェア236および無線機212と通信するベースステーションポジションプロセッサ234をさらに含む。
【0034】
バッテリ232は任意に設けられ、ベースステーションの無線の実施形態で使用される。他の実施形態では、ベースステーションはケーブルを使用してゲームコンソールに結合される。ケーブルには複数の導線が含まれており、これにより、ベースステーションはゲームコンソールと通信し、ゲームコンソールからの電力を使用することができるようになる。一実施形態では、コントローラポジションプロセッサ210とベースステーションポジションプロセッサ234とはカスタマイズされた特定用途向け集積回路(ASIC)であり、サウンドプロセッサ214、画像プロセッサ216および超音波プロセッサ238はデジタルシグナルプロセッサ(DSP)である。
【0035】
無線機212はアンテナ220に接続されており、ベースステーションの無線の実施形態では、無線機212は、ゲームコンソールへのデータを送受信する。無線機212はさらに、関連するコントローラへデータを送信し、関連するコントローラからのデータを受信するようにも構成されている。コントローラから受信されるデータにはハードウェアからのデータが含まれる。コントローラからのデータはコントローラポジションプロセッサ210へ送信され、ベースステーションに対するコントローラの位置を決定するように使用される。各種の実施形態では、無線機212は、ブルートゥースなどの標準無線通信プロトコルによる1つの無線機を含みうる。他の実施形態では、無線機212は、様々な無線通信プロトコルで動作する複数の無線機を含みうる。例えば、ベースステーションの無線の実施形態では、ベースステーションとゲームコンソール間ではwi−fi通信が用いられ、ベースステーションと関連するいずれのコントローラ間ではブルートゥースが用いられうる。
【0036】
ある実施形態では、ベースステーションは音声プロセッサに接続されたスピーカ224とマイクロフォン222とを含む。他の実施形態では、マイクロフォン222は、マイクロフォンアレイに配列された複数のマイクロフォンを代表するマイクロフォンである。指向性マイクロフォンアレイを利用して、ゲームプレイを向上させるようにしてもよい。音声認識ソフトウェアと組み合わせられた指向性マイクロフォンにより、ユーザによるゲームプレイを制御するための音声命令の発行が可能となった。スピーカ224はベースステーション内に収容された複数のスピーカを代表するスピーカでありうる。スピーカ224により、ベースステーションは、ユーザへ音声フィードバック送ることができる。音声フィードバックはゲーム内のイベントに基づいて送られてもよいし、ゲームコンソールへのノーティフィケーション、例えば通知やメッセージがフィードバックに含まれていてもよい。ゲーム内のイベントの音声フィードバックの例としては、プレーヤがゲーム内の蒸気に近づくとベースステーションから生じる水が流れる音、が挙げられる。ゲームコンソールのメッセージの例としては、ベースステーションが、コントローラのバッテリを交換する必要あり、との可聴音や音声命令を発しているもの、が挙げられる。
【0037】
光コントローラ218は、コントローラポジションプロセッサ210からのデータを受信し、ライトアレイ228やライトエミッタ230を介してユーザに視覚フィードバックを送る。一実施形態では、ライトアレイ228は、一連の発光ダイオード(Light Emitting Diode:LED)である。他の実施形態では、ライトアレイは、1以上の液晶ディスプレイ(LCD)である。ライトアレイ228は、ゲーム内のイベントに基づいて、ユーザに視覚フィードバックを送ることができる。ライトアレイ228を用いた、有効なゲーム内の視覚フィードバックの例としては、プレーヤに関連づけられる光の色を変化させることが挙げられる。別の実施形態では、ライトアレイ228は、ゲームコンソールステータスの伝達に使用されうる。ゲームコンソールステータスの例としては、ゲームコンソールに関連するインターネット接続の性能を示した棒グラフが挙げられる。同様に、ライトアレイにはチャットリクエストやeメール通知が表示されうる。ベースステーションのライトアレイ228は、メインディスプレイ上のゲームとは関連し得ないことから、ゲームコンソールのステータス情報を表示するには好ましい場所である。さらに、ベースステーションをユーザに近づけて置くことができるので、ライトアレイは、ゲームコンソールに直接取り付けられた小型の表示装置よりも認識しやすくなる。
【0038】
さらに別の実施形態では、ライトアレイ228はコントローラステータスの伝達に使用される。コントローラステータスの例としては、コントローラのバッテリを交換する必要がある、との視覚メッセージが挙げられる。コントローラステータスの別の例としては、ある色をある特定のコントローラと関連づけ、コントローラがベースステーションの周りを移動すると、この色をライトアレイ228に移すこと、が挙げられる。例えば、2人のユーザがゲームをしている場合に、ライトコントローラはライトアレイ228の半分を使って第1ユーザ用に第1の色を発光させ、第2ユーザ用に第2の色を発光させることができる。さらに、ポジションプロセッサからのデータに基づいて、第1ユーザ用に発光させるライトアレイ228の半分は、第1ユーザに実際に一番近い側の半分であってよい。
【0039】
画像プロセッサ216は、カメラ226からの画像データを処理する。ベースステーション周辺からの画像データを得るために、ベースステーションの外側の様々な位置に複数のカメラが実装される。ある実施形態では、カメラ226は、プレイゾーン内の画像をキャプチャするのに必要なカメラの台数を最小にするために広角レンズを使用する。一実施形態では、カメラ226は、その視覚においてオブジェクトの深度データをキャプチャする深度カメラである。深度データと画像データとは、画像プロセッサ216により処理される。また、ある実施形態では、処理済の画像データがコントローラポジションプロセッサ210へ送られて、ベースステーションに対するコントローラの位置を決定するようにする。
【0040】
画像プロセッサデータは、ベースステーションポジションプロセッサ234へも送られ、ベースステーションが押しやられたかあるいは移動されたかが判断される。動作検出ハードウェア236は、ベースステーションポジションプロセッサ234へさらなるデータを送り、ベースステーションの相対運動を決定するようにする。一実施形態では、動作検出ハードウェアは、加速度計、ジャイロスコープおよび磁力計を含む。一実施形態では、ベースステーションポジションプロセッサ234が画像データを分析してオブジェクトの同一シフト、あるいは複数のオブジェクトが同様にシフトされていることが検出されると、ベースステーションの移動が検出される。一実施形態では、ベースステーションポジションプロセッサ234は、動作検出ハードウェア236からデータを受信する。動作検出ハードウェアからのデータがベースステーションの移動を示す閾値を超えるときに、ベースステーションポジションプロセッサ234は、画像プロセッサ216からの画像データの分析をトリガし、分析を開始させる。画像データの分析のトリガした後に、このトリガイベント前後の画像データの分析を行い、画像内のエレメントを同時にシフトさせるようにする。図示していないが、ベースステーションハードウェアは、画像プロセッサからの画像データを記録またはバッファリングするために利用されるメモリを含む。トリガイベントが発生すると、バッファリングされた画像データへのアクセス及び分析がなされ、ベースステーションが押しやられたか移動されたかが判断される。
【0041】
一実施形態では、ベースステーションポジションプロセッサ234は、プレイゾーン内の複数のプレーヤの相対位置を利用することができる。そのような実施形態では、各プレーヤに対するそれぞれのコントローラの相対位置を利用して、トリガイベント後の同時のシフトを決定するようにしてもよい。他の実施形態では、プレイゾーン内にプレーヤが1人しかいない場合は、ベースステーションプロセッサ234は、プレイゾーン外のアイテムに関連付けられた視覚データとともにコントローラの位置を利用することができる。プレイゾーン内のプレーヤが1人である別の実施形態では、ベースステーションプロセッサは、動作検出ハードウェアからのデータと1人のユーザの画像データに依存する。上述の実施形態は限定を目的としたものではなく、他の実施形態においても、画像データと動作検出データの両方を用いてベースステーションの動作を決定するための方法を含むことができる。
【0042】
図4は、本発明の一実施形態によるスクリーン400の例示的上面図である。スクリーンは、ディスプレイ106に表示されるインタラクティブなコンピュータプログラムを実行中のゲームコンソール108を含む。プレーヤAは、コントローラC1を使用して、ゲームコンソール108により実行されているコンピュータプログラムとインタラクションを行う。同様に、プレーヤBとプレーヤCとは、それぞれのコントローラC2とC3とを使用して、コンピュータプログラムとインタラクトする。本実施形態では、ベースステーション101は、ゲームコンソール108と間隔を設けて配置されており、コントローラC1、C2およびC3からのユーザ入力をゲームコンソール108へ中継している。さらに、ベースステーション101内のカメラ226は、プレーヤA、プレーヤB、およびプレーヤCの画像データをそれぞれのコントローラC1、C2およびC3とともにキャプチャしている。本実施形態では、キャプチャされたベースステーションからの画像データを利用して、それぞれのコントローラからベースステーション101までの距離、距離dz1、dz2、およびdz3が決定される。他の実施形態では、コントローラから発せられた超音波放射を利用して距離dz1、dz2およびdz3が決定される。さらに他の実施形態では、超音波放射とベースステーションのカメラからキャプチャした深度データとの組合せからdz1、dz2およびdz3が決定される。さらに他の実施形態では、コントローラは、画像データから特定される特定の幾何学的形状体を含む。一実施形態では、コントローラは一体化された楕円体を含み、これはカメラ226が認識できるものである。従って、楕円体がカメラに近づくと、カメラ226によりキャプチャされた画像データ内の円形のピクセル領域が増加し、また、逆の場合も同じである。
【0043】
一実施形態では、キャプチャされた画像データを利用して、コントローラの2次元の位置が決定される。この位置は、プレイゾーンなどの3次元空間での平面や直線における一点を決定する2つの座標xおよびy、(x、y)、により特定される。x値とy値とを示すために水平位置と垂直位置とが用いられる場合がある。さらに、原点からの角度やベクトル値などの、他の種類の座標が用いられる。同様に、3次元空間内では、空間での一点を特定するために様々な座標系を利用することができ、これには例えば、x、yおよびz直交座標や、xおよびy座標プラス原点からのベクトル、あるいは、原点からの2つの角度とベクトル、が含まれる。
【0044】
ベースステーション101のマイクロフォンは、プレイゾーン内の音声データをキャプチャする。一実施形態ではコントローラC1、C2およびC3から生じる音声がマイクロフォンにより受信される、片方向通信が利用される。超音波通信により、プレーヤの体験が干渉されずに済む。一実施形態では、コントローラは音声が生じるスピーカを含み、音声キャプチャデバイスはプレイゾーン内の音声を検出するための複数のマイクロフォンを含む。一実施形態では、プレイゾーン外からの不要なノイズをキャプチャしないためのフィルタリング技術により、プレイゾーンのフォーカスがクリアになる。さらに、一つあるいは複数のマイクロフォンが、超音波通信で使用されない周波数をフィルタリングし、不要な音源からの干渉をさらに減らすことができる。さらにまた、プレイエリア近くの面から反射される音により、音声通信が間違って読み取られてしまう場合がある。一実施形態では、コンピューティングシステム102は、指向性フィルタ、音響分析などの音響反射により引き起こされてしまう間違った読み取りをしないためのメカニズムを含む。
【0045】
別の実施形態では、コントローラと画像キャプチャデバイス106間は双方向通信であり、コントローラまたは音声デバイスのいずれか一方が超音波メッセージを送信または受信する。さらにまた別の実施形態では、片方向通信は、各コントローラに超音波マイクロフォンを備え、音声エミッタデバイスをディスプレイ近くに設けた状態で、反対方向に流れる。
【0046】
超音波通信は、音声信号がその目的地に到着するまでの時間を分析することにより、コントローラと音声キャプチャデバイス間の距離、つまりdzを測定するために用いられる。さらに、受信した信号の位相コヒーレンスを分析して、より正確に距離を決定するようにしてもよい。片方向通信が利用される場合は、音声が音源から目的地へと移動するための時間を正確に測定するために、正確なクロック同期が必要とされる。当業者であれば、クロック同期を得るための適切な周知の方法が簡単に分かるであろう。例えば、クロックを同期させるために、コントローラとコンピューティングデバイス間のWiFi(商標)チャネルを使用することができる。Zalewskiに付与された(参照のために本明細書に組み入れられている) 米国特許第5,991,693号は、本発明を利用したトラッキングモードを提供している。
【0047】
キャプチャした画像データに基づいて得られた点(x、y)と、距離dzとにより、3次元のキャプチャエリア内での一点が決定する。dzは第3次元と呼ばれることもある。その理由は、dzは、既述のx軸とy軸に直交のz軸内の値に変換されうるからである。z測定値はキャプチャエリア内の深度と称される。
【0048】
図5は、本発明の一実施形態による、距離測定から絶対深度(z)測定への変換を示した図である。dzは、座標が(x0、y0、z0)の、コントローラ102からベースステーション101への距離である。画像キャプチャデータにより、コントローラ102の水平座標(x1)と垂直座標(y1)が求められる(不図示)。コントローラ102のz1値を求める場合は、音声キャプチャデバイスを中心とした半径dz1の球体とともに、3次元空間で(x1、y1)のいずれの点により定義される直線を交差させる。この直線は、以下の方程式により定義される。
【0049】
この方程式は、全体の歪みがない空間を想定する。他の実施形態は画像キャプチャデバイスからの斜視図による、想定される歪みを補償する。球体は、以下の方程式により定義される。
【0050】
球体の方程式をxをx1に、yをy1に置換すると、深度値z1に対応するz値を返す。方程式は2つのz値を返すであろうが、プレイゾーン内には1つの値しか存在しない点に留意されたい。
【0051】
上述した計算は超音波送信に基づいて深度値を決定する方法を開示する。他の実施形態では、ベースステーションに関連づけられるカメラによりキャプチャされる画像データを利用して、ベースステーションからのコントローラの距離や深度を決定することができる。例えば、複数のカメラを利用するベースステーションの実施形態では、少なくとも2台のカメラからの画像データに基づいて、コントローラの深度の三角測量を決定することができる。既述したように、他の形態では、コントローラに関連づけられる特徴的なオブジェクトのピクセルの相対数から深度データを決定することもできる。さらに他の実施形態では、ベースステーションのカメラは深度カメラであってよい。上述の実施形態は、限定を目的としたものでなく、実施形態の各種組み合わせにより、コントローラの、ベースステーションへの距離を決定することができる。
【0052】
図6Aおよび図6Bに、本発明の一実施形態による、ベースステーション101の水平移動の検出法を示す。図6Aは、シーン600の上面図とベースステーションビュー600−1とを含む。シーン600では、ベースステーション101はゲームコンソール108とユーザAおよびBとの間に存在する。ユーザAはコントローラC1を操作し、ユーザBはコントローラC2を操作して、ゲームコンソール108により実行されているコンピュータプログラムとインタラクトする。ベースステーションビュー600−1では、ベースステーション101と関連づけられるカメラによりキャプチャされたシーン600を示す。従って、ユーザAとユーザBの位置はシーン600のビューとは逆になっている。図6Aおよび図6Bに例示するベースステーションビューはユーザAおよびユーザbの画像を示しているが、ベースステーションに関連づけられる付加的カメラにより、プレイゾーン110内のさらなる深度データがキャプチャされうる。
【0053】
図6Bに図6Aの位置からのベースステーション101の移動を示す。ベースステーション101はゲームコンソールのユーザの比較的近くに配置することができるポータブルデバイスなので、ベースステーションが押しやられたり誤って移動(誤ってキックされるなどして)されてしまうことがある。例えば、ベースステーション101が移動してしまう原因としては、ユーザAかユーザBのいずれか一方によるゲームプレイが乱暴なことや、ペットがベースステーション101を押しのけてしまうことが挙げられるが、これらに限定されることはない。上述したように、ベースステーション101の移動は、ベースステーション101に関連づけられる動作検出ハードウェアにより検出されうる。加速時計、慣性センサ、空間トラッキングシステムなどの多くの方法で動作検出を決定することができる。
【0054】
図6Bに示すように、ベースステーション101は距離x分右へシフトしている。よって、ベースステーションビュー602−1に示すように、キャプチャしたユーザAおよびユーザBの画像データは、ユーザAおよびユーザBの略同一の位置の変更を示す。図6Aおよび図6Bは画像データを利用して示されているが、他の実施形態では、両ユーザや2つの別々のコントローラ(入力デバイスなど)の、略同時のシフトを検出することができる。
【0055】
別の実施形態では、一ユーザがそれぞれの手に入力デバイスを把持していてもよい。よって、ユーザがコンピュータプログラムとインターフェースしていたときにベースステーションが移動したかどうかを決定することが必要となりうる。よって、一方法においては、コンピュータで実行されるコンピュータプログラムとインターフェースする入力デバイスから受信されるインタラクティブな通信の処理を含みうる。コンピュータは単一のコンピュータ、ネットワークコンピュータ、ゲームコンソール、ネットワークゲームコンソール、あるいはその組合せであってもよい。この方法には、コンピュータとインターフェースするベースステーションにおいて、第1入力デバイスと第2入力デバイスとから入力データを受信するステップが含まれる。第1入力デバイスと第2入力デバイスとは、コンピュータプログラムとインタラクティブにインターフェースするために相互に独立して移動可能である。この方法は、ベースステーションを介して第1入力デバイスと第2入力デバイスの位置をトラッキングするステップを含む。他の実施形態によりトラッキングが処理されてもよいことを理解されたい。
【0056】
例示的実施形態では、第1入力デバイスおよび第2入力デバイスの位置が以下のステップによりトラッキングされる。(a)第1入力デバイスと第2入力デバイスとから位置を受信し、(b)ベースステーションにおいて、第1入力デバイスおよび第2入力デバイスから受信したデータから位置データを計算し、(c)第1入力デバイスおよび第2入力デバイスあるいはベースステーションから受信したデータに基づいて、コンピュータにおいて位置データを計算し、(d)第1入力デバイスおよび第2入力デバイスの位置を一部決定し、ベースステーションの位置を一部決定し、
(e)第1入力デバイスおよび第2入力デバイス、ベースステーション、およびコンピュータから得たデータに基づいて位置データを一部決定する。位置は、処理が行われる場所に応じて、画像処理、超音波データ処理、入力ジョイスティック動作、ピッチ−ロール−ヨーデータ、有線または無線入力、あるいは入力ボタン選択のうちの一つ以上により処理されうる。
【0057】
方法は、トラッキングされた、第1入力デバイスおよび第2入力デバイスの位置の、略同一の位置の変化を特定するように構成されている。略同一の位置の変化は検出可能な大きさを有する。本例示的方法によれば、略同一の位置の変化が特定されるとフラグが設定される。本文中で使用されているように、フラグは、コード、ビット、ビットパターン、例外、オブジェクト、コードトリガなどの多くの形態で表示されうる。フラグの形態は、フラグを受信するプログラムやコードに応じて変わる。例えば、プログラムがコンピュータゲームであれば、コンピュータゲームのプログラム命令はフラグを読み取り、そのフラグについて知得した情報に応じて処理すべきことを決定することができる。ある場合では、フラグは、他のプログラムからもコミュニケートされ、これは、システムにローカルに、またはリモートシステムに、あるいは、ネットワークを介したコンピュータになされる。
【0058】
一実施形態では、フラグは、コンピュータプログラムとのインタラクティビティの間に操作するように設定されたコンピュータプログラムにより処理される。コンピュータプログラムがコンピュータゲームであれば、略同一の位置変化を差し引く、第1入力デバイスおよび第2入力デバイス両方を補正する、コンピュータゲームを中断する、コンピュータゲームを巻き戻す、コンピュータゲームをリスタートする、あるいは、ベースステーションの移動を知らせる、のうちの一つのアクションが取られうる。
【0059】
コンピュータプログラムがコンピュータゲーム以外であれば、アクションとしては、プログラムの環境には通常の形態のものが取られてよい。例えば、ユーザがブラウザとインターフェースしており、テキストを選択するために入力デバイスが利用されていれば、フラグによりテキストが除外されてしまうか、最終のインタラクティブアクションがなされる前の状態にユーザを戻す。従って、コンピュータプログラムとのインタラクションの間に発生するアクションは、コンピュータプログラムの形態に基づいて事前に設定されている。
【0060】
またさらに、一実施形態では、略同一の位置の変化が発生する大きさが閾値を越えれば、ベースステーションで移動が発生したことを示すようにシステムをプログラムすることができる。さらに別の実施形態では、ベースステーションが移動したかどうかを決定するための回路と論理とをベースステーション自体が備えていてもよい。ベースステーションに内蔵された移動検出器や慣性センサなどによりこの決定がなされてもよい。
【0061】
従って、ベースステーションは、移動の発生時を決定し、さらに、この移動が大きさを超えているかどうかを決定するためにプログラムされうる。従って、ある実施形態では、2種類の異なる大きさと、2種類の異なる閾値レベルとがチェックされうる。従って、フラグに関わるアクションを発生させる前に、入力デバイスの略同一の位置の変化が生じたかどうかがまず決定され、さらに、ベースステーション自体が移動したかどうかがチェックされる。
【0062】
各種実施形態では、ユーザ入力から略同一の位置変化の分が差し引かれてベースステーションの移動を補正するようにしてもよい。他の実施形態では、プレイゾーン内のオブジェクトの、同時で略同一のシフトだけに依存すると、ベースステーションの移動が誤って決定されてしまうことがある。従って、一実施形態では、ベースステーションの移動を検出するための、同時のシフトに対するコントローラデータは、動作検出ハードウェアが閾値を超えるベースステーションの移動を検出した後に比較される。略同一の位置変化に対するコントローラデータを調べるにあたって、閾値が超過するのを待つことは必須ではなく、これは任意のものであると考えらるべきである。
【0063】
プレイゾーン内でオブジェクトまたはコントローラの略同一のシフトが検出されると、ベースステーションをリアルタイムで再調整しゲームプレイに対する影響を最小限に抑えるようにしてもよい。一実施形態では、2映像フレーム以内か、わずかな映像フレームで再調整されうる。通常、映像は一秒につき約30フレームで表示されるので、この再調整期間は取るに足らないか気付かないほどに短くてよいものである。従って、図6Aおよび図6Bに示すように、ベースステーションが右にシフトされたことをベースステーションが検出すれば、ベースステーションは、ユーザ入力をコントローラC1およびC2に変更することで補償し、ゲームプレイを中断しないようにする。
【0064】
図6Aおよび図6Bは、ベースステーションの、ユーザAおよびユーザBに対する側方向の移動を示す。上述したように、これらの実施形態は両手に1つのコントローラを持つ単一ユーザにも適用される。ユーザが2人の場合の例を続けると、ベースステーションは、ユーザAおよびユーザBに近づくように、あるいは、ユーザAおよびユーザBから離れるように移動あるいは押しやられる。この場合、光深度カメラ又は超音波センサからの深度データを利用してベースステーションの移動を決定するようにしてもよい。
【0065】
図6Cに、本発明の一実施形態によるテレビゲームのインタラクティブな制御を示し、図6Dに、本発明の一実施形態による、ベースステーション内のカメラを利用したインタラクティブな制御をキャプチャした画像データを示す。図6Cでは、ユーザAは動作M1と、これに続く動作M2においてコントローラC1を操作し、スケートアバタ650を制御する。動作M1とM2とは、方向と大きさの両方を含むことから、ベクトルである。この場合、動作の大きさとは、動作が完了する速度である。本実施形態では、動作M1は、スケートアバタ650の速度を高めるために用いられる。動作M2は、傾斜台652の最上部でスケートアバタ650をジャンプさせるように用いられる。ゲームコンソール108はゲームをレンダリングしており、モニタ106に表示されるビデオ信号を出力する。
【0066】
図6DのフレームAは、動作M1が行われるときの、キャプチャされたコントローラC1の中間画像データを示す。時間t1と時間t2においてのコントローラC1の2つの画像が図示されており、時間t2は動作M1が完了する前の時間である。画像を分析すると、時間t2でのコントローラC1の大きさは、時間t1でのコントローラC1の大きさよりも大きいことが明らかである。つまり、時間t1とt2の間に、コントローラC1がベースステーション101に近づいたということである。フレームBは、時間t3での動作M1の完了を示す。明瞭化のために、フレームBは時間t1とt3においてのコントローラC1を示す。一実施形態では、画像データ、特にピクセルデータの分析を利用して、コントローラC1がベースステーションに近づいたか、離れたかを決定するようにしてもよい。コントローラC1を構成するピクセル数が、時間t5よりも時間t3において多ければ、コントローラC1はベースステーション101に近づいたということである。コントローラC1を構成するピクセル数がt3において少なければ、コントローラC1はベースステーションから離れたということである。ベースステーションに向かう距離の相対的変化を決定することと、図6Cのスケートアバタの速度変化とは相関しうる。
【0067】
フレームCは、動作M1の開始時である時間t1における画像データとt4における動作M2の完了時における画像データとを比較したものである。ベースステーション内のカメラによりキャプチャされた画像データにおいて、時間t1、t2、t3及びt4間のコントローラC1の相対的大きさを比較することにより、ゲームコンソールはコントローラの移動と相関させて、モニタ106に表示されるテレビゲームとインタラクトできるようになる。画像データと深度データとに基づくユーザ入力により、空間内のベクトル移動をあらゆるテレビゲーム制御にマッピングすることができるので、図6Cと図6Dに示す制御をあらゆるテレビゲームに応用することができる。例えば、ボクシングシミュレーションや魚釣りシミュレーション、ドライビングシミュレーションのスロットル制御であってもこの制御を用いることができる。上記に挙げられた特定の例は例としてみなされるべきであり、限定するものとみなされるべきではない。
【0068】
図7は、本発明の一実施形態による、ゲームコンソール108、ベースステーション101、およびコントローラ102のブロック図である。本実施形態において、また、簡素化のために、ゲームコンソール108はプロセッサ、メモリ領域、クロック、および通信インターフェースを備えて示されている。通信インターフェースは、ベースステーションとコントローラへの無線通信用の無線通信(RF)インターフェースを含む。他の実施形態では、コントローラは、ベースステーションのみと通信している。そのような実施形態では、ベースステーションとゲームコンソール間の通信プロトコルはWi−Fiであり、コントローラとベースステーション間の通信はブルートゥースプロトコルを利用する。上述のように、ベースステーションは、画像キャプチャリング、音声の送受信(本実施形態では、超音波)および発光体を含む、他の通信方法を含みうる。
【0069】
ベースステーション101の様々な通信プロトコルは、コンピューティングシステム内のそれぞれのコントローラに接続する。メモリ領域は、実行中のプログラム、画像処理領域、音声処理領域、およびクロック同期領域を含む。実行中のプログラムは、画像処理プログラム、音声処理プログラム、クロック同期プログラムなどを含む。これらのプログラムは対応するメモリ領域を使用し、例えば、画像データを含む画像処理領域、超音波通信データを含む音声処理領域、および、遠隔装置との同期のために使用されるクロック同期領域、などが挙げられる。
【0070】
プレーヤ環境領域でのコントローラの構成についての実施形態がいくつか図示されている。コントローラAは、上述したような多くの特徴を備えた「フル装備の(フルロードの)」コントローラである。コントローラAは、ゲームコンソール108と同期するために使用されるクロック同期(Clock Synchronization(CS))モジュールと、超音波データを受信するための音声受信機(Sound Receiver(SRx)、超音波データを送信するための音声送信機(Sound Transmitter(SRx))ゲームコンソール108とのWiFi通信のためのWiFi(WF)モジュール、コントローラのフロントおよび/またはサイド間へ音声を伝達するためのアコースティックチャンバ(Acoustic Chamber(AC))、画像データをキャプチャするための、デジタルビデオカメラなどの画像キャプチャ(Image Capture(IC))デバイス、および、ゲームコンソール108において、画像処理モジュールからの画像認識を容易にするための、赤外線スペクトルまたは可視スペクトルでの発光体(Light Emitter(LE))を含む。
【0071】
図8は、本発明の一実施形態による、コントローラの位置を決定するために使用されうるハードウェアおよびユーザインターフェースを示す。図22は本発明の一実施形態による、3次元コントローラの位置決めシステムを実装可能なコンソールであるソニー(R)プレイステーション3(R)エンターテインメントデバイスのシステムアーキテクチャ全体を模式的に示す。システムユニット140は、システムユニット1400に接続可能な様々な周辺機器を備える。システムユニット1400は、セルプロセッサ(Cellプロセッサ)1428、Rambus(R)ダイナミックランダムアクセスメモリ(XDRAM)ユニット1426、専用のビデオランダムアクセスメモリ(VRAM)ユニット1432を有するリアリティシンセサイザ(Reality Synthesizer)グラフィックユニット1430、およびI/Oブリッジ1434を備える。また、システムユニット1400は、I/Oブリッジ1434を介してアクセス可能な、ディスク1440aから読み出すためのブルーレイ(R)ディスクBD−ROM(R)(Blu Ray(R)Disk BD−ROM(R))光ディスクリーダ1440、および着脱可能なスロットインハードディスクドライブ(HDD)1436も備える。任意選択で、システムユニット1400は、同様にI/Oブリッジ1434を介してアクセス可能な、コンパクトフラッシュ(登録商標)メモリカード、メモリスティック(R)メモリカードなどを読み出すためのメモリカードリーダ1438も備える。
【0072】
また、I/Oブリッジ1434は、6つのユニバーサルシリアルバス(Universal Serial Bus(USB))2.0ポート1424、ギガビットイーサネット(登録商標)ポート1422、IEEE 802.11b/g無線ネットワーク(Wi−Fi)ポート1420、および最大7つのブルートゥース(R)接続に対応可能なブルートゥース(R)無線リンクポート1418にも接続している。
【0073】
動作時に、I/Oブリッジ1434は、1台以上のゲームコントローラ1402〜1403からのデータを含む、全ての無線、USB、およびイーサネット(登録商標)データを処理する。例えば、ユーザがゲームをプレイ中に、I/Oブリッジ1434はブルートゥースリンクを介してゲームコントローラ1402〜1403からデータを受信して、これをセルプロセッサ1428に転送し、セルプロセッサ1428が適宜ゲームの現在の状態を更新する。
【0074】
また、無線、USB、およびイーサネット(登録商標)の各ポートを介して、ゲームコントローラ1402〜1402のほかに、他の周辺機器も接続することが可能となる。このような周辺機器には、例えば、リモコン1404、キーボード1406、マウス1408、ソニープレイステーションポータブル(R)エンターテイメントデバイスなどのポータブルエンターテイメントデバイス1410、アイトーイ(R)(EyeToy(R))ビデオカメラ1412などのビデオカメラ、マイクロフォンヘッドセット1414、および、マイクロフォン1415などがある。
このため、これらの周辺機器は、原則としてシステムユニット1400に無線で接続されうる。例えば、ポータブルエンターテイメントデバイス1410はWi−Fiアドホック接続を介して通信し、マイクロフォンヘッドセット1414はブルートゥースリンクを介して通信しうる。
【0075】
これらのインターフェースを提供することにより、プレイステーション3デバイスは、デジタルビデオレコーダ(DVR)、セットトップボックス、デジタルカメラ、ポータブルメディアプレーヤ、VoIP電話、携帯電話、プリンタ、およびスキャナなどの他の周辺機器と場合によっては互換となりうる。
【0076】
さらに、USBポート1424を介して旧式メモリカードリーダ1416をシステムユニットに接続することができ、プレイステーション(R)デバイスまたはプレイステーション2(R)で用いられていたタイプのメモリカード1448の読み出しが可能となる。
【0077】
本実施形態では、ゲームコントローラ1402〜1403は、ブルートゥースリンクを介してシステムユニット1400と無線通信するように動作可能である。しかし、その代わりに、ゲームコントローラ1402〜1403が、USBポートに接続されてもよく、これにより、ゲームコントローラ1402〜1403のバッテリに充電するための電力も供給する。ゲームコントローラ1402〜1403は、メモリ、プロセッサ、メモリカードリーダ、フラッシュメモリなどの永続的なメモリ、LEDや赤外光などの発光体、超音波通信用のマイクロフォンおよびスピーカ、アコースティックチャンバ、デジタルカメラ、内部クロック、ゲームコンソールに面している球形部分などの認識可能な形状、および、ブルートゥース(R)、WiFi(商標)などのプロトコルを使用した無線通信、などを含むことができる。
【0078】
図1〜10で説明したように、ゲームコントローラ1402は、両手で使用するように設計されたコントローラであり、ゲームコントローラ1403は片手用のコントローラである。1つ以上のアナログジョイスティックおよび従来のコントロールボタンに加えて、ゲームコントローラは、3次元の位置決定に敏感である。このため、従来のボタンやジョイスティックコマンドに加えて、あるいはこれらの代わりに、ゲームコントローラのユーザによるジェスチャや動作がゲームへの入力として変換されうる。任意選択で、プレイステーション(商標)ポータブルデバイスなどの他の無線対応の周辺機器をコントローラとして使用することができる。プレイステーション(商標)ポータブルデバイスの場合、追加のゲーム情報または制御情報(例えば、制御命令あるいはライブの数)が該デバイスの画面に提示されうる。他の代替的または補助的な制御装置が使用されてもよく、これには、ダンスマット(不図示)、ライトガン(不図示)、ハンドルおよびペダル(不図示)、あるいは、即答クイズゲームのための1つまたは複数の大型のボタン(これも図示なし)などの特注品のコントローラなどがある。
【0079】
また、リモコン1404も、ブルートゥースリンクを介してシステムユニット1400と無線通信するように動作可能である。リモコン1404は、ブルーレイ(商標)ディスクBD−ROMリーダ1440の操作、およびディスク内容の閲覧のために適した制御を備える。
【0080】
ブルーレイ(商標)ディスクBD−ROMリーダ1440は、従来の記録済みCD、記録可能CD、およびいわゆるスーパーオーディオCDのほか、プレイステーションデバイスおよびプレイステーション2デバイスと互換のCD−ROMを読み出すように動作可能である。また、リーダ1440は、従来の記録済みDVDおよび記録可能DVDのほか、プレイステーション2デバイスおよびプレイステーション3デバイスと互換のDVD−ROMを読み出すように動作可能である。さらに、リーダ1440は、従来の記録済みブルーレイディスクおよび記録可能ブルーレイディスクのほか、プレイステーション3デバイスと互換のBD−ROMを読み出すように動作可能である。
【0081】
システムユニット1400は、リアリティシンセサイザグラフィックユニット1430を介して、プレイステーション3デバイスによって生成またはデコードされた音声およびビデオを、音声コネクタおよびビデオコネクタ経由で、ディスプレイ1444および1つ以上のスピーカ1446を備えた表示および音声出力デバイス1442(モニタまたはテレビ受像機など)に提供するように動作可能である。音声コネクタ1450は、従来のアナログ出力およびデジタル出力を備える一方、ビデオコネクタ1452は、コンポーネントビデオ、S−ビデオ、コンポジットビデオ、および1つ以上のハイデフマルチメディアインタフェース(High Definition Multimedia Interface:HDMI)の出力などを種々備えうる。したがって、ビデオ出力は、PALまたはNTSC、あるいは720p、1080iまたは1080pの高解像度などのフォーマットであってもよい。
【0082】
音声処理(生成、デコードなど)はセルプロセッサ1428によって実行される。プレイステーション3デバイスのオペレーティングシステムは、ドルビー(R)5.1サラウンドサウンド、ドルビー(R)シアターサラウンド(Dolby Theatre Surround)(DTS)、およびブルーレイ(R)ディスクからの7.1サラウンドサウンドのデコードに対応している。
【0083】
本実施形態では、ビデオカメラ1412は、1つの電荷結合素子(CCD)、LEDインジケータ、およびハードウェアベースのリアルタイムデータ圧縮およびエンコード装置を備え、圧縮ビデオデータが、システムユニット1400によるデコードのために、イントラ画像ベースのMPEG(Motion Picture Expert Group)標準などの適切なフォーマットで送信されるようになる。カメラのLEDインジケータは、例えば不利な照明条件を示す適切な制御データをシステムユニット1400から受け取ると、発光するように配置されている。ビデオカメラ1412の実施形態は、USB、ブルートゥースまたはWi−Fiの通信ポートを介して、システムユニット1400にさまざまな方法で接続しうる。ビデオカメラの実施形態は、1つ以上の関連するマイクロフォンを備えており、音声データを送信することができる。ビデオカメラの実施形態では、CCDは、高解像度のビデオキャプチャに適した分解能を備えうる。使用時に、ビデオカメラによってキャプチャされた画像が、例えば、ゲーム内に取り込まれるか、またはゲームの制御入力として解釈されうる。別の実施形態では、カメラは、赤外光の検出に適した赤外線カメラである。
【0084】
一般に、システムユニット1400の通信ポートの1つを介して、ビデオカメラまたはリモコン等などの周辺機器とのデータ通信がうまく行われるように、デバイスドライバ等の適切なソフトウェアを提供する必要がある。デバイスドライバ技術は公知であり、ここで詳細に説明しないが、当業者であればデバイスドライバまたは同様のソフトウェアインタフェースが、記載する本実施形態で必要とされうることを理解するであろう。
【0085】
図9に、本発明の一実施形態による、命令の処理に使用されうる付加的ハードウェアを示す。セルプロセッサ1428は、メモリコントローラ1560およびデュアルバスインタフェースコントローラ1570A、Bを含む外部入出力構造、パワープロセッシングエレメント(Power Processing Element)1550と呼ばれるメインプロセッサ、シナジスティックプロセッシングエレメント(Synergistic Processing Element(SPE))1510A〜Hと呼ばれる8基のコプロセッサ、要素相互接続バス(Element Interconnect Bus)1580と呼ばれる上記のコンポーネントに接続している環状データバス、の4つの基本コンポーネントを備えたアーキテクチャを有する。プレイステーション2デバイスのエモーションエンジン(Emotion Engine)は6.2ギガフロップスであるのに対し、Cellプロセッサの総浮動小数点演算性能は、218ギガフロップスである。
【0086】
パワープロセッシングエレメント(PPE))1550は、3.2GHzの内部クロックで動作し、双方向同時マルチスレッディングPower1470準拠のPowerPCコア(PPU)1555をベースにしている。PPE1550は、512kBのレベル2(L2)キャッシュと、32kBのレベル1(L1)キャッシュとを備える。PPE1550は、クロックサイクルごとに8つのシングルポジション操作、いわゆる単一位置操作ができ、これは、3.2GHzで25.6ギガフロップスに相当する。PPE1550の主な役割は、演算作業負荷の大部分を処理するシナジスティックプロセッシングエレメント1510A〜Hのコントローラとして機能することにある。動作時に、PPE1550はジョブキューを保持し、シナジスティックプロセッシングエレメント1510A〜Hのジョブをスケジュールしており、その進捗を監視する。したがって、各シナジスティックプロセッシングエレメント1510A〜Hはカーネルを実行し、その役割は、ジョブを取り出して、これを実行し、PPE1550と同期されることにある。
【0087】
各シナジスティックプロセッシングエレメント(SPE)1510A〜Hは、シナジスティックプロセッシングユニット(Synergistic Processing Unit(SPU))1520A〜Hおよびメモリフローコントローラ(Memory Flow Controller(MFC))1540A〜Hをそれぞれ備え、MFC1540A〜Hは、ダイナミックメモリアクセスコントローラ(Dynamic Memory Access Controller(DMAC)1542A〜H、メモリ管理ユニット(Memory Management Unit(MMU)1544A〜H、およびバスインタフェース(不図示)をそれぞれ備える。各SPU1520A〜Hは3.2GHzでクロック供給され、原則として4GBまで拡張可能な256kBのローカルRAM1530A〜Hを備えたRISCプロセッサである。各SPEは、理論的には単精度処理性能で25.6ギガフロップスを示す。1つのSPUは、1クロックサイクルに、4つの単精度浮動小数点数、4つの32ビット数、8つの16ビット整数または16の8ビット整数を処理することができる。同じクロックサイクルで、メモリ操作も実行することができる。SPU1520A〜HはシステムメモリXDRAM1426に直接アクセスしない。SPU1520A〜Hが作成した64ビットアドレスがMFC1540A〜Hに渡され、MFC1540A〜Hが、自身のDMAコントローラ1542A〜Hに対して、要素相互接続バス1580およびメモリコントローラ1560を介してメモリにアクセスするように指示する。
【0088】
要素相互接続バス(EIB)1580は、セルプロセッサ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(ギガバイト/秒)の理論上のピーク帯域幅に相当する。
【0089】
メモリコントローラ1560は、ラムバス社(Rambus Incorporated)によって開発されたXDRAMインターフェース1562を備える。このメモリコントローラは、25.6GB/sの理論上のピーク帯域幅で、Rambus XDRAM1426とインターフェースする。
【0090】
デュアルバスインタフェース1570A、Bは、Rambus FlexIO(R)システムインタフェース1572A、Bを備える。このインターフェースは、それぞれ8ビット幅の12のチャネルに編成されており、このうち、5の経路が受信用、7つの経路が送信用である。これにより、セルプロセッサと、コントローラ170Aを介してI/Oブリッジ1434間、およびコントローラ170Bを介してリアリティシミュレータ(Reality Simulator)グラフィックユニット200間で、理論上のピーク帯域幅が62.4GB/s(送信36.4GB/s、受信26GB/s)が得られる。セルプロセッサ1428によってリアリティシミュレータグラフィックユニット1430に送信されるデータには、通常、表示リストが含まれ、これは、頂点を描画したり、ポリゴンにテクスチャを貼り付けたり、照明条件を指定するなどための一連のコマンドである。
【0091】
実施形態では、現実世界のユーザをより正確に特定し、アバターまたはシーンのアクティビティを管理するために深度データのキャプチャが行われてもよい。物体は、人物が把持している物体であっても、人物の手であってもよい。本明細書においては、「深度カメラ」および「3次元カメラ」との用語は、距離情報や深度情報のほかに、2次元のピクセル情報も得ることができるカメラを指す。例えば、距離情報を得るために、深度カメラは制御された赤外光を利用してもよい。別の例示的な深度カメラは、2台のスタンダードカメラを使用して距離情報の三角測量を行う複数のカメラ構成であってよい。同様に、「深度感知デバイス」なる用語は、距離情報のほかに2次元のピクセル情報も得ることができるデバイスを指す。
【0092】
3次元画像の最近の進歩により、リアルタイムでのインタラクティブなコンピュータアニメーションの実現性を高める可能性が広がっている。特に、新たな「深度カメラ」により、通常の二次元ビデオ画像に加えて、3次元ビデオ画像をキャプチャしマッピングすることができる。新たな深度データを使用して、本発明の実施形態は、コンピュータで生成されたオブジェクトをリアルタイムで他のオブジェクトの背後を含むビデオシーン内の様々な位置に配置することができる。
【0093】
さらに、本発明の実施形態は、リアルタイムでのインタラクティブなゲーム体験をユーザにさせることができる。例えば、ユーザは、コンピュータが生成したさまざまなオブジェクトとリアルタイムでインタラクションを行うことができる。さらに、ユーザのゲーム体験を高めるためにビデオシーンをリアルタイムで変更することができる。例えば、コンピュータが生成したコスチュームを、ユーザの服にはめ込んだり、コンピュータが生成した光源を利用して、ビデオシーン内に仮想の影を表示させることができる。このため、本発明の各種実施形態と深度カメラを使用して、ユーザは自分のリビングルームでインタラクティブなゲーム環境を体験することができる。深度カメラは、通常のカメラと同様に、ビデオ画像を含む複数のピクセルに対する2次元データをキャプチャする。これらの値はピクセルのカラー値であり、通常は、各ピクセルの赤、緑、青(RGB)の値である。このようにして、カメラによってキャプチャされたオブジェクトは、モニタ上で2次元のオブジェクトとして現れる。
【0094】
さらに本発明の実施形態は分散型の画像処理構成についても考察している。例えば、本発明は、1つの場所(CPUなど)や2つの場所(CPUと他の1つの素子など)で行われるキャプチャ画像および表示画像の処理に限定されない。例えば、入力画像処理は、処理を実行することができる関連のCPU、プロセッサまたは装置において容易に行うことができ、基本的には、画像処理の全てを、相互接続システム全体に分散させることができる。このため、本発明は、特定の画像処理ハードウェア回路および/またはソフトウェアに限定されない。また、本明細書に記載した実施形態は、一般的なハードウェア回路および/またはソフトウェアの特定の組み合わせに限定されず、処理コンポーネントによって実行される命令の特定のソースにも限定されない。
【0095】
図10は、本発明の一実施形態による、シーンA〜シーンEと、インターネットを介して処理サーバに接続されているゲームクライアントやゲームコンソール1002とインターフェースしているそれぞれのユーザA〜Eの例示的な図である。上述のように、ゲームクライアントは、ユーザがインターネットを介してサーバアプリケーションや処理サーバへの接続を可能にするデバイスである。ゲームクライアントにより、ユーザは、ゲーム、映画、音楽、および写真など(これらに限定されない)のオンラインエンターテインメントコンテンツにアクセスしこれらを再生することができる。さらに、ゲームクライアントは、VOIP、テキストチャットプロトコル、およびeメールなどのオンライン通信アプリケーションへアクセスできるようにする。
【0096】
ユーザはコントローラを介してゲームクライアントとインタラクトする。ある実施形態では、コントローラはゲームクライアント固有のコントローラであり、他の実施形態では、コントローラはキーボードとマウスの組み合わせであってよい。一実施形態では、ゲームクライアントは音声および画像信号を出力し、モニタ/テレビおよび関連づけられる音声環境によりマルチメディア環境を生成することができる独立型のデバイスである。例えば、ゲームクライアントは、薄型のクライアント、内蔵型PCIエクスプレスカード、外付けPCIエクスプレスデバイス、エクスプレスカード(ExpressCard)デバイス、内蔵型、外付け、あるいは無線USBデバイス、ファイヤーワイヤー(Firewire)デバイスなどでありうるが、これらに限定されない。他の実施形態では、ゲームクライアントは、DVR、ブルーレイプレーヤ、DVDプレーヤ、あるいはマルチチャネルレシーバと一体化されている。
【0097】
図10のシーンAでは、ユーザAは、ゲームクライアント1002Aとペアにされたコントローラ102を使用して、モニタ106に表示されるクライアントアプリケーションとインタラクトする。同様に、シーンBでは、ユーザBは、ゲームクライアント1002Bとペアにされたコントローラ102を使用して、モニタ106に表示される別のクライアントアプリケーションとインタラクトする。シーンCは、ユーザがゲームクライアント1002Cからの友人リストあるいはバディリストとゲームが表示されているモニタを見ているユーザCの背後からのビューを示す図である。図10は、一実施形態における一つの処理サーバモジュールを図示しているが、多くの処理サーバモジュールが世界中で存在する。各処理サーバモジュールは、ユーザセッションコントロール、共有/通信論理、ユーザのジオロケーション(地理位置情報)、ロードバランス処理サービスのためのサブモジュールを含む。さらに、処理サーバモジュールは、ネットワーク処理と分散型記憶装置とを含む。
【0098】
ゲームクライアント1002が処理サーバモジュールに接続するときに、ユーザセッションコントロールを利用してユーザ認証を行うようにしてもよい。認証されたユーザは、関連する視覚化された分散型記憶装置と視覚化されたネットワーク処理とを有することができる。ユーザの視覚化された分散型記憶装置の一部として記憶されうるアイテムの例としては、ゲーム、ビデオおよび音楽などの購入された媒体が挙げられるが、これらに限定されない。さらに、複数のゲームのゲームステータスや、個々のゲームのカスタマイズ設定、ゲームクライアントの一般的な設定をセーブするために分散型記憶装置を利用してもよい。一実施形態では、処理サーバのユーザジオロケーションモジュールを用いて、ユーザと、ユーザのそれぞれのゲームクライアントのジオロケーションが決定される。複数の処理サーバモジュールの処理命令と地理的位置とに基づいてパフォーマンスを最適化するように、共有/通信論理とロードバランス処理サービスとによりこのユーザの地理的位置が用いられてもよい。ネットワーク処理とネットワーク記憶装置の一方あるいは両方を視覚化することにより、十分に活用されていない処理サーバモジュールへゲームクライアントからの処理タスクを動的にシフトさせることができる。従って、ロードバランスを利用して、記憶装置からのリコールと、処理サーバモジュールとゲームクライアント間のデータ送信とに関連づけられるレイテンシーを最小限に抑えるようにしてもよい。
【0099】
図10に示しているように、処理サーバモジュールは、例えば、サーバアプリケーションAおよびサーバアプリケーションBを有する。処理サーバモジュールは、サーバアプリケーションX1とサーバアプリケーションX2によって示されるような複数のサーバアプリケーションに対応することができる。一実施形態では、処理サーバは、クラスタコンピューティングアーキテクチャに基づくものであり、このアーキテクチャにより、クラスタ内の複数のプロセッサはサーバアプリケーションを処理することができる。別の実施形態では、サーバアプリケーションを処理するために、様々なタイプのマルチコンピュータプロセッシングスキームが適用される。これにより、複数のクライアントアプリケーションと、対応のサーバアプリケーションとを実行する、より多くのゲームクライアントに対応することができるように、処理サーバを増やすことができる。他の形態では、要求の多いグラフィック処理やゲーム、ビデオ圧縮、あるいはアプリケーションの複雑さにより求められる、増加するコンピューティング命令に対応するように処理サーバを増やすことができる。一実施形態では、処理サーバモジュールは、サーバアプリケーションを介して処理の大部分を実行する。これにより、グラフィックプロセッサ、RAM、および汎用プロセッサなどの比較的高額な要素を中央に位置決めすることができ、ゲームクライアントのコストを削減することができる。処理されたサーバアプリケーションデータは、インターネットを介して対応するゲームクライアントに送り戻され、モニタに表示されるようにする。
【0100】
シーンCは、ゲームクライアントと処理サーバモジュールにより実行される例示的なアプリケーションを示す。例えば、一実施形態では、ゲームクライアント1002Cにより、ユーザCは、ユーザA、ユーザB、ユーザD、およびユーザEを含む友人リストあるいはバディリスト(buddy list:BL)1020を生成し、これを見ることができる。図示しているように、シーンCでは、ユーザCは、モニタ106Cでリアルタイム画像か、それぞれのユーザのアバタのいずれか一方を見ることができる。処理サーバでは、ゲームクライアント1002Cのそれぞれのアプリケーションが、ユーザA、ユーザB、ユーザDおよびユーザDのそれぞれのゲームクライアント1002により実行される。ゲームクライアントBが実行中のアプリケーションを処理サーバが認識しているので、ユーザAの友人リストにユーザBがプレイ中のゲームを表示することができる。さらにまた、一実施形態では、ユーザAは、ユーザBが直接みているゲームビデオを直接見ることができる。これは、ユーザBに対する処理済のサーバアプリケーションデータを、ゲームクライアントBだけでなく、ゲームクライアントAに送信するだけでできるようになる。
【0101】
友人からの映像を見ることができるだけでなく、この通信アプリケーションにより、友人間でリアルタイム通信ができるようになる。上述した例に適用しているように、これにより、ユーザAはユーザBのリアルタイム映像を見ている間に、激励したりヒントを与えることができる。一実施形態では、双方向リアルタイム音声通信は、クライアント/サーバアプリケーションを介して確立される。別の実施形態では、クライアント/サーバアプリケーションはテキストでのチャットを可能にする。さらに別の実施形態では、クライアント/サーバアプリケーションは、音声やスピーチをテキストに変換して友人のスクリーンに表示する。シーンDは、ゲームコンソール1010Dとインタラクト中のユーザDを、シーンEは、ゲームコンソール1010Eとインタラクト中のユーザEを示す。各ゲームコンソール1010Dと1010Eは、処理サーバモジュールに接続されており、この処理サーバモジュールがゲームコンソールとゲームクライアント両方に対するゲームプレイを調整しているネットワークを示す。
【0102】
上記の実施形態を考慮に入れて、本発明が、コンピュータシステムに記憶されているデータを使用する、各種のコンピュータ実装操作を使用してもよい点を理解すべきである。これらの操作には、物理量の物理的な操作を必要とする操作が含まれる。この物理量は通常、記憶、転送、結合、比較などの操作が可能な電気信号または磁気信号の形を取るが、必ずしもこれらに限定されない。さらに、実行される操作は、生成、特定、決定または比較などと呼ばれることが多い。
【0103】
上記した発明は、携帯式デバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電気製品、ミニコンピュータ、メインフレームコンピュータなど、他のコンピュータシステム構成によって実施されてもよい。また、本発明は、分散コンピューティング環境で実施されてもよく、このような環境では、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される。
【0104】
また、本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして実施されてもよい。コンピュータ可読媒体は、電磁搬送波を含め、コンピュータシステムによって後から読取ることができるデータを記憶できるデータ記憶装置であれば、どのようなものに存在してもよい。コンピュータ可読媒体の例には、ハードディスク、ネットワーク接続記憶装置(NAS)、リードオンリーメモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープおよび他の光学式データ記憶装置および非光学式データ記憶装置などがある。また、コンピュータ可読媒体は、コンピュータ可読コードが分散式に記憶されて、実行されるように、ネットワークに結合されたコンピュータシステムを介して分散されてもよい。上記に、本発明を明確に理解できるように多少詳細に記載したが、添付の特許請求の範囲内で変更例または変形例を実施できることは明らかである。したがって、本実施形態は例示的なものであり、制限するものではなく、本発明は本明細書に記載されている詳細な事項に限定されず、添付の特許請求の範囲およびその均等物の範囲内で変更されてもよい。
【背景技術】
【0001】
テレビゲーム業界は、長年にわたり多くの変化を遂げてきた。コンピュータの処理能力の向上とともに、テレビゲームの開発者らも、このような処理能力の高度化を利用したゲームソフトウェアを開発してきた。このため、テレビゲームの開発者らは、非常にリアルなゲーム体験となるように高度な演算や数値演算を組み込んだゲームをコーディングしてきた。
【0002】
このようなゲームのプラットフォームの例には、ソニープレイステーション(R)、ソニープレイステーション2(R)(PS2)およびソニープレイステーション3(R)(PS3)があり、これらは共にゲームコンソールの形態で販売されている。周知のように、ゲームコンソールは、モニタ(通常、テレビ受像機)に接続して、ハンドヘルドコントローラを介してユーザインタラクションが可能になるように設計される。
【0003】
ゲームコンソールは、CPU、重いグラフィック演算を処理するためのグラフィックシンセサイザ、ジオメトリ変換を実行するためのベクトル演算ユニット、およびグルーハードウェアと呼ばれるその他のハードウェア、ファームウェア、およびソフトウェアを含む専用の処理ハードウェアで設計されている。ゲームコンソールは、ゲームコンソールを介してローカルでプレイするためのゲームのコンパクトディスクを受け入れるための光ディスクトレイを備えるようにさらに設計される。また、ユーザが、インターネット上で他のユーザと対戦して、または、他のユーザと一緒にインタラクティブにプレイすることができるオンラインゲームも可能である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ゲームを複雑にしてプレーヤの興味を引き付けるために、ゲームおよびハードウェアの製造業者らは、新しい手法を取り入れてさらなるインタラクティビティ、つまり対話性、とコンピュータプログラムとを可能にしようとしてきた。
【0005】
コンピュータゲーム業界においては、ユーザとゲームシステム間のインタラクションを高めるゲームを開発する傾向が広がっている。より質の高いインタラクティブな体験を実現する1つのやり方として、プレーヤの動きをトラッキングして、この動きをゲームの入力として使用するために、ゲームシステムによって移動がトラッキングされる無線ゲームコントローラを使用する方法がある。一般的にいうと、ジェスチャ入力とは、コンピューティングシステム、テレビゲームコンソール、インテリジェント家電などの電子装置を、物体をトラッキングするビデオカメラがキャプチャした何らかのジェスチャに反応させることを指す。
【0006】
しかし、ビデオカメラやその他の電子装置を置いてユーザ入力をトラッキングするのは困難な場合がある。テレビやモニタが大型化しているので、全体像をとらえるには、ユーザはテレビからさらに離れて立つ必要がある。通常、コンソールはテレビの近くに置かれるために、センサの性能が低下してしまう。同様に、ユーザがカメラから離れるときに、トラッキング用ビデオカメラと深度検知用ビデオカメラの性能は低下してしまう。
【0007】
本発明の実施形態は、この状況においてなされたものである。
【課題を解決するための手段】
【0008】
概して、本発明は、ユーザ入力をゲームコンソールに送信するために使用されるベースステーションの移動を略リアルタイムで補償するものである。ある実施形態では、ベースステーションは、ゲームコンソールに関連づけられるコントローラの位置に関する深度データを抽出するために画像データをキャプチャし処理するようにさらに構成されている。
【0009】
コンピュータで実行するコンピュータプログラムとインターフェースする入力デバイスから受信したインタラクティブな通信を処理するための方法が提供されている。コンピュータとインターフェースするベースステーションにおいて、第1入力デバイスと第2入力デバイスとから入力データを受信するステップを含む方法も提供される。第1入力デバイスと第2入力デバイスは、コンピュータプログラムとインタラクティブにインターフェースするために相互に独立して移動可能である。この方法では、ベースステーションを介して第1入力デバイスと第2入力デバイスの位置をトラッキングし、トラッキングした第1入力デバイスと第2入力デバイスの略同一の位置変化が生じたことを特定する。次いで、この方法では、略同一の位置変化を特定するとフラグを設定する。フラグは、コンピュータプログラムとのインタラクティビティの間に取るべきアクションを設定するコンピュータプログラムにより処理される。一例では、ベースステーションは、移動を確認できる慣性センサを含む。移動が確認された場合、フラグが処理されて、コンピュータプログラムで定められたアクションが行なわれる。
【0010】
一実施形態では、ゲームコンソールで実行され、スクリーンに表示されるコンピュータゲームとインターフェースするときにインタラクティブな通信を検出するための方法が開示されている。方法は、第1入力デバイスと第2入力デバイスとから入力と位置とを受信する操作を含む。第1入力デバイスと第2入力デバイスとは、コンピュータゲームとインタラクティブにインターフェースするために、第1ユーザと第2ユーザそれぞれにより独立して移動される。ベースステーションは入力と位置とを第1入力デバイスと第2入力デバイスとから受信し、この入力および位置をゲームコンソールに無線でインターフェースする。方法は、第1入力デバイスと第2入力デバイス両方の略同一位置変化が検出されればコンピュータゲームのインタラクションを表示するスクリーンに示される、第1入力デバイスおよび第2入力デバイス両方の位置を補正する操作をさらに含む。
【0011】
別の実施形態では、テレビゲームをインタラクティブに制御するシステムが開示されている。システムは、ゲームコンソールと、ゲームコンソールから離れた場所に置かれるベースステーションとを含む。ベースステーションは、ベースステーションとゲームコンソール間のインターフェースを可能にする通信回路を有する。ベースステーションは、プレイゾーン内の画像データをキャプチャするためのビデオカメラをさらに有する。システムは、ベースステーションとゲームコンソールの一方または両方とインターフェースされるコントローラをさらに含む。コントローラを含む画像データの分析を利用により、プレイゾーン内のコントローラの移動が決定される。コントローラの移動はゲームコンソールによりテレビゲームのインタラクティブな制御に相関される。
【0012】
さらに別の実施形態では、テレビゲームを制御するためのゲームコンソールとインターフェースするシステムが開示されている。システムは、ゲームコンソールと、ゲームコンソールとインターフェースするベースステーションとを含む。ベースステーションは、ベースステーションとゲームコンソール間のデータを送受信するように構成された処理回路をさらに含む。ベースステーションは、位置データを処理するようにさらに構成されている。システムは、ベースステーションとインターフェースするコントローラをさらに含む。コントローラは、コントローラの移動データを検出し、この移動データをベースステーションへ送信するハードウェアを含む。ベースステーションは、ベースステーションに対するコントローラの相対位置を決定するためにベースステーションからゲームコンソールへと中継されるコントローラの位置データを処理するものであり、コントローラの相対位置が変わると、テレビゲームとのインタラクティブな制御がしやすくなる。
本発明の他の態様は、例示のために本発明の原理を示す添付の図面と併せて、以下の詳細な説明を読めば明らかとなるであろう。
【図面の簡単な説明】
【0013】
【図1】本発明の一実施形態による、ベースステーション、ゲームコンソールとともにコントローラを操作するユーザ、およびモニタを含むシーンを例示的に示した図。
【図2A】本発明の一実施形態による、コントローラの例示的略図。
【図2B】本発明の一実施形態による、コントローラの別の例示的略図。
【図3A】本発明の一実施形態による、ベースステーションの例を示した図。
【図3B】本発明の一実施形態による、ベースステーションの例を示した図。
【図3B−1】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図3B−2】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図3B−3】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図3B−4】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図3B−5】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図3C】本発明の一実施形態による、ベースステーションのハードウェアを例示的に示した図。
【図4】本発明の一実施形態による、スクリーンの例示的上面図。
【図5】本発明の一実施形態による、距離測定から絶対深度測定への変換を示した図。
【図6A】本発明の一実施形態による、ベースステーションの水平移動の検出法を示した図。
【図6B】本発明の一実施形態による、ベースステーションの水平移動の検出法を示した図。
【図6C】本発明の一実施形態による、テレビゲームのインタラクティブな制御を示した図。
【図6D】本発明の一実施形態による、ベースステーション内のカメラを用いてキャプチャしたインタラクティブ制御の画像データの図。
【図7】本発明の一実施形態による、エンターテイメントシステムにおける各種要素のブロック図。
【図8】本発明の一実施形態による、コントローラの位置を決定するために用いられうるハードウェアとユーザインターフェースの図。
【図9】本発明の一実施形態による、命令の処理に利用されうる付加的ハードウェアの図。
【図10】本発明の一実施形態による、シーンA〜シーンEと、インターネットを介してサーバ処理に接続されているゲームクライアントとインターフェース中のそれぞれのユーザA〜ユーザEを例示的に示した図。
【発明を実施するための形態】
【0014】
コンピュータプログラムとインターフェースする入力デバイスからのインタラクティブな通信を処理するための方法およびシステムが開示されている。方法は、コンピュータとインターフェースするベースステーションにおいて、第1入力デバイスと第2入力デバイスとから入力データを受信するステップを含む。ベースステーションは、有線あるいは無線であってよい。各入力デバイスは、1人のユーザによって把持されてもよく、この場合は1つの入力デバイスがそれぞれの手に把持される。あるいは、2人以上の別々のユーザが1つの入力デバイスを把持してもよい。第1入力デバイスと第2入力デバイスとは、コンピュータプログラムとインタラクティブにインターフェースするために、相互に独立して移動可能である。
【0015】
一実施形態では、コンピュータプログラムはコンピュータゲームプログラムである。しかし、他の実施形態では、コンピュータプログラムは汎用オフィスプログラム、エンターテイメントプログラム、あるいは特殊用途プログラムであってよい。、
実施形態によれば、この方法ではベースステーションを介して第1入力デバイスと第2入力デバイスの位置をトラッキングする。
【0016】
例えば、各入力デバイスはベースステーションと通信し、それぞれの位置を知らせるようにするか、データを与えてそれぞれの位置を確認する。入力デバイスの位置は、入力デバイスからデータを受信するベースステーションから位置データを受信し、その後、(ゲームコンソールなどの)コンピュータで処理されるようにしてもよい。いずれの実施形態でも、第1入力デバイスおよび第2入力デバイスの、トラッキングされた位置における略同一の位置変化を特定するために、位置をトラッキングする必要がある。
【0017】
この方法は、略同一の位置変化を特定後にフラグを設定するように構成されている。フラグは、コンピュータプログラムとのインタラクティビティの間に取るべきアクションを設定するコンピュータプログラムにより処理される。一例では、ベースステーションは移動を確認できる慣性センサを含む。移動が確認されれば、フラグは、コンピュータプログラム(あるいはゲームプログラム)において定められているアクションを取るように処理される。
【0018】
他の実施形態では、ベースステーション内には画像データをキャプチャするためのカメラが設けられており、該画像データは、入力デバイスの位置を特定するために用いられる。さらに別の実施形態では、入力デバイスとベースステーション間の超音波通信を利用して入力デバイスの位置が決定される。以下に各種の例を図面を参照しながら説明する。
【0019】
図1は、本発明の一実施形態による、ベースステーション101、ゲームコンソール108とともにコントローラ102を操作するユーザ104、およびモニタ106を含むシーンを例示している。モニタ106は、ゲームコンソール108からのビデオ出力を表示する。ユーザ104は、コントローラ102とベースステーション101とにより、モニタ106に表示される映像を介してゲームコンソール108とインタラクトする。一実施形態では、モニタ106は、ゲームコンソール108からの音声出力の再生も可能なテレビである。他の実施形態では、ゲームコンソール108からの音声出力が複数のスピーカによって再生され、仮想のマルチメディア体験が作り出される。ベースステーション101は、プレイゾーン110でゲームコンソール108とコントローラ102間の通信を行う。
【0020】
ベースステーションを利用することで、プレイゾーン110がコンソール108から離れて画定される。プレイゾーン110をコンソール108から離して設ける利点としては、ベースステーション内のセンサをユーザ104に近づけることができる点が挙げられるが、これに限定されない。ベースステーションにより、シーン100全体を移動可能なコントローラへのデータ送受信が可能なセンサ用モバイルプラットフォームが設けられる。ベースステーションは可動性なので、センサをコンソールから離し、ユーザと、関連するコントローラとに近づけることができる。ベースステーションとコントローラとが非常に近接することで、コントローラの移動の検出が改善され、さらに、インタラクティビティが高まる。一実施形態では、ベースステーションはユーザ104に視覚フィードバックおよび音声フィードバックを送る。また、これを利用して、シーン100においてコ
ントローラ102の位置が決定される。
【0021】
一実施形態では、コントローラ102はブルートゥース(R)やIEEE802.11の仕様書で定義されているプロトコルのうちの1つ(これらに限定されない)などの無線通信プロトコルによりベースステーションと通信する。別の実施形態では、ベースステーション101とコントローラ102間は、赤外光または赤外光と無線通信プロトコルとの組合せにより通信される。図1はコントローラ102を持つ一人のユーザ104だけを示しているが、ベースステーション101は複数のユーザからの複数のコントローラからのユーザ入力の受信と処理とが可能である。ベースステーション101は、同様の無線通信プロトコルを用いてゲームコンソール108と通信することができる。さらに、ある実施形態では、有線接続によってベースステーション101とゲームコンソール108間の通信が実現されうる。
【0022】
ユーザ104の、コントローラ102への入力は、ある実施形態の場合はベースステーション101により受信される。ベースステーション内のコンピュータのハードウェアは、ユーザ入力がゲームコンソール108へ中継される前にユーザ入力を処理する。他の実施形態では、ベースステーション101はコンピュータのハードウェアを含んでおらず、ユーザ入力はベースステーション101からゲームコンソール108へ中継される。他の実施形態では、ベースステーション101は、ユーザ入力がゲームコンソール108へ中継される前にユーザー入力の一部を処理するコンピュータのハードウェアを含む。一実施形態では、ベースステーション101は、シーン100においてコントローラ102をトラッキングできる。
【0023】
図2Aは、本発明の一実施形態による、コントローラ102の例示的略図である。コントローラ102は、コントローラ102に関連づけられたハードウェア112を含む。ハードウェア112によりシーンにおけるコントローラの移動が検出される。例えば、一実施形態では、3次元空間におけるコントローラ102の移動はハードウェア112により検出される。同様に、ハードウェア112は、コントローラのロール、ピッチ、ヨーの検出も可能である。一実施形態では、ハードウェア112は、3つのジャイロスコープ、3つの加速度計、および3つの磁力計を含む。そのような実施形態では、加速度計により重力方向が得られ、さらに、ピッチとロールに対する絶対参照が得られる。同様に、磁力計はヨーに対する絶対参照を与える。
【0024】
ジャイロスコープ、加速度計、および磁力計の組合せより収集されるデータにより、コントローラ102の相対位置を決定することができる。コントローラ102の他の実施形態では、ハードウェアは様々なセンサの組み合わせを利用することができる。この検討されたジャイロスコープ、加速度計、および磁力計の特定の組合せは、他の組合せも可能であることから、限定的なものと解釈すべきではない。図示している実施形態では、ハードウェア112はコントローラ102に埋め込まれるか一体化されて例示されている。しかし、他の実施形態では、オブジェクトの動作を検出をできるようにするために、モジュラアタッチメントによってハードウェア112がオブジェクトに付加される。
【0025】
図2Bは、本発明の一実施形態による、別のコントローラ102を例示的に示したものである。コントローラ102は、ハードウェア112を含み、さらに、超音波送信機154と超音波受信機152に加えて超音波のアコースティックチャンバ150を含む。超音波送信機とエミッタとを実装することにより、超音波エコーロケーションを用いて、コントローラの位置を更に得ることができる。超音波エミッタと受信機とを実装したコントローラ102の実施形態は、エミッタと受信機とを適切に機能させることができるように、適切な外観の特徴を備えて構成されるものである。
【0026】
図2Aと2Bとに図示したそれぞれの実施形態では、コントローラ102は、ベースステーションとの通信を可能にする無線ハードウェアをさらに含む。無線ハードウェアにより、コントローラ102をベースステーションと関連づけることができる。複数のコントローラがベースステーションと関連づけられる実施形態では、ベースステーションとの信頼性の高い通信を確実に行うために、各種コントローラは様々に異なる無線周波数を使用しうる。複数のコントローラからの信号をベースステーションからの信号と区別するために他の技術を使用してもよく、また、提供されている特定の例を限定的に解釈すべきではない。さらに、無線ハードウェアは、ハードウェア112からのデータをベースステーション101に送信する。
【0027】
図3Aおよび図3Bは、本発明の実施形態による、ベースステーション101の一例である。ベースステーション101は、コントローラの移動を検出するためのハードウェアやセンサを含むゲームコンソールに関連づけられたポータブルデバイスである。ハードウェアは、各ユーザと各ユーザのそれぞれのコントローラに非常に近づけて置くことができるので、ベースステーション101内に動作検出ハードウェアがあることは有利である。ゲームコンソールは、ユーザがコントローラを操作する場所から比較的遠く離れた棚やラックに置かれることが多い。ベースステーションからゲームコンソールを離すことにより、動作検出センサをコントローラに非常に近づけることができる。センサとコントローラとが非常に近いことで、動作検出の分解能が向上し、さらに、動作検出が向上するのでユーザインタラクティビティが高まり、より充実したゲーム体験を与えることができる。さらに、ベースステーションは、ベースステーションがゲームコンソールから離れている状態で、視覚フィードバックと音声フィードバックとがユーザに送られる、別の領域として機能しうる。
【0028】
図3Aでは、ベースステーション101は、エレメント200をコーナに備えたベーシックボックスとして図示されている。そのような実施形態では、ベースステーション101は、床またはゲームコンソールとユーザ間の面に置かれる。一実施形態では、エレメント200は、すりガラスや透明ガラス、あるいは半透明のプラスチックなどの材料から作られる。これにより、エレメント200は、光と組み合わせることで、ライトパイプやライトチューブとして機能することができ、ユーザに視覚フィードバックを送ることができる。他の実施形態では、エレメント200は、視覚フィードバックを送るための小型の逆光式液晶ディスプレー(LCD)アレイである。ある実施形態では、光とエレメント200との組み合わせにより、ゲームプレイ中に発生するイベントに基づいて視覚フィードパックを送ることができる。他の実施形態では、エレメント200は、ベースステーションに対するユーザの位置に基づいて視覚フィードバックを送ることができる。図3Aに示す実施形態は、エレメント200の方向や位置についての限定とみなされるべきではない。他の実施形態では、複数のエレメント200をベースステーションの周りにリング状に配置することができる。さらに別の実施形態では、複数のエレメント200を複数のパターンで配置してもよいし、ベースステーション101の全側面がエレメント200であってもよい。
【0029】
図3Bに、ベースステーション101の別の例示的実施形態を示す。本実施形態もまたユーザに視覚フィードバックを送るためのエレメント200を含む。エレメント200は球体202に含まれており、これは、基部(ベース)206に取り付けられているアーム204に取り付けられているものである。図3Bに示す実施形態は、限定的に解釈されるべきものではなく、また、球体202を他の3次元の形状体に置き換えることができる。各種実施形態では、アーム204を短くすることができる。これによりベース206上方の球体202の高さを調整することができる。球体202の高さが調整可能なことで、基準面の較正に対応することができる。他の実施形態では、球体202はジンバル上のアーム204に取り付けられており、これにより、ユーザは、アーム204の端部の球体202の方向を調整することができる。
【0030】
ベースステーション101に回路を有する図3Aと図3Bとに示すベースステーション101の実施形態では、加速度計、ジャイロスコープ、および磁力計(これらに限定されない)等のハードウェアからのデータに基づいて基準面が確立されうる。基準面を利用して、この基準面に対するコントローラの移動が、各コントローラに関連づけられるハードウェアからのデータ測定値に基づいて決定されうる。ベースステーション101の他の実施形態では、光を利用した基準面を確立するうえで、ユーザインタラクションが役立つ。例えば、球体202を含む各実施形態では、球体202の高さと方向により、ベースステーションに関連付けられるコントローラの相対的位置を決定するために利用されうる基準面を確立することができる。
【0031】
図3Aおよび3Bを参照すると、両方に図示されているベースステーション101の実施形態では、エレメント200には、プレイゾーン内の1以上のコントローラの画像をキャプチャする一台以上のカメラが含まれ、1以上のコントローラの相対運動を決定するようにしてもよい。ベースステーション101の1台以上のカメラは、エレメント200内だけ内蔵される訳ではない。図3B−1および3B−2は、本発明の各実施形態による、複数のカメラ位置を備えたベースステーションの別の各実施形態を示す。図3B−1は、ベースステーション101の上部のドーム(半球体)に配置されたカメラ226を含む。カメラ226は、ベースステーション101全体にわたる画像データをキャプチャするように一定の間隔を置いて配置されている。図3B−2では、カメラ226は、エレメント200から離れた領域に設置されて図示されている。図3B−3、3B−4、および3B−5は、エレメント200から離れたカメラ226の様々な位置を示したベースステーション101の別の実施形態である。
【0032】
加えて、図3Bに示す実施形態では、球体202の高さを調節すると、ベースステーション101内に取り付けられた1台以上のカメラを、プレイゾーンのモニタリングを行うように配置することができる。ベースステーション101は、ベースステーションを動作させるための付加的センサやプロセッサを含むベースステーションハードウェア208をさらに含む。
【0033】
図3Cは、本発明の一実施形態による、ベースステーションハードウェア208を例示的に示したものである。ベースステーションハードウェア208は、バッテリ232、無線機212と通信するコントローラポジションプロセッサ210、音声プロセッサ214、画像プロセッサ216、超音波送信機240と超音波受信機242に結合された超音波プロセッサ238、および光コントローラ218を含む。ベースステーションハードウェア208は、動作検出ハードウェア236および無線機212と通信するベースステーションポジションプロセッサ234をさらに含む。
【0034】
バッテリ232は任意に設けられ、ベースステーションの無線の実施形態で使用される。他の実施形態では、ベースステーションはケーブルを使用してゲームコンソールに結合される。ケーブルには複数の導線が含まれており、これにより、ベースステーションはゲームコンソールと通信し、ゲームコンソールからの電力を使用することができるようになる。一実施形態では、コントローラポジションプロセッサ210とベースステーションポジションプロセッサ234とはカスタマイズされた特定用途向け集積回路(ASIC)であり、サウンドプロセッサ214、画像プロセッサ216および超音波プロセッサ238はデジタルシグナルプロセッサ(DSP)である。
【0035】
無線機212はアンテナ220に接続されており、ベースステーションの無線の実施形態では、無線機212は、ゲームコンソールへのデータを送受信する。無線機212はさらに、関連するコントローラへデータを送信し、関連するコントローラからのデータを受信するようにも構成されている。コントローラから受信されるデータにはハードウェアからのデータが含まれる。コントローラからのデータはコントローラポジションプロセッサ210へ送信され、ベースステーションに対するコントローラの位置を決定するように使用される。各種の実施形態では、無線機212は、ブルートゥースなどの標準無線通信プロトコルによる1つの無線機を含みうる。他の実施形態では、無線機212は、様々な無線通信プロトコルで動作する複数の無線機を含みうる。例えば、ベースステーションの無線の実施形態では、ベースステーションとゲームコンソール間ではwi−fi通信が用いられ、ベースステーションと関連するいずれのコントローラ間ではブルートゥースが用いられうる。
【0036】
ある実施形態では、ベースステーションは音声プロセッサに接続されたスピーカ224とマイクロフォン222とを含む。他の実施形態では、マイクロフォン222は、マイクロフォンアレイに配列された複数のマイクロフォンを代表するマイクロフォンである。指向性マイクロフォンアレイを利用して、ゲームプレイを向上させるようにしてもよい。音声認識ソフトウェアと組み合わせられた指向性マイクロフォンにより、ユーザによるゲームプレイを制御するための音声命令の発行が可能となった。スピーカ224はベースステーション内に収容された複数のスピーカを代表するスピーカでありうる。スピーカ224により、ベースステーションは、ユーザへ音声フィードバック送ることができる。音声フィードバックはゲーム内のイベントに基づいて送られてもよいし、ゲームコンソールへのノーティフィケーション、例えば通知やメッセージがフィードバックに含まれていてもよい。ゲーム内のイベントの音声フィードバックの例としては、プレーヤがゲーム内の蒸気に近づくとベースステーションから生じる水が流れる音、が挙げられる。ゲームコンソールのメッセージの例としては、ベースステーションが、コントローラのバッテリを交換する必要あり、との可聴音や音声命令を発しているもの、が挙げられる。
【0037】
光コントローラ218は、コントローラポジションプロセッサ210からのデータを受信し、ライトアレイ228やライトエミッタ230を介してユーザに視覚フィードバックを送る。一実施形態では、ライトアレイ228は、一連の発光ダイオード(Light Emitting Diode:LED)である。他の実施形態では、ライトアレイは、1以上の液晶ディスプレイ(LCD)である。ライトアレイ228は、ゲーム内のイベントに基づいて、ユーザに視覚フィードバックを送ることができる。ライトアレイ228を用いた、有効なゲーム内の視覚フィードバックの例としては、プレーヤに関連づけられる光の色を変化させることが挙げられる。別の実施形態では、ライトアレイ228は、ゲームコンソールステータスの伝達に使用されうる。ゲームコンソールステータスの例としては、ゲームコンソールに関連するインターネット接続の性能を示した棒グラフが挙げられる。同様に、ライトアレイにはチャットリクエストやeメール通知が表示されうる。ベースステーションのライトアレイ228は、メインディスプレイ上のゲームとは関連し得ないことから、ゲームコンソールのステータス情報を表示するには好ましい場所である。さらに、ベースステーションをユーザに近づけて置くことができるので、ライトアレイは、ゲームコンソールに直接取り付けられた小型の表示装置よりも認識しやすくなる。
【0038】
さらに別の実施形態では、ライトアレイ228はコントローラステータスの伝達に使用される。コントローラステータスの例としては、コントローラのバッテリを交換する必要がある、との視覚メッセージが挙げられる。コントローラステータスの別の例としては、ある色をある特定のコントローラと関連づけ、コントローラがベースステーションの周りを移動すると、この色をライトアレイ228に移すこと、が挙げられる。例えば、2人のユーザがゲームをしている場合に、ライトコントローラはライトアレイ228の半分を使って第1ユーザ用に第1の色を発光させ、第2ユーザ用に第2の色を発光させることができる。さらに、ポジションプロセッサからのデータに基づいて、第1ユーザ用に発光させるライトアレイ228の半分は、第1ユーザに実際に一番近い側の半分であってよい。
【0039】
画像プロセッサ216は、カメラ226からの画像データを処理する。ベースステーション周辺からの画像データを得るために、ベースステーションの外側の様々な位置に複数のカメラが実装される。ある実施形態では、カメラ226は、プレイゾーン内の画像をキャプチャするのに必要なカメラの台数を最小にするために広角レンズを使用する。一実施形態では、カメラ226は、その視覚においてオブジェクトの深度データをキャプチャする深度カメラである。深度データと画像データとは、画像プロセッサ216により処理される。また、ある実施形態では、処理済の画像データがコントローラポジションプロセッサ210へ送られて、ベースステーションに対するコントローラの位置を決定するようにする。
【0040】
画像プロセッサデータは、ベースステーションポジションプロセッサ234へも送られ、ベースステーションが押しやられたかあるいは移動されたかが判断される。動作検出ハードウェア236は、ベースステーションポジションプロセッサ234へさらなるデータを送り、ベースステーションの相対運動を決定するようにする。一実施形態では、動作検出ハードウェアは、加速度計、ジャイロスコープおよび磁力計を含む。一実施形態では、ベースステーションポジションプロセッサ234が画像データを分析してオブジェクトの同一シフト、あるいは複数のオブジェクトが同様にシフトされていることが検出されると、ベースステーションの移動が検出される。一実施形態では、ベースステーションポジションプロセッサ234は、動作検出ハードウェア236からデータを受信する。動作検出ハードウェアからのデータがベースステーションの移動を示す閾値を超えるときに、ベースステーションポジションプロセッサ234は、画像プロセッサ216からの画像データの分析をトリガし、分析を開始させる。画像データの分析のトリガした後に、このトリガイベント前後の画像データの分析を行い、画像内のエレメントを同時にシフトさせるようにする。図示していないが、ベースステーションハードウェアは、画像プロセッサからの画像データを記録またはバッファリングするために利用されるメモリを含む。トリガイベントが発生すると、バッファリングされた画像データへのアクセス及び分析がなされ、ベースステーションが押しやられたか移動されたかが判断される。
【0041】
一実施形態では、ベースステーションポジションプロセッサ234は、プレイゾーン内の複数のプレーヤの相対位置を利用することができる。そのような実施形態では、各プレーヤに対するそれぞれのコントローラの相対位置を利用して、トリガイベント後の同時のシフトを決定するようにしてもよい。他の実施形態では、プレイゾーン内にプレーヤが1人しかいない場合は、ベースステーションプロセッサ234は、プレイゾーン外のアイテムに関連付けられた視覚データとともにコントローラの位置を利用することができる。プレイゾーン内のプレーヤが1人である別の実施形態では、ベースステーションプロセッサは、動作検出ハードウェアからのデータと1人のユーザの画像データに依存する。上述の実施形態は限定を目的としたものではなく、他の実施形態においても、画像データと動作検出データの両方を用いてベースステーションの動作を決定するための方法を含むことができる。
【0042】
図4は、本発明の一実施形態によるスクリーン400の例示的上面図である。スクリーンは、ディスプレイ106に表示されるインタラクティブなコンピュータプログラムを実行中のゲームコンソール108を含む。プレーヤAは、コントローラC1を使用して、ゲームコンソール108により実行されているコンピュータプログラムとインタラクションを行う。同様に、プレーヤBとプレーヤCとは、それぞれのコントローラC2とC3とを使用して、コンピュータプログラムとインタラクトする。本実施形態では、ベースステーション101は、ゲームコンソール108と間隔を設けて配置されており、コントローラC1、C2およびC3からのユーザ入力をゲームコンソール108へ中継している。さらに、ベースステーション101内のカメラ226は、プレーヤA、プレーヤB、およびプレーヤCの画像データをそれぞれのコントローラC1、C2およびC3とともにキャプチャしている。本実施形態では、キャプチャされたベースステーションからの画像データを利用して、それぞれのコントローラからベースステーション101までの距離、距離dz1、dz2、およびdz3が決定される。他の実施形態では、コントローラから発せられた超音波放射を利用して距離dz1、dz2およびdz3が決定される。さらに他の実施形態では、超音波放射とベースステーションのカメラからキャプチャした深度データとの組合せからdz1、dz2およびdz3が決定される。さらに他の実施形態では、コントローラは、画像データから特定される特定の幾何学的形状体を含む。一実施形態では、コントローラは一体化された楕円体を含み、これはカメラ226が認識できるものである。従って、楕円体がカメラに近づくと、カメラ226によりキャプチャされた画像データ内の円形のピクセル領域が増加し、また、逆の場合も同じである。
【0043】
一実施形態では、キャプチャされた画像データを利用して、コントローラの2次元の位置が決定される。この位置は、プレイゾーンなどの3次元空間での平面や直線における一点を決定する2つの座標xおよびy、(x、y)、により特定される。x値とy値とを示すために水平位置と垂直位置とが用いられる場合がある。さらに、原点からの角度やベクトル値などの、他の種類の座標が用いられる。同様に、3次元空間内では、空間での一点を特定するために様々な座標系を利用することができ、これには例えば、x、yおよびz直交座標や、xおよびy座標プラス原点からのベクトル、あるいは、原点からの2つの角度とベクトル、が含まれる。
【0044】
ベースステーション101のマイクロフォンは、プレイゾーン内の音声データをキャプチャする。一実施形態ではコントローラC1、C2およびC3から生じる音声がマイクロフォンにより受信される、片方向通信が利用される。超音波通信により、プレーヤの体験が干渉されずに済む。一実施形態では、コントローラは音声が生じるスピーカを含み、音声キャプチャデバイスはプレイゾーン内の音声を検出するための複数のマイクロフォンを含む。一実施形態では、プレイゾーン外からの不要なノイズをキャプチャしないためのフィルタリング技術により、プレイゾーンのフォーカスがクリアになる。さらに、一つあるいは複数のマイクロフォンが、超音波通信で使用されない周波数をフィルタリングし、不要な音源からの干渉をさらに減らすことができる。さらにまた、プレイエリア近くの面から反射される音により、音声通信が間違って読み取られてしまう場合がある。一実施形態では、コンピューティングシステム102は、指向性フィルタ、音響分析などの音響反射により引き起こされてしまう間違った読み取りをしないためのメカニズムを含む。
【0045】
別の実施形態では、コントローラと画像キャプチャデバイス106間は双方向通信であり、コントローラまたは音声デバイスのいずれか一方が超音波メッセージを送信または受信する。さらにまた別の実施形態では、片方向通信は、各コントローラに超音波マイクロフォンを備え、音声エミッタデバイスをディスプレイ近くに設けた状態で、反対方向に流れる。
【0046】
超音波通信は、音声信号がその目的地に到着するまでの時間を分析することにより、コントローラと音声キャプチャデバイス間の距離、つまりdzを測定するために用いられる。さらに、受信した信号の位相コヒーレンスを分析して、より正確に距離を決定するようにしてもよい。片方向通信が利用される場合は、音声が音源から目的地へと移動するための時間を正確に測定するために、正確なクロック同期が必要とされる。当業者であれば、クロック同期を得るための適切な周知の方法が簡単に分かるであろう。例えば、クロックを同期させるために、コントローラとコンピューティングデバイス間のWiFi(商標)チャネルを使用することができる。Zalewskiに付与された(参照のために本明細書に組み入れられている) 米国特許第5,991,693号は、本発明を利用したトラッキングモードを提供している。
【0047】
キャプチャした画像データに基づいて得られた点(x、y)と、距離dzとにより、3次元のキャプチャエリア内での一点が決定する。dzは第3次元と呼ばれることもある。その理由は、dzは、既述のx軸とy軸に直交のz軸内の値に変換されうるからである。z測定値はキャプチャエリア内の深度と称される。
【0048】
図5は、本発明の一実施形態による、距離測定から絶対深度(z)測定への変換を示した図である。dzは、座標が(x0、y0、z0)の、コントローラ102からベースステーション101への距離である。画像キャプチャデータにより、コントローラ102の水平座標(x1)と垂直座標(y1)が求められる(不図示)。コントローラ102のz1値を求める場合は、音声キャプチャデバイスを中心とした半径dz1の球体とともに、3次元空間で(x1、y1)のいずれの点により定義される直線を交差させる。この直線は、以下の方程式により定義される。
【0049】
この方程式は、全体の歪みがない空間を想定する。他の実施形態は画像キャプチャデバイスからの斜視図による、想定される歪みを補償する。球体は、以下の方程式により定義される。
【0050】
球体の方程式をxをx1に、yをy1に置換すると、深度値z1に対応するz値を返す。方程式は2つのz値を返すであろうが、プレイゾーン内には1つの値しか存在しない点に留意されたい。
【0051】
上述した計算は超音波送信に基づいて深度値を決定する方法を開示する。他の実施形態では、ベースステーションに関連づけられるカメラによりキャプチャされる画像データを利用して、ベースステーションからのコントローラの距離や深度を決定することができる。例えば、複数のカメラを利用するベースステーションの実施形態では、少なくとも2台のカメラからの画像データに基づいて、コントローラの深度の三角測量を決定することができる。既述したように、他の形態では、コントローラに関連づけられる特徴的なオブジェクトのピクセルの相対数から深度データを決定することもできる。さらに他の実施形態では、ベースステーションのカメラは深度カメラであってよい。上述の実施形態は、限定を目的としたものでなく、実施形態の各種組み合わせにより、コントローラの、ベースステーションへの距離を決定することができる。
【0052】
図6Aおよび図6Bに、本発明の一実施形態による、ベースステーション101の水平移動の検出法を示す。図6Aは、シーン600の上面図とベースステーションビュー600−1とを含む。シーン600では、ベースステーション101はゲームコンソール108とユーザAおよびBとの間に存在する。ユーザAはコントローラC1を操作し、ユーザBはコントローラC2を操作して、ゲームコンソール108により実行されているコンピュータプログラムとインタラクトする。ベースステーションビュー600−1では、ベースステーション101と関連づけられるカメラによりキャプチャされたシーン600を示す。従って、ユーザAとユーザBの位置はシーン600のビューとは逆になっている。図6Aおよび図6Bに例示するベースステーションビューはユーザAおよびユーザbの画像を示しているが、ベースステーションに関連づけられる付加的カメラにより、プレイゾーン110内のさらなる深度データがキャプチャされうる。
【0053】
図6Bに図6Aの位置からのベースステーション101の移動を示す。ベースステーション101はゲームコンソールのユーザの比較的近くに配置することができるポータブルデバイスなので、ベースステーションが押しやられたり誤って移動(誤ってキックされるなどして)されてしまうことがある。例えば、ベースステーション101が移動してしまう原因としては、ユーザAかユーザBのいずれか一方によるゲームプレイが乱暴なことや、ペットがベースステーション101を押しのけてしまうことが挙げられるが、これらに限定されることはない。上述したように、ベースステーション101の移動は、ベースステーション101に関連づけられる動作検出ハードウェアにより検出されうる。加速時計、慣性センサ、空間トラッキングシステムなどの多くの方法で動作検出を決定することができる。
【0054】
図6Bに示すように、ベースステーション101は距離x分右へシフトしている。よって、ベースステーションビュー602−1に示すように、キャプチャしたユーザAおよびユーザBの画像データは、ユーザAおよびユーザBの略同一の位置の変更を示す。図6Aおよび図6Bは画像データを利用して示されているが、他の実施形態では、両ユーザや2つの別々のコントローラ(入力デバイスなど)の、略同時のシフトを検出することができる。
【0055】
別の実施形態では、一ユーザがそれぞれの手に入力デバイスを把持していてもよい。よって、ユーザがコンピュータプログラムとインターフェースしていたときにベースステーションが移動したかどうかを決定することが必要となりうる。よって、一方法においては、コンピュータで実行されるコンピュータプログラムとインターフェースする入力デバイスから受信されるインタラクティブな通信の処理を含みうる。コンピュータは単一のコンピュータ、ネットワークコンピュータ、ゲームコンソール、ネットワークゲームコンソール、あるいはその組合せであってもよい。この方法には、コンピュータとインターフェースするベースステーションにおいて、第1入力デバイスと第2入力デバイスとから入力データを受信するステップが含まれる。第1入力デバイスと第2入力デバイスとは、コンピュータプログラムとインタラクティブにインターフェースするために相互に独立して移動可能である。この方法は、ベースステーションを介して第1入力デバイスと第2入力デバイスの位置をトラッキングするステップを含む。他の実施形態によりトラッキングが処理されてもよいことを理解されたい。
【0056】
例示的実施形態では、第1入力デバイスおよび第2入力デバイスの位置が以下のステップによりトラッキングされる。(a)第1入力デバイスと第2入力デバイスとから位置を受信し、(b)ベースステーションにおいて、第1入力デバイスおよび第2入力デバイスから受信したデータから位置データを計算し、(c)第1入力デバイスおよび第2入力デバイスあるいはベースステーションから受信したデータに基づいて、コンピュータにおいて位置データを計算し、(d)第1入力デバイスおよび第2入力デバイスの位置を一部決定し、ベースステーションの位置を一部決定し、
(e)第1入力デバイスおよび第2入力デバイス、ベースステーション、およびコンピュータから得たデータに基づいて位置データを一部決定する。位置は、処理が行われる場所に応じて、画像処理、超音波データ処理、入力ジョイスティック動作、ピッチ−ロール−ヨーデータ、有線または無線入力、あるいは入力ボタン選択のうちの一つ以上により処理されうる。
【0057】
方法は、トラッキングされた、第1入力デバイスおよび第2入力デバイスの位置の、略同一の位置の変化を特定するように構成されている。略同一の位置の変化は検出可能な大きさを有する。本例示的方法によれば、略同一の位置の変化が特定されるとフラグが設定される。本文中で使用されているように、フラグは、コード、ビット、ビットパターン、例外、オブジェクト、コードトリガなどの多くの形態で表示されうる。フラグの形態は、フラグを受信するプログラムやコードに応じて変わる。例えば、プログラムがコンピュータゲームであれば、コンピュータゲームのプログラム命令はフラグを読み取り、そのフラグについて知得した情報に応じて処理すべきことを決定することができる。ある場合では、フラグは、他のプログラムからもコミュニケートされ、これは、システムにローカルに、またはリモートシステムに、あるいは、ネットワークを介したコンピュータになされる。
【0058】
一実施形態では、フラグは、コンピュータプログラムとのインタラクティビティの間に操作するように設定されたコンピュータプログラムにより処理される。コンピュータプログラムがコンピュータゲームであれば、略同一の位置変化を差し引く、第1入力デバイスおよび第2入力デバイス両方を補正する、コンピュータゲームを中断する、コンピュータゲームを巻き戻す、コンピュータゲームをリスタートする、あるいは、ベースステーションの移動を知らせる、のうちの一つのアクションが取られうる。
【0059】
コンピュータプログラムがコンピュータゲーム以外であれば、アクションとしては、プログラムの環境には通常の形態のものが取られてよい。例えば、ユーザがブラウザとインターフェースしており、テキストを選択するために入力デバイスが利用されていれば、フラグによりテキストが除外されてしまうか、最終のインタラクティブアクションがなされる前の状態にユーザを戻す。従って、コンピュータプログラムとのインタラクションの間に発生するアクションは、コンピュータプログラムの形態に基づいて事前に設定されている。
【0060】
またさらに、一実施形態では、略同一の位置の変化が発生する大きさが閾値を越えれば、ベースステーションで移動が発生したことを示すようにシステムをプログラムすることができる。さらに別の実施形態では、ベースステーションが移動したかどうかを決定するための回路と論理とをベースステーション自体が備えていてもよい。ベースステーションに内蔵された移動検出器や慣性センサなどによりこの決定がなされてもよい。
【0061】
従って、ベースステーションは、移動の発生時を決定し、さらに、この移動が大きさを超えているかどうかを決定するためにプログラムされうる。従って、ある実施形態では、2種類の異なる大きさと、2種類の異なる閾値レベルとがチェックされうる。従って、フラグに関わるアクションを発生させる前に、入力デバイスの略同一の位置の変化が生じたかどうかがまず決定され、さらに、ベースステーション自体が移動したかどうかがチェックされる。
【0062】
各種実施形態では、ユーザ入力から略同一の位置変化の分が差し引かれてベースステーションの移動を補正するようにしてもよい。他の実施形態では、プレイゾーン内のオブジェクトの、同時で略同一のシフトだけに依存すると、ベースステーションの移動が誤って決定されてしまうことがある。従って、一実施形態では、ベースステーションの移動を検出するための、同時のシフトに対するコントローラデータは、動作検出ハードウェアが閾値を超えるベースステーションの移動を検出した後に比較される。略同一の位置変化に対するコントローラデータを調べるにあたって、閾値が超過するのを待つことは必須ではなく、これは任意のものであると考えらるべきである。
【0063】
プレイゾーン内でオブジェクトまたはコントローラの略同一のシフトが検出されると、ベースステーションをリアルタイムで再調整しゲームプレイに対する影響を最小限に抑えるようにしてもよい。一実施形態では、2映像フレーム以内か、わずかな映像フレームで再調整されうる。通常、映像は一秒につき約30フレームで表示されるので、この再調整期間は取るに足らないか気付かないほどに短くてよいものである。従って、図6Aおよび図6Bに示すように、ベースステーションが右にシフトされたことをベースステーションが検出すれば、ベースステーションは、ユーザ入力をコントローラC1およびC2に変更することで補償し、ゲームプレイを中断しないようにする。
【0064】
図6Aおよび図6Bは、ベースステーションの、ユーザAおよびユーザBに対する側方向の移動を示す。上述したように、これらの実施形態は両手に1つのコントローラを持つ単一ユーザにも適用される。ユーザが2人の場合の例を続けると、ベースステーションは、ユーザAおよびユーザBに近づくように、あるいは、ユーザAおよびユーザBから離れるように移動あるいは押しやられる。この場合、光深度カメラ又は超音波センサからの深度データを利用してベースステーションの移動を決定するようにしてもよい。
【0065】
図6Cに、本発明の一実施形態によるテレビゲームのインタラクティブな制御を示し、図6Dに、本発明の一実施形態による、ベースステーション内のカメラを利用したインタラクティブな制御をキャプチャした画像データを示す。図6Cでは、ユーザAは動作M1と、これに続く動作M2においてコントローラC1を操作し、スケートアバタ650を制御する。動作M1とM2とは、方向と大きさの両方を含むことから、ベクトルである。この場合、動作の大きさとは、動作が完了する速度である。本実施形態では、動作M1は、スケートアバタ650の速度を高めるために用いられる。動作M2は、傾斜台652の最上部でスケートアバタ650をジャンプさせるように用いられる。ゲームコンソール108はゲームをレンダリングしており、モニタ106に表示されるビデオ信号を出力する。
【0066】
図6DのフレームAは、動作M1が行われるときの、キャプチャされたコントローラC1の中間画像データを示す。時間t1と時間t2においてのコントローラC1の2つの画像が図示されており、時間t2は動作M1が完了する前の時間である。画像を分析すると、時間t2でのコントローラC1の大きさは、時間t1でのコントローラC1の大きさよりも大きいことが明らかである。つまり、時間t1とt2の間に、コントローラC1がベースステーション101に近づいたということである。フレームBは、時間t3での動作M1の完了を示す。明瞭化のために、フレームBは時間t1とt3においてのコントローラC1を示す。一実施形態では、画像データ、特にピクセルデータの分析を利用して、コントローラC1がベースステーションに近づいたか、離れたかを決定するようにしてもよい。コントローラC1を構成するピクセル数が、時間t5よりも時間t3において多ければ、コントローラC1はベースステーション101に近づいたということである。コントローラC1を構成するピクセル数がt3において少なければ、コントローラC1はベースステーションから離れたということである。ベースステーションに向かう距離の相対的変化を決定することと、図6Cのスケートアバタの速度変化とは相関しうる。
【0067】
フレームCは、動作M1の開始時である時間t1における画像データとt4における動作M2の完了時における画像データとを比較したものである。ベースステーション内のカメラによりキャプチャされた画像データにおいて、時間t1、t2、t3及びt4間のコントローラC1の相対的大きさを比較することにより、ゲームコンソールはコントローラの移動と相関させて、モニタ106に表示されるテレビゲームとインタラクトできるようになる。画像データと深度データとに基づくユーザ入力により、空間内のベクトル移動をあらゆるテレビゲーム制御にマッピングすることができるので、図6Cと図6Dに示す制御をあらゆるテレビゲームに応用することができる。例えば、ボクシングシミュレーションや魚釣りシミュレーション、ドライビングシミュレーションのスロットル制御であってもこの制御を用いることができる。上記に挙げられた特定の例は例としてみなされるべきであり、限定するものとみなされるべきではない。
【0068】
図7は、本発明の一実施形態による、ゲームコンソール108、ベースステーション101、およびコントローラ102のブロック図である。本実施形態において、また、簡素化のために、ゲームコンソール108はプロセッサ、メモリ領域、クロック、および通信インターフェースを備えて示されている。通信インターフェースは、ベースステーションとコントローラへの無線通信用の無線通信(RF)インターフェースを含む。他の実施形態では、コントローラは、ベースステーションのみと通信している。そのような実施形態では、ベースステーションとゲームコンソール間の通信プロトコルはWi−Fiであり、コントローラとベースステーション間の通信はブルートゥースプロトコルを利用する。上述のように、ベースステーションは、画像キャプチャリング、音声の送受信(本実施形態では、超音波)および発光体を含む、他の通信方法を含みうる。
【0069】
ベースステーション101の様々な通信プロトコルは、コンピューティングシステム内のそれぞれのコントローラに接続する。メモリ領域は、実行中のプログラム、画像処理領域、音声処理領域、およびクロック同期領域を含む。実行中のプログラムは、画像処理プログラム、音声処理プログラム、クロック同期プログラムなどを含む。これらのプログラムは対応するメモリ領域を使用し、例えば、画像データを含む画像処理領域、超音波通信データを含む音声処理領域、および、遠隔装置との同期のために使用されるクロック同期領域、などが挙げられる。
【0070】
プレーヤ環境領域でのコントローラの構成についての実施形態がいくつか図示されている。コントローラAは、上述したような多くの特徴を備えた「フル装備の(フルロードの)」コントローラである。コントローラAは、ゲームコンソール108と同期するために使用されるクロック同期(Clock Synchronization(CS))モジュールと、超音波データを受信するための音声受信機(Sound Receiver(SRx)、超音波データを送信するための音声送信機(Sound Transmitter(SRx))ゲームコンソール108とのWiFi通信のためのWiFi(WF)モジュール、コントローラのフロントおよび/またはサイド間へ音声を伝達するためのアコースティックチャンバ(Acoustic Chamber(AC))、画像データをキャプチャするための、デジタルビデオカメラなどの画像キャプチャ(Image Capture(IC))デバイス、および、ゲームコンソール108において、画像処理モジュールからの画像認識を容易にするための、赤外線スペクトルまたは可視スペクトルでの発光体(Light Emitter(LE))を含む。
【0071】
図8は、本発明の一実施形態による、コントローラの位置を決定するために使用されうるハードウェアおよびユーザインターフェースを示す。図22は本発明の一実施形態による、3次元コントローラの位置決めシステムを実装可能なコンソールであるソニー(R)プレイステーション3(R)エンターテインメントデバイスのシステムアーキテクチャ全体を模式的に示す。システムユニット140は、システムユニット1400に接続可能な様々な周辺機器を備える。システムユニット1400は、セルプロセッサ(Cellプロセッサ)1428、Rambus(R)ダイナミックランダムアクセスメモリ(XDRAM)ユニット1426、専用のビデオランダムアクセスメモリ(VRAM)ユニット1432を有するリアリティシンセサイザ(Reality Synthesizer)グラフィックユニット1430、およびI/Oブリッジ1434を備える。また、システムユニット1400は、I/Oブリッジ1434を介してアクセス可能な、ディスク1440aから読み出すためのブルーレイ(R)ディスクBD−ROM(R)(Blu Ray(R)Disk BD−ROM(R))光ディスクリーダ1440、および着脱可能なスロットインハードディスクドライブ(HDD)1436も備える。任意選択で、システムユニット1400は、同様にI/Oブリッジ1434を介してアクセス可能な、コンパクトフラッシュ(登録商標)メモリカード、メモリスティック(R)メモリカードなどを読み出すためのメモリカードリーダ1438も備える。
【0072】
また、I/Oブリッジ1434は、6つのユニバーサルシリアルバス(Universal Serial Bus(USB))2.0ポート1424、ギガビットイーサネット(登録商標)ポート1422、IEEE 802.11b/g無線ネットワーク(Wi−Fi)ポート1420、および最大7つのブルートゥース(R)接続に対応可能なブルートゥース(R)無線リンクポート1418にも接続している。
【0073】
動作時に、I/Oブリッジ1434は、1台以上のゲームコントローラ1402〜1403からのデータを含む、全ての無線、USB、およびイーサネット(登録商標)データを処理する。例えば、ユーザがゲームをプレイ中に、I/Oブリッジ1434はブルートゥースリンクを介してゲームコントローラ1402〜1403からデータを受信して、これをセルプロセッサ1428に転送し、セルプロセッサ1428が適宜ゲームの現在の状態を更新する。
【0074】
また、無線、USB、およびイーサネット(登録商標)の各ポートを介して、ゲームコントローラ1402〜1402のほかに、他の周辺機器も接続することが可能となる。このような周辺機器には、例えば、リモコン1404、キーボード1406、マウス1408、ソニープレイステーションポータブル(R)エンターテイメントデバイスなどのポータブルエンターテイメントデバイス1410、アイトーイ(R)(EyeToy(R))ビデオカメラ1412などのビデオカメラ、マイクロフォンヘッドセット1414、および、マイクロフォン1415などがある。
このため、これらの周辺機器は、原則としてシステムユニット1400に無線で接続されうる。例えば、ポータブルエンターテイメントデバイス1410はWi−Fiアドホック接続を介して通信し、マイクロフォンヘッドセット1414はブルートゥースリンクを介して通信しうる。
【0075】
これらのインターフェースを提供することにより、プレイステーション3デバイスは、デジタルビデオレコーダ(DVR)、セットトップボックス、デジタルカメラ、ポータブルメディアプレーヤ、VoIP電話、携帯電話、プリンタ、およびスキャナなどの他の周辺機器と場合によっては互換となりうる。
【0076】
さらに、USBポート1424を介して旧式メモリカードリーダ1416をシステムユニットに接続することができ、プレイステーション(R)デバイスまたはプレイステーション2(R)で用いられていたタイプのメモリカード1448の読み出しが可能となる。
【0077】
本実施形態では、ゲームコントローラ1402〜1403は、ブルートゥースリンクを介してシステムユニット1400と無線通信するように動作可能である。しかし、その代わりに、ゲームコントローラ1402〜1403が、USBポートに接続されてもよく、これにより、ゲームコントローラ1402〜1403のバッテリに充電するための電力も供給する。ゲームコントローラ1402〜1403は、メモリ、プロセッサ、メモリカードリーダ、フラッシュメモリなどの永続的なメモリ、LEDや赤外光などの発光体、超音波通信用のマイクロフォンおよびスピーカ、アコースティックチャンバ、デジタルカメラ、内部クロック、ゲームコンソールに面している球形部分などの認識可能な形状、および、ブルートゥース(R)、WiFi(商標)などのプロトコルを使用した無線通信、などを含むことができる。
【0078】
図1〜10で説明したように、ゲームコントローラ1402は、両手で使用するように設計されたコントローラであり、ゲームコントローラ1403は片手用のコントローラである。1つ以上のアナログジョイスティックおよび従来のコントロールボタンに加えて、ゲームコントローラは、3次元の位置決定に敏感である。このため、従来のボタンやジョイスティックコマンドに加えて、あるいはこれらの代わりに、ゲームコントローラのユーザによるジェスチャや動作がゲームへの入力として変換されうる。任意選択で、プレイステーション(商標)ポータブルデバイスなどの他の無線対応の周辺機器をコントローラとして使用することができる。プレイステーション(商標)ポータブルデバイスの場合、追加のゲーム情報または制御情報(例えば、制御命令あるいはライブの数)が該デバイスの画面に提示されうる。他の代替的または補助的な制御装置が使用されてもよく、これには、ダンスマット(不図示)、ライトガン(不図示)、ハンドルおよびペダル(不図示)、あるいは、即答クイズゲームのための1つまたは複数の大型のボタン(これも図示なし)などの特注品のコントローラなどがある。
【0079】
また、リモコン1404も、ブルートゥースリンクを介してシステムユニット1400と無線通信するように動作可能である。リモコン1404は、ブルーレイ(商標)ディスクBD−ROMリーダ1440の操作、およびディスク内容の閲覧のために適した制御を備える。
【0080】
ブルーレイ(商標)ディスクBD−ROMリーダ1440は、従来の記録済みCD、記録可能CD、およびいわゆるスーパーオーディオCDのほか、プレイステーションデバイスおよびプレイステーション2デバイスと互換のCD−ROMを読み出すように動作可能である。また、リーダ1440は、従来の記録済みDVDおよび記録可能DVDのほか、プレイステーション2デバイスおよびプレイステーション3デバイスと互換のDVD−ROMを読み出すように動作可能である。さらに、リーダ1440は、従来の記録済みブルーレイディスクおよび記録可能ブルーレイディスクのほか、プレイステーション3デバイスと互換のBD−ROMを読み出すように動作可能である。
【0081】
システムユニット1400は、リアリティシンセサイザグラフィックユニット1430を介して、プレイステーション3デバイスによって生成またはデコードされた音声およびビデオを、音声コネクタおよびビデオコネクタ経由で、ディスプレイ1444および1つ以上のスピーカ1446を備えた表示および音声出力デバイス1442(モニタまたはテレビ受像機など)に提供するように動作可能である。音声コネクタ1450は、従来のアナログ出力およびデジタル出力を備える一方、ビデオコネクタ1452は、コンポーネントビデオ、S−ビデオ、コンポジットビデオ、および1つ以上のハイデフマルチメディアインタフェース(High Definition Multimedia Interface:HDMI)の出力などを種々備えうる。したがって、ビデオ出力は、PALまたはNTSC、あるいは720p、1080iまたは1080pの高解像度などのフォーマットであってもよい。
【0082】
音声処理(生成、デコードなど)はセルプロセッサ1428によって実行される。プレイステーション3デバイスのオペレーティングシステムは、ドルビー(R)5.1サラウンドサウンド、ドルビー(R)シアターサラウンド(Dolby Theatre Surround)(DTS)、およびブルーレイ(R)ディスクからの7.1サラウンドサウンドのデコードに対応している。
【0083】
本実施形態では、ビデオカメラ1412は、1つの電荷結合素子(CCD)、LEDインジケータ、およびハードウェアベースのリアルタイムデータ圧縮およびエンコード装置を備え、圧縮ビデオデータが、システムユニット1400によるデコードのために、イントラ画像ベースのMPEG(Motion Picture Expert Group)標準などの適切なフォーマットで送信されるようになる。カメラのLEDインジケータは、例えば不利な照明条件を示す適切な制御データをシステムユニット1400から受け取ると、発光するように配置されている。ビデオカメラ1412の実施形態は、USB、ブルートゥースまたはWi−Fiの通信ポートを介して、システムユニット1400にさまざまな方法で接続しうる。ビデオカメラの実施形態は、1つ以上の関連するマイクロフォンを備えており、音声データを送信することができる。ビデオカメラの実施形態では、CCDは、高解像度のビデオキャプチャに適した分解能を備えうる。使用時に、ビデオカメラによってキャプチャされた画像が、例えば、ゲーム内に取り込まれるか、またはゲームの制御入力として解釈されうる。別の実施形態では、カメラは、赤外光の検出に適した赤外線カメラである。
【0084】
一般に、システムユニット1400の通信ポートの1つを介して、ビデオカメラまたはリモコン等などの周辺機器とのデータ通信がうまく行われるように、デバイスドライバ等の適切なソフトウェアを提供する必要がある。デバイスドライバ技術は公知であり、ここで詳細に説明しないが、当業者であればデバイスドライバまたは同様のソフトウェアインタフェースが、記載する本実施形態で必要とされうることを理解するであろう。
【0085】
図9に、本発明の一実施形態による、命令の処理に使用されうる付加的ハードウェアを示す。セルプロセッサ1428は、メモリコントローラ1560およびデュアルバスインタフェースコントローラ1570A、Bを含む外部入出力構造、パワープロセッシングエレメント(Power Processing Element)1550と呼ばれるメインプロセッサ、シナジスティックプロセッシングエレメント(Synergistic Processing Element(SPE))1510A〜Hと呼ばれる8基のコプロセッサ、要素相互接続バス(Element Interconnect Bus)1580と呼ばれる上記のコンポーネントに接続している環状データバス、の4つの基本コンポーネントを備えたアーキテクチャを有する。プレイステーション2デバイスのエモーションエンジン(Emotion Engine)は6.2ギガフロップスであるのに対し、Cellプロセッサの総浮動小数点演算性能は、218ギガフロップスである。
【0086】
パワープロセッシングエレメント(PPE))1550は、3.2GHzの内部クロックで動作し、双方向同時マルチスレッディングPower1470準拠のPowerPCコア(PPU)1555をベースにしている。PPE1550は、512kBのレベル2(L2)キャッシュと、32kBのレベル1(L1)キャッシュとを備える。PPE1550は、クロックサイクルごとに8つのシングルポジション操作、いわゆる単一位置操作ができ、これは、3.2GHzで25.6ギガフロップスに相当する。PPE1550の主な役割は、演算作業負荷の大部分を処理するシナジスティックプロセッシングエレメント1510A〜Hのコントローラとして機能することにある。動作時に、PPE1550はジョブキューを保持し、シナジスティックプロセッシングエレメント1510A〜Hのジョブをスケジュールしており、その進捗を監視する。したがって、各シナジスティックプロセッシングエレメント1510A〜Hはカーネルを実行し、その役割は、ジョブを取り出して、これを実行し、PPE1550と同期されることにある。
【0087】
各シナジスティックプロセッシングエレメント(SPE)1510A〜Hは、シナジスティックプロセッシングユニット(Synergistic Processing Unit(SPU))1520A〜Hおよびメモリフローコントローラ(Memory Flow Controller(MFC))1540A〜Hをそれぞれ備え、MFC1540A〜Hは、ダイナミックメモリアクセスコントローラ(Dynamic Memory Access Controller(DMAC)1542A〜H、メモリ管理ユニット(Memory Management Unit(MMU)1544A〜H、およびバスインタフェース(不図示)をそれぞれ備える。各SPU1520A〜Hは3.2GHzでクロック供給され、原則として4GBまで拡張可能な256kBのローカルRAM1530A〜Hを備えたRISCプロセッサである。各SPEは、理論的には単精度処理性能で25.6ギガフロップスを示す。1つのSPUは、1クロックサイクルに、4つの単精度浮動小数点数、4つの32ビット数、8つの16ビット整数または16の8ビット整数を処理することができる。同じクロックサイクルで、メモリ操作も実行することができる。SPU1520A〜HはシステムメモリXDRAM1426に直接アクセスしない。SPU1520A〜Hが作成した64ビットアドレスがMFC1540A〜Hに渡され、MFC1540A〜Hが、自身のDMAコントローラ1542A〜Hに対して、要素相互接続バス1580およびメモリコントローラ1560を介してメモリにアクセスするように指示する。
【0088】
要素相互接続バス(EIB)1580は、セルプロセッサ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(ギガバイト/秒)の理論上のピーク帯域幅に相当する。
【0089】
メモリコントローラ1560は、ラムバス社(Rambus Incorporated)によって開発されたXDRAMインターフェース1562を備える。このメモリコントローラは、25.6GB/sの理論上のピーク帯域幅で、Rambus XDRAM1426とインターフェースする。
【0090】
デュアルバスインタフェース1570A、Bは、Rambus FlexIO(R)システムインタフェース1572A、Bを備える。このインターフェースは、それぞれ8ビット幅の12のチャネルに編成されており、このうち、5の経路が受信用、7つの経路が送信用である。これにより、セルプロセッサと、コントローラ170Aを介してI/Oブリッジ1434間、およびコントローラ170Bを介してリアリティシミュレータ(Reality Simulator)グラフィックユニット200間で、理論上のピーク帯域幅が62.4GB/s(送信36.4GB/s、受信26GB/s)が得られる。セルプロセッサ1428によってリアリティシミュレータグラフィックユニット1430に送信されるデータには、通常、表示リストが含まれ、これは、頂点を描画したり、ポリゴンにテクスチャを貼り付けたり、照明条件を指定するなどための一連のコマンドである。
【0091】
実施形態では、現実世界のユーザをより正確に特定し、アバターまたはシーンのアクティビティを管理するために深度データのキャプチャが行われてもよい。物体は、人物が把持している物体であっても、人物の手であってもよい。本明細書においては、「深度カメラ」および「3次元カメラ」との用語は、距離情報や深度情報のほかに、2次元のピクセル情報も得ることができるカメラを指す。例えば、距離情報を得るために、深度カメラは制御された赤外光を利用してもよい。別の例示的な深度カメラは、2台のスタンダードカメラを使用して距離情報の三角測量を行う複数のカメラ構成であってよい。同様に、「深度感知デバイス」なる用語は、距離情報のほかに2次元のピクセル情報も得ることができるデバイスを指す。
【0092】
3次元画像の最近の進歩により、リアルタイムでのインタラクティブなコンピュータアニメーションの実現性を高める可能性が広がっている。特に、新たな「深度カメラ」により、通常の二次元ビデオ画像に加えて、3次元ビデオ画像をキャプチャしマッピングすることができる。新たな深度データを使用して、本発明の実施形態は、コンピュータで生成されたオブジェクトをリアルタイムで他のオブジェクトの背後を含むビデオシーン内の様々な位置に配置することができる。
【0093】
さらに、本発明の実施形態は、リアルタイムでのインタラクティブなゲーム体験をユーザにさせることができる。例えば、ユーザは、コンピュータが生成したさまざまなオブジェクトとリアルタイムでインタラクションを行うことができる。さらに、ユーザのゲーム体験を高めるためにビデオシーンをリアルタイムで変更することができる。例えば、コンピュータが生成したコスチュームを、ユーザの服にはめ込んだり、コンピュータが生成した光源を利用して、ビデオシーン内に仮想の影を表示させることができる。このため、本発明の各種実施形態と深度カメラを使用して、ユーザは自分のリビングルームでインタラクティブなゲーム環境を体験することができる。深度カメラは、通常のカメラと同様に、ビデオ画像を含む複数のピクセルに対する2次元データをキャプチャする。これらの値はピクセルのカラー値であり、通常は、各ピクセルの赤、緑、青(RGB)の値である。このようにして、カメラによってキャプチャされたオブジェクトは、モニタ上で2次元のオブジェクトとして現れる。
【0094】
さらに本発明の実施形態は分散型の画像処理構成についても考察している。例えば、本発明は、1つの場所(CPUなど)や2つの場所(CPUと他の1つの素子など)で行われるキャプチャ画像および表示画像の処理に限定されない。例えば、入力画像処理は、処理を実行することができる関連のCPU、プロセッサまたは装置において容易に行うことができ、基本的には、画像処理の全てを、相互接続システム全体に分散させることができる。このため、本発明は、特定の画像処理ハードウェア回路および/またはソフトウェアに限定されない。また、本明細書に記載した実施形態は、一般的なハードウェア回路および/またはソフトウェアの特定の組み合わせに限定されず、処理コンポーネントによって実行される命令の特定のソースにも限定されない。
【0095】
図10は、本発明の一実施形態による、シーンA〜シーンEと、インターネットを介して処理サーバに接続されているゲームクライアントやゲームコンソール1002とインターフェースしているそれぞれのユーザA〜Eの例示的な図である。上述のように、ゲームクライアントは、ユーザがインターネットを介してサーバアプリケーションや処理サーバへの接続を可能にするデバイスである。ゲームクライアントにより、ユーザは、ゲーム、映画、音楽、および写真など(これらに限定されない)のオンラインエンターテインメントコンテンツにアクセスしこれらを再生することができる。さらに、ゲームクライアントは、VOIP、テキストチャットプロトコル、およびeメールなどのオンライン通信アプリケーションへアクセスできるようにする。
【0096】
ユーザはコントローラを介してゲームクライアントとインタラクトする。ある実施形態では、コントローラはゲームクライアント固有のコントローラであり、他の実施形態では、コントローラはキーボードとマウスの組み合わせであってよい。一実施形態では、ゲームクライアントは音声および画像信号を出力し、モニタ/テレビおよび関連づけられる音声環境によりマルチメディア環境を生成することができる独立型のデバイスである。例えば、ゲームクライアントは、薄型のクライアント、内蔵型PCIエクスプレスカード、外付けPCIエクスプレスデバイス、エクスプレスカード(ExpressCard)デバイス、内蔵型、外付け、あるいは無線USBデバイス、ファイヤーワイヤー(Firewire)デバイスなどでありうるが、これらに限定されない。他の実施形態では、ゲームクライアントは、DVR、ブルーレイプレーヤ、DVDプレーヤ、あるいはマルチチャネルレシーバと一体化されている。
【0097】
図10のシーンAでは、ユーザAは、ゲームクライアント1002Aとペアにされたコントローラ102を使用して、モニタ106に表示されるクライアントアプリケーションとインタラクトする。同様に、シーンBでは、ユーザBは、ゲームクライアント1002Bとペアにされたコントローラ102を使用して、モニタ106に表示される別のクライアントアプリケーションとインタラクトする。シーンCは、ユーザがゲームクライアント1002Cからの友人リストあるいはバディリストとゲームが表示されているモニタを見ているユーザCの背後からのビューを示す図である。図10は、一実施形態における一つの処理サーバモジュールを図示しているが、多くの処理サーバモジュールが世界中で存在する。各処理サーバモジュールは、ユーザセッションコントロール、共有/通信論理、ユーザのジオロケーション(地理位置情報)、ロードバランス処理サービスのためのサブモジュールを含む。さらに、処理サーバモジュールは、ネットワーク処理と分散型記憶装置とを含む。
【0098】
ゲームクライアント1002が処理サーバモジュールに接続するときに、ユーザセッションコントロールを利用してユーザ認証を行うようにしてもよい。認証されたユーザは、関連する視覚化された分散型記憶装置と視覚化されたネットワーク処理とを有することができる。ユーザの視覚化された分散型記憶装置の一部として記憶されうるアイテムの例としては、ゲーム、ビデオおよび音楽などの購入された媒体が挙げられるが、これらに限定されない。さらに、複数のゲームのゲームステータスや、個々のゲームのカスタマイズ設定、ゲームクライアントの一般的な設定をセーブするために分散型記憶装置を利用してもよい。一実施形態では、処理サーバのユーザジオロケーションモジュールを用いて、ユーザと、ユーザのそれぞれのゲームクライアントのジオロケーションが決定される。複数の処理サーバモジュールの処理命令と地理的位置とに基づいてパフォーマンスを最適化するように、共有/通信論理とロードバランス処理サービスとによりこのユーザの地理的位置が用いられてもよい。ネットワーク処理とネットワーク記憶装置の一方あるいは両方を視覚化することにより、十分に活用されていない処理サーバモジュールへゲームクライアントからの処理タスクを動的にシフトさせることができる。従って、ロードバランスを利用して、記憶装置からのリコールと、処理サーバモジュールとゲームクライアント間のデータ送信とに関連づけられるレイテンシーを最小限に抑えるようにしてもよい。
【0099】
図10に示しているように、処理サーバモジュールは、例えば、サーバアプリケーションAおよびサーバアプリケーションBを有する。処理サーバモジュールは、サーバアプリケーションX1とサーバアプリケーションX2によって示されるような複数のサーバアプリケーションに対応することができる。一実施形態では、処理サーバは、クラスタコンピューティングアーキテクチャに基づくものであり、このアーキテクチャにより、クラスタ内の複数のプロセッサはサーバアプリケーションを処理することができる。別の実施形態では、サーバアプリケーションを処理するために、様々なタイプのマルチコンピュータプロセッシングスキームが適用される。これにより、複数のクライアントアプリケーションと、対応のサーバアプリケーションとを実行する、より多くのゲームクライアントに対応することができるように、処理サーバを増やすことができる。他の形態では、要求の多いグラフィック処理やゲーム、ビデオ圧縮、あるいはアプリケーションの複雑さにより求められる、増加するコンピューティング命令に対応するように処理サーバを増やすことができる。一実施形態では、処理サーバモジュールは、サーバアプリケーションを介して処理の大部分を実行する。これにより、グラフィックプロセッサ、RAM、および汎用プロセッサなどの比較的高額な要素を中央に位置決めすることができ、ゲームクライアントのコストを削減することができる。処理されたサーバアプリケーションデータは、インターネットを介して対応するゲームクライアントに送り戻され、モニタに表示されるようにする。
【0100】
シーンCは、ゲームクライアントと処理サーバモジュールにより実行される例示的なアプリケーションを示す。例えば、一実施形態では、ゲームクライアント1002Cにより、ユーザCは、ユーザA、ユーザB、ユーザD、およびユーザEを含む友人リストあるいはバディリスト(buddy list:BL)1020を生成し、これを見ることができる。図示しているように、シーンCでは、ユーザCは、モニタ106Cでリアルタイム画像か、それぞれのユーザのアバタのいずれか一方を見ることができる。処理サーバでは、ゲームクライアント1002Cのそれぞれのアプリケーションが、ユーザA、ユーザB、ユーザDおよびユーザDのそれぞれのゲームクライアント1002により実行される。ゲームクライアントBが実行中のアプリケーションを処理サーバが認識しているので、ユーザAの友人リストにユーザBがプレイ中のゲームを表示することができる。さらにまた、一実施形態では、ユーザAは、ユーザBが直接みているゲームビデオを直接見ることができる。これは、ユーザBに対する処理済のサーバアプリケーションデータを、ゲームクライアントBだけでなく、ゲームクライアントAに送信するだけでできるようになる。
【0101】
友人からの映像を見ることができるだけでなく、この通信アプリケーションにより、友人間でリアルタイム通信ができるようになる。上述した例に適用しているように、これにより、ユーザAはユーザBのリアルタイム映像を見ている間に、激励したりヒントを与えることができる。一実施形態では、双方向リアルタイム音声通信は、クライアント/サーバアプリケーションを介して確立される。別の実施形態では、クライアント/サーバアプリケーションはテキストでのチャットを可能にする。さらに別の実施形態では、クライアント/サーバアプリケーションは、音声やスピーチをテキストに変換して友人のスクリーンに表示する。シーンDは、ゲームコンソール1010Dとインタラクト中のユーザDを、シーンEは、ゲームコンソール1010Eとインタラクト中のユーザEを示す。各ゲームコンソール1010Dと1010Eは、処理サーバモジュールに接続されており、この処理サーバモジュールがゲームコンソールとゲームクライアント両方に対するゲームプレイを調整しているネットワークを示す。
【0102】
上記の実施形態を考慮に入れて、本発明が、コンピュータシステムに記憶されているデータを使用する、各種のコンピュータ実装操作を使用してもよい点を理解すべきである。これらの操作には、物理量の物理的な操作を必要とする操作が含まれる。この物理量は通常、記憶、転送、結合、比較などの操作が可能な電気信号または磁気信号の形を取るが、必ずしもこれらに限定されない。さらに、実行される操作は、生成、特定、決定または比較などと呼ばれることが多い。
【0103】
上記した発明は、携帯式デバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電気製品、ミニコンピュータ、メインフレームコンピュータなど、他のコンピュータシステム構成によって実施されてもよい。また、本発明は、分散コンピューティング環境で実施されてもよく、このような環境では、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される。
【0104】
また、本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして実施されてもよい。コンピュータ可読媒体は、電磁搬送波を含め、コンピュータシステムによって後から読取ることができるデータを記憶できるデータ記憶装置であれば、どのようなものに存在してもよい。コンピュータ可読媒体の例には、ハードディスク、ネットワーク接続記憶装置(NAS)、リードオンリーメモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープおよび他の光学式データ記憶装置および非光学式データ記憶装置などがある。また、コンピュータ可読媒体は、コンピュータ可読コードが分散式に記憶されて、実行されるように、ネットワークに結合されたコンピュータシステムを介して分散されてもよい。上記に、本発明を明確に理解できるように多少詳細に記載したが、添付の特許請求の範囲内で変更例または変形例を実施できることは明らかである。したがって、本実施形態は例示的なものであり、制限するものではなく、本発明は本明細書に記載されている詳細な事項に限定されず、添付の特許請求の範囲およびその均等物の範囲内で変更されてもよい。
【特許請求の範囲】
【請求項1】
コンピュータで実行されるコンピュータプログラムとインターフェース中の入力デバイスから受信されるインタラクティブな通信を処理するための方法であって、
前記コンピュータとインターフェースされるベースステーションにおいて、第1入力デバイスと第2入力デバイスとから入力データを受信するステップを含み、前記第1入力デバイスと第2入力デバイスとは前記コンピュータプログラムとインタラクティブにインターフェースするために、相互に独立して移動可能なものであって、
前記ベースステーションを介して、前記第1入力デバイスと第2入力デバイスの位置をトラッキングするステップと、
トラッキングされた、前記第1入力デバイスと第2入力デバイスの略同一の位置の変化を特定するステップと、
前記略同一の位置の変化を特定後にフラグを設定するステップと、を含み、前記フラグは前記コンピュータプログラムとのインタラクティビティの間に発生するアクションをセットするようコンピュータプログラムにより処理される、方法。
【請求項2】
前記コンピュータプログラムとのインタラクティビティの間に発生させる前記アクションは、前記コンピュータプログラムの態様に応じて事前設定されている、請求項1記載の方法。
【請求項3】
前記ベースステーションにおいて、前記ベースステーションの移動の大きさを決定する慣性感知操作を処理するステップをさらに含む、請求項1記載の方法。
【請求項4】
前記ベースステーションの移動の大きさが閾値を越える場合に、前記フラグの処理により前記アクションがセットされる、請求項3記載の方法。
【請求項5】
前記コンピュータプログラムはコンピュータゲームであり、前記セットされるアクションは、前記略同一の位置の変化を差し引く、前記第1入力デバイスおよび第2入力デバイスの両方を補正する、コンピュータゲームを中断する、コンピュータゲームを巻き戻す、コンピュータゲームをリスタートする、あるいは、ベースステーションの移動を知らせる、のうちの1つである、請求項2記載の方法。
【請求項6】
前記略同一の位置の変化は大きさを有し、前記大きさが閾値レベルを超えた場合、前記フラグは前記アクションをセットするように処理され、前記位置のトラッキングが前記ベースステーションを介して行われることから、前記閾値レベルを超える前記大きさは、前記ベースステーションの移動を示すものである、請求項1記載の方法。
【請求項7】
前記第1入力デバイスと第2入力デバイスの前記位置のトラッキングには、
(a)前記第1入力デバイスと第2入力デバイスとから位置を受信するステップ、
(b)ベースステーションにおいて、前記第1入力デバイスおよび第2入力デバイスから受信したデータから位置データを計算するステップ、
(c)前記第1入力デバイスおよび第2入力デバイスあるいは前記ベースステーションから受信したデータに基づいて、前記コンピュータにおいて位置データを計算するステップ、
(d)前記第1入力デバイスおよび第2入力デバイスの位置を一部決定し、前記ベースステーションの位置を一部決定するステップ、あるいは、
(e)前記第1入力デバイスおよび第2入力デバイス、前記ベースステーション、および前記コンピュータから得たデータに基づいて位置データを一部決定するステップ、
のうちの一つまたはこれらの組合せを含む、請求項1記載の方法。
【請求項8】
前記位置は、画像処理、超音波データ処理、入力ジョイスティック動作、ピッチ−ロール−ヨーデータ、有線または無線入力、あるいは入力ボタン選択、のうちの1つ以上により処理される、請求項7記載の方法。
【請求項9】
前記コンピュータはゲームコンソールであり、前記第1入力デバイスと第2入力デバイスとは、前記ゲームコンソールとさらにインターフェースされる、請求項1記載の方法。
【請求項10】
画像処理は、前記略同一の位置の変化が生じたことを確認するために、前記第1入力デバイスと第2入力デバイスの両方を含む1つ以上のフレームからの画像データを比較するステップを含む、請求項9記載の方法。
【請求項11】
前記ベースステーションは、有線接続か無線接続により前記ゲームコンソールとインターフェースされる、請求項9記載の方法。
【請求項12】
テレビゲームのインタラクティブな制御を行うシステムであって、
ゲームコンソールと、
前記ゲームコンソールから離れた位置に配置されているベースステーションと、を含み、前記ベースステーションは、前記ベースステーションと前記ゲームコンソール間のインターフェースを可能にする通信回路を有しており、前記ベースステーションはさらに、プレイゾーン内で画像データをキャプチャするためのビデオカメラを有しており、さらに、
前記ベースステーションと前記ゲームコンソールの一方あるいは両方とインターフェースを行うコントローラと、を含み、前記コントローラを含む画像データの分析を利用して、前記ゲームコンソールによって前記テレビゲームのインタラクティブな制御に関する前記プレイゾーン内の前記コントローラの移動を決定する、システム。
【請求項13】
前記ベースステーションは、動作検出回路をさらに含み、前記動作検出回路は、前記動作検出回路からのデータを分析するように構成されたベースステーションポジションプロセッサとインターフェースする、請求項12記載のシステム。
【請求項14】
前記ベースステーションポジションプロセッサは、前記動作検出回路からのデータが閾値を超えた場合に、前記ベースステーションの再調整をトリガする、請求項13記載のシステム。
【請求項15】
前記コントローラが前記ゲームコンソールと前記ベースステーションの両方とインターフェースされるときに、前記ベースステーションは、前記コントローラの移動を決定するために、前記画像データを一部分析するための回路をさらに含む、請求項12記載のシステム。
【請求項16】
前記ベースステーションにより一部が分析された前記画像データは、前記画像データの分析を完了するための回路をさらに含む前記ゲームコンソールに送信される、請求項15記載のシステム。
【請求項17】
前記コントローラは、前記画像データを分析するための回路をさらに含むベースステーションとのインターフェースがなされる、請求項12記載のシステム。
【請求項18】
前記ビデオカメラは、前記プレイゾーン内のオブジェクトに対する深度データをキャプチャするようにさらに構成されている、請求項12記載のシステム。
【請求項19】
前記コントローラと前記ベースステーションとはそれぞれ、超音波送信機と超音波受信機をそれぞれ含む、請求項12記載のシステム。
【請求項20】
前記超音波送信機と超音波受信機とは、前記ベースステーションからの前記コントローラの距離を決定する、請求項19記載のシステム。
【請求項21】
テレビゲームを制御するためのゲームコンソールとインターフェースするシステムであって、
ゲームコンソールと、
前記ゲームコンソールとインターフェースされているベースステーションと、を含み、前記ベースステーションは前記ベースステーションと前記ゲームコンソール間でデータを送受信するように構成されている処理回路を有しており、前記ベースステーションは位置データを処理するように構成されているものであって、さらに、
前記ベースステーションとインターフェースするコントローラを含み、前記コントローラは、前記コントローラの移動データを検出して前記移動データを前記ベースステーションへ伝達するためのハードウェアを有しており、前記ベースステーションは前記コントローラの前記位置データを処理し、前記位置データは、前記ベースステーションに対する前記コントローラの相対位置を決定するために、前記ベースステーションから前記ゲームコンソールへと中継されるものであって、前記コントローラの前記相対位置の変化により、前記テレビゲームとのインタラクティブな制御が支援される、システム。
【請求項22】
前記ベースステーションは、前記ゲームコンソールと、ユーザの手に把持されるように構成された前記コントローラとの間に配置される、請求項21記載のシステム。
【請求項23】
前記ベースステーションは、床のスペースに配置され、前記ベースステーションは、超音波を局所的にキャプチャし送信できるプレイゾーンを画定する、請求項21記載のシステム。
【請求項24】
前記ベースステーションは、前記ベースステーションの位置較正を開始するベース同期回路を有する、請求項21記載のシステム。
【請求項25】
前記コントローラは、前記ベースステーションに対する前記コントローラの位置較正を開始するための移動同期回路を有する、請求項21記載のシステム。
【請求項26】
前記ゲームコンソールは、前記ベースステーションに対する位置較正を処理する、請求項24記載のシステム。
【請求項27】
前記ゲームコンソールは、前記ベースステーションの前記位置をモニタリングし、前記ベースステーションの前記位置が、位置変化における閾値を超えたかどうかを検出する、請求項26記載のシステム。
【請求項28】
前記ゲームコンソールは、前記ベースステーションの位置の再較正をトリガする、請求項27記載のシステム。
【請求項1】
コンピュータで実行されるコンピュータプログラムとインターフェース中の入力デバイスから受信されるインタラクティブな通信を処理するための方法であって、
前記コンピュータとインターフェースされるベースステーションにおいて、第1入力デバイスと第2入力デバイスとから入力データを受信するステップを含み、前記第1入力デバイスと第2入力デバイスとは前記コンピュータプログラムとインタラクティブにインターフェースするために、相互に独立して移動可能なものであって、
前記ベースステーションを介して、前記第1入力デバイスと第2入力デバイスの位置をトラッキングするステップと、
トラッキングされた、前記第1入力デバイスと第2入力デバイスの略同一の位置の変化を特定するステップと、
前記略同一の位置の変化を特定後にフラグを設定するステップと、を含み、前記フラグは前記コンピュータプログラムとのインタラクティビティの間に発生するアクションをセットするようコンピュータプログラムにより処理される、方法。
【請求項2】
前記コンピュータプログラムとのインタラクティビティの間に発生させる前記アクションは、前記コンピュータプログラムの態様に応じて事前設定されている、請求項1記載の方法。
【請求項3】
前記ベースステーションにおいて、前記ベースステーションの移動の大きさを決定する慣性感知操作を処理するステップをさらに含む、請求項1記載の方法。
【請求項4】
前記ベースステーションの移動の大きさが閾値を越える場合に、前記フラグの処理により前記アクションがセットされる、請求項3記載の方法。
【請求項5】
前記コンピュータプログラムはコンピュータゲームであり、前記セットされるアクションは、前記略同一の位置の変化を差し引く、前記第1入力デバイスおよび第2入力デバイスの両方を補正する、コンピュータゲームを中断する、コンピュータゲームを巻き戻す、コンピュータゲームをリスタートする、あるいは、ベースステーションの移動を知らせる、のうちの1つである、請求項2記載の方法。
【請求項6】
前記略同一の位置の変化は大きさを有し、前記大きさが閾値レベルを超えた場合、前記フラグは前記アクションをセットするように処理され、前記位置のトラッキングが前記ベースステーションを介して行われることから、前記閾値レベルを超える前記大きさは、前記ベースステーションの移動を示すものである、請求項1記載の方法。
【請求項7】
前記第1入力デバイスと第2入力デバイスの前記位置のトラッキングには、
(a)前記第1入力デバイスと第2入力デバイスとから位置を受信するステップ、
(b)ベースステーションにおいて、前記第1入力デバイスおよび第2入力デバイスから受信したデータから位置データを計算するステップ、
(c)前記第1入力デバイスおよび第2入力デバイスあるいは前記ベースステーションから受信したデータに基づいて、前記コンピュータにおいて位置データを計算するステップ、
(d)前記第1入力デバイスおよび第2入力デバイスの位置を一部決定し、前記ベースステーションの位置を一部決定するステップ、あるいは、
(e)前記第1入力デバイスおよび第2入力デバイス、前記ベースステーション、および前記コンピュータから得たデータに基づいて位置データを一部決定するステップ、
のうちの一つまたはこれらの組合せを含む、請求項1記載の方法。
【請求項8】
前記位置は、画像処理、超音波データ処理、入力ジョイスティック動作、ピッチ−ロール−ヨーデータ、有線または無線入力、あるいは入力ボタン選択、のうちの1つ以上により処理される、請求項7記載の方法。
【請求項9】
前記コンピュータはゲームコンソールであり、前記第1入力デバイスと第2入力デバイスとは、前記ゲームコンソールとさらにインターフェースされる、請求項1記載の方法。
【請求項10】
画像処理は、前記略同一の位置の変化が生じたことを確認するために、前記第1入力デバイスと第2入力デバイスの両方を含む1つ以上のフレームからの画像データを比較するステップを含む、請求項9記載の方法。
【請求項11】
前記ベースステーションは、有線接続か無線接続により前記ゲームコンソールとインターフェースされる、請求項9記載の方法。
【請求項12】
テレビゲームのインタラクティブな制御を行うシステムであって、
ゲームコンソールと、
前記ゲームコンソールから離れた位置に配置されているベースステーションと、を含み、前記ベースステーションは、前記ベースステーションと前記ゲームコンソール間のインターフェースを可能にする通信回路を有しており、前記ベースステーションはさらに、プレイゾーン内で画像データをキャプチャするためのビデオカメラを有しており、さらに、
前記ベースステーションと前記ゲームコンソールの一方あるいは両方とインターフェースを行うコントローラと、を含み、前記コントローラを含む画像データの分析を利用して、前記ゲームコンソールによって前記テレビゲームのインタラクティブな制御に関する前記プレイゾーン内の前記コントローラの移動を決定する、システム。
【請求項13】
前記ベースステーションは、動作検出回路をさらに含み、前記動作検出回路は、前記動作検出回路からのデータを分析するように構成されたベースステーションポジションプロセッサとインターフェースする、請求項12記載のシステム。
【請求項14】
前記ベースステーションポジションプロセッサは、前記動作検出回路からのデータが閾値を超えた場合に、前記ベースステーションの再調整をトリガする、請求項13記載のシステム。
【請求項15】
前記コントローラが前記ゲームコンソールと前記ベースステーションの両方とインターフェースされるときに、前記ベースステーションは、前記コントローラの移動を決定するために、前記画像データを一部分析するための回路をさらに含む、請求項12記載のシステム。
【請求項16】
前記ベースステーションにより一部が分析された前記画像データは、前記画像データの分析を完了するための回路をさらに含む前記ゲームコンソールに送信される、請求項15記載のシステム。
【請求項17】
前記コントローラは、前記画像データを分析するための回路をさらに含むベースステーションとのインターフェースがなされる、請求項12記載のシステム。
【請求項18】
前記ビデオカメラは、前記プレイゾーン内のオブジェクトに対する深度データをキャプチャするようにさらに構成されている、請求項12記載のシステム。
【請求項19】
前記コントローラと前記ベースステーションとはそれぞれ、超音波送信機と超音波受信機をそれぞれ含む、請求項12記載のシステム。
【請求項20】
前記超音波送信機と超音波受信機とは、前記ベースステーションからの前記コントローラの距離を決定する、請求項19記載のシステム。
【請求項21】
テレビゲームを制御するためのゲームコンソールとインターフェースするシステムであって、
ゲームコンソールと、
前記ゲームコンソールとインターフェースされているベースステーションと、を含み、前記ベースステーションは前記ベースステーションと前記ゲームコンソール間でデータを送受信するように構成されている処理回路を有しており、前記ベースステーションは位置データを処理するように構成されているものであって、さらに、
前記ベースステーションとインターフェースするコントローラを含み、前記コントローラは、前記コントローラの移動データを検出して前記移動データを前記ベースステーションへ伝達するためのハードウェアを有しており、前記ベースステーションは前記コントローラの前記位置データを処理し、前記位置データは、前記ベースステーションに対する前記コントローラの相対位置を決定するために、前記ベースステーションから前記ゲームコンソールへと中継されるものであって、前記コントローラの前記相対位置の変化により、前記テレビゲームとのインタラクティブな制御が支援される、システム。
【請求項22】
前記ベースステーションは、前記ゲームコンソールと、ユーザの手に把持されるように構成された前記コントローラとの間に配置される、請求項21記載のシステム。
【請求項23】
前記ベースステーションは、床のスペースに配置され、前記ベースステーションは、超音波を局所的にキャプチャし送信できるプレイゾーンを画定する、請求項21記載のシステム。
【請求項24】
前記ベースステーションは、前記ベースステーションの位置較正を開始するベース同期回路を有する、請求項21記載のシステム。
【請求項25】
前記コントローラは、前記ベースステーションに対する前記コントローラの位置較正を開始するための移動同期回路を有する、請求項21記載のシステム。
【請求項26】
前記ゲームコンソールは、前記ベースステーションに対する位置較正を処理する、請求項24記載のシステム。
【請求項27】
前記ゲームコンソールは、前記ベースステーションの前記位置をモニタリングし、前記ベースステーションの前記位置が、位置変化における閾値を超えたかどうかを検出する、請求項26記載のシステム。
【請求項28】
前記ゲームコンソールは、前記ベースステーションの位置の再較正をトリガする、請求項27記載のシステム。
【図1】
【図2A】
【図2B】
【図3A】
【図3B】
【図3B−1】
【図3B−2】
【図3B−3】
【図3B−4】
【図3B−5】
【図3C】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図6D】
【図7】
【図8】
【図9】
【図10】
【図2A】
【図2B】
【図3A】
【図3B】
【図3B−1】
【図3B−2】
【図3B−3】
【図3B−4】
【図3B−5】
【図3C】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図6D】
【図7】
【図8】
【図9】
【図10】
【公表番号】特表2012−525917(P2012−525917A)
【公表日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2012−509815(P2012−509815)
【出願日】平成22年3月12日(2010.3.12)
【国際出願番号】PCT/US2010/027200
【国際公開番号】WO2010/129093
【国際公開日】平成22年11月11日(2010.11.11)
【出願人】(500551079)ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー (95)
【Fターム(参考)】
【公表日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願日】平成22年3月12日(2010.3.12)
【国際出願番号】PCT/US2010/027200
【国際公開番号】WO2010/129093
【国際公開日】平成22年11月11日(2010.11.11)
【出願人】(500551079)ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー (95)
【Fターム(参考)】
[ Back to top ]