本開示に係るシステムは、複数のユーザにゲームを提供するためのシステムである。以下、該システムについて図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が本発明に含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を繰り返さない。
<システム1の動作概要>
図1は、本実施形態に係るシステム1の概要を示す図である。システム1は、複数のユーザ端末100(コンピュータ、情報処理装置)と、サーバ200と、ゲームプレイ端末300(外部装置、第2外部装置)と、配信端末400(外部、第1外部装置)とを含む。なお、図1では、複数のユーザ端末100の一例として、ユーザ端末100A~100C、換言すれば、3台のユーザ端末100を記載しているが、ユーザ端末100の台数は図示の例に限定されない。また、本実施形態では、ユーザ端末100A~Cを区別する必要が無い場合、「ユーザ端末100」と記載する。ユーザ端末100、ゲームプレイ端末300、および配信端末400は、サーバ200とネットワーク2を介して接続する。ネットワーク2は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution)、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が挙げられる。
(ゲームの概要)
本実施形態では、システム1によって提供されるゲーム(以下、本ゲーム)の一例として、ゲームプレイ端末300のユーザが主としてプレイするゲームを説明する。以下、ゲームプレイ端末300のユーザを、「プレイヤ」と称する。プレイヤ(演者)は、一例として、本ゲームに登場するキャラクタを操作することにより、ゲームを進行させる。また、本ゲームにおいて、ユーザ端末100のユーザは、プレイヤによるゲームの進行を支援する役割を担う。本ゲームの詳細については後述する。なお、システム1によって提供されるゲームは、複数のユーザが参加するゲームであればよく、この例に限定されない。
(ゲームプレイ端末300)
ゲームプレイ端末300は、プレイヤによる入力操作に応じてゲームを進行させる。また、ゲームプレイ端末300は、プレイヤのゲームプレイにより生成された情報(以下、ゲーム進行情報)を、順次、サーバ200にリアルタイムで配信する。
(サーバ200)
サーバ200は、ゲームプレイ端末300からリアルタイムに受信したゲーム進行情報(第2データ)を、ユーザ端末100に送信する。また、サーバ200は、ユーザ端末100、ゲームプレイ端末300、および配信端末400の間の各種情報の送受信を仲介する。
(配信端末400)
配信端末400は、配信端末400のユーザによる入力操作に応じて、動作指図データ(第1データ)を生成し、サーバ200を介してユーザ端末100へ動作指図データを配信する。動作指図データとは、ユーザ端末100において動画を再生するためのデータであり、具体的には、動画に登場するキャラクタを動作させるためのデータである。
本実施形態では、一例として、配信端末400のユーザは、本ゲームのプレイヤである。また、一例として、ユーザ端末100にて動作指図データに基づいて再生される動画は、プレイヤがゲームで操作したキャラクタが動作する動画である。「動作」とは、キャラクタの身体の少なくとも一部を動かすことであり、発話も含む。このため、本実施形態に係る動作指図データは、例えば、キャラクタに発話させるための音声データと、キャラクタの身体を動かすためのモーションデータとを含む。
動作指図データは、一例として、本ゲームの終了後にユーザ端末100へ送信される。動作指図データ、および、該動作指図データに基づいて再生される動画の詳細については後述する。
(ユーザ端末100)
ユーザ端末100は、ゲーム進行情報をリアルタイムに受信し、該情報を用いてゲーム画面を生成して表示する。換言すれば、ユーザ端末100は、リアルタイムレンダリングにより、プレイヤがプレイしているゲームのゲーム画面を再生する。これにより、ユーザ端末100のユーザは、プレイヤがゲームをプレイしながら視認しているゲーム画面と同一のゲーム画面を、プレイヤとほぼ同じタイミングで視認することができる。
また、ユーザ端末100は、ユーザによる入力操作に応じて、プレイヤによるゲームの進行を支援するための情報を生成し、該情報を、サーバ200を介してゲームプレイ端末300へ送信する。該情報の詳細については後述する。
また、ユーザ端末100は、配信端末400から動作指図データを受信し、該動作指図データを用いて動画(映像)を生成して再生する。換言すれば、ユーザ端末100は、動作指図データをレンダリングして再生する。
<システム1のハードウェア構成>
図2は、ユーザ端末100のハードウェア構成を示す図である。図3は、サーバ200のハードウェア構成を示す図である。図4は、ゲームプレイ端末300のハードウェア構成を示す図である。図5は、配信端末400のハードウェア構成を示す図である。
(ユーザ端末100)
本実施形態では、一例として、ユーザ端末100がスマートフォンとして実現される例を説明するが、ユーザ端末100はスマートフォンに限定されない。例えば、ユーザ端末100はフィーチャーフォン、タブレット型コンピュータ、ラップトップ型コンピュータ(いわゆる、ノートパソコン)、または、デスクトップ型コンピュータなどとして実現されてもよい。また、ユーザ端末100は、ゲームプレイに適したゲーム装置であってもよい。
ユーザ端末100は図2に示すように、プロセッサ10と、メモリ11と、ストレージ12と、通信インターフェース(IF)13と、入出力IF14と、タッチスクリーン15(表示部、表示領域)と、カメラ17と、測距センサ18とを備える。ユーザ端末100が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、ユーザ端末100は、タッチスクリーン15に代えて、または、加えて、ユーザ端末100本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF14を備えていてもよい。
また、図2に示すように、ユーザ端末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とは、有線を介して信号を送受信する。
図2に示すように、ユーザ端末100は、外部のメモリカード等の記憶媒体1030の装着を、入出力IF14を介して受け付けてもよい。これにより、ユーザ端末100は、記憶媒体1030に記録されるプログラム及びデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、例えばゲームプログラムである。
ユーザ端末100は、サーバ200等の外部の装置と通信することにより取得したゲームプログラムをユーザ端末100のメモリ11に記憶してもよいし、記憶媒体1030から読み込むことにより取得したゲームプログラムをメモリ11に記憶してもよい。
以上で説明したとおり、ユーザ端末100は、該ユーザ端末100に対して情報を入力する機構の一例として、通信IF13、入出力IF14、タッチスクリーン15、カメラ17、および、測距センサ18を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。通信IF13は、ユーザ端末100に備えられたGPS(Global Positioning System)センサや、無線ネットワークシステムなどからの情報を利用して、特定した現実世界の位置情報をサーバ200に送信する。
例えば、操作部が、カメラ17および測距センサ18の少なくともいずれか一方で構成される場合、該操作部が、ユーザ端末100の近傍の物体1010を検出し、当該物体の検出結果から入力操作を特定する。一例として、物体1010としてのユーザの手、予め定められた形状のマーカーなどが検出され、検出結果として得られた物体1010の色、形状、動き、または、種類などに基づいて入力操作が特定される。より具体的には、ユーザ端末100は、カメラ17の撮影画像からユーザの手が検出された場合、該撮影画像に基づき検出されるジェスチャ(ユーザの手の一連の動き)を、ユーザの入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
あるいは、操作部がタッチスクリーン15で構成される場合、ユーザ端末100は、タッチスクリーン15の入力部151に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF13で構成される場合、ユーザ端末100は、コントローラ1020から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF14で構成される場合、該入出力IF14と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
(サーバ200)
サーバ200は、一例として、ワークステーションまたはパーソナルコンピュータなどの汎用コンピュータであってよい。サーバ200は、プロセッサ20と、メモリ21と、ストレージ22と、通信IF23と、入出力IF24と、距離判定部(図示しない)とを備える。サーバ200が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
(ゲームプレイ端末300)
ゲームプレイ端末300は、一例として、パーソナルコンピュータなどの汎用コンピュータであってよい。ゲームプレイ端末300は、プロセッサ30と、メモリ31と、ストレージ32と、通信IF33と、入出力IF34とを備える。ゲームプレイ端末300が備えるこれらの構成は、通信バスによって互いに電気的に接続される。
図4に示すように、本実施形態に係るゲームプレイ端末300は、一例として、HMD(Head Mounted Display)セット1000に含まれる。つまり、HMDセット1000が、システム1に含まれていると表現することができ、また、プレイヤは、HMDセット1000を用いてゲームをプレイすると表現することもできる。なお、プレイヤがゲームをプレイするための装置は、HMDセット1000に限定されない。一例として、該装置は、プレイヤにゲームを仮想体験させることが可能な装置であればよい。また、該装置は、スマートフォン、フィーチャーフォン、タブレット型コンピュータ、ラップトップ型コンピュータ(いわゆる、ノートパソコン)、または、デスクトップ型コンピュータなどとして実現されてもよい。また、該装置は、ゲームプレイに適したゲーム装置であってもよい。
HMDセット1000は、ゲームプレイ端末300の他、HMD500、HMDセンサ510、モーションセンサ520、ディスプレイ530、コントローラ540を備える。HMD500は、モニタ51と、注視センサ52と、第1カメラ53と、第2カメラ54と、マイク55と、スピーカ56とを含む。コントローラ540は、モーションセンサ520を含み得る。
HMD500は、プレイヤの頭部に装着され、動作中に仮想空間をプレイヤに提供し得る。より具体的には、HMD500は、右目用の画像および左目用の画像をモニタ51にそれぞれ表示する。プレイヤの各目がそれぞれの画像を視認すると、プレイヤは、両目の視差に基づき当該画像を3次元画像として認識し得る。HMD500は、モニタを備える所謂ヘッドマウントディスプレイと、スマートフォンその他のモニタを有する端末を装着可能なヘッドマウント機器のいずれをも含み得る。
モニタ51は、例えば、非透過型の表示装置として実現される。ある局面において、モニタ51は、プレイヤの両目の前方に位置するようにHMD500の本体に配置されている。したがって、プレイヤは、モニタ51に表示される3次元画像を視認すると、仮想空間に没入することができる。ある局面において、仮想空間は、例えば、背景、プレイヤが操作可能なオブジェクト、プレイヤが選択可能なメニューの画像を含む。ある局面において、モニタ51は、所謂スマートフォンその他の情報表示端末が備える液晶モニタまたは有機EL(Electro Luminescence)モニタとして実現され得る。
別の局面において、モニタ51は、透過型の表示装置として実現され得る。この場合、HMD500は、図1に示されるようにプレイヤの目を覆う密閉型ではなく、メガネ型のような開放型であり得る。透過型のモニタ51は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。モニタ51は、仮想空間を構成する画像の一部と、現実空間とを同時に表示する構成を含んでいてもよい。例えば、モニタ51は、HMD500に搭載されたカメラで撮影した現実空間の画像を表示してもよいし、一部の透過率を高く設定することにより現実空間を視認可能にしてもよい。
ある局面において、モニタ51は、右目用の画像を表示するためのサブモニタと、左目用の画像を表示するためのサブモニタとを含み得る。別の局面において、モニタ51は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、モニタ51は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
ある局面において、HMD500は、図示せぬ複数の光源を含む。各光源は例えば、赤外線を発するLED(Light Emitting Diode)により実現される。HMDセンサ510は、HMD500の動きを検出するためのポジショントラッキング機能を有する。より具体的には、HMDセンサ510は、HMD500が発する複数の赤外線を読み取り、現実空間内におけるHMD500の位置および傾きを検出する。
別の局面において、HMDセンサ510は、カメラにより実現されてもよい。この場合、HMDセンサ510は、カメラから出力されるHMD500の画像情報を用いて、画像解析処理を実行することにより、HMD500の位置および傾きを検出することができる。
別の局面において、HMD500は、位置検出器として、HMDセンサ510の代わりに、あるいはHMDセンサ510に加えてセンサ(不図示)を備えてもよい。HMD500は、該センサを用いて、HMD500自身の位置および傾きを検出し得る。例えば、該センサが角速度センサ、地磁気センサ、あるいは加速度センサである場合、HMD500は、HMDセンサ510の代わりに、これらの各センサのいずれかを用いて、自身の位置および傾きを検出し得る。一例として、HMD500に備えられたセンサが角速度センサである場合、角速度センサは、現実空間におけるHMD500の3軸周りの角速度を経時的に検出する。HMD500は、各角速度に基づいて、HMD500の3軸周りの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、HMD500の傾きを算出する。
注視センサ52は、プレイヤの右目および左目の視線が向けられる方向を検出する。つまり、注視センサ52は、プレイヤの視線を検出する。視線の方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ52は、当該アイトラッキング機能を有するセンサにより実現される。ある局面において、注視センサ52は、右目用のセンサおよび左目用のセンサを含むことが好ましい。注視センサ52は、例えば、プレイヤの右目および左目に赤外光を照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ52は、検出した各回転角に基づいて、プレイヤの視線を検知することができる。
第1カメラ53は、プレイヤの顔の下部を撮影する。より具体的には、第1カメラ53は、プレイヤの鼻および口などを撮影する。第2カメラ54は、プレイヤの目および眉などを撮影する。HMD500のプレイヤ側の筐体をHMD500の内側、HMD500のプレイヤとは逆側の筐体をHMD500の外側と定義する。ある局面において、第1カメラ53は、HMD500の外側に配置され、第2カメラ54は、HMD500の内側に配置され得る。第1カメラ53および第2カメラ54が生成した画像は、ゲームプレイ端末300に入力される。別の局面において、第1カメラ53と第2カメラ54とを1台のカメラとして実現し、この1台のカメラでプレイヤの顔を撮影するようにしてもよい。
マイク55は、プレイヤの発話を音声信号(電気信号)に変換してゲームプレイ端末300に出力する。スピーカ56は、音声信号を音声に変換してプレイヤに出力する。別の局面において、HMD500は、スピーカ56に替えてイヤホンを含み得る。
コントローラ540は、有線または無線によりゲームプレイ端末300に接続されている。コントローラ540は、プレイヤからゲームプレイ端末300への命令の入力を受け付ける。ある局面において、コントローラ540は、プレイヤによって把持可能に構成される。別の局面において、コントローラ540は、プレイヤの身体あるいは衣類の一部に装着可能に構成される。さらに別の局面において、コントローラ540は、ゲームプレイ端末300から送信される信号に基づいて、振動、音、光のうちの少なくともいずれかを出力するように構成されてもよい。さらに別の局面において、コントローラ540は、プレイヤから、仮想空間に配置されるオブジェクトの位置や動きを制御するための操作を受け付ける。
ある局面において、コントローラ540は、複数の光源を含む。各光源は例えば、赤外線を発するLEDにより実現される。HMDセンサ510は、ポジショントラッキング機能を有する。この場合、HMDセンサ510は、コントローラ540が発する複数の赤外線を読み取り、現実空間内におけるコントローラ540の位置および傾きを検出する。別の局面において、HMDセンサ510は、カメラにより実現されてもよい。この場合、HMDセンサ510は、カメラから出力されるコントローラ540の画像情報を用いて、画像解析処理を実行することにより、コントローラ540の位置および傾きを検出することができる。
モーションセンサ520は、ある局面において、プレイヤの手に取り付けられて、プレイヤの手の動きを検出する。例えば、モーションセンサ520は、手の回転速度、回転数等を検出する。検出された信号は、ゲームプレイ端末300に送られる。モーションセンサ520は、例えば、コントローラ540に設けられている。ある局面において、モーションセンサ520は、例えば、プレイヤに把持可能に構成されたコントローラ540に設けられている。別の局面において、現実空間における安全のため、コントローラ540は、手袋型のようにプレイヤの手に装着されることにより容易に飛んで行かないものに装着される。さらに別の局面において、プレイヤに装着されないセンサがプレイヤの手の動きを検出してもよい。例えば、プレイヤを撮影するカメラの信号が、プレイヤの動作を表わす信号として、ゲームプレイ端末300に入力されてもよい。モーションセンサ520とゲームプレイ端末300とは、一例として、無線により互いに接続される。無線の場合、通信形態は特に限られず、例えば、Bluetoothその他の公知の通信手法が用いられる。
ディスプレイ530は、モニタ51に表示されている画像と同様の画像を表示する。これにより、HMD500を装着しているプレイヤ以外のユーザにもプレイヤと同様の画像を視聴させることができる。ディスプレイ530に表示される画像は、3次元画像である必要はなく、右目用の画像や左目用の画像であってもよい。ディスプレイ530としては、例えば、液晶ディスプレイや有機ELモニタなどが挙げられる。
ゲームプレイ端末300は、HMD500の各部、コントローラ540、およびモーションセンサ520から取得した各種情報に基づいて、プレイヤの操作対象となるキャラクタを動作させ、ゲームを進行させる。ここでの「動作」には、身体の各部を動かすこと、姿勢を変えること、顔の表情を変えること、移動、発話、仮想空間に配置されたオブジェクトに触れたり、動かしたりすること、キャラクタが把持する武器、道具などを使用することなどが含まれる。すなわち、本ゲームでは、プレイヤが身体の各部を動かすことにより、キャラクタもプレイヤと同様に身体の各部を動かす。また、本ゲームでは、プレイヤが発話した内容をキャラクタが発話する。換言すれば、本ゲームにおいて、キャラクタは、プレイヤの分身としてふるまうアバターオブジェクトである。一例として、キャラクタの動作の少なくとも一部が、プレイヤによるコントローラ540に対する入力により実行されてもよい。
本実施形態では、モーションセンサ520は、一例として、プレイヤの両手、プレイヤの両足、プレイヤの腰部、および、プレイヤの頭部に取り付けられる。プレイヤの両手に取り付けられるモーションセンサ520は、上述したとおり、コントローラ540に設けられていてもよい。また、プレイヤの頭部に取り付けられるモーションセンサ520は、HMD500に設けられていてもよい。モーションセンサ520は、さらに、ユーザの両肘や両膝に取り付けられてもよい。プレイヤに取り付けるモーションセンサ520の数を増やすことにより、プレイヤの動きをより正確にキャラクタに反映させることができる。
また、プレイヤは、モーションセンサ520を身体の各部に取り付けることに代えて、1以上のモーションセンサ520が取り付けられたスーツを着用してもよい。つまり、モーションキャプチャの方法は、モーションセンサ520を用いる例に限定されない。
(配信端末400)
配信端末400は、スマートフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。また、配信端末400は、デスクトップパソコン等の、いわゆる据え置き型の端末であってもよい。
配信端末400は、図5に示すように、プロセッサ40と、メモリ41と、ストレージ42と、通信IF43と、入出力IF44と、タッチスクリーン45とを備える。なお、配信端末400は、タッチスクリーン45に代えて、または、加えて、配信端末400本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF44を備えていてもよい。
コントローラ1021は、1つ以上のボタン、レバー、スティック、ホイール等の物理的な入力機構を有していてもよい。コントローラ1021は、配信端末400の操作者(本実施形態ではプレイヤ)が、該入力機構に対して入力した入力操作に基づく出力値を配信端末400へ送信する。また、コントローラ1021は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値を配信端末400へ送信してもよい。上述の出力値は、通信IF43を介して配信端末400に受け付けられる。
配信端末400は、カメラと、測距センサ(ともに不図示)とを備えていてもよい。配信端末400が備えることに代えて、または、加えて、コントローラ1021がカメラと、測距センサとを有してしてもよい。
以上で説明したとおり、配信端末400は、該配信端末400に対して情報を入力する機構の一例として、通信IF43、入出力IF44、タッチスクリーン45を備える。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
操作部がタッチスクリーン45で構成されている場合、配信端末400は、タッチスクリーン45の入力部451に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF43で構成される場合、配信端末400は、コントローラ1021から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF44で構成される場合、配信端末400は、該入出力IF44と接続される入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
<各装置のハードウェア構成要素>
プロセッサ10、20、30、40はそれぞれ、ユーザ端末100、サーバ200、ゲームプレイ端末300、配信端末400の全体の動作を制御する。プロセッサ10、20、30、40は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。プロセッサ10、20、30、40は、それぞれ、後述するストレージ12、22、32、42からプログラムを読み出す。そして、プロセッサ10、20、30、40は、それぞれ、読み出したプログラムを、後述するメモリ11、21、31、41に展開する。プロセッサ10、20、30は、展開したプログラムを実行する。
メモリ11、21、31、41は主記憶装置である。メモリ11、21、31、41は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置で構成される。メモリ11は、プロセッサ10が後述するストレージ12から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ10に作業地域を提供する。メモリ11は、プロセッサ10がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ21は、プロセッサ20が後述するストレージ22から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ20に作業地域を提供する。メモリ21は、プロセッサ20がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ31は、プロセッサ30が後述するストレージ32から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ30に作業地域を提供する。メモリ31は、プロセッサ30がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ41は、プロセッサ40が後述するストレージ42から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ40に作業地域を提供する。メモリ41は、プロセッサ40がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
本実施形態において、プロセッサ10および30が実行するプログラムは、本ゲームのゲームプログラムであってもよい。本実施形態において、プロセッサ40が実行するプログラムは、動作指図データの配信を実現するための配信プログラムであってもよい。また、プロセッサ10は、さらに、動画の再生を実現するための視聴プログラムを実行してもよい。
本実施形態において、プロセッサ20が実行するプログラムは、上述のゲームプログラム、配信プログラム、視聴プログラムの少なくとも何れかであってもよい。プロセッサ20は、ユーザ端末100、ゲームプレイ端末300、および配信端末400の少なくとも何れかからの要求等に応じて、ゲームプログラム、配信プログラム、視聴プログラムの少なくとも何れかを実行する。なお、配信プログラムと視聴プログラムは、並行して実行されてもよい。
すなわち、ゲームプログラムは、ゲームをユーザ端末100、サーバ200、およびゲームプレイ端末300の協働により実現するプログラムであってもよい。配信プログラムは、動作指図データの配信を、サーバ200と配信端末400との協働により実現するプログラムであってもよい。視聴プログラムは、動画の再生を、ユーザ端末100とサーバ200との協働により実現するプログラムであってもよい。
ストレージ12、22、32、42は補助記憶装置である。ストレージ12、22、32、42は、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置で構成される。ストレージ12、32には、例えば、ゲームに関する各種データが格納される。ストレージ42には、動作指図データの配信に関する各種データが格納される。また、ストレージ12には、動画の再生に関する各種データが格納される。ストレージ22には、ゲーム、動作指図データの配信、および動画の再生それぞれに関する各種データのうち、少なくとも一部が格納されてもよい。
通信IF13、23、33、43は、それぞれ、ユーザ端末100、サーバ200、ゲームプレイ端末300、配信端末400における各種データの送受信を制御する。通信IF13、23、33、43は例えば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。
入出力IF14、24、34、44は、それぞれ、ユーザ端末100、サーバ200、ゲームプレイ端末300、配信端末400がデータの入力を受け付けるため、また、データを出力するためのインターフェースである。入出力IF14、24、34、44は、USB(Universal Serial Bus)等を介してデータの入出力を行ってもよい。入出力IF14、24、34、44は、物理ボタン、カメラ、マイク、スピーカ、マウス、キーボード、ディスプレイ、スティック、レバーなどを含み得る。また、入出力IF14、24、34、44は、周辺機器との間でデータを送受信するための接続部を含み得る。
タッチスクリーン15は、入力部151と表示部152(ディスプレイ)とを組み合わせた電子部品である。タッチスクリーン45は、入力部451と表示部452とを組み合わせた電子部品である。入力部151および451は、一例として、タッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部152および452は、例えば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。
入力部151および451は、入力面に対しユーザの操作(主にタッチ操作、スライド操作、スワイプ操作、およびタップ操作等の物理的接触操作)が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部151および451は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。
図示していないが、ユーザ端末100および配信端末400は、それぞれ、ユーザ端末100および配信端末400の保持姿勢を特定するための1以上のセンサを備えていてもよい。このセンサは、例えば、加速度センサ、または、角速度センサ等であってもよい。
ユーザ端末100および配信端末400がセンサを備えている場合、プロセッサ10および40は、それぞれ、センサの出力からユーザ端末100および配信端末400の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。例えば、プロセッサ10および40は、それぞれ、ユーザ端末100および配信端末400が縦向きに保持されているときには、縦長の画像を表示部152および452に表示させる縦画面表示としてもよい。一方、ユーザ端末100および配信端末400が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ10および40は、それぞれ、ユーザ端末100および配信端末400の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。
<システム1の機能的構成>
図6は、システム1に含まれるユーザ端末100、サーバ200、およびHMDセット1000の機能的構成を示すブロック図である。図7は、図6に示す配信端末400の機能的構成を示すブロック図である。
ユーザ端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、入出力IF14、およびタッチスクリーン15等の協働によって、制御部110および記憶部120として機能する。
サーバ200は、ユーザ端末100、HMDセット1000、および配信端末400の間の各種情報の送受信を仲介する機能を有する。サーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24等の協働によって、制御部210および記憶部220として機能する。
HMDセット1000(ゲームプレイ端末300)は、プレイヤの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能と、ゲーム進行情報を、サーバ200を介してユーザ端末100へリアルタイムに送信する機能を有する。HMDセット1000は、ゲームプレイ端末300のプロセッサ30、メモリ31、ストレージ32、通信IF33、入出力IF34、並びに、HMD500、HMDセンサ510、モーションセンサ520、およびコントローラ540等の協働によって、制御部310および記憶部320として機能する。
配信端末400は、動作指図データを生成して、該動作指図データを、サーバ200を介してユーザ端末100へ送信する機能を有する。配信端末400は、プロセッサ40、メモリ41、ストレージ42、通信IF43、入出力IF44、およびタッチスクリーン45等の協働によって、制御部410および記憶部420として機能する。
(各装置の記憶部が格納するデータ)
記憶部120は、ゲームプログラム131(プログラム)、ゲーム情報132、および、ユーザ情報133を格納する。記憶部220は、ゲームプログラム231、ゲーム情報232、ユーザ情報233、および、ユーザリスト234を格納する。記憶部320は、ゲームプログラム331、ゲーム情報332、および、ユーザ情報333を格納する。記憶部420は、ユーザリスト421、モーションリスト422、配信プログラム423(プログラム、第2プログラム)を格納する。
ゲームプログラム131、231、331は、それぞれ、ユーザ端末100、サーバ200、HMDセット1000が実行するゲームプログラムである。ゲームプログラム131、231、331に基づいて各装置が協働して動作することにより、本ゲームが実現される。なお、ゲームプログラム131および331は、記憶部220に格納され、ユーザ端末100およびHMDセット1000にそれぞれダウンロードされる構成でもよい。なお、本実施形態では、ユーザ端末100は、ゲームプログラム131に基づいて、配信端末400から受信したデータをレンダリングし、動画を再生するものとする。換言すれば、ゲームプログラム131は、配信端末400から配信された動画指図データを用いて、動画を再生するためのプログラムでもある。該動画を再生するためのプログラムは、ゲームプログラム131と異なってもよい。この場合、記憶部120は、ゲームプログラム131とは別に、該動画を再生するためのプログラムを格納する。
ゲーム情報132、232、332は、それぞれ、ユーザ端末100、サーバ200、HMDセット1000がゲームプログラムを実行する際に参照するデータである。ユーザ情報133、233、333は、ユーザ端末100のユーザのアカウントに関するデータである。ゲーム情報232は、各ユーザ端末100のゲーム情報132、および、HMDセット1000のゲーム情報332である。ユーザ情報233は、各ユーザ端末100のユーザ情報133、および、ユーザ情報333に含まれる、プレイヤのユーザ情報である。ユーザ情報333は、各ユーザ端末100のユーザ情報133、および、プレイヤのユーザ情報である。
ユーザリスト234およびユーザリスト421は、ゲームに参加したユーザのリストである。ユーザリスト234およびユーザリスト421は、プレイヤによる直近のゲームプレイにおいて参加したユーザのリストの他、該ゲームプレイ以前の各ゲームプレイにおいて参加したユーザのリストを含んでいてもよい。モーションリスト422は、予め作成されている複数のモーションデータのリストである。モーションリスト422は、例えば、各モーションを識別する情報(例えば、モーション名)のそれぞれに、モーションデータが対応付けられたリストである。配信プログラム423は、ユーザ端末100にて動画を再生するための動作指図データの、ユーザ端末100への配信を実現するためのプログラムである。
(サーバ200の機能的構成)
制御部210は、記憶部220に格納されたゲームプログラム231を実行することにより、サーバ200を統括的に制御する。例えば制御部210は、ユーザ端末100、HMDセット1000、および配信端末400の間の各種情報の送受信を仲介する。
制御部210は、ゲームプログラム231の記述に応じて、通信仲介部211、ログ生成部212、リスト生成部213として機能する。制御部210は、ゲームプレイおよび動作指図データの配信に係る各種情報の送受信の仲介、並びに、ゲームの進行の支援のために、図示しないその他の機能ブロックとしても機能することができる。
通信仲介部211は、ユーザ端末100、HMDセット1000、および配信端末400の間の各種情報の送受信を仲介する。例えば、通信仲介部211は、HMDセット1000から受信したゲーム進行情報をユーザ端末100へ送信する。ゲーム進行情報は、プレイヤによって操作されるキャラクタの動き、該キャラクタのパラメータ、該キャラクタが所持しているアイテムや武器、敵キャラクタなどの情報などを示すデータが含まれる。サーバ200は、ゲーム進行情報を、ゲームに参加している全てのユーザのユーザ端末100へ送信する。換言すれば、サーバ200は、共通のゲーム進行情報をゲームに参加している全てのユーザのユーザ端末100へ送信する。これにより、ゲームに参加している全てのユーザのユーザ端末100それぞれにおいて、HMDセット1000と同様にゲームが進行する。
また、例えば、通信仲介部211は、ユーザ端末100のいずれかから受信した、プレイヤによるゲームの進行を支援するための情報を、その他のユーザ端末100、および、HMDセット1000へ送信する。該情報は、一例として、プレイヤがゲームを有利に進行するためのアイテムであって、プレイヤ(キャラクタ)に提供されるアイテムを示すアイテム情報であってもよい。アイテム情報は、アイテムを提供したユーザを示す情報(ユーザ名、ユーザIDなど)を含む。また、通信仲介部211は、配信端末400からユーザ端末100への動作指図データの配信を仲介してもよい。
ログ生成部212は、HMDセット1000から受信するゲーム進行情報に基づいて、ゲーム進行のログを生成する。リスト生成部213は、ゲームプレイの終了後にユーザリスト234を生成する。詳細については後述するが、ユーザリスト234における各ユーザには、そのユーザが行ったプレイヤへの支援の内容を示すタグが関連付けられている。リスト生成部213は、ログ生成部212が生成したゲーム進行のログに基づいて、タグを生成し、該当するユーザに関連付ける。なお、リスト生成部213は、ゲームの運営者などがパーソナルコンピュータなどの端末装置を用いて入力した、各ユーザが行ったプレイヤへの支援の内容を、タグとして、該当するユーザに関連付けてもよい。これにより、各ユーザが行った支援の内容がより詳細なものとなる。なお、ユーザ端末100は、ユーザがゲームに参加する際、ユーザの操作に基づいて、ユーザを示す情報をサーバ200へ送信する。例えば、ユーザ端末100は、ユーザが入力したユーザIDをサーバ200へ送信する。つまり、サーバ200は、ゲームに参加している全てのユーザについて、各ユーザを示す情報を保持している。リスト生成部213は、該情報を用いて、ユーザリスト234を生成すればよい。
(HMDセット1000の機能的構成)
制御部310は、記憶部320に格納されたゲームプログラム331を実行することにより、HMDセット1000を統括的に制御する。例えば、制御部310は、ゲームプログラム331、および、プレイヤの操作に従って、ゲームを進行させる。また、制御部310は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。制御部310は、情報の送受信を、サーバ200を介さずにユーザ端末100と直接行ってもよい。
制御部310は、ゲームプログラム331の記述に応じて、操作受付部311、表示制御部312、UI制御部313、アニメーション生成部314、ゲーム進行部315、仮想空間制御部316、および反応処理部317として機能する。制御部310は、実行されるゲームの性質に応じて、該ゲームに登場するキャラクタの制御などのために、図示しないその他の機能ブロックとしても機能することができる。
操作受付部311は、プレイヤの入力操作を検知し、受け付ける。操作受付部311は、HMD500、モーションセンサ520、コントローラ540などから入力された信号を受け付け、いかなる入力操作がなされたかを判別し、その結果を制御部310の各要素に出力する。
UI制御部313は、モニタ51、ディスプレイ530などに表示させるユーザインターフェース(以下、UI)画像を制御する。UI画像は、プレイヤが、ゲームの進行上必要な入力をHMDセット1000に対して行うためのツール、または、ゲームの進行中に出力される情報をHMDセット1000から得るためのツールである。UI画像は、これには限定されないが、例えば、アイコン、ボタン、リスト、メニュー画面などである。
アニメーション生成部314は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。例えば、アニメーション生成部314は、オブジェクト(例えば、プレイヤのアバターオブジェクト)がまるでそこにいるかのように動いたり、口を動かしたり、表情を変えたりする様子を表現したアニメーション等を生成してもよい。
ゲーム進行部315は、ゲームプログラム331、プレイヤによる入力操作、および、該入力操作に応じたアバターオブジェクトの動作などに基づいて、ゲームを進行する。例えば、ゲーム進行部315は、アバターオブジェクトが所定の動作を行った場合に、所定のゲーム処理を行う。また、例えば、ゲーム進行部315は、ユーザ端末100におけるユーザの操作を表す情報を受信し、当該ユーザの操作に基づいてゲーム処理を行ってもよい。また、ゲーム進行部315は、ゲームの進行に従ってゲーム進行情報を生成し、サーバ200へ送信する。該ゲーム進行情報は、サーバ200を介してユーザ端末100へ送信される。これにより、HMDセット1000におけるゲームの進行が、ユーザ端末100において共有される。換言すれば、HMDセット1000におけるゲームの進行と、ユーザ端末100におけるゲームの進行とが同期する。
仮想空間制御部316は、ゲームの進行に応じて、プレイヤに提供される仮想空間に関する各種の制御を行う。一例として、仮想空間制御部316は、各種オブジェクトを生成し、仮想空間に配置する。また、仮想空間制御部316は、仮想カメラを仮想空間に配置する。また、仮想空間制御部316は、ゲームの進行に応じて、仮想空間に配置した各種オブジェクトを動作させる。また、仮想空間制御部316は、ゲームの進行に応じて、仮想空間に配置した仮想カメラの位置、傾きを制御する。
表示制御部312は、モニタ51、ディスプレイ530に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部312は、仮想空間に配置された仮想カメラからの視界に基づく画像を、ゲーム画面として、モニタ51、ディスプレイ530に表示してもよい。また、表示制御部312は、アニメーション生成部314によって生成されたアニメーションを該ゲーム画面に含めてもよい。また、表示制御部312は、UI制御部313によって制御される上述のUI画像を、該ゲーム画面に重畳して描画してもよい。
反応処理部317は、ユーザ端末100のユーザによる、プレイヤのゲームプレイに対する反応についてフィードバックを受け付けて、これを、プレイヤに対して出力する。本実施形態では、例えば、ユーザ端末100は、ユーザの入力操作に基づいて、アバターオブジェクトに宛てたコメント(メッセージ)を作成することができる。反応処理部317は、該コメントのコメントデータを受け付けて、これを出力する。反応処理部317は、ユーザのコメントに対応するテキストデータを、モニタ51、ディスプレイ530に表示してもよいし、ユーザのコメントに対応する音声データを、図示しないスピーカから出力してもよい。前者の場合、反応処理部317は、上記テキストデータに対応する画像(すなわち、コメントの内容を含む画像)を、ゲーム画面に重畳して描画してもよい。
(ユーザ端末100の機能的構成)
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム131、および、ユーザの操作に従って、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200と通信して、情報の送受信を行う。制御部110は、情報の送受信を、サーバ200を介さずにHMDセット1000と直接行ってもよい。
制御部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は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。
ゲーム進行部115は、ゲームプログラム131、受信したゲーム進行情報、および、ユーザによる入力操作などに基づいて、ゲームを進行する。ゲーム進行部115は、ユーザによる入力操作により、所定のゲーム処理を行った場合、該ゲーム処理に関する情報を、サーバ200を介してHMDセット1000へ送信する。これにより、該所定のゲーム処理が、HMDセット1000において共有される。換言すれば、HMDセット1000におけるゲームの進行と、ユーザ端末100におけるゲームの進行とが同期する。所定のゲーム処理とは、例えば、アバターオブジェクトにアイテムを提供する処理であり、この例の場合、ゲーム処理に関する情報は、上述したアイテム情報である。
仮想空間制御部116は、ゲームの進行に応じて、ユーザに提供される仮想空間に関する各種の制御を行う。一例として、仮想空間制御部116は、各種オブジェクトを生成し、仮想空間に配置する。また、仮想空間制御部116は、仮想カメラを仮想空間に配置する。また、仮想空間制御部116は、ゲームの進行、具体的には、受信したゲーム進行情報に応じて、仮想空間に配置した各種オブジェクトを動作させる。また、仮想空間制御部316は、ゲームの進行、具体的には、受信したゲーム進行情報に応じて、仮想空間に配置した仮想カメラの位置、傾きを制御する。
表示制御部112は、表示部152に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部112は、ユーザに提供される仮想空間に配置された仮想カメラからの視界に基づく画像を、ゲーム画面として、表示部152に表示してもよい。また、表示制御部112は、アニメーション生成部114によって生成されたアニメーションを該ゲーム画面に含めてもよい。また、表示制御部112は、UI制御部113によって制御される上述のUI画像を、該ゲーム画面に重畳して描画してもよい。いずれにしても、表示部152に表示されるゲーム画面は、他のユーザ端末100、および、HMDセット1000にて表示されるゲーム画面と同様のゲーム画面である。
動画再生部117は、配信端末400から受信した動作指図データを解析(レンダリング)し、動画を再生する。
(配信端末400の機能的構成)
制御部410は、記憶部420に格納されたプログラム(不図示)を実行することにより、配信端末400を統括的に制御する。例えば、制御部410は、該プログラム、および、配信端末400のユーザ(本実施形態ではプレイヤ)の操作に従って、動作指図データを生成し、ユーザ端末100に配信する。また、制御部410は、必要に応じて、サーバ200と通信して、情報の送受信を行う。制御部410は、情報の送受信を、サーバ200を介さずにユーザ端末100と直接行ってもよい。
制御部410は、プログラムの記述に応じて、通信制御部411、表示制御部412、操作受付部413、音声受付部414、モーション特定部415、および動作指図データ生成部416として機能する。制御部410は、動作指図データの生成および配信のために、図示しないその他の機能ブロックとしても機能することができる。
通信制御部411は、サーバ200、または、サーバ200を介したユーザ端末100との情報の送受信を制御する。通信制御部411は、一例として、サーバ200からユーザリスト421を受信する。また、通信制御部411は、一例として、動作指図データをユーザ端末100へ送信する。
表示制御部412は、表示部452に対して、各要素によって実行された処理結果が反映された各種画面を出力する。表示制御部412は、一例として、受信したユーザリスト234を含む画面を表示する。また、表示制御部412は、一例として、配信する動作指図データに含まれる、アバターオブジェクトを動作させるためのモーションデータを、プレイヤに選択させるためのモーションリスト422を含む画面を表示する。
操作受付部413は、入力部151に対するプレイヤの入力操作を検知し受け付ける。操作受付部111は、タッチスクリーン45およびその他の入出力IF44を介したコンソールに対してプレイヤが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部410の各要素に出力する。
例えば、操作受付部413は、入力部451に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部413は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部413は、連続して検知されていた入力が途切れると、タッチスクリーン45から接触入力が解除されたことを検知する。
音声受付部414は、配信端末400の周囲で発生した音声を受け付け、該音声の音声データを生成する。音声受付部414は、一例として、プレイヤが発話した音声を受け付け、該音声の音声データを生成する。
モーション特定部415は、プレイヤの入力操作に応じて、モーションリスト422から、プレイヤが選択したモーションデータを特定する。
動作指図データ生成部416は、動作指図データを生成する。一例として、動作指図データ生成部416は、生成された音声データと、特定されたモーションデータとを含む動作指図データを生成する。
なお、図6に示すHMDセット1000、サーバ200、およびユーザ端末100の機能、並びに、図7に示す配信端末400の機能は一例にすぎない。HMDセット1000、サーバ200、ユーザ端末100、および配信端末400の各装置は、他の装置が備える機能の少なくとも一部を備えていてもよい。さらに、HMDセット1000、サーバ200、ユーザ端末100、および配信端末400以外のさらに別の装置をシステム1の構成要素とし、該別の装置にシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、HMDセット1000、サーバ200、ユーザ端末100、および配信端末400、並びに、それ以外の別の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
<仮想空間の制御処理>
図8は、プレイヤに提供される仮想空間、および、ユーザ端末100のユーザに提供される仮想空間の制御処理の流れの一例を示すフローチャートである。図9は、ある実施の形態に従う、プレイヤに提供される仮想空間600A、および、プレイヤが視認する視界画像を示す図である。図10は、ある実施の形態に従う、ユーザ端末100のユーザに提供される仮想空間600B、および、ユーザが視認する視界画像を示す図である。なお以降、仮想空間600Aおよび600Bを区別する必要が無い場合、「仮想空間600」と記載する。
ステップS1において、プロセッサ30は、仮想空間制御部316として、図9に示す仮想空間600Aを規定する。プロセッサ30は、仮想空間データ(不図示)を用いて、仮想空間600Aを規定する。仮想空間データは、ゲームプレイ端末300に記憶されていてもよいし、プロセッサ30が、ゲームプログラム331に基づいて生成してもよいし、プロセッサ30が、サーバ200などの外部の装置から取得してもよい。
仮想空間600は、一例として、中心として定義された点の360度方向の全体を覆う全天球状の構造を有する。図9および図10では、説明を複雑にしないために、仮想空間600のうちの上半分の天球が例示されている。
ステップS2において、プロセッサ30は、仮想空間制御部316として、仮想空間600Aに、アバターオブジェクト610(キャラクタ)を配置する。アバターオブジェクト610は、プレイヤに関連付けられたアバターオブジェクトであり、プレイヤの入力操作に従って動作する。
ステップS3において、プロセッサ30は、仮想空間制御部316として、仮想空間600Aに、その他のオブジェクトを配置する。図9の例では、プロセッサ30は、オブジェクト631~634を配置する。その他のオブジェクトは、例えば、ゲームプログラム331に従って動作するキャラクタオブジェクト(いわゆるノンプレイヤキャラクタ、NPC)、仮想手などの操作オブジェクト、ゲームの進行に従って配置される動物、植物、人工物、自然物などを模したオブジェクトなどを含み得る。
ステップS4において、プロセッサ30は、仮想空間制御部316として、仮想空間600Aに仮想カメラ620Aを配置する。プロセッサ30は、一例として、仮想カメラ620Aを、アバターオブジェクト610の頭部の位置に配置する。
ステップS5において、プロセッサ30は、視界画像650をモニタ51およびディスプレイ530に表示する。プロセッサ30は、仮想カメラ620Aの初期の位置と傾きとに応じて、仮想空間600Aにおける仮想カメラ620Aからの視界である視界地域640Aを定義する。そして、プロセッサ30は、視界地域640Aに対応する視界画像650を定義する。プロセッサ30は、視界画像650をモニタ51およびディスプレイ530に出力することによって、視界画像650をHMD500およびディスプレイ530に表示させる。
図9の例において、図9(A)に示すように、オブジェクト634の一部が視界地域640Aに含まれているため、視界画像650は、図9(B)に示すようにオブジェクト634の一部を含む。
ステップS6において、プロセッサ30は、初期配置情報を、サーバ200を介してユーザ端末100へ送信する。初期配置情報とは、仮想空間600Aにおける各種オブジェクトの初期の配置位置を示す情報である。図9の例において、初期配置情報は、アバターオブジェクト610、および、オブジェクト631~634の初期の配置位置の情報を含む。初期配置情報は、ゲーム進行情報の1つであると表現することもできる。
ステップS7において、プロセッサ30は、仮想空間制御部316として、HMD500の動きに応じて仮想カメラ620Aを制御する。具体的には、プロセッサ30は、HMD500の動き、すなわち、プレイヤの頭部の姿勢に応じて、仮想カメラ620Aの向きおよび傾きを制御する。後述のように、プロセッサ30は、プレイヤが頭部を動かす(頭部の姿勢を変更する)と、この動きに合わせて、アバターオブジェクト610の頭部を動かす。プロセッサ30は、例えば、アバターオブジェクト610の視線の方向と、仮想カメラ620Aの視線の方向とが一致するように、仮想カメラ620Aの向きおよび傾きを制御する。ステップS8において、プロセッサ30は、仮想カメラ620Aの向きおよび傾きが変更されたことに応じて、視界画像650を更新する。
ステップS9において、プロセッサ30は、仮想空間制御部316として、プレイヤの動きに応じて、アバターオブジェクト610を動かす。一例として、プロセッサ30は、プレイヤが現実空間で移動したことに応じて、仮想空間600Aでアバターオブジェクト610を移動させる。また、プロセッサ30は、プレイヤが現実空間で頭部を動かしたことに応じて、仮想空間600Aでアバターオブジェクト610の頭部を動かす。
ステップS10において、プロセッサ30は、仮想空間制御部316として、仮想カメラ620Aを、アバターオブジェクト610に追随するように移動させる。つまり、仮想カメラ620Aは、アバターオブジェクト610が移動しても、常にアバターオブジェクト610の頭部の位置にある。
プロセッサ30は、仮想カメラ620Aの移動に応じて、視界画像650を更新する。つまり、プロセッサ30は、プレイヤの頭部の姿勢と、仮想空間600Aにおける仮想カメラ620Aの位置とに応じて、視界地域640Aを更新する。その結果、視界画像650が更新される。
ステップS11において、プロセッサ30は、アバターオブジェクト610の動作指図データを、サーバ200を介してユーザ端末100へ送信する。ここでの動作指図データは、仮想体験中(例えば、ゲームプレイ中)において、プレイヤの動作を取り込んだモーションデータ、プレイヤが発話した音声の音声データ、コントローラ540に対する入力操作の内容を示す操作データの少なくとも何れかを含む。プレイヤがゲームをプレイしている場合、動作指図データは、例えば、ゲーム進行情報としてユーザ端末100へ送信される。
ステップS7~S11の処理は、プレイヤがゲームをプレイしている間、継続して繰り返し実行される。
ステップS21において、ユーザ3のユーザ端末100のプロセッサ10は、仮想空間制御部116として、図10に示す仮想空間600Bを規定する。プロセッサ10は、仮想空間データ(不図示)を用いて、仮想空間600Bを規定する。仮想空間データは、ユーザ端末100に記憶されていてもよいし、プロセッサ10が、ゲームプログラム131に基づいて生成してもよいし、プロセッサ10が、サーバ200などの外部の装置から取得してもよい。
ステップS22において、プロセッサ10は、初期配置情報を受信する。ステップS23において、プロセッサ10は、仮想空間制御部116として、初期配置情報に応じて各種オブジェクトを仮想空間600Bに配置する。図10の例の場合、各種オブジェクトは、アバターオブジェクト610、および、オブジェクト631~634である。
ステップS24において、プロセッサ10は、仮想空間制御部116として、仮想空間600Bに仮想カメラ620Bを配置する。プロセッサ10は、一例として、仮想カメラ620Bを、図10(A)に示す位置に配置する。
ステップS25において、プロセッサ10は、視界画像660を表示部152に表示する。プロセッサ10は、仮想カメラ620Bの初期の位置と傾きとに応じて、仮想空間600Bにおける仮想カメラ620Bからの視界である視界地域640Bを定義する。そして、プロセッサ10は、視界地域640Bに対応する視界画像660を定義する。プロセッサ10は、視界画像660を表示部152に出力することによって、視界画像660を表示部152に表示させる。
図10の例において、図10(A)に示すように、アバターオブジェクト610およびオブジェクト631が視界地域640Bに含まれているため、視界画像660は、図10(B)に示すようにアバターオブジェクト610およびオブジェクト631を含む。
ステップS26において、プロセッサ10は、動作指図データを受信する。ステップS27において、プロセッサ10は、仮想空間制御部116として、動作指図データに応じて、仮想空間600Bでアバターオブジェクト610を動かす。換言すれば、プロセッサ10は、リアルタイムレンダリングにより、アバターオブジェクト610が動作している映像を再生する。
ステップS28において、プロセッサ10は、仮想空間制御部116として、操作受付部111として受け付けたユーザの操作に応じて仮想カメラ620Bを制御する。ステップS29において、プロセッサ10は、仮想カメラ620Bの仮想空間600Bにおける位置、仮想カメラ620Bの向きおよび傾きが変更されたことに応じて、視界画像660を更新する。なお、ステップS28において、プロセッサ10は、アバターオブジェクト610の動き、例えば、アバターオブジェクト610の移動や、向きの変更に応じて仮想カメラ620Bを自動的に制御してもよい。例えば、プロセッサ10は、常にアバターオブジェクト610を正面から撮影するように自動的に仮想カメラ620Bを移動させたり、向きおよび傾きを変更したりしてもよい。また、一例として、プロセッサ10は、アバターオブジェクト610の動きに応じて、常にアバターオブジェクト610を後方から撮影するように自動的に仮想カメラ620Bを移動させたり、向きおよび傾きを変更したりしてもよい。
このように、仮想空間600Aにおいて、アバターオブジェクト610は、プレイヤの動きに応じて動作する。この動作を示す動作指図データは、ユーザ端末100に送信される。仮想空間600Bにおいて、アバターオブジェクト610は、受信した動作指図データに応じて動作する。これにより、仮想空間600Aと仮想空間600Bとにおいて、アバターオブジェクト610は同様の動作を行う。換言すれば、ユーザ3は、ユーザ端末100を用いて、プレイヤの動作に応じたアバターオブジェクト610の動作を視認することができる。
<ゲーム概要>
図11は、ユーザ端末100において表示される視界画像の他の例を示す図である。具体的には、プレイヤがプレイしている、システム1が実行するゲーム(本ゲーム)のゲーム画面の一例を示す図である。
本ゲームは、一例として、銃、ナイフなどの武器を操作するアバターオブジェクト610と、NPCである複数の敵オブジェクト671とを仮想空間600に登場させ、アバターオブジェクト610に敵オブジェクト671との対戦を行わせるゲームである。アバターオブジェクト610の体力、使用可能なマガジンの数、銃の残弾数、敵オブジェクト671の残数等の各種ゲームパラメータは、ゲームの進行に応じて更新される。
本ゲームには、複数のステージが用意されており、プレイヤは、各ステージに関連付けられている所定の達成条件を成立させることにより、当該ステージをクリアすることができる。所定の達成条件としては、例えば、出現する敵オブジェクト671をすべて倒すことや、出現する敵オブジェクト671のうちボスオブジェクトを倒すこと、所定のアイテムを獲得すること、所定位置に到達することなどにより成立する条件を含むものであってもよい。該達成条件は、ゲームプログラム131内で定義されている。なお、本ゲームでは、ゲームの内容に即し、達成条件が成立された場合にプレイヤはステージをクリア、換言すれば、アバターオブジェクト610の敵オブジェクト671への勝利(アバターオブジェクト610と敵オブジェクト671との間の勝敗)が決定される。これに対し、例えば、システム1で実行されるゲームがレースゲーム等である場合、ゴールに到達するという条件が成立した場合に、アバターオブジェクト610の順位が決定される。
本ゲームでは、HMDセット1000及び複数のユーザ端末100の間で仮想空間を共有するために、ゲーム進行情報が、所定時間毎に複数のユーザ端末100にライブ配信される。この結果、ゲームを視聴中のユーザ端末100のタッチスクリーン15には、ユーザ端末100に対応する仮想カメラ620Bによって規定される視界地域の視界画像が表示される。また、視界画像の右上段および左上段には、アバターオブジェクト610の体力、使用可能なマガジンの数、銃の残弾数、敵オブジェクト671の残数等を表すパラメータ画像が重畳的に表示される。この視界画像は、ゲーム画面と表現することもできる。
ゲーム進行情報は、上述したとおり、プレイヤの動作を取り込んだモーションデータ、プレイヤが発話した音声の音声データ、コントローラ540に対する入力操作の内容を示す操作データを含む。これらのデータはすなわち、アバターオブジェクト610の位置、姿勢、向きなどを特定するための情報、敵オブジェクト671の位置、姿勢、向きなどを特定する情報、その他オブジェクト(例えば、障害物オブジェクト672、673)の位置などを特定する情報である。プロセッサ10は、ゲーム進行情報を解析(レンダリング)することにより、各オブジェクトの位置、姿勢、向きなどを特定する。
ゲーム情報132は、アバターオブジェクト610、敵オブジェクト671、障害物オブジェクト672、673等の各種オブジェクトのデータを含む。プロセッサ10は、該データと、ゲーム進行情報の解析結果とを用いて、各オブジェクトの位置、姿勢、向きなどを更新する。これにより、ゲームが進行し、仮想空間600Bにおける各オブジェクトは、仮想空間600Aにおける各オブジェクトと同様に動く。具体的には、仮想空間600Bにおいて、アバターオブジェクト610を含む各オブジェクトは、ユーザ端末100に対するユーザからの操作の有無に関わらず、ゲーム進行情報に基づいて動作する。
ユーザ端末100のタッチスクリーン15においては、一例として、UI画像701および702が、視界画像に重畳して表示される。UI画像701は、アバターオブジェクト610を支援するためのアイテム投入操作をユーザ3から受け付けるUI画像711を、タッチスクリーン15に表示するための操作を受け付けるUI画像である。UI画像702は、アバターオブジェクト610(換言すれば、プレイヤ4)に対するコメントを入力し、送信するための操作をユーザ3から受け付けるUI画像(後述)を、タッチスクリーン15に表示するための操作を受け付けるUI画像である。UI画像701および702が受け付ける操作は、例えば、UI画像701および702をタップする操作であってもよい。
UI画像701がタップされると、UI画像711が、視界画像に重畳して表示される。UI画像711は、例えば、マガジンのアイコンが描かれたUI画像711A、救急箱のアイコンが描かれたUI画像711B、三角コーンのアイコンが描かれたUI画像711C、バリケードのアイコンが描かれたUI画像711Dを含む。アイテム投入操作は、例えば、いずれかのUI画像をタップする操作に相当する。
一例として、UI画像711Aがタップされると、アバターオブジェクト610が使用する銃の残弾数が増加する。UI画像711Bがタップされると、アバターオブジェクト610の体力が回復する。UI画像711Cおよび711Dがタップされると、敵オブジェクト671の移動を妨害する障害物オブジェクト672、673が仮想空間に配置される。障害物オブジェクト672、673は、一方が他方に比べて、敵オブジェクト671の移動をより妨害するものであってもよい。
プロセッサ10は、アイテム投入操作が行われたことを示すアイテム投入情報を、サーバ200へ送信する。アイテム投入情報には、アイテム投入操作により指定されたアイテムの種別を特定するための情報が少なくとも含まれる。アイテム投入情報には、アイテムが配置される位置を示す情報など、アイテムに関するその他の情報が含まれていてもよい。アイテム投入情報は、サーバ200を介して、他のユーザ端末100、および、HMDセット1000へ送信される。
図12は、ユーザ端末100において表示される視界画像の他の例を示す図である。具体的には、本ゲームのゲーム画面の一例を示す図であり、ゲームプレイ中のプレイヤとユーザ端末100とのコミュニケーションについて説明するための図である。
図12(A)の例において、ユーザ端末100は、アバターオブジェクト610に発話691を実行させている。具体的には、ユーザ端末100は、ゲーム進行情報に含まれる音声データに従って、アバターオブジェクト610に発話691を実行させている。発話691の内容は、プレイヤ4が発話した「弾が無いよー!」というものである。すなわち、発話691の内容は、マガジンが0、銃に装填した銃弾が1となったことにより、敵オブジェクト671を攻撃する手段を失いそうであることを各ユーザに伝えるものである。
なお、図12(A)では、アバターオブジェクト610の発話を視覚的に示すため吹き出しを用いているが、実際は、ユーザ端末100のスピーカから音声が出力される。なお、音声出力とともに、図12(A)に示す吹き出し(すなわち、音声の内容のテキストを含む吹き出し)が視界画像中に表示されてもよい。これは、後述する発話692でも同様である。
UI画像702に対するタップ操作を受け付けると、ユーザ端末100は、図12(B)に示すように、UI画像705および706(メッセージUI)を視界画像に重畳して表示する。UI画像705は、アバターオブジェクト610(換言すれば、プレイヤ)に対するコメントを表示するUI画像である。UI画像706は、入力されたコメントを送信するためコメント送信操作をユーザ3から受け付けるUI画像である。
ユーザ端末100は、一例として、UI画像705へのタップ操作を受け付けると、キーボードを模したUI画像(不図示、以下、単に「キーボード」と記載)をタッチスクリーン15に表示させる。ユーザ端末100は、キーボードに対するユーザの入力操作に応じたテキストを、UI画像705に表示させる。図12(B)の例では、「マガジン送るね」というテキストがUI画像705に表示されている。
ユーザ端末100は、テキスト入力後に、一例として、UI画像706へのタップ操作を受け付けると、入力した内容(テキストの内容)を示す情報と、ユーザを示す情報とを含むコメント情報をサーバ200へ送信する。コメント情報は、サーバ200を介して、他のユーザ端末100、および、HMDセット1000へ送信される。
UI画像703Aは、コメントを送信したユーザのユーザ名を示すUI画像であり、UI画像704Aは、該ユーザが送信したコメントの内容を示すUI画像である。図12(B)の例では、ユーザ名が「BBBBB」であるユーザが、自身のユーザ端末100を用い、「危ない!」という内容のコメント情報を送信したことにより、UI画像703AおよびUI画像704Aが表示されている。UI画像703AおよびUI画像704Aは、本ゲームに参加しているすべてのユーザ端末100のタッチスクリーン15、および、HMD500のモニタ51に表示される。なお、UI画像703Aおよび704Aは、1つのUI画像であってもよい。すなわち、1つのUI画像にユーザ名とコメントの内容とが含まれていてもよい。
図12(C)の例では、図12に示すユーザ端末100のユーザである、「AAAAA」というユーザ名のユーザが、上述したとおりコメントを入力し、送信したことにより、タッチスクリーン15にUI画像703Bおよび704Bが表示されている。UI画像703Bにはユーザ名「AAAAA」が含まれており、UI画像704Bには、図12(B)の例において入力された「マガジン送るね!」とのコメントが含まれている。
また、図12(C)の例は、ユーザ「AAAAA」がさらに、UI画像701へのタップ操作を入力し、UI画像711をタッチスクリーン15に表示させ、UI画像711Aへのタップ操作を入力した後の視界画像611である。つまり、ユーザ「AAAAA」のユーザ端末100から、他のユーザ端末100およびHMDセット1000に、マガジンを示すアイテム投入情報が送信された結果、ユーザ端末100およびHMDセット1000は、演出オブジェクト674(後述)を仮想空間600に配置している。一例として、ユーザ端末100およびHMDセット1000は、アイテム投入情報にて示された経過時間が経過した後に、演出オブジェクト674に関する演出を実行し、アイテムオブジェクトの効果を発動させる処理を実行する。
図12(D)の例では、アイテムオブジェクトの効果を発動させる処理の実行により、マガジンの数が0から1に増加している。この結果、プレイヤは、ユーザ「AAAAA」に対して、「ありがとう!」と発話し、該発話の音声データが、各ユーザ端末100に送信される。これにより、各ユーザ端末100は、アバターオブジェクト610の発話692として、「ありがとう!」という音声を出力する。
以上のように、本ゲームにおいては、プレイヤの発話に基づくアバターオブジェクト610の発話音声の出力と、各ユーザによるコメントの入力とにより、ユーザとアバターオブジェクト610とのコミュニケーションが実現される。
(ゲームプレイ端末300におけるゲーム進行処理)
図13は、ゲームプレイ端末300で実行されるゲーム進行処理の流れの一例を示すフローチャートである。
ステップS31において、プロセッサ30は、ゲーム進行部315として、ゲームプログラム331とプレイヤの動きとに基づいてゲームを進行させる。ステップS32において、プロセッサ30は、ゲーム進行情報を生成し、ユーザ端末100へ配信する。具体的には、プロセッサ30は、生成したゲーム進行情報を、サーバ200を介して、各ユーザ端末100へ送信する。
ステップS33において、プロセッサ30は、アイテム投入情報を受信すると(S33でYES)、ステップS34において、アイテム投入情報に基づいて、アイテムオブジェクトを仮想空間600Aに配置する。一例として、プロセッサ30は、アイテムオブジェクトの配置の前に、演出オブジェクト674を仮想空間600Aに配置する(図11(C)参照)。演出オブジェクト674は、例えば、プレゼント箱を模したオブジェクトであってもよい。プロセッサ30は、一例として、アイテム投入情報にて示された経過時間が経過した後に、演出オブジェクト674に関する演出を実行してもよい。該演出は、例えば、プレゼント箱の蓋が開くアニメーションであってもよい。プロセッサ30は、該アニメーションの実行の後、アイテムオブジェクトの効果を発動させる処理を実行する。例えば、図11(D)の例では、障害物オブジェクト673を配置する。
プロセッサ30は、アニメーションの実行の後、タップ操作されたUI画像に対応するアイテムオブジェクトを仮想空間600Aに配置してもよい。例えば、UI画像711Aに対してタップ操作が行われた場合、プロセッサ30は、アニメーションの実行の後、マガジンを示すマガジンオブジェクトを仮想空間600Aに配置する。また、UI画像711Bに対してタップ操作が行われた場合、プロセッサ30は、アニメーションの実行の後、救急箱を示す救急箱オブジェクトを仮想空間600Aに配置する。プロセッサ30は、例えば、マガジンオブジェクトまたは救急箱オブジェクトの位置に、アバターオブジェクト610が移動した場合に、マガジンオブジェクトまたは救急箱オブジェクトの効果を発動させる処理を実行してもよい。
プロセッサ30は、ゲームが終了するまで、ステップS31~S34の処理を継続し、繰り返す。ゲームが終了した場合、例えば、プレイヤがゲームを終了するための所定の入力操作を入力した場合(ステップS35でYES)、図13に示す処理は終了する。
(ユーザ端末100におけるゲーム進行処理)
図14は、ユーザ端末100で実行されるゲーム進行処理の流れの一例を示すフローチャートである。
ステップS41において、プロセッサ10は、ゲーム進行情報を受信する。ステップS42において、プロセッサ10は、ゲーム進行部115として、ゲーム進行情報に基づいてゲームを進行させる。
ステップS43において、プロセッサ10が、ユーザ3によるアイテム投入操作を受け付けると(ステップS43にてYES)、ステップS44において、プロセッサ10は、仮想通貨を消費し、演出オブジェクト674を仮想空間600Bに配置する。ここで、仮想通貨は、ゲームへの参加の前、あるいは、ゲームへの参加中に、ユーザ3がプロセッサ10に対し所定の操作を行うことにより購入(本ゲームに対して課金)されるものであってもよいし、所定の条件を満たした場合にユーザ3に付与されるものであってもよい。所定の条件とは、本ゲームにおけるクエストのクリア等、本ゲームへの参加が必要なものであってもよいし、アンケートに答える等、本ゲームへの参加が不要なものであってもよい。仮想通貨の金額(仮想通貨の所有量)は、一例として、ゲーム情報132としてユーザ端末100に記憶される。
ステップS45において、プロセッサ10は、アイテム投入情報をサーバ200へ送信する。アイテム投入情報は、サーバ200を介してゲームプレイ端末300へ送信される。
プロセッサ10は、演出オブジェクト674の配置後、所定時間が経過すると、アイテムオブジェクトを仮想空間600Aに配置する。図11の例では、障害物オブジェクト673を配置する。つまり、ユーザ3が、UI画像711Cへのタップ操作を入力することにより、所定量の仮想通貨が消費され、障害物オブジェクト673が配置される。
プロセッサ10は、ゲームが終了するまで、ステップS41~S45の処理を継続し、繰り返す。ゲームが終了した場合、例えば、プレイヤがゲームを終了するための所定の入力操作を行った場合や、ユーザ3が、ゲームから途中退席するための所定の入力操作を行った場合(ステップS46でYES)、図14に示す処理は終了する。
(サーバ200におけるゲーム進行処理)
図15は、サーバ200で実行されるゲーム進行処理の流れの一例を示すフローチャートである。
ステップS51において、プロセッサ20は、ゲーム進行情報をゲームプレイ端末300から受信する。ステップS52において、プロセッサ20は、ログ生成部212として、ゲーム進行のログ(以下、プレイログ)を更新する。なお、プレイログは、一例として、ゲームプレイ端末300から初期配置情報を受信したとき、プロセッサ20が生成する。
ステップS53において、プロセッサ20は、受信したゲーム進行情報を、各ユーザ端末100へ送信する。
ステップS54において、アイテム投入情報をいずれかのユーザ端末100から受信した場合(ステップS54にてYES)、ステップS55において、プロセッサ20は、ログ生成部212としてプレイログを更新する。ステップS56において、プロセッサ20は、受信したアイテム投入情報をゲームプレイ端末300へ送信する。
プロセッサ20は、ゲームが終了するまで、ステップS51~S56の処理を継続し、繰り返す。ゲームが終了した場合、例えば、ゲームプレイ端末300から、ゲームが終了したことを示す情報を受信した場合(ステップS57でYES)、ステップS58において、プロセッサ20は、リスト生成部213として、プレイログからゲームに参加したユーザのリスト(ユーザリスト234)を生成する。プロセッサ20は、生成したユーザリスト234を、サーバ200に記憶する。
図16は、ユーザリスト234の一具体例を示す図である。「ユーザ」のカラムには、ゲームに参加した各ユーザを示す情報(例えば、ユーザ名)が格納されている。「タグ」のカラムには、各ユーザがプレイヤに対して行った支援に基づいて生成された情報(タグ)が格納されている。図16の例において、「タグ」のカラムに格納されたタグのうち、鍵括弧を有さないものは、プロセッサ20が自動生成した情報であり、鍵括弧を有するものは、ゲームの運営者が手動で入力した情報である。
図16の例において、ユーザ「AAAAA」には、マガジン、10F、ボス、「マガジンのプレゼントによりボスに勝利」という情報が対応付けられている。これは、例えば、10Fというステージでのボス戦において、ユーザ「AAAAA」がマガジンを投入し、その投入されたマガジンの銃弾でアバターオブジェクト610がボスに勝利したことを示している。
また、ユーザ「BBBBB」には、救急箱、3F、ザコ、「ゲームオーバー寸前で回復」という情報が対応付けられている、これは、例えば、3Fというステージのザコ敵との戦闘において、ユーザ「BBBBB」が救急箱を投入し、その結果、アバターオブジェクト610の体力が0になる(ゲームオーバーになる)寸前で体力が回復したことを示している。
また、ユーザ「CCCCC」には、バリケード、5F、ザコ、「バリケードでゾンビを二人足止め」という情報が対応付けられている。これは、例えば、5Fというステージのザコ敵との戦闘において、ユーザ「CCCCC」がバリケード(図11における障害物オブジェクト672)を投入し、その結果、二人のザコ敵の足止めに成功したことを示している。
図16の例では、各ユーザ3のユーザ名に対し、行った支援が1つ対応付けられているが、支援を複数回行なったユーザ3のユーザ名には、複数回の支援それぞれのタグが対応付けられる。ユーザリスト234において、該それぞれのタグは区別されていることが好ましい。これにより、ゲーム終了後に、配信端末400を用いてユーザリスト421を参照するプレイヤが、各支援の内容を正確に把握できる。
<移動ゲームの概要>
本実施形態に係るシステム1は、上述のゲーム以外に、移動ゲーム(例えば、MAPゲームともいう)を提供可能である。ユーザ端末100は、メニュー画面で移動ゲーム開始アイコンをタップ操作することによりイベント選択画面に移行し、いずれかのイベントが選択されると当該イベントに応じた移動ゲームを開始する。移動ゲームを開始すると、ユーザ端末100は、移動ゲームの対象となる地域の地図画像情報(例えば、キャラクタオブジェクト301の初期位置を中心とした半径100kmの領域)をサーバ200などから取得する。地図画像情報には、地図画像を表示するための情報に加えて、地図上の各地点における高度(高低差)を特定するための高度情報が含まれる。ユーザ端末100は、取得した地図画像情報に基づいて、高低差を有する地形が反映されている3D地図画像をメモリ11等の所定領域において描画し、当該3D地図画像のうちの一部の領域をタッチスクリーン15に表示する。
また、ユーザ端末100は、タッチスクリーン15の表示領域のうちの所定位置(例えば、略中央位置)において、3D地図画像に重畳させてキャラクタオブジェクト301を表示する。さらに、当該地図画像上の各所には、敵キャラクタや、木、岩、建物などを模したオブジェクトなどを含む複数種類のオブジェクトが配置される。ユーザ端末100は、タッチスクリーン15に対するユーザからの入力操作に応じてキャラクタオブジェクト301が3D地図画像の地形に沿って移動するように表示する。より具体的に、ユーザ端末100は、メモリ11等に予め描画されている3D地図画像のうち、タッチスクリーン15に表示する領域をユーザからの入力操作に応じた態様で変位(例えば入力操作により特定される方向に移動更新)させることにより、所定位置に表示されているキャラクタオブジェクト301が当該3D地図画像の地形に沿って移動するように表示する。このため、よりリアルな空間を移動させているといった感覚をユーザに抱かせることができる。
また、移動ゲームでは、開始時に選択されたイベントに応じて、ミッション(例えば、到達すべき目的地、獲得すべきアイテム等)が設定され、当該ミッションを達成することにより当該イベントや移動経路等に応じた特典がユーザに対して付与される。一方で、本実施形態における移動ゲームでは、キャラクタオブジェクト301が配置されている位置と移動方向の位置との高低差(例えば、上り坂、下り坂、斜面・傾斜の角度等)に応じて、当該キャラクタオブジェクト301の移動速度が算出・特定される。すなわち、キャラクタオブジェクト301の移動速度は、当該キャラクタオブジェクト301の移動に伴う高低差に応じて変化する。
さらに、本実施形態における移動ゲームでは、タッチスクリーン15に表示されている地点であっても、高度が所定値(例えば、1000m等)以上の地点への移動が規制される。このため、いずれのルートを通るかによって、ミッションの達成し易さやミッションを達成するまでに要する時間などが変動する。その結果、ユーザが移動経路を検討するに際して、直線距離に加えて、当該3D地図画像の地形の高低差をも考慮して適宜選択できるといった面白みを提供することができ、多様なゲーム性を実現することができる。以下、移動ゲームについて図17~図19を参照して具体的に説明する。
図17は、タッチスクリーン15の表示領域に表示される移動ゲーム中における表示画面(ゲーム画面)の一例を示す図である。図17(a)は、キャラクタオブジェクト301を移動させずに停止させている停止状態におけるゲーム画面の一例を示す図である。移動ゲーム中におけるゲーム画面としては、図17(a)に示されるように、地形の起伏を把握可能な3D地図画像が表示される。図17(a)では、稜線などにより地形の起伏・高低が表現されている。また、図17(a)に示されるように、当該3D地図画像に重畳させて、キャラクタオブジェクト301、操作体302、方角画像303、境界画像304、メニューアイコン305、マップアイコン306、戻るアイコン307、速度情報308、高度情報309、現在地域情報310、イベント情報311、スタミナゲージ312、障害物オブジェクト313などが表示される。移動ゲーム中においては、当該3D地図画像とキャラクタオブジェクト301とを所定の斜視方向から見た画像がタッチスクリーン15に表示される。
キャラクタオブジェクト301は、ユーザからの入力操作に応じて3D地図画像上を自由(高度が所定値以上の地点など特定の地点を除く)に移動可能となるキャラクタである。図17では、キャラクタオブジェクト301の一例として、人型のキャラクタオブジェクトを例示しているが、これに限るものではない。移動させるキャラクタオブジェクトとしては、複数種類設けられており、ユーザは、ユーザが所有しているキャラクタオブジェクトの中から移動ゲームに用いるキャラクタオブジェクトを選択できる。利用可能なキャラクタオブジェクトは、ゲームの特典として付与されたり、課金により購入したりすることによって増やすことができる。
操作体302は、ユーザからの入力操作のうちキャラクタオブジェクト301を移動させる方向を特定するための入力操作を受け付ける円形の操作部である。方角画像303は、操作体302よりも一回り大きい円形の画像であって、当該地図画像における方角(Nの方向が北)を示しており、キャラクタオブジェクト301が移動する方向に応じて回転する。図17(a)では、左斜め上方向(時計に例えると11時の短針方向)にNが示されており、当該方向が北方向であることが示されている。入力操作されていないときにおける操作体302は、方角画像303により囲まれた範囲の中心位置(基準位置)に表示される。操作体302に対するドラッグ操作がユーザによって行われると、ユーザ端末100は、当該ドラッグ操作により指定された方向に当該操作体302を移動させる。より具体的には、ユーザ端末100は、操作体302の位置以外の位置に対するタッチ操作により開始されたドラッグ操作によっては操作体302を移動させず、操作体302の位置に対するタッチ操作により開始されたドラッグ操作に応じて操作体302を移動させる。また、操作体302は、方角画像303の範囲内が移動範囲となる。操作体302は、当該操作体302の中心位置から所定の半径を有し、当該中心位置が方角画像303の範囲内で移動可能とされる円形状のオブジェクトである。この結果、ドラッグ操作により当該中心位置が方角画像303の外縁付近まで移動すると、当該操作体302は、方角画像303から若干外側にはみ出して表示される。
境界画像304は、キャラクタオブジェクト301の位置(例えば、キャラクタオブジェクト301が3D地形画像と接地している接地点)を中心とする所定範囲(例えば半径10mに相当する球体の範囲、あるいは、キャラクタオブジェクト301を真上から見て半径10mに相当する円の範囲など)の境界を示す円状の画像である。境界画像304の形状は、キャラクタオブジェクト301を移動させることにより、境界と交差する地形の高低差に応じて変化する。例えば、地形が高い部分あるいは低い部分については平地部分と表示上においてキャラクタオブジェクト301との距離が異なるため、境界画像304は、地形の高低差に応じて様々な形状となり得る。境界画像304は、キャラクタオブジェクト310が所定のアクションを行うことが可能な範囲を示しており、例えば、所定範囲内の敵キャラクタに対して戦闘を行うことや、所定範囲内に配置されているアイテムを取得することなどが可能となる。
メニューアイコン305は、メニュー画面に移行するためのアイコンである。メニュー画面には、移動ゲーム開始アイコンや、前述したライブ配信の視聴、ライブゲームなどを開始するためのアイコンが表示される。マップアイコン306は、タッチスクリーン15に、イベントの対象となる3D地図画像、すなわち全体地図を表示するためのアイコンである。戻るアイコン307は、現在の画面から一つ前の画面に移行する(戻る)アイコンである。速度情報308は、キャラクタオブジェクト301の現在の移動速度を示す情報である。高度情報309は、キャラクタオブジェクト301の現在位置している地点の高度を示す情報である。現在地位置情報310は、キャラクタオブジェクト301の現在位置が属する地域(例えば、都道府県、市町村等)を示す情報である。イベント情報311は、ユーザからの入力操作により選択されているイベントのミッション達成内容などを示す情報である。
スタミナゲージ312は、キャラクタオブジェクト301のスタミナを表示するゲージである。スタミナゲージ312は、例えば10に区分けされたブロックで表示される。キャラクタオブジェクト301は、当該スタミナゲージ312が特定値(例えば、ブロックが1)以上であるときに、ユーザからの入力操作に応じて移動可能となる。スタミナゲージ312は、キャラクタオブジェクト301を移動させた距離や、移動に伴う高低差などに応じてブロックを消費する。例えば、平地を移動する場合よりも、上り坂を移動する場合の方がブロックの消費が早くなり、逆に、下り坂を移動する場合の方がブロックの消費が遅くなる。障害物オブジェクト313は、当該地図画像に配置されているオブジェクトである。図17(a)では、障害物オブジェクト313として、木を模したオブジェクトが示されている。障害物オブジェクト313は、その他に例えば、岩、建物などを模したオブジェクトが含まれる。また、障害物オブジェクト313は、キャラクタオブジェクト301の移動を妨げるオブジェクトや、キャラクタオブジェクト301を体当たりさせることでアイテムを放出(ユーザに付与)するオブジェクトなどが含まれる。
図17(b)は、図17(a)のキャラクタオブジェクト301の向きを変えたときの一例を示す図である。当該移動ゲームでは、操作体302以外のタッチスクリーン15の画面上(例えば、キャラクタオブジェクト301の周辺)をスワイプ操作することにより、キャラクタオブジェクト301が向く方向を変えることができる。具体的には、操作体302の位置以外の位置に対するタッチ操作により開始されたドラッグ操作の操作方向にキャラクタオブジェクト301の向きを変化させる。なお、タッチスクリーン15に対する操作体302以外のその他の操作として、タッチスクリーン15上で、ピンチイン操作により所定位置(キャラクタオブジェクト)を中心として縮小表示を行うことができ、ピンチアウト操作により所定位置(キャラクタオブジェクト)を中心として拡大表示を行うことができる。拡大表示・縮小表示の対象は、地図画像、キャラクタオブジェクト310、および境界画像304であり、その他の操作体302やアイコン類や情報表示類については拡大表示・縮小表示の対象とはならない。
図17(c)は、キャラクタオブジェクト301の移動が開始されたときの一例を示す図である。図17(c)に示すように、キャラクタオブジェクト301は、ユーザからの操作体302に対する入力操作を受け付けることにより移動する。ユーザは、操作体302の円の内側の範囲にタッチ操作し、操作体302をドラッグ操作することにより、キャラクタオブジェクト301を移動させることができる。操作体302に対するタッチ操作により開始されたドラッグ操作が行われると、ユーザ端末100は、方角画像303の中心位置を始点とし、現在のタッチ位置を終点とするベクトルを特定する。現在のタッチ位置が方角画像303の範囲内であれば、ユーザ端末100は、現在のタッチ位置に操作体302の中心位置を合わせ、現在のタッチ位置が方角画像303の範囲外であれば、ユーザ端末100は、当該ベクトルと方角画像303の外枠との交点に操作体302の中心位置を合わせる。ドラッグ操作のためのタッチ位置を方角画像303の外枠の外側で当該方角画像303の外枠の周方向に移動させると、当該タッチ位置と操作体302の中心位置との交点ひいては操作体302もまた周方向に移動する。ユーザ端末100は、操作体302の中心位置と操作体302の現在位置とに応じた方向にキャラクタオブジェクト301を移動させる。また、境界画像304は、境界と交差する地形の高低差に応じて当該境界画像304の形状を変化させる。図17(c)~図17(f)に示されるように、キャラクタオブジェクト301の移動に伴って、境界と交差する地形が変化するため、境界画像304の形状も地形に応じた形状に変化する。
キャラクタオブジェクト301の移動速度は、地形の高低差によって変化する。平地の移動速度は、ゲーム内容やゲームの種類、キャラクタオブジェクト301の種類、ゲームオブジェクトに関連付けられるゲームオブジェクト(装備品、武具、アクセサリー、消費アイテムなど)などによって異なるように定められており、後述するように平地の移動速度を基準として地形に応じた移動速度が都度算出される。なお、図17に示すキャラクタオブジェクト301の平地の移動速度は、例えば、時速263kmに定められているものとする。
図17(d)は、キャラクタオブジェクト301が上り坂の地形を移動しているときの一例を示す図である。キャラクタオブジェクト301が、上り坂を移動する場合、その移動速度は平地を移動するときと比べ遅くなる。図17(d)では、上り坂を移動するキャラクタオブジェクタ301の移動速度が、時速65kmと表示されている。上り坂の移動速度は、予め定められている「平地の移動速度」と「上り坂の斜面の角度」とに応じて、斜面の角度が大きい(急な)程、遅くなるように算出される。上り坂を移動する際には、キャラクタオブジェクト301の現在の移動速度から、予め定められている「平地の移動速度」と「上り坂の斜面の角度」とに応じて算出される移動速度まで、時間の経過とともに徐々に減速させる。これにより、惰性で上るようなことができ、例えば、勢いを付けて上り坂を上るといったような移動表示を行うことができる。
図17(e)は、キャラクタオブジェクト301が下り坂の地形を移動しているときの一例を示す図である。キャラクタオブジェクト301が、下り坂を移動する場合、その移動速度は平地を移動するときと比べ速くなる。図17(e)では、下り坂を移動するキャラクタオブジェクト301の移動速度が、時速385kmと表示されている。下り坂の移動速度は、予め定められている「平地の移動速度」と「下り坂の斜面の角度」とに応じて、斜面の角度が大きい(急な)程、速くなるように算出される。下り坂を移動する際には、キャラクタオブジェクト301の現在の移動速度から、予め定められている「平地の移動速度」と「下り坂の斜面の角度」とに応じて算出される移動速度まで、時間の経過とともに徐々に加速させる。これにより、下るにつれて徐々に速度が速くなるといったような移動表示を行うことができる。
図17(f)は、キャラクタオブジェクト301が平地を移動しているときの一例を示す図である。図17(f)では、平地を移動するキャラクタオブジェクタ301の移動速度が、時速263kmと表示されている。本移動ゲームでは、高低差を有する地形を移動するため、キャラクタオブジェクト301が位置する高度は、移動とともに変化する。図17では、(c)で移動を開始し、(d)で上り坂を上る様子が示され、その後、(e)で下り坂を下る様子が示され、(f)で平地に戻ってきた例を示している。このため、キャラクタオブジェクト301の高度は、図17(c)で78mと表示され、図17(d)で174mと表示され、図17(e)で119mと表示され、図17(f)で54mと表示されている。
移動中におけるキャラクタオブジェクト301の姿勢は、原則として、3D地図画像上における鉛直方向に沿って直立した姿勢となる。このため、平地を移動しているときよりも、上り坂を移動しているときには、当該上り坂の斜面に対して前傾する姿勢となり、逆に、下り坂を移動しているときには、当該下り坂の斜面に対して後傾する姿勢となる。また、キャラクタオブジェクト301の姿勢は、進行方向の高低差に応じて前傾あるいは後傾の角度が時折変化することにより、バランスを崩しているような姿勢となる。さらに、キャラクタオブジェクト301の姿勢は、進行方向と交差する左右方向の高低差によっても変化し、例えば、左から右に向けて上っている斜面を横断中のときには、時折左側によろけるような姿勢となり、逆に、右から左に向けて上っている斜面を横断中のときには、時折右側によろけるような姿勢となる。その結果、移動中におけるキャラクタオブジェクト301の姿勢により、リアル感を向上させることができる。
スタミナゲージ312は、移動距離と地形に応じて消費量が変化する。スタミナゲージ312は、例えば、移動距離が所定距離(例えば、10km)に到達することによりブロックを1つ消費するようなペースで減少する。また、上り坂を移動するときは、平地を移動するときに比べて消費量が多くなる。上り坂を移動するときは、例えば、移動距離が所定距離よりも短い距離(例えば5km)に到達することによりブロックを1つ消費するようなペースで減少する。また、上り坂を移動するときは、上り坂の傾斜が大きい程、消費量が多くなる(消費ペースが速くなる)。例えば、傾斜が5度~10度のときには、移動距離が5kmに到達することによりブロックを1つ消費するようなペースで減少する一方、傾斜が11度~15度のときには、移動距離が3kmに到達することによりブロックを1つ消費するようなペースで減少する。
逆に下り坂を移動するときは、平地を移動するときに比べて消費量が少なくなる。下り坂を移動するときは、例えば、移動距離が所定距離よりも長い距離(例えば15km)に到達することによりブロックを1つ消費するようなペースで減少する。また、下り坂を移動するときは、下り坂の傾斜が大きい程、消費量が少なくなる(消費ペースが遅くなる)。例えば、傾斜が5度~10度のときには、移動距離が15kmに到達することによりブロックを1つ消費するようなペースで減少する一方、傾斜が11度~15度のときには、移動距離が20kmに到達することによりブロックを1つ消費するようなペースで減少する。
なお、前述したように、表示領域には、3D地図画像とキャラクタオブジェクト301とを所定の斜視方向から見た画像が表示される。このため、例えば、キャラクタオブジェクト301が配置されている地点よりもタッチスクリーン15の表示領域の下方領域(手前)に表示されている地形の高度の方が高い場合には、当該手前に表示されている地形の高さによっては当該地形によりキャラクタオブジェクト301が隠れてしまい、キャラクタオブジェクト301が非表示となる場合が生じ得る。このようにすることにより、視点を固定することにより分かり易くするとともに、地形によってはキャラクタオブジェクト301が非表示となる状況を生じさせることができるため、リアル感を増大させることができる。
図18は、移動中のキャラクタオブジェクト301の高度が所定値に到達したときにおける表示例の一例を示す図である。なお、図18では、ピンチアウト操作により図17のときよりも地図画像やキャラクタオブジェクト301、境界画像304が拡大表示されている例を示している。本実施形態における移動ゲームでは、キャラクタオブジェクト301の移動できる高度を、所定値までに制限(規制)している。所定値は、例えば、高度1000mなどであり、キャラクタオブジェクト301は、高度1000mを超えて移動することはできない。図18(a)は、移動中のキャラクタオブジェクト301の高度が所定値に間もなく到達しようとしているときの表示例を示す図である。図18(a)では、キャラクタオブジェクト301は、高度990m付近の上り坂を時速30kmで上るように移動している様子が示されている。
図18(b)は、高度が1000mに到達したときの表示例を示す図である。キャラクタオブジェクト301が高度1000mに到達すると、腕を振り回してバランスを崩すアクションを行った後、下方へ滑り落ちるアクションを行う滑落演出が開始される。図18(b)では、腕を振り回してバランスを崩すアクションの一場面が示され、図18(c)では、滑り落ちるアクションの一場面が示されている。滑落演出は、高度1000mに達してすぐに行われるものであってもよいし、高度1000mを超えたとき(例えば1001m)に行われるものであってもよく、高度1000mに達してから所定時間経過(例えば1秒)後に行われるものであってもよい。なお、滑落演出が開始されると、ユーザからの操作体302への入力操作の有無・態様にかかわらず、操作体302は、基準位置に戻る(図18(b)参照)。また、滑落演出中に操作体302へのドラッグ操作を行っても、操作体302は移動せず、基準位置において固定表示される。これにより、操作体302が基準位置から移動しているにもかかわらず、キャラクタオブジェクト301をユーザの思い通りに操作できない不具合が生じているといった勘違いを生じさせ難くすることができる。
図18(d)は、キャラクタオブジェクト301が、滑落演出によって高度968mまで滑落した後、再び立ち上がったときの表示例を示す図である。これにより、操作体302への入力操作が有効に受け付け可能となり、操作に応じた移動を再開可能となる。図18(b)~(d)で示すように所定値の高度と現在高度との差や樹木を模した障害物オブジェクト313の表示位置の変化からキャラクタオブジェクト301が一定距離に亘って滑落したことが示されている。なお、滑落演出におけるアクション内容は、移動させているキャラクタオブジェクトの種類にかかわらず一定でもよいし、移動させているキャラクタオブジェクトの種類によって異なるようにしてもよい。また、滑落演出により滑り落ちる距離は、キャラクタオブジェクトの種類にかかわらず一定でもよいし、キャラクタオブジェクトの種類によって異なるようにしてもよく、また、地形の高低差や傾斜の角度(大きさ)によって異なるようにしてもよい。例えば、急な斜面での滑落距離は、緩やかな斜面での滑落距離よりも大きく(長く)なるようにしてもよい。
また、キャラクタオブジェクトの移動が規制される高度は、特定条件が成立しているか否かに応じて異なるようにしてもよく、例えば、特定条件が成立していないときには所定値として1000mが定められ、特定条件が成立しているときには所定値として2000mが定められるものであってもよい。特定条件は、例えば、キャラクタオブジェクト301に所定のオブジェクトが関連付け(装備)られることにより成立してもよい。例えば、キャラクタオブジェクト301に特定種類のゲームオブジェクト(アイテム、武具など:例えば、登山靴など)が関連付けられている(アイテムの使用、または武具の装備など)ときに特定条件が成立する。また、特定条件は、移動させているキャラクタオブジェクト301が特定種類のキャラクタオブジェクトであることにより成立する。例えば、山登りが得意な属性を有するキャラクタオブジェクトであれば、特定のアイテムを装備していなくても1000mを超えて移動することができるようにしてもよい。特定条件が成立しているか否かに応じて所定値として定められる値は、1000mや2000mに限るものではない。また、特定条件が成立しているときに所定値として定められる値は、特定種類のゲームオブジェクトのうちのいずれのゲームオブジェクトであるかによって異なるようにしてもよく、また、特定種類のキャラクタオブジェクトのうちのいずれのキャラクタオブジェクトであるかによって異なるようにしてもよい。なお、特定種類のゲームオブジェクトや、特定種類のキャラクタオブジェクトは、図12で示したゲームや移動ゲームなどのゲーム報酬として付与されるものであってもよく、課金により購入することにより獲得するものであってもよい。
本移動ゲームでは、上述のように移動する地形・高低差に応じてキャラクタオブジェクト301の移動速度や姿勢を変化させる。これにより、キャラクタオブジェクト301の位置に対応する地形に合致したキャラクタオブジェクトの移動態様に変化させることができ、ユーザにリアルな感覚を抱かせることができ、ゲームの興趣性を向上させることができる。また、移動する地形・高低差に応じて移動速度やスタミナの消費量が変化し、さらにキャラクタオブジェクト301が移動できない領域(高度の所定値)が設けられていることにより、ミッション達成のために、最短距離で行くルート(直線ルート)の他に、どのようなルートを採るべきかといったように、キャラクタの移動経路を検討するといった面白さを向上させすることができ、その結果、同じ地図画像上を移動させるものであっても、ユーザ毎に多様なゲーム性を実現することができる。
(移動ゲーム処理)
図19は、ユーザ端末100で実行される移動ゲーム処理の一例を示すフローチャートである。移動ゲーム処理は、移動ゲーム中においてユーザ端末100により実行されるが、これに限らず、一部の処理はサーバ200において実行し、処理結果をユーザ端末100に送信するようにしてもよい。
ステップS01においては、地形が反映された3Dの地図画像情報を取得する。取得した地図画像情報に基づいて3D地図画像を描画し、選択したイベントのスタート位置に応じた領域の地図画像をタッチスクリーン15に表示するとともに、当該地図画像上にキャラクタオブジェクト301を重畳させてタッチスクリーン15に表示する。
ステップS02においては、操作体302へのユーザからの入力操作を受け付けたか否かを判定する。入力操作を受け付けたと判定されなかったときは、ステップS04に進み、スタミナゲージ回復処理を実行する。これにより、消費したスタミナを時間の経過に応じて回復(増加)させることができる。また、他のアイコンへの操作時には、対応する処理を行う。
入力操作を受け付けたと判定されたときは、ステップS03において、スタミナゲージ312が特定値(例えば、1ブロック)以上か否かを判定する。スタミナゲージ312が特定値未満と判定されたとき(すなわちゼロのとき)は、ステップS06に進み、休憩アクションを実行する。休憩アクションは、例えば、その場で、仮眠をとって休憩しているかのようなアクションを実行する。なお、スタミナゲージ312が特定値未満であるときには、常に休憩アクションを行うものであってもよい。
スタミナゲージ312が特定値以上と判定されたときは、ステップS05において、ユーザからの入力操作に基づいて、操作体302の移動方向を特定する。次に、ステップS07に進み、地図画像情報に含まれる高度情報に基づいて、現在の地点と、ステップS05で特定した移動方向の移動先の地点との高低差を特定する。ステップS08に進み、ステップS07により特定された高低差に基づいて、高低差があるか否かを判定する。高低差があると判定されたときは、ステップS09に進み、高低差などに基づいて移動速度を特定する。一方、高低差があると判定されなかったときは、高低差に基づいて移動速度が変動しないため、ステップS11に進む。
ステップS09においては、現在の移動速度と、ステップS07により特定された高低差とに応じて、移動速度を算出・特定して、現在の移動速度として設定する。例えば、図17(d)で示すように、上り坂を移動するときは、現在の移動速度から、予め定められている「平地の移動速度」と「上り坂の斜面の角度」とに応じて算出される移動速度まで、時間の経過とともに徐々に減速させる。また、図17(e)で示すように、下り坂を移動するときは、現在の移動速度から、予め定められている「平地の移動速度」と「下り坂の斜面の角度」とに応じて算出される移動速度まで、時間の経過とともに徐々に加速させる。これにより、傾斜(斜面の角度)に応じて算出される移動速度に収束するが、傾斜面の角度と、現在の移動速度によって、収束するまでに要する時間が異なる。また、下り坂を下ってそのまま上り坂に突入する場合、下り坂で得た速度を利用して惰性で上り坂の序盤を移動させることができ、徐々に移動速度が減速するような、現実空間と合致する演出を行うことができる。なお、移動速度は、高低差を考慮して算出・特定するものであれば、これに限るものではなく、例えば、高低差のみに基づいて算出・特定するものであってもよく、また、高低差に加えて他の要素を加味して算出・特定するものであってもよい。
次に、ステップS10に進み、ステップS09で設定された現在の移動速度と、ステップS07により特定された高低差とに応じて、移動中のキャラクタオブジェクト301の移動中アクションを特定する。移動中アクションとしては、キャラクタオブジェクト301の姿勢を例示する。キャラクタオブジェクト301の姿勢は、前述したように、基本的には、垂直方向に直立した姿勢となるが、ステップS10では、移動方向の高低差や、移動方向と交差する左右方向の高低差に応じて、バランスを崩しているような姿勢や、左右によろけるような姿勢に変化させるか否かを特定する。なお、キャラクタオブジェクトの姿勢が変化する頻度は、現在の移動速度や、高低差の度合いに応じて異なるものであってもよく、例えば、現在に移動速度が速い程、また、高低差が大きい程(つまり傾斜が大きい程)、多くなるものであってもよい。
ステップS11においては、ステップS09で設定された現在の移動速度で、タッチスクリーン15に表示する領域をユーザからの入力操作に応じた態様で変位(例えば入力操作により特定される方向に移動更新)させることにより、キャラクタオブジェクト301が当該3D地図画像の地形に沿って移動するように表示する。また、ステップS11においては、ステップS10で特定した移動中アクションを実行する。ステップS12においては、キャラクタオブジェクト301が移動することにより高度が所定値に到達するか否かを判定する。高度が所定値に到達すると判定されなかったときは、ステップS13に進む。高度が所定値に到達したと判定されたときは、ステップS14に進み、滑落演出を実行する。なお、所定値は、特定条件が成立しているか否かで値が異なり、特定条件が成立している場合の所定値は、高度2000mであり、特定条件が成立していない場合の所定値は、高度1000mである。
ステップS13においては、ミッションを達成したか否かが判定される。ミッションを達成したとは、例えば、ミッションが目的地に到達することにより達成する場合は当該目的地に到達したことであり、ミッションが特定アイテムの獲得により達成する場合は当該特定アイテムを獲得したことである。ミッションを達成したと判定されなかったときは、ステップS02までリターンする。ミッションを達成したと判定されたときには、ステップS15において、キャラクタオブジェクト301の移動距離と、当該移動に伴う高低差に応じてユーザにとって有利な特典が付与される。
移動に伴う高低差とは、例えば、ミッションが目的地に到達することにより達成する場合は、スタート地点と目的地との高低差でもよく、移動経路における最低高度と最高高度との高低差でもよく、移動中の高低差を累計したものでもよい。また、ミッションが特定アイテムの獲得により達成する場合は、移動経路における最低高度と最高高度との高低差でもよく、移動中の高低差を累計したものでもよい。また、キャラクタオブジェクト301の移動距離とは、例えば、ミッションが目的地に到達することにより達成する場合は、スタート地点と目的地地点との2点間の直線距離でもよく、キャラクタオブジェクト301を移動させた経路上の距離(累計した距離、移動経路)でもよく、また、ミッションが特定アイテムの獲得により達成する場合は、キャラクタオブジェクト301を移動させた経路上の距離(累計した距離)でもよい。
また、ユーザに付与される特典とは、ゲーム内で使用できる仮想通貨、イベントを開始するために必要なポイント、キャラクタオブジェクトを成長させるためのポイント、ゲームオブジェクト(武具、道具、アクセサリーなど、特定種類のゲームオブジェクトも含まれる)、新たなキャラクタオブジェクト(特定種類のキャラクタオブジェクトも含まれる)などが挙げられる。ステップS15においては、移動距離が長い程、高低差が大きい程、ユーザにとって有利度合いが高い特典が付与される。なお、ステップS15においては、ミッション達成により、移動距離と高低差とに応じて特典の有利度合いを決定して当該有利度合いの特典が付与されるが、これに限らず、移動距離と高低差とに応じて特典を付与するか否かが決定され、付与する決定がされた場合にはさらに移動距離と高低差とに応じて付与する特典を決定するものであってもよい。
<本実施形態の効果>
本実施形態によれば、ステップS01に示すように高低差を有する地形が反映されている地図画像のうちの一部の領域がユーザ端末100のタッチスクリーン15に表示されるとともに、キャラクタオブジェクト301が当該地図画像上に重畳させて表示される。ステップS02で示すように、ユーザからの操作体302に対する入力操作に応じた操作情報が特定され、特定された操作情報に基づいてキャラクタオブジェクト301が移動するように表示する。すなわち、ステップS11で説明したとおり、タッチスクリーン15に表示する領域を操作体302への入力操作(操作情報)に応じた方向に変位させることにより、キャラクタオブジェクト301が地図画像の地形に沿って移動するように表示可能となる。これにより、地形の起伏によってリアルな感覚をユーザに抱かせるとともに、移動経路の検討に際して、高低差を考慮するといった面白さを提供でき、その結果、多様なゲーム性を実現することができる。
また、本実施形態によれば、図17や図19のステップS09で示したとおり、操作体302への入力操作(操作情報)から特定される方向(移動方向)における地形の高低差に応じた移動速度で、キャラクタオブジェクト301が移動するように表示可能となる。これにより、高低差に応じて移動速度が変化するため、キャラクタオブジェクト301が地形に応じて移動しているようなリアル感を演出でき、ゲームの興趣を向上させることができる。
本実施形態によれば、図19のステップS09等で示したとおり、キャラクタオブジェクト301の現在の移動速度と、地図画像の地形の高低差とに応じて移動速度を算出・特定し、当該移動速度でキャラクタオブジェクト301が移動するように表示可能である。これによって、勢いをつけて上り坂を上るといった現実空間における惰性を表現することができ、キャラクタオブジェクト301の移動態様のリアル感が増す。
また、本実施形態によれば、図18や図19のステップS12に示すように、キャラクタオブジェクト301は、移動する高度が所定値に到達するときに、表示画面に表示されている地点であっても、当該方向への移動が規制されて高度が所定値以上となる地点まで移動することができない。これにより、移動中において高度が所定値以上となり移動が規制さていることを把握した時点で、移動経路を再度検討し直すといったゲーム性を体感させることができ、ゲームの興趣を向上させることができる。
本実施形態によれば、図19のステップS12などで示すように、キャラクタオブジェクト301の移動が規制される所定値は、特定条件が成立していない状態であるときには1000mとなるのに対し、特定条件を成立している状態においては2000mとなる。その結果、特定条件を成立させることへの動機をユーザに与えることができる。
本実施形態によれば、特定条件は、キャラクタオブジェクト301に特定種類のゲームオブジェクトが関連付けられることにより成立する。例えば、キャラクタオブジェクト301に対して、登山靴を装備させることにより特定条件が成立する。また、特定条件は、ユーザが使用するキャラクタオブジェクトが、特定種類のキャラクタオブジェクトであるときに成立する。例えば、山登りが得意な属性を有するキャラクタオブジェクトを選択しているときに特定条件が成立する。これにより、特定種類のゲームオブジェクトや、特定種類のキャラクタオブジェクトを獲得することや、移動ゲームに利用することへの動機をユーザに与えることができる。
本実施形態によれば、図18や図19のステップS14に示すように、キャラクタオブジェクト301の高度が所定値に到達したときには、キャラクタオブジェクト301が腕を振り回した後に滑り落ちるといった滑落演出を実行して、高度が所定値よりも低い位置まで滑落する。これにより、単に移動を規制するものと比較して、ゲームの面白味を向上させることができる。
本実施形態によれば、キャラクタオブジェクト301は、スタミナゲージ312が特定値以上であることを条件として移動可能であり、スタミナゲージ312は、移動距離および地形の高低差に応じてその消費量が異なる。これにより、スタミナゲージ312の消費を考慮して移動経路を検討して移動する必要があり、ゲームの面白味を向上させることができる。
本実施形態によれば、図19のステップS15に示すように、キャラクタオブジェクト301の移動に伴う地形の高低差に応じてユーザにとって有利な特典を付与する。これにより、高低差がある経路を通ることに対する動機をユーザに付与できる。
本実施形態によれば、キャラクタオブジェクト301を移動させた経路上の距離(累計した距離、移動経路)に応じてユーザにとって有利な特典を付与する。これにより、移動経路の選択肢を増やし、ゲームの面白みを向上させることができる。
また、本実施形態によれば、キャラクタオブジェクト301の姿勢を、地形の高低差に応じて変化させる。このようにすることで、キャラクタオブジェクト301が高低差を有する地形を移動するリアル感が増す。
さらに、本実施形態によれば、地図画像とキャラクタオブジェクト301とを所定の斜視方向から見た画像をタッチスクリーン15に表示し、表示されるキャラクタオブジェクト301が、キャラクタオブジェクト301が表示される所定位置よりもタッチスクリーン15において下方に位置する地形の高度の方が、所定位置よりもタッチスクリーン15において上方に位置する地形の高度よりも高い場合に非表示となる場合が生じる。これにより、視点を固定することにより分かり易くするとともに、地形によってはキャラクタオブジェクト301が非表示となる状況を生じさせることができるため、リアル感を増大させることができる。
本実施形態によれば、境界画像304は、キャラクタオブジェクト301の位置を中心とする所定範囲を囲む円状の画像であり、キャラクタオブジェクト301の移動に伴い境界と交差する地形の高低差に応じて当該境界画像の形状を変化させる。これにより、高低差のある地形を移動しているというリアル感を高めることができる。
<その他の実施形態>
上記実施形態では、ユーザからのタッチパネル15への入力操作に応じて、3D地図画像上においてキャラクタオブジェクトを自由に移動可能となる移動ゲームを例示したが、これに限らず、ユーザ端末100を所有するユーザが現実空間を実際に移動することに応じて、当該ユーザ端末100の位置に連動してキャラクタオブジェクトを3D地図画像上において移動可能となるゲーム(以下、位置情報ゲームともいう)であってもよい。
本実施形態に係るシステム1は、上述の本ゲーム以外に、位置情報ゲームを提供可能である。ユーザ端末100では、メニュー画面で位置情報ゲーム開始アイコンをタップ操作することによりイベント選択画面に移行し、いずれかのイベントが選択されると当該イベントに応じた位置情報ゲームを開始する。位置情報ゲームでは、前述した移動ゲームと同様に、地図画像を表示するための情報に加えて、地図上の各地点における高度(高低差)を特定するための高度情報が含まれる地図画像情報に基づいて、高低差を有する地形が反映されている3D地図画像をタッチスクリーン15に表示する。
位置情報ゲームにおいては、メモリ11等の所定領域において描画された3D地図画像のうち、現実空間におけるユーザ端末100の位置に対応する3D地図画像上の位置がタッチスクリーン15の表示領域に表示される。具体的には、現実空間におけるユーザ端末100の位置に対応する3D地図画像上の位置が、タッチスクリーン15の表示領域のうちの所定位置(例えば、略中央位置)となるように、3D地図画像がタッチスクリーン15に表示される。
現実空間におけるユーザ端末100の位置は、例えば、当該ユーザ端末100のGPSモジュールなどからの情報を利用して特定される。ユーザ端末100を所有するユーザは、現実空間内において実際に移動することにより、当該ユーザ端末100においては、当該移動に連動させてキャラクタオブジェクト301が3D地図画像の地形に沿って移動するように表示する。より具体的に、ユーザ端末100は、メモリ11等に予め描画されている3D地図画像のうちタッチスクリーン15に表示する領域を、ユーザ端末100の位置情報に応じた態様で変位(例えばユーザ端末100の現在位置情報に応じて更新表示)させることにより、所定位置に表示されるキャラクタオブジェクト301が当該3D地図画像の地形に沿って移動するように表示する。これにより、3D地図画像上の、ユーザ端末100の位置情報に連動させてキャラクタオブジェクト301を移動させる点で前述した移動ゲームと異なるものの、図17で説明した表示画面と同様の表示画面が表示される、その結果、実際にユーザが移動している地形と同様の3D地図画像上をキャラクタオブジェクト301が移動している画面を表示できるため、よりリアルな空間を移動させているといった感覚をユーザに抱かせることができる。
また、位置情報ゲームにおいても、開始時に選択されるイベントに応じて、ミッション(例えば、到達すべき目的地、獲得すべきアイテム等)が設定され、当該ミッションを達成することにより当該イベントや移動経路・高低差等に応じてユーザに対して特典が付与される。その結果、ユーザが移動経路を検討するに際して、直線距離に加えて、高低差をも考慮して適宜選択できるといった面白みを提供することができ、多様なゲーム性を実現することができる。一方で、位置情報ゲームでは、キャラクタオブジェクト301が配置されている位置と移動方向の位置との高低差(例えば、上り坂、下り坂、斜面・傾斜の角度等)や、移動方向と交差する左右方向の高低差などに応じて、当該キャラクタオブジェクト301の姿勢を変化させる。これにより、リアル感を向上させることができる。以下、位置情報ゲームについて図20を参照して具体的に説明する。
(位置情報ゲーム処理)
図20は、ユーザ端末100で実行される位置情報ゲーム処理の一例を示すフローチャートである。位置情報ゲーム処理は、位置情報ゲーム中においてユーザ端末100により実行されるが、これに限らず、一部の処理はサーバ200において実行し、処理結果をユーザ端末100に送信するようにしてもよい。
ステップS21においては、地形が反映された3Dの地図画像情報をサーバ200から取得して3D地図画像を描画するとともに、ユーザ端末100のGPSモジュールなどを利用して、ユーザ端末100の現在位置情報(例えば、住所情報、緯度経度情報など)を特定し、タッチスクリーン15において当該現在位置に対応する位置(領域)の3D地図画像を表示するとともに当該位置(所定位置)にキャラクタオブジェクト301を重畳させて表示する。これにより、例えば図17(a)に示すキャラクタオブジェクト301が配置されている位置に対応する現実空間にユーザ端末100が存在する場合には、図17(a)に示す表示画面が表示されることになる。
ステップS22においては、ユーザ端末100の現在位置に応じてキャラクタオブジェクト301が移動しているように表示される。具体的には、ユーザ端末100の現在位置情報に基づいて当該現在位置に対応する3D地図画像上の位置が、タッチスクリーン15の所定位置となるように、タッチスクリーン15に表示する領域を現在位置情報に応じた態様で変位させることにより、キャラクタオブジェクト301が当該3D地図画像の地形に沿って移動するように表示する。これにより、例えばユーザ端末100の向きが変わればこれに連動して図17(b)に示す表示画面が表示され、ユーザ端末100を所有するユーザが上り坂を上ることに連動して図17(d)等に示す表示画面が表示され、ユーザ端末100を所有するユーザが下り坂を下ることに連動して図17(e)に示す表示画面が表示され、ユーザ端末100を所有するユーザが平地を移動することに連動して図17(f)に示す表示画面が表示される。なお、キャラクタオブジェクト301の移動速度は、ユーザ端末100の実際の移動速度となる。
ステップS23においては、ユーザ端末100の実際の移動速度が、徒歩の平均速度よりも速い閾値となる所定速度以上か否かを判定する。例えば、ユーザ端末100の現在位置情報から、ユーザの平均速度が徒歩の平均速度よりも速い閾値となる所定速度以上(例えば、時速5km)であるか否かを判定する。所定速度以上と判定されたときは、ステップS25に進み、ユーザに注意を喚起して、ステップS29へ移行する。注意を喚起する方法としては、タッチスクリーン15に注意内容(例えば「徒歩で移動してください!」といったメッセージ)を表示してもよいし、注意を喚起する音(「徒歩で移動してください!」といった音声含む)を出力してもよい。なお、移動速度が所定速度以上であると判定されたときには、ステップS29へ移行されてステップS24~S28等の処理が行われないため、所定速度以上であると判定されている間の移動および当該移動に伴う高低差は、徒歩での移動として加算されず、ユーザにとって有利な特典を付与する処理において考慮されない。
所定速度以上と判定されなかったときは、ステップS24において、ユーザ端末100の現在位置から当該ユーザ端末100の移動距離を累計する。次に、ステップS26に進み、地図画像情報に含まれる高度情報に基づいて、移動前後における地点の高度を特定して高低差があるか否かを判定する。高低差があると判定されなかったときは、ステップS29に進む。
高低差があると判定されたときは、ステップS27において、高低差に応じた移動中アクション実行をする。例えば、高低差に応じて、移動中のキャラクタオブジェクトの移動中アクション(例えばキャラクタオブジェクト301の姿勢)を特定する。キャラクタオブジェクトの姿勢は、前述したように、基本的には、垂直方向に直立した姿勢となるが、ステップS27では、移動方向の高低差や、移動方向と交差する左右方向の高低差に応じて、バランスを崩しているような姿勢や、左右によろけるような姿勢に変化させるか否かを特定する。なお、キャラクタオブジェクトの姿勢が変化する頻度は、現在の移動速度や、高低差の度合いに応じて異なるものであってもよく、例えば、現在に移動速度が速い程、また、高低差が大きい程(つまり傾斜が大きい程)、多くなるものであってもよい。
ステップS28においては、高低差を累計する。次にステップS29に進み、ミッションを達成したか否かが判定される。ミッションを達成したと判定されなかったときは、ステップS22までリターンする。ミッションを達成したと判定されたときには、ステップS30において、ミッション達成までの移動中においてステップS24にて累計された移動距離とステップS26にて累計された高低差とに応じてユーザにとって有利な特典が付与される。
なお、ステップS30においては、ミッション達成により、累計された移動距離と高低差とに応じて特典の有利度合いを決定して当該有利度合いの特典が付与されるが、これに限らず、累計された移動距離と高低差とに応じて特典を付与するか否かが決定され、付与する決定がされた場合にはさらに移動距離と高低差とに応じて付与する特典を決定するものであってもよい。また、ステップS30においては、累計された移動距離と高低差とに応じて特典が付与される例について説明したが、これに限るものではない。移動距離については、累計されたものに限らず、ミッションが目的地に到達することにより達成する場合は、スタート地点と目的地地点との2点間の直線距離であってもよい。また、高低差については、累計されたものに限らず、ミッションが目的地に到達することにより達成する場合は、スタート地点と目的地との高低差でもよく、移動経路における最低高度と最高高度との高低差でもよい。
<位置情報ゲームの実施形態の効果>
位置情報ゲームによれば、ステップS21に示すように高低差を有する地形が反映されている地図画像のうちの一部の領域であってユーザ端末100の現在位置に対応する領域がユーザ端末100のタッチスクリーン15に表示されるとともに、ユーザ端末100の現在位置に対応する位置にキャラクタオブジェクト301が重畳させて表示される。ステップS22で示すように、ユーザ端末100のGPSモジュールなどによりユーザ端末100の現在位置情報が特定され、特定された現在位置情報に基づいてキャラクタオブジェクト301が移動するように表示する。すなわち、ステップS22で説明したとおり、タッチスクリーン15に表示する領域をユーザ端末100の現在位置情報に応じて変位させることにより、キャラクタオブジェクト301が地図画像の地形に沿って移動するように表示可能となる。これにより、実際にユーザが移動している地形と同様の3D地図画像上をキャラクタオブジェクト301が移動している画面を表示できるため、よりリアルな空間を移動させているといった感覚をユーザに抱かせることができる。また、移動経路の検討に際して、高低差を考慮するといった面白さを提供でき、その結果、多様なゲーム性を実現することができる。
位置情報ゲームによれば、図20のステップS30に示すように、キャラクタオブジェクト301の移動に伴う地形の高低差に応じてユーザにとって有利な特典を付与する。これにより、実際に高低差がある経路を通ることに対する動機をユーザに付与できる。
位置情報ゲームによれば、キャラクタオブジェクト301を移動させた経路上の距離(累計した距離、移動経路)に応じてユーザにとって有利な特典を付与する。これにより、移動経路の選択肢を増やし、ゲームの面白みを向上させることができる。
また、位置情報ゲームによれば、キャラクタオブジェクト301の姿勢を、地形の高低差に応じて変化させる。このようにすることで、キャラクタオブジェクト301が高低差を有する地形を移動するリアル感が増す。
さらに、位置情報ゲームにおいても、地図画像とキャラクタオブジェクト301とを所定の斜視方向から見た画像をタッチスクリーン15に表示し、表示されるキャラクタオブジェクト301が、キャラクタオブジェクト301が表示される所定位置よりもタッチスクリーン15において下方に位置する地形の高度の方が、所定位置よりもタッチスクリーン15において上方に位置する地形の高度よりも高い場合に非表示となる場合が生じる。これにより、視点を固定することにより分かり易くするとともに、地形によってはキャラクタオブジェクト301が非表示となる状況を生じさせることができるため、リアル感を増大させることができる。また、境界画像304は、キャラクタオブジェクト301の位置を中心とする所定範囲を囲む円状の画像であり、キャラクタオブジェクト301の移動に伴い境界と交差する地形の高低差に応じて当該境界画像の形状を変化させる。これにより、高低差のある地形を移動しているというリアル感を高めることができる。
<変形例>
以上説明した実施形態の変形例などを以下に列挙する。
(1) 上記実施形態の移動ゲームにおいては、ステップS09で示したとおり、移動中の高低差などに応じてキャラクタオブジェクト310の移動速度を算出・特定する例について説明したが、移動速度を算出・特定するための要素は、これに限らず、例えば、操作体302が基準位置から移動した距離を加味してもよい。例えば、現在の移動速度や高低差が同じであっても、操作体302の移動距離が大きい程、移動速度として速い速度を算出・特定するものであってもよい。これにより、ユーザの操作態様によってキャラクタオブジェクト310の移動速度を調整できるといった面白味を提供できる。
(2) 上記実施形態においては、ステップS10で示したとおり、高低差などに応じた移動中アクションとしてキャラクタオブジェクト310の姿勢を例示したが、移動中アクションとしては、これに限らず、キャラクタオブジェクト310の移動中のポーズ(構え)などを高低差に応じて変化させるようにしてもよい。
(3) 上記実施形態においては、図19のステップS07等や図20のステップS26等における高度あるいは高低差を、地図画像情報に含まれる高度情報に基づいて特定する例について説明した。しかし、図19のステップS07等や図20のステップS26等における高度あるいは高低差は、ユーザ端末100に搭載されているセンサやアプリ等に基づいて特定するようにしてもよい。
(4) 上記実施形態においては、ミッション達成によりステップS15あるいはステップS30にて特典を付与するための処理が行われる例について説明したが、この特典を付与するための処理においては、イベントが開始されてからミッション達成までにキャラクタオブジェクト301が移動してきた移動経路(つまり、辿った経路)を加味して行うようにしてもよい。例えば、特定の地点を通過していたか否かや、迂回しているか否かなどに応じて、特典を付与する割合や、付与する特典の有利度合いを異ならせるようにしてもよい。これにより、どのような移動経路を採るかといった面白さをより一層向上させることができる。
(5) 上記実施形態の位置情報ゲームにおいては、ステップS30における特典付与の要素となる移動距離や高低差を、ステップS24やステップS28に示すように、ユーザ端末100側で特定する例について説明した。しかし、これに限らず、位置情報ゲーム中においては、移動に伴うユーザ端末100の現在位置情報や高度情報を逐次サーバ200に送信し、サーバ200側において当該ユーザ端末100の移動距離や高低差を特定し、ミッション達成したときに、サーバ200において特定している移動距離や高低差をユーザ端末100に送信するようにしてもよい。これにより、移動距離や高低差が不正に改ざん等されることを防止できる。なお、移動ゲームにおいても、ステップS15における特典付与の要素となる移動距離や高低差を、ユーザ端末100側で特定するものに限らず、サーバ200側において特定し、ミッション達成したときに、サーバ200において特定している移動距離や高低差をユーザ端末100に送信するようにしてもよい。
(6) 上記実施形態の移動ゲームにおいては、地形に応じてキャラクタオブジェクト301の移動速度が変化する例について説明した。しかし、キャラクタオブジェクトの移動速度は、地形の高低差のみならず川や森、沼、砂地などの地形の種類に応じても変化させるようにしてもよい。例えば、川や森などではない地形の方が、川や森などの地形よりも、移動速度が速くなるようにしてもよい。また、川の流れに沿って移動する場合、移動速度を速くし、川の流れに逆らって移動する場合、移動速度を遅くしてもよい。
(7) 上記実施形態の位置情報ゲームにおいては、ステップS23に示されるように、移動速度が所定速度以上でないときの移動に伴う移動距離および高低差が累計されて特典を付与する処理において考慮される一方、所定速度以上であるときの移動に伴う移動距離および高低差が累計されず特典を付与する処理において考慮されない例を示し、その基準となる所定速度として徒歩の平均速度よりも速い閾値に定めた例について説明した。しかし、位置情報ゲームにおける所定速度は、徒歩の平均速度を基準とした閾値に限らず、徒歩よりも速く移動する態様による速度を基準として定められる閾値であってもよい。所定速度は、例えば、ユーザが走る場合を想定して走る速度の平均速度よりも速い速度(例えば、時速15km等)であってもよく、また、ユーザが自転車に乗って移動する場合を想定して自転車の平均速度よりも速い速度(例えば、時速40km等)であってもよい。所定速度は、ユーザの移動態様などを考慮して適宜設定するものであってもよい。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
<付記>
以上の各実施形態で説明した事項を、以下に付記する。
(付記1):
本開示に示す一実施形態のある局面によれば、プロセッサ、メモリ、および、入力部を備える情報処理装置において実行されるゲームプログラムであって、前記プロセッサに、高低差を有する地形が反映されている地図画像のうちの一部の領域の地図画像を表示領域に表示するとともに、当該表示領域のうちの所定位置においてキャラクタオブジェクトを表示するステップ(ステップS01、ステップS21)と、ユーザの動きに応じた動作情報を特定するステップ(ステップS02、ステップS22)とを実行させ、前記表示するステップは、前記地図画像のうち前記表示領域に表示する領域を前記特定するステップにより特定される動作情報に応じた態様で変位させることにより、前記所定位置の前記キャラクタオブジェクトが前記地図画像の地形に沿って移動するように表示可能(ステップS11、ステップS22、ステップS27)である。
(付記2):
(付記1)において、前記動作情報は、ユーザからの前記入力部に対する操作に応じた情報であって前記キャラクタオブジェクトを移動させる方向を特定するための情報を含み、前記表示するステップは、前記動作情報から特定される方向における地形の高低差に応じた速度で、前記キャラクタオブジェクトが移動するように表示可能である。
(付記3):
(付記2)において、前記表示するステップは、前記キャラクタオブジェクトの現在の速度と前記地図画像の地形の高低差とに応じて速度を特定し、当該速度で前記キャラクタオブジェクトが移動するように表示可能である。
(付記4):
(付記1)から(付記3)のいずれかにおいて、前記動作情報は、ユーザからの前記入力部に対する操作に応じた情報であって前記キャラクタオブジェクトを移動させる方向を特定するための情報を含み、前記表示するステップは、前記動作情報から特定される方向における地形の高度が所定値に達するときには当該方向への前記キャラクタオブジェクトの移動を規制する。
(付記5):
(付記4)において、前記所定値は、特定条件が成立していない状態であるときよりも、当該特定条件が成立している状態であるときの方が高い値となる。
(付記6):
(付記5)において、前記プロセッサに、ゲームにおける有利度合いが異なる複数種類のゲームオブジェクトのうちのいずれかを前記キャラクタオブジェクトに関連付けるステップを実行させ、前記特定条件は、前記複数種類のゲームオブジェクトのうち特定種類のゲームオブジェクトが関連付けられているときに成立する条件を含む。
(付記7):
(付記5)または(付記6)において、前記プロセッサに、複数種類のキャラクタオブジェクトのうちから前記表示するステップにより表示させるキャラクタオブジェクトを特定するステップを実行させ、前記特定条件は、前記表示するステップにより表示されているキャラクタオブジェクトが前記複数種類のキャラクタオブジェクトのうち特定種類のキャラクタオブジェクトであることにより成立する条件を含む。
(付記8):
(付記4)から(付記7)のいずれかにおいて、前記表示するステップは、前記動作情報から特定される方向における地形の高度が前記所定値に達するときには前記キャラクタオブジェクトに所定アクションを実行させた後に、高度が前記所定値よりも低い予め定められた値となる位置まで滑落させる演出を実行することにより、前記動作情報から特定される方向への前記キャラクタオブジェクトの移動を規制する。
(付記9):
(付記2)から(付記8)のいずれかにおいて、前記表示するステップは、前記キャラクタオブジェクトに関連付けられているパラメータの値が特定値以上であることを条件として、前記キャラクタオブジェクトが移動するように表示可能であり、前記プロセッサに、前記キャラクタオブジェクトを移動させることにより、当該移動に伴う地形の高低差に応じて前記パラメータの値を消費するステップを実行させる。
(付記10):
(付記1)において、前記動作情報は、現実空間において前記情報処理装置が存在する位置を特定するための情報を含み、前記表示領域に表示する地図画像は、前記動作情報から特定される位置に応じた領域の地図画像であり、前記表示するステップは、前記動作情報に応じた態様で前記表示領域に表示する地図画像を更新表示することにより、前記情報処理装置の移動に連動させてキャラクタオブジェクトが移動するように表示可能である。
(付記11):
(付記1)から(付記10)のいずれかにおいて、前記プロセッサに、前記キャラクタオブジェクトを移動させることにより、当該移動に伴う地形の高低差に応じてユーザにとって有利な特典を付与するステップを実行させる。
(付記12):
(付記1)から(付記11)のいずれかにおいて、前記プロセッサに、前記キャラクタオブジェクトを移動させた移動経路に応じてユーザにとって有利な特典を付与するステップを実行させる。
(付記13):
(付記1)から(付記12)のいずれかにおいて、前記表示するステップは、移動中の前記キャラクタオブジェクトの姿勢を、前記地形の高低差に応じて変化させる。
(付記14):
(付記1)から(付記13)のいずれかにおいて、前記表示するステップは、前記地図画像と前記キャラクタオブジェクトとを所定の斜視方向から見た画像を前記表示領域に表示し、前記表示するステップにより表示される前記キャラクタオブジェクトは、当該キャラクタオブジェクトが表示される所定位置よりも前記表示領域において下方に位置する地形の高度の方が、前記所定位置よりも前記表示領域において上方に位置する地形の高度よりも高い場合に非表示となる場合が生じる。
(付記15):
(付記1)から(付記14)のいずれかにおいて、前記表示するステップは、前記キャラクタオブジェクトの予め定められた位置を中心として所定範囲となる境界を特定するための境界画像を表示可能であり、前記キャラクタオブジェクトを移動させることにより、境界と交差する地形の高低差に応じて当該境界画像の形状を変化させる。
(付記16):
本開示に示す一実施形態のある局面によれば、プロセッサ、メモリ、および、入力部を備える情報処理装置において実行されるゲーム方法であって、前記ゲーム方法は、前記情報処理装置が、高低差を有する地形が反映されている地図画像のうちの一部の領域の地図画像を表示領域に表示するとともに、当該表示領域のうちの所定位置においてキャラクタオブジェクトを表示するステップ(ステップS01、ステップS21)と、ユーザの動きに応じた動作情報を特定するステップ(ステップS02、ステップS22)とを備え、前記表示するステップは、前記地図画像のうち前記表示領域に表示する領域を前記特定するステップにより特定される動作情報に応じた態様で変位させることにより、前記所定位置の前記キャラクタオブジェクトが前記地図画像の地形に沿って移動するように表示可能(ステップS11、ステップS22、ステップS27)である。
(付記17):
本開示に示す一実施形態のある局面によれば、情報処理装置であって、ゲームプログラムを記憶する記憶部と、前記ゲームプログラムを実行することにより、前記情報処理装置の動作を制御する制御部を備え、前記制御部は、高低差を有する地形が反映されている地図画像のうちの一部の領域の地図画像を表示領域に表示するとともに、当該表示領域のうちの所定位置においてキャラクタオブジェクトを表示するステップ(ステップS01、ステップS21)と、ユーザの動きに応じた動作情報を特定するステップ(ステップS02、ステップS22)とを実行させ、前記表示するステップは、前記地図画像のうち前記表示領域に表示する領域を前記特定するステップにより特定される動作情報に応じた態様で変位させることにより、前記所定位置の前記キャラクタオブジェクトが前記地図画像の地形に沿って移動するように表示可能(ステップS11、ステップS22、ステップS27
)である。
〔ソフトウェアによる実現例〕
ユーザ端末100、サーバ200、ゲームプレイ端末300(HMDセット1000)、および配信端末400の制御ブロック(特に制御部110、210、310、410)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、ソフトウェアによって実現してもよい。
後者の場合、ユーザ端末100、サーバ200、ゲームプレイ端末300(HMDセット1000)、および配信端末400は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば1つ以上のプロセッサを備えていると共に、上記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、上記コンピュータにおいて、上記プロセッサが上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記プロセッサとしては、例えばCPU(Central Processing Unit)を用いることができる。上記記録媒体としては、「一時的でない有形の媒体」、例えば、ROM(Read Only Memory)等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムを展開するRAM(Random Access Memory)などをさらに備えていてもよい。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。