(57)【要約】【課題】  画面に表示されている画像をポインティングデバイスを用いて変化させる場合において操作者が受ける不自然な印象を解消することができる入力データ処理プログラムおよび情報処理装置を提供する。【解決手段】  情報処理装置は、所定平面上の位置を表す第１座標（目標座標）および第２座標（追従座標）の値を記憶する。入力面に対する入力状態を示す入力データは、入力装置から繰り返し取得されて記憶される。情報処理装置は、入力データに基づいて第１座標の更新を制御する。さらに、第１座標の値が変化したか否かにかかわらず入力データが取得される度に、第２座標の位置が第１座標の位置に近づくように当該第２座標の値を更新する。第２座標の更新が実行される度に、第２座標の更新前の位置を始点としかつ更新後の位置を終点とする出力ベクトルに基づいて、表示装置に表示されている画像の一部または全部が移動される。【選択図】  図７
2007034793.tif 000002
【特許請求の範囲】
【請求項１】
入力面に対する入力状態を検出する入力装置と表示装置とを備える情報処理装置のコンピュータに、
所定の平面上の位置を表す第１座標および第２座標の値を前記情報処理装置のメモリに記憶する記憶ステップと、
前記入力面に対する入力状態を示す入力データを前記入力装置から繰り返し取得して前記メモリに記憶する取得ステップと、
前記メモリに記憶された入力データに基づいて前記第１座標の更新を制御する第１更新制御ステップと、
前記第１座標の値が変化したか否かにかかわらず前記入力データが取得される度に、前記第２座標の位置が前記第１座標の位置に近づくように当該第２座標の値を更新する第２更新制御ステップと、
前記第２更新制御ステップが実行される度に、前記第２座標の更新前の位置を始点としかつ更新後の位置を終点とする出力ベクトルの向きおよび大きさに基づいて、前記表示装置に表示されている画像の一部または全部を移動させて表示させる表示制御ステップとを実行させる入力データ処理プログラム。
【請求項２】
前記第１更新制御ステップにおいては、前記入力面に対して入力が行われていないことを前記入力データが示すときには前記第１座標の値は変化しない、請求項１に記載の入力データ処理プログラム。
【請求項３】
前記第１更新制御ステップにおいては、前記入力面に対して入力が行われていないことを示す入力データが取得された後で、前記入力面に対する入力位置を示す入力データが取得されたときには、前記第１座標の値は変化しない、請求項２に記載の入力データ処理プログラム。
【請求項４】
前記所定の平面は、仮想的に設定される平面であって、
前記第１更新制御ステップにおいては、前記入力装置に対する入力が中断した後で当該入力が再度行われたとき、再度の入力が行われた時点における前記第１座標の値は、入力が中断する直前の第１座標の値に設定される、請求項１に記載の入力データ処理プログラム。
【請求項５】
前記入力装置は、前記入力面に対して入力が行われたとき、当該入力面に対する入力位置を所定時間間隔で検出して当該入力位置を示すデータを出力し、
前記取得ステップにおいては、前記入力装置から出力されたデータが前記入力データとして取得され、
前記第１更新制御ステップは、
前記メモリに記憶された入力データにより示される位置を終点としかつ当該入力データの１つ前に記憶された入力データにより示される位置を始点とする入力ベクトルを算出する入力ベクトル算出ステップと、
前記入力ベクトルの方向および大きさに基づいて前記第１座標の更新後の位置を決定する位置決定ステップとを含む、請求項１に記載の入力データ処理プログラム。
【請求項６】
前記入力装置は、前記入力面に対して入力が行われたとき、当該入力面に対する入力位置を所定時間間隔で検出し、検出された入力位置を終点としかつ前回に検出された入力位置を始点とする入力ベクトルを示すデータを出力し、
前記取得ステップにおいては、前記入力装置から出力されたデータが前記入力データとして取得され、
前記第１更新制御ステップは、前記取得された入力データにより示される入力ベクトルの方向および大きさに基づいて前記第１座標の更新後の位置を決定する位置決定ステップを含む、請求項１に記載の入力データ処理プログラム。
【請求項７】
前記位置決定ステップにおいては、前記入力ベクトルの大きさが所定値よりも小さいときには前記第１座標の値は変化しない、請求項５または請求項６に記載の入力データ処理プログラム。
【請求項８】
前記第２更新制御ステップにおいては、前記第２座標の位置から前記第１座標の位置までの距離を縮小した距離だけ当該第１座標の方向へ当該第２座標の位置が移動される、請求項１に記載の入力データ処理プログラム。
【請求項９】
前記第２更新制御ステップにおいては、前記第２座標の位置から前記第１座標の位置までの距離が所定長さ以下であるときには当該第２座標の値は変化しない、請求項１に記載の入力データ処理プログラム。
【請求項１０】
前記第１座標および前記第２座標の２次元座標系には、当該２次元座標系の少なくとも一方の成分に関して、第１境界値と、当該第１境界値に所定の加算値を加算した第２境界値とが設定されており、
前記第１更新制御ステップにおいて前記第１座標の値が変化された結果、当該第１座標における前記一方の成分の値が前記第１境界値よりも小さいときには、当該一方の成分の値が前記加算値の分だけ大きくなるように補正し、当該一方の成分の値が前記第２境界値よりも大きいときには、当該一方の成分の値が前記加算値の分だけ小さくなるように補正する第１補正ステップと、
前記第２更新制御ステップにおいて前記第２座標の値が変化された結果、当該第２座標における前記一方の成分の値が前記第１境界値よりも小さいときには、当該一方の成分の値が前記加算値の分だけ大きくなるように補正し、当該一方の成分の値が前記第２境界値よりも大きいときには、当該一方の成分の値が前記加算値の分だけ小さくなるように補正する第２補正ステップとを前記コンピュータにさらに実行させ、
前記第２更新制御ステップにおいては、前記第１補正ステップによる第１座標の補正が実行され、かつ、当該第１座標の補正が実行された結果実行される第２座標の補正がまだ実行されていないときには、補正前の第１座標と第２座標とに基づいて第２座標の位置が移動される、請求項１に記載の入力データ処理プログラム。
【請求項１１】
少なくとも前記取得ステップ、前記第１更新ステップ、前記第２更新ステップ、および前記表示制御ステップを繰り返し実行する第１のモードと、前記第１のモードとは異なる第２のモードとを切り替えるモード切替ステップを前記コンピュータにさらに実行させ、
前記記憶ステップにおいては、前記第２のモードから第１のモードへ切り替わったときには前記第１座標および前記第２座標が同じ値に設定されて前記メモリに記憶される、請求項１に記載の入力データ処理プログラム。
【請求項１２】
前記入力データは、前記入力面に対して入力が行われた位置を示し、
前記第１更新制御ステップにおいては、前記第１座標の値は、前記取得された入力データにより示される位置に対応する前記所定の平面上の位置を表す座標値に更新される、請求項１に記載の入力データ処理プログラム。
【請求項１３】
前記入力データは、前記入力面に対して入力が行われた位置を示し、
前記第１更新制御ステップにおいては、前記入力データにより示される位置を表す座標を所定の関数を用いて変換することによって前記第１座標の値が算出され、
前記入力装置に対する入力が中断した後で当該入力が再度行われたとき、再度の入力が行われた時点における入力データにより示される位置を、入力が中断する直前の第１座標の位置に変換するように前記所定の関数を変更する関数変更ステップを前記コンピュータにさらに実行させる、請求項１に記載の入力データ処理プログラム。
【請求項１４】
入力面に対する入力状態を検出する入力装置と表示装置とを備える情報処理装置であって、
所定の平面上の位置を表す第１座標および第２座標の値を前記情報処理装置のメモリに記憶する記憶制御手段と、
前記入力面に対する入力状態を示す入力データを前記入力装置から繰り返し取得して前記メモリに記憶する取得手段と、
前記メモリに記憶された入力データに基づいて前記第１座標の更新を制御する第１更新制御手段と、
前記第１座標の値が変化したか否かにかかわらず前記入力データが取得される度に、前記第２座標の位置が前記第１座標の位置に近づくように当該第２座標の値を更新する第２更新制御手段と、
前記第２座標の更新が実行される度に、前記第２座標の更新前の位置を始点としかつ更新後の位置を終点とする出力ベクトルの向きおよび大きさに基づいて、前記表示装置に表示されている画像の一部または全部を移動させて表示させる表示制御手段とを備える、情報処理装置。
【請求項１５】
操作データに応じて所定のデータ処理を実行する情報処理装置に接続可能な入力装置であって、
所定の平面上の位置を表す第１座標および第２座標の値をメモリに記憶する記憶制御手段と、
前記入力面に対する入力状態を示す入力データを繰り返し検出して前記メモリに記憶する検出手段と、
前記メモリに記憶された入力データに基づいて前記第１座標の更新を制御する第１更新制御手段と、
前記第１座標の値が変化したか否かにかかわらず前記入力データが取得される度に、前記第２座標の位置が前記第１座標の位置に近づくように当該第２座標の値を更新する第２更新制御手段と、
前記第２座標の更新が実行される度に、前記第２座標の更新前の位置を始点としかつ更新後の位置を終点とする出力ベクトルを算出し、前記操作データとして前記情報処理装置へ出力する算出手段とを備える、入力装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチパッド等の入力装置から入力されるデータを処理するための入力データ処理プログラムおよび情報処理装置に関する。
【背景技術】
【０００２】
従来、タッチパッド等のポインティングデバイスを用いて画面の表示内容を変化させる技術がある。例えば、タッチパッド上でタッチペンをスライドさせることによってタッチパッド上で操作者に軌跡を描かせ、軌跡の向きおよび軌跡を描いた速度に応じて画面上のオブジェクト（例えばカーソル等）を移動させるのである。
【０００３】
上記の技術では、オブジェクトの移動速度は、入力の速度（タッチペンをスライドさせた速度）に比例しているのが一般的である。つまり、入力の速度が一定値であれば、オブジェクトの移動速度も一定値となる。ところが、操作者が入力を行う場合、入力の速度は、入力開始時（タッチペン等がタッチパッドに最初に触れた時点）において０から非連続的に増加し、入力終了時（タッチペン等がタッチパッドから離れた時点）において非連続的に０に減少する。そのため、オブジェクトは、入力開始時において急激に移動を開始し、入力終了時に急激に移動を停止するように動作することになる。このようなオブジェクトの移動が行われると、操作者はオブジェクトの移動を不自然に感じるおそれがある。特に、画面をスクロールさせる処理等、画面に表示されている画像全体を移動させる処理に上記の技術を適用する場合には、入力開始時および入力終了時において画面全体が急激に移動することとなり、操作者は画面の表示内容を目で追うことができなくなるおそれがある。これによって、操作者に対して不自然な印象を与えるどころか、不快感を与えてしまうおそれすらある。
【０００４】
これに対し、特許文献１には、「画像の拡大処理の過程を表示する場合に、拡大開始時においては画面が変化する速度を徐々に大きくし、拡大終了時においてはその速度を徐々に小さくする」技術が記載されている。また、特許文献２には、画面をスクロールさせる速度に関して、移動開始時および移動終了時において速度変化を緩やかにする技術が記載されている。これらの技術によれば、画面が急激に変化することを防止し、画面の変化を滑らかにすることができる。
【特許文献１】特開平５−２８２４１５号公報
【特許文献２】特開昭６３−２０６８２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記特許文献に記載の技術は、画面に表示された画像が移動する（変化する）速度を単に緩やかにするものであり、当該技術では画像の移動量（変化量）については考慮されていない。すなわち、上記技術では、画像の移動量は、操作者がタッチペンをスライドさせた長さ（タッチパッド上に描かれた軌跡の長さ）に比例していない。そのため、操作者は、描いた軌跡の長さから想像する長さよりも画像の実際の移動量が短いと感じたり、逆に長いと感じたりすることから、画像の移動に対して不自然な印象を受けるおそれがあった。つまり、従来の技術では、画像の急激な移動を防止することはできても、画像の移動に対して操作者が不自然な印象を受けることを防止することはできなかった。
【０００６】
それ故に、本発明の目的は、ポインティングデバイスを用いて画面に表示されている画像を変化させる場合において操作者が受ける不自然な印象を解消し、操作者に自然な印象を与えることができる入力データ処理プログラムおよび情報処理装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００８】
第１の発明は、入力面に対する入力状態を検出する入力装置（タッチパッド７）と表示装置（テレビ２）とを備える情報処理装置（ゲーム装置２）のコンピュータ（ＣＰＵ１１等）に、記憶ステップ（Ｓ９）と、取得ステップ（Ｓ２）と、第１更新制御ステップ（Ｓ２４）と、第２更新制御ステップ（Ｓ３５）と、表示制御ステップ（Ｓ１１）とを実行させる入力データ処理プログラムである。記憶ステップにおいて、コンピュータは、所定の平面（仮想平面）上の位置を表す第１座標（目標座標）および第２座標（追従座標）の値を情報処理装置のメモリ（メインメモリ１７）に記憶する。取得ステップにおいて、入力面に対する入力状態を示す入力データ（入力座標データ、または入力ベクトルを示すデータ）を入力装置から繰り返し取得してメモリに記憶する。第１更新制御ステップにおいて、メモリに記憶された入力データに基づいて第１座標の更新を制御する。第２更新制御ステップにおいて、第１座標の値が変化したか否かにかかわらず入力データが取得される度に、第２座標の位置が第１座標の位置に近づくように当該第２座標の値を更新する。表示制御ステップにおいて、第２更新制御ステップが実行される度に、第２座標の更新前の位置を始点としかつ更新後の位置を終点とする出力ベクトルの向きおよび大きさに基づいて、表示装置に表示されている画像の一部（プレイヤキャラクタ等）または全部を移動させて表示させる。
【０００９】
第２の発明においては、第１更新制御ステップにおいて、入力面に対して入力が行われていないことを入力データが示すときには第１座標の値は変化しない。
【００１０】
第３の発明においては、第１更新制御ステップにおいて、入力面に対して入力が行われていないことを示す入力データが取得された後で、入力面に対する入力位置を示す入力データが取得されたときであっても、第１座標の値は変化しない。
【００１１】
第４の発明においては、所定の平面は、仮想的に設定される平面である。このとき、第１更新制御ステップにおいては、入力装置に対する入力が中断した後で当該入力が再度行われたとき、再度の入力が行われた時点における第１座標の値は、入力が中断する直前の第１座標の値に設定される。
【００１２】
第５の発明においては、入力装置は、入力面に対して入力が行われたとき、当該入力面に対する入力位置を所定時間間隔で検出して当該入力位置を示すデータ（入力座標データ）を出力する。このとき、取得ステップにおいては、入力装置から出力されたデータが入力データとして取得される。第１更新制御ステップは、入力ベクトル算出ステップ（Ｓ２１）と、位置決定ステップ（Ｓ２４）とを含む。入力ベクトル算出ステップにおいては、コンピュータは、メモリに記憶された入力データにより示される位置を終点としかつ当該入力データの１つ前に記憶された入力データにより示される位置を始点とする入力ベクトルを算出する。位置決定ステップにおいては、入力ベクトルの方向および大きさに基づいて第１座標の更新後の位置を決定する。
【００１３】
第６の発明においては、入力装置は、入力面に対して入力が行われたとき、当該入力面に対する入力位置を所定時間間隔で検出し、検出された入力位置を終点としかつ前回に検出された入力位置を始点とする入力ベクトルを示すデータを出力する。このとき、取得ステップにおいては、入力装置から出力されたデータが入力データとして取得される。第１更新制御ステップは、取得された入力データにより示される入力ベクトルの方向および大きさに基づいて第１座標の更新後の位置を決定する位置決定ステップ（Ｓ２４）を含む。
【００１４】
第７の発明においては、位置決定ステップにおいて、入力ベクトルの大きさが所定値よりも小さいときには第１座標の値は変化しない。
【００１５】
第８の発明においては、第２更新制御ステップにおいて、第２座標の位置から第１座標の位置までの距離を縮小した距離だけ当該第１座標の方向へ当該第２座標の位置が移動される。
【００１６】
第９の発明においては、第２更新制御ステップにおいて、第２座標の位置から第１座標の位置までの距離が所定長さ（Ｒ）以下であるときには当該第２座標の値は変化しない。
【００１７】
第１０の発明においては、第１座標および第２座標の２次元座標系には、当該２次元座標系の少なくとも一方の成分に関して、第１境界値（ｘ＝０，ｙ＝０）と、当該第１境界値に所定の加算値（Ｗ）を加算した第２境界値（ｘ＝Ｗ，ｙ＝Ｗ）とが設定されている。このとき、入力データ処理プログラムは、第１補正ステップ（Ｓ２６，Ｓ２７）と、第２補正ステップ（Ｓ３６，Ｓ３７）とをコンピュータにさらに実行させる。第１補正ステップにおいて、コンピュータは、第１更新制御ステップにおいて第１座標の値が変化された結果、当該第１座標における一方の成分の値が第１境界値よりも小さいときには、当該一方の成分の値が加算値の分だけ大きくなるように補正し、当該一方の成分の値が第２境界値よりも大きいときには、当該一方の成分の値が加算値の分だけ小さくなるように補正する。また、第２補正ステップにおいては、第２更新制御ステップにおいて第２座標の値が変化された結果、当該第２座標における一方の成分の値が第１境界値よりも小さいときには、当該一方の成分の値が加算値の分だけ大きくなるように補正し、当該一方の成分の値が第２境界値よりも大きいときには、当該一方の成分の値が加算値の分だけ小さくなるように補正する。さらに、第２更新制御ステップにおいては、第１補正ステップによる第１座標の補正が実行され、かつ、当該第１座標の補正が実行された結果実行される第２座標の補正がまだ実行されていないときには、補正前の第１座標と第２座標とに基づいて第２座標の位置が移動される。
【００１８】
第１１の発明においては、入力データ処理プログラムは、モード切替ステップ（Ｓ４）をコンピュータにさらに実行させる。モード切替ステップにおいては、コンピュータは、少なくとも取得ステップ、第１更新ステップ、第２更新ステップ、および表示制御ステップを繰り返し実行する第１のモードと、第１のモードとは異なる第２のモードとを切り替える。このとき、記憶ステップにおいては、第２のモードから第１のモードへ切り替わったときには第１座標および第２座標が同じ値に設定されてメモリに記憶される。
【００１９】
第１２の発明においては、入力データは、入力面に対して入力が行われた位置（入力位置）を示す。このとき、第１更新制御ステップにおいては、第１座標の値は、取得された入力データにより示される位置に対応する所定の平面上の位置を表す座標値に更新される。
【００２０】
第１３の発明においては、入力データは、入力面に対して入力が行われた位置を示すものであってもよい。このとき、第１更新制御ステップにおいては、入力データにより示される位置を表す座標を所定の関数を用いて変換することによって第１座標の値が算出される。入力データ処理プログラムは、入力装置に対する入力が中断した後で当該入力が再度行われたとき、再度の入力が行われた時点における入力データにより示される位置を、入力が中断する直前の第１座標の位置に変換するように所定の関数を変更する関数変更ステップをコンピュータにさらに実行させる。
【００２１】
第１４の発明は、入力面に対する入力状態を検出する入力装置（タッチパッド７）と表示装置（テレビ６）とを備える情報処理装置（ゲーム装置２）である。情報処理装置は、記憶手段（Ｓ９を実行するＣＰＵ１１等。以下、単にステップ番号のみを示す。）と、取得手段（Ｓ２）と、第１更新制御手段（Ｓ２４）と、第２更新制御手段（Ｓ３５）と、表示制御手段（Ｓ１１）とを備える。記憶制御手段は、所定の平面上の位置を表す第１座標および第２座標の値を情報処理装置のメモリ（メインメモリ１７）に記憶する。取得手段は、入力面に対する入力状態を示す入力データを入力装置から繰り返し取得してメモリに記憶する。第１更新制御手段は、メモリに記憶された入力データに基づいて第１座標の更新を制御する。第２更新制御手段は、第１座標の値が変化したか否かにかかわらず入力データが取得される度に、第２座標の位置が第１座標の位置に近づくように当該第２座標の値を更新する。表示制御手段は、第２座標の更新が実行される度に、第２座標の更新前の位置を始点としかつ更新後の位置を終点とする出力ベクトルの向きおよび大きさに基づいて、表示装置に表示されている画像の一部または全部を移動させて表示させる。
【００２２】
第１５の発明は、操作データに応じて所定のデータ処理を実行する情報処理装置に接続可能な入力装置である。入力装置は、記憶手段と、検出手段（タッチパッド７）と、第１更新制御手段と、第２更新制御手段と、表示制御手段とを備える。記憶制御手段は、所定の平面上の位置を表す第１座標および第２座標の値をメモリに記憶する。検出手段は、入力面に対する入力状態を示す入力データを繰り返し検出してメモリに記憶する。第１更新制御手段は、メモリに記憶された入力データに基づいて第１座標の更新を制御する。第２更新制御手段は、第１座標の値が変化したか否かにかかわらず入力データが取得される度に、第２座標の位置が第１座標の位置に近づくように当該第２座標の値を更新する。算出手段は、第２座標の更新が実行される度に、第２座標の更新前の位置を始点としかつ更新後の位置を終点とする出力ベクトルを算出し、操作データとして情報処理装置へ出力する。
【発明の効果】
【００２３】
第１の発明によれば、第２座標の位置は、第１座標の位置が変化したか否かとは無関係に、第１座標の位置に近づく移動を繰り返す。したがって、第１座標の位置が移動しない場合でも第２座標の位置は移動する。その結果、最終的には第１座標の移動距離と第２座標の移動距離とは同じになる。これによって、プレイヤが入力面に対して行った入力の長さに応じた距離だけ第２座標の位置を移動させることができる。第２座標の移動量が画像の移動量に対応するので、これによって、入力の長さに応じた距離だけ画像を移動させることができる。そのため、プレイヤは、自己の操作に対する画像の移動量を、入力を行った長さによってイメージすることができる。したがって、ポインティングデバイスを用いて画面に表示されている画像を変化させる操作を行う場合において、操作者が不自然な印象を受けることを解消することができ、当該操作の操作性を向上することができる。
【００２４】
第２の発明によれば、操作者がタッチオフした（入力面から指等を離した）ことによって第１座標の移動が停止する。ただし、このときでも第２座標の移動は継続して行われるので、第２座標の位置が第１座標の位置に追いつく前に操作者がタッチオフした場合であっても、最終的には、第１座標の移動距離と第２座標の移動距離とは同じになる。したがって、第２座標の位置が第１座標の位置に追いつく前に操作者がタッチオフした場合でも、操作者が不自然な印象を受けることを防止することができる。
【００２５】
ここで、操作者が同じ操作を複数回繰り返して行う場合を考える。例えば、入力面上において左から右へ軌跡を描く操作を繰り返して行う場合を考える。この場合において、第１座標の位置を入力位置に対応する位置に移動させる方法を用いたとすると、タッチオフした後で再度タッチオンした場合、タッチオフした時点の第１座標の位置とタッチオンした時点の第１座標の位置が別の位置になってしまう。タッチオフされる位置は入力面の右側であり、タッチオンされる位置は入力面の左側であるからである。このとき、第２座標の位置をタッチオフ時の位置のままにすると、第１座標を追従する第２座標については、タッチオフ前には右方向に移動していたにもかかわらず、タッチオン後には左方向に移動することになる。つまり、第２座標の移動方向が逆になってしまい、タッチオン後の移動方向は操作者が意図しない方向となってしまう。また、これを防止するためには、タッチオフ後の再度のタッチオン時には、第２座標の位置を第１座標の新たな位置に設定し直すことが考えられる。しかし、これによれば、再度のタッチオン時における出力ベクトルの大きさが０になってしまうので、再度のタッチオン時に画像の移動が停止してしまい、操作者に不自然な操作感覚を与えてしまう。以上のように、第１座標の位置を入力位置に基づいて移動させる方法では、再度のタッチオンされると、タッチオフ前の第１座標の位置をリセットしなければならなくなることから、操作者に不自然な操作感覚を与えてしまう。
【００２６】
上記方法（第１座標の位置を入力位置に対応する位置に移動させる方法）に対して、第３の発明によれば、操作者がタッチオフした後で再度タッチオンした（入力面に指等を接触させる）場合であっても、第１座標の値は変化しない。したがって、タッチオフ後にタッチオンが行われた場合でも、第１座標の値はタッチオフ前の値と異なる値にはならない。そのため、タッチオン後の移動方向が操作者の意図しない方向となることや、画像の移動が急に停止してしまうことを防止することができる。
【００２７】
また、上記方法に対して、第４の発明によれば、仮想の平面上に第１座標および第２座標を設けることによって、入力面の位置と第１および第２座標の位置とを独立して表す。そして、タッチオフされた後で再度タッチオンされた場合には、タッチオフ直前における第１座標の値と、タッチオン後における第１座標の値とを同じにする。これによって、タッチオン後の移動方向が操作者の意図しない方向となることや、画像の移動が急に停止してしまうことを防止することができる。
【００２８】
また、上記方法に対して、第５の発明によれば、入力位置そのものではなく、入力ベクトルに基づいて第１座標を移動させるので、タッチオフ後に再度タッチオンがなされた場合でも、タッチオフ時の第１座標の位置を継続して用いることができる。そのため、タッチオフ後に再度タッチオンが行われた場合でも、出力ベクトルがタッチオフ前と逆方向になったり、画像の移動が急に停止してしまうことがない。つまり、画像の移動について操作者に不自然な印象を与えることがない。さらに、第２座標が第１座標を追従して移動することについては変わらないので、この場合も、最終的には、第２座標の移動距離と第２座標の移動距離とを同じにすることができる。
【００２９】
また、第６の発明によれば、第５の発明と同様、入力位置そのものではなく、入力ベクトルに基づいて第１座標を移動させるので、タッチオフ後に再度タッチオンがなされた場合でも、タッチオフ時の第１座標の位置を継続して用いることができる。したがって、第５の発明と同様、画像の移動について操作者に不自然な印象を与えることがない。また、第６の発明によれば、情報処理装置が入力ベクトルを算出する処理を実行する必要がないので、情報処理装置の処理負荷を軽減することができる。
【００３０】
なお、操作者が入力面上の１点をタッチしている場合であっても、入力装置によって実際に検出される入力位置が若干移動してしまうことがある。このような場合には、微少な大きさの入力ベクトルが算出される結果、画像が微少な距離だけ移動することになり、操作者の意図しない移動が行われてしまう。これに対して、第７の発明によれば、入力ベクトルの大きさが微少である場合には第１座標の位置は移動しないので、操作者が入力面上の１点をタッチしている場合には画像の移動が行われない。したがって、操作者が意図しない操作によって画像が移動することを防止することができる。
【００３１】
第８の発明によれば、第２座標の１回の移動距離を、第２座標の位置から第１座標の位置までの距離を縮小した距離として容易に算出することができる。また、縮小する度合いを変化させることで、第２座標が第１座標を追従する度合いを容易に変化させることができる。
【００３２】
第９の発明によれば、第１座標と第２座標との距離がある程度の距離（所定長さ以下の距離）になった時点で、第２座標が第１座標に到達したと見なされる。ここで、第２座標が第１座標に到達する寸前の時点では、第２座標の１回の移動距離は非常に小さくなっている。したがって、このような第２座標の移動を行わないようにしても操作者に不自然な印象を与えることはないと考えられ、むしろ、微少な距離だけ第２座標を移動させるような不要な処理は処理負荷を増大させるだけであると考えられる。そこで、第７の発明によれば、第２座標が第１座標に到達する寸前の時点における第２座標の位置を移動させる処理を省略することによって、情報処理装置の処理負荷を軽減することができる。
【００３３】
第１０の発明によれば、第１座標および第２座標を、第１境界値から第２境界値までの範囲の値として表現することができる。つまり、無限の広がりを有する仮想平面における位置を、第１境界値から第２境界値までの範囲の値によって表現することができる。これによって、第１座標および第２座標についての計算において、大きな数の計算を実行しなくてもよくなるので、第１座標および第２座標の値のオーバーフローの危険性が無くなる。
【００３４】
第１１の発明によれば、第１のモードに切り替わった時点では第１座標と第２座標とが同じ値に設定されるので、この時点では出力ベクトルが０となり、画像の移動が行われない。すなわち、第１のモードに切り替わった時点で画像が急に移動することがなく、モードが切り替わった際にも操作者に不自然な印象を与えることがない。
【００３５】
第１２の発明によれば、入力面上における入力位置に基づいて第１座標の位置が移動されるので、操作者の入力をそのまま反映させて第１座標の位置を移動させることができる。したがって、操作者にとっては第１座標を直接移動させているような操作感覚で操作できるので、操作者にとって操作しやすい操作方法を提供することができる。
【００３６】
第１３の発明によれば、入力位置を表す座標が関数によって第１座標に変換される。また、当該関数は、タッチオフ後に再度のタッチオンが行われたとき、再度のタッチオンが行われた位置と、タッチオフ直前の第１座標の位置とを対応付けるように変換される。そのため、タッチオフ後に再度のタッチオンが行われた場合でも、第１座標の位置をタッチオフ直前の位置に設定することができるので、タッチオン後の移動方向が操作者の意図しない方向となることや、画像の移動が急に停止してしまうことを防止することができる。
【００３７】
また、第１４および第１５の発明によれば、第１の発明と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００３８】
図１は、本発明の一実施形態に係る情報処理装置の一例であるゲームシステムの構成を示す外観図であり、図２はそのブロック図である。図１および図２に示すように、ゲームシステム１は、ゲーム装置２、光ディスク３、メモリカード４、コントローラ５、テレビ６（図２に示すスピーカ２５を含む）を備える。光ディスク３およびメモリカード４は、ゲーム装置２に着脱自在に装着される。コントローラ５は、ゲーム装置２に設けられる複数（図１では、４つ）のコントローラポート用コネクタのいずれかに接続される。コントローラ５は複数の操作部を有し、具体的には、第１のタッチパッド７ａ、第２のタッチパッド７ｂ、スタートボタン８ａ、セレクトボタン８ｂ、Ｌボタン８ｃ、およびＲボタン８ｄを含む。また、他の実施形態においては、ゲーム装置２とコントローラ５との通信は、通信ケーブルを用いずに無線通信によって行われてもよい。また、テレビ６およびスピーカ２５は、ＡＶケーブル等によってゲーム装置２に接続される。なお、本発明は図１に示すような据え置き型のゲーム装置に限らず、携帯型のゲーム装置であってもよいし、業務用のゲーム装置であってもよいし、携帯電話やパソコン等、プログラムを実行することができる装置であってもよいことはもちろんである。以下、図２を参照しながら、本発明に係るゲームシステムにおける各部を詳細に説明するとともに、ゲームシステムにおける一般的な動作を説明する。
【００３９】
外部記憶媒体の一例である光ディスク３は、例えばＤＶＤ−ＲＯＭであり、本発明に係るプログラムの一例であるゲームプログラムやキャラクタデータ等のゲームに関するデータを固定的に記憶している。プレイヤがゲームを行う場合、光ディスク３はゲーム装置２に装着される。なお、ゲームプログラム等を記憶する手段は、ＤＶＤ−ＲＯＭに限らず、例えばＣＤ−ＲＯＭ、ＭＯ、メモリカード、ＲＯＭカートリッジ等の記憶媒体であってもよい。ゲームプログラム等は、ゲーム装置本体内のメモリやハードディスク等の記憶手段に記憶されるようにしてもよく、この場合、通信によりゲームプログラムをダウンロードするようにしてもよい。メモリカード４は、例えばフラッシュメモリ等の書き換え可能な記憶媒体によって構成され、例えばゲームにおけるセーブデータ等のデータを記憶する。
【００４０】
ゲーム装置２は、光ディスク３に記録されているゲームプログラムを読み出し、ゲーム処理を行う。コントローラ５は、プレイヤがゲーム操作に関する入力を行うための入力装置である。コントローラ５は、プレイヤによるタッチパッド７ａおよび７ｂの操作や各操作ボタン８ａ〜８ｄの押圧操作や後述するスイッチ（図示しない）の押圧操作に応じて操作データをゲーム装置２に出力する。複数のプレイヤによってゲームを行う場合、コントローラ５はプレイヤの数だけ設けられる。テレビ６は、ゲーム装置２から出力された画像データを画面に表示する。また、スピーカ２５は、典型的にはテレビ６に内蔵されており、ゲーム装置２から出力されたゲームの音声を出力する。
【００４１】
前述のように、コントローラ５は、その主面の左右両側に１つずつ、計２つのタッチパッド７ａおよび７ｂを有する。なお、２つのタッチパッド７ａおよび７ｂは同じ構成であり、以下では、２つのタッチパッド７ａおよび７ｂを特に区別しない場合、単に「タッチパッド７」と記載する。タッチパッド７としては、例えば抵抗膜方式や光学式（赤外線方式）や静電容量結合式など、任意の方式のものを利用することができる。タッチパッド７は、その入力面にプレイヤの指等が触れると、接触位置（入力位置）に対応する座標データ（入力座標データ）を出力する。タッチパッド７は、所定のサンプリング時間毎に入力位置を検出して入力座標データを出力する。入力座標データは、操作データとしてコントローラ５からゲーム装置２に出力される。ここでは、所定のサンプリング時間を画面表示のフレーム時間と同じであるとする。なお、タッチパッド７は、入力座標データを出力するものであればどのようなものであってもよい。例えば、タッチパッド７は、プレイヤの指等が入力面に接触している面積を示すデータを上記入力座標データとともにゲーム装置２に出力してもよいし、入力位置の移動速度（後述する入力ベクトル）を検出して出力してもよい。また、本実施形態においては、タッチパッド７の入力面は、押下可能なようにバネ等で支持されており、タッチパッド７の裏面にはそれぞれスイッチ（図示せず）が設けられる。プレイヤは、タッチパッド７の入力面を押下することによってスイッチを押下することができる。
【００４２】
なお、以上に説明したコントローラ５は、本発明において用いられる入力装置の一例であり、入力装置は、入力面上における入力位置を検出することが可能なポインティングデバイスであればどのようなものであってもよい。例えば、入力装置は、タッチパッドを１つのみ備える構成であってもよいし、タッチパッドに代えてタッチパネルを備える構成であってもよい。
【００４３】
次に、ゲーム装置２の構成について説明する。図２において、ゲーム装置２内には、ＣＰＵ１１およびそれに接続されるメモリコントローラ２０が設けられる。さらに、ゲーム装置２内において、メモリコントローラ２０は、グラフィックスプロセッシングユニット（ＧＰＵ）２４と、メインメモリ１７と、デジタル信号処理回路（ＤＳＰ）３６と、各種インターフェース（Ｉ／Ｆ）２１〜２６とに接続される。また、ＤＳＰ１８を介してサブメモリ１９と接続される。メモリコントローラ２０は、これら各構成要素間のデータ転送を制御する。
【００４４】
ゲーム開始の際、まず、ディスクドライブ２７は、ゲーム装置２に装着された光ディスク３を駆動する。光ディスク３に記憶されているゲームプログラムは、ディスクＩ／Ｆ２６およびメモリコントローラ２０を介して、メインメモリ１７に読み込まれる。メインメモリ１７上のプログラムをＣＰＵ１１が実行することによって、ゲームが開始される。ゲーム開始後、プレイヤは、各タッチパッド７ａおよび７ｂや各操作ボタン８ａ〜８ｄや上記スイッチを用いてコントローラ５に対してゲーム操作等の入力を行う。プレイヤによる入力に従い、コントローラ５は、操作データをゲーム装置２に出力する。コントローラ５から出力される操作データは、コントローラＩ／Ｆ２１およびメモリコントローラ２０を介してＣＰＵ１１に入力される。ＣＰＵ１１は、入力された操作データに応じてゲーム処理を行う。ゲーム処理における画像データ生成等に際して、ＧＰＵ１２やＤＳＰ１８が用いられる。また、サブメモリ１９は、ＤＳＰ１８が所定の処理を行う際に用いられる。
【００４５】
ＧＰＵ１２は、ジオメトリユニット１３およびレンダリングユニット１４を含み、画像処理専用のメモリに接続されている。この画像処理専用メモリは、例えばカラーバッファ１５およびＺバッファ１６として利用される。ジオメトリユニット１３は、仮想３次元空間であるゲーム空間に置かれた物体や図形に関する立体モデル（例えばポリゴンで構成されるオブジェクト）の座標についての演算処理を行うものであり、例えば立体モデルの回転・拡大縮小・変形や、ワールド座標系の座標から視点座標系やスクリーン座標系の座標への変換を行うものである。レンダリングユニット１４は、所定のテクスチャに基づいて、スクリーン座標に投影された立体モデルについてピクセル毎のカラーデータ（ＲＧＢデータ）をカラーバッファ１５に書き込むことによって、ゲーム画像を生成する。また、カラーバッファ１５は、レンダリングユニット１４によって生成されたゲーム画像データ（ＲＧＢデータ）を保持するために確保されたメモリ領域である。Ｚバッファ１６は、３次元の視点座標から２次元のスクリーン座標に変換する際に視点からの奥行情報を保持するために確保されたメモリ領域である。ＧＰＵ１２は、これらを用いてテレビ６に表示すべき画像データを生成し、適宜メモリコントローラ２０およびビデオＩ／Ｆ２２を介してテレビ６に出力する。なお、ゲームプログラム実行時にＣＰＵ１１において生成される音声データは、メモリコントローラ２０からオーディオＩ／Ｆ２４を介して、スピーカ２５に出力される。なお、本実施形態では、画像処理専用のメモリを別途設けたハードウェア構成としたが、これに限らず例えばメインメモリ１７の一部を画像処理用のメモリとして利用する方式（ＵＭＡ：Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ）を使うようにしてもよい。ゲーム装置２は、ゲームプログラムを実行することにより生成したゲームデータをメモリコントローラ２０およびメモリＩ／Ｆ２３を介してメモリカード４に転送する。また、ゲーム装置２は、ゲーム開始に先立って、メモリカード４に記憶されたゲームデータを、メモリコントローラ２０およびメモリＩ／Ｆ２３を介してメインメモリ１７に読み込む。
【００４６】
次に、本実施形態に係るプログラムによってゲーム装置２において実行される処理の概要を説明する。本実施形態において、ゲーム装置２は、プレイヤによるタッチパッド７に対する入力に基づいて表示制御処理を実行する。表示制御処理とは、テレビ６に表示される内容を制御する処理であり、具体的には、ゲーム画面をスクロールさせる処理（画面に表示されている画像全体をスクロールさせる処理）や、画面に表示されているオブジェクトを移動させる処理である。
【００４７】
ここで、ゲーム装置２は、タッチパッド７への入力に基づいて出力ベクトルを算出する。ゲーム装置２は、この出力ベクトルに基づいてプレイヤによる操作内容を判断し、プレイヤによる操作に従った表示制御処理を行う。なお、本実施形態では、ゲーム装置２によって３次元の仮想ゲーム空間が構築され、テレビ６には、当該仮想ゲーム空間内に設定される仮想カメラから見た当該仮想ゲーム空間の画像が表示される。本実施形態に係るゲーム装置２は、上記表示制御処理として、出力ベクトルに応じて仮想カメラの視線方向を変化させる処理を実行する。
【００４８】
図３および図４は、本実施形態における表示制御処理の例を示す図である。図３に示す仮想ゲーム空間が画面に表示されていた状態において、例えば、タッチパッド７上で左から右へ軌跡を描く入力をプレイヤが行ったとする。このとき、ゲーム装置２は、右方向を向く出力ベクトルを算出し、テレビ６の画面に表示されている仮想ゲーム空間の画像全体を左方向へ移動させる（画面を右方向へスクロールさせる）（図４）。すなわち、仮想ゲーム空間の画像全体を左方向へ移動させるように仮想カメラの視線方向を変化させる（図４）。なお、本実施形態では、表示制御処理として画像全体をスクロールさせる処理を実行する場合を例として説明するが、表示制御処理は、画面に表示されている画像中のオブジェクトを移動させる処理であってもよい。プレイヤによって操作されるプレイヤキャラクタが画面に表示される場合には、表示制御処理は、当該プレイヤキャラクタを仮想ゲーム空間内で移動させる処理であってもよい。
【００４９】
次に、出力ベクトルの算出方法について図５〜図８を用いて説明する。図５は、タッチパッド７に対する入力の一例を示す図である。タッチパッド７に対する入力を行う際、プレイヤは、タッチパッド７の入力面上で軌跡を描くように入力を行う。本実施形態のように仮想カメラの視線方向を移動させる操作をタッチパッド７を用いて行う場合、典型的には、プレイヤは直線状の軌跡を入力面上に描くと考えられる。ただし図５および図７では、後述する目標点および追従点の移動の様子を見やすくする目的で、曲線状の軌跡が描かれた場合を例として示している。
【００５０】
タッチパッド７は、所定のサンプリング時間間隔で入力位置を検出する。例えば図５において、プレイヤが点線で示す軌跡を描いた場合、タッチパッド７は、入力位置として、位置Ｐ１’、Ｐ２’、Ｐ３’、およびＰ４’を順に連続して検出する。入力位置の座標（入力座標）を示すデータは、入力位置が検出される度にコントローラ５からゲーム装置２へ出力される。ゲーム装置２は、出力された入力座標の位置と前回に出力された入力座標の位置との差を示すベクトルを算出する。以下、このベクトルを入力ベクトルと呼ぶ。入力ベクトルは、前回に検出された入力位置を始点とし、最後に検出された入力位置（最新の入力位置）を終点とするベクトルである。換言すれば、入力ベクトルは、入力面上を入力位置が移動する速度を示す。図５の例においては、入力位置Ｐ２’が検出されたとき、入力ベクトルとしてベクトルＶｉ１’が算出される。また、入力位置Ｐ３’が検出されたとき、入力ベクトルとしてベクトルＶｉ２’が算出され、入力位置Ｐ４’が検出されたとき、入力ベクトルとしてベクトルＶｉ３’が算出される。なお、上記入力位置を示す入力座標および入力ベクトルは、タッチパッド７の入力面上の位置を表すための座標系によって表現される。ここでは、入力面上の座標系をｘ’ｙ’座標系と表す。
【００５１】
なお、他の実施形態においては、タッチパッド７が入力位置の移動速度（すなわち、入力ベクトル）を検出することが可能である場合には、入力ベクトルを示すデータが操作データとしてタッチパッド７からゲーム装置２へ出力されてもよい。この場合、ゲーム装置２は、入力位置から入力ベクトルを算出する処理を実行する必要がない。
【００５２】
図６は、仮想平面の一例を示す図である。仮想平面とは、出力ベクトルを算出するためにゲーム装置２が設定する仮想の平面である。本実施形態では、仮想平面は有限の大きさを有しているとする。仮想平面上には、出力ベクトルを算出するために用いられる目標点および追従点が設定される。目標点は、上記入力ベクトルの大きさおよび向きに基づいて移動される点である。追従点は、目標点を追従するように移動される点である。図６に示すように、目標点および追従点は、最初は同じ位置に設定される。目標点および追従点の位置を表す座標系（ｘｙ座標系）は、タッチパッド７の入力面上の位置を表す座標系と同じであってもよいし、異なる座標系であってもよい。なお、ここでは、ｘｙ座標系とｘ’ｙ’座標系とは同じ座標系であるとし、ｘｙ座標系のｘ軸がｘ’ｙ’座標系のｘ’軸に対応し、ｘｙ座標系のｙ軸がｘ’ｙ’座標系のｙ’軸に対応するものとする。
【００５３】
図６は、図５に示した入力が行われた場合における目標点および追従点の移動の様子を示している。なお、図６においては、目標点を白丸で示し、追従点を黒丸で示している。初期状態においては、目標点の初期位置Ｐ１および追従点の初期位置Ｑ１は同じ位置である。目標点および追従点の位置は、入力位置が検出されて入力ベクトルが算出される度に更新される。目標点は、入力ベクトルの向きに対応する方向に、入力ベクトルの大きさに基づいた距離だけ移動される。具体的には、目標点は、入力ベクトルに基づいて算出される目標移動ベクトルにより示される距離および方向に移動される。なお、後述する詳細なゲーム処理（図９〜図１２参照）においては、入力ベクトルの大きさの変化を緩和するように目標移動ベクトルが算出されるが、図５〜図８においては、説明をわかりやすくする目的で、入力ベクトルと目標移動ベクトルとは同じであるとする。
【００５４】
例えば図６において、入力位置Ｐ２’が検出されて入力ベクトルＶｉ１’が算出されたとき、位置Ｐ１にある目標点は、入力ベクトルＶｉ１’に基づいて算出される目標移動ベクトルＶｉ１により示される距離および方向に移動される結果、位置Ｐ２に移動される。さらに、位置Ｑ１にある追従点は、目標点に追従するように位置Ｑ１から位置Ｐ２の方向へ移動される結果、追従点は位置Ｑ２に移動される。つまり、追従点の移動先の位置は、位置Ｑ１と位置Ｐ２との間の位置となる。
【００５５】
出力ベクトルは、前回の追従点の位置を始点とし、現在の追従点の位置を終点とするベクトルとして算出される。つまり、出力ベクトルは、追従点の速度を示すベクトルである。例えば図６において、入力位置Ｐ２’が検出されて入力ベクトルＶｉ１’が算出されたとき、追従点はＱ１からＱ２に移動されるので、このときの出力ベクトルは、位置Ｑ１を始点とし位置Ｑ２を終点とするベクトルＶｏ１となる。
【００５６】
また例えば、入力位置Ｐ３’が検出されて入力ベクトルＶｉ２’が算出されたとき、位置Ｐ２にある目標点は、入力ベクトルＶｉ２’に基づいて算出される目標移動ベクトルＶｉ２により示される距離および方向に移動される結果、位置Ｐ３に移動される。さらに、位置Ｑ２にある追従点は、目標点に追従するように位置Ｑ２から位置Ｐ３の方向へ移動される結果、位置Ｑ３に移動される。このとき、出力ベクトルは、位置Ｑ２を始点とし位置Ｑ３を終点とするベクトルＶｏ２となる。同様に、入力位置Ｐ４’が検出されて入力ベクトルＶｉ３’が算出されたとき、位置Ｐ３にある目標点は位置Ｐ４に移動され、位置Ｑ３にある追従点は位置Ｑ４に移動される。その結果、出力ベクトルは、位置Ｑ３を始点とし位置Ｑ４を終点とするベクトルＶｏ４となる。
【００５７】
上記のように本実施形態では、ゲーム装置２は、入力位置の移動速度を示す入力ベクトルに基づいて目標点を移動し、目標点を追従するように移動される追従点の速度を示す出力ベクトルを算出する。これによって、入力ベクトルの大きさおよび向きに急激な変化があった場合でも、出力ベクトルではこのような急激な変化が緩和されることになる。ゲーム装置２は、この出力ベクトルを用いて仮想カメラの視線方向を移動することによって、仮想カメラの視線方向が急激に変化することを防止することができる。すなわち、仮想カメラの視線方向が急激に変化することによって、画面が急にスクロールしたり、スクロールしていた画面が急に停止したりすることを防止することができる。したがって、画面の急激な移動によってプレイヤが不快さを感じることを防止することができる。
【００５８】
次に、目標点および追従点の移動動作について図７および図８を用いて詳細に説明する。図７および図８は、目標点および追従点が移動する様子をフレーム毎に示す図である。なお、本実施形態では、タッチパッド７における入力位置の検出が１フレーム毎に行われ、目標点および追従点の移動は１フレーム毎に行われるものとする。また、図７および図８では説明を容易にする目的で、目標点および追従点が１次元の直線上を移動するものとして説明する。
【００５９】
まず、タッチパッド７に対する入力が最初に検出されたフレーム（１フレーム目）では、目標点および追従点はそれぞれ初期位置Ｐ１およびＱ１に設定される。なお、１フレーム目の時点では追従点が移動していないので、出力ベクトルは０である。
【００６０】
２フレーム目では、目標点が位置Ｐ２に移動したとする。位置Ｑ１にある追従点は、位置Ｐ２の方向へ移動される。ここで、追従点の移動距離は、位置Ｑ１と位置Ｐ２との距離（位置Ｑ１から位置Ｐ２までのベクトル）Ｖｍ１に基づいて算出される。具体的には、追従点は、位置Ｑ１と位置Ｐ２との距離に所定の定数Ｓを積算した距離だけ移動される。つまり、追従点の移動距離、すなわち、出力ベクトルＶｏ１の大きさは、ベクトルＶｍ１に当該所定の定数Ｓを積算することによって算出される。この所定の定数は、追従点が目標点を追従する度合いを表すので、以下では、当該所定の定数を「追従度」と呼ぶ。なお、追従度Ｓは、０＜Ｓ＜１である。したがって、出力ベクトルＶｏ１はベクトルＶｉ１より小さくなるので、入力ベクトルの大きさの変化が出力ベクトルでは緩和され、入力開始時の急激な速度変化を緩和することができることがわかる。
【００６１】
３フレーム目以降でも２フレーム目と同様に目標点および追従点が移動される。すなわち、ｎ（ｎは２以上の整数）フレーム目における追従点の移動距離Ｖｏ（ｎ）は、ｎ−１フレーム目における追従点の位置と、ｎフレーム目における目標点の位置との距離Ｖｍ（ｎ）に基づいて決定される。
【００６２】
図７および図８では、５フレーム目でタッチパッド７に対する入力がなくなったものとする。このとき、ゲーム装置２は目標点を移動しない。つまり、４フレーム目における目標点の位置がそのまま維持され、目標点は初期位置に戻らない。一方、追従点は、２フレーム目以降と同様に移動される。つまり、５フレーム目においても追従点は位置Ｑ４から位置Ｑ５まで移動する。したがって、出力ベクトルＶｏ４は、０ではない大きさを有する。
【００６３】
なお、６フレーム目以降においても、追従点は５フレーム目と同様に移動する。そして、追従点は、実質的に目標点に追いついたと判断された時点で移動を停止する。ゲーム装置２は、追従点から目標点までの距離Ｖｍ（ｎ）が、予め定められた所定の距離（後述する到達領域の半径Ｒ）以内になった場合、「追従点が実質的に目標点に追いついた」と判断する。すなわち、目標点から所定の距離以内に追従点が位置する場合、追従点は移動されない。
【００６４】
図７に示したように、本実施形態においては、タッチパッド７に対する入力がなくなった後のフレームにおいても、出力ベクトルが０でない大きさとなる結果、画面のスクロールが続けられる。つまり、画面のスクロールは、タッチパッド７に対する入力がなくなってからしばらくの間（追従点が目標点に追いつくまでの間）続行され、次第にスクロールの速度が遅くなりながら最後にスクロールが停止する。これによって、入力終了時に入力ベクトルの大きさが急激に変化する場合であっても、画面のスクロールの速度が急激に変化することを防止することができる。
【００６５】
なお、入力終了時に入力ベクトルの大きさが急激に変化することを防止するためには、目標点が停止した後も追従点を移動させる方法の他に、入力終了時における出力ベクトルの大きさを単に小さくし（例えば、０＜ａ＜１である定数ａを入力ベクトルに乗算する）、目標点が停止したことに応じて追従点を停止する方法も考えられる。例えば、図４の例で言えば、ベクトルＶｏ３の大きさを小さくするように調整するのである。
【００６６】
しかし、この方法では、目標点の総移動量（図７に示す位置Ｐ１から位置Ｐ４までの距離）と、追従点の総移動量（位置Ｑ１から位置Ｑ４までの距離）とが、等しくならない。目標点の総移動量と追従点の総移動量とは比例しないので、プレイヤによる軌跡の描き方（軌跡を描いた速度等）によって、追従点の総移動量が目標点の総移動量に近い値になったり、大きく異なる値になったりする。したがって、プレイヤが同じ長さの軌跡をタッチパッド７上に描いたとしても、軌跡を描いた速度や１フレーム毎の速度の変化量によって、追従点の移動量、すなわち、画面のスクロール量が異なってしまう。そのため、プレイヤは、自分が描いた直線の長さによって画面のスクロール量をイメージすることができず、プレイヤが思っていたよりも画面がスクロールしなかったり、逆に、思っていたよりも画面がスクロールしすぎたりすることになる。このとき、プレイヤは、画面のスクロールに不自然な印象を受け、操作性が悪いと感じる。
【００６７】
そこで、本実施形態では、目標点の移動が停止した後も追従点を移動するようにしている。これによって、入力ベクトルに基づいて移動する目標点の総移動距離と、出力ベクトルを算出する元になる追従点の総移動距離とは、ほぼ同じになる。したがって、タッチパッド７の入力面上に描かれた軌跡の長さに応じた距離だけ目標点を移動させるようにすれば、追従点の総移動距離、すなわち、出力ベクトルの総和は、当該軌跡の長さに応じて決まることになる。これによって、プレイヤが描いた直線の長さと、画面がスクロールする距離とを比例させることができる。例えば、プレイヤがタッチパッド７上に所定長さの直線を描いたことによる画面のスクロール量は、当該所定長さの半分の長さの直線を描いたことによる画面のスクロール量の約２倍となる。プレイヤは、自分が描いた直線の長さによって画面のスクロール量をイメージすることができるので、プレイヤが思っていたよりも画面がスクロールしなかったり、逆に、思っていたよりも画面がスクロールしすぎたりすることを防止することができる。つまり、プレイヤが不自然な印象を受けることを防止し、プレイヤに快適な操作性を提供することができる。
【００６８】
次に、プレイヤが一旦タッチオフした（タッチパッド７から指等を離した）後で再度タッチオン（タッチパッド７に触れる）する状況を考える。例えば、プレイヤが画面を大きくスクロールさせる場合にこのような状況が起こると考えられる。例えば、画面を右方向に大きくスクロールさせる操作をプレイヤが行う場合を考える。この場合、プレイヤは、タッチパッド７上において左から右に延びる軌跡を描く操作を行う。ただし、１回の当該操作による画面のスクロール量は決まっているので、１回の操作で所望のスクロール量が得られない場合、プレイヤは当該操作を複数回連続して行う。この場合、プレイヤは、１回の上記操作が完了したことによってタッチオフした直後に、再度同じ操作を行うためにタッチオンする。本実施形態では、このようなタッチオフ直後に再度タッチオンする場合においても、画面をスムーズにスクロールさせることができる。以下、タッチオフ後に再度タッチオンする場合における目標点および追従点の動作について説明する。
【００６９】
図８は、目標点および追従点が移動する様子をフレーム毎に示す図である。図８は、図７において５フレーム目でプレイヤがタッチオフした後、８フレーム目で再度タッチオンを行った場合の移動の様子を示す図である。
【００７０】
プレイヤがタッチオフしている間のフレーム（５フレーム目〜７フレーム目）では、上述のように、目標点の位置はそのまま維持される。すなわち、目標点は位置Ｐ４の位置にある。さらに、プレイヤが再度タッチオンする８フレーム目では、入力ベクトルは０であるので、８フレーム目においても目標点は移動しない。一方、追従点は５フレーム目〜８フレーム目の間も移動し続け、８フレーム目の時点では位置Ｑ８にある。
【００７１】
次の９フレーム目において、目標移動ベクトルＶｉ８が算出された結果、位置Ｐ４にあった目標点は位置Ｐ９に移動される。このとき、追従点は、現在の位置Ｑ８から目標点の位置Ｐ９までを結ぶベクトルＶｍ８に基づいて移動される。すなわち、追従点は、位置Ｑ８と位置Ｐ９との距離に上記追従度Ｓを積算した距離だけ移動される。１０フレーム目以降については、９フレーム目の場合と同様に目標点および追従点の移動が行われる。
【００７２】
以上のように、本実施形態においては、タッチオフ後に再度タッチオンされた場合であっても、目標点の位置はタッチオフ前の位置が継続して用いられる。また、追従点は、タッチオフ中であるかタッチオン中であるかにかかわらず、目標点を追従するように移動される。
【００７３】
ここで、仮に、タッチオフ後に再度タッチオンされた場合に目標点および追従点の位置をリセットする（初期位置に移動する）ようにした場合を考える。この場合、タッチオンされた時点における出力ベクトルは０になる。したがって、タッチオンされた時点で追従点が目標点に追いついていない場合には、画面のスクロールが急に停止してしまう。これによって、画面を自然にスクロールさせることができなくなる。また、タッチオンされる直前のフレームまでに追従点が目標点に追いついていない場合には、目標点の総移動距離と追従点の総移動距離とが異なることになる。そのため、プレイヤが思っていたよりも画面がスクロールしなくなるので、プレイヤは画面のスクロールに対して不自然な印象を受けてしまう。
【００７４】
一方、本実施形態においては、目標点および追従点についてタッチオフ前の位置が継続されるので、追従点が目標点に追いついていない場合にはタッチオン時における出力ベクトルは０にならない。したがって、タッチオン時に画面のスクロールが急に停止することがない。また、タッチオフおよびタッチオンが複数回繰り返されても、最終的な総移動距離は目標点と追従点とでほぼ同じになるので、プレイヤが画面のスクロールに対して不自然な印象を受けることがない。
【００７５】
なお、本実施形態では、タッチパッド７を用いて仮想カメラの視線方向を移動させるモード（第１モード）と、それ以外のモード（第２モード：例えば、仮想ゲーム空間に登場するプレイヤキャラクタをプレイヤによる操作に従って移動させるモード）とが用意されている。例えば、ゲームモードが第２モードに設定されている場合、仮想ゲーム空間内のプレイヤキャラクタが画面に表示されるように仮想カメラが設定され、プレイヤキャラクタが移動する様子を仮想カメラで撮像して画面に表示される。一方、ゲームモードが第１モードに設定されている場合、プレイヤキャラクタから仮想ゲーム空間を見た始点となるように仮想カメラの位置が切り替わる。目標点および追従点は、第２モードから第１モードへ切り替わったときにリセットされる。第１モード中においては、上述したように、タッチオフ後に再度タッチオンされた場合であっても目標点および追従点の位置はリセットされない。
【００７６】
次に、ゲームプログラムを実行することによってゲーム装置２において行われるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる主なデータについて図９を用いて説明する。図９は、ゲーム装置２のメインメモリ１７に記憶される主なデータを示す図である。図９に示すように、メインメモリ１７には、現在入力座標データ４１、前入力座標データ４２、入力ベクトルデータ４３、入力速度データ４４、目標座標データ４５、追従座標データ４６、距離ベクトルデータ４７、２点間距離データ４８、出力ベクトルデータ４９、速度定数データ５０、補正定数データ５１、仮想平面データ５２、到達領域データ５３、追従度データ５４、および、モードデータ５５等が記憶される。なお、メインメモリ１７には、図９に示すデータの他、プレイヤキャラクタに関するデータ（プレイヤキャラクタの画像データや位置データ等）やゲーム空間に関するデータ（地形データ等）等、ゲーム処理に必要なデータが記憶される。
【００７７】
現在入力座標データ４１は、タッチパッド７によって検出された最新の入力位置を表す座標（現在入力座標）を示すデータである。タッチパッド７が検出した入力座標データは、操作データとしてコントローラ５からゲーム装置２へ出力される。ゲーム装置２のＣＰＵ１１は、当該操作データに含まれる入力座標データを現在入力座標データ４１としてメインメモリ１７に記憶する。なお、ゲーム装置２は１フレーム毎に操作データをコントローラ５から取得して現在入力座標データ４１の内容を更新する。したがって、現在入力座標データ４１は、現在の入力位置（最も最近に検出された入力位置）の座標を示すことになる。なお、以下では、現在入力座標の値を（Ｉｐｘ，Ｉｐｙ）と表す。
【００７８】
また、前入力座標データ４２は、タッチパッド７によって検出された前回の入力位置を表す座標（前入力座標）を示すデータである。すなわち、ＣＰＵ１１は、新たな座標データをコントローラ５から取得すると、取得した座標データの内容を現在入力座標データ４１としてメインメモリ１７に更新して記憶するとともに、更新前の現在入力座標データ４１の内容を前入力座標データ４２としてメインメモリ１７に記憶する。なお、以下では、前入力座標の値を（Ｉｐｘ’，Ｉｐｙ’）と表す。
【００７９】
入力ベクトルデータ４３は、上記入力ベクトルを示すデータである。入力ベクトルは、上記現在入力座標データ４１および前入力座標データ４２に基づいて算出される。なお、本実施形態では、タッチパッド７上の位置を表す座標系と、仮想平面上の位置を表す座標系とについて同じ座標系を用いる。これによって、タッチパッド７上の位置を表す座標を、仮想平面上の位置を表す座標へ変換する処理が不要になる。すなわち、上記入力ベクトルを上記目標移動ベクトルへ変換する処理が不要になる。したがって、入力ベクトルデータ４３は、上記入力ベクトルを示すとともに、上記目標移動ベクトルを示すことになる。なお、以下では、入力ベクトルの値を（Ｉｖｘ，Ｉｖｙ）と表す。
【００８０】
入力速度データ４４は、入力速度を示すデータである。入力速度は、入力ベクトルの時間変化を緩和するための計算（後述するステップＳ２１およびＳ２２）において用いられる変数である。なお、以下では、入力速度の値をＩｓと表す。本実施形態では、入力速度データ４４は１フレーム毎に算出され、入力速度データ４４の内容は１フレーム毎に更新される。なお、図示していないが、本実施形態においては、前回に算出された入力速度（更新前の入力速度。Ｉｓ’と表す。）を示すデータがメインメモリ１７に記憶される。
【００８１】
目標座標データ４５は、上記目標点の位置を表す座標（目標座標）を示すデータである。また、追従座標データ４６は、上記追従点の位置を表す座標（追従座標）を示すデータである。以下では、目標座標の値（２次元の座標値）を（Ｄｐｘ，Ｄｐｙ）と表し、追従座標の値を（Ｆｐｘ、Ｆｐｙ）と表す。また、距離ベクトルデータ４７は、追従点から目標点までの結ぶベクトル（距離ベクトル）を示すデータである。距離ベクトルは、出力ベクトルを算出するために用いられるベクトルであり、図７および図８に示したＶｍ（ｎ）に相当する。以下では、距離ベクトルの値を（Ｌｘ，Ｌｙ）と表す。また、２点間距離データ４８は、追従点から目標点までの距離（２点間距離）を示すデータである。すなわち、２点間距離データ４８は、距離ベクトルの大きさを示す。以下では、２点間距離の値をＬと表す。
【００８２】
出力ベクトルデータ４９は、上記出力ベクトルを示すデータである。入力ベクトルは、上記現在入力座標データ４１および前入力座標データ４２に基づいて算出される。以下では、出力ベクトルの値を（Ｆｖｘ、Ｆｖｙ）と表す。
【００８３】
速度定数データ５０は、上記入力速度を算出する処理（後述するステップＳ２１）に用いる定数である速度定数Ａｐを示すデータである。補正定数データ５１は、上記入力ベクトルを補正する処理（後述するステップＳ２２）に用いる定数である補正定数Ｓｐを示すデータである。
【００８４】
仮想平面データ５２は、仮想平面の大きさを示すデータである。仮想平面は無限の広がりを持つ平面として設定してもよいが、目標座標および追従座標の値を所定の範囲内で表すために、本実施形態では仮想平面を有限の大きさとしている。なお詳細は後述するが、仮想平面の端は逆側の端に接続されている（図１３参照）。ここでは、仮想平面は正方形であるとする。したがって、仮想平面の大きさは、正方形の一辺の長さＷによって表すことができる。また、仮想平面上の位置を表すための座標系は、正方形の所定の頂点に原点が位置するものとする（図１３参照）。
【００８５】
到達領域データ５３は、追従点が目標点に追いついたと判断される領域（到達領域と呼ぶ）を示すデータである。本実施形態では到達領域は目標点の位置を中心とした円形領域とする。したがって、到達領域は円形領域の半径によって表すことができる。すなわち、到達領域データ５３としては、当該円形領域の半径の長さを示す値を記憶しておけばよい。ここでは、到達領域である円形領域の半径をＲとする。
【００８６】
追従度データ５４は、上記追従度Ｓを示すデータである。追従度Ｓは、０＜Ｓ＜１の範囲で設定される。追従度Ｓの値を大きくすると、目標点に対する追従点の追従性を高くすることができ、追従度Ｓの値を小さくすると、目標点に対する追従点の追従性を低くすることができる。
【００８７】
なお、上記定数（速度定数Ａｐ、補正定数Ｓｐ、仮想平面の幅Ｗ、半径Ｒ、および追従度Ｓ）の値は、ゲームプログラムにおいて予め設定されている値をゲーム装置２が読み込んでメインメモリ１７に記憶させるようにしてもよいし、ゲーム状況やプレイヤによる指示に応じて値が適宜設定されるようにしてもよい。
【００８８】
モードデータ５５は、現在のモードを示すデータである。すなわち、モードデータ５５は、上記第１モードおよび第２モードのいずれかを示す。モードデータ５５の内容は、モードが切り替わる度に更新される。
【００８９】
次に、ゲームプログラムを実行することによってゲーム装置２において行われるゲーム処理の詳細を、図１０〜図１４を用いて説明する。図１０は、ゲーム装置２において実行されるゲーム処理の流れを示すフローチャートである。ゲーム装置２の電源が投入されると、ゲーム装置２のＣＰＵ１１は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ１７等の各ユニットが初期化される。そして、光ディスク３に記憶されたゲームプログラムがメインメモリ１７に読み込まれ、ＣＰＵ１１によって当該ゲームプログラムの実行が開始される。図１０に示すフローチャートは、以上の処理が完了した後に行われるゲーム処理を示すフローチャートである。なお、図１０〜図１２に示すフローチャートにおいては、ゲーム処理のうち、タッチパッド７への入力に基づいて上記出力ベクトルを算出する処理について詳細に示し、本願発明と直接関連しない他のゲーム処理については詳細な説明を省略する。
【００９０】
図１０のステップＳ１において、まず、初期処理が行われる。具体的には、上記定数（速度定数Ａｐ、補正定数Ｓｐ、仮想平面の幅Ｗ、半径Ｒ、および追従度Ｓ）の値を示す各種データ４８〜５３が、メインメモリ１７に記憶される。さらにステップＳ１においては、３次元の仮想のゲーム空間が構築されるとともに、プレイヤキャラクタ等のゲーム空間に登場するキャラクタがゲーム空間に配置される。そして、初期状態のゲーム空間がテレビ６に表示される。なお、本実施形態では、初期状態においてゲームモードは第２モードに設定されているものとする。すなわち、メインメモリ１７に記憶されているモードデータ５５は第２モードを示す。ステップＳ１の初期処理によってゲームが開始され、以降のステップＳ２〜Ｓ１２の処理ループが１フレーム毎に繰り返されることによってゲームが進行していく。
【００９１】
ステップＳ２において、コントローラ５に対してプレイヤによって行われた入力が取得される。すなわち、ＣＰＵ１１は、タッチパッド７ａおよび７ｂや各ボタン８ａ〜８ｄに対する操作内容を示す操作データをコントローラ５から取得する。続くステップＳ３において、モードを変更する操作が行われたか否かが判定される。すなわち、ＣＰＵ１１は、ステップＳ２ｄ取得した操作データに基づいて、モードを変更する操作（例えば、Ｒボタン８ｄを押下する操作）が行われたか否かを判定する。判定の結果、モードを変更する操作が行われたと判定される場合、ステップＳ４の処理が実行される。一方、モードを変更する操作が行われていないと判定される場合、ステップＳ４の処理がスキップされてステップＳ５の処理が実行される。
【００９２】
ステップＳ４においては、モードを変更する操作に応じてモードが切り替えられる。すなわち、操作前が第１モードであった場合には第２モードに切り替えられ、操作前が第２モードであった場合には第２モードに切り替えられる。ＣＰＵ１１は、メインメモリ１７中のモードデータ５５の内容を、切り替えられたモードに応じて変更する。本実施形態では、モードの切り替えに応じて仮想カメラの位置が変更される。具体的には、第１モードの場合には仮想カメラの位置はプレイヤキャラクタの頭部付近に設定され、第２モードの場合には仮想カメラの位置はプレイヤキャラクタを俯瞰する位置に設定される。ステップＳ４の次にステップＳ５の処理が実行される。
【００９３】
ステップＳ５において、現在のゲームモードが第１モードであるか否かが判定される。ＣＰＵ２１は、メインメモリ１７中のモードデータ５５を参照して、現在のゲームモードが第１モードであるか第２モードであるかを判定する。判定の結果、第１モードである場合、ステップＳ７〜Ｓ１１の処理が実行される。一方、第２モードである場合、ステップＳ６の処理が実行される。
【００９４】
まず、第２モードにおけるゲーム処理を説明する。ステップＳ６において、プレイヤによるゲーム操作に基づいたゲーム処理が行われる。なお、第２モードにおけるゲーム処理はどのようなものであってもよいが、例えば、ゲーム操作に従ってプレイヤキャラクタを移動させたり、敵キャラクタが登場する場合にはプレイヤキャラクタに敵キャラクタを攻撃させたりする処理が考えられる。ステップＳ６の後、後述するステップＳ１２の処理が実行される。
【００９５】
次に、第１モードにおけるゲーム処理を説明する。ステップＳ７において、ゲームモードが切り替えられた直後であるか否かが判定される。具体的には、直前に実行されたステップＳ３における判定が肯定であったか否かが判定される。判定の結果、ゲームモードが切り替えられた直後であると判定される場合、ステップＳ８の処理が実行される。一方、ゲームモードが切り替えられた直後でないと判定される場合、ステップＳ８の処理がスキップされてステップＳ９の処理が実行される。
【００９６】
ステップＳ８においては、仮想平面上における目標点および追従点が初期位置に設定される。ＣＰＵ１１は、メインメモリ１７に記憶されている目標座標データ４５および追従座標データ４６の内容を、予め定められた初期位置の座標値とする。さらに、ステップＳ８においては、ＣＰＵ１１は、メインメモリ１７に記憶されている現在入力座標データ４１、前入力座標データ４２、入力ベクトルデータ４３、入力速度データ４４、距離ベクトルデータ４７、および出力ベクトルデータ４９の内容をクリアする。ステップＳ８の次にステップＳ９の処理が実行される。
【００９７】
ステップＳ９において、ステップＳ２で取得された座標データが現在入力座標データ４１としてメインメモリ１７に記憶される。ステップＳ２でコントローラ５から取得される操作データにはタッチパッド７から出力される入力座標データが含まれているので、ＣＰＵ１１は、操作データに含まれている入力座標データの内容を現在入力座標データ４１としてメインメモリ１７に更新して記憶する。つまり、現在入力座標データ４１の内容は、ステップＳ２で取得された入力座標データの内容に更新される。さらにステップＳ９においては、更新前における現在入力座標データ４１の内容が、前入力座標データ４２としてメインメモリ１７に記憶される。
【００９８】
続くステップＳ１０において、出力ベクトル算出処理が実行される。出力ベクトル算出処理は、ステップＳ２で取得された入力座標データに基づいて出力ベクトルを算出するための処理である。以下、図１１〜図１４を用いて出力ベクトル算出処理の詳細を説明する。
【００９９】
図１１および図１２は、図１０に示す出力ベクトル算出処理（Ｓ１０）の詳細な処理の流れを示すフローチャートである。出力ベクトル算出処理においては、まずステップＳ２１において、入力座標から入力ベクトルが算出される。入力ベクトル（Ｉｖｘ，Ｉｖｙ）は、現在入力座標（Ｉｐｘ，Ｉｐｙ）と前入力座標（Ｉｐｘ’，Ｉｐｙ’）とを用いて算出される。すなわち、ＣＰＵ１１は、メインメモリ１７中の現在入力座標データ４１および前入力座標データ４２を参照して、次の式（１）に従って入力ベクトルを算出する。
Ｉｖｘ＝Ｉｐｘ−Ｉｐｘ’
Ｉｖｙ＝Ｉｐｙ−Ｉｐｙ’  …（１）
なお、タッチパッド７に対する入力が開始されたフレーム（タッチパッド７に対する入力があったフレームであって、前回のフレームで当該入力がなかったフレーム）では、入力ベクトル（Ｉｖｘ，Ｉｖｙ）は（０，０）として算出される。上式（１）で算出された入力ベクトルを示すデータは、入力ベクトルデータ４３としてメインメモリ１７に更新して記憶される。ステップＳ２１の次にステップＳ２２の処理が実行される。
【０１００】
次のステップＳ２２およびＳ２３では、入力ベクトルを補正する処理が実行される。ステップＳ２２およびＳ２３の処理は、入力ベクトルの時間変化を緩和するように入力ベクトルが補正するための処理である。本実施形態では、目標点を追従する追従点の時間変化を出力ベクトルとすることによって入力ベクトルの時間変化を緩和するとともに、ステップＳ２２およびＳ２３の処理によって入力ベクトルの時間変化を緩和している。なお、他の実施形態においては、ステップＳ２２およびＳ２３の処理を実行せず、ステップＳ２１で算出された入力ベクトルをそのままステップＳ２４以降の処理に用いるようにしてもよい。
【０１０１】
具体的には、ステップＳ２２において、ステップＳ２１で算出された入力ベクトルに基づいて入力速度が算出される。入力速度Ｉｓは、入力ベクトル（Ｉｖｘ，Ｉｖｙ）と、前回の入力速度（ステップＳ２２で入力速度が更新される前の入力速度データ４４により示される入力速度）Ｉｓ’と、速度定数Ａｐとを用いて算出される。すなわち、ＣＰＵ１１は、メインメモリ１７中の入力ベクトルデータ４３、入力速度データ４４、および速度定数データ５０を参照して、次の式（２）に従って入力速度を算出する。
Ｉｓ＝Ｉｓ’＋（Ｉｖ−Ｉｓ’）×Ａｐ  …（２）
上式（２）において、Ｉｖは入力ベクトル（Ｉｖｘ，Ｉｖｙ）の長さである。なお、上式（２）において、タッチパッド７に対する入力が開始されたフレームでは、前回の入力速度（Ｉｓｘ’，Ｉｓｙ’）は（０，０）として計算される。上式（２）で算出された入力速度を示すデータは、入力速度データ４４としてメインメモリ１７に更新して記憶される。
【０１０２】
続くステップＳ２３において、ステップＳ２２で算出された入力速度に基づいて入力速度が補正される。入力ベクトル（Ｉｖｘ，Ｉｖｙ）は、ステップＳ２２で算出された入力速度（Ｉｓｘ，Ｉｓｙ）、補正前の入力ベクトル（Ｉｖｘ’，Ｉｖｙ’）、および補正定数Ｓｐを用いて算出される。すなわち、ＣＰＵ１１は、メインメモリ１７中の入力ベクトルデータ４３、入力速度データ４４、および補正定数データ５１を参照して、次の式（３）に従って入力ベクトルを補正する。
Ｉｖｘ＝Ｉｖｘ’×（Ｉｓ×Ｓｐ＋１）
Ｉｖｙ＝Ｉｖｙ’×（Ｉｓ×Ｓｐ＋１）  …（３）
ＣＰＵ１１は、メインメモリ１７に記憶される入力ベクトルデータ４３の値を、上式（３）で得られた値に更新する。ステップＳ２３の次にステップＳ２４の処理が実行される。
【０１０３】
ステップＳ２４において、入力ベクトルに基づいて目標点が移動される。目標点の移動後における位置を示す目標座標（Ｄｐｘ，Ｄｐｙ）は、移動前の目標点の位置を示す目標座標（Ｄｐｘ’，Ｄｐｙ’）と、入力ベクトル（Ｉｖｘ，Ｉｖｙ）とを用いて算出される。すなわち、ＣＰＵ１１は、メインメモリ１７中の入力ベクトルデータ４３および目標座標データ４５を参照して、次の式（４）に従って目標座標の値を算出する。
Ｄｐｘ＝Ｄｐｘ’＋Ｉｖｘ
Ｄｐｙ＝Ｄｐｙ’＋Ｉｖｙ  …（４）
上式（４）において、（Ｄｐｘ’，Ｄｐｙ’）は移動前の目標座標であり、式（４）の計算を行う前における目標座標データ４５により示される値である。ＣＰＵ１１は、メインメモリ１７に記憶される目標座標データ４５の値を、上式（４）で得られた値に更新する。ステップＳ２４の次にステップＳ２５の処理が実行される。
【０１０４】
ステップＳ２５において、目標点が仮想平面の境界を越えたか否かが判定される。そして、目標点が仮想平面の境界を越えた場合、ステップＳ２６において目標座標が補正される。以下、ステップＳ２５およびＳ２６の処理の詳細を、図１３を用いて説明する。
【０１０５】
図１３は、仮想平面上を目標点が移動する様子の一例を示す図である。図１３に示すように、本実施形態においては仮想平面３１は正方形である。仮想平面３１の位置を表すための座標系は、正方形の左下の頂点に原点が位置し、右方向をｘ軸正方向とし、上方向をｙ軸正方向とするように設定されている。仮想平面３１の各辺の長さはＷであるので、仮想平面のｘ軸方向およびｙ軸方向に関する範囲は０〜Ｗである。仮想平面３１の境界は、ｘ＝０、ｘ＝Ｗ，ｙ＝０，ｙ＝Ｗという４つの直線で表される。
【０１０６】
上述のように仮想平面３１は有限の大きさであるので、上記ステップＳ２４で目標点が移動されたことによって、目標点が仮想平面３１の境界を越えてしまうことが考えられる。図１３において、位置Ｐａは移動前の目標点の位置であり、位置Ｐｂ’は移動後の目標点の位置である。図１３では、目標点は、ｘ＝０の直線で表される境界を越えて移動している。ステップＳ２５は、目標点が図１３のように境界を越えて移動したことを検出するためのステップである。
【０１０７】
具体的には、ステップＳ２５においては、目標座標が仮想平面３１の範囲内（０〜Ｗ）の位置を表すか否かが判定される。ステップＳ２５の判定は、目標座標（Ｄｐｘ，Ｄｐｙ）および仮想平面の大きさＷを用いて行うことができる。すなわち、ＣＰＵ１１は、メインメモリ１７に記憶されている目標座標データ４５および仮想平面データ５２を参照して、以下の式（５）〜（８）が満たされるか否かをそれぞれ判定する。
Ｄｐｘ＜０  …（５）
Ｄｐｘ≧Ｗ  …（６）
Ｄｐｙ＜０  …（７）
Ｄｐｙ≧Ｗ  …（８）
ステップＳ２５においては、上式（５）〜（８）のうちの少なくとも１つが満たされる場合、目標点は仮想平面３１の境界を越えて移動したと判定される。一方、上式（５）〜（８）のすべてが満たされない場合、目標点は仮想平面３１の境界を越えて移動していないと判定される。ステップＳ２５の判定において、目標点は仮想平面３１の境界を越えて移動したと判定される場合、ステップＳ２６の処理が実行される。一方、目標点は仮想平面３１の境界を越えて移動していないと判定される場合、ステップＳ２６の処理がスキップされて図１２に示すステップＳ３０の処理が実行される。
【０１０８】
ステップＳ２６においては、仮想平面３１内の座標値をとるように目標座標が補正される。図１３を例にとって説明すると、目標点が移動によって仮想平面３１外の位置Ｐｂ’となった場合、目標点は仮想平面３１内の位置Ｐｂに補正される。すなわち、仮想平面３１の各辺には、仮想平面３１と同じ座標系を有する別の仮想平面（仮の仮想平面と呼ぶ）３２が接続していると考え、当該仮の仮想平面３２における座標系で位置Ｐｂを表した場合の座標値を、補正後の目標座標の座標値とする。これによって、仮想平面の境界は、逆側の境界に接続されていることとなる。なお、図１３では、ｘ＝０の直線で表される境界を目標点が超えた場合を例として説明したが、他の境界を越えた場合も同様に処理することができる。
【０１０９】
具体的には、ステップＳ２６においては、目標座標（Ｄｐｘ，Ｄｐｙ）の各成分の値が適宜補正される。すなわち、ＣＰＵ１１は、次の条件に従って式（９）〜（１２）の計算を行い、目標座標（Ｄｐｘ，Ｄｐｙ）を補正する。
上式（５）が満たされる場合：Ｄｐｘ＝Ｄｐｘ’＋Ｗ  …（９）
上式（６）が満たされる場合：Ｄｐｘ＝Ｄｐｘ’−Ｗ  …（１０）
上式（７）が満たされる場合：Ｄｐｙ＝Ｄｐｙ’＋Ｗ  …（１１）
上式（８）が満たされる場合：Ｄｐｙ＝Ｄｐｙ’−Ｗ  …（１２）
上式（９）〜（１２）において、（Ｄｐｘ’，Ｄｐｙ’）は補正前の目標座標である。なお、上記ステップＳ２５において、式（５）〜（８）のうちのいずれか２つの式が満たされる場合には、式（９）〜（１２）のうちで当該２つの式に対応する２つの式の計算が行われる。以上のステップＳ２６の次にステップＳ２７の処理が実行される。
【０１１０】
ステップＳ２７において、目標点の位置および追従点の位置に基づいて距離ベクトルが算出される。距離ベクトル（Ｌｘ，Ｌｙ）は、目標座標（Ｄｐｘ，Ｄｐｙ）および追従座標（Ｆｐｘ，Ｆｐｙ）を用いて算出される。すなわち、ＣＰＵ１１は、メインメモリ１７に記憶されている目標座標データ４５および追従座標データ４６を参照して、次の式（１３）に従って距離ベクトルを算出する。
Ｌｘ＝Ｄｐｘ−Ｆｐｘ
Ｌｙ＝Ｄｐｙ−Ｆｐｙ  …（１３）
ＣＰＵ１１は、メインメモリ１７に記憶される距離ベクトルデータ４７の値を、上式（１３）で得られた値に更新する。ステップＳ２７の次にステップＳ２８の処理が実行される。
【０１１１】
なお、目標点が仮想平面の境界を超えた場合、ステップＳ２７で算出された距離ベクトルが、追従点から目標点への正しいベクトルとならない。図１４は、目標点が仮想平面の境界を超えた場合における目標点および追従点を示す図である。図１４に示すように、位置Ｐａにあった目標点が仮想平面の境界を越えて位置Ｐｂに移動した場合、ステップＳ２７において算出される距離ベクトルは、ベクトルＶａとなる。しかし、このベクトルＶａは追従点から目標点への正しいベクトルではなく、正しいベクトルはＶｂとなるべきである。そこで、目標点が仮想平面の境界を超えた場合に距離ベクトルを補正するために、ステップＳ２８およびＳ２９の処理が実行される。
【０１１２】
ステップＳ２８においては、ステップＳ２７で算出された距離ベクトルを補正するか否かが判定される。ここで、本実施形態では、距離ベクトルの各成分の大きさに上限値を設定しておき、仮想平面の大きさＷを当該上限値の２倍よりも大きくなるように設定する。なお、距離ベクトルの各成分の大きさには上限がないが、タッチパッド７を用いた操作を実際に行う上で十分な大きさの値を上限値として設定しておけばよい。以上のように仮想平面の大きさＷを設定することによって、距離ベクトルの各成分の大きさＬｘおよびＬｙが仮想平面の大きさＷの半分以上の場合には、距離ベクトルの各成分の大きさのいずれかが上限値を超えているので、距離ベクトルを補正すべきと判断することができる。
【０１１３】
具体的には、ステップＳ２８において、ＣＰＵ１１は、メインメモリ１７に記憶されている距離ベクトルデータ４７および仮想平面データ５２を参照して、以下の式（１４）〜（１７）が満たされるか否かをそれぞれ判定する。
Ｌｘ＜−Ｗ／２  …（１４）
Ｌｘ≧Ｗ／２  …（１５）
Ｌｙ＜−Ｗ／２  …（１６）
Ｌｙ≧Ｗ／２  …（１７）
ステップＳ２８においては、上式（１４）〜（１７）のうちの少なくとも１つが満たされる場合、距離ベクトルを補正すると判定される。この場合、ステップＳ２９の処理が実行される。一方、上式（１４）〜（１７）のすべてが満たされない場合、距離ベクトルを補正しないと判定される。この場合、ステップＳ２９の処理がスキップされて図１２に示すステップＳ３０の処理が実行される。
【０１１４】
ステップＳ２９においては、ステップＳ２７で算出された距離ベクトルの各成分の大きさが補正される。具体的には、ＣＰＵ１１は、次の条件に従って式（１８）〜（２１）の計算を行い、距離ベクトル（Ｌｘ，Ｌｙ）を補正する。
上式（１４）が満たされる場合：Ｌｘ＝Ｌｘ’＋Ｗ  …（１８）
上式（１５）が満たされる場合：Ｌｘ＝Ｌｘ’−Ｗ  …（１９）
上式（１６）が満たされる場合：Ｌｙ＝Ｌｙ’＋Ｗ  …（２０）
上式（１７）が満たされる場合：Ｌｙ＝Ｌｙ’−Ｗ  …（２１）
上式（１８）〜（２１）において、（Ｌｘ’，Ｌｙ’）は補正前の距離ベクトルである。なお、上記ステップＳ２９において、式（１４）〜（１７）のうちのいずれか２つの式が満たされる場合には、式（１８）〜（２１）のうちで当該２つの式に対応する２つの式の計算が行われる。以上のステップＳ２９の次に図１２に示すステップＳ３０の処理が実行される。
【０１１５】
なお、追従点は目標点を追従するように移動するので、目標点が仮想平面の境界を越えた以降において追従点も目標点と同様に仮想平面の境界を越えて移動することになる（後述するステップＳ３６およびＳ３７）。ステップＳ２９の補正処理は、目標座標の補正が実行され、かつ、当該目標座標の補正が実行された結果実行されるべき追従座標の補正がまだ実行されていない場合（すなわち、追従点が境界をまだ超えていない場合）に実行されることになる。
【０１１６】
なお、ステップＳ２８およびＳ２９においては、距離ベクトルの各成分の大きさに上限値（Ｗ／２）を設け、当該各成分が上限値を超える場合に距離ベクトルを補正するようにした。ここで、他の実施形態では、目標点が仮想平面の境界を超えており、かつ、追従点が仮想平面の境界をまだ越えていないことを示すフラグを用いて、距離ベクトルを補正するか否かを判定するようにしてもよい。具体的には、ステップＳ２５における判定結果が肯定であった場合、フラグをオンに設定する。ステップＳ２８では、上述した判定に代えて、当該フラグがオンであるか否かを判定する。そして、フラグがオンである場合、ステップＳ２９の処理を行う。なお、フラグは、目標点に続いて追従点が仮想平面の境界を超えた場合（後述するステップＳ３６の判定結果が肯定であった場合）にオフに設定される。以上の処理によっても、距離ベクトルを正しい値に補正することができる。
【０１１７】
図１２に示すステップＳ３０において、距離ベクトルを用いて追従点から目標点までの距離（２点間距離）が算出される。すなわち、ＣＰＵ１１は、メインメモリ１７に記憶されている距離ベクトルデータ４７により示される距離ベクトル（Ｌｘ，Ｌｙ）の大きさを２点間距離Ｌとして算出する。算出された２点間距離Ｌを示すデータは、２点間距離データ４８としてメインメモリ１７に記憶される。
【０１１８】
続くステップＳ３１において、追従点が上記到達領域内に位置するか否かが判定される。到達領域は、目標点を中心とした半径Ｒの円形領域である。したがって、ステップＳ３１の判定は、ステップＳ３０で算出された２点間距離Ｌが到達領域の半径Ｒ以下であるか否かによって行うことができる。すなわち、ＣＰＵ１１は、メインメモリ１７に記憶されている到達領域データ５３および２点間距離データ４８を参照して、Ｌ≦Ｒであるか否かを判定する。ステップＳ３１の判定処理は、追従点が目標点に到達したと見なされるか否かを判定するための処理である。
【０１１９】
ステップＳ３１の判定において、追従点が上記到達領域内に位置すると判定される場合、ステップＳ３２の処理が実行される。ステップＳ３２において、出力ベクトルの値が０に設定される。すなわち、メインメモリ１７に記憶されている出力ベクトルデータ４９の内容は、（０，０）に更新される。ステップＳ３２の次に、ステップＳ３５の処理が実行される。
【０１２０】
一方、ステップＳ３１の判定において、追従点が上記到達領域内に位置しないと判定される場合、ステップＳ３３およびＳ３４の処理が実行される。ステップＳ３３およびＳ３４の処理は、追従点を目標点に追従するように移動させる処理である。まず、ステップＳ３３においては、距離ベクトルの大きさが調整される。距離ベクトルの大きさは、追従点から到達領域の外周までの距離となるように調整される。調整後の距離ベクトル（Ｌｘ，Ｌｙ）は、上記２点間距離Ｌ、調整前の距離ベクトル（Ｌｘ’，Ｌｙ’）、および到達領域の半径Ｒを用いて算出される。すなわち、ＣＰＵ１１は、メインメモリ１７に記憶されている距離ベクトルデータ４７、２点間距離データ４８、および到達領域データ５３を参照して、次の式（２２）に従って距離ベクトルを算出する。
Ｌｘ＝Ｌｘ’×（Ｌ−Ｒ）／Ｌ
Ｌｙ＝Ｌｙ’×（Ｌ−Ｒ）／Ｌ  …（２２）
ＣＰＵ１１は、メインメモリ１７に記憶される距離ベクトルデータ４７の値を、上式（２２）で得られた値に更新する。
【０１２１】
続くステップＳ３４において、距離ベクトル（Ｌｘ，Ｌｙ）および追従度Ｓに基づいて出力ベクトル（Ｆｖｘ，Ｆｖｙ）が算出される。すなわち、ＣＰＵ１１は、メインメモリ１７に記憶されている距離ベクトルデータ４７および追従度データ５４を参照して、次の式（２３）に従って出力ベクトルを算出する。
Ｆｖｘ＝Ｌｘ×Ｓ
Ｆｖｙ＝Ｌｙ×Ｓ  …（２３）
ＣＰＵ１１は、メインメモリ１７に記憶される出力ベクトルデータ４９の値を、上式（２３）で得られた値に更新する。このステップＳ３４で得られた出力ベクトルに基づいて、画面に表示されている画像を移動させる処理が実行される（後述するステップＳ１１）。ステップＳ３４の次に、ステップＳ３５の処理が実行される。
【０１２２】
ステップＳ３５においては、ステップＳ３４で算出された出力ベクトルに従って追従点が移動される。移動後の追従点の位置を示す追従座標（Ｆｐｘ，Ｆｐｙ）は、移動前の追従点の位置を示す追従座標（Ｆｐｘ’，Ｆｐｙ’）と、ステップＳ３２またはステップＳ３４で算出された出力ベクトル（Ｆｖｘ，Ｆｖｙ）を用いて算出される。すなわち、ＣＰＵ１１は、メインメモリ１７に記憶されている追従座標データ４６および出力ベクトルデータ４９を参照して、次の式（２４）に従って追従座標を算出する。
Ｆｐｘ＝Ｆｐｘ’＋Ｆｖｘ
Ｆｐｙ＝Ｆｐｙ’＋Ｆｖｙ  …（２４）
ＣＰＵ１１は、メインメモリ１７に記憶される追従座標データ４６の値を、上式（２４）で得られた値に更新する。ステップＳ３５の次にステップＳ３６の処理が実行される。
【０１２３】
ステップＳ３６において、追従点が仮想平面の境界を越えたか否かが判定される。ステップＳ３６の判定処理は、判定を行う対象を目標座標に代えて追従座標とする点を除いて、目標座標が仮想平面の境界を越えたか否かを判定するステップＳ２５の判定処理と同様である。ステップＳ３６の判定において、追従点が仮想平面の境界を越えたと判定される場合、ステップＳ３７において追従座標が補正される。ステップＳ３７の処理は、補正を行う対象を目標座標に代えて追従座標とする点を除いて、目標座標を補正するステップＳ２６の処理と同様である。一方、ステップＳ３６の判定において、追従点が仮想平面の境界を越えていないと判定される場合、ステップＳ３７の処理がスキップされ、ＣＰＵ１１は出力ベクトル算出処理を終了する。
【０１２４】
図１０の説明に戻り、ステップＳ１０の出力ベクトル算出処理の次に、ステップＳ１１の処理が実行される。ステップＳ１１においては、出力ベクトルの向きおよび大きさに基づいて、テレビ６の画面に表示されている画像をスクロールさせる処理が実行される。具体的には、ＣＰＵ１１は、仮想カメラの視線方向を、出力ベクトルの向きに対応する方向に、出力ベクトルの大きさに応じた角度だけ移動させる。これによって、画面上では画像がスクロールして表示される（図３および図４参照）。
【０１２５】
続くステップＳ１２において、ゲームを終了するか否かが判定される。ゲームを終了するか否かの判定は、例えば、ゲームオーバーとなる所定の条件（より具体的には、プレイヤキャラクタが敵キャラクタに倒されたこと）が満たされたか否かによって行うことができる。また、ゲームを終了するか否かの判定は、プレイヤがゲームを終了するための所定の操作を行われたか否かによって行うことができる。ステップＳ１２の判定において、ゲームを終了すると判定される場合、ＣＰＵ１１は図１０に示すゲーム処理を終了する。一方、ゲームを終了しないと判定される場合、ステップＳ２の処理が再度実行される。以降、ステップＳ１２においてゲームを終了すると判定されるまでステップＳ２〜Ｓ１２の処理ループが繰り返し実行される。
【０１２６】
以上のように、本実施形態では、目標点と、目標点を追従する追従点とを設定し、追従点の移動距離を示す出力ベクトルに基づいて表示制御処理を行う。これによって、入力開始時および入力終了時における入力ベクトルの急激な変化を緩和し、画像を滑らかに移動させることができる。さらに、追従点は、目標点の移動状況にかかわらず（目標点が移動しているか否かにかかわらず）、目標点に到達すると判断されるまで移動を続ける。これによって、プレイヤが行った入力の長さに応じた量だけ画像が移動されることになるので、画像を移動させる操作の操作性を向上することができる。
【０１２７】
なお、本実施形態では、入力ベクトルに基づいて目標点を移動させるようにしたが、他の実施形態では、入力位置に基づいて目標点を移動させるようにしてもよい。例えば、タッチパッド７の入力面上の入力位置に対応する位置に目標点を移動させるようにしてもよい。この場合でも、目標点の移動状況にかかわらず追従点を移動させることによって、上記と同様、プレイヤが行った入力の長さに応じた量だけ画像を移動させるようにすることができる。
【０１２８】
なお、本実施形態では、タッチパッド７に対する入力位置に基づくのではなく入力ベクトルに基づいて目標点を移動させることによって、タッチオフ後にタッチオンされた場合でも目標点の位置をリセットしなくてもよい。つまり、タッチオフ後にタッチオンされた場合であってもタッチオフ前の目標点の位置を維持して追従点を移動させることができる。これによって、タッチオフ直後にタッチオンがされた場合における画像の移動をスムーズにすることができる。さらに、タッチオフ直後にタッチオンがされた場合であっても目標点と追従点の総移動量をほぼ等しくすることができ、プレイヤが行った入力の長さに応じた量だけ画像が移動させることができる。
【０１２９】
また、他の実施形態においては、上記ステップＳ２１で算出された入力ベクトルの大きさが、予め定められた所定値よりも小さい場合、ステップＳ２４で目標点を移動させないようにしてもよい。なお、プレイヤが入力面上の１点をタッチしている場合であっても、タッチパッド７によって実際に検出される入力位置が若干移動してしまうことがある。このような場合には、画像が微少な距離だけ移動することになる。しかし、このような移動は、プレイヤが意図していない移動である。これに対して、入力ベクトルの大きさが微少である場合には目標点を移動させないようにすることで、プレイヤが意図しない操作によって画像が移動することを防止することができる。
【０１３０】
また、上記実施形態においては、コントローラ５から出力された入力座標データ（または入力ベクトルのデータ）を受け取ったゲーム装置２が、出力ベクトルを算出する処理を実行した。ここで、他の実施形態では、コントローラ５側で出力ベクトルを算出する処理を実行するようにしてもよい。すなわち、コントローラ５は、上記ステップＳ７〜Ｓ１０の処理を実行する。さらに、コントローラ５は、ステップＳ１０の結果得られた出力ベクトルをゲーム装置２へ出力（送信）する。ゲーム装置２は、コントローラ５から出力された出力ベクトルのデータを受信し、受信した出力ベクトルに応じて仮想カメラの視線方向を決定する（ステップＳ１１）。このように、コントローラ５がＣＰＵやステップＳ２およびＳ３を実行する処理回路を備える場合には、出力ベクトルをコントローラ５が算出するようにしてもよい。なお、このとき、ゲーム装置２は、出力ベクトルに応じた表示制御処理を行うだけであるので、従来のゲーム装置をそのまま適用することができる。すなわち、出力ベクトルを算出可能なコントローラを従来のゲーム装置に接続することによって、図１と同等のゲームシステムを実現することができる。
【０１３１】
また、上記実施形態においては、仮想平面上に設定される目標点を入力ベクトルに基づいて移動させることによって、目標点の位置を入力位置から独立して（目標点の位置を入力位置と一対一に対応させずに）管理するようにした。ここで、他の実施形態においては、入力面上の入力座標を仮想平面上の座標に変換する関数を用い、タッチオンされる度に当該関数を変更するようにしてもよい。すなわち、タッチオフ後にタッチオンされたことが検出された場合、ゲーム装置２は、タッチオンした位置を表す座標（タッチオン時の入力座標）を、タッチオフされた時点における目標座標に変換する関数を算出する。この関数は、具体的には、座標を所定距離だけ平行移動させる関数である。例えば、タッチオン時の入力座標を（１，０）とし、タッチオフされた時点における目標座標を（３，３）とした場合、ゲーム装置２は、ｘ座標値を２加算し、ｙ座標値を３加算するように座標を平行移動させる関数を算出する。ゲーム装置２は、タッチオンが行われた最初のフレームで当該関数を算出する。そして、タッチオンが継続する間は、算出された関数を用いて入力座標を変換する。なお、最初のタッチオン時（目標座標が初期位置にある時点）には、最初にタッチオンされた位置を目標座標の初期位置に変換する関数が算出される。以上のように、入力座標を上記関数を用いて変換することによって目標座標を計算し、新たにタッチオンが行われる度に当該関数を変更することで、目標点の位置を入力位置と一対一に対応させずに管理することができる。また、これによれば、タッチオフ後に再度タッチオンが行われた場合であっても、再度のタッチオン後の目標点の位置がタッチオフ前と異なることがない。
【０１３２】
また、上記実施形態においては、ゲームプログラムおよびゲーム装置を例として説明したが、本発明は、ゲームに限らず、画面上において指定された位置または上記入力ベクトルを検出することが可能なポインティングデバイスを用いて出力ベクトルを算出する技術に適用することができる。
【産業上の利用可能性】
【０１３３】
本発明は、ポインティングデバイスを用いて画面に表示されている画像を変化させる場合において操作者に自然な印象を与えること等を目的として、例えばゲーム装置等の情報処理装置や、情報処理装置において実行される入力データ処理プログラムに適用することが可能である。
【図面の簡単な説明】
【０１３４】
【図１】本発明の一実施形態に係るゲームシステムの構成を示す外観図
【図２】図１に示すゲームシステムのブロック図
【図３】本実施形態における表示制御処理の例を示す図
【図４】本実施形態における表示制御処理の例を示す図
【図５】タッチパッド７に対する入力の一例を示す図
【図６】仮想平面の一例を示す図
【図７】目標点および追従点が移動する様子をフレーム毎に示す図
【図８】目標点および追従点が移動する様子をフレーム毎に示す図
【図９】ゲーム装置２のメインメモリ１７に記憶される主なデータを示す図
【図１０】ゲーム装置２において実行されるゲーム処理の流れを示すフローチャート
【図１１】図１０に示す出力ベクトル算出処理の詳細な処理の流れを示すフローチャート
【図１２】図１０に示す出力ベクトル算出処理の詳細な処理の流れを示すフローチャート
【図１３】仮想平面上を目標点が移動する様子の一例を示す図
【図１４】目標点が仮想平面の境界を超えた場合における目標点および追従点を示す図
【符号の説明】
【０１３５】
１  ゲームシステム
２  ゲーム装置
３  光ディスク
６  テレビ
５  コントローラ
７ａ，７ｂ  タッチパッド
１１  ＣＰＵ
１７  メインメモリ
３１  仮想平面
【図１】
2007034793.tif 000003
【図２】
2007034793.tif 000004
【図３】
2007034793.tif 000005
【図４】
2007034793.tif 000006
【図５】
2007034793.tif 000007
【図６】
2007034793.tif 000008
【図７】
2007034793.tif 000009
【図８】
2007034793.tif 000010
【図９】
2007034793.tif 000011
【図１０】
2007034793.tif 000012
【図１１】
2007034793.tif 000013
【図１２】
2007034793.tif 000014
【図１３】
2007034793.tif 000015
【図１４】
2007034793.tif 000016