(57)【特許請求の範囲】
【請求項１】
入力装置に対する操作に応じて操作指示を判別する情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
前記入力装置に対する操作に基づく入力値を取得する取得手段と、
前記入力値が所定の範囲である判別範囲内の値である場合と前記判別範囲外の値である場合とで判別結果が異なるように、前記入力装置に対する操作による操作指示の有無を判別する操作指示判別手段と、
前記入力値が前記判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように前記判別範囲の大きさを変化させる範囲設定手段として前記コンピュータを機能させる、情報処理プログラム。
【請求項２】
前記範囲設定手段は、予め定められた所定の設定範囲を含むように前記判別範囲を設定する、請求項１に記載の情報処理プログラム。
【請求項３】
前記設定範囲は、前記入力装置に対する操作が行われていない場合における入力値を含む、請求項２に記載の情報処理プログラム。
【請求項４】
前記入力装置は、ユーザによって操作され、操作が行われない場合に所定の状態となる可動部材を有し、
前記取得手段は、前記所定の状態を基準とした前記可動部材の位置および／または姿勢によって決まる入力値を取得する、請求項１から請求項３のいずれか１項に記載の情報処理プログラム。
【請求項５】
前記取得手段は、２次元の入力値を取得し、
前記範囲設定手段は、前記２次元の入力値を表すための座標平面上における２次元領域を表す判別範囲を設定する、請求項１から請求項４のいずれか１項に記載の情報処理プログラム。
【請求項６】
前記範囲設定手段は、前記入力装置に対する操作が行われていない場合における入力値の位置を中心とした、前記座標平面上における円形領域として前記判別範囲を設定する、請求項５に記載の情報処理プログラム。
【請求項７】
前記範囲設定手段は、前記円形領域の中心位置から前記入力値の位置への方向が所定の角度よりも変化する場合、判別範囲を縮小するように変化させる、請求項６に記載の情報処理プログラム。
【請求項８】
前記範囲設定手段は、前記入力値が前記判別範囲の境界から離れる方向に変化した場合、入力値の変化方向に応じた方向へ中心位置が移動する円形領域となるように前記判別範囲を設定する、請求項５に記載の情報処理プログラム。
【請求項９】
前記範囲設定手段は、
前記入力値の位置が基準点から離れる方向に変化した場合、変化後の入力値の位置に近づくように変化する基準点を設定する基準点設定手段と、
前記基準点が前記判別範囲の境界上となるように前記判別範囲を決定する範囲決定手段とを含む、請求項５、請求項６または請求項８に記載の情報処理プログラム。
【請求項１０】
前記範囲設定手段は、前記基準点の位置に近づく方向に前記入力値が変化した場合、前記基準点の位置を維持する、請求項９に記載の情報処理プログラム。
【請求項１１】
前記範囲設定手段は、前記判別範囲の境界から離れる方向に前記入力値が変化した場合、当該境界が変化後の入力値の位置から所定距離だけ離れた位置となるように前記判別範囲を設定する、請求項１から請求項８のいずれか１項に記載の情報処理プログラム。
【請求項１２】
前記範囲設定手段は、前記判別範囲の境界に近づく方向に前記入力値が変化した場合、前記判別範囲を維持する、請求項１から請求項８、および、請求項１１のいずれか１項に記載の情報処理プログラム。
【請求項１３】
前記操作指示判別手段において前記操作指示が有ると判別された場合、２次元の入力値を表すための座標平面上における所定の基準位置に対する入力値の位置の方向を算出する方向算出手段として前記コンピュータをさらに機能させる、請求項１から請求項１２のいずれか１項に記載の情報処理プログラム。
【請求項１４】
前記範囲設定手段は、前記判別範囲外にある前記入力値が当該判別範囲の境界から離れる方向に変化した場合、範囲が広がるように前記判別範囲を設定する、請求項１から請求項１３のいずれか１項に記載の情報処理プログラム。
【請求項１５】
前記範囲設定手段は、前記入力値が取り得る範囲の境界から少なくとも所定距離だけ離れた範囲を上限として前記判別範囲を設定する、請求項１４に記載の情報処理プログラム。
【請求項１６】
前記範囲設定手段は、前記判別範囲内にある前記入力値が当該判別範囲の境界から離れる方向に変化した場合、範囲が狭まるように前記判別範囲を設定する、請求項１から請求項１５のいずれか１項に記載の情報処理プログラム。
【請求項１７】
前記範囲設定手段は、前記入力装置に対する操作が行われていない場合における入力値を含む範囲を下限として前記判別範囲を設定する、請求項１６に記載の情報処理プログラム。
【請求項１８】
前記操作指示判別手段は、前記入力値が前記判別範囲内の値である場合に前記操作指示が無いと判別し、前記入力値が前記判別範囲外の値である場合に前記操作指示が有ると判別する、請求項１から請求項１７のいずれか１項に記載の情報処理プログラム。
【請求項１９】
入力装置に対する操作に応じて操作指示を判別する情報処理装置であって、
前記入力装置に対する操作に基づく入力値を取得する取得部と、
前記入力値が所定の範囲である判別範囲内の値である場合と前記判別範囲外の値である場合とで判別結果が異なるように、前記入力装置に対する操作による操作指示の有無を判別する操作指示判別部と、
前記入力値が前記判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように前記判別範囲の大きさを変化させる範囲設定部とを備える、情報処理装置。
【請求項２０】
入力装置に対する操作に応じて操作指示を判別する情報処理システムであって、
前記入力装置を含み、入力装置に対する操作に基づく入力値を出力する入力部と、
前記入力値が所定の範囲である判別範囲内の値である場合と前記判別範囲外の値である場合とで判別結果が異なるように、前記入力装置に対する操作による操作指示の有無を判別する操作指示判別部と、
前記入力値が前記判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように前記判別範囲の大きさを変化させる範囲設定部とを備える、情報処理システム。
【請求項２１】
入力装置に対する操作に応じて操作指示を判別する情報処理装置によって実行される指示判別方法であって、
前記入力装置に対する操作に基づく入力値を取得し、
前記入力値が所定の範囲である判別範囲内の値である場合と前記判別範囲外の値である場合とで判別結果が異なるように、前記入力装置に対する操作による操作指示の有無を判別し、
前記入力値が前記判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように前記判別範囲の大きさを変化させる、指示判別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力装置に対するアナログ入力に基づいて操作指示の有無を判別する情報処理プログラム、情報処理装置、情報処理システム、および指示判別方法に関する。
【背景技術】
【０００２】
従来、例えばアナログスティック等、アナログ入力が可能な入力装置がある。また、アナログ入力が可能な入力装置を用いてオン／オフの操作指示を行う技術がある。例えば、アナログスティックにおいて、スティックの傾斜角度が所定角度以上である場合にオン（操作指示が有る）と判断し、傾斜角度が所定角度未満である場合にオフ（操作指示が無い）と判断する方法が考えられている（例えば、特許文献１の段落０００８参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０９−２４４８０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記方法においては、ユーザがオンとオフとを切り替えるためにスティックを大きく動かさなければならない場合があり、オンとオフとの間の切り替えの応答性が悪い場合があった。例えば、ある方向にスティックを限界まで傾倒していた場合において、操作指示をオフにするためには上記所定角度までスティックを戻さなければならない。このとき、スティックを戻すまでの時間は操作指示がオンとなるため、オンからオフへ切り替える際の応答性が悪くなっていた。
【０００５】
それ故、本発明の目的は、入力装置を用いて操作指示を行う場合に、操作指示の有無を応答性良く切り替えることができる情報処理プログラム、情報処理装置、情報処理システム、および指示判別方法を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の（１）〜（１８）の構成を採用した。
【０００７】
（１）
本発明の一例は、入力装置に対する操作に応じて操作指示を判別する情報処理装置のコンピュータにおいて実行される情報処理プログラムである。情報処理プログラムは、取得手段と、操作指示判別手段と、範囲設定手段としてコンピュータを機能させる。
取得手段は、入力装置に対する操作に基づく入力値を取得する。操作指示判別手段は、入力値が所定の範囲である判別範囲内の値である場合と判別範囲外の値である場合とで判別結果が異なるように、入力装置に対する操作による操作指示の有無を判別する。範囲設定手段は、入力値が判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように判別範囲の大きさを変化させる。
【０００８】
上記（１）の構成によれば、入力値が判別範囲の境界から離れる場合、判別範囲は入力値の方へ近づくように変化する。これによれば、入力値と判別範囲との距離が近くなるので、入力値を判別範囲に操作指示の有無を切り替えるために必要な入力値の変化量（移動量）を小さくすることができる。つまり、ユーザは、入力値を判別範囲の境界の方へ少し戻すことで容易に操作指示の有無を切り替えることができる。このように、上記（１）の構成によれば、入力装置を用いて操作指示を行う場合に、操作指示の有無を応答性良く切り替えることができる。
【０００９】
（２）
範囲設定手段は、予め定められた所定の設定範囲を含むように判別範囲を設定してもよい。
【００１０】
上記（２）の構成によれば、入力値に応じて判別範囲がどのように変化しても所定の設定範囲が判別範囲に含まれることとなる。したがって、ユーザは、入力位置を設定範囲内に移動させる操作によって、操作指示が無い状態へと操作指示を確実に切り替えることができる。
【００１１】
（３）
設定範囲は、入力装置に対する操作が行われていない場合における入力値を含んでいてもよい。
【００１２】
上記（３）の構成によれば、入力装置に対して操作が行われていない場合における入力値が設定範囲内に含まれるように設定される。したがって、ユーザは、入力装置を操作しないことで（例えば、スティックから手を離すことで）、操作指示が無い状態へと操作指示を容易に切り替えることができる。
【００１３】
（４）
入力装置は、ユーザによって操作され、操作が行われない場合に所定の状態となる可動部材を有していてもよい。このとき、取得手段は、所定の状態を基準とした可動部材の位置および／または姿勢によって決まる入力値を取得する。
【００１４】
上記（４）の構成によれば、ユーザが可動部材を動かすことによって操作入力を行うことが可能な入力装置が用いられる。このような入力装置においては、操作の際に可動部材を物理的に移動させる必要となるので、仮に判別範囲が固定されているとすれば、操作指示が有りと判別される状態から無しと判別される状態へと大きく可動部材を移動させる必要が生じるおそれがある。これに対して、本発明によれば、入力値に応じて判別範囲が変化するので、上記のような入力装置において、操作指示の有無を切り替えるために可動部材を移動させる距離を小さくすることができる。すなわち、ユーザは、操作指示の有無の切り替えを容易に行うことができる。
【００１５】
（５）
取得手段は、２次元の入力値を取得してもよい。このとき、範囲設定手段は、２次元の入力値を表すための座標平面上における２次元領域を表す判別範囲を設定する。
【００１６】
上記（５）の構成によれば、入力値が２次元であっても、入力値が判別範囲に含まれるか否かの判別処理を入力値の各成分毎に行うことなく、１回で行うことができる。したがって、判別処理を容易に行うことができる。また、上記（５）の構成を下記（１３）の構成と組み合わせる場合には、２次元領域である判別範囲を用いることで、指示方向を正確に算出することができる。
【００１７】
（６）
範囲設定手段は、入力装置に対する操作が行われていない場合における入力値の位置を中心とした、座標平面上における円形領域として判別範囲を設定してもよい。
【００１８】
上記（６）の構成によれば、判別範囲を半径の大きさを用いて容易に管理することができる。また、入力値が判別範囲に含まれるか否かの判別処理を、入力装置に対する操作が行われていない場合における入力値の位置から入力値までの距離と判別範囲の半径の大きさとの大小比較によって行うことができ、判別処理の計算が簡易になる。
【００１９】
（７）
範囲設定手段は、円形領域の中心位置から入力値の位置への方向が所定の角度よりも変化する場合、判別範囲を縮小するように変化させてもよい。
【００２０】
上記（７）の構成によれば、円形領域の中心位置から入力値の位置への方向（入力方向）が大きく変化する場合、判別範囲は縮小される。ここで、入力方向が大きく変化する場合において、仮に判別範囲が変化しないとすれば、変化後の入力値が判別範囲内となるので、操作指示が無しと誤って判別されてしまうおそれがある。これに対して、上記（７）の構成によれば、上記の場合に判別範囲が縮小するので、上記のような誤判別を防止することができ、操作指示の有無をより正確に判別することができる。
【００２１】
（８）
範囲設定手段は、入力値が判別範囲の境界から離れる方向に変化した場合、入力値の変化方向に応じた方向へ中心位置が移動する円形領域となるように判別範囲を設定してもよい。
【００２２】
上記（８）の構成によれば、判別範囲は、入力値の変化方向に応じた方向へ中心位置が移動するように設定される。これによれば、判別範囲は、上記方向を中心に拡大されるので、他の方向については拡大の度合いが小さくなる（図１３参照）。これによれば、入力方向が大きく変化した場合に、変化後の入力位置が判別範囲に含まれる可能性が低くなる。したがって、上記（８）の構成によれば、入力方向が大きく変化する場合において、変化後の入力位置が判別範囲に含まれることによって、操作指示が無しと誤って判別される可能性を軽減することができる。
【００２３】
（９）
範囲設定手段は、基準点設定手段と、範囲決定手段とを含んでいてもよい。基準点設定手段は、入力値の位置が基準点から離れる方向に変化した場合、変化後の入力値の位置に近づくように変化する基準点を設定する。範囲決定手段は、基準点が境界上となるように判別範囲を決定する。
【００２４】
上記（９）の構成によれば、基準点は、入力値から所定の範囲内となるように入力値に応じて設定される。したがって、入力方向が大きく変化した場合には判別範囲が縮小されることとなる（図１６参照）。したがって、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【００２５】
（１０）
範囲設定手段は、基準点の位置に近づく方向に入力値が変化した場合、基準点の位置を維持してもよい。
【００２６】
上記（１０）の構成によれば、基準点の位置に近づく方向に入力値が変化した場合には、基準点の位置は変化しない。そのため、この場合には判別範囲も変化しないので、ユーザは、入力値を判別範囲の境界へ近づけるように操作することで、操作指示の有無を確実に切り替えることができる。
【００２７】
（１１）
範囲設定手段は、判別範囲の境界から離れる方向に入力値が変化した場合、当該境界が変化後の入力値の位置から所定距離だけ離れた位置となるように判別範囲を設定してもよい。
【００２８】
上記（１１）の構成によれば、入力値の位置から一定距離内に判別範囲の境界が位置するように、判別範囲を容易に制御することができる。つまり、ユーザは、入力値を判別範囲に近づく方へ少なくとも上記一定距離だけ移動させることで、操作指示の有無を確実に切り替えることができる。
【００２９】
（１２）
範囲設定手段は、判別範囲の境界に近づく方向に入力値が変化した場合、判別範囲を維持する。
【００３０】
上記（１２）の構成によれば、判別範囲の境界に近づく方向に入力値が変化した場合には、判別範囲は変化しない。そのため、ユーザは、入力値を判別範囲の境界へ近づけるように操作することで、操作指示の有無を確実に切り替えることができる。
【００３１】
（１３）
情報処理プログラムは、方向算出手段としてコンピュータをさらに機能させてもよい。方向算出手段は、操作指示判別手段において操作指示が有ると判別された場合、２次元の入力値を表すための座標平面上における所定の基準位置に対する入力値の位置の方向を算出する。
【００３２】
上記（１３）の構成によれば、ユーザは入力装置を用いて方向を指示することができ、入力装置を用いて方向を指示する操作の応答性を向上することができる。
【００３３】
（１４）
範囲設定手段は、判別範囲外にある入力値が当該判別範囲の境界から離れる方向に変化した場合、範囲が広がるように判別範囲を設定してもよい。
【００３４】
上記（１４）の構成によれば、判別範囲が拡大することで、判別範囲の境界を入力値に近づけることができる。これによって、ユーザは、入力値を判別範囲の方へ少し戻すことで容易に操作指示を無しにすることができ、操作指示を有りから無しへと切り替える際の応答性を向上することができる。
【００３５】
（１５）
範囲設定手段は、入力値が取り得る範囲の境界から少なくとも所定距離だけ離れた範囲を上限として判別範囲を設定してもよい。
【００３６】
上記（１５）の構成によれば、判別範囲が大きくなりすぎることがないので、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【００３７】
（１６）
範囲設定手段は、判別範囲内にある入力値が当該判別範囲の境界から離れる方向に変化した場合、範囲が狭まるように判別範囲を設定してもよい。
【００３８】
上記（１６）の構成によれば、判別範囲を縮小することで、判別範囲の境界を入力値に近づけることができる。これによって、ユーザは、入力値を判別範囲の外側の方へ少し移動させることで容易に操作指示を有りにすることができ、操作指示を無しから有りへと切り替える際の応答性を向上することができる。また、上記（１４）の構成と（１６）の構成とを組み合わせる場合には、入力値が判別範囲内にある場合と入力値が判別範囲外にある場合との両方の場合において、判別範囲の境界を入力値に近づけることができる。これによって、操作指示の有無を相互に切り替える際の応答性を向上することができる。
【００３９】
（１７）
範囲設定手段は、入力装置に対する操作が行われていない場合における入力値を含む範囲を下限として判別範囲を設定する。
【００４０】
上記（１７）の構成によれば、判別範囲が小さくなりすぎることがないので、ユーザの意図に反して操作指示が有りと判別されることを防止でき、操作指示を正確に判別することができる。
【００４１】
（１８）
操作指示判別手段は、入力値が判別範囲内の値である場合、操作指示が無いと判別し、入力値が判別範囲外の値である場合、当該操作指示が有ると判別してもよい。
【００４２】
上記（１８）の構成によれば、入力装置に対する操作が行われない場合に入力値がある基準値となり、操作が行われた場合に入力値が当該基準値から離れた値となるような入力装置において、操作指示の有無を応答性良く切り替えることができる。
【００４３】
なお、本発明の別の一例は、上記（１）〜（１８）の情報処理プログラムを実行することによって実現される各手段と同等の手段を備える情報処理装置あるいは情報処理システムであってもよいし、上記（１）〜（１８）において実行される指示判別方法（操作指示の有無を判別する方法）であってもよい。
【発明の効果】
【００４４】
本発明によれば、操作指示の有無を判別するための判別範囲の境界を入力値の変化に応じて入力値に近づけるように変化させることによって、入力装置を用いて操作指示を行う場合における操作指示の有無を応答性良く切り替えることができる。
【図面の簡単な説明】
【００４５】
【図１】本実施形態に係る情報処理システムの一例を示すブロック図
【図２】本実施形態における入力値を表すための２次元座標系（座標平面）の一例を示す図
【図３】図２に示す位置から判別範囲１２の境界から離れる方向へ入力位置Ｐ１が変化した場合における座標平面の一例を示す図
【図４】図３に示す位置から判別範囲１２の境界に近づく方向へ入力位置Ｐ１が変化した場合における座標平面の一例を示す図
【図５】図３に示す位置から判別範囲１２の境界を超えて、判別範囲１２内において境界から離れる方向へ入力位置Ｐ１が変化した場合における座標平面の一例を示す図
【図６】制御部３のメモリに記憶されるデータの一例を示す図
【図７】制御部３において実行される情報処理の流れの一例を示すメインフローチャート
【図８】図７に示す範囲設定処理（ステップＳ２）の詳細な流れの一例を示すフローチャート
【図９】入力値が下限範囲内に含まれる場合における座標平面の一例を示す図
【図１０】入力方向が変化した場合における座標平面の一例を示す図
【図１１】入力値が最大となる場合における座標平面の一例を示す図
【図１２】座標平面上において指示方向を算出するために設定される領域の一例を示す図
【図１３】判別領域の中心位置が移動するように設定される場合における座標平面の一例を示す図
【図１４】基準点に基づいて判別範囲が設定される場合における座標平面の一例を示す図
【図１５】基準点に基づいて判別範囲が設定される場合における座標平面の一例を示す図
【図１６】入力位置Ｐ１から入力位置Ｐ２へと入力値が変化した場合における座標平面の一例を示す図
【図１７】本変形例における範囲設定処理の一例を示すフローチャート
【図１８】入力値が下限範囲内に含まれる場合における座標平面の一例を示す図
【図１９】基準点が下限範囲内に含まれる場合における座標平面の一例を示す図
【図２０】基準点が上限範囲内に含まれる場合における座標平面の一例を示す図
【発明を実施するための形態】
【００４６】
［１．情報処理システムの構成］
以下、本実施形態の一例に係る情報処理プログラム、情報処理システム（情報処理装置）、および指示判別方法について説明する。図１は、本実施形態に係る情報処理システムの一例を示すブロック図である。図１において、情報処理システム１は、入力部２、制御部３、プログラム格納部４、および出力部５を備える。情報処理システム１は、上記の各部２〜５を備える単一の情報処理装置（携帯型の情報処理装置を含む）で構成されてもよい。また、情報処理システム１は、制御部３を含む情報処理装置と、制御部３以外の他の構成を含む１以上の装置とによって構成されてもよい。情報処理システム１は、入力部２に対する操作に応じて操作指示（少なくとも操作指示の有無）を判別するものである。
【００４７】
入力部２は、アナログ入力が可能な入力装置である。つまり、入力部２は、ユーザがアナログ量の入力を行うことが可能であり、入力量を検知することが可能な入力装置である。このような入力装置としては、例えば、アナログ量としてスティック部（後述する可動部材）の操作量を検知するスライドパッドまたはアナログスティックや、アナログ量として操作位置（タッチ位置）を検出するタッチパネルまたはタッチパッド等が考えられる。また、入力装置は、ユーザが把持する操作部材の位置および／または姿勢を検知することが可能な装置であってもよい。
【００４８】
本実施形態においては、入力部２は、ユーザによって操作され、操作が行われない場合（ニュートラル状態となる場合）に所定の状態（基準状態と呼ぶ）となる可動部材を有する入力装置である。すなわち、入力部２は、ユーザが可動部材を動かすことによって操作入力を行うことが可能な入力装置である。このような入力装置としては、例えば、スライドパッドあるいはアナログスティック等が考えられる。
【００４９】
入力部２は、入力部２に対する入力に基づく入力値を出力する。ここで、入力値は、ユーザによる入力（アナログ入力）の結果を表す値である。なお、ユーザによる入力が操作量あるいは操作位置といったアナログ入力である場合であっても、入力値自体は、アナログ値（アナログデータ）であってもよいし、デジタル値（デジタルデータ）であってもよい。本実施形態のように、入力部２は上記可動部材を有する入力装置である場合、入力値は、上記基準状態に対する可動部材の位置および／または姿勢（基準状態からの可動部材の変化量）によって決まる値である。例えば、入力部２がスライド可能な可動部材を有する入力装置（スライドパッド等）である場合、入力値は、基準状態に対する可動部材のスライド量とスライド方向とを表すデジタル値であってもよい。
【００５０】
上記入力値は、１次元であってもよいし、２次元以上であってもよい。つまり、入力部２は、スライドパッドやタッチパネル等のように、２次元の入力が可能な入力装置であってもよいし、マウスホイールのような１次元の入力が可能な入力装置であってもよい。また、入力部２は、ユーザが把持する操作部材の位置および／または姿勢を検知する入力装置のように、３次元の入力が可能な入力装置であってもよい。また、入力部２は、上記入力値に加えて、他の入力情報を出力してもよい。例えば、入力部２がアナログ入力が可能な入力装置に加えてボタンを有する場合には、ボタンに対する操作を表す入力情報を出力してもよい。
【００５１】
制御部３は、入力部２に対する入力に基づく入力値を取得する。そして、入力値に基づいて操作指示の有無を少なくとも判別（判断）する。操作指示とは、入力部２を用いてユーザが行う指示である。つまり、「操作指示が有る」とは、入力部２を用いて何らかの指示が行われたことを意味する。「操作指示が無い」とは、入力部２を用いた指示が行われていないことを意味する。詳細は後述するが、入力部２に対して何らかの操作が行われた場合であっても、制御部３は操作指示が無いと判別することもあり得る。また、上記操作指示の具体的な内容は、どのような種類の指示であってもよい。
【００５２】
制御部３は、上記入力値に基づいて操作指示の有無を判別する情報処理を実行することができればどのような構成であってもよい。本実施形態において、制御部３は、ＣＰＵおよびメモリを有する情報処理装置である。つまり、ＣＰＵが所定の情報処理プログラムを実行することによって、制御部３における各機能が実現される。
【００５３】
プログラム格納部４は、上記情報処理プログラムを記憶（格納）する。プログラム格納部４は、制御部３がアクセス可能な記憶装置であればどのようなものであってもよい。例えば、プログラム格納部４は、制御部３を含む情報処理装置内に設けられる記憶装置であってもよいし、制御部３を含む情報処理装置に着脱自在に装着される記憶媒体であってもよい。また、プログラム格納部４は、制御部３とネットワークを介して接続される記憶装置（サーバ等）であってもよい。制御部３は情報処理プログラムの一部または全部を適宜のタイミングで読み出し、読み出された情報処理プログラムをＣＰＵが実行する。
【００５４】
出力部５は、制御部３における情報処理の結果を出力する出力装置である。すなわち、制御部３は操作指示に基づく情報処理の結果を出力部５へ出力するので、出力部５は、当該情報処理の結果を画像や音声等で出力する。出力部５は、テレビあるいはモニタ等の表示装置であってもよいし、スピーカ等の音声出力装置であってもよい。
【００５５】
［２．操作指示の判別方法の概要］
次に、図２〜図５を参照して、本実施形態における操作指示の判別方法について説明する。なお、以下では、入力部２が２次元の入力値を出力する場合について説明する。より具体的には、入力部２は上記可動部材を有する入力装置であり、可動部材を２次元的に移動させる操作に応じた２次元の入力値が出力されるものとする。また、操作指示の具体的な内容はどのような種類の指示であってもよいが、以下では、操作指示として方向の指示が行われる場合について説明する。すなわち、制御部３は、入力値に基づいて操作指示の有無を判別し、操作指示が有ると判別する場合、指示された方向（指示方向）を算出する。
【００５６】
図２は、本実施形態における入力値を表すための２次元座標系（座標平面）の一例を示す図である。ここでは、２次元座標系の横軸をｘ軸とし、縦軸をｙ軸とする。入力位置Ｐ１は、上記座標平面における入力値の位置である。また、領域１１は、入力値が取り得る範囲を表す。なお、領域１１の形状は入力装置の種類によって決まる任意の形状であるが、本実施形態においては円形である。本実施形態においては、入力値は、入力部２（可動部材）に対する操作が行われていない場合（上記基準状態である場合）に原点Ｏの値（０，０）となり、基準状態からの可動部材の移動方向および移動量を表す座標値となる。すなわち、原点Ｏに対する入力位置Ｐ１の方向は、基準状態からの可動部材の移動方向に対応し、原点Ｏから入力位置Ｐ１までの距離は、基準状態からの可動部材の移動量に対応する。
【００５７】
判別範囲１２は、操作指示の有無を判別するための範囲である。すなわち、制御部３は、入力値が判別範囲内の値である場合と判別範囲外の値である場合とで判別結果が異なるように、操作指示の有無を判別する。本実施形態においては、制御部３は、入力値が判別範囲１２内の値である場合、操作指示が無いと判別し、入力値が判別範囲１２外の値である場合、操作指示が有ると判別する。例えば図２においては、入力位置Ｐ１が判別範囲１２の外に位置するので、制御部３は操作指示が有ると判別する。なお、他の実施形態においては、入力値が判別範囲外の値である場合に操作指示が無いと判別し、入力値が判別範囲外の値である場合に操作指示が有ると判別されてもよい。また、判別範囲１２の形状は、四角形や楕円形等、どのような形状であってもよいが、本実施形態においては、判別範囲１２は円形領域であるとする。なお、図２においては、入力位置Ｐ１から境界までの距離は、後述する所定距離Ｌ１よりも短いものとする。
【００５８】
ここで、本実施形態においては、制御部３は、入力値が判別範囲１２の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように判別範囲１２の大きさを変化させる。図３は、図２に示す位置から判別範囲１２の境界から離れる方向へ入力位置Ｐ１が変化した場合における座標平面の一例を示す図である。図３においては、判別範囲１２の外側にあった入力位置Ｐ１が判別範囲１２の境界からより外側へ移動している。このとき、判別範囲１２は、境界が入力位置Ｐ１に近づくようにその大きさが変化する（図３参照）。
【００５９】
なお、判別範囲１２を変化させる具体的な方法はどのような方法であってもよい。判別範囲１２は、図３に示すように位置が変化しないように同心円上で大きさを変化させてもよいし、後述する変形例に示すように、中心位置が入力位置の変化に応じた方向へ移動するように判別範囲１２が設定されてもよい。また、判別範囲１２は、入力位置から所定距離内となるように設定されてもよいし、後述する変形例に示すように、入力位置から所定距離内となるように設定される基準点に基づいて設定されてもよい。
【００６０】
本実施形態においては、入力位置から境界までの距離が所定距離Ｌ１以内となるように判別範囲１２が設定される。すなわち、制御部３は、判別範囲１２の境界から離れる方向に入力位置が変化した場合、当該境界が変化後の入力位置から所定距離Ｌ１だけ離れた位置となるように判別範囲を設定する。例えば図３に示すように、変化後の入力位置Ｐ１から境界までの距離がＬ２（Ｌ１よりも大きい）となった場合、当該距離が所定距離Ｌ１となるように判別範囲１２の大きさが変化する。これによって、境界が入力位置Ｐ１から一定距離内となるように判別範囲１２を制御することができる。
【００６１】
図４は、図３に示す位置から判別範囲１２の境界に近づく方向へ入力位置Ｐ１が変化した場合における座標平面の一例を示す図である。本実施形態においては、図４に示すように、判別範囲１２の境界に近づく方向に入力位置Ｐ１が変化した場合には、制御部３は判別範囲１２を維持する。つまり、この場合、判別範囲１２は変化しない。これによって、入力位置Ｐ１が判別範囲１２の境界に近づいていくと境界を超え、操作指示の有無が切り替わることになる。
【００６２】
また、判別範囲１２は、範囲が拡大する方向に変化してもよいし、範囲が縮小する方向に変化してもよいし、両方の方向に変化してもよい。本実施形態においては、制御部３は、判別範囲１２が拡大する方向と縮小する方向との両方に判別範囲１２を変化させる。すなわち、制御部３は、判別範囲１２外にある入力値が当該判別範囲１２の境界から離れる方向に変化した場合、範囲が広がるように判別範囲を設定する（図３参照）。また、制御部３は、判別範囲１２内にある入力値が当該判別範囲１２の境界から離れる方向に変化した場合、範囲が狭まるように判別範囲１２を設定する。図５は、図３に示す位置から判別範囲１２の境界を超えて、判別範囲１２内において境界から離れる方向へ入力位置Ｐ１が変化した場合における座標平面の一例を示す図である。図５においては、入力位置Ｐ１が判別範囲１２内に入り、さらに、判別範囲の境界から離れる方向に変化した結果、判別範囲１２内の入力位置Ｐ１から境界までの距離Ｌ３は上記所定距離Ｌ１よりも大きくなっている。このとき、判別範囲１２は、範囲が縮小するように（入力位置から境界までの距離が所定距離Ｌ１となるように）変化する。つまり、図５に示す場合においても図３に示す場合と同様、判別範囲１２の境界が変化後の入力位置Ｐ１に近づくように判別範囲１２の大きさが変化する。なお、他の実施形態においては、制御部３は、範囲が拡大する方向、あるいは、範囲が縮小する方向のいずれか一方向にのみ判別範囲１２を変化させてもよい。
【００６３】
以上のように、本実施形態においては、入力値が判別範囲１２の境界から離れる場合、判別範囲１２は入力値の方へ近づくように変化する。これによれば、ユーザは、入力値を判別範囲１２の外側から内側へ（あるいは内側から外側へ）容易に変更することができる。例えば図３に示す場合においては、入力位置Ｐ１の移動に応じて判別範囲１２が大きくなり、図５に示す場合においては、入力位置Ｐ１の移動に応じて判別範囲１２が小さくなる。いずれの場合においても、ユーザは入力位置Ｐ１を少なくとも距離Ｌ１だけ移動させれば入力位置Ｐ１を判別範囲１２内にすることができる。したがって、ユーザは、図３に示す状態から可動部材を基準状態の方へ少し戻すだけで容易に操作指示を無しにすることができる。また、図５に示す状態から可動部材を基準状態から離れる方向へ少し移動させるだけで容易に操作指示を有りにすることができる。このように、本実施形態においては、判別範囲１２を入力値に近づけるように変化させることで、操作指示の有無を切り替える際の応答性を向上することができる。
【００６４】
［３．情報処理システムにおける処理の詳細］
以下、図６〜図１２を参照して、情報処理システム１における詳細な情報処理の一例について説明する。まず、情報処理において用いられる各種データについて説明する。図６は、制御部３のメモリに記憶されるデータの一例を示す図である。図６に示すように、制御部３のメモリには、情報処理プログラム２１、入力値データ２２、および処理用データ２３が記憶される。なお、メモリには、図６に示すデータの他、制御部３における各種の情報処理に用いられるデータや、出力部５から出力すべき画像および／または音声を生成するためのデータ（画像データや音声データ）等が記憶されてもよい。
【００６５】
情報処理プログラム２１は、制御部３のＣＰＵに実行させるためのプログラムである。本実施形態においては、ＣＰＵが情報処理プログラム２１を実行することによって後述する情報処理（図７）が実行される。情報処理プログラム２１は、任意のアプリケーションプログラム（例えばゲームプログラム）の一部として提供されてもよい。情報処理プログラム２１は、プログラム格納部４からその一部または全部が適宜のタイミングで読み込まれて制御部３のメモリに記憶され、ＣＰＵによって実行される。また、情報処理プログラム２１の一部または全部は、制御部３を有する情報処理装置内に（例えばライブラリとして）予め記憶されていてもよい。
【００６６】
入力値データ２２は、上述の入力値を表すデータである。制御部３は、入力値データ２２を入力部２から取得する。入力値データ２２の取得タイミングはどのようなタイミングであってもよい。本実施形態においては、入力部２は、ユーザによるアナログ入力の結果を繰り返し検知して入力値を生成し、制御部３は、入力値データ２２を入力部２から繰り返し（例えば所定時間間隔に１回の割合で）取得する。
【００６７】
処理用データ２３は、制御部３において実行される情報処理（図７）において用いられるデータである。処理用データ２３は、距離データ２４、下限範囲データ２５、判別範囲データ２６、基準点データ２７、上限範囲データ２８、および、指示内容データ２９を含む。なお、図６に示すデータの他、処理用データ２３は、図７に示す情報処理において用いられる各種データを含んでいてもよい。
【００６８】
距離データ２４は、入力値を表すための座標平面上における、入力値（入力位置）から判別範囲（判別範囲の境界）までの距離を表す。なお、「入力値から判別範囲までの距離」とは、どのような基準で規定されてもよい。「入力値から判別範囲までの距離」は、例えば、入力位置から判別範囲までの最短距離であってもよいし、入力位置から原点の方向へ延ばした直線と判別範囲の境界との交点から入力位置までの距離であってもよい。また、後述する基準点が設定される場合には、入力値から判別範囲までの距離は、入力位置から基準点の位置までの距離であってもよい。
【００６９】
下限範囲データ２５は、判別範囲の下限の範囲を示す所定の下限範囲を表すデータである。下限範囲は、入力値の座標平面において予め定められる範囲である。下限範囲データ２５は、どのような方法で取得されてもよいが、本実施形態においては、プログラム格納部４において情報処理プログラム２１とともに記憶され、適宜のタイミングで情報処理プログラム２１とともに読み出されて制御部３のメモリに記憶される。
【００７０】
判別範囲データ２６は、上述の判別範囲を表すデータである。判別範囲データ２６は、判別範囲を表す情報であればどのような情報を表してもよい。例えば、判別範囲が円形領域である場合には、判別範囲データ２６は判別範囲の中心位置および半径を表すものでもよい。本実施形態においては、判別範囲は原点を中心とする円領域であるので、判別範囲の半径を表すデータが判別範囲データ２６として用いられる。
【００７１】
基準点データ２７は、後述する基準点の位置を表すデータである。詳細は後述するが基準点の位置は入力値に基づいて算出される。なお、本実施形態のように基準点を用いずに判別範囲を設定する場合には、基準点データ２７はメモリに記憶されなくてもよい。
【００７２】
上限範囲データ２８は、判別範囲の上限を示す上限範囲を表すデータである。上限範囲が設定される場合、判別範囲は上限範囲を超えないように（判別範囲が上限範囲内に含まれるように）設定される。上限範囲データ２８はどのような方法で取得されてもよいが、上記下限範囲データ２５と同様に、適宜のタイミングで情報処理プログラム２１とともに読み出されて制御部３のメモリに記憶されてもよい。なお、本実施形態においては、入力値の取り得る範囲１１（図２参照）が有限であり、また、入力位置から所定距離Ｌ１以内となるように判別範囲が設定される。この場合、上限範囲を予め設定しておかなくても、判別範囲は一定の大きさ以上に大きくなることはない。したがって、本実施形態においては、上限範囲データ２８はメモリに記憶されなくてもよい。
【００７３】
指示内容データ２９は、入力部２に対する操作によってユーザが指示する内容（指示内容）を表すデータである。指示内容はどのようなものであってもよいが、本実施形態においては、操作指示が有ると判別された場合、入力値に基づいて方向を表す情報（指示方向）が指示内容として算出される。
【００７４】
次に、制御部３において実行される情報処理の詳細を、図７〜図１２を用いて説明する。図７は、制御部３において実行される情報処理の流れの一例を示すメインフローチャートである。制御部３が上記情報処理を開始するタイミングはどのようなタイミングであってもよく、例えば、ユーザの指示に応じて上記情報処理を開始してもよい。上記情報処理の実行を開始する場合、制御部３のＣＰＵは、メモリ等を初期化し、プログラム格納部４から情報処理プログラムをメモリに読み込む。そして、ＣＰＵによって当該情報処理プログラム２１の実行が開始される。図７に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【００７５】
なお、図７、図８および図１７に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、上記フローチャートの各ステップの処理を制御部３のＣＰＵが実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよい。
【００７６】
ステップＳ１において、初期処理を実行する。初期処理は、ステップＳ２以降の処理で用いる各種パラメータの初期値を設定する等の処理である。なお、本実施形態においては、予め定められた範囲を表す下限範囲データ２５が制御部３のメモリに記憶される。また、判別範囲データ２６の初期値として、下限範囲と同じ範囲を表すデータがメモリに記憶される。
【００７７】
上記ステップＳ１の次にステップＳ２の処理が実行される。以降、ステップＳ２〜Ｓ８の一連の処理からなる処理ループが所定時間に１回の割合で繰り返し実行される。
【００７８】
ステップＳ２において、ＣＰＵは、入力部２から入力値を取得する。すなわち、入力部２から出力される入力値を表すデータを取得し、入力値データ２２としてメモリに記憶する。なお、メモリには、最新の（最後に取得された）ものから順に所定個数の入力値データが記憶されてもよい。ステップＳ２の次にステップＳ３の処理が実行される。
【００７９】
ステップＳ３において、ＣＰＵは範囲設定処理を実行する。範囲設定処理は、入力値に応じて変化するように判別範囲を設定する処理である。以下、図８を参照して、範囲設定処理の詳細を説明する。
【００８０】
図８は、図７に示す範囲設定処理（ステップＳ３）の詳細な流れの一例を示すフローチャートである。本実施形態においては、判別範囲は上述の下限範囲を下限として設定される。すなわち、ステップＳ１１およびＳ１２においては、入力値が下限範囲内の値となる場合、判別範囲は下限範囲となるように設定される。以下、ステップＳ１１およびＳ１２の処理の詳細を説明する。
【００８１】
ステップＳ１１において、ＣＰＵは、入力値が下限範囲内であるか否かを判定する。下限範囲はどのように設定されてもよいが、本実施形態においては、原点を含むように設定され、より具体的には、原点を中心とした円形領域として設定される（図９参照）。なお、下限範囲は、入力装置の可動部材の機構に関する特性に基づいて設定されてもよい。例えば、スライドパッドやアナログスティック等の入力装置に関しては、いわゆる「遊びの範囲」、すなわち、可動部材に対する操作が行われていないと判断すべき入力値の範囲が設定される（推奨される）場合がある。下限範囲は、可動部材の機構に基づいて設定される遊びの範囲に基づいて設定されてもよい。また、下限範囲は、入力値に基づく操作指示を用いるアプリケーションの種類や操作内容に応じて異なる範囲に設定されてもよい。また、本実施形態においては、下限範囲は一定であり固定されるものとするが、他の実施形態においては、所定の状況に応じて変更されてもよい。例えば入力部２を用いた操作の種類が変更された（例えば、操作対象が変更された）ことに応じて下限範囲が変更されてもよいし、ユーザが下限範囲を設定することができるようにしてもよい。
【００８２】
具体的には、ＣＰＵは、入力値データ２２および下限範囲データ２５をメモリから読み出し、入力値が下限範囲内に含まれるか否かを判定する。ステップＳ１１の判定結果が肯定である場合、ステップＳ１２の処理が実行される。一方、ステップＳ１１の判定結果が否定である場合、ステップＳ１３の処理が実行される。
【００８３】
ステップＳ１２において、ＣＰＵは、下限範囲と一致する判別範囲を設定する。すなわち、下限範囲と一致する範囲を表すデータを判別範囲データ２６としてメインメモリに記憶する。より具体的には、下限範囲の半径と等しい長さを表すデータを判別範囲データ２６としてメインメモリに記憶する。ステップＳ１２の後、ＣＰＵは範囲設定処理を終了する。
【００８４】
図９は、入力値が下限範囲内に含まれる場合における座標平面の一例を示す図である。上記ステップＳ１１およびＳ１２の処理のように、ＣＰＵは、上記下限範囲を下限として判別範囲を設定する。したがって、図９に示すように、下限範囲内に入力位置Ｐ１が含まれる場合には、入力位置Ｐ１から判別範囲１２までの距離にかかわらず、下限範囲１３が判別範囲１２となる（判別範囲１２と下限範囲１３とが一致する）。ここで、本実施形態のように判別範囲が縮小する方向に変化する場合、判別範囲が小さくなりすぎ、操作指示を無しにする操作が難しくなるおそれがある。これに対して、本実施形態によれば、判別範囲が小さくなりすぎることがないので、ユーザは操作指示を容易に無しにすることができる。
【００８５】
また、上記ステップＳ１１およびＳ１２によれば、それまでの判別範囲の境界が下限範囲の外側にある場合でも、入力値が下限範囲内に含まれることに応じて、判別範囲は下限範囲と一致するように設定される。このとき、仮に次回の処理ループ（ステップＳ２〜Ｓ８の処理ループ）において、入力位置が下限範囲から少しだけ外に移動した場合を考える。この場合、仮に判別範囲の境界が下限範囲の外側にあるとすれば、入力値が判別範囲の内側に位置し、操作指示が無しと判別されるおそれがある。これに対して、本実施形態においては、上記の場合、判別範囲は下限範囲に設定されるので、入力値は判別範囲の外側に位置し、操作指示が有りと判別される。したがって、入力位置が少しでも下限範囲外へ変化したことに応じて操作指示が有りと判別されるので、操作指示が無しから有りへと切り替わる際の応答性をより向上することができる。
【００８６】
ステップＳ１３およびＳ１４においては、入力方向が所定の角度よりも変化する場合、判別範囲を縮小するように変化させる。ここで、入力方向とは、円形領域である判別範囲の中心位置（原点）から入力値（入力位置）への方向である。図１０は、入力方向が変化した場合における座標平面の一例を示す図である。図１０においては、入力位置Ｐ１が入力位置Ｐ２へ変化した場合、および、入力位置Ｐ１が入力位置Ｐ３へ変化した場合を示している。図１０のように入力方向が（所定角度よりも）大きく変化した場合、ユーザによる操作は、操作指示を無しにする意図ではなく、指示する方向（指示方向）を変更する意図であると推測される。しかしながら、図１０に示すように、変化後の入力位置Ｐ２またはＰ３が判別範囲１２内となる場合には、仮に判別範囲１２が変化しないとすれば入力位置Ｐ２またはＰ３は判別範囲内となるので、操作指示が無しと誤って判別されてしまう。そこで、本実施形態においては、入力方向が大きく変化した場合には、判別範囲１２を縮小させる（図１０では、下限範囲１３となるように設定する）ことで、上記のような誤判別を防止することとしている。以下、ステップＳ１３およびＳ１４の詳細を説明する。
【００８７】
ステップＳ１３において、ＣＰＵは、入力方向の変化が所定角度よりも大きいか否かを判定する。すなわち、ＣＰＵはまず、入力値データ２２をメモリから読み出し、入力方向を算出する。算出された入力方向を表すデータはメモリに記憶される。次に、ＣＰＵは、入力方向の変化角度が所定角度以上であるか否かを判定する。入力方向の変化角度は、どのような方法で算出されてもよいが、例えば、前回の処理ループ（ステップＳ２〜Ｓ８）で算出された入力方向に対する、今回の処理ループで算出された入力方向の角度として算出される。ＣＰＵは、算出された変化角度が、予め定められた所定角度以上であるか否かを判定する。なお、前回の入力値が原点の位置であるために前回の入力方向が算出されていない場合には、ＣＰＵは判定結果を否定とする。ステップＳ１３の判定結果が肯定である場合、後述するステップＳ１４の処理が実行される。一方、ステップＳ１３の判定結果が否定である場合、ステップＳ１４の処理がスキップされてステップＳ１５の処理が実行される。
【００８８】
ステップＳ１４において、ＣＰＵは、判別範囲を縮小させるように変化させる。すなわち、ＣＰＵは、判別範囲データ２６をメインメモリから読み出し、現在の判別範囲を縮小する。判別範囲の縮小する方法はどのような方法であってもよい。本実施形態においては、判別範囲は、下限範囲となるように縮小される。なお、他の実施形態においては、判別範囲は、現在の判別範囲を所定の大きさだけ縮小（または所定の割合で縮小）した範囲として設定されてもよい。ＣＰＵは、縮小後の判別範囲を表すデータを新たな判別範囲データ２６としてメモリに記憶する。以上のステップＳ１４の次にステップＳ１５の処理が実行される。
【００８９】
ステップＳ１５およびＳ１６においては、入力値の変化に応じて判別範囲の大きさが変更される。すなわち、入力値が判別範囲の境界から離れる方向に変化した場合、ＣＰＵは、当該境界が変化後の入力値に近づくように判別範囲の大きさを変化させる。以下、ステップＳ１５およびＳ１６の処理の詳細を説明する。
【００９０】
ステップＳ１５において、ＣＰＵは、入力位置と判別範囲との距離が所定距離以上であるか否かを判定する。具体的には、まず、ＣＰＵは上記距離を算出する。この距離の算出方法はどのような方法でもよいが、本実施形態においては、入力位置から判別範囲の境界までの最短距離が算出される。この最短距離は、原点から入力位置までの距離と、判別範囲の半径との差分として算出される。すなわち、ＣＰＵは、入力値データ２２および判別範囲データ２６をメモリから読み出し、入力値および判別範囲の半径に基づいて、入力値と判別範囲との距離を算出する。
【００９１】
次に、ＣＰＵは、算出された距離が所定距離Ｌ１以上であるか否かを判定する。なお、本実施形態においては、所定距離Ｌ１を表すデータは予めメモリに記憶されている。すなわち、ＣＰＵは、所定距離Ｌ１を表すデータをメモリから読み出し、算出された距離と所定距離Ｌ１とを比較することで判定を行う。なお、所定距離Ｌ１は下限範囲と同様に、入力値に基づく操作指示を用いるアプリケーションの種類や操作内容に応じて異なる値に設定されてもよい。また、所定距離Ｌ１は、例えば、入力部２を用いた操作の種類が変更されたこと等、所定の状況に応じて変更されてもよい。ステップＳ１５の判定結果が肯定である場合、ステップＳ１６の処理が実行される。一方、ステップＳ１５の判定結果が否定である場合、ＣＰＵは範囲設定処理を終了する。
【００９２】
ステップＳ１６において、ＣＰＵは、入力値から上記所定距離となるように判別範囲を設定する。上述のように判別範囲の位置はどのように設定されてもよいが、本実施形態においては、制御部３は、原点を中心とした円形領域として判別範囲を設定する。つまり、判別範囲の位置は原点の位置となる。これによれば、半径の大きさのみで判別範囲を容易に管理することができる。また、入力値が判別範囲に含まれるか否かの判別処理（後述するステップＳ４）を、原点から入力値までの距離と判別範囲の半径の大きさとの大小比較によって行うことができ、判別処理の計算が簡易になる。
【００９３】
なお、判別範囲が原点を中心とした円形領域となる場合、判別範囲の半径は、原点と入力位置との間の距離から所定距離Ｌ１を引いた長さとして算出することができる。したがって、ステップＳ１６の具体的な処理としては、ＣＰＵは、所定距離Ｌ１を表すデータと入力値データ２２とをメモリから読み出し、入力値および所定距離Ｌ１に基づいて判別範囲の半径を算出する。そして、算出された半径を表すデータを判別範囲データ２６としてメモリに記憶する。ステップＳ１６の後、ＣＰＵは範囲設定処理を終了する。
【００９４】
図１１は、入力値が最大となる場合における座標平面の一例を示す図である。ここで、入力値が最大となる場合とは、図１１に示すように、原点から入力位置までの距離が最大となる場合（範囲１１の周上に入力値が位置する場合）である。この場合、本実施形態では、上記ステップＳ１６の処理によって、入力位置から所定距離Ｌ１だけ（原点を基準として）内側に判別範囲が設定される。また、本実施形態においては、入力値がどのような値となっても、判別範囲１２は上記の場合における範囲よりも大きくなることはなく、上記の場合に判別範囲１２は上限（最大）の範囲となるように設定される。このように、本実施形態においては、ＣＰＵは、入力値が取り得る範囲１１の境界から少なくとも所定距離Ｌ１だけ離れた範囲を上限として判別範囲を設定する。本実施形態のように判別範囲が拡大する方向に変化する場合、判別範囲が大きくなりすぎると（例えば、範囲１１とほぼ同じ位置に判別範囲が設定されると）、入力値が少しだけ変化したことによって入力値が判別範囲内となるおそれがある。その結果、ユーザの意図に反して操作指示が無しと判別されてしまい、操作指示を正確に判別することができないおそれがある。これに対して、本実施形態によれば、判別範囲が大きくなりすぎることがないので、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【００９５】
また、上記範囲設定処理においては、ＣＰＵは、予め定められた所定の設定範囲（下限範囲１３）を含むように判別範囲１２を設定する（上記ステップＳ１２，Ｓ１４，およびＳ１６）。つまり、判別範囲１２が入力値に応じてどのように変化しても、上記設定範囲は判別範囲１２に常に含まれる。したがって、本実施形態においては、ユーザは、入力位置を設定範囲内に移動させることによって、操作指示が無い状態へと確実に変更することができる。ここで、本実施形態においては、設定範囲は、入力部２に対する操作が行われていない場合における入力値（原点の位置）を含むように設定される。より具体的には、設定範囲は、上記入力値を中心とする円形領域である。これによれば、入力部２の可動部材に対する操作を行わない（例えば可動部材から手を離す）ことによって入力値が設定範囲内となるので、ユーザは操作指示が無い状態へとより容易に変更することができる。
【００９６】
以上に説明した範囲設定処理（ステップＳ３）によって判別範囲が設定されると、図７に示すステップＳ４〜Ｓ６において、判別範囲を用いて操作指示の有無が判別される。すなわち、入力値が判別範囲内の値である場合、制御部３は、入力部２に対する入力による操作指示が無いと判別し、入力値が判別範囲外の値である場合、当該入力による操作指示が有ると判別する。以下、ステップＳ４〜Ｓ６の処理の詳細を説明する。
【００９７】
ステップＳ４において、ＣＰＵは、入力値が判別範囲内の値であるか否かを判定する。すなわち、ＣＰＵは、入力値データ２２および判別範囲データ２６をメモリから読み出し、入力値が判別範囲に含まれるか否かを判定する。本実施形態においては、ステップＳ４の判定は、原点から入力値までの距離が判別範囲の半径よりも小さいか否かによって行うことができる。ステップＳ４の判定結果が肯定である場合、ステップＳ５の処理が実行される。一方、ステップＳ４の判定結果が否定である場合、ステップＳ６の処理が実行される。
【００９８】
ステップＳ５において、ＣＰＵは、操作指示が無しと判別する。なお、ステップＳ５においては、必要に応じて所定の処理を実行してもよいし、処理を実行しなくてもよい（ステップＳ５の処理は実行されなくてもよい）。上記所定の処理を実行する場合、ＣＰＵは、例えば、指示方向が無いことを表すデータを指示内容データ２９としてメインメモリに記憶してもよい。ステップＳ５の次にステップＳ７の処理が実行される。
【００９９】
一方、ステップＳ６において、ＣＰＵは、操作指示が有ると判別する。このとき、ＣＰＵは、入力部２に対する操作によってユーザが指示しようとする内容（指示内容）を特定する。操作指示が有ると判別された場合における指示内容は、どのような情報であってもよい。本実施形態においては、指示内容として上記指示方向が特定される。指示方向は、座標平面上における所定の基準位置に対する入力値の位置の方向である。所定の基準位置はどの位置であってもよいが、本実施形態においては原点の位置である。指示方向を算出する方法はどのような方法であってもよいが、本実施形態においては、例えば次の方法で指示方向が算出される。
【０１００】
図１２は、座標平面上において指示方向を算出するために設定される領域の一例を示す図である。本実施形態においては、図１２に示すように、座標平面上に複数（ここでは８個）の領域３１〜３８が設定される。各領域３１〜３８は指示可能な指示方向に対応しており、具体的には、第１領域３１は上方向に対応し、第２領域３２は右上方向に対応し、第３領域３３は右方向に対応し、第４領域３４は右下方向に対応し、第５領域３５は下方向に対応し、第６領域３６は左下方向に対応し、第７領域３７は左方向に対応し、第８領域３８は左上方向に対応する。ＣＰＵは、各領域３１〜３８のうちで入力値が含まれる領域に対応する方向を指示方向として特定する。このように、本実施形態においては、ユーザは、入力部２を用いて指示方向として８種類の方向を指示することができる。
【０１０１】
なお、指示方向はどのような形式の情報であってもよく、他の実施形態においては、指示方向は、指示方向の角度（例えば原点を基準とした入力位置の方向を表す角度）を表す情報であってもよい。また、指示内容は、単に方向を表す情報（指示方向）に加えて、方向とその方向に関する量とを表す情報であってもよい。例えば、上記指示方向と、原点から入力値までの距離とを表す情報を指示内容として算出するようにしてもよい。
【０１０２】
ステップＳ６の具体的な処理としては、ＣＰＵは、入力値データ２２をメモリから読み出し、入力値に基づいて指示内容を算出する。そして、算出された指示内容を表すデータを指示内容データ２９としてメモリに記憶する。ステップＳ６の次にステップＳ７の処理が実行される。
【０１０３】
上記ステップＳ６の処理によれば、制御部３は、操作指示が有ると判別された場合、２次元の入力値を表すための座標平面上における所定の基準位置に対する入力値の位置の方向（上記指示方向）を算出する。したがって、本実施形態によれば、ユーザは、２次元の入力操作が可能な入力部２を用いて方向を指示することができ、具体的には、上記可動部材を基準状態から所望の方向へ移動させる操作によって、移動方向に応じた方向を指示することができる。また、本実施形態によれば、入力部２を用いて方向を指示する操作の応答性を向上することができる。
【０１０４】
ステップＳ７において、ＣＰＵは、所定のアプリケーション処理を実行する。すなわち、ＣＰＵは、指示内容データ２９をメモリから読み出し、指示内容を入力として所定の情報処理を実行し、その実行結果に応じた出力（画像出力および／または音声出力）を出力部５に対して行う。アプリケーション処理は、指示内容を入力として情報処理を実行し、当該情報処理の結果に応じた出力を行う処理であればどのような処理であってもよい。アプリケーション処理は、例えば、出力部５である表示装置の画面上に表示されるカーソルを指示方向に応じて移動させる処理であってもよいし、当該表示装置の画面上に表示されるオブジェクト（ゲームオブジェクト）を指示方向に応じて移動させるゲーム処理であってもよい。例えば、画面上に表示されるオブジェクト（カーソルを含む）を指示方向に応じて移動させる処理が実行される場合には、入力装置の可動部材の移動に応じてオブジェクトを応答性良く移動させることができる。ステップＳ７の次にステップＳ８の処理が実行される。
【０１０５】
ステップＳ８において、ＣＰＵは、図７に示す情報処理を終了するか否かを判定する。ステップＳ８の判定は、例えば、情報処理を終了する旨の指示がユーザによって行われたか否か、および／または、上記アプリケーション処理において情報処理を終了する条件が満たされたか否か等によって行われる。ステップＳ８の判定結果が否定である場合、ステップＳ２の処理が再度実行される。以降、情報処理を終了すると判定されるまで、ＣＰＵは、ステップＳ２〜Ｓ８の一連の処理を繰り返し実行する。一方、ステップＳ８の判定結果が肯定である場合、ＣＰＵは、図７に示す情報処理を終了する。
【０１０６】
以上に説明した情報処理によれば、アナログ入力が可能な入力装置において操作指示の有無を切り替える応答性を向上することができる。本実施形態によれば、例えば十字キーのような、アナログ入力を行うことができない入力装置を用いたゲーム操作を前提としたゲーム（ゲームプログラム）を、スライドパッドやタッチパネルのような、アナログ入力が可能な入力装置を備えるゲーム装置において適用することも可能となる。つまり、本実施形態によれば、ユーザは、十字キーを用いたゲーム操作を前提とするゲームをスライドパッドを用いて行うことができる。
【０１０７】
［４．変形例］
（判別範囲の位置に関する変形例）
上記実施形態においては、判別範囲は、原点を中心とした円形領域となるように設定された。すなわち、判別範囲の位置（中心位置）は原点の位置に固定された。ここで、他の実施形態においては、制御部３は、入力値が判別範囲の境界から離れる方向に変化した場合、座標平面上において入力値の変化方向に応じた方向へ中心位置が移動する円形領域となるように判別範囲を設定してもよい。
【０１０８】
図１３は、判別領域の中心位置が移動するように設定される場合における座標平面の一例を示す図である。入力位置Ｐ１と判別範囲１２との距離が所定距離Ｌ１以上となった場合、判別範囲１２は、図１３に示すように、入力位置Ｐ１に近づく方向へ中心位置Ｐ４が移動するように設定されてもよい。具体的には、制御部３は、判別範囲１２の中心位置Ｐ４を、所定の基準位置（原点の位置）から入力位置Ｐ１の方向へ移動させるように判別範囲１２を設定してもよい。本変形例においては、図１３に示すように、入力位置Ｐ１と原点とを結ぶ直線上に中心位置Ｐ４が位置するように判別範囲１２が設定される。なお、入力値が判別範囲の境界から離れる方向に変化した場合に、当該境界が変化後の入力位置から所定距離だけ離れた位置となるように判別範囲が設定される点については、本変形例においても上記実施形態と同様である。
【０１０９】
なお、本変形例においても上記実施形態と同様、判別範囲１２は下限範囲１３を含むように設定されてもよい（図１３参照）。例えば、制御部３は、下限範囲１３が判別範囲１２に内接するように判別範囲１２を設定してもよい。
【０１１０】
具体的には、本変形例においては上記ステップＳ１４において、ＣＰＵは、次のようにして判別範囲を算出してもよい。まず、原点から入力位置Ｐ１までの距離をＬ、下限範囲の半径をｒ１とすると、ＣＰＵは、判別範囲の半径ｒを以下の式（１）に従って算出する。
ｒ＝（Ｌ−Ｌ１＋ｒ１）／２  （入力位置Ｐ１が判別範囲１２外のとき）
ｒ＝（Ｌ＋Ｌ１＋ｒ１）／２  （入力位置Ｐ１が判別範囲１２内のとき）  …（１）
また、判別範囲の中心位置は、所定の基準位置（原点）と入力位置とを結ぶ直線上に設定される。すなわち、ＣＰＵは、判別範囲の中心位置Ｐ４を、原点から入力位置Ｐ１の方向へ、判別範囲の半径ｒから下限範囲の半径ｒ１を引いた長さだけ移動させた位置として算出する。本変形例においては、ＣＰＵは、以上のようにして算出された半径ｒおよび中心位置Ｐ４を表すデータを判別範囲データ２６としてメモリに記憶する。
【０１１１】
以上のように、入力値の変化方向に応じた方向へ中心位置が移動するように判別範囲が設定される場合には、判別範囲は、当該方向を中心に拡大されるので、他の方向については拡大の度合いが小さくなる（図１３参照）。これによれば、入力方向が大きく変化した場合に、変化後の入力位置が判別範囲に含まれる可能性が低くなる。例えば、図１３においては、入力位置Ｐ２および入力位置Ｐ３（図１０に示す入力位置Ｐ２および入力位置Ｐ３と同じ位置）は、判別範囲１２に含まれない。したがって、本変形例においては、入力方向の変化に基づいて判別範囲を縮小させる処理（ステップＳ１３およびＳ１４）を実行しなくとも、入力方向が大きく変化する場合における誤判別の可能性を軽減することができる。本変形例においても上記実施形態と同様、ＣＰＵは、ステップＳ１３およびＳ１４の処理を実行してもよいし、しなくてもよい。
【０１１２】
（判別範囲を変化させる方法に関する変形例）
上記実施形態においては、判別範囲の境界から離れる方向に入力値が変化した場合、判別範囲は、当該境界が変化後の入力値の位置から所定距離だけ離れた位置となるように設定された。ここで、他の実施形態においては、判別範囲は、入力位置に応じて設定される基準点に基づいて境界の位置が決定されてもよい。以下、基準点を用いて判別範囲を設定する変形例について詳細に説明する。
【０１１３】
図１４および図１５は、基準点に基づいて判別範囲が設定される場合における座標平面の一例を示す図である。図１４および図１５において、基準点Ｑ１は、入力値に基づいて座標平面上の位置が設定される点である。制御部３は、入力位置Ｐ１が基準点Ｑ１から離れる方向に変化した場合、変化後の入力位置Ｐ１に近づくように変化する基準点を設定する。本変形例においては、基準点は、入力位置から所定距離内となるように入力値の変化に応じて変化する。図１６は、入力位置Ｐ１から入力位置Ｐ２へと入力値が変化した場合における座標平面の一例を示す図である。上記の場合、図１６に示すように、基準点Ｑ２は、変化前の基準点Ｑ１と変化後の入力位置Ｐ２とを結ぶ線分上であって、入力位置Ｐ２から所定距離Ｌ１となる位置に設定される。
【０１１４】
また、本変形例においては、判別範囲１２は基準点Ｑ１に基づいて設定される。すなわち、制御部３は、基準点Ｑ１が境界上となるように判別範囲１２を決定する。判別範囲１２は、基準点Ｑ１が境界上に位置するように設定されればどのように設定されてもよい。すなわち、図１４に示すように、判別範囲１２は、原点Ｏを中心位置として設定されてもよい。また、図１５に示すように、判別範囲１２は、入力位置Ｐ１に近づく方向へ中心位置Ｐ４が移動するように設定されてもよい。なお、本変形例においても上記実施形態と同様、判別範囲１２は下限範囲１３を含むように設定されてもよい（図１４および図１５参照）。入力位置Ｐ１に近づく方向へ中心位置Ｐ４が移動する場合、制御部３は、下限範囲１３が判別範囲１２に内接するように判別範囲１２を設定してもよい。
【０１１５】
本変形例のように、入力位置に追従する基準点を用いて判別範囲を決定する場合には、入力方向が大きく変化すると、変化後の入力位置よりも内側（原点に近い側）に基準点が移動する。例えば図１６に示されるように、入力値が入力位置Ｐ１から入力位置Ｐ２（図１０に示す入力位置Ｐ２と同じ位置）へと変化した場合、変化後の基準点Ｑ２は、入力位置Ｐ２よりも内側に設定される。これによって、判別範囲１２は入力位置Ｐ２よりも内側に設定され、判別範囲１２が縮小することになる。したがって、本変形例によれば上記実施形態と同様、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【０１１６】
図１７は、本変形例における範囲設定処理の一例を示すフローチャートである。なお、本変形例においてもステップＳ３以外の他のステップの処理は、上記実施形態と同様であってもよい。なお、本変形例においては、ステップＳ１の初期処理において、原点の位置を表すデータが基準点データ２７としてメモリに記憶される。つまり、初期状態においては基準点は原点の位置に設定される。
【０１１７】
本変形例においては、ステップＳ２１およびＳ２２において、入力位置から所定距離内となるように基準点が算出される。すなわち、ステップＳ２１において、ＣＰＵは、入力位置と基準点の位置との距離が所定距離Ｌ１以上であるか否かを判定する。ＣＰＵは、入力位置データ２２および基準点データ２７をメモリから読み出し、上記距離を算出する。ＣＰＵは、所定距離を表すデータをメモリから読み出し、算出された距離が所定距離以上であるか否かを判定する。ステップＳ２１の判定結果が肯定である場合、ステップＳ２２の処理が実行される。一方、ステップＳ２１の判定結果が否定である場合、ステップＳ２２の処理がスキップされてステップＳ２３の処理が実行される。
【０１１８】
ステップＳ２２において、ＣＰＵは、入力位置から所定距離の位置となるように基準点を設定（移動）する。本変形例においては、基準点は、変化前の位置から入力位置の方へ移動され、入力位置から所定距離となる位置に設定される（図１６参照）。具体的には、入力値を（ａｘ，ａｙ）とし、入力位置と変化前の基準点の位置との距離をＫとすると、基準点の位置（ｆｘ、ｆｙ）は、次の式（２）に従って算出することができる。
ｆｘ＝（Ｌ１／Ｋ）×（ｆｘ−ａｘ）＋ａｘ
ｆｙ＝（Ｌ１／Ｋ）×（ｆｙ−ａｙ）＋ａｙ  …（２）
ＣＰＵは、入力値データ２２および基準点データ２７をメモリから読み出し、入力値および変化前の基準点に基づいて、上式（２）に従って（変化後の）基準点の位置を算出する。ステップＳ２２の次にステップＳ２３の処理が実行される。
【０１１９】
以上のステップＳ２１およびＳ２２のように、制御部３は、入力値の位置が基準点から離れる方向に変化した場合（ステップＳ２１でＹｅｓ）、変化後の入力値の位置に近づくように変化する基準点を設定する（ステップＳ２２）。なお、基準点の位置に近づく方向に入力値が変化した場合には、制御部３は、ステップＳ２２の処理を実行しない、すなわち、基準点の位置を維持する（変化させない）。そのため、この場合には基準点の位置が変化しないので、判別範囲も変化せず、入力値が判別範囲の境界に近づいていくと境界を超え、操作指示の有無が切り替わることになる。
【０１２０】
本変形例においても上記実施形態と同様、判別範囲は下限範囲を下限として設定される。すなわち、ステップＳ２３〜Ｓ２５において、ＣＰＵは、入力値が下限範囲内となる場合、判別範囲を下限範囲となるように設定する。図１８は、入力値が下限範囲内に含まれる場合における座標平面の一例を示す図である。図１８においては、入力位置Ｐ１が下限範囲１３内に含まれている。また、ステップＳ２２で設定された基準点Ｑ１は下限範囲１３外に位置している。本変形例においては、入力位置Ｐ１が下限範囲内に含まれる場合には、基準点Ｑ１が下限範囲１３外に位置するかどうかにかかわらず、判別範囲１２は下限範囲１３と一致するように設定される。したがって、本変形例によれば上記実施形態と同様、判別範囲が小さくなりすぎることがないので、ユーザは操作指示を容易に無しにすることができる。以下、ステップＳ２３〜Ｓ２５の処理の詳細を説明する。
【０１２１】
ステップＳ２３において、ＣＰＵは、入力値が下限範囲内であるか否かを判定する。ステップＳ２３の処理は上記実施形態におけるステップＳ１１の処理と同様である。ステップＳ２３の判定結果が肯定である場合、ステップＳ２４の処理が実行される。一方、ステップＳ２３の判定結果が否定である場合、後述するステップＳ２６の処理が実行される。
【０１２２】
ステップＳ２４において、ＣＰＵは、下限範囲と一致する判別範囲を設定する。ステップＳ２４の処理は上記実施形態におけるステップＳ１２の処理と同様である。ステップＳ２４の次にステップＳ２５の処理が実行される。
【０１２３】
ステップＳ２５において、ＣＰＵは、基準点の位置を入力位置と同じ位置に設定する。すなわち、ＣＰＵは、入力値データ２２を読み出し、入力値と同じ値を表すデータを基準点データ２７としてメモリに記憶する。これによって、次回に実行される処理ループにおいては、基準点が下限範囲内に含まれることになる。ここで、次回の処理ループにおいて、入力位置が下限範囲から少しだけ外に移動した場合を考える。この場合において、基準点が下限範囲の外側にあるとすれば、入力値が判別範囲の内側に位置し、操作指示が無しと判別されるおそれがある。これに対して、本変形例では、基準点が下限範囲内に位置するために判別範囲は下限範囲に設定される（後述するステップＳ２６およびＳ２７参照）。そのため、入力位置が少しでも判別範囲（下限範囲）外へ変化したことに応じて操作指示が有りと判別されるので、操作指示が無しから有りへと切り替わる際の応答性をより向上することができる。ステップＳ２５の後、ＣＰＵは、範囲設定処理を終了する。
【０１２４】
また、本変形例においては、基準点が下限範囲内に含まれる場合にも、入力値が下限範囲に含まれる場合と同様、判別範囲は下限範囲となるように設定される。すなわち、ステップＳ２６およびＳ２７において、ＣＰＵは、基準点が下限範囲内となる場合、判別範囲を下限範囲となるように設定する。図１９は、基準点が下限範囲内に含まれる場合における座標平面の一例を示す図である。図１９においては、基準点Ｑ１が下限範囲１３内に含まれている。また、入力位置Ｐ１は下限範囲１３外に位置している。本変形例においては、基準点Ｑ１が下限範囲内に含まれる場合には、判別範囲１２は下限範囲１３と一致するように設定される。したがって、本変形例によれば上記実施形態と同様、判別範囲が小さくなりすぎることがないので、ユーザは操作指示を容易に無しにすることができる。以下、ステップＳ２６およびＳ２７の処理の詳細を説明する。
【０１２５】
ステップＳ２６において、ＣＰＵは、基準点が下限範囲内であるか否かを判定する。具体的には、ＣＰＵは、基準点データ２７および下限範囲データ２５をメモリから読み出し、基準点が下限範囲内に含まれるか否かを判定する。ステップＳ２６の判定結果が肯定である場合、ステップＳ２７の処理が実行される。一方、ステップＳ２６の判定結果が否定である場合、後述するステップＳ２８の処理が実行される。
【０１２６】
ステップＳ２７において、ＣＰＵは、下限範囲と一致する判別範囲を設定する。ステップＳ２７の処理は上記実施形態におけるステップＳ１２の処理と同様である。ステップＳ２７の後、ＣＰＵは、範囲設定処理を終了する。
【０１２７】
上記ステップＳ２３〜Ｓ２７の処理のように、本変形例では、入力位置または基準点の少なくともいずれかが下限範囲内である場合、判別範囲は下限範囲となるように設定される。したがって、本変形例によれば上記実施形態と同様、判別範囲が下限範囲よりも小さくなることがないので、ユーザは操作指示を容易に無しにすることができる。
【０１２８】
また、本変形例においては、上限範囲が予め定められており、判別範囲は上限範囲を上限として設定される。すなわち、ステップＳ２８およびＳ２９において、ＣＰＵは、基準点が上限範囲外に位置する場合、判別範囲を上限範囲となるように設定する。図２０は、基準点が上限範囲外に含まれる場合における座標平面の一例を示す図である。図２０においては、入力位置Ｐ１が上限範囲１４外に位置した結果、基準点Ｑ１も上限範囲１４外に位置している。本変形例においては、基準点Ｑ１が上限範囲１４外に位置する場合には、図２０に示すように、判別範囲１２は上限範囲１４を超えないように（判別範囲１２の全体が上限範囲１４内に含まれるように）設定される。このように、本変形例によれば上記実施形態と同様、判別範囲に上限を設定することができる。本変形例によれば上記実施形態と同様、判別範囲が大きくなりすぎることがないので、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。以下、ステップＳ２８およびＳ２９の処理の詳細を説明する。
【０１２９】
ステップＳ２８において、ＣＰＵは、基準点が上限範囲外であるか否かを判定する。具体的には、ＣＰＵは、基準点データ２７および上限範囲データ２８をメモリから読み出し、基準点が上限範囲外に位置するか否かを判定する。ステップＳ２８の判定結果が肯定である場合、ステップＳ２９の処理が実行される。一方、ステップＳ２８の判定結果が否定である場合、後述するステップＳ３０の処理が実行される。
【０１３０】
ステップＳ２９において、ＣＰＵは、上限範囲内に含まれるように判別範囲を設定する。例えば、上記実施形態と同様、原点が中心となるように判別範囲を設定する場合（図１４）には、判別範囲は、上限範囲と一致するように設定される。すなわち、ＣＰＵは、上限範囲データ２８と一致する範囲を表すデータを判別範囲データ２６としてメインメモリに記憶する。
【０１３１】
また、入力値の変化に応じた方向へ中心位置が移動するように判別範囲を設定する場合（図１５）には、ＣＰＵは、例えば、判別範囲が上限範囲に内接し、かつ、下限範囲が判別範囲に内接するように判別範囲を設定する。具体的には、図２０に示すように、判別範囲１２の半径ｒは、下限範囲１３の半径ｒ１と上限範囲１４の半径ｒ２との和を２で割った大きさとなる。また、判別範囲１２の中心位置Ｐ４は、原点Ｏから基準点Ｑ１の方向へ、判別範囲１２の半径ｒから下限範囲１３の半径ｒ１を減算した距離だけ移動した位置として算出される。具体的には、ＣＰＵは、下限範囲データ２５および上限範囲データ２８をメモリから読み出し、下限範囲の半径と上限範囲の半径とに基づいて判別範囲の半径ｒを算出する。さらに、基準点データ２７をメモリから読み出し、基準点Ｑ１の位置および判別範囲の半径ｒに基づいて判別範囲の中心位置Ｐ４を算出する。ＣＰＵは、以上のようにして算出された半径ｒおよび中心位置Ｐ４を表すデータを判別範囲データ２６としてメモリに記憶する。ステップＳ２９の後、ＣＰＵは範囲設定処理を終了する。
【０１３２】
ステップＳ３０において、ＣＰＵは、基準点に基づいて判別範囲を設定する。本変形例においては、判別範囲は、境界が基準点を通るように設定される。例えば、上記実施形態と同様、原点が中心となるように判別範囲を設定する場合（図１４）には、原点から基準点までの長さとなるように判別範囲の半径を設定する。すなわち、ＣＰＵは、基準点データ２７をメモリから読み出し、基準点の位置に基づいて判別範囲の半径を算出し、算出された半径を表すデータを判別範囲データ２６としてメインメモリに記憶する。
【０１３３】
また、入力値の変化に応じた方向へ中心位置が移動するように判別範囲を設定する場合（図１５）には、例えば以下の方法で判別範囲の半径を決定してもよい。すなわち、判別範囲１２の半径ｒは、原点から基準点Ｑ１までの距離Ｌ５と、下限範囲の半径ｒ１との和を２で割った大きさとして算出できる（図１５参照）。また、判別範囲１２の中心位置Ｐ４は、原点から、基準点Ｑ１の方向へ、判別範囲１２の半径ｒから下限範囲１３の半径ｒ１を減算した距離だけ移動した位置として算出される。したがって、ＣＰＵは、下限範囲データ２５および基準点データ２７をメモリから読み出し、下限範囲の半径と基準点の位置とに基づいて判別範囲の半径ｒを算出する。さらに、基準点の位置と、算出された半径および下限範囲の半径に基づいて判別範囲の中心位置Ｐ４を算出する。ＣＰＵは、以上のようにして算出された半径ｒおよび中心位置Ｐ４を表すデータを判別範囲データ２６としてメモリに記憶する。ステップＳ３０の後、ＣＰＵは範囲設定処理を終了する。
【０１３４】
以上のように、本変形例においては、ＣＰＵは、入力値の位置が基準点から離れる方向に変化した場合、変化後の入力値の位置に近づくように変化する基準点を設定し（ステップＳ２１およびＳ２２）、基準点が境界上となるように判別範囲を決定する（ステップＳ３０）。このように、入力値から所定の範囲内となるように入力値に追従する基準点を用いて判別範囲を決定することによって、入力方向が大きく変化した場合には判別範囲が縮小されることとなる（図１６参照）。したがって、本変形例によれば上記実施形態と同様、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【０１３５】
（入力値が２次元以上である場合の判別方法に関する変形例）
上記実施形態においては、判別範囲は、入力値と同じ次元の領域（２次元領域）として設定された。ここで、他の実施形態においては、入力値が２次元以上である場合、制御部３は、入力値の成分毎に（１次元の）判別範囲を設定し、入力値の各成分値が判別範囲に含まれるか否かを成分毎にそれぞれ判別してもよい。一方、本実施形態においては、制御部３は、平面上の位置を表す２次元の入力値を取得し、当該平面上における２次元領域を表す判別範囲１２を設定する。したがって、本実施形態においては、入力値が判別範囲に含まれるか否かの判別処理を入力値の各成分毎に行うことなく、１回で行うことができ、判別処理を容易に行うことができる。また、本実施形態のように、入力値に基づいて指示方向を算出する場合には、２次元領域である判別範囲を用いることで、指示方向を正確に算出することができる。なお、入力値が３次元である場合には、制御部３は、入力値の成分毎に（１次元の）判別範囲を設定してもよいし、３次元の空間領域として判別範囲を設定してもよい。
【０１３６】
（タッチパネルを用いる場合の変形例）
上記実施形態においては、入力部２は、スライドパッドやアナログスティック等の可動部材を有する入力装置であった。ここで、他の実施形態においては、入力部２はタッチパネルあるいはタッチパッドであってもよい。なお、入力部２がタッチパネルである場合、上述の基準位置（原点）は、入力面上で予め（固定的に）設定される位置であってもよいし、入力位置に応じて移動する位置であってもよい。例えばタッチパネルの画面上に操作用の画像（例えば十字ボタンの画像）が表示される場合、当該画像における所定位置（十字ボタンの中央の位置）を上記基準位置としてもよい。
【産業上の利用可能性】
【０１３７】
本発明は、入力装置を用いて操作指示を行う場合において操作指示の有無を応答性良く切り替えること等を目的として、例えばゲーム装置等の情報処理装置あるいは情報処理システム、または、ゲームプログラム等の情報処理プログラム等として利用することが可能である。
【符号の説明】
【０１３８】
１    情報処理システム
２    入力部
３    制御部
４    プログラム格納部
５    出力部
１２  判別範囲
１３  下限範囲
１４  上限範囲
２１  情報処理プログラム
２２  入力値データ
【図１】
0005170715.tif 000002
【図２】
0005170715.tif 000003
【図３】
0005170715.tif 000004
【図４】
0005170715.tif 000005
【図５】
0005170715.tif 000006
【図６】
0005170715.tif 000007
【図７】
0005170715.tif 000008
【図８】
0005170715.tif 000009
【図９】
0005170715.tif 000010
【図１０】
0005170715.tif 000011
【図１１】
0005170715.tif 000012
【図１２】
0005170715.tif 000013
【図１３】
0005170715.tif 000014
【図１４】
0005170715.tif 000015
【図１５】
0005170715.tif 000016
【図１６】
0005170715.tif 000017
【図１７】
0005170715.tif 000018
【図１８】
0005170715.tif 000019
【図１９】
0005170715.tif 000020
【図２０】
0005170715.tif 000021