(57)【要約】【課題】操作入力装置の状態と、操作入力装置の基準状態と、の状態差に対応する出力を行う情報処理装置において、ユーザが好適に操作を行えるように図ることが可能になる情報処理装置を提供すること。【解決手段】状態情報出力部７２は、操作入力装置に備えられ、所定数値範囲内の数値を操作入力装置の状態に応じて出力する。基準値取得部７４は、操作入力装置の基準状態に対応する、上記所定数値範囲内の数値を基準値として取得する。有効範囲決定部７８は、上記所定数値範囲内の一部範囲である有効範囲を決定する。対応データ取得部８０は、状態情報出力部７２の出力値が有効範囲内である場合にその値に対応するデータを取得し、有効範囲内でない場合にその上限値又は下限値に対応するデータを取得する。このデータは出力制御処理に供される。【選択図】図８
2007310840.tif 000002
【特許請求の範囲】
【請求項１】
操作入力装置を含み、前記操作入力装置の状態と、前記操作入力装置の基準状態と、の状態差に対応する出力を行うための処理を実行する情報処理装置であって、
前記操作入力装置に備えられ、所定数値範囲内の数値を前記操作入力装置の状態に応じて出力する状態情報出力手段と、
前記操作入力装置の基準状態に対応する、前記所定数値範囲内の数値を基準値として取得する基準値取得手段と、
前記基準値取得手段によって取得された基準値に基づいて、前記所定数値範囲内の一部範囲である有効範囲を決定する有効範囲決定手段と、
前記状態情報出力手段によって出力される数値が、前記有効範囲決定手段によって決定された有効範囲内である場合には、前記状態情報出力手段によって出力される数値に対応するデータを取得し、前記状態情報出力手段によって出力される数値が、前記有効範囲決定手段によって決定された有効範囲内でない場合には、該有効範囲の上限値又は下限値に対応するデータを取得する対応データ取得手段と、
を含み、
前記対応データ取得手段によって取得されたデータが前記処理に供される、
ことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記有効範囲は、前記基準値取得手段によって取得された基準値と所与の関係にある上限値及び／又は下限値を有する範囲であることを特徴とする情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置において、
前記対応データ取得手段は、前記状態情報出力手段によって出力される数値が、前記有効範囲決定手段によって決定された有効範囲内である場合には、前記状態情報出力手段によって出力される数値に対応する、第２の所定数値範囲内の数値を前記データとして取得し、前記有効範囲決定手段によって決定された有効範囲内でない場合には、該有効範囲の上限値又は下限値に対応する、前記第２の所定数値範囲内の数値を前記データとして取得することを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれかに記載の情報処理装置において、
前記操作入力装置に備えられ、前記基準値に関する基準値情報を記憶する基準値情報記憶手段を含み、
前記基準値取得手段は、前記基準値情報記憶手段に記憶される基準値情報に基づいて、前記基準値を取得する、
ことを特徴とする情報処理装置。
【請求項５】
請求項１乃至４のいずれかに記載の情報処理装置において、
温度を検出する温度検出手段を含み、
前記基準値取得手段は、前記温度検出手段によって検出される温度に基づいて、前記基準値を取得する、
ことを特徴とする情報処理装置。
【請求項６】
請求項１乃至５のいずれかに記載の情報処理装置において、
前記基準値取得手段は、前記操作入力装置が所定状態であるか否かを判定する手段を含み、前記操作入力装置が前記所定状態であると判定されるタイミングにおいて前記状態出力手段から出力される数値に基づいて、前記基準値を取得することを特徴とする情報処理装置。
【請求項７】
請求項１乃至６のいずれかに記載の情報処理装置において、
前記基準値取得手段は、前記操作入力装置に対して所定操作が行われたか否かを判定する手段を含み、前記操作入力装置に対して前記所定操作が行われたと判定されるタイミングにおいて前記状態出力手段から出力される数値に基づいて、前記基準値を取得することを特徴とする情報処理装置。
【請求項８】
操作入力装置を含み、前記操作入力装置の状態と、前記操作入力装置の基準状態と、の状態差に対応する出力を行うための処理を実行する情報処理装置の制御方法であって、
前記操作入力装置に備えられ、所定数値範囲内の数値を前記操作入力装置の状態に応じて出力する状態情報出力手段、の出力内容を取得するためのステップと、
前記操作入力装置の基準状態に対応する、前記所定数値範囲内の数値を基準値として取得するための基準値取得ステップと、
前記基準値取得ステップにおいて取得された基準値に基づいて、前記所定数値範囲内の一部範囲である有効範囲を決定するための有効範囲決定ステップと、
前記状態情報出力手段によって出力される数値が、前記有効範囲決定ステップによって決定された有効範囲内である場合には、前記状態情報出力手段によって出力される数値に対応するデータを取得し、前記状態情報出力手段によって出力される数値が、前記有効範囲決定手段によって決定された有効範囲内でない場合には、該有効範囲の上限値又は下限値に対応するデータを取得するための対応データ取得ステップと、
を含み、
前記対応データ取得ステップによって取得されたデータが前記処理に供される、
ことを特徴とする情報処理装置の制御方法。
【請求項９】
操作入力装置を含み、前記操作入力装置の状態と、前記操作入力装置の基準状態と、の状態差に対応する出力を行うための処理を実行する情報処理装置としてコンピュータを機能させるためのプログラムであって、
前記操作入力装置に備えられ、所定数値範囲内の数値を前記操作入力装置の状態に応じて出力する状態情報出力手段、の出力内容を取得する手段、
前記操作入力装置の基準状態に対応する、前記所定数値範囲内の数値を基準値として取得する基準値取得手段、
前記基準値取得手段によって取得された基準値に基づいて、前記所定数値範囲内の一部範囲である有効範囲を決定する有効範囲決定手段、及び、
前記状態情報出力手段によって出力される数値が、前記有効範囲決定手段によって決定された有効範囲内である場合には、前記状態情報出力手段によって出力される数値に対応するデータを取得し、前記状態情報出力手段によって出力される数値が、前記有効範囲決定手段によって決定された有効範囲内でない場合には、該有効範囲の上限値又は下限値に対応するデータを取得する対応データ取得手段、
として前記コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
操作入力装置自体の状態に応じて所定数値範囲内の数値を出力する操作入力装置を含んでなる情報処理装置が知られている。例えば、コントローラの状態を検出するためのセンサ（加速度センサやジャイロ等）が取り付けられたコントローラを含み、センサの検出結果を示す検出結果値（例えば０から１０２３までの範囲内の数値）がコントローラから入力されるエンタテインメントシステムが知られている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記の情報処理装置では、操作入力装置の状態と、操作入力装置の基準状態と、の状態差に対応する出力を行わせることが可能である。例えば、上記のエンタテインメントシステムでは、ユーザがコントローラの姿勢を変化させたり、移動させることによってセンサの検出結果値が変化するため、例えば、センサの検出結果値が基準値（コントローラの基準状態に対応する検出結果値：例えば５１１）から増加した場合には、ゲーム空間内のオブジェクトを前方にその増加量に応じた距離だけ移動させ、センサの検出結果値が基準値から減少した場合には、ゲーム空間内のオブジェクトを後方にその減少量に応じた距離だけ移動させるようにし、ユーザがコントローラの状態を変化させることによって、オブジェクトの前方又は後方方向への移動及びその移動距離を指示できるようなゲームを実現することも可能である。しかしながら、この場合、１）コントローラの持ち方はユーザごとに異なり、コントローラの基準状態はユーザごとに異なること、２）センサの特性は個々のセンサごとにばらつきがあり、また、周囲の温度によって変化すること、３）コントローラに対するセンサの取り付け状態は個々のコントローラごとに異なり、コントローラが水平な状態である場合にセンサも水平な状態となるように取り付けられているとは必ずしも限らないこと、などを考慮して、ユーザが好適に操作を行えるように図る必要がある。
【０００４】
本発明は上記課題に鑑みてなされたものであって、その目的は、操作入力装置の状態と、操作入力装置の基準状態と、の状態差に対応する出力を行う情報処理装置において、ユーザが好適に操作を行えるように図ることが可能になる情報処理装置、情報処理装置の制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る情報処理装置は、操作入力装置を含み、前記操作入力装置の状態と、前記操作入力装置の基準状態と、の状態差に対応する出力を行うための処理を実行する情報処理装置であって、前記操作入力装置に備えられ、所定数値範囲内の数値を前記操作入力装置の状態に応じて出力する状態情報出力手段と、前記操作入力装置の基準状態に対応する、前記所定数値範囲内の数値を基準値として取得する基準値取得手段と、前記基準値取得手段によって取得された基準値に基づいて、前記所定数値範囲内の一部範囲である有効範囲を決定する有効範囲決定手段と、前記状態情報出力手段によって出力される数値が、前記有効範囲決定手段によって決定された有効範囲内である場合には、前記状態情報出力手段によって出力される数値に対応するデータを取得し、前記状態情報出力手段によって出力される数値が、前記有効範囲決定手段によって決定された有効範囲内でない場合には、該有効範囲の上限値又は下限値に対応するデータを取得する対応データ取得手段と、を含み、前記対応データ取得手段によって取得されたデータが前記処理に供されることを特徴とする。
【０００６】
また、本発明に係る情報処理装置の制御方法は、操作入力装置を含み、前記操作入力装置の状態と、前記操作入力装置の基準状態と、の状態差に対応する出力を行うための処理を実行する情報処理装置の制御方法であって、「前記操作入力装置に備えられ、所定数値範囲内の数値を前記操作入力装置の状態に応じて出力する状態情報出力手段」の出力内容を取得するためのステップと、前記操作入力装置の基準状態に対応する、前記所定数値範囲内の数値を基準値として取得するための基準値取得ステップと、前記基準値取得ステップにおいて取得された基準値に基づいて、前記所定数値範囲内の一部範囲である有効範囲を決定するための有効範囲決定ステップと、前記状態情報出力手段によって出力される数値が、前記有効範囲決定ステップによって決定された有効範囲内である場合には、前記状態情報出力手段によって出力される数値に対応するデータを取得し、前記状態情報出力手段によって出力される数値が、前記有効範囲決定手段によって決定された有効範囲内でない場合には、該有効範囲の上限値又は下限値に対応するデータを取得するための対応データ取得ステップと、を含み、前記対応データ取得ステップによって取得されたデータが前記処理に供されることを特徴とする。
【０００７】
また、本発明に係るプログラムは、操作入力装置を含み、前記操作入力装置の状態と、前記操作入力装置の基準状態と、の状態差に対応する出力を行うための処理を実行する情報処理装置としてコンピュータを機能させるためのプログラムであって、「前記操作入力装置に備えられ、所定数値範囲内の数値を前記操作入力装置の状態に応じて出力する状態情報出力手段」の出力内容を取得する手段、前記操作入力装置の基準状態に対応する、前記所定数値範囲内の数値を基準値として取得する基準値取得手段、前記基準値取得手段によって取得された基準値に基づいて、前記所定数値範囲内の一部範囲である有効範囲を決定する有効範囲決定手段、及び、前記状態情報出力手段によって出力される数値が、前記有効範囲決定手段によって決定された有効範囲内である場合には、前記状態情報出力手段によって出力される数値に対応するデータを取得し、前記状態情報出力手段によって出力される数値が、前記有効範囲決定手段によって決定された有効範囲内でない場合には、該有効範囲の上限値又は下限値に対応するデータを取得する対応データ取得手段、として前記コンピュータを機能させるためのプログラムである。
【０００８】
また、本発明に係る情報記憶媒体は、上記プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
【０００９】
本発明は、操作入力装置を含み、操作入力装置の状態と、操作入力装置の基準状態と、の状態差に対応する出力を行うための処理を実行する情報処理装置に関するものである。本発明では、所定数値範囲内の数値が操作入力装置の状態に応じて操作入力装置から出力される。また、操作入力装置の基準状態に対応する、上記所定数値範囲内の数値が基準値として取得される。そして、その基準値に基づいて、上記所定数値範囲内の一部範囲である有効範囲が決定される。そして、操作入力装置から出力される数値が有効範囲内である場合には、その数値数値に対応するデータが取得され、操作入力装置から出力される数値が有効範囲内でない場合には、該有効範囲の上限値又は下限値に対応するデータが取得される。このデータは、上記処理（操作入力装置の状態と、操作入力装置の基準状態と、の状態差に対応する出力を行うための処理）に供される。本発明によれば、操作入力装置の状態と、操作入力装置の基準状態と、の状態差に対応する出力を行う情報処理装置において、ユーザが好適に操作を行えるように図ることが可能になる。
【００１０】
また、本発明の一態様では、前記有効範囲は、前記基準値取得手段によって取得された基準値と所与の関係にある上限値及び／又は下限値を有する範囲としてもよい。
【００１１】
また、本発明の一態様では、前記対応データ取得手段は、前記状態情報出力手段によって出力される数値が、前記有効範囲決定手段によって決定された有効範囲内である場合には、前記状態情報出力手段によって出力される数値に対応する、第２の所定数値範囲内の数値を前記データとして取得し、前記有効範囲決定手段によって決定された有効範囲内でない場合には、該有効範囲の上限値又は下限値に対応する、前記第２の所定数値範囲内の数値を前記データとして取得するようにしてもよい。
【００１２】
また、本発明の一態様では、前記操作入力装置に備えられ、前記基準値に関する基準値情報を記憶する基準値情報記憶手段を含み、前記基準値取得手段は、前記基準値情報記憶手段に記憶される基準値情報に基づいて、前記基準値を取得するようにしてもよい。
【００１３】
また、本発明の一態様では、温度を検出する温度検出手段を含み、前記基準値取得手段は、前記温度検出手段によって検出される温度に基づいて、前記基準値を取得するようにしてもよい。
【００１４】
また、本発明の一態様では、前記基準値取得手段は、前記操作入力装置が所定状態であるか否かを判定する手段を含み、前記操作入力装置が前記所定状態であると判定されるタイミングにおいて前記状態出力手段から出力される数値に基づいて、前記基準値を取得するようにしてもよい。
【００１５】
また、本発明の一態様では、前記基準値取得手段は、前記操作入力装置に対して所定操作が行われたか否かを判定する手段を含み、前記操作入力装置に対して前記所定操作が行われたと判定されるタイミングにおいて前記状態出力手段から出力される数値に基づいて、前記基準値を取得するようにしてもよい。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について図面に基づき詳細に説明する。ここでは、映像を再生する映像再生装置、音楽を再生する音楽再生装置や、ゲームを実行するゲーム装置等として機能するエンタテインメントシステムに本発明を適用した場合の例について説明する。
【００１７】
図１は、本発明の実施形態に係るエンタテインメントシステム（情報処理装置）のハードウェア構成を示す図である。同図に示すように、エンタテインメントシステム１０は、ＭＰＵ（Micro Processing Unit）１１と、メインメモリ２０と、画像処理部２４と、モニタ２６と、入出力処理部２８と、音声処理部３０と、スピーカ３２と、光ディスク読み取り部３４と、光ディスク３６と、ハードディスク３８と、インタフェース（Ｉ／Ｆ）４０，４４と、コントローラ４２と、カメラユニット４６と、ネットワークインタフェース（Ｉ／Ｆ）４８と、を含んで構成されるコンピュータシステムである。
【００１８】
図２はＭＰＵ１１の構成を示す図である。図２に示すように、ＭＰＵ１１は、メインプロセッサ１２と、サブプロセッサ１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆ，１４ｇ，１４ｈと、バス１６と、メモリコントローラ１８と、インタフェース（Ｉ／Ｆ）２２と、を含んで構成される。
【００１９】
メインプロセッサ１２は、図示しないＲＯＭ（Read Only Memory）に記憶されるオペレーティングシステム、例えばＤＶＤ（Digital Versatile Disk）−ＲＯＭ等の光ディスク３６から読み出されるプログラム及びデータや、ネットワークからネットワークインタフェース４８を介して供給されるプログラム及びデータ等に基づいて、サブプロセッサ１４ａ乃至１４ｈに対する制御を行う。
【００２０】
サブプロセッサ１４ａ乃至１４ｈは、メインプロセッサ１２からの指示に従って各種情報処理を行う。例えば、サブプロセッサ１４ａ乃至１４ｈは、エンタテインメントシステム１０の各部を、例えばＤＶＤ−ＲＯＭ等の光ディスク３６から読み出されるプログラム及びデータや、ネットワークからネットワークインタフェース４８を介して供給されるプログラム及びデータ等に基づいて制御する。
【００２１】
バス１６は、アドレス及びデータをエンタテインメントシステム１０の各部でやり取りするためのものである。メインプロセッサ１２、サブプロセッサ１４ａ乃至１４ｈ、メモリコントローラ１８、インタフェース２２は、バス１６を介して相互にデータ授受可能に接続される。
【００２２】
メモリコントローラ１８は、メインプロセッサ１２及びサブプロセッサ１４ａ乃至１４ｈからの指示に従って、メインメモリ２０へのアクセスを行う。メインメモリ２０には、光ディスク３６やハードディスク３８から読み出されたプログラム及びデータや、ネットワークからネットワークインタフェース４８を介して供給されたプログラム及びデータが必要に応じて書き込まれる。メインメモリ２０はメインプロセッサ１２やサブプロセッサ１４ａ乃至１４ｈの作業用としても用いられる。
【００２３】
インタフェース２２には画像処理部２４及び入出力処理部２８が接続される。メインプロセッサ１２及びサブプロセッサ１４ａ乃至１４ｈと、画像処理部２４又は入出力処理部２８と、の間のデータ授受はインタフェース２２を介して行われる。
【００２４】
画像処理部２４は、ＧＰＵ（Graphical Processing Unit）とフレームバッファとを含んで構成される。ＧＰＵは、メインプロセッサ１２やサブプロセッサ１４ａ乃至１４ｈから供給される画像データに基づいてフレームバッファに各種画面を描画する。フレームバッファに形成された画面は、所定のタイミングでビデオ信号に変換されてモニタ２６に出力される。なお、モニタ２６には例えば家庭用テレビ受像機が用いられる。
【００２５】
入出力処理部２８には、音声処理部３０、光ディスク読み取り部３４、ハードディスク３８、インタフェース４０,４４、ネットワークインタフェース４８が接続される。入出力処理部２８は、メインプロセッサ１２及びサブプロセッサ１４ａ乃至１４ｈと、音声処理部３０、光ディスク読み取り部３４、ハードディスク３８、インタフェース（Ｉ／Ｆ）４０，４４、ネットワークインタフェース４８と、の間のデータ授受を制御する。
【００２６】
音声処理部３０は、ＳＰＵ（Sound Processing Unit）とサウンドバッファとを含んで構成される。サウンドバッファには、光ディスク３６やハードディスク３８から読み出されたゲーム音楽、ゲーム効果音やメッセージなどの各種音声データが記憶される。ＳＰＵは、これらの各種音声データを再生してスピーカ３２から出力させる。なお、スピーカ３２には例えば家庭用テレビ受像機の内蔵スピーカが用いられる。
【００２７】
光ディスク読み取り部３４は、メインプロセッサ１２及びサブプロセッサ１４ａ乃至１４ｈからの指示に従って、光ディスク３６に記憶されたプログラムやデータを読み取る。なお、エンタテインメントシステム１０は、光ディスク３６以外の他の情報記憶媒体に記憶されたプログラムやデータを読み取り可能に構成してもよい。
【００２８】
光ディスク３６は例えばＤＶＤ−ＲＯＭ等の一般的な光ディスクである。また、ハードディスク３８は一般的なハードディスク装置である。光ディスク３６やハードディスク３８には各種プログラムやデータがコンピュータ読み取り可能に記憶される。
【００２９】
ネットワークインタフェース４８は入出力処理部２８とネットワークとに接続されており、エンタテインメントシステム１０がネットワークを介して他のエンタテインメントシステム１０とデータ通信するのを中継する。
【００３０】
インタフェース４０，４４は、コントローラ４２やカメラユニット４６等の各種周辺機器を接続するためのインタフェースである。このようなインタフェースとしては、例えば、各種周辺機器を無線接続するためのＢｌｕｅｔｏｏｔｈ（商標）インタフェースや、各種周辺機器を有線接続するためのＵＳＢ（Universal Serial Bus）インタフェースが用いられる。
【００３１】
カメラユニット４６は、例えば公知のデジタルカメラを含んで構成され、白黒、グレイスケール又はカラーの撮影画像を、例えばＪＰＥＧ（Joint Photographic Experts Group）形式の画像データとして、所定時間（例えば１／６０秒）ごとに入力する。例えば、カメラユニット４６は、レンズをプレイヤに向けた状態でモニタ２６の上に設置され、ケーブルを介してインタフェース４４に接続される。
【００３２】
コントローラ４２は汎用操作入力装置であり、ユーザが各種操作（例えばゲーム操作）を入力するために用いられる。図３はコントローラ４２の外観を示す斜視図である。図３に示すように、コントローラ４２は長方形薄箱状に形成されている。コントローラ４２の表面４２ａの左側には方向キー５０が設けられ、右側にはボタン５２Ａ〜５２Ｄからなるボタン群５２が設けられている。また、コントローラ４２の一側面には補助ボタン５４Ｌ，５４Ｒが設けられている。なお、コントローラ４２には、プログラム実行開始の指示などを行うためのスタートボタン、各種モードを切替える指示などを行うためのセレクトボタンや、傾倒操作可能に構成されるスティック状の操作部材である操作スティック等、他の操作部材が設けられるようにしてもよい。
【００３３】
また、コントローラ４２には、その長手方向の中央にジャイロ５８が内蔵されており、またその側方に加速度センサ５６も内蔵されている。
【００３４】
加速度センサ５６は、互いに直交する３方向に対する加速度を検知する３軸加速度センサである。すなわち、加速度センサ５６は、図４に示すように、コントローラ４２の長手方向であるＸ軸方向の、重力やコントローラ４２の移動に起因する加速度と、コントローラ４２の奥行き方向（短手方向）であるＹ軸方向の、重力やコントローラ４２の移動に起因する加速度と、コントローラ４２の厚さ方向であるＺ軸方向の、重力やコントローラ４２の移動に起因する加速度と、を検知する。
【００３５】
加速度センサ５６は、検知された加速度に応じた電圧を出力する。図５は、加速度センサ５６が検知するいずれかの軸に対する加速度と、検知した加速度に応じて出力する電圧値と、の対応関係を模式的に示すグラフである。図５に示すように、加速度センサ５６は加速度に略比例する電圧値を出力し、加速度を検知しない状態では基準電圧Ｖｏを出力する。また、加速度センサ５６は軸正方向に対する加速度を検知した場合には基準電圧Ｖｏより高い電圧を出力し、軸負方向に対する加速度を検知した場合には基準電圧Ｖｏより低い電圧を出力する。このため、出力される電圧値の基準電圧Ｖｏに対する高低により、各軸の正負いずれの方向に加速度が生じているかを検知することができる。なお、加速度センサ５６は軸正又は負方向に対する最大３Ｇ（Ｇ：重力加速度に相当する加速度）の加速度を検知可能になっており、軸正方向に対する３Ｇの加速度を検知した場合には最大電圧（加速度センサ５６の電源電圧）を出力し、軸負方向に対する３Ｇ（すなわち、軸正方向に対する−３Ｇ）の加速度を検知した場合には最小電圧（０）を出力する。また、エンタテインメントシステム１０には、加速度センサ５６の出力電圧を１０ビットで量子化することによって得られるディジタル値が入力される。すなわち、エンタテインメントシステム１０では加速度センサ５６の出力電圧が０から１０２３までの１０２４段階のディジタル値で表される。ディジタル値０は最小電圧に対応しており、ディジタル値１０２３は最大電圧に対応している。またディジタル値５１１は基準電圧Ｖｏに対応している。以下では、各軸方向の加速度に応じた出力電圧を示すディジタル値のことを「加速度値」と記載する。
【００３６】
エンタテインメントシステム１０では、３つの軸方向の加速度に基づいてコントローラ４２の姿勢が検知される。すなわち、コントローラ４２がＸ軸に対してどれだけ回転したか（符号ＹＵ及びＹＤ：図４参照）、Ｙ軸に対してどれだけ回転したか（符号ＸＵ及びＸＤ：図４参照）を検知することができる。また、コントローラ４２が鉛直方向に移動する際の加速度も検知することができる（符号ＺＵ及びＺＤ：図４参照）。これにより、コントローラ４２が鉛直方向に持ち上げられたり、或いはコントローラ４２が鉛直方向に置かれたりしたことを検知することができる。
【００３７】
ジャイロ５８は、コントローラ４２のＺ軸周りの回転の角速度ωを検知し、当該角速度ωの情報を出力する。エンタテインメントシステム１０では、このジャイロ５８の出力を一定時間ごとでサンプリングし、積分演算を行うことで、コントローラ４２のＺ軸周りの回転の変位量を検知することができる。
【００３８】
入出力処理部２８は、所定時間（例えば１／６０秒）ごとにコントローラ４２の状態を判断し、その結果を表す操作信号をＭＰＵ１１に供給する。ＭＰＵ１１は、ユーザの操作内容をその操作信号に基づいて判断する。なお、エンタテインメントシステム１０は複数のコントローラ４２を接続可能に構成され、各コントローラ４２から入力される操作信号に基づいて、ＭＰＵ１１が各種処理を実行する。
【００３９】
上記構成を有するエンタテインメントシステム１０では、コントローラ４２に加速度センサ５６及びジャイロ５８が取り付けられているので、コントローラ４２の姿勢を変えたり、移動させたりすることで、それら加速度センサ５６及びジャイロ５８の出力に変化を与えることができる。そして、加速度センサ５６及びジャイロ５８の出力は操作信号としてエンタテインメントシステム１０に入力される。このため、エンタテインメントシステム１０では、例えば、ユーザがコントローラ４２の姿勢を変えたり、移動させたりすると、その変化量に応じた変化がゲーム画面に与えられるゲームを実現することができる。
【００４０】
図６は、エンタテインメントシステム１０で実現されるゲームのゲーム画面の一例を示している。このゲーム画面６０には、オブジェクト６２が配置されたゲーム空間を所与の視点から見た様子が表されている。
【００４１】
このゲームでは、ユーザが、コントローラ４２を自然に持った状態（基準状態）からコントローラ４２の状態を変化させることによって、Ｙ軸方向の加速度値が変化すると、オブジェクト６２がその変化量に応じて移動する様子がゲーム画面６０に表される。より具体的には、Ｙ軸方向の加速度値が増加するように、コントローラ４２の状態が基準状態から変化すると、その増加量に応じた距離だけオブジェクト６２が前方（ゲーム画面６０の奥行き方向）に押される様子がゲーム画面６０に表される。また、Ｙ軸方向の加速度値が減少するように、コントローラ４２の状態が基準状態から変化すると、その減少量に応じた距離だけオブジェクト６２が後方（ゲーム画面６０の手前方向）に引っ張られる様子がゲーム画面６０に表される。
【００４２】
ところで、コントローラ４２の持ち方はユーザごとに異なる。すなわち、コントローラ４２の基準状態（基準姿勢）はユーザごとに異なる。また、加速度センサ５６の特性は個体ごとにばらつきがある。例えば、ある軸方向に同じ加速度が生じた場合であっても、加速度センサ５６の出力電圧は異なる場合がある。また、加速度センサ５６の特性は周囲の温度によって変化する場合がある。また、コントローラ４２には、コントローラ４２が水平状態に置かれた場合に加速度センサ５６も水平状態となるように加速度センサ５６が取り付けられているとは限らない。また、加速度センサ５６のコントローラ４２への取り付け状態も個々のコントローラ４２ごとに異なる。このため、上記のようなゲームを実現するにあたって、Ｙ軸方向の加速度値の増減量の判断基準となる基準値を一定の値（例えば５１１）にしてしまうと、ユーザのコントローラ４２の持ち方、個々のコントローラ４２（加速度センサ５６）や周囲の温度等によって、ユーザの操作感が大きく異なることとなってしまう場合があり、適当でない。したがって、上記のようなゲームを実現するにあたっては、上記基準値をこれらの点を考慮して設定する必要がある。すなわち、キャリブレーションを行う必要がある。
【００４３】
なお、キャリブレーションを行うと、ユーザのコントローラ４２の持ち方や個々のコントローラ４２（加速度センサ５６）によって、基準値が異なることになる。この場合、例えば図７（ａ）に示すように、基準値が、加速度値の取り得る範囲（０〜１０２３）の中間値（５１１）よりも小さい値（４１１）に設定されると、加速度値の最大増加量（６１２）となり、最大減少量（４１１）となる。このため、この場合、ユーザはオブジェクト６２を前方に移動させる場合には、最大増加量（６１２）に対応する移動距離まで指示可能であるのに対し、オブジェクト６２を後方に移動させる場合には、最大減少量（４１１）に対応する移動距離までしか指示できなくなる。すなわち、オブジェクト６２を前方に移動させる場合と後方に移動させる場合とでユーザが指示可能な最大移動距離が異なることになる。
【００４４】
同様に、例えば図７（ｂ）に示すように、基準値が、加速度値の取り得る範囲（０〜１０２３）の中間値（５１１）よりも大きい値（例えば６１１）に設定されると、加速度値の最大増加量（４１２）となり、最大減少量（６１１）となる。このため、この場合、ユーザはオブジェクト６２を後方に移動させる場合には、最大減少量（６１１）に対応する移動距離まで指示可能であるのに対し、オブジェクト６２を前方に移動させる場合には、最大増加量（４１２）に対応する移動距離までしか指示できなくなる。
【００４５】
また、図７（ａ）場合には、加速度値の最大増加量が６１２となるのに対し、図７（ｂ）の場合には、加速度値の最大増加量が４１２となるように、基準値が変化することによって加速度値の最大増加量は変化する。このため、基準値が変化することによって、ユーザが指示可能な前方方向への最大移動距離も変化してしまうことになる。同様に、図７（ａ）場合には、加速度値の最大減少量が４１１となるのに対し、図７（ｂ）の場合には、加速度値の最大減少量が６１１となるように、基準値が変化することによって加速度値の最大減少量は変化する。すなわち、基準値が変化することによって、ユーザが指示可能な後方方向への最大移動距離も変化してしまうことになる。
【００４６】
以上より、上記のようなキャリブレーションを行うと、ユーザに操作上の違和感を与えてしまうおそれがある。以下、上記のようなキャリブレーションを行っても、そのような違和感をユーザに与えないようにするための技術について説明する。
【００４７】
図８は、エンタテインメントシステム１０において実現される機能ブロックのうち、本発明に関連するものを主として示す図である。同図に示すように、エンタテインメントシステム１０は、基礎キャリブレーション情報記憶部７０（基準値情報記憶手段）と、状態情報出力部７２と、キャリブレーション情報取得部７４（基準値取得手段）と、キャリブレーション情報記憶部７６と、有効範囲決定部７８と、対応データ取得部８０と、アプリケーション処理実行部８２と、を含んで構成される。これらの機能ブロックは、例えばＲＯＭに記憶されるプログラム、光ディスク３６から読み出されるプログラムや、ネットワークからネットワークインタフェース４８を介して供給されるプログラムがＭＰＵ１１によって実行されることによって実現される。
【００４８】
［１．基礎キャリブレーション情報記憶部］
基礎キャリブレーション情報記憶部７０は、例えばコントローラ４２に含まれるＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）を主として実現される。基礎キャリブレーション情報記憶部７０は基礎キャリブレーション情報（基準値情報）を記憶する。本実施の形態の場合、コントローラ４２が水平に置かれた状態におけるＹ軸方向の加速度値が基礎基準値（基礎キャリブレーション情報）として記憶される。この基礎キャリブレーション情報は、例えばコントローラ４２の生産ラインにおいて取得され、コントローラ４２に含まれるＥＥＰＲＯＭに記憶される。なお、基礎キャリブレーション情報記憶部７０は省略することも可能である。
【００４９】
［２．状態情報出力部］
状態情報出力部７２は加速度センサ５６やジャイロ５８を主として実現される。状態情報出力部７２は、所定数値範囲内の数値をコントローラ４２の状態（姿勢等）に応じて出力する。本実施の形態の場合、状態情報出力部７２は、例えばＹ軸方向の加速度値（０から１０２３までの範囲内の数値）を出力する。
【００５０】
［３．キャリブレーション情報取得部及び記憶部］
キャリブレーション情報取得部７４はＭＰＵ１１を主として実現される。キャリブレーション情報記憶部７６は例えばメインメモリ２０やハードディスク３８を主として実現される。キャリブレーション情報取得部７４は、各コントローラ４２ごとにキャリブレーション情報を取得する。キャリブレーション情報記憶部７６は、キャリブレーション情報取得部７４によって取得された各コントローラ４２のキャリブレーション情報を記憶する。
【００５１】
図９は、キャリブレーション情報記憶部７６の記憶内容の一例を示している。図９に示すように、キャリブレーション情報記憶部７６には、コントローラＩＤに対応づけてキャリブレーション情報が記憶される。本実施の形態の場合、Ｙ軸方向の加速度値に対する基準値がキャリブレーション情報として記憶される。なお、コントローラＩＤとしては、例えば、コントローラ４２がＢｌｕｅｔｏｏｔｈ（商標）インタフェースを介してエンタテインメントシステム１０に接続される場合には、各Ｂｌｕｅｔｏｏｔｈ（商標）機器に固有の番号（ＢＤアドレス）を用いるようにしてもよい。
【００５２】
本実施の形態の場合、キャリブレーション情報取得部７４は、ゲーム開始前やゲーム中の所与のタイミングに、例えば「コントローラを基準姿勢で持って、いずれかのボタンを押して下さい。」のようなメッセージを画面に表示させる。そして、いずれかのボタンの押下が検知されたら、そのタイミングにおけるＹ軸方向の加速度値を取得し、そのコントローラ４２の基準値（キャリブレーション情報）としてキャリブレーション情報記憶部７６に記憶させる。
【００５３】
このようにして基準値（キャリブレーション情報）を取得することにより、個々の加速度センサ５６の特性のばらつき、個々のコントローラ４２における加速度センサ５６の取り付け状態や、エンタテインメントシステム１０（加速度センサ５６）の周囲の温度はもとより、ユーザのコントローラ４２の持ち方をも考慮したキャリブレーションを行うことができるようになる。
【００５４】
なお、ユーザがコントローラ４２を操作する必要がないタイミングでは、ユーザがコントローラ４２を基準姿勢で持っていることが期待できる。例えば、ゲーム開始前（ゲーム起動時）には、ユーザがコントローラ４２を基準姿勢で持っていることが期待できる。また例えば、ゲーム開始後においても、所定のムービー（ゲームストーリーをユーザに説明するためのムービー等）の再生中には、ユーザがコントローラ４２を基準姿勢で持っていることが期待できる。また例えば、複数のステージから構成されるゲームの場合であれば、各ステージの開始前にはユーザがコントローラ４２を基準姿勢で持っていることが期待できる。このため、キャリブレーション情報取得部７４は、そのようなタイミングにおいて、上記のメッセージを表示することなく自動的に、Ｙ軸方向の加速度値を取得し、そのコントローラ４２の基準値としてキャリブレーション情報記憶部７６に記憶させるようにしてもよい。この場合、例えば「コントローラのキャリブレーション中です。コントローラを動かさないで下さい。」のようなメッセージを画面に出力するようにしてもよい。
【００５５】
また、キャリブレーション情報取得部７４は、ユーザ自体の姿勢（コントローラ４２の基準姿勢）が変化したか否かを判断し、ユーザ自体の姿勢（コントローラ４２の基準姿勢）が変化したと判断される場合には、コントローラ４２の基準値の再取得を行うようにしてもよい。このとき、ユーザ自体の姿勢（コントローラ４２の基準姿勢）が変化したか否かは、例えば、所定時間ごとに、現在から所定期間前までの間における、加速度センサ５６やジャイロ５８の出力の統計値（例えば平均値）を取得しておき、その統計値に基づいて判断するようにすればよい。例えば、その統計値が大きく変化した場合には、ユーザ自体の姿勢（コントローラ４２の基準姿勢）が変化したと判断するようにすればよい。このようにすれば、例えば、ユーザが座っている状態から寝ている状態になった場合のように、ユーザ自体の姿勢が変化した場合に、コントローラ４２の基準値の再取得が行われるようになる。すなわち、ユーザ自体の姿勢変化（コントローラ４２の基準姿勢変化）を考慮したキャリブレーションが行われるようになる。
【００５６】
なお、キャリブレーション情報取得部７４は、所与のタイミングにおいて、コントローラ４２のＥＥＰＲＯＭ（基礎キャリブレーション情報記憶部７２）から基礎基準値（基礎キャリブレーション情報）を読み出し、そのコントローラ４２の基準値（キャリブレーション情報）としてキャリブレーション情報記憶部７６に記憶させるようにしてもよい。ここで、「所与のタイミング」とは、例えば、そのコントローラ４２が始めてエンタテインメントシステム１０に接続されたタイミングである。このようにしてキャリブレーション情報を取得しても、少なくとも、個々の加速度センサ５６の特性のばらつきや、個々のコントローラ４２における加速度センサ５６の取り付け状態を考慮したキャリブレーションを行うことが可能である。
【００５７】
また、キャリブレーション情報取得部７４は、コントローラ４２が水平に置かれた状態であるか否かを判定し、コントローラ４２が水平に置かれた状態であると判定される場合に、Ｙ軸方向の加速度値を取得し、そのコントローラ４２の基準値（キャリブレーション情報）としてキャリブレーション情報記憶部７６に記憶させるようにしてもよい。このようにしてキャリブレーション情報を取得しても、個々の加速度センサ５６の特性のばらつきや、個々のコントローラ４２における加速度センサ５６の取り付け状態とともに、エンタテインメントシステム１０（加速度センサ５６）の周囲の温度を考慮したキャリブレーションを行うことが可能になる。
【００５８】
ここで、コントローラ４２が水平に置かれた状態であるか否かは、例えば、１）Ｘ軸方向の加速度がほぼ０Ｇ（０Ｇ±Δｇ）となるような状態が所定期間にわたって継続したとの条件、２）Ｙ軸方向の加速度がほぼ０Ｇ（０Ｇ±Δｇ）となるような状態が所定期間にわたって継続したとの条件、３）Ｚ軸方向の加速度がほぼ−１Ｇ（−１Ｇ±Δｇ）となるような状態が所定期間にわたって継続したとの条件、の全部又は一部が満足されたか否かを判断することによって判断するようにすればよい。
【００５９】
また、ユーザがコントローラ４２を持っている場合には、加速度センサ５６やジャイロ５８の出力がある程度変化するものと考えられるのに対し、コントローラ４２が机等の上に置かれた場合には、加速度センサ５６やジャイロ５８の出力がほぼ一定になる状態（ほとんど変化しない状態）が継続するものと考えられる。このため、加速度センサ５６やジャイロ５８の出力がほぼ一定になる状態が所定期間継続した場合に、コントローラ４２が水平に置かれた状態であると判断するようにしてもよい。
【００６０】
また、例えば「コントローラを床等の水平面に置いた後、いずれかのボタンを押して下さい。」のようなメッセージを画面に表示し、その後、いずれかのボタンの押下が検出されたら、コントローラ４２が水平に置かれた状態であると判断するようにしてもよい。
【００６１】
また、コントローラ４２が水平な状態であると判断された場合には、その際における加速度センサ５６やジャイロ５８の出力を基準出力としてメインメモリ２０やハードディスク３８等に記憶させておくようにしてもよい。そして、その後は、加速度センサ５６やジャイロ５８の出力と、上記基準出力と、を比較することによって、コントローラ４２が水平な状態であるか否かを判断するようにしてもよい。例えば、加速度センサ５６やジャイロ５８の出力と、上記基準出力と、の差が小さい場合に、コントローラ４２が水平な状態であると判断するようにしてもよい。
【００６２】
また、キャリブレーション情報取得部７４は、前回のキャリブレーション情報取得時から温度が一定以上変化しているか否かを判定し、温度が一定以上変化している場合には、基準値（キャリブレーション情報）の再取得を行うようにしてもよい。このようにすることにより、エンタテインメントシステム１０（加速度センサ５６）の周囲の温度変化を考慮したキャリブレーションを実現することができる。なお、前回のキャリブレーション情報取得時から温度が一定以上変化したか否かは、エンタテインメントシステム１０に備えられる温度センサ（例えば、コントローラ４２内に備えられる温度センサ）の検出結果に基づいて判定するようにすればよい。
【００６３】
［４．有効範囲決定部］
有効範囲決定部７８はＭＰＵ１１を主として実現される。有効範囲決定部７８は、キャリブレーション情報記憶部７６に記憶されるキャリブレーション情報に基づいて、状態情報出力部７２によって出力される数値に対する有効範囲を決定する。ここで、有効範囲は、例えば、状態情報出力部７２によって出力され得る数値範囲内の一部であって、かつ、キャリブレーション情報記憶部７６に記憶される基準値と所与の関係にある上限値及び／又は下限値を有するような範囲である。
【００６４】
本実施の形態の場合、有効範囲決定部７８は、キャリブレーション情報記憶部７６に記憶される基準値に基づいて、Ｙ軸方向の加速度値に対する有効範囲を決定する。図１０は、この有効範囲について説明するための図である。図１０に示すように、有効範囲の上限値は、キャリブレーション情報記憶部７６に記憶される基準値に１２８を加算することに算出される。また、有効範囲の下限値は、キャリブレーション情報記憶部７６に記憶される基準値から１２７を減算することによって算出される。例えば、基準値が６１１である場合、上限値が７３９であり、かつ、下限値が４８４である範囲が有効範囲として決定される。
【００６５】
［５．対応データ取得部］
対応データ取得部８０はＭＰＵ１１を主として実現される。対応データ取得部８０は、状態情報出力部７２によって出力された数値が、有効範囲決定部７８によって決定された有効範囲内に含まれるか否かを判定する。そして、対応データ取得部８０は、状態情報出力部７２によって出力された数値が有効範囲内に含まれる場合には、該数値に対応するデータを取得する。一方、対応データ取得部８０は、状態情報出力部７２によって出力された数値が有効範囲内に含まれない場合には、該有効範囲の上限値又は下限値に対応するデータを取得する。
【００６６】
本実施の形態の場合、対応データ取得部８０は、状態情報出力部７２によって出力された数値が有効範囲内に含まれる場合には、該数値に対応する、０から２５５までの範囲（第２の所定数値範囲）内の数値を上記データとして取得する。このとき、図１０に示すように、基準値が１２７に、有効範囲の上限値が２５５に、下限値が０にそれぞれ対応するようにして、上記データの取得が行われる。また、対応データ取得部８０は、状態情報出力部７２によって出力された数値が有効範囲の上限値よりも大きい場合には、２５５を上記データとして取得し、状態情報出力部７２によって出力された数値が有効範囲の下限値よりも小さい場合には、０を上記データとして取得する。このようにして、加速度値は０から２５５までの範囲内の数値に正規化される。
【００６７】
［６．アプリケーション処理実行部］
アプリケーション処理実行部８２はＭＰＵ１１を主として実現される。アプリケーション処理実行部８２は、各種アプリケーション処理を実行する。このアプリケーション処理には、コントローラ４２の状態と、その基準状態と、の状態差に対応する出力を行うための出力制御処理が含まれる。この出力制御処理には、対応データ取得部８０によって取得されたデータが供される。
【００６８】
本実施の形態の場合、アプリケーション処理実行部８２は、ユーザにゲームを提供するためのゲーム処理を実行する。より具体的には、対応データ取得部８０によって取得された数値（正規化後の加速度値）と、１２７（正規化後の加速度値の基準値）と、の差に対応する距離だけ、オブジェクト６２が前方又は後方方向に対移動する様子をゲーム画面６０に表示出力させるための処理が実行される。なお、本実施の形態の場合、図１０に示すようにして加速度値が正規化されるため、状態情報出力部７２によって出力された数値が、有効範囲決定部７８によって決定された有効範囲内に含まれる場合には、該数値と、キャリブレーション情報記憶部７６に記憶される基準値と、の差に対応する距離だけオブジェクト６２が前方又は後方方向に移動する様子がゲーム画面６０に表されることになる。一方、状態情報出力部７２によって出力された数値が、有効範囲決定部７８によって決定された有効範囲内に含まれない場合には、該数値と、キャリブレーション情報記憶部７６に記憶される基準値と、の差に対応する距離だけオブジェクト６２が前方又は後方方向に移動する様子のゲーム画面６０への表示出力が制限されることになる。より具体的には、状態情報出力部７２によって出力された数値が有効範囲の上限値よりも大きい場合には、該上限値と、キャリブレーション情報記憶部７６に記憶される基準値と、の差に対応する距離だけオブジェクト６２が前方に移動する様子がゲーム画面６０に表示出力されることになる。同様に、状態情報出力部７２によって出力された数値が有効範囲の下限値よりも小さい場合には、該下限値と、キャリブレーション情報記憶部７６に記憶される基準値と、の差に対応する距離だけオブジェクト６２が後方に移動する様子がゲーム画面６０に表示出力されることになる。
【００６９】
図１１及び図１２は、エンタテインメントシステム１０で実行される処理を示すフロー図である。この処理を実行するためのプログラムがＭＰＵ１１によって実行されることによって、有効範囲決定部７８や対応データ取得部８０は実現される。
【００７０】
図１１に示すように、この処理では、まずＹ軸方向の加速度値ａが取得される（Ｓ１０１）。また、ユーザが使用しているコントローラ４２のコントローラＩＤが取得される（Ｓ１０２）。そして、そのコントローラＩＤに対応するキャリブレーション情報（図９参照）が読み出され、基準値ａ０が取得される（Ｓ１０３）。そして、基準値ａ０に１２８を加算することによって、上限値ｕが取得される（Ｓ１０４）。また、基準値ａ０から１２７を減算することによって、下限値ｌが取得される（Ｓ１０５）。なお、Ｓ１０１乃至Ｓ１０５の処理が実行されることによって、有効範囲決定部８０が実現される。
【００７１】
次に、加速度値ａが上限値ｕよりも大きいか否かが判定される（Ｓ１０６）。加速度値ａが上限値ｕよりも大きい場合には、加速度値ａが２５５に更新される（Ｓ１０７）。一方、加速度値ａが上限値ｕ以下である場合には、加速度値ａが下限値ｌよりも小さいか否かが判定される（Ｓ１０８）。そして、加速度値ａが下限値ｌよりも小さい場合には、加速度値ａが０に更新される（Ｓ１０９）。一方、加速度値ａが下限値ｌ以上である場合には、加速度値ａがａ−ａ０＋１２７に更新される（Ｓ１１０）。Ｓ１０６乃至Ｓ１１０の処理が実行されることにより、加速度値ａは０から２５５までの範囲内の数値に正規化されるようになっており（図１０参照）、後のゲーム処理（アプリケーション処理）において加速度値ａを用いやすくなるように図られている。なお、Ｓ１０６乃至Ｓ１１０の処理が実行されることによって、対応データ取得部８０が実現される。
【００７２】
次に、オブジェクト６２の移動方向が決定される。すなわち、正規化後の加速度値ａが正規化後の基準値である１２７よりも大きいか否かが判定される（Ｓ１１１）。加速度値ａが１２７よりも大きい場合には、オブジェクト６２の移動方向が前方方向に設定される（Ｓ１１２）。一方、加速度値ａが１２７以下である場合には、加速度値ａが１２７よりも小さいか否かが判定される（Ｓ１１３）。そして、加速度値ａが１２７よりも小さい場合には、オブジェクト６２の移動方向が後方方向に設定される（Ｓ１１４）。
【００７３】
次に、オブジェクト６２の移動距離が決定される。すなわち、正規化後の加速度値ａと、正規化後の基準値である１２７と、の差Δａが算出され（Ｓ１１５）、その差Δａに基づいて移動距離が決定される（Ｓ１１６）。より具体的には、Δａの値が大きくなると、移動距離が長くなるようにして移動距離が決定される。
【００７４】
そして、オブジェクト６２がゲーム空間内を、Ｓ１１１乃至Ｓ１１４の処理によって設定された方向に、Ｓ１１５及びＳ１１６の処理によって決定された移動距離だけ移動する様子を表すゲーム画面６０が生成され、モニタ２６に表示される（Ｓ１１７）。なお、Ｓ１１１乃至Ｓ１１７の処理は、アプリケーション処理実行部８２によって実行されるアプリケーション処理（ゲーム処理）に相当している。
【００７５】
以上の処理が実行されることにより、エンタテインメントシステム１０では、キャリブレーションが行われることによって基準値が変化しても、ユーザがオブジェクト６２を前方に移動させる場合に指示可能な最大移動距離は常に一定の移動距離（増加量１２８に対応する距離）となり、ユーザがオブジェクト６２を後方に移動させる場合に指示可能な最大移動距離も常に一定の移動距離（減少量１２７に対応する距離）となる。また、オブジェクト６２を前方に移動させる場合と、オブジェクト６２を後方に移動させる場合と、で指示可能な最大移動距離が常に略等しくなる。その結果、キャリブレーションが行われても、それに起因した操作上の違和感をユーザに感じさせないように図られている。
【００７６】
以上説明したように、エンタテインメントシステム１０では、例えば、ユーザがコントローラ４２の状態を基準状態から変化させることによって、ゲーム空間に配置されるオブジェクト６２に対する移動指示を行うようなゲームを実現することができる。また、エンタテインメントシステム１０では、個々の加速度センサ５６の特性のばらつきや温度による変化、個々のコントローラ４２における加速度センサ５６の取り付け状態、ユーザごとのコントローラ４２の持ち方を考慮して、キャリブレーションが行われるため、それらに起因してユーザの操作性が損なわれることがないように図られている。また特に、エンタテインメントシステム１０では、上記のキャリブレーションを行うことに起因する違和感をユーザに感じさせないように図られている。
【００７７】
なお、本発明は以上に説明した実施の形態に限定されるものではない。
【００７８】
例えば、本実施の形態では、Ｙ軸方向の加速度値のみをオブジェクト６２の移動制御に用いるようにしたが、Ｘ軸方向やＺ軸方向の加速度値をオブジェクト６２の移動制御等に用いる場合には、Ｘ軸方向やＺ軸方向の加速度値に対する基礎基準値や基準値を基礎キャリブレーション情報やキャリブレーション情報に含めるようにすればよい。
【００７９】
また例えば、加速度センサ５６については、各軸方向に１Ｇの加速度が生じた場合の出力の変化（感度）が個々の加速度センサ５６ごとに異なる場合があるため、各軸方向の感度を示す情報が、基礎キャリブレーション情報やキャリブレーション情報に含まれるようにしてもよい。そして、この情報に基づいてキャリブレーションが行われるようにしてもよい。こうすれば、キャリブレーションをより精密に行うことが可能になる。
【００８０】
また例えば、ジャイロ５８の検出結果をオブジェクト６２の移動制御等に用いる場合には、コントローラ４２を所定の姿勢で置いた状態におけるジャイロ５８の出力（基礎基準値）を示す情報や、コントローラ４２をＺ軸周りに角速度９０ｄｅｇ／ｓで回転させた場合のジャイロ５８の出力の変化（感度）を示す情報が基礎キャリブレーション情報やキャリブレーション情報に含まれるようにしてもよい。そして、これらの情報に基づいてキャリブレーションが行われるようにしてもよい。
【００８１】
また例えば、コントローラ４２が所定の姿勢である場合における加速度センサ５６やジャイロ５８の出力（基礎基準値）や、コントローラ４２に所定の状態変化が与えられた場合における加速度センサ５６やジャイロ５８の出力の変化（感度）は、周囲の温度によって異なる場合があるため、基礎キャリブレーション情報やキャリブレーション情報には、例えば、いくつかの代表温度（例えば、０℃，１０℃，２０℃，３０℃）の各々における、又は、いくつかの温度範囲の各々における、加速度センサ５６やジャイロ５８の基礎基準値や感度を示す情報が含まれるようにしてもよい。こうすれば、キャリブレーションをより精密に行うことが可能になる。
【００８２】
また例えば、有効範囲決定部７８では、次のようにして有効範囲が決定されるようにしてもよい。すなわち、例えば図１３に示すように、所定の加速度変化（軸方向への２Ｇ分の加速度変化）に対応する加速度値の変化量（ΔＡ）を、基準値（６１１）に加算することによって上限値（６１１＋ΔＡ）を算出するとともに、該変化量（ΔＡ）を、基準値（６１１）から減算することによって下限値（６１１−ΔＡ）を算出するようにしてもよい。このとき、加速度センサ５６の感度を示す情報が基礎キャリブレーション情報やキャリブレーション情報として記憶されている場合には、その情報に基づいて、所定の加速度変化（２Ｇ分の加速度変化）に対応する加速度値の変化量（ΔＡ）を取得するようにしてもよい。加速度センサ５６に関しては個々の加速度センサ５６ごとに感度が異なる場合があるが、こうすれば、コントローラ４２に取り付けられた加速度センサ５６の感度を考慮しつつ、有効範囲を決定できるようになる。
【００８３】
また例えば、図１０や図１３に示すようにして有効範囲を決定する際において、基準値に所与の値（図１０の場合であれば１２８）を加算してなる値が１０２３より大きくなってしまう場合や、基準値から所与の値（図１０の場合であれば１２７）を減算してなる値が０よりも小さくなってしまう場合には、次のようにして有効範囲を決定してもよい。すなわち、例えば図１４に示すように、基準値（９５０）に所与の値（１２８）を加算してなる値（１０７８）が１０２３より大きくなってしまう場合には、上限値を１０２３に決定するとともに、下限値を、上限値（１０２３）と基準値（９５０）との差（７３）を基準値（９５０）から減算することによって得られる値（８７７）に決定するようにしてもよい。このようにして、上限値と基準値との間の幅が狭くなる分だけ、下限値と基準値との間の幅も狭くし、上限値と基準値との間の幅と、下限値と基準値との間の幅と、が略同じになるようにしてもよい。なお、基準値から所与の値を減算してなる値（下限値候補）が０よりも小さくなってしまう場合にも同様にして、上限値と基準値との間の幅と、下限値と基準値との間の幅と、が略同じになるようにすればよい。
【００８４】
なお、上限値と基準値との間の幅が狭くなってしまう場合であっても、下限値と基準値との間の幅は変化させないようにしてもよい。すなわち、例えば図１５に示すように、基準値（９５０）に所与の値（１２８）を加算してなる値（１０７８）が１０２３より大きくなってしまう場合には、上限値を１０２３に決定するとともに、下限値を、基準値（９５０）から元々の所与の値（１２７）を減算することによって得られる値（８２３）に決定するようにしてもよい。同様に、下限値と基準値との間の幅が狭くなってしまう場合についても、上限値と基準値との間の幅は変化させないようにしてもよい。
【００８５】
または、上限値と基準値との間の幅が狭くなってしまう場合には、その分だけ、下限値と基準値との間の幅が広くなるようにしてもよい。すなわち、例えば図１６に示すように、基準値に所与の値（１２８）を加算してなる値（１０７８）が１０２３より大きくなってしまう場合には、上限値と基準値との間の幅が狭くなる分（５５）だけ、下限値と基準値との間の幅が、元々の幅（１２７）より広い幅（１２７＋５５）となるようにしてもよい。同様に、下限値と基準値との間の幅が狭くなってしまう場合についても、その分だけ、上限値と基準値との間の幅が広くなるようにしてもよい。
【００８６】
また例えば、有効範囲決定部７８では、次のようにして有効範囲が決定されるようにしてもよい。すなわち、例えば図１７に示すように、基準値（６１１）が、加速度値として出力され得る値範囲（０〜１０２３）の中間値（５１１）よりも大きい場合には、上限値を１０２３に決定するとともに、下限値を、上限値（１０２３）と基準値（６１１）との差（４１２）を基準値（６１１）から減算することによって得られる値（１９９）に決定するようにしてもよい。同様に、基準値が、加速度値として出力され得る値範囲（０〜１０２３）の中間値（５１１）よりも小さい場合には、下限値を０に決定するとともに、上限値を基準値の２倍の値に決定するようにしてもよい。このようにすれば、オブジェクト６２を前方に移動させる場合と、オブジェクト６２を後方に移動させる場合と、で指示可能な最大移動距離が常に略等しくなるように図ることが可能になるとともに、ユーザができる限り長い移動距離を指示できるように図ることが可能になる。なお、この場合にも、加速度値を０から２５５までの範囲内の数値に正規化することによって、後の処理（アプリケーション処理）において加速度値が用いやすくなるように図るとよい。
【００８７】
また例えば、キャリブレーション情報はゲーム終了後も保持しておき、次回ゲームプレイ時においても利用できるようにしてもよい。
【００８８】
また例えば、ユーザによって指示された場合や所定条件が満足された場合等の所与のタイミングにおいて、コントローラ４２のＥＥＰＲＯＭ（基礎キャリブレーション情報記憶部７０）に記憶される基礎キャリブレーション情報を再読み出しし、その基礎キャリブレーション情報によって、キャリブレーション情報記憶部７６に記憶されるキャリブレーション情報を初期化するようにしてもよい。
【００８９】
また例えば、キャリブレーション情報取得部７４、キャリブレーション情報記憶部７６、有効範囲決定部７８及び対応データ取得部８０の全部又は一部はコントローラ４２において実現されるようにしてもよい。
【００９０】
また例えば、以上の説明では、加速度値を０から２５５までの範囲内の数値に正規化する場合に、上限値が２５５に、下限値が０に、基準値が１２７にそれぞれ対応するようにして、かつ、下限値から基準値までの範囲内の数値が、０から１２７までの範囲内の数値に均等に割り当てられ、基準値から上限値までの範囲内の数値が、１２７から２５５までの範囲内の数値に均等に割り当てられるようにして、かかる正規化を行うようにしたが、下限値から基準値までの範囲内の数値は、０から１２７までの範囲内の数値に均等に割り当てなくてもよいし、また、基準値から上限値までの範囲内の数値は、１２７から２５５までの範囲内の数値に均等に割り当てなくてもよい。例えば、基準値（例えば６１１）付近については、連続する所定数の数値（例えば６１２〜６１９）が、１２７から２５５までの範囲内の一の数値（例えば１２８）に割り当てられるようにするとともに、上限値（例えば８６７）付近については、一の数値（例えば８６６）が、１２７から２５５までの範囲内の一の数値（例えば２５４）に割り当てられるようにして、上記正規化が行われるようにしてもよい。この例のようにして、加速度値が基準値付近で比較的大きく変化しても、ゲーム画面には比較的小さな変化が表れるようにしてもよい。
【００９１】
また例えば、エンタテインメントシステム１０において実行されるアプリケーション処理はゲーム処理に限られない。また例えば、本発明はエンタテインメントシステム１０以外の情報処理装置（コンピュータ）にも適用することができる。本発明は、操作入力装置の状態と、該操作入力装置の基準状態と、の状態差に対応する出力を行う情報処理装置に適用することができるものである。
【図面の簡単な説明】
【００９２】
【図１】本実施形態に係るエンタテインメントシステムのハードウェア構成を示す図である。
【図２】ＭＰＵの構成を示す図である。
【図３】コントローラの一例を示す斜視図である。
【図４】コントローラにより検出されるデータを説明する図である。
【図５】加速度センサが検知する加速度と加速度センサが出力する電圧との関係を示すグラフである。
【図６】ゲーム画面の一例を示す図である。
【図７】加速度値と基準値との関係について説明するための図である。
【図８】本実施の形態に係るエンタテインメントシステムの機能ブロック図である。
【図９】キャリブレーション情報記憶部の記憶内容を示す図である。
【図１０】有効範囲について説明するための図である。
【図１１】エンタテインメントシステムにおいて実行される処理について示すフロー図である。
【図１２】エンタテインメントシステムにおいて実行される処理について示すフロー図である。
【図１３】有効範囲について説明するための図である。
【図１４】有効範囲について説明するための図である。
【図１５】有効範囲について説明するための図である。
【図１６】有効範囲について説明するための図である。
【図１７】有効範囲について説明するための図である。
【符号の説明】
【００９３】
１０  エンタテインメントシステム、１１  ＭＰＵ、１２  メインプロセッサ、１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆ，１４ｇ，１４ｈ  サブプロセッサ、１６  バス、１８  メモリコントローラ、２０  メインメモリ、２２  インタフェース、２４  画像処理部、２６  モニタ、２８  入出力処理部、３０  音声処理部、３２  スピーカ、３４  光ディスク読み取り部、３６  光ディスク、３８  ハードディスク、４０  インタフェース、４２  コントローラ、４２ａ  表面、４３  姿勢情報出力部、４４  インタフェース、４６  カメラユニット、４８  ネットワークインタフェース、５０  方向キー、５２  ボタン群、５２Ａ，５２Ｂ，５２Ｃ，５２Ｄ  ボタン、５４Ｌ，５４Ｒ  補助ボタン、５６  加速度センサ、５８  ジャイロ、６０  ゲーム画面、６２  オブジェクト、７０  基礎キャリブレーション情報記憶部、７２  状態情報出力部、７４  キャリブレーション情報取得部、７６  キャリブレーション情報記憶部、７８  有効範囲決定部、８０  出力制御処理実行部、８２  アプリケーション処理実行部。
【図１】
2007310840.tif 000003
【図２】
2007310840.tif 000004
【図３】
2007310840.tif 000005
【図４】
2007310840.tif 000006
【図５】
2007310840.tif 000007
【図６】
2007310840.tif 000008
【図７】
2007310840.tif 000009
【図８】
2007310840.tif 000010
【図９】
2007310840.tif 000011
【図１０】
2007310840.tif 000012
【図１１】
2007310840.tif 000013
【図１２】
2007310840.tif 000014
【図１３】
2007310840.tif 000015
【図１４】
2007310840.tif 000016
【図１５】
2007310840.tif 000017
【図１６】
2007310840.tif 000018
【図１７】
2007310840.tif 000019