説明

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

【構成】 ゲーム装置10はゲーム機12およびゲームカートリッジ14を含む。ゲーム中に、プレイヤがAボタン26またはBボタン28を押すと、プレイヤキャラクタに重力が発生する。このとき、重力圏内に、ノンプレイヤキャラクタが存在すると、操作したボタンに応じて、プレイヤキャラクタに、ノンプレイヤキャラクタからの引力または斥力が働く。これにより、慣性運動するプレイヤキャラクタの移動方向および速度が変化される。
【効果】 引力や斥力を与えてプレイヤキャラクタの移動を制御するので、新しい操作感を得ることができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明はゲームプログラムおよびゲーム装置に関し、特にたとえば、仮想的なゲーム空間を表示手段に表示してゲームプレイする、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【0002】
ゲームコントローラなどの操作によって、移動や移動方向を直接制御するのみならず、或る程度の慣性を受けるオブジェクトないしキャラクタをプレイヤに操作させて、ゲームを進行させるものが知られている。たとえば、非特許文献1のゲームによれば、海の中では、プレイヤキャラクタは下向きの慣性を受けており、何ら操作せずに放置すると、ゆっくりと落下する(沈む)。したがって、プレイヤは、コントローラのボタン操作により、プレイヤキャラクタに浮力を与えて浮上させ、または、操作せずに沈ませて、敵キャラクタを避けたり、アイテムを取得したりしながらゲームステージを進行する。
【非特許文献1】「スーパーマリオブラザーズ 裏技大全集 別巻」 株式会社二見書房発行、昭和61年3月12日 20版発行
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、非特許文献1に開示されたゲームでは、コントローラのボタン操作に応じて、慣性の働く方向とは逆向きに力を加える(移動する)だけであり、自在にプレイヤキャラクタの移動方向を制御して、ゲームプレイを楽しむことができなかった。
【0004】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【0005】
また、この発明の他の目的は、新しい操作感を得ることができる、ゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【0006】
請求項1の発明は、操作手段、記憶手段および表示手段を備えるゲーム装置のゲームプログラムであって、ゲーム装置のプロセサに、操作入力検出ステップ、プレイヤキャラクタ移動表示ステップ、ノンプレイヤキャラクタ表示ステップ、第1移動方向算出ステップ、第2移動方向算出ステップ、およびプレイヤキャラクタ移動ステップを実行させる。操作入力検出ステップは、操作手段の操作に応じて入力される、少なくとも、第1の操作データと、当該第1の操作データとは異なる第2の操作データとを検出する。プレイヤキャラクタ移動表示ステップは、操作データと、記憶手段によって記憶されたプレイヤキャラクタデータに基づいて、慣性運動しているプレイヤキャラクタを表示手段に移動表示する。ノンプレイヤキャラクタ表示ステップは、記憶手段に記憶された複数でありかつ異なる属性をそれぞれ設定されたノンプレイヤキャラクタデータに基づいて、ノンプレイヤキャラクタを表示手段に表示する。第1移動方向算出ステップは、第1の操作データに応じて、プレイヤキャラクタを引力源として働かせ、ノンプレイヤキャラクタとの関係で当該プレイヤキャラクタの移動する第1方向を算出する。第2移動方向算出ステップは、第2の操作データに応じて、プレイヤキャラクタを斥力源として働かせ、ノンプレイヤキャラクタとの関係で当該プレイヤキャラクタの移動する第1方向とは逆の第2方向を算出する。そして、プレイヤキャラクタ移動ステップは、第1移動方向算出ステップによって算出された第1方向または第2移動方向算出ステップによって算出された第2方向に、プレイヤキャラクタを移動させる。
【0007】
請求項1の発明では、ゲームプログラムは、ゲーム装置(10:実施例で相当する参照符号。以下、同じ。)によって実行される。このゲーム装置(10)は、操作手段(26,28),記憶手段(48,60)および表示手段(18)を備える。操作入力検出ステップ(42,S7)は、操作手段(26,28)の操作に応じて入力される第1の操作データと第2の操作データとを検出する。ただし、第1の操作データと第2の操作データとは異なる操作データである。プレイヤキャラクタ移動表示ステップ(42,S3,S5,S13)は、操作データと、記憶手段(48,60)によって記憶されたプレイヤキャラクタデータ(604a,484a)に基づいて、慣性運動しているプレイヤキャラクタを表示手段(18)に移動表示する。なお、後述するように、プレイヤキャラクタは移動方向を変化される場合があるが、かかる場合であっても、慣性運動には変わりない。また、ノンプレイヤキャラクタ表示ステップ(42,S3,S5)は、記憶手段(48,60)に記憶された、複数であり、かつ異なる属性を、それぞれ設定されたノンプレイヤキャラクタデータ(604a,486,488,…)に基づいて、ノンプレイヤキャラクタを表示手段(18)に静止表示する。第1方向算出ステップ(42,S11)は、第1の操作データ(26の操作データ)に応じて、プレイヤキャラクタを引力源として働かせ、ノンプレイヤキャラクタとの関係で、当該プレイヤキャラクタの移動する第1方向を算出する。また、第2方向算出ステップ(42,S11)は、第2の操作データ(28の操作データ)に応じて、プレイヤキャラクタを斥力源として働かせ、ノンプレイヤキャラクタとの関係で、当該プレイヤキャラクタの移動する第2方向を算出する。第1方向と第2方向とは逆方向である。プレイヤキャラクタ移動ステップ(42,S13)は、第1方向または第2方向に、プレイヤキャラクタを移動させる。
【0008】
請求項1の発明によれば、操作手段の操作に応じてノンプレイヤキャラクタによる引力または斥力を受けて変化される移動方向にプレイヤキャラクタを移動させてゲームを進行させることができるので、新しい操作感を得ることができる。
【0009】
請求項2の発明は請求項1に従属し、プレイヤキャラクタといずれか1つのノンプレイヤキャラクタとが所定の位置関係を有し、かつ当該プレイヤキャラクタの第1属性と当該ノンプレイヤキャラクタの第2属性とが所定条件を満たすとき、当該第1属性を更新する第1属性更新ステップをさらに実行させる。
【0010】
請求項2の発明では、第1属性更新ステップ(42,S25)は、プレイヤキャラクタといずれか1つのプレイヤキャラクタとが所定の位置関係を有し(一定距離L以内であり)、かつ当該プレイヤキャラクタの第1属性と、当該ノンプレイヤキャラクタの第2属性とが所定条件を満たすとき、第1属性を更新する。
【0011】
請求項2の発明によれば、所定の位置関係を有するノンプレイヤキャラクタに基づいてプレイヤキャラクタの属性が変化されるので、ゲームの進行に変化を与えることができ、ゲームを楽しむことができる。
【0012】
請求項3の発明は請求項2に従属し、第1属性更新ステップによって更新された第1属性に応じて第2属性を更新する第2属性更新ステップをさらに実行させる。
【0013】
請求項3の発明では、第2属性更新ステップ(42,S27)は、第1更新ステップ(42,S25)によって更新された第1属性に応じて第2属性を更新する。つまり、プレイヤキャラクタの属性が変化すると、ノンプレイヤキャラクタの属性も変化される。
【0014】
請求項3の発明によれば、プレイヤキャラクタの属性変化のみならず、ノンプレイヤキャラクタの属性変化を楽しむことができる。
【0015】
請求項4の発明は請求項2または3に従属し、第1属性は少なくともプレイヤキャラクタの大きさを含み、第2属性は少なくともノンプレイヤキャラクタの大きさを含み、第1属性更新ステップは、プレイヤキャラクタの大きさが、所定の位置関係を有するノンプレイヤキャラクタの大きさ以上であるとき、当該プレイヤキャラクタの大きさを拡大させるように第1属性を更新する。
【0016】
請求項4の発明では、第1属性は少なくともプレイヤキャラクタの大きさを含み、第2属性は少なくともノンプレイヤキャラクタの大きさを含む。第1属性更新ステップ(42,S25)は、プレイヤキャラクタの大きさが、所定の位置関係を有するノンプレイヤキャラクタの大きさ以上であるとき、プレイヤキャラクタの大きさを拡大させる。つまり、プレイヤキャラクタを成長させる。
【0017】
請求項4の発明によれば、プレイヤキャラクタが成長する様子を楽しむことができる。
【0018】
請求項5の発明は請求項4に従属し、第1属性更新ステップがプレイヤキャラクタの大きさを拡大させるとき、当該プレイヤキャラクタと所定の位置関係を有するノンプレイヤキャラクタを消滅させるノンプレイヤキャラクタ消滅ステップをさらに実行させる。
【0019】
請求項5の発明では、ノンプレイヤキャラクタ消滅ステップ(42,S29)は、第1属性更新ステップ(42,S25)がプレイヤキャラクタの大きさを拡大させるとき、つまりプレイヤキャラクタが成長するとき、当該プレイヤキャラクタと所定の位置関係を有するノンプレイヤキャラクタを消滅させる。つまり、表示手段(18)から消去する。
【0020】
請求項5の発明によれば、プレイヤキャラクタが成長するときに、ノンプレイヤキャラクタを消滅させるので、当該ノンプレイヤキャラクタをプレイヤキャラクタが吸収したように、演出することができる。
【0021】
請求項6の発明は請求項4または5に従属し、プレイヤキャラクタの大きさが、所定の位置関係を有するノンプレイヤキャラクタの大きさ未満であるとき、当該プレイヤキャラクタを消滅させるプレイヤキャラクタ消滅ステップをさらに実行させる。
【0022】
請求項6の発明では、プレイヤキャラクタ消滅ステップ(42,S43)は、プレイヤキャラクタの大きさが、所定の位置関係を有するノンプレイヤキャラクタの大きさ未満であるとき、プレイヤキャラクタを消滅させる。つまり、プレイヤキャラクタが死滅する。つまり、プレイヤキャラクタの残り数が減ったり、ゲームオーバになったりする。
【0023】
請求項6の発明によれば、プレイヤキャラクタが消滅することがあるため、プレイヤキャラクタの移動の戦略を練って操作する楽しさを提供することができる。
【0024】
請求項7の発明は請求項2ないし6のいずれかに従属し、所定の位置関係を有するノンプレイヤキャラクタの第2属性が特定のキャラクタを示すとき、ゲームクリアであると判定するゲームクリア判定ステップをさらに実行させる。
【0025】
請求項7の発明では、ゲームクリア判定ステップ(42,S37)は、所定の位置関係を有するノンプレイヤキャラクタの第2属性が特定のキャラクタを示すとき(S37で“YES”)、ゲームクリアであると判定する。
【0026】
請求項7の発明によれば、特定のノンプレイヤキャラクタと所定の位置関係になったときゲームクリアでると判定するので、今までに無い戦略が求められ、ゲームを楽しむことができる。
【0027】
請求項8の発明は請求項1ないし7のいずれかに従属し、第1の方向算出ステップは、プレイヤキャラクタの移動方向がいずれか1つのノンプレイヤキャラクタの位置に向かう第1方向に徐々に収束するように算出し、第2の方向算出ステップは、プレイヤキャラクタの移動方向がいずれか1つのノンプレイヤキャラクタの位置から離れる第2方向に徐々に収束するように算出する。
【0028】
請求項8の発明では、第1方向算出ステップ(42,S11)は、プレイヤキャラクタの移動方向がいずれか1つのノンプレイヤキャラクタの位置に向かう第1方向に徐々に収束するように算出する。また、第2方向算出ステップ(42,S11)は、プレイヤキャラクタの移動方向がいずれか1つのノンプレイヤキャラクタの位置から離れる第2方向に徐々に収束するように算出する。
【0029】
請求項8の発明によれば、急激な移動方向の変化がなく、徐々に向きを変えることができるので、移動方向の微調整ができる操作環境を提供することができる。
【0030】
請求項9の発明は、操作手段、記憶手段および表示手段を備えるゲーム装置であって、操作入力検出手段、プレイヤキャラクタ移動表示手段、ノンプレイヤキャラクタ表示手段、第1移動方向算出手段、第2移動方向算出手段、およびプレイヤキャラクタ移動手段をさらに備える。操作入力検出手段は、操作手段の操作に応じて入力される、少なくとも、第1の操作データと、当該第1の操作データとは異なる第2の操作データとを検出する。プレイヤキャラクタ移動表示手段は、操作データと、記憶手段によって記憶されたプレイヤキャラクタデータに基づいて、慣性運動しているプレイヤキャラクタを表示手段に移動表示する。ノンプレイヤキャラクタ表示手段は、記憶手段に記憶された複数でありかつ異なる属性をそれぞれ設定されたノンプレイヤキャラクタデータに基づいて、ノンプレイヤキャラクタを表示手段に表示する。第1移動方向算出手段は、第1の操作データに応じて、プレイヤキャラクタを引力源として働かせ、ノンプレイヤキャラクタとの関係で当該プレイヤキャラクタの移動する第1方向を算出する。第2移動方向算出手段は、第2の操作データに応じて、プレイヤキャラクタを斥力源として働かせ、ノンプレイヤキャラクタとの関係で当該プレイヤキャラクタの移動する第1方向とは逆の第2方向を算出する。そして、プレイヤキャラクタ移動手段は、第1移動方向算出手段によって算出された第1方向または第2移動方向算出手段によって算出された第2方向に、プレイヤキャラクタを移動させる。
【0031】
請求項9の発明においても、請求項1の発明と同様に、新しい操作感を得ることができる。
【発明の効果】
【0032】
この発明によれば、操作手段の操作に応じてノンプレイヤキャラクタによる引力または斥力を受けて変化される移動方向にプレイヤキャラクタを移動させてゲームを進行させることができるので、今までに無い操作感を得ることができる。
【0033】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0034】
図1を参照して、この発明の一実施例であるゲーム装置10は、ゲーム機12およびゲームカートリッジ14を含む。ゲーム機12は、たとえば、本件出願人が製造販売する携帯ゲーム機(商品名「ゲームボーイアドバンス」)であり、ハウジング16を含む。ハウジング16の前面には、その略中央にカラーの液晶表示器(以下、「LCD」という。)18が設けられる。このLCD18には、仮想的なゲーム空間およびそのゲーム空間内に存在するゲームキャラクタなどが表示されるとともに、必要に応じてメッセージが表示される。また、ハウジング16には、操作ボタン20,22,24,26,28,30および32が設けられる。操作ボタン20,22および24はLCD18の左方に配置され、操作ボタン26および28はLCD18の右方に配置される。さらに、ハウジング16の上側(LCD18の上方)の端面(天面)には、操作ボタン30および32が配置される。
【0035】
操作ボタン20は、ディジタルジョイスティックとして機能する十字ボタンであり、4つの押圧部の1つを操作することによって、LCD18上に表示されたゲームキャラクタの移動方向を指示したり、カーソルを移動させたりすることができる。操作ボタン22は、プッシュボタンで構成されたスタートボタンであり、ゲーム開始を指示するため等に利用される。操作ボタン24は、プッシュボタンで構成されたセレクトボタンであり、ゲームモードの選択等に利用される。
【0036】
操作ボタン26は、プッシュボタンで構成されたAボタンであり、LCD18上に表示されたゲームキャラクタに打つ、投げる、つかむ、乗る、ジャンプするなどの任意のアクションをさせることができる。操作ボタン28は、プッシュボタンで構成されたBボタンであり、セレクトボタン24で選択したゲームモードの変更やAボタン26で決定したアクションの取り消し等のために利用される。操作ボタン30は、プッシュボタンで構成された左押しボタン(Lボタン)であり、操作ボタン32は、プッシュボタンで構成された右押しボタン(Rボタン)である。操作ボタン30および操作ボタン32は、Aボタン26およびBボタン28と同様の操作をすることができ、また、Aボタン26およびBボタン28の補助的な操作をすることができる。
【0037】
また、ハウジング16の裏面上端部には、挿入口34が形成される。この挿入口34には、上述したゲームカートリッジ14が挿入される。図示は省略するが、挿入口34の奥部とゲームカートリッジ14の挿入方向先端部とには、それぞれコネクタが設けられており、したがって、ゲームカートリッジ14が挿入口34に挿入されると、2つのコネクタが互いに接続される。このため、ゲーム機12のCPUコア42(図2参照)がゲームカートリッジ14にアクセス可能となる。
【0038】
さらに、ハウジング16の表面であり、Aボタン26およびBボタン28の下方には、ゲーム中にBGM、効果音またはゲームキャラクタの音声或いは擬声音などを出力するためのスピーカ36が設けられる。
【0039】
なお、図1では省略するが、ハウジング16の天面側にはさらに、外部拡張コネクタが設けられ、ハウジング16の裏面側には、電池収容ボックスが設けられ、そして、ハウジング16の底面側には電源スイッチ、音量ボリュームおよびイヤフォンジャックなどが設けられる。
【0040】
図2はゲーム装置10の電気的な構成を示すブロック図である。この図2を参照して、ゲーム機12はプロセサ40を含み、このプロセサ40は、CPUコア42とそれに関連するブートROM44,LCDコントローラ46,WRAM(ワーキングRAM:以下、同様である。)48,VRAM50および周辺回路52とを含む。ただし、周辺回路52は、音声(サウンド)回路,DMA(Direct Memory Access)回路,タイマ回路,入出力インターフェイス(IO)などを含む。
【0041】
上述したように、ゲーム機12の前面に設けられたLCD18には、プロセサ40から表示信号、この実施例ではRGB信号が与えられ、したがって、LCD18ではゲーム画像がカラー表示される。そして、プロセサ40からは、サウンド回路にオーディオ信号が与えられ、そのオーディオ信号がオーディオアンプ54で増幅され、スピーカ36からゲーム音楽や効果音などの音声(音)が出力される。また、ゲーム機12に設けられた操作ボタン20,22,24,26,28,30および32がまとめて操作スイッチ56として示され、この操作スイッチ56からの操作信号がプロセサ40に入力される。したがって、プロセサ40は、操作スイッチ56を通して与えられたプレイヤの指示に従った処理を実行する。
【0042】
また、ゲーム機12はカートリッジコネクタ58を有し、このカートリッジコネクタ58には、ゲームカートリッジ14が接続または挿入される。ゲームカートリッジ14にはROM60およびRAM(バックアップRAM)62が内蔵される。ROM60には、ゲーム機12で実行すべきゲーム(仮想ゲーム)のためのゲームプログラムやゲーム画像(キャラクタ画像を含む。)データ等が予め設定(記憶)される(図10参照)。RAM62は、そのゲームの途中データやゲームの結果データを記憶(セーブ)する。
【0043】
CPUコア42はゲーム機12の電源がオンになったときに、ブートROM44に記憶されたブートプログラムを実行し、ゲーム機12の起動処理を行う。その後、CPUコア42はゲームカートリッジ14のROM60に記憶されたゲームプログラムを実行し、実行中の一時的なデータをWRAM48に記憶しつつゲーム処理を実行する。また、CPUコア42がゲームプログラムを実行することによって生成された画像データはVRAM50に記憶され、VRAM50に記憶された画像データはLCDコントローラ46によってLCD18に出力される。
【0044】
このような構成のゲーム装置10では、以下に説明するような仮想ゲーム(アクションゲーム)をプレイすることができる。たとえば、プレイヤは、ゲーム機12に設けられる、Aボタン26またはBボタン28を操作し、これによって、プレイヤキャラクタPC自身を引力源または斥力源として働かせ、ノンプレイヤキャラクタNPCによる引力または斥力を受けて、プレイヤキャラクタPCが移動制御される。具体的には、ノンプレイヤキャラクタNPCとの間における引力または斥力により、慣性運動するプレイヤキャラクタPCの移動方向(角度)および速度の少なくとも一方が変化される。そして、プレイヤキャラクタPCは、ノンプレイヤキャラクタNPCを、吸収したり、自身に追従させたりして、得点を重ねる。プレイヤキャラクタPCは、ノンプレイヤキャラクタNPCを吸収すると、その大きさ(属性)が拡大され、この変化に従って、ノンプレイヤキャラクタNPCの属性が変化される。
【0045】
ここで、ノンプレイヤキャラクタNPCの属性は、大きく分けて、プレイヤキャラクタPCに吸収されない状態AとプレイヤキャラクタPCによって吸収され得る状態Bとの2つの状態を含む。さらに、状態Bでは、プレイヤキャラクタPCに吸収された場合に、プレイヤキャラクタPCの大きさが拡大され、得点になる状態b1と、プレイヤキャラクタPCに追従させられた場合に、得点になる状態b2とを含む。ただし、状態b2であっても、プレイヤキャラクタPCはノンプレイヤキャラクタNPCを吸収可能であるが、吸収したとしても、その大きさは拡大されることがなく、しかも得点にもならない。また、ノンプレイヤキャラクタNPCが状態Aのときに、プレイヤキャラクタPCが当該ノンプレイヤキャラクタNPCに衝突すると、プレイヤキャラクタPCは消滅(死滅)する。これは、後述するクリアキャラクタNPCXが非アクティブ状態の場合でも同じである。そして、すべての数のプレイヤキャラクタPCが死滅すると、つまり残り数が0になると、ゲームオーバとなる。
【0046】
さらに、各ステージをクリア(ステージクリア)するためのノンプレイヤキャラクタNPC(以下、通常のノンプレイヤキャラクタNPCと区別するため、NPCXとする。)が存在する。このステージクリアのためのノンプレイヤキャラクタ(以下、「クリアキャラクタ」という。)NPCXは、プレイヤキャラクタPCの属性が所定の条件を満たしていない場合には、プレイヤキャラクタPCを追従不能な状態(非アクティブ状態)であり、プレイヤキャラクタPCの属性が所定の条件を満たすと、プレイヤキャラクタPCを追従可能な状態(アクティブ状態)となる。したがって、プレイヤキャラクタPCがクリアキャラクタNPCXを自身に追従させると、ステージクリア(ゲームクリア)となる。
【0047】
なお、この実施例では、クリアキャラクタNPCXをプレイヤキャラクタPCに追従させたときに、ステージクリアとなるようにしてあるが、此れに限定される必要はなく。プレイヤキャラクタPCがクリアキャラクタNPCXを吸収したときに、ステージクリアとなるようにしてもよい。
【0048】
具体的には、図3(A)に示すように、LCD18には、ゲーム画面100が表示される。ゲーム画面100には、プレイヤキャラクタPCが慣性運動するように移動表示され、また、ノンプレイヤキャラクタNPC(ここでは、NPC1,NPC2,NPC3,NPC4,NPC5)が静止状態で表示される。この図3(A)(以下、図3(B),図4(A),図4(B),図5(A),図5(B)も同様。)では、状態AのノンプレイヤキャラクタNPCは無模様とし、状態BのノンプレイヤキャラクタNPCには斜線を付してある。実際のゲーム画面100では、色を変えるなどして区別される。
【0049】
なお、図3以降では、状態b1と状態b2とは、特に区別していないが、実際のゲーム画面100では、色を変えるなどして区別される。
【0050】
図3(A)に示すように、プレイヤキャラクタPCが矢印で示す方向に移動し、状態b1のノンプレイヤキャラクタNPC1に衝突すると、図3(B)に示すように、当該ノンプレイヤキャラクタNPC1はプレイヤキャラクタPCに吸収される。すると、プレイヤキャラクタPCは拡大され、ノンプレイヤキャラクタNPC1はゲーム画面100から消去される。たとえば、プレイヤキャラクタPCが拡大される場合には、吸収したノンプレイヤキャラクタNPCの大きさに相当する分だけ大きくされる。
【0051】
また、プレイヤキャラクタPCの大きさが拡大されると、つまり属性が変化されると、プレイヤキャラクタPCの大きさよりも小さくなったノンプレイヤキャラクタNPCについての属性が変化される。たとえば、図3(B)に示すように、プレイヤキャラクタPCよりも小さいノンプレイヤキャラクタNPC5が状態Bにされる。ここで、たとえば、ノンプレイヤキャラクタNPCのうち、状態b1となる数は各ステージにおいて制限されているため、状態Bに変化させるときに、状態b1のノンプレイヤキャラクタNPCの数が制限数に満たない場合には、状態b1に設定され、そうでなければ、状態b2に設定される。
【0052】
また、図4(A)に示すように、プレイヤキャラクタPCが、矢印で示す方向に移動し、状態b2のノンプレイヤキャラクタNPC1に接近すると、ノンプレイヤキャラクタNPC1は、プレイヤキャラクタPCの一部として追従させられる。かかる場合には、プレイヤキャラクタPCの大きさは変化されないため、ノンプレイヤキャラクタNPC2〜5の属性が変化されることはない。
【0053】
なお、図示は省略するが、上述したように、状態b2のノンプレイヤキャラクタNPCもプレイヤキャラクタPCによって吸収可能である。したがって、たとえば、状態b2のノンプレイヤキャラクタNPC1を吸収させずに、追従させて、得点するためには、図4(B)に示すようなプレイヤキャラクタPCの外側の円に接するように、プレイヤキャラクタPCをノンプレイヤキャラクタNPC1に接近させる必要がある。
【0054】
また、図5(A)に示すように、各ステージには、特定のノンプレイヤキャラクタNPC(クリアキャラクタNPCX)が存在するが、当該クリアキャラクタNPCXは、プレイヤキャラクタPCの属性が所定の条件を満たすまでは、プレイヤキャラクタPCに追従させることができない非アクティブ状態で存在する。図5(A)では、その非アクティブ状態を示すべく、クリアキャラクタNPCXに縞模様を付してある。また、この実施例では、所定の条件とは、プレイヤキャラクタPCが一定の大きさ以上になることである。ただし、これに限定される必要はなく、プレイヤキャラクタPCが一定の大きさ以上であり、かつ、追従させているノンプレイヤキャラクタNPCの数が所定数以上であることであってもよい。また、場合によっては、プレイヤキャラクタPCの大きさに拘わらず、追従させているノンプレイヤキャラクタNPCの数が所定数以上であることのみであってもよい。このような所定の条件は、ゲームのプログラマないし開発者が決定する任意の事項であり、ステージ毎に変化させることも可能である。
【0055】
したがって、図5(A)に示す場合において(たとえば、図3(B)の状態において)、プレイヤキャラクタPCがノンプレイヤキャラクタNPC5を吸収し、一定以上の大きさになると、つまりプレイヤキャラクタPCが所定の条件を満たすと、図5(B)に示すように、クリアキャラクタNPCXがプレイヤキャラクタPCに追従させることができるアクティブ状態に変化する。つまり、クリアキャラクタNPCXの属性が変化される。ただし、図5(B)においては、クリアキャラクタNPCXがアクティブ状態であることを示すべく、網目模様を付してある。
【0056】
次に、図6〜図9を用いて、この実施例のプレイヤキャラクタPCの特性等を説明することにする。図6(A)に示すように、プレイヤキャラクタPCは移動ベクトルP(角度・速度)に従って慣性運動している。したがって、プレイヤがAボタン26やBボタン28を操作しなければ、プレイヤキャラクタPCは引力源や斥力源として働くことがなく、移動ベクトルPが示す角度(移動方向)および速度で移動し続ける。言い換えると、プレイヤキャラクタPCは、一定の加速度αで慣性運動する。なお、ゲーム開始時では、プレイヤキャラクタPCは、予め決まった位置から、予め決まった移動ベクトルPに従って移動する。ただし、ステージによっては、プレイヤキャラクタPCは、或るノンプレイヤキャラクタNPCに追従させた状態からゲームが開始される場合もある。
【0057】
ここで、移動ベクトルPの角度は、ゲーム画面100(LCD18)の横軸をX軸とし、ゲーム画面100の縦軸をY軸とした場合のX軸に対する角度である。また、この実施例では、ゲーム画面100の右方向がX軸のプラス方向であり、ゲーム画面100の上方向がY軸のプラス方向である。
【0058】
たとえば、プレイヤがAボタン26またはBボタン28を操作すると、図6(B)に示すように、一定距離Rで示される範囲に重力が発生する。つまり、このAボタン26またはBボタン28が操作されたとき、プレイヤキャラクタPCを中心とする一定距離Rを半径とする円内(重力圏内)に重力が発生し、当該重力圏内にノンプレイヤキャラクタNPCが存在する場合には、当該ノンプレイヤキャラクタNPCによる引力または斥力を受けて、重力の処理すなわち移動ベクトルP(加速度α)の計算処理が実行される。
【0059】
具体的には、Aボタン26が操作され、一定距離Rを半径とする重力圏内にノンプレイヤキャラクタNPCが存在する場合には、図7(A)に示すように、プレイヤキャラクタPCにノンプレイヤキャラクタNPCの引力が働く。したがって、この引力により、加速度α(移動ベクトルPの方向および大きさ)が変化され、プレイヤキャラクタPCは、図示するような軌道でノンプレイヤキャラクタNPCの存在する方向(位置)に引き付けられる。このとき、プレイヤキャラクタPCは、移動ベクトルPの方向と引力の方向との中間に移動する。なお、加速度αの算出方法については後述するため、ここでは、詳細な説明は省略する。
【0060】
また、Bボタン28が操作され、一定距離Rを半径とする円内にノンプレイヤキャラクタNPCが存在する場合には、図7(B)に示すように、プレイヤヤラクタPCにノンプレイヤキャラクタNPCの斥力が働く。したがって、この斥力により、加速度α(移動ベクトルPの方向および大きさ)が変化され、プレイヤキャラクタPCは、図示するような起動でノンプレイヤキャラクタNPCの存在する方向とは逆向きに離される。このとき、プレイヤキャラクタPCは、移動ベクトルPの方向と斥力の方向との中間に移動する。なお、加速度αの算出方法については後述する。
【0061】
ただし、上述したように、プレイヤキャラクタPCは、状態BのノンプレイヤキャラクタNPCを吸収したり、追従させたりすることができるが、吸収する(または追従させる)か否かを判定するために、図6(B)に示したように、一定距離L(一定距離Rよりも短い距離)が設定されている。ただし、図6(B)からも分かるように、この一定距離LはプレイヤキャラクタPCの外周からの距離である。この一定距離Lを越えて、プレイヤキャラクタPCが状態BのノンプレイヤキャラクタNPCに接近すると、プレイヤキャラクタPCは当該ノンプレイヤキャラクタNPCを吸収したり、追従させたりすることができる。
【0062】
また、引力および斥力は、プレイヤキャラクタPCとノンプレイヤキャラクタNPCとの距離に応じてその強さが変化される。図8(A)に示すように、プレイヤキャラクタPCとノンプレイヤキャラクタNPCとの距離が短い場合には、引力および斥力は大きくされる。引力および斥力は、距離の大きさに反比例して線形的に小さくなるように変化させるようにしてもよく、段階的に小さくなるように変化させるようにしてもよい。図8(A)にも示すように、この実施例では、プレイヤキャラクタPCとノンプレイヤキャラクタNPCとの距離は、その外周(表面)同士の直線(最短)距離である。具体的には、各々の中心座標間の距離から、各々の半径の和を減算することにより求めることができる。
【0063】
また、引力および斥力は、ノンプレイヤキャラクタNPCの大きさによってその強さが変化される。図8(B)に示すように、プレイヤキャラクタPCとノンプレイヤキャラクタNPCとの距離が同じであっても、ノンプレイヤキャラクタNPCの大きさ(半径)が大きい程、引力および斥力は大きくされる。引力および斥力は、半径の大きさに比例して線形的に大きくなるように変化させるようにしてもよく、段階的に大きくなるように変化させるようにしてもよい。
【0064】
なお、図8(A)および図8(B)に示すように、引力および斥力の強さは、プレイヤキャラクタPCとノンプレイヤキャラクタNPCとの距離およびノンプレイヤキャラクタNPCの大きさの2つを要素(要因)として変化される。
【0065】
また、図9に示すように、図6(B)に示したような重力圏内に、複数の(ここでは、3つの)ノンプレイヤキャラクタNPCが存在する場合には、プレイヤキャラクタPCと各ノンプレイヤキャラクタNPCとの間に働く、引力または斥力をそれぞれ算出して、すべてノンプレイヤキャラクタNPCから受ける引力または斥力に応じた移動ベクトルPが計算される。
【0066】
具体的な移動ベクトルP(加速度α)の計算方法について説明するが、プレイヤキャラクタPCに重力が発生していない場合には、引力または斥力は働かないため、Aボタン26またはBボタン28が操作されている場合に限り、移動ベクトルPの計算処理が実行される。また、ボタン操作の有無の検出は、一定時間(1フレーム:画面更新単位時間(1/60秒))毎に検出されるため、Aボタン26またはBボタン28がオンされた状態では、1フレーム毎に移動ベクトルPが計算される。ただし、重力圏内にノンプレイヤキャラクタNPCが全く存在しない場合には、引力および斥力は働かないため、かかる場合にも移動ベクトルPの計算処理は実行されない。
【0067】
まず、プレイヤキャラクタPCに重力g(ここでは、−1.0〜+1.0)が発生すると、重力gの及ぶ範囲(重力圏内)に存在するノンプレイヤキャラクタNPCをすべてリストアップする。そして、以下の計算処理が各々のノンプレイヤキャラクタNPCに対して実行される。なお、この実施例では、重力gの符号により、引力または斥力が区別される。
【0068】
(1)プレイヤキャラクタPCの中心からノンプレイヤキャラクタNPCに向かうベクトルqを求め、それを正規化する。ここで、ベクトルqは、プレイヤキャラクタPCの中心位置を始点とし、ノンプレイヤキャラクタNPCの中心位置を終点として、容易に求めることができる。
【0069】
(2)プレイヤキャラクタPCとノンプレイヤキャラクタNPCとの間の距離dによる影響度eを数1に従って計算する。なお、上述したように、重力gの及ぶ一定距離(重力圏内)はRとしてある。
【0070】
[数1]
e=1.0−d/R
(3)次に、プレイヤキャラクタPCの大きさとノンプレイヤキャラクタNPCの大きさの比を正規化する。具体的には、数2に従って、プレイヤキャラクタPCの大きさとノンプレイヤキャラクタNPCの大きさとが正規化される。ただし、数2では、正規化されたプレイヤキャラクタPCの大きさをpcmassとし、正規化されたノンプレイヤキャラクタNPCの大きさをnpcmassとし、プレイヤキャラクタPCの大きさをpcとし、ノンプレイヤキャラクタNPCの大きさをnpcとしてある。また、ここでは、プレイヤキャラクタPCの大きさとノンプレイヤキャラクタNPCの大きさとの合計が1.0になるようにしてある。
【0071】
[数2]
pcmass=pc×norm
npcmass=npc×norm
norm=1.0/(pc+npc)
(4)そして、ノンプレイヤキャラクタNPCに向かうベクトルqに、距離による影響度eと、正規化されたプレイヤキャラクタPCの大きさpcmassと現在のプレイヤキャラクタPCの重力を積算して、ノンプレイヤキャラクタNPCがプレイヤキャラクタPCに与える加速度aを求める。つまり、加速度aは数3に従って算出される。
【0072】
[数3]
a=q×e×pcmass×g
詳細な説明は省略するが、リストアップしたノンプレイヤキャラクタNPCの各々がプレイヤキャラクタPCに与える加速度a(たとえば、a1,a2,a3,…)が合成され、現在のプレイヤキャラクタPCの加速度αに合成される。
【0073】
図10はROM60のメモリマップを示す図解図であり、ROM60はゲームプログラム記憶領域602およびデータ記憶領域604を含む。ゲームプログラム記憶領域602は、ゲームプログラムを記憶し、ゲームプログラムは、ゲームメイン処理プログラム602a、画像生成プログラム602b、PC移動表示制御プログラム602c、NPC表示制御プログラム602d、操作入力検出プログラム602e、移動ベクトル計算プログラム602f、NPC吸収・追従処理プログラム602gおよび属性更新プログラム602hなどによって構成される。
【0074】
ゲームメイン処理プログラム602aは、仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム602bは、後述するキャラクタ画像データ604a(484a,486a,…)やゲームマップデータ604b(482c)を用いて、この仮想ゲームの背景画像、プレイヤキャラクタPC或いはノンプレイヤキャラクタNPCまたはアイテムキャラクタのようなキャラクタ画像などを生成するためのプログラムである。また、画像生成プログラム602bは、プレイヤキャラクタPC、ノンプレイヤキャラクタNPCおよびクリアキャラクタNPCXの属性の変化に応じて、大きさや色(テクスチャ)を変化させる。ただし、形状を変化させるようにしてもよい。PC移動表示制御プログラム602cは、画像生成プログラム602bによって生成されたプレイヤキャラクタPCの画像を、移動ベクトルPに従ってLCD18に移動表示するためのプログラムである。NPC表示制御プログラムは、画像生成プログラム602bによって生成されたノンプレイヤキャラクタNPCおよびクリアキャラクタNPCXの画像を、LCD18に表示するためのプログラムである。
【0075】
操作入力検出プログラム602eは、操作スイッチ56から入力される操作信号(操作データ)を、一定時間(1フレーム)毎に検出し、後述するWRAM48に記憶(一時記憶)するためのプログラムである。移動ベクトル計算プログラム602fは、操作入力検出プログラム602eによって、Aボタン26またはBボタン28の操作データが検出されるとき、プレイヤキャラクタPCの移動ベクトルP(加速度α)を計算するためのプログラムである。NPC吸収・追従処理プログラム602gは、プレイヤキャラクタPCがノンプレイヤキャラクタNPCを吸収したり、プレイヤキャラクタPCにノンプレイヤキャラクタNPCを追従させたりするために、プレイヤキャラクタPCの画像(後述する画像データ484a)および属性(後述する属性データ484c)を変化させる(更新する)ためのプログラムである。属性更新プログラム602hは、プレイヤキャラクタPCの属性(大きさ)が変化したとき、ノンプレイヤキャラクタNPCやクリアキャラクタNPCXの属性(後述する属性データ486cなど)を変化させる(更新する)ためのプログラムである。
【0076】
なお、図示は省略するが、プログラム記憶領域602には、ゲーム音再生プログラムやバックアッププログラムなども記憶される。ゲーム音再生プログラムは、後述するサウンドデータ604cを用いて、キャラクタの音声(音)、効果音、BGMなどのゲームに必要な音をスピーカ36から出力する。また、バックアッププログラムは、所定のイベントや所定の操作に従って、ゲーム中に発生するゲームデータ(途中データ,結果データ)を、ゲームカートリッジ14内のRAM62に記憶(セーブ)するためのプログラムである。
【0077】
データ記憶領域604には、キャラクタ画像データ604a、全ゲームマップデータ604bおよびサウンドデータ604cなどのデータが記憶される。キャラクタ画像データ604aは、仮想ゲームに登場するキャラクタ(プレイヤキャラクタPC,ノンプレイヤキャラクタNPC,クリアキャラクタNPCXなど)についての画像データ(ポリゴンデータやテクスチャデータなど)である。全ゲームマップデータ604bは、仮想ゲームにおいて用意されている各ステージについてのゲームマップのデータであり、この実施例では、各ゲームマップは球面状に形成される。サウンドデータ604cは、ゲームに必要な音を生成および出力するためのデータである。
【0078】
また、WRAM48のメモリマップの例が図11に示される。この図11を参照して、WRAM48には、操作データ482a、PCデータ482b、ゲームマップデータ482c、NPCデータ482dなどのデータが記憶される。操作データ482aは、上述したように、操作入力検出プログラム602eによって検出され、一時記憶された操作データであり、1フレーム毎に更新される。
【0079】
PCデータ482bは、プレイヤキャラクタPCについてのデータであり、画像データ484a、表示位置データ484bおよび属性データ484cによって構成される。画像データ484aは、プレイヤキャラクタPCの画像データ(ポリゴンデータ,テクスチャデータなど)であり、上述したキャラクタ画像データ604aを用いて生成される。表示位置データ484bは、プレイヤキャラクタPCのゲーム世界における表示位置(座標位置)のデータ(座標位置データ)である。つまり、表示位置データ484bが示す座標位置は、ゲームマップ上におけるプレイヤキャラクタPCの現在位置を示す。上述したように、プレイヤキャラクタPCは、慣性運動し、また、引力および斥力により、その移動方向が変化するため、表示位置データ484bは、1フレーム毎に更新される。属性データ484cは、プレイヤキャラクタPCの属性を示すデータである。ここで、プレイヤキャラクタPCの属性は、その大きさ(半径ないし直径)、追従させるノンプレイヤキャラクタNPCの有無、さらには、追従させるノンプレイヤキャラクタNPCの個数を含む。
【0080】
ゲームマップデータ482bは、ゲームマップについてのデータであり、
各ステージ(ないし面)に対応したデータが、プレイヤの操作(選択)ないしコンピュータ(CPUコア42)の選択に応じて、上述した全ゲームマップデータ604bから読み出される。また、このとき、たとえば、プレイヤのレベルや選択に応じて、ゲームの難易度が決定され、当該難易度に応じて、ノンプレイヤキャラクタNPCの配置位置が決定される。さらに、上述したように、各ゲームマップは球面状に形成され、したがって、プレイヤキャラクタPCが同じ方向に移動し続けることも可能である。
【0081】
NPCデータ482dは、ノンプレイヤキャラクタNPC(クリアキャラクタNPCXを含む。)についてのデータである。図11からも分かるように、NPCデータ482dは、ノンプレイヤキャラクタNPC(ここでは、便宜上、NPC1,NPC2,…とする。)毎に記憶される。NPC1データ486は、画像データ486a,表示位置データ486bおよび属性データ486cを含む。画像データ486aは、ノンプレイヤキャラクタNPC1についての画像データ(ポリゴンデータ,テクスチャデータなど)であり、上述したキャラクタ画像データ604aを用いて生成される。表示位置データ486bは、ノンプレイヤキャラクタNPC1のゲーム世界における表示位置(座標位置)のデータ(座標位置データ)である。つまり、表示位置データ486bが示す座標位置は、ゲームマップ上におけるノンプレイヤキャラクタNPC1の現在位置を示す。属性データ486cは、ノンプレイヤキャラクタNPC1の属性を示すデータである。ここで、ノンプレイヤキャラクタNPC1の属性は、大きさ(半径ないし直径)、状態Aまたは状態B(状態b1または状態b2)を含む。このことは、他のノンプレイヤキャラクタNPC2,…についても同様である。ただし、クリアキャラクタNPCXの属性は、クリアキャラクタNPCXであることの識別情報およびアクティブ状態であるか非アクティブ状態であるかを示す状態情報を含む。
【0082】
図示は省略するが、他のノンプレイヤキャラクタNPC2,…も同様であるため、詳細な説明は割愛する。
【0083】
また、WRAM48には、その他の領域482eが設けられる。このその他の領域482eは、図示しないゲームデータ(途中データ,結果データ)を記憶したり、上述したよなプログラムを適宜ロードしたりするために用いられる。
【0084】
具体的なゲーム処理であるが、図2に示したCPUコア42が図12〜図14に示すフロー図に従って実行する。図12に示すように、CPUコア42がゲーム処理を開始すると、ステップS1で、ステージセレクト処理を実行する。ここでは、プレイヤの指示に従ってステージ(面)を選択したり、自動的に選択したりする。続くステップS3では、ゲーム初期設定を実行する。具体的には、CPUコア42は、操作データ482aを初期化(クリア)し、選択されたステージに応じたゲームマップデータ482cをROM60から読み出してWRAM48に記憶し(書き込み)する。また、CPUコア42は、キャラクタ画像データ604aをROM60から読み出し、プレイヤキャラクタPCの画像データ484aを生成したり、表示位置データ484bを初期位置の座標データに設定したり、属性データ484cを初期化したりする。さらに、CPUコア42は、キャラクタ画像データ604aをROM60から読み出し、当該ステージに存在する各ノンプレイヤキャラクタNPの画像データを生成したり、表示位置データ484bを所定位置の座標データに設定したり、属性データを設定したりする。次のステップS5では、ゲーム画面100をLCD18に表示する。ここでは、初期設定されたプレイヤキャラクタPCをゲームマップ上で初期位置から移動させ、プレイヤキャラクタPCを含むゲームマップの一部をLCD18に表示する。したがって、このとき、プレイヤキャラクタPCの近傍または周囲に存在するノンプレイヤキャラクタNPCが静止表示される。
【0085】
続くステップS7では、操作データがあるかどうかを判断する。つまり、CPUコア42は、操作スイッチ56から操作データが入力されたかどうかを判断する。ステップS7で“NO”であれば、つまり操作データが入力されていなければ、移動ベクトルP(加速度α)を計算せずに、そのままステップS13に進む。図示は省略するが、このとき、RAM48に一時記憶されている操作データ482aは消去(クリア)される。一方、ステップS7で“YES”であれば、つまり操作データが入力されていれば、ステップS9で、Aボタン26またはBボタン28が操作されたかどうかを判断する。つまり、RAM48に記憶された操作データ482aがAボタン26またはBボタン28に対応するものであるかどうかを判断する。図示は省略するが、ステップS7で“YES”と判断されると、入力された操作データをRAM48に記憶し、ステップS9では、RAM48に記憶された操作データ482aを参照して、判断処理が実行される。
【0086】
ステップS9で“NO”であれば、つまりAボタン26またはBボタン28が操作されていなければ、そのままステップS13に進む。つまり、ここでは、Aボタン26またはBボタン28以外の操作ボタン(20,22,24,32および34)が操作されても無視するようにしてある。ただし、図示は省略するが、スタートボタン22を操作すると、ゲームを一時停止したり、ゲームを再開したりすることができる。また、一時停止中では、ゲーム終了または再開(続行)を選択するために十字キー20の操作を受け付けるようにしてある。一方、ステップS9で“YES”であれば、つまりAボタン26またはBボタン28が操作されれば、ステップS11で、操作ボタン(Aボタン26,Bボタン28)に応じて、移動ベクトルP(加速度α)を計算してステップS13に進む。この移動ベクトルPの計算は、上述した通りである。ただし、Aボタン26またはBボタン28が操作された場合であっても、重力圏内(一定距離R以内)にノンプレイヤキャラクタNPCが全く存在しない場合には、移動ベクトルPの計算処理は実行されない。
【0087】
ステップS13では、プレイヤキャラクタPCの現在位置を算出して、プレイヤキャラクタPCをゲーム画面100に移動表示する。つまり、プレイヤキャラクタPCを移動表示する。上述したように、移動ベクトルP(加速度α)を計算しない場合には、移動ベクトルPが示す移動方向および速度はそのままで、1フレームに相当する距離だけ移動した位置が現在位置として算出される。ただし、ステップS11で移動ベクトルP(加速度α)が計算された場合には、計算された移動ベクトルPが示す移動方向および速度で、1フレームに相当する距離だけ移動した位置が現在位置として算出される。
【0088】
続くステップS15では、プレイヤキャラクタPCの位置と、ノンプレイヤキャラクタNPCとの位置が一定距離L以内であるかどうかを判断する。ここでは、CPUコア42は、RAM48を参照して、プレイヤキャラクタPCの表示位置および大きさを取得し、また、各ノンプレイヤキャラクタNPCの表示位置および大きさを取得して、プレイヤキャラクタPCとノンプレイヤキャラクタNPCとの距離が一定距離L以内であるかどうかを判断する。つまり、吸収圏内であるかどうかを判断する。
【0089】
ステップS15で“NO”であれば、つまりプレイヤキャラクタPCの位置とノンプレイヤキャラクタNPCの位置とが一定距離Lを超えていれば、そのままステップS7に戻る。一方、ステップS15で“YES”であれば、つまりプレイヤキャラクタPCの位置とノンプレイヤキャラクタNPCの位置とが一定距離L以内であれば、図13に示すステップS17で、プレイヤキャラクタPCの位置と当該ノンプレイヤキャラクタNPCの位置とが一致するかどうかを判断する。ただし、厳密には、プレイヤキャラクタPCと当該ノンプレイヤキャラクタNPCとが接触したか否かを判断するため、プレイヤキャラクタPCと当該ノンプレイヤキャラクタNPCとの中心間の距離が各々の半径を足した長さよりも短いかどうかを判断する。
【0090】
ステップS17で“YES”であれば、つまりプレイヤキャラクタPCの位置とノンプレイヤキャラクタNPCの位置とが一致すれば、ステップS19で、当該ノンプレイヤキャラクタNPCがクリアキャラクタNPCXであるかどうかを判断する。ここでは、当該ノンプレイヤキャラクタNPCの属性データ(486c等)を参照して、クリアキャラクタNPCXの識別情報が含まれるか否かを判断する。
【0091】
ステップS19で“YES”であれば、つまり当該ノンプレイヤキャラクタNPCがクリアキャラクタNPCXであれば、図14に示すステップS43に進む。一方、ステップS19で“NO”であれば、つまり当該ノンプレイヤキャラクタNPCがクリアキャラクタNPCXでなければ、ステップS21で、当該ノンプレイヤキャラクタNPCを吸収可能であるかどうかを判断する。具体的には、当該ノンプレイヤオブジェクトNPCの属性データ(486c等)を参照して、プレイヤキャラクタPCによって吸収可能な状態Bであるかどうかを判断する。
【0092】
ステップS21で“NO”であれば、つまり当該ノンプレイヤキャラクタNPCが状態Aであれば、ステップS43に進む。一方、ステップS21で“YES”であれば、つまり当該ノンプレイヤキャラクタNPCが状態Bであれば、ステップS23で、当該ノンプレイヤキャラクタNPCがプレイヤキャラクタPCに追従可能かどうかを判断する。つまり、状態b2であるかどうかを判断する。ステップS23で“YES”であれば、つまり状態b2であり、プレイヤキャラクタPCに追従可能であると判断すれば、そのままステップS29に進む。このとき、後述するように、ノンプレイヤキャラクタNPCはゲーム画面100から消去され、プレイヤキャラクタPCに吸収されたように表現されるが、プレイヤキャラクタPCは拡大されず、得点が加算されることもない。
【0093】
しかし、ステップS23で“NO”であれば、つまり状態b1であり、プレイヤキャラクタPCを拡大可能であれば、ステップS25で、当該ノンプレイヤキャラクタNPCの大きさに相当する分だけ、プレイヤキャラクタPCを拡大する。つまり、プレイヤキャラクタPCの画像データ484aおよび属性データ484cが更新され、プレイヤキャラクタPCが拡大表示される。図示は省略するが、このとき、得点が加算される。続くステップS27では、ノンプレイヤキャラクタNPCの属性を更新する。具体的には、プレイヤキャタPCの属性データ484cと全ノンプレイヤキャラクタNPCの属性データ(486cなど)とを参照して各々の大きさを比較し、比較結果に基づいて、プレイヤキャラクタPCよりも小さいノンプレイヤキャラクタNPCを状態B(状態b1または状態b2)にする。このとき、状態Aから状態Bに変化されたノンプレイヤキャラクタNPCでは、その画像データ(486aなど)および属性データ(486cなど)が更新され、したがって、ゲーム画面100において、表示される色(または模様)が変化され、その属性変化がプレイヤに報知される。また、プレイヤキャラクタPCの属性が所定の条件を満たせば、ステップS27では、クリアキャラクタNPCXの属性は変化され、プレイヤキャラクタPCに追従可能なアクティブ状態となる。そして、ステップS29で、吸収したノンプレイヤキャラクタNPCをゲーム画面100から消去して、図12に示したステップS7に戻る。たとえば、CPUコア42は、当該ノンプレイヤキャラクタNPCについてのNPCデータ(486,488,…など)をRAM48から削除する。
【0094】
また、ステップS17で“NO”であれば、つまりPCの位置とNPCの位置とが一致しなければ、ステップS31で、当該ノンプレイヤキャラクタNPCがプレイヤキャラクタPCによって吸収可能な状態Bであるかどうかを判断する。この判断手法は、ステップS21で説明した通りであるため、重複した説明は省略する。ステップS31で“NO”であれば、そのままステップS7に戻る。一方、ステップS31で“YES”であれば、ステップS33で、当該ノンプレイヤキャラクタNPCがプレイヤキャラクタPCに追従可能であるかどうかを判断する。この判断手法は、ステップS23で説明した内容と略同じであるため、重複した説明は省略するが、ここでは、ノンプレイヤキャラクタNPCがクリアキャラクタNPCXである場合に、その属性がプレイヤキャラクタPCに追従可能なアクティブ状態であるかどうかも判断するようにしてある。
【0095】
ステップS33で“NO”であれば、そのままステップS7に戻る。一方、ステップS33で“YES”であれば、ステップS35で、ノンプレイヤキャラクタNPCをプレイヤキャラクタPCに追従移動する表示に変更する。つまり、プレイヤキャラクタPCの画像データ484aおよび属性データ484cが更新され、当該ノンプレイヤキャラクタNPCを一部に含むプレイヤキャラクタPCが表示される。図示は省略するが、このとき、得点が加算される。
【0096】
続いてステップS37では、追従させたノンプレイヤキャラクタNPCがクリアキャラクタNPCXであるかどうかを判断する。ステップS37で“NO”であれば、つまり追従させたノンプレイヤキャラクタNPCがクリアキャラクタNPCXでなければ、そのままステップS7に戻る。一方、ステップS37で“YES”であれば、つまり追従させたノンプレイヤキャラクタNPCがクリアキャラクタであれば、ステップS39で、ステージクリア処理を実行する。たとえば、ステップS39では、当該ステージをクリアした旨のメッセージを表示したり、音楽(音)を出力したり、その両方を実行したりなどし、さらに、次のステージをプレイするか否かを選択するための選択画面(図示せず)を表示する。
【0097】
そして、ステップS41で、次のステージをプレイするかどうかを判断する。ステップS41で“NO”であれば、つまり選択画面において、次のステージをプレイしない(“NO”)を選択すると、図14に示すように、ゲーム処理を終了する。しかし、ステップS41で“YES”であれば、つまり選択画面において、次のステージをプレイする(“YES”)を選択すると、図12に示すステップS1に戻って、次のステージをゲームプレイする。
【0098】
図14に示すように、ステップS43では、衝突処理を実行する。この実施例では、プレイヤキャラクタPCが、吸収したり、追従させたりできないノンプレイヤキャラクタNPC(非アクティブ状態のクリアキャラクタNPCXを含む。)に衝突し、プレイヤキャラクタPCが消滅(死滅)する様子のゲーム画面100が表示される。また、このとき、プレイヤキャラクタPCの残り数を1減算し、PCデータ482bを初期化する。ただし、図11では省略したが、プレイヤキャラクタPCの残り数の数値データは、WRAM48のその他の領域482eに記憶される。そして、ステップS45で、プレイヤキャラクタPCの残り数が0未満であるかどうかを判断する。ステップS45で“NO”であれば、つまりプレイヤキャラクタPCの残り数が1以上であれば、図12に示したステップS7に戻る。しかし、ステップS45で“YES”であれば、つまりプレイヤキャラクタPCの残り数が0未満であれば、ステップS47で、ゲームオーバ処理を実行し、ゲーム処理を終了する。たとえば、ステップS47では、ゲームオーバである旨のメッセージを表示したり、音楽(音)を出力したり、その両方を実行したりする。
【0099】
なお、図12〜図14に示すゲーム処理のスキャンタイムは、1フレームであり、したがって、1フレーム毎に、プレイヤキャラクタPCやノンプレイヤキャラクタNPCの属性が変化されたり、プレイヤキャラクタPCの移動ベクトルPが変化されたりする。
【0100】
この実施例によれば、異なるボタン操作により、プレイヤキャラクタに引力や斥力を与えることができるので、いずれか一方のみの力を加えるよりも複雑な動きを移動オブジェクトにさせることができる。つまり、プレイヤは、新しい操作感を得ることができる。
【0101】
なお、この実施例では、携帯型のゲーム機に本発明を適用したが、据え置き型のゲーム機等、種々のゲーム機に本発明を適用することができる。
【0102】
また、この実施例では、プレイヤキャラクタPCに重力gが働くとき、重力圏内に存在するノンプレイヤキャラクタNPCの各々がプレイヤキャラクタPCに与える加速度aを算出し、すべての加速度aと現在のプレイヤキャラクタPCの加速度とを合成して、プレイヤキャラクタPCの移動ベクトルPを変化させるようにした。しかし、この方法に限定される必要はなく、他の方法を採用することも可能である。
【0103】
たとえば、図15に示すように、プレイヤキャラクタPCの速度vを一定とした場合に、移動方向の算出を開始する当初(最初)のプレイヤキャラクタPCの移動方向(速度vの向き)と、現在のプレイヤキャラクタPCの位置からノンプレイヤキャラクタNPCの位置に向かう方向とがなす角度θに基づいて、プレイヤキャラクタPCの移動方向を変化させることができる。図15において、最初の位置に存在するプレイヤキャラクタPCを黒で塗りつぶしてある。また、現在、プレイヤキャラクタPCは座標(Xp,Yp)で示す点に存在するものとする。また、図15においては、X−Y軸は、慣性運動中の(最初の)プレイヤキャラクタPCの移動方向(移動方向)をY軸としてあるだけであり、ゲーム空間の絶対座標の軸とは異なる。
【0104】
図15に示すように、角度θは数4に従って算出(概算)される。ただし、現在のプレイヤキャラクタPCの位置は座標(Xp,Yp)であり、ノンプレイヤキャラクタNPCの位置は座標(Xt,Yt)である。
【0105】
[数4]
θ≒tan−1{(Xt−Xp)/(Yt−Yp)}
この角度θは、角度Δθの累計であると考えて、Aボタン26が操作される毎に、速度vの移動方向をΔθだけ変化させるようにすればよい。したがって、現在位置へ移動させる場合には、現在位置の座標(Xp,Yp)の各成分は、その手前(1フレーム前)のプレイヤキャラクタPCの位置である座標(Xs,Ys)の各成分を用いて、数5に従って算出される。
【0106】
[数5]
Xp=Xs+vsinΔθ
Yp=Ys+vcosΔθ
なお、詳細な説明は省略するが、斥力が働く場合には、引力とは反対方向、つまり、図15に示すX軸の左方向に移動するように、角度Δθを用いた演算が実行される。つまり、斥力が働く場合には、引力が働く場合の演算処理を実行した後に、Y軸対象に座標を変換すればよい。
【0107】
また、複数のノンプレイヤキャラクタNPCが存在する場合には、ノンプレイヤキャラクタNPCの各々について、上述したように、座標を算出し、算出したすべての座標の平均を求めるようにすればよい。
【図面の簡単な説明】
【0108】
【図1】図1はこの発明の一実施例のゲーム装置を示す図解図である。
【図2】図2は図1実施例に示すゲーム装置の電気的な構成を示すブロック図である。
【図3】図3は図1実施例に示すLCDに表示されるゲーム画面の一例を示す図解図である。
【図4】図4は図1実施例に示すLCDに表示されるゲーム画面の他の例を示す図解図である。
【図5】図5は図1実施例に示すLCDに表示されるゲーム画面のその他の例を示す図解図である。
【図6】図6は図1実施例のプレイヤキャラクタの特性を説明するための図解図である。
【図7】図7は図1実施例のプレイヤキャラクタに働く引力および斥力により、プレイヤキャラクタの移動軌跡が変化する様子を説明するための図解図である。
【図8】図8は図1実施例のプレイヤキャラクタとノンプレイヤキャラクタとの距離または/および大きさに応じて、引力および斥力の強さが変化することを説明するための図解図である。
【図9】図9は図1実施例のプレイヤキャラクタの重力圏内に複数のノンプレイヤキャラクタが存在する場合の例を示す図解図である。
【図10】図10は図1実施例に示すゲームカートリッジに設けられるROMのメモリマップの例を示す図解図である。
【図11】図11は図2に示すWRAMのメモリマップの例を示す図解図である。
【図12】図12は図2に示すCPUコアのゲーム処理の一部を示すフロー図である。
【図13】図13は図2に示すCPUコアのゲーム処理の他の一部であり、図12に後続するフロー図である。
【図14】図14は図2に示すCPUコアのゲーム処理のその他の一部であり、図12および図13に後続するフロー図である。
【図15】図15はこの発明の他の実施例であって、プレイヤキャラクタの移動方向を変化させる場合の他の計算方法を説明するための図解図である。
【符号の説明】
【0109】
10 …ゲーム装置
12 …ゲーム機
14 …ゲームカートリッジ
16 …ハウジング
18 …LCD
20,22,24,26,28,30,32 …操作ボタン
36 …スピーカ
40 …プロセサ
42 …CPUコア
44 …ブートROM
46 …LCDコントローラ
48 …WRAM
50 …VRAM
52 …周辺回路
54 …オーディオアンプ
56 …操作スイッチ
60 …ROM
62 …RAM

【特許請求の範囲】
【請求項1】
操作手段、記憶手段および表示手段を備えるゲーム装置のゲームプログラムであって、
前記ゲーム装置のプロセサに、
前記操作手段の操作に応じて入力される、少なくとも、第1の操作データと、当該第1の操作データとは異なる第2の操作データとを検出する操作入力検出ステップ、
前記操作データと、前記記憶手段によって記憶されたプレイヤキャラクタデータに基づいて、慣性運動しているプレイヤキャラクタを前記表示手段に移動表示するプレイヤキャラクタ移動表示ステップ、
前記記憶手段に記憶された複数でありかつ異なる属性をそれぞれ設定されたノンプレイヤキャラクタデータに基づいて、ノンプレイヤキャラクタを前記表示手段に表示するノンプレイヤキャラクタ表示ステップ、
前記第1の操作データに応じて、前記プレイヤキャラクタを引力源として働かせ、前記ノンプレイヤキャラクタとの関係で当該プレイヤキャラクタの移動する第1方向を算出する第1移動方向算出ステップ、
前記第2の操作データに応じて、前記プレイヤキャラクタを斥力源として働かせ、前記ノンプレイヤキャラクタとの関係で当該プレイヤキャラクタの移動する前記第1方向とは逆の第2方向を算出する第2移動方向算出ステップ、および
前記第1移動方向算出ステップによって算出された第1方向または前記第2移動方向算出ステップによって算出された第2方向に、前記プレイヤキャラクタを移動させるプレイヤキャラクタ移動ステップを実行させる、ゲームプログラム。
【請求項2】
前記プレイヤキャラクタといずれか1つの前記ノンプレイヤキャラクタとが所定の位置関係を有し、かつ当該プレイヤキャラクタの第1属性と当該ノンプレイヤキャラクタの第2属性とが所定条件を満たすとき、当該第1属性を更新する第1属性更新ステップをさらに実行させる、請求項1記載のゲームプログラム。
【請求項3】
前記第1属性更新ステップによって更新された第1属性に応じて前記第2属性を更新する第2属性更新ステップをさらに実行させる、請求項2記載のゲームプログラム。
【請求項4】
前記第1属性は少なくとも前記プレイヤキャラクタの大きさを含み、
前記第2属性は少なくとも前記ノンプレイヤキャラクタの大きさを含み、
前記第1属性更新ステップは、前記プレイヤキャラクタの大きさが、前記所定の位置関係を有する前記ノンプレイヤキャラクタの大きさ以上であるとき、当該プレイヤキャラクタの大きさを拡大させるように前記第1属性を更新する、請求項2または3のいずれかに記載のゲームプログラム。
【請求項5】
前記第1属性更新ステップが前記プレイヤキャラクタの大きさを拡大させるとき、当該プレイヤキャラクタと前記所定の位置関係を有する前記ノンプレイヤキャラクタを消滅させるノンプレイヤキャラクタ消滅ステップをさらに実行させる、請求項4記載のゲームプログラム。
【請求項6】
前記プレイヤキャラクタの大きさが、前記所定の位置関係を有する前記ノンプレイヤキャラクタの大きさ未満であるとき、当該プレイヤキャラクタを消滅させるプレイヤキャラクタ消滅ステップをさらに実行させる、請求項4または5記載のゲームプログラム。
【請求項7】
前記所定の位置関係を有する前記ノンプレイヤキャラクタの第2属性が特定のキャラクタを示すとき、ゲームクリアであると判定するゲームクリア判定ステップをさらに実行させる、請求項2ないし6のいずれかに記載のゲームプログラム。
【請求項8】
前記第1の方向算出ステップは、前記プレイヤキャラクタの移動方向がいずれか1つの前記ノンプレイヤキャラクタの位置に向かう前記第1方向に徐々に収束するように算出し、
前記第2の方向算出ステップは、前記プレイヤキャラクタの移動方向がいずれか1つの前記ノンプレイヤキャラクタの位置から離れる前記第2方向に徐々に収束するように算出する、請求項1ないし7のいずれかに記載のゲームプログラム。
【請求項9】
操作手段、記憶手段および表示手段を備えるゲーム装置であって、
前記操作手段の操作に応じて入力される、少なくとも、第1の操作データと、当該第1の操作データとは異なる第2の操作データとを検出する操作入力検出手段、
前記操作データと、前記記憶手段によって記憶されたプレイヤキャラクタデータに基づいて、慣性運動しているプレイヤキャラクタを前記表示手段に移動表示するプレイヤキャラクタ移動表示手段、
前記記憶手段に記憶された複数でありかつ異なる属性をそれぞれ設定されたノンプレイヤキャラクタデータに基づいて、ノンプレイヤキャラクタを前記表示手段に表示するノンプレイヤキャラクタ表示手段、
前記第1の操作データに応じて、前記プレイヤキャラクタを引力源として働かせ、前記ノンプレイヤキャラクタとの関係で当該プレイヤキャラクタの移動する第1方向を算出する第1移動方向算出手段、
前記第2の操作データに応じて、前記プレイヤキャラクタを斥力源として働かせ、前記ノンプレイヤキャラクタとの関係で当該プレイヤキャラクタの移動する前記第1方向とは逆の第2方向を算出する第2移動方向算出手段、および
前記第1移動方向算出手段によって算出された第1方向または前記第2移動方向算出手段によって算出された第2方向に、前記プレイヤキャラクタを移動させるプレイヤキャラクタ移動ステップを実行させる、ゲームプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2006−314705(P2006−314705A)
【公開日】平成18年11月24日(2006.11.24)
【国際特許分類】
【出願番号】特願2005−143095(P2005−143095)
【出願日】平成17年5月16日(2005.5.16)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】