〔実施形態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以上のキャラクタが属する自チームと相手チームとを対戦させる野球ゲームを実行するためのシステムである。ゲームシステム1では、一例として、ユーザは、コンピュータを用いて、自チームに属するキャラクタを操作する。
相手チームに属するキャラクタは、一例として、相手ユーザがコンピュータを用いることにより操作される。また、一例として、相手チームに属するキャラクタは、ゲームプログラムに基づきコンピュータにより制御される。本実施形態では、前者、すなわち、ゲームシステム1が、ユーザが操作する1以上のキャラクタが属する自チームと、相手ユーザが操作する1以上のキャラクタが属する相手チームとを対戦させる対戦型野球ゲームを実行するためのシステムである例を説明する。ゲームシステム1において実行される対戦型野球ゲームのゲームプログラムは、ユーザが操作するコンピュータ、および、相手ユーザが操作する別のコンピュータのうち、少なくとも、ユーザが操作するコンピュータにより実行される。
一例として、対戦型野球ゲームが実行されるゲームシステム1において、サーバ200を介して通信する第1のユーザ端末100と第2のユーザ端末100とによって、それぞれのチームが操作される。そして、対戦型野球ゲームは、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のそれぞれは、投球結果D1と、打撃結果D2とに基づいて、仮想空間(以下、ゲーム空間)についての計算を実行し、対戦を進行させる。一例として、ゲーム空間は、対戦会場としての球場を模して定義される。投球結果D1および打撃結果D2は、一方が、自端末において生成されたものであり、他方が、相手ユーザが操作するユーザ端末100において生成されたものである。ゲーム空間についての計算には、例えば、投球されたボールの移動経路、振られたバットの位置、および、打撃後のボールの飛翔経路などを計算する処理、および、バットがボールに当たったか否か判定する処理などが含まれる。
さらに、ゲーム空間についての計算には、フィールドに配置されている選手(以下、野手キャラクタ)の動きと、打者キャラクタによって打撃されたボールの飛翔経路とを計算して、フィールドプレイを再現する処理も含まれる。フィールドプレイとは、野手キャラクタによるボールの捕球、送球、走者へのタッチなどである。換言すれば、本実施形態に係る対戦型野球ゲームにおいて、野手キャラクタは、ユーザの操作ではなく、ゲームプログラムに基づいて投球側ユーザ端末100Aの制御により動作する。
<各装置のハードウェア構成要素>
プロセッサ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の機能的構成)
制御部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は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。例えば、投手キャラクタの投球動作のアニメーション、打者キャラクタの打撃動作のアニメーション、該打者キャラクタが振るバットのアニメーション、投手キャラクタによって投げられたボールのアニメーション、打者キャラクタによって打たれたボールのアニメーション、走者キャラクタの走塁動作のアニメーション、および、野手キャラクタの捕球動作および送球動作のアニメーション等を生成してもよい。
表示制御部112は、タッチスクリーン15の表示部152に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部112は、アニメーション生成部114によって生成されたアニメーションを含むゲーム画面を表示部152に表示してもよい。また、表示制御部112は、上述のUIオブジェクトを、該ゲーム画面に重畳して描画してもよい。
具体的には、表示制御部112は、ゲーム空間のうち、ユーザに提示する領域を指定するための仮想カメラの位置および向きを規定することにより、仮想カメラをゲーム空間に仮想的に配置する。表示制御部112は、仮想カメラで規定される視野領域および当該視野領域に配置されているオブジェクトを描画したゲーム画面を出力する。なお、表示制御部112は、仮想カメラの位置および向きを、随時変更してよい。
対戦進行部115は、サーバ200との間でデータの送受信を行って対戦を進行させる。また、対戦進行部115は、UI制御部113、アニメーション生成部114および表示制御部112を制御して、ユーザが本野球ゲームをプレイするために必要な上述のUIおよび該UI含むゲーム画面をユーザに提供する。
以下で参照する図示された各ゲーム画面は、UI制御部113が生成するUI部品、アニメーション生成部114が生成するアニメーション、または、これらの組み合わせによって構成される。各ゲーム画面は、仮想カメラによって規定される視野領域に、UI制御部113が生成したUI部品、および、アニメーション生成部114が生成したアニメーションの少なくとも一方が配置され、表示制御部112によって、ユーザ端末100の表示部152に表示される。表示制御部112、UI制御部113およびアニメーション生成部114は、対戦進行部115の制御下で、ゲーム画面を表示部152に表示するための処理を実行する。よって、「対戦進行部115が、ゲーム画面を表示部152に表示する」という記載は、「対戦進行部115が、UI制御部113またはアニメーション生成部114を制御して、UI部品またはアニメーションを生成させ、表示制御部112を制御して、生成されたUI部品およびアニメーションの少なくとも一方を含むゲーム画面を表示部152に表示させる」ことを意味する。
対戦進行部115は、野手キャラクタの動きと、打者キャラクタによって打撃されたボールの飛翔経路とを計算して、野手キャラクタのフィールドプレイを制御する。一例として、対戦進行部115は、野手キャラクタがボールを捕球したときの、走者キャラクタの有無および位置に基づいて、ボールの送球先を決定し、ボールを捕球した野手キャラクタに送球を行なわせることができる。
打者キャラクタによってボールが打撃されると、対戦進行部115は、ゲーム空間についての計算を実行し、対戦を進行させる。打撃側ユーザ端末100Bの対戦進行部115は、自機で生成された打撃結果D2に基づいて計算を実行する。また、投球側ユーザ端末100Aの対戦進行部115は、サーバ200を介して、打撃側ユーザ端末100Bから自機へ送信された打撃結果D2に基づいて計算を実行する。具体的には、対戦進行部115は、野手キャラクタの動きと打撃されたボールの飛翔経路とを計算して、ボールを捕球する野手キャラクタと、捕球の態様とを決定する。
例えば、野手キャラクタが、ボールがバウンドした後に捕球する(野手キャラクタがゴロを捕球する)と決定した場合、対戦進行部115は、走者キャラクタの有無と位置とに基づいて、ボールの送球先を決定する。例えば、走者キャラクタがいない状況で、二塁手である野手キャラクタ(以下、「である野手キャラクタ」の記載を省略する)がゴロを捕球すると決定した場合、対戦進行部115は、ボールの送球先を一塁手に決定し、二塁手に送球を行なわせる。該送球は、打者走者をアウトにするための送球である。
そして、対戦進行部115は、送球結果、すなわち打者走者である走者キャラクタがアウトであるかまたはセーフであるかを決定し、決定した送球結果に応じて、アウトカウントおよび走者の状況の少なくとも一方を更新する。具体的には、対戦進行部115は、送球先へのボールの到達タイミングと、走者キャラクタの塁への到達タイミングとのいずれが速いかに基づいて、走者キャラクタがアウトであるかまたはセーフであるかを決定する。ボールの到達タイミングが早い場合、対戦進行部115は、走者キャラクタがアウトであると決定する。走者キャラクタの到達タイミングが早い場合、対戦進行部115は、走者キャラクタがセーフであると決定する。
また例えば、走者キャラクタが一人2塁にいる状況で、左翼手がゴロを捕球すると決定した場合、対戦進行部115は、ボールの送球先を遊撃手に決定し、左翼手に送球を行なわせてもよい。該送球は、3塁を回って本塁へ走る走者をアウトにするための返球(バックホーム)の中継(いわゆる中継プレイ)である。
また例えば、決定された野手キャラクタが、ボールがバウンドする前に捕球する(野手キャラクタがフライを捕球する)と決定した場合、対戦進行部115は、アウトカウントを1増やす。対戦進行部115は、フライを捕球した野手キャラクタが外野手の場合、アウトカウント、および、走者キャラクタの有無と位置とに基づいて、ボールの送球先を決定してもよい。例えば、アウトカウントが1アウトであり、走者キャラクタが一人3塁にいる状況で、中堅手がフライを捕球すると決定した場合、対戦進行部115は、ボールの送球先を捕手に決定し、送球を行なわせてもよい。該送球は、犠牲フライの成立を狙って本塁へ走る走者キャラクタをアウトにするための送球である。
また例えば、アウトカウントが1アウトであり、走者キャラクタがいない状況で、中堅手がフライを捕球すると決定した場合、対戦進行部115は、ボールの送球先を二塁手または遊撃手に決定し、送球を行なわせてもよい。これは、実際の野球の試合において、ボールを投手に返球するため、外野手が内野手に一旦ボールを送球する様子を再現するものである。
また、本実施形態に係る野球ゲームでは、外野手には、送球のための送球動作として、第1送球動作と第2送球動作とが規定されている。第2送球動作は、第1送球動作に比べて、送球先へのボールの到達時間が短い。換言すれば、第2送球動作による送球は、走者キャラクタをアウトにすることができる可能性がより高い送球である。一例として、第2送球動作で送球されたボールの速度は、第1送球動作で送球されたボールの速度より速いものであってもよい。また、一例として、第2送球動作で送球されたボールの移動経路は、第1の送球動作で送球されたボールの移動経路より直線的であってもよい。第2の送球動作で送球されたボールは、これら2例のいずれかを満たすものであってもよいし、両方を満たすものであってもよい。
対戦進行部115は、外野手がボールを捕球すると決定した場合、送球動作を第1送球動作または第2送球動作のいずれかに決定する。具体的には、対戦進行部115は、外野手がボールを捕球すると決定し、かつ、所定の条件を満たす場合、送球動作を第2送球動作に決定する。一方、対戦進行部115は、外野手がボールを捕球すると決定したとしても、所定の条件を満たしていない場合、送球動作を第1送球動作に決定する。
対戦進行部115は、送球動作を第2送球動作に決定した場合、ゲーム画面を変更する。この構成の詳細については、画面例を参照しながら説明するため、後述する。
なお、本実施形態では、投手、捕手、および、内野手には、第1送球動作のみが規定されているものとして説明するが、投手、捕手、および、内野手にも、第1送球動作に加え、第2送球動作が規定されていてもよい。
<所定の条件について>
対戦進行部115は、一例として、(1)ボールを捕球した外野手の送球に係る能力値(第1パラメータ)が所定値以上である、(2)次の塁へ走る走者キャラクタがいる、という2つの条件を満たした場合、送球に係る能力値に応じた確率で送球動作を第2送球動作に決定する。上記(1)の条件により、第2の送球動作の希少性を高めることができる。また、本実施形態に係る野球ゲームが、所定のゲームモードにおいて、送球に係る能力値を向上させることが可能である場合、上記(1)の条件により、ユーザに該所定のゲームモードをプレイする動機づけを与えることができる。
送球に係る能力値は、各キャラクタの情報を示す選手情報に含まれており、選手情報は、ゲーム情報132としてユーザ端末100の記憶部120に格納されている。
図3は、選手情報を表示した選手情報画面の一例を示す図である。選手情報画面800には、例えば、キャラクタを識別するためのキャラクタ名801と、総合パラメータ802と、スキル別身体パラメータ803と、キャラクタが最も得意とする守備位置を示すメインポジション804とが含まれている。なお、総合パラメータ802については後述する。
スキル別身体パラメータ803は、対戦において発揮されるキャラクタの身体能力を表す値である。具体的には、スキル別身体パラメータ803は、野球で必要とされるスキルごとに、キャラクタの技量を数値化したものである。本実施形態では、例えば、スキル別身体パラメータとして、打撃力、命中力、最速球速、制球力、変化球力、走力、守備力、送球力(送球速度および送球精度等)がある。該送球力が、上述した送球に係る能力値である。
本実施形態では、一例として、対戦進行部115は、送球力が「B」以上(図示の「トータル」に示す数値が500以上)である場合、送球力が所定値以上であると判定する。つまり、図3の選手情報画面800に表示された選手情報が示すキャラクタは、送球力が「B」であるため、上記(1)の条件を満たしている。このため、該キャラクタがボールを捕球したとき、送球動作が第2送球動作となる可能性がある。
また、対戦進行部115は、上記2つの条件を満たしたとき、一例として、捕球した外野手の送球力が「B」である場合、10%の確率で、送球動作を第2送球動作に決定し、送球力が「A」である場合、30%の確率で、送球動作を第2送球動作に決定する。なお、送球力が「A」であるとは、例えば、図示の「トータル」に示す数値が600以上である場合である。
なお、図2に示すサーバ200およびユーザ端末100の機能は一例にすぎない。サーバ200は、ユーザ端末100が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末100は、サーバ200が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末100およびサーバ200以外の他の装置をゲームシステム1の構成要素とし、該他の装置にゲームシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末100、サーバ200、および他の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
<画面例>
図4から図7は、ユーザ端末100の表示部152に表示されるゲーム画面の一具体例を示す図である。
打者キャラクタがボールを打撃すると、それぞれのユーザ端末100の表示部152に、図4に示す守備画面(第1画面)が表示される。守備画面は、打者キャラクタが打撃したボールを含み、該ボールに対する野手キャラクタの動き、具体的にはボールの捕球および送球が描出される。また、守備画面には、球場を模したゲーム空間において、バックネット側の所定の位置に配置された仮想カメラ(以下、第1仮想カメラ)によって撮影された領域が描出され、該領域内に配置されている各種オブジェクトも併せて描出される。
図4は、それぞれのユーザ端末100の表示部152に表示される守備画面のうち、野手キャラクタがボールを捕球する前の画面である。図4に示す守備画面には、ボール602、および、ボール602を捕球する野手キャラクタ601を含む複数の野手キャラクタ等が描出されている。
さらに、守備画面には、ユーザが自チームを操作したり、自チームに関する情報を得たり、対戦の状況を示す情報を得たりするための各種UIオブジェクトが重畳表示されてもよい。例えば、図3に示すように、走者の有無および位置を示す走者情報701、および、アウトカウントを示すアウトカウント情報702等が、守備画面に重畳表示されてもよい。
図5は、図4に続いて表示されるゲーム画面の一具体例である。野手キャラクタ601はボール602を捕球すると、対戦進行部115によって決定された送球動作を行い、対戦進行部115によって決定された送球先へボール602を送球する。図5では、野手キャラクタ601が第1送球動作で送球を行なっている例を示している。図示のように、野手キャラクタ601が第1送球動作で送球を行なう場合、守備画面、すなわち、第1仮想カメラで撮影された領域を描出する画面が維持される。換言すれば、送球動作が第1送球動作に決定された場合、守備画面において、第1送球動作で送球を行なっている野手キャラクタ601が描出される。
図6は、図4に続いて表示されるゲーム画面の別の例である。具体的には、図6は、野手キャラクタ601が第2送球動作で送球を行なう例を示している。対戦進行部115により、送球動作が第2送球動作に決定された場合、図6の(A)に示すように、ゲーム画面が守備画面から第2送球動作画面(第2画面)に変更される。第2送球動作画面は、球場を模したゲーム空間において、外野席側の所定の位置に配置された仮想カメラ(以下、第2仮想カメラ)によって撮影された領域が描出され、該領域内に配置されている各種オブジェクトも併せて描出される。これにより、一例として、図6の(A)に示すような、野手キャラクタ601の後方から野手キャラクタ601を撮影したゲーム画面が表示部152に表示される。なお、図6の(A)に示す第2送球動作画面では、ボール602は、野手キャラクタ601のグローブの中に配置されており、図示されていない。
守備画面を第2送球動作画面に変更するための条件として、「送球動作が第2送球動作に決定される」以外の条件があってもよい。一例として、本実施形態に係る野球ゲームでは、第2送球動作での送球により、走者キャラクタがアウトになるか否かが際どいタイミングとなる場合に、ゲーム画面が守備画面から第2送球動作画面に変更される。具体的には、対戦進行部115は、野手キャラクタ601がボール602を捕球したときの走者キャラクタの位置に基づいて、走者キャラクタが塁に到達するタイミングと、第2送球動作で送球されたボールが送球先(該塁上の野手キャラクタ)に到達するタイミングとの差(以下、到達差)を算出する。そして、対戦進行部115は、算出した到達差と所定値とを比較し、到達差が所定値以下である場合、守備画面を第2送球動作画面に変更する。換言すれば、第2送球動作での送球により、走者キャラクタが明らかにアウトとなるタイミング、または、該送球でも走者キャラクタが明らかにセーフとなるタイミングで走者が塁に到達する場合、守備画面は第2送球動作画面に変更されない。このように構成することにより、ユーザの気分がより盛り上がる場面でゲーム画面が変更されることとなるので、第2送球動作画面の希少性を高めることができる。
守備画面を第2送球動作画面に変更すると決定した場合、対戦進行部115は、表示制御部112を制御して、仮想カメラを第1仮想カメラから第2仮想カメラに変更する。そして、対戦進行部115は、第2仮想カメラによって規定される視野領域に、UI部品、および、野手キャラクタ601が第2送球動作による送球を行うアニメーション(以下、送球アニメーション)を配置し、表示制御部112を制御して、表示部152に表示させる。該送球アニメーションは、アニメーション生成部114によって制御される。これにより、第2送球動作画面において、野手キャラクタ601が第2送球動作を行なっているアニメーションが描出される。
なお、守備画面が第2送球動作画面に変更されるタイミングは、ボール602が打撃されてから、野手キャラクタ601が第2送球動作を行うまでの所定のタイミングであればよい。一例として、該タイミングは、野手キャラクタ601がボール602を捕球するタイミングであってもよい。
また、野手キャラクタ601が第2送球動作による送球を行なう場合、第1送球動作による送球を行なう場合には無い演出が行われてもよい。一例として、第2送球動作による送球を行なう直前に、野手キャラクタ601が光るなどの演出が行われてもよい。これらの演出は、アニメーション生成部114により生成される送球アニメーションに組み込まれることで、第2送球動作画面に描出される。
送球アニメーションが進行することにより、野手キャラクタ601は、図6の(B)に示すように、ボール602を送球先へ送球する。このとき、図6の(B)に示すように、ボール602を捕球する野手キャラクタ603(図示の例では三塁手)が捕球体勢に入るアニメーションや、走者キャラクタ604が次の塁(図示の例では3塁)に向かって走るアニメーションが第2送球動作画面に描出されてもよい。
図7は、送球後の第2送球動作画面の一具体例を示す図である。送球後、すなわち、ボール602が野手キャラクタ601の手を離れた後、送球アニメーションが進行することによりにより、野手キャラクタ603へ近づくボール602が描出される。このとき、ボール602は、図7の(A)に示すように、第2送球動作画面の中央付近に配置されたまま、野手キャラクタ603へ向かって移動する。換言すれば、送球アニメーションは、ボール602の位置を変えず、ボール602を捕球する野手キャラクタ603を徐々に大きくすることで、ボール602が野手キャラクタ603へ向かって移動する様子を表現する。
対戦進行部115は、一例として、第2仮想カメラを、野手キャラクタ601の手を離れた瞬間のボール602との距離を維持したまま、ボール602とともに野手キャラクタ603へ向かって移動させる。あるいは、対戦進行部115は、一例として、ボール602が第2送球動作画面の中央付近に配置された状態が維持されるように、第2仮想カメラによる、送球先の野手キャラクタ603へのズームインを行わせる。このような第2仮想カメラの制御は、対戦進行部115が表示制御部112を制御することにより行われる。これにより、図7の(A)に示す、ボール602が中央付近に配置されたまま、野手キャラクタ603へ向かって移動する第2送球動作画面を実現することができる。また、このように構成することにより、野手キャラクタ601からのボール602の送球、野手キャラクタ603によるボール602の捕球、および、野手キャラクタ603による走者キャラクタ604へのタッチを、よりユーザの気分が盛り上がるように描出することができる。
図7の(B)に示すように、野手キャラクタ603がボール602を捕球すると、第2送球動作画面に、走者がアウトであるか、またはセーフであるかをユーザに示す送球結果画像(図示の例では「アウト」であることを示す送球結果画像703)が表示される。
以上のように、送球動作が第2送球動作に決定されたとき、守備画面を第2送球動作画面に変更し、該第2送球動作画面において、第2送球動作のアニメーションを描出させることにより、第2送球動作による送球が行われることをユーザに容易に認識させることができる。上述したように、第2送球動作は第1送球動作に比べて送球先へのボールの到達時間が短いため、走者キャラクタをアウトにする可能性が高くなる。このような送球動作を第2送球動作画面のような特別な画面で描出することにより、ユーザの気分を盛り上げることができ、ゲームの興趣性を向上させることができる。
また、第2送球動作画面として描出される領域は、球場を模したゲーム空間において、外野席側に配置された第2仮想カメラにより撮影された領域である。一方、守備画面として描出される領域は、該ゲーム空間において、バックネット側に配置された第1仮想カメラにより撮影された領域である。つまり、ゲーム画面が守備画面から第2送球動作画面に変更されることにより、仮想カメラによる撮影方向が大きく変わることとなる。よって、守備画面と第2送球動作画面との違いがより明確になり、ユーザの気分をより盛り上げることができる。
また、実際の野球の試合を中継する番組において、外野手が送球により走者をアウトにしたとき、視聴者の気分をより盛り上げるために、外野席側に設けられたカメラで撮影された映像がリプレイ映像として用いられることがある。本実施形態に係る野球ゲームは、該映像と類似した第2送球動作画面をリアルタイムで表示するため、ユーザの気分をより盛り上げることができる。
なお、第1仮想カメラは、第2仮想カメラが配置される位置と異なる位置、より好ましくは、外野席側とは異なる領域に配置されればよく、第1仮想カメラが配置される位置は、バックネット側に限定されない。一例として、第1仮想カメラは、球場を模したゲーム空間において、該球場の上空(天井)に配置されていてもよい。
また、第2仮想カメラが配置される位置は、少なくとも、第2送球動作による送球を行なう野手キャラクタ601を撮影可能な位置であればよく、外野席側の所定の位置に限定されない。一例として、該位置は、内野席付近の所定の位置であってもよいし、バックネット側の所定の位置であってもよい。換言すれば、該位置は、第2送球動作による送球を行なう野手キャラクタ601を横方向から撮影する位置であってもよいし、前方から撮影する位置であってもよい。
また、第2仮想カメラにより撮影された領域としての第2送球動作画面には、野手キャラクタ601が第2送球動作による送球を行なっているタイミングで、該野手キャラクタ601とともに、送球先の野手キャラクタ603(換言すれば、送球先の塁)が表示されていてもよいし、表示されていなくてもよい。また、第2送球動作画面において、野手キャラクタ601が第2送球動作による送球を行なった後、ボール602が野手キャラクタ603に到達するまで、第2送球動作を行った野手キャラクタ601が表示されていてもよいし、表示されていなくてもよい。
また、第2送球動作が行われた後、ボール602が野手キャラクタ603に到達するまでの画面は第2送球動作画面と異なる画面であってもよい。換言すれば、第2送球動作が行われた後、第2送球動作画面が、第2仮想カメラと異なる仮想カメラで撮影した画面に変更されてもよい。
また、第1送球動作のアニメーションは、守備画面で描出されるので、第1送球動作と第2送球動作との違いがより明確になり、ユーザの気分をより盛り上げることができる。
また、ボール602の送球先は、捕球時の走者キャラクタの有無および位置に基づいて、自動的に決定されるので、守備画面が第2送球動作画面に変更されたときに、ユーザが送球先を選択する操作を誤るといった問題が発生しない。換言すれば、ユーザは、心置きなく第2送球動作の演出を楽しむことができる。
<送球処理フロー>
図8は、ユーザ端末100が、ゲームプログラム131に基づいて実行する処理の流れの一例を示すフローチャートである。ステップS101にて、対戦進行部115は、打者キャラクタがボール602を打撃したか否かを判断する。打者キャラクタがボール602を打撃したと判定した場合、対戦進行部115は、ステップS101のYESから、ステップS102へ進む。ステップS102にて、対戦進行部115は、表示制御部112を制御して、守備画面を表示部152に表示させる。具体的には、表示制御部112は、第1仮想カメラで撮影された領域における、打者キャラクタが打撃したボールの動き、および、該ボールに対する野手キャラクタの動きを描出する守備画面を表示部152に表示させる。
ステップS103にて、対戦進行部115は、ボール602を捕球する野手キャラクタを決定する。具体的には、対戦進行部115は、野手キャラクタの動きと打撃されたボールの飛翔経路とに基づいて、ボール602を捕球する野手キャラクタを決定する。
ステップS104にて、対戦進行部115は、ボール602の捕球態様を決定する。具体的には、対戦進行部115は、野手キャラクタの動きと打撃されたボールの飛翔経路とに基づいて、ボール602を捕球すると決定した野手キャラクタが、ボール602がバウンドする前に捕球する(フライを捕球する)か、バウンドした後に捕球する(ゴロを捕球する)かを決定する。
フライを捕球すると決定した場合、対戦進行部115は、ステップS104のYESから、ステップS105へ進む。ステップS105にて、対戦進行部105は、アウトカウントを更新する。具体的には、対戦進行部115は、アウトカウントを1増やす。なお、図示の例は、アウトカウントを1増やした結果、アウトカウントが「1」または「2」となった場合を示している。図示してはいないが、アウトカウントが「3」になった場合、対戦進行部115は2チームの好守を交代させる。つまり、この場合、送球処理フローは終了する。一方、ゴロを捕球すると決定した場合(S104でNO)、対戦進行部115は、ステップS104のNOから、ステップS106へ進む。
ステップS106にて、対戦進行部115は、ボール602の送球先を決定する。具体的には、対戦進行部115は、野手キャラクタがボールを捕球したときの、走者キャラクタの有無および位置に基づいて、ボール602を送球する野手キャラクタを決定する。
ステップS107にて、対戦進行部115は、野手キャラクタ601の送球動作を決定し、送球動作のアニメーションを表示させる送球表示処理を実行する。該処理の詳細は、別図を参照して後述する。
対戦進行部115は、走者キャラクタが向かっている塁上の野手キャラクタへの送球である場合、ステップS108のYESから、ステップS109へ進む。ステップS109にて、対戦進行部115は、送球結果を決定する。具体的には、対戦進行部115は、送球先へのボールの到達タイミングと、走者キャラクタの塁への到達タイミングとのいずれが速いかに基づいて、走者キャラクタがアウトであるかまたはセーフであるかを決定する。
なお、ステップS103、S104、およびS106の処理は、野手キャラクタがボール602を捕球するまでの間に実行されていればよく、これらの処理の順序は、図示の例に限定されない。一例として、ボール602を捕球する野手キャラクタを決定する(ステップS103)前に、捕球態様を決定してもよい(ステップS104)。また、一例として、ステップS103、S104、およびS106の処理が同時に実行されてもよい。
<送球表示処理フロー>
図9は、ユーザ端末100が、ゲームプログラム131に基づいて実行する処理の流れの一例を示すフローチャートである。図9に示す各処理は、図8に示すステップS107の送球表示処理に対応する。
対戦進行部115は、ステップS103で決定した、ボール602を捕球する野手キャラクタが外野手である場合、ステップS201のYESから、ステップS202へ進む。ステップS202にて、対戦進行部115は、次の塁へ向かう走者キャラクタがいるか否かを判定する。
該走者キャラクタがいると判定した場合、対戦進行部115は、ステップS202のYESから、ステップS203へ進む。ステップS203にて、対戦進行部115は、ボール602を捕球した野手キャラクタの送球力が所定値以上であるか否かを判定する。具体的には、対戦進行部115は、ゲーム情報132としてユーザ端末100の記憶部120に格納されている、該野手キャラクタの選手情報に含まれる送球力の値を参照して、該送球力が所定値以上であるか否かを判定する。
該送球力が所定値以上であると判定した場合、対戦進行部115は、ステップS203のYESから、ステップS204へ進む。ステップS204にて、対戦進行部115は、該送球力の値に応じて決まる確率に基づいて、野手キャラクタによるボール602の送球動作を第2送球動作とするか否かを決定する。
第2送球動作とすると決定した場合、対戦進行部115は、ステップS204のYESから、ステップS205へ進む。ステップS205にて、対戦進行部115は、第2送球動作で送球した場合にボール602が塁上の野手キャラクタへ到達するタイミングと、走者キャラクタが該塁に到達するタイミングとの差(到達差)が所定値以下であるか否かを判定する。
該到達差が所定値以下であると判定した場合、対戦進行部115は、ステップS205のYESから、ステップS206へ進む。ステップS206にて、表示制御部112を制御して、守備画面を第2送球画面に変更させる。具体的には、表示制御部112は、守備画面に代えて、第2仮想カメラで撮影された領域における、ボール602を捕球した野手キャラクタを描出する第2送球画面を表示部152に表示させる。
ステップS207にて、対戦進行部115は、表示制御部112を制御して、ボール602を捕球した野手キャラクタによる第2送球動作のアニメーションを表示部152に表示させる。この場合、第2送球動作のアニメーションは、第2送球画面にて描出される。
ステップS205にて、該到達差が所定値より大きいと判定した場合、対戦進行部115は、ステップS205のNOから、ステップS207へ進む。すなわち、対戦進行部115は、第2送球動作のアニメーションを、守備画面にて描出させる。
また、以下(1)〜(4)の場合、対戦進行部115は、ステップS208へ進む。ステップS208にて、対戦進行部115は、ボール602を捕球した野手キャラクタによる第1送球動作のアニメーションを表示部152に表示させる。すなわち、対戦進行部115は、第1送球動作のアニメーションを、守備画面にて描出させる。
(1)ステップS201にて、外野手以外の野手が捕球したと判定した場合(S201でNO)。(2)ステップS202にて、次の塁へ向かう走者キャラクタがいないと判定した場合(S202でNO)。(3)ステップS203にて、ボール602を捕球した野手キャラクタの送球力が所定値未満であると判定した場合(S203でNO)。(4)ステップS204にて、送球動作を第2送球動作としないと決定した場合(S204でNO)。
〔実施形態2〕
第2送球動作の発生条件に係る、キャラクタの送球力は、相手チームとの対戦が進行する期間において、該相手チームに応じて調整されてもよい。一例として、該送球力は、自チームに属する各キャラクタの総合パラメータ802(第2パラメータ、図3参照)の合計値に基づいて算定されるチーム総合パラメータ(トータル第2パラメータ)と、相手チームに属する各キャラクタの総合パラメータ802の合計値に基づいて算定されるチーム総合パラメータとの比較結果に基づいて調整されてもよい。
総合パラメータ802は、スキル別身体パラメータ803が示すスキルの種別に関係なく、キャラクタの総合的な強さを数値化したものであり、図3に示すように、キャラクタごとに設定される。総合パラメータ802は、例えば、対戦時に、一方のユーザが使用する投手キャラクタと、他方のユーザが使用する打者キャラクタの強さを比較するために参照されてもよい。具体的には、総合パラメータ802が相手を上回ったキャラクタが対戦において有利となるような処理がなされてもよい。
図10は、対戦が開始される直前に表示される対戦開始画面の一具体例を示す図である。対戦進行部115は、対戦を開始する前に、自チームの強さと相手チームの強さとを比較する。図10に示す対戦開始画面900には、その比較結果が示されている。
対戦進行部115は、チームを構成する各キャラクタの総合パラメータ802を合計して、総合パラメータ802の合計値を算定し、該合計値に基づいて、チームの強さの指標としての、チーム総合パラメータ(トータル第2パラメータ)を得る。チーム総合パラメータは、単純に、チームを構成する9名の各キャラクタの総合パラメータ802を合計することにより得られてもよい。あるいは、対戦進行部115は、チーム総合パラメータを、さまざまな要因に基づいて、上述の基準の合計値から増減することにより得てもよい。あるいは、他の例では、相性の良い特定のキャラクタ同士を同じチームに編成することによって、チーム総合パラメータが加算されてもよい。チーム総合パラメータは、加算条件をうまくそろえることによって高騰させやすい値であり、このような加算条件をそろえることも、ゲームの興趣性を向上させることに貢献している。
対戦進行部115は、対戦前に、自チームのチーム総合パラメータと、相手チームのチーム総合パラメータとを比較する。なお、相手チームのチーム総合パラメータは、サーバ200を介して、自機に送信される。そして、該対戦が進行する期間、チーム総合パラメータが低い方のチームにおける各キャラクタのスキル別身体パラメータ803をマイナス補正する。図10に示す例では、自チームのチーム総合パラメータ901が、相手チームのチーム総合パラメータ902を下回っている。そこで、対戦進行部115は、該対戦の間、自チームに属する各キャラクタのスキル別身体パラメータ803を、それぞれ、チーム総合パラメータの差に応じて減算する。一例として、対戦進行部115は、チーム総合パラメータの差が大きいほど、スキル別身体パラメータ803の減算量を大きくする。対戦進行部115は、チーム総合パラメータが高い方のチームにおける各キャラクタのスキル別身体パラメータ803をプラス補正してもよい。なお、対戦進行部115は、スキル別身体パラメータ803のうち、送球力を含む一部のパラメータのみを、マイナス補正またはプラス補正してもよい。
図11は、スキル別身体パラメータを補正するための補正テーブルのデータ構造の一具体例を示す図である。該補正テーブルは、ユーザ端末100の記憶部120において、ゲーム情報132として格納されている。該補正テーブルは、対戦進行部115が、対戦前にスキル別身体パラメータ803を調整するために、対戦進行部115によって参照される。
補正テーブルは、一例として、チーム総合パラメータの差(S)、および、減算量のカラムを含む。カラム「チーム総合パラメータの差(S)」には、チーム総合パラメータの差に係る数値範囲が複数格納されている。カラム「減算量」には、チーム総合パラメータの差がいずれの数値範囲に含まれるかに応じた、スキル別身体パラメータ803の減算量が、スキル別身体パラメータ803の値に対する割合として格納されている。
図示の例では、チーム総合パラメータの差(S)「S<1000」に、減算量「5%」が対応付けられている。すなわち、チーム総合パラメータの差が1000未満である場合、対戦進行部115は、対戦前に、各キャラクタの各スキル別身体パラメータ803の値から、該値の5%を減算する。また、図示の例では、チーム総合パラメータの差(S)「1000≦S<2000」に、減算量「10%」が対応付けられている。すなわち、チーム総合パラメータの差が1000以上2000未満である場合、対戦進行部115は、対戦前に、各キャラクタの各スキル別身体パラメータ803の値から、該値の10%を減算する。また、図示の例では、チーム総合パラメータの差(S)「2000≦S<3000」に、減算量「15%」が対応付けられている。すなわち、チーム総合パラメータの差が2000以上3000未満である場合、対戦進行部115は、対戦前に、各キャラクタの各スキル別身体パラメータ803の値から、該値の15%を減算する。また、図示の例では、チーム総合パラメータの差(S)「3000≦S」に、減算量「20%」が対応付けられている。すなわち、チーム総合パラメータの差が3000以上である場合、対戦進行部115は、対戦前に、各キャラクタの各スキル別身体パラメータ803の値から、該値の20%を減算する。
図10に示す例では、自チームのチーム総合パラメータ901が、相手チームのチーム総合パラメータ902を下回っており、その差は「1320」である。このため、対戦進行部115は、図11に示す補正テーブルを参照し、各キャラクタのスキル別身体パラメータ803の値から、該値の10%を減算する。これにより、例えば、図3の選手情報画面800に表示された選手情報が示すキャラクタが自チームに属している場合、該キャラクタの送球力は、520(B)から468(C)となる。
この補正により、該キャラクタは、第2送球動作の発生条件である「送球力が所定値以上(B以上)である」を満たさなくなる。よって、図10に示す対戦時に、該キャラクタがボール602を捕球しても、送球動作は第2送球動作とならない。
以上のように、チーム総合パラメータの比較結果によって、送球力がマイナス補正されることにより、補正前に第2送球動作の発生条件を満たしていたキャラクタが、該発生条件を満たさなくなる場合がある。一方、該比較結果によって送球力がプラス補正される例の場合、補正前に第2送球動作の発生条件を満たしていなかったキャラクタが、該発生条件を満たす場合がある。
これにより、ユーザに対して、自チームのチーム総合パラメータがより高くなるようにチームを編成しようとする動機づけを与えることができる。また、チーム編成の結果、対戦が有利になったり、または不利になったりするので、戦略性が向上し、結果としてゲームの興趣性が向上する。
また、2チームのチーム総合パラメータの差が大きいほど、スキル別身体パラメータ803の調整量が大きくなるので、自チームのチーム総合パラメータを高くするほど、相手チームの外野手が第2送球動作を行えなくなる可能性が高くなる。これにより、ユーザに対して、自チームのチーム総合パラメータがより高くなるようにチームを編成しようとする動機づけを、より強く与えることができる。
なお、スキル別身体パラメータ803の調整量は、2チームのチーム総合パラメータの差によらず一定であってもよい。
<パラメータ調整処理フロー>
図12は、ユーザ端末100が、ゲームプログラム131に基づいて実行する処理の流れの一例を示すフローチャートである。ステップS301にて、対戦進行部115は、自チームのチーム総合パラメータを算定する。対戦相手のユーザ端末100から、相手チームのチーム総合パラメータを受信すると、対戦進行部115は、ステップS302のYESから、ステップS303へ進む。ステップS303にて、対戦進行部115は、自チームのチーム総合パラメータと、相手チームのチーム総合パラメータとを比較する。
自チームのチーム総合パラメータが、相手チームのチーム総合パラメータより低い場合、対戦進行部115は、ステップS303のYESから、ステップS304へ進む。ステップS304にて、対戦進行部115は、自チームのチーム総合パラメータと、相手チームのチーム総合パラメータとの差に応じた、スキル別身体パラメータ803の減算量を特定する。具体的には、対戦進行部115は、補正テーブルを参照して、スキル別身体パラメータ803の減算量を特定する。
ステップS305にて、対戦進行部115は、特定した減算量に基づいて、スキル別身体パラメータ803を調整する。具体的には、対戦進行部115は、対戦が開始されると、自チームの各キャラクタのスキル別身体パラメータ803を、特定した減算量に基づいて調整する。調整後のスキル別身体パラメータ803は、該対戦が終了するまで維持される。
〔ソフトウェアによる実現例〕
制御部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) プロセッサ(10)、メモリ(11)、操作部(151)および表示部(152)を備えるコンピュータ(ユーザ端末100)において実行されるゲームプログラム(131)について説明した。本開示のある局面によると、ゲームプログラムに基づくゲームは、ユーザが操作する1以上のキャラクタが属する自チームと相手チームとを対戦させる野球ゲームである。ゲームプログラムは、プロセッサに、ゲーム空間に配置された第1仮想カメラによって撮影された領域が描出される、打者が打撃したボールを含む第1画面を表示部に表示させるステップ(S102)と、所定の条件を満たした場合、ボールを捕球する野手によるボールの送球動作を、第1送球動作に比べて送球先へのボールの到達時間が短い第2送球動作に決定するステップ(S204)と、第2送球動作に決定された場合、第1画面を、第1仮想カメラと異なる、ゲーム空間に配置された第2仮想カメラによって撮影された領域が描出される、野手が第2送球動作で送球を行っている第2画面に変更するステップ(S206)と、を実行させる。これにより、ゲームの興趣性を向上させるという効果を奏する。
(項目2) (項目1)において、ゲーム空間は、球場を模して定義されており、第2仮想カメラは、球場の外野席側の所定の位置に配置され、第1仮想カメラは、外野席とは異なる領域に配置されていてもよい。これにより、第1画面と第2画面との差を大きくし、ゲームの興趣性を向上させるという効果を奏する。
(項目3) (項目1)または(項目2)において、変更するステップでは、第2画面において、第2送球動作で送球されたボールを、表示部の略中央に配置した状態で送球先まで移動させてもよい。これにより、第2送球動作でボールが送球されてからのオブジェクトの動きを、よりユーザの気分が盛り上がるように描出することができる。
(項目4) (項目1)から(項目3)までのいずれか1項目において、変更するステップでは、さらに、捕球時の操作の位置に基づいて決定される、走者が塁に到達するタイミングと第2送球動作で送球されたときのボールが塁上の野手に到達するタイミングとの差が所定値以下である場合、第1画面を第2画面に変更してもよい。これにより、ユーザの気分がより盛り上がる場面で第1画面が第2画面に変更されることとなり、第2画面の希少性を高めることができる。
(項目5) (項目1)から(項目4)までのいずれか1項目において、所定の条件は、ボールを捕球する野手に設定された、ボールの送球に係る第1パラメータが所定値以上であることを含んでもよい。これにより、限られたキャラクタのみが第2送球動作での送球を行なうことができるので、第2送球動作の希少性を高めることができる。
(項目6) (項目5)において、ゲームプログラムは、プロセッサに、自チームに属するキャラクタに設定されている、キャラクタの総合的な強さを示す第2パラメータの合計値に基づいて算定される自チームのトータル第2パラメータと、相手チームのトータル第2パラメータとを比較するステップ(S303)と、比較結果に基づいて、相手チームとの対戦が進行する期間において、自チームに属する各キャラクタの第1パラメータを調整するステップ(S305)と、をさらに実行させてもよい。これにより、ユーザは、第1パラメータをより高くして、第2送球動作が行われるようにするために、トータル第2パラメータがより高くなるように自チームに属するキャラクタを編成する。よって、戦略性が向上し、結果としてゲームの興趣性が向上する。
(項目7) (項目6)において、調整するステップでは、自チームのトータル第2パラメータと、相手チームのトータル第2パラメータとの差が大きいほど、第1パラメータの調整量を大きくしてもよい。これにより、ユーザに対して、トータル第2パラメータがより高くなるように自チームに属するキャラクタを編成しようとする動機づけを、より強く与えることができる。
(項目8) (項目1)から(項目7)までのいずれか1項目において、決定するステップでは、所定の条件を満たしていない場合、ボールを捕球する野手によるボールの送球動作を、第1送球動作に決定し、ゲームプログラムは、プロセッサに、第1送球動作に決定された場合、第1画面において、第1送球動作で送球を行なっている該野手を描出するステップ(S208)をさらに実行させてもよい。これにより、第1送球動作と、第2画面で描出される第2送球動作との差がより明確になり、ユーザの気分をより盛り上げることができる。
(項目9) (項目1)から(項目8)までのいずれか1項目において、ゲームプログラムは、プロセッサに、捕球時の走者の有無および位置に基づいて送球先を決定するステップをさらに実行させてもよい。これにより、送球先が自動的に決定されるので、画面の変更によりユーザが送球先の選択する操作を誤るといった問題がそもそも発生しない。よって、ユーザは、心置きなく第2送球動作の演出を楽しむことができる。
(項目10) ゲームプログラムを実行する方法を説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ、メモリ、操作部および表示部を備えるコンピュータにより実行される。該方法は、プロセッサが(項目1)に記載の各ステップを実行する方法である。(項目10)に係る方法は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。
(項目11) 情報処理装置を説明した。本開示のある局面によると、該情報処理装置は、(項目1)に係るゲームプログラムを記憶する記憶部(120)と、該ゲームプログラムを実行することにより、情報処理装置(ユーザ端末100)の動作を制御する制御部(110)とを備える。(項目11)に係る情報処理装置は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。