(57)【特許請求の範囲】
【請求項１】
入力装置から出力されたデータの補正を行う情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
前記コンピュータを、
前記入力装置から出力された入力データを、処理対象データとして取得する入力データ取得手段と、
前記入力データが、前記入力装置の入力操作可能範囲により規定される上限値に到達したとき、または前記上限値を超えたときに、前記処理対象データを、前記上限値より大きい所定の値となるまで、逐次的に更新する第１入力データ更新手段として機能させる、情報処理プログラム。
【請求項２】
前記第１入力データ更新手段は、前記処理対象データを、前記上限値より大きい所定の値に近づけるように更新する、請求項１に記載の情報処理プログラム。
【請求項３】
前記第１入力データ更新手段は、前記処理対象データを、所定量ずつ前記上限値より大きい所定の値に近づけるように更新する、請求項２に記載の情報処理プログラム。
【請求項４】
前記入力データが、前記入力装置の入力操作可能範囲により規定される上限値に到達したとき、または前記上限値を超えたときの、前記入力データに基づく量の単位時間当たりの変化量に応じて、前記第１入力データ更新手段は、前記処理対象データを更新する、請求項１から請求項３までのいずれかに記載の情報処理プログラム。
【請求項５】
前記入力データは、前記入力装置における所定位置と対応づけられる基準位置を設定したときの、当該基準位置から変位した点の位置を示すデータとして規定される、請求項１から請求項４までのいずれかに記載の情報処理プログラム。
【請求項６】
前記第１入力データ更新手段は、前記入力データで規定される位置と、前記基準位置である原点との間の距離の単位時間当たりの変化に応じて、前記処理対象データを更新する、請求項５に記載の情報処理プログラム。
【請求項７】
前記第１入力データ更新手段は、前記入力データにより規定される位置を示す位置ベクトルと、時間軸上で当該入力データの直前または直後の入力データにより規定される位置ベクトルとの差分ベクトルをとり、当該差分ベクトルの大きさを計算することで、前記入力データに基づく量の単位時間当たりの変化量に応じた、前記処理対象データの更新を行う、請求項５に記載の情報処理プログラム。
【請求項８】
前記入力データが、前記入力装置の入力操作可能範囲により規定される上限値に到達したか、または前記上限値を超えた後であって、時間軸上で当該入力データの直後の入力データが、前記入力装置の入力操作可能範囲により規定される上限値に到達していないときに、
前記処理対象データを、前記上限値より大きい所定の値から当該上限値まで逐次的に更新する、第２入力データ更新手段としてさらに機能させる、請求項１から請求項７までのいずれかに記載の情報処理プログラム。
【請求項９】
前記第２入力データ更新手段は、前記処理対象データを、前記上限値に近づけるように更新する、請求項８に記載の情報処理プログラム。
【請求項１０】
前記第２入力データ更新手段は、前記処理対象データを、所定量ずつ前記上限値に近づけるように更新する、請求項９に記載の情報処理プログラム。
【請求項１１】
前記入力データが、前記入力装置の入力操作可能範囲により規定される上限値に到達したか、または前記上限値を超えた後であって、時間軸上で当該入力データの直後の入力データが、前記入力装置の入力操作可能範囲により規定される上限値に到達していないときの、前記入力データに基づく量の単位時間当たりの変化量に応じて、前記第２入力データ更新手段は、前記処理対象データを更新する、請求項８から請求項１０までのいずれかに記載の情報処理プログラム。
【請求項１２】
前記入力データが、前記入力装置の入力操作可能範囲により規定される上限値に到達したとき、または前記上限値を超えたときに、前記第１入力データ更新手段は、前記入力データに所定値を乗ずることで正規化した後に、当該正規化された入力データに基づく量の単位時間当たりの変化量に応じて、前記処理対象データを更新する、請求項１に記載の情報処理プログラム。
【請求項１３】
前記コンピュータを、
前記入力データ取得手段が前記入力データを処理対象データとして取得する前に、前記入力装置から出力された入力データに対して、当該出力された入力データに対応して所定の範囲に収まるような値を得るために変換をなし、当該変換を受けた値を、前記入力データ取得手段により取得される入力データとして新たに保持する予備補正手段としてさらに機能させる、請求項１に記載の情報処理プログラム。
【請求項１４】
前記コンピュータを、
前記第１入力データ更新手段によって逐次的に更新された前記処理対象データを入力値として所定の処理を行う処理手段としてさらに機能させる、請求項１から１３のいずれかに記載の情報処理プログラム。
【請求項１５】
前記コンピュータを、
前記第２入力データ更新手段によって逐次的に更新された前記処理対象データを入力値として所定の処理を行う処理手段としてさらに機能させる、請求項８から１１のいずれかに記載の情報処理プログラム。
【請求項１６】
前記入力データは、多次元データである、請求項１から１５までのいずれかに記載の情報処理プログラム。
【請求項１７】
入力装置から出力されたデータの補正を行う情報処理装置であって、
前記入力装置から出力された入力データを、処理対象データとして取得する入力データ取得手段と、
前記入力データが、前記入力装置の入力操作可能範囲により規定される上限値に到達したとき、または前記上限値を超えたときに、前記処理対象データを、前記上限値より大きい所定の値となるまで、逐次的に更新する第１入力データ更新手段とを備える、情報処理装置。
【請求項１８】
入力装置から出力されたデータの補正を情報処理装置が行うための情報処理方法であって、
前記情報処理装置の入力データ取得手段が、前記入力装置から出力された入力データを、処理対象データとして取得するステップと、
前記入力データが、前記入力装置の入力操作可能範囲により規定される上限値に到達したとき、または前記上限値を超えたときに、前記情報処理装置の第１入力データ更新手段が、前記処理対象データを、前記上限値より大きい所定の値となるまで、逐次的に更新するステップを含む、情報処理方法。
【請求項１９】
入力装置から出力されたデータの補正を行う情報処理システムであって、
前記入力装置から出力された入力データを、処理対象データとして取得する入力データ取得手段と、
前記入力データが、前記入力装置の入力操作可能範囲により規定される上限値に到達したとき、または前記上限値を超えたときに、前記処理対象データを、前記上限値より大きい所定の値となるまで、逐次的に更新する第１入力データ更新手段とを備える、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理装置、情報処理方法および情報処理システムに関する。より具体的には、本発明は、入力装置から取得されたデータを補正する、情報処理プログラム、情報処理装置、情報処理方法および情報処理システムに関する。
【背景技術】
【０００２】
従来、２次元入力が可能なアナログ式のジョイスティックなどは、それに対する入力操作に応じて出力される２次元方向それぞれの入力値に対して、所定の異なる変換定数を乗じて変換を行うことにより、２次元方向それぞれに対して異なった入力を行っていた（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１０５３２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
アナログ式ジョイスティック、アナログスティックなどの入力装置は、それらを構成する部材の一部がユーザによる操作に応じて移動（並進、回転を含む）すること、およびその移動量を観測することによって、その移動量に応じた出力値を情報処理装置に対するアナログ入力を達成する。ここで、移動する部材（以下、可動部材）は、ハードウェアとしての物理的制約を受けることに起因して、２次元方向それぞれの入力達成するために当該部材が物理的に移動できる範囲（以下、可動範囲）に限界を有する。
【０００５】
したがって、上述の可動範囲が小さい入力装置は、その入力装置が入力操作に応じて提供すべき出力値（当該入力装置を利用する情報処理装置にとっては、入力値となる値）との関係で、種々の課題を抱えていた。
【０００６】
例えば、入力装置が最終的に提供しようとする出力値の範囲が大きければ、それに対応するだけの大きな可動範囲を物理的に提供できる入力装置が、その入力装置の良好な操作性を容易に実現できる点では望ましい。ところが、ハードウェアの小型化が望まれるような状況では、そのハードウェアにおける物理的制約に起因して、当該可動範囲の大きさを維持すること、または大きくすることは困難を伴う。このような状況では、入力装置が出力しようとする値の範囲を、限られた可動範囲で対応しなければならない。これは、入力装置の操作性を著しく損なう。特に、可動範囲の上限に対して比較的小さな移動量で入力する場合には、操作者の意図通りの入力操作が困難であるという状況があった。
【０００７】
そこで、上述のような物理的な制約を伴う入力装置であっても、より良好な操作性を達成し得る情報処理プログラム等を提供することが所望される。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、その一例として、以下のような態様で提供され得る。以下で示した具体的な記載のいずれもが、本発明の外延を理解するために示した例示的な記載であって、本発明がこの例に限定されることを意図するものではない。すなわち、当業者は、その具体的な記載から、本発明に関する記載および技術常識に基づいて均等な範囲を実施することができることが理解される。
【０００９】
本発明に係る１つの態様において、本発明は、入力装置から出力されたデータの補正を行う情報処理装置のコンピュータにおいて実行される情報処理プログラムを提供する。この情報処理プログラムは、そのコンピュータを、入力データ取得手段と、第１入力データ更新手段として機能させる。
【００１０】
ここで、上述の入力データ取得手段は、上記入力装置から出力された入力データを、処理対象データとして取得する。また、上述の第１入力データ更新手段は、上記入力データが、上記入力装置の入力操作可能範囲により規定される上限値に到達したとき、または上記上限値を超えたときに、上記処理対象データを、上記上限値より大きい所定の値となる  まで、逐次的に更新する。
【００１１】
本願明細書に使用される場合、入力装置に係る「入力操作可能範囲」との用語は、当該入力装置の特性を記述する変数またはその組合わせにおいて、入力装置に対する入力操作が許容される際の当該変数またはその組合わせの集合をいう。
【００１２】
また、入力データに係る「入力操作可能範囲により規定される上限値」とは、「入力装置の入力操作可能範囲」に基づき規定される変数（例えば、移動量、距離、座標）が、入力装置自体の特性（例えば、アナログスティックの場合、その部材の可動範囲など）に制限をうけたときに規定される当該変数の上限値である。なお、ここでいう上限値としては、その用いる変数に応じて、符号付の数値を比較した場合だけでなく、絶対値を比較した場合における上限値も含み得る。また、入力データが、２以上の成分（数値）の組合せ（例えば、２次元の座標）である場合、ここでいう、入力データに係る上限値は、その成分同士の所定の関係性を表す誘導された変数（例えば、当該２次元座標を有する点と原点との距離）において上限値を与える入力データ（成分の組合せ）であってもよい。
【００１３】
但し、この上限値は、入力装置に対する物理的な入力操作に対応した出力値の上限値そのものと一致する場合もあるが、当該入力装置が機能するシステム全体の設計上の制約などに起因して、この上限値は、入力装置に対する物理的な入力操作に対応した出力値の上限値そのものと一致しない場合もある。
【００１４】
後者の場合の例としては、当該入力装置が用いられるシステムの設計上の要請から、入力装置自体の入力操作に対応した出力の上限値の近傍に達した状態を、入力装置自体の入力操作に対応した出力の上限値に達した状態としてみなす場合が挙げられる。すなわち、「入力操作可能範囲により規定される上限値」は、当該入力装置が使用されるシステムにおいて、入力操作において実質的に拘束をうける状況を反映した値である。
【００１５】
１つの実施形態において、上記第１入力データ更新手段は、上記処理対象データを、上記上限値より大きい所定の値に近づけるように更新してもよい。
【００１６】
他の実施形態において、上記第１入力データ更新手段は、上記処理対象データを、所定量ずつ上記上限値より大きい所定の値に近づけるように更新してもよい。
【００１７】
別の実施形態において、上記入力データが、上記入力装置の入力操作可能範囲により規定される上限値に到達したとき、またはその上限値を超えたときの、その入力データに基づく量の単位時間当たりの変化量に応じて、第１入力データ更新手段が、その処理対象データを更新してもよい。
【００１８】
さらに別の実施形態において、上記入力データは、上記入力装置における所定位置と対応づけられる基準位置を設定したときの、当該基準位置から変位した点の位置を示すデータとして規定してもよい。
【００１９】
さらに別の実施形態において、上記第１入力データ更新手段は、上記入力データで規定される位置と、上記基準位置である原点との間の距離の単位時間当たりの変化に応じて、上記処理対象データを更新してもよい。
【００２０】
別の実施形態において、上記第１入力データ更新手段は、上記入力データにより規定される位置を示す位置ベクトルと、時間軸上で当該入力データの直前または直後の入力データにより規定される位置ベクトルとの差分ベクトルをとり、当該差分ベクトルの大きさを計算することで、上記入力データに基づく量の単位時間当たりの変化量に応じた、上記処理対象データの更新をおこなってもよい。
【００２１】
さらに別の実施形態において、上記入力データが、上記入力装置の入力操作可能範囲により規定される上限値に到達したか、または上記上限値を超えた後であって、時間軸上で当該入力データの直後の入力データが、上記入力装置の入力操作可能範囲により規定される上限値に到達していないときに、上記処理対象データを、上記上限値より大きい所定の値から当該上限値まで逐次的に更新する、第２入力データ更新手段としてさらに機能させてもよい。
【００２２】
さらに別の実施形態において、上記第２入力データ更新手段は、上記処理対象データを、上記上限値に近づけるように更新してもよい。
【００２３】
さらに別の実施形態において、上記第２入力データ更新手段は、上記処理対象データを、所定量ずつ上記上限値に近づけるように更新してもよい。
【００２４】
１つの実施形態において、上記入力データが、上記入力装置の入力操作可能範囲により規定される上限値に到達したか、または上記上限値を超えた後であって、時間軸上で当該入力データの直後の入力データが、前記入力装置の入力操作可能範囲により規定される上限値に到達していないときの、上記入力データに基づく量の単位時間当たりの変化量に応じて、上記第２入力データ更新手段は、上記処理対象データを更新してもよい。
【００２５】
１つの実施形態において、上記入力データが、上記入力装置の入力操作可能範囲により規定される上限値に到達したとき、または上記上限値を超えたときに、上記第１入力データ更新手段は、上記入力データに所定値を乗ずることで正規化した後に、当該正規化された入力データに基づく量の単位時間当たりの変化量に応じて、上記処理対象データを更新してもよい。
【００２６】
１つの実施形態において、上記コンピュータを、上記入力データ取得手段が上記入力データを処理対象データとして取得する前に、上記入力データに対してクランプ処理を行う予備補正手段としてさらに機能させてもよい。
【００２７】
１つの実施形態において、上記コンピュータを、上記第１入力データ更新手段によって逐次的に更新された上記処理対象データを入力値として所定の処理を行う処理手段としてさらに機能させてもよい。
【００２８】
１つの実施形態において、上記コンピュータを、上記第２入力データ更新手段によって逐次的に更新された上記処理対象データを入力値として所定の処理を行う処理手段としてさらに機能させてもよい。
【００２９】
１つの実施形態において、上記入力データは、多次元データであってもよい。
【００３０】
本発明の別の態様において、上述の情報処理プログラムは、それを実行する情報処理装置として使用されたとしても、情報処理システムとして使用されてもよい。また、本発明は、上述のような情報プログラム、情報処理装置、情報処理システムなどとして実装され得る、情報処理を行うための方法も含む。
【００３１】
なお、本明細書で使用される場合、「コンピュータ読み取り可能な記憶媒体」との用語は、プログラム、コードおよび／またはデータをコンピュータシステムによって使用するために記憶することが可能な、任意の装置または媒体をいう。コンピュータ読み取り可能な記憶媒体は、コンピュータシステムによって読み取りが可能である限りにおいて、揮発性であっても、不揮発性であってもよい。コンピュータ読み取り可能な記憶媒体としては、例えば、磁気テープ、ハードディスクドライブ（ＨＤＤ）、コンパクトディスク（ＣＤ）、デジタルバーサタイルディスク（ＤＶＤ）、ブルーレイディスク（ＢＤ）、半導体メモリなどが挙げられるが、これらに限られない。
【００３２】
また、本明細書において使用される場合、「システム」（例えば、情報処理システム、ゲームシステム）との用語は、１つの装置で構成されてもよく、また、複数の装置であって、その各々の装置が他の装置のいずれかと通信可能であるものとして構成されてもよい。
【発明の効果】
【００３３】
本発明によって、物理的な制約を伴う入力装置であっても、良好な操作性を達成し得る情報処理プログラム等が提供される。
【図面の簡単な説明】
【００３４】
【図１】開状態におけるゲーム装置１０の正面図
【図２】開状態におけるゲーム装置１０の側面図
【図３】閉状態におけるゲーム装置１０の左側面図、正面図、右側面図および背面図
【図４】ゲーム装置１０の内部構成を示すブロック図
【図５Ａ】アナログスティック１５の操作例を示す模式図
【図５Ｂ】アナログスティック１５に対して入力操作が行われたときに移動するアナログスティック１５の部材（キートップ）の可動範囲と、アナログスティック１５がその入力操作に対して出力する値の範囲との関係を説明するための模式図
【図５Ｃ】本発明の一実施形態における入力値補正処理プログラム７１を用いた際に、キートップの可動範囲の擬似的に拡大された範囲と、アナログスティック１５がその入力操作に対して出力する値の範囲との関係の一例を示した図
【図６】アナログスティック１５が実現する２次元入力による入力値を、本発明の一実施形態に係る入力値補正処理プログラムが処理することで得られる補正値を説明するための一群のグラフを示す図
【図７】ゲーム装置１０のメインメモリ３２のメモリマップを示す図
【図８Ａ】本発明の例示的な実施形態に係る入力値補正処理のメインフローの一例を示す図
【図８Ｂ】予備補正処理の流れの一例を示したフローチャート
【図８Ｃ】入力値補正処理の流れの一例を示したフローチャート
【発明を実施するための形態】
【００３５】
（ゲーム装置の構成例）
以下、本発明の一例示的な実施形態に係るゲーム装置について説明する。図１から図３までは、ゲーム装置１０の外観を示す平面図である。ゲーム装置１０は携帯型のゲーム装置であり、図１から図３までに示すように折り畳み可能に構成されている。図１および図２は、開いた状態（開状態）におけるゲーム装置１０を示し、図３は、閉じた状態（閉状態）におけるゲーム装置１０を示している。図１は、開状態におけるゲーム装置１０の正面図であり、図２は、開状態におけるゲーム装置１０の右側面図である。ゲーム装置１０は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置１０は、交換可能なメモリカード内に記憶され、または、サーバーや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【００３６】
まず、図１から図３までを参照して、ゲーム装置１０の外観構成について説明する。図１〜図３に示されるように、ゲーム装置１０は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に接続されている。本実施形態では、各ハウジング１１および２１は共に横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【００３７】
図１および図２に示されるように、下側ハウジング１１の上側長辺部分には、下側ハウジング１１の内側面（主面）１１Ｂに対して垂直な方向に突起する突起部１１Ａが設けられる。また、上側ハウジング２１の下側長辺部分には、上側ハウジング２１の下側面から当該下側面に垂直な方向に突起する突起部２１Ａが設けられる。下側ハウジング１１の突起部１１Ａと上側ハウジング２１の突起部２１Ａとが連結されることにより、下側ハウジング１１と上側ハウジング２１とが、折り畳み可能に接続される。
【００３８】
（下側ハウジングの説明）
まず、下側ハウジング１１の構成について説明する。図１から図３までに示すように、下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｌ（図１、図３）、アナログスティック１５、ＬＥＤ１６Ａ〜１６Ｂ、挿入口１７、および、マイクロフォン用孔１８が設けられる。以下、これらの詳細について説明する。
【００３９】
図１に示すように、下側ＬＣＤ１２は下側ハウジング１１に収納される。下側ＬＣＤ１２は横長形状であり、長辺方向が下側ハウジング１１の長辺方向に一致するように配置される。下側ＬＣＤ１２は下側ハウジング１１の中央に配置される。下側ＬＣＤ１２は、下側ハウジング１１の内側面（主面）に設けられ、下側ハウジング１１に設けられた開口部から当該下側ＬＣＤ１２の画面が露出される。ゲーム装置１０を使用しない場合には閉状態としておくことによって、下側ＬＣＤ１２の画面が汚れたり傷ついたりすることを防止することができる。下側ＬＣＤ１２の画素数は、例えば、２５６ｄｏｔ×１９２ｄｏｔ（横×縦）であってもよい。下側ＬＣＤ１２は、後述する上側ＬＣＤ２２とは異なり、画像を（立体視可能ではなく）平面的に表示する表示装置である。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側ＬＣＤ１２として、任意の解像度の表示装置を利用することができる。
【００４０】
図１に示されるように、ゲーム装置１０は、入力装置として、タッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上に装着されている。なお、本実施形態では、タッチパネル１３は抵抗膜方式のタッチパネルである。
【００４１】
各操作ボタン１４Ａ〜１４Ｌは、所定の入力を行うための入力装置である。図１に示されるように、下側ハウジング１１の内側面（主面）には、各操作ボタン１４Ａ〜１４Ｌのうち、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌが、設けられる。十字ボタン１４Ａは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅは、十字状に配置される。ボタン１４Ａ〜１４Ｅ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌには、ゲーム装置１０が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン１４Ａは選択操作等に用いられ、各操作ボタン１４Ｂ〜１４Ｅは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン１４Ｆは、ゲーム装置１０の電源をオン／オフするために用いられる。
【００４２】
アナログスティック１５は、方向入力が可能な入力装置の一種である。本例においては、アナログスティック１５は、下側ハウジング１１の内側面の下側ＬＣＤ１２より左側領域の上部領域に設けられる。より具体的には、図１に示すように、十字ボタン１４Ａが下側ＬＣＤ１２より左側領域の下部領域に設けられるので、アナログスティック１５は、十字ボタン１４Ａの上方に設けられる。また、アナログスティック１５、および、十字ボタン１４Ａは、下側ハウジングを把持した左手の親指で操作可能な位置に設計される。また、アナログスティック１５を上部領域に設けたことにより、下側ハウジング１１を把持する左手の親指が自然と位置するところにアナログスティック１５が配され、十字ボタン１４Ａは、左手の親指を少し下にずらした位置に配される。
【００４３】
アナログスティック１５の構造としては、そのキートップが、下側ハウジング１１の内側面に平行にスライドするように構成されている。アナログスティック１５は、ゲーム装置１０が実行するプログラムに応じて機能する。例えば、３次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置１０によって実行される場合、アナログスティック１５は、当該所定のオブジェクトを３次元仮想空間内で移動させるための入力装置として機能する。この場合において、例えば、所定のオブジェクトはアナログスティック１５のキートップがスライドした方向に移動される。
【００４４】
アナログスティック１５は、上下左右および斜め方向の任意の方向（３６０°全方向）にそのキートップを（所定の範囲にある）任意量だけ基準位置から移動することでアナログ入力を可能としたものとして構成され得る。アナログスティック１５は、ユーザがそのキートップに対して行った任意方向の任意量からなる入力操作に応じた、２次元の出力値を与える。より具体的には、キートップのデフォルト位置と、キートップに対して行われた操作により与えられたキートップの位置との相対的な位置関係が、（例えば、ポテンシオメータのような移動量を電圧に変換する素子を利用することで）電気的に認識され、その結果がアナログスティック１５の２次元出力値として与えられる（すなわち、アナログスティック１５は、２次元入力が可能な入力装置である）。
【００４５】
十字状に配置される、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅの４つのボタンは、下側ハウジング１１を把持する右手の親指が自然と位置するところに配置される。また、これらの４つのボタンと、アナログスティック１５とは、下側ＬＣＤ１２を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの４つのボタンを使用して方向指示入力をすることも可能である。
【００４６】
また、下側ハウジング１１の内側面には、マイクロフォン用孔１８が設けられる。マイクロフォン用孔１８の下部には後述する音声入力装置としてのマイク（図４参照）が設けられ、当該マイクがゲーム装置１０の外部の音を検出する。
【００４７】
図３（ａ）は閉状態におけるゲーム装置１０の左側面図であり、図３（ｂ）は閉状態におけるゲーム装置１０の正面図であり、図３（ｃ）は閉状態におけるゲーム装置１０の右側面図であり、図３（ｄ）は閉状態におけるゲーム装置１０の背面図である。図３（ｂ）および（ｄ）に示されるように、下側ハウジング１１の上側面には、Ｌボタン１４ＧおよびＲボタン１４Ｈが設けられている。Ｌボタン１４Ｇは、下側ハウジング１１の上面の左端部に設けられ、Ｒボタン１４Ｈは、下側ハウジング１１の上面の右端部に設けられる。Ｌボタン１４ＧおよびＲボタン１４Ｈは、例えば、撮像部のシャッターボタン（撮影指示ボタン）として機能することができる。また、図３（ａ）に示されるように、下側ハウジング１１の左側面には、音量ボタン１４Ｉが設けられる。音量ボタン１４Ｉは、ゲーム装置１０が備えるスピーカの音量を調整するために用いられる。
【００４８】
図３（ａ）に示されるように、下側ハウジング１１の左側面には開閉可能なカバー部１１Ｃが設けられる。このカバー部１１Ｃの内側には、ゲーム装置１０とデータ保存用外部メモリ４５とを電気的に接続するためのコネクタ（図示せず）が設けられる。データ保存用外部メモリ４５は、コネクタに着脱自在に装着される。データ保存用外部メモリ４５は、例えば、ゲーム装置１０によって撮像された画像のデータを記憶（保存）するために用いられる。なお、上記コネクタおよびそのカバー部１１Ｃは、下側ハウジング１１の右側面に設けられてもよい。
【００４９】
また、図３（ｄ）に示されるように、下側ハウジング１１の上側面には、ゲーム装置１０とゲームプログラムを記録した外部メモリ４４を挿入するための挿入口１１Ｄが設けられ、その挿入口１１Ｄの内部には、外部メモリ４４と電気的に着脱自在に接続するためのコネクタ（図示せず）が設けられる。当該外部メモリ４４がゲーム装置１０に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよびその挿入口１１Ｄは、下側ハウジング１１の他の側面（例えば、右側面等）に設けられてもよい。
【００５０】
また、図１および図３（ｃ）に示されるように、下側ハウジング１１の下側面にはゲーム装置１０の電源のＯＮ／ＯＦＦ状況をユーザに通知する第１ＬＥＤ１６Ａ、下側ハウジング１１の右側面にはゲーム装置１０の無線通信の確立状況をユーザに通知する第２ＬＥＤ１６Ｂが設けられる。ゲーム装置１０は他の機器との間で無線通信を行うことが可能であり、第１ＬＥＤ１６Ｂは、無線通信が確立している場合に点灯する。ゲーム装置１０は、例えば、ＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。下側ハウジング１１の右側面には、この無線通信の機能を有効／無効にする無線スイッチ１９が設けられる（図３（ｃ）参照）。
【００５１】
なお、図示は省略するが、下側ハウジング１１には、ゲーム装置１０の電源となる充電式電池が収納され、下側ハウジング１１の側面（例えば、上側面）に設けられた端子を介して当該電池を充電することができる。
【００５２】
（上側ハウジングの説明）
次に、上側ハウジング２１の構成について説明する。図１〜図３に示すように、上側ハウジング２１には、上側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）２２、外側撮像部２３（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）、内側撮像部２４、３Ｄ調整スイッチ２５、および、３Ｄインジケータ２６が設けられる。以下、これらの詳細について説明する。
【００５３】
図１に示すように、上側ＬＣＤ２２は上側ハウジング２１に収納される。上側ＬＣＤ２２は、横長形状であり、長辺方向が上側ハウジング２１の長辺方向に一致するように配置される。上側ＬＣＤ２２は上側ハウジング２１の中央に配置される。上側ＬＣＤ２２の画面の面積は、下側ＬＣＤ１２の画面の面積よりも大きく設定される。また、上側ＬＣＤ２２の画面は、下側ＬＣＤ１２の画面よりも横長に設定される。すなわち、上側ＬＣＤ２２の画面のアスペクト比における横幅の割合は、下側ＬＣＤ１２の画面のアスペクト比における横幅の割合よりも大きく設定される。
【００５４】
上側ＬＣＤ２２の画面は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、上側ハウジング２１に設けられた開口部から当該上側ＬＣＤ２２の画面が露出される。また、図２に示すように、上側ハウジング２１の内側面は、透明なスクリーンカバー２７によって覆われている。当該スクリーンカバー２７は、上側ＬＣＤ２２の画面を保護するとともに、上側ＬＣＤ２２と上側ハウジング２１の内側面と一体的にさせ、これにより統一感を持たせている。上側ＬＣＤ２２の画素数は、例えば、６４０ｄｏｔ×２００ｄｏｔ（横×縦）であってもよい。なお、本実施形態では上側ＬＣＤ２２は液晶表示装置であるとしたが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置などが利用されてもよい。また、上側ＬＣＤ２２として、任意の解像度の表示装置を利用することができる。
【００５５】
上側ＬＣＤ２２は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。
【００５６】
外側撮像部２３は、上側ハウジング２１の外側面（上側ＬＣＤ２２が設けられた主面と反対側の背面）２１Ｄに設けられた２つの撮像部（２３ａおよび２３ｂ）の総称である。
【００５７】
図１の破線および図３（ｂ）の実線で示されるように、外側撮像部２３を構成する外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、上側ＬＣＤ２２の画面の横方向と平行に並べられて配置される。すなわち、２つの撮像部を結んだ直線が上側ＬＣＤ２２の画面の横方向と平行になるように、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂが配置される。
【００５８】
なお、本実施例においては、外側撮像部（左）２３ａおよび外側撮像部（右）２３はハウジングに固定されており、撮像方向を変更することはできない。
【００５９】
また、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、上側ＬＣＤ２２（上側ハウジング２１）の左右方向に関して中央から対称となる位置にそれぞれ配置される。
【００６０】
このように、外側撮像部２３の２つの撮像部（２３ａおよび２３ｂ）が、上側ＬＣＤ２２の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側ＬＣＤ２２を正視した場合に、外側撮像部２３の撮像方向をユーザの視線方向と一致させることができる。また、外側撮像部２３は、上側ＬＣＤ２２の画面の上端より上方の裏側の位置に配置されるため、外側撮像部２３と上側ＬＣＤ２２とが上側ハウジング２１の内部で干渉することがない。したがって、外側撮像部２３を上側ＬＣＤ２２の画面の裏側に配置する場合と比べて、上側ハウジング２１を薄く構成することが可能となる。
【００６１】
内側撮像部２４は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部２４は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００６２】
図１に示すように、内側撮像部２４は、上側ハウジング２１を開いた状態において、上側ハウジング２１の上部であって、上側ＬＣＤ２２の画面の上端よりも上方に配置され、上側ハウジング２１の左右方向に関して中央の位置（上側ハウジング２１（上側ＬＣＤ２２の画面）を左右に２等分する線の線上）に配置される。具体的には、図１および図３（ｂ）に示されるように、内側撮像部２４は、上側ハウジング２１の内側面であって、外側撮像部２３の左右の撮像部（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）の中間の裏側の位置に配置される。すなわち、上側ハウジング２１の外側面に設けられた外側撮像部２３の左右の撮像部を上側ハウジング２１の内側面に投影した場合、当該投影した左右の撮像部の中間に、内側撮像部２４が設けられる。図３（ｂ）で示される破線２４は、上側ハウジング２１の内側面に存在する内側撮像部２４を表している。
【００６３】
このように、内側撮像部２４は、外側撮像部２３とは反対方向を撮像する。内側撮像部２４は、上側ハウジング２１の内側面であって、外側撮像部（左）２３ａと外側撮像部（右）２３ｂの中間位置の裏側に設けられる。これにより、ユーザが上側ＬＣＤ２２を正視した際、内側撮像部２４でユーザの顔を正面から撮像することができる。また、外側撮像部２３の左右の撮像部と内側撮像部２４とが上側ハウジング２１の内部で干渉することがないため、上側ハウジング２１を薄く構成することが可能となる。
【００６４】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。また、３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視可能な画像（立体画像）の立体感を調整するために用いられる。
【００６５】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示す。３Ｄインジケータ２６は、ＬＥＤであり、上側ＬＣＤ２２の立体表示モードが有効の場合に点灯する。
【００６６】
また、上側ハウジング２１の内側面には、スピーカ孔２１Ｅが設けられる。
【００６７】
（ゲーム装置１０の内部構成）
次に、図４を参照して、ゲーム装置１０の内部の電気的構成について説明する。図４は、ゲーム装置１０の内部構成を示すブロック図である。図４に示すように、ゲーム装置１０は、上述した各部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、ローカル通信モジュール３７、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、電源回路４０、およびインターフェイス回路（Ｉ／Ｆ回路）４１等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００６８】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２等を含む情報処理手段である。情報処理部３１のＣＰＵ３１１は、ゲーム装置１０内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４４やデータ保存用内部メモリ３５）に記憶されているプログラムを実行することによって、当該プログラムに応じた処理（例えば、撮影処理や、後述するゲーム処理）を実行する。なお、情報処理部３１のＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部３１は、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。情報処理部３１のＧＰＵ３１２は、ＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。そして、ＧＰＵ３１２は、ＶＲＡＭ３１３に描画された画像を上側ＬＣＤ２２および／または下側ＬＣＤ１２に出力し、上側ＬＣＤ２２および／または下側ＬＣＤ１２に当該画像が表示される。
【００６９】
情報処理部３１には、メインメモリ３２、外部メモリＩ／Ｆ３３、データ保存用外部メモリＩ／Ｆ３４、および、データ保存用内部メモリ３５が接続される。外部メモリＩ／Ｆ３３は、外部メモリ４４を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４５を着脱自在に接続するためのインターフェイスである。
【００７０】
メインメモリ３２は、情報処理部３１（のＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ３２は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部（外部メモリ４４や他の機器等）から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ３２として例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。
【００７１】
外部メモリ４４は、情報処理部３１によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ４４は、例えば読み取り専用の半導体メモリで構成される。外部メモリ４４が外部メモリＩ／Ｆ３３に接続されると、情報処理部３１は外部メモリ４４に記憶されたプログラムを読み込むことができる。情報処理部３１が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ４５は、不揮発性の読み書き可能なメモリ（例えば、ＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４５には、外側撮像部２３で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ４５がデータ保存用外部メモリＩ／Ｆ３４に接続されると、情報処理部３１はデータ保存用外部メモリ４５に記憶された画像を読み込み、上側ＬＣＤ２２および／または下側ＬＣＤ１２に当該画像を表示することができる。
【００７２】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えば、ＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【００７３】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３７は、所定の通信方式（例えば赤外線通信）により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３６およびローカル通信モジュール３７は情報処理部３１に接続される。情報処理部３１は、無線通信モジュール３６を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３７を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００７４】
また、情報処理部３１には、加速度センサ３９が接続される。加速度センサ３９は、３軸（ｘｙｚ軸）方向に沿った直線方向の加速度（直線加速度）の大きさを検出する。加速度センサ３９は、下側ハウジング１１の内部に設けられる。加速度センサ３９は、図１に示すように、下側ハウジング１１の長辺方向をｘ軸、下側ハウジング１１の短辺方向をｙ軸、下側ハウジング１１の内側面（主面）に対して垂直な方向をｚ軸として、各軸の直線加速度の大きさを検出する。
【００７５】
また、情報処理部３１には、ＲＴＣ３８および電源回路４０が接続される。ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻（日付）を計算する。電源回路４０は、ゲーム装置１０が有する電源（下側ハウジング１１に収納される上記充電式電池）からの電力を制御し、ゲーム装置１０の各部品に電力を供給する。
【００７６】
また、情報処理部３１には、Ｉ／Ｆ回路４１が接続される。Ｉ／Ｆ回路４１には、マイク４２およびスピーカ４３が接続される。具体的には、Ｉ／Ｆ回路４１には、図示しないアンプを介してスピーカ４３が接続される。マイク４２は、ユーザの音声を検知して音声信号をＩ／Ｆ回路４１に出力する。アンプは、Ｉ／Ｆ回路４１からの音声信号を増幅し、音声をスピーカ４３から出力させる。また、タッチパネル１３はＩ／Ｆ回路４１に接続される。Ｉ／Ｆ回路４１は、マイク４２およびスピーカ４３（アンプ）の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。タッチ位置データは、タッチパネル１３の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行う。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われた位置を知ることができる。
【００７７】
下側ＬＣＤ１２および上側ＬＣＤ２２は情報処理部３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１（のＧＰＵ３１２）の指示に従って画像を表示する。本実施形態では、情報処理部３１は、上側ＬＣＤ２２に立体画像（立体視可能な画像）を表示させる。
【００７８】
外側撮像部２３および内側撮像部２４は、情報処理部３１に接続される。外側撮像部２３および内側撮像部２４は、情報処理部３１の指示に従って画像を撮像し、撮像した画像データを情報処理部３１に出力する。
【００７９】
３Ｄ調整スイッチ２５は、情報処理部３１に接続される。３Ｄ調整スイッチ２５は、スライダ２５ａの位置に応じた電気信号を情報処理部３１に送信する。
【００８０】
また、３Ｄインジケータ２６は、情報処理部３１に接続される。情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。例えば、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。以上がゲーム装置１０の内部構成の説明である。
【００８１】
（入力値補正処理プログラムの動作の概要）
以下、本実施形態における入力値補正処理プログラム７１（図７のメモリマップ参照）の動作の概要について説明する。本実施形態では、アナログスティック１５は、ゲームプログラム７０行うゲーム処理における入力の一部を提供する入力装置である。そして、このアナログスティック１５から提供される当該ゲーム処理の入力が、入力値補正処理プログラム７１の機能により補正され、補正入力値となる。ゲームプログラム７０は、当該補正入力値を利用してゲーム処理を行う。
【００８２】
図５Ａから図５Ｃまでの図を参照しつつ、入力値補正処理プログラム７１の動作等の概要について説明する。
【００８３】
（キートップの可動範囲と、入力操作に応じた出力）
入力値補正処理プログラム７１の動作等について説明する前に、アナログスティック１５のキートップの可動範囲と、入力操作に応じた出力との関係について簡単に説明する。
【００８４】
図５Ａは、アナログスティック１５の操作例を示している。アナログスティック１５は、それを構成する部材の一部であるキートップに対してユーザが行った任意方向の任意量の移動操作に応じた、２次元データとして出力値を提供する。より具体的には、アナログスティック１５は、当該キートップの基準位置からの変位が観測され、その変位した量（移動量）を得て、その移動量に対応するように２次元データとして出力値を提供する。
【００８５】
図５Ｂは、アナログスティック１５に対して入力操作を行われた際に移動するアナログスティック１５の部材（キートップ）の可動範囲と、アナログスティック１５がその入力操作に対して出力する値の範囲との関係を説明するための模式図である。アナログスティック１５は、キートップの基準位置と、キートップに対して行われた操作により与えられたキートップの位置との相対的な位置関係およびその移動量を観測し、その移動量に対応した２次元出力値を与える。この図５Ｂは、本発明の一実施形態として提供される入力値補正処理プログラムにより処理を行っていない場合について説明する。
【００８６】
このように、アナログスティック１５は、２次元入力が可能なデバイスである。この入力において得られる２次元データを、（ｉｘ，ｉｙ）で表現する。ここで、この２次元データの一方の成分について説明を行えば、他方の成分についての説明は類似のものとして扱えることから、ここでは、主に、成分ｉｘについて説明する。ただし、成分ｉｘと、成分ｉｙとの間には、一定の関係性が成立している場合もあり、これについては後述する。
【００８７】
図５Ｂで示される模式図の横軸は、成分ｉｘと対応づけられる、アナログスティック１５に対する入力操作に応じたキートップの移動量（この場合、キートップの基準位置からの移動距離Ｘ１）を示している（また、これと同様に、移動距離Ｙ１は、成分ｉｙと対応づけられる変数として規定される）。アナログスティック１５のキートップは、入力操作によってその基準位置から距離ＳＴＫ−Ｓだけ移動可能である。他方、図５Ｂで示される模式図の縦軸は、アナログスティック１５がキートップの操作に応じて出力し得る変数（ｉｘ）である。この変数ｉｘがとり得る範囲は、下限値を０とし、その上限値Ｉｎｘ＿ＭＡＸとして示される。なお、キートップの基準位置からの移動量を、移動距離として表現したが、その移動量を、距離でなく、角度など他の量で記述されてもよい。
【００８８】
直線Ｌ１は、アナログスティック１５において、そのキートップの基準位置からの移動距離（Ｘ１）と、それに対応して出力される値（ｉｘ）との関係性を模式的に表している。なお、例示目的のために、移動距離（Ｘ１）と、それに対応して出力される値（ｉｘ）との関係との間に線形性が存在するものとして例示されているが、この二者の関係において、場合によっては必ずしも線形性を要さない。図５Ｂから理解されるように、キートップの入力操作時における基準位置からの移動距離Ｘ１（０≦Ｘ１≦ＳＴＫ−Ｓ）に応じて、成分ｉｘは所定の値の範囲（０≦ｉｘ≦Ｉｎｘ＿ＭＡＸ）で与えられる。
【００８９】
図５Ｂはまた、対比のため、上述の場合と同じ値の範囲（０≦ｉｘ≦Ｉｎｘ＿ＭＡＸ）を出力値として実現しようとする場合であって、入力操作時にキートップが移動することが可能な距離が、距離ＳＴＫ−Ｓより大きい場合（本例では、当該距離の上限値としてＳＴＫ−Ｌが与えられる）についても例示している。具体的には、入力操作時にキートップが移動することが可能な距離が、距離ＳＴＫ−Ｓの約３倍である場合を比較目的で示している。直線Ｌ２は、その場合における、移動距離Ｘ１と、それに対応して出力される値（ｉｘ）との関係を表している。
【００９０】
直線Ｌ１および直線Ｌ２で表現された２例を比較すると、成分ｉｘにおいて同じ値の範囲（０≦ｉｘ≦Ｉｎｘ＿ＭＡＸ）を出力値として実現しようとする場合であって、キートップの可動範囲が狭くなったときの弊害を容易に理解することができる。
【００９１】
ユーザが、０からｓｔ１までの範囲（ｓｔ１≦ＳＴＫ−Ｓ）の移動距離Ｘ１で移動させたとき、直線Ｌ２に従う例では、成分ｉｘがその値として０からｏｕｔ１までの範囲の値を与える。他方、直線Ｌ１に従う例では、Ｘ１がｓｔ１となると、ｉｘ成分として値ｏｕｔ１の３倍の値が与えられる。この例から理解されるように、デバイスの小型化などの要請によって、アナログスティック１５においてキートップの可動範囲が狭くなると、その狭くなった分だけ、アナログスティック１５の出力はその操作に対して鋭敏に反応する。これは、キートップ可動範囲が限定されると、細やかな操作が困難なものとなることを示している。
【００９２】
（入力値補正処理プログラムによる処理を行う場合）
次に、図５Ｃを参照しつつ、本発明の例示的実施形態に係る入力値補正処理プログラム７１が実行された場合における、その動作の概要およびアナログスティック１５の操作性の向上の効果について説明する。
【００９３】
図５Ｃは、本発明の一実施形態における入力値補正処理プログラム７１を用いた際に、キートップの可動範囲（Ｘ１）の擬似的に拡大された範囲と、アナログスティック１５がその入力操作に対して出力する値（ｉｘ）の範囲との関係の一例を示した図である。
【００９４】
この例示的な実施形態において、アナログスティック１５におけるキートップの可動範囲は、０からＳＴＫ−Ｓまでの範囲となっている。このアナログスティック１５が操作された際に、成分ｉｘが所定の値の範囲（０≦ｉｘ≦Ｉｎｘ＿ＭＡＸ）の値を示す場合であって、入力値補正処理プログラム７１の実行によって、キートップの可動範囲が擬似的な拡大を達成する場合について説明する。
【００９５】
この例では、入力値補正処理プログラム７１は、アナログスティック１５の操作によって０からＳＴＫ−Ｓまでの範囲でＸ１が与えられるとき、直線Ｍ１に示されるような対応関係で成分ｉｘを与える。この直線Ｍ１は、図５Ｂにおける直線Ｌ２とほぼ対応する。すなわち、アナログスティック１５のキートップの可動範囲が、０からＳＴＫ−Ｓまでの範囲に制限された場合であっても、その可動範囲が０からＳＴＫ−Ｌまでの範囲である場合と同等の対応関係で、移動距離Ｘ１に対して成分ｉｘが提供される。すなわち、図５Ｂの直線Ｌ１に示されたとは対照的に、出力される成分ｉｘは、移動距離Ｘ１に対して鋭敏な反応を示さない。このことは、移動距離Ｘ１が、ＳＴＫ−Ｓとして与えられるとき、アナログスティック１５は成分ｉｘとして３×ｏｕｔ１を与えることからも理解される。
【００９６】
他方、入力値補正処理プログラム７１は、３×ｏｕｔ１からＩｎｘ＿ＭＡＸまでの範囲の成分ｉｘについては、次のようにして与える。すなわち、入力値補正処理プログラム７１は、アナログスティック１５のキートップが操作され、移動距離Ｘ１がＳＴＫ−Ｓに到達した際に与えられた、当該キートップの移動量（移動距離）の単位時間あたりの変化量（変化速度）を利用する。
【００９７】
より具体的には、入力値補正処理プログラム７１は、その変化速度が大きければ、その分だけ、大きなｉｘ成分を与える。図５Ｃにおいて、３×ｏｕｔ１からＩｎｘ＿ＭＡＸまでの範囲の成分ｉｘは、移動距離Ｘ１がＳＴＫ−Ｓに到達した際の変化速度に応じて提供される。
【００９８】
すなわち、図５Ｃにおける直線（点線）Ｍ２からＭ５までに示されるように、成分ｉｘがＩｎｘ＿ＭＡＸに到達するまでの経路は、移動距離Ｘ１が上限値ＳＴＫ−Ｓに到達した際の変化速度に応じて変化する。これは、ユーザがアナログスティック１５を速く動かせば、その分だけＩｎｘ＿ＭＡＸに速く到達するような挙動（すなわち、図５Ｃの例でいえば、Ｍ２でしめされるような挙動）を、入力値補正処理プログラム７１は、アナログスティック１５の操作性において実現することを示している。
【００９９】
これらのことから理解されるように、入力値補正処理プログラム７１は、アナログスティック１５のキートップの可動範囲が狭い状況であっても、キートップの可動範囲の上限値近傍に至るまでの細やかな操作性を提供しつつ（可動範囲の上限に対して比較的小さな移動量で入力するときでも操作者の意図通りの入力操作ができる）、入力操作に対応したアナログスティック１５からの出力の良好な追従性も提供することを達成し得る。
【０１００】
ここまで、移動距離Ｘ１と成分ｉｘとの関係性について主に説明してきた。既述のように、アナログスティック１５は、２次元入力を可能にする入力装置であり、この入力において得られる２次元データは、（ｉｘ，ｉｙ）として提供される。以下、図６を参照しつつ、入力値補正処理プログラム７１が、（Ｘ１，Ｙ１）で規定されるアナログスティック１５の可動範囲に応じて提供される２次元データ（ｉｘ，ｉｙ）を、補正する過程をより詳細に説明する。
【０１０１】
図６は、アナログスティック１５が実現する２次元入力による入力値を、本発明の一実施形態に係る入力値補正処理プログラム７１が処理することで得られる補正値を説明するための一群のグラフである。
【０１０２】
図６では、ｘｙ平面が、アナログスティック１５への入力操作に応じて出力される２次元データ（ｉｘ，ｉｙ）をプロットする平面として用いられている。図６（ａ）から（ｆ）までのいずれにおいても、そのｘｙ平面上に原点を中心とする２つの円が描かれている。外側の円は、アナログスティック１５に対する入力操作に応じて出力され得る値の組合せ（ｉｘ，ｉｙ）が存在する領域の境界を示す。ただし、アナログスティック１５から得られる２次元データ（ｉｘ，ｉｙ）を、それぞれの最大値が１となるように規格化して、当該データをｘｙ平面にプロットしている。したがって、その外円の半径が１となるように表示されている。なお、得られたデータを必ずしもこのように規格化する必要はない。
【０１０３】
他方、内側の円は、アナログスティック１５に対する入力操作に応じて出力され得る値の組合せ（ｉｘ，ｉｙ）において、その実際に得られた値の組合せを（０，０）とみなす範囲を規定する目的のために利用される。その目的のために使用する領域として、この内円の境界で規定される領域のみが使用されてもよいが、この例示的な実施形態においては、当該内円で規定される領域と、所定領域とが重なった部分が、入力操作に応じて出力され得る値の組合せ（ｉｘ，ｉｙ）において、その実際に得られた値の組合せを（０，０）とみなす領域として使用される。
【０１０４】
より具体的には、図６（ａ）に示されるように、入力値補正処理プログラム７１は、ｘ軸に対して対称な２直線で夾まれる領域と、ｙ軸に対して対称な２直線で夾まれる領域の重なりとして構成される正方形Ａの領域を、上述の所定領域として用いる。すなわち、図６（ｂ）における斜線領域として示されるように、半径ａ（ａ＜１）の内円と、正方形Ａとが重なった領域（以下、領域Ｓ（図６（ｃ）を参照）とする）が、入力操作に応じて出力され得る値の組合せ（ｉｘ，ｉｙ）において、その実際に得られた値の組合せを（０，０）とみなす領域として使用される。
【０１０５】
図６に示された内容と、図５Ｃで示された内容との関係をここで整理する。
【０１０６】
図５Ｃで示された例では、入力値補正処理プログラム７１は、０からＳＴＫ−Ｓまでの範囲で移動距離Ｘ１がアナログスティック１５の操作によって与えられるとき、直線Ｍ１に例示されるような対応関係で規定される成分ｉｘを与える。これと同様に、アナログスティック１５は、移動距離Ｘ１と対で与える移動距離Ｙ１も所定の範囲の値を取ることが可能であり、この移動距離Ｙ１は、成分ｉｙと対応づけられる。
【０１０７】
図６（ｄ）は、２次元データ（ｉｘ，ｉｙ）が位置づけられるｘｙ平面上の領域の一例（斜線部）を示した。アナログスティック１５が、２次元データ（ｉｘ，ｉｙ）として、図６（ｄ）の斜線領域に位置づけられる点Ｐ（ｘｐ，ｙｐ）に対応する２次元データを与えた場合、入力値補正処理プログラム７１は、所定の処理を行って、点Ｐ（ｘｐ，ｙｐ）を点Ｑ（ｘｑ，ｙｑ）に対応する値に変換する。以下で、この点Ｑ（ｘｑ，ｙｑ）についての詳細を説明する。具体的には、点Ｐ（ｘｐ，ｙｐ）と点Ｑ（ｘｑ，ｙｑ）との関係性は、例えば、図６（ｅ）に示されるような関係性となる。
【０１０８】
この関係性についてさらに説明する。入力値補正処理プログラム７１が実行されていない場合、成分ｉｘは、例えば、図５Ｂに示された直線Ｌ１に基づいた対応関係で、アナログスティック１５のキートップの移動距離（Ｘ１）に応じて与えられる（これと類似の対応関係で、Ｙ１に応じて成分ｉｙが与えられる）。これに対し、入力値補正処理プログラム７１が実行された場合、成分ｉｘは、図５Ｃに示された直線Ｍ１に基づいた対応関係で、アナログスティック１５のキートップの移動距離（Ｘ１）に応じて与えられる。上述の例でいえば、点Ｐ（ｘｐ，ｙｐ）から点Ｑ（ｘｑ，ｙｑ）への変換は、移動距離Ｘ１と成分ｉｘとの対応関係を、直線Ｌ１に基づいた対応関係から直線Ｍ１に基づいた対応関係に変更し、移動距離Ｙ１と成分ｉｙとの対応関係についても同様の変更を加えることに相当する。
【０１０９】
そして、図６（ｆ）に示されるように、アナログスティック１５により得られた２次元データ（ｉｘ，ｉｙ）が外円の境界に到達した点として位置づけられる点Ｐ（ｘｐ，ｙｐ）に対応するデータとなった場合、入力値補正処理プログラム７１は、その到達した際の移動距離の単位時間当たりの変化量（変化速度）に応じた所定のパラメータを取得する。そして、入力値補正処理プログラム７１は、Ｐ（ｘｐ，ｙｐ）を上述と同様に変換して得られたＱ（ｘｑ，ｙｑ）に対して、当該所定のパラメータを用いた所定の処理を行うことで、ｘｙ平面上に擬似的に位置づけられ得るＱ’（ｘｑ’，ｙｑ’）に対応した２次元データを得る。なお、例示的な実施形態において、入力値補正処理プログラム７１は、このＱ’（ｘｑ’，ｙｑ’）を、任意の調整用パラメータを用いることによって所定の範囲となるように調整を行い得る。具体的には、入力値補正処理プログラム７１は、図６（ｆ）で示されたような位置に対応するＱ’を、図６（ｇ）に示されるように、半径１の外円に収まるようなＱ’に調整用パラメータを用いて再度変換し得る。これによって、入力値補正処理プログラム７１は、操作性、追従性を改善する。なお、この再変換は、Ｐ（ｘｐ，ｙｐ）からＱ’（ｘｑ’，ｙｑ’）への変換と同時に処理するように行ってもよい。ここで例示した一連の処理のより具体的な実装例については、後述する。
【０１１０】
（メモリマップ）
まず、ゲームプログラムの実行中にメインメモリ３２に記憶される主なデータについて説明する。図７は、ゲーム装置１０のメインメモリ３２のメモリマップを示す図である。図７に示されるように、メインメモリ３２には、ゲームプログラム７０、入力値補正処理プログラム７１、各種変数７２等が記憶される。なお、本例では、入力値補正処理プログラム７１は、ゲームプログラム７０と協働し、また、ゲームプログラム７０からの要求を受けて処理を行うが、入力値補正処理プログラム７１が実行される場合は、この例に限られない。例えば、入力値補正処理プログラム７１は、ゲーム以外のアプリケーションプログラムと協働し、また、ゲームプログラム７０からの要求を受けて処理を行ってもよい。
【０１１１】
ゲームプログラム７０は、情報処理部３１にゲーム処理を主な処理とする一連の情報処理を実行させるためのプログラムである。
【０１１２】
入力値補正処理プログラム７１は、情報処理部３１に入力値補正処理を実行させるためのプログラムである。入力値補正処理プログラム７１は、内部変数として入力装置出力値など含み得るが、当該内部変数の一部は、後述の各種変数７２として本入力値補正処理プログラム７１とは別領域に規定されていてよい。
【０１１３】
各種変数７２は、ゲームプログラム７０または入力補正処理プログラム７１の実行の際に用いられる各種変数である。
【０１１４】
ゲーム装置１０の電源が投入されると、ゲーム装置１０の情報処理部３１（ＣＰＵ３１１）は、図示しないＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ３２等の各ユニットが初期化される。次に、データ保存用内部メモリ３５に記憶されたゲームプログラムがメインメモリ３２に読み込まれ、情報処理部３１のＣＰＵ３１１によって当該ゲームプログラムの実行が開始される。
【０１１５】
以下、図８Ａから図８Ｃまでのフローチャートを参照して、一連の情報処理プログラムに基づいて実行される処理の流れを説明する。本図および後続の図では、「ステップ」を、「Ｓ」と略記する。なお、図８Ａから図８Ｃまでのフローチャートは、単なる一例にすぎない。したがって、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、図８Ａから図８Ｃまでのフローチャートのすべてのステップの処理をＣＰＵ３１１が実行するものとして説明するが、図８Ａから図８Ｃまでのフローチャートの一部のステップの処理を、ＣＰＵ３１１以外のプロセッサや専用回路が実行するようにしてもよい。
【０１１６】
（入力値補正処理）
アナログスティック１５は、それに対して行われた入力操作に応じて２次元データ（ｉｘ，ｉｙ）を出力する。次いで、ゲーム装置１０のＣＰＵ３１１は、アナログスティック１５から当該２次元データを所定の時間間隔で取得する。以下、ゲーム装置１０が２次元データを取得するこの時間間隔の最小単位を、ここで説明する入力値補正処理における、単位時間として表現する。また、ＣＰＵ３１１は、２次元データは、単位時間ごとにアナログスティック１５から連続的に取得するが、以下の説明において「今回」の２次元データとは、ＣＰＵ３１１がその時点で処理対象としている２次元データである。また、「前回」の２次元データとは、現時点（すなわち、「今回」の２次元データが処理対象とされている時点）から単位時間分だけ前にＣＰＵ３１１により取得された２次元データをいう。
【０１１７】
図８Ａから図８Ｃまでは、アナログスティック１５から得られた一次データを処理する入力値補正処理のながれを示したフローチャートである。
【０１１８】
図８Ａは、当該入力値補正処理のメインフローを示す。なお、後述により明らかとなる次の変数は、入力値補正処理が開始される前に、以下のように初期化される。なお、初期化の具体的な頻度、タイミングは、ゲーム装置１０の仕様によって適宜変更され得る。距離ｉＬＴは、前回の２次元データ（ｉｘ，ｉｙ）の２次元ベクトルとしての大きさであり、ｉＬＴは０となるように初期化される（ｉＬＴ＝０）；変化量ｉＬＶは、今回の２次元データ（ｉｘ，ｉｙ）のベクトルとしての大きさ（ｉＬ）から、前回の２次元データ（ｉｘ，ｉｙ）のベクトルとしての大きさ（ｉＬＴ）を差し引いた量として定義され、変化量ｉＬＶは０として初期化される（ｉＬＶ＝０）。また、制御用パラメータｓは、初期化されてｓは１となる（ｓ＝１）。調整用パラメータＮは、初期化されて、任意の実数値となる。この調整用パラメータＮは、キートップの可動範囲を擬似的に拡大する際に、その拡大の程度を調整し得るパラメータである。
【０１１９】
ステップ１０１において、ＣＰＵ３１１は、アナログスティック１５からその入力操作に応じて提供される２次元データ（ｉｘ，ｉｙ）を取得する。
【０１２０】
ステップ１０２において、ＣＰＵ３１１は、予備補正処理を行う。具体的には、このステップ１０２で行われる処理は、図８Ｂに示されるフローチャートに沿って行われる。この予備補正処理の詳細は、後述するが、この予備補正処理によって、アナログスティック１５からその入力操作に応じて提供される２次元データ（ｉｘ，ｉｙ）が、予備的に補正され、この予備的な補正の結果得られた値により２次元データ（ｉｘ，ｉｙ）が更新される。なお、この予備補正処理は、入力値補正処理においてなくともよい。
【０１２１】
ステップ１０３において、ＣＰＵ３１１が、予備補正処理を経た２次元データ（ｉｘ，ｉｙ）に対して補正処理を行う。この補正処理の詳細は、後述するが、この補正処理を介して最終的に得られたデータが、ゲームプログラム７０において入力値として利用されるデータとなる。
【０１２２】
次に、ステップ１０１において、ＣＰＵ３１１が、アナログスティック１５からその入力操作に応じて提供される２次元データ（ｉｘ，ｉｙ）を取得した後に、予備補正処理（ステップ１０２）が行われる過程の詳細を、図８Ｂを参照して説明する。図８Ｂは、予備補正処理の流れを示したフローチャートである。
【０１２３】
ステップ１１１において、ＣＰＵ３１１が、アナログスティック１５からその入力操作に応じて提供される２次元データ（ｉｘ，ｉｙ）を取得する。その後、ＣＰＵ３１１は、ステップ１１２に処理を進める。
【０１２４】
ステップ１１２からステップ１１６までの一連のステップでは、ＣＰＵ３１１は、アナログスティック１５に対する入力操作に応じて出力され得る値の組合せ（ｉｘ，ｉｙ）が、所定の条件を満たした場合には、その実際に得られた（ｉｘ，ｉｙ）を（０，０）であるとして取る扱う過程を示している。具体的には、次のような処理が行われる。
【０１２５】
ステップ１１２において、ＣＰＵ３１１は、アナログスティック１５からその入力操作に応じて提供された２次元データ（ｉｘ，ｉｙ）が、ｘｙ平面上の点としてみなされたときに、原点（０，０）が中心でありかつ半径ａ（ａ＜１）である円の内側の領域（図６（ａ）を参照）に存在する２次元データであるか否かを判定する。
【０１２６】
この判定において、ＣＰＵ３１１が、２次元データ（ｉｘ，ｉｙ）を上述の条件に該当すると判定したとき（ステップ１１２，Ｙｅｓ）、ＣＰＵ３１１は、ステップ１１３の処理を進める。他方、ＣＰＵ３１１が、２次元データ（ｉｘ，ｉｙ）を当該条件に該当しないと判定したとき（ステップ１１２，Ｎｏ）、ＣＰＵ３１１は、ステップ１１５の処理を進める。
【０１２７】
ステップ１１３において、ＣＰＵ３１１は、上述の２次元データ（ｉｘ，ｉｙ）が正方形Ａの内側に存在するか否かを判定する。すなわち、ＣＰＵ３１１は、このステップ１１３および上述のステップ１１２によって、図６（ｃ）で示された領域Ｓの内部に（ｉｘ，ｉｙ）が存在するか否かを判定する。ステップ１１３の判定において、ＣＰＵ３１１が、２次元データ（ｉｘ，ｉｙ）を当該条件に該当すると判定したとき（ステップ１１３，Ｙｅｓ）、ＣＰＵ３１１は、ステップ１１４の処理を進める。他方、ＣＰＵ３１１が、２次元データ（ｉｘ，ｉｙ）を当該条件に該当しないと判定したとき（ステップ１１３，Ｎｏ）、ＣＰＵ３１１は、ステップ１１５の処理を進める。
【０１２８】
ステップ１１４において、ＣＰＵ３１１は、今回の２次元データ（ｉｘ，ｉｙ）を（０．０）となるように更新する。
【０１２９】
ステップ１１５において、まず、ＣＰＵ３１１は、位置ベクトル（ｉｘ，ｉｙ）と正方形Ａのいずれかの辺との交点から原点までの距離（以下、距離Ｄ）を計算し、その距離Ｄと、上述の円の半径ａと比較する。そして、ＣＰＵ３１１は、計算された値Ｄおよびａのうち小さな方を、変数ｂとして記憶する（ｂ＝ｍｉｎ［Ｄ，ａ］）。
【０１３０】
ステップ１１６において、ＣＰＵ３１１は、ステップ１１５の計算により得られた数値ｂを用いて、（ｉｘ、ｉｙ）を更新する。具体的には、ＣＰＵ３１１は、｛（ｉｘ−ｂ）／（１−ｂ）｝および｛（ｉｙ−ｂ）／（１−ｂ）｝を計算し、この２つの数値の組合せを、新たな（ｉｘ，ｉｙ）として記憶する。
【０１３１】
なお、ステップ１１５および１１６における計算を経ることで、ＣＰＵ３１１は、入力操作に応じた出力により自然な挙動を与える値を提供することができる。
【０１３２】
次に、ステップ１０２において、ＣＰＵ３１１が、予備補正処理を行った後に、補正処理（ステップ１０３）が行われる過程の詳細を、図８Ｃを参照して説明する。図８Ｃは、補正処理の流れを示したフローチャートである。
【０１３３】
ステップ２０１において、ＣＰＵ３１１は、予備補正処理（ステップ１０２）の結果として得られた（ｉｘ，ｉｙ）を取得する。ここで、得られた（ｉｘ，ｉｙ）は、後続の一連の処理において、所定条件を満たせば、中心（０，０）で半径１である円の範囲でクランプされる（図６を参照）。
【０１３４】
ステップ２０２において、ＣＰＵ３１１は、２次元データ（ｉｘ，ｉｙ）を、２次元ベクトルとみなした際の当該ベクトルの大きさ（ｉＬ）を計算する。具体的には、ＣＰＵ３１１は、ベクトル（ｉｘ，ｉｙ）の大きさを、（ｉｘ2＋ｉｙ2）の正の平方根（主平方根）を計算することで得る（これは、ｘｙ平面において、原点（０，０）と点Ｐ（ｉｘ，ｉｙ）との距離ｉＬを求めることに相当する）。
【０１３５】
ステップ２０３において、ＣＰＵ３１１は、距離ｉＬが１以上であるか否かを判定する。すなわち、ＣＰＵ３１１は、処理対象となっているデータに対応するｘｙ平面上の点（ｉｘ，ｉｙ）が、原点（０，０）を中心として半径が１である円の外側の領域に存在するか、またはその内側の領域に存在するかを判定する。ここで、ＣＰＵ３１１が、ｘｙ平面上の点（ｉｘ，ｉｙ）が原点（０，０）を中心として半径が１である円の外側の領域に存在すると判定した場合（ステップ２０３，Ｙｅｓ）は、ＣＰＵ３１１は、ステップ２０４の処理に進む。他方、ＣＰＵ３１１が、その円の内側の領域に存在すると判定した場合（ステップ２０３，Ｎｏ）は、ＣＰＵ３１１は、ステップ２０６の処理に進む。
【０１３６】
ステップ２０４において、ＣＰＵ３１１は、ベクトル（ｉｘ，ｉｙ）の大きさを１に抑える処理を行う。換言すると、ＣＰＵ３１１は、一連のステップ２０２からステップ２０４までの処理を行うことで、ステップ２０１で取得された（ｉｘ，ｉｙ）を所定の範囲（すなわち、その２次元ベクトルの大きさが１以下となる範囲）にクランプする処理（クランプ処理）を行う。具体的には、ＣＰＵ３１１は、成分ｉｘおよびｉｙのそれぞれを、ｉＬで除算し、それにより得られた値の組を、（ｉｘ，ｉｙ）として更新する。
【０１３７】
ステップ２０５において、ＣＰＵ３１１は、アナログスティック１５から取得された前回の２次元データに基づいて計算された距離（ｉＬＴ）が、１未満であるか否かを判定する。すなわち、アナログスティック１５から連続的に取得されている２次元データ（ｉｘ，ｉｙ）において、前回の２次元データが、ステップ２０２からステップ２０４までのクランプ処理の対象となっていたか否かを評価し、今回の２次元データの取得において、当該２次元データが、クランプ処理の対処となる位置に配置されたという状態であるか否かを判定する。具体的には、ＣＰＵ３１１が、距離ｉＬＴが１未満であると判定したとき（ステップ２０５，Ｙｅｓ）、ＣＰＵ３１１は、ステップ２０７の処理に進む。他方、ＣＰＵ３１１が、距離ｉＬＴが１以上であると判定したとき（ステップ２０５，Ｎｏ）、ＣＰＵ３１１は、ステップ２０８の処理に進む。
【０１３８】
ステップ２０６において、ＣＰＵ３１１は、アナログスティック１５から取得された前回の２次元データに基づいて計算された距離（ｉＬＴ）が、１以上であるか否かを判定する。すなわち、アナログスティック１５から連続的に取得されている２次元データ（ｉｘ，ｉｙ）において、前回の２次元データが、ステップ２０２からステップ２０４までのクランプ処理の対象となっていたか否かを評価し、今回の２次元データの取得において、当該２次元データが、クランプ処理の対処となる位置からはずれた状態となったか否かを判定する。
【０１３９】
具体的には、ＣＰＵ３１１が、距離ｉＬＴが１以上であると判定したとき（ステップ２０７，Ｙｅｓ）、ＣＰＵ３１１は、ステップ２０７の処理に進む。他方、ＣＰＵ３１１が、距離ｉＬＴが１未満であると判定したとき（ステップ２０６，Ｎｏ）、ＣＰＵ３１１は、ステップ２０８の処理に進む。
【０１４０】
ステップ２０７において、ＣＰＵ３１１は、前回の２次元データから計算された距離（ｉＬＴ）を、今回の２次元データから計算された距離（ｉＬ）から差し引き、単位時間当たりの当該距離の変化速度（ｉＬＶ）を得る。なお、本ステップにおいて、前回の２次元データから計算された距離（ｉＬＴ）を、今回の２次元データから計算された距離（ｉＬ）から差し引くことでその距離の変化速度を計算しているが、このような計算の代わりに、前回および今回の２次元データの差分ベクトルを計算して、得られた差分ベクトルの大きさを求め、その大きさによって変化速度を代替的に規定してもよい。ただし、アナログスティックのキーパットに対してその円周に沿った操作の影響が著しい場合などには、本例のような計算に基づいた変化速度の取得が好ましい。
【０１４１】
ステップ２０８において、ＣＰＵ３１１は、距離ｉＬＴの値を更新する。具体的には、ＣＰＵ３１１は、次回の入力値補正処理のために、今回の２次元データから計算された距離（ｉＬ）の値を、距離ｉＬＴとして記憶する。
【０１４２】
ステップ２０９において、ＣＰＵ３１１は、制御用パラメータｓを更新する。具体的には、ＣＰＵ３１１は、制御用パラメータｓを、現時点での制御用パラメータｓの値（初期化した時点で、パラメータｓは１である）に、変化速度ｉＬＶを加算した値を、新たなパラメータｓとするように更新する。
【０１４３】
ステップ２１０からステップ２１３までの一連のステップは、制御用パラメータｓを、１以上かつＮ以下の値の範囲（１≦ｓ≦Ｎ）に収めるための処理である。
【０１４４】
ステップ２１０において、ＣＰＵ３１１は、制御用パラメータｓが１未満である（ｓ＜１）か否かを判定する。制御用パラメータｓが１未満であるとき（ステップ２１０、Ｙｅｓ）、ＣＰＵ３１１は、ステップ２１１に進む。他方、制御用パラメータｓが１以上のとき（ステップ２１０、Ｎｏ）、ＣＰＵ３１１は、ステップ２１２に進む。
【０１４５】
ステップ２１１において、ＣＰＵ３１１は、制御パラメータのｓ値を１とするように、当該ｓを更新する。
【０１４６】
ステップ２１２において、ＣＰＵ３１１は、制御用パラメータｓがＮを超える（ｓ＞Ｎ）か否かを判定する。制御用パラメータｓがＮを超えるとき（ステップ２１２、Ｙｅｓ）、ＣＰＵ３１１は、ステップ２１３に進む。他方、制御用パラメータｓがＮ以下であるのとき（ステップ２１２、Ｎｏ）、ＣＰＵ３１１は、ステップ２１４に進む。
【０１４７】
ステップ２１３において、ＣＰＵ３１１が、制御パラメータのｓ値をＮとするように、当該ｓを更新する。
【０１４８】
ステップ２１４において、ＣＰＵ３１１は、２次元データ（ｉｘ，ｉｙ）をスケーリングする。具体的には、ＣＰＵ３１１は、成分ｉｘを更新して、ｉｘ×（ｓ／Ｎ）とし、成分ｉｙを更新してｉｙ×（ｓ／Ｎ）とする。
【０１４９】
（変形例）
上述した例示的実施形態においては、２次元入力を提供するアナログスティック１５が、具体的な入力装置として使用された。しかしながら、本明細書の開示に基づけば、本発明の入力値補正処理プログラムは、１次元の入力、３次元以上の多次元データ入力を与える入力装置を使用した場合においても利用され得ることは、当業者は容易に理解し得る。
【０１５０】
また、上記実施形態では、ゲーム装置１０を用いて入力値補正処理プログラムについて説明しているが、他の実施形態では、任意の情報処理装置または情報処理システム（例えば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、携帯電話、パーソナルコンピュータ、カメラ等）を用いて入力値補正処理プログラムを使用してもよい。
【０１５１】
また、上記実施形態では、一台の装置（ゲーム装置１０）のみによってゲーム処理を実行しているが、他の実施形態では、互いに通信可能な複数の情報処理装置を有する画像表示システムにおいて、当該複数の情報処理装置が画像表示処理を分担して実行するようにしてもよい。
【０１５２】
また、様々なプログラムモジュールがコンピュータのオペレーティングシステムの一部を構成することがある。このような場合、アプリケーションプログラムは、必要に応じて、当該モジュールを呼び出して所望の処理を実行する。したがって、汎用的なモジュールの一部の提供が期待されるハードウェアにおいて使用されることを前提とするならば
、そのような汎用的なモジュールがアプリケーションプログラムと必ずしも一体的に提供されないくともよい。したがって、上記プログラムからそれらモジュールに対応する部分を除いたソフトウェアが、コンピュータ読取り可能な記憶媒体に記憶された形式で、またはネットワーク上で提供される形式で提供／流通された場合であって、上述のモジュールによって機能が補完されたときには、結果として上記プログラムそのものが提供された場合と等価な効果が存在し得る。よって、上述のようなモジュールによって機能が補完されることを前提に、上記ゲームプログラムから上述のようなモジュールに対応する機能を除いたものは、実質的に上記ゲームプログラムに相当するものと解釈され得る。
【０１５３】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。ここで、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて均等な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用されるすべての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【符号の説明】
【０１５４】
１０    ゲーム装置
１１    下側ハウジング
１２    下側ＬＣＤ
１３    タッチパネル
１４    操作ボタン
１５    アナログスティック
１６    ＬＥＤ
２１    上側ハウジング
２２    上側ＬＣＤ
２３    外側撮像部
２３ａ  外側撮像部（左）
２３ｂ  外側撮像部（右）
２４    内側撮像部
２５    ３Ｄ調整スイッチ
２６    ３Ｄインジケータ
２８    タッチペン
３１    情報処理部
３１１  ＣＰＵ
３１２  ＧＰＵ
３２    メインメモリ
【図１】
0005313994.tif 000002
【図２】
0005313994.tif 000003
【図３】
0005313994.tif 000004
【図４】
0005313994.tif 000005
【図５Ａ】
0005313994.tif 000006
【図５Ｂ】
0005313994.tif 000007
【図５Ｃ】
0005313994.tif 000008
【図６】
0005313994.tif 000009
【図７】
0005313994.tif 000010
【図８Ａ】
0005313994.tif 000011
【図８Ｂ】
0005313994.tif 000012
【図８Ｃ】
0005313994.tif 000013