説明

オブジェクト制御プログラム及びオブジェクト制御装置

【課題】ユーザによって操作されるオブジェクトにユーザの意図した動作を行わせることが可能なオブジェクト制御プログラム及びそれを実行する装置を提供する。
【解決手段】ゲーム装置は、敵キャラクタの表示領域以外へのダブルタッチを検出すると、プレイヤキャラクタに前転動作を行わせる。一方、ゲーム装置は、敵キャラクタへのタッチ操作を検出すると、当該敵キャラクタの位置に禁止エリアを設ける。ゲーム装置は、禁止エリアへのタッチを検出すると、当該タッチ操作がダブルタッチであっても、プレイヤキャラクタに前転動作を禁止し、プレイヤキャラクタに敵キャラクタへの攻撃を行わせる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オブジェクト制御プログラムおよびオブジェクト制御装置に関し、例えば、表示装置の画面上における位置を指定することが可能な入力装置へのユーザによる入力に応じて、オブジェクトの動作を制御するオブジェクト制御プログラムおよびオブジェクト制御装置に関する。
【背景技術】
【0002】
従来より、表示装置の画面上の位置を指示することが可能な入力装置へのユーザによる入力に応じて、ユーザによって操作される操作オブジェクトに所定の動作を行わせるプログラムが存在する。例えば、非特許文献1に記載のゲームでは、入力装置へ第1の操作(円を描く操作)が行われている場合、操作オブジェクトは第1の動作(前転)を行う。一方、入力装置へ第2の操作(タッチ操作)が行われている場合、操作オブジェクトは所定のオブジェクト(敵)に対して第2の動作(ロックオン斬り)を行う。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】「ゼルダの伝説 夢幻の砂時計 取扱説明書」、任天堂株式会社、2007年6月23日、p.14−17
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1に記載のプログラムでは、例えば、上記所定のオブジェクトが移動している場合では、ユーザが操作オブジェクトに対して第2の動作を行わせようと意図して第2の操作をした場合に、第1の動作が行われてしまうことがあった。従って、非特許文献1に記載のプログラムでは、操作オブジェクトにユーザの意図した通りの動作を行わせるという点で改善の余地があった。
【0005】
それ故、本発明の目的は、ユーザによって操作されるオブジェクトにユーザの意図した動作を行わせることが可能なオブジェクト制御プログラム及びそれを実行する装置を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【0007】
本発明は、表示装置の画面上における位置を指定することが可能な入力デバイスへのユーザによる入力に応じて操作される仮想空間内の操作オブジェクトを制御するオブジェクト制御装置のコンピュータにおいて実行されるオブジェクト制御プログラムである。オブジェクト制御プログラムは、上記コンピュータを、位置検出手段、領域設定手段、領域保持手段、動作制御手段、及び、領域判定手段、として機能させる。位置検出手段は、上記入力デバイスからの出力信号に基づいて、ユーザによって指示された上記画面上の位置を検出する。領域設定手段は、上記操作オブジェクトとは異なる上記仮想空間内の所定のオブジェクトの位置に、所定の領域を設定する。領域保持手段は、上記領域設定手段によって設定された所定の領域を所定の保持期間が経過するまで保持する。動作制御手段は、上記入力デバイスからの出力信号に基づいて、上記画面上への第1の操作を検出し、当該第1の操作に応じて上記操作オブジェクトに第1の動作を行わせる。領域判定手段は、上記位置検出手段によって検出された位置が上記領域保持手段によって保持されている所定の領域内に存在するか否かを判定する。また、上記領域保持手段は、上記所定のオブジェクトが上記仮想空間内を移動した場合でも当該所定のオブジェクトが移動する前の位置に上記所定の領域を保持する。そして、上記動作制御手段は、上記領域判定手段による判定結果が肯定である場合、上記第1の操作が行われている場合でも上記操作オブジェクトの上記第1の動作を禁止する。
【0008】
なお、上記所定のオブジェクトは、上記ユーザとは異なるユーザによって操作されるオブジェクトであってもよく、オブジェクト制御装置によって制御されるオブジェクトであってもよい。
【0009】
上記によれば、所定のオブジェクトの位置に所定の領域を設定し、所定の保持期間、当該領域を保持する。所定の領域は、所定のオブジェクトが移動した場合でも移動前の位置に保持される。そして、位置検出手段によって検出された位置が上記所定の領域に存在する場合、上記第1の操作が行われている場合でも、上記操作オブジェクトに第1の動作を行わせないようにする。これにより、ユーザの意図しない操作オブジェクトの動作を禁止することができる。
【0010】
本発明では、上記領域設定手段は、上記入力デバイスからの出力信号に基づいて、上記所定のオブジェクトへのユーザの指示が検出された場合に、上記所定の領域を設定してもよい。
【0011】
上記によれば、上記所定のオブジェクトがユーザによって指示された場合、上記所定の領域を設定することができる。
【0012】
本発明では、上記動作制御手段は、上記領域判定手段による判定結果が肯定である場合、上記操作オブジェクトに上記第1の動作とは異なる第2の動作を行わせてもよい。
【0013】
上記によれば、上記第1の動作の替わりに第2の動作を上記操作オブジェクトに行わせることができる。
【0014】
本発明では、上記動作制御手段は、上記入力デバイスからの出力信号に基づいて、上記画面上への第1の操作または当該第1の操作と異なる第2の操作を検出してもよい。この場合において、上記動作制御手段は、上記領域判定手段による判定結果が肯定である場合、上記第1の操作または上記第2の操作に応じて、上記操作オブジェクトに上記第2の動作を行わせてもよい。
【0015】
上記によれば、ユーザによって指示された位置が上記所定の領域内に存在する場合、上記第1の操作又は第2の操作に応じて、上記操作オブジェクトに第2の動作を行わせることができる。
【0016】
本発明では、上記動作制御手段は、上記領域判定手段による判定結果が否定である場合、上記第1の操作に応じて、上記操作オブジェクトに上記第1の動作を行わせてもよい。
【0017】
上記によれば、上記位置検出手段によって検出された位置が、上記所定の領域に存在しない場合に第1の動作を行わせることができる。これにより、操作オブジェクトにユーザの意図した動作を行わせることができる。
【0018】
本発明では、上記動作制御手段は、上記入力デバイスへの所定の操作が所定の検出期間に連続して検出されたことにより、上記第1の操作を検出してもよい。
【0019】
上記によれば、上記入力デバイスへの所定の操作が所定の検出期間に連続して検出された場合、上記第1の操作を検出することができる。例えば、タッチパネル等の入力デバイスに対するダブルタッチ操作を検出した場合に、上記第1の操作を検出することができる。
【0020】
本発明では、上記保持期間は、上記検出期間よりも長くてもよい。
【0021】
上記によれば、上記保持期間を、上記検出期間よりも長くすることができる。すなわち、上記所定の領域が保持される期間を、上記所定の操作が検出される期間よりも長くすることができる。これにより、例えば、上記所定の領域が保持される期間を、ダブルタッチの検出期間よりも長くすることができ、上記操作オブジェクトにユーザの意図した操作を行わせることができる。
【0022】
本発明では、上記領域保持手段は、上記所定のオブジェクトが上記仮想空間内を移動した場合に、当該移動に応じて上記所定の領域を移動させてもよい。この場合において、上記領域判定手段は、上記位置検出手段によって検出された位置が、上記領域保持手段によって移動した領域又は保持された領域の何れかに存在するか否かを判定する。
【0023】
上記によれば、上記所定のオブジェクトの移動に伴って所定の領域を移動させるとともに、移動前の位置にも上記所定の領域を保持させることができる。そして、ユーザによって指示された位置が、上記移動後の所定の領域又は保持された領域の何れかに存在するか否かを判定することができる。
【0024】
本発明では、上記領域設定手段は、上記操作オブジェクトと上記所定のオブジェクトとの位置関係が所定の条件を満たす場合、上記所定の領域を設定しなくてもよい。
【0025】
上記によれば、上記位置関係に応じて、上記所定の領域を設定することができる。
【0026】
本発明では、上記領域設定手段は、上記操作オブジェクト及び/又は上記所定のオブジェクトの移動によって、上記操作オブジェクトと上記所定のオブジェクトとの位置関係が所定の条件を満たすこととなった場合、上記所定の領域を消滅させてもよい。
【0027】
上記によれば、オブジェクトの移動によって上記操作オブジェクトと上記所定のオブジェクトとの位置関係が所定の条件を満たすようになった場合、上記所定の領域を消滅させることができる。
【0028】
本発明では、上記領域設定手段は、上記操作オブジェクト及び上記所定のオブジェクトとは異なる第3のオブジェクトが、上記操作オブジェクトと上記所定のオブジェクトとの間に存在するようになった場合、上記所定の領域を消滅させてもよい。
【0029】
上記によれば、上記操作オブジェクト又は上記所定のオブジェクトの移動によって、上記操作オブジェクトと上記所定のオブジェクトとの間に第3のオブジェクトが存在するようになった場合、上記所定の領域を消滅させることができる。
【0030】
本発明では、上記領域設定手段は、上記所定のオブジェクトの種類に応じて、上記保持期間を設定してもよい。
【0031】
上記によれば、オブジェクトの種類に応じて、上記所定の領域が保持される期間を設定することができる。例えば、移動速度が速いオブジェクトに対しては、上記所定の期間を短く設定することができる。
【0032】
本発明では、上記所定のオブジェクトを自動的に移動させる移動制御手段として、上記コンピュータをさらに機能させてもよい。
【0033】
上記によれば、上記所定のオブジェクトを自動的に移動させることができる。
【0034】
本発明では、上記第1の動作は、上記操作オブジェクトに行わせる非攻撃の動作であり、上記第2の動作は、上記操作オブジェクトに行わせる上記所定のオブジェクトに対する攻撃動作であってもよい。
【0035】
上記によれば、上記操作オブジェクトに非攻撃動作、及び、攻撃動作を行わせることができる。
【0036】
本発明では、上記領域設定手段は、上記所定のオブジェクトの種類に応じて、上記所定の領域の形状、数、又は、大きさを設定してもよい。
【0037】
上記によれば、上記所定のオブジェクトの種類に応じて、上記所定の領域の形状、数、又は、大きさを設定することができる。
【0038】
本発明は、表示装置の画面上における位置を指定することが可能な入力デバイスへのユーザによる入力に応じて操作される仮想空間内の操作オブジェクトを制御するオブジェクト制御装置のコンピュータにおいて実行されるオブジェクト制御プログラムである。オブジェクト制御プログラムは、上記コンピュータを、位置検出手段、領域設定手段、領域保持手段、領域判定手段、及び、動作制御手段として機能させる。位置検出手段は、上記入力デバイスからの出力信号に基づいて、ユーザによって指示された上記画面上の位置を検出する。領域設定手段は、上記操作オブジェクトとは異なる上記仮想空間内の所定のオブジェクトの位置に、所定の領域を設定する。領域保持手段は、上記領域設定手段によって設定された所定の領域を所定の保持期間が経過するまで保持する。領域判定手段は、上記位置検出手段によって検出された位置が上記領域保持手段によって保持されている所定の領域内に存在するか否かを判定する。動作制御手段は、上記領域判定手段による判定結果が肯定である場合、上記入力デバイスへの所定の操作に応じて上記操作オブジェクトに第1の動作を行わせる。この場合において、上記領域保持手段は、上記所定のオブジェクトが上記仮想空間内を移動した場合でも当該所定のオブジェクトが移動する前の位置に上記所定の領域を保持する。
【0039】
上記によれば、所定のオブジェクトに所定の領域を設定し、所定の保持期間保持する。上記所定のオブジェクトが移動した場合に、移動前の位置に上記所定の領域は保持される。そして、位置検出手段によって検出された位置が保持された領域に存在する場合、操作オブジェクトに第1の動作を行わせることができる。これにより、所定のオブジェクトが移動している場合であっても、操作オブジェクトにユーザの意図した動作を行わせることができる。
【0040】
また、本発明は、上記オブジェクト制御プログラムを実行するオブジェクト制御装置の形態で実施されてもよい。
【発明の効果】
【0041】
本発明によれば、ユーザによって操作されるオブジェクトにユーザの意図した動作を行わせることができる。
【図面の簡単な説明】
【0042】
【図1】一実施形態に係る携帯型のゲーム装置の外観図
【図2】ゲーム装置10の内部構成を示すブロック図
【図3】本実施形態に係るゲームの実行中において、第2のLCD12の画面に表示されるゲーム画像の一例を示した図
【図4】プレイヤキャラクタ40が敵キャラクタ41を攻撃する様子を示した図
【図5】プレイヤキャラクタ40がゲーム空間上を歩いて移動する様子を示した図
【図6】プレイヤキャラクタ40がゲーム空間上を前転しながら移動する様子を示した図
【図7A】禁止エリアが発生する様子を示した図
【図7B】禁止エリア50内をダブルタッチした場合のプレイヤキャラクタ40の動作を示した図
【図8】敵キャラクタ41が移動した場合において禁止エリアが移動する様子を示した図
【図9】敵キャラクタ41が移動した場合において、移動前の位置にプレイヤがダブルタッチを行った場合のプレイヤキャラクタ40の動作を示した図
【図10】プレイヤキャラクタ40又は敵キャラクタ41が移動した後、プレイヤキャラクタ40と敵キャラクタ41との間に壁オブジェクト43が存在する場合を示した図
【図11】ゲーム装置10のRAM24のメモリマップを示す図
【図12】本実施形態に係るゲーム処理の詳細を示すメインフローチャート
【図13】動作判定処理(ステップS2)の詳細を示すフローチャート
【図14】移動処理(ステップS3)の詳細を示すフローチャート
【図15】他の実施形態におけるゲームシステムの外観を示す外観図
【発明を実施するための形態】
【0043】
(ゲーム装置の説明)
図面を参照して、本発明の一実施形態に係るオブジェクト制御プログラムを実行する携帯型のゲーム装置について説明する。図1は、本発明の一実施形態に係る携帯型のゲーム装置の外観図である。
【0044】
図1において、ゲーム装置10は、第1のLCD(Liquid Crystal Display:液晶表示装置)11および第2のLCD12を含む。ハウジング13は上側ハウジング13aと下側ハウジング13bとによって構成されている。第1のLCD11は上側ハウジング13aに収納され、第2のLCD12は下側ハウジング13bに収納される。第1のLCD11および第2のLCD12の解像度はいずれも256dot×192dotである。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【0045】
上側ハウジング13aには、後述する1対のスピーカ(図2の30aおよび30b)からの音を外部に放出するための音抜き孔18aおよび18bが形成されている。また、上側ハウジング13aと下側ハウジング13bとを開閉可能に接続するヒンジ部にはマイクロフォン用孔33が設けられている。
【0046】
下側ハウジング13bには、入力装置(入力デバイス)として、十字スイッチ14a、スタートスイッチ14b、セレクトスイッチ14c、Aボタン14d、Bボタン14e、Xボタン14f、およびYボタン14gが設けられている。また、下側ハウジング13bの側面には、図示しないLボタンおよびRボタンが設けられている。また、さらなる入力装置(入力デバイス)として、第2のLCD12の画面上に指示検出装置であるタッチパネル15が装着されている。下側ハウジング13bの側面には、電源スイッチ19、メモリカード17を接続するための挿入口35(図1に示す一点鎖線)、スティック16を収納するための挿入口36(図1に示す点線)が設けられている。
【0047】
タッチパネル15としては、例えば抵抗膜方式や光学式(赤外線方式)や静電容量結合式など、任意の方式のものを利用することができる。本実施形態では、タッチパネル15は、抵抗膜方式であるものとする。タッチパネル15は、スティック16に限らず指で操作することも可能である。本実施形態では、タッチパネル15として、第2のLCD12の解像度と同じく256dot×192dotの解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル15の解像度と第2のLCD12の解像度が一致している必要はない。
【0048】
メモリカード17は、ゲームプログラムを記憶するROM17aと、バックアップデータを書き換え可能に記憶するEEPROM17bを搭載し、下部ハウジング13bに設けられた挿入口35に着脱自在に装着される。図1では省略するが、挿入口35の奥部には、メモリカード17の挿入方向先端部に設けられるコネクタと接合するための第1コネクタ23(図2参照)が設けられている。メモリカード17が挿入口35に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア21(図2参照)がメモリカード17にアクセス可能となる。
【0049】
次に、図2を参照してゲーム装置10の内部構成を説明する。図2は、ゲーム装置10の内部構成を示すブロック図である。図2において、ハウジング13に収納される電子回路基板20には、CPUコア21が実装される。CPUコア21には、バス22を介して、コネクタ23が接続されるとともに、入出力インターフェース回路(図面ではI/F回路と記す)25、第1GPU(Graphics Processing Unit)26、第2GPU27、RAM24、およびLCDコントローラ31、およびワイヤレス通信部34が接続される。コネクタ23には、メモリカード17が着脱自在に接続される。I/F回路25には、タッチパネル15、右スピーカ30a、左スピーカ30b、図1の十字スイッチ14aやAボタン14d等から成る操作スイッチ部14、およびマイクロフォン37が接続される。右スピーカ30aと左スピーカ30bは、音抜き孔18a、18bの内側にそれぞれ配置される。マイクロフォン37は、マイクロフォン用孔33の内側に配置される。
【0050】
第1GPU26には、第1VRAM(Video RAM)28が接続され、第2GPU27には、第2VRAM29が接続される。第1GPU26は、CPUコア21からの指示に応じて第1の表示画像を生成し、第1VRAM28に描画する。第2GPU27は、同様にCPUコア21からの指示に応じて第2の表示画像を生成し、第2VRAM29に描画する。第1VRAM28および第2VRAM29はLCDコントローラ31に接続されている。
【0051】
LCDコントローラ31はレジスタ32を含む。レジスタ32はCPUコア21からの指示に応じて0または1の値を記憶する。LCDコントローラ31は、レジスタ32の値が0の場合は、第1VRAM28に描画された第1の表示画像を第1のLCD11に出力し、第2VRAM29に描画された第2の表示画像を第2のLCD12に出力する。また、レジスタ32の値が1の場合は、第1VRAM28に描画された第1の表示画像を第2のLCD12に出力し、第2VRAM29に描画された第2の表示画像を第1のLCD11に出力する。
【0052】
ワイヤレス通信部34は、他のゲーム装置のワイヤレス通信部との間で、データを送受信する機能を有している。また、ゲーム装置10は、ワイヤレス通信部34を介してインターネット等の広域ネットワークに接続することが可能であり、ネットワークを介して他のゲーム装置との間で通信を行うことも可能である。
【0053】
(ゲームの概要)
次に、図3から図10を用いて、本実施形態に係るゲームの概要について説明する。本実施形態に係るゲームでは、プレイヤによって操作される操作オブジェクトとしてのプレイヤキャラクタが、ゲーム空間内を移動し、様々な敵やその他のオブジェクトに遭遇しながら冒険をする。図3は、本実施形態に係るゲームの実行中において、第2のLCD12の画面に表示されるゲーム画像の一例を示した図である。図3に示すように、画面にはプレイヤキャラクタ40、敵キャラクタ41、木オブジェクト42、及び、壁オブジェクト43が表示される。プレイヤは、第2のLCD12の画面(タッチパネル15)をスティック16を用いてタッチ(タッチ操作)することにより、プレイヤキャラクタ40を操作する。例えば、プレイヤは、画面上をタッチすることにより、プレイヤキャラクタ40をゲーム空間で移動させたり、プレイヤキャラクタ40に敵キャラクタ41を攻撃させたりする。以下、タッチ操作によるプレイヤキャラクタ40の動作について説明する。
【0054】
図4は、プレイヤキャラクタ40が敵キャラクタ41を攻撃する様子を示した図である。プレイヤが、スティック16を用いて敵キャラクタ41が表示された画面上の位置Pをシングルタッチ(又はダブルタッチ)すると、プレイヤキャラクタ40は、敵キャラクタ41が存在する位置まで歩いて(又は走って)移動し、敵キャラクタ41を剣で攻撃する。なお、「シングルタッチ」とは、所定期間におけるプレイヤによるタッチパネル15への1回のタッチ操作である。また、「ダブルタッチ」とは、タッチパネル15上を素早くタッチして離し、時間を空けずにその場所を再びタッチすることである。ダブルタッチは、所定期間(例えば、0.3秒)におけるプレイヤによるタッチパネル15上の位置(ある範囲を持った位置)への2回のタッチ操作である。すなわち、1回目のタッチ位置から一定の範囲(例えば、当該タッチ位置を中心とした所定の半径を有する円)内の位置への2回目のタッチが上記所定期間に行われた場合、ゲーム装置10はダブルタッチが行われたと判定する。このように、プレイヤは、敵キャラクタ41が表示された位置をタッチすることにより、敵キャラクタ41を攻撃することができる。
【0055】
図5は、プレイヤキャラクタ40がゲーム空間内を歩いて移動する様子を示した図である。図5に示すように、プレイヤがスティック16を用いて敵キャラクタ41が表示されていない位置Pにシングルタッチした場合、プレイヤキャラクタ40は、当該タッチした位置Pに対応したゲーム空間内の位置に歩いて(又は走って)移動する。
【0056】
図6は、プレイヤキャラクタ40がゲーム空間内を前転しながら移動する様子を示した図である。図6に示すように、プレイヤがスティック16を用いて敵キャラクタ41が表示されていない位置Pにダブルタッチした場合、プレイヤキャラクタ40は、当該タッチした位置Pに対応したゲーム空間内の位置に前転しながら移動する。図6に示す前転による移動は、図5に示すように歩いて移動する場合よりも移動速度が速い。すなわち、プレイヤが画面上の敵キャラクタ41が表示されていない位置をダブルタッチすると、シングルタッチする場合よりも速くプレイヤキャラクタ40がゲーム空間内を移動する。
【0057】
以上のように、本実施形態に係るゲームでは、プレイヤがタッチした位置に敵キャラクタ41が存在する場合は、シングルタッチでもダブルタッチでも敵キャラクタ41を攻撃する。また、プレイヤがタッチした位置に敵キャラクタ41が存在しない場合は、シングルタッチでは当該タッチ位置に対応したゲーム空間内の位置にプレイヤキャラクタ40が歩いて移動し、ダブルタッチでは当該タッチ位置に対応したゲーム空間内の位置にプレイヤキャラクタ40が前転して移動する。
【0058】
次に、上記プレイヤキャラクタ40の各動作(剣攻撃、歩いて移動、前転)の決定の仕方について、説明する。本実施形態では、プレイヤによって行われたタッチ操作に基づいて上記各動作を決定するために、敵キャラクタ41の位置に禁止エリアを設ける。ここで、「禁止エリア」とは、プレイヤキャラクタ40が前転で移動することを禁止するための領域であり、当該禁止エリアをプレイヤがタッチした場合でも、プレイヤキャラクタ40に前転をさせないための領域である。
【0059】
図7Aは、禁止エリアが発生する様子を示した図である。図7Aに示すように、プレイヤが敵キャラクタ41の表示位置Pをシングルタッチした場合、敵キャラクタ41のゲーム空間における位置を中心とした円又は楕円形状の禁止エリア50が発生する。禁止エリア50は、ゲーム空間内に仮想的に設けられた領域であり、実際には画面には表示されない。また、禁止エリア50の発生とともに、プレイヤキャラクタ40は、敵キャラクタ41に攻撃を行う。すなわち、ゲーム装置10は、敵キャラクタ41へのシングルタッチを検出すると、禁止エリア50を発生させるとともに、プレイヤキャラクタ40に敵キャラクタ41への攻撃を行わせる。
【0060】
禁止エリア50は、発生してから所定時間存在し続ける。そして、所定時間経過後、禁止エリア50は、消滅する。禁止エリア50が発生してから消滅するまでの時間は、例えば2秒に設定されてもよい。禁止エリア50が消滅してから再びプレイヤが敵キャラクタ41をタッチすると、禁止エリア50も再び発生する。
【0061】
一方、プレイヤが敵キャラクタ41の表示位置Pをダブルタッチした場合、シングルタッチと同様、1回目のタッチ操作で禁止エリア50が発生する。ダブルタッチの場合、2回目のタッチ位置が禁止エリア50内に存在するため、プレイヤキャラクタ40は、上述したような前転動作を行わず、敵キャラクタ41に攻撃を行う。図7Bは、禁止エリア50内をダブルタッチした場合のプレイヤキャラクタ40の動作を示した図である。図7Bに示すように、ゲーム装置10は、禁止エリア50内でダブルタッチを検出しても、プレイヤキャラクタ40に前転を行わせず、攻撃を行わせる。すなわち、禁止エリア50は、前転動作が禁止される領域であるため、前転の替わりに攻撃が行われる。
【0062】
次に、敵キャラクタ41が移動する場合について説明する。上述のようにして1回のタッチ操作(シングルタッチ、及び、ダブルタッチの1回目のタッチ操作)で発生した禁止エリア50は、敵キャラクタ41の移動に伴って移動する。図8は、敵キャラクタ41が移動した場合において禁止エリアが移動する様子を示した図である。図8において41’は、移動前の敵キャラクタを示し、41は移動後の敵キャラクタを示す。なお、敵キャラクタ41’は、実際には画面に表示されない。図8に示すように、敵キャラクタがゲーム空間の位置P’から位置Pに移動した場合、その移動量に応じて禁止エリア50も移動する。すなわち、禁止エリア50は、敵キャラクタ41の位置に対応して設定される領域であるため、敵キャラクタ41の移動に伴って、移動する。
【0063】
さらに、移動前の敵キャラクタ41’の位置P’に対応して設定されていた禁止エリアは、保管禁止エリア501として、ゲーム装置10に記憶される。すなわち、禁止エリア50は、敵キャラクタ41の移動に伴って移動するが、移動前の位置にも保管禁止エリア501が設定される。保管禁止エリア501は、敵キャラクタ41の移動に伴って移動しない。保管禁止エリア501は、禁止エリアと同様にプレイヤキャラクタ40の前転動作が禁止される領域である。保管禁止エリア501は、所定の時間存在し、その後消滅する。なお、保管禁止エリア501が発生してから消滅するまでの時間(保管禁止エリアの存在期間)は、禁止エリア50が発生してから消滅するまでの時間(禁止エリアの存在期間)よりも短い。例えば、保管禁止エリア501が発生してから消滅するまでの時間は、ダブルタッチの検出期間(例えば0.3秒)より長く設定され、例えば、0.5秒に設定されてもよい。
【0064】
図8に示す移動後の敵キャラクタ41が、さらにその後移動した場合、禁止エリア50もそれに伴って移動するとともに、移動前の禁止エリア50の位置に新たに保管禁止エリア502が設けられる。このようにして、保管禁止エリア50i(iは正の整数)は、敵キャラクタ41が移動するとともに設定され、各保管禁止エリアは、その存在期間が経過後に消滅する。
【0065】
図9は、敵キャラクタ41が移動した場合において、移動前の位置にプレイヤがダブルタッチを行った場合のプレイヤキャラクタ40の動作を示した図である。図9に示すように、プレイヤが保管禁止エリア501内にダブルタッチを行った場合、プレイヤキャラクタ40は攻撃動作を行う。しかしながら、当該タッチ位置には敵キャラクタ41は移動して存在しないため、敵キャラクタ41への攻撃は行われず、剣攻撃は空振りとなる。なお、プレイヤが保管禁止エリア501内にシングルタッチを行った場合も、同様に剣攻撃は空振りとなる。
【0066】
以上のように、保管禁止エリア501を設けることにより、敵キャラクタ41が移動した後もプレイヤキャラクタ40の前転動作を禁止することができる。プレイヤが敵キャラクタ41をタッチしてプレイヤキャラクタ40に攻撃動作をさせる場合において、プレイヤは、敵キャラクタ41に連続してダメージを与えるため、敵キャラクタ41を連続してタッチすることがある。この場合において敵キャラクタ41が移動すると、その移動にプレイヤのタッチ動作が追いつかない場合がある。すると、プレイヤが連続してタッチした位置に対応するゲーム空間内の位置に敵キャラクタ41が存在しないことになり、ゲーム装置10は、敵キャラクタ41が存在しない位置へのダブルタッチを検出する。この場合、上記保管禁止エリア501を設けなければ、ゲーム装置10は、プレイヤキャラクタ40を当該位置へ前転させてしまい、プレイヤの意図した操作とは異なる操作が行われる。従って、上述したように、禁止エリア50及び保管禁止エリア501が設定されることによって、プレイヤの意図した操作を正確に判別し、ゲーム処理に反映させることができる。
【0067】
なお、上記禁止エリア50の形状は、円又は楕円形状に限らず、例えば、多角形や3次元形状であってもよい。また、敵キャラクタの位置に対応して複数設けられてもよい。例えば、敵キャラクタの足が2本ある場合では、各足首の中心に設けられてもよい。
【0068】
また、図10に示すように、プレイヤキャラクタ40又は敵キャラクタ41が移動した後、プレイヤキャラクタ40と敵キャラクタ41との間に壁オブジェクト43が存在する場合、禁止エリアの発生からその存在期間が経過する前に禁止エリア50を消滅させてもよい。図10は、プレイヤキャラクタ40又は敵キャラクタ41が移動した後、プレイヤキャラクタ40と敵キャラクタ41との間に壁オブジェクト43が存在する場合を示した図である。この場合において、プレイヤが敵キャラクタ41をダブルタッチすると、敵キャラクタ41には禁止エリア50が設定されていないため、プレイヤキャラクタ40は、前転動作を行う。しかしながら、プレイヤキャラクタ40と敵キャラクタ41との間に壁オブジェクト43が存在するため、プレイヤキャラクタ40は、前転動作の途中で壁オブジェクト43に衝突して停止する。そのため、プレイヤキャラクタ40は、敵キャラクタ41の位置に前転して移動することはできない。
【0069】
(ゲーム処理の詳細)
次に、本実施形態に係るゲームの詳細な処理について説明する。まず、ゲーム処理の際にRAM24に記憶される主なデータについて説明する。図11は、ゲーム装置10のRAM24のメモリマップを示す図である。図11に示されるように、RAM24には、データ記憶領域60が設けられる。データ記憶領域60には、プレイヤキャラクタデータ61、敵キャラクタデータ62、タッチ位置データ63、禁止エリアデータ64、保管禁止エリアデータ65等が記憶される。これらのデータの他、RAM24には、上記ゲーム処理を実行するゲームプログラムやプレイヤキャラクタ40の画像データ、敵キャラクタの画像データ、その他のオブジェクトの画像データ等が記憶される。
【0070】
プレイヤキャラクタデータ61は、プレイヤキャラクタ40のゲーム空間における位置を示すデータである。
【0071】
敵キャラクタデータ62は、敵キャラクタ41のゲーム空間における位置、及び、敵キャラクタ41の指示判定領域を表すデータである。「指示判定領域」とは、プレイヤが画面上を指示した場合に、敵キャラクタ41が指示されたか否かを判定するための領域である。敵キャラクタ41の指示判定領域は、敵キャラクタ41が画面上に表示された場合の表示領域を含む領域であり、例えば、円柱形状であってもよい。なお、当該指示判定領域は、どのような形状であってもよく、敵キャラクタ41の表示領域よりも小さい領域であってもよい。
【0072】
タッチ位置データ63は、プレイヤによるタッチ位置を示すデータの集合である。タッチ位置データ63は、第2のLCD12の画面上の位置に対応した座標値を示すデータである。タッチ位置データ63には、少なくとも最新のタッチ位置とその直前のタッチ位置とが記憶される。
【0073】
禁止エリアデータ64は、禁止エリア50の位置、形状、及びタイマーを示すデータである。禁止エリア50のタイマーとは、禁止エリア50の残りの存在時間を示す値であり、フレーム数によって表される。禁止エリア50の保管禁止エリアデータ65は、各保管禁止エリア50i(iは正の整数)の位置、形状、及び、タイマーを示すデータである。
【0074】
次に、ゲーム処理の詳細について図12を用いて説明する。図12は、本実施形態に係るゲーム処理の詳細を示すメインフローチャートである。ゲーム装置10の電源が投入されると、ゲーム装置10のCPUコア21は、図示しないROMに記憶されている起動プログラムを実行し、これによってRAM24等の各ユニットが初期化される。次に、ROM17aに記憶されたゲームプログラムがRAM24に読み込まれ、CPUコア21によって当該ゲームプログラムの実行が開始される。図12に示すフローチャートは、以上の処理が完了した後に行われるゲーム処理を示すフローチャートである。なお、図12では、本発明に直接関連しないゲーム処理については記載を省略する。また、図12に示すステップS1〜ステップS7の処理ループは、1フレーム(例えば1/30秒。フレーム時間という)毎に繰り返し実行される。
【0075】
まず、ステップS1において、CPUコア21は、タッチパネル15へのタッチを検出する。判定結果が肯定の場合、CPUコア21は、検出したタッチ位置をタッチ位置データ63として、RAM24に記憶する。判定結果が肯定の場合、CPUコア21は、次に、ステップS2の処理を実行する。一方、判定結果が否定の場合、CPUコア21は、次にステップS3の処理を実行する。
【0076】
ステップS2において、CPUコア21は、動作判定処理を行う。ここでは、検出したタッチ位置に基づいて、プレイヤキャラクタ40の動作を判定する。ステップS2における動作判定処理の詳細を、図13を用いて説明する。図13は、動作判定処理(ステップS2)の詳細を示すフローチャートである。
【0077】
ステップS11において、CPUコア21は、検出したタッチ位置が禁止エリア又は保管禁止エリアの内部に存在するか否かを判定する。具体的には、CPUコア21は、RAM24のタッチ位置データ63を参照して、ステップS1で検出した最新のタッチ位置を取得する。そして、CPUコア21は、RAM24の禁止エリアデータ64を参照して、取得した最新のタッチ位置が、禁止エリア50の内部に存在するか否かを判定する。また、CPUコア21は、RAM24の保管禁止エリアデータ65を参照して、取得した最新のタッチ位置が、各保管禁止エリア50iの内部に存在するか否かを判定する。判定結果が肯定の場合(すなわち、最新のタッチ位置が禁止エリア50又は保管禁止エリア50i内に存在する場合)、CPUコア21は、次にステップS12の処理を実行する。一方、判定結果が否定の場合、CPUコア21は、次にステップS13の処理を実行する。
【0078】
ステップS12において、CPUコア21は、プレイヤキャラクタ40の動作を攻撃動作と判定して、当該動作判定処理を終了する。
【0079】
ステップS13において、CPUコア21は、タッチ位置に対象物が存在するか否かを判定する。ここで、「対象物」とは、禁止エリア50が設定される対象物であり、具体的には、上記敵キャラクタ41である。なお、「対象物」は、上記敵キャラクタ41以外のオブジェクトであってもよい。ステップS13において、具体的には、CPUコア21は、敵キャラクタデータ62を参照して、最新のタッチ位置が敵キャラクタ41の指示判定領域内に存在するか否かを判定する。判定結果が肯定の場合、CPUコア21は、次にステップS14の処理を実行する。判定結果が否定の場合、CPUコア21は、次にステップS16の処理を実行する。
【0080】
ステップS14において、CPUコア21は、禁止エリア50を発生させる。具体的には、CPUコア21は、敵キャラクタデータ62を参照して、敵キャラクタ41の位置に予め定められた形状の禁止エリア50を設定し、禁止エリアデータ64としてRAM24に記憶する。次に、CPUコア21は、ステップS15の処理を実行する。
【0081】
ステップS15において、CPUコア21は、禁止エリア50のタイマーを所定の値に設定し、RAM24に記憶する(禁止エリアデータ64のタイマーをセットする)。例えば、CPUコア21は、禁止エリア50のタイマーを60(時間に換算すると2秒)に設定する。ステップS15の後、CPUコア21は、ステップS12の処理を実行する。
【0082】
一方、ステップS16において、CPUコア21は、ダブルタッチか否かを判定する。具体的には、CPUコア21は、タッチ位置データ63を参照して、最新のタッチ位置とその直前のタッチ位置とが所定の範囲であり、かつ、それらのタッチが所定の時間内に検出されたか否かを判定する。例えば、CPUコア21は、直前のタッチ位置と最新のタッチ位置との距離が閾値未満であり、かつ、直前のタッチが検出されてからの経過時間が9フレーム時間(0.3秒)以下であるか否かを判定する。判定結果が肯定の場合、CPUコア21は、今回のタッチ操作はダブルタッチの2回目のタッチであると判定して、次にステップS17の処理を実行する。一方、判定結果が否定である場合、CPUコア21は、次にステップS18の処理を実行する。
【0083】
ステップS17において、CPUコア21は、プレイヤキャラクタ40の動作を前転動作と判定して、当該動作判定処理を終了する。
【0084】
ステップS18において、CPUコア21は、プレイヤキャラクタ40の動作を通常移動の動作(すなわち、歩く動作)と判定して、当該動作判定処理を終了する。なお、ステップS18で通常移動と判定されても、後述するステップS6において、プレイヤキャラクタ40を歩いて移動させない場合がある。すなわち、ステップS16におけるダブルタッチか否かの判定において、検出されたタッチ操作が、ダブルタッチの1回目のタッチ操作である可能性もある。従って、ステップS16においてシングルタッチと判定されても、その後にダブルタッチが検出された場合は、1回目のタッチに応じた動作(歩く動作)は実行されない。
【0085】
図12に戻り、ステップS2の処理の後、CPUコア21は、次にステップS3の処理を実行する。
【0086】
ステップS3において、CPUコア21は、移動処理を実行する。ステップS3の処理では、敵キャラクタ41をゲーム空間で移動させるとともに、禁止エリア50及び保管禁止エリア501を発生させる。ステップS3における移動処理の詳細を、図14を用いて説明する。図14は、移動処理(ステップS3)の詳細を示すフローチャートである。
【0087】
ステップS21において、CPUコア21は、対象物(敵キャラクタ41)を移動させるか否かを判定する。敵キャラクタ41は、所定のアルゴリズムでゲーム空間を移動する(敵キャラクタ41は、予め定められたパターン又はランダムにゲーム空間を移動する)。CPUコア21は、時間やその他のゲーム状況に応じて、敵キャラクタ41を移動させるか否かを判定する。さらに、CPUコア21は、対象物を移動させると判定した場合、その移動方向と移動距離を示す移動ベクトルを決定する。判定結果が肯定の場合、CPUコア21は、次にステップS22の処理を実行する。一方、判定結果が否定の場合、CPUコア21は、次にステップS26の処理を実行する。
【0088】
ステップS22において、CPUコア21は、対象物(敵キャラクタ41)に設定されていた禁止エリア50をコピーして、保管禁止エリア50iとしてRAM24に記憶する。具体的には、CPUコア21は、禁止エリアデータ64を参照して、禁止エリア50の位置及び形状を取得し、保管禁止エリアデータ65としてRAM24に記憶する。次に、CPUコア21は、ステップS23の処理を実行する。
【0089】
ステップS23において、CPUコア21は、保管禁止エリア50iのタイマーを所定の値に設定し、RAM24に記憶する(保管禁止エリアデータ65のタイマーをセットする)。例えば、CPUコア21は、保管禁止エリア50iのタイマーを15(時間に換算すると0.5秒)に設定する。次に、CPUコア21は、ステップS24の処理を実行する。
【0090】
ステップS24において、CPUコア21は、対象物を移動させる。具体的には、CPUコア21は、敵キャラクタデータ62を参照して、敵キャラクタ41の位置を更新し(敵キャラクタ41の現在位置を示す位置ベクトルにステップS21で決定した移動ベクトルを加える)、RAM24に記憶する。次に、CPUコア21は、ステップS25の処理を実行する。
【0091】
ステップS25において、CPUコア21は、対象物の移動に応じて、禁止エリア50を移動させる。具体的には、CPUコア21は、禁止エリアデータ64を参照して、禁止エリア50の位置を更新し(禁止エリア50の現在位置を示す位置ベクトルにステップS21で決定した移動ベクトルを加える)、RAM24に記憶する。次に、CPUコア21は、ステップS26の処理を実行する。
【0092】
ステップS26において、CPUコア21は、禁止エリア50、及び、各禁止エリア50iのタイマーをデクリメントする。具体的には、CPUコア21は、RAM24を参照して、禁止エリア50のタイマーを1だけ減ずるとともに、各禁止エリア50iのタイマーもそれぞれ1だけ減ずる。次に、CPUコア21は、ステップS27の処理を実行する。
【0093】
ステップS27において、CPUコア21は、禁止エリア50のタイマーが0か否かを判定する。ここでは、禁止エリア50が発生してからの経過時間が、当該禁止エリア50の存在期間に達しているか否かを判定する。判定結果が肯定の場合、CPUコア21は、次にステップS28の処理を実行する。一方、判定結果が否定の場合、CPUコア21は、次にステップS29の処理を実行する。
【0094】
ステップS28において、CPUコア21は、禁止エリアデータ64をRAM24から削除することにより、禁止エリア50を消滅させる。次に、CPUコア21は、ステップS29の処理を実行する。
【0095】
ステップS29において、CPUコア21は、保管禁止エリア50iのタイマーが0か否かを判定する。ここでは、各保管禁止エリア50iが発生してからの経過時間が、当該各禁止エリア50iの存在期間に達しているか否かを判定する。判定結果が肯定の場合、CPUコア21は、次にステップS30の処理を実行する。一方、判定結果が否定の場合、CPUコア21は、当該移動処理を終了する。
【0096】
ステップS30において、CPUコア21は、保管禁止エリアデータ65を参照して、保管禁止エリア50iを消滅させる。ここでは、タイマーが0になった保管禁止エリア50iを消滅させる処理である。ステップS29及びステップS30においては、各保管禁止エリア50iのタイマーが判定され、タイマーが0となっている保管禁止エリア50iのみ消滅させる。ステップS30の処理の後、CPUコア21は、当該移動処理を終了する。
【0097】
図12に戻り、ステップS3の処理の後、CPUコア21は、次にステップS4の処理を実行する。
【0098】
ステップS4において、CPUコア21は、プレイヤキャラクタ40と対象物(敵キャラクタ41)との間に壁オブジェクト43が存在するか否かを判定する。具体的には、CPUコア21は、RAM24を参照して、プレイヤキャラクタ40の位置と敵キャラクタ41の位置とを結んだ直線上に、壁オブジェクト43が存在するか否かを判定する。判定結果が肯定の場合、CPUコア21は、次にステップS5の処理を実行する。一方、判定結果が否定の場合、CPUコア21は、次にステップS6の処理を実行する。
【0099】
ステップS5において、CPUコア21は、禁止エリア50及び保管禁止エリア50iを消滅させる。ここでは、CPUコア21は、上述したステップS28及びステップS30と同様の処理を実行する。CPUコア21は、次にステップS6の処理を実行する。
【0100】
ステップS6において、CPUコア21は、その他のゲーム処理を実行する。具体的には、ステップS6において、CPUコア21は、上記動作判定処理や移動処理の結果に応じて、プレイヤキャラクタ40及び敵キャラクタ41のパラメータを変更したり、描画処理を行ったりする。例えば、上記動作判定処理において、プレイヤキャラクタ40の動作が攻撃動作と判定された場合(ステップS12)、CPUコア21は、プレイヤキャラクタ40がタッチ位置に対応したゲーム空間の位置に歩いて移動した後、当該タッチ位置に対して攻撃動作を行う様子を画面に表示する。この場合において、タッチ位置に敵キャラクタ41が存在する場合は、CPUコア21は、プレイヤキャラクタ40が敵キャラクタ41を攻撃する様子を画面に表示したり、敵キャラクタ41の生命パラメータを減少させたりする。一方、タッチ位置に敵キャラクタ41が存在しない場合は、CPUコア21は、プレイヤキャラクタ40が空振りする様子を画面に表示する。また、例えば、上記動作判定処理において、プレイヤキャラクタ40の動作が前転動作と判定された場合(ステップS17)、CPUコア21は、現時点のプレイヤキャラクタ40の位置からタッチ位置に対応したゲーム空間の位置に向かって、プレイヤキャラクタ40が前転する様子を画面に表示し、プレイヤキャラクタ40のゲーム空間における位置を更新する。次に、CPUコア21は、ステップS7の処理を実行する。
【0101】
ステップS7において、CPUコア21は、ゲーム終了か否かを判定し、肯定の場合、ゲーム処理を終了し、否定の場合、ステップS1に戻って、ゲーム処理を繰り返す。例えば、CPUコア21は、プレイヤによってゲーム処理の終了を示す入力装置のボタン(例えば、セレクトスイッチ14c)が押された場合、ゲーム処理を終了する。以上で、本実施形態に係るゲーム処理は終了する。
【0102】
なお、上述した処理において用いられた条件や数値、あるいは、処理の順番等は、単なる例示に過ぎない。すなわち、上記条件や数値は、適宜調整されてもよいし、上記処理の順番はどのような順番であってもよい。
【0103】
以上説明したように、禁止エリアを設定し、それを所定時間保持することにより、プレイヤが攻撃しようと意図してタッチを繰り返した場合、プレイヤキャラクタ40に攻撃動作を行わせることができる。すなわち、プレイヤが意図した通りの動作をプレイヤキャラクタに行わせることができる。
【0104】
なお、上記実施形態では、禁止エリアが設定されている場合は、前転動作を禁止して攻撃動作を行い、禁止エリアが設定されていない場合は、前転動作を行うこととしたが、プレイヤキャラクタ40が行う動作はどのようなものであってもよい。例えば、禁止エリアが設定されていない位置へのシングルタッチを検出すると、プレイヤキャラクタ40に当該タッチ位置へジャンプ移動させてもよい。この場合において、当該タッチ位置に禁止エリアが設定されている場合、プレイヤキャラクタ40に当該ジャンプ移動をさせない(禁止する)ようにしてもよい。
【0105】
すなわち、プレイヤによる所定の操作(タッチ操作)に応じてプレイヤキャラクタ40に第1の動作(例えば、前転移動動作)を行わせる場合において、タッチ位置に禁止エリア(又は保管禁止エリア)が設定されている場合、プレイヤキャラクタ40に上記第1の動作を行わせない(禁止する)ようにしてもよい。つまり、上記実施形態では、タッチ位置に禁止エリア(又は保管禁止エリア)が設定されている場合、プレイヤキャラクタ40に前転動作の替わりに攻撃動作を行わせたが、他の実施形態では、プレイヤキャラクタ40に前転動作も攻撃動作も行わせないようにしてもよい。
【0106】
また、本実施形態では、上記禁止エリアを敵キャラクタの移動に追従して移動させ、移動前の位置に保管禁止エリアを発生させた。他の実施形態では、ユーザによる敵キャラクタのタッチ操作に応じて、敵キャラクタの位置に上記禁止エリアを発生させ、所定時間経過するまで当該禁止エリアを(その位置に)保持してもよい。すなわち、禁止エリアは敵キャラクタの移動に追従して移動する必要はなく、ユーザのタッチ操作に応じて発生させ、発生から所定時間保持させればよい。
【0107】
また、本実施形態では、タッチ操作に応じて前転や攻撃等の動作をプレイヤキャラクタに行わせた。具体的には、ダブルタッチ(所定時間における2回のタッチ操作)に応じてプレイヤキャラクタに前転を行わせる場合において、タッチ位置に禁止エリアが設定されている場合、ダブルタッチを検出しても前転を行わせず、攻撃を行わせた。他の実施形態では、プレイヤによる位置を指示するための操作とプレイヤキャラクタに第1の動作を行わせるための操作とは異なるものであってもよい。例えば、十字スイッチ14aによって画面に表示されたポインタを操作し、Aボタン14dが押された場合に、当該ポインタの位置をプレイヤが指示した位置としてもよい。例えば、Bボタン14eが押された場合に、プレイヤキャラクタに上記第1の動作を行わせてもよい。そして、プレイヤによる指示位置に禁止エリアが設定されている場合、Bボタン14eが押された場合でも上記第1の動作を行わせないようにしてもよい。すなわち、他の実施形態では、入力装置(入力デバイス)への第1の操作が行われている場合にプレイヤキャラクタに第1の動作を行わせてもよい。そして、プレイヤによって指示された画面上の位置が禁止エリア内に存在する場合、上記第1の操作が検出されても上記第1の動作を行わせないようにしてもよい(第1の動作を禁止する)。
【0108】
また、本実施形態では、プレイヤが敵キャラクタ41をタッチした場合に、上記禁止エリアが設定され、所定時間経過後に当該禁止エリアを消滅させた。他の実施形態では、禁止エリアの発生タイミングはどのようなものであってもよい。例えば、敵キャラクタ41に予め禁止エリアが設定されており、敵キャラクタ41の移動に応じて禁止エリアも移動させてもよい。この場合、敵キャラクタ41の移動に応じて、上記保管禁止エリアが移動前の敵キャラクタ41の位置で設定される(移動前の位置で禁止エリアが保持される)。また、所定のタイミングで敵キャラクタ41に禁止エリアを設定し、敵キャラクタ41が移動した場合に、移動前の位置に禁止エリアを保持してもよい。また、例えば、敵キャラクタ41とプレイヤキャラクタ40との距離が所定の距離よりも短くなったタイミングで、上記禁止エリアが設定されてもよいし、敵キャラクタ41が画面上に表示された時点で、上記禁止エリアが設定されてもよい。そして、敵キャラクタ41の移動に応じて、移動前の位置に禁止エリアが保持されてもよい(保管禁止エリアが設定されてもよい)。すなわち、敵キャラクタ41とプレイヤキャラクタ40との距離が所定の距離よりも短くなった時点で、上記禁止エリアを敵キャラクタ41の位置に設定する。これにより、当該敵キャラクタ41へのダブルタッチを検出した場合でも、当該敵キャラクタ41への前転を禁止して、プレイヤキャラクタ40に敵キャラクタ41に対する攻撃(連続攻撃)を行わせることができる。また、敵キャラクタ41とプレイヤキャラクタ40との距離が所定の距離よりも短い状態で、敵キャラクタ41が移動した場合、移動前の位置に禁止エリアを保持する。これにより、移動前の位置へのダブルタッチを検出した場合、ゲーム装置10は、敵キャラクタ41への攻撃が行われたと判断して、移動前の位置への攻撃動作(空振り動作)をプレイヤキャラクタ40に行わせることができる。
【0109】
また、他の実施形態では、禁止エリア及び/又は保管禁止エリアの存在期間(設定されてから消滅するまでの期間)は、オブジェクトの種類に応じて定められてもよい。例えば、動作が速いオブジェクトに対して設定される、上記禁止エリア及び/又は保管禁止エリアの存在期間を、動作の遅いオブジェクトよりも短くしてもよい。
【0110】
また、上記禁止エリア及び保管禁止エリアは、どのような形状及び大きさであってもよいし、1つのオブジェクトに対して複数設定されてもよい。例えば、禁止エリア及び保管禁止エリアは、3次元の形状であってもよい。また、上記禁止エリア及び保管禁止エリアは、オブジェクトの種類に応じて、形状が定められてもよい。例えば、画面上を左右に移動するオブジェクトに対しては、禁止エリアは、画面の上下方向よりも左右方向に大きな形状となるように設定されてもよい。
【0111】
また、プレイヤキャラクタ40及び/又は敵キャラクタ41の移動によって、プレイヤキャラクタ40と敵キャラクタ41との位置関係が所定の条件を満たすまで、禁止エリアを保持してもよい。例えば、プレイヤキャラクタ40と敵キャラクタ41との間に他のオブジェクト(壁オブジェクト43、川オブジェクトや道オブジェクト等)が存在するまで、禁止エリアを保持してもよい。また、例えば、プレイヤキャラクタ40と敵キャラクタ41とが所定の距離以上離れるまで、禁止エリア等を保持してもよい。さらに、上記位置関係が所定の条件を満たす場合、禁止エリア等を発生させなくてもよい。例えば、プレイヤキャラクタ40と敵キャラクタ41との間に他のオブジェクトが存在する場合、禁止エリア等を発生させなくてもよい。
【0112】
また、本実施形態では、敵キャラクタ41はプレイヤによって操作させるプレイヤキャラクタとは異なるキャラクタであって、ゲーム装置10によって自動的に制御されるキャラクタであるとした。他の実施形態では、プレイヤ同士による対戦型のゲームにおいて、上記プレイヤキャラクタの制御方法が適用されてもよい。例えば、上記プレイヤキャラクタ40を第1のプレイヤによって操作されるプレイヤキャラクタAとし、上記敵キャラクタ41を第2のプレイヤによって操作されるプレイヤキャラクタBに代替し、上記方法を適用してもよい。すなわち、第1のプレイヤによる操作に応じてプレイヤキャラクタAを移動させたり、プレイヤキャラクタBに攻撃したりする場合において、プレイヤキャラクタBに禁止エリア等を設定してもよい。これにより、第1のプレイヤの意図した通りにプレイヤキャラクタAを操作することができる。
【0113】
また、上記実施形態における禁止エリアを、許可エリアに置き換えてもよい。ここで、「許可エリア」は、敵キャラクタ41の位置に設定される領域であり、プレイヤキャラクタ40に敵キャラクタ41を攻撃させるための領域である。プレイヤが許可エリア(又は保管許可エリア)をタッチした場合に、プレイヤキャラクタ40に攻撃動作を行わせてもよい。すなわち、所定のオブジェクト(敵キャラクタ)の位置に許可エリアを設定し、当該オブジェクトが移動した場合に移動前の位置に保管許可エリアを設定してもよい。そして、プレイヤによって指示された位置が許可エリア又は保管許可エリアに存在する場合にのみ、プレイヤキャラクタに攻撃動作を行わせてもよい。
【0114】
また、本実施形態では、携帯型のゲーム装置を例に説明したが、他の実施形態では、据置型のゲーム装置に上記方法が適用されてもよい。
【0115】
例えば、図15に示すゲームシステムにおいても、上記オブジェクトの制御方法が適用されてもよい。図15は、他の実施形態におけるゲームシステムの外観を示す外観図である。図15において、ゲームシステム1は、テレビ2、ゲーム装置3、光ディスク4、コントローラ5、及びマーカ部6を含む。本システムは、コントローラ5を用いたゲーム操作に基づいて、ゲーム装置3が光ディスク4に記憶されたゲームプログラムを実行するものである。ユーザは、コントローラ5を用いてテレビ画面上の位置を指示する(ポインティングする)。具体的には、コントローラ5には撮像情報演算部35が設けられ、当該撮像情報演算部35の撮像手段は、マーカ部6のマーカ6R及び6Lからの赤外光を受光する。そして、コントローラ5は、撮像手段が撮像した画像データを解析してマーカ6R及び6Lの位置を算出することにより、ユーザによるポインティング位置(ユーザが指示するテレビ画面上の位置)を算出する。ポインティング位置は、理想的には、コントローラ5の前端部から当該コントローラ5の長手方向に延ばした直線とテレビの画面とが交わる位置である。このようなゲームシステム1において、上述したオブジェクトの制御方法が適用されてもよい。例えば、ユーザは、コントローラ5でテレビ画面上の所定の位置を指示してコントローラ5のボタン5aを押すことにより、画面に表示されたオブジェクトを操作する。指示された位置に上記禁止エリアが設定されている場合、オブジェクトによる所定の動作を禁止し、指示された位置に上記禁止エリアが設定されていない場合、オブジェクトに所定の動作を行わせてもよい。
【0116】
また、他の実施形態では、表示装置とタッチパネルとを有する任意の情報処理装置(例えば、PDA(Personal Digital Assistant)、携帯電話等)や、マウス等のポインティングデバイスを備えたパーソナルコンピュータにも上記方法が適用されてもよい。
【0117】
また、他の実施形態では、ネットワークに接続された端末とサーバとによって構成されるコンピュータシステムにおいて、上記オブジェクトの制御方法が適用されてもよい。例えば、ユーザによって操作される端末の画面上の位置を当該端末の入力装置(例えば、マウス)を用いて指示することにより、サーバ上で管理された操作オブジェクトを制御してもよい。この場合において、当該端末は、ネットワークを介して指示された位置を上記サーバに送信する。一方、サーバは、上記操作オブジェクトや他のオブジェクトを管理したり、上記禁止エリア(又は保管禁止エリア)の設定及び保持を管理したりする。そして、サーバは、指示された位置に上記禁止エリア(又は保管禁止エリア)が存在するか否かを判定して、判定結果に応じて上記操作オブジェクトに所定の動作を行わせてもよい。このようなコンピュータシステムにおいては図12に示す処理はサーバ上で行われるが、図12に示す処理の一部が端末において実行されてもよい。例えば、ステップS1のタッチ検出処理(指示位置の検出処理)、及び、ステップS2の動作判定処理を端末側で実行し、動作判定の結果をサーバに送信してもよい。
【0118】
また、本実施形態においては、ゲーム装置10のCPUコア21がゲームプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置10が備える専用回路によって行われてもよい。
【符号の説明】
【0119】
10 ゲーム装置
11 第1のLCD
12 第2のLCD
13 ハウジング
13a 上側ハウジング
13b 下側ハウジング
14 操作スイッチ部
14a 十字スイッチ
14b スタートスイッチ
14c セレクトスイッチ
14d Aボタン
14e Bボタン
14f Xボタン
14g Yボタン
15 タッチパネル
16 スティック
17 メモリカード
17a ROM
17b フラッシュ
18a,18b 音抜き孔
19 電源スイッチ
20 電子回路基板
21 CPUコア
22 バス
23 コネクタ
24 RAM
25 I/F回路
26 第1GPU
27 第2GPU
28 第1VRAM
29 第2VRAM
30a 右スピーカ
30b 左スピーカ
31 LCDコントローラ
32 レジスタ
33 マイクロフォン用孔
34 ワイヤレス通信部
35 挿入口
36 挿入口
37 マイクロフォン
40 プレイヤキャラクタ
41 敵キャラクタ
42 木オブジェクト
43 壁オブジェクト
50 禁止エリア
501、502 保管禁止エリア

【特許請求の範囲】
【請求項1】
表示装置の画面上における位置を指定することが可能な入力デバイスへのユーザによる入力に応じて操作される仮想空間内の操作オブジェクトを制御するオブジェクト制御装置のコンピュータにおいて実行されるオブジェクト制御プログラムであって、前記コンピュータを、
前記入力デバイスからの出力信号に基づいて、ユーザによって指示された前記画面上の位置を検出する位置検出手段、
前記操作オブジェクトとは異なる前記仮想空間内の所定のオブジェクトの位置に、所定の領域を設定する領域設定手段、
前記領域設定手段によって設定された所定の領域を所定の保持期間が経過するまで保持する領域保持手段、
前記入力デバイスからの出力信号に基づいて、前記画面上への第1の操作を検出し、当該第1の操作に応じて前記操作オブジェクトに第1の動作を行わせる動作制御手段、及び、
前記位置検出手段によって検出された位置が前記領域保持手段によって保持されている所定の領域内に存在するか否かを判定する領域判定手段、として機能させ、
前記領域保持手段は、前記所定のオブジェクトが前記仮想空間内を移動した場合でも当該所定のオブジェクトが移動する前の位置に前記所定の領域を保持し、
前記動作制御手段は、前記領域判定手段による判定結果が肯定である場合、前記第1の操作が行われている場合でも前記操作オブジェクトの前記第1の動作を禁止する、オブジェクト制御プログラム。
【請求項2】
前記領域設定手段は、前記入力デバイスからの出力信号に基づいて、前記所定のオブジェクトへのユーザの指示が検出された場合に、前記所定の領域を設定する、請求項1に記載のオブジェクト制御プログラム。
【請求項3】
前記動作制御手段は、前記領域判定手段による判定結果が肯定である場合、前記操作オブジェクトに前記第1の動作とは異なる第2の動作を行わせる、請求項1または2に記載のオブジェクト制御プログラム。
【請求項4】
前記動作制御手段は、前記入力デバイスからの出力信号に基づいて、前記画面上への第1の操作または当該第1の操作と異なる第2の操作を検出し、前記領域判定手段による判定結果が肯定である場合、前記第1の操作または前記第2の操作に応じて、前記操作オブジェクトに前記第2の動作を行わせる、請求項3に記載のオブジェクト制御プログラム。
【請求項5】
前記動作制御手段は、前記領域判定手段による判定結果が否定である場合、前記第1の操作に応じて、前記操作オブジェクトに前記第1の動作を行わせる、請求項4に記載のオブジェクト制御プログラム。
【請求項6】
前記動作制御手段は、前記入力デバイスへの所定の操作が所定の検出期間に連続して検出されたことにより、前記第1の操作を検出する、請求項4または5に記載のオブジェクト制御プログラム。
【請求項7】
前記保持期間は、前記検出期間よりも長い、請求項6に記載のオブジェクト制御プログラム。
【請求項8】
前記領域保持手段は、前記所定のオブジェクトが前記仮想空間内を移動した場合に、当該移動に応じて前記所定の領域を移動させ、
前記領域判定手段は、前記位置検出手段によって検出された位置が、前記領域保持手段によって移動した領域又は保持された領域の何れかに存在するか否かを判定する、請求項1ないし7の何れかに記載のオブジェクト制御プログラム。
【請求項9】
前記領域設定手段は、前記操作オブジェクトと前記所定のオブジェクトとの位置関係が所定の条件を満たす場合、前記所定の領域を設定しない、請求項1に記載のオブジェクト制御プログラム。
【請求項10】
前記領域設定手段は、前記操作オブジェクト及び/又は前記所定のオブジェクトの移動によって、前記操作オブジェクトと前記所定のオブジェクトとの位置関係が所定の条件を満たすこととなった場合、前記所定の領域を消滅させる、請求項1に記載のオブジェクト制御プログラム。
【請求項11】
前記領域設定手段は、前記操作オブジェクト及び前記所定のオブジェクトとは異なる第3のオブジェクトが、前記操作オブジェクトと前記所定のオブジェクトとの間に存在するようになった場合、前記所定の領域を消滅させる、請求項10に記載のオブジェクト制御プログラム。
【請求項12】
前記領域設定手段は、前記所定のオブジェクトの種類に応じて、前記保持期間を設定する、請求項1ないし11の何れかに記載のオブジェクト制御プログラム。
【請求項13】
前記所定のオブジェクトを自動的に移動させる移動制御手段、として前記コンピュータをさらに機能させる、請求項1ないし12の何れかに記載のオブジェクト制御プログラム。
【請求項14】
前記第1の動作は、前記操作オブジェクトに行わせる非攻撃の動作であり、
前記第2の動作は、前記操作オブジェクトに行わせる前記所定のオブジェクトに対する攻撃動作である、請求項3ないし7の何れかに記載のオブジェクト制御プログラム。
【請求項15】
前記領域設定手段は、前記所定のオブジェクトの種類に応じて、前記所定の領域の形状、数、又は、大きさを設定する、請求項1ないし14の何れかに記載のオブジェクト制御プログラム。
【請求項16】
表示装置の画面上における位置を指定することが可能な入力デバイスへのユーザによる入力に応じて操作される仮想空間内の操作オブジェクトを制御するオブジェクト制御装置であって、
前記入力デバイスからの出力信号に基づいて、ユーザによって指示された前記画面上の位置を検出する位置検出手段と、
前記操作オブジェクトとは異なる前記仮想空間内の所定のオブジェクトの位置に、所定の領域を設定する領域設定手段と、
前記領域設定手段によって設定された所定の領域を所定の保持期間が経過するまで保持する領域保持手段と、
前記入力デバイスからの出力信号に基づいて、前記画面上への第1の操作を検出し、当該第1の操作に応じて前記操作オブジェクトに第1の動作を行わせる動作制御手段と、
前記位置検出手段によって検出された位置が前記領域保持手段によって保持されている所定の領域内に存在するか否かを判定する領域判定手段と、を備え、
前記領域保持手段は、前記所定のオブジェクトが前記仮想空間内を移動した場合でも当該所定のオブジェクトが移動する前の位置に前記所定の領域を保持し、
前記動作制御手段は、前記領域判定手段による判定結果が肯定である場合、前記第1の操作が行われている場合でも前記操作オブジェクトの前記第1の動作を禁止する、オブジェクト制御装置。
【請求項17】
表示装置の画面上における位置を指示することが可能な入力デバイスへのユーザによる入力に応じて操作される仮想空間内の操作オブジェクトを制御するオブジェクト制御装置のコンピュータにおいて実行されるオブジェクト制御プログラムであって、前記コンピュータを、
前記入力デバイスからの出力信号に基づいて、ユーザによって指示された前記画面上の位置を検出する位置検出手段、
前記操作オブジェクトとは異なる前記仮想空間内の所定のオブジェクトの位置に、所定の領域を設定する領域設定手段、
前記領域設定手段によって設定された所定の領域を所定の保持期間が経過するまで保持する領域保持手段、
前記位置検出手段によって検出された位置が前記領域保持手段によって保持されている所定の領域内に存在するか否かを判定する領域判定手段、及び、
前記領域判定手段による判定結果が肯定である場合、前記入力デバイスへの所定の操作に応じて前記操作オブジェクトに第1の動作を行わせる動作制御手段、として機能させ、
前記領域保持手段は、前記所定のオブジェクトが前記仮想空間内を移動した場合でも当該所定のオブジェクトが移動する前の位置に前記所定の領域を保持する、オブジェクト制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
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


【公開番号】特開2011−96080(P2011−96080A)
【公開日】平成23年5月12日(2011.5.12)
【国際特許分類】
【出願番号】特願2009−250672(P2009−250672)
【出願日】平成21年10月30日(2009.10.30)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】