情報処理プログラム、情報処理装置、情報処理システム、および指示判別方法
【課題】入力装置を用いて操作指示を行う場合において、操作指示の有無を応答性良く切り替える。
【解決手段】情報処理装置は、入力装置に対する操作に応じて操作指示を判別する。まず、取得手段は、入力装置に対する操作に基づく入力値を取得する。操作指示判別手段は、入力値が所定の範囲である判別範囲内の値である場合と判別範囲外の値である場合とで判別結果が異なるように、入力装置に対する操作による操作指示の有無を判別する。範囲設定手段は、入力値が判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように判別範囲の大きさを変化させる。
【解決手段】情報処理装置は、入力装置に対する操作に応じて操作指示を判別する。まず、取得手段は、入力装置に対する操作に基づく入力値を取得する。操作指示判別手段は、入力値が所定の範囲である判別範囲内の値である場合と判別範囲外の値である場合とで判別結果が異なるように、入力装置に対する操作による操作指示の有無を判別する。範囲設定手段は、入力値が判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように判別範囲の大きさを変化させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力装置に対するアナログ入力に基づいて操作指示の有無を判別する情報処理プログラム、情報処理装置、情報処理システム、および指示判別方法に関する。
【背景技術】
【0002】
従来、例えばアナログスティック等、アナログ入力が可能な入力装置がある。また、アナログ入力が可能な入力装置を用いてオン/オフの操作指示を行う技術がある。例えば、アナログスティックにおいて、スティックの傾斜角度が所定角度以上である場合にオン(操作指示が有る)と判断し、傾斜角度が所定角度未満である場合にオフ(操作指示が無い)と判断する方法が考えられている(例えば、特許文献1の段落0008参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平09−244802号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記方法においては、ユーザがオンとオフとを切り替えるためにスティックを大きく動かさなければならない場合があり、オンとオフとの間の切り替えの応答性が悪い場合があった。例えば、ある方向にスティックを限界まで傾倒していた場合において、操作指示をオフにするためには上記所定角度までスティックを戻さなければならない。このとき、スティックを戻すまでの時間は操作指示がオンとなるため、オンからオフへ切り替える際の応答性が悪くなっていた。
【0005】
それ故、本発明の目的は、入力装置を用いて操作指示を行う場合に、操作指示の有無を応答性良く切り替えることができる情報処理プログラム、情報処理装置、情報処理システム、および指示判別方法を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の(1)〜(18)の構成を採用した。
【0007】
(1)
本発明の一例は、入力装置に対する操作に応じて操作指示を判別する情報処理装置のコンピュータにおいて実行される情報処理プログラムである。情報処理プログラムは、取得手段と、操作指示判別手段と、範囲設定手段としてコンピュータを機能させる。
取得手段は、入力装置に対する操作に基づく入力値を取得する。操作指示判別手段は、入力値が所定の範囲である判別範囲内の値である場合と判別範囲外の値である場合とで判別結果が異なるように、入力装置に対する操作による操作指示の有無を判別する。範囲設定手段は、入力値が判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように判別範囲の大きさを変化させる。
【0008】
上記(1)の構成によれば、入力値が判別範囲の境界から離れる場合、判別範囲は入力値の方へ近づくように変化する。これによれば、入力値と判別範囲との距離が近くなるので、入力値を判別範囲に操作指示の有無を切り替えるために必要な入力値の変化量(移動量)を小さくすることができる。つまり、ユーザは、入力値を判別範囲の境界の方へ少し戻すことで容易に操作指示の有無を切り替えることができる。このように、上記(1)の構成によれば、入力装置を用いて操作指示を行う場合に、操作指示の有無を応答性良く切り替えることができる。
【0009】
(2)
範囲設定手段は、予め定められた所定の設定範囲を含むように判別範囲を設定してもよい。
【0010】
上記(2)の構成によれば、入力値に応じて判別範囲がどのように変化しても所定の設定範囲が判別範囲に含まれることとなる。したがって、ユーザは、入力位置を設定範囲内に移動させる操作によって、操作指示が無い状態へと操作指示を確実に切り替えることができる。
【0011】
(3)
設定範囲は、入力装置に対する操作が行われていない場合における入力値を含んでいてもよい。
【0012】
上記(3)の構成によれば、入力装置に対して操作が行われていない場合における入力値が設定範囲内に含まれるように設定される。したがって、ユーザは、入力装置を操作しないことで(例えば、スティックから手を離すことで)、操作指示が無い状態へと操作指示を容易に切り替えることができる。
【0013】
(4)
入力装置は、ユーザによって操作され、操作が行われない場合に所定の状態となる可動部材を有していてもよい。このとき、取得手段は、所定の状態を基準とした可動部材の位置および/または姿勢によって決まる入力値を取得する。
【0014】
上記(4)の構成によれば、ユーザが可動部材を動かすことによって操作入力を行うことが可能な入力装置が用いられる。このような入力装置においては、操作の際に可動部材を物理的に移動させる必要となるので、仮に判別範囲が固定されているとすれば、操作指示が有りと判別される状態から無しと判別される状態へと大きく可動部材を移動させる必要が生じるおそれがある。これに対して、本発明によれば、入力値に応じて判別範囲が変化するので、上記のような入力装置において、操作指示の有無を切り替えるために可動部材を移動させる距離を小さくすることができる。すなわち、ユーザは、操作指示の有無の切り替えを容易に行うことができる。
【0015】
(5)
取得手段は、2次元の入力値を取得してもよい。このとき、範囲設定手段は、2次元の入力値を表すための座標平面上における2次元領域を表す判別範囲を設定する。
【0016】
上記(5)の構成によれば、入力値が2次元であっても、入力値が判別範囲に含まれるか否かの判別処理を入力値の各成分毎に行うことなく、1回で行うことができる。したがって、判別処理を容易に行うことができる。また、上記(5)の構成を下記(13)の構成と組み合わせる場合には、2次元領域である判別範囲を用いることで、指示方向を正確に算出することができる。
【0017】
(6)
範囲設定手段は、入力装置に対する操作が行われていない場合における入力値の位置を中心とした、座標平面上における円形領域として判別範囲を設定してもよい。
【0018】
上記(6)の構成によれば、判別範囲を半径の大きさを用いて容易に管理することができる。また、入力値が判別範囲に含まれるか否かの判別処理を、入力装置に対する操作が行われていない場合における入力値の位置から入力値までの距離と判別範囲の半径の大きさとの大小比較によって行うことができ、判別処理の計算が簡易になる。
【0019】
(7)
範囲設定手段は、円形領域の中心位置から入力値の位置への方向が所定の角度よりも変化する場合、判別範囲を縮小するように変化させてもよい。
【0020】
上記(7)の構成によれば、円形領域の中心位置から入力値の位置への方向(入力方向)が大きく変化する場合、判別範囲は縮小される。ここで、入力方向が大きく変化する場合において、仮に判別範囲が変化しないとすれば、変化後の入力値が判別範囲内となるので、操作指示が無しと誤って判別されてしまうおそれがある。これに対して、上記(7)の構成によれば、上記の場合に判別範囲が縮小するので、上記のような誤判別を防止することができ、操作指示の有無をより正確に判別することができる。
【0021】
(8)
範囲設定手段は、入力値が判別範囲の境界から離れる方向に変化した場合、入力値の変化方向に応じた方向へ中心位置が移動する円形領域となるように判別範囲を設定してもよい。
【0022】
上記(8)の構成によれば、判別範囲は、入力値の変化方向に応じた方向へ中心位置が移動するように設定される。これによれば、判別範囲は、上記方向を中心に拡大されるので、他の方向については拡大の度合いが小さくなる(図13参照)。これによれば、入力方向が大きく変化した場合に、変化後の入力位置が判別範囲に含まれる可能性が低くなる。したがって、上記(8)の構成によれば、入力方向が大きく変化する場合において、変化後の入力位置が判別範囲に含まれることによって、操作指示が無しと誤って判別される可能性を軽減することができる。
【0023】
(9)
範囲設定手段は、基準点設定手段と、範囲決定手段とを含んでいてもよい。基準点設定手段は、入力値の位置が基準点から離れる方向に変化した場合、変化後の入力値の位置に近づくように変化する基準点を設定する。範囲決定手段は、基準点が境界上となるように判別範囲を決定する。
【0024】
上記(9)の構成によれば、基準点は、入力値から所定の範囲内となるように入力値に応じて設定される。したがって、入力方向が大きく変化した場合には判別範囲が縮小されることとなる(図16参照)。したがって、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【0025】
(10)
範囲設定手段は、基準点の位置に近づく方向に入力値が変化した場合、基準点の位置を維持してもよい。
【0026】
上記(10)の構成によれば、基準点の位置に近づく方向に入力値が変化した場合には、基準点の位置は変化しない。そのため、この場合には判別範囲も変化しないので、ユーザは、入力値を判別範囲の境界へ近づけるように操作することで、操作指示の有無を確実に切り替えることができる。
【0027】
(11)
範囲設定手段は、判別範囲の境界から離れる方向に入力値が変化した場合、当該境界が変化後の入力値の位置から所定距離だけ離れた位置となるように判別範囲を設定してもよい。
【0028】
上記(11)の構成によれば、入力値の位置から一定距離内に判別範囲の境界が位置するように、判別範囲を容易に制御することができる。つまり、ユーザは、入力値を判別範囲に近づく方へ少なくとも上記一定距離だけ移動させることで、操作指示の有無を確実に切り替えることができる。
【0029】
(12)
範囲設定手段は、判別範囲の境界に近づく方向に入力値が変化した場合、判別範囲を維持する。
【0030】
上記(12)の構成によれば、判別範囲の境界に近づく方向に入力値が変化した場合には、判別範囲は変化しない。そのため、ユーザは、入力値を判別範囲の境界へ近づけるように操作することで、操作指示の有無を確実に切り替えることができる。
【0031】
(13)
情報処理プログラムは、方向算出手段としてコンピュータをさらに機能させてもよい。方向算出手段は、操作指示判別手段において操作指示が有ると判別された場合、2次元の入力値を表すための座標平面上における所定の基準位置に対する入力値の位置の方向を算出する。
【0032】
上記(13)の構成によれば、ユーザは入力装置を用いて方向を指示することができ、入力装置を用いて方向を指示する操作の応答性を向上することができる。
【0033】
(14)
範囲設定手段は、判別範囲外にある入力値が当該判別範囲の境界から離れる方向に変化した場合、範囲が広がるように判別範囲を設定してもよい。
【0034】
上記(14)の構成によれば、判別範囲が拡大することで、判別範囲の境界を入力値に近づけることができる。これによって、ユーザは、入力値を判別範囲の方へ少し戻すことで容易に操作指示を無しにすることができ、操作指示を有りから無しへと切り替える際の応答性を向上することができる。
【0035】
(15)
範囲設定手段は、入力値が取り得る範囲の境界から少なくとも所定距離だけ離れた範囲を上限として判別範囲を設定してもよい。
【0036】
上記(15)の構成によれば、判別範囲が大きくなりすぎることがないので、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【0037】
(16)
範囲設定手段は、判別範囲内にある入力値が当該判別範囲の境界から離れる方向に変化した場合、範囲が狭まるように判別範囲を設定してもよい。
【0038】
上記(16)の構成によれば、判別範囲を縮小することで、判別範囲の境界を入力値に近づけることができる。これによって、ユーザは、入力値を判別範囲の外側の方へ少し移動させることで容易に操作指示を有りにすることができ、操作指示を無しから有りへと切り替える際の応答性を向上することができる。また、上記(14)の構成と(16)の構成とを組み合わせる場合には、入力値が判別範囲内にある場合と入力値が判別範囲外にある場合との両方の場合において、判別範囲の境界を入力値に近づけることができる。これによって、操作指示の有無を相互に切り替える際の応答性を向上することができる。
【0039】
(17)
範囲設定手段は、入力装置に対する操作が行われていない場合における入力値を含む範囲を下限として判別範囲を設定する。
【0040】
上記(17)の構成によれば、判別範囲が小さくなりすぎることがないので、ユーザの意図に反して操作指示が有りと判別されることを防止でき、操作指示を正確に判別することができる。
【0041】
(18)
操作指示判別手段は、入力値が判別範囲内の値である場合、操作指示が無いと判別し、入力値が判別範囲外の値である場合、当該操作指示が有ると判別してもよい。
【0042】
上記(18)の構成によれば、入力装置に対する操作が行われない場合に入力値がある基準値となり、操作が行われた場合に入力値が当該基準値から離れた値となるような入力装置において、操作指示の有無を応答性良く切り替えることができる。
【0043】
なお、本発明の別の一例は、上記(1)〜(18)の情報処理プログラムを実行することによって実現される各手段と同等の手段を備える情報処理装置あるいは情報処理システムであってもよいし、上記(1)〜(18)において実行される指示判別方法(操作指示の有無を判別する方法)であってもよい。
【発明の効果】
【0044】
本発明によれば、操作指示の有無を判別するための判別範囲の境界を入力値の変化に応じて入力値に近づけるように変化させることによって、入力装置を用いて操作指示を行う場合における操作指示の有無を応答性良く切り替えることができる。
【図面の簡単な説明】
【0045】
【図1】本実施形態に係る情報処理システムの一例を示すブロック図
【図2】本実施形態における入力値を表すための2次元座標系(座標平面)の一例を示す図
【図3】図2に示す位置から判別範囲12の境界から離れる方向へ入力位置P1が変化した場合における座標平面の一例を示す図
【図4】図3に示す位置から判別範囲12の境界に近づく方向へ入力位置P1が変化した場合における座標平面の一例を示す図
【図5】図3に示す位置から判別範囲12の境界を超えて、判別範囲12内において境界から離れる方向へ入力位置P1が変化した場合における座標平面の一例を示す図
【図6】制御部3のメモリに記憶されるデータの一例を示す図
【図7】制御部3において実行される情報処理の流れの一例を示すメインフローチャート
【図8】図7に示す範囲設定処理(ステップS2)の詳細な流れの一例を示すフローチャート
【図9】入力値が下限範囲内に含まれる場合における座標平面の一例を示す図
【図10】入力方向が変化した場合における座標平面の一例を示す図
【図11】入力値が最大となる場合における座標平面の一例を示す図
【図12】座標平面上において指示方向を算出するために設定される領域の一例を示す図
【図13】判別領域の中心位置が移動するように設定される場合における座標平面の一例を示す図
【図14】基準点に基づいて判別範囲が設定される場合における座標平面の一例を示す図
【図15】基準点に基づいて判別範囲が設定される場合における座標平面の一例を示す図
【図16】入力位置P1から入力位置P2へと入力値が変化した場合における座標平面の一例を示す図
【図17】本変形例における範囲設定処理の一例を示すフローチャート
【図18】入力値が下限範囲内に含まれる場合における座標平面の一例を示す図
【図19】基準点が下限範囲内に含まれる場合における座標平面の一例を示す図
【図20】基準点が上限範囲内に含まれる場合における座標平面の一例を示す図
【発明を実施するための形態】
【0046】
[1.情報処理システムの構成]
以下、本実施形態の一例に係る情報処理プログラム、情報処理システム(情報処理装置)、および指示判別方法について説明する。図1は、本実施形態に係る情報処理システムの一例を示すブロック図である。図1において、情報処理システム1は、入力部2、制御部3、プログラム格納部4、および出力部5を備える。情報処理システム1は、上記の各部2〜5を備える単一の情報処理装置(携帯型の情報処理装置を含む)で構成されてもよい。また、情報処理システム1は、制御部3を含む情報処理装置と、制御部3以外の他の構成を含む1以上の装置とによって構成されてもよい。情報処理システム1は、入力部2に対する操作に応じて操作指示(少なくとも操作指示の有無)を判別するものである。
【0047】
入力部2は、アナログ入力が可能な入力装置である。つまり、入力部2は、ユーザがアナログ量の入力を行うことが可能であり、入力量を検知することが可能な入力装置である。このような入力装置としては、例えば、アナログ量としてスティック部(後述する可動部材)の操作量を検知するスライドパッドまたはアナログスティックや、アナログ量として操作位置(タッチ位置)を検出するタッチパネルまたはタッチパッド等が考えられる。また、入力装置は、ユーザが把持する操作部材の位置および/または姿勢を検知することが可能な装置であってもよい。
【0048】
本実施形態においては、入力部2は、ユーザによって操作され、操作が行われない場合(ニュートラル状態となる場合)に所定の状態(基準状態と呼ぶ)となる可動部材を有する入力装置である。すなわち、入力部2は、ユーザが可動部材を動かすことによって操作入力を行うことが可能な入力装置である。このような入力装置としては、例えば、スライドパッドあるいはアナログスティック等が考えられる。
【0049】
入力部2は、入力部2に対する入力に基づく入力値を出力する。ここで、入力値は、ユーザによる入力(アナログ入力)の結果を表す値である。なお、ユーザによる入力が操作量あるいは操作位置といったアナログ入力である場合であっても、入力値自体は、アナログ値(アナログデータ)であってもよいし、デジタル値(デジタルデータ)であってもよい。本実施形態のように、入力部2は上記可動部材を有する入力装置である場合、入力値は、上記基準状態に対する可動部材の位置および/または姿勢(基準状態からの可動部材の変化量)によって決まる値である。例えば、入力部2がスライド可能な可動部材を有する入力装置(スライドパッド等)である場合、入力値は、基準状態に対する可動部材のスライド量とスライド方向とを表すデジタル値であってもよい。
【0050】
上記入力値は、1次元であってもよいし、2次元以上であってもよい。つまり、入力部2は、スライドパッドやタッチパネル等のように、2次元の入力が可能な入力装置であってもよいし、マウスホイールのような1次元の入力が可能な入力装置であってもよい。また、入力部2は、ユーザが把持する操作部材の位置および/または姿勢を検知する入力装置のように、3次元の入力が可能な入力装置であってもよい。また、入力部2は、上記入力値に加えて、他の入力情報を出力してもよい。例えば、入力部2がアナログ入力が可能な入力装置に加えてボタンを有する場合には、ボタンに対する操作を表す入力情報を出力してもよい。
【0051】
制御部3は、入力部2に対する入力に基づく入力値を取得する。そして、入力値に基づいて操作指示の有無を少なくとも判別(判断)する。操作指示とは、入力部2を用いてユーザが行う指示である。つまり、「操作指示が有る」とは、入力部2を用いて何らかの指示が行われたことを意味する。「操作指示が無い」とは、入力部2を用いた指示が行われていないことを意味する。詳細は後述するが、入力部2に対して何らかの操作が行われた場合であっても、制御部3は操作指示が無いと判別することもあり得る。また、上記操作指示の具体的な内容は、どのような種類の指示であってもよい。
【0052】
制御部3は、上記入力値に基づいて操作指示の有無を判別する情報処理を実行することができればどのような構成であってもよい。本実施形態において、制御部3は、CPUおよびメモリを有する情報処理装置である。つまり、CPUが所定の情報処理プログラムを実行することによって、制御部3における各機能が実現される。
【0053】
プログラム格納部4は、上記情報処理プログラムを記憶(格納)する。プログラム格納部4は、制御部3がアクセス可能な記憶装置であればどのようなものであってもよい。例えば、プログラム格納部4は、制御部3を含む情報処理装置内に設けられる記憶装置であってもよいし、制御部3を含む情報処理装置に着脱自在に装着される記憶媒体であってもよい。また、プログラム格納部4は、制御部3とネットワークを介して接続される記憶装置(サーバ等)であってもよい。制御部3は情報処理プログラムの一部または全部を適宜のタイミングで読み出し、読み出された情報処理プログラムをCPUが実行する。
【0054】
出力部5は、制御部3における情報処理の結果を出力する出力装置である。すなわち、制御部3は操作指示に基づく情報処理の結果を出力部5へ出力するので、出力部5は、当該情報処理の結果を画像や音声等で出力する。出力部5は、テレビあるいはモニタ等の表示装置であってもよいし、スピーカ等の音声出力装置であってもよい。
【0055】
[2.操作指示の判別方法の概要]
次に、図2〜図5を参照して、本実施形態における操作指示の判別方法について説明する。なお、以下では、入力部2が2次元の入力値を出力する場合について説明する。より具体的には、入力部2は上記可動部材を有する入力装置であり、可動部材を2次元的に移動させる操作に応じた2次元の入力値が出力されるものとする。また、操作指示の具体的な内容はどのような種類の指示であってもよいが、以下では、操作指示として方向の指示が行われる場合について説明する。すなわち、制御部3は、入力値に基づいて操作指示の有無を判別し、操作指示が有ると判別する場合、指示された方向(指示方向)を算出する。
【0056】
図2は、本実施形態における入力値を表すための2次元座標系(座標平面)の一例を示す図である。ここでは、2次元座標系の横軸をx軸とし、縦軸をy軸とする。入力位置P1は、上記座標平面における入力値の位置である。また、領域11は、入力値が取り得る範囲を表す。なお、領域11の形状は入力装置の種類によって決まる任意の形状であるが、本実施形態においては円形である。本実施形態においては、入力値は、入力部2(可動部材)に対する操作が行われていない場合(上記基準状態である場合)に原点Oの値(0,0)となり、基準状態からの可動部材の移動方向および移動量を表す座標値となる。すなわち、原点Oに対する入力位置P1の方向は、基準状態からの可動部材の移動方向に対応し、原点Oから入力位置P1までの距離は、基準状態からの可動部材の移動量に対応する。
【0057】
判別範囲12は、操作指示の有無を判別するための範囲である。すなわち、制御部3は、入力値が判別範囲内の値である場合と判別範囲外の値である場合とで判別結果が異なるように、操作指示の有無を判別する。本実施形態においては、制御部3は、入力値が判別範囲12内の値である場合、操作指示が無いと判別し、入力値が判別範囲12外の値である場合、操作指示が有ると判別する。例えば図2においては、入力位置P1が判別範囲12の外に位置するので、制御部3は操作指示が有ると判別する。なお、他の実施形態においては、入力値が判別範囲外の値である場合に操作指示が無いと判別し、入力値が判別範囲外の値である場合に操作指示が有ると判別されてもよい。また、判別範囲12の形状は、四角形や楕円形等、どのような形状であってもよいが、本実施形態においては、判別範囲12は円形領域であるとする。なお、図2においては、入力位置P1から境界までの距離は、後述する所定距離L1よりも短いものとする。
【0058】
ここで、本実施形態においては、制御部3は、入力値が判別範囲12の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように判別範囲12の大きさを変化させる。図3は、図2に示す位置から判別範囲12の境界から離れる方向へ入力位置P1が変化した場合における座標平面の一例を示す図である。図3においては、判別範囲12の外側にあった入力位置P1が判別範囲12の境界からより外側へ移動している。このとき、判別範囲12は、境界が入力位置P1に近づくようにその大きさが変化する(図3参照)。
【0059】
なお、判別範囲12を変化させる具体的な方法はどのような方法であってもよい。判別範囲12は、図3に示すように位置が変化しないように同心円上で大きさを変化させてもよいし、後述する変形例に示すように、中心位置が入力位置の変化に応じた方向へ移動するように判別範囲12が設定されてもよい。また、判別範囲12は、入力位置から所定距離内となるように設定されてもよいし、後述する変形例に示すように、入力位置から所定距離内となるように設定される基準点に基づいて設定されてもよい。
【0060】
本実施形態においては、入力位置から境界までの距離が所定距離L1以内となるように判別範囲12が設定される。すなわち、制御部3は、判別範囲12の境界から離れる方向に入力位置が変化した場合、当該境界が変化後の入力位置から所定距離L1だけ離れた位置となるように判別範囲を設定する。例えば図3に示すように、変化後の入力位置P1から境界までの距離がL2(L1よりも大きい)となった場合、当該距離が所定距離L1となるように判別範囲12の大きさが変化する。これによって、境界が入力位置P1から一定距離内となるように判別範囲12を制御することができる。
【0061】
図4は、図3に示す位置から判別範囲12の境界に近づく方向へ入力位置P1が変化した場合における座標平面の一例を示す図である。本実施形態においては、図4に示すように、判別範囲12の境界に近づく方向に入力位置P1が変化した場合には、制御部3は判別範囲12を維持する。つまり、この場合、判別範囲12は変化しない。これによって、入力位置P1が判別範囲12の境界に近づいていくと境界を超え、操作指示の有無が切り替わることになる。
【0062】
また、判別範囲12は、範囲が拡大する方向に変化してもよいし、範囲が縮小する方向に変化してもよいし、両方の方向に変化してもよい。本実施形態においては、制御部3は、判別範囲12が拡大する方向と縮小する方向との両方に判別範囲12を変化させる。すなわち、制御部3は、判別範囲12外にある入力値が当該判別範囲12の境界から離れる方向に変化した場合、範囲が広がるように判別範囲を設定する(図3参照)。また、制御部3は、判別範囲12内にある入力値が当該判別範囲12の境界から離れる方向に変化した場合、範囲が狭まるように判別範囲12を設定する。図5は、図3に示す位置から判別範囲12の境界を超えて、判別範囲12内において境界から離れる方向へ入力位置P1が変化した場合における座標平面の一例を示す図である。図5においては、入力位置P1が判別範囲12内に入り、さらに、判別範囲の境界から離れる方向に変化した結果、判別範囲12内の入力位置P1から境界までの距離L3は上記所定距離L1よりも大きくなっている。このとき、判別範囲12は、範囲が縮小するように(入力位置から境界までの距離が所定距離L1となるように)変化する。つまり、図5に示す場合においても図3に示す場合と同様、判別範囲12の境界が変化後の入力位置P1に近づくように判別範囲12の大きさが変化する。なお、他の実施形態においては、制御部3は、範囲が拡大する方向、あるいは、範囲が縮小する方向のいずれか一方向にのみ判別範囲12を変化させてもよい。
【0063】
以上のように、本実施形態においては、入力値が判別範囲12の境界から離れる場合、判別範囲12は入力値の方へ近づくように変化する。これによれば、ユーザは、入力値を判別範囲12の外側から内側へ(あるいは内側から外側へ)容易に変更することができる。例えば図3に示す場合においては、入力位置P1の移動に応じて判別範囲12が大きくなり、図5に示す場合においては、入力位置P1の移動に応じて判別範囲12が小さくなる。いずれの場合においても、ユーザは入力位置P1を少なくとも距離L1だけ移動させれば入力位置P1を判別範囲12内にすることができる。したがって、ユーザは、図3に示す状態から可動部材を基準状態の方へ少し戻すだけで容易に操作指示を無しにすることができる。また、図5に示す状態から可動部材を基準状態から離れる方向へ少し移動させるだけで容易に操作指示を有りにすることができる。このように、本実施形態においては、判別範囲12を入力値に近づけるように変化させることで、操作指示の有無を切り替える際の応答性を向上することができる。
【0064】
[3.情報処理システムにおける処理の詳細]
以下、図6〜図12を参照して、情報処理システム1における詳細な情報処理の一例について説明する。まず、情報処理において用いられる各種データについて説明する。図6は、制御部3のメモリに記憶されるデータの一例を示す図である。図6に示すように、制御部3のメモリには、情報処理プログラム21、入力値データ22、および処理用データ23が記憶される。なお、メモリには、図6に示すデータの他、制御部3における各種の情報処理に用いられるデータや、出力部5から出力すべき画像および/または音声を生成するためのデータ(画像データや音声データ)等が記憶されてもよい。
【0065】
情報処理プログラム21は、制御部3のCPUに実行させるためのプログラムである。本実施形態においては、CPUが情報処理プログラム21を実行することによって後述する情報処理(図7)が実行される。情報処理プログラム21は、任意のアプリケーションプログラム(例えばゲームプログラム)の一部として提供されてもよい。情報処理プログラム21は、プログラム格納部4からその一部または全部が適宜のタイミングで読み込まれて制御部3のメモリに記憶され、CPUによって実行される。また、情報処理プログラム21の一部または全部は、制御部3を有する情報処理装置内に(例えばライブラリとして)予め記憶されていてもよい。
【0066】
入力値データ22は、上述の入力値を表すデータである。制御部3は、入力値データ22を入力部2から取得する。入力値データ22の取得タイミングはどのようなタイミングであってもよい。本実施形態においては、入力部2は、ユーザによるアナログ入力の結果を繰り返し検知して入力値を生成し、制御部3は、入力値データ22を入力部2から繰り返し(例えば所定時間間隔に1回の割合で)取得する。
【0067】
処理用データ23は、制御部3において実行される情報処理(図7)において用いられるデータである。処理用データ23は、距離データ24、下限範囲データ25、判別範囲データ26、基準点データ27、上限範囲データ28、および、指示内容データ29を含む。なお、図6に示すデータの他、処理用データ23は、図7に示す情報処理において用いられる各種データを含んでいてもよい。
【0068】
距離データ24は、入力値を表すための座標平面上における、入力値(入力位置)から判別範囲(判別範囲の境界)までの距離を表す。なお、「入力値から判別範囲までの距離」とは、どのような基準で規定されてもよい。「入力値から判別範囲までの距離」は、例えば、入力位置から判別範囲までの最短距離であってもよいし、入力位置から原点の方向へ延ばした直線と判別範囲の境界との交点から入力位置までの距離であってもよい。また、後述する基準点が設定される場合には、入力値から判別範囲までの距離は、入力位置から基準点の位置までの距離であってもよい。
【0069】
下限範囲データ25は、判別範囲の下限の範囲を示す所定の下限範囲を表すデータである。下限範囲は、入力値の座標平面において予め定められる範囲である。下限範囲データ25は、どのような方法で取得されてもよいが、本実施形態においては、プログラム格納部4において情報処理プログラム21とともに記憶され、適宜のタイミングで情報処理プログラム21とともに読み出されて制御部3のメモリに記憶される。
【0070】
判別範囲データ26は、上述の判別範囲を表すデータである。判別範囲データ26は、判別範囲を表す情報であればどのような情報を表してもよい。例えば、判別範囲が円形領域である場合には、判別範囲データ26は判別範囲の中心位置および半径を表すものでもよい。本実施形態においては、判別範囲は原点を中心とする円領域であるので、判別範囲の半径を表すデータが判別範囲データ26として用いられる。
【0071】
基準点データ27は、後述する基準点の位置を表すデータである。詳細は後述するが基準点の位置は入力値に基づいて算出される。なお、本実施形態のように基準点を用いずに判別範囲を設定する場合には、基準点データ27はメモリに記憶されなくてもよい。
【0072】
上限範囲データ28は、判別範囲の上限を示す上限範囲を表すデータである。上限範囲が設定される場合、判別範囲は上限範囲を超えないように(判別範囲が上限範囲内に含まれるように)設定される。上限範囲データ28はどのような方法で取得されてもよいが、上記下限範囲データ25と同様に、適宜のタイミングで情報処理プログラム21とともに読み出されて制御部3のメモリに記憶されてもよい。なお、本実施形態においては、入力値の取り得る範囲11(図2参照)が有限であり、また、入力位置から所定距離L1以内となるように判別範囲が設定される。この場合、上限範囲を予め設定しておかなくても、判別範囲は一定の大きさ以上に大きくなることはない。したがって、本実施形態においては、上限範囲データ28はメモリに記憶されなくてもよい。
【0073】
指示内容データ29は、入力部2に対する操作によってユーザが指示する内容(指示内容)を表すデータである。指示内容はどのようなものであってもよいが、本実施形態においては、操作指示が有ると判別された場合、入力値に基づいて方向を表す情報(指示方向)が指示内容として算出される。
【0074】
次に、制御部3において実行される情報処理の詳細を、図7〜図12を用いて説明する。図7は、制御部3において実行される情報処理の流れの一例を示すメインフローチャートである。制御部3が上記情報処理を開始するタイミングはどのようなタイミングであってもよく、例えば、ユーザの指示に応じて上記情報処理を開始してもよい。上記情報処理の実行を開始する場合、制御部3のCPUは、メモリ等を初期化し、プログラム格納部4から情報処理プログラムをメモリに読み込む。そして、CPUによって当該情報処理プログラム21の実行が開始される。図7に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【0075】
なお、図7、図8および図17に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、上記フローチャートの各ステップの処理を制御部3のCPUが実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、CPU以外のプロセッサや専用回路が実行するようにしてもよい。
【0076】
ステップS1において、初期処理を実行する。初期処理は、ステップS2以降の処理で用いる各種パラメータの初期値を設定する等の処理である。なお、本実施形態においては、予め定められた範囲を表す下限範囲データ25が制御部3のメモリに記憶される。また、判別範囲データ26の初期値として、下限範囲と同じ範囲を表すデータがメモリに記憶される。
【0077】
上記ステップS1の次にステップS2の処理が実行される。以降、ステップS2〜S8の一連の処理からなる処理ループが所定時間に1回の割合で繰り返し実行される。
【0078】
ステップS2において、CPUは、入力部2から入力値を取得する。すなわち、入力部2から出力される入力値を表すデータを取得し、入力値データ22としてメモリに記憶する。なお、メモリには、最新の(最後に取得された)ものから順に所定個数の入力値データが記憶されてもよい。ステップS2の次にステップS3の処理が実行される。
【0079】
ステップS3において、CPUは範囲設定処理を実行する。範囲設定処理は、入力値に応じて変化するように判別範囲を設定する処理である。以下、図8を参照して、範囲設定処理の詳細を説明する。
【0080】
図8は、図7に示す範囲設定処理(ステップS3)の詳細な流れの一例を示すフローチャートである。本実施形態においては、判別範囲は上述の下限範囲を下限として設定される。すなわち、ステップS11およびS12においては、入力値が下限範囲内の値となる場合、判別範囲は下限範囲となるように設定される。以下、ステップS11およびS12の処理の詳細を説明する。
【0081】
ステップS11において、CPUは、入力値が下限範囲内であるか否かを判定する。下限範囲はどのように設定されてもよいが、本実施形態においては、原点を含むように設定され、より具体的には、原点を中心とした円形領域として設定される(図9参照)。なお、下限範囲は、入力装置の可動部材の機構に関する特性に基づいて設定されてもよい。例えば、スライドパッドやアナログスティック等の入力装置に関しては、いわゆる「遊びの範囲」、すなわち、可動部材に対する操作が行われていないと判断すべき入力値の範囲が設定される(推奨される)場合がある。下限範囲は、可動部材の機構に基づいて設定される遊びの範囲に基づいて設定されてもよい。また、下限範囲は、入力値に基づく操作指示を用いるアプリケーションの種類や操作内容に応じて異なる範囲に設定されてもよい。また、本実施形態においては、下限範囲は一定であり固定されるものとするが、他の実施形態においては、所定の状況に応じて変更されてもよい。例えば入力部2を用いた操作の種類が変更された(例えば、操作対象が変更された)ことに応じて下限範囲が変更されてもよいし、ユーザが下限範囲を設定することができるようにしてもよい。
【0082】
具体的には、CPUは、入力値データ22および下限範囲データ25をメモリから読み出し、入力値が下限範囲内に含まれるか否かを判定する。ステップS11の判定結果が肯定である場合、ステップS12の処理が実行される。一方、ステップS11の判定結果が否定である場合、ステップS13の処理が実行される。
【0083】
ステップS12において、CPUは、下限範囲と一致する判別範囲を設定する。すなわち、下限範囲と一致する範囲を表すデータを判別範囲データ26としてメインメモリに記憶する。より具体的には、下限範囲の半径と等しい長さを表すデータを判別範囲データ26としてメインメモリに記憶する。ステップS12の後、CPUは範囲設定処理を終了する。
【0084】
図9は、入力値が下限範囲内に含まれる場合における座標平面の一例を示す図である。上記ステップS11およびS12の処理のように、CPUは、上記下限範囲を下限として判別範囲を設定する。したがって、図9に示すように、下限範囲内に入力位置P1が含まれる場合には、入力位置P1から判別範囲12までの距離にかかわらず、下限範囲13が判別範囲12となる(判別範囲12と下限範囲13とが一致する)。ここで、本実施形態のように判別範囲が縮小する方向に変化する場合、判別範囲が小さくなりすぎ、操作指示を無しにする操作が難しくなるおそれがある。これに対して、本実施形態によれば、判別範囲が小さくなりすぎることがないので、ユーザは操作指示を容易に無しにすることができる。
【0085】
また、上記ステップS11およびS12によれば、それまでの判別範囲の境界が下限範囲の外側にある場合でも、入力値が下限範囲内に含まれることに応じて、判別範囲は下限範囲と一致するように設定される。このとき、仮に次回の処理ループ(ステップS2〜S8の処理ループ)において、入力位置が下限範囲から少しだけ外に移動した場合を考える。この場合、仮に判別範囲の境界が下限範囲の外側にあるとすれば、入力値が判別範囲の内側に位置し、操作指示が無しと判別されるおそれがある。これに対して、本実施形態においては、上記の場合、判別範囲は下限範囲に設定されるので、入力値は判別範囲の外側に位置し、操作指示が有りと判別される。したがって、入力位置が少しでも下限範囲外へ変化したことに応じて操作指示が有りと判別されるので、操作指示が無しから有りへと切り替わる際の応答性をより向上することができる。
【0086】
ステップS13およびS14においては、入力方向が所定の角度よりも変化する場合、判別範囲を縮小するように変化させる。ここで、入力方向とは、円形領域である判別範囲の中心位置(原点)から入力値(入力位置)への方向である。図10は、入力方向が変化した場合における座標平面の一例を示す図である。図10においては、入力位置P1が入力位置P2へ変化した場合、および、入力位置P1が入力位置P3へ変化した場合を示している。図10のように入力方向が(所定角度よりも)大きく変化した場合、ユーザによる操作は、操作指示を無しにする意図ではなく、指示する方向(指示方向)を変更する意図であると推測される。しかしながら、図10に示すように、変化後の入力位置P2またはP3が判別範囲12内となる場合には、仮に判別範囲12が変化しないとすれば入力位置P2またはP3は判別範囲内となるので、操作指示が無しと誤って判別されてしまう。そこで、本実施形態においては、入力方向が大きく変化した場合には、判別範囲12を縮小させる(図10では、下限範囲13となるように設定する)ことで、上記のような誤判別を防止することとしている。以下、ステップS13およびS14の詳細を説明する。
【0087】
ステップS13において、CPUは、入力方向の変化が所定角度よりも大きいか否かを判定する。すなわち、CPUはまず、入力値データ22をメモリから読み出し、入力方向を算出する。算出された入力方向を表すデータはメモリに記憶される。次に、CPUは、入力方向の変化角度が所定角度以上であるか否かを判定する。入力方向の変化角度は、どのような方法で算出されてもよいが、例えば、前回の処理ループ(ステップS2〜S8)で算出された入力方向に対する、今回の処理ループで算出された入力方向の角度として算出される。CPUは、算出された変化角度が、予め定められた所定角度以上であるか否かを判定する。なお、前回の入力値が原点の位置であるために前回の入力方向が算出されていない場合には、CPUは判定結果を否定とする。ステップS13の判定結果が肯定である場合、後述するステップS14の処理が実行される。一方、ステップS13の判定結果が否定である場合、ステップS14の処理がスキップされてステップS15の処理が実行される。
【0088】
ステップS14において、CPUは、判別範囲を縮小させるように変化させる。すなわち、CPUは、判別範囲データ26をメインメモリから読み出し、現在の判別範囲を縮小する。判別範囲の縮小する方法はどのような方法であってもよい。本実施形態においては、判別範囲は、下限範囲となるように縮小される。なお、他の実施形態においては、判別範囲は、現在の判別範囲を所定の大きさだけ縮小(または所定の割合で縮小)した範囲として設定されてもよい。CPUは、縮小後の判別範囲を表すデータを新たな判別範囲データ26としてメモリに記憶する。以上のステップS14の次にステップS15の処理が実行される。
【0089】
ステップS15およびS16においては、入力値の変化に応じて判別範囲の大きさが変更される。すなわち、入力値が判別範囲の境界から離れる方向に変化した場合、CPUは、当該境界が変化後の入力値に近づくように判別範囲の大きさを変化させる。以下、ステップS15およびS16の処理の詳細を説明する。
【0090】
ステップS15において、CPUは、入力位置と判別範囲との距離が所定距離以上であるか否かを判定する。具体的には、まず、CPUは上記距離を算出する。この距離の算出方法はどのような方法でもよいが、本実施形態においては、入力位置から判別範囲の境界までの最短距離が算出される。この最短距離は、原点から入力位置までの距離と、判別範囲の半径との差分として算出される。すなわち、CPUは、入力値データ22および判別範囲データ26をメモリから読み出し、入力値および判別範囲の半径に基づいて、入力値と判別範囲との距離を算出する。
【0091】
次に、CPUは、算出された距離が所定距離L1以上であるか否かを判定する。なお、本実施形態においては、所定距離L1を表すデータは予めメモリに記憶されている。すなわち、CPUは、所定距離L1を表すデータをメモリから読み出し、算出された距離と所定距離L1とを比較することで判定を行う。なお、所定距離L1は下限範囲と同様に、入力値に基づく操作指示を用いるアプリケーションの種類や操作内容に応じて異なる値に設定されてもよい。また、所定距離L1は、例えば、入力部2を用いた操作の種類が変更されたこと等、所定の状況に応じて変更されてもよい。ステップS15の判定結果が肯定である場合、ステップS16の処理が実行される。一方、ステップS15の判定結果が否定である場合、CPUは範囲設定処理を終了する。
【0092】
ステップS16において、CPUは、入力値から上記所定距離となるように判別範囲を設定する。上述のように判別範囲の位置はどのように設定されてもよいが、本実施形態においては、制御部3は、原点を中心とした円形領域として判別範囲を設定する。つまり、判別範囲の位置は原点の位置となる。これによれば、半径の大きさのみで判別範囲を容易に管理することができる。また、入力値が判別範囲に含まれるか否かの判別処理(後述するステップS4)を、原点から入力値までの距離と判別範囲の半径の大きさとの大小比較によって行うことができ、判別処理の計算が簡易になる。
【0093】
なお、判別範囲が原点を中心とした円形領域となる場合、判別範囲の半径は、原点と入力位置との間の距離から所定距離L1を引いた長さとして算出することができる。したがって、ステップS16の具体的な処理としては、CPUは、所定距離L1を表すデータと入力値データ22とをメモリから読み出し、入力値および所定距離L1に基づいて判別範囲の半径を算出する。そして、算出された半径を表すデータを判別範囲データ26としてメモリに記憶する。ステップS16の後、CPUは範囲設定処理を終了する。
【0094】
図11は、入力値が最大となる場合における座標平面の一例を示す図である。ここで、入力値が最大となる場合とは、図11に示すように、原点から入力位置までの距離が最大となる場合(範囲11の周上に入力値が位置する場合)である。この場合、本実施形態では、上記ステップS16の処理によって、入力位置から所定距離L1だけ(原点を基準として)内側に判別範囲が設定される。また、本実施形態においては、入力値がどのような値となっても、判別範囲12は上記の場合における範囲よりも大きくなることはなく、上記の場合に判別範囲12は上限(最大)の範囲となるように設定される。このように、本実施形態においては、CPUは、入力値が取り得る範囲11の境界から少なくとも所定距離L1だけ離れた範囲を上限として判別範囲を設定する。本実施形態のように判別範囲が拡大する方向に変化する場合、判別範囲が大きくなりすぎると(例えば、範囲11とほぼ同じ位置に判別範囲が設定されると)、入力値が少しだけ変化したことによって入力値が判別範囲内となるおそれがある。その結果、ユーザの意図に反して操作指示が無しと判別されてしまい、操作指示を正確に判別することができないおそれがある。これに対して、本実施形態によれば、判別範囲が大きくなりすぎることがないので、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【0095】
また、上記範囲設定処理においては、CPUは、予め定められた所定の設定範囲(下限範囲13)を含むように判別範囲12を設定する(上記ステップS12,S14,およびS16)。つまり、判別範囲12が入力値に応じてどのように変化しても、上記設定範囲は判別範囲12に常に含まれる。したがって、本実施形態においては、ユーザは、入力位置を設定範囲内に移動させることによって、操作指示が無い状態へと確実に変更することができる。ここで、本実施形態においては、設定範囲は、入力部2に対する操作が行われていない場合における入力値(原点の位置)を含むように設定される。より具体的には、設定範囲は、上記入力値を中心とする円形領域である。これによれば、入力部2の可動部材に対する操作を行わない(例えば可動部材から手を離す)ことによって入力値が設定範囲内となるので、ユーザは操作指示が無い状態へとより容易に変更することができる。
【0096】
以上に説明した範囲設定処理(ステップS3)によって判別範囲が設定されると、図7に示すステップS4〜S6において、判別範囲を用いて操作指示の有無が判別される。すなわち、入力値が判別範囲内の値である場合、制御部3は、入力部2に対する入力による操作指示が無いと判別し、入力値が判別範囲外の値である場合、当該入力による操作指示が有ると判別する。以下、ステップS4〜S6の処理の詳細を説明する。
【0097】
ステップS4において、CPUは、入力値が判別範囲内の値であるか否かを判定する。すなわち、CPUは、入力値データ22および判別範囲データ26をメモリから読み出し、入力値が判別範囲に含まれるか否かを判定する。本実施形態においては、ステップS4の判定は、原点から入力値までの距離が判別範囲の半径よりも小さいか否かによって行うことができる。ステップS4の判定結果が肯定である場合、ステップS5の処理が実行される。一方、ステップS4の判定結果が否定である場合、ステップS6の処理が実行される。
【0098】
ステップS5において、CPUは、操作指示が無しと判別する。なお、ステップS5においては、必要に応じて所定の処理を実行してもよいし、処理を実行しなくてもよい(ステップS5の処理は実行されなくてもよい)。上記所定の処理を実行する場合、CPUは、例えば、指示方向が無いことを表すデータを指示内容データ29としてメインメモリに記憶してもよい。ステップS5の次にステップS7の処理が実行される。
【0099】
一方、ステップS6において、CPUは、操作指示が有ると判別する。このとき、CPUは、入力部2に対する操作によってユーザが指示しようとする内容(指示内容)を特定する。操作指示が有ると判別された場合における指示内容は、どのような情報であってもよい。本実施形態においては、指示内容として上記指示方向が特定される。指示方向は、座標平面上における所定の基準位置に対する入力値の位置の方向である。所定の基準位置はどの位置であってもよいが、本実施形態においては原点の位置である。指示方向を算出する方法はどのような方法であってもよいが、本実施形態においては、例えば次の方法で指示方向が算出される。
【0100】
図12は、座標平面上において指示方向を算出するために設定される領域の一例を示す図である。本実施形態においては、図12に示すように、座標平面上に複数(ここでは8個)の領域31〜38が設定される。各領域31〜38は指示可能な指示方向に対応しており、具体的には、第1領域31は上方向に対応し、第2領域32は右上方向に対応し、第3領域33は右方向に対応し、第4領域34は右下方向に対応し、第5領域35は下方向に対応し、第6領域36は左下方向に対応し、第7領域37は左方向に対応し、第8領域38は左上方向に対応する。CPUは、各領域31〜38のうちで入力値が含まれる領域に対応する方向を指示方向として特定する。このように、本実施形態においては、ユーザは、入力部2を用いて指示方向として8種類の方向を指示することができる。
【0101】
なお、指示方向はどのような形式の情報であってもよく、他の実施形態においては、指示方向は、指示方向の角度(例えば原点を基準とした入力位置の方向を表す角度)を表す情報であってもよい。また、指示内容は、単に方向を表す情報(指示方向)に加えて、方向とその方向に関する量とを表す情報であってもよい。例えば、上記指示方向と、原点から入力値までの距離とを表す情報を指示内容として算出するようにしてもよい。
【0102】
ステップS6の具体的な処理としては、CPUは、入力値データ22をメモリから読み出し、入力値に基づいて指示内容を算出する。そして、算出された指示内容を表すデータを指示内容データ29としてメモリに記憶する。ステップS6の次にステップS7の処理が実行される。
【0103】
上記ステップS6の処理によれば、制御部3は、操作指示が有ると判別された場合、2次元の入力値を表すための座標平面上における所定の基準位置に対する入力値の位置の方向(上記指示方向)を算出する。したがって、本実施形態によれば、ユーザは、2次元の入力操作が可能な入力部2を用いて方向を指示することができ、具体的には、上記可動部材を基準状態から所望の方向へ移動させる操作によって、移動方向に応じた方向を指示することができる。また、本実施形態によれば、入力部2を用いて方向を指示する操作の応答性を向上することができる。
【0104】
ステップS7において、CPUは、所定のアプリケーション処理を実行する。すなわち、CPUは、指示内容データ29をメモリから読み出し、指示内容を入力として所定の情報処理を実行し、その実行結果に応じた出力(画像出力および/または音声出力)を出力部5に対して行う。アプリケーション処理は、指示内容を入力として情報処理を実行し、当該情報処理の結果に応じた出力を行う処理であればどのような処理であってもよい。アプリケーション処理は、例えば、出力部5である表示装置の画面上に表示されるカーソルを指示方向に応じて移動させる処理であってもよいし、当該表示装置の画面上に表示されるオブジェクト(ゲームオブジェクト)を指示方向に応じて移動させるゲーム処理であってもよい。例えば、画面上に表示されるオブジェクト(カーソルを含む)を指示方向に応じて移動させる処理が実行される場合には、入力装置の可動部材の移動に応じてオブジェクトを応答性良く移動させることができる。ステップS7の次にステップS8の処理が実行される。
【0105】
ステップS8において、CPUは、図7に示す情報処理を終了するか否かを判定する。ステップS8の判定は、例えば、情報処理を終了する旨の指示がユーザによって行われたか否か、および/または、上記アプリケーション処理において情報処理を終了する条件が満たされたか否か等によって行われる。ステップS8の判定結果が否定である場合、ステップS2の処理が再度実行される。以降、情報処理を終了すると判定されるまで、CPUは、ステップS2〜S8の一連の処理を繰り返し実行する。一方、ステップS8の判定結果が肯定である場合、CPUは、図7に示す情報処理を終了する。
【0106】
以上に説明した情報処理によれば、アナログ入力が可能な入力装置において操作指示の有無を切り替える応答性を向上することができる。本実施形態によれば、例えば十字キーのような、アナログ入力を行うことができない入力装置を用いたゲーム操作を前提としたゲーム(ゲームプログラム)を、スライドパッドやタッチパネルのような、アナログ入力が可能な入力装置を備えるゲーム装置において適用することも可能となる。つまり、本実施形態によれば、ユーザは、十字キーを用いたゲーム操作を前提とするゲームをスライドパッドを用いて行うことができる。
【0107】
[4.変形例]
(判別範囲の位置に関する変形例)
上記実施形態においては、判別範囲は、原点を中心とした円形領域となるように設定された。すなわち、判別範囲の位置(中心位置)は原点の位置に固定された。ここで、他の実施形態においては、制御部3は、入力値が判別範囲の境界から離れる方向に変化した場合、座標平面上において入力値の変化方向に応じた方向へ中心位置が移動する円形領域となるように判別範囲を設定してもよい。
【0108】
図13は、判別領域の中心位置が移動するように設定される場合における座標平面の一例を示す図である。入力位置P1と判別範囲12との距離が所定距離L1以上となった場合、判別範囲12は、図13に示すように、入力位置P1に近づく方向へ中心位置P4が移動するように設定されてもよい。具体的には、制御部3は、判別範囲12の中心位置P4を、所定の基準位置(原点の位置)から入力位置P1の方向へ移動させるように判別範囲12を設定してもよい。本変形例においては、図13に示すように、入力位置P1と原点とを結ぶ直線上に中心位置P4が位置するように判別範囲12が設定される。なお、入力値が判別範囲の境界から離れる方向に変化した場合に、当該境界が変化後の入力位置から所定距離だけ離れた位置となるように判別範囲が設定される点については、本変形例においても上記実施形態と同様である。
【0109】
なお、本変形例においても上記実施形態と同様、判別範囲12は下限範囲13を含むように設定されてもよい(図13参照)。例えば、制御部3は、下限範囲13が判別範囲12に内接するように判別範囲12を設定してもよい。
【0110】
具体的には、本変形例においては上記ステップS14において、CPUは、次のようにして判別範囲を算出してもよい。まず、原点から入力位置P1までの距離をL、下限範囲の半径をr1とすると、CPUは、判別範囲の半径rを以下の式(1)に従って算出する。
r=(L−L1+r1)/2 (入力位置P1が判別範囲12外のとき)
r=(L+L1+r1)/2 (入力位置P1が判別範囲12内のとき) …(1)
また、判別範囲の中心位置は、所定の基準位置(原点)と入力位置とを結ぶ直線上に設定される。すなわち、CPUは、判別範囲の中心位置P4を、原点から入力位置P1の方向へ、判別範囲の半径rから下限範囲の半径r1を引いた長さだけ移動させた位置として算出する。本変形例においては、CPUは、以上のようにして算出された半径rおよび中心位置P4を表すデータを判別範囲データ26としてメモリに記憶する。
【0111】
以上のように、入力値の変化方向に応じた方向へ中心位置が移動するように判別範囲が設定される場合には、判別範囲は、当該方向を中心に拡大されるので、他の方向については拡大の度合いが小さくなる(図13参照)。これによれば、入力方向が大きく変化した場合に、変化後の入力位置が判別範囲に含まれる可能性が低くなる。例えば、図13においては、入力位置P2および入力位置P3(図10に示す入力位置P2および入力位置P3と同じ位置)は、判別範囲12に含まれない。したがって、本変形例においては、入力方向の変化に基づいて判別範囲を縮小させる処理(ステップS13およびS14)を実行しなくとも、入力方向が大きく変化する場合における誤判別の可能性を軽減することができる。本変形例においても上記実施形態と同様、CPUは、ステップS13およびS14の処理を実行してもよいし、しなくてもよい。
【0112】
(判別範囲を変化させる方法に関する変形例)
上記実施形態においては、判別範囲の境界から離れる方向に入力値が変化した場合、判別範囲は、当該境界が変化後の入力値の位置から所定距離だけ離れた位置となるように設定された。ここで、他の実施形態においては、判別範囲は、入力位置に応じて設定される基準点に基づいて境界の位置が決定されてもよい。以下、基準点を用いて判別範囲を設定する変形例について詳細に説明する。
【0113】
図14および図15は、基準点に基づいて判別範囲が設定される場合における座標平面の一例を示す図である。図14および図15において、基準点Q1は、入力値に基づいて座標平面上の位置が設定される点である。制御部3は、入力位置P1が基準点Q1から離れる方向に変化した場合、変化後の入力位置P1に近づくように変化する基準点を設定する。本変形例においては、基準点は、入力位置から所定距離内となるように入力値の変化に応じて変化する。図16は、入力位置P1から入力位置P2へと入力値が変化した場合における座標平面の一例を示す図である。上記の場合、図16に示すように、基準点Q2は、変化前の基準点Q1と変化後の入力位置P2とを結ぶ線分上であって、入力位置P2から所定距離L1となる位置に設定される。
【0114】
また、本変形例においては、判別範囲12は基準点Q1に基づいて設定される。すなわち、制御部3は、基準点Q1が境界上となるように判別範囲12を決定する。判別範囲12は、基準点Q1が境界上に位置するように設定されればどのように設定されてもよい。すなわち、図14に示すように、判別範囲12は、原点Oを中心位置として設定されてもよい。また、図15に示すように、判別範囲12は、入力位置P1に近づく方向へ中心位置P4が移動するように設定されてもよい。なお、本変形例においても上記実施形態と同様、判別範囲12は下限範囲13を含むように設定されてもよい(図14および図15参照)。入力位置P1に近づく方向へ中心位置P4が移動する場合、制御部3は、下限範囲13が判別範囲12に内接するように判別範囲12を設定してもよい。
【0115】
本変形例のように、入力位置に追従する基準点を用いて判別範囲を決定する場合には、入力方向が大きく変化すると、変化後の入力位置よりも内側(原点に近い側)に基準点が移動する。例えば図16に示されるように、入力値が入力位置P1から入力位置P2(図10に示す入力位置P2と同じ位置)へと変化した場合、変化後の基準点Q2は、入力位置P2よりも内側に設定される。これによって、判別範囲12は入力位置P2よりも内側に設定され、判別範囲12が縮小することになる。したがって、本変形例によれば上記実施形態と同様、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【0116】
図17は、本変形例における範囲設定処理の一例を示すフローチャートである。なお、本変形例においてもステップS3以外の他のステップの処理は、上記実施形態と同様であってもよい。なお、本変形例においては、ステップS1の初期処理において、原点の位置を表すデータが基準点データ27としてメモリに記憶される。つまり、初期状態においては基準点は原点の位置に設定される。
【0117】
本変形例においては、ステップS21およびS22において、入力位置から所定距離内となるように基準点が算出される。すなわち、ステップS21において、CPUは、入力位置と基準点の位置との距離が所定距離L1以上であるか否かを判定する。CPUは、入力位置データ22および基準点データ27をメモリから読み出し、上記距離を算出する。CPUは、所定距離を表すデータをメモリから読み出し、算出された距離が所定距離以上であるか否かを判定する。ステップS21の判定結果が肯定である場合、ステップS22の処理が実行される。一方、ステップS21の判定結果が否定である場合、ステップS22の処理がスキップされてステップS23の処理が実行される。
【0118】
ステップS22において、CPUは、入力位置から所定距離の位置となるように基準点を設定(移動)する。本変形例においては、基準点は、変化前の位置から入力位置の方へ移動され、入力位置から所定距離となる位置に設定される(図16参照)。具体的には、入力値を(ax,ay)とし、入力位置と変化前の基準点の位置との距離をKとすると、基準点の位置(fx、fy)は、次の式(2)に従って算出することができる。
fx=(L1/K)×(fx−ax)+ax
fy=(L1/K)×(fy−ay)+ay …(2)
CPUは、入力値データ22および基準点データ27をメモリから読み出し、入力値および変化前の基準点に基づいて、上式(2)に従って(変化後の)基準点の位置を算出する。ステップS22の次にステップS23の処理が実行される。
【0119】
以上のステップS21およびS22のように、制御部3は、入力値の位置が基準点から離れる方向に変化した場合(ステップS21でYes)、変化後の入力値の位置に近づくように変化する基準点を設定する(ステップS22)。なお、基準点の位置に近づく方向に入力値が変化した場合には、制御部3は、ステップS22の処理を実行しない、すなわち、基準点の位置を維持する(変化させない)。そのため、この場合には基準点の位置が変化しないので、判別範囲も変化せず、入力値が判別範囲の境界に近づいていくと境界を超え、操作指示の有無が切り替わることになる。
【0120】
本変形例においても上記実施形態と同様、判別範囲は下限範囲を下限として設定される。すなわち、ステップS23〜S25において、CPUは、入力値が下限範囲内となる場合、判別範囲を下限範囲となるように設定する。図18は、入力値が下限範囲内に含まれる場合における座標平面の一例を示す図である。図18においては、入力位置P1が下限範囲13内に含まれている。また、ステップS22で設定された基準点Q1は下限範囲13外に位置している。本変形例においては、入力位置P1が下限範囲内に含まれる場合には、基準点Q1が下限範囲13外に位置するかどうかにかかわらず、判別範囲12は下限範囲13と一致するように設定される。したがって、本変形例によれば上記実施形態と同様、判別範囲が小さくなりすぎることがないので、ユーザは操作指示を容易に無しにすることができる。以下、ステップS23〜S25の処理の詳細を説明する。
【0121】
ステップS23において、CPUは、入力値が下限範囲内であるか否かを判定する。ステップS23の処理は上記実施形態におけるステップS11の処理と同様である。ステップS23の判定結果が肯定である場合、ステップS24の処理が実行される。一方、ステップS23の判定結果が否定である場合、後述するステップS26の処理が実行される。
【0122】
ステップS24において、CPUは、下限範囲と一致する判別範囲を設定する。ステップS24の処理は上記実施形態におけるステップS12の処理と同様である。ステップS24の次にステップS25の処理が実行される。
【0123】
ステップS25において、CPUは、基準点の位置を入力位置と同じ位置に設定する。すなわち、CPUは、入力値データ22を読み出し、入力値と同じ値を表すデータを基準点データ27としてメモリに記憶する。これによって、次回に実行される処理ループにおいては、基準点が下限範囲内に含まれることになる。ここで、次回の処理ループにおいて、入力位置が下限範囲から少しだけ外に移動した場合を考える。この場合において、基準点が下限範囲の外側にあるとすれば、入力値が判別範囲の内側に位置し、操作指示が無しと判別されるおそれがある。これに対して、本変形例では、基準点が下限範囲内に位置するために判別範囲は下限範囲に設定される(後述するステップS26およびS27参照)。そのため、入力位置が少しでも判別範囲(下限範囲)外へ変化したことに応じて操作指示が有りと判別されるので、操作指示が無しから有りへと切り替わる際の応答性をより向上することができる。ステップS25の後、CPUは、範囲設定処理を終了する。
【0124】
また、本変形例においては、基準点が下限範囲内に含まれる場合にも、入力値が下限範囲に含まれる場合と同様、判別範囲は下限範囲となるように設定される。すなわち、ステップS26およびS27において、CPUは、基準点が下限範囲内となる場合、判別範囲を下限範囲となるように設定する。図19は、基準点が下限範囲内に含まれる場合における座標平面の一例を示す図である。図19においては、基準点Q1が下限範囲13内に含まれている。また、入力位置P1は下限範囲13外に位置している。本変形例においては、基準点Q1が下限範囲内に含まれる場合には、判別範囲12は下限範囲13と一致するように設定される。したがって、本変形例によれば上記実施形態と同様、判別範囲が小さくなりすぎることがないので、ユーザは操作指示を容易に無しにすることができる。以下、ステップS26およびS27の処理の詳細を説明する。
【0125】
ステップS26において、CPUは、基準点が下限範囲内であるか否かを判定する。具体的には、CPUは、基準点データ27および下限範囲データ25をメモリから読み出し、基準点が下限範囲内に含まれるか否かを判定する。ステップS26の判定結果が肯定である場合、ステップS27の処理が実行される。一方、ステップS26の判定結果が否定である場合、後述するステップS28の処理が実行される。
【0126】
ステップS27において、CPUは、下限範囲と一致する判別範囲を設定する。ステップS27の処理は上記実施形態におけるステップS12の処理と同様である。ステップS27の後、CPUは、範囲設定処理を終了する。
【0127】
上記ステップS23〜S27の処理のように、本変形例では、入力位置または基準点の少なくともいずれかが下限範囲内である場合、判別範囲は下限範囲となるように設定される。したがって、本変形例によれば上記実施形態と同様、判別範囲が下限範囲よりも小さくなることがないので、ユーザは操作指示を容易に無しにすることができる。
【0128】
また、本変形例においては、上限範囲が予め定められており、判別範囲は上限範囲を上限として設定される。すなわち、ステップS28およびS29において、CPUは、基準点が上限範囲外に位置する場合、判別範囲を上限範囲となるように設定する。図20は、基準点が上限範囲外に含まれる場合における座標平面の一例を示す図である。図20においては、入力位置P1が上限範囲14外に位置した結果、基準点Q1も上限範囲14外に位置している。本変形例においては、基準点Q1が上限範囲14外に位置する場合には、図20に示すように、判別範囲12は上限範囲14を超えないように(判別範囲12の全体が上限範囲14内に含まれるように)設定される。このように、本変形例によれば上記実施形態と同様、判別範囲に上限を設定することができる。本変形例によれば上記実施形態と同様、判別範囲が大きくなりすぎることがないので、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。以下、ステップS28およびS29の処理の詳細を説明する。
【0129】
ステップS28において、CPUは、基準点が上限範囲外であるか否かを判定する。具体的には、CPUは、基準点データ27および上限範囲データ28をメモリから読み出し、基準点が上限範囲外に位置するか否かを判定する。ステップS28の判定結果が肯定である場合、ステップS29の処理が実行される。一方、ステップS28の判定結果が否定である場合、後述するステップS30の処理が実行される。
【0130】
ステップS29において、CPUは、上限範囲内に含まれるように判別範囲を設定する。例えば、上記実施形態と同様、原点が中心となるように判別範囲を設定する場合(図14)には、判別範囲は、上限範囲と一致するように設定される。すなわち、CPUは、上限範囲データ28と一致する範囲を表すデータを判別範囲データ26としてメインメモリに記憶する。
【0131】
また、入力値の変化に応じた方向へ中心位置が移動するように判別範囲を設定する場合(図15)には、CPUは、例えば、判別範囲が上限範囲に内接し、かつ、下限範囲が判別範囲に内接するように判別範囲を設定する。具体的には、図20に示すように、判別範囲12の半径rは、下限範囲13の半径r1と上限範囲14の半径r2との和を2で割った大きさとなる。また、判別範囲12の中心位置P4は、原点Oから基準点Q1の方向へ、判別範囲12の半径rから下限範囲13の半径r1を減算した距離だけ移動した位置として算出される。具体的には、CPUは、下限範囲データ25および上限範囲データ28をメモリから読み出し、下限範囲の半径と上限範囲の半径とに基づいて判別範囲の半径rを算出する。さらに、基準点データ27をメモリから読み出し、基準点Q1の位置および判別範囲の半径rに基づいて判別範囲の中心位置P4を算出する。CPUは、以上のようにして算出された半径rおよび中心位置P4を表すデータを判別範囲データ26としてメモリに記憶する。ステップS29の後、CPUは範囲設定処理を終了する。
【0132】
ステップS30において、CPUは、基準点に基づいて判別範囲を設定する。本変形例においては、判別範囲は、境界が基準点を通るように設定される。例えば、上記実施形態と同様、原点が中心となるように判別範囲を設定する場合(図14)には、原点から基準点までの長さとなるように判別範囲の半径を設定する。すなわち、CPUは、基準点データ27をメモリから読み出し、基準点の位置に基づいて判別範囲の半径を算出し、算出された半径を表すデータを判別範囲データ26としてメインメモリに記憶する。
【0133】
また、入力値の変化に応じた方向へ中心位置が移動するように判別範囲を設定する場合(図15)には、例えば以下の方法で判別範囲の半径を決定してもよい。すなわち、判別範囲12の半径rは、原点から基準点Q1までの距離L5と、下限範囲の半径r1との和を2で割った大きさとして算出できる(図15参照)。また、判別範囲12の中心位置P4は、原点から、基準点Q1の方向へ、判別範囲12の半径rから下限範囲13の半径r1を減算した距離だけ移動した位置として算出される。したがって、CPUは、下限範囲データ25および基準点データ27をメモリから読み出し、下限範囲の半径と基準点の位置とに基づいて判別範囲の半径rを算出する。さらに、基準点の位置と、算出された半径および下限範囲の半径に基づいて判別範囲の中心位置P4を算出する。CPUは、以上のようにして算出された半径rおよび中心位置P4を表すデータを判別範囲データ26としてメモリに記憶する。ステップS30の後、CPUは範囲設定処理を終了する。
【0134】
以上のように、本変形例においては、CPUは、入力値の位置が基準点から離れる方向に変化した場合、変化後の入力値の位置に近づくように変化する基準点を設定し(ステップS21およびS22)、基準点が境界上となるように判別範囲を決定する(ステップS30)。このように、入力値から所定の範囲内となるように入力値に追従する基準点を用いて判別範囲を決定することによって、入力方向が大きく変化した場合には判別範囲が縮小されることとなる(図16参照)。したがって、本変形例によれば上記実施形態と同様、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【0135】
(入力値が2次元以上である場合の判別方法に関する変形例)
上記実施形態においては、判別範囲は、入力値と同じ次元の領域(2次元領域)として設定された。ここで、他の実施形態においては、入力値が2次元以上である場合、制御部3は、入力値の成分毎に(1次元の)判別範囲を設定し、入力値の各成分値が判別範囲に含まれるか否かを成分毎にそれぞれ判別してもよい。一方、本実施形態においては、制御部3は、平面上の位置を表す2次元の入力値を取得し、当該平面上における2次元領域を表す判別範囲12を設定する。したがって、本実施形態においては、入力値が判別範囲に含まれるか否かの判別処理を入力値の各成分毎に行うことなく、1回で行うことができ、判別処理を容易に行うことができる。また、本実施形態のように、入力値に基づいて指示方向を算出する場合には、2次元領域である判別範囲を用いることで、指示方向を正確に算出することができる。なお、入力値が3次元である場合には、制御部3は、入力値の成分毎に(1次元の)判別範囲を設定してもよいし、3次元の空間領域として判別範囲を設定してもよい。
【0136】
(タッチパネルを用いる場合の変形例)
上記実施形態においては、入力部2は、スライドパッドやアナログスティック等の可動部材を有する入力装置であった。ここで、他の実施形態においては、入力部2はタッチパネルあるいはタッチパッドであってもよい。なお、入力部2がタッチパネルである場合、上述の基準位置(原点)は、入力面上で予め(固定的に)設定される位置であってもよいし、入力位置に応じて移動する位置であってもよい。例えばタッチパネルの画面上に操作用の画像(例えば十字ボタンの画像)が表示される場合、当該画像における所定位置(十字ボタンの中央の位置)を上記基準位置としてもよい。
【産業上の利用可能性】
【0137】
本発明は、入力装置を用いて操作指示を行う場合において操作指示の有無を応答性良く切り替えること等を目的として、例えばゲーム装置等の情報処理装置あるいは情報処理システム、または、ゲームプログラム等の情報処理プログラム等として利用することが可能である。
【符号の説明】
【0138】
1 情報処理システム
2 入力部
3 制御部
4 プログラム格納部
5 出力部
12 判別範囲
13 下限範囲
14 上限範囲
21 情報処理プログラム
22 入力値データ
【技術分野】
【0001】
本発明は、入力装置に対するアナログ入力に基づいて操作指示の有無を判別する情報処理プログラム、情報処理装置、情報処理システム、および指示判別方法に関する。
【背景技術】
【0002】
従来、例えばアナログスティック等、アナログ入力が可能な入力装置がある。また、アナログ入力が可能な入力装置を用いてオン/オフの操作指示を行う技術がある。例えば、アナログスティックにおいて、スティックの傾斜角度が所定角度以上である場合にオン(操作指示が有る)と判断し、傾斜角度が所定角度未満である場合にオフ(操作指示が無い)と判断する方法が考えられている(例えば、特許文献1の段落0008参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平09−244802号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記方法においては、ユーザがオンとオフとを切り替えるためにスティックを大きく動かさなければならない場合があり、オンとオフとの間の切り替えの応答性が悪い場合があった。例えば、ある方向にスティックを限界まで傾倒していた場合において、操作指示をオフにするためには上記所定角度までスティックを戻さなければならない。このとき、スティックを戻すまでの時間は操作指示がオンとなるため、オンからオフへ切り替える際の応答性が悪くなっていた。
【0005】
それ故、本発明の目的は、入力装置を用いて操作指示を行う場合に、操作指示の有無を応答性良く切り替えることができる情報処理プログラム、情報処理装置、情報処理システム、および指示判別方法を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の(1)〜(18)の構成を採用した。
【0007】
(1)
本発明の一例は、入力装置に対する操作に応じて操作指示を判別する情報処理装置のコンピュータにおいて実行される情報処理プログラムである。情報処理プログラムは、取得手段と、操作指示判別手段と、範囲設定手段としてコンピュータを機能させる。
取得手段は、入力装置に対する操作に基づく入力値を取得する。操作指示判別手段は、入力値が所定の範囲である判別範囲内の値である場合と判別範囲外の値である場合とで判別結果が異なるように、入力装置に対する操作による操作指示の有無を判別する。範囲設定手段は、入力値が判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように判別範囲の大きさを変化させる。
【0008】
上記(1)の構成によれば、入力値が判別範囲の境界から離れる場合、判別範囲は入力値の方へ近づくように変化する。これによれば、入力値と判別範囲との距離が近くなるので、入力値を判別範囲に操作指示の有無を切り替えるために必要な入力値の変化量(移動量)を小さくすることができる。つまり、ユーザは、入力値を判別範囲の境界の方へ少し戻すことで容易に操作指示の有無を切り替えることができる。このように、上記(1)の構成によれば、入力装置を用いて操作指示を行う場合に、操作指示の有無を応答性良く切り替えることができる。
【0009】
(2)
範囲設定手段は、予め定められた所定の設定範囲を含むように判別範囲を設定してもよい。
【0010】
上記(2)の構成によれば、入力値に応じて判別範囲がどのように変化しても所定の設定範囲が判別範囲に含まれることとなる。したがって、ユーザは、入力位置を設定範囲内に移動させる操作によって、操作指示が無い状態へと操作指示を確実に切り替えることができる。
【0011】
(3)
設定範囲は、入力装置に対する操作が行われていない場合における入力値を含んでいてもよい。
【0012】
上記(3)の構成によれば、入力装置に対して操作が行われていない場合における入力値が設定範囲内に含まれるように設定される。したがって、ユーザは、入力装置を操作しないことで(例えば、スティックから手を離すことで)、操作指示が無い状態へと操作指示を容易に切り替えることができる。
【0013】
(4)
入力装置は、ユーザによって操作され、操作が行われない場合に所定の状態となる可動部材を有していてもよい。このとき、取得手段は、所定の状態を基準とした可動部材の位置および/または姿勢によって決まる入力値を取得する。
【0014】
上記(4)の構成によれば、ユーザが可動部材を動かすことによって操作入力を行うことが可能な入力装置が用いられる。このような入力装置においては、操作の際に可動部材を物理的に移動させる必要となるので、仮に判別範囲が固定されているとすれば、操作指示が有りと判別される状態から無しと判別される状態へと大きく可動部材を移動させる必要が生じるおそれがある。これに対して、本発明によれば、入力値に応じて判別範囲が変化するので、上記のような入力装置において、操作指示の有無を切り替えるために可動部材を移動させる距離を小さくすることができる。すなわち、ユーザは、操作指示の有無の切り替えを容易に行うことができる。
【0015】
(5)
取得手段は、2次元の入力値を取得してもよい。このとき、範囲設定手段は、2次元の入力値を表すための座標平面上における2次元領域を表す判別範囲を設定する。
【0016】
上記(5)の構成によれば、入力値が2次元であっても、入力値が判別範囲に含まれるか否かの判別処理を入力値の各成分毎に行うことなく、1回で行うことができる。したがって、判別処理を容易に行うことができる。また、上記(5)の構成を下記(13)の構成と組み合わせる場合には、2次元領域である判別範囲を用いることで、指示方向を正確に算出することができる。
【0017】
(6)
範囲設定手段は、入力装置に対する操作が行われていない場合における入力値の位置を中心とした、座標平面上における円形領域として判別範囲を設定してもよい。
【0018】
上記(6)の構成によれば、判別範囲を半径の大きさを用いて容易に管理することができる。また、入力値が判別範囲に含まれるか否かの判別処理を、入力装置に対する操作が行われていない場合における入力値の位置から入力値までの距離と判別範囲の半径の大きさとの大小比較によって行うことができ、判別処理の計算が簡易になる。
【0019】
(7)
範囲設定手段は、円形領域の中心位置から入力値の位置への方向が所定の角度よりも変化する場合、判別範囲を縮小するように変化させてもよい。
【0020】
上記(7)の構成によれば、円形領域の中心位置から入力値の位置への方向(入力方向)が大きく変化する場合、判別範囲は縮小される。ここで、入力方向が大きく変化する場合において、仮に判別範囲が変化しないとすれば、変化後の入力値が判別範囲内となるので、操作指示が無しと誤って判別されてしまうおそれがある。これに対して、上記(7)の構成によれば、上記の場合に判別範囲が縮小するので、上記のような誤判別を防止することができ、操作指示の有無をより正確に判別することができる。
【0021】
(8)
範囲設定手段は、入力値が判別範囲の境界から離れる方向に変化した場合、入力値の変化方向に応じた方向へ中心位置が移動する円形領域となるように判別範囲を設定してもよい。
【0022】
上記(8)の構成によれば、判別範囲は、入力値の変化方向に応じた方向へ中心位置が移動するように設定される。これによれば、判別範囲は、上記方向を中心に拡大されるので、他の方向については拡大の度合いが小さくなる(図13参照)。これによれば、入力方向が大きく変化した場合に、変化後の入力位置が判別範囲に含まれる可能性が低くなる。したがって、上記(8)の構成によれば、入力方向が大きく変化する場合において、変化後の入力位置が判別範囲に含まれることによって、操作指示が無しと誤って判別される可能性を軽減することができる。
【0023】
(9)
範囲設定手段は、基準点設定手段と、範囲決定手段とを含んでいてもよい。基準点設定手段は、入力値の位置が基準点から離れる方向に変化した場合、変化後の入力値の位置に近づくように変化する基準点を設定する。範囲決定手段は、基準点が境界上となるように判別範囲を決定する。
【0024】
上記(9)の構成によれば、基準点は、入力値から所定の範囲内となるように入力値に応じて設定される。したがって、入力方向が大きく変化した場合には判別範囲が縮小されることとなる(図16参照)。したがって、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【0025】
(10)
範囲設定手段は、基準点の位置に近づく方向に入力値が変化した場合、基準点の位置を維持してもよい。
【0026】
上記(10)の構成によれば、基準点の位置に近づく方向に入力値が変化した場合には、基準点の位置は変化しない。そのため、この場合には判別範囲も変化しないので、ユーザは、入力値を判別範囲の境界へ近づけるように操作することで、操作指示の有無を確実に切り替えることができる。
【0027】
(11)
範囲設定手段は、判別範囲の境界から離れる方向に入力値が変化した場合、当該境界が変化後の入力値の位置から所定距離だけ離れた位置となるように判別範囲を設定してもよい。
【0028】
上記(11)の構成によれば、入力値の位置から一定距離内に判別範囲の境界が位置するように、判別範囲を容易に制御することができる。つまり、ユーザは、入力値を判別範囲に近づく方へ少なくとも上記一定距離だけ移動させることで、操作指示の有無を確実に切り替えることができる。
【0029】
(12)
範囲設定手段は、判別範囲の境界に近づく方向に入力値が変化した場合、判別範囲を維持する。
【0030】
上記(12)の構成によれば、判別範囲の境界に近づく方向に入力値が変化した場合には、判別範囲は変化しない。そのため、ユーザは、入力値を判別範囲の境界へ近づけるように操作することで、操作指示の有無を確実に切り替えることができる。
【0031】
(13)
情報処理プログラムは、方向算出手段としてコンピュータをさらに機能させてもよい。方向算出手段は、操作指示判別手段において操作指示が有ると判別された場合、2次元の入力値を表すための座標平面上における所定の基準位置に対する入力値の位置の方向を算出する。
【0032】
上記(13)の構成によれば、ユーザは入力装置を用いて方向を指示することができ、入力装置を用いて方向を指示する操作の応答性を向上することができる。
【0033】
(14)
範囲設定手段は、判別範囲外にある入力値が当該判別範囲の境界から離れる方向に変化した場合、範囲が広がるように判別範囲を設定してもよい。
【0034】
上記(14)の構成によれば、判別範囲が拡大することで、判別範囲の境界を入力値に近づけることができる。これによって、ユーザは、入力値を判別範囲の方へ少し戻すことで容易に操作指示を無しにすることができ、操作指示を有りから無しへと切り替える際の応答性を向上することができる。
【0035】
(15)
範囲設定手段は、入力値が取り得る範囲の境界から少なくとも所定距離だけ離れた範囲を上限として判別範囲を設定してもよい。
【0036】
上記(15)の構成によれば、判別範囲が大きくなりすぎることがないので、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【0037】
(16)
範囲設定手段は、判別範囲内にある入力値が当該判別範囲の境界から離れる方向に変化した場合、範囲が狭まるように判別範囲を設定してもよい。
【0038】
上記(16)の構成によれば、判別範囲を縮小することで、判別範囲の境界を入力値に近づけることができる。これによって、ユーザは、入力値を判別範囲の外側の方へ少し移動させることで容易に操作指示を有りにすることができ、操作指示を無しから有りへと切り替える際の応答性を向上することができる。また、上記(14)の構成と(16)の構成とを組み合わせる場合には、入力値が判別範囲内にある場合と入力値が判別範囲外にある場合との両方の場合において、判別範囲の境界を入力値に近づけることができる。これによって、操作指示の有無を相互に切り替える際の応答性を向上することができる。
【0039】
(17)
範囲設定手段は、入力装置に対する操作が行われていない場合における入力値を含む範囲を下限として判別範囲を設定する。
【0040】
上記(17)の構成によれば、判別範囲が小さくなりすぎることがないので、ユーザの意図に反して操作指示が有りと判別されることを防止でき、操作指示を正確に判別することができる。
【0041】
(18)
操作指示判別手段は、入力値が判別範囲内の値である場合、操作指示が無いと判別し、入力値が判別範囲外の値である場合、当該操作指示が有ると判別してもよい。
【0042】
上記(18)の構成によれば、入力装置に対する操作が行われない場合に入力値がある基準値となり、操作が行われた場合に入力値が当該基準値から離れた値となるような入力装置において、操作指示の有無を応答性良く切り替えることができる。
【0043】
なお、本発明の別の一例は、上記(1)〜(18)の情報処理プログラムを実行することによって実現される各手段と同等の手段を備える情報処理装置あるいは情報処理システムであってもよいし、上記(1)〜(18)において実行される指示判別方法(操作指示の有無を判別する方法)であってもよい。
【発明の効果】
【0044】
本発明によれば、操作指示の有無を判別するための判別範囲の境界を入力値の変化に応じて入力値に近づけるように変化させることによって、入力装置を用いて操作指示を行う場合における操作指示の有無を応答性良く切り替えることができる。
【図面の簡単な説明】
【0045】
【図1】本実施形態に係る情報処理システムの一例を示すブロック図
【図2】本実施形態における入力値を表すための2次元座標系(座標平面)の一例を示す図
【図3】図2に示す位置から判別範囲12の境界から離れる方向へ入力位置P1が変化した場合における座標平面の一例を示す図
【図4】図3に示す位置から判別範囲12の境界に近づく方向へ入力位置P1が変化した場合における座標平面の一例を示す図
【図5】図3に示す位置から判別範囲12の境界を超えて、判別範囲12内において境界から離れる方向へ入力位置P1が変化した場合における座標平面の一例を示す図
【図6】制御部3のメモリに記憶されるデータの一例を示す図
【図7】制御部3において実行される情報処理の流れの一例を示すメインフローチャート
【図8】図7に示す範囲設定処理(ステップS2)の詳細な流れの一例を示すフローチャート
【図9】入力値が下限範囲内に含まれる場合における座標平面の一例を示す図
【図10】入力方向が変化した場合における座標平面の一例を示す図
【図11】入力値が最大となる場合における座標平面の一例を示す図
【図12】座標平面上において指示方向を算出するために設定される領域の一例を示す図
【図13】判別領域の中心位置が移動するように設定される場合における座標平面の一例を示す図
【図14】基準点に基づいて判別範囲が設定される場合における座標平面の一例を示す図
【図15】基準点に基づいて判別範囲が設定される場合における座標平面の一例を示す図
【図16】入力位置P1から入力位置P2へと入力値が変化した場合における座標平面の一例を示す図
【図17】本変形例における範囲設定処理の一例を示すフローチャート
【図18】入力値が下限範囲内に含まれる場合における座標平面の一例を示す図
【図19】基準点が下限範囲内に含まれる場合における座標平面の一例を示す図
【図20】基準点が上限範囲内に含まれる場合における座標平面の一例を示す図
【発明を実施するための形態】
【0046】
[1.情報処理システムの構成]
以下、本実施形態の一例に係る情報処理プログラム、情報処理システム(情報処理装置)、および指示判別方法について説明する。図1は、本実施形態に係る情報処理システムの一例を示すブロック図である。図1において、情報処理システム1は、入力部2、制御部3、プログラム格納部4、および出力部5を備える。情報処理システム1は、上記の各部2〜5を備える単一の情報処理装置(携帯型の情報処理装置を含む)で構成されてもよい。また、情報処理システム1は、制御部3を含む情報処理装置と、制御部3以外の他の構成を含む1以上の装置とによって構成されてもよい。情報処理システム1は、入力部2に対する操作に応じて操作指示(少なくとも操作指示の有無)を判別するものである。
【0047】
入力部2は、アナログ入力が可能な入力装置である。つまり、入力部2は、ユーザがアナログ量の入力を行うことが可能であり、入力量を検知することが可能な入力装置である。このような入力装置としては、例えば、アナログ量としてスティック部(後述する可動部材)の操作量を検知するスライドパッドまたはアナログスティックや、アナログ量として操作位置(タッチ位置)を検出するタッチパネルまたはタッチパッド等が考えられる。また、入力装置は、ユーザが把持する操作部材の位置および/または姿勢を検知することが可能な装置であってもよい。
【0048】
本実施形態においては、入力部2は、ユーザによって操作され、操作が行われない場合(ニュートラル状態となる場合)に所定の状態(基準状態と呼ぶ)となる可動部材を有する入力装置である。すなわち、入力部2は、ユーザが可動部材を動かすことによって操作入力を行うことが可能な入力装置である。このような入力装置としては、例えば、スライドパッドあるいはアナログスティック等が考えられる。
【0049】
入力部2は、入力部2に対する入力に基づく入力値を出力する。ここで、入力値は、ユーザによる入力(アナログ入力)の結果を表す値である。なお、ユーザによる入力が操作量あるいは操作位置といったアナログ入力である場合であっても、入力値自体は、アナログ値(アナログデータ)であってもよいし、デジタル値(デジタルデータ)であってもよい。本実施形態のように、入力部2は上記可動部材を有する入力装置である場合、入力値は、上記基準状態に対する可動部材の位置および/または姿勢(基準状態からの可動部材の変化量)によって決まる値である。例えば、入力部2がスライド可能な可動部材を有する入力装置(スライドパッド等)である場合、入力値は、基準状態に対する可動部材のスライド量とスライド方向とを表すデジタル値であってもよい。
【0050】
上記入力値は、1次元であってもよいし、2次元以上であってもよい。つまり、入力部2は、スライドパッドやタッチパネル等のように、2次元の入力が可能な入力装置であってもよいし、マウスホイールのような1次元の入力が可能な入力装置であってもよい。また、入力部2は、ユーザが把持する操作部材の位置および/または姿勢を検知する入力装置のように、3次元の入力が可能な入力装置であってもよい。また、入力部2は、上記入力値に加えて、他の入力情報を出力してもよい。例えば、入力部2がアナログ入力が可能な入力装置に加えてボタンを有する場合には、ボタンに対する操作を表す入力情報を出力してもよい。
【0051】
制御部3は、入力部2に対する入力に基づく入力値を取得する。そして、入力値に基づいて操作指示の有無を少なくとも判別(判断)する。操作指示とは、入力部2を用いてユーザが行う指示である。つまり、「操作指示が有る」とは、入力部2を用いて何らかの指示が行われたことを意味する。「操作指示が無い」とは、入力部2を用いた指示が行われていないことを意味する。詳細は後述するが、入力部2に対して何らかの操作が行われた場合であっても、制御部3は操作指示が無いと判別することもあり得る。また、上記操作指示の具体的な内容は、どのような種類の指示であってもよい。
【0052】
制御部3は、上記入力値に基づいて操作指示の有無を判別する情報処理を実行することができればどのような構成であってもよい。本実施形態において、制御部3は、CPUおよびメモリを有する情報処理装置である。つまり、CPUが所定の情報処理プログラムを実行することによって、制御部3における各機能が実現される。
【0053】
プログラム格納部4は、上記情報処理プログラムを記憶(格納)する。プログラム格納部4は、制御部3がアクセス可能な記憶装置であればどのようなものであってもよい。例えば、プログラム格納部4は、制御部3を含む情報処理装置内に設けられる記憶装置であってもよいし、制御部3を含む情報処理装置に着脱自在に装着される記憶媒体であってもよい。また、プログラム格納部4は、制御部3とネットワークを介して接続される記憶装置(サーバ等)であってもよい。制御部3は情報処理プログラムの一部または全部を適宜のタイミングで読み出し、読み出された情報処理プログラムをCPUが実行する。
【0054】
出力部5は、制御部3における情報処理の結果を出力する出力装置である。すなわち、制御部3は操作指示に基づく情報処理の結果を出力部5へ出力するので、出力部5は、当該情報処理の結果を画像や音声等で出力する。出力部5は、テレビあるいはモニタ等の表示装置であってもよいし、スピーカ等の音声出力装置であってもよい。
【0055】
[2.操作指示の判別方法の概要]
次に、図2〜図5を参照して、本実施形態における操作指示の判別方法について説明する。なお、以下では、入力部2が2次元の入力値を出力する場合について説明する。より具体的には、入力部2は上記可動部材を有する入力装置であり、可動部材を2次元的に移動させる操作に応じた2次元の入力値が出力されるものとする。また、操作指示の具体的な内容はどのような種類の指示であってもよいが、以下では、操作指示として方向の指示が行われる場合について説明する。すなわち、制御部3は、入力値に基づいて操作指示の有無を判別し、操作指示が有ると判別する場合、指示された方向(指示方向)を算出する。
【0056】
図2は、本実施形態における入力値を表すための2次元座標系(座標平面)の一例を示す図である。ここでは、2次元座標系の横軸をx軸とし、縦軸をy軸とする。入力位置P1は、上記座標平面における入力値の位置である。また、領域11は、入力値が取り得る範囲を表す。なお、領域11の形状は入力装置の種類によって決まる任意の形状であるが、本実施形態においては円形である。本実施形態においては、入力値は、入力部2(可動部材)に対する操作が行われていない場合(上記基準状態である場合)に原点Oの値(0,0)となり、基準状態からの可動部材の移動方向および移動量を表す座標値となる。すなわち、原点Oに対する入力位置P1の方向は、基準状態からの可動部材の移動方向に対応し、原点Oから入力位置P1までの距離は、基準状態からの可動部材の移動量に対応する。
【0057】
判別範囲12は、操作指示の有無を判別するための範囲である。すなわち、制御部3は、入力値が判別範囲内の値である場合と判別範囲外の値である場合とで判別結果が異なるように、操作指示の有無を判別する。本実施形態においては、制御部3は、入力値が判別範囲12内の値である場合、操作指示が無いと判別し、入力値が判別範囲12外の値である場合、操作指示が有ると判別する。例えば図2においては、入力位置P1が判別範囲12の外に位置するので、制御部3は操作指示が有ると判別する。なお、他の実施形態においては、入力値が判別範囲外の値である場合に操作指示が無いと判別し、入力値が判別範囲外の値である場合に操作指示が有ると判別されてもよい。また、判別範囲12の形状は、四角形や楕円形等、どのような形状であってもよいが、本実施形態においては、判別範囲12は円形領域であるとする。なお、図2においては、入力位置P1から境界までの距離は、後述する所定距離L1よりも短いものとする。
【0058】
ここで、本実施形態においては、制御部3は、入力値が判別範囲12の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように判別範囲12の大きさを変化させる。図3は、図2に示す位置から判別範囲12の境界から離れる方向へ入力位置P1が変化した場合における座標平面の一例を示す図である。図3においては、判別範囲12の外側にあった入力位置P1が判別範囲12の境界からより外側へ移動している。このとき、判別範囲12は、境界が入力位置P1に近づくようにその大きさが変化する(図3参照)。
【0059】
なお、判別範囲12を変化させる具体的な方法はどのような方法であってもよい。判別範囲12は、図3に示すように位置が変化しないように同心円上で大きさを変化させてもよいし、後述する変形例に示すように、中心位置が入力位置の変化に応じた方向へ移動するように判別範囲12が設定されてもよい。また、判別範囲12は、入力位置から所定距離内となるように設定されてもよいし、後述する変形例に示すように、入力位置から所定距離内となるように設定される基準点に基づいて設定されてもよい。
【0060】
本実施形態においては、入力位置から境界までの距離が所定距離L1以内となるように判別範囲12が設定される。すなわち、制御部3は、判別範囲12の境界から離れる方向に入力位置が変化した場合、当該境界が変化後の入力位置から所定距離L1だけ離れた位置となるように判別範囲を設定する。例えば図3に示すように、変化後の入力位置P1から境界までの距離がL2(L1よりも大きい)となった場合、当該距離が所定距離L1となるように判別範囲12の大きさが変化する。これによって、境界が入力位置P1から一定距離内となるように判別範囲12を制御することができる。
【0061】
図4は、図3に示す位置から判別範囲12の境界に近づく方向へ入力位置P1が変化した場合における座標平面の一例を示す図である。本実施形態においては、図4に示すように、判別範囲12の境界に近づく方向に入力位置P1が変化した場合には、制御部3は判別範囲12を維持する。つまり、この場合、判別範囲12は変化しない。これによって、入力位置P1が判別範囲12の境界に近づいていくと境界を超え、操作指示の有無が切り替わることになる。
【0062】
また、判別範囲12は、範囲が拡大する方向に変化してもよいし、範囲が縮小する方向に変化してもよいし、両方の方向に変化してもよい。本実施形態においては、制御部3は、判別範囲12が拡大する方向と縮小する方向との両方に判別範囲12を変化させる。すなわち、制御部3は、判別範囲12外にある入力値が当該判別範囲12の境界から離れる方向に変化した場合、範囲が広がるように判別範囲を設定する(図3参照)。また、制御部3は、判別範囲12内にある入力値が当該判別範囲12の境界から離れる方向に変化した場合、範囲が狭まるように判別範囲12を設定する。図5は、図3に示す位置から判別範囲12の境界を超えて、判別範囲12内において境界から離れる方向へ入力位置P1が変化した場合における座標平面の一例を示す図である。図5においては、入力位置P1が判別範囲12内に入り、さらに、判別範囲の境界から離れる方向に変化した結果、判別範囲12内の入力位置P1から境界までの距離L3は上記所定距離L1よりも大きくなっている。このとき、判別範囲12は、範囲が縮小するように(入力位置から境界までの距離が所定距離L1となるように)変化する。つまり、図5に示す場合においても図3に示す場合と同様、判別範囲12の境界が変化後の入力位置P1に近づくように判別範囲12の大きさが変化する。なお、他の実施形態においては、制御部3は、範囲が拡大する方向、あるいは、範囲が縮小する方向のいずれか一方向にのみ判別範囲12を変化させてもよい。
【0063】
以上のように、本実施形態においては、入力値が判別範囲12の境界から離れる場合、判別範囲12は入力値の方へ近づくように変化する。これによれば、ユーザは、入力値を判別範囲12の外側から内側へ(あるいは内側から外側へ)容易に変更することができる。例えば図3に示す場合においては、入力位置P1の移動に応じて判別範囲12が大きくなり、図5に示す場合においては、入力位置P1の移動に応じて判別範囲12が小さくなる。いずれの場合においても、ユーザは入力位置P1を少なくとも距離L1だけ移動させれば入力位置P1を判別範囲12内にすることができる。したがって、ユーザは、図3に示す状態から可動部材を基準状態の方へ少し戻すだけで容易に操作指示を無しにすることができる。また、図5に示す状態から可動部材を基準状態から離れる方向へ少し移動させるだけで容易に操作指示を有りにすることができる。このように、本実施形態においては、判別範囲12を入力値に近づけるように変化させることで、操作指示の有無を切り替える際の応答性を向上することができる。
【0064】
[3.情報処理システムにおける処理の詳細]
以下、図6〜図12を参照して、情報処理システム1における詳細な情報処理の一例について説明する。まず、情報処理において用いられる各種データについて説明する。図6は、制御部3のメモリに記憶されるデータの一例を示す図である。図6に示すように、制御部3のメモリには、情報処理プログラム21、入力値データ22、および処理用データ23が記憶される。なお、メモリには、図6に示すデータの他、制御部3における各種の情報処理に用いられるデータや、出力部5から出力すべき画像および/または音声を生成するためのデータ(画像データや音声データ)等が記憶されてもよい。
【0065】
情報処理プログラム21は、制御部3のCPUに実行させるためのプログラムである。本実施形態においては、CPUが情報処理プログラム21を実行することによって後述する情報処理(図7)が実行される。情報処理プログラム21は、任意のアプリケーションプログラム(例えばゲームプログラム)の一部として提供されてもよい。情報処理プログラム21は、プログラム格納部4からその一部または全部が適宜のタイミングで読み込まれて制御部3のメモリに記憶され、CPUによって実行される。また、情報処理プログラム21の一部または全部は、制御部3を有する情報処理装置内に(例えばライブラリとして)予め記憶されていてもよい。
【0066】
入力値データ22は、上述の入力値を表すデータである。制御部3は、入力値データ22を入力部2から取得する。入力値データ22の取得タイミングはどのようなタイミングであってもよい。本実施形態においては、入力部2は、ユーザによるアナログ入力の結果を繰り返し検知して入力値を生成し、制御部3は、入力値データ22を入力部2から繰り返し(例えば所定時間間隔に1回の割合で)取得する。
【0067】
処理用データ23は、制御部3において実行される情報処理(図7)において用いられるデータである。処理用データ23は、距離データ24、下限範囲データ25、判別範囲データ26、基準点データ27、上限範囲データ28、および、指示内容データ29を含む。なお、図6に示すデータの他、処理用データ23は、図7に示す情報処理において用いられる各種データを含んでいてもよい。
【0068】
距離データ24は、入力値を表すための座標平面上における、入力値(入力位置)から判別範囲(判別範囲の境界)までの距離を表す。なお、「入力値から判別範囲までの距離」とは、どのような基準で規定されてもよい。「入力値から判別範囲までの距離」は、例えば、入力位置から判別範囲までの最短距離であってもよいし、入力位置から原点の方向へ延ばした直線と判別範囲の境界との交点から入力位置までの距離であってもよい。また、後述する基準点が設定される場合には、入力値から判別範囲までの距離は、入力位置から基準点の位置までの距離であってもよい。
【0069】
下限範囲データ25は、判別範囲の下限の範囲を示す所定の下限範囲を表すデータである。下限範囲は、入力値の座標平面において予め定められる範囲である。下限範囲データ25は、どのような方法で取得されてもよいが、本実施形態においては、プログラム格納部4において情報処理プログラム21とともに記憶され、適宜のタイミングで情報処理プログラム21とともに読み出されて制御部3のメモリに記憶される。
【0070】
判別範囲データ26は、上述の判別範囲を表すデータである。判別範囲データ26は、判別範囲を表す情報であればどのような情報を表してもよい。例えば、判別範囲が円形領域である場合には、判別範囲データ26は判別範囲の中心位置および半径を表すものでもよい。本実施形態においては、判別範囲は原点を中心とする円領域であるので、判別範囲の半径を表すデータが判別範囲データ26として用いられる。
【0071】
基準点データ27は、後述する基準点の位置を表すデータである。詳細は後述するが基準点の位置は入力値に基づいて算出される。なお、本実施形態のように基準点を用いずに判別範囲を設定する場合には、基準点データ27はメモリに記憶されなくてもよい。
【0072】
上限範囲データ28は、判別範囲の上限を示す上限範囲を表すデータである。上限範囲が設定される場合、判別範囲は上限範囲を超えないように(判別範囲が上限範囲内に含まれるように)設定される。上限範囲データ28はどのような方法で取得されてもよいが、上記下限範囲データ25と同様に、適宜のタイミングで情報処理プログラム21とともに読み出されて制御部3のメモリに記憶されてもよい。なお、本実施形態においては、入力値の取り得る範囲11(図2参照)が有限であり、また、入力位置から所定距離L1以内となるように判別範囲が設定される。この場合、上限範囲を予め設定しておかなくても、判別範囲は一定の大きさ以上に大きくなることはない。したがって、本実施形態においては、上限範囲データ28はメモリに記憶されなくてもよい。
【0073】
指示内容データ29は、入力部2に対する操作によってユーザが指示する内容(指示内容)を表すデータである。指示内容はどのようなものであってもよいが、本実施形態においては、操作指示が有ると判別された場合、入力値に基づいて方向を表す情報(指示方向)が指示内容として算出される。
【0074】
次に、制御部3において実行される情報処理の詳細を、図7〜図12を用いて説明する。図7は、制御部3において実行される情報処理の流れの一例を示すメインフローチャートである。制御部3が上記情報処理を開始するタイミングはどのようなタイミングであってもよく、例えば、ユーザの指示に応じて上記情報処理を開始してもよい。上記情報処理の実行を開始する場合、制御部3のCPUは、メモリ等を初期化し、プログラム格納部4から情報処理プログラムをメモリに読み込む。そして、CPUによって当該情報処理プログラム21の実行が開始される。図7に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【0075】
なお、図7、図8および図17に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、上記フローチャートの各ステップの処理を制御部3のCPUが実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、CPU以外のプロセッサや専用回路が実行するようにしてもよい。
【0076】
ステップS1において、初期処理を実行する。初期処理は、ステップS2以降の処理で用いる各種パラメータの初期値を設定する等の処理である。なお、本実施形態においては、予め定められた範囲を表す下限範囲データ25が制御部3のメモリに記憶される。また、判別範囲データ26の初期値として、下限範囲と同じ範囲を表すデータがメモリに記憶される。
【0077】
上記ステップS1の次にステップS2の処理が実行される。以降、ステップS2〜S8の一連の処理からなる処理ループが所定時間に1回の割合で繰り返し実行される。
【0078】
ステップS2において、CPUは、入力部2から入力値を取得する。すなわち、入力部2から出力される入力値を表すデータを取得し、入力値データ22としてメモリに記憶する。なお、メモリには、最新の(最後に取得された)ものから順に所定個数の入力値データが記憶されてもよい。ステップS2の次にステップS3の処理が実行される。
【0079】
ステップS3において、CPUは範囲設定処理を実行する。範囲設定処理は、入力値に応じて変化するように判別範囲を設定する処理である。以下、図8を参照して、範囲設定処理の詳細を説明する。
【0080】
図8は、図7に示す範囲設定処理(ステップS3)の詳細な流れの一例を示すフローチャートである。本実施形態においては、判別範囲は上述の下限範囲を下限として設定される。すなわち、ステップS11およびS12においては、入力値が下限範囲内の値となる場合、判別範囲は下限範囲となるように設定される。以下、ステップS11およびS12の処理の詳細を説明する。
【0081】
ステップS11において、CPUは、入力値が下限範囲内であるか否かを判定する。下限範囲はどのように設定されてもよいが、本実施形態においては、原点を含むように設定され、より具体的には、原点を中心とした円形領域として設定される(図9参照)。なお、下限範囲は、入力装置の可動部材の機構に関する特性に基づいて設定されてもよい。例えば、スライドパッドやアナログスティック等の入力装置に関しては、いわゆる「遊びの範囲」、すなわち、可動部材に対する操作が行われていないと判断すべき入力値の範囲が設定される(推奨される)場合がある。下限範囲は、可動部材の機構に基づいて設定される遊びの範囲に基づいて設定されてもよい。また、下限範囲は、入力値に基づく操作指示を用いるアプリケーションの種類や操作内容に応じて異なる範囲に設定されてもよい。また、本実施形態においては、下限範囲は一定であり固定されるものとするが、他の実施形態においては、所定の状況に応じて変更されてもよい。例えば入力部2を用いた操作の種類が変更された(例えば、操作対象が変更された)ことに応じて下限範囲が変更されてもよいし、ユーザが下限範囲を設定することができるようにしてもよい。
【0082】
具体的には、CPUは、入力値データ22および下限範囲データ25をメモリから読み出し、入力値が下限範囲内に含まれるか否かを判定する。ステップS11の判定結果が肯定である場合、ステップS12の処理が実行される。一方、ステップS11の判定結果が否定である場合、ステップS13の処理が実行される。
【0083】
ステップS12において、CPUは、下限範囲と一致する判別範囲を設定する。すなわち、下限範囲と一致する範囲を表すデータを判別範囲データ26としてメインメモリに記憶する。より具体的には、下限範囲の半径と等しい長さを表すデータを判別範囲データ26としてメインメモリに記憶する。ステップS12の後、CPUは範囲設定処理を終了する。
【0084】
図9は、入力値が下限範囲内に含まれる場合における座標平面の一例を示す図である。上記ステップS11およびS12の処理のように、CPUは、上記下限範囲を下限として判別範囲を設定する。したがって、図9に示すように、下限範囲内に入力位置P1が含まれる場合には、入力位置P1から判別範囲12までの距離にかかわらず、下限範囲13が判別範囲12となる(判別範囲12と下限範囲13とが一致する)。ここで、本実施形態のように判別範囲が縮小する方向に変化する場合、判別範囲が小さくなりすぎ、操作指示を無しにする操作が難しくなるおそれがある。これに対して、本実施形態によれば、判別範囲が小さくなりすぎることがないので、ユーザは操作指示を容易に無しにすることができる。
【0085】
また、上記ステップS11およびS12によれば、それまでの判別範囲の境界が下限範囲の外側にある場合でも、入力値が下限範囲内に含まれることに応じて、判別範囲は下限範囲と一致するように設定される。このとき、仮に次回の処理ループ(ステップS2〜S8の処理ループ)において、入力位置が下限範囲から少しだけ外に移動した場合を考える。この場合、仮に判別範囲の境界が下限範囲の外側にあるとすれば、入力値が判別範囲の内側に位置し、操作指示が無しと判別されるおそれがある。これに対して、本実施形態においては、上記の場合、判別範囲は下限範囲に設定されるので、入力値は判別範囲の外側に位置し、操作指示が有りと判別される。したがって、入力位置が少しでも下限範囲外へ変化したことに応じて操作指示が有りと判別されるので、操作指示が無しから有りへと切り替わる際の応答性をより向上することができる。
【0086】
ステップS13およびS14においては、入力方向が所定の角度よりも変化する場合、判別範囲を縮小するように変化させる。ここで、入力方向とは、円形領域である判別範囲の中心位置(原点)から入力値(入力位置)への方向である。図10は、入力方向が変化した場合における座標平面の一例を示す図である。図10においては、入力位置P1が入力位置P2へ変化した場合、および、入力位置P1が入力位置P3へ変化した場合を示している。図10のように入力方向が(所定角度よりも)大きく変化した場合、ユーザによる操作は、操作指示を無しにする意図ではなく、指示する方向(指示方向)を変更する意図であると推測される。しかしながら、図10に示すように、変化後の入力位置P2またはP3が判別範囲12内となる場合には、仮に判別範囲12が変化しないとすれば入力位置P2またはP3は判別範囲内となるので、操作指示が無しと誤って判別されてしまう。そこで、本実施形態においては、入力方向が大きく変化した場合には、判別範囲12を縮小させる(図10では、下限範囲13となるように設定する)ことで、上記のような誤判別を防止することとしている。以下、ステップS13およびS14の詳細を説明する。
【0087】
ステップS13において、CPUは、入力方向の変化が所定角度よりも大きいか否かを判定する。すなわち、CPUはまず、入力値データ22をメモリから読み出し、入力方向を算出する。算出された入力方向を表すデータはメモリに記憶される。次に、CPUは、入力方向の変化角度が所定角度以上であるか否かを判定する。入力方向の変化角度は、どのような方法で算出されてもよいが、例えば、前回の処理ループ(ステップS2〜S8)で算出された入力方向に対する、今回の処理ループで算出された入力方向の角度として算出される。CPUは、算出された変化角度が、予め定められた所定角度以上であるか否かを判定する。なお、前回の入力値が原点の位置であるために前回の入力方向が算出されていない場合には、CPUは判定結果を否定とする。ステップS13の判定結果が肯定である場合、後述するステップS14の処理が実行される。一方、ステップS13の判定結果が否定である場合、ステップS14の処理がスキップされてステップS15の処理が実行される。
【0088】
ステップS14において、CPUは、判別範囲を縮小させるように変化させる。すなわち、CPUは、判別範囲データ26をメインメモリから読み出し、現在の判別範囲を縮小する。判別範囲の縮小する方法はどのような方法であってもよい。本実施形態においては、判別範囲は、下限範囲となるように縮小される。なお、他の実施形態においては、判別範囲は、現在の判別範囲を所定の大きさだけ縮小(または所定の割合で縮小)した範囲として設定されてもよい。CPUは、縮小後の判別範囲を表すデータを新たな判別範囲データ26としてメモリに記憶する。以上のステップS14の次にステップS15の処理が実行される。
【0089】
ステップS15およびS16においては、入力値の変化に応じて判別範囲の大きさが変更される。すなわち、入力値が判別範囲の境界から離れる方向に変化した場合、CPUは、当該境界が変化後の入力値に近づくように判別範囲の大きさを変化させる。以下、ステップS15およびS16の処理の詳細を説明する。
【0090】
ステップS15において、CPUは、入力位置と判別範囲との距離が所定距離以上であるか否かを判定する。具体的には、まず、CPUは上記距離を算出する。この距離の算出方法はどのような方法でもよいが、本実施形態においては、入力位置から判別範囲の境界までの最短距離が算出される。この最短距離は、原点から入力位置までの距離と、判別範囲の半径との差分として算出される。すなわち、CPUは、入力値データ22および判別範囲データ26をメモリから読み出し、入力値および判別範囲の半径に基づいて、入力値と判別範囲との距離を算出する。
【0091】
次に、CPUは、算出された距離が所定距離L1以上であるか否かを判定する。なお、本実施形態においては、所定距離L1を表すデータは予めメモリに記憶されている。すなわち、CPUは、所定距離L1を表すデータをメモリから読み出し、算出された距離と所定距離L1とを比較することで判定を行う。なお、所定距離L1は下限範囲と同様に、入力値に基づく操作指示を用いるアプリケーションの種類や操作内容に応じて異なる値に設定されてもよい。また、所定距離L1は、例えば、入力部2を用いた操作の種類が変更されたこと等、所定の状況に応じて変更されてもよい。ステップS15の判定結果が肯定である場合、ステップS16の処理が実行される。一方、ステップS15の判定結果が否定である場合、CPUは範囲設定処理を終了する。
【0092】
ステップS16において、CPUは、入力値から上記所定距離となるように判別範囲を設定する。上述のように判別範囲の位置はどのように設定されてもよいが、本実施形態においては、制御部3は、原点を中心とした円形領域として判別範囲を設定する。つまり、判別範囲の位置は原点の位置となる。これによれば、半径の大きさのみで判別範囲を容易に管理することができる。また、入力値が判別範囲に含まれるか否かの判別処理(後述するステップS4)を、原点から入力値までの距離と判別範囲の半径の大きさとの大小比較によって行うことができ、判別処理の計算が簡易になる。
【0093】
なお、判別範囲が原点を中心とした円形領域となる場合、判別範囲の半径は、原点と入力位置との間の距離から所定距離L1を引いた長さとして算出することができる。したがって、ステップS16の具体的な処理としては、CPUは、所定距離L1を表すデータと入力値データ22とをメモリから読み出し、入力値および所定距離L1に基づいて判別範囲の半径を算出する。そして、算出された半径を表すデータを判別範囲データ26としてメモリに記憶する。ステップS16の後、CPUは範囲設定処理を終了する。
【0094】
図11は、入力値が最大となる場合における座標平面の一例を示す図である。ここで、入力値が最大となる場合とは、図11に示すように、原点から入力位置までの距離が最大となる場合(範囲11の周上に入力値が位置する場合)である。この場合、本実施形態では、上記ステップS16の処理によって、入力位置から所定距離L1だけ(原点を基準として)内側に判別範囲が設定される。また、本実施形態においては、入力値がどのような値となっても、判別範囲12は上記の場合における範囲よりも大きくなることはなく、上記の場合に判別範囲12は上限(最大)の範囲となるように設定される。このように、本実施形態においては、CPUは、入力値が取り得る範囲11の境界から少なくとも所定距離L1だけ離れた範囲を上限として判別範囲を設定する。本実施形態のように判別範囲が拡大する方向に変化する場合、判別範囲が大きくなりすぎると(例えば、範囲11とほぼ同じ位置に判別範囲が設定されると)、入力値が少しだけ変化したことによって入力値が判別範囲内となるおそれがある。その結果、ユーザの意図に反して操作指示が無しと判別されてしまい、操作指示を正確に判別することができないおそれがある。これに対して、本実施形態によれば、判別範囲が大きくなりすぎることがないので、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【0095】
また、上記範囲設定処理においては、CPUは、予め定められた所定の設定範囲(下限範囲13)を含むように判別範囲12を設定する(上記ステップS12,S14,およびS16)。つまり、判別範囲12が入力値に応じてどのように変化しても、上記設定範囲は判別範囲12に常に含まれる。したがって、本実施形態においては、ユーザは、入力位置を設定範囲内に移動させることによって、操作指示が無い状態へと確実に変更することができる。ここで、本実施形態においては、設定範囲は、入力部2に対する操作が行われていない場合における入力値(原点の位置)を含むように設定される。より具体的には、設定範囲は、上記入力値を中心とする円形領域である。これによれば、入力部2の可動部材に対する操作を行わない(例えば可動部材から手を離す)ことによって入力値が設定範囲内となるので、ユーザは操作指示が無い状態へとより容易に変更することができる。
【0096】
以上に説明した範囲設定処理(ステップS3)によって判別範囲が設定されると、図7に示すステップS4〜S6において、判別範囲を用いて操作指示の有無が判別される。すなわち、入力値が判別範囲内の値である場合、制御部3は、入力部2に対する入力による操作指示が無いと判別し、入力値が判別範囲外の値である場合、当該入力による操作指示が有ると判別する。以下、ステップS4〜S6の処理の詳細を説明する。
【0097】
ステップS4において、CPUは、入力値が判別範囲内の値であるか否かを判定する。すなわち、CPUは、入力値データ22および判別範囲データ26をメモリから読み出し、入力値が判別範囲に含まれるか否かを判定する。本実施形態においては、ステップS4の判定は、原点から入力値までの距離が判別範囲の半径よりも小さいか否かによって行うことができる。ステップS4の判定結果が肯定である場合、ステップS5の処理が実行される。一方、ステップS4の判定結果が否定である場合、ステップS6の処理が実行される。
【0098】
ステップS5において、CPUは、操作指示が無しと判別する。なお、ステップS5においては、必要に応じて所定の処理を実行してもよいし、処理を実行しなくてもよい(ステップS5の処理は実行されなくてもよい)。上記所定の処理を実行する場合、CPUは、例えば、指示方向が無いことを表すデータを指示内容データ29としてメインメモリに記憶してもよい。ステップS5の次にステップS7の処理が実行される。
【0099】
一方、ステップS6において、CPUは、操作指示が有ると判別する。このとき、CPUは、入力部2に対する操作によってユーザが指示しようとする内容(指示内容)を特定する。操作指示が有ると判別された場合における指示内容は、どのような情報であってもよい。本実施形態においては、指示内容として上記指示方向が特定される。指示方向は、座標平面上における所定の基準位置に対する入力値の位置の方向である。所定の基準位置はどの位置であってもよいが、本実施形態においては原点の位置である。指示方向を算出する方法はどのような方法であってもよいが、本実施形態においては、例えば次の方法で指示方向が算出される。
【0100】
図12は、座標平面上において指示方向を算出するために設定される領域の一例を示す図である。本実施形態においては、図12に示すように、座標平面上に複数(ここでは8個)の領域31〜38が設定される。各領域31〜38は指示可能な指示方向に対応しており、具体的には、第1領域31は上方向に対応し、第2領域32は右上方向に対応し、第3領域33は右方向に対応し、第4領域34は右下方向に対応し、第5領域35は下方向に対応し、第6領域36は左下方向に対応し、第7領域37は左方向に対応し、第8領域38は左上方向に対応する。CPUは、各領域31〜38のうちで入力値が含まれる領域に対応する方向を指示方向として特定する。このように、本実施形態においては、ユーザは、入力部2を用いて指示方向として8種類の方向を指示することができる。
【0101】
なお、指示方向はどのような形式の情報であってもよく、他の実施形態においては、指示方向は、指示方向の角度(例えば原点を基準とした入力位置の方向を表す角度)を表す情報であってもよい。また、指示内容は、単に方向を表す情報(指示方向)に加えて、方向とその方向に関する量とを表す情報であってもよい。例えば、上記指示方向と、原点から入力値までの距離とを表す情報を指示内容として算出するようにしてもよい。
【0102】
ステップS6の具体的な処理としては、CPUは、入力値データ22をメモリから読み出し、入力値に基づいて指示内容を算出する。そして、算出された指示内容を表すデータを指示内容データ29としてメモリに記憶する。ステップS6の次にステップS7の処理が実行される。
【0103】
上記ステップS6の処理によれば、制御部3は、操作指示が有ると判別された場合、2次元の入力値を表すための座標平面上における所定の基準位置に対する入力値の位置の方向(上記指示方向)を算出する。したがって、本実施形態によれば、ユーザは、2次元の入力操作が可能な入力部2を用いて方向を指示することができ、具体的には、上記可動部材を基準状態から所望の方向へ移動させる操作によって、移動方向に応じた方向を指示することができる。また、本実施形態によれば、入力部2を用いて方向を指示する操作の応答性を向上することができる。
【0104】
ステップS7において、CPUは、所定のアプリケーション処理を実行する。すなわち、CPUは、指示内容データ29をメモリから読み出し、指示内容を入力として所定の情報処理を実行し、その実行結果に応じた出力(画像出力および/または音声出力)を出力部5に対して行う。アプリケーション処理は、指示内容を入力として情報処理を実行し、当該情報処理の結果に応じた出力を行う処理であればどのような処理であってもよい。アプリケーション処理は、例えば、出力部5である表示装置の画面上に表示されるカーソルを指示方向に応じて移動させる処理であってもよいし、当該表示装置の画面上に表示されるオブジェクト(ゲームオブジェクト)を指示方向に応じて移動させるゲーム処理であってもよい。例えば、画面上に表示されるオブジェクト(カーソルを含む)を指示方向に応じて移動させる処理が実行される場合には、入力装置の可動部材の移動に応じてオブジェクトを応答性良く移動させることができる。ステップS7の次にステップS8の処理が実行される。
【0105】
ステップS8において、CPUは、図7に示す情報処理を終了するか否かを判定する。ステップS8の判定は、例えば、情報処理を終了する旨の指示がユーザによって行われたか否か、および/または、上記アプリケーション処理において情報処理を終了する条件が満たされたか否か等によって行われる。ステップS8の判定結果が否定である場合、ステップS2の処理が再度実行される。以降、情報処理を終了すると判定されるまで、CPUは、ステップS2〜S8の一連の処理を繰り返し実行する。一方、ステップS8の判定結果が肯定である場合、CPUは、図7に示す情報処理を終了する。
【0106】
以上に説明した情報処理によれば、アナログ入力が可能な入力装置において操作指示の有無を切り替える応答性を向上することができる。本実施形態によれば、例えば十字キーのような、アナログ入力を行うことができない入力装置を用いたゲーム操作を前提としたゲーム(ゲームプログラム)を、スライドパッドやタッチパネルのような、アナログ入力が可能な入力装置を備えるゲーム装置において適用することも可能となる。つまり、本実施形態によれば、ユーザは、十字キーを用いたゲーム操作を前提とするゲームをスライドパッドを用いて行うことができる。
【0107】
[4.変形例]
(判別範囲の位置に関する変形例)
上記実施形態においては、判別範囲は、原点を中心とした円形領域となるように設定された。すなわち、判別範囲の位置(中心位置)は原点の位置に固定された。ここで、他の実施形態においては、制御部3は、入力値が判別範囲の境界から離れる方向に変化した場合、座標平面上において入力値の変化方向に応じた方向へ中心位置が移動する円形領域となるように判別範囲を設定してもよい。
【0108】
図13は、判別領域の中心位置が移動するように設定される場合における座標平面の一例を示す図である。入力位置P1と判別範囲12との距離が所定距離L1以上となった場合、判別範囲12は、図13に示すように、入力位置P1に近づく方向へ中心位置P4が移動するように設定されてもよい。具体的には、制御部3は、判別範囲12の中心位置P4を、所定の基準位置(原点の位置)から入力位置P1の方向へ移動させるように判別範囲12を設定してもよい。本変形例においては、図13に示すように、入力位置P1と原点とを結ぶ直線上に中心位置P4が位置するように判別範囲12が設定される。なお、入力値が判別範囲の境界から離れる方向に変化した場合に、当該境界が変化後の入力位置から所定距離だけ離れた位置となるように判別範囲が設定される点については、本変形例においても上記実施形態と同様である。
【0109】
なお、本変形例においても上記実施形態と同様、判別範囲12は下限範囲13を含むように設定されてもよい(図13参照)。例えば、制御部3は、下限範囲13が判別範囲12に内接するように判別範囲12を設定してもよい。
【0110】
具体的には、本変形例においては上記ステップS14において、CPUは、次のようにして判別範囲を算出してもよい。まず、原点から入力位置P1までの距離をL、下限範囲の半径をr1とすると、CPUは、判別範囲の半径rを以下の式(1)に従って算出する。
r=(L−L1+r1)/2 (入力位置P1が判別範囲12外のとき)
r=(L+L1+r1)/2 (入力位置P1が判別範囲12内のとき) …(1)
また、判別範囲の中心位置は、所定の基準位置(原点)と入力位置とを結ぶ直線上に設定される。すなわち、CPUは、判別範囲の中心位置P4を、原点から入力位置P1の方向へ、判別範囲の半径rから下限範囲の半径r1を引いた長さだけ移動させた位置として算出する。本変形例においては、CPUは、以上のようにして算出された半径rおよび中心位置P4を表すデータを判別範囲データ26としてメモリに記憶する。
【0111】
以上のように、入力値の変化方向に応じた方向へ中心位置が移動するように判別範囲が設定される場合には、判別範囲は、当該方向を中心に拡大されるので、他の方向については拡大の度合いが小さくなる(図13参照)。これによれば、入力方向が大きく変化した場合に、変化後の入力位置が判別範囲に含まれる可能性が低くなる。例えば、図13においては、入力位置P2および入力位置P3(図10に示す入力位置P2および入力位置P3と同じ位置)は、判別範囲12に含まれない。したがって、本変形例においては、入力方向の変化に基づいて判別範囲を縮小させる処理(ステップS13およびS14)を実行しなくとも、入力方向が大きく変化する場合における誤判別の可能性を軽減することができる。本変形例においても上記実施形態と同様、CPUは、ステップS13およびS14の処理を実行してもよいし、しなくてもよい。
【0112】
(判別範囲を変化させる方法に関する変形例)
上記実施形態においては、判別範囲の境界から離れる方向に入力値が変化した場合、判別範囲は、当該境界が変化後の入力値の位置から所定距離だけ離れた位置となるように設定された。ここで、他の実施形態においては、判別範囲は、入力位置に応じて設定される基準点に基づいて境界の位置が決定されてもよい。以下、基準点を用いて判別範囲を設定する変形例について詳細に説明する。
【0113】
図14および図15は、基準点に基づいて判別範囲が設定される場合における座標平面の一例を示す図である。図14および図15において、基準点Q1は、入力値に基づいて座標平面上の位置が設定される点である。制御部3は、入力位置P1が基準点Q1から離れる方向に変化した場合、変化後の入力位置P1に近づくように変化する基準点を設定する。本変形例においては、基準点は、入力位置から所定距離内となるように入力値の変化に応じて変化する。図16は、入力位置P1から入力位置P2へと入力値が変化した場合における座標平面の一例を示す図である。上記の場合、図16に示すように、基準点Q2は、変化前の基準点Q1と変化後の入力位置P2とを結ぶ線分上であって、入力位置P2から所定距離L1となる位置に設定される。
【0114】
また、本変形例においては、判別範囲12は基準点Q1に基づいて設定される。すなわち、制御部3は、基準点Q1が境界上となるように判別範囲12を決定する。判別範囲12は、基準点Q1が境界上に位置するように設定されればどのように設定されてもよい。すなわち、図14に示すように、判別範囲12は、原点Oを中心位置として設定されてもよい。また、図15に示すように、判別範囲12は、入力位置P1に近づく方向へ中心位置P4が移動するように設定されてもよい。なお、本変形例においても上記実施形態と同様、判別範囲12は下限範囲13を含むように設定されてもよい(図14および図15参照)。入力位置P1に近づく方向へ中心位置P4が移動する場合、制御部3は、下限範囲13が判別範囲12に内接するように判別範囲12を設定してもよい。
【0115】
本変形例のように、入力位置に追従する基準点を用いて判別範囲を決定する場合には、入力方向が大きく変化すると、変化後の入力位置よりも内側(原点に近い側)に基準点が移動する。例えば図16に示されるように、入力値が入力位置P1から入力位置P2(図10に示す入力位置P2と同じ位置)へと変化した場合、変化後の基準点Q2は、入力位置P2よりも内側に設定される。これによって、判別範囲12は入力位置P2よりも内側に設定され、判別範囲12が縮小することになる。したがって、本変形例によれば上記実施形態と同様、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【0116】
図17は、本変形例における範囲設定処理の一例を示すフローチャートである。なお、本変形例においてもステップS3以外の他のステップの処理は、上記実施形態と同様であってもよい。なお、本変形例においては、ステップS1の初期処理において、原点の位置を表すデータが基準点データ27としてメモリに記憶される。つまり、初期状態においては基準点は原点の位置に設定される。
【0117】
本変形例においては、ステップS21およびS22において、入力位置から所定距離内となるように基準点が算出される。すなわち、ステップS21において、CPUは、入力位置と基準点の位置との距離が所定距離L1以上であるか否かを判定する。CPUは、入力位置データ22および基準点データ27をメモリから読み出し、上記距離を算出する。CPUは、所定距離を表すデータをメモリから読み出し、算出された距離が所定距離以上であるか否かを判定する。ステップS21の判定結果が肯定である場合、ステップS22の処理が実行される。一方、ステップS21の判定結果が否定である場合、ステップS22の処理がスキップされてステップS23の処理が実行される。
【0118】
ステップS22において、CPUは、入力位置から所定距離の位置となるように基準点を設定(移動)する。本変形例においては、基準点は、変化前の位置から入力位置の方へ移動され、入力位置から所定距離となる位置に設定される(図16参照)。具体的には、入力値を(ax,ay)とし、入力位置と変化前の基準点の位置との距離をKとすると、基準点の位置(fx、fy)は、次の式(2)に従って算出することができる。
fx=(L1/K)×(fx−ax)+ax
fy=(L1/K)×(fy−ay)+ay …(2)
CPUは、入力値データ22および基準点データ27をメモリから読み出し、入力値および変化前の基準点に基づいて、上式(2)に従って(変化後の)基準点の位置を算出する。ステップS22の次にステップS23の処理が実行される。
【0119】
以上のステップS21およびS22のように、制御部3は、入力値の位置が基準点から離れる方向に変化した場合(ステップS21でYes)、変化後の入力値の位置に近づくように変化する基準点を設定する(ステップS22)。なお、基準点の位置に近づく方向に入力値が変化した場合には、制御部3は、ステップS22の処理を実行しない、すなわち、基準点の位置を維持する(変化させない)。そのため、この場合には基準点の位置が変化しないので、判別範囲も変化せず、入力値が判別範囲の境界に近づいていくと境界を超え、操作指示の有無が切り替わることになる。
【0120】
本変形例においても上記実施形態と同様、判別範囲は下限範囲を下限として設定される。すなわち、ステップS23〜S25において、CPUは、入力値が下限範囲内となる場合、判別範囲を下限範囲となるように設定する。図18は、入力値が下限範囲内に含まれる場合における座標平面の一例を示す図である。図18においては、入力位置P1が下限範囲13内に含まれている。また、ステップS22で設定された基準点Q1は下限範囲13外に位置している。本変形例においては、入力位置P1が下限範囲内に含まれる場合には、基準点Q1が下限範囲13外に位置するかどうかにかかわらず、判別範囲12は下限範囲13と一致するように設定される。したがって、本変形例によれば上記実施形態と同様、判別範囲が小さくなりすぎることがないので、ユーザは操作指示を容易に無しにすることができる。以下、ステップS23〜S25の処理の詳細を説明する。
【0121】
ステップS23において、CPUは、入力値が下限範囲内であるか否かを判定する。ステップS23の処理は上記実施形態におけるステップS11の処理と同様である。ステップS23の判定結果が肯定である場合、ステップS24の処理が実行される。一方、ステップS23の判定結果が否定である場合、後述するステップS26の処理が実行される。
【0122】
ステップS24において、CPUは、下限範囲と一致する判別範囲を設定する。ステップS24の処理は上記実施形態におけるステップS12の処理と同様である。ステップS24の次にステップS25の処理が実行される。
【0123】
ステップS25において、CPUは、基準点の位置を入力位置と同じ位置に設定する。すなわち、CPUは、入力値データ22を読み出し、入力値と同じ値を表すデータを基準点データ27としてメモリに記憶する。これによって、次回に実行される処理ループにおいては、基準点が下限範囲内に含まれることになる。ここで、次回の処理ループにおいて、入力位置が下限範囲から少しだけ外に移動した場合を考える。この場合において、基準点が下限範囲の外側にあるとすれば、入力値が判別範囲の内側に位置し、操作指示が無しと判別されるおそれがある。これに対して、本変形例では、基準点が下限範囲内に位置するために判別範囲は下限範囲に設定される(後述するステップS26およびS27参照)。そのため、入力位置が少しでも判別範囲(下限範囲)外へ変化したことに応じて操作指示が有りと判別されるので、操作指示が無しから有りへと切り替わる際の応答性をより向上することができる。ステップS25の後、CPUは、範囲設定処理を終了する。
【0124】
また、本変形例においては、基準点が下限範囲内に含まれる場合にも、入力値が下限範囲に含まれる場合と同様、判別範囲は下限範囲となるように設定される。すなわち、ステップS26およびS27において、CPUは、基準点が下限範囲内となる場合、判別範囲を下限範囲となるように設定する。図19は、基準点が下限範囲内に含まれる場合における座標平面の一例を示す図である。図19においては、基準点Q1が下限範囲13内に含まれている。また、入力位置P1は下限範囲13外に位置している。本変形例においては、基準点Q1が下限範囲内に含まれる場合には、判別範囲12は下限範囲13と一致するように設定される。したがって、本変形例によれば上記実施形態と同様、判別範囲が小さくなりすぎることがないので、ユーザは操作指示を容易に無しにすることができる。以下、ステップS26およびS27の処理の詳細を説明する。
【0125】
ステップS26において、CPUは、基準点が下限範囲内であるか否かを判定する。具体的には、CPUは、基準点データ27および下限範囲データ25をメモリから読み出し、基準点が下限範囲内に含まれるか否かを判定する。ステップS26の判定結果が肯定である場合、ステップS27の処理が実行される。一方、ステップS26の判定結果が否定である場合、後述するステップS28の処理が実行される。
【0126】
ステップS27において、CPUは、下限範囲と一致する判別範囲を設定する。ステップS27の処理は上記実施形態におけるステップS12の処理と同様である。ステップS27の後、CPUは、範囲設定処理を終了する。
【0127】
上記ステップS23〜S27の処理のように、本変形例では、入力位置または基準点の少なくともいずれかが下限範囲内である場合、判別範囲は下限範囲となるように設定される。したがって、本変形例によれば上記実施形態と同様、判別範囲が下限範囲よりも小さくなることがないので、ユーザは操作指示を容易に無しにすることができる。
【0128】
また、本変形例においては、上限範囲が予め定められており、判別範囲は上限範囲を上限として設定される。すなわち、ステップS28およびS29において、CPUは、基準点が上限範囲外に位置する場合、判別範囲を上限範囲となるように設定する。図20は、基準点が上限範囲外に含まれる場合における座標平面の一例を示す図である。図20においては、入力位置P1が上限範囲14外に位置した結果、基準点Q1も上限範囲14外に位置している。本変形例においては、基準点Q1が上限範囲14外に位置する場合には、図20に示すように、判別範囲12は上限範囲14を超えないように(判別範囲12の全体が上限範囲14内に含まれるように)設定される。このように、本変形例によれば上記実施形態と同様、判別範囲に上限を設定することができる。本変形例によれば上記実施形態と同様、判別範囲が大きくなりすぎることがないので、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。以下、ステップS28およびS29の処理の詳細を説明する。
【0129】
ステップS28において、CPUは、基準点が上限範囲外であるか否かを判定する。具体的には、CPUは、基準点データ27および上限範囲データ28をメモリから読み出し、基準点が上限範囲外に位置するか否かを判定する。ステップS28の判定結果が肯定である場合、ステップS29の処理が実行される。一方、ステップS28の判定結果が否定である場合、後述するステップS30の処理が実行される。
【0130】
ステップS29において、CPUは、上限範囲内に含まれるように判別範囲を設定する。例えば、上記実施形態と同様、原点が中心となるように判別範囲を設定する場合(図14)には、判別範囲は、上限範囲と一致するように設定される。すなわち、CPUは、上限範囲データ28と一致する範囲を表すデータを判別範囲データ26としてメインメモリに記憶する。
【0131】
また、入力値の変化に応じた方向へ中心位置が移動するように判別範囲を設定する場合(図15)には、CPUは、例えば、判別範囲が上限範囲に内接し、かつ、下限範囲が判別範囲に内接するように判別範囲を設定する。具体的には、図20に示すように、判別範囲12の半径rは、下限範囲13の半径r1と上限範囲14の半径r2との和を2で割った大きさとなる。また、判別範囲12の中心位置P4は、原点Oから基準点Q1の方向へ、判別範囲12の半径rから下限範囲13の半径r1を減算した距離だけ移動した位置として算出される。具体的には、CPUは、下限範囲データ25および上限範囲データ28をメモリから読み出し、下限範囲の半径と上限範囲の半径とに基づいて判別範囲の半径rを算出する。さらに、基準点データ27をメモリから読み出し、基準点Q1の位置および判別範囲の半径rに基づいて判別範囲の中心位置P4を算出する。CPUは、以上のようにして算出された半径rおよび中心位置P4を表すデータを判別範囲データ26としてメモリに記憶する。ステップS29の後、CPUは範囲設定処理を終了する。
【0132】
ステップS30において、CPUは、基準点に基づいて判別範囲を設定する。本変形例においては、判別範囲は、境界が基準点を通るように設定される。例えば、上記実施形態と同様、原点が中心となるように判別範囲を設定する場合(図14)には、原点から基準点までの長さとなるように判別範囲の半径を設定する。すなわち、CPUは、基準点データ27をメモリから読み出し、基準点の位置に基づいて判別範囲の半径を算出し、算出された半径を表すデータを判別範囲データ26としてメインメモリに記憶する。
【0133】
また、入力値の変化に応じた方向へ中心位置が移動するように判別範囲を設定する場合(図15)には、例えば以下の方法で判別範囲の半径を決定してもよい。すなわち、判別範囲12の半径rは、原点から基準点Q1までの距離L5と、下限範囲の半径r1との和を2で割った大きさとして算出できる(図15参照)。また、判別範囲12の中心位置P4は、原点から、基準点Q1の方向へ、判別範囲12の半径rから下限範囲13の半径r1を減算した距離だけ移動した位置として算出される。したがって、CPUは、下限範囲データ25および基準点データ27をメモリから読み出し、下限範囲の半径と基準点の位置とに基づいて判別範囲の半径rを算出する。さらに、基準点の位置と、算出された半径および下限範囲の半径に基づいて判別範囲の中心位置P4を算出する。CPUは、以上のようにして算出された半径rおよび中心位置P4を表すデータを判別範囲データ26としてメモリに記憶する。ステップS30の後、CPUは範囲設定処理を終了する。
【0134】
以上のように、本変形例においては、CPUは、入力値の位置が基準点から離れる方向に変化した場合、変化後の入力値の位置に近づくように変化する基準点を設定し(ステップS21およびS22)、基準点が境界上となるように判別範囲を決定する(ステップS30)。このように、入力値から所定の範囲内となるように入力値に追従する基準点を用いて判別範囲を決定することによって、入力方向が大きく変化した場合には判別範囲が縮小されることとなる(図16参照)。したがって、本変形例によれば上記実施形態と同様、ユーザの意図に反して操作指示が無しと判別されることを防止でき、操作指示を正確に判別することができる。
【0135】
(入力値が2次元以上である場合の判別方法に関する変形例)
上記実施形態においては、判別範囲は、入力値と同じ次元の領域(2次元領域)として設定された。ここで、他の実施形態においては、入力値が2次元以上である場合、制御部3は、入力値の成分毎に(1次元の)判別範囲を設定し、入力値の各成分値が判別範囲に含まれるか否かを成分毎にそれぞれ判別してもよい。一方、本実施形態においては、制御部3は、平面上の位置を表す2次元の入力値を取得し、当該平面上における2次元領域を表す判別範囲12を設定する。したがって、本実施形態においては、入力値が判別範囲に含まれるか否かの判別処理を入力値の各成分毎に行うことなく、1回で行うことができ、判別処理を容易に行うことができる。また、本実施形態のように、入力値に基づいて指示方向を算出する場合には、2次元領域である判別範囲を用いることで、指示方向を正確に算出することができる。なお、入力値が3次元である場合には、制御部3は、入力値の成分毎に(1次元の)判別範囲を設定してもよいし、3次元の空間領域として判別範囲を設定してもよい。
【0136】
(タッチパネルを用いる場合の変形例)
上記実施形態においては、入力部2は、スライドパッドやアナログスティック等の可動部材を有する入力装置であった。ここで、他の実施形態においては、入力部2はタッチパネルあるいはタッチパッドであってもよい。なお、入力部2がタッチパネルである場合、上述の基準位置(原点)は、入力面上で予め(固定的に)設定される位置であってもよいし、入力位置に応じて移動する位置であってもよい。例えばタッチパネルの画面上に操作用の画像(例えば十字ボタンの画像)が表示される場合、当該画像における所定位置(十字ボタンの中央の位置)を上記基準位置としてもよい。
【産業上の利用可能性】
【0137】
本発明は、入力装置を用いて操作指示を行う場合において操作指示の有無を応答性良く切り替えること等を目的として、例えばゲーム装置等の情報処理装置あるいは情報処理システム、または、ゲームプログラム等の情報処理プログラム等として利用することが可能である。
【符号の説明】
【0138】
1 情報処理システム
2 入力部
3 制御部
4 プログラム格納部
5 出力部
12 判別範囲
13 下限範囲
14 上限範囲
21 情報処理プログラム
22 入力値データ
【特許請求の範囲】
【請求項1】
入力装置に対する操作に応じて操作指示を判別する情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
前記入力装置に対する操作に基づく入力値を取得する取得手段と、
前記入力値が所定の範囲である判別範囲内の値である場合と前記判別範囲外の値である場合とで判別結果が異なるように、前記入力装置に対する操作による操作指示の有無を判別する操作指示判別手段と、
前記入力値が前記判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように前記判別範囲の大きさを変化させる範囲設定手段として前記コンピュータを機能させる、情報処理プログラム。
【請求項2】
前記範囲設定手段は、予め定められた所定の設定範囲を含むように前記判別範囲を設定する、請求項1に記載の情報処理プログラム。
【請求項3】
前記設定範囲は、前記入力装置に対する操作が行われていない場合における入力値を含む、請求項2に記載の情報処理プログラム。
【請求項4】
前記入力装置は、ユーザによって操作され、操作が行われない場合に所定の状態となる可動部材を有し、
前記取得手段は、前記所定の状態を基準とした前記可動部材の位置および/または姿勢によって決まる入力値を取得する、請求項1から請求項3のいずれか1項に記載の情報処理プログラム。
【請求項5】
前記取得手段は、2次元の入力値を取得し、
前記範囲設定手段は、前記2次元の入力値を表すための座標平面上における2次元領域を表す判別範囲を設定する、請求項1から請求項4のいずれか1項に記載の情報処理プログラム。
【請求項6】
前記範囲設定手段は、前記入力装置に対する操作が行われていない場合における入力値の位置を中心とした、前記座標平面上における円形領域として前記判別範囲を設定する、請求項5に記載の情報処理プログラム。
【請求項7】
前記範囲設定手段は、前記円形領域の中心位置から前記入力値の位置への方向が所定の角度よりも変化する場合、判別範囲を縮小するように変化させる、請求項6に記載の情報処理プログラム。
【請求項8】
前記範囲設定手段は、前記入力値が前記判別範囲の境界から離れる方向に変化した場合、入力値の変化方向に応じた方向へ中心位置が移動する円形領域となるように前記判別範囲を設定する、請求項5に記載の情報処理プログラム。
【請求項9】
前記範囲設定手段は、
前記入力値の位置が基準点から離れる方向に変化した場合、変化後の入力値の位置に近づくように変化する基準点を設定する基準点設定手段と、
前記基準点が前記判別範囲の境界上となるように前記判別範囲を決定する範囲決定手段とを含む、請求項5、請求項6または請求項8に記載の情報処理プログラム。
【請求項10】
前記範囲設定手段は、前記基準点の位置に近づく方向に前記入力値が変化した場合、前記基準点の位置を維持する、請求項9に記載の情報処理プログラム。
【請求項11】
前記範囲設定手段は、前記判別範囲の境界から離れる方向に前記入力値が変化した場合、当該境界が変化後の入力値の位置から所定距離だけ離れた位置となるように前記判別範囲を設定する、請求項1から請求項8のいずれか1項に記載の情報処理プログラム。
【請求項12】
前記範囲設定手段は、前記判別範囲の境界に近づく方向に前記入力値が変化した場合、前記判別範囲を維持する、請求項1から請求項8、および、請求項11のいずれか1項に記載の情報処理プログラム。
【請求項13】
前記操作指示判別手段において前記操作指示が有ると判別された場合、2次元の入力値を表すための座標平面上における所定の基準位置に対する入力値の位置の方向を算出する方向算出手段として前記コンピュータをさらに機能させる、請求項1から請求項12のいずれか1項に記載の情報処理プログラム。
【請求項14】
前記範囲設定手段は、前記判別範囲外にある前記入力値が当該判別範囲の境界から離れる方向に変化した場合、範囲が広がるように前記判別範囲を設定する、請求項1から請求項13のいずれか1項に記載の情報処理プログラム。
【請求項15】
前記範囲設定手段は、前記入力値が取り得る範囲の境界から少なくとも所定距離だけ離れた範囲を上限として前記判別範囲を設定する、請求項14に記載の情報処理プログラム。
【請求項16】
前記範囲設定手段は、前記判別範囲内にある前記入力値が当該判別範囲の境界から離れる方向に変化した場合、範囲が狭まるように前記判別範囲を設定する、請求項1から請求項15のいずれか1項に記載の情報処理プログラム。
【請求項17】
前記範囲設定手段は、前記入力装置に対する操作が行われていない場合における入力値を含む範囲を下限として前記判別範囲を設定する、請求項16に記載の情報処理プログラム。
【請求項18】
前記操作指示判別手段は、前記入力値が前記判別範囲内の値である場合に前記操作指示が無いと判別し、前記入力値が前記判別範囲外の値である場合に前記操作指示が有ると判別する、請求項1から請求項17のいずれか1項に記載の情報処理プログラム。
【請求項19】
入力装置に対する操作に応じて操作指示を判別する情報処理装置であって、
前記入力装置に対する操作に基づく入力値を取得する取得部と、
前記入力値が所定の範囲である判別範囲内の値である場合と前記判別範囲外の値である場合とで判別結果が異なるように、前記入力装置に対する操作による操作指示の有無を判別する操作指示判別部と、
前記入力値が前記判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように前記判別範囲の大きさを変化させる範囲設定部とを備える、情報処理装置。
【請求項20】
入力装置に対する操作に応じて操作指示を判別する情報処理システムであって、
前記入力装置を含み、入力装置に対する操作に基づく入力値を出力する入力部と、
前記入力値が所定の範囲である判別範囲内の値である場合と前記判別範囲外の値である場合とで判別結果が異なるように、前記入力装置に対する操作による操作指示の有無を判別する操作指示判別部と、
前記入力値が前記判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように前記判別範囲の大きさを変化させる範囲設定部とを備える、情報処理システム。
【請求項21】
入力装置に対する操作に応じて操作指示を判別する情報処理装置によって実行される指示判別方法であって、
前記入力装置に対する操作に基づく入力値を取得し、
前記入力値が所定の範囲である判別範囲内の値である場合と前記判別範囲外の値である場合とで判別結果が異なるように、前記入力装置に対する操作による操作指示の有無を判別し、
前記入力値が前記判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように前記判別範囲の大きさを変化させる、指示判別方法。
【請求項1】
入力装置に対する操作に応じて操作指示を判別する情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
前記入力装置に対する操作に基づく入力値を取得する取得手段と、
前記入力値が所定の範囲である判別範囲内の値である場合と前記判別範囲外の値である場合とで判別結果が異なるように、前記入力装置に対する操作による操作指示の有無を判別する操作指示判別手段と、
前記入力値が前記判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように前記判別範囲の大きさを変化させる範囲設定手段として前記コンピュータを機能させる、情報処理プログラム。
【請求項2】
前記範囲設定手段は、予め定められた所定の設定範囲を含むように前記判別範囲を設定する、請求項1に記載の情報処理プログラム。
【請求項3】
前記設定範囲は、前記入力装置に対する操作が行われていない場合における入力値を含む、請求項2に記載の情報処理プログラム。
【請求項4】
前記入力装置は、ユーザによって操作され、操作が行われない場合に所定の状態となる可動部材を有し、
前記取得手段は、前記所定の状態を基準とした前記可動部材の位置および/または姿勢によって決まる入力値を取得する、請求項1から請求項3のいずれか1項に記載の情報処理プログラム。
【請求項5】
前記取得手段は、2次元の入力値を取得し、
前記範囲設定手段は、前記2次元の入力値を表すための座標平面上における2次元領域を表す判別範囲を設定する、請求項1から請求項4のいずれか1項に記載の情報処理プログラム。
【請求項6】
前記範囲設定手段は、前記入力装置に対する操作が行われていない場合における入力値の位置を中心とした、前記座標平面上における円形領域として前記判別範囲を設定する、請求項5に記載の情報処理プログラム。
【請求項7】
前記範囲設定手段は、前記円形領域の中心位置から前記入力値の位置への方向が所定の角度よりも変化する場合、判別範囲を縮小するように変化させる、請求項6に記載の情報処理プログラム。
【請求項8】
前記範囲設定手段は、前記入力値が前記判別範囲の境界から離れる方向に変化した場合、入力値の変化方向に応じた方向へ中心位置が移動する円形領域となるように前記判別範囲を設定する、請求項5に記載の情報処理プログラム。
【請求項9】
前記範囲設定手段は、
前記入力値の位置が基準点から離れる方向に変化した場合、変化後の入力値の位置に近づくように変化する基準点を設定する基準点設定手段と、
前記基準点が前記判別範囲の境界上となるように前記判別範囲を決定する範囲決定手段とを含む、請求項5、請求項6または請求項8に記載の情報処理プログラム。
【請求項10】
前記範囲設定手段は、前記基準点の位置に近づく方向に前記入力値が変化した場合、前記基準点の位置を維持する、請求項9に記載の情報処理プログラム。
【請求項11】
前記範囲設定手段は、前記判別範囲の境界から離れる方向に前記入力値が変化した場合、当該境界が変化後の入力値の位置から所定距離だけ離れた位置となるように前記判別範囲を設定する、請求項1から請求項8のいずれか1項に記載の情報処理プログラム。
【請求項12】
前記範囲設定手段は、前記判別範囲の境界に近づく方向に前記入力値が変化した場合、前記判別範囲を維持する、請求項1から請求項8、および、請求項11のいずれか1項に記載の情報処理プログラム。
【請求項13】
前記操作指示判別手段において前記操作指示が有ると判別された場合、2次元の入力値を表すための座標平面上における所定の基準位置に対する入力値の位置の方向を算出する方向算出手段として前記コンピュータをさらに機能させる、請求項1から請求項12のいずれか1項に記載の情報処理プログラム。
【請求項14】
前記範囲設定手段は、前記判別範囲外にある前記入力値が当該判別範囲の境界から離れる方向に変化した場合、範囲が広がるように前記判別範囲を設定する、請求項1から請求項13のいずれか1項に記載の情報処理プログラム。
【請求項15】
前記範囲設定手段は、前記入力値が取り得る範囲の境界から少なくとも所定距離だけ離れた範囲を上限として前記判別範囲を設定する、請求項14に記載の情報処理プログラム。
【請求項16】
前記範囲設定手段は、前記判別範囲内にある前記入力値が当該判別範囲の境界から離れる方向に変化した場合、範囲が狭まるように前記判別範囲を設定する、請求項1から請求項15のいずれか1項に記載の情報処理プログラム。
【請求項17】
前記範囲設定手段は、前記入力装置に対する操作が行われていない場合における入力値を含む範囲を下限として前記判別範囲を設定する、請求項16に記載の情報処理プログラム。
【請求項18】
前記操作指示判別手段は、前記入力値が前記判別範囲内の値である場合に前記操作指示が無いと判別し、前記入力値が前記判別範囲外の値である場合に前記操作指示が有ると判別する、請求項1から請求項17のいずれか1項に記載の情報処理プログラム。
【請求項19】
入力装置に対する操作に応じて操作指示を判別する情報処理装置であって、
前記入力装置に対する操作に基づく入力値を取得する取得部と、
前記入力値が所定の範囲である判別範囲内の値である場合と前記判別範囲外の値である場合とで判別結果が異なるように、前記入力装置に対する操作による操作指示の有無を判別する操作指示判別部と、
前記入力値が前記判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように前記判別範囲の大きさを変化させる範囲設定部とを備える、情報処理装置。
【請求項20】
入力装置に対する操作に応じて操作指示を判別する情報処理システムであって、
前記入力装置を含み、入力装置に対する操作に基づく入力値を出力する入力部と、
前記入力値が所定の範囲である判別範囲内の値である場合と前記判別範囲外の値である場合とで判別結果が異なるように、前記入力装置に対する操作による操作指示の有無を判別する操作指示判別部と、
前記入力値が前記判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように前記判別範囲の大きさを変化させる範囲設定部とを備える、情報処理システム。
【請求項21】
入力装置に対する操作に応じて操作指示を判別する情報処理装置によって実行される指示判別方法であって、
前記入力装置に対する操作に基づく入力値を取得し、
前記入力値が所定の範囲である判別範囲内の値である場合と前記判別範囲外の値である場合とで判別結果が異なるように、前記入力装置に対する操作による操作指示の有無を判別し、
前記入力値が前記判別範囲の境界から離れる方向に変化した場合、当該境界が変化後の入力値に近づくように前記判別範囲の大きさを変化させる、指示判別方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2012−128864(P2012−128864A)
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【公開請求】
【出願番号】特願2011−285510(P2011−285510)
【出願日】平成23年12月27日(2011.12.27)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成24年7月5日(2012.7.5)
【国際特許分類】
【出願番号】特願2011−285510(P2011−285510)
【出願日】平成23年12月27日(2011.12.27)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]