図1を参照して、この発明の実施例である情報処理装置10は、一例としてゲーム装置の形態で実現される。このゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、下側ハウジング16bには、音抜き孔18が形成されるとともに、操作スイッチ20(20a,20b,20c,20d,20e,20Lおよび20R)が設けられる。
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
操作スイッチないし操作キー20は、方向指示スイッチ(十字スイッチ)20a,スタートスイッチ20b、セレクトスイッチ20c、動作スイッチ(Aボタン)20d、動作スイッチ(Bボタン)20e、動作スイッチ(Lボタン)20Lおよび動作スイッチ(Rボタン)20Rを含む。スイッチ20a,20bおよび20cは、下側ハウジング16bの一方主面において、LCD14の左側に配置される。また、スイッチ20dおよび20eは、下側ハウジング16bの一方主面において、LCD14の右側に配置される。さらに、スイッチ20Lおよびスイッチ20Rは、それぞれ、下側ハウジング16bの上端(天面)の一部であり上側ハウジング16aとの連結部以外の部分において、当該連結部を挟むようにして左右に配置される。
方向指示スイッチ(方向キー)20aは、ディジタルジョイスティックとして機能し、操作対象の移動方向を指示するために用いられる。つまり、4つの押圧部の1つを操作することによって、プレイヤ(ユーザ)によって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)やカーソル等を当該操作した部分に対応する方向に移動させることができる。
スタートスイッチ20bは、プッシュボタンで構成され、ゲームの開始(再開)、や一時停止等のために用いられる。セレクトスイッチ20cは、プッシュボタンで構成され、ゲームモードの選択等のために用いられる。
動作スイッチ(動作キー)20dすなわちAボタンは、プッシュボタンで構成され、移動方向以外の動作の指示のために用いられる。たとえばプレイヤキャラクタに、打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプする、切る等の任意の動作(アクション)をさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。また、メニュー選択の際には、カーソルの表示された、すなわち、選択状態にあるメニュー項目を決定して当該項目に対応する動作ないし処理を実行させることが可能である。
動作スイッチ20eすなわちBボタンは、プッシュボタンで構成され、たとえばセレクトスイッチ20cで選択したゲームモードの変更やAボタン20dで決定したアクションの取り消し等のために用いられる。また、Bボタン20eも、Aボタン20dと同様に、プレイヤキャラクタの動作を指示するための動作キーとして使用され得る。
動作スイッチ20L(Lボタン)および動作スイッチ20R(Rボタン)は、プッシュボタンで構成され、Lボタン20LおよびRボタン20Rは、上述の各動作スイッチ20d、20eと同じまたは別の操作に用いることができ、また、上述の各動作スイッチ20d、20eの補助的な操作に用いることができる。なお、上述のプッシュボタンは、キートップを押し下げることにより作動するスイッチとして構成されてよい。したがって、各スイッチを押し下げるという簡単な操作によって、動作指示等を行うことができる。
また、LCD14の上面には、タッチパネル22が装着される。タッチパネル22としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル22は、その上面をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり、撫でたり、触れたり、叩いたりすることによって操作すると、スティック24等によって指示された(つまり、タッチ入力された)位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル22の検出精度(操作面)も表示画面に対応して256dot×192dotとしてある。ただし、図1では、タッチパネル22を分かり易く示すために、タッチパネル22をLCD14と異なる大きさで示してあるが、LCD14の表示画面の大きさとタッチパネル22の操作面の大きさとは同じ大きさである。なお、タッチパネル22の検出精度は、他の実施例では、表示画面の解像度よりも低くてもよく、高くてもよい。
LCD12およびLCD14には異なるゲーム画面などの表示画面が表示され得る。また、たとえば、2つの表示領域(LCD12およびLCD14)を合わせて1つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物(敵キャラクタ)を表示するといったことも可能である。プレイヤはスティック24等でタッチパネル22を操作することにより、LCD14の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムオブジェクト、文字情報、アイコン等のオブジェクト画像を指示したり、コマンドを選択したり、または座標を入力したりすることができる。
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル22が設けられるので、2画面ないし2表示領域(12,14)と2系統の操作部(20,22)とを有する構成になっている。
また、この実施例では、スティック24は、たとえば上側ハウジング16aの側面(右側面)近傍に設けられる収納部(穴ないし凹部)26に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部26を設ける必要もない。
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)28を含む。このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは底面(下端)に設けられる挿入口30から挿入される。図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図2参照)がメモリカード28にアクセス可能となる。
なお、図1では表現できないが、下側ハウジング16bの音抜き孔18と対応する位置であり、この下側ハウジング16bの内部には、スピーカ32(図2参照)が設けられる。
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、電源スイッチ、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなども設けられる。
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介してコネクタ46に接続されるとともに、RAM48、第1のグラフィック処理ユニット(GPU)50、第2のGPU52、入出力インターフェイス回路(以下、「I/F回路」という。)54、LCDコントローラ60およびワイヤレス通信部64に接続される。
コネコタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ46と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア42は、ROM28aおよびRAM28bにアクセスすることができるのである。
ROM28aは、ゲーム装置10で実行すべきゲーム(仮想ゲーム)のためのゲームプログラム、画像(キャラクタ画像、オブジェクト画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像、カーソル画像など)データおよびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。このゲームプログラムはこの発明にかかるオブジェクト移動制御プログラムを含む。RAM(バックアップRAM)28bは、そのゲームの途中データや結果データを記憶(セーブ)する。
また、ゲーム以外のアプリケーションが実行される場合、メモリカード28のROM28aには、当該アプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データ等が記憶される。また、必要に応じて音(音楽)データも記憶されてよい。
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード28のROM28aに記憶されたプログラム、画像データおよび音データ等をRAM48にロードし、ロードしたプログラムに従って処理を実行する。また、CPUコア42は、ゲーム等の進行に応じて発生または取得されるデータ(ゲームデータやフラグデータ等)をRAM48に記憶しつつ処理を実行する。
なお、プログラム、画像データおよび音データ等は、ROM28aから一度に全部または必要に応じて部分的にかつ順次的に読み出され、RAM48に記憶される。ただし、この実施例のように、固定的にプログラムおよびデータを記憶している記憶媒体をCPUコア42に直接接続可能なゲーム装置10の場合には、CPUコア42が記憶媒体に直接アクセスできるので、RAM48にプログラムやデータを転送して保持しなくてよい。
GPU50およびGPU52は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア42からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従ってゲーム画像データを生成する。ただし、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU50およびGPU52のそれぞれに与える。
また、GPU50には、第1のビデオRAM(以下、「VRAM」という。)56が接続され、GPU52には、第2のVRAM58が接続される。GPU50およびGPU52が作画コマンドを実行するにあたって必要なデータ(画像データ:キャラクタデータやテクスチャ等のデータ)は、GPU50およびGPU52が、それぞれ、第1のVRAM56および第2のVRAM58にアクセスして取得する。ただし、CPUコア42は、描画に必要な画像データをRAM48から読み出し、GPU50およびGPU52を介して第1のVRAM56および第2のVRAM58に書き込む。GPU50はVRAM56にアクセスして表示のためのゲーム画像データを作成し、その画像データをVRAM56の描画バッファに記憶する。GPU52はVRAM58にアクセスして描画のためのゲーム画像データを作成し、その画像データをVRAM58の描画バッファに記憶する。描画バッファとしてはフレームバッファまたはラインバッファ等が採用されてよい。
VRAM56およびVRAM58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含み、レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ60は、レジスタ62のデータ値が「0」である場合には、GPU50によって作成されたゲーム画像データをLCD12に出力し、GPU52によって作成されたゲーム画像データをLCD14に出力する。一方、レジスタ62のデータ値が「1」である場合には、LCDコントローラ60は、GPU50によって作成されたゲーム画像データをLCD14に出力し、GPU52によって作成されたゲーム画像データをLCD12に出力する。
なお、LCDコントローラ60は、VRAM56およびVRAM58から直接画像データを読み出すことができるし、あるいはGPU50およびGPU52を介してVRAM56およびVRAM58から画像データを読み出すこともできる。
また、VRAM56およびVRAM58はRAM48に設けられてもよいし、あるいはその描画バッファおよびZバッファがRAM48に設けられてもよい。
I/F回路54には、操作スイッチ20,タッチパネル22およびスピーカ32が接続される。ここで、操作スイッチ20は、上述したスイッチ20a,20b,20c,20d,20e,20Lおよび20Rであり、操作スイッチ20が操作されると、対応する操作信号(操作データ)がI/F回路54を介してCPUコア42に入力される。また、タッチパネル22から出力される操作データ(座標データ)がI/F回路54を介してCPUコア42に入力される。さらに、CPUコア42は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM48から読み出し、I/F回路54を介してスピーカ32からその音を出力する。
ワイヤレス通信部64は他のゲーム装置10との間で無線によってデータを送受信するための通信手段である。すなわち、ワイヤレス通信部64は、相手方への通信データを無線信号に変調してアンテナから送信し、また、相手方のゲーム装置10からの無線信号を同じアンテナで受信して通信データに復調する。
この実施例では、オブジェクトの存在する仮想ゲーム世界(仮想ゲーム空間)を異なる表示尺度で描画または表現することによって、表示範囲の異なる少なくとも2つの画面が表示される。縮尺の小さいすなわち表示範囲の広い画面に対してタッチパネル22を用いて入力された軌跡を取得し、縮尺の大きいすなわち表示範囲の狭い画面でオブジェクトが当該軌跡に従って移動される。
なお、この実施例では、ゲーム装置10でゲームが実行される場合を説明するが、本発明にかかる情報処理装置10で実行されるアプリケーションはゲームに限られないことに留意されたい。つまり、本発明は仮想空間内で入力軌跡に沿ってオブジェクトを移動させるような種々のアプリケーションに適用可能である。
具体的には、図3には、オブジェクトが入力軌跡に従って移動される前の初期画面が示されている。図3の下画面から分かるように、この実施例の仮想ゲーム世界は3次元である。LCD14に表示される下画面には、仮想3次元ゲーム空間のうちプレイヤキャラクタ70の存在位置を含む第1の領域が表示される。この下画面に表示される画像は仮想3次元ゲーム空間を3次元コンピュータグラフィクスで描画した3次元画像である。つまり、仮想3次元ゲーム世界を3次元的・立体的に見せるように描画された画像である。たとえば、プレイヤキャラクタ70が画面中心に表示されるように、仮想カメラの注視点の座標は仮想3次元ゲーム空間におけるプレイヤキャラクタ70の座標に設定されている。また、プレイヤキャラクタ70およびその周辺のゲーム空間を俯瞰するように、仮想カメラの位置はプレイヤキャラクタ70よりも高い位置に設定されている。地形や敵キャラクタ(図示しない)等のようなプレイヤキャラクタ70の周囲の状況を分かり易く詳細に表示したりプレイヤキャラクタ70を細かく動作させたりすることが可能なように、3次元ゲーム画面に表示される第1の領域は比較的狭く設定される。この3次元ゲーム画面はプレイヤがプレイ中に主に見て様々な操作を行う際に多用するメイン画面になる。
一方、LCD12に表示される上画面には、仮想3次元ゲーム空間の地図画面が表示される。地図画面には仮想ゲーム空間の全体的なあるいは広範囲の地形、進路などの情報が表現される。この地図画面は仮想3次元ゲーム空間を真上から見た2次元平面地図を示す2次元画像である。つまり、奥行き方向ないし高さ方向の情報のない平面画像である。地図画面に表示される範囲は、ゲーム空間の全体であってもよいし、一部であってもよい。ただし、ゲーム空間の広い範囲の情報を提供することが可能なように、地図画面にはプレイ中のメイン画面である3次元ゲーム画面よりも広い範囲を表示する。地図画面では、プレイヤキャラクタ70がそのシンボル画像70aによって表示され、このシンボル70aによってゲーム空間におけるプレイヤキャラクタ70の存在位置が示される。
プレイヤキャラクタ70はアイテムを装備することが可能であり、プレイヤキャラクタ70ではなく、アイテムオブジェクト72が入力軌跡に基づく移動制御の対象である。なお、アイテムオブジェクト72は、図3では表示されず、移動が開始される段階になって画面に表示される(図6参照)。プレイキャラクタ70の装備しているアイテムオブジェクト72の種類が軌跡による操作可能なタイプであれば、当該アイテムオブジェクト72を移動によって利用することが可能となる。さらに、この実施例では、プレイヤによる明示的な操作をアイテムオブジェクト72の移動利用のための条件としている。つまり、アイテム利用ボタン(たとえばLボタン20L)が操作されることが条件である。なお、他の実施例では、たとえば、プレイヤキャラクタ70がゲーム空間の他のオブジェクトとの関係において所定の位置に存在したこと、プレイヤキャラクタ70のレベル、ライフなどの特性ないしステータスが所定値になったこと等のような、ゲームの進行状況に応じて自動的に(利用のための特定の操作無しに)利用可能になるような条件を設定してよい。
この実施例では、装備アイテムが軌跡操作可能な種類であり、かつ、Lボタン20Lが操作されたときには、表示画面が切り替えられる。すなわち、図4に示すように、それまで下画面に表示されていた3次元ゲーム画面は上画面に表示され、タッチパネル22を用いて軌跡入力を行うことができる下画面に、2次元地図画面が表示される。このように、3次元ゲーム画面で示される第1領域よりも広い範囲の第2領域を示す2次元地図画面がタッチパネル22の重ねられた下画面に表示されるので、プレイヤが仮想ゲーム空間のより広い範囲でアイテムオブジェクト72の移動指示のための操作(軌跡の入力)を行うことが可能になる。したがって、アイテムオブジェクト72をより広い範囲で入力軌跡に沿って移動させることが可能になる。
なお、この実施例では、図4の地図画面の表示範囲の座標と仮想3次元ゲーム空間の座標とはたとえば1対10の比率で対応付けられる。また、地図画面の中央がプレイヤキャラクタ70のシンボル70aの位置と一致するように、その表示範囲が設定されるので、プレイヤは画面切替後に地図画面におけるプレイヤキャラクタ70のシンボル70aの位置を探すことなく画面中央部から簡単に軌跡入力操作を始めることができる。
また、この実施例では、図4の地図画面の表示範囲は、図3の地図画面の表示範囲よりも小さく設定されており(たとえば2対3の比率)、したがって、プレイヤキャラクタ70の周辺領域が図3の地図画面よりも拡大されて表示される。このように入力を受け付ける際の地図画面の表示範囲を小さくすることによって、プレイヤにより細かく軌跡を入力させることが可能になるし、また、アイテムオブジェクト72の移動可能な範囲を、ゲーム世界全体ではなく所定の範囲(ただし、メインの3次元ゲーム画面よりも広い範囲。)に制限することができる。なお、他の実施例では、この画面切替の際には、下画面には、図3の地図画面をそのまま表示するようにしてもよいし、あるいは、図3の地図画面と同じ縮尺でプレイヤキャラクタ70の位置を中心に設定した地図画面を表示するようにしてもよい。
続いて、図5に示すように、プレイヤは、この図4の下画面に表示された2次元地図画すなわちタッチパネル22に対してスティック24等によって連続的なタッチ操作を行うことによって、アイテムオブジェクト72を移動させるための軌跡を入力することができる。入力軌跡の取得(記憶)は、この実施例では、タッチ入力が開始されたとき、すなわち、タッチオフの状態(タッチパネル22への入力が無い状態)からタッチオン状態(タッチパネル22への入力が有る状態)になったことが検出されたときに開始される。プレイヤは、タッチオン状態のままタッチ位置を移動させることによって、軌跡を入力できる。2次元地図画面では、取得された座標に対応する表示位置にドット画像が描画されるので、タッチ位置がスライドされると、各ドットが連続することによって入力軌跡が描かれる。
このように、仮想ゲーム世界のより広い範囲の情報が2次元で簡潔に表示された地図画面に対する入力軌跡を取得するようにしたので、プレイヤに広範囲にわたる軌跡の入力操作を簡単に行わせることができる。
なお、タッチオン継続中にアイテム利用ボタン20Lの操作がオフにされたことが検出された場合には、それまでに取得された入力軌跡はキャンセルされ、描画された軌跡も2次元画面から消去される。
そして、この実施例では、タッチオフされたことが検出されたことによって入力軌跡の取得が終了される。つまり、タッチオンからタッチオフまでの連続タッチ入力によって、アイテムオブジェクト72を移動させるための軌跡を入力することができる。
ただし、この実施例では、入力軌跡として記憶可能な座標の数に制限を設けている。つまり、入力軌跡として記憶した座標数が一定値(たとえば100)を超えたと判定される場合には、タッチオンが継続されていても検出座標を入力軌跡として記憶しない。この座標数の制限値は、アイテムオブジェクト72の種類、能力などの特性やプレイヤキャラクタ70の特性等に応じて異なる値に設定されてもよい。この記憶可能な座標数によって、結果的にアイテムオブジェクト72の移動可能な距離に制限を設けることができる。なお、座標数が閾値を超えた後は、タッチ入力が継続されても地図画面にはそれ以上軌跡が描画されない。これによって、プレイヤに入力可能な座標数を超えたことを知らせることができる。
さらにまた、この実施例では、入力軌跡として前回記憶した座標と検出座標との距離が一定距離を超えていないと判定される場合には、当該検出座標を入力軌跡として記憶しない。つまり、前回記憶した座標から一定距離以上移動していない場合には、軌跡の入力とは見なさないようにしている。これによって、手ぶれなどによって検出されてしまった座標を入力軌跡の座標から排除することができるので、プレイヤの意図する入力軌跡を適切に取得することができる。
タッチオン状態からタッチオフ状態になったことが検出されると、入力軌跡に従ったアイテムオブジェクト72の移動が開始される。つまり、この実施例では、タッチオフされることが、入力軌跡取得終了の条件でもあり、アイテムオブジェクト72の移動を起こさせるための条件でもある。このように、タッチパネル22に対してタッチ入力を開始し(タッチオン)、連続的な入力によって軌跡を入力して、タッチ入力を終了する(タッチオフ)という、一連の入力操作を行うことによって、プレイヤはアイテムオブジェクト72の移動を簡単かつ直感的に制御することができる。
なお、他の実施例では、たとえばタッチオフ後に所定の操作スイッチ20(アイテム利用ボタン20Lを除く。)が操作されたことを、アイテムオブジェクト72の移動条件として設定してもよい。また、たとえば、タッチオン継続中に所定の操作スイッチ20の操作が検出されたことを移動条件としてもよく、この場合、当該所定の操作スイッチ20の操作が検出されたときに入力軌跡の取得を終了する。
タッチオフが検出されると、アイテムオブジェクト72の移動を表示する前に、再び表示画面が切り替えられる。すなわち、図6に示すように、上画面には2次元地図画面が表示され、下画面にはメインの3次元ゲーム画面が表示される。3次元ゲーム画面では、プレイヤキャラクタ70に隣接する位置にアイテムオブジェクト72が表示される。一方、2次元地図画面では、アイテムオブジェクト72のシンボル72aがプレイヤキャラクタ70のシンボル70aに隣接する位置に表示される。
なお、上画面の2次元地図画面の表示範囲は、元の図3の地図画面の表示範囲に戻され、したがって、軌跡を入力したときの図5の地図画面よりも広い範囲が表示される。また、プレイヤキャラクタ70のシンボル70aの位置ではなく所定の位置が画面中心に設定される。また、地図画面では入力軌跡も表示され、これによって、アイテムオブジェクト72がこれから移動しようとする経路が示される。なお、図6の下画面の破線矢印はアイテムオブジェクト72の今後の移動経路を分かり易く表現するためのものであり、実際の画面では表示されない。
そして、図7に示すように、アイテムオブジェクト72が入力軌跡に沿って移動する場面を示す3次元ゲーム画面が下画面に表示される。このように、仮想ゲーム世界を3次元で表現した3次元ゲーム画面おいてアイテムオブジェクト72の移動を表示するようにしたので、アイテムオブジェクト72の移動シーンをより詳細に表示することができる。
この仮想3次元空間におけるアイテムオブジェクト72の移動ルートは、地図画面(LCD14の表示画面すなわちタッチパネル22の操作面)の2次元座標系の座標で表現された入力軌跡を、仮想3次元空間の3次元座標系の座標に座標変換することによって算出される。
なお、図7の3次元ゲーム画面では、注視点はアイテムオブジェクト72の位置に設定される。アイテムオブジェクト72が入力軌跡に従って移動すると、注視点およびカメラ位置もその移動に従って移動される。また、カメラ位置は、図6の場合よりも注視点に近い位置に設定されている。これによって、アイテムオブジェクト72の移動シーンを画面内に常にとらえつつ、より詳細に表示することができる。また、アイテムオブジェクト72の移動に従って、上画面でもそのシンボル72aの位置が移動され、2次元地図画面に表示された入力軌跡のうち移動済みの部分は消去される。なお、2次元地図画面の視点すなわち表示範囲は固定されており、アイテムオブジェクト72の移動に従って移動しない。このようにして、図8に示すようにアイテムオブジェクト72が入力軌跡の最後の座標に到達するまで、入力軌跡に従った移動を示す3次元ゲーム画面および2次元地図画面が表示される。
入力軌跡に基づくアイテムオブジェクト72の移動が終了すると、図9に示すように、下画面の3次元ゲーム画面は再びプレイヤキャラクタ70に合わせて生成される。つまり、たとえば、注視点が再びプレイヤキャラクタ70の位置に設定され、カメラ位置も注視点に近い位置から元の位置に戻される。また、この実施例では、アイテムオブジェクト72は、たとえば移動終了後に爆発してその周囲の領域の地形や敵キャラクタ等に影響を与えることの可能なオブジェクトであり、移動終了後に消滅するので、上画面の2次元地図画面からそのシンボル72aは消去される。
図10には、ゲーム装置10のメモリマップの一例が示される。メモリマップはプログラム記憶領域80およびデータ記憶領域82を含む。なお、図10にはメモリマップの一部のみが示されており、ゲームやアプリケーションの進行に必要な各種プログラムおよびデータが記憶される。
タッチ入力検出プログラム記憶領域84には、タッチパネル22からの操作データ(タッチ入力データ)を検出するためのプログラムが記憶される。タッチ入力データは、タッチ位置の座標データを含み、たとえば一定時間間隔で(たとえば1表示フレーム(1/60秒)ごとに)検出される。
入力軌跡取得プログラム記憶領域86には、アイテムオブジェクト72を移動させるための入力軌跡を取得するためのプログラムが記憶されている。この実施例では、タッチオンからタッチオフまで連続的に検出される座標を入力軌跡の座標として取得する。ただし、上述のように、入力軌跡として記憶される座標数には上限値が設定されており、座標カウンタによって記憶した数を計測し、座標カウンタ値が所定の閾値を超えた場合にはそれ以降の検出座標は入力軌跡としては記憶されない。また、手ぶれ対策として、前回記憶された座標から所定距離よりも移動していない検出座標は記憶されない。
また、この実施例では、仮想ゲーム世界は3次元であり、メインのゲーム画面は3次元画像で表示されるので、3次元仮想ゲーム世界においてアイテムオブジェクト72を入力軌跡に沿って移動させ、その移動を示す3次元画像を生成する必要がある。しかし、入力軌跡として記憶される座標は、タッチパネル22の操作面における2次元座標であり、すなわち、LCD14に表示される2次元平面地図の2次元座標系に対応付けられた座標である。したがって、この入力軌跡取得プログラムは、入力軌跡を座標変換して、仮想ゲーム世界の3次元座標系における軌跡を算出する。
図11に座標変換を説明するための図解図が示される。この図11に示すように、LCD14の表示画面には、仮想ゲーム世界の2次元平面地図画像における所定の広さの表示範囲内が表示される。この実施例では、入力軌跡を取得する際に表示される2次元地図画面のXY座標系の基準長さとタッチパネル22の操作面のXY座標系の基準長さとは同一に設定される。ただし、地図画面内にプレイヤキャラクタ70を常にとらえておくために、表示範囲の原点はプレイヤキャラクタ70の位置に応じて移動される。したがって、タッチパネル22の検出座標を、2次元地図画像における座標に変換する必要がある。つまり、2次元地図画像における表示範囲の原点の座標を(P,Q)とすると、タッチ座標(Xa,Ya)に対応する2次元地図画像における座標は、(Xa−P,Ya−Q)である。PおよびQは変数であり、プレイヤキャラクタ70の位置および表示範囲の広さに応じて設定される。また、この2次元地図画像におけるタッチ座標(Xa−P,Ya−Q)が、軌跡を示すドット画像の描画される座標となる。
さらに、入力軌跡を取得する際に表示される2次元地図画面のXY座標系の基準長さと仮想3次元世界のxyz座標系の基準長さとは所定の係数k(k>1)で対応付けられる。この実施例のように、両者がたとえば1対10で対応付けられる場合、係数kの値は10に設定される。また、2次元地図画面のX軸およびY軸は、仮想3次元世界のx軸およびz軸とそれぞれ同一方向に設定されている。つまり、タッチ座標(Xa,Ya)に対応する仮想3次元世界における座標は、仮想3次元世界のxz平面上の座標となる。したがって、変換座標(xa,0,za)は、((Xa−P)×k,0,(Y−Q)×k)によって算出される。
また、仮想3次元世界では、フィールド(地面)などの地形オブジェクトが設けられ、当該地面上にプレイヤキャラクタ70やアイテムオブジェクト72等は配置される。仮想3次元世界の高さ方向の軸はy軸である。また、アイテムオブジェクト72の原点(基準位置)はアイテムオブジェクト72の最下点に設定される。したがって、アイテムオブジェクト72の仮想3次元世界における移動軌跡は、変換座標(xa,0,za)のy座標を地面上の座標に設定することで算出される。変換座標位置に対応する地面の高さ座標yaは仮想3次元世界のマップデータから取得することができる。したがって、アイテムオブジェクト72の仮想3次元世界における移動軌跡上の座標(xa,ya,za)を算出することができる。なお、アイテムオブジェクト72の原点がその最下点より上に設定される場合には当該原点までの高さを地面の高さyaに加算することによって、移動軌跡のy座標を算出する。
なお、この実施例では、上述のように所定の変換式に基づいてタッチ座標を座標変換するようにしている。しかし、他の実施例では、2次元地図画面が固定されている場合等のように座標変換が必要でない場合には、たとえばタッチ座標と仮想3次元ゲーム世界の座標とを対応付けたテーブルデータを予め記憶しておいて、当該データによって変換座標または移動軌跡座標を検出するようにしてもよい。
図10に戻って、プレイヤキャラクタ制御プログラム記憶領域88には、プレイヤキャラクタ70の動作や状態を制御するためのプログラムが記憶されている。このプログラムによって、たとえば、プレイヤキャラクタ70の仮想3次元世界における座標を示す位置データ、2次元地図画像におけるシンボル70aの座標を示す位置データ、プレイヤキャラクタ70の装備アイテムを指定するデータ等が設定および更新される。
アイテムオブジェクト制御プログラム記憶領域90には、アイテムオブジェクト72の動作や状態を制御するためのプログラムが記憶されている。このプログラムによって、たとえば、アイテムオブジェクト72の仮想3次元世界における座標を示す位置データ、2次元地図画像におけるシンボル72aの座標を示す位置データ、アイテムオブジェクト72の種類データ等が設定および更新される。アイテムオブジェクト72の仮想3次元世界における位置データの座標は、上述の座標変換によって算出された仮想3次元世界における移動軌跡上の座標に設定される。
画面表示制御プログラム記憶領域92には、画面の生成および表示を制御するためのプログラムが記憶されている。また、このプログラムによって、たとえば3次元ゲーム画面を生成するための注視点位置データおよびカメラ位置データが設定および更新される。また、LCD12とLCD14との間で3次元ゲーム画面および2次元地図画面の表示の切替が制御される。
画像データ記憶領域94には、プレイヤキャラクタ70、アイテムオブジェクト72、プレイヤキャラクタ70のシンボル70a、アイテムオブジェクト72のシンボル72a、地形オブジェクト、背景オブジェクト等を表示するための画像データが記憶されている。
マップデータ記憶領域96には、仮想3次元ゲーム世界のマップデータが記憶されている。マップデータは仮想3次元ゲーム世界の構成を示すデータであり、地形オブジェクトのような固定的に設けられるオブジェクト等の位置データや画像指定データ等を含む。アイテムオブジェクト72の仮想3次元世界における移動軌跡のy座標yaは、このマップデータに含まれる対応位置の地形オブジェクト(地面)のy座標から取得される。
2Dマップ画像データ記憶領域98には、仮想3次元ゲーム世界の2次元地図の画像データが記憶されている。この2次元地図は、仮想3次元ゲーム世界を真上から見た平面図である。この2次元地図画像から上述の2次元地図画面が生成されて表示される。1つの地図画像データで仮想3次元ゲーム世界の一部を示す場合には、複数の2次元地図画像データが記憶される。なお、この実施例では、予め2次元地図画像データを準備するようにしたが、他の実施例では、仮想3次元空間のマップデータからその2次元地図画面を生成するようにしてよい。
タッチ入力データ記憶領域100には、タッチ入力検出プログラムによって検出されるタッチ入力データが記憶される。タッチ入力データはタッチ入力の有無を示すデータおよび検出された座標データを含む。
座標カウンタ記憶領域102は、入力軌跡取得プログラムによって入力軌跡として記憶されるタッチ座標の数を計測するための変数が記憶される。
入力軌跡データ記憶領域104には、入力軌跡取得プログラムによって取得された入力軌跡データが記憶される。入力軌跡データとしては、図12に示すように、座標カウンタ値に対応付けて、タッチ座標(Xa,Ya)および変換座標(xa,0,za)等が記憶されている。変換座標(xa,0,za)は、上述のように、((Xa−P)×k,0,(Y−Q)×k)で算出される。アイテムオブジェクト72の仮想3次元世界における移動軌跡のx座標およびz座標は、この入力軌跡データの変換座標から取得される。また、タッチ座標(Xa,Ya)に対応する2次元地図画像における座標(Xa−P,Ya−Q)も座標カウンタに対応付けて記憶されてよい。
図10に戻って、プレイヤキャラクタ位置データ記憶領域106には、プレイヤキャラクタ70の仮想3次元ゲーム世界における位置座標、2次元マップ画像上のシンボル70aの位置座標等が記憶される。
アイテムオブジェクト位置データ記憶領域108には、アイテムオブジェクト72の仮想3次元ゲーム世界における位置座標、2次元マップ画像上のシンボル72aの位置座標等が記憶される。アイテムオブジェクト72の仮想3次元ゲーム世界における位置座標の初期値は、たとえば、表示される際のプレイヤキャラクタ70の位置座標に隣接する所定の位置座標が設定される。その後のアイテムオブジェクト72の位置座標は、入力軌跡データから算出された移動軌跡データの座標に設定され、次の座標カウンタ値に対応する座標に順次更新される。移動軌跡の座標(xa,ya,za)は、上述のように、変換座標(xa,0,za)と変換座標に対応する位置のマップデータのy座標yaとから算出される。シンボル72aの位置座標の初期値は、たとえばプレイヤキャラクタ70のシンボル70aに隣接する所定の位置座標が設定される。その後のシンボル72aの位置座標は、タッチ座標に対応する2次元地図画像上の座標(Xa−P,Ya−Q)に基づいて設定され、次の座標カウンタ値に対応する座標に順次更新される。
注視点データ記憶領域110には、3次元ゲーム画面を生成するための注視点の座標データが記憶される。注視点は基本的にはプレイヤキャラクタ70の位置座標に設定される。ただし、アイテムオブジェクト72の移動を表示する際には、アイテムオブジェクト72の位置座標に設定される。カメラ位置データ記憶領域112には、3次元ゲーム画面を生成するための仮想カメラの座標データが記憶される。仮想カメラの位置はたとえば注視点の移動に追従して移動される。アイテムオブジェクト72の移動を表示する際には、仮想カメラの位置は、プレイヤキャラクタ70を表示する場合よりも注視点との間の距離が短くなるように設定される。
図13および図14に、この実施例のゲーム装置10のアイテム利用処理における動作の一例が示される。なお、このアイテム利用処理は、メインのゲーム処理の一部であり、図示しない他のゲーム処理によってゲームが進行され、たとえば図3に示したように、LCD14には3次元ゲーム画面が表示され、LCD12には2次元地図画面が表示されている。なお、この図3の表示処理では、LCDコントローラ60のレジスタ62に初期値としての「0」が記憶されているものとし、つまり、CPUコア42は、GPU50を用いてVRAM56に生成した画面をLCD12に表示し、GPU52を用いてVRAM58に生成した画面をLCD14に表示するものとする。
図13の最初のステップS1で、CPUコア42は、アイテム利用ボタン20Lがオンであるか否かを判断する。具体的には、CPUコア42は、I/F回路54のバッファから操作スイッチ20からの操作データを取得して、当該操作データにLボタン20Lの操作有りを示すデータが含まれるか否かを判断する。このステップS1で“NO”であれば、プレイヤによってアイテム利用が指示されていないのでこのアイテム利用処理を終了する。
また、ステップS3で“YES”であれば、CPUコア42は、ステップS3でプレイヤキャラクタ70の装備アイテムの種類は軌跡操作可能なタイプあるか否かを判断する。プレイヤキャラクタ70の装備しているアイテムの種類を示すデータはデータ記憶領域82に記憶されている。このステップS3で“NO”であれば、装備アイテムを利用できないので、このアイテム利用処理を終了する。
一方、ステップS3で“YES”であれば、つまり、アイテムを利用できる場合には、CPUコア42は、ステップS5で座標カウンタをリセットし、座標カウンタ記憶領域102に初期値「0」を記憶する。なお、入力軌跡の座標はこの座標カウンタに対応付けて記憶されるので、このリセットによって、過去の処理で取得された入力軌跡をキャンセルすることが可能である。
また、ステップS7で、CPUコア42は第1表示切替処理を実行する。これによって、3次元ゲーム画面よりも広い範囲を示す2次元地図画面で軌跡を入力可能なように、表示画面を切り替える。この第1表示切替処理の動作の一例は図15に示される。
図15の最初のステップS51で、CPUコア42は、2次元地図画像の表示範囲の広さを現在(図3の上画面の地図画面)のたとえば2/3に縮小し、データ記憶領域82に記憶する。つまり、2次元地図画像の縮尺は現在の1.5倍に拡大される。
次に、ステップS53で、CPUコア42は、2次元地図画像の表示範囲の中心をプレイヤキャラクタ70のシンボル70aの位置座標に設定する。つまり、表示範囲の中心がプレイヤキャラクタ70のシンボル70aの位置に一致するように、表示範囲の原点の座標(P,Q)を設定し、データ記憶領域82に記憶する。シンボル70aの位置座標はプレイヤキャラクタ位置データ記憶領域106に記憶されている。
そして、ステップS55で、CPUコア42は、画像データ、2次元マップ画像データ、および先に設定した表示範囲のデータ等に基づいて、2次元地図画面を生成して、下画面(LCD14)に表示する(図4参照)。たとえば、CPUコア42は、GPU50を用いて2次元地図画面の表示のためのデータをVRAM56に生成し、レジスタ62に「1」を設定したLCDコントローラ60を用いて当該2次元地図画面をLCD14に表示する。この実施例では、軌跡入力中に上画面の3次元ゲーム画面は変化しないので、下画面の表示のためにVRAM58に生成されていた3次元ゲーム画面の表示のためのデータをそのまま利用可能である。このため、LCDコントローラ60のレジスタ62のデータ値を「1」に書き換えることによって、画面切替に対処することができる。なお、レジスタ62を書き換えずに、GPU52を用いてVRAM58に2次元地図画面の表示のためのデータを生成し当該地図画面をLCD14に表示することも可能である。
また、ステップS57で、CPUコア42は、3次元ゲーム画面を上画面(LCD12)に表示する(図4参照)。上述のように、この実施例では、CPUコア42は、レジスタ62を「1」に書き換えることによって、VRAM58に生成されている3次元ゲーム画面のデータを用いてLCD12に当該画面を表示することができる。なお、レジスタ62を書き換えずに、CPUコア42は、画像データ、仮想3次元世界のためのマップデータ、プレイヤキャラクタ位置データ、注視点データおよびカメラ位置データ等に基づいて、GPU50を用いてVRAM56に3次元ゲーム画面の表示のためのデータを生成し、LCDコントローラ60を用いて当該3次元ゲーム画面をLCD12に表示することも可能である。ステップS57を終了するとこの第1表示切替処理を終了し、処理は図13のステップS9へ戻る。
図13に戻って、ステップS9で、CPUコア42は、I/F回路54のバッファからタッチパネル22の出力データをタッチ入力データ記憶領域100に取得し、取得したタッチ入力データに基づいてタッチオンされたか否かを判断する。ステップS9で“NO”であれば、つまり、タッチオフのままである場合には、CPUコア42は、ステップS11で操作データを取得して、アイテム利用ボタン20Lがオフにされたか否かを判断する。ステップS11で“NO”であれば、つまり、アイテム利用ボタン20Lがオンである場合には、処理はステップS9へ戻る。
一方、ステップS9で“YES”であれば、つまり、タッチ入力が開始されたときには、入力軌跡の取得が開始される。CPUコア42は、ステップS13で、座標カウンタ値が所定の閾値以下であるか否かを判断する。ステップS13で“YES”であれば、つまり、入力軌跡データの座標数が上限を超えていない場合には、CPUコア42は、ステップS15でタッチ入力データからタッチ位置の座標(タッチ座標)を検出する。続いて、ステップS17で、CPUコア42は、入力軌跡データとして前回記憶したタッチ座標と今回検出された現在のタッチ座標との間の距離を算出する。なお、たとえば、前回の座標の初期値を、タッチ座標として検出され得る座標から閾値を超える距離だけ離れた座標に設定しておくことによって、座標カウンタ値が初期値の場合、つまり、タッチ入力が開始されたときには、閾値を超える距離が算出されるようにする。
そして、ステップS19でCPUコア42は算出した距離が所定の閾値以上であるか否かを判定する。この距離の閾値は手ぶれによる座標の変化を排除できるような所定値に設定されている。ステップS19で“YES”であれば、つまり、軌跡の入力であると見なせる場合には、CPUコア42は、ステップS21で、現在のタッチ座標を仮想3次元ゲーム世界の座標に変換する。つまり、上述のような所定の変換式に従って、タッチ座標(Xa,Ya)から変換座標(xa,0,za)を算出する。
さらに、ステップS23で、CPUコア42は、座標カウンタ値に「1」を加算して座標カウンタ記憶領域102を更新する。
そして、ステップS25で、CPUコア42は、現在のタッチ座標、変換座標および座標カウンタ値を対応付けて入力軌跡データ記憶領域104に追加的に記憶する。このようにして、図12に示したような入力軌跡データが記憶される。
続いて、ステップS27で、CPUコア42は、画像データおよび現在のタッチ座標データ等に基づいて、GPU50等を用いて、2次元地図画面において現在のタッチ座標に軌跡を示すためのドット画像を描画する。これによって、たとえば図5に示すように、LCD14に表示されている2次元地図画面に軌跡が描画される。ステップS27を終了すると処理は次の図14のステップS29へ進む。
一方、ステップS19で“NO”であれば、つまり、手ぶれと見なせる座標が検出された場合には、検出座標を入力軌跡に取り込まずに、処理は図14のステップS29へ進む。また、ステップS13で“NO”であれば、つまり、所定値を超える座標数の入力軌跡を既に記憶している場合にも、入力軌跡の取得を行わずに、処理は図14のステップS29へ進む。
また、ステップS11で“YES”であれば、つまり、入力軌跡の取得前にアイテム利用ボタン20Lがオフにされた場合には、アイテム利用がキャンセルされたので、処理は図14のステップS37へ進む。
図14のステップS29では、CPUコア42は、I/F回路54のバッファからタッチ入力データを取得してタッチ入力データ記憶領域100に記憶し、当該タッチ入力データに基づいて、タッチオフされたか否かを判断する。ステップS29で“NO”であれば、つまり、タッチ入力が継続されている場合には、ステップS31で、CPUコア42は、ステップS11と同様にして、アイテム利用ボタン20Lがオフにされたか否かを判定する。ステップS31で“NO”であれば、つまり、アイテム利用ボタン20Lが押され続けている場合には、処理は図13のステップS13へ戻る。このようにして、タッチ入力が継続され、かつ、アイテム利用ボタン20Lの操作が継続されている場合には、ステップS13からS27の入力軌跡取得の処理が繰り返される。
この実施例では、上述のように、タッチオフがアイテムオブジェクト72の移動開始条件である。ステップS29で“YES”であれば、つまり、タッチオフ状態が検出されたときには、アイテムオブジェクト72の移動のための処理が開始される。すなわち、CPUコア42は、ステップS33で、まず、第2表示切替処理を実行する。これによって、アイテムオブジェクト72の仮想3次元世界における移動を下画面の3次元ゲーム画面で表示できるように、表示画面を切り替える。この第2表示切替処理の動作の一例は図16に示される。
図16のステップS61で、CPUコア42は、画像データ、仮想3次元ゲーム世界のマップデータ、プレイヤキャラクタ位置データ、アイテムオブジェクト位置データ、注視点データおよびカメラ位置データ等に基づいて、仮想3次元ゲーム画面を下画面(LCD14)に表示する(図6参照)。たとえば、上述のステップS7の第1表示切替処理でレジスタ62の値を「1」に設定した場合には、レジスタ62の値を「0」に書き換えて、GPU52を用いて3次元ゲーム画面の表示のためのデータをVRAM58に生成し、LCDコントローラ60を用いてLCD14に当該3次元ゲーム画面を表示する。このゲーム画面では、図6に示したように、アイテムオブジェクト72がアイテムオブジェクト位置データの座標に表示される。
また、ステップS63で、CPUコア42は、2次元地図画像の表示範囲の広さを現在(たとえば図5の下画面の地図画面)のたとえば1.5倍に拡大して、データ記憶領域82に記憶する。つまり、2次元地図画像の縮尺は現在の2/3倍に縮小される。
さらに、ステップS65で、CPUコア42は、2次元地図画像の表示範囲の原点を予め規定されている標準の座標に設定し、データ記憶領域82に記憶する。
そして、ステップS67で、CPUコア42は、画像データ、2次元マップ画像データ、先に設定した表示範囲のデータ、プレキャキャラクタ70のシンボル70aの位置データ、アイテムオブジェクト72のシンボル72aの位置データ、入力軌跡データ等に基づいて、GPU50等を用いて2次元地図画面を生成して、当該地図画面を上画面(LCD12)に表示する。この2次元地図画面では、図6に示したように、アイテムオブジェクト72のシンボル72aや入力軌跡が表示される。ステップS67を終了するとこの第2表示切替処理を終了して、処理は図14のステップS35に戻る。
図14に戻って、ステップS35では、CPUコア42はアイテム移動処理を実行する。これによって、アイテムオブジェクト72が入力された軌跡に沿って仮想3次元ゲーム空間を移動する場面が表示される。このアイテム移動処理の動作の一例が図17に示される。
図17のステップS71で、CPUコア42は、座標カウンタ記憶領域102に記憶されている最終の座標カウンタ値を読み込む。次に、ステップS73で、CPUコア42はデータ記憶領域82にワークカウンタを設けて当該ワークカウンタをリセットし、初期値(たとえば「1」)を記憶する。
そして、ステップS75で、CPUコア42は、最終の座標カウンタ値がワークカウンタ値よりも小さいか否かを判断する。つまり、入力軌跡の最後の座標までの移動処理が終了したか否かを判定している。
ステップS75で“NO”であれば、CPUコア42は、ステップS77で、入力軌跡データ記憶領域104からワークカウンタ値に等しい座標カウンタ値に対応するタッチ座標と変換座標とを読み込む。また、ステップS79で、CPUコア42は、マップデータ記憶領域96から変換座標に対応する位置の高さ座標(y座標)を取得する。
続いて、ステップS81で、CPUコア42は、仮想3次元ゲーム世界でアイテムオブジェクト72の位置を変換座標および高さ座標に移動する。つまり、アイテムオブジェクト位置データ記憶領域108に記憶される仮想3次元ゲーム世界における位置データを、変換座標と高さ座標から得られる座標に設定する。
また、ステップS83で、CPUコア42は、3次元ゲーム画面生成のための注視点をアイテムオブジェクト72の座標へ移動する。つまり、注視点データ記憶領域110に、ステップS81で設定したアイテムオブジェクト72の仮想3次元世界における座標を記憶する。続くステップS85で、CPUコア42は、3次元ゲーム画面生成のためのカメラ座標を注視点座標に合わせて移動する。たとえば、仮想カメラが注視点を斜め上から俯瞰しつつ所定距離を隔てて注視点に追従するように、仮想カメラの座標を新たに算出し、カメラ位置データ記憶領域112に記憶する。なお、仮想カメラと注視点との距離は、プレイヤキャラクタ70に注視点が合わせられている場合よりも短い距離に設定される。
そして、ステップS87で、CPUコア42は、上述のステップS61等と同様にして、GPU52等を用いて3次元ゲーム画面を生成し、下画面(LCD14)に表示する。これによって、図7に示すように、アイテムオブジェクト72が入力軌跡に基づく移動軌跡に沿って仮想3次元ゲーム世界を移動する画面がLCD14に表示される。
また、ステップS89で、CPUコア42は、上述のステップS67等と同様にして、上画面に表示される2次元地図画面で、タッチ座標に対応する位置にアイテムオブジェクト72のシンボル72aを表示する。これによって、図7に示すように、アイテムオブジェクト72のシンボル72aが入力軌跡に沿って2次元地図上を移動する画面がLCD12に表示される。なお、入力軌跡上の移動済みのタッチ座標に対応する位置の軌跡を示すドット画像は消去される。
続いて、ステップS91で、CPUコア42はワークカウンタ値に「1」を加算して、図示しないワークカウンタ記憶領域を更新する。ステップS91を終了すると、処理はステップS75に戻る。
このようにして、入力軌跡の次の座標に対応する位置への移動処理が順次実行され、アイテムオブジェクト72が入力軌跡の最後の座標に対応する位置まで移動する画面が表示される。そして、ステップS75で“YES”であれば、このアイテム移動処理を終了して、処理は図14のステップS39へ戻る。
図14に戻って、ステップS31で“YES”であれば、つまり、タッチオフされる前にアイテム利用のキャンセルの指示が検出された場合には、処理はステップS37へ進み、それまでに取得された入力軌跡に基づくアイテムオブジェクト72の移動制御を中止する。ステップS37では、CPUコア42は上述の第2表示切替処理(図16)を実行する。これによって、図6に示したように、下画面に3次元ゲーム画面が表示され、上画面に2次元地図画面が表示される。ただし、アイテム利用がキャンセルされたので、上述のステップS33における第2表示切替処理とは異なり、アイテムオブジェクト72、そのシンボル72aおよび入力軌跡の画像は表示しない。なお、このステップS37での画面の描画前に、入力軌跡データ記憶領域104に記憶した入力軌跡データをクリアし、入力軌跡が描画されないようにしてよい。ステップS37を終了すると処理はステップS39に進む。
ステップS39では、CPUコア42は、注視点をプレイヤキャラクタ70の座標へ移す。つまり、注視点データ記憶領域110にプレイヤキャラクタ位置データの仮想3次元ゲーム世界における座標を記憶する。続いて、ステップS41で、CPUコア42は、カメラ位置を注視点に合わせて移動する。つまり、プレイヤキャラクタ70を撮影するための注視点と仮想カメラ位置との所定の関係に基づいて、カメラ位置座標を更新する。そして、ステップS43で、CPUコア42は、上述のステップS61等と同様にして、GPU52等を用いて3次元ゲーム画面を生成してLCD14に表示する。これによって、図9に示したようなゲーム画面が表示される。ステップS43を終了すると、このアイテム利用処理を終了する。
この実施例によれば、3次元ゲーム画面(第1画面)で表示される範囲よりも広い範囲を示す2次元地図画面(第2画面)に対して入力された軌跡を取得するようにした。そして、当該入力軌跡に沿って仮想3次元ゲーム空間でアイテムオブジェクト72を移動させ、当該アイテムオブジェクト72の移動を第1画面で表示するようにした。したがって、より広い範囲の表示された第2画面に対してアイテムオブジェクト72の移動のため軌跡を入力することができるので、より広い範囲でアイテムオブジェクト72を入力軌跡に沿って移動させることができる。
たとえば、プレイヤキャラクタ70やアイテムオブジェクト72の周辺が詳細に示されて様々な操作を行う際に多用されるメイン画面(第1画面)と、仮想世界のより広範囲が示されて当該世界の全体的な状況や概要等の情報を提供するマップ画面(第2画面)とが表示される場合には、メイン画面では知り得ない広範囲の情報を取得しつつ、マップ画面でタッチパネル22を用いることによって直感的にかつ広範囲にわたって軌跡入力すなわちオブジェクト72の移動指示操作を行うことができるとともに、その操作入力の結果をメイン画面へ反映することができる。したがって、第1画面で表示される範囲外のエリアへオブジェクト72を容易に移動させることができ、さらに当該エリアに対して影響を及ぼすアクションを容易に起こせるようになるので、より戦略性や趣向性の高い仕掛けを提供することができる。
なお、上述の実施例では、タッチ入力が開始されたときに入力軌跡の記憶を開始するようにした。しかし、他の実施例では、タッチ入力が開始されたと判定されたときには、そのときの検出座標がプレイヤキャラクタ70から一定距離範囲内であるか否かを判定するようにしてもよい。そして、当該座標がプレイヤキャラクタ70から一定距離範囲内であると判定されたときに入力軌跡の記憶を開始し、そうでない場合には検出座標を入力軌跡として記憶しないようにしてよい。
また、上述の各実施例では、プレイヤキャラクタ70の装備するアイテムオブジェクト72を入力軌跡に沿って移動させるようにしたが、他の実施例では、プレイヤキャラクタ70自体を入力軌跡に沿って移動させるようにしてもよい。
また、上述の各実施例では、仮想3次元ゲーム世界の比較的広い範囲の第2領域を表示する場合には、第2領域を示す第2画面として2次元地図画面(2次元画像)を使用して、当該仮想世界を2次元で表現し、また、仮想3次元ゲーム世界の比較的狭い範囲の第1領域を表示する場合には、第1領域を示す第1画面として、3次元ゲーム画面(3次元画像)を使用して、当該仮想世界を3次元で表現するようにしていた。しかし、他の実施例では、第1画面および第2画面ともに3次元画像を用いて表現するようにしてもよいし、または、第1画面および第2画面ともに2次元画像を用いて表現するようにしてもよい。
また、上述の各実施例では、仮想空間は3次元であったが、仮想空間は2次元であってもよい。この場合には、第1画面および第2画面ともに2次元画像を用いて表示される。
また、上述の各実施例では、LCD14の画面上に設けられたタッチパネル22で座標を入力するようにしていた。しかし、このような入力手段は、画面上の位置(座標)を指示することができる装置であればよく、他の実施例では、たとえばトラックパッドやタブレットのような他のポインティングデバイスが適用されてもよい。また、マウスやトラックボールのような移動方向や移動量(速度)によって位置を指定するポインティングデバイスを適用する場合には、表示画面にカーソルを表示することによって入力位置を明示する。また、マウス等のボタンが押されている状態をタッチオン状態とみなし、かつ、当該ボタンが放された状態をタッチオフ状態とみなすことによって、当該ポインティングデバイスでの入力の有無を判断することができる。
また、上述の各実施例では、第1のLCD12と第2のLCD14とを縦方向に並べて配置するようにしていたが、2つのLCDの配置は適宜に変更され得る。たとえば他の実施例のゲーム装置10では、第1のLCD12と第2のLCD14とを横方向に並べて配置するようにしてもよい。
また、上述の各実施例では、2つのゲーム画面をそれぞれ表示する2つのLCDを設けるようにしていたが、表示手段としてのLCDの数は適宜変更され得る。たとえば他の実施例のゲーム装置10では、縦長形状の1つのLCDを設けて、表示領域を上下に分けて、2つのゲーム画面をそれぞれの表示領域に表示するようにしてもよいし、あるいは、横長形状の1つのLCDを設けて、表示領域を左右に分割し、2つのゲーム画面をそれぞれの表示領域に表示するようにしてもよい。
また、上述の各実施例では、2つのゲーム画面を2つの表示領域に同時に表示するようにしていたが、他の実施例では、2つのゲーム画面を1つの表示領域において切り替えて個別に表示するようにしてもよい。たとえば、通常は仮想世界の比較的狭い範囲を示す第1画面をLCD14に表示しておく。アイテム利用ボタン20Lの操作、装備アイテムの種類等の条件が満足されて軌跡の取得が行われる場合には、第1表示切替処理で仮想世界の比較的広い範囲を示す第2画面をLCD14に表示する。その後、タッチオフの検出等の条件が満足されて軌跡の取得が終了し移動が開始されるとき等には、第2表示切替処理で再び第1画面をLCD14に表示する。このようにして、1つの表示領域のみに表示する場合には、たとえば上述の図3から図9の下画面のみが順を追って表示されて行くこととなる。