〔実施形態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とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
本実施形態では、ゲームシステム1は、さらに、動作指図装置300を含む。動作指図装置300は、サーバ200およびユーザ端末100のそれぞれと、ネットワーク2を介して接続する。動作指図装置300は、ゲームシステム1に少なくとも1台設けられている。動作指図装置300は、サーバ200が提供するサービスを利用するユーザ端末100の数に応じて、複数台設けられていてもよい。1台のユーザ端末100に対して、1台の動作指図装置300が設けられていてもよい。複数台のユーザ端末100に対して、1台の動作指図装置300が設けられていてもよい。
動作指図装置300(NPC制御装置、キャラクタ制御装置)は、サーバ、デスクトップパソコン、ノートパソコン、または、タブレットなどのコンピュータ、および、これらを組み合わせたコンピュータ群であってもよい。動作指図装置300は、図示の通り、プロセッサ30と、メモリ31と、ストレージ32と、通信IF33と、入出力IF34と、タッチスクリーン35(表示部)とを備える。動作指図装置300が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、動作指図装置300は、タッチスクリーン35に代えて、または、加えて、動作指図装置300本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF34を備えていてもよい。
また、図1に示すように、動作指図装置300は、1つ以上のマイク3010、1つ以上のモーションキャプチャ装置3020、および、1つ以上のコントローラ3030などの周辺機器と、無線または有線を介して、通信可能に構成されてもよい。無線で接続される周辺機器は、例えば、Bluetooth(登録商標)等の通信規格に従って、動作指図装置300と通信を確立する。
マイク3010は、周囲で発生した音声を取得し、これを電気信号に変換する。電気信号に変換された音声は、音声データとして、動作指図装置300に送信され、通信IF33を介して動作指図装置300に受け付けられる。
モーションキャプチャ装置3020は、追跡対象(例えば、人)のモーション(顔の表情、口の動きなども含む)を追跡し、追跡結果としての出力値を動作指図装置300へ送信する。出力値であるモーションデータは、通信IF33を介して動作指図装置300に受け付けられる。モーションキャプチャ装置3020のモーションキャプチャ方式は特に限定されない。モーションキャプチャ装置3020は、採用された方式に応じて、カメラ、各種センサ、マーカー、モデル(人物)が着用するスーツ、信号送出器など、モーションをキャプチャするためのあらゆる機構を選択的に備えている。
コントローラ3030は、1つ以上のボタン、レバー、スティック、ホイール等の物理的な入力機構を有していてもよい。コントローラ3030は、動作指図装置300のオペレータが、該入力機構に対して入力した入力操作に基づく出力値を動作指図装置300へ送信する。また、コントローラ3030は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値を動作指図装置300へ送信してもよい。上述の出力値は、通信IF33を介して動作指図装置300に受け付けられる。なお、以下では、動作指図装置300に備えられた操作部または動作指図装置300と通信可能に接続された各種の入力機構を用いて、動作指図装置300に対して、何らかの入力操作を行う人をオペレータと称する。オペレータには、入力部351、コントローラ3030などを用いて動作指図装置300を操作する人も含まれるし、マイク3010を介して音声を入力する声優も含まれるし、モーションキャプチャ装置3020を介して動きを入力するモデルも含まれる。
動作指図装置300は、図示しない、カメラと、測距センサとを備えていてもよい。動作指図装置300が備えることに代えて、または、加えて、モーションキャプチャ装置3020およびコントローラ3030がカメラと、測距センサとを有してしてもよい。
以上で説明したとおり、動作指図装置300は、該動作指図装置300に対して情報を入力する機構の一例として、通信IF33、入出力IF34、タッチスクリーン35を備える。必要に応じて、カメラ、および、測距センサをさらに備えていてもよい。入力する機構としての上述の各部は、ユーザの入力操作を受け付けるように構成された操作部と捉えることができる。
操作部がタッチスクリーン35で構成されていてもよい。この場合、動作指図装置300は、タッチスクリーン35の入力部351に対して実施されたユーザの操作をユーザの入力操作として特定し、受け付ける。あるいは、操作部が通信IF33で構成される場合、動作指図装置300は、コントローラ3030から送信される信号(例えば、出力値)をユーザの入力操作として特定し、受け付ける。あるいは、操作部が入出力IF34で構成される場合、該入出力IF34と接続されるコントローラ3030とは異なる入力装置(図示せず)から出力される信号をユーザの入力操作として特定し、受け付ける。
<ゲーム概要>
実施形態1に係るゲームシステム1が実行するゲーム(以下、本ゲーム)は、一例として、1以上のキャラクタを登場させて、そのキャラクタの少なくとも1つを動作指図データに基づいて動作させるゲームである。該ゲームに登場するキャラクタは、プレイヤキャラクタ(以下、PC)であってもよいし、ノンプレイヤキャラクタ(以下、NPC)であってもよい。PCは、ユーザが直接操作可能なキャラクタである。NPCは、ゲームプログラムおよび動作指図データにしたがって動作する、すなわち、ユーザが直接操作できないキャラクタである。以下では、両者を特に区別する必要がない場合には、総称として、“キャラクタ”を用いる。
一例として、本ゲームは、育成シミュレーションゲームである。具体的には、該育成シミュレーションゲームは、ユーザたる主人公が、キャラクタとの交流を深め、働きかけていくことで、該キャラクタを有名な動画配信者に仕立て上げ、該キャラクタが抱く夢を実現することを目的としている。さらに、該育成シミュレーションゲームは、主人公が、キャラクタとの交流を通じて親密度を高めることを目的とする恋愛シミュレーションゲームの要素を含んでいてもよい。
さらに、本ゲームには、一例として、ライブ配信パートが少なくとも含まれていることが好ましい。ゲームシステム1において、動作指図データが、本ゲームを実行中のユーザ端末100に対して、該ユーザ端末100以外の他の装置から、任意のタイミングで供給される。ユーザ端末100は、該動作指図データを受信したことをトリガにして、該動作指図データを解析する(レンダリングする)。ライブ配信パートとは、ユーザ端末100が、上述の解析された動作指図データにしたがって動作するキャラクタを、ユーザにリアルタイムに提示するパートである。これにより、ユーザは、キャラクタが本当に存在するかのような現実感を覚えることができ、より一層ゲームの世界に没入して本ゲームに興じることができる。
本実施形態では、ゲームは、複数のプレイパートで構成されていてもよい。この場合、1つのキャラクタが、あるパートでは、PCであって、別のパートでは、NPCである、というように、パートごとにキャラクタの性質が異なっていてもよい。
ゲームのジャンルは、特定のジャンルに限られない。ゲームシステム1は、あらゆるジャンルのゲームを実行し得る。例えば、テニス、卓球、ドッジボール、野球、サッカーおよびホッケーなどのスポーツを題材としたゲーム、パズルゲーム、クイズゲーム、RPG(Role-Playing Game)、アドベンチャーゲーム、シューティングゲーム、シミュレーションゲーム、育成ゲーム、ならびに、アクションゲームなどであってもよい。
また、ゲームシステム1において実行されるゲームのプレイ形態は、特定のプレイ形態に限られない。ゲームシステム1は、あらゆるプレイ形態のゲームを実行し得る。例えば、単一のユーザによるシングルプレイゲーム、および、複数のユーザによるマルチプレイゲーム、また、マルチプレイゲームの中でも、複数のユーザが対戦する対戦ゲーム、および、複数のユーザが協力する協力プレイゲームなどであってもよい。
<各装置のハードウェア構成要素>
プロセッサ10は、ユーザ端末100全体の動作を制御する。プロセッサ20は、サーバ200全体の動作を制御する。プロセッサ30は、動作指図装置300全体の動作を制御する。プロセッサ10、20および30は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。
プロセッサ10は後述するストレージ12からプログラムを読み出し、後述するメモリ11に展開する。プロセッサ20は後述するストレージ22からプログラムを読み出し、後述するメモリ21に展開する。プロセッサ30は後述するストレージ32からプログラムを読み出し、後述するメモリ31に展開する。プロセッサ10、プロセッサ20およびプロセッサ30は展開したプログラムを実行する。
メモリ11、21および31は主記憶装置である。メモリ11、21および31は、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がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
本実施形態においてプログラムとは、ゲームをユーザ端末100により実現するためのゲームプログラムであってもよい。あるいは、該プログラムは、該ゲームをユーザ端末100とサーバ200との協働により実現するためのゲームプログラムであってもよい。
あるいは、該プログラムは、該ゲームをユーザ端末100とサーバ200と動作指図装置300との協働により実現するためのゲームプログラムであってもよい。なお、ユーザ端末100とサーバ200との協働により実現されるゲームおよびユーザ端末100とサーバ200と動作指図装置300との協働により実現されるゲームは、一例として、ユーザ端末100において起動されたブラウザ上で実行されるゲームであってもよい。あるいは、該プログラムは、該ゲームを複数のユーザ端末100の協働により実現するためのゲームプログラムであってもよい。また、各種データとは、ユーザ情報およびゲーム情報などのゲームに関するデータ、ならびに、ゲームシステム1の各装置間で送受信する指示または通知を含んでいる。
ストレージ12、22および32は補助記憶装置である。ストレージ12、22および32は、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置で構成される。ストレージ12、22および32には、ゲームに関する各種データが格納される。
通信IF13は、ユーザ端末100における各種データの送受信を制御する。通信IF23は、サーバ200における各種データの送受信を制御する。通信IF33は、動作指図装置300における各種データの送受信を制御する。通信IF13、23および33は例えば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。
入出力IF14は、ユーザ端末100がデータの入力を受け付けるためのインターフェースであり、またユーザ端末100がデータを出力するためのインターフェースである。入出力IF14は、USB(Universal Serial Bus)等を介してデータの入出力を行ってもよい。入出力IF14は、例えば、ユーザ端末100の物理ボタン、カメラ、マイク、または、スピーカ等を含み得る。サーバ200の入出力IF24は、サーバ200がデータの入力を受け付けるためのインターフェースであり、またサーバ200がデータを出力するためのインターフェースである。入出力IF24は、例えば、マウスまたはキーボード等の情報入力機器である入力部と、画像を表示出力する機器である表示部とを含み得る。動作指図装置300の入出力IF34は、動作指図装置300がデータの入力を受け付けるためのインターフェースであり、また動作指図装置300がデータを出力するためのインターフェースである。入出力IF34は、例えば、マウス、キーボード、スティック、レバー等の情報入力機器、液晶ディスプレイなどの画像を表示出力する機器、および、周辺機器(マイク3010、モーションキャプチャ装置3020、および、コントローラ3030)との間でデータを送受信するための接続部を含み得る。
ユーザ端末100のタッチスクリーン15は、入力部151と表示部152とを組み合わせた電子部品である。動作指図装置300のタッチスクリーン35は、入力部351と表示部352とを組み合わせた電子部品である。入力部151、351は、例えばタッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部152、352は、例えば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。
入力部151、351は、入力面に対しユーザの操作(主にタッチ操作、スライド操作、スワイプ操作、およびタップ操作等の物理的接触操作)が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部151、351は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。
図示していないが、ユーザ端末100は、該ユーザ端末100の保持姿勢を特定するための1以上のセンサを備えていてもよい。このセンサは、例えば、加速度センサ、または、角速度センサ等であってもよい。ユーザ端末100がセンサを備えている場合、プロセッサ10は、センサの出力からユーザ端末100の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。例えば、プロセッサ10は、ユーザ端末100が縦向きに保持されているときには、縦長の画像を表示部152に表示させる縦画面表示としてもよい。一方、ユーザ端末100が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ10は、ユーザ端末100の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。
カメラ17は、イメージセンサ等を含み、レンズから入射する入射光を電気信号に変換することで撮影画像を生成する。
測距センサ18は、測定対象物までの距離を測定するセンサである。測距センサ18は、例えば、パルス変換した光を発する光源と、光を受ける受光素子とを含む。測距センサ18は、光源からの発光タイミングと、該光源から発せられた光が測定対象物にあたって反射されて生じる反射光の受光タイミングとにより、測定対象物までの距離を測定する。測距センサ18は、指向性を有する光を発する光源を有することとしてもよい。
ここで、ユーザ端末100が、カメラ17と測距センサ18とを用いて、ユーザ端末100の近傍の物体1010を検出した検出結果を、ユーザの入力操作として受け付ける例をさらに説明する。カメラ17および測距センサ18は、例えば、ユーザ端末100の筐体の側面に設けられてもよい。カメラ17の近傍に測距センサ18が設けられてもよい。カメラ17としては、例えば赤外線カメラを用いることができる。この場合、赤外線を照射する照明装置および可視光を遮断するフィルタ等が、カメラ17に設けられてもよい。これにより、屋外か屋内かにかかわらず、カメラ17の撮影画像に基づく物体の検出精度をいっそう向上させることができる。
プロセッサ10は、カメラ17の撮影画像に対して、例えば以下の(1)〜(5)に示す処理のうち1つ以上の処理を行ってもよい。(1)プロセッサ10は、カメラ17の撮影画像に対し画像認識処理を行うことで、該撮影画像にユーザの手が含まれているか否かを特定する。プロセッサ10は、上述の画像認識処理において採用する解析技術として、例えばパターンマッチング等の技術を用いてよい。(2)また、プロセッサ10は、ユーザの手の形状から、ユーザのジェスチャを検出する。プロセッサ10は、例えば、撮影画像から検出されるユーザの手の形状から、ユーザの指の本数(伸びている指の本数)を特定する。プロセッサ10はさらに、特定した指の本数から、ユーザが行ったジェスチャを特定する。例えば、プロセッサ10は、指の本数が5本である場合、ユーザが「パー」のジェスチャを行ったと判定する。また、プロセッサ10は、指の本数が0本である(指が検出されなかった)場合、ユーザが「グー」のジェスチャを行ったと判定する。また、プロセッサ10は、指の本数が2本である場合、ユーザが「チョキ」のジェスチャを行ったと判定する。(3)プロセッサ10は、カメラ17の撮影画像に対し、画像認識処理を行うことにより、ユーザの指が人差し指のみ立てた状態であるか、ユーザの指がはじくような動きをしたかを検出する。(4)プロセッサ10は、カメラ17の撮影画像の画像認識結果、および、測距センサ18の出力値等の少なくともいずれか1つに基づいて、ユーザ端末100の近傍の物体1010(ユーザの手など)とユーザ端末100との距離を検出する。例えば、プロセッサ10は、カメラ17の撮影画像から特定されるユーザの手の形状の大小により、ユーザの手がユーザ端末100の近傍(例えば所定値未満の距離)にあるのか、遠く(例えば所定値以上の距離)にあるのかを検出する。なお、撮影画像が動画の場合、プロセッサ10は、ユーザの手がユーザ端末100に接近しているのか遠ざかっているのかを検出してもよい。(5)カメラ17の撮影画像の画像認識結果等に基づいて、ユーザの手が検出されている状態で、ユーザ端末100とユーザの手との距離が変化していることが判明した場合、プロセッサ10は、ユーザが手をカメラ17の撮影方向において振っていると認識する。カメラ17の撮影範囲よりも指向性が強い測距センサ18において、物体が検出されたりされなかったりする場合に、プロセッサ10は、ユーザが手をカメラの撮影方向に直交する方向に振っていると認識する。
このように、プロセッサ10は、カメラ17の撮影画像に対する画像認識により、ユーザが手を握りこんでいるか否か(「グー」のジェスチャであるか、それ以外のジェスチャ(例えば「パー」)であるか)を検出する。また、プロセッサ10は、ユーザの手の形状とともに、ユーザがこの手をどのように移動させているかを検出する。また、プロセッサ10は、ユーザがこの手をユーザ端末100に対して接近させているのか遠ざけているのかを検出する。このような操作は、例えば、マウスまたはタッチパネルなどのポインティングデバイスを用いた操作に対応させることができる。ユーザ端末100は、例えば、ユーザの手の移動に応じて、タッチスクリーン15においてポインタを移動させ、ユーザのジェスチャ「グー」を検出する。この場合、ユーザ端末100は、ユーザが選択操作を継続中であると認識する。選択操作の継続とは、例えば、マウスがクリックされて押し込まれた状態が維持されること、または、タッチパネルに対してタッチダウン操作がなされた後タッチされた状態が維持されることに対応する。また、ユーザ端末100は、ユーザのジェスチャ「グー」が検出されている状態で、さらにユーザが手を移動させると、このような一連のジェスチャを、スワイプ操作(またはドラッグ操作)に対応する操作として認識することもできる。また、ユーザ端末100は、カメラ17の撮影画像によるユーザの手の検出結果に基づいて、ユーザが指をはじくようなジェスチャを検出した場合に、当該ジェスチャを、マウスのクリックまたはタッチパネルへのタップ操作に対応する操作として認識してもよい。
<ゲームシステム1の機能的構成>
図2は、ゲームシステム1に含まれるユーザ端末100、サーバ200および動作指図装置300の機能的構成を示すブロック図である。ユーザ端末100、サーバ200および動作指図装置300のそれぞれは、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。
ユーザ端末100は、ユーザの入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末100は、プロセッサ10、メモリ11、ストレージ12、通信IF13、および入出力IF14等の協働によって、制御部110および記憶部120として機能する。
サーバ200は、各ユーザ端末100と通信して、ユーザ端末100がゲームを進行させるのを支援する機能を有する。例えば、ユーザ端末100が本ゲームに係るアプリケーションを始めてダウンロードするときには、初回ゲーム開始時にユーザ端末100に記憶させておくべきデータをユーザ端末100に提供する。例えば、サーバ200は、キャラクタを動作させるための動作指図データをユーザ端末100に送信する。動作指図データは、予め、モデルなどのアクターの動きを取り込んだモーションキャプチャデータを含んでいてもよいし、声優などのアクターの音声を録音した音声データを含んでいてもよいし、キャラクタを動作させるための入力操作の履歴を示す操作履歴データを含んでいてもよいし、上述の一連の入力操作に対応付けられたコマンドを時系列に並べたモーションコマンド群を含んでいてもよい。本ゲームがマルチプレイゲームである場合には、サーバ200は、ゲームに参加する各ユーザ端末100と通信して、ユーザ端末100同士のやりとりを仲介する機能および同期制御機能を有していてもよい。また、サーバ200は、ユーザ端末100と動作指図装置300とを仲介する機能を備えている。これにより、動作指図装置300は、適時に、宛先を誤ることなく、ユーザ端末100または複数のユーザ端末100のグループに対して動作指図データを供給することが可能となる。サーバ200は、プロセッサ20、メモリ21、ストレージ22、通信IF23、および入出力IF24等の協働によって、制御部210および記憶部220として機能する。
動作指図装置300は、ユーザ端末100におけるキャラクタの動作を指示するための動作指図データを生成し、ユーザ端末100に供給する機能を有する。動作指図装置300は、プロセッサ30、メモリ31、ストレージ32、通信IF33、および入出力IF34等の協働によって、制御部310および記憶部320として機能する。
記憶部120、220および320は、ゲームプログラム131、ゲーム情報132およびユーザ情報133を格納する。ゲームプログラム131は、ユーザ端末100、サーバ200および動作指図装置300が実行するゲームプログラムである。ゲーム情報132は、制御部110、210および310がゲームプログラム131を実行する際に参照するデータである。ユーザ情報133は、ユーザのアカウントに関するデータである。記憶部220および320において、ゲーム情報132およびユーザ情報133は、ユーザ端末100ごとに格納されている。記憶部320は、さらに、キャラクタ制御プログラム134を格納する。キャラクタ制御プログラム134は、動作指図装置300が実行するプログラムであり、上述のゲームプログラム131に基づくゲームに登場させるキャラクタの動作を制御するためのプログラムである。
(サーバ200の機能的構成)
制御部210は、記憶部220に格納されたゲームプログラム131を実行することにより、サーバ200を統括的に制御する。例えば、制御部210は、ユーザ端末100に各種データおよびプログラム等を送信する。制御部210は、ゲーム情報もしくはユーザ情報の一部または全部をユーザ端末100から受信する。ゲームがマルチプレイゲームである場合には、制御部210は、ユーザ端末100からマルチプレイの同期の要求を受信して、同期のためのデータをユーザ端末100に送信してもよい。また、制御部210は、必要に応じて、ユーザ端末100および動作指図装置300と通信して、情報の送受信を行う。
制御部210は、ゲームプログラム131の記述に応じて、進行支援部211および共有支援部212として機能する。制御部210は、実行するゲームの性質に応じて、ユーザ端末100におけるゲームの進行を支援するために、図示しないその他の機能ブロックとしても機能することができる。
進行支援部211は、ユーザ端末100と通信し、ユーザ端末100が、本ゲームに含まれる各種パートを進行するための支援を行う。例えば、進行支援部211は、ユーザ端末100が、ゲームを進行させるとき、該ゲームを進行させるために必要な情報をユーザ端末100に提供する。
共有支援部212は、複数のユーザ端末100と通信し、複数のユーザが、各々のユーザ端末100にて互いのデッキを共有し合うための支援を行う。また、共有支援部212は、オンラインのユーザ端末100と動作指図装置300とをマッチングする機能を有していてもよい。これにより、ユーザ端末100と動作指図装置300との間の情報の送受信が円滑に実施される。
(ユーザ端末100の機能的構成)
制御部110は、記憶部120に格納されたゲームプログラム131を実行することにより、ユーザ端末100を統括的に制御する。例えば、制御部110は、ゲームプログラム131およびユーザの操作にしたがって、ゲームを進行させる。また、制御部110は、ゲームを進行させている間、必要に応じて、サーバ200および動作指図装置300と通信して、情報の送受信を行う。
制御部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は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。例えば、アニメーション生成部114は、キャラクタがまるでそこにいるかのように動いたり、口を動かしたり、表情を変えたりする様子を表現したアニメーション等を生成してもよい。
表示制御部112は、タッチスクリーン15の表示部152に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部112は、アニメーション生成部114によって生成されたアニメーションを含むゲーム画面を表示部152に表示してもよい。また、表示制御部112は、UI制御部113によって制御される上述のUIオブジェクトを、該ゲーム画面に重畳して描画してもよい。
ゲーム進行部115は、ゲームを進行させる。本実施形態では、ゲーム進行部115は、本ゲームを、操作受付部111を介して入力されるユーザの入力操作に応じて進行させる。ゲーム進行部115は、ゲームの進行中、1以上のキャラクタを登場させ、該キャラクタを動作させる。ゲーム進行部115は、キャラクタを、事前にダウンロードされたゲームプログラム131にしたがって動作させてもよいし、ユーザの入力操作にしたがって動作させてもよいし、動作指図装置300から供給される動作指図データにしたがって動作させてもよい。
本ゲームが、第1パート、第2パート・・・というように複数のパートに分かれて構成されている場合、ゲーム進行部115は、パートごとの仕様にしたがってゲームを進行させる。
一例を挙げて具体的に説明すると、第1パートが、キャラクタと対話することによってゲーム中の物語が進行するストーリーパートであるとする。この場合、ゲーム進行部115は、以下のようにストーリーパートを進行させる。具体的には、ゲーム進行部115は、キャラクタを、予めダウンロードされたゲームプログラム131または同じく予めダウンロードされた動作指図データ(第1動作指図データ)などにしたがってキャラクタを動作させる。ゲーム進行部115は、操作受付部111が受け付けたユーザの入力操作に基づいて、該ユーザが選んだ選択肢を特定し、該選択肢に対応付けられている動作をキャラクタに行わせる。第2パートが、動作指図装置300から供給された動作指図データに基づいてキャラクタを動作させるライブ配信パートであるとする。この場合、ゲーム進行部115は、動作指図装置300から動作指図データに基づいて、キャラクタを動作させてライブ配信パートを進行させる。
解析部116は、動作指図データを解析して(レンダリングして)、解析結果に基づいてキャラクタを動作させるようにゲーム進行部115に指示する。本実施形態では、解析部116は、動作指図装置300によって供給された動作指図データが通信IF33を介して受信されたことをトリガにして、該動作指図データのレンダリングを開始する。動作指図装置300は、解析結果をゲーム進行部115に伝達し、すぐに動作指図データに基づいてキャラクタを動作させるよう指示する。すなわち、ゲーム進行部115は、動作指図データが受信されたことをトリガにして、該動作指図データに基づいてキャラクタを動作させる。これにより、リアルタイムで動作するキャラクタをユーザに見せることが可能となる。
進捗情報生成部117は、ゲーム進行部115が実行しているゲームの進捗を示す進捗情報を生成し、適時、サーバ200または動作指図装置300に送信する。進捗情報は、例えば、現在表示されているゲーム画面を指定する情報を含んでいてもよいし、ゲームの進捗を、時系列で文字および記号等によって示した進行ログを含んでいてもよい。ゲームシステム1において、サーバ200および動作指図装置300が進捗情報を必要としない実施形態では、進捗情報生成部117は省略されてもよい。
(動作指図装置300の機能的構成)
制御部310は、記憶部320に格納されたキャラクタ制御プログラム134を実行することにより、動作指図装置300を統括的に制御する。例えば、制御部310は、キャラクタ制御プログラム134およびオペレータの操作にしたがって、動作指図データを生成し、ユーザ端末100に供給する。制御部310は、必要に応じて、さらにゲームプログラム131を実行してもよい。また、制御部310は、サーバ200および本ゲームを実行中のユーザ端末100と通信して、情報の送受信を行う。
制御部310は、キャラクタ制御プログラム134の記述に応じて、操作受付部311、表示制御部312、UI制御部313、アニメーション生成部314、進捗模擬部315およびキャラクタ制御部316として機能する。制御部310は、ゲームシステム1において実行されるゲームの性質に応じて、該ゲームに登場するキャラクタを制御するために、図示しないその他の機能ブロックとしても機能することができる。
操作受付部311は、入力部351に対するオペレータの入力操作を検知し受け付ける。操作受付部311は、タッチスクリーン35およびその他の入出力IF34を介したコンソールに対して、オペレータが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部310の各要素に出力する。操作受付部311の機能の詳細は、ユーザ端末100における操作受付部111のそれとほぼ同様である。
UI制御部313は、表示部352に表示させるUIオブジェクトを制御する。
アニメーション生成部314は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。例えば、アニメーション生成部314は、通信相手となるユーザ端末100上実際に表示されているゲーム画面を再現したアニメーション等を生成してもよい。
表示制御部312は、タッチスクリーン35の表示部352に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部312の機能の詳細は、ユーザ端末100における表示制御部112のそれとほぼ同様である。
進捗模擬部315は、ユーザ端末100から受信するゲームの進捗を示す進捗情報に基づいて、ユーザ端末100におけるゲームの進捗を把握する。そして、進捗模擬部315は、該ユーザ端末100の挙動を動作指図装置300において模擬的に再現することで、オペレータに対して、ユーザ端末100の進捗を提示する。
例えば、進捗模擬部315は、ユーザ端末100で表示されているゲーム画面を再現したものを自装置の表示部352に表示してもよい。また、進捗模擬部315は、ユーザ端末100において、ゲームの進捗を上述の進行ログとして表示部352に表示してもよい。
また、進捗模擬部315の機能の一部は、制御部310がゲームプログラム131を実行することにより実現されてもよい。例えば、まず進捗模擬部315は、進捗情報に基づいて、ユーザ端末100のゲームの進捗を把握する。そして、進捗模擬部315は、ユーザ端末100においてゲームプログラム131基づき現在表示されている、ゲーム画面を、完全にまたは簡略化して自装置の表示部352に再現してもよい。あるいは、進捗模擬部315は、現時点のゲームの進捗を把握し、ゲームプログラム131に基づいて現時点以降のゲーム進行を予測し、予測結果を表示部352に出力してもよい。
キャラクタ制御部316は、ユーザ端末100に表示させるキャラクタの挙動を制御する。具体的には、キャラクタを動作させるための動作指図データを生成し、ユーザ端末100に供給する。例えば、キャラクタ制御部316は、オペレータ(声優など)が、マイク3010を介して入力した音声データに基づいて、制御対象のキャラクタに発言させることを指示する動作指図データを生成する。このようにして生成された動作指図データには、上述の音声データが少なくとも含まれる。また、例えば、オペレータ(モデルなど)が、モーションキャプチャ装置3020を介して入力したモーションキャプチャデータに基づく動きを制御対象のキャラクタに行わせることを指示する動作指図データを生成する。このようにして生成された動作指図データには、上述のモーションキャプチャデータが少なくとも含まれる。また、例えば、オペレータが、コントローラ3030などの入力機構または入力部351などの操作部を介して入力した入力操作の履歴、すなわち、操作履歴データに基づいて、制御対象のキャラクタを動作させることを指示する動作指図データを生成する。このようにして生成された動作指図データには、上述の操作履歴データが少なくとも含まれる。操作履歴データは、例えば、表示部にどの画面が表示されているときに、オペレータが、コントローラ3030のどのボタンをどのタイミングで押したのかを示す操作ログが時系列で整理されている情報である。ここでの表示部は、コントローラ3030と連動した表示部であって、タッチスクリーン35の表示部352であってもよいし、入出力IF34を介して接続された別の表示部であってもよい。あるいは、キャラクタ制御部316は、オペレータが上述の入力機構または操作部を介して入力した入力操作に対応付けられた、キャラクタの動作を指示するコマンドを特定する。そして、キャラクタ制御部316は、該コマンドを入力された順に並べてキャラクタの一連の動作を示すモーションコマンド群を生成し、該モーションコマンド群にしたがってキャラクタを動作させることを指示する動作指図データを生成してもよい。このようにして生成された動作指図データには、上述のモーションコマンド群が少なくとも含まれる。
反応処理部317は、ユーザ端末100からユーザの反応についてフィードバックを受け付けて、これを動作指図装置300のオペレータに対して出力する。本実施形態では、例えば、ユーザ端末100は、上述の動作指図データにしたがってキャラクタを動作させている間、該キャラクタに宛てて、ユーザがコメントを作成することができる。反応処理部317は、該コメントのコメントデータを受け付けて、これを、出力する。反応処理部317は、ユーザのコメントに対応するテキストデータを、表示部352に表示してもよいし、ユーザのコメントに対応する音声データを、図示しないスピーカから出力してもよい。
なお、図2に示すユーザ端末100、サーバ200および動作指図装置300の機能は一例にすぎない。ユーザ端末100、サーバ200および動作指図装置300の各装置は、他の装置が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末100、サーバ200および動作指図装置300以外のさらに別の装置をゲームシステム1の構成要素とし、該別の装置にゲームシステム1における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末100、サーバ200、動作指図装置300およびそれ以外の別の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
なお、本実施形態では、進捗模擬部315は、省略されてもよい。また、本実施形態では、制御部310は、キャラクタ制御プログラム134の記述に応じて、反応処理部317として機能することができる。
<ゲームの構成>
図3は、本ゲームの基本的なゲーム進行についてその一例を示すフローチャートである。本ゲームは、例えば、2つのゲームプレイパートに分かれている。一例として、第1パートは、ストーリーパート、第2パートは、ライブ配信パートである。本ゲームには、その他にも、ユーザが保有する有価データと引き換えに、ゲームで利用可能なデジタルデータであるゲーム媒体をユーザに獲得させる獲得パートが含まれていてもよい。本実施形態では、各パートのプレイ順序は特に限定されない。図3には、ユーザ端末100が、ストーリーパート、獲得パート、ライブ配信パートの順にゲームを実行した場合が示されている。
ステップS1では、ゲーム進行部115は、ストーリーパートを実行する。ストーリーパートには、例えば、ユーザが操作する主人公とキャラクタとが対話するシーンが含まれる。本実施形態では、一例として、デジタルデータとしてひとまとめにされた「シナリオ」は、キャラクタにまつわる物語の1話分に対応し、サーバ200から供給されて、一旦記憶部120に格納される。ゲーム進行部115は、ストーリーパートにおいて、記憶部120に格納されているシナリオを1つ読み出し、結末を迎えるまで1つシナリオをユーザの入力操作に応じて進行させる。シナリオには、ユーザに選択させる選択肢、該選択肢に対応するキャラクタの応答パターンなどが含まれており、ユーザがどの選択肢を選択するのかによって、1つのシナリオの中でも、異なる結末が得られてもよい。具体的には、ゲーム進行部115は、主人公からキャラクタに対しての働きかけに対応する複数の選択肢をユーザが選択可能に提示し、該ユーザが選択した選択肢に応じて、シナリオを進行させる。
ステップS2では、ユーザが最後までシナリオをプレイすると、ゲーム進行部115は、結末に応じた報酬を該ユーザに獲得させてもよい。報酬は、例えば、ゲーム上で利用可能なデジタルデータであるゲーム媒体としてユーザに提供される。ゲーム媒体は、例えば、キャラクタに身に付けさせることができる服飾品などのアイテムであってもよい。ここで、「報酬をユーザに獲得させる」とは、一例として、ユーザに対応付けて管理されている報酬としてのゲーム媒体のステータスを、使用不可から使用可能に遷移させることであってもよい。あるいは、ゲーム媒体を、ユーザ識別情報またはユーザ端末IDなどに対応付けて、ゲームシステム1に含まれる少なくともいずれかのメモリ(メモリ11、メモリ21、メモリ31)に記憶させることであってもよい。
ステップS3では、ゲーム進行部115が獲得パートを実行する。獲得パートにおいて、ユーザに獲得させるゲーム媒体は、初回ダウンロード時にユーザ端末100に提供されるシナリオとは別の新しいシナリオであってもよい。以下では、前者のシナリオを固定シナリオ、後者のシナリオを獲得シナリオと称する。両者を区別する必要が無い場合は、単に、シナリオと称する。
獲得パートでは、例えば、ゲーム進行部115は、ユーザの有価データを消費することと引き換えに、ユーザがすでに保有している固定シナリオとは別の獲得シナリオをユーザに保有させる。ユーザに獲得させるシナリオは、ゲーム進行部115、または、サーバ200の進行支援部211によって、所定の規則にしたがって決定されてもよい。より具体的には、ゲーム進行部115、または、進行支援部211は、抽選を実行し、複数の獲得シナリオの中からランダムに、ユーザに獲得させるシナリオを決定してもよい。獲得パートは、ストーリーパートおよびライブ配信パートの前後の任意のタイミングで実行されてもよい。
ステップS4では、ゲーム進行部115は、ネットワークを介して外部の装置から、動作指図データを受信したか否かを判定する。動作指図データを外部の装置から受信しないうちは、ゲーム進行部115は、ステップS4のNOから、例えば、ステップS1に戻り、ストーリーパートを実行してもよい。あるいは、ゲーム進行部115は、ステップS3の獲得パートを実行してもよい。一方、動作指図データを外部の装置から受信した場合は、ゲーム進行部115は、ステップS4のYESからステップS5に進む。
ステップS5では、ゲーム進行部115は、ライブ配信パート(第2パート)を実行する。具体的には、ゲーム進行部115は、ステップS4にて受信した動作指図データにしたがってキャラクタを動作させることにより、ライブ配信パートを進行させる。ユーザは、ステップS1では、シナリオにおいて、決め打ちの反応を示すキャラクタと単にUIを介して対話するだけであった。しかし、ユーザは、ライブ配信パートにおいては、外部の装置から送信された動作指図データに基づいてリアルタイムに動作するキャラクタと自由にインタラクティブに対話することができる。より具体的には、解析部116は、ユーザの入力操作の内容に応じて生成された音声データおよびモーションデータを含む動作指図データを動作指図装置300から受信する。そして、ゲーム進行部115は、受信された動作指図データに含まれる音声データに基づいて、キャラクタに発話させるともに、上述のモーションデータに基づいてキャラクタに動きをつける。これにより、上述のユーザの入力操作に対するキャラクタの反応を、ユーザに提示することができる。
<処理概要>
本実施形態では、ユーザ端末100は、ゲームプログラム131に基づいて、ゲームの興趣性を向上させるために以下のステップを実行するように構成されている。具体的には、ユーザ端末100は、ユーザおよび他のユーザのいずれもが操作しないNPCの動作を指定する動作指図データであって、メモリ11に予め記憶されている第1動作指図データに基づいてNPCを動作させ、操作部(入出力IF14、タッチスクリーン15、カメラ17、測距センサ18)を介して入力されたユーザの入力操作に応じて第1パートを進行させるステップと、NPC制御装置(動作指図装置300)から受信した第2動作指図データに基づいてNPCを動作させることにより第2パートを進行させるステップと、を実行する。
上述の構成によれば、ユーザ端末100は、第1パートにおいて、予めダウンロードされた第1動作指図データに基づいてNPCを動作させる。これに加えて、ユーザ端末100は、動作指図装置300から第2動作指図データを受信し、第2パートにおいて、第2動作指図データに基づいてNPCを動作させる。動作指図装置300から受信した第2動作指図データに基づいてNPCを動作させることができるため、NPCの動作は、型にはまらず、その表現は大幅に広がる。そのため、ユーザは、ゲームプレイ中のNPCとの関わり合いを通じて、該NPCがまるで現実の世界にいるかのような現実感を覚えることができる。結果として、ゲームの世界への没入感を高め、該ゲームの興趣性を向上させるという効果を奏する。
<データ構造>
(動作指図データ)
図4は、本実施形態に係るゲームシステム1にて処理される動作指図データのデータ構造の一例を示す図である。一例として、動作指図データは、メタ情報である、「宛先」、「作成元」の各項目と、データの中身である、「キャラクタID」、「音声」、「動き」の各項目とを含んで構成されている。
項目「宛先」には、宛先指定情報が格納されている。宛先指定情報は、該動作指図データが、どの装置宛てに送信されたものであるのかを示す情報である。宛先指定情報は、例えば、ユーザ端末100固有のアドレスであってもよいし、ユーザ端末100が所属しているグループの識別情報であってもよい。ある条件を満たすすべてのユーザ端末100を宛先としていることを示す記号(例えば、「ALL」など)であってもよい。
項目「作成元」には、作成元情報が格納されている。作成元情報は、該動作指図データが、どの装置によって作成されたものであるのかを示す情報である。作成元情報は、例えば、ユーザID、ユーザ端末ID、ユーザ端末の固有アドレスなど、ある特定のユーザを特定可能な、ユーザに関連する情報(以下、ユーザ関連情報)である。作成元情報は、サーバ200または動作指図装置300を指し示すIDまたはアドレスであってもよいし、作成元が、サーバ200または動作指図装置300である場合には、該項目の値を空のままにしておいてもよいし、該項目自体を動作指図データに設けないようにしてもよい。
項目「キャラクタID」には、本ゲームに登場するキャラクタを一意に識別するためのキャラクタIDが格納されている。ここに格納されているキャラクタIDは、該動作指図データがどのキャラクタの動作を指示するためのものであるのかを表している。
項目「音声」には、キャラクタに発現させる音声データが格納されている。項目「動き」には、キャラクタの動きを指定するモーションデータが格納されている。モーションデータは、一例として、モーションキャプチャ装置3020を介して動作指図装置300が取得したモーションキャプチャデータであってもよい。モーションキャプチャデータは、アクターの体全体の動きを追跡したデータであってもよいし、アクターの顔の表情および口の動きを追跡したデータであってもよいし、その両方であってもよい。モーションデータは、他の例として、コントローラ3030を介して動作指図装置300のオペレータが入力した操作によって特定された、キャラクタの一連の動きを指示するモーションコマンド群であってもよい。例えば、コントローラ3030のボタンA、ボタンB、ボタンC、ボタンDにそれぞれ、「右手を上げる」、「左手を上げる」、「歩く」、「走る」のコマンドが割り付けられている場合に、オペレータが、ボタンA、ボタンB、ボタンC、ボタンDを続けて順に押したとする。この場合には、「右手を上げる」、「左手を上げる」、「歩く」、「走る」の各コマンドが上述の順に並べられたモーションコマンド群が、モーションデータとして、「動き」の項目に格納される。なお、本実施形態では、音声データとモーションデータとは同期がとれた状態で、動作指図データに含まれている。
このような動作指図データを受信することにより、ゲーム進行部115は、ゲームに登場するキャラクタを、該動作指図データの作成元の意図通りに動作させることができる。具体的には、ゲーム進行部115は、動作指図データに音声データが含まれている場合には、該音声データに基づいてキャラクタに発話させる。また、ゲーム進行部115は、動作指図データにモーションデータが含まれている場合には、該モーションデータに基づいてキャラクタを動かす、すなわち、モーションデータに基づく動きをするように該キャラクタのアニメーションを生成する。
(ゲーム情報)
図5は、本実施形態に係るゲームシステム1にて処理されるゲーム情報132のデータ構造の一例を示す図である。ゲーム情報132において設けられる項目は、ゲームのジャンル、性質、内容等に応じて適宜決定されるものであり、例示の項目は、本発明の範囲を限定するものではない。一例として、ゲーム情報132は、「プレイ履歴」、「アイテム」、「親密度」、「知名度」および「配信履歴」の各項目を含んで構成されている。これらの各項目は、ゲーム進行部115がゲームを進行させるときに適宜参照される。
項目「プレイ履歴」には、ユーザのプレイ履歴が格納されている。プレイ履歴は、記憶部120に記憶されているシナリオごとに、ユーザのプレイが完遂しているかどうかを示す情報である。例えば、プレイ履歴は、プレイ初回にダウンロードされた固定シナリオのリストと、獲得パートにおいて後から獲得された獲得シナリオのリストとを含む。それぞれのリストにおいて、シナリオごとに、「プレイ済」、「未プレイ」、「プレイ可」、「プレイ不可」などのステータスが紐付けられている。
項目「アイテム」には、ユーザが保有するゲーム媒体としてのアイテム一覧が格納されている。本ゲームにおいて、アイテムは、一例として、キャラクタに身に付けさせる服飾品である。ユーザは、シナリオをプレイすることによって得られたアイテムを、キャラクタに身に付けさせ、キャラクタの見た目をカスタマイズすることができる。
項目「親密度」には、キャラクタのステータスの1つである親密度が格納されている。新密度は、ユーザのいわば分身である「主人公」を、キャラクタとの仲の良さを示すパラメータである。例えば、ゲーム進行部115は、親密度が高いほど、ゲームをユーザにとって有利に進行させてもよい。例えば、ゲーム進行部115は、シナリオのプレイ結果の良し悪しに応じて、親密度を増減してもよい。一例として、ゲーム進行部115は、ユーザがうまく選択肢を選び、シナリオにおいて迎えられた結末が良い内容であるほど、親密度を多く増分する。反対に、ゲーム進行部115は、ユーザが、シナリオをバッドエンドで迎えた場合には、親密度を減じてもよい。
項目「知名度」には、キャラクタのステータスの1つのである知名度が格納されている。知名度は、キャラクタが、動画配信者として持つ人気の高さおよび認知度などを示すパラメータである。キャラクタの動画配信活動を応援して、該キャラクタの知名度を上げ、該キャラクタの夢を実現することが本ゲームの目的の一つとなる。一例として、一定以上の知名度を達成することができたユーザに対しては、特別なシナリオが報酬として提供されてもよい。
項目「配信履歴」には、ライブ配信パートにおいて、過去にキャラクタからライブ配信された動画、いわゆるバックナンバーの一覧が格納されている。ライブ配信パートにおいて、リアルタイムにPUSH配信されている動画は、そのときにしか閲覧できない。一方、過去の配信分の動画は、サーバ200または動作指図装置300において録画されており、ユーザ端末100からのリクエストに応じて、PULL配信することが可能である。本実施形態では、一例として、バックナンバーは、ユーザが課金することにより、ダウンロードできるようにしてもよい。
<ストーリーパートの画面例>
図6は、ユーザ端末100の表示部152に表示されるクエスト提示画面400の一例を示す図である。ゲーム進行部115は、ストーリーパートにおいて、シナリオを進行中、ゲームプログラム131にしたがって、ユーザに対してクエストを提示する。具体的には、ゲーム進行部115は、主人公とキャラクタとの対話の中で、キャラクタから主人公に対して、クエストに相当する依頼事項を発言させる。このとき、例えば、ゲーム進行部115は、図6に示すクエスト提示画面400を表示部152に表示させてもよい。
「キャラクタに依頼事項を発言させる」という一連の動作を行うキャラクタを提示する方法は特に限定されない。例えば、ゲーム進行部115は、予め記憶部120に記憶されている、依頼事項に対応するテキストデータに基づいて、それを発話するキャラクタを静止画で表示してもよい。具体的には、ゲーム進行部115は、キャラクタ401と、キャラクタ401の発言であることを示す吹き出し402と、吹き出し402内に配置された依頼事項のテキストデータとを含むクエスト提示画面400を表示部152に表示させる。あるいは、ゲーム進行部115は、予め記憶部120に記憶されている、依頼事項を発話するシーンに対応する動作指図データに基づいて、それを発話するキャラクタのアニメーションを表示してもよい。具体的には、ゲーム進行部115は、キャラクタ401を、動作指図データに含まれるモーションキャプチャデータにしたがって動かしつつ、該動作指図データに含まれる音声データをユーザ端末100が備える図示しないスピーカから音声として出力する。
本実施形態では、一例として、ゲーム進行部115は、クエストを、ユーザ端末100の位置登録情報を利用した位置情報ゲームによって実現してもよい。ゲーム進行部115は、ユーザ端末100に備えられている不図示の位置登録システムから、ユーザ端末100の現在位置情報(例えば、住所情報、緯度経度情報など)を取得する。そして、取得した現在位置情報に基づいて、ユーザ端末100がある場所周辺の地図403を生成し、クエスト提示画面400に配置する。なお地図403を生成する元になる地図データは、予めユーザ端末100の記憶部120に記憶されていてもよいし、地図データを提供する他のサービス提供装置からネットワークを介して取得されてもよい。
続いて、ゲーム進行部115は、依頼事項を解決できる事物(以下、目標物)を獲得できる位置(住所、緯度経度など)を決定し、決定した位置に対応する地図上の位置に、目標アイコン404を重畳表示させる。これにより、ユーザは、ユーザ端末100を持って、地図403上の目標アイコン404の位置まで移動すれば、目標物を獲得し、クエストをクリアできると理解することができる。目標物の位置について、ゲーム進行部115は、ランダムに決定してもよいし、シナリオ、クエスト、目標物の内容に応じて予め決定されていてもよい。
ユーザが、目標アイコン404の位置に相当する実際の位置にユーザ端末100を持ち込むと、ゲーム進行部115は、主人公が目標物に到達したと判定し、ユーザに、目標物を獲得させる。ゲーム進行部115は、これにより、クエストがクリアされたと判定する。
本実施形態では、ゲーム進行部115は、クエストがクリアされると、クエスト解決画面500を生成し、表示部152に表示させてもよい。図7は、ユーザ端末100の表示部152に表示されるクエスト解決画面500の一例を示す図である。一例として、クエスト解決画面500は、キャラクタ401を含む。例えば、ゲーム進行部115は、キャラクタ401に、「依頼事項が解決されたことについて主人公に対して礼を言う」という動作を行わせる。ゲーム進行部115は、この動作を、予め記憶されている動作指図データに基づいてキャラクタ401に行わせてもよい。あるいは、ゲーム進行部115は、キャラクタ401の静止画と発言内容に対応するテキストデータ501とをクエスト解決画面500に配置することにより、キャラクタ401がお礼を言っているシーンを再現してもよい。
本実施形態では、ゲーム進行部115は、クエストがクリアされた報酬として、依頼主であるキャラクタ401にまつわる新たな固定シナリオを1つ解放し、ユーザがプレイ可能な状態に遷移させてもよい。具体的には、ゲーム進行部115は、図5に示すプレイ履歴を読み出し、所定の固定シナリオのステータスを「プレイ不可」から「プレイ可」に更新する。
さらに、ゲーム進行部115は、クエストがクリアされたことに基づいて、主人公とキャラクタとの親密度を増分してもよい。ゲーム進行部115は、クエストのプレイ内容(所要時間、移動距離、獲得個数、キャラクタの喜びの度合い、獲得された目標物のレア度など)が良いほど、親密度を上げる構成であってもよい。
ユーザが1以上のクエストをクリアしたり、選択肢を選択したりすることにより、キャラクタとの対話が進み、シナリオが進行していく。シナリオが1つの結末を迎えると、ユーザは、シナリオのプレイを完遂したことになる。
ゲーム進行部115は、シナリオをユーザがプレイしたことの報酬として、アイテムをユーザに獲得させてもよい。アイテムは、例えば、キャラクタ401に身に付けさせる服飾品である。ゲーム進行部115は、ユーザに獲得させるアイテムを所定の規則に基づいて決定する。例えば、ゲーム進行部115は、プレイされたシナリオに予め対応付けられているアイテムをユーザに付与してもよいし、シナリオのプレイ内容(クエストクリアの所要時間、獲得された親密度、よい選択肢を選択したか、など)に応じて決定されたアイテムを付与してもよい。あるいは、ユーザに付与するアイテムは、複数の候補の中からランダムで決定されてもよい。
本実施形態では、ゲーム進行部115は、ユーザに獲得させたアイテムを通知するための報酬画面600を生成し、表示部152に表示させてもよい。図8は、ユーザ端末100の表示部152に表示される報酬画面600の一例を示す図である。一例として、報酬画面600は、獲得されたアイテムのアイコン601、および、該アイテムの名称602を含んでいてもよい。これにより、ユーザは、自身が獲得できたアイテムを確認することができる。また、ゲーム進行部115は、図5に示す項目「アイテム」に格納されているアイテムリストに、上述の獲得されたアイテムを追加する。
<ライブ配信パートの画面例>
ゲーム進行部115は、例えば動作指図装置300などの外部の装置から動作指図データを受信すると、ライブ配信パートにおいて、キャラクタを該動作指図データに基づいて動作させる。例えば、ライブ配信パートにおいて動作指図データに基づいて動作するキャラクタを含む動画再生画面800を生成し、表示部152に表示させる。
図9は、ユーザ端末100の表示部152に表示される動画再生画面800の一例を示す図である。動画再生画面800は、一例として、ストーリーパートで対話相手であったキャラクタ(図示の例では、キャラクタ802)を少なくとも含む。
本実施形態では、ゲーム進行部115は、外部の装置(以下、動作指図装置300とする)から供給された動作指図データに含まれているモーションキャプチャデータが示す動きをキャラクタ802の動きに反映させる。モーションキャプチャデータは、動作指図装置300の設置場所において、モデル702の動きを、モーションキャプチャ装置3020を介して取得したものである。したがって、モデル702の動きが、そのまま、表示部152に表示されるキャラクタ802の動きに反映される。
本実施形態では、ゲーム進行部115は、動作指図装置300から供給された動作指図データに含まれている音声データ801を、キャラクタ802が発した音声として、キャラクタ802の動きと同期して出力する。音声データは、動作指図装置300の設置場所において、声優701の音声700を、マイク3010を介して取得したものである。したがって、声優701が発した音声700に対応する音声データ801が、そのまま、ユーザ端末100のスピーカから出力される。
上述の構成によれば、動作指図装置300の設置場所において、実在する声優701およびモデル702の音声および動きが、そのまま、キャラクタ802の音声および動きに反映される。このような動作を行うキャラクタ802を見て、ユーザは、キャラクタ802に対して、まるで、現実の世界に存在するかのような現実感を覚えることができ、ゲームの世界に没入することができる。
さらに、本実施形態では、ゲーム進行部115は、ストーリーパート(第1パート)におけるユーザの入力操作に基づいて、ストーリーパートのプレイ結果を決定してもよい。そして、ゲーム進行部115は、ライブ配信パート(第2パート)において、動作指図データに基づいて動作させるキャラクタを、該プレイ結果に応じた表示態様にて、表示部152に表示させてもよい。
一例として、ゲーム進行部115は、これまでにプレイされたストーリーパートにおいて、上述のキャラクタに身に付けさせることが可能なアイテムが獲得されていれば、そのアイテムのオブジェクトをキャラクタ802のオブジェクトに合成することが好ましい。上述の構成によれば、ユーザがストーリーパートをプレイすることにより獲得したアイテムを、ライブ配信パートで動作するキャラクタ802の服飾品に反映させることができる。例えば、図8に示すとおり、ストーリーパートにおいてシナリオをプレイしたことによって服飾品としてのアイテム(例えば、うさみみバンド)が獲得されている。この場合には、ゲーム進行部115は、図5に示すゲーム情報132から、該服飾品の情報を読み出し、該アイテムのオブジェクト(図示の例では、服飾品803)を、キャラクタ802に合成する。
これにより、ユーザは、キャラクタ802により愛着を感じてライブ配信パートをより一層楽しむことができる。さらに、キャラクタ802の服飾品をバージョンアップさせたいというユーザの意欲を育むことができ、結果として、ストーリーパートをプレイする動機付けを強化することが可能となる。
さらに、本実施形態では、ゲーム進行部115は、キャラクタ802の動作に反応して、キャラクタ802に宛てたコメントを入力することが可能であってもよい。一例として、ゲーム進行部115は、動画再生画面800に、コメント入力ボタン804を配置する。ユーザは、コメント入力ボタン804にタッチして、コメントを入力するためのUIを呼び出し、該UIを操作して、キャラクタ802に宛てたコメントを入力する。該UIは、予め準備されたいくつかのコメントの中からユーザが所望のコメントを選択するためのものであってもよい。該UIは、ユーザが文字を編集してコメントを入力するためのものであってもよい。該UIは、ユーザが音声にてコメントを入力するためのものであってもよい。
<処理フロー>
図10は、ゲームシステム1を構成する各装置が実行する処理の流れを示すフローチャートである。
ステップS101にて、ユーザ端末100のゲーム進行部115は、ユーザからゲーム開始の入力操作を受け付けると、サーバ200にアクセスし、ログインの要求を行う。
ステップS102にて、サーバ200の進行支援部211は、ユーザ端末100のステータスがオンラインであることを確認し、ログインを受け付けた旨応答する。
ステップS103にて、ゲーム進行部115は、必要に応じて、サーバ200と通信しながら、ユーザの入力操作に応じてゲームを進行させる。ゲーム進行部115は、ストーリーパートを進行させてもよいし、新たなシナリオを獲得するための獲得パートを進行させてもよい。
ステップS104にて、進行支援部211は、必要に応じて、ユーザ端末100に対して必要な情報を提供するなどして、ユーザ端末100におけるゲーム進行を支援する。
ステップS105にて、ライブ配信時刻になると、サーバ200の共有支援部212は、ステップS105のYESからステップS106に進む。ライブ配信時刻は、例えば、ゲームマスターによって予め決定されており、サーバ200および動作指図装置300において管理されている。また、ユーザ端末100に対して、ライブ配信時刻は予め通知されていてもよいし、実際にライブ配信時刻になるまで秘密にされていてもよい。前者の場合、ユーザに対して安定的にライブ配信を供給することができ、後者の場合、サプライズ配信として、ユーザに特別な付加価値が付いたライブ配信を供給することが可能となる。
ステップS106にて、共有支援部212は、ライブ配信を受ける権利がある1以上のユーザ端末100を探索する。ライブ配信を受けられる条件は、適宜ゲームマスターが設定すればよいが、少なくとも、本ゲームのアプリケーションをインストールしていること、および、ライブ配信時刻時点でオンラインであることなどが条件として挙げられる。本実施形態では一例として、ライブ配信時刻時点でオンラインである、すなわち、本ゲームのアプリケーションを起動しているユーザ端末100を、ライブ配信を受ける権利があるユーザ端末100として探索する。あるいは、共有支援部212は、さらに、ライブ配信を受けるための対価を支払い済みのユーザが所有するユーザ端末100であることを条件に加えてもよい。あるいは、共有支援部212は、事前に、上述のライブ配信時刻において、ライブ配信を受ける旨の予約を行った特定のユーザ端末100を、ライブ配信を受ける権利があるユーザ端末100として探索してもよい。
ステップS107にて、共有支援部212は、検出した1以上のユーザ端末100を動作指図装置300に通知する。例えば、共有支援部212は、ユーザ端末100の端末ID、ユーザ端末100の所有者であるユーザのユーザID、および、ユーザ端末100のアドレスなどを動作指図装置300に通知してもよい。
一方、ステップS108にて、動作指図装置300のキャラクタ制御部316は、ライブ配信時刻になると、ステップS108のYESからステップS109〜S110に進む。ステップS109〜S110は、いずれが先に実行されても構わない。
ステップS109にて、キャラクタ制御部316は、声優などのアクターがマイク3010を介して入力した音声を音声データとして取得する。
ステップS110にて、キャラクタ制御部316は、モデルなどのアクターがモーションキャプチャ装置3020を介して入力した動きをモーションキャプチャデータとして取得する。
ステップS111にて、キャラクタ制御部316は、動作指図データ(第2動作指図データ)を生成する。具体的には、キャラクタ制御部316は、上述のライブ配信開始時刻に動画を配信させるキャラクタを特定し、該キャラクタのキャラクタIDを、動作指図データの「キャラクタID」の項目に格納する。いつの時刻にどのキャラクタの動画を配信するのかは、ゲームマスターによって予めスケジューリングされ、動作指図装置300に登録されていてもよい。あるいは、動作指図装置300のオペレータが、どのキャラクタの動作指図データを作成するのかを動作指図装置300に対して予め指定しておいてもよい。キャラクタ制御部316は、ステップS109で取得した音声データを、動作指図データの「音声」の項目に格納する。キャラクタ制御部316は、ステップS110で取得したモーションキャプチャデータを、動作指図データの「動き」の項目に格納する。キャラクタ制御部316は、音声データとモーションキャプチャデータとが同期するように、音声データとモーションキャプチャデータとを紐付ける。キャラクタ制御部316は、ステップS107にてサーバ200より通知された1以上のユーザ端末100が宛先となるように、これらのユーザ端末100のグループのグループ識別情報、または、1台のユーザ端末100のアドレスを、宛先指定情報として、動作指図データの「宛先」の項目に格納する。
ステップS112にて、キャラクタ制御部316は、通信IF33を介して、上述のように生成した動作指図データを、宛先として指定した各ユーザ端末100に送信する。キャラクタ制御部316は、アクターが声を出したり、動いたりして得られた音声データおよびモーションキャプチャデータを、取得してすぐさま動作指図データへとレンダリングし、リアルタイムで、各ユーザ端末100に配信することが望ましい。
ステップS113にて、ユーザ端末100の解析部116は、通信IF13を介して、上述の動作指図データを受信する。例えば、解析部116は、動作指図装置300またはサーバ200から予めライブ配信すると予告された時刻に、動作指図データを受信してもよい。
ステップS114にて、解析部116は、受信したことをトリガにして、受信した動作指図データを解析する。
ステップS115にて、ゲーム進行部115は、上述の動作指図データを受信したときに、ライブ配信パートを実行していなければ、該ライブ配信パートを開始する。このとき、ゲーム進行部115は、別のパートを実行していれば、該パートの進行を中断してから、ライブ配信パートを開始する。ここで、ゲーム進行部115は、ライブ配信が開始されたために実行中のパートを一時中断する旨のメッセージを表示部152に出力し、該パートの進捗を記憶部120に保存しておくことが望ましい。なお、上述の動作指図データを受信した時点で、すでに、ライブ配信パートを実行していれば、ゲーム進行部115は、ステップS115を省略してもよい。この場合、ゲーム進行部115は、動作指図データ(すなわち、キャラクタがライブ配信する体の動画)の配信が開始された旨のメッセージを表示部152に出力してもよい。
ステップS116にて、ゲーム進行部115は、解析部116によって解析された動画指図データに基づいてキャラクタを動作させることにより、ライブ配信パートを進行させる。具体的には、ゲーム進行部115は、図9に示す動画再生画面800などを表示部152に表示させる。ゲーム進行部115は、声優701、モデル702などのアクターが動作指図装置300の設置場所で、声を出したり、動いたりしているのとほぼ同時に、リアルタイムで、その音声および動きを、動画再生画面800におけるキャラクタ802の発言および動きに反映させる。解析部116およびゲーム進行部115は、リアルタイムの動画のレンダリングおよび再生を、動作指図装置300から動作指図データを継続して受信し続けている間継続する。具体的には、ゲーム進行部115は、ユーザから何の入力操作も受け付けず、動作指図データが受信されている間は、ステップS117のNOからステップS113に戻り、以降の各ステップを繰り返す。
ステップS117にて、動作指図データに基づいてキャラクタが動作している間に、操作受付部111が、ユーザから入力操作を受け付けると、ゲーム進行部115は、ステップS117のYESからステップS118に進む。例えば、操作受付部111は、動画再生画面800におけるコメント入力ボタン804に対する入力操作を受け付ける。
ステップS118にて、ゲーム進行部115は、上述の入力操作に応じて生成したコメントデータを動作指図装置300に送信する。具体的には、ゲーム進行部115は、選択されたコメントのコメントIDをコメントデータとして送信してもよい。あるいは、ゲーム進行部115は、ユーザにより入力された文章のテキストデータをコメントデータとして送信してもよい。あるいは、ゲーム進行部115は、ユーザにより入力された音声の音声データをコメントデータとして送信してもよい。あるいは、ゲーム進行部115は、ユーザにより入力された音声を認識し、テキストデータに変換したものをコメントデータとして送信してもよい。
ステップS119にて、動作指図装置300の反応処理部317は、通信IF33を介して、ユーザ端末100から送信されたコメントデータを受信する。
ステップS120にて、反応処理部317は、受信したコメントデータを、動作指図装置300に出力する。例えば、反応処理部317は、コメントデータに含まれるテキストデータを表示部352に表示する。これにより、オペレータは、自分たちが動かしたキャラクタに対して、ユーザがどのような反応を示したのかを示すフィードバックを受けることが可能となる。そして、オペレータは、このフィードバックに合わせて、さらなるキャラクタの動作を決定することができる。すなわち、動作指図装置300は、ステップS109に戻り、音声データおよびモーションキャプチャデータの取得を継続し、動作指図データをユーザ端末100に提供し続ける。ユーザ端末100は、自端末における入力操作の内容が動作指図装置300によって受信された後、該動作指図装置300から送信された動作指図データを受信する。具体的には、ユーザ端末100は、キャラクタの発言内容に対応する音声データ、および、キャラクタの動きに対応するモーションキャプチャデータなどが含まれた動作指図データを受信する。そして、ユーザ端末100は、継続的に、該動作指図データに基づいて、キャラクタを動作させる。結果として、ユーザに、キャラクタとのリアルタイムでインタラクティブなやりとりを体験させることが可能となる。なお、モーションキャプチャデータに代えて、キャラクタの動作を指示する1以上のコマンドが、動作指図装置300のオペレータが指示した順に並んでいるモーションコマンド群が、ユーザ端末100によって受信されてもよい。
<変形例>
実施形態1の変形例では、ライブ配信パートにおいて動画をライブ配信するキャラクタは、他のパートにおいて、NPCでなくてもよい。すなわち、他のパートにおいて、ユーザの操作に基づいて動作するPCが、ライブ配信パートにおいてNPCとして動画をライブ配信するゲームに対しても、本発明を適用することができる。
本変形例では、ユーザ端末100は、ゲームプログラム131に基づいて、ゲームの興趣性を向上させるために以下のステップを実行するように構成されている。具体的には、ユーザ端末100は、操作部(入出力IF14、タッチスクリーン15、カメラ17、測距センサ18)を介してコンピュータ(ユーザ端末100)に入力されたユーザの入力操作に応じてキャラクタを動作させることにより第1パートを進行させるステップと、NPC制御装置(動作指図装置300)から受信した、キャラクタの動作を指定する動作指図データに基づいてキャラクタを動作させることにより第2パートを進行させるステップとを実行する。ここで、動作指図データは、音声データおよびモーションキャプチャデータの少なくともいずれか1つを含む。ユーザ端末100は、第2パートを進行させるステップでは、ユーザの入力操作の内容をNPC制御装置に送信し、該入力操作の内容を踏まえてNPC制御装置において決定された動作指図データを受信し、動作指図データを受信したことをトリガにして、キャラクタを動作させる。
〔実施形態2〕
<ゲーム概要>
実施形態2に係るゲームシステム1が実行するゲーム(以下、本ゲーム)は、実施形態1と同様に、一例として、恋愛シミュレーションゲームの要素を含んだ育成シミュレーションゲームである。本実施形態では、本ゲームには、少なくともライブ配信パートが含まれる。本ゲームは、単一のライブ配信パートで構成されていてもよいし、複数のパートで構成されていてもよい。また、ライブ配信パートにおいて、動作指図装置300によって動作を制御されるキャラクタは、PCであっても、NPCであっても構わない。例えば、ライブ配信パートにてNPCとして動作するキャラクタであっても、別のパートでは、PCとしてユーザの入力操作にしたがって動作することがあってもよい。あるいは、動作指図データが動作指図装置300からライブ配信されていない期間、キャラクタは、ライブ配信パート内で、PCとして、ユーザの入力操作にしたがって動作してもよい。そして、ライブ配信が開始されたら、該キャラクタは、NPCに切り替えられ、動作指図装置300から供給された動作指図データにしたがって動作してもよい。
<処理概要>
本実施形態では、ユーザ端末100は、ゲームプログラム131に基づいて、ゲームの興趣性を向上させるために以下のステップを実行するように構成されている。具体的には、ユーザ端末100は、例えば入力部151などの操作部を介してユーザ端末100(コンピュータ)に入力されたユーザの入力操作に応じてキャラクタを動作させるステップと、サーバ200または動作指図装置300(キャラクタ制御装置)からマルチキャストで送信されたキャラクタの動作を指定する動作指図データを受信するステップと、受信した動作指図データに基づいて、キャラクタを動作させるステップとを実行する。
さらに、キャラクタを動作させるステップは、マルチキャストで送信された動作指図データが、受信するステップにおいて受信されたことをトリガにして開始されることが好ましい。
あるいは、本実施形態では、ユーザ端末100は、ゲームプログラム131に基づいて、ゲームの興趣性を向上させるために以下のステップを実行するように構成されていてもよい。具体的には、ユーザ端末100は、操作部を介してユーザ端末100に入力されたユーザの入力操作に応じてキャラクタを動作させるステップと、サーバ200または動作指図装置300からユーザ端末100に宛てて送信された、キャラクタの動作を指定する動作指図データであって、該動作指図データの作成元として他のユーザのユーザ端末100が指定されていない動作指図データを受信するステップと、受信した動作指図データに基づいて、キャラクタを動作させるステップとを実行する。なお、動作指図データが「ユーザ端末100に宛てて送信された」とは、例えば、動作指図データがユニキャストで送信されたことを意味する。例えば、ユーザ端末100は、宛先指定情報に、自端末固有のアドレスが含まれている場合に、動作指図データが自端末に宛てて、すなわち、ユニキャストで送信されたと判断することができる。
さらに、キャラクタを動作させるステップは、ユニキャストで送信された動作指図データであって、ユーザまたはユーザ端末の識別情報が紐付けられていない動作指図データが、受信するステップにおいて受信されたことをトリガにして開始されることが好ましい。
<ゲームシステム1の機能的構成>
本実施形態に係るユーザ端末100において、解析部116は、さらに、動作指図データのメタ情報も解析する。メタ情報とは、動作指図データの中身とは別に、動作指図データの性質を定義する情報である。メタ情報は、例えば、宛先指定情報、および、作成元情報などである。具体的には、解析部116は、送信された動作指図データの宛先指定情報に基づいて、該動作指図データが、マルチキャスト送信されたものであるのか、ユニキャスト送信されたものであるのかを判断する。マルチキャスト送信とは、サーバ200または動作指図装置300が、自端末を含む所定のグループに対して同じ内容の情報を送信することを意味する。例えば、宛先指定情報として「ALL」が設定されている動作指図データは、本ゲームのアプリケーションを起動中のすべてのユーザ端末に宛てて同送される。ユニキャスト送信とは、サーバ200または動作指図装置300が、自端末に宛てて情報を送信することを意味する。宛先指定情報は、例えば、図4に示す動作指図データの項目「宛先」に格納されている。
マルチキャスト送信された動作指図データは、特定のユーザではなく、ゲームマスターによって作成されたものと考えられる。具体的には、上述の動作指図データは、ゲームシステム1において本ゲームのサービスを提供するプロバイダ(運営団体)に帰属する装置によって作成されたものであってもよい。例えば、サーバ200または動作指図装置300は、すべてのユーザおよびユーザ端末についての情報を把握しているので、動作指図データを作成し、アプリケーション起動中のユーザ端末にマルチキャスト送信することが可能である。したがって、ユーザ端末100は、マルチキャスト送信された動作指図データを、ゲームマスターによって作成されたものであると判断することができる。
本実施形態では、解析部116は、一例として、以下の機能を有していてもよい。具体的には、解析部116は、マルチキャスト送信された動作指図データをレンダリングする。そして、解析部116は、レンダリングの結果に基づいてキャラクタを動作させるように、ゲーム進行部115に指示する。より好ましくは、解析部116は、マルチキャスト送信された動作指図データが受信されたことをトリガにして、該動作指図データをリアルタイムにレンダリングする。続けて、解析部116は、レンダリングの結果に基づいてキャラクタを動作させるように、ゲーム進行部115に指示する。
別の実施形態では、解析部116は、上述の機能に代えて、あるいは、加えて、以下の機能を有していてもよい。具体的には、解析部116は、ユニキャスト送信された動作指図データであって、例えば、ユーザIDまたはユーザ端末IDなどの特定のユーザに関連する情報が紐付けられていない動作指図データをレンダリングする。そして、解析部116は、レンダリングの結果に基づいてキャラクタを動作させるように、ゲーム進行部115に指示する。より好ましくは、解析部116は、動作指図データがユニキャスト送信されたものであると判断した場合には、該動作指図データの作成元情報に基づいて、該動作指図データが特定のユーザ端末によって作成されたものかどうか判断する。例えば、作成元情報として、特定のユーザに関連する情報が紐付けられている動作指図データについて、解析部116は、特定のユーザ端末によって作成されたものであると判断する。作成元情報の値が空である動作指図データ、および、そもそも作成元情報が紐付けられていない動作指図データについて、解析部116は、特定のユーザ端末によって作成されたものではないと判断する。特定のユーザ端末によって作成されたものではない動作指図データは、ゲームマスターによって作成されたものと考えられる。
解析部116は、ユニキャスト送信された、特定のユーザの関連情報が作成元情報として紐付けられていない動作指図データを受信したことをトリガにして、該動作指図データをリアルタイムにレンダリングする。続けて、解析部116は、レンダリングの結果に基づいてキャラクタを動作させるように、ゲーム進行部115に指示する。
これにより、ユーザ端末100は、ゲームマスターから配信された動作指図データに基づいて、キャラクタを、該ゲームマスターの意図を反映してリアルタイムに動作させることができる。そのため、キャラクタがまるでそこに本当に存在しているかのような現実感を、該キャラクタに備えさせることができる。
<処理フロー>
図11は、本実施形態に係るユーザ端末100が実行する、動作指図データを解析する処理の流れを示すフローチャートである。本実施形態では、ゲームシステム1の各装置が実行する処理は、図10に示す処理とほぼ同様である。ステップS114にて、ユーザ端末100は、以下に示すとおり、動作指図データを解析する。
ステップS201にて、解析部116は、動作指図データの項目「宛先」から宛先指定情報を取得する。
ステップS202にて、解析部116は、宛先指定情報に基づいて、該動作指図データが、マルチキャストで送信されたものか否かを判断する。宛先指定情報がグループ識別子(例えば、「ALL」など)を指している場合には、解析部116は、該動作指図データがマルチキャストで送信されたものであると判断する。そして、解析部116は、ステップS202のYESから、図10に示すステップS115以降に進む。すなわち、ゲーム進行部115は、マルチキャストで送信された動作指図データが自端末において受信されたことをトリガにして、該動作指図データに基づいてキャラクタをリアルタイムで動作させる。一方、宛先指定情報が自端末のアドレスを指している場合には、解析部116は、該動作指図データが、ユニキャストで送信されたものであると判断する。本実施形態では、解析部116は、ユニキャストで送信されたものは、リアルタイムで再生する必要はないと判断し、受信した動作指図データを記憶部120に保存して、図10に示すステップS103以降に戻ってもよい。ステップS103では、例えば、ゲーム進行部115は、ユーザ端末100に入力されたユーザの入力操作に応じてキャラクタを動作させるパートを進行させてもよい。別の実施形態では、ユニキャストで送信された動作指図データが受信された場合には、解析部116は、ステップS202のNOからステップS203に進んでもよい。
ステップS203にて、解析部116は、該動作指図データの項目「作成元」から、作成元情報を取得する。
ステップS204にて、解析部116は、作成元情報が特定のユーザに関連するユーザ関連情報を指しているか否かを判断する。ユーザ関連情報は、例えば、ユーザID、ユーザ端末100の端末ID、ユーザ端末100のアドレスなどである。作成元情報が、特定のユーザのユーザ関連情報でない場合、解析部116は、該動作指図データが、特定のユーザによって作成されたものではなく、ゲームマスターによって作成されたものであると判断する。そして、解析部116は、ステップS204のNOから、図10に示すステップS115以降に進む。すなわち、ゲーム進行部115が、ユーザ関連情報が紐付けられていない動作指図データが自端末において受信されたことをトリガにして、該動作指図データに基づいてキャラクタをリアルタイムで動作させる。一方、作成元情報が、特定のユーザのユーザ関連情報である場合、解析部116は、該動作指図データが、特定のユーザによって作成されたものであると判断する。したがって、解析部116は、ゲームマスターから供給された動作指図データではないので、リアルタイムで再生する必要はないと判断し、ステップS204のYESからステップS205に進む。
ステップS205にて、解析部116は、特定のユーザによって作成された動作指図データを記憶部120に保存して、図10に示すステップS103以降に戻る。
上述の構成および方法によれば、ユーザ端末100において、ユーザの入力操作に応じてキャラクタを動作させることに加えて、サーバ200または動作指図装置300から受信した動作指図データに基づいてキャラクタを動作させることができる。そのためキャラクタの動作は、型にはまらずに表現が大幅に広がる。これにより、ユーザは、キャラクタの動作を見て、該キャラクタがまるで現実の世界にいるかのような現実感を覚えることができる。そして、ユーザは、該キャラクタとの現実感が豊かなやりとりの体験を通じて、よりキャラクタに愛着を感じるので、該キャラクタを操作する別のパートもよりいっそう興味を持ってプレイすることができる。結果として、ゲームの世界への没入感を高め、該ゲームの興趣性を向上させるという効果を奏する。
<変形例>
実施形態2の変形例において、解析部116は、宛先指定情報に基づいて、動作指図データがマルチキャスト送信されたか否かを判断するステップを省略し、動作指図データに特定のユーザのユーザ関連情報が紐付いているか否かを、作成元情報に基づいて判断するステップを実行してもよい。
〔ソフトウェアによる実現例〕
制御部110の制御ブロック(特に、操作受付部111、表示制御部112、UI制御部113、アニメーション生成部114、ゲーム進行部115、解析部116および進捗情報生成部117)、制御部210の制御ブロック(特に、進行支援部211および共有支援部212)、ならびに、制御部310の制御ブロック(特に、操作受付部311、表示制御部312、UI制御部313、アニメーション生成部314、進捗模擬部315、キャラクタ制御部316および反応処理部317)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、制御部110、制御部210または制御部310、もしくは、これらのうち複数を備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1) ゲームプログラム(131)について説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ(10)、メモリ(11)、操作部(通信IF13、入出力IF14、タッチスクリーン15、カメラ17、測距センサ18、入力部151など)を備えるコンピュータ(ユーザ端末100)により実行される。ゲームプログラムは、プロセッサに、操作部を介してコンピュータに入力されたユーザの入力操作に応じてキャラクタを動作させるステップ(S103)と、キャラクタの動作を制御するキャラクタ制御装置(動作指図装置300)からコンピュータに宛てて送信されたキャラクタの動作を指定する動作指図データであって、該動作指図データの作成元として他のユーザのコンピュータが特定されていない動作指図データを受信するステップ(S113、S204でNO)と、受信した動作指図データに基づいて、キャラクタを動作させるステップ(S116)とを実行させる。
上述の構成によれば、コンピュータ(ユーザ端末100)において、該ユーザの入力操作に応じてキャラクタを動作させることに加えて、外部の装置(例えば、キャラクタ制御装置)から受信した動作指図データに基づいてキャラクタを動作させることができる。そのためキャラクタの動作は、型にはまらずに表現が大幅に広がる。これにより、ユーザは、キャラクタの動作を見て、該キャラクタがまるで現実の世界にいるかのような現実感を覚えることができる。結果として、ゲームの世界への没入感を高め、該ゲームの興趣性を向上させるという効果を奏する。
(項目2) (項目1)において、動作指図データに基づいてキャラクタを動作させるステップは、動作指図データに音声データが含まれている場合には、該音声データに基づいてキャラクタに発話させ、動作指図データにモーションデータが含まれている場合には、該モーションデータに基づいてキャラクタを動かす。これにより、キャラクタ制御装置において、オペレータまたはアクターなどによって作成された音声または動きを、コンピュータ(ユーザ端末100)で表示されるキャラクタの音声または動きに反映させることができる。これにより、キャラクタの表現が非常に豊かになり、キャラクタの現実感を高めることが可能となる。
(項目3) (項目1)または(項目2)において、動作指図データに基づいてキャラクタを動作させるステップは、キャラクタ制御装置からマルチキャストで送信された動作指図データを受信するステップにて受信したことをトリガにして、該動作指図データに基づいてキャラクタを動作させる。これにより、キャラクタ制御装置による制御にしたがいリアルタイムで動作するキャラクタをユーザに提示できる。
(項目4) (項目1)から(項目3)までのいずれか1項目において、ゲームプログラムは、プロセッサに、動作指図データに基づいてキャラクタが動作している間に、操作部を介してコンピュータに入力された、ユーザの入力操作の内容を、キャラクタ制御装置に送信するステップ(S118)を実行させ、受信するステップは、入力操作の内容をキャラクタ制御装置が受信した後(S119)、該キャラクタ制御装置から送信された動作指図データをさらに受信する(S113)。これにより、キャラクタ制御装置のオペレータは、ユーザの入力操作の内容を踏まえて、キャラクタの動作を決定することができる。オペレータは、動作(音声または動きなど)を、コンピュータ(ユーザ端末100)で表示されるキャラクタの発話または動きに反映させることができる。したがって、ユーザは、キャラクタとのやりとりを、現実の人とのやりとりと同様に楽しむことができ、キャラクタの現実感がより一層高まる。
(項目5) (項目4)において、受信するステップは、入力操作の内容をキャラクタ制御装置が受信した後該キャラクタ制御装置に入力された、キャラクタの発言に対応する音声データを、動作指図データとして受信してもよい。これにより、リアルタイムに、キャラクタとのインタラクティブなやりとり(例えば、会話)を実現できる。
(項目6) (項目4)または(項目5)において、受信するステップは、入力操作の内容をキャラクタ制御装置が受信した後該キャラクタ制御装置に入力された、キャラクタの動きに対応するモーションキャプチャデータを、動作指図データとして受信してもよい。これにより、キャラクタとのリアルタイムでインタラクティブなやりとりを実現し、キャラクタの動きをそれに合わせることができる。
(項目7) ゲームプログラム(131)について説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ(10)、メモリ(11)、操作部(通信IF13、入出力IF14、タッチスクリーン15、カメラ17、測距センサ18、入力部151など)を備えるコンピュータ(ユーザ端末100)により実行される。ゲームプログラムは、プロセッサに、操作部を介してコンピュータに入力されたユーザの入力操作に応じてキャラクタを動作させるステップ(S103)と、キャラクタの動作を制御するキャラクタ制御装置からコンピュータに宛てて送信されたキャラクタの動作を指定する動作指図データであって、該動作指図データの作成元として他のユーザのコンピュータが特定されていない動作指図データを受信するステップ(S113、S204でNO)と、受信した動作指図データに基づいて、キャラクタを動作させるステップ(S116)とを実行させる。(項目7)に係るゲームプログラムは、(項目1)に係るゲームプログラムと同様の作用効果を奏する。
(項目8) ゲームプログラムを実行する方法を説明した。本開示のある局面によると、ゲームプログラムは、プロセッサ、メモリおよび操作部を備えるコンピュータにより実行される。該方法は、プロセッサが(項目1)に記載の各ステップを実行する方法である。(項目8)に係る方法は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。
(項目9) 情報処理装置を説明した。本開示のある局面によると、該情報処理装置は、(項目1)に係るゲームプログラムを記憶する記憶部(120)と、操作部(例えば、通信IF13、入出力IF14、タッチスクリーン15、カメラ17、測距センサ18、入力部151など)と、該ゲームプログラムを実行することにより、情報処理装置(ユーザ端末100)の動作を制御する制御部(110)とを備える。(項目9)に係る情報処理装置は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。