(58)【調査した分野】(Int.Cl.,DB名)
多次元の指示領域中の任意の位置を指示可能なポインティングデバイスからの入力を受け付け可能な情報処理装置のコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
前記ポインティングデバイスによって指示された前記指示領域中の位置を示す指示座標を繰り返し受け付ける指示座標受付手段、
前記指示座標受付手段で受け付けられた指示座標が、前記指示領域中の第1指示領域に属するか否か、及び前記指示領域中の第2指示領域に属するか否かを判断する領域判定手段、
前記領域判定手段によって前記指示座標が前記第2指示領域に属すると判断されたときには前記指示座標受付手段で受け付けられた指示座標に基づく方向を所定方向に補正した方向を用いて所定の処理を実行する第2処理手段、および、
前記領域判定手段によって前記指示座標が前記第1指示領域に属すると判断されたときには、前記補正を行わずに、前記指示座標受付手段で受け付けられた指示座標に基づく方向を用いて前記所定の処理と同じ処理を実行する第1処理手段として機能させ、
前記指示座標に基づく方向は、前記指示座標受付手段で繰り返し受け付けられる一連の指示座標の中で最初の指示座標と、今回の処理時に受け付けられた指示座標とを結ぶ方向である、情報処理プログラム。
前記第2処理手段は、前記領域判定手段によって前記指示座標が前記第2指示領域に属すると判断されたときには前記指示座標受付手段で受け付けられた指示座標の所定方向の成分のみを用いて前記所定の処理を実行する、請求項1〜3の何れかに記載の情報処理プログラム。
前記指示座標受付手段で受け付けられた指示座標が、前記指示座標受付手段で繰り返し受け付けられる一連の指示座標の中で最初の指示座標(以下、開始指示座標と称す)であるか否かを判定する開始指示座標判定手段として前記コンピュータをさらに機能させ、
前記第1処理手段は、前記領域判定手段によって前記開始指示座標が前記第1指示領域に属すると判断されたときには、それ以降に前記指示座標受付手段で継続的に受け付けられる一連の指示座標に基づく方向を用いて所定の処理を実行し、
前記第2処理手段は、前記領域判定手段によって前記開始指示座標が前記第2指示領域に属すると判断されたときには、それ以降に前記指示座標受付手段で継続的に受け付けられる一連の指示座標に基づく方向を所定方向に補正した方向を用いて前記所定の処理を実行する、請求項1又は2に記載の情報処理プログラム。
【発明を実施するための形態】
【0029】
以下では、図面を参照して、本発明の一実施形態に係るゲーム装置について説明する。
図1は、ゲーム装置1の外観図である。なお、ゲーム装置1は、カメラを内蔵しており、当該カメラによって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりする撮像装置としても機能する。
【0030】
図1において、ゲーム装置1は、折り畳み型の携帯ゲーム装置であり、開いた状態(開状態)のゲーム装置1を示している。ゲーム装置1は、開いた状態においてもユーザが両手または片手で把持することができるサイズで構成される。
【0031】
ゲーム装置1は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。
図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回動可能に連結されている。通常、ユーザは、開状態でゲーム装置1を使用する。そして、ユーザは、ゲーム装置1を使用しない場合には閉状態としてゲーム装置1を保管する。また、
図1に示した例では、ゲーム装置1は、上記閉状態および開状態のみでなく、下側ハウジング11と上側ハウジング21とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング21を下側ハウジング11に対して任意の角度で静止させることができる。
【0032】
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12が設けられる。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。なお、本実施形態では、ゲーム装置1に内蔵されている表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を利用してもよい。また、ゲーム装置1は、任意の解像度の表示装置を利用することができる。
【0033】
下側ハウジング11には、入力装置として、各操作ボタン14A〜14Hおよびタッチパネル13が設けられる。
図1に示すように、各操作ボタン14A〜14Hのうち、方向入力ボタン14A、操作ボタン14B、操作ボタン14C、操作ボタン14D、操作ボタン14E、スタートボタン14F、セレクトボタン14G、および電源ボタン14Hは、上側ハウジング21と下側ハウジング11とを折りたたんだときに内側となる、下側ハウジング11の内側主面上に設けられる。これらの各操作ボタン14A〜14Gには、ゲーム装置1が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、電源ボタン14Hは、ゲーム装置1の電源をオン/オフするために用いられる。
図1に示す例では、方向入力ボタン14Aおよび電源ボタン14Hは、下側ハウジング11の内側主面中央付近に設けられる下側LCD12に対して、左右一方側(
図1では左側)の当該主面上に設けられる。また、操作ボタン14B〜14E、スタートボタン14F、およびセレクトボタン14Gは、下側LCD12に対して左右他方側(
図1では右側)となる下側ハウジング11の内側主面上に設けられる。
【0034】
なお、ゲーム装置1には、
図1においては図示されていない、さらなる操作ボタンも設けられている。例えば、Lボタンは、下側ハウジング11の上側面の左端部に設けられ、Rボタンは、下側ハウジング11の上側面の右端部に設けられる。LボタンおよびRボタンにも、ゲーム装置1が実行するゲームプログラムに応じた機能が適宜割り当てられる。また、音量ボタンは、下側ハウジング11の左側面に設けられ、音量ボタンは、ゲーム装置1が備えるスピーカの音量を調整するために用いられる。
【0035】
また、ゲーム装置1は、操作ボタン14A〜14Hに加えて、さらに、タッチパネル13を入力装置として備えている。本実施形態におけるタッチパネル13は、抵抗膜方式であって、下側LCD12の画面を覆うように装着されるものとする。タッチパネル13の入力面に対する入力は、ユーザがタッチペン27で触れる、或いはユーザが自身の指で触れるなどのタッチ操作で行うことができる。タッチパネル13は、入力面に対してタッチ操作がされたときのタッチ位置を示す電圧を生成する。タッチパネル13によって生成される電圧は、後述するように、I/F回路42によってタッチパネル13におけるX−Y座標でタッチ位置を示すタッチ位置データに変換される。
【0036】
下側ハウジング11の右側面には、メモリカード28を収納するための挿入口(
図1では、二点鎖線で示している)がさらに設けられている。この挿入口の内側には、ゲーム装置1とメモリカード28とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード28は、例えばSD(Secure Digital)メモリカードであり、上記コネクタに着脱自在に装着される。メモリカード28は、例えば、ゲーム装置1によって撮像された画像を記憶(保存)したり、他の装置で生成された画像をゲーム装置1に読み込んだりするため等に用いられる。
【0037】
また、下側ハウジング11の右側面には、
図1に破線で示すように、タッチペン27を挿入して収納するための挿入口も設けられている。
【0038】
さらに、下側ハウジング11の上側面には、メモリカード29を収納するための挿入口(
図1では、一点鎖線で示している)が設けられる。この挿入口の内側にも、ゲーム装置1とメモリカード29とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード29は、情報処理プログラムやゲームプログラム等を記憶した記憶媒体であり、下側ハウジング11に設けられた挿入口に着脱自在に装着される。
【0039】
下側ハウジング11と上側ハウジング21との連結部の左側部分には、3つのLED(Light Emitting Diode)15A〜15Cが取り付けられる。ここで、ゲーム装置1は、他の機器との間で無線通信を行うことが可能であり、第1LED15Aは、無線通信が確立している場合に点灯する。第2LED15Bは、ゲーム装置1の充電中に点灯する。第3LED15Cは、ゲーム装置1の電源がオンである場合に点灯する。したがって、3つのLED15A〜15Cによって、ゲーム装置1の通信確立状況、充電状況、および、電源のON/OFF状況をユーザに通知することができる。
【0040】
一方、上側ハウジング21には、上側LCD22が設けられる。上側LCD22は横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。なお、下側LCD12と同様、上側LCD22に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。また、上側LCD22上を覆うように、タッチパネルを設けてもかまわない。
【0041】
また、上側ハウジング21には、2つのカメラ(内側カメラ23および外側カメラ25)が設けられる。
図1に示すように、内側カメラ23は、上側ハウジング21の連結部付近の内側主面に取り付けられる。一方、外側カメラ25は、内側カメラ23が取り付けられる内側主面の反対側の面、すなわち、上側ハウジング21の外側主面(ゲーム装置1が閉状態となった場合に外側となる面であり、
図1に示す上側ハウジング21の背面)に取り付けられる。なお、
図1においては、外側カメラ25を破線で示している。これによって、内側カメラ23は、上側ハウジング21の内側主面が向く方向を撮像することが可能であり、外側カメラ25は、内側カメラ23の撮像方向の逆方向、すなわち、上側ハウジング21の外側主面が向く方向を撮像することが可能である。このように、本実施形態では、2つの内側カメラ23および外側カメラ25の撮像方向が互いに逆方向となるように設けられる。例えば、ユーザは、ゲーム装置1からユーザの方を見た景色を内側カメラ23で撮像することができるとともに、ゲーム装置1からユーザの反対側の方向を見た景色を外側カメラ25で撮像することができる。なお、下側LCD12および/または上側LCD22は、内側カメラ23または外側カメラ25で撮像されている画像をリアルタイムに表示するために用いられることもある。
【0042】
なお、上記連結部付近の内側主面には、音声入力装置としてマイク(
図2に示すマイク43)が収納されている。そして、上記連結部付近の内側主面には、マイク43がゲーム装置1外部の音を検知できるように、マイクロフォン用孔16が形成される。マイク43を収納する位置およびマイクロフォン用孔16の位置は必ずしも上記連結部である必要はなく、例えば下側ハウジング11にマイク43を収納し、マイク43の収納位置に対応させて下側ハウジング11にマイクロフォン用孔16を設けるようにしてもよい。
【0043】
また、上側ハウジング21の外側主面には、第4LED26(
図1では、破線で示す)が取り付けられる。第4LED26は、内側カメラ23または外側カメラ25によって撮像が行われている間点灯する。また、内側カメラ23または外側カメラ25によって動画が撮像(撮像画像を動画として記憶)される間は点滅させてもよい。なお、第4LED26の光が画面に映り込むことを防ぐために、シャッターが押された瞬間から、当該シャッターが押された瞬間の撮像画像の記憶が完了するまでの間は第4LED26を消灯させてもよい。第4LED26によって、ゲーム装置1による撮像が行われていることを撮像対象者や周囲に通知することができる。
【0044】
また、上側ハウジング21の内側主面中央付近に設けられる上側LCD22に対して、左右両側の当該主面に音抜き孔24がそれぞれ形成される。音抜き孔24の奥の上側ハウジング21内には、それぞれスピーカが収納されている。音抜き孔24は、スピーカからの音をゲーム装置1の外部に放出するための孔である。
【0045】
以上に説明したように、上側ハウジング21には、画像を撮像するための構成である内側カメラ23および外側カメラ25と、各種画像を表示するための表示手段である上側LCD22とが設けられる。一方、下側ハウジング11には、ゲーム装置1に対する操作入力を行うための入力装置(タッチパネル13および各ボタン14A〜14H)と、各種画像を表示するための表示手段である下側LCD12とが設けられる。当該入力装置は、例えば、ゲーム装置1を使用する際には、下側LCD12や上側LCD22に撮像画像(カメラによって撮像された画像)を表示しながら、下側ハウジング11をユーザが把持して入力装置に対する入力を行うような用途に用いることができる。
【0046】
次に、
図2を参照して、ゲーム装置1の内部構成を説明する。なお、
図2は、ゲーム装置1の内部構成の一例を示すブロック図である。
【0047】
図2において、ゲーム装置1は、CPU(Central Processing Unit)31と、メインメモリ32と、メモリ制御回路33と、保存用データメモリ34と、プリセットデータ用メモリ35と、メモリカードインターフェース(メモリカードI/F)36および37と、無線通信モジュール38と、ローカル通信モジュール39と、リアルタイムクロック(RTC)40と、電源回路41と、インターフェース回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて、下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0048】
CPU31は、所定のプログラムを実行するための情報処理手段である。本実施形態では、所定のプログラムがゲーム装置1内のメモリ(例えば保存用データメモリ34)やメモリカード28および/または29に記憶されており、CPU31は、当該所定のプログラムを実行することによって、後述する情報処理を実行する。なお、CPU31によって実行されるプログラムは、ゲーム装置1内のメモリに予め記憶されていてもよいし、メモリカード28および/または29から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。
【0049】
CPU31には、メインメモリ32、メモリ制御回路33、およびプリセットデータ用メモリ35が接続される。また、メモリ制御回路33には、保存用データメモリ34が接続される。メインメモリ32は、CPU31のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ32は、上記情報処理に用いられる各種データを記憶したり、外部(メモリカード28および29や他の機器等)から取得されるプログラムを記憶したりする。本実施形態では、メインメモリ32として、例えばPSRAM(Pseudo−SRAM)を用いる。保存用データメモリ34は、CPU31によって実行されるプログラムや内側カメラ23および外側カメラ25によって撮像された画像のデータ等を記憶するための記憶手段である。保存用データメモリ34は、不揮発性の記憶媒体によって構成されており、例えば本実施例ではNAND型フラッシュメモリで構成される。メモリ制御回路33は、CPU31の指示に従って、保存用データメモリ34に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ35は、ゲーム装置1において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ35としては、SPI(Serial Peripheral Interface)バスによってCPU31と接続されるフラッシュメモリを用いることができる。
【0050】
メモリカードI/F36および37は、それぞれCPU31に接続される。メモリカードI/F36は、コネクタに装着されたメモリカード28に対するデータの読み出しおよび書き込みを、CPU31の指示に応じて行う。また、メモリカードI/F37は、コネクタに装着されたメモリカード29に対するデータの読み出しおよび書き込みを、CPU31の指示に応じて行う。本実施形態では、メモリカード29に記憶された各種プログラムが、CPU31によって読み出されて実行される例を用いる。
【0051】
なお、本発明のゲームプログラムは、メモリカード29を通じてコンピュータシステムに供給されるだけでなく、メモリカード28等の外部記憶媒体を通じてコンピュータシステムに供給されてもよい。また、本発明のゲームプログラムは、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよい。さらに、本発明のゲームプログラムは、コンピュータシステム内部の不揮発性記憶装置に予め記憶されていてもよい。なお、本発明のゲームプログラムを記憶する情報記憶媒体としては、上記不揮発性記憶装置に限らず、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【0052】
無線通信モジュール38は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール39は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール38およびローカル通信モジュール39は、CPU31に接続される。CPU31は、無線通信モジュール38を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール39を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0053】
また、CPU31には、RTC40および電源回路41が接続される。RTC40は、時間を計時してCPU31に出力する。例えば、CPU31は、RTC40によって計時された時間に基づいて、現在時刻(日付)等を計算することもできる。電源回路41は、ゲーム装置1が有する電源(典型的には電池であり、下側ハウジング11に収納される)から供給される電力を制御し、ゲーム装置1の各部品に電力を供給する。
【0054】
また、ゲーム装置1は、マイク43およびアンプ44を備えている。マイク43およびアンプ44は、それぞれI/F回路42に接続される。マイク43は、ゲーム装置1に向かって発声されたユーザの音声を検知して、当該音声を示す音声信号をI/F回路42に出力する。アンプ44は、I/F回路42から出力される音声信号を増幅してスピーカ(図示せず)から出力させる。I/F回路42は、マイク43およびアンプ44を制御する音声制御回路を含んでおり、マイク43から出力される音声信号に対してA/D変換をして所定の形式の音声データに変換したり、CPU31によって生成される音声データをD/A変換してアンプ44に出力する音声信号を生成したりする。
【0055】
また、I/F回路42には、タッチパネル制御回路がさらに含まれており、タッチパネル13が接続されている。タッチパネル制御回路は、タッチパネル13によって生成される電圧に基づき、タッチパネル13におけるタッチ位置をX−Y座標値で示すタッチ位置データを生成する。
【0056】
操作ボタン14は、上記各操作ボタン14A〜14Hから構成され、CPU31に接続される。操作ボタン14からCPU31へは、各操作ボタン14A〜14Hに対する入力状況(押下されたか否か)を示す信号が出力される。CPU31は、操作ボタン14によって出力される信号を取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
【0057】
内側カメラ23および外側カメラ25は、それぞれCPU31に接続される。内側カメラ23および外側カメラ25は、CPU31の指示に応じて画像を撮像し、撮像した画像データをCPU31に出力する。例えば、CPU31は、内側カメラ23および外側カメラ25のいずれか一方に対して撮像指示を行い、撮像指示を受けたカメラが画像を撮像して画像データをCPU31に送る。
【0058】
また、下側LCD12および上側LCD22は、それぞれCPU31に接続される。下側LCD12および上側LCD22は、それぞれCPU31の指示に従って画像を表示する。一例として、CPU31は、本発明のゲームプログラムを実行することによって生成された画像(例えば、ゲーム画像)を下側LCD12および/または上側LCD22に表示させる。他の例として、CPU31は、内側カメラ23および外側カメラ25のいずれかから取得した画像を、下側LCD12および上側LCD22の一方に表示させ、所定の処理によって生成した操作説明画面を下側LCD12および上側LCD22の他方に表示させる。
【0059】
次に、
図3A〜
図4を参照して、上記ゲーム装置1がゲームプログラムを実行することによって、下側LCD12、及び上側LCD22にそれぞれ表示されるゲーム画面の概要について説明する。まず、
図3A〜
図3Bを参照して、上側LCD22に表示されるゲーム画像について説明する。
【0060】
本実施形態において実行されるゲームでは、仮想空間に配置されたプレイヤキャラクタPcがユーザによる操作に応じた動作をする。そして、上記ゲーム装置1の上側LCD22には、仮想空間に配置され、ユーザによる操作に応じた動作をするプレイヤキャラクタPcが表示される。
【0061】
例えば、本実施形態において実行されるゲームでは、方向入力ボタン14Aには、ユーザによって操作された方向に応じてプレイヤキャラクタPcに地上を移動させる機能がゲームプログラムによって割り当てられている。そして、方向入力ボタン14Aがユーザによって操作されたときには、操作されたボタンの方向に応じてプレイヤキャラクタPcが地上を移動する。
【0062】
図3Aは、上側LCD22に表示されるゲーム画像の一例を示す図である。例えば、ユーザが、方向入力ボタン14Aの中でプレイヤキャラクタPcを前方に移動させるボタン(典型的には上方向の操作ボタン)を操作したときには、
図3Aに一例として示すように、プレイヤキャラクタPcが前方(
図3Aに示す一例では、仮想空間において奥に向かう方向)に向かって移動する様子を示すゲーム画像が表示される。
【0063】
また、操作ボタン14B〜14Hのそれぞれには、プレイヤキャラクタPcにジャンプをさせる、及びプレイヤキャラクタPcをダッシュさせるなどの機能がゲームプログラムによって割り当てられている。そして、例えば、操作ボタン14B〜14Hの中でプレイヤキャラクタPcにジャンプをさせる機能をゲームプログラムによって割り当てられている操作ボタンが操作されたときには、プレイヤキャラクタPcがジャンプする。
図3Bは、ジャンプするプレイヤキャラクタPcを示すゲーム画像を表示している上側LCD22の一例を示す図である。
【0064】
次に、
図4を参照して、下側LCD12に表示されるゲーム画像について説明する。本実施形態において実行されるゲームでは、下側LCD12には、
図4に一例として示すように、仮想空間においてプレイヤキャラクタPcが存在する位置の周辺の地図を示す画像、及び当該地図におけるプレイヤキャラクタの現在位置がゲーム画像として表示される。本実施形態では、地図におけるプレイヤキャラクタPcの現在位置に、
図4に一例として示すように、プレイヤキャラクタPcを模式的に示すシンボルPcpを表示させる。
【0065】
このように、上記ゲーム装置1の上側LCD22には、仮想空間に配置されたプレイヤキャラクタPcを表示させ、下側LCD12には、プレイヤキャラクタPcを示すシンボルPcpを周辺の地図と併せて表示させる。これにより、ユーザは、上側LCD22に表示されるゲーム画像を見てプレイヤキャラクタPcを操作しながら、必要に応じて、下側LCD12に表示されるプレイヤキャラクタPcの現在位置を確認することができる。
【0066】
さらに、本実施形態では、ユーザがタッチパネル13に対して前述のタッチ操作をすることにより、上側LCD22にゲーム画像を表示させるために仮想空間内に仮想的に配置するカメラ(以下、仮想カメラCaと称す)の位置を制御することができる。以下、
図5A〜
図12を参照しながら、本実施形態において、ユーザのタッチ操作に応じて仮想カメラCaの位置を制御するカメラ位置制御処理について説明する。
【0067】
本実施形態において実行されるゲームでは、前述の仮想カメラCaを仮想空間に配置し、仮想カメラCaで仮想空間内を撮像したときのゲーム画像を計算して生成し、上側LCD22に表示させる。
【0068】
図5Aは、本実施形態においてゲームを実行している中で、ある時点における仮想カメラCaとプレイヤキャラクタPcとの位置関係を、プレイヤキャラクタPcの真上から鉛直方向に見下ろしたときの平面図である。また、
図5Bは、
図5Aに示す仮想カメラCaとプレイヤキャラクタPcとの位置関係を、プレイヤキャラクタPcの右側から
図5Aに示すZ軸方向に沿って見たときの右側面図である。
【0069】
本実施形態における仮想カメラCaは常に注視点Gpを向くものとする。本実施形態では注視点Gpの位置はプレイヤキャラクタPcの頭の頂点から
図5Bに示すY軸の正方向に所定の距離だけ離れた位置に固定されるものとする。そして、本実施形態では、ユーザがタッチパネル13に対してタッチ操作をすることによって、この仮想カメラCaの位置を制御する。
【0070】
図6は、本実施形態において予め定められるタッチパネル13上の領域の一例を示す図である。
図6に示すように、本実施形態では、タッチパネル13上の領域が、自由方向入力領域Na、横方向入力領域Xa、及び縦方向入力領域Yaの3つの領域に分割される。本実施形態では、
図6に示すタッチパネル13のY軸の正方向の端部(典型的には、ゲーム装置1を用いてゲームをプレイしているユーザ側の端部)から、Y軸の負方向に向かって予め定められた幅XaYの領域を横方向入力領域Xaとする。また、本実施形態では、
図6に示すタッチパネル13のX軸の正方向の端部(典型的には、ゲーム装置1を用いてゲームをプレイしているユーザの右側の端部)から、X軸の負方向に向かって予め定められた幅YaXの領域を縦方向入力領域Yaとする。そして、本実施形態では、タッチパネル13における横方向入力領域Xa、及び縦方向入力領域Ya以外の領域を自由方向入力領域Naとする。なお、本実施形態では、
図4に示すように、下側LCD12にこれらの入力領域の境界線は表示されないが、ユーザがこれらの入力領域を識別できるように境界線等を表示するようにしても構わない。
【0071】
尚、本実施形態では、横方向入力領域Xa、及び縦方向入力領域Yaの境界は、
図6に一例として示すように、位置C1から位置C2までを結ぶ直線とする。
【0072】
まず、始めに、ユーザがタッチパネル13上の自由方向入力領域Naにタッチ操作をして仮想カメラCaの位置を制御する場合について説明する。尚、
図6では、説明の便宜のため、タッチパネル13を透過する下側LCD12に表示されるゲーム画面の図示を省略している。
【0073】
図7Aは、ユーザが、タッチパネル13上の自由方向入力領域Naにおける任意の位置K1から
図7Aに示すタッチパネル13におけるX軸に沿ってタッチペン27をタッチパネル13に接触させながら移動させるタッチ操作(スライド操作)をしたときのタッチ位置の変化の軌跡の一例を示す図である。また、
図7Bは、ユーザが
図7Aに示すようにタッチペン27を移動させたときに移動する仮想カメラCaの軌跡の一例を示す図である。
【0074】
本実施形態では、
図7Aに示すようにユーザが自由方向入力領域Naの任意の位置K1からタッチパネル13におけるX軸の正方向XPにタッチ位置を変化させると、
図7Bに示すように、注視点Gpを通る鉛直線(すなわち、注視点Gpを通り、かつ仮想空間におけるY軸に平行な直線)周りに、現在位置Kd1からタッチパネル13におけるX軸の正方向XPに対応する反時計回り方向XdPに、タッチ位置の変化量に応じた回転角度だけ回転した位置に仮想カメラCaを移動させる。一方、本実施形態では、
図7Aに示すようにユーザが自由方向入力領域Naの任意の位置K1からタッチパネル13におけるX軸の負方向XNにタッチ位置を変化させると、
図7Bに示すように、注視点Gpを通る鉛直線(すなわち注視点Gpを通り、かつ仮想空間におけるY軸に平行な直線)周りに、現在位置Kd1からタッチパネル13におけるX軸の負方向XNに対応する時計回り方向XdNに、タッチ位置の変化量に応じた回転角度だけ回転した位置に仮想カメラCaを移動させる。
【0075】
尚、
図7Bに示すように仮想カメラCaを水平面に沿って移動させるときは、上述したように注視点Gpを常に向くようにその向きも制御する。
【0076】
以下では、
図7Bに一例として示すように仮想カメラCaを水平面に沿って移動させるときの位置、及び向きの計算を、仮想カメラCaの「水平移動位置計算」と称する。
【0077】
図8Aは、ユーザが、タッチパネル13上の自由方向入力領域Naにおける任意の位置K2から
図8Aに示すタッチパネル13におけるY軸に沿ってタッチペン27をタッチパネル13に接触させながら移動させるタッチ操作(スライド操作)をしたときのタッチ位置の変化の軌跡の一例を示す図である。また、
図8Bは、ユーザが
図8Aに示すようにタッチペン27を移動させたときに移動する仮想カメラCaの軌跡の一例を示す図である。
【0078】
本実施形態では、
図8Aに示すようにユーザが自由方向入力領域Naの任意の位置K2からタッチパネル13におけるY軸の負方向YNにタッチ位置を変化させると、
図8Bに示すように、現在位置Kd2と注視点Gpを含む鉛直面に沿って、注視点Gpを中心として、現在位置Kd2からタッチパネル13におけるY軸の負方向YNに対応する時計回り方向YdNに、タッチ位置の変化量に応じた回転角度だけ回転した位置に仮想カメラCaを移動させる。一方、本実施形態では、
図8Aに示すようにユーザが自由方向入力領域Naの任意の位置K2からタッチパネル13におけるY軸の正方向YPにタッチ位置を変化させると、
図8Bに示すように、現在位置Kd2と注視点Gpを含む鉛直面に沿って、注視点Gpを中心として、現在位置Kd2からタッチパネル13におけるY軸の正方向YPに対応する反時計回り方向YdPに、タッチ位置の変化量に応じた回転角度だけ回転した位置に仮想カメラCaを移動させる。
【0079】
尚、
図8Bに示すように仮想カメラCaを鉛直面に沿って移動させるときは、上述したように注視点Gpを常に向くようにその向きも制御する。
【0080】
以下では、
図8Bに一例として示すように仮想カメラCaを鉛直面に沿って移動させるときの位置、及び向きの計算を、仮想カメラCaの「垂直移動位置計算」と称する。
【0081】
また、本実施形態では、例えば、ユーザが、タッチパネル13におけるX軸に沿った方向、及びタッチパネル13におけるY軸に沿った方向以外の任意の方向にタッチ位置を変化させる場合がある。
図9は、ユーザが自由方向入力領域Naの任意の位置K3から任意の方向XYにタッチ位置を変化させたときの軌跡の一例を示す図である。
【0082】
本実施形態では、ユーザが、
図9に一例として示すように、タッチパネル13におけるX軸に沿った方向、及びタッチパネル13におけるY軸に沿った方向以外の任意の方向XYに沿って任意の位置K3からタッチ位置を変化させた場合には、そのときのタッチパネル13におけるX軸に沿ったタッチ位置の変化量と、Y軸に沿ったタッチ位置の変化量とに応じて仮想カメラCaの位置を制御する。具体的には、任意の位置K3から任意の方向XYに沿ってタッチ位置を変化させたときのX軸に沿ったタッチ位置の変化量に応じて、前述の仮想カメラCaの水平移動位置計算をする。そして、次に、任意の位置K3から任意の方向XYに沿ってタッチ位置を変化させたときのY軸に沿ったタッチ位置の変化量に応じて、水平移動位置計算をして求めた位置、及び向きから、前述の垂直移動位置計算をして求めた位置、及び向きに仮想カメラCaを制御する。
【0083】
以上より、本実施形態では、ユーザが自由方向入力領域Naの任意の位置からタッチ位置を任意の方向に変化させることにより、仮想カメラCaの位置を任意の位置に制御して、上側LCD22に表示されるゲーム画像を生成するときの視点を所望の位置に移動させることができる。
【0084】
ところで、
図7A〜
図8Bをそれぞれ参照しながら説明したように、タッチパネル13におけるX軸方向、或いはY軸方向に厳密に一致した方向にタッチ位置を変化させた場合には、仮想空間における水平面、或いは鉛直面に厳密に沿って仮想カメラCaを移動させることができる。しかし、例えば、ユーザが、タッチパネル13におけるX軸方向と厳密に一致する方向にタッチ位置を変化させたつもりでも、人の手で厳密にそのようにタッチ位置を変化させることは困難であり、実際には
図10に一例として示すように、その軌跡Ksaは、タッチパネル13におけるX軸に沿った方向XP1と厳密には一致しない。これは、タッチパネル13におけるY軸方向についても同様である。したがって、仮想空間における水平面、或いは鉛直面に厳密に沿って回転させた位置に仮想カメラCaを移動させたいユーザに対して、上述で説明した仮想カメラCaの位置の操作方法だけでは、必ずしも快適な操作方法を提供できない。
【0085】
そこで、本実施形態では、仮想空間における水平面、或いは鉛直面に厳密に沿って仮想カメラCaの位置を操作できるように、タッチパネル13上に、横方向入力領域Xa、及び縦方向入力領域Yaをそれぞれ上述したように設けている。以下、本実施形態において、ユーザが、横方向入力領域Xa、及び縦方向入力領域Yaでそれぞれタッチペン27を移動させた場合について説明する。
【0086】
まず、ユーザが横方向入力領域Xaでタッチ位置を変化させた場合について説明する。
図11は、ユーザが、タッチパネル13上の横方向入力領域Xaにおける任意の位置K5からタッチパネル13におけるX軸の正方向XP1にタッチ位置を変化させたときの軌跡KsXの一例を示す図である。本実施形態では、ユーザが、横方向入力領域Xa内からタッチ位置を変化させたとき(すなわち、横方向入力領域Xa内の任意の点を起点としてスライド操作を行ったとき)には、タッチパネル13におけるY軸方向の変化量を無視する。したがって、ユーザが、タッチパネル13上の横方向入力領域Xa内からタッチ位置を変化させたときには、
図11に一例として示すように、実際の軌跡KsXがY軸方向にぶれていたとしても、タッチパネル13におけるX軸方向に厳密に沿った軌跡XP1が入力されたとみなす。これにより、ユーザが、タッチパネル13上の横方向入力領域Xa内からタッチ位置を変化させたときには、
図7A、及び
図7Bを参照しながら上述で説明したように、仮想空間における水平面に厳密に沿って仮想カメラCaを移動させることができる。
【0087】
次に、ユーザが縦方向入力領域Yaでタッチ位置を変化させた場合について説明する。
図12は、ユーザが、タッチパネル13上の縦方向入力領域Yaにおける任意の位置K6からタッチパネル13におけるY軸の正方向YP1にタッチ位置を変化させたときの軌跡KsYの一例を示す図である。本実施形態では、ユーザが、縦方向入力領域Ya内からタッチ位置を変化させたとき(すなわち、縦方向入力領域Ya内の任意の点を起点としてスライド操作を行ったとき)には、タッチパネル13におけるX軸方向の変化量を無視する。したがって、ユーザが、タッチパネル13上の縦方向入力領域Ya内からタッチ位置を変化させたときには、
図12に一例として示すように、実際の軌跡KsYがX軸方向にぶれていたとしても、タッチパネル13におけるY軸方向に厳密に沿った軌跡YP1が入力されたとみなす。これにより、ユーザが、タッチパネル13上の縦方向入力領域Ya内からタッチ位置を変化させたときには、
図8A、及び
図8Bを参照しながら上述で説明したように、仮想空間における鉛直面に厳密に沿って仮想カメラCaを移動させることができる。
【0088】
以上が、本実施形態におけるカメラ位置制御処理の説明である。本実施形態では、自由方向入力領域Naの他に横方向入力領域Xa、及び縦方向入力領域Yaをそれぞれ設けることにより、仮想空間における水平面、或いは鉛直面に厳密に沿って仮想カメラCaを移動させたいユーザに対して快適な操作方法を提供できる。
【0089】
次に、本実施形態におけるゲーム装置1のCPU31の処理の流れについて説明する。
【0090】
本実施形態では、CPU31が操作ボタン14A〜14Hの状態の検知、及びタッチ位置データの取得を60分の1秒毎にする。操作ボタン14A〜14Hの状態を検知すると、CPU31は、検知した操作ボタン14A〜14Hの状態に応じてプレイヤキャラクタPcの動作を制御し、上側LCD22に表示するプレイヤキャラクタPcなどのオブジェクトの仮想空間における位置、及び姿勢などを計算する。仮想空間におけるオブジェクトの位置、及び姿勢などを計算すると、CPU31は、取得したタッチ位置データに基づいて上述したように仮想カメラCaの位置、及び向きを計算する。そして、CPU31は、位置、及び向きを計算した仮想カメラCaから、位置、及び姿勢などを計算したプレイヤキャラクタPcなどのオブジェクトが存在する仮想空間を撮像したときの画像を、上側LCD22のゲーム画面に表示するゲーム画像として生成する。
【0091】
上側LCD22に表示するゲーム画像を計算すると共に、CPU31は、プレイヤキャラクタPcの仮想空間における位置に基づいて、下側LCD12に地図と共に表示するシンボルPcpの表示位置を計算する。そして、CPU31は、表示位置を計算したシンボルPcpを地図に重畳させた画像を、下側LCD12のゲーム画面に表示するゲーム画像として生成する。
【0092】
CPU31は、上側LCD22、及び下側LCD12にそれぞれ表示するゲーム画像を計算すると、上側LCD22、及び下側LCD12に、計算したゲーム画像をそれぞれ表示させる。
【0093】
図13は、本発明のゲームプログラムの実行時に、メインメモリ32に格納される各種データの一例を示す図である。メインメモリ32には、メモリカード29から読み出されたゲームプログラム61、最新タッチ位置データ62、前回タッチ位置データ63、タッチ開始領域データ64、カメラ位置データ65、及びカメラ向きデータ66等が格納される。
【0094】
最新タッチ位置データ62は、CPU31がI/F回路42を通じて取得した最新のタッチ位置データ(2次元座標データ)である。
【0095】
前回タッチ位置データ63は、最新のタッチ位置を示すタッチ位置データの直前に取得したタッチ位置データである。
【0096】
タッチ開始領域データ64は、タッチ位置の変化の開始点(すなわち、スライド操作において最初にタッチされた点)が、自由方向入力領域Na、横方向入力領域Xa、及び縦方向入力領域Yaのいずれの領域に属するかを示すデータである。
【0097】
カメラ位置データ65は、仮想カメラCaの仮想空間における位置を示す3次元座標データである。
【0098】
カメラ向きデータ66は、仮想カメラCaの仮想空間における向きを、X軸周りの角度(ロール角)、Y軸周りの角度(ヨー角)、及びZ軸周りの角度(ピッチ角)で示すデータである。
【0099】
以下、
図14〜
図15のフローチャートを参照して、ゲームプログラム61に基づくCPU31の処理の流れを説明する。
【0100】
ゲームプログラム61の実行が開始されると、
図14のステップS10において、CPU31は初期化処理を行う。初期化処理には、ゲーム処理に利用される各種変数に初期値を入力したり、プレイヤキャラクタPcなどのオブジェクト、及び仮想カメラCaなどを仮想空間における初期位置に配置する処理が含まれる。
【0101】
ステップS11において、CPU31は、操作ボタン14A〜14Hの状態をそれぞれ検知する。
【0102】
ステップS12において、CPU31は、ステップS11で検知した操作ボタン14A〜14Hの状態に基づいて、プレイヤキャラクタPcの動作などを制御し、仮想空間におけるプレイヤキャラクタPcなどのオブジェクトの位置、及び姿勢などを計算する。
【0103】
ステップS13において、CPU31は、タッチパネル13上におけるタッチ位置に基づいて、上述したカメラ位置制御処理を行う。本実施形態のカメラ位置制御処理の処理の流れの詳細については後述する。
【0104】
ステップS14において、CPU31は、ステップS12で計算したオブジェクトの仮想空間における位置、及び姿勢、ステップS13のカメラ位置制御処理において計算した仮想空間における仮想カメラCaの位置、及び向きに基づいて、上側LCD22に表示するゲーム画像を生成する。また、CPU31は、ステップS12で計算したプレイヤキャラクタPcの仮想空間における位置に基づいて、下側LCD12に地図と共に表示するプレイヤキャラクタPcのシンボルPcpの表示位置を計算し、表示位置を計算したシンボルPcpを地図に重畳させたゲーム画像を生成する。
【0105】
ステップS15において、CPU31は、ステップS14で生成したゲーム画像をそれぞれ上側LCD22、及び下側LCD12に表示させる。
【0106】
ステップS16において、CPU31は、ゲームが終了したかどうかを判断し、ゲームが終了した場合にはゲームプログラム61の実行を終了し、ゲームが続行している場合には、処理はステップS11に戻る。
【0107】
こうして、下側LCD12には、仮想空間におけるプレイヤキャラクタPcの現在位置を示す地図が表示され、上側LCD22には、仮想空間におけるプレイヤキャラクタPcの様子が表示される。
【0108】
尚、ステップS11〜ステップS16の処理は、上述したように60分の1秒毎に繰り返し実行される。したがって、本実施形態では、下側LCD12、及び上側LCD22の画面の更新周期は60分の1秒となる。
【0109】
次に、
図15を参照して、
図14のステップS13のカメラ位置制御処理の詳細を説明する。
【0110】
ステップS21において、CPU31は、I/F回路42を通じてタッチ位置データを取得する。
【0111】
ステップS22において、CPU31は、最新タッチ位置データ62および前回タッチ位置データ63を更新するタッチ位置データ更新処理をする。なお、ステップS21で取得された最新のタッチ位置データがNull値である場合(すなわち、タッチパネル13の入力面に対するタッチ操作が行われていない場合)には、最新タッチ位置データ62にはNull値が格納される。
【0112】
ステップS23において、CPU31は、タッチパネル13の入力面に対するタッチ操作があったか否かを判断する。具体的には、最新タッチ位置データ62がNull値であるか否かを判断する。CPU31は、ステップS23において、最新タッチ位置データ62がNull値であると判断したときには、タッチ操作がないと判断して、ステップS14へ処理を進める。一方、CPU31は、ステップS23において、最新タッチ位置データ62がNull値でないと判断したときには、タッチ操作があると判断して、ステップS24へ処理を進める。
【0113】
ステップS24において、CPU31は、最新タッチ位置データ62によって示されるタッチ位置が、スライド操作の起点を示すタッチ位置であるか否かを判断する。具体的には、最新タッチ位置データ62がNull値でなく、且つ前回タッチ位置データ63がNull値である場合には、CPU31は、最新タッチ位置データ62によって示されるタッチ位置が、スライド操作の起点を示すタッチ位置であると判断できる。一方、最新タッチ位置データ62、及び前回タッチ位置データ63が共にNull値でない場合には、CPU31は、スライド操作が継続していると判断できる。CPU31は、ステップS24において、最新タッチ位置データ62によって示されるタッチ位置が、スライド操作の起点であると判断したときには、ステップS25へ処理を進める。一方、CPU31は、ステップS24において、最新タッチ位置データ62によって示されるタッチ位置が、スライド操作の起点でないと判断したときには、ステップS27へ処理を進める。
【0114】
ステップS25において、CPU31は、最新タッチ位置データ62によって示されるタッチ位置が、前述の自由方向入力領域Na、横方向入力領域Xa、及び縦方向入力領域Yaのいずれに属するかを判定する。なお、この判定は、各入力領域の位置や境界を示す領域情報を参照して行われる。この領域情報は、例えば、ゲームプログラム61に含まれていても良い。
【0115】
ステップS26において、CPU31は、ステップS25の判定結果に応じてタッチ開始領域データ64を更新して、S13のカメラ位置制御処理は終了する。
【0116】
一方、ステップS27において、CPU31は、タッチ開始領域データ64を参照して、タッチ開始領域に応じて異なるステップへと処理を進める。具体的には、CPU31は、タッチ開始領域が自由方向入力領域Naである場合には、ステップS28へ処理を進める。また、CPU31は、タッチ開始領域が横方向入力領域Xaである場合には、ステップS31へ処理を進める。また、CPU31は、タッチ開始領域が縦方向入力領域Yaである場合には、ステップS33へ処理を進める。
【0117】
ステップS28において、CPU31は、タッチパネル13におけるX軸方向、及びY軸方向のタッチ位置の変化量をそれぞれ計算する。具体的には、CPU31は、最新タッチ位置データ62のX座標値をXcとし、前回タッチ位置データ63のX座標値をXpとすると、Xc−Xpをその変化量ΔXとして計算する。さらに、CPU31は、最新タッチ位置データ62のY座標値をYcとし、前回タッチ位置データ63のY座標値をYpとすると、Yc−Ypをその変化量ΔYとして計算する。尚、このようにして計算される変化量ΔXの符号が負であれば、タッチ位置がタッチパネル13におけるX軸の負方向に移動したことを示し、正であれば、タッチ位置が当該X軸の正方向に移動したことを示す。また、このようにして計算される変化量ΔYの符号が負であれば、タッチ位置がタッチパネル13におけるY軸の負方向に移動したことを示し、正であれば、タッチ位置が当該Y軸の正方向に移動したことを示す。
【0118】
ステップS29において、CPU31は、ステップS28で計算した変化量ΔXに応じて前述の水平移動位置計算を行い、仮想カメラCaの位置、及び向きを更新する。
【0119】
ステップS30において、CPU31は、ステップS28で計算した変化量ΔYに応じて前述の垂直移動位置計算を行い、仮想カメラCaの位置、及び向きをさらに更新する。なお、ステップS29とステップS30の処理の順序は逆でも構わない。
【0120】
ステップS31において、CPU31は、ステップS30の計算結果に基づいてカメラ位置データ65及びカメラ向きデータ66を更新して、S13のカメラ位置制御処理は終了する。
【0121】
また、ステップS32において、CPU31は、タッチパネル13におけるX軸方向のタッチ位置の変化量を計算する。具体的には、CPU31は、前述の変化量ΔXを計算する。
【0122】
ステップS33において、CPU31は、ステップS32で計算した変化量ΔXに応じて前述の水平移動位置計算を行い、仮想カメラCaの位置、及び向きを更新する。
【0123】
ステップS34において、CPU31は、ステップS33の計算結果に基づいてカメラ位置データ65及びカメラ向きデータ66を更新して、S13のカメラ位置制御処理は終了する。
【0124】
ステップS35において、CPU31は、タッチパネル13におけるY軸方向のタッチ位置の変化量を計算する。具体的には、CPU31は、前述の変化量ΔYを計算する。
【0125】
ステップS36において、CPU31は、ステップS35で計算した変化量ΔYに応じて前述の垂直移動位置計算を行い、仮想カメラCaの位置、及び向きを更新する。
【0126】
ステップS37において、CPU31は、ステップS36の計算結果に基づいてカメラ位置データ65及びカメラ向きデータ66を更新して、S13のカメラ位置制御処理は終了する。
【0127】
以上のように、本実施形態によれば、ユーザは、自由方向入力領域Naにおいてスライド操作を行うことによって、仮想カメラCaを任意の方向へ移動させることができる。さらに、仮想カメラCaを仮想空間における水平面に沿って移動させたい場合には、自由方向入力領域Naにおいてスライド操作を行う代わりに、横方向入力領域Xaにおいてスライド操作を行うことによって、容易に水平面に厳密に沿って移動させることができる。また、仮想カメラCaを仮想空間における鉛直面に沿って移動させたい場合には、自由方向入力領域Naにおいてスライド操作を行う代わりに、縦方向入力領域Yaにおいてスライド操作を行うことによって、容易に鉛直面に厳密に沿って移動させることができる。したがって、ユーザは、例えばタッチパネル13上でX軸またはY軸に沿って真っ直ぐにスライド操作を行いたい場合であっても、タッチパネル13を注視した精密な操作が不要となり、上側LCD22に表示されているゲーム画像を見ながらであっても所望の入力操作を行うことができる。
【0128】
すなわち、ユーザは、タッチパネル13におけるタッチ位置のX座標値とY座標値の両方をゲーム処理に反映させたい場合には自由方向入力領域Naを利用し、タッチパネル13におけるタッチ位置のX座標値のみをゲーム処理に反映させたい場合には横方向入力領域Xaを利用し、タッチパネル13におけるタッチ位置のY座標値のみをゲーム処理に反映させたい場合には縦方向入力領域Yを利用する、というように、用途に応じてこれらの入力領域を適宜に使い分けることができる。
【0129】
すなわち、自由方向入力領域Naは、「X座標値とY座標値の両方を入力するための入力領域」もしくは「X座標値とY座標値の両方が有効な座標値として扱われる入力領域」と言い換えることができる。また、横方向入力領域Xaは、「X座標値のみを入力するための入力領域」もしくは「X座標値及びY座標値のうちのX座標値のみが有効な座標値として扱われてY座標値が無視される入力領域」と言い換えることができる。同様に、縦方向入力領域Yaは、「Y座標値のみを入力するための入力領域」もしくは「X座標値及びY座標値のうちのY座標値のみが有効な座標値として扱われてX座標値が無視される入力領域」と言い換えることができる。また、自由方向入力領域Naは、「任意の2次元座標を入力可能な入力領域」と言い換えることができ、また、横方向入力領域Xaおよび縦方向入力領域Yaは、「任意の2次元座標が入力されたときに所定方向の成分のみが有効に扱われる入力領域」と言い換えることができる。ここで言う「所定方向」とは、基準軸(X軸、Y軸)の方向に限らず、任意の方向(例えばZ軸との角度が45度であるような方向)であってもよい。
【0130】
また、本実施形態では、ステップS27の後に行うべき処理(ステップS28、ステップS32、ステップS35)を、最新タッチ位置データではなくタッチ開始領域に基づいて判断しているので、例えば、横方向入力領域Xa内の点を起点としたスライド操作の途中で、ユーザの意図に反してタッチ位置が自由方向入力領域Naに進入してしまったとしても、ユーザの意図に反して仮想カメラCaの垂直移動位置計算(ステップS30)が行われてしまうことがない。
【0131】
(種々の変形例)
以下、上述した実施形態に対する種々の変形例について説明する。
【0132】
上述した実施形態では、タッチパネル13のY軸の正方向の端部から、Y軸の負方向に向かって定めた幅XaYの領域を横方向入力領域Xaとし、タッチパネル13のX軸の正方向の端部から、X軸の負方向に向かって定めた幅YaXの領域を縦方向入力領域Yaとし、残りの領域を自由方向入力領域Naとした。しかしながら、これらの入力領域の形および位置はこれに限らない。また、横方向入力領域Xaと縦方向入力領域Yaのうちのいずれか一方が存在しない形態であってもよい。
図16は、横方向入力領域Xaとして、タッチパネル13のY軸の負方向の端部から、Y軸の正方向に向かって定めた幅XaYの領域を定め、縦方向入力領域Yaとして、タッチパネル13のX軸の負方向の端部から、X軸の正方向に向かって定めた幅YaXの領域を定めた一例を示す図である。他の例では、横方向入力領域Xaが、タッチパネル13のY軸の正方向の端部とY軸の負方向の端部にそれぞれ設けられていても良い。同様に、縦方向入力領域Yaが、タッチパネル13のX軸の正方向の端部とX軸の負方向の端部にそれぞれ設けられていても良い。
図17は、自由方向入力領域Na、横方向入力領域Xa、及び縦方向入力領域Yaのさらに他の例である。
【0133】
なお、上述した実施形態では、横方向入力領域Xa内の任意の点を起点として、タッチ位置を画面右方向に移動させた場合にも、画面左方向に移動させた場合にも、X座標値の変化量に応じて、仮想カメラCaの水平移動位置計算が行われるが、他の実施形態では、
図18に示すように、タッチ位置をX軸の正方向に移動させた場合にのみ仮想カメラCaの水平移動位置計算が行われるような右方向入力領域XaPと、タッチ位置をX軸の負方向に移動させた場合にのみ仮想カメラCaの水平移動位置計算が行われるような左方向入力領域XaNを設けてもよい。同様に、タッチ位置をY軸の正方向に移動させた場合にのみ仮想カメラCaの垂直移動位置計算が行われるような下方向入力領域YaPと、タッチ位置をY軸の負方向に移動させた場合にのみ仮想カメラCaの垂直移動位置計算が行われるような上方向入力領域YaNを設けてもよい。
【0134】
また、上述した実施形態では、タッチパネル13のX軸の正方向の端部から、X軸の負方向に向かって定めた幅YaXの領域、すなわち、タッチパネル13の右側の領域を縦方向入力領域Yaとして固定的に定めていた。しかしながら、他の一実施形態では、これらの入力領域の位置や形を、ユーザが適宜に変更できるようにしてもよい。例えば、ユーザの利き腕を考慮して縦方向入力領域Yaを定めてもよい。より具体的には、上述したゲームプログラムに対して、ユーザの利き腕を設定する処理と設定された利き腕に応じて縦方向入力領域Yaを設定する処理とを追加してもよい。ユーザの利き腕に応じて縦方向入力領域Yaを設定するときには、例えば、ユーザが左利きである場合には、タッチパネル13のX軸の負方向の端部から、X軸の正方向に向かって定めた幅YaXの領域、すなわち、タッチパネル13の左側の領域を縦方向入力領域Yaとして設定するとよい。
【0135】
また、上述した実施形態では、ステップS27の後に行うべき処理(ステップS28、ステップS32、ステップS35)を、タッチ開始領域に基づいて判断しているが、他の実施形態では、ステップS27の後に行うべき処理(ステップS28、ステップS32、ステップS35)を、最新タッチ位置データに基づいて判断するようにしてもよい。
【0136】
また、上述した実施形態では、タッチ開始領域を示すタッチ開始領域データ64をメインメモリ32に記憶しているが、タッチ開始領域を示すタッチ開始領域データ64を記憶する代わりに、タッチ開始位置(すなわちスライド操作の起点)を示すタッチ位置データをメインメモリ32に記憶するようにしてもよい。この場合、ステップS27においてCPU31は、このようにしてメインメモリ32に記憶したタッチ位置データを参照して、タッチ開始位置がいずれの入力領域に属していたかを判定すればよい。
【0137】
なお、本実施形態では、
図7Aに示すようにユーザが自由方向入力領域NaでX軸の負方向XNにタッチ位置を変化させると、
図7Bに示すように、時計回り方向XdNに仮想カメラCaを移動させているが、他の実施例では、ユーザが自由方向入力領域NaでX軸の負方向XNにタッチ位置を変化させると、反時計回り方向XdPに仮想カメラCaを移動させるようにしてもよい。また、本実施形態では、
図7Bに示すように、仮想カメラCaが注視点Gpを中心として回転移動するが、他の実施例では、仮想カメラCaが直線的に移動(例えば、仮想空間におけるZ軸に対して平行移動)するようにしてもよい。
【0138】
なお、本実施形態では、
図8Aに示すようにユーザが自由方向入力領域NaでY軸の正方向YPにタッチ位置を変化させると、
図8Bに示すように、反時計回り方向YdPに仮想カメラCaを移動させているが、他の実施例では、ユーザが自由方向入力領域NaでY軸の正方向YPにタッチ位置を変化させると、時計回り方向YdNに仮想カメラCaを移動させるようにしてもよい。また、本実施形態では、
図8Bに示すように、仮想カメラCaが注視点Gpを中心として回転移動するが、他の実施例では、仮想カメラCaが直線的に移動(例えば、仮想空間におけるY軸に対して平行移動)するようにしてもよい。
【0139】
また、上述した実施形態では、タッチパネル13におけるタッチ位置に応じて仮想カメラCaを移動させるものとした。しかしながら、タッチ位置に基づく制御対象は、仮想カメラCaに限らない。例えば、他の一実施形態では、仮想カメラCaではなく、仮想空間における任意のオブジェクトをタッチパネル13におけるタッチ位置に応じて移動させてもよい。
【0140】
また、上述した実施形態では、タッチパネル13上におけるタッチ位置の変化量(ΔX、ΔY)に基づいて所定の情報処理(仮想カメラCaの移動処理)を行っているが、他の実施例では、タッチパネル13上におけるタッチ位置の変化方向(すなわち、ΔY/ΔX)を用いて所定の情報処理を行ってもよい。例えば、ユーザが自由方向入力領域Naで任意の方向(例えば
図9のXY)に沿ってタッチ位置を変化させた場合には、当該方向(XY)に基づいて情報処理を行い、ユーザが横方向入力領域Xaで任意の方向(例えば
図11のKsX)に沿ってタッチ位置を変化させた場合には、当該方向(KsX)をタッチパネル13上におけるX軸に沿った方向へ補正した方向(
図11のXP1)に基づいて情報処理を行い、ユーザが縦方向入力領域Yaで任意の方向(
図12のKsY)に沿ってタッチ位置を変化させた場合には、当該方向(KsY)をタッチパネル13上におけるY軸に沿った方向へ補正した方向(
図12のYP1)に基づいて情報処理を行ってもよい。
【0141】
また、上述した実施形態では、タッチパネル13上におけるタッチ位置の変化量(すなわち、現在のタッチ位置とその直前に検出されたタッチ位置との差)に基づいて所定の情報処理(仮想カメラCaの移動処理)を行っているが、他の実施例では、タッチパネル13上における所定位置(例えば、最初のタッチ位置、原点、所定の固定位置、前回処理時のタッチ位置、等)と現在のタッチ位置との差に基づいて所定の情報処理を行ってもよい。さらには、タッチパネル13上における所定位置(例えば、最初のタッチ位置、原点、所定の固定位置、前回処理時のタッチ位置、等)から見た現在のタッチ位置の方向に基づいて所定の情報処理を行ってもよい。
【0142】
また、上述した実施形態では、タッチパネル13上におけるタッチ位置の変化量(ΔX、ΔY)に基づいて仮想カメラCaを制御する例を説明したが、他の実施形態では、タッチパネル13上におけるタッチ位置と所定の基準位置(原点もしくは他の任意の位置)との差に基づいて仮想カメラCaを制御してもよい。例えば、現在のタッチ位置を(Tx,Ty)とし、基準位置を(Rx,Ry)としたとき、現在のタッチ位置が自由方向入力領域Naに位置する場合には、TxとRxの差に応じた速度で仮想カメラCaを仮想空間における水平面に沿って移動させる処理と、TyとRyの差に応じた速度で仮想カメラCaを仮想空間における鉛直面に沿って移動させる処理の両方を行い、現在のタッチ位置が横方向入力領域Xaに位置する場合には前者の処理のみを行い、現在のタッチ位置が縦方向入力領域Yaに位置する場合には後者の処理のみを行うようにしてもよい。
【0143】
また、上述した実施形態では、仮想カメラCaに基づいて生成されたゲーム画像を上側LCD22に表示しているが、他の実施形態では、仮想カメラCaに基づいて生成されたゲーム画像を下側LCD12に表示するようにしてもよい。
【0144】
また、上述した実施形態では、タッチパネル13に対するユーザのタッチ位置を示すタッチ位置データ(2次元座標データ)に基づいて仮想カメラCaを制御しているが、本発明は、タッチパネル13に限らず、ユーザによって指示された画面上もしくは入力面上の位置(指示位置)を2次元座標値として検出可能な任意のポインティングデバイスを利用する場合にも適用できる。このようなポインティングデバイスの例として、マウス、タッチパッド、トラックボール等が挙げられる。例えば、マウスを利用する場合には、ユーザがマウス上のボタンを押下しているときの画面上のポインタの位置が、前述のタッチ位置に相当し、ユーザがマウス上のボタンを押下したままポインタを移動させる操作が、前述のスライド操作に相当し、ユーザがマウス上のボタンの押下を開始した時点のポインタの位置が、スライド操作の起点に相当する。
【0145】
また、本発明は、ユーザによって指示された3次元空間(現実空間または仮想空間)内の任意の点を3次元座標値として検出可能なポインティングデバイスを利用する場合にも適用可能である。このような3次元空間における任意の位置を指示可能なポインティングデバイスとしては、例えば、加速度センサーのようなモーションセンサーを用いたものや、カメラを用いたモーションキャプチャー技術を用いたものや、磁気センサーを用いたものなど、公知の種々のポインティングデバイスを採用することができる。このような3次元空間における任意の位置を指示可能なポインティングデバイスを用いた変形例の一つについて、
図19A〜
図19Dを参照して説明する。なお、この変形例では、ユーザが手に持ったコントローラの位置が、3次元の指示位置として入力されるものとする。なお、コントローラ上に設けられた所定のボタンが押されている間のみ、当該コントローラの位置が3次元の指示位置として入力されるものであってもよい。
【0146】
ユーザが
図19Aに斜線で示した3次元領域Nv内で(もしくは、この3次元領域Nv内の任意の位置を起点として)指示位置を変化させると、その変化量(ΔX、ΔY、ΔZ)に基づいて所定の情報処理(例えば、ΔXに基づく第1の情報処理と、ΔYに基づく第2の情報処理と、ΔZに基づく第3の情報処理)が行われる。
【0147】
ユーザが
図19Bに斜線で示した3次元領域Zvr内で(もしくは、この3次元領域Zvr内の任意の位置を起点として)指示位置を変化させると、その変化量(ΔX、ΔY、ΔZ)のうちのΔZのみに基づいて所定の情報処理(例えば、ΔZに基づく第3の情報処理)が行われる。なお、他の変形例として、ユーザが
図19Bに斜線で示した3次元領域Zvr内で(もしくは、この3次元領域Zvr内の任意の位置を起点として)指示位置を変化させると、その変化量(ΔX、ΔY、ΔZ)のうちのΔYとΔZのみに基づいて所定の情報処理(例えば、ΔYに基づく第2の情報処理と、ΔZに基づく第3の情報処理)が行われてもよい。
【0148】
ユーザが
図19Cに斜線で示した3次元領域Xv内で(もしくは、この3次元領域Xv内の任意の位置を起点として)指示位置を変化させると、その変化量(ΔX、ΔY、ΔZ)のうちのΔXのみに基づいて所定の情報処理(例えば、ΔXに基づく第1の情報処理)が行われる。なお、他の変形例として、ユーザが
図19Cに斜線で示した3次元領域Xv内で(もしくは、この3次元領域Xv内の任意の位置を起点として)指示位置を変化させると、その変化量(ΔX、ΔY、ΔZ)のうちのΔXとΔYのみに基づいて所定の情報処理(例えば、ΔXに基づく第1の情報処理と、ΔYに基づく第2の情報処理)が行われてもよい。
【0149】
ユーザが
図19Dに斜線で示した3次元領域Zvl内で(もしくは、この3次元領域Zvl内の任意の位置を起点として)指示位置を変化させると、その変化量(ΔX、ΔY、ΔZ)のうちのΔZのみに基づいて所定の情報処理(例えば、ΔZに基づく第3の情報処理)が行われる。なお、他の変形例として、ユーザが
図19Dに斜線で示した3次元領域Zvl内で(もしくは、この3次元領域Zvl内の任意の位置を起点として)指示位置を変化させると、その変化量(ΔX、ΔY、ΔZ)のうちのΔYとΔZのみに基づいて所定の情報処理(例えば、ΔYに基づく第2の情報処理と、ΔZに基づく第3の情報処理)が行われてもよい。
【0150】
なお、以上では、携帯型のゲーム装置1を用いる例を説明したが、本発明はこれに限らず、据え置き型のゲーム装置や、携帯電話や、一般的なパーソナルコンピュータ等の任意の情報処理装置にも適用可能である。また、本発明はゲームプログラムに限らず、ポインティングデバイスからの入力に基づいて所定の情報処理を行う任意の情報処理プログラムにも適用可能である。
【0151】
また、上述したゲーム装置1の形状や、それに設けられている各種操作ボタン14やタッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述したゲーム処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【0152】
また、上述した実施形態では、上記のようなゲーム処理を1台のゲーム装置1で実現しているが、これは必須ではなく、複数の情報処理装置が協働することによって上記のようなゲーム処理を実現してもよい。例えば、第1の情報処理装置が、ポインティングデバイスによって指示された指示座標を受け付ける役割を担い、第2の情報処理装置が、第1の情報処理装置によって受け付けられた指示座標に基づいて仮想カメラCaを制御する役割を担うようにしてもよい。この場合、これらの複数の情報処理装置が、全体として、本発明の情報処理装置に相当する。
【0153】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。