〔実施形態1〕
本開示に係るゲームシステムは、複数のユーザにゲームを提供するためのシステムである。以下、ゲームシステムについて図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
<ゲームシステム1のハードウェア構成>
図1は、ゲームシステム1のハードウェア構成を示す図である。ゲームシステム1は図示の通り、複数のユーザ端末100と、サーバ200とを含む。各ユーザ端末100は、サーバ200とネットワーク2を介して接続する。ネットワーク2は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution)、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が挙げられる。
サーバ200(コンピュータ、情報処理装置)は、ワークステーションまたはパーソナルコンピュータ等の汎用コンピュータであってよい。サーバ200は、プロセッサ20と、メモリ21と、ストレージ22と、通信IF23と、入出力IF24とを備える。サーバ200が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
ユーザ端末100(コンピュータ、情報処理装置)は、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。ユーザ端末100は、ゲームプレイに適したゲーム装置であってもよい。ユーザ端末100は図示の通り、プロセッサ10と、メモリ11と、ストレージ12と、通信インターフェース(IF)13と、入出力IF14と、タッチスクリーン15(表示部)と、カメラ17と、測距センサ18とを備える。ユーザ端末100が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、ユーザ端末100は、タッチスクリーン15に代えて、または、加えて、ユーザ端末100本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF14を備えていてもよい。
また、図1に示すように、ユーザ端末100は、1つ以上のコントローラ1020と通信可能に構成されることとしてもよい。コントローラ1020は、例えば、Bluetooth(登録商標)等の通信規格に従って、ユーザ端末100と通信を確立する。コントローラ1020は、1つ以上のボタン等を有していてもよく、該ボタン等に対するユーザの入力操作に基づく出力値をユーザ端末100へ送信する。また、コントローラ1020は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値をユーザ端末100へ送信する。
なお、ユーザ端末100がカメラ17および測距センサ18を備えることに代えて、または、加えて、コントローラ1020がカメラ17および測距センサ18を有していてもよい。
ユーザ端末100は、例えばゲーム開始時に、コントローラ1020を使用するユーザに、該ユーザの名前またはログインID等のユーザ識別情報を、該コントローラ1020を介して入力させることが望ましい。これにより、ユーザ端末100は、コントローラ1020とユーザとを紐付けることが可能となり、受信した出力値の送信元(コントローラ1020)に基づいて、該出力値がどのユーザのものであるかを特定することができる。
ユーザ端末100が複数のコントローラ1020と通信する場合、各コントローラ1020を各ユーザが把持することで、ネットワーク2を介してサーバ200などの他の装置と通信せずに、該1台のユーザ端末100でマルチプレイを実現することができる。また、各ユーザ端末100が無線LAN(Local Area Network)規格等の無線規格により互いに通信接続する(サーバ200を介さずに通信接続する)ことで、複数台のユーザ端末100によりローカルでマルチプレイを実現することもできる。1台のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、ユーザ端末100は、さらに、サーバ200が備える後述する種々の機能の少なくとも一部を備えていてもよい。また、複数のユーザ端末100によりローカルで上述のマルチプレイを実現する場合、複数のユーザ端末100は、サーバ200が備える後述する種々の機能を分散して備えていてもよい。
なお、ローカルで上述のマルチプレイを実現する場合であっても、ユーザ端末100はサーバ200と通信を行ってもよい。例えば、あるゲームにおける成績または勝敗等のプレイ結果を示す情報と、ユーザ識別情報とを対応付けてサーバ200に送信してもよい。
また、コントローラ1020は、ユーザ端末100に着脱可能な構成であるとしてもよい。この場合、ユーザ端末100の筐体における少なくともいずれかの面に、コントローラ1020との結合部が設けられていてもよい。該結合部を介して有線によりユーザ端末100とコントローラ1020とが結合している場合は、ユーザ端末100とコントローラ1020とは、有線を介して信号を送受信する。
図1に示すように、ユーザ端末100は、外部のメモリカード等の記憶媒体1030の装着を、入出力IF14を介して受け付けてもよい。これにより、ユーザ端末100は、記憶媒体1030に記録されるプログラム及びデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、例えばゲームプログラムである。
ユーザ端末100は、サーバ200等の外部の装置と通信することにより取得したゲームプログラムをユーザ端末100のメモリ11に記憶してもよいし、記憶媒体1030から読み込むことにより取得したゲームプログラムをメモリ11に記憶してもよい。
以上で説明したとおり、ユーザ端末100は、該ユーザ端末100に対して情報を入力する機構の一例として、通信IF13、入出力IF14、タッチスクリーン15、カメラ17、および、測距センサ18を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
例えば、操作部が、カメラ17および測距センサ18の少なくともいずれか一方で構成される場合、該操作部が、ユーザ端末100の近傍の物体1010を検出し、当該物体の検出結果から入力操作を特定する。一例として、物体1010としてのユーザの手、予め定められた形状のマーカーなどが検出され、検出結果として得られた物体1010の色、形状、動き、または、種類などに基づいて入力操作が特定される。より具体的には、ユーザ端末100は、カメラ17の撮影画像からユーザの手が検出された場合、該撮影画像に基づき検出されるジェスチャ(ユーザの手の一連の動き)を、ユーザの入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
あるいは、操作部がタッチスクリーン15で構成される場合、ユーザ端末100は、タッチスクリーン15の入力部151に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF13で構成される場合、ユーザ端末100は、コントローラ1020から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF14で構成される場合、該入出力IF14と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
<各装置のハードウェア構成要素>
プロセッサ10は、ユーザ端末100全体の動作を制御する。プロセッサ20は、サーバ200全体の動作を制御する。プロセッサ10および20は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。
プロセッサ10は後述するストレージ12からプログラムを読み出し、後述するメモリ11に展開する。プロセッサ20は後述するストレージ22からプログラムを読み出し、後述するメモリ21に展開する。プロセッサ10およびプロセッサ20は展開したプログラムを実行する。
メモリ11および21は主記憶装置である。メモリ11および21は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置で構成される。メモリ11は、プロセッサ10が後述するストレージ12から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ10に作業領域を提供する。メモリ11は、プロセッサ10がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ21は、プロセッサ20が後述するストレージ22から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ20に作業領域を提供する。メモリ21は、プロセッサ20がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
本実施形態においてプログラムとは、ゲームをユーザ端末100により実現するためのゲームプログラムであってもよい。あるいは、該プログラムは、該ゲームをユーザ端末100とサーバ200との協働により実現するためのゲームプログラムであってもよい。なお、ユーザ端末100とサーバ200との協働により実現されるゲームは、一例として、ユーザ端末100において起動されたブラウザ上で実行されるゲームであってもよい。あるいは、該プログラムは、該ゲームを複数のユーザ端末100の協働により実現するためのゲームプログラムであってもよい。また、各種データとは、ユーザ情報およびゲーム情報などのゲームに関するデータ、ならびに、ユーザ端末100とサーバ200との間または複数のユーザ端末100間で送受信する指示または通知を含んでいる。
ストレージ12および22は補助記憶装置である。ストレージ12および22は、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置で構成される。ストレージ12およびストレージ22には、ゲームに関する各種データが格納される。
通信IF13は、ユーザ端末100における各種データの送受信を制御する。通信IF23は、サーバ200における各種データの送受信を制御する。通信IF13および23は例えば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。
入出力IF14は、ユーザ端末100がデータの入力を受け付けるためのインターフェースであり、またユーザ端末100がデータを出力するためのインターフェースである。入出力IF14は、USB(Universal Serial Bus)等を介してデータの入出力を行ってもよい。入出力IF14は、例えば、ユーザ端末100の物理ボタン、カメラ、マイク、または、スピーカ等を含み得る。サーバ200の入出力IF24は、サーバ200がデータの入力を受け付けるためのインターフェースであり、またサーバ200がデータを出力するためのインターフェースである。入出力IF24は、例えば、マウスまたはキーボード等の情報入力機器である入力部と、画像を表示出力する機器である表示部とを含み得る。
ユーザ端末100のタッチスクリーン15は、入力部151と表示部152とを組み合わせた電子部品である。入力部151は、例えばタッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部152は、例えば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。
入力部151は、入力面に対しユーザの操作(主にタッチ操作、スライド操作、スワイプ操作、およびタップ操作等の物理的接触操作)が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部151は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。なお、タッチスクリーン15に対し入力操作を行うための指示体は特に限定されない。例えば、指示体はユーザの手指であっても、スタイラスペン等であってもよい。
図示していないが、ユーザ端末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が実現するゲームは、ユーザの操作内容(例えば、操作スピード、タイミング、およびテクニック等)に応じて異なる進行を経るゲームである。換言すると、ゲームシステム1が実現するゲームは、ユーザの操作の習熟度に応じて異なる結果を返すゲームである。
例えば、ゲームシステム1がステージまたはクエストをクリアすることで進行するゲームを実現する場合、該ゲームは、ユーザの操作内容に応じて、ステージまたはクエストクリアの成否、クリアタイム、およびスコア等が変化するゲームである。また例えば、ゲームシステム1が対戦型のゲームを実現する場合、該ゲームは、ユーザの操作内容に応じて対戦の勝敗、対戦の試合運び、およびスコア等が変化するゲームである。
ゲームシステム1が実現するゲームのジャンルは特に限定されない。例えば、ゲームはパズルゲーム、クイズゲーム、RPG(ロールプレイングゲーム)、アドベンチャーゲーム、シューティングゲーム、シミュレーションゲーム、育成ゲーム、ならびに、アクションゲームなどであってもよい。また、ゲームシステム1が実現するゲームの題材も特に限定されない。例えば、ゲームはテニス、卓球、ドッジボール、野球、サッカーおよびホッケーなどのスポーツを題材としたスポーツゲームであってもよい。
また、ゲームシステム1が実現するゲームは、特定のプレイ形態に限らず、あらゆるプレイ形態のゲームであってよい。例えば、単一のユーザによるシングルプレイゲーム、および、複数のユーザによるマルチプレイゲーム、また、マルチプレイゲームの中でも、複数のユーザが対戦するマルチ対戦ゲーム、および、複数のユーザが協力する協力プレイゲームなどであってもよい。
しかしながら、ゲームシステム1が実現するゲームは、複数のユーザの間で、タイム、スコア、対戦成績等、何らかの要素を競わせるゲームであることが望ましい。ユーザは通常、競争に勝ちたいと考えてゲームをプレイする。そのため、ゲームに競争要素を含ませ、操作内容に応じて競争の勝敗が決するようにすることで、ユーザに操作の習熟を促すことができる。
さらには、ゲームシステム1が実現するゲームは、ユーザ(第1ユーザ)と他のユーザとの対戦により進行する対戦パートを含むことが望ましい。なお、本実施形態における「対戦」はマルチ対戦(所謂、PvP(Player vs Player))に限られない。例えば、1人以上のユーザとNPC(non player character)との対戦(所謂、CPU戦)も対戦に含まれる。また、スポーツゲームにおける試合も対戦に含まれる。
ユーザは通常、対戦に勝ちたいと考えてゲームをプレイする。したがって、ゲームに対戦要素を含ませ、操作内容に応じて対戦の勝敗が決するようにすることで、ユーザに操作の習熟を促すことができる。
以下では、本実施形態に係るゲームシステム1が、対戦パートを含むテニスゲームを実現した例について説明する。テニスゲームでは、ユーザはユーザ端末100に対し入力操作を行うことで、ゲーム内のキャラクタを操作してテニスをプレイする。以降の説明では「入力操作に基づいて動作する操作可能なキャラクタ」を「操作キャラクタ」と称する。
テニスゲームは、あるユーザの操作キャラクタ(第1のキャラクタ)と、NPCまたは他端末のキャラクタとがゲーム空間においてテニスの対戦試合(以下、単に試合と称する)を行う対戦パートを含む。他端末のキャラクタとは、前述の操作キャラクタを動かすユーザ端末100と異なる、他のユーザ端末100における操作キャラクタを示す。以降、操作キャラクタと対戦するNPC、または操作キャラクタと対戦する他端末のキャラクタをまとめて「相手キャラクタ」と称する。相手キャラクタは1体であっても複数であってもよい。
また、テニスゲームは、対戦パートにおいてダブルスの試合が可能であってもよい。すなわち、テニスゲームは、ユーザの操作キャラクタ(第1のキャラクタ)および味方キャラクタ(第2のキャラクタ)で結成されるペアと、2体の相手キャラクタで結成されるペアとでテニスのダブルスの試合を行ってもよい。味方キャラクタは、操作キャラクタのユーザと異なるユーザの入力操作に基づいて動作するキャラクタである。
テニスゲームにおける試合は、実際のテニスのルールを基本として、適宜追加または変更された所定のルールに則って行われる。以降の説明では、実際のテニスのルールについて詳細な説明は行わない。
<ゲームシステム1の動作概要>
ゲームシステム1において、ユーザ端末100は、ユーザの操作履歴を記録する。ここで、「操作履歴」とは、ゲームにおけるユーザの所定期間の操作内容を、該操作履歴を記録したユーザ端末100、または該ユーザ端末100以外の他の装置で再現して表示するためのデータである。ユーザ端末100は記録した操作履歴をサーバ200に送信する。
本実施形態に係るゲームシステム1では、ユーザ端末100は、テニスゲームの1回の試合(すなわち、試合の開始から終了までの期間)におけるユーザ(第1ユーザ)の操作履歴を含む試合ログを記録する。試合ログのデータ構造の詳細については後述する。
図2は、ゲームシステム1に含まれるユーザ端末100およびサーバ200の、動作概要を示す図である。図2の状態(A)は、操作履歴を記録する場合のゲームシステム1の動作概要の一例を示している。同図に示すように、ユーザAのユーザ端末100は、ユーザAとユーザBとの試合における、ユーザAの操作履歴を記録する。記録された操作履歴は、サーバ200に送信される。なお、試合の操作履歴を記録するか否かは、所定の条件に基づいて決定される。該条件については後述する。サーバ200は、複数のユーザ端末100から操作履歴を収集して記憶する。
ゲームシステム1において、ユーザ端末100は、サーバ200から操作履歴を受信して、該受信した操作履歴を表示部152において再現して表示してもよい。なお、ユーザ端末100が受信する操作履歴は、自端末が記録および送信した操作履歴に限られない。また、例えば対戦も操作履歴の送信も行っていないユーザCのユーザ端末100で、操作履歴の受信および再現が可能であってもよい。また、サーバ200が収集した操作履歴のうち、どの操作履歴を受信および再現するかを決定するのは、ユーザ端末100であってもよいし、サーバ200であってもよい。
図2の状態(B)は、操作履歴を再現する場合のゲームシステム1の動作概要を示している。図示の例では、サーバ200が、収集した操作履歴のうち1つ以上の操作履歴を選抜し、該選抜した操作履歴をユーザ端末100に送信する。操作履歴を受信したユーザ端末100は、自端末の表示部152において該操作履歴を再現して表示する。例えば、操作履歴がスポーツの対戦試合の操作履歴であった場合、ユーザ端末100は、該操作履歴として記録された、あるユーザの試合中の操作内容を再現して表示する。
<ゲームシステム1の機能的構成>
図3は、ゲームシステム1に含まれるサーバ200およびユーザ端末100の機能的構成を示すブロック図である。サーバ200およびユーザ端末100のそれぞれは、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。
ユーザ端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能する。
サーバ200は、各ユーザ端末100と通信して、ユーザ端末100がゲームを進行させるのを支援する機能を有する。例えば、有価データの販売、サービスの提供などを実行する。ゲームがマルチプレイゲームである場合には、サーバ200は、ゲームに参加する各ユーザ端末100と通信して、ユーザ端末100同士のやりとりを仲介する機能を有していてもよい。サーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24等の協働によって、制御部210および記憶部220として機能する。
記憶部120は、ゲームプログラム131、ゲーム情報132、ユーザ情報133、および試合ログ134を格納する。記憶部220は、ゲームプログラム231、ゲーム情報232、およびユーザ情報233を格納する。
ゲームプログラム131は、ユーザ端末100で実行するゲームプログラムである。ゲームプログラム231は、サーバ200で実行するゲームプログラムである。ゲーム情報132は、制御部110がゲームプログラム131を実行する際に参照するデータである。ゲーム情報232は、制御部210がゲームプログラム131を実行する際に参照するデータである。
ユーザ情報133およびユーザ情報233は、ユーザのアカウントに関する情報(アカウント情報)である。ユーザ情報133は、ユーザ端末100と対応付けられているアカウント情報である。本実施形態では、1台のユーザ端末100に、1つのアカウントが対応付けられている例について説明する。
ユーザ情報233は、各ユーザ端末100から収集されたユーザ情報133をまとめたデータである。したがって、ユーザ情報133とユーザ情報233とが含む情報の項目は同一である。
試合ログ134は、ゲーム内での試合内容のログデータである。試合ログ134は少なくとも、ユーザ端末100に対応付けられているユーザの操作履歴を含む。また、試合ログ134は、相手キャラクタの動作を再現して表示するための情報も含まれていてよい。また、試合がダブルスの試合である場合、試合ログ134には、味方キャラクタの動作を再現して表示するための情報も含まれていてもよい。相手キャラクタまたは味方キャラクタが他端末のキャラクタである場合、試合ログ134には該情報として、例えば、該他端末を操作しているユーザの操作履歴が含まれていてもよい。また、味方キャラクタまたは相手キャラクタがNPCである場合、該NPCの動作または思考結果を示す情報が含まれていても良い。
また、試合ログ134には、試合を記録したユーザを特定する情報(ユーザ特定情報)が含まれていてもよい。例えば、試合ログ134には、ユーザ特定情報として、記録を取ったユーザの名称が含まれていてもよい。
また、試合ログ134には、記録した試合を特定するための情報(試合特定情報)が含まれていてもよい。例えば、試合ログ134には、試合特定情報として試合の日時が含まれていてもよい。また、試合ログ134には、対戦相手のユーザの名称、ユーザがペアを組んだ相手のユーザの名称等が含まれていてもよい。
また、試合ログ134には、操作キャラクタ、味方キャラクタ、および相手キャラクタ、およびこれらのキャラクタに対する控えキャラクタ(後述)を特定するための情報(キャラクタ特定情報)が含まれていてもよい。
試合ログ234は、各ユーザ端末100から収集した1つ以上の試合ログ134をまとめたデータである。したがって、試合ログ134と試合ログ234とが含む情報は同一である。
(サーバ200の機能的構成)
制御部210は、記憶部220に格納されたゲームプログラム231を実行することにより、サーバ200を統括的に制御する。例えば、制御部210は、ユーザ端末100に各種データおよびプログラム等を送信する。ゲームがマルチプレイゲームである場合には、制御部210は、ユーザ端末100からマルチプレイの同期の要求を受信して、同期のためのデータをユーザ端末100に送信してもよい。
制御部210は、ゲームプログラム231の記述に応じて、送受信部211、サーバ処理部212、およびデータ管理部213として機能する。制御部210は、実行するゲームの性質に応じて、ユーザ端末100におけるゲームの進行を支援するために、図示しないその他の機能ブロックとしても機能することができる。
送受信部211は、ユーザ端末100から各種データおよびリクエストを受信する。例えば、送受信部211は、ゲーム情報132もしくはユーザ情報133の一部または全部を、ユーザ端末100から受信する。例えば、送受信部211は、ユーザ端末100から、該端末において記録された試合ログ134を受信する。例えば、送受信部211は、ユーザ端末100から、選抜された試合の試合ログを特定するための情報(試合ログ特定情報)の送信リクエストを受信する。
また、送受信部211は、ユーザ端末100に対し各種データおよびリクエストを送信する。例えば、送受信部211は、試合ログ特定情報の送信リクエストの送信元であるユーザ端末100に対して、試合ログ特定情報を送信する。また、送受信部211は、ユーザ端末100に対し、試合ログの記録を指示するリクエストを送信してもよい。
サーバ処理部212は、ゲームを提供するために必要な演算処理を行う。サーバ処理部212は送受信部211に対し、各種データの送信を指示する。サーバ処理部212は、データ管理部213に対し、ゲーム情報232、ユーザ情報233、および試合ログ234のレコードの追加、更新、または削除を指示する。
データ管理部213は、記憶部220に格納されているデータを管理する。データ管理部213は、サーバ処理部212からの指示に応じてゲーム情報232、ユーザ情報233、および試合ログ234のレコードの、追加、更新、または削除を実行する。データ管理部213は、サーバ処理部212の指示に従って、記憶部220からゲーム情報232、ユーザ情報233、および試合ログ234のうち少なくとも1つの情報を読み出してもよい。また、データ管理部213は、読み出した該情報を、送受信部211を介してユーザ端末100に送信してもよい。データ管理部213は、サーバ処理部212の指示に従って、ゲームプログラム231のうち、あるユーザ端末100で実行する分のプログラムを記憶部220から読み出して、送受信部211を介し該ユーザ端末100に送信してもよい。
(ユーザ端末100の機能的構成)
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム131およびユーザの操作にしたがって、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。
制御部110は、ゲームプログラム131の記述に応じて、操作受付部111、ゲーム進行部112、カメラ配置制御部113、オブジェクト制御部114、表示制御部115、および通信部116として機能する。制御部110は、実行するゲームの性質に応じて、ゲームを進行させるために、図示しないその他の機能ブロックとしても機能することができる。
操作受付部111は、入力部151に対するユーザの入力操作を検知し受け付ける。操作受付部111は、タッチスクリーン15およびその他の入出力IF14を介したコンソールに対してユーザが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部110の各要素に出力する。
例えば、操作受付部111は、入力部151に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部111は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部111は、連続して検知されていた入力が途切れると、タッチスクリーン15から接触入力が解除されたことを検知する。
通信部116は、サーバ200に対し各種データおよびリクエストを送信する。例えば、通信部116は試合ログ134をサーバ200に送信する。例えば、通信部116は、試合ログ特定情報の送信リクエストをサーバ200に送信する。
また、通信部116は、サーバ200から各種データおよびリクエストを受信する。例えば、通信部116は、ゲーム情報232もしくはユーザ情報233の一部または全部を、サーバ200から受信する。例えば、通信部116は、サーバ200から試合ログ特定情報を受信する。また、通信部116は、試合ログの記録を指示するリクエストをサーバ200から受信してもよい。
ゲーム進行部112は、ゲームの進行に係る各種処理を行う。例えば、ゲーム進行部112は、操作受付部111が受け付けた入力操作の位置の座標と、操作の種類と、ゲームの進行状況とに基づいて、ユーザの指示内容を特定する。また、ゲーム進行部112は、記憶部120に記憶された、ゲーム情報132、ユーザ情報133、および試合ログ134の追加、更新、または削除を行う。ゲーム進行部112は、試合ログ記録部141、報酬付与部142、および試合ログ再生部143を含む。また、ゲーム進行部112は、ゲームの進行に係る各種判定処理を行う。
試合ログ記録部141は、1試合の開始から終了までのログを記録する。試合ログ記録部141は、1回の試合が終了すると、記録したログをまとめて、試合ログ134として記憶部120に記録する。試合ログ記録部141のログの記録方法については、後で詳述する。
報酬付与部142は、ユーザ端末100に対応付けられているユーザ(ユーザアカウント)に対し報酬を付与する。報酬付与部142が付与する報酬の種類および付与形態は特に限定されない。例えば、報酬付与部142はゲーム内通貨およびゲーム内で使用する消費アイテム等であってもよい。しかしながら、報酬は、ゲーム内で使用するものであることが望ましい。ユーザにゲーム内で使用する報酬を与えることにより、該ユーザにゲームをプレイする動機を与えることができるからである。
また、報酬付与部142は、ユーザが所有している1以上のキャラクタに対して付与されてもよい。キャラクタはユーザの所有物であるため、報酬付与部142は結果的に特定のユーザに対して報酬を付与しているといえる。
試合ログ再生部143は、通信部116が受信した試合ログ134を再生する。また、試合ログ再生部143は、試合ログの再生の再生途中での終了、一時停止、および高速再生を実行してもよい。試合ログ再生部143による試合ログ134の再生方法は、後で詳述する。
カメラ配置制御部113は、ゲーム空間のうちユーザに提示する領域を指定するための仮想カメラを規定する。カメラ配置制御部113は、仮想カメラのゲーム空間内での位置および向きを規定することにより、仮想カメラをゲーム空間に仮想的に配置する。カメラ配置制御部113は、仮想カメラで規定される視野領域および当該視野領域に配置されているオブジェクトを描画した画像を作成するよう、表示制御部115に指示する。なお、カメラ配置制御部113は、仮想カメラの位置および向きを、随時変更してよい。
オブジェクト制御部114は、ゲーム情報132に含まれる、オブジェクトの設定情報に基づきゲーム空間にオブジェクトを配置する。また、オブジェクト制御部114は、ゲーム空間に配置したオブジェクトを制御する。例えば、オブジェクト制御部114は、オブジェクトのゲーム空間内での位置、向き、形状、色等を変更したり、オブジェクトに所定の一連の動作を行わせたりする。
例えば、オブジェクト制御部114は、操作キャラクタをゲーム進行部112が決定した移動方向、移動速度、および移動距離で移動させる。
表示制御部115は、表示部152に画像を表示させる。例えば、表示制御部115は、ゲーム空間のうち、カメラ配置制御部113が規定する仮想カメラの視野の領域と、当該領域に存在するオブジェクトとを含む画像を生成し、表示部152に表示させる。
オブジェクト制御部114は、UI(user interface)を構築するためのオブジェクト(UIオブジェクト)をゲーム空間に配置して、該UIオブジェクトを制御してもよい。また、表示制御部115は、画像にアイコン、ボタン、リスト、メニュー画面等、ゲームの種々の操作に必要なUIに係る画像(UI画像)を重畳して表示させてもよい。UI画像およびUIオブジェクトとは、ユーザが、ゲームの進行上必要な入力をユーザ端末100に対して行うためのツールである。また、UI画像およびUIオブジェクトとは、ユーザが、ゲームの進行中に出力される情報をユーザ端末100から得るためのツールである。
なお、図3に示すサーバ200およびユーザ端末100の機能は一例にすぎない。サーバ200は、ユーザ端末100が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末100は、サーバ200が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末100およびサーバ200以外の他の装置をゲームシステム1の構成要素とし、該他の装置にゲームシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末100、サーバ200、および他の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
(ゲーム空間とオブジェクトおよび仮想カメラの配置)
図4は、テニスゲームにおけるゲーム空間の一種である、試合空間の一例を示す図である。テニスゲームの試合は、X軸、Y軸、Z軸の3軸を座標軸とする3次元の試合空間で進行する。図4の状態(A)は、試合空間をXY平面と平行な視点から見た場合の、各種オブジェクトおよび仮想カメラ330の配置例を示している。図4の状態(B)は、試合空間をZY平面と平行な視点から見た場合の、各種オブジェクトおよび仮想カメラ330の配置例を示している。なお、以降の説明では、一度部材番号を付して説明したオブジェクトについて再び言及する際は「オブジェクト」という文言を省略して記載する。例えば「操作キャラクタのオブジェクト310」について再び言及する際は、単に「操作キャラクタ310」と称する。
オブジェクト制御部114は、テニスコートを示す略平面状のオブジェクト300を、試合空間のXY平面と略平行に配置する。また、オブジェクト制御部114は、テニスコート300を長手方向に二分するように、ネットを示すオブジェクト303を配置する。オブジェクト制御部114は操作キャラクタのオブジェクト310および相手キャラクタのオブジェクト320を、テニスコート300に配置する。例えば、オブジェクト制御部114は、操作キャラクタ310を、コート301およびその周辺領域に配置する。また、オブジェクト制御部114は、相手キャラクタ320をコート302およびその周辺領域(第2の領域)に配置する。換言すると、第1の領域は、操作キャラクタ310が移動可能な領域であり、第2の領域は、相手キャラクタ320が移動可能な領域である。コート301およびコート302の周辺領域は、例えばそれぞれのコートのベースラインの外側およびサイドラインの外側の、所定の範囲である。
カメラ配置制御部113は、ゲーム空間内に仮想カメラ330を配置する。仮想カメラ330の位置および角度は特に限定されない。例えば、カメラ配置制御部113は、テニスコート300全体と、全てのキャラクタが写るような位置および角度で仮想カメラ330を配置する。
(試合時の基本動作)
テニスゲームは、実際のテニスと同様に、1ゲームが複数のポイントから成る。1ポイントは、操作キャラクタ310または相手キャラクタ320のサーブから始まる。操作キャラクタ310と相手キャラクタ320とはボールを相手コートに向けて交互に打球し、いずれかのキャラクタが返球に失敗すると、対戦相手に得点が付与される。
図5および図6は、テニスゲームでの試合中にタッチスクリーン15に表示される表示画面の一例を示している。また、図5および図6では、ユーザがタッチスクリーン15に対して行う入力操作を模式的に示している。
図5は、操作キャラクタ310にサーブを打たせるときのユーザの入力操作および操作キャラクタ310の動作を示す。図5の状態(A)は、オブジェクト制御部114がユーザの入力操作に応じて、操作キャラクタ310のサーブ動作の開始位置を移動させる場面を示す。オブジェクト制御部114は、ポイント開始時に操作キャラクタ310をエンドラインに沿って配置する。操作受付部111がタッチスクリーン15に対するドラッグ操作(図中の指A1に対する矢印)を受け付けると、ゲーム進行部112は、当該ドラッグ操作とゲームの進行状況とから、ドラッグ操作が操作キャラクタ310のサーブの開始位置を移動させる指示であると特定する。ゲーム進行部112はドラッグ操作から移動方向、移動速度、および移動距離の少なくともいずれかを決定する。オブジェクト制御部114は、ゲーム進行部112の決定内容に従い操作キャラクタ310を移動させる(図中の操作キャラクタ310に対する矢印)。
なお、オブジェクト制御部114は操作キャラクタ310をエンドラインに沿って左右いずれかの方向に移動させることができる。ユーザは操作キャラクタ310にトスを行わせるための入力操作を行うまで、ドラッグ操作で操作キャラクタ310をエンドラインの任意の位置に動かすことができる。これにより、ユーザは操作キャラクタ310のサーブのコースを調整することができる。
また、カメラ配置制御部113は、サーブ時は仮想カメラ330を、テニスコート300の中央のラインが視野領域の左右方向の略中央に含まれ、かつ、コート301とコート302とが縦方向(図4におけるy軸と平行な方向)に見渡せるような位置および角度で配置してよい。これにより、ユーザにサーブを打つ操作キャラクタ310と、サーブの打ち込み先である相手キャラクタ320側のコートと、サーブの軌跡とを視認性良く見せることができる。
図5の状態(B)は、オブジェクト制御部114が、ユーザの入力操作に応じて操作キャラクタ310にトス動作を行わせる場面を示す。操作受付部111がタッチスクリーン15に対するタップ操作を受け付けると、ゲーム進行部112は、当該ドラッグ操作とゲームの進行状況とから、タップ操作が操作キャラクタ310にトス動作を行わせる指示を示すと特定する。オブジェクト制御部114は当該指示に従って、操作キャラクタ310にトス動作を行わせるとともに、ボールのオブジェクト340をトス動作に合わせて出現および移動させる。トス動作とは、ボール340をトスアップする動作である。すなわち、オブジェクト制御部114は、操作キャラクタ310がボール340を投げることで、ボール340が上昇および下降するように移動させる。
図5の状態(C)は、オブジェクト制御部114が、ユーザの入力操作に応じて操作キャラクタ310にサーブを打たせる場面を示す。操作受付部111がトス動作の間にタッチ操作を受け付けると、ゲーム進行部112は、当該タッチ操作を、サーブを打たせる指示であると特定する。オブジェクト制御部114は、当該指示に従って操作キャラクタ310に、サーブを打たせるための、ラケットを振る動作を行わせる。ボール340をラケットの動きに応じて相手キャラクタ320側のコートに移動させる。
なお、ゲーム進行部112は、サーブを打たせる指示を特定した場合、当該指示を示すタップ操作が行われたタイミングに応じて、サーブの成否を判定してもよい。例えば、ゲーム進行部112は、ボール340が上昇の頂点付近の所定の領域に位置するときにタップ操作が行われた場合にサーブ成功と判定してもよい。また例えば、ゲーム進行部112は、ボール340が当該所定の領域以外に位置するときにタップ操作が行われた場合、サーブ失敗と判定してもよい。ここで、サーブ成功とは、コート302のサービスエリア内にボール340が落下し接地するようなサーブを操作キャラクタ310に打たせることを示す。一方サーブ失敗とは、操作キャラクタ310にラケットを空振りさせる、操作キャラクタ310にコート302のサービスエリア外にボール340が落下する、もしくは、ボール340がネットにかかり、コート302まで飛ばずに落下するようなサーブを打たせることを示す。
図6は、操作キャラクタ310と相手キャラクタ320とがボールを交互に打ち合う(ラリーする)ときの、ユーザの入力操作および操作キャラクタ310の動作を示す。図6の状態(A)は、ユーザの入力操作に応じて、オブジェクト制御部114が操作キャラクタ310を移動させる場面を示す。ゲーム進行部112は、操作キャラクタ310または相手キャラクタ320のサーブの後に操作受付部111がドラッグ操作(図中の指A1に対する矢印)を受け付けた場合、当該ドラッグ操作を、操作キャラクタ310を移動させる指示を示すと特定する。ゲーム進行部112はドラッグ操作から移動方向、移動速度、および移動距離の少なくともいずれかを決定する。オブジェクト制御部114は、ゲーム進行部112の決定内容に従い操作キャラクタ310を移動させる(図中の操作キャラクタ310に対する矢印)。
なお、ラリー時において、カメラ配置制御部113は、タッチスクリーン15のユーザから見て手前側となる辺から画面の中央に向かう所定の領域A2を空けて操作キャラクタ310が表示されるように、仮想カメラ330の位置および角度を決定してもよい。これにより、入力操作を行うユーザの手指A1でテニスコート300、相手キャラクタ320、操作キャラクタ310、またはボール340等が隠れてしまうことを防ぐことができる。したがって、ユーザはゲームの状況を見つつ、容易に入力操作を行うことができる。
また、カメラ配置制御部113は仮想カメラ330を、コート301とコート302とが縦方向(図4におけるy軸と平行な方向)に見渡せるような位置および角度で配置してもよい。これにより、ユーザにサーブを打つ操作キャラクタ310と、ボール340の打ち込み先である相手キャラクタ320側のコートと、サーブされたボール340の軌跡とを視認性良く見せることができる。
図6の状態(B)は、ユーザの入力操作に応じて、オブジェクト制御部114が操作キャラクタ310に打球動作(操作キャラクタ310がラケットをスイングする動作)を行わせる場面を示す。ゲーム進行部112は、ラリー時に操作受付部111がタッチ操作を受け付けた場合、当該タッチ操作を、操作キャラクタ310に打球動作を行わせる指示であると特定する。オブジェクト制御部114は、当該指示に従って操作キャラクタ310に打球動作を行わせる。すなわち、オブジェクト制御部114は、操作キャラクタ310にラケットを振る動作を行わせるとともに、ボール340を第2の領域に移動させる。
(打球エリア)
ゲーム進行部112は、操作キャラクタ310に打球動作を行わせる場合、当該打球動作でボール340を打球することができたか否かを判定する(打球成否判定)。また、オブジェクト制御部114は、打球成否判定の基準となる打球エリア350を、操作キャラクタ310とともにゲーム空間に配置する。なお、打球エリア350は、操作キャラクタの種類によってその大きさおよび形状の少なくとも一方が異なっていてもよい。ゲーム進行部112は、ボール340が打球エリア350内に位置している場合は打球成功と判定し、ボール340が当該打球エリア350外に位置している場合は打球失敗と判定する。
ゲーム進行部112は打球成功と判定した場合、さらに、ボール340が打球エリア350のどの領域に位置しているかに応じて、操作キャラクタ310とボール340との位置関係の良好度合いを決定する。例えば、位置関係以外の条件が同条件であれば、操作キャラクタ310は位置関係が最良である場合に最も強い打球を打つことができる。なお、ここで言う「打球」は、後述する特殊ショットを除いた打球を示す。
このように、ゲーム進行部112は、打球エリア350とボール340との位置関係の良好度合い、すなわち操作キャラクタ310とボール340との位置関係の良好度合いに応じて、打球の成否、および打球時の球の強さを決定する。例えば、ゲーム進行部112は、操作キャラクタ310からボール340までの方向、および操作キャラクタ310からボール340までの距離の少なくとも一方に応じて、位置関係の良好度合いを決定している。
これにより、ユーザに対し、相手キャラクタ320側のコートから飛来するボール340のコースを想定させること、および、打球により良い位置に操作キャラクタ310を移動させる(位置取りさせる)ことを促すことができる。コースの想定および打球前の位置取りは、現実のテニスゲームでも重要な要素である。したがって、ゲームシステム1は、テニスゲームにおいて実際のテニスの戦略での対戦を実現させることができ、ゲームの興趣性を向上させることができる。
(UI配置)
表示制御部115は、図5〜6で示した表示画面に、さらにユーザの入力操作に係るUI画像を重畳させて表示させることができる。図7は、表示制御部115がタッチスクリーン15に表示させる表示画面の一例を示す図である。
図7の状態(A)は、サーブ時の表示画面の一例を示す図である。図7の状態(B)は、ラリー時の表示画面の一例を示す図である。表示制御部115は、ゲーム空間内のオブジェクトを描画した画像に、特殊ショットボタン360、球種選択ボタン370、ならびに交代ボタン380および382の画像を重畳させた画像を作成し、タッチスクリーン15に表示させてよい。
また、表示制御部115は、操作キャラクタ310のスタミナゲージ311、相手キャラクタのスタミナゲージ321、ならびに控えキャラクタ(後述)のスタミナゲージ381および383をタッチスクリーンに表示させてよい。ここで、操作キャラクタ310と同じグループに所属するキャラクタのうち、操作キャラクタ以外のキャラクタを、控えキャラクタと呼称する。例えば、n人(nは1以上)のグループの場合、そのグループには、1人の操作キャラクタと(n−1)人の控えキャラクタが所属している。なお、スタミナゲージ311および321については、後に説明する。
特殊ショットボタン360は、操作キャラクタ310に特殊ショットを打たせるための入力操作を受けつけるボタンである。操作受付部111は、ゲームの進行状況が所定の条件を満たしている場合、特殊ショットボタン360に対する入力操作を受けつける。例えば、ゲーム進行部112が、操作キャラクタ310の打球が所定回数成功したと判定した場合に、操作受付部111は特殊ショットボタン360を押下可能とする。
ゲーム進行部112は、特殊ショットボタン360が一旦押下された状態で、操作キャラクタ310の打球が成功したと判定した場合、オブジェクト制御部114に特殊な返球(特殊ショット)をさせるよう指示する。特殊ショットとは、発動時または発動後に所定の条件を満たした場合に、操作キャラクタ310または相手キャラクタ320に特定の効果を付与する打球を示す。また、特殊ショットは、ボール340を特殊な移動方法で相手キャラクタ320側のコートに移動させるショットであってもよい。特殊な移動方法とは、例えば、通常の返球時には発生しない速度、軌道、回転状態でボールを移動させる方法である。また、ゲーム進行部112は、特殊ショットボタン360が押下可能な状態から押下されることにより、操作キャラクタ310が返球する回数が一定回数に至るまで、操作キャラクタ310とボール340との位置関係の良好度合いが最良である場合の返球をすることとしてもよい。換言すれば、特殊ショットボタン360が押下されることにより、ボールが打球エリア350のいずれにあっても、ボールを一定回数(例えば、3回)打ち返すまで、ジャストの打球を返球することとしてもよい。
球種選択ボタン370は、操作キャラクタ310に打球動作をさせた際に打球可能な球種を示すとともに、当該球種の変更するための入力操作を受け付けるボタンである。ゲーム進行部112は、球種選択ボタン370が押下される(タッチされる)と、操作キャラクタ310の打球する球種を変更する。
交代ボタン380および382は、操作キャラクタ310を、交代ボタン380または382にそれぞれ対応付けられた控えキャラクタと交代させるための入力操作を受け付けるためのボタンである。表示制御部115は、控えキャラクタの数に合わせた数の交代ボタンを表示させてもよい。ただし、表示制御部115が表示させる交代ボタンの数が多くなると、テニスゲームの対戦を表示させる領域が狭くなってしまう。それゆえ、操作キャラクタと同じグループに所属可能な他のキャラクタの数に上限を設けたり(例えば、2人)、あるいは表示する交代ボタンの数に上限(例えば、2つ)を設けたりしてもよい。なお、控えキャラクタの数よりも表示させる交代ボタンの数が少ない場合には、表示制御部115は、予めユーザに設定させた優先順位に従って、交代ボタンに対応付ける控えキャラクタを決定してもよい。
ゲーム進行部112は、ユーザによる交代指示を受け付ける。交代指示は、交代ボタン380または382に対するタッチ操作により入力される。例えば、交代ボタン380に対するタッチ操作が検出された場合、ゲーム進行部112は、交代ボタン380に対応付けられているキャラクタが選択されたこと、および操作キャラクタ310を、選択されたキャラクタと交代させること、をオブジェクト制御部114に指示する。オブジェクト制御部114は、操作キャラクタ310に代えて、選択されたキャラクタを配置(表示)する。交代指示によって操作キャラクタ310から控えキャラクタとなったキャラクタは、交代ボタン380と対応づけられてもよい。この場合、交代ボタン380に対するタッチ操作が再度検出されれば、操作キャラクタ310に復帰することが可能である。
スタミナゲージ311および321はそれぞれ、操作キャラクタ310および相手キャラクタ320のスタミナの最大値および現在値を示している。スタミナゲージ381および383はそれぞれ、交代ボタン380に対応付けられた控えキャラクタ、および交代ボタン382に対応付けられた控えキャラクタの、スタミナの最大値および現在値を示している。スタミナとは、キャラクタの体力を示すパラメータである。各キャラクタには、スタミナの値(体力値)の最大値が予め定められている。ゲーム進行部112は、対戦中のキャラクタの動作に応じて、スタミナの値を最大値から減少させる。また、ゲーム進行部112は、対戦中のキャラクタの動作に応じて、減少したスタミナの値を回復させる。スタミナは、キャラクタの移動に関する性能(移動速度等)を決定するのに参照される。
<試合ログの記録>
図8は、ユーザ端末100における試合ログの記録に係る処理の流れについて示したフローチャートである。操作受付部111が試合の開始を指示する操作を受け付けると(S100)、ゲーム進行部112は、試合を開始させる(S102)。以降、ユーザ端末100に対応付けられたユーザを第1ユーザと称する。
ゲーム進行部112は、試合を開始させる時に、今から開始する試合を記録するか否かを決定する(S104)。試合を記録するか否かの決定方法は特に限定されないが、ゲーム進行部112は、例えば、以下の(1)〜(3)のいずれかの場合に試合を記録すると決定する。
(1)第1ユーザのゲームにおける習熟度を示す指標値(例えばユーザのレベル等)が所定値以上である
(2)第1ユーザの対戦の成績(例えば勝利回数、またはレーティング等)が所定値以上であるか
(3)第1ユーザの操作キャラクタまたは控えキャラクタに、特定の種類のキャラクタが含まれている
なお、ゲーム進行部112は、試合を記録するか否かを上記(1)〜(3)の条件を組み合わせて決定してもよい。
また、試合を記録するか否かをサーバ200が決定してもよい。この場合、ゲーム進行部112は、例えば第1ユーザのゲームにおける習熟度、第1ユーザの対戦の成績、ならびに第1ユーザの操作キャラクタおよび控えキャラクタを特定する情報のうち少なくとも1つを、サーバ200に送っても良い。サーバ200のサーバ処理部212は、自身の持つユーザ情報233に記憶された第1ユーザの情報を参照して、または、ユーザ端末100から受信した上述の情報の少なくとも1つを用いて、試合を記録するか否かを決定する。決定内容は、送受信部211を介しユーザ端末100に通知される。ゲーム進行部112は、サーバ200の決定内容に従って、試合を記録するか否かを決定する。
試合を記録しない場合(S104でNO)、ユーザ端末100の制御部110は、以下で説明する試合ログの記録を行わずに処理を終了する。一方、試合を記録する場合(S104でYES)、ゲーム進行部112は、試合ログ記録部141に、操作履歴の記録開始を指示する。試合ログ記録部141は該指示を受けると、試合特定情報およびユーザ特定情報を取得するとともに、ユーザの操作履歴の記録を開始する(S106)。なお、試合ログ記録部141は対戦相手のユーザの操作履歴も記録してもよい。
以降、試合ログ記録部141は、試合が終了するまで第1ユーザ(および対戦相手のユーザ)の操作履歴を記録し続ける(S108でNO)。試合が終了すると(S108でYES)、試合ログ記録部141は操作履歴の記録を終了する(S110)。試合ログ記録部141は、試合特定情報およびユーザ特定情報に、試合開始から終了までの間に記録した操作履歴(すなわち、1試合分の操作履歴)を対応付けた試合ログ134を作成する(S112)。通信部116は、試合ログ記録部141が作成した試合ログ134をサーバ200に送信する(S114)。
試合ログ134がサーバ200に送信されると、報酬付与部142はユーザアカウントまたは第1ユーザの操作キャラクタに対し、報酬を付与する(S116)。
以上の処理によれば、ユーザ端末100は、第1ユーザの操作履歴を含む試合ログ134をサーバ200に収集させて、後で自端末または他の装置で試合を再現することが可能になる。本実施形態に係るゲームは、操作内容に応じて異なる進行状況を経るゲームであるため、試合ログ134を収集することで、第1ユーザのゲームの進行状況(すなわち、試合運びおよび試合の結果等)を再現することが可能なデータを収集することができる。また、このように試合が記録されることで、第1ユーザに、より良いプレイをしてより見栄えの良い(例えば、試合運びが上手い)記録を残そうとさせることができる。したがって、第1ユーザに、操作に習熟するというゲーム内での目標を与えることができる。また、以上の処理によれば、試合ログ134の記録および送信についてユーザに利益を与える。これにより、上述の目標に向かいゲームをプレイするように、ユーザに促すことができる。このように、本実施形態に係るユーザ端末100が実行するゲームプログラム131は、第1ユーザにゲーム内での適切な目標を与えることができる。
なお、ゲーム進行部112は、操作受付部111が試合の開始を指示する操作を受け付けるよりも前に、次回の試合を記録するか否かを判定してもよい。すなわち、S104の処理は、S100の処理の前に実行されてもよい。例えば、ゲーム進行部112は、ユーザがログインしたときに該ユーザの次回の試合を記録するか否かを判定してもよい。また例えば、ゲーム進行部112は、試合ログの記録を指示するリクエストをサーバ200から受信した場合に、次回のユーザの試合を記録すると判定してもよい。
また、通信部116が試合ログ134を送信するタイミングは、試合が終了した直後に限られない。例えば、通信部116は、1日に1回、決まった時間に1日分の試合ログ134をまとめてサーバ200に送信してもよい。また例えば、通信部116は、ユーザがログアウトしゲームが終了するときに、該ユーザのログインからログアウトまでの間に作成された試合ログ134をサーバ200に送信してもよい。このように、試合ログ134を作成してから送信するまでにタイムラグがある場合、試合ログ記録部141は、作成した試合ログ134を記憶部120に記憶させる。そして、通信部116は上述したような所定のタイミングで、記憶部120から試合ログ134を読み出して、サーバ200に送信する。
<試合ログの再生>
図9は、ユーザ端末100における試合ログの再生に係る処理の流れについて示したフローチャートである。操作受付部111は、再生可能な試合ログの表示を指示する操作を受け付ける(S200)。通信部116はサーバ200に対し、試合ログ特定情報の送信リクエストを送信する(S202)。
サーバ200の送受信部211は該送信リクエストを受信する。データ管理部213は該送信リクエストに応じて、試合ログ234に記憶された試合ログ134から、ユーザ端末100において再生させる試合ログ134を1つ以上ピックアップ(選抜)する。サーバ処理部212はデータ管理部213の選抜した試合ログ134それぞれについて、試合ログ特定情報を作成する。送受信部211は試合ログ特定情報をユーザ端末100に送信する。
ユーザ端末100の通信部116は、サーバ200から試合ログ特定情報を受信する(S204)。ゲーム進行部112は、受信した試合ログ特定情報に従って、ユーザ端末100で再生可能な試合を一覧表示するための画像(一覧画像)を作成するよう表示制御部115に指示する。表示制御部は該一覧画像を作成し、これを表示部152に表示させる(S206)。
試合ログ特定情報には、例えば、試合に参加したユーザのユーザ名および各ユーザのレーティングが含まれていてもよい。また、試合ログ特定情報には、各ユーザの試合における操作キャラクタおよび控えキャラクタ(NPCの場合は、CPUの操作キャラクタおよび控えキャラクタ)を特定する情報が含まれていてもよい。また、試合ログ特定情報には、試合の日時が含まれていてもよい。
図10は、表示制御部115が表示部152に再生可能な試合を一覧表示させた場合の、表示画面の一例を示す図である。図示の例は、3つの試合についての試合ログ134の試合ログ特定情報400が一覧表示された一覧画像を示す。また、一覧画像には、各試合ログのシェアの指示を受け付けるためのオブジェクト(例えば、ボタン407)が含まれていてもよい。試合ログのシェアについては後述する。
一覧画像には、試合を選択し、試合ログの再生を開始する指示を受け付けるためのオブジェクト(例えば、ボタン404)が含まれている。また、一覧画像には、試合に参加したユーザのユーザ名401、各ユーザのレーティング402、および各ユーザの操作キャラクタおよび控えキャラクタを示すアイコン403が含まれていてもよい。また、一覧画像には、各試合の再生数を示す欄405および各試合の評価(所謂、「いいね」)の件数を示す欄406が設けられ、該再生数および評価件数が随時更新および表示されてもよい。また、図示はしないが、一覧画像には、各試合が行われた日時等が含まれていてもよい。
表示制御部115が表示部152に再生可能な試合を一覧表示させた後、ゲーム進行部112は、第1ユーザによる試合の選択を待つ(S208でNO)。試合が選択されると(S208でYES)、ゲーム進行部112は、通信部116を介して、選択された試合ログ134の送信リクエストをサーバ200に送る。サーバ200は送受信部211において該リクエストを受信し、データ管理部213において選択された試合ログ134を記憶部220の試合ログ234から読み出す。そして、送受信部211は、ユーザ端末100に該試合ログ134を送信する。ユーザ端末100の通信部116は、第1ユーザにより選択された試合の試合ログ134を受信する(S209)。試合ログ再生部143は、通信部116が試合ログ134を受信すると、該試合ログ134の再生を開始する(S210)。
図11は、試合ログ再生部143が試合ログを再生させているときに、表示制御部115が表示部152に表示させる表示画面の一例を示す図である。図中に示すオブジェクトで図7のオブジェクトと同様の番号を付したものは、該オブジェクトと同様の機能を有する。
試合ログ再生部143は、試合ログを再生するときに、対戦しているユーザの名称を示すラベル501を表示するよう、表示制御部115に指示してもよい。また、試合ログ再生部143は、試合ログを再生するときに、各ユーザの得点を表示する欄502を表示するよう、表示制御部115に指示してもよい。そして、試合の進行に従って欄502に表示される得点を更新してもよい。また、試合ログ再生部143は、仮想カメラの視野領域(すなわち、カメラワーク)を変更するためのボタン503を表示するよう、表示制御部115に指示してもよい。なお、ボタン503には、現在のカメラワークを示す番号等が付されていてもよい。
また、試合ログ再生部143は、試合ログの再生を終了する指示を受け付けるためのボタン504、試合ログの再生を一時停止する指示を受け付けるためのボタン505、および、試合ログを通常よりも高速で再生する指示を受け付けるためのボタン506を表示するよう、表示制御部115に指示してもよい。
試合ログ再生部143は、試合ログの再生中に、上述したボタン503〜506等を介して、試合ログの再生時のカメラワークの変更、再生の終了指示、再生の一時停止指示、および、高速再生の少なくとも1つを実行してもよい。例えば、操作受付部111がカメラワークを変更する指示を受け付けた場合(S212でYES)、試合ログ再生部143はカメラ配置制御部113に、試合ログの再生における仮想カメラのカメラワークを変更させる(S214)。
図12は、試合ログ再生部143が試合ログを再生させているときに、表示制御部115が表示部152に表示させる表示画面の他の一例を示す図である。図12の状態(A)〜(D)は、それぞれ図11と同一の試合ログに基づく試合の再生中の表示画面であり、仮想カメラの視野領域(すなわち、カメラワーク)が異なっている。なお、図11においてボタン505が押下され、再生が一時停止された場合、表示制御部115は、図12の状態(A)〜(D)に示すように、再生を再開するためのボタン507を表示画面に表示させてもよい。
図12の状態(A)は、仮想カメラを操作キャラクタ310の背後に配置し、該仮想カメラで操作キャラクタ310を映した場合の表示画面を示す。また、図12の状態(B)は、仮想カメラを、試合のコートから図11よりも離し、所謂「引き」で操作キャラクタ310を映した場合の表示画面を示す。また、図12の状態(C)は、仮想カメラを相手キャラクタ320の背後に配置し、該仮想カメラで相手キャラクタ320を映した場合の表示画面を示す。換言すると、図12の状態(C)は、相手キャラクタ320を操作しているユーザの視点で、操作キャラクタ310を見た場合の表示画面を示す。図12の状態(D)は、仮想カメラを操作キャラクタ310、相手キャラクタ320、およびコートの真上に配置し、該カメラでコート全体を映した場合の表示画面を示す。
操作受付部111において、ボタン503に対する入力操作が受け付けられた場合、試合ログ再生部143は、仮想カメラのカメラワークを変更するよう、カメラ配置制御部113に指示する。このとき、試合ログ再生部143は、例えば図11〜12で説明した5種類のカメラワークのうち、いずれのカメラワークに変更するかもカメラ配置制御部113に指示する。カメラ配置制御部113は、試合ログ再生部143の指示に従って仮想カメラの配置を変更する。表示制御部115は、変更後の仮想カメラの視野領域に配置されているオブジェクト(およびUIオブジェクトまたはUI画像)を描画した画像を作成し、表示部152に表示させる。
これにより、第1ユーザは記録された試合を、好みのカメラワークで再生して閲覧することができる。したがって、記録された試合のユーザがどのような操作を行っていたかをより容易に、または詳細に確認することができる。したがって、ユーザ端末100は、第1ユーザの操作の習熟を促すことができる。
また例えば、操作受付部111が再生を終了する指示を受け付けた場合(S216でYES)、または、試合ログを最後まで再生した(すなわち、試合が終了した)場合(S218でYES)、試合ログ再生部143は試合ログの再生を終了する(S220)。
以上の処理によれば、例えば初心者等、操作に習熟していないユーザは、他のユーザの試合を自端末で再現して閲覧することで、自分よりもゲームが上手い人の試合運び(すなわち、操作内容)を学習することができる。したがって、ユーザ端末100は、第1ユーザの操作の習熟を促すことができる。また、他のユーザの試合を再現して閲覧させることで、第1ユーザに、ゲームが上手くなりたいという目標を持たせることができる。また、ゲームはプレイしているが、試合を行う頻度が低いユーザ等に、試合を見せることで試合を行う動機を与えることができる。
〔実施形態2〕
通信部116は、サーバ200から操作履歴の評価を受信してもよい。そして、報酬付与部142は、通信部116が該評価を受信した場合に、第1ユーザに報酬を付与してもよい。より具体的には、報酬付与部142は、通信部116がサーバ200から、送信した試合ログが選抜されたことを通知された場合に、第1ユーザに報酬を付与してもよい。
図13は、ユーザ端末100およびサーバ200における報酬の付与に係る処理の流れの変形例について示すフローチャートである。なお、S302およびS306の処理は、図8のS114およびS116の処理と同様であるため、説明を繰り返さない。
サーバ200の送受信部211は、各ユーザ端末100から試合ログ134を受信する(S304)。データ管理部213は受信した試合ログ134を、試合ログ234として記憶部220にまとめて記憶させる。
その後、サーバ200は任意のタイミングで、収集した試合ログ134に対し、評価を付与する。評価の内容、評価基準、および付与方法は特に限定しない。例えば、サーバ200が所定の基準に応じて自動で各試合ログ134に対し得点等を評価として付与してもよい。また、サーバ200を事業者が操作し、各試合ログ134のうち、見所があると判断した試合の試合ログを手動で選抜してもよい。この場合、試合ログが選抜されたことが、試合ログが高評価されたことを示す。
本実施形態では、事業者がサーバ200を操作し、試合ログ234に含まれる各試合ログ134から、1つ以上の試合ログを手動で選抜する(S308)。試合ログの選抜後、サーバ200のサーバ処理部212は、選抜された試合ログ134の試合特定情報またはユーザ特定情報を参照して、該試合ログ134を記録したユーザ端末100を特定する。そして、サーバ処理部212は、送受信部211を介して、特定したユーザ端末100に対し、試合ログが選抜されたことを通知する(S310)。
ユーザ端末100の通信部116が該通知を受信すると(S312)、報酬付与部142は、試合ログが選抜されたこと(すなわち、第1ユーザの操作履歴の評価内容)に応じて、報酬(第1評価報酬)を付与する(S314)。
なお、本実施形態に係るゲームシステム1では、S306における報酬の付与は必須ではない。すなわち、報酬付与部142は、試合ログ134をサーバ200に送信した段階では報酬を付与せず、送信した試合ログ134が選抜された場合にはじめて報酬を付与してもよい。また、報酬付与部142は、S306における報酬の付与と、S314における報酬の付与の両方を行ってもよい。
また、通信部116は、自端末および他のユーザ端末100において試合ログに基づいて再現される、第1ユーザの操作内容に対する評価(例えば、前述した「いいね」の件数)を受信してもよい。また、報酬付与部142は、該評価が所定値以上である(「いいね」の件数が所定値以上である)場合に、報酬(第2評価報酬)を付与してもよい。報酬付与部142は、該第2評価報酬の付与、S306における報酬の付与、およびS314における報酬の付与の少なくとも1つを行えばよい。
上述したように、試合ログは所定の条件(ユーザのレベル、レーティング、操作および控えキャラクタ等)に応じて記録されるか否かが決定する。そのため、このように、試合ログの記録および評価に応じて第1ユーザに報酬を与えることで、第1ユーザに、試合ログの記録の条件を満たそうとする動機を与えることができる。したがって、例えば第1ユーザの習熟度または対戦成績等を試合ログの記録の条件とすることによって、第1ユーザにゲームへの習熟を促すことができる。また、特定のキャラクタを操作キャラクタまたは控えキャラクタとすることを試合ログの記録の条件とすることで、第1ユーザに、条件となるキャラクタを獲得しようとする動機を与えることができる。
〔実施形態3〕
本実施形態に係るゲームシステム1が実現するテニスゲームでは、第1ユーザはチームに所属可能であってよい。チームは、1名以上のユーザから成る集団であって、少なくともユーザ間の交流が可能な機能を有している。
ユーザ端末100は、チームを設立するための所定の手順の操作を受け付けた場合、第1ユーザが所属するチームを設立する。また、ユーザ端末100は、チームに加入するための所定の手順の操作を受け付けた場合、第1ユーザを、他のユーザが設立したチームに加入させる。また、ユーザ端末100は所定の操作に応じて、第1ユーザを設立または加入したチームから脱退させる。また、ユーザ端末100は第1ユーザが所属するチームに、他のユーザを加入させることができる。また、ユーザ端末100は設立したチームから、他のユーザを脱退させることができる。なお、第1ユーザは必ずしもチームへ所属する必要はない。ユーザが所属しているチームに係る情報は、ゲーム情報132またはユーザ情報133の一部として記憶される。
ゲームシステム1は、各チームに、チームごとに提供されるゲーム空間であるチーム空間を提供する。同じチームに所属しているユーザは、同じチーム空間を共有する。ユーザ端末100のオブジェクト制御部114は、所定の入力操作を受け付けると、操作キャラクタ310をチーム空間に配置する。チーム空間には少なくとも、ゲーム内の掲示板に関連付けられたオブジェクトが配置されている。該掲示板も、チームごとの掲示板であってよい。以降、チーム共有の、ゲーム内掲示板のことをチーム掲示板と称する。
また、本実施形態に係るゲームシステム1では、ユーザ端末100のゲーム進行部112は、第2ユーザに、第1ユーザが上述した一覧画像の表示画面において選択した1つ以上の試合ログに関する情報を通知してもよい。第2ユーザとは、第1ユーザと同じチームに所属する1人以上のユーザ(すなわち、チームメンバー)を示す。さらに、本実施形態に係るゲームシステム1では、選択された1つ以上の試合ログに関する情報を、チーム空間に配置されたオブジェクトに関連付けられた、ゲーム内の掲示板に掲載することで通知してもよい。
図14は、ユーザ端末100における試合ログのシェアに係る処理の流れを示すフローチャートである。S402〜S406の処理は、図9のS200〜S206の処理の流れと同じであるので、説明を繰り返さない。
実施形態1において説明したように、再生可能な試合が一覧表示された一覧画像には、各試合ログのシェアの指示を受け付けるためのオブジェクトが含まれている。ゲーム進行部112はまず、第1ユーザがチームに所属しているか否かを判定する(S408)。第1ユーザがチームに所属していない場合(S408でNO)、該オブジェクトに対する入力操作は無効化され、以降の処理は行われない。一方、第1ユーザがチームに所属している場合(S408でYES)、操作受付部111は、該オブジェクトに対する操作を受け付ける(S410)。該操作が受け付けられると、ゲーム進行部112は、該操作で選択された試合ログを特定する(S412)。そして、ゲーム進行部112は、選択された試合ログに関する情報を、チーム掲示板に書き込む(S414)。
以上の処理によれば、第1ユーザは、自身が選択した試合ログについての情報を同一チームの第2ユーザに通知することができる。例えば、第1ユーザは自身が上手いと判断したユーザの試合ログを、チームのメンバーに紹介することができる。このように、ユーザ間の情報交換が活性化されるため、ゲームプログラムはユーザ間の交流を促進することができる。また、以上の処理によれば、第1ユーザは、自身が選択した操作履歴についての情報を、チーム空間を介してチームのメンバーに紹介することができる。したがって、チーム空間におけるチームメンバー間の交流を活性化することができる。
〔ソフトウェアによる実現例〕
制御部110および制御部210の制御ブロックは、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
後者の場合、制御部210または制御部110、もしくはその両方を備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1) 上記各実施形態では、ゲームプログラム(131)について説明した。本開示のある局面によると、ゲームプログラム(131)は、プロセッサ(10)と、メモリ(11)と、ディスプレイ(表示部152)と、第1ユーザの入力操作を受け付ける操作部(入力部151等)とを備える端末装置(ユーザ端末100)により実行される。該ゲームプログラムに基づくゲームは、第1ユーザの操作内容に応じて異なる進行を経るゲームである。ゲームプログラムは、プロセッサに、ゲームにおける、あるユーザの所定期間の操作内容を端末装置の前記ディスプレイまたは他の装置(第1ユーザに対応付けられたユーザ端末100以外の他のユーザ端末100、または他の装置)で再現して表示するための操作履歴として、第1ユーザの操作履歴を記録するステップ(S106〜S110)と、記録された第1ユーザの操作履歴を、操作履歴を収集する情報処理装置(サーバ200)に送信するステップ(S114)と、送信するステップにおいて第1ユーザの操作履歴が送信された場合に、第1ユーザにゲーム内での報酬を付与するステップ(S116またはS314)と、を実行させる。
前記の構成によれば、第1ユーザの操作履歴を情報処理装置に収集させて、後で端末装置または他の装置で再現することが可能になる。ゲームプログラムに基づくゲームは、操作内容に応じて異なる進行状況を経るゲームであるため、操作履歴を収集することで、第1ユーザのゲームの進行状況を再現することが可能なデータを収集することができる。
また、このように操作履歴を記録することで、第1ユーザに、より良い操作をしてより良い記録を残そうと考えさせることができる。したがって、第1ユーザに、操作に習熟するというゲーム内での目標を与えることができる。
また、以上の処理によれば、操作履歴が送信された場合にユーザに利益を与える。これにより、上述の目標に向かいゲームをプレイするように、ユーザにさらに促すことができる。したがって、前記の構成によれば、第1ユーザにゲーム内での適切な目標を与えることができる。
(項目2) (項目1)において、ゲームは、第1ユーザと他のユーザとの対戦により進行する対戦パートを含んでいてもよい。そして、記録するステップは、対戦パートでの第1ユーザの操作履歴を記録してもよい。
ユーザ同士の対戦においては、操作内容がゲームの進行、すなわち対戦の進行および結果に関わる。したがって、このような対戦を行う対戦パートでの操作履歴を記録することで、第1ユーザに、より上手い試合運びを行い、対戦に勝つという目標を与えることができる。
(項目3) (項目1)または(項目2)において、記録するステップは、第1ユーザの、ゲームにおける習熟度を示す指標値が閾値以上である場合に、第1ユーザの操作履歴を記録してもよい。
ゲームにおける習熟度がある程度高いユーザの操作履歴を記録することで、ゲームが上手いユーザの操作履歴を収集することができる。換言すると、ゲームが上手いと判定されたユーザのみ操作履歴が記録されるため、ユーザに、操作履歴が記録されるようなゲームが上手いプレイヤーになろうという動機を与えることができる。
(項目4) (項目2)において、記録するステップは、第1ユーザの対戦の成績が所定値以上である場合に、第1ユーザの操作履歴を記録してもよい。
対戦の成績がある程度高いユーザの操作履歴を記録することで、対戦に強いユーザの操作履歴を収集することができる。換言すると、対戦に強いと判定されたユーザのみ操作履歴が記録されるため、ユーザに、操作履歴が記録されるような強いプレイヤーになろうという動機を与えることができる。
(項目5) (項目1)または(項目2)において、記録するステップは、第1ユーザの操作に基づいて動作可能なキャラクタが特定の種類のキャラクタである場合に、第1ユーザの操作履歴を記録してもよい。
特定のキャラクタを使用しているユーザの操作履歴を記録することで、ユーザの該特定のキャラクタの使い方が分かる操作履歴を収集することができる。また、操作履歴を記録および送信するためには、該特定のキャラクタを所有する必要があるため、ユーザに、該特定のキャラクタを獲得しようというゲーム上の目標を与えることができる。
(項目6) (項目1)から(項目5)までのいずれか1項目において、ゲームプログラムは、プロセッサに、さらに、情報処理装置から前記第1ユーザの操作履歴の評価を受信するステップ(S312)を実行させてもよい。そして、報酬を付与するステップ(S314)は、送信するステップにおいて第1ユーザの操作履歴が送信され、さらに、評価を受信するステップにおいて第1ユーザの操作履歴の評価を受信した場合に、第1ユーザに、評価の内容に応じてゲーム内での報酬を付与してもよい。
このように、情報処理装置から評価を受信した場合に、第1ユーザに報酬を付与するようにすることで、第1ユーザに、評価される操作内容を記録するという動機をより強く持たせることができる。
(項目7) (項目1)から(項目5)までのいずれか1項目において、ゲームプログラムは、プロセッサに、さらに、情報処理装置から前記第1ユーザの操作履歴の評価を受信するステップ(S312)を実行させてもよい。また、プロセッサに、さらに、受信するステップにおいて前記第1ユーザの操作履歴の評価を受信した場合に、前記第1ユーザに、前記評価の内容に応じた前記ゲーム内での報酬である第1評価報酬をさらに付与するステップ(S314)を実行させてもよい。
このように、情報処理装置から評価を受信した場合に、第1ユーザに、(項目1)において説明した報酬に加えて、さらに第1評価報酬を付与するようにすることで、第1ユーザに、評価される操作内容を記録しようという動機をより強く持たせることができる。
(項目8) (項目1)から(項目7)までのいずれか1項目において、ゲームプログラムは、プロセッサに、さらに、端末装置または他の装置において第1ユーザの操作履歴に基づいて再現される、第1ユーザの操作内容に対する評価を、情報処理装置から取得する評価取得ステップと、評価が所定値以上である場合に、第1ユーザに、ゲーム内での報酬である第2評価報酬を付与するステップを実行させてもよい。
このように、端末装置または他の装置においての評価に基づいて、第1ユーザに第2評価報酬を与えることによって、第1ユーザに、他者(他の装置でゲームをプレイする他のユーザ)に評価される操作内容を記録しようという動機を持たせることができる。
(項目9) (項目1)から(項目8)までのいずれか1項目において、ゲームプログラムは、プロセッサに、さらに、情報処理装置から操作履歴を受信するステップ(S209)と、受信した操作履歴に基づいて、あるユーザの操作内容を端末装置のディスプレイにおいて再現して表示するステップ(S210〜S220)と、を実行してもよい。
例えば初心者等、操作に習熟していないユーザは、他のユーザの試合を自端末で再現して閲覧することで、自分よりもゲームが上手い人の操作内容を学習することができる。したがって、ゲームプログラムは、第1ユーザの操作の習熟を促すことができる。
また、他のユーザの試合を再現して閲覧させることで、第1ユーザに、ゲームが上手くなりたいという目標を持たせることができる。また、例えば対戦パートにおける操作履歴を再現させる場合、ゲームはプレイしているが、対戦パートのプレイ頻度が低いユーザ等に、対戦を見せることで、対戦を行う動機を与えることができる。
(項目10) (項目1)から(項目9)までのいずれか1項目において、ゲームプログラムは、プロセッサに、さらに、情報処理装置に蓄積されている操作履歴を特定可能な情報(試合ログ特定情報400)を前記ディスプレイに一覧表示させるステップ(S406)と、操作部において、一覧表示された前記情報から1つ以上の操作履歴を選択するための入力操作を受け付けた場合に、選択された1つ以上の操作履歴に関する情報を、前記第1ユーザが所属するチームに所属している1人以上のユーザである第2ユーザに通知するステップ(S414)と、を実行させてもよい。
これにより、第1ユーザは、自身が選択した操作履歴についての情報を、第1ユーザと同一チームの第2ユーザに通知することができる。例えば、第1ユーザは自身が上手いと判断したユーザの操作履歴を、チームのメンバーに紹介することができる。このように、ユーザ間の情報交換が活性化されるため、ゲームプログラムはユーザ間の交流を促進することができる。
(項目11) (項目10)において、ゲームプログラムに基づくゲームは、チームごとに提供されるゲーム空間であるチーム空間を第1ユーザおよび第2ユーザに提供してもよい。また、通知するステップは、選択された1つ以上の操作履歴に関する情報を、チーム空間に配置されたオブジェクトに関連付けられた、ゲーム内の掲示板(チーム掲示板)に掲載することで、該情報を、第2ユーザに通知してもよい。
該オブジェクトとは、例えば、前記掲示板のアイコンまたはショートカットボタン等であってもよい。そして、これらのオブジェクトを第1ユーザまたは第2ユーザが選択することで、前記掲示板を表示させてもよい。
これにより、第1ユーザは、自身が選択した操作履歴についての情報を、チーム空間を介してチームのメンバーに紹介することができる。したがって、チーム空間におけるチームメンバー間の交流を活性化することができる。
(項目12) ゲームプログラム(131)を実行する方法を説明した。本開示のある局面によると、該方法は、プロセッサ(10)、メモリ(11)、ディスプレイ(表示部152)、および第1ユーザの入力操作を受け付ける操作部(入力部151等)を備える端末装置(ユーザ端末100)がゲームプログラムを実行する方法である。該方法は、ゲームプログラムに基づくゲームにおける、あるユーザの所定期間の操作内容を端末装置のディスプレイまたは他の装置で再現して表示するための操作履歴として、第1ユーザの操作履歴を記録するステップ(S106〜S110)と、記録された第1ユーザの操作履歴を、操作履歴を収集する情報処理装置(サーバ200)に送信するステップ(S114)と、送信するステップにおいて第1ユーザの操作履歴が送信された場合に、第1ユーザにゲーム内での報酬を付与するステップ(S116またはS314)と、を含む。(項目12)に係る方法は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。
(項目13) 端末装置を説明した。本開示のある局面によると、端末装置(ユーザ端末100)は、ゲームプログラムを実行することにより、前記端末装置の動作を制御するプロセッサ(10)と、ゲームプログラムを記憶するメモリ(11)と、画像を表示するディスプレイ(表示部152)と、第1ユーザの入力操作を受け付けるように構成された操作部(入力部151等)と、を備える。ゲームプログラムに基づくゲームは、第1ユーザの操作内容に応じて異なる進行を経るゲームである。プロセッサは、ゲームにおける、あるユーザの所定期間の操作内容を端末装置のディスプレイまたは他の装置(第1ユーザに対応付けられたユーザ端末100以外の他のユーザ端末100、または他の装置)で再現して表示するための操作履歴として、前記第1ユーザの操作履歴を記録するステップ(S106〜S110)と、記録された前記第1ユーザの操作履歴を、前記操作履歴を収集する情報処理装置(サーバ200)に送信するステップ(S114)と、送信するステップにおいて第1ユーザの操作履歴が送信された場合に、第1ユーザにゲーム内での報酬を付与するステップ(S116またはS314)と、を実行する。(項目13)に係る端末装置は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。