以下、この技術的思想の実施の形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。本開示において示される1以上の実施形態において、各実施形態が含む要素を互いに組み合わせることができ、かつ、当該組み合わせられた結果物も本開示が示す実施形態の一部をなすものとする。
[HMDシステムの構成]
図1を参照して、HMD(Head-Mounted Device)システム100の構成について説明する。図1は、本実施の形態に従うHMDシステム100の構成の概略を表す図である。HMDシステム100は、家庭用のシステムとしてあるいは業務用のシステムとして提供される。
HMDシステム100は、サーバ600と、HMDセット110A,110B,110C,110Dと、外部機器700と、ネットワーク2とを含む。HMDセット110A,110B,110C,110Dの各々は、ネットワーク2を介してサーバ600や外部機器700と通信可能に構成される。以下、HMDセット110A,110B,110C,110Dを総称して、HMDセット110とも言う。HMDシステム100を構成するHMDセット110の数は、4つに限られず、3つ以下でも、5つ以上でもよい。HMDセット110は、HMD120と、コンピュータ200と、HMDセンサ410と、ディスプレイ430と、コントローラ300とを備える。HMD120は、モニタ130と、注視センサ140と、第1カメラ150と、第2カメラ160と、マイク170と、スピーカ180とを含む。コントローラ300は、モーションセンサ420を含み得る。
ある局面において、コンピュータ200は、インターネットその他のネットワーク2に接続可能であり、ネットワーク2に接続されているサーバ600その他のコンピュータと通信可能である。その他のコンピュータとしては、例えば、他のHMDセット110のコンピュータや外部機器700が挙げられる。別の局面において、HMD120は、HMDセンサ410の代わりに、センサ190を含み得る。
HMD120は、ユーザ5の頭部に装着され、動作中に仮想空間をユーザ5に提供し得る。より具体的には、HMD120は、右目用の画像および左目用の画像をモニタ130にそれぞれ表示する。ユーザ5の各目がそれぞれの画像を視認すると、ユーザ5は、両目の視差に基づき当該画像を3次元画像として認識し得る。HMD120は、モニタを備える所謂ヘッドマウントディスプレイと、スマートフォンその他のモニタを有する端末を装着可能なヘッドマウント機器のいずれをも含み得る。
モニタ130は、例えば、非透過型の表示装置として実現される。ある局面において、モニタ130は、ユーザ5の両目の前方に位置するようにHMD120の本体に配置されている。したがって、ユーザ5は、モニタ130に表示される3次元画像を視認すると、仮想空間に没入することができる。ある局面において、仮想空間は、例えば、背景、ユーザ5が操作可能なオブジェクト、ユーザ5が選択可能なメニューの画像を含む。ある局面において、モニタ130は、所謂スマートフォンその他の情報表示端末が備える液晶モニタまたは有機EL(Electro Luminescence)モニタとして実現され得る。
別の局面において、モニタ130は、透過型の表示装置として実現され得る。この場合、HMD120は、図1に示されるようにユーザ5の目を覆う密閉型ではなく、メガネ型のような開放型であり得る。透過型のモニタ130は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。モニタ130は、仮想空間を構成する画像の一部と、現実空間とを同時に表示する構成を含んでいてもよい。例えば、モニタ130は、HMD120に搭載されたカメラで撮影した現実空間の画像を表示してもよいし、一部の透過率を高く設定することにより現実空間を視認可能にしてもよい。
ある局面において、モニタ130は、右目用の画像を表示するためのサブモニタと、左目用の画像を表示するためのサブモニタとを含み得る。別の局面において、モニタ130は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、モニタ130は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
ある局面において、HMD120は、図示せぬ複数の光源を含む。各光源は例えば、赤外線を発するLED(Light Emitting Diode)により実現される。HMDセンサ410は、HMD120の動きを検出するためのポジショントラッキング機能を有する。より具体的には、HMDセンサ410は、HMD120が発する複数の赤外線を読み取り、現実空間内におけるHMD120の位置および傾きを検出する。
別の局面において、HMDセンサ410は、カメラにより実現されてもよい。この場合、HMDセンサ410は、カメラから出力されるHMD120の画像情報を用いて、画像解析処理を実行することにより、HMD120の位置および傾きを検出することができる。
別の局面において、HMD120は、位置検出器として、HMDセンサ410の代わりに、あるいはHMDセンサ410に加えてセンサ190を備えてもよい。HMD120は、センサ190を用いて、HMD120自身の位置および傾きを検出し得る。例えば、センサ190が角速度センサ、地磁気センサ、あるいは加速度センサである場合、HMD120は、HMDセンサ410の代わりに、これらの各センサのいずれかを用いて、自身の位置および傾きを検出し得る。一例として、センサ190が角速度センサである場合、角速度センサは、現実空間におけるHMD120の3軸周りの角速度を経時的に検出する。HMD120は、各角速度に基づいて、HMD120の3軸周りの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、HMD120の傾きを算出する。
注視センサ140は、ユーザ5の右目および左目の視線が向けられる方向を検出する。つまり、注視センサ140は、ユーザ5の視線を検出する。視線の方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ140は、当該アイトラッキング機能を有するセンサにより実現される。ある局面において、注視センサ140は、右目用のセンサおよび左目用のセンサを含むことが好ましい。注視センサ140は、例えば、ユーザ5の右目および左目に赤外光を照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ140は、検出した各回転角に基づいて、ユーザ5の視線を検知することができる。
第1カメラ150は、ユーザ5の顔の下部を撮影する。より具体的には、第1カメラ150は、ユーザ5の鼻および口などを撮影する。第2カメラ160は、ユーザ5の目および眉などを撮影する。HMD120のユーザ5側の筐体をHMD120の内側、HMD120のユーザ5とは逆側の筐体をHMD120の外側と定義する。ある局面において、第1カメラ150は、HMD120の外側に配置され、第2カメラ160は、HMD120の内側に配置され得る。第1カメラ150および第2カメラ160が生成した画像は、コンピュータ200に入力される。別の局面において、第1カメラ150と第2カメラ160とを1台のカメラとして実現し、この1台のカメラでユーザ5の顔を撮影するようにしてもよい。
マイク170は、ユーザ5の発話を音声信号(電気信号)に変換してコンピュータ200に出力する。スピーカ180は、音声信号を音声に変換してユーザ5に出力する。別の局面において、HMD120は、スピーカ180に替えてイヤホンを含み得る。
コントローラ300は、有線または無線によりコンピュータ200に接続されている。コントローラ300は、ユーザ5からコンピュータ200への命令の入力を受け付ける。ある局面において、コントローラ300は、ユーザ5によって把持可能に構成される。別の局面において、コントローラ300は、ユーザ5の身体あるいは衣類の一部に装着可能に構成される。さらに別の局面において、コントローラ300は、コンピュータ200から送信される信号に基づいて、振動、音、光のうちの少なくともいずれかを出力するように構成されてもよい。さらに別の局面において、コントローラ300は、ユーザ5から、仮想空間に配置されるオブジェクトの位置や動きを制御するための操作を受け付ける。
ある局面において、コントローラ300は、複数の光源を含む。各光源は例えば、赤外線を発するLEDにより実現される。HMDセンサ410は、ポジショントラッキング機能を有する。この場合、HMDセンサ410は、コントローラ300が発する複数の赤外線を読み取り、現実空間内におけるコントローラ300の位置および傾きを検出する。別の局面において、HMDセンサ410は、カメラにより実現されてもよい。この場合、HMDセンサ410は、カメラから出力されるコントローラ300の画像情報を用いて、画像解析処理を実行することにより、コントローラ300の位置および傾きを検出することができる。
モーションセンサ420は、ある局面において、ユーザ5の手に取り付けられて、ユーザ5の手の動きを検出する。例えば、モーションセンサ420は、手の回転速度、回転数等を検出する。検出された信号は、コンピュータ200に送られる。モーションセンサ420は、例えば、コントローラ300に設けられている。ある局面において、モーションセンサ420は、例えば、ユーザ5に把持可能に構成されたコントローラ300に設けられている。別の局面において、現実空間における安全のため、コントローラ300は、手袋型のようにユーザ5の手に装着されることにより容易に飛んで行かないものに装着される。さらに別の局面において、ユーザ5に装着されないセンサがユーザ5の手の動きを検出してもよい。例えば、ユーザ5を撮影するカメラの信号が、ユーザ5の動作を表わす信号として、コンピュータ200に入力されてもよい。モーションセンサ420とコンピュータ200とは、一例として、無線により互いに接続される。無線の場合、通信形態は特に限られず、例えば、Bluetooth(登録商標)その他の公知の通信手法が用いられる。
ディスプレイ430は、モニタ130に表示されている画像と同様の画像を表示する。これにより、HMD120を装着しているユーザ5以外のユーザにも当該ユーザ5と同様の画像を視聴させることができる。ディスプレイ430に表示される画像は、3次元画像である必要はなく、右目用の画像や左目用の画像であってもよい。ディスプレイ430としては、例えば、液晶ディスプレイや有機ELモニタなどが挙げられる。
サーバ600は、コンピュータ200にプログラムを送信し得る。別の局面において、サーバ600は、他のユーザによって使用されるHMD120に仮想現実を提供するための他のコンピュータ200と通信し得る。例えば、アミューズメント施設において、複数のユーザが参加型のゲームを行なう場合、各コンピュータ200は、各ユーザの動作に基づく信号をサーバ600を介して他のコンピュータ200と通信して、同じ仮想空間において複数のユーザが共通のゲームを楽しむことを可能にする。各コンピュータ200は、各ユーザの動作に基づく信号をサーバ600を介さずに他のコンピュータ200と通信するようにしてもよい。
外部機器700は、コンピュータ200と通信可能な機器であればどのような機器であってもよい。外部機器700は、例えば、ネットワーク2を介してコンピュータ200と通信可能な機器であってもよいし、近距離無線通信や有線接続によりコンピュータ200と直接通信可能な機器であってもよい。外部機器700としては、例えば、スマートデバイス、PC(Personal Computer)、及びコンピュータ200の周辺機器などが挙げられるが、これらに限定されるものではない。
[コンピュータのハードウェア構成]
図2を参照して、本実施の形態に係るコンピュータ200について説明する。図2は、本実施の形態に従うコンピュータ200のハードウェア構成の一例を表すブロック図である。コンピュータ200は、主たる構成要素として、プロセッサ210と、メモリ220と、ストレージ230と、入出力インターフェイス240と、通信インターフェイス250とを備える。各構成要素は、それぞれ、バス260に接続されている。
プロセッサ210は、コンピュータ200に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ220またはストレージ230に格納されているプログラムに含まれる一連の命令を実行する。ある局面において、プロセッサ210は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、MPU(Micro Processor Unit)、FPGA(Field-ProgrammaBle Gate Array)その他のデバイスとして実現される。
メモリ220は、プログラムおよびデータを一時的に保存する。プログラムは、例えば、ストレージ230からロードされる。データは、コンピュータ200に入力されたデータと、プロセッサ210によって生成されたデータとを含む。ある局面において、メモリ220は、RAM(Random Access Memory)その他の揮発メモリとして実現される。
ストレージ230は、プログラムおよびデータを永続的に保持する。ストレージ230は、例えば、ROM(Read-Only Memory)、ハードディスク装置、フラッシュメモリ、その他の不揮発記憶装置として実現される。ストレージ230に格納されるプログラムは、HMDシステム100において仮想空間を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、他のコンピュータ200との通信を実現するためのプログラムを含む。ストレージ230に格納されるデータは、仮想空間を規定するためのデータおよびオブジェクト等を含む。
別の局面において、ストレージ230は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに別の局面において、コンピュータ200に内蔵されたストレージ230の代わりに、外部の記憶装置に保存されているプログラムおよびデータを使用する構成が使用されてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のHMDシステム100が使用される場面において、プログラムやデータの更新を一括して行なうことが可能になる。
入出力インターフェイス240は、HMD120、HMDセンサ410、モーションセンサ420およびディスプレイ430との間で信号を通信する。HMD120に含まれるモニタ130,注視センサ140,第1カメラ150,第2カメラ160,マイク170およびスピーカ180は、HMD120の入出力インターフェイス240を介してコンピュータ200との通信を行ない得る。ある局面において、入出力インターフェイス240は、USB(Universal Serial Bus)、DVI(Digital Visual Interface)、HDMI(登録商標)(High-Definition Multimedia Interface)その他の端子を用いて実現される。入出力インターフェイス240は上述のものに限られない。
ある局面において、入出力インターフェイス240は、さらに、コントローラ300と通信し得る。例えば、入出力インターフェイス240は、コントローラ300およびモーションセンサ420から出力された信号の入力を受ける。別の局面において、入出力インターフェイス240は、プロセッサ210から出力された命令を、コントローラ300に送る。当該命令は、振動、音声出力、発光等をコントローラ300に指示する。コントローラ300は、当該命令を受信すると、その命令に応じて、振動、音声出力または発光のいずれかを実行する。
通信インターフェイス250は、ネットワーク2に接続されて、ネットワーク2に接続されている他のコンピュータ(例えば、サーバ600)と通信する。ある局面において、通信インターフェイス250は、例えば、LAN(Local Area Network)その他の有線通信インターフェイス、あるいは、WiFi(Wireless Fidelity)、Bluetooth(登録商標)、NFC(Near Field Communication)その他の無線通信インターフェイスとして実現される。通信インターフェイス250は上述のものに限られない。
ある局面において、プロセッサ210は、ストレージ230にアクセスし、ストレージ230に格納されている1つ以上のプログラムをメモリ220にロードし、当該プログラムに含まれる一連の命令を実行する。当該1つ以上のプログラムは、コンピュータ200のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ210は、入出力インターフェイス240を介して、仮想空間を提供するための信号をHMD120に送る。HMD120は、その信号に基づいてモニタ130に映像を表示する。
図2に示される例では、コンピュータ200は、HMD120の外部に設けられる構成が示されているが、別の局面において、コンピュータ200は、HMD120に内蔵されてもよい。一例として、モニタ130を含む携帯型の情報通信端末(例えば、スマートフォン)がコンピュータ200として機能してもよい。
コンピュータ200は、複数のHMD120に共通して用いられる構成であってもよい。このような構成によれば、例えば、複数のユーザに同一の仮想空間を提供することもできるので、各ユーザは同一の仮想空間で他のユーザと同一のアプリケーションを楽しむことができる。
ある実施の形態において、HMDシステム100では、現実空間における座標系である実座標系が予め設定されている。実座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、並びに、鉛直方向および水平方向の双方に直交する前後方向にそれぞれ平行な、3つの基準方向(軸)を有する。実座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれ、x軸、y軸、z軸と規定される。より具体的には、実座標系において、x軸は現実空間の水平方向に平行である。y軸は、現実空間の鉛直方向に平行である。z軸は現実空間の前後方向に平行である。
ある局面において、HMDセンサ410は、赤外線センサを含む。赤外線センサが、HMD120の各光源から発せられた赤外線をそれぞれ検出すると、HMD120の存在を検出する。HMDセンサ410は、さらに、各点の値(実座標系における各座標値)に基づいて、HMD120を装着したユーザ5の動きに応じた、現実空間内におけるHMD120の位置および傾き(向き)を検出する。より詳しくは、HMDセンサ410は、経時的に検出された各値を用いて、HMD120の位置および傾きの時間的変化を検出できる。
HMDセンサ410によって検出されたHMD120の各傾きは、実座標系におけるHMD120の3軸周りの各傾きに相当する。HMDセンサ410は、実座標系におけるHMD120の傾きに基づき、uvw視野座標系をHMD120に設定する。HMD120に設定されるuvw視野座標系は、HMD120を装着したユーザ5が仮想空間において物体を見る際の視点座標系に対応する。
[uvw視野座標系]
図3を参照して、uvw視野座標系について説明する。図3は、ある実施の形態に従うHMD120に設定されるuvw視野座標系を概念的に表す図である。HMDセンサ410は、HMD120の起動時に、実座標系におけるHMD120の位置および傾きを検出する。プロセッサ210は、検出された値に基づいて、uvw視野座標系をHMD120に設定する。
図3に示されるように、HMD120は、HMD120を装着したユーザ5の頭部を中心(原点)とした3次元のuvw視野座標系を設定する。より具体的には、HMD120は、実座標系を規定する水平方向、鉛直方向、および前後方向(x軸、y軸、z軸)を、実座標系内においてHMD120の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる3つの方向を、HMD120におけるuvw視野座標系のピッチ軸(u軸)、ヨー軸(v軸)、およびロール軸(w軸)として設定する。
ある局面において、HMD120を装着したユーザ5が直立し、かつ、正面を視認している場合、プロセッサ210は、実座標系に平行なuvw視野座標系をHMD120に設定する。この場合、実座標系における水平方向(x軸)、鉛直方向(y軸)、および前後方向(z軸)は、HMD120におけるuvw視野座標系のピッチ軸(u軸)、ヨー軸(v軸)、およびロール軸(w軸)に一致する。
uvw視野座標系がHMD120に設定された後、HMDセンサ410は、HMD120の動きに基づいて、設定されたuvw視野座標系におけるHMD120の傾きを検出できる。この場合、HMDセンサ410は、HMD120の傾きとして、uvw視野座標系におけるHMD120のピッチ角(θu)、ヨー角(θv)、およびロール角(θw)をそれぞれ検出する。ピッチ角(θu)は、uvw視野座標系におけるピッチ軸周りのHMD120の傾き角度を表す。ヨー角(θv)は、uvw視野座標系におけるヨー軸周りのHMD120の傾き角度を表す。ロール角(θw)は、uvw視野座標系におけるロール軸周りのHMD120の傾き角度を表す。
HMDセンサ410は、検出されたHMD120の傾きに基づいて、HMD120が動いた後のHMD120におけるuvw視野座標系を、HMD120に設定する。HMD120と、HMD120のuvw視野座標系との関係は、HMD120の位置および傾きに関わらず、常に一定である。HMD120の位置および傾きが変わると、当該位置および傾きの変化に連動して、実座標系におけるHMD120のuvw視野座標系の位置および傾きが変化する。
ある局面において、HMDセンサ410は、赤外線センサからの出力に基づいて取得される赤外線の光強度および複数の点間の相対的な位置関係(例えば、各点間の距離など)に基づいて、HMD120の現実空間内における位置を、HMDセンサ410に対する相対位置として特定してもよい。プロセッサ210は、特定された相対位置に基づいて、現実空間内(実座標系)におけるHMD120のuvw視野座標系の原点を決定してもよい。
[仮想空間]
図4を参照して、仮想空間についてさらに説明する。図4は、ある実施の形態に従う仮想空間11を表現する一態様を概念的に表す図である。仮想空間11は、中心12の360度方向の全体を覆う全天球状の構造を有する。図4では、説明を複雑にしないために、仮想空間11のうちの上半分の天球が例示されている。仮想空間11では各メッシュが規定される。各メッシュの位置は、仮想空間11に規定されるグローバル座標系であるXYZ座標系における座標値として予め規定されている。コンピュータ200は、仮想空間11に展開可能なパノラマ画像13(静止画、動画等)を構成する各部分画像を、仮想空間11において対応する各メッシュにそれぞれ対応付ける。
ある局面において、仮想空間11では、中心12を原点とするXYZ座標系が規定される。XYZ座標系は、例えば、実座標系に平行である。XYZ座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれX軸、Y軸、Z軸として規定される。したがって、XYZ座標系のX軸(水平方向)が実座標系のx軸と平行であり、XYZ座標系のY軸(鉛直方向)が実座標系のy軸と平行であり、XYZ座標系のZ軸(前後方向)が実座標系のz軸と平行である。
HMD120の起動時、すなわちHMD120の初期状態において、仮想カメラ14が、仮想空間11の中心12に配置される。ある局面において、プロセッサ210は、仮想カメラ14が撮影する画像をHMD120のモニタ130に表示する。仮想カメラ14は、現実空間におけるHMD120の動きに連動して、仮想空間11を同様に移動する。これにより、現実空間におけるHMD120の位置および傾きの変化が、仮想空間11において同様に再現され得る。
仮想カメラ14には、HMD120の場合と同様に、uvw視野座標系が規定される。仮想空間11における仮想カメラ14のuvw視野座標系は、現実空間(実座標系)におけるHMD120のuvw視野座標系に連動するように規定されている。したがって、HMD120の傾きが変化すると、それに応じて、仮想カメラ14の傾きも変化する。仮想カメラ14は、HMD120を装着したユーザ5の現実空間における移動に連動して、仮想空間11において移動することもできる。
コンピュータ200のプロセッサ210は、仮想カメラ14の位置と傾き(基準視線16)とに基づいて、仮想空間11における視界領域15を規定する。視界領域15は、仮想空間11のうち、HMD120を装着したユーザ5が視認する領域に対応する。つまり、仮想カメラ14の位置は、仮想空間11におけるユーザ5の視点と言える。
注視センサ140によって検出されるユーザ5の視線は、ユーザ5が物体を視認する際の視点座標系における方向である。HMD120のuvw視野座標系は、ユーザ5がモニタ130を視認する際の視点座標系に等しい。仮想カメラ14のuvw視野座標系は、HMD120のuvw視野座標系に連動している。したがって、ある局面に従うHMDシステム100は、注視センサ140によって検出されたユーザ5の視線を、仮想カメラ14のuvw視野座標系におけるユーザ5の視線とみなすことができる。
[ユーザの視線]
図5を参照して、ユーザ5の視線の決定について説明する。図5は、ある実施の形態に従うHMD120を装着するユーザ5の頭部を上から表した図である。
ある局面において、注視センサ140は、ユーザ5の右目および左目の各視線を検出する。ある局面において、ユーザ5が近くを見ている場合、注視センサ140は、視線R1およびL1を検出する。別の局面において、ユーザ5が遠くを見ている場合、注視センサ140は、視線R2およびL2を検出する。この場合、ロール軸wに対して視線R2およびL2が成す角度は、ロール軸wに対して視線R1およびL1が成す角度よりも小さい。注視センサ140は、検出結果をコンピュータ200に送信する。
コンピュータ200が、視線の検出結果として、視線R1およびL1の検出値を注視センサ140から受信した場合には、その検出値に基づいて、視線R1およびL1の交点である注視点N1を特定する。一方、コンピュータ200は、視線R2およびL2の検出値を注視センサ140から受信した場合には、視線R2およびL2の交点を注視点として特定する。コンピュータ200は、特定した注視点N1の位置に基づき、ユーザ5の視線N0を特定する。コンピュータ200は、例えば、ユーザ5の右目Rと左目Lとを結ぶ直線の中点と、注視点N1とを通る直線の延びる方向を、視線N0として検出する。視線N0は、ユーザ5が両目により実際に視線を向けている方向である。視線N0は、視界領域15に対してユーザ5が実際に視線を向けている方向に相当する。
別の局面において、HMDシステム100は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、HMDシステム100は、仮想空間11においてテレビ番組を表示することができる。
さらに別の局面において、HMDシステム100は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。
[視界領域]
図6および図7を参照して、視界領域15について説明する。図6は、仮想空間11において視界領域15をX方向から見たYZ断面を表す図である。図7は、仮想空間11において視界領域15をY方向から見たXZ断面を表す図である。
図6に示されるように、YZ断面における視界領域15は、領域18を含む。領域18は、仮想カメラ14の位置と基準視線16と仮想空間11のYZ断面とによって定義される。プロセッサ210は、仮想空間における基準視線16を中心として極角αを含む範囲を、領域18として規定する。
図7に示されるように、XZ断面における視界領域15は、領域19を含む。領域19は、仮想カメラ14の位置と基準視線16と仮想空間11のXZ断面とによって定義される。プロセッサ210は、仮想空間11における基準視線16を中心とした方位角βを含む範囲を、領域19として規定する。極角αおよびβは、仮想カメラ14の位置と仮想カメラ14の傾き(向き)とに応じて定まる。
ある局面において、HMDシステム100は、コンピュータ200からの信号に基づいて、視界画像17をモニタ130に表示させることにより、ユーザ5に仮想空間11における視界を提供する。視界画像17は、パノラマ画像13のうち視界領域15に対応する部分に相当する画像である。ユーザ5が、頭に装着したHMD120を動かすと、その動きに連動して仮想カメラ14も動く。その結果、仮想空間11における視界領域15の位置が変化する。これにより、モニタ130に表示される視界画像17は、パノラマ画像13のうち、仮想空間11においてユーザ5が向いた方向の視界領域15に重畳する画像に更新される。ユーザ5は、仮想空間11における所望の方向を視認することができる。
このように、仮想カメラ14の傾きは仮想空間11におけるユーザ5の視線(基準視線16)に相当し、仮想カメラ14が配置される位置は、仮想空間11におけるユーザ5の視点に相当する。したがって、仮想カメラ14の位置または傾きを変更することにより、モニタ130に表示される画像が更新され、ユーザ5の視界が移動される。
ユーザ5は、HMD120を装着している間、現実世界を視認することなく、仮想空間11に展開されるパノラマ画像13のみを視認できる。そのため、HMDシステム100は、仮想空間11への高い没入感覚をユーザ5に与えることができる。
ある局面において、プロセッサ210は、HMD120を装着したユーザ5の現実空間における移動に連動して、仮想空間11において仮想カメラ14を移動し得る。この場合、プロセッサ210は、仮想空間11における仮想カメラ14の位置および傾きに基づいて、HMD120のモニタ130に投影される画像領域(視界領域15)を特定する。
ある局面において、仮想カメラ14は、2つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含み得る。ユーザ5が3次元の仮想空間11を認識できるように、適切な視差が、2つの仮想カメラに設定される。別の局面において、仮想カメラ14を1つの仮想カメラにより実現してもよい。この場合、1つの仮想カメラにより得られた画像から、右目用の画像と左目用の画像とを生成するようにしてもよい。本実施の形態においては、仮想カメラ14が2つの仮想カメラを含み、2つの仮想カメラのロール軸が合成されることによって生成されるロール軸(w)がHMD120のロール軸(w)に適合されるように構成されているものとして、本開示に係る技術思想を例示する。
[コントローラ]
図8を参照して、コントローラ300の一例について説明する。図8は、ある実施の形態に従うコントローラ300の概略構成を表す図である。
図8に示されるように、ある局面において、コントローラ300は、右コントローラ300Rと図示せぬ左コントローラとを含み得る。右コントローラ300Rは、ユーザ5の右手で操作される。左コントローラは、ユーザ5の左手で操作される。ある局面において、右コントローラ300Rと左コントローラとは、別個の装置として対称に構成される。したがって、ユーザ5は、右コントローラ300Rを把持した右手と、左コントローラを把持した左手とをそれぞれ自由に動かすことができる。別の局面において、コントローラ300は両手の操作を受け付ける一体型のコントローラであってもよい。以下、右コントローラ300Rについて説明する。
右コントローラ300Rは、グリップ310と、フレーム320と、天面330とを備える。グリップ310は、ユーザ5の右手によって把持されるように構成されている。たとえば、グリップ310は、ユーザ5の右手の掌と3本の指(中指、薬指、小指)とによって保持され得る。
グリップ310は、ボタン340,350と、モーションセンサ420とを含む。ボタン340は、グリップ310の側面に配置され、右手の中指による操作を受け付ける。ボタン350は、グリップ310の前面に配置され、右手の人差し指による操作を受け付ける。ある局面において、ボタン340,350は、トリガー式のボタンとして構成される。モーションセンサ420は、グリップ310の筐体に内蔵されている。ユーザ5の動作がカメラその他の装置によってユーザ5の周りから検出可能である場合には、グリップ310は、モーションセンサ420を備えなくてもよい。
フレーム320は、その円周方向に沿って配置された複数の赤外線LED360を含む。赤外線LED360は、コントローラ300を使用するプログラムの実行中に、当該プログラムの進行に合わせて赤外線を発光する。赤外線LED360から発せられた赤外線は、右コントローラ300Rと左コントローラとの各位置や姿勢(傾き、向き)を検出するために使用され得る。図8に示される例では、二列に配置された赤外線LED360が示されているが、配列の数は図8に示されるものに限られない。一列あるいは3列以上の配列が使用されてもよい。
天面330は、ボタン370,380と、アナログスティック390とを備える。ボタン370,380は、プッシュ式ボタンとして構成される。ボタン370,380は、ユーザ5の右手の親指による操作を受け付ける。アナログスティック390は、ある局面において、初期位置(ニュートラルの位置)から360度任意の方向への操作を受け付ける。当該操作は、たとえば、仮想空11に配置されるオブジェクトを移動するための操作を含む。
ある局面において、右コントローラ300Rおよび左コントローラは、赤外線LED360その他の部材を駆動するための電池を含む。電池は、充電式、ボタン型、乾電池型などを含むが、これらに限定されない。別の局面において、右コントローラ300Rと左コントローラは、たとえば、コンピュータ200のUSBインターフェースに接続され得る。この場合、右コントローラ300Rおよび左コントローラは、電池を必要としない。
[サーバのハードウェア構成]
図9を参照して、本実施の形態に係るサーバ10について説明する。図9は、ある実施の形態に従うサーバ600のハードウェア構成の一例を表すブロック図である。サーバ600は、主たる構成要素として、プロセッサ610と、メモリ620と、ストレージ630と、入出力インターフェイス640と、通信インターフェイス650とを備える。各構成要素は、それぞれ、バス660に接続されている。
プロセッサ610は、サーバ600に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ620またはストレージ630に格納されているプログラムに含まれる一連の命令を実行する。ある局面において、プロセッサ610は、CPU)、GPU、MPU、FPGAその他のデバイスとして実現される。
メモリ620は、プログラムおよびデータを一時的に保存する。プログラムは、例えば、ストレージ630からロードされる。データは、サーバ600に入力されたデータと、プロセッサ610によって生成されたデータとを含む。ある局面において、メモリ620は、RAMその他の揮発メモリとして実現される。
ストレージ630は、プログラムおよびデータを永続的に保持する。ストレージ630は、例えば、ROM、ハードディスク装置、フラッシュメモリ、その他の不揮発記憶装置として実現される。ストレージ630に格納されるプログラムは、HMDシステム100において仮想空間を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、コンピュータ200との通信を実現するためのプログラムを含んでもよい。ストレージ630に格納されるデータは、仮想空間を規定するためのデータおよびオブジェクト等を含んでもよい。
別の局面において、ストレージ630は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに別の局面において、サーバ600に内蔵されたストレージ630の代わりに、外部の記憶装置に保存されているプログラムおよびデータを使用する構成が使用されてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のHMDシステム100が使用される場面において、プログラムやデータの更新を一括して行なうことが可能になる。
入出力インターフェイス640は、入出力機器との間で信号を通信する。ある局面において、入出力インターフェイス640は、USB、DVI、HDMIその他の端子を用いて実現される。入出力インターフェイス640は上述のものに限られない。
通信インターフェイス650は、ネットワーク2に接続されて、ネットワーク2に接続されているコンピュータ200と通信する。ある局面において、通信インターフェイス650は、例えば、LANその他の有線通信インターフェイス、あるいは、WiFi、Bluetooth、NFCその他の無線通信インターフェイスとして実現される。通信インターフェイス650は上述のものに限られない。
ある局面において、プロセッサ610は、ストレージ630にアクセスし、ストレージ630に格納されている1つ以上のプログラムをメモリ620にロードし、当該プログラムに含まれる一連の命令を実行する。当該1つ以上のプログラムは、サーバ610のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ610は、入出力インターフェイス640を介して、仮想空間を提供するための信号をコンピュータ200に送ってもよい。
[HMDの制御装置]
図10を参照して、HMD21の制御装置について説明する。ある実施の形態において、制御装置は周知の構成を有するコンピュータ200によって実現される。図10は、ある実施の形態に従うコンピュータ200をモジュール構成として表わすブロック図である。
図10に示されるように、コンピュータ200は、コントロールモジュール510と、レンダリングモジュール520と、メモリモジュール530と、通信制御モジュール540とを備える。ある局面において、コントロールモジュール510とレンダリングモジュール520とは、プロセッサ210によって実現される。別の局面において、複数のプロセッサ210がコントロールモジュール510とレンダリングモジュール520として作動してもよい。メモリモジュール530は、メモリ220またはストレージ230によって実現される。通信制御モジュール540は、通信インターフェイス250によって実現される。
コントロールモジュール510は、ユーザ5に提供される仮想空間11を制御する。コントロールモジュール510は、仮想空間11を表す仮想空間データを用いて、HMDシステム100における仮想空間11を規定する。仮想空間データは、例えば、メモリモジュール530に記憶されている。コントロールモジュール510が、仮想空間データを生成したり、サーバ600などから仮想空間データを取得するようにしたりしてもよい。
コントロールモジュール510は、オブジェクトを表すオブジェクトデータを用いて、仮想空間11にオブジェクトを配置する。オブジェクトデータは、例えば、メモリモジュール530に記憶されている。コントロールモジュール510が、オブジェクトデータを生成したり、サーバ600などからオブジェクトデータを取得するようにしたりしてもよい。オブジェクトは、例えば、ユーザ5の分身であるアバターオブジェクト、キャラクタオブジェクト、コントローラ300によって操作される仮想手などの操作オブジェクト、ゲームのストーリーの進行に従って配置される森、山その他を含む風景、街並み、動物等を含み得る。
コントロールモジュール510は、ネットワーク2を介して接続される他のコンピュータ200のユーザ5のアバターオブジェクトを仮想空間11に配置する。ある局面において、コントロールモジュール510は、ユーザ5のアバターオブジェクトを仮想空間11に配置する。ある局面において、コントロールモジュール510は、ユーザ5を含む画像に基づいて、ユーザ5を模したアバターオブジェクトを仮想空間11に配置する。別の局面において、コントロールモジュール510は、複数種類のアバターオブジェクト(例えば、動物を模したオブジェクトや、デフォルメされた人のオブジェクト)の中からユーザ5による選択を受け付けたアバターオブジェクトを仮想空間2に配置する。
コントロールモジュール510は、HMDセンサ410の出力に基づいてHMD120の傾きを特定する。別の局面において、コントロールモジュール510は、モーションセンサとして機能するセンサ190の出力に基づいてHMD120の傾きを特定する。コントロールモジュール510は、第1カメラ150および第2カメラ160が生成するユーザ5の顔の画像から、ユーザ5の顔を構成する器官(例えば、口,目,眉)を検出する。コントロールモジュール510は、検出した各器官の動き(形状)を検出する。
コントロールモジュール510は、注視センサ140からの信号に基づいて、ユーザ5の仮想空間11における視線を検出する。コントロールモジュール510は、検出したユーザ5の視線と仮想空間11の天球とが交わる視点位置(XYZ座標系における座標値)を検出する。より具体的には、コントロールモジュール510は、uvw座標系で規定されるユーザ5の視線と、仮想カメラ14の位置および傾きとに基づいて、視点位置を検出する。コントロールモジュール510は、検出した視点位置をサーバ600に送信する。別の局面において、コントロールモジュール510は、ユーザ5の視線を表す視線情報をサーバ600に送信するように構成されてもよい。係る場合、サーバ600が受信した視線情報に基づいて視点位置を算出し得る。
コントロールモジュール510は、HMDセンサ410が検出するHMD120の動きをアバターオブジェクトに反映する。例えば、コントロールモジュール510は、HMD120が傾いたことを検知して、アバターオブジェクトを傾けて配置する。コントロールモジュール510は、検出した顔器官の動作を、仮想空間11に配置されるアバターオブジェクトの顔に反映させる。コントロールモジュール510は、サーバ600から他のユーザ5の視線情報を受信し、当該他のユーザ5のアバターオブジェクトの視線に反映させる。ある局面において、コントロールモジュール510は、コントローラ300の動きをアバターオブジェクトや操作オブジェクトに反映する。この場合、コントローラ300は、コントローラ300の動きを検知するためのモーションセンサ、加速度センサ、または複数の発光素子(例えば、赤外線LED)などを備える。
コントロールモジュール510は、仮想空間11においてユーザ5の操作を受け付けるための操作オブジェクトを仮想空間11に配置する。ユーザ5は、操作オブジェクトを操作することにより、例えば、仮想空間11に配置されるオブジェクトを操作する。ある局面において、操作オブジェクトは、例えば、ユーザ5の手に相当する仮想手である手オブジェクト等を含み得る。ある局面において、コントロールモジュール510は、モーションセンサ420の出力に基づいて現実空間におけるユーザ5の手の動きに連動するように仮想空間11において手オブジェクトを動かす。ある局面において、操作オブジェクトは、アバターオブジェクトの手の部分に相当し得る。
コントロールモジュール510は、仮想空間11に配置されるオブジェクトのそれぞれが、他のオブジェクトと衝突した場合に、当該衝突を検出する。コントロールモジュール510は、例えば、あるオブジェクトのコリジョンエリアと、別のオブジェクトのコリジョンエリアとが触れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行なう。コントロールモジュール510は、オブジェクトとオブジェクトとが触れている状態から離れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行なう。コントロールモジュール510は、オブジェクトとオブジェクトとが触れている状態であることを検出することができる。例えば、コントロールモジュール510は、操作オブジェクトと、他のオブジェクトとが触れたときに、これら操作オブジェクトと他のオブジェクトとが触れたことを検出して、予め定められた処理を行なう。
ある局面において、コントロールモジュール510は、HMD120のモニタ130における画像表示を制御する。例えば、コントロールモジュール510は、仮想空間11に仮想カメラ14を配置する。コントロールモジュール510は、仮想空間11における仮想カメラ14の位置と、仮想カメラ14の傾き(向き)を制御する。コントロールモジュール510は、HMD120を装着したユーザ5の頭の傾きと、仮想カメラ14の位置に応じて、視界領域15を規定する。レンダリングモジュール510は、決定された視界領域15に基づいて、モニタ130に表示される視界画像17を生成する。レンダリングモジュール520により生成された視界画像17は、通信制御モジュール540によってHMD120に出力される。
コントロールモジュール510は、HMD120から、ユーザ5のマイク170を用いた発話を検出すると、当該発話に対応する音声データの送信対象のコンピュータ200を特定する。音声データは、コントロールモジュール510によって特定されたコンピュータ200に送信される。コントロールモジュール510は、ネットワーク2を介して他のユーザのコンピュータ200から音声データを受信すると、当該音声データに対応する音声(発話)をスピーカ180から出力する。
メモリモジュール530は、コンピュータ200が仮想空間11をユーザ5に提供するために使用されるデータを保持している。ある局面において、メモリモジュール540は、空間情報と、オブジェクト情報と、ユーザ情報とを保持している。
空間情報は、仮想空間11を提供するために規定された1つ以上のテンプレートを保持している。
オブジェクト情報は、仮想空間11を構成する複数のパノラマ画像13、仮想空間11にオブジェクトを配置するためのオブジェクトデータを含む。パノラマ画像13は、静止画像および動画像を含み得る。パノラマ画像13は、非現実空間の画像と現実空間の画像とを含み得る。非現実空間の画像としては、例えば、コンピュータグラフィックスで生成された画像が挙げられる。
ユーザ情報は、ユーザ5を識別するユーザIDを保持する。ユーザIDは、例えば、ユーザが使用するコンピュータ200に設定されるIP(Internet Protocol)アドレスまたはMAC(Media Access Control)アドレスであり得る。別の局面において、ユーザIDはユーザによって設定され得る。ユーザ情報は、HMDシステム100の制御装置としてコンピュータ200を機能させるためのプログラム等を含む。
メモリモジュール530に格納されているデータおよびプログラムは、HMD120のユーザ5によって入力される。あるいは、プロセッサ210が、当該コンテンツを提供する事業者が運営するコンピュータ(例えば、サーバ600)からプログラムあるいはデータをダウンロードして、ダウンロードされたプログラムあるいはデータをメモリモジュール530に格納する。
通信制御モジュール540は、ネットワーク2を介して、サーバ600その他の情報通信装置と通信し得る。
ある局面において、コントロールモジュール510及びレンダリングモジュール520は、例えば、ユニティテクノロジーズ社によって提供されるUnity(登録商標)を用いて実現され得る。別の局面において、コントロールモジュール510及びレンダリングモジュール520は、各処理を実現する回路素子の組み合わせとしても実現され得る。
コンピュータ200における処理は、ハードウェアと、プロセッサ410により実行されるソフトウェアとによって実現される。このようなソフトウェアは、ハードディスクその他のメモリモジュール530に予め格納されている場合がある。ソフトウェアは、CD−ROMその他のコンピュータ読み取り可能な不揮発性のデータ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、当該ソフトウェアは、インターネットその他のネットワークに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。このようなソフトウェアは、光ディスク駆動装置その他のデータ読取装置によってデータ記録媒体から読み取られて、あるいは、通信制御モジュール540を介してサーバ600その他のコンピュータからダウンロードされた後、記憶モジュールに一旦格納される。そのソフトウェアは、プロセッサ210によって記憶モジュールから読み出され、実行可能なプログラムの形式でRAMに格納される。プロセッサ210は、そのプログラムを実行する。
[HMDシステムの制御構造]
図11を参照して、HMDセット110の制御構造について説明する。図11は、ある実施の形態に従うHMDセット110において実行される処理の一部を表すシーケンスチャートである。
図11に示されるように、ステップS1110にて、コンピュータ200のプロセッサ210は、コントロールモジュール510として、仮想空間データを特定し、仮想空間11を定義する。
ステップS1120にて、プロセッサ210は、仮想カメラ14を初期化する。たとえば、プロセッサ210は、メモリのワーク領域において、仮想カメラ14を仮想空間11において予め規定された中心点12に配置し、仮想カメラ14の視線をユーザ5が向いている方向に向ける。
ステップS1130にて、プロセッサ210は、レンダリングモジュール520として、初期の視界画像を表示するための視界画像データを生成する。生成された視界画像データは、通信制御モジュール540によってHMD120に出力される。
ステップS1132にて、HMD120のモニタ130は、コンピュータ200から受信した視界画像データに基づいて、視界画像を表示する。HMD120を装着したユーザ5は、視界画像を視認すると仮想空間11を認識し得る。
ステップS1134にて、HMDセンサ410は、HMD120から発信される複数の赤外線光に基づいて、HMD120の位置と傾きを検知する。検知結果は、動き検知データとして、コンピュータ200に出力される。
ステップS1140にて、プロセッサ210は、HMD120の動き検知データに含まれる位置と傾きとに基づいて、HMD120を装着したユーザ5の視界方向を特定する。
ステップS1150にて、プロセッサ210は、アプリケーションプログラムを実行し、アプリケーションプログラムに含まれる命令に基づいて、仮想空間11にオブジェクトを配置する。
ステップS1160にて、コントローラ300は、モーションセンサ420から出力される信号に基づいて、ユーザ5の操作を検出し、その検出された操作を表す検出データをコンピュータ200に出力する。別の局面において、ユーザ5によるコントローラ300の操作は、ユーザ5の周囲に配置されたカメラからの画像に基づいて検出されてもよい。
ステップS1170にて、プロセッサ210は、コントローラ300から取得した検出データに基づいて、ユーザ5によるコントローラ300の操作を検出する。
ステップS1180にて、プロセッサ210は、ユーザ5によるコントローラ300の操作に基づく視界画像データを生成する。生成された視界画像データは、通信制御モジュール540によってHMD120に出力される。
ステップS1190にて、HMD120は、受信した視界画像データに基づいて視界画像を更新し、更新後の視界画像をモニタ130に表示する。
[アバターオブジェクト]
図12(A)、(B)を参照して、本実施の形態に従うアバターオブジェクトについて説明する。以下、HMDセット110A,110Bの各ユーザ5のアバターオブジェクトを説明する図である。以下、HMDセット110Aのユーザをユーザ5A、HMDセット110Bのユーザをユーザ5B、HMDセット110Cのユーザをユーザ5C、HMDセット110Dのユーザをユーザ5Dと表す。HMDセット110Aに関する各構成要素の参照符号にAが付され、HMDセット110Bに関する各構成要素の参照符号にBが付され、HMDセット110Cに関する各構成要素の参照符号にCが付され、HMDセット110Dに関する各構成要素の参照符号にDが付される。例えば、HMD120Aは、HMDセット110Aに含まれる。
図12(A)は、ネットワーク2において、各HMD120がユーザ5に仮想空間11を提供する状況を表す模式図である。コンピュータ200A〜200Dは、HMD120A〜120Dを介して、ユーザ5A〜5Dに、仮想空間11A〜11Dをそれぞれ提供する。図12(A)に示される例において、仮想空間11Aおよび仮想空間11Bは同じデータによって構成されている。換言すれば、コンピュータ200Aとコンピュータ200Bとは同じ仮想空間を共有していることになる。仮想空間11Aおよび仮想空間11Bには、ユーザ5Aのアバターオブジェクト6Aと、ユーザ5Bのアバターオブジェクト6Bとが存在する。仮想空間11Aにおけるアバターオブジェクト6Aおよび仮想空間11Bにおけるアバターオブジェクト6BがそれぞれHMD120を装着しているが、これは説明を分かりやすくするためのものであって、実際にはこれらのオブジェクトはHMD120を装着していない。
ある局面において、プロセッサ210Aは、ユーザ5Aの視界画像17Aを撮影する仮想カメラ14Aを、アバターオブジェクト6Aの目の位置に配置し得る。
図12(B)は、図12(A)におけるユーザ5Aの視界画像17Aを示す図である。視界画像17Aは、HMD120Aのモニタ130Aに表示される画像である。この視界画像17Aは、仮想カメラ14Aにより生成された画像である。視界画像17Aには、ユーザ5Bのアバターオブジェクト6Bが表示されている。特に図示はしていないが、ユーザ5Bの視界画像にも同様に、ユーザ5Aのアバターオブジェクト6Aが表示されている。
図12(B)の状態において、ユーザ5Aは仮想空間11Aを介してユーザ5Bと対話による通信(コミュニケーション)を図ることができる。より具体的には、マイク170Aにより取得されたユーザ5Aの音声は、サーバ600を介してユーザ5BのHMD17120Bに送信され、HMD120Bに設けられたスピーカ180Bから出力される。ユーザ5Bの音声は、サーバ600を介してユーザ5AのHMD120Aに送信され、HMD120Aに設けられたスピーカ180Aから出力される。
ユーザ5Bの動作(HMD120Bの動作およびコントローラ300Bの動作)は、プロセッサ210Aにより仮想空間11Aに配置されるアバターオブジェクト6Bに反映される。これにより、ユーザ5Aは、ユーザ5Bの動作を、アバターオブジェクト6Bを通じて認識できる。
図13は、本実施の形態に従うHMDシステム100において実行される処理の一部を表すシーケンスチャートである。図13においては、HMDセット110Dを図示していないが、HMDセット110Dについても、HMDセット110A、110B、110Cと同様に動作する。以下の説明でも、HMDセット110Aに関する各構成要素の参照符号にAが付され、HMDセット110Bに関する各構成要素の参照符号にBが付され、HMDセット110Cに関する各構成要素の参照符号にCが付され、HMDセット110Dに関する各構成要素の参照符号にDが付されるものとする。
ステップS1310Aにおいて、HMDセット110Aにおけるプロセッサ210Aは、仮想空間11Aにおけるアバターオブジェクト6Aの動作を決定するためのアバター情報を取得する。このアバター情報は、例えば、動き情報、フェイストラッキングデータ、および音声データ等のアバターに関する情報を含む。動き情報は、HMD120Aの位置および傾きの時間的変化を示す情報や、モーションセンサ420A等により検出されたユーザ5Aの手の動きを示す情報などを含む。フェイストラッキングデータは、ユーザ5Aの顔の各パーツの位置および大きさを特定するデータが挙げられる。フェイストラッキングデータは、ユーザ5Aの顔を構成する各器官の動きを示すデータや視線データが挙げられる。音声データは、HMD120Aのマイク170Aによって取得されたユーザ5Aの音声を示すデータが挙げられる。アバター情報には、アバターオブジェクト6A、あるいはアバターオブジェクト6Aに関連付けられるユーザ5Aを特定する情報や、アバターオブジェクト6Aが存在する仮想空間11Aを特定する情報等が含まれてもよい。アバターオブジェクト6Aやユーザ5Aを特定する情報としては、ユーザIDが挙げられる。アバターオブジェクト6Aが存在する仮想空間11Aを特定する情報としては、ルームIDが挙げられる。プロセッサ210Aは、上述のように取得されたアバター情報を、ネットワーク2を介してサーバ600に送信する。
ステップS1310Bにおいて、HMDセット110Bにおけるプロセッサ210Bは、ステップS1310Aにおける処理と同様に、仮想空間11Bにおけるアバターオブジェクト6Bの動作を決定するためのアバター情報を取得し、サーバ600に送信する。同様に、ステップS1310Cにおいて、HMDセット110Bにおけるプロセッサ210Bは、仮想空間11Cにおけるアバターオブジェクト6Cの動作を決定するためのアバター情報を取得し、サーバ600に送信する。
ステップS1320において、サーバ600は、HMDセット110A、HMDセット110B、およびHMDセット110Cのそれぞれから受信したプレイヤ情報を一旦記憶する。サーバ600は、各アバター情報に含まれるユーザIDおよびルームID等に基づいて、共通の仮想空間11に関連付けられた全ユーザ(この例では、ユーザ5A〜5C)のアバター情報を統合する。そして、サーバ600は、予め定められたタイミングで、統合したアバター情報を当該仮想空間11に関連付けられた全ユーザに送信する。これにより、同期処理が実行される。このような同期処理により、HMDセット110A、HMDセット110B、およびHMD11020Cは、互いのアバター情報をほぼ同じタイミングで共有することができる。
続いて、サーバ600から各HMDセット110A〜110Cに送信されたアバター情報に基づいて、各HMDセット110A〜110Cは、ステップS1330A〜S1330Cの処理を実行する。ステップS1330Aの処理は、図11におけるステップS1180の処理に相当する。
ステップS1330Aにおいて、HMDセット110Aにおけるプロセッサ210Aは、仮想空間11Aにおける他のユーザ5B,5Cのアバターオブジェクト6B、アバターオブジェクト6Cの情報を更新する。具体的には、プロセッサ210Aは、HMDセット110Bから送信されたアバター情報に含まれる動き情報に基づいて、仮想空間11におけるアバターオブジェクト6Bの位置および向き等を更新する。例えば、プロセッサ210Aは、メモリモジュール540に格納されたオブジェクト情報に含まれるアバターオブジェクト6Bの情報(位置および向き等)を更新する。同様に、プロセッサ210Aは、HMDセット110Cから送信されたアバター情報に含まれる動き情報に基づいて、仮想空間11におけるアバターオブジェクト6Cの情報(位置および向き等)を更新する。
ステップS1330Bにおいて、HMDセット110Bにおけるプロセッサ210Bは、ステップS1330Aにおける処理と同様に、仮想空間11Bにおけるユーザ5A,5Cのアバターオブジェクト6A,6Cの情報を更新する。同様に、ステップS1330Cにおいて、HMDセット110Cにおけるプロセッサ210Cは、仮想空間11Cにおけるユーザ5A,5Bのアバターオブジェクト6A,6Bの情報を更新する。
[コンピュータ200のモジュールの詳細構成]
図14を参照して、コンピュータ200のモジュール構成の詳細について説明する。図14は、ある実施の形態に従うコンピュータ200のモジュールの詳細構成を表わすブロック図である。図14に示されるように、コントロールモジュール510は、仮想オブジェクト生成モジュール1421、仮想カメラ制御モジュール1422、操作オブジェクト制御モジュール1423、アバターオブジェクト制御モジュール1424、動き検出モジュール1425、衝突検出モジュール1426、および仮想オブジェクト制御モジュール1427を備えている。
仮想オブジェクト生成モジュール1421は、各種の仮想オブジェクトを仮想空間11に生成する。ある局面において、仮想オブジェクトは、例えば、ゲームのストーリーの進行に従って配置される森、山その他を含む風景、動物等を含み得る。ある局面において、仮想オブジェクトは、アバターオブジェクト、操作オブジェクト、およびステージオブジェクト、UI(User Interface)オブジェクトを含み得る。
仮想カメラ制御モジュール1422は、仮想空間11における仮想カメラ14の挙動を制御する。仮想カメラ制御モジュール1422は、例えば、仮想空間11における仮想カメラ14の配置位置と、仮想カメラ14の向き(傾き)とを制御する。
操作オブジェクト制御モジュール1423は、仮想空間11においてユーザ5の操作を受け付けるための操作オブジェクトを制御する。ユーザ5は、操作オブジェクトを操作することによって、例えば、仮想空間11に配置される仮想オブジェクトを操作する。ある局面において、操作オブジェクトは、例えば、HMD120を装着したユーザ5の手に相当する手オブジェクト(仮想手)等を含み得る。ある局面において、操作オブジェクトは、後述するアバターオブジェクトの手の部分に相当し得る。
アバターオブジェクト制御モジュール1424は、HMDセンサ410が検出するHMD120の動きをアバターオブジェクトに反映する。例えば、アバターオブジェクト制御モジュール1424は、HMD120が傾いたことを検知して、アバターオブジェクトを傾けて配置するためのデータを生成する。ある局面において、アバターオブジェクト制御モジュール1424は、コントローラ300の動きをアバターオブジェクトに反映する。この場合、コントローラ300は、コントローラ300の動きを検知するためのモーションセンサ、加速度センサ、または複数の発光素子(例えば、赤外線LED)などを備える。例えば、アバターオブジェクト制御モジュール1424は、動き検出モジュール1425が検出した手の動きを、仮想空間11に配置される操作オブジェクト(アバターオブジェクトの手の一部である仮想手)の動きに反映させる。アバターオブジェクト制御モジュール1424は、動き検出モジュール1425が検出した顔器官の動作を、仮想空間11に配置されるアバターオブジェクトの顔に反映させる。つまり、アバターオブジェクト制御モジュール1424は、ユーザ5の顔の動作をアバターオブジェクトに反映する。
動き検出モジュール1425は、ユーザ5の動きを検出する。動き検出モジュール1425は、例えば、コントローラ300の出力に応じて、ユーザ5の手の動きを検出する。動き検出モジュール1425は、例えば、ユーザ5の身体に装着されるモーションセンサの出力に応じて、ユーザ5の身体の動きを検出する。動き検出モジュール1425は、ユーザ5の顔器官の動作を検出することもできる。
衝突検出モジュール1426は、仮想空間11に配置される仮想オブジェクトのそれぞれが、他の仮想オブジェクトと衝突した場合に、当該衝突を検出する。衝突検出モジュール1426は、例えば、ある仮想オブジェクトと、別の仮想オブジェクトとが触れたタイミングを検出することができる。衝突検出モジュール1426は、ある仮想オブジェクトと他の仮想オブジェクトとが触れている状態から離れたタイミングを検出することができる。衝突検出モジュール1426は、ある仮想オブジェクトと他の仮想オブジェクトとが触れている状態であることを検出することもできる。衝突検出モジュール1426は、例えば、操作オブジェクトと、他の仮想オブジェクトとが触れたときに、これら操作オブジェクトと他のオブジェクトとが触れたことを検出する。衝突検出モジュール1426は、これらの検出結果に基づいて、予め定められた処理を実行する。
仮想オブジェクト制御モジュール1427は、仮想空間11において、アバターオブジェクトを除く仮想オブジェクトの挙動を制御する。一例として、仮想オブジェクト制御モジュール1427は、仮想オブジェクトを変形させる。別の例として、仮想オブジェクト制御モジュール1427は、仮想オブジェクトの配置位置を変更する。別の例として、仮想オブジェクト制御モジュール1427は、仮想オブジェクトを移動させる。
さらに別の例として、仮想オブジェクト制御モジュール1427は、衝突検出モジュール1426によって仮想オブジェクトと操作オブジェクト(仮想手)とが触れていることが検出された状態において、コントローラ300が有する所定ボタンの押下が検出されると、当該仮想オブジェクトと操作オブジェクトとを関連付ける。このとき、アバターオブジェクト制御モジュール1424は、操作オブジェクト(仮想手)に、仮想オブジェクトを対象とする動作をさせるよう制御してもよい。対象とする動作の一例としては、例えば、持つ、握る、掴む、手の平に乗せる、つまむ等の動作であってもよい。
また、仮想オブジェクト制御モジュール1427は、仮想オブジェクトと操作オブジェクトとが関連付けられた状態において、動き検出モジュール1425によってユーザ5の手の動きが検出されると、操作オブジェクトの移動とともに、当該仮想オブジェクトを移動させるよう制御する。
また、仮想オブジェクト制御モジュール1427は、仮想オブジェクトと操作オブジェクトとが関連付けられた状態において、コントローラ300が有する所定ボタンの押下が検出されると、当該仮想オブジェクトと操作オブジェクトとを関連付けを解除する。このとき、アバターオブジェクト制御モジュール1424は、操作オブジェクト(仮想手)に、仮想オブジェクトを放す動作をさせるよう制御してもよい。
[ゲームシステムの構成]
図15は、本実施の形態に従うゲームシステム1500の構成の概略を表す図である。ゲームシステム1500は、複数のユーザにゲームを提供するためのシステムである。ゲームシステム1500は、サーバ600と、HMDセット110Bと、ユーザ端末800A,800C,800Dと、ネットワーク2とを含む。HMDセット110Bと、ユーザ端末800A,800C,800Dの各々とは、ネットワーク2を介してサーバ600と通信可能に構成される。以下、ユーザ端末800A,800C,800Dを総称して、ユーザ端末800とも言う。ゲームシステム1500を構成するユーザ端末800の数は、3つに限られず、2つ以下でも、4つ以上でもよい。
HMDセット110Bは、本発明におけるキャラクタ制御装置の一実施形態を構成する。以降、HMDセット110Bを、キャラクタ制御装置110Bとも記載する。キャラクタ制御装置110Bは、ゲームシステム1500に少なくとも1台設けられている。キャラクタ制御装置110Bは、サーバ600が提供するサービスを利用するユーザ端末800の数に応じて、複数台設けられていてもよい。1台のユーザ端末800に対して、1台のキャラクタ制御装置110Bが設けられていてもよい。複数台のユーザ端末800に対して、1台のキャラクタ制御装置110Bが設けられていてもよい。
なお、本実施形態では、本発明における第1キャラクタ制御装置及び第2キャラクタ制御装置として、同一のキャラクタ制御装置110Bを適用する例について説明する。
以下、HMDセット110Bのユーザをユーザ5Bと表す。また、ユーザ端末800Aのユーザをユーザ8A、ユーザ端末800Cのユーザをユーザ8C、ユーザ端末800Dのユーザをユーザ8Dと表す。ユーザ8A、8C、8Dを、総称してユーザ8とも記載する。ユーザ端末800Aに関する各構成要素の参照符号にAが付され、HMDセット110Bに関する各構成要素の参照符号にBが付され、ユーザ端末800Cに関する各構成要素の参照符号にCが付され、ユーザ端末800Dに関する各構成要素の参照符号にDが付される。
ゲームシステム1500は、ユーザ5Bに関連付けられるアバターオブジェクト6Bが仮想空間11Bにおいて実演する番組を、キャラクタ制御装置110Bから各ユーザ端末800にストリーミング配信するためのシステムである。なお、アバターオブジェクト6Bは、本発明における第1キャラクタ及び第2キャラクタの一例である。仮想空間11Bは、キャラクタ制御装置110B及び複数のユーザ端末800間で共有される。換言すると、仮想空間11A、11C、11Dは、それぞれ、仮想空間11Bに同期する。以降、仮想空間11A、B、C、Dを特に区別する必要がない場合は、単に「仮想空間11」とも記載する。ユーザ5Bは、キャラクタ制御装置110Bにおいてアバターオブジェクト6Bを制御することによって、アバターオブジェクト6Bの番組を進行させる。ユーザ8Aは、配信されるアバターオブジェクト6Bの番組を、ユーザ端末800Aを通じて視聴する。ユーザ8Cは、配信されるアバターオブジェクト6Bの番組を、ユーザ端末800Cを通じて視聴する。ユーザ8Dは、配信されるアバターオブジェクト6Bの番組を、ユーザ端末800Dを通じて視聴する。
<ゲームシステム1500を構成する各装置のハードウェア構成>
ゲームシステム1500を構成する各装置のハードウェア構成について説明する。サーバ600(コンピュータ、情報処理装置)は、ワークステーションまたはパーソナルコンピュータ等の汎用コンピュータであってよい。サーバ600のハードウェア構成については、図9を参照して説明した通りである。
キャラクタ制御装置110Bは、サーバ、デスクトップパソコン、ノートパソコン、または、タブレットなどのコンピュータ、および、これらを組み合わせたコンピュータ群であってもよい。キャラクタ制御装置110Bのハードウェア構成については、図2を参照して説明した通りである。ゲームシステム1500を構成する各装置が接続するネットワーク2は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution)、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が挙げられる。
図16は、ユーザ端末800のハードウェア構成を示す図である。ユーザ端末800(コンピュータ、情報処理装置)は、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。ユーザ端末800は、ゲームプレイに適したゲーム装置であってもよい。ユーザ端末800は図示の通り、プロセッサ810と、メモリ820と、ストレージ830と、通信インターフェース(IF)13と、入出力IF840と、タッチスクリーン870(表示部)と、カメラ860と、測距センサ880とを備える。ユーザ端末800が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、ユーザ端末800は、タッチスクリーン870に代えて、または、加えて、ユーザ端末800本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF840を備えていてもよい。
また、図16に示すように、ユーザ端末800は、1つ以上のコントローラ1020と通信可能に構成されることとしてもよい。コントローラ1020は、例えば、Bluetooth(登録商標)等の通信規格に従って、ユーザ端末800と通信を確立する。コントローラ1020は、1つ以上のボタン等を有していてもよく、該ボタン等に対するユーザ8の入力操作に基づく出力値をユーザ端末800へ送信する。また、コントローラ1020は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値をユーザ端末800へ送信する。
なお、ユーザ端末800がカメラ860および測距センサ880を備えることに代えて、または、加えて、コントローラ1020がカメラ860および測距センサ880を有していてもよい。
ユーザ端末800は、例えばゲーム開始時に、コントローラ1020を使用するユーザ8に、該ユーザ8の名前またはログインID等のユーザ識別情報を、該コントローラ1020を介して入力させることが望ましい。これにより、ユーザ端末800は、コントローラ1020とユーザ8とを紐付けることが可能となり、受信した出力値の送信元(コントローラ1020)に基づいて、該出力値がどのユーザ8のものであるかを特定することができる。
ユーザ端末800が複数のコントローラ1020と通信する場合、各コントローラ1020を各ユーザ8が把持することで、ネットワーク2を介してサーバ600などの他の装置と通信せずに、該1台のユーザ端末800でマルチプレイを実現することができる。また、各ユーザ端末800が無線LAN(Local Area Network)規格等の無線規格により互いに通信接続する(サーバ600を介さずに通信接続する)ことで、複数台のユーザ端末800によりローカルでマルチプレイを実現することもできる。1台のユーザ端末800によりローカルで上述のマルチプレイを実現する場合、ユーザ端末800は、さらに、サーバ600が備える後述する種々の機能の少なくとも一部を備えていてもよい。また、複数のユーザ端末800によりローカルで上述のマルチプレイを実現する場合、複数のユーザ端末800は、サーバ600が備える後述する種々の機能を分散して備えていてもよい。
なお、ローカルで上述のマルチプレイを実現する場合であっても、ユーザ端末800はサーバ600と通信を行ってもよい。例えば、あるゲームにおける成績または勝敗等のプレイ結果を示す情報と、ユーザ識別情報とを対応付けてサーバ600に送信してもよい。
また、コントローラ1020は、ユーザ端末800に着脱可能な構成であるとしてもよい。この場合、ユーザ端末800の筐体における少なくともいずれかの面に、コントローラ1020との結合部が設けられていてもよい。該結合部を介して有線によりユーザ端末800とコントローラ1020とが結合している場合は、ユーザ端末800とコントローラ1020とは、有線を介して信号を送受信する。
図16に示すように、ユーザ端末800は、外部のメモリカード等の記憶媒体1030の装着を、入出力IF840を介して受け付けてもよい。これにより、ユーザ端末800は、記憶媒体1030に記録されるプログラム及びデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、例えばゲームプログラムである。
ユーザ端末800は、サーバ600等の外部の装置と通信することにより取得したゲームプログラムをユーザ端末800のメモリ820に記憶してもよいし、記憶媒体1030から読み込むことにより取得したゲームプログラムをメモリ820に記憶してもよい。
以上で説明したとおり、ユーザ端末800は、該ユーザ端末800に対して情報を入力する機構の一例として、通信IF850、入出力IF840、タッチスクリーン870、カメラ860、測距センサ880、およびスピーカ890を備える。入力する機構としての上述の各部は、ユーザ8の入力操作を受け付けるように構成された操作部と捉えることができる。
例えば、操作部が、カメラ860および測距センサ880の少なくともいずれか一方で構成される場合、該操作部が、ユーザ端末800の近傍の物体1010を検出し、当該物体の検出結果から入力操作を特定する。一例として、物体1010としてのユーザ8の手、予め定められた形状のマーカーなどが検出され、検出結果として得られた物体1010の色、形状、動き、または、種類などに基づいて入力操作が特定される。より具体的には、ユーザ端末800は、カメラ860の撮影画像からユーザ8の手が検出された場合、該撮影画像に基づき検出されるジェスチャ(ユーザ8の手の一連の動き)を、ユーザ8の入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。
あるいは、操作部がタッチスクリーン870で構成される場合、ユーザ端末800は、タッチスクリーン870の入力部8701に対して実施されたユーザ8の操作をユーザ8の入力操作として特定し、受け付ける。あるいは、操作部が通信IF850で構成される場合、ユーザ端末800は、コントローラ1020から送信される信号(例えば、出力値)をユーザ8の入力操作として特定し、受け付ける。あるいは、操作部が入出力IF840で構成される場合、該入出力IF840と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザ8の入力操作として特定し、受け付ける。
<各装置のハードウェア構成要素>
プロセッサ810は、ユーザ端末800全体の動作を制御する。プロセッサ610は、サーバ600全体の動作を制御する。プロセッサ210は、キャラクタ制御装置110B全体の動作を制御する。プロセッサ810、20および30は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。
プロセッサ810はストレージ830からプログラムを読み出し、メモリ820に展開する。プロセッサ610はストレージ630からプログラムを読み出し、メモリ620に展開する。プロセッサ210は後述するストレージ230からプログラムを読み出し、後述するメモリ220に展開する。プロセッサ810、プロセッサ610およびプロセッサ210は展開したプログラムを実行する。
メモリ820、620および220は主記憶装置である。メモリ820、620および220は、ROM(Read Only Memory)およびRAM(Random Access Memory)等の記憶装置で構成される。メモリ820は、プロセッサ810が後述するストレージ830から読み出したプログラムおよび各種データを一時的に記憶することにより、プロセッサ810に作業領域を提供する。メモリ820は、プロセッサ810がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ620は、プロセッサ610がストレージ630から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ610に作業領域を提供する。メモリ620は、プロセッサ610がプログラムに従って動作している間に生成した各種データも一時的に記憶する。メモリ220は、プロセッサ210がストレージ230から読み出した各種プログラムおよびデータを一時的に記憶することにより、プロセッサ210に作業領域を提供する。メモリ220は、プロセッサ210がプログラムに従って動作している間に生成した各種データも一時的に記憶する。
本実施形態においてプログラムとは、ゲームをユーザ端末800により実現するためのゲームプログラムであってもよい。あるいは、該プログラムは、該ゲームをユーザ端末800とサーバ600との協働により実現するためのゲームプログラムであってもよい。
あるいは、該プログラムは、該ゲームをユーザ端末800とサーバ600とキャラクタ制御装置110Bとの協働により実現するためのゲームプログラムであってもよい。なお、ユーザ端末800とサーバ600との協働により実現されるゲームおよびユーザ端末800とサーバ600とキャラクタ制御装置110Bとの協働により実現されるゲームは、一例として、ユーザ端末800において起動されたブラウザ上で実行されるゲームであってもよい。あるいは、該プログラムは、該ゲームを複数のユーザ端末800の協働により実現するためのゲームプログラムであってもよい。また、各種データとは、ユーザ情報およびゲーム情報などのゲームに関するデータ、ならびに、ゲームシステム1500の各装置間で送受信する指示または通知を含んでいる。
ストレージ830、630および230は補助記憶装置である。ストレージ830、630および230は、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置で構成される。ストレージ830、630および230には、ゲームに関する各種データが格納される。
通信IF850は、ユーザ端末800における各種データの送受信を制御する。通信IF650は、サーバ600における各種データの送受信を制御する。通信IF250は、キャラクタ制御装置110Bにおける各種データの送受信を制御する。通信IF850、650および250は、例えば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。
入出力IF840は、ユーザ端末800がデータの入力を受け付けるためのインターフェースであり、またユーザ端末800がデータを出力するためのインターフェースである。入出力IF840は、USB(Universal Serial Bus)等を介してデータの入出力を行ってもよい。入出力IF840は、例えば、ユーザ端末800の物理ボタン、カメラ、マイク、または、スピーカ等を含み得る。サーバ600の入出力IF640は、サーバ600がデータの入力を受け付けるためのインターフェースであり、またサーバ600がデータを出力するためのインターフェースである。入出力IF640は、例えば、マウスまたはキーボード等の情報入力機器である入力部と、画像を表示出力する機器である表示部とを含み得る。キャラクタ制御装置110Bの入出力IF240は、キャラクタ制御装置110Bがデータの入力を受け付けるためのインターフェースであり、またキャラクタ制御装置110Bがデータを出力するためのインターフェースである。入出力IF240は、例えば、マウス、キーボード、スティック、レバー等の情報入力機器、液晶ディスプレイなどの画像を表示出力するディスプレイ430、および、周辺機器(HMD120、HMDセンサ410、モーションセンサ420、コントローラ300等)との間でデータを送受信するための接続部を含み得る。
ユーザ端末800のタッチスクリーン870は、入力部8701と表示部8702とを組み合わせた電子部品である入力部8701は、例えばタッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部8702は、例えば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。
入力部8701は、入力面に対しユーザ8の操作(主にタッチ操作、スライド操作、スワイプ操作、およびタップ操作等の物理的接触操作)が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部8701は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。
キャラクタ制御装置110Bのディスプレイ430は、ユーザ端末800のタッチスクリーン870と同様に、入力部と表示部とを組み合わせたタッチスクリーンによって構成されていてもよい。
図示していないが、ユーザ端末800は、該ユーザ端末800の保持姿勢を特定するための1以上のセンサを備えていてもよい。このセンサは、例えば、加速度センサ、または、角速度センサ等であってもよい。ユーザ端末800がセンサを備えている場合、プロセッサ810は、センサの出力からユーザ端末800の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。例えば、プロセッサ810は、ユーザ端末800が縦向きに保持されているときには、縦長の画像を表示部8702に表示させる縦画面表示としてもよい。一方、ユーザ端末800が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ810は、ユーザ端末800の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。
スピーカ890は、音声データに基づき音声を出力する。カメラ860は、イメージセンサ等を含み、レンズから入射する入射光を電気信号に変換することで撮影画像を生成する。
測距センサ880は、測定対象物までの距離を測定するセンサである。測距センサ880は、例えば、パルス変換した光を発する光源と、光を受ける受光素子とを含む。測距センサ880は、光源からの発光タイミングと、該光源から発せられた光が測定対象物にあたって反射されて生じる反射光の受光タイミングとにより、測定対象物までの距離を測定する。測距センサ880は、指向性を有する光を発する光源を有することとしてもよい。
ここで、ユーザ端末800が、カメラ860と測距センサ880とを用いて、ユーザ端末800の近傍の物体1010を検出した検出結果を、ユーザ8の入力操作として受け付ける例をさらに説明する。カメラ860および測距センサ880は、例えば、ユーザ端末800の筐体の側面に設けられてもよい。カメラ860の近傍に測距センサ880が設けられてもよい。カメラ860としては、例えば赤外線カメラを用いることができる。この場合、赤外線を照射する照明装置および可視光を遮断するフィルタ等が、カメラ860に設けられてもよい。これにより、屋外か屋内かにかかわらず、カメラ860の撮影画像に基づく物体の検出精度をいっそう向上させることができる。
プロセッサ810は、カメラ860の撮影画像に対して、例えば以下の(1)〜(5)に示す処理のうち1つ以上の処理を行ってもよい。(1)プロセッサ810は、カメラ860の撮影画像に対し画像認識処理を行うことで、該撮影画像にユーザ8の手が含まれているか否かを特定する。プロセッサ810は、上述の画像認識処理において採用する解析技術として、例えばパターンマッチング等の技術を用いてよい。(2)また、プロセッサ810は、ユーザ8の手の形状から、ユーザ8のジェスチャを検出する。プロセッサ810は、例えば、撮影画像から検出されるユーザ8の手の形状から、ユーザ8の指の本数(伸びている指の本数)を特定する。プロセッサ810はさらに、特定した指の本数から、ユーザ8が行ったジェスチャを特定する。例えば、プロセッサ810は、指の本数が5本である場合、ユーザ8が「パー」のジェスチャを行ったと判定する。また、プロセッサ810は、指の本数が0本である(指が検出されなかった)場合、ユーザ8が「グー」のジェスチャを行ったと判定する。また、プロセッサ810は、指の本数が2本である場合、ユーザ8が「チョキ」のジェスチャを行ったと判定する。(3)プロセッサ810は、カメラ860の撮影画像に対し、画像認識処理を行うことにより、ユーザ8の指が人差し指のみ立てた状態であるか、ユーザ8の指がはじくような動きをしたかを検出する。(4)プロセッサ810は、カメラ860の撮影画像の画像認識結果、および、測距センサ880の出力値等の少なくともいずれか1つに基づいて、ユーザ端末800の近傍の物体1010(ユーザ8の手など)とユーザ端末800との距離を検出する。例えば、プロセッサ810は、カメラ860の撮影画像から特定されるユーザ8の手の形状の大小により、ユーザ8の手がユーザ端末800の近傍(例えば所定値未満の距離)にあるのか、遠く(例えば所定値以上の距離)にあるのかを検出する。なお、撮影画像が動画の場合、プロセッサ810は、ユーザ8の手がユーザ端末800に接近しているのか遠ざかっているのかを検出してもよい。(5)カメラ860の撮影画像の画像認識結果等に基づいて、ユーザ8の手が検出されている状態で、ユーザ端末800とユーザ8の手との距離が変化していることが判明した場合、プロセッサ810は、ユーザ8が手をカメラ860の撮影方向において振っていると認識する。カメラ860の撮影範囲よりも指向性が強い測距センサ880において、物体が検出されたりされなかったりする場合に、プロセッサ810は、ユーザ8が手をカメラの撮影方向に直交する方向に振っていると認識する。
このように、プロセッサ810は、カメラ860の撮影画像に対する画像認識により、ユーザ8が手を握りこんでいるか否か(「グー」のジェスチャであるか、それ以外のジェスチャ(例えば「パー」)であるか)を検出する。また、プロセッサ810は、ユーザ8の手の形状とともに、ユーザ8がこの手をどのように移動させているかを検出する。また、プロセッサ810は、ユーザ8がこの手をユーザ端末800に対して接近させているのか遠ざけているのかを検出する。このような操作は、例えば、マウスまたはタッチパネルなどのポインティングデバイスを用いた操作に対応させることができる。ユーザ端末800は、例えば、ユーザ8の手の移動に応じて、タッチスクリーン870においてポインタを移動させ、ユーザ8のジェスチャ「グー」を検出する。この場合、ユーザ端末800は、ユーザ8が選択操作を継続中であると認識する。選択操作の継続とは、例えば、マウスがクリックされて押し込まれた状態が維持されること、または、タッチパネルに対してタッチダウン操作がなされた後タッチされた状態が維持されることに対応する。また、ユーザ端末800は、ユーザ8のジェスチャ「グー」が検出されている状態で、さらにユーザ8が手を移動させると、このような一連のジェスチャを、スワイプ操作(またはドラッグ操作)に対応する操作として認識することもできる。また、ユーザ端末800は、カメラ860の撮影画像によるユーザ8の手の検出結果に基づいて、ユーザ8が指をはじくようなジェスチャを検出した場合に、当該ジェスチャを、マウスのクリックまたはタッチパネルへのタップ操作に対応する操作として認識してもよい。
<ゲーム概要>
実施形態1に係るゲームシステム1500が実行するゲーム(以下、本ゲーム)は、一例として、1以上のキャラクタを登場させて、そのキャラクタの少なくとも1つを動作させるゲームパートを含む。該ゲームに登場するキャラクタは、プレイヤキャラクタ(以下、PC)であってもよいし、ノンプレイヤキャラクタ(以下、NPC)であってもよい。PCは、ユーザ8が直接操作可能なキャラクタである。NPCは、ゲームプログラムおよび動作指図データにしたがって動作する、すなわち、ユーザ8が直接操作できないキャラクタである。以下では、両者を特に区別する必要がない場合には、総称として、“キャラクタ”を用いる。
本ゲームは、キャラクタ制御装置110B及び複数のユーザ端末800の間で仮想空間11を共有し、キャラクタ制御装置110Bのユーザ5Bの操作に応じてアバターオブジェクト6Bが動作するライブ配信パートを含む。ここで、ユーザ5Bの操作とは、ユーザ5Bの動きに応じてHMD120、HMDセンサ410、モーションセンサ420、コントローラ300を介して入力される情報を含む。また、ユーザ5Bの操作とは、ユーザ5Bによるコントローラ300が有するボタンに対する操作を含む。その他、ユーザ5Bの操作とは、コンピュータ200に接続された各種の入力装置(図示せず)を介して入力される操作を含んでいてもよい。
本ゲームでは、仮想空間11として、第1仮想空間11_1、及び、第1仮想空間11_1とは異なる第2仮想空間11_2が提供される。第1仮想空間11_1及び第2仮想空間11_2の詳細については後述する。
ライブ配信パートでは、例えば、キャラクタの動作を表す動作指図データが、ユーザ5Bの操作に応じてキャラクタ制御装置110Bで生成される。また、当該動作指図データが、本ゲームを実行中のユーザ端末800に対して、該ユーザ端末800以外の他の装置から、任意のタイミングで供給される。当該動作指図データは、例えば、キャラクタ制御装置110Bからサーバ600を介してユーザ端末800に供給されてもよい。ユーザ端末800は、該動作指図データを受信したことをトリガにして、該動作指図データを解析する(レンダリングする)。ライブ配信パートとは、ユーザ端末800が、上述の解析された動作指図データにしたがって動作するキャラクタを、ユーザ8にリアルタイムに提示するパートである。これにより、ユーザ8は、キャラクタが本当に存在するかのような現実感を覚えることができ、より一層ゲームの世界に没入して本ゲームに興じることができる。
本ゲームは、複数のプレイパートで構成されていてもよい。この場合、1つのキャラクタが、あるパートでは、PCであって、別のパートでは、NPCである、というように、パートごとにキャラクタの性質が異なっていてもよい。
ゲームシステム1500において実行されるゲームのジャンルは、特定のジャンルに限られない。ゲームシステム1500は、あらゆるジャンルのゲームを実行し得る。例えば、テニス、卓球、ドッジボール、野球、サッカーおよびホッケーなどのスポーツを題材としたゲーム、パズルゲーム、クイズゲーム、RPG(Role-Playing Game)、アドベンチャーゲーム、シューティングゲーム、シミュレーションゲーム、育成ゲーム、ならびに、アクションゲームなどであってもよい。
また、本ゲームのプレイ形態は、特定のプレイ形態に限られない。ゲームシステム1500は、あらゆるプレイ形態のゲームを実行し得る。例えば、単一のユーザ8によるシングルプレイゲーム、および、複数のユーザ8によるマルチプレイゲーム、また、マルチプレイゲームの中でも、複数のユーザ8が対戦する対戦ゲーム、および、複数のユーザ8が協力する協力プレイゲームなどであってもよい。
なお、以下の説明において、本発明における配信端末、第1配信端末、第2配信端末を、一例として、キャラクタ制御装置、第1キャラクタ制御装置、第2キャラクタ制御装置とも記載している。また、本発明における配信者の一例としてユーザ5Bを適用し、本発明における第1配信者、第2配信者を、一例として、第1ユーザ、第2ユーザとも記載している。また、本発明における視聴端末を、一例として、ユーザ端末とも記載している。また、本発明における視聴者の一例としてユーザ8を適用している。また、本発明におけるアバターオブジェクト、第1アバターオブジェクト、第2アバターオブジェクトを、一例として、キャラクタ、第1キャラクタ、第2キャラクタとも記載している。また、本発明における第1ゲームパートを、一例として、ライブゲーム進行パートとも記載している。また、本発明における第2ゲームパートを、一例として、第3プレイパートとも記載している。また、本発明における第3ゲームパートを、一例として、ライブ配信パートとも記載している。また、本発明における動作情報を、一例として、動作指図データとも記載している。また、本発明における第1動作情報の一例として、ライブゲーム進行パートにおいて送受信される動作指図データを適用している。また、本発明における第1動作情報が示す動作を、一例として、第1動作又は第2動作とも記載している。また、本発明における第2動作情報の一例として、ライブ配信パートにおいて送受信される動作指図データを適用している。また、本発明における「現在の状態に関連付けられた第1条件」の一例として、第1ミニゲームにおける第1条件及び第2ミニゲームにおける第2条件を適用している。また、本発明における「視聴者の操作に基づく第2条件」の一例として、第3プレイパートにおける第3課題を適用している。また、本発明における「前記選択済みであることが認識可能な状態の前記第1UIオブジェクトの組み合わせが第1条件」の一例として、第2ミニゲームの一例としてのビンゴゲームにおいてビンゴが成立するとの条件を適用している。また、本発明における「前記特定した選択肢オブジェクトと、前記視聴者によって選択された第1UIオブジェクトとの組み合わせが第2条件」の一例として、第1ミニゲームの一例としてのジャンケンゲームにおけるジャンケンの勝敗に関わる条件を適用している。また、本発明における第1オブジェクトを、一例として、所定のオブジェクト又は進行ボタンオブジェクトとも記載している。また、本発明における第2オブジェクトを、一例として、「第1状態に応じた第1オブジェクト」、又は、「第2状態に応じた第2オブジェクト」とも記載している。また、本発明における第3オブジェクトを、一例として、第3オブジェクト又は第4オブジェクトとも記載している。
<ゲームシステム1500の機能的構成>
図17は、ゲームシステム1500に含まれるユーザ端末800、サーバ600およびキャラクタ制御装置110Bの機能的構成を示すブロック図である。ユーザ端末800、サーバ600およびキャラクタ制御装置110Bのそれぞれは、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。
ユーザ端末800は、ユーザ8の入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末800は、プロセッサ810、メモリ820、ストレージ830、通信IF850、および入出力IF840等の協働によって、制御部8100および記憶部8200として機能する。
サーバ600は、各ユーザ端末800と通信して、ユーザ端末800がゲームを進行させるのを支援する機能を有する。例えば、ユーザ端末800が本ゲームに係るアプリケーションを始めてダウンロードするときには、初回ゲーム開始時にユーザ端末800に記憶させておくべきデータをユーザ端末800に提供する。例えば、サーバ600は、キャラクタを動作させるための動作指図データをユーザ端末800に送信する。動作指図データは、予め、モデルなどのアクターの動きを取り込んだモーションキャプチャデータを含んでいてもよいし、声優などのアクターの音声を録音した音声データを含んでいてもよいし、キャラクタを動作させるための入力操作の履歴を示す操作履歴データを含んでいてもよいし、上述の一連の入力操作に対応付けられたコマンドを時系列に並べたモーションコマンド群を含んでいてもよい。本ゲームがマルチプレイゲームである場合には、サーバ600は、ゲームに参加する各ユーザ端末800と通信して、ユーザ端末800同士のやりとりを仲介する機能および同期制御機能を有していてもよい。また、サーバ600は、ユーザ端末800とキャラクタ制御装置110Bとを仲介する機能を備えている。これにより、キャラクタ制御装置110Bは、適時に、宛先を誤ることなく、ユーザ端末800または複数のユーザ端末800のグループに対して動作指図データを供給することが可能となる。サーバ600は、プロセッサ610、メモリ620、ストレージ630、通信IF650、および入出力IF640等の協働によって、制御部6100および記憶部6200として機能する。
キャラクタ制御装置110Bは、ユーザ端末800におけるキャラクタの動作を指示するための動作指図データを生成し、ユーザ端末800に供給する機能を有する。キャラクタ制御装置110Bは、プロセッサ210、メモリ220、ストレージ230、通信IF250、および入出力IF240等の協働によって、制御部2100(コントロールモジュール510、レンダリングモジュール520)および記憶部2200(メモリモジュール530)として機能する。
記憶部8200は、ゲームプログラム831を格納する。記憶部6200は、ゲームプログラム631を格納する。記憶部2200は、ゲームプログラム231を格納する。ゲームプログラム831は、ユーザ端末800が実行するゲームプログラムである。ゲームプログラム631は、サーバ600が実行するゲームプログラムである。ゲームプログラム231は、キャラクタ制御装置110Bが実行するゲームプログラムである。ゲームプログラム831、631、231に基づいて各装置が協同して動作することにより、ゲームシステム1500に係るゲームが実現される。なお、ゲームプログラム831、231は、記憶部6200に格納され、記憶部8200、2200にそれぞれダウンロードされる構成でもよい。
また、記憶部8200、6200および2200は、それぞれ、ゲーム情報132およびユーザ情報133を格納する。ゲーム情報132は、制御部8100、6100および2100が、ゲームプログラム831、631、231をそれぞれ実行する際に参照するデータである。ユーザ情報133は、ユーザ8のアカウントに関するデータである。記憶部6200および2200において、ゲーム情報132およびユーザ情報133は、ユーザ端末800ごとに格納されている。
(サーバ600の機能的構成)
制御部6100は、記憶部6200に格納されたゲームプログラム631を実行することにより、サーバ600を統括的に制御する。例えば、制御部6100は、ユーザ端末800に各種データおよびプログラム等を送信する。制御部6100は、ゲーム情報もしくはユーザ情報の一部または全部をユーザ端末800から受信する。ゲームがマルチプレイゲームである場合には、制御部6100は、ユーザ端末800からマルチプレイの同期の要求を受信して、同期のためのデータをユーザ端末800に送信してもよい。また、制御部6100は、必要に応じて、ユーザ端末800およびキャラクタ制御装置110Bと通信して、情報の送受信を行う。
制御部6100は、ゲームプログラム631の記述に応じて、進行支援部6101および共有支援部6102として機能する。制御部6100は、実行するゲームの性質に応じて、ユーザ端末800におけるゲームの進行を支援するために、図示しないその他の機能ブロックとしても機能することができる。
進行支援部6101は、ユーザ端末800と通信し、ユーザ端末800が、本ゲームに含まれる各種パートを進行するための支援を行う。例えば、進行支援部6101は、ユーザ端末800が、ゲームを進行させるとき、該ゲームを進行させるために必要な情報をユーザ端末800に提供する。
共有支援部6102は、複数のユーザ端末800及びキャラクタ制御装置110Bと通信し、これらの装置間でゲームの進行及び仮想空間11を共有するための支援を行う。また、共有支援部6102は、オンラインのユーザ端末800とキャラクタ制御装置110Bとをマッチングする機能を有していてもよい。これにより、ユーザ端末800とキャラクタ制御装置110Bとの間の情報の送受信が円滑に実施される。
(ユーザ端末800の機能的構成)
制御部8100は、記憶部8200に格納されたゲームプログラム831を実行することにより、ユーザ端末800を統括的に制御する。例えば、制御部8100は、ゲームプログラム831およびユーザ8の操作にしたがって、ゲームを進行させる。また、制御部8100は、ゲームを進行させている間、必要に応じて、サーバ600およびキャラクタ制御装置110Bと通信して、情報の送受信を行う。
制御部8100は、ゲームプログラム831の記述に応じて、操作受付部8101、表示制御部8102、ユーザインターフェース(以下、UI)制御部113、アニメーション生成部8104、ゲーム進行部8105、仮想空間制御部8106、および進捗情報生成部8107として機能する。制御部8100は、実行するゲームの性質に応じて、ゲームを進行させるために、図示しないその他の機能ブロックとしても機能することができる。
操作受付部8101は、入力部8701に対するユーザ8の入力操作を検知し受け付ける。操作受付部8101は、タッチスクリーン870およびその他の入出力IF14を介したコンソールに対してユーザ8が及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部8100の各要素に出力する。
例えば、操作受付部8101は、入力部8701に対する入力操作を受け付け、該入力操作の入力位置の座標を検出し、該入力操作の種類を特定する。操作受付部8101は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部8101は、連続して検知されていた入力が途切れると、タッチスクリーン870から接触入力が解除されたことを検知する。
UI制御部8103は、UIを構築するために表示部8702に表示させるUIオブジェクトを制御する。UIオブジェクトは、ユーザ8が、ゲームの進行上必要な入力をユーザ端末800に対して行うためのツール、または、ゲームの進行中に出力される情報をユーザ端末800から得るためのツールである。UIオブジェクトは、これには限定されないが、例えば、アイコン、ボタン、リスト、メニュー画面などである。
アニメーション生成部8104は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。例えば、アニメーション生成部8104は、キャラクタがまるでそこにいるかのように動いたり、口を動かしたり、表情を変えたりする様子を表現したアニメーション等を生成してもよい。
表示制御部8102は、タッチスクリーン870の表示部8702に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部8102は、アニメーション生成部8104によって生成されたアニメーションを含むゲーム画面を表示部8702に表示してもよい。また、表示制御部8102は、UI制御部8103によって制御される上述のUIオブジェクトを、該ゲーム画面に重畳して描画してもよい。
仮想空間制御部8106は、キャラクタ制御装置110Bとの間で仮想空間11を共有するための各種の制御を行う。図18は、仮想空間制御部8106の詳細な構成を示す図である。図18に示すように、仮想空間制御部8106は、仮想オブジェクト生成モジュール8121と、仮想カメラ制御モジュール8122と、アバターオブジェクト制御モジュール8124と、仮想オブジェクト制御モジュール8127とを含む。
仮想オブジェクト生成モジュール8121は、図14を参照して説明した仮想オブジェクト生成モジュール1421と同様に構成される。ここで、ユーザ端末800において生成される仮想オブジェクトは、キャラクタ制御装置110Bにおいて生成される仮想オブジェクトに同期する。ただし、各仮想オブジェクトを同期するか否かは、仮想オブジェクト毎に定められていてもよい。例えば、キャラクタ制御装置110Bで生成された仮想オブジェクトのうち、ユーザ端末800では生成されないものがあってもよい。また、キャラクタ制御装置110Bで生成された仮想オブジェクトのうち、ユーザ端末800において異なる表示形態で生成されるものがあってもよい。表示形態とは、例えば、色、透明度等であってもよいが、これらに限られない。
仮想カメラ制御モジュール8122は、図14を参照して説明した仮想カメラ制御モジュール1422と同様に構成される。ここで、ユーザ端末800A、800C、800Dにおいて実現される仮想空間11A、11C、11Dに配置される仮想カメラ14A、14C、14Dは、キャラクタ制御装置110Bにおいて実現される仮想空間11Bに配置される仮想カメラ14Bとは異なるものである。つまり、キャラクタ制御装置110B及びユーザ端末800間で共有される仮想空間11の視野画像は、キャラクタ制御装置110B及びユーザ端末800間で異なり得る。
ユーザ端末800A、800C、800Dにおいて、仮想カメラ14A、14C、14Dの位置及び方向は、ユーザ8A、8C、8Dによって操作可能であってもよいし、操作不能であってもよい。また、操作不能である場合、仮想カメラ14A、14C、14Dの位置及び方向は、同一であってもよい。この場合、複数のユーザ8は、各ユーザ端末800を通して、共通の視野画像を視聴することになる。つまり、この場合、複数のユーザ8は、共通の仮想カメラで撮影された視野画像(ライブ映像)を視聴することができる。本実施形態では、仮想カメラ14A、14C、14Dの位置及び方向がユーザ8A、8C、8Dによって操作不能であり、複数のユーザ8が共通の視野画像を視聴する例を中心に説明する。
以降、キャラクタ制御装置110Bにおいて第1仮想空間11_1に配置される仮想カメラ14を、仮想カメラ14_B1と記載し、第2仮想空間11_2に配置される仮想カメラ14を、仮想カメラ14_B2と記載する。また、ユーザ端末800A、800C、800Dにおいて第1仮想空間11_1に配置される仮想カメラ14を、仮想カメラ14_A1と記載し、第2仮想空間11_2に配置される仮想カメラ14を、仮想カメラ14_A2と記載する。また、仮想カメラ14_B1、14_B2、14_A1、14_A2それぞれに基づく視野画像を、視野画像1400_B1、1400_B2、1400_A1、1400_A2と記載する。
アバターオブジェクト制御モジュール8124は、図14を参照して説明したアバターオブジェクト制御モジュール1424に対して、HMD120の動き又はコントローラ300の動きに応じて動作することに替えて、動作指図データに応じて動作する点が異なる他は、同様に構成される。動作指図データは、キャラクタ制御装置110BにおいてHMD120の動き又はコントローラ300の動きに応じて生成され、ユーザ端末800に配信される。
仮想オブジェクト制御モジュール8127は、図14を参照して説明した仮想オブジェクト制御モジュール1427に対して、動作指図データに応じて動作する点が異なる他は、同様に構成される。動作指図データは、キャラクタ制御装置110Bにおける仮想オブジェクトの挙動を表すようキャラクタ制御装置110Bにおいて生成され、ユーザ端末800に配信される。
このように、仮想空間制御部8106は、動作指図データを解析して(レンダリングして)、解析結果に基づいてアバターオブジェクト6B(第1キャラクタ、第2キャラクタ)又は仮想オブジェクトを動作させる。本実施形態では、仮想空間制御部8106は、キャラクタ制御装置110Bによって供給された動作指図データが通信IF33を介して受信されたことをトリガにして、該データに基づいてアバターオブジェクト6B又は仮想オブジェクトを動作させる。これにより、リアルタイムで動作するキャラクタ及び仮想オブジェクトを、ユーザ8に見せることが可能となる。
また、仮想空間制御部8106は、当該ユーザ端末800を含む複数のユーザ端末800及びキャラクタ制御装置110Bの間で共有される第1仮想空間11_1に、アバターオブジェクト6Bと、仮想カメラ14_A1と、複数の選択肢を表す仮想オブジェクトとを配置する。
また、仮想空間制御部8106は、複数のユーザ端末800のうち所定条件が満たされたユーザ端末800及びキャラクタ制御装置110Bの間で共有される第2仮想空間11_2に、アバターオブジェクト6Bと、仮想カメラ14_A2とを配置する。本実施形態では、本発明において第2仮想空間11_2に配置される第2キャラクタの一例として、第1空間に配置される第1キャラクタと同じアバターオブジェクト6Bを適用する例について説明する。なお、当該ユーザ端末800が第2仮想空間11_2を共有するのは、当該ユーザ端末800において所定条件が満たされた場合である。所定条件の詳細については後述する。
また、仮想空間制御部8106は、第1仮想空間11_1に配置された仮想カメラ14_A1の設定に従った視野画像1400_A1(第1視野画像)を、表示部8702に表示する。
また、仮想空間制御部8106は、第2仮想空間11_2に配置された仮想カメラ14_A2の設定に従った視野画像1400_A2(第2視野画像)を、表示部8702に表示する。なお、当該ユーザ端末800において、第2視野画像が表示されるのは、当該ユーザ端末800において所定条件が満たされた場合である。
つまり、第1仮想空間11_1の第1視野画像は、複数のユーザ端末800のユーザ8によって視聴可能であるのに対して、第2仮想空間11_2の第2視野画像は、所定条件が満たされたユーザ端末800のユーザ8によってのみ視聴可能である。
以降、第1仮想空間11_1の第1視野画像を視聴することを、第1仮想空間11_1に参加する、とも記載する。また、第2仮想空間11_2の第2視野画像を視聴することを、第2仮想空間11_2に参加する、とも記載する。
また、仮想空間制御部8106は、キャラクタ制御装置110Bのユーザ5Bの操作に基づいて、複数の選択肢の何れかを選択する動作をアバターオブジェクト6Bに行わせる。
ゲーム進行部8105は、操作受付部8101を介して入力されるユーザ8の入力操作、及び、キャラクタ制御装置110Bのユーザ5Bによる入力操作の何れか又は両方に応じて、ゲームを進行させる。ゲーム進行部8105は、ゲームの進行中、1以上のキャラクタを登場させ、該キャラクタを動作させる。ゲーム進行部8105は、キャラクタを、ゲームプログラム831にしたがって動作させてもよいし、ユーザ8の入力操作にしたがって動作させてもよいし、キャラクタ制御装置110Bのユーザ5Bの操作に応じて生成される動作指図データにしたがって動作させてもよい。
また、ゲーム進行部8105は、キャラクタ制御装置110Bのユーザ5Bの操作に応じて第1仮想空間11_1においてアバターオブジェクト6Bが行う第1動作に基づいて、ゲームを第1状態で進行させる。第1動作及び第1状態の詳細については後述する。
また、ゲーム進行部8105は、ユーザ5Bの操作に応じて第1仮想空間11_1においてアバターオブジェクト6Bが行う所定の動作に基づいて、ゲームの進行を、第1状態から、当該第1状態と異なる第2状態に遷移させる。第2状態の詳細については後述する。
所定の動作とは、例えば、所定の仮想オブジェクトを対象とする動作であってもよい。対象とする動作とは、例えば、押す、持つ、指し示す、回す、足で踏む等の動作であってもよいが、これに限られない。所定の仮想オブジェクトとは、例えば、押す動作の対象となるボタン型オブジェクト、回す動作の対象となるダイヤル型オブジェクト等であってもよいが、これらに限られない。
また、ゲーム進行部8105は、ユーザ5Bの操作に応じて第1仮想空間11_1においてアバターオブジェクト6Bが行う第2動作に基づいて、ゲームを第2状態で進行させる。第2動作の詳細については後述する。
ここで、第1状態及び第2状態とは、例えば、進行しているゲームの種類に応じた状態であってもよい。例えば、第1状態及び第2状態とは、仮想空間11の状態、表示部8702の状態、実行されるべきゲーム処理の適用状態等を含んでいてもよい。具体的には、仮想空間11は、ゲームの種類に応じた仮想オブジェクトが配置された状態を有する。また、表示部8702は、ゲームの種類に応じたUIオブジェクトが表示された状態を有する。また、アバターオブジェクト6Bの動作又はUIオブジェクトに対する操作に応じて、ゲームの種類に応じたゲーム処理が適用される状態を有する。また、第1状態及び第2状態は、ゲームの進行に係るその他の状態を含んでいてもよい。
以降、第1状態で進行するゲームを、第1ミニゲームとも記載し、第2状態で進行するゲームを、第2ミニゲームとも記載する。なお、本ゲームを進行させ得る状態の種類は、2つに限らず、3つ以上であってもよい。換言すると、本ゲームには、第1ミニゲーム、第2ミニゲームの他に、ミニゲームが含まれていてもよい。なお、第2ミニゲームは、本発明における第1プレイパートの一例に相当する。また、第1ミニゲームは、本発明における第2プレイパートの一例に相当する。
第1ミニゲームには、ユーザ8のプレイによって満たすことが可能な第1条件が設定される。第1条件は、本発明における第2課題の一例に相当する。第2ミニゲームには、ユーザ8のプレイによって満たすことが可能な第2条件が設定される。第2条件は、本発明における第1課題の一例に相当する。各ミニゲームは、アバターオブジェクト6Bの動作と、ユーザ8の操作とに応じて進行する。
また、第1動作及び第2動作とは、例えば、進行しているゲームの種類に応じたアバターオブジェクト6Bの動作であってもよい。例えば、第1ミニゲームがジャンケンゲームであれば、第1動作は、アバターオブジェクト6Bがグー・チョキ・パーに対応する仮想オブジェクトを選択する動作であってもよい。また、第2ミニゲームがビンゴゲームであれば、第2動作は、アバターオブジェクト6Bがビンゴボールに対応する仮想オブジェクトを選択する動作であってもよい。
また、第1状態において、ゲームの種類に応じた第1動作は、複数種類あってもよい。例えば、第1状態において、仮想オブジェクトを選択するアバターオブジェクト6Bの動作と、勝敗を判定するための仮想ボタンを押すアバターオブジェクト6Bの動作とが、それぞれ第1動作とみなされてもよい。また、第2状態においても、ゲームの種類に応じた第2動作は、複数種類あってもよい。また、第1動作の何れかと、第2動作の何れかとが、同一の動作であってもよいし、異なる動作であってもよい。例えば、第1状態において、ゲームの勝敗を判定するための仮想ボタンを押す第1動作があり、第2状態において、ゲームの勝敗を判定するための仮想ボタンを押す第2動作があってもよい。
また、ゲーム進行部8105は、アバターオブジェクト6Bが複数の選択肢の何れかを選択する動作に応じて、当該選択する動作による選択の結果に応じたゲーム処理を実行する。ここで、仮想空間11には、複数の選択肢を表す仮想オブジェクトが配置されている。
また、ゲーム進行部8105は、上述した所定条件が満たされなかった場合に、当該ユーザ端末800のユーザ8によって入力される情報と、当該所定条件が満たされなかった他のユーザ端末800のユーザ8によって入力された情報とを、第1視野画像と共に表示部8702に表示する。所定条件が満たされなかったユーザ端末800の各ユーザ8によって入力される情報が表示されるパートを、以降、チャットパートとも記載する。
進捗情報生成部8017は、ゲーム進行部8105が実行しているゲームの進捗を示す進捗情報を生成し、適時、サーバ600またはキャラクタ制御装置110Bに送信する。進捗情報は、例えば、現在表示されているゲーム画面を指定する情報を含んでいてもよいし、ゲームの進捗を、時系列で文字および記号等によって示した進行ログを含んでいてもよい。ゲームシステム1500において、サーバ600およびキャラクタ制御装置110Bが進捗情報を必要としない実施形態では、進捗情報生成部8017は省略されてもよい。
(キャラクタ制御装置110Bの機能的構成)
制御部2100は、記憶部2200に格納されたゲームプログラム231を実行することにより、キャラクタ制御装置110Bを統括的に制御する。例えば、制御部2100は、ゲームプログラム231およびユーザ5Bの操作にしたがって、動作指図データを生成し、ユーザ端末800に供給する。制御部2100は、必要に応じて、さらにゲームプログラム231を実行してもよい。また、制御部2100は、サーバ600および本ゲームを実行中のユーザ端末800と通信して、情報の送受信を行う。
制御部2100は、ゲームプログラム231の記述に応じて、操作受付部2101、表示制御部2102、UI制御部2103、アニメーション生成部2104、ゲーム進行部2105、仮想空間制御部2106、および反応処理部2107として機能する。制御部2100は、ゲームシステム1500において実行されるゲームの性質に応じて、該ゲームに登場するキャラクタを制御するために、図示しないその他の機能ブロックとしても機能することができる。
操作受付部2101は、ユーザ5Bの入力操作を検知し受け付ける。入力操作は、例えば、HMD120、モーションセンサ420、ディスプレイ430がタッチスクリーンである場合に表示部と一体に形成された入力部、マウス(図示せず)、キーボード(図示せず)等の各種の入力装置から、入出力IF34を介して入力される。操作受付部2101は、ユーザ5Bが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部2100の各要素に出力する。操作受付部2101の機能の詳細は、ユーザ端末800における操作受付部8101のそれとほぼ同様である。
UI制御部2103は、HMD120又はディスプレイ430に表示させるUIオブジェクトを制御する。
アニメーション生成部2104は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。例えば、アニメーション生成部2104は、通信相手となるユーザ端末800上実際に表示されているゲーム画面を再現したアニメーション等を生成してもよい。
表示制御部2102は、HMD120又はディスプレイ430に対して、上述の各要素によって実行された処理結果が反映された画像を出力する。
ゲーム進行部2105は、ユーザ5Bによる入力操作に応じたアバターオブジェクト6Bと、ユーザ端末800のユーザ8の操作とに基づいて、ゲームを進行する。例えば、ゲーム進行部2105は、アバターオブジェクト6Bが所定の動作を行った場合に、所定のゲーム処理を行う。また、例えば、ゲーム進行部2105は、ユーザ端末800におけるユーザ8の操作を表す情報を受信し、当該ユーザ8の操作に基づいてゲーム処理を行う。
また、ゲーム進行部2105は、ユーザ端末800から受信するゲームの進捗を示す進捗情報に基づいて、ユーザ端末800におけるゲームの進捗を把握する。そして、ゲーム進行部2105は、該ユーザ端末800の挙動をキャラクタ制御装置110Bにおいて模擬的に再現することで、ユーザ5Bに対して、ユーザ端末800の進捗を提示する。
例えば、ゲーム進行部2105は、ユーザ端末800で表示されているゲーム画面を再現したものを自装置の表示部352に表示してもよい。また、ゲーム進行部2105は、ユーザ端末800において、ゲームの進捗を上述の進行ログとして表示部352に表示してもよい。
また、ゲーム進行部2105の機能の一部は、制御部2100がゲームプログラム231を実行することにより実現されてもよい。例えば、まずゲーム進行部2105は、進捗情報に基づいて、ユーザ端末800のゲームの進捗を把握する。そして、ゲーム進行部2105は、ユーザ端末800においてゲームプログラム831に基づき現在表示されている、ゲーム画面を、完全にまたは簡略化して自装置の表示部352に再現してもよい。あるいは、ゲーム進行部2105は、現時点のゲームの進捗を把握し、ゲームプログラム231に基づいて現時点以降のゲーム進行を予測し、予測結果を表示部352に出力してもよい。
仮想空間制御部2106は、図14を参照して説明したコントロールモジュール510のモジュール1421〜1427を含む。これらの詳細については、既に説明した通りである。
仮想空間制御部2106は、ユーザ端末800との間で仮想空間11を共有するための各種の制御を行う。図19は、仮想空間制御部2106の詳細な構成を示す図である。図19に示すように、仮想空間制御部2106は、図14を参照して説明したモジュール1421〜1427を含む。仮想空間制御部2106は、これらのモジュール1421〜1427の動作により、当該キャラクタ制御装置110Bにおいて、アバターオブジェクト6Bを動作させるとともに仮想オブジェクトの挙動を制御する。また、仮想空間制御部2106は、モジュール1421〜1427の動作に基づいて、ユーザ端末800においてアバターオブジェクト6Bを動作させるための動作指図データ、各仮想オブジェクトの挙動を制御するための動作指図データを生成する。これらの動作指図データは、サーバ600を介してユーザ端末800に供給される。例えば、仮想空間制御部2106は、ユーザ5B(声優など)が、マイク170を介して入力した音声データに基づいて、制御対象のキャラクタに発言させることを指示する動作指図データを生成する。このようにして生成された動作指図データには、上述の音声データが少なくとも含まれる。また、例えば、ユーザ5B(モデルなど)が、モーションセンサ420を介して入力したモーションキャプチャデータに基づく動きを、制御対象のキャラクタに行わせることを指示する動作指図データを生成する。このようにして生成された動作指図データには、上述のモーションキャプチャデータが少なくとも含まれる。また、例えば、ユーザ5Bが、コントローラ300などの入力機構またはタッチスクリーン、マウス、キーボード等の操作部を介して入力した入力操作の履歴、すなわち、操作履歴データに基づいて、制御対象のキャラクタを動作させることを指示する動作指図データを生成する。このようにして生成された動作指図データには、上述の操作履歴データが少なくとも含まれる。操作履歴データは、例えば、HMD120にどの画面が表示されているときに、ユーザ5Bが、コントローラ300のどのボタンをどのタイミングで押したのかを示す操作ログが時系列で整理されている情報である。あるいは、仮想空間制御部2106は、ユーザ5Bが上述の入力機構または操作部を介して入力した入力操作に対応付けられた、キャラクタの動作を指示するコマンドを特定する。そして、仮想空間制御部2106は、該コマンドを入力された順に並べてキャラクタの一連の動作を示すモーションコマンド群を生成し、該モーションコマンド群にしたがってキャラクタを動作させることを指示する動作指図データを生成してもよい。このようにして生成された動作指図データには、上述のモーションコマンド群が少なくとも含まれる。
反応処理部2107は、ユーザ端末800からユーザ8の反応についてフィードバックを受け付けて、これをキャラクタ制御装置110Bのユーザ5Bに対して出力する。本実施形態では、例えば、ユーザ端末800は、上述の動作指図データにしたがってキャラクタを動作させている間、該キャラクタに宛てて、ユーザ8がコメントを作成することができる。反応処理部2107は、該コメントのコメントデータを受け付けて、これを、出力する。反応処理部2107は、ユーザ8のコメントに対応するテキストデータを、表示部352に表示してもよいし、ユーザ8のコメントに対応する音声データを、図示しないスピーカから出力してもよい。
なお、図17に示すユーザ端末800、サーバ600およびキャラクタ制御装置110Bの機能は一例にすぎない。ユーザ端末800、サーバ600およびキャラクタ制御装置110Bの各装置は、他の装置が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末800、サーバ600およびキャラクタ制御装置110B以外のさらに別の装置をゲームシステム1500の構成要素とし、該別の装置にゲームシステム1500における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末800、サーバ600、キャラクタ制御装置110Bおよびそれ以外の別の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
なお、図17に示すサーバ600およびユーザ端末800の機能は一例にすぎない。サーバ600は、ユーザ端末800が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末800は、サーバ600が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末800およびサーバ600以外の他の装置をゲームシステム1500の構成要素とし、該他の装置にゲームシステム1500における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末800、サーバ600、および他の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。
<ゲームの構成>
図20は、本ゲームの基本的なゲーム進行についてその一例を示すフローチャートである。本ゲームは、3つのパートを含む。一例として、1つ目は、複数のユーザ端末800によって参加可能なライブゲーム進行パートである。2つ目は、ライブゲーム進行パートに参加したユーザ端末800のうち、所定条件を満たしたユーザ端末800に配信されるライブ配信パートである。3つ目は、ライブゲーム進行パートに参加したユーザ端末800のうち、所定条件を満たさないユーザ端末800に提供されるチャットパートである。また、ライブゲーム進行パートは、上述した第1ミニゲーム(第1状態で進行するゲーム)及び第2ミニゲーム(第2状態で進行するゲーム)を含む。
ステップS1において、ゲームシステム1500は、ライブゲーム進行パートを進行する。ライブゲーム進行パートは、第1仮想空間11_1において進行する。
ステップS2において、ゲームシステム1500は、ライブゲーム進行パートにおいて、第1ミニゲームを進行する。第1ミニゲームは、第1仮想空間11_1におけるアバターオブジェクト6Bの動作と、ユーザ端末800のユーザ8の操作とに基づいて進行する。第1ミニゲームでは、仮想オブジェクトが表す複数の選択肢の何れかを、アバターオブジェクト6Bが選択する第1動作に基づいて、当該第1動作による選択の結果に応じたゲーム処理が実行される。
ステップS3において、ゲームシステム1500は、第1仮想空間11_1においてアバターオブジェクト6Bが所定の動作を行うと、第1ミニゲームを終了し、第2ミニゲームを開始する。つまり、ゲームの進行が、第1状態から第2状態に遷移する。
ステップS4において、ゲームシステム1500は、ライブゲーム進行パートにおいて、第2ミニゲームを進行する。第2ミニゲームは、第1仮想空間11_1におけるアバターオブジェクト6Bの動作と、ユーザ端末800のユーザ8の操作とに基づいて進行する。第2ミニゲームでは、仮想オブジェクトが表す複数の選択肢の何れかを、アバターオブジェクト6Bが選択する第2動作に基づいて、当該第2動作による選択の結果に応じたゲーム処理が実行される。
ステップS5において、ゲームシステム1500は、ライブゲーム進行パートで所定条件が満たされたか否かを判断する。具体的には、ゲーム進行部8105は、第2ミニゲームにおいて第2条件が満たされたか否かを判断してもよい。
ステップS5でYesの場合、ステップS6において、ゲームシステム1500は、第2仮想空間11_2において、ライブ配信パートを進行する。第2仮想空間11_2には、アバターオブジェクト6B(第2キャラクタ)が配置される。換言すると、ユーザ5Bの操作に応じて動作するアバターオブジェクト6Bが、第1仮想空間11_1から第2仮想空間11_2に移動して動作する。
ステップS5でNoの場合、ステップS7において、ゲームシステム1500は、ユーザ端末800においてチャットパートを進行する。チャットパートは、キャラクタ制御装置110Bのユーザ5Bの操作によらずに進行するパートである。換言すると、チャットパートは、アバターオブジェクト6Bの動作によらずに進行する。チャットパートは、第1仮想空間11_1の第1視野画像がユーザ端末800に表示された状態で進行してもよい。
<処理概要>
本実施形態では、ユーザ端末800は、ゲームプログラム831に基づいて、以下のステップを実行するように構成されている。具体的には、第1配信者(ユーザ5B)がリアルタイム配信を行うための第1配信端末(キャラクタ制御装置110B)と、視聴端末(ユーザ端末800)を含む複数の視聴端末との間で共有される第1仮想空間(第1仮想空間11_1)に、第1配信者に対応する第1アバターオブジェクトと、第1仮想カメラとを配置するステップと、リアルタイム配信が行われる間、第1仮想カメラの視野領域を示す第1視野画像を表示部に表示するステップと、ゲームプログラムに基づくゲームに含まれる、複数の状態間を遷移しながら進行する第1ゲームパート(ライブゲーム進行パート)の状態ごとに、1つの状態におけるゲーム(第1ミニゲーム、第2ミニゲーム)を、第1配信者の身体の動き及び視聴者の操作に基づき進行させるゲーム処理を行うステップと、を実行させ、各状態におけるゲーム処理は、第1配信端末が第1配信者の身体の動きを検出して生成した、第1アバターオブジェクトの動作を示す第1動作情報を受信するステップと、第1動作情報が受信されたことに応答して、当該第1動作情報が示す動きを第1アバターオブジェクトが行うことを含むよう、第1視野画像を更新するステップと、第1動作情報が受信されたことに応答して、第1動作情報が示す動きが状態を遷移させるための動きであるか否かを判定するステップと、第1動作情報が示す動きが遷移させるための動きである場合に、第1ゲームパートの進行を、現在の状態から他の状態に遷移させるステップと、を含む。
これにより、第1配信者の身体の動き及び前記視聴者の操作に基づき各状態が進行する第1ゲームパートにおいて、視聴者は、ゲームを進行させる第1アバターオブジェクトの遷移させるための動作によって、第1ゲームパートの状態が切り替わることを認識できる。したがって、臨場感が増し、ゲームへの没入感が高まる。
また、ユーザ端末800は、配信者(ユーザ5B)がリアルタイム配信を行うための配信端末(キャラクタ制御装置110B)と、視聴端末(ユーザ端末800)を含む複数の視聴端末との間で共有される仮想空間に、配信者に対応するアバターオブジェクト(アバターオブジェクト6B)と、仮想カメラと、複数の選択肢オブジェクトとを配置するステップと、リアルタイム配信が行われる間、仮想カメラの視野領域を示す視野画像(視野画像1400_A1)を表示部に表示するステップと、リアルタイム配信が行われる間、視聴者の入力操作を受け付けるユーザインタフェース(UI)オブジェクトを、表示部に表示するステップと、配信端末が配信者の操作を検出して生成した、仮想空間に配置された複数の選択肢オブジェクトから一部を選択する、アバターオブジェクトの動作を示す動作情報を受信するステップと、動作情報が受信されたことに応答して、仮想空間に配置された複数の選択肢オブジェクトから一部を選択するアバターオブジェクトの動作を含むよう、視野画像を更新するステップと、動作情報が受信されたことに応答して、アバターオブジェクトにより選択された選択肢オブジェクトを特定するステップと、特定した選択肢オブジェクトに応じて、UIオブジェクトの状態を変化させるステップと、を実行する。
これにより、アバターオブジェクトが選択した選択肢に基づいて、視聴者のためのUIオブジェクトの状態が変化するので、アバターオブジェクトおよび視聴者の相互作用でゲームが進行していることを実感でき、臨場感が増す。したがって、臨場感が増し、ゲームへの没入感が高まる。
なお、ユーザ端末800は、配信者の動作に応じて、視聴端末の表示部に表示されたUIオブジェクトの状態を変化させるステップを実行してもよい。UIオブジェクトの状態を変化させるとは、例えば、UIオブジェクトを、操作可能状態及び操作不可能状態との間で変化させることであってもよいし、表示されていたUIオブジェクトを表示部から消去したり、表示されていなかったUIオブジェクトを表示部に新たに表示したりすることであってもよい。
<ライブゲーム配信パートの処理フロー>
図21は、ゲームシステム1500を構成する各装置によって実行される、ライブゲーム進行パートにおける処理の流れを表すフローチャートである。なお、以降の図面に示すフローチャートにおいて、左図は、キャラクタ制御装置110Bの動作を表し、右図は、ユーザ端末800Aの動作を表し、左右を結ぶ破線の矢印は、データの流れを表す。なお、キャラクタ制御装置110B及びユーザ端末800A間で送受信されるデータは、サーバ600を介して行われるものとする。以降、キャラクタ制御装置110Bがサーバ600を介してユーザ端末800Aに情報を送信することを、単に、キャラクタ制御装置110Bがユーザ端末800Aに情報を送信する、と記載する。また、ユーザ端末800Aがサーバ600を介してキャラクタ制御装置110Bに情報を送信することを、単に、ユーザ端末800Aがキャラクタ制御装置110Bに情報を送信する、と記載する。また、以降の説明において、ユーザ端末800C、800Dに係る説明は、ユーザ端末800Aに係る記載において各参照符号の末尾のAをC、Dと読み替えることにより、同様に説明される。
ステップS101において、キャラクタ制御装置110Bの仮想空間制御部2106は、第1仮想空間11_1を表す第1仮想空間データに基づいて、第1仮想空間11_1Bを規定する。第1仮想空間11_1Bは、キャラクタ制御装置110Bにおいて実現される仮想空間である。第1仮想空間データは、例えば、サーバ600から供給される。ステップS101は、所定の配信開始時刻以降に、ユーザ5Bによる配信開始を指示する操作に応じて実行されてもよい。
ステップS201において、ユーザ端末800Aの仮想空間制御部8106は、第1仮想空間11_1を表す第1仮想空間データに基づいて、第1仮想空間11_1Aを規定する。第1仮想空間11_1Aは、ユーザ端末800Aにおいて実現される仮想空間である。第1仮想空間データは、例えば、サーバ600から供給される。ステップS201は、所定の配信開始時刻に、ユーザ8Aによる視聴開始を指示する操作に基づいて実行されてもよい。
なお、所定の配信開始時刻は、あらかじめ、サーバ600からキャラクタ制御装置110B及びユーザ端末800Aに通知されていてもよい。また、所定の配信開始時刻は、キャラクタ制御装置110Bからユーザ端末800Aに通知されていてもよい。
ステップS102において、仮想空間制御部2106は、第1仮想空間11_1Bに、仮想カメラ14_B1を配置する。仮想カメラ14_B1による視野画像1400_B1は、アバターオブジェクト6Bから見た第1仮想空間11_1Bの視野画像である。
ステップS202において、仮想空間制御部8106は、第1仮想空間11_1Aに、仮想カメラ14_A1を配置する。仮想カメラ14_A1は、第1仮想空間11_1Aにおいてアバターオブジェクト6Bが存在し得る領域を視認可能な位置及び方向に配置される。例えば、第1仮想空間11_1において前方と規定された領域にアバターオブジェクト6Bが存在し得るとすると、仮想カメラ14_A1は、第1仮想空間11_1の後方に、前方に向かう方向で配置されてもよい。仮想カメラ14_A1による視野画像1400_A1は、第1仮想空間11_1Aにおいてアバターオブジェクト6Bの動作を視聴するのに好適な視野画像であり、本発明における第1視野画像の一例に相当する。
ステップS103において、仮想空間制御部2106は、第1仮想空間11_1Bに、アバターオブジェクト6B及び所定のオブジェクト(進行ボタンオブジェクト)を配置する。進行ボタンオブジェクトは、上述した所定の仮想オブジェクトの一例である。
ステップS104において、仮想空間制御部2106は、ユーザ端末800Aに対して、アバターオブジェクト6B及び進行ボタンオブジェクトを表す情報を送信する。
ステップS203において、仮想空間制御部8106は、受信した情報に基づいて、第1仮想空間11_1Aに、アバターオブジェクト6B及び所定の仮想オブジェクトを配置する。ここでは、所定の仮想オブジェクトとして、押下する動作の対象となる進行ボタンオブジェクトが配置されるものとする。これにより、ユーザ端末800A及びキャラクタ制御装置110B間で、アバターオブジェクト6B及び進行ボタンオブジェクトが同期して配置される。
ステップS105において、仮想空間制御部2106は、HMD120の動きに応じて変化する仮想カメラ14_B1の位置及び方向に基づいて、視野画像1400_B1を表示し、更新する。以降のステップにおいて、視野画像1400_B1の更新は、HMD120の動きに応じて継続して実行されるものとする。
ステップS204において、仮想空間制御部8106は、仮想カメラ14_A1の位置及び方向に基づいて、視野画像1400_A1を表示し、更新する。以降のステップにおいても、視野画像1400_A1の更新は、アバターオブジェクト6Bの動作及び各仮想オブジェクトの挙動に応じて継続して実行されるものとする。
ステップS106において、仮想空間制御部2106は、ユーザ5Bの動きに応じてアバターオブジェクト6Bの動作を制御する。
ステップS107において、仮想空間制御部2106は、アバターオブジェクト6Bの動作を表す動作指図データを、ユーザ端末800Aに送信する。
ステップS205において、仮想空間制御部8106は、受信した動作指図データに基づいて、アバターオブジェクト6Bの動作を制御する。
なお、ステップS106、S107、S205の一連の処理は、以降のステップにおいても、継続して実行されるものとする。
ステップS108及びステップS206において、ゲーム進行部2105及びゲーム進行部8105は、互いに必要となる情報を送受信しながら、第1ミニゲームを進行する。第1ミニゲームを進行する処理の流れの詳細については後述する。
ステップS109において、ゲーム進行部2105は、ユーザ5Bの動きに応じてアバターオブジェクト6Bが所定の動作を行ったか否かを判断する。所定の動作とは、上述したように、仮想オブジェクトを対象とする動作であり、ここでは、操作オブジェクトを進行ボタンオブジェクトに接触させる動作である。例えば、進行ボタンオブジェクトを押下する動作であってもよい。当該ステップは、Yesと判断されるまで繰り返し実行される。ステップS109でYesの場合、次のステップS110の処理が実行される。
ステップS110において、仮想空間制御部2106は、所定の動作を表す動作指図データを、ユーザ端末800Aに送信する。
ステップS207において、仮想空間制御部8106は、受信した動作指図データに基づいて、アバターオブジェクト6Bに所定の動作をさせる。ここでは、アバターオブジェクト6Bは、進行ボタンオブジェクトを押す動作を行う。
これにより、アバターオブジェクト6Bの所定の動作に応じて、ゲームの進行は、第1ミニゲームから第2ミニゲームに遷移する。
ステップS112及びS208において、ゲーム進行部2105及びゲーム進行部8105は、互いに必要となる情報を送受信しながら、第2ミニゲームを進行する。第2ミニゲームを進行する処理の流れの詳細については後述する。
<キャラクタ制御装置110Bにおける第1仮想空間11_1B>
図22は、キャラクタ制御装置110Bにおいて、ステップS101〜S107が実行されることにより実現される第1仮想空間11_1B及び視野画像1400_B1の一例を模式的に示す図である。図22(A)では、第1仮想空間11_1に、アバターオブジェクト6B、仮想カメラ14_B1、および進行ボタンオブジェクト2241が少なくとも配置される。ユーザ5B(第1ユーザ)は、頭部にHMD120を装着している。ユーザ5Bは、ユーザ5Bの身体の右側の一部を構成する右手(第1部位)で右コントローラ300Rを把持し、ユーザ5Bの身体の左側の一部を構成する左手(第2部位)で左コントローラ300Lを把持している。
HMD120は、モーションセンサとして機能するセンサ190を備える。右コントローラ300RBおよび左コントローラ300LBは、モーションセンサ420を備える。ユーザ5Bは、さらに、モーションセンサ1841〜1843を装着している。モーションセンサ1841は、ベルト1844によってユーザ5Bの腰部に装着されている。モーションセンサ1842は、ユーザ5Bの右足の甲に装着されている。モーションセンサ1843は、ユーザ5Bのユーザ5Bの左足の甲に装着されている。モーションセンサ1841〜1843は、有線または無線によってコンピュータ200に接続されている。
ある局面において、ユーザ5Bに装着されるモーションセンサは、ベースステーション(図示しない)から照射される信号(例えば赤外線レーザ)の到達時間と角度とを検出する。コンピュータ200のプロセッサ210(以下、単にプロセッサ210)は、モーションセンサの検出結果に基づいて、ベースステーションに対するモーションセンサの位置を検出する。プロセッサ210は、さらに、ベースステーションに対するモーションセンサの位置を、所定点(例えば頭部に装着されたセンサ190の位置)を基準として規格化してもよい。
アバターオブジェクト6Bは、仮想右手1831RBおよび仮想左手1831LBを含む。仮想右手1831RBは操作オブジェクトの一種であり、ユーザ5Bの右手の動きに応じて第1仮想空間11_1Bにおいて動くことができる。仮想左手1831LBは操作オブジェクトの一種であり、ユーザ5Bの左手の動きに応じて第1仮想空間11_1Bにおいて動くことができる。
図22(A)に示す第1仮想空間11_1は、コンピュータ200において番組コンテンツが再生されることによって、構築される。ユーザ5Bは、アバターオブジェクト6Bにパフォーマンスを実行させるために、自身の身体を動かす。コンピュータ200は、ユーザ5Bに装着される各種のモーションセンサの出力に基づいて、ユーザ5Bの動きを検出する。第1仮想空間11_1において、アバターオブジェクト6Bは、特定されたユーザ5Bの動きに応じて、現実空間におけるユーザ5Bの動きが反映されたパフォーマンスを実行する。第1仮想空間11_1においてアバターオブジェクト6Bがユーザ5Bに動きに応じたパフォーマンスを実行すると、ユーザ端末800Aにおいて実現される第1仮想空間11_1Aにおいても、アバターオブジェクト6Bが同期して同じパフォーマンスを実行する。このように、ユーザ5Bは、アバターオブジェクト6Bによる番組として、複数のユーザ端末800Aのユーザ8Aにライブゲーム進行パートをそれぞれ配信する配信者としての役割を有する。
図22(A)において、仮想カメラ14_B1は、アバターオブジェクト6Bの頭部に配置される。仮想カメラ14_B1は、仮想カメラ14_B1の位置および向きに応じた視界領域15_11を規定する。仮想カメラ14_B1は、視界領域15Bに対応する視界画像1400_B1を生成して、図21(B)に示すようにHMD120に表示させる。ユーザ5Bは、視界画像1400_B1を視認することによって、アバターオブジェクト6Bの視点で第1仮想空間11_1Bの一部を視認する。これにより、ユーザ5Bは、あたかもユーザ5B自身がアバターオブジェクト6Bであるかのような仮想体験を、得ることができる。視界画像1400_B1には、進行ボタンオブジェクト2241が含まれる。したがって、ユーザ5Bは、ライブゲーム進行パートにおいて進行を進めるために必要な進行ボタンオブジェクトを視認できる。
<ユーザ端末800における第1仮想空間11_1A>
図23は、ユーザ端末800において、ステップS201〜S205が実行されることにより実現される第1仮想空間11_1A及び視野画像1400_A1の一例を模式的に示す図である。図23(A)では、第1仮想空間11_1Aに、アバターオブジェクト6B、仮想カメラ14_A1、および進行ボタンオブジェクト2241が少なくとも配置される。第1仮想空間11_1Aは、図22に示した第1仮想空間11_1Bに同期している。ユーザ8Aは、左手にユーザ端末800Aを把持している。図23の例では、ユーザ8は、アバターオブジェクト6Bが実演する番組であるライブゲーム進行パートを、ユーザ端末800Aの画面を視認しながら視聴する。
図23(A)に示す第1仮想空間11_1Aは、ユーザ端末800Aにおいて番組コンテンツが再生されることによって、構築される。第1仮想空間11_1Aにおいて、アバターオブジェクト6Bは、ユーザ5Bの動きに基づいて、ライブゲーム進行パートの配信者としてパフォーマンスを実行する。ユーザ8Aは、ユーザ端末800Aの画面を通じて、ライブゲーム進行パートの参加者としてアバターオブジェクト6Bのパフォーマンスを視聴する。また、ユーザ8C、8Dは、ユーザ端末800C、800Dの画面を通じて、ライブゲーム進行パートの参加者としてアバターオブジェクト6Bのパフォーマンスを視聴する。このように、アバターオブジェクト6Bによって進行するライブゲーム進行パートは、複数のユーザ8に対して同時にストリーミング配信される。
図23(A)において、第1仮想空間11_1Aの後方に、仮想カメラ14_A1が配置される。仮想カメラ14_A1は、仮想カメラ14_A1の位置および向きに応じた視界領域15Aを規定する。プロセッサ810は、視界領域15Aに対応する視界画像1400_A1を生成して、図23(B)に示すように、タッチスクリーン870の表示部8702に表示する。視界画像1400_A1には、パフォーマンスを実行するアバターオブジェクト6Bが少なくとも含まれる。ユーザ8Aは、視界画像1400_A1を視認することによって、アバターオブジェクト6Bと、アバターオブジェクト6Bが登場する第1仮想空間11_1Aの一部とを、視認する。これにより、ユーザ8Aは、あたかもアバターオブジェクト6Bが実際の配信者であるかのような仮想体験を、得ることができる。
<第1ミニゲームの処理フロー>
図24は、ゲームシステム1500を構成する各装置によって実行される、第1ミニゲームにおける処理の流れを表すフローチャートである。図24に示す処理の流れは、図21に示したステップS108及びS206における処理の詳細に相当する。
ここでは、第1ミニゲームとして、ジャンケンゲームが適用されていることを想定する。また、第1ミニゲームでは、第1条件が設定されている。第1条件とは、ユーザ8Aが、アバターオブジェクト6Bにジャンケンで勝利することである。
なお、以下に説明するように、第1条件(第2課題)が設定された第1ミニゲーム(第2プレイパート)は、後述する第2ミニゲーム(第1プレイパート)が開始する前に、キャラクタ制御装置110Bのユーザ5Bの操作に応じてアバターオブジェクト6Bが行う動作に基づいて進行する。
ステップS301において、キャラクタ制御装置110Bの仮想空間制御部2106は、第1仮想空間11_1Bに、本発明における第3オブジェクトと、複数の選択肢を表す仮想オブジェクトとを配置する。
ここで、第3オブジェクトは、第1状態に関する情報を表す仮想オブジェクトである。例えば、第3オブジェクトは、当該情報を表示可能な仮想パネル、仮想ディスプレイ、仮想黒板、仮想電光掲示板等であってもよいが、これらに限られない。本実施形態では、第3オブジェクトとして、仮想パネルを表すパネルオブジェクトが配置されるものとする。
パネルオブジェクトには、第1状態に関する情報として、第1ミニゲームに関する情報が表示される。第1ミニゲームに関する情報とは、例えば、第1ミニゲームのルール説明、第1ミニゲームで設定される第1条件、第1条件を満たすことにより得られる報酬等に関する情報を含んでいてもよいが、これらに限られない。
また、ここでは、複数の選択肢を表す仮想オブジェクトとして、選択肢の各々を表す仮想オブジェクトが配置される。具体的には、ジャンケンのグー・チョキ・パーのそれぞれに対応する選択肢オブジェクトが配置される。この例では、1つの選択肢オブジェクトが1つの選択肢に対応し、選択肢の個数(ここでは3個)の選択肢オブジェクトが配置される。
ステップS302において、仮想空間制御部2106は、パネルオブジェクト及び3個の選択肢オブジェクトの情報を、ユーザ端末800Aに送信する。
ステップS401において、ユーザ端末800Aの仮想空間制御部8106は、受信した情報に基づいて、第1状態に応じた第1オブジェクト(ここでは、パネルオブジェクト及び3個の選択肢オブジェクト)を、第1仮想空間11_1Aに配置する。また、仮想空間制御部8106は、第1オブジェクトを対象とするアバターオブジェクト6Bの動作を、第1動作として適用する。
ステップS402において、ゲーム進行部8105は、第1UIオブジェクトを、表示部8702に表示する。
ここで、第1UIオブジェクトは、第1状態に応じたUIオブジェクトである。具体的には、第1UIオブジェクトは、第1ミニゲームにおいてユーザ8Aからの操作を受け付けるユーザインタフェースオブジェクトである。ここでは、ジャンケンのグー・チョキ・パーの選択肢のそれぞれに対応する3個のUIボタンが表示される。3個のUIボタンは、操作可能な状態と、操作不能な状態とを有し、初期状態では、操作不能な状態であってもよい。ただし、第1UIオブジェクトは、UIボタンに限らず、その他のUIオブジェクトであってよい。
ステップS303において、仮想空間制御部2106は、ユーザ5Bの動きに応じて、アバターオブジェクト6Bに、第1UIオブジェクトの操作をユーザ8Aに対して促す動作をさせる。
ステップS304において、仮想空間制御部2106は、アバターオブジェクト6Bの動作を表す動作指図データを、ユーザ端末800Aに送信する。
ステップS403において、仮想空間制御部8106は、受信した動作指図データに基づいて、アバターオブジェクト6Bに当該促す動作をさせる。
ステップS404において、ゲーム進行部8105は、アバターオブジェクト6Bの第1動作に基づいて、第1条件の少なくとも一部を満たすための第1処理を実行する。
ここでは、ゲーム進行部8105は、アバターオブジェクト6Bの促す動作に応じて、第1UIオブジェクトを操作可能な状態にするとの第1処理を実行する。ジャンケンに勝利するとの第1条件を満たすためには、少なくとも第1UIオブジェクトである3個のUIボタンが操作可能となる必要があるため、当該第1処理が実行される。そして、ゲーム進行部8105は、第1UIオブジェクトに対するユーザの操作を受け付ける。ここでは、3個のUIボタンの何れかに対する操作が受け付けられる。
ステップS305において、仮想空間制御部2106は、ユーザ5Bの動きに応じて、アバターオブジェクト6Bに、3個の選択肢オブジェクトの何れかを選択する動作をさせる。選択する動作とは、例えば、選択肢オブジェクトを持つ、指差す、回転させる、又はこれらの動作を含む各種動作を組み合わせた動作であってもよい。
ステップS306において、仮想空間制御部2106は、アバターオブジェクト6Bの動作を表す動作指図データを、ユーザ端末800Aに送信する。
ステップS405において、仮想空間制御部8106は、受信した動作指図データに基づいて、アバターオブジェクト6Bに当該選択する動作をさせる。
ステップS406において、ゲーム進行部8105は、アバターオブジェクト6Bの選択する動作に応じて、第1UIオブジェクトを操作不能な状態にする処理を実行する。本ステップは、「後出し」となる操作を受け付けないための処理である。
ステップS407において、ゲーム進行部8105は、第1ミニゲームの結果を判定する。本実施形態では、ゲーム進行部8105は、ユーザ5Bとユーザ8との間でジャンケンの勝敗を判定する。ここでは、ユーザ8によって操作されたUIボタンが示す選択肢と、アバターオブジェクト6Bによって選択された選択肢オブジェクトが示す選択肢とが比較されて、勝敗が判定される。
ステップS407において、負けたと判定された場合、次のステップS408の処理が省略され、後述のステップS409の処理が実行される。ステップS407において、勝ったと判定された場合、次のステップS408の処理が実行される。
ステップS408において、ゲーム進行部8105は、第1ミニゲーム(第2プレイパート)における第1条件(第2課題)の達成度が大きいほど、ゲーム処理として、第2ミニゲーム(第1プレイパート)における第2条件(第1課題)を満たす上でより有利な処理を実行する。
具体的には、ゲーム進行部8105は、第2ミニゲームを有利に進める権利を表す情報をユーザに関連付けてメモリ820に記憶させる。
ステップS409において、ゲーム進行部8105は、第1ミニゲームの結果を、キャラクタ制御装置110Bに送信する。ここでは、ジャンケンの結果が送信される。
ステップS307において、キャラクタ制御装置110Bのゲーム進行部2105は、各ユーザ8Aの第1ミニゲームの結果を表す情報を、HMD120に表示する。結果を表す情報は、例えば、視野画像1400_B1に重畳して表示されてもよい。ここでは、各ユーザのジャンケンの結果を表す情報が表示される。各ユーザのジャンケンの結果を表す情報は、勝った人数、負けた人数、アイコの人数等を表す集計情報であってもよいし、各ユーザの勝敗の一覧情報であってもよい。また、ジャンケンの結果を表す情報は、ユーザ名を含んでいてもよい。
<第1ミニゲーム進行中における第1仮想空間11_1A、11B>
図25は、第1ミニゲームが進行中における第1仮想空間11_1を模式的に示す図である。図25(A)は、キャラクタ制御装置110Bにおいて実現される第1仮想空間11_1Bの斜視図である。図25(B)は、ユーザ端末800Aにおいて実現される第1仮想空間11_1Aの上面図である。これらの第1仮想空間11_1A及び11_Bは、同期している。
図25(A)及び(B)において、第1仮想空間11_1A及び11_Bには、アバターオブジェクト6Bと、進行ボタンオブジェクト2241と、パネルオブジェクト2551と、選択肢オブジェクト2552_1〜2552_3とが配置されている。また、第1仮想空間11_Bには、仮想カメラ14_B1が配置されている。また、第1仮想空間11_Aには、仮想カメラ14_A1が配置されている。
仮想カメラ14_B1は、アバターオブジェクト6Bの頭部に、アバターオブジェクト6Bの向いている方向に向かって配置されている。なお、仮想カメラ14_B1は、第1仮想空間11_1Aには配置されないので、ユーザ端末800Aにおいて表示される視野画像1400_A1には含まれない。
仮想カメラ14_A1は、第1仮想空間11_1の後方に、前方の領域に向かって配置される。前方とは、ここでは、紙面の左方向であるものとする。なお、仮想カメラ14_A1は、第1仮想空間11_1Bには配置されないので、キャラクタ制御装置110Bにおいて表示される視野画像1400_B1には含まれない。
アバターオブジェクト6Bは、仮想カメラ14_B1と同一の方向を向いて配置される。仮想カメラ14_B1の方向は、ユーザ8Aが仮想的に存在する方向である。以降、仮想カメラ14_B1の方向を、単に、ユーザ8Aの方向とも記載する。
3個の選択肢オブジェクト2552_1〜2552_3は、先端にある円板部の一方の面に、グー・チョキ・パーを表すイラストが描かれている。これらの円板部の他方の面には、イラストが描かれていない。3個の選択肢オブジェクト2552_1〜2552_3は、イラストが描かれていない面がユーザ8Aの方を向くように配置されている。
パネルオブジェクト2551は、アバターオブジェクト6Bよりも前方の領域、換言すると、アバターオブジェクト6Bの背後に配置されている。ここでは、パネルオブジェクト2551は、板状であり、ユーザ8Aの方向側の面に、第1ミニゲームに関する情報が表示されている。
進行ボタンオブジェクト2241は、アバターオブジェクト6Bの向かう方向に対して左側の領域(図25(B)に示した第1仮想空間11_1Aにおける紙面に対して上側の領域)に配置されているものとする。
<第1ミニゲーム進行中における視野画像及びゲーム画面>
図26〜図29は、第1ミニゲーム進行中における視野画像及びゲーム画面の遷移例を示す図である。図26〜図29の各図において、(A)は、ステップS301〜S307が実行されることによりキャラクタ制御装置110BのHMD120に表示される視野画像1400_B1を表す。(B)は、S401〜410が実行されることによりユーザ端末800Aの表示部8702に表示されるゲーム画面を表す。
図26は、ジャンケンゲームの開始時における視野画像及びゲーム画面を示す図である。
図26(A)において、キャラクタ制御装置110Bにおける視野画像1400_B1は、進行ボタンオブジェクト2241と、選択肢オブジェクト2552_1〜2552_3と、アバターオブジェクト6Bの手の部分である仮想右手1831RB及び仮想左手1831LBと、情報2651とを含む。パネルオブジェクト2551は、アバターオブジェクト6Bの背後にあるため、視野画像1400_B1に含まれない。
進行ボタンオブジェクト2241は、アバターオブジェクト6Bから見て向かって左側に配置されている。
選択肢オブジェクト2552_1〜2552_3は、アバターオブジェクト6Bから見て、グー・チョキ・パーのイラストが描かれた面が見えるように配置されている。
また、アバターオブジェクト6B自身の仮想右手1831RB及び仮想左手1831LBが視野画像1400_B1に含まれる。これにより、ユーザ5Bは、仮想右手1831RB及び仮想左手1831LBに、選択肢オブジェクト2552_1〜2552_3又は進行ボタンオブジェクト2241を選択させるよう、容易に動くことができる。
情報2651は、視野画像1400_B1に重畳して表示される情報である。情報2651は、現在、当該第1ミニゲームを含むライブゲーム進行パートを視聴しているユーザ8の数を表している。ここでは、ユーザ端末800A、800C、800Dを含む132台のユーザ端末800によって仮想空間11_1が共有されており、視聴しているユーザ8の数(視聴者数)が132人であることが表示されている。情報2651は、例えば、サーバ600から送信されることにより重畳表示されてもよい。
ここで、ユーザ5Bが、第1ミニゲームを開始することをユーザ8Aに対して通知する動作として「ジャンケンゲームを始めるよ」との音声2671を発声する動作を行うと、アバターオブジェクト6Bが、音声2671を発声するよう制御される。なお、第1ミニゲームを開始することを通知する動作は、発声に限らず、手振り等であってもよいし、各種の動作の組み合わせであってもよい。
また、ユーザ5Bが、ユーザ8Aに対して第1UIオブジェクトの操作を促す動作として、「グー・チョキ・パーボタンのどれかを押してね」との音声2672を発声する動作を行うと、アバターオブジェクト6Bが、音声2672を発声するよう制御される。なお、第1UIオブジェクトの操作を促す動作は、発声に限らず、手振り等であってもよいし、各種の動作の組み合わせであってもよい。
図26(B)において、ユーザ端末800Aの表示部8702に表示されるゲーム画面は、視野画像1400_A1と、UI領域2661とを含む。視野画像1400_A1は、アバターオブジェクト6Bと、進行ボタンオブジェクト2241と、選択肢オブジェクト2552_1〜2552_3と、パネルオブジェクト2551とを含む。
アバターオブジェクト6Bは、ユーザ8Aの方向を向いているので、正面を向いている。また、アバターオブジェクト6Bの仮想右手1831RB及び仮想左手1831LBが視野画像1400_A1に含まれている。ここれにより、ユーザ8Aは、仮想右手1831RB及び仮想左手1831LBが何れの選択肢オブジェクトを選択する動作を行うかに注目することができる。
進行ボタンオブジェクト2241は、アバターオブジェクト6Bから見て左側、すなわち、視野画像1400_A1の右側の領域に配置されている。
選択肢オブジェクト2552_1〜2552_3は、ユーザ8Aから見て、グー・チョキ・パーのイラストが描かれた面が見えないように配置されている。
パネルオブジェクト2551は、アバターオブジェクト6Bの背後に、情報が表示される面をユーザ8Aの方向に向けて配置されている。ここでは、パネルオブジェクト2551には、第1ミニゲームに関する情報として、ジャンケンゲームの説明を表す情報が表示されている。また、当該情報には、ジャンケンゲームに勝利したときの報酬(ここでは、第2ミニゲームで有利になる権利が付与されること)を表す情報が含まれていてもよい。
UI領域2661は、UIボタン2661_1〜2661_3を含む。UIボタン2661_1〜2661_3のそれぞれは、グー・チョキ・パーのイラストを含んでいる。UIボタン2661_1に対する操作が受け付けられると、グーを選択したことがメモリ820に記憶される処理が実行される。UIボタン2661_2に対する操作が受け付けられると、パーを選択したことがメモリ820に記憶される処理が実行される。UIボタン2661_1に対する操作が受け付けられると、チョキを選択したことがメモリ820に記憶される処理が実行される。UIボタン2661_1〜2661_3は、初期状態で操作不能である。
ここで、キャラクタ制御装置110Bから、音声2671、2672を発声する動作を表す動作指図データが受信されると、視野画像1400_A1に含まれるアバターオブジェクト6Bが、音声2671、2672を発声するよう制御される。
これにより、ユーザ8Aは、アバターオブジェクト6Bが音声2671を発声する動作に応じてジャンケンゲームが開始することを認識する。また、ユーザ8Aは、ジャンケンゲームのルール、報酬等を、パネルオブジェクト2551を視認することにより認識することができる。
また、アバターオブジェクト6Bが音声2672を発声する動作に応じて、UIボタン2661_1〜2661_3が、操作不能な状態から操作可能な状態に変化する。UIボタン2661_1〜2661_3は、操作可能な状態に変化したことを表す態様で表示されてもよい。ユーザ8Aは、アバターオブジェクト6Bが音声2672を発声する動作に応じて、UIボタン2661_1〜2661_3の何れかを押すことを動機付けられる。
また、アバターオブジェクト6Bが音声2672を発声する動作に応じて、新たなUIボタンが表示されたり、表示されていたUIボタンが非表示になったりしてもよい。
図27は、ユーザ8Aによってボタン2661_1〜2661_3の何れかが押下された後の視野画像及びゲーム画面を示す図である。
図27(A)において、キャラクタ制御装置110Bにおける視野画像1400_B1は、図26(A)に示した視野画像1400_B1に対して、情報2651の代わりに、情報2751及び情報2752が重畳されている点が異なる。
情報2751は、情報2651と同様、現在、当該第1ミニゲームを含むライブゲーム進行パートを視聴しているユーザ8の数を表している。ここでは、第1ミニゲームが開始した時点以降に、視聴者数が2人増加して134人になっている。このように、情報2751は、ユーザ端末800Aから送信される情報に基づいて、リアルタイムに内容が更新される。
情報2752は、第1仮想空間11_1を共有する複数のユーザ端末800のユーザ8のうち、第1UIオブジェクトに対する操作を行ったユーザ8の数を表している。ここでは、ユーザ8Aを含む132人が、操作を行ったことが表されている。情報2752は、ユーザ端末800Aから送信される情報に基づいて、リアルタイムに内容が更新される。
図27(B)において、ユーザ端末800Aの表示部8702に表示されるゲーム画面は、図26(B)に示したゲーム画面と同様に、視野画像1400_A1と、UI領域2661とを含む。ただし、UI領域2661におけるUIボタン2661_1の態様が変化している。UIボタン2661_1は、当該ボタンに対する操作が受け付けられた状態を表す態様で表示される。当該態様とは、例えば、当該UIボタンの色が変化した態様であってもよいし、押し込まれている様子に変化した態様であってもよいが、これらに限られない。
図28は、アバターオブジェクト6Bにより選択肢オブジェクト2552_1〜2552_3の何れかが選択された後の視野画像及びゲーム画面を示す図である。
図28(A)において、キャラクタ制御装置110Bにおける視野画像1400_B1は、図26(A)に示した視野画像1400_B1に対して、アバターオブジェクト6Bが選択肢オブジェクト2552_3を選択した様子を含む点と、情報2752の代わりに情報2852が重畳されている点とが異なる。
アバターオブジェクト6Bは、ユーザ5Bの動作に応じて、仮想右手1831RBによって選択肢オブジェクト2552_3を選択する。具体的には、ここでは、仮想空間制御部2106によって、仮想右手1831RBと、選択肢オブジェクト2552_3とが接触していると判定され、かつ、コントローラ300が有する所定ボタンの押下が検出されたとする。これにより、仮想右手1831RBと、選択肢オブジェクト2552_3とが関連付けられ、選択肢オブジェクト2552_3は、仮想右手1831RBと共に移動する。ここでは、アバターオブジェクト6Bは、選択肢オブジェクト2552_3を把持し、持ち上げて、選択肢の1つである「チョキ」のイラストが描かれている面をユーザ8の方向に向けるように選択肢オブジェクト2552_3を回転させたものとする。把持されている状態での選択肢オブジェクト2552_3の回転は、例えば、コントローラ300が有する他の所定ボタンが押下されたことに応じて実行されるように定められていてもよい。また、把持されている状態での選択肢オブジェクト2552_3の回転は、仮想右手1831RBについて定められた所定の動きに応じて実行されるよう定められていてもよい。
また、ユーザ5Bは、アバターオブジェクト6Bに選択肢オブジェクト2552_1〜2552_3の何れかを選択させるための動作を行うと共に、「ジャンケンポン」との音声2871を発声する動作を行う。これにより、アバターオブジェクト6Bは、選択肢オブジェクト2552_3を選択するとともに、音声2871を発声するよう制御される。
情報2852は、複数のユーザ端末800における第1UIオブジェクトに対する操作結果を表している。ここでは、情報2852は、UIボタン2661_1〜2661_3の各々に対する操作を行ったユーザ8の数を表している。情報2852によれば、ユーザ8Aを含む43人が、UIボタン2661_1を押下してグーを選択し、他の46人のユーザ8が、UIボタン2661_2を押下してパーを選択し、他の45人のユーザ8が、2661_1を押下してチョキを選択している。情報2852は、アバターオブジェクト6Bが選択肢オブジェクト2552_3を選択する動作を行った後に、ユーザ端末800Aから送信される情報に基づいて表示されることが望ましい。
なお、情報2852を含む領域に対するアバターオブジェクト6Bの動作が受け付けられることにより、複数のユーザ端末800における操作結果の詳細が表示されてもよい。例えば、操作結果の詳細とは、各選択肢を選択したユーザ8の識別情報の一覧情報であってもよい。例えば、「グーの人:43人」の表示領域に対して仮想右手1831RB又は仮想左手1831LBが接触する動作が受け付けられると、グーを選択した「ユーザA、ユーザX、ユーザY・・・」といった一覧情報が重畳表示されてもよい。ただし、操作結果の詳細は、これに限られない。
また、情報2852は、図示のような選択肢別の集計情報に限られない。例えば、情報2852は、複数のユーザ8の各々の識別情報と、当該ユーザ8によって押下されたUIボタン2661_1〜2661_3の何れかの識別情報とを一覧として含んでいてもよい。この場合、情報2852は、スクロール可能に表示されてもよい。また、この場合、情報2852は、複数のユーザ端末800の何れかにおいてUIボタン2661_1〜2661_3の何れかが押下される度に、当該ユーザ8の識別情報と、押下されたUIボタン2661_1〜2661_3の何れかの識別情報とを追加して含むよう更新されてもよい。この場合、情報2852は、自動でスクロールして表示されてもよい。
また、ユーザ5Bは、アバターオブジェクト6Bに選択肢オブジェクト2552_3を選択させた後、複数のユーザ端末800におけるジャンケンゲームの結果に応じた動作を行う。ここでは、例えば、「グーで勝った43人、おめでとう!」といった音声2872を発声する。これにより、アバターオブジェクト6Bは、音声2872を発声するよう制御される。
図28(B)において、ユーザ端末800Aの表示部8702に表示されるゲーム画面は、視野画像1400_A1と、UI領域2661と、情報2865とを含む。
ここでは、キャラクタ制御装置110Bから、音声2871を発声する動作を表す動作指図データが受信されると、視野画像1400_A1に含まれるアバターオブジェクト6Bが、音声2871を発声するよう制御される。この音声2871の発声を契機に、ユーザ8Aは、自身が選択した「グー」によって勝つことのできる「チョキ」が選択されることを所望しながら、アバターオブジェクト6Bの動作に注目することができ、臨場感が増す。
また、キャラクタ制御装置110Bから送信された動作指図データに基づいて、視野画像1400_A1に含まれるアバターオブジェクト6Bは、選択肢オブジェクト2552_3を選択する動作を行うよう制御される。ここで、アバターオブジェクト6Bによって選択された選択肢オブジェクト2552_3は、「チョキ」が描かれた面がユーザ8Aの方向に向けられる。これにより、ユーザ8Aは、アバターオブジェクト6Bによって、自身が勝つことになる「チョキ」が選択されたことを認識することができる。
また、キャラクタ制御装置110Bから、音声2872を発声する動作を表す動作指図データが受信されると、視野画像1400_A1に含まれるアバターオブジェクト6Bが、音声2872を発声するよう制御される。これにより、ユーザ8Aは、自分と同様にジャンケンゲームに勝利した人が43人いることを認識でき、他のユーザ8と共にジャンケンゲームに参加していることの臨場感が増す。
情報2865は、ユーザ8Aによるジャンケンゲームの結果を表す。ここでは、情報2865は、「勝ち」との内容を含む吹き出しの態様で表示されている。ただし、情報2865の内容及び態様は、これに限られない。
図29は、ジャンケンゲームが終了し、次のミニゲームに遷移するときの視野画像及びゲーム画面の一例を示す図である。
図29(A)において、キャラクタ制御装置110Bにおける視野画像1400_B1は、進行ボタンオブジェクト2241と、選択肢オブジェクト2552_1〜2552_3と、仮想左手1831LBと、情報2751とを含む。
ここでは、アバターオブジェクト6Bが、自身の左側に存在する進行ボタンオブジェクト2241に対して近づくよう移動したことを想定している。そのため、進行ボタンオブジェクト2241が、視野画像1400_B1の中央付近の領域に含まれている。また、選択肢オブジェクト2552_1〜2552_3は、視野画像1400_B1の右下方の領域に含まれている。
ここで、ユーザ5Bが、第1ミニゲームから第2ミニゲームに遷移することを通知する動作として、「次のゲームに行くよ」との音声2971を発声する動作を行うと、アバターオブジェクト6Bが、音声2971を発声するよう制御される。なお、第2ミニゲームに遷移することを通知する動作は、発声に限らず、手振り等であってもよいし、各種の動作の組み合わせであってもよい。
また、ユーザ5Bが、音声2971を発声すると同時に、アバターオブジェクト6Bに進行ボタンオブジェクト2241を押下させる動作を行うと、アバターオブジェクト6Bが、当該動作を行うよう制御される。
図29(B)において、ユーザ端末800Aの表示部8702に表示されるゲーム画面は、視野画像1400_A1と、UI領域2661と、情報2981とを含む。
ここで、キャラクタ制御装置110Bから、音声2971を発声する動作を表す動作指図データが受信されると、視野画像1400_A1に含まれるアバターオブジェクト6Bが、音声2971を発声するよう制御される。
また、キャラクタ制御装置110Bから、進行ボタンオブジェクト2241を押下する動作を表す動作指図データが受信されると、視野画像1400_A1に含まれるアバターオブジェクト6Bが、当該動作を行うよう制御される。
これにより、ユーザ8Aは、アバターオブジェクト6Bが音声2971を発声すると共に進行ボタンオブジェクト2241を押下する動作に応じて、第2ミニゲームに遷移することを認識する。このように、ユーザ8Aは、アバターオブジェクト6Bの動作に応じて、ミニゲームが切り替わることを、臨場感を持って認識できる。
情報2981は、ジャンケンゲームに勝利したことにより、次の第2ミニゲームを有利に進める権利が付与されたことを表している。これにより、ユーザは、次の第2ミニゲームが有利になったことを認識できる。
<第2ミニゲームの処理フロー>
図30は、ゲームシステム1500を構成する各装置によって実行される、第2ミニゲームにおける処理の流れを表すフローチャートである。図30に示す処理の流れは、図21に示したステップS112及びS208における処理の詳細に相当する。
ここでは、第2ミニゲームとして、ビンゴゲームが適用されていることを想定する。また、第2ミニゲームでは、第2条件が設定されている。第2条件とは、ユーザ8Aに付与されたビンゴカードにおいてビンゴが成立することである。
ステップS501において、キャラクタ制御装置110Bの仮想空間制御部2106は、第1仮想空間11_1Bに、本発明における第4オブジェクトと、複数の選択肢を表す仮想オブジェクトとを配置する。
ここで、第4オブジェクトは、第2状態に関する情報を表す仮想オブジェクトである。例えば、第4オブジェクトは、当該情報を表示可能な仮想パネル、仮想ディスプレイ、仮想黒板、仮想電光掲示板等であってもよいが、これらに限られない。本実施形態では、第4オブジェクトとして、第3オブジェクトと同様の仮想パネルを表すパネルオブジェクトが配置されるものとする。換言すると、第1ミニゲームから第2ミニゲームに切り替わると、パネルオブジェクトに表示される情報が変化する。
また、複数の選択肢を表す仮想オブジェクトとして、ビンゴボールの箱オブジェクトが配置される。ビンゴボールの箱オブジェクトは、それぞれ表面に数字が描かれた複数のビンゴボールオブジェクトを内部に含み、ビンゴボールオブジェクトを取り出すことができる開口部を表面に有するものとする。
ステップS502において、仮想空間制御部2106は、パネルオブジェクト及び箱オブジェクトの情報を、ユーザ端末800Aに送信する。
ステップS601において、ユーザ端末800Aの仮想空間制御部8106は、受信した情報に基づいて、第1仮想空間11_1Aに、第2状態に応じた第2オブジェクト(ここでは、パネルオブジェクト及び箱オブジェクト)を配置する。また、仮想空間制御部8106は、第2オブジェクトを対象とするアバターオブジェクト6Bの動作を、第2動作として適用する。なお、第1仮想空間11_1Aから、第1状態に応じた第1オブジェクトは消去される。
ステップS602において、ゲーム進行部8105は、第2ミニゲームを有利に進める権利を表す情報がメモリ820に記憶されているか否かを判断する。ステップS602でNoの場合、ステップS603の処理が実行される。ステップS602でYesの場合、ステップS604の処理が実行される。
ステップS603又はS604において、ゲーム進行部8105は、第2UIオブジェクトを、表示部8702に表示する。
ここで、第2UIオブジェクトは、第2状態に応じたUIオブジェクトである。具体的には、第2UIオブジェクトは、第2ミニゲームにおいてユーザ8Aからの操作を受け付けるユーザインタフェースオブジェクトである。
ステップS603では、第2UIオブジェクトとして、通常のビンゴカードが表示される。ステップS604では、第2UIオブジェクトとして、有利なビンゴカードを表示部8702に表示する。
通常のビンゴカード及び有利なビンゴカードとは、それぞれ、複数列かつ複数行に並んだマスのそれぞれに、任意の数値を含むカードである。また、各マスは、操作可能な状態及び操作不能な状態を有し、初期状態では、操作不能な状態である。また、各マスは、開いた状態及び開いていない状態を有し、初期状態では、開いていない状態である。各マスは、操作可能な状態のときに操作されることにより、開いた状態となるものとする。また、上述した第2条件であるビンゴの成立とは、開いたマスが縦、横、斜めの何れかに所定個数並ぶことであるものとする。
ここで、有利なビンゴカードとは、通常のビンゴカードよりも、第2ミニゲームを有利に進めることが可能なカードである。例えば、有利なビンゴカードとは、複数枚の通常のビンゴカードを含んでいてもよい。また、例えば、通常のビンゴカード及び有利なビンゴカードが、1つのマスに複数の数値を含み得るとき、有利なビンゴカードとは、通常のビンゴカードよりも1つのマスに含まれる数値の個数が多いものであってもよい。ただし、第2UIオブジェクトは、上述したようなビンゴカードに限らず、その他のUIオブジェクトであってよい。
なお、本ステップにおいて表示されるビンゴカードの各マスに含まれる数値は、第1仮想空間11_1を共有する複数のユーザ端末800毎に決定されるものとする。例えば、本ステップの実行時に、各マスに描かれる数値が、任意の範囲の数値からランダムに選択されて決定されてもよい。
ステップS504において、仮想空間制御部2106は、ユーザ5Bの動きに応じて、アバターオブジェクト6Bに、ビンゴボールオブジェクトを選択する動作をさせる。複数のビンゴボールオブジェクトのそれぞれは、それぞれ異なる識別情報(番号など)が関連付けられている。
ステップS505において、仮想空間制御部2106は、アバターオブジェクト6Bの動作を表す動作指図データを、ユーザ端末800Aに送信する。
ステップS605において、仮想空間制御部8106は、受信した動作指図データに基づいて、アバターオブジェクト6Bにビンゴボールオブジェクトを選択する動作をさせる。
ステップS606において、ゲーム進行部8105は、アバターオブジェクト6Bによって選択されたビンゴボールオブジェクトに描かれた数値が、表示されているビンゴカードのマスの何れかに含まれる数値であるか否かを判断する。ステップS606でNoの場合、後述するステップS612が実行される。ステップS606でYesの場合、次のステップS607が実行される。
ステップS607において、ゲーム進行部8105は、アバターオブジェクト6Bの第2動作に基づいて、第2条件の少なくとも一部を満たすための第2処理を実行する。換言すると、ゲーム進行部8105は、アバターオブジェクト6Bの選択する動作に応じて、第2条件(本発明における第1課題)の少なくとも一部を達成するためのゲーム処理を実行する。
ここでは、ゲーム進行部8105は、アバターオブジェクト6Bの選択する動作に応じて、該当する数値を含むマスを操作可能な状態にするという第2処理を実行する。ビンゴを成立させるとの第2条件を満たすためには、少なくとも第2UIオブジェクトの一部であるマスが操作可能となる必要があるため、当該第2処理が実行される。
ステップS608において、ゲーム進行部8105は、該当する数値を含むマスに対する操作を受け付け、当該マスを開いた状態に変化させる。
ステップS609において、ゲーム進行部8105は、該当する数値を含むマスが開いたことを、キャラクタ制御装置110Bに通知する。
ステップS505において、ゲーム進行部2105は、該当する数値を含むマスが開いたユーザ8Aに関する情報を、HMD120に表示する。
ステップS610において、ユーザ端末800Aのゲーム進行部8105は、ステップS608でマスが開けられたことにより、ビンゴが成立したか否かを判断する。ステップS610でNoの場合、後述するステップS612が実行される。ステップS610でYesの場合、次のステップS611が実行される。
ステップS611において、ゲーム進行部8105は、ビンゴが成立したことを、キャラクタ制御装置110Bに通知する。
ステップS506において、ゲーム進行部2105は、ビンゴが成立したユーザ8Aに関する情報を、HMD120に表示する。
ステップS507において、ゲーム進行部2105は、ゲームが終了したか否かを判断する。例えば、ゲームの終了条件は、アバターオブジェクト6Bによってビンゴボールオブジェクトが所定回数選択されたことであってもよい。また、例えば、ゲームの終了条件は、最初のビンゴボールオブジェクトの選択から所定時間が経過したことであってもよい。また、例えば、ゲームの終了条件は、ビンゴが成立したユーザ8の数が所定数を超えたことであってもよい。ただし、ゲームの終了条件は、これらに限られない。
ステップS507においてNoの場合、ステップS503からの処理が実行される。ステップS507においてYesの場合、ステップS508の処理が実行される。
ステップS508において、ゲーム進行部2105は、ゲームが終了したことを、ユーザ端末800Aに通知する。
ステップS612において、ゲーム進行部8105は、ゲームの終了が通知されたか否かを判断する。本ステップは、ステップS606又はS610でNoの場合にも実行される。ステップS612でNoの場合、ステップS605からの処理が実行される。ステップS612でYesの場合、ステップS613の処理が実行される。
ステップS613において、ゲーム進行部8105は、ビンゴゲームの結果を表す情報を、表示部8702に表示する。
<第2ミニゲーム進行中における第1仮想空間11_1A、11B>
図31は、第2ミニゲームが進行中における第1仮想空間11_1を模式的に示す図である。図31(A)は、キャラクタ制御装置110Bにおいて実現される第1仮想空間11_1Bの斜視図である。図31(B)は、ユーザ端末800Aにおいて実現される第1仮想空間11_1Aの上面図である。これらの第1仮想空間11_1A及び11_Bは、同期している。
図31(A)及び(B)において、第1仮想空間11_1A及び11_Bには、アバターオブジェクト6Bと、特別ボタンオブジェクト3141と、パネルオブジェクト3151と、箱オブジェクト3142とが配置されている。また、第1仮想空間11_1Bには、仮想カメラ14_B1が配置されている。また、第1仮想空間11_1Aには、仮想カメラ14_A1が配置されている。アバターオブジェクト6B、仮想カメラ14_A1、14_B1については、図25を参照して説明した通りである。
箱オブジェクト3142は、内部に複数のビンゴボールオブジェクト3144が配置された直方体状のオブジェクトである。箱オブジェクト3142の上面は、開口部3143を含む。アバターオブジェクト6Bは、開口部3143から仮想右手1831RB又は仮想左手1831LBを箱オブジェクト3142の内部に挿入することにより、複数のビンゴボールオブジェクト3144の何れかを選択する動作を行うことができる。
複数のビンゴボールオブジェクト3144の各々は、球状のオブジェクトであり、表面に数値が描かれている。数値は、第2UIオブジェクトとしてのビンゴカードのマスに表示され得る範囲の数値の何れかであることが望ましい。ただし、範囲外の数値が描かれたビンゴボールオブジェクトがあってもよい。また、複数のビンゴボールオブジェクトに描かれた数値は、互いに異なるものであってもよい。あるいは、一部の複数のビンゴボールオブジェクトに描かれた数値が同一であってもよい。
パネルオブジェクト3151は、パネルオブジェクト2551と同様に構成されるが、ユーザ8Aの方向側の面に、第1ミニゲームに関する情報の代わりに、第2ミニゲームに関する情報が表示されている。
特別ボタンオブジェクト3141は、アバターオブジェクト6Bの向かう方向に対して左側の領域に配置されているものとする。「左側」については、図25において説明した通りである。
<第2ミニゲーム進行中における視野画像及びゲーム画面>
図32〜図36は、第2ミニゲーム進行中において視野画像及び表示部の一例を示す図である。図32〜図36の各図において、(A)は、ステップS501〜S508が実行されることによりキャラクタ制御装置110BのHMD120に表示される視野画像1400_B1を表す。(B)は、S601〜613が実行されることによりユーザ端末800Aの表示部8702に表示されるゲーム画面を表す。
図32は、ビンゴゲームの開始時における視野画像及びゲーム画面を示す図である。
図32(A)において、キャラクタ制御装置110Bにおける視野画像1400_B1
は、特別ボタンオブジェクト3141と、箱オブジェクト3142と、仮想右手1831RB及び仮想左手1831LBと、情報2751とを含む。情報2751については、図26を参照して説明した通りである。
特別ボタンオブジェクト3141は、アバターオブジェクト6Bから見て向かって左側に配置されている。
箱オブジェクト3142は、アバターオブジェクト6Bから見て、開口部3143が見えるように配置されている。
また、アバターオブジェクト6B自身の仮想右手1831RB及び仮想左手1831LBが視野画像1400_B1に含まれる。これにより、ユーザ5Bは、仮想右手1831RB及び仮想左手1831LBに、箱オブジェクト3142の開口部3143を通って複数のビンゴボールオブジェクト3144の何れかを選択させるよう、容易に動作することができる。
ここで、ユーザ5Bが、第2ミニゲームを開始することを通知する動作として、「ビンゴゲームを始めるよ」との音声3271を発声する動作を行うと、アバターオブジェクト6Bが、音声3271を発声するよう制御される。なお、第2ミニゲームを開始することを通知する動作は、発声に限らず、手振り等であってもよいし、各種の動作の組み合わせであってもよい。
図32(B)において、ユーザ端末800Aの表示部8702に表示されるゲーム画面は、視野画像1400_A1と、UI領域3261とを含む。視野画像1400_A1は、アバターオブジェクト6Bと、特別ボタンオブジェクト3141と、箱オブジェクト3142と、パネルオブジェクト3151とを含む。
アバターオブジェクト6Bは、ユーザ8Aの方向を向いているので、正面を向いている。また、アバターオブジェクト6Bの仮想右手1831RB及び仮想左手1831LBが視野画像1400_A1に含まれている。これにより、ユーザ8Aは、仮想右手1831RB及び仮想左手1831LBが何れのビンゴボールオブジェクト3144を選択する動作を行うかに注目することができる。
特別ボタンオブジェクト3141は、アバターオブジェクト6Bから見て左側、すなわち、視野画像1400_A1の右側の領域に配置されている。
この例では、箱オブジェクト3142は、各面が不透明な状態で表示され、内部のビンゴボールオブジェクトが見えないように表示されている。ただし、複数のビンゴボールオブジェクトには、それぞれ、第1仮想空間11_1Aにおける位置が定められている。これにより、当該ビンゴボールオブジェクト3144と、仮想右手1831RB又は仮想左手1831LBとの接触判定が可能となり、当該ビンゴボールオブジェクト3144が選択され得る。
パネルオブジェクト3251は、アバターオブジェクト6Bの背後に、情報が表示される面をユーザ8Aの方向に向けて配置されている。ここでは、パネルオブジェクト2551には、第2ミニゲームに関する情報として、ビンゴゲームの説明を表す情報が表示されている。また、当該情報には、ビンゴゲームのルール、設定されている第2条件(例えば、ビンゴの成立)、ビンゴが成立したときの報酬(ここでは、第2仮想空間に参加できること)を表す情報が含まれていてもよいが、これらに限られない。
UI領域3261は、通常のビンゴカード3262を含む。通常のビンゴカード3262は、3列3行に配置された9個のマス3263を含む。各マス3263は、1〜100までの範囲の何れかの整数を含んでいる。各マス3263に対する操作が受け付けられると、当該マス3263が開いた状態であることを表す情報がメモリ820に記憶される処理が実行される。各マス3263は、初期状態で操作不能であり、開いていない状態である。
ここで、キャラクタ制御装置110Bから、音声3271を発声する動作を表す動作指図データが受信されると、視野画像1400_A1に含まれるアバターオブジェクト6Bが、音声3271を発声するよう制御される。
これにより、ユーザ8Aは、アバターオブジェクト6Bが音声3271を発声する動作に応じてビンゴゲームが開始することを認識する。
図33は、ビンゴゲームの開始時におけるゲーム画面の他の例を示す図である。
図33において、ユーザ端末800Aの表示部8702に表示されるゲーム画面は、図32(B)に示したゲーム画面に対して、通常のビンゴカード3262の代わりに、有利なビンゴカード3362を含む点が異なる。有利なビンゴカード3362は、3列3行に配置された9個のマス3363を含む。各マス3363は、1〜100までの範囲の何れかの整数を2つずつ含んでいる。マス3363は、2つずつの整数を含むことにより、マス3263よりも開いた状態となりやすいので、有利である。それ以外の点については、各マス3363は、通常のビンゴカード3262の各マス3263と同様に構成される。以下では、ユーザ端末800Aには、通常のビンゴカード3262が表示されているものとして説明する。
図34は、ユーザ5Bの動作に応じて、アバターオブジェクト6Bが複数のビンゴボールオブジェクト3144の何れかを選択する動作が行われる際の視野画像及びゲーム画面を示す図である。
図34(A)において、キャラクタ制御装置110Bにおける視野画像1400_B1は、図32(A)に示した視野画像1400_B1に対して、アバターオブジェクト6Bが1つのビンゴボールオブジェクト3144を選択した様子を含む点と、情報3452及び3453がさらに重畳されている点とが異なる。
アバターオブジェクト6Bは、ユーザ5Bの動作に応じて、仮想右手1831RBによって、箱オブジェクト3142の内部から複数のビンゴボールオブジェクト3144の何れかを選択して取り出す動作を行う。視野画像1400_B1では、箱オブジェクト3142の内部にあるビンゴボールオブジェクト3144が表示されていないため、ユーザ5Bにとって、何れの数値が描かれたビンゴボールオブジェクト3144を選択したかは、取り出すまで認識できないものとする。
ここでは、仮想右手1831RBによって選択されたビンゴボールオブジェクト3144には、「54」と描かれていたとする。以下、「54」と描かれたビンゴボールオブジェクト3144を、ビンゴボールオブジェクト3144「54」とも記載する。仮想右手1831RBによってビンゴボールオブジェクト3144「54」が選択される処理の詳細については、図28(A)において、仮想右手1831RBによって選択肢オブジェクト2552_3が選択される処理と同様であるため、詳細な説明を繰り返さない。なお、仮想空間制御部2106は、仮想右手1831RBとビンゴボールオブジェクト3144とが接触したと判定した時点で、接触していることを表す情報をHMD120等の出力装置に出力してもよい。この場合、ユーザ5Bは、当該出力に応じて、コントローラ300が有する所定ボタンを押下すればよい。これにより、ユーザ5Bは、視野画像1400_B1にビンゴボールオブジェクト3144が表示されていなくても、仮想右手1831RBにビンゴボールオブジェクト3144を選択させる動作を容易に行うことができる。
あるいは、視野画像1400_B1において、箱オブジェクト3142の内部にある複数のビンゴボールオブジェクト3144が、表面の数値を含まない態様で表示されていてもよい。例えば、ビンゴボールオブジェクト3144は、輪郭だけの態様で表示されてもよい。この場合、ユーザ5Bは、各ビンゴボールオブジェクト3144の位置を視認できるので、仮想右手1831RBにビンゴボールオブジェクト3144を選択させる動作を容易に行うことができる。
また、ユーザ5Bは、アバターオブジェクト6Bに複数のビンゴボールオブジェクト3144の何れかを選択させるための動作を行った後、選択したビンゴボールオブジェクト3144に描かれた数値「54」を音声3471として発声する動作を行う。これにより、アバターオブジェクト6Bは、ビンゴボールオブジェクト3144「54」を選択するとともに、音声3471を発声するよう制御される。
情報3452は、第2ミニゲームの進行状況を表している。ここでは、情報3452は、アバターオブジェクト6Bがビンゴボールオブジェクト3144を選択した回数を表している。情報3452は、アバターオブジェクト6Bが複数のビンゴボールオブジェクト3144の何れかを選択する動作を行う度に更新される。
情報3453は、複数のユーザ端末800における第2UIオブジェクトに対する操作結果を含んでいる。ここでは、情報3453は、アバターオブジェクト6Bが直近に選択したビンゴボールオブジェクト3144によって、ビンゴカードのマスが開いたユーザ8の人数と、ビンゴが成立したユーザ8の人数とを含んでいる。情報3453によれば、14人のユーザ8が「54」のマス3263又は3363を開ける操作を行い、1人のユーザ8がビンゴを成立させている。
なお、情報3453を含む領域に対するアバターオブジェクト6Bの動作に応じて、第2UIオブジェクトに対する操作結果の詳細な情報が表示されてもよい。例えば、操作結果の詳細とは、当該マス3263又は3363が開いた状態となったユーザ8の識別情報の一覧情報であってもよい。例えば、「54のマスを開けた人:14人」の表示領域に対して仮想右手1831RB又は仮想左手1831LBが接触する動作が受け付けられると、54のマスを開けた「ユーザA、ユーザX、ユーザY・・・」といった一覧情報が重畳表示されてもよい。ただし、操作結果の詳細は、これに限られない。
また、情報3453は、図示のような操作結果の集計情報に限られない。例えば、情報3453は、当該マス3263又は3363が開いた状態となった複数のユーザ端末800各々のユーザ8の識別情報を、一覧として含んでいてもよい。この場合、情報3453は、スクロール可能に表示されてもよい。また、この場合、情報3453は、複数のユーザ端末800の何れかにおいて当該マス3263又は3363が開いた状態となる度に、当該ユーザ8の識別情報を追加して含むよう更新されてもよい。この場合、情報3453は、自動でスクロールして表示されてもよい。
また、ユーザ5Bは、情報3453の表示に応じて、アバターオブジェクト6Bに、複数のユーザ端末800における操作結果に応じた動作を行う。ここでは、例えば、「ビンゴの人1人出ました」といった音声3472を発声する。また、情報3453に、ビンゴを成立させたユーザ8の識別情報が含まれる場合、音声3472は、当該ユーザ8の識別情報をさらに含んで「ユーザ8Aさん、ビンゴになりました!」といった内容であってもよい。これにより、アバターオブジェクト6Bは、音声3472を発声するよう制御される。
図34(B)において、ユーザ端末800Aの表示部8702に表示されるゲーム画面は、視野画像1400_A1と、UI領域3261とを含む。
ここでは、キャラクタ制御装置110Bから、ビンゴボールオブジェクト3144「54」を選択する動作を表す動作指図データが受信されると、視野画像1400_A1に含まれるアバターオブジェクト6Bは、ビンゴボールオブジェクト3144「54」を選択する動作を行う。ここで、アバターオブジェクト6Bによって選択されたビンゴボールオブジェクト3144「54」は、「54」が描かれた面がユーザ8の方向に向けられる。
また、キャラクタ制御装置110Bから、音声3471を発声する動作を表す動作指図データが受信されると、視野画像1400_A1に含まれるアバターオブジェクト6Bが、音声3471を発声するよう制御される。
これにより、ユーザ8Aは、アバターオブジェクト6Bによって、自身のビンゴカードに含まれる数値「54」が描かれたビンゴボールオブジェクト3144が選択されたことを認識することができる。
また、アバターオブジェクト6Bがビンゴボールオブジェクト3144「54」を選択したことに応じて、「54」を含むマス3263が操作可能な状態に変化する。操作可能な状態に変化したマス3263は、操作可能であることを表す態様に変化して表示されてもよい。ユーザ8Aは、「54」を含むマス3263に対する操作を行うことにより、当該マス3263を開いた状態にすることができる。これにより、「54」を含むマス3263は、開いた状態を表す態様で表示される。開いた状態を表す態様とは、例えば、開いた状態を表す色に変化した態様、当該マスの領域に穴があけられた様子を表す態様等であってもよいが、これらに限られない。
このように、ユーザ8Aは、自身のビンゴカード3262に含まれる数値が描かれたビンゴボールオブジェクト3144が選択されることを所望しながら、アバターオブジェクト6Bの動作に注目することができ、臨場感が増す。
また、キャラクタ制御装置110Bから、音声3472を発声する動作を表す動作指図データが受信されると、視野画像1400_A1に含まれるアバターオブジェクト6Bが、音声3472を発声するよう制御される。これにより、ユーザ8Aは、他のユーザ8がビンゴを成立させたことを認識でき、他のユーザ8と共にビンゴゲームに参加していることの臨場感が増す。また、音声3472に、ビンゴを成立させたユーザ8、又は、マスを開けたユーザ8として、当該ユーザ8Aの識別情報等が含まれる場合、ユーザ8Aは、複数のユーザ8の中で特別感を感じることができる。
図35は、ユーザ5Bの動作に応じて、アバターオブジェクト6Bが複数のビンゴボールオブジェクト3144の何れかを選択する際のゲーム画面の他の例を示す図である。
図35に示すゲーム画面は、図34(B)に示したゲーム画面に対して、視野画像1400_A1において、複数のビンゴボールオブジェクト3144が表示されている点が異なる。この場合も、キャラクタ制御装置110Bにおいて表示される視野画像1400_B1では、図34(A)と同様に、複数のビンゴボールオブジェクト3144が表示されていないものとする。これにより、ユーザ8Aは、自身のビンゴカード3262に含まれる数値が描かれたビンゴボールオブジェクト3144の位置を認識できる。その結果、当該ビンゴボールオブジェクト3144をアバターオブジェクト6Bが選択するか否かを、さらなる臨場感を持って注目することができる。
図36は、ユーザ5Bの動作に応じて、アバターオブジェクト6Bの選択する動作に応じてビンゴが成立する際の視野画像及びゲーム画面を示す図である。
図36(A)において、キャラクタ制御装置110Bにおける視野画像1400_B1は、図34(A)に示した視野画像1400_B1に対して、アバターオブジェクト6Bが選択したビンゴボールオブジェクト3144に描かれた数値が異なる。また、情報3452、3453の代わりに、情報3652、3653が表示される点も異なる。
アバターオブジェクト6Bは、ユーザ5Bの動作に応じて、箱オブジェクト3142の内部からビンゴボールオブジェクト3144「25」を選択して取り出したものとする。ビンゴボールオブジェクト3144「25」を選択する動作の詳細については、図34(A)を参照して説明したビンゴボールオブジェクト3144「54」を選択する動作と同様である。
また、ユーザ5Bは、選択したビンゴボールオブジェクト3144に描かれた数値「25」を、音声3671として発声する動作を行う。これにより、アバターオブジェクト6Bは、ビンゴボールオブジェクト3144「25」を選択するとともに、音声3471を発声するよう制御される。
情報3652は、情報3452が示す第2ミニゲームの進行状況が更新されたものである。情報3652によれば、ビンゴボールオブジェクト3144の選択回数が30回となっている。ここでは、ビンゴゲームの終了条件として、選択回数が30回に到達することが定められているとする。
情報3653は、情報3453に示した複数のユーザ端末800における第2UIオブジェクトに対する操作結果が更新されたものである。情報3653によれば、14人のユーザ8が「25」のマス3263又は3363を開け、合計9人のユーザ8がビンゴを成立させている。
また、ユーザ5Bは、情報3452、3453の表示に応じて、アバターオブジェクト6Bに、第2ミニゲームの進捗状況、及び、複数のユーザ端末800における操作結果に応じた動作を行わせる。ここでは、例えば、「ビンゴ終了!ビンゴの人合計9人です。おめでとう」といった音声3672を発声する。また、情報3653に、ビンゴを成立したユーザ8の識別情報が含まれる場合については、情報3453について説明した場合と同様である。
図36(B)において、ユーザ端末800Aの表示部8702に表示されるゲーム画面は、視野画像1400_A1と、UI領域3261と、情報3665とを含む。
ここでは、キャラクタ制御装置110Bから送信された動作指図データに基づいて、視野画像1400_A1に含まれるアバターオブジェクト6Bは、ビンゴボールオブジェクト3144「25」を選択する動作を行うとともに、音声3671を発声するよう制御される。
また、アバターオブジェクト6Bがビンゴボールオブジェクト3144「25」を選択したことに応じて、「25」を含むマス3263が操作可能な状態に変化する。ユーザ8Aは、「25」を含むマス3263に対する操作を行うことにより、当該マス3263を開いた状態にして、ビンゴを成立させることができる。
情報3655は、当該ユーザ端末800Aにおいて、ビンゴが成立したことを表す情報である。情報3655は、「25」を含むマス3263が開いた状態に変化したことに応じて表示される。
これにより、ユーザ8Aは、自身がビンゴを成立させたことを認識することができる。
また、キャラクタ制御装置110Bから、音声3672を発声する動作を表す動作指図データが受信されると、視野画像1400_A1に含まれるアバターオブジェクト6Bが、音声3672を発声するよう制御される。これにより、ユーザ8Aは、自身を含む9人のユーザ8がビンゴを成立させたことを認識でき、複数のユーザ8の中での特別感を感じることができる。また、音声3672に、ビンゴを成立させた当該ユーザ8Aの識別情報等が含まれる場合、ユーザ8Aは、さらなる特別感を感じることができる。
<ライブ配信パートの処理フロー>
図37は、ゲームシステム1500を構成する各装置によって実行される、ライブ配信パートにおける処理の流れを表すフローチャートである。図37に示す処理の流れは、図21に示した処理に続いて実行される。
ステップS701において、キャラクタ制御装置110Bの仮想空間制御部2106は、第2仮想空間11_2に移動する操作を受け付ける。第2仮想空間11_2に移動する操作とは、アバターオブジェクト6Bによる所定の仮想オブジェクト(例えば、特別ボタンオブジェクト)を対象とする動作であってもよい。また、第2仮想空間11_2に移動する操作とは、第1仮想空間11_1Bにおける所定領域内(例えば、仮想ドアの付近)にアバターオブジェクト6Bが移動することであってもよい。また、第2仮想空間11_2に移動する操作とは、コントローラ300が有する所定ボタンに対する操作であってもよい。ただし、第2仮想空間11_2Bに移動する操作は、これらに限られない。
ステップS702において、仮想空間制御部2106は、第2仮想空間11_2を表す第2仮想空間データに基づいて、第2仮想空間11_2Bを規定する。第2仮想空間データは、例えば、サーバ600から供給される。
ステップS703において、仮想空間制御部2106は、第2仮想空間11_2Bに、仮想カメラ14_B2を配置する。仮想カメラ14_B2による視野画像は、アバターオブジェクト6Bから見た第2仮想空間11_2Bの視野画像である。
ステップS704において、仮想空間制御部2106は、第2仮想空間11_2Bに、アバターオブジェクト6Bを配置する。また、第1仮想空間11_1Bから、アバターオブジェクト6Bを削除する。
一方、ステップS801において、ユーザ端末800Aのゲーム進行部8105は、所定条件が満たされたか否かを判断する。所定条件とは、第2ミニゲームに設定された第2条件が満たされたか否かであってもよい。ステップS801においてYesの場合、後述するステップS804が実行される。ステップS801でNoの場合、次のステップS802の処理が実行される。
ステップS802において、ゲーム進行部8105は、ユーザ8Aによる対価の支払い又は対価の支払いに基づきユーザ8Aに付与された有価アイテムを消費することを指示するユーザ操作が受け付けられたか否かを判断する。有価アイテムとは、例えば、仮想通貨であってもよい。
ステップS802においてNoの場合については後述する。ステップS802においてYesの場合、次のステップS803の処理が実行される。
ステップS803において、ゲーム進行部8105は、課金処理又は有価アイテムを消費する処理を実行し、ステップS804の処理を実行する。
ステップS804において、ゲーム進行部8105は、第2仮想空間11_2Aへの参加を指示する操作を受け付け、当該操作が受け付けられたか否かを判断する。ステップS804においてNoの場合、ユーザ端末800Aにおける処理が終了する。ステップS804においてYesの場合、次のステップS805の処理が実行される。
ステップS805において、ゲーム進行部8105は、第2仮想空間11_2を表す第2仮想空間データに基づいて、第2仮想空間11_2Aを規定する。第2仮想空間データは、例えば、サーバ600から供給される。
ステップS806において、仮想空間制御部8106は、第2仮想空間11_2Aに、仮想カメラ14_A2を配置する。ここでは、仮想カメラ14_A2の位置及び方向は、ユーザ8Aによって操作不能であり、複数のユーザ8が共通の視野画像1400_A2を視聴するものとする。
ステップS705において、仮想空間制御部2106は、ユーザ端末800Aに対して、アバターオブジェクト6Bを表す情報を送信する。
ステップS807において、仮想空間制御部8106は、受信した情報に基づいて、第2仮想空間11_2Aに、アバターオブジェクト6Bを配置する。また、第1仮想空間11_1Aから、アバターオブジェクト6Bを削除する。
これにより、所定条件が満たされたユーザ端末800Aと、キャラクタ制御装置110Bとの間で、第2仮想空間11_2が共有される。また、ユーザ端末800A及びキャラクタ制御装置110B間で、アバターオブジェクト6Bが同期して配置される。
ステップS706において、仮想空間制御部2106は、HMD120の動きに応じて変化する仮想カメラ14_B2の位置及び方向に基づいて、視野画像1400_B2を表示し、更新する。
ステップS808において、仮想空間制御部8106は、仮想カメラ14_A2の位置及び方向に基づいて、視野画像1400_A2を表示し、更新する。
ステップS707において、仮想空間制御部2106は、ユーザ5Bの動きに応じてアバターオブジェクト6Bの動作を制御する。
ステップS708において、仮想空間制御部2106は、アバターオブジェクト6Bの動作を表す動作指図データを、ユーザ端末800Aに送信する。
ステップS809において、仮想空間制御部8106は、受信した動作指図データに基づいて、アバターオブジェクト6Bの動きを制御する。
これにより、ユーザ端末800Aでは、第2仮想空間11_2Aにおいて、ユーザ5Bの動作に基づいてアバターオブジェクト6Bが動作する。また、第1仮想空間11_1Aから、アバターオブジェクト6Bが消滅する。
当該ライブ配信パートにおいて、アバターオブジェクト6Bの動作は、ユーザ8に楽しんでもらうことを目的として配信されるものであってもよい。例えば、アバターオブジェクト6Bの動作は、歌唱、ダンス、スポーツの技等を含むものであってもよいが、これらに限られない。
このように、ライブ配信パートは、所定条件を満たしたユーザ8、ここでは、第2ミニゲームにおいて第2条件を満たしたユーザ8のみが視聴できる。したがって、第2ミニゲームにおいて第2条件を満たすことに対するユーザ8の動機付けが向上する。また、第2条件を満たしたユーザ8にとって、ライブ配信パートを視聴できることの特別感が増す。
<第1仮想空間から第2仮想空間に移動する際の視野画像及びゲーム画面例>
図38〜40は、第1仮想空間11_1から第2仮想空間11_2に移動してライブ配信パートが開始されるまでの視野画像及びゲーム画面の遷移例を示す図である。
図38(A)は、第1仮想空間11_1から第2仮想空間11_2に移動する際にキャラクタ制御装置110BのHMD120に表示される視野画像1400_B1の一例を示す図である。図38(A)において、キャラクタ制御装置110Bにおける視野画像1400_B1は、特別ボタンオブジェクト3141と、仮想左手1831LBと、情報2751とを含む。情報2751については、既に説明した通りである。
ここでは、アバターオブジェクト6Bが、自身の左側に存在する特別ボタンオブジェクト3141に対して近づくよう移動したことを想定している。そのため、特別ボタンオブジェクト3141が、視野画像1400_B1の中央付近の領域に含まれている。また、箱オブジェクト3142は、視野画像1400_B1に含まれていない。
ここで、ユーザ5Bが、ビンゴが成立したユーザ8Aのみを対象として、第2仮想空間11_2に参加可能であることを通知する音声3871を発声する動作を行うと、アバターオブジェクト6Bが、音声3871を発声するよう制御される。ここでは、音声3871は、「ビンゴの9人を特別ステージにご招待」との内容である。なお、第2仮想空間11_2に参加可能であることを通知する動作は、発声に限らず、手振り等であってもよいし、各種の動作の組み合わせであってもよい。
また、ユーザ5Bが、音声3871を発声すると同時に、アバターオブジェクト6Bに特別ボタンオブジェクト3141を押下させる動作を行うと、アバターオブジェクト6Bが、当該動作を行うよう制御される。また、アバターオブジェクト6Bは、当該動作に応じて、第1仮想空間11_1Bから消えるように制御される。
図38(B)において、ユーザ端末800Aの表示部8702に表示されるゲーム画面は、視野画像1400_A1と、UI領域3861とを含む。UI領域3861は、UI領域3261に対して、特別UIボタン3864を含む点が異なる。
ここで、キャラクタ制御装置110Bから、音声3871を発声する動作を表す動作指図データが受信されると、視野画像1400_A1に含まれるアバターオブジェクト6Bが、音声3871を発声するよう制御される。
また、キャラクタ制御装置110Bから、特別ボタンオブジェクト3141を押下する動作を表す動作指図データが受信されると、視野画像1400_A1に含まれるアバターオブジェクト6Bが、当該動作を行った後、第1仮想空間11_1から消えるよう制御される。
これにより、ユーザ8Aは、アバターオブジェクト6Bが音声3871を発声すると共に特別ボタンオブジェクト3141を押下する動作に応じて、アバターオブジェクト6Bが第1仮想空間11_1から第2仮想空間11_2に移動したことを認識する。
特別UIボタン3864は、ビンゴが成立した場合に表示されるUIオブジェクトの一例である。特別UIボタン3864に対する操作が受け付けられると、第2仮想空間11_2Aを表す視野画像1400_A2が表示される。
図39は、アバターオブジェクト6Bが移動した後の第1仮想空間11_1及び第2仮想空間11_2を模式的に示す図である。
図39(A)は、ユーザ端末800A及びキャラクタ制御装置110B間で共有される第1仮想空間11_1の斜視図である。アバターオブジェクト6Bは、特別ボタンオブジェクト3141を対象とする動作が行われた後、第1仮想空間11_1から消えるよう制御される。したがって、図39(A)に示す第1仮想空間11_1は、パネルオブジェクト3151、特別ボタンオブジェクト3141、箱オブジェクト3142を含むが、アバターオブジェクト6Bを含んでいない。
図39(B)は、ユーザ端末800A及びキャラクタ制御装置110B間で共有される第2仮想空間11_2の斜視図である。第2仮想空間11_2は、アバターオブジェクト6Bを含んでいる。当該アバターオブジェクト6Bは、図示のように、第1仮想空間11_1に存在していたときと異なる態様で表示されてもよい。異なる態様とは、例えば、洋服、持ち物(ここでは、マイク)が異なることであってもよいが、これに限られない。アバターオブジェクト6Bが異なる態様で表示されることにより、第2仮想空間11_2において進行するライブ配信パートの特別感が向上する。
図40は、ユーザ端末800Aにおいて表示される視野画像1400_A2の一例を示す図である。図40において、視野画像1400_A2は、第2仮想空間11_2Aにおいて動作するアバターオブジェクト6Bを含んでいる。視野画像1400_A2は、ビンゴを成立させたユーザ8のみが視聴できる。
<チャットパートの処理フロー>
図41は、ユーザ端末800Aによって実行される、チャットパートにおける処理の流れを表すフローチャートである。図41に示す処理の流れは、図37のステップS802でNoとなった場合に実行される。
ステップS901において、ゲーム進行部8105は、チャットパートに応じたUIオブジェクトを表示部8702に表示する。UIオブジェクトは、コメントの入力を受け付けるフィールドと、コメントの送信を指示する操作を受け付けるボタンとを含む。
ステップS902において、ゲーム進行部8105は、ユーザ8Aによって入力されたコメントを表す情報を取得する。
ステップS903において、ゲーム進行部8105は、コメントを送信することを指示するユーザ8Aの操作に応じて、取得したコメントを表す情報を、サーバ600に対して送信する。
ステップS904において、ゲーム進行部8105は、取得したコメントを表す情報を、視野画像1400_A1に重畳して表示する。
ステップS905において、ゲーム進行部8105は、所定条件が満たされなった他のユーザ8によって他のユーザ端末800において入力されたコメントを表す情報を取得する。当該情報は、サーバ600から送信されることにより取得可能である。
ステップS906において、ゲーム進行部8105は、他のユーザ8によって入力されたコメントを表す情報を、視野画像1400_A1に重畳して表示する。
ステップS907において、ゲーム進行部8105は、チャットパートを終了するか否かを判断する。例えば、チャットパートは、ユーザ8Aによってチャットパートの終了を指示する操作が受け付けられた場合に、チャットパートを終了すると判断してもよい。
ステップS907においてNoの場合、ステップS902からの処理が実行される。ステップS907においてYesの場合、処理が終了する。
このように、ゲーム進行部8105は、ユーザ8Aによって入力されたコメントを表す情報と、他のユーザ8によって入力されたコメントを表す情報とを、視野画像1400_A1に重畳して表示する。
<チャットパートにおけるゲーム画面例>
図42は、チャットパートにおけるゲーム画面例の一例を示す図である。表示部8702は、視野画像1400_A1と、UI領域3261と、フィールド4231と、送信ボタン4232と、コメント4251〜4254とを含む。視野画像1400_A1と、UI領域3261とは、第1ミニゲームから第2ミニゲームに遷移する時点(図38(B))と同様に構成される。
フィールド4231及び送信ボタン4232は、チャットパートに応じたUIオブジェクトの一例である。フィールド4231は、コメントの入力を受け付けるUIオブジェクトである。送信ボタン4232は、コメントの送信指示を受け付けるUIオブジェクトである。フィールド4231に入力された情報は、送信ボタン4232に対する操作が受け付けられることによって、サーバ600に送信される。
コメント4251、4254は、他のユーザ端末800において他のユーザ8によって入力されたコメントを表す情報である。これらの情報は、サーバ600を介して他のユーザ端末800から受信される。コメント4252、4253は、当該ユーザ端末800Aにおいてユーザ8Aによって入力されたコメントを表す情報である。これらの情報は、サーバ600を介して他のユーザ端末800に送信される。コメント4251、4254は、当該ユーザ端末800において受信された順に、視野画像1400_A1に重畳されて表示されている。また、他のユーザ8によって入力された情報はゲーム画面の左側に表示され、ユーザ8Aによって入力された情報はゲーム画面の右側に表示される。
このように、コメント4251〜4254が視野画像1400_A1に重畳されることにより、所定条件が満たされかったユーザ8間で、第2仮想空間11_2Aに参加できず第1仮想空間11_1Aに取り残された残念感を共有することができる。
〔変形例〕
なお、本実施形態において、ゲームシステム1500に係るゲームは、第1プレイパート(第2ミニゲーム)が開始する前に、第1ユーザ(ユーザ5B)の操作によらずに、第3課題が設定された第3プレイパートを進行させてもよい。この場合、ユーザ端末800のゲーム進行部8105は、第3プレイパートにおける第3課題の達成度が大きいほど、第1プレイパート(第2ミニゲーム)におけるアバターオブジェクト6Bの選択する動作による選択の結果に応じて、第1課題を達成する上でより有利な処理を実行してもよい。第3プレイパートは、例えば、ロールプレイングゲーム、クイズゲーム、アクションゲーム、位置情報を使用したゲームその他のゲームジャンルのゲームであるとしてもよい。第3プレイパートにおける第3課題としては、例えば、ゲームプレイにおいてプレイヤーに設定されたゲーム課題であり、所定のゲームアイテムをプレイヤーが獲得すること、所定のプレイ単位(いわゆるクエストなど)のクリア条件を満たすこと、所定のスコアを獲得すること、その他の課題を含む。上記の実施形態の説明では、第1ミニゲーム(ジャンケン)の結果が良好であるほど、第2ミニゲーム(ビンゴゲーム)がプレイヤーに有利になる(ビンゴカードでビンゴになりやすくなるよう、ビンゴカードの各マスに複数の数字が関連付けられる)ものとしたが、このように、第3プレイパートのプレイ結果が良好であるほど、第1ミニゲームまたは第2ミニゲームの進行がプレイヤーに有利になるようにしてもよい。また、これら第1ミニゲームまたは第2ミニゲームの進行中や、進行前において課金処理のための操作をプレイヤーから受け付けることにより、第1ミニゲームまたは第2ミニゲームがプレイヤーに有利になるようにしてもよい。ここで、課金処理のためのプレイヤーの操作とは、ゲームプログラムにおいて有償仮想通貨を購入する操作であってもよいし、プレイヤーが有償仮想通貨を消費して(または課金処理により)ゲームオブジェクトを入手して、当該ゲームオブジェクトを、アバターオブジェクト6Bが配置される仮想空間に対して配置するよう指示する操作(いわゆる投げ銭)などであってもよい。
換言すると、第3プレイパートは、ユーザ5Bの操作に応じたアバターオブジェクト6Bの動作とは無関係に進行するパートとして提供される。また、第3プレイパートは、第2ミニゲームを含むライブゲーム進行パートが開始する前にプレイ可能である。なお、第3プレイパートはユーザ端末800のユーザ8の操作に基づいて進行するシングルプレイパートであってもよい。また、第3プレイパートは、複数のユーザ端末800のユーザ8の操作に基づいて進行するマルチプレイパートであってもよい。また、第3プレイパートは、ユーザ5Bの操作によらずに動作するキャラクタを用いて進行してもよい。
また、本実施形態において、ユーザ端末800において実現される第1仮想空間11_1A、第2仮想空間11_2Aに配置される仮想カメラ14_A1、14_A2の位置及び方向は、ユーザ8によって操作可能であってもよい。例えば、ユーザは、視野画像1400_A1、1400_A2が表示された表示部8702に対する操作を行うことにより、仮想カメラ14_A1、14_A2の位置及び方向を制御可能であってもよい。この場合、仮想カメラ14_A1、14_A2は、アバターオブジェクト6Bを含む所定領域には配置できないように制御されていてもよい。例えば、アバターオブジェクト6Bが存在する仮想的なステージの領域を当該所定領域として規定する。この場合、ユーザ8は、ステージ以外の領域であれば自由な位置に移動してアバターオブジェクト6を視聴できるという仮想体験をすることができる。
また、本実施形態において、第1ミニゲーム及び第2ミニゲームにおける選択肢オブジェクトは、1つの選択肢オブジェクトで複数の選択肢を表すものであってもよい。例えば、サイコロオブジェクトであれば、1つのサイコロオブジェクトで1から6までの6つの選択肢を表す。また、コインオブジェクトであれば、1つのコインオブジェクトで表と裏との2つの選択肢を表す。この場合、アバターオブジェト6Bが選択肢の何れかを選択する動作としては、サイコロオブジェクトを転がす動作、コインオブジェクトを投げる動作といったような、当該選択肢オブジェクトに応じた動作が適用される。この場合、当該選択肢オブジェクトには、仮想手が接触したと判定された状態でコントローラ300が有する所定ボタンの操作が検出された場合の挙動として、転がる挙動、上昇後落下する挙動等、当該選択肢オブジェクトに応じた挙動が定められる。
また、本実施形態において、アバターオブジェクト6Bによってビンゴボールオブジェクトが選択された後に、当該ビンゴボールオブジェクトの数値が決定されてもよい。この場合、決定された数値が、選択されたビンゴボールオブジェクトの表面に表示されてもよい。また、この場合、箱オブジェクト3142の中には、少なくとも1つのビンゴボールオブジェクトが配置されていればよい。
また、本実施形態において、第2ミニゲームであるビンゴゲームが有利になる程度が、第1ミニゲームにおいて第1条件が満たされた程度に応じて段階的に決定されてもよい。例えば、ジャンケンゲームにおいて、ジャンケンが複数回行われる場合、ユーザ8が勝った回数に応じた枚数のビンゴカードが、ビンゴゲームにおいてユーザに付与されてもよい。
また、本実施形態において、ユーザ端末800は、仮想空間制御部8106を有していなくてもよい。この場合、キャラクタ制御装置110Bは、当該装置においてHMD120に表示する視野画像に加えて、ユーザ端末800用の視野画像を生成してもよい。また、この場合、当該ユーザ端末800用の視野画像は、ユーザ端末800に配信されることにより再生される。例えば、この場合、キャラクタ制御装置110Bにおいて実現される第1仮想空間11_1Bに、仮想カメラ14_B1に加えて仮想カメラ14_A1が配置される。キャラクタ制御装置110Bは、仮想カメラ14_A1に基づく視野画像1400_A1を生成し、ユーザ端末800Aに配信すればよい。第2仮想空間11_2Bに応じた視野画像1400_A2も、同様にキャラクタ制御装置110Bにおいて生成され、配信可能である。この場合、視野画像1400_A1及び1400_A2は、それぞれ、キャラクタ制御装置110Bのユーザ5Bの操作に応じてリアルタイムに生成され、リアルタイムに配信されてもよい。また、視野画像1400_A1及び1400_A2は、それぞれ、あらかじめ生成された録画映像として配信されてもよい。
また、本実施形態において、本発明における第1キャラクタ及び第2キャラクタとして、異なるキャラクタを適用してもよい。この場合、ライブゲーム進行パートにおいて所定条件を満たしたユーザ8は、ライブゲーム進行パートを進行したアバターオブジェクト6Bとは異なるアバターオブジェクトによるライブ配信パートを視聴することができる。
また、本実施形態において、本発明における第1キャラクタ制御装置及び第2キャラクタ制御装置として、異なるキャラクタ制御装置を適用してもよい。例えば、第2キャラクタ制御装置として、HMDセット110Cを適用してもよい。この場合、ライブ配信パートは、ユーザ5C(第2ユーザ)の操作に基づいて進行する。
上記実施形態においては、HMDによってユーザが没入する仮想空間(VR空間)を例示して説明したが、HMDとして、透過型のHMDを採用してもよい。この場合、透過型のHMDを介してユーザが視認する現実空間に仮想空間を構成する画像の一部を合成した視界画像を出力することにより、拡張現実(AR:Augumented Reality)空間または複合現実(MR:Mixed Reality)空間における仮想体験をユーザに提供してもよい。この場合、操作オブジェクトに代えて、ユーザの手の動きに基づいて、仮想空間内における対象オブジェクトへの作用を生じさせてもよい。具体的には、プロセッサは、現実空間におけるユーザの手の位置の座標情報を特定するとともに、仮想空間内における対象オブジェクトの位置を現実空間における座標情報との関係で定義してもよい。これにより、プロセッサは、現実空間におけるユーザの手と仮想空間における対象オブジェクトとの位置関係を把握し、ユーザの手と対象オブジェクトとの間で上述したコリジョン制御等に対応する処理を実行可能となる。その結果、ユーザの手の動きに基づいて対象オブジェクトに作用を与えることが可能となる。
〔ソフトウェアによる実現例〕
制御部2100の制御ブロック(特に、操作受付部2101、表示制御部2102、UI制御部2103、アニメーション生成部2104、ゲーム進行部2105、仮想空間制御部2106、および反応処理部2107)、制御部6100の制御ブロック(特に、進行支援部6101および共有支援部6102)、ならびに、制御部8100の制御ブロック(特に、操作受付部8101、表示制御部8102、UI制御部113、アニメーション生成部8104、ゲーム進行部8105、仮想空間制御部8106、および進捗情報生成部8107)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、制御部2100、制御部6100及び制御部8100の一部又は全部を備えた情報処理装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明の一態様は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
〔付記事項〕
本発明の一側面に係る内容を列記すると以下のとおりである。
(項目1) プロセッサ(810)と、メモリ(820)とを備えるコンピュータ(ユーザ端末800)により実行されるゲームプログラム(831)について説明した。本開示のある局面によると、ゲームプログラムは、プロセッサおよびメモリを備え、配信者が行うリアルタイム配信を視聴者が視聴するための視聴端末としてのコンピュータにより実行されるゲームプログラムである。ゲームプログラムは、プロセッサに、第1配信者がリアルタイム配信を行うための第1配信端末と、視聴端末を含む複数の視聴端末との間で共有される第1仮想空間に、第1配信者に対応する第1アバターオブジェクトと、第1仮想カメラとを配置するステップと、リアルタイム配信が行われる間、第1仮想カメラの視野領域を示す第1視野画像を表示部に表示するステップと、ゲームプログラムに基づくゲームに含まれる、複数の状態間を遷移しながら進行する第1ゲームパートの状態ごとに、1つの状態におけるゲームを、第1配信者の身体の動き及び視聴者の操作に基づき進行させるゲーム処理を行うステップと、を実行させ、各状態におけるゲーム処理は、第1配信端末が第1配信者の身体の動きを検出して生成した、第1アバターオブジェクトの動作を示す第1動作情報を受信するステップと、第1動作情報が受信されたことに応答して、当該第1動作情報が示す動きを第1アバターオブジェクトが行うことを含むよう、第1視野画像を更新するステップと、第1動作情報が受信されたことに応答して、第1動作情報が示す動きが状態を遷移させるための動きであるか否かを判定するステップと、第1動作情報が示す動きが遷移させるための動きである場合に、第1ゲームパートの進行を、現在の状態から他の状態に遷移させるステップと、を含む。上記の構成によれば、第1配信者の身体の動き及び前記視聴者の操作に基づき各状態が進行する第1ゲームパートにおいて、視聴者は、ゲームを進行させる第1アバターオブジェクトの遷移させるための動作によって、第1ゲームパートの状態が切り替わることを認識できるので、臨場感が増し、ゲームへの没入感が高まる。
(項目2) (項目1)において、第1アバターオブジェクト及び第1仮想カメラを配置するステップは、第1仮想空間に第1オブジェクトをさらに配置し、判定するステップは、第1動作情報が示す動きが、第1仮想空間において第1アバターオブジェクトに第1オブジェクトを操作させる動きであるとき、遷移させるための動きであると判定してもよい。これにより、視聴者は、第1アバターオブジェクトが第1オブジェクトを操作する動作に応じて、第1ゲームパートの状態が切り替わることを認識できる。
(項目3) (項目2)において、第1アバターオブジェクト及び第1仮想カメラを配置するステップは、第1アバターオブジェクトの少なくとも一部として、第1アバターオブジェクトの手を表す操作オブジェクトを配置し、判定するステップは、第1動作情報が示す動きが、第1仮想空間において操作オブジェクトを第1オブジェクトに接触させる動きであるとき、遷移させるための動きであると判定してもよい。これにより、視聴者は、第1アバターオブジェクトの手が第1オブジェクトに接触すると、第1ゲームパートの状態が切り替わることを認識できる。
(項目4) (項目1)から(項目3)の何れか1項目において、各状態におけるゲーム処理は、 視聴者の操作を受け付けるためのユーザインタフェース(UI)オブジェクトであって、遷移前の状態に関連付けられたUIオブジェクトを表示部から消去するとともに、現在の状態に関連付けられたUIオブジェクトを第1視野画像と共に表示部に表示するステップをさらに含んでもよい。これにより、視聴者は、第1アバターオブジェクトによって遷移させるための動作が行われた結果、操作性(UIオブジェクト)が切り替わることで、第1ゲームパートの状態が遷移したことを認識できる。
(項目5) (項目1)から(項目4)の何れか1項目において、各状態におけるゲーム処理は、 遷移前の状態に関連付けられた第2オブジェクトを第1仮想空間から消去するとともに、当該遷移前の状態に関連付けられた第2オブジェクトとは態様の異なる、現在の状態に関連付けられた第2オブジェクトを第1仮想空間に配置するステップをさらに含んでもよい。これにより、視聴者は、第1アバターオブジェクトによって遷移させるための動作が行われた結果、第1仮想空間に配置される第2オブジェクトが切り替わることで、第1ゲームパートの状態が遷移したことを認識できる。
(項目6) (項目1)から(項目5)の何れか1項目において、第1アバターオブジェクト及び第1仮想カメラを配置するステップは、各状態を示す情報を表示するための第3オブジェクトを第1仮想空間にさらに配置し、各状態におけるゲーム処理は、 第3オブジェクトに表示される情報を、遷移前の状態を示す情報から、現在の状態を示す情報に変更するステップをさらに含んでもよい。これにより、視聴者は、第1アバターオブジェクトによって遷移させるための動作が行われた結果、第1仮想空間に配置された第3オブジェクトの表示が切り替わることで、第1ゲームパートの状態が遷移したことを認識できる。
(項目7) (項目1)から(項目6)の何れか1項目において、各状態におけるゲーム処理の少なくとも1つは、現在の状態に遷移する以前の少なくとも1つの状態に関連付けてメモリに記憶された達成度をメモリから取得するステップと、メモリから取得された達成度が高いほど、現在の状態に関連付けられた第1条件の達成度を高める上で視聴者にとって有利な処理を実行するステップと、第1配信者の身体の動き及び視聴者の操作に基づいて、第1条件が達成された達成度を判定するステップと、達成度を現在の状態に関連付けてメモリに記憶させるステップと、をさらに含んでもよい。これにより、ある状態において第1条件の達成度を高めるためには、当該状態に遷移する以前の少なくとも1つの状態において第1条件の達成度を高めることが有効となる。その結果、各状態において第1条件の達成度を高めることに対する視聴者の動機付けが向上する。
(項目8) (項目1)から(項目7)の何れか1項目において、ゲームプログラムは、プロセッサに、ゲームに含まれる、第1ゲームパートとは異なる第2ゲームパートを、視聴者の操作に応答して進行させるステップと、第2ゲームパートにおいて、視聴者の操作に基づき第2条件が達成された達成度を判定するステップと、第2条件の達成度をメモリに記憶させるステップと、をさらに実行させ、第1ゲームパートの各状態におけるゲーム処理の少なくとも1つは、第2条件の達成度をメモリから取得するステップと、第2条件の達成度が高いほど、現在の状態に関連付けられた第1条件の達成度を高める上で、視聴者にとって有利な処理を実行するステップと、をさらに含んでもよい。これにより、第1ゲームパートの少なくとも何れかの状態においてより有利に第1条件を達成するために、その前に、第2ゲームパートにおいて第2条件の達成度を高めることが有効となる。その結果、第1ゲームパートを視聴する前に、第2ゲームパートをプレイして第2条件の達成度を高めることに対する視聴者の動機付けが向上する。
(項目9) (項目7)または(項目8)において、第1ゲームパートの各状態におけるゲーム処理の少なくとも1つは、第1仮想空間に、複数の選択肢オブジェクトをさらに配置するステップと、複数の選択肢オブジェクトの一部または全部の各々に関連付けられた、視聴者の操作を受け付ける複数の第1UIオブジェクトを、第1視野画像と共に表示部に表示するステップと、第1動作情報が示す動きが、第1仮想空間において第1アバターオブジェクトに複数の選択肢オブジェクトの一部を選択させるための動きであるか否かを判定するステップと、第1動作情報が示す動きが選択させるための動きである場合に、第1アバターオブジェクトによって選択された選択肢オブジェクトを特定するステップと、特定した選択肢オブジェクトに関連付けられた第1UIオブジェクトに対する視聴者の操作に応答して、現在の状態に関連付けられた第1条件の少なくとも一部を達成する処理を実行するステップと、をさらに含み、有利な処理を実行するステップは、第1UIオブジェクトを表示するステップにおいて表示部に表示される第1UIオブジェクトの数をより多くする処理を実行してもよい。これにより、より多くの第1UIオブジェクトが表示部に表示されれば、何れかの第1UIオブジェクトに関連付けられた選択肢オブジェクトが第1アバターオブジェクトによって選択される可能性がより高くなるので、視聴者にとって、第1条件が達成しやすくなるという有利な効果がある。
(項目10) (項目1)から(項目9)の何れか1項目において、第1ゲームパートの各状態におけるゲーム処理のうち特定のゲーム処理は、遷移させるための動きであるか否かを判定するステップと、遷移させるステップとに代えて、現在の状態に関連付けられた特定の条件が満たされたか否かを判定するステップと、特定の条件が満たされた場合に、ゲームを第1ゲームパートから、第1ゲームパートとは異なる第3ゲームパートへ移行させるステップと、をさらに含み、ゲームプログラムは、プロセッサに、第3ゲームパートにおいて、複数の視聴端末のうち、特定の条件が満たされた複数の視聴端末と、第2配信者がリアルタイム配信を行うための第2配信端末との間で共有される、第1仮想空間とは異なる第2仮想空間に、第2配信者に対応する第2アバターオブジェクトと、第2仮想カメラとを配置するステップと、第3ゲームパートにおいてリアルタイム配信が行われる間、第2仮想カメラの視野領域を示す第2視野画像を、第1視野画像に代えて表示部に表示するステップと、第2配信端末が第2配信者の身体の動きを検出して生成した、第2アバターオブジェクトの動作を示す第2動作情報を受信するステップと、第2動作情報が受信されたことに応答して、当該第2動作情報が示す動きを第2アバターオブジェクトが行うことを含むよう、第2視野画像を更新するステップと、をさらに実行させてもよい。これにより、第1仮想空間とは異なる第2仮想空間でのリアルタイム配信を視聴するために、第1ゲームパートにおいて特定の条件が満たされるよう、特定の状態を進行することの動機付けが向上する。
(項目11) (項目10)において、ゲームプログラムは、プロセッサに、特定の条件が満たされなかった場合に、視聴者によって入力される第1入力情報を取得するステップと、第1入力情報が取得されたことに応答して、第1入力情報を、複数の視聴端末のうち、特定の条件が満たされなかった他の視聴端末に送信するステップと、特定の条件が満たされなかった他の視聴端末の視聴者によって入力された第2入力情報を受信するステップと、第1入力情報および第2入力情報を、第1視野画像と共に表示部に表示するステップと、をさらに実行させてもよい。これにより、特定の条件が満たされなかった視聴者間で、第2仮想空間に参加できなかった残念感を共有する場を提供できる。
(項目12) (項目10)又は(項目11)において、ゲームプログラムは、プロセッサに、特定の条件が満たされなかった場合に、視聴者による対価の支払い、又は、対価の支払いに基づき視聴者に付与されたアイテムの消費を指示する操作を受け付けるステップと、指示する操作に応答して、対価の課金処理またはアイテムを消費する処理を実行するとともに、ゲームを第1ゲームパートから第3ゲームパートへ移行させるステップと、をさらに実行させてもよい。これにより、特定の条件が満たされなくても、第3ゲームパートに参加可能な手段を視聴者に提供できる。
(項目13) ゲームプログラムを実行する方法を説明した。本開示のある局面によると、ゲームプログラムは、プロセッサおよびメモリを備えるコンピュータにより実行される。該方法は、プロセッサが(項目1)に記載の各ステップを実行する方法である。(項目13)に係る方法は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。
(項目14) 情報処理装置を説明した。本開示のある局面によると、該情報処理装置は、(項目1)に係るゲームプログラムを記憶するメモリ(820)と、該ゲームプログラムを実行することにより、情報処理装置(ユーザ端末800)の動作を制御するプロセッサ(810)とを備える。(項目14)に係る情報処理装置は、(項目1)に係るゲームプログラムと同様の作用効果を奏する。