(57)【要約】【課題】ゲームプレーヤにより良好なゲームプレーイング体験を提供する。【解決手段】方法は、コントローラのポインタ位置および傾斜角をサンプリングするステップと、サンプリングに基づいて中心領域傾斜値を計算するステップと、計算した中心領域傾斜値に基づいて上限および下限傾斜値限度を計算するステップと、ビデオゲームシステムが、ゲームプレーヤのコントローラの使用に基づいて仮想ポインタＹ軸値を処理することができるように、計算した値を格納するステップを含み、ポインタ位置は、コントローラとモニタの画面との間の相互関係に基づいている。【選択図】図２Ｂ
2012256371.tif 000002
【特許請求の範囲】
【請求項１】
コントローラのポインタ位置および傾斜角をサンプリングするステップと、
前記サンプリングに基づいて中心領域傾斜値を計算するステップと、
前記計算した中心領域傾斜値に基づいて上限および下限傾斜値限度を計算するステップと、
ビデオゲームシステムが、ゲームプレーヤの前記コントローラの使用に基づいて仮想ポインタＹ軸値を処理することができるように、前記計算した値を格納するステップと、を備え、
前記ポインタ位置は、前記コントローラとモニタの画面との間の相互関係に基づいている方法。
【請求項２】
コントローラのポインタ位置および傾斜角をサンプリングするステップと、
前記サンプリングに基づいて中心領域傾斜値を計算するステップと、
前記計算した中心領域傾斜値に基づいて上限および下限傾斜値限度を計算するステップと、
前記計算に基づいてＹ軸値を求めるステップと、
前記計算に基づいてＸ軸値を求めるステップと、
ビデオゲームシステムが、ゲームプレーヤの前記コントローラの使用に基づいて仮想ポインタＸ軸値およびＹ軸値を処理することができるように、前記求めたＸ軸値および前記Ｙ軸値を格納するステップと、を備え、
前記ポインタ位置は、前記コントローラとモニタの画面との間の相互関係に基づいている方法。
【請求項３】
前記サンプリングするステップは、前記ポインタ位置をサンプリングすることができず、かつ前記傾斜角をサンプリングすることができるとき、１つまたは複数の前記計算した傾斜値のみに基づいてアバタを操作するステップを備える請求項１または２に記載の方法。
【請求項４】
前記モニタの前記画面上にカーソルを表示するステップと、
前記傾斜値に基づいて前記カーソルを移動するステップと、
前記表示されたカーソルの方向に向けて前記アバタを移動するステップと、を備え、
前記カーソルを移動するステップは、前記カーソルをカーソル経路内で移動させる請求項３に記載の方法。
【請求項５】
前記カーソルを表示するステップは、
前記ポインタ位置をサンプリングすることができるかどうかを判定するステップと、
前記判定に基づいて前記カーソルの色を変更するステップと、を備える請求項４に記載の方法。
【請求項６】
コンピュータで実行されたときに、コントローラの位置決めに基づいて位置を処理する方法を前記コンピュータに実行させる命令を格納するコンピュータ読み取り可能な記録媒体であって、前記方法は、
前記コントローラのポインタ位置および傾斜角をサンプリングするステップと、
前記サンプリングに基づいて中心領域傾斜値を計算するステップと、
前記計算した中心領域傾斜値に基づいて上限および下限傾斜値限度を計算するステップと、
ビデオゲームシステムが、ゲームプレーヤの前記コントローラの使用に基づいて仮想ポインタＹ軸値を処理することができるように、前記計算した値を格納するステップと、を備え、
前記ポインタ位置は、前記コントローラとモニタの画面との間の相互関係に基づいているコンピュータ読み取り可能な記録媒体。
【請求項７】
コンピュータで実行されたときに、コントローラの位置決めに基づいて位置を処理する方法を前記コンピュータに実行させる命令を格納するコンピュータ読み取り可能な記録媒体であって、前記方法は、
前記コントローラのポインタ位置および傾斜角をサンプリングするステップと、
前記サンプリングに基づいて中心領域傾斜値を計算するステップと、
前記計算した中心領域傾斜値に基づいて上限および下限傾斜値限度を計算するステップと、
前記計算に基づいてＹ軸値を求めるステップと、
前記計算に基づいてＸ軸値を求めるステップと、
ビデオゲームシステムが、ゲームプレーヤの前記コントローラの使用に基づいて仮想ポインタＸ軸値およびＹ軸値を処理することができるように、前記求めたＸ軸値および前記Ｙ軸値を格納するステップと、を備え、
前記ポインタ位置は、前記コントローラとモニタの画面との間の相互関係に基づいているコンピュータ読み取り可能な記録媒体。
【請求項８】
前記サンプリングするステップは、前記ポインタ位置をサンプリングすることができず、かつ前記傾斜角をサンプリングすることができるとき、１つまたは複数の前記計算した傾斜値のみに基づいてアバタを操作するステップを備える請求項６または７に記載のコンピュータ読み取り可能な記録媒体。
【請求項９】
前記モニタの前記画面上にカーソルを表示するステップと、
前記傾斜値に基づいて前記カーソルを移動するステップと、
表示された前記カーソルの方向に向けて前記アバタを移動するステップと、を備え、
前記カーソルを移動するステップは、前記カーソルをカーソル経路内で移動させる請求項８に記載のコンピュータ読み取り可能な記録媒体。
【請求項１０】
前記カーソルを表示するステップは、
前記ポインタ位置をサンプリングすることができるかどうかを判定するステップと、
前記判定に基づいて前記カーソルの色を変更するステップと、を備える請求項９に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の特典
本願は、共に参照によりその全体が本明細書に組み込まれる２００７年６月１２日出願の米国仮出願第６０／９２９,１４３号および２００７年６月１３日出願の米国仮出願第６０／９２９,１４４号の特典を主張するものである。
【０００２】
本発明の実施形態は、入力装置を制御し、コリジョンデータを生成し、カメラ角度を制御する方法およびシステムに関する。
【背景技術】
【０００３】
ビデオゲームコンソールは、１９７０年代初期から存在している。この世代の最も人気のあるゲームの１つは、ピンポン型のビデオゲームであるＰｏｎｇであった。以来、こうしたビデオゲームを提供するビデオゲームコンソールは、大きな変化を遂げてきた。
【０００４】
今日、３つの主要なビデオゲームコンソールは、Ｓｏｎｙ Ｐｌａｙｓｔａｔｉｏｎ ３、Ｍｉｃｒｏｓｏｆｔ ３６０、およびＮｉｎｔｅｎｄｏ Ｗｉｉである。これらのコンソールはそれぞれ非常に成功を収めている。例えば、Ｎｉｎｔｅｎｄｏ Ｗｉｉが非常に成功を収めている一要因には、そのワイヤレスコントローラであるＷｉｉ Ｒｅｍｏｔｅがある。
【０００５】
Ｗｉｉ Ｒｅｍｏｔｅは、ハンドヘルドポインティングデバイスとして使用され、３次元の運動を検出する。Ｗｉｉ Ｒｅｍｏｔｅは、内蔵加速度計と赤外線検出の組合せを使用して、ＷｉｉコンソールのＳｅｎｓｏｒ Ｂａｒ内のＬＥＤに向けられたときに（３Ｄ）空間内の位置を感知する。この設計により、ユーザは、従来型ボタン押下だけでなく、物理的ジェスチャによってゲームを制御することが可能になる。
【０００６】
Ｗｉｉ Ｒｅｍｏｔｅは、Ｓｅｎｓｏｒ Ｂａｒ内に配置されたＬＥＤからの光を感知する。Ｗｉｉ ＲｅｍｏｔｅがＴＶ画面上のカーソルの上下、左右運動を制御して、メニューオプションまたは１人用シュータ型ゲームにおける敵などのオブジェクトをポイントしているときに、Ｓｅｎｓｏｒ Ｂａｒが必要となる。Ｗｉｉ ＲｅｍｏｔｅおよびＳｅｎｓｏｒ Ｂａｒを有するＷｉｉビデオゲームコンソールはゲームプレーヤに良好なゲーミング体験を提供するが、ポインタ位置決めを検出するのに主にＳｅｎｓｏｒ Ｂａｒを利用しなければならないという制限がある。例えば、プレーヤがＷｉｉ ＲｅｍｏｔｅのポインタをＳｅｎｓｏｒ Ｂａｒによって感知される光検出エリアの外部の位置に移動すると、Ｗｉｉ Ｒｅｍｏｔｅによって提供される光データを検出することができない。ポインタがこのエリア外にある場合、ゲームプレーヤは、ゲームを制御することができなくなる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
したがって、ゲームプレーヤにより良好なゲームプレーイング体験を提供することが求められている。
【課題を解決するための手段】
【０００８】
本発明のある実施形態は、コントローラのポインタ位置および傾斜角をサンプリングするステップと、サンプリングに基づいて中心領域傾斜値を計算するステップと、計算した中心領域傾斜値に基づいて上限および下限傾斜値限度を計算するステップと、ビデオゲームシステムが、ゲームプレーヤのコントローラの使用に基づいて仮想ポインタＹ軸値を処理することができるように、計算した値を格納するステップを含み、ポインタ位置が、コントローラとモニタの画面との間の相互関係に基づいている方法を提供する。
【０００９】
ある実施形態は、コントローラのポインタ位置および傾斜角をサンプリングするステップと、サンプリングに基づいて中心領域傾斜値を計算するステップと、計算した中心領域傾斜値に基づいて上限および下限傾斜値限度を計算するステップと、計算に基づいてＹ軸値を求めるステップと、計算に基づいてＸ軸値を求めるステップと、ビデオゲームシステムが、ゲームプレーヤのコントローラの使用に基づいて仮想ポインタＸ軸値およびＹ軸値を処理することができるように、求めたＸ軸値およびＹ軸値を格納するステップを含み、ポインタ位置が、コントローラとモニタの画面との間の相互関係に基づいている方法を記述する。
【００１０】
本発明に適合するある実施形態は、コンピュータで実行されたときに、コントローラの位置決めに基づいて位置を処理する方法をコンピュータに実行させる命令を格納するコンピュータ読み取り可能な記録媒体を提供する。こうした命令は、コントローラのポインタ位置および傾斜角をサンプリングするステップと、サンプリングに基づいて中心領域傾斜値を計算するステップと、計算した中心領域傾斜値に基づいて上限および下限傾斜値限度を計算するステップと、およびビデオゲームシステムが、ゲームプレーヤのコントローラの使用に基づいて仮想ポインタＹ軸値を処理することができるように、計算した値を格納するステップ含み、ポインタ位置が、コントローラとモニタの画面との間の相互関係に基づいている方法をコンピュータに実行させる。
【００１１】
本発明に適合するある実施形態は、コンピュータで実行されたときに、コントローラの位置決めに基づいて位置を処理する方法をコンピュータに実行させる命令を格納するコンピュータ読み取り可能な記録媒体を提供する。こうした命令は、コントローラのポインタ位置および傾斜角をサンプリングするステップと、サンプリングに基づいて中心領域傾斜値を計算するステップと、計算した中心領域傾斜値に基づいて上限および下限傾斜値限度を計算するステップと、計算に基づいてＹ軸値を求めるステップと、計算に基づいてＸ軸値を求めるステップと、ビデオゲームシステムが、ゲームプレーヤのコントローラの使用に基づいて仮想ポインタＸ軸値およびＹ軸値を処理することができるように、求めたＸ軸値およびＹ軸値を格納するステップを含み、ポインタ位置が、コントローラとモニタの画面との間の相互関係に基づいている方法をコンピュータに実行させる。
【図面の簡単な説明】
【００１２】
【図１】例示的ビデオゲーム装置のブロック図である。
【図２Ａ】本発明のある実施形態に適合するビデオゲーム装置に結合されたモニタの画面および例示的ＬＥＤモジュールを含む例示的システムを示す図である。
【図２Ｂ】本発明のある実施形態に適合するコントローラの光センサおよび加速度センサを使用してどのようにカーソル経路に沿ったカーソルの移動が実施されるかについての例示的実施形態を示す図である。
【図３Ａ】本発明のある実施形態に適合するＬＥＤモジュールによって提供される赤外線パターンを示す例示的実施形態を与える図である。
【図３Ｂ】本発明のある実施形態に適合する画面に対するコントローラの傾斜を示す図である。
【図３Ｃ】コントローラの加速度センサからのサンプリング済み傾斜データを本発明のある実施形態に適合するコントローラの位置決めに基づいてどのように正規化することができるかを示す図である。
【図４】本発明のある実施形態に適合するコントローラの加速度センサおよび／またはジャイロセンサを使用して仮想ポインタＹ軸値を計算する例示的方法の流れ図を示す図である。
【図５】本発明のある実施形態に適合する仮想ポインタ位置をサンプリングする例示的方法の流れ図を示す図である。
【図６】本発明のある実施形態に適合するコントローラの傾斜角を計算する例示的方法の流れ図を示す図である。
【図７】本発明のある実施形態に適合するコントローラの加速度センサおよび／またはジャイロセンサを使用して仮想ポインタＸ軸値を計算する例示的方法を示す図である。
【図８】２Ｄ平面セグメントを生成することに基づいて３Ｄ経路を画定する技法を示す図である。
【図９Ａ】図８に示す技法を改善するのに使用することのできる例示的３Ｄセグメントを示す図である。
【図９Ｂ】アバタが１組の接続された経路線平面に沿って移動することができるように互いに結合された複数の３Ｄセグメントを示す図である。
【図１０】所定の経路の例示的俯瞰図を示す図である。
【図１１】本発明のある実施形態に適合する各３Ｄセグメントについてフロア、天井、および壁データを格納するビデオゲーム装置メモリの一実施形態を示す図である。
【図１２Ａ】３Ｄ世界の中を移動するアバタの例示的実施形態を示す図である。
【図１２Ｂ】３Ｄ世界の中を移動するアバタの例示的実施形態を示す図である。
【図１２Ｃ】３Ｄ世界の中を移動するアバタの例示的実施形態を示す図である。
【図１３】所定の経路が中間線を含む一実施形態を示す図である。
【図１４】所定の経路内のアバタの位置に基づいてどのようにカメラ角度を変更することができるかについての一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の例示的実施形態を詳細に参照する。これらの例が添付の図面に示されている。同一または類似の部分を参照するのに、図面全体を通して同一の参照番号が可能な限り使用される。
【００１４】
図１は、例示的ビデオゲーム装置１のブロック図である。ビデオゲーム装置１は、ＣＰＵブロック１０、ビデオブロック１１、サウンドブロック１２、および通信装置１３０を含む。図１はまた、ビデオゲーム装置１で実行されるゲームをプレイする目的で操作するのに使用されるコントローラ３も示す。
【００１５】
ＣＰＵブロック１０は、バスアービタ１００、ＣＰＵ１０１、メインメモリ１０２、ブートＲＯＭ１０３、およびＣＤドライブ１０４を含む。バスアービタ１００は、１つまたは複数のバスを介して相互に接続された装置にバス占有時間を割り当てることによってデータを送信および受信することができる。ＣＰＵ１０１は、受信ユニット１４２を介してメインメモリ１０２、ブートＲＯＭ１０３、ＣＤドライブ１０４、ビデオブロック１１、サウンドブロック１２、バックアップメモリ（図示せず）、およびコントローラ３にアクセスすることができる。例えば、受信ユニット１４２をワイヤレスインターフェースまたは有線通信ポートとして提供することができる。
【００１６】
ビデオブロック１１はとりわけ、ビデオディスプレイプロセッサ（ＶＤＰ）１１０、グラフィックメモリ１１１、およびビデオエンコーダ１１２（ビデオブロック１１の外部に図示）を含む。サウンドブロック１２はとりわけ、サウンドプロセッサ１２０、サウンドメモリ１２１、およびＤ／Ａ変換器１２２（サウンドブロック１２の外部に図示）を含む。
【００１７】
ＣＰＵ１０１は、電源がオンにされたときにブートＲＯＭ１０３に格納された初期化プログラムを実行し、装置１を初期化し、例えばＣＤ１０５がＣＤドライブ１０４にインストールされたことをＣＰＵ１０１が検出したとき、ＣＤ１０５に格納されたオペレーティングシステムプログラムデータをメインメモリ１０２に転送する。
【００１８】
その後で、ＣＰＵ１０１は、オペレーティングシステムに従って動作し、本発明のある実施形態による、ＣＤ１０５に格納されたゲーム処理方法のプログラムを引き続きメインメモリ１０２に転送して実行する。
【００１９】
さらに、ＣＰＵ１０１は、ゲーム処理イメージデータをグラフィックメモリ１１１に転送し、サウンドデータをサウンドメモリ１２１に転送する。ＣＰＵ１０１で実行されるプログラムの処理ステップは、コントローラ３からのオペレーション信号および通信装置１３０からの通信データの入力、そのような入力基づくコントローラ３へのコマンド出力、ならびにビデオブロック１１で実施すべきイメージ出力およびサウンドブロック１２で実施すべきサウンド出力の制御を含む。
【００２０】
メインメモリ１０２は、上述のオペレーティングシステムプログラムデータおよび他のプログラムを格納することができ、静的変数および動的変数のための作業域も提供することができる。ブートＲＯＭ１０３は、初期プログラムローダの記憶領域である。
【００２１】
ＣＤドライブ１０４はＣＤ１０５を受けることができ、ＣＤ１０５がその中にインストールされたとき、ＣＰＵ１０１は、ＣＤ１０５上で提供されるデータを読み取る。ＣＰＵ１０１は、読み取ったデータを出力し、ＣＰＵ１０１の制御に従ってデータを転送する。
【００２２】
ＣＤ１０５は、ビデオゲーム装置１にゲーム処理を実行させるプログラムと、イメージ表示用のイメージデータと、サウンド出力用のサウンドデータとを格納する。記録媒体はＣＤ１０５には限定されず、他の様々な機械読み取り可能な記録媒体でよい。ＣＤ１０５に格納されたデータグループをメインメモリ１０２に転送し、または通信装置１３０を介して、入力ポート１３１に接続されたゲーム供給サーバのリモートメモリ装置に転送することも可能である。このタイプの設定により、リモートサーバのセキュアディスクなどからのデータ伝送が可能となる。
【００２３】
グラフィックメモリ１１１は、前述のようにＣＤ１０５から読み取ったイメージデータを格納し、ＶＤＰ１１０は、グラフィックメモリ１１１に格納されたイメージデータの中からイメージ表示に必要なイメージデータを読み取り、座標変換（幾何学的演算）、テクスチャザッピング処理、表示優先順位処理、シェーディング処理、およびＣＰＵ１０１から供給されるイメージ表示に必要な情報に従う任意の他の必要な表示処理を実行する。この必要な情報は、例えばコマンドデータ、視点位置データ、光源位置データ、オブジェクト指定データ、オブジェクト位置データ、テクスチャ指定データ、テクスチャ密度データ、および視野変換マトリックスデータを含むことができる。さらに、例えば上述の座標変換などの処理を実施するようにＣＰＵ１０１を構成することが可能である。言い換えれば、装置の動作能力を考慮して、それぞれの処理ステップをそれぞれの装置に割り当てることができる。ビデオエンコーダ１１２は、ＶＤＰ１１０で生成されたイメージデータを、例えばＮＴＳＣフォーマットの規定のテレビジョン信号に変換することができ、そのような信号を、外部接続されたメインモニタ１１３に出力することができる。
【００２４】
サウンドメモリ１２１は、上述のように、ＣＤ１０５から読み取ったサウンドデータを格納する。サウンドプロセッサ１２０は、ＣＰＵ１０１から供給されるコマンドデータに基づいてサウンドメモリ１２１に格納された波形データなどのサウンドデータを読み取り、例えば、デジタル信号プロセッサ（ＤＳＰ）機能に従って様々なエフェクト処理およびデジタル／アナログ（Ｄ／Ａ）変換処理を実施する。Ｄ／Ａ変換器１２２は、サウンドプロセッサ１２０で生成されたサウンドデータをアナログ信号に変換し、そのような信号を、外部接続されたスピーカ１２３に出力する。
【００２５】
通信装置１３０は、ビデオゲーム装置１に接続可能な装置、例えばモデムまたは端末アダプタであり、ビデオゲーム装置１を外部回路に接続するアダプタとして機能する。さらに、通信装置１３０は、公衆回路網に接続されたゲーム供給サーバから送信されたデータを受信し、そのようなデータをＣＰＵブロック１０のバスに供給する。そのような公衆回路網に、加入者回路、専用線、有線またはワイヤレス回線などとしてアクセスすることができる。
【００２６】
ビデオゲーム装置１は、接続端末を介して受信ユニット１４２に接続される。受信ユニット１４２は、コントローラ３からワイヤレスに送信された送信データを受信し、それによって、コントローラ３およびビデオゲーム装置１をワイヤレス通信で互いに接続することを可能にする。ビデオゲーム装置１でプレイするゲームプレーヤは、モニタ１１３上に表示されるゲームイメージを注視しながらコントローラ３を操作することによってゲームを楽しむことができる。例えば、コントローラ３は、参照により本明細書に組み込まれる「Ｇａｍｅ Ｓｙｓｔｅｍ ａｎｄ Ｓｔｏｒａｇｅ Ｍｅｄｉｕｍ Ｈａｖｉｎｇ Ｇａｍｅ Ｐｒｏｇｒａｍ Ｓｔｏｒｅｄ Ｔｈｅｒｅｏｎ」という名称の米国出願第１１／４０４８４４号（米国公開公報第２００７／００４９３７４号）および／または「Ｇａｍｅ Ｃｏｎｔｒｏｌｌｅｒ ａｎｄ Ｇａｍｅ Ｓｙｓｔｅｍ」という名称の米国出願１１／５０４０８６号（米国公開公報第２００７／００７２６８０号）に記載のコントローラでよい。
【００２７】
コントローラ３は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の技術を使用して、その中に含まれる通信部分からの送信データを、受信ユニット１４２に接続されたビデオゲーム装置１にワイヤレスに送信する。コントローラ３は、フレキシブル接続ケーブル２３によって互いに接続されたコアユニット２１およびサブユニット２２という２つの制御ユニットを含む。この実施形態は、コントローラが２つのユニットを含むことを示すが、コントローラ３は単一の装置または複数の装置でよいことを当業者はここで理解されよう。コントローラ３は、モニタ１１３上に表示されるゲームスペース内に現れるプレーヤオブジェクトを主に操作するための操作手段である。コアユニット２１およびサブユニット２２はそれぞれ、とりわけ複数の操作ボタン、キー、ジョイスティックなどの動作部分を含む。コアユニット２１は、コアユニット２１から見たイメージを取り込む光センサ、１つまたは複数の加速度センサ、および／またはその中のジャイロ素子によって定義される少なくとも１つの軸の周りの回転（または角速度）を検出するジャイロセンサを含む。図２Ｂを参照しながら以下でより完全に説明するが、光センサの撮像対象の一例として、１つまたは複数のＬＥＤモジュールをモニタ１１３のディスプレイ画面の周辺に設けることができる。１つまたは複数のＬＥＤモジュールはそれぞれ、モニタ１１３から離れる赤外線光を出力する。この実施形態ではコアユニット２１およびサブユニット２２が接続ケーブル２３で互いに接続されるが、サブユニット２２はワイヤレスユニットを有することができ、それによって接続ケーブル２３が不要となる。例えばサブユニット２２は、ワイヤレスユニットとしてＢｌｕｅｔｏｏｔｈ（登録商標）ユニットを有することができ、それによってサブユニット２２は操作データをコアユニット２１に送信することができる。
【００２８】
コアユニット２１は、その前面で、光センサ内に含まれるイメージピックアップ素子を提供する。光センサは、コアユニット２１によって取り込まれたイメージデータを解析し、解析したイメージデータからの高輝度を有するかなりの大きさのエリアに基づいて、モニタ１１３に対応する中心領域、例えば図３Ａの中心領域３０４を検出する際の助けとなるデータを提供する。光センサは、例えば最大サンプリング周期約２００フレーム／秒を有することができ、したがって比較的高速なコアユニット２１の運動さえもトレースおよび解析することができる。
【００２９】
光センサは、赤外線フィルタ、レンズ、イメージピックアップ素子、およびイメージ処理回路を含む。赤外線フィルタは、コアユニット２１の前面に入射する光の中で赤外光のみが通過することを可能にする。レンズは、赤外線フィルタを通過した赤外光を収集し、赤外線光をイメージピックアップ素子に出力する。イメージピックアップ素子は、例えばＣＭＯＳセンサやＣＣＤなどの固体撮像デバイスである。イメージピックアップ素子は、レンズで収集された赤外光のイメージを取り込む。したがって、イメージピックアップ素子は、赤外線フィルタを通過した赤外光のみのイメージを取り込んでイメージデータを生成する。イメージピックアップ素子で生成されたイメージデータが、イメージ処理回路で処理される。具体的には、イメージ処理回路は、イメージピックアップ素子から得られたイメージデータを処理し、高輝度を有するイメージデータのスポットを識別し、識別した位置座標およびエリアのサイズを表す処理結果データを受信ユニット１４２に出力する。
【００３０】
光センサは、コアユニット２１のハウジングに固定される。コアユニット２１のハウジングの方向を変更することにより、光センサの撮像方向を変更することができる。コアユニット２１のハウジングはフレキシブル接続ケーブル２３でサブユニット２２に接続され、したがって、光センサの撮像方向はサブユニット２２の方向および位置を変更することでは変化しない。後でより詳細に説明するように、光センサで出力された処理結果データに基づいて、コアユニット２１の位置および運動にしたがって信号を得ることができる。
【００３１】
上述のコアユニット２１の１つまたは複数の加速度センサを３軸加速度センサとして設けることができる。さらに、サブユニット２２も３軸加速度センサを含むことができる。各３軸加速度センサは、３つの方向、すなわち上／下方向、左／右方向、および順／逆方向の線形加速度を検出することができる。あるいは、ゲームプロセスで使用される制御信号のタイプに応じて、上／下方向および左／右方向（または他の方向の対）のそれぞれに沿った線形加速度のみを検出する２軸加速度検出センサを別の実施形態で使用することもできる。例えば３軸加速度センサまたは２軸加速度センサは、Ａｎａｌｏｇ Ｄｅｖｉｃｅｓ，Ｉｎｃ．またはＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ Ｎ．Ｖ．から入手可能なタイプのものでよい。各加速度センサは、シリコンマイクロマシンンドＭＥＭＳ（Ｍｉｃｒｏ Ｅｌｅｃｔｒｏ Ｍｅｃｈａｎｉｃａｌ Ｓｙｓｔｅｍｓ）技術に基づく静電容量（容量結合）型のものでよい。しかし、現在存在し、または後に開発される任意の他の適切な加速度検出技術（例えば圧電型またはピエゾ抵抗型）を使用して、３軸加速度センサまたは２軸加速度センサを提供することができる。
【００３２】
この実施形態の目的について当業者は理解するであろうが、加速度センサで使用される加速度検出手段は、加速度センサの各軸に対応する直線に沿った加速度（線形加速度）を検出することができる。言い換えれば、加速度センサの直接出力のそれぞれは、加速度センサの２軸または３軸のそれぞれに沿った線形加速度（静的または動的）を示す信号を生成する。結果として、加速度センサは、非線形（例えば弓状）経路に沿った運動、回転、回転運動、角変位、傾斜、位置、または姿勢を直接的に検出することができない。
【００３３】
しかし、本明細書の説明から当業者は理解するであろうが、各加速度センサから出力された加速度信号の追加処理により、コアユニット２１およびサブユニット２２に関する追加情報を推測または計算することができる。例えば、静的加速度（すなわち重力）を検出することにより、加速度センサの出力を使用して、傾斜角と検出した加速度とを相関付けることによって重力ベクトルに対するオブジェクト（コアユニット２１またはサブユニット２２）の傾斜を推論することができる。このようにして、加速度センサをビデオゲーム装置１（または別のプロセッサ）と組み合わせて使用して、コアユニット２１およびサブユニット２２の傾斜、姿勢、または位置を求めることができる。同様に、加速度センサを含むコアユニット２１、または加速度センサを含むサブユニット２２が本明細書で説明するように例えばユーザの手による動的加速を受けたときに加速度センサで生成される加速度信号の処理により、コアユニット２１およびサブユニット２２の様々な運動および／または位置を計算または推論することができる。
【００３４】
別の実施形態では、各加速度センサは、ビデオゲーム装置１に信号を出力する前に加速度センサから出力される加速度信号の所望の処理を実施するために、組込み信号プロセッサまたは他のタイプの専用プロセッサを含むことができる。例えば、加速度センサが静的加速度（すなわち重力）を検出するように意図されたとき、組込みプロセッサまたは専用プロセッサは、検出した加速度信号を対応する傾斜角に変換することができる。各加速度センサで検出される加速度を表すデータが、コントローラ３から受信ユニット１４２に送信される。
【００３５】
別の例示的実施形態では、加速度センサのうちの少なくとも１つを、例えば回転素子または振動素子を組み込む任意の適切な技術のジャイロセンサで置き換えることができ、またはそれと組み合わせて使用することができる。コントローラ３のジャイロセンサは、例えば回転素子または振動素子を組み込む任意の適切な技術を含むことができる。この実施形態で使用することのできる例示的ジャイロセンサは、例えばＡｎａｌｏｇ Ｄｅｖｉｃｅｓ，Ｉｎｃ．から入手可能である。ジャイロセンサは、その中のジャイロ素子によって定義された少なくとも１つの軸の周りの回転（または角速度）を直接的に検出することができる。
【００３６】
ジャイロセンサを使用するとき、ビデオゲーム装置１は、検出の開始時に傾斜の値を初期化することができる。次いで、ビデオゲーム装置１は、ジャイロセンサで生成された角速度データを統合することができる。次に、ビデオゲーム装置１は、傾斜の初期化値からの傾斜の変化を計算することができる。この場合、計算された傾斜は角度に対応する。したがって、計算された傾斜をベクトルとして表すことができる。したがって、初期化がない場合、加速度検出センサで絶対的方向を求めることができる。ジャイロセンサの計算された値は、ジャイロセンサが使用されるときの角度の傾斜である。ある実施形態では、加速度センサを使用してジャイロセンサと組み合わせ、ビデオゲーム装置１にデータを提供することができる。話を簡単にするために、本明細書でのジャイロセンサまたは加速度センサで生成されたデータへの参照は、ジャイロセンサと加速度センサの一方または両方からのデータを含むことができる。さらに、コントローラ３はそれ自体で、またはビデオゲーム装置１と組み合わせて、こうしたステップの少なくとも一部を処理できることを当業者はここで理解されよう。
【００３７】
入力装置の制御
図２Ａに、ビデオゲーム装置１に結合されたモニタ１１３の例示的画面２０４および例示的ＬＥＤモジュール２０２を示す。この特定の実施形態では、画面２０４は、アバタ２０６、カーソル２０８、およびカーソル経路２１０を表示する。ある実施形態では、カーソル２０８および／またはカーソル経路２１０は、ゲームプレーヤにとって不可視でよい。ある実施形態では、カーソル２０８および／またはカーソル経路２１０は存在しないことがある。この特定の実施形態では、コントローラ３はＬＥＤモジュール２０２と共に働いてカーソル経路２１０に沿ったカーソル２０８の位置を求め、それによってアバタ２０６がカーソル２０８の方向に移動することができる。
【００３８】
例えば接続サブユニット２２がコアユニット２１に接続されない場合、ゲームプレーヤは、（光センサの使用による）コアユニット２１のポインティング機能および加速度センサを使用することによってアバタ２０６の移動を制御することができる。アバタ２０６とコアユニット２１のポインティング位置との間にカーソルを提供することにより、ビデオゲーム装置１は、ゲームプレーヤがアバタ２０６に容易に追従することを可能にする。ゲームプレーヤがカーソル経路２１０内の位置、すなわちポインタ位置をポイントする場合、ビデオゲーム装置は、カーソル経路２１０内のカーソル２０８を表示することができ、アバタ２０６が微妙に移動していることを示すことができる。
【００３９】
図２Ｂに、コントローラ３の光センサおよび加速度センサを使用してどのようにこの移動が実施されるかについての例示的実施形態を示す。コントローラ３およびＬＥＤモジュール２０２に基づいて、ビデオゲーム装置１で検出することのできる３つのゾーンが存在する。３つのゾーンは画面ゾーン２０４、光感知ゾーン２２０、および加速度感知ゾーン２３０を含む。ゲームプレーヤが画面ゾーン２０４または光感知ゾーン２２０にコントローラ３をポイントしたとき、ビデオゲーム装置１は、光センサからのデータと加速度センサからのデータをどちらも使用することができる。しかし、ゲームプレーヤが光感知ゾーン２２０の外側であるが、まだ加速度感知ゾーン２３０の中にコントローラ３をポイントしたとき、ビデオゲーム装置１は、コントローラ３からの加速度センサ（および／またはジャイロセンサ）データのみを使用することができる。ある実施形態では、ポインタ位置が画面ゾーン２０４内、光感知ゾーン２２０内、および／または加速度感知ゾーン２３０内に位置するどうかに基づいて、カーソル２０８の色を変更することができる。
【００４０】
この特定の実施形態では、ゲームプレーヤが光感知ゾーン２２０の外側にコントローラを移動させた場合にも、依然としてプレーヤがカーソル経路２１０に沿ってカーソル２０８を制御し、したがってゲーム内のアバタ２０６の移動を制御することが可能である。例えば、ユーザは、画面ゾーン２０４上の位置Ａから、画面ゾーン２０４の外側であるがまだ光感知ゾーン２２０内である位置Ｂまでポインタ位置を移動することができる。光センサおよび加速度センサは、コントローラ３に関するデータを生成することができ、コントローラ３は、生成されたデータをビデオゲーム装置１に提供する。したがって、ビデオゲーム装置１は、ポインタ位置Ａに対応する位置から、カーソル経路２１０に沿ったポインタ位置Ｂに対応する位置までカーソル２０８の位置を調節することができる。ある実施形態では、光センサおよび加速度センサはさらに、変更されたポインタ位置の速度および加速度に関する追加のデータを生成することができる。この追加のデータは、アバタの特性を変更することができ、その結果、例えばアバタは、追加のデータに基づいてスピードアップまたはスローダウンすることができる。
【００４１】
ゲームプレーヤがコントローラ３をポインタ位置Ｂからポインタ位置Ｃまで移動したとき、コントローラ３は、光感知ゾーン２２０が終了するポイントまで光センサデータを提供することができる。ポインタ位置が光感知ゾーン２２０の外側であるがまだ加速度センサゾーン２３０の中に移動した後、加速度センサ（および／またはジャイロセンサ）がデータを提供することで、ゲームプレーヤは、カーソル経路２１０に沿ってカーソル２０８の位置を依然として制御することができる。加速度センサは、位置Ｃの位置に関するデータを生成することができる。コントローラ３は、このデータをビデオゲーム装置１に提供することができ、ビデオゲーム装置１は、カーソル経路２１０に沿ってカーソル２０８の位置を更新する。さらに、このデータは、アバタ２０６の特性（例えば速度など）を変更することになる、速度や加速度などの追加の情報を含むことができる。
【００４２】
例えば、画面ゾーン２０４（さらには光感知ゾーン２２０）内のポインタ位置の位置決めを求めるために、ＬＥＤモジュール２０２は、画面ゾーン２０４（または光感知ゾーン２２０）内に赤外線パターンを与えることができる。図３Ａに、ＬＥＤモジュール２０２によって提供されるパターンを示す例示的実施形態を与える。このパターンは、上端領域３０２、中心領域３０４、および下端領域３０６を含む。これらの領域は、Ｘ軸３２０およびＹ軸３３０をセットアップするのに使用することができる。
【００４３】
ユーザがコントローラ３のポインタ位置をこれらの領域のうちの１つを通じて移動し、またはある領域から次の領域に移動したとき、ビデオゲーム装置１は、カーソル経路２１０に沿ってカーソル２０８の位置決めを調節することができる。ビデオゲーム装置１は、位置決めデータ（光センサデータ、ジャイロセンサデータ、および／または加速度計データ）を例えば毎秒３０回サンプリングすることによってポインタ位置を求める。ビデオゲーム装置１がデータの平均を取ることができるように、こうしたサンプルのうちの１つまたは複数をデータブロックに格納することができる。例えばゲームプレーヤは、ゲームをまだプレイしながら、立った位置から座ることがある。座ることにより、コントローラの傾斜が画面２０４に対して変化する可能性が高い（例えば図３Ｂを参照）。図３Ｂでは、プレーヤが座った場合、プレーヤは、ポインタ位置を操作するためにコントローラを画面２０４に向けてより上向きに傾斜させなればならなくなる可能性が高い。このことは、サンプリングのためのコントローラ３の傾斜角および位置に影響を及ぼすことになる。
【００４４】
位置決めデータをサンプリングし、平均を取ることにより、ビデオゲーム装置１は、ゲームプレイに大幅な影響を及ぼすことなくプレーヤの運動を補償することができる。図３Ｃに、加速度センサからのサンプリング済み傾斜データをゲームプレーヤに従うコントローラの位置に基づいてどのように正規化することができるかを示す。例えば、ゲームプレーヤは、コントローラ３の傾斜角が０°となるように、ゲームのプレイ中に立っている可能性がある。プレーヤが座ったとき、モニタ１１３の画面に向けて上向きに、例えば傾斜角１９°でコントローラを傾斜させなければならない可能性がある。この１９°からのずれがある場合、その結果としてプレーヤの移動が生じる。この傾斜データの正規化がない場合、ゲームのプレイが劇的な影響を受ける可能性がある。図３Ａに対応する例示的サンプリングプロセスをさらに図５に示す。
【００４５】
図４に、加速度センサおよび／またはジャイロセンサを使用して仮想ポインタＹ軸値を計算する例示的方法の流れ図を示す。図示する手順を、ステップを削除し、ステップを移動し、または追加のステップをさらに含むように変更できることを当業者は理解されよう。初期スタートステップ４００の後、ビデオゲームシステム（例えばビデオゲーム装置１および／またはコントローラ３）は、有効な画面ポインタ値を得ることができるかどうかを判定する（４０２）。有効な画面ポインタ値を得ることができない場合、以下で説明するステップ４０８に進む。一方、有効な画面ポインタ値を得ることができる場合、ビデオゲームシステムは、コントローラ３のポインタ位置および傾斜角をサンプリングすることができる（４０４）。サンプリングステップ４０４は、図５に示される例示的サンプリング方法でよい。
【００４６】
ポインタ位置および傾斜角をサンプリングした後、ビデオゲームシステムは、サンプリングした画面ポインタ位置から、中心領域３０４に対応するコントローラの傾斜角を計算する（４０６）。このステップにより、ビデオゲームシステムが、例えばゲームプレーヤがゲームをプレイ中に座っているか、それとも立っているかに基づいて傾斜角を正規化することが可能となる。計算ステップ４０６は、図６に示される例示的計算方法でよい。
【００４７】
中心領域３０４からの傾斜角を計算した後、ビデオゲームシステムは、計算される中心領域傾斜角に規定の最大傾斜角を追加して上側傾斜角を求め、計算される中心領域から規定の最小傾斜角を引いて下側傾斜角を求めることによって下側傾斜角を計算する。例えば、図３Ｃに示されるように、ゲームプレーヤがゲームをプレイ中に座っている場合、計算される中心領域３０４は１９°となる。最大および最小傾斜角はそれぞれ２０°および２０°でよい。その場合、上側傾斜角は、１９°（中心領域傾斜角）＋２０°（規定の最大傾斜角）＝３９°となる。下側傾斜角は、１９°（中心領域傾斜角）−２０°（規定の最小傾斜角）＝−１°となる。最大および最小傾斜角は任意の数でよいことを当業者はここで理解されよう。
【００４８】
次いで、ビデオゲームシステムは、上側傾斜角、下側傾斜角、および中心領域傾斜角を、対応するＹ軸値に変換する（４１０）。例えば、図３Ａおよび３Ｃに示されるように、中心領域傾斜角１９°はＹ軸値＝０に対応する。上側傾斜角３９°はＹ軸値１に対応し、下側傾斜角−１°はＹ軸値−１に対応する。こうした傾斜角を対応するＹ軸値に変換した後、ビデオゲームシステムは、ビデオゲームシステム１がアバタ２０６の移動を適切にレンダリングすることができるように仮想ポインタＹ軸値を−１から１の間に制限することができる（４１２）。実際の傾斜角が最大傾斜角を超過した場合であっても、Ｙ軸値はやはり１に制限される。同じことが最小傾斜角についてもあてはまる。最後に、処理を終了する（４１４）。
【００４９】
図５に、仮想ポインタ位置をサンプリングする例示的方法の流れ図を示す。例えば、この仮想ポインタ位置のサンプリングは、図４のサンプリングステップ４０４でよい。図示する手順を、ステップを削除し、ステップを移動し、または追加のステップをさらに含むように変更できることを当業者はここで理解されよう。初期スタートステップ５００の後、ビデオゲームシステムは、ポインタの加速度が許容公差限界内にあるかどうかを判定する（５０２）。ポインタの加速度が許容公差限界内にない場合、方法はステップ５０４に進み、ビデオゲームシステムはポインタ位置をサンプリングしない。一方、ポインタ位置移動の加速度が許容公差限界内にある場合、ビデオゲームシステムは、ポインタ位置が何らかの規定の領域（例えば、図３Ａに示される上端領域３０２、中心領域３０４、または下端領域３０６）に入ったかどうかを判定する（４０６）。ポインタ位置が規定の領域に入っていない場合、方法はステップ５０４に進み、ビデオゲームシステムはポインタ位置をサンプリングしない。
【００５０】
ポインタ位置が規定の領域に入った場合、ビデオゲームシステムは、現在のポインタ位置および加速度センサから計算されるコントローラの傾斜角をサンプリングする（５０８）。コントローラの傾斜角をサンプリングした後、ビデオゲームシステムは、ポインタ位置が上端領域３０２内に位置するかどうかを判定する（５１０）。ポインタ位置が上端領域３０２内に位置する場合、ビデオゲームシステムは、新しくサンプリングしたデータ（またはデータブロック）を上端領域３０２用のサンプリングデータ記憶バッファに格納する（５１２）。次に、ビデオゲームシステムは、上端領域３０２用のデータバッファに格納されたデータブロックが９個以上存在するかどうかを判定する（５１４）。データブロックが９個以上存在する場合、ビデオゲームシステムは、８個のデータブロックが上端領域３０２用のデータバッファ内に残るまで、最も古いデータブロックのうちの１つまたは複数を除去し（５１６）、処理を終了することができる（５４０）。この例示的実施形態では８個のデータブロックが使用されるが、データバッファは、この領域に関して任意の数のデータブロックを割り当てることができる。上端領域３０２用のデータバッファに格納されたデータブロックが９個未満である場合、ビデオゲームシステムは、データブロックを除去する必要はなく、処理を終了することができる（５４０）。
【００５１】
ステップ５１０でポインタ位置が上端領域３０２内に位置していないと判定した場合、ビデオゲームシステムは、ポインタ位置が中心領域３０４内に位置するかどうかを判定する（５２０）。ポインタ位置が中心領域３０４内に位置する場合、ビデオゲームシステムは、新しくサンプリングしたデータ（またはデータブロック）を中心領域３０４用のサンプリングデータ記憶バッファに格納する（５２２）。次に、ビデオゲームシステムは、中心領域３０４用のデータバッファに格納されたデータブロックが９個以上存在するかどうかを判定する（５２４）。データブロックが９個以上存在する場合、ビデオゲームシステムは、８個のデータブロックが中心領域３０４用のデータバッファ内に残るまで、最も古いデータブロックのうちの１つまたは複数を除去し（５２６）、処理を終了することができる（５４０）。この例示的実施形態では８個のデータブロックが使用されるが、データバッファは、この領域に関して任意の数のデータブロックを割り当てることができる。中心領域３０４用のデータバッファに格納されたデータブロックが９個未満である場合、ビデオゲームシステムは、データブロックを除去する必要はなく、処理を終了することができる（５４０）。
【００５２】
ステップ５２０でポインタ位置が中心領域３０４内に位置していないと判定した場合、ビデオゲームシステムは、ポインタ位置が下端領域３０６内に位置するかどうかを判定する（５３０）。次いで、ビデオゲームシステムは、新しくサンプリングしたデータ（またはデータブロック）を中心領域３０６用のサンプリングデータ記憶バッファに格納する（５３２）。次に、ビデオゲームシステムは、下端領域３０６用のデータバッファに格納されたデータブロックが９個以上存在するかどうかを判定する（５３４）。データブロックが９個以上存在する場合、ビデオゲームシステムは、８個のデータブロックが下端領域３０６用のデータバッファ内に残るまで、最も古いデータブロックのうちの１つまたは複数を除去し（５３６）、方法は終了に進むことができる（５４０）。この例示的実施形態では８個のデータブロックが使用されるが、データバッファは、この領域に関して任意の数のデータブロックを割り当てることができる。下端領域３０６用のデータバッファに格納されたデータブロックが９個未満である場合、ビデオゲームシステムは、データブロックを除去する必要はなく、処理を終了することができる（５４０）。
【００５３】
図６に、サンプリング結果から中心領域３０４に基づくコントローラの傾斜角を計算する例示的方法の流れ図を示す。例えば、この傾斜角の計算は、図４の計算ステップ４０６でよい。図示する手順を、ステップを削除し、ステップを移動し、または追加のステップをさらに含むように変更できることを当業者はここで理解されよう。初期スタートステップ６００の後、ビデオゲームシステムは、図５のステップ５２２で格納されるデータブロックなどの、中心領域３０４に関するサンプリング済みデータブロックが２つ以上存在するかどうかを判定する（６０２）。中心領域３０４に関するサンプリング済みデータブロックが２つ以上存在しない場合、サンプルが少なく、信頼性が低いので、ビデオゲームシステムは、サンプル結果を計算する際にデフォルト値を使用する（６０４）。
【００５４】
サンプリング済みデータブロックが２つ以上存在する場合、ビデオゲームシステムは、中心領域３０４に関するサンプルデータの平均を取り（６０６）、中心領域３０４に関する平均のコントローラの傾斜角および対応するポインタＹ軸値を計算する。次いで、ビデオゲームシステムは、上端領域３０２に関して２つ以上のサンプリング済みブロックが格納されるかどうかを判定する（６０８）。２つ以上のサンプリング済みブロックが格納される場合、ビデオゲームシステムは、上端領域３０２に関するサンプリング済みデータブロックの平均を取り（６１０）、上端領域３０２に関する平均のコントローラの傾斜値に対応するポインタＹ軸値を計算する。サンプリング後データブロックの平均を取った後、ビデオゲームシステムは、中心領域に関する平均傾斜角からのＹ軸値１の周りの傾斜角と、上端領域３０２に関するポインタＹ軸値および平均傾斜角と、こうしたＹ軸値間の差とを計算する（６１２）。次いで、ビデオゲームシステムは、Ｙ軸値−１の周りの傾斜角と、中心領域３０４に関する平均ポインタＹ軸値と、コントローラ３の傾斜角とを使用することにより、中心領域３０４に関する正確な傾斜角を求める（６１４）。ステップ６１４で正確な傾斜角を求めた後、処理を終了することができる（６２４）。
【００５５】
ステップ６０８に戻って、上端領域３０２に関して２つ以上のサンプルデータブロックが格納されていない場合、ビデオゲームシステムは、下端領域３０６に関して格納されたサンプリング済みデータブロックが２つ以上存在するかどうかを判定する（６１６）。サンプリング済みデータブロックが２つ以上存在しない場合、上端領域および下端領域に関するサンプリング数が少な過ぎるので、ビデオゲームシステムは、中心領域３０４に関する平均コントローラ傾斜角が中心領域３０４に関する傾斜角と等しいとみなす。等化ステップ６２２の後、処理を終了する（６２４）。
【００５６】
一方、ステップ６１６に戻って、下端領域３０６に関して格納されたサンプリング済みデータブロックが２つ以上存在する場合、ビデオゲームシステムは、下端領域３０６の関するサンプリング済みデータブロックの平均を取り（６１８）、下端領域３０６に関する平均のコントローラの傾斜値に対応するポインタＹ軸値を計算する。サンプリング済みデータブロックの平均を取った後、ビデオゲームシステムは、中心領域３０４に関する平均傾斜角からのＹ軸値１の周りの傾斜角と、下端領域３０６に関するポインタＹ軸値および平均傾斜角と、こうしたＹ軸値間の差とを計算する（６２０）。次いで、ビデオゲームシステムは、Ｙ軸値−１の周りの傾斜角と、中心領域３０４に関する平均ポインタＹ軸値と、コントローラ傾斜角とを使用することにより、中心領域３０４に関する正確な傾斜角を求める（６１４）。決定ステップ６１４の後、処理を終了することができる（６２４）。
【００５７】
図７は、仮想ポインタＸ軸値を計算する例示的方法を示す。図示する手順を、ステップを削除し、ステップを移動し、または追加のステップをさらに含むように変更できることを当業者はここで理解されよう。初期スタートステップ７００の後、ビデオゲームシステムは、有効なポインタ値を得ることができるかどうかを判定する（７０２）。有効なポインタ値を得ることができない場合、方法は、以下で説明するステップ７１４に進む。一方、有効な画面ポインタ値を得ることができる場合、ビデオゲームシステムは、ポインタ位置およびコントローラ３の傾斜角をサンプリングすることができる（７０４）。サンプリングステップ７０４は、図５に示される例示的サンプリング方法でよい。
【００５８】
ポインタ位置および傾斜角をサンプリングした後、ビデオゲームシステムは、サンプリング済み画面ポインタ位置から、中心領域３０４に対応するコントローラの傾斜角を計算する（７０６）。例えば、計算ステップ７０６は、図６で実施されたコントローラ傾斜角計算でよい。次いで、ビデオゲームシステムは、仮想ポインタのＹ軸値を計算する（７０８）。例えば、計算ステップ７０８は、図４で実施されたＹ軸値計算でよい。仮想ポインタのＹ軸値を計算した後、ビデオゲームシステムは、画面上のポインタ位置のＸ軸値が仮想ポインタのＸ軸値と等しいとみなす（７１０）。その後で、ビデオゲームシステムは、ビデオゲームシステムがアバタの移動を適切にレンダリングすることができるように、例えば図３Ａおよび３Ｃに示されるように仮想ポインタＸ軸値を−１から１の間に「固定」する（７１２）。最後に、処理を終了することができる（７２８）。
【００５９】
判定ステップ７０２に戻って、有効な画面ポインタを得ることができないと判定した場合、ビデオゲームシステムは、サンプリング済み画面ポインタ位置から、中心領域３０４に対応する仮想ポインタのＹ軸値を計算する（７１４）。例えば、計算ステップ７１４は、図６で実施されるコントローラ傾斜角計算でよい。次いで、ビデオゲームシステムは、以下の式を使用することによって仮想ポインタのＸ軸値の絶対値を求める（７１６）。
【００６０】
仮想ポインタＸ軸値＝ｃｏｓｉｎｅ（ａｒｃｓｉｎｅ（仮想ポインタＹ軸値））
仮想ポインタのＸ軸値の絶対値を求めた後、ビデオゲームシステムは、仮想ポインタのＹ座標が最小値（例えばＹ＝−１）または最大値（例えばＹ＝１）に対応するかどうかを判定する（７１８）。そうでない場合、ビデオゲームシステムは、以前にフレーミングしたポインタＸ軸値を仮想ポインタＸ軸値の符号（正／負）として割り当てる（７２０）。このことは、画面２０４上に表示するために計算された仮想ポインタの最後のＸ軸値の符号を取り、符号を、決定ステップ７１６で与えられるＸ軸値の絶対値と組み合わせることによって行われる。割当てステップの後、処理を終了することができる（７２８）。
【００６１】
判定ステップ７１８に戻って、仮想ポインタのＹ軸値が最大値または最小値に対応する場合、ビデオゲームシステムは、コントローラ３上の加速度センサによって与えられる加速度値が規定の値よりも高く、水平加速度を有するかどうか（すなわち、コントローラ３が水平方向に移動したかどうか）を検出する（７２２）。そうである場合、ビデオゲームシステムは、コントローラの運動方向から仮想ポインタのＸ軸値の符号（正／負）を求める（７２４）。決定ステップ７２４の後、処理を終了することができる（７２８）。
【００６２】
検出ステップ７２２に戻って、加速度値が規定の値を超過せず、水平加速度がなく、すなわちコントローラ３が水平方向に移動していないことが検出された場合、ビデオゲームシステムは、ゲームプレーヤがコントローラ３をローリングする方向から仮想ポインタのＸ軸値の符号（正／負）を求める（７２６）（コントローラ３をひねることにより、ポインタはコントローラ３の運動方向に移動する）。決定ステップ７２６の後、処理を終了することができる（７２８）。
【００６３】
コリジョンデータの生成
あるゲームは、Ｘ、Ｙ、およびＺ軸で画定された仮想３次元（３Ｄ）世界の中をアバタが移動する必要がある。仮想世界の中のこの移動の一部は、所定の経路に基づくことができる。アバタ２０６は、所定の経路に基づいて３Ｄ世界の中を飛行することができる。所定の経路は、Ｘ軸およびＺ軸に基づいて構成され、アバタ２０６は、Ｙ軸の方向に自由に移動することができる。ある実施形態では、プレーヤが操作するアバタを除くゲーム内の他のキャラクタを、３つの軸とは無関係に、所定の経路内で移動させることができる。さらに、この所定の経路をバリア線でさらに画定することができ、それによって、アバタ２０６がこうしたバリア線内に位置する限り、経路に沿ってどこにでも移動することができる。このようにゲームを構築することで、利点が得られる。例えば、３Ｄ世界内に経路を画定することにより、アバタ２０６が３Ｄ世界全体にわたって移動する機能が制限され、ゲームが必要とするメモリおよび処理を少なくすることができる。次いで、ゲームプレーヤは、経路がバリア線の外側に延びるのでない限り、経路に沿ってアバタ２０６を移動する能力、経路に沿う方向を選ぶ能力（逆方向および順方向）、アバタの速度を選ぶ能力などを有することになる。図８を参照すると、上側バリア線８０４および下側バリア線８０６で所定の経路をさらに画定することができる。ある実施形態では、ゲーム自体の中で、こうした線はゲームプレーヤにとって不可視である。こうした線は、アバタ２０６がこうしたバリア線の外側に移動することができないように定義される。図８に示すように、ゲーム設計者がアバタ２０６の経路線に基づいて２Ｄ平面セグメントを生成することによってこの経路をモデル化した場合、アバタ２０６またはゲーム中の他のキャラクタがこうした未定義空間８０２の１つの中にあえて進むときにエラーが生じることがある。
【００６４】
図９Ａに、図８の実施形態の結果として生じる可能性のあるエラーを予防するのに使用することのできる例示的３Ｄセグメント９００を示す。３Ｄセグメント９００は、上側バリア限界９０２の上側バリア線８０４、下側バリア限界９０４の下側バリア線８０６、上側バリア限界９０２と下側バリア限界９０４の左側部分を接続する左側壁９０８、ならびに上側バリア限界９０２と下側バリア限界９０４の右側部分を接続する右側壁を含む。この実施形態では、アバタ２０６の経路線は、３Ｄセグメント９００の上側バリア線８０４および下側バリア線８０６に基づく。このアバタ２０６の経路線により、ゲームプレーヤは、３Ｄセグメント９００の上側バリア線８０４と下側バリア線８０６間の経路線平面内の任意の点に沿ってアバタ２０６を移動することが可能となる。
【００６５】
図９Ｂに、アバタ２０６が１組の接続された経路線平面に沿って移動することができるように互いに結合された複数の３Ｄセグメントを示す。こうしたセグメントは、アバタ２０６の属性であり、アバタ２０６の位置に基づいて生成される。例えば、図１０に、アバタＡおよびＢがその中で移動している所定の経路１０００の俯瞰図を示す。図１０からわかるように、経路１０００は「８の字」構成を有する。各アバタは、アバタの前および後ろに生成される３Ｄセグメントを有する。例えば、アバタＡは、最外前縁１００２から最外後縁１００４まで延びるすべての３Ｄセグメントを備える。さらに、アバタＢは、順方向セグメント１０１２の最外前方セグメント１００６から逆方向セグメント１０１４の最外後方セグメント１００８まで延びる、現セグメント１０１０、順方向セグメント１０１２、および逆方向セグメントを備える。最外前方セグメント１００６は、最外前縁１００７まで延び、最外後方セグメント１００８は最外後縁１００９まで延びる。例えば、各アバタは、その位置に基づいて生成される５つのセグメント、すなわちアバタの現在位置について１つの現セグメント１０１０と、前方セグメント１０１２および後方セグメント１０１４についてそれぞれ２つを有することができる。２つの順方向セグメント１０１２および２つの逆方向セグメント１０１４が上記の実施形態で示されるが、任意の数の順方向セグメント１０１２および逆方向セグメント１０１４を生成できることを当業者はここで理解されよう。ある実施形態では、アバタＢが同時に２つ以上のセグメント内にある場合、例えばＢが所定の経路線を順方向に移動しており、あるセグメントから次のセグメントに遷移する場合、現セグメント１０１０は複数のセグメントを含むことがある。
【００６６】
こうしたセグメントは、アバタ自体にのみ関係する属性であるので、あるアバタに関連するセグメントは、別のアバタに影響を及ぼさない。例えば、アバタＡが左上側から、図１０に示される８の字構成の経路１０００の交差エリアに近づくとき、アバタＢが右上側から交差に近づくときに、アバタＢは、アバタＡのセグメントの１つに進入すること、および順方向に移動することができる。
【００６７】
上述のように、アバタに対応するセグメントは、アバタの位置決めに基づいて生成される。アバタＢが、現セグメント１０１０から最外前方セグメント１００６に向かって次のセグメントに順方向に移動するとき、現セグメント１０１０の後の次のセグメントが新しい現セグメントとなり、後方セグメント１０１４の最外後方セグメントが除去される。次いで、最外後方セグメントは、端部の隣の後方セグメントとなる。したがって、最外前方セグメント１００６の外側の第１セグメントが生成され、それが新しい最外前方セグメントとなる。アバタの移動に基づくこうしたセグメントの生成および除去の利点は、アバタＡが、経路１０００左上側から８の字構成の経路１０００の交差を通過した後に、左下側から８の字構成の８の字の交差を通過する場合に、対応する除去されずに残ったセグメントにぶつかることはないということにある。
【００６８】
経路１０００のこうしたセグメントは、アバタ２０６の位置を計算して、新しいセグメントを生成する必要があるかどうかを判定することによって生成される。新しいセグメントを生成すべきであると判定される場合、ビデオゲーム装置１は、セグメントデータを求めて、メモリ、例えば図１１に示されるメモリ１１００にアクセスする。ある実施形態では、各セグメントについてのフロアデータをメモリの異なるフロア部分に格納することができる（図示せず）。例えば、メモリ１１００のフロア部分は、すべてのセグメントについてのフロアデータのみを格納することができる。したがって、すべてのセグメントについての天井、右側壁、および左側壁データを、それ自体のそれぞれの異なるメモリ部分に格納することができる。ある実施形態では、図１１のメモリ１１００で示されるように、メモリ１１００は、各セグメントのフロア、天井、および壁データを順次格納することができる。この代替実施形態は、ビデオゲーム装置１がアクセスしなければならないのがメモリ１１００の４つの部分ではなく、１つの部分のみとなるので、効率的なビデオゲーム装置１を提供する。メモリ１１００内に提供されるセグメントデータにアクセスした後、ビデオゲーム装置１は、フロア１１０４、天井１１０６、右側壁１１０８、および左側壁１１１０を有する対応するセグメント１１０２を生成することができる。より多くのセグメントを生成すべきであると判定されるとき、ビデオゲーム装置１は、追加のセグメントデータを求めてメモリ１１００にアクセスすることができる。
【００６９】
カメラ角度の制御
上述したように、あるゲームは、アバタが所定の経路に基づいて３次元（３Ｄ）世界で移動する必要がある。所定の経路は、Ｘ軸およびＺ軸に基づいて構成され、アバタ２０６は、Ｙ軸の方向に自由に移動することができる。ある実施形態では、プレーヤが操作するアバタを除くゲーム内の他のキャラクタを、３つの軸とは無関係に、所定の経路内で移動させることができる。例えば、図１２Ａに示されるように、アバタ２０６は、この所定の経路に基づいて３Ｄ世界の中を飛行することができ、この所定の経路は、カメラ線を有する経路平面でよい。上側カメラ線１２０４および下側カメラ線１２０６で所定の経路１２０２をさらに画定することができる。こうしたカメラ線１２０４および１２０６は、図８に示すバリア線８０４および８０６に対応することができ、またはバリア線８０４および８０６とは完全に無関係とすることができる。ある実施形態では、ゲーム自体の中で、こうした線はゲームプレーヤにとって不可視である。ある実施形態では、所定の経路は中間線も含むことができる。この中間線は、上側カメラ線１２０４と下側カメラ線１２０６のほぼ中間でよく、または上側カメラ線１２０４と下側カメラ線１２０６（ならびに／あるいは上側バリア線８０４と下側バリア線８０６）の間の任意の所定の経路でよい。中間線は、アバタ２０６の位置に基づいてカメラ１２０８の角度を調節するための基準点を与える。
【００７０】
ある実施形態では、中間線をなくすことができ、ビデオゲーム装置は、上側カメラ線１２０４および下側カメラ線１２０６に対するアバタ位置に基づいてカメラ角度を調節する。アバタ２０６が一方のカメラ線に近づくと、他方のカメラ線から遠ざかる。カメラ１２０８の角度は、接近するカメラ線に向かって増大する。ある実施形態では、アバタ２０６の位置に対する中間線および／またはカメラ線の距離の一定の比に達するまでカメラ角度が変化しないようにカメラ角度を決定することもできる。この比のしきい値が満たされると、カメラ角度を変更することができる。あるいは、一定の比に達するまでカメラ角度が小さい角度増分で変化することができ、次いでその後、角度が指数関数的に急激に変化することができる。
【００７１】
さらに、アバタ２０６の速度、ならびに中間線とアバタ２０６との距離によってカメラ１２０８の位置を定義することができる。例えば、図１２Ｂに示すように、アバタ２０６が高速度で移動中である場合、カメラ１２０８の角度がアバタ２０６に追従し、アバタ２０６がこの高速度で移動する効果を与える。したがって、図１２Ｃで示すように、アバタ２０６が低い速度で移動する場合、カメラ１２０８の角度をアバタ２０６に対してより垂直にすることができる。図１２Ｂおよび１２Ｃに示すように、カメラ１２０８の角度をキャラクタの直後にすることができ、アバタ２０６の位置に対して垂直にすることができ、またはアバタ２０６の位置に対して水平な角度にすることができる。アバタ２０６の速度によってカメラの位置を定義することができるので、プレーヤは、アバタ２０６の前にあるアイテムの位置を容易に突き止めることができる。
【００７２】
図１３に、所定の経路が中間線１３０２を含む例示的実施形態を示す。中間線１３０２は、０°のカメラ角度を指すことができ、上側カメラ線１２０４および下側カメラ線１２０６は、それぞれ３０°および−３０°のカメラ角度を指すことができる。アバタ２０６が経路線に沿って移動中に中間線１３０２上にとどまる場合、カメラは、０°の垂直角度からアバタに対して焦点を合わせることができる。アバタ２０６が上側カメラ線１２０４に沿って移動する場合、カメラは３０°の角度でアバタ２０６に追従する。したがって、アバタ２０６が下側カメラ線１２０６に沿って移動する場合、カメラ１２０８は、−３０°の角度でアバタ２０６に追従する。したがって、カメラ１２０８の角度は、中間線１３０２に対するアバタ２０６の位置に基づいて調節される。例えば、アバタ２０６が中間線１３０２と上側カメラ線１２０４の中間に配置される場合、カメラ１２０８は、１５°の角度でアバタ２０６に追従することができる。したがって、アバタ２０６が中間線１３０２と下側カメラ線１２０６の中間に配置される場合、カメラ１２０８は、−１５°の角度でアバタ２０６に追従することができる。３０°と−３０°を上側カメラ線１２０４および下側カメラ線１２０６として示したが、上側カメラ線１２０４および下側カメラ線１２０６ならびに中間線１３０２に対して任意の角度を使用できることを当業者はここで理解されよう。
【００７３】
図１４に示すように、３Ｄ世界の上側カメラ線１２０４および下側カメラ線１２０６に基づいて中間線１３０２を調節することができる。例えば、崖の下降などの下側地形１４０２への突然の降下を示すために、ゲーム設計者は、アバタ２０６が経路線内で垂直に移動しないときであっても、崖の下降を移動する効果をゲームプレーヤに与えたいことがある。さらに、ある実施形態では、上側カメラ線１２０４および下側カメラ線１２０６の設定は、例えば下側カメラ線１２０６と下側地形１４０２との間で示すように、３Ｄ風景の地形とは何の関係も有さない可能性がある。さらに、図１４は、アバタ２０６が経路上の進路を維持するときであってもカメラ角度が変化する可能性があることを示す。
【００７４】
中間線１３０２を上記で示したが、アバタの位置に基づいてカメラ角度を求めるために他の方法を使用することができる。例えば、中間線を含むように所定の経路を画定する代わりに、アバタ２０６に追従するカメラ角度が、上側カメラ線１２０４と下側カメラ線１２０６の両方に対するアバタの位置に基づくことができ、上側カメラ線１２０４および下側カメラ線１２０６は、それぞれ上側バリア線８０４および下側バリア線８０６でよい。例えば、角度は、アバタ２０６と上側カメラ線１２０４の間の距離をアバタ２０６と下側カメラ線１２０６の間の距離と比較した比に基づくことができる。例えば、アバタ２０６が上側カメラ線１２０４に近づくとき、カメラ１２０８の角度を増大させることができる。
【００７５】
本明細書で開示した方法を、データ処理装置、例えばプログラム可能プロセッサ、コンピュータ、または複数のコンピュータによる実行のため、またはその動作を制御するためのコンピュータプログラム製品、すなわち情報キャリアと、例えば機械読み取り可能な記憶装置または伝播信号として有形に具体化されたコンピュータプログラムとして実装することができる。コンパイル型言語またはインタプリタ型言語を含む任意の形式のプログラミング言語でコンピュータプログラムを書き込むことができ、スタンドアロンプログラムまたはモジュール、コンポーネント、サブルーチン、あるいはコンピューティング環境での使用に適した他のユニットを含む任意の形式でコンピュータプログラムを配置することができる。１つのコンピュータ上で、あるいは１つのサイト、または複数のサイトにわたって分散し、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるようにコンピュータプログラムを配置することができる。
【００７６】
上述の明細書では、特定の例示的実施形態を参照しながら本発明を説明した。しかし、添付の特許請求の範囲に記載の本発明のより広い精神および範囲から逸脱することなく、様々な修正および変更を行えることは明らかであろう。したがって、明細書および図面は限定的なものとしてではなく例示的なものとみなすべきである。本発明の他の実施形態は、本明細書で開示された本発明の仕様および実施を考慮することで当業者には明らかである。
【図１】
2012256371.tif 000003
【図２Ａ】
2012256371.tif 000004
【図２Ｂ】
2012256371.tif 000005
【図３Ａ】
2012256371.tif 000006
【図３Ｂ】
2012256371.tif 000007
【図３Ｃ】
2012256371.tif 000008
【図４】
2012256371.tif 000009
【図５】
2012256371.tif 000010
【図６】
2012256371.tif 000011
【図７】
2012256371.tif 000012
【図８】
2012256371.tif 000013
【図９Ａ】
2012256371.tif 000014
【図９Ｂ】
2012256371.tif 000015
【図１０】
2012256371.tif 000016
【図１１】
2012256371.tif 000017
【図１２Ａ】
2012256371.tif 000018
【図１２Ｂ】
2012256371.tif 000019
【図１２Ｃ】
2012256371.tif 000020
【図１３】
2012256371.tif 000021
【図１４】
2012256371.tif 000022
【手続補正書】
【提出日】平成24年9月21日(2012.9.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータで実行されたときに、コントローラの位置決めに基づいて位置を処理する方法を前記コンピュータに実行させるためのプログラムであって、
前記方法は、
前記コントローラのポインタ位置及び／又は傾斜角をサンプリングするステップと、
モニタの画面上にカーソルを表示するステップと、
前記ポインタ位置及び／又は前記傾斜角に基づいて前記カーソルを移動するステップと、
前記表示されたカーソルの方向に向けてアバタを移動するステップと、
を備え、
前記ポインタ位置は、前記コントローラと前記モニタの前記画面との間の相互関係に基づいており、
前記カーソルを移動するステップは、前記カーソルをカーソル経路内で移動させる、
プログラム。
【請求項２】
前記カーソルを表示するステップは、
前記ポインタ位置をサンプリングすることができるかどうかを判定するステップと、
前記判定に基づいて前記カーソルの色を変更するステップと、を有する、
請求項１に記載のプログラム。
【請求項３】
請求項１又は２に記載のプログラムが記録された、
コンピュータ読み取り可能な記録媒体。