以下、図面を参照して、本発明の実施形態について説明する。
[用語定義]
以下の説明において用いる、主な用語の定義をしておく。
(1)プレイヤとは、端末を操作する現実のユーザを指す。
(2)グループとは、ゲーム内で構築される、複数のプレイヤの仮想的な集合である。
(3)アイテムとは、ゲームサーバ1において提供されるゲームのプレイにおいて何らかの利益を与えるものをいう。一例として、現在設定されている端末ごとの難易度を一時期的に低いレベルにするものの、得点算出は、端末ごとに設定した難易度のままにするといった利益を与える。
[概略構成]
図1は、本発明の一実施形態であるゲームシステムの概略構成を示す図である。この図において、本実施の形態のゲームシステムSは、互いにインターネット5等の通信手段を介して通信可能に接続されたゲームサーバ1と、複数の端末2a,2b,…とを含む。なお、以下の説明では、端末をそれぞれ区別する必要がない場合は、符号のサフィックスを省いて、「端末2」と表記する。また、図1では、ゲームシステムSを構成する端末2を、端末2a,2bの2つ図示しているが、本実施形態のゲームシステムSでは単数または3台以上の端末2がゲームサーバ1と通信を行うことが可能である。
ゲームサーバ1はサーバコンピュータであり、インターネット5を介して、端末2を含む他の情報処理装置と通信可能に接続されている。このゲームサーバ1では、本実施形態において行われるゲームの処理を実行するプログラムが動作している。本実施形態において、ゲームサーバ1は、互いに異なるプレイヤによって操作される複数の端末2に対してインターネット5を介して接続され、単数のプレイヤが制御し、または複数のプレイヤがグループを構成してそれぞれ制御するゲームを提供する。このゲームサーバ1の構成及び動作については後述する。
端末2bは、いわゆるスマートフォン、タブレット端末等の情報処理装置、端末2aはPC(Personal Computer)等の情報処理装置であり、ルータ6等を介してインターネット5に接続されている。端末2bは、基地局4及びそれが接続される移動体通信網を介して音声通話が可能な携帯電話機やPDA、パーソナルコンピュータ、タブレット等であり、通信手段であるインターネット5を介してゲームサーバ1との間で通信可能な装置である。これら端末2の詳しい構成及び動作についても後述する。
[ゲームの概要例]
本実施形態のゲームシステムSでは、ゲームサーバ1が端末2に対して、いわゆる音楽ゲームを提供する。本実施形態における音楽ゲームは、端末2にプレイヤの操作タイミングを指示する表示画面を表示させ、プレイヤがこの操作タイミングに合わせて端末2を操作すると、プレイヤの操作に基づく操作信号に合わせて楽器を演奏した際の音源データが端末2で再生され、これにより、擬似的に楽器を演奏したようなサウンドが端末2によって再生される。また、プレイヤの操作に基づく操作信号と指示された操作タイミングとの時間差が逐次算出され、この時間差に基づいてプレイヤの得点が算出される。
本実施形態のゲームシステムSにおいて提供される音楽ゲームでは、複数のプレイヤがグループを構成し、各々のプレイヤが楽器を分担して演奏し、グループを構成するプレイヤの操作によって単一の楽曲を擬似的に再生できるプレイを可能としている。
グループとして音楽ゲームをプレイする態様については種々のものが採用可能であるが、ここではまず一例として、グループを構成するプレイヤが同時に端末2を操作することで個々のプレイヤが一つの楽器を擬似的に演奏し、これら個々のプレイヤによる擬似的な楽器の演奏がほぼリアルタイムで合奏されることで楽曲が擬似的に再生される(本明細書では同時プレイと称する)態様について説明する。
上述した態様における操作タイミングのパターンは、このパターンに対応したタイミングで音源データが再生された際に、複数の操作タイミングのパターンに基づいて音源データが再生されると特定の楽曲が再生されるパターンである。
当然、周知の音楽ゲームのように、単一のプレイヤのみが楽器を演奏することで楽曲を再生してもよい。
[ゲームサーバの概略構成]
図2は、本実施形態のゲームシステムSに用いられるゲームサーバ1の概略構成を示すブロック図である。図2において、ゲームサーバ1は、CPU10、ROM11、RAM12、有線LANインタフェース(I/F)13及びHDD部14を備え、CPU10、ROM11、RAM12、有線LANインタフェース13及びHDD部14はそれぞれ共通のバスにより接続されている。
なお、図2では、ゲームサーバ1が一台の装置として図示されているが、本実施形態において、ゲームサーバ1は、複数台のサーバコンピュータを含むクラスタサーバであってもよい。この場合、各サーバコンピュータにはそれぞれHDD部14等の記憶部を備えて、それぞれのサーバコンピュータの記憶部に、ゲームとしての処理に必要なデータが分散されて記憶されていてもよい。
CPU10は、ROM11内に格納されたファームウェア等のプログラムがRAM12において展開された後で実行されることで、ゲームサーバ1全体の動作制御を行うとともに、図4に示す各機能部に示す機能を実行する。図4に示す各機能部については後述する。ROM11には、上述のファームウェア等の本発明のプログラムが格納されている。RAM12は、ゲームサーバ1のワークメモリとして動作し、各種プログラム及びデータが一時的に格納される。
有線LANインタフェース13は、例えばIEEE(The Institute of Electrical and Electronics Engineers, Inc.)802.3規格に準拠して、インターネット5との間で有線による通信を行う。
HDD部14は、HDD141とHDDインタフェース(I/F)140とを備える。HDD141は、記録媒体であるディスクと、このディスクの回転を行う回転部と、ディスクに対してデータの読み出し/書き込みを行うヘッド部とを備える(いずれも不図示)。HDDインタフェース140は、このHDD141に対するデータの読み出し/書き込み指令があった場合に、HDD141全体の制御を行うとともに、データの読み出し/書き込み制御を行い、読み出されたデータを出力する。HDD141には、図4に示されるように、ゲームシステムSにおいてプレイされているゲームの途中経過及び結果であるゲームテーブル41、端末2の登録結果であるユーザテーブル42、端末2に提供される操作タイミングのパターン(以下、「操作パターン」と省略することがある)43、音源データ44等が格納されている。ゲームテーブル41、ユーザテーブル42、操作パターン43及び音源データ44の詳細については後述する。
[端末の構成]
図3は、本実施形態のゲームシステムSを構成する端末2の概略構成を示すブロック図である。図3において、端末2は、CPU(Central Processing Unit)20、ROM(Read Only Memory)21、RAM(Random Access Memory)22、表示デバイス23、内部ストレージ部24、移動体通信モジュール250、音声インタフェース(I/F)251、マイクロフォン252、スピーカ253、アンテナ254及び入力デバイス26を備え、CPU20、ROM21、RAM22、表示デバイス23、内部ストレージ部24、移動体通信モジュール250及び入力デバイス26はそれぞれ共通のバスにより接続されている。
CPU20は、ROM21内に格納されたファームウェア等のプログラムがRAM22において展開された後で実行されることで、端末2全体の動作制御を行う。また、CPU20は、ROM21内に格納されたプログラムが実行されることにより、図4に示すような各機能部としても動作する。図4に示す各機能部の動作については後述する。ROM21には、上述のファームウェア等のプログラムや、各種設定データが格納されている。RAM22は、端末2のワークメモリとして動作し、各種プログラム及びデータが一時的に格納される。
表示デバイス23は、液晶パネル231とこの液晶パネル231を駆動させる液晶ドライバ230とを備える。液晶パネル231は、その表示面が端末2の表面に露出して設けられている。液晶ドライバ230は、表示画面を構成するデータがCPU20からこの液晶ドライバ230に供給されると、液晶パネル231の表示面に所望の表示画面を表示するようにこの液晶パネル231を駆動する。
内部ストレージ部24は、内部ストレージ241と内部ストレージインタフェース(I/F)240とを備える。内部ストレージ241は、例えばフラッシュメモリのような不揮発性半導体メモリであり、端末2において用いられるブラウザプログラム等のアプリケーションプログラム等が格納される。内部ストレージインタフェース240は、この内部ストレージ241に対するデータの読み出し/書き込み指令があった場合に、内部ストレージ241全体の制御を行うとともに、データの読み出し/書き込み制御を行い、読み出されたデータを出力する。なお、内部ストレージ241は、例えばmicroSDのような挿脱可能な不揮発性メモリーカードであってもよく、この場合、内部ストレージインタフェース240は、このメモリーカードが装着されるメモリカードスロットをさらに備える。
移動体通信モジュール250は、例えば携帯電話回線との通信を行うものであり、具体的にはアンテナ254を介して移動体通信網との間で情報を授受する。すなわち、移動体通信モジュール250は、移動体通信網の基地局4との間で音声電話通信を行い、受信した情報に基づく音声信号を、音声インタフェース(I/F)251を介してスピーカ253から発音させ、音声インタフェース251を介してマイクロフォン252が集音して得た音声信号を、基地局4に送信する。また、移動体通信モジュール250は、パケット化されたデータを移動体通信網の基地局4との間で送受信をすることで、データ通信を行う。
入力デバイス26は、入力インタフェース(I/F)260、入力指示部261及びタッチパネル262を備える。
入力インタフェース260には入力指示部261が接続され、ユーザが入力指示部261を操作することにより入力される入力信号を受信する。入力指示部261は、プッシュボタン等である。タッチパネル262は、本実施形態では液晶パネル231の表示面の上面に重畳されて設けられ、この液晶パネル231の表示面と略同一の大きさを有する。プレイヤがタッチパネル262の表面に触れると、当該プレイヤが触れたタッチパネル262の表面上の位置を表す情報が入力インタフェース260を介して出力される。
[ゲームシステムの機能構成]
次に本実施の形態に係るゲームシステムSが実現する機能について説明する。本実施の形態では、ゲームサーバ1の制御部30が記憶部31に格納されたプログラムを実行するとともに、各端末2の制御部50が記憶部51に格納されたプログラムを実行することにより、図4に例示する各機能ブロックを実現する。図4は、本実施形態のゲームシステムSの機能構成を示す機能ブロック図である。図4において、本実施形態のゲームシステムSを構成するゲームサーバ1は、制御部30、記憶部31及び通信部32を備える。
制御部30は、複数の端末2との間で通信を行い、各端末2の利用者(プレイヤ)を認証する。また認証したプレイヤによる端末2でのゲームの操作に関する情報を端末2から受信し、ゲームの処理を実行して、その処理の結果に基づいて、ゲームの画像情報やサウンド情報(楽曲の情報等を含む)等を端末2へ送出する。本実施形態のゲームサーバ1の制御部30は、グループ設定部33、難易度設定部34、パターン決定部35、送出部36、得点算出部37、パラメータ算出部38、期待動作設定部39、及びペナルティ付与部40を備える。
グループ設定部33は、端末2の動作に基づいて、複数の端末2が属するグループを設定する。より詳細には、グループ設定部33は、端末2のグループ指示部56からの指示信号(例えば、グループの設定を開始する指示を表す指示信号等)を受け入れ、この指示信号に基づいて複数の端末2が属するグループを設定する。
グループ設定部33によるグループの設定手法は例えば次のようなものである。すなわち、端末2からグループの設定を開始する指示信号を受け入れると、ゲームサーバ1の制御部30は、記憶部31に格納されたゲームテーブル41を参照する。制御部30は、ゲームテーブル41を参照した時点でゲームサーバ1との間で当該音楽ゲームをプレイできる状態にある端末2を抽出する。制御部30は、プレイできる状態にある端末2をグループ構成可能な端末2の候補として、グループの設定を開始する指示信号を出力した端末2に提示する。そして、この端末2のグループ指示部56から送出されたグループ設定の指示信号に基づいて、複数の端末2が属するグループを設定する。
また、グループの設定方法は、これに限られない。グループの設定方法の別の例では、端末2が、移動体通信モジュール250等を用いて端末2が所在する現在地情報を取得し、グループの設定を開始する指示信号とともにゲームサーバ1へ送出する。ゲームサーバ1は、端末2の現在地情報を受信し、当該現在地情報が表す現在位置が所定距離(例えば10km)以下である他の端末2(グループの設定を開始する指示信号を出力した端末2とは異なる端末2)をグループ構成可能な端末2の候補として、グループの設定を開始する指示信号を出力した端末2に提示することとしてもよい。
さらに、ゲームサーバ1にグループの登録をする際に、他のプレイヤから入手した(教えてもらった)コードを入力することで、この他のプレイヤが操作する端末2をグループ構成可能な端末2の候補として、グループの設定を開始する指示信号を出力した端末2に提示することによっても、グループを設定できる。
難易度設定部34は、単一のグループに属する端末2に対して、操作タイミングのパターンである操作パターン43に関連付けられた特定の難易度を設定する。詳細は後述するが、記憶部31には、楽曲ごとに、難易度が異なる複数の操作パターン43が関連付けられて格納されている。
難易度設定部34は、所定の方法で、難易度を設定する。一例として難易度設定部34は、単一のグループに属する端末2の少なくとも一つ、好ましくは全ての端末2から難易度を設定するべき旨の要求を受けて、端末2の操作履歴等に基づいて難易度を決定する。この、操作履歴等に基づいて難易度設定部34が具体的な難易度を決定する手順については後に詳述する。
また、難易度設定部34は、プレイヤからの指示により難易度を定めてもよい。一例としてこの難易度設定部34は、例えばある端末2から楽曲の指定を受け、当該楽曲の指定を行った端末2と同じグループに属する端末2に対して、指定された楽曲に関連付けられている複数の操作パターン43の難易度を一覧として提示し、端末2に対して難易度の指定を促してもよい。この例では、難易度設定部34は、単一のグループに属する端末2の少なくとも一つ、好ましくは全ての端末2から、プレイヤがプレイを希望する操作パターン43の難易度を指定する指定信号を受け入れ、この指定信号に基づいて、実際に端末2において音楽ゲームをプレイする際に個々の端末2に送出する操作パターン43の難易度(つまり指定された楽曲についてどの操作パターン43を送出するか)を設定することとしてもよい。
パターン決定部35は、難易度設定部34が設定した難易度に基づいて、端末2毎の操作タイミングのパターンである操作パターン43を決定する。図6に例示するように、楽曲ごとに操作パターン43と難易度とは関連付けられて記憶部31に記憶されており、パターン決定部35は、難易度設定部34が設定した難易度に関連付けて記憶部31に格納されている操作パターン43を抽出し、端末2毎の操作パターン43を決定する。好ましくは、パターン決定部35は、端末2からの楽曲に関する要求に基づいて、この楽曲に関する操作タイミングのパターンである操作パターン43を決定する。
[操作パターンの例]
図6は、本実施形態のゲームサーバ1の記憶部31に格納されている操作パターン43の構成を示す図である。本実施形態において、操作パターン43は、楽曲に関する情報が格納された楽曲テーブル430と、各楽曲に用意された操作パターンテーブル431とを備える。
図6(a)は、本実施形態のゲームサーバ1の記憶部31に格納されている楽曲テーブル430の構成例を示す図である。この楽曲テーブル430には、楽曲名欄430a、パターン識別子欄430b及び設定難易度欄430cが設けられている。
楽曲名欄430aの個々のセルには、楽曲名を示すテキストデータが格納される。パターン識別子欄430bの個々のセルには、楽曲名欄430aのセルに格納された楽曲名に対応する、操作パターンテーブル431を識別するための識別子(ID)が格納される。設定難易度欄430cの個々のセルには、楽曲名欄430aのセルに格納された楽曲名の楽曲に対応する操作パターン43に設定された難易度の初期値が格納される。ここで、単一の楽曲には複数の(レベルの)難易度の初期値が設定されることが好ましく、この設定難易度欄430cの個々のセルには、複数の難易度の初期値が格納される。
次に、図6(b)は、本実施形態のゲームサーバ1の記憶部31に格納されている操作パターンテーブル431の構成を示す図である。ここでの例では、操作パターンテーブル431は、パターン識別子ごとに、所定の区切り単位を表す情報である(ここでは一例として小節を区切り単位とする)小節番号431cと、タイミング情報431dとを関連付けたものとなっている。
小節番号431cの個々のセルには、楽曲の小節に対応する、整数値を取る小節番号が格納される。小節番号431cは、列の上から下に進むに従って昇順となる等差数列(好ましくは等差が1の)の値とされており、より好ましくは、初期値は0または1である。そして、最大の小節番号は、例えば、対応する楽曲の長さにより定められる。
タイミング情報431dは、関連付けられている小節番号431cの小節において、プレイヤに対してどのような端末2の操作を要求するか、より詳細には、この小節番号の小節においてタイミングを合わせて端末2の操作を要求する場合に、タイミングを示す情報が格納される。具体的にここでのゲームにおいて複数の楽器が演奏され、さらに、各々の楽器においてそれぞれ操作を要求する場合、このタイミング情報431dには、楽器毎に、どのタイミングで、どのような操作を要求するかを示す情報(操作タイミング)が格納される。
どのような操作を要求するかを表す情報には、操作の継続時間や、連続的に操作する(連打)か否か、連打する場合はその連打の継続時間を表す情報が含まれる。
送出部36は、パターン決定部35が端末2ごとに決定した操作パターン43を、好ましくは通信部32を介して端末2に送出する。ここで操作パターン43を送出するとは、送出することとして決定されたパターン識別子に係る小節番号431cとタイミング情報431dとの組を送出することを意味する。また好ましくは、送出部36は、端末2からの操作信号に基づいて、記憶部31に格納されている音源データ44を端末2に送出する。あるいは、送出部36は、操作パターン43に伴って音源データ44を端末2に送出する。どのタイミングで送出部36が音源データ44を端末2に送出するかは任意である。操作パターン43に従ってプレイヤが端末2を操作して擬似的に楽器演奏を行いうるならば、端末2による楽曲を指定する指定信号の送出、難易度を指定する指定信号の送出に応答して、また、操作パターン43の送出に伴って、さらには端末2からの操作信号に応答して、音源データ44を送出してもよい。
得点算出部37は、端末からの操作信号を受け入れ、この操作信号と操作タイミングとの時間差と各端末2に設定した難易度とに基づいて、グループ単位での得点を算出する。
より詳細には、得点算出部37は、図15に例示するように、送出部36が端末2に送出した操作パターン43と、端末2からの操作信号を、特定の時間(音楽ゲームのプレイ開始時)を起点とした時間軸上で対比し(S101)、この操作信号と操作タイミングとの時間差とを、好ましくは操作タイミング毎に算出する(S102)。そして、操作タイミング毎に算出した時間差に基づいて操作タイミングごとの基本得点を決定する(S103)。この操作タイミングごとの得点の決定は、時間差の大きさに応じて行えばよい。例えば、時間差が0、あるいは0とみなせる程度の絶対値であった(以下、ヒットと呼ぶ)時の得点を一番高い値に設定し、時間差の絶対値が所定範囲内であった場合の得点を次に高い値に設定し、それ以外の時間差の絶対値については得点を加算しない、あるいは、得点をマイナスの値に(つまり得点を減点)する。
またここで、ヒットが所定回数連続したなど、いわゆるコンボ状態が発生しているか否かを調べ(S104)、コンボ状態となっていれば(S104:Yes)、基本得点にボーナス点を加算して操作タイミングごとの得点とする(S105)。そして、得点算出部37は、当該操作タイミングごとに決定した得点を累算して楽曲単位の得点を算出する(S106)。また処理S104においてコンボ状態でなければ(S104:No)、処理S106に移行し、基本得点をそのまま操作タイミングごとの得点として、累算する。
なお、ボーナス点の加算方法は、コンボ状態の場合に限られず、楽曲単位の得点が一定値以上になっているときにもボーナス点を加算するようにしてもよい。
また処理S103で決定する基本得点は、各端末2に設定した難易度に基づいて決定してもよい。また処理S105で加算するボーナス点の値も難易度に基づいて決定してもよい。
得点算出部37はさらに、処理S106で端末2ごとに得た得点をグループ単位で累算して、グループ単位の得点を算出する(S107)。得点算出部37は楽曲が終了したか否かを判断し(S108)、終了していなければ(S108:No)、処理S101に戻って処理を続ける。また、処理S108において楽曲が終了したと判断すると(S108:Yes)、得点算出部37は、楽曲をクリアしたか否かを判断する(S109)。この処理S109において、楽曲をクリアしたと判断すると(S109:Yes)、得点算出部37は、処理S107で算出したグループ単位の得点に、楽曲をクリアしたとしてさらに加点するなど特典を付与して(S110)、処理を終了する。また、処理S108において楽曲をクリアしなかったと判断すると(S109:No)、特典を付与することなく処理を終了する。
この処理S109での楽曲をクリアしたか否かの判断は、楽曲についての満点、つまり、全ての操作タイミングについてヒットであった場合の楽曲単位の得点に対する実際の得点の比に基づいて行うことができる。例えばこの比の値が一定以上(例えば50%以上)であった場合、楽曲をクリアしたと判断する。なお、この楽曲クリアの基準となる比の値は、端末2毎に設定された難易度に基づいて設定してもよい。一例として、難易度のレベルが上であるほど、基準となる比の値を大きな値にする。また、端末2毎の得点の加算値ではなく、端末2毎の得点の平均値を用いて、上記の比を算出してもよい。さらに処理S110において付与する特典は、加点に限られず、グループのプレイヤに対してアイテムを付与するものであってもよい。
パラメータ算出部38は、端末2毎のパラメータを算出して記憶部31に格納する。パラメータ算出部38が算出する端末2毎のパラメータは、好ましくは、プレイヤが音楽ゲームをプレイするために端末2を操作した操作履歴に基づいて算出され、より好ましくは、操作履歴を様々な側面から数値化したパラメータである。従って、パラメータ算出部38が算出するパラメータは、複数の値の集合体であることが好ましい。
パラメータ算出部38が算出するパラメータの基礎となる端末2毎の操作履歴とは、一例として、プレイヤが行った操作が、操作パターン43(操作パターン43に含まれる小節番号ごとの操作タイミング)ごとに、過去、当該プレイヤがプレイしたときの得点(得点算出部37が算出した得点)や、当該得点を楽曲単位で累算した値に基づく楽曲の達成度、言い換えれば、得点算出部37が算出した端末2単位の得点の、満点に対する比を収集したものが含まれる。加えて、端末2毎の操作履歴には、過去、当該プレイヤがプレイした楽曲やその際に難易度設定部34がこの端末2に設定した難易度、さらには得点算出部37が算出した端末2単位及びグループ単位の得点そのものが含まれてもよい。
そして、パラメータ算出部38は、上述した操作履歴に基づいて、全体としてこのプレイヤがどのような操作が得意なのか(つまり達成度が高いのか)不得意なのか(つまり達成度が低いのか)を分析し、その分析結果をパラメータという定量化した値として算出する。具体的にこのパラメータは、操作履歴において所定のしきい値より高い得点となっている操作タイミングを表すパターン識別子に関連付けられた難易度(設定難易度)の平均値をパラメータとしてもよい。もっとも、このパラメータは絶対的な数値である必要はなく、幾つかの値(レベル)からなる相対的な数値であってもよい。
本実施の形態の一例に係る難易度設定部34は、パラメータ算出部38が算出したパラメータに基づいて端末2毎の難易度を設定する。すなわち、難易度設定部34は、端末2毎の操作履歴及びこの結果としてのパラメータに基づいて端末2毎の難易度を設定する。具体的に、プレイヤが音楽ゲームを複数回プレイしているにもかかわらず、上述の達成度が一定値に達しない場合、操作履歴により判断される、過去にプレイされた難易度よりも低い難易度を難易度設定部34が設定してもよい。加えて、端末2から指定があった難易度よりも低い難易度を難易度設定部34が設定した場合、この端末2と同じグループに属する他の端末2の操作履歴を参照し、上述の達成度が一定値を上回る端末2に対して、指定があった難易度よりも高い難易度を難易度設定部34が設定し、グループ全体の難易度を維持または大きく下がるのを緩和してもよい。
またプレイヤからの指示により難易度を定める場合も、難易度設定部34は、パラメータ算出部38が算出したパラメータを用いてもよい。すなわちこの例では、難易度設定部34は、指定された楽曲に関連付けられている複数の操作パターン43の難易度の一覧をそのまま提示するのではなく、パラメータ算出部38が端末2ごとに算出したパラメータに基づいて、端末2ごとに、設定可能な難易度を決定する。具体的に、プレイヤが音楽ゲームを複数回プレイしているにもかかわらず、上述の達成度が一定値に達しない場合、操作履歴により判断される、過去にプレイされた難易度未満の難易度を、設定可能な難易度とする。
そして難易度設定部34は、端末2ごとに決定した、設定可能な難易度の一覧を端末へ送出し、設定する難易度を端末2から受け入れて、当該受け入れた難易度により、端末2ごとの難易度を設定する。
このように、端末2を操作するプレイヤにより難易度を選択させる場合にも、選択可能な難易度を制限することで、複数のプレイヤによるグループ合奏において、プレイヤごとに、プレイヤにとって難しすぎる難易度は選択できないよう制御でき、意図的に高い難易度を選択して、グループ全体の得点を低下させるといった行為を制限できる。
期待動作設定部39は、難易度設定部34により設定された特定の端末2の難易度に基づいてこの端末2に期待される動作を定める。より詳細には、期待動作設定部39は、端末2に設定された難易度に基づいて、端末2に期待される動作を表す情報(期待情報)を決定する。一例として、高い難易度が設定されている場合には、当該楽曲に対する音楽ゲームのプレイに高得点を取得する可能性が高いものと期待して、期待される得点を表す期待情報を定める。また、比較的高い難易度が設定された端末2については、当該端末2からの操作信号と操作タイミングとの時間差が小さくなる操作、動作がされるものと期待して、当該時間差として比較的短い時間を表す情報を、期待情報とする。
具体的に期待動作設定部39は、パラメータ算出部38が算出したパラメータに基づいて、端末2毎の得点期待値を算出する期待値算出部39aを備えてもよい。この期待値算出部39aは、パラメータ算出部38が算出したパラメータ、一例として、端末2の操作履歴に基づいた達成度に基づいて、端末2が指定した操作パターン43であればこの端末2が取得するであろう得点期待値を、期待情報として算出する。
そして、ペナルティ付与部40は、特定の端末2の動作が、期待動作設定部39により定められた動作と異なった場合、つまり、期待情報が表す情報通りの情報が得られない場合、当該端末2のゲーム進行に対してペナルティを付与する。一例として、特定の端末2からの操作信号と操作タイミングとの時間差を算出した結果と、当該時間差に係る期待情報とを比較し、実際に算出された結果が、期待情報の表す時間差よりも大きいことが、一曲の楽曲演奏の間に多発した(予め定めた回数より多かった)ときに、特定の端末2を操作したプレイヤが意図的にこの時間差を大きくする操作をした、言い換えれば意図的にミスをする操作をした、また、グループに属する他の端末2の操作を邪魔した(例えば、特定の端末2に操作パターンが割り当てられていないのに、他の端末2の操作タイミングに合わせて特定の端末2の操作をした)とペナルティ付与部40が判断する。このように判断したときには、ペナルティ付与部40は、特定の端末2のゲーム進行に対してペナルティを付与する。
またペナルティ付与部40は、期待情報が得点期待値である場合は、得点算出部37により算出された特定の端末2の得点が、期待値算出部39aが算出した当該端末2の得点期待値より下回った(かつその差が所定値以上であることを条件としてもよい)場合、この端末2のゲーム進行に対してペナルティを付与する。つまり、特定の端末2の得点が、期待値算出部39aが算出したこの端末2の得点期待値より下回ったとき、この端末2を操作するプレイヤが意図的にミスをする操作をした、また、グループに属する他の端末2の操作を邪魔したと判断して、ペナルティを付与する。
例えば、期待情報としての得点期待値は演奏の終了時に、期待される得点(例えば端末2のプレイヤが単独でプレイしているときの平均得点)Seとして演算しておき、楽曲の演奏時間Ttotalに対して現在の演奏開始からの経過時間Tlapseの比を、得点期待値に乗じて得られる値Se×Tlapse/Ttotalと、現在の得点との差(の絶対値)が所定のしきい値(0以上の正の値とする)以上ある場合に、ペナルティ付与部40がこの端末2のゲーム進行に対してペナルティを付与することとしてもよい。
ペナルティ付与部40により付与されるペナルティは任意であるが、一例として、ペナルティが付与されるべき特定の端末2において一定時間、例えば1曲の楽曲分だけ音楽ゲームのプレイを禁止する(プレイできない)、特定の端末2に付与されているアイテムを没収する(没収してグループに属する他のプレイヤの端末2にアイテムを付与する)、グループから除名する、端末2に表示される画面の一部を非表示にする、特定の端末2の操作履歴の一部を変更して、例えば達成度を低くする、などのペナルティが挙げられる。
あるいは、難易度設定部34が、得点算出部37により算出された特定の端末2の得点が、期待値算出部39aが算出したこの端末2の得点期待値より所定値以上下回った場合、この端末2に設定した難易度を変更することとしてもよい。好ましくは、難易度設定部34は、特定の端末2の得点が、期待値算出部39aが算出したこの端末2の得点期待値より所定値以上下回った場合、この端末2を含む、グループに属する端末2に設定した難易度を変更する。
つまり、本実施の形態によると、図16に例示するように、パラメータ算出部38が、上述した操作履歴に基づいて、全体としてこのプレイヤがどのような操作が得意なのか(つまり達成度が高いのか)不得意なのか(つまり達成度が低いのか)を表すパラメータを算出する(S121)。
そして難易度設定部34が、当該算出されたパラメータに基づいて端末2毎の難易度を設定する(S122)。ここで難易度設定部34により設定された特定の端末2の難易度に基づき、期待動作設定部39が各端末2に期待される動作を表す期待情報を定める(S123)。
そして、ペナルティ付与部40は、楽曲の演奏中、各端末2の動作と、期待情報が表す動作とを比較して、期待動作設定部39により定められた動作と異なっている端末2があるか否かを調べ(S124)、そのような端末2があれば(S124:Yes)、当該端末2を特定する情報を、ゲーム進行に対してペナルティを付与して(S125)処理を終了する。また、処理S124において、期待動作設定部39により定められた動作と異なっている端末2がなければ(S124:No)、処理を終了する。
またここでペナルティ付与部40がペナルティを付与した場合は、ペナルティ付与部40は、得点算出部37に対して当該ペナルティを付与した端末2を特定する情報を出力してもよい。この場合は得点算出部37は、当該情報で特定される端末2の得点については、当該端末2で行われた操作によらずに算出する。
具体的に得点算出部37は、ペナルティ付与部40によりペナルティが付与された端末2の得点を、当該端末2について期待値算出部39aが算出した得点期待値そのものとしてもよい。また、ペナルティ付与部40によりペナルティが付与された端末2の得点を「0」、あるいは予め定めておいた一定の値としてもよい。
これにより、例えば意図的に操作を誤るプレイヤについては、その操作がグループの得点に影響されないようにしておく。
この例において、グループで合奏を行っている場合は、当該ペナルティが付与された端末2のプレイヤの操作により演奏されるはずであったパートを自動演奏としてもよい。ここで自動演奏は、例えばペナルティが付与された端末2が正しい操作タイミングで操作されたと仮定して、このペナルティが付与された端末2と、同じグループの他の端末2に対して情報を送出することで、ペナルティが付与された端末2における実際の操作に関わらず、正しい操作に基づく演奏が、ペナルティが付与された端末2以外の端末2において鳴動されるよう制御することを意味する。
記憶部31は制御部30等の動作に必要な各種データ、プログラムを少なくとも一時的に格納するものである。また、この記憶部31には、ゲームシステムSにおいてプレイされているゲームの途中経過及び結果であるゲームテーブル41、端末2の登録結果であるユーザテーブル42、端末2に提供される操作パターン43、及び音源データ44が格納されている。
通信部32は、インターネット5を介して端末2との間で種々の情報を送受する。具体的にこの通信部32は、インターネット5を介して端末2から受信した情報(操作の内容を表す情報等を含む)を制御部30に出力する。またこの通信部32は、制御部30から入力される指示に従い、指示された宛先となった端末2に対して画像情報等を送出する。
一方、本実施形態のゲームシステムSを構成する端末2は、制御部50、記憶部51、入力部52、表示部53、出力部54及び通信部55を備える。
制御部50は、ゲームサーバ1に対してゲームの画像情報やサウンド情報を要求するよう通信部55に指示し、通信部55がゲームサーバ1から受信する画像情報を受け入れて、当該画像情報を表示部53に表示し、またゲームサーバ1から通信部55が受信した指示に従って出力部54を制御し、サウンド情報の鳴動処理を行う。またこの制御部50は、プレイヤである利用者が行った操作の情報をゲームサーバ1に対して送出するよう通信部55に指示する。本実施形態の端末2の制御部50は、グループ指示部56及び音声制御部57を備える。
グループ指示部56は、端末2自身を含む複数の端末2をグループに属させる指示信号をゲームサーバに送出する。好ましくは、グループ指示部56は、グループ設定部33から提示されたグループ構成可能な端末2の候補を表示部53に表示させ、プレイヤが入力部52を介して入力した、プレイヤがグループに属させることを希望する他の端末2の入力信号に基づいて、端末2自身を含む複数の端末2をグループに属させる指示信号をゲームサーバに送出する。
音声制御部57は、プレイヤが入力部52を介して入力した入力信号と、ゲームサーバ1から提供される音源データ44とに基づいて、入力信号のタイミングに応じて音源データ44を再生して出力部54から出力させることで、擬似的な楽器演奏を行うサウンドを再生する。
記憶部51は制御部50等の動作に必要な各種データ、プログラムを少なくとも一時的に格納するものである。また、この記憶部51には、端末2においてプレイされる音楽ゲームを実行するためのアプリケーションソフトウェア45が格納されている。このアプリケーションソフトウェア45は、音楽ゲームのプレイに先立って、ゲームサーバ1を含むインターネット上のサーバから入手(ダウンロード)したものである。
入力部52は、プレイヤからの指示入力操作を受け入れて、当該指示操作の内容を示す入力信号を制御部50に出力する。表示部53は、制御部50から出力される画像情報表示用信号に従い、画像情報を表示する。出力部54は、制御部50から出力される再生信号に従い、サウンドを再生する。
通信部55は、インターネット5を介してゲームサーバ1との間で種々の情報を送受する。具体的にこの通信部55は、インターネット5を介してゲームサーバ1から受信した情報を制御部50に出力する。またこの通信部55は、制御部50から出力される指示に従い、指示された宛先となったゲームサーバ1に対して操作の情報等を送出する。
以上の構成において、制御部30及び制御部30を構成するグループ設定部33、難易度設定部34、パターン決定部35、送出部36、得点算出部37、パラメータ算出部38、期待動作設定部39、及びペナルティ付与部40は主にCPU10により構成され、記憶部31は主にROM11、RAM12及びHDD部14により構成され、そして、通信部32は主に有線LANインタフェース13により構成される。
また、制御部50及び制御部50を構成するグループ指示部56及び音声制御部57は主にCPU20により構成され、記憶部51は主にROM21、RAM22及び内部ストレージ部24により構成され、入力部52は主に入力デバイス26により構成され、表示部53は主に表示デバイス23により構成され、出力部54は主にスピーカ253により構成され、そして、通信部55は主に移動体通信モジュール250により構成される。図4に示す各機能部の動作については後に詳述する。
[一実施形態のユーザテーブル及びゲームテーブルの構成]
図5は、本実施形態のゲームサーバ1の記憶部31に格納されているユーザテーブル42及びゲームテーブル41の構成を示す図である。
まず、図5(a)は、本実施形態のゲームサーバ1の記憶部31に格納されているゲームテーブル41の構成を示す図である。このゲームテーブル41には、プレイヤ識別子欄41a、グループ識別子欄41b、選択曲欄41c、設定難易度欄41d、得点欄41e、期待値欄41f及び操作履歴パラメータ欄41gが設けられている。
プレイヤ識別子欄41aの個々のセルには、端末2を操作しているプレイヤを識別するための識別子(ID)が格納される。グループ識別子欄41bの個々のセルには、端末2が属するグループを識別するための識別子(ID)が格納される。選択曲欄41cの個々のセルには、端末2において現在プレイされている音楽ゲームにおいて演奏されている(端末2によって選択されている)楽曲名が格納される。
設定難易度欄41dの個々のセルには、難易度設定部34によりプレイヤが操作する端末2に設定された難易度が格納される。得点欄41eの個々のセルには、得点算出部37により算出された端末2毎の得点、及び、この端末2が属するグループの得点が格納される。期待値欄41fの個々のセルには、期待値算出部39aにより算出された期待値が格納される。操作履歴パラメータ欄41gの個々のセルには、パラメータ算出部38により算出された端末2毎の操作履歴及びこの操作履歴に基づくパラメータが格納される。
そして、このゲームテーブル41の個々の行(図5(a)においてセルを横方向に並べた一行)には、プレイヤ識別子欄41aのセルに格納されたプレイヤ識別子により識別される端末2に関連するデータが格納される。
次に、図5(b)は、本実施形態のゲームサーバ1の記憶部31に格納されているユーザテーブル42の構成を示す図である。このユーザテーブル42には、プレイヤ識別子欄42a、ネットワークアドレス欄42b、及びセッション情報欄42cが設けられている。
プレイヤ識別子欄42aの個々のセルには、端末2を操作しているプレイヤを識別するための識別子(ID)が格納される(プレイヤ識別子欄41aに対応)。ネットワークアドレス欄42bには、ゲームサーバ1にアクセスした際の端末2のネットワークアドレスが格納される。セッション情報欄42cには、端末2とゲームサーバ1との通信のセッションに関する情報が格納される。
そして、このユーザテーブル42の個々のカラム(図5(b)においてセルを横方向に並べた一列)には、プレイヤ識別子欄42aのセルに格納されたプレイヤ識別子により識別される端末2に関連するデータが格納される。
なお、ゲームテーブル41及びユーザテーブル42の個々のセルに格納すべき各種情報を入手及び算出する機能は、ゲームサーバ1及び端末2のそれぞれの制御部30、50が有している。
[一実施形態のゲームシステムの動作]
次に、図7〜図11のフローチャート、及び図12〜図14を参照して、本実施形態のゲームシステムSの動作について説明する。
まず、図7は、本実施形態の端末2の動作の一例を示すフローチャートである。図7に示すフローチャートは、端末2の記憶部51に格納されたアプリケーションソフトウェア45が起動され、ゲームサーバ1との通信が可能な状態になった後開始される。
まず、ステップS1では、ゲームサーバ1から送出された画像情報に基づいて、端末2の制御部50が、音楽ゲームのプレイ人数を指定するためのプレイ人数指定画面に係る画像情報を表示部53に表示させる。
ステップS1において端末2の表示部53に表示されるプレイ人数指定画面の一例を図12(a)に示す。図12(a)に示すプレイ人数指定画面においては、単独のプレイヤで音楽ゲームのプレイを選択するためのボタン60、及び複数人でグループを構成して音楽ゲームのプレイを選択するためのボタン61が表示されている。
プレイヤは、端末2の入力部52を操作する。一例として、タッチパネル262をタッチすることで、これらボタン60、61のうちのいずれかを選択する。入力部52は、プレイヤによるボタン60、61の選択を受け入れ、この選択に基づいて入力信号を制御部50に出力し、制御部50は、入力部52からの入力信号を、通信部55を介してゲームサーバ1に送出する。
ステップS2では、ステップS1においてグループを構成して音楽ゲームのプレイを選択するボタン61がプレイヤにより選択されたか否かが判定され、ボタン61が選択された(S2:Yes)場合は、プログラムはステップS3に移行し、ボタン60が選択された(S2:No)場合は、プログラムはステップS4に移行する。
ステップS3では、ゲームサーバ1が、操作履歴やパラメータに基づいてグループを設定する。あるいは、このステップ3ではゲームサーバ1は端末2にてグループを構成する仲間を選択させてもよい。この場合、ゲームサーバ1から送出された画像情報に基づいて、端末2の制御部50が、グループを構成する仲間を選択するための処理を実行する。
ステップS3において端末2の表示部53に表示される仲間選択画面の一例を図12(b)に示す。図12(b)に示す仲間選択画面においては、現在音楽ゲームがプレイできる状態にある他のプレイヤのリストをゲームサーバ1から取得するためのボタン62、及び、以前同じグループで音楽ゲームをプレイした履歴がある他のプレイヤのリストをゲームサーバ1から取得する指示をするためのボタン63が表示されている。
プレイヤは、端末2の入力部52を操作することで、これらボタン62、63のうちのいずれかを選択する。入力部52は、プレイヤによるボタン62、63の選択を受け入れ、この選択に基づいて入力信号を制御部50に出力し、制御部50は、入力部52からの入力信号を、通信部55を介してゲームサーバ1に送出する。
ゲームサーバ1の制御部30は、いずれのボタン62、63が選択されたかに基づいて、端末2に対して他のプレイヤのリストに関する情報を送出し、端末2の制御部50はこのリストを表示部53に表示する。そして、プレイヤは、端末2の入力部52を操作することで、リストの中からグループに属させる候補である他のプレイヤを選択する。入力部52は、他のプレイヤの選択入力を受け入れ、この選択入力に基づいた入力信号(以下、プレイヤ選択入力信号という)を制御部50に出力し、制御部50は、入力部52からのプレイヤ選択入力信号を、通信部55を介してゲームサーバ1に送出する。
ゲームサーバ1の制御部30は、このプレイヤ選択入力信号に基づいて、当該選択入力信号を送出した端末2を操作するプレイヤと、上記選択入力により選択された他のプレイヤとを同一のグループに属させるために、記憶部31に格納されたゲームテーブル41のグループ識別子欄41bに同一のグループ識別子を入力する。
ステップS4では、ゲームサーバ1から送出された画像情報に基づいて、端末2の制御部50が、音楽ゲームの楽曲を選択するための楽曲選択画面に係る画像情報を表示部53に表示させる。
ステップS4において端末2の表示部53に表示される楽曲選択画面の一例を図13(a)に示す。図13(a)に示す楽曲選択画面においては、ゲームサーバ1の記憶部31に格納されている楽曲テーブル430(図6)の楽曲名欄430aに記述された楽曲名が表示された複数のボタン64が表示されている。
プレイヤは、端末2の入力部52を操作することで、これらボタン64のうちのいずれかを選択する。入力部52は、プレイヤによるボタン64の選択を受け入れ、この選択に基づいた入力信号(以下、楽曲選択入力信号という)を制御部50に出力し、制御部50は、入力部52からの楽曲選択入力信号を、通信部55を介してゲームサーバ1に送出する。
ゲームサーバ1の制御部30は、この楽曲選択入力信号に基づいて、選択入力信号を送出した端末2が属するグループが特定の楽曲を選択したことを有効にするために、記憶部31に格納されたゲームテーブル41(図5)の選択曲欄41cに選択された楽曲名を入力する。
ステップS5では、ゲームサーバ1から送出された画像情報に基づいて、端末2の制御部50が、音楽ゲームにおいてプレイヤが擬似的に演奏する楽器を選択するための難易度選択画面に係る画像情報を表示部53に表示させる。
ステップS5において端末2の表示部53に表示される楽器選択画面の一例を図13(b)に示す。図13(a)に示す楽器選択画面においては、ステップS4において選択された楽曲においてプレイ可能な楽器が表示された複数のボタン65が表示されている。
プレイヤは、端末2の入力部52を操作することで、これらボタン65のうちのいずれかを選択する。入力部52は、プレイヤによるボタン65の選択を受け入れ、この選択に基づいた入力信号(以下、楽器選択入力信号という)を制御部50に出力し、制御部50は、入力部52からの楽器選択入力信号を、通信部55を介してゲームサーバ1に送出する。
ステップS6では、ゲームサーバ1が、ステップS4で選択した楽曲及びステップS5で選択した楽器により擬似的な演奏を行う際の、操作パターン43の難易度を選択する。
なお、このステップS6においては、ゲームサーバ1が操作パターン43の難易度を選択する代わりに、ゲームサーバ1から送出された画像情報に基づいて、端末2の制御部50が表示部53に難易度選択画面を表示して、プレイヤに難易度を選択させ、選択された難易度をゲームサーバ1に通知してもよい。この場合の端末2の表示部53に表示される難易度選択画面の一例を図14(a)に示す。図14(a)に示す難易度選択画面においては、ゲームサーバ1の記憶部31に格納されている楽曲テーブル430の設定難易度欄430cに記述された難易度に対応する難易度の程度が表示された複数のボタン66が表示されている。
このように端末2にてプレイヤが難易度を選択する場合は、端末2の入力部52を操作することで、これらボタン66のうちのいずれかを選択する。入力部52は、プレイヤによるボタン66の選択を受け入れ、この選択に基づいて選択入力信号を制御部50に出力し、制御部50は、入力部52からの選択入力信号を、通信部55を介してゲームサーバ1に送出する。
ゲームサーバ1の難易度設定部34は、記憶部31に格納されたゲームテーブル41の設定難易度欄41dに、設定した難易度を入力する。
ステップS7では、ゲームサーバ1から送出された画像情報及びサウンド情報等に基づいて、端末2の制御部50が、音楽ゲームをプレイさせるための画像情報を表示部53に表示させ、擬似的な楽器演奏効果を得るためのサウンドを出力部54から出力させ、さらに、プレイヤが入力部52を操作した結果、入力部52が出力する入力信号をゲームサーバ1に送出することで、端末2を用いてプレイヤに音楽ゲームをプレイさせる。
ステップS7において端末2の表示部53に表示される音楽プレイ画面の一例を図14(b)に示す。図14(b)に示す音楽プレイ画面においては、操作タイミングを示すアイコン67が、一定の速度で図中左から右に移動している。そして、このアイコン67がタイミングライン69と重畳したタイミングが、端末2を操作するタイミングであることがプレイヤに知らされる。音楽プレイ画面の下部には、プレイヤがタッチパネル262をタッチすべき領域である操作領域画像68が表示され、図示例であれば、プレイヤは、操作領域画像68のうち特定領域70をタッチすることで、操作タイミングに合わせた操作入力を行う。
入力部52は、プレイヤによる操作領域画像68の特定領域70のタッチ動作を受け入れ、このタッチ動作に基づいた入力信号を制御部50に出力し、制御部50は、入力部52からの入力信号を、通信部55を介してゲームサーバ1に送出する。ゲームサーバ1の得点算出部37は、端末2からの入力信号に基づいてこの端末2及び端末2が属するグループ全体の得点を算出し、パラメータ算出部38は、得点算出部37が算出した得点等に基づいてパラメータを算出する。
なお、既に述べたように図7において仲間選択処理(ステップS3)等の処理は、端末2からの操作に応じて行う例だけでなく、ゲームサーバ1にて行われてもよい。また、楽曲や楽器の選択も、ゲームサーバ1にて行われても構わない。
次に、図8〜図11は、本実施形態のゲームサーバ1の動作の一例を示すフローチャートである。図8に示すフローチャートは、端末2の記憶部51に格納されたアプリケーションソフトウェア45が起動され、ゲームサーバ1がこの端末2から音楽ゲームの開始指示を受け入れたら開始される。
ステップS10では、ゲームサーバ1の制御部30が、音楽ゲームの開始指示を送出した端末2に係るプレイヤ識別子をユーザテーブル42(図5(b))を参照して特定し、このプレイヤ識別子をキーとしてゲームテーブル41(図5(a))を参照することで、プレイヤのデータを参照する。ステップS11では、上述のステップS1で端末2から送出された入力信号を、ゲームサーバ1の制御部30が通信部32を介して受け入れる。
ステップS12では、ステップS11において受け入れた入力信号が、グループを構成して音楽ゲームのプレイを選択することを示す入力信号であるか否かが判定され、グループを構成して音楽ゲームのプレイを選択した(S12:Yes)場合は、プログラムはステップS13に移行し、単独のプレイヤで音楽ゲームのプレイを選択した(S12:No)場合は、プログラムはステップS14に移行する。
ステップS13では、ゲームサーバ1のグループ設定部33が、グループを構成する他のプレイヤの候補に関する情報を端末2に対して送出し、端末2からのグループ選択入力を受け入れたら、グループに属する端末2に係るプレイヤ識別子がゲームテーブル41のプレイヤ識別子欄41aに記載されている行を特定し、この行のグループ識別子欄41bに同一のグループ識別子を格納する。なお、既に述べたように、ゲームサーバ1にて端末2からの操作なしにグループを構成してもよい。この場合は、ステップS11,S12は必ずしも必要でない。
ステップS14では、上述のステップS4で端末2から送出された楽曲選択入力信号を、ゲームサーバ1の制御部30が通信部32を介して受け入れ、さらに、制御部30は、楽曲選択入力信号を送信した端末2と同じグループに属する端末2に係るプレイヤ識別子がゲームテーブル41のプレイヤ識別子欄41aに記載されている行を特定し、この行の選択曲欄41cに同一の楽曲名に係る情報を格納する。
ステップS15では、難易度設定部34が難易度を設定する難易度設定処理動作を行う(後述)。
ステップS16では、期待値算出部39aが、ステップS15で難易度設定部34が設定した端末2の難易度、及びステップS14で受け入れた楽曲選択入力信号等に基づいて、端末2の得点期待値を算出し、ゲームテーブル41の期待値欄41fに格納する。この処理は図17に例示するように、端末2の操作履歴に基づく達成度等のパラメータを読み込み(S131)、当該読み込んだパラメータに基づいて、ステップS14で選択された楽曲の、ステップS15にて選択された難易度に対応する操作パターンの満点に、ステップS131で得た達成度を乗じるなどして、得点期待値を、期待情報として算出する(S132)ことで行われる。
ステップS17では、ゲームサーバ1のパターン決定部35が、ステップS15で難易度設定部34が設定した端末2の難易度、及びステップS14で受け入れた楽曲選択入力信号等に基づいて、端末2に送出すべき操作パターン43を決定し、送出部36が、パターン決定部35が決定した操作パターン43、及び記憶部31に格納された音源データ44を端末2に送出する。
ステップS18では、ゲームの処理が行われる。具体的に、この処理は、図18に例示するように、上述のステップS7で端末2から送出されたプレイヤの操作を表す信号を、ゲームサーバ1の得点算出部37が通信部32を介して受け入れ(S150)、この受け入れた信号と操作タイミングとの時間差と、各端末に設定した難易度とに基づいて、操作入力信号毎の得点を算出する(S151)。この処理は、図15に示した通りである。つまり、ここではプレイヤの操作を評価してその得点を演算する。具体的には、時間差が短いほど、また難易度が高いほど得点が高くなるような数式により得点を演算すればよい。
また、端末2から送出されたプレイヤの操作を表す信号を、当該プレイヤと同じグループに属しているプレイヤの端末2宛に送出する(S152)。端末2では、この信号を受けて、音源を鳴動して、グループ内のプレイヤによる楽曲の演奏をプレイヤに提供する。
図9に示すステップS19では、制御部30により、端末2から、音楽ゲームのプレイを終了する信号(プレイ終了信号と呼ぶ)を受け入れたか否かが判定され、プレイ終了信号を受け入れた(受信した)(S19:Yes)場合は、制御部30はステップS20に移行し、端末2からの音楽ゲームのプレイ終了信号をまだ受け入れていない(S19:No)場合は、ステップS18に戻る。
ステップS20では、ゲームサーバ1の得点算出部37が、ステップS18で算出した操作入力信号毎の得点に基づいて、端末2毎、及びグループ単位での得点を算出し、その結果をゲームテーブル41の得点欄41eに格納する。
ステップS21では、ゲームサーバ1のパラメータ算出部38がパラメータ算出処理動作を行う。パラメータ算出処理動作の詳細を、図11のフローチャートを参照して説明する。
ステップS40では、パラメータ算出部38が、ゲームテーブル41の得点欄41e及び設定難易度欄41dに格納されている、端末2の得点及び難易度設定部34により設定された難易度を読み込む。ステップS41では、パラメータ算出部38が、ゲームテーブル41の期待値欄41fに格納されている、端末2の得点期待値を読み込む。そして、ステップS42では、パラメータ算出部38が、これら得点、難易度、得点期待値、及び、端末2の操作履歴に基づいて、例えば難易度ごとの平均得点や、得点期待値と得点との比など端末2のパラメータを算出する。ここで、算出されたパラメータは、操作履歴パラメータ欄41gに格納される。
図9のフローチャートに戻って、ステップS22では、ペナルティ付与部40が、端末2の得点及び得点期待値等に基づいて、この端末2に対してペナルティを設定するか否かを判断する。ここでペナルティを設定すると判断したときには(S22:Yes)、ペナルティの具体的内容について決定し(S23)、端末2にペナルティを付与する(S24)。また、ステップS22にてペナルティを設定しないと判断したときは(S22:No)、そのまま処理を終了する。
なお、ここまでの説明において図8ないし図9で示した処理うち、ステップS16の期待値算出処理や、ステップS20の得点算出、S21のパラメータ算出処理、S22のペナルティ算出処理等は、端末2において実行されても構わない。
また、ステップS15では、難易度設定部34が難易度を設定する難易度設定処理動作を行う際に図10に示す処理を行ってもよい。この例では、ステップS30では、上述のステップS6で端末2から送出された、難易度を選択する信号(難易度選択入力信号と呼ぶ)を、ゲームサーバ1の制御部30が通信部32を介して受け入れる。受け入れた難易度選択入力信号に基づく、端末2が選択した難易度に関する情報は、一時的にゲームテーブル41の設定難易度欄41dに格納される。
ステップS31では、難易度設定部34が、ゲームテーブル41の操作履歴パラメータ欄41gに格納されている、端末2のパラメータを読み込み、一時的に記憶部31に格納する。次いで、ステップS32では、難易度設定部34が、ゲームテーブル41の得点欄41eに格納されている端末2の前回の得点に関する情報と、ゲームテーブル41の期待値欄41fに格納されている前回の得点期待値に関する情報とを読み込み、一時的に記憶部31に格納する。
そして、ステップS33では、難易度設定部34が、これら情報に基づいて、例えば、前回の得点期待値よりも前回の得点が高いか否かを判断し、高い場合(S33:Yes)、ゲームテーブル41の設定難易度欄41dに格納した難易度の情報をそのままとして、ステップS35で、設定した難易度に関する情報を通信部32を介して端末2に送出し、処理を終了する。
また、ステップS33で前回の得点期待値よりも前回の得点が高くない場合(S33:No)、ステップS34で、端末2に設定すべき難易度を、ゲームテーブル41の設定難易度欄41dに格納した難易度より低く設定し、ステップS35に移行する。ステップS35で、設定した難易度に関する情報を通信部32を介して端末2に送出し、処理を終了する。
[実施形態の効果]
以上詳細に説明したように、本実施形態のゲームシステムSによれば、複数の端末2によりグループを構成し、このグループに属する端末2を用いて、複数のプレイヤが音楽ゲームをプレイすることができる。これにより、いわゆるソーシャルゲームにおいて複数人のプレイヤが音楽ゲームをプレイすることが可能となる。
[変形例]
なお、本発明のゲームシステム等は、その細部が上述の一実施形態に限定されず、種々の変形が可能である。一例として、上述の一実施形態では、端末2に提示される楽曲は特段ジャンル分けをしていなかったが、ジャンル単位で区分した状態で楽曲を端末2に提示してもよい。また、ジャンル分けをした場合、操作パターン43や端末2に提供する画像情報等もこのジャンルに合わせたものにしてもよい。
一例として、ジャズ、テクノといったジャンル分けがされていた場合、ジャズに区分された楽曲に対応する操作パターン43では、一定時間プレイヤが端末2を自由に操作する(アドリブ演奏に対応する)ことを可能にしてもよく、テクノに区分された楽曲に対応する操作パターン43では、端末2の表示部53が表示する画像情報においてミキサーとターンテーブルを配置し、これらミキサー等を操作することで擬似的な演奏を行えるようにしてもよい。
加えて、同一の楽曲であってもジャンル別の操作パターン43を予め用意してもよい。一例として、ジャズ風の操作パターン43であればジャズ風のリズム(タイミング)に沿って擬似的な演奏を行うようにしてもよい。
また、得点算出部37は、グループ単位あるいは端末2単位での得点の平均値毎にグループやプレイヤを分類し、この分類毎に、端末2の操作履歴に基づく擬似的な合奏結果をゲームサーバ1の記憶部31に一定期間保存し、他のプレイヤからの投票に基づいて、グループ単位または端末2単位での演奏のテクニックを競えるようにしてもよい。加えて、一定数以上の投票を得たグループまたは端末2に対して得点を加算する、アイテムを付与する等してもよい。
さらに、本実施の形態は、一人のプレイヤが、演奏すべき楽曲において一つの楽器に割り当てられた操作タイミングの全てについて端末2を操作して擬似的な楽器演奏を行う態様に限られない。例えば一つの楽曲に対応する操作タイミングを所定の単位、例えば数小節〜数十小節(演奏パートと称する)単位で分割し、各演奏パートごとにプレイヤを交替する(パート別プレイと称する)こととしてもよい。
このパート別プレイにおいては、ステップS20の得点算出処理では、演奏パートを跨いだ前後においてパートのつなぎ目の部分がうまくつながっていたと得点算出部37が判定した場合、得点を加算するのみならずアイテムを付与する。
具体的には図19に例示するように、ゲームサーバ1は、ある演奏パートの最後の所定数個の操作タイミングと、それに続く演奏パートの最初の所定数個の操作タイミングとにおいて、それぞれの演奏パートを担当するプレイヤが行った操作との時間差を取得する(演奏パートを跨ぐ前後での操作の時間差の情報を取得:S141)。
そしてゲームサーバ1は、当該取得した所定数個の時間差の情報のうち、予め定めた割合の個数の時間差の情報が、しきい値を下回る時間差を表すものとなっているか否か(つまり、つなぎ目がスムーズであるか否か)を調べる(S142)。そして、ステップS142にてつなぎ目がスムーズであると判断すると(S142:Yes)、第1の得点を加点する(S143)。またステップS142にてつなぎ目がスムーズでなかったと判断すると(S142:No)、第2の得点を加点する(S144)。ここで第1の得点は第2の得点よりも高い得点としておく。
これより、分担してプレイした各プレイヤの演奏が、つなぎ目の部分を跨いでスムーズにつながっていると評価される場合に、グループでのコンボが決まったことなどとして比較的高い得点を付与できる。
そして、本発明のゲームシステムは、音楽ゲームへの適用のみならず、RPG(ロールプレイングゲーム)においてリアルタイムバトルを実施している際の攻撃入力方法としても適用可能である。この場合、得点算出部37は、得点のみならず、グループを構成する端末2間に設定された親交度(親密度)を上げる、攻撃力を上昇させる等の特典を、端末2を操作するプレイヤに与えてもよい。
そして、上述の実施形態において、ゲームサーバ1及び端末2を動作させるプログラムはROM11、21等に格納されて提供されていたが、不図示の光学ディスクドライブ、等を用いて、プログラムが格納されたDVD(Digital Versatile Disc)等の記録媒体、USB外部記憶装置、メモリーカード等を接続し、このDVD等からゲームサーバ1、端末2に読み込んで動作させてもよい。また、インターネット5上の他のサーバ装置内にプログラムを格納しておき、このプログラムをゲームサーバ1、端末2に読み込んで動作させてもよい。さらに、上述の実施形態において、ゲームサーバ1、端末2は複数のハードウェア要素により構成されていたが、これらハードウェア要素の一部の動作をCPU10、20がプログラムの動作により実現することも可能である。
また、本実施の形態の別のゲームの態様の例として、個々のプレイヤは同時に端末を操作して一つの楽器を擬似的に演奏するものの、プレイヤには他のプレイヤの楽器の擬似的演奏結果であるサウンドは聞こえず、グループのプレイヤによる擬似的な楽器演奏が終了した後で、全てのプレイヤによる擬似的な楽器演奏を合奏した結果に基づくサウンドが端末2で再生される(本明細書では個別プレイ後の合体と称する)態様が挙げられる。
この例では、図18に示したゲームの処理においてステップS152が省略される。そして、図9に代えて、図20に例示するようにプレイ終了後(ステップS19:Yes)の所定の時点(図20ではS20に先行することとしているが、どの時点であってもよい)で、プレイ中に行われたグループ内のプレイヤの操作を表す情報を端末2に対して送出し(S161)、端末2にて全てのプレイヤによる擬似的な楽器演奏を合奏した結果に基づくサウンドを鳴動させる。
さらに、本実施の形態の別のゲームの態様では、数名のプレイヤによる擬似的な楽器演奏の後、これら擬似的楽器演奏を合奏した結果に、別の擬似的な楽器演奏を重ねて(つまりアレンジ等を加えて)最終的な合奏結果を得る(本明細書では段階別プレイと称する)態様が挙げられる。
この場合、図18に示したゲームの処理に代えて図21に例示するように、ステップS7で端末2から送出されたプレイヤの操作を表す信号を、ゲームサーバ1の得点算出部37が通信部32を介して受け入れ(S150)、この受け入れた信号と操作タイミングとの時間差と、各端末に設定した難易度とに基づいて、操作入力信号毎の得点を算出する(S151)。
そして、過去に行われ、既に終了しているプレイにおけるプレイヤの操作を表す信号の記録を取得し(S171)、ステップS150にて受け入れた、端末2から送出されたプレイヤの操作を表す信号と、ステップS171にて取得した信号とを、当該プレイヤと同じグループに属しているプレイヤの端末2宛に送出する(S172)。端末2では、この信号を受けて、音源を鳴動して、グループ内のプレイヤによる楽曲の演奏をプレイヤに提供する。
これにより、擬似的楽器演奏を合奏した結果に、別の擬似的な楽器演奏を重ねたプレイが実現される。
[差し替え演奏]
また本実施の形態では、個別プレイ後の合体を行う場合に、個別プレイにおいて得点が比較的低いプレイヤを助けるため、得点の比較的高いプレイヤに対し、得点が比較的低いプレイヤと同じパートを演奏させて、得点の比較的低いプレイヤの演奏に差し替えさせ、グループの演奏得点を上げる処理(応援動作)を行ってもよい。
この例では、例えばゲームサーバ1が、図20に例示したプレイ終了後(ステップS19:Yesの後)の所定の時点(図20ではS20に先行することとしているが、どの時点であってもよい)で、プレイ中に行われたグループ内のプレイヤの操作する端末2ごとに算出された得点情報に基づいて、比較的得点の低い端末2(グループに属する一の端末に相当する、以下低得点端末と呼ぶ)を操作するプレイヤ(例えば最低得点であった端末2、または得点が低いことを表す所定の低得点しきい値を下回る得点の端末2を操作するプレイヤ)の得点や、当該プレイヤがプレイしたパートを特定する情報を、比較的得点の高い端末2(一の端末とは異なる他の端末に相当する。以下、高得点端末と呼ぶ)を操作するプレイヤ(例えば高得点であることを表す所定の高得点しきい値を超える得点の端末2を操作するプレイヤ)に対して提供し、差し替え演奏を行うか否かを問い合せる。
そして差し替え演奏を行うとして、高得点端末から応答があったときに、当該高得点端末に対して、ゲームサーバ1が、低得点端末に対して送出していた操作タイミングのパターンを送出して個別プレイを行わせる(差し替え演奏プレイ)。
この例では、高得点端末において行われた差し替え演奏プレイの得点が、低得点端末において行われた個別プレイの得点を上回る場合に、低得点端末の個別プレイの得点を、差し替え演奏プレイの得点に置き換えて、グループの得点を算出することとする。また、端末2にて全てのプレイヤによる擬似的な楽器演奏を合奏した結果に基づくサウンドを鳴動させる際にも、低得点端末において行われた個別プレイの内容を、差し替え演奏プレイの内容で置き換える。