〔実施形態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が備えるこれらの構成は、通信バスによって互いに電気的に接続される。また、図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または複数の選手に順番に与えられて進行する対戦ゲームである。前記対戦ゲームにおいて進行される対戦は、一例として、野球の試合である。
本ゲームには、少なくとも、複数のユーザ端末100が通信して、複数のユーザのそれぞれが所有するデジタルコンテンツとしての選手を含む協力チームを生成し、該協力チームを相手チームと対戦させる通信協力対戦ゲームの要素(第1のゲーム要素)が含まれている。該協力チームは、複数のユーザのそれぞれが所有するデジタルコンテンツとしての選手であって、該複数のユーザのそれぞれが所有する選手の中からそれぞれ1人以上選出された選手からなる。さらに、本ゲームには、各ユーザが操作する各ユーザ端末100が通信して、各ユーザのチーム同士を対戦させる、通信対人対戦ゲームの要素(第2のゲーム要素)が含まれていてもよい。
以下では、通信対人対戦ゲームの要素における、各ユーザのチーム同士の対戦を対人対戦と称する。通信協力対戦ゲームの要素における、協力チームと、他の相手チームとの間で行う対戦を協力対戦と称する。両者を特に区別する必要がない場合には、単に対戦と記載する。
本野球ゲームの通信対人対戦ゲームの要素において、サーバ200を介して通信する第1のユーザ端末100と第2のユーザ端末100とによって、それぞれのチームが操作される。チームは、デッキによって定義される。デッキは、チーム内の役割としてのポジションが設定された枠を、チームを構成する役割ごとに所定数有し、当該枠(すなわちポジション)にオブジェクトを紐付けることで、該オブジェクトに役割を設定することが可能なデータ構造を有する。具体的には、チームは、ユーザが、1または複数のオブジェクトを、デッキに組み入れることにより生成される。オブジェクトは、本ゲームにおいて、対戦の進行に何らかの作用を及ぼすデジタルコンテンツであり、1以上のオブジェクトによって編成された各ユーザのデッキの強さが、少なくとも、対戦の進行に作用する 。オブジェクトは、例えば、選手などのキャラクタであり、本ゲームでは、選手は、一例として、カードという表示態様で表される。
そして、野球の試合は、1イニングにつき、表と裏でチームの攻守が入れ替わりつつ進行する。以下では、あるイニングの表または裏において、守備側のチームを操作するユーザ端末100と、攻撃側のユーザ端末100とを互いに区別する必要がある場合、前者を投球側ユーザ端末、後者を打撃側ユーザ端末と称する。両者を区別する必要がない場合には、単に、ユーザ端末100と称する。投球側ユーザ端末のユーザを、投球側ユーザ、打撃側ユーザ端末のユーザを、打撃側ユーザと称する。ただし、両ユーザを特に区別する必要がない場合、および、その区別が明らかな場合には、単にユーザと称する。投球側ユーザは、投球側ユーザ端末を用いて、投手キャラクタによる投球を操作し、攻撃側ユーザは、打撃側ユーザ端末を用いて、打者キャラクタによる打撃を操作する。
投球側ユーザ端末は、投球側ユーザから受け付けた投球操作に応じて投球結果を決定し、該投球結果を含むデータ(図1に示す投球結果D1)を生成し、サーバ200に送信する。投球結果D1は、サーバ200を介して、対戦相手の打撃側ユーザ端末に送信される。投球操作とは、投球側ユーザが、投手キャラクタに投球させるために、投球側ユーザ端末の入力部151に対して実施する操作のことである。
打撃側ユーザ端末は、打撃側ユーザから受け付けた打撃操作に応じて打撃結果を決定し、該打撃結果を含むデータ(図1に示す打撃結果D2)を生成し、サーバ200に送信する。打撃結果D2は、サーバ200を介して、対戦相手の投球側ユーザ端末に送信される。打撃操作とは、打撃側ユーザが、打者キャラクタにボールを打撃させるために、打撃側ユーザ端末の入力部151に対して実施する操作のことである。
本野球ゲームの通信協力対戦ゲームの要素において、サーバ200を介して、協力し合う所定台数(例えば、3台)のユーザ端末100が通信することにより、1つの協力チームが生成される。協力チームの生成は、上述の所定台数のユーザ端末100のうち代表の1台が実施してもよいし、ユーザ端末100同士の中継役を担うサーバ200が実施してもよい。ユーザ端末100の代表の1台を、他のユーザ端末100と区別する必要がある場合、代表の1台をメインユーザ端末(例えば、図1のメインユーザ端末100A)と称し、協力する他のユーザ端末100をサブユーザ端末(例えば、図1のサブユーザ端末100Bおよび100C)と称する。
協力チームは、協力し合う各ユーザがそれぞれのデッキに配置している選手の中から選出されて生成される。生成された協力チームの情報は、サーバ200を介して、上述の所定台数のユーザ端末100によって共有され、協力チームの各選手は、各ユーザ端末100によって操作される。本実施形態では、一例として、順番が回ってきた選手の動作は、該選手を所有するユーザが、該ユーザのユーザ端末100を用いて操作する。例えば、メインユーザ端末100AのユーザAが所有する投手の登板の順番(以下、登板順)が回ってきた場合、メインユーザ端末100Aは、ユーザAから受け付けた投球操作に応じて投球結果を決定する。そして、メインユーザ端末100Aは、上述の投球結果を示す情報である投球結果D1を生成し、サーバ200を介して、協力者であるユーザBおよびユーザCのそれぞれのサブユーザ端末100Bおよび100Cに送信する。別の例では、サブユーザ端末100BのユーザBが所有する野手の打順が回ってきた場合、サブユーザ端末100Bは、ユーザBから受け付けた打撃操作に応じて打撃結果を決定する。そして、サブユーザ端末100Bは、上述の打撃結果を示す情報である打撃結果D2を生成し、サーバ200を介して、協力者であるユーザAのメインユーザ端末100AおよびユーザCのサブユーザ端末100Cに送信する。それぞれのユーザ端末100は、受信した投球結果D1または打撃結果D2に基づいて、各ユーザ端末100で実行されている対戦を進行させる。
このように、投球結果D1および打撃結果D2が、協力し合うユーザ端末100間で共有されることにより、各ユーザ端末100で実行されている協力対戦を、同一の内容で進行させることができる。
本野球ゲームにおいて、ユーザは、自身で選手を制御することを希望しない場合に、ユーザ端末100を操作して、サーバ200に対してその旨を通知することができる。サーバ200は、このような通知をユーザ端末100から受信すると、ゲームプログラムにしたがって、進行している対戦に関わる各種情報に基づいて、該選手の動作結果(投球結果または打撃結果)を決定する。そして、決定した動作結果を対戦相手または協力者のユーザ端末100に送信する。すなわち、サーバ200は、ユーザ端末100に代わり、該選手を制御する。ユーザの入力操作にしたがって、選手の動作結果が決定されるモードをマニュアルモード、および、選手の動作結果がサーバ200によるプログラムの実行によって決定されるモードをオートモードと称する。例えば、ユーザは、他の用事で手が離せなくなり、自分が所有する選手の出番が回ってきても該選手を操作することができない状況になった場合には、マニュアルモードからオートモードへの切り替えを行うことができる。
本実施形態に係るゲームシステム1によって実行されるゲームは、野球に限らず、あらゆるチーム競技の対戦ゲームを実行するためのシステムであってもよい。例えば、ゲームシステム1で実行される対戦ゲームとしては、ソフトボール、軟式野球、クリケット、カーリング、サッカーのPK戦、および、その他あらゆる競技の団体戦(柔道、卓球、スキージャンプ、体操、リレー)など、定められた順番で複数の選手が交代でパフォーマンスをする競技の対戦ゲームであることが想定される。あるいは、実在する競技でなくとも、定められた順番で複数の選手が交代でパフォーマンスをする架空の競技の対戦ゲームが、ゲームシステム1において実行されてもよい。
<各装置のハードウェア構成要素>
プロセッサ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の協働により実現するためのゲームプログラムであってもよい。また、各種データとは、ユーザ情報およびゲーム情報などのゲームに関するデータ、ならびに、ユーザ端末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は、ゲームシステム1に含まれるサーバ200およびユーザ端末100の機能的構成を示すブロック図である。サーバ200およびユーザ端末100のそれぞれは、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。
ユーザ端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能する。
サーバ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の記述に応じて、対戦支援部211として機能する。制御部210は、実行するゲームの性質に応じて、ユーザ端末100におけるゲームの進行を支援するために、図示しないその他の機能ブロックとしても機能することができる。
対戦支援部211は、各ユーザ端末100が本ゲームにおける対戦を進行させるのを支援する。具体的には、対戦支援部211は、対戦するまたは協力し合う各ユーザ端末100と通信して、ユーザ端末100同士のやりとりを仲介する。さらに、対戦支援部211は、対戦相手のマッチング、協力者のグルーピング、および、対戦の進行状況の同期をとるための同期制御などを実行する。本実施形態では、協力チームは、後述するユーザ端末100の対戦進行部115によって生成されるが、別の実施形態では、対戦支援部211が、協力チームを生成してもよい。
(ユーザ端末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から接触入力が解除されたことを検知する。
UI制御部113は、UIを構築するために表示部152に表示させるUI部品を制御する。UI部品は、ユーザが、ゲームの進行上必要な入力をユーザ端末100に対して行うためのツール、または、ゲームの進行中に出力される情報をユーザ端末100から得るためのツールである。UI部品は、これには限定されないが、例えば、アイコン、ボタン、リスト、メニュー画面などである。
また、対戦進行中、とりわけ、投球操作、または、打撃操作を支援するためのUI部品の表示態様を制御する。打撃操作を支援するUI部品としては、例えば、打撃の良好なタイミングを示すタイミングヒントオブジェクト、投手キャラクタから投げられたボール、投球の進行方向の変化を示す方向ヒントオブジェクト、投球の到達予定位置を示す位置ヒントオブジェクト、および、バットとボールとの当たりを判定するためのミートカーソル等がある。投球操作を支援するUIオブジェクトとしては、例えば、球種選択オブジェクト、コース提示オブジェクト、コース選択オブジェクト、および、投球タイミングオブジェクト等がある。
アニメーション生成部114は、上述のUI部品を含む各種のオブジェクトの制御態様に基づいて、各オブジェクトのモーションを示すアニメーションを生成する。例えば、投手の投球動作のアニメーション、打者の打撃動作のアニメーション、該打者が振るバットのアニメーション、投手によって投げられたボールのアニメーション、打者によって打たれたボールのアニメーション、走者が盗塁するアニメーション等を生成してもよい。上述の投手、打者、および、走者は、デッキに編成されたカード(選手)に基づいて規定される。
表示制御部112は、タッチスクリーン15の表示部152に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部112は、アニメーション生成部114によって生成されたアニメーションを含むゲーム画面を表示部152に表示してもよい。また、表示制御部112は、上述のUIオブジェクトを、該ゲーム画面に重畳して描画してもよい。
対戦進行部115は、サーバ200との間でデータの送受信を行って対戦を進行させる。また、対戦進行部115は、UI制御部113、アニメーション生成部114および表示制御部112を制御して、ユーザが本野球ゲームをプレイするために必要な上述のUIおよび該UI含むゲーム画面をユーザに提供する。
以下で参照する図示された各ゲーム画面は、UI制御部113が生成するUI部品、アニメーション生成部114が生成するアニメーション、または、これらを組み合わせによって構成される。UI制御部113またはアニメーション生成部114によって生成されたゲーム画面は、表示制御部112によって、ユーザ端末100の表示部152に表示される。表示制御部112、UI制御部113およびアニメーション生成部114は、対戦進行部115の制御下で、ゲーム画面を表示部152に表示するための処理を実行する。よって、「対戦進行部115が、ゲーム画面を表示部152に表示する」という記載は、「対戦進行部115が、UI制御部113またはアニメーション生成部114を制御して、UI部品またはアニメーションを生成させ、表示制御部112を制御して、生成されたUI部品またはアニメーションを含むゲーム画面を表示部152に表示させる」ことを意味する。
なお、図2に示すサーバ200およびユーザ端末100の機能は一例にすぎない。サーバ200は、ユーザ端末100が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末100は、サーバ200が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末100およびサーバ200以外の他の装置をゲームシステム1の構成要素とし、該他の装置にゲームシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末100、サーバ200、および他の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
<ユーザ情報>
図3は、ユーザ情報133のデータ構造の一例を示す図である。ユーザ情報133は、対戦で参照されるユーザに係る情報を管理するためのデータであり、ユーザごとに作成される。ユーザ情報133は、記憶部120に格納されている。ユーザ情報133は、サーバ200の記憶部220にも格納されていてもよい。
ユーザ情報は、複数の項目を含む。一例として、少なくとも、ユーザ名およびレーティングの各項目を含む。
「ユーザ名」は、ユーザの名称を示す。ユーザ名は、他のユーザがユーザを識別するために利用する。さらに、ユーザ情報は、ゲームシステム1の各装置がユーザを識別するための「ユーザID」を含んでいてもよい。「レーティング」は、ユーザに設定されているレーティングを示す。レーティングは、対戦におけるユーザの強さを表す指標である。レーティングは、所定の演算式に基づき、ユーザ同士の対戦の結果(例えば、勝敗)と、各ユーザの対戦前のレーティングの差分とに基づいて更新される。具体的には、対戦に勝利したユーザのレーティングは増加され、敗北したユーザのレーティングは、減じられる。したがって、レーティングが高いほどそのユーザが対戦に強いという推測が成り立つ。
ユーザ情報は、さらに、「デッキ総合パラメータ」の項目を含んでいてもよい。デッキ総合パラメータは、ユーザに関連付けて管理されているデッキ(チーム全体)の、対戦における強さの指標である。デッキ総合パラメータは、デッキに配置されている各選手の総合パラメータに基づいて算出される。総合パラメータは、詳細には後述するが、選手の総合的な強さを示す値である。デッキ内の各選手の総合パラメータが高いほど、デッキ総合パラメータも高く算出される。本実施形態では、デッキ総合パラメータが高いほどデッキ(チーム全体)が対戦において強いと考えることができる。
<処理フロー:全体>
図4は、ゲームシステム1を構成する1以上のコンピュータが、ゲームプログラム131に基づいて実行する処理の流れを示すフローチャートである。概して、本野球ゲームのゲームプログラム131をコンピュータが実行する方法は、デジタルコンテンツとしての選手であって、複数のユーザのそれぞれが所有する選手の中からそれぞれ1人以上選出された選手からなる協力チームを生成するステップ(後述するS5)と、協力チームと、該協力チームと対戦する相手チームとの対戦を進行させるステップ(S8)とを含む。対戦を進行させるステップでは、順番が回ってきた選手の動作を、該選手を所有するユーザが、該ユーザが操作するコンピュータに対して実施した入力操作にしたがって決定する。本実施形態では、一例として、図4に示す各ステップをユーザ端末100が実行するものとして説明する。しかしこれに限定されず、図4に示す各ステップは、複数のコンピュータが分担して実行してもよい。
ステップS1において、操作受付部111は、協力対戦の開始を指示するためのユーザの入力操作を入力部151を介して受け付ける。
ステップS2において、対戦進行部115は、エントリ要求をサーバ200に送信する。エントリ要求は、協力対戦をプレイするために協力し合うユーザのグループを形成すること、および、該グループにユーザをエントリさせることを、サーバ200に対して要求するためのメッセージである。エントリ要求は、例えば、要求元のユーザの、ユーザID、レーティング(評価値)、デッキ総合パラメータ、および、該ユーザのデッキの配置を示すデッキ情報などを含む。
ステップS3において、グルーピング結果をサーバ200から受信する。グルーピング結果は、グルーピングの成否と、グルーピングが成功した場合には、グループ内の他のユーザに関する情報とを含む。本実施形態では、一例として、3人のユーザで1つのグループが形成される。したがって、他の2人のユーザに関する情報が、グルーピング結果に含まれて、ユーザ端末100に提供される。ユーザに関する情報は、例えば、ユーザ名、レーティング、デッキ総合パラメータ、および、デッキ情報である。
本実施形態では、一例として、グループの中のメインユーザ端末100Aが、以降のステップS4〜S6を実行する。
ステップS4において、メインユーザ端末100Aの対戦進行部115は、自端末のユーザを含むグループ内の各ユーザのレーティングおよびデッキ情報を記憶部120から読み出す。
ステップS5において、対戦進行部115は、取得したレーティングおよびデッキ情報に基づいて協力チームを生成する。具体的には、対戦進行部115は、協力チームを構成する選手を、各ユーザのデッキから選出したり、選出した選手ごとに出番の順番(以下、オーダー)を決定したりする。対戦進行部115は、選出した選手と、選手ごとに決定されたオーダーとを示すオーダー情報を生成する。該オーダー情報は、協力チームを定義するデッキである。
ステップS6において、対戦進行部115は、生成したオーダー情報を他のユーザ端末100(例えば、サブユーザ端末100Bおよび100C)に、サーバ200を介して配信する。
ステップS7において、対戦進行部115は、対戦を開始する前に、サーバ200から受信したグルーピング結果と、自身が生成したオーダー情報とをユーザに提示するためのゲーム画面を表示部152に表示する。
ステップS8において、対戦進行部115は、サーバ200を介して他のユーザ端末100と通信し、同期しながら協力対戦を進行させる。このステップでは、協力チームに編成された選手の出番が回ってきた場合、該選手の動作結果は、該選手を所有しているユーザの入力操作にしたがって決定される。また、このステップでは、各選手が、試合中にどのような活躍をしたのかが、少なくともメインユーザ端末100Aの記憶部120において記憶される。
ステップS9でYESの場合、例えば、規定のイニングが終了するなどして野球の試合が終了した場合、対戦進行部115は、ステップS10において、試合内容を加味して各ユーザの活躍度を算出する。ユーザの活躍度は、該ユーザが操作した選手が試合においてどのような結果を出したのかに応じて算出される。
ステップS11において、対戦進行部115は、試合の勝敗および算出された活躍度に応じて、各ユーザの報酬を決定する。対戦進行部115は、活躍度が高いほどよい内容の報酬が付与されるように、報酬を決定する。
ステップS12において、対戦進行部115は、各ユーザに報酬を付与する。自端末のユーザAに対して、デジタルコンテンツとしての報酬を付与することは、一例として、ユーザAに対応付けて管理されているデジタルコンテンツのステータスを、使用不可から使用可能に遷移させることであってもよい。あるいは、デジタルコンテンツを、ユーザ識別情報またはユーザIDに対応付けて、ゲームシステム1に含まれる少なくともいずれかのメモリ(メモリ11、メモリ21)に記憶させることであってもよい。協力者である、他のユーザ端末100のユーザ(例えば、ユーザBおよびユーザC)に対して報酬を付与することは、一例として、決定した報酬の内容をサーバ200を介してサブユーザ端末100Bおよび100Cに通知することであってもよい。報酬の内容に係る通知を受けたサブユーザ端末100Bおよび100Cは、メインユーザ端末100Aと同様に、通知された報酬としてのデジタルコンテンツをメモリに記憶したり、該デジタルコンテンツの状態を使用可能に遷移させたりする。
上述の方法によれば、野球ゲームなどの動作を行う順番が定められているような対戦ゲームにおいて、興趣性の高い通信協力対戦ゲームを実現することが可能となる。
<デッキ情報>
図5および図6は、ユーザ端末100の表示部152に表示されるデッキ編成画面の一例を示す図である。デッキは、対戦に参加させるユーザのチームを定義するものである。デッキ編成画面には、デッキをユーザが編成するためのUI部品が含まれている。該UI部品を用いて、ユーザは、手持ちのカード中から所望のカードをデッキに組み入れることにより、対戦するチームを編成することができる。本野球ゲームにおけるデッキは、一例として、守備のポジション区分に基づいて、野手デッキおよび投手デッキの2種類のデッキで構成されている。また、本実施形態では、それぞれの区分のデッキを、メインとサブという概念を採用してさらに区分してもよい。本野球ゲームでは、一例として、野手デッキのメインデッキを野手スタメンデッキ、野手デッキのサブデッキを野手ベンチデッキ、投手デッキのメインデッキを投手先発デッキ、および、投手デッキのサブデッキを投手リリーフデッキと称する。
図5に示すデッキ編成画面は、野手デッキを編成するためのデッキ編成画面500である。デッキ編成画面500は、一例として、野手スタメンデッキ501および野手ベンチデッキ502を含む。野手スタメンデッキ501は、投手を除く8つの守備ポジションのそれぞれに対応する枠F2〜F9と、指名打者に対応する枠F10とを有する。野手ベンチデッキ502は、一例として、控えの選手5人分に相当する5つの枠を有してもよい。
図6に示すデッキ編成画面は、投手デッキを編成するためのデッキ編成画面550である。デッキ編成画面550は、一例として、投手先発デッキ551および投手リリーフデッキ552を含む。投手先発デッキ551は、一例として、先発投手5人分に相当する5つの枠を有してもよい。投手リリーフデッキ552は、一例として、リリーフ投手6人分に相当する6つの枠を有してもよい。
ユーザは、それぞれのデッキ編成画面を表示部152に表示させて、手持ちの所望のカードを、それぞれの枠に紐付けるための入力操作を入力部151を用いて行う。対戦進行部115は、上述の入力操作を操作受付部111を介して受け付け、枠とカードとを対応付けて、その対応関係をデッキ情報として生成する。
図7は、デッキ情報のデータ構造の一例を示す図である。デッキ情報は、ユーザ端末100の対戦進行部115によって生成され、ゲーム情報132として、ユーザ端末100の記憶部120、および、サーバ200の記憶部220に保存される。
デッキ情報は、カード(選手)を配置することが可能な各枠と、カードとの対応関係を示す情報である。一例として、デッキ情報は、デッキを構成する各枠を識別するための枠識別番号と、カードを識別するためのカードIDとが関連付けられたデータ構造を有する。さらに、デッキ情報は、カードIDに関連付けて、総合パラメータ、および、希少度の各項目を含んでいてもよい。総合パラメータについては詳細を後述する。
希少度は、カードが表している選手の希少価値を等級で表したものである。一般に、ゲーム上、特に、対戦において良好な結果をもたらす選手、すなわち、野球の試合に係る能力の高い選手には、上級の希少度が設定されている。本実施形態では、希少価値の高い等級から順に、「S」、「A」、「B」、および、「C」のアルファベットにより希少度が設定される。
なお、希少度は、例えば、カードの入手困難性、より具体的には、ミッションのクリア報酬として入手される場合のミッションの難易度、または、有償入手の場合の価格などと相関があってもよい。カードの希少度が高いほど、該カードの入手困難性は高くなる。
<能力値について>
本実施形態では、各選手に設定される能力値には、一例として、スキル別身体パラメータと、総合パラメータとがある。スキル別身体パラメータは、対戦において発揮される選手の身体能力を表す値である。具体的には、スキル別身体パラメータは、野球で必要とされるスキルごとに、選手の技量を数値化したものである。本実施形態では、例えば、スキル別身体パラメータとして、打撃力、命中力、最速球速、制球力、変化球力、走力、守備力、送球力(送球速度および送球精度等)がある。
上述のスキル別身体パラメータのうち、守備動作(投球)に関係する数値は、最速球速、制球力および変化球力である。投手として機能する選手(以下、投手)のこれらのスキル別身体パラメータが高いほど、守備側に有利に対戦が進行する。
上述のスキル別身体パラメータのうち、攻撃動作(打撃)に関係する数値は、打撃力、および、命中力である。野手のこれらのスキル別身体パラメータが高いほど、攻撃側に有利にフェーズが進行する。例えば、打撃力が高いほど、打撃されたボール704は早く遠くに飛ばされる。このような打撃結果は、攻撃側にとって有利といえる。あるいは、野手として機能する選手(以下、野手)のスキル別身体パラメータが高いほど、投手が失投する確率を上げることができる。あるいは、野手のスキル別身体パラメータが高いほど、ユーザの打撃操作を支援するオブジェクトであるミートカーソルを大きいサイズで表示させることができる。これにより、該打席について、ユーザは、打撃操作を行いやすくなり、攻撃側にとって有利な結果が得られやすい。
上述守備動作または攻撃動作以外でも、対戦の進行に影響を与えるスキル別身体パラメータがある。例えば、走力、守備力および送球力である。チームを構成する各選手のこれらのスキル別身体パラメータが高いほど、該チームにとって有利な結果が得られやすい。例えば、攻撃側の選手の走力が高いほど、該選手の出塁および盗塁等の成功率が高くなる。例えば、守備側の選手の守備力または送球力が高いほど、上述の成功率が低くなる。
総合パラメータは、スキルの種別に関係なく、選手の総合的な強さを数値化したものであり、選手ごとに設定される。総合パラメータは、例えば、対戦の開始時に、編成されたチーム間の強さを比較するために参照されてもよい。あるいは、投手と打者との対決の進行時に、対決する選手間の強さを1対1で比較するために参照されてもよい。総合パラメータが上回ったチーム、または、選手に対して、有利に対戦が進行してもよい。
対戦進行部115は、チームを構成する、すなわちデッキに組み入れられる各選手の総合パラメータを合計して、総合パラメータの合計値を算定し、該合計値に基づいて、チームの強さの指標としての、デッキ総合パラメータデッキ総合パラメータを算出する。デッキ総合パラメータは、単純に、デッキに配置された各選手の総合パラメータを合計することにより得られてもよい。あるいは、対戦進行部115は、デッキ総合パラメータを、さまざまな要因に基づいて、上述の基準の合計値から増減することにより得てもよい。例えば、相性の良い特定の選手同士をデッキに組み入れることによって、デッキ総合パラメータが加算されてもよい(いわゆる、コンボ)。また、例えば、特定のポジションに適性を持つ選手を、そのポジションに配置することによって、デッキ総合パラメータが加算されてもよい。デッキ総合パラメータは、加算条件をうまくそろえることによって高騰させやすい値である。このような加算条件をそろえるように、戦略を練ってデッキを編成することをユーザに促すことができる。結果として、高騰させることが可能なデッキ総合パラメータの概念をデッキ編成の要素に採用することは、ゲームの興趣性を向上させることに貢献している。
<拠出選手情報>
図8は、拠出選手情報のデータ構造の一例を示す図である。本実施形態では、拠出選手情報は、メインユーザ端末100Aの対戦進行部115によって生成され、ゲーム情報132として、メインユーザ端末100Aの記憶部120、および、サーバ200の記憶部220に保存される。また、同じグループのサブユーザ端末100Bおよび100Cのそれぞれにもサーバ200を介して供給される。
拠出選手情報は、グループ員であるユーザごとに、拠出選手のリストを有する。本実施形態では、例えば、協力対戦するグループは、3人のユーザで構成される。したがって、拠出選手情報は、リスト31、リスト32、および、リスト33の3つのリストを有する。一例として、リスト31、リスト32、および、リスト33は、それぞれ、ユーザA、ユーザB、および、ユーザCのデッキから拠出された選手のリストである。
各リストには、ユーザ名またはユーザIDが紐付けられている。さらに、各ユーザのレーティングが紐付けられていてもよい。
拠出選手のリスト31〜33は、選出枠、カードID、および、属性の各項目を含む。本実施形態では、各ユーザのデッキから拠出される選手の人数は、均等で固定されていることが好ましい。これにより、公平に協力チームを編成することができ、特定のユーザに偏って選手が拠出されることにより、他のユーザが不満を抱くことを回避できる。本実施形態では、一例として、協力チームは、野手9人と投手6人とで構成される。したがって、対戦進行部115は、グループ員のデッキから、それぞれ、野手3人と投手2人ずつを選出する。
選出枠は、拠出選手のリストにおいて、選手を配置するための枠を識別するための情報である。上述のとおり、1人のユーザにつき野手3人と投手2人とが選出されるので、本実施形態では、一例として、選出枠として、野手1、2、3および投手1、2の5枠が設けられている。
カードIDは、選手を表しているカードの識別情報である。すなわち、カードIDによって選手が一意に識別される。
属性は、選手の属性を示す情報である。属性は、一例として、チームにおける役割としてのポジションである。本野球ゲームでは、一例として、野手のポジションは、指名打者(DH)を含む9種類が定められている。投手のポジションは、先発とリリーフとの2種類が定められている。
拠出選手のリストにおける属性は、選手が、元のユーザのデッキにおいてどのポジションに配置されていたのかを示す。例えば、図5に示す野手スタメンデッキ501が、ユーザAのデッキであるとする。キャッチャーのポジションに対応する枠F2には、捕手(選手名「山田」)が、配置されている。
対戦進行部115は、この捕手を、協力チームにおいてユーザAの1人目の野手として選出した場合、図8に示すリスト31において、「野手1」の枠に、該捕手のカードID「AF1」を格納し、該捕手の属性として、ポジション「キャッチャー」を格納する。「キャッチャー」は、該捕手がユーザAの野手スタメンデッキ501において配置されている枠F2に対応するポジションである。
対戦進行部115は、協力チームに含める選手を、各ユーザが所有する複数の選手の中からランダムに選出する。例えば、対戦進行部115は、ユーザAの野手スタメンデッキ501から、3人の野手をランダムに選出する。また、例えば、対戦進行部115は、ユーザAの投手デッキから、2人の投手をランダムに選出する。
上述のとおり、本ゲームにおいて、チームにおける役割としてポジションが定められており、ポジションと選手とを紐付けるためのデッキが各ユーザに関連付けて管理されている。協力チームの少なくとも一部について、各ユーザのデッキから、選手を役割が重複しないようにランダムに選出することが好ましい。
具体的には、ユーザが所有する選手からなるユーザの固有チーム、および、協力チームは、デッキによって定義される。該デッキは、チームを構成する役割が設定された枠を、該チームを構成する役割ごとに所定数有し、該デッキにおいて枠に選手を紐付けることによって該選手の役割が設定されるものである。対戦進行部115は、協力チームのデッキにおいて、ユーザのデッキにおいて設定されている役割と同じ役割が選手に設定されるように、かつ、協力チームを構成する役割のすべての枠に選手が紐付けられるように、各ユーザのデッキから選手を選出することが好ましい。
例えば、「協力チームの少なくとも一部」とは、協力チームにおける野手枠である。上述のとおり、本野球ゲームにおいて、協力対戦とは、野球の試合であり、デッキは、野手のポジションと、選手とを紐付けるための野手デッキ、具体的には、野手スタメンデッキ501を含んでいる。そこで、対戦進行部115は、協力チームを構成する野手のスターティングメンバーのポジション(例えば、指名打者を入れて9種類)については、各ユーザの野手スタメンデッキ501において各野手に設定されているポジションが、協力チームのデッキにおいて重複しないように、各ユーザの各野手スタメンデッキ501から野手を選出する。
具体的には、対戦進行部115は、図8に示すとおり、ユーザAの野手スタメンデッキ501から、キャッチャー、ファースト、および、ライトの各ポジションの3選手をランダムに選出したとする。この場合、対戦進行部115は、ユーザBの野手スタメンデッキ501からは、キャッチャー、ファースト、および、ライト以外のポジションから、3選手をランダムに選出する(例えば、サード、センター、および、レフト)。最後に、対戦進行部115は、ユーザCの野手スタメンデッキ501からは、これまで選出されていないポジションから選手を選出する。上述の例では、対戦進行部115は、セカンド、指名打者、および、ショートのポジションの各選手を選出することになる。対戦進行部115は、3種のポジションの各野手を、リストにおける、野手1〜3のどの枠に割り当てるのかはランダムに決定する。
上述したとおり、本野球ゲームでは、上述のユーザの固有チームを定義するデッキは、先発投手の枠を所定数有する投手先発デッキ551(先発投手デッキ)と、リリーフ投手の枠を所定数有する投手リリーフデッキ552(リリーフ投手デッキ)とを含む。対戦進行部115は、協力チームにおける先発投手を、各ユーザの投手先発デッキ551のいずれか1つから1人選出し、協力チームにおけるリリーフ投手を、各ユーザの投手リリーフデッキ552から1または複数選出する。
具体的には、対戦進行部115は、先発投手を拠出するユーザを、グループ員のユーザA〜Cの中から1人ランダムに決定する。換言すれば、対戦進行部115は、先発投手を1人選出するデッキを、3人のユーザの投手先発デッキ551の中から1つランダムに選択する。例えば、ユーザAを先発投手を拠出するユーザとして決定したとする。この場合、対戦進行部115は、ユーザAの投手先発デッキ551から1人の投手を選出して、リスト31の選出枠「投手1」に割り当てる。そして、該投手の属性を「先発」と設定する。また、対戦進行部115は、ユーザAの投手リリーフデッキ552から1人の投手を選出して、リスト32の選出枠「投手2」に割り当てる。そして、該投手の属性を「リリーフ」と設定する。ユーザBおよびユーザCについては、各ユーザの投手リリーフデッキ552から、それぞれ2人の投手を選出する。
最後に、対戦進行部115は、図8に示すとおり、上述のように生成したリスト31〜33を含む拠出選手情報を生成して、記憶部120に記憶する。
上述の構成によれば、対戦進行部115は、協力チームに選出する選手を、デッキからランダムに決定する。つまり、ユーザは、協力チームに拠出する選手を自由にコントロールすることができない。このような仕様によれば、ユーザは、各種のポジションにつき、偏りなく強い選手を獲得したり、各種のポジションの選手を万遍なく強化したりすることを促される。なぜなら、能力の高い所望の選手を協力チームに拠出するためには、特定のポジションの特定の選手を偏って強化することよりも、デッキ内のすべてのポジションにおいて一定の能力以上の選手を万遍なく配置することの方が有効であるからである。
このように、ユーザに対して、すべてのポジションにおいて強い選手を集めたいという目標を与えることができ、結果として、ユーザのゲームをプレイすることに対する動機付けを強化することが可能となる。
<オーダー情報>
図9および図10は、オーダー情報のデータ構造の一例を示す図である。本実施形態では、オーダー情報は、メインユーザ端末100Aの対戦進行部115によって生成され、ゲーム情報132として、メインユーザ端末100Aの記憶部120、および、サーバ200の記憶部220に保存される。また、同じグループのサブユーザ端末100Bおよび100Cのそれぞれにもサーバ200を介して供給される。
本野球ゲームでは、一例として、試合における攻撃回は、打席に立って打撃動作を行う機会が、選出された9人の野手に順番に与えられて進行する。そこで、対戦進行部115は、野手が打撃動作を行う順番(以下、打順)に係るオーダー情報を生成する。図9に示すオーダー情報は、打順に係るオーダー情報である。
図9に示すとおり、打順に係るオーダー情報は、打順を示す番号の項目と、その打順にて出番が回ってくる野手を識別するためのカードIDの項目とを含む。図9に示す第3のカラムは、発明の理解を容易にするために、どのユーザのどの選出枠のどのポジションの選手であるのかを補足情報として示したものである。したがって、打順に係るオーダー情報は、第3のカラムの項目を実際には有していなくてもよい。
本野球ゲームでは、一例として、試合における守備回は、マウンドに立って投球動作を行う機会が、選出された6人の投手に順番に与えられて進行する。そこで、対戦進行部115は、投手が投球動作を行う順番(以下、登板順)に係るオーダー情報を生成する。図10に示すオーダー情報は、登板順に係るオーダー情報である。
図10に示すとおり、登板順に係るオーダー情報は、登板順を示す番号の項目と、その登板順にて出番が回ってくる投手を識別するためのカードIDの項目とを含む。図10に示す第3のカラムは、発明の理解を容易にするために、どのユーザのどの選出枠のどのポジションの選手であるのかを補足情報として示したものである。したがって、登板順に係るオーダー情報は、第3のカラムの項目を実際には有していなくてもよい。
本ゲームにおいて、各ユーザには、ユーザ同士の1対1の対人対戦の結果に基づいて増減させるレーティングが設定されている。そこで、対戦進行部115は、所定の動作(打撃動作または投球動作)を行う出番が、各ユーザが所有する選手の間で巡回するように、かつ、設定されているレーティングに基づいて、上述の各動作を行う順番を決定してもよい。一例として、対戦進行部115は、レーティングが高いユーザの選手の出番が先になるように打順を決定してもよい。
対戦進行部115は、さらに、各選手に紐付けられている属性を考慮して動作の順番を決定してもよい。属性は、例えば、各選手に紐付けられている、該選手の能力を表すパラメータ(例えば、上述のスキル別身体パラメータ)であってもよい。あるいは、属性は、例えば、選手に割り当てられているチームにおける役割(ポジション)であってもよい。
対戦進行部115は、打順を、具体的には、以下のようにして決定する。まず、対戦進行部115は、各ユーザのレーティングに基づいて、ユーザの序列を決定する。対戦進行部115は、レーティングが高いユーザが上位に来るように序列を決定する。図8に示す例では、対戦進行部115は、1位:ユーザC、2位:ユーザA、3位:ユーザBと決定する。次に、対戦進行部115は、序列が上のユーザほど、該ユーザが所有する選手の出番が先に来るように、かつ、所有主のユーザごとに巡回するように、打順を決定する。図8に示す例では、対戦進行部115は、上述の序列に基づいて、まずユーザCの野手、次にユーザAの野手、最後にユーザBの野手と打順を決め、この打順で3周することを決定する。すなわち、対戦進行部115は、打順の1番、4番、7番に、ユーザCが拠出した野手を割り当て、2番、5番、8番に、ユーザAが拠出した野手を割り当て、3番、6番、9番に、ユーザBが拠出した野手を割り当てる。
対戦進行部115は、スキル別身体パラメータのうち、走力が高い野手に1番から3番の打順を割り当ててもよい。また、対戦進行部115は、命中力および打撃力が高い野手に4番から6番の打順を割り当ててもよい。
具体的には、対戦進行部115は、まず、ユーザCから拠出された野手1〜3のうち、命中力および打撃力のスキル別身体パラメータが最も高い野手(例えば、図8に示す指名打者の野手2であるとする)に、打順4番を割り当てる。次に、走力が最も高い野手(例えば、図8に示すショートの野手3であるとする)に、打順1番を割り当てる。最後に、残りの野手(図8に示すセカンドの野手1)に打順7番を割り当てる。対戦進行部115は、残りのユーザAおよびユーザBから拠出された野手についても、同様の方法で、スキル別身体パラメータに基づいて打順を割り当てる。
これにより、協力チームを公平に生成するためにあらゆる制約を受けながらも、その中で、各選手の能力に応じた効果的な打順を、対戦進行部115が決定することができる。結果として、相手チームとの対戦を有利に進められる可能性を高めることができ、協力対戦の興趣性を一層高めることが可能となる。
なお、命中力および打撃力に基づいて、中盤の打順(4番〜6番)を先に決定することにより、得点に関わる重要な打順に能力の高い選手を優先して割り当てることができる。
対戦進行部115は、登板順を、具体的には、以下のようにして決定する。まず、対戦進行部115は、レーティングに依らずに、先発投手として選出された選手に1番の登板順を割り当て、レーティングに基づいて、リリーフ投手として選出された各選手に2番以降の登板順を割り当てる。図8に示す例では、ユーザAの選出枠「投手1」の投手の属性が先発である。したがって、対戦進行部115は、ユーザAの投手1に登板順1番を割り当てる。すなわち、1番の登板順を決定するにあたっては、対戦進行部115は、レーティングに基づく序列を加味すること、および、所有主のユーザごとに操作機会を平等に巡回させることよりも、ポジション(先発かリリーフか)を優先させる。対戦進行部115は、各ユーザの投手リリーフデッキ552から拠出されたリリーフ投手に、2番以降の登板順を割り当てる。2番以降の登板順を決定するにあたっては、対戦進行部115は、各ユーザのレーティングに基づく序列を加味して、所有主のユーザごとに操作機会が平等に巡回するように、登板順を決定する。図8に示す例では、1巡目は、ユーザAの先発投手、ユーザCのリリーフ投手、および、ユーザBのリリーフ投手の順に登板順を決定する。2巡目は、ユーザCのリリーフ投手、ユーザAのリリーフ投手、および、ユーザBのリリーフ投手の順に登板順を決定する。
まず、打順について、上述の構成によれば、各ユーザが所有する選手が3人ずつ、かつ、操作機会がユーザごとに巡回するように、各野手の打順が決定される。したがって、すべてのグループ員に公平に、かつ、順繰りに、3回ずつ自分の野手を操作する機会が与えられる。
次に、登板順について、上述の構成によれば、各ユーザが所有する選手が2人ずつ、かつ、操作機会がユーザごとに巡回するように、各投手の登板順が決定される。したがって、すべてのグループ員に公平に、2回ずつ自分の投手を操作する機会が与えられる。
一方で、野球のように、打順または登板順が平等な回数分回ってくるかに関係なく試合の終了条件が定まっているようなゲームでは、順番が先であるほど、出番が多くなる可能性が高い。例えば、野球の試合では、打順3番の選手まで出番が回ってきたところで試合終了となった場合、打順4番以降の選手の出番は、打順3番までの選手より1回少ないことになる。よって、出番の回数を完璧に公平にすることは困難である。
そこで、さらに、上述の構成によれば、レーティングが高いユーザほど、該ユーザが所有する選手の出番が先に回ってくるように打順が決定される。レーティングの高さは、対戦における腕前が上達していることを意味する。また、レーティングの高さによって、それだけそのユーザが対戦における経験を豊富に持っていると推測することができる。このように、ゲームがうまいユーザに、操作機会が多く与えることは、協力チームにおける協力対戦を有利に進行させることにつながり、各ユーザからの理解および納得感を得られやすい。したがって、出番の回数の観点では排除しきれない不公平感を解消することができる。
なお、登板順について、上述の構成によれば、先発投手だけが登板順1番を割り当てられる優位性を有しているが、先発投手を拠出するユーザはランダムに決定される。この仕様は、レーティングの序列に基づいておらず、どのユーザから先発投手が選出されるのかといった楽しみを各ユーザに与えることができる。また、いつ自分のデッキから先発投手が選出されるか分からないことから、ユーザは、常に、先発投手もリリーフ投手も偏りなく強化するように促される。結果として、選手を偏りなく強化するためにゲームをプレイしようとするユーザの意欲が高められる。
<処理フロー:協力チームを生成する処理>
図11は、ユーザ端末100の対戦進行部115が協力チームを生成するときの処理の流れを示すフローチャートである。図11に示す一連の処理は、図4に示すステップS5に対応する。
ステップS101において、対戦進行部115は、自端末のユーザを含むグループ内の各ユーザの野手スタメンデッキ501から、野手を選出する。例えば、対戦進行部115は、指名打者を含むピッチャー以外の9種類のポジション分の選手、すなわち9人の野手を選出する。例えば、対戦進行部115は、グループ内の3人のユーザの野手スタメンデッキ501から、ポジションが重複しないように、3人ずつ野手を選出する。
ステップS102において、対戦進行部115は、先発投手を拠出するユーザが決定する。例えば、対戦進行部115は、グループ員、ユーザA、ユーザBおよびユーザCの中から、ランダムに、先発投手を拠出するユーザを1人(例えば、ユーザAを)決定する。
ステップS103において、対戦進行部115は、先発投手を拠出するユーザの投手先発デッキ551からランダムに先発投手を例えば1人選出する。ステップS104において、対戦進行部115は、該ユーザ(ユーザA)の投手リリーフデッキ552からランダムにリリーフ投手を例えば1人選出する。
ステップS105において、対戦進行部115は、残りのユーザ(ユーザBおよびユーザC)につき、それぞれの投手リリーフデッキ552からランダムにリリーフ投手を例えば2人ずつ選出する。これで、グループ員である各ユーザが、野手3人および投手2人を、それぞれが所有するデッキから拠出したことになる。
ステップS106において、対戦進行部115は、各ユーザのデッキから選出した合計15人の選手に基づいて、拠出選手情報(例えば、図8)を生成する。
ステップS107において、対戦進行部115は、各ユーザのレーティングに基づいて、ユーザの序列を決定する。図8に示す例では、1位:ユーザC、2位:ユーザA、3位:ユーザBと決定する。
ステップS108において、対戦進行部115は、選出された各野手の身体能力パラメータを取得する。身体能力パラメータは、選手のカードそれぞれに関連付けて、ゲーム情報132として記憶部120に記憶されている。対戦進行部115は、例えば、各野手の、命中力、打撃力および走力を取得する。
ステップS109において、対戦進行部115は、ユーザの序列と各野手の属性とに基づいて打順を決定する。一例として、野手の属性とは、野手の身体能力パラメータである。具体的には、対戦進行部115は、1番から9番まである打順について、まず、ユーザC、次に、ユーザA、そして最後にユーザBという順で、これが3周ように打順を各ユーザに序列順に割り当てる。また、対戦進行部115は、命中力および打撃力が高い野手に、各ユーザの真ん中の打順(4〜6番)を割り当てる。また、対戦進行部115は、走力が高い野手に、各ユーザの最初の打順(1〜3番)を割り当てる。対戦進行部115は、残りの野手に各ユーザの最後の打順(7〜9番)を割り当てる。
ステップS110において、対戦進行部115は、各投手の属性とユーザの序列とに基づいて登板順を決定する。一例として、投手の属性とは、役割としてのポジションであり、ここでは、投手のポジションとは、「先発」か「リリーフ」かである。例えば、対戦進行部115は、登板順の1巡目については、ユーザの序列よりも投手の属性を優先して投手を割り当てる。具体的には、対戦進行部115は、先発投手として選出されたユーザAの投手1に登板順1番を割り当てる。対戦進行部115は、残りの登板順2〜3番を、ユーザの序列順に、残りのユーザCおよびユーザBのそれぞれのリリーフ投手のいずれかに割り当てる。対戦進行部115は、2巡目の登板順4〜6番を、ユーザの序列順に、各ユーザの残っているリリーフ投手に割り当てる。
ステップS111において、対戦進行部115は、ステップS109において決定した打順(例えば、図9)と、ステップS110において決定した登板順(例えば、図10)とを含むオーダー情報を生成する。生成したオーダー情報は、図4のステップS6にて、他のグループ員のユーザ端末100に配信され、グループ内の各ユーザで共有される。
<画面例>
図12は、ユーザ端末100の表示部152に表示されるゲーム画面の一例を示す図である。図12に示すゲーム画面は、図4に示すステップS7において、対戦進行部115によって表示されるグルーピングの結果画面600である。該結果画面600は、一例として、ユーザAのメインユーザ端末100Aに表示される画面である。
結果画面600は、サーバ200によってグルーピングされた各ユーザのユーザ情報601〜603を含む。具体的には、ユーザ情報601〜603は、それぞれのユーザのユーザ名およびレーティングを含んでいてもよい。これにより、ユーザは、グルーピングが成立し、対戦が開始されることを理解するとともに、一緒に戦うグループ員の情報を確認することができる。
結果画面600の表示期間が満了すると、対戦進行部115は、対戦画面に切り替えて、対戦の進行を開始する。最初に表示される対戦画面には、例えば、図9および図10に示すオーダー情報をユーザに提供するためのUIが含まれていてもよい。
図13〜図17は、ユーザ端末100の表示部152に表示されるゲーム画面の一例を示す図である。図13〜図17に示すゲーム画面は、図4に示すステップS8において、対戦進行部115によって表示される対戦画面である。
図13〜図15は、対戦画面のうち、協力チームの守備回において、ユーザが拠出した投手の登板順が回ってきたときに表示される投球画面700を示す。投球画面700は、ユーザが拠出した投手703の登板順であって、マニュアルモードが設定されている場合に、この投球側ユーザによる投球操作を受け付けるための、以下に説明する投球操作UIを含む。
本実施形態において、投球結果D1を決定するための投球操作には、一例として、球種を指定するためのスライド操作と、コースを指定するためのドラッグ操作と、制球の良否を決定するためのタイミングを投球側ユーザに指定させるタップ操作とが含まれる。タップ操作の入力タイミングの良否に応じて、投球の良否が決定される。つまり、投球側ユーザにとって、対戦、特に、守備の回を有利に進めることができるか否かは、マニュアルモードの場合、タップ操作の巧拙にかかっている。
1つのフェーズ(1回の投球動作と、1回の見逃しも含む打撃動作とが実施される期間)が開始されると、投球側ユーザ端末の対戦進行部115は、まず、図13に示す第1の投球画面700を、UI制御部113に生成させて、表示部152に表示させる。
第1の投球画面700は、仮想空間に配置されている各種オブジェクトを含む。具体的には、相手チームの打者701、バット702、ユーザ自身が操作する投手703、ホームベース707、および、捕手705を含む。
第1の投球画面700は、次のフェーズをオート進行またはマニュアル進行に切り替えるための切替ボタン713を含んでいてもよい。図13に示す例では、該フェーズは、マニュアルモードにて進行している。そのため、切替ボタン713は、次のフェーズをオート進行に切り替えるためのボタンとして投球画面700に重畳表示されている。
第1の投球画面700は、該フェーズにおいて対決中の各選手のステータス情報を含んでいてもよい。一例として、自チームの投手のステータス情報711と、相手チームの打者のステータス情報712とを含んでいてもよい。
第1の投球画面700は、投球操作を支援するUIオブジェクトとして、投手703に投げさせる球種を投球側ユーザが指定するための球種指定オブジェクト710を含んでいてもよい。
対戦進行部115は、球種指定オブジェクト710に対するユーザのスライド操作に基づいて、球種を決定する。図13に示すとおり、球種指定オブジェクト710において、ボールアイコンの周囲を囲うように、球種が1対1で対応付けられた球種アイコンが配置されている。球種アイコンは、対応付けられている球種を示すテキストまたはイラストなどを含んでいる。UI制御部113は、球種指定オブジェクト710において一覧される球種の種類を、投手703の能力に基づいて異ならせてもよい。
操作受付部111は、ボールアイコンに対する所定方向のスライド操作を、球種を指定するための操作として受け付ける。対戦進行部115は、スライド操作の方向に配置されている球種アイコンに対応する球種を、投手703に投げさせる球種として決定する。例えば、図13に示す例では、ユーザがボールアイコンを上方向にスライドさせた場合、対戦進行部115は、投手703にストレートを投げさせると決定する。球種にはボール704の移動経路、球速等を特定するためのパラメータが対応付けられている。球種のパラメータは、球速、変化量、および変化の方向を示す情報を含む。また、球種のパラメータは、投手703の識別情報に対応付けられて、記憶部120に記憶されている(不図示)。対戦進行部115は、投手703の識別情報に対応付けられた球種のパラメータのうち、決定した球種のパラメータを記憶部120から読み出し、投球結果D1に含める。
球種が決定されると、次に、対戦進行部115は、図14に示す第2の投球画面700を表示部152に表示させる。第2の投球画面700は、球種指定オブジェクト710に代えて、コース指定オブジェクト714を含む。コース指定オブジェクト714は、カーソル715と組み合わせて、投球側ユーザに、投手703に投げさせるコース(内角高め、低めなど)を指定させるためのUIオブジェクトとして機能する。
コース指定オブジェクト714は、一例として、ストライクゾーンに対応する矩形を9つのマスに分割したものである。各マスは、投手703の能力、具体的には、得意なコースおよび不得意なコースに基づいて、色分けして表示されてもよい。
コース指定オブジェクト714は、投げられたボールの到達予定位置を示す標識であるカーソル715を含む。第2の投球画面700が表示されている間、操作受付部111は、カーソル715の位置を指定するためのドラッグ操作を受け付ける。操作受付部111がカーソル715を移動させるためのドラッグ操作を受け付けると、UI制御部113は、該ドラッグ操作に関して検出されたタッチ位置に基づいて、カーソル715を移動させる。
操作受付部111は、タッチスクリーン15に対するユーザの最初の接触位置(初期タッチ座標)と、カーソル移動操作後の接触位置(タッチナウ座標)とを取得する。UI制御部113は、取得された各座標を比較した結果得られた変化方向、および、変化量に基づいて、カーソル715の位置の変化方向、および、変化量をそれぞれ決定する。これにより、UI制御部113は、カーソル715が直接タッチされなくても、また、コース指定オブジェクト714の表示領域外でドラッグ操作が受け付けられても、該ドラッグ操作に連動して、カーソル715を移動させることができる。このようにすれば、ユーザの指によってカーソル715の視認が妨げられることを回避できる。表示制御部112は、UI制御部113によって実行されているカーソル715の移動に連動して、移動するカーソル715を第2の投球画面700上に表示させる。
対戦進行部115は、コースの確定を、任意の方法で行う。例えば、ユーザが上述のドラッグ操作に基づく接触が維持された状態で、所定閾値以上の圧力で強く押し込む操作を続けて行ったとする。対戦進行部115は、押し込む操作が受け付けられた時点におけるカーソル715の位置を、最終的なコースとして確定させる。あるいは、「コース確定」などのボタン(不図示)が別途、第2の投球画面700に設けられてもよい。対戦進行部115は、該ボタンがタップ操作されたときのカーソル715の位置に基づいてコースを確定させてもよい。
コースが確定すると、次に、対戦進行部115は、図15に示す第3の投球画面700を表示部152に表示させる。第3の投球画面700は、良否判定オブジェクト720を含む。良否判定オブジェクト720は、投手703の制球の良否を決定するためのタイミングを投球側ユーザに指定させるためのUIオブジェクトとして機能する。
一例として、良否判定オブジェクト720は、弓形の帯状のゲージで構成される。良否判定オブジェクト720は、該ゲージ内に、帯の長手方向にスライドするスライドバー721と、スライドバー721が停止する帯上の位置を定義する第1領域722および第2領域723とを含む。
該帯状のゲージは、投手703の位置(以下、第1位置)から、捕手705の位置(以下、第2位置)に向かって伸びている。
UI制御部113は、スライドバー721を、初期位置である第1位置(例えば、図15の破線枠)から、最終位置である第2位置(例えば、図15のカーソル715の位置)に向かって、帯の長手方向(矢印の方向)に移動させる。アニメーション生成部114は、スライドバー721が、移動の開始から所定時間後に第2領域723を通過し、第1領域722を通過して、最終的にカーソル715の位置に到達するように、アニメーションを生成する。
ユーザは、スライドバー721が帯上の所望の位置に到達した時、その位置でスライドバー721を停止させるよう、タッチスクリーン15に対してタップ操作を行う。UI制御部113は、操作受付部111によってタップ操作が受け付けられた時の位置にて、スライドバー721を停止させる。対戦進行部115は、スライドバー721の停止位置に応じて、制球の良否を判定する。一例として、本実施形態では、対戦進行部115は、スライドバー721が第1領域722で停止した場合に、投手703が制球に完全に成功したと判定し、スライドバー721が第2領域723で停止した場合、成功に近い投球がなされたと判定し、それ以外の領域で停止した場合に、制球に失敗したと判定する。ここで、「制球に完全に成功した」とは、投手703が好投し、投球側ユーザによって指定された球種およびコースどおりに該ボールが仮想空間上を移動することを意味する。「成功に近い投球がなされた」とは、投球側ユーザによって指定された球種およびコースどおりにとはいかないが、それに近い球種およびコースに基づいて該ボールが仮想空間上を移動することを意味する。「制球に失敗した」とは、投手703が失投し、投球側ユーザによって指定された球種およびコースとはかけ離れた球種およびコースにて、該ボールが仮想空間上を移動することを意味する。
制球の良否が判定されると、次に、対戦進行部115は、図示しない第4の投球画面700を表示部152に表示させる。第4の投球画面700は、良否判定結果を含む。また、第4の投球画面700においては、投手703が投球を開始するアニメーションが付与され、これまで投手703のグローブに収まっていたボール704が描出されてもよい。これにより、投球側ユーザは、第3の投球画面700に対して行った自身の操作に関して、フィードバックを即時に受け取ることができる。
なお、良否判定オブジェクト720の帯状のゲージは、弓、アーチなど形状を有し、投げられたボールが描く放物線を模していることが好ましい。また、良否判定オブジェクト720の帯の幅は、第1位置から第2位置へ移動するにつれて、細くなるように定められていることが好ましい。また、該ゲージにおいて、第2位置に最も近く、最も帯の幅が細くなっている部分、すなわち、ゲージの先端が、ボールの到達予定位置として確定したカーソル715に重なるように、良否判定オブジェクト720が配置されることが好ましい。これにより、ユーザは、直観的に、帯状のゲージを、投手703から投げられたボールが、画面奥に配置されている捕手705に向かって移動する経路であるかのように理解する。以上のことから、本実施形態に係る良否判定オブジェクト720は、現実の野球を再現するという目的に反して、ゲームの興趣性を高める目的で追加されたUIでありながら、投球画面700を現実の投球シーンから乖離させることなく、見た目に違和感のない投球シーンを演出することに貢献している。
以上のように、登板順が回ってきた投球側ユーザの投球側ユーザ端末において、対戦進行部115は、投球側ユーザの投球操作に基づいて、投手703の投球動作を決定する。決定した投球動作を示す投球結果D1は、サーバ200と、グループ内の他のユーザのユーザ端末100とに供給される。
図16は、対戦画面のうち、協力チームの守備回において、ユーザが拠出した投手の出番でないときに表示される守備回画面800を示す。同図の守備回画面800は、一例として、他のユーザ(例えば、ユーザC)の投手の出番である期間において、ユーザBのサブユーザ端末100Bに表示される画面である。まず、守備回画面800を生成するためのユーザ端末100の機能的構成について説明する。
上述のとおり、本実施形態では、対戦進行部115は、図4に示すステップS8において、球場を模した仮想空間を定義し、各選手、バット、ボールなどのオブジェクトを仮想空間上に配置して、野球の試合を進行させる。さらに、本実施形態では、対戦進行部115は、上述の仮想空間に仮想カメラを配置する。
仮想カメラは、ユーザに仮想空間を視認させる視界領域を設定するための仮想的なオブジェクトである。仮想カメラは、仮想空間における位置(XYZ座標)と、向きと、画角(視野)の属性を有する。本実施形態では、対戦進行部115は、仮想カメラの位置と向きとを変更して、ユーザに視認させる視界領域を変更することができる。画角は、固定であってよい。
対戦進行部115は、自身が制御した仮想カメラの位置および向き、ならびに、所定の画角に基づいて、視界領域を設定する。そして、対戦進行部115は、該視界領域に基づく視界画像(静止画も動画も含む)を生成し、該視界画像を表示部152に表示する。具体的には、対戦進行部115は、アニメーション生成部114に、仮想空間において設定された視界領域に含まれているオブジェクトを投影した視界画像を生成させる。生成された視界画像は、表示制御部112へ出力される。対戦進行部115の制御下で、表示制御部112は、UI制御部113によって生成されたUI部品があれば、該視界画像と並べて、あるいは、重ねて、上述の守備回画面800に配置する。最後に、表示制御部112は、上述の視界画像を含む守備回画面800を表示部152に表示する。
本実施形態では、対戦進行部115は、仮想カメラの位置および向きを、仮想空間に配置されている各種のオブジェクトの位置、向きおよび動きと、ユーザの入力操作とに基づいて変更することができる。各種のオブジェクトは、選手、バット、ボールなど、仮想空間に配置されているあらゆるオブジェクトを含む。
図16に示す守備回画面800は、一例として、視界画像801を含む。守備回画面800は、さらに、UI部品として、視点切替ボタン802、操作主情報803、および、選手アイコン804を含んでいてもよい。操作主情報803は、守備回において、出番が回ってきた投手を操作しているのがグループ内のどのユーザであるのかを示す。操作主情報803は、他のユーザが出番である期間に表示される。選手アイコン804は、視界画像801に写っている各選手は、誰によって操作されているのかを示す。「あなた」の選手アイコン804が付与されている野手805は、この守備回画面800が表示されているユーザ端末100のユーザ(例えば、ユーザB)によって操作される選手である。この選手アイコン804により、ユーザは、自分が操作対象としている選手を一目で認識することができる。選手アイコン804は、ユーザ名を含み、他のユーザの選手に付与されていてもよい。これにより、ユーザは、どの選手が、どのユーザによって操作されているのかを一目で認識することができる。
同図に示す視界画像801は、ユーザBが拠出した選手(具体的には、野手805)に関連して配置された仮想カメラに基づいて得られた画像である。本実施形態では、対戦進行部115は、ゲームの進行に基づいて仮想カメラを制御してもよい。具体的には、本実施形態では、対戦進行部115は、選手の位置および選手の動作の少なくともいずれか一方に基づいて仮想カメラの位置および向きを制御する。一例として、対戦進行部115は、選手の視点に一致するように仮想カメラの位置および向きを決定してもよい。あるいは、対戦進行部115は、選手の姿の少なくとも一部が視界領域に含まれるように、選手の位置に基づいて仮想カメラの位置および向きを決定してもよい。対戦進行部115は、選手の位置に基づいて決定された仮想カメラの位置からボールが視界領域に含まれるように仮想カメラの向きを決定してもよい。つまり、対戦進行部115は、動いている選手または動いているボールに追従して、仮想カメラの位置および向きを変更することができる。上述の対戦進行部115の構成によれば、ユーザは、他のユーザの選手の出番であって、自身の選手を操作しない期間であっても、単に出番を待つだけでなく、出番を待っている間にも、自分自身も選手の一人として試合に参加している臨場感を味わうことができる。結果として、興趣性の高い通信協力対戦ゲームを実現することが可能となる。
本実施形態では、1人のユーザのデッキからは、3人の野手が選出される。そのため、ユーザは、3人の野手のうちの所望の野手の位置に基づいて、視点の位置を任意に切り替えられることが好ましい。
そのために、対戦進行部115は、守備回画面800において、仮想カメラの位置を切り替えるための視点切替ボタン802を設ける。視点切替ボタン802は、ユーザが、視点を切り替える入力操作を行うためのUI部品である。操作受付部111は、該入力操作を、例えば、タップ操作として受け付ける。
対戦進行部115は、視点切替ボタン802に対するタップ操作が受け付けられたことに基づいて、仮想カメラの位置の基準となる選手を切り替える。図8に示す例では、ユーザBは、3塁手、中堅手、および、左翼手を野手として拠出している。そこで、対戦進行部115は、タップ操作が行われる度に、基準となる選手を、3塁手、中堅手、および、左翼手の順に切り替える。視点切替ボタン802は、現在基準として選択されている選手のポジションの情報を含んでいてもよい。
対戦進行部115は、タップ操作によって選択された選手の位置および向き、ならびに必要に応じてボールの現在位置に基づいて、仮想カメラの位置および向きを決定する。対戦進行部115は、決定した仮想カメラの位置および向きに対応する視界画像を表示部152に表示させる。
試合の重要な局面を決めるシーンは、多くの場合、ボールの位置周辺に存在している。したがって、ユーザは、他のユーザの投手が投球している間、自分が拠出した選手(例えば、マウンドから遠く離れたセンター)の目線で試合を眺めるよりも、バッテリーの現在の動きを確認したいと望むことが考えられる。そこで、本実施形態では、対戦進行部115は、拠出した各選手の位置に加えて、さらに、登板中の他のユーザの投手または捕手の位置に基づいて、仮想カメラの位置を決定してもよい。例えば、ユーザが他のユーザの投手の位置を基準とする視界画像801を選択した場合、対戦進行部115は、図13に示す投球画面700を、投球操作に係るUI部品が表示されていない状態で、表示部152に表示させる。例えば、他のユーザの捕手の位置を基準とすることをユーザが選択した場合、対戦進行部115は、該捕手の背後(主審の位置)から投手の位置を向くように仮想カメラを配置し、バッテリーが写った視界画像801を生成してもよい。
これにより、ユーザは、自身が拠出した選手の位置に関連する場面に加えて、投手が投球する場面(投球場面)について、詳細に観戦することができる。したがって、出番を待っている間にも、試合の重要な局面を見逃すことなく、グループ員とシーンを共有し、協力し合うグループ員同士で一体感を持ってプレイすることが可能となる。この場合、対戦進行部115は、視点切替ボタン802に基づく基準の選手の切り替えを、ユーザBのユーザ端末100においては、例えば、3塁手、中堅手、左翼手、および、現在の投手の順に行ってもよい。
図17は、対戦画面のうち、協力チームの攻撃回において、ユーザが拠出した野手の打順が回ってきたときに表示される打撃画面900を示す。打撃画面900は、ユーザが拠出した野手(打者701)の打順であって、マニュアルモードが設定されている場合に、この打撃側ユーザによる打撃操作を受け付けるための、以下に説明する打撃操作UIを含む。
1つのフェーズが開始され、相手チームの投手703の投球動作が進行すると、それに応じて投球側ユーザ端末またはサーバ200にて生成された投球結果D1が、打撃側ユーザ端末および打順が回ってきていない他のグループ員のユーザ端末100に供給される。打撃側ユーザ端末が、投球結果D1を受信すると、打撃側ユーザ端末の対戦進行部115は、例えば、図17に示す打撃画面900を、UI制御部113に生成させて、表示部152に表示させる。
対戦進行部115は、仮想空間としての球場における第1位置と第2位置との間に、ホームベース707ホームベース707を配置する。対戦進行部115は、ホームベース707上に、第1位置から第2位置に向かう方向に交差する方向に延在する交差面を設定する。対戦進行部115は、交差面に基づいて、打者701がボール704を打撃したか否かを判定する。上述したとおり、交差面は、例えば、ストライクゾーン901と、該ストライクゾーン901の外側に配置されるボールゾーン902とを含んでいてもよい。
操作受付部111が、投手703が投球したボール704が交差面に到達したタイミングで、ユーザからスイングのタイミングを指定する操作を受け付けると、打者701は、バット702をスイングすることによって、ボール704を打ち返す作用をボール704に与えることができる。図17に示すボール704は、投手703によって投球された後、交差面に向かって移動している途中のボール704の一例を示す。
図17に示すとおり、打撃画面900は、上述の他にも、各種オブジェクトを含んでいてもよい。特に、ユーザの打撃操作を支援するためのUIオブジェクトを含んでいることが好ましい。打撃操作を支援するUIオブジェクトとしては、例えば、タイミングヒントオブジェクト903、ミートカーソル904、位置ヒントオブジェクト905、方向ヒントオブジェクト906等がある。
タイミングヒントオブジェクト903は、打者701にバット702をスイングさせる良好なタイミングをユーザに示す。ミートカーソル904は、バット702がスイングされた際に交差面においてボール704に作用を与え得る領域として、スイングされたバット702の到達予定位置をユーザに示す。また、ミートカーソル904は、バット702とボール704との当たりを判定するために、対戦進行部115によって参照される領域でもある。位置ヒントオブジェクト905は、投手703によって投げられたボール704の、交差面における到達予定位置をユーザに示す。方向ヒントオブジェクト906は、投げられたボール704の進行方向の変化をユーザに示す。
本実施形態において、打撃結果D2を決定するための打撃操作には、一例として、ミートカーソル904の位置を指定するためのスライド操作と、決定したミートカーソル904の位置に向けてバット702を振るタイミングを指定するためのフリック操作とが含まれる。つまり、スライド操作が、投球に対して打撃を行う位置を指定する操作であり、フリック操作が、打撃を行うタイミング、つまりバット702を振るタイミングを指定する操作である。つまり、打撃側ユーザにとって、対戦、特に、攻撃の回を有利に進めることができるか否かは、マニュアルモードの場合、スライド操作とフリック操作との両方の巧拙にかかっている。
投手703からボール704が投げられると、打撃画面900において、操作受付部111は、上述の打撃操作を待機する状態に遷移する。操作受付部111が、タッチスクリーン15に対するユーザのスライド操作を受け付けると、該スライド操作にしたがって、UI制御部113は、ミートカーソル904を移動させる。なお、ユーザは、ミートカーソル904のベストの位置を、位置ヒントオブジェクト905を参考にして決定してもよい。
続いて、対戦進行部115は、投手703より投げられたボール704が交差面を基準とする所定の範囲内に到達したか否かを判定する。つまり、投げられたボール704が、ホームベース707上に設定された交差面に所定距離未満まで近づいてきたか否かを判定する。ボール704が交差面から所定距離未満まで到達したと判定された場合、UI制御部113は、ミートカーソル904の移動の少なくとも一部を制限してもよい。移動が制限されたことを示すように、UI制御部113はミートカーソル904の色または模様などの表示態様を変化させてもよい。
打撃画面900において、投げられたボール704には、ストライクゾーン901に向かって移動してくるアニメーションが、アニメーション生成部114によって付与される。ユーザは、移動してくるボール704を目で追い、ボール704がホームベース707上に到達したと思うベストのタイミングで、打者701が行うスイングの開始タイミングを指定するためにフリック操作を行うことができる。
ユーザは、フリック操作のベストのタイミングを計るために、さらに、タイミングヒントオブジェクト903を参考にすることができる。タイミングヒントオブジェクト903は、ボール704の投球が開始されたときから表示が開始され、ボール704がホームベース707上の交差面に近づくにつれてボール704の中心に向かって収縮するようなアニメーションが、アニメーション生成部114によって付与されている。さらに、該アニメーションは、ボール704が交差面に到達したタイミングで、ちょうどボール704の輪郭と同じ大きさにまで縮小するアニメーションである。ユーザは、タイミングヒントオブジェクト903の大きさを確認することにより、良好な打撃結果が得られるベストタイミングを計ることができる。
操作受付部111がフリック操作を受け付けると、対戦進行部115は、その時の交差面におけるボール704とミートカーソル904との位置関係に少なくとも基づいて、打者701がボール704に打撃を与えたか否かを判定する。つまり、ユーザのスライド操作とフリック操作とに基づいて、打者701によってスイングされたバット702が、ボール704に当たったか否かを判定する。例えば、交差面においてボール704がミートカーソル904と少なくとも部分的に重畳している場合には、打者701がボール704を打撃したと判定してもよい。
さらに、対戦進行部115は、操作受付部111が特定したフリック操作のタイミングに基づいて、打撃を与えたか否かの判定を実行してもよい。例えば、交差面におけるボール704およびミートカーソル904が打撃に適合した位置関係にある場合であっても、フリック操作のタイミングがボール704への打撃に適合したタイミングに対して、早過ぎたり遅すぎたりする場合には、対戦進行部115は、打者701がボール704を打撃しなかったと判定してもよい。
また、対戦進行部115は、上述の位置関係に少なくとも基づいて、打撃が与えられたボール704が仮想空間において移動する際の移動経路を算出する。具体的には、対戦進行部115は、上述の位置関係に基づいて、バット702とボール704との衝突を力学的にモデル化する。この場合、バット702に衝突した直後のボール704の速度ベクトル、回転軸、回転量等を、ボール704を移動させるための初期条件として取得すればよい。例えば、ボール704の下部をミートカーソル904の上部で打撃した場合には、打球の角度が上がりフライとなる。また、ボール704の上部をミートカーソル904の下部で打撃した場合には、打球の角度が下がりゴロとなる。また、例えば、対戦進行部115は、ミートカーソル904の中央の位置(図17の芯707)でボール704の中央を打撃する等の所謂ジャストミートの場合には、ライナーでボール704が飛ぶような移動経路を算出する。一方、ジャストミート以外の場合には凡打と判定して、凡打に対応する移動経路を算出してもよい。なお、対戦進行部115は、ボール704の速度ベクトル(初速など)、回転軸、回転量等を決定する際、打者701に設定されているスキル別身体パラメータ、特に、命中力および打撃力等を参照してもよい。
対戦進行部115が算出した移動経路にしたがって、アニメーション生成部114は、算出された移動経路を飛んでいくボール704のアニメーションを生成する。表示制御部112は、生成された、飛翔するボール704のアニメーションを、表示部152に表示する。
以上のように、打順が回ってきた打撃側ユーザの打撃側ユーザ端末において、対戦進行部115は、打撃側ユーザの打撃操作に基づいて、打者701の打撃動作を決定する。決定した打撃動作を示す打撃結果D2は、サーバ200と、グループ内の他のユーザのユーザ端末100とに供給される。
打撃結果D2に基づいて算出された移動経路にしたがって、ボール704が仮想空間内のフィールド上に移動した後は、各ユーザのユーザ端末100の対戦進行部115は、ゲームプログラム131にしたがって、仮想空間における、ボール704の移動、守備をする野手の動き、および、進塁する走者の動きなどをそれぞれ計算する。そして、計算結果に基づいて、仮想空間において各オブジェクトを移動させ、フィールドプレイシーンを進行させる。UI制御部113およびアニメーション生成部114は、計算されたフィールドプレイシーンに対応する画像またはアニメーションを生成して、表示部152に表示させてもよい。
なお、対戦進行部115は、打者701がボール704に打撃を与えなかったと判定した場合には、ボール704の移動経路の算出を省略してもよい。この場合、打者701がボール704を空振りするアニメーションがアニメーション生成部114によって生成され、該アニメーションが表示制御部112によって表示部152に表示される。
打撃画面900は、進行しているフェーズにおいて対決中の各キャラクタのステータス情報を含んでいてもよい。一例として、自チームの打者701のステータス情報908と、相手チームの投手703のステータス情報909とを含んでいてもよい。
図示しないが、協力チームの攻撃回において、ユーザが拠出した野手の出番でない間、該ユーザのユーザ端末100の対戦進行部115は、表示部152に、出番でない上述の野手の位置に関連する仮想カメラからの視界画像801を含む攻撃回画面を表示してもよい。例えば、走者としていずれかの塁に進塁中の野手、ネクストバッターズサークルにいる野手、ベンチにいる野手などの視点から試合を見守ることができる。これにより、ユーザは、他のユーザの選手の出番であって、自身の選手を操作しない期間であっても、単に出番を待つだけでなく、出番を待っている間にも、自分自身も選手の一人として試合に参加している臨場感を味わうことができる。結果として、興趣性の高い通信協力対戦ゲームを実現することが可能となる。
対戦進行部115は、走者の視点での視界画像801を含む攻撃回画面を表示部152に表示するとき、該走者に盗塁を実施させるための指示を入力するUI部品を、該攻撃回画面に重畳表示させてもよい。これにより、ユーザは、自身が操作する選手の打順でない期間であっても、単に打撃の出番を待つだけでなく、走者として、試合に参加している臨場感を味わうことができる。結果として、興趣性の高い通信協力対戦ゲームを実現することが可能となる。
また、対戦進行部115は、拠出した各選手の位置に加えて、さらに、打席に立っている他のユーザの打者の位置に基づいて、仮想カメラの位置を決定してもよい。例えば、ユーザが他のユーザの打者の位置を基準とする視界画像801を選択した場合、対戦進行部115は、図17に示す打撃画面900を、打撃操作に係るUI部品が表示されていない状態で、表示部152に表示させる。
これにより、ユーザは、自身が拠出した選手の位置に関連する場面に加えて、打席に立っている打者の位置に関連する場面(すなわち、打撃場面)について、詳細に観戦することができる。したがって、出番を待っている間にも、試合の重要な局面を見逃すことなく、グループ員とシーンを共有し、協力し合うグループ員同士で一体感を持ってプレイすることが可能となる。
図18は、ユーザ端末100の表示部152に表示されるゲーム画面の一例を示す図である。図18に示すゲーム画面は、図4に示すステップS10の後の任意のタイミングにおいて、対戦進行部115によって表示される、活躍度の集計画面620である。
集計画面620は、少なくとも、グループ内のユーザごとの活躍度を示す活躍度情報621を含む。さらに、集計画面620は、活躍度の多い順を示す順位情報622を含んでいてもよい。また、集計画面620において、ユーザ名、活躍度情報621および順位情報622は、活躍度の多いユーザから順に並べて配置されてもよい。これにより、ユーザは、協力対戦の結果、自身を含む各グループ員がどれだけ活躍度のポイントを獲得できたのかを知ることができるとともに、グループ内での、活躍度における自身の順位を知ることができる。
<活躍度について>
対戦進行部115は、図4に示すステップS10において、協力対戦の試合内容に応じて、各グループ員の活躍度を算出する。活躍度とは、協力チームにとって有利な結果をもたらすことに各ユーザがどのくらい貢献したのかを数値で示したものである。具体的には、対戦進行部115は、各ユーザが操作した選手が、その試合で、どのように活躍したのかに応じて活躍度を算出する。本実施形態では、活躍度は、一例として、以下のように算出される。
例えば、対戦進行部115は、選手の試合成績に応じて、ユーザが所有する選手ごとに活躍度を算出し、各選手の活躍度の合計をユーザの活躍度として算出してもよい。例えば、野手であれば、その試合での安打数、打点、打率、盗塁成功回数、などに応じて、野手の活躍度を算出してもよい。さらに、対戦進行部115は、ヒット1本につき所定の点数を加点、ホームラン1本につき所定の点数を加点、というように、野手が試合中にもたらした打撃結果に応じて活躍度を加点方式にて算出してもよい。さらに、対戦進行部115は、三振1回につき所定の点数を減点、ダブルプレー1回につき所定の点数を減点、というように、活躍度の算出に、減点方式を採用してもよい。つまり、選手ごとの活躍度は、マイナスの値をとることもあり得、そのような各選手の活躍度を合計して得られる、ユーザの最終的な活躍度も、マイナスの値をとることがあり得る。
<報酬について>
対戦進行部115は、図4に示すステップS11において、試合の勝敗と、各ユーザの活躍度とに応じて、ユーザに付与する報酬を決定する。本実施形態では、一例として、報酬は、ゲーム上で利用可能なゲーム内価値である。報酬としてのゲーム内価値は、一例として、ポイントである。該ポイントは、本野球ゲームでは、具体的には、選手のカードが封入されたパックを開封可能にする条件を、一定量貯めることで満足させる開封ポイントである。つまり、本野球ゲームは、開封ポイントがより多く獲得されれば、それだけ早く開封ポイントが貯まり、早くパックが開封可能になる、そして、パックが早く多く開封されれば、それだけ多くの選手のカードがユーザに獲得されるという仕様である。
なお、報酬としてのポイントは、上述の例に限らず、ユーザのレベルを上げるための経験値であってもよいし、ゲーム上で様々なアイテムと交換できる仮想通貨であってもよいし、その他、ゲームを有利に進めるために利用されるゲーム内価値として機能するものであってもよい。
対戦進行部115は、協力対戦をプレイしたことの報酬として、上述の開封ポイントをユーザに付与する。対戦進行部115は、開封ポイントを、以下のようにして、ユーザごとに決定する。以下では、ユーザに最終的に付与される開封ポイントおよびその量を、「報酬ポイント」と称する。
本実施形態では、報酬ポイントは、一例として、基礎ポイントとボーナスポイントとで構成される。基礎ポイントは、各ユーザに一律に付与されるポイントであり、ユーザごとに変動しないポイントである。
一例として、対戦進行部115は、基礎ポイントを、協力チームによる試合の勝敗に基づいて決定する。例えば、対戦進行部115は、協力チームが相手チームに勝利した場合に、最も多くなるように、相手チームに敗北した場合に、最も少なくなるように、基礎ポイントを決定する。対戦進行部115は、協力チームが相手チームと引き分けた場合には、上述の各場合の間の量となるように基礎ポイントを決定してもよい。
本実施形態では、基礎ポイントは、協力チームが敗北した場合でも、マイナスの値をとらないものとすることが好ましい。これにより、プレイ報酬として、マイナスの報酬ポイントがユーザに付与されることは起こらない。したがって、協力対戦のプレイによって、これまで貯めた開封ポイントが減らされるというリスクを、ユーザに負わせないようにすることができる。ユーザのプレイ意欲が削がれる要因となるリスクが排除され、むしろ、プレイすれば開封ポイントが増えることを保証できるので、協力対戦をプレイする動機付けを維持および強化することができる。
ボーナスポイントは、試合におけるユーザごとの貢献に応じて、内容が良ければ、ユーザごとに加算されるポイントである。対戦進行部115は、一例として、ユーザごとに算出された活躍度に基づいて、ユーザごとのボーナスポイントを決定する。本実施形態では、対戦進行部115は、ボーナスポイントがマイナスの値をとらないように、該ボーナスポイントを決定することが好ましい。これにより、上述のリスクを排除し、協力対戦をプレイする動機付けを維持および強化することができる。
本実施形態では、一例として、対戦進行部115は、活躍度と順位ボーナスとの合計をボーナスポイントとして決定する。対戦進行部115は、活躍度がマイナスの値を取ることから、合計がマイナスになった場合には、ボーナスポイントを0と決定することが好ましい。
対戦進行部115は、ユーザごとの活躍度を算出した後、活躍度に応じてユーザを順位付けする。本実施形態では、対戦進行部115は、活躍度の数値が多い順に、各ユーザに、1位、2位、および、3位の順位を付ける。そして、対戦進行部115は、各ユーザに付与された順位に応じて順位ボーナスを決定する。具体的には、1位のユーザには最も多い順位ボーナスを、2位のユーザにはその次に多い順位ボーナスを、3位のユーザには最も少ない順位ボーナスを、それぞれ関連付ける。
対戦進行部115は、ユーザごとに順位ボーナスと活躍度とを合計して、ユーザごとのボーナスポイントを決定する。最後に、対戦進行部115は、基礎ポイントに対して、ユーザごとのボーナスポイントを加算して、ユーザごとに報酬ポイントを決定する。
上述の構成によれば、対戦進行部115は、協力対戦における試合に勝利すると最も多くの報酬ポイントを各ユーザに一律に配布する。一方で、対戦進行部115は、ユーザが選手をうまく操作して試合で活躍させるほど、多くの活躍度をユーザに獲得させ、延いては、多くの報酬ポイントを該ユーザに獲得させる。
ユーザは、自身の選手を活躍させるほど、また、勝利を重ねるほど、開封ポイントを多く貯めて条件をより早く満たし、パックを開封して選手のカードを入手することができる。これにより、ユーザは、パックを開封して選手のカードを取り出したいために、より多くの開封ポイントを得ることを目標とし、試合で活躍および試合に勝利しようという強い意欲を持って、協力プレイに取り組むことができる。
その上、活躍および勝利への強い意欲をユーザに持たせることは、協力チーム全体にとってプラスに作用し、グループ内のユーザ同士の利害を一致させることができる。結果として、ユーザ同士が反目して、ゲームの興趣性が損なわれることを回避できる。また、貢献したユーザほど、多くの報酬を貰えるという仕組みは、ユーザからの理解を得やすく、貢献と報酬との相関という観点で公平であり、グループ内で、ユーザから不平不満が生じることを回避できる。
<本実施形態が解決しようとする課題、および、効果について>
上述のとおり、通信協力対戦ゲームは、公平性を保つ上で、実現することが難しかった。例えば、野球、ソフトボール、および、その他様々な競技の団体戦等、所定の動作を行う機会が、1または複数の選手に順番に与えられて進行するチーム競技を題材とした対戦ゲームにおいて、通信協力対戦ゲームを実現することは特に困難であった。
とりわけ、動作を行う順番が定められているような対戦ゲームでは、チーム編成および出番の順番などを決定する方法、対戦進行中のリアルタイムの情報を共有する方法、および、報酬を公平に配分する方法などが確立しておらず、興趣性の高い通信協力対戦ゲームを実現することが困難であった。
その上、ゲームをプレイする過程でユーザが育ててきた思い入れのある選手を、各ユーザが持ち寄って、協力対戦に参加させようとする場合、参加機会または報酬など、ユーザ間の公平性を保つことが非常に困難なものとなる。
これらの課題に対して、本実施形態に係るゲームシステム1によれば、対戦進行部115は、出番が回ってくる回数を各ユーザに平等に与えながらも、出番が多くなる可能性が少しでも高い先の順番を、レーティングが高いユーザに割り当てる。これにより、ユーザの強さと出番の多さとの相関という観点で、公平に、各ユーザに出場機会を与えることができる。
また、本実施形態に係るゲームシステム1によれば、対戦進行部115は、報酬の一部を、各ユーザに公平に分配しながらも、報酬の残りの部分については、貢献度が高いユーザほど多くの報酬を獲得できるように付与する。これにより、貢献と報酬との相関という観点で、公平に、各ユーザに報酬を付与することができる。
また、ゲームをプレイすることにより、報酬として、選手のカード、選手のカードが入ったパック、または、選手を強化することができるアイテムなどを獲得することができるようなゲームでは、強い選手のカードを集めることが動機付けとなって、ゲームがユーザによってプレイされる。したがって、ユーザが目的のカードを獲得したり、強化したりして満足すると、ゲームをプレイする意欲が減退して徐々にゲームがプレイされなくなる虞がある。ユーザに長くプレイさせることを意図して開発されたゲームにおいては、ユーザがゲームに飽きるという問題にいかに対処するかは重要である。
この課題に対して、本実施形態に係るゲームシステム1によれば、対戦進行部115は、ユーザのデッキから、協力チームに編成する選手をランダムに選出する。デッキからは、いずれのポジションの選手も選出される可能性があり、ユーザは、任意のポジションの選手を拠出することができない。これにより、ユーザにおいて、どの選手が選出されてもよいように、すべてのポジションにおいて偏りなく、強い選手を集めたり、選手を強化したりする意欲を育むことができる。結果として、プレイの動機付けを維持またはより一層強化することが可能となる。
〔実施形態2〕
複数のユーザが協力して、相手チームと対戦する通信協力対戦ゲームにおいて、協力し合うユーザをいかにグルーピングするかは、ゲームの興趣性を向上させるという観点から非常に重要な問題である。ユーザの対戦ゲームにおける強さに大きな格差があると、強いユーザからも弱いユーザからも不満が出る可能性がある。強いユーザは、弱いユーザと組まされて、よい結果を思うように出せないと考え、協力対戦への興味を失う可能性がある。一方、弱いユーザは、強いユーザと組まされると、自分の実力以上によい結果が得られる可能性があるが、その結果に対する自分の貢献度が低いと、協力対戦で達成感を得ることができず、結果として、協力対戦の興趣性が損なわれる可能性がある。
このような問題は、所定の動作を行う機会が、1または複数の選手に順番に与えられて進行する対戦ゲームに限らず、複数の選手から成るチーム同士が対戦する対戦ゲーム全般において生じる問題である。
そこで、本実施形態では、サーバ200は、ゲームプログラム131に基づいて、以下の各ステップを実行する。前提として、ゲームプログラム131に基づくゲームは、複数の選手から成るチーム同士が対戦する対戦ゲームであり、該対戦ゲームは、複数のユーザが協力して操作する協力チームが相手チームと対戦する協力対戦の要素を少なくとも含む。また、サーバ200のメモリ21は、ゲームプログラム131に基づくゲームをプレイするユーザのそれぞれが所有するデジタルコンテンツとしての選手(のカード)をユーザごとに記憶するように構成されている。概して、本野球ゲームのゲームプログラム131をサーバ200が実行する方法は、協力対戦で協力し合う複数のユーザを、各ユーザの対戦ゲームにおけるプレイ履歴、または、各ユーザが所有する選手の少なくともいずれかに基づいてグルーピングするステップと、グルーピングされた複数のユーザのそれぞれが所有する選手を1人以上ずつ含む協力チームを生成するステップと、協力チームと相手チームとの対戦を進行させるステップと、を含む。対戦を進行させるステップでは、対戦における選手の動作を、該選手を所有するユーザが、該ユーザが操作するコンピュータに対して実施した入力操作にしたがって決定する。
具体的には、図4に示すステップS2において、ユーザ端末100の対戦進行部115によって送信されたエントリ要求を、サーバ200の対戦支援部211が受け付ける。
対戦支援部211は、エントリ要求を複数のユーザ端末100から受け付けて、3人のユーザを1つのグループにグルーピングする(グルーピングするステップ)。対戦支援部211は、本野球ゲームのユーザのプレイ履歴、および、各ユーザが所有する選手の少なくともいずれかに基づいて、3人のユーザをグルーピングする。
エントリ要求には、少なくとも、ユーザIDが含まれており、対戦支援部211は、該ユーザIDに基づいて、要求元のユーザのプレイ履歴および該ユーザが所有する選手の情報を記憶部220から読み出すことができる。プレイ履歴は、例えば、本野球ゲームの対人対戦および協力対戦の少なくとも一方におけるユーザの対戦履歴である。
対戦履歴とは、例えば、各ユーザに付与されているレーティングである。対戦支援部211は、付与されているレーティングが所定範囲内で近いユーザ同士をグルーピングする。
対戦履歴とは、例えば、対戦(協力対戦、対人対戦またはその両方の対戦)をユーザがプレイした回数、その勝敗数、および、該勝敗数に基づいて求められる勝率のうちの少なくともいずれか1つを示す数値であってもよい。対戦支援部211は、前記数値が所定の条件を満たすユーザ同士をグルーピングする。例えば、対戦のプレイ回数が所定回数を超えたユーザは、ある程度の強さを備えており、そのようなユーザ層では、強さにばらつきがないと推測される。そこで、一例として、対戦支援部211は、対戦のプレイ回数が所定回数を超えたユーザ同士をグルーピングしてもよい。
あるいは、対戦支援部211は、各ユーザが所有する選手に基づいてユーザをグルーピングしてもよい。具体的には、対戦支援部211は、各ユーザが所有する選手のうち、デッキに組み入れられている選手の強さが、所定範囲内で近いユーザ同士をグルーピングしてもよい。
デッキに組み入れられている選手の強さは、例えば、上述の「デッキ総合パラメータ」であり、デッキ(チーム)の強さを意味する。上述したとおり、各選手には、肩力、走力、打撃力などの身体的な能力に関するスキル別身体パラメータとは別に、選手の総合的な強さを数値化した総合パラメータが設定されている。デッキ総合パラメータは、上述したとおり、デッキに組み入れられた各選手の総合パラメータを基本的に合計することにより求められる。対戦支援部211は、エントリ要求に含まれている、ユーザのデッキ総合パラメータに基づいて、デッキ総合パラメータの値が所定範囲内で近いユーザ同士をグルーピングしてもよい。
あるいは、デッキに組み入れられている選手の強さは、例えば、デッキに組み入れられている選手のカードのうち、高い等級の希少度が設定されているカードの枚数によって測られてもよい。具体的には、対戦支援部211は、デッキに組み入れられている「S」の希少度のカードの枚数が近いユーザ同士をグルーピングしてもよい。
これにより、対戦における強さが近いユーザ同士をグルーピングすることができるので、強さのバランスが悪い(強さの格差が大きい)グループが形成されることを防止することができる。また、互いに強さが近いユーザ同士が協力し合って相手チームと戦うことができるので、ユーザは、一体感、達成感などを味わいながら協力対戦を楽しむことができる。結果として、興趣性の高い通信協力対戦ゲームを実現することができる。
対戦支援部211が実行する、対戦を進行させるステップとは、具体的には、対戦を進行させる各ユーザ端末100を支援するステップである。支援するステップにおいて、例えば、対戦支援部211は、各ユーザ端末100の通信を仲介し、対戦の進行上の同期を制御して、各ユーザ端末100が対戦を進行させることを支援する。より詳細には、対戦における選手の動作を決定するために、該選手を所有するユーザが、該ユーザが操作するユーザ端末100に対して入力操作を実施する。この場合、対戦支援部211は、該入力操作に基づいて決定された上述の選手の動作を示す動作結果(投球結果D1または打撃結果D2)を、該ユーザ端末100から受信し、その他のグループ員のユーザ端末100に配信する。これにより、支援するステップにおいて、対戦における選手の動作を、該選手を所有するユーザが、該ユーザが操作するユーザ端末100に対して実施した入力操作にしたがって決定することが実現される。
〔変形例〕
図4に示す一連の処理のうち、協力チームを生成する処理に係る各ステップS4〜S6は、サーバ200の対戦支援部211が実行してもよい。この場合、対戦支援部211は、エントリ要求を複数のユーザ端末100から受け付けて、3人のユーザをグルーピングする。グルーピングが成立した場合、ステップS4において、対戦支援部211は、各ユーザのエントリ要求に含まれている、レーティングおよびデッキ情報を取得する。そして、ステップS5において、3人のユーザのレーティングおよびデッキ情報に基づいて協力チームを生成する。すなわち、図11に示す一連の処理を実行する。ステップS111において、対戦支援部211は、協力チームに係るオーダー情報を生成すると、図4に示すステップS6において、生成したオーダー情報を、グルーピングした各ユーザの各ユーザ端末100に配信する。ここで、対戦支援部211は、ユーザそれぞれのユーザ端末100に対して、そのユーザ以外の他のグループ員のレーティングおよびデッキ情報も配信する。
また、対戦支援部211は、メインユーザ端末100Aの対戦進行部115に代わり、図4に示す各ステップS10〜S12を実行してもよい。
上述の構成によれば、グループの中の一部のユーザ端末100(例えば、メインユーザ端末100A)における処理の負荷を軽減し、ユーザ端末100間の処理負荷の偏りを防ぐことができる。また、サーバ200を介してのユーザ端末100間のやりとりをできるだけ減らし、通信エラーのリスクを低減させることができる。
〔ソフトウェアによる実現例〕
制御部210の制御ブロック(特に、対戦支援部211)、ならびに、制御部110の制御ブロック(特に、操作受付部111、表示制御部112、UI制御部113、アニメーション生成部114および対戦進行部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つに、デジタルコンテンツとしての選手であって、複数のユーザのそれぞれが所有する選手の中からそれぞれ1人以上選出された選手からなる協力チームを生成するステップ(S5)と、前記協力チームと、該協力チームと対戦する相手チームとの対戦を進行させるステップ(S8)と、を実行させる。前記対戦を進行させるステップでは、前記順番が回ってきた選手の動作を、該選手を所有するユーザが、該ユーザが操作するコンピュータに対して実施した入力操作にしたがって決定する。これにより、興趣性の高い通信協力対戦ゲームを実現することができるという効果を奏する。
(項目2) (項目1)において、前記生成するステップでは、前記協力チームに含める選手を、各ユーザが所有する複数の選手の中からランダムに選出してもよい。
(項目3) (項目2)において、ユーザが所有する選手からなるユーザの固有チーム、および、前記協力チームは、デッキによって定義され、該デッキは、チームを構成する役割ごとに所定数の枠を有し、該デッキにおいて前記枠に前記選手を紐付けることによって該選手の役割が設定されるものであり、前記生成するステップでは、前記協力チームのデッキにおいて、前記ユーザのデッキにおいて設定されている役割と同じ役割が選手に設定されるように、かつ、前記協力チームを構成する役割のすべての枠に選手が紐付けられるように、各ユーザのデッキから選手を選出してもよい。
(項目4) (項目3)において、前記対戦ゲームにおいて進行される対戦は、野球の試合であり、前記固有チームを定義するデッキは、野手のスターティングメンバーを構成するために必要な枠を有する野手デッキを含み、前記生成するステップでは、前記協力チームにおける野手のスターティングメンバーを、各ユーザの各野手デッキにおいて各選手に設定されている野手のポジションが、前記協力チームのデッキにおいて重複しないように、各野手デッキから選出することが好ましい。
(項目5) (項目4)において、前記固有チームを定義するデッキは、先発投手の枠を所定数有する先発投手デッキと、リリーフ投手の枠を所定数有するリリーフ投手デッキとを含み、前記生成するステップでは、前記協力チームにおける先発投手を、各ユーザの前記先発投手デッキのいずれか1つから1人選出し、前記協力チームにおけるリリーフ投手を、各ユーザの前記リリーフ投手デッキから1または複数選出することが好ましい。
(項目6) (項目1)から(項目5)までのいずれか1項目において、前記対戦ゲームは、前記協力チームが前記相手チームと対戦する第1のゲーム要素に加えて、ユーザが操作するチームと他のユーザが操作するチームとが対戦する第2のゲーム要素をさらに含み、各ユーザには、前記第2のゲーム要素における対戦の結果に基づいて増減させる評価値が設定されており、前記生成するステップでは、前記所定の動作を行う出番が、各ユーザが所有する選手の間で巡回するように、かつ、設定されている前記評価値に基づいて、前記所定の動作を行う順番を決定してもよい。
(項目7) (項目6)において、前記対戦ゲームにおいて進行される対戦は野球の試合であり、前記生成するステップでは、前記評価値が高いユーザの選手の出番が先になるように打順を決定してもよい。
(項目8) (項目6)または(項目7)において、前記生成するステップでは、さらに、各選手に紐付けられている属性を考慮して前記順番を決定し、前記属性は、前記選手の能力を表すパラメータ、および、前記選手に設定された前記チームにおける役割の少なくともいずれか一方を含んでいてもよい。
(項目9) (項目8)において、前記生成するステップでは、前記協力チームにおける先発投手に1番の登板順を割り当て、前記評価値に基づいて、前記協力チームにおける複数のリリーフ投手に2番以降の登板順を割り当ててもよい。
(項目10) (項目1)から(項目9)までのいずれか1項目において、前記対戦を進行させるステップでは、前記対戦が進行する仮想空間に、前記協力チームの各選手と、前記相手チームの各選手と、仮想カメラとを配置し、配置された仮想カメラの位置と向きとに基づいて、前記ユーザに視認させる視界領域を設定し、前記視界領域に基づいて生成された視界画像を、前記ユーザが操作するコンピュータの表示部に表示し、前記仮想カメラは、前記仮想空間に配置された、少なくとも前記ユーザが所有するいずれかの選手の位置と向きとに基づいて、該仮想空間に配置されてもよい。
(項目11) ゲームプログラム(131)について説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ(20)およびメモリ(21)を備えるコンピュータ(サーバ200)により実行される。前記ゲームプログラムに基づくゲームは、複数の選手から成るチーム同士が対戦する対戦ゲームであり、該対戦ゲームは、複数のユーザが協力して操作する協力チームが相手チームと対戦する第1のゲーム要素を少なくとも含み、前記メモリは、前記ゲームプログラムに基づくゲームをプレイするユーザのそれぞれが所有するデジタルコンテンツとしての選手をユーザごとに記憶するように構成されており、前記ゲームプログラムは、前記プロセッサに、前記対戦で協力し合う複数のユーザを、各ユーザの前記対戦ゲームにおけるプレイ履歴、および、各ユーザが所有する選手の少なくともいずれか一方に基づいてグルーピングするステップと、グルーピングされた前記複数のユーザのそれぞれが所有する選手の中からそれぞれ1人以上選出された選手からなる協力チームを生成するステップ(S5)と、前記協力チームと前記相手チームとの対戦を進行させるステップと、を実行させ、前記対戦を進行させるステップでは、前記対戦における選手の動作を、該選手を所有するユーザが、該ユーザが操作するコンピュータに対して実施した入力操作にしたがって決定する。これにより、興趣性の高い通信協力対戦ゲームを実現することができるという効果を奏する。
(項目12) (項目11)において、前記対戦ゲームは、ユーザが操作するチームと他のユーザが操作するチームとが対戦する第2のゲーム要素をさらに含み、前記プレイ履歴は、前記第1のゲーム要素および前記第2のゲーム要素の少なくともいずれか一方における対戦の対戦履歴であってもよい。
(項目13) (項目12)において、前記対戦履歴は、前記第2のゲーム要素において、各ユーザに設定され、対戦の結果に基づいて増減される評価値であり、前記グルーピングするステップでは、前記評価値が近いユーザ同士をグルーピングしてもよい。
(項目14) (項目12)において、前記対戦履歴は、前記対戦をプレイした回数、前記対戦の勝敗数、および、前記対戦の勝率のうちの少なくともいずれか1つを示す数値であり、前記グルーピングするステップでは、前記数値が所定の条件を満たすユーザ同士をグルーピングしてもよい。
(項目15) (項目11)から(項目14)までのいずれか1項目において、前記グルーピングするステップでは、各ユーザが所有する選手のうち、該ユーザのデッキに組み入れられている1以上の選手の強さが近いユーザ同士をグルーピングしてもよい。
(項目16) (項目15)において、前記グルーピングするステップでは、前記デッキに組み入れられている1以上の選手の強さに基づいて算出される、前記デッキの強さを意味するデッキ総合パラメータの値が近いユーザ同士をグルーピングしてもよい。
(項目17) ゲームプログラムを実行する方法を説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ(10、20)およびメモリ(11、21)を備えるコンピュータにより実行される。該方法は、プロセッサが(項目1)に記載の各ステップを実行する方法である。(項目17)に係る方法は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。
(項目18) 情報処理装置を説明した。本開示のある局面によると、該情報処理装置は、(項目1)に係るゲームプログラムを記憶する記憶部(120、220)と、該ゲームプログラムを実行することにより、情報処理装置(ユーザ端末100、サーバ200)の動作を制御する制御部(110、210)とを備える。(項目18)に係る情報処理装置は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。
(項目19) ゲームプログラムを実行する方法を説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ(20)およびメモリ(21)を備えるサーバ(200)により実行される。該方法は、プロセッサが(項目11)に記載の各ステップを実行する方法である。(項目19)に係る方法は、(項目11)に係るゲームプログラムと同様の作用効果を奏する。
(項目20) 情報処理装置を説明した。本開示のある局面によると、該情報処理装置は、(項目11)に係るゲームプログラムを記憶する記憶部(220)と、該ゲームプログラムを実行することにより、情報処理装置(サーバ200)の動作を制御する制御部(210)とを備える。(項目20)に係る情報処理装置は、(項目11)に係るゲームプログラムと同様の作用効果を奏する。