以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必要構成要件であるとは限らない。
1.ゲームシステム
図1は、本実施形態のゲームシステム(ネットワークシステム、ソーシャルネットワークシステム)を示す。本実施形態では、複数の端末10とサーバ20(サーバシステム)とによって構成される。つまり、図1に示すように、本実施形態のゲームシステムは、サービスを提供するサーバ20と、端末10とが、ネットワーク(例えば、インターネット)に接続可能に構成される。
サーバ20は、複数のユーザ(プレーヤ)間でコミュニケーションを提供することが可能なサービスを提供する情報処理装置であり、本実施形態ではSNS(ソーシャル・ネットワーキング・サービス)と呼ばれるコミュニティ型のサービスを提供するサーバである。つまり、サーバ20は、ユーザの情報(ユーザ名、日記、掲示情報、ゲームフィールドの状況など)をログインしたユーザだけでなく、当該ユーザとフレンド関係にある他のユーザにも送信し、ユーザ間でコミュニケーションを図るようにしている。サーバ20は、会員登録を行ったユーザに限定してサービスを提供するようにしてもよい。サーバ20は、1又は複数のサーバ(認証サーバ、ゲーム処理サーバ、通信サーバ、課金サーバ、データベースサーバ等)により構成してもよい。
また、本実施形態のサーバ20は、端末10からの要求に応じて、オンラインゲームサービス(ソーシャルゲーム)を提供する。本実施形態では、端末10においてゲームプログラムが実行され、サーバ20では、プレーヤのアカウント情報や、端末10で実行されるゲームのゲーム結果、当該ゲームで使用可能なゲーム媒体(カード、オブジェクト等)、ゲームで使用可能なアイテム、当該ゲームで使用可能なゲーム内通貨などの情報、当該ゲームを構成するステージに関する情報等が管理される。
端末10は、携帯端末(スマートフォン、携帯電話、携帯型ゲーム機等)、パーソナルコンピュータ(PC)、ゲーム装置、画像生成装置などの情報処理装置であり、インターネット(WAN)、LANなどのネットワークを介してサーバ20に接続可能な装置である。なお、端末10とサーバ20との通信回線は、有線でもよいし無線でもよい。
2.端末の説明
図2(A)(B)は、本実施形態における端末10の外観を示す図の一例である。
本実施形態では、図2(A)に示す表示画面(ディスプレイ)12が、液晶ディスプレイと、タッチパネル(接触検出領域)とが積層されたタッチパネルディスプレイとなっている。すなわち、本実施形態では、表示画面12が入力部160として機能するとともに表示部290としても機能する(以下、「表示画面12」は「タッチパネル12」ともいう。)。
なお、プレーヤは、指先やタッチペンなどの入力機器を用いてタッチパネル12への接触入力(接触操作入力)を行う。そして、タッチパネル12は、接触入力によって接触位置を検出する。
3.構成
3.1 端末の構成
図3に本実施形態の端末10(ゲーム装置)の機能ブロック図の一例を示す。なお本実施形態の端末は図3の構成要素(各部)の一部を省略した構成としてもよい。
入力部160は、プレーヤからの入力情報を入力(検出)するための機器であり、プレーヤの入力情報(操作入力)を処理部100に出力する。入力部160の機能は、タッチパネル12により実現することができる。
検出部162は、プレーヤの接触入力をタッチパネル12から検出する。つまり、本実施形態の入力部160は、画像が表示される画面上における2次元の接触位置の座標(x,y)を検出可能な検出部162を備えている。つまり、接触位置は、プレーヤの接触入力により、タッチパネル12から得られる位置情報である。
プレーヤの接触入力とは、タッチパネル12に触れる操作入力を言うが、より詳細に説明すると、プレーヤの接触入力には、
(1)指で軽く触れる「タッチ」(なお、「タッチ」を「タップ」と言ってもよい)
(2)指でふれたままなぞり、離す「スライド」(なお、「スライド」を「ドラッグ」と言ってもよい)
(3)指で軽くはじく「フリック」
(4)タッチしたままにする「長押し」(なお、「長押し」を「タッチアンドホールド」或いは「ロングタップ」と言ってもよい)
等がある。
なお、本実施形態のプレーヤの接触入力には、ユーザの指等によるタッチパネル12上への直接的な接触入力及び、ポインティングデバイスなどのデバイスを介して実行される間接的なタッチパネル12上への接触入力の他に、タッチパネル12に直接的及び間接的に接触入力をせずに、タッチパネル12上への擬似的な接触入力も含まれる。
例えば、擬似的な接触入力とは、
(1)赤外線などの光ビームをタッチパネル面と平行に当該タッチパネル面に近接した位置で照射し、当該タッチパネル12の一端部に縦横方向に一定間隔に形成される複数の照射部と、各照射部と対を構成し、当該各照射部に対向するタッチパネルの他端部に設けられ、各照射された光ビームをそれぞれ受信する複数のセンサとによって、タッチパネル12に接触又は近接した際に光ビームが遮断された縦横の座標を検出し、当該検出した座標に基づいて認識する接触入力、及び、
(2)タッチパネル12の表示面を撮像するカメラを設け、当該カメラによってユーザがタッチパネル12に接触又は近接した位置座標を検出し、当該検出した位置座標に基づいて認識する接触入力、タッチパネル12に実際に接触することによって又は近接させて検
出することによって認識する接触入力を含む。
また、タッチパネル12に同時に複数の接触位置が検出される場合には、いずれか1つの接触位置(先に検出された接触位置)を用いるようにしてもよいし、複数の接触位置を同時に処理してもよい。
なお、タッチパネル12に複数の検出領域が存在する場合には、各検出領域において、1つの接触位置(先に検出された接触位置)を用いるようにしてもよい。また、検出領域とは、取得した接触位置のうち、移動・動作制御、コマンド受け付け制御など処理部200で処理するための接触位置を予め特定するタッチパネル12上の範囲である。
なお、入力部160は、マウス、レバー、方向キー、ボタン、キーボード、マイク、加速度センサなどを備えていてもよい。
記憶部170は、処理部100の各部としてコンピュータを機能させるためのプログラムや各種データを記憶するとともに、処理部100や通信部196のワーク領域として機能し、その機能はハードディスク、RAMなどにより実現できる。
そして、本実施形態の記憶部170は、ワーク領域として使用される主記憶部171と、表示画像等が記憶される画像バッファ172と、プレーヤ情報を記憶するプレーヤ情報記憶部173、ゲーム履歴を記憶するゲーム履歴記憶部174とを含む。なお、これらの一部を省略する構成としてもよい。
例えば、主記憶部171には、操作指示体Aの入力回数や操作指示体Bの入力回数が記憶される。
なお、プレーヤ情報とは、プレーヤが所有するゲーム媒体(プレーヤオブジェクト)に関する情報(パラメータ、属性、レベル等)、プレーヤが所有するアイテムに関する情報、ゲーム内通貨等の情報等である。
また、ゲーム履歴とは、プレーヤがゲームプレイした時間(開始時刻、終了時刻)、ゲームプレイの結果、ログイン回数、ゲームのプレイ回数、前回ログインしてから再度ログインするまでの時間、クリアしたゲームのステージ数等である。
特に、本実施形態の記憶部170には、接触検出処理部110において取得された接触位置などを主記憶部171に記憶する。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。
また、情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。なお、処理部100は、後述するように、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネルディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。
特に、本実施形態の表示部190は、タッチパネルディスプレイを用いることによりプレーヤがゲーム操作を行う入力部160としても機能する。ここでタッチパネルとして、例えば抵抗膜方式(4線式、5線式)、静電容量方式、電磁誘導方式、超音波表面弾性波方式、赤外線走査方式などのタッチパネルを用いることができる。
振動部191は、処理部100の処理結果に基づき、端末が備える振動部材(バイブレータ、モーター等)を振動させる。
音出力部192は、処理部100で生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
通信部196はサーバ20との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお、サーバ20が有する情報記憶媒体や記憶部に記憶されているプログラムや各種データを、ネットワークを介して受信し、受信したプログラムやデータを記憶部170に記憶してもよい。このようにプログラムや各種データを受信して端末の処理部100の各部としてコンピュータを機能させる場合も本発明の範囲内に含む。
処理部100(プロセッサ)は、入力部160からの入力情報(操作入力)、記憶部170や情報記憶媒体180に格納されるプログラム及びデータ、通信部196を介して受信したデータなどに基づいて、ゲーム処理、画像生成処理、音生成処理、などの処理を行う。処理部100は、記憶部170内の主記憶部171をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
処理部100は、接触検出処理部110、計時部111、判定部112、カウント処理部113、受け付け部114、報知処理部115、所定周期設定部116、所定期間設定部117、コマンド設定部118、表示制御部119、通信制御部120、オブジェクト空間設定部121、ゲーム処理部122、移動・動作処理部123、仮想カメラ制御部124、画像生成部130、音生成部140を含む。
接触検出処理部110は、操作指示体に対応するタッチパネル上の検出領域において接触入力を検出する。
例えば、接触検出処理部110は、第1の操作指示体に対応するタッチパネル上の第1の検出領域において接触入力を検出する処理と、第2の操作指示体に対応するタッチパネル上の第2の検出領域において接触入力を検出する処理とを行ってもよい。
また、接触検出処理部110は、複数の操作指示体それぞれに対応するタッチパネル上の検出領域において接触入力を検出する処理を行ってもよい。
計時部111は、検出領域において前記接触入力が検出された場合に、接触入力が検出された時点から前記接触入力が継続して検出される経過時間を計時する。
例えば、計時部111は、操作指示体毎に、当該操作指示体に対応する検出領域において、接触入力が検出された場合に、当該接触入力が検出された時点から当該接触入力が継続して検出される経過時間を計時する。
判定部112は、接触入力が検出された時点から前記接触入力が継続して検出される経過時間が判定期間を経過したか否かを判定する。
判定部112は、操作指示体毎に、経過時間が判定期間を経過したか否かを判定してもよい。
カウント処理部113は、判定部112において経過時間が判定期間を経過したと判定された場合に、接触入力継続中に、経過時間に応じて操作指示体の入力回数をカウントする。
また、カウント処理部113は、経過時間が所定周期を経過する度に、当該所定周期を経過するタイミングで入力回数をカウントするようにしてもよい。
また、カウント処理部113は、経過時間が、接触入力が検出された時点又は直前にカウントされた時点から次に受け付けるコマンドの種類に対応付けられた所定期間を経過するタイミングで、入力回数をカウントするようにしてもよい。
なお、カウント処理部113は、操作指示体毎に、当該操作指示体に対する入力回数をカウントする。
受け付け部114は、カウント処理部113において入力回数がカウントされた場合に、入力回数がカウントされたタイミングで操作指示体のコマンドを受け付ける。
受け付け部114は、カウント処理部113において入力回数がカウントされた場合に、当該カウントされた入力回数に対応付けられた種類のコマンドを受け付ける。
また、接触検出処理部110が第1の操作指示体(例えば、操作指示体B)の接触入力を検出した直後に第2の操作指示体(例えば、操作指示体A)の接触入力を検出した場合には、受け付け部114は、第2の操作指示体の入力回数がカウントされた場合に、第2の操作指示体の入力回数がカウントされたタイミングで、最後にカウントされた第1の操作指示体の入力回数に対応付けられた種類の第2の操作指示体のコマンドを受け付けるようにしてもよい。また、受け付け部114は、最後にカウントされた第1の操作指示体の入力回数と、第2の操作指示体の入力回数がカウントされたタイミングの当該第2の操作指示体の入力回数と、に対応付けられた種類の第2の操作指示体のコマンドを受け付けるようにしてもよい。
報知処理部115は、接触入力継続中に、接触入力が継続して検出される経過状況を報知する。
所定周期設定部116は、オブジェクトの状態、オブジェクトのレベル、及び、ゲーム履歴の少なくとも1つに応じて所定周期を設定する。
所定期間設定部117は、オブジェクトの状態、オブジェクトのレベル、及び、ゲーム履歴の少なくとも1つに応じて所定期間を設定する。
コマンド設定部118は、プレーヤの入力情報に基づき、予め入力回数毎にコマンドの種類を設定する。
表示制御部119は、表示部190にゲーム画面を表示する制御を行う。例えば、表示
制御部119は、オブジェクト(プレーヤの操作対象のオブジェクト(プレーヤオブジェクト)や敵オブジェクト等)の表示物やAボタン、Bボタンなどの操作指示体を表示する制御を行う。
通信制御部120は、サーバ20又は他の端末10とネットワークを介してデータを送受信する処理を行う。例えば、通信制御部120は、ゲームを開始した場合には、ゲームを開始したことを通知するための情報をサーバ20に送信し、ゲームが終了した場合には、ゲーム結果や各種ゲームパラメータに関するゲーム結果情報をサーバ20に送信してもよい。
また、通信制御部120は、プレーヤ情報記憶部173に記憶されているプレーヤ情報、ゲーム履歴記憶部174に記憶されているゲーム履歴等を、サーバ20に送信してもよい。
また、通信制御部120は、プレーヤ情報やゲーム履歴が変更された場合に、変更後の情報をサーバ20に送信してもよい。
オブジェクト空間設定部121は、プレーヤオブジェクト、敵オブジェクト、樹木、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクト(モデルオブジェクト)の位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
ゲーム処理部122は、受け付け部114において受け付けたコマンドに基づいて、ゲーム処理を行う。
特に、本実施形態のゲーム処理部122は、受け付け部114において受け付けたコマンドに基づいて攻撃の動作を行う。
ゲーム処理部122は、移動・動作処理部123を含む。移動・動作処理部123は、オブジェクト(プレーヤオブジェクト、敵オブジェクト等)の移動・動作演算(移動・動作シミュレーション)を行う。即ち入力部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクト(移動オブジェクト)をオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
また、ゲーム処理部122は、プレーヤの入力情報に基づいて、オブジェクト空間に配置された複数のオブジェクトのうちの一のオブジェクト選択を受け付け、選択されたオブジェクトに対して受け付けたコマンドに基づく動作結果に基づきゲームを進行させる処理を行う。
例えば、ゲーム処理部122は、プレーヤオブジェクト及び敵オブジェクトの少なくとも一方のパラメータ(体力値、消費パラメータ、攻撃力、防御力などのゲームパラメータ)を制御する。
また、ゲーム処理部122は、ステージ毎に、当該ステージのクリア条件を満たしたか否かを判定する処理を行い、クリア条件の判定結果をゲーム履歴としてゲーム履歴記憶部174に記憶する処理を行ってもよい。
また、ゲーム処理部122は、ステージのクリア条件を満たした場合に、プレーヤオブジェクトのレベルや経験値などのパラメータを変動(例えば、増加)させる処理を行う。
移動・動作処理部123は、プレーヤの操作対象のプレーヤオブジェクトが敵オブジェクトに対して第1の動作、第2の動作、・・第nの動作、第n+1の動作(nは1以上の整数)を含む複数の動作を連続して行う連続動作におけるプレーヤの操作対象のプレーヤオブジェクト及び敵オブジェクトの移動及び動作の少なくとも一方を演算する。
仮想カメラ制御部124は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
例えば、仮想カメラ制御部124は、仮想カメラによりオブジェクト(例えばプレーヤオブジェクト)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部123で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
画像生成部130は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これによりゲーム画像を生成し、表示部190に出力する。画像生成部130は、オブジェクト空間(ゲーム空間)内において仮想カメラ(所与の視点)から見える画像(いわゆる3次元画像)を生成してもよい。
例えば、画像生成部130は、3次元ゲーム画像を生成する場合には、まず、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を画像バッファ172(フレームバッファ、ワークバッファなどのピクセル単位で画像情報を記憶できるバッファ。VRAM)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
音生成部140は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
3.2 サーバの構成
図4に本実施形態のサーバ20の機能ブロック図の例を示す。本実施形態のサーバ20は図4の構成要素(各部)の一部を省略した構成としてもよい。
記憶部270は、処理部200や通信部296などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。記憶部270は、主記憶部272、格納
部260(例えば、データベース)を含む。
格納部260には、サーバ20が管理する端末の端末識別情報又はプレーヤ識別情報(ユーザアカウント、ユーザ識別情報)に対応付けて、プレーヤのログイン時に必要とされるパスワード、プレーヤのメールアドレス(宛先)、課金情報等を格納してもよい。
情報記憶媒体280(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部200は、情報記憶媒体280に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体280には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
通信部296は外部(例えば、端末、他のサーバや他のゲームシステム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
処理部200(プロセッサ)は、記憶部270や情報記憶媒体280に記憶されるプログラム及びデータ、通信部296を介して受信したデータなどに基づいて、処理を行う。具体的には、端末からの要求に応じてサービスを提供する。
また、処理部200は記憶部270内の主記憶部272をワーク領域として各種処理を行う。処理部200の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
特に、本実施形態のサーバの処理部200は、ネットワーク設定部210、通信制御部211、ゲーム制御部214と、を含む。なお、これらの一部を省略する構成としてもよい。
ネットワーク設定部210は、プレーヤ識別情報又は端末識別情報を端末10から受信し、受信したプレーヤ識別情報又は端末識別情報に対応づけて、プレーヤのネットワーク情報を、格納部260に格納する。
通信制御部211は、端末10とネットワークを介してデータを送受信する処理を行う。つまり、通信制御部211は、プレーヤの端末10からの要求に基づいて、要求に応じた情報を当該端末10に送信する。
ゲーム制御部214は、ゲームに関する種々の制御を行う。例えば、ゲーム制御部214は、ゲーム装置(端末10)から送信されたゲーム結果情報を受信し、当該ゲーム結果情報に基づいて、各プレーヤに対応付けられた各種データの更新処理を行う。
なお、本実施形態のサーバ20の処理部200は、端末10の処理部100の一部又は全部の処理を行うようにしてもよい。
サーバ20は、プレーヤが所有するゲーム媒体に関する情報や、プレーヤが所有するアイテムに関する情報、ゲーム内通貨等のプレーヤ情報、及び、ゲーム履歴を端末10から受信し、サーバの記憶部270(格納部260)に当該プレーヤ情報、及び、当該ゲーム履歴を記憶する処理を行う。つまり、サーバ20は、プレーヤ毎に、プレーヤの識別情報に対応づけて、プレーヤが所有するゲーム媒体に関する情報や、プレーヤが所有するアイ
テムに関する情報、ゲーム内通貨等のプレーヤ情報、ゲーム履歴を記憶する処理を行う。
また、サーバ20は、プレーヤ情報、ゲーム履歴が変更された場合において、当該変更後の情報を端末10から受信した場合には、変更後の内容に更新する処理を行う。
4.本実施形態の手法
4.1 概要
本実施形態の端末は、図5Aに示すように、プレーヤオブジェクトP1〜P4、敵オブジェクトQ1、Q2とマップMPとが配置された仮想3次元オブジェクト空間を仮想カメラから見た画像を生成し、タッチパネル12(表示部190)に表示させる。そして、プレーヤは、表示部190を見ながらタッチパネル12を接触入力してプレーヤオブジェクトの移動・動作を操作し、敵オブジェクトと対戦を行うゲームを楽しむ。
また、本実施形態では、図5Aに示すように、タッチパネル12上に操作指示体A、B、C、Iを表示する。プレーヤは、操作指示体Aに対応する検出領域gaにおいて接触入力を行うことによって、特殊攻撃(技、術の攻撃)のコマンドの入力を行うことができる。また、プレーヤは操作指示体Bに対応する検出領域gbにおいて接触入力を行うことによって、通常攻撃のコマンドの入力を行うことができる。また、プレーヤは操作指示体Cに対応する検出領域gcにおいて接触入力を行うことによって、防御のコマンドの入力を行うことができる。また、プレーヤは操作指示体Iに対応する検出領域giにおいて接触入力を行うことによって、必殺技の攻撃のコマンドの入力を行うことができる。
また、本実施形態では、図5Bに示すように、プレーヤは、検出領域gfにおいてスライド入力を行うことよってマップMP(X、Z方向)でプレーヤオブジェクトを移動させることができる。
また、本実施形態では、図5Bに示すように、プレーヤは、検出領域ggにおいて、フリック入力を行うことによって、操作対象のプレーヤオブジェクトP1〜P4のうちいずれか1体を選択することができる。
ところで、従来の端末では、操作ボタンが備えられていることが多く、この操作ボタンをプレーヤは連続的に押下することにより、プレーヤオブジェクトが連続的に敵に対して攻撃を行う動作を行わせることができた。例えば、通常攻撃を3回行わせる連打の操作を行った後に、特殊攻撃を行うことによって、敵オブジェクトに大ダメージを与えることができた。
しかし、タッチパネルへの接触入力を行ってプレーヤオブジェクトが連続的に敵に対して攻撃を行う動作を行わせる場合、連続的にタッチ(タップ)するような接触入力を行うことが難しく、プレーヤが誤入力をしてしまうおそれがあった。例えば、プレーヤが、操作指示体Bに対して3回タッチを行ったつもりでいたとしても、一部のタッチが操作指示体Aに対するタッチになってしまうことがあった。
そこで、本実施形態では、接触入力が検出された場合に、接触入力が検出された時点から当該接触入力が継続して検出される経過時間を計時し、経過時間が判定期間を経過したと判定された場合(いわゆる「長押し」と判定された場合)に、接触入力継続中に、経過時間に応じて操作指示体に対する入力回数をカウントし、入力回数がカウントされる度に、コマンドを受け付けるように制御する。
このようにすれば、タッチパネル上においてプレーヤは長押しという単純な接触入力によって、連続的にコマンド入力を行うことができ、その結果、プレーヤの誤入力を回避す
ることができ操作性を向上させることができるからである。以下、詳細に説明する。
4.2 長押しの判定処理
本実施形態では、各操作指示体に対応する検出領域において接触入力を検出する。そして、本実施形態では、各操作指示体の検出領域において接触入力が検出された場合には、接触入力検出開始時から当該接触入力が継続して検出される経過時間(長押しの期間)を計時する。
ここで、接触入力検出開始時とは、同一の検出領域内において、接触入力が検出されていない状態から接触入力が検出されている状態に変化した時点のことである。
そして、各操作指示体の検出領域において、経過時間が判定期間を経過したか否かを判定する処理を行い、当該経過時間が判定期間を経過したと判定された場合に、長押しの接触入力を行っていると判定する。
4.3 入力回数をカウントする処理
そして、本実施形態では、操作指示体A、Bそれぞれについて、操作指示体の検出領域において接触入力が検出された場合に、接触入力検出開始時から当該接触入力が継続して検出される経過時間に応じて当該操作指示体の入力回数をカウントする処理を行う。つまり、操作指示体A、Bそれぞれについて長押しと判定された場合に、長押しの期間に応じて入力回数をカウントする処理を行う。なお、「入力回数」は、1回の長押しの接触入力を行った際にコンピュータ(受け付け部)が受け付けるコマンドの入力回数である。例えば、現実的に、プレーヤは操作指示体Aに対して1回の長押しの接触入力を行うだけで、長押しの期間に応じて、例えば複数回の特殊攻撃のコマンドの入力を行うことができる。
4.3.1 操作指示体Aの入力回数をカウントする処理
まず、本実施形態の操作指示体Aの長押しの接触入力に基づく入力回数のカウントの処理について説明する。
例えば、図6に示すように、操作指示体Aが表示される検出領域gaにおいて接触入力が検出された場合には、接触入力検出開始時Tsaから当該接触入力が継続して検出される経過時間Txaを計時する。
そして、接触入力継続中に、リアルタイムに経過時間Txaに応じて操作指示体Aに対する入力回数xaをカウントする。つまり、プレーヤは長押しの接触入力継続中において特殊攻撃のコマンドを連続的に入力することができる。例えば、長押し終了後、すなわち、プレーヤがタッチパネル12から指等を離したタイミングで特殊攻撃のコマンドを受け付ける場合よりも、リアルタイムに進行するゲームにおいて特殊攻撃のコマンドが受け付けられるので、プレーヤはストレスなくゲームプレイを行うことができる。
なお、本実施形態では、入力回数xaの初期値として0が設定される。つまり、接触入力を検出したタイミングTsaでxaに0を設定する。
なお、本実施形態では、入力回数xaの上限を4にしている。つまり、プレーヤは続けて4回までの特殊攻撃をプレーヤオブジェクトに対して行わせることができる。
(1)所定周期に基づくカウント処理
本実施形態では、図6に示すように、操作指示体Aの接触入力検出開始時Tsaから当該接触入力が継続して検出される経過時間Txaが判定期間Tdを経過し長押しと判定されると、経過時間Txaが所定周期D(例えば、0.5秒)を経過する度に入力回数xa
をカウントする。なお、カウントするとは、1を加算する意味である。
例えば、接触入力検出開始時Tsaから所定周期Dを経過したタイミングT1で、入力回数xaをカウントする。つまり、入力回数xaを1に更新する。
そして、タイミングT1から所定周期Dを経過したタイミングT2で、入力回数xaをカウントする。つまり、入力回数xaを2に更新する。
そして、タイミングT2から所定周期Dを経過したタイミングT3で、入力回数xaをカウントする。つまり、入力回数xaを3に更新する。
なお、本実施形態では、操作対象のプレーヤオブジェクトの状態、操作対象のプレーヤオブジェクトのレベル、及び、ゲーム履歴の少なくとも1つに応じて所定周期Dを設定してもよい。
例えば、操作対象のプレーヤオブジェクトの状態が、スロウ状態など特別な状態が設定されている場合には、所定周期Dを通常状態よりも長くするように制御してもよい。なお、通常状態とは、特別な状態でない状態のことをいう。例えば、通常状態では所定周期Dを0.5秒に設定し、特別な状態では所定周期Dを1秒に設定する。すなわち、本実施形態では、プレーヤオブジェクトが敵オブジェクトの特殊攻撃を受けてダメージを被った場合、プレーヤオブジェクトの動きを遅くするスロウ状態にするように制御し、プレーヤにとって不利な状況になるように制御することがある。本実施形態では、スロウ状態では所定周期Dも長くするようにし、コマンドを連続的に入力する際には長期的に長押しをしなければならない状況にし、プレーヤにとって不利な状況になるように制御している。
また、操作対象のプレーヤオブジェクトのレベルが上昇するにつれて、所定周期Dを短くするように制御してもよい。プレーヤのレベルが上昇することは長押しによるコマンド入力に慣れてきていると考えられるからである。つまり、本実施形態では、プレーヤオブジェクトのレベルの上昇に応じて所定周期Dを短くするようにし、操作性を向上させるようにしている。
例えば、操作対象のプレーヤオブジェクトのレベルが1〜10である場合には所定周期Dを0.5秒に設定し、プレーヤオブジェクトのレベルが11〜20である場合には、所定周期Dを0.4秒に設定する。つまり、プレーヤオブジェクトのレベルが上がるにつれて、所定周期Dの期間を減少するように制御する。
また、プレーヤのゲーム履歴に応じて所定周期Dを設定してもよい。ゲーム履歴とは、ゲームプレイ時間、勝敗結果等である。例えば、ゲームプレイ時間が長くなるにつれて、所定周期Dを短くするように制御してもよい。ゲームプレイ時間が上昇することは長押しによるコマンド入力に慣れてきていると考えられるからである。つまり、本実施形態では、ゲームプレイ時間の上昇に応じて所定周期Dを短くするようにし、操作性を向上させるようにしている。
例えば、プレーヤのゲームプレイ時間が10時間未満である場合には所定周期Dを0.5秒に設定し、プレーヤのゲームプレイ時間が10時間以上20時間未満である場合には、所定周期Dを0.4秒に設定してもよい。つまり、プレーヤのゲームプレイ時間が上がるにつれて、所定周期Dの期間を減少するように制御する。
(2)所定期間に基づくカウント処理
本実施形態では、図7に示すように、操作指示体Aの接触入力検出開始時Tsaから当
該接触入力が継続して検出される経過時間Txaが判定期間Tdを経過し長押しと判定されると、経過時間Txaが、接触入力検出開始時Tsa又は直前にカウントされた時点から次に入力を受け付けるコマンドの種類に対応付けられた所定期間を経過するタイミングで、入力回数xaをカウントしてもよい。
ここでコマンドの種類とは、コマンドの特性であり、本実施形態では、操作指示体Aについては10種類程のコマンドが用意されている。なお、コマンドの種類はゲーム進行に応じて増えるものであってもよい。
例えば、コマンドの種類が異なるとは、攻撃力、防御力、モーションデータ等が異なることになる。また、一部の種類のコマンドについては、敵オブジェクトから受ける攻撃を無効(敵オブジェクトの攻撃力を0にする)ように制御することができる。
本実施形態では、図8に示すように、コマンドの種類に対応付けられた所定期間Eを設定している。例えば、コマンドCm1に対応付けられた所定期間E1は0.4秒、コマンドCm2に対応付けられた所定期間E2は0.5秒、コマンドCm3に対応付けられた所定期間E3は1秒とする。例えば、モーションの再生期間が長いコマンドの種類については、モーション再生期間が短いコマンドの種類よりも所定期間を長くするように制御する。また、攻撃力が高いコマンドの種類については、攻撃力が低いコマンドの種類よりも所定期間を長くするように制御する。
また、本実施形態では、図9に示すように、入力回数xaに対応付けて予めコマンドの種類が設定されている。本実施形態では、次にカウントする予定の入力回数xaの値に対応付けられたコマンドの種類を参照し、当該コマンドの種類に対応付けられた所定期間を参照して、入力回数xaをカウントする。
例えば、図7に示すように、接触入力検出開始時Tsaから当該接触入力が継続して検出される経過時間Txaが判定期間Tdを経過し長押しと判定されると、接触入力検出開始時Tsaからの経過時間Txaが、コマンドCm1(入力回数xa=1)に対応づけられた所定期間E1(例えば、0.4秒)を経過したタイミングT11で、入力回数xaをカウントする。つまり、入力回数xaを1に更新する。
そして、直前にカウントされたタイミングT11から、コマンドCm2(入力回数xa=2)に対応づけられた所定期間E2(例えば、0.5秒)を経過したタイミングT12で、入力回数xaをカウントする。つまり、入力回数xaを2に更新する。
そして、直前にカウントされたタイミングT12から、コマンドCm3(入力回数xa=3)に対応づけられた所定期間E3(例えば、1秒)を経過したタイミングT13で、入力回数xaをカウントする。つまり、入力回数xaを3に更新する。
なお、本実施形態では、操作対象のプレーヤオブジェクトの状態、操作対象のプレーヤオブジェクトのレベル、及び、ゲーム履歴の少なくとも1つに応じて所定期間Eを設定してもよい。
例えば、操作対象のプレーヤオブジェクトの状態が、スロウ状態など特別な状態が設定されている場合には、コマンドの種類に対応付けられた所定期間Eを通常状態よりも長くするように制御してもよい。例えば、通常状態においてはコマンドCm1に対応付けられた所定期間E1を0.3秒に設定し、特別な状態においてはコマンドCm1に対応付けられた所定期間E1を1秒に設定してもよい。本実施形態では、スロウ状態では所定期間Eも長くするようにし、コマンドを連続的に入力する際には長期的に長押しをしなければな
らない状況にし、プレーヤにとって不利な状況になるように制御している。
また、操作対象のプレーヤオブジェクトのレベルが上昇するにつれて、コマンドの種類に対応付けられた所定期間Eを短くするように制御してもよい。プレーヤのレベルが上昇することは長押しによるコマンド入力に慣れてきていると考えられるからである。つまり、本実施形態では、プレーヤオブジェクトのレベルの上昇に応じて所定期間Eを短くするようにし、操作性を向上させるようにしている。
例えば、操作対象のプレーヤオブジェクトのレベルが1〜10である場合にはコマンドCm1に対応付けられた所定期間E1を0.5秒に設定し、操作対象のプレーヤオブジェクトのレベルが11〜20である場合には、コマンドCm1に対応付けられた所定期間E1を0.4秒に設定する。つまり、操作対象のプレーヤオブジェクトのレベルが上がるにつれて、コマンドCm1に対応付けられた所定期間E1の期間を減少するように制御する。
また、プレーヤのゲーム履歴に応じてコマンドの種類に対応付けられた所定期間Eを設定してもよい。例えば、ゲームプレイ時間が長くなるにつれて、コマンドCm1に対応付けられた所定期間E1を短くするように制御してもよい。ゲームプレイ時間が上昇することは長押しによるコマンド入力に慣れてきていると考えられるからである。つまり、本実施形態では、ゲームプレイ時間の上昇に応じて所定期間Eを短くするようにし、操作性を向上させるようにしている。
例えば、プレーヤのゲームプレイ時間が10時間未満である場合にはコマンドCm1に対応付けられた所定期間E1を0.5秒に設定し、プレーヤのゲームプレイ時間が10時間以上20時間未満である場合には、コマンドCm1に対応付けられた所定期間E1を0.4秒に設定する。つまり、プレーヤのゲームプレイ時間が上がるにつれて、コマンドCm1に対応付けられた所定期間E1の期間を減少するように制御する。
4.3.2 操作指示体Bの入力回数をカウントする処理
本実施形態では、操作指示体Bに対しても、操作指示体Aと同様に、長押し判定を行い、長押しと判定された場合に操作指示体Bに対する入力回数をカウントする。
例えば、操作指示体Bが表示される検出領域gbにおいて接触入力が検出された場合には、図10に示すように、接触入力検出開始時Tsbから当該接触入力が継続して検出される経過時間Txbを計時する。
そして、接触入力継続中に、リアルタイムに経過時間Txbに応じて操作指示体Bに対する入力回数xbをカウントする。つまり、プレーヤは長押しの接触入力継続中に通常攻撃のコマンドを連続的に入力することができる。
なお、本実施形態では、入力回数xbの初期値として0が設定される。つまり、接触入力を検出したタイミングTsbでxbに0を設定する。
特に、本実施形態では、操作指示体Bについては所定周期Dに基づくカウント処理を行う。
例えば、接触入力検出開始時Tsbから所定周期Dを経過したタイミングT21で、入力回数xbをカウントする。つまり、入力回数xbを1に更新する。
そして、タイミングT21から所定周期Dを経過したタイミングT22で、入力回数x
bをカウントする。つまり、入力回数xbを2に更新する。
そして、タイミングT22から所定周期Dを経過したタイミングT23で、入力回数xbをカウントする。つまり、入力回数xbを3に更新する。
なお、本実施形態では、入力回数xbの上限を3にしている。つまり、プレーヤは続けて3回までの通常攻撃をプレーヤオブジェクトに対して行わせることができる。
4.4 コマンドを受け付ける処理
本実施形態では、操作指示体Aの入力回数xaがカウントされた場合に、当該入力回数xaがカウントされたタイミングで操作指示体Aのコマンドを受け付ける処理を行う。
例えば、図6に示すように、所定周期Dで入力回数xaをカウントする場合には、入力回数xaがカウントされたタイミングT1、T2、T3で、操作指示体Aの特殊攻撃のコマンドを受け付ける。特に、操作指示体Aの場合は、複数種類の特殊攻撃が用意されている。本実施形態では、図9に示すように、入力回数xaの値に対応付けられた種類のコマンドを受け付ける。つまり、入力回数xaがカウントされたタイミングT1で、入力回数xaが「1」に対応付けられたコマンドCm1を受け付け、次に入力回数xaがカウントされたタイミングT2で、入力回数xaが「2」に対応付けられたコマンドCm2を受け付け、次に、入力回数xaがカウントされたタイミングT3で、入力回数xaが「3」に対応付けられたコマンドCm3を受け付ける。
また、例えば、図7に示すように、所定期間Eで入力回数xaをカウントする場合にも、入力回数xaがカウントされたタイミングT11、T12、T13で、操作指示体Aの特殊攻撃のコマンドを受け付ける。つまり、入力回数xaがカウントされたタイミングT11で、入力回数xaが「1」に対応付けられたコマンドCm1を受け付け、次に入力回数xaがカウントされたタイミングT12で、入力回数xaが「2」に対応付けられたコマンドCm2を受け付け、次に、入力回数xaがカウントされたタイミングT13で、入力回数xaが「3」に対応付けられたコマンドCm3を受け付ける。
また、本実施形態では、操作指示体Bの入力回数xbがカウントされた場合に、当該入力回数xbがカウントされたタイミングで操作指示体Bのコマンドを受け付ける処理を行う。
例えば、図10に示すように、所定周期Dで入力回数xbをカウントする場合には、入力回数xbがカウントされたタイミングT21、T22、T23で、操作指示体Bの通常攻撃のコマンドCmbを受け付ける。本実施形態では、通常攻撃のコマンドの種類は1種類としているが、異なる複数の種類の通常攻撃のコマンドを受け付けるようにしてもよい。
4.5 コマンドを実行する処理
そして、本実施形態では、受け付けたコマンドに基づいて、ゲーム処理を行う。つまり、受け付けたコマンドを実行する処理を行う。
(1)操作指示体Aに対して入力されたコマンドの実行
本実施形態では、操作指示体Aに対する接触入力を受け付けた場合には、プレーヤオブジェクトが敵オブジェクトに「特殊攻撃」を行う移動・動作(モーション)処理を行う。
例えば、図6に示すように、タイミングT1においてコマンドCm1が受け付けられた場合には、タイミングT1と同じタイミングTm1から第1の動作m1を行わせる。また
、図7に示すように、タイミングT11においてコマンドCm1が受け付けられた場合には、タイミングT11と同じタイミングTm11から第1の動作m1を行わせる。
この第1の動作m1は、プレーヤオブジェクトが敵オブジェクトにコマンドCm1の特殊攻撃を行うための動作(例えば、プレーヤオブジェクトPがジャンプして敵オブジェクトTを剣で切りつける動作)である。
なお、特殊攻撃では、通常攻撃よりもダメージを与えることができる。例えば、特殊攻撃では通常攻撃の10〜20倍のダメージを敵オブジェクトTに与えることができる。
そして、プレーヤが操作指示体Aに対して長押しによる接触入力を行った場合には、「特殊攻撃」の動作を連続的に行う。
つまり、本実施形態では、図9に示すように、操作指示体Aに対して3回の入力回数を受け付けた場合には、入力回数が1回目(xa=1)に対応付けられたコマンドCm1の「特殊攻撃」の第1の動作m1を行い、その後、続けて入力回数が2回目(xa=2)に対応付けられたコマンドCm2の「特殊攻撃」の第2の動作m2を行い、その後、続けて入力回数が3回目(xa=3)に対応付けられたコマンドCm3の「特殊攻撃」の第3の動作m3を行う。
つまり、本実施形態では、プレーヤオブジェクトが敵オブジェクトに対して、第1の動作m1、第2の動作m2、・・・第Nの動作mn、第N+1の動作m(n+1)の動作を含む複数の動作を連続して行う連続動作におけるプレーヤオブジェクト及び敵オブジェクトの移動及び動作の少なくとも一方を演算する連続動作処理を行う。
連続動作は、連続データを構成する各動作に対応して定義されているモーションデータにしたがってプレーヤオブジェクトを動作させることによって実現できる。
例えば、図6に示すように、時刻T1と同時刻のTm1から連続動作の最初の動作である第1の動作m1が開始(表示)されるとする。Tm1〜Tm3は第1の動作m1が行われる期間であり、Tm2から所与の期間は第2の動作m2が行われる。ここで、Tm2〜Tm3の期間は、第1の動作m1から第2の動作m2に移行するためのシフト期間sfである。例えば、sfに示すシフト期間では、第1の動作m1のTm2における姿勢(プレーヤオブジェクトの各関節の回転等)から第2の動作m2のTm3における姿勢(プレーヤオブジェクトの各関節の回転等)にスムーズに移行するためのモーション補間が行われる。
このように、本実施形態では、長押しによって連続的にコマンドを受け付けている場合には、第Nの動作に連続して第N+1の動作が行われるように制御する。
また、本実施形態では、図6に示すように、操作指示体Aに対するコマンドの受け付けは、プレーヤオブジェクトが第1の動作m1を行っている最中に操作指示体Aの2回目、3回目のコマンドを受け付けることができる。また、図7に示すように、操作指示体Aに対するコマンドの受け付けは、プレーヤオブジェクトが第1の動作m1を行っている最中に操作指示体Aの2回目のコマンドを受け付け、プレーヤオブジェクトが第2の動作m2を行っている最中に操作指示体Aの3回目のコマンドを受け付けることができる。つまり、操作指示体Aのコマンドの先行入力が可能となり、プレーヤにとって使いやすい操作環境を提供している。
(2)操作指示体Bに対して入力されたコマンドの実行
本実施形態では、操作指示体Bに対する接触入力を受け付けた場合には、プレーヤオブジェクトが敵オブジェクトに「通常攻撃」を行う移動・動作(モーション)処理を行う。
例えば、図10に示すように、タイミングT21においてコマンドCmbが受け付けられた場合には、タイミングT21と同じタイミングTm21から第1の動作m1bを行わせる。
この第1の動作m1bは、プレーヤオブジェクトが敵オブジェクトに通常攻撃を行うための動作(例えば、プレーヤオブジェクトが敵オブジェクトに対して剣を振り下ろして切りつける動作)を行う。そして、「通常攻撃」では、プレーヤオブジェクトは敵オブジェクトに対して例えば「10」のダメージを与える(つまり、敵オブジェクトTの体力値(HP値)から攻撃力「10」を減算する処理を行う)。
そして、プレーヤが操作指示体Bに対して長押しによる接触入力を行った場合には、「通常攻撃」の動作を連続的に行う。
つまり、本実施形態では、操作指示体Bに対して3回の入力回数を受け付けた場合には、3回の「通常攻撃」を行う。
例えば、3回の通常攻撃を行う場合には、プレーヤオブジェクトが敵オブジェクトに対して剣を振り下ろす第1の動作m1b、剣を敵に向かって突き出す第2の動作m2b、剣を横になぎ払う第3の動作m3bを連続的に行う。
なお、通常攻撃の連続動作処理については、特殊攻撃と同様に、連続データを構成する各動作に対応して定義されているモーションデータにしたがってプレーヤオブジェクトを動作させることによって実現できる。
また、本実施形態では、通常攻撃の際も、プレーヤオブジェクトが第1の動作m1b等の動作を行っている最中に操作指示体Bのコマンドの先行入力が可能となり、プレーヤにとって使いやすい操作環境を提供している。
4.6 コマンドの設定
本実施形態では、プレーヤの入力情報に基づき、予め入力回数毎に、入力回数に対応付けて複数種類のコマンドのうちのいずれかの種類のコマンドを設定する。
例えば、図9に示すように、プレーヤの入力情報に基づき、予め操作指示体Aに対しての入力回数が1回(xa=1)の場合に受け付けるコマンドの種類(例えば、コマンドCm1)、入力回数が2回(xa=2)の場合に受け付けるコマンドの種類(例えば、コマンドCm2)、入力回数が3回(xa=3)の場合に受け付けるコマンドの種類(例えば、コマンドCm3)、入力回数が1回(xa=4)の場合に受け付けるコマンドの種類(例えば、コマンドCm4)を設定することができる。
このようにすれば、プレーヤは、予め連続的な入力によって実行されるコマンドの種類を決めることができ戦略的にゲームプレイすることができる。
4.7 連携処理
本実施形態では、敵オブジェクトの反撃を受けずに通常攻撃から特殊攻撃をつなげていくことで、連携(継続)の攻撃を行うことができる。つまり、連携攻撃では、通常攻撃の動作と特殊攻撃の動作が途切れることなく連続的に行われる。
(1)連携の判定処理
本実施形態では、図11に示すように、操作指示体Bの接触入力を検出した直後に操作指示体Aの接触入力を検出した場合に、連携を行うと判定する。例えば、操作指示体Bの入力回数xbを最後にカウントした時点T33から特定期間K内に、操作指示体Aの入力回数xaがカウントされた場合に、操作指示体Bの通常攻撃と操作指示体Aの特殊攻撃の連携を行うと判定する。特定期間Kは、例えば、1秒とすることができる。
つまり、図11の例では、特定期間K内のタイミングT34において操作指示体Aの入力回数xaがカウントされた(xa=1に更新された)ので、操作指示体Bの通常攻撃と操作指示体Aの特殊攻撃の連携を行うと判定する。
なお、本実施形態では、操作指示体Bの継続的な接触入力が終了したタイミングTebから操作指示体Aの接触入力を検出したタイミングTsaまでの期間が特定期間内か否かを判定し、タイミングTebからタイミングTsaまでの期間が特定期間である場合に、操作指示体Bの通常攻撃と操作指示体Aの特殊攻撃の連携を行うと判定してもよい。
(2)操作指示体Aのコマンドの種類を決定する処理の説明
本実施形態では、連携処理を行うと判定された場合(例えば、操作指示体Bの入力回数xbを最後にカウントした時点T33から特定期間K内に、操作指示体Aの入力回数xaがカウントされた場合)に、操作指示体Bの入力回数xbに対応付けられた種類の操作指示体Aのコマンドを受け付ける。
このようにすれば、プレーヤが入力可能なコマンドの種類が増加することになり、戦略的に楽しみながらゲームプレイできるからである。
図12は、カウント時の操作指示体Aの入力回数xaと、直前に受け付けた操作指示体Bの入力回数xbとに対応付けられた操作指示体Aのコマンドの種類を示す。
例えば、図11に示すように、操作指示体Bの通常攻撃と操作指示体Aの特殊攻撃の連携を行うと判定された場合、操作指示体Bの入力回数xbの値は3(xb=3)であるので、1回目(xa=1)の操作指示体Aのコマンドを受け付けたタイミングT34において、xa=1とxb=3とに対応付けられたコマンドCm31の入力を受け付ける。そして、2回目(xa=2)の操作指示体Aのコマンドを受け付けたタイミングT36において、xa=2とxb=3とに対応付けられたコマンドCm32の入力を受け付ける。
なお、連携処理を行うと判定された場合であって、操作指示体Bの入力回数xbの値が1(xb=1)である場合には、カウント時の入力回数xaと入力回数xb=1とに基づいて、カウント時の操作指示体Aのコマンドの種類を決定し、操作指示体Bの入力回数xbの値が2(xb=2)である場合には、カウント時の入力回数xaと入力回数xb=2とに基づいて、カウント時の操作指示体Aのコマンドの種類を決定する。また、連携処理がない場合は、xb=0となり、カウント時の入力回数xaと入力回数xb=0とに基づいて、カウント時の操作指示体Aのコマンドの種類を決定する。
なお、本実施形態では、予め、操作指示体Bの入力回数xbに対応付けて操作指示体Aのコマンドの種類を決めておき、直前に受け付けた操作指示体Bの入力回数xbに対応付けられた種類の操作指示体Aのコマンドを受け付けるようにしてもよい。
4.8 報知処理
本実施形態では、接触入力継続中に、接触入力が継続して検出される経過状況を報知する。
(1)表示制御
本実施形態では、操作指示体に対応するタッチパネル12上の検出領域において接触入力が継続して検出される経過状況を表示制御によって報知してもよい。
例えば、タッチパネル12(表示部190)に表示される操作指示体Aの周囲の色を、操作指示体Aの入力回数がカウントされるタイミングで、変化させる。つまり、操作指示体Aの色を、操作指示体Aのコマンドを受け付けるタイミングで、変化させる。なお、「操作指示体Aの周囲」とは、操作指示体A近くの範囲であり、プレーヤが視認できる範囲であればよい。
具体的には、図13に示すように、本実施形態では、入力回数xa=0の場合に操作指示体Aの周囲の色をデフォルトの色で表示し、入力回数xa=1の場合に操作指示体Aの周囲の色を赤で表示し、入力回数xa=2の場合に操作指示体Aの周囲の色を青で表示し、入力回数xa=3の場合に操作指示体Aの周囲の色を黄で表示し、入力回数xa=4の場合に操作指示体Aの周囲の色を緑で表示する。なお、接触入力がない状態や入力回数xa=0の場合、操作指示体Aの周囲の色をデフォルトの色で表示させる。デフォルトの色は、入力回数1回目の色と同じ色(例えば、赤)としているが、異なる色(例えば白色)にしてもよい。
つまり、図6に示すように、操作指示体Aの入力回数が2に更新されたタイミングT2で、操作指示体Aの周囲の色を、赤から青に切り替える。そして、操作指示体Aの入力回数が3に更新されたタイミングT3で、操作指示体Aの周囲の色を青から黄に切り替える。そして、接触入力終了時Teaで、操作指示体Aの周囲の色をデフォルトの色に戻す処理を行う。
なお、操作指示体Bについても、操作指示体Aと同じように、入力回数xbがカウントされるタイミングで操作指示体Bの周囲の色の切り替えを行うようにしてもよい。
また、接触入力が継続して検出される経過状況を、時計の針やゲージによって示すようにしてもよい。例えば、図6に示すように、接触入力を検出した時点Tsaから、接触入力を検出されなくなった時点Teaまでの期間中に、時間経過に応じてゲージを増加させる画像や秒針を回転させる時計画像を表示させてもよい。
(2)音制御
本実施形態では、操作指示体に対応するタッチパネル12上の検出領域において接触入力が継続して検出される経過状況を音制御によって報知してもよい。
例えば、操作指示体Aや操作指示体Bの入力回数がカウントされるタイミングで、所定音を出力するようにしてもよい。かかる場合には、入力回数の値に応じて異なる音を出力する、或いは、入力回数分の音出力を行うようにしてもよい。また、操作指示体A、Bにおいて異なる音を出力してもよい。
(3)振動制御
本実施形態では、操作指示体に対応するタッチパネル12上の検出領域において接触入力が継続して検出される経過状況を振動制御によって報知してもよい。
例えば、操作指示体Aや操作指示体Bの入力回数がカウントされるタイミングで、所定の振動を行うように制御してもよい。かかる場合には、入力回数の値に応じて異なる振動を行わせる、或いは、入力回数分の振動を行うようにしてもよい。また、操作指示体A、
Bにおいて異なる振動を行うようにしてもよい。
4.9 単押しの処理
本実施形態では、長押しと判定されない接触入力があった場合には入力回数が1回であると判定して処理を行う。
つまり、図14に示すように、操作指示体Aの接触入力検出開始時Tsaから当該接触入力が継続して検出される経過時間Txaを計時し、経過時間Txaが判定期間Tdを経過せずに、接触入力がタイミングTeaで終了した場合には、長押しと判定せずに単押しと判定し、入力回数xaを1に設定(カウント)し、タイミングTeaでxa=1に対応付けられた操作指示体Aのコマンドを受け付ける。つまり、タイミングTeaと同じタイミングTm31で、受け付けたコマンドに基づいてモーションm1を開始する。
また、図示していないが、操作指示体Bについても接触入力検出開始時Tsbから当該接触入力が継続して検出される経過時間Txbを計時し、経過時間Txbが判定期間Tdを経過せずに、接触入力がタイミングTebで終了した場合には、単押しと判定し、入力回数xbを1に設定(カウント)し、タイミングTebで操作指示体Bのコマンドを受け付け、受け付けたコマンドに基づくモーションm1bを開始する。
4.10 操作対象のプレーヤオブジェクト
本実施形態では、図5Aに示すように、複数のプレーヤオブジェクトP1〜P4が存在し、いずれか1体のプレーヤオブジェクトを操作対象とする。現在操作対象のプレーヤオブジェクトについてはマーカMKが示される。
そして、本実施形態では、図5Bに示すように、所定の検出領域ggにおけるフリック入力によって操作対象のプレーヤオブジェクトを選択する(切り替える)ことができる。例えば、プレーヤが右方向にフリック入力した場合には、現在選択中のプレーヤオブジェクトP1に対して右方向に位置するプレーヤオブジェクトP2を選択する。一方、プレーヤが左方向にフリックした場合には、現在選択中のプレーヤオブジェクトP1に対して左方向に位置するプレーヤオブジェクトP4を選択する。
4.11 移動処理
本実施形態では、操作対象のプレーヤオブジェクトに対して、図5Bに示すように、所定の検出領域gfにおけるスライド入力によって、仮想3次元空間のxz方面においての移動方向及び移動量を演算し、当該移動方向及び移動量に基づき操作対象のプレーヤオブジェクトを移動させる。
4.12 接触入力に基づくゲーム処理
つまり、本実施形態では、図15に示すように、左手で操作対象のプレーヤオブジェクトの移動のスライド入力を行い、右手で操作指示体A、B、C、Dについての接触入力(長押しの入力、単押しの入力)を行うことができる。
本実施形態では、操作対象のプレーヤオブジェクトを選択し、当該プレーヤオブジェクトに対して操作指示体Aのコマンド入力や、操作指示体Bのコマンド入力、操作指示体Cのコマンド入力、操作指示体Iのコマンド入力等を行うことによって、敵オブジェクトと対戦するゲーム処理を行う。
つまり、プレーヤはいずれか1体のプレーヤオブジェクトを選択するフリック入力を行う。そして、操作指示体A、操作指示体Bの接触入力(単押し、長押し)によってプレーヤオブジェクトを移動・動作させる。例えば、プレーヤオブジェクトが敵オブジェクトに
ヒットした場合には、敵オブジェクトの体力値からプレーヤオブジェクトの攻撃力を減算する。なお、敵オブジェクトが防御する動作、或いは、移動した場合には、プレーヤオブジェクトの攻撃が失敗することもある。
例えば、操作指示体Bの1回の通常攻撃のコマンド実行によって消費パラメータを1増加させる。また、操作指示体Aの1回の特殊攻撃のコマンド実行によって消費パラメータを1減算させる。また、特殊攻撃は通常攻撃よりも10〜20倍ほどの攻撃力を敵オブジェクトに与えることができるので、特殊攻撃を多用されるおそれがあるが、特殊攻撃を行うためには消費パラメータが必要となり、そのためには通常攻撃を行う必要があるのでプレーヤに通常攻撃を行うための接触入力を促すことができる。
特に、本実施形態では、通常攻撃から特殊攻撃への連携攻撃ができるので、通常攻撃によって敵オブジェクトにダメージを少しずつ与えながら消費パラメータを増加させつつ、最後に、消費パラメータを消費して特殊攻撃によって敵オブジェクトに大ダメージを与えるような戦略的なゲームプレイが可能となり、ゲームの興趣性を向上させることができる。
また、プレーヤは、敵オブジェクトからの攻撃動作が始まった場合には、操作指示体Cの接触入力を行って、操作対象のプレーヤオブジェクトに対して敵オブジェクトからの攻撃を防御することができる。つまり、操作対象のプレーヤオブジェクトに操作指示体Cの接触入力が行われた場合には、攻撃してきた敵オブジェクトの攻撃力からプレーヤオブジェクトの防御力を減算し、減算した値(ダメージ力)を当該プレーヤオブジェクトの体力値から減算する。
また、本実施形態では、攻撃や防御の成功数を蓄積した値が10以上になると、操作指示体Iの接触入力によって必殺技コマンドが入力可能となる。本実施形態では、必殺技コマンドを受け付けた場合には、必殺技コマンドを実行し、通常攻撃及び特殊攻撃よりも高い攻撃力を敵オブジェクトの体力値から減算する。
そして、本実施形態では、最終的には、プレーヤオブジェクトの体力値(HP値)と、敵オブジェクトの体力値とに基づいて勝敗を決定する。例えば、全てのプレーヤオブジェクトP1〜P4の体力値が0になる前に、一の対戦ゲームに登場する全ての敵オブジェクトの体力値が0になると、プレーヤの勝ち、敵オブジェクトの負けと判定する。
一方、一の対戦ゲームに登場する全ての敵オブジェクトの体力値が0になる前に、全てのプレーヤオブジェクトP1〜P4の体力値が0になると、プレーヤの負け、敵オブジェクトの勝ちと判定する。つまり、一の対戦ゲームにおいて、全プレーヤオブジェクトの体力値の合計と、全敵オブジェクトの体力値の合計とを比較し、先に体力値の合計値が0に達した方が敗者とし他方を勝者とするように判定する。
また、本実施形態では、図5Aに示すように、ディスプレイ12の上部にプレーヤオブジェクトの体力値を示すゲージや体力値を表示する。このようにすれば、プレーヤがゲーム中に各プレーヤオブジェクトの体力値を確認できる。
4.13 フローチャート
本実施形態の処理の流れについて図16A、図16B、図16Cを用いて説明する。
(1)操作指示体Bの通常攻撃のコマンドを受け付ける処理
まず、図16Aを用いて、操作指示体Bの通常攻撃のコマンドを受け付ける処理について説明する。
まず、操作指示体Bの入力回数xbに0を設定する(xb=0とする)(ステップS1)。そして、操作指示体Bの検出領域において接触入力を検出したか否かを判定する(ステップS2)。そして、操作指示体Bの検出領域において接触入力を検出した場合(ステップS2のY)、接触入力が検出された時点から当該接触入力が継続して検出される経過時間を計時する(ステップS3)。そして、経過時間が判定期間を経過したか否かを判定する(ステップS4)。一方、操作指示体Bの検出領域において接触入力を検出しない場合(ステップS2のN)、処理を終了する。
経過時間が判定期間を経過した場合(ステップS4のY)、長押しであると判定し(ステップS5)、経過時間が所定周期を経過したか否かを判断する(ステップS6)。一方、経過時間が判定期間を経過していない場合(ステップS4のN)、接触入力が継続されている場合には(ステップS11のY)、ステップS4に戻り、接触入力が継続されていない場合には(ステップS11のN)、単押しであると判定する(ステップS12)。そして、xbに1を設定し(xb=1とする)(ステップS13)、通常攻撃のコマンドを受け付ける(ステップS14)。
ステップS6において、経過時間が所定周期を経過した場合(ステップS6のY)、xbをカウントする(つまり、xbに1を加算する)(ステップS7)。そして、通常攻撃のコマンドを受け付ける(ステップS8)。一方、経過時間が所定周期を経過していない場合(ステップS6のN)、ステップS9に進む。
ステップS9では接触入力が継続されているか否かを判断し(ステップS9)、接触入力が継続されている場合は(ステップS9のY)、xb>3か否かを判断し(ステップS10)、xb>3である場合(ステップS10のY)、処理を終了する。一方、xb>3でない場合(ステップS10のN)は、ステップS6に戻る。また、接触入力が継続されていない場合は(ステップS9のN)は、処理を終了する。以上で処理が終了する。
(2)操作指示体Aの通常攻撃のコマンドを受け付ける処理
次に、図16Bを用いて、操作指示体Aの特殊攻撃のコマンドを受け付ける処理について説明する。
まず、操作指示体Aの入力回数xaに0を設定する(xa=0とする)(ステップS21)。そして、操作指示体Aの検出領域において接触入力を検出したか否かを判定する(ステップS22)。そして、操作指示体Aの検出領域において接触入力を検出した場合(ステップS22のY)、接触入力が検出された時点から当該接触入力が継続して検出される経過時間を計時する(ステップS23)。そして、経過時間が判定期間を経過したか否かを判定する(ステップS24)。一方、操作指示体Aの検出領域において接触入力を検出しない場合(ステップS22のN)、処理を終了する。
経過時間が判定期間を経過した場合(ステップS24のY)、長押しであると判定し(ステップS25)、経過時間が所定周期を経過したか否かを判断する(ステップS26)。一方、経過時間が判定期間を経過していない場合(ステップS24のN)、接触入力が継続されている場合には(ステップS31のY)、ステップS24に戻り、接触入力が継続されていない場合には(ステップS31のN)、単押しであると判定する(ステップS32)。そして、xaに1を設定し(xa=1とし)(ステップS33)、xa(操作指示体Aの入力回数xa=1)に対応付けられた特殊攻撃のコマンドを受け付ける(ステップS34)。なお、連携処理を行う場合には、入力回数xa=1と、最後にコマンドを受け付けた操作指示体Bの入力回数xbとに対応付けられた種類の特殊攻撃のコマンドを受け付ける。
ステップS26において、経過時間が所定周期を経過した場合(ステップS26のY)、xaをカウントする(つまり、xaに1を加算する)(ステップS27)。そして、ステップS27においてカウントされた入力回数xaに対応付けられた特殊攻撃のコマンドを受け付ける(ステップS28)。なお、連携処理を行う場合には、ステップS27においてカウントされた入力回数xaと、最後にコマンドを受け付けた操作指示体Bの入力回数xbとに対応付けられた種類の特殊攻撃のコマンドを受け付ける。
一方、経過時間が所定周期を経過していない場合(ステップS26のN)、ステップS29に進む。
ステップS29では、接触入力が継続されているか否かを判断し(ステップS29)、接触入力が継続されている場合は(ステップS29のY)、xa>4か否かを判断し(ステップS30)、xa>4である場合(ステップS30のY)、処理を終了する。一方、xa>4でない場合(ステップS30のN)は、ステップS26に戻る。また、接触入力が継続されていない場合は(ステップS29のN)は、処理を終了する。以上で処理が終了する。
(3)コマンドの実行処理
最後に、図16Cを用いて、受け付けたコマンドの実行処理について説明する。
まず、通常攻撃のコマンドを受け付けたか否かを判断する(ステップS41)。通常攻撃のコマンドを受け付けた場合(ステップS41のY)、通常攻撃の動作を行わせる(ステップS42)。一方、通常攻撃のコマンドを受け付けていない場合(ステップS41のN)、特殊攻撃のコマンドを受け付けたか否かを判断する(ステップS49)。特殊攻撃のコマンドを受け付けた場合(ステップS49のY)、ステップS45に進む。一方、特殊攻撃のコマンドを受け付けていない場合(ステップS49のN)、処理を終了する。
そして、ステップS43では、次の通常攻撃のコマンドを受け付けているか否かを判断する(ステップS43)。なお、ステップS43の処理は、ステップS42の動作中に次の通常攻撃のコマンドを受け付けている場合も、次の通常攻撃のコマンドを受け付けていると判断する。
次の通常攻撃のコマンドを受け付けている場合(ステップS43のY)、ステップS42に戻り、次の通常攻撃の動作を行わせる。
一方、次の通常攻撃のコマンドを受け付けていない場合(ステップS43のN)、特定期間内に特殊攻撃のコマンドを受け付けたか否かを判断する(ステップS44)。
特定期間内に特殊攻撃のコマンドを受け付けた場合(ステップS44のY)、ステップS45に進み、特定期間内に特殊攻撃のコマンドを受け付けていない場合(ステップS44のN)、処理を終了する。
そして、ステップS45では、Nに1を設定し(N=1とし)(ステップS45)、N回目に受け付けた特殊攻撃の動作を行わせる(ステップS46)。そして、次の特殊攻撃のコマンドを受け付けているか否かを判断する(ステップS47)。なお、ステップS47の処理は、ステップS42或いはステップS46の動作中に次の特殊攻撃のコマンドを受け付けた場合も、次の特殊攻撃のコマンドを受け付けていると判断する。
次の特殊攻撃のコマンドを受け付けている場合には(ステップS47のY)、Nに1を
加算し(ステップS48)、ステップS46に戻る。一方、次の特殊攻撃のコマンドを受け付けていない場合には(ステップS47のN)、処理を終了する。以上で処理が終了する。
5.応用例
本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
本実施形態では、対戦ゲームの例について説明したが、アクションゲーム、パズルゲーム、音楽ゲーム、シミュレーションゲーム、育成ゲームなどの他のゲームにおいても用いることがきる。
また、本実施形態は、一のサーバ20によって各ゲームを端末10に提供してもよいし、複数のサーバ20を連動させてサーバシステムを構築し、各ゲームを端末装置に提供してもよい。
本発明は、実施形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施形態で説明した構成に公知技術を付加した構成を含む。
上記のように、本発明の実施形態について詳細に説明したが、本発明の新規事項及び効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。したがって、このような変形例はすべて本発明の範囲に含まれるものとする。