【文献】
吸収合体!泡戦車のシューティングゲーム2,フラッシュゲームな日々・・・,日本,2008年 7月21日,[online],平成30年2月1日検索,URL,http://flashongame.blog11.fc2.com/blog-entry-1082.html
(58)【調査した分野】(Int.Cl.,DB名)
前記オブジェクト合成手段は、さらに前記所定の第1オブジェクトと前記第3オブジェクトとを合成することにより、または、前記所定の第2オブジェクトとこの所定の第2オブジェクトとは異なる他の第2オブジェクトとを合成することにより、前記第1属性〜前記第3属性とは異なる第4属性の前記合成オブジェクトである第4オブジェクトを生成する請求項1記載のゲームプログラム。
【発明を実施するための形態】
【0013】
(実施形態)
図面を参照して、本発明の実施形態であるゲームプログラムについて説明する。
【0014】
なお、本発明の構成および各フローチャートの処理手順については、本実施形態に限定されるものではない。
【0015】
<ゲームシステムの説明>
図1はゲームシステム1の構成を説明する図である。本実施形態のゲームシステム1は、ネットワーク4を介して相互に通信可能なサーバ装置2、ゲーム装置3で構成される。
【0016】
ゲーム装置3は、インターネット通信などの通信回線31を備える。これにより、ゲーム装置3はネットワーク4に接続することができる。また、このゲーム装置3は、
図1に示す各機能を備える。
【0017】
<ゲーム装置のハードウェア構成>
ゲーム装置3は、
図1に示すようにバス300上に制御部30、通信回線31、および記憶部32を備える。
【0018】
制御部30は、CPU30A、ROM(フラッシュメモリ)30B、画像プロセッサ30C、RAM30D、操作部30E、および音声プロセッサ30Fを備える。
【0019】
CPU30Aは、後述するように、ゲーム装置3で実行されるゲームを制御する。
【0020】
ROM30Bには、ゲームプログラムを実行するための基本プログラムが記憶されている。
【0021】
画像プロセッサ30Cは、ゲーム画面5を生成可能なGPU(Graphics Processing Unit:グラフィックス・プロセッシング・ユニット)を備えている。画像プロセッサ30Cには、ビデオRAM(VRAM)33が接続されている。VRAM33には表示部34が接続されている。表示部34は、ディスプレイ(タッチパネル500)を備える。画像プロセッサ30Cは、CPU30Aの指示に従って仮想ゲーム空間を生成する。この仮想ゲーム空間を仮想カメラで撮影した画像などがゲーム画面5としてVRAM33上に描画される。
【0022】
RAM30Dには、CPU30Aがゲームプログラムを実行する際に使用されるワークエリアが設定される。ワークエリアには、ゲームの進行に伴って発生する各種パラメータなどが含まれる。
【0023】
操作部30Eは、タッチパネル500を含む。操作部30Eは、ユーザによるタッチパネル500への操作内容(タップ、フリック等)および操作位置などの操作信号を検出する。操作部30Eは、この操作信号をCPU30Aに送信する。
【0024】
音声プロセッサ30Fは、ゲーム音声を生成するDSP(Digital Signal Processor:デジタル・シグナル・プロセッサ)を備える。音声プロセッサ30Fは、生成したゲーム音声をD/Aコンバータを含むアンプ35に送信する。アンプ35は、この音声信号を増幅してスピーカ36に送信する。
【0025】
通信回線31は、インターネット回線などを介してデータ通信を行う。データ通信によってゲーム装置3およびサーバ装置2との間で通信が行われることにより、ゲームプログラムのダウンロードおよび他のゲーム装置3との通信対戦などが行われる。ゲームプログラムは、インターネット回線でダウンロードするのみならず、USBなどのインタフェース経由で取得することもできる。また、通信対戦はインターネット回線で対戦するのみならず、近距離無線通信などで対戦することもできる。
【0026】
また、通信回線31は、ゲームプレイに必要なユーザ情報(ユーザIDなど)、ユーザと他のユーザとの関係情報(フレンド情報など)およびゲームスコアなどをサーバ装置2およびゲーム装置3に送信したり、他のユーザのゲームスコアなどを受信したりする。
【0027】
記憶部32は、ハードディスクであり、たとえば、予め記憶されたゲームプログラムのほか、サーバ装置2からダウンロードしたゲームプログラムなどが記憶される。このゲームプログラムには、プログラム本体のほか、ゲームの進行に必要なキャラクタ画像、背景画像およびステージ画像などの様々なゲームデータが含まれる。
【0028】
<ゲームの概要>
本実施形態におけるゲーム装置3において実行されるゲームプログラムによって提供されるゲームは、いわゆるスマホアプリに関するゲームである。ユーザは、操作部30Eを介してソープオブジェクト50からプレイヤオブジェクト60を生成する。そして、ユーザは、このプレイヤオブジェクト60を操作して、ゲームステージに登場するノンプレイヤオブジェクト70を全て倒し、ゲームステージをクリアすることを目指す。詳細については後述する。
【0029】
<制御部の説明>
以下、本実施形態におけるゲーム装置3の各機能について説明する。
図2は、ゲームシステム1に含まれるゲーム装置3の機能ブロック図である。
【0030】
ゲーム装置3は、記憶部32に記憶されたゲームプログラムと制御部30との協働によって同図に示す機能を実現する。また、ゲーム装置3(CPU30A)は、操作入力部300A、ゲーム画面生成部300B、描画部300C、ゲーム進行部300D、オブジェクト生成部300E、オブジェクト管理部300F、オブジェクト制御部300Gおよびオブジェクト合成部300Hを備える。
【0031】
操作入力部300Aは、ユーザが操作する操作部30E(タッチパネル500)からの操作信号を受信する。ユーザは、ゲーム装置3のタッチパネル500に接触することで操作を入力する。操作内容には、タップ、フリック、長押し、スワイプ、スクロールなどがある。操作入力部300Aは、タッチパネル500の接触座標、操作内容などの操作情報を取得してオブジェクト生成部300E、オブジェクト制御部300Gおよびオブジェクト合成部300Hへ送信する。
【0032】
ゲーム画面生成部300Bは、制御部30およびゲームプログラムの協働によって実現される。ゲーム画面生成部300Bは、仮想ゲーム空間上でソープオブジェクト50、プレイヤオブジェクト60およびノンプレイヤオブジェクト70が仮想ゲーム空間内を移動するゲーム画面5、およびカウンター80やスコア90などのユーザインターフェース(UI)を、進行するゲームのタイミングごと(フレームごと)に演算・生成する。この演算結果(描画情報)は、描画部300C等に出力される。
【0033】
描画部300Cは、制御部30、VRAM33、表示部34およびゲームプログラムの協働によって実現される。描画部300Cは、ゲーム画面生成部300Bから入力される仮想ゲーム空間、ソープオブジェクト50、プレイヤオブジェクト60およびノンプレイヤオブジェクト70が仮想ゲーム空間内を移動するゲーム画面5、およびカウンター80やスコア90などのユーザインターフェース(UI)などの描画情報に基づいて、タッチパネル500上に表示するためのゲーム画面5を描画する。
【0034】
ゲーム進行部300Dは、制御部30およびゲームプログラムの協働によって実現される。ゲーム進行部300Dは、仮想ゲーム空間に各オブジェクトを生成して、ユーザがプレイするために選択したゲームステージにおけるゲームを進行させる。また、ゲームクリアおよびゲームオーバーなどの一つのゲームプレイの開始〜終了までを管理したりする。ゲーム進行部300Dは、ゲーム結果であるスコアなどをゲーム画面生成部300Bへ送信する。
【0035】
オブジェクト生成部300Eは、ゲーム進行中(ゲーム進行部300Dがゲームを中断せず)に操作入力部300Aから受信した操作情報に基づいて、基本オブジェクト61を生成する。オブジェクト生成部300Eは、基本オブジェクト61を生成する毎にオブジェクト管理部300Fにその情報を送信する。また、オブジェクト生成部300Eは、オブジェクト管理部300Fから基本オブジェクト61を生成する個数が最大値(最大生成個数)を超過している旨の情報を受信した場合は、基本オブジェクト61の生成を中止する。
【0036】
オブジェクト管理部300Fは、一つのゲーム進行(ゲームプレイ)で生成できる基本オブジェクト61の数を管理する。オブジェクト管理部300Fは、ゲームプレイの開始に伴い、基本オブジェクト61の最大生成個数(たとえば、99個)を設定する。そして、オブジェクト生成部300Eから受信した情報に基づいて、生成個数をカウントする。また、カウントした(更新した)生成個数をゲーム画面生成部300Bおよびオブジェクト生成部300Eなどに送信する。
【0037】
オブジェクト制御部300Gは、ゲーム進行中に操作入力部300Aから受信した操作情報に基づいて、プレイヤオブジェクト60を制御する。オブジェクト制御部300Gは、仮想ゲーム空間に存在する各オブジェクトの属性を管理しており、ユーザの各操作に基づいてプレイヤオブジェクト60を移動させたり、停止させたりまたはノンプレイヤオブジェクト70に対して衝突させて攻撃したりする。
【0038】
また、オブジェクト制御部300Gは、ノンプレイヤオブジェクト70を攻撃したプレイヤオブジェクト60を消去する。オブジェクト制御部300Gは各オブジェクトの属性に伴う攻撃を行い、その情報をゲーム画面生成部300Bおよびゲーム進行部300Dなどに送信する。
【0039】
なお、プレイヤオブジェクト60がノンプレイヤオブジェクト70を攻撃したとの情報を受信したゲーム進行部300Dは、プレイヤオブジェクト60の属性(攻撃力など)とノンプレイヤオブジェクト70の体力などを比較して優劣を判断しゲームを進行させる。また、ゲーム画面生成部300Bは、爆発などのエフェクトを表示する処理およびノンプレイヤオブジェクト70を消去する処理などを行う。
【0040】
オブジェクト合成部300Hは、ゲーム進行中に操作入力部300Aから受信した操作情報に基づいて、他のプレイヤオブジェクト60にプレイヤオブジェクト60が所定条件を満した状態で衝突したか否かを判断する。そして、所定条件を満たす衝突であると判断した場合、それらのプレイヤオブジェクト60同士を合成して、新たなプレイヤオブジェクト60を生成する。また、オブジェクト合成部300Hは、合成に関する情報をゲーム画面生成部300Bおよびゲーム進行部300Dなどに送信する。
【0041】
<ゲームの詳細>
以下、本実施形態におけるゲーム装置3において実行されるゲームプログラムによって提供されるゲームについて説明する。
【0042】
本ゲームは、ゲーム画面5に表示されるソープオブジェクト50に対する操作に応じて複数のプレイヤオブジェクト60(基本オブジェクト61)を生成し、そのプレイヤオブジェクト60同士を合成することにより新たなプレイヤオブジェクト60(合成オブジェクト62〜65)を生成することで進行する。
【0043】
基本オブジェクト61を生成する数は、各ゲームステージで最大生成個数(たとえば、99個)が設定されている。そのため、ユーザは限られた数のプレイヤオブジェクト60を使用して、ゲームステージに登場するノンプレイヤオブジェクト70を全て倒し、ゲームステージをクリアすることを強いられる。
【0044】
(ゲームステージ)
ゲームステージは、ユーザが本実施形態におけるゲームをプレイする一つの区切りを示す仮想ゲーム空間である。ゲームステージは複数用意され、ユーザは任意のステージを選択することができる。ゲームステージには、ソープオブジェクト50、プレイヤオブジェクト60、ノンプレイヤオブジェクト70などが生成される。また、各ステージは、ノンプレイヤオブジェクト70の種類、出現タイミングおよびステータスなどが異なる。
【0045】
(ソープオブジェクト50)
ソープオブジェクト50は、ユーザの操作部30Eを介した操作に基づいてプレイヤオブジェクト60を出現させる石鹸型のオブジェクトである。ソープオブジェクト50は、プレイヤオブジェクト60を生成する毎に小さくなり、所定数のプレイヤオブジェクト60を生成した場合、ゲームステージから消去される。
【0046】
(プレイヤオブジェクト60)
プレイヤオブジェクト60は、所定の属性(爆発の有無、貫通または反射、攻撃力など)を有する泡型のオブジェクトであり、ノンプレイヤオブジェクト70との対戦に使用される。プレイヤオブジェクト60は、ノンプレイヤオブジェクト70に衝突することにより所定の攻撃を行う。また、プレイヤオブジェクト60は、基本オブジェクト61と合成オブジェクト62〜65を含む。
【0047】
また、基本オブジェクト61同士を合成することにより、合成オブジェクト62〜65が生成される。後述するが、この合成オブジェクト62〜65は、基本オブジェクト61と属性が異なる。
【0048】
(基本オブジェクト61)
基本オブジェクト61(第1オブジェクト)は、プレイヤオブジェクト60の一つであってソープオブジェクト50を操作することにより生成されるオブジェクトである。基本オブジェクト61(第1オブジェクト)を生成する最大生成個数は、各ステージで設定されている。この基本オブジェクト61は、所定の属性(第1属性)を有する。詳細については後述する。
【0049】
(合成オブジェクト62〜65)
合成オブジェクト62〜65(第2オブジェクト〜第5オブジェクト)は、プレイヤオブジェクト60に含まれ、基本オブジェクト61を合成することで生成されるオブジェクトである。この合成オブジェクト62〜65は、基本オブジェクト61の属性とそれぞれ異なり、所定の属性(第2属性〜第5属性)を有する。詳細については後述する。
【0050】
(ノンプレイヤオブジェクト70)
ノンプレイヤオブジェクト70は、プレイヤオブジェクト60と敵対するばい菌型のオブジェクトである。ノンプレイヤオブジェクト70はゲーム画面5の上側から登場する。ノンプレイヤオブジェクト70には、モブオブジェクト71とボスオブジェクト72があり、各ステージに登場する。ノンプレイヤオブジェクト70は、所定の場所で停滞したり、縦横無尽に仮想ゲーム空間内を移動したりする。
【0051】
このように本ゲームは、各ステージで最大生成個数だけ基本オブジェクト61を生成することが可能であって、これらを合成して合成オブジェクト62〜65を生成し、ゲームステージに登場する全てのノンプレイヤオブジェクト70を倒すという、高度な戦略性を必要とする興趣性の高いゲームである。
【0052】
(ゲーム画面5)
図3〜
図6は、ゲーム装置3の表示部34に表示されるゲーム画面5の一例およびプレイヤオブジェクト60の属性の一例を示す図である。なお、プレイヤオブジェクト60というときは、基本オブジェクト61および合成オブジェクト62〜65を含む概念として説明する。
【0053】
また、基本オブジェクト61(第1オブジェクト)を、ソープオブジェクト50を操作することにより生成される最大生成個数が設定されたプレイヤオブジェクト60として説明し、基本オブジェクト61が複数ある場合は、基本オブジェクト61A〜61Cとしてそれぞれを特定する。
【0054】
また、合成オブジェクト62〜65(第2オブジェクト〜第5オブジェクト)を、二つ以上の基本オブジェクト61が合成されたプレイヤオブジェクト60として説明する。
たとえば、第2オブジェクト(合成オブジェクト62)は、2つの第1オブジェクト(基本オブジェクト61)の合成を必要とする。第4オブジェクトは、4つの第1オブジェクト(基本オブジェクト61)の合成を必要とする。なお、第4オブジェクトは、2つの合成オブジェクト62(第2オブジェクト)の合成によっても生成される。
【0055】
図3に示すゲーム画面5には、ソープオブジェクト50、基本オブジェクト61A〜61C、ノンプレイヤオブジェクト70(71、72)、基本オブジェクト61の生成可能個数を示すカウンター80およびゲームの得点を示すスコア90が表示される。
【0056】
カウンター80は、初期値がたとえば「99」として設定される。ユーザが、ソープオブジェクト50に対して所定の操作を行うことにより、基本オブジェクト61が1体ずつ生成され、カウンターの値が1ずつ減算される。
図2によれば、ゲーム開始から仮想ゲーム空間に3体の基本オブジェクト61A〜61Cが生成されている。そのため、カウンター80は「96(初期値99−3=96)」を示す。
【0057】
基本オブジェクト61A〜61Cは、ソープオブジェクト50を操作することにより生成されたプレイヤオブジェクト60である。カウンター80の数が「0」となった場合、新たな基本オブジェクト61は生成できない。すなわち、基本オブジェクト61は最大99体生成することできる。
【0058】
基本オブジェクト61は、ゲーム進行中(ゲームを中断せず)に、ユーザがソープオブジェクト50に対してフリック操作またはスクロール操作などすることにより発生する。また、ソープオブジェクト50から発生した基本オブジェクト61は所定方向および所定速度(ランダム)で移動し、仮想ゲーム空間を浮遊する。仮想ゲーム空間を浮遊するプレイヤオブジェクト60は、それぞれのプレイヤオブジェクト60同士が所定速度未満で衝突するなどして、反発したり押し合ったりして仮想ゲーム空間を浮遊する。
【0059】
また、浮遊しているプレイヤオブジェクト60はユーザの操作に基づいて移動したり停止したりする。例えば、ユーザがプレイヤオブジェクト60に対してフリック操作をすることにより、所定の速度および方向にプレイヤオブジェクト60が移動する。移動したプレイヤオブジェクトの60は、ゲーム画面5(ゲームステージ)の端部で跳ね返るなどしてノンプレイヤオブジェクト70と衝突したり、減速して停止したりする。なお、ユーザはプレイヤオブジェクト60に対してタップ操作することで、当該プレイヤオブジェクト60の移動を停止することができる。
【0060】
ノンプレイヤオブジェクト70は、それぞれ所定の体力値が予め設定される。ノンプレイヤオブジェクト70は、プレイヤオブジェクト60が衝突することでプレイヤオブジェクト60の属性(攻撃力など)に応じたダメージ分だけ体力値が減算される。体力値が0となった場合は、仮想ゲーム空間(ゲームステージ)から消去される。
【0061】
スコア90は、ノンプレイヤオブジェクト70の体力値が0となった場合に、ノンプレイヤオブジェクトの種類に応じて加算される得点を示すものである。
【0062】
図4は、各プレイヤオブジェクト60を説明する表であり、必要数、モデルおよび属性を示す。
【0063】
必要数とは、合成オブジェクト62〜65を生成するにあたり必要とする基本オブジェクト61の数である。
【0064】
合成オブジェクト62は、2つの基本オブジェクト61を必要とする。すなわち、2つの基本オブジェクト61同士を合成する必要がある。
【0065】
合成オブジェクト63は、3つ分の基本オブジェクト61を必要とする。すなわち、1つの基本オブジェクト61と1つの合成オブジェクト62とを合成する必要がある。
【0066】
合成オブジェクト64は、4つ分の基本オブジェクト61を必要とする。すなわち、1つの基本オブジェクト61と1つの合成オブジェクト63とを合成する必要がある。また、2つの合成オブジェクト62同士を合成することでも合成オブジェクト64を生成してもよい。
【0067】
合成オブジェクト65は、5つ分の基本オブジェクト61を必要とする。すなわち、1つの基本オブジェクト61と1つの合成オブジェクト64とを合成する必要がある。また、1つの合成オブジェクト62と1つの合成オブジェクト63を合成することでも合成オブジェクト65を生成してもよい。
【0068】
モデルとは、ゲーム画面5に表示されるオブジェクトのモデルであり、それぞれ見た目が異なる。これにより、ユーザは各プレイヤオブジェクト60に関し、合成した基本オブジェクト61の数を知ることができる。
【0069】
属性とは、各プレイヤオブジェクト60に設定された能力値(能力、攻撃力)である。属性は各プレイヤオブジェクト60で異なる。
【0070】
能力とは、いわゆる固有のスキルである。
「なし」とは、スキルがないことを示す。プレイヤオブジェクト60がノンプレイヤオブジェクト70に衝突することで、そのノンプレイヤオブジェクト70のみに攻撃力に応じたダメージを与える。また、衝突とともにそのノンプレイヤオブジェクト70は仮想ゲーム空間から消去される。
【0071】
「貫通」とは、プレイヤオブジェクト60がノンプレイヤオブジェクト70に衝突することで、そのノンプレイヤオブジェクト70に攻撃力に応じたダメージを与え、さらに、衝突したノンプレイヤオブジェクト70を貫通し、その先に存在する他のノンプレイヤオブジェクト70にも攻撃を可能とするものである。すなわち、「貫通」とは1体のみではなく、2体以上のノンプレイヤオブジェクト70への攻撃を可能にするものである。
【0072】
なお、プレイヤオブジェクト60は、ノンプレイヤオブジェクト70に衝突する毎に、予め設定された体力値を減算させ、その体力値が0になるまでノンプレイヤオブジェクト70を貫通して攻撃することができる。また、これに限らず、所定数分のノンプレイヤオブジェクト70を貫通して攻撃できるように設定しても良いし、所定時間貫通して攻撃できるようにしても良い。
【0073】
「爆発」とは、プレイヤオブジェクト60がノンプレイヤオブジェクト70に衝突することで爆発し、所定範囲内にいるノンプレイヤオブジェクト70も巻き込んで攻撃力に応じたダメージを与えることを可能にするものである。また、衝突とともにそのノンプレイヤオブジェクト70は仮想ゲーム空間から消去される。
【0074】
「貫通爆発」とは、プレイヤオブジェクト60がノンプレイヤオブジェクト70に衝突することで爆発し、所定範囲内にいるノンプレイヤオブジェクト70も巻き込んで攻撃力に応じたダメージを与えることを可能にするものである。また、プレイヤオブジェクト60は衝突したノンプレイヤオブジェクト70を貫通し、その先に存在する他のノンプレイヤオブジェクト70にも衝突する。すなわち、プレイヤオブジェクト60はノンプレイヤオブジェクト70に衝突する度に爆発する多段爆発攻撃を可能とするものである。
【0075】
「大爆発」とは、プレイヤオブジェクト60がノンプレイヤオブジェクト70に衝突することで爆発し、たとえばゲーム画面5に表示される全てのノンプレイヤオブジェクト70に対して攻撃力に応じたダメージを与えることを可能にするものである。すなわち、上記「爆発」「貫通爆発」より広い範囲であって攻撃力が高い爆発(攻撃)である。
【0076】
これらの固有な属性を有するプレイヤオブジェクト60は、ゲーム進行中(ゲームを中断せず)にユーザの操作に基づいて生成される。
【0077】
上述したように、各プレイヤオブジェクト60は合成する基本オブジェクト61の数に応じて属性が異なる。これにより、ユーザは有限であるプレイヤオブジェクト60をゲーム進行にあわせて適宜生成および合成し、ゲームステージに出現するノンプレイヤオブジェクト70をすべて倒すことが必要となる。このように、生成できる基本オブジェクト61(合成できる合成オブジェクト62〜65)の数には限度があるため、ユーザはどのような属性のプレイヤオブジェクト60をいつ生成するか、またいつ使用するかをその時々で判断する必要がある。
【0078】
たとえば、モブオブジェクト71の体力が10だとする。このとき、1つの基本オブジェクト61(攻撃力10)をこのモブオブジェクト71に衝突するだけでモブオブジェクト71を倒すことができる。ここで、このモブオブジェクト71に対しては、合成オブジェクト65(攻撃力30の大爆発)を衝突させた場合もモブオブジェクト71を倒すことができる。しかし、合成オブジェクト65を生成するには5つの基本オブジェクト61が必要である。すなわち、この場合、4つの基本オブジェクト61が無駄に使用される。
【0079】
その結果、ユーザはゲームステージ終盤などで、基本オブジェクト61の最大生成個数を超える可能性があり、ゲームステージをクリアすることができなくなる。
【0080】
さらに、基本オブジェクト61だけで戦闘した場合はクリアできない、または、合成オブジェクト62〜64だけで戦闘した場合はクリアできないゲーム内容(ノンプレイヤオブジェクト70の登場パターン)を、一つのゲームステージに対して設定する。これにより、ゲームの攻略の戦略がより豊富であって興趣性の高いゲームを提供することができる。
【0081】
図5は、
図3に示す状況において、基本オブジェクト61Aと61Bとを合成した後の状態を示す図である。
【0082】
図5に示すゲーム画面5には、ソープオブジェクト50、基本オブジェクト61C、モブオブジェクト71およびボスオブジェクト72などのほか、合成オブジェクト62が表示される。
【0083】
合成オブジェクト62は、基本オブジェクト61Aと61Bとを合成したプレイヤオブジェクト60である。合成に利用した基本オブジェクト61Aと61Bは仮想ゲーム空間から消去され、それに代わって新たに生成された合成オブジェクト62が表示される。
【0084】
図6に示すゲーム画面5には、ソープオブジェクト50、モブオブジェクト71およびボスオブジェクト72などのほか、合成オブジェクト63が表示される。
【0085】
合成オブジェクト63は、基本オブジェクト61Cと合成オブジェクト62とを合成したプレイヤオブジェクト60である。合成に利用した基本オブジェクト61Cは仮想ゲーム空間から消去され、それに代わって新たに生成された合成オブジェクト63が表示される。
【0086】
図7は、本実施形態におけるプレイヤオブジェクト60の合成について説明する図である。同図では、基本オブジェクト61Aと61Bとの合成について説明するが、基本オブジェクト61と合成オブジェクト(62〜65)、および合成オブジェクト(62〜65)同士を合成する場合も同様である。
【0087】
図7(A)は、ユーザの操作により基本オブジェクト61Aを基本オブジェクト61Bに衝突させて合成することを示す。基本オブジェクト61Bは、角度θ2の方向に速さV2で移動している(たとえば、θ2=45°、V2=2km/h)。これに対し、基本オブジェクト61Aは、ユーザのフリック操作により角度θ1の方向に速さV1で移動する(たとえば、θ1=0°、V1=4km/h)。
【0088】
図7(B)は、基本オブジェクト61Aと基本オブジェクト61Bとが衝突したあとに生成される合成オブジェクト62の移動方向および速度を決定する処理を説明する図である。新たに生成される合成オブジェクト62の速度は、基本オブジェクト61Aおよび基本オブジェクト61Bの速度のうち遅い方の速度となる。すなわち、本実施形態では、合成オブジェクト62の速度は、浮遊中の基本オブジェクト61Bの速度と同一となる。具体的には、前述したとおり、基本オブジェクト61Bの速度がV2(=2km/h)であるため、合成オブジェクト62の速度もV2(=2km/h)となる。
【0089】
また、新たに生成される合成オブジェクト62の角度は、基本オブジェクト61Aの角度と基本オブジェクト61Bの角度との和を2で割った角度となる。すなわち、前述したとおり、基本オブジェクト61Aの角度がθ1(=0°)、基本オブジェクト61Bの角度がθ2(=45°)である場合、合成オブジェクト62の角度は[(θ1+θ2)/2](=22.5°)となる。
【0090】
図7(C)は、基本オブジェクト61Aと基本オブジェクト61Bとが衝突したあとに生成される合成オブジェクト62の移動方向および速度を示す図である。同図に示すように、基本オブジェクト61Aおよび61Bは消去され、合成オブジェクト62がゲーム画面に表示される。この合成オブジェクト62は前述したように、角度[(θ1+θ2)/2](=22.5°)、速度V2(=2km/h)で仮想ゲーム空間を移動する。
【0091】
なお、ユーザによって操作される基本オブジェクト61Aと、仮想ゲーム空間を移動または停滞している基本オブジェクト61Bとが衝突する場合、所定条件を満たすことで合成される。たとえば、基本オブジェクト61Aと基本オブジェクト61Bが衝突したと判定した際に、基本オブジェクト61Aの所定位置(たとえば中心)から基本オブジェクト61Bの所定位置(たとえば中心)へ向かうベクトルv1と、基本オブジェクト61Bのベクトルv2のなす角θ0を求め、なす角θ0が所定値より大きい場合に合成を行う。
【0092】
一方、なす角θ0が所定値より小さい場合、合成を行わずに互いに反発したり押し合ったりする処理(接触処理)を行う。すなわち、基本オブジェクト61Aが基本オブジェクトに61Bに勢いよく衝突する場合は合成し、基本オブジェクト61Aが基本オブジェクトに61Bをかすめるなど勢いよく衝突しない場合は合成を行わない。なお、この条件は、基本オブジェクト61Aを基本オブジェクト61Bに衝突させる場合に限られない。たとえば、基本オブジェクト61Bを、合成オブジェクト62に衝突させる場合など、プレイヤオブジェクト60同士を合成する場合に採用される。
【0093】
接触処理とは、プレイヤオブジェクト60同士が接触して、反発したり押し合ったりすることである。また、移動しているプレイヤオブジェクト60は所定時間移動することで減速して停止する。移動、停止および接触などの各処理については、所定の物理演算により実行可能であり詳細説明は省略する。
【0094】
このように、ユーザはゲーム状況にあわせて仮想ゲーム空間内にプレイヤオブジェクト60を生成することができる。なお、ユーザはプレイヤオブジェクト60を生成して仮想ゲーム空間内(ゲームステージ)にストックすることでき、これらのプレイヤオブジェクト60は互いに接触などすることにより仮想ゲーム空間内を浮遊する。
【0095】
ユーザは、刻々と変化するゲーム状況に合わせて、最適と考えるプレイヤオブジェクト60をノンプレイヤオブジェクト70に衝突させて撃退する。また、ノンプレイヤオブジェクト70は仮想ゲーム空間内を移動するため、ユーザが意図せずノンプレイヤオブジェクト70とストックさせておいたプレイヤオブジェクト60が衝突することがある。
【0096】
なお、基本オブジェクト61と合成オブジェクト62〜65は略同じ大きさである(少なくとも、1つの合成オブジェクト62〜65の大きさは、2つの基本オブジェクト61より小さい)。そのため、複数ある基本オブジェクト61を合成オブジェクト62〜65にすることによって仮想ゲーム空間をプレイヤオブジェクト60で整理整頓され、仮想ゲーム空間内をプレイヤオブジェクト60で埋め尽くすことを回避できる。これにより、ユーザは生成したプレイヤオブジェクト60の配置もゲーム攻略上重要となる。
【0097】
<処理の流れ>
次に、上記ゲーム装置3の処理の流れについて説明する。
図8は、本ゲーム装置3の基本オブジェクト51の生成処理の流れを示すフローチャートである。この処理は、所定の間隔(たとえば60fps間隔)で実行される。なお、ゲームの全体的なフローなどについては省略する。また、各フローの順序は本実施形態に限らず、適宜変更されるものであってもよい。
【0098】
まず、操作入力部300Aは、ユーザによるソープオブジェクト50への操作入力があったか否かを判定する(ステップS101)。操作入力部300AがステップS101において、操作入力ありと判定した場合(ステップS101:YES)、オブジェクト生成部300Eは生成可能な生成個数(最大生成個数MAX)が0より大きいか否かを判定する(ステップS102)。
【0099】
そして、オブジェクト生成部300Eは、ステップS102において、最大生成個数(MAX)が0より大きいと判定した場合(ステップ102:YES)、基本オブジェクト61を生成する(ステップS103)。
【0100】
次に、オブジェクト管理部300Fは、基本オブジェクト61に関する最大生成個数(MAX)から1を引いた数に更新する(ステップS104)。
【0101】
また、オブジェクト制御部300Gは、ソープオブジェクト50のモデルデータを更新する(ステップS105)。たとえば、ソープオブジェクトを段階的に小さいモデルなどに差し替える。
【0102】
なお、制御部30は、操作入力部300AがステップS101において「操作なし」と判定した場合(ステップS101:NO)、またはオブジェクト生成部300EがステップS102にて「最大生成個数(MAX)が0であると」判定した場合(ステップS102:NO)、このフローの処理を終了する。
【0103】
図9は、本ゲーム装置3の各プレイヤオブジェクトの合成処理の流れを示すフローチャートである。この処理は、所定の間隔(たとえば60fps間隔)で実行され、各ノンプレイヤオブジェクト70すべてに対してそれぞれ実行される。なお、各フローの順序は本実施形態に限らず、適宜変更されるものであってもよい。
【0104】
まず、オブジェクト合成部300Hは、プレイヤオブジェクト60が他のプレイヤオブジェクト60と衝突したか否かを判定する(ステップS201)。
【0105】
オブジェクト合成部300Hは、ステップS201において「衝突した」と判定した場合(ステップ201:YES)、両オブジェクトの移動速度および移動方向を取得する(ステップS202)。
【0106】
オブジェクト合成部300Hは、ステップS202で取得した各情報に基づき、所定条件を満たす否かを判定する(ステップS203)。すなわち、プレイヤオブジェクト60と、他のプレイヤオブジェクト60とのなす角θ0が所定値以上であるか否かを判定する。
【0107】
オブジェクト合成部300Hは、ステップS203において、「所定条件を満たす」と判定した場合(ステップ203:YES)、両オブジェクトを合成する(ステップS204)。一方、オブジェクト合成部300Hは、ステップS203において、「所定条件を満たさない」と判定した場合(ステップ203:NO)、両オブジェクトを合成せずに、プレイヤオブジェクト60同士が接触して、反発したり押し合ったりする処理を実行する(ステップ205)。
【0108】
なお、制御部30は、オブジェクト合成部300HがステップS201において「衝突していない」と判定した場合(ステップS201:NO)、ステップS203において「所定条件を満たさない」と判定した場合(ステップS203:NO)、ステップ205の接触処理の実行が完了した場合、このフローの処理を終了する。
【0109】
<作用効果>
本実施形態によれば、ユーザは敵であるノンプレイヤオブジェクト70と戦闘を行う際、ゲーム進行中にプレイヤオブジェクト60(基本オブジェクト61)を生成する必要がある。また、この基本オブジェクト61には最大生成個数が設定されている。さらに、プレイヤオブジェクト60同士を合成することで、基本オブジェクト61とは異なる属性の合成オブジェクト62〜65が生成される。
【0110】
そのため、ユーザはゲーム内容(ノンプレイヤオブジェクト70の種類や出現タイミング)に見合った属性のプレイヤオブジェクト60を生成(合成)する必要がある。これにより、本件発明は、ゲームの攻略の戦略が豊富であり、興趣性の高いゲームを提供することができる。
【0111】
<他の実施例>
次に、本実施形態における他の実施例について説明する。これらの他の実施例においても、上記作用効果を奏することができる。
【0112】
本実施形態では、ソープオブジェクト50からは、基本オブジェクト61だけが生成すると説明した。しかし、これに代えてまたはこれに加えて、ソープオブジェクト50から、合成済みの合成オブジェクト62〜65を出現させてもよい。この合成オブジェクト62〜65は、ランダムで出現させても良いし、ユーザの特殊な操作方法(たとえば、ソープオブジェクトをスワイプ操作したり、連続してタップしたりする操作)によって出現させる。
【0113】
本実施形態では、基本オブジェクト61を生成する毎に最大生成個数(MAX)を減算するとした。しかし、これに代えて、基本オブジェクト61を生成する毎に生成個数を、最大生成個数まで加算するようにしてもよい。すなわち、基本オブジェクト61が生成できる個数に上限を設ければよく、それを管理する方法は本実施形態に限定されない。
【0114】
また、これらに加えて、オブジェクト管理部300Fは、生成可能な生成個数を所定条件により増加するようにしてもよい。たとえば、仮想ゲーム空間に設置されるアイテムを取得したり、3秒以内に連続して5体のノンプレイヤオブジェクト70を倒したり(コンボ)などすることにより生成可能な生成個数を増加させる。
【0115】
また、オブジェクト管理部300Fは、基本オブジェクト61のみならず、合成オブジェクト62〜65も生成する毎に、最大生成個数から減算するようにしてもよい。もしくは、オブジェクト管理部300Fは、基本オブジェクト61の生成個数とは別に、合成オブジェクト62〜65が生成可能な合成個数を管理し、合成オブジェクト62〜65を生成する毎に減算するようにしてもよい。この場合、基本オブジェクト61の最大生成個数と合成オブジェクト62〜65の最大合成個数の両方により、プレイヤオブジェクト60の生成が管理されるため、よりゲームの攻略の戦略が豊富となり、興趣性の高いゲームを提供することができる。
【0116】
オブジェクト制御部300Gは、プレイヤオブジェクト60同士を衝突させて生成した合成オブジェクト62〜65の速度を、遅い速度のプレイヤオブジェクト60と同一とするとした。しかし、これに代えて、合成オブジェクト62〜65の速度を、速い速度のプレイヤオブジェクト60と同一としてもよいし、二つのプレイヤオブジェクト60の平均速度を求めて設定しても良い。
【0117】
オブジェクト制御部300Gは、プレイヤオブジェクト60同士を衝突させて生成した合成オブジェクト62〜65の速度と角度を、二つのプレイヤオブジェクト60のベクトルから求めても良い。
【0118】
また、本実施形態では、合成を伴う衝突の条件を、プレイヤオブジェクト60と、他のプレイヤオブジェクト60とのなす角θ0が所定値以上であることとした。しかし、これに代えて、ユーザが合成を望む2つのプレイヤオブジェクト60をスワイプ操作により衝突させてもよいし、2つのプレイヤオブジェクト60をタップ操作(選択)するだけで合成するようにしてもよい。
【0119】
本実施形態では、プレイヤオブジェクト60の属性を、爆発の有無、貫通または反射、攻撃力などであると説明したが、これに限らない。属性は、プレイヤオブジェクト60の特徴が異なれば何でもよく、爆発の範囲、爆発の回数、防御力および特殊なスキルなどでもよい。なお、プレイヤオブジェクト60の属性は、合成に必要な基本オブジェクト61の数が多くなるに連れて、ユーザにとって有利になることが好ましい。
【0120】
本実施形態では、基本オブジェクト61を合成することで合成オブジェクト62〜65を生成することのみを説明したが、一度生成した合成オブジェクト62〜65を所定の操作などによって、合成オブジェクト62〜65に対応した個数の基本オブジェクト61に再度戻しても良い。
【0121】
また、本実施形態では、泡型のプレイヤオブジェクト60が、ばい菌型のノンプレイヤオブジェクト70と仮想的な戦闘を実行するゲームに関するゲームプログラムを例にとって説明した。しかし、本件発明は、これに限られない。各オブジェクトは泡やばい菌に限らず、ゲーム性はシューティングゲーム、アクションゲームおよびRPGであってもよい。