説明

情報処理装置、その制御方法及びプログラム

【課題】加速度センサの出力に応じて、アプリケーションプログラムによって利用しやすい形式のデータを提供できる情報処理装置を提供する。
【解決手段】加速度センサ51と接続され、加速度センサ51の出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備え、加速度センサ51の出力する信号によって示されるセンサ出力値を取得し、取得したセンサ出力値に基づいて当該センサ出力値が所定の条件を満たすか否かを判定し、アプリケーション実行手段の要求に応じて当該判定による判定結果をアプリケーション実行手段に通知し、アプリケーション実行手段は通知された判定結果を用いて処理を行う情報処理装置である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、加速度センサの出力に応じた情報処理を行う情報処理装置、その制御方法及びプログラムに関する。
【背景技術】
【0002】
従来、加速度センサの出力に応じて様々な処理を実行するためのアプリケーションプログラムが開発されている。このようなアプリケーションプログラムは、加速度センサが出力する信号によって示されるセンサ出力値を取得し、この取得したセンサ出力値に基づいて各種の情報処理を実行している。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、アプリケーションプログラムによっては、加速度センサの出力するセンサ出力値そのものではなく、このセンサ出力値から得られる加速度の所定のパターンなどに応じた処理を実行したいという要請がある。このような場合において、センサ出力値は必ずしもアプリケーションプログラムによって利用しやすい形式にはなっていない。そのため、アプリケーションプログラムの開発者は、個別にセンサ出力値に応じた判定等の情報処理を行うためのプログラムを開発する必要があり、開発効率が悪い。
【0004】
本発明は上記実情に鑑みてなされたものであって、その目的の一つは、加速度センサの出力に応じて、アプリケーションプログラムによって利用しやすい形式のデータを提供できる情報処理装置、その制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するための本発明に係る情報処理装置は、加速度センサと接続され、当該加速度センサの出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備える情報処理装置であって、前記加速度センサの出力する信号によって示されるセンサ出力値を取得するセンサ出力値取得手段と、前記取得したセンサ出力値に基づいて、当該センサ出力値が所定の条件を満たすか否かを判定する判定手段と、前記アプリケーション実行手段の要求に応じて、前記判定による判定結果を前記アプリケーション実行手段に通知する判定結果通知手段と、を含み、前記アプリケーション実行手段は、前記通知された判定結果を用いて処理を行うことを特徴とする。
【0006】
また、本発明に係る情報処理装置の制御方法は、加速度センサと接続され、当該加速度センサの出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備える情報処理装置の制御方法であって、前記加速度センサの出力する信号によって示されるセンサ出力値を取得するステップと、前記取得したセンサ出力値に基づいて、当該センサ出力値が所定の条件を満たすか否かを判定するステップと、前記アプリケーション実行手段の要求に応じて、前記判定による判定結果を前記アプリケーション実行手段に通知するステップと、を含み、前記アプリケーション実行手段は、前記通知された判定結果を用いて処理を行うことを特徴とする。
【0007】
また、本発明に係るプログラムは、加速度センサと接続され、当該加速度センサの出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備えるコンピュータにより実行されるプログラムであって、前記加速度センサの出力する信号によって示されるセンサ出力値を取得するセンサ出力値取得手段、前記取得したセンサ出力値に基づいて、当該センサ出力値が所定の条件を満たすか否かを判定する判定手段、及び前記アプリケーション実行手段の要求に応じて、前記判定による判定結果を前記アプリケーション実行手段に通知する判定結果通知手段、として前記コンピュータを機能させ、前記アプリケーション実行手段は、前記通知された判定結果を用いて処理を行うプログラムである。このプログラムは、各種のコンピュータ読み取り可能な情報記憶媒体に格納されてよい。
【発明を実施するための最良の形態】
【0008】
以下、本発明の一実施形態について、図面を参照しながら説明する。
【0009】
図1は、本実施形態に係るエンタテインメントシステムのハードウェア構成を示す図である。同図に示すように、エンタテインメントシステム10は、MPU(Micro Processing Unit)11と、メインメモリ20と、画像処理部24と、モニタ26と、入出力処理部28と、音声処理部30と、スピーカ32と、光ディスク読み取り部34と、ハードディスク38と、インタフェース(I/F)40,44と、コントローラ42と、カメラユニット46と、ネットワークインタフェース48と、を含んで構成されるコンピュータシステムである。
【0010】
図2は、MPU11の構成を示す図である。同図に示すように、MPU11は、メインプロセッサ12と、サブプロセッサ14a,14b,14c,14d,14e,14f,14g,14hと、バス16と、メモリコントローラ18と、インタフェース(I/F)22と、を含んで構成される。
【0011】
メインプロセッサ12は、図示しないROM(Read Only Memory)に記憶されるオペレーティングシステム、例えばDVD(Digital Versatile Disk)−ROM等の光ディスク36から読み出されるプログラム及びデータや、通信ネットワークを介して供給されるプログラム及びデータ等に基づいて、各種情報処理を行ったり、サブプロセッサ14a乃至14hに対する制御を行ったりする。
【0012】
サブプロセッサ14a乃至14hは、メインプロセッサ12からの指示に従って、各種情報処理を行ったり、エンタテインメントシステム10の各部を、例えばDVD−ROM等の光ディスク36から読み出されるプログラム及びデータや、通信ネットワークを介して供給されるプログラム及びデータ等に基づいて制御したりする。
【0013】
バス16は、アドレス及びデータをエンタテインメントシステム10の各部でやり取りするためのものである。メインプロセッサ12、サブプロセッサ14a乃至14h、メモリコントローラ18、インタフェース22は、バス16を介して相互にデータ授受可能に接続される。
【0014】
メモリコントローラ18は、メインプロセッサ12及びサブプロセッサ14a乃至14hからの指示に従って、メインメモリ20へのアクセスを行う。メインメモリ20には、光ディスク36やハードディスク38から読み出されたプログラム及びデータや、通信ネットワークを介して供給されたプログラム及びデータが必要に応じて書き込まれる。メインメモリ20はメインプロセッサ12やサブプロセッサ14a乃至14hの作業用としても用いられる。
【0015】
インタフェース22には画像処理部24及び入出力処理部28が接続される。メインプロセッサ12及びサブプロセッサ14a乃至14hと、画像処理部24又は入出力処理部28と、の間のデータ授受はインタフェース22を介して行われる。
【0016】
画像処理部24は、GPU(Graphical Processing Unit)とフレームバッファとを含んで構成される。GPUは、メインプロセッサ12やサブプロセッサ14a乃至14hから供給される画像データに基づいてフレームバッファに各種画面を描画する。フレームバッファに形成された画面は、所定のタイミングでビデオ信号に変換されてモニタ26に出力される。なお、モニタ26には例えば家庭用テレビ受像機が用いられる。
【0017】
入出力処理部28には、音声処理部30、光ディスク読み取り部34、ハードディスク38、インタフェース40及び44、並びにネットワークインタフェース48が接続される。入出力処理部28は、メインプロセッサ12及びサブプロセッサ14a乃至14hと、音声処理部30、光ディスク読み取り部34、ハードディスク38、インタフェース40及び44、ネットワークインタフェース48と、の間のデータ授受を制御する。
【0018】
音声処理部30は、SPU(Sound Processing Unit)とサウンドバッファとを含んで構成される。サウンドバッファには、光ディスク36やハードディスク38から読み出されたゲーム音楽、ゲーム効果音やメッセージなどの各種音声データが記憶される。SPUは、これらの各種音声データを再生してスピーカ32から出力させる。なお、スピーカ32には例えば家庭用テレビ受像機の内蔵スピーカが用いられる。
【0019】
光ディスク読み取り部34は、メインプロセッサ12及びサブプロセッサ14a乃至14hからの指示に従って、光ディスク36に記憶されたプログラムやデータを読み取る。なお、エンタテインメントシステム10は、光ディスク36以外の他のコンピュータ読み取り可能な情報記憶媒体に記憶されたプログラムやデータを読み取り可能に構成されてもよい。
【0020】
光ディスク36は例えばDVD−ROM等の一般的な光ディスク(コンピュータ読み取り可能な情報記憶媒体)である。また、ハードディスク38は一般的なハードディスク装置である。光ディスク36やハードディスク38には各種プログラムやデータがコンピュータ読み取り可能に記憶される。
【0021】
インタフェース(I/F)40,44は、コントローラ42やカメラユニット46等の各種周辺機器を接続するためのインタフェースである。このようなインタフェースとしては、例えばUSB(Universal Serial Bus)インタフェースが用いられる。また、例えばBluetooth(登録商標)インタフェースなどの無線通信インタフェースが用いられてもよい。
【0022】
コントローラ42は汎用操作入力手段であり、ユーザが各種操作(例えばゲーム操作)を入力するために用いられる。入出力処理部28は、所定時間(例えば1/60秒)ごとにコントローラ42の各部の状態をスキャンし、その結果を表す操作信号をメインプロセッサ12やサブプロセッサ14a乃至14hに供給する。メインプロセッサ12やサブプロセッサ14a乃至14hは、ユーザによって行われた操作の内容をその操作信号に基づいて判断する。なお、エンタテインメントシステム10は複数のコントローラ42を接続可能に構成されており、各コントローラ42から入力される操作信号に基づいて、メインプロセッサ12やサブプロセッサ14a乃至14hが各種処理を実行するようになっている。
【0023】
カメラユニット46は、例えば公知のデジタルカメラを含んで構成され、白黒、グレイスケール又はカラーの撮影画像を所定時間(例えば1/60秒)ごとに入力する。本実施の形態におけるカメラユニット46は、撮影画像をJPEG(Joint Photographic Experts Group)形式の画像データとして入力するようになっている。また、カメラユニット46は、例えばレンズをプレイヤに向けた状態でモニタ26の上に設置され、ケーブルを介してインタフェース44に接続される。ネットワークインタフェース48は入出力処理部28と通信ネットワークとに接続されており、エンタテインメントシステム10が通信ネットワークを介して他のエンタテインメントシステム10とデータ通信するのを中継するようになっている。
【0024】
また、本実施形態においては、コントローラ42は、当該コントローラ42の姿勢に関する情報を出力する手段として、その内部に、加速度センサ51及びジャイロセンサ52を備えていることとする。具体的に、コントローラ42は、例えば図3に示すように、その表面に、方向キーやアナログデバイス、操作ボタン、その他のキー(図中「A」ないし「D」と描く)を備え、また内部に、加速度センサ51及びジャイロセンサ52を備える。
【0025】
ここで加速度センサ51は、梁に支持された錘を内蔵し、当該錘にかかる加速度によって、錘が変位して、それにより梁に生じるたわみ量を検出することで錘にかかる加速度を検出する。加速度センサ51は、互いに略直交する3軸方向の加速度をそれぞれ検出する、3軸加速度センサであってもよい。具体例として、図3に示したように、加速度センサ51は、コントローラ42の筐体内部に固定されており、互いに直交するx軸、y軸、及びz軸の3つの基準軸が設定されている。ここで、例えばx軸はコントローラ42の長手方向(左右方向)、y軸はコントローラ42の奥行方向(前後方向)、z軸はコントローラ42の厚み方向(図において紙面に対して鉛直手前側の方向)にそれぞれ対応させてもよい。そして、加速度センサ51は、3つの基準軸のそれぞれに対する加速度を検知し、検知した加速度に応じた3つの電圧値を出力する。
【0026】
図4は、加速度センサ51が検知するいずれかの軸に対する加速度と、検知した加速度に応じて出力する電圧値と、の対応関係を模式的に示すグラフである。図4に示すように、加速度センサ51は加速度に略比例する電圧信号を出力し、加速度を検知しない状態では基準電圧Voを出力する。出力される電圧値の基準電圧Voに対する高低により、各軸について、その正負いずれの方向に加速度が生じているかを検知できる。なお、図において1Gは、重力加速度に相当する加速度を示している。コントローラ42は、この電圧信号をA/D変換したディジタル値を、加速度を示す値として出力する。
【0027】
この加速度センサ51の出力のうち、重力によって生じるx軸の加速度は、コントローラ42のy軸を中心とした傾きによって変化する。例えばコントローラ42が図5に示すように水平面に対して長手方向に、θy1度(θy1<0)傾いた姿勢となっている間、x軸方向の重力加速度aはa=αsinθy1となる。また、図6に示すようにコントローラ42が水平面に対してθy2度(θy2>0)傾いている間、x軸方向の重力加速度aはa=αsinθy2となる。ここでαは、負の係数である。このため、電圧値Vによって表される加速度値aを用いて、θ=arcsin(a/α)を算出することにより、コントローラ42の水平面に対する角度を表す情報が得られる。同様に、y軸の重力加速度から、コントローラ42のx軸を中心とした回転の傾きを表す情報が得られる。
【0028】
ジャイロセンサ52は、コントローラ42のz軸を中心とした回転の角速度を検知し、当該角速度の情報を出力する。エンタテインメントシステム10は、このジャイロセンサ52の出力を一定時間ごとにサンプリングし、積分演算を行うことで、コントローラ42のz軸に対する回転の変位量を取得する。
【0029】
以下では、以上のハードウェア構成を有するエンタテインメントシステム10が、本発明に係る情報処理装置として動作する場合に実現する機能について、説明する。この場合のエンタテインメントシステム10は、機能的に、図7に示すように、センサ出力値取得部61と、センサ出力値変換部62と、判定部63と、判定結果通知部64と、アプリケーション実行部65と、を含んで構成されている。これらの機能は、MPU11がメインメモリ20に格納されるプログラムに従って動作することにより、実現できる。このプログラムは、例えばCD−ROMやDVD−ROM等のコンピュータで読み取り可能な各種情報記録媒体に格納されて提供されるものであってもよい。また、情報処理装置をセンサ出力値取得部61、センサ出力値変換部62、判定部63、及び判定結果通知部64として機能させるためのプログラムは、例えばライブラリプログラムとして提供されるものであってもよい。
【0030】
センサ出力値取得部61は、加速度センサ51の出力する信号によって示されるセンサ出力値を取得する。ここで加速度センサ51は、前述したように各基準軸に対する加速度に応じた電圧値を信号として出力する。センサ出力値取得部61は、この信号によって示される各基準軸のセンサ出力値を取得する。例えばセンサ出力値は、電圧信号をA/D変換して得られる0から1023までの範囲の整数値である。
【0031】
ここでセンサ出力値取得部61は、所定時間ごと(例えば垂直同期信号が入力されたタイミングごと)にコントローラ42の出力をスキャンすることにより、各基準軸に対するセンサ出力値を取得することとする。以降の説明においては、センサ出力値取得部61が取得するセンサ出力値をVとする。
【0032】
なお、コントローラ42は、各基準軸について、加速度センサ51の出力する電圧信号をA/D変換して得られるディジタル値に変化があった場合のみ、この変化したディジタル値をセンサ出力値として出力することとしてもよい。この場合、センサ出力値取得部61は、所定時間おきにコントローラ42の出力をスキャンした結果、各基準軸についてセンサ出力値が出力されている場合のみ、出力されたセンサ出力値を取得することとする。逆にある時点においてある基準軸についてセンサ出力値がコントローラ42から出力されていない場合、当該時点における当該基準軸のセンサ出力値は、過去最も近い時点においてセンサ出力値取得部61が取得したセンサ出力値と同じ値であるとみなすことができる。
【0033】
センサ出力値変換部62は、センサ出力値取得部61が取得したセンサ出力値Vを、所定の関数に基づいてデータ値Dに変換する。具体例として、センサ出力値変換部62は、データ値Dを以下の式によって算出する。
【数1】

【0034】
ここで、Cはセンタ値であり、基準電圧Voに対応するセンサ出力値を示している。また、Sign(V−C)はV−Cの正負に応じて決まる値であり、V≧Cであれば+1、V<Cであれば−1となる。さらに、P1はスケールパラメタであり、この値によってデータ値Dがとり得る値の幅が変化する。P2は感度調整用のパラメタであり、ここでは正の整数値であることとする。P2は、P1とともにデータ値Dがとり得る値の幅を変化させるとともに、センサ出力値の感度を調整するために用いられる。すなわち、P2をより大きな値にすることにより、センサ出力値がセンタ値から離れた領域におけるセンサ出力値の変化に対するデータ値の変化の度合いが大きくなる。
【0035】
なお、センタ値Cは、例えば予め実行されるキャリブレーション処理等によって決定され、メインメモリ20に保持されているものとする。また、パラメタP1及びP2は、予め定められた値であってもよいし、アプリケーション実行部65によって与えられる値であってもよい。アプリケーション実行部65によって与えられたパラメタを用いれば、センサ出力値変換部62は、とり得る値の幅としてアプリケーション実行部65が利用しやすい範囲の値を持ったデータ値を算出することができる。なお、C,P1及びP2は、3つの基準軸のそれぞれについて異なる値であってもよい。
【0036】
判定部63は、センサ出力値取得部61が取得したセンサ出力値Vに基づいて、当該センサ出力値が所定の条件を満たすか否かを判定する。ここで判定部63は、アプリケーション実行部65によって与えられたパラメタに基づいて、センサ出力値が所定の条件を満たすか否かを判定してもよい。また、センサ出力値変換部62によって得られたデータ値Dを用いて、センサ出力値Vが所定の条件を満たすか否かを判定してもよい。
【0037】
具体的に判定部63は、例えばセンサ出力値取得部61がコントローラ42の出力をスキャンしてセンサ出力値の取得を試みたタイミングで、そのつどセンサ出力値が所定の条件を満たすか否かの判定を行い、その判定結果を出力することとする。この判定に用いられる判定条件の複数の例については、後述する。
【0038】
判定結果通知部64は、アプリケーション実行部65の要求に応じて、判定部63による判定結果をアプリケーション実行部65に通知する。また、判定結果通知部64は、アプリケーション実行部65の要求に応じて、センサ出力値変換部62が算出したデータ値Dをアプリケーション実行部65に通知してもよい。
【0039】
具体例として、判定結果通知部64は、関数呼び出し等によるアプリケーション実行部65からの要求に対して、判定部63が出力する各種の判定結果を示す値やセンサ出力値変換部62が算出したデータ値のうち、要求されたデータをアプリケーション実行部65に通知する。
【0040】
アプリケーション実行部65は、例えば光ディスク36等から読み出されてメインメモリ20に格納されたアプリケーションプログラムを実行することにより、ゲーム等の処理を実行する。ここで、アプリケーション実行部65は、判定結果通知部64から通知された判定結果を用いて処理を行うことにより、加速度センサ51の出力に応じた処理を実現する。
【0041】
次に、判定部63がセンサ出力値V又はデータ値Dに基づいて判定を行う際の、判定条件の例について、説明する。
【0042】
[第1及び第2の判定条件]
判定部63は、判定を行うタイミングにおいてセンサ出力値Vが過去のセンサ出力値に対して変化したか否かを判定する。具体例として、前述したように加速度に変化があった場合のみコントローラ42がセンサ出力値を出力している場合、判定部63が判定を行うタイミングにおいてセンサ出力値取得部61がセンサ出力値を取得していなければ、判定部63は第1の判定条件を満たしていると判定する。逆に、センサ出力値取得部61がセンサ出力値を取得していれば、第2の判定条件を満たしていると判定する。この第1又は第2の判定条件による判定結果を用いることで、アプリケーション実行部65は、例えばユーザがコントローラ42を動かしているか否かに応じた処理を実行できる。
【0043】
[第3及び第4の判定条件]
判定部63は、データ値Dと、判定部63による過去の判定結果と、に基づいて、センサ出力値が所定の条件を満たすか否かを判定してもよい。具体的に、判定部63は、第3の判定条件として、データ値Dが所定の閾値Th0より大きく、かつ当該判定を行う時点より以前にこの第3の判定条件を満たしたのが所定時間Th1以上過去の時点である場合に、第3の判定条件を満たすと判定する。また、第4の判定条件として、データ値Dが所定の閾値Th2より小さく、かつ当該判定を行う時点より以前にこの第4の判定条件を満たしたのが所定時間Th3以上過去の時点である場合に、第4の判定条件を満たすと判定する。
【0044】
この第3及び第4の判定条件による判定結果を用いることで、アプリケーション実行部65は、例えばユーザが所定の方向にコントローラ42を振ったりする動作に応じた処理を実行できる。すなわち、アプリケーション実行部65は、各基準軸に対するデータ値を用いた第3及び第4の判定条件による判定結果を用いて、当該基準軸の正方向又は負方向にコントローラ42が振られたと推定し、これに応じた処理を実行する。なお、判定部63がこれらの判定条件を満たすか否か判定する場合、前述したように過去所定時間以上にわたって当該判定条件を満たすとの判定結果が得られていないという条件を要求することにより、チャタリング等の影響による誤検出を低減することができる。
【0045】
[第5の判定条件]
さらに判定部63は、センサ出力値Vが過去のセンサ出力値に対して変化したか否かに応じて増減するカウンタ値に基づいて、所定の条件を満たすか否かを判定することとしてもよい。具体的に、ここでは判定部63は、前述した第1及び第2の判定条件の判定結果を用いて、以下に説明する第5の判定条件を満たしているか否かを判定することとする。
【0046】
この例においては、第1及び第2の判定条件の判定結果に応じて増減するカウンタ値Ctが、メインメモリ20内に保持される。判定部63は、所定時間おきに前述した第1及び第2の判定条件に係る判定を行うごとに、第1の判定条件を満たすと判定した場合には、保持されているカウンタ値Ctを1加算した値に更新し、第2の判定条件を満たすと判定した場合には、カウンタ値Ctを1減算した値に更新する。ただし、カウンタ値Ctには上限値Cmax及び下限値Cminが予め設定されており、この上限値Cmax又は下限値Cminを超えて増減することはないものとする。これにより、例えばコントローラ42が机の上に置かれているなど、静止した状態にあれば、センサ出力値は変化しないため、カウンタ値Ctは上限値Cmaxに近づいていくこととなる。
【0047】
そして、判定部63は、このメインメモリ20内に保持されたカウンタ値Ctと所定の閾値との大小関係に応じて、所定の条件を満たすか否かを判定する。ここでは具体的に、カウンタ値Ctが閾値Th4を超える場合には第5の判定条件を満たすと判定する。一方、カウンタ値Ctが閾値Th5未満の場合には第5の判定条件を満たさないと判定する。なお、カウンタ値がTh5以上Th4以下の場合には、前回判定時の第5の判定条件に対する判定結果が維持されることとする。
【0048】
アプリケーション実行部65は、この第5の判定条件による判定結果を所定時間おきに取得することで、当該判定結果に応じて動作モードを切り替えて処理を実行することができる。すなわち、判定部63が第5の判定条件を満たすと判定するのは、センサ出力値がほとんど変化しない状態が一定時間以上続いている場合である。このような場合、コントローラ42は机の上などに置かれてユーザに把持されていないと推定されるため、例えばアプリケーション実行部65はユーザの操作がないものとして処理を実行する待機モードに移行する。逆に第5の判定条件を満たさないとの判定結果が出力されている場合、アプリケーション実行部65は、ユーザがコントローラ42を把持していると推定し、ユーザの操作に応じた処理を実行するユーザ操作モードに移行する。なお、アプリケーション実行部65は、複数の基準軸のいずれかひとつに対する第5の判定条件による判定結果に応じて動作モードを切り替えてもよいし、全ての基準軸に対して第5の判定条件が満たされる場合に動作モードを待機モードに切り替えることとしてもよい。
【0049】
ここで、判定部63が第5の判定条件を満たすと判定している場合に、センサ出力値が変化したとしても、カウンタ値Ctが減少するだけで、直ちに第5の判定条件を満たさなくなるわけではない。これにより、例えばコントローラ42が静止しているにも関わらずノイズ等によりセンサ出力値が変化しても、直ちにアプリケーション実行部65が動作モードをユーザ操作モードに移行させないようにすることができる。ここで、カウンタ値Ctの上限値Cmaxや閾値Th5の値を調整することで、長時間コントローラ42が静止した状態においてユーザがコントローラ42を把持した場合に、ユーザ操作モードに復帰するまでの時間を調整することができる。また、下限値Cminや閾値Th4の値を調整することで、コントローラ42を机の上に置いた場合などに、ユーザ操作モードから待機モードに移行するまでの時間を調整することができる。
【0050】
なお、以上説明した複数の判定条件の例は、組み合わせて用いられることとしてもよい。また、これまで説明した判定条件の例において用いられているTh0からTh5までの閾値や、上限値Cmax、下限値Cminなどは、アプリケーション実行部65によって与えられるものであってよい。さらに、これらの値は加速度センサ51の各基準軸についてそれぞれ異なる値であってもよい。
【0051】
また、以上の説明においては、各判定条件による判定は、加速度センサ51の基準軸ごとに独立して行われるものとしたが、複数の基準軸のセンサ出力値Vやデータ値Dを組み合わせて用いることにより判定を行うこととしてもよい。例えば第5の判定条件において、カウンタ値Ctは特定の基準軸とは関連づけられていない1つの値であることとし、全ての基準軸のセンサ出力値が過去のセンサ出力値に対して変化していない場合に増加し、それ以外の場合には減少することとしてもよい。この場合、第5の判定条件による判定結果は基準軸に関係なく1つだけとなり、アプリケーション実行部65はこの1つの判定結果に応じて動作モードを切り替えるなどの処理を行う。
【0052】
次に、本実施形態に係るエンタテインメントシステム10が実行する処理の流れの一例について、図8のフロー図に基づいて説明する。ここで説明する処理は、エンタテインメントシステム10が加速度センサ51の出力する信号によって示されるセンサ出力値を取得し、取得したセンサ出力値に基づいて各種判定結果を出力するセンサ出力値判定処理の具体例であり、所定時間おきに実行される。アプリケーション実行部65は、このセンサ出力値判定処理によって出力された判定結果を判定結果通知部64から任意のタイミングで取得し、判定結果に応じた処理を実行する。
【0053】
なお、以下の説明においては、基準軸i(i=x,y,z)に関する第1から第5までの各判定条件による判定結果は、Fi1からFi5までの各変数の値として出力されることとする。ここで、判定条件を満たす場合には1が、満たさない場合には0が、それぞれの変数の値として出力される。
【0054】
まず、センサ出力値取得部61が、コントローラ42から出力されるセンサ出力値Vを取得する(S1)。
【0055】
続いて、センサ出力値変換部62及び判定部63が、各基準軸について、以下の処理を実行する。すなわち、まず判定部63が、処理の対象となっている基準軸iについて、S1の処理によりセンサ出力値Vを取得したか否かを判定する(S2)。
【0056】
S2の判定により、センサ出力値Vを取得したと判定した場合、判定部63は、第1及び第2の判定条件の判定結果として、Fi1=0,Fi2=1を出力する(S3)。さらに、当該判定結果に応じて、メインメモリ20に保持されているカウンタ値Ctの値を1増加させる(S4)。続いて、センサ出力値変換部62が、S1で取得されたセンサ出力値Vに基づいて、データ値Dを算出し、出力する(S5)。
【0057】
一方、S2の判定においてセンサ出力値Vがコントローラ42から出力されていないと判定した場合、判定部63は、第1及び第2の判定条件の判定結果として、Fi1=1,Fi2=0を出力する(S6)。さらに、当該判定結果に応じて、メインメモリ20に保持されているカウンタ値Ctの値を1減少させる(S7)。
【0058】
S2の判定結果に関わらず、判定部63は、さらに第3及び第4の判定条件に係る判定を行い、その判定結果を示す変数Fi3及びFi4の値を出力する(S8)。ここで、S2の判定によりセンサ出力値Vを取得したと判定している場合には、判定部63は、S5で算出されたデータ値Dに基づいて第3及び第4の判定条件に係る判定を行う。逆にセンサ出力値Vを取得していない場合には、判定部63は、過去のセンサ出力値判定処理を実行した際に、センサ出力値変換部62が出力したデータ値Dを参照して、第3及び第4の判定条件に係る判定を行う。
【0059】
さらに判定部63は、S4又はS7の処理によって更新されたカウンタ値Ctに基づいて、第5の判定条件に係る判定を行い、その判定結果を示す変数Fi5の値を出力する(S9)。
【0060】
続いて判定部63は、全ての基準軸について処理を実行したか否かを判定する(S10)。3つの基準軸全てについて処理を終えていなければ、S2に戻って次の基準軸について処理が繰り返される。全ての基準軸について処理を終え、Fi1からFi5までの値が出力されれば、センサ出力値判定処理は終了する。
【0061】
ここで、以上説明した判定結果を用いてアプリケーション実行部65が実現する処理の一例について、説明する。前述したように、アプリケーション実行部65は、第5の判定条件による判定結果に基づいて、動作モードを切り替えることとしてもよい。さらに、動作モードがユーザ操作モードである場合に、第3又は第4の判定条件による判定結果に応じて、以下の処理を実行することとしてもよい。
【0062】
例えば、アプリケーション実行部65は、ユーザの操作対象となる仮想空間内における視点位置やオブジェクト位置を、第3及び第4の判定条件の判定結果に応じて移動させることとしてもよい。具体例として、Fx3及びFx4の出力に応じて、操作対象となるオブジェクトを所定の視線方向に対して左右方向に移動させる。また、Fy3及びFy4の出力に応じて、操作対象となるオブジェクトを当該視線方向に対して前後方向に移動させる。また、Fz3及びFz4の出力に応じて、操作対象となるオブジェクトを上下方向に移動させる。こうすれば、ユーザがコントローラ42を所定方向に傾けたり振ったりする動作に応じて、仮想空間内に配置されたオブジェクトの位置を移動させることができ、少ない演算量でユーザのコントローラ42に対する動作による直感的なオブジェクトの操作を実現できる。
【0063】
さらにこの場合において、仮想空間内におけるオブジェクトの移動量は予め定められた量であってもよいが、当該各基準軸についてセンサ出力値変換部62が算出したデータ値Dに基づいて決定される量であってもよい。この場合、アプリケーション実行部65は、予めセンサ出力値変換部62がデータ値Dを算出する際に用いるパラメタP1及びP2として、センサ出力値の範囲及び仮想空間内におけるオブジェクトの望ましい移動量に応じて決まる値をセンサ出力値変換部62に与えることとしてもよい。これにより、アプリケーション実行部65は、判定結果通知部64から通知されるデータ値Dに対してあらためてスケールを調整する演算をすることなく、データ値Dをそのまま移動量としてオブジェクトの位置座標に対して加減することができる。こうすれば、アプリケーション実行部65は処理を実行する際の演算量を低減できる。
【0064】
また、アプリケーション実行部65は、第3及び第4の判定条件による判定結果を、組み合わせて用いてもよい。例えばアプリケーション実行部65は、Fz4=1かつFy3=1の場合に、コントローラ42が所定方向に強く振られたと推定し、当該判定結果を選択のキャンセルを指示するユーザの動作であるとみなして、キャンセル処理を実行する。また、他の基準軸についての判定結果の組み合わせを用いて、それぞれ異なる方向にコントローラ42を振る動作に対して、それぞれ異なる処理を割り当てることとしてもよい。
【0065】
以上説明した本実施の形態によれば、アプリケーション実行部65は、予め定められた判定条件により判定部63がセンサ出力値に基づいて判定を行った結果を用いて、加速度センサ51の出力に応じた処理を実行できる。このため、アプリケーションプログラムにおいては、個別にセンサ出力値に対する演算を行って例えばユーザのコントローラ42に対する操作の内容を判定するような処理を実装する必要がなくなり、容易にユーザの操作に応じた処理を実現できる。
【0066】
なお、本発明は上記実施形態に限定されるものではなく、種々の変更実施が可能である。例えば、加速度センサ51から出力される信号は、3つの基準軸に対する加速度だけとは限らず、方向に依存しない加速度の絶対値を示すものであってもよい。また、判定条件としては、上述したもの以外に種々の条件が用いられることとしてもよい。
【図面の簡単な説明】
【0067】
【図1】本発明の実施の形態に係るエンタテインメントシステムのハードウェア構成図である。
【図2】MPUの詳細構成図である。
【図3】コントローラの一例を示す図である。
【図4】加速度センサが出力する電圧信号の一例を示すグラフ図である。
【図5】コントローラの傾倒操作の一例を示す説明図である。
【図6】コントローラの傾倒操作の別の例を示す説明図である。
【図7】本発明の実施の形態に係るエンタテインメントシステムの機能例を示す機能ブロック図である。
【図8】本発明の実施の形態に係るエンタテインメントシステムによって実行される処理の一例を示すフロー図である。
【符号の説明】
【0068】
10 エンタテインメントシステム、11 MPU、12 メインプロセッサ、14a〜14h サブプロセッサ、16 バス、18 メモリコントローラ、20 メインメモリ、22,40,44 インタフェース、24 画像処理部、26 モニタ、28 入出力処理部、30 音声処理部、32 スピーカ、34 光ディスク読み取り部、36 光ディスク、38 ハードディスク、42 コントローラ、46 カメラユニット、48 ネットワークインタフェース、51 加速度センサ、52 ジャイロセンサ、61 センサ出力値取得部、62 センサ出力値変換部、63 判定部、64 判定結果通知部、65 アプリケーション実行部。

【特許請求の範囲】
【請求項1】
加速度センサと接続され、当該加速度センサの出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備える情報処理装置であって、
前記加速度センサの出力する信号によって示されるセンサ出力値を取得するセンサ出力値取得手段と、
前記取得したセンサ出力値に基づいて、当該センサ出力値が所定の条件を満たすか否かを判定する判定手段と、
前記アプリケーション実行手段の要求に応じて、前記判定による判定結果を前記アプリケーション実行手段に通知する判定結果通知手段と、
を含み、
前記アプリケーション実行手段は、前記通知された判定結果を用いて処理を行うことを特徴とする情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記判定手段は、前記アプリケーション実行手段によって与えられたパラメタに基づいて、前記センサ出力値が所定の条件を満たすか否かを判定する
ことを特徴とする情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記アプリケーション実行手段によって与えられたパラメタを用いた所定の関数に基づいて、前記取得したセンサ出力値をデータ値に変換するセンサ出力値変換手段をさらに含み、
前記判定手段は、前記変換されたデータ値を用いて、前記センサ出力値が所定の条件を満たすか否かを判定する
ことを特徴とする情報処理装置。
【請求項4】
請求項3に記載の情報処理装置であって、
前記判定手段は、前記変換されたデータ値と、当該判定手段による過去の判定結果と、に基づいて、前記センサ出力値が所定の条件を満たすか否かを判定する
ことを特徴とする情報処理装置。
【請求項5】
請求項1に記載の情報処理装置であって、
前記判定手段は、前記センサ出力値が過去のセンサ出力値に対して変化したか否かを判定することを特徴とする情報処理装置。
【請求項6】
請求項1に記載の情報処理装置であって、
前記センサ出力値が過去のセンサ出力値に対して変化したか否かに応じて増減するカウンタ値を保持するカウンタ値保持手段をさらに含み、
前記判定手段は、前記カウンタ値に基づいて、所定の条件を満たすか否かを判定する
ことを特徴とする情報処理装置。
【請求項7】
請求項6に記載の情報処理装置であって、
前記判定手段は、前記カウンタ値と所定の閾値との大小関係に応じて、所定の条件を満たすか否かを判定し、
前記アプリケーション実行手段は、前記通知された判定結果に応じて、動作モードを切り替えて処理を実行する
ことを特徴とする情報処理装置。
【請求項8】
加速度センサと接続され、当該加速度センサの出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備える情報処理装置の制御方法であって、
前記加速度センサの出力する信号によって示されるセンサ出力値を取得するステップと、
前記取得したセンサ出力値に基づいて、当該センサ出力値が所定の条件を満たすか否かを判定するステップと、
前記アプリケーション実行手段の要求に応じて、前記判定による判定結果を前記アプリケーション実行手段に通知するステップと、
を含み、
前記アプリケーション実行手段は、前記通知された判定結果を用いて処理を行うことを特徴とする情報処理装置の制御方法。
【請求項9】
加速度センサと接続され、当該加速度センサの出力に応じた処理を行うためのアプリケーションプログラムを実行するアプリケーション実行手段を備えるコンピュータにより実行されるプログラムであって、
前記加速度センサの出力する信号によって示されるセンサ出力値を取得するセンサ出力値取得手段、
前記取得したセンサ出力値に基づいて、当該センサ出力値が所定の条件を満たすか否かを判定する判定手段、及び
前記アプリケーション実行手段の要求に応じて、前記判定による判定結果を前記アプリケーション実行手段に通知する判定結果通知手段、
として前記コンピュータを機能させ、
前記アプリケーション実行手段は、前記通知された判定結果を用いて処理を行う
プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2008−65473(P2008−65473A)
【公開日】平成20年3月21日(2008.3.21)
【国際特許分類】
【出願番号】特願2006−240707(P2006−240707)
【出願日】平成18年9月5日(2006.9.5)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】