〔実施形態1〕
本開示に係るゲームシステムは、複数のユーザにゲームを提供するためのシステムである。以下、ゲームシステムについて図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
<ゲームシステム1のハードウェア構成>
図1は、ゲームシステム1のハードウェア構成を示す図である。ゲームシステム1は図示の通り、複数のユーザ端末100と、サーバ200とを含む。各ユーザ端末100は、サーバ200とネットワーク2を介して接続する。ネットワーク2は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution)、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が挙げられる。
サーバ200(コンピュータ、情報処理装置)は、ワークステーションまたはパーソナルコンピュータ等の汎用コンピュータであってよい。サーバ200は、プロセッサ20と、メモリ21と、ストレージ22と、通信IF23と、入出力IF24とを備える。サーバ200が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
ユーザ端末100(コンピュータ、情報処理装置)は、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。ユーザ端末100は、ゲームプレイに適したゲーム装置であってもよい。ユーザ端末100は図示の通り、プロセッサ10と、メモリ11と、ストレージ12と、通信インターフェース(IF)13と、入出力IF14と、タッチスクリーン15(表示部)と、カメラ17と、測距センサ18とを備える。ユーザ端末100が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、ユーザ端末100は、タッチスクリーン15に代えて、または、加えて、ユーザ端末100本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF14を備えていてもよい。
また、図1に示すように、ユーザ端末100は、1つ以上のコントローラ1020と通信可能に構成されることとしてもよい。コントローラ1020は、例えば、Bluetooth(登録商標)等の通信規格に従って、ユーザ端末100と通信を確立する。コントローラ1020は、1つ以上のボタン等を有していてもよく、該ボタン等に対するユーザの入力操作に基づく出力値をユーザ端末100へ送信する。また、コントローラ1020は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値をユーザ端末100へ送信する。
なお、ユーザ端末100がカメラ17および測距センサ18を備えることに代えて、または、加えて、コントローラ1020がカメラ17および測距センサ18を有していてもよい。
ユーザ端末100は、例えばゲーム開始時に、コントローラ1020を使用するユーザに、該ユーザの名前またはログインID等のユーザ識別情報を、該コントローラ1020を介して入力させることが望ましい。これにより、ユーザ端末100は、コントローラ1020とユーザとを紐付けることが可能となり、受信した出力値の送信元(コントローラ1020)に基づいて、該出力値がどのユーザのものであるかを特定することができる。
ユーザ端末100が複数のコントローラ1020と通信する場合、各コントローラ1020を各ユーザが把持することで、ネットワーク2を介してサーバ200などの他の装置と通信せずに、該1台のユーザ端末100でマルチプレイを実現することができる。また、各ユーザ端末100が無線LAN(Local Area Network)規格等の無線規格により互いに通信接続する(サーバ200を介さずに通信接続する)ことで、複数台のユーザ端末100によりローカルでマルチプレイを実現することもできる。1台のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、ユーザ端末100は、さらに、サーバ200が備える後述する種々の機能の少なくとも一部を備えていてもよい。また、複数のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、複数のユーザ端末100は、サーバ200が備える後述する種々の機能を分散して備えていてもよい。
なお、ローカルで上述のマルチプレイを実現する場合であっても、ユーザ端末100はサーバ200と通信を行ってもよい。例えば、あるゲームにおける成績または勝敗等のプレイ結果を示す情報と、ユーザ識別情報とを対応付けてサーバ200に送信してもよい。
また、コントローラ1020は、ユーザ端末100に着脱可能な構成であるとしてもよい。この場合、ユーザ端末100の筐体における少なくともいずれかの面に、コントローラ1020との結合部が設けられていてもよい。該結合部を介して有線によりユーザ端末100とコントローラ1020とが結合している場合は、ユーザ端末100とコントローラ1020とは、有線を介して信号を送受信する。
図1に示すように、ユーザ端末100は、外部のメモリカード等の記憶媒体1030の装着を、入出力IF14を介して受け付けてもよい。これにより、ユーザ端末100は、記憶媒体1030に記録されるプログラム及びデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、例えばゲームプログラムである。
ユーザ端末100は、サーバ200等の外部の装置と通信することにより取得したゲームプログラムをユーザ端末100のメモリ11に記憶してもよいし、記憶媒体1030から読み込むことにより取得したゲームプログラムをメモリ11に記憶してもよい。
以上で説明したとおり、ユーザ端末100は、該ユーザ端末100に対して情報を入力する機構の一例として、通信IF13、入出力IF14、タッチスクリーン15、カメラ17、および、測距センサ18を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
例えば、操作部が、カメラ17および測距センサ18の少なくともいずれか一方で構成される場合、該操作部が、ユーザ端末100の近傍の物体1010を検出し、当該物体の検出結果から入力操作を特定する。一例として、物体1010としてのユーザの手、予め定められた形状のマーカーなどが検出され、検出結果として得られた物体1010の色、形状、動き、または、種類などに基づいて入力操作が特定される。より具体的には、ユーザ端末100は、カメラ17の撮影画像からユーザの手が検出された場合、該撮影画像に基づき検出されるジェスチャ(ユーザの手の一連の動き)を、ユーザの入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
あるいは、操作部がタッチスクリーン15で構成される場合、ユーザ端末100は、タッチスクリーン15の入力部151に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF13で構成される場合、ユーザ端末100は、コントローラ1020から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF14で構成される場合、該入出力IF14と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
<ゲーム概要>
ゲームシステム1は、一例として、第1キャラクタと、第2キャラクタとを戦わせる、いわゆる格闘要素を含むゲームを実行するためのシステムである。以降、第1キャラクタと第2キャラクタとを総称して、「キャラクタ」と記載する場合がある。ゲームシステム1は、一例として、ゲーム空間を定義し、該ゲーム空間に第1キャラクタ、第2キャラクタ、およびオブジェクトを配置する。オブジェクトは、第1キャラクタおよび第2キャラクタと接触(衝突)し得る。ゲームシステム1は、一例として、該ゲーム空間に複数のオブジェクトを配置する。オブジェクトの一例としては、地面、床、地面および床以外の足場、壁、天井などであるが、この例に限定されるものではない。
一例として、第1キャラクタおよび第2キャラクタには、第1キャラクタと第2キャラクタとの対戦の勝敗を決定するための第1パラメータが関連付けられている。該第1パラメータは、例えば、第1キャラクタおよび第2キャラクタそれぞれの体力を示すパラメータである。第1キャラクタによる第2キャラクタを対象とした攻撃が成功した場合、ゲームシステム1は、一例として、第2キャラクタに関連付けられた第1パラメータの値を減少させる。また、第2キャラクタによる第1キャラクタを対象とした攻撃が成功した場合、ゲームシステム1は、一例として、第1キャラクタに関連付けられた第1パラメータの値を減少させる。
また、ゲームシステム1は、一方のキャラクタを対象とした、他方のキャラクタの攻撃が成功した場合、該一方のキャラクタを強制的に移動させる(ふっ飛ばす)構成であってもよい。キャラクタが強制的に移動した結果、オブジェクトと衝突した場合、該キャラクタに関連付けられた第1パラメータの値を減少させてもよい。別の局面において、ゲームシステム1は、攻撃が成功し、かつ、所定の条件が成立した場合、攻撃の対象となったキャラクタを強制的に移動させる構成であってもよい。該所定の条件は、例えば、「攻撃に応じて特定される数値が、所定の閾値以上であること」であってもよい。
ゲームシステム1は、一例として、第2キャラクタに関連付けられた第1パラメータが所定の閾値以下となった場合、第2キャラクタが戦闘に敗北し、第1キャラクタが戦闘に勝利したと判定する。また、ゲームシステム1は、一例として、第1キャラクタに関連付けられた第1パラメータが所定の閾値以下となった場合、第1キャラクタが戦闘に敗北し、第2キャラクタが戦闘に勝利したと判定する。
<各装置のハードウェア構成要素>
プロセッサ10は、ユーザ端末100全体の動作を制御する。プロセッサ20は、サーバ200全体の動作を制御する。プロセッサ10および20は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。
プロセッサ10は後述するストレージ12からプログラムを読み出し、後述するメモリ11に展開する。プロセッサ20は後述するストレージ22からプログラムを読み出し、後述するメモリ21に展開する。プロセッサ10およびプロセッサ20は展開したプログラムを実行する。
メモリ11および21は主記憶装置である。メモリ11および21は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置で構成される。メモリ11は、プロセッサ10が後述するストレージ12から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ10に作業領域を提供する。メモリ11は、プロセッサ10がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ21は、プロセッサ20が後述するストレージ22から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ20に作業領域を提供する。メモリ21は、プロセッサ20がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
本実施形態においてプログラムとは、ゲームをユーザ端末100により実現するためのゲームプログラムであってもよい。あるいは、該プログラムは、該ゲームをユーザ端末100とサーバ200との協働により実現するためのゲームプログラムであってもよい。なお、ユーザ端末100とサーバ200との協働により実現されるゲームは、一例として、ユーザ端末100において起動されたブラウザ上で実行されるゲームであってもよい。あるいは、該プログラムは、該ゲームを複数のユーザ端末100の協働により実現するためのゲームプログラムであってもよい。また、各種データとは、ユーザ情報およびゲーム情報などのゲームに関するデータ、ならびに、ユーザ端末100とサーバ200との間または複数のユーザ端末100間で送受信する指示または通知を含んでいる。
ストレージ12および22は補助記憶装置である。ストレージ12および22は、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置で構成される。ストレージ12およびストレージ22には、ゲームに関する各種データが格納される。
通信IF13は、ユーザ端末100における各種データの送受信を制御する。通信IF23は、サーバ200における各種データの送受信を制御する。通信IF13および23は例えば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。
入出力IF14は、ユーザ端末100がデータの入力を受け付けるためのインターフェースであり、またユーザ端末100がデータを出力するためのインターフェースである。入出力IF14は、USB(Universal Serial Bus)等を介してデータの入出力を行ってもよい。入出力IF14は、例えば、ユーザ端末100の物理ボタン、カメラ、マイク、または、スピーカ等を含み得る。サーバ200の入出力IF24は、サーバ200がデータの入力を受け付けるためのインターフェースであり、またサーバ200がデータを出力するためのインターフェースである。入出力IF24は、例えば、マウスまたはキーボード等の情報入力機器である入力部と、画像を表示出力する機器である表示部とを含み得る。
ユーザ端末100のタッチスクリーン15は、入力部151と表示部152とを組み合わせた電子部品である。入力部151は、例えばタッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部152は、例えば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。
入力部151は、入力面に対しユーザの操作(主にタッチ操作、スライド操作、スワイプ操作、およびタップ操作等の物理的接触操作)が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部151は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。
図示していないが、ユーザ端末100は、該ユーザ端末100の保持姿勢を特定するための1以上のセンサを備えていてもよい。このセンサは、例えば、加速度センサ、または、角速度センサ等であってもよい。ユーザ端末100がセンサを備えている場合、プロセッサ10は、センサの出力からユーザ端末100の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。例えば、プロセッサ10は、ユーザ端末100が縦向きに保持されているときには、縦長の画像を表示部152に表示させる縦画面表示としてもよい。一方、ユーザ端末100が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ10は、ユーザ端末100の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。
カメラ17は、イメージセンサ等を含み、レンズから入射する入射光を電気信号に変換することで撮影画像を生成する。
測距センサ18は、測定対象物までの距離を測定するセンサである。測距センサ18は、例えば、パルス変換した光を発する光源と、光を受ける受光素子とを含む。測距センサ18は、光源からの発光タイミングと、該光源から発せられた光が測定対象物にあたって反射されて生じる反射光の受光タイミングとにより、測定対象物までの距離を測定する。測距センサ18は、指向性を有する光を発する光源を有することとしてもよい。
ここで、ユーザ端末100が、カメラ17と測距センサ18とを用いて、ユーザ端末100の近傍の物体1010を検出した検出結果を、ユーザの入力操作として受け付ける例をさらに説明する。カメラ17および測距センサ18は、例えば、ユーザ端末100の筐体の側面に設けられてもよい。カメラ17の近傍に測距センサ18が設けられてもよい。カメラ17としては、例えば赤外線カメラを用いることができる。この場合、赤外線を照射する照明装置および可視光を遮断するフィルタ等が、カメラ17に設けられてもよい。これにより、屋外か屋内かにかかわらず、カメラ17の撮影画像に基づく物体の検出精度をいっそう向上させることができる。
プロセッサ10は、カメラ17の撮影画像に対して、例えば以下の(1)〜(5)に示す処理のうち1つ以上の処理を行ってもよい。(1)プロセッサ10は、カメラ17の撮影画像に対し画像認識処理を行うことで、該撮影画像にユーザの手が含まれているか否かを特定する。プロセッサ10は、上述の画像認識処理において採用する解析技術として、例えばパターンマッチング等の技術を用いてよい。(2)また、プロセッサ10は、ユーザの手の形状から、ユーザのジェスチャを検出する。プロセッサ10は、例えば、撮影画像から検出されるユーザの手の形状から、ユーザの指の本数(伸びている指の本数)を特定する。プロセッサ10はさらに、特定した指の本数から、ユーザが行ったジェスチャを特定する。例えば、プロセッサ10は、指の本数が5本である場合、ユーザが「パー」のジェスチャを行ったと判定する。また、プロセッサ10は、指の本数が0本である(指が検出されなかった)場合、ユーザが「グー」のジェスチャを行ったと判定する。また、プロセッサ10は、指の本数が2本である場合、ユーザが「チョキ」のジェスチャを行ったと判定する。(3)プロセッサ10は、カメラ17の撮影画像に対し、画像認識処理を行うことにより、ユーザの指が人差し指のみ立てた状態であるか、ユーザの指がはじくような動きをしたかを検出する。(4)プロセッサ10は、カメラ17の撮影画像の画像認識結果、および、測距センサ18の出力値等の少なくともいずれか1つに基づいて、ユーザ端末100の近傍の物体1010(ユーザの手など)とユーザ端末100との距離を検出する。例えば、プロセッサ10は、カメラ17の撮影画像から特定されるユーザの手の形状の大小により、ユーザの手がユーザ端末100の近傍(例えば所定値未満の距離)にあるのか、遠く(例えば所定値以上の距離)にあるのかを検出する。なお、撮影画像が動画の場合、プロセッサ10は、ユーザの手がユーザ端末100に接近しているのか遠ざかっているのかを検出してもよい。(5)カメラ17の撮影画像の画像認識結果等に基づいて、ユーザの手が検出されている状態で、ユーザ端末100とユーザの手との距離が変化していることが判明した場合、プロセッサ10は、ユーザが手をカメラ17の撮影方向において振っていると認識する。カメラ17の撮影範囲よりも指向性が強い測距センサ18において、物体が検出されたりされなかったりする場合に、プロセッサ10は、ユーザが手をカメラの撮影方向に直交する方向に振っていると認識する。
このように、プロセッサ10は、カメラ17の撮影画像に対する画像認識により、ユーザが手を握りこんでいるか否か(「グー」のジェスチャであるか、それ以外のジェスチャ(例えば「パー」)であるか)を検出する。また、プロセッサ10は、ユーザの手の形状とともに、ユーザがこの手をどのように移動させているかを検出する。また、プロセッサ10は、ユーザがこの手をユーザ端末100に対して接近させているのか遠ざけているのかを検出する。このような操作は、例えば、マウスまたはタッチパネルなどのポインティングデバイスを用いた操作に対応させることができる。ユーザ端末100は、例えば、ユーザの手の移動に応じて、タッチスクリーン15においてポインタを移動させ、ユーザのジェスチャ「グー」を検出する。この場合、ユーザ端末100は、ユーザが選択操作を継続中であると認識する。選択操作の継続とは、例えば、マウスがクリックされて押し込まれた状態が維持されること、または、タッチパネルに対してタッチダウン操作がなされた後タッチされた状態が維持されることに対応する。また、ユーザ端末100は、ユーザのジェスチャ「グー」が検出されている状態で、さらにユーザが手を移動させると、このような一連のジェスチャを、スワイプ操作(またはドラッグ操作)に対応する操作として認識することもできる。また、ユーザ端末100は、カメラ17の撮影画像によるユーザの手の検出結果に基づいて、ユーザが指をはじくようなジェスチャを検出した場合に、当該ジェスチャを、マウスのクリックまたはタッチパネルへのタップ操作に対応する操作として認識してもよい。
<ゲームシステム1の機能的構成>
図2は、ユーザ端末100の機能的構成を示すブロック図である。ユーザ端末100は、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。
ユーザ端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能する。
記憶部120は、ゲームプログラム131、ゲーム情報132およびユーザ情報133を格納する。ゲームプログラム131は、ユーザ端末100で実行するゲームプログラムである。ゲーム情報132は、制御部110がゲームプログラム131を実行する際に参照するデータである。ゲーム情報132は、一例として、上述した第1パラメータ、および、後述する第2パラメータを含む。ユーザ情報133は、ユーザのアカウントに関するデータである。
一例として、ゲームプログラム131、ゲーム情報132およびユーザ情報133は、サーバ200にも格納されている。サーバ200においては、ゲーム情報132およびユーザ情報133は、ユーザ端末100ごとに格納されている。
(ユーザ端末100の機能的構成)
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム131およびユーザの操作にしたがって、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。
制御部110は、ゲームプログラム131の記述に応じて、操作受付部111、体力算出部112、スキルポイント管理部113、攻撃成否判定部114、ゲーム実行部115、および、表示制御部116として機能する。制御部110は、実行するゲームの性質に応じて、ゲームを進行させるために、図示しないその他の機能ブロックとしても機能することができる。
操作受付部111は、入力部151に対するユーザの入力操作を検知し受け付ける。操作受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールに対してユーザが及ぼした作用から、いかなる操作が入力されたかを判別し、その結果を制御部110の各要素に出力する。
例えば、操作受付部111は、入力部151に対する入力操作を受け付け、該入力操作位置の座標を検出し、該操作の種類を特定する。操作受付部111は、操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部111は、連続して検知されていた入力操作が途切れると、入力操作が解除されたことを検知する。
操作受付部111は、一例として、タッチスクリーン15の第1領域をタッチする第1操作と、タッチスクリーン15の、第1領域と異なる第2領域(所定領域)をタッチする第2操作とを区別して特定する。具体的には、操作受付部111は、第1領域へのタッチ操作が行われた場合、タッチの終了、すなわちタッチオフをトリガーとして、該タッチ操作を第1操作と特定し、その結果を出力する。また、操作受付部111は、第2領域へのタッチ操作が行われた場合、タッチの開始、すなわちタッチオンをトリガーとして、該タッチ操作を第2操作と特定し、その結果を出力する。
より具体的には、操作受付部111は、第1領域へのタッチ操作が行われた場合、タッチの開始からタッチの終了までの第1時間が、所定の閾値(第2閾値)以上であるか否かを判定する。第1時間が該所定の閾値未満であると判定した場合、操作受付部111は、タッチオフをトリガーとして、該タッチ操作を第1操作と特定し、その結果を出力する。一方、第1時間が該所定の閾値以上であると判定した場合、操作受付部111は、第1時間が所定の閾値以上となった時点で、該タッチ操作を、第1操作および第2操作と異なる第3操作と特定し、その結果を出力する。第3操作は、ロングタップ操作と表現することもできる。
操作受付部111は、タッチスクリーン15への第1領域のタッチ後、該タッチを継続したままタッチ位置が移動した場合、該操作を移動操作と特定し、その結果を出力する。該移動操作は、スワイプ操作またはフリック操作と表現することもできる。
また、操作受付部111は、タッチスクリーン15の、第1領域および第2領域と異なる第3領域をタッチする第4操作(第5操作)を、第1操作、第2操作、および第3操作と区別して特定してもよい。一例として、操作受付部111は、第3領域へのタッチ操作が行われた場合、タッチオンをトリガーとして、該タッチ操作を第4操作と特定し、その結果を出力する。
一例として、第2領域および第3領域は、タッチスクリーン15のうち、特定のUIが表示された領域である。第1領域は、タッチスクリーン15のうち、特定のUIが表示された領域を除く領域である。第1領域は、ゲーム画面のうち、特定のUIが表示されていない部分、と表現することもできる。特定のUIの詳細については後述する。
ゲーム実行部115は、ユーザの入力操作に基づいてキャラクタの動作結果を決定することにより、ゲームを進行させる。以降、第1キャラクタがユーザの入力操作に基づいて動作するキャラクタであるとして説明する。換言すれば、第1キャラクタは、ユーザ端末100のユーザに関連付けられるキャラクタである。また、以降、第2キャラクタは、ゲームプログラムに基づいて動作する、いわゆるNPC(non player character)であるものとして説明する。
ゲームシステム1に基づくゲームは、ゲームのストーリーを進行させながら第1キャラクタと第2キャラクタとを対戦させる構成であってもよい。ここでの第2キャラクタは、ストーリーの進行に伴い、第1キャラクタの敵として登場する、複数の敵キャラクタの総称である。ゲームシステム1に基づくゲームは、モードの1つとして、ゲームのストーリーを進行させながら第1キャラクタと第2キャラクタとを対戦させるストーリーモードを備えていてもよい。第2キャラクタは、ストーリーの進行に従って強くなってもよい。「強くなる」とは、一例として、第2キャラクタに関連付けられた、攻撃力や体力などの各種パラメータの最大値が上昇することである。
例えば、操作受付部111が、ユーザによる入力操作を第1操作と特定した場合、ゲーム実行部115は、第2キャラクタに対する第1動作を第1キャラクタに実行させる。つまり、ゲーム実行部115は、第1操作が行われた場合、タッチオフをトリガーとして第1動作を第1キャラクタに実行させる。一例として、第1動作は、第1動作の対象となるキャラクタに関連付けられた第1パラメータを、第1動作を実行したキャラクタが対戦において有利になるように変動させるための動作である。換言すれば、第1動作は、第1動作の対象となるキャラクタを攻撃する攻撃動作である。
また、例えば、操作受付部111が、ユーザによる入力操作を第2操作と特定した場合、ゲーム実行部115は、第1キャラクタが特殊状態(第1状態)であるか否かを判定する。特殊状態とは、第1キャラクタが、第2キャラクタに対して第1動作と異なる第2動作を実行可能な状態である。ゲーム実行部115は、第1キャラクタが特殊状態であると判定した場合、第2キャラクタに対する第2動作を第1キャラクタに実行させる。一方、ゲーム実行部115は、第1キャラクタが特殊状態でないと判定した場合、第2キャラクタに対する第1動作を第1キャラクタに実行させる。つまり、ゲーム実行部115は、第2操作が行われた場合、タッチオンをトリガーとして、第1動作または第2動作を第1キャラクタに実行させる。このため、第2操作は、第1操作に比べて、応答性が高いタッチ操作であると表現することもできる。なお、特殊状態であるか否かの判定の詳細については後述する。
一例として、第2動作は、第1動作と同様に、第2動作の対象となるキャラクタに関連付けられた第1パラメータを、第2動作を実行したキャラクタが対戦において有利になるように変動させるための動作である。換言すれば、第2動作は、第2動作の対象となるキャラクタを攻撃する攻撃動作である。第2動作は、通常攻撃の動作である第1動作と比較して、第1パラメータの変動量が大きい、特殊な攻撃の動作であってもよい。一例として、第2動作は、第1キャラクタが有するスキルを用いた攻撃動作であってもよい。
また、例えば、操作受付部111が、ユーザによる入力操作を第4操作と特定した場合、ゲーム実行部115は、第2キャラクタに対する第1動作を第1キャラクタに実行させる。つまり、ゲーム実行部115は、第4操作が行われた場合、タッチオンをトリガーとして第1動作を第1キャラクタに実行させる。
また、例えば、操作受付部111が、ユーザによる入力操作を移動操作と特定した場合、ゲーム実行部115は、第1キャラクタを移動させる。該移動の態様は、歩行および走行などの、いわゆる横方向の移動であってもよいし、ジャンプなどの、いわゆる縦方向の移動であってもよい。例えば、ゲーム実行部115は、左右方向の移動操作に応じて、第1キャラクタを歩行または走行させる。例えば、ゲーム実行部115は、上方向の移動操作に応じて、第1キャラクタをジャンプさせる。なお、所定の方向の移動操作の場合、ゲーム実行部115は、第1キャラクタを移動させず、別の動作を行わせてもよい。例えば、ゲーム実行部115は、下方向の移動操作に応じて、第1キャラクタをしゃがませてもよい。
また、例えば、操作受付部111が、ユーザによる入力操作を第3操作と特定した場合、ゲーム実行部115は、第1動作および第2動作と異なる第3動作を第1キャラクタに実行させる。一例として、第3動作は、第1キャラクタを特殊状態とするためのスキルポイント(第1ポイント)を増加させるための動作である。換言すれば、第3動作は、スキルポイントを貯める、いわゆる貯め動作と表現することもできる。一例として、第1キャラクタは、貯め動作の実行中は移動できない構成であってもよい。
また、ゲーム実行部115は、ゲームプログラム131に基づいて第2キャラクタを動作させる。具体的には、ゲーム実行部115は、第2キャラクタに、第1キャラクタに対する第1動作および第2動作を実行させたり、第2キャラクタに第3動作を実行させたり、第2キャラクタを移動させたりする。
なお、第2キャラクタは、別のユーザ端末100のユーザ(以下、「別のユーザ」と称する)に関連付けられ、別のユーザ端末100に対する別のユーザの入力操作に基づいて動作するものであってもよい。換言すれば、第1キャラクタと第2キャラクタとの対戦は、いわゆる対人対戦であってもよい。ゲームシステム1に基づくゲームは、モードの1つとして、上記対人対戦を行うための対人対戦モードを備えていてもよい。対人対戦モードにおいて、対戦を行うキャラクタは3体以上であってもよい。この例の場合、ユーザの入力操作に基づいて動作するキャラクタは、少なくとも2体以上であればよい。例えば、全てのキャラクタがユーザの入力操作に基づいて動作してもよい。また、例えば、ゲームプログラム131に基づいて動作するキャラクタがいてもよい。
この場合、サーバ200は、ユーザ端末100および別のユーザ端末100から受信した、第1キャラクタと第2キャラクタとの戦闘に関する情報(以下、「戦闘情報」)を一旦記憶する。そして、サーバ200は、該戦闘情報を統合し、ユーザ端末100および別のユーザ端末100に送信する。これにより、同期処理が実行される。該同期処理により、ユーザ端末100および別のユーザ端末100は、互いの戦闘情報をほぼ同じタイミングで共有することができる。
戦闘情報の一例としては、第1キャラクタおよび第2キャラクタの動作に関する情報、第1キャラクタおよび第2キャラクタのパラメータ(例えば、第1パラメータ)に関する情報、戦闘の勝敗に関する情報、などが挙げられる。
体力算出部112は、キャラクタによる第1動作または第2動作の実行に応じて、該動作の対象となるキャラクタに関連付けられた第1パラメータを、該動作を実行したキャラクタが対戦において有利になるように変動させる。一例として、ゲームシステム1が実行するゲームが、キャラクタの一方に関連付けられた第1パラメータが所定の閾値以下になった場合に、該キャラクタが対戦に敗北するゲームであるとする。この場合、体力算出部112は、第1動作または第2動作に基づく攻撃を受けたキャラクタに関連付けられた第1パラメータを減少させる。
一例として、体力算出部112は、第1動作または第2動作に応じた第1数値を特定する。第1数値はすなわち、第1動作または第2動作により攻撃を受けたキャラクタに与えられるダメージである。体力算出部112は、一例として、第1キャラクタおよび第2キャラクタに関連付けられているパラメータや、攻撃の種類などに応じて第1数値を特定する。該パラメータは、例えば、キャラクタの攻撃力、キャラクタの耐久力、第1キャラクタおよび第2キャラクタの属性などである。体力算出部112は、特定した第1数値を、第2キャラクタに関連付けられた第1パラメータから減算する。
体力算出部112は、減算後の第1パラメータが、所定の閾値以下であるか否かを判定する。所定の閾値以下であると判定した場合、体力算出部112は、該判定結果をゲーム実行部115に出力する。ゲーム実行部115は、該判定結果に基づいて、第1キャラクタと第2キャラクタとの対戦を終了させる。つまり、ゲーム実行部115は、第1パラメータが所定の閾値以下となったキャラクタが対戦に敗北し、もう一方のキャラクタが対戦に勝利したと決定し、この結果に基づく処理を実行する。
スキルポイント管理部113は、上述したスキルポイントを管理する。一例として、第1キャラクタと第2キャラクタとの対戦の開始時点では、スキルポイントは初期値(例えば、0)である。スキルポイント管理部113は、一例として、第1キャラクタおよび第2キャラクタの少なくとも一方の動作に基づいて、スキルポイントを増加させる。換言すれば、一例として、スキルポイント管理部113は、第1キャラクタおよび第2キャラクタの少なくとも一方の動作に基づかないスキルポイントの増加は行わない。例えば、スキルポイント管理部113は、時間の経過に伴うスキルポイントの増加を行わない。
例えば、スキルポイント管理部113は、第1キャラクタが行った第1動作による攻撃(通常攻撃)が成功した場合、スキルポイントを増加させる。また、例えば、スキルポイント管理部113は、第1キャラクタが行った第2動作による攻撃(スキル攻撃)が成功した場合、スキルポイントを増加させる。また、例えば、スキルポイント管理部113は、第2キャラクタが行った第1動作または第2動作による攻撃が成功した場合、換言すれば、第1キャラクタが第2キャラクタからの攻撃によりダメージを受けた場合、スキルポイントを増加させる。
また、例えば、スキルポイント管理部113は、第1キャラクタが第3動作を実行している間、所定の速度でスキルポイントを増加させる。なお、「所定の速度」とは、単位時間(例えば1秒)あたりのスキルポイントの増加量である。
スキルポイント管理部113は、一例として、スキルポイントが、増加に伴い所定のスキル閾値(第1閾値)に到達したか否かを判定する。スキルポイントがスキル閾値に到達したと判定した場合、スキルポイント管理部113は第1キャラクタを特殊状態とする。特殊状態となることにより、第1キャラクタは第2動作を実行可能となる。
スキルポイント管理部113は、一例として、第1キャラクタが第2動作を実行した場合、スキルポイントをリセットし、初期値に戻す。
攻撃成否判定部114は、第1キャラクタおよび第2キャラクタが実行した第1動作および第2動作に基づく攻撃が成功したか否かを判定する。攻撃成否判定部114は、一例として、一方のキャラクタの第1動作または第2動作に基づく攻撃と、他方のキャラクタとの衝突を検出した場合、攻撃が成功したと判定する。一例として、ゲームシステム1に基づくゲームには、第1キャラクタおよび第2キャラクタが実行可能な動作に防御動作が含まれない。この場合、「上記衝突を検出する」との条件のみで、攻撃が成功したと判定してよい。なお、防御動作とは、一方のキャラクタが実行した第1動作または第2動作による、他方のキャラクタに関連付けられた第1パラメータの変動量を減少させる動作である。
表示制御部116は、タッチスクリーン15の表示部152に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部116は、ゲームの種々の操作に必要なユーザインターフェース(以下、「UI」と称する)を、ゲーム画面に重畳するように描画してもよい。
<ゲーム進行フロー>
図3は、ゲームプログラム131に基づいて、ユーザ端末100において実行されるゲーム進行処理の流れを示すフローチャートである。図4は、図3に示す攻撃判定処理の流れを示すフローチャートである。
図5は、表示部152に表示されるゲーム画面の具体例を示す図である。具体的には、図5は、第1キャラクタと第2キャラクタとの対戦が開始された時点のゲーム画面を示す図である。ステップS101において、ゲーム実行部115は、第1キャラクタ、第2キャラクタ、オブジェクトをゲーム空間に配置する。図5の例では、ゲーム実行部115は、第1キャラクタ301および第2キャラクタ302をゲーム空間に配置する。
また、図5の例では、ゲーム実行部115は、第1キャラクタ301の体力(第1パラメータ)を示す体力ゲージ305Aを第1キャラクタ301に関連付けてゲーム空間に配置する。一例として、ゲーム実行部115は、体力ゲージ305Aを、第1キャラクタ301の近傍(図5の例では頭部の上)に配置する。同様に、ゲーム実行部115は、第2キャラクタ302の体力(第1パラメータ)を示す体力ゲージ305Bを第2キャラクタ302に関連付けてゲーム空間に配置する。ゲーム実行部115は、体力ゲージ305Aおよび体力ゲージ305Bそれぞれを、第1キャラクタ301および第2キャラクタ302の移動に追随して移動させてもよい。
図5に示す体力ゲージ305Aおよび305Bは、その全体が第1色に着色されている。第1色は、第1キャラクタ301および第2キャラクタ302の、現在の第1パラメータの値、換言すれば、第1キャラクタ301および第2キャラクタ302の残りの体力を示す。なお、図5の例では、第1色を斜線で示している。図5に示すように、体力ゲージ305Aおよび305Bの全体が第1色に着色されていることにより、ユーザは、第1キャラクタ301および第2キャラクタ302の体力が、初期値(最大値)であることを認識する。
また、図5の例では、表示制御部116は、戦闘の残り時間をカウントダウンするカウンタ304をゲーム画面に重畳させて表示部152に表示する。また、図5の例では、表示制御部116は、ユーザの入力操作を受け付けるUI303A〜303D(UI部品)をゲーム画面に重畳させて表示部152に表示する。以降、UI303A〜303Dを総称して、「UI303」と記載する場合がある。
UI303A(第1UI部品)は、第2動作の一種である「サブスキルを使用する攻撃動作」(以下、サブスキル動作)の実行のためのUIである。UI303B(第1UI部品)は、第2動作の一種である「メインスキルを使用する攻撃動作」(以下、メインスキル動作)の実行のためのUIである。メインスキル動作による攻撃が成功した場合の第1パラメータの減少量は、サブスキル動作による攻撃が成功した場合の第1パラメータの減少量に比べて大きい。また、UI303C(第2UI部品)は、第1動作、すなわち通常攻撃動作の実行のためのUIである。つまり、UI303AおよびUI303Bが、第2領域としての特定のUIに相当する。また、UI303Cが、第3領域としての特定のUIに相当する。以降、UI303AおよびUI303Bを総称して「スキル攻撃用UI」と記載する場合がある。また、UI303Aを「サブスキル用UI」、UI303Bを「メインスキル用UI」、UI303Cを「通常攻撃用UI」と記載する場合がある。
UI303Dは、第1キャラクタ301を、無制限状態とするためのUIである。UI303Dおよび無制限状態の詳細については後述する。
UI303AおよびUI303Bには、それぞれ、スキルポイントが関連付けられており、UI303AおよびUI303Bは、現在のスキルポイントを示すスキルゲージ306Aおよびスキルゲージ306Bを含む。一例として、UI303AおよびUI303Bは、図5に示すように、中心が同じであって大きさの異なる2つの円からなるUIであり、2つの円の外縁に挟まれた領域がスキルゲージ306Aおよびスキルゲージ306Bである。ただし、UI303A、UI303B、スキルゲージ306A、およびスキルゲージ306Bの形状は一例であって、該形状は図5の例に限定されるものではない。
図5に示すスキルゲージ306Aおよび306Bは、その全体が第2色に着色されている。図5の例では、第2色を白抜きで示している。上述したように、第1キャラクタ301と第2キャラクタ302との対戦の開始時点では、スキルポイントは初期値である。このため、全体が第2色で着色されたスキルゲージ306Aおよび306Bは、スキルポイントが貯まっていないことを示す。
詳細については後述するが、スキルゲージ306Aおよびスキルゲージ306Bは、スキルポイントが貯まるにつれて更新される。具体的には、スキルゲージ306Aおよびスキルゲージ306Bは、スキルポイントが貯まるにつれて、第2色と異なる色で着色された面積が増えていく。一例として、スキルポイントがスキル閾値に到達した場合、スキルゲージ306Aおよびスキルゲージ306Bは、その全体が、該異なる色で着色された状態となる。
以降、UI303Aに関連付けられたスキルポイントを第1スキルポイント、UI303Bに関連付けられたスキルポイントを第2スキルポイントと称する。第1スキルポイントは、サブスキル動作を実行するために消費されるスキルポイントであると表現することもできる。第2スキルポイントは、メインスキル動作を実行するために消費されるスキルポイントであると表現することもできる。
また、第1キャラクタ301が、サブスキル動作を実行可能な状態を第1特殊状態と称し、第1キャラクタ301が、メインスキル動作を実行可能な状態を第2特殊状態と称する。さらに、第1スキルポイントのスキル閾値を第1スキル閾値と称し、第2スキルポイントのスキル閾値を第2スキル閾値と称する。第1スキル閾値と第2スキル閾値とは、同じ値であってもよいし、異なる値であってもよい。
一方、UI303Cは、第1動作の実行のためのUIであるため、ゲージを含まない。なお、UI303Cへの第4操作に伴う第1動作を、スキルポイントの消費を伴う第1動作としてもよい。この場合、UI303Cは、現在のスキルポイントを示すゲージを含むことが好ましい。
UI303AとUI303Bとは異なる形状であってもよい。このように構成することにより、ユーザは、UI303AおよびUI303Bのうち、いずれのUIがサブスキル動作を実行するためのUIであるか、換言すれば、いずれのUIがメインスキルを実行するためのUIであるかを容易に特定することができる。
再び図3を参照し、ゲーム進行処理の説明に戻る。ステップS102において、ゲーム実行部115は、ゲームプログラム131に基づいて第2キャラクタ302を動作させる。
ステップS103において、操作受付部111は、ユーザの操作を受け付け、該操作を判別する。操作受付部111が、該ユーザの操作を、UI303以外へのタッチ操作と判別した場合(ステップS104でNO)、ステップS105において、操作受付部111は、該ユーザの操作がロングタップ操作であるか否かを判定する。具体的には、操作受付部111は、タッチの開始からタッチの終了までの第1時間が、所定の閾値以上であるか否かを判定する。なお、「ユーザの操作を、UI303以外へのタッチ操作と判別する」とは、すなわち、「ユーザの操作が、第1領域へのタッチ操作であると判別する」ことを指す。
なお、操作受付部111が、ユーザの操作を、UI303へのタッチ操作と判別した場合(ステップS104でYES)、ステップS111において、制御部110は、UIタッチ時処理を実行する。UIタッチ時処理の詳細については後述する。
図6は、表示部152に表示されるゲーム画面の具体例を示す図である。ステップS105でNOの場合、すなわち、ユーザの操作がロングタップ操作でないと判定した場合、操作受付部111は、ユーザの操作を第1操作と特定する。ステップS106において、ゲーム実行部115は、図6に示すように、第1キャラクタ301に通常攻撃動作を行わせる。ユーザの操作がロングタップ操作であるか否かは、第1領域へのユーザのタッチ操作のタッチオフをトリガーとして特定される。このため、第1キャラクタ301による通常攻撃は、タッチオフをトリガーとして実行されると表現することもできる。
その後、制御部110は、ステップS107において攻撃判定処理を実行する。ここで、図4を参照して攻撃判定処理の詳細を説明する。ステップS201において、スキルポイント管理部113は、スキル攻撃が行われたか否かを判定する。上述の例では、第1キャラクタ301は通常攻撃動作を行っているため、スキルポイント管理部113は、スキル攻撃が行われていないと判定する(ステップS201でNO)。ステップS201でNOの場合、ステップS202の処理は実行されない。ステップS202の処理の詳細については後述する。
ステップS203において、攻撃成否判定部114は、第1キャラクタ301の攻撃が成功したか否かを判定する。ステップS203でYESの場合、すなわち、第1キャラクタ301の攻撃が成功した場合、ステップS204において、体力算出部112は、第2キャラクタ302の体力を示す第1パラメータを減少させる。
ゲーム実行部115は、第2キャラクタ302に関連付けられた体力ゲージ305Bを、第2キャラクタ302の第1パラメータの減少に合わせて更新する。具体的には、ゲーム実行部115は、図6に示すように、体力ゲージ305Bの第1色に着色された領域のうち、第1数値に応じた面積を第1色と異なる第3色で着色する。換言すれば、ゲーム実行部115は、体力ゲージ305Bにおける第1色に着色された領域の面積を、減少後の第1パラメータに基づいて減少させる。第3色は、第1キャラクタ301および第2キャラクタ302が攻撃を受けたことに基づいて算出された第1数値の合計値、換言すれば、第1キャラクタ301および第2キャラクタ302に与えられたダメージの合計値を示す。なお、図6の例では、第3色を白抜きで示している。このように体力ゲージ305Bを更新することにより、ユーザは、第1キャラクタ301の攻撃により、第2キャラクタ302の体力が減少したこと、および、第2キャラクタ302の残りの体力を認識する。
ステップS205において、体力算出部112は、第2キャラクタ302の減少後の第1パラメータが所定の閾値以下となったか否かを判定する。ステップS205でYESの場合、すなわち、体力算出部112が、減少後の第1パラメータが所定の閾値以下となったと判定した場合、ステップS213において、ゲーム実行部115は、第1キャラクタ301が対戦に勝利したと決定し、この結果に基づき勝利時処理を実行する。そして、ゲーム進行処理は終了する。
ステップS205でNOの場合、すなわち、体力算出部112が、減少後の第1パラメータが所定の閾値より大きいと判定した場合、ステップS206において、スキルポイント管理部113は、第1スキルポイントを第1量増加させる。また、ステップS207において、スキルポイント管理部113は、第2スキルポイントを第2量増加させる。
第1量と第2量、すなわち、攻撃の成功に伴う第1スキルポイントの増加量と第2スキルポイントの増加量とは、同じであってもよいし、異なってもよい。なお、本実施形態では、第1量が第2量より大きいものとして説明する。つまり、サブスキル動作のための第1スキルポイントは、メインスキル動作のための第2スキルポイントに比べて、攻撃の成功に伴う増加量が大きい。このため、第1スキル閾値と第2スキル閾値とが同じ値である場合、第1キャラクタ301は、第1特殊状態と第2特殊状態のうち、第1特殊状態になり易いといえる。換言すれば、サブスキル動作は、メインスキル動作より実行頻度が高い(実行し易い)。
ゲーム実行部115は、UI303AおよびUI303Bに関連付けられたスキルゲージ306Aおよびスキルゲージ306Bを、それぞれ、第1スキルポイントおよび第2スキルポイントの増加に合わせて更新する。具体的には、ゲーム実行部115は、図6に示すように、スキルゲージ306Aの第2色に着色された領域のうち、第1量に応じた面積を第2色と異なる第4色で着色する。また、ゲーム実行部115は、図6に示すように、スキルゲージ306Bの第2色に着色された領域のうち、第2量に応じた面積を第4色で着色する。換言すれば、ゲーム実行部115は、スキルゲージ306Aおよびスキルゲージ306Bにおける第4色に着色された領域の面積を、それぞれ、増加後の第1スキルポイントおよび第2スキルポイントに基づいて増加させる。第4色は、第1量および第2量の合計値、換言すれば、現時点での第1スキルポイントおよび第2スキルポイントの合計値を示す。なお、図6の例では、第4色を斜線で示している。このようにスキルゲージ306Aおよびスキルゲージ306Bを更新することにより、ユーザは、現時点での第1スキルポイントおよび第2スキルポイントを認識する。なお、ゲーム実行部115は、スキルゲージ306Aを第4色で着色し、スキルゲージ306Bを第4色とは異なる第5色で着色してもよい。
図7は、表示部152に表示されるゲーム画面の具体例を示す図である。ステップS208において、攻撃成否判定部114は、図7に示すように、第2キャラクタ302が第1動作または第2動作を行った場合、第2キャラクタ302の攻撃が成功したか否かを判定する。ステップS208でYESの場合、すなわち、第2キャラクタ302の攻撃が成功した場合、ステップS209において、体力算出部112は、第1キャラクタ301の体力を示す第1パラメータを減少させる。
ゲーム実行部115は、第1キャラクタ301に関連付けられた体力ゲージ305Aを、第1キャラクタ301の第1パラメータの減少に合わせて更新する。具体的には、ゲーム実行部115は、図7に示すように、体力ゲージ305Aの第1色に着色された領域のうち、第1数値に応じた面積を第1色と異なる第3色で着色する。換言すれば、ゲーム実行部115は、体力ゲージ305Aにおける第1色に着色された領域の面積を、減少後の第1パラメータに基づいて減少させる。このように体力ゲージ305Aを更新することにより、ユーザは、第2キャラクタ302の攻撃により、第1キャラクタ301の体力が減少したこと、および、第1キャラクタ301の残りの体力を認識する。
ステップS210において、体力算出部112は、第1キャラクタ301の減少後の第1パラメータが所定の閾値以下となったか否かを判定する。ステップS210でYESの場合、すなわち、体力算出部112が、減少後の第1パラメータが所定の閾値以下となったと判定した場合、ステップS214において、ゲーム実行部115は、第1キャラクタ301が対戦に敗北したと決定し、この結果に基づき敗北時処理を実行する。そして、ゲーム進行処理は終了する。
ステップS210でNOの場合、すなわち、体力算出部112が、減少後の第1パラメータが所定の閾値より大きいと判定した場合、ステップS211において、スキルポイント管理部113は、第1スキルポイントを第3量増加させる。また、ステップS212において、スキルポイント管理部113は、第2スキルポイントを第4量増加させる。
第3量と第4量、すなわち、攻撃を受けたことに伴う第1スキルポイントの増加量と第2スキルポイントの増加量とは、同じであってもよいし、異なってもよい。なお、本実施形態では、第3量が第4量より大きいものとして説明する。つまり、サブスキル動作のための第1スキルポイントは、メインスキル動作のための第2スキルポイントに比べて、攻撃を受けたことに伴う増加量が大きい。このため、第1スキル閾値と第2スキル閾値とが同じ値である場合、第1キャラクタ301は、第1特殊状態と第2特殊状態のうち、第1特殊状態になり易いといえる。換言すれば、サブスキル動作は、メインスキル動作より実行頻度が高い(実行し易い)。
また、第1量と第3量、すなわち、第1スキルポイントにおける、攻撃の成功に伴う増加量と、攻撃を受けたことに伴う増加量とは、同じであってもよいし、異なってもよい。同様に、第2量と第4量、すなわち、第2スキルポイントにおける、攻撃の成功に伴う増加量と、攻撃を受けたことに伴う増加量とは、同じであってもよいし、異なってもよい。
ゲーム実行部115は、UI303AおよびUI303Bに関連付けられたスキルゲージ306Aおよびスキルゲージ306Bを、それぞれ、第1スキルポイントおよび第2スキルポイントの増加に合わせて更新する。具体的には、ゲーム実行部115は、図7に示すように、スキルゲージ306Aの第2色に着色された領域のうち、第3量に応じた面積を第4色で着色する。また、ゲーム実行部115は、図7に示すように、スキルゲージ306Bの第2色に着色された領域のうち、第4量に応じた面積を第4色で着色する。換言すれば、ゲーム実行部115は、スキルゲージ306Aおよびスキルゲージ306Bにおける第4色に着色された領域の面積を、それぞれ、増加後の第1スキルポイントおよび第2スキルポイントに基づいて増加させる。そして、攻撃判定処理は終了し、ゲーム実行処理に戻る。
なお、ステップS203でNOの場合、および、ステップS208でNOの場合、すなわち、第1キャラクタ301または第2キャラクタ302が行った、第1動作または第2動作に基づく攻撃が失敗した場合、攻撃判定処理は終了し、ゲーム判定処理に戻る。
再び図3を参照し、ゲーム進行処理の説明に戻る。図8は、表示部152に表示されるゲーム画面の具体例を示す図である。ステップS105でYESの場合、すなわち、ユーザの操作がロングタップ操作である場合、ステップS108において、ゲーム実行部115は、図8に示すように、該ロングタップ操作の間、第1キャラクタ301に貯め動作を行わせる。なお、図3に示す「A」については、後述する変形例にて説明する。
ステップS109において、スキルポイント管理部113は、貯め動作の間、第1スキルポイントを、所定の速度である第1速度で増加させる。また、ステップS110において、スキルポイント管理部113は、貯め動作の間、第2スキルポイントを、所定の速度である第2速度で増加させる。そして、ゲーム実行処理は、ステップS102へ戻る。
第1速度と第2速度、すなわち、貯め動作の実行に伴う、第1スキルポイントの単位時間あたりの増加量と第2スキルポイントの単位時間あたりの増加量とは、同じであってもよいし、異なってもよい。なお、本実施形態では、第1速度が第2速度より速いものとして説明する。このため、第1スキル閾値と第2スキル閾値とが同じ値である場合、第1キャラクタ301は、第1特殊状態と第2特殊状態のうち、第1特殊状態になり易いといえる。換言すれば、サブスキル動作は、メインスキル動作より実行頻度が高い(実行し易い)。
図8の例の場合、第1キャラクタ301に貯め動作を行わせた結果、UI303Aに関連付けられたスキルゲージ306Aは、その全体が第4色で着色された状態となっている。これにより、第1キャラクタ301は第1特殊状態、すなわちサブスキル動作を実行可能な状態となる。
図9は、図3に示すUIタッチ時処理の流れを示すフローチャートである。図10および図11は、表示部152に表示されるゲーム画面の具体例を示す図である。操作受付部111が、受け付けたユーザ操作を、通常攻撃用UI、すなわちUI303Cへのタッチ操作と判別した場合(ステップS301でYES)、ステップS307において、ゲーム実行部115は、UI303Cへのタッチオンをトリガーとして、第1キャラクタ301に通常攻撃動作を行わせる。そして、UIタッチ時処理はゲーム実行処理へ戻る。
操作受付部111が、受け付けたユーザ操作を、サブスキル用UI、すなわちUI303Aへのタッチ操作と判別した場合(ステップS302のA)、ステップS303において、スキルポイント管理部113は、第1スキルポイントが第1スキル閾値以上であるか否かを判定する。換言すれば、スキルポイント管理部113は、第1スキルポイントが第1スキル閾値に到達しているか否かを判定する。
スキルポイント管理部113が、第1スキルポイントが第1スキル閾値以上であると判定した場合(ステップS303でYES)、ステップS304において、ゲーム実行部115は、UI303Aへのタッチオンをトリガーとして、図10に示すように、第1キャラクタ301にサブスキル動作を行なわせる。そして、UIタッチ時処理はゲーム実行処理へ戻る。
ここで、図4を参照して、サブスキル動作が行われた場合の攻撃判定処理について説明する。スキルポイント管理部113は、サブスキル動作が行われた(ステップS201でYES)ことに基づき、ステップS202において、第1スキルポイントを初期値に戻す(リセットする)。
ゲーム実行部115は、UI303Aに関連付けられたスキルゲージ306Aを、第1スキルポイントのリセットに合わせて更新する。具体的には、ゲーム実行部115は、スキルゲージ306Aの全体を第2色で着色する。これにより、ユーザは、サブスキル動作の実行により、第1スキルポイントが消費されたことを認識する。
なお、本実施形態に係るゲームシステム1に基づくゲームでは、第1キャラクタ301による攻撃が成功し、かつ、第2キャラクタ302の第1パラメータが、該攻撃によって所定の閾値以下となっていない場合、攻撃動作の種類に依らず、第1スキルポイントおよび第2スキルポイントが増加する。つまり、図10に示すように、サブスキル動作による攻撃が成功した場合であっても、第1スキルポイントおよび第2スキルポイントが増加する(ステップS206およびS207)。
スキルポイント管理部113が、第1スキルポイントが第1スキル閾値未満であると判定した場合(ステップS303でNO)、ステップS307において、ゲーム実行部115は、UI303Aへのタッチオンをトリガーとして、第1キャラクタ301に通常攻撃動作を行わせる。そして、UIタッチ時処理はゲーム実行処理へ戻る。
また、操作受付部111が、受け付けたユーザ操作を、メインスキル用UI、すなわちUI303Bへのタッチ操作と判別した場合(ステップS302のB)、ステップS305において、スキルポイント管理部113は、第2スキルポイントが第2スキル閾値以上であるか否かを判定する。換言すれば、スキルポイント管理部113は、第2スキルポイントが第2スキル閾値に到達しているか否かを判定する。
スキルポイント管理部113が、第2スキルポイントが第2スキル閾値以上であると判定した場合(ステップS305でYES)、ステップS306において、ゲーム実行部115は、UI303Bへのタッチオンをトリガーとして、図11に示すように、第1キャラクタ301にメインスキル動作を行なわせる。そして、UIタッチ時処理はゲーム実行処理へ戻る。
スキルポイント管理部113は、メインスキル動作が行われた場合(図4のステップS201でYES)、ステップS202において、第2スキルポイントを初期値に戻す(リセットする)。
ゲーム実行部115は、UI303Bに関連付けられたスキルゲージ306Bを、第2スキルポイントのリセットに合わせて更新する。具体的には、ゲーム実行部115は、スキルゲージ306Bの全体を第2色で着色する。これにより、ユーザは、メインスキル動作の実行により、第2スキルポイントが消費されたことを認識する。
そして、図11に示すように、メインスキル動作による攻撃が成功した場合(ステップS203でYES)、スキルポイント管理部113は、第1スキルポイントおよび第2スキルポイントを増加させる(ステップS206およびS207)。
一方、スキルポイント管理部113が、第2スキルポイントが第2スキル閾値未満であると判定した場合(ステップS305でNO)、ステップS307において、ゲーム実行部115は、UI303Bへのタッチオンをトリガーとして、第1キャラクタ301に通常攻撃動作を行わせる。そして、UIタッチ時処理はゲーム実行処理へ戻る。
ここで、図5〜8、10、および11を参照して、UI303Dおよび無制限状態について説明する。UI303Dには、第1キャラクタ301を無制限状態とするためのポイントが関連付けられており、UI303Dは、現在の該ポイントを示すゲージ306Dを含む。一例として、UI303Dは、図5などに示すように、中心が同じであって大きさの異なる2つの円からなるUIであり、2つの円の外縁に挟まれた領域がゲージ306Dである。ただし、UI303Dおよびゲージ306Dの形状は一例であって、該形状は図5等の例に限定されるものではない。UI303Dおよびゲージ306Dは、例えば、UI303Aおよびスキルゲージ306Aと異なる形状であってもよい。
図5に示すゲージ306Dは、その全体が第6色に着色されている。図5の例では、第6色を白抜きで示している。第1キャラクタ301と第2キャラクタ302との対戦の開始時点では、UI303Dに関連付けられたポイントは初期値である。このため、全体が第6色で着色されたゲージ306Dは、該ポイントが貯まっていないことを示す。
ゲージ306Dは、UI303Dに関連付けられたポイントが貯まるにつれて更新される。具体的には、ゲージ306Dは、該ポイントが貯まるにつれて、第2色と異なる色で着色された面積が増えていく。一例として、該ポイントが、後述する閾値に到達した場合、ゲージ306Dは、その全体が、該異なる色で着色された状態となる。
制御部110は、一例として、第1キャラクタ301が、第2キャラクタ302の第1パラメータを減少させた場合、すなわち、図6に示すように、第1キャラクタ301が攻撃動作を実行したことにより、第2キャラクタ302にダメージを与えた場合に、UI303Dに関連付けられたポイントを所定量増加させてもよい。この例において、該ポイントが増加した場合、ゲーム実行部115は、ゲージ306Dを、該ポイントの増加に合わせて更新する。具体的には、図6に示すように、ゲージ306Dの第6色に着色された領域のうち、増加した所定量に応じた面積を第6色と異なる第7色で着色する。
また、制御部110は、一例として、第2キャラクタ302が、第1キャラクタ301の第1パラメータを減少させた場合、すなわち、図7に示すように、第2キャラクタ302が実行した攻撃動作により、第1キャラクタ301がダメージを受けた場合に、UI303Dに関連付けられたポイントを所定量増加させてもよい。これにより、ゲーム実行部115は、図7に示すように、ゲージ306Dを更新する。
なお、攻撃動作は、通常攻撃動作に限定されない。一例として、制御部110は、図10および図11に示すように、第1キャラクタ301が、サブスキル動作、またはメインスキル動作を実行したことにより、第2キャラクタ302にダメージを与えた場合に、UI303Dに関連付けられたポイントを所定量増加させてもよい。また、図示してはいないが、制御部110は、第2キャラクタ302が実行したサブスキル動作、またはメインスキル動作により、第1キャラクタ301がダメージを受けた場合に、UI303Dに関連付けられたポイントを所定量増加させてもよい。
UI303Dに関連付けられたポイントは、一例として、図8に示すように貯め動作の実行では増加しない構成であってもよい。また、制御部110は、一例として、第1キャラクタ301が第2キャラクタ302にダメージを与えたことにより、第2キャラクタ302が強制的に移動させられた場合、UI303Dに関連付けられたポイントを所定量増加させてもよい。例えば、制御部110は、強制的な移動により、第2キャラクタ302が吹き飛ばされてオブジェクトに衝突した場合に、該ポイントを増加させてもよい。この場合の該ポイントの増加量は、ダメージを与えたり、ダメージを受けたりした場合の増加量より多くてもよい。
UI303Dに関連付けられたポイントが所定の閾値以上である場合に、UI303Dをタッチする操作が行われると、ゲーム実行部115は、第1キャラクタ301を、所定時間、無制限状態とする。無制限状態とは、特殊状態が継続する状態である。つまり、ユーザは、第1キャラクタ301が無制限状態となることにより、所定時間、メインスキルおよびサブスキルを、第1キャラクタ301に実行させ続けることができる。これにより、ユーザは、第2キャラクタ302に非常に大きなダメージを与えることができる。従って、ユーザは、第1キャラクタ301を無制限状態とすることにより、対戦に勝利できる可能性を高めることができる。
〔作用効果〕
以上のように、ゲームシステム1に基づくゲームは、タッチスクリーン15における、UI303以外の領域をタッチする第1操作が行われた場合、該領域でのタッチオフをトリガーとして、第2キャラクタ302を攻撃する第1動作を第1キャラクタ301に実行させる。また、ゲームシステム1は、UI303AおよびUI303Bをタッチする第2操作が行われ、かつ、該第2操作が行われた時点で第1キャラクタ301が特殊状態でない場合、UI303AおよびUI303Bへのタッチオンをトリガーとして、第1動作を第1キャラクタ301に実行させる。
これにより、タップ操作においては常にタッチオフをトリガーとしてキャラクタを動作させる先行技術のゲームに比べて、多様な操作が可能なゲームを実現することができる。
また、ユーザの操作に基づいて動作するキャラクタと、別のキャラクタとを戦わせる、いわゆる格闘ゲームやアクションゲームにおいては、その興趣性の向上のために、多彩な技が使用できるようになっている。ユーザ端末のタッチスクリーンへのタッチ操作で技を使用するゲームの場合、多彩な技のそれぞれに異なる操作を対応付けると、操作が複雑になる。一方、技の一部を発動するUIを用意し、通常攻撃をUI以外の領域へのタッチで実行し、特殊な攻撃をUIへのタッチで実行するよう構成したゲームもある。しかしながら、ユーザ端末がスマートフォンである場合、タッチスクリーンが小さいため、UIを多く配置すると、通常攻撃のためのタッチを入力できる領域が小さくなってしまう。
このような課題に対して、本開示のゲームシステム1によれば、ある局面において、UI303AまたはUI303Bがタッチされた時点で第1キャラクタ301が特殊状態でなければ、第1動作、すなわち第2キャラクタ302への通常攻撃を第1キャラクタ301に行わせる。一方、UI303AまたはUI303Bがタッチされた時点で第1キャラクタ301が特殊状態であれば、第2動作、すなわち第2キャラクタ302への特殊な攻撃(スキル攻撃)を第1キャラクタ301に行わせる。
これにより、多彩な技を使用できるとともに、通常攻撃のためのタッチを入力できる領域を広くすることができる。すなわち、従来の格闘ゲームやアクションゲームにある上記2つの課題を同時に解決することができる。また、第1操作および第2操作はいずれもタッチ操作であるため、操作が複雑になることもない。
また、ゲームシステム1に基づくゲームは、以下のように表現することもできる。すなわち、タッチスクリーン15における、UI303以外の領域をタッチする第1操作が行われた場合、該領域でのタッチオフをトリガーとして、第2キャラクタ302を攻撃する通常攻撃動作を第1キャラクタ301に実行させる。また、第1キャラクタ301および第2キャラクタ302の少なくとも一方の動作に基づいて、スキルポイントを増加させ、スキルポイントがスキル閾値以上の場合、UI303へのタッチオンをトリガーとして、スキル動作を第1キャラクタ301に実行させる。
このように、スキル動作を第1キャラクタ301に実行させるためのスキルポイントは、第1キャラクタ301および第2キャラクタ302の少なくとも一方の動作に基づいて増加するので、ユーザは第1キャラクタ301と第2キャラクタ302とを積極的に戦わせようとする。これにより、ゲームの興趣性が向上する。また、ゲームシステム1に基づくゲームでは、タッチオフで行われる攻撃(通常攻撃)と、タッチオンで行われる攻撃(スキル攻撃)とが混在している。つまり、スキル攻撃は、通常攻撃に比べて、操作に対する応答性が高い攻撃である。このように応答性の異なる攻撃を混在させることで、常にタッチオフをトリガーとしてキャラクタに攻撃させる先行技術のゲームに比べて、戦略性を向上させることができる。応答性の異なる攻撃を混在させることによる戦略性の向上は、対戦するキャラクタがいずれもユーザの操作で動作する、いわゆる対人対戦において特に顕著となる。
また、ゲームシステム1に基づくゲームは、タッチオンをトリガーとして通常攻撃を第1キャラクタ301に実行させる、UI303Cを備えている。つまり、ゲームシステム1に基づくゲームでは、タッチオフで行われる通常攻撃と、タッチオンで行われる通常攻撃とが混在している。このように応答性の異なる通常攻撃を混在させることで、特に熟練者同士の対人対戦において、戦略性を向上させることができる。
また、ゲームシステム1に基づくゲームは、タッチスクリーン15に対するロングタップ操作が継続している間、第1スキルポイントおよび第2スキルポイントの両方を増加させる。そして、第1スキルポイントが第1スキル閾値以上の場合、UI303Aへのタッチ操作により、第1キャラクタ301にサブスキル動作を実行させる。また、第2スキルポイントが第2スキル閾値以上の場合、UI303Bへのタッチ操作により、第1キャラクタにメインスキル動作を実行させる。これにより、第1キャラクタ301の攻撃に多様性が生まれ、ゲームの戦略性が向上する。
また、ロングタップ操作が継続している間、第1キャラクタ301は貯め動作を行い、他の動作を行うことができない。このため、第2キャラクタ302の近くでロングタップ操作を行うと、第2キャラクタ302の攻撃を無抵抗で受けることとなる。一方で、スキル動作による攻撃は、通常攻撃に比べて相手に与えるダメージが大きいため、対戦に勝利するためには、スキル動作を積極的に行うことが望ましい。つまり、対戦に勝利するためには、第2キャラクタ302からの攻撃を受けずに貯め動作を行なってスキルポイントを貯め、スキル動作を実行することが重要となる。
しかしながら、例えば、ストーリーモードにおいてゲームのストーリーを進めることで第2キャラクタ302が強くなる場合には、ストーリーを進めるほど、上述したような状況を作り出すことが難しくなる。つまり、第2キャラクタ302が強くなると、スキル動作の実行が困難になり、ゲームをそれ以上進めることが難しくなる。これにより、ユーザがゲームから離れてしまうおそれもある。
この課題を解決するために、ゲームシステム1に基づくゲームでは、サブスキル動作の実行頻度が、メインスキル動作に比べて高くなるようにしている。具体的には、ロングタップ操作によるスキルポイントの増加速度について、第1スキルポイントの増加速度に比べて、第2スキルポイントの増加速度を大きくしている。これにより、ユーザは、比較的短時間のロングタップ操作で、第1キャラクタ301にサブスキル動作を行わせることができる。結果として、第2キャラクタ302が強くなったとしても、「第2キャラクタ302からの攻撃を受けずに貯め動作を行なってスキルポイントを貯め、スキル動作を実行する」という状況を作りやすくすることができる。
また、ゲームシステム1に基づくゲームでは、先行技術のゲームと異なり、スキル動作による攻撃が成功した場合にも、スキルポイントが増加する。つまり、貯め動作によりスキルポイントを貯め、サブスキル動作を実行した結果、サブスキル動作による攻撃が成功すれば、第1スキルポイントおよび第2スキルポイントが増加する。これにより、貯め動作とサブスキル攻撃の組み合わせにより、第1スキルポイントが第1スキル閾値に到達しやすくなる。結果として、メインスキル動作が実行しやすくなり、第2キャラクタ302に勝利することができないという状況を防ぐことができる。
特に、ゲームシステム1に基づくゲームには、防御動作が存在しない。このため、先行技術のゲームに比べて、ユーザ操作に基づいて動作するキャラクタの体力が減りやすい。換言すれば、ゲームシステム1に基づくゲームは、既存のゲームに比べて、より対戦相手のキャラクタに勝利することが難しいゲームである。そこで、上述したように、サブスキル動作およびメインスキル動作を実行しやすくすることで、第2キャラクタ302に勝利することができないという状況を防ぐことができる。
また、ゲームシステム1に基づくゲームは、第2キャラクタ302からの攻撃によりダメージを受けたことに伴い、第1スキルポイントおよび第2スキルポイントが増加する。このように構成することで、サブスキル動作およびメインスキル動作が実行しやすくなり、防御動作が無いゲームであっても、第2キャラクタ302に勝利することができる。
また、ゲームシステム1に基づくゲームでは、先行技術のゲームと異なり、第1スキルポイントおよび第2スキルポイントは時間の経過に伴って回復しない。つまり、ユーザは、第1キャラクタ301を第2キャラクタ302と積極的に戦わせないと、スキル動作を第1キャラクタ301に実行させることができない。このように構成することで、ユーザは、第1キャラクタ301を第2キャラクタ302と積極的に戦わせようとするので、先行技術のゲームに比べてゲームの興趣性が向上する。また、第1キャラクタ301と第2キャラクタ302とが積極的に戦うゲームとすることで、ゲームをプレイするユーザのみならず、ゲームのプレイ(特に、対人対戦)を観戦する観戦者にとっても興趣性の高いゲームを実現することができる。
なお、ゲームシステム1に基づくゲームでは、UI303に対するロングタップ操作が行われた場合、第1キャラクタ301に貯め動作を実行させるのではなく、通常攻撃動作またはスキル動作を行わせる。具体的には、ゲーム実行部115は、ロングタップ操作におけるタッチオンをトリガーとして、通常攻撃動作またはスキル動作を行わせる。より具体的には、ゲーム実行部115は、UI303AまたはUI303Bに対するロングタップ操作が行われた場合、第1キャラクタ301が特殊状態であれば、タッチオンをトリガーとして第1キャラクタ301にスキル動作を行わせる。一方、第1キャラクタ301が特殊状態でなければ、タッチオンをトリガーとして第1キャラクタに通常攻撃動作を行わせる。
UI303に対するロングタップ操作でスキルポイントが貯まる構成とすると、特に初心者が、UI303に対するロングタップ操作を行わないとスキルポイントが貯まらない、と勘違いし、スキルポイントを貯めるために、常にUI303に対するロングタップ操作を行う可能性がある。これに対して、上記のように構成することで、初心者の勘違いを防ぐことができる。
また、UI303に対するロングタップ操作でスキルポイントが貯まる構成とすると、スキルゲージ306Aおよびスキルゲージ306Bを視認しづらくなり、結果として、ユーザは、スキル動作を実行できるか否かを認識しづらくなる。これに対して、UI303を大きくすることも考えられるが、この場合、ゲーム画面を視認しづらくなり、また、通常攻撃動作を行わせるための第1操作を受け付ける領域が小さくなる。一方、上記のように、UI303に対するロングタップ操作でスキルポイントが貯まらない構成とすることで、UI303を大きくせずとも、スキル動作を実行できるか否かを正確に認識できる。
〔変形例〕
操作受付部111は、第2領域へのタッチ操作が行われた場合、スキルポイント管理部113が判定した、第1キャラクタが特殊状態であるか否か、すなわち、スキルポイントがスキル閾値以上であるか否かの判定結果に応じて、該タッチ操作を区別して特定してもよい。
具体的には、操作受付部111は、第2領域へのタッチ操作が行われると、第1キャラクタが特殊状態であるとの判定結果の場合には、タッチオンをトリガーとして、該タッチ操作を第5操作と特定し、その結果を出力する。
一方、第1キャラクタが特殊状態でないとの判定の場合には、操作受付部111は、タッチの開始からタッチの終了までの第2時間が、所定の閾値(第3閾値)以上であるか否かを判定する。第3閾値は、上述した第2閾値と同じ値であってもよいし、異なる値であってもよい。
第2時間が該所定の閾値未満であると判定した場合、操作受付部111は、タッチオフをトリガーとして、該タッチ操作を第6操作と特定し、その結果を出力する。一方、第2時間が該所定の閾値以上であると判定した場合、操作受付部111は、第2時間が第3閾値以上となった時点で、該タッチ操作を第7操作(第4操作)と特定し、その結果を出力する。第7操作は、上述した第3操作と同様に、ロングタップ操作と表現することもできる。
なお、第5操作と第6操作とは、共に第2領域をタッチする操作であって、タッチオンをトリガーとするか、あるいはタッチオフをトリガーとするかが異なるのみである。つまり、第5操作と第6操作とは、見かけ上、同じタッチ操作であるともいえる。このため、第5操作は、第2領域を第1態様でタッチする操作であり、第6操作は、第2領域を、第1態様と異なる第2態様でタッチする操作であると表現することもできる。
ゲーム実行部115は、ユーザによる入力操作を第5操作と特定した場合、第2動作を第1キャラクタに実行させる。また、ゲーム実行部115は、ユーザによる入力操作を第6操作と特定した場合、第1動作を第1キャラクタに実行させる。また、ゲーム実行部115は、ユーザによる入力操作を第7操作と特定した場合、第3動作を第1キャラクタに実行させる。
<ゲーム進行フロー>
図12は、図3に示すUIタッチ時処理の流れの別の例を示すフローチャートである。操作受付部111が、受け付けたユーザ操作をUI303Cへのタッチ操作と判別した場合(ステップS401でYES)、ステップS409において、ゲーム実行部115は、UI303Cへのタッチオンをトリガーとして、第1キャラクタ301に通常攻撃動作を行わせる。そして、UIタッチ時処理はゲーム実行処理へ戻る。
操作受付部111が、受け付けたユーザ操作をUI303Aへのタッチ操作と判別した場合(ステップS402のA)、ステップS403において、スキルポイント管理部113は、第1スキルポイントが第1スキル閾値以上であるか否かを判定する。スキルポイント管理部113が、第1スキルポイントが第1スキル閾値以上であると判定した場合(ステップS403でYES)、操作受付部111は、ユーザ操作を第5操作と特定する。ステップS404において、ゲーム実行部115は、第5操作、すなわち、UI303Aへのタッチオンをトリガーとして、第1キャラクタ301にサブスキル動作を行なわせる。そして、UIタッチ時処理はゲーム実行処理へ戻る。
なお、スキル動作が行われた場合の攻撃判定処理については、上述した実施形態の例と同一であるため、ここでは説明を繰り返さない。
操作受付部111が、受け付けたユーザ操作をUI303Bへのタッチ操作と判別した場合(ステップS402のB)、ステップS405において、スキルポイント管理部113は、第2スキルポイントが第2スキル閾値以上であるか否かを判定する。スキルポイント管理部113が、第2スキルポイントが第2スキル閾値以上であると判定した場合(ステップS405でYES)、操作受付部111は、ユーザ操作を第5操作と特定する。ステップS406において、ゲーム実行部115は、第5操作、すなわち、UI303Bへのタッチオンをトリガーとして、第1キャラクタ301にメインスキル動作を行なわせる。そして、UIタッチ時処理はゲーム実行処理へ戻る。
一方、スキルポイント管理部113が、第1スキルポイントが第1スキル閾値未満であると判定した場合(ステップS403でNO)、または、第2スキルポイントが第2スキル閾値未満であると判定した場合(ステップS405でNO)、ステップS407において、操作受付部111は、ユーザの操作がロングタップ操作であるか否かを判定する。
ステップS407でNOの場合、すなわち、ユーザの操作がロングタップ操作でないと判定した場合、操作受付部111は、ユーザの操作を第6操作と特定する。ステップS408において、ゲーム実行部115は、第6操作、すなわち、UI303AまたはUI303Bへのタッチオフをトリガーとして、第1キャラクタ301に通常攻撃動作を行なわせる。そして、UIタッチ時処理はゲーム実行処理へ戻る。
ステップS407でYESの場合、すなわち、ユーザの操作がロングタップ操作であると判定した場合、操作受付部111は、ユーザの操作を第7操作と特定する。そして、UIタッチ時処理は、図示の「A」、すなわち、ゲーム実行処理のステップS108へ進む。つまり、ゲーム実行部115は、ロングタップ操作の間、第1キャラクタ301に貯め動作を行わせる。
〔その他の変形例〕
上述した例では、スキル動作はサブスキル動作とメインスキル動作の2種類であったが、ある局面においては、スキル動作の種類は2つに限定されない。一例として、スキル動作は1種類であってもよいし、3種類以上であってもよい。
上述した例では、スキル動作による攻撃が成功した場合、第1スキルポイントおよび第2スキルポイントの両方が増加する構成であったが、増加するスキルポイントはいずれか一方であってもよい。例えば、サブスキル動作による攻撃が成功した場合、第2スキルポイント、すなわち、メインスキル動作を実行するために必要なスキルポイントのみが増加してもよい。また、例えば、メインスキル動作による攻撃が成功した場合、第1スキルポイント、すなわち、サブスキル動作を実行するために必要なスキルポイントのみが増加してもよい。
上述した例では、通常攻撃動作を実行するためのUI303Cがゲーム画面に配置されていたが、ある局面においては、UI303Cは必須ではない。換言すれば、通常攻撃動作の実行専用のUIは、ゲーム画面に配置されていなくてもよい。
また、上述した例では、第1キャラクタ301が特殊状態でない場合の、UI303AおよびUI303Bへのタッチ操作により、通常攻撃動作を第1キャラクタ301に実行させていた。これに対して、第1キャラクタ301が特殊状態でなく、かつ、UI303AおよびUI303Bへのタッチ操作が行われた場合、ある局面においては、該タッチ操作を無効として、第1キャラクタ301に何の動作も行わせない構成であってもよい。
上述した例では、スキルポイントが、第1キャラクタ301および第2キャラクタ302の少なくとも一方の動作に基づいて増加する構成であったが、ある局面においては、スキルポイントの増加は、該動作に基づかない、別の方法で行われてもよい。
上述した例では、第1キャラクタ301は、ロングタップ操作の実行中に、スキルポイントを増加させる貯め動作を実行していたが、ロングタップ操作は、貯め動作と異なる動作を実行するための操作であってもよい。ある局面においては、第1キャラクタ301は、ロングタップ操作の実行中に防御動作を行なってもよい。別の局面において、第1キャラクタ301は、ロングタップ操作中はその場で動かず、ロングタップ操作が解除されたときに、通常攻撃動作と異なる、第2キャラクタ302により大きなダメージを与える攻撃動作を行なってもよい。
上述した例では、スキル動作の実行により、スキルポイントは初期値に戻る構成であったが、スキル動作の実行により、スキルポイントを所定量減算する構成であってもよい。この例において、サブスキル動作を実行した場合の第1スキルポイントの減算量と、メインスキル動作を実行した場合の第2スキルポイントの減算量とは、同じであってもよいし、異なってもよい。例えば、サブスキル動作を実行した場合の第1スキルポイントの減算量は、メインスキル動作を実行した場合の第2スキルポイントの減算量より小さくてもよい。
スキルポイント管理部113は、第1キャラクタ301が第2キャラクタ302にダメージを与えたことにより、第2キャラクタ302が強制的に移動させられた場合に、スキルポイントを増加させてもよい。例えば、スキルポイント管理部113は、強制的な移動により、第2キャラクタ302がオブジェクトに衝突した場合に、スキルポイントを増加させてもよい。また、スキルポイント管理部113は、第2キャラクタ302が第1キャラクタ301にダメージを与えたことにより、第1キャラクタ301が強制的に移動させられた場合に、スキルポイントを増加させてもよい。例えば、スキルポイント管理部113は、強制的な移動により、第1キャラクタ301が吹き飛ばされてオブジェクトに衝突した場合に、スキルポイントを増加させてもよい。
ゲーム実行部115は、第1キャラクタ301が攻撃動作(通常攻撃動作およびスキル攻撃動作)を行わない時間が、所定の閾値以上継続した場合、第1キャラクタ301、あるいは、ユーザにペナルティを与えてもよい。該ペナルティの一例として、体力算出部112は、第1キャラクタ301の第1パラメータを減少させる、すなわち、第1キャラクタ301にダメージを与えてもよい。また、ゲーム実行部115は、該ダメージを与えることに加え(あるいは、該ダメージを与えることに代えて)、ユーザが臆病者、即ち、積極的に相手との対戦を行わない消極的なプレーヤであると認定してもよい。ユーザが臆病者であると認定した場合、ゲーム実行部115は、ユーザが臆病者であることを示す画像またはテキストをゲーム画面に追加してもよい。これにより、ユーザは、ペナルティを避けるために、第1キャラクタ301に積極的に攻撃動作を行わせようとする。結果として、ゲームの興趣性が向上する。
ゲーム実行部115は、第2キャラクタ302がゲームプログラム131で動作する例において、第1キャラクタ301が貯め動作を実行している場合に、第2キャラクタ302を、第1キャラクタ301を攻撃するように動作させてもよい。これにより、貯め動作がわずかな時間しか実行できなくなり、ゲームの難易度が上がる。結果として、ゲームの戦略性が向上する。
ゲーム実行部115は、キャラクタが貯め動作を実行している場合、又は貯め動作を実行している時間が所定の閾値以上継続した場合、ゲーム画面に、キャラクタへ向かって移動するオブジェクトを出現させてもよい。そして、キャラクタが該オブジェクトと衝突した場合、体力算出部112は、該キャラクタの第1パラメータを減少させる、すなわち、該キャラクタにダメージを与えてもよい。これにより、貯め動作がわずかな時間しか実行できなくなり、ゲームの難易度が上がる。結果として、ゲームの戦略性が向上する。この構成は、例えば、全てのキャラクタがユーザの操作で動作する対人対戦モードで採用すればよい。
UI303は、ゲーム画面の任意の位置に配置可能であってもよい。換言すれば、ユーザが、UI303のそれぞれを、ゲーム画面において、自身の望む位置に配置することができてもよい。ユーザは、例えば、ユーザによるユーザ端末の把持の仕方、縦画面表示であるか横画面表示であるか、ユーザの利き手等に基づいて、UI303を配置すればよい。これにより、ユーザそれぞれにとって、より操作しやすいUI303の配置を実現することができる。
〔ソフトウェアによる実現例〕
制御部110の制御ブロックは、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、制御部110を備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1) ゲームプログラムを説明した。本開示のある局面によると、ゲームプログラム(131)は、プロセッサ(10)およびタッチスクリーン(15)を備えたコンピュータ(ユーザ端末100)により実行される。ゲームプログラムは、プロセッサに、タッチスクリーンの第1領域をタッチする第1操作が行われると、タッチの終了をトリガーとして、第2キャラクタ(302)に対する第1動作を第1キャラクタ(301)に実行させるステップ(S106)と、第1キャラクタおよび第2キャラクタの少なくとも一方の動作に基づいて、第1ポイントを増加させるステップ(S109、S110、S206、S207、S211、S212)と、第1ポイントが第1閾値以上の場合、タッチスクリーンの第2領域をタッチする第2操作が行われると、タッチの開始をトリガーとして、第2キャラクタに対する、第1動作と異なる第2動作を前記第1キャラクタに実行させるステップ(S304、S306)と、を実行させる。
(項目2) (項目1)において、第1ポイントを増加させる第1キャラクタの動作は、第1操作および第2操作の少なくともいずれかを含むタッチスクリーンに対する操作に基づいて、第1キャラクタが第2キャラクタに作用を与えた場合の動作である。第1ポイントを増加させる第2キャラクタの動作は、第2キャラクタが第1キャラクタに作用を与えた場合の動作である。
(項目3) (項目2)において、第1キャラクタおよび第2キャラクタには、第1キャラクタと第2キャラクタとの対戦の勝敗を決定するための第1パラメータが関連付けられている。第1動作および第2動作は、第1動作および第2動作の対象となるキャラクタに関連付けられた第1パラメータを、第1動作および第2動作を実行したキャラクタが対戦において有利になるように変動させるための動作である。ゲームプログラムは、プロセッサに、第1キャラクタを対象とする、第1動作または第2動作を第2キャラクタに実行させるステップ(S102)をさらに実行させる。1ポイントを増加させるステップでは、作用として、第2キャラクタが実行した第1動作または第2動作により、第1キャラクタに関連付けられた第1パラメータが変動した場合、第1ポイントを増加させる。
(項目4) (項目3)において、第1キャラクタが実行可能な動作は、第2キャラクタが実行した第1動作または第2動作による、第1キャラクタに関連付けられた第1パラメータの変動量を減少させるための動作を含まない。
(項目5) (項目3)または(項目4)において、ゲームプログラムは、プロセッサに、第1キャラクタの第2動作の実行に基づいて、第1閾値に到達した第1ポイントを初期値に戻すステップ(S202)をさらに実行させる。第1ポイントを増加させるステップでは、作用として、第1キャラクタの第2動作により、第2キャラクタに関連付けられた第1パラメータが変動した場合、第1ポイントを初期値から増加させる。
(項目6) (項目3)から(項目5)のいずれかにおいて、第2動作は、第1動作と比較して、第1パラメータの変動量が大きい動作である。第1ポイントは、時間の経過に伴って増加しない。
(項目7) (項目1)から(項目6)のいずれかにおいて、ゲームプログラムは、プロセッサに、第1ポイントが第1閾値未満の場合、第2領域をタッチする第2操作が行われると、タッチの終了をトリガーとして、第2キャラクタに対する第1動作を第1キャラクタに実行させるステップ(S408)をさらに実行させる。
(項目8) (項目1)から(項目7)のいずれかにおいて、第1操作は、第1領域へのタッチの開始からタッチの終了までの第1時間が第2閾値未満の操作である。ゲームプログラムは、プロセッサに、第1時間が第2閾値以上の、タッチスクリーンをタッチする第3操作が行われた場合、第3操作によるタッチスクリーンへのタッチが継続している間、第1動作と異なる第3動作を第1キャラクタに実行させるステップ(S108)をさらに実行させる。第1ポイントを増加させるステップでは、第1キャラクタが第3動作を実行している間、第1ポイントを増加させる。
(項目9) (項目8)において、第2操作は、第2領域へのタッチの開始からタッチの終了までの第2時間が第3閾値未満の操作である。ゲームプログラムは、プロセッサに、第1ポイントが第1閾値未満の場合、第2領域をタッチする第2操作が行われると、タッチの終了をトリガーとして、第2キャラクタに対する第1動作を第1キャラクタに実行させるステップ(S408)と、第2時間が第3閾値以上の、第2領域をタッチする第4操作が行われた場合、第4操作による第2領域へのタッチが継続している間、第3動作を前記第1キャラクタに実行させるステップ(S108)と、をさらに実行させる。
(項目10) (項目1)から(項目9)のいずれかにおいて、ゲームプログラムは、第1領域および第2領域と異なる、タッチスクリーンの第3領域をタッチする第5操作が行われると、タッチの開始をトリガーとして、第1動作を第1キャラクタに実行させるステップ(S307)をさらに実行させる。
(項目11) (項目10)において、第2領域は、第2動作の実行のための第1ユーザインターフェース(UI)部品(UI303A、UI303B)である。第3領域は、第1動作の実行のための第2UI部品(UI303C)である。第1UI部品および第2UI部品は、タッチスクリーンに表示されるゲーム画面の任意の位置に配置可能である。
(項目12) (項目1)から(項目11)のいずれかにおいて、ゲームプログラムは、プロセッサに、タッチスクリーンをタッチした後、該タッチを継続したままタッチ位置を移動させる操作に基づいて、第1キャラクタを移動させるステップをさらに実行させる。
(項目13) ゲームプログラムを説明した。本開示のある局面によると、ゲームプログラム(131)は、プロセッサ(10)およびタッチスクリーン(15)を備えたコンピュータ(ユーザ端末100)により実行される。ゲームプログラムは、プロセッサに、第1キャラクタ(301)が第1状態ではない場合、タッチスクリーンの所定領域(UI303A、UI303B)を第1態様でタッチする操作が行われると、タッチの終了をトリガーとして、第2キャラクタ(302)に対する第1動作を第1キャラクタに実行させるステップ(SS408)と、第1キャラクタが第1状態である場合、所定領域を、第1態様と異なる第2態様でタッチする操作が行われると、タッチの開始をトリガーとして、第2キャラクタに対する、第1動作と異なる第2動作を第1キャラクタに実行させるステップ(S404、S406)と、を実行させる。
(項目14) 情報処理装置を説明した。本開示のある局面によると、情報処理装置(ユーザ端末100)は、ゲームプログラム(131)を記憶する記憶部(120)と、ゲームプログラムを実行することにより、情報処理装置の動作を制御する制御部(110)と、タッチスクリーン(15)と、を備える。制御部は、タッチスクリーンの第1領域をタッチする第1操作が行われると、タッチの終了をトリガーとして、第2キャラクタ(302)に対する第1動作を第1キャラクタ(301)に実行させ、第1キャラクタおよび第2キャラクタの少なくとも一方の動作に基づいて、第1ポイントを増加させ、第1ポイントが第1閾値以上の場合、タッチスクリーンの第2領域をタッチする第2操作が行われると、タッチの開始をトリガーとして、第2キャラクタに対する、第1動作と異なる第2動作を第1キャラクタに実行させる。
(項目15) ゲームプログラムを実行する方法を説明した。本開示のある局面によると、ゲームプログラム(131)は、プロセッサ(10)およびタッチスクリーン(15)を備えたコンピュータ(ユーザ端末100)により実行される。方法は、プロセッサが、タッチスクリーンの第1領域をタッチする第1操作が行われると、タッチの終了をトリガーとして、第2キャラクタ(302)に対する第1動作を第1キャラクタ(301)に実行させるステップ(S106)と、第1キャラクタおよび第2キャラクタの少なくとも一方の動作に基づいて、第1ポイントを増加させるステップ(S109、S110、S206、S207、S211、S212)と、第1ポイントが第1閾値以上の場合、タッチスクリーンの第2領域をタッチする第2操作が行われると、タッチの開始をトリガーとして、第2キャラクタに対する、第1動作と異なる第2動作を前記第1キャラクタに実行させるステップ(S304、S306)と、を含む。