ゲームプログラムおよびゲーム装置
【構成】 ゲーム装置10はLCD14を含み、LCD14には3次元ゲーム空間に存在するプレイヤオブジェクトおよび敵オブジェクトの平面的な位置関係を表示する表示部を含むゲーム画面が表示される。たとえば、プレイヤオブジェクトおよび敵オブジェクトとは飛行オブジェクトである。プレイヤが、Xボタン22fを押す度に、プレイヤオブジェクトが標的とする敵オブジェクトの選択状態が、敵オブジェクトの優先順位に従って順番に切り替えられる。また、プレイヤがXボタン22fを一定時間以上継続して押し続けると、敵オブジェクトの優先順位に拘わらず、最も優先順位の高い敵オブジェクトに選択状態が切り替えられる。
【効果】 切替の操作性を向上することができる。
【効果】 切替の操作性を向上することができる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はゲームプログラムおよびゲーム装置に関し、特にたとえば、シューティングゲームをプレイするための、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
従来、シューティングゲーム等において、ゲーム空間内を移動する複数の標的の中から攻撃目標とする標的をプレイヤの操作に応じて順次切り替えて選択するものが知られている。
【0003】
たとえば、特許文献1に開示された技術では、プレイヤオブジェクトの視界内に存在する複数のノンプレイヤオブジェクト(標的)を、当該プレイヤオブジェクトとの距離が短いものから順に高い優先順位を設定し、コントローラのZボタンの1回目の操作で優先順位が1位のノンプレイヤオブジェクトを注目ノンプレイヤオブジェクトとして選択し、2回目の操作で優先順位が次の(2位の)ノンプレイヤオブジェクトを注目ノンプレイヤオブジェクトとして選択する。
【0004】
また、非特許文献1には、コントローラの△ボタンを押すことによって目標の切り替えを行うことが開示されている。
【特許文献1】特開平11−128533
【非特許文献1】PS2用ゲームソフト「エースコンバット・ゼロ・ ザ・ベルカン・ウォー」のソフトウェアマニュアル P.8−9
【発明の開示】
【発明が解決しようとする課題】
【0005】
このような背景技術のゲームでは、プレイヤが標的を順次切り替えて選択するようにしてあるため、所望の標的を選択している途中で、最初に選択した標的や既に選択し終わった標的を再度選択したいという要求が出てくる場合がある。このような場合には、すべての標的を選択し終わった後に、最初から標的を選択し直すことになる。または、プレイヤが何ら操作しないで一定時間放置すると、優先順位のリストを再取得した後に、優先順位が1位の(最初の)標的が選択される。このように、プレイヤは、すべての標的を順次選択したり、一定時間放置したりして、所望の標的を選択し直す必要があるため、ゲームの操作性が悪いと言える。
【0006】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【0007】
また、この発明の他の目的は、標的を選択するための操作性を向上できる、ゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0008】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0009】
第1の発明は、標的となる複数のノンプレイヤオブジェクトが配置された仮想ゲーム空間を画面に表示するゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータに、選択ステップ、ノンプレイヤオブジェクト選択順位設定ステップおよび入力状態継続時間検出ステップを実行させる。選択ステップは、操作手段から所定の入力がある毎に、複数のノンプレイヤオブジェクトから1つのノンプレイヤオブジェクトを順次切り替えて選択する。ノンプレイヤオブジェクト選択順位設定ステップは、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を設定する。そして、入力状態継続時間検出ステップは、所定の入力がある状態が継続する継続時間を検出する。上記の選択ステップは、継続時間が所定値未満のとき、ノンプレイヤオブジェクト選択順位設定ステップによって設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する第1選択ステップと、継続時間が所定値以上のとき、順位の最も高いノンプレイヤオブジェクトに切り替えて選択する第2選択ステップとを含む。
【0010】
第1の発明では、ゲーム装置(10)は、標的となる複数のノンプレイヤオブジェクト(202)が配置された仮想ゲーム空間を画面(100,200)に表示する。ゲームプログラムは、このゲーム装置のコンピュータに、選択ステップ(34,S117,S127,S129,S201,S203)、ノンプレイヤオブジェクト選択順位設定ステップ(34,S115,S133)および入力状態継続時間検出ステップ(34,S87,S93,S95)を実行させる。選択ステップは、操作手段(22)から所定の入力がある毎に、複数のノンプレイヤオブジェクトから1つのノンプレイヤオブジェクトを順次切り替えて選択する。ノンプレイヤオブジェクト選択順位設定ステップは、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を設定する。入力状態継続時間検出ステップは、所定の入力がある状態が継続する継続時間を検出する。たとえば、或るボタンが押し続けられる時間を検出する。選択ステップは、第1選択ステップおよび第2選択ステップを含む。第1選択ステップは、継続時間が所定値未満のとき、ノンプレイヤオブジェクト選択順位設定ステップによって設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する。第2選択ステップは、継続時間が所定値以上のとき、順位の最も高いノンプレイヤオブジェクトに切り替えて選択する。つまり、第2選択ステップは、順位に従わないで、順位の最も高いのプレイヤオブジェクトを選択する。
【0011】
第1の発明によれば、所定の入力の継続時間に応じて、ノンプレイヤオブジェクトを順位に従って順次切り替えたり、順位に従わないで順位の最も高いノンプレイヤオブジェクトに切り替えたりするので、標的の切替の操作性を向上させることができる。したがって、たとえば、ノンプレイヤオブジェクトを順位選択している途中であっても、所定の入力を所定値以上継続することにより、順位の最も高いノンプレイヤオブジェクトを選択できるので、所望のオブジェクトを容易に選択し直すことができる。
【0012】
第2の発明は第1の発明に従属し、ノンプレイヤオブジェクト選択順位設定ステップは、継続時間が所定値以上のとき、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を再設定し、第2選択ステップは、再設定された順位の最も高いノンプレイヤオブジェクトに切り替えて選択する。
【0013】
第2の発明では、ノンプレイヤオブジェクト選択順位設定ステップは、継続時間が所定値以上のとき、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を再設定する。たとえば、プレイヤが所定のボタンを一定時間以上押し続けた場合には、選択ステップによって選択される順位が更新される。したがって、第2選択ステップは、再設定された(更新された)順位の最も高いノンプレイヤオブジェクトに切り替えて選択する。
【0014】
第2の発明によれば、所定の入力が所定値以上継続するときには、選択順位を再設定するので、最新情報に基づいた標的を再選択することができる。
【0015】
第3の発明は第1または第2の発明に従属し、選択ステップによって切替選択が行われてからの経過時間を検出する経過時間検出ステップをコンピュータにさらに実行させ、ノンプレイヤオブジェクト選択順位設定ステップは、経過時間が所定値以上のとき、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を再設定し、第1選択ステップは、所定の入力がある毎に、ノンプレイヤオブジェクト選択順位設定ステップによって再設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する。
【0016】
第3の発明では、経過時間検出ステップ(34,S7,S125)は、選択ステップによって切替選択が行われてからの経過時間を検出する。ノンプレイヤオブジェクト選択順位設定ステップは、経過時間が所定値以上のとき、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を再設定する。第1選択ステップは、所定の入力がある毎に、ノンプレイヤオブジェクト選択順位設定ステップによって再設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する。
【0017】
第3の発明によれば、所定時間が経過する毎に更新される最新の情報に基づいてノンプレイヤオブジェクトの切替選択を実行することができる。
【0018】
第4の発明は第1ないし第3の発明に従属し、仮想ゲーム空間におけるプレイヤオブジェクトの位置情報および進行方向を取得するプレイヤオブジェクト情報取得ステップ、位置情報および進行方向と、位置情報を基点とした左右の角度および距離とに基づいて、仮想ゲーム空間を複数の領域に分割する領域分割ステップ、および領域分割ステップによって分割された領域の各々について、選択順位を設定する領域選択順位設定ステップをコンピュータにさらに実行させ、ノンプレイヤオブジェクト選択順位設定ステップは、領域選択順位設定ステップによって設定された順位の高い領域に存在するノンプレイヤオブジェクトから順次高い順位を設定する。
【0019】
第4の発明では、プレイヤオブジェクト情報取得ステップ(34,S31)は、仮想ゲーム空間におけるプレイヤオブジェクト(102)の位置情報および進行方向を取得する。領域分割ステップ(34,S33)は、プレイヤオブジェクトの位置情報および進行方向と、位置情報を基点とした左右の角度および距離とに基づいて、仮想ゲーム空間を複数の領域に分割する。たとえば、プレイヤオブジェクトとの距離およびプレイヤオブジェクトの進行方向からのずれに応じて、仮想ゲーム空間が複数の領域に分割される。領域選択順位設定ステップは、領域分割ステップによって分割された領域の各々について、選択順位を設定する。したがって、たとえば、ノンプレイヤオブジェクト選択順位設定ステップは、領域選択順位設定ステップによって設定された順位の高い領域に存在するノンプレイヤオブジェクトから順次高い順位を設定する。
【0020】
第4の発明によれば、仮想ゲーム空間をプレイヤオブジェクトとの位置関係に基づいて分割した領域に従ってノンプレイヤオブジェクトの順位を設定するので、プレイヤオブジェクトとの位置関係に基づいた簡単な処理でノンプレイヤオブジェクトの順位を設定することができる。
【0021】
第5の発明は第4の発明に従属し、時間T(T>0)後にプレイヤオブジェクトが到達する位置座標および進行方向を予測する予測ステップをコンピュータにさらに実行させ、領域分割ステップは、予測ステップによって予測された位置情報および進行方向と、位置情報を基点とした左右の角度および距離とに基づいて、仮想ゲーム空間を複数の領域に分割する。
【0022】
第5の発明では、予測ステップは、時間T(T>0)後にプレイヤオブジェクトが到達する位置座標および進行方向を予測する。たとえば、現在のプレイヤオブジェクトの移動速度を知ることができれば、この移動速度と進行方向とから時間T後の位置および移動方向を物理計算により簡単に算出される。領域分割ステップは、予測ステップによって予測された位置情報および進行方向と、位置情報を基点とした左右の角度および距離とに基づいて、仮想ゲーム空間を複数の領域に分割する。つまり、
第5の発明によれば、プレイヤオブジェクトの予測した位置および予測した移動方向に基づいてノンプレイヤオブジェクトの順位を設定することができる。
【0023】
第6の発明は、標的となる複数のノンプレイヤオブジェクトが配置された仮想ゲーム空間を画面に表示するゲーム装置であって、選択手段、ノンプレイヤオブジェクト選択順位設定手段、および入力状態継続時間検出手段を備える。選択手段は、操作手段から所定の入力がある毎に、複数のノンプレイヤオブジェクトから1つのノンプレイヤオブジェクトを順次切り替えて選択する。ノンプレイヤオブジェクト選択順位設定手段は、複数のノンプレイヤオブジェクトの各々について、選択手段によって選択される順序を設定する。入力状態継続時間検出手段は、所定の入力がある状態が継続する継続時間を検出する。そして、選択手段は、継続時間が所定値未満のとき、ノンプレイヤオブジェクト選択順位設定手段によって設定された順位に従ってノンプレイヤを順次切り替えて選択する第1選択手段と、継続時間が所定値以上のとき、順位の最も高いノンプレイヤオブジェクトに切り替えて選択する第2選択手段とを含む。
【0024】
第6の発明においても、第1の発明と同様に、標的の切替選択の操作性を向上させることができる。
【発明の効果】
【0025】
この発明によれば、所定の入力の継続時間に応じて、順次標的を切り替えたり、順位に従わずに最も順位の高い標的に切り替えたりするので、標的の切替の操作性を向上させることができる。
【0026】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0027】
図1を参照して、この発明の実施例であるゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。LCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0028】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0029】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。下側ハウジング16bのLCD14の左方には電源スイッチ18が設けられる。
【0030】
また、上側ハウジング16aには、LCD12を挟んで左右に、スピーカ36aおよび36b(図2)のための音抜き孔20aおよび20bが形成される。そして、下側ハウジング16bには、マイク(図示せず)のためのマイク孔20cが形成されるとともに、操作スイッチ22(22a,22b,22c,22d,22e,22Lおよび22R)が設けられる。
【0031】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0032】
操作スイッチ22は、方向指示スイッチ(十字スイッチ)22a,スタートスイッチ22b、セレクトスイッチ22c、動作スイッチ(Aボタン)22d、動作スイッチ(Bボタン)22e、動作スイッチ(Xボタン)22f、動作スイッチ(Yボタン)22g、動作スイッチ(Lボタン)22Lおよび動作スイッチ(Rボタン)22Rを含む。スイッチ22aは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。その他のスイッチ22b−22gは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、スイッチ22Lおよびスイッチ22Rは、それぞれ、上側ハウジング16aとの連結部を挟む下側ハウジング16bの上側面の左右角部に配置される。
【0033】
方向指示スイッチ22aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、ユーザないしプレイヤによって操作可能なプレイヤオブジェクト(またはプレイヤキャラクタ)の進行方向(移動方向)を指示したり、カーソルの進行方向を指示したりする等に用いられる。また、各押圧部には、特定の役割を割り当てることができ、4つの押圧部の1つを操作することによって、割り当てられた役割を指示(指定)することができる。
【0034】
スタートスイッチ22bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。また、セレクトスイッチ22cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0035】
動作スイッチ22dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤオブジェクトに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ22eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ22cで選択したゲームモードの変更やAボタン22dで決定したアクションの取り消し等のために用いられる。
【0036】
動作スイッチ22fすなわちXボタン、および動作スイッチ22gすなわちYボタンは、プッシュボタンで構成され、Aボタン22dとBボタン22eだけでは、ゲーム進行ができないときに、補助的な操作に用いられる。ただし、Xボタン22fおよびYボタン22gは、Aボタン22dおよびBボタン22eと同様の操作に用いることも可能である。もちろん、ゲームプレイにおいてXボタン22fとYボタン22gとを必ずしも使用しなくてよい。
【0037】
動作スイッチ22L(左押しボタン)および動作スイッチ22R(右押しボタン)は、プッシュボタンで構成され、左押しボタン(Lボタン)22Lおよび右押しボタン(Rボタン)22Rは、Aボタン22dおよびBボタン22eと同様の操作に用いることができ、また、Aボタン22dおよびBボタン22eの補助的な操作に用いることができる。さらに、Lボタン22LおよびRボタン22Rは、方向スイッチ22a、Aボタン22d,Bボタン22e,Xボタン22f,Yボタン22gに割り当てられた役割を、他の役割に変更することができる。
【0038】
また、LCD14の上面には、タッチパネル24が装着される。タッチパネル24としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル24は、その上面をスティック26ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック26等」という場合がある。)で、押圧したり、撫でたり、触れたりすることにより操作(タッチ入力)すると、スティック26等の操作位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
【0039】
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル24の検出精度も表示画面に対応して256dot×192dotとしてあるが、タッチパネル24の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【0040】
LCD12およびLCD14には異なるゲーム画面が表示されてもよい。たとえば、レースゲームでは一方のLCDに運転席からの視点による画面を表示し、他方のLCDにレース(コース)全体の画面を表示することができる。また、RPGでは、一方のLCDにマップやプレイヤオブジェクト等のキャラクタを表示し、他方のLCDにプレイヤオブジェクトが所有するアイテムを表示することができる。さらに、一方のLCD(この実施例では、LCD12)にプレイヤオブジェクトやノンプレイヤオブジェクトなどを含むゲーム画面を表示し、他方のLCD(この実施例では、LCD14)に当該プレイヤオブジェクトやノンプレイヤオブジェクトに関する情報を含む他のゲーム画面または当該プレイヤオブジェクトを操作するための操作画面を表示することができる。さらには、2つのLCD12およびLCD14を合わせて1つの画面として用いることにより、プレイヤオブジェクトが倒さなければならない巨大な怪物(敵オブジェクト)を表示することもできる。
【0041】
したがって、プレイヤはスティック26等でタッチパネル24を操作することにより、LCD14の画面に表示されるプレイヤオブジェクト、敵オブジェクト、アイテムオブジェクト、操作オブジェクトなどの画像を指示(操作)したり、コマンドを選択(入力)したりすることができる。また、仮想ゲーム空間(3次元ゲーム空間)に設けられる仮想カメラ(視点)の方向(視線の向き)を変化させたり、ゲーム画面(マップ)のスクロール(徐々に移動表示)方向を指示したりすることもできる。
【0042】
なお、ゲームの種類によっては、タッチパネル24を用いることにより、その他の入力指示も可能である。たとえば、座標入力指示を入力したり、LCD14において文字,数字,記号等を手書き入力したりすることができる。
【0043】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル24が設けられるので、2画面(12,14)と2系統の操作部(22,24)とを有する構成になっている。
【0044】
また、この実施例では、スティック26は、たとえば下側ハウジング16bに設けられる収納部(図1では点線で示す)に収納することができ、必要に応じて取り出される。ただし、スティック26を設けない場合には、その収納部も設ける必要はない。
【0045】
さらに、ゲーム装置10はメモリカード(またはカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは下端(底面)に設けられる挿入部30(図1では点線で示す)に挿入される。図1では省略するが、挿入部30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ32(図2参照)が設けられており、したがって、メモリカード28が挿入部30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア34(図2参照)がメモリカード28にアクセス可能となる。
【0046】
なお、図1では表現できないが、上側ハウジング16aの音抜き孔20aおよび20bと対応する位置であり、この上側ハウジング16aの内部にはスピーカ36aおよび36b(図2参照)が設けられる。
【0047】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【0048】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板38を含み、この電子回路基板38には上述のCPUコア34等の回路コンポーネントが実装される。CPUコア34は、バス40を介して前述のコネクタ32に接続されるととともに、RAM42、第1のグラフィック処理ユニット(GPU)44、第2のGPU46、入出カインターフエース回路(以下、「I/F回路」という。)48およびLCDコントローラ50が接続される。
【0049】
コネクタ32には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ32と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア34は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0050】
ROM28aは、ゲーム装置10で実行すべきゲームのためのゲームプログラム、画像データ(文字やオブジェクトの画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)およびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データなどを記憶(セーブ)する。
【0051】
RAM42は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア34は、メモリカード28のROM28aに記憶されたプログラム、画像データおよび音データ等をRAM42にロードし、ロードしたプログラムを実行する。また、CPUコア34は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM42に記憶しつつゲーム処理を実行する。
【0052】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM42に記憶(ロード)される。
【0053】
ただし、メモリカード28のROM28aには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データが記憶される。また、必要に応じて、音(音楽)データが記憶されてもよい。かかる場合には、ゲーム装置10では、当該アプリケーションが実行される。
【0054】
GPU44およびGPU46は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア34からのグラフィックスコマンド(作画命令)を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、CPUコア34は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU44およびGPU46のそれぞれに与える。
【0055】
また、GPU44には、第1のビデオRAM(以下、「VRAM」という。)52が接続され、GPU46には、第2のVRAM54が接続される。GPU44およびGPU46が作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンやテクスチャ等のデータ)は、GPU44およびGPU46が、それぞれ、第1のVRAM52および第2のVRAM54にアクセスして取得する。
【0056】
なお、CPUコア34は、描画に必要な画像データをGPU44およびGPU46を介して第1のVRAM52および第2のVRAM54に書き込む。GPU44はVRAM52にアクセスして描画のための画像データを作成し、GPU46はVRAM54にアクセスして描画のための画像データを作成する。
【0057】
VRAM52およびVRAM54は、LCDコントローラ50に接続される。LCDコントローラ50はレジスタ56を含み、レジスタ56はたとえば1ビットで構成され、CPUコア34の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ50は、レジスタ56のデータ値が「0」である場合には、GPU44によって作成された画像データをLCD12に出力し、GPU46によって作成された画像データをLCD14に出力する。また、LCDコントローラ50は、レジスタ56のデータ値が「1」である場合には、GPU44によって作成された画像データをLCD14に出力し、GPU46によって作成された画像データをLCD12に出力する。
【0058】
なお、LCDコントローラ50は、VRAM52およびVRAM54から直接画像データを読み出したり、GPU44およびGPU46を介してVRAM52およびVRAM54から画像データを読み出したりする。
【0059】
I/F回路48には、操作スイッチ22,タッチパネル24およびスピーカ36a,36bが接続される。ここで、操作スイッチ22は、上述したスイッチ22a,22b,22c,22d,22e,22g,22Lおよび22Rであり、操作スイッチ22が操作されると、対応する操作信号(操作データ)がI/F回路48を介してCPUコア34に入力される。また、タッチパネル24からの座標データがI/F回路48を介してCPUコア34に入力される。さらに、CPUコア34は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM42から読み出し、I/F回路48を介してスピーカ36a,36bから出力する。
【0060】
図3は、図1および図2に示すゲーム装置10を用いて、この実施例の仮想ゲーム(コンバットフライトシミュレーションゲーム)をプレイする場合に、LCD12に表示されるゲーム画面100の一例およびLCD14に表示されるゲーム画面200の一例を示す。ゲーム画面100は、プレイヤオブジェクト102を含み、このプレイヤオブジェクト102は、戦闘機の機体を模した飛行オブジェクトである。簡単のため、図示は省略するが、この実施例の敵オブジェクトは、主として、戦闘機のような飛行オブジェクトであるが、戦車、装甲車、戦艦または潜水艦のような地上ないし水上(水中)に存在する他のオブジェクト(以下、簡単のため、これらを「地上オブジェクト」と呼ぶことにする。)も含まれる。
【0061】
また、ゲーム画面100には、プレイヤオブジェクト102の機体速度および機体高度が可視表示される。この実施例では、ゲーム画面100の左下部に機体速度の表示部104が設けられ、ゲーム画面100の右下部に機体高度の表示部106が設けられる。さらに、ゲーム画面100の中央上部には、機体の進行方向を示す方位(N,E,W,S)のキャラクタ108(図3では“N”)が表示される。なお、図示は省略するが、ゲーム画面100には、敵オブジェクトや地形オブジェクト等も表示される。
【0062】
また、ゲーム画面200は、3次元(仮想)ゲーム空間の全部ないしその一部を上方から俯瞰的に見た場合に(図4参照)、プレイヤオブジェクト102と敵オブジェクト202との平面的な(XZ平面における)位置関係を知らせるための表示部(レーダ表示部)210を含む。たとえば、レーダ表示部210では、プレイヤオブジェクト102は中心の三角形状の図形(黒色で塗りつぶしてある。)で示され、敵オブジェクト202はそれ以外の三角形状や四角形状の図形(線で模様を付してある。)で示される。また、プレイヤオブジェクト102が目標(標的)とする敵オブジェクト202(以下、「ターゲットオブジェクト」と呼ぶことがある。)を指示するカーソル204が表示される。
【0063】
詳細な説明は省略するが、ゲーム画面200には、レーダ表示部210の周りに、プレイヤオブジェクト102に関する情報(ライフ(HP)、プレイヤオブジェクト102が保有する弾の種類および数など)や敵オブジェクト202の数(倒した数(HIT),残りの数(LEFT))などの他の情報も表示される。
【0064】
ここで、図4に示すように、この実施例の3次元ゲーム空間では、水平面の横方向がX軸方向であり、水平面の奥行き方向がZ軸方向であり、水平面に対して垂直な方向(高さ方向)がY軸方向である。詳細な説明は省略するが、Y軸には海抜(標高)0m〜7000mのスケールを定義する目盛が付されている。したがって、Y軸方向におけるプレイヤオブジェクト102の位置に対応する標高が、上述したゲーム画面100の表示部106に表示されるのである。
【0065】
また、プレイヤの操作(たとえば、十字スイッチ22aの操作)によって、プレイヤオブジェクト102のヨー角とピッチ角とを制御することにより、プレイヤオブジェクト102の進行方向を変化させることができる。図5に示すように、この実施例では、プレイヤオブジェクト102が3次元ゲーム空間のZ軸方向に移動していると仮定した場合に、ヨー角は3次元ゲーム空間(ワールド座標)のY軸周りの角度であり、ピッチ角は3次元ゲーム空間のX軸周りの角度である。図面では表現できないが、プレイヤの操作(たとえば、Aボタン22dやBボタン22eのオン/オフ)によって、機体速度を制御することもできる。したがって、3次元ゲーム空間において、プレイヤオブジェクト102を自在に移動(飛行)させることができるのである。
【0066】
このような仮想ゲームにおいては、プレイヤは、所望のターゲットオブジェクトを選択し、プレイヤオブジェクト102の移動を制御して、選択したターゲットオブジェクトに追従させる。そして、プレイヤは、プレイヤオブジェクト102がターゲットオブジェクトを攻撃可能な状態(ロックオン状態)で、タイミングを計ってミサイルを発射させる。ただし、ロックオン状態とは、プレイヤオブジェクト102が敵オブジェクト202(ターゲットオブジェクト)に照準を合わせて追尾可能な状態を意味する。
【0067】
プレイヤオブジェクト102から発射されたミサイルがターゲットオブジェトに命中すると、当該ターゲットオブジェクトは爆発し、3次元ゲーム空間から消滅する。一方、プレイヤオブジェクト102から発射されたミサイルがターゲットオブジェクトに命中しなければ、そのままターゲットオブジェクトは逃げ去ったり、プレイヤオブジェクト102に攻撃したりする。
【0068】
通常、このような仮想ゲームでは、Xボタン22fがオン(操作)される毎に、ターゲットオブジェクトが優先順位に従って順番に切り替えられる。つまり、ターゲットオブジェクトとして選択された状態(選択状態)が優先順位に従って切り替えられる。図示は省略するが、このとき、図3に示したゲーム画面200において、カーソル204が優先順位に従って選択されたターゲットオブジェクト(敵オブジェクト202)を指示するように表示を更新される。
【0069】
ここで、優先順位は、ターゲットオブジェクトの選択状態を切り替える順番を意味する。この実施例では、Xボタン22fがオンされる毎に、優先順位が1位から順に4位まで切り替えられ、優先順位が4位のターゲットオブジェクトを選択している状態で、Xボタン22fがオンされると、優先順位が1位のターゲットオブジェクトが選択される。つまり、最初(1位)のターゲットオブジェクトに選択状態が戻る。
【0070】
また、この実施例では、優先順位は、プレイヤオブジェクト102の位置を中心に決定される領域(後述する「判定領域」)の順位に応じて決定される。ただし、同じ順位の領域に存在する敵オブジェクト202については、プレイヤオブジェクト102からの距離(または角度)が近い方の敵オブジェクト202の優先順位が高く決定される。ここで、プレイヤオブジェクト102と敵オブジェクト202との距離は数1に従って算出される。ただし、プレイヤオブジェクト102の現在位置の座標を(X1,Y1,Z1)とし、敵オブジェクト202の現在位置の座標を(X2,Y2,Z2)としてある。
【0071】
[数1]
距離=√{(X1−X2)2+(Y1−Y2)2+(Z1−Z2)2}
さらに、同じ順位の領域内に存在する複数の敵オブジェクト202のそれぞれとプレイヤオブジェクト102との距離が同じ場合には、プレイヤオブジェクト102の進行方向からのずれ(水平方向の(XZ平面における)角度θおよび垂直方向の(YZ平面における)角度α)が小さい方の敵オブジェクト202の優先順位が高くなる。
【0072】
なお、簡単のため、プレイヤオブジェクト102の進行方向のベクトル(移動ベクトル)と、プレイヤオブジェクト102の位置を始点とし敵オブジェクト202の位置を終点とするベクトルとの角度の大きさ(絶対値)を、プレイヤオブジェクト102の進行方向からのずれとして算出するようにしてもよい。
【0073】
具体的には、図6およびこの図6の一部拡大図である図7(A)に示すように、判定領域は、プレイヤオブジェクト102を中心とする水平面上の4つの同心円と、プレイヤオブジェクト102の視界の範囲を示す直線およびその視界の範囲を所定の角度で区切った直線と、3次元ゲーム空間の水平方向の範囲(水平面)を一定の大きさで仕切る四角形の枠とを用いて設定される。この実施例では、4つの同心円の半径は、それぞれ、3次元ゲーム空間におけるスケールで、3000m,6000m,12000mおよび20000mである。また、プレイヤオブジェクト102の視界の範囲はその進行方向を0°とした場合に、左右30°ずつである。そして、この視界の範囲をプレイヤオブジェクト102の進行方向を0°とした場合に、左右16°ずつで区切って、プレイヤオブジェクト102の進行方向からのずれの大きさに優劣を付けるようにしてある。図示は省略するが、たとえば、3次元ゲーム空間の水平面を仕切る四角形は、15000m×14000mの大きさである。
【0074】
図6および図7(A)からも分かるように、この実施例では、判定領域は16個の領域(閉領域)に分割され、各領域には番号が付されている。この番号は、各領域を識別する識別情報であるとともに、その数値の大きさが領域の順位(優先度)を示してある。この領域の順位に従って敵オブジェクト202の優先順位が決定される。ただし、図6および図7(A)の上方がプレイヤオブジェクト102の進行方向である。
【0075】
この実施例では、判定領域が決定されると、各領域の番号は固定的に決定される。各領域の番号の決定方法は、次の3つの条件に従っている。1つ目の条件としては、プレイヤオブジェクト102の前方(進行方向)の領域は後方の領域も順位が高い。2つ目の条件としては、プレイヤオブジェクト102との距離が近い領域はより順位が高い。3つ目の条件としては、プレイヤオブジェクト102の進行方向に対する水平方向の角度が小さい領域はより順位が高い。
【0076】
なお、この実施例では、プレイヤオブジェクト102が敵オブジェクト202を追尾したり、攻撃したりする難易度を重視して、判別領域を設定したり、上記のような条件に従って各領域の番号を決定するようにしてある。ただし、判定領域の設定方法や領域の番号の決定の仕方はこの実施例の方法に限定される必要はなく、ゲームプログラマや開発者が任意に設定することができる。
【0077】
また、この実施例では、判定領域の各領域の番号(順位)を固定的に決定するようにしてあるが、ゲームの種類や難易度、或いは3次元ゲーム空間に出現する敵オブジェクト202の種類によっては、任意に決定するようにしてもよい。
【0078】
図7(B)は、3次元ゲーム空間を横方向(X軸方向)から見た図であり、プレイヤオブジェクト102の上下方向における視界の範囲を示す。この実施例では、進行方向を0°とした場合に、上下30°の範囲がプレイヤオブジェクト102の視界の範囲である。この図7(B)から分かるように、地上オブジェクトの水平方向の位置がプレイヤオブジェクト102に近い場合には、地上オブジェクトはプレイヤオブジェクト102からの死角になってしまう。このため、優先順位を決定する場合には、地上オブジェクトについては、上下方向の角度は考慮しないようにしてある。
【0079】
なお、この実施例では、簡単のため、上下方向については、角度のみを検出するようにしてあるが、水平方向と同様に、上下方向についても複数の領域に分割して、領域毎の順位に従って優先順位を決定するようにしてもよい。
【0080】
従来では、たとえば、ターゲットオブジェクトの選択中に、もう一度最初に選択したターゲットオブジェクト(敵オブジェクト202)や既に選択し終わった敵オブジェクト202を選択し直したい場合には、Xボタン22fを繰返し操作する必要があった。これでは、操作が大変面倒であり、特に敵オブジェクト202の数が多い場合には、操作性が悪く、ゲーム自体への興味の減退を招来しかねない。
【0081】
そこで、この実施例では、簡単な操作で、優先順位が最も高い敵オブジェクト202を選択するようにして、操作性を向上させるようにしてある。
【0082】
具体的には、一定時間(この実施例では、60フレーム)以上Xボタン22fを押し続けた場合には、現在のターゲットオブジェクトの優先順位に拘わらず、優先順位が最も高い敵オブジェクト202をターゲットオブジェクトとして選択するようにしてある。したがって、最初に選択した敵オブジェクト202や既に選択し終わった敵オブジェクト202を選択し直す場合に、簡単な操作で選択することができるのである。
【0083】
図8は図2に示したRAM42のメモリマップを示す図解図である。この図8を参照して、RAM42は、プログラム記憶領域70およびデータ記憶領域72を含む。プログラム記憶領域70はゲームプログラムを記憶し、ゲームプログラムは、ゲームメイン処理プログラム70a、画像生成プログラム70b、画像表示プログラム70c、優先順位設定プログラム70d、変更操作判別プログラム70eおよびターゲット切替プログラム70fなどによって構成される。
【0084】
ゲームメイン処理プログラム70aは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム70bは、後述する画像データ72bを用いてゲーム画像(ゲーム画面)を生成するためのプログラムである。画像表示プログラム70cは、ゲーム画像生成プログラム70bに従って生成されたゲーム画像を表示装置(LCD12,LCD14)に表示(更新)するためのプログラムである。
【0085】
優先順位設定プログラム70dは、後述する最優先指示が入力された場合や所定時間が経過する毎に、敵オブジェクト202の優先順位を設定し、設定した結果(後述する優先順位データ)を当該敵オブジェクト202に対応づけてデータ記憶領域72に記憶するためのプログラムである。ただし、この実施例では、優先順位は1位から4位までしか必要ないため、5位以下の敵オブジェクト202に関しては優先順位データを記憶する必要はない。なお、他の実施例では、必要とする優先順位の数を変更してもよいし、すべての敵オブジェクト202について優先順位データを記憶するようにしてもよい。
【0086】
優先順位を設定する場合には、まず、図6に示したような判定領域がプレイヤオブジェクト102の現在位置および進行方向に応じて設定される。次に、敵オブジェクト202の現在位置に応じて各敵オブジェクト202がいずれの領域に存在するかが判別される。そして、各敵オブジェクト202が存在する領域の番号に従って、各敵オブジェクト202の優先順位が判定される。ただし、同じ番号(優先順位)の領域に存在する敵オブジェクト202が複数存在する場合には、プレイヤオブジェクト102との距離に応じて優先順位が決定される。さらに、距離も同じである場合には、プレイヤオブジェクト102の進行方向とのずれ(角度)に応じて優先順位が決定される。たとえば、この実施例では、プレイヤオブジェクト102の進行方向とのずれは、水平方向の角度θの大きさ(絶対値)と垂直方向の角度αの大きさとの和で算出される。角度の大きさは単純に加算してもよいし、いずれか一方の角度を重視するように重み付けをしてもよい。また、敵オブジェクト202の種類に応じて、いずれか一方の角度のみを考慮するようにしてもよい。
【0087】
変更操作判別プログラム70eは、プレイヤの操作(指示)が優先順位に従って順次ターゲットオブジェクトを切り替える指示(順次切替指示)であるか、優先順位に従わずに最も優先順位の高いターゲットオブジェクトに切り替える指示(最優先指示)であるかを判別するためのプログラムである。この実施例では、プレイヤがXボタン22fを押し続けている時間(継続時間)をカウントし、その継続時間が一定時間(60フレーム)を越えるか否かに応じて、順次切替指示であるか最優先指示であるかを判別する。この実施例では、プレイヤがXボタン22fを一定時間以上押し続けた場合には、最優先指示であることが判別され、一定時間未満である場合には、順次切替指示であることが判別される。
【0088】
ターゲット切替プログラム70fは、プレイヤの指示に従ってターゲットオブジェクトを切り替えるためのプログラムである。ただし、変更操作判別プログラム70eに従って順次切替指示が判別された場合には、ターゲット切替プログラム70fは、優先順位が次のターゲットオブジェクトに選択状態を切り替える。一方、変更操作判別プログラム70eに従って最優先指示が判別された場合には、ターゲット切替プログラム70fは、優先順位に従わずに最も優先順位の高いターゲットオブジェクトに選択状態を切り替える。ただし、ターゲットオブジェクトを切り替える前に、既に最も優先順位の高いターゲットオブジェクトが選択されている場合には、そのまま選択状態が維持される。
【0089】
なお、図示は省略するが、ゲームプログラムは、ゲーム音出力プログラムおよびバックアッププログラムも含む。ゲーム音出力プログラムは、音(音楽)データを用いて、ゲームに必要な音を出力するためのプログラムである。バックアッププログラムは、プレイヤの指示やゲームイベントに従って、RAM42に記憶されているゲームデータ(途中データ,結果データ)をメモリカード28(RAM28b)にセーブするためのプログラムである。
【0090】
図9は図8に示したデータ記憶領域72の具体的な内容を示す図解図である。データ記憶領域72には、操作データバッファ72aが設けられる。また、データ記憶領域72には、画像データ72b、プレイヤオブジェクトデータ72cおよび敵オブジェクトデータ72dが記憶される。さらに、データ記憶領域72には、変更間隔カウンタ72eおよび継続時間カウンタ72fが設けられるとともに、ボタンフラグ72g、順次切替フラグ72hおよび最優先フラグ72iが設けられる。
【0091】
操作データバッファ72aは、操作スイッチ22からの操作データを一時記憶するためのバッファであり、また、タッチパネル24からの座標データ(操作データ)も一時記憶する。画像データ72bは、プレイヤオブジェクト102、敵オブジェクト202、背景オブジェクトなどを含むゲーム画像を生成するためのデータ(ポリゴンやテクスチャなどのデータ)である。
【0092】
プレイヤオブジェクトデータ72cは、プレイヤオブジェクト102に関するデータである。このプレイヤオブジェクトデータ72cは、プレイヤオブジェクト102の動作パラメータ80および位置データ82を含む。動作パラメータ80は、プレイヤオブジェクト102の進行方向および移動速度に関するデータである。つまり、動作パラメータ80は、プレイヤオブジェクト102の移動に関するベクトルのデータである。位置データ82は、3次元ゲーム空間におけるプレイヤオブジェクト102の現在位置のデータであり、3次元の座標データで表わされる。プレイヤオブジェクトデータ72c(動作パラメータ80および位置データ82)は、プレイヤオブジェクト102を3次元ゲーム空間に配置(描画)するために用いられたり、判定領域を決定する際に用いられたりする。
【0093】
敵オブジェクトデータ72dは、敵オブジェクト102に関するデータであり、図9からも分かるように、敵オブジェクト102毎に記憶される。この実施例では、第1オブジェクトデータ90、第2オブジェクトデータ92,…,第nオブジェクトデータ9nが記憶される。第1オブジェクトデータ90は、動作パラメータ90a、位置データ90bおよび優先順位データ90cを含む。動作パラメータ90aは、敵オブジェクト202の移動に関するベクトル(進行方向および移動速度)のデータである。位置データ90bは、3次元ゲーム空間における敵オブジェクト202の現在位置のデータであり、3次元の座標データで表わされる。優先順位データ90cは、優先順位設定プログラム70dに従って判定された優先順位を示す番号のデータ(数値データ)である。したがって、優先順位が判定される毎に、優先順位データ90cは更新される。ただし、上述したように、この実施例では、優先順位は1位から4位までしか必要ないため、5位以下の敵オブジェクト202に対応する敵オブジェクトデータ(90,92,…,92n)については、優先順位データが記述されない。
【0094】
なお、図示および詳細な説明は省略するが、第2オブジェクトデータ92,…,第nオブジェクトデータ9nについても、第1オブジェクトデータ90と同様である。
【0095】
変更間隔カウンタ72eは、優先順位を変更(再設定)する時間間隔(変更間隔)をカウントするためのカウンタである。この実施例では、変更間隔は、変更操作指示を判別するための一定時間よりも短い一定時間(たとえば、40フレーム)に設定される。継続時間カウンタ72fは、プレイヤが所定のボタン(この実施例では、Xボタン22f)を操作(オン)している継続時間をカウントするためのカウンタである。
【0096】
ボタンフラグ72gは、上記所定のボタンすなわちXボタン22fがオンされているか否かを判別するためのフラグである。たとえば、ボタンフラグ72gは、1ビットのレジスタで構成される。ボタンフラグ72gが成立(オン)されると、レジスタにはデータ値「1」が設定され、ボタンフラグ72gが不成立(オフ)されると、レジスタにはデータ値「0」が設定される。この実施例では、Xボタン22fがオンされている場合に、ボタンフラグ72gはオンされ、Xボタン22fがオフされている場合に、ボタンフラグ72gはオフされる。
【0097】
順次切替フラグ72hは、優先順位に従ってターゲットオブジェクトを順次切り替えるか否かを判別するためのフラグである。この順次切替フラグ72hもまた、1ビットのレジスタで構成される。順次切替フラグ72hがオンされると、レジスタにはデータ値「1」が設定され、順次切替フラグ72hがオフされると、レジスタにはデータ値「0」が設定される。この実施例では、順次切替指示が判別された場合に、順次切替フラグ72hはオンされ、最優先指示が判別された場合に、順次切替フラグ72hはオフされる。
【0098】
最優先フラグ72iは、優先順位に従わずにターゲットオブジェクトを優先順位の最も高いターゲットオブジェクトに切り替えるか否かを判別するためのフラグである。この最優先フラグ72iもまた、1ビットのレジスタで構成される。最優先フラグ72iがオンされると、レジスタにはデータ値「1」が設定され、最優先フラグ72iがオフされると、レジスタにはデータ値「0」が設定される。この実施例では、最優先指示が判別された場合に、最優先フラグ72iはオンされ、順次切替支持が判別された場合に、最優先フラグ72iはオフされる。
【0099】
図示は省略するが、データ記憶領域72には、音(音楽)データのような他のデータが記憶されるとともに、ゲームの進行に必要な他のカウンタやフラグも設けられる。
【0100】
具体的には、図2に示したCPUコア34が図10に示す全体処理を実行する。図10に示すように、全体処理を開始すると、ステップS1で、初期設定を実行する。たとえば、ゲームを始めから開始する場合には、各種フラグ、レジスタおよびカウンタに初期値が設定される。また、データ記憶領域72のバッファ領域(操作データバッファ72aなど)がクリアされる。ただし、前回の続きからゲームを開始する場合には、メモリカード28にセーブしておいたゲームデータに従って各種フラグおよびレジスタの値が設定される。ただし、いずれの場合であっても、ステップS1では、変更間隔カウンタ72eおよび継続時間カウンタ72fのカウント値は「0」に設定される。
【0101】
続くステップS3では、後述する優先順位設定処理(図11−図12参照)を実行する。次のステップS5では、優先順位が1番の敵機(敵オブジェクト202)をターゲットオブジェクトとして設定する。このとき、LCD14に表示されるゲーム画面200では、ターゲットオブジェクトに設定された敵オブジェクト202に対応する図形がカーソルないし指示画像で指示される。
【0102】
続いて、ステップS7では、変更間隔カウンタ72eをインクリメントする。つまり、カウント値を1(フレーム)加算する。次のステップS9では、後述する変更操作判別処理(図13参照)を実行し、ステップS11では、後述するターゲット切替処理(図14および図15参照)を実行する。次いで、ステップS13では、ゲームプログラムおよびプレイヤの操作に基づいてゲーム進行処理を実行する。ここでは、プレイヤの操作に応じてプレイヤオブジェクト102を移動させたり、プレイヤオブジェクト102からミサイルを発射させたりする。また、ゲームプログラムに従って敵オブジェクト202を移動させたり、プレイヤオブジェクト102目掛けてミサイルを発射させたりする。このとき、ゲーム画面100およびゲーム画面200も更新される。
【0103】
そして、ステップS15では、ゲーム終了かどうかを判断する。たとえば、プレイヤによってゲーム終了が指示されたり、ゲームオーバになったりしたかどうかを判断する。ステップS15で“NO”であれば、つまりゲーム終了でなければ、そのままステップS7に戻る。一方、ステップS15で“YES”であれば、つまりゲーム終了であれば、そのまま全体処理を終了する。
【0104】
なお、ステップS7−S15のスキャンタイムは、1フレームであり、したがって、変更間隔カウンタ72eは1フレーム毎にインクリメントされる。
【0105】
図11および図12は、図10に示したステップS3の優先順位設定処理のフロー図である。図11に示すように、CPUコア34は優先順位設定処理を開始すると、ステップS31で、自機の位置座標および進行方向情報を取得する。つまり、CPUコア34は、データ記憶領域72のプレイヤオブジェクトデータ72cに含まれる動作パラメータ80および位置データ82を参照して、現在位置の位置座標および進行方向情報を取得する。
【0106】
続くステップS33では、取得した位置座標と進行方向情報とに基づいてゲーム空間を16の領域に分割する。つまり、プレイヤオブジェクト102を中心とする判定領域が設定される。次のステップS35では、16の領域に所定の規則に基づいて順位をつける。この実施例では、図6および図7(A)に示したように、各領域の番号が決定される。つまり、プレイヤオブジェクト102との距離が短く、プレイヤオブジェクト102の進行方向とのずれが小さい領域の番号が小さく(順位が高く)設定される。
【0107】
続いて、ステップS37では、領域の番号を示す変数mおよび優先順位を示す変数nの初期値を設定する(m=1,n=1)。図12に示すように、次のステップS39では、領域m内に敵機が存在するかどうかを判断する。ここでは、領域mに位置座標(XZ座標のみ)が含まれる敵オブジェクト202が存在するかどうかを判断する。ステップS39で“NO”であれば、つまり領域m内に敵機が存在しなければ、そのままステップS59に進む。一方、ステップS39で“YES”であれば、つまり領域m内に敵機が存在すれば、ステップS41で、当該領域mに複数の敵機が存在するかどうかを判断する。
【0108】
ステップS41で“NO”であれば、つまり当該領域mに敵機が一機存在する場合には、ステップS43で、当該敵機に優先順位nを設定して、ステップS53に進む。一方、ステップS41で“YES”であれば、つまり当該領域mに複数の敵機が存在すれば、ステップS45で、自機と複数の敵機とのそれぞれの距離を数1に従って算出する。そして、ステップS47で、距離が最も小さい敵機に優先順位nを設定し、ステップS49で、変数nを1加算する(n=n+1)。次のステップS51では、次に距離が小さい敵機に優先順位nを設定する。
【0109】
続いて、ステップS53では、変数nが4であるかどうかを判断する。つまり、1〜4位までの優先順位が敵機に付けられたかどうかを判断する。ステップS53で“YES”であれば、つまり変数nが4であれば、優先順位nの設定を終了したと判断して、図10に示した全体処理にリターンする。
【0110】
しかし、ステップS53で“NO”であれば、つまり変数nが4未満であれば、ステップS55で、領域m内のすべての敵機について優先順位nを設定したかどうかを判断する。ステップS55で“NO”であれば、つまり領域m内において優先順位nを付していない敵機が存在すれば、そのままステップS49に戻る。一方、ステップS55で“YES”であれば、つまり領域m内のすべての敵機に優先順位を設定すれば、ステップS57で、変数nを1加算して、ステップS59に進む。
【0111】
ステップS59では、変数mが16かどうかを判断する。つまり、すべての領域mについて敵機が存在するか否かを調べたかどうかを判断する。ステップS59で“YES”であれば、つまり変数mが16であれば、すべての領域mについて敵機が存在するか否かを調べたと判断して、全体処理にリターンする。一方、ステップS59で“NO”であれば、つまり変数mが16未満であれば、ステップS61で変数mを1加算して(m=m+1)、ステップS39に戻る。
【0112】
図13は図10に示したステップS9の変更操作判別処理のフロー図である。図13に示すように、CPUコア34は変更操作判別処理を開始すると、ステップS81で、ターゲット変更ボタンが押されたかどうかを判断する。この実施例では、CPUコア34は、データ記憶領域72の操作データバッファ72aを参照して、Xボタン22fが操作されたかどうかを判断する。
【0113】
ステップS81で“NO”であれば、つまりターゲット変更ボタンが押されていなければ、ステップS83で、ボタンフラグ72gをオフし、ステップS85で、継続時間カウンタ72fをリセットして、図10に示した全体処理にリターンする。一方、ステップS81で“YES”であれば、つまりターゲット変更ボタンが押されていれば、ステップS87で、ボタンフラグ72gがオンであるかどうかを判断する。つまり、ターゲット変更ボタン(Xボタン22f)が押し続けられているかどうかを判断するのである。
【0114】
ステップS87で“YES”であれば、ボタンフラグ72jがオンであれば、ターゲット変更ボタンが押し続けられていると判断して、そのままステップS93に進む。一方、ステップS87で“NO”であれば、つまりボタンフラグ72jがオフであれば、今回ターゲット変更ボタンが押されたと判断して、ステップS89で、ボタンフラグ72jをオンし、ステップS91で、順次切替フラグ72hをオンして、ステップS93に進む。
【0115】
ステップS93では、継続時間カウンタ72fをインクリメントする。上述したように、ステップS7−S15のスキャンタイムは1フレームであるため、ターゲット変更ボタンが押しつづけられている場合には、継続時間カウンタ72fは1フレームずつ加算される。
【0116】
続くステップS95では、継続時間カウンタ72fのカウント値が60フレーム以上であるかどうかを判断する。つまり、ターゲット変更ボタンが一定時間以上押し続けられたかどうかを判断する。ステップS95で“NO”であれば、つまり継続時間カウンタ72fのカウント値が60フレーム未満であれば、そのまま全体処理にリターンする。一方、ステップS95で“YES”であれば、つまり継続時間カウンタ72fのカウント値が60フレーム以上であれば、ステップS97で、最優先フラグ72iをオンし、ステップS99で、順次切替フラグ72hをオフして、全体処理にリターンする。
【0117】
図14および図15は、図10に示したステップS11のターゲット切替処理のフロー図である。図14に示すように、CPUコア34はターゲット切替処理を開始すると、ステップS111で、最優先フラグ72iがオンかどうかを判断する。ステップS111で“YES”であれば、つまり最優先フラグ72iがオンであれば、最優先切替指示であると判断し、ステップS113で、最優先フラグ72iをオフし、ステップS115で、上述した優先順位設定処理を実行し、ステップS117で、優先順位が1位の敵機をターゲットオブジェクトとして設定し、ステップS119で、変更間隔カウンタ72eをリセットして、図10に示した全体処理にリターンする。
【0118】
なお、ステップS117の処理は図10に示したステップS5の処理と同じであるため、重複する説明は省略することにする。
【0119】
一方、ステップS111で“NO”であれば、つまり最優先フラグ72iがオフであれば、ステップS121で順次切替フラグ72hがオンであるかどうかを判断する。ステップS121で“NO”であれば、つまり順次切替フラグ72hがオフであれば、ターゲット変更操作がされていないと判断して、図15に示すステップS131で、現ターゲットの敵機が消滅したかどうかを判断する。つまり、たとえば、ターゲットオブジェクトが、プレイヤオブジェクト102の攻撃や自身の移動により3次元ゲーム空間から消滅したかどうかを判断する。
【0120】
ステップS131で“NO”であれば、つまり現ターゲットの敵機が消滅していなければ、そのまま図10に示した全体処理にリターンする。一方、ステップS131で“YES”であれば、つまり現ターゲットの敵機が消滅すれば、図14に示したステップS115に進む。つまり、優先順位を設定し、優先順位が1位の敵オブジェクト202をターゲットオブジェクトに設定する。
【0121】
図14に戻って、ステップS121で“YES”であれば、つまり順次切替フラグ72hがオンであれば、順次切替指示であると判断して、ステップS123で、順次切替フラグ72hをオフした後、ステップS125で、変更間隔カウンタ72eのカウント値が40フレーム以上であるかどうかを判断する。ステップS125で“NO”であれば、つまり変更間隔カウンタ72eのカウント値が40フレーム未満である場合には、ステップS127で、現ターゲットの優先順位が4位であるかどうかを判断する。ここでは、CPUコア34は、現ターゲットの敵オブジェクト202の敵オブジェクトデータ(90,92,…,9n)を参照して、その優先順位が4位であるかどうかを判断するのである。
【0122】
ステップS127で“YES”であれば、つまり現ターゲットの優先順位が4位である場合には、優先順位が1位の敵オブジェクト202をターゲットオブジェクトとして選択すべく、ステップS117に進む。一方、ステップS127で“NO”であれば、つまり現ターゲットの優先順位が4位でなければ、ステップS129で、優先順位が次の順位の敵オブジェクト202をターゲットオブジェクトとして選択して、ステップS119に進む。
【0123】
また、ステップS125で“YES”であれば、つまり変更間隔カウンタ72eのカウント値が40フレーム以上であれば、優先順位を再設定すると判断して、図15に示すステップS133で、上述したターゲット優先順位設定処理を実行する。そして、ステップS135で、現ターゲットの変更後の優先順位が1位であるかどうかを判断する。ステップS135で“NO”であれば、つまり現ターゲットの変更後の順位が1位でなければ、図14に示したステップS117に進む。一方、ステップS135で“YES”であれば、つまり現ターゲットの変更後の順位が1位であれば、ステップS137で、優先順位が2位の敵オブジェクト202をターゲットオブジェクトとして設定して、図14に示したステップS119に進む。このように、プレイヤが順次切替指示をしたときには、必ずターゲットが他の敵オブジェクト202に切り替えられる。これにより、順次切替指示をしたにも拘わらず、ターゲットが切り替わらないといった不都合を防ぐことができ、操作がゲームに反映されないといったストレスをプレイヤに与えないようにすることができる。
【0124】
この実施例によれば、ターゲット変更ボタンを押す毎に、優先順位に従ってターゲットの敵オブジェクトの選択状態を順次変更し、ターゲット変更ボタンを一定時間以上押し続けた場合には、優先順位に従わずに優先順位が1位の敵オブジェクトをターゲットとして選択するので、既に選択し終わった敵オブジェクトや最初の敵オブジェクトを簡単な操作で選択し直すことができる。したがって、ゲームの操作性を損なうことがない。
【0125】
なお、この実施例では、1つの操作ボタンを用いて、順次切替指示または最優先切替指示を入力するようにしたが、異なる操作ボタンを用いるようにしてもよい。たとえば、Xボタン22fを押す毎にターゲットオブジェクトの選択が順次切り替わり、Yボタン22gを一定時間以上押し続けた場合に優先順位が1位の敵オブジェクトをターゲットオブジェクトとして選択するようにしてもよい。このように、一定時間以上押し続けるようにするのは、ボタンの単なる押し間違えにより、優先順位が1位の敵オブジェクトをターゲットオブジェクトとして選択してしまうのを防止するためである。したがって、たとえば、1のボタンを一定時間以上押し続ける操作に代えて、複数のボタンを連続的に操作した場合に、優先順位が1位の敵オブジェクトをターゲットオブジェクトとして選択するようにしてもよい。
【0126】
また、操作ボタンに代えて、ゲーム画面200に、「ターゲット切替ボタン」を表示させ、タッチペン等で「ターゲット切替ボタン」を一定時間以上接触し続けたか否かをタッチパネル24からの検出信号に基づいて判別してターゲットの順次切替または最優先切替を行うようにしてもよい。
【0127】
また、この実施例では、ポインティングデバイスとして、タッチパネルを用いるようにしたが、ペンタブレット、タッチパッド、コンピュータマウスのような他のポインティングデバイスを用いることも可能である。当然のことながら、従来の操作スイッチを用いることも可能である。ただし、他のポインティングデバイスや操作スイッチを用いる場合には、画面上の指示位置を示すためのマウスポインタのような指示画像を表示する必要がある。
【0128】
さらに、ゲーム装置の構成は、上述の実施例の構成に限定されるべきでない。たとえば、LCDは1つでもよく、タッチパネルは2つのLCDのそれぞれに設けるようにしてもよい。
【0129】
他の実施例のゲーム装置10は、順次切替指示がある度に、最新の優先順位に従ってターゲットオブジェクトの選択状態を切り替えるようにした以外は上述の実施例と同じであるため、重複した説明は省略することにする。したがって、上述の実施例において、変更間隔カウンタ72eを省略することができる。
【0130】
具体的には、他の実施例のターゲット切替処理は、図16および図17のフロー図で示される。この他の実施例のターゲット切替処理は、上述の実施例のターゲット切替処理の一部を変更しただけであるため、同じステップについては同じ参照符号を付けてある。また、同じ処理についての重複した説明は割愛することにする。
【0131】
図16に示すように、この他の実施例のターゲット切替処理では、順次切替フラグ72hがオンである場合、ステップS121で“YES”となり、ステップS123で順次切替フラグをオフすると、後述する順次切替処理(図18−図20)を実行する。そして、順次切替処理の結果、ステップS203で、最優先切替フラグがオンであるかどうかを判断する。ここで、最優先切替フラグは、優先順位が1位の敵オブジェクト202をターゲットオブジェクトに設定するか否かを判断するためのフラグである。この最優先切替フラグもまた、1ビットのレジスタでデータ記憶領域72に構成される。最優先切替フラグがオンされると、レジスタにはデータ値「1」が設定され、最優先切替フラグがオフされると、レジスタにはデータ値「0」が設定される。最優先切替フラグがオンである場合には、ステップS203で“YES”となり、ステップS117に進む。一方、最優先切替フラグがオフである場合には、優先順位が次の順位の敵オブジェクト202をターゲットオブジェクトにするべく、ステップS129に進む。
【0132】
図18に示すように、CPUコア34は順次切替処理を開始すると、ステップS151で、現在のターゲットの敵オブジェクト202の領域の番号を検出する。続くステップS153では、次のターゲットの敵オブジェクト202の候補を検出する。つまり、ステップS151で検出した領域の番号の次の領域の番号を示すエリア内に存在する敵オブジェクト202が検出される。ただし、現在のターゲットの敵オブジェクト202の領域の番号の次の領域の番号が示すエリア内に敵オブジェクト202が存在しない場合には、さらに次の領域の番号が示すエリア内の敵オブジェクト202が検出される。次のターゲットの敵オブジェクト202の候補が検出されるまで、同様の処理が繰り返される。
【0133】
続いて、ステップS155では、1番目の敵オブジェクト202の領域の番号を検出する。なお、ここでの敵オブジェクト202の順番は、全ての敵オブジェクト202をサーチして、次のターゲット候補を決定するためのものであり、任意に設定されたり、データ記憶領域72に記憶されている順番に従って設定されたりするものである。ただし、現在のターゲットの敵オブジェクト202と、次のターゲットの候補とを除く、敵オブジェクト202についてサーチされる。以下、サーチする敵オブジェクト202を当該敵オブジェクト202と呼ぶことにする。
【0134】
図19に示すように、次のステップS157では、当該敵オブジェクト202の優先順位が現在のターゲットよりも高いかどうかを判断する。つまり、当該敵オブジェクト202の領域の番号が、現在のターゲットの敵オブジェクト202の領域の番号よりも小さいかどうかを判断する。ただし、当該敵オブジェクト202の領域の番号と、現在のターゲットの敵オブジェクト202の領域の番号とが同じ場合には、プレイヤオブジェクト102と当該敵オブジェクト202との距離(説明の都合上、「第1距離」という。)が、プレイヤオブジェクト102と現在のターゲットの敵オブジェクト202との距離(説明の都合上、「第2距離」という。)よりも短いかどうかを判断する。なお、この距離の判断は行わないようにしても良い。
【0135】
ステップS157で“YES”であれば、つまり当該敵オブジェクト202の優先順位が現在のターゲットよりも高い場合には、図20に示すステップS171に進む。一方、ステップS157で“NO”であれば、つまり現在のターゲットよりも優先順位が高くない場合には、ステップS159で、当該敵オブジェクト202の優先順位が現在のターゲットと同じであるかどうかを判断する。ここでは、第1距離と第2距離とが一致するかどうかを判断する。
【0136】
ステップS159で“YES”であれば、つまり当該敵オブジェクト202の優先順位が現在のターゲットと同じであれば、ステップS161で、当該敵オブジェクト202についての角度の優先度が現在のターゲットよりも高いかどうかを判断する。つまり、プレイヤオブジェクト102の進行方向からのずれ(この実施例では、θ+α)が小さいかどうかを判断する。ステップS161で“YES”であれば、つまり当該敵オブジェクト202についての角度の優先度が現在のターゲットよりも高い場合には、そのままステップS171に進む。一方、ステップS161で“NO”であれば、つまり当該敵オブジェクト202についての角度の優先度が現在のターゲットよりも低い場合には、図20に示すステップS175にそのまま進む。
【0137】
一方、ステップS159で“NO”であれば、つまり当該敵オブジェクト202の優先順位が現在のターゲットと同じでなければ、当該敵オブジェクト202の優先順位が現在のターゲットよりも低いと判断して、ステップS163で、当該敵オブジェクト202の優先順位が次のターゲット候補よりも高いかどうかを判断する。この判断手法は、ステップS157で説明した場合と同様であるため、重複した説明は省略する。
【0138】
ステップS163で“YES”であれば、つまり当該敵オブジェクト202の優先順位が次のターゲット候補よりも高い場合には、そのままステップS169に進む。一方、ステップS163で“NO”であれば、つまり当該敵オブジェクト202の優先順位が次のターゲット候補よりも高くない場合には、ステップS165で、当該敵オブジェクト202の優先順位が次のターゲット候補と同じであるかどうかを判断する。
【0139】
ステップS165で“NO”であれば、つまり当該敵オブジェクト202の優先順位が次のターゲット候補と同じでなければ、当該敵オブジェクト202の優先順位が次のターゲット候補よりも低いと判断して、そのままステップS175に進む。一方、ステップS165で“YES”であれば、つまり当該敵オブジェクト202の優先順位が次のターゲット候補と同じであれば、ステップS167で、当該敵オブジェクト202の角度の優先度が次のターゲット候補よりも高いかどうかを判断する。ステップS167で“NO”であれば、つまり当該敵オブジェクト202の角度の優先度が次のターゲット候補よりも高くなければ、そのままステップS175に進む。一方、ステップS167で“YES”であれば、つまり当該敵オブジェクト202の角度の優先度が次のターゲット候補よりも高ければ、ステップS169で、当該敵オブジェクト202を次のターゲット候補に更新して、ステップS175に進む。
【0140】
図20に示すように、ステップS171では、現在のターゲットの優先順位よりも高い優先順位の敵オブジェクト202が3つ以上あるかどうかを判断する。ステップS171で“NO”であれば、つまり現在のターゲットの優先順位よりも高い優先順位の敵オブジェクト202が3つ未満であれば、ステップS175に進む。一方、ステップS171で“YES”であれば、現在のターゲットの優先順位よりも高い優先順位の敵オブジェクト202が3つ以上あれば、現在のターゲットの優先順位は4位以下であると判断して、ステップS173で、最優先切替フラグをオンして、ターゲット切替処理にリターンする。
【0141】
また、ステップS175では、すべての敵オブジェクト202についてサーチを終了したかどうかを判断する。ステップS175で“NO”であれば、つまりすべての敵オブジェクト202についてサーチを終了していなければ、ステップS177で、次の敵オブジェクト202の領域の番号を検出して、図19に示したステップS157に戻る。一方、ステップS175で“YES”であれば、つまりすべての敵オブジェクト202についてサーチを終了すれば、ステップS179で、次のターゲット候補を見つけたかどうかを判断する。つまり、次に選択すべき敵オブジェクト202が存在するかどうかを判断する。
【0142】
ステップS179で“NO”であれば、つまり次のターゲット候補が見つからなければ、そのままステップS173に進む。一方、ステップS179で“YES”であれば、つまり次のターゲット候補が見つかれば、ステップS181で、最優先切替フラグをオフして、ターゲット切替処理にリターンする。
【0143】
このようにしても、ターゲットオブジェクトの選択状態を順次切り替えることができるのである。また、このようにすれば、プレイヤからの切替指示がある毎に更新される最新の情報に基づいてターゲットオブジェクトの切替選択を実行することができる。
【0144】
他の実施例においても、上述の実施例と同様に、操作性を高くして、ゲームへの興味減退を防止することができる。
【0145】
なお、これらの実施例では、プレイヤオブジェクトの現在の位置および進行方向を基準に判定領域を設定し、現時点における敵オブジェクトの優先順位を設定するようにしたが、これに限定されるべきでない。プレイヤオブジェクトのT(>0)秒後の位置および進行方向を予測して、予測結果に応じて判定領域を設定し、同じくT秒後の敵オブジェクトの位置および進行方向を予想して、優先順位を設定するようにしてもよい。プレイヤオブジェクトのT秒後の位置および進行方向は、プレイヤオブジェクトの動作パラメータを用いた物理計算により簡単に求めることができる。また、敵オブジェクトは、ゲームプログラムに従って移動を制御されるため、T秒後の位置および進行方向は簡単に予測する(知る)ことができる。
【0146】
また、これらの実施例では、判定領域を設定して、敵オブジェクトの優先順位を設定するようにしたが、これに限定される必要はない。上述の実施例のような判定領域は設定せずに、プレイヤオブジェクトの位置および進行方向を基準として、プレイヤオブジェクトと各敵オブジェクトとの距離および進行方向からのずれをそれぞれ算出して、その算出結果に応じて各敵オブジェクトの優先順位を設定するようにしてもよい。
【0147】
また、上述の実施例では、3次元ゲームの例を説明したが、2次元ゲームのものに適用してもよい。
【図面の簡単な説明】
【0148】
【図1】図1はこの発明のゲーム装置の一実施例を示す図解図である。
【図2】図2は図1に示すゲーム装置の電気的な構成を示すブロック図である。
【図3】図3は図1に示すゲーム装置の第1および第2のLCDに表示されるゲーム画面の一例を示す図解図である。
【図4】図4は3次元ゲーム空間におけるプレイヤオブジェクトを示す図解図である。
【図5】図5はプレイヤオブジェクトのヨー角およびピッチ角を説明するための図解図である。
【図6】図6は敵オブジェクトの優先順位を設定するための判定領域を示す図解図である。
【図7】図7は図6に示す判定領域の一部拡大図および3次元ゲーム空間を横方向から見た図解図である。
【図8】図8は図2に示すRAMのメモリマップの一例を示す図解図である。
【図9】図9は図8に示すデータ記憶領域の具体的な内容を示す図解図である。
【図10】図10は図2に示すCPUコアのゲーム全体処理を示すフロー図である。
【図11】図11は図2に示すCPUコアの優先順位設定処理の一部を示すフロー図である。
【図12】図12は図2に示すCPUコアの優先順位設定処理の他の一部であって、図11に後続するフロー図である。
【図13】図13は図2に示すCPUコアの変更操作判別処理を示すフロー図である。
【図14】図14は図2に示すCPUコアのターゲット切替処理の一部を示すフロー図である。
【図15】図15は図2に示すCPUコアのターゲット切替処理の他の一部であって、図14に後続するフロー図である。
【図16】図16は他の実施例のCPUコアのターゲット切替処理の一部を示すフロー図である。
【図17】図17は他の実施例のCPUコアのターゲット切替処理の他の一部であって、図16に後続するフロー図である。
【図18】図18は他の実施例のCPUコアの順次切替処理の一部を示すフロー図である。
【図19】図19は他の実施例のCPUコアの順次切替処理の他の一部であって、図18に後続するフロー図である。
【図20】図20は他の実施例のCPUコアの順次切替処理のその他の一部であって、図19に後続するフロー図である。
【符号の説明】
【0149】
10 …ゲーム装置
12,14 …LCD
16,16a,16b …ハウジング
22 …操作スイッチ
24 …タッチパネル
26 …スティック
28 …メモリカード
28a …ROM
28b,42 …RAM
34 …CPUコア
36a,36b …スピーカ
44,46 …GPU
48 …I/F回路
50 …LCDコントローラ
52,54 …VRAM
【技術分野】
【0001】
この発明はゲームプログラムおよびゲーム装置に関し、特にたとえば、シューティングゲームをプレイするための、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
従来、シューティングゲーム等において、ゲーム空間内を移動する複数の標的の中から攻撃目標とする標的をプレイヤの操作に応じて順次切り替えて選択するものが知られている。
【0003】
たとえば、特許文献1に開示された技術では、プレイヤオブジェクトの視界内に存在する複数のノンプレイヤオブジェクト(標的)を、当該プレイヤオブジェクトとの距離が短いものから順に高い優先順位を設定し、コントローラのZボタンの1回目の操作で優先順位が1位のノンプレイヤオブジェクトを注目ノンプレイヤオブジェクトとして選択し、2回目の操作で優先順位が次の(2位の)ノンプレイヤオブジェクトを注目ノンプレイヤオブジェクトとして選択する。
【0004】
また、非特許文献1には、コントローラの△ボタンを押すことによって目標の切り替えを行うことが開示されている。
【特許文献1】特開平11−128533
【非特許文献1】PS2用ゲームソフト「エースコンバット・ゼロ・ ザ・ベルカン・ウォー」のソフトウェアマニュアル P.8−9
【発明の開示】
【発明が解決しようとする課題】
【0005】
このような背景技術のゲームでは、プレイヤが標的を順次切り替えて選択するようにしてあるため、所望の標的を選択している途中で、最初に選択した標的や既に選択し終わった標的を再度選択したいという要求が出てくる場合がある。このような場合には、すべての標的を選択し終わった後に、最初から標的を選択し直すことになる。または、プレイヤが何ら操作しないで一定時間放置すると、優先順位のリストを再取得した後に、優先順位が1位の(最初の)標的が選択される。このように、プレイヤは、すべての標的を順次選択したり、一定時間放置したりして、所望の標的を選択し直す必要があるため、ゲームの操作性が悪いと言える。
【0006】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【0007】
また、この発明の他の目的は、標的を選択するための操作性を向上できる、ゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0008】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0009】
第1の発明は、標的となる複数のノンプレイヤオブジェクトが配置された仮想ゲーム空間を画面に表示するゲーム装置のゲームプログラムであって、ゲーム装置のコンピュータに、選択ステップ、ノンプレイヤオブジェクト選択順位設定ステップおよび入力状態継続時間検出ステップを実行させる。選択ステップは、操作手段から所定の入力がある毎に、複数のノンプレイヤオブジェクトから1つのノンプレイヤオブジェクトを順次切り替えて選択する。ノンプレイヤオブジェクト選択順位設定ステップは、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を設定する。そして、入力状態継続時間検出ステップは、所定の入力がある状態が継続する継続時間を検出する。上記の選択ステップは、継続時間が所定値未満のとき、ノンプレイヤオブジェクト選択順位設定ステップによって設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する第1選択ステップと、継続時間が所定値以上のとき、順位の最も高いノンプレイヤオブジェクトに切り替えて選択する第2選択ステップとを含む。
【0010】
第1の発明では、ゲーム装置(10)は、標的となる複数のノンプレイヤオブジェクト(202)が配置された仮想ゲーム空間を画面(100,200)に表示する。ゲームプログラムは、このゲーム装置のコンピュータに、選択ステップ(34,S117,S127,S129,S201,S203)、ノンプレイヤオブジェクト選択順位設定ステップ(34,S115,S133)および入力状態継続時間検出ステップ(34,S87,S93,S95)を実行させる。選択ステップは、操作手段(22)から所定の入力がある毎に、複数のノンプレイヤオブジェクトから1つのノンプレイヤオブジェクトを順次切り替えて選択する。ノンプレイヤオブジェクト選択順位設定ステップは、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を設定する。入力状態継続時間検出ステップは、所定の入力がある状態が継続する継続時間を検出する。たとえば、或るボタンが押し続けられる時間を検出する。選択ステップは、第1選択ステップおよび第2選択ステップを含む。第1選択ステップは、継続時間が所定値未満のとき、ノンプレイヤオブジェクト選択順位設定ステップによって設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する。第2選択ステップは、継続時間が所定値以上のとき、順位の最も高いノンプレイヤオブジェクトに切り替えて選択する。つまり、第2選択ステップは、順位に従わないで、順位の最も高いのプレイヤオブジェクトを選択する。
【0011】
第1の発明によれば、所定の入力の継続時間に応じて、ノンプレイヤオブジェクトを順位に従って順次切り替えたり、順位に従わないで順位の最も高いノンプレイヤオブジェクトに切り替えたりするので、標的の切替の操作性を向上させることができる。したがって、たとえば、ノンプレイヤオブジェクトを順位選択している途中であっても、所定の入力を所定値以上継続することにより、順位の最も高いノンプレイヤオブジェクトを選択できるので、所望のオブジェクトを容易に選択し直すことができる。
【0012】
第2の発明は第1の発明に従属し、ノンプレイヤオブジェクト選択順位設定ステップは、継続時間が所定値以上のとき、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を再設定し、第2選択ステップは、再設定された順位の最も高いノンプレイヤオブジェクトに切り替えて選択する。
【0013】
第2の発明では、ノンプレイヤオブジェクト選択順位設定ステップは、継続時間が所定値以上のとき、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を再設定する。たとえば、プレイヤが所定のボタンを一定時間以上押し続けた場合には、選択ステップによって選択される順位が更新される。したがって、第2選択ステップは、再設定された(更新された)順位の最も高いノンプレイヤオブジェクトに切り替えて選択する。
【0014】
第2の発明によれば、所定の入力が所定値以上継続するときには、選択順位を再設定するので、最新情報に基づいた標的を再選択することができる。
【0015】
第3の発明は第1または第2の発明に従属し、選択ステップによって切替選択が行われてからの経過時間を検出する経過時間検出ステップをコンピュータにさらに実行させ、ノンプレイヤオブジェクト選択順位設定ステップは、経過時間が所定値以上のとき、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を再設定し、第1選択ステップは、所定の入力がある毎に、ノンプレイヤオブジェクト選択順位設定ステップによって再設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する。
【0016】
第3の発明では、経過時間検出ステップ(34,S7,S125)は、選択ステップによって切替選択が行われてからの経過時間を検出する。ノンプレイヤオブジェクト選択順位設定ステップは、経過時間が所定値以上のとき、複数のノンプレイヤオブジェクトの各々について、選択ステップによって選択される順序を再設定する。第1選択ステップは、所定の入力がある毎に、ノンプレイヤオブジェクト選択順位設定ステップによって再設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する。
【0017】
第3の発明によれば、所定時間が経過する毎に更新される最新の情報に基づいてノンプレイヤオブジェクトの切替選択を実行することができる。
【0018】
第4の発明は第1ないし第3の発明に従属し、仮想ゲーム空間におけるプレイヤオブジェクトの位置情報および進行方向を取得するプレイヤオブジェクト情報取得ステップ、位置情報および進行方向と、位置情報を基点とした左右の角度および距離とに基づいて、仮想ゲーム空間を複数の領域に分割する領域分割ステップ、および領域分割ステップによって分割された領域の各々について、選択順位を設定する領域選択順位設定ステップをコンピュータにさらに実行させ、ノンプレイヤオブジェクト選択順位設定ステップは、領域選択順位設定ステップによって設定された順位の高い領域に存在するノンプレイヤオブジェクトから順次高い順位を設定する。
【0019】
第4の発明では、プレイヤオブジェクト情報取得ステップ(34,S31)は、仮想ゲーム空間におけるプレイヤオブジェクト(102)の位置情報および進行方向を取得する。領域分割ステップ(34,S33)は、プレイヤオブジェクトの位置情報および進行方向と、位置情報を基点とした左右の角度および距離とに基づいて、仮想ゲーム空間を複数の領域に分割する。たとえば、プレイヤオブジェクトとの距離およびプレイヤオブジェクトの進行方向からのずれに応じて、仮想ゲーム空間が複数の領域に分割される。領域選択順位設定ステップは、領域分割ステップによって分割された領域の各々について、選択順位を設定する。したがって、たとえば、ノンプレイヤオブジェクト選択順位設定ステップは、領域選択順位設定ステップによって設定された順位の高い領域に存在するノンプレイヤオブジェクトから順次高い順位を設定する。
【0020】
第4の発明によれば、仮想ゲーム空間をプレイヤオブジェクトとの位置関係に基づいて分割した領域に従ってノンプレイヤオブジェクトの順位を設定するので、プレイヤオブジェクトとの位置関係に基づいた簡単な処理でノンプレイヤオブジェクトの順位を設定することができる。
【0021】
第5の発明は第4の発明に従属し、時間T(T>0)後にプレイヤオブジェクトが到達する位置座標および進行方向を予測する予測ステップをコンピュータにさらに実行させ、領域分割ステップは、予測ステップによって予測された位置情報および進行方向と、位置情報を基点とした左右の角度および距離とに基づいて、仮想ゲーム空間を複数の領域に分割する。
【0022】
第5の発明では、予測ステップは、時間T(T>0)後にプレイヤオブジェクトが到達する位置座標および進行方向を予測する。たとえば、現在のプレイヤオブジェクトの移動速度を知ることができれば、この移動速度と進行方向とから時間T後の位置および移動方向を物理計算により簡単に算出される。領域分割ステップは、予測ステップによって予測された位置情報および進行方向と、位置情報を基点とした左右の角度および距離とに基づいて、仮想ゲーム空間を複数の領域に分割する。つまり、
第5の発明によれば、プレイヤオブジェクトの予測した位置および予測した移動方向に基づいてノンプレイヤオブジェクトの順位を設定することができる。
【0023】
第6の発明は、標的となる複数のノンプレイヤオブジェクトが配置された仮想ゲーム空間を画面に表示するゲーム装置であって、選択手段、ノンプレイヤオブジェクト選択順位設定手段、および入力状態継続時間検出手段を備える。選択手段は、操作手段から所定の入力がある毎に、複数のノンプレイヤオブジェクトから1つのノンプレイヤオブジェクトを順次切り替えて選択する。ノンプレイヤオブジェクト選択順位設定手段は、複数のノンプレイヤオブジェクトの各々について、選択手段によって選択される順序を設定する。入力状態継続時間検出手段は、所定の入力がある状態が継続する継続時間を検出する。そして、選択手段は、継続時間が所定値未満のとき、ノンプレイヤオブジェクト選択順位設定手段によって設定された順位に従ってノンプレイヤを順次切り替えて選択する第1選択手段と、継続時間が所定値以上のとき、順位の最も高いノンプレイヤオブジェクトに切り替えて選択する第2選択手段とを含む。
【0024】
第6の発明においても、第1の発明と同様に、標的の切替選択の操作性を向上させることができる。
【発明の効果】
【0025】
この発明によれば、所定の入力の継続時間に応じて、順次標的を切り替えたり、順位に従わずに最も順位の高い標的に切り替えたりするので、標的の切替の操作性を向上させることができる。
【0026】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0027】
図1を参照して、この発明の実施例であるゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。LCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0028】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0029】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。下側ハウジング16bのLCD14の左方には電源スイッチ18が設けられる。
【0030】
また、上側ハウジング16aには、LCD12を挟んで左右に、スピーカ36aおよび36b(図2)のための音抜き孔20aおよび20bが形成される。そして、下側ハウジング16bには、マイク(図示せず)のためのマイク孔20cが形成されるとともに、操作スイッチ22(22a,22b,22c,22d,22e,22Lおよび22R)が設けられる。
【0031】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0032】
操作スイッチ22は、方向指示スイッチ(十字スイッチ)22a,スタートスイッチ22b、セレクトスイッチ22c、動作スイッチ(Aボタン)22d、動作スイッチ(Bボタン)22e、動作スイッチ(Xボタン)22f、動作スイッチ(Yボタン)22g、動作スイッチ(Lボタン)22Lおよび動作スイッチ(Rボタン)22Rを含む。スイッチ22aは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。その他のスイッチ22b−22gは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、スイッチ22Lおよびスイッチ22Rは、それぞれ、上側ハウジング16aとの連結部を挟む下側ハウジング16bの上側面の左右角部に配置される。
【0033】
方向指示スイッチ22aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、ユーザないしプレイヤによって操作可能なプレイヤオブジェクト(またはプレイヤキャラクタ)の進行方向(移動方向)を指示したり、カーソルの進行方向を指示したりする等に用いられる。また、各押圧部には、特定の役割を割り当てることができ、4つの押圧部の1つを操作することによって、割り当てられた役割を指示(指定)することができる。
【0034】
スタートスイッチ22bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。また、セレクトスイッチ22cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0035】
動作スイッチ22dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤオブジェクトに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ22eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ22cで選択したゲームモードの変更やAボタン22dで決定したアクションの取り消し等のために用いられる。
【0036】
動作スイッチ22fすなわちXボタン、および動作スイッチ22gすなわちYボタンは、プッシュボタンで構成され、Aボタン22dとBボタン22eだけでは、ゲーム進行ができないときに、補助的な操作に用いられる。ただし、Xボタン22fおよびYボタン22gは、Aボタン22dおよびBボタン22eと同様の操作に用いることも可能である。もちろん、ゲームプレイにおいてXボタン22fとYボタン22gとを必ずしも使用しなくてよい。
【0037】
動作スイッチ22L(左押しボタン)および動作スイッチ22R(右押しボタン)は、プッシュボタンで構成され、左押しボタン(Lボタン)22Lおよび右押しボタン(Rボタン)22Rは、Aボタン22dおよびBボタン22eと同様の操作に用いることができ、また、Aボタン22dおよびBボタン22eの補助的な操作に用いることができる。さらに、Lボタン22LおよびRボタン22Rは、方向スイッチ22a、Aボタン22d,Bボタン22e,Xボタン22f,Yボタン22gに割り当てられた役割を、他の役割に変更することができる。
【0038】
また、LCD14の上面には、タッチパネル24が装着される。タッチパネル24としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル24は、その上面をスティック26ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック26等」という場合がある。)で、押圧したり、撫でたり、触れたりすることにより操作(タッチ入力)すると、スティック26等の操作位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
【0039】
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル24の検出精度も表示画面に対応して256dot×192dotとしてあるが、タッチパネル24の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【0040】
LCD12およびLCD14には異なるゲーム画面が表示されてもよい。たとえば、レースゲームでは一方のLCDに運転席からの視点による画面を表示し、他方のLCDにレース(コース)全体の画面を表示することができる。また、RPGでは、一方のLCDにマップやプレイヤオブジェクト等のキャラクタを表示し、他方のLCDにプレイヤオブジェクトが所有するアイテムを表示することができる。さらに、一方のLCD(この実施例では、LCD12)にプレイヤオブジェクトやノンプレイヤオブジェクトなどを含むゲーム画面を表示し、他方のLCD(この実施例では、LCD14)に当該プレイヤオブジェクトやノンプレイヤオブジェクトに関する情報を含む他のゲーム画面または当該プレイヤオブジェクトを操作するための操作画面を表示することができる。さらには、2つのLCD12およびLCD14を合わせて1つの画面として用いることにより、プレイヤオブジェクトが倒さなければならない巨大な怪物(敵オブジェクト)を表示することもできる。
【0041】
したがって、プレイヤはスティック26等でタッチパネル24を操作することにより、LCD14の画面に表示されるプレイヤオブジェクト、敵オブジェクト、アイテムオブジェクト、操作オブジェクトなどの画像を指示(操作)したり、コマンドを選択(入力)したりすることができる。また、仮想ゲーム空間(3次元ゲーム空間)に設けられる仮想カメラ(視点)の方向(視線の向き)を変化させたり、ゲーム画面(マップ)のスクロール(徐々に移動表示)方向を指示したりすることもできる。
【0042】
なお、ゲームの種類によっては、タッチパネル24を用いることにより、その他の入力指示も可能である。たとえば、座標入力指示を入力したり、LCD14において文字,数字,記号等を手書き入力したりすることができる。
【0043】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル24が設けられるので、2画面(12,14)と2系統の操作部(22,24)とを有する構成になっている。
【0044】
また、この実施例では、スティック26は、たとえば下側ハウジング16bに設けられる収納部(図1では点線で示す)に収納することができ、必要に応じて取り出される。ただし、スティック26を設けない場合には、その収納部も設ける必要はない。
【0045】
さらに、ゲーム装置10はメモリカード(またはカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは下端(底面)に設けられる挿入部30(図1では点線で示す)に挿入される。図1では省略するが、挿入部30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ32(図2参照)が設けられており、したがって、メモリカード28が挿入部30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア34(図2参照)がメモリカード28にアクセス可能となる。
【0046】
なお、図1では表現できないが、上側ハウジング16aの音抜き孔20aおよび20bと対応する位置であり、この上側ハウジング16aの内部にはスピーカ36aおよび36b(図2参照)が設けられる。
【0047】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【0048】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板38を含み、この電子回路基板38には上述のCPUコア34等の回路コンポーネントが実装される。CPUコア34は、バス40を介して前述のコネクタ32に接続されるととともに、RAM42、第1のグラフィック処理ユニット(GPU)44、第2のGPU46、入出カインターフエース回路(以下、「I/F回路」という。)48およびLCDコントローラ50が接続される。
【0049】
コネクタ32には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ32と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア34は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0050】
ROM28aは、ゲーム装置10で実行すべきゲームのためのゲームプログラム、画像データ(文字やオブジェクトの画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)およびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データなどを記憶(セーブ)する。
【0051】
RAM42は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア34は、メモリカード28のROM28aに記憶されたプログラム、画像データおよび音データ等をRAM42にロードし、ロードしたプログラムを実行する。また、CPUコア34は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM42に記憶しつつゲーム処理を実行する。
【0052】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM42に記憶(ロード)される。
【0053】
ただし、メモリカード28のROM28aには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データが記憶される。また、必要に応じて、音(音楽)データが記憶されてもよい。かかる場合には、ゲーム装置10では、当該アプリケーションが実行される。
【0054】
GPU44およびGPU46は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア34からのグラフィックスコマンド(作画命令)を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、CPUコア34は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU44およびGPU46のそれぞれに与える。
【0055】
また、GPU44には、第1のビデオRAM(以下、「VRAM」という。)52が接続され、GPU46には、第2のVRAM54が接続される。GPU44およびGPU46が作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンやテクスチャ等のデータ)は、GPU44およびGPU46が、それぞれ、第1のVRAM52および第2のVRAM54にアクセスして取得する。
【0056】
なお、CPUコア34は、描画に必要な画像データをGPU44およびGPU46を介して第1のVRAM52および第2のVRAM54に書き込む。GPU44はVRAM52にアクセスして描画のための画像データを作成し、GPU46はVRAM54にアクセスして描画のための画像データを作成する。
【0057】
VRAM52およびVRAM54は、LCDコントローラ50に接続される。LCDコントローラ50はレジスタ56を含み、レジスタ56はたとえば1ビットで構成され、CPUコア34の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ50は、レジスタ56のデータ値が「0」である場合には、GPU44によって作成された画像データをLCD12に出力し、GPU46によって作成された画像データをLCD14に出力する。また、LCDコントローラ50は、レジスタ56のデータ値が「1」である場合には、GPU44によって作成された画像データをLCD14に出力し、GPU46によって作成された画像データをLCD12に出力する。
【0058】
なお、LCDコントローラ50は、VRAM52およびVRAM54から直接画像データを読み出したり、GPU44およびGPU46を介してVRAM52およびVRAM54から画像データを読み出したりする。
【0059】
I/F回路48には、操作スイッチ22,タッチパネル24およびスピーカ36a,36bが接続される。ここで、操作スイッチ22は、上述したスイッチ22a,22b,22c,22d,22e,22g,22Lおよび22Rであり、操作スイッチ22が操作されると、対応する操作信号(操作データ)がI/F回路48を介してCPUコア34に入力される。また、タッチパネル24からの座標データがI/F回路48を介してCPUコア34に入力される。さらに、CPUコア34は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM42から読み出し、I/F回路48を介してスピーカ36a,36bから出力する。
【0060】
図3は、図1および図2に示すゲーム装置10を用いて、この実施例の仮想ゲーム(コンバットフライトシミュレーションゲーム)をプレイする場合に、LCD12に表示されるゲーム画面100の一例およびLCD14に表示されるゲーム画面200の一例を示す。ゲーム画面100は、プレイヤオブジェクト102を含み、このプレイヤオブジェクト102は、戦闘機の機体を模した飛行オブジェクトである。簡単のため、図示は省略するが、この実施例の敵オブジェクトは、主として、戦闘機のような飛行オブジェクトであるが、戦車、装甲車、戦艦または潜水艦のような地上ないし水上(水中)に存在する他のオブジェクト(以下、簡単のため、これらを「地上オブジェクト」と呼ぶことにする。)も含まれる。
【0061】
また、ゲーム画面100には、プレイヤオブジェクト102の機体速度および機体高度が可視表示される。この実施例では、ゲーム画面100の左下部に機体速度の表示部104が設けられ、ゲーム画面100の右下部に機体高度の表示部106が設けられる。さらに、ゲーム画面100の中央上部には、機体の進行方向を示す方位(N,E,W,S)のキャラクタ108(図3では“N”)が表示される。なお、図示は省略するが、ゲーム画面100には、敵オブジェクトや地形オブジェクト等も表示される。
【0062】
また、ゲーム画面200は、3次元(仮想)ゲーム空間の全部ないしその一部を上方から俯瞰的に見た場合に(図4参照)、プレイヤオブジェクト102と敵オブジェクト202との平面的な(XZ平面における)位置関係を知らせるための表示部(レーダ表示部)210を含む。たとえば、レーダ表示部210では、プレイヤオブジェクト102は中心の三角形状の図形(黒色で塗りつぶしてある。)で示され、敵オブジェクト202はそれ以外の三角形状や四角形状の図形(線で模様を付してある。)で示される。また、プレイヤオブジェクト102が目標(標的)とする敵オブジェクト202(以下、「ターゲットオブジェクト」と呼ぶことがある。)を指示するカーソル204が表示される。
【0063】
詳細な説明は省略するが、ゲーム画面200には、レーダ表示部210の周りに、プレイヤオブジェクト102に関する情報(ライフ(HP)、プレイヤオブジェクト102が保有する弾の種類および数など)や敵オブジェクト202の数(倒した数(HIT),残りの数(LEFT))などの他の情報も表示される。
【0064】
ここで、図4に示すように、この実施例の3次元ゲーム空間では、水平面の横方向がX軸方向であり、水平面の奥行き方向がZ軸方向であり、水平面に対して垂直な方向(高さ方向)がY軸方向である。詳細な説明は省略するが、Y軸には海抜(標高)0m〜7000mのスケールを定義する目盛が付されている。したがって、Y軸方向におけるプレイヤオブジェクト102の位置に対応する標高が、上述したゲーム画面100の表示部106に表示されるのである。
【0065】
また、プレイヤの操作(たとえば、十字スイッチ22aの操作)によって、プレイヤオブジェクト102のヨー角とピッチ角とを制御することにより、プレイヤオブジェクト102の進行方向を変化させることができる。図5に示すように、この実施例では、プレイヤオブジェクト102が3次元ゲーム空間のZ軸方向に移動していると仮定した場合に、ヨー角は3次元ゲーム空間(ワールド座標)のY軸周りの角度であり、ピッチ角は3次元ゲーム空間のX軸周りの角度である。図面では表現できないが、プレイヤの操作(たとえば、Aボタン22dやBボタン22eのオン/オフ)によって、機体速度を制御することもできる。したがって、3次元ゲーム空間において、プレイヤオブジェクト102を自在に移動(飛行)させることができるのである。
【0066】
このような仮想ゲームにおいては、プレイヤは、所望のターゲットオブジェクトを選択し、プレイヤオブジェクト102の移動を制御して、選択したターゲットオブジェクトに追従させる。そして、プレイヤは、プレイヤオブジェクト102がターゲットオブジェクトを攻撃可能な状態(ロックオン状態)で、タイミングを計ってミサイルを発射させる。ただし、ロックオン状態とは、プレイヤオブジェクト102が敵オブジェクト202(ターゲットオブジェクト)に照準を合わせて追尾可能な状態を意味する。
【0067】
プレイヤオブジェクト102から発射されたミサイルがターゲットオブジェトに命中すると、当該ターゲットオブジェクトは爆発し、3次元ゲーム空間から消滅する。一方、プレイヤオブジェクト102から発射されたミサイルがターゲットオブジェクトに命中しなければ、そのままターゲットオブジェクトは逃げ去ったり、プレイヤオブジェクト102に攻撃したりする。
【0068】
通常、このような仮想ゲームでは、Xボタン22fがオン(操作)される毎に、ターゲットオブジェクトが優先順位に従って順番に切り替えられる。つまり、ターゲットオブジェクトとして選択された状態(選択状態)が優先順位に従って切り替えられる。図示は省略するが、このとき、図3に示したゲーム画面200において、カーソル204が優先順位に従って選択されたターゲットオブジェクト(敵オブジェクト202)を指示するように表示を更新される。
【0069】
ここで、優先順位は、ターゲットオブジェクトの選択状態を切り替える順番を意味する。この実施例では、Xボタン22fがオンされる毎に、優先順位が1位から順に4位まで切り替えられ、優先順位が4位のターゲットオブジェクトを選択している状態で、Xボタン22fがオンされると、優先順位が1位のターゲットオブジェクトが選択される。つまり、最初(1位)のターゲットオブジェクトに選択状態が戻る。
【0070】
また、この実施例では、優先順位は、プレイヤオブジェクト102の位置を中心に決定される領域(後述する「判定領域」)の順位に応じて決定される。ただし、同じ順位の領域に存在する敵オブジェクト202については、プレイヤオブジェクト102からの距離(または角度)が近い方の敵オブジェクト202の優先順位が高く決定される。ここで、プレイヤオブジェクト102と敵オブジェクト202との距離は数1に従って算出される。ただし、プレイヤオブジェクト102の現在位置の座標を(X1,Y1,Z1)とし、敵オブジェクト202の現在位置の座標を(X2,Y2,Z2)としてある。
【0071】
[数1]
距離=√{(X1−X2)2+(Y1−Y2)2+(Z1−Z2)2}
さらに、同じ順位の領域内に存在する複数の敵オブジェクト202のそれぞれとプレイヤオブジェクト102との距離が同じ場合には、プレイヤオブジェクト102の進行方向からのずれ(水平方向の(XZ平面における)角度θおよび垂直方向の(YZ平面における)角度α)が小さい方の敵オブジェクト202の優先順位が高くなる。
【0072】
なお、簡単のため、プレイヤオブジェクト102の進行方向のベクトル(移動ベクトル)と、プレイヤオブジェクト102の位置を始点とし敵オブジェクト202の位置を終点とするベクトルとの角度の大きさ(絶対値)を、プレイヤオブジェクト102の進行方向からのずれとして算出するようにしてもよい。
【0073】
具体的には、図6およびこの図6の一部拡大図である図7(A)に示すように、判定領域は、プレイヤオブジェクト102を中心とする水平面上の4つの同心円と、プレイヤオブジェクト102の視界の範囲を示す直線およびその視界の範囲を所定の角度で区切った直線と、3次元ゲーム空間の水平方向の範囲(水平面)を一定の大きさで仕切る四角形の枠とを用いて設定される。この実施例では、4つの同心円の半径は、それぞれ、3次元ゲーム空間におけるスケールで、3000m,6000m,12000mおよび20000mである。また、プレイヤオブジェクト102の視界の範囲はその進行方向を0°とした場合に、左右30°ずつである。そして、この視界の範囲をプレイヤオブジェクト102の進行方向を0°とした場合に、左右16°ずつで区切って、プレイヤオブジェクト102の進行方向からのずれの大きさに優劣を付けるようにしてある。図示は省略するが、たとえば、3次元ゲーム空間の水平面を仕切る四角形は、15000m×14000mの大きさである。
【0074】
図6および図7(A)からも分かるように、この実施例では、判定領域は16個の領域(閉領域)に分割され、各領域には番号が付されている。この番号は、各領域を識別する識別情報であるとともに、その数値の大きさが領域の順位(優先度)を示してある。この領域の順位に従って敵オブジェクト202の優先順位が決定される。ただし、図6および図7(A)の上方がプレイヤオブジェクト102の進行方向である。
【0075】
この実施例では、判定領域が決定されると、各領域の番号は固定的に決定される。各領域の番号の決定方法は、次の3つの条件に従っている。1つ目の条件としては、プレイヤオブジェクト102の前方(進行方向)の領域は後方の領域も順位が高い。2つ目の条件としては、プレイヤオブジェクト102との距離が近い領域はより順位が高い。3つ目の条件としては、プレイヤオブジェクト102の進行方向に対する水平方向の角度が小さい領域はより順位が高い。
【0076】
なお、この実施例では、プレイヤオブジェクト102が敵オブジェクト202を追尾したり、攻撃したりする難易度を重視して、判別領域を設定したり、上記のような条件に従って各領域の番号を決定するようにしてある。ただし、判定領域の設定方法や領域の番号の決定の仕方はこの実施例の方法に限定される必要はなく、ゲームプログラマや開発者が任意に設定することができる。
【0077】
また、この実施例では、判定領域の各領域の番号(順位)を固定的に決定するようにしてあるが、ゲームの種類や難易度、或いは3次元ゲーム空間に出現する敵オブジェクト202の種類によっては、任意に決定するようにしてもよい。
【0078】
図7(B)は、3次元ゲーム空間を横方向(X軸方向)から見た図であり、プレイヤオブジェクト102の上下方向における視界の範囲を示す。この実施例では、進行方向を0°とした場合に、上下30°の範囲がプレイヤオブジェクト102の視界の範囲である。この図7(B)から分かるように、地上オブジェクトの水平方向の位置がプレイヤオブジェクト102に近い場合には、地上オブジェクトはプレイヤオブジェクト102からの死角になってしまう。このため、優先順位を決定する場合には、地上オブジェクトについては、上下方向の角度は考慮しないようにしてある。
【0079】
なお、この実施例では、簡単のため、上下方向については、角度のみを検出するようにしてあるが、水平方向と同様に、上下方向についても複数の領域に分割して、領域毎の順位に従って優先順位を決定するようにしてもよい。
【0080】
従来では、たとえば、ターゲットオブジェクトの選択中に、もう一度最初に選択したターゲットオブジェクト(敵オブジェクト202)や既に選択し終わった敵オブジェクト202を選択し直したい場合には、Xボタン22fを繰返し操作する必要があった。これでは、操作が大変面倒であり、特に敵オブジェクト202の数が多い場合には、操作性が悪く、ゲーム自体への興味の減退を招来しかねない。
【0081】
そこで、この実施例では、簡単な操作で、優先順位が最も高い敵オブジェクト202を選択するようにして、操作性を向上させるようにしてある。
【0082】
具体的には、一定時間(この実施例では、60フレーム)以上Xボタン22fを押し続けた場合には、現在のターゲットオブジェクトの優先順位に拘わらず、優先順位が最も高い敵オブジェクト202をターゲットオブジェクトとして選択するようにしてある。したがって、最初に選択した敵オブジェクト202や既に選択し終わった敵オブジェクト202を選択し直す場合に、簡単な操作で選択することができるのである。
【0083】
図8は図2に示したRAM42のメモリマップを示す図解図である。この図8を参照して、RAM42は、プログラム記憶領域70およびデータ記憶領域72を含む。プログラム記憶領域70はゲームプログラムを記憶し、ゲームプログラムは、ゲームメイン処理プログラム70a、画像生成プログラム70b、画像表示プログラム70c、優先順位設定プログラム70d、変更操作判別プログラム70eおよびターゲット切替プログラム70fなどによって構成される。
【0084】
ゲームメイン処理プログラム70aは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム70bは、後述する画像データ72bを用いてゲーム画像(ゲーム画面)を生成するためのプログラムである。画像表示プログラム70cは、ゲーム画像生成プログラム70bに従って生成されたゲーム画像を表示装置(LCD12,LCD14)に表示(更新)するためのプログラムである。
【0085】
優先順位設定プログラム70dは、後述する最優先指示が入力された場合や所定時間が経過する毎に、敵オブジェクト202の優先順位を設定し、設定した結果(後述する優先順位データ)を当該敵オブジェクト202に対応づけてデータ記憶領域72に記憶するためのプログラムである。ただし、この実施例では、優先順位は1位から4位までしか必要ないため、5位以下の敵オブジェクト202に関しては優先順位データを記憶する必要はない。なお、他の実施例では、必要とする優先順位の数を変更してもよいし、すべての敵オブジェクト202について優先順位データを記憶するようにしてもよい。
【0086】
優先順位を設定する場合には、まず、図6に示したような判定領域がプレイヤオブジェクト102の現在位置および進行方向に応じて設定される。次に、敵オブジェクト202の現在位置に応じて各敵オブジェクト202がいずれの領域に存在するかが判別される。そして、各敵オブジェクト202が存在する領域の番号に従って、各敵オブジェクト202の優先順位が判定される。ただし、同じ番号(優先順位)の領域に存在する敵オブジェクト202が複数存在する場合には、プレイヤオブジェクト102との距離に応じて優先順位が決定される。さらに、距離も同じである場合には、プレイヤオブジェクト102の進行方向とのずれ(角度)に応じて優先順位が決定される。たとえば、この実施例では、プレイヤオブジェクト102の進行方向とのずれは、水平方向の角度θの大きさ(絶対値)と垂直方向の角度αの大きさとの和で算出される。角度の大きさは単純に加算してもよいし、いずれか一方の角度を重視するように重み付けをしてもよい。また、敵オブジェクト202の種類に応じて、いずれか一方の角度のみを考慮するようにしてもよい。
【0087】
変更操作判別プログラム70eは、プレイヤの操作(指示)が優先順位に従って順次ターゲットオブジェクトを切り替える指示(順次切替指示)であるか、優先順位に従わずに最も優先順位の高いターゲットオブジェクトに切り替える指示(最優先指示)であるかを判別するためのプログラムである。この実施例では、プレイヤがXボタン22fを押し続けている時間(継続時間)をカウントし、その継続時間が一定時間(60フレーム)を越えるか否かに応じて、順次切替指示であるか最優先指示であるかを判別する。この実施例では、プレイヤがXボタン22fを一定時間以上押し続けた場合には、最優先指示であることが判別され、一定時間未満である場合には、順次切替指示であることが判別される。
【0088】
ターゲット切替プログラム70fは、プレイヤの指示に従ってターゲットオブジェクトを切り替えるためのプログラムである。ただし、変更操作判別プログラム70eに従って順次切替指示が判別された場合には、ターゲット切替プログラム70fは、優先順位が次のターゲットオブジェクトに選択状態を切り替える。一方、変更操作判別プログラム70eに従って最優先指示が判別された場合には、ターゲット切替プログラム70fは、優先順位に従わずに最も優先順位の高いターゲットオブジェクトに選択状態を切り替える。ただし、ターゲットオブジェクトを切り替える前に、既に最も優先順位の高いターゲットオブジェクトが選択されている場合には、そのまま選択状態が維持される。
【0089】
なお、図示は省略するが、ゲームプログラムは、ゲーム音出力プログラムおよびバックアッププログラムも含む。ゲーム音出力プログラムは、音(音楽)データを用いて、ゲームに必要な音を出力するためのプログラムである。バックアッププログラムは、プレイヤの指示やゲームイベントに従って、RAM42に記憶されているゲームデータ(途中データ,結果データ)をメモリカード28(RAM28b)にセーブするためのプログラムである。
【0090】
図9は図8に示したデータ記憶領域72の具体的な内容を示す図解図である。データ記憶領域72には、操作データバッファ72aが設けられる。また、データ記憶領域72には、画像データ72b、プレイヤオブジェクトデータ72cおよび敵オブジェクトデータ72dが記憶される。さらに、データ記憶領域72には、変更間隔カウンタ72eおよび継続時間カウンタ72fが設けられるとともに、ボタンフラグ72g、順次切替フラグ72hおよび最優先フラグ72iが設けられる。
【0091】
操作データバッファ72aは、操作スイッチ22からの操作データを一時記憶するためのバッファであり、また、タッチパネル24からの座標データ(操作データ)も一時記憶する。画像データ72bは、プレイヤオブジェクト102、敵オブジェクト202、背景オブジェクトなどを含むゲーム画像を生成するためのデータ(ポリゴンやテクスチャなどのデータ)である。
【0092】
プレイヤオブジェクトデータ72cは、プレイヤオブジェクト102に関するデータである。このプレイヤオブジェクトデータ72cは、プレイヤオブジェクト102の動作パラメータ80および位置データ82を含む。動作パラメータ80は、プレイヤオブジェクト102の進行方向および移動速度に関するデータである。つまり、動作パラメータ80は、プレイヤオブジェクト102の移動に関するベクトルのデータである。位置データ82は、3次元ゲーム空間におけるプレイヤオブジェクト102の現在位置のデータであり、3次元の座標データで表わされる。プレイヤオブジェクトデータ72c(動作パラメータ80および位置データ82)は、プレイヤオブジェクト102を3次元ゲーム空間に配置(描画)するために用いられたり、判定領域を決定する際に用いられたりする。
【0093】
敵オブジェクトデータ72dは、敵オブジェクト102に関するデータであり、図9からも分かるように、敵オブジェクト102毎に記憶される。この実施例では、第1オブジェクトデータ90、第2オブジェクトデータ92,…,第nオブジェクトデータ9nが記憶される。第1オブジェクトデータ90は、動作パラメータ90a、位置データ90bおよび優先順位データ90cを含む。動作パラメータ90aは、敵オブジェクト202の移動に関するベクトル(進行方向および移動速度)のデータである。位置データ90bは、3次元ゲーム空間における敵オブジェクト202の現在位置のデータであり、3次元の座標データで表わされる。優先順位データ90cは、優先順位設定プログラム70dに従って判定された優先順位を示す番号のデータ(数値データ)である。したがって、優先順位が判定される毎に、優先順位データ90cは更新される。ただし、上述したように、この実施例では、優先順位は1位から4位までしか必要ないため、5位以下の敵オブジェクト202に対応する敵オブジェクトデータ(90,92,…,92n)については、優先順位データが記述されない。
【0094】
なお、図示および詳細な説明は省略するが、第2オブジェクトデータ92,…,第nオブジェクトデータ9nについても、第1オブジェクトデータ90と同様である。
【0095】
変更間隔カウンタ72eは、優先順位を変更(再設定)する時間間隔(変更間隔)をカウントするためのカウンタである。この実施例では、変更間隔は、変更操作指示を判別するための一定時間よりも短い一定時間(たとえば、40フレーム)に設定される。継続時間カウンタ72fは、プレイヤが所定のボタン(この実施例では、Xボタン22f)を操作(オン)している継続時間をカウントするためのカウンタである。
【0096】
ボタンフラグ72gは、上記所定のボタンすなわちXボタン22fがオンされているか否かを判別するためのフラグである。たとえば、ボタンフラグ72gは、1ビットのレジスタで構成される。ボタンフラグ72gが成立(オン)されると、レジスタにはデータ値「1」が設定され、ボタンフラグ72gが不成立(オフ)されると、レジスタにはデータ値「0」が設定される。この実施例では、Xボタン22fがオンされている場合に、ボタンフラグ72gはオンされ、Xボタン22fがオフされている場合に、ボタンフラグ72gはオフされる。
【0097】
順次切替フラグ72hは、優先順位に従ってターゲットオブジェクトを順次切り替えるか否かを判別するためのフラグである。この順次切替フラグ72hもまた、1ビットのレジスタで構成される。順次切替フラグ72hがオンされると、レジスタにはデータ値「1」が設定され、順次切替フラグ72hがオフされると、レジスタにはデータ値「0」が設定される。この実施例では、順次切替指示が判別された場合に、順次切替フラグ72hはオンされ、最優先指示が判別された場合に、順次切替フラグ72hはオフされる。
【0098】
最優先フラグ72iは、優先順位に従わずにターゲットオブジェクトを優先順位の最も高いターゲットオブジェクトに切り替えるか否かを判別するためのフラグである。この最優先フラグ72iもまた、1ビットのレジスタで構成される。最優先フラグ72iがオンされると、レジスタにはデータ値「1」が設定され、最優先フラグ72iがオフされると、レジスタにはデータ値「0」が設定される。この実施例では、最優先指示が判別された場合に、最優先フラグ72iはオンされ、順次切替支持が判別された場合に、最優先フラグ72iはオフされる。
【0099】
図示は省略するが、データ記憶領域72には、音(音楽)データのような他のデータが記憶されるとともに、ゲームの進行に必要な他のカウンタやフラグも設けられる。
【0100】
具体的には、図2に示したCPUコア34が図10に示す全体処理を実行する。図10に示すように、全体処理を開始すると、ステップS1で、初期設定を実行する。たとえば、ゲームを始めから開始する場合には、各種フラグ、レジスタおよびカウンタに初期値が設定される。また、データ記憶領域72のバッファ領域(操作データバッファ72aなど)がクリアされる。ただし、前回の続きからゲームを開始する場合には、メモリカード28にセーブしておいたゲームデータに従って各種フラグおよびレジスタの値が設定される。ただし、いずれの場合であっても、ステップS1では、変更間隔カウンタ72eおよび継続時間カウンタ72fのカウント値は「0」に設定される。
【0101】
続くステップS3では、後述する優先順位設定処理(図11−図12参照)を実行する。次のステップS5では、優先順位が1番の敵機(敵オブジェクト202)をターゲットオブジェクトとして設定する。このとき、LCD14に表示されるゲーム画面200では、ターゲットオブジェクトに設定された敵オブジェクト202に対応する図形がカーソルないし指示画像で指示される。
【0102】
続いて、ステップS7では、変更間隔カウンタ72eをインクリメントする。つまり、カウント値を1(フレーム)加算する。次のステップS9では、後述する変更操作判別処理(図13参照)を実行し、ステップS11では、後述するターゲット切替処理(図14および図15参照)を実行する。次いで、ステップS13では、ゲームプログラムおよびプレイヤの操作に基づいてゲーム進行処理を実行する。ここでは、プレイヤの操作に応じてプレイヤオブジェクト102を移動させたり、プレイヤオブジェクト102からミサイルを発射させたりする。また、ゲームプログラムに従って敵オブジェクト202を移動させたり、プレイヤオブジェクト102目掛けてミサイルを発射させたりする。このとき、ゲーム画面100およびゲーム画面200も更新される。
【0103】
そして、ステップS15では、ゲーム終了かどうかを判断する。たとえば、プレイヤによってゲーム終了が指示されたり、ゲームオーバになったりしたかどうかを判断する。ステップS15で“NO”であれば、つまりゲーム終了でなければ、そのままステップS7に戻る。一方、ステップS15で“YES”であれば、つまりゲーム終了であれば、そのまま全体処理を終了する。
【0104】
なお、ステップS7−S15のスキャンタイムは、1フレームであり、したがって、変更間隔カウンタ72eは1フレーム毎にインクリメントされる。
【0105】
図11および図12は、図10に示したステップS3の優先順位設定処理のフロー図である。図11に示すように、CPUコア34は優先順位設定処理を開始すると、ステップS31で、自機の位置座標および進行方向情報を取得する。つまり、CPUコア34は、データ記憶領域72のプレイヤオブジェクトデータ72cに含まれる動作パラメータ80および位置データ82を参照して、現在位置の位置座標および進行方向情報を取得する。
【0106】
続くステップS33では、取得した位置座標と進行方向情報とに基づいてゲーム空間を16の領域に分割する。つまり、プレイヤオブジェクト102を中心とする判定領域が設定される。次のステップS35では、16の領域に所定の規則に基づいて順位をつける。この実施例では、図6および図7(A)に示したように、各領域の番号が決定される。つまり、プレイヤオブジェクト102との距離が短く、プレイヤオブジェクト102の進行方向とのずれが小さい領域の番号が小さく(順位が高く)設定される。
【0107】
続いて、ステップS37では、領域の番号を示す変数mおよび優先順位を示す変数nの初期値を設定する(m=1,n=1)。図12に示すように、次のステップS39では、領域m内に敵機が存在するかどうかを判断する。ここでは、領域mに位置座標(XZ座標のみ)が含まれる敵オブジェクト202が存在するかどうかを判断する。ステップS39で“NO”であれば、つまり領域m内に敵機が存在しなければ、そのままステップS59に進む。一方、ステップS39で“YES”であれば、つまり領域m内に敵機が存在すれば、ステップS41で、当該領域mに複数の敵機が存在するかどうかを判断する。
【0108】
ステップS41で“NO”であれば、つまり当該領域mに敵機が一機存在する場合には、ステップS43で、当該敵機に優先順位nを設定して、ステップS53に進む。一方、ステップS41で“YES”であれば、つまり当該領域mに複数の敵機が存在すれば、ステップS45で、自機と複数の敵機とのそれぞれの距離を数1に従って算出する。そして、ステップS47で、距離が最も小さい敵機に優先順位nを設定し、ステップS49で、変数nを1加算する(n=n+1)。次のステップS51では、次に距離が小さい敵機に優先順位nを設定する。
【0109】
続いて、ステップS53では、変数nが4であるかどうかを判断する。つまり、1〜4位までの優先順位が敵機に付けられたかどうかを判断する。ステップS53で“YES”であれば、つまり変数nが4であれば、優先順位nの設定を終了したと判断して、図10に示した全体処理にリターンする。
【0110】
しかし、ステップS53で“NO”であれば、つまり変数nが4未満であれば、ステップS55で、領域m内のすべての敵機について優先順位nを設定したかどうかを判断する。ステップS55で“NO”であれば、つまり領域m内において優先順位nを付していない敵機が存在すれば、そのままステップS49に戻る。一方、ステップS55で“YES”であれば、つまり領域m内のすべての敵機に優先順位を設定すれば、ステップS57で、変数nを1加算して、ステップS59に進む。
【0111】
ステップS59では、変数mが16かどうかを判断する。つまり、すべての領域mについて敵機が存在するか否かを調べたかどうかを判断する。ステップS59で“YES”であれば、つまり変数mが16であれば、すべての領域mについて敵機が存在するか否かを調べたと判断して、全体処理にリターンする。一方、ステップS59で“NO”であれば、つまり変数mが16未満であれば、ステップS61で変数mを1加算して(m=m+1)、ステップS39に戻る。
【0112】
図13は図10に示したステップS9の変更操作判別処理のフロー図である。図13に示すように、CPUコア34は変更操作判別処理を開始すると、ステップS81で、ターゲット変更ボタンが押されたかどうかを判断する。この実施例では、CPUコア34は、データ記憶領域72の操作データバッファ72aを参照して、Xボタン22fが操作されたかどうかを判断する。
【0113】
ステップS81で“NO”であれば、つまりターゲット変更ボタンが押されていなければ、ステップS83で、ボタンフラグ72gをオフし、ステップS85で、継続時間カウンタ72fをリセットして、図10に示した全体処理にリターンする。一方、ステップS81で“YES”であれば、つまりターゲット変更ボタンが押されていれば、ステップS87で、ボタンフラグ72gがオンであるかどうかを判断する。つまり、ターゲット変更ボタン(Xボタン22f)が押し続けられているかどうかを判断するのである。
【0114】
ステップS87で“YES”であれば、ボタンフラグ72jがオンであれば、ターゲット変更ボタンが押し続けられていると判断して、そのままステップS93に進む。一方、ステップS87で“NO”であれば、つまりボタンフラグ72jがオフであれば、今回ターゲット変更ボタンが押されたと判断して、ステップS89で、ボタンフラグ72jをオンし、ステップS91で、順次切替フラグ72hをオンして、ステップS93に進む。
【0115】
ステップS93では、継続時間カウンタ72fをインクリメントする。上述したように、ステップS7−S15のスキャンタイムは1フレームであるため、ターゲット変更ボタンが押しつづけられている場合には、継続時間カウンタ72fは1フレームずつ加算される。
【0116】
続くステップS95では、継続時間カウンタ72fのカウント値が60フレーム以上であるかどうかを判断する。つまり、ターゲット変更ボタンが一定時間以上押し続けられたかどうかを判断する。ステップS95で“NO”であれば、つまり継続時間カウンタ72fのカウント値が60フレーム未満であれば、そのまま全体処理にリターンする。一方、ステップS95で“YES”であれば、つまり継続時間カウンタ72fのカウント値が60フレーム以上であれば、ステップS97で、最優先フラグ72iをオンし、ステップS99で、順次切替フラグ72hをオフして、全体処理にリターンする。
【0117】
図14および図15は、図10に示したステップS11のターゲット切替処理のフロー図である。図14に示すように、CPUコア34はターゲット切替処理を開始すると、ステップS111で、最優先フラグ72iがオンかどうかを判断する。ステップS111で“YES”であれば、つまり最優先フラグ72iがオンであれば、最優先切替指示であると判断し、ステップS113で、最優先フラグ72iをオフし、ステップS115で、上述した優先順位設定処理を実行し、ステップS117で、優先順位が1位の敵機をターゲットオブジェクトとして設定し、ステップS119で、変更間隔カウンタ72eをリセットして、図10に示した全体処理にリターンする。
【0118】
なお、ステップS117の処理は図10に示したステップS5の処理と同じであるため、重複する説明は省略することにする。
【0119】
一方、ステップS111で“NO”であれば、つまり最優先フラグ72iがオフであれば、ステップS121で順次切替フラグ72hがオンであるかどうかを判断する。ステップS121で“NO”であれば、つまり順次切替フラグ72hがオフであれば、ターゲット変更操作がされていないと判断して、図15に示すステップS131で、現ターゲットの敵機が消滅したかどうかを判断する。つまり、たとえば、ターゲットオブジェクトが、プレイヤオブジェクト102の攻撃や自身の移動により3次元ゲーム空間から消滅したかどうかを判断する。
【0120】
ステップS131で“NO”であれば、つまり現ターゲットの敵機が消滅していなければ、そのまま図10に示した全体処理にリターンする。一方、ステップS131で“YES”であれば、つまり現ターゲットの敵機が消滅すれば、図14に示したステップS115に進む。つまり、優先順位を設定し、優先順位が1位の敵オブジェクト202をターゲットオブジェクトに設定する。
【0121】
図14に戻って、ステップS121で“YES”であれば、つまり順次切替フラグ72hがオンであれば、順次切替指示であると判断して、ステップS123で、順次切替フラグ72hをオフした後、ステップS125で、変更間隔カウンタ72eのカウント値が40フレーム以上であるかどうかを判断する。ステップS125で“NO”であれば、つまり変更間隔カウンタ72eのカウント値が40フレーム未満である場合には、ステップS127で、現ターゲットの優先順位が4位であるかどうかを判断する。ここでは、CPUコア34は、現ターゲットの敵オブジェクト202の敵オブジェクトデータ(90,92,…,9n)を参照して、その優先順位が4位であるかどうかを判断するのである。
【0122】
ステップS127で“YES”であれば、つまり現ターゲットの優先順位が4位である場合には、優先順位が1位の敵オブジェクト202をターゲットオブジェクトとして選択すべく、ステップS117に進む。一方、ステップS127で“NO”であれば、つまり現ターゲットの優先順位が4位でなければ、ステップS129で、優先順位が次の順位の敵オブジェクト202をターゲットオブジェクトとして選択して、ステップS119に進む。
【0123】
また、ステップS125で“YES”であれば、つまり変更間隔カウンタ72eのカウント値が40フレーム以上であれば、優先順位を再設定すると判断して、図15に示すステップS133で、上述したターゲット優先順位設定処理を実行する。そして、ステップS135で、現ターゲットの変更後の優先順位が1位であるかどうかを判断する。ステップS135で“NO”であれば、つまり現ターゲットの変更後の順位が1位でなければ、図14に示したステップS117に進む。一方、ステップS135で“YES”であれば、つまり現ターゲットの変更後の順位が1位であれば、ステップS137で、優先順位が2位の敵オブジェクト202をターゲットオブジェクトとして設定して、図14に示したステップS119に進む。このように、プレイヤが順次切替指示をしたときには、必ずターゲットが他の敵オブジェクト202に切り替えられる。これにより、順次切替指示をしたにも拘わらず、ターゲットが切り替わらないといった不都合を防ぐことができ、操作がゲームに反映されないといったストレスをプレイヤに与えないようにすることができる。
【0124】
この実施例によれば、ターゲット変更ボタンを押す毎に、優先順位に従ってターゲットの敵オブジェクトの選択状態を順次変更し、ターゲット変更ボタンを一定時間以上押し続けた場合には、優先順位に従わずに優先順位が1位の敵オブジェクトをターゲットとして選択するので、既に選択し終わった敵オブジェクトや最初の敵オブジェクトを簡単な操作で選択し直すことができる。したがって、ゲームの操作性を損なうことがない。
【0125】
なお、この実施例では、1つの操作ボタンを用いて、順次切替指示または最優先切替指示を入力するようにしたが、異なる操作ボタンを用いるようにしてもよい。たとえば、Xボタン22fを押す毎にターゲットオブジェクトの選択が順次切り替わり、Yボタン22gを一定時間以上押し続けた場合に優先順位が1位の敵オブジェクトをターゲットオブジェクトとして選択するようにしてもよい。このように、一定時間以上押し続けるようにするのは、ボタンの単なる押し間違えにより、優先順位が1位の敵オブジェクトをターゲットオブジェクトとして選択してしまうのを防止するためである。したがって、たとえば、1のボタンを一定時間以上押し続ける操作に代えて、複数のボタンを連続的に操作した場合に、優先順位が1位の敵オブジェクトをターゲットオブジェクトとして選択するようにしてもよい。
【0126】
また、操作ボタンに代えて、ゲーム画面200に、「ターゲット切替ボタン」を表示させ、タッチペン等で「ターゲット切替ボタン」を一定時間以上接触し続けたか否かをタッチパネル24からの検出信号に基づいて判別してターゲットの順次切替または最優先切替を行うようにしてもよい。
【0127】
また、この実施例では、ポインティングデバイスとして、タッチパネルを用いるようにしたが、ペンタブレット、タッチパッド、コンピュータマウスのような他のポインティングデバイスを用いることも可能である。当然のことながら、従来の操作スイッチを用いることも可能である。ただし、他のポインティングデバイスや操作スイッチを用いる場合には、画面上の指示位置を示すためのマウスポインタのような指示画像を表示する必要がある。
【0128】
さらに、ゲーム装置の構成は、上述の実施例の構成に限定されるべきでない。たとえば、LCDは1つでもよく、タッチパネルは2つのLCDのそれぞれに設けるようにしてもよい。
【0129】
他の実施例のゲーム装置10は、順次切替指示がある度に、最新の優先順位に従ってターゲットオブジェクトの選択状態を切り替えるようにした以外は上述の実施例と同じであるため、重複した説明は省略することにする。したがって、上述の実施例において、変更間隔カウンタ72eを省略することができる。
【0130】
具体的には、他の実施例のターゲット切替処理は、図16および図17のフロー図で示される。この他の実施例のターゲット切替処理は、上述の実施例のターゲット切替処理の一部を変更しただけであるため、同じステップについては同じ参照符号を付けてある。また、同じ処理についての重複した説明は割愛することにする。
【0131】
図16に示すように、この他の実施例のターゲット切替処理では、順次切替フラグ72hがオンである場合、ステップS121で“YES”となり、ステップS123で順次切替フラグをオフすると、後述する順次切替処理(図18−図20)を実行する。そして、順次切替処理の結果、ステップS203で、最優先切替フラグがオンであるかどうかを判断する。ここで、最優先切替フラグは、優先順位が1位の敵オブジェクト202をターゲットオブジェクトに設定するか否かを判断するためのフラグである。この最優先切替フラグもまた、1ビットのレジスタでデータ記憶領域72に構成される。最優先切替フラグがオンされると、レジスタにはデータ値「1」が設定され、最優先切替フラグがオフされると、レジスタにはデータ値「0」が設定される。最優先切替フラグがオンである場合には、ステップS203で“YES”となり、ステップS117に進む。一方、最優先切替フラグがオフである場合には、優先順位が次の順位の敵オブジェクト202をターゲットオブジェクトにするべく、ステップS129に進む。
【0132】
図18に示すように、CPUコア34は順次切替処理を開始すると、ステップS151で、現在のターゲットの敵オブジェクト202の領域の番号を検出する。続くステップS153では、次のターゲットの敵オブジェクト202の候補を検出する。つまり、ステップS151で検出した領域の番号の次の領域の番号を示すエリア内に存在する敵オブジェクト202が検出される。ただし、現在のターゲットの敵オブジェクト202の領域の番号の次の領域の番号が示すエリア内に敵オブジェクト202が存在しない場合には、さらに次の領域の番号が示すエリア内の敵オブジェクト202が検出される。次のターゲットの敵オブジェクト202の候補が検出されるまで、同様の処理が繰り返される。
【0133】
続いて、ステップS155では、1番目の敵オブジェクト202の領域の番号を検出する。なお、ここでの敵オブジェクト202の順番は、全ての敵オブジェクト202をサーチして、次のターゲット候補を決定するためのものであり、任意に設定されたり、データ記憶領域72に記憶されている順番に従って設定されたりするものである。ただし、現在のターゲットの敵オブジェクト202と、次のターゲットの候補とを除く、敵オブジェクト202についてサーチされる。以下、サーチする敵オブジェクト202を当該敵オブジェクト202と呼ぶことにする。
【0134】
図19に示すように、次のステップS157では、当該敵オブジェクト202の優先順位が現在のターゲットよりも高いかどうかを判断する。つまり、当該敵オブジェクト202の領域の番号が、現在のターゲットの敵オブジェクト202の領域の番号よりも小さいかどうかを判断する。ただし、当該敵オブジェクト202の領域の番号と、現在のターゲットの敵オブジェクト202の領域の番号とが同じ場合には、プレイヤオブジェクト102と当該敵オブジェクト202との距離(説明の都合上、「第1距離」という。)が、プレイヤオブジェクト102と現在のターゲットの敵オブジェクト202との距離(説明の都合上、「第2距離」という。)よりも短いかどうかを判断する。なお、この距離の判断は行わないようにしても良い。
【0135】
ステップS157で“YES”であれば、つまり当該敵オブジェクト202の優先順位が現在のターゲットよりも高い場合には、図20に示すステップS171に進む。一方、ステップS157で“NO”であれば、つまり現在のターゲットよりも優先順位が高くない場合には、ステップS159で、当該敵オブジェクト202の優先順位が現在のターゲットと同じであるかどうかを判断する。ここでは、第1距離と第2距離とが一致するかどうかを判断する。
【0136】
ステップS159で“YES”であれば、つまり当該敵オブジェクト202の優先順位が現在のターゲットと同じであれば、ステップS161で、当該敵オブジェクト202についての角度の優先度が現在のターゲットよりも高いかどうかを判断する。つまり、プレイヤオブジェクト102の進行方向からのずれ(この実施例では、θ+α)が小さいかどうかを判断する。ステップS161で“YES”であれば、つまり当該敵オブジェクト202についての角度の優先度が現在のターゲットよりも高い場合には、そのままステップS171に進む。一方、ステップS161で“NO”であれば、つまり当該敵オブジェクト202についての角度の優先度が現在のターゲットよりも低い場合には、図20に示すステップS175にそのまま進む。
【0137】
一方、ステップS159で“NO”であれば、つまり当該敵オブジェクト202の優先順位が現在のターゲットと同じでなければ、当該敵オブジェクト202の優先順位が現在のターゲットよりも低いと判断して、ステップS163で、当該敵オブジェクト202の優先順位が次のターゲット候補よりも高いかどうかを判断する。この判断手法は、ステップS157で説明した場合と同様であるため、重複した説明は省略する。
【0138】
ステップS163で“YES”であれば、つまり当該敵オブジェクト202の優先順位が次のターゲット候補よりも高い場合には、そのままステップS169に進む。一方、ステップS163で“NO”であれば、つまり当該敵オブジェクト202の優先順位が次のターゲット候補よりも高くない場合には、ステップS165で、当該敵オブジェクト202の優先順位が次のターゲット候補と同じであるかどうかを判断する。
【0139】
ステップS165で“NO”であれば、つまり当該敵オブジェクト202の優先順位が次のターゲット候補と同じでなければ、当該敵オブジェクト202の優先順位が次のターゲット候補よりも低いと判断して、そのままステップS175に進む。一方、ステップS165で“YES”であれば、つまり当該敵オブジェクト202の優先順位が次のターゲット候補と同じであれば、ステップS167で、当該敵オブジェクト202の角度の優先度が次のターゲット候補よりも高いかどうかを判断する。ステップS167で“NO”であれば、つまり当該敵オブジェクト202の角度の優先度が次のターゲット候補よりも高くなければ、そのままステップS175に進む。一方、ステップS167で“YES”であれば、つまり当該敵オブジェクト202の角度の優先度が次のターゲット候補よりも高ければ、ステップS169で、当該敵オブジェクト202を次のターゲット候補に更新して、ステップS175に進む。
【0140】
図20に示すように、ステップS171では、現在のターゲットの優先順位よりも高い優先順位の敵オブジェクト202が3つ以上あるかどうかを判断する。ステップS171で“NO”であれば、つまり現在のターゲットの優先順位よりも高い優先順位の敵オブジェクト202が3つ未満であれば、ステップS175に進む。一方、ステップS171で“YES”であれば、現在のターゲットの優先順位よりも高い優先順位の敵オブジェクト202が3つ以上あれば、現在のターゲットの優先順位は4位以下であると判断して、ステップS173で、最優先切替フラグをオンして、ターゲット切替処理にリターンする。
【0141】
また、ステップS175では、すべての敵オブジェクト202についてサーチを終了したかどうかを判断する。ステップS175で“NO”であれば、つまりすべての敵オブジェクト202についてサーチを終了していなければ、ステップS177で、次の敵オブジェクト202の領域の番号を検出して、図19に示したステップS157に戻る。一方、ステップS175で“YES”であれば、つまりすべての敵オブジェクト202についてサーチを終了すれば、ステップS179で、次のターゲット候補を見つけたかどうかを判断する。つまり、次に選択すべき敵オブジェクト202が存在するかどうかを判断する。
【0142】
ステップS179で“NO”であれば、つまり次のターゲット候補が見つからなければ、そのままステップS173に進む。一方、ステップS179で“YES”であれば、つまり次のターゲット候補が見つかれば、ステップS181で、最優先切替フラグをオフして、ターゲット切替処理にリターンする。
【0143】
このようにしても、ターゲットオブジェクトの選択状態を順次切り替えることができるのである。また、このようにすれば、プレイヤからの切替指示がある毎に更新される最新の情報に基づいてターゲットオブジェクトの切替選択を実行することができる。
【0144】
他の実施例においても、上述の実施例と同様に、操作性を高くして、ゲームへの興味減退を防止することができる。
【0145】
なお、これらの実施例では、プレイヤオブジェクトの現在の位置および進行方向を基準に判定領域を設定し、現時点における敵オブジェクトの優先順位を設定するようにしたが、これに限定されるべきでない。プレイヤオブジェクトのT(>0)秒後の位置および進行方向を予測して、予測結果に応じて判定領域を設定し、同じくT秒後の敵オブジェクトの位置および進行方向を予想して、優先順位を設定するようにしてもよい。プレイヤオブジェクトのT秒後の位置および進行方向は、プレイヤオブジェクトの動作パラメータを用いた物理計算により簡単に求めることができる。また、敵オブジェクトは、ゲームプログラムに従って移動を制御されるため、T秒後の位置および進行方向は簡単に予測する(知る)ことができる。
【0146】
また、これらの実施例では、判定領域を設定して、敵オブジェクトの優先順位を設定するようにしたが、これに限定される必要はない。上述の実施例のような判定領域は設定せずに、プレイヤオブジェクトの位置および進行方向を基準として、プレイヤオブジェクトと各敵オブジェクトとの距離および進行方向からのずれをそれぞれ算出して、その算出結果に応じて各敵オブジェクトの優先順位を設定するようにしてもよい。
【0147】
また、上述の実施例では、3次元ゲームの例を説明したが、2次元ゲームのものに適用してもよい。
【図面の簡単な説明】
【0148】
【図1】図1はこの発明のゲーム装置の一実施例を示す図解図である。
【図2】図2は図1に示すゲーム装置の電気的な構成を示すブロック図である。
【図3】図3は図1に示すゲーム装置の第1および第2のLCDに表示されるゲーム画面の一例を示す図解図である。
【図4】図4は3次元ゲーム空間におけるプレイヤオブジェクトを示す図解図である。
【図5】図5はプレイヤオブジェクトのヨー角およびピッチ角を説明するための図解図である。
【図6】図6は敵オブジェクトの優先順位を設定するための判定領域を示す図解図である。
【図7】図7は図6に示す判定領域の一部拡大図および3次元ゲーム空間を横方向から見た図解図である。
【図8】図8は図2に示すRAMのメモリマップの一例を示す図解図である。
【図9】図9は図8に示すデータ記憶領域の具体的な内容を示す図解図である。
【図10】図10は図2に示すCPUコアのゲーム全体処理を示すフロー図である。
【図11】図11は図2に示すCPUコアの優先順位設定処理の一部を示すフロー図である。
【図12】図12は図2に示すCPUコアの優先順位設定処理の他の一部であって、図11に後続するフロー図である。
【図13】図13は図2に示すCPUコアの変更操作判別処理を示すフロー図である。
【図14】図14は図2に示すCPUコアのターゲット切替処理の一部を示すフロー図である。
【図15】図15は図2に示すCPUコアのターゲット切替処理の他の一部であって、図14に後続するフロー図である。
【図16】図16は他の実施例のCPUコアのターゲット切替処理の一部を示すフロー図である。
【図17】図17は他の実施例のCPUコアのターゲット切替処理の他の一部であって、図16に後続するフロー図である。
【図18】図18は他の実施例のCPUコアの順次切替処理の一部を示すフロー図である。
【図19】図19は他の実施例のCPUコアの順次切替処理の他の一部であって、図18に後続するフロー図である。
【図20】図20は他の実施例のCPUコアの順次切替処理のその他の一部であって、図19に後続するフロー図である。
【符号の説明】
【0149】
10 …ゲーム装置
12,14 …LCD
16,16a,16b …ハウジング
22 …操作スイッチ
24 …タッチパネル
26 …スティック
28 …メモリカード
28a …ROM
28b,42 …RAM
34 …CPUコア
36a,36b …スピーカ
44,46 …GPU
48 …I/F回路
50 …LCDコントローラ
52,54 …VRAM
【特許請求の範囲】
【請求項1】
標的となる複数のノンプレイヤオブジェクトが配置された仮想ゲーム空間を画面に表示するゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータに、
操作手段から所定の入力がある毎に、前記複数のノンプレイヤオブジェクトから1つのノンプレイヤオブジェクトを順次切り替えて選択するための選択ステップ、
前記複数のノンプレイヤオブジェクトの各々について、前記選択ステップによって選択される順序を設定するノンプレイヤオブジェクト選択順位設定ステップ、および
前記所定の入力がある状態が継続する継続時間を検出する入力状態継続時間検出ステップを実行させ、
前記選択ステップは、前記継続時間が所定値未満のとき、前記ノンプレイヤオブジェクト選択順位設定ステップによって設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する第1選択ステップと、前記継続時間が所定値以上のとき、前記順位の最も高いノンプレイヤオブジェクトに切り替えて選択する第2選択ステップとを含む、ゲームプログラム。
【請求項2】
前記ノンプレイヤオブジェクト選択順位設定ステップは、前記継続時間が所定値以上のとき、前記複数のノンプレイヤオブジェクトの各々について、前記選択ステップによって選択される順序を再設定し、
前記第2選択ステップは、前記再設定された順位の最も高いノンプレイヤオブジェクトに切り替えて選択する、請求項1記載のゲームプログラム。
【請求項3】
前記選択ステップによって切替選択が行われてからの経過時間を検出する経過時間検出ステップを前記コンピュータにさらに実行させ、
前記ノンプレイヤオブジェクト選択順位設定ステップは、前記経過時間が所定値以上のとき、前記複数のノンプレイヤオブジェクトの各々について、前記選択ステップによって選択される順序を再設定し、
前記第1選択ステップは、前記所定の入力がある毎に、前記ノンプレイヤオブジェクト選択順位設定ステップによって再設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する、請求項1または2記載のゲームプログラム。
【請求項4】
前記仮想ゲーム空間におけるプレイヤオブジェクトの位置情報および進行方向を取得するプレイヤオブジェクト情報取得ステップ、
前記位置情報および進行方向と、前記位置情報を基点とした左右の角度および距離とに基づいて、前記仮想ゲーム空間を複数の領域に分割する領域分割ステップ、および
前記領域分割ステップによって分割された領域の各々について、選択順位を設定する領域選択順位設定ステップを前記コンピュータにさらに実行させ、
前記ノンプレイヤオブジェクト選択順位設定ステップは、前記領域選択順位設定ステップによって設定された順位の高い領域に存在するノンプレイヤオブジェクトから順次高い順位を設定する、請求項1ないし3のいずれかに記載のゲームプログラム。
【請求項5】
時間T(T>0)後に前記プレイヤオブジェクトが到達する位置座標および進行方向を予測する予測ステップを前記コンピュータにさらに実行させ、
前記領域分割ステップは、前記予測ステップによって予測された前記位置情報および進行方向と、前記位置情報を基点とした左右の角度および距離とに基づいて、前記仮想ゲーム空間を複数の領域に分割する、請求項4記載のゲームプログラム。
【請求項6】
標的となる複数のノンプレイヤオブジェクトが配置された仮想ゲーム空間を画面に表示するゲーム装置であって、
操作手段から所定の入力がある毎に、前記複数のノンプレイヤオブジェクトから1つのノンプレイヤオブジェクトを順次切り替えて選択するための選択手段、
前記複数のノンプレイヤオブジェクトの各々について、前記選択手段によって選択される順序を設定するノンプレイヤオブジェクト選択順位設定手段、および
前記所定の入力がある状態が継続する継続時間を検出する入力状態継続時間検出手段を備え、
前記選択手段は、前記継続時間が所定値未満のとき、前記ノンプレイヤオブジェクト選択順位設定手段によって設定された順位に従ってノンプレイヤを順次切り替えて選択する第1選択手段と、前記継続時間が所定値以上のとき、前記順位の最も高いノンプレイヤオブジェクトに切り替えて選択する第2選択手段とを含む、ゲーム装置。
【請求項1】
標的となる複数のノンプレイヤオブジェクトが配置された仮想ゲーム空間を画面に表示するゲーム装置のゲームプログラムであって、
前記ゲーム装置のコンピュータに、
操作手段から所定の入力がある毎に、前記複数のノンプレイヤオブジェクトから1つのノンプレイヤオブジェクトを順次切り替えて選択するための選択ステップ、
前記複数のノンプレイヤオブジェクトの各々について、前記選択ステップによって選択される順序を設定するノンプレイヤオブジェクト選択順位設定ステップ、および
前記所定の入力がある状態が継続する継続時間を検出する入力状態継続時間検出ステップを実行させ、
前記選択ステップは、前記継続時間が所定値未満のとき、前記ノンプレイヤオブジェクト選択順位設定ステップによって設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する第1選択ステップと、前記継続時間が所定値以上のとき、前記順位の最も高いノンプレイヤオブジェクトに切り替えて選択する第2選択ステップとを含む、ゲームプログラム。
【請求項2】
前記ノンプレイヤオブジェクト選択順位設定ステップは、前記継続時間が所定値以上のとき、前記複数のノンプレイヤオブジェクトの各々について、前記選択ステップによって選択される順序を再設定し、
前記第2選択ステップは、前記再設定された順位の最も高いノンプレイヤオブジェクトに切り替えて選択する、請求項1記載のゲームプログラム。
【請求項3】
前記選択ステップによって切替選択が行われてからの経過時間を検出する経過時間検出ステップを前記コンピュータにさらに実行させ、
前記ノンプレイヤオブジェクト選択順位設定ステップは、前記経過時間が所定値以上のとき、前記複数のノンプレイヤオブジェクトの各々について、前記選択ステップによって選択される順序を再設定し、
前記第1選択ステップは、前記所定の入力がある毎に、前記ノンプレイヤオブジェクト選択順位設定ステップによって再設定された順位に従ってノンプレイヤオブジェクトを順次切り替えて選択する、請求項1または2記載のゲームプログラム。
【請求項4】
前記仮想ゲーム空間におけるプレイヤオブジェクトの位置情報および進行方向を取得するプレイヤオブジェクト情報取得ステップ、
前記位置情報および進行方向と、前記位置情報を基点とした左右の角度および距離とに基づいて、前記仮想ゲーム空間を複数の領域に分割する領域分割ステップ、および
前記領域分割ステップによって分割された領域の各々について、選択順位を設定する領域選択順位設定ステップを前記コンピュータにさらに実行させ、
前記ノンプレイヤオブジェクト選択順位設定ステップは、前記領域選択順位設定ステップによって設定された順位の高い領域に存在するノンプレイヤオブジェクトから順次高い順位を設定する、請求項1ないし3のいずれかに記載のゲームプログラム。
【請求項5】
時間T(T>0)後に前記プレイヤオブジェクトが到達する位置座標および進行方向を予測する予測ステップを前記コンピュータにさらに実行させ、
前記領域分割ステップは、前記予測ステップによって予測された前記位置情報および進行方向と、前記位置情報を基点とした左右の角度および距離とに基づいて、前記仮想ゲーム空間を複数の領域に分割する、請求項4記載のゲームプログラム。
【請求項6】
標的となる複数のノンプレイヤオブジェクトが配置された仮想ゲーム空間を画面に表示するゲーム装置であって、
操作手段から所定の入力がある毎に、前記複数のノンプレイヤオブジェクトから1つのノンプレイヤオブジェクトを順次切り替えて選択するための選択手段、
前記複数のノンプレイヤオブジェクトの各々について、前記選択手段によって選択される順序を設定するノンプレイヤオブジェクト選択順位設定手段、および
前記所定の入力がある状態が継続する継続時間を検出する入力状態継続時間検出手段を備え、
前記選択手段は、前記継続時間が所定値未満のとき、前記ノンプレイヤオブジェクト選択順位設定手段によって設定された順位に従ってノンプレイヤを順次切り替えて選択する第1選択手段と、前記継続時間が所定値以上のとき、前記順位の最も高いノンプレイヤオブジェクトに切り替えて選択する第2選択手段とを含む、ゲーム装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2008−188322(P2008−188322A)
【公開日】平成20年8月21日(2008.8.21)
【国際特許分類】
【出願番号】特願2007−27575(P2007−27575)
【出願日】平成19年2月7日(2007.2.7)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成20年8月21日(2008.8.21)
【国際特許分類】
【出願日】平成19年2月7日(2007.2.7)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]