(57)【要約】【課題】ポインティングデバイスを用いた自由な操作と厳密な操作を両立させること。【解決手段】タッチパネルの入力面には、自由方向入力領域、横方向入力領域、および縦方向入力領域が設けられている。ユーザが自由方向入力領域内の点を起点としてスライド操作を行った場合には、Ｘ軸方向に関するタッチ位置の変化量とＹ軸方向に関するタッチ位置の変化量に基づいて仮想カメラの移動制御を行い、ユーザが横方向入力領域内の点を起点としてスライド操作を行った場合には、Ｘ軸方向に関するタッチ位置の変化量のみに基づいて仮想カメラの移動制御を行い、ユーザが縦方向入力領域内の点を起点としてスライド操作を行った場合には、Ｙ軸方向に関するタッチ位置の変化量のみに基づいて仮想カメラの移動制御を行う。【選択図】図６
2011138355.tif 000002
【特許請求の範囲】
【請求項１】
多次元の指示領域中の任意の位置を指示可能なポインティングデバイスからの入力を受け付け可能な情報処理装置のコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
前記ポインティングデバイスによって指示された前記指示領域中の位置を示す指示座標を繰り返し受け付ける指示座標受付手段、
前記指示座標受付手段で受け付けられた指示座標が、前記指示領域中の第１指示領域に属するか否か、及び前記指示領域中の第２指示領域に属するか否かを判断する領域判定手段、
前記領域判定手段によって前記指示座標が前記第１指示領域に属すると判断されたときには前記指示座標受付手段で受け付けられた指示座標に基づく方向を用いて所定の処理を実行する第１処理手段、および、
前記領域判定手段によって前記指示座標が前記第２指示領域に属すると判断されたときには前記指示座標受付手段で受け付けられた指示座標に基づく方向を所定方向に補正した方向を用いて前記所定の処理を実行する第２処理手段として機能させる、情報処理プログラム。
【請求項２】
前記指示座標に基づく方向とは、所定座標と当該指示座標とを結ぶ方向である、請求項１に記載の情報処理プログラム。
【請求項３】
前記所定座標とは、前記指示座標受付手段で繰り返し受け付けられる一連の指示座標の中で最初の指示座標である、請求項２に記載の情報処理プログラム。
【請求項４】
前記所定座標とは、前記指示領域中の固定の座標である、請求項２に記載の情報処理プログラム。
【請求項５】
前記所定座標とは、前記指示座標受付手段で繰り返し受け付けられる一連の指示座標の中で前回の処理時に受け付けられた指示座標である、請求項２に記載の情報処理プログラム。
【請求項６】
前記第２処理手段は、前記領域判定手段によって前記指示座標が前記第２指示領域に属すると判断されたときには前記指示座標受付手段で受け付けられた指示座標の所定方向の成分のみを用いて前記所定の処理を実行する、請求項１に記載の情報処理プログラム。
【請求項７】
前記指示領域は、１つの第１指示領域と複数の第２指示領域とを含む、請求項１に記載の情報処理プログラム。
【請求項８】
前記第２指示領域は、前記指示領域の端部に設定される、請求項１に記載の情報処理プログラム。
【請求項９】
前記所定方向が、前記指示座標を定義するための２つの座標軸のいずれか一方に平行な方向である、請求項１に記載の情報処理プログラム。
【請求項１０】
前記所定の処理は、所定の制御対象物を制御する処理である、請求項１に記載の情報処理プログラム。
【請求項１１】
前記制御対象物は、仮想空間に配置された仮想カメラである、請求項１０に記載の情報処理プログラム。
【請求項１２】
前記所定の処理は、前記仮想カメラを移動制御する処理である、請求項１１に記載の情報処理プログラム。
【請求項１３】
前記制御対象物は、仮想空間に配置されたオブジェクトであり、
前記所定の処理は、前記オブジェクトを制御する処理である、請求項１０に記載の情報処理プログラム。
【請求項１４】
前記所定の処理は、前記オブジェクトを移動制御する処理である、請求項１３に記載の情報処理プログラム。
【請求項１５】
前記指示座標はＸ座標値およびＹ座標値で表され、
前記第１処理手段は、前記領域判定手段によって前記指示座標が前記第１指示領域に属すると判断されたときには前記指示座標受付手段で受け付けられた指示座標のＸ座標値およびＹ座標値の両方を用いて前記所定の処理を実行し、
前記第２処理手段は、前記領域判定手段によって前記指示座標が前記第２指示領域に属すると判断されたときには前記指示座標受付手段で受け付けられた指示座標のＸ座標値およびＹ座標値のいずれか一方のみを用いて前記所定の処理を実行する、請求項１に記載の情報処理プログラム。
【請求項１６】
前記所定の処理は、前記指示座標のＸ座標値を用いた第１処理と、前記指示座標のＹ座標値を用いた第２処理を含み、
前記第１処理手段は、前記領域判定手段によって前記指示座標が前記第１指示領域に属すると判断されたときには前記指示座標受付手段で受け付けられた指示座標のＸ座標値を用いて前記第１処理を実行するとともに当該指示座標のＹ座標値を用いて前記第２処理を実行し、
前記第２処理手段は、前記領域判定手段によって前記指示座標が前記第２指示領域に属すると判断されたときには前記指示座標受付手段で受け付けられた指示座標のＸ座標値およびＹ座標値のいずれか一方のみを用いて前記第１処理および前記第２処理のいずれか一方のみを実行する、請求項１５に記載の情報処理プログラム。
【請求項１７】
前記指示座標受付手段で受け付けられた指示座標が、前記指示座標受付手段で繰り返し受け付けられる一連の指示座標の中で最初の指示座標（以下、開始指示座標と称す）であるか否かを判定する開始指示座標判定手段として前記コンピュータをさらに機能させ、
前記第１処理手段は、前記領域判定手段によって前記開始指示座標が前記第１指示領域に属すると判断されたときには、それ以降に前記指示座標受付手段で継続的に受け付けられる一連の指示座標に基づく方向を用いて所定の処理を実行し、
前記第２処理手段は、前記領域判定手段によって前記開始指示座標が前記第２指示領域に属すると判断されたときには、それ以降に前記指示座標受付手段で継続的に受け付けられる一連の指示座標に基づく方向を所定方向に補正した方向を用いて前記所定の処理を実行する、請求項１に記載の情報処理プログラム。
【請求項１８】
多次元の指示領域中の任意の位置を指示可能なポインティングデバイスからの入力を受け付け可能な情報処理装置であって、
前記ポインティングデバイスによって指示された前記指示領域中の位置を示す指示座標を繰り返し受け付ける指示座標受付手段、
前記指示座標受付手段で受け付けられた指示座標が、前記指示領域中の第１指示領域に属するか否か、及び前記指示領域中の第２指示領域に属するか否かを判断する領域判定手段、
前記領域判定手段によって前記指示座標が前記第１指示領域に属すると判断されたときには前記指示座標受付手段で受け付けられた指示座標に基づく方向を用いて所定の処理を実行する第１処理手段、および、
前記領域判定手段によって前記指示座標が前記第２指示領域に属すると判断されたときには前記指示座標受付手段で受け付けられた指示座標に基づく方向を所定方向に補正した方向を用いて前記所定の処理を実行する第２処理手段を備える、情報処理装置。
【請求項１９】
多次元の指示領域中の任意の位置を指示可能なポインティングデバイスからの入力を処理する情報処理方法であって、
前記ポインティングデバイスによって指示された前記指示領域中の位置を示す指示座標を繰り返し受け付ける指示座標受付ステップ、
前記指示座標受付ステップにおいて受け付けられた指示座標が、前記指示領域中の第１指示領域に属するか否か、及び前記指示領域中の第２指示領域に属するか否かを判断する領域判定ステップ、
前記領域判定ステップにおいて前記指示座標が前記第１指示領域に属すると判断されたときに、前記指示座標受付ステップにおいて受け付けられた指示座標に基づく方向を用いて所定の処理を実行する第１処理ステップ、および、
前記領域判定ステップにおいて前記指示座標が前記第２指示領域に属すると判断されたときに、前記指示座標受付ステップにおいて受け付けられた指示座標に基づく方向を所定方向に補正した方向を用いて前記所定の処理を実行する第２処理ステップを備える、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理装置および情報処理方法に関し、より特定的には、ポインティングデバイス等を用いて入力を行う情報処理部プログラム、情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
従来、例えば、特許文献１に記載のベクトル入力装置（以下、従来技術と称する）のようにタッチパネルを用いて検出したユーザのタッチ位置、及びタッチ位置の変化量などに応じて、画像をスクロールさせる、或いは仮想空間におけるオブジェクトを移動させる技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７―１８２０９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ユーザがタッチパネルなどのポインティングデバイスを用いて画像をスクロールさせる、或いは仮想空間に配置されたオブジェクトを移動させるときには、所定の軸方向（例えば、仮想空間における位置を示すための座標軸方向など）に厳密に一致した方向に移動させたい場合がある。しかし、ユーザが所定の軸に厳密に一致した方向にタッチ位置を変化させたつもりでも、実際にはぶれが生じてしまう。そして、上記従来技術では、ユーザがタッチ位置を変化させるときのぶれの影響をなくすことができない。したがって、上記従来技術は、所定の軸に厳密に一致した方向に移動させたいユーザにとって快適な入力ができる技術ではない。
【０００５】
それ故に、本発明は、ポインティングデバイスを用いた自由な操作と厳密な操作を両立させることを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【０００７】
本発明の情報処理プログラムは、多次元の指示領域中の任意の位置を指示可能なポインティングデバイスからの入力を受け付け可能な情報処理装置のコンピュータで実行される情報処理プログラムであって、上記コンピュータを、指示座標受付手段、領域判定手段、第１処理手段、および第２処理手段として機能させる。
上記指示座標受付手段は、上記ポインティングデバイスによって指示された上記指示領域中の位置を示す指示座標を繰り返し受け付ける。
上記領域判定手段は、上記指示座標受付手段で受け付けられた指示座標が、上記指示領域中の第１指示領域に属するか否か、及び上記指示領域中の第２指示領域に属するか否かを判断する。
上記第１処理手段は、上記領域判定手段によって上記指示座標が上記第１指示領域に属すると判断されたときには上記指示座標受付手段で受け付けられた指示座標に基づく方向を用いて所定の処理を実行する。
上記第２処理手段は、上記領域判定手段によって上記指示座標が上記第２指示領域に属すると判断されたときには上記指示座標受付手段で受け付けられた指示座標に基づく方向を所定方向に補正した方向を用いて上記所定の処理を実行する。
【０００８】
なお、上記指示座標に基づく方向とは、所定座標と当該指示座標とを結ぶ方向であってもよい。
【０００９】
また、上記所定座標とは、上記指示座標受付手段で繰り返し受け付けられる一連の指示座標の中で最初の指示座標であってもよい。
【００１０】
また、上記所定座標とは、上記指示領域中の固定の座標であってもよい。
【００１１】
また、上記所定座標とは、上記指示座標受付手段で繰り返し受け付けられる一連の指示座標の中で前回の処理時に受け付けられた指示座標であってもよい。
【００１２】
また、上記第２処理手段は、上記領域判定手段によって上記指示座標が上記第２指示領域に属すると判断されたときには上記指示座標受付手段で受け付けられた指示座標の所定方向の成分のみを用いて上記所定の処理を実行してもよい。
【００１３】
また、上記指示領域は、１つの第１指示領域と複数の第２指示領域とを含んでいてもよい。
【００１４】
また、上記第２指示領域は、上記指示領域の端部に設定されてもよい。これにより、ユーザは第２指示領域を目視することなく第２指示領域内の位置を容易に指示することができるようになり、操作性が向上する。
【００１５】
また、上記所定方向が、上記指示座標を定義するための２つの座標軸のいずれか一方に平行な方向であってもよい。
【００１６】
また、上記所定の処理は、所定の制御対象物を制御する処理であってもよい。
【００１７】
また、上記制御対象物は、仮想空間に配置された仮想カメラであってもよい。
【００１８】
また、上記所定の処理は、上記仮想カメラを移動制御する処理であってもよい。
【００１９】
また、上記制御対象物は、仮想空間に配置されたオブジェクトであり、上記所定の処理は、上記オブジェクトを制御する処理であってもよい。
【００２０】
また、上記所定の処理は、上記オブジェクトを移動制御する処理であってもよい。
【００２１】
また、上記指示座標はＸ座標値およびＹ座標値で表され、上記第１処理手段は、上記領域判定手段によって上記指示座標が上記第１指示領域に属すると判断されたときには上記指示座標受付手段で受け付けられた指示座標のＸ座標値およびＹ座標値の両方を用いて上記所定の処理を実行し、上記第２処理手段は、上記領域判定手段によって上記指示座標が上記第２指示領域に属すると判断されたときには上記指示座標受付手段で受け付けられた指示座標のＸ座標値およびＹ座標値のいずれか一方のみを用いて上記所定の処理を実行してもよい。
【００２２】
また、上記所定の処理は、上記指示座標のＸ座標値を用いた第１処理と、上記指示座標のＹ座標値を用いた第２処理を含み、上記第１処理手段は、上記領域判定手段によって上記指示座標が上記第１指示領域に属すると判断されたときには上記指示座標受付手段で受け付けられた指示座標のＸ座標値を用いて上記第１処理を実行するとともに当該指示座標のＹ座標値を用いて上記第２処理を実行し、上記第２処理手段は、上記領域判定手段によって上記指示座標が上記第２指示領域に属すると判断されたときには上記指示座標受付手段で受け付けられた指示座標のＸ座標値およびＹ座標値のいずれか一方のみを用いて上記第１処理および上記第２処理のいずれか一方のみを実行してもよい。
【００２３】
また、上記情報処理プログラムは、上記指示座標受付手段で受け付けられた指示座標が、上記指示座標受付手段で繰り返し受け付けられる一連の指示座標の中で最初の指示座標（以下、開始指示座標と称す）であるか否かを判定する開始指示座標判定手段として上記コンピュータをさらに機能させ、上記第１処理手段は、上記領域判定手段によって上記開始指示座標が上記第１指示領域に属すると判断されたときには、それ以降に上記指示座標受付手段で継続的に受け付けられる一連の指示座標に基づく方向を用いて所定の処理を実行し、上記第２処理手段は、上記領域判定手段によって上記開始指示座標が上記第２指示領域に属すると判断されたときには、それ以降に上記指示座標受付手段で継続的に受け付けられる一連の指示座標に基づく方向を所定方向に補正した方向を用いて上記所定の処理を実行してもよい。これにより、現在の指示座標が、開始指示座標が属していた第１指示領域もしくは第２指示領域から外れた場合において、ユーザの意図に反した処理が行われるのを防止することができる。
【００２４】
なお、上記情報処理プログラムは、コンピュータ読み取り可能な記憶媒体（例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性の半導体メモリカード、ＲＯＭなど）に格納されてもよい。
【００２５】
本発明の情報処理装置は、多次元の指示領域中の任意の位置を指示可能なポインティングデバイスからの入力を受け付け可能な情報処理装置であって、指示座標受付手段、領域判定手段、第１処理手段、および第２処理手段を備える。
上記指示座標受付手段は、上記ポインティングデバイスによって指示された上記指示領域中の位置を示す指示座標を繰り返し受け付ける。
上記領域判定手段は、上記指示座標受付手段で受け付けられた指示座標が、上記指示領域中の第１指示領域に属するか否か、及び上記指示領域中の第２指示領域に属するか否かを判断する。
上記第１処理手段は、上記領域判定手段によって上記指示座標が上記第１指示領域に属すると判断されたときには上記指示座標受付手段で受け付けられた指示座標に基づく方向を用いて所定の処理を実行する。
上記第２処理手段は、上記領域判定手段によって上記指示座標が上記第２指示領域に属すると判断されたときには上記指示座標受付手段で受け付けられた指示座標に基づく方向を所定方向に補正した方向を用いて上記所定の処理を実行する。
【００２６】
本発明の情報処理方法は、多次元の指示領域中の任意の位置を指示可能なポインティングデバイスからの入力を処理する情報処理方法であって、指示座標受付ステップ、領域判定ステップ、第１処理ステップ、および第２処理ステップを備える。
上記指示座標受付ステップでは、上記ポインティングデバイスによって指示された上記指示領域中の位置を示す指示座標を繰り返し受け付ける。
上記領域判定ステップでは、上記指示座標受付ステップにおいて受け付けられた指示座標が、上記指示領域中の第１指示領域に属するか否か、及び上記指示領域中の第２指示領域に属するか否かを判断する。
上記第１処理ステップでは、上記領域判定ステップにおいて上記指示座標が上記第１指示領域に属すると判断されたときに、上記指示座標受付ステップにおいて受け付けられた指示座標に基づく方向を用いて所定の処理を実行する。
上記第２処理ステップでは、上記領域判定ステップにおいて上記指示座標が上記第２指示領域に属すると判断されたときに、上記指示座標受付ステップにおいて受け付けられた指示座標に基づく方向を所定方向に補正した方向を用いて上記所定の処理を実行する。
【発明の効果】
【００２７】
本発明によれば、ポインティングデバイスを用いた自由な操作と厳密な操作を両立させることができる。
【図面の簡単な説明】
【００２８】
【図１】ゲーム装置１の外観図
【図２】ゲーム装置１の内部構成の一例を示すブロック図
【図３Ａ】上側ＬＣＤ２２に表示される画像の一例を示す図
【図３Ｂ】上側ＬＣＤ２２に表示される画像の他の一例を示す図
【図４】下側ＬＣＤ１２に表示される画像の一例を示す図
【図５Ａ】プレイヤキャラクタと仮想カメラとの位置関係を示す図
【図５Ｂ】プレイヤキャラクタと仮想カメラとの位置関係を示す図
【図６】タッチパネル上の各入力領域の一例を示す図
【図７Ａ】タッチ位置の軌跡の一例を示す図
【図７Ｂ】仮想カメラの移動の軌跡の一例を示す図
【図８Ａ】タッチ位置の軌跡の他の一例を示す図
【図８Ｂ】仮想カメラの移動の軌跡の他の一例を示す図
【図９】タッチ位置の軌跡の他の一例を示す図
【図１０】自由方向入力領域Ｎａにおけるタッチ位置の軌跡の一例を示す図
【図１１】横方向入力領域Ｘａにおけるタッチ位置の軌跡の一例を示す図
【図１２】縦方向入力領域Ｙａにおけるタッチ位置の軌跡の一例を示す図
【図１３】ゲームプログラムの実行時のメインメモリのメモリマップ
【図１４】ゲームプログラムの実行時のＣＰＵ３１の処理の流れを示すフローチャート
【図１５】カメラ位置制御処理の流れを示すフローチャート
【図１６】タッチパネル上の各入力領域の他の一例を示す図
【図１７】タッチパネル上の各入力領域の他の一例を示す図
【図１８】タッチパネル上の各入力領域の他の一例を示す図
【図１９Ａ】変形例における３次元の入力領域を示す図
【図１９Ｂ】変形例における３次元の入力領域を示す図
【図１９Ｃ】変形例における３次元の入力領域を示す図
【図１９Ｄ】変形例における３次元の入力領域を示す図
【発明を実施するための形態】
【００２９】
以下では、図面を参照して、本発明の一実施形態に係るゲーム装置について説明する。図１は、ゲーム装置１の外観図である。なお、ゲーム装置１は、カメラを内蔵しており、当該カメラによって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりする撮像装置としても機能する。
【００３０】
図１において、ゲーム装置１は、折り畳み型の携帯ゲーム装置であり、開いた状態（開状態）のゲーム装置１を示している。ゲーム装置１は、開いた状態においてもユーザが両手または片手で把持することができるサイズで構成される。
【００３１】
ゲーム装置１は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に連結されている。図１の例では、下側ハウジング１１および上側ハウジング２１は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、ユーザは、開状態でゲーム装置１を使用する。そして、ユーザは、ゲーム装置１を使用しない場合には閉状態としてゲーム装置１を保管する。また、図１に示した例では、ゲーム装置１は、上記閉状態および開状態のみでなく、下側ハウジング１１と上側ハウジング２１とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング２１を下側ハウジング１１に対して任意の角度で静止させることができる。
【００３２】
下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２が設けられる。下側ＬＣＤ１２は横長形状であり、長辺方向が下側ハウジング１１の長辺方向に一致するように配置される。なお、本実施形態では、ゲーム装置１に内蔵されている表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置等、他の任意の表示装置を利用してもよい。また、ゲーム装置１は、任意の解像度の表示装置を利用することができる。
【００３３】
下側ハウジング１１には、入力装置として、各操作ボタン１４Ａ〜１４Ｈおよびタッチパネル１３が設けられる。図１に示すように、各操作ボタン１４Ａ〜１４Ｈのうち、方向入力ボタン１４Ａ、操作ボタン１４Ｂ、操作ボタン１４Ｃ、操作ボタン１４Ｄ、操作ボタン１４Ｅ、スタートボタン１４Ｆ、セレクトボタン１４Ｇ、および電源ボタン１４Ｈは、上側ハウジング２１と下側ハウジング１１とを折りたたんだときに内側となる、下側ハウジング１１の内側主面上に設けられる。これらの各操作ボタン１４Ａ〜１４Ｇには、ゲーム装置１が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン１４Ｈは、ゲーム装置１の電源をオン／オフするために用いられる。図１に示す例では、方向入力ボタン１４Ａおよび電源ボタン１４Ｈは、下側ハウジング１１の内側主面中央付近に設けられる下側ＬＣＤ１２に対して、左右一方側（図１では左側）の当該主面上に設けられる。また、操作ボタン１４Ｂ〜１４Ｅ、スタートボタン１４Ｆ、およびセレクトボタン１４Ｇは、下側ＬＣＤ１２に対して左右他方側（図１では右側）となる下側ハウジング１１の内側主面上に設けられる。
【００３４】
なお、ゲーム装置１には、図１においては図示されていない、さらなる操作ボタンも設けられている。例えば、Ｌボタンは、下側ハウジング１１の上側面の左端部に設けられ、Ｒボタンは、下側ハウジング１１の上側面の右端部に設けられる。ＬボタンおよびＲボタンにも、ゲーム装置１が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、音量ボタンは、下側ハウジング１１の左側面に設けられ、音量ボタンは、ゲーム装置１が備えるスピーカの音量を調整するために用いられる。
【００３５】
また、ゲーム装置１は、操作ボタン１４Ａ〜１４Ｈに加えて、さらに、タッチパネル１３を入力装置として備えている。本実施形態におけるタッチパネル１３は、抵抗膜方式であって、下側ＬＣＤ１２の画面を覆うように装着されるものとする。タッチパネル１３の入力面に対する入力は、ユーザがタッチペン２７で触れる、或いはユーザが自身の指で触れるなどのタッチ操作で行うことができる。タッチパネル１３は、入力面に対してタッチ操作がされたときのタッチ位置を示す電圧を生成する。タッチパネル１３によって生成される電圧は、後述するように、Ｉ／Ｆ回路４２によってタッチパネル１３におけるＸ−Ｙ座標でタッチ位置を示すタッチ位置データに変換される。
【００３６】
下側ハウジング１１の右側面には、メモリカード２８を収納するための挿入口（図１では、二点鎖線で示している）がさらに設けられている。この挿入口の内側には、ゲーム装置１とメモリカード２８とを電気的に接続するためのコネクタ（図示せず）が設けられる。メモリカード２８は、例えばＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカードであり、上記コネクタに着脱自在に装着される。メモリカード２８は、例えば、ゲーム装置１によって撮像された画像を記憶（保存）したり、他の装置で生成された画像をゲーム装置１に読み込んだりするため等に用いられる。
【００３７】
また、下側ハウジング１１の右側面には、図１に破線で示すように、タッチペン２７を挿入して収納するための挿入口も設けられている。
【００３８】
さらに、下側ハウジング１１の上側面には、メモリカード２９を収納するための挿入口（図１では、一点鎖線で示している）が設けられる。この挿入口の内側にも、ゲーム装置１とメモリカード２９とを電気的に接続するためのコネクタ（図示せず）が設けられる。メモリカード２９は、情報処理プログラムやゲームプログラム等を記憶した記憶媒体であり、下側ハウジング１１に設けられた挿入口に着脱自在に装着される。
【００３９】
下側ハウジング１１と上側ハウジング２１との連結部の左側部分には、３つのＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）１５Ａ〜１５Ｃが取り付けられる。ここで、ゲーム装置１は、他の機器との間で無線通信を行うことが可能であり、第１ＬＥＤ１５Ａは、無線通信が確立している場合に点灯する。第２ＬＥＤ１５Ｂは、ゲーム装置１の充電中に点灯する。第３ＬＥＤ１５Ｃは、ゲーム装置１の電源がオンである場合に点灯する。したがって、３つのＬＥＤ１５Ａ〜１５Ｃによって、ゲーム装置１の通信確立状況、充電状況、および、電源のＯＮ／ＯＦＦ状況をユーザに通知することができる。
【００４０】
一方、上側ハウジング２１には、上側ＬＣＤ２２が設けられる。上側ＬＣＤ２２は横長形状であり、長辺方向が上側ハウジング２１の長辺方向に一致するように配置される。なお、下側ＬＣＤ１２と同様、上側ＬＣＤ２２に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。また、上側ＬＣＤ２２上を覆うように、タッチパネルを設けてもかまわない。
【００４１】
また、上側ハウジング２１には、２つのカメラ（内側カメラ２３および外側カメラ２５）が設けられる。図１に示すように、内側カメラ２３は、上側ハウジング２１の連結部付近の内側主面に取り付けられる。一方、外側カメラ２５は、内側カメラ２３が取り付けられる内側主面の反対側の面、すなわち、上側ハウジング２１の外側主面（ゲーム装置１が閉状態となった場合に外側となる面であり、図１に示す上側ハウジング２１の背面）に取り付けられる。なお、図１においては、外側カメラ２５を破線で示している。これによって、内側カメラ２３は、上側ハウジング２１の内側主面が向く方向を撮像することが可能であり、外側カメラ２５は、内側カメラ２３の撮像方向の逆方向、すなわち、上側ハウジング２１の外側主面が向く方向を撮像することが可能である。このように、本実施形態では、２つの内側カメラ２３および外側カメラ２５の撮像方向が互いに逆方向となるように設けられる。例えば、ユーザは、ゲーム装置１からユーザの方を見た景色を内側カメラ２３で撮像することができるとともに、ゲーム装置１からユーザの反対側の方向を見た景色を外側カメラ２５で撮像することができる。なお、下側ＬＣＤ１２および／または上側ＬＣＤ２２は、内側カメラ２３または外側カメラ２５で撮像されている画像をリアルタイムに表示するために用いられることもある。
【００４２】
なお、上記連結部付近の内側主面には、音声入力装置としてマイク（図２に示すマイク４３）が収納されている。そして、上記連結部付近の内側主面には、マイク４３がゲーム装置１外部の音を検知できるように、マイクロフォン用孔１６が形成される。マイク４３を収納する位置およびマイクロフォン用孔１６の位置は必ずしも上記連結部である必要はなく、例えば下側ハウジング１１にマイク４３を収納し、マイク４３の収納位置に対応させて下側ハウジング１１にマイクロフォン用孔１６を設けるようにしてもよい。
【００４３】
また、上側ハウジング２１の外側主面には、第４ＬＥＤ２６（図１では、破線で示す）が取り付けられる。第４ＬＥＤ２６は、内側カメラ２３または外側カメラ２５によって撮像が行われている間点灯する。また、内側カメラ２３または外側カメラ２５によって動画が撮像（撮像画像を動画として記憶）される間は点滅させてもよい。なお、第４ＬＥＤ２６の光が画面に映り込むことを防ぐために、シャッターが押された瞬間から、当該シャッターが押された瞬間の撮像画像の記憶が完了するまでの間は第４ＬＥＤ２６を消灯させてもよい。第４ＬＥＤ２６によって、ゲーム装置１による撮像が行われていることを撮像対象者や周囲に通知することができる。
【００４４】
また、上側ハウジング２１の内側主面中央付近に設けられる上側ＬＣＤ２２に対して、左右両側の当該主面に音抜き孔２４がそれぞれ形成される。音抜き孔２４の奥の上側ハウジング２１内には、それぞれスピーカが収納されている。音抜き孔２４は、スピーカからの音をゲーム装置１の外部に放出するための孔である。
【００４５】
以上に説明したように、上側ハウジング２１には、画像を撮像するための構成である内側カメラ２３および外側カメラ２５と、各種画像を表示するための表示手段である上側ＬＣＤ２２とが設けられる。一方、下側ハウジング１１には、ゲーム装置１に対する操作入力を行うための入力装置（タッチパネル１３および各ボタン１４Ａ〜１４Ｈ）と、各種画像を表示するための表示手段である下側ＬＣＤ１２とが設けられる。当該入力装置は、例えば、ゲーム装置１を使用する際には、下側ＬＣＤ１２や上側ＬＣＤ２２に撮像画像（カメラによって撮像された画像）を表示しながら、下側ハウジング１１をユーザが把持して入力装置に対する入力を行うような用途に用いることができる。
【００４６】
次に、図２を参照して、ゲーム装置１の内部構成を説明する。なお、図２は、ゲーム装置１の内部構成の一例を示すブロック図である。
【００４７】
図２において、ゲーム装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１と、メインメモリ３２と、メモリ制御回路３３と、保存用データメモリ３４と、プリセットデータ用メモリ３５と、メモリカードインターフェース（メモリカードＩ／Ｆ）３６および３７と、無線通信モジュール３８と、ローカル通信モジュール３９と、リアルタイムクロック（ＲＴＣ）４０と、電源回路４１と、インターフェース回路（Ｉ／Ｆ回路）４２等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて、下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００４８】
ＣＰＵ３１は、所定のプログラムを実行するための情報処理手段である。本実施形態では、所定のプログラムがゲーム装置１内のメモリ（例えば保存用データメモリ３４）やメモリカード２８および／または２９に記憶されており、ＣＰＵ３１は、当該所定のプログラムを実行することによって、後述する情報処理を実行する。なお、ＣＰＵ３１によって実行されるプログラムは、ゲーム装置１内のメモリに予め記憶されていてもよいし、メモリカード２８および／または２９から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。
【００４９】
ＣＰＵ３１には、メインメモリ３２、メモリ制御回路３３、およびプリセットデータ用メモリ３５が接続される。また、メモリ制御回路３３には、保存用データメモリ３４が接続される。メインメモリ３２は、ＣＰＵ３１のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ３２は、上記情報処理に用いられる各種データを記憶したり、外部（メモリカード２８および２９や他の機器等）から取得されるプログラムを記憶したりする。本実施形態では、メインメモリ３２として、例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。保存用データメモリ３４は、ＣＰＵ３１によって実行されるプログラムや内側カメラ２３および外側カメラ２５によって撮像された画像のデータ等を記憶するための記憶手段である。保存用データメモリ３４は、不揮発性の記憶媒体によって構成されており、例えば本実施例ではＮＡＮＤ型フラッシュメモリで構成される。メモリ制御回路３３は、ＣＰＵ３１の指示に従って、保存用データメモリ３４に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ３５は、ゲーム装置１において予め設定される各種パラメータ等のデータ（プリセットデータ）を記憶するための記憶手段である。プリセットデータ用メモリ３５としては、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）バスによってＣＰＵ３１と接続されるフラッシュメモリを用いることができる。
【００５０】
メモリカードＩ／Ｆ３６および３７は、それぞれＣＰＵ３１に接続される。メモリカードＩ／Ｆ３６は、コネクタに装着されたメモリカード２８に対するデータの読み出しおよび書き込みを、ＣＰＵ３１の指示に応じて行う。また、メモリカードＩ／Ｆ３７は、コネクタに装着されたメモリカード２９に対するデータの読み出しおよび書き込みを、ＣＰＵ３１の指示に応じて行う。本実施形態では、メモリカード２９に記憶された各種プログラムが、ＣＰＵ３１によって読み出されて実行される例を用いる。
【００５１】
なお、本発明のゲームプログラムは、メモリカード２９を通じてコンピュータシステムに供給されるだけでなく、メモリカード２８等の外部記憶媒体を通じてコンピュータシステムに供給されてもよい。また、本発明のゲームプログラムは、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよい。さらに、本発明のゲームプログラムは、コンピュータシステム内部の不揮発性記憶装置に予め記憶されていてもよい。なお、本発明のゲームプログラムを記憶する情報記憶媒体としては、上記不揮発性記憶装置に限らず、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【００５２】
無線通信モジュール３８は、例えばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３９は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３８およびローカル通信モジュール３９は、ＣＰＵ３１に接続される。ＣＰＵ３１は、無線通信モジュール３８を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３９を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００５３】
また、ＣＰＵ３１には、ＲＴＣ４０および電源回路４１が接続される。ＲＴＣ４０は、時間を計時してＣＰＵ３１に出力する。例えば、ＣＰＵ３１は、ＲＴＣ４０によって計時された時間に基づいて、現在時刻（日付）等を計算することもできる。電源回路４１は、ゲーム装置１が有する電源（典型的には電池であり、下側ハウジング１１に収納される）から供給される電力を制御し、ゲーム装置１の各部品に電力を供給する。
【００５４】
また、ゲーム装置１は、マイク４３およびアンプ４４を備えている。マイク４３およびアンプ４４は、それぞれＩ／Ｆ回路４２に接続される。マイク４３は、ゲーム装置１に向かって発声されたユーザの音声を検知して、当該音声を示す音声信号をＩ／Ｆ回路４２に出力する。アンプ４４は、Ｉ／Ｆ回路４２から出力される音声信号を増幅してスピーカ（図示せず）から出力させる。Ｉ／Ｆ回路４２は、マイク４３およびアンプ４４を制御する音声制御回路を含んでおり、マイク４３から出力される音声信号に対してＡ／Ｄ変換をして所定の形式の音声データに変換したり、ＣＰＵ３１によって生成される音声データをＤ／Ａ変換してアンプ４４に出力する音声信号を生成したりする。
【００５５】
また、Ｉ／Ｆ回路４２には、タッチパネル制御回路がさらに含まれており、タッチパネル１３が接続されている。タッチパネル制御回路は、タッチパネル１３によって生成される電圧に基づき、タッチパネル１３におけるタッチ位置をＸ−Ｙ座標値で示すタッチ位置データを生成する。
【００５６】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｈから構成され、ＣＰＵ３１に接続される。操作ボタン１４からＣＰＵ３１へは、各操作ボタン１４Ａ〜１４Ｈに対する入力状況（押下されたか否か）を示す信号が出力される。ＣＰＵ３１は、操作ボタン１４によって出力される信号を取得することによって、操作ボタン１４に対する入力に応じた処理を実行する。
【００５７】
内側カメラ２３および外側カメラ２５は、それぞれＣＰＵ３１に接続される。内側カメラ２３および外側カメラ２５は、ＣＰＵ３１の指示に応じて画像を撮像し、撮像した画像データをＣＰＵ３１に出力する。例えば、ＣＰＵ３１は、内側カメラ２３および外側カメラ２５のいずれか一方に対して撮像指示を行い、撮像指示を受けたカメラが画像を撮像して画像データをＣＰＵ３１に送る。
【００５８】
また、下側ＬＣＤ１２および上側ＬＣＤ２２は、それぞれＣＰＵ３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、それぞれＣＰＵ３１の指示に従って画像を表示する。一例として、ＣＰＵ３１は、本発明のゲームプログラムを実行することによって生成された画像（例えば、ゲーム画像）を下側ＬＣＤ１２および／または上側ＬＣＤ２２に表示させる。他の例として、ＣＰＵ３１は、内側カメラ２３および外側カメラ２５のいずれかから取得した画像を、下側ＬＣＤ１２および上側ＬＣＤ２２の一方に表示させ、所定の処理によって生成した操作説明画面を下側ＬＣＤ１２および上側ＬＣＤ２２の他方に表示させる。
【００５９】
次に、図３Ａ〜図４を参照して、上記ゲーム装置１がゲームプログラムを実行することによって、下側ＬＣＤ１２、及び上側ＬＣＤ２２にそれぞれ表示されるゲーム画面の概要について説明する。まず、図３Ａ〜図３Ｂを参照して、上側ＬＣＤ２２に表示されるゲーム画像について説明する。
【００６０】
本実施形態において実行されるゲームでは、仮想空間に配置されたプレイヤキャラクタＰｃがユーザによる操作に応じた動作をする。そして、上記ゲーム装置１の上側ＬＣＤ２２には、仮想空間に配置され、ユーザによる操作に応じた動作をするプレイヤキャラクタＰｃが表示される。
【００６１】
例えば、本実施形態において実行されるゲームでは、方向入力ボタン１４Ａには、ユーザによって操作された方向に応じてプレイヤキャラクタＰｃに地上を移動させる機能がゲームプログラムによって割り当てられている。そして、方向入力ボタン１４Ａがユーザによって操作されたときには、操作されたボタンの方向に応じてプレイヤキャラクタＰｃが地上を移動する。
【００６２】
図３Ａは、上側ＬＣＤ２２に表示されるゲーム画像の一例を示す図である。例えば、ユーザが、方向入力ボタン１４Ａの中でプレイヤキャラクタＰｃを前方に移動させるボタン（典型的には上方向の操作ボタン）を操作したときには、図３Ａに一例として示すように、プレイヤキャラクタＰｃが前方（図３Ａに示す一例では、仮想空間において奥に向かう方向）に向かって移動する様子を示すゲーム画像が表示される。
【００６３】
また、操作ボタン１４Ｂ〜１４Ｈのそれぞれには、プレイヤキャラクタＰｃにジャンプをさせる、及びプレイヤキャラクタＰｃをダッシュさせるなどの機能がゲームプログラムによって割り当てられている。そして、例えば、操作ボタン１４Ｂ〜１４Ｈの中でプレイヤキャラクタＰｃにジャンプをさせる機能をゲームプログラムによって割り当てられている操作ボタンが操作されたときには、プレイヤキャラクタＰｃがジャンプする。図３Ｂは、ジャンプするプレイヤキャラクタＰｃを示すゲーム画像を表示している上側ＬＣＤ２２の一例を示す図である。
【００６４】
次に、図４を参照して、下側ＬＣＤ１２に表示されるゲーム画像について説明する。本実施形態において実行されるゲームでは、下側ＬＣＤ１２には、図４に一例として示すように、仮想空間においてプレイヤキャラクタＰｃが存在する位置の周辺の地図を示す画像、及び当該地図におけるプレイヤキャラクタの現在位置がゲーム画像として表示される。本実施形態では、地図におけるプレイヤキャラクタＰｃの現在位置に、図４に一例として示すように、プレイヤキャラクタＰｃを模式的に示すシンボルＰｃｐを表示させる。
【００６５】
このように、上記ゲーム装置１の上側ＬＣＤ２２には、仮想空間に配置されたプレイヤキャラクタＰｃを表示させ、下側ＬＣＤ１２には、プレイヤキャラクタＰｃを示すシンボルＰｃｐを周辺の地図と併せて表示させる。これにより、ユーザは、上側ＬＣＤ２２に表示されるゲーム画像を見てプレイヤキャラクタＰｃを操作しながら、必要に応じて、下側ＬＣＤ１２に表示されるプレイヤキャラクタＰｃの現在位置を確認することができる。
【００６６】
さらに、本実施形態では、ユーザがタッチパネル１３に対して前述のタッチ操作をすることにより、上側ＬＣＤ２２にゲーム画像を表示させるために仮想空間内に仮想的に配置するカメラ（以下、仮想カメラＣａと称す）の位置を制御することができる。以下、図５Ａ〜図１２を参照しながら、本実施形態において、ユーザのタッチ操作に応じて仮想カメラＣａの位置を制御するカメラ位置制御処理について説明する。
【００６７】
本実施形態において実行されるゲームでは、前述の仮想カメラＣａを仮想空間に配置し、仮想カメラＣａで仮想空間内を撮像したときのゲーム画像を計算して生成し、上側ＬＣＤ２２に表示させる。
【００６８】
図５Ａは、本実施形態においてゲームを実行している中で、ある時点における仮想カメラＣａとプレイヤキャラクタＰｃとの位置関係を、プレイヤキャラクタＰｃの真上から鉛直方向に見下ろしたときの平面図である。また、図５Ｂは、図５Ａに示す仮想カメラＣａとプレイヤキャラクタＰｃとの位置関係を、プレイヤキャラクタＰｃの右側から図５Ａに示すＺ軸方向に沿って見たときの右側面図である。
【００６９】
本実施形態における仮想カメラＣａは常に注視点Ｇｐを向くものとする。本実施形態では注視点Ｇｐの位置はプレイヤキャラクタＰｃの頭の頂点から図５Ｂに示すＹ軸の正方向に所定の距離だけ離れた位置に固定されるものとする。そして、本実施形態では、ユーザがタッチパネル１３に対してタッチ操作をすることによって、この仮想カメラＣａの位置を制御する。
【００７０】
図６は、本実施形態において予め定められるタッチパネル１３上の領域の一例を示す図である。図６に示すように、本実施形態では、タッチパネル１３上の領域が、自由方向入力領域Ｎａ、横方向入力領域Ｘａ、及び縦方向入力領域Ｙａの３つの領域に分割される。本実施形態では、図６に示すタッチパネル１３のＹ軸の正方向の端部（典型的には、ゲーム装置１を用いてゲームをプレイしているユーザ側の端部）から、Ｙ軸の負方向に向かって予め定められた幅ＸａＹの領域を横方向入力領域Ｘａとする。また、本実施形態では、図６に示すタッチパネル１３のＸ軸の正方向の端部（典型的には、ゲーム装置１を用いてゲームをプレイしているユーザの右側の端部）から、Ｘ軸の負方向に向かって予め定められた幅ＹａＸの領域を縦方向入力領域Ｙａとする。そして、本実施形態では、タッチパネル１３における横方向入力領域Ｘａ、及び縦方向入力領域Ｙａ以外の領域を自由方向入力領域Ｎａとする。なお、本実施形態では、図４に示すように、下側ＬＣＤ１２にこれらの入力領域の境界線は表示されないが、ユーザがこれらの入力領域を識別できるように境界線等を表示するようにしても構わない。
【００７１】
尚、本実施形態では、横方向入力領域Ｘａ、及び縦方向入力領域Ｙａの境界は、図６に一例として示すように、位置Ｃ１から位置Ｃ２までを結ぶ直線とする。
【００７２】
まず、始めに、ユーザがタッチパネル１３上の自由方向入力領域Ｎａにタッチ操作をして仮想カメラＣａの位置を制御する場合について説明する。尚、図６では、説明の便宜のため、タッチパネル１３を透過する下側ＬＣＤ１２に表示されるゲーム画面の図示を省略している。
【００７３】
図７Ａは、ユーザが、タッチパネル１３上の自由方向入力領域Ｎａにおける任意の位置Ｋ１から図７Ａに示すタッチパネル１３におけるＸ軸に沿ってタッチペン２７をタッチパネル１３に接触させながら移動させるタッチ操作（スライド操作）をしたときのタッチ位置の変化の軌跡の一例を示す図である。また、図７Ｂは、ユーザが図７Ａに示すようにタッチペン２７を移動させたときに移動する仮想カメラＣａの軌跡の一例を示す図である。
【００７４】
本実施形態では、図７Ａに示すようにユーザが自由方向入力領域Ｎａの任意の位置Ｋ１からタッチパネル１３におけるＸ軸の正方向ＸＰにタッチ位置を変化させると、図７Ｂに示すように、注視点Ｇｐを通る鉛直線（すなわち、注視点Ｇｐを通り、かつ仮想空間におけるＹ軸に平行な直線）周りに、現在位置Ｋｄ１からタッチパネル１３におけるＸ軸の正方向ＸＰに対応する反時計回り方向ＸｄＰに、タッチ位置の変化量に応じた回転角度だけ回転した位置に仮想カメラＣａを移動させる。一方、本実施形態では、図７Ａに示すようにユーザが自由方向入力領域Ｎａの任意の位置Ｋ１からタッチパネル１３におけるＸ軸の負方向ＸＮにタッチ位置を変化させると、図７Ｂに示すように、注視点Ｇｐを通る鉛直線（すなわち注視点Ｇｐを通り、かつ仮想空間におけるＹ軸に平行な直線）周りに、現在位置Ｋｄ１からタッチパネル１３におけるＸ軸の負方向ＸＮに対応する時計回り方向ＸｄＮに、タッチ位置の変化量に応じた回転角度だけ回転した位置に仮想カメラＣａを移動させる。
【００７５】
尚、図７Ｂに示すように仮想カメラＣａを水平面に沿って移動させるときは、上述したように注視点Ｇｐを常に向くようにその向きも制御する。
【００７６】
以下では、図７Ｂに一例として示すように仮想カメラＣａを水平面に沿って移動させるときの位置、及び向きの計算を、仮想カメラＣａの「水平移動位置計算」と称する。
【００７７】
図８Ａは、ユーザが、タッチパネル１３上の自由方向入力領域Ｎａにおける任意の位置Ｋ２から図８Ａに示すタッチパネル１３におけるＹ軸に沿ってタッチペン２７をタッチパネル１３に接触させながら移動させるタッチ操作（スライド操作）をしたときのタッチ位置の変化の軌跡の一例を示す図である。また、図８Ｂは、ユーザが図８Ａに示すようにタッチペン２７を移動させたときに移動する仮想カメラＣａの軌跡の一例を示す図である。
【００７８】
本実施形態では、図８Ａに示すようにユーザが自由方向入力領域Ｎａの任意の位置Ｋ２からタッチパネル１３におけるＹ軸の負方向ＹＮにタッチ位置を変化させると、図８Ｂに示すように、現在位置Ｋｄ２と注視点Ｇｐを含む鉛直面に沿って、注視点Ｇｐを中心として、現在位置Ｋｄ２からタッチパネル１３におけるＹ軸の負方向ＹＮに対応する時計回り方向ＹｄＮに、タッチ位置の変化量に応じた回転角度だけ回転した位置に仮想カメラＣａを移動させる。一方、本実施形態では、図８Ａに示すようにユーザが自由方向入力領域Ｎａの任意の位置Ｋ２からタッチパネル１３におけるＹ軸の正方向ＹＰにタッチ位置を変化させると、図８Ｂに示すように、現在位置Ｋｄ２と注視点Ｇｐを含む鉛直面に沿って、注視点Ｇｐを中心として、現在位置Ｋｄ２からタッチパネル１３におけるＹ軸の正方向ＹＰに対応する反時計回り方向ＹｄＰに、タッチ位置の変化量に応じた回転角度だけ回転した位置に仮想カメラＣａを移動させる。
【００７９】
尚、図８Ｂに示すように仮想カメラＣａを鉛直面に沿って移動させるときは、上述したように注視点Ｇｐを常に向くようにその向きも制御する。
【００８０】
以下では、図８Ｂに一例として示すように仮想カメラＣａを鉛直面に沿って移動させるときの位置、及び向きの計算を、仮想カメラＣａの「垂直移動位置計算」と称する。
【００８１】
また、本実施形態では、例えば、ユーザが、タッチパネル１３におけるＸ軸に沿った方向、及びタッチパネル１３におけるＹ軸に沿った方向以外の任意の方向にタッチ位置を変化させる場合がある。図９は、ユーザが自由方向入力領域Ｎａの任意の位置Ｋ３から任意の方向ＸＹにタッチ位置を変化させたときの軌跡の一例を示す図である。
【００８２】
本実施形態では、ユーザが、図９に一例として示すように、タッチパネル１３におけるＸ軸に沿った方向、及びタッチパネル１３におけるＹ軸に沿った方向以外の任意の方向ＸＹに沿って任意の位置Ｋ３からタッチ位置を変化させた場合には、そのときのタッチパネル１３におけるＸ軸に沿ったタッチ位置の変化量と、Ｙ軸に沿ったタッチ位置の変化量とに応じて仮想カメラＣａの位置を制御する。具体的には、任意の位置Ｋ３から任意の方向ＸＹに沿ってタッチ位置を変化させたときのＸ軸に沿ったタッチ位置の変化量に応じて、前述の仮想カメラＣａの水平移動位置計算をする。そして、次に、任意の位置Ｋ３から任意の方向ＸＹに沿ってタッチ位置を変化させたときのＹ軸に沿ったタッチ位置の変化量に応じて、水平移動位置計算をして求めた位置、及び向きから、前述の垂直移動位置計算をして求めた位置、及び向きに仮想カメラＣａを制御する。
【００８３】
以上より、本実施形態では、ユーザが自由方向入力領域Ｎａの任意の位置からタッチ位置を任意の方向に変化させることにより、仮想カメラＣａの位置を任意の位置に制御して、上側ＬＣＤ２２に表示されるゲーム画像を生成するときの視点を所望の位置に移動させることができる。
【００８４】
ところで、図７Ａ〜図８Ｂをそれぞれ参照しながら説明したように、タッチパネル１３におけるＸ軸方向、或いはＹ軸方向に厳密に一致した方向にタッチ位置を変化させた場合には、仮想空間における水平面、或いは鉛直面に厳密に沿って仮想カメラＣａを移動させることができる。しかし、例えば、ユーザが、タッチパネル１３におけるＸ軸方向と厳密に一致する方向にタッチ位置を変化させたつもりでも、人の手で厳密にそのようにタッチ位置を変化させることは困難であり、実際には図１０に一例として示すように、その軌跡Ｋｓａは、タッチパネル１３におけるＸ軸に沿った方向ＸＰ１と厳密には一致しない。これは、タッチパネル１３におけるＹ軸方向についても同様である。したがって、仮想空間における水平面、或いは鉛直面に厳密に沿って回転させた位置に仮想カメラＣａを移動させたいユーザに対して、上述で説明した仮想カメラＣａの位置の操作方法だけでは、必ずしも快適な操作方法を提供できない。
【００８５】
そこで、本実施形態では、仮想空間における水平面、或いは鉛直面に厳密に沿って仮想カメラＣａの位置を操作できるように、タッチパネル１３上に、横方向入力領域Ｘａ、及び縦方向入力領域Ｙａをそれぞれ上述したように設けている。以下、本実施形態において、ユーザが、横方向入力領域Ｘａ、及び縦方向入力領域Ｙａでそれぞれタッチペン２７を移動させた場合について説明する。
【００８６】
まず、ユーザが横方向入力領域Ｘａでタッチ位置を変化させた場合について説明する。図１１は、ユーザが、タッチパネル１３上の横方向入力領域Ｘａにおける任意の位置Ｋ５からタッチパネル１３におけるＸ軸の正方向ＸＰ１にタッチ位置を変化させたときの軌跡ＫｓＸの一例を示す図である。本実施形態では、ユーザが、横方向入力領域Ｘａ内からタッチ位置を変化させたとき（すなわち、横方向入力領域Ｘａ内の任意の点を起点としてスライド操作を行ったとき）には、タッチパネル１３におけるＹ軸方向の変化量を無視する。したがって、ユーザが、タッチパネル１３上の横方向入力領域Ｘａ内からタッチ位置を変化させたときには、図１１に一例として示すように、実際の軌跡ＫｓＸがＹ軸方向にぶれていたとしても、タッチパネル１３におけるＸ軸方向に厳密に沿った軌跡ＸＰ１が入力されたとみなす。これにより、ユーザが、タッチパネル１３上の横方向入力領域Ｘａ内からタッチ位置を変化させたときには、図７Ａ、及び図７Ｂを参照しながら上述で説明したように、仮想空間における水平面に厳密に沿って仮想カメラＣａを移動させることができる。
【００８７】
次に、ユーザが縦方向入力領域Ｙａでタッチ位置を変化させた場合について説明する。図１２は、ユーザが、タッチパネル１３上の縦方向入力領域Ｙａにおける任意の位置Ｋ６からタッチパネル１３におけるＹ軸の正方向ＹＰ１にタッチ位置を変化させたときの軌跡ＫｓＹの一例を示す図である。本実施形態では、ユーザが、縦方向入力領域Ｙａ内からタッチ位置を変化させたとき（すなわち、縦方向入力領域Ｙａ内の任意の点を起点としてスライド操作を行ったとき）には、タッチパネル１３におけるＸ軸方向の変化量を無視する。したがって、ユーザが、タッチパネル１３上の縦方向入力領域Ｙａ内からタッチ位置を変化させたときには、図１２に一例として示すように、実際の軌跡ＫｓＹがＸ軸方向にぶれていたとしても、タッチパネル１３におけるＹ軸方向に厳密に沿った軌跡ＹＰ１が入力されたとみなす。これにより、ユーザが、タッチパネル１３上の縦方向入力領域Ｙａ内からタッチ位置を変化させたときには、図８Ａ、及び図８Ｂを参照しながら上述で説明したように、仮想空間における鉛直面に厳密に沿って仮想カメラＣａを移動させることができる。
【００８８】
以上が、本実施形態におけるカメラ位置制御処理の説明である。本実施形態では、自由方向入力領域Ｎａの他に横方向入力領域Ｘａ、及び縦方向入力領域Ｙａをそれぞれ設けることにより、仮想空間における水平面、或いは鉛直面に厳密に沿って仮想カメラＣａを移動させたいユーザに対して快適な操作方法を提供できる。
【００８９】
次に、本実施形態におけるゲーム装置１のＣＰＵ３１の処理の流れについて説明する。
【００９０】
本実施形態では、ＣＰＵ３１が操作ボタン１４Ａ〜１４Ｈの状態の検知、及びタッチ位置データの取得を６０分の１秒毎にする。操作ボタン１４Ａ〜１４Ｈの状態を検知すると、ＣＰＵ３１は、検知した操作ボタン１４Ａ〜１４Ｈの状態に応じてプレイヤキャラクタＰｃの動作を制御し、上側ＬＣＤ２２に表示するプレイヤキャラクタＰｃなどのオブジェクトの仮想空間における位置、及び姿勢などを計算する。仮想空間におけるオブジェクトの位置、及び姿勢などを計算すると、ＣＰＵ３１は、取得したタッチ位置データに基づいて上述したように仮想カメラＣａの位置、及び向きを計算する。そして、ＣＰＵ３１は、位置、及び向きを計算した仮想カメラＣａから、位置、及び姿勢などを計算したプレイヤキャラクタＰｃなどのオブジェクトが存在する仮想空間を撮像したときの画像を、上側ＬＣＤ２２のゲーム画面に表示するゲーム画像として生成する。
【００９１】
上側ＬＣＤ２２に表示するゲーム画像を計算すると共に、ＣＰＵ３１は、プレイヤキャラクタＰｃの仮想空間における位置に基づいて、下側ＬＣＤ１２に地図と共に表示するシンボルＰｃｐの表示位置を計算する。そして、ＣＰＵ３１は、表示位置を計算したシンボルＰｃｐを地図に重畳させた画像を、下側ＬＣＤ１２のゲーム画面に表示するゲーム画像として生成する。
【００９２】
ＣＰＵ３１は、上側ＬＣＤ２２、及び下側ＬＣＤ１２にそれぞれ表示するゲーム画像を計算すると、上側ＬＣＤ２２、及び下側ＬＣＤ１２に、計算したゲーム画像をそれぞれ表示させる。
【００９３】
図１３は、本発明のゲームプログラムの実行時に、メインメモリ３２に格納される各種データの一例を示す図である。メインメモリ３２には、メモリカード２９から読み出されたゲームプログラム６１、最新タッチ位置データ６２、前回タッチ位置データ６３、タッチ開始領域データ６４、カメラ位置データ６５、及びカメラ向きデータ６６等が格納される。
【００９４】
最新タッチ位置データ６２は、ＣＰＵ３１がＩ／Ｆ回路４２を通じて取得した最新のタッチ位置データ（２次元座標データ）である。
【００９５】
前回タッチ位置データ６３は、最新のタッチ位置を示すタッチ位置データの直前に取得したタッチ位置データである。
【００９６】
タッチ開始領域データ６４は、タッチ位置の変化の開始点（すなわち、スライド操作において最初にタッチされた点）が、自由方向入力領域Ｎａ、横方向入力領域Ｘａ、及び縦方向入力領域Ｙａのいずれの領域に属するかを示すデータである。
【００９７】
カメラ位置データ６５は、仮想カメラＣａの仮想空間における位置を示す３次元座標データである。
【００９８】
カメラ向きデータ６６は、仮想カメラＣａの仮想空間における向きを、Ｘ軸周りの角度（ロール角）、Ｙ軸周りの角度（ヨー角）、及びＺ軸周りの角度（ピッチ角）で示すデータである。
【００９９】
以下、図１４〜図１５のフローチャートを参照して、ゲームプログラム６１に基づくＣＰＵ３１の処理の流れを説明する。
【０１００】
ゲームプログラム６１の実行が開始されると、図１４のステップＳ１０において、ＣＰＵ３１は初期化処理を行う。初期化処理には、ゲーム処理に利用される各種変数に初期値を入力したり、プレイヤキャラクタＰｃなどのオブジェクト、及び仮想カメラＣａなどを仮想空間における初期位置に配置する処理が含まれる。
【０１０１】
ステップＳ１１において、ＣＰＵ３１は、操作ボタン１４Ａ〜１４Ｈの状態をそれぞれ検知する。
【０１０２】
ステップＳ１２において、ＣＰＵ３１は、ステップＳ１１で検知した操作ボタン１４Ａ〜１４Ｈの状態に基づいて、プレイヤキャラクタＰｃの動作などを制御し、仮想空間におけるプレイヤキャラクタＰｃなどのオブジェクトの位置、及び姿勢などを計算する。
【０１０３】
ステップＳ１３において、ＣＰＵ３１は、タッチパネル１３上におけるタッチ位置に基づいて、上述したカメラ位置制御処理を行う。本実施形態のカメラ位置制御処理の処理の流れの詳細については後述する。
【０１０４】
ステップＳ１４において、ＣＰＵ３１は、ステップＳ１２で計算したオブジェクトの仮想空間における位置、及び姿勢、ステップＳ１３のカメラ位置制御処理において計算した仮想空間における仮想カメラＣａの位置、及び向きに基づいて、上側ＬＣＤ２２に表示するゲーム画像を生成する。また、ＣＰＵ３１は、ステップＳ１２で計算したプレイヤキャラクタＰｃの仮想空間における位置に基づいて、下側ＬＣＤ１２に地図と共に表示するプレイヤキャラクタＰｃのシンボルＰｃｐの表示位置を計算し、表示位置を計算したシンボルＰｃｐを地図に重畳させたゲーム画像を生成する。
【０１０５】
ステップＳ１５において、ＣＰＵ３１は、ステップＳ１４で生成したゲーム画像をそれぞれ上側ＬＣＤ２２、及び下側ＬＣＤ１２に表示させる。
【０１０６】
ステップＳ１６において、ＣＰＵ３１は、ゲームが終了したかどうかを判断し、ゲームが終了した場合にはゲームプログラム６１の実行を終了し、ゲームが続行している場合には、処理はステップＳ１１に戻る。
【０１０７】
こうして、下側ＬＣＤ１２には、仮想空間におけるプレイヤキャラクタＰｃの現在位置を示す地図が表示され、上側ＬＣＤ２２には、仮想空間におけるプレイヤキャラクタＰｃの様子が表示される。
【０１０８】
尚、ステップＳ１１〜ステップＳ１６の処理は、上述したように６０分の１秒毎に繰り返し実行される。したがって、本実施形態では、下側ＬＣＤ１２、及び上側ＬＣＤ２２の画面の更新周期は６０分の１秒となる。
【０１０９】
次に、図１５を参照して、図１４のステップＳ１３のカメラ位置制御処理の詳細を説明する。
【０１１０】
ステップＳ２１において、ＣＰＵ３１は、Ｉ／Ｆ回路４２を通じてタッチ位置データを取得する。
【０１１１】
ステップＳ２２において、ＣＰＵ３１は、最新タッチ位置データ６２および前回タッチ位置データ６３を更新するタッチ位置データ更新処理をする。なお、ステップＳ２１で取得された最新のタッチ位置データがＮｕｌｌ値である場合（すなわち、タッチパネル１３の入力面に対するタッチ操作が行われていない場合）には、最新タッチ位置データ６２にはＮｕｌｌ値が格納される。
【０１１２】
ステップＳ２３において、ＣＰＵ３１は、タッチパネル１３の入力面に対するタッチ操作があったか否かを判断する。具体的には、最新タッチ位置データ６２がＮｕｌｌ値であるか否かを判断する。ＣＰＵ３１は、ステップＳ２３において、最新タッチ位置データ６２がＮｕｌｌ値であると判断したときには、タッチ操作がないと判断して、ステップＳ１４へ処理を進める。一方、ＣＰＵ３１は、ステップＳ２３において、最新タッチ位置データ６２がＮｕｌｌ値でないと判断したときには、タッチ操作があると判断して、ステップＳ２４へ処理を進める。
【０１１３】
ステップＳ２４において、ＣＰＵ３１は、最新タッチ位置データ６２によって示されるタッチ位置が、スライド操作の起点を示すタッチ位置であるか否かを判断する。具体的には、最新タッチ位置データ６２がＮｕｌｌ値でなく、且つ前回タッチ位置データ６３がＮｕｌｌ値である場合には、ＣＰＵ３１は、最新タッチ位置データ６２によって示されるタッチ位置が、スライド操作の起点を示すタッチ位置であると判断できる。一方、最新タッチ位置データ６２、及び前回タッチ位置データ６３が共にＮｕｌｌ値でない場合には、ＣＰＵ３１は、スライド操作が継続していると判断できる。ＣＰＵ３１は、ステップＳ２４において、最新タッチ位置データ６２によって示されるタッチ位置が、スライド操作の起点であると判断したときには、ステップＳ２５へ処理を進める。一方、ＣＰＵ３１は、ステップＳ２４において、最新タッチ位置データ６２によって示されるタッチ位置が、スライド操作の起点でないと判断したときには、ステップＳ２７へ処理を進める。
【０１１４】
ステップＳ２５において、ＣＰＵ３１は、最新タッチ位置データ６２によって示されるタッチ位置が、前述の自由方向入力領域Ｎａ、横方向入力領域Ｘａ、及び縦方向入力領域Ｙａのいずれに属するかを判定する。なお、この判定は、各入力領域の位置や境界を示す領域情報を参照して行われる。この領域情報は、例えば、ゲームプログラム６１に含まれていても良い。
【０１１５】
ステップＳ２６において、ＣＰＵ３１は、ステップＳ２５の判定結果に応じてタッチ開始領域データ６４を更新して、Ｓ１３のカメラ位置制御処理は終了する。
【０１１６】
一方、ステップＳ２７において、ＣＰＵ３１は、タッチ開始領域データ６４を参照して、タッチ開始領域に応じて異なるステップへと処理を進める。具体的には、ＣＰＵ３１は、タッチ開始領域が自由方向入力領域Ｎａである場合には、ステップＳ２８へ処理を進める。また、ＣＰＵ３１は、タッチ開始領域が横方向入力領域Ｘａである場合には、ステップＳ３１へ処理を進める。また、ＣＰＵ３１は、タッチ開始領域が縦方向入力領域Ｙａである場合には、ステップＳ３３へ処理を進める。
【０１１７】
ステップＳ２８において、ＣＰＵ３１は、タッチパネル１３におけるＸ軸方向、及びＹ軸方向のタッチ位置の変化量をそれぞれ計算する。具体的には、ＣＰＵ３１は、最新タッチ位置データ６２のＸ座標値をＸｃとし、前回タッチ位置データ６３のＸ座標値をＸｐとすると、Ｘｃ−Ｘｐをその変化量ΔＸとして計算する。さらに、ＣＰＵ３１は、最新タッチ位置データ６２のＹ座標値をＹｃとし、前回タッチ位置データ６３のＹ座標値をＹｐとすると、Ｙｃ−Ｙｐをその変化量ΔＹとして計算する。尚、このようにして計算される変化量ΔＸの符号が負であれば、タッチ位置がタッチパネル１３におけるＸ軸の負方向に移動したことを示し、正であれば、タッチ位置が当該Ｘ軸の正方向に移動したことを示す。また、このようにして計算される変化量ΔＹの符号が負であれば、タッチ位置がタッチパネル１３におけるＹ軸の負方向に移動したことを示し、正であれば、タッチ位置が当該Ｙ軸の正方向に移動したことを示す。
【０１１８】
ステップＳ２９において、ＣＰＵ３１は、ステップＳ２８で計算した変化量ΔＸに応じて前述の水平移動位置計算を行い、仮想カメラＣａの位置、及び向きを更新する。
【０１１９】
ステップＳ３０において、ＣＰＵ３１は、ステップＳ２８で計算した変化量ΔＹに応じて前述の垂直移動位置計算を行い、仮想カメラＣａの位置、及び向きをさらに更新する。なお、ステップＳ２９とステップＳ３０の処理の順序は逆でも構わない。
【０１２０】
ステップＳ３１において、ＣＰＵ３１は、ステップＳ３０の計算結果に基づいてカメラ位置データ６５及びカメラ向きデータ６６を更新して、Ｓ１３のカメラ位置制御処理は終了する。
【０１２１】
また、ステップＳ３２において、ＣＰＵ３１は、タッチパネル１３におけるＸ軸方向のタッチ位置の変化量を計算する。具体的には、ＣＰＵ３１は、前述の変化量ΔＸを計算する。
【０１２２】
ステップＳ３３において、ＣＰＵ３１は、ステップＳ３２で計算した変化量ΔＸに応じて前述の水平移動位置計算を行い、仮想カメラＣａの位置、及び向きを更新する。
【０１２３】
ステップＳ３４において、ＣＰＵ３１は、ステップＳ３３の計算結果に基づいてカメラ位置データ６５及びカメラ向きデータ６６を更新して、Ｓ１３のカメラ位置制御処理は終了する。
【０１２４】
ステップＳ３５において、ＣＰＵ３１は、タッチパネル１３におけるＹ軸方向のタッチ位置の変化量を計算する。具体的には、ＣＰＵ３１は、前述の変化量ΔＹを計算する。
【０１２５】
ステップＳ３６において、ＣＰＵ３１は、ステップＳ３５で計算した変化量ΔＹに応じて前述の垂直移動位置計算を行い、仮想カメラＣａの位置、及び向きを更新する。
【０１２６】
ステップＳ３７において、ＣＰＵ３１は、ステップＳ３６の計算結果に基づいてカメラ位置データ６５及びカメラ向きデータ６６を更新して、Ｓ１３のカメラ位置制御処理は終了する。
【０１２７】
以上のように、本実施形態によれば、ユーザは、自由方向入力領域Ｎａにおいてスライド操作を行うことによって、仮想カメラＣａを任意の方向へ移動させることができる。さらに、仮想カメラＣａを仮想空間における水平面に沿って移動させたい場合には、自由方向入力領域Ｎａにおいてスライド操作を行う代わりに、横方向入力領域Ｘａにおいてスライド操作を行うことによって、容易に水平面に厳密に沿って移動させることができる。また、仮想カメラＣａを仮想空間における鉛直面に沿って移動させたい場合には、自由方向入力領域Ｎａにおいてスライド操作を行う代わりに、縦方向入力領域Ｙａにおいてスライド操作を行うことによって、容易に鉛直面に厳密に沿って移動させることができる。したがって、ユーザは、例えばタッチパネル１３上でＸ軸またはＹ軸に沿って真っ直ぐにスライド操作を行いたい場合であっても、タッチパネル１３を注視した精密な操作が不要となり、上側ＬＣＤ２２に表示されているゲーム画像を見ながらであっても所望の入力操作を行うことができる。
【０１２８】
すなわち、ユーザは、タッチパネル１３におけるタッチ位置のＸ座標値とＹ座標値の両方をゲーム処理に反映させたい場合には自由方向入力領域Ｎａを利用し、タッチパネル１３におけるタッチ位置のＸ座標値のみをゲーム処理に反映させたい場合には横方向入力領域Ｘａを利用し、タッチパネル１３におけるタッチ位置のＹ座標値のみをゲーム処理に反映させたい場合には縦方向入力領域Ｙを利用する、というように、用途に応じてこれらの入力領域を適宜に使い分けることができる。
【０１２９】
すなわち、自由方向入力領域Ｎａは、「Ｘ座標値とＹ座標値の両方を入力するための入力領域」もしくは「Ｘ座標値とＹ座標値の両方が有効な座標値として扱われる入力領域」と言い換えることができる。また、横方向入力領域Ｘａは、「Ｘ座標値のみを入力するための入力領域」もしくは「Ｘ座標値及びＹ座標値のうちのＸ座標値のみが有効な座標値として扱われてＹ座標値が無視される入力領域」と言い換えることができる。同様に、縦方向入力領域Ｙａは、「Ｙ座標値のみを入力するための入力領域」もしくは「Ｘ座標値及びＹ座標値のうちのＹ座標値のみが有効な座標値として扱われてＸ座標値が無視される入力領域」と言い換えることができる。また、自由方向入力領域Ｎａは、「任意の２次元座標を入力可能な入力領域」と言い換えることができ、また、横方向入力領域Ｘａおよび縦方向入力領域Ｙａは、「任意の２次元座標が入力されたときに所定方向の成分のみが有効に扱われる入力領域」と言い換えることができる。ここで言う「所定方向」とは、基準軸（Ｘ軸、Ｙ軸）の方向に限らず、任意の方向（例えばＺ軸との角度が４５度であるような方向）であってもよい。
【０１３０】
また、本実施形態では、ステップＳ２７の後に行うべき処理（ステップＳ２８、ステップＳ３２、ステップＳ３５）を、最新タッチ位置データではなくタッチ開始領域に基づいて判断しているので、例えば、横方向入力領域Ｘａ内の点を起点としたスライド操作の途中で、ユーザの意図に反してタッチ位置が自由方向入力領域Ｎａに進入してしまったとしても、ユーザの意図に反して仮想カメラＣａの垂直移動位置計算（ステップＳ３０）が行われてしまうことがない。
【０１３１】
（種々の変形例）
以下、上述した実施形態に対する種々の変形例について説明する。
【０１３２】
上述した実施形態では、タッチパネル１３のＹ軸の正方向の端部から、Ｙ軸の負方向に向かって定めた幅ＸａＹの領域を横方向入力領域Ｘａとし、タッチパネル１３のＸ軸の正方向の端部から、Ｘ軸の負方向に向かって定めた幅ＹａＸの領域を縦方向入力領域Ｙａとし、残りの領域を自由方向入力領域Ｎａとした。しかしながら、これらの入力領域の形および位置はこれに限らない。また、横方向入力領域Ｘａと縦方向入力領域Ｙａのうちのいずれか一方が存在しない形態であってもよい。図１６は、横方向入力領域Ｘａとして、タッチパネル１３のＹ軸の負方向の端部から、Ｙ軸の正方向に向かって定めた幅ＸａＹの領域を定め、縦方向入力領域Ｙａとして、タッチパネル１３のＸ軸の負方向の端部から、Ｘ軸の正方向に向かって定めた幅ＹａＸの領域を定めた一例を示す図である。他の例では、横方向入力領域Ｘａが、タッチパネル１３のＹ軸の正方向の端部とＹ軸の負方向の端部にそれぞれ設けられていても良い。同様に、縦方向入力領域Ｙａが、タッチパネル１３のＸ軸の正方向の端部とＸ軸の負方向の端部にそれぞれ設けられていても良い。図１７は、自由方向入力領域Ｎａ、横方向入力領域Ｘａ、及び縦方向入力領域Ｙａのさらに他の例である。
【０１３３】
なお、上述した実施形態では、横方向入力領域Ｘａ内の任意の点を起点として、タッチ位置を画面右方向に移動させた場合にも、画面左方向に移動させた場合にも、Ｘ座標値の変化量に応じて、仮想カメラＣａの水平移動位置計算が行われるが、他の実施形態では、図１８に示すように、タッチ位置をＸ軸の正方向に移動させた場合にのみ仮想カメラＣａの水平移動位置計算が行われるような右方向入力領域ＸａＰと、タッチ位置をＸ軸の負方向に移動させた場合にのみ仮想カメラＣａの水平移動位置計算が行われるような左方向入力領域ＸａＮを設けてもよい。同様に、タッチ位置をＹ軸の正方向に移動させた場合にのみ仮想カメラＣａの垂直移動位置計算が行われるような下方向入力領域ＹａＰと、タッチ位置をＹ軸の負方向に移動させた場合にのみ仮想カメラＣａの垂直移動位置計算が行われるような上方向入力領域ＹａＮを設けてもよい。
【０１３４】
また、上述した実施形態では、タッチパネル１３のＸ軸の正方向の端部から、Ｘ軸の負方向に向かって定めた幅ＹａＸの領域、すなわち、タッチパネル１３の右側の領域を縦方向入力領域Ｙａとして固定的に定めていた。しかしながら、他の一実施形態では、これらの入力領域の位置や形を、ユーザが適宜に変更できるようにしてもよい。例えば、ユーザの利き腕を考慮して縦方向入力領域Ｙａを定めてもよい。より具体的には、上述したゲームプログラムに対して、ユーザの利き腕を設定する処理と設定された利き腕に応じて縦方向入力領域Ｙａを設定する処理とを追加してもよい。ユーザの利き腕に応じて縦方向入力領域Ｙａを設定するときには、例えば、ユーザが左利きである場合には、タッチパネル１３のＸ軸の負方向の端部から、Ｘ軸の正方向に向かって定めた幅ＹａＸの領域、すなわち、タッチパネル１３の左側の領域を縦方向入力領域Ｙａとして設定するとよい。
【０１３５】
また、上述した実施形態では、ステップＳ２７の後に行うべき処理（ステップＳ２８、ステップＳ３２、ステップＳ３５）を、タッチ開始領域に基づいて判断しているが、他の実施形態では、ステップＳ２７の後に行うべき処理（ステップＳ２８、ステップＳ３２、ステップＳ３５）を、最新タッチ位置データに基づいて判断するようにしてもよい。
【０１３６】
また、上述した実施形態では、タッチ開始領域を示すタッチ開始領域データ６４をメインメモリ３２に記憶しているが、タッチ開始領域を示すタッチ開始領域データ６４を記憶する代わりに、タッチ開始位置（すなわちスライド操作の起点）を示すタッチ位置データをメインメモリ３２に記憶するようにしてもよい。この場合、ステップＳ２７においてＣＰＵ３１は、このようにしてメインメモリ３２に記憶したタッチ位置データを参照して、タッチ開始位置がいずれの入力領域に属していたかを判定すればよい。
【０１３７】
なお、本実施形態では、図７Ａに示すようにユーザが自由方向入力領域ＮａでＸ軸の負方向ＸＮにタッチ位置を変化させると、図７Ｂに示すように、時計回り方向ＸｄＮに仮想カメラＣａを移動させているが、他の実施例では、ユーザが自由方向入力領域ＮａでＸ軸の負方向ＸＮにタッチ位置を変化させると、反時計回り方向ＸｄＰに仮想カメラＣａを移動させるようにしてもよい。また、本実施形態では、図７Ｂに示すように、仮想カメラＣａが注視点Ｇｐを中心として回転移動するが、他の実施例では、仮想カメラＣａが直線的に移動（例えば、仮想空間におけるＺ軸に対して平行移動）するようにしてもよい。
【０１３８】
なお、本実施形態では、図８Ａに示すようにユーザが自由方向入力領域ＮａでＹ軸の正方向ＹＰにタッチ位置を変化させると、図８Ｂに示すように、反時計回り方向ＹｄＰに仮想カメラＣａを移動させているが、他の実施例では、ユーザが自由方向入力領域ＮａでＹ軸の正方向ＹＰにタッチ位置を変化させると、時計回り方向ＹｄＮに仮想カメラＣａを移動させるようにしてもよい。また、本実施形態では、図８Ｂに示すように、仮想カメラＣａが注視点Ｇｐを中心として回転移動するが、他の実施例では、仮想カメラＣａが直線的に移動（例えば、仮想空間におけるＹ軸に対して平行移動）するようにしてもよい。
【０１３９】
また、上述した実施形態では、タッチパネル１３におけるタッチ位置に応じて仮想カメラＣａを移動させるものとした。しかしながら、タッチ位置に基づく制御対象は、仮想カメラＣａに限らない。例えば、他の一実施形態では、仮想カメラＣａではなく、仮想空間における任意のオブジェクトをタッチパネル１３におけるタッチ位置に応じて移動させてもよい。
【０１４０】
また、上述した実施形態では、タッチパネル１３上におけるタッチ位置の変化量（ΔＸ、ΔＹ）に基づいて所定の情報処理（仮想カメラＣａの移動処理）を行っているが、他の実施例では、タッチパネル１３上におけるタッチ位置の変化方向（すなわち、ΔＹ／ΔＸ）を用いて所定の情報処理を行ってもよい。例えば、ユーザが自由方向入力領域Ｎａで任意の方向（例えば図９のＸＹ）に沿ってタッチ位置を変化させた場合には、当該方向（ＸＹ）に基づいて情報処理を行い、ユーザが横方向入力領域Ｘａで任意の方向（例えば図１１のＫｓＸ）に沿ってタッチ位置を変化させた場合には、当該方向（ＫｓＸ）をタッチパネル１３上におけるＸ軸に沿った方向へ補正した方向（図１１のＸＰ１）に基づいて情報処理を行い、ユーザが縦方向入力領域Ｙａで任意の方向（図１２のＫｓＹ）に沿ってタッチ位置を変化させた場合には、当該方向（ＫｓＹ）をタッチパネル１３上におけるＹ軸に沿った方向へ補正した方向（図１２のＹＰ１）に基づいて情報処理を行ってもよい。
【０１４１】
また、上述した実施形態では、タッチパネル１３上におけるタッチ位置の変化量（すなわち、現在のタッチ位置とその直前に検出されたタッチ位置との差）に基づいて所定の情報処理（仮想カメラＣａの移動処理）を行っているが、他の実施例では、タッチパネル１３上における所定位置（例えば、最初のタッチ位置、原点、所定の固定位置、前回処理時のタッチ位置、等）と現在のタッチ位置との差に基づいて所定の情報処理を行ってもよい。さらには、タッチパネル１３上における所定位置（例えば、最初のタッチ位置、原点、所定の固定位置、前回処理時のタッチ位置、等）から見た現在のタッチ位置の方向に基づいて所定の情報処理を行ってもよい。
【０１４２】
また、上述した実施形態では、タッチパネル１３上におけるタッチ位置の変化量（ΔＸ、ΔＹ）に基づいて仮想カメラＣａを制御する例を説明したが、他の実施形態では、タッチパネル１３上におけるタッチ位置と所定の基準位置（原点もしくは他の任意の位置）との差に基づいて仮想カメラＣａを制御してもよい。例えば、現在のタッチ位置を（Ｔｘ，Ｔｙ）とし、基準位置を（Ｒｘ，Ｒｙ）としたとき、現在のタッチ位置が自由方向入力領域Ｎａに位置する場合には、ＴｘとＲｘの差に応じた速度で仮想カメラＣａを仮想空間における水平面に沿って移動させる処理と、ＴｙとＲｙの差に応じた速度で仮想カメラＣａを仮想空間における鉛直面に沿って移動させる処理の両方を行い、現在のタッチ位置が横方向入力領域Ｘａに位置する場合には前者の処理のみを行い、現在のタッチ位置が縦方向入力領域Ｙａに位置する場合には後者の処理のみを行うようにしてもよい。
【０１４３】
また、上述した実施形態では、仮想カメラＣａに基づいて生成されたゲーム画像を上側ＬＣＤ２２に表示しているが、他の実施形態では、仮想カメラＣａに基づいて生成されたゲーム画像を下側ＬＣＤ１２に表示するようにしてもよい。
【０１４４】
また、上述した実施形態では、タッチパネル１３に対するユーザのタッチ位置を示すタッチ位置データ（２次元座標データ）に基づいて仮想カメラＣａを制御しているが、本発明は、タッチパネル１３に限らず、ユーザによって指示された画面上もしくは入力面上の位置（指示位置）を２次元座標値として検出可能な任意のポインティングデバイスを利用する場合にも適用できる。このようなポインティングデバイスの例として、マウス、タッチパッド、トラックボール等が挙げられる。例えば、マウスを利用する場合には、ユーザがマウス上のボタンを押下しているときの画面上のポインタの位置が、前述のタッチ位置に相当し、ユーザがマウス上のボタンを押下したままポインタを移動させる操作が、前述のスライド操作に相当し、ユーザがマウス上のボタンの押下を開始した時点のポインタの位置が、スライド操作の起点に相当する。
【０１４５】
また、本発明は、ユーザによって指示された３次元空間（現実空間または仮想空間）内の任意の点を３次元座標値として検出可能なポインティングデバイスを利用する場合にも適用可能である。このような３次元空間における任意の位置を指示可能なポインティングデバイスとしては、例えば、加速度センサーのようなモーションセンサーを用いたものや、カメラを用いたモーションキャプチャー技術を用いたものや、磁気センサーを用いたものなど、公知の種々のポインティングデバイスを採用することができる。このような３次元空間における任意の位置を指示可能なポインティングデバイスを用いた変形例の一つについて、図１９Ａ〜図１９Ｄを参照して説明する。なお、この変形例では、ユーザが手に持ったコントローラの位置が、３次元の指示位置として入力されるものとする。なお、コントローラ上に設けられた所定のボタンが押されている間のみ、当該コントローラの位置が３次元の指示位置として入力されるものであってもよい。
【０１４６】
ユーザが図１９Ａに斜線で示した３次元領域Ｎｖ内で（もしくは、この３次元領域Ｎｖ内の任意の位置を起点として）指示位置を変化させると、その変化量（ΔＸ、ΔＹ、ΔＺ）に基づいて所定の情報処理（例えば、ΔＸに基づく第１の情報処理と、ΔＹに基づく第２の情報処理と、ΔＺに基づく第３の情報処理）が行われる。
【０１４７】
ユーザが図１９Ｂに斜線で示した３次元領域Ｚｖｒ内で（もしくは、この３次元領域Ｚｖｒ内の任意の位置を起点として）指示位置を変化させると、その変化量（ΔＸ、ΔＹ、ΔＺ）のうちのΔＺのみに基づいて所定の情報処理（例えば、ΔＺに基づく第３の情報処理）が行われる。なお、他の変形例として、ユーザが図１９Ｂに斜線で示した３次元領域Ｚｖｒ内で（もしくは、この３次元領域Ｚｖｒ内の任意の位置を起点として）指示位置を変化させると、その変化量（ΔＸ、ΔＹ、ΔＺ）のうちのΔＹとΔＺのみに基づいて所定の情報処理（例えば、ΔＹに基づく第２の情報処理と、ΔＺに基づく第３の情報処理）が行われてもよい。
【０１４８】
ユーザが図１９Ｃに斜線で示した３次元領域Ｘｖ内で（もしくは、この３次元領域Ｘｖ内の任意の位置を起点として）指示位置を変化させると、その変化量（ΔＸ、ΔＹ、ΔＺ）のうちのΔＸのみに基づいて所定の情報処理（例えば、ΔＸに基づく第１の情報処理）が行われる。なお、他の変形例として、ユーザが図１９Ｃに斜線で示した３次元領域Ｘｖ内で（もしくは、この３次元領域Ｘｖ内の任意の位置を起点として）指示位置を変化させると、その変化量（ΔＸ、ΔＹ、ΔＺ）のうちのΔＸとΔＹのみに基づいて所定の情報処理（例えば、ΔＸに基づく第１の情報処理と、ΔＹに基づく第２の情報処理）が行われてもよい。
【０１４９】
ユーザが図１９Ｄに斜線で示した３次元領域Ｚｖｌ内で（もしくは、この３次元領域Ｚｖｌ内の任意の位置を起点として）指示位置を変化させると、その変化量（ΔＸ、ΔＹ、ΔＺ）のうちのΔＺのみに基づいて所定の情報処理（例えば、ΔＺに基づく第３の情報処理）が行われる。なお、他の変形例として、ユーザが図１９Ｄに斜線で示した３次元領域Ｚｖｌ内で（もしくは、この３次元領域Ｚｖｌ内の任意の位置を起点として）指示位置を変化させると、その変化量（ΔＸ、ΔＹ、ΔＺ）のうちのΔＹとΔＺのみに基づいて所定の情報処理（例えば、ΔＹに基づく第２の情報処理と、ΔＺに基づく第３の情報処理）が行われてもよい。
【０１５０】
なお、以上では、携帯型のゲーム装置１を用いる例を説明したが、本発明はこれに限らず、据え置き型のゲーム装置や、携帯電話や、一般的なパーソナルコンピュータ等の任意の情報処理装置にも適用可能である。また、本発明はゲームプログラムに限らず、ポインティングデバイスからの入力に基づいて所定の情報処理を行う任意の情報処理プログラムにも適用可能である。
【０１５１】
また、上述したゲーム装置１の形状や、それに設けられている各種操作ボタン１４やタッチパネル１３の形状、数、および設置位置等は、単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述したゲーム処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【０１５２】
また、上述した実施形態では、上記のようなゲーム処理を１台のゲーム装置１で実現しているが、これは必須ではなく、複数の情報処理装置が協働することによって上記のようなゲーム処理を実現してもよい。例えば、第１の情報処理装置が、ポインティングデバイスによって指示された指示座標を受け付ける役割を担い、第２の情報処理装置が、第１の情報処理装置によって受け付けられた指示座標に基づいて仮想カメラＣａを制御する役割を担うようにしてもよい。この場合、これらの複数の情報処理装置が、全体として、本発明の情報処理装置に相当する。
【０１５３】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【符号の説明】
【０１５４】
１    ゲーム装置
１１    下側ハウジング
１２    下側ＬＣＤ
１３    タッチパネル
１４    操作ボタン
１５、２６    ＬＥＤ
１６    マイクロフォン用孔
２１    上側ハウジング
２２    上側ＬＣＤ
２３    内側カメラ
２４    音抜き孔
２５    外側カメラ
２７    タッチペン
２８、２９    メモリカード
３１    ＣＰＵ
３２    メインメモリ
３３    メモリ制御回路
３４    保存用データメモリ
３５    プリセットデータ用メモリ
３６、３７    メモリカードＩ／Ｆ
３８    無線通信モジュール
３９    ローカル通信モジュール
４０    ＲＴＣ
４１    電源回路
４２    Ｉ／Ｆ回路
４３    マイク
４４    アンプ
【図１】
2011138355.tif 000003
【図２】
2011138355.tif 000004
【図３Ａ】
2011138355.tif 000005
【図３Ｂ】
2011138355.tif 000006
【図４】
2011138355.tif 000007
【図５Ａ】
2011138355.tif 000008
【図５Ｂ】
2011138355.tif 000009
【図６】
2011138355.tif 000010
【図７Ａ】
2011138355.tif 000011
【図７Ｂ】
2011138355.tif 000012
【図８Ａ】
2011138355.tif 000013
【図８Ｂ】
2011138355.tif 000014
【図９】
2011138355.tif 000015
【図１０】
2011138355.tif 000016
【図１１】
2011138355.tif 000017
【図１２】
2011138355.tif 000018
【図１３】
2011138355.tif 000019
【図１４】
2011138355.tif 000020
【図１５】
2011138355.tif 000021
【図１６】
2011138355.tif 000022
【図１７】
2011138355.tif 000023
【図１８】
2011138355.tif 000024
【図１９Ａ】
2011138355.tif 000025
【図１９Ｂ】
2011138355.tif 000026
【図１９Ｃ】
2011138355.tif 000027
【図１９Ｄ】
2011138355.tif 000028