説明

ゲームプログラムおよびゲーム装置

【課題】軌跡を入力することによってオブジェクトを移動させるゲーム操作をプレイヤに簡単に行わせる。
【解決手段】ゲーム装置は、プレイヤによって入力された軌跡を検出し、仮想のゲーム空間に配置されるオブジェクトを、軌跡に沿って移動させる。さらに、ゲーム装置は、軌跡に沿って移動しているオブジェクトに所定の動作を行わせ、所定の動作を終了した場合、復帰位置を決定する。復帰位置は、所定の動作を終了したオブジェクトが軌跡に復帰する位置であり、軌跡上の位置から決定される。ゲーム装置は、所定の動作を終了したオブジェクトを復帰位置に復帰させてから軌跡に沿った移動を再開させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラムおよびゲーム装置に関し、より特定的には、プレイヤによって入力される軌跡に沿って操作対象のオブジェクトを移動させるゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
従来のゲームプログラムとして、ゲーム空間に登場するオブジェクトを、プレイヤがタッチパネルを用いて入力した軌跡に沿って移動させるものが知られている(例えば、非特許文献1参照)。このゲームプログラムにおいては、軌跡に沿ってオブジェクトが移動している途中で、当該オブジェクトと他のオブジェクトとが所定の位置関係となった場合、当該オブジェクトが軌跡から離れて当該他のオブジェクトに対して自動的に所定の動作を行うようになっている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】「ゼルダの伝説 夢幻の砂時計 取扱説明書」,任天堂株式会社,2007年6月23日、p.32
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記非特許文献1に記載されたゲームプログラムにおいては、オブジェクトは、上記所定の動作を終了した後は当該所定の動作を開始した地点で停止するように制御されていた。そのため、その後にオブジェクトを移動させるためには、プレイヤが軌跡を再度入力する必要があり、プレイヤの操作が非効率で面倒なものになっていた。
【0005】
それ故、本発明の目的は、軌跡を入力することによってオブジェクトを移動させるゲーム操作をプレイヤが簡単に行うことができるゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、本欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0007】
本発明は、ゲーム装置(1)のコンピュータ(CPU31)によって実行されるゲームプログラム(71)である。ゲームプログラムは、軌跡検出手段(ステップS2を実行するCPU31。以下、単にステップ番号のみを記載する。)と、移動制御手段(S43)と、動作制御手段(S47)と、復帰位置決定手段(S52)としてコンピュータを機能させる。軌跡検出手段は、プレイヤによって入力された軌跡を検出する。移動制御手段は、仮想のゲーム空間に配置されるオブジェクト(52)を、軌跡に沿って移動させる。動作制御手段は、軌跡に沿って移動しているオブジェクトに所定の動作(途中動作)を行わせる。復帰位置決定手段は、所定の動作を終了したオブジェクトが軌跡に復帰する位置である復帰位置(復帰ポイント)を軌跡上の位置から決定する。移動制御手段は、所定の動作を終了したオブジェクトを復帰位置に復帰させてから軌跡に沿った移動を再開させる(図12〜図15)。
【0008】
本発明によれば、オブジェクトが軌跡を離れて所定の動作を行った場合であっても、復帰位置決定手段によって復帰位置が決定され、移動制御手段によってオブジェクトは軌跡に沿った移動を再開する。したがって、プレイヤは、所定の動作が行われた場合であっても、軌跡を再度入力する必要がなく、所定の動作が行われる前に入力した軌跡の終端までオブジェクトを移動させることができる。そのため、本発明によれば、所定の動作が行われる度に軌跡を入力する必要があった従来技術に比べて、プレイヤは、軌跡を入力することによってオブジェクトを移動させるゲーム操作を簡単に行うことができる。
【0009】
また、動作制御手段は、上記所定の動作として軌跡から離れる動作をオブジェクトに行わせるようにしてもよい。
【0010】
上記の構成によれば、プレイヤは、例えば軌跡を離れて敵オブジェクトを攻撃する動作や、軌跡を離れた位置へアイテムを取りに行く動作等、軌跡から離れた自由な動作をオブジェクトに行わせることができる。
【0011】
また、復帰位置決定手段は、所定の動作を終了したオブジェクトの位置と、ゲーム空間内における軌跡の位置とに基づいて復帰位置を決定してもよい。
【0012】
上記の構成によれば、所定の動作を終了したオブジェクトの位置と軌跡の位置とに基づいて復帰位置が決められるので、オブジェクトの現在位置(所定の動作を終了した時点の位置)と軌跡との位置関係に応じた適切な位置を復帰位置とすることができる。
【0013】
また、復帰位置決定手段は、所定の動作を終了したオブジェクトの位置からの到達距離または到達時間に少なくとも基づいて復帰位置を決定してもよい(S61、図12)。
【0014】
上記の構成によれば、例えば所定の動作を終了した時点の位置から最短時間で到達することができる位置を復帰位置とすることも可能となる。したがって、到達距離または到達時間に基づいて復帰位置を決定することにより、オブジェクトを軌跡に復帰させる際に効率良くオブジェクトを移動させることができる。
【0015】
また、ゲームプログラムは、所定の動作を開始する時点におけるオブジェクトの位置を元位置(元ポイント)としてゲーム装置のメモリに記憶する元位置記憶手段としてコンピュータをさらに機能させてもよい。このとき、復帰位置決定手段は、元位置以降の位置となるように復帰位置を決定する(S62,S65)。
【0016】
上記の構成によれば、オブジェクトは、所定の動作を開始した時点における位置以降の位置に復帰するので、オブジェクトは一度通過したことがある軌跡の部分を再度通過することがない。したがって、オブジェクトを軌跡に復帰させる場合において効率良くオブジェクトを移動させることができる。
【0017】
また、動作制御手段は、ゲーム空間内に設定される所定のイベント位置とオブジェクトの位置とが所定の位置関係になった場合に所定の動作としてオブジェクトにイベント動作を行わせてもよい。このとき、復帰位置決定手段は、軌跡上の位置のうちで、オブジェクトがイベント動作を行う位置以前の位置となるように復帰位置を決定する(S63,S65)。
【0018】
上記の構成によれば、オブジェクトが軌跡に復帰する際に、オブジェクトがイベント動作を行う位置をスキップして復帰することがない。つまり、オブジェクトは、イベント動作を行う位置を確実に通過することとなるので、オブジェクトがイベント動作を行うように軌跡を入力したプレイヤの意図に適合した動作をオブジェクトに行わせることができる。
【0019】
また、ゲームプログラムは、軌跡検出手段によって軌跡が入力される毎に、当該軌跡上の位置のうちでイベント位置となる位置をゲーム装置のメモリに記憶するイベント位置記憶手段(S26)としてコンピュータをさらに機能させてもよい。このとき、動作制御手段は、メモリに記憶されているイベント位置にオブジェクトが到達した場合に当該オブジェクトにイベント動作を行わせる。
【0020】
上記の構成によれば、軌跡が入力される毎に、その軌跡上におけるイベント位置が記憶される。したがって、復帰位置を決定する際には、記憶されているイベント位置を考慮した復帰位置を決定することができる。
【0021】
また、動作制御手段は、オブジェクトを移動させる毎に、オブジェクトの位置と他のオブジェクトの位置との位置関係が所定の条件を満たすか否かを判定し(S44)、当該所定の条件が満たされる場合に、移動制御手段によって移動しているオブジェクトに所定の動作を行わせる(S47)。
【0022】
上記の構成によれば、オブジェクトに所定の動作を行わせるか否かの判定は、オブジェクトが移動する毎に(例えば、オブジェクトを1フレーム毎に移動させる場合には1フレーム毎に)行われる。したがって、オブジェクトが移動したことに応じてすぐに所定の動作を行わせることができるとともに、上記判定を、オブジェクトと他のオブジェクトとの現在の位置関係に応じて正確に行うことができる。
【0023】
また、ゲームプログラムは、最短位置選出手段(S61)としてコンピュータをさらに機能させてもよい。最短位置選出手段は、所定の動作を終了したオブジェクトの位置からの到達時間または到達距離が最も短い位置である最短位置(最短ポイント)を軌跡上の位置から選出する。このとき、復帰位置決定手段は、最短位置を復帰位置として決定する。
【0024】
上記の構成によれば、オブジェクトは、所定の動作を終了した時点から時間または距離に関して最短の位置に復帰する。したがって、オブジェクトを軌跡に復帰させる場合において効率良くオブジェクトを移動させることができる。
【0025】
また、ゲームプログラムは、元位置記憶手段(S45)と、最短位置選出手段(S61)としてコンピュータをさらに機能させてもよい。元位置記憶手段は、所定の動作を開始する時点におけるオブジェクトの位置を元位置(元ポイント)としてゲーム装置のメモリ(32)に記憶する。最短位置選出手段は、所定の動作を終了したオブジェクトの位置から最も短い時間で到達できる位置である最短位置(最短ポイント)を軌跡上の位置から選出する。このとき、動作制御手段は、ゲーム空間内に設定される所定のイベント位置とオブジェクトの位置とが所定の位置関係になった場合に所定の動作としてオブジェクトにイベント動作を行わせる。復帰位置決定手段は、最短位置が元位置以降の位置であり、かつ、イベント位置以前の位置である場合(ステップS62およびS63でYes)、当該最短位置を復帰位置として決定し(S64)、最短位置が元位置よりも前の位置であるか、または、イベント位置よりも後の位置である場合(ステップS62またはS63でNo)、元位置を復帰位置として決定する(S65)。
【0026】
上記の構成によれば、オブジェクトは、元位置以降の位置に復帰するので、オブジェクトは一度通過したことがある軌跡の部分を再度通過することがなく、また、オブジェクトがイベント動作を行う位置以前の位置に復帰するので、当該位置をスキップして復帰することがない。したがって、オブジェクトを軌跡に復帰させる場合において効率良くオブジェクトを移動させることができるとともに、イベント動作を行う位置をオブジェクトに確実に通過させることにより、プレイヤの意図に適合した動作をオブジェクトに行わせることができる。
【0027】
また、ゲームプログラムは、軌跡を構成する各点のうち、所定距離間隔で配置された、または、所定時間間隔で入力された1以上の点を登録ポイントとして設定するポイント設定手段(S25)としてコンピュータをさらに機能させてもよい。復帰位置決定手段は、登録ポイントのうちから復帰位置を決定する。
【0028】
上記の構成によれば、復帰位置は、軌跡を構成する全ての点から選出されるのではなく、一部の点から選出される。したがって、上記到達距離または到達時間に基づいて復帰位置を選出する場合であっても、復帰位置を選出する処理を簡易な処理で行うことができる。
【0029】
また、動作制御手段は、オブジェクトの位置と他のオブジェクトの位置との位置関係が所定の条件を満たした場合に、移動制御手段によって移動しているオブジェクトに所定の動作を行わせるようにしてもよい。
【0030】
上記の構成によれば、軌跡に沿って移動するオブジェクトが他のオブジェクトに近づいた場合等に所定の動作を行わせることができる。したがって、例えば、オブジェクトが軌跡に沿って移動する途中で、敵オブジェクトに対する攻撃の動作や、アイテムのオブジェクトを取得する動作等、種々の動作を行わせることができる。
【0031】
また、本発明は、上記ゲーム装置と同等の機能を有するゲーム装置の形態で提供されてもよい。なお、このゲーム装置においては、ゲームプログラムを実行するCPUによって上記各手段が実現されてもよいし、ゲーム装置が備える専用の回路によって上記各手段の一部または全部が実現されてもよい。
【発明の効果】
【0032】
本発明によれば、軌跡を移動しているオブジェクトが軌跡を離れて所定の動作を行った場合でも、オブジェクトを当該軌跡に復帰させて軌跡に沿った移動を再開させるので、軌跡を入力することによってオブジェクトを移動させるゲーム操作をプレイヤに簡単に行わせることができる。
【図面の簡単な説明】
【0033】
【図1】本実施形態に係るゲームプログラムを実行するゲーム装置の外観図
【図2】ゲーム装置の内部構成の一例を示すブロック図
【図3】本実施形態におけるゲーム処理によって表示装置に表示されるゲーム画像を示す図
【図4】プレイヤ操作によって第1オブジェクト51が動作する様子を表すゲーム画像を示す図
【図5】第2オブジェクト52を操作するための軌跡56をプレイヤが入力している場合のゲーム画像を示す図
【図6】入力された軌跡56に沿って第2オブジェクト52が移動する様子を表すゲーム画像を示す図
【図7】第2オブジェクト52が移動している間に第1オブジェクト51が操作される場合のゲーム画像を示す図
【図8】第2オブジェクト52の移動途中で軌跡を変更する操作を行った場合のゲーム画像を示す図
【図9】第2オブジェクト52の移動途中で軌跡を変更する操作を行った場合のゲーム画像を示す図
【図10】ゲーム装置1の上側LCD22に表示されるゲーム画像を示す図
【図11】第2オブジェクト52が軌跡56を移動している途中のゲーム画像を示す図
【図12】途中動作を第2オブジェクト52が終了した時点におけるゲーム画像を示す図
【図13】途中動作を第2オブジェクト52が終了した時点におけるゲーム画像の他の例を示す図
【図14】途中動作を第2オブジェクト52が終了した時点におけるゲーム画像の他の例を示す図
【図15】優先ポイントが設定される場合におけるゲーム画像を示す図
【図16】ゲーム装置1のメインメモリ32に記憶されるデータを示す図
【図17】ゲーム装置1において実行されるゲーム処理の流れを示すメインフローチャート
【図18】図17に示す入力判別処理(ステップS3)の流れを示すフローチャート
【図19】図17に示す軌跡設定処理(ステップS4)の流れを示すフローチャート
【図20】図17に示す第2オブジェクト制御処理(ステップS7)の流れを示すフローチャート
【図21】図20に示す軌跡移動処理(ステップS32)の流れを示すフローチャート
【図22】図21に示す復帰ポイント決定処理(ステップS52)の流れを示すフローチャート
【図23】図17に示す表示制御処理(ステップS8)の流れを示すフローチャート
【発明を実施するための形態】
【0034】
[ゲーム装置のハードウェア構成]
図面を参照して、本発明の一実施形態に係るゲームプログラムおよびゲーム装置について説明する。本発明は、表示装置にゲーム画像を表示することが可能な任意のコンピュータシステムにおいて本ゲームプログラムが実行されることによって実現することができるが、本実施形態では、ゲーム装置の一例として図1に示すゲーム装置1を用いる場合について説明する。
【0035】
図1は、本実施形態に係るゲームプログラムを実行するゲーム装置1の外観図である。ここでは、ゲーム装置1の一例として、携帯ゲーム装置を示す。なお、ゲーム装置1は、カメラを内蔵しており、当該カメラによって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりする撮像装置としても機能する。
【0036】
図1において、ゲーム装置1は折り畳み型の携帯ゲーム装置であり、開いた状態(開状態)のゲーム装置1を示している。ゲーム装置1は、開いた状態においてもユーザが両手または片手で把持することができるようなサイズで構成される。
【0037】
ゲーム装置1は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状に形成され、互いの長辺部分で回転可能に連結されている。通常、ユーザは、開状態でゲーム装置1を使用する。また、ユーザは、ゲーム装置1を使用しない場合には閉状態としてゲーム装置1を保管する。また、図1に示した例では、ゲーム装置1は、上記閉状態および開状態のみでなく、下側ハウジング11と上側ハウジング21とのなす角度が閉状態と開状態との間の任意の角度において、連結部分に発生する摩擦力などによってその開閉角度を維持することができる。つまり、上側ハウジング21を下側ハウジング11に対して任意の角度で静止させることができる。
【0038】
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12が設けられる。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。なお、本実施形態では、ゲーム装置1に内蔵されている表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を利用してもよい。また、ゲーム装置1は、任意の解像度の表示装置を利用することができる。なお、下側LCD12には、内側カメラ23または外側カメラ25で撮像されている画像がリアルタイムに表示される。
【0039】
下側ハウジング11には、入力装置として、各操作ボタン14A〜14Kおよびタッチパネル13が設けられる。図1に示されるように、各操作ボタン14A〜14Kのうち、方向入力ボタン14A、操作ボタン14B、操作ボタン14C、操作ボタン14D、操作ボタン14E、電源ボタン14F、スタートボタン14G、およびセレクトボタン14Hは、上側ハウジング21と下側ハウジング11とを折り畳んだときに内側となる、下側ハウジング11の内側主面上に設けられる。図1に示す例では、方向入力ボタン14Aおよび電源ボタン14Fは、下側ハウジング11の内側主面の中央付近に設けられる下側LCD12に対して、左右一方側(図1では左側)の当該主面上に設けられる。また、操作ボタン14B〜14E、スタートボタン14G、およびセレクトボタン14Hは、下側LCD12に対して左右他方側(図1では右側)となる下側ハウジング11の内側主面上に設けられる。方向入力ボタン14A、操作ボタン14B〜14E、スタートボタン14G、およびセレクトボタン14Hは、ゲーム装置1に対する各種操作を行うために用いられる。方向入力ボタン14Aは、例えば選択操作等に用いられる。各操作ボタン14B〜14Eは、例えば決定操作やキャンセル操作等に用いられる。電源ボタン14Fは、ゲーム装置1の電源をオン/オフするために用いられる。
【0040】
なお、図1においては、操作ボタン14I〜14Kの図示を省略している。例えば、Lボタン14Iは、下側ハウジング11の上側面の左端部に設けられ、Rボタン14Jは、下側ハウジング11の上側面の右端部に設けられる。Lボタン14IおよびRボタン14Jは、撮影機能を有するゲーム装置1に対して、例えば撮影指示操作(シャッター操作)を行うために用いられる。さらに、音量ボタン14Kは、下側ハウジング11の左側面に設けられる。音量ボタン14Kは、ゲーム装置1が備えるスピーカの音量を調整するために用いられる。
【0041】
また、ゲーム装置1は、各操作ボタン14A〜14Kとは別の入力装置としてさらに、画面上における任意の位置を指定可能な入力装置であるタッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、任意の方式のタッチパネルを用いることができる。また、本実施形態では、タッチパネル13として、例えば下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の右側面には、挿入口(図1では破線で示している)が設けられている。挿入口は、タッチパネル13に対する操作を行うために用いられるタッチペン27を収納することができる。なお、タッチパネル13に対する入力(タッチ入力)は、通常タッチペン27を用いて行われるが、タッチペン27に限らずユーザの指でタッチパネル13を操作することも可能である。
【0042】
また、下側ハウジング11の右側面には、メモリカード28を収納するための挿入口(図1では二点鎖線で示している)が設けられている。この挿入口の内側には、ゲーム装置1とメモリカード28とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード28は、例えばSD(Secure Digital)メモリカードであり、コネクタに着脱自在に装着される。メモリカード28は、例えば、ゲーム装置1によって撮像された画像を記憶(保存)したり、他の装置で生成された画像をゲーム装置1に読み込んだりするために用いられる。
【0043】
さらに、下側ハウジング11の上側面には、メモリカード29を収納するための挿入口(図1では、一点鎖線で示している)が設けられている。この挿入口の内側にも、ゲーム装置1とメモリカード29とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード29は、ゲームプログラム等を記録した記録媒体であり、下側ハウジング11に設けられた挿入口に着脱自在に装着される。
【0044】
下側ハウジング11と上側ハウジング21との連結部の左側部分には、3つのLED15A〜15Cが取り付けられる。ここで、ゲーム装置1は、他の機器との間で無線通信を行うことが可能であり、第1LED15Aは、ゲーム装置1の電源がオンである場合に点灯する。第2LED15Bは、ゲーム装置1の充電中に点灯する。第3LED15Cは、無線通信が確立している場合に点灯する。したがって、3つのLED15A〜15Cによって、ゲーム装置1の電源のオン/オフ状況、充電状況、および、通信確立状況をユーザに通知することができる。
【0045】
一方、上側ハウジング21には、上側LCD22が設けられる。上側LCD22は横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。なお、下側LCD12と同様、上側LCD22に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。なお、上側LCD22上を覆うように、タッチパネルを設けてもかまわない。上側LCD22には、例えば、各操作ボタン14A〜14Kやタッチパネル13の役割をユーザに教えるための操作説明画面が表示される。
【0046】
また、上側ハウジング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で撮像することができる。
【0047】
なお、上記連結部付近の内側主面には、音声入力装置としてマイク(図2に示すマイク43)が収納されている。そして、上記連結部付近の内側主面には、マイク43がゲーム装置1外部の音を検知できるように、マイクロフォン用孔16が形成される。マイク43を収納する位置およびマイクロフォン用孔16の位置は必ずしも上記連結部である必要はなく、例えば下側ハウジング11にマイク43を収納し、マイク43を収納位置に対応させて下側ハウジング11にマイクロフォン用孔16を設けるようにしてもよい。
【0048】
また、上側ハウジング21の外側主面には、第4LED26(図1では、破線で示す)が取り付けられる。第4LED26は、内側カメラ23または外側カメラ25によって撮影が行われた(シャッターボタンが押下された)時点で点灯する。また、内側カメラ23または外側カメラ25によって動画が撮影される間点灯する。第4LED26によって、ゲーム装置1による撮影が行われた(行われている)ことを撮影対象者や周囲に通知することができる。
【0049】
また、上側ハウジング21の内側主面の中央付近に設けられる上側LCD22に対して、左右両側の当該主面に音抜き孔24がそれぞれ形成される。音抜き孔24の奥の上側ハウジング21内にはスピーカが収納されている。音抜き孔24は、スピーカからの音をゲーム装置1の外部に放出するための孔である。
【0050】
以上に説明したように、上側ハウジング21には、画像を撮像するための構成である内側カメラ23および外側カメラ25と、主に操作説明画面を表示するための表示手段である上側LCD22とが設けられる。一方、下側ハウジング11には、ゲーム装置1に対する操作入力を行うための入力装置(タッチパネル13および各操作ボタン14A〜14K)と、撮像された画像を表示するための表示手段である下側LCD12とが設けられる。したがって、ゲーム装置1を使用する際には、ユーザは、下側LCD12に表示される撮像画像(カメラによって撮像された画像)を見ながら、下側ハウジング11を把持して入力装置に対する入力を行うことができる。
【0051】
次に、図2を参照して、ゲーム装置1の内部構成を説明する。図2は、ゲーム装置1の内部構成の一例を示すブロック図である。
【0052】
図2において、ゲーム装置1は、CPU31、メインメモリ32、メモリ制御回路33、保存用データメモリ34、プリセットデータ用メモリ35、メモリカードインターフェース(メモリカードI/F)36、メモリカードI/F37、無線通信モジュール38、ローカル通信モジュール39、リアルタイムクロック(RTC)40、電源回路41、インターフェース回路(I/F回路)42、第1GPU(Graphics Processing Unit)45、第2GPU46、第1VRAM(Video RAM)47、第2VRAM48、およびLCDコントローラ49等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて、下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0053】
CPU31は、所定のプログラム(ここでは、本実施形態に係るゲームプログラム)を実行するための情報処理手段である。本実施形態では、ゲームプログラムがゲーム装置1内のメモリ(例えば保存用データメモリ34)やメモリカード28および/または29に記憶されており、CPU31は、当該ゲームプログラムを実行することによって、後述するゲーム処理を実行する。なお、CPU31によって実行されるプログラムは、ゲーム装置1内のメモリに予め記憶されていてもよいし、メモリカード28および/または29から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。
【0054】
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と接続されるフラッシュメモリを用いることができる。
【0055】
メモリカードI/F36および37は、それぞれCPU31に接続される。メモリカードI/F36は、コネクタに装着されたメモリカード28に対するデータの読み出しおよび書き込みを、CPU31の指示に応じて行う。また、メモリカードI/F37は、コネクタに装着されたメモリカード29に対するデータの読み出しおよび書き込みを、CPU31の指示に応じて行う。本実施形態では、内側カメラ23および外側カメラ25によって撮像された画像データや他の装置から受信された画像データがメモリカード28に書き込まれたり、メモリカード28に記憶された画像データがメモリカード28から読み出されて保存用データメモリ34に記憶されたり、読み出された画像データがメモリカード28から読み出されて他の装置へ送信されたりする。また、メモリカード29に記憶された各種プログラムが、CPU31によって読み出されて実行されたりする。
【0056】
なお、本発明のゲームプログラムは、メモリカード29等の外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよい。また、ゲームプログラムは、コンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。なお、ゲームプログラムを記憶する情報記憶媒体としては、上記不揮発性記憶装置に限らず、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体でもよい。
【0057】
無線通信モジュール38は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール39は、所定の通信方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール38およびローカル通信モジュール39は、CPU31に接続される。CPU31は、無線通信モジュール38を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール39を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0058】
また、CPU31には、RTC40および電源回路41が接続される。RTC40は、時間をカウントしてCPU31に出力する。例えば、CPU31は、RTC40によって計時された時間に基づいて、現在時刻(日付)等を計算することもできる。電源回路41は、ゲーム装置1が有する電源(典型的には電池であり、下側ハウジング11に収納される)から供給される電力を制御し、ゲーム装置1の各部品に電力を供給する。
【0059】
また、ゲーム装置1は、マイク43およびアンプ44を備えている。マイク43およびアンプ44は、それぞれI/F回路42に接続される。マイク43は、ゲーム装置1に向かって発声されたユーザの音声を検知して、当該音声を示す音声信号をI/F回路42に出力する。アンプ44は、I/F回路42から音声信号を増幅してスピーカ(図示せず)から出力させる。I/F回路42は、CPU31に接続される。
【0060】
また、タッチパネル13は、I/F回路42に接続される。I/F回路42は、マイク43およびアンプ44(スピーカ)の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成してCPU31に出力する。例えば、タッチ位置データは、タッチパネル13の入力面に対して入力が行われた位置(タッチ位置)の座標を示すデータである。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。CPU31は、I/F回路42を介してタッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0061】
操作ボタン14は、上記各操作ボタン14A〜14Kから構成され、CPU31に接続される。操作ボタン14からCPU31へは、各操作ボタン14A〜14Kに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
【0062】
内側カメラ23および外側カメラ25は、それぞれCPU31に接続される。内側カメラ23および外側カメラ25は、CPU31の指示に応じて画像を撮像し、撮像した画像データをCPU31に出力する。本実施形態では、CPU31は、内側カメラ23および外側カメラ25のいずれか一方に対して撮像指示を行い、撮像指示を受けたカメラが画像を撮像して画像データをCPU31に送る。
【0063】
第1GPU45には第1VRAM47が接続され、第2GPU46には第2VRAM48が接続される。第1GPU45は、CPU31からの指示に応じて、メインメモリ32に記憶されている表示画像を生成するためのデータに基づいて第1の表示画像を生成し、第1VRAM47に描画する。第2GPU46は、第1GPU45と同様に、CPU31からの指示に応じて第2の表示画像を生成し、第2VRAM48に描画する。第1VRAM47および第2VRAM48は、LCDコントローラ49に接続されている。
【0064】
LCDコントローラ49は、レジスタ491を含む。レジスタ491は、CPU31からの指示に応じて0または1の値を記憶する。LCDコントローラ49は、レジスタ491の値が0の場合は、第1VRAM47に描画された第1の表示画像を下側LCD12に出力し、第2VRAM48に描画された第2の表示画像を上側LCD22に出力する。また、レジスタ491の値が1の場合は、第1VRAM47に描画された第1の表示画像を上側LCD22に出力し、第2VRAM48に描画された第2の表示画像を下側LCD12に出力する。例えば、CPU31は、内側カメラ23および外側カメラ25のいずれかから取得した画像を下側LCD12に表示させ、所定の処理によって生成した操作説明画面を上側LCD22に表示させることも可能である。
【0065】
[ゲーム処理の概要]
次に、図3から図15を参照して、本実施形態に係るゲームプログラムによって実行されるゲーム処理の概要について説明する。本ゲーム処理は、プレイヤが入力した軌跡によって仮想のゲーム空間に登場するオブジェクトを操作するゲームを実行するものである。
【0066】
図3は、本実施形態におけるゲーム処理によって表示装置(下側LCD12)に表示されるゲーム画像を示す図である。図3に示すように、下側LCD12には、仮想のゲーム空間の一部の領域を表すゲーム空間画像が表示される。具体的には、第1オブジェクト51、第2オブジェクト52、および軌跡マーク53を含むゲーム空間画像が表示される。本実施形態では、ゲーム装置1は、仮想のゲーム空間の一部領域を表すゲーム空間画像と、ゲーム空間画像により表される領域よりも広い領域を表すマップ画像とを表示することが可能である。図3に示すゲーム画像はゲーム空間画像に相当し、後出する図10に示すゲーム画像がマップ画像に相当する。また、本実施形態では、ゲーム空間画像に重ねて切替アイコン54が表示される。切替アイコン54の機能については後述する。なお、下側LCD12には、上記ゲーム空間画像に加えて、タッチパネル13を用いて入力された軌跡および追従アイコン(後述)等が状況に応じて表示されることもある。
【0067】
図3に示すように、仮想のゲーム空間には、第1オブジェクト51と第2オブジェクト52という2つのオブジェクトが登場する。第1および第2オブジェクト51および52は、プレイヤの操作対象となるオブジェクトである。本実施形態では、プレイヤは、タッチパネル13を用いて各オブジェクト51および52を操作する。第1オブジェクト51は、タッチパネル13の入力面においてプレイヤがタッチした位置(タッチ位置)、あるいは、当該入力面上にプレイヤが入力した軌跡によって動作が制御される。第2オブジェクト52は、上記軌跡に沿って移動するように動作が制御される。
【0068】
図4は、プレイヤ操作によって第1オブジェクト51が動作する様子を表すゲーム画像を示す図である。本実施形態では、第1オブジェクト51に対する操作は、タッチパネル13を用いて行われる。第1オブジェクト51に対する操作は、(上記マップ画像ではなく)上記ゲーム空間画像に対して行われる。ここで、図4に示すように、ゲーム空間画像における第2オブジェクト52の位置には軌跡マーク53が表示される。第1オブジェクト51を操作する場合、プレイヤは、軌跡マーク53以外のゲーム空間内の位置を始点とする入力を行う。例えば、図4に示すように、ゲーム空間内における位置をタッチする入力をプレイヤが行った場合、ゲーム装置1は、タッチ位置に対応する(ゲーム空間内の)位置へ向かって第1オブジェクト51を移動させる。なお、タッチパネル13を用いた第1オブジェクト51の操作は、図4に示す操作に限らずどのような操作であってもよい。例えば、ゲーム装置1は、タッチパネル13に入力された軌跡に応じて攻撃やジャンプといった動作を第1オブジェクト51に行わせるようにしてもよい。なお、第1オブジェクト51の操作中においては、図5に示されるように、ゲーム装置1は追従アイコン55をゲーム空間画像に重ねて下側LCD12に表示する。追従アイコン55の機能については後述する。
【0069】
図5は、第2オブジェクト52を操作するための軌跡56をプレイヤが入力している場合のゲーム画像を示す図である。第2オブジェクト52を操作する場合も第1オブジェクト51を操作する場合と同様、プレイヤは、ゲーム空間画像に対してタッチパネル13によって入力を行う。第2オブジェクト52を操作する場合、プレイヤは、図5に示すように、上記軌跡マーク53の位置を始点として軌跡56を入力する。入力された軌跡56はゲーム空間画像に重ねて下側LCD12に表示される。また、本実施形態では、図5に示すように、軌跡56の入力中においては、ゲーム装置1は軌跡56の終端に矢印を付して表示する。
【0070】
図6は、入力された軌跡56に沿って第2オブジェクト52が移動する様子を表すゲーム画像を示す図である。図6に示すように、軌跡56の入力が終了すると、ゲーム装置1は、軌跡56に沿って第2オブジェクトを移動させる。このように、本実施形態では、(マップ画像ではなく)ゲーム空間画像に対して軌跡56の入力が行われ、入力された軌跡56に沿って第2オブジェクトが移動する様子は当該ゲーム空間画像において表される。なお、本実施形態では、入力中の軌跡と入力が完了した軌跡とをプレイヤが容易に区別することができるように、ゲーム装置1は、入力が完了した軌跡56の終端に矢印ではなく丸印を付して表示する。
【0071】
なお、本実施形態においては、第2オブジェクト52が軌跡56に沿って移動している途中においても、プレイヤは第1オブジェクト51を操作することが可能である。図7は、第2オブジェクト52が移動している間に第1オブジェクト51が操作される場合のゲーム画像を示す図である。図7に示すように、第2オブジェクト52が軌跡56に沿って移動している時にプレイヤがゲーム空間内における軌跡マーク53以外の位置をタッチする入力をプレイヤが行った場合、ゲーム装置1は、タッチ位置に対応する位置へ向かって第1オブジェクト51を移動させる。このように、本実施形態では、第1オブジェクト51の操作中においても、第2オブジェクト52は移動を継続する。つまり、第2オブジェクト52の移動中においては、プレイヤは、第1オブジェクト51と第2オブジェクト52の両方を移動させることができる。また、本実施形態では、第2オブジェクト52の移動中においても軌跡56が表示されている(図7)ので、プレイヤは、第2オブジェクト52の移動経路を予測しつつ、第1オブジェクト51を操作することができる。
【0072】
以上のように、本実施形態では、ゲーム装置1は、マップ画像ではなく、仮想ゲーム空間における一部領域を表すゲーム空間画像において、各オブジェクト51および52の操作を受け付ける。すなわち、ゲーム装置1は、ゲーム空間画像内の第1オブジェクト51の動作をプレイヤの操作に応じて制御する(図4、図7)。また、ゲーム装置1は、タッチパネル13によってゲーム空間画像上に入力された軌跡を検出し、ゲーム空間画像内の第2オブジェクト52を軌跡に沿って移動させる(図5、図6)。これによれば、プレイヤは、2つのオブジェクトを同一画像上で操作することができ、画面を切り替える操作が必要ない。そのため、プレイヤは、軌跡を用いて第2オブジェクト52を移動させる操作を簡単に行うことができ、操作性の良いゲームを提供することができる。
【0073】
また、本実施形態では、ゲーム装置1は、タッチパネル13によってゲーム空間画像上に行われた入力に応じて第1オブジェクト51の動作を制御する。つまり、プレイヤは、第1オブジェクト51および第2オブジェクト52の両方をタッチパネル13によって操作することができる。例えば第1オブジェクト51を操作ボタンで操作する場合には、プレイヤは、第1オブジェクト51と第2オブジェクト52との間で操作対象を変更する際にタッチペンを持ち替える等の手間がかかる。これに対して、本実施形態では、2つのオブジェクトを単一の入力装置で操作できるので、2つのオブジェクトを容易に操作することができる。
【0074】
ここで、第1オブジェクト51および第2オブジェクト52の両方をタッチパネル13によって操作する場合には、タッチ入力がいずれのオブジェクトに対する操作であるかを判別する必要がある。そこで、ゲーム装置1は、ゲーム空間画像上に行われた入力の開始位置が所定の指示領域(軌跡マーク53内の領域)の内側に位置する場合、当該入力により示される軌跡に沿って第2オブジェクト52を移動させ(図5,図6)、当該入力の開始位置が上記指示領域の外側に位置する場合、当該入力に応じて第1オブジェクト51の動作を制御する(図4)。つまり、ゲーム装置1は、タッチパネル13に対して行われた入力の開始位置が指示領域の内側であるか外側であるかによって、当該入力に従って第2オブジェクト52を制御するか第1オブジェクト51を制御するかを決定する。したがって、本実施形態によれば、プレイヤは、操作対象を切り替えるためだけの操作を行う必要がなく、2つのオブジェクトの操作が簡易になる。また、1回のタッチ入力に応じて2つのオブジェクトの両方が動作すると、プレイヤは2つのオブジェクトを同時に意識して操作を行わなければならず、操作が困難になってしまう。これに対して、本実施形態によれば、(後述する、第2オブジェクト52が第1オブジェクト51を追従する場合を除き)1回のタッチ入力に対して2つのオブジェクトの両方が反応することがないので、プレイヤは2つのオブジェクトを容易に操作することができる。
【0075】
さらに、本実施形態では、ゲーム装置1は、上記指示領域を表す画像として上記軌跡マーク53を第2オブジェクト52の上に重ねて表示する。ここで、仮に指示領域が表示されないとすれば、いずれのオブジェクトを操作するかを示す境界がプレイヤにとってわからなくなるので、プレイヤが操作を誤ってしまうおそれがある。例えば、プレイヤが(第2オブジェクト52を操作しようとして)第2オブジェクト52の近傍の位置に対してタッチ入力を行ったものの、実際にはタッチ位置が指示領域の外側である結果、ゲーム装置1は第1オブジェクト51を動作させてしまうことがあり得る。これに対して、本実施形態では、上記軌跡マーク53を第2オブジェクト52の上に重ねて表示することによって、上記境界を明確に表示することができる。したがって、2つのオブジェクトを同一画像上で操作する場合であっても、プレイヤが意図しないオブジェクトが操作されてしまう誤操作を防止することができる。
【0076】
また、本実施形態では、プレイヤは、第2オブジェクト52が軌跡に沿って移動している途中で軌跡を変更することが可能である。図8および図9は、第2オブジェクト52の移動途中で軌跡を変更する操作を行った場合のゲーム画像を示す図である。図6および図7にも示したように、第2オブジェクト52が軌跡56に沿って移動する時、ゲーム装置1は、軌跡マーク53を第2オブジェクト52とともに軌跡56に沿って移動させる。この時において軌跡を変更する場合、プレイヤは、図8に示すように、軌跡マーク53の位置を始点とする新たな入力を行う。当該新たな入力が行われると、ゲーム装置1は、当該入力が行われる前に表示されていた軌跡56を消去する(図8では、消去される軌跡56を点線で示している)。また、第2オブジェクト52は停止する。続いてプレイヤは、図9に示すように、軌跡マーク53の位置を始点とする新たな軌跡57を入力する。軌跡57の入力が終了すると、ゲーム装置1は、新たな軌跡57に沿って第2オブジェクト52を移動させる。以上のように、ゲーム装置1は、第2オブジェクト52が軌跡56に沿って移動している間に、軌跡マーク53内を開始位置とする新たな入力が行われた場合、当該新たな入力により示される軌跡57に沿って第2オブジェクト52を移動させる。これによって、プレイヤは、第2オブジェクト52を移動させるための軌跡を容易に変更することができる。また、本実施形態においては、第2オブジェクト52とともに移動する軌跡マーク53が表示されるので、プレイヤは、この軌跡マーク53を目標に入力を行えばよく、軌跡の変更を行う場合においても上述の誤操作を防止することができる。
【0077】
また、本実施形態では、プレイヤは、軌跡に沿って第2オブジェクト52を移動させるだけでなく、第1オブジェクト51に追従するように第2オブジェクト52を移動させることも可能である。具体的には、第1オブジェクト51に追従するように第2オブジェクト52を移動させる場合、プレイヤは、上記追従アイコン55(図4または図7)に対してタッチパネル13を用いて入力を行う(追従アイコン55の位置をタッチする)。追従アイコン55に対して入力が行われた場合、ゲーム装置1は、第1オブジェクト51の位置に基づいて第2オブジェクト52の移動を制御する。具体的には、第1オブジェクト51に追従するように第2オブジェクト52の移動を制御する。したがって、本実施形態では、第2オブジェクト52が第1オブジェクト51から離れてしまった場合でも、第2オブジェクト52を第1オブジェクト51の近傍へと容易に移動させることができる。なお、本実施形態では、ゲーム装置1は、開始位置が軌跡マーク53の内側となる入力がゲーム空間画像上に行われている間は少なくとも消去する。すなわち、第1オブジェクト51が操作されている間は追従アイコン55は表示されず(図4、図7)、第2オブジェクト52が操作されている間は追従アイコン55が表示される(図5、図6)。このように、本実施形態では、追従アイコン55は必要でない場合には表示されないので、プレイヤの誤操作を防止することができるとともに、プレイヤにとって見やすいゲーム画像を提供することができる。
【0078】
また、本実施形態では、プレイヤは、各オブジェクト51および52のうちで操作対象となるオブジェクトを切り替えることができる。具体的には、オブジェクトの切替を行う場合、プレイヤは、上記切替アイコン54(図3等)に対してタッチパネル13を用いて入力を行う(切替アイコン54の位置をタッチする)。切替アイコン54に対して入力が行われた場合、ゲーム装置1は、下側LCD12に表示されるゲーム空間画像内に第1オブジェクト51が含まれるように表示領域が設定される状態と、ゲーム空間画像内に第2オブジェクトが含まれるように表示領域が設定される状態とを切り替える。本実施形態では、第1および第2オブジェクト51および52のいずれかが下側LCD12の表示領域の外側へ移動してしまい、両方のオブジェクトを同時に下側LCD12に表示することができない場合がある。このような場合であっても、プレイヤは、各オブジェクト51および52のうちで表示したいオブジェクト(操作したいオブジェクト)を下側LCD12に容易に表示させることができる。
【0079】
また、本実施形態では、ゲーム装置1は、上側LCD22に、上記ゲーム空間画像により表される領域よりも広い領域を表すマップ画像を表示する。図10は、ゲーム装置1の上側LCD22に表示されるゲーム画像を示す図である。図10に示されるように、上側LCD22には、マップ画像に重ねて、第1オブジェクト51を表すマーク61と、第2オブジェクトを表すマーク62とが表示される。さらに、第2オブジェクト52を移動させるための軌跡が入力されている場合には、マップ画像に重ねて当該軌跡63が表示される。これによって、プレイヤは、入力した軌跡をマップ画像上でも確認することができる。
【0080】
また、本実施形態では、ゲーム装置1は、軌跡に沿って移動している第2オブジェクト52に所定の動作を行わせることがある。ここでは、第2オブジェクト52が軌跡の移動の途中で行う動作を「途中動作」と呼ぶ。図11は、第2オブジェクト52が軌跡56を移動している途中のゲーム画像を示す図である。なお、図11では、図面を見やすくする目的で第1オブジェクト51が表示されていないゲーム画像を記載するが、第1オブジェクト51がゲーム画像内に含まれていてもよい(図12〜図15についても同様)。
【0081】
図11では、軌跡56を移動している第2オブジェクト52の近くに敵オブジェクト66が存在している。第2オブジェクト52は、軌跡56の移動中において敵オブジェクト66に近づくと、敵オブジェクト66を攻撃する途中動作を行う。以下では、途中動作を行う目標となるオブジェクトを、「目標オブジェクト」と呼ぶ。目標オブジェクトは、図11に示すような敵オブジェクト66であってもよいし、アイテムのオブジェクトであってもよいし、ゲーム空間に配置される岩等の移動不可能なオブジェクトであってもよい。目標オブジェクトに対する第2オブジェクト52の途中動作の制御は、プレイヤによる操作によって行われるのではなく、ゲーム装置1によって自動的に行われる。
【0082】
図12は、途中動作を第2オブジェクト52が終了した時点におけるゲーム画像を示す図である。図12においては、第2オブジェクト52は、敵オブジェクト66に対する途中動作を終了した(敵オブジェクト66を倒した)時点で、軌跡56から離れた位置に存在する。途中動作は軌跡56に基づかずに行われるので、途中動作が終了した時点における第2オブジェクト52の位置は、図12に示すように、軌跡56から離れている場合がある。この場合、ゲーム装置1は、第2オブジェクト52を軌跡56上の位置に復帰(移動)させ、さらに、軌跡56に沿った移動を再開させる。
【0083】
具体的には、上記途中動作が終了すると、ゲーム装置1は、動作を終了したオブジェクトが軌跡56に復帰する位置である復帰位置を決定する。なお、詳細は後述するが、本実施形態では、復帰位置は、途中動作を終了したオブジェクトの位置と、ゲーム空間内における軌跡56の位置とに基づいて決定される。そして、ゲーム装置1は、途中動作を終了した第2オブジェクト52を復帰位置へと復帰(移動)させてから、軌跡56に沿った移動を再開させる。このようにして、第2オブジェクト52による軌跡56に沿った移動は、第2オブジェクト52が途中動作を行った場合でも、軌跡56の終点まで行われる。
【0084】
以上より、本実施形態によれば、第2オブジェクト52が軌跡56を離れて途中動作を行った場合であっても、第2オブジェクト52は軌跡56に沿った移動を再開する。したがって、プレイヤは、途中動作が行われた場合であっても、軌跡を再度入力する必要がなく、途中動作が行われる前に入力した軌跡の終端まで第2オブジェクト52を移動させることができる。そのため、本実施形態によれば、途中動作が行われる度に軌跡を入力する必要があった従来技術に比べて、オブジェクトを移動させるための軌跡を簡易な操作でプレイヤに入力させることができる。
【0085】
次に、上記復帰位置を決定する処理について説明する。なお、本実施形態では、ゲーム装置1は、復帰位置を決定する処理において、当該処理を簡易化・高速化を図る目的で、軌跡56上から選出される複数の登録ポイントを用いる。すなわち、ゲーム装置1は、軌跡56を構成する各点のうち、所定時間間隔で入力された1以上の点を登録ポイントとして記憶しておく。図11〜図15に示す点P1〜点P10は、それぞれ、登録ポイントを示している。上記復帰位置は、これら登録ポイントのうちから選出される。
【0086】
上記途中動作が行われる場合、ゲーム装置1は、途中動作が開始された時点における第2オブジェクト52の位置(登録ポイント)を「元ポイント」として記憶しておく。ここでは、第2オブジェクト52がすでに通過した登録ポイントのうちで、途中動作の開始時点における位置に最も近い登録ポイントが元ポイントして記憶される。図11に示す例では、途中動作の開始時点における第2オブジェクト52の位置は登録ポイントP2とP3との間であるので、登録ポイントP2が元ポイントとして記憶される。
【0087】
途中動作が終了した場合、ゲーム装置1は、途中動作を終了した時点における第2オブジェクト52の位置から最短時間で到達することができる登録ポイントを「最短ポイント」として選出する。図12においては、途中動作を終了した時点における位置から最近の登録ポイントP6が「最短ポイント」として選出される。
【0088】
上記最短ポイントを選出すると、ゲーム装置1は、最短ポイントが軌跡上において上記元ポイント以降の位置であるか否かを判定する。ここで、本明細書では、軌跡上における前後を、第2オブジェクト52が軌跡上の位置を通過する時間(時刻)を基準に表現する。つまり、「位置Aが位置B以降である」とは、「第2オブジェクト52が位置Aを通過した後で位置Bを通過する」ことを意味する。また、「最短ポイントが元ポイントより前の位置にある」とは、「第2オブジェクト52が最短ポイントをすでに通過した」ことを意味する。
【0089】
最短ポイントが元ポイント以降の位置である場合、ゲーム装置1は、最短ポイントの位置を復帰位置(復帰ポイント)に決定する。したがって、途中動作を終了した第2オブジェクト52は、最短ポイントへ移動した後、軌跡56に沿って移動を再開することとなる。例えば図12の場合には、最短ポイントP6は元ポイントP2より後に位置するので、第2オブジェクト52は最短ポイントP6へ移動し、軌跡56に沿った移動を最短ポイントP6から再開する。
【0090】
このように、本実施形態においては、ゲーム装置1は、途中動作を終了した第2オブジェクト52の位置からの到達時間(または到達距離)に基づいて復帰位置を決定する。具体的には、図12の場合であれば、途中動作を終了した位置から最も短い時間で到達できる登録ポイントが復帰ポイントとなる。ここで、仮に、図12に示すゲーム状態において上記元ポイントの位置を復帰ポイントとした場合には、第2オブジェクト52は、すでに登録ポイントP6の付近まで進んでいたにもかかわらず、現在位置(途中動作を終了した位置)から離れた元ポイントP2の位置まで戻って、元ポイントP2から登録ポイントP6の位置へと進むことになる。上記の場合、第2オブジェクト52は非効率に移動を行ったことになり、移動に要する時間もかかってしまうため、プレイヤがいらいら感を募らせることになる。これに対して、本実施形態によれば、第2オブジェクト52を迅速に軌跡56に復帰させることができ、第2オブジェクト52を効率良く移動させることができる。
【0091】
なお、本実施形態においては、上記最短ポイントは、途中動作を終了した時点における第2オブジェクト52の位置から最短時間で到達することができる登録ポイントである。したがって、途中動作を終了した時点における位置と、当該位置から最も近い距離にある登録ポイントとの間に障害物等が存在する場合には、当該登録ポイントが最短ポイントにならない場合がある。図13は、途中動作を第2オブジェクト52が終了した時点におけるゲーム画像の他の例を示す図である。図13においては、途中動作を終了した時点における第2オブジェクト52の位置と、当該位置から最も近い登録ポイントP3との間には、池67(ここでは、第2オブジェクト52は池を通過することができないものとする)が存在する。このとき、ゲーム装置1は、池67を迂回しなければ到達できない登録ポイントP3〜P5を除外して、登録ポイントP1〜P10のうちから最短ポイントを選出する。その結果、図13の場合においては、登録ポイントP7が最短ポイントとして選出される。このように、途中動作を終了した位置からの到達時間に基づいて最短ポイントを選出することによって、第2オブジェクト52が最短時間で到達することができる登録ポイントをより正確に選出することができる。
【0092】
なお、本実施形態においては、ゲーム装置1は、最短ポイントの位置を常に復帰ポイントとするのではなく、状況に応じて元ポイントの位置を復帰ポイントとする。すなわち、最短ポイントが元ポイントよりも前の位置である場合(最短ポイントが元ポイント以降の位置でない場合)、ゲーム装置1は、元ポイントを復帰ポイントに決定する。図14は、途中動作を第2オブジェクト52が終了した時点におけるゲーム画像の他の例を示す図である。図14においては、最短ポイントは登録ポイントP1であり、元ポイントは登録ポイントP2であるとする。このとき、登録ポイントP2が復帰ポイントに決定され、途中動作を終了した第2オブジェクト52は、登録ポイントP2へ移動した後、軌跡56に沿って移動を再開する。
【0093】
このように、本実施形態においては、ゲーム装置1は、(第2オブジェクト52の進行方向に関して)元ポイント以降の位置となるように復帰位置(復帰ポイント)を決定する。ここで、仮に、図14に示すゲーム状態において上記最短ポイントである登録ポイントP1を復帰ポイントに決定した場合には、第2オブジェクト52は、登録ポイントP1から登録ポイントP2までを再度通過することになる。したがって、第2オブジェクト52が同じ軌跡を2度通過するという非効率な移動を行うために、プレイヤがいらいら感を募らせるおそれがある。これに対して、本実施形態によれば、第2オブジェクト52は、一度通過したことがある軌跡の部分を再度通過することがないので、第2オブジェクト52を効率良く移動させることができる。
【0094】
なお、他の実施形態においては、ゲーム装置1は、上記最短ポイントを常に復帰位置として決定してもよいし、あるいは、上記元ポイントを常に復帰位置として決定してもよい。例えば、ゲームの設定上、第2オブジェクト52を軌跡上に早く復帰させる必要がある場合(例えば、軌跡上に位置する間のみ敵キャラクタを攻撃できる等)には、最短ポイントを常に復帰位置とすることが有効である。また、プレイヤによって入力された軌跡に対して忠実に第2オブジェクト52を移動させたい場合には、元ポイントを常に復帰位置とすることが有効である。
【0095】
また、本実施形態では、上記目標オブジェクトのうちには、途中動作として所定のイベント動作を行わせるものがある。ここでは、所定のイベント動作を行わせる目標オブジェクトを、イベントオブジェクトと呼び、イベントオブジェクトの位置をイベント位置と呼ぶ。ゲーム装置1は、ゲーム空間内に設定されるイベント位置と第2オブジェクト52の位置とが所定の位置関係になった場合に、途中動作として第2オブジェクト52にイベント動作を行わせるのである。なお、上記目標オブジェクトの全てがイベントオブジェクトに設定されるわけではなく、予め定められた特定の目標オブジェクトのみがイベントオブジェクトとして設定される。例えば、敵オブジェクトや通常のアイテムのオブジェクトはイベントオブジェクトに設定されなくてもよく、ゲーム進行上重要なアイテムや仕掛けのオブジェクトがイベントオブジェクトに設定される。例えば、ゲームを進行させるために取得しなければならないアイテムのオブジェクトや、それを開けなければ先に進むことができない扉を開けるためのスイッチのオブジェクトは、イベントオブジェクトに設定される。
【0096】
ここで、本実施形態では、ゲーム装置1は、復帰位置を決定する際、軌跡上の位置のうちで、第2オブジェクト52が上記イベント動作を行う位置以前の位置となるように復帰位置を決定する。以下、詳細を説明する。
【0097】
ゲーム装置1は、軌跡上の位置(登録ポイント)のうちで、第2オブジェクト52が上記イベント動作を行う位置を優先ポイントとして設定する。つまり、優先ポイントとは、イベントオブジェクトがその近傍に存在する登録ポイントであり、換言すれば、その位置を第2オブジェクト52が通過するとイベント動作が行われる登録ポイントである。
【0098】
図15は、優先ポイントが設定される場合におけるゲーム画像を示す図である。図15においては、ゲーム空間に、イベントオブジェクトである壺のオブジェクト68および宝箱のオブジェクト69が配置されている。また、第2オブジェクト52が壺のオブジェクト68に近づいた場合、第2オブジェクト52は途中動作として壺から鍵を取る動作を行い、第2オブジェクト52が宝箱のオブジェクト69に近づいた場合、第2オブジェクト52は途中動作として鍵を用いて宝箱を開ける動作を行うものとする。図15においては、壺のオブジェクト68の近傍を通ってから宝箱のオブジェクト69の近傍を通る軌跡56がプレイヤによって入力されている。このとき、ゲーム装置1は、壺のオブジェクト68が所定距離内に含まれる登録ポイントP4、および、宝箱のオブジェクト69が所定距離内に含まれる登録ポイントP10を、優先ポイントとして設定する。
【0099】
また、図15に示すゲーム状態は、登録ポイントP2を元ポイントとする途中動作が第2オブジェクト52によって行われ、当該途中動作が終了した状態であるとする。このとき、ゲーム装置1は、上述したように、登録ポイントP6を最短ポイントに決定し、最短ポイントが元ポイントより前の位置である場合には、元ポイントを復帰ポイントに決定する。
【0100】
ここで、もし最短ポイントP6が復帰ポイントに決定された場合には、第2オブジェクト52が優先ポイントをスキップして移動することになるので、第2オブジェクト52は壺から鍵を取る動作を行わなくなる。しかしながら、図15に示す軌跡56が入力された場合には、プレイヤは、まず壺から鍵を取って、それから宝箱の所に向かって宝箱を開ける動作を第2オブジェクト52に行わせるべく、軌跡56を入力したと推測される。したがって、途中動作を終了した第2オブジェクトが軌跡に復帰する際に、第2オブジェクト52が優先ポイントをスキップしてしまうと、プレイヤの意図に反して第2オブジェクト52の動作が行われてしまうことになる。
【0101】
そこで、本実施形態では、ゲーム装置1は、優先ポイント以前の位置となるように復帰ポイントを決定する。すなわち、ゲーム装置1は、(最短ポイントが元ポイントより前の位置でない場合、)最短ポイントが優先ポイントより後の位置であるか否かを判定する。そして、最短ポイントが優先ポイントより後の位置である場合、ゲーム装置1は、最短ポイントを復帰ポイントにはせず、元ポイントを復帰ポイントに決定する。また、最短ポイントが優先ポイント以前の位置である場合(最短ポイントが優先ポイントより後の位置でない場合)、ゲーム装置1は、最短ポイントを復帰ポイントに決定する。したがって、図15に示す場合においては、最短ポイントP6が優先ポイントP4よりも後の位置であるので、元ポイントP2が復帰ポイントとなる。これによれば、途中動作を行った第2オブジェクト52が優先ポイントをスキップして優先ポイント以降の登録ポイントへ復帰することがないので、第2オブジェクト52は優先ポイントを確実に通過することとなる。そのため、プレイヤの意図に適合した動作を第2オブジェクト52に行わせることができ、操作性の良いゲームを提供することができる。
【0102】
[ゲーム処理の詳細]
以下、図16〜図23を参照して、本実施形態に係るゲームプログラムによって実行されるゲーム処理の詳細について説明する。まず、ゲーム処理において用いられる各種データについて説明する。図16は、ゲーム装置1のメインメモリ32に記憶されるデータを示す図である。図16において、メインメモリ32には、本実施形態に係るゲームプログラム71およびゲーム処理用データ72が記憶される。
【0103】
ゲームプログラム71は、後述するゲーム処理(図17)をゲーム装置1のCPU31に実行させるためのプログラムである。ゲームプログラム71は、メモリカード29から適宜のタイミングで読み込まれることによってメインメモリ32に記憶されてもよいし、ゲーム装置1の外部との通信によって取得されることによってメインメモリ32に記憶されてもよい。
【0104】
ゲーム処理用データ72は、後述するゲーム処理(図17)において用いられるデータである。ゲーム処理用データ72は、タッチ入力データ73、入力軌跡データ74、登録軌跡データ75、登録ポイントデータ76、元ポイントデータ77、最短ポイントデータ78、優先ポイントデータ79、復帰ポイントデータ80、第1オブジェクトデータ81、第2オブジェクトデータ82、軌跡マークデータ83、軌跡表示フラグデータ84、追従フラグデータ85、操作対象フラグデータ86、および、動作フラグデータ87を含む。なお、ゲーム処理用データ72は、図16に示すデータの他、ゲームに登場する各種オブジェクトおよびアイコンの画像データや、各種オブジェクトに設定されるパラメータを示すデータ等、ゲーム処理に必要なデータを含む。
【0105】
タッチ入力データ73は、上記タッチ位置データとしてタッチパネル13から取得されるデータである。具体的には、タッチ入力データ73は、プレイヤがタッチパネル13に対して入力を行った場合には、入力が行われた位置(タッチ位置)の座標を示し、プレイヤがタッチパネル13に対して入力を行っていない場合には、入力が行われなかったことを示す。
【0106】
入力軌跡データ74は、タッチパネル13に対して入力されている軌跡を示すデータである。具体的には、入力軌跡データ74は、連続して入力された1以上のタッチ位置の座標を(入力順に)示す。つまり、プレイヤがタッチパネル13に対して軌跡を描く入力を行った場合、当該軌跡を構成する各点の座標を入力順に示すデータがタッチ入力データ73としてメインメモリ32に記憶される。
【0107】
登録軌跡データ75は、第2オブジェクト52を移動させるための軌跡として登録された軌跡を示すデータである。上述のように、本実施形態では、プレイヤが入力した軌跡の全てが第2オブジェクト52の移動に用いられるわけではなく、始点が軌跡マーク53の内側に位置する軌跡のみが第2オブジェクト52の移動に用いられる。すなわち、プレイヤが入力した軌跡のうちで、始点が軌跡マーク53の内側に位置する軌跡を示すデータは、登録軌跡データ75としてメインメモリ32に記憶される。
【0108】
登録ポイントデータ76は、プレイヤによって入力された軌跡に設定される1以上の登録ポイントを示すデータである。具体的には、登録ポイントは、登録軌跡データ75により示される(入力順に並んだ)各タッチ位置のうちから、所定個数間隔で1つ(例えば、100個に1つ)を抽出した1以上のタッチ位置を示す。したがって、登録ポイントは、軌跡を構成する各点のうち、所定時間間隔で入力された点と言える。なお、他の実施形態においては、ゲーム装置1は、軌跡を構成する各点のうち、所定距離間隔で入力された点を登録ポイントとして抽出してもよい。また、本実施形態では、ゲーム装置1は、抽出された各登録ポイントに入力順に番号を付したデータを登録ポイントデータ76として記憶しておく。
【0109】
元ポイントデータ77は、上述した元ポイントを示すデータである。本実施形態では、各登録ポイントに番号が付されるので、元ポイントデータ77は、元ポイントに付された番号を示すデータである。また、最短ポイントデータ78は、上述した最短ポイントを示すデータであり、優先ポイントデータ79は、上述した優先ポイントを示すデータであり、復帰ポイントデータ80は、上述した復帰ポイントを示すデータである。元ポイントデータ77と同様に、最短ポイントデータ78、優先ポイントデータ79、および復帰ポイントデータ80は、登録ポイントに付された番号を示す。
【0110】
第1オブジェクトデータ81は、第1オブジェクト51に対して設定される各種パラメータを示すデータである。また、第2オブジェクトデータ82は、第2オブジェクト52に対して設定される各種パラメータを示すデータである。本実施形態では、上記パラメータには、ゲーム空間における第1オブジェクト51(または第2オブジェクト52)の位置を示す情報が含まれる。その他、上記パラメータには、第1オブジェクト51(または第2オブジェクト52)の体力値や能力値を示す情報が含まれていてもよい。
【0111】
軌跡マークデータ83は、軌跡マーク53の位置を示すデータである。本実施形態においては、軌跡マーク53は、仮想のゲーム空間に配置されるオブジェクトであり、軌跡マークデータ83は、ゲーム空間内の位置座標を示す。軌跡マーク53の位置は、上記第2オブジェクトデータ82により示される第2オブジェクト52の位置に基づいて決定される。
【0112】
軌跡表示フラグデータ84は、軌跡表示フラグの内容(オンであるかオフであるか)を示すデータである。軌跡表示フラグは、第2オブジェクト52を移動させるための軌跡を表示するか否かを表す。すなわち、上記軌跡を表示する場合、軌跡表示フラグはオンに設定され、上記軌跡を表示しない場合、軌跡表示フラグはオフに設定される。
【0113】
追従フラグデータ85は、追従フラグの内容(オンであるかオフであるか)を示すデータである。追従フラグは、第2オブジェクト52に第1オブジェクト51を追従させる指示がプレイヤによって行われているか否かを表す。すなわち、上記指示がプレイヤによって行われている場合、追従フラグはオンに設定され、上記指示がプレイヤによって行われている場合、追従フラグはオフに設定される。
【0114】
操作対象フラグデータ86は、操作対象フラグの内容(オンであるかオフであるか)を示すデータである。操作対象フラグは、プレイヤの操作対象が第1オブジェクト51および第2オブジェクト52のいずれであるかを表す。すなわち、プレイヤの操作対象が第2オブジェクト52である場合、操作対象フラグはオンに設定され、プレイヤの操作対象が第1オブジェクト51である場合、操作対象フラグはオフに設定される。
【0115】
動作フラグデータ87は、動作フラグの内容(オンであるかオフであるか)を示すデータである。動作フラグは、第2オブジェクト52が上述の途中動作を行っているか否かを表す。すなわち、第2オブジェクト52が途中動作を行っている場合、動作フラグはオンに設定され、第2オブジェクト52が途中動作を行っていない場合、動作フラグはオフに設定される。
【0116】
次に、ゲーム装置1において行われるゲーム処理の詳細を、図17〜図23を用いて説明する。図17は、ゲーム装置1において実行されるゲーム処理の流れを示すメインフローチャートである。電源ボタン14Fが押下されることによってゲーム装置1の電源が投入されると、ゲーム装置1のCPU31は、メインメモリ32等の初期化を行った後、図17に示すゲーム処理を行うためのゲームプログラム71の実行を開始する。ゲームプログラム71の実行によって、CPU31が請求項に記載の各手段として機能することとなる。つまり、ゲームプログラム71は、請求項に記載の各手段としてCPU31を機能させる。
【0117】
まずステップS1において、CPU31は初期処理を行う。具体的には、仮想のゲーム空間が構築され、ゲーム空間に登場する各オブジェクト(第1および第2オブジェクト51および52を含む)が初期位置に配置される。したがって、メインメモリ32に記憶される第1オブジェクトデータ81は、第1オブジェクト51の初期位置を示すように設定され、第2オブジェクトデータ82は、第2オブジェクト52の初期位置を示すように設定される。また、CPU31は、各オブジェクトが上記初期位置に配置されたゲーム空間の画像が下側LCD12に表示し、当該ゲーム空間を含む所定領域のマップ画像が上側LCD22に表示する。さらに、CPU31は、ゲーム処理に用いられる各種パラメータや各種フラグについて初期値を設定する。ここでは、軌跡表示フラグデータ84はオフを示すように設定され、追従フラグデータ85はオフを示すように設定され、操作対象フラグデータ86はオフを示すように設定され、動作フラグデータ87はオフを示すように設定される。ステップS1の次にステップS2の処理が実行される。以下、ステップS2〜S9の処理ループは、所定時間(例えば1/60秒)に1回の割合で実行される。
【0118】
ステップS2において、CPU31は、プレイヤによるゲーム操作の入力を受け付ける。具体的には、CPU31はタッチパネル13からタッチ位置データを取得し、タッチ入力データ73としてメインメモリ32に記憶する。なお、本実施形態では、前回のステップS2において取得されたタッチ位置データがメインメモリ32に保存(記憶)される。
【0119】
また、ステップS2においてはさらに、CPU31は、メインメモリ32に記憶される入力軌跡データ74を更新する処理を実行する。上述のように、入力軌跡データ74は、連続して入力された1以上のタッチ位置の座標を(入力順に)示すものである。上記の更新処理は、タッチパネル13によってゲーム空間画像上に入力された軌跡を検出するための処理である。具体的には、CPU31は、次に示す処理に従って入力軌跡データ74を更新する。
【0120】
まず、ステップS2で取得されたタッチ位置データにより示されるタッチ位置が入力の開始位置である場合(前回のステップS2において取得されたタッチ位置データが、入力が行われなかったことを示す場合)、CPU31は、入力軌跡データ74の内容をリセットする。具体的には、CPU31は、現在の入力軌跡データ74の内容を消去し、ステップS2で取得されたタッチ位置データを、更新後の新たな入力軌跡データ74としてメインメモリ32に記憶する。一方、ステップS2で取得されたタッチ位置データにより示されるタッチ位置が入力の開始位置でない場合、CPU31は、当該タッチ位置が追加されるように入力軌跡データ74を更新する。つまり、更新後の入力軌跡データ74は、更新前の入力軌跡データ74により示される1以上のタッチ位置に対して、ステップS2で取得されたタッチ位置データにより示されるタッチ位置を加えた内容を示すように更新される。なお、ステップS2で取得されたタッチ位置データが、タッチパネル13に対する入力が行われなかったことを示す場合、入力軌跡データ74の更新は行われない。
【0121】
上記ステップS2の次のステップS3において、CPU31は入力判別処理を実行する。入力判別処理は、プレイヤによるタッチ入力が、どのような指示を行うための入力操作であるか(例えば、第2オブジェクト52を移動させるための入力操作であるか、第1オブジェクト51に動作を行わせるための入力操作であるか等)を判別する処理である。以下、図18を参照して、入力判別処理の詳細について説明する。
【0122】
図18は、図17に示す入力判別処理(ステップS3)の流れを示すフローチャートである。入力判別処理においては、まずステップS11において、CPU31は、タッチ入力が開始されたか否かを判定する。ステップS11の判定は、今回のタッチ位置データ(今回のステップS2において取得されたタッチ位置データ)と、前回のタッチ位置データ(前回のステップS2において取得されたタッチ位置データ)とを参照することにより行うことができる。すなわち、CPU31は、今回のタッチ位置データがタッチ位置を示し(入力が行われなかったことを示すものではなく)、かつ、前回のタッチ位置データが、入力が行われなかったことを示す場合、タッチ入力が開始されたと判定する。逆に、今回のタッチ位置データが、入力が行われなかったことを示す場合、あるいは、前回のタッチ位置データがタッチ位置を示す場合、タッチ入力が開始されていないと判定する。ステップS11の判定結果が肯定である場合、ステップS12の処理が実行される。一方、ステップS11の判定結果が否定である場合、CPU31は入力判別処理を終了する。
【0123】
ステップS12において、CPU31は、追従アイコン55に対して入力が行われたか否かを判定する。ステップS12の判定は、タッチパネル13の入力面(下側LCD12の表示画面)上において、今回のタッチ位置(タッチ入力の開始位置)が、追従アイコン55の領域内であるか否かによって行われる。すなわち、CPU31は、タッチ入力データ73をメインメモリから読み出し、タッチ入力データ73により示されるタッチ位置が、追従アイコン55が表示される領域内であるか否かを判定する。なお、追従アイコン55が表示される領域は、予め定められているものとする。ステップS12の判定結果が肯定である場合、ステップS13の処理が実行される。一方、ステップS12の判定結果が否定である場合、後述するステップS14の処理が実行される。
【0124】
ステップS13において、CPU31は、追従フラグをオンに設定する。すなわち、メインメモリ32に記憶されている追従フラグデータ85の内容を、オンを示すように更新する。ステップS13の後、CPU31は入力判別処理を終了する。
【0125】
一方、ステップS14において、CPU31は、切替アイコン54に対して入力が行われたか否かを判定する。ステップS14の判定は、タッチパネル13の入力面(下側LCD12の表示画面)上において、今回のタッチ位置が、切替アイコン54の領域内であるか否かによって行われる。すなわち、CPU31は、タッチ入力データ73をメインメモリから読み出し、タッチ入力データ73により示されるタッチ位置が、切替アイコン54の領域内であるか否かを判定する。なお、切替アイコン54が表示される領域は、予め定められているものとする。ステップS14の判定結果が肯定である場合、ステップS15の処理が実行される。一方、ステップS14の判定結果が否定である場合、後述するステップS16の処理が実行される。
【0126】
ステップS15において、CPU31は操作対象フラグを反転させる。すなわち、操作対象フラグデータ86をメインメモリ32から読み出し、その内容がオンであればオフとなるように、オフであればオンとなるように、操作対象フラグデータ86の内容を更新する。ステップS15の後、CPU31は入力判別処理を終了する。
【0127】
一方、ステップS16において、CPU31は、軌跡マーク53に対して入力が行われたか否かを判定する。ステップS16の判定は、タッチパネル13の入力面(下側LCD12の表示画面)上において、今回のタッチ位置が、軌跡マーク53の領域内であるか否かによって行われる。CPU31は、タッチ入力データ73および軌跡マークデータ83をメインメモリから読み出す。そして、読み出したデータに基づいて、今回のタッチ位置が、軌跡マーク53が表示される領域の内側であるか否かを判定する。ステップS16の判定結果が肯定である場合、ステップS17の処理が実行される。一方、ステップS16の判定結果が否定である場合、ステップS19の処理が実行される。
【0128】
ステップS17において、CPU31は、軌跡表示フラグ、追従フラグ、および、操作対象フラグの内容を変更する。すなわち、CPU31は、メインメモリ32に記憶されている軌跡表示フラグデータ84の内容を、オンを示すように更新する。また、CPU31は、メインメモリ32に記憶されている追従フラグデータ85の内容を、オフを示すように更新する。さらに、CPU31は、メインメモリ32に記憶されている操作対象フラグデータ86の内容を、オンを示すように更新する。ステップS17の次にステップS18の処理が実行される。
【0129】
ステップS18において、CPU31は、後述するステップS24によって登録された軌跡がある場合、当該軌跡を削除する。すなわち、CPU31は、メインメモリ32に記憶されている登録軌跡データ75を削除する。また、このとき、CPU31は、登録軌跡データ75とともに登録ポイントデータ76も削除する。ステップS18の後、CPU31は入力判別処理を終了する。
【0130】
一方、ステップS19において、CPU31は、操作対象フラグをオフに設定する。すなわち、メインメモリ32に記憶されている操作対象フラグデータ86の内容を、オフを示すように更新する。ステップS19の後、CPU31は入力判別処理を終了する。
【0131】
以上のように、入力判別処理においては、CPU31は、検出されたタッチ位置が入力の開始位置であるか否かを判定し(ステップS11)、当該タッチ位置が入力の開始位置である場合、タッチ入力がどのような指示を行うための入力であるかを判別する。具体的には、CPU31は、次のように判別する。
・追従アイコン55に対する入力である場合、第2オブジェクト52を第1オブジェクト51に追従させる指示と判別し、追従フラグをオンにする(ステップS13)。
・切替アイコン54に対する入力である場合、操作対象を切り替える指示と判別し、操作対象フラグを反転する(ステップS14)。
・軌跡マーク53に対する入力である場合、第2オブジェクト52を軌跡に沿って移動させる指示と判別し、軌跡表示フラグおよび操作対象フラグをオンにし、追従フラグをオフにする(ステップS17)。
・上記以外の場合(軌跡マーク53、ならびに、各アイコン54および55以外のゲーム空間画像に対する入力である場合)、第1オブジェクト51を動作させる指示と判別し、操作対象フラグをオフにする(ステップS19)。
【0132】
なお、上記入力判定処理においては、CPU31は、プレイヤによる入力の開始位置が軌跡マーク53の内側であるかであるかによって、当該入力に従って第2オブジェクト52を制御するか第1オブジェクト51を制御するかの選択を行った。ここで、他の実施形態においては、上記の選択は、入力の開始位置に限らず、任意の入力位置(入力途中の位置、および、入力が終了した時点の位置を含む)に基づいて行われてもよい。具体的には、CPU31は、タッチ入力が開始された場合(ステップS11でYes)だけでなく、入力が行われる領域が切り替わった(例えば、入力位置が軌跡マーク53の内側から外側へ切り替わった)場合にも、ステップS12〜S19の処理を実行するようにしてもよい。これによれば、軌跡マーク53の外側の領域に対してタッチ入力を行っていた後で、タッチ入力を継続したまま、軌跡マーク53の内側の領域に対して入力を行った場合(タッチ入力を軌跡マーク53の外側から内側へ移動させた場合)には、第1オブジェクト51が動作を行った後に続けて、第2オブジェクト52を移動させるための軌跡が入力されることになる。これによれば、プレイヤは、連続した入力で2つのオブジェクトを操作することができるようになる。ただし、プレイヤが軌跡マーク53の外側から内側へタッチ入力を誤って移動させてしまう状況も考えられる。このような状況を考慮する場合には、本実施形態のように、入力の開始位置に基づいて上記選択を行うことが好ましい。
【0133】
図17の説明に戻り、ステップS3の次のステップS4において、CPU31は、軌跡設定処理を実行する。軌跡設定処理は、プレイヤによって入力された軌跡のうちから、第2オブジェクト52を移動させるための軌跡を設定(登録)するための処理である。以下、図19を参照して、軌跡設定処理の詳細を説明する。
【0134】
図19は、図17に示す軌跡設定処理(ステップS4)の流れを示すフローチャートである。軌跡設定処理においては、まずステップS21において、CPU31は、今回のステップS2においてタッチ入力が行われたか否かを判定する。なお、ステップS21の判定は、タッチ入力データ73がタッチ位置を示すか否かによって行うことができる。ステップS21の判定結果が肯定である場合、CPU31は軌跡設定処理を終了する。一方、ステップS21の判定結果が否定である場合、ステップS22の処理が実行される。
【0135】
ステップS22において、CPU31は、タッチ入力が終了した直後であるか否かを判定する。ステップS22の判定は、前回のステップS2において取得されたタッチ位置データを参照することにより行うことができる。すなわち、CPU31は、前回のステップS2において取得されたタッチ位置データがタッチ位置を示す場合、タッチ入力が終了した直後であると判定し、当該タッチ位置データが入力が行われなかったことを示す場合、タッチ入力が終了した直後ではないと判定する。ステップS22の判定結果が肯定である場合、ステップS23の処理が実行される。一方、ステップS22の判定結果が否定である場合、CPU31は軌跡設定処理を終了する。
【0136】
ステップS23において、CPU31は、操作対象フラグデータ86をメインメモリ32から読み出して参照し、操作対象フラグがオンに設定されているか否かを判定する。ステップS23の判定処理は、現在入力中である軌跡が、軌跡マーク53内の領域を開始位置とするものであるか否か、換言すれば、第2オブジェクト52を移動させるための軌跡であるか否かを判定するための処理である。ステップS23の判定結果が肯定である場合、ステップS24の処理が実行される。一方、ステップS23の判定結果が否定である場合、CPU31は軌跡設定処理を終了する。
【0137】
ステップS24において、CPU31は、プレイヤによって入力された軌跡を、第2オブジェクト52を移動させるための軌跡として設定する。具体的には、入力軌跡データ74をメインメモリ32から読み出し、読み出した入力軌跡データ74を、登録軌跡データ75としてメインメモリ32に記憶する。ステップS24の次にステップS25の処理が実行される。
【0138】
以上のステップS21〜S24のように、軌跡設定処理においては、タッチ入力が終了した直後であって(ステップS22でYes)、かつ、操作対象フラグがオンである場合(ステップS23でYes)に、入力軌跡が登録される。つまり、本実施形態においては、軌跡マーク53内を開始位置とする軌跡の入力が終了した時点で、当該軌跡が登録されることとなる。
【0139】
ステップS25において、CPU31は、上記ステップS24で登録された軌跡に対して登録ポイントを設定する。具体的には、CPU31は、登録軌跡データ75をメインメモリ32から読み出し、登録軌跡データ75により示される各タッチ位置のうちから、所定個数間隔でタッチ位置を抽出する。例えば100個間隔でタッチ位置を抽出する場合、入力順に並んだ各タッチ位置のうちから、1+100n番目(nは0以上の整数)のタッチ位置がそれぞれ抽出される。さらに、CPU31は、抽出された1以上のタッチ位置に対して入力順に番号を付したデータを、登録ポイントデータ76としてメインメモリ32記憶する。ステップS25の次にステップS26の処理が実行される。
【0140】
ステップS26において、CPU31は、ステップS25で設定された登録ポイントに対して優先ポイントを設定する。本実施形態においては、目標オブジェクトのうちでイベントオブジェクトとなるオブジェクトが予め設定されており、イベントオブジェクトの位置(イベント位置)を示すデータがメインメモリ32に記憶されている。CPU31は、上記設定された登録ポイントについて、イベント位置が所定距離内に存在するか否かを判定する。なお、この所定距離は、後述する球形の探索エリアの半径である。つまり、ステップS26の処理は、実際に登録ポイントの位置に達した場合に第2オブジェクト52がイベント動作を行うか否かを判定するための処理である。具体的には、CPU31は、登録軌跡データ75をメインメモリ32から読み出し、登録軌跡データ75により示される各タッチ位置に対応するゲーム空間内の位置を算出する。そして、算出された位置から上記所定距離内にイベント位置が存在する否かを判定する。さらに、イベント位置が所定距離内に存在する登録ポイントがあった場合、CPU31は当該登録ポイントを優先ポイントに設定する。すなわち、CPU31は、当該登録ポイントを示すデータ(登録ポイントに付された番号を示すデータ)を優先ポイントデータ80としてメインメモリ32に記憶する。なお、本実施形態では、複数の登録ポイントに対して同一のイベント位置が所定距離内に存在すると判定された場合には、いずれか1つの登録ポイント(例えば、軌跡上において最も後に位置する登録ポイント)のみに対して優先ポイントが設定される。ステップS26の後、CPU31は軌跡設定処理を終了する。
【0141】
なお、軌跡設定処理においては、軌跡の入力が完了した(ステップS22およびS23でYes)ことに応じて、当該軌跡に対して優先ポイントが設定される。軌跡が決まれば、その上に設定されるべき優先ポイントも決まるので、優先ポイントの設定(記憶)は、本実施形態のように、軌跡が入力される毎に行われることが好ましい。なお、本実施形態では、優先ポイントを設定するタイミングを、軌跡の入力が完了した直後としているが、他の実施形態においては、CPU31は、第2オブジェクト52が途中動作を開始するタイミング(動作フラグがオンになるタイミング)や、復帰ポイント決定処理(S52)を実行する直前のタイミングで上記ステップS26の処理を実行してもよい。
【0142】
図17の説明に戻り、ステップS4の次のステップS5において、CPU31は、操作対象フラグがオンに設定されているか否かを判定する。ステップS5の判定処理は、上記ステップS22の判定処理と同じである。ステップS5の判定結果が否定である場合、ステップS6の処理が実行される。一方、ステップS5の判定結果が肯定である場合、後述するステップS7の処理が実行される。
【0143】
ステップS6において、CPU31は、プレイヤの入力に従って第1オブジェクト51の動作を制御する。本実施形態では、CPU31は、タッチ位置に対応する(ゲーム空間内の)位置へ向かって第1オブジェクト51を移動させる。具体的には、CPU31は、まず、第1オブジェクトデータ81およびタッチ入力データ73をメインメモリ32から読み出し、タッチ入力データ73により示されるタッチ位置に対応するゲーム空間内の位置を算出する。そして、第1オブジェクトデータ81により示される位置を、上記算出された位置の方向へ所定距離だけ移動させた位置を、第1オブジェクト51の新たな位置とする更新を行う。更新後の位置を示すデータは、第1オブジェクトデータ81としてメインメモリ32に記憶される。上記の更新を複数フレームにわたって繰り返す(ステップS2〜S9の処理ループを複数回繰り返す)ことによって、第1オブジェクト51を所定の速度で移動させることができる。ステップS6の処理の次に、ステップS7の処理が実行される。
【0144】
上記ステップS6のように、本実施形態においては、ゲーム装置1は、タッチパネル13によって行われた入力に応じて第1オブジェクト51の動作を制御する。したがって、プレイヤは、第1オブジェクト51および第2オブジェクト52の両方をタッチパネルによって操作することができる。なお、上記ステップS6においては、CPU31は、第1オブジェクト51の動作を制御する処理の一例として、タッチ位置に対応するゲーム空間内の位置へ向かって第1オブジェクト51を移動させる処理を実行するものとした。ここで、他の実施形態においては、プレイヤの入力に従って行われる第1オブジェクト51の動作は、どのようなものであってもよい。例えば、CPU31は、プレイヤによって入力された軌跡の形状や、プレイヤによって入力された(線状の)軌跡の向きに応じて、第1オブジェクト51を動作させてもよい。
【0145】
ステップS7において、CPU31は、第2オブジェクト制御処理を実行する。第2オブジェクト制御処理は、プレイヤによる入力に従って第2オブジェクト52の移動を制御する処理である。以下、図20を参照して、第2オブジェクト制御処理の詳細を説明する。
【0146】
図20は、図17に示す第2オブジェクト制御処理(ステップS7)の流れを示すフローチャートである。第2オブジェクト制御処理においては、まずステップS31において、CPU31は、上記軌跡設定処理(ステップS4)におけるステップS24によって軌跡が登録されているか(登録された軌跡が有るか)否かを判定する。ステップS31の判定は、メインメモリ32に登録軌跡データ75が記憶されているか否かによって行うことができる。ステップS31の判定結果が肯定である場合、ステップS32の処理が実行される。一方、ステップS31の判定結果が否定である場合、後述するステップS35の処理が実行される。
【0147】
ステップS32において、CPU31は、軌跡移動処理を実行する。軌跡移動処理は、第2オブジェクト52を軌跡に沿って移動させるための処理である。以下、図21を参照して、軌跡移動処理の詳細を説明する。
【0148】
図21は、図20に示す軌跡移動処理(ステップS32)の流れを示すフローチャートである。軌跡移動処理においては、まずステップS41において、CPU31は、復帰ポイントが設定されているか否かを判定する。ここで、本実施形態においては、第2オブジェクト52が上述の途中動作を終了して軌跡に復帰する場合に復帰ポイントが設定される(後述するステップS52)。つまり、ステップS41の処理は、第2オブジェクト52が軌跡に復帰する途中であるか否かを判定するための処理である。具体的には、CPU31は、メインメモリ32に復帰ポイントデータ80が記憶されているか否かを判定する。ステップS41の判定結果が肯定である場合、ステップS42の処理が実行される。一方、ステップS41の判定結果が否定である場合、後述するステップS53の処理が実行される。
【0149】
ステップS42において、CPU31は、動作フラグデータ87をメインメモリ32から読み出して参照し、動作フラグがオンに設定されているか否かを判定する。ステップS42の判定処理は、第2オブジェクト52が途中動作を行っている途中であるか否かを判定するための処理である。ステップS42の判定結果が肯定である場合、後述するステップS47の処理が実行される。一方、ステップS42の判定結果が否定である場合、ステップS43の処理が実行される。
【0150】
上記ステップS42の判定結果が否定である場合とは、第2オブジェクト52が軌跡上を移動している場合である。したがって、ステップS43〜S46においては、第2オブジェクト52を軌跡に沿って移動させるための処理が実行される。以下、詳細を説明する。
【0151】
ステップS43において、CPU31は、第2オブジェクト52を軌跡に沿って移動させる。具体的には、CPU31は、まず第2オブジェクトデータ82および登録軌跡データ75をメインメモリ32から読み出す。そして、第2オブジェクトデータ82により示される第2オブジェクト52の位置を、登録軌跡データ75により示される軌跡に沿って、当該軌跡が入力された方向へ所定距離だけ進んだ位置へと更新する。更新後の第2オブジェクト52の位置を示すデータは、新たな第2オブジェクトデータ82としてメインメモリ32に記憶される。上記の更新を複数フレームにわたって繰り返す(ステップS2〜S9の処理ループを複数回繰り返す)ことによって、第2オブジェクト52を所定の速度で軌跡に沿って移動させることができる。ステップS43の処理の次に、ステップS44の処理が実行される。
【0152】
ステップS44において、CPU31は、第2オブジェクト52を基準とした探索エリア内に目標オブジェクトが存在するか否かを判定する。ここで、本実施形態においては、探索エリアが第2オブジェクト52に対して設定される。探索エリアは、第2オブジェクト52(あるいは、軌跡マーク53のオブジェクト)の位置を中心とする球形の領域であり、画面に表示されない。具体的には、CPU31は、第2オブジェクトデータ82をメインメモリ32から読み出し、第2オブジェクトデータ82により示される第2オブジェクト52の位置から、所定距離内(探索エリア内)に目標オブジェクトが存在するか否かを判定する。ステップS44の判定結果が肯定である場合、ステップS45およびS46の処理が実行される。一方、ステップS44の判定結果が否定である場合、ステップS45およびS46の処理がスキップされ、CPU31は軌跡移動処理を終了する。
【0153】
上記ステップS44の処理は、第2オブジェクト52に途中動作を行わせるか否かを判定するための処理である。上記ステップS44においては、探索エリアが第2オブジェクト52の位置を中心とする球形の領域であるとしたが、探索エリアは、一般的な衝突判定処理において用いられるエリアと同様、第2オブジェクト52の位置を基準として設定されるものであればよい。例えば、探索エリア52は、球形に限らず、円柱形や、扇形の底面を有する柱状形状等であってもよい。また、軌跡に沿って移動するオブジェクトが複数種類登場する場合には、オブジェクトによって探索エリアの大きさおよび/または形状は異なっていても良い。
【0154】
ステップS45において、CPU31は、元ポイントを記憶する。具体的には、CPU31は、登録ポイントデータ76および第2オブジェクトデータ82をメインメモリ32から読み出す。そして、登録ポイントデータ76により示される各登録ポイントのうちで、第2オブジェクトデータ82により示される第2オブジェクト52の位置よりも前(後としても良い)であって、当該位置に最も近い登録ポイントを選出する。選出された登録ポイントを示すデータが元ポイントデータ77としてメインメモリ32に記憶される。ステップS45の次にステップS46の処理が実行される。
【0155】
ステップS46において、CPU31は、動作フラグをオンにする。すなわち、CPU31は、メインメモリ32に記憶されている動作フラグデータ87の内容を、オンを示すように更新する。ステップS46の処理によって、次に実行される軌跡移動処理においては、ステップS42の判定結果が肯定となる結果、第2オブジェクト52に途中動作を行わせるための処理(ステップS47〜S52)が実行される。ステップS46の後、CPU31は軌跡移動処理を終了する。
【0156】
なお、上記ステップS44〜S46においては、探索エリア内に目標オブジェクトが存在する場合には常に動作フラグがオンとなり、第2オブジェクト52は途中動作を行うこととなる。これに対して他の実施形態においては、CPU31は、途中動作を行うための他の条件を設定してもよい。例えば、第2オブジェクト52が特定のアイテムを持っている場合には途中動作を行わない(例:第2オブジェクト52が石を運んでいる場合には攻撃を行わない)ように条件が設定されてもよい。逆に、第2オブジェクト52が特定のアイテムを持っていなければ途中動作を行わない(例:鍵を持っていなければ宝箱を開ける動作を行わない)ように条件が設定されてもよい。
【0157】
また、上記ステップS44〜S46においては、CPU31は、第2オブジェクト52の位置と他の目標オブジェクトの位置との位置関係が所定の条件を満たした場合に、第2オブジェクト52に途中動作を行わせるものであった。ここで、他の実施形態においては、第2オブジェクト52に途中動作を行わせる条件は、上記に限らず、どのような条件であってもよい。例えば、CPU31は、第2オブジェクト52に途中動作を行わせる所定位置(オブジェクトが配置される位置に限らない)をゲーム空間内において予め設定しておいてもよい。そして、CPU31は、第2オブジェクト52の位置と上記所定位置との位置関係が所定の条件を満たした場合に、第2オブジェクト52に途中動作を行わせるようにしてもよい。
【0158】
一方、上記ステップS42の判定結果が肯定である場合とは、第2オブジェクト52が途中動作を行っている場合である。したがって、ステップS42の判定結果が肯定である場合に実行されるステップS47〜S52においては、第2オブジェクト52に途中動作を行わせるための処理が実行される。以下、詳細を説明する。
【0159】
ステップS47において、CPU31は、第2オブジェクト52に途中動作を行わせる。途中動作の具体的な内容は、動作フラグがオンになった時点で探索エリア内に存在した目標オブジェクトの種類に応じて決められる。例えば、目標オブジェクトが敵オブジェクトである場合、CPU31は敵オブジェクトを攻撃する動作を第2オブジェクト52に行わせる。また、目標オブジェクトがアイテムのオブジェクトである場合、CPU31は、アイテムを取得する動作や、アイテムを持って運ぶ動作等を行わせる。なお、本実施形態では、途中動作をCPU31が全て自動的に制御するものとしたが、他の実施形態においては、途中動作中の一部の動作についてはプレイヤが制御することができるようにしてもよい。例えば、敵オブジェクトを攻撃する動作に関して言えば、敵オブジェクトに向かって移動する動作をCPU31が制御し、敵オブジェクトに対して剣を振る動作をプレイヤによる入力に従って行うようにしてもよい。なお、1回のステップS42の処理においては、CPU31は、1フレーム分の動作を第2オブジェクト52に行わせる。以上のステップS47の次にステップS48の処理が実行される。
【0160】
ステップS48において、CPU31は、第2オブジェクト52による途中動作を終了するか否かを判定する。本実施形態では、CPU31は、途中動作の目的が達成された、または、途中動作が開始してから所定の制限時間が経過した場合に、途中動作を終了すると判定する。なお、途中動作の目的が達成された場合とは、例えば敵オブジェクトを倒した場合や、アイテムのオブジェクトを取得した場合である。また、本実施形態では、例えば敵オブジェクトが逃げてしまった場合等、途中動作の目的が達成できない場合もあることを考慮し、途中動作を行う時間に制限を設けている。このように、本明細書において、「オブジェクトによる動作が終了する」とは、当該動作の目的が達成されて動作が終了する場合の他、(動作の目的が達成されずに)当該動作を単に中止する場合を含む概念である。ステップS48の判定結果が肯定である場合、ステップS49の処理が実行される。一方、ステップS48の判定結果が否定である場合、CPU31は軌跡移動処理を終了する。
【0161】
ステップS49において、CPU31は、動作フラグをオフにする。すなわち、CPU31は、メインメモリ32に記憶されている動作フラグデータ87の内容を、オフを示すように更新する。なお、ステップS49の処理が実行される場合、後述する復帰ポイント決定処理(ステップS52)によって復帰ポイントが設定される。したがって、次に実行される軌跡移動処理においては、ステップS41の判定結果が肯定となる結果、第2オブジェクト52を軌跡上に復帰させるための処理(ステップS53〜S55)が実行される。ステップS49の次にステップS50の処理が実行される。
【0162】
ステップS50において、CPU31は、上記ステップS48で終了したと判定された途中動作がイベント動作であったか否かを判定する。ステップS50の判定は、例えば、第2オブジェクト52が取得することによってイベントオブジェクトが削除されたり移動されたりする等、第2オブジェクトによるイベント動作によってイベントオブジェクトの状態が変化したか否かによって行うことができる。ステップS50の判定処理は、イベント動作が終了したか否か、すなわち、第2オブジェクト52がイベントをクリアしたか否かを判定するための処理である。ステップS50の判定結果が肯定である場合、ステップS51の処理が実行される。一方、ステップS50の判定結果が否定である場合、ステップS51の処理がスキップされてステップS52の処理が実行される。
【0163】
ステップS51において、CPU31は、優先ポイントを削除する。ステップS51の処理で削除すべき優先ポイントは、上記ステップS50で終了したと判定されたイベント動作に対応する優先ポイントである。具体的には、CPU31は、削除すべき優先ポイントを示す優先ポイントデータ80をメインメモリ32から削除する。ステップS51の次にステップS52の処理が実行される。
【0164】
ステップS52において、CPU31は、復帰ポイント決定処理を実行する。復帰ポイント決定処理は、登録ポイントのうちから復帰ポイントを決定するための処理である。以下、図22を参照して、復帰ポイント決定処理の詳細を説明する。
【0165】
図22は、図21に示す復帰ポイント決定処理(ステップS52)の流れを示すフローチャートである。復帰ポイント決定処理においては、まずステップS61において、CPU31は、最短ポイントを選出する。上述のように、本実施形態では、最短ポイントは、現在の第2オブジェクト52の位置(途中動作を終了した時点における位置)から最短時間で到達することができる登録ポイントである。具体的には、CPU31は、登録ポイントデータ76および第2オブジェクトデータ82をメインメモリ32から読み出す。そして、登録ポイントデータ76により示される各登録ポイントのうちで、第2オブジェクトデータ82により示される第2オブジェクト52の位置から最短時間で到達することができる登録ポイントを選出する。最短時間で到達することができる登録ポイントを選出するための具体的に方法はどのような方法であってもよい。例えば、CPU31は、第2オブジェクトの位置との間に障害物が存在する登録ポイントを除外した上で、残りの登録ポイントのうちで第2オブジェクトの位置から最短距離にある登録ポイントを選出するようにしてもよい。また、ゲーム空間の地形に応じて第2オブジェクト52の移動速度が変化する場合には、第2オブジェクト52の位置から各登録ポイントまでの移動時間をそれぞれ計算し、移動時間が最短となる登録ポイントを選出するようにしてもよい。また、上記の障害物等がゲーム空間に存在しないと考えられる場合には、CPU31は単に、登録ポイントのうちで第2オブジェクトの位置から最短距離にある登録ポイントを選出するようにしてもよい。選出された登録ポイントを示すデータが最短ポイントデータ78としてメインメモリ32に記憶される。上記ステップS61の次にステップS62の処理が実行される。
【0166】
ステップS62において、CPU31は、最短ポイントが軌跡上において元ポイント以降の位置であるか否かを判定する。ステップS62の判定は、登録番号に付された番号を参照することで容易に行うことができる。すなわち、CPU31は、元ポイントデータ77および最短ポイントデータ78をメインメモリ32から読み出し、元ポイントデータ77により示される番号と最短ポイントデータ78により示される番号の大小によって、最短ポイントと元ポイントのいずれが軌跡上において後ろにあるかを判定する。ステップS62の判定結果が肯定の場合、ステップS63の処理が実行される。一方、ステップS62の判定結果が否定の場合、後述するステップS65の処理が実行される。
【0167】
ステップS63において、CPU31は、最短ポイントが軌跡上において優先ポイント以前の位置であるか否かを判定する。ステップS63の判定は、ステップS62と同様、登録番号に付された番号を参照することで容易に行うことができる。すなわち、CPU31は、最短ポイントデータ78および優先ポイントデータ80をメインメモリ32から読み出し、最短ポイントデータ78により示される番号と優先ポイントデータ80により示される番号との大小によって、最短ポイントと優先ポイントのいずれが軌跡上において後ろにあるかを判定する。ステップS63の判定結果が肯定の場合、ステップS64の処理が実行される。一方、ステップS63の判定結果が否定の場合、後述するステップS65の処理が実行される。
【0168】
ステップS64において、CPU31は、最短ポイントを復帰ポイントに設定する。すなわち、メインメモリ32に記憶されている最短ポイントデータ78の内容を、復帰ポイントデータ80としてメインメモリ32に記憶する。ステップS64の後、CPU31は復帰ポイント決定処理を終了する。
【0169】
一方、ステップS65において、CPU31は、元ポイントを復帰ポイントに設定する。すなわち、メインメモリ32に記憶されている元ポイントデータ77の内容を、復帰ポイントデータ80としてメインメモリ32に記憶する。ステップS65の後、CPU31は復帰ポイント決定処理を終了する。
【0170】
図21の説明に戻り、上述したステップS41の判定結果が肯定である場合、ステップS53〜S55の処理が実行される。ステップS53〜S55の処理は、途中動作を終了した第2オブジェクト52を軌跡上の位置へ復帰させるための処理である。以下、詳細を説明する。
【0171】
ステップS53において、CPU31は、第2オブジェクト52を復帰ポイントへ移動させる。具体的には、CPU31は、まず復帰ポイントデータ80および登録ポイントデータ76をメインメモリ32から読み出し、復帰ポイントのゲーム空間における位置を特定する。次に、CPU31は、第2オブジェクトデータ82をメインメモリ32から読み出し、第2オブジェクトデータ82により示される第2オブジェクト52の位置を、復帰ポイントの位置へ所定距離だけ進んだ位置へと更新する。そして、更新後の第2オブジェクト52の位置を示すデータを、新たな第2オブジェクトデータ82としてメインメモリ32に記憶する。上記の更新を複数フレームにわたって繰り返す(ステップS2〜S9の処理ループを複数回繰り返す)ことによって、第2オブジェクト52を所定の速度で復帰ポイントへ向けて移動させることができる。ステップS53の処理の次にステップS54の処理が実行される。
【0172】
ステップS54において、CPU31は、第2オブジェクト52が復帰ポイントへ到着したか否かを判定する。すなわち、CPU31は、第2オブジェクトデータ82をメインメモリ32から読み出し、第2オブジェクトデータ82により示される第2オブジェクト52の位置が、ステップS53で特定された復帰ポイントの位置と一致するか否かを判定する。ステップS54の判定処理は、第2オブジェクト52が軌跡上の位置へ復帰したか否かを判定するための処理である。ステップS54の判定結果が肯定である場合、ステップS55の処理が実行される。一方、ステップS54の判定結果が否定である場合、CPU31は軌跡移動処理を終了する。
【0173】
ステップS55において、CPU31は、復帰ポイントを削除する。具体的には、CPU31は、復帰ポイントデータ80をメインメモリ32から削除する。ステップS55の処理によって、次に実行される軌跡移動処理においては、ステップS41の判定結果が否定となる。また、この時点で動作フラグはオフに設定されている(ステップS49)ので、ステップS42の判定結果が否定となる。したがって、次に実行される軌跡移動処理においては、第2オブジェクト52を軌跡に沿って移動させる処理(S43〜S46)が実行される。ステップS55の後、CPU31は軌跡移動処理を終了する。
【0174】
上記軌跡移動処理に示したように、本実施形態においては、第2オブジェクト52が軌跡に沿って移動している際に、第2オブジェクト52の近傍に目標オブジェクトが位置すると(ステップS44でYes)、動作フラグがオンとなる結果、第2オブジェクト52は目標オブジェクトに応じた途中動作を行う(ステップS42でYes,ステップS47)。そして、第2オブジェクト52が途中動作を終了すると(ステップS48でYes)、動作フラグがオフとなり、復帰ポイントが決定される(ステップS52)。これによって、第2オブジェクト52は、復帰ポイントへ移動する(ステップS41でYes,ステップS53)、すなわち、軌跡上の位置に復帰する。さらに、軌跡上の位置に復帰すると(ステップS54でYes)、復帰ポイントが削除されるとともに、動作フラグがオフとされているので、第2オブジェクト52は軌跡に沿った移動を再開する(ステップS41およびS42でNo,ステップS43)。このように、本実施形態によれば、第2オブジェクト52が軌跡56を離れて途中動作を行った場合であっても、第2オブジェクト52は軌跡56に沿った移動を再開することができる。
【0175】
また、上記復帰ポイント決定処理によれば、最短ポイントが元ポイント以降であって(ステップS62でYes)、かつ、優先ポイント以前である(ステップS63でYes)場合、すなわち、最短ポイントが元ポイントと優先ポイントの間にある場合、最短ポイントが復帰ポイントに決定される(ステップS64)。一方、最短ポイントが元ポイントよりも前であるか(ステップS62でNo)、または、優先ポイントよりも後である(ステップS63でNo)場合、すなわち、最短ポイントが元ポイントと優先ポイントの間にない場合、元ポイントが復帰ポイントに決定される(ステップS65)。したがって、本実施形態においては、途中動作を終了した第2オブジェクト52が元ポイントよりも前の位置に復帰することはなく、また、優先ポイントよりも後の位置に復帰することはない。さらに、途中動作を終了した第2オブジェクト52は、元ポイント以降でかつ優先ポイント以前であることを条件として、現在の位置から最短時間で到達することができる位置に復帰する。
【0176】
なお、上記復帰ポイント決定処理によれば、最短ポイントが元ポイントと優先ポイントの間にない場合、元ポイントが復帰ポイントに決定される。ここで、他の実施形態においては、CPU31は、上記の場合、元ポイントと優先ポイントの間の登録ポイントのうちで、途中動作を終了した時点における第2オブジェクト52の位置から最短時間で到達することができる登録ポイントを、復帰ポイントとして設定してもよい。すなわち、復帰ポイント決定処理において、CPU31は、元ポイント以降であって、所定の終端ポイント以前の登録ポイントのうちで、途中動作を終了した時点における位置から最短時間で到達することができる登録ポイントを、復帰ポイントとして設定してもよい。ここで、終端ポイントとは、優先ポイントが設定される場合には、優先ポイントのうちで最も前の優先ポイントであり、優先ポイントが設定されない場合には、軌跡において最も後の登録ポイントである。
【0177】
なお、上記軌跡移動処理においては、1つの途中動作が終了した場合に復帰ポイントを決定するようにした。ここで、他の実施形態において、1つの途中動作に複数のサブ動作が含まれる場合には、CPU31は、1つのサブ動作が終了する毎に復帰ポイントを決定するようにしてもよい。なお、1つの途中動作に複数のサブ動作が含まれる場合とは、例えば、第2オブジェクト52が複数の敵オブジェクトを倒す動作を途中動作として行う場合である。この場合、CPU31は、1つの敵オブジェクトを倒す毎に復帰ポイントを決定してもよい。そして、全ての敵オブジェクトを倒す前に上記制限時間が経過した場合には、最後に決定された復帰ポイントへ第2オブジェクト52を移動させるようにしてもよい。
【0178】
図20の説明に戻り、ステップS33において、CPU31は、第2オブジェクト52が軌跡の終端まで移動したか否かを判定する。すなわち、CPU31は、第2オブジェクトデータ82および登録軌跡データ75をメインメモリ32から読み出し、第2オブジェクトデータ82により示される第2オブジェクト52の位置が、登録軌跡データ75により示される軌跡の終端の位置と一致するか否かを判定する。ステップS33の判定結果が肯定である場合、ステップS34の処理が実行される。一方、ステップS33の判定結果が否定である場合、後述するステップS37の処理が実行される。
【0179】
ステップS34において、CPU31は、上記ステップS24によって登録された軌跡を削除する。登録された軌跡を削除する処理は、上述したステップS18の処理と同様である。また、CPU31は、軌跡表示フラグをオフにする。すなわち、CPU31は、メインメモリ32に記憶されている軌跡表示フラグデータ84の内容を、オフを示すように更新する。したがって、第2オブジェクト52が軌跡の終端まで移動した場合には、ステップS34の処理によって当該軌跡は削除されて表示されなくなる。ステップS34の次に、後述するステップS37の処理が実行される。
【0180】
一方、ステップS35において、CPU31は、追従フラグデータ85をメインメモリ32から読み出して参照し、追従フラグがオンに設定されているか否かを判定する。ステップS35の判定処理は、第2オブジェクト52に第1オブジェクト51を追従させる指示がプレイヤによって行われているか否かを判定するための処理である。ステップS35の判定結果が肯定である場合、ステップS36の処理が実行される。一方、ステップS35の判定結果が否定である場合、後述するステップS37の処理が実行される。
【0181】
ステップS36において、CPU31は、第1オブジェクト51を追従するように第2オブジェクト52を移動させる。具体的には、CPU31は、第1オブジェクトデータ81および第2オブジェクトデータ82をメインメモリ32から読み出し、第2オブジェクト52の位置を、第1オブジェクト51の位置の方向へ所定距離だけ近づけた位置へと更新する。更新後の第2オブジェクト52の位置を示すデータは、新たな第2オブジェクトデータ82としてメインメモリ32に記憶される。なお、本実施形態では、第1オブジェクト51と第2オブジェクト52との位置が重なってしまうことを避けるために、第1オブジェクト51の位置と第2オブジェクト52との距離が所定距離以内である場合、CPU31は、第2オブジェクト52の位置の更新を行わない。上記の更新を複数フレームにわたって繰り返す(ステップS2〜S9の処理ループを複数回繰り返す)ことによって、第2オブジェクト52を第1オブジェクト51に追従するように移動させることができる。すなわち、第1オブジェクト51を追従させる指示が行われた場合、第2オブジェクト52は、まず、第1オブジェクト51の位置(第1オブジェクト51の近傍の位置を含む)へ移動する。さらに、上記第1オブジェクト制御処理(ステップS6)によって第1オブジェクト51が移動される場合には、第2オブジェクト52は第1オブジェクト51に追従して移動することになる。ステップS36の次に、ステップS37の処理が実行される。
【0182】
以上のように、本実施形態では、プレイヤが追従アイコン55に対してタッチ入力を行った場合(図18のステップS12でYes)、追従フラグがオンに設定される(図18のステップS13)結果、ステップS36の処理が実行される。つまり、本実施形態では、プレイヤは、追従アイコン55をタッチすることによって、第2オブジェクト52を第1オブジェクト51に追従するように移動させることができる。
【0183】
また、第2オブジェクト制御処理では、CPU31は、ステップS31の判定処理を先に実行し、ステップS35の判定処理を後で実行する。したがって、第2オブジェクト52に第1オブジェクト51を追従させる指示がプレイヤによって行われた場合において、第2オブジェクト52が軌跡の移動中であれば、上記ステップS32の処理が実行される。つまり、第2オブジェクト52は、軌跡に沿って移動している途中で上記指示が行われた場合、当該軌跡の終端まで移動してから、第1オブジェクト51を追従するように移動する。なお、他の実施形態においては、CPU31は、第2オブジェクト52が軌跡に沿って移動している途中で上記指示が行われた場合、当該軌跡を中止して、第1オブジェクト51を追従するように第2オブジェクト52を移動させてもよい。
【0184】
ステップS37において、CPU31は、第2オブジェクト52の位置に応じて軌跡マーク53を設定する。本実施形態では、CPU31は、ゲーム空間における第2オブジェクト52の位置に軌跡マーク53のオブジェクトを配置する。具体的には、CPU31は、第2オブジェクトデータ82をメインメモリ32から読み出し、軌跡マーク53のオブジェクトの位置を、第2オブジェクト52の位置によって決められる位置へと更新する。更新後の軌跡マーク53の位置を示すデータは、新たな軌跡マークデータ83としてメインメモリ32に記憶される。以上のように軌跡マークデータ83が更新されることによって、第2オブジェクト52の位置に軌跡マーク53が表示されることとなる。なお、他の実施形態においては、第2オブジェクト52を移動させるための軌跡が入力されている間については、CPU31は、入力が行われている位置に軌跡マーク53を設定するようにしてもよい。
【0185】
なお、上記の「第2オブジェクト52の位置によって決められる位置」とは、例えば、第2オブジェクト52の足下の位置である(図3等参照)。ただし、軌跡マーク53のオブジェクトは、第2オブジェクト52に対して固定的に配置される必要はなく、第2オブジェクト52が配置される位置(地形)の状況等に応じて異なる位置に配置されてもよい。例えば、図3においては、第2オブジェクト52が地面に配置されているので軌跡マーク53のオブジェクトは第2オブジェクト52の足下に配置されるのに対して、第2オブジェクト52の下半身が例えば水面に浸かっていて表示されていない場合には、軌跡マーク53のオブジェクトは第2オブジェクト52の上半身の位置に配置されてもよい。また、本実施形態では、CPU31は、軌跡マーク53を表示するために、3次元のゲーム空間にオブジェクトを配置するとしたが、他の実施形態においては、ゲーム空間にオブジェクトを配置することなく、軌跡マーク53を表す画像を単にゲーム空間画像の上に重ねて表示するようにしてもよい。ステップS37の後、CPU31は第2オブジェクト制御処理を終了する。
【0186】
以上のステップS3〜S7の処理のように、本実施形態では、タッチ入力の開始位置が軌跡マーク53の内側に位置する場合、操作対象フラグがオンとなり(ステップS17)、その結果、第1オブジェクト51の動作を制御する処理(ステップS6)はスキップされて、CPU31は当該タッチ入力に応じて第1オブジェクト51の動作を制御する(ステップS7)。一方、タッチ入力の開始位置が軌跡マーク53の外側に位置する場合、操作対象フラグがオフとなり(ステップS19)、その結果、CPU31は当該タッチ入力に応じて第1オブジェクト51の動作を制御する(ステップS6)。このように、本実施形態では、CPU31は、タッチ入力の開始位置が軌跡マーク53の外側であるか内側であるかによって、当該タッチ入力によって制御される対象が第1オブジェクト51であるか第2オブジェクト52であるかを決定する。これによれば、プレイヤは、操作対象を切り替えるためだけの操作を行う必要がないので、2つのオブジェクトを簡単に操作することができる。なお、他の実施形態においては、CPU31は、所定の切替操作(例えば、所定の操作ボタンを押下する操作)に応じて操作対象の切替を行ってもよい。
【0187】
なお、上記ステップS7の第2オブジェクト制御処理によれば、軌跡が登録されている場合、第2オブジェクト52は当該軌跡に沿って移動を行う(ステップS31,S32)。ここで、本実施形態では、軌跡の登録は、プレイヤによるタッチ入力が終了した時点で行われる(ステップS22,S24)。したがって、本実施形態では、第2オブジェクト52の移動は、タッチ入力が終了(完了)した時点で開始される。一方、上記ステップS6の第1オブジェクト制御処理によれば、タッチ入力が行われたことに応じて第1オブジェクト51の動作が制御される。つまり、第1オブジェクト51は、タッチ入力がある度に動作を行うのに対して、第2オブジェクト52は、軌跡の入力が完了する度に動作(移動)を行う。第2オブジェクト52は入力の完了後に動作(移動)を行うので、本実施形態では、第2オブジェクト52の移動中において第1オブジェクト51を動作させることが可能となる。これによれば、2つのオブジェクトが同時に動作することになるので、ゲーム装置1は、2つのオブジェクトを同時に操作しているかのような操作感覚をプレイヤに与えることができる。なお、他の実施形態においては、CPU31は、タッチ入力が終了する前から第2オブジェクト52の移動を開始するようにしてもよい。例えば、第2オブジェクト52の移動は、軌跡マーク53内を開始位置とするタッチ入力が行われたことに応じて開始されてもよいし、当該タッチ入力が行われてから所定時間経過後に開始されてもよい。また、CPU31は、(第1オブジェクト51を軌跡に従って動作させる場合には)入力装置に対して軌跡の入力が完了する度に、第1オブジェクト51に動作を行わせるようにしてもよい。
【0188】
また、本実施形態におけるゲーム処理では、軌跡マーク53に対して新たな入力が行われた場合(図18のステップS16でYes)と、それまでに登録されていた軌跡は削除される(図18のステップS18)。また、上記第2オブジェクト制御処理に示したように、登録されていた軌跡が削除された場合(ステップS31でNo)、第2オブジェクト52を軌跡に沿って移動させる処理(ステップS32)は実行されないので、第2オブジェクト52は当該軌跡に沿った移動を停止する。さらに、上記新たな入力によって新たな軌跡が入力されて登録された場合(ステップS32でYes)には、第2オブジェクト52は当該新たな軌跡に沿った移動を開始する(ステップS32)。したがって、本実施形態によれば、第2オブジェクト52が軌跡に沿って移動している途中に、プレイヤが異なる軌跡を新たに入力すると、第2オブジェクト52は当該新たな軌跡に沿って移動することとなる。つまり、本実施形態によれば、プレイヤは、第2オブジェクト52が軌跡に沿って移動している途中で軌跡を変更することが可能である。そのため、本実施形態によれば、仮に誤って意図しない軌跡を入力してしまった場合でも、プレイヤは即座に当該軌跡を修正することができる。
【0189】
図17の説明に戻り、ステップS7の次のステップS8において、CPU31は、表示制御処理を実行する。表示制御処理は、下側LCD12および上側LCD22にゲーム画像を表示させる処理である。以下、図23を参照して、表示制御処理の詳細について説明する。
【0190】
図23は、図17に示す表示制御処理(ステップS8)の流れを示すフローチャートである。表示制御処理においては、まずステップS71において、CPU31は、操作対象フラグがオンに設定されているか否かを判定する。ステップS71の判定処理は、上述したステップS22の判定処理と同じである。ステップS71の判定結果が肯定である場合、ステップS72およびS73の処理が実行される。一方、ステップS71の判定結果が否定である場合、後述するステップS74およびS75の処理が実行される。
【0191】
ステップS72において、CPU31は、第2オブジェクト52を含むようにゲーム空間画像の表示領域を設定する。ここで、ゲーム空間画像の表示領域とは、ゲーム空間のうちで、ゲーム空間画像として下側LCD12に表示すべき領域を指す。具体的には、CPU31は、第2オブジェクトデータ82をメインメモリ32から読み出し、第2オブジェクト52の位置に基づいて所定範囲の表示領域を設定する。典型的には、表示領域は、第2オブジェクト52の位置が表示領域の略中央となるように設定される。ステップS72の次に、ステップS73の処理が実行される。
【0192】
ステップS73において、CPU31は、ステップS72で設定された表示領域内のゲーム空間を表すゲーム空間画像を作成する。すなわち、CPU31は、上記表示領域内のゲーム空間を所定の視点位置から見た画像を作成する。この表示領域内のゲーム空間には第2オブジェクト52と軌跡マーク53のオブジェクトとが配置されているので、ゲーム空間画像には、少なくとも第2オブジェクト52および軌跡マーク53が含まれることになる。なお、第2オブジェクト52の周囲に第1オブジェクト51が存在する場合には、第1オブジェクト51もゲーム空間画像に含まれる。作成されたゲーム空間画像は、第1VRAM47に描画される。さらに、CPU31は、第1VRAM47に描画されたゲーム空間画像の上に重ねて、切替アイコン54の画像を描画する。ステップS73の次に、後述するステップS76の処理が実行される。
【0193】
一方、ステップS74において、CPU31は、第1オブジェクト51を含むようにゲーム空間画像の表示領域を設定する。具体的には、CPU31は、第1オブジェクトデータ81をメインメモリ32から読み出し、第1オブジェクト51の位置に基づいて所定範囲の表示領域を設定する。ステップS74の場合も上記ステップS72の場合と同様、典型的には、表示領域は、第1オブジェクト51の位置が表示領域の略中央となるように設定される。ステップS74の次に、ステップS75の処理が実行される。
【0194】
ステップS75において、CPU31は、ステップS74で設定された表示領域内のゲーム空間を表すゲーム空間画像を作成する。ステップS75におけるゲーム空間画像を作成する処理は、表示領域の位置が異なる点を除いて、ステップS73における処理と同様である。ステップS75で作成されるゲーム空間画像には、少なくとも第1オブジェクト51が含まれることになる。なお、第1オブジェクト51の周囲に第2オブジェクト52が存在する場合には、第2オブジェクト52および軌跡マーク53もゲーム空間画像に含まれる。作成されたゲーム空間画像は、ステップS73の場合と同様、第1VRAM47に描画される。さらに、ステップS75においては、CPU31は、第1VRAM47に描画されたゲーム空間画像の上に重ねて、切替アイコン54および追従アイコン55の画像を描画する。ステップS75の次に、ステップS76の処理が実行される。
【0195】
上記ステップS72〜S75のように、本実施形態では、操作対象フラグがオンである場合(ステップS71でYes)には、ゲーム空間画像内に第2オブジェクトが含まれるように表示領域が設定され(ステップS72)、操作対象フラグがオフである場合(ステップS71でYes)には、ゲーム空間画像内に第2オブジェクトが含まれるように表示領域が設定される(S74)。ここで、操作対象フラグは、切替アイコン54に対してタッチ入力が行われた場合にオンとオフとが切り替わる(図18のステップS15)。したがって、プレイヤは、切替アイコン54に対してタッチ入力が行うことによって、第1オブジェクト51が少なくとも表示される状態と、第2オブジェクト52が少なくとも表示される状態とを容易に切り替えることができる。
【0196】
上記ステップS73およびS75のように、本実施形態では、CPU31は、第2オブジェクト52に重ねて軌跡マーク53を表示する。上述したように、タッチ入力によって制御される対象となるオブジェクトは、タッチ入力の開始位置が所定の指示領域(軌跡マーク53の領域)の外側であるか内側であるかによって変化する。つまり、軌跡マーク53は、タッチ入力によって2つのオブジェクトのうちいずれが操作されるかを表す指示領域を、プレイヤに対してわかりやすく提示するために表示される。
【0197】
また、上記ステップS73およびS75のように、本実施形態では、CPU31は、操作対象フラグがオフである場合(ステップS71でNo)のみ、追従アイコン55を表示する。ここで、操作対象フラグは、軌跡マーク53の内側を開始位置とするタッチ入力が行われた場合にオンとなり(図18のステップS17)、軌跡マーク53の外側を開始位置とするタッチ入力が行われた場合にオフとなる(図18のステップS19)。つまり、本実施形態では、軌跡マーク53の内側を開始位置とするタッチ入力が行われている期間、すなわち、第2オブジェクト52を移動させるためのタッチ入力が行われている期間は、追従アイコン55が表示されない。上記の期間は、プレイヤは第2オブジェクト52を軌跡に沿って移動させようとしている最中であるので、追従アイコン55は必要でない(プレイヤは追従アイコン55をタッチしない)と考えられるからである。
【0198】
ステップS76において、CPU31はマップ画像を作成する。マップ画像の具体的な作成方法はどのような方法であってもよいが、本実施形態では、ゲーム空間全体を表す2次元の全体マップ画像が予め用意されており、CPU31は、当該全体マップ画像のうちから表示すべき領域を選出することによってマップ画像を作成する。また、マップ画像として表示すべき領域は、第1オブジェクト51および第2オブジェクト52の両方が含まれるように選出されることが好ましい。以上のようにして作成されたマップ画像は、第2VRAM48に描画される。さらに、CPU31は、第2VRAM48に描画されたマップ画像の上に重ねて、第1オブジェクト51を表すマーク61と、第2オブジェクトを表すマーク62とを描画する。ステップS76の次にステップS77の処理が実行される。
【0199】
ステップS77において、CPU31は、軌跡表示フラグデータ84をメインメモリ32から読み出して参照し、軌跡表示フラグがオンに設定されているか否かを判定する。
ステップS77の判定処理は、画面に表示すべき軌跡(すなわち、第2オブジェクト52を移動させるために入力中の軌跡、または、登録された軌跡)が存在するか否かを判定するための処理である。ステップS77の判定結果が肯定である場合、ステップS78の処理が実行される。一方、ステップS77の判定結果が否定である場合、ステップS78の処理がスキップされて、後述するステップS79の処理が実行される。
【0200】
ステップS78において、CPU31は、各LCD12および22に表示される各画像に、第2オブジェクトを移動させるための軌跡の画像をそれぞれ追加する。ここで、本実施形態では、下側LCD12に表示されるゲーム空間画像は、3次元のゲーム空間を表す画像であるのに対して、上側LCD22に表示されるマップ画像は、2次元の平面を表す画像である。また、上記ゲーム空間画像とマップ画像とでは、それが表すゲーム空間内における領域の大きさも異なる。そのため、CPU31は、下側LCD12に表示される軌跡の画像(第1軌跡画像)と、マップ画像上に重ねて上側LCD22に表示するための軌跡の画像(第2軌跡画像)とをそれぞれ作成する。
【0201】
上記の第1軌跡画像および第2軌跡画像は、登録軌跡データ75(または入力軌跡データ74)を用いて作成される。具体的には、CPU31は、登録軌跡データ75をメインメモリ32から読み出し、第1軌跡画像として、登録軌跡データ75により示される1以上のタッチ位置の座標を入力順に接続する線の画像を作成する。また、第2軌跡画像については、CPU31は、登録軌跡データ75により示される1以上のタッチ位置に対応する(ゲーム空間内の)地面の位置をそれぞれ算出し、算出された各位置を接続する線の画像を作成する。そして、作成された線の画像をマップ画像の大きさに合わせて縮小することで、第2軌跡画像を得ることができる。なお、他の実施形態においては、CPU31は、第1軌跡画像に対して所定の変形を加える(例えば縦に伸びるように変形させる)ことで、第2軌跡画像を作成してもよい。また、例えば、ゲーム空間画像がゲーム空間をほぼ真上から見た画像である場合のように、第1軌跡画像と第2軌跡画像との形状が近くなる場合には、CPU31は、第1軌跡画像に単に縮小することのみによって第2軌跡画像を作成してもよい。これによって、第2軌跡画像を簡易な処理で作成することができる。
【0202】
また、登録軌跡データ75がメインメモリ32に記憶されていない場合には、上記の第1軌跡画像および第2軌跡画像は、入力軌跡データ74を用いて作成される。この場合における各軌跡画像の作成方法は、登録軌跡データ75に代えて入力軌跡データ74が用いられる点を除いて、上記の作成方法と同様である。なお、CPU31は、登録軌跡データ75を用いる場合と、入力軌跡データ74を用いる場合とで、軌跡画像の色や形状を異なるようにしてもよい。これによれば、プレイヤは、入力中の軌跡(入力軌跡データ74により示される軌跡)と、入力が完了した軌跡(登録軌跡データ75により示される軌跡)とを、明確に区別することができる。
【0203】
CPU31は、以上のようにして作成された第1軌跡画像を、第1VRAM47に描画されたゲーム空間画像の上に重ねて描画する。また、上記の第2軌跡画像を、第2VRAM48に描画されたマップ画像の上に重ねて描画する。ステップS78の次にステップS79の処理が実行される。
【0204】
上記ステップS78のように、本実施形態においては、下側LCD12に表示されるゲーム空間画像だけでなく、上側LCD22に表示されるマップ画像に対しても、入力された軌跡の画像が表示される。これによって、プレイヤは、タッチ入力を行ったゲーム空間画像よりも広い領域を表すマップ画像上においても、入力した軌跡を確認することができ、軌跡の入力をより行いやすくなる。
【0205】
また、他の実施形態においては、プレイヤによって入力された軌跡を画面に表示する場合、CPU31は、軌跡の画像に加えて、上記優先ポイントを表す画像を画面に表示するようにしてもよい。また、CPU31は、軌跡全体のうちで、第2オブジェクト52がすでに通過した部分と、まだ通過していない部分とで色や太さや線の種類(点線と実線等)等を変えて軌跡を表示してもよい。
【0206】
ステップS79において、CPU31は、ゲーム空間画像およびマップ画像を各LCD12および22に表示させる。すなわち、CPU31は、第1VRAM47に描画されたゲーム空間画像を下側LCD12に表示させ、第2VRAM48に描画されたマップ画像を上側LCD22に表示させる。ステップS79の後、CPU31は表示制御処理を終了する。
【0207】
図17の説明に戻り、ステップS8の次のステップS9において、CPU31は、ゲームを終了するか否かを判定する。ステップS9の判定は、例えば、ゲームがクリアされたか否か、ゲームオーバーとなったか否か、プレイヤがゲームを中止する指示を行ったか否か等によって行われる。ステップS9の判定結果が否定である場合、ステップS2の処理が再度実行される。以降、ステップS9でゲームを終了すると判定されるまで、ステップS2〜S9の処理ループが繰り返し実行される。一方、ステップS9の判定結果が肯定である場合、CPU31は、図17に示すゲーム処理を終了する。以上で、ゲーム処理の説明を終了する。
【0208】
以上のように、本実施形態におけるゲーム処理によれば、ゲーム装置1は、第2オブジェクト52を移動させるための軌跡の入力を、マップ画像ではなく、ゲーム空間画像上において受け付ける。これによれば、第1オブジェクト51を操作する場合であっても第2オブジェクト52を操作する場合であっても、プレイヤはゲーム空間画像を見て操作を行えばよい。したがって、本実施形態によれば、プレイヤは、マップ画像からゲーム空間画像へと画面を切り替える必要なく、軌跡を入力する操作を簡単に行うことができる。
【0209】
[変形例]
上記実施形態においては、ゲーム装置1は2つの画面(下側LCD12および上側LCD22)を備えており、ゲーム空間画像とマップ画像とを同時に表示するものとした。ここで、他の実施形態においては、ゲーム装置1は、マップ画像を必ずしも表示しなくてもよい。また、マップ画像を表示する場合であっても、ゲーム装置1はゲーム空間画像とマップ画像とを必ずしも同時に表示する必要はなく、どちらか一方の画像を1つの表示画面に選択的に表示してもよい。なお、上記実施形態においては、ゲーム空間画像は3次元のゲーム空間の一部領域を表すものであったが、ゲーム空間画像は2次元のゲーム空間を表すものであってもよいし、ゲーム空間の全体を表すものであってもよい。また、上記実施形態においては、マップ画像は2次元の平面を表すものであったが、マップ画像はゲーム空間画像よりも広い範囲を表すものであればよく、3次元のゲーム空間を表すものであってもよい。
【0210】
また、上記実施形態においては、表示装置の画面上における位置を指定することが可能な入力装置(ポインティングデバイス)としてタッチパネル13を備えるゲーム装置1を例にとって説明した。ここで、他の実施形態においては、表示装置の画面上における位置を指定することが可能な入力装置は、マウスやタッチパッド等のポインティングデバイスであってもよい。また、カメラや加速度センサによって入力装置の姿勢を検出し、入力装置が指し示す表示画面上の位置を当該姿勢に基づいて算出するシステムにおいても、本発明を適用することが可能である。
【0211】
また、上記実施形態においては、ゲーム装置1がタッチパネル13に対するタッチ入力に基づいて第1オブジェクト51の動作を制御する場合を例として説明した。ここで、他の実施形態においては、第1オブジェクト51の動作は、プレイヤによるタッチ入力に限らず、タッチ入力に代えて、または、タッチ入力に加えて、操作ボタンに対する入力、および/または、マイク43に対する音声入力に基づいて制御されてもよい。
【0212】
また、上記実施形態においては、第1オブジェクト51と第2オブジェクト52という2つのオブジェクトをプレイヤが操作するゲームを例として説明した。ここで、他の実施形態においては、プレイヤが操作する対象となるオブジェクトは、軌跡を入力することによって操作されるオブジェクト1つのみであってもよい。
【0213】
なお、上記実施形態のように、プレイヤが画面上に自由に軌跡を入力することができる入力システムを採用するゲーム装置においては、第2オブジェクト52が移動することができない領域に軌跡が入力される場合もあり得る。例えば、画面に表示される壁を跨ぐように軌跡が入力されたとしても、第2オブジェクト52は壁を超えて移動することはできない。このような場合を考慮して、ゲーム装置1は、上述したゲーム処理において、次のような処理を実行するようにしてもよい。すなわち、ゲーム装置1は、第2オブジェクト52が軌跡に沿って移動することができなくなった場合、第2オブジェクト52に移動を中止させ、軌跡を消去するようにしてもよい。具体的には、上記ステップS43において、CPU31は、第2オブジェクト52による軌跡に沿った移動が可能かどうかを判定し、移動が不可能である場合、第2オブジェクト52を移動させないようにする。さらに、メインメモリ32に記憶されている登録軌跡データ75および登録ポイントデータ76を消去する。また、上記ステップS52における復帰ポイント決定処理においては、CPU31は、ステップS61で選出された最短ポイントが、第2オブジェクト52が侵入することができない位置である場合、(ステップS62およびS63の判定結果にかかわらず)元ポイントを復帰ポイントに決定してもよい。
【0214】
また、上記実施形態においては、ゲーム装置1は、復帰ポイントを決定する処理を簡単化するため、プレイヤによって入力された軌跡上に登録ポイントを設定した(ステップS25)。ここで、他の実施形態においては、ゲーム装置1は、登録ポイントを設定せず、軌跡を構成する各点から、途中動作を終了した第2オブジェクト52を復帰させる位置(復帰位置)を決定するようにしてもよい。このとき、上述の元ポイント、最短ポイント、および優先ポイントも、復帰ポイントと同様、軌跡を構成する各点から決定される。具体的には、元ポイントは、途中動作を開始する時点における第2オブジェクト52の位置となる。また、最短ポイントは、軌跡を構成する各点のうちで、途中動作を終了した時点における第2オブジェクト52の位置から最短時間で到達することができる点の位置となる。また、優先ポイントは、軌跡を構成する各点の位置のうちで、第2オブジェクト52がイベント動作を行う位置となる。
【産業上の利用可能性】
【0215】
本発明は、軌跡を入力することによってオブジェクトを移動させるゲーム操作をプレイヤに簡単に行わせること等を目的として、例えばゲームプログラムやゲーム装置に利用することが可能である。
【符号の説明】
【0216】
1 ゲーム装置
13 タッチパネル
27 タッチペン
32 メインメモリ
52 第2オブジェクト
53 軌跡マーク
56,57 軌跡
71 ゲームプログラム
76 登録ポイントデータ
77 元ポイントデータ
78 最短ポイントデータ
79 優先ポイントデータ
80 復帰ポイントデータ


【特許請求の範囲】
【請求項1】
ゲーム装置のコンピュータによって実行されるゲームプログラムであって、
プレイヤによって入力された軌跡を検出する軌跡検出手段と、
仮想のゲーム空間に配置されるオブジェクトを、前記軌跡に沿って移動させる移動制御手段と、
前記軌跡に沿って移動している前記オブジェクトに所定の動作を行わせる動作制御手段と、
前記所定の動作を終了したオブジェクトが前記軌跡に復帰する位置である復帰位置を前記軌跡上の位置から決定する復帰位置決定手段として前記コンピュータを機能させ、
前記移動制御手段は、前記所定の動作を終了したオブジェクトを前記復帰位置に復帰させてから前記軌跡に沿った移動を再開させる、ゲームプログラム。
【請求項2】
前記動作制御手段は、前記所定の動作として前記軌跡から離れる動作を前記オブジェクトに行わせる、請求項1に記載のゲームプログラム。
【請求項3】
前記復帰位置決定手段は、前記所定の動作を終了したオブジェクトの位置と、ゲーム空間内における前記軌跡の位置とに基づいて前記復帰位置を決定する、請求項1または請求項2に記載のゲームプログラム。
【請求項4】
前記復帰位置決定手段は、前記所定の動作を終了した前記オブジェクトの位置からの到達距離または到達時間に少なくとも基づいて前記復帰位置を決定する、請求項3に記載のゲームプログラム。
【請求項5】
前記所定の動作を開始する時点における前記オブジェクトの位置を元位置として前記ゲーム装置のメモリに記憶する元位置記憶手段として前記コンピュータをさらに機能させ、
前記復帰位置決定手段は、前記元位置以降の位置となるように前記復帰位置を決定する、請求項1から請求項4のいずれか1項に記載のゲームプログラム。
【請求項6】
前記動作制御手段は、前記ゲーム空間内に設定される所定のイベント位置と前記オブジェクトの位置とが所定の位置関係になった場合に前記所定の動作として前記オブジェクトにイベント動作を行わせ、
前記復帰位置決定手段は、前記軌跡上の位置のうちで、前記オブジェクトが前記イベント動作を行う位置以前の位置となるように前記復帰位置を決定する、請求項1から請求項5のいずれか1項に記載のゲームプログラム。
【請求項7】
前記軌跡検出手段によって前記軌跡が入力される毎に、当該軌跡上の位置のうちで前記イベント位置となる位置を前記ゲーム装置のメモリに記憶するイベント位置記憶手段として前記コンピュータをさらに機能させ、
前記動作制御手段は、前記メモリに記憶されているイベント位置に前記オブジェクトが到達した場合に当該オブジェクトに前記イベント動作を行わせる、請求項6に記載のゲームプログラム。
【請求項8】
前記動作制御手段は、前記オブジェクトを移動させる毎に、前記オブジェクトの位置と他のオブジェクトの位置との位置関係が所定の条件を満たすか否かを判定し、当該所定の条件が満たされる場合に、前記移動制御手段によって移動しているオブジェクトに前記所定の動作を行わせる、請求項7に記載のゲームプログラム。
【請求項9】
前記所定の動作を終了した前記オブジェクトの位置からの到達距離または到達時間が最も短い位置である最短位置を前記軌跡上の位置から選出する最短位置選出手段として前記コンピュータをさらに機能させ、
前記復帰位置決定手段は、前記最短位置を前記復帰位置として決定する、請求項4に記載のゲームプログラム。
【請求項10】
前記所定の動作を開始する時点における前記オブジェクトの位置を元位置として前記ゲーム装置のメモリに記憶する元位置記憶手段と、
前記所定の動作を終了した前記オブジェクトの位置から最も短い時間で到達できる位置である最短位置を前記軌跡上の位置から選出する最短位置選出手段として前記コンピュータをさらに機能させ、
前記動作制御手段は、前記ゲーム空間内に設定される所定のイベント位置と前記オブジェクトの位置とが所定の位置関係になった場合に前記所定の動作として前記オブジェクトにイベント動作を行わせ、
前記復帰位置決定手段は、前記最短位置が前記元位置以降の位置であり、かつ、前記イベント位置以前の位置である場合、当該最短位置を前記復帰位置として決定し、前記最短位置が前記元位置よりも前の位置であるか、または、前記イベント位置よりも後の位置である場合、前記元位置を前記復帰位置として決定する、請求項4に記載のゲームプログラム。
【請求項11】
前記軌跡を構成する各点のうち、所定距離間隔で配置された、または、所定時間間隔で入力された1以上の点を登録ポイントとして設定するポイント設定手段として前記コンピュータをさらに機能させ、
前記復帰位置決定手段は、前記登録ポイントのうちから前記復帰位置を決定する、請求項4に記載のゲームプログラム。
【請求項12】
前記動作制御手段は、前記オブジェクトの位置と他のオブジェクトの位置との位置関係が所定の条件を満たした場合に、前記移動制御手段によって移動しているオブジェクトに前記所定の動作を行わせる、請求項1から請求項11のいずれか1項に記載のゲームプログラム。
【請求項13】
プレイヤによって入力された軌跡を検出する軌跡検出手段と、
仮想のゲーム空間に配置されるオブジェクトを、前記軌跡に沿って移動させる移動制御手段と、
前記軌跡に沿って移動している前記オブジェクトに所定の動作を行わせる動作制御手段と、
前記所定の動作を終了したオブジェクトが前記軌跡に復帰する位置である復帰位置を前記軌跡上の位置から決定する復帰位置決定手段とを備え、
前記移動制御手段は、前記所定の動作を終了したオブジェクトを前記復帰位置に復帰させてから前記軌跡に沿った移動を再開させる、ゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate