(57)【特許請求の範囲】
【請求項１】
コンピュータで実行されるコンピュータプログラムとインターフェースされる入力デバイスから受信されるインタラクティブな通信を処理するための方法であって、
前記コンピュータとインターフェースされるベースステーションにおいて、第１入力デバイスと第２入力デバイスとから入力データを受信するステップを含み、前記第１入力デバイスと第２入力デバイスとは前記コンピュータプログラムとインタラクティブにインターフェースするために、相互に独立して移動可能なものであって、
前記ベースステーションを介して、前記第１入力デバイスと第２入力デバイスの位置をトラッキングするステップと、
トラッキングされた、前記第１入力デバイスと第２入力デバイスの略同一の位置の変化を特定するステップと、
前記略同一の位置の変化を特定後にフラグを設定するステップと、を含み、前記フラグは前記コンピュータプログラムとのインタラクティビティの間に発生する、前記第１入力デバイスと第２入力デバイスの前記同一の位置の変化を補償するためのアクションをセットするようコンピュータプログラムにより処理される、方法。
【請求項２】
前記コンピュータプログラムとのインタラクティビティの間に発生させる前記アクションは、前記コンピュータプログラムの態様に応じて事前設定されている、請求項１記載の方法。
【請求項３】
前記ベースステーションにおいて、前記ベースステーションの移動の大きさを決定する慣性感知操作を処理するステップをさらに含む、請求項１記載の方法。
【請求項４】
前記ベースステーションの移動の大きさが閾値を越える場合に、前記フラグの処理により前記アクションがセットされる、請求項３記載の方法。
【請求項５】
前記コンピュータプログラムはコンピュータゲームであり、前記セットされるアクションは、前記略同一の位置の変化を差し引く、前記第１入力デバイスおよび第２入力デバイスの両方を補正する、コンピュータゲームを中断する、コンピュータゲームを巻き戻す、コンピュータゲームをリスタートする、あるいは、ベースステーションの移動を知らせる、のうちの１つである、請求項２記載の方法。
【請求項６】
前記略同一の位置の変化は大きさを有し、前記大きさが閾値レベルを超えた場合、前記フラグは前記アクションをセットするように処理され、前記位置のトラッキングが前記ベースステーションを介して行われることから、前記閾値レベルを超える前記大きさは、前記ベースステーションの移動を示すものである、請求項１記載の方法。
【請求項７】
前記第１入力デバイスと第２入力デバイスの前記位置のトラッキングには、
（ａ）前記第１入力デバイスと第２入力デバイスとから位置を受信するステップ、
（ｂ）ベースステーションにおいて、前記第１入力デバイスおよび第２入力デバイスから受信したデータから位置データを計算するステップ、
（ｃ）前記第１入力デバイスおよび第２入力デバイスあるいは前記ベースステーションから受信したデータに基づいて、前記コンピュータにおいて位置データを計算するステップ、
（ｄ）前記第１入力デバイスおよび第２入力デバイスの位置を一部決定し、前記ベースステーションの位置を一部決定するステップ、あるいは、
（ｅ）前記第１入力デバイスおよび第２入力デバイス、前記ベースステーション、および前記コンピュータから得たデータに基づいて位置データを一部決定するステップ、
のうちの一つまたはこれらの組合せを含む、請求項１記載の方法。
【請求項８】
前記位置は、画像処理、超音波データ処理、入力ジョイスティック動作、ピッチ−ロール−ヨーデータ、有線または無線入力、あるいは入力ボタン選択、のうちの１つ以上により処理される、請求項７記載の方法。
【請求項９】
前記コンピュータはゲームコンソールであり、前記第１入力デバイスと第２入力デバイスとは、前記ゲームコンソールとさらにインターフェースされる、請求項１記載の方法。
【請求項１０】
画像処理は、前記略同一の位置の変化が生じたことを確認するために、前記第１入力デバイスと第２入力デバイスの両方を含む１つ以上のフレームからの画像データを比較するステップを含む、請求項９記載の方法。
【請求項１１】
前記ベースステーションは、有線接続か無線接続により前記ゲームコンソールとインターフェースされる、請求項９記載の方法。
【請求項１２】
テレビゲームのインタラクティブな制御を行うシステムであって、
ゲームコンソールと、
前記ゲームコンソールから離れた位置に配置されているベースステーションと、を含み、前記ベースステーションは、前記ベースステーションと前記ゲームコンソール間のインターフェースを可能にする通信回路を有しており、前記ベースステーションはさらに、プレイゾーン内で画像データをキャプチャするためのビデオカメラを有しており、さらに、
前記ベースステーションと前記ゲームコンソールの一方あるいは両方とインターフェースを行う第１コントローラと第２コントローラとを含み、前記第１コントローラ及び第２コントローラを含む画像データの分析を利用して、前記ゲームコンソールによって前記テレビゲームのインタラクティブな制御に関する前記プレイゾーン内の前記第１コントローラ及び第２コントローラの移動を決定し、
前記ゲームコンソールは、前記決定された第１コントローラ及び第２コントローラの略同一の位置の変化を特定し、前記略同一の位置の変化を特定後にフラグを設定し、前記フラグは前記テレビゲームとのインタラクティビティの間に発生する、前記第１コントローラと第２コントローラの前記同一の位置の変化を補償するためのアクションをセットするようテレビゲームにより処理されるシステム。
【請求項１３】
前記ベースステーションは、動作検出回路をさらに含み、前記動作検出回路は、前記動作検出回路からのデータを分析するように構成されたベースステーションポジションプロセッサとインターフェースする、請求項１２記載のシステム。
【請求項１４】
前記ベースステーションポジションプロセッサは、前記動作検出回路からのデータが閾値を超えた場合に、前記ベースステーションの再調整をトリガする、請求項１３記載のシステム。
【請求項１５】
前記第１コントローラ及び第２コントローラが前記ゲームコンソールと前記ベースステーションの両方とインターフェースされるときに、前記ベースステーションは、前記第１コントローラ及び第２コントローラの移動を決定するために、前記画像データを一部分析するための回路をさらに含む、請求項１２記載のシステム。
【請求項１６】
前記ベースステーションにより一部が分析された前記画像データは、前記画像データの分析を完了するための回路をさらに含む前記ゲームコンソールに送信される、請求項１５記載のシステム。
【請求項１７】
前記第１コントローラ及び第２コントローラは、前記画像データを分析するための回路をさらに含むベースステーションとのインターフェースがなされる、請求項１２記載のシステム。
【請求項１８】
前記ビデオカメラは、前記プレイゾーン内のオブジェクトに対する深度データをキャプチャするようにさらに構成されている、請求項１２記載のシステム。
【請求項１９】
前記第１コントローラ及び第２コントローラと前記ベースステーションとはそれぞれ、超音波送信機と超音波受信機をそれぞれ含む、請求項１２記載のシステム。
【請求項２０】
前記超音波送信機と超音波受信機とは、前記ベースステーションからの前記第１コントローラ及び第２コントローラの距離を決定する、請求項１９記載のシステム。
【請求項２１】
テレビゲームを制御するためのゲームコンソールとインターフェースするシステムであって、
ゲームコンソールと、
前記ゲームコンソールとインターフェースされているベースステーションと、を含み、前記ベースステーションは前記ベースステーションと前記ゲームコンソール間でデータを送受信するように構成されている処理回路を有しており、前記ベースステーションは位置データを処理するように構成されているものであって、さらに、
前記ベースステーションとインターフェースする第１コントローラ及び第２コントローラを含み、前記第１コントローラ及び第２コントローラは、それぞれ当該コントローラの移動データを検出して前記移動データを前記ベースステーションへ伝達するためのハードウェアを有しており、前記ベースステーションは前記各コントローラの前記位置データを処理し、前記位置データは、前記ベースステーションに対する前記各コントローラの相対位置を決定するために、前記ベースステーションから前記ゲームコンソールへと中継されるものであって、前記各コントローラの前記相対位置の変化により、前記テレビゲームとのインタラクティブな制御が支援され、
前記ゲームコンソールは、前記決定された第１コントローラ及び第２コントローラの略同一の位置の変化を特定し、前記略同一の位置の変化を特定後にフラグを設定し、前記フラグは前記テレビゲームとのインタラクティビティの間に発生する、前記第１コントローラと第２コントローラの前記同一の位置の変化を補償するためのアクションをセットするようコンピュータプログラムにより処理される、システム。
【請求項２２】
前記ベースステーションは、前記ゲームコンソールと、ユーザの手に把持されるように構成された前記コントローラとの間に配置される、請求項２１記載のシステム。
【請求項２３】
前記ベースステーションは、床のスペースに配置され、前記ベースステーションは、超音波を局所的にキャプチャし送信できるプレイゾーンを画定する、請求項２１記載のシステム。
【請求項２４】
前記ベースステーションは、前記ベースステーションの位置較正を開始するベース同期回路を有する、請求項２１記載のシステム。
【請求項２５】
前記第１コントローラと第２コントローラは、それぞれ、前記ベースステーションに対する位置較正を開始するための移動同期回路を有する、請求項２１記載のシステム。
【請求項２６】
前記ゲームコンソールは、前記ベースステーションに対する位置較正を処理する、請求項２４記載のシステム。
【請求項２７】
前記ゲームコンソールは、前記ベースステーションの前記位置をモニタリングし、前記ベースステーションの前記位置が、位置変化における閾値を超えたかどうかを検出する、請求項２６記載のシステム。
【請求項２８】
前記ゲームコンソールは、前記ベースステーションの位置の再較正をトリガする、請求項２７記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
テレビゲーム業界は、長年にわたり多くの変化を遂げてきた。コンピュータの処理能力の向上とともに、テレビゲームの開発者らも、このような処理能力の高度化を利用したゲームソフトウェアを開発してきた。このため、テレビゲームの開発者らは、非常にリアルなゲーム体験となるように高度な演算や数値演算を組み込んだゲームをコーディングしてきた。
【０００２】
このようなゲームのプラットフォームの例には、ソニープレイステーション(R)、ソニープレイステーション２(R)（ＰＳ２）およびソニープレイステーション３(R)（ＰＳ３）があり、これらは共にゲームコンソールの形態で販売されている。周知のように、ゲームコンソールは、モニタ（通常、テレビ受像機）に接続して、ハンドヘルドコントローラを介してユーザインタラクションが可能になるように設計される。
【０００３】
ゲームコンソールは、ＣＰＵ、重いグラフィック演算を処理するためのグラフィックシンセサイザ、ジオメトリ変換を実行するためのベクトル演算ユニット、およびグルーハードウェアと呼ばれるその他のハードウェア、ファームウェア、およびソフトウェアを含む専用の処理ハードウェアで設計されている。ゲームコンソールは、ゲームコンソールを介してローカルでプレイするためのゲームのコンパクトディスクを受け入れるための光ディスクトレイを備えるようにさらに設計される。また、ユーザが、インターネット上で他のユーザと対戦して、または、他のユーザと一緒にインタラクティブにプレイすることができるオンラインゲームも可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ゲームを複雑にしてプレーヤの興味を引き付けるために、ゲームおよびハードウェアの製造業者らは、新しい手法を取り入れてさらなるインタラクティビティ、つまり対話性、とコンピュータプログラムとを可能にしようとしてきた。
【０００５】
コンピュータゲーム業界においては、ユーザとゲームシステム間のインタラクションを高めるゲームを開発する傾向が広がっている。より質の高いインタラクティブな体験を実現する１つのやり方として、プレーヤの動きをトラッキングして、この動きをゲームの入力として使用するために、ゲームシステムによって移動がトラッキングされる無線ゲームコントローラを使用する方法がある。一般的にいうと、ジェスチャ入力とは、コンピューティングシステム、テレビゲームコンソール、インテリジェント家電などの電子装置を、物体をトラッキングするビデオカメラがキャプチャした何らかのジェスチャに反応させることを指す。
【０００６】
しかし、ビデオカメラやその他の電子装置を置いてユーザ入力をトラッキングするのは困難な場合がある。テレビやモニタが大型化しているので、全体像をとらえるには、ユーザはテレビからさらに離れて立つ必要がある。通常、コンソールはテレビの近くに置かれるために、センサの性能が低下してしまう。同様に、ユーザがカメラから離れるときに、トラッキング用ビデオカメラと深度検知用ビデオカメラの性能は低下してしまう。
【０００７】
本発明の実施形態は、この状況においてなされたものである。
【課題を解決するための手段】
【０００８】
概して、本発明は、ユーザ入力をゲームコンソールに送信するために使用されるベースステーションの移動を略リアルタイムで補償するものである。ある実施形態では、ベースステーションは、ゲームコンソールに関連づけられるコントローラの位置に関する深度データを抽出するために画像データをキャプチャし処理するようにさらに構成されている。
【０００９】
コンピュータで実行するコンピュータプログラムとインターフェースする入力デバイスから受信したインタラクティブな通信を処理するための方法が提供されている。コンピュータとインターフェースするベースステーションにおいて、第１入力デバイスと第２入力デバイスとから入力データを受信するステップを含む方法も提供される。第１入力デバイスと第２入力デバイスは、コンピュータプログラムとインタラクティブにインターフェースするために相互に独立して移動可能である。この方法では、ベースステーションを介して第１入力デバイスと第２入力デバイスの位置をトラッキングし、トラッキングした第１入力デバイスと第２入力デバイスの略同一の位置変化が生じたことを特定する。次いで、この方法では、略同一の位置変化を特定するとフラグを設定する。フラグは、コンピュータプログラムとのインタラクティビティの間に取るべきアクションを設定するコンピュータプログラムにより処理される。一例では、ベースステーションは、移動を確認できる慣性センサを含む。移動が確認された場合、フラグが処理されて、コンピュータプログラムで定められたアクションが行なわれる。
【００１０】
一実施形態では、ゲームコンソールで実行され、スクリーンに表示されるコンピュータゲームとインターフェースするときにインタラクティブな通信を検出するための方法が開示されている。方法は、第１入力デバイスと第２入力デバイスとから入力と位置とを受信する操作を含む。第１入力デバイスと第２入力デバイスとは、コンピュータゲームとインタラクティブにインターフェースするために、第１ユーザと第２ユーザそれぞれにより独立して移動される。ベースステーションは入力と位置とを第１入力デバイスと第２入力デバイスとから受信し、この入力および位置をゲームコンソールに無線でインターフェースする。方法は、第１入力デバイスと第２入力デバイス両方の略同一位置変化が検出されればコンピュータゲームのインタラクションを表示するスクリーンに示される、第１入力デバイスおよび第２入力デバイス両方の位置を補正する操作をさらに含む。
【００１１】
別の実施形態では、テレビゲームをインタラクティブに制御するシステムが開示されている。システムは、ゲームコンソールと、ゲームコンソールから離れた場所に置かれるベースステーションとを含む。ベースステーションは、ベースステーションとゲームコンソール間のインターフェースを可能にする通信回路を有する。ベースステーションは、プレイゾーン内の画像データをキャプチャするためのビデオカメラをさらに有する。システムは、ベースステーションとゲームコンソールの一方または両方とインターフェースされるコントローラをさらに含む。コントローラを含む画像データの分析を利用により、プレイゾーン内のコントローラの移動が決定される。コントローラの移動はゲームコンソールによりテレビゲームのインタラクティブな制御に相関される。
【００１２】
さらに別の実施形態では、テレビゲームを制御するためのゲームコンソールとインターフェースするシステムが開示されている。システムは、ゲームコンソールと、ゲームコンソールとインターフェースするベースステーションとを含む。ベースステーションは、ベースステーションとゲームコンソール間のデータを送受信するように構成された処理回路をさらに含む。ベースステーションは、位置データを処理するようにさらに構成されている。システムは、ベースステーションとインターフェースするコントローラをさらに含む。コントローラは、コントローラの移動データを検出し、この移動データをベースステーションへ送信するハードウェアを含む。ベースステーションは、ベースステーションに対するコントローラの相対位置を決定するためにベースステーションからゲームコンソールへと中継されるコントローラの位置データを処理するものであり、コントローラの相対位置が変わると、テレビゲームとのインタラクティブな制御がしやすくなる。
本発明の他の態様は、例示のために本発明の原理を示す添付の図面と併せて、以下の詳細な説明を読めば明らかとなるであろう。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態による、ベースステーション、ゲームコンソールとともにコントローラを操作するユーザ、およびモニタを含むシーンを例示的に示した図。
【図２Ａ】本発明の一実施形態による、コントローラの例示的略図。
【図２Ｂ】本発明の一実施形態による、コントローラの別の例示的略図。
【図３Ａ】本発明の一実施形態による、ベースステーションの例を示した図。
【図３Ｂ】本発明の一実施形態による、ベースステーションの例を示した図。
【図３Ｂ−１】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図３Ｂ−２】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図３Ｂ−３】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図３Ｂ−４】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図３Ｂ−５】本発明の一実施形態による、多数のカメラ位置を備えたベースステーションの他の実施形態を示した図。
【図３Ｃ】本発明の一実施形態による、ベースステーションのハードウェアを例示的に示した図。
【図４】本発明の一実施形態による、スクリーンの例示的上面図。
【図５】本発明の一実施形態による、距離測定から絶対深度測定への変換を示した図。
【図６Ａ】本発明の一実施形態による、ベースステーションの水平移動の検出法を示した図。
【図６Ｂ】本発明の一実施形態による、ベースステーションの水平移動の検出法を示した図。
【図６Ｃ】本発明の一実施形態による、テレビゲームのインタラクティブな制御を示した図。
【図６Ｄ】本発明の一実施形態による、ベースステーション内のカメラを用いてキャプチャしたインタラクティブ制御の画像データの図。
【図７】本発明の一実施形態による、エンターテイメントシステムにおける各種要素のブロック図。
【図８】本発明の一実施形態による、コントローラの位置を決定するために用いられうるハードウェアとユーザインターフェースの図。
【図９】本発明の一実施形態による、命令の処理に利用されうる付加的ハードウェアの図。
【図１０】本発明の一実施形態による、シーンＡ〜シーンＥと、インターネットを介してサーバ処理に接続されているゲームクライアントとインターフェース中のそれぞれのユーザＡ〜ユーザＥを例示的に示した図。
【発明を実施するための形態】
【００１４】
コンピュータプログラムとインターフェースする入力デバイスからのインタラクティブな通信を処理するための方法およびシステムが開示されている。方法は、コンピュータとインターフェースするベースステーションにおいて、第１入力デバイスと第２入力デバイスとから入力データを受信するステップを含む。ベースステーションは、有線あるいは無線であってよい。各入力デバイスは、１人のユーザによって把持されてもよく、この場合は１つの入力デバイスがそれぞれの手に把持される。あるいは、２人以上の別々のユーザが１つの入力デバイスを把持してもよい。第１入力デバイスと第２入力デバイスとは、コンピュータプログラムとインタラクティブにインターフェースするために、相互に独立して移動可能である。
【００１５】
一実施形態では、コンピュータプログラムはコンピュータゲームプログラムである。しかし、他の実施形態では、コンピュータプログラムは汎用オフィスプログラム、エンターテイメントプログラム、あるいは特殊用途プログラムであってよい。、
実施形態によれば、この方法ではベースステーションを介して第１入力デバイスと第２入力デバイスの位置をトラッキングする。
【００１６】
例えば、各入力デバイスはベースステーションと通信し、それぞれの位置を知らせるようにするか、データを与えてそれぞれの位置を確認する。入力デバイスの位置は、入力デバイスからデータを受信するベースステーションから位置データを受信し、その後、（ゲームコンソールなどの）コンピュータで処理されるようにしてもよい。いずれの実施形態でも、第１入力デバイスおよび第２入力デバイスの、トラッキングされた位置における略同一の位置変化を特定するために、位置をトラッキングする必要がある。
【００１７】
この方法は、略同一の位置変化を特定後にフラグを設定するように構成されている。フラグは、コンピュータプログラムとのインタラクティビティの間に取るべきアクションを設定するコンピュータプログラムにより処理される。一例では、ベースステーションは移動を確認できる慣性センサを含む。移動が確認されれば、フラグは、コンピュータプログラム（あるいはゲームプログラム）において定められているアクションを取るように処理される。
【００１８】
他の実施形態では、ベースステーション内には画像データをキャプチャするためのカメラが設けられており、該画像データは、入力デバイスの位置を特定するために用いられる。さらに別の実施形態では、入力デバイスとベースステーション間の超音波通信を利用して入力デバイスの位置が決定される。以下に各種の例を図面を参照しながら説明する。
【００１９】
図１は、本発明の一実施形態による、ベースステーション１０１、ゲームコンソール１０８とともにコントローラ１０２を操作するユーザ１０４、およびモニタ１０６を含むシーンを例示している。モニタ１０６は、ゲームコンソール１０８からのビデオ出力を表示する。ユーザ１０４は、コントローラ１０２とベースステーション１０１とにより、モニタ１０６に表示される映像を介してゲームコンソール１０８とインタラクトする。一実施形態では、モニタ１０６は、ゲームコンソール１０８からの音声出力の再生も可能なテレビである。他の実施形態では、ゲームコンソール１０８からの音声出力が複数のスピーカによって再生され、仮想のマルチメディア体験が作り出される。ベースステーション１０１は、プレイゾーン１１０でゲームコンソール１０８とコントローラ１０２間の通信を行う。
【００２０】
ベースステーションを利用することで、プレイゾーン１１０がコンソール１０８から離れて画定される。プレイゾーン１１０をコンソール１０８から離して設ける利点としては、ベースステーション内のセンサをユーザ１０４に近づけることができる点が挙げられるが、これに限定されない。ベースステーションにより、シーン１００全体を移動可能なコントローラへのデータ送受信が可能なセンサ用モバイルプラットフォームが設けられる。ベースステーションは可動性なので、センサをコンソールから離し、ユーザと、関連するコントローラとに近づけることができる。ベースステーションとコントローラとが非常に近接することで、コントローラの移動の検出が改善され、さらに、インタラクティビティが高まる。一実施形態では、ベースステーションはユーザ１０４に視覚フィードバックおよび音声フィードバックを送る。また、これを利用して、シーン１００においてコ
ントローラ１０２の位置が決定される。
【００２１】
一実施形態では、コントローラ１０２はブルートゥース（R）やＩＥＥＥ８０２．１１の仕様書で定義されているプロトコルのうちの１つ（これらに限定されない）などの無線通信プロトコルによりベースステーションと通信する。別の実施形態では、ベースステーション１０１とコントローラ１０２間は、赤外光または赤外光と無線通信プロトコルとの組合せにより通信される。図１はコントローラ１０２を持つ一人のユーザ１０４だけを示しているが、ベースステーション１０１は複数のユーザからの複数のコントローラからのユーザ入力の受信と処理とが可能である。ベースステーション１０１は、同様の無線通信プロトコルを用いてゲームコンソール１０８と通信することができる。さらに、ある実施形態では、有線接続によってベースステーション１０１とゲームコンソール１０８間の通信が実現されうる。
【００２２】
ユーザ１０４の、コントローラ１０２への入力は、ある実施形態の場合はベースステーション１０１により受信される。ベースステーション内のコンピュータのハードウェアは、ユーザ入力がゲームコンソール１０８へ中継される前にユーザ入力を処理する。他の実施形態では、ベースステーション１０１はコンピュータのハードウェアを含んでおらず、ユーザ入力はベースステーション１０１からゲームコンソール１０８へ中継される。他の実施形態では、ベースステーション１０１は、ユーザ入力がゲームコンソール１０８へ中継される前にユーザー入力の一部を処理するコンピュータのハードウェアを含む。一実施形態では、ベースステーション１０１は、シーン１００においてコントローラ１０２をトラッキングできる。
【００２３】
図２Ａは、本発明の一実施形態による、コントローラ１０２の例示的略図である。コントローラ１０２は、コントローラ１０２に関連づけられたハードウェア１１２を含む。ハードウェア１１２によりシーンにおけるコントローラの移動が検出される。例えば、一実施形態では、３次元空間におけるコントローラ１０２の移動はハードウェア１１２により検出される。同様に、ハードウェア１１２は、コントローラのロール、ピッチ、ヨーの検出も可能である。一実施形態では、ハードウェア１１２は、３つのジャイロスコープ、３つの加速度計、および３つの磁力計を含む。そのような実施形態では、加速度計により重力方向が得られ、さらに、ピッチとロールに対する絶対参照が得られる。同様に、磁力計はヨーに対する絶対参照を与える。
【００２４】
ジャイロスコープ、加速度計、および磁力計の組合せより収集されるデータにより、コントローラ１０２の相対位置を決定することができる。コントローラ１０２の他の実施形態では、ハードウェアは様々なセンサの組み合わせを利用することができる。この検討されたジャイロスコープ、加速度計、および磁力計の特定の組合せは、他の組合せも可能であることから、限定的なものと解釈すべきではない。図示している実施形態では、ハードウェア１１２はコントローラ１０２に埋め込まれるか一体化されて例示されている。しかし、他の実施形態では、オブジェクトの動作を検出をできるようにするために、モジュラアタッチメントによってハードウェア１１２がオブジェクトに付加される。
【００２５】
図２Ｂは、本発明の一実施形態による、別のコントローラ１０２を例示的に示したものである。コントローラ１０２は、ハードウェア１１２を含み、さらに、超音波送信機１５４と超音波受信機１５２に加えて超音波のアコースティックチャンバ１５０を含む。超音波送信機とエミッタとを実装することにより、超音波エコーロケーションを用いて、コントローラの位置を更に得ることができる。超音波エミッタと受信機とを実装したコントローラ１０２の実施形態は、エミッタと受信機とを適切に機能させることができるように、適切な外観の特徴を備えて構成されるものである。
【００２６】
図２Ａと２Ｂとに図示したそれぞれの実施形態では、コントローラ１０２は、ベースステーションとの通信を可能にする無線ハードウェアをさらに含む。無線ハードウェアにより、コントローラ１０２をベースステーションと関連づけることができる。複数のコントローラがベースステーションと関連づけられる実施形態では、ベースステーションとの信頼性の高い通信を確実に行うために、各種コントローラは様々に異なる無線周波数を使用しうる。複数のコントローラからの信号をベースステーションからの信号と区別するために他の技術を使用してもよく、また、提供されている特定の例を限定的に解釈すべきではない。さらに、無線ハードウェアは、ハードウェア１１２からのデータをベースステーション１０１に送信する。
【００２７】
図３Ａおよび図３Ｂは、本発明の実施形態による、ベースステーション１０１の一例である。ベースステーション１０１は、コントローラの移動を検出するためのハードウェアやセンサを含むゲームコンソールに関連づけられたポータブルデバイスである。ハードウェアは、各ユーザと各ユーザのそれぞれのコントローラに非常に近づけて置くことができるので、ベースステーション１０１内に動作検出ハードウェアがあることは有利である。ゲームコンソールは、ユーザがコントローラを操作する場所から比較的遠く離れた棚やラックに置かれることが多い。ベースステーションからゲームコンソールを離すことにより、動作検出センサをコントローラに非常に近づけることができる。センサとコントローラとが非常に近いことで、動作検出の分解能が向上し、さらに、動作検出が向上するのでユーザインタラクティビティが高まり、より充実したゲーム体験を与えることができる。さらに、ベースステーションは、ベースステーションがゲームコンソールから離れている状態で、視覚フィードバックと音声フィードバックとがユーザに送られる、別の領域として機能しうる。
【００２８】
図３Ａでは、ベースステーション１０１は、エレメント２００をコーナに備えたベーシックボックスとして図示されている。そのような実施形態では、ベースステーション１０１は、床またはゲームコンソールとユーザ間の面に置かれる。一実施形態では、エレメント２００は、すりガラスや透明ガラス、あるいは半透明のプラスチックなどの材料から作られる。これにより、エレメント２００は、光と組み合わせることで、ライトパイプやライトチューブとして機能することができ、ユーザに視覚フィードバックを送ることができる。他の実施形態では、エレメント２００は、視覚フィードバックを送るための小型の逆光式液晶ディスプレー（ＬＣＤ）アレイである。ある実施形態では、光とエレメント２００との組み合わせにより、ゲームプレイ中に発生するイベントに基づいて視覚フィードパックを送ることができる。他の実施形態では、エレメント２００は、ベースステーションに対するユーザの位置に基づいて視覚フィードバックを送ることができる。図３Ａに示す実施形態は、エレメント２００の方向や位置についての限定とみなされるべきではない。他の実施形態では、複数のエレメント２００をベースステーションの周りにリング状に配置することができる。さらに別の実施形態では、複数のエレメント２００を複数のパターンで配置してもよいし、ベースステーション１０１の全側面がエレメント２００であってもよい。
【００２９】
図３Ｂに、ベースステーション１０１の別の例示的実施形態を示す。本実施形態もまたユーザに視覚フィードバックを送るためのエレメント２００を含む。エレメント２００は球体２０２に含まれており、これは、基部（ベース）２０６に取り付けられているアーム２０４に取り付けられているものである。図３Ｂに示す実施形態は、限定的に解釈されるべきものではなく、また、球体２０２を他の３次元の形状体に置き換えることができる。各種実施形態では、アーム２０４を短くすることができる。これによりベース２０６上方の球体２０２の高さを調整することができる。球体２０２の高さが調整可能なことで、基準面の較正に対応することができる。他の実施形態では、球体２０２はジンバル上のアーム２０４に取り付けられており、これにより、ユーザは、アーム２０４の端部の球体２０２の方向を調整することができる。
【００３０】
ベースステーション１０１に回路を有する図３Ａと図３Ｂとに示すベースステーション１０１の実施形態では、加速度計、ジャイロスコープ、および磁力計（これらに限定されない）等のハードウェアからのデータに基づいて基準面が確立されうる。基準面を利用して、この基準面に対するコントローラの移動が、各コントローラに関連づけられるハードウェアからのデータ測定値に基づいて決定されうる。ベースステーション１０１の他の実施形態では、光を利用した基準面を確立するうえで、ユーザインタラクションが役立つ。例えば、球体２０２を含む各実施形態では、球体２０２の高さと方向により、ベースステーションに関連付けられるコントローラの相対的位置を決定するために利用されうる基準面を確立することができる。
【００３１】
図３Ａおよび３Ｂを参照すると、両方に図示されているベースステーション１０１の実施形態では、エレメント２００には、プレイゾーン内の１以上のコントローラの画像をキャプチャする一台以上のカメラが含まれ、１以上のコントローラの相対運動を決定するようにしてもよい。ベースステーション１０１の１台以上のカメラは、エレメント２００内だけ内蔵される訳ではない。図３Ｂ−１および３Ｂ−２は、本発明の各実施形態による、複数のカメラ位置を備えたベースステーションの別の各実施形態を示す。図３Ｂ−１は、ベースステーション１０１の上部のドーム（半球体）に配置されたカメラ２２６を含む。カメラ２２６は、ベースステーション１０１全体にわたる画像データをキャプチャするように一定の間隔を置いて配置されている。図３Ｂ−２では、カメラ２２６は、エレメント２００から離れた領域に設置されて図示されている。図３Ｂ−３、３Ｂ−４、および３Ｂ−５は、エレメント２００から離れたカメラ２２６の様々な位置を示したベースステーション１０１の別の実施形態である。
【００３２】
加えて、図３Ｂに示す実施形態では、球体２０２の高さを調節すると、ベースステーション１０１内に取り付けられた１台以上のカメラを、プレイゾーンのモニタリングを行うように配置することができる。ベースステーション１０１は、ベースステーションを動作させるための付加的センサやプロセッサを含むベースステーションハードウェア２０８をさらに含む。
【００３３】
図３Ｃは、本発明の一実施形態による、ベースステーションハードウェア２０８を例示的に示したものである。ベースステーションハードウェア２０８は、バッテリ２３２、無線機２１２と通信するコントローラポジションプロセッサ２１０、音声プロセッサ２１４、画像プロセッサ２１６、超音波送信機２４０と超音波受信機２４２に結合された超音波プロセッサ２３８、および光コントローラ２１８を含む。ベースステーションハードウェア２０８は、動作検出ハードウェア２３６および無線機２１２と通信するベースステーションポジションプロセッサ２３４をさらに含む。
【００３４】
バッテリ２３２は任意に設けられ、ベースステーションの無線の実施形態で使用される。他の実施形態では、ベースステーションはケーブルを使用してゲームコンソールに結合される。ケーブルには複数の導線が含まれており、これにより、ベースステーションはゲームコンソールと通信し、ゲームコンソールからの電力を使用することができるようになる。一実施形態では、コントローラポジションプロセッサ２１０とベースステーションポジションプロセッサ２３４とはカスタマイズされた特定用途向け集積回路（ＡＳＩＣ）であり、サウンドプロセッサ２１４、画像プロセッサ２１６および超音波プロセッサ２３８はデジタルシグナルプロセッサ（ＤＳＰ）である。
【００３５】
無線機２１２はアンテナ２２０に接続されており、ベースステーションの無線の実施形態では、無線機２１２は、ゲームコンソールへのデータを送受信する。無線機２１２はさらに、関連するコントローラへデータを送信し、関連するコントローラからのデータを受信するようにも構成されている。コントローラから受信されるデータにはハードウェアからのデータが含まれる。コントローラからのデータはコントローラポジションプロセッサ２１０へ送信され、ベースステーションに対するコントローラの位置を決定するように使用される。各種の実施形態では、無線機２１２は、ブルートゥースなどの標準無線通信プロトコルによる１つの無線機を含みうる。他の実施形態では、無線機２１２は、様々な無線通信プロトコルで動作する複数の無線機を含みうる。例えば、ベースステーションの無線の実施形態では、ベースステーションとゲームコンソール間ではｗｉ−ｆｉ通信が用いられ、ベースステーションと関連するいずれのコントローラ間ではブルートゥースが用いられうる。
【００３６】
ある実施形態では、ベースステーションは音声プロセッサに接続されたスピーカ２２４とマイクロフォン２２２とを含む。他の実施形態では、マイクロフォン２２２は、マイクロフォンアレイに配列された複数のマイクロフォンを代表するマイクロフォンである。指向性マイクロフォンアレイを利用して、ゲームプレイを向上させるようにしてもよい。音声認識ソフトウェアと組み合わせられた指向性マイクロフォンにより、ユーザによるゲームプレイを制御するための音声命令の発行が可能となった。スピーカ２２４はベースステーション内に収容された複数のスピーカを代表するスピーカでありうる。スピーカ２２４により、ベースステーションは、ユーザへ音声フィードバック送ることができる。音声フィードバックはゲーム内のイベントに基づいて送られてもよいし、ゲームコンソールへのノーティフィケーション、例えば通知やメッセージがフィードバックに含まれていてもよい。ゲーム内のイベントの音声フィードバックの例としては、プレーヤがゲーム内の蒸気に近づくとベースステーションから生じる水が流れる音、が挙げられる。ゲームコンソールのメッセージの例としては、ベースステーションが、コントローラのバッテリを交換する必要あり、との可聴音や音声命令を発しているもの、が挙げられる。
【００３７】
光コントローラ２１８は、コントローラポジションプロセッサ２１０からのデータを受信し、ライトアレイ２２８やライトエミッタ２３０を介してユーザに視覚フィードバックを送る。一実施形態では、ライトアレイ２２８は、一連の発光ダイオード（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ：ＬＥＤ）である。他の実施形態では、ライトアレイは、１以上の液晶ディスプレイ（ＬＣＤ）である。ライトアレイ２２８は、ゲーム内のイベントに基づいて、ユーザに視覚フィードバックを送ることができる。ライトアレイ２２８を用いた、有効なゲーム内の視覚フィードバックの例としては、プレーヤに関連づけられる光の色を変化させることが挙げられる。別の実施形態では、ライトアレイ２２８は、ゲームコンソールステータスの伝達に使用されうる。ゲームコンソールステータスの例としては、ゲームコンソールに関連するインターネット接続の性能を示した棒グラフが挙げられる。同様に、ライトアレイにはチャットリクエストやｅメール通知が表示されうる。ベースステーションのライトアレイ２２８は、メインディスプレイ上のゲームとは関連し得ないことから、ゲームコンソールのステータス情報を表示するには好ましい場所である。さらに、ベースステーションをユーザに近づけて置くことができるので、ライトアレイは、ゲームコンソールに直接取り付けられた小型の表示装置よりも認識しやすくなる。
【００３８】
さらに別の実施形態では、ライトアレイ２２８はコントローラステータスの伝達に使用される。コントローラステータスの例としては、コントローラのバッテリを交換する必要がある、との視覚メッセージが挙げられる。コントローラステータスの別の例としては、ある色をある特定のコントローラと関連づけ、コントローラがベースステーションの周りを移動すると、この色をライトアレイ２２８に移すこと、が挙げられる。例えば、２人のユーザがゲームをしている場合に、ライトコントローラはライトアレイ２２８の半分を使って第１ユーザ用に第１の色を発光させ、第２ユーザ用に第２の色を発光させることができる。さらに、ポジションプロセッサからのデータに基づいて、第１ユーザ用に発光させるライトアレイ２２８の半分は、第１ユーザに実際に一番近い側の半分であってよい。
【００３９】
画像プロセッサ２１６は、カメラ２２６からの画像データを処理する。ベースステーション周辺からの画像データを得るために、ベースステーションの外側の様々な位置に複数のカメラが実装される。ある実施形態では、カメラ２２６は、プレイゾーン内の画像をキャプチャするのに必要なカメラの台数を最小にするために広角レンズを使用する。一実施形態では、カメラ２２６は、その視覚においてオブジェクトの深度データをキャプチャする深度カメラである。深度データと画像データとは、画像プロセッサ２１６により処理される。また、ある実施形態では、処理済の画像データがコントローラポジションプロセッサ２１０へ送られて、ベースステーションに対するコントローラの位置を決定するようにする。
【００４０】
画像プロセッサデータは、ベースステーションポジションプロセッサ２３４へも送られ、ベースステーションが押しやられたかあるいは移動されたかが判断される。動作検出ハードウェア２３６は、ベースステーションポジションプロセッサ２３４へさらなるデータを送り、ベースステーションの相対運動を決定するようにする。一実施形態では、動作検出ハードウェアは、加速度計、ジャイロスコープおよび磁力計を含む。一実施形態では、ベースステーションポジションプロセッサ２３４が画像データを分析してオブジェクトの同一シフト、あるいは複数のオブジェクトが同様にシフトされていることが検出されると、ベースステーションの移動が検出される。一実施形態では、ベースステーションポジションプロセッサ２３４は、動作検出ハードウェア２３６からデータを受信する。動作検出ハードウェアからのデータがベースステーションの移動を示す閾値を超えるときに、ベースステーションポジションプロセッサ２３４は、画像プロセッサ２１６からの画像データの分析をトリガし、分析を開始させる。画像データの分析のトリガした後に、このトリガイベント前後の画像データの分析を行い、画像内のエレメントを同時にシフトさせるようにする。図示していないが、ベースステーションハードウェアは、画像プロセッサからの画像データを記録またはバッファリングするために利用されるメモリを含む。トリガイベントが発生すると、バッファリングされた画像データへのアクセス及び分析がなされ、ベースステーションが押しやられたか移動されたかが判断される。
【００４１】
一実施形態では、ベースステーションポジションプロセッサ２３４は、プレイゾーン内の複数のプレーヤの相対位置を利用することができる。そのような実施形態では、各プレーヤに対するそれぞれのコントローラの相対位置を利用して、トリガイベント後の同時のシフトを決定するようにしてもよい。他の実施形態では、プレイゾーン内にプレーヤが１人しかいない場合は、ベースステーションプロセッサ２３４は、プレイゾーン外のアイテムに関連付けられた視覚データとともにコントローラの位置を利用することができる。プレイゾーン内のプレーヤが１人である別の実施形態では、ベースステーションプロセッサは、動作検出ハードウェアからのデータと１人のユーザの画像データに依存する。上述の実施形態は限定を目的としたものではなく、他の実施形態においても、画像データと動作検出データの両方を用いてベースステーションの動作を決定するための方法を含むことができる。
【００４２】
図４は、本発明の一実施形態によるスクリーン４００の例示的上面図である。スクリーンは、ディスプレイ１０６に表示されるインタラクティブなコンピュータプログラムを実行中のゲームコンソール１０８を含む。プレーヤＡは、コントローラＣ１を使用して、ゲームコンソール１０８により実行されているコンピュータプログラムとインタラクションを行う。同様に、プレーヤＢとプレーヤＣとは、それぞれのコントローラＣ２とＣ３とを使用して、コンピュータプログラムとインタラクトする。本実施形態では、ベースステーション１０１は、ゲームコンソール１０８と間隔を設けて配置されており、コントローラＣ１、Ｃ２およびＣ３からのユーザ入力をゲームコンソール１０８へ中継している。さらに、ベースステーション１０１内のカメラ２２６は、プレーヤＡ、プレーヤＢ、およびプレーヤＣの画像データをそれぞれのコントローラＣ１、Ｃ２およびＣ３とともにキャプチャしている。本実施形態では、キャプチャされたベースステーションからの画像データを利用して、それぞれのコントローラからベースステーション１０１までの距離、距離ｄｚ１、ｄｚ２、およびｄｚ３が決定される。他の実施形態では、コントローラから発せられた超音波放射を利用して距離ｄｚ１、ｄｚ２およびｄｚ３が決定される。さらに他の実施形態では、超音波放射とベースステーションのカメラからキャプチャした深度データとの組合せからｄｚ１、ｄｚ２およびｄｚ３が決定される。さらに他の実施形態では、コントローラは、画像データから特定される特定の幾何学的形状体を含む。一実施形態では、コントローラは一体化された楕円体を含み、これはカメラ２２６が認識できるものである。従って、楕円体がカメラに近づくと、カメラ２２６によりキャプチャされた画像データ内の円形のピクセル領域が増加し、また、逆の場合も同じである。
【００４３】
一実施形態では、キャプチャされた画像データを利用して、コントローラの２次元の位置が決定される。この位置は、プレイゾーンなどの３次元空間での平面や直線における一点を決定する２つの座標ｘおよびｙ、（ｘ、ｙ）、により特定される。ｘ値とｙ値とを示すために水平位置と垂直位置とが用いられる場合がある。さらに、原点からの角度やベクトル値などの、他の種類の座標が用いられる。同様に、３次元空間内では、空間での一点を特定するために様々な座標系を利用することができ、これには例えば、ｘ、ｙおよびｚ直交座標や、ｘおよびｙ座標プラス原点からのベクトル、あるいは、原点からの２つの角度とベクトル、が含まれる。
【００４４】
ベースステーション１０１のマイクロフォンは、プレイゾーン内の音声データをキャプチャする。一実施形態ではコントローラＣ１、Ｃ２およびＣ３から生じる音声がマイクロフォンにより受信される、片方向通信が利用される。超音波通信により、プレーヤの体験が干渉されずに済む。一実施形態では、コントローラは音声が生じるスピーカを含み、音声キャプチャデバイスはプレイゾーン内の音声を検出するための複数のマイクロフォンを含む。一実施形態では、プレイゾーン外からの不要なノイズをキャプチャしないためのフィルタリング技術により、プレイゾーンのフォーカスがクリアになる。さらに、一つあるいは複数のマイクロフォンが、超音波通信で使用されない周波数をフィルタリングし、不要な音源からの干渉をさらに減らすことができる。さらにまた、プレイエリア近くの面から反射される音により、音声通信が間違って読み取られてしまう場合がある。一実施形態では、コンピューティングシステム１０２は、指向性フィルタ、音響分析などの音響反射により引き起こされてしまう間違った読み取りをしないためのメカニズムを含む。
【００４５】
別の実施形態では、コントローラと画像キャプチャデバイス１０６間は双方向通信であり、コントローラまたは音声デバイスのいずれか一方が超音波メッセージを送信または受信する。さらにまた別の実施形態では、片方向通信は、各コントローラに超音波マイクロフォンを備え、音声エミッタデバイスをディスプレイ近くに設けた状態で、反対方向に流れる。
【００４６】
超音波通信は、音声信号がその目的地に到着するまでの時間を分析することにより、コントローラと音声キャプチャデバイス間の距離、つまりｄｚを測定するために用いられる。さらに、受信した信号の位相コヒーレンスを分析して、より正確に距離を決定するようにしてもよい。片方向通信が利用される場合は、音声が音源から目的地へと移動するための時間を正確に測定するために、正確なクロック同期が必要とされる。当業者であれば、クロック同期を得るための適切な周知の方法が簡単に分かるであろう。例えば、クロックを同期させるために、コントローラとコンピューティングデバイス間のＷｉＦｉ(商標）チャネルを使用することができる。Ｚａｌｅｗｓｋｉに付与された（参照のために本明細書に組み入れられている） 米国特許第５，９９１，６９３号は、本発明を利用したトラッキングモードを提供している。
【００４７】
キャプチャした画像データに基づいて得られた点（ｘ、ｙ）と、距離ｄｚとにより、３次元のキャプチャエリア内での一点が決定する。ｄｚは第３次元と呼ばれることもある。その理由は、ｄｚは、既述のｘ軸とｙ軸に直交のｚ軸内の値に変換されうるからである。ｚ測定値はキャプチャエリア内の深度と称される。
【００４８】
図５は、本発明の一実施形態による、距離測定から絶対深度（ｚ）測定への変換を示した図である。ｄｚは、座標が（ｘ０、ｙ０、ｚ０）の、コントローラ１０２からベースステーション１０１への距離である。画像キャプチャデータにより、コントローラ１０２の水平座標（ｘ１）と垂直座標（ｙ１）が求められる（不図示）。コントローラ１０２のｚ１値を求める場合は、音声キャプチャデバイスを中心とした半径ｄｚ１の球体とともに、３次元空間で（ｘ１、ｙ１）のいずれの点により定義される直線を交差させる。この直線は、以下の方程式により定義される。
【００４９】
この方程式は、全体の歪みがない空間を想定する。他の実施形態は画像キャプチャデバイスからの斜視図による、想定される歪みを補償する。球体は、以下の方程式により定義される。
【００５０】
球体の方程式をｘをｘ１に、ｙをｙ１に置換すると、深度値ｚ１に対応するｚ値を返す。方程式は２つのｚ値を返すであろうが、プレイゾーン内には１つの値しか存在しない点に留意されたい。
【００５１】
上述した計算は超音波送信に基づいて深度値を決定する方法を開示する。他の実施形態では、ベースステーションに関連づけられるカメラによりキャプチャされる画像データを利用して、ベースステーションからのコントローラの距離や深度を決定することができる。例えば、複数のカメラを利用するベースステーションの実施形態では、少なくとも２台のカメラからの画像データに基づいて、コントローラの深度の三角測量を決定することができる。既述したように、他の形態では、コントローラに関連づけられる特徴的なオブジェクトのピクセルの相対数から深度データを決定することもできる。さらに他の実施形態では、ベースステーションのカメラは深度カメラであってよい。上述の実施形態は、限定を目的としたものでなく、実施形態の各種組み合わせにより、コントローラの、ベースステーションへの距離を決定することができる。
【００５２】
図６Ａおよび図６Ｂに、本発明の一実施形態による、ベースステーション１０１の水平移動の検出法を示す。図６Ａは、シーン６００の上面図とベースステーションビュー６００−１とを含む。シーン６００では、ベースステーション１０１はゲームコンソール１０８とユーザＡおよびＢとの間に存在する。ユーザＡはコントローラＣ１を操作し、ユーザＢはコントローラＣ２を操作して、ゲームコンソール１０８により実行されているコンピュータプログラムとインタラクトする。ベースステーションビュー６００−１では、ベースステーション１０１と関連づけられるカメラによりキャプチャされたシーン６００を示す。従って、ユーザＡとユーザＢの位置はシーン６００のビューとは逆になっている。図６Ａおよび図６Ｂに例示するベースステーションビューはユーザＡおよびユーザｂの画像を示しているが、ベースステーションに関連づけられる付加的カメラにより、プレイゾーン１１０内のさらなる深度データがキャプチャされうる。
【００５３】
図６Ｂに図６Ａの位置からのベースステーション１０１の移動を示す。ベースステーション１０１はゲームコンソールのユーザの比較的近くに配置することができるポータブルデバイスなので、ベースステーションが押しやられたり誤って移動（誤ってキックされるなどして）されてしまうことがある。例えば、ベースステーション１０１が移動してしまう原因としては、ユーザＡかユーザＢのいずれか一方によるゲームプレイが乱暴なことや、ペットがベースステーション１０１を押しのけてしまうことが挙げられるが、これらに限定されることはない。上述したように、ベースステーション１０１の移動は、ベースステーション１０１に関連づけられる動作検出ハードウェアにより検出されうる。加速時計、慣性センサ、空間トラッキングシステムなどの多くの方法で動作検出を決定することができる。
【００５４】
図６Ｂに示すように、ベースステーション１０１は距離ｘ分右へシフトしている。よって、ベースステーションビュー６０２−１に示すように、キャプチャしたユーザＡおよびユーザＢの画像データは、ユーザＡおよびユーザＢの略同一の位置の変更を示す。図６Ａおよび図６Ｂは画像データを利用して示されているが、他の実施形態では、両ユーザや２つの別々のコントローラ（入力デバイスなど）の、略同時のシフトを検出することができる。
【００５５】
別の実施形態では、一ユーザがそれぞれの手に入力デバイスを把持していてもよい。よって、ユーザがコンピュータプログラムとインターフェースしていたときにベースステーションが移動したかどうかを決定することが必要となりうる。よって、一方法においては、コンピュータで実行されるコンピュータプログラムとインターフェースする入力デバイスから受信されるインタラクティブな通信の処理を含みうる。コンピュータは単一のコンピュータ、ネットワークコンピュータ、ゲームコンソール、ネットワークゲームコンソール、あるいはその組合せであってもよい。この方法には、コンピュータとインターフェースするベースステーションにおいて、第１入力デバイスと第２入力デバイスとから入力データを受信するステップが含まれる。第１入力デバイスと第２入力デバイスとは、コンピュータプログラムとインタラクティブにインターフェースするために相互に独立して移動可能である。この方法は、ベースステーションを介して第１入力デバイスと第２入力デバイスの位置をトラッキングするステップを含む。他の実施形態によりトラッキングが処理されてもよいことを理解されたい。
【００５６】
例示的実施形態では、第１入力デバイスおよび第２入力デバイスの位置が以下のステップによりトラッキングされる。（ａ）第１入力デバイスと第２入力デバイスとから位置を受信し、（ｂ）ベースステーションにおいて、第１入力デバイスおよび第２入力デバイスから受信したデータから位置データを計算し、（ｃ）第１入力デバイスおよび第２入力デバイスあるいはベースステーションから受信したデータに基づいて、コンピュータにおいて位置データを計算し、（ｄ）第１入力デバイスおよび第２入力デバイスの位置を一部決定し、ベースステーションの位置を一部決定し、
（ｅ）第１入力デバイスおよび第２入力デバイス、ベースステーション、およびコンピュータから得たデータに基づいて位置データを一部決定する。位置は、処理が行われる場所に応じて、画像処理、超音波データ処理、入力ジョイスティック動作、ピッチ−ロール−ヨーデータ、有線または無線入力、あるいは入力ボタン選択のうちの一つ以上により処理されうる。
【００５７】
方法は、トラッキングされた、第１入力デバイスおよび第２入力デバイスの位置の、略同一の位置の変化を特定するように構成されている。略同一の位置の変化は検出可能な大きさを有する。本例示的方法によれば、略同一の位置の変化が特定されるとフラグが設定される。本文中で使用されているように、フラグは、コード、ビット、ビットパターン、例外、オブジェクト、コードトリガなどの多くの形態で表示されうる。フラグの形態は、フラグを受信するプログラムやコードに応じて変わる。例えば、プログラムがコンピュータゲームであれば、コンピュータゲームのプログラム命令はフラグを読み取り、そのフラグについて知得した情報に応じて処理すべきことを決定することができる。ある場合では、フラグは、他のプログラムからもコミュニケートされ、これは、システムにローカルに、またはリモートシステムに、あるいは、ネットワークを介したコンピュータになされる。
【００５８】
一実施形態では、フラグは、コンピュータプログラムとのインタラクティビティの間に操作するように設定されたコンピュータプログラムにより処理される。コンピュータプログラムがコンピュータゲームであれば、略同一の位置変化を差し引く、第１入力デバイスおよび第２入力デバイス両方を補正する、コンピュータゲームを中断する、コンピュータゲームを巻き戻す、コンピュータゲームをリスタートする、あるいは、ベースステーションの移動を知らせる、のうちの一つのアクションが取られうる。
【００５９】
コンピュータプログラムがコンピュータゲーム以外であれば、アクションとしては、プログラムの環境には通常の形態のものが取られてよい。例えば、ユーザがブラウザとインターフェースしており、テキストを選択するために入力デバイスが利用されていれば、フラグによりテキストが除外されてしまうか、最終のインタラクティブアクションがなされる前の状態にユーザを戻す。従って、コンピュータプログラムとのインタラクションの間に発生するアクションは、コンピュータプログラムの形態に基づいて事前に設定されている。
【００６０】
またさらに、一実施形態では、略同一の位置の変化が発生する大きさが閾値を越えれば、ベースステーションで移動が発生したことを示すようにシステムをプログラムすることができる。さらに別の実施形態では、ベースステーションが移動したかどうかを決定するための回路と論理とをベースステーション自体が備えていてもよい。ベースステーションに内蔵された移動検出器や慣性センサなどによりこの決定がなされてもよい。
【００６１】
従って、ベースステーションは、移動の発生時を決定し、さらに、この移動が大きさを超えているかどうかを決定するためにプログラムされうる。従って、ある実施形態では、２種類の異なる大きさと、２種類の異なる閾値レベルとがチェックされうる。従って、フラグに関わるアクションを発生させる前に、入力デバイスの略同一の位置の変化が生じたかどうかがまず決定され、さらに、ベースステーション自体が移動したかどうかがチェックされる。
【００６２】
各種実施形態では、ユーザ入力から略同一の位置変化の分が差し引かれてベースステーションの移動を補正するようにしてもよい。他の実施形態では、プレイゾーン内のオブジェクトの、同時で略同一のシフトだけに依存すると、ベースステーションの移動が誤って決定されてしまうことがある。従って、一実施形態では、ベースステーションの移動を検出するための、同時のシフトに対するコントローラデータは、動作検出ハードウェアが閾値を超えるベースステーションの移動を検出した後に比較される。略同一の位置変化に対するコントローラデータを調べるにあたって、閾値が超過するのを待つことは必須ではなく、これは任意のものであると考えらるべきである。
【００６３】
プレイゾーン内でオブジェクトまたはコントローラの略同一のシフトが検出されると、ベースステーションをリアルタイムで再調整しゲームプレイに対する影響を最小限に抑えるようにしてもよい。一実施形態では、２映像フレーム以内か、わずかな映像フレームで再調整されうる。通常、映像は一秒につき約３０フレームで表示されるので、この再調整期間は取るに足らないか気付かないほどに短くてよいものである。従って、図６Ａおよび図６Ｂに示すように、ベースステーションが右にシフトされたことをベースステーションが検出すれば、ベースステーションは、ユーザ入力をコントローラＣ１およびＣ２に変更することで補償し、ゲームプレイを中断しないようにする。
【００６４】
図６Ａおよび図６Ｂは、ベースステーションの、ユーザＡおよびユーザＢに対する側方向の移動を示す。上述したように、これらの実施形態は両手に１つのコントローラを持つ単一ユーザにも適用される。ユーザが２人の場合の例を続けると、ベースステーションは、ユーザＡおよびユーザＢに近づくように、あるいは、ユーザＡおよびユーザＢから離れるように移動あるいは押しやられる。この場合、光深度カメラ又は超音波センサからの深度データを利用してベースステーションの移動を決定するようにしてもよい。
【００６５】
図６Ｃに、本発明の一実施形態によるテレビゲームのインタラクティブな制御を示し、図６Ｄに、本発明の一実施形態による、ベースステーション内のカメラを利用したインタラクティブな制御をキャプチャした画像データを示す。図６Ｃでは、ユーザＡは動作Ｍ１と、これに続く動作Ｍ２においてコントローラＣ１を操作し、スケートアバタ６５０を制御する。動作Ｍ１とＭ２とは、方向と大きさの両方を含むことから、ベクトルである。この場合、動作の大きさとは、動作が完了する速度である。本実施形態では、動作Ｍ１は、スケートアバタ６５０の速度を高めるために用いられる。動作Ｍ２は、傾斜台６５２の最上部でスケートアバタ６５０をジャンプさせるように用いられる。ゲームコンソール１０８はゲームをレンダリングしており、モニタ１０６に表示されるビデオ信号を出力する。
【００６６】
図６ＤのフレームＡは、動作Ｍ１が行われるときの、キャプチャされたコントローラＣ１の中間画像データを示す。時間ｔ１と時間ｔ２においてのコントローラＣ１の２つの画像が図示されており、時間ｔ２は動作Ｍ１が完了する前の時間である。画像を分析すると、時間ｔ２でのコントローラＣ１の大きさは、時間ｔ１でのコントローラＣ１の大きさよりも大きいことが明らかである。つまり、時間ｔ１とｔ２の間に、コントローラＣ１がベースステーション１０１に近づいたということである。フレームＢは、時間ｔ３での動作Ｍ１の完了を示す。明瞭化のために、フレームＢは時間ｔ１とｔ３においてのコントローラＣ１を示す。一実施形態では、画像データ、特にピクセルデータの分析を利用して、コントローラＣ１がベースステーションに近づいたか、離れたかを決定するようにしてもよい。コントローラＣ１を構成するピクセル数が、時間ｔ５よりも時間ｔ３において多ければ、コントローラＣ１はベースステーション１０１に近づいたということである。コントローラＣ１を構成するピクセル数がｔ３において少なければ、コントローラＣ１はベースステーションから離れたということである。ベースステーションに向かう距離の相対的変化を決定することと、図６Ｃのスケートアバタの速度変化とは相関しうる。
【００６７】
フレームＣは、動作Ｍ１の開始時である時間ｔ１における画像データとｔ４における動作Ｍ２の完了時における画像データとを比較したものである。ベースステーション内のカメラによりキャプチャされた画像データにおいて、時間ｔ１、ｔ２、ｔ３及びｔ４間のコントローラＣ１の相対的大きさを比較することにより、ゲームコンソールはコントローラの移動と相関させて、モニタ１０６に表示されるテレビゲームとインタラクトできるようになる。画像データと深度データとに基づくユーザ入力により、空間内のベクトル移動をあらゆるテレビゲーム制御にマッピングすることができるので、図６Ｃと図６Ｄに示す制御をあらゆるテレビゲームに応用することができる。例えば、ボクシングシミュレーションや魚釣りシミュレーション、ドライビングシミュレーションのスロットル制御であってもこの制御を用いることができる。上記に挙げられた特定の例は例としてみなされるべきであり、限定するものとみなされるべきではない。
【００６８】
図７は、本発明の一実施形態による、ゲームコンソール１０８、ベースステーション１０１、およびコントローラ１０２のブロック図である。本実施形態において、また、簡素化のために、ゲームコンソール１０８はプロセッサ、メモリ領域、クロック、および通信インターフェースを備えて示されている。通信インターフェースは、ベースステーションとコントローラへの無線通信用の無線通信（ＲＦ）インターフェースを含む。他の実施形態では、コントローラは、ベースステーションのみと通信している。そのような実施形態では、ベースステーションとゲームコンソール間の通信プロトコルはＷｉ−Ｆｉであり、コントローラとベースステーション間の通信はブルートゥースプロトコルを利用する。上述のように、ベースステーションは、画像キャプチャリング、音声の送受信（本実施形態では、超音波）および発光体を含む、他の通信方法を含みうる。
【００６９】
ベースステーション１０１の様々な通信プロトコルは、コンピューティングシステム内のそれぞれのコントローラに接続する。メモリ領域は、実行中のプログラム、画像処理領域、音声処理領域、およびクロック同期領域を含む。実行中のプログラムは、画像処理プログラム、音声処理プログラム、クロック同期プログラムなどを含む。これらのプログラムは対応するメモリ領域を使用し、例えば、画像データを含む画像処理領域、超音波通信データを含む音声処理領域、および、遠隔装置との同期のために使用されるクロック同期領域、などが挙げられる。
【００７０】
プレーヤ環境領域でのコントローラの構成についての実施形態がいくつか図示されている。コントローラＡは、上述したような多くの特徴を備えた「フル装備の（フルロードの）」コントローラである。コントローラＡは、ゲームコンソール１０８と同期するために使用されるクロック同期（Ｃｌｏｃｋ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ（ＣＳ））モジュールと、超音波データを受信するための音声受信機（Ｓｏｕｎｄ  Ｒｅｃｅｉｖｅｒ（ＳＲｘ）、超音波データを送信するための音声送信機（Ｓｏｕｎｄ  Ｔｒａｎｓｍｉｔｔｅｒ（ＳＲｘ））ゲームコンソール１０８とのＷｉＦｉ通信のためのＷｉＦｉ（ＷＦ）モジュール、コントローラのフロントおよび／またはサイド間へ音声を伝達するためのアコースティックチャンバ（Ａｃｏｕｓｔｉｃ  Ｃｈａｍｂｅｒ（ＡＣ））、画像データをキャプチャするための、デジタルビデオカメラなどの画像キャプチャ（Ｉｍａｇｅ  Ｃａｐｔｕｒｅ（ＩＣ））デバイス、および、ゲームコンソール１０８において、画像処理モジュールからの画像認識を容易にするための、赤外線スペクトルまたは可視スペクトルでの発光体（Ｌｉｇｈｔ  Ｅｍｉｔｔｅｒ（ＬＥ））を含む。
【００７１】
図８は、本発明の一実施形態による、コントローラの位置を決定するために使用されうるハードウェアおよびユーザインターフェースを示す。図２２は本発明の一実施形態による、３次元コントローラの位置決めシステムを実装可能なコンソールであるソニー(R)プレイステーション３(R)エンターテインメントデバイスのシステムアーキテクチャ全体を模式的に示す。システムユニット１４０は、システムユニット１４００に接続可能な様々な周辺機器を備える。システムユニット１４００は、セルプロセッサ（Ｃｅｌｌプロセッサ）１４２８、Ｒａｍｂｕｓ(R)ダイナミックランダムアクセスメモリ（ＸＤＲＡＭ）ユニット１４２６、専用のビデオランダムアクセスメモリ（ＶＲＡＭ）ユニット１４３２を有するリアリティシンセサイザ（Ｒｅａｌｉｔｙ  Ｓｙｎｔｈｅｓｉｚｅｒ）グラフィックユニット１４３０、およびＩ／Ｏブリッジ１４３４を備える。また、システムユニット１４００は、Ｉ／Ｏブリッジ１４３４を介してアクセス可能な、ディスク１４４０ａから読み出すためのブルーレイ(R)ディスクＢＤ−ＲＯＭ(R)（Ｂｌｕ  Ｒａｙ(R)Ｄｉｓｋ  ＢＤ−ＲＯＭ(R)）光ディスクリーダ１４４０、および着脱可能なスロットインハードディスクドライブ（ＨＤＤ）１４３６も備える。任意選択で、システムユニット１４００は、同様にＩ／Ｏブリッジ１４３４を介してアクセス可能な、コンパクトフラッシュ(登録商標)メモリカード、メモリスティック(R)メモリカードなどを読み出すためのメモリカードリーダ１４３８も備える。
【００７２】
また、Ｉ／Ｏブリッジ１４３４は、６つのユニバーサルシリアルバス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ））２．０ポート１４２４、ギガビットイーサネット(登録商標)ポート１４２２、ＩＥＥＥ  ８０２．１１ｂ／ｇ無線ネットワーク（Ｗｉ−Ｆｉ）ポート１４２０、および最大７つのブルートゥース(R)接続に対応可能なブルートゥース(R)無線リンクポート１４１８にも接続している。
【００７３】
動作時に、Ｉ／Ｏブリッジ１４３４は、１台以上のゲームコントローラ１４０２〜１４０３からのデータを含む、全ての無線、ＵＳＢ、およびイーサネット(登録商標)データを処理する。例えば、ユーザがゲームをプレイ中に、Ｉ／Ｏブリッジ１４３４はブルートゥースリンクを介してゲームコントローラ１４０２〜１４０３からデータを受信して、これをセルプロセッサ１４２８に転送し、セルプロセッサ１４２８が適宜ゲームの現在の状態を更新する。
【００７４】
また、無線、ＵＳＢ、およびイーサネット(登録商標)の各ポートを介して、ゲームコントローラ１４０２〜１４０２のほかに、他の周辺機器も接続することが可能となる。このような周辺機器には、例えば、リモコン１４０４、キーボード１４０６、マウス１４０８、ソニープレイステーションポータブル(R)エンターテイメントデバイスなどのポータブルエンターテイメントデバイス１４１０、アイトーイ(R)（ＥｙｅＴｏｙ(R)）ビデオカメラ１４１２などのビデオカメラ、マイクロフォンヘッドセット１４１４、および、マイクロフォン１４１５などがある。
このため、これらの周辺機器は、原則としてシステムユニット１４００に無線で接続されうる。例えば、ポータブルエンターテイメントデバイス１４１０はＷｉ−Ｆｉアドホック接続を介して通信し、マイクロフォンヘッドセット１４１４はブルートゥースリンクを介して通信しうる。
【００７５】
これらのインターフェースを提供することにより、プレイステーション３デバイスは、デジタルビデオレコーダ（ＤＶＲ）、セットトップボックス、デジタルカメラ、ポータブルメディアプレーヤ、ＶｏＩＰ電話、携帯電話、プリンタ、およびスキャナなどの他の周辺機器と場合によっては互換となりうる。
【００７６】
さらに、ＵＳＢポート１４２４を介して旧式メモリカードリーダ１４１６をシステムユニットに接続することができ、プレイステーション(R)デバイスまたはプレイステーション２(R)で用いられていたタイプのメモリカード１４４８の読み出しが可能となる。
【００７７】
本実施形態では、ゲームコントローラ１４０２〜１４０３は、ブルートゥースリンクを介してシステムユニット１４００と無線通信するように動作可能である。しかし、その代わりに、ゲームコントローラ１４０２〜１４０３が、ＵＳＢポートに接続されてもよく、これにより、ゲームコントローラ１４０２〜１４０３のバッテリに充電するための電力も供給する。ゲームコントローラ１４０２〜１４０３は、メモリ、プロセッサ、メモリカードリーダ、フラッシュメモリなどの永続的なメモリ、ＬＥＤや赤外光などの発光体、超音波通信用のマイクロフォンおよびスピーカ、アコースティックチャンバ、デジタルカメラ、内部クロック、ゲームコンソールに面している球形部分などの認識可能な形状、および、ブルートゥース(R)、ＷｉＦｉ（商標）などのプロトコルを使用した無線通信、などを含むことができる。
【００７８】
図１〜１０で説明したように、ゲームコントローラ１４０２は、両手で使用するように設計されたコントローラであり、ゲームコントローラ１４０３は片手用のコントローラである。１つ以上のアナログジョイスティックおよび従来のコントロールボタンに加えて、ゲームコントローラは、３次元の位置決定に敏感である。このため、従来のボタンやジョイスティックコマンドに加えて、あるいはこれらの代わりに、ゲームコントローラのユーザによるジェスチャや動作がゲームへの入力として変換されうる。任意選択で、プレイステーション（商標）ポータブルデバイスなどの他の無線対応の周辺機器をコントローラとして使用することができる。プレイステーション（商標）ポータブルデバイスの場合、追加のゲーム情報または制御情報（例えば、制御命令あるいはライブの数）が該デバイスの画面に提示されうる。他の代替的または補助的な制御装置が使用されてもよく、これには、ダンスマット（不図示）、ライトガン（不図示）、ハンドルおよびペダル（不図示）、あるいは、即答クイズゲームのための１つまたは複数の大型のボタン（これも図示なし）などの特注品のコントローラなどがある。
【００７９】
また、リモコン１４０４も、ブルートゥースリンクを介してシステムユニット１４００と無線通信するように動作可能である。リモコン１４０４は、ブルーレイ（商標）ディスクＢＤ−ＲＯＭリーダ１４４０の操作、およびディスク内容の閲覧のために適した制御を備える。
【００８０】
ブルーレイ（商標）ディスクＢＤ−ＲＯＭリーダ１４４０は、従来の記録済みＣＤ、記録可能ＣＤ、およびいわゆるスーパーオーディオＣＤのほか、プレイステーションデバイスおよびプレイステーション２デバイスと互換のＣＤ−ＲＯＭを読み出すように動作可能である。また、リーダ１４４０は、従来の記録済みＤＶＤおよび記録可能ＤＶＤのほか、プレイステーション２デバイスおよびプレイステーション３デバイスと互換のＤＶＤ−ＲＯＭを読み出すように動作可能である。さらに、リーダ１４４０は、従来の記録済みブルーレイディスクおよび記録可能ブルーレイディスクのほか、プレイステーション３デバイスと互換のＢＤ−ＲＯＭを読み出すように動作可能である。
【００８１】
システムユニット１４００は、リアリティシンセサイザグラフィックユニット１４３０を介して、プレイステーション３デバイスによって生成またはデコードされた音声およびビデオを、音声コネクタおよびビデオコネクタ経由で、ディスプレイ１４４４および１つ以上のスピーカ１４４６を備えた表示および音声出力デバイス１４４２（モニタまたはテレビ受像機など）に提供するように動作可能である。音声コネクタ１４５０は、従来のアナログ出力およびデジタル出力を備える一方、ビデオコネクタ１４５２は、コンポーネントビデオ、Ｓ−ビデオ、コンポジットビデオ、および１つ以上のハイデフマルチメディアインタフェース（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ：ＨＤＭＩ）の出力などを種々備えうる。したがって、ビデオ出力は、ＰＡＬまたはＮＴＳＣ、あるいは７２０ｐ、１０８０ｉまたは１０８０ｐの高解像度などのフォーマットであってもよい。
【００８２】
音声処理（生成、デコードなど）はセルプロセッサ１４２８によって実行される。プレイステーション３デバイスのオペレーティングシステムは、ドルビー(R)５．１サラウンドサウンド、ドルビー(R)シアターサラウンド（Ｄｏｌｂｙ  Ｔｈｅａｔｒｅ  Ｓｕｒｒｏｕｎｄ）（ＤＴＳ）、およびブルーレイ(R)ディスクからの７．１サラウンドサウンドのデコードに対応している。
【００８３】
本実施形態では、ビデオカメラ１４１２は、１つの電荷結合素子（ＣＣＤ）、ＬＥＤインジケータ、およびハードウェアベースのリアルタイムデータ圧縮およびエンコード装置を備え、圧縮ビデオデータが、システムユニット１４００によるデコードのために、イントラ画像ベースのＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）標準などの適切なフォーマットで送信されるようになる。カメラのＬＥＤインジケータは、例えば不利な照明条件を示す適切な制御データをシステムユニット１４００から受け取ると、発光するように配置されている。ビデオカメラ１４１２の実施形態は、ＵＳＢ、ブルートゥースまたはＷｉ−Ｆｉの通信ポートを介して、システムユニット１４００にさまざまな方法で接続しうる。ビデオカメラの実施形態は、１つ以上の関連するマイクロフォンを備えており、音声データを送信することができる。ビデオカメラの実施形態では、ＣＣＤは、高解像度のビデオキャプチャに適した分解能を備えうる。使用時に、ビデオカメラによってキャプチャされた画像が、例えば、ゲーム内に取り込まれるか、またはゲームの制御入力として解釈されうる。別の実施形態では、カメラは、赤外光の検出に適した赤外線カメラである。
【００８４】
一般に、システムユニット１４００の通信ポートの１つを介して、ビデオカメラまたはリモコン等などの周辺機器とのデータ通信がうまく行われるように、デバイスドライバ等の適切なソフトウェアを提供する必要がある。デバイスドライバ技術は公知であり、ここで詳細に説明しないが、当業者であればデバイスドライバまたは同様のソフトウェアインタフェースが、記載する本実施形態で必要とされうることを理解するであろう。
【００８５】
図９に、本発明の一実施形態による、命令の処理に使用されうる付加的ハードウェアを示す。セルプロセッサ１４２８は、メモリコントローラ１５６０およびデュアルバスインタフェースコントローラ１５７０Ａ、Ｂを含む外部入出力構造、パワープロセッシングエレメント（Ｐｏｗｅｒ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）１５５０と呼ばれるメインプロセッサ、シナジスティックプロセッシングエレメント（Ｓｙｎｅｒｇｉｓｔｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ（ＳＰＥ））１５１０Ａ〜Ｈと呼ばれる８基のコプロセッサ、要素相互接続バス（Ｅｌｅｍｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｂｕｓ）１５８０と呼ばれる上記のコンポーネントに接続している環状データバス、の４つの基本コンポーネントを備えたアーキテクチャを有する。プレイステーション２デバイスのエモーションエンジン（Ｅｍｏｔｉｏｎ  Ｅｎｇｉｎｅ）は６．２ギガフロップスであるのに対し、Ｃｅｌｌプロセッサの総浮動小数点演算性能は、２１８ギガフロップスである。
【００８６】
パワープロセッシングエレメント（ＰＰＥ））１５５０は、３．２ＧＨｚの内部クロックで動作し、双方向同時マルチスレッディングＰｏｗｅｒ１４７０準拠のＰｏｗｅｒＰＣコア（ＰＰＵ）１５５５をベースにしている。ＰＰＥ１５５０は、５１２ｋＢのレベル２（Ｌ２）キャッシュと、３２ｋＢのレベル１（Ｌ１）キャッシュとを備える。ＰＰＥ１５５０は、クロックサイクルごとに８つのシングルポジション操作、いわゆる単一位置操作ができ、これは、３．２ＧＨｚで２５．６ギガフロップスに相当する。ＰＰＥ１５５０の主な役割は、演算作業負荷の大部分を処理するシナジスティックプロセッシングエレメント１５１０Ａ〜Ｈのコントローラとして機能することにある。動作時に、ＰＰＥ１５５０はジョブキューを保持し、シナジスティックプロセッシングエレメント１５１０Ａ〜Ｈのジョブをスケジュールしており、その進捗を監視する。したがって、各シナジスティックプロセッシングエレメント１５１０Ａ〜Ｈはカーネルを実行し、その役割は、ジョブを取り出して、これを実行し、ＰＰＥ１５５０と同期されることにある。
【００８７】
各シナジスティックプロセッシングエレメント（ＳＰＥ）１５１０Ａ〜Ｈは、シナジスティックプロセッシングユニット（Ｓｙｎｅｒｇｉｓｔｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＳＰＵ））１５２０Ａ〜Ｈおよびメモリフローコントローラ（Ｍｅｍｏｒｙ  Ｆｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ（ＭＦＣ））１５４０Ａ〜Ｈをそれぞれ備え、ＭＦＣ１５４０Ａ〜Ｈは、ダイナミックメモリアクセスコントローラ（Ｄｙｎａｍｉｃ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ（ＤＭＡＣ）１５４２Ａ〜Ｈ、メモリ管理ユニット（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ（ＭＭＵ）１５４４Ａ〜Ｈ、およびバスインタフェース（不図示）をそれぞれ備える。各ＳＰＵ１５２０Ａ〜Ｈは３．２ＧＨｚでクロック供給され、原則として４ＧＢまで拡張可能な２５６ｋＢのローカルＲＡＭ１５３０Ａ〜Ｈを備えたＲＩＳＣプロセッサである。各ＳＰＥは、理論的には単精度処理性能で２５．６ギガフロップスを示す。１つのＳＰＵは、１クロックサイクルに、４つの単精度浮動小数点数、４つの３２ビット数、８つの１６ビット整数または１６の８ビット整数を処理することができる。同じクロックサイクルで、メモリ操作も実行することができる。ＳＰＵ１５２０Ａ〜ＨはシステムメモリＸＤＲＡＭ１４２６に直接アクセスしない。ＳＰＵ１５２０Ａ〜Ｈが作成した６４ビットアドレスがＭＦＣ１５４０Ａ〜Ｈに渡され、ＭＦＣ１５４０Ａ〜Ｈが、自身のＤＭＡコントローラ１５４２Ａ〜Ｈに対して、要素相互接続バス１５８０およびメモリコントローラ１５６０を介してメモリにアクセスするように指示する。
【００８８】
要素相互接続バス（ＥＩＢ）１５８０は、セルプロセッサ１４２８内部の論理的には環状の通信バスであり、上記のプロセッサ要素（すなわち、ＰＰＥ１５５０、メモリコントローラ１５６０、デュアルバスインタフェース１５７０Ａ、Ｂ、および８基のＳＰＥ１５１０Ａ〜Ｈ、合計１２個のパーティシパント）を接続している。パーティシパントは、１クロックサイクルにつき８バイトの速度で、バスに同時に読み出しおよび書き込みを行うことができる。上で説明したように、各ＳＰＥ１５１０Ａ〜Ｈは、長いリードまたはライトのシーケンスをスケジュールするためのＤＭＡＣ１５４２Ａ〜Ｈを備える。ＥＩＢは、４つのチャネルを備え、そのうち２つは時計回り方向であり、残り２つは反時計回り方向である。したがって、１２のパーティシパントについて、２つのパーティシパント間のステップ方式の最長のデータフローは、適切な方向で６ステップとなる。このため、パーティシパント間でアービトレーションが行われて完全な利用度が実現されると、１２のスロットの理論上のピーク瞬間ＥＩＢ帯域幅は、１クロックにつき９６Ｂとなる。これは、３．２ＧＨｚのクロック速度で３０７．２ＧＢ／ｓ（ギガバイト／秒）の理論上のピーク帯域幅に相当する。
【００８９】
メモリコントローラ１５６０は、ラムバス社（Ｒａｍｂｕｓ  Ｉｎｃｏｒｐｏｒａｔｅｄ）によって開発されたＸＤＲＡＭインターフェース１５６２を備える。このメモリコントローラは、２５．６ＧＢ／ｓの理論上のピーク帯域幅で、Ｒａｍｂｕｓ  ＸＤＲＡＭ１４２６とインターフェースする。
【００９０】
デュアルバスインタフェース１５７０Ａ、Ｂは、Ｒａｍｂｕｓ  ＦｌｅｘＩＯ(R)システムインタフェース１５７２Ａ、Ｂを備える。このインターフェースは、それぞれ８ビット幅の１２のチャネルに編成されており、このうち、５の経路が受信用、７つの経路が送信用である。これにより、セルプロセッサと、コントローラ１７０Ａを介してＩ／Ｏブリッジ１４３４間、およびコントローラ１７０Ｂを介してリアリティシミュレータ（Ｒｅａｌｉｔｙ  Ｓｉｍｕｌａｔｏｒ）グラフィックユニット２００間で、理論上のピーク帯域幅が６２．４ＧＢ／ｓ（送信３６．４ＧＢ／ｓ、受信２６ＧＢ／ｓ）が得られる。セルプロセッサ１４２８によってリアリティシミュレータグラフィックユニット１４３０に送信されるデータには、通常、表示リストが含まれ、これは、頂点を描画したり、ポリゴンにテクスチャを貼り付けたり、照明条件を指定するなどための一連のコマンドである。
【００９１】
実施形態では、現実世界のユーザをより正確に特定し、アバターまたはシーンのアクティビティを管理するために深度データのキャプチャが行われてもよい。物体は、人物が把持している物体であっても、人物の手であってもよい。本明細書においては、「深度カメラ」および「３次元カメラ」との用語は、距離情報や深度情報のほかに、２次元のピクセル情報も得ることができるカメラを指す。例えば、距離情報を得るために、深度カメラは制御された赤外光を利用してもよい。別の例示的な深度カメラは、２台のスタンダードカメラを使用して距離情報の三角測量を行う複数のカメラ構成であってよい。同様に、「深度感知デバイス」なる用語は、距離情報のほかに２次元のピクセル情報も得ることができるデバイスを指す。
【００９２】
３次元画像の最近の進歩により、リアルタイムでのインタラクティブなコンピュータアニメーションの実現性を高める可能性が広がっている。特に、新たな「深度カメラ」により、通常の二次元ビデオ画像に加えて、３次元ビデオ画像をキャプチャしマッピングすることができる。新たな深度データを使用して、本発明の実施形態は、コンピュータで生成されたオブジェクトをリアルタイムで他のオブジェクトの背後を含むビデオシーン内の様々な位置に配置することができる。
【００９３】
さらに、本発明の実施形態は、リアルタイムでのインタラクティブなゲーム体験をユーザにさせることができる。例えば、ユーザは、コンピュータが生成したさまざまなオブジェクトとリアルタイムでインタラクションを行うことができる。さらに、ユーザのゲーム体験を高めるためにビデオシーンをリアルタイムで変更することができる。例えば、コンピュータが生成したコスチュームを、ユーザの服にはめ込んだり、コンピュータが生成した光源を利用して、ビデオシーン内に仮想の影を表示させることができる。このため、本発明の各種実施形態と深度カメラを使用して、ユーザは自分のリビングルームでインタラクティブなゲーム環境を体験することができる。深度カメラは、通常のカメラと同様に、ビデオ画像を含む複数のピクセルに対する２次元データをキャプチャする。これらの値はピクセルのカラー値であり、通常は、各ピクセルの赤、緑、青（ＲＧＢ）の値である。このようにして、カメラによってキャプチャされたオブジェクトは、モニタ上で２次元のオブジェクトとして現れる。
【００９４】
さらに本発明の実施形態は分散型の画像処理構成についても考察している。例えば、本発明は、１つの場所（ＣＰＵなど）や２つの場所（ＣＰＵと他の１つの素子など）で行われるキャプチャ画像および表示画像の処理に限定されない。例えば、入力画像処理は、処理を実行することができる関連のＣＰＵ、プロセッサまたは装置において容易に行うことができ、基本的には、画像処理の全てを、相互接続システム全体に分散させることができる。このため、本発明は、特定の画像処理ハードウェア回路および／またはソフトウェアに限定されない。また、本明細書に記載した実施形態は、一般的なハードウェア回路および／またはソフトウェアの特定の組み合わせに限定されず、処理コンポーネントによって実行される命令の特定のソースにも限定されない。
【００９５】
図１０は、本発明の一実施形態による、シーンＡ〜シーンＥと、インターネットを介して処理サーバに接続されているゲームクライアントやゲームコンソール１００２とインターフェースしているそれぞれのユーザＡ〜Ｅの例示的な図である。上述のように、ゲームクライアントは、ユーザがインターネットを介してサーバアプリケーションや処理サーバへの接続を可能にするデバイスである。ゲームクライアントにより、ユーザは、ゲーム、映画、音楽、および写真など（これらに限定されない）のオンラインエンターテインメントコンテンツにアクセスしこれらを再生することができる。さらに、ゲームクライアントは、ＶＯＩＰ、テキストチャットプロトコル、およびｅメールなどのオンライン通信アプリケーションへアクセスできるようにする。
【００９６】
ユーザはコントローラを介してゲームクライアントとインタラクトする。ある実施形態では、コントローラはゲームクライアント固有のコントローラであり、他の実施形態では、コントローラはキーボードとマウスの組み合わせであってよい。一実施形態では、ゲームクライアントは音声および画像信号を出力し、モニタ／テレビおよび関連づけられる音声環境によりマルチメディア環境を生成することができる独立型のデバイスである。例えば、ゲームクライアントは、薄型のクライアント、内蔵型ＰＣＩエクスプレスカード、外付けＰＣＩエクスプレスデバイス、エクスプレスカード（ＥｘｐｒｅｓｓＣａｒｄ）デバイス、内蔵型、外付け、あるいは無線ＵＳＢデバイス、ファイヤーワイヤー（Ｆｉｒｅｗｉｒｅ）デバイスなどでありうるが、これらに限定されない。他の実施形態では、ゲームクライアントは、ＤＶＲ、ブルーレイプレーヤ、ＤＶＤプレーヤ、あるいはマルチチャネルレシーバと一体化されている。
【００９７】
図１０のシーンＡでは、ユーザＡは、ゲームクライアント１００２Ａとペアにされたコントローラ１０２を使用して、モニタ１０６に表示されるクライアントアプリケーションとインタラクトする。同様に、シーンＢでは、ユーザＢは、ゲームクライアント１００２Ｂとペアにされたコントローラ１０２を使用して、モニタ１０６に表示される別のクライアントアプリケーションとインタラクトする。シーンＣは、ユーザがゲームクライアント１００２Ｃからの友人リストあるいはバディリストとゲームが表示されているモニタを見ているユーザＣの背後からのビューを示す図である。図１０は、一実施形態における一つの処理サーバモジュールを図示しているが、多くの処理サーバモジュールが世界中で存在する。各処理サーバモジュールは、ユーザセッションコントロール、共有／通信論理、ユーザのジオロケーション（地理位置情報）、ロードバランス処理サービスのためのサブモジュールを含む。さらに、処理サーバモジュールは、ネットワーク処理と分散型記憶装置とを含む。
【００９８】
ゲームクライアント１００２が処理サーバモジュールに接続するときに、ユーザセッションコントロールを利用してユーザ認証を行うようにしてもよい。認証されたユーザは、関連する視覚化された分散型記憶装置と視覚化されたネットワーク処理とを有することができる。ユーザの視覚化された分散型記憶装置の一部として記憶されうるアイテムの例としては、ゲーム、ビデオおよび音楽などの購入された媒体が挙げられるが、これらに限定されない。さらに、複数のゲームのゲームステータスや、個々のゲームのカスタマイズ設定、ゲームクライアントの一般的な設定をセーブするために分散型記憶装置を利用してもよい。一実施形態では、処理サーバのユーザジオロケーションモジュールを用いて、ユーザと、ユーザのそれぞれのゲームクライアントのジオロケーションが決定される。複数の処理サーバモジュールの処理命令と地理的位置とに基づいてパフォーマンスを最適化するように、共有／通信論理とロードバランス処理サービスとによりこのユーザの地理的位置が用いられてもよい。ネットワーク処理とネットワーク記憶装置の一方あるいは両方を視覚化することにより、十分に活用されていない処理サーバモジュールへゲームクライアントからの処理タスクを動的にシフトさせることができる。従って、ロードバランスを利用して、記憶装置からのリコールと、処理サーバモジュールとゲームクライアント間のデータ送信とに関連づけられるレイテンシーを最小限に抑えるようにしてもよい。
【００９９】
図１０に示しているように、処理サーバモジュールは、例えば、サーバアプリケーションＡおよびサーバアプリケーションＢを有する。処理サーバモジュールは、サーバアプリケーションＸ１とサーバアプリケーションＸ２によって示されるような複数のサーバアプリケーションに対応することができる。一実施形態では、処理サーバは、クラスタコンピューティングアーキテクチャに基づくものであり、このアーキテクチャにより、クラスタ内の複数のプロセッサはサーバアプリケーションを処理することができる。別の実施形態では、サーバアプリケーションを処理するために、様々なタイプのマルチコンピュータプロセッシングスキームが適用される。これにより、複数のクライアントアプリケーションと、対応のサーバアプリケーションとを実行する、より多くのゲームクライアントに対応することができるように、処理サーバを増やすことができる。他の形態では、要求の多いグラフィック処理やゲーム、ビデオ圧縮、あるいはアプリケーションの複雑さにより求められる、増加するコンピューティング命令に対応するように処理サーバを増やすことができる。一実施形態では、処理サーバモジュールは、サーバアプリケーションを介して処理の大部分を実行する。これにより、グラフィックプロセッサ、ＲＡＭ、および汎用プロセッサなどの比較的高額な要素を中央に位置決めすることができ、ゲームクライアントのコストを削減することができる。処理されたサーバアプリケーションデータは、インターネットを介して対応するゲームクライアントに送り戻され、モニタに表示されるようにする。
【０１００】
シーンＣは、ゲームクライアントと処理サーバモジュールにより実行される例示的なアプリケーションを示す。例えば、一実施形態では、ゲームクライアント１００２Ｃにより、ユーザＣは、ユーザＡ、ユーザＢ、ユーザＤ、およびユーザＥを含む友人リストあるいはバディリスト（buddy list：BL）１０２０を生成し、これを見ることができる。図示しているように、シーンＣでは、ユーザＣは、モニタ１０６Ｃでリアルタイム画像か、それぞれのユーザのアバタのいずれか一方を見ることができる。処理サーバでは、ゲームクライアント１００２Ｃのそれぞれのアプリケーションが、ユーザＡ、ユーザＢ、ユーザＤおよびユーザＤのそれぞれのゲームクライアント１００２により実行される。ゲームクライアントＢが実行中のアプリケーションを処理サーバが認識しているので、ユーザＡの友人リストにユーザＢがプレイ中のゲームを表示することができる。さらにまた、一実施形態では、ユーザＡは、ユーザＢが直接みているゲームビデオを直接見ることができる。これは、ユーザＢに対する処理済のサーバアプリケーションデータを、ゲームクライアントＢだけでなく、ゲームクライアントＡに送信するだけでできるようになる。
【０１０１】
友人からの映像を見ることができるだけでなく、この通信アプリケーションにより、友人間でリアルタイム通信ができるようになる。上述した例に適用しているように、これにより、ユーザＡはユーザＢのリアルタイム映像を見ている間に、激励したりヒントを与えることができる。一実施形態では、双方向リアルタイム音声通信は、クライアント／サーバアプリケーションを介して確立される。別の実施形態では、クライアント／サーバアプリケーションはテキストでのチャットを可能にする。さらに別の実施形態では、クライアント／サーバアプリケーションは、音声やスピーチをテキストに変換して友人のスクリーンに表示する。シーンＤは、ゲームコンソール１０１０Ｄとインタラクト中のユーザＤを、シーンＥは、ゲームコンソール１０１０Ｅとインタラクト中のユーザＥを示す。各ゲームコンソール１０１０Ｄと１０１０Ｅは、処理サーバモジュールに接続されており、この処理サーバモジュールがゲームコンソールとゲームクライアント両方に対するゲームプレイを調整しているネットワークを示す。
【０１０２】
上記の実施形態を考慮に入れて、本発明が、コンピュータシステムに記憶されているデータを使用する、各種のコンピュータ実装操作を使用してもよい点を理解すべきである。これらの操作には、物理量の物理的な操作を必要とする操作が含まれる。この物理量は通常、記憶、転送、結合、比較などの操作が可能な電気信号または磁気信号の形を取るが、必ずしもこれらに限定されない。さらに、実行される操作は、生成、特定、決定または比較などと呼ばれることが多い。
【０１０３】
上記した発明は、携帯式デバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電気製品、ミニコンピュータ、メインフレームコンピュータなど、他のコンピュータシステム構成によって実施されてもよい。また、本発明は、分散コンピューティング環境で実施されてもよく、このような環境では、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される。
【０１０４】
また、本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして実施されてもよい。コンピュータ可読媒体は、電磁搬送波を含め、コンピュータシステムによって後から読取ることができるデータを記憶できるデータ記憶装置であれば、どのようなものに存在してもよい。コンピュータ可読媒体の例には、ハードディスク、ネットワーク接続記憶装置（ＮＡＳ）、リードオンリーメモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープおよび他の光学式データ記憶装置および非光学式データ記憶装置などがある。また、コンピュータ可読媒体は、コンピュータ可読コードが分散式に記憶されて、実行されるように、ネットワークに結合されたコンピュータシステムを介して分散されてもよい。上記に、本発明を明確に理解できるように多少詳細に記載したが、添付の特許請求の範囲内で変更例または変形例を実施できることは明らかである。したがって、本実施形態は例示的なものであり、制限するものではなく、本発明は本明細書に記載されている詳細な事項に限定されず、添付の特許請求の範囲およびその均等物の範囲内で変更されてもよい。
【図１】
0005575228.tif 000002
【図２Ａ】
0005575228.tif 000003
【図２Ｂ】
0005575228.tif 000004
【図３Ａ】
0005575228.tif 000005
【図３Ｂ】
0005575228.tif 000006
【図３Ｂ−１】
0005575228.tif 000007
【図３Ｂ−２】
0005575228.tif 000008
【図３Ｂ−３】
0005575228.tif 000009
【図３Ｂ−４】
0005575228.tif 000010
【図３Ｂ−５】
0005575228.tif 000011
【図３Ｃ】
0005575228.tif 000012
【図４】
0005575228.tif 000013
【図５】
0005575228.tif 000014
【図６Ａ】
0005575228.tif 000015
【図６Ｂ】
0005575228.tif 000016
【図６Ｃ】
0005575228.tif 000017
【図６Ｄ】
0005575228.tif 000018
【図７】
0005575228.tif 000019
【図８】
0005575228.tif 000020
【図９】
0005575228.tif 000021
【図１０】
0005575228.tif 000022