(57)【要約】【課題】加速度センサの出力に応じて、アプリケーションプログラムによって利用しやすい形式のデータを提供できる情報処理装置を提供する。【解決手段】加速度センサ５１と接続され、加速度センサ５１の出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備え、加速度センサ５１の出力する信号によって示されるセンサ出力値を取得し、取得したセンサ出力値に基づいて当該センサ出力値が所定の条件を満たすか否かを判定し、アプリケーション実行手段の要求に応じて当該判定による判定結果をアプリケーション実行手段に通知し、アプリケーション実行手段は通知された判定結果を用いて処理を行う情報処理装置である。【選択図】図７
2008065473.tif 000002
【特許請求の範囲】
【請求項１】
加速度センサと接続され、当該加速度センサの出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備える情報処理装置であって、
前記加速度センサの出力する信号によって示されるセンサ出力値を取得するセンサ出力値取得手段と、
前記取得したセンサ出力値に基づいて、当該センサ出力値が所定の条件を満たすか否かを判定する判定手段と、
前記アプリケーション実行手段の要求に応じて、前記判定による判定結果を前記アプリケーション実行手段に通知する判定結果通知手段と、
を含み、
前記アプリケーション実行手段は、前記通知された判定結果を用いて処理を行うことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記判定手段は、前記アプリケーション実行手段によって与えられたパラメタに基づいて、前記センサ出力値が所定の条件を満たすか否かを判定する
ことを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記アプリケーション実行手段によって与えられたパラメタを用いた所定の関数に基づいて、前記取得したセンサ出力値をデータ値に変換するセンサ出力値変換手段をさらに含み、
前記判定手段は、前記変換されたデータ値を用いて、前記センサ出力値が所定の条件を満たすか否かを判定する
ことを特徴とする情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記判定手段は、前記変換されたデータ値と、当該判定手段による過去の判定結果と、に基づいて、前記センサ出力値が所定の条件を満たすか否かを判定する
ことを特徴とする情報処理装置。
【請求項５】
請求項１に記載の情報処理装置であって、
前記判定手段は、前記センサ出力値が過去のセンサ出力値に対して変化したか否かを判定することを特徴とする情報処理装置。
【請求項６】
請求項１に記載の情報処理装置であって、
前記センサ出力値が過去のセンサ出力値に対して変化したか否かに応じて増減するカウンタ値を保持するカウンタ値保持手段をさらに含み、
前記判定手段は、前記カウンタ値に基づいて、所定の条件を満たすか否かを判定する
ことを特徴とする情報処理装置。
【請求項７】
請求項６に記載の情報処理装置であって、
前記判定手段は、前記カウンタ値と所定の閾値との大小関係に応じて、所定の条件を満たすか否かを判定し、
前記アプリケーション実行手段は、前記通知された判定結果に応じて、動作モードを切り替えて処理を実行する
ことを特徴とする情報処理装置。
【請求項８】
加速度センサと接続され、当該加速度センサの出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備える情報処理装置の制御方法であって、
前記加速度センサの出力する信号によって示されるセンサ出力値を取得するステップと、
前記取得したセンサ出力値に基づいて、当該センサ出力値が所定の条件を満たすか否かを判定するステップと、
前記アプリケーション実行手段の要求に応じて、前記判定による判定結果を前記アプリケーション実行手段に通知するステップと、
を含み、
前記アプリケーション実行手段は、前記通知された判定結果を用いて処理を行うことを特徴とする情報処理装置の制御方法。
【請求項９】
加速度センサと接続され、当該加速度センサの出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備えるコンピュータにより実行されるプログラムであって、
前記加速度センサの出力する信号によって示されるセンサ出力値を取得するセンサ出力値取得手段、
前記取得したセンサ出力値に基づいて、当該センサ出力値が所定の条件を満たすか否かを判定する判定手段、及び
前記アプリケーション実行手段の要求に応じて、前記判定による判定結果を前記アプリケーション実行手段に通知する判定結果通知手段、
として前記コンピュータを機能させ、
前記アプリケーション実行手段は、前記通知された判定結果を用いて処理を行う
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加速度センサの出力に応じた情報処理を行う情報処理装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、加速度センサの出力に応じて様々な処理を実行するためのアプリケーションプログラムが開発されている。このようなアプリケーションプログラムは、加速度センサが出力する信号によって示されるセンサ出力値を取得し、この取得したセンサ出力値に基づいて各種の情報処理を実行している。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、アプリケーションプログラムによっては、加速度センサの出力するセンサ出力値そのものではなく、このセンサ出力値から得られる加速度の所定のパターンなどに応じた処理を実行したいという要請がある。このような場合において、センサ出力値は必ずしもアプリケーションプログラムによって利用しやすい形式にはなっていない。そのため、アプリケーションプログラムの開発者は、個別にセンサ出力値に応じた判定等の情報処理を行うためのプログラムを開発する必要があり、開発効率が悪い。
【０００４】
本発明は上記実情に鑑みてなされたものであって、その目的の一つは、加速度センサの出力に応じて、アプリケーションプログラムによって利用しやすい形式のデータを提供できる情報処理装置、その制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するための本発明に係る情報処理装置は、加速度センサと接続され、当該加速度センサの出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備える情報処理装置であって、前記加速度センサの出力する信号によって示されるセンサ出力値を取得するセンサ出力値取得手段と、前記取得したセンサ出力値に基づいて、当該センサ出力値が所定の条件を満たすか否かを判定する判定手段と、前記アプリケーション実行手段の要求に応じて、前記判定による判定結果を前記アプリケーション実行手段に通知する判定結果通知手段と、を含み、前記アプリケーション実行手段は、前記通知された判定結果を用いて処理を行うことを特徴とする。
【０００６】
また、本発明に係る情報処理装置の制御方法は、加速度センサと接続され、当該加速度センサの出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備える情報処理装置の制御方法であって、前記加速度センサの出力する信号によって示されるセンサ出力値を取得するステップと、前記取得したセンサ出力値に基づいて、当該センサ出力値が所定の条件を満たすか否かを判定するステップと、前記アプリケーション実行手段の要求に応じて、前記判定による判定結果を前記アプリケーション実行手段に通知するステップと、を含み、前記アプリケーション実行手段は、前記通知された判定結果を用いて処理を行うことを特徴とする。
【０００７】
また、本発明に係るプログラムは、加速度センサと接続され、当該加速度センサの出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備えるコンピュータにより実行されるプログラムであって、前記加速度センサの出力する信号によって示されるセンサ出力値を取得するセンサ出力値取得手段、前記取得したセンサ出力値に基づいて、当該センサ出力値が所定の条件を満たすか否かを判定する判定手段、及び前記アプリケーション実行手段の要求に応じて、前記判定による判定結果を前記アプリケーション実行手段に通知する判定結果通知手段、として前記コンピュータを機能させ、前記アプリケーション実行手段は、前記通知された判定結果を用いて処理を行うプログラムである。このプログラムは、各種のコンピュータ読み取り可能な情報記憶媒体に格納されてよい。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の一実施形態について、図面を参照しながら説明する。
【０００９】
図１は、本実施形態に係るエンタテインメントシステムのハードウェア構成を示す図である。同図に示すように、エンタテインメントシステム１０は、ＭＰＵ（Micro Processing Unit）１１と、メインメモリ２０と、画像処理部２４と、モニタ２６と、入出力処理部２８と、音声処理部３０と、スピーカ３２と、光ディスク読み取り部３４と、ハードディスク３８と、インタフェース（Ｉ／Ｆ）４０，４４と、コントローラ４２と、カメラユニット４６と、ネットワークインタフェース４８と、を含んで構成されるコンピュータシステムである。
【００１０】
図２は、ＭＰＵ１１の構成を示す図である。同図に示すように、ＭＰＵ１１は、メインプロセッサ１２と、サブプロセッサ１４ａ，１４ｂ，１４ｃ，１４ｄ，１４ｅ，１４ｆ，１４ｇ，１４ｈと、バス１６と、メモリコントローラ１８と、インタフェース（Ｉ／Ｆ）２２と、を含んで構成される。
【００１１】
メインプロセッサ１２は、図示しないＲＯＭ（Read Only Memory）に記憶されるオペレーティングシステム、例えばＤＶＤ（Digital Versatile Disk）−ＲＯＭ等の光ディスク３６から読み出されるプログラム及びデータや、通信ネットワークを介して供給されるプログラム及びデータ等に基づいて、各種情報処理を行ったり、サブプロセッサ１４ａ乃至１４ｈに対する制御を行ったりする。
【００１２】
サブプロセッサ１４ａ乃至１４ｈは、メインプロセッサ１２からの指示に従って、各種情報処理を行ったり、エンタテインメントシステム１０の各部を、例えばＤＶＤ−ＲＯＭ等の光ディスク３６から読み出されるプログラム及びデータや、通信ネットワークを介して供給されるプログラム及びデータ等に基づいて制御したりする。
【００１３】
バス１６は、アドレス及びデータをエンタテインメントシステム１０の各部でやり取りするためのものである。メインプロセッサ１２、サブプロセッサ１４ａ乃至１４ｈ、メモリコントローラ１８、インタフェース２２は、バス１６を介して相互にデータ授受可能に接続される。
【００１４】
メモリコントローラ１８は、メインプロセッサ１２及びサブプロセッサ１４ａ乃至１４ｈからの指示に従って、メインメモリ２０へのアクセスを行う。メインメモリ２０には、光ディスク３６やハードディスク３８から読み出されたプログラム及びデータや、通信ネットワークを介して供給されたプログラム及びデータが必要に応じて書き込まれる。メインメモリ２０はメインプロセッサ１２やサブプロセッサ１４ａ乃至１４ｈの作業用としても用いられる。
【００１５】
インタフェース２２には画像処理部２４及び入出力処理部２８が接続される。メインプロセッサ１２及びサブプロセッサ１４ａ乃至１４ｈと、画像処理部２４又は入出力処理部２８と、の間のデータ授受はインタフェース２２を介して行われる。
【００１６】
画像処理部２４は、ＧＰＵ（Graphical Processing Unit）とフレームバッファとを含んで構成される。ＧＰＵは、メインプロセッサ１２やサブプロセッサ１４ａ乃至１４ｈから供給される画像データに基づいてフレームバッファに各種画面を描画する。フレームバッファに形成された画面は、所定のタイミングでビデオ信号に変換されてモニタ２６に出力される。なお、モニタ２６には例えば家庭用テレビ受像機が用いられる。
【００１７】
入出力処理部２８には、音声処理部３０、光ディスク読み取り部３４、ハードディスク３８、インタフェース４０及び４４、並びにネットワークインタフェース４８が接続される。入出力処理部２８は、メインプロセッサ１２及びサブプロセッサ１４ａ乃至１４ｈと、音声処理部３０、光ディスク読み取り部３４、ハードディスク３８、インタフェース４０及び４４、ネットワークインタフェース４８と、の間のデータ授受を制御する。
【００１８】
音声処理部３０は、ＳＰＵ（Sound Processing Unit）とサウンドバッファとを含んで構成される。サウンドバッファには、光ディスク３６やハードディスク３８から読み出されたゲーム音楽、ゲーム効果音やメッセージなどの各種音声データが記憶される。ＳＰＵは、これらの各種音声データを再生してスピーカ３２から出力させる。なお、スピーカ３２には例えば家庭用テレビ受像機の内蔵スピーカが用いられる。
【００１９】
光ディスク読み取り部３４は、メインプロセッサ１２及びサブプロセッサ１４ａ乃至１４ｈからの指示に従って、光ディスク３６に記憶されたプログラムやデータを読み取る。なお、エンタテインメントシステム１０は、光ディスク３６以外の他のコンピュータ読み取り可能な情報記憶媒体に記憶されたプログラムやデータを読み取り可能に構成されてもよい。
【００２０】
光ディスク３６は例えばＤＶＤ−ＲＯＭ等の一般的な光ディスク（コンピュータ読み取り可能な情報記憶媒体）である。また、ハードディスク３８は一般的なハードディスク装置である。光ディスク３６やハードディスク３８には各種プログラムやデータがコンピュータ読み取り可能に記憶される。
【００２１】
インタフェース（Ｉ／Ｆ）４０，４４は、コントローラ４２やカメラユニット４６等の各種周辺機器を接続するためのインタフェースである。このようなインタフェースとしては、例えばＵＳＢ（Universal Serial Bus）インタフェースが用いられる。また、例えばBluetooth（登録商標）インタフェースなどの無線通信インタフェースが用いられてもよい。
【００２２】
コントローラ４２は汎用操作入力手段であり、ユーザが各種操作（例えばゲーム操作）を入力するために用いられる。入出力処理部２８は、所定時間（例えば１／６０秒）ごとにコントローラ４２の各部の状態をスキャンし、その結果を表す操作信号をメインプロセッサ１２やサブプロセッサ１４ａ乃至１４ｈに供給する。メインプロセッサ１２やサブプロセッサ１４ａ乃至１４ｈは、ユーザによって行われた操作の内容をその操作信号に基づいて判断する。なお、エンタテインメントシステム１０は複数のコントローラ４２を接続可能に構成されており、各コントローラ４２から入力される操作信号に基づいて、メインプロセッサ１２やサブプロセッサ１４ａ乃至１４ｈが各種処理を実行するようになっている。
【００２３】
カメラユニット４６は、例えば公知のデジタルカメラを含んで構成され、白黒、グレイスケール又はカラーの撮影画像を所定時間（例えば１／６０秒）ごとに入力する。本実施の形態におけるカメラユニット４６は、撮影画像をＪＰＥＧ（Joint Photographic Experts Group）形式の画像データとして入力するようになっている。また、カメラユニット４６は、例えばレンズをプレイヤに向けた状態でモニタ２６の上に設置され、ケーブルを介してインタフェース４４に接続される。ネットワークインタフェース４８は入出力処理部２８と通信ネットワークとに接続されており、エンタテインメントシステム１０が通信ネットワークを介して他のエンタテインメントシステム１０とデータ通信するのを中継するようになっている。
【００２４】
また、本実施形態においては、コントローラ４２は、当該コントローラ４２の姿勢に関する情報を出力する手段として、その内部に、加速度センサ５１及びジャイロセンサ５２を備えていることとする。具体的に、コントローラ４２は、例えば図３に示すように、その表面に、方向キーやアナログデバイス、操作ボタン、その他のキー（図中「Ａ」ないし「Ｄ」と描く）を備え、また内部に、加速度センサ５１及びジャイロセンサ５２を備える。
【００２５】
ここで加速度センサ５１は、梁に支持された錘を内蔵し、当該錘にかかる加速度によって、錘が変位して、それにより梁に生じるたわみ量を検出することで錘にかかる加速度を検出する。加速度センサ５１は、互いに略直交する３軸方向の加速度をそれぞれ検出する、３軸加速度センサであってもよい。具体例として、図３に示したように、加速度センサ５１は、コントローラ４２の筐体内部に固定されており、互いに直交するｘ軸、ｙ軸、及びｚ軸の３つの基準軸が設定されている。ここで、例えばｘ軸はコントローラ４２の長手方向（左右方向）、ｙ軸はコントローラ４２の奥行方向（前後方向）、ｚ軸はコントローラ４２の厚み方向（図において紙面に対して鉛直手前側の方向）にそれぞれ対応させてもよい。そして、加速度センサ５１は、３つの基準軸のそれぞれに対する加速度を検知し、検知した加速度に応じた３つの電圧値を出力する。
【００２６】
図４は、加速度センサ５１が検知するいずれかの軸に対する加速度と、検知した加速度に応じて出力する電圧値と、の対応関係を模式的に示すグラフである。図４に示すように、加速度センサ５１は加速度に略比例する電圧信号を出力し、加速度を検知しない状態では基準電圧Ｖｏを出力する。出力される電圧値の基準電圧Ｖｏに対する高低により、各軸について、その正負いずれの方向に加速度が生じているかを検知できる。なお、図において１Ｇは、重力加速度に相当する加速度を示している。コントローラ４２は、この電圧信号をＡ／Ｄ変換したディジタル値を、加速度を示す値として出力する。
【００２７】
この加速度センサ５１の出力のうち、重力によって生じるｘ軸の加速度は、コントローラ４２のｙ軸を中心とした傾きによって変化する。例えばコントローラ４２が図５に示すように水平面に対して長手方向に、θy1度（θy1＜０）傾いた姿勢となっている間、ｘ軸方向の重力加速度ａはａ＝αsinθy1となる。また、図６に示すようにコントローラ４２が水平面に対してθy2度（θy2＞０）傾いている間、ｘ軸方向の重力加速度ａはａ＝αsinθy2となる。ここでαは、負の係数である。このため、電圧値Ｖによって表される加速度値ａを用いて、θ＝arcsin（ａ／α）を算出することにより、コントローラ４２の水平面に対する角度を表す情報が得られる。同様に、ｙ軸の重力加速度から、コントローラ４２のｘ軸を中心とした回転の傾きを表す情報が得られる。
【００２８】
ジャイロセンサ５２は、コントローラ４２のｚ軸を中心とした回転の角速度を検知し、当該角速度の情報を出力する。エンタテインメントシステム１０は、このジャイロセンサ５２の出力を一定時間ごとにサンプリングし、積分演算を行うことで、コントローラ４２のｚ軸に対する回転の変位量を取得する。
【００２９】
以下では、以上のハードウェア構成を有するエンタテインメントシステム１０が、本発明に係る情報処理装置として動作する場合に実現する機能について、説明する。この場合のエンタテインメントシステム１０は、機能的に、図７に示すように、センサ出力値取得部６１と、センサ出力値変換部６２と、判定部６３と、判定結果通知部６４と、アプリケーション実行部６５と、を含んで構成されている。これらの機能は、ＭＰＵ１１がメインメモリ２０に格納されるプログラムに従って動作することにより、実現できる。このプログラムは、例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータで読み取り可能な各種情報記録媒体に格納されて提供されるものであってもよい。また、情報処理装置をセンサ出力値取得部６１、センサ出力値変換部６２、判定部６３、及び判定結果通知部６４として機能させるためのプログラムは、例えばライブラリプログラムとして提供されるものであってもよい。
【００３０】
センサ出力値取得部６１は、加速度センサ５１の出力する信号によって示されるセンサ出力値を取得する。ここで加速度センサ５１は、前述したように各基準軸に対する加速度に応じた電圧値を信号として出力する。センサ出力値取得部６１は、この信号によって示される各基準軸のセンサ出力値を取得する。例えばセンサ出力値は、電圧信号をＡ／Ｄ変換して得られる０から１０２３までの範囲の整数値である。
【００３１】
ここでセンサ出力値取得部６１は、所定時間ごと（例えば垂直同期信号が入力されたタイミングごと）にコントローラ４２の出力をスキャンすることにより、各基準軸に対するセンサ出力値を取得することとする。以降の説明においては、センサ出力値取得部６１が取得するセンサ出力値をＶとする。
【００３２】
なお、コントローラ４２は、各基準軸について、加速度センサ５１の出力する電圧信号をＡ／Ｄ変換して得られるディジタル値に変化があった場合のみ、この変化したディジタル値をセンサ出力値として出力することとしてもよい。この場合、センサ出力値取得部６１は、所定時間おきにコントローラ４２の出力をスキャンした結果、各基準軸についてセンサ出力値が出力されている場合のみ、出力されたセンサ出力値を取得することとする。逆にある時点においてある基準軸についてセンサ出力値がコントローラ４２から出力されていない場合、当該時点における当該基準軸のセンサ出力値は、過去最も近い時点においてセンサ出力値取得部６１が取得したセンサ出力値と同じ値であるとみなすことができる。
【００３３】
センサ出力値変換部６２は、センサ出力値取得部６１が取得したセンサ出力値Ｖを、所定の関数に基づいてデータ値Ｄに変換する。具体例として、センサ出力値変換部６２は、データ値Ｄを以下の式によって算出する。
【数１】
2008065473.tif 000003
【００３４】
ここで、Ｃはセンタ値であり、基準電圧Ｖｏに対応するセンサ出力値を示している。また、Sign（Ｖ−Ｃ）はＶ−Ｃの正負に応じて決まる値であり、Ｖ≧Ｃであれば＋１、Ｖ＜Ｃであれば−１となる。さらに、Ｐ１はスケールパラメタであり、この値によってデータ値Ｄがとり得る値の幅が変化する。Ｐ２は感度調整用のパラメタであり、ここでは正の整数値であることとする。Ｐ２は、Ｐ１とともにデータ値Ｄがとり得る値の幅を変化させるとともに、センサ出力値の感度を調整するために用いられる。すなわち、Ｐ２をより大きな値にすることにより、センサ出力値がセンタ値から離れた領域におけるセンサ出力値の変化に対するデータ値の変化の度合いが大きくなる。
【００３５】
なお、センタ値Ｃは、例えば予め実行されるキャリブレーション処理等によって決定され、メインメモリ２０に保持されているものとする。また、パラメタＰ１及びＰ２は、予め定められた値であってもよいし、アプリケーション実行部６５によって与えられる値であってもよい。アプリケーション実行部６５によって与えられたパラメタを用いれば、センサ出力値変換部６２は、とり得る値の幅としてアプリケーション実行部６５が利用しやすい範囲の値を持ったデータ値を算出することができる。なお、Ｃ，Ｐ１及びＰ２は、３つの基準軸のそれぞれについて異なる値であってもよい。
【００３６】
判定部６３は、センサ出力値取得部６１が取得したセンサ出力値Ｖに基づいて、当該センサ出力値が所定の条件を満たすか否かを判定する。ここで判定部６３は、アプリケーション実行部６５によって与えられたパラメタに基づいて、センサ出力値が所定の条件を満たすか否かを判定してもよい。また、センサ出力値変換部６２によって得られたデータ値Ｄを用いて、センサ出力値Ｖが所定の条件を満たすか否かを判定してもよい。
【００３７】
具体的に判定部６３は、例えばセンサ出力値取得部６１がコントローラ４２の出力をスキャンしてセンサ出力値の取得を試みたタイミングで、そのつどセンサ出力値が所定の条件を満たすか否かの判定を行い、その判定結果を出力することとする。この判定に用いられる判定条件の複数の例については、後述する。
【００３８】
判定結果通知部６４は、アプリケーション実行部６５の要求に応じて、判定部６３による判定結果をアプリケーション実行部６５に通知する。また、判定結果通知部６４は、アプリケーション実行部６５の要求に応じて、センサ出力値変換部６２が算出したデータ値Ｄをアプリケーション実行部６５に通知してもよい。
【００３９】
具体例として、判定結果通知部６４は、関数呼び出し等によるアプリケーション実行部６５からの要求に対して、判定部６３が出力する各種の判定結果を示す値やセンサ出力値変換部６２が算出したデータ値のうち、要求されたデータをアプリケーション実行部６５に通知する。
【００４０】
アプリケーション実行部６５は、例えば光ディスク３６等から読み出されてメインメモリ２０に格納されたアプリケーションプログラムを実行することにより、ゲーム等の処理を実行する。ここで、アプリケーション実行部６５は、判定結果通知部６４から通知された判定結果を用いて処理を行うことにより、加速度センサ５１の出力に応じた処理を実現する。
【００４１】
次に、判定部６３がセンサ出力値Ｖ又はデータ値Ｄに基づいて判定を行う際の、判定条件の例について、説明する。
【００４２】
[第１及び第２の判定条件]
判定部６３は、判定を行うタイミングにおいてセンサ出力値Ｖが過去のセンサ出力値に対して変化したか否かを判定する。具体例として、前述したように加速度に変化があった場合のみコントローラ４２がセンサ出力値を出力している場合、判定部６３が判定を行うタイミングにおいてセンサ出力値取得部６１がセンサ出力値を取得していなければ、判定部６３は第１の判定条件を満たしていると判定する。逆に、センサ出力値取得部６１がセンサ出力値を取得していれば、第２の判定条件を満たしていると判定する。この第１又は第２の判定条件による判定結果を用いることで、アプリケーション実行部６５は、例えばユーザがコントローラ４２を動かしているか否かに応じた処理を実行できる。
【００４３】
[第３及び第４の判定条件]
判定部６３は、データ値Ｄと、判定部６３による過去の判定結果と、に基づいて、センサ出力値が所定の条件を満たすか否かを判定してもよい。具体的に、判定部６３は、第３の判定条件として、データ値Ｄが所定の閾値Ｔｈ０より大きく、かつ当該判定を行う時点より以前にこの第３の判定条件を満たしたのが所定時間Ｔｈ１以上過去の時点である場合に、第３の判定条件を満たすと判定する。また、第４の判定条件として、データ値Ｄが所定の閾値Ｔｈ２より小さく、かつ当該判定を行う時点より以前にこの第４の判定条件を満たしたのが所定時間Ｔｈ３以上過去の時点である場合に、第４の判定条件を満たすと判定する。
【００４４】
この第３及び第４の判定条件による判定結果を用いることで、アプリケーション実行部６５は、例えばユーザが所定の方向にコントローラ４２を振ったりする動作に応じた処理を実行できる。すなわち、アプリケーション実行部６５は、各基準軸に対するデータ値を用いた第３及び第４の判定条件による判定結果を用いて、当該基準軸の正方向又は負方向にコントローラ４２が振られたと推定し、これに応じた処理を実行する。なお、判定部６３がこれらの判定条件を満たすか否か判定する場合、前述したように過去所定時間以上にわたって当該判定条件を満たすとの判定結果が得られていないという条件を要求することにより、チャタリング等の影響による誤検出を低減することができる。
【００４５】
[第５の判定条件]
さらに判定部６３は、センサ出力値Ｖが過去のセンサ出力値に対して変化したか否かに応じて増減するカウンタ値に基づいて、所定の条件を満たすか否かを判定することとしてもよい。具体的に、ここでは判定部６３は、前述した第１及び第２の判定条件の判定結果を用いて、以下に説明する第５の判定条件を満たしているか否かを判定することとする。
【００４６】
この例においては、第１及び第２の判定条件の判定結果に応じて増減するカウンタ値Ｃｔが、メインメモリ２０内に保持される。判定部６３は、所定時間おきに前述した第１及び第２の判定条件に係る判定を行うごとに、第１の判定条件を満たすと判定した場合には、保持されているカウンタ値Ｃｔを１加算した値に更新し、第２の判定条件を満たすと判定した場合には、カウンタ値Ｃｔを１減算した値に更新する。ただし、カウンタ値Ｃｔには上限値Ｃmax及び下限値Ｃminが予め設定されており、この上限値Ｃmax又は下限値Ｃminを超えて増減することはないものとする。これにより、例えばコントローラ４２が机の上に置かれているなど、静止した状態にあれば、センサ出力値は変化しないため、カウンタ値Ｃｔは上限値Ｃmaxに近づいていくこととなる。
【００４７】
そして、判定部６３は、このメインメモリ２０内に保持されたカウンタ値Ｃｔと所定の閾値との大小関係に応じて、所定の条件を満たすか否かを判定する。ここでは具体的に、カウンタ値Ｃｔが閾値Ｔｈ４を超える場合には第５の判定条件を満たすと判定する。一方、カウンタ値Ｃｔが閾値Ｔｈ５未満の場合には第５の判定条件を満たさないと判定する。なお、カウンタ値がＴｈ５以上Ｔｈ４以下の場合には、前回判定時の第５の判定条件に対する判定結果が維持されることとする。
【００４８】
アプリケーション実行部６５は、この第５の判定条件による判定結果を所定時間おきに取得することで、当該判定結果に応じて動作モードを切り替えて処理を実行することができる。すなわち、判定部６３が第５の判定条件を満たすと判定するのは、センサ出力値がほとんど変化しない状態が一定時間以上続いている場合である。このような場合、コントローラ４２は机の上などに置かれてユーザに把持されていないと推定されるため、例えばアプリケーション実行部６５はユーザの操作がないものとして処理を実行する待機モードに移行する。逆に第５の判定条件を満たさないとの判定結果が出力されている場合、アプリケーション実行部６５は、ユーザがコントローラ４２を把持していると推定し、ユーザの操作に応じた処理を実行するユーザ操作モードに移行する。なお、アプリケーション実行部６５は、複数の基準軸のいずれかひとつに対する第５の判定条件による判定結果に応じて動作モードを切り替えてもよいし、全ての基準軸に対して第５の判定条件が満たされる場合に動作モードを待機モードに切り替えることとしてもよい。
【００４９】
ここで、判定部６３が第５の判定条件を満たすと判定している場合に、センサ出力値が変化したとしても、カウンタ値Ｃｔが減少するだけで、直ちに第５の判定条件を満たさなくなるわけではない。これにより、例えばコントローラ４２が静止しているにも関わらずノイズ等によりセンサ出力値が変化しても、直ちにアプリケーション実行部６５が動作モードをユーザ操作モードに移行させないようにすることができる。ここで、カウンタ値Ｃｔの上限値Ｃmaxや閾値Ｔｈ５の値を調整することで、長時間コントローラ４２が静止した状態においてユーザがコントローラ４２を把持した場合に、ユーザ操作モードに復帰するまでの時間を調整することができる。また、下限値Ｃminや閾値Ｔｈ４の値を調整することで、コントローラ４２を机の上に置いた場合などに、ユーザ操作モードから待機モードに移行するまでの時間を調整することができる。
【００５０】
なお、以上説明した複数の判定条件の例は、組み合わせて用いられることとしてもよい。また、これまで説明した判定条件の例において用いられているＴｈ０からＴｈ５までの閾値や、上限値Ｃmax、下限値Ｃminなどは、アプリケーション実行部６５によって与えられるものであってよい。さらに、これらの値は加速度センサ５１の各基準軸についてそれぞれ異なる値であってもよい。
【００５１】
また、以上の説明においては、各判定条件による判定は、加速度センサ５１の基準軸ごとに独立して行われるものとしたが、複数の基準軸のセンサ出力値Ｖやデータ値Ｄを組み合わせて用いることにより判定を行うこととしてもよい。例えば第５の判定条件において、カウンタ値Ｃｔは特定の基準軸とは関連づけられていない１つの値であることとし、全ての基準軸のセンサ出力値が過去のセンサ出力値に対して変化していない場合に増加し、それ以外の場合には減少することとしてもよい。この場合、第５の判定条件による判定結果は基準軸に関係なく１つだけとなり、アプリケーション実行部６５はこの１つの判定結果に応じて動作モードを切り替えるなどの処理を行う。
【００５２】
次に、本実施形態に係るエンタテインメントシステム１０が実行する処理の流れの一例について、図８のフロー図に基づいて説明する。ここで説明する処理は、エンタテインメントシステム１０が加速度センサ５１の出力する信号によって示されるセンサ出力値を取得し、取得したセンサ出力値に基づいて各種判定結果を出力するセンサ出力値判定処理の具体例であり、所定時間おきに実行される。アプリケーション実行部６５は、このセンサ出力値判定処理によって出力された判定結果を判定結果通知部６４から任意のタイミングで取得し、判定結果に応じた処理を実行する。
【００５３】
なお、以下の説明においては、基準軸ｉ（ｉ＝ｘ，ｙ，ｚ）に関する第１から第５までの各判定条件による判定結果は、Ｆｉ１からＦｉ５までの各変数の値として出力されることとする。ここで、判定条件を満たす場合には１が、満たさない場合には０が、それぞれの変数の値として出力される。
【００５４】
まず、センサ出力値取得部６１が、コントローラ４２から出力されるセンサ出力値Ｖを取得する（Ｓ１）。
【００５５】
続いて、センサ出力値変換部６２及び判定部６３が、各基準軸について、以下の処理を実行する。すなわち、まず判定部６３が、処理の対象となっている基準軸ｉについて、Ｓ１の処理によりセンサ出力値Ｖを取得したか否かを判定する（Ｓ２）。
【００５６】
Ｓ２の判定により、センサ出力値Ｖを取得したと判定した場合、判定部６３は、第１及び第２の判定条件の判定結果として、Ｆｉ１＝０，Ｆｉ２＝１を出力する（Ｓ３）。さらに、当該判定結果に応じて、メインメモリ２０に保持されているカウンタ値Ｃｔの値を１増加させる（Ｓ４）。続いて、センサ出力値変換部６２が、Ｓ１で取得されたセンサ出力値Ｖに基づいて、データ値Ｄを算出し、出力する（Ｓ５）。
【００５７】
一方、Ｓ２の判定においてセンサ出力値Ｖがコントローラ４２から出力されていないと判定した場合、判定部６３は、第１及び第２の判定条件の判定結果として、Ｆｉ１＝１，Ｆｉ２＝０を出力する（Ｓ６）。さらに、当該判定結果に応じて、メインメモリ２０に保持されているカウンタ値Ｃｔの値を１減少させる（Ｓ７）。
【００５８】
Ｓ２の判定結果に関わらず、判定部６３は、さらに第３及び第４の判定条件に係る判定を行い、その判定結果を示す変数Ｆｉ３及びＦｉ４の値を出力する（Ｓ８）。ここで、Ｓ２の判定によりセンサ出力値Ｖを取得したと判定している場合には、判定部６３は、Ｓ５で算出されたデータ値Ｄに基づいて第３及び第４の判定条件に係る判定を行う。逆にセンサ出力値Ｖを取得していない場合には、判定部６３は、過去のセンサ出力値判定処理を実行した際に、センサ出力値変換部６２が出力したデータ値Ｄを参照して、第３及び第４の判定条件に係る判定を行う。
【００５９】
さらに判定部６３は、Ｓ４又はＳ７の処理によって更新されたカウンタ値Ｃｔに基づいて、第５の判定条件に係る判定を行い、その判定結果を示す変数Ｆｉ５の値を出力する（Ｓ９）。
【００６０】
続いて判定部６３は、全ての基準軸について処理を実行したか否かを判定する（Ｓ１０）。３つの基準軸全てについて処理を終えていなければ、Ｓ２に戻って次の基準軸について処理が繰り返される。全ての基準軸について処理を終え、Ｆｉ１からＦｉ５までの値が出力されれば、センサ出力値判定処理は終了する。
【００６１】
ここで、以上説明した判定結果を用いてアプリケーション実行部６５が実現する処理の一例について、説明する。前述したように、アプリケーション実行部６５は、第５の判定条件による判定結果に基づいて、動作モードを切り替えることとしてもよい。さらに、動作モードがユーザ操作モードである場合に、第３又は第４の判定条件による判定結果に応じて、以下の処理を実行することとしてもよい。
【００６２】
例えば、アプリケーション実行部６５は、ユーザの操作対象となる仮想空間内における視点位置やオブジェクト位置を、第３及び第４の判定条件の判定結果に応じて移動させることとしてもよい。具体例として、Ｆｘ３及びＦｘ４の出力に応じて、操作対象となるオブジェクトを所定の視線方向に対して左右方向に移動させる。また、Ｆｙ３及びＦｙ４の出力に応じて、操作対象となるオブジェクトを当該視線方向に対して前後方向に移動させる。また、Ｆｚ３及びＦｚ４の出力に応じて、操作対象となるオブジェクトを上下方向に移動させる。こうすれば、ユーザがコントローラ４２を所定方向に傾けたり振ったりする動作に応じて、仮想空間内に配置されたオブジェクトの位置を移動させることができ、少ない演算量でユーザのコントローラ４２に対する動作による直感的なオブジェクトの操作を実現できる。
【００６３】
さらにこの場合において、仮想空間内におけるオブジェクトの移動量は予め定められた量であってもよいが、当該各基準軸についてセンサ出力値変換部６２が算出したデータ値Ｄに基づいて決定される量であってもよい。この場合、アプリケーション実行部６５は、予めセンサ出力値変換部６２がデータ値Ｄを算出する際に用いるパラメタＰ１及びＰ２として、センサ出力値の範囲及び仮想空間内におけるオブジェクトの望ましい移動量に応じて決まる値をセンサ出力値変換部６２に与えることとしてもよい。これにより、アプリケーション実行部６５は、判定結果通知部６４から通知されるデータ値Ｄに対してあらためてスケールを調整する演算をすることなく、データ値Ｄをそのまま移動量としてオブジェクトの位置座標に対して加減することができる。こうすれば、アプリケーション実行部６５は処理を実行する際の演算量を低減できる。
【００６４】
また、アプリケーション実行部６５は、第３及び第４の判定条件による判定結果を、組み合わせて用いてもよい。例えばアプリケーション実行部６５は、Ｆｚ４＝１かつＦｙ３＝１の場合に、コントローラ４２が所定方向に強く振られたと推定し、当該判定結果を選択のキャンセルを指示するユーザの動作であるとみなして、キャンセル処理を実行する。また、他の基準軸についての判定結果の組み合わせを用いて、それぞれ異なる方向にコントローラ４２を振る動作に対して、それぞれ異なる処理を割り当てることとしてもよい。
【００６５】
以上説明した本実施の形態によれば、アプリケーション実行部６５は、予め定められた判定条件により判定部６３がセンサ出力値に基づいて判定を行った結果を用いて、加速度センサ５１の出力に応じた処理を実行できる。このため、アプリケーションプログラムにおいては、個別にセンサ出力値に対する演算を行って例えばユーザのコントローラ４２に対する操作の内容を判定するような処理を実装する必要がなくなり、容易にユーザの操作に応じた処理を実現できる。
【００６６】
なお、本発明は上記実施形態に限定されるものではなく、種々の変更実施が可能である。例えば、加速度センサ５１から出力される信号は、３つの基準軸に対する加速度だけとは限らず、方向に依存しない加速度の絶対値を示すものであってもよい。また、判定条件としては、上述したもの以外に種々の条件が用いられることとしてもよい。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態に係るエンタテインメントシステムのハードウェア構成図である。
【図２】ＭＰＵの詳細構成図である。
【図３】コントローラの一例を示す図である。
【図４】加速度センサが出力する電圧信号の一例を示すグラフ図である。
【図５】コントローラの傾倒操作の一例を示す説明図である。
【図６】コントローラの傾倒操作の別の例を示す説明図である。
【図７】本発明の実施の形態に係るエンタテインメントシステムの機能例を示す機能ブロック図である。
【図８】本発明の実施の形態に係るエンタテインメントシステムによって実行される処理の一例を示すフロー図である。
【符号の説明】
【００６８】
１０  エンタテインメントシステム、１１  ＭＰＵ、１２  メインプロセッサ、１４ａ〜１４ｈ  サブプロセッサ、１６  バス、１８  メモリコントローラ、２０  メインメモリ、２２，４０，４４  インタフェース、２４  画像処理部、２６  モニタ、２８  入出力処理部、３０  音声処理部、３２  スピーカ、３４  光ディスク読み取り部、３６  光ディスク、３８  ハードディスク、４２  コントローラ、４６  カメラユニット、４８  ネットワークインタフェース、５１  加速度センサ、５２  ジャイロセンサ、６１  センサ出力値取得部、６２  センサ出力値変換部、６３  判定部、６４  判定結果通知部、６５  アプリケーション実行部。
【図１】
2008065473.tif 000004
【図２】
2008065473.tif 000005
【図３】
2008065473.tif 000006
【図４】
2008065473.tif 000007
【図５】
2008065473.tif 000008
【図６】
2008065473.tif 000009
【図７】
2008065473.tif 000010
【図８】
2008065473.tif 000011