本開示に係るゲームシステムは、複数のユーザにゲームを提供するためのシステムである。以下、ゲームシステムについて図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
<ゲームシステム1のハードウェア構成>
図1は、ゲームシステム1のハードウェア構成を示す図である。ゲームシステム1は図示の通り、複数のユーザ端末100と、サーバ200とを含む。各ユーザ端末100は、サーバ200とネットワーク2を介して接続する。ネットワーク2は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution)、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が挙げられる。
サーバ200(コンピュータ、情報処理装置)は、ワークステーションまたはパーソナルコンピュータ等の汎用コンピュータであってよい。サーバ200は、プロセッサ20と、メモリ21と、ストレージ22と、通信IF23と、入出力IF24とを備える。サーバ200が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
ユーザ端末100(コンピュータ、情報処理装置)は、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。ユーザ端末100は、ゲームプレイに適したゲーム装置であってもよい。ユーザ端末100は図示の通り、プロセッサ10と、メモリ11と、ストレージ12と、通信インターフェース(IF)13と、入出力IF14と、タッチスクリーン15(表示部)と、カメラ17と、測距センサ18とを備える。ユーザ端末100が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、ユーザ端末100は、タッチスクリーン15に代えて、または、加えて、ユーザ端末100本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF14を備えていてもよい。
また、図1に示すように、ユーザ端末100は、1つ以上のコントローラ1020と通信可能に構成されることとしてもよい。コントローラ1020は、例えば、Bluetooth(登録商標)等の通信規格に従って、ユーザ端末100と通信を確立する。コントローラ1020は、1つ以上のボタン等を有していてもよく、該ボタン等に対するユーザの入力操作に基づく出力値をユーザ端末100へ送信する。また、コントローラ1020は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値をユーザ端末100へ送信する。
なお、ユーザ端末100がカメラ17および測距センサ18を備えることに代えて、または、加えて、コントローラ1020がカメラ17および測距センサ18を有していてもよい。
ユーザ端末100は、例えばゲーム開始時に、コントローラ1020を使用するユーザに、該ユーザの名前またはログインID等のユーザ識別情報を、該コントローラ1020を介して入力させることが望ましい。これにより、ユーザ端末100は、コントローラ1020とユーザとを紐付けることが可能となり、受信した出力値の送信元(コントローラ1020)に基づいて、該出力値がどのユーザのものであるかを特定することができる。
ユーザ端末100が複数のコントローラ1020と通信する場合、各コントローラ1020を各ユーザが把持することで、ネットワーク2を介してサーバ200などの他の装置と通信せずに、該1台のユーザ端末100でマルチプレイを実現することができる。また、各ユーザ端末100が無線LAN(Local Area Network)規格等の無線規格により互いに通信接続する(サーバ200を介さずに通信接続する)ことで、複数台のユーザ端末100によりローカルでマルチプレイを実現することもできる。1台のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、ユーザ端末100は、さらに、サーバ200が備える後述する種々の機能の少なくとも一部を備えていてもよい。また、複数のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、複数のユーザ端末100は、サーバ200が備える後述する種々の機能を分散して備えていてもよい。
なお、ローカルで上述のマルチプレイを実現する場合であっても、ユーザ端末100はサーバ200と通信を行ってもよい。例えば、あるゲームにおける成績または勝敗等のプレイ結果を示す情報と、ユーザ識別情報とを対応付けてサーバ200に送信してもよい。
また、コントローラ1020は、ユーザ端末100に着脱可能な構成であるとしてもよい。この場合、ユーザ端末100の筐体における少なくともいずれかの面に、コントローラ1020との結合部が設けられていてもよい。該結合部を介して有線によりユーザ端末100とコントローラ1020とが結合している場合は、ユーザ端末100とコントローラ1020とは、有線を介して信号を送受信する。
図1に示すように、ユーザ端末100は、外部のメモリカード等の記憶媒体1030の装着を、入出力IF14を介して受け付けてもよい。これにより、ユーザ端末100は、記憶媒体1030に記録されるプログラム及びデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、例えばゲームプログラムである。
ユーザ端末100は、サーバ200等の外部の装置と通信することにより取得したゲームプログラムをユーザ端末100のメモリ11に記憶してもよいし、記憶媒体1030から読み込むことにより取得したゲームプログラムをメモリ11に記憶してもよい。
以上で説明したとおり、ユーザ端末100は、該ユーザ端末100に対して情報を入力する機構の一例として、通信IF13、入出力IF14、タッチスクリーン15、カメラ17、および、測距センサ18を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
例えば、操作部が、カメラ17および測距センサ18の少なくともいずれか一方で構成される場合、該操作部が、ユーザ端末100の近傍の物体1010を検出し、当該物体の検出結果から入力操作を特定する。一例として、物体1010としてのユーザの手、予め定められた形状のマーカーなどが検出され、検出結果として得られた物体1010の色、形状、動き、または、種類などに基づいて入力操作が特定される。より具体的には、ユーザ端末100は、カメラ17の撮影画像からユーザの手が検出された場合、該撮影画像に基づき検出されるジェスチャ(ユーザの手の一連の動き)を、ユーザの入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
あるいは、操作部がタッチスクリーン15で構成される場合、ユーザ端末100は、タッチスクリーン15の入力部151に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF13で構成される場合、ユーザ端末100は、コントローラ1020から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF14で構成される場合、該入出力IF14と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
<ゲーム概要>
ゲームシステム1は、ゲームプログラムに基づいて、各ユーザが操作する各ユーザ端末100が通信して、現実世界の試合と同一種目の試合を模擬した対戦を進行させる通信対人対戦ゲームを実行するためのシステムである。
ゲームシステム1は、現実世界の試合と同一種目の試合を模擬したジャンルであれば、特定のジャンルに限らず、あらゆるジャンルのゲームを実行するためのシステムであってもよい。例えば、テニス、卓球、ドッジボール、野球、サッカーおよびホッケーなどのスポーツを題材としたゲーム、パズルゲーム、クイズゲーム、RPG、アドベンチャーゲーム、シューティングゲーム、シミュレーションゲーム、育成ゲーム、ならびに、アクションゲームなどであってもよい。
ゲームシステム1は、一例として、通信対人対戦ゲームとして、野球の試合を進行させる、通信対人対戦型の野球ゲーム(以下、本ゲーム、本野球ゲームと称することがある)を実行する。ただし、ゲームシステム1が実行する通信対人対戦ゲームは、野球以外の種目を模擬したものであってもよい。また、ゲームシステム1が実行する通信対人対戦ゲームは、野球のようにチーム同士が対戦する種目に限らず、個人同士が対戦する種目を模擬したものであってもよい。
ゲームシステム1が実行する野球ゲームは、対戦パートと、速報パートとを含む。対戦パートは、ユーザと他のユーザとを、現実世界の試合と同一種目の試合を模擬した試合において対戦させるパートである。速報パートは、現実世界の試合の内容を報知するパートである。
対戦パートでは、サーバ200(情報処理装置)を介して通信する第1のユーザ端末100と第2のユーザ端末100とによって、それぞれのチームが操作される。チームは、1または複数のオブジェクトを、ユーザがデッキに組み入れることにより生成される。オブジェクトは、本ゲームにおいて、対戦の進行に何らかの作用を及ぼすデジタルデータである。1以上のオブジェクトによって構成された各ユーザのデッキの強さが、少なくとも、対戦の進行に作用する。オブジェクトは、例えば、キャラクタであり、キャラクタは、例えば、野球の試合に参加して相手チームの選手と対決する野球の選手である。本ゲームでは、属性として、選手には、そのキャラクタが所属する球団を示す「所属球団」が設定されている。
対戦パートは、1イニングにつき、表と裏でチームの攻守が入れ替わりつつ進行する。以下では、あるイニングの表または裏において、守備側のチームを操作するユーザ端末100と、攻撃側のユーザ端末100とを互いに区別する必要がある場合、前者を投球側ユーザ端末100A、後者を打撃側ユーザ端末100Bと称する。両者を区別する必要がない場合には、単に、ユーザ端末100と称する。投球側ユーザ端末100Aのユーザを、投球側ユーザ、打撃側ユーザ端末100Bのユーザを、打撃側ユーザと称する。ただし、両ユーザを特に区別する必要がない場合、および、その区別が明らかな場合には、単にユーザと称する。投球側ユーザは、投球側ユーザ端末100Aを用いて、投手キャラクタによる投球を操作し、攻撃側ユーザは、打撃側ユーザ端末100Bを用いて、打者キャラクタによる打撃を操作する。
投球側ユーザ端末100Aは、投球側ユーザから受け付けた投球操作に応じて投球結果を決定し、該投球結果を含むデータ(図1に示す投球結果D1)を生成し、サーバ200に送信する。投球結果D1は、サーバ200を介して、対戦相手の打撃側ユーザ端末100Bに送信される。投球操作とは、投球側ユーザが、投手キャラクタに投球させるために、投球側ユーザ端末100Aの入力部151に対して実施する操作のことである。
打撃側ユーザ端末100Bは、打撃側ユーザから受け付けた打撃操作に応じて打撃結果を決定し、該打撃結果を含むデータ(図1に示す打撃結果D2)を生成し、サーバ200に送信する。打撃結果D2は、サーバ200を介して、対戦相手の投球側ユーザ端末100Aに送信される。打撃操作とは、打撃側ユーザが、打者キャラクタにボールを打撃させるために、打撃側ユーザ端末100Bの入力部151に対して実施する操作のことである。
対戦パートにおいて、ユーザは、自身でキャラクタを制御することを希望しない場合に、ユーザ端末100を操作して、サーバ200に対してその旨を通知することができる。サーバ200は、このような通知をユーザ端末100から受信すると、ゲームプログラムにしたがって、進行している対戦に関わる各種情報に基づいて、該キャラクタの動作結果(投球結果または打撃結果)を決定する。そして、決定した動作結果を対戦相手のユーザ端末100に送信する。すなわち、サーバ200は、ユーザ端末100に代わり、該キャラクタを制御する。
<各装置のハードウェア構成要素>
プロセッサ10は、ユーザ端末100全体の動作を制御する。プロセッサ20は、サーバ200全体の動作を制御する。プロセッサ10および20は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。
プロセッサ10は後述するストレージ12からプログラムを読み出し、後述するメモリ11に展開する。プロセッサ20は後述するストレージ22からプログラムを読み出し、後述するメモリ21に展開する。プロセッサ10およびプロセッサ20は展開したプログラムを実行する。
メモリ11および21は主記憶装置である。メモリ11および21は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置で構成される。メモリ11は、プロセッサ10が後述するストレージ12から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ10に作業領域を提供する。メモリ11は、プロセッサ10がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ21は、プロセッサ20が後述するストレージ22から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ20に作業領域を提供する。メモリ21は、プロセッサ20がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
本実施形態においてプログラムとは、ゲームをユーザ端末100により実現するためのゲームプログラムであってもよい。あるいは、該プログラムは、該ゲームをユーザ端末100とサーバ200との協働により実現するためのゲームプログラムであってもよい。なお、ユーザ端末100とサーバ200との協働により実現されるゲームは、一例として、ユーザ端末100において起動されたブラウザ上で実行されるゲームであってもよい。あるいは、該プログラムは、該ゲームを複数のユーザ端末100の協働により実現するためのゲームプログラムであってもよい。また、各種データとは、ユーザ情報およびゲーム情報などのゲームに関するデータ、ならびに、ユーザ端末100とサーバ200との間または複数のユーザ端末100間で送受信する指示または通知を含んでいる。
ストレージ12および22は補助記憶装置である。ストレージ12および22は、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置で構成される。ストレージ12およびストレージ22には、ゲームに関する各種データが格納される。
通信IF13は、ユーザ端末100における各種データの送受信を制御する。通信IF23は、サーバ200における各種データの送受信を制御する。通信IF13および23は例えば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。
入出力IF14は、ユーザ端末100がデータの入力を受け付けるためのインターフェースであり、またユーザ端末100がデータを出力するためのインターフェースである。入出力IF14は、USB(Universal Serial Bus)等を介してデータの入出力を行ってもよい。入出力IF14は、例えば、ユーザ端末100の物理ボタン、カメラ、マイク、または、スピーカ等を含み得る。サーバ200の入出力IF24は、サーバ200がデータの入力を受け付けるためのインターフェースであり、またサーバ200がデータを出力するためのインターフェースである。入出力IF24は、例えば、マウスまたはキーボード等の情報入力機器である入力部と、画像を表示出力する機器である表示部とを含み得る。
ユーザ端末100のタッチスクリーン15は、入力部151と表示部152とを組み合わせた電子部品である。入力部151は、例えばタッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部152は、例えば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。
入力部151は、入力面に対しユーザの操作(主にタッチ操作、スライド操作、スワイプ操作、およびタップ操作等の物理的接触操作)が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部151は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。
図示していないが、ユーザ端末100は、該ユーザ端末100の保持姿勢を特定するための1以上のセンサを備えていてもよい。このセンサは、例えば、加速度センサ、または、角速度センサ等であってもよい。ユーザ端末100がセンサを備えている場合、プロセッサ10は、センサの出力からユーザ端末100の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。例えば、プロセッサ10は、ユーザ端末100が縦向きに保持されているときには、縦長の画像を表示部152に表示させる縦画面表示としてもよい。一方、ユーザ端末100が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ10は、ユーザ端末100の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。
カメラ17は、イメージセンサ等を含み、レンズから入射する入射光を電気信号に変換することで撮影画像を生成する。
測距センサ18は、測定対象物までの距離を測定するセンサである。測距センサ18は、例えば、パルス変換した光を発する光源と、光を受ける受光素子とを含む。測距センサ18は、光源からの発光タイミングと、該光源から発せられた光が測定対象物にあたって反射されて生じる反射光の受光タイミングとにより、測定対象物までの距離を測定する。測距センサ18は、指向性を有する光を発する光源を有することとしてもよい。
ここで、ユーザ端末100が、カメラ17と測距センサ18とを用いて、ユーザ端末100の近傍の物体1010を検出した検出結果を、ユーザの入力操作として受け付ける例をさらに説明する。カメラ17および測距センサ18は、例えば、ユーザ端末100の筐体の側面に設けられてもよい。カメラ17の近傍に測距センサ18が設けられてもよい。カメラ17としては、例えば赤外線カメラを用いることができる。この場合、赤外線を照射する照明装置および可視光を遮断するフィルタ等が、カメラ17に設けられてもよい。これにより、屋外か屋内かにかかわらず、カメラ17の撮影画像に基づく物体の検出精度をいっそう向上させることができる。
プロセッサ10は、カメラ17の撮影画像に対して、例えば以下の(1)〜(5)に示す処理のうち1つ以上の処理を行ってもよい。(1)プロセッサ10は、カメラ17の撮影画像に対し画像認識処理を行うことで、該撮影画像にユーザの手が含まれているか否かを特定する。プロセッサ10は、上述の画像認識処理において採用する解析技術として、例えばパターンマッチング等の技術を用いてよい。(2)また、プロセッサ10は、ユーザの手の形状から、ユーザのジェスチャを検出する。プロセッサ10は、例えば、撮影画像から検出されるユーザの手の形状から、ユーザの指の本数(伸びている指の本数)を特定する。プロセッサ10はさらに、特定した指の本数から、ユーザが行ったジェスチャを特定する。例えば、プロセッサ10は、指の本数が5本である場合、ユーザが「パー」のジェスチャを行ったと判定する。また、プロセッサ10は、指の本数が0本である(指が検出されなかった)場合、ユーザが「グー」のジェスチャを行ったと判定する。また、プロセッサ10は、指の本数が2本である場合、ユーザが「チョキ」のジェスチャを行ったと判定する。(3)プロセッサ10は、カメラ17の撮影画像に対し、画像認識処理を行うことにより、ユーザの指が人差し指のみ立てた状態であるか、ユーザの指がはじくような動きをしたかを検出する。(4)プロセッサ10は、カメラ17の撮影画像の画像認識結果、および、測距センサ18の出力値等の少なくともいずれか1つに基づいて、ユーザ端末100の近傍の物体1010(ユーザの手など)とユーザ端末100との距離を検出する。例えば、プロセッサ10は、カメラ17の撮影画像から特定されるユーザの手の形状の大小により、ユーザの手がユーザ端末100の近傍(例えば所定値未満の距離)にあるのか、遠く(例えば所定値以上の距離)にあるのかを検出する。なお、撮影画像が動画の場合、プロセッサ10は、ユーザの手がユーザ端末100に接近しているのか遠ざかっているのかを検出してもよい。(5)カメラ17の撮影画像の画像認識結果等に基づいて、ユーザの手が検出されている状態で、ユーザ端末100とユーザの手との距離が変化していることが判明した場合、プロセッサ10は、ユーザが手をカメラ17の撮影方向において振っていると認識する。カメラ17の撮影範囲よりも指向性が強い測距センサ18において、物体が検出されたりされなかったりする場合に、プロセッサ10は、ユーザが手をカメラの撮影方向に直交する方向に振っていると認識する。
このように、プロセッサ10は、カメラ17の撮影画像に対する画像認識により、ユーザが手を握りこんでいるか否か(「グー」のジェスチャであるか、それ以外のジェスチャ(例えば「パー」)であるか)を検出する。また、プロセッサ10は、ユーザの手の形状とともに、ユーザがこの手をどのように移動させているかを検出する。また、プロセッサ10は、ユーザがこの手をユーザ端末100に対して接近させているのか遠ざけているのかを検出する。このような操作は、例えば、マウスまたはタッチパネルなどのポインティングデバイスを用いた操作に対応させることができる。ユーザ端末100は、例えば、ユーザの手の移動に応じて、タッチスクリーン15においてポインタを移動させ、ユーザのジェスチャ「グー」を検出する。この場合、ユーザ端末100は、ユーザが選択操作を継続中であると認識する。選択操作の継続とは、例えば、マウスがクリックされて押し込まれた状態が維持されること、または、タッチパネルに対してタッチダウン操作がなされた後タッチされた状態が維持されることに対応する。また、ユーザ端末100は、ユーザのジェスチャ「グー」が検出されている状態で、さらにユーザが手を移動させると、このような一連のジェスチャを、スワイプ操作(またはドラッグ操作)に対応する操作として認識することもできる。また、ユーザ端末100は、カメラ17の撮影画像によるユーザの手の検出結果に基づいて、ユーザが指をはじくようなジェスチャを検出した場合に、当該ジェスチャを、マウスのクリックまたはタッチパネルへのタップ操作に対応する操作として認識してもよい。
<ゲームシステム1の機能的構成>
図2は、ゲームシステム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、試合内容配信部212および投稿管理部213として機能する。制御部210は、実行するゲームの性質に応じて、ユーザ端末100におけるゲームの進行を支援するために、図示しないその他の機能ブロックとしても機能することができる。
対戦支援部211は、各ユーザ端末100が対戦パートを進行させるのを支援する。具体的には、対戦支援部211は、対戦する各ユーザ端末100と通信して、ユーザ端末100同士のやりとりを仲介する。さらに、対戦支援部211は、対戦相手のマッチング、対戦の進行状況の同期をとるための同期制御などを実行する。
また、対戦支援部211は、ユーザ端末100からの要求に応じて、当該ユーザ端末100のユーザの対戦相手となる他のユーザ端末100のユーザを決定するマッチングを行う。換言すると、対戦パートを開始しようとするユーザにとって、相手チームとなるユーザは、サーバ200によるマッチングによって決定される。相手チームは、他のユーザによって編成されたチームの中から探索される。対人対戦のための適当な相手チームが探索されなかった場合には、対戦支援部211は、ゲームプログラム131にしたがって動作するキャラクタから構成されたチームを生成し、あるいは、事前に用意しておき、当該チームを相手チームとして、ユーザのチームにマッチングさせる。したがって、対戦パートは、他のユーザによる相手チームが探索されなかった場合に、コンピュータ対戦になることもあり得る。
試合内容配信部212は、現実世界の試合の内容を表す情報を取得し、各ユーザ端末100に配信する。以降、現実世界の試合を、単に「現実世界の試合」とも記載する。なお、現実世界の試合は、開催前の試合、開催中の試合、開催後の試合であってもよい。また、試合内容配信部212は、現実世界の試合の内容を表す情報を、外部サーバから取得してもよい。また、試合内容配信部212は、情報を取得し得る現実世界の試合のそれぞれについて、現実世界の試合の内容を表す情報を取得し、各ユーザ端末100に配信すればよい。なお、現実世界の試合の内容を表す情報の取得処理、及び、その配信処理は、繰り返し実行される。例えば、配信処理及び取得処理の少なくとも一方は、所定の間隔で実行されてもよい。また、例えば、配信処理及び取得処理の少なくとも一方は、ユーザ端末100からの要求に応じて実行されてもよい。なお、配信処理及び取得処理が共に所定の間隔で実行される場合、取得処理の間隔と、配信処理の間隔とは、必ずしも同一でなくてもよい。
ここで、現実世界の試合の内容を表す情報は、当該試合で対戦する各実在チームを特定する情報を含む。また、現実世界の試合の内容を表す情報は、例えば、試合の開始時刻、開催地、開始時刻付近の開催地の天気予報等の情報を含んでいてもよい。また、現実世界の試合の内容を表す情報は、開催中の試合における各実在チームの現在の得点、直近の投球結果、直近の打撃結果等の情報を含んでいてもよい。また、現実世界の試合の内容を表す情報は、例えば、開催後の試合の勝敗、最終的な各実在チームの得点、各実在チームの安打数等の成績、各実在チームの順位等の情報であってもよい。ただし、現実世界の試合の内容を表す情報に含まれる情報は、これらの例に限られない。
また、試合内容配信部212は、必ずしもサーバ200に含まれていなくてもよい。この場合、外部サーバから各ユーザ端末100に現実世界の試合の内容を表す情報が配信される。
投稿管理部213は、各ユーザ端末100の間で、投稿されるメッセージを仲介する。具体的には、投稿管理部213は、各ユーザ端末100からメッセージおよび応援対象を含む情報を受信し、各ユーザ端末100に送信する。また、投稿管理部213は、メッセージおよび応援対象を含む情報を、現実世界の試合に関連付けて作成されるチャットルーム毎に管理していてもよい。チャットルームは、事前に参加登録等の必要がなく自由にメッセージを投稿可能であるものとする。
(ユーザ端末100の機能的構成)
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム131およびユーザの操作にしたがって、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。
制御部110は、ゲームプログラム131の記述に応じて、操作受付部111、表示制御部112、ユーザインターフェース(以下、UI)制御部113、アニメーション生成部114、対戦進行部115、速報進行部116および投稿部117として機能する。制御部110は、実行するゲームの性質に応じて、ゲームを進行させるために、図示しないその他の機能ブロックとしても機能することができる。
操作受付部111は、入力部151に対するユーザの入力操作を検知し受け付ける。操作受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールに対してユーザが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部110の各要素に出力する。
例えば、操作受付部111は、入力部151に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部111は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部111は、連続して検知されていた入力が途切れると、タッチスクリーン15から接触入力が解除されたことを検知する。
UI制御部113は、UIを構築するために表示部152に表示させるUIオブジェクトを制御する。UIオブジェクトは、ユーザが、ゲームの進行上必要な入力をユーザ端末100に対して行うためのツール、または、ゲームの進行中に出力される情報をユーザ端末100から得るためのツールである。UIオブジェクトは、これには限定されないが、例えば、アイコン、ボタン、リスト、メニュー画面などである。
アニメーション生成部114は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。
表示制御部112は、タッチスクリーン15の表示部152に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部112は、アニメーション生成部114によって生成されたアニメーションを含むゲーム画面を表示部152に表示してもよい。また、表示制御部112は、上述のUIオブジェクトを、該ゲーム画面に重畳して描画してもよい。
なお、以降、操作受付部111によって入力部151に対する入力操作が検知され受け付けられることを、単に、入力操作が受け付けられる、とも記載する。また、他の機能ブロックが、各種のゲーム画面を表示制御部112によって表示部152に出力することを、単に、表示する、とも記載する。
対戦進行部115は、対戦パートにおいて、サーバ200との間でデータの送受信を行って、相手ユーザとの対戦を進行させる。相手ユーザは、サーバ200においてマッチングにより決定される。また、対戦進行部115は、UI制御部113、アニメーション生成部114および表示制御部112を制御して、ユーザが対戦パートをプレイするために必要な上述のUIをユーザに提供する。対戦進行部115は、UI制御部113またはアニメーション生成部114に、UI部品を含むゲーム画面を生成させる。対戦進行部115は、表示制御部112に、生成された該ゲーム画面を表示部152に表示させる。これにより、ユーザが対戦パートをプレイするための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に表示させる」ことを意味する。
また、対戦進行部115は、対戦パートで用いられるキャラクタ(選手)又はチームを指定する情報を、ユーザの入力操作に基づいて設定する。指定する情報とは、例えば、対戦パートで用いられることが可能なキャラクタの所属球団、又は、対戦パートで用いられることが可能な球団を表す情報であってもよい。以降、指定する情報のことを、指定球団とも記載する。ユーザの入力操作に基づき設定された指定球団は、例えば、ユーザ情報133の一部として記憶部120に記憶される。
「指定球団」は、一例として、本ゲームの開始時に実在するプロ野球チーム(12球団)の中から、ユーザがお気に入りの球団を指定球団として1つ指定する。指定球団の項目は、対戦進行部115によって、参照される。例えば、対戦進行部115は、ユーザがお気に入りの指定球団に基づいて、ユーザのチームを表すチームロゴのデザインを決定してもよいし、該指定球団とデッキに組み入れられているキャラクタに設定されている属性(例えば、所属球団)に基づいて、デッキの強さを決定してもよい。
指定球団は、ゲームが開始された後、ユーザによって任意に変更されてもよいし、ユーザが本ゲームをプレイした結果、一定の条件が満たされたことにより、該ユーザが変更できるものであってもよい。
また、対戦進行部115は、マニュアル進行モードと、オート進行モードとを有する。マニュアル進行モードとは、対戦パートで用いられるキャラクタを、ユーザの操作に基づき動作させるモードであり、本発明における第一モードの一例である。オート進行モードとは、対戦パートで用いられるキャラクタを、ユーザの操作によらずに動作させるモードであり、本発明における第二モードの一例である。
マニュアル進行モードの場合、投球側ユーザは、投球側ユーザ端末100Aを用いて、投手キャラクタによる投球を操作し、攻撃側ユーザは、打撃側ユーザ端末100Bを用いて、打者キャラクタによる打撃を操作する。
具体的には、マニュアル進行モードの場合、投球側ユーザ端末100Aの対戦進行部115は、投球側ユーザから受け付けた投球操作に応じて投球結果を決定し、該投球結果を含むデータ(図1に示す投球結果D1)を生成し、サーバ200に送信する。投球結果D1は、サーバ200を介して、対戦相手の打撃側ユーザ端末100Bに送信される。投球操作とは、投球側ユーザが、投手キャラクタに投球させるために、投球側ユーザ端末100Aの入力部151に対して実施する操作のことである。
また、マニュアル進行モードの場合、打撃側ユーザ端末100Bの対戦進行部115は、打撃側ユーザから受け付けた打撃操作に応じて打撃結果を決定し、該打撃結果を含むデータ(図1に示す打撃結果D2)を生成し、サーバ200に送信する。打撃結果D2は、サーバ200を介して、対戦相手の投球側ユーザ端末100Aに送信される。打撃操作とは、打撃側ユーザが、打者キャラクタにボールを打撃させるために、打撃側ユーザ端末100Bの入力部151に対して実施する操作のことである。
一方、オート進行モードの場合、対戦進行部115は、ゲームプログラムにしたがって、進行している対戦に関わる各種情報に基づいてキャラクタの動作結果(投球結果または打撃結果)を決定する。そして、決定した動作結果をサーバ200へ送信する。
対戦進行部115は、対戦パートで用いられるキャラクタ(選手)またはチーム(球団)に設定されたパラメータを用いて、対戦を進行する。
対戦パートで用いられる各キャラクタには、パラメータとして能力値が設定される。能力値には、スキル別身体パラメータと、総合パラメータとがある。スキル別身体パラメータは、対戦において発揮される選手の身体能力を表す値である。具体的には、スキル別身体パラメータは、野球で必要とされるスキルごとに、選手の技量を数値化したものである。本実施形態では、例えば、スキル別身体パラメータとして、打撃力、命中力、最速球速、制球力、変化球力、走力、守備力、送球速度、および、送球精度などがある。
これに対して、総合パラメータは、スキルの種別に関係なく、キャラクタの、対戦進行上の総合的な強さを数値化したものであり、キャラクタごとに設定される。総合パラメータは、対戦の進行時、対戦進行部115および対戦支援部211によって参照され、対戦の進行に影響を与える。具体的には、対戦パートは、デッキに組み入れられている選手の総合パラメータが高いほど、対戦が有利に進行する。
また、対戦パートで用いられるチームには、パラメータとして、デッキ総合パラメータが算出される。デッキ総合パラメータは、デッキ内の各選手の総合パラメータに基づいて算出される値である。デッキ内の各選手の総合パラメータが高いほど、デッキ総合パラメータも高く算出される。各選手は総合パラメータが高いほど対戦に強いということができるので、デッキ総合パラメータが高いほどデッキ(チーム全体)が対戦において強いということができる。デッキ総合パラメータは、対戦の進行時、対戦進行部115および対戦支援部211によって参照され、対戦の進行に影響を与える。具体的には、対戦パートは、デッキ総合パラメータが高いほど、対戦が有利に進行する。
また、対戦進行部115は、現実世界の試合の内容を表す情報に基づいて、対戦パートの進行を調整する。現実世界の試合の内容を表す情報は、サーバ200から配信される。例えば、対戦進行部115は、現実世界の試合の内容を表す情報が、指定球団によって特定される実在チームにとって好ましいことを表す場合、ユーザが対戦パートにおいてより有利となるよう、対戦パートの進行を調整する。
例えば、対戦進行部115は、対戦パートにおいてユーザが勝利する期待値を大きくするよう、対戦パートの進行を調整する。例えば、調整処理は、対戦パートにおいて用いられているキャラクタまたはチームのパラメータを補正する処理であってもよい。例えば、キャラクタまたはチームの総合パラメータ、また、デッキ内の各選手の身体能力を表す値を補正する処理であってもよい。この場合、補正処理は、当該ユーザ端末100において用いられているキャラクタまたはチームのパラメータを増加させる処理であってもよいし、相手ユーザによって用いられているキャラクタまたはチームのパラメータを減少させる処理であってもよい。また、例えば、対戦進行部115は、打撃結果、投球結果、守備結果として当該ユーザに有利な結果が出やすくなるよう、調整を行ってもよい。例えば、複数の結果の候補の中から結果を決定するときに、打撃であればホームラン、ヒット、投球であれば失投にならない、守備であればファインプレーが出たり、エラーにならなかったりするなどの、有利な結果が出やすいような調整が行われてもよい。なお、このような調整処理は、サーバ200を介して、対戦相手のユーザ端末100との間で共有される。
また、対戦進行部115は、このような調整処理を、現実世界の試合の内容を表す情報が取得されたことを契機に実行し、その後所定のタイミングで、調整前の状態に戻す処理を行ってもよい。例えば、調整されたパラメータは、1または複数の打席において一時的に適用されてもよい。また、調整されたパラメータは、現実世界の試合の内容を表す情報が次に取得されるまでの間、一時的に適用されてもよい。また、調整されたパラメータは、所定の長さの期間(例えば、2時間、1日間等)、一時的に適用されてもよい。
また、「指定球団によって特定される実在チーム」とは、指定球団として設定している実在チームが対戦する現実世界の試合であれば、当該実在チームそのものとなる。ただし、「指定球団によって特定される実在チーム」とは、必ずしも、指定球団として設定している実在チームそのものでなくてもよい。例えば、現実世界の試合として、リーグ対抗試合が適用されている場合、「指定球団によって特定される実在チーム」とは、指定球団として設定している実在チームが属するリーグ側のチームであってもよい。例えば、球団A、B及びCがリーグABCに属し、球団X、Y及びZがリーグXYZに属しているとする。また、ユーザによって、球団Aが指定球団に設定されていたとする。また、リーグABCに属する球団の選手からなるABCチームと、リーグXYZに属する球団の選手からなるXYZチームとが対戦するリーグ対向試合が現実世界で開催されているとする。この場合、対戦進行部115は、現実のリーグ対向試合の内容が、ユーザの指定球団である球団Aが属するABCチームにとって好ましければ、ユーザが対戦パートにおいて有利になるよう調整処理を行う。
また、現実世界の試合の内容を表す情報が、指定球団によって特定される実在チームにとって好ましいか否かは、所定の好条件を満たすか否かに基づいて判断されてもよい。好条件の具体例としては、例えば、当該実在チームが得点において現在リードしていることが挙げられる。また、当該実在チームの直近の打撃結果が本塁打であったことが挙げられる。また、当該実在チームの直近の投球結果が奪三振であったことが挙げられる。ただし、実在チームにとって好ましい内容を判定するための好条件は、これらに限られない。
速報進行部116は、現実世界の試合の内容を表す情報を更新しながら出力する速報パートを進行する。具体的には、速報進行部116は、現実世界の試合の内容を表す情報をサーバ200から取得する度に、現実世界の試合の内容を表す情報を表す情報を、速報パート画面に表示し、更新する。以降、現実世界の試合の内容を表す情報を出力することを、単に、速報する、とも記載する。
複数の現実世界の試合のそれぞれについて、サーバ200から現実世界の試合の内容を表す情報が配信される場合、速報パートで速報される対象となる現実世界の試合は、入力操作に基づき選択された試合であってもよい。また、速報パートで速報される対象となる現実世界の試合は、指定球団に基づき特定される実在チームが対戦する試合であってもよい。また、速報パートで速報される対象となる現実世界の試合は、他の現実世界の試合に切り替え可能であってもよい。
速報進行部116は、対戦パートがオート進行モードで進行中に、速報パートを進行可能である。換言すると、対戦パートをオート進行モードに設定した上で対戦パート画面を非表示にし、速報パート画面を表示することが可能となっている。また、その後、対戦パートが再開された際には、対戦進行部115は、オート進行モードで進行していた対戦パートの進行を、オート進行モードまたはマニュアル進行モードで継続可能である。
なお、速報進行部116は、対戦パートにおいても、現実世界の試合の内容を表す情報を速報してもよい。例えば、速報進行部116は、対戦パートの対戦画面に、現実世界の試合の内容を表す情報をテロップ形式で重畳表示してもよい。また、速報進行部116は、対戦パートの進行中に、現実世界の試合の内容を表す情報を音声で出力してもよい。対戦パートにおいて速報される対象となる現実世界の試合は、現実世界の試合の内容を表す情報を取得し得る現実世界の試合の何れかである。例えば、対戦パートにおいて速報される対象となる現実世界の試合は、指定球団に基づき特定される実在チームが対戦する現実世界の試合であってもよい。また、対戦パートにおいて速報される対象となる現実世界の試合は、直近に速報パートで閲覧された現実世界の試合であってもよい。
また、速報進行部116は、対戦パートを開始するための開始画面に、現実世界の試合の内容を表す情報を出力してもよい。また、そのような開始画面は、対戦パートを開始するための入力操作に加えて、速報パートを開始するための入力操作を受け付け可能であってもよい。
投稿部117は、速報パートにおいて、複数のユーザの少なくとも何れかによって投稿されるメッセージを含む情報を出力する。複数のユーザとは、当該ユーザ端末100のユーザ、及び、当該速報パートにおいて同一の現実世界の試合を速報中の他のユーザ端末100のユーザを含む。
また、投稿部117は、ユーザの応援対象を特定する。応援対象とは、速報パートにおいて速報されている現実世界の試合において対戦している実在チームのうち、ユーザによって応援される対象となる実在チームをいう。応援対象は、入力操作に基づいて選択されてもよいし、指定球団に基づき特定されてもよい。応援対象は、ある現実の試合について速報パートが開始するときに、当該現実の試合に応じて特定される。
また、投稿部117は、入力されたメッセージおよび応援対象を含む情報を、サーバ200に送信する。また、投稿部117は、サーバ200から送信されるメッセージおよび応援対象を含む情報を表示する。応援対象を表す情報は、メッセージの近傍に表示される。メッセージは、例えば、各ユーザによる投稿時間順に並べられて表示されてもよい。
換言すると、ユーザは、速報パートにおいて、速報を閲覧中の現実世界の試合に関連付けられているチャットルームにログインし、同じ現実世界の試合の速報を閲覧中の他のユーザとの間で、メッセージを交換することができる。これにより、ユーザは、同じ現実世界の試合に注目している他のユーザとの間で、どちらの実在チームを応援しているかを認識しながら、コミュニケーションを盛り上げることができる。そして、速報を閲覧中の現実世界の試合の内容が、応援対象のチームにとって好ましければ、ユーザは、対戦パートを有利に進めることができるので、その後対戦パートに切り替えて対戦パートを楽しむことができる。
なお、図2に示すサーバ200およびユーザ端末100の機能は一例にすぎない。サーバ200は、ユーザ端末100が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末100は、サーバ200が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末100およびサーバ200以外の他の装置をゲームシステム1の構成要素とし、該他の装置にゲームシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末100、サーバ200、および他の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
<処理フロー及び画面例>
(開始画面の表示フロー)
図3は、ゲームシステム1が、ゲームプログラム131に基づいて実行する開始画面の表示処理の流れを示すフローチャートである。
ステップS101において、ユーザ端末100の制御部110は、入力操作に基づいて指定球団を設定する。
ステップS102において、制御部110は、現実世界の試合を特定する。特定される現実世界の試合は、例えば、指定球団によって特定される実在チームが対戦する試合であってもよい。また、特定される現実世界の試合は、例えば、直近に速報パートで閲覧された現実世界の試合であってもよい。
ステップS103において、制御部110は、特定した現実世界の試合について、試合の内容を表す情報をサーバ200に要求する。
ステップS104において、サーバ200の試合内容配信部212は、要求された現実世界の試合について、試合の内容を表す情報をユーザ端末100に配信する。
ステップS105において、制御部110は、対戦パートを開始するためのUIオブジェクト(例えば、開始ボタン)を、開始画面に表示する。
ステップS106において、制御部110は、速報パートを開始するためのUIオブジェクト(例えば、速報ボタン)を、開始画面に表示する。
ステップS107において、制御部110は、現実世界の試合の内容を表す情報を、開始画面に表示する。なお、ステップS105〜S107の実行順序は、順不同である。
(開始画面の具体例)
図4は、開始画面の具体例を示す図である。開始画面は、指定球団情報401と、開始ボタン402と、試合情報403と、速報ボタン404とを含む。
指定球団情報401は、ユーザの入力操作によって設定された指定球団を表す情報を含んでいる。この具体例では、指定球団は、球団Aである。
開始ボタン402は、対戦パートを開始する指示を受け付けるためのUIオブジェクトの一例である。開始ボタン402に対する入力操作が受け付けられると、後述の図7に示す対戦パート画面に遷移する。開始ボタン402は、本発明における第一ユーザインタフェースオブジェクトの一例である。
試合情報403は、現実世界の試合の内容を表す情報を含んでいる。この具体例では、指定球団である球団Aによって特定される実在チーム「球団A」が「球団B」と対戦する開催前の試合について、開始時刻が表示されている。なお、試合情報403は、速報パートで閲覧された現実世界の試合について表示されてもよい。
速報ボタン403は、速報パートを開始する指示を受け付けるためのUIオブジェクトの一例である。速報ボタン404に対する入力操作が受け付けられると、後述の図10に示す速報パート画面に遷移する。速報ボタン403は、本発明における第二ユーザインタフェースオブジェクトの一例である。
このように、対戦パートを開始するための開始画面に、現実世界の試合の内容を表す情報を表示することにより、ユーザに対して、対戦パートの進行に影響のある現実世界の試合に注目するよう促すことができる。また、開始画面に、速報パートを開始するためのUIオブジェクトを表示することにより、対戦パートをプレイしようとするユーザに対して、対戦パートに影響のある現実世界の試合を速報する速報パートを閲覧するよう、促すことができる。また、速報パートを閲覧しようとするユーザに対して、当該速報パートで速報される現実世界の試合が影響を与える対戦パートをプレイするよう、促すことができる。
(対戦パートの進行フロー)
図5は、ゲームシステム1が、ゲームプログラム131に基づいて実行する対戦パートの進行処理の流れを示すフローチャートである。
ステップS201において、ユーザ端末100の対戦進行部115は、対戦パートを開始する操作が受け付けられたか否かを判断する。ステップS201でNoの場合、対戦パートの進行処理は終了する。ステップS201でYesの場合、ステップS202の処理が実行される。
ステップS202において、対戦進行部115は、現実世界の試合において対戦する実在チームの何れかを、指定球団に基づいて特定する。ここで対象となる現実世界の試合は、ステップS102で特定された現実世界の試合であるものとする。
ステップS203において、対戦進行部115は、サーバ200に対して、相手ユーザのマッチングを要求する。
ステップS204において、サーバ200の対戦支援部211は、マッチング処理を実行し、ユーザの対戦相手を探索する。対戦相手が見つかり、マッチングが成立した場合、対戦支援部211は、ステップS205に進む。
ステップS205において、対戦支援部211は、マッチング結果として、対戦相手となるユーザに関する情報を、ユーザ端末100に配信する。
ステップS206では、対戦支援部211は、マッチングされた各ユーザ端末100が対戦を進行させることができるように、対戦を実施するユーザ端末100同士に情報を共有させ、同期制御を行って、対戦を支援する。例えば、対戦支援部211は、マッチングが成立した旨を対戦進行部115に通知するとともに、対戦相手および相手チームの情報をユーザのユーザ端末100に提供する。
ステップS207では、対戦進行部115は、対戦支援部211と通信して、対戦パートを進行させる。
ステップS208において、制御部110は、現実世界の試合の内容を表す情報をサーバ200に要求する。ここで対象となる現実世界の試合は、ステップS102で特定された現実世界の試合であるものとする。
ステップS209において、サーバ200の試合内容配信部212は、要求された現実世界の試合について、試合の内容を表す情報をユーザ端末100に配信する。
ステップS210において、ユーザ端末100の対戦進行部115は、現実世界の試合の内容を表す情報が、ステップS202で特定された実在チームにとって好条件を満たすか否かを判断する。
ステップS210でYesの場合、ステップS211の処理が実行される。ステップS210でNoの場合、ステップS212の処理が実行される。
ステップS211において、対戦進行部115は、ユーザが対戦パートにおいて有利になるよう調整処理を行う。具体的には、ユーザのチームまたはキャラクタのパラメータ(スキル別身体パラメータ、総合パラメータ等)を補正する処理を行う。
ステップS212において、対戦進行部115は、対戦パートを終了するか否かを判断する。例えば、対戦進行部115は、対戦パートの終了を指示する入力操作が受け付けられた場合に、対戦パートを終了すると判断してもよい。また、対戦進行部115は、対戦パートにおける試合が終了した場合に、対戦パートを終了すると判断してもよい。
ステップS212においてNoの場合、ステップS206からの処理が繰り返される。ステップS212においてYesの場合、対戦パートの進行処理は終了する。
(対戦を進行する処理フロー)
図6は、ユーザ端末100が、図5のステップS207において実行する処理の詳細な流れを示すフローチャートである。
ステップS301において、対戦進行部115は、マニュアル進行モードで、対戦パートを進行する。換言すると、対戦進行部115は、ユーザの入力操作に基づいてキャラクタの動作を決定し、決定した動作をサーバ200に送信する。また、対戦進行部115は、サーバ200から送信される情報に基づいて、対戦を進行する。サーバ200から送信される情報は、例えば、ユーザのキャラクタ及び相手ユーザのキャラクタの動作結果(例えば、投球結果及び打撃結果)等を含む。
ステップS302において、対戦進行部115は、オート進行モードで退出することを指示する入力操作が受け付けられたか否かを判断する。
ステップS302でNoの場合、処理は図5に戻り、ステップS208からの処理が継続される。すなわち、マニュアル進行モードでの対戦パートの進行が継続する。
ステップS302でYesの場合、対戦進行部115は、対戦パートから退出する処理を行う。具体的には、対戦進行部115は、対戦パート画面を閉じ、開始画面に戻ってもよい。
ステップS304において、対戦進行部115は、オート進行モードで、対戦パートの進行を継続する。換言すると、対戦進行部115は、ユーザの入力操作によらずにキャラクタの動作を決定し、決定した動作をサーバ200に送信し、サーバ200から送信される情報に基づいて、対戦を進行する。
ステップS305において、対戦進行部115は、対戦パートの再開を指示する入力操作が受け付けられたか否かを判断する。
ステップS305でNoの場合、ステップS304からのオート進行モードの処理が繰り返される。ステップS305でYesの場合、ステップS306の処理が実行される。
ステップS306において、対戦進行部115は、マニュアル進行モードに切り替えることを指示する入力操作が受け付けられたか否かを判断する。ステップS306でNoの場合、ステップS304からのオート進行モードの処理が繰り返される。ステップS306でYesの場合、ステップS301からのマニュアル進行モードの処理が繰り返される。
(対戦パート画面の具体例)
図7は、対戦パート画面の具体例を示す図である。対戦パート画面は、対戦エリア701と、スコア702と、キャラクタ情報703aおよび703bと、速報704と、退出ボタン705とを含む。
対戦エリア701は、マニュアル進行モードにおける入力操作を受け付けるとともに、対戦パートが進行する様子がアニメーション表示されるエリアである。
スコア702は、対戦パートで行われている試合の現在のスコアを表す情報を含む。
キャラクタ情報703aおよび703bは、対戦パートにおいて現在用いられているユーザのキャラクタ及び相手ユーザのキャラクタに関する情報を含んでいる。例えば、キャラクタ情報703aおよび703bは、当該キャラクタの能力値を表す情報として、スキル別身体パラメータと、総合パラメータとを含んでいる。
速報704は、この対戦パートの進行に影響を与える現実世界の試合の内容を表す情報を含む。具体的には、速報704には、指定球団に基づき特定された実在チームが対戦する現実世界の試合の内容を表す情報が表示されている。
退出ボタン705は、オート進行モードで対戦パートを継続しながら、対戦パート画面から退出することを指示する入力操作を受け付けるためのUIオブジェクトの一例である。退出ボタン705に対する入力操作が受け付けられると、対戦パート画面が閉じられる。ただし、対戦パート画面が閉じられた後も、オート進行モードで対戦が継続する。
このように、ユーザは、対戦パートをマニュアル進行モードでプレイしながら、速報704を視認することにより、当該対戦パートの進行に影響のある現実世界の試合に注目することができる。そして、注目した当該現実世界の試合の進行状況を閲覧する速報パートに切り替えるために、対戦パートをオート進行モードで進行させながら退出することができる。このように、ユーザは、対戦パートから速報パートに切り替えて、速報パートを楽しむことができる。また、現実世界の試合の内容を速報パートで楽しんでから、当該現実世界の試合の内容が影響する対戦パートのプレイを再開することができる。
(速報パートの進行フロー)
図8は、ゲームシステム1が、ゲームプログラム131に基づいて実行する速報パートの進行処理の流れを示すフローチャートである。
ステップS401において、ユーザ端末100の速報進行部116は、速報パートの開始を指示する入力操作が受け付けられたか否かを判断する。ステップS401でNoの場合、速報パートの進行処理は終了する。ステップS401でYesの場合、ステップS402の処理が実行される。
ステップS402において、速報進行部116は、現実世界の試合の内容を表す情報をサーバ200に要求する。ここで対象となる現実世界の試合は、ステップS102で特定された現実世界の試合であってもよい。また、ここで対象となる現実世界の試合は、速報パートで速報し得る現実世界の試合のうち、ユーザの入力操作に基づき選択された試合であってもよい。
ステップS403において、サーバ200の試合内容配信部212は、要求された現実世界の試合について、試合の内容を表す情報をユーザ端末100に配信する。
ステップS404において、ユーザ端末100の速報進行部116は、現実世界の試合の内容を表す情報を表示する。既に現実世界の試合の内容を表す情報が表示されていれば、速報進行部116は、当該表示を更新する。
ステップS405において、速報進行部116は、速報パートを終了するか否かを判断する。例えば、速報進行部116は、速報パートの終了を指示する入力操作が受け付けられた場合に、速報パートを終了すると判断してもよい。
ステップS405においてNoの場合、ステップS402からの処理が繰り返される。ステップS405においてYesの場合、速報パートの進行処理は終了する。
(投稿処理フロー)
図9は、ゲームシステム1が、ゲームプログラム131に基づいて実行する投稿処理の流れを示すフローチャートである。以下に説明する投稿処理の流れは、速報パートにおいて実行される。
ステップS501において、ユーザ端末100の投稿部117は、メッセージを投稿する操作が受け付けられたか否かを判断する。ステップS501でNoの場合、ステップS506の処理が実行される。ステップS501でYesの場合、ステップS502の処理が実行される。
ステップS502において、投稿部117は、応援対象を特定する。応援対象は、速報パートで速報されている現実世界の試合において対戦する実在チームのうち、指定球団に基づき特定される実在チームである。なお、同一の現実世界の試合について既に本ステップが実行済みである場合、既に特定された応援対象が適用される。
ステップS503において、投稿部117は、投稿されたメッセージ及び応援対象を含む情報を、サーバ200に送信する。
ステップS504において、サーバ200の投稿管理部213は、メッセージ及び応援対象を含む情報を受信したか否かを判断する。
ステップS504でNoの場合、当ステップの処理が繰り返される。ステップS504でYesの場合、ステップS505の処理が実行される。
ステップS505において、投稿管理部213は、受信したメッセージ及び応援対象を含む情報を、各ユーザ端末100に送信する。送信対象となるユーザ端末100は、同一の現実世界の試合について速報パートを進行中のユーザ端末100である。
ステップS506において、ユーザ端末100の投稿部117は、メッセージ及び応援対象を含む情報を受信したか否かを判断する。
ステップS506でNoの場合、ステップS501からの処理が繰り返される。ステップS506でYesの場合、ステップS507の処理が実行される。
ステップS507において、投稿部117は、受信したメッセージを、応援対象を表す情報とともに表示する。応援対象を表す情報は、例えば、応援対象となる実在チームのロゴ画像等であってもよい。
(速報パート画面の具体例)
図10は、速報パート画面の具体例を示す図である。速報パート画面は、速報エリア1010と、試合一覧エリア1020と、チャットエリア1030と、メッセージ入力エリア1040と、戻るボタン1050とを含む。
速報エリア1010は、現実世界の試合の内容を表す情報が表示されるエリアである。速報エリア1010は、スコア1011と、打撃結果1012と、出塁状況1013と、投球結果1014及び1015と、情報1016を含む。
スコア1011は、現実世界の試合において対戦中の球団A及び球団Bについて、それぞれ、現在の各イニングでの得点状況を表している。打撃結果1012は、直近の投球に対して、球団Aの打者Aがストライク球を空振りしたことを表している。出塁状況1013は、現在のイニングにおいて、出塁者がいないことを表している。投球結果1014は、直近の打席における1球目および2球目の投球位置を表している。投球結果1015は、直近の投球について判定された時速および投球種別を表している。情報1016は、直近の投手及び打者に関する情報を含んでいる。このような速報エリア1010は、現実世界の試合の内容を表す情報が取得される度に、更新される。なお、速報エリアに含まれる要素は一例であり、現実世界の試合の内容を表す情報を表現する要素は、これらに限られない。
試合一覧1020は、この時点で速報を取得可能な現実世界の試合の一覧を表し、各試合を表すボタン1021a〜1021dを含んでいる。ボタン1021aは、球団Aと球団Bとの試合が3−0で進行中であることを表すUIオブジェクトの一例である。また、当該ボタン1021aが太枠で囲まれた表示となっているのは、当該試合の内容を表す情報が、速報エリア1010に表示されていることを表している。
ボタン1021bは、球団Cと球団Dとの試合が1−1で進行中であることを表すUIオブジェクトの一例である。ボタン1021bに対する入力操作が受け付けられると、速報エリア1010は、球団Cと球団Dとの試合の内容を表す情報に切り替わる。また、チャットエリア1030が、球団Cと球団Dとの試合についてのチャットルームに切り替わる。
ボタン1021cは、球団Eと球団Fとの試合が18:00から開催予定であることを表すUIオブジェクトの一例である。ボタン1021cに対する入力操作が受け付けられると、速報エリア1010では、速報の表示はされない。また、チャットエリア1030は、球団Eと球団Fとの試合についてのチャットルームの表示に切り替わる。
ボタン1021dは、球団Gと球団Hとの試合が雨天により中心となったことを表すUIオブジェクトの一例である。ボタン1021dに対する入力操作が受け付けられると、速報エリア1010では、速報の表示はされない。また、チャットエリア1030は、球団Gと球団Hとの試合についてのチャットルームの表示に切り替わる。
チャットエリア1030は、投稿されたメッセージ1031a〜1031dと、応援対象マーク1032a〜1032dとを含む。メッセージ1031a〜1031dは、投稿時刻順に、上から並べられて表示されている。応援対象マーク1032a〜1032dは、それぞれ、メッセージ1031a〜1031dの近傍に表示されている。なお、当該チャットルームに投稿されたメッセージ数が、チャットエリア1030に表示できる数(図10の例では、4)を超える場合には、投稿時刻が古いメッセージから順に、チャットエリア1030から消去されてもよい。ただし、チャットエリア1030に表示されているメッセージより古い投稿時刻のメッセージを閲覧するためのUIオブジェクト(例えば、スクロールバー等)が配置されてもよい。
メッセージ1031b及び1031dのように、チャットエリア1030の右側よりに表示されているメッセージは、当該ユーザ端末100のユーザによって投稿されたメッセージを表している。また、その近傍に表示された応援対象マーク1032b及び1032dは、当該ユーザ端末100のユーザについて特定された応援対象が、球団Aであることを表している。
メッセージ1031a及び1031cのように、チャットエリア1030の左側よりに表示されているメッセージは、球団A及び球団Bの試合を速報パートに表示している他のユーザ端末100のユーザによって投稿されたメッセージを表している。また、応援対象マーク1032aは、メッセージ1031aを投稿したユーザの応援対象が球団Bであることを表している。また、応援対象マーク1032cは、メッセージ1031cを投稿したユーザの応援対象が球団Aであることを表している。
メッセージ入力エリア1040は、入力エリア1041と、投稿ボタン1042とを含む。入力エリア1041は、メッセージの入力を受け付けるUIオブジェクトの一例である。投稿ボタン1042は、入力されたメッセージの投稿を指示するUIオブジェクトの一例である。
戻るボタン1050は、速報パートの終了を指示する入力操作を受け付けるためのUIオブジェクトの一例である。
このように、ユーザは、速報パートにおいて、対戦パートに影響のある現実世界の試合の速報を楽しむことができる。また、同じ現実世界の試合の速報を閲覧している複数のユーザ間で、メッセージを交換してコミュニケーションを楽しむことができる。さらに、メッセージの近傍に応援対象マークが表示されることにより、ユーザは、どのユーザがどの実在チームを応援しているのかを認識しながら、コミュニケーションを盛り上げることができる。
なお、図10のチャットエリア1030では、当該ユーザ端末100のユーザによって投稿されたメッセージが右寄りに配置され、他のユーザ端末100のユーザによって投稿されたメッセージが左寄りに配置される例について説明した。これに限らず、複数のユーザによって投稿されるメッセージは、応援対象毎に配置領域が分けられてもよい。例えば、当該ユーザ端末100のユーザと同じ球団Aを応援対象としているユーザによって投稿されたメッセージが、チャットエリア1030の右寄りに配置され、対戦相手である球団Bを応援対象としているユーザによって投稿されたメッセージが、左寄りに表示されてもよい。これにより、ユーザは、メッセージが、自身と同じチームを応援しているユーザによるものか、対戦相手のチームを応援しているユーザによるものかを、応援対象マークからだけでなく、配置領域からも容易に判別することができる。
また、この場合、投稿されるメッセージは、応援対象毎に投稿時刻順に並べられてもよい。例えば、当該ユーザ端末100のユーザと同じ球団Aを応援対象としているユーザによって投稿されたメッセージが、チャットエリア1030の右半分の領域において、投稿時刻順に並べられてもよい。また、対戦相手である球団Bを応援対象としているユーザによって投稿されたメッセージが、チャットエリア1030の左半分の領域において、投稿時刻順に並べられてもよい。これにより、ユーザは、自身とは異なるチームを応援しているユーザによる投稿が続いたとしても、同じチームを応援しているユーザにより投稿されたメッセージの表示が消えてしまうことがなく、それらを閲覧することができる。また、投稿されるメッセージが、応援対象ごとに分けて配置されるものとして説明したが、現実世界の試合について応援対象を指定したユーザ同士でのチャットとなるようにしてもよい。例えば、球団Aと球団Bとの試合がある場合に、球団Aを指定したユーザのみがチャットを行い、球団Bを指定したユーザのみがチャットを行うようにしてもよい。
〔変形例〕
本実施形態において、現実世界の試合の内容が、指定球団に基づき特定される実在チームにとって好ましい内容である場合に、ユーザにとって対戦パートの進行が有利になる例を中心に説明した。これに限らず、現実世界の試合の内容が、ユーザの入力操作に基づき特定された実在チームにとって好ましい内容である場合に、ユーザにとって対戦パートの進行が有利になってもよい。
〔ソフトウェアによる実現例〕
制御部210の制御ブロック(特に、対戦支援部211、試合内容配信部212および投稿管理部213)、ならびに、制御部110の制御ブロック(特に、操作受付部111、表示制御部112、UI制御部113、アニメーション生成部114、対戦進行部115、速報進行部116および投稿部116)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、制御部210または制御部110、もしくはその両方を備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1) プロセッサ(10)と、メモリ(11)と、タッチスクリーン(15)とを備えるコンピュータ(ユーザ端末100)により実行されるゲームプログラム(131)について説明した。本開示のある局面によると、ゲームプログラムは、プロセッサおよびメモリを備えるコンピュータにより実行されるゲームプログラムである。ゲームプログラムは、プロセッサに、ユーザと、他のユーザとを、現実世界の試合と同一種目の試合において対戦させる対戦パートを進行するステップと、現実世界の試合の内容を表す情報を取得するステップと、を実行させ、対戦パートを進行するステップは、現実世界の試合の内容を表す情報に基づいて、対戦パートの進行を調整する。上記の構成によれば、ユーザは、現実世界の試合に注目しながら、当該試合の内容が影響する対戦パートのプレイを楽しむことができる。その結果、対戦パートをプレイすることに対するユーザの動機付けが向上する。
(項目2) (項目1)において、ゲームプログラムは、プロセッサに、対戦パートで用いられる選手又はチームを指定する情報を、ユーザの操作に基づいてメモリに記憶させるステップをさらに実行させ、対戦パートを進行するステップは、現実世界の試合の内容が、指定する情報に基づき特定される現実世界の選手又はチームにとって好ましい内容を表す場合、好ましい内容を表さない場合に比べて、ユーザがより有利となるよう、対戦パートの進行を調整してもよい。これにより、ユーザは、対戦パートで用いられる選手又はチームを指定することにより、指定に基づき特定される現実世界の選手又はチームにとって、現実世界の試合の内容が好ましければ、対戦パートをより有利にプレイできる、というメリットを享受できる。その結果、ユーザは、指定する情報に基づき特定される現実世界の選手又はチームを応援しながら、対戦パートをプレイすることを楽しむことができる。
(項目3) (項目2)において、対戦パートを進行するステップは、対戦パートでユーザが勝利する期待値を大きくしてもよい。これにより、ユーザは、指定する情報に基づき特定される現実世界の選手又はチームを応援しながら、対戦パートで勝利することを期待でき、対戦パートのプレイをよりいっそう楽しむことができる。
(項目4) (項目1)から(項目3)の何れか1項目において、ゲームプログラムは、プロセッサに、現実世界の試合の内容を表す情報を出力部に出力するステップをさらに実行させてもよい。これにより、ユーザは、現実世界の試合の内容を確認することができ、当該確認した内容が影響する対戦パートのプレイを楽しむことができる。
(項目5) (項目4)において、出力するステップは、現実世界の試合の内容を表す情報を更新しながら出力する出力パートを進行してもよい。これにより、ユーザは、対戦パートと、当該対戦パートに影響のある現実世界の試合の内容が確認できる出力パートとの双方を楽しむことができ、ゲームの興趣性が向上する。
(項目6) (項目5)において、対戦パートを進行するステップは、対戦パートで用いられるオブジェクトを、ユーザの操作に基づき動作させる第一モードと、ユーザの操作によらずに動作させる第二モードとを有し、出力するステップは、対戦パートを進行するステップが第二モードで進行中に、出力パートを進行可能であり、対戦パートを進行するステップは、出力パートを進行した後に、第二モードで進行していた対戦パートを、第一モードで継続して進行可能であってもよい。これにより、ユーザは、対戦パートを自動で進行させながら、当該対戦パートに影響のある現実世界の試合の内容を出力パートで楽しむことができる。また、現実世界の試合の内容を出力パートで楽しんでから、当該現実世界の試合の内容が影響する対戦パートのプレイを継続することができる。
(項目7) (項目5)又は(項目6)において、ゲームプログラムは、プロセッサに、対戦パートを実行する指示を受け付ける第一ユーザインタフェースオブジェクトと、出力パートを実行する指示を受け付ける第二ユーザインタフェースオブジェクトとを、共に表示部に表示するステップをさらに実行させてもよい。これにより、対戦パートをプレイしようとするユーザに対して、出力パートを進行するよう促すことができる。また、出力パートを進行しようとするユーザに対して、対戦パートをプレイするよう促すことができる。
(項目8) (項目5)から(項目7)の何れか1項目において、出力するステップは、出力パートにおいて、ユーザ及び出力パートを進行中の他のユーザを含む複数のユーザの少なくとも何れかによって投稿される情報を、さらに出力してもよい。これにより、ユーザは、対戦パートに影響のある現実世界の試合に注目している複数のユーザ間で、コミュニケーションを楽しむことができる。
(項目9) (項目8)において、出力するステップは、投稿される情報を投稿したユーザについて、現実世界の試合における選手又はチームを応援対象として決定し、当該ユーザによって投稿される情報の近傍に、応援対象を表す情報さらに出力してもよい。これにより、ユーザは、対戦パートに影響のある現実世界の試合に注目している複数のユーザ間のコミュニケーションを、各ユーザの応援対象を視認しながら盛り上げることができる。
(項目10) ゲームプログラムを実行する方法を説明した。本開示のある局面によると、ゲームプログラムは、プロセッサおよびメモリを備えるコンピュータにより実行される。該方法は、プロセッサが(項目1)に記載の各ステップを実行する方法である。(項目10)に係る方法は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。
(項目11) 情報処理装置を説明した。本開示のある局面によると、該情報処理装置は、(項目1)に係るゲームプログラムを記憶する記憶部(120)と、該ゲームプログラムを実行することにより、情報処理装置(ユーザ端末100)の動作を制御する制御部(110)とを備える。(項目11)に係る情報処理装置は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。