〔実施形態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とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
<各装置のハードウェア構成要素>
プロセッサ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は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。
タッチ操作入力部151は、タッチパネルディスプレイのような表示部152と一体に構成されていてもよいし、タッチセンシティブデバイスのような表示部とは別体の装置として構成されていてもよい。本実施形態では、タッチ操作入力部151としてタッチパネルディスプレイ(タッチスクリーン15)を想定する。タッチスクリーン15は、表示部152とタッチ操作入力部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は、一例として、ユーザのタッチ操作によって操作可能なオブジェクを、ユーザの操作による所定時間以上継続するタッチ操作と、当該タッチ操作中におけるオブジェクトを移動させる操作とに応じて決められる方向へ、所定の動作を当該オブジェクトに実行させるゲームを実行するためのシステムである。
ゲームの種類は限定されず、その例には、テニス、卓球、ドッジボール、野球、サッカーおよびホッケーなどのスポーツを題材としたゲーム、パズルゲーム、クイズゲーム、RPG、アドベンチャーゲーム、シューティングゲーム、シミュレーションゲーム、育成ゲーム、ならびに、アクションゲーム(格闘ゲーム)を含む。本実施形態では、ユーザが操作可能なオブジェクトを「操作キャラクタ」とも言う。本実施形態では、本ゲームがアクションゲームであり、操作キャラクタは戦闘を行うキャラクタである形態について説明する。
ゲームシステム1によるプレイ形態は、限定されず、例えば、単一のユーザによるシングルプレイゲームであってもよいし、複数のユーザによるマルチプレイゲームであってもよい。マルチプレイゲームは、例えば、複数のユーザが対戦する対戦ゲームであってもよいし、複数のユーザが協力する協力プレイゲームであってもよい。
本実施形態では、単一のユーザ端末100において実行される格闘ゲーム(シングルプレイ型格闘ゲーム)が想定されている。この場合、シングルプレイ型格闘ゲームをユーザ端末100において実行するために必要な情報のやりとりがユーザ端末100とサーバ200との間で行われる。
なお、マルチプレイ型ゲームとしての格闘ゲーム(マルチプレイ型格闘ゲーム)は、ユーザが操作するユーザ端末100(クライアントのコンピュータ)と、1以上の他のユーザが操作する1以上の他のユーザ端末100(他のクライアントのコンピュータ)との間で、該ゲームに係るデータの少なくとも一部を共有することにより、複数のユーザが1の格闘ゲームに参加して協力してプレイすることが可能な格闘ゲームである。
ゲームシステム1がマルチプレイ型格闘ゲームである場合、サーバ200を介して通信する第1のユーザ端末100、第2のユーザ端末100、および、第3のユーザ端末100・・・のそれぞれにおいて、共通する所定のゲーム環境が生成され、それぞれの表示部に表示される。また、格闘ゲームに係るデータとして、例えば、当該所定のゲーム環境に配置される操作オブジェクト以外の他のオブジェクトの種類および配置、クリア条件、各種ゲージ、プレイ結果などが、サーバ200を介して、複数のユーザ端末100間で共有される。サーバ200は、各ユーザ端末100から収集した情報、および、自装置において生成した情報を、1の格闘ゲームに協力して参加する各ユーザ端末100に配布して共有させる。
<ゲームシステム1の機能的構成>
図2は、ゲームシステム1に含まれるサーバ200およびユーザ端末100の機能的構成を示すブロック図である。サーバ200およびユーザ端末100のそれぞれは、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。
ユーザ端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能する。
サーバ200は、各ユーザ端末100と通信して、ユーザ端末100がゲームを進行させるのを支援する機能を有する。例えば、有価データの販売、サービスの提供などを実行する。ゲームがマルチプレイゲームである場合には、サーバ200は、ゲームに参加する各ユーザ端末100と通信して、ユーザ端末100同士のやりとりを仲介する機能を有していてもよい。サーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24等の協働によって、制御部210および記憶部220として機能する。
記憶部120および記憶部220は、ゲームプログラム131、ゲーム情報132およびユーザ情報133を格納する。ゲームプログラム131は、ユーザ端末100およびサーバ200で実行するゲームプログラムである。ゲーム情報132は、制御部110および制御部210がゲームプログラム131を実行する際に参照するデータである。ユーザ情報133は、ユーザのアカウントに関するデータである。記憶部220において、ゲーム情報132およびユーザ情報133は、ユーザ端末100ごとに格納されている。
(サーバ200の機能的構成)
制御部210は、記憶部220に格納されたゲームプログラム131を実行することにより、サーバ200を統括的に制御する。例えば、制御部210は、ユーザ端末100に各種データおよびプログラム等を送信する。制御部210は、ゲーム情報もしくはユーザ情報の一部または全部をユーザ端末100から受信する。ゲームがマルチプレイゲームである場合には、制御部210は、ユーザ端末100からマルチプレイの同期の要求を受信して、同期のためのデータをユーザ端末100に送信してもよい。
制御部210は、ゲームプログラム131の記述に応じて適宜に機能する。制御部210は、実行するゲームの性質に応じて、ユーザ端末100におけるゲームの進行を支援するために、図示しないその他の機能ブロックとしても機能することができる。
(ユーザ端末100の機能的構成)
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム131およびユーザの操作にしたがって、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。
制御部110は、ゲームプログラム131の記述に応じて、タッチ操作受付部111、表示制御部112、ユーザインターフェース(以下、UI)制御部113、アニメーション生成部114およびゲーム実行部115として機能する。制御部110は、実行するゲームの性質に応じて、ゲームを進行させるために、図示しないその他の機能ブロックとしても機能することができる。
タッチ操作受付部111は、タッチ操作入力部151に対するユーザの入力操作を検知し受け付ける。タッチ操作受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールに対してユーザが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部110の各要素に出力する。
例えば、タッチ操作受付部111は、タッチ操作入力部151に対する入力操作を受け付けて、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。タッチ操作受付部111は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、タッチ操作受付部111は、連続して検知されていた入力が途切れると、タッチスクリーン15から接触入力が解除されたことを検知する。
また、タッチ操作受付部111は、タッチ操作入力部151に対するユーザのタッチ操作の位置および継続時間を検出する。以下、タッチ操作入力部151に対してユーザがタッチ操作した位置を「タッチ位置」ともいう。タッチ操作の種類は、ユーザによるタッチ操作入力部151への接触の仕方によって分類可能な範囲で適宜に決められる。本実施形態では、ユーザによる一点での短時間の接触であるタップ、ある点から短時間で接触位置を滑らすフリック、ある点から接触位置を連続して移動させるフリック以外の操作であるドラッグ、および、一点での所定時間以上連続する接触であるロングタップ等を想定する。
UI制御部113は、UIを構築するために表示部152に表示させるUIオブジェクトを制御する。UIオブジェクトは、ユーザが、ゲームの進行上必要な入力をユーザ端末100に対して行うためのツール、または、ゲームの進行中に出力される情報をユーザ端末100から得るためのツールである。UIオブジェクトは、これには限定されないが、例えば、アイコン、ボタン、リスト、メニュー画面などである。
アニメーション生成部114は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。例えば、抽選が実行されている様子を表現したアニメーション等を生成してもよい。
表示制御部112は、タッチスクリーン15の表示部152に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。例えば、表示制御部112は、ユーザが操作可能な操作キャラクタを表示部152に表示させる。また、表示制御部112は、アニメーション生成部114によって生成されたアニメーションを含むゲーム画面を表示部152に表示してもよい。また、表示制御部112は、上述のUIオブジェクトを、該ゲーム画面に重畳して描画してもよい。
ゲーム実行部115は、ユーザの操作に基づく操作キャラクタの動作を、ゲーム空間に存在する操作キャラクタに実行させることにより、ゲームを進行させる。例えば、本実施形態のゲームは、操作キャラクタが第2のキャラクタと戦闘することにより進行する。第2のキャラクタは、操作キャラクタによる所定の動作の対象となり得るオブジェクト(以下、「対象オブジェクト」という。)である。例えば、操作キャラクタが攻撃等の作用を及ぼす対象の敵キャラクタ、門、岩などの移動の障害となるオブジェクト、移動経路を変更するためのスイッチ等のゲーム画面の構成を変更するためのオブジェクト等であり得る。ゲーム実行部115は、操作キャラクタに実行させる動作の内容を、タッチ操作受付部111が受け付けた操作に基づいて決定する。動作の種類としては、例えば、対象オブジェクトに対して行う所定の動作、操作キャラクタ自身の移動する動作があるが、これらに限られない。また、所定の動作としては、例えば、対象オブジェクトに対して作用を与える動作が挙げられる。作用を与える動作としては、敵キャラクタに対する攻撃動作、敵キャラクタの状態を変化させる動作、移動の障害となるオブジェクトを破壊する動作、アイテムを取得する動作、上述のスイッチの切り替えなどゲーム画面の構成を変更するためのオブジェクトを操作する動作等があるが、これらに限られない。敵キャラクタに対する攻撃としては、敵キャラクタを所定距離ふきとばす技、よろけさせて所定期間行動不能にさせる技等があるが、これに限られない。また、変化させる敵キャラクタの状態としては、例えば、攻撃力、防御力、命中率、移動速度等が挙げられるが、これらに限られない。本ゲームでは、ユーザは操作キャラクタに攻撃動作等を実行させて、敵キャラクタの体力を減らし、敵キャラクタの体力が無くなると戦闘に勝利するものとする。ゲーム実行部115は決定した動作をアニメーション生成部114に通知する。
なお、図2に示すサーバ200およびユーザ端末100の機能は一例にすぎない。サーバ200は、ユーザ端末100が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末100は、サーバ200が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末100およびサーバ200以外の他の装置をゲームシステム1の構成要素とし、該他の装置にゲームシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末100、サーバ200、および他の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
[ユーザの操作]
本実施形態では、ユーザの第1の操作に応じて操作キャラクタに所定の動作を実行可能な状態に移行させ、ユーザの第2の操作に応じて操作キャラクタを移動させ、当該実行可能な状態に移行させた後のユーザの第3の操作に応じて、操作キャラクタに所定の動作を実行させる。そして、本実施形態では、ユーザの第1の操作に応じて所定の動作を実行可能な状態に移行した操作キャラクタに、この状態で操作キャラクタがユーザによる第2の操作によって移動する態様に応じた方向へ、ユーザによる第3の操作によって所定の動作を実行させる。より詳しくは、第3の操作を検出したときに、第2の操作による操作キャラクタの移動態様が第1の態様である場合には、操作キャラクタが向いている方向に所定の動作を実行させる。一方で、第3の操作を検出したときに当該移動態様が第2の態様である場合には、操作キャラクタによる所定の動作の対象として検出されている第2のキャラクタに向けて所定の動作を実行させる。第1の操作、第2の操作および第3の操作は、いずれも、ゲームシステムに応じて適宜に設定可能である。本実施形態では、タッチ操作入力部151におけるユーザのタッチ操作とし、第1の操作は、ユーザによるタッチ操作入力部への長押し(ロングタップ操作)であり、第2の操作は、ユーザによるタッチ操作入力部でのスライド操作であり、第3の操作は、ユーザによるタッチ操作入力部における長押しの解除(タッチオフ操作)、とする。
[操作キャラクタによる所定の動作]
本ゲームにおける操作キャラクタによる所定の動作の処理例について図3を用いて説明する。図3は、ユーザ端末100が実行するチャージ攻撃に関する処理の流れを示すフローチャートである。図4は、図3中の処理例中における操作キャラクタの移動処理の流れの一例を示すフローチャートである。
操作キャラクタが実行する所定の動作は、限定されず、操作キャラクタ及び/又は他のオブジェクトに作用を及ぼす動作が挙げられ、作用としては、攻撃、防御、回復、状態の変化等が挙げられる。特に、ゲーム内においてより効果の高い動作であってよい。たとえば、アクションゲーム、アクションロールプレイングゲーム等であれば、所定の動作は、攻撃するための動作であり、さらには、より強い威力を発揮する攻撃動作であってよい。本実施形態では、所定の動作として行う攻撃を「チャージ攻撃」とする。なお、本実施形態では、ユーザによるタップ操作によって通常の攻撃動作を操作キャラクタに実行させ、タッチオフ操作によってチャージ攻撃を操作キャラクタに実行させる。チャージ攻撃のための操作は、通常の攻撃のための操作に比べて制約が多く、よって通常の攻撃よりもより強い威力を発揮する攻撃となっている。
ステップS301において、ゲーム実行部115は、チャージ攻撃の対象となり得る対象オブジェクトを検出する。ゲーム実行部115は、ステップS302において、ゲーム空間における操作キャラクタの位置を検出し、ステップS303において、ゲーム空間内における操作キャラクタから最も近い位置にある対象オブジェクトを検出する。検出されている対象オブジェクトは、検出されていることを示す表示がされていてもよく、本実施形態では、ステップS303で検出されている対象オブジェクトは、それを囲むリングを伴って表示される。
ここまでの処理の画面の表示例について、図5〜7を用いて説明する。本実施形態において、チャージ攻撃は図5(A)に示されるチャージ態様と、図5(B)に示されるその後の発動態様との二つの態様で表示される。チャージ態様は、操作キャラクタが、溜めているエネルギーを外方へ迸らせることによるオーラ502を有している態様である。発動態様は、操作キャラクタ501が斧を振って、あたかも溜めたエネルギーを飛ばすかのような、衝撃波503を飛ばす態様である。図5(A)の画面600では、操作キャラクタ501は、後述するチャージ態様の状態で道602を矢印610に示す方向に移動し、門601に対向する曲り角に到達する。操作キャラクタの移動については、後述する。道602の曲がり角よりも先には、回復アイテムとしての壺604が配置されている。この地点での操作キャラクタ501に対する対象オブジェクトは、門601と壺604である。壺604の方が操作キャラクタ501に近いことから、ステップS303の処理によって、表示制御部112は、壺604が直近の対象オブジェクトであることを表示するために、壺604を囲むリング605を表示部152に表示させる。なお、図5(A)および図5(B)は、道602を進む操作キャラクタ501が、溶岩などのダメージ床603を隔てて位置する門601をチャージ攻撃によって破壊する場面を表している。
また、例えば図6に示す画面700では、操作キャラクタ501は、通常の移動の動作で道702を矢印710に示す方向に移動し、門601に対向する先端に到達する。道702から離れた飛び地704には、移動床703のスイッチ705は配置されている。この地点での操作キャラクタ501に対する対象オブジェクトは、門601とスイッチ705である。スイッチ705の方が操作キャラクタ501に近いこと。そのため、ステップS303の処理によって、表示制御部112は、スイッチ705が直近の対象オブジェクトであることを表示するために、スイッチ705を囲むリング706を表示部152に表示させる。なお、図6、図7(A)および図7(B)は、崖で隔てられた道702から門601を破壊して通過しようとする場面を示している。
次いで、タッチ操作受付部111は、ステップS304において、タッチ操作入力部151におけるユーザからのタッチ操作の入力を受け付ける。当該タッチ操作を受け付けた場合、ステップS305において、タッチ操作受付部111は検出したタッチの継続時間がt秒以上か否かを検出する。当該継続時間がt秒以上であれば、表示制御部112は、操作キャラクタを後述のチャージ態様の状態で表示させる。このようにして、ゲームプログラム131は、ユーザのロングタップ操作に応じて操作キャラクタをチャージ態様に移行させる。
たとえば、図7(A)に示される画面800では、操作キャラクタ501は、道702の先端で停止している。この状態でユーザは、ロングタップ操作を開始する。このロングタップ操作は、タッチ操作入力部151においてタッチ位置が実質的に移動しない操作である。よって、当該ロングタップ操作の開始からt秒までは、操作キャラクタ501は、通常の状態で停止している状態で表示されるが、t秒を経過後からは、操作キャラクタ501は、チャージ態様の状態で表示される。
ユーザのタッチ操作の継続時間t秒は、チャージ攻撃への移行を判定するのに十分な時間であればよい。たとえば、当該継続時間は、ユーザによるタッチ操作が、通常攻撃のためのタップ操作よりも長いものと判定可能な時間であればよい。たとえば、タップ操作による通常攻撃(以下、「タップ攻撃」ともいう。)が40フレーム(1秒60フレームとする)で構成されるものとする。タップ攻撃の攻撃判定の発生は、タップ攻撃の開始から15フレーム後などと設定し得る。よって、タッチの継続時間の判定は、16フレーム以降と設定することができ、したがって、tは16/60秒と設定し得る。
また、ステップS305において継続時間がt秒以上であれば、ステップS306においてゲーム実行部115は、タッチ操作の移動に応じた操作キャラクタの移動処理を実行する。
一方で、ステップS305において当該継続時間がt秒に満たない場合には、タッチ操作受付部111は、ステップS311において、タッチ操作入力部151におけるユーザのタッチ操作の移動(スライド操作)を検出する。当該スライド操作が検出されれば、ステップS312において、ゲーム実行部115は検出されたスライド操作に応じて操作キャラクタを移動させ、ステップS301に戻る。ステップS311においてタッチ位置の移動が検出されない場合には、ステップS301に戻る。
他方、ステップS306における移動処理は、例えば図4に示されるフローに従って実行される。前述したように、操作キャラクタは、ユーザのスライド操作によって移動する。より詳しくは、操作キャラクタは、ユーザのタッチ操作の開始点を基準として現在タッチしている位置の方向に移動し、当該開始点から現在タッチしている位置までの距離がより小さいとより遅く移動するものとする。なお、本実施形態では、操作キャラクタは、当該操作キャラクタが向いている方向へ移動する。
ここで、操作キャラクタの移動処理について、図4を用いて説明する。まず、ステップS401において、タッチ操作受付部111はユーザによるタッチ操作の操作量を検出する。当該操作量は、ユーザによるロングタップ操作の開始点と現在のタッチ位置との距離(最短距離)に応じて決まる。
次いで、ステップS402において、タッチ操作受付部111は上記の操作量が閾値以上か否かを検出する。閾値は、ゲーム空間における前記第1のキャラクタの位置を示す座標の値の変化量(前述の操作量)について設定されている。当該閾値は、例えば、表示部152において操作キャラクタの向きおよび位置の変化が十分に視認できるか否かの境界値である。タッチ操作受付部111は、閾値に応じて、タッチ操作中の操作キャラクタの移動態様を第1の態様と第2の態様とのいずれかに判定する。
第1の態様は、当該操作量が当該閾値以上である態様であり、第2の態様は、当該操作量が当該閾値未満である。本実施形態では、第1の態様は、ゲーム空間における操作キャラクタの移動であって、表示部152において十分に視認可能な程度に大きく移動する態様とする。これに対して、第2の態様は、ゲーム空間において操作キャラクタが停止しているか、あるいは、ゲーム空間における操作キャラクタの移動であって、表示部152ではその移動を視認するのには十分に大きくなく移動する態様とする。
なお、閾値は、ゲーム空間に設定される第1の座標系に応じて決められてもよいし、タッチ操作入力部151(タッチスクリーン15)に設定される第2の座標系に応じて決められてもよいし、これらの両方の座標系における操作キャラクタおよびタッチ操作位置の一方または両方の変化量を適宜に考慮して決められてもよい。
ステップS402において当該操作量が閾値以上であれば、ステップS403において、ゲーム実行部115は検出した操作量に応じて操作キャラクタをゲーム空間において移動させ、表示制御部112は、表示部152において当該操作量に応じて操作キャラクタが移動するように表示させる。
本実施形態では、操作キャラクタの移動の動作を複数設定してよく、例えばチャージ攻撃の効力に見合う制約を課すなどの観点から、上記の操作量による移動の動作を通常の移動の動作と異ならせてもよい。たとえば、チャージ攻撃を実行可能な状態にはない操作キャラクタの移動する動作として、移動速度の異なる二つの動作が設定されており、ロングタップ操作によりチャージ攻撃を実行可能な状態にある操作キャラクタの移動する動作を、移動速度の遅い方の動作としてもよい。本実施形態では、チャージ攻撃を発動可能な状態における操作キャラクタの移動の動作が「溜め歩き」に設定されている。「溜め歩き」とは、操作量に応じた移動速度が通常の移動動作に比べて遅い一定の速度に制限される移動の動作である。
したがって、表示制御部112は、ステップS403において、操作キャラクタが「溜め歩き」の移動の動作で移動するように表示させる。そして制御部110は、図3のフローに復帰する。
たとえば、図5(A)の画面600では、ユーザは、操作キャラクタ501に道602を直進させる際にロングタップ操作を開始し、矢印610の方向に沿ってタッチ位置をスライドさせて操作キャラクタ501を移動させる。よって、当該ロングタップ操作の開始からt秒までは、操作キャラクタ501は、通常の移動の動作で移動するように表示されるが、t秒を経過後からは、操作キャラクタ501は、チャージ態様の状態での移動(溜め歩き)の動作で移動するように表示される。このように、操作キャラクタ501は、チャージ態様の状態で道602の曲がり角まで溜め歩きで移動してくる。このように、ロングタップ操作時における移動の動作は、移動速度のより遅い動作となっている。前述したように、チャージ攻撃は、通常の攻撃に比べてより高い効果を奏する。よって、通常の攻撃に比べて移動が遅いという制約を課すことによって、ゲームの興趣性が適切となる。
なお、図5(A)の画面600では、ユーザのロングタップ操作中のスライド操作によってチャージ態様の状態で操作キャラクタ501が道602を移動するが、曲がり角では停止する。この停止時でも、ユーザによるロングタップ操作は継続している。このように、一旦閾値以上の操作量で操作キャラクタを移動させた後に操作キャラクタを停止させた場合では、ステップS403によって、表示部152において操作キャラクタは移動した後に停止するように表示される。ロングタップ操作中におけるこのような間欠的な移動も表示部152に表示される。このように、ゲームプログラム131は、タッチ操作の開始からタッチオフ操作までに、スライド操作により操作キャラクタが移動したか否かを検出する。
一方、例えば、図7(A)の画面800では、前述したように、操作キャラクタ501が道702の先端で停止した状態でユーザがロングタップ操作を開始し、その結果、操作キャラクタ501がチャージ態様の状態となる。この場合のユーザのロングタップ操作は、操作キャラクタ501を移動させるためのものではないことから、当該ロングタップ操作におけるタッチ位置は、一定であるか、あるいはユーザの意図しない要因(振動など)で変化する程度である。よって、当該ロングタップ操作の操作量は、前述の閾値未満となり、操作キャラクタ501は、道702の先端で、チャージ態様のまま停止しているように表示される。
このように、前述の操作キャラクタの移動処理において当該操作量が閾値に満たない場合には、ゲーム実行部115は、ステップS404において、検出された操作量に応じて操作キャラクタをゲーム空間において移動させるが、表示制御部112は、表示部152では操作キャラクタを停止した状態で表示する。そして図3のフローに復帰する。このように、ゲームプログラム131は、ユーザによるスライド操作の開始点と終了点とから決まる操作量が所定の値未満である場合には操作キャラクタを移動させないようにする。
なお、表示制御部112は、操作キャラクタを移動させる操作を支援するためのオブジェクトを表示部152に表示させてもよい。このようなオブジェクトの一例について、図6を用いて説明する。図6に示される弾性オブジェクトE1は、操作キャラクタを移動させる操作を支援するためのオブジェクトの一例である。タッチ操作受付部111がタッチ操作を受け付けると、表示制御部112は、位置L1を中心とする円形の弾性オブジェクトE1を表示部152に表示させる。位置L1は、ロングタップ操作の受付時の位置(開始点)である。ロングタップ操作の現在の位置が位置L2へ移動する操作をタッチ操作受付部111が受け付けると、表示制御部112は、弾性オブジェクトE1をタッチ操作の方向側に引き伸ばすように変形させた弾性オブジェクトE2をタッチスクリーン15に表示させる。このため、ユーザは、弾性オブジェクトによってタッチ操作の方向を容易に視認できる。最初のタッチ位置は、ユーザのタッチ操作が途切れると無効となり、ユーザがタッチ操作を再度実行した場合に、再度のタッチ操作に応じて新たに決定される。なお、弾性オブジェクトは、ユーザがタッチ操作する場合に常に表示されていてよい。
次いで、ステップS307において、タッチ操作受付部111は、タッチ操作入力部151におけるユーザによるロングタップ操作の解除(タッチオフ操作)を受け付ける。タッチオフ操作を受け付けた場合では、ゲーム実行部115は、ステップ308において、ロングタップ操作中に操作キャラクタが表示部152において移動したか否か(ステップS402で検出された操作量が閾値以上であったか否か)を検出する。そして、この検出結果に応じて、ステップS309またはS310において、操作キャラクタによるチャージ攻撃の方向(対象)を決定する。すなわち、本実施形態では、チャージ態様の状態にある操作キャラクタがチャージ態様の状態にある場合におけるタッチオフ操作に応じて操作キャラクタにチャージ攻撃を実行させる。
一方で、ステップS307においてタッチオフ操作が検出されない場合は、制御部110は、ステップをステップS306に戻して、前述した操作キャラクタの移動処理を実行する。
ステップS308において操作キャラクタが移動したことを判定した場合には、ゲーム実行部115は、ステップS309において、ゲーム空間において操作キャラクタが向いている方向、すなわち表示部152に表示されている操作キャラクタが向いている方向へ、チャージ攻撃を操作キャラクタに実行させる。このように、ゲームプログラム131は、タッチオフ操作を検出したときにスライド操作による操作キャラクタの移動態様が第1の態様である場合には、操作キャラクタが向いている方向にチャージ攻撃を実行させる。
たとえば、図5(A)の画面600では、操作キャラクタ501は、チャージ態様の状態で曲がり角まで直進して来ている。よって、この場合では、ロングタップ操作中に操作キャラクタ501が移動したと判定される。操作キャラクタ501は、当該曲がり角において、矢印620に示す向きに、すなわち門601に向いている。したがって、ユーザがロングタップ操作を終了する(タッチオフ操作する)と、図5(B)の画面650で示されるように、操作キャラクタ501は、自身が向いている方向、すなわち門601に向けてチャージ攻撃を発動する。このように、本実施形態では、ロングタップ操作の検出後、タッチオフ操作の検出までに、スライド操作により操作キャラクタが、ユーザによる閾値以上の操作量によって移動した場合には、ステップS309において、操作キャラクタ501が向いている方向にチャージ攻撃を実行させる。
一方で、ステップS308において操作キャラクタが移動したと判定しなかった場合には、ゲーム実行部115は、ステップS310において、ステップS303で検出した直近の対象オブジェクトに対してチャージ攻撃を操作キャラクタに実行させる。このように、ゲームプログラム131は、タッチオフ操作を検出したときに、操作キャラクタの移動態様が第2の態様である場合には、操作キャラクタによるチャージ攻撃の対象として検出されている対象オブジェクトに向けてチャージ攻撃を実行させる。
たとえば、図6の画面700では、操作キャラクタ501は、通常の移動の動作で道702の先端に到達し、図7(A)の画面800において、当該先端にて移動せずにチャージ態様になっている。よって、この場合では、ロングタップ操作中に操作キャラクタ501は移動したとは判定されない。したがって、図7(B)の画面850に示されるように、ユーザがタッチオフ操作すると、操作キャラクタ501は道702の先端において矢印720に示す向きに(すなわち門601に)向いているものの、チャージ攻撃は、その対象として検出されているスイッチ705に向けて(矢印730が示す方向へ)発動される。
なお、図5(B)の画面650で示されるゲーム場面では、その後、操作キャラクタから発動されたチャージ攻撃によって門601は破壊され、通行可能になる。操作キャラクタ501は、門601に至るまでにダメージ床603を通行することによるダメージを負うが、ダメージ床603上で門601に対面しながら通常攻撃によって門601を破壊する場合に比べて十分に少ないダメージで門601を通行することができる。そして、門601を通過した後に壺604に対してチャージ攻撃を発動させることにより、壺604が破壊され、操作キャラクタ501は、回復アイテムを取得する。その結果、操作キャラクタ501は、ダメージ床603から受けたダメージから回復する。
また、図7(B)の画面850で示されるゲーム場面では、その後、操作キャラクタ501から発動されたチャージ攻撃によりスイッチ705が作動し、移動床703が矢印740に示す方向に沿って移動し、道702の先端と門601との間で停止する。操作キャラクタ501は、道702の先端から移動床703を通って門601に近接し、門601を攻撃して破壊することにより、門601を通過する。
このように、本実施形態では、操作キャラクタが移動している場合には、操作キャラクタが向いている方向へチャージ攻撃を発動させる。よって、ユーザは、操作キャラクタの移動によってチャージ攻撃の対象を特定することができる。操作キャラクタが移動していない場合でも、チャージ攻撃の対象として検出されている(本実施形態では操作オブジェクトに対して直近の)対象オブジェクトに対してチャージ攻撃を発動させる。よって、操作オブジェクトを移動させないことによってもチャージ攻撃の対象を特定することができる。
また、本実施形態では、タッチ操作、スライド操作およびタッチオフ操作というユーザによる一連の操作によって、チャージ攻撃の発動方向を制御することが可能である。このように、ユーザインターフェースの配置に制限されるタッチパネルを用いるゲームにおいて、所定の動作を簡易な操作によって制御することができ、タッチパネルを用いるゲームの興趣性を高める観点からより効果的である。
[他の実施形態]
本実施形態では、操作キャラクタの移動態様における第2の態様を、操作キャラクタが表示部において停止して表示される態様としている。本発明において第2の態様は、表示部において停止する態様に限定されない。たとえば、当該第2の態様は、表示部において第1の態様よりも少ない移動である範囲において、移動して表示される態様であってもよい。このような第2の態様の設定は、前述した操作量の閾値を適宜に設定することによって実現可能である。すなわち、ユーザのタッチ操作に応じて、例えばゲーム空間において操作キャラクタが一定距離を超えて移動した場合は移動態様が第1の態様であるとし、当該一定距離を超えていない場合は移動態様が第2の態様であるとする。
また、本実施形態では、前述の移動態様について、ユーザによる移動のための入力操作(スライド操作)の結果、表示部で移動するように表示されるか否かによって、第1の態様と第2の態様とを区別している。本発明において、第1の態様と第2の態様とは、ユーザによる操作入力で区別することも可能である。たとえば、表示部における操作キャラクタの表示には関係なく、タッチ操作入力部でユーザが第2の操作としてのタッチ操作を移動させるか否かのみによって第1の態様と第2の態様とを区別してもよい。
また、本実施形態では、操作キャラクタは、移動する方向に向いて移動しているが、移動方向とは異なる方向に向いている状態で移動してもよい。例えば、ゲーム実行部115は、操作キャラクタを、チャージ攻撃の対象オブジェクトの方向に向かせたまま、別の方向に移動させもよい。
また、本実施形態において、操作キャラクタが実行可能な動作は、前述のスライド操作による移動、タップ操作による通常攻撃、および、ロングタップ操作とそのタッチオフ操作によるチャージ攻撃、以外の他の動作を含んでいてよい。このような他の動作の例には、フリック操作による回避行動、タップ操作の連打によるコンボ攻撃動作、フリック操作とそれに引き続くタップ操作によるカウンター攻撃動作(回避行動とそれに連動する攻撃動作)、ロングタップ操作と所定位置におけるタッチオフ操作によるスキル行動、が含まれる。
スキル行動は、ユーザによるロングタップ操作に応じてUI制御部113が表示部152に表示させたユーザインターフェース(スキルUI)に対応する位置でのタッチオフ操作によって発動する。スキルUIを表示する判定時間は、例えばタップ操作と区別可能な範囲において任意に設定することが可能である。
スキル行動は、様々な行動であり得る。スキル行動の例には、対象オブジェクトの体力を減らす攻撃動作、操作キャラクタ自身、味方キャラクタ等の異常状態または体力を回復させる動作、および、敵キャラクタ等の対象のオブジェクトの状態を変化させる動作、が含まれる。当該攻撃動作は、前述のチャージ攻撃よりも、タッチオフ操作の位置が特定されていることから、その発動により多くの制約が課せられているので、チャージ攻撃よりもより強力な攻撃を発動する動作であってよい。
また、本発明では、所定の動作を実行するに際して、さらなる制約を課してもよい。このような制約を課することは、所定の動作による効果と所定の動作を発動させることの難易度とのバランスを調整し、ゲームの興趣性を適切にする観点から有効である。このような制約の一つとしては、例えば、操作キャラクタの動作に応じて増加するパラメータが所定値以上となること、が挙げられる。ユーザは、所定の動作を実行させるためには、パラメータが所定値に達するようにプレイをする必要が生じる。よって、ユーザに求められる戦略性が増す。
当該パラメータの更新処理は、例えば、前述した処理例において、以下のような処理を適宜に追加することによって実行することが可能である。すなわち、ゲーム実行部115は、ユーザの操作に応じて操作キャラクタに実行させる動作がパラメータの更新対象の動作であるか否かを判定し、当該更新対象の動作に該当する場合に、動作に応じてパラメータを更新し、そして、当該パラメータが所定値以上であるか否かを判定する。これらのステップを、パラメータが所定値以上である場合にチャージ攻撃を実行するように、前述した処理例におけるチャージ攻撃を実行させるステップよりも前の任意の位置に挿入すればよい。
パラメータを増加させるための操作キャラクタの動作は限定されない。かかる動作としては、例えば、攻撃動作、移動動作、回避動作などであってもよい。パラメータは、動作の成否に応じて更新されてもよいし、成否に関わらず更新されてもよい。たとえば、当該攻撃動作であれば、攻撃対象のオブジェクトの体力の削減に成功した場合にパラメータを更新してもよいし、攻撃対象のオブジェクトに攻撃が当たらない場合にもパラメータを更新してもよい。また、当該パラメータは、時間の経過またはユーザの特定の操作に応じて、減少するものであってもよい。さらに、パラメータの更新を伴う場合では、当該パラメータの更新の状態を示すゲージを表示部に表示することが、パラメータの視認性を高める観点から好ましい。
また、本ゲームでは、操作キャラクタに、所定の動作の後に他の第1の追加動作を連続して行なわせてもよい。さらに、当該第1追加動作中に所定の時間以内にユーザによる特定の操作を受け付けることで、操作キャラクタにさらに第2の追加動作を行わせてもよい。たとえば、ゲーム実行部115が操作キャラクタにチャージ攻撃を実行させている間に、タッチ操作受付部111がタップ操作を受け付けることで、ゲーム実行部115は、操作キャラクタに当該チャージ攻撃に連続させてタップ攻撃(第1の追加動作)を実行させてもよい。そして、当該タップ攻撃中にt秒にわたって継続する長押し操作をタッチ操作受付部111が受け付けることで、ゲーム実行部115は、操作キャラクタにチャージ攻撃(第2の追加動作)を実行させてもよい。
〔ソフトウェアによる実現例〕
制御部210の制御ブロック、ならびに、制御部110の制御ブロック(特に、ゲーム実行部115)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、制御部210または制御部110、もしくはその両方を備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1) ゲームプログラム(131)について説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ(10、20)およびメモリ(11、21)を備えるコンピュータ(ユーザ端末100およびサーバ200の少なくとも一方)により実行される。ゲームプログラムは、プロセッサに、ユーザの第1の操作(タッチの継続)に応じて第1のキャラクタ(操作キャラクタ)に所定の動作を実行可能な状態に移行させるステップと、ユーザの第2の操作(スライド操作)に応じて第1のキャラクタを移動させるステップと、状態に移行させた後のユーザの第3の操作(タッチオフ操作)に応じて、第1のキャラクタに所定の動作(チャージ攻撃)を実行させるステップとを実行させる。当該実行させるステップにおいて、第3の操作を検出したときに、第2の操作による第1のキャラクタの移動態様が第1の態様である場合には、第1のキャラクタが向いている方向に所定の動作を実行させ、第3の操作を検出したときに、移動態様が第2の態様である場合には、第1のキャラクタによる所定の動作の対象として検出されている第2のキャラクタ(対象オブジェクト)に向けて所定の動作を実行させる。
この構成によれば、ユーザは、所定の動作の対象を、第1のキャラクタを移動させることによって選択することができる。また、ユーザは、第1のキャラクタの向きの制御が困難な場合では、所定の動作の対象として検出されている第2のキャラクタを所定の動作の対象に選択することができる。したがって、ユーザは、第1のキャラクタの操作によって、所定の動作の対象を選択することができ、所定の動作の対象が検出されているキャラクタに限定される場合に比べて、ゲームの場面に応じて所定の動作をより適切に実行させることが可能となる。よって、ユーザの利便性が向上し、その結果、ゲームの興趣性を高めることができる。
(項目2) (項目1)において、ゲームプログラムは、所定の動作を実行させるステップにおいて、第1の操作の検出後、第3の操作の検出までに、第2の操作により第1のキャラクタが第1の態様で移動した場合には、第1のキャラクタが向いている方向に所定の動作を実行させてもよい。一般に、ユーザは、所定の動作に向けて第1のキャラクタを移動するように操作しても、第1の操作の間に第1のキャラクタの移動が途切れることがある。しかしながら、上記の構成によれば、上記のように第1のキャラクタの移動が途切れた場合でも、所定の動作を、ユーザが当初に意図したように実行させることが可能となる。よって、ゲームの興趣性をより高めることができる。
(項目3) (項目1)または(項目2)において、ゲームプログラムは、移動させるステップにおいて、第2の操作の開始点と終了点とから決まる操作量が所定の値未満である場合には第1のキャラクタを移動させなくてもよい。一般に、ユーザは、第1のキャラクタの向きを調整するなどの何らかの意図をもって、第1のキャラクタをある地点から移動させ、かつその開始位置に戻すように移動させる場合がある。また、第1のキャラクタの移動量が短い場合には、ユーザがゲームを行う環境によるユーザの不可避的な操作ミス(例えば、揺れる車内でのタッチパネル操作におけるタッチ位置のずれなど)が含まれることがある。しかしながら、上記の構成によれば、ユーザの意図する操作が第1のキャラクタにより確実に実行され、また上記のような不可避的な操作ミスが適切な範囲で無効となる。よって、ゲームの興趣性をより高めることができる。
(項目4) (項目1)から(項目3)までのいずれか一項目において、所定の動作を実行可能な状態にはない第1のキャラクタの移動する動作は、移動速度の異なる二つの動作を含み、ゲームプログラムは、移動させるステップにおいて、第1の操作により所定の動作を実行可能な状態にある第1のキャラクタの移動する動作を、移動速度の遅い方の動作としてもよい。この構成によれば、所定の動作に備えた第1のキャラクタの移動は、より遅いに制限される。このため、所定の動作に備える第1のキャラクタの移動の動作が所定の動作への備えの有無に関わらず制限されない場合に比べて、ゲームの難易度が適度に高められる。よって、ゲームの興趣性をより高めることができる。
(項目5) (項目1)から(項目4)までのいずれか一項目において、第1の態様は、ゲーム空間における第1のキャラクタの位置を示す座標の値の変化量が閾値以上に変化する移動態様であり、第2の態様は、座標の値の変化量が閾値未満変化する移動態様であってもよい。上記構成によれば、第1の態様を、ユーザによる第2の操作によって第1のキャラクタが移動したことをユーザが明確に確認できる移動態様とすることが可能となる。よって、ユーザは、第1のキャラクタによる所定の動作をより一層意図した通りに発動させることが可能となる。
(項目6) (項目1)から(項目5)までのいずれか一項目において、第1の操作は、ユーザによるタッチ操作入力部への長押しであり、第2の操作は、ユーザによるタッチ操作入力部でのスライド操作であり、第3の操作は、ユーザによるタッチ検出部における長押しの解除であってよい。上記の構成によれば、ユーザは、第1の操作から第3の操作までを、ユーザによるタッチ操作に係る一連の動作として実行することが可能となる。よって、ユーザは、簡易な操作で所定の動作を第1のキャラクタに発動させることが可能となる。
(項目7) (項目1)から(項目6)までのいずれか一項目において、ゲームプログラムは、移動させるステップにおいて、第1のキャラクタが向いている方向に第1のキャラクタを移動させてもよい。上記の構成によれば、ユーザは、第1のキャラクタが移動方向を向いていることから、ユーザが意図する所定の動作の対象に対して、第1のキャラクタをより正確に配置することが可能となる。したがって、所定の動作による所期の効果がより得られやすく、よって、ゲームの興趣性をより高めることができる。
(項目8) (項目1)から(項目7)までのいずれか一項目において、所定の動作は、攻撃をするための動作を含んでもよい。上記構成によれば、格闘ゲームにおいて、攻撃対象に対してより適切に対応することが可能となる。よって、格闘ゲームにおけるゲームの興趣性をより高めることができる。
(項目9) ゲームプログラムを実行する方法を説明した。本開示のある局面によると、ゲームプログラムは、プロセッサおよびメモリを備えるコンピュータにより実行される。該方法は、プロセッサが(項目1)に記載の各ステップを実行する方法である。(項目13)に係る方法は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。
(項目10) 情報処理装置を説明した。本開示のある局面によると、該情報処理装置は、(項目1)に係るゲームプログラムを記憶する記憶部(120)と、該ゲームプログラムを実行することにより、情報処理装置(ユーザ端末100)の動作を制御する制御部(110)とを備える。(項目14)に係る情報処理装置は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。