(57)【要約】【課題】傾きを利用した操作時の誤操作を抑制することを課題とする。【解決手段】携帯端末は、傾きセンサーなどを有する。携帯端末は、傾きセンサーなどを用いて、携帯端末の傾きを検出する。そして、携帯端末は、検出された携帯端末の傾きによって、携帯端末の動きが所定量以下と判定された時間帯における携帯端末の姿勢を、携帯端末の基準姿勢に決定する。携帯端末は、決定された基準姿勢からの傾きの変位にしたがって、携帯端末の表示部に表示されるオブジェクトの処理として利用者にフィードバックする。【選択図】図３
2018041327.tif 000002
【特許請求の範囲】
【請求項１】
電子機器において、
前記電子機器の傾きを検出する検出部と、
検出された前記電子機器の傾きによって、前記電子機器の動きが所定量以下と判定された時間帯における前記電子機器の姿勢を、前記電子機器の基準姿勢に決定する決定部と、
決定された前記基準姿勢からの前記傾きの変位にしたがって、前記電子機器の表示部に表示されるオブジェクトの処理として利用者にフィードバックする対話部と
を有することを特徴とする電子機器。
【請求項２】
前記決定部は、所定時間で検出された傾きの最大値と最小値の差が閾値の範囲内である場合、前記所定時間内で検出された複数の傾きの平均値を、前記電子機器の基準姿勢に決定することを特徴とする請求項１に記載の電子機器。
【請求項３】
前記検出部は、前記電子機器の画面が当該電子機器を保持するユーザと正対する状態において、前記電子機器を上下方向を軸にして左右方向に動かしたときの傾きを示す第１の傾き、前記左右方向を軸にして前記上下方向に動かしたときの傾きを示す第２の傾き、前記電子機器の画面の中心を軸として前記左右方向に回転させたときの傾きを示す第３の傾きのそれぞれを検出し、
前記決定部は、前記第１の傾き、前記第２の傾き、前記第３の傾きのそれぞれについて、第１の基準姿勢、第２の基準姿勢、第３の基準姿勢を決定し、
前記対話部は、前記検出部によって検出される前記第１の傾き、前記第２の傾き、前記第３の傾きのうち、対応する基準姿勢からの変位が所定値以上の傾きに応じた前記オブジェクトの処理を、前記利用者にフィードバックすることを特徴とする請求項１に記載の電子機器。
【請求項４】
前記対話部は、前記第１の基準姿勢から所定値以上の変位がある前記第１の傾きが検出される場合に、前記電子機器の画面上のカーソルを前記左右方向に移動させ、前記第１の傾きが検出された後に前記第１の基準姿勢に戻った場合に、前記カーソルを移動させた位置に維持する操作を実行することを特徴とする請求項３に記載の電子機器。
【請求項５】
前記対話部は、前記第２の基準姿勢から所定値以上の変位がある前記第２の傾きが検出さる場合、前記電子機器の画面上のカーソルを前記上下方向に移動させ、前記第２の傾きが検出された後に前記第２の基準姿勢に戻った場合に、前記カーソルを移動させた位置に維持する操作を実行することを特徴とする請求項３に記載の電子機器。
【請求項６】
前記対話部は、前記第３の基準姿勢から所定値以上の変位がある前記第３の傾きが検出される場合、前記電子機器の画面上のカーソルの位置にあるオブジェクトに対して所定のクリック操作を実行することを特徴とする請求項３に記載の電子機器。
【請求項７】
前記受付部は、前記第３の基準姿勢から所定値以上の変位がある前記第３の傾きが検出される場合、前記電子機器の画面上のカーソルの位置にあるオブジェクトに対してマウスボタンをプレスした状態で、前記第１の基準姿勢から所定値以上の変位がある前記第１の傾きが検出される場合、または、前記第２の基準姿勢から所定値以上の変位がある前記第２の傾きが検出される場合、前記マウスボタンがプレスする前記オブジェクトに対して所定の操作を実行することを特徴とする請求項３に記載の電子機器。
【請求項８】
前記電子機器における加速度を検出する加速度検出部をさらに有し、
前記受付部は、前記電子機器の画面上のカーソルを無効状態で、前回検出された加速度から所定値以上加速度が変化した場合に、前記カーソルを無効状態から有効状態に遷移させ、前記カーソルを有効状態で、前回検出された加速度から所定値以上加速度が変化した場合に、前記カーソルを有効状態から無効状態に遷移させることを特徴とする請求項３に記載の電子機器。
【請求項９】
電子機器に、
前記電子機器の傾きを検出し、
検出された前記電子機器の傾きによって、前記電子機器の動きが所定量以下と判定された時間帯における前記電子機器の姿勢を、前記電子機器の基準姿勢に決定し、
決定された前記基準姿勢からの前記傾きの変位にしたがって、前記電子機器の表示部に表示されるオブジェクトの処理として利用者にフィードバックする
処理を実行させることを特徴とする操作受付プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器および操作受付プログラムに関する。
【背景技術】
【０００２】
ＧＵＩ（Graphical  User  Interface）を採用したＯＳ（Operating  System）環境では、マウス操作によりカーソルを移動させてオブジェクトを選択して処理する方式、ペンタッチ操作やタッチ操作により直接オブジェクトを選択して処理する方式が採用されている。また、携帯電話、スマートフォン、タブレットなどの携帯端末では、指タッチ操作が主流であるが、携帯端末の画面が大きくなっており、片手で操作を完結することが難しいことから、一方の手で端末を保持し、他方の手で指タッチ操作を行うことが一般的である。
【０００３】
しかし、満員電車の中などで片手が使えない状況、作業現場などで自由になるのが利き手の逆のみという状況、手袋をしていて画面を指操作できない状況では操作が難しい。このため、近年では、傾きセンサーを利用して、カーソル移動させることで、入力を行う技術が知られている。
【０００４】
例えば、物理選択キーの押下によりカーソルを表示して基準傾きを計測し、選択キーを押下したまま、基準傾きからの傾き変位に応じて、カーソルの表示位置を直接変更、あるいは、等速移動するカーソルの移動速度を変化させて表示位置を変更させる。そして、選択キーの開放により、カーソル位置にあるオブジェクトに対応した実行処理を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２６２５８号公報
【特許文献２】特開２０００−５６８９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記技術では、利用者に指示されたときの筐体の姿勢を基準傾きとするので、手振れ等による誤動作が発生する。
【０００７】
例えば、シングルクリックを行う場合、オブジェクトを選択して処理を実行する時に画面が傾いていて見にくく、誤操作が起こりやすい。また、正対表示するためには、基準傾きに戻すことになり、カーソルも元の位置に戻ってしまうので、所望の操作ができない。また、画面端までカーソルを動かそうと端末を傾けすぎると、画面座標系が変わってしまう可能性がある。また、ダブルクリックを行う場合、カーソルがオブジェクトの上に来ても、カーソルが等速移動中であるので、移動中のカーソルを見ながら、ピンポイントで選択キーを開放することになるので、操作が難しく、誤操作も起こりやすい。
【０００８】
１つの側面では、傾きを利用した操作時の誤操作を抑制することができる電子機器および操作受付プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、電子機器は、前記電子機器の傾きを検出する検出部と、検出された前記電子機器の傾きによって、前記電子機器の動きが所定量以下と判定された時間帯における前記電子機器の姿勢を、前記電子機器の基準姿勢に決定する決定部と、決定された前記基準姿勢からの前記傾きの変位にしたがって、前記電子機器の表示部に表示されるオブジェクトの処理として利用者にフィードバックする対話部とを有する。
【発明の効果】
【００１０】
一実施形態によれば、傾きを利用した操作時の誤操作を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１にかかる携帯端末のハードウェア構成例を示す図である。
【図２】図２は、座標系を説明する図である。
【図３】図３は、実施例１にかかる携帯端末の機能構成を示す機能ブロック図である。
【図４Ａ】図４Ａは、基準値の変更例を説明する図である。
【図４Ｂ】図４Ｂは、基準値および閾値を説明する図である。
【図４Ｃ】図４Ｃは、基準値の変更を説明する図である。
【図５】図５は、基準値からの変位測定例を説明する図である。
【図６】図６は、クリック判定例を説明する図である。
【図７】図７は、プレス開始とプレス開放の判定例を説明する図である。
【図８】図８は、加速度監視部の起動から終了時の処理の流れを示すフローチャートである。
【図９】図９は、加速度監視部が変更通知を受信した時の処理の流れを示すフローチャートである。
【図１０】図１０は、カーソルアシスト部の起動から終了までの処理の流れを示すフローチャートである。
【図１１】図１１は、カーソルアシスト部が変更通知を受信した時の処理の流れを示すフローチャートである。
【図１２】図１２は、カーソルアシスト部が変更通知を受信した時の処理の流れを示すフローチャートである。
【図１３】図１３は、ｒｏｌｌ方向の変位によるカーソル移動を説明する図である。
【図１４】図１４は、ｐｉｔｃｈ方向の変位によるカーソル移動を説明する図である。
【図１５】図１５は、ｙａｗ方向の変位によるクリックイベントを説明する図である。
【図１６】図１６は、プレス状態を説明する図である。
【図１７】図１７は、カーソルの有効と無効を説明する図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する電子機器および操作受付プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１３】
［携帯端末の説明］
本実施例で説明する携帯端末は、携帯電話、スマートフォン、タブレット端末の一例であり、加速度センサーや傾きセンサーなどを有する。携帯端末には搭載されるＯＳ（Operating  System）には標準的に、ユーザが画面上のウィンドウやボタンなどのオブジェクトを指定して操作する入力デバイスとして、タッチデバイスが用意されている。例えば、入力デバイスの一例であるマウスデバイスについては、ＯＳ標準のマウスカーソルも用意されていて、移動、左クリック、右クリック、プレスなどの操作により、ＯＳ経由で、オブジェクトにメッセージを送り、オブジェクトの側で用意されたハンドラにより、対応する処理を行うことができる。
【００１４】
そして、携帯端末は、物理的にマウスで操作することなく、オブジェクトと座標とイベント（例えばクリックなど）を指定することで、ソフト的にエミュレーションさせることができる。また、個々のアプリケーションは、自身の管理するオブジェクトの座標、すなわち、そのアプリのウィンドウの左上からのオフセットであるクライアント座標をＯＳ経由で取得でき、複数のオブジェクトが画面上に重なっている場合は、座標を与えることで、その座標上で最も上に表示されているオブジェクトを特定できる。したがって、携帯端末は、携帯端末の傾きや加速度を利用して、「座標、左クリック、右クリック、プレス、開放」に変換して、マウス相当の処理を行うポインティング入力デバイスを実現する。
【００１５】
［ハードウェア構成］
図１は、実施例１にかかる携帯端末１０のハードウェア構成例を示す図である。図１に示すように、携帯端末１０は、無線部１０ａ、アンテナ１０ｂ、加速度センサー１０ｃ、傾きセンサー１０ｄ、オーディオ入出力部１０ｅ、スピーカ１０ｆ、マイク１０ｇ、記憶部１０ｈ、タッチセンサー部１０ｉ、表示部１０ｊ、プロセッサ１０ｋなどを有する。
【００１６】
無線部１０ａは、アンテナ１０ｂを介して、基地局や他の情報処理端末と無線通信を実行する。加速度センサー１０ｃは、３軸加速度センサーであり、携帯端末１０にかかっている加速度を取得してｘ方向、y方向、z方向の３成分に分けて、上位の処理部に出力する。なお、一例として、ｘ方向は、携帯端末１０の正面右向きを正として、ｙ方向は、携帯端末１０の正面上向きを正とし、ｚ方向は、携帯端末１０の正面手前方向を正とする。
【００１７】
傾きセンサー１０ｄは、端末の傾きを、ｒｏｌｌ方向、ｐｉｔｃｈ方向、ｙａｗ方向の３つの角度で取得して、上位の処理部に出力する。なお、一例として、ｒｏｌｌ方向は、携帯端末１０をユーザから見て右に傾けると角度が増加する方向であり、ｐｉｔｃｈ方向は、携帯端末１０を手前（ユーザ方向）に持ち上げると角度が増加する方向であり、ｙａｗ方向は、携帯端末１０の軸について面舵方向に動かすと角度が増加する方向である。
【００１８】
ここで、携帯端末１０で扱われる座標系について説明する。図２は、座標系を説明する図である。図２の左図に示すように、携帯端末１０の画面は、左上を原点にして、正面から見て右方向がｘ軸方向、下方向がｙ軸方向となる。一方で、傾きセンサー１０ｄで扱う軸は、図２の右図に示すように、携帯端末１０の左下を基準にして、ｘ軸方向、ｙ軸方向、ｚ軸方向が決定され、ｙ軸を基準とした回転をｒｏｌｌ、ｘ軸を基準とした回転をｐｉｔｃｈ、ｚ軸を基準とした回転をｙａｗとする。なお、本実施例は、ｒｏｌｌ方向の値をｒｏｌｌ値、ｐｉｔｃｈ方向の値をｐｉｔｃｈ値、ｙａｗ方向の値をｙａｗ値と記載する。
【００１９】
オーディオ入出力部１０ｅは、スピーカ１０ｆから音声を出力し、マイク１０ｇで集音された音声に対して各種処理を実行する。記憶部１０ｈは、メモリやハードディスクなどの記憶装置の一例であり、例えばプログラムやデータなどを記憶する。
【００２０】
タッチセンサー部１０ｉは、表示部１０ｊに重畳される、ユーザ操作を受け付ける入力部であり、操作された位置（座標）をプロセッサ１０ｋ等に出力する。なお、タッチセンサー部１０ｉは、静電容量方式や電磁誘導方式など様々な方式を採用することができる。表示部１０ｊは、各種情報を表示する表示部の一例である。
【００２１】
プロセッサ１０ｋは、情報処理装置１全体の処理を司る処理部であり、例えばＣＰＵ（Central  Processing  Unit）などである。例えば、プロセッサ１０ｋは、ＯＳを実行する。また、プロセッサ１０ｋは、ハードディスク等に記憶されるプログラムを読み出してメモリに展開して実行することで、後述する各機能部を実行する。
【００２２】
このような携帯端末１０は、加速度、ｒｏｌｌ値、ｐｉｔｃｈ値、ｙａｗ値を用いて、タッチパネル等の表示部１０ｊに表示されるカーソルを移動させて、表示部１０ｊに表示されるオブジェクトに対して各種処理を実行する。例えば、携帯端末１０は、携帯端末１０のｚ方向加速度を抽出して判定し、傾きカーソルの有効状態を切り替える。また、携帯端末１０は、携帯端末１０の傾きのｒｏｌｌ値を抽出して判定し、有効な場合に、カーソルのｘ座標の指定に利用する。また、携帯端末１０は、携帯端末１０の傾きのｐｉｔｃｈ値を抽出して判定し、有効な場合に、カーソルのｙ座標の指定に利用する。また、携帯端末１０は、携帯端末１０の傾きのｙａｗ値を抽出し、左クリック、右クリック、プレス、開放に利用する。
【００２３】
このとき、携帯端末１０は、検出された携帯端末１０の傾きによって、携帯端末１０の動きが所定量以下と判定された時間帯における携帯端末１０の姿勢を、携帯端末１０の基準姿勢（例えば基準値）に決定する。そして、携帯端末１０は、決定された基準姿勢からの傾きの変位にしたがって、携帯端末１０の表示部に表示されるオブジェクトの処理として利用者にフィードバックする。なお、オブジェクトは、アプリケーションなどのアイコン等の一例である。
【００２４】
［機能構成］
図３は、実施例１にかかる携帯端末１０の機能構成を示す機能ブロック図である。図３に示すように、携帯端末１０は、通信部１１、記憶部１２、制御部２０を有する。
【００２５】
通信部１１は、他の装置の通信を制御する処理部であり、例えば無線インタフェースなどである。例えば、通信部１１は、発着信や、メール、各種信号、各種データの送受信を実行する。
【００２６】
記憶部１２は、制御部２０が実行するプログラムや各種データを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。例えば、記憶部１２は、制御部２０が処理の過程で算出するデータや計測するデータなどを記憶する。また、この記憶部１２は、設定ファイル１３を記憶する。
【００２７】
設定ファイル１３は、キャリブレーションに使用する各種閾値などを記憶する。具体的には、設定ファイル１３は、携帯端末１０の基準姿勢を変更するときに使用されるｒｏｌｌ基準値変更判定閾値、ｐｉｔｃｈ基準値変更判定閾値、ｙａｗ基準値変更判定閾値、ｚ方向加速度の基準値変更判定閾値を記憶する。また、設定ファイル１３は、ｙａｗ値に基づいてクリック判定を行うときに使用される左クリック判定閾値と右クリック判定閾値を記憶する。また、設定ファイル１３は、ｙａｗ値を用いてプレスしているか否かの判定に使用されるｙａｗ値のプレス判定閾値を記憶する。なお、ここで記憶される各種閾値は、管理者等によって任意に設定変更することができる。
【００２８】
制御部２０は、携帯端末１０全体の処理を司る処理部であり、例えばプロセッサなどである。この制御部２０は、加速度検出部２１、傾き検出部２２、加速度監視部２３、カーソルアシスト部２４、座標計算部２５、処理実行部２６を有する。なお、加速度検出部２１、傾き検出部２２、加速度監視部２３、カーソルアシスト部２４、座標計算部２５、処理実行部２６は、プロセッサが実行するプロセスの一例やプロセッサが有する電子回路の一例である。なお、制御部２０内の各処理部は相互の情報をやり取りすることもできる。また、傾き検出部２２は、検出部の一例であり、カーソルアシスト部２４は、決定部の一例であり、処理実行部２６は、対話部の一例である。
【００２９】
このような制御部２０は、携帯端末１０の傾きを検出し、検出された携帯端末１０の傾きによって、携帯端末１０の動きが所定量以下と判定された時間帯における携帯端末１０の姿勢を、携帯端末１０の基準姿勢に決定する。そして、制御部２０は、決定された基準姿勢からの傾きの変位にしたがって、オブジェクトの処理として利用者にフィードバックする。
【００３０】
具体的には、カーソルアシスト部２４が、傾きセンサー値の判定を行って、ｒｏｌｌ値の変位、ｐｉｔｃｈ値の変位、プレス状態（選択状態）、クリック操作などのアクション種別の情報を生成する。そして、座標計算部２５が、カーソルアシスト部２４が生成した情報をクライアント座標に変換する。そして、処理実行部２６が、実際の傾きカーソルを表示し、マウス処理相当のエミュレーションを行う。傾きカーソル機能の有効無効は、加速度監視部２３のｚ方向の加速度値の判定結果をトリガにして処理実行部２６の指示で切り替える。
【００３１】
なお、カーソルアシスト部２４、加速度監視部２３が、センサー値を解釈して、ｒｏｌｌ変位、ｐｉｔｃｈ変位、プレス状態、アクション種別の情報を生成する部分および加速度監視部２３の判定結果を生成する部分以外は、一般的な入力エミュレーションのフレームワークを採用することができる。
【００３２】
次に、各処理部について説明する。加速度検出部２１は、加速度センサー１０ｃから加速度を取得して上位のコンポーネントに通知する処理部である。例えば、加速度検出部２１は、加速度センサー１０ｃの測定値を取得して保持し、測定値に変化があった場合に、リスナー登録された加速度監視部２３に、測定値であるｘ方向加速度とｙ方向加速度とｚ方向加速度を通知する。
【００３３】
なお、本実施例では、通知先と通知元の関係をリスナーと記載することとする。例えば、加速度監視部２３が加速度検出部２１から加速度の情報を受け取りたい場合、加速度監視部２３は、加速度検出部２１にリスナー登録を要求し、加速度検出部２１が、加速度監視部２３をリスナー登録する。
【００３４】
傾き検出部２２は、ＯＳ起動時に起動される処理部であり、傾きセンサー１０ｄから傾き情報を取得して上位のコンポーネントに通知する処理部である。例えば、傾き検出部２２は、傾きセンサー１０ｄの測定値を取得して保持し、測定値に変化があった場合に、リスナー登録されたカーソルアシスト部２４に、測定値であるｐｉｔｃｈ値とｒｏｗ値とｙａｗ値を通知する。
【００３５】
加速度監視部２３は、ＯＳ起動時に起動される処理部であり、ｚ方向の加速度の変位にしたがって、傾きカーソルの有効情報を判定して、判定結果を上位コンポーネントである処理実行部２６に通知する処理部である。例えば、加速度監視部２３は、ほぼ一定間隔で、加速度検出部２１から加速度の変更通知を受信する。
【００３６】
加速度監視部２３は、処理実行部２６の指示によって起動すると、傾きカーソル有効状態を初期化（無効化）する。そして、加速度監視部２３は、起動されると、設定ファイル１３から各種閾値設定値を読み込む。続いて、加速度監視部２３は、変数領域を確保し、状態値を初期化し、加速度検出部２１に自らのリスナー登録を要求する。
【００３７】
また、加速度監視部２３は、処理実行部２６より、リスナー登録を要求されたら、自身のリスナー情報に処理実行部２６を登録する。そして、加速度監視部２３は、加速度検出部２１から加速度値を含む通知である変更通知を受信すると、「傾きカーソル有効状態変更要求」に変換して、自身のリスナー情報を参照して、処理実行部２６に通知する。
【００３８】
このように、加速度監視部２３は、リスナー情報、現在のｚ方向加速度値、前回のｚ方向加速度値、ｚ方向の加速度基準値変更判定用のキュー、キュー上限サイズ、ｚ方向加速度基準値、ｘ方向加速度の基準値変更判定閾値、傾きカーソル有効状態変更閾値を保持する。
【００３９】
例えば、加速度監視部２３は、加速度検出部２１からｚ方向の加速度を受信すると、ｚ方向の加速度基準値変更判定用のキュー（以降、単にキューと記載する場合がある）に保存する。そして、加速度監視部２３は、キューの上限値（例えば１０）までデータが格納されている場合、キュー内の最大値と最小値の差を算出し、この差が所定範囲に収まっている場合は、ｚ方向の加速度基準値を更新する。例えば、加速度監視部２３は、「キュー内の最大値と最小値の差＜ｚ方向加速度の基準値変更判定閾値（以降では、変更判定閾値と記載する場合がある）×２」を満たす場合に、キュー内の平均値を、ｚ方向の加速度基準値として新たに設定する。このとき、加速度監視部２３は、キューから、最も古い測定値を削除する。
【００４０】
続いて、加速度監視部２３は、前回のｚ方向の加速度値が判定基準を満たすか否かを判定する。具体的には、加速度監視部２３は、「前回のｚ方向の加速度値＜ｚ方向の加速度基準値＋変更判定閾値、かつ、前回のｚ方向の加速度値＞ｚ方向の加速度基準値−変更判定閾値」を満たすか否かを判定する。
【００４１】
そして、加速度監視部２３は、前回のｚ方向の加速度が判定基準を満たす場合、傾きカーソルの有効状態が変更条件を満たすか否かを判定する。具体的には、加速度監視部２３は、「現在のｚ方向の加速度値＜ｚ方向の加速度基準値−変更判定閾値、かつ、前回のｚ方向の加速度値−今回のｚ方向の加速度基準値＞傾きカーソル有効状態変更閾値」を満たすか否かを判定する。ここで、加速度監視部２３は、上記基準を満たす場合、処理実行部２６に対して、傾きカーソル有効状態の変更要求を送信する。
【００４２】
カーソルアシスト部２４は、ｒｏｌｌ値、ｐｉｔｃｈ値、ｙａｗ値の各基準値の変更、各基準値からの変位の計算、カーソルのプレス状態の判定などを実行する処理部である。例えば、カーソルアシスト部２４は、ほぼ一定間隔で、傾き検出部２２からｒｏｌｌ値などの各値の変更通知を受信する。具体的には、カーソルアシスト部２４は、起動すると、設定ファイル１３から各種の閾値設定値を読み込み、変数領域を確保し、状態値を初期化して、傾き検出部２２にリスナー登録を要求する。
【００４３】
また、カーソルアシスト部２４は、傾き検出部２２からメッセージを受信するたびに、傾き値の評価前に、ｒｏｌｌ変位、ｐｉｔｃｈ変位を０に設定するとともに、アクション種別を「なし」に初期化する。また、カーソルアシスト部２４は、ｒｏｌｌ、ｐｉｔｃｈ、ｙａｗの各傾き基準値を随時変更可能とするために、各傾きの値の履歴をキュー上限サイズで保持する基準値変更判定用キューを保持する。そして、カーソルアシスト部２４は、傾き変更通知を受信するたびに、キュー内の最大値−最小値が、基準値変更判定閾値の２倍以内に収まっているか否かを判定する。ここで、カーソルアシスト部２４は、キュー内の最大値−最小値が、基準値変更判定閾値の２倍以内に収まっている場合、新たに、キュー内の平均値を傾きの基準値とする補正を行う。
【００４４】
また、カーソルアシスト部２４は、座標計算部２５より、リスナー登録を要求されたら、自身のリスナー情報に、座標計算部２５を登録する。また、カーソルアシスト部２４は、座標計算部２５より、設定リセットを受け取ると、プレス状態を「プレスされていない」に変更する。また、カーソルアシスト部２４は、傾き検出部２３から傾き変更通知を受信すると、「ｒｏｌｌ基準値からの変位、ｐｉｔｃｈ基準値からの変位、プレス状態（プレスされている、プレスされていない）、アクション種別（左クリック、右クリック、プレス、開放、移動）」に変換して、自身のリスナー情報を参照して、座標計算部２５に通知する。
【００４５】
次に、ｐｉｔｃｈを例にして基準値の変更例を具体的に説明するが、ｒｏｌｌ値、ｙａｗ値、加速度のそれぞれに対する基準値についても同様の手法を用いることができる。図４Ａは、基準値の変更例を説明する図である。図４Ａに示すグラフは、横軸が時間（ｔ）、縦軸は傾き（ｐｉｔｃｈ値）である。図４に示すように、カーソルアシスト部２４は、時刻ｔ０からｔ１の間において測定されてキューに保持されるｐｉｔｃｈ値の平均値である「２５度」を基準値に設定する。
【００４６】
その後、時刻ｔ１から時刻ｔ２までの間では、カーソルアシスト部２４は、キュー内の最大値と最小値の差が基準値変更判定閾値の２倍以内に収まらないので、基準値「２５度」の変更を行わない。つまり、時刻ｔ１から時刻ｔ２までの間では、計測されたｐｉｔｃｈ値の値が徐々に上がっているが、キュー内のｐｉｔｃｈ値の最大値と最小値の差が、閾値×２＝基準値変更判定幅の範囲内にないので、基準値の変更が行われない。
【００４７】
そして、時刻ｔ２から時刻ｔ３までの間では、カーソルアシスト部２４は、キュー内の最大値と最小値の差が基準値変更判定閾値の２倍以内に収まるので、キュー内の平均値「５５度」を算出し、基準値「２５度」を「５５度」に更新する。
【００４８】
ここで、基準値と閾値について一例を説明する。図４Ｂは、基準値および閾値を説明する図である。基準値の変更は、キュー内に格納される１０個の測定値における最大値と最小値との差が基準値変更判定幅の範囲内である場合に実行される。基準値変更判定幅は、基準値−閾値から基準値＋閾値の範囲である。つまり、図４Ｂに示すように、「測定値における最大値と最小値との差」が「基準値変更判定幅＝閾値×２」以下か否かによって、基準値の変更または維持が実行される。
【００４９】
次に、基準値の変更について説明する。図４Ｃは、基準値の変更を説明する図である。一例としてｐｉｔｃｈ値を用いて説明する。図４Ｃの縦軸はｐｉｔｃｈ値で横軸が時間（ｔ）である。図４Ｃの（ａ）に示すように、カーソルアシスト部２４は、キュー内に１０個のｐｉｔｃｈ値が格納されると、キュー内の最大値と最小値の差を算出する。そして、カーソルアシスト部２４は、算出した差が基準値変更判定幅の範囲内である場合、基準値を変更すると判定し、キュー内の平均値を新たな基準値に設定する。一方、図４Ｃの（ｂ）に示すように、カーソルアシスト部２４は、キュー内の最大値と最小値の差が基準値変更判定幅の範囲外である場合、基準値を変更しないと判定し、現在の基準値を維持する。
【００５０】
このように、例えば、座って下向きで作業していた時のｐｉｔｃｈ値は、浅めであったが、立ち上がって作業することで、ｐｉｔｃｈが上がって安定した場合に、基準値を２５度から５５度に変更する。
【００５１】
続いて、基準値からの変位の測定について説明する。図５は、基準値からの変位測定例を説明する図である。図５に示すグラフは、横軸が時間（ｔ）、縦軸は傾き（ｐｉｔｃｈ値またはｒｏｌｌ値）である。図５に示すａ、ｆ、ｉ、ｌの区間では、基準値変更判定閾値の範囲（β３）内であることから、カーソルアシスト部２４は、変位を無視し、処理を実行しない。
【００５２】
また、図５に示すｃとｅの区間では、測定されたｐｉｔｃｈ値またはｒｏｌｌ値が基準値変更判定閾値（β３）内より上であるが減少中である。このため、カーソルアシスト部２４は、変位を無視し、処理を実行しない。同様に、図５に示すｈとｋの区間では、測定されたｐｉｔｃｈ値またはｒｏｌｌ値が基準値変更判定閾値（β３）内より下であるが増加中である。このため、カーソルアシスト部２４は、変位を無視し、処理を実行しない。
【００５３】
一方で、図５に示すｂとｄの区間では、測定されたｐｉｔｃｈ値またはｒｏｌｌ値が基準値変更判定閾値（β３）内より大きな値かつ増加中である。この結果、カーソルアシスト部２４は、変位を有効として、変位を座標計算部２５に通知する。また、図５に示すｇとｊの区間では、測定されたｐｉｔｃｈ値またはｒｏｌｌ値が基準値変更判定閾値（β３）内より小さな値かつ減少中である。この結果、カーソルアシスト部２４は、変位を有効として、変位を座標計算部２５に通知する。このようにすることで、カーソルアシスト部２４は、変位方向指示からの戻り操作を無視することができる。
【００５４】
続いて、ｙａｗ値を用いたクリック判定例について説明する。図６は、クリック判定を説明する図である。図６に示すグラフは、横軸が時間（ｔ）、縦軸は傾き（ｙａｗ値）である。図６に示すように、ｙａｗ値の＋αから−αの範囲が傾きセンサーのｙａｗ基準値変更判定閾値の範囲（β４）であり、＋αが左クリックの判定閾値であり、−αが右クリックの判定閾値である。
【００５５】
このような状態において、カーソルアシスト部２４は、区間Ｐ１で測定されたｙａｗ値について、直前の測定値が傾きセンサーのｙａｗ基準値変更判定範囲（β４）の範囲外であることから、前回と今回の差分が左クリック判定閾値（＋α）以上であっても、クリックと判定しない。
【００５６】
一方で、カーソルアシスト部２４は、区間Ｐ２で測定されたｙａｗ値について、直前の測定値が傾きセンサーのｙａｗ基準値変更判定範囲（β４）の範囲内であり、前回と今回の差分が左クリック判定閾値（＋α）以上であることから、左クリックの操作と判定する。また、カーソルアシスト部２４は、区間Ｐ３で測定されたｙａｗ値について、直前の測定値が傾きセンサーのｙａｗ基準値変更判定範囲（β４）の範囲内であり、前回と今回の差分が右クリック判定閾値（−α）以下であることから、右クリックの操作と判定する。このように、カーソルアシスト部２４は、区間Ｐ１をクリック操作と判定しないことで、誤って連続クリックが発生することを回避する。
【００５７】
続いて、ｙａｗ値を用いたプレス判定について説明する。図７は、プレス開始とプレス開放の判定例を説明する図である。図７に示すグラフは、横軸が時間（ｔ）、縦軸は傾き（ｙａｗ値）である。図７に示すように、ｙａｗ値の＋ｃから−ｃの範囲が傾きセンサーのｙａｗ基準値変更判定閾値の範囲（β５）である。
【００５８】
ここで、カーソルアシスト部２４は、ｙａｗ値が基準値変更判定範囲（β５）を下回るとともに、プレス判定閾値（−ｄ）を下回った場合に、プレス開始と判定して、その時点のｙａｗ値の基準値をプレス開始時基準値として保存する。これは、プレス開放までに、ｙａｗ値の基準値が変更になる可能性があるためである。その後、カーソルアシスト部２４は、ｙａｗ値がプレス開始時基準値を中心にしたｙａｗ基準値変更判定範囲（β５）下限を上回ったら、プレス開放判定する。
【００５９】
例えば、図７の場合、カーソルアシスト部２４は、時刻ｔ２のタイミングでプレス開始を判定し、その後は時刻ｔ３までプレス状態を維持し、時刻ｔ３でプレス開放と判定する。なお、クリック判定よりも、プレスの開放判定を先に行う。
【００６０】
図３に戻り、座標計算部２５は、携帯端末１０の画面を基準としたグローバル座標と、アプリのウィンドウを基準としたクライアント座標との間の変換を実行し、カーソルの座標や変位を特定して、各種情報を処理実行部２６へ通知する処理部である。
【００６１】
具体的には、座標計算部２５は、起動されると、通知ポーズフラグをｔｒｕｅ状態で起動して、カーソルアシスト部２４にリスナー登録を要求する。また、座標計算部２５は、処理実行部２６より、リスナー登録を要求された場合、自身のリスナー情報に、処理実行部２６を登録する。
【００６２】
また、座標計算部２５は、グローバル座標をクライアント座標に変換するために、ｘ方向のＤＰＩ（Dots  Per  Inch）、ｙ方向のＤＰＩ、画面サイズなどに変更があれば、ＯＳから通知を受けられるように、ＯＳに要求する。なお、グローバル座標と、クライアント座標の座標変換は一般的であり、公知の様々な技術を採用することができる。
【００６３】
また、座標計算部２５は、処理実行部２６から通知レジュームを受信すると、通知ポーズフラグをｆａｌｓｅに設定し、カーソルの現在のクライアント座標と係数値を更新する。さらに、座標計算部２５は、カーソルの現在のクライアント座標をグローバル座標に変換して、カーソルアシスト部２４に設定リセットを送信する。また、座標計算部２５は、処理実行部２６から通知ポーズを受信すると、通知ポーズフラグをｔｒｕｅに変更する。
【００６４】
さらに、座標計算部２５は、カーソルアシスト部２４から変更通知を受信すると、ｒｏｌｌ基準値からの変位に変換係数（ｒｏｌｌ方向変位のｘ方向増分の変換係数）を掛けて、ｘ方向増分とし、カーソルの現在のＸ座標（グローバル座標）に加算する。また、座標計算部２５は、ｐｉｔｃｈ基準値からの変位に変換係数（ｐｉｔｃｈ方向変位のｙ方向増分の変換係数）を掛けて、ｙ方向増分とし、カーソルの現在のＹ座標（グローバル座標）に加算する。
【００６５】
そして、座標計算部２５は、ＤＰＩ値を考慮して、カーソルの現在のグローバル座標であるＸ座標、Ｙ座標のそれぞれをクライアント座標に変換する。また、座標計算部２５は、通知ポーズフラグがｆａｌｓｅの場合、カーソルの現在のＸ座標、Ｙ座標（クライアント座標）、プレス状態、アクション種別を、処理実行部２６に通知する。
【００６６】
処理実行部２６は、各処理部の起動を実行し、カーソルによって選択されるオブジェクトに対して、該当する処理を実行する処理部である。例えば、処理実行部２６は、起動されると、座標計算部２５、カーソルアシスト部２４、加速度監視部２３を起動する。なお、傾きカーソル有効状態は、起動時初期状態では無効とする。また、処理実行部２６は、ｒｏｌｌ方向変位のｘ方向増分の変換係数、ｐｉｔｃｈ方向変位のｙ方向増分の変換係数を起動時に設定ファイル１３から読み込む。なお、各係数は、設定インタフェース経由で値を変更できるものとする。
【００６７】
また、処理実行部２６は、加速度監視部２３から、「傾きカーソル有効状態変更要求」を受けると、現在の傾きカーソル有効状態が無効ならば有効にし、必要ならば、カーソルの現在のＸ座標、Ｙ座標（クライアント座標）を更新してから、座標計算部２５に通知レジュームを送信する。ここで、通知レジュームには、カーソルの現在のＸ座標、Ｙ座標（クライアント座標）、ｒｏｌｌ方向変位のｘ方向の増分変換係数、ｐｉｔｃｈ方向変位のｙ方向増分の変換係数などが含まれる。また、処理実行部２６は、現在のカーソル有効状態が有効ならば、無効にして、座標計算部２５に通知ポーズを送信する。
【００６８】
また、処理実行部２６は、座標計算部２５から変更通知を受信すると、カーソルの現在のＸ座標、Ｙ座標（クライアント座標）を更新し、コントロール配置情報から当該位置のコントロールを特定する。そして、処理実行部２６は、プレス状態、アクション種別から、マウス相当処理をエミュレーションする。なお、マウス相当処理としては、カーソルパターンの表示位置の移動、メニュー表示、アプリ実行などがある。
【００６９】
［処理の説明］
次に、各種処理について説明する。ここでは、特徴的な処理を実行する加速度監視部２３とカーソルアシスト部２４とについて説明する。なお、カーソルの座標位置を特定する処理やカーソルが位置するオブジェクトに対して実行する各種処理などは、公知の様々な技術を採用することができるので、ここでは、詳細な説明は省略する。
【００７０】
（加速度監視部２３の処理）
図８は、加速度監視部２３の起動から終了時の処理の流れを示すフローチャートである。図８に示すように、加速度監視部２３は、起動を開始すると（Ｓ１０１：Ｙｅｓ）、設定ファイル１３から閾値設定値を読み込む（Ｓ１０２）。例えば、加速度監視部２３は、キュー上限サイズ、ｚ方向加速度の基準値変更判定閾値、傾きカーソル有効状態変更閾値などを読み込む。
【００７１】
続いて、加速度監視部２３は、リスナー情報、現在のｚ方向加速度値、前回のｚ方向加速度値、ｚ方向の加速度基準値変更判定用のキュー、ｚ方向加速度基準値を保存するための変数領域を確保する（Ｓ１０３）。
【００７２】
そして、加速度監視部２３は、状態値の初期化を実行し（Ｓ１０４）、加速度検出部２１へリスナー登録を要求する（Ｓ１０５）。なお、状態値の初期化としては、例えばリスナー情報を「なし」に設定し、ｚ方向の加速度基準値変更判定用のキューを空にする。
【００７３】
続いて、加速度監視部２３は、メッセージを受信すると（Ｓ１０６：Ｙｅｓ）、受信したメッセージの種別を判定し（Ｓ１０７）、種別が「処理実行部２６からの終了要求」である場合（Ｓ１０７：Ｙｅｓ）、Ｓ１１４以降を実行する。一方、加速度監視部２３は、受信したメッセージの種別が「処理実行部２６からの終了要求」ではない場合（Ｓ１０７：Ｎｏ）、受信したメッセージの種別が「処理実行部２６からのリスナー登録要求」か否かを判定する（Ｓ１０８）。
【００７４】
そして、加速度監視部２３は、受信したメッセージの種別が「処理実行部２６からのリスナー登録要求」である場合（Ｓ１０８：Ｙｅｓ）、処理実行部２６をリスナーに登録して（Ｓ１０９）、Ｓ１０６以降を繰り返す。一方で、加速度監視部２３は、受信したメッセージの種別が「処理実行部２６からのリスナー登録要求」ではない場合（Ｓ１０８：Ｎｏ）、受信したメッセージの種別が「処理実行部２６からのリスナー登録解除要求」か否かを判定する（Ｓ１１０）。
【００７５】
続いて、加速度監視部２３は、受信したメッセージの種別が「処理実行部２６からのリスナー登録解除要求」である場合（Ｓ１１０：Ｙｅｓ）、処理実行部２６をリスナー登録から解除して（Ｓ１１１）、Ｓ１０６以降を繰り返す。一方で、加速度監視部２３は、受信したメッセージの種別が「処理実行部２６からのリスナー登録解除要求」ではない場合（Ｓ１１０：Ｎｏ）、受信したメッセージの種別が「加速度検出部２１からの変更通知」か否かを判定する（Ｓ１１２）。
【００７６】
続いて、加速度監視部２３は、受信したメッセージの種別が「加速度検出部２１からの変更通知」である場合（Ｓ１１２：Ｙｅｓ）、図９に示す変更通知処理を実行して（Ｓ１１３）、Ｓ１０６以降を繰り返す。一方で、加速度監視部２３は、受信したメッセージの種別が「加速度検出部２１からの変更通知」ではない場合（Ｓ１１２：Ｎｏ）、Ｓ１０６以降を繰り返す。
【００７７】
その後、加速度監視部２３は、Ｓ１０７において処理実行部２６より終了要求を受信すると（Ｓ１０７：Ｙｅｓ）、加速度検出部２１に対してリスナー登録の解除を要求し（Ｓ１１４）、変数領域の開放を実行し（Ｓ１１５）、停止する（Ｓ１１６）。
【００７８】
次に、加速度監視部２３の判定処理等を説明する。図９は、加速度監視部２３が変更通知を受信した時の処理の流れを示すフローチャートである。図９に示すように、加速度監視部２３は、検出されたｚ方向の加速度値を含む変更通知を受信すると（Ｓ２０１：Ｙｅｓ）、ｚ方向の加速度基準値変更判定用のキューが空か否かを判定する（Ｓ２０２）。
【００７９】
ここで、加速度監視部２３は、ｚ方向の加速度基準値変更判定用のキューが空ではない場合（Ｓ２０２：Ｎｏ）、現在のｚ方向の加速度値を前回のｚ方向の加速度値として保存する（Ｓ２０３）。なお、加速度監視部２３は、ｚ方向の加速度基準値変更判定用のキューが空である場合（Ｓ２０２：Ｙｅｓ）、Ｓ２０３を実行することなく、Ｓ２０４を実行する。
【００８０】
そして、加速度監視部２３は、変更通知から今回の測定値を抽出し、ｚ方向の加速度値として保存し（Ｓ２０４）、ｚ方向の加速度基準値変更判定用のキューに現在のｚ方向の加速度値を追加して、キューを更新する（Ｓ２０５）。ここで、加速度監視部２３は、キューが上限まで埋まっていない場合（Ｓ２０６：Ｎｏ）、処理を終了する。
【００８１】
一方、加速度監視部２３は、キューが上限まで埋まっている場合（Ｓ２０６：Ｙｅｓ）、更新条件を満たすか否かを判定する（Ｓ２０７）。例えば、加速度監視部２３は、ｚ方向の加速度基準値変更判定用のキュー内の最大値と最小値の差がｚ方向加速度の基準値変更判定閾値の２倍よりも小さい場合に、更新条件を満たすと判定する。
【００８２】
ここで、加速度監視部２３は、更新条件を満たすと判定した場合（Ｓ２０７：Ｙｅｓ）、ｚ方向の加速度基準値変更判定用のキュー内に記憶される加速度値の平均値を、ｚ方向の加速度基準値に設定して、基準値を更新する（Ｓ２０８）。なお、加速度監視部２３は、更新条件を満たさないと判定した場合（Ｓ２０７：Ｎｏ）、Ｓ２０８を実行することなく、Ｓ２０９を実行する。
【００８３】
続いて、加速度監視部２３は、ｚ方向の加速度基準値変更判定用のキュー内の最も古い測定値（ｚ方向の加速度値）をキュー内から削除し（Ｓ２０９）、前回のｚ方向の加速度値が閾値を満たすか否かを判定する（Ｓ２１０）。例えば、加速度監視部２３は、「前回のｚ方向の加速度値＜z方向加速度の基準値＋z方向加速度の基準値変更判定閾値、かつ、前回のｚ方向の加速度値＞ｚ方向加速度の基準値−ｚ方向加速度の基準値変更判定閾値」である場合に、閾値を満たすと判定する。ここで、加速度監視部２３は、閾値を満たさないと判定した場合（Ｓ２１０：Ｎｏ）、処理を終了する。
【００８４】
そして、加速度監視部２３は、上記閾値を満たすと判定した場合（Ｓ２１０：Ｙｅｓ）、傾きカーソル有効状態の変更条件を満たすか否かを判定する（Ｓ２１１）。例えば、加速度監視部２３は、「現在のｚ方向加速度値＜ｚ方向加速度の基準値−ｚ方向加速度の基準値変更判定閾値、かつ、前回のｚ方向加速度値−現在のｚ方向加速度値＞傾きカーソル有効状態変更閾値」を満たす場合に、変更条件を満たすと判定する。ここで、加速度監視部２３は、変更条件を満たさないと判定した場合（Ｓ２１１：Ｎｏ）、処理を終了する。
【００８５】
一方、加速度監視部２３は、変更条件を満たすと判定した場合（Ｓ２１１：Ｙｅｓ）、リスナー登録された処理実行部２６に、傾きカーソル有効状態の変更要求を送信する（Ｓ２１２）。
【００８６】
（カーソルアシスト部２４の処理）
図１０は、カーソルアシスト部２４の起動から終了までの処理の流れを示すフローチャートである。図１０に示すように、カーソルアシスト部２４は、起動を開始すると（Ｓ３０１：Ｙｅｓ）、設定ファイル１３から閾値設定値を読み込む（Ｓ３０２）。例えば、カーソルアシスト部２４は、キュー上限サイズ、ｒｏｌｌ基準値変更判定閾値、ｐｉｔｃｈ基準値変更判定閾値、ｙａｗ基準値変更判定閾値、ｙａｗ値のプレス判定閾値、左クリック判定閾値、右クリック判定閾値などを読み込む。
【００８７】
続いて、カーソルアシスト部２４は、各種変数を確保するための変数領域を確保する（Ｓ３０３）。例えば、カーソルアシスト部２４は、リスナー情報、前回のｒｏｌｌ値、前回のｐｉｔｃｈ値、前回のｙａｗ値、現在のｒｏｌｌ値、現在のｐｉｔｃｈ値、現在のｙａｗ値、ｒｏｌｌ基準値変更判定用のキュー、ｐｉｔｃｈ基準値変更判定用のキュー、ｙａｗ基準値変更判定用のキュー、ｒｏｌｌ基準値、ｐｉｔｃｈ基準値、ｙａｗ基準値、左クリックやプレスなどのアクション種別、ｒｏｌｌ基準値からの変位、ｐｉｔｃｈ基準値からの変位、プレス状態、ｙａｗ値のプレス開始時基準値などを記憶する領域を確保する。
【００８８】
そして、カーソルアシスト部２４は、状態値の初期化を実行し（Ｓ３０４）、傾き検出部２２へリスナー登録を要求する（Ｓ３０５）。なお、状態値の初期化としては、例えばリスナー情報を「なし」に設定し、「左クリック、右クリック、プレス、開放、移動、なし」などを設定するアクション種別を「なし」に設定し、プレス状態を「プレスされていない」に設定する。
【００８９】
続いて、カーソルアシスト部２４は、メッセージを受信すると（Ｓ３０６：Ｙｅｓ）、受信したメッセージの種別を判定し（Ｓ３０７）、種別が「処理実行部２６からの終了要求」である場合（Ｓ３０７：Ｙｅｓ）、Ｓ３１６以降を実行する。一方、カーソルアシスト部２４は、受信したメッセージの種別が「座標計算部２５からの終了要求」ではない場合（Ｓ３０７：Ｎｏ）、受信したメッセージの種別が「座標計算部２５からのリスナー登録要求」か否かを判定する（Ｓ３０８）。
【００９０】
そして、カーソルアシスト部２４は、受信したメッセージの種別が「座標計算部２５からのリスナー登録要求」である場合（Ｓ３０８：Ｙｅｓ）、座標計算部２５をリスナーに登録して（Ｓ３０９）、Ｓ３０６以降を繰り返す。一方で、カーソルアシスト部２４は、受信したメッセージの種別が「座標計算部２５からのリスナー登録要求」ではない場合（Ｓ３０８：Ｎｏ）、受信したメッセージの種別が「座標計算部２５からのリスナー登録解除要求」か否かを判定する（Ｓ３１０）。
【００９１】
続いて、カーソルアシスト部２４は、受信したメッセージの種別が「座標計算部２５からのリスナー登録解除要求」である場合（Ｓ３１０：Ｙｅｓ）、座標計算部２５をリスナー登録から解除して（Ｓ３１１）、Ｓ３０６以降を繰り返す。一方で、カーソルアシスト部２４は、受信したメッセージの種別が「座標計算部２５からのリスナー登録解除要求」ではない場合（Ｓ３１０：Ｎｏ）、受信したメッセージの種別が「座標計算部２５からの設定リセット」か否かを判定する（Ｓ３１２）。
【００９２】
そして、カーソルアシスト部２４は、受信したメッセージの種別が「座標計算部２５からの設定リセット」である場合（Ｓ３１２：Ｙｅｓ）、プレス状態をプレスされていない状態に初期化して（Ｓ３１３）、Ｓ３０６以降を繰り返す。一方で、カーソルアシスト部２４は、受信したメッセージの種別が「座標計算部２５からの設定リセット」ではない場合（Ｓ３１２：Ｎｏ）、受信したメッセージの種別が「傾き検出部２２からの変更通知」か否かを判定する（Ｓ３１４）。
【００９３】
続いて、カーソルアシスト部２４は、受信したメッセージの種別が「傾き検出部２２からの変更通知」である場合（Ｓ３１４：Ｙｅｓ）、図１１と図１２に示す変更通知処理を実行して（Ｓ３１５）、Ｓ３０６以降を繰り返す。一方で、カーソルアシスト部２４は、受信したメッセージの種別が「傾き検出部２２からの変更通知」ではない場合（Ｓ３１４：Ｎｏ）、Ｓ３０６以降を繰り返す。
【００９４】
その後、カーソルアシスト部２４は、Ｓ３０７において処理実行部２６より終了要求を受信すると（Ｓ３０７：Ｙｅｓ）、傾き検出部２２に対してリスナー登録の解除を要求し（Ｓ３１６）、変数領域の開放を実行し（Ｓ３１７）、停止する（Ｓ３１８）。
【００９５】
次に、カーソルアシスト部２４の判定処理等を説明する。図１１と図１２は、カーソルアシスト部２４が変更通知を受信した時の処理の流れを示すフローチャートである。図１１に示すように、カーソルアシスト部２４は、傾き検出部２２が検出した傾き（ｒｏｌｌ値、ｐｉｔｃｈ値、ｙａｗ値）を含む変更通知を受信すると（Ｓ４０１：Ｙｅｓ）、ｒｏｌｌ基準値変更判定用のキューおよびｐｉｔｃｈ基準値変更判定用のキューが空か否かを判定する（Ｓ４０２）。
【００９６】
ここで、カーソルアシスト部２４は、キューが空ではない場合（Ｓ４０２：Ｎｏ）、現在のｒｏｌｌ値を前回のｒｏｌｌ値に保存し、現在のｐｉｔｃｈ値を前回のｐｉｔｃｈ値に保存し、現在のｙａｗ値を前回のｙａｗ値に保存する（Ｓ４０３）。なお、カーソルアシスト部２４は、キューが空である場合（Ｓ４０２：Ｙｅｓ）、Ｓ４０３を実行することなく、Ｓ４０４を実行する。
【００９７】
そして、カーソルアシスト部２４は、変更通知から今回の測定値を抽出し、現在のｒｏｌｌ値に今回抽出されたｒｏｌｌ値を格納し、現在のｐｉｔｃｈ値に今回抽出されたｐｉｔｃｈ値を格納し、現在のｙａｗ値に今回抽出されたｙａｗ値を格納する（Ｓ４０４）。続いて、カーソルアシスト部２４は、アクション種別に「なし」を設定する（Ｓ４０５）。
【００９８】
その後、カーソルアシスト部２４は、ｒｏｌｌ基準値変更判定用のキューに、現在のｒｏｌｌ値を追加して、ｐｉｔｃｈ基準値変更判定用のキューに、現在のｐｉｔｃｈ値を追加して、ｙａｗ基準値変更判定用のキューに、現在のｙａｗ値を追加して、キューを更新する（Ｓ４０６）。ここで、カーソルアシスト部２４は、ｒｏｌｌ基準値変更判定用のキューおよびｐｉｔｃｈ基準値変更判定用のキューが上限まで埋まっていない場合（Ｓ４０７：Ｎｏ）、処理を終了する。
【００９９】
一方、カーソルアシスト部２４は、キューが上限まで埋まっている場合（Ｓ４０７：Ｙｅｓ）、ｒｏｌｌ値およびｐｉｔｃｈ値が更新条件を満たすか否かを判定する（Ｓ４０８）。例えば、カーソルアシスト部２４は、ｒｏｌｌ値基準値変更判定用のキュー内の最大値と最小値の差がｒｏｌｌ基準値変更判定閾値の２倍よりも小さく、かつ、ｐｉｔｃｈ値基準値変更判定用のキュー内の最大値と最小値の差がｐｉｔｃｈ基準値変更判定閾値の２倍よりも小さい場合に、更新条件を満たすと判定する。
【０１００】
ここで、カーソルアシスト部２４は、更新条件を満たすと判定した場合（Ｓ４０８：Ｙｅｓ）、ｒｏｌｌ基準値変更判定用のキュー内に記憶されるｒｏｌｌ値の平均値を、ｒｏｌｌ値基準値に設定するとともに、ｐｉｔｃｈ基準値変更判定用のキュー内に記憶されるｐｉｔｃｈ値の平均値を、ｐｉｔｃｈ値基準値に設定して、基準値を更新する（Ｓ４０９）。なお、カーソルアシスト部２４は、更新条件を満たさないと判定した場合（Ｓ４０８：Ｎｏ）、Ｓ４０９を実行することなく、Ｓ４１０を実行する。
【０１０１】
続いて、カーソルアシスト部２４は、ｙａｗ値が更新条件を満たすか否かを判定する（Ｓ４１０）。例えば、カーソルアシスト部２４は、ｙａｗ値基準値変更判定用のキュー内の最大値と最小値の差がｙａｗ基準値変更判定閾値の２倍よりも小さい場合に、更新条件を満たすと判定する。
【０１０２】
ここで、カーソルアシスト部２４は、ｙａｗ値が更新条件を満たすと判定した場合（Ｓ４１０：Ｙｅｓ）、ｙａｗ基準値変更判定用のキュー内に記憶されるｙａｗ値の平均値を、ｙａｗ値基準値に設定して、基準値を更新する（Ｓ４１１）。なお、カーソルアシスト部２４は、ｙａｗ値が更新条件を満たさないと判定した場合（Ｓ４１０：Ｎｏ）、Ｓ４１１を実行することなく、Ｓ４１２を実行する。
【０１０３】
続いて、カーソルアシスト部２４は、ｒｏｌｌ基準値変更判定用のキュー内の最も古いｒｏｌｌ値をキュー内から削除するとともに、ｐｉｔｃｈ基準値変更判定用のキュー内の最も古いｐｉｔｃｈ値をキュー内から削除し、ｙａｗ基準値変更判定用のキュー内の最も古いｙａｗ値をキュー内から削除する（Ｓ４１２）。
【０１０４】
そして、カーソルアシスト部２４は、ｒｏｌｌ基準値からの変位を０に設定するとともに、ｐｉｔｃｈ基準値からの変位を０に設定して、変位のゼロクリアを実行する（Ｓ４１３）。
【０１０５】
その後、カーソルアシスト部２４は、現在のｒｏｌｌ値が閾値より大きいか否かを判定する（Ｓ４１４）。例えば、カーソルアシスト部４２は、現在のｒｏｌｌ値＞ｒｏｌｌ基準値＋ｒｏｌｌ基準値変更判定閾値、かつ、現在のｒｏｌｌ値＞前回のｒｏｌｌ値である場合、現在のｒｏｌｌ値が閾値より大きいと判定する。
【０１０６】
そして、カーソルアシスト部２４は、現在のｒｏｌｌ値が閾値より大きい場合（Ｓ４１４：Ｙｅｓ）、「現在のｒｏｌｌ値−ｒｏｌｌ基準値」を算出して、ｒｏｌｌ基準値からの変位を算出する（Ｓ４１５）。なお、カーソルアシスト部２４は、現在のｒｏｌｌ値が閾値以下である場合（Ｓ４１４：Ｎｏ）、Ｓ４１５を実行することなく、Ｓ４１６を実行する。
【０１０７】
続いて、カーソルアシスト部２４は、現在のｒｏｌｌ値が閾値未満か否かを判定する（Ｓ４１６）。例えば、カーソルアシスト部２４は、現在のｒｏｌｌ値＜ｒｏｌｌ基準値−ｒｏｌｌ基準値変更判定閾値、かつ、現在のｒｏｌｌ値＜前回のｒｏｌｌ値である場合、現在のｒｏｌｌ値が閾値未満と判定する。
【０１０８】
そして、カーソルアシスト部２４は、現在のｒｏｌｌ値が閾値未満の場合（Ｓ４１６：Ｙｅｓ）、「現在のｒｏｌｌ値−ｒｏｌｌ基準値」を算出して、ｒｏｌｌ基準値からの変位を算出する（Ｓ４１７）。なお、カーソルアシスト部２４は、現在のｒｏｌｌ値が閾値より大きい場合（Ｓ４１６：Ｎｏ）、Ｓ４１７を実行することなく、Ｓ４１８を実行する。
【０１０９】
その後、カーソルアシスト部２４は、現在のｐｉｔｃｈ値が閾値より大きいか否かを判定する（Ｓ４１８）。例えば、カーソルアシスト部２４は、現在のｐｉｔｃｈ値＞ｐｉｔｃｈ基準値＋ｐｉｔｃｈ基準値変更判定閾値、かつ、現在のｐｉｔｃｈ値＞前回のｐｉｔｃｈ値である場合、現在のｐｉｔｃｈ値が閾値より大きいと判定する。
【０１１０】
そして、カーソルアシスト部２４は、現在のｐｉｔｃｈ値が閾値より大きい場合（Ｓ４１８：Ｙｅｓ）、「現在のｐｉｔｃｈ値−ｐｉｔｃｈ基準値」を算出して、ｐｉｔｃｈ基準値からの変位を算出する（Ｓ４１９）。なお、カーソルアシスト部２４は、現在のｐｉｔｃｈ値が閾値以下である場合（Ｓ４１８：Ｎｏ）、Ｓ４１９を実行することなく、Ｓ４２０を実行する。
【０１１１】
続いて、カーソルアシスト部２４は、現在のｐｉｔｃｈ値が閾値未満か否かを判定する（Ｓ４２０）。例えば、カーソルアシスト部２４は、現在のｐｉｔｃｈ値＜ｐｉｔｃｈ基準値−ｐｉｔｃｈ基準値変更判定閾値、かつ、現在のｐｉｔｃｈ値＜前回のｐｉｔｃｈ値である場合、現在のｐｉｔｃｈ値が閾値未満と判定する。
【０１１２】
そして、カーソルアシスト部２４は、現在のｐｉｔｃｈ値が閾値未満の場合（Ｓ４２０：Ｙｅｓ）、「現在のｐｉｔｃｈ値−ｐｉｔｃｈ基準値」を算出して、ｐｉｔｃｈ基準値からの変位を算出する（Ｓ４２１）。なお、カーソルアシスト部２４は、現在のｐｉｔｃｈ値が閾値より大きい場合（Ｓ４２０：Ｎｏ）、Ｓ４２１を実行することなく、Ｓ４２２を実行する。
【０１１３】
その後、図１２に示すように、カーソルアシスト部２４は、ｒｏｌｌ基準値からの変位が０ではない、または、ｐｉｔｃｈ基準値からの変位が０ではない場合（Ｓ４２２：Ｙｅｓ）、アクション種別を「移動」に設定する（Ｓ４２３）。なお、カーソルアシスト部２４は、いずれの変位も０である場合（Ｓ４２２：Ｎｏ）、Ｓ４２３を実行することなく、Ｓ４２４を実行する。
【０１１４】
続いて、カーソルアシスト部２４は、現在のプレス状態が「プレスされていない」である場合（Ｓ４２４：Ｙｅｓ）、現在のｙａｗ値が「ｙａｗ基準値−プレス判定閾値」より小さいか否かを判定する（Ｓ４２５）。
【０１１５】
そして、カーソルアシスト部２４は、「現在のｙａｗ値＜ｙａｗ基準値−プレス判定閾値」である場合（Ｓ４２５：Ｙｅｓ）、プレス状態を「プレスされている」に設定し（Ｓ４２６）、ｙａｗ値のプレス開始時基準値にｙａｗ基準値を設定し（Ｓ４２７）、アクション種別を「プレス」に設定する（Ｓ４２８）。なお、カーソルアシスト部２４は、Ｓ４２５において、「現在のｙａｗ値＜ｙａｗ基準値−プレス判定閾値」ではない場合（Ｓ４２５：Ｎｏ）、Ｓ４２６からＳ４２８を実行することなく、Ｓ４３２を実行する。
【０１１６】
続いて、カーソルアシスト部２４は、現在のプレス状態が「プレスされている」である場合（Ｓ４２４：Ｎｏ）、現在のｙａｗ値が「プレス判定閾値−ｙａｗ基準値」より大きいか否かを判定する（Ｓ４２９）。
【０１１７】
そして、カーソルアシスト部２４は、「現在のｙａｗ値＞プレス判定閾値−ｙａｗ基準値」である場合（Ｓ４２９：Ｙｅｓ）、プレス状態を「プレスされていない」に設定し（Ｓ４３０）、アクション種別を「開放」に設定する（Ｓ４３１）。なお、カーソルアシスト部２４は、Ｓ４２９において、「現在のｙａｗ値＞プレス判定閾値−ｙａｗ基準値」ではない場合（Ｓ４２９：Ｎｏ）、Ｓ４３０からＳ４３１を実行することなく、Ｓ４３２を実行する。
【０１１８】
その後、カーソルアシスト部２４は、プレス状態が「プレスされていない」である場合（Ｓ４３２：Ｙｅｓ）、前回のｙａｗ値がクリック判定の条件を満たすか否かを判定する（Ｓ４３３）。例えば、カーソルアシスト部２４は、「前回のｙａｗ値＜ｙａｗ基準値＋ｙａｗ基準値変更判定閾値、かつ、前回のｙａｗ値＞ｙａｗ基準値−ｙａｗ基準値変更判定閾値」である場合、クリック判定の条件を満たすと判定する。
【０１１９】
ここで、カーソルアシスト部２４は、前回のｙａｗ値がクリック判定の条件を満たす場合（Ｓ４３３：Ｙｅｓ）、現在のｙａｗ値が左クリック判定の条件を満たすか否かを判定する（Ｓ４３４）。例えば、カーソルアシスト部２４は、「現在のｙａｗ値＞ｙａｗ基準値＋ｙａｗ基準値変更判定閾値、かつ、現在のｙａｗ値−前回のｙａｗ値＞左クリック判定閾値」である場合、左クリック判定の条件を満たすと判定する。
【０１２０】
そして、カーソルアシスト部２４は、現在のｙａｗ値が左クリック判定の条件を満たす場合（Ｓ４３４：Ｙｅｓ）、アクション種別を「左クリック」に設定する（Ｓ４３５）。そして、Ｓ４３５を実行後、または、現在のｙａｗ値が左クリック判定の条件を満たさない場合（Ｓ４３４：Ｎｏ）、カーソルアシスト部２４は、現在のｙａｗ値が右クリック判定の条件を満たすか否かを判定する（Ｓ４３６）。例えば、カーソルアシスト部２４は、「現在のｙａｗ値＜ｙａｗ基準値−ｙａｗ基準値変更判定閾値、かつ、前回のｙａｗ値−現在のｙａｗ値＞右クリック判定閾値」である場合、右クリック判定の条件を満たすと判定する。
【０１２１】
ここで、カーソルアシスト部２４は、右クリック判定の条件を満たす場合（Ｓ４３６：Ｙｅｓ）、アクション種別を「右クリック」に設定する（Ｓ４３７）。
【０１２２】
そして、カーソルアシスト部２４は、Ｓ４３７を実行した後、または、現在のｙａｗ値が右クリック判定の条件を満たさない場合（Ｓ４３６：Ｎｏ）、または、プレス状態が「プレスされていない」ではない場合（Ｓ４３２：Ｎｏ）、または、前回のｙａｗ値がクリック判定の条件を満たさない場合（Ｓ４３３：Ｎｏ）、アクション種別に「なし」が設定されているか否かを判定する（Ｓ４３８）。
【０１２３】
ここで、カーソルアシスト部２４は、アクション種別に「なし」が設定されている場合（Ｓ４３８：Ｎｏ）、処理を終了する。一方、カーソルアシスト部２４は、アクション種別に「なし」が設定されていない場合（Ｓ４３８：Ｙｅｓ）、ｒｏｌｌ基準値からの変位とｐｉｔｃｈ基準値からの変位とプレス状態とを、リスナー登録されている座標計算部２５に通知する（Ｓ４３９）。
【０１２４】
［具体例］
次に、図１３から図１７を用いて、携帯端末１０の傾きを利用したカーソル操作について説明する。
【０１２５】
（ｒｏｌｌ変位によるカーソル移動）
図１３は、ｒｏｌｌ方向の変位によるカーソル移動を説明する図である。なお、図１３に示す点線は、傾き基準位置でのカーソル位置を示すための説明用の補助線である。図１３に示すように、携帯端末１０は、ｒｏｌｌ基準値を設定した状態（図１３のａ）から、ｒｏｌｌ方向への変位が閾値未満の場合、カーソルを移動させない（図１３のｂ）。
【０１２６】
一方で、携帯端末１０は、ｒｏｌｌ基準値を設定した状態（図１３のａ）から、ｒｏｌｌ方向への小さい変位を検出した場合、カーソルをｘ方向に小さく移動させる（図１３のｃ）。また、携帯端末１０は、ｒｏｌｌ基準値を設定した状態（図１３のａ）から、ｒｏｌｌ方向への大きい変位を検出した場合、カーソルをｘ方向に大きく移動させる（図１３のｄ）。このように、実施例１にかかる携帯端末１０は、カーソルをｘ方向に移動させて（ａ）の状態から（ｄ）の状態にするときに、一度に大きく変位させなくても、（ｂ）から（ｃ）を繰り返すことで実現することができる。なお、変位の大小は閾値によって判定することができる。
【０１２７】
（ｐｉｔｃｈ変位によるカーソル移動）
図１４は、ｐｉｔｃｈ方向の変位によるカーソル移動を説明する図である。なお、図１４に示す点線は、傾き基準位置でのカーソル位置を示すための説明用の補助線である。図１４に示すように、携帯端末１０は、ｐｉｔｃｈ基準値を設定した状態（図１４のａ）から、ｐｉｔｃｈ方向（負方向）への変位が閾値未満の場合、カーソルを移動させない（図１４のｂ）。
【０１２８】
一方で、携帯端末１０は、ｐｉｔｃｈ基準値を設定した状態（図１４のａ）から、ｐｉｔｃｈ方向（負方向）への小さい変位を検出した場合、カーソルをｙ軸の負方向に小さく移動させる（図１４のｃ）。また、携帯端末１０は、ｐｉｔｃｈ基準値を設定した状態（図１４のａ）から、ｐｉｔｃｈ方向（負方向）へ大きい変位を検出した場合、カーソルをｙ軸の負方向に大きく移動させる（図１４のｄ）。このように、実施例１にかかる携帯端末１０は、カーソルをｙ軸方向に移動させて（ａ）の状態から（ｄ）の状態にするときに、一度に大きく変位させなくても、（ｂ）から（ｃ）を繰り返すことで実現することができる。なお、変位の大小は閾値によって判定することができる。
【０１２９】
（クリックイベント）
図１５は、ｙａｗ方向の変位によるクリックイベントを説明する図である。なお、図１５に示す点線は、傾き基準位置でのカーソル位置を示すための説明用の補助線である。図１５に示すように、携帯端末１０は、ｙａｗ基準値を設定した状態から、ｙａｗ方向への変位が閾値以上の場合、カーソル位置のオブジェクトに対してクリックイベントを発生させる。ここでは、携帯端末１０は、ｙａｗ正方向への変位であることから、左クリックのイベントを発生させる。
【０１３０】
（プレス状態）
図１６は、プレス状態を説明する図である。なお、図１６に示す点線は、傾き基準位置でのカーソル位置を示すための説明用の補助線である。図１６に示すように、携帯端末１０は、傾き基準値を設定した、プレスされていない状態である非プレス状態（図１６のａ）から、ｙａｗ負方向への変位が閾値以上の場合、プレスされている状態であるプレス状態に遷移してカーソル位置のオブジェクト（ここでは、カーソル下の矩形領域）を選択状態とする（図１６のｂ）。
【０１３１】
続いて、携帯端末１０は、ｒｏｌｌ負方向の変位が閾値以上である場合、選択中のオブジェクトをｘ軸の負方向へ移動させ、ｐｉｔｃｈ負方向の変位が閾値以上である場合、プレスされている状態（プレス状態）を維持して、選択中のオブジェクトをｙ軸の負方向へ移動させる（図１６のｃ）。その後、携帯端末１０は、ｙａｗの値が基準位置まで戻ると、プレスされていない状態（非プレス状態）に遷移してカーソル位置のオブジェクトを非選択状態とする（図１６のｄ）。そして、携帯端末１０は、ｐｉｔｃｈ値およびｒｏｌｌ値のそれぞれが基準値まで戻ると、端末の傾きおよびカーソル位置も元の位置に戻る（図１６のｅ）。
【０１３２】
（カーソル有効／無効）
図１７は、カーソルの有効と無効を説明する図である。なお、図１７に示す点線は、傾き基準位置でのカーソル位置を示すための説明用の補助線である。図１７に示すように、携帯端末１０は、起動初期状態では傾きカーソルを無効状態とし、この無効状態からｚ軸の負方向の加速度が閾値以上変化した場合、傾きカーソルを有効状態に遷移させる。その後は、傾きカーソル（カーソル）を用いた上記処理が実行される。また、携帯端末１０は、この有効状態からｚ軸の負方向の加速度が閾値以上変化した場合、傾きカーソルを無効状態に遷移させる。
【０１３３】
［効果］
上述したように、実施例１に係る携帯端末１０は、閾値以下の傾き変位を無視しているので、手振れによる誤操作が発生しにくく、カーソルを移動する場合に、小刻みに、端末を指定方向に傾けて戻すことを繰り返すことでできる。この結果、携帯端末１０は、カーソル移動中もアクション実行時も、比較的に画面と正対しやすく、画面の座標系の切り替えを防ぐことができる。
【０１３４】
例えば、基準値の変更に関し、携帯端末１０は、ｒｏｌｌ、ｐｉｔｃｈ、ｙａｗの各傾き基準値を随時変更可能とするために、各傾きの値の履歴をキュー上限サイズで保持する基準値変更判定用キューを有する。そして、携帯端末１０は、傾き変更通知が来るたびに、その通知に対する処理の冒頭で、キュー内の最大値−最小値が基準値変更判定閾値の２倍以内に収まっていれば、新たに、キュー内の平均値を傾きの基準値とする補正を行う。
【０１３５】
その後、携帯端末１０は、傾きセンサーの感度に応じて、キュー上限サイズと閾値を適切に設定することで古い記録が無視され、変動が少なくなった直近の傾きを新たな基準値として利用することができる。このように、携帯端末１０は、傾き変更通知のループ処理内の冒頭でキューを更新しながら条件が成立した場合にのみ基準値変更を行うので、適切な基準値設定を行うことができる。
【０１３６】
また、変位の測定に関し、携帯端末１０は、ｒｏｌｌ値のｒｏｌｌ基準値からの増減分、ｐｉｔｃｈ値のｐｉｔｃｈ基準値からの増減分を変位として計算する。そして、携帯端末１０は、有効な変位があった場合、アクション種別に「移動」をセットする。
【０１３７】
ただし、携帯端末１０は、意図しない手振れによる傾き変化を無視するために、基準値からの変位が基準値変更判定閾値以下の場合は、傾き変化を無視する。また、携帯端末１０は、ｒｏｌｌ値またはｐｉｔｃｈ値について、基準値からの変位が各基準値変更判定閾値外までに達した後に、端末の向きを基準値の方向に戻す場合は、傾き変化を無視する。これは、現在位置から離れたオブジェクトをポイントしようと端末を傾けた後、端末を正面に向き直したときに、カーソルが元の位置に戻ってしまわないようにするためである。
【０１３８】
このように、携帯端末１０は、カーソルを大きく移動させる場合にも、小刻みに、端末を指定方向に傾けて戻すことを繰り返すことでできるので、カーソル移動中も常に画面と正対できる。
【０１３９】
また、プレスに関し、携帯端末１０は、プレス状態が「プレスされていない」の時に、ｙａｗ値がプレス判定閾値以上の幅で下回っていた場合、プレス状態開始と判定し、プレス状態を「プレスされている」に更新し、この時のｙａｗ基準値をプレス開始時基準値として保存する。また、携帯端末１０は、プレス状態が「プレスされている」の時に、ｙａｗ値が、プレス開始時基準値からｙａｗ基準値変更判定閾値以内になった場合、開放されたと判定し、プレス状態を「プレスされていない」に更新する。
【０１４０】
ここで、開放判定に、ｙａｗ基準値でなく、プレス開始時基準値を用いているのは、プレス状態でカーソル移動しているときに、ｙａｗ基準値が変化してもよいようにするためである。ｙａｗ値が一定の範囲以内である間はプレス状態と判定されるので、無理な位置で腕を固定する必要もない。そして、携帯端末１０は、プレス状態に変化があった場合、アクション種別に「プレス」または「開放」をセットする。
【０１４１】
また、クリック判定に関し、携帯端末１０は、前回のｙａｗ値から今回のｙａｗ値への増分が左クリック判定閾値を超えている場合に、左クリックと判定し、前回のｙａｗ値から今回のｙａｗ値への減分が右クリック判定閾値を超えている場合に、右クリックと判定する。ただし、携帯端末１０は、プレス状態が「プレスされている」の場合、前回のｙａｗ値が基準値からｙａｗ基準値変更判定閾値までの範囲外である場合、今回のｙａｗ値が基準値からｙａｗ基準値変更判定閾値までの範囲内である場合、クリック判定を行わない。これは、クリックが誤って連続発生するのを防ぐためである。
【０１４２】
本実施例では、向かって左旋回（ｚ軸正の向きについて右回転：ｙａｗ値増加）に左クリックを割り当て、向かって右旋回（ｚ軸正の向きについて左回転：ｙａｗ値減少）に右クリックを割り当てている。この割り当ては、右利きや左利き、あるいは、個人の使い勝手により、割り当てを逆にできるようにしても良い。
【０１４３】
また、通知処理に関し、カーソルアシスト部２４は、アクション種別が「なし」でない場合、リスナー情報に登録された座標計算部２５に対して、ｒｏｌｌ基準値からの変位とｐｉｔｃｈ基準値からの変位とプレス状態、アクション種別を送信する。なお、アクション種別「移動」が、左クリック、右クリック、プレス、開放で上書きされる可能性があるが、リスナー側で、変位が０でない場合は移動もあったと判定できることから、上書きされても構わない。しかし、移動と他のアクションをビット論理和にして通知することもできる。
【実施例２】
【０１４４】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【０１４５】
［ｚ方向の加速度］
携帯端末１０は、ｚ方向の加速度基準値の変更については、ｒｏｌｌ値等の基準値変更の場合と同様の手法で処理することができる。例えば、加速度監視部２３は、前回のｚ方向の加速度値がｚ方向の加速度基準値から基準値変更判定閾値以内であり、今回のｚ方向の加速度値がｚ方向の加速度基準値から基準値変更判定閾値を引いたもの以下であり、前回のｚ方向加速度値から今回のｚ方向加速度値への減分が傾きカーソル有効状態変更閾値以下の場合に、処理実行部２６に傾きカーソル有効状態変更要求を送信する。
【０１４６】
［組み合わせ］
上述した処理では、ｙａｗ値を用いたプレスとｐｉｔｃｈ値を用いたオブジェクトの移動とを組み合わせた例を説明したが、これに限定されるものではない。例えば、ｙａｗ値を用いたプレスとｒｏｌｌ値を用いたオブジェクトの移動とを組み合わせることもでき、任意の傾きを組み合わせることができる。また、右クリックの判定と左クリックの判定は、利き手やユーザの設定などによって、ｘ軸の負方向を右クリックに割当ててもよく、左クリックに割当ててもよく、任意に設定変更することができる。
【０１４７】
［単位］
ｐｉｔｃｈ等の単位や値についての一例を例示する。例えば、ｐｉｔｃｈ値は、−１８０度から＋１８０度の範囲であり、ｒｏｌｌ値は、−９０度から＋９０度の範囲であり、ｙａｗ値は、０度から３６０度の範囲である。
【０１４８】
［閾値］
各基準値変更判定閾値の一例を例示する。なお、各閾値は、端末の持ち方等によって、適正値に適宜変更することができる。例えば、ｐｉｔｃｈ基準値変更判定閾値としては０．３度を採用でき、ｒｏｌｌ基準値変更判定閾値としては０．３度を採用でき、ｙａｗ基準値変更判定閾値としては０．２度を採用できる。また、ｙａｗプレス判定閾値としては１０．０度を採用でき、ｙａｗ左クリック判定閾値としては６．０度を採用でき、ｙａｗ右クリック判定閾値としては６．０度を採用できる。
【０１４９】
［プログラム］
携帯端末１０は、プログラムを読み出して実行することで傾き操作方法を実行する情報処理装置として動作する。つまり、携帯端末１０は、加速度検出部２１、傾き検出部２２、加速度監視部２３、カーソルアシスト部２４、座標計算部２５、処理実行部２６と同様の機能を実行するプログラムを実行する。この結果、携帯端末１０は、加速度検出部２１、傾き検出部２２、加速度監視部２３、カーソルアシスト部２４、座標計算部２５、処理実行部２６と同様の機能を実行するプロセスを実行することができる。なお、この他の実施例でいうプログラムは、携帯端末１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【０１５０】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ（Magneto−Optical  disk）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【０１５１】
［システム］
また、図３に示した各装置の各構成は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、任意の単位で分散または統合して構成することができる。例えば、座標計算部２５と処理実行部２６を統合することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１５２】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【符号の説明】
【０１５３】
１０  携帯端末
１１  通信部
１２  記憶部
１３  設定ファイル
２０  制御部
２１  加速度検出部
２２  傾き検出部
２３  加速度監視部
２４  カーソルアシスト部
２５  座標計算部
２６  処理実行部
【図１】
2018041327.tif 000003
【図２】
2018041327.tif 000004
【図３】
2018041327.tif 000005
【図４Ａ】
2018041327.tif 000006
【図４Ｂ】
2018041327.tif 000007
【図４Ｃ】
2018041327.tif 000008
【図５】
2018041327.tif 000009
【図６】
2018041327.tif 000010
【図７】
2018041327.tif 000011
【図８】
2018041327.tif 000012
【図９】
2018041327.tif 000013
【図１０】
2018041327.tif 000014
【図１１】
2018041327.tif 000015
【図１２】
2018041327.tif 000016
【図１３】
2018041327.tif 000017
【図１４】
2018041327.tif 000018
【図１５】
2018041327.tif 000019
【図１６】
2018041327.tif 000020
【図１７】
2018041327.tif 000021