図面 (/)

技術 ゲームプログラム、方法、および情報処理装置

出願人 株式会社コロプラ
発明者 馬場功淳福重潤哉
出願日 2020年10月23日 (1年1ヶ月経過) 出願番号 2020-178129
公開日 2021年3月11日 (8ヶ月経過) 公開番号 2021-037302
状態 未査定
技術分野 電子ゲーム機 イメージ処理・作成 デジタル計算機のユーザインターフェイス
主要キーワード 同期制御機 適用状態 乾電池型 進行ボタン 仮想パネル モーションコマンド 有線通信インターフェイス 動き検出モジュール
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2021年3月11日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

ゲームの世界への没入感を高め、該ゲームの興趣性を向上させることが可能なゲームプログラムを提供する。

解決手段

ゲームプログラムは、プロセッサに、複数のユーザ端末及び第1キャラクタ制御装置の間で共有される第1仮想空間に、第1キャラクタと、仮想カメラと、複数の選択肢を表すオブジェクトとを配置するステップS203と、仮想カメラの設定に従った第1視野画像を表示するステップS204と、第1キャラクタ制御装置に対する第1ユーザの操作に基づいて、複数の選択肢の何れかを選択する動作を第1キャラクタに行わせるステップS206と、選択する動作による選択の結果に応じたゲーム処理を実行するステップS207と、を実行させる。

概要

背景

従来、ユーザが選択した選択肢に応じて結末が異なるように物語が進行するゲームが広く知られている。例えば、非特許文献1には、の子のキャラクタ仮想的に親睦を深めることを主たる目的とする恋シミュレーションゲームが開示されている。ユーザは、提示された選択肢の中からキャラクタに対する働きかけとして最適と思うものを選択し、その働きかけに対して該キャラクタが反応することを繰り返すことで物語が進行する。

概要

ゲームの世界への没入感を高め、該ゲームの興趣性を向上させることが可能なゲームプログラムを提供する。ゲームプログラムは、プロセッサに、複数のユーザ端末及び第1キャラクタ制御装置の間で共有される第1仮想空間に、第1キャラクタと、仮想カメラと、複数の選択肢を表すオブジェクトとを配置するステップS203と、仮想カメラの設定に従った第1視野画像を表示するステップS204と、第1キャラクタ制御装置に対する第1ユーザの操作に基づいて、複数の選択肢の何れかを選択する動作を第1キャラクタに行わせるステップS206と、選択する動作による選択の結果に応じたゲーム処理を実行するステップS207と、を実行させる。

目的

例えば、非特許文献1には、女の子のキャラクタと仮想的に親睦を深めることを主たる目的とする

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

プロセッサおよびメモリを備え、配信者が行うリアルタイム配信視聴者視聴するための視聴端末としてのコンピュータにより実行されるゲームプログラムであって、前記ゲームプログラムは、前記プロセッサに、前記配信者がリアルタイム配信を行うための配信端末と、前記視聴端末を含む複数の視聴端末との間で共有される仮想空間に、前記配信者に対応するアバターオブジェクトと、仮想カメラと、複数の選択肢オブジェクトとを配置するステップと、前記リアルタイム配信が行われる間、前記仮想カメラの視野領域を示す視野画像を表示部に表示するステップと、前記リアルタイム配信が行われる間、前記視聴者の入力操作受け付けユーザインタフェース(UI)オブジェクトを、前記表示部に表示するステップと、前記配信端末が前記配信者の操作を検出して生成した、前記仮想空間に配置された前記複数の選択肢オブジェクトから一部を選択する、前記アバターオブジェクトの動作を示す動作情報を受信するステップと、前記動作情報が受信されたことに応答して、前記仮想空間に配置された前記複数の選択肢オブジェクトから一部を選択する前記アバターオブジェクトの動作を含むよう、前記視野画像を更新するステップと、前記動作情報が受信されたことに応答して、前記アバターオブジェクトにより選択された選択肢オブジェクトを特定するステップと、前記特定した選択肢オブジェクトに応じて、前記UIオブジェクトの状態を変化させるステップと、を実行させるゲームプログラム。

請求項2

前記UIオブジェクトを表示するステップは、前記UIオブジェクトの少なくとも一部として、前記視聴者の操作を受け付ける複数の第1UIオブジェクトを、操作可能な状態または操作不可能な状態で表示し、前記変化させるステップは、前記複数の第1UIオブジェクトのうち、前記特定した選択肢オブジェクトに基づいて決定される前記第1UIオブジェクトの状態を、前記操作可能な状態と前記操作不可能な状態との間で変化させる、請求項1に記載のゲームプログラム。

請求項3

前記UIオブジェクトを表示するステップは、前記仮想空間に配置される複数の選択肢オブジェクトの一部または全部の各々に対応する前記複数の第1UIオブジェクトのうち未選択であるものを、未選択であることが認識可能な状態かつ前記操作不可能な状態で表示し、前記変化させるステップは、前記動作情報が受信されたことに応答して、前記特定した選択肢オブジェクトに対応する前記第1UIオブジェクトを、前記未選択であることが認識可能な状態かつ前記操作可能な状態に変化させ、前記ゲームプログラムは、前記プロセッサに、前記状態を変化させた第1UIオブジェクトに対する前記視聴者の操作に応答して、当該第1UIオブジェクトを、選択済みであることが認識可能な状態かつ前記操作不可能な状態に変化させる処理を実行するステップと、前記選択済みであることが認識可能な状態の前記第1UIオブジェクトの組み合わせが第1条件を満たすか否かを判定し、判定結果を前記メモリに記憶させるステップと、をさらに実行させる、請求項2に記載のゲームプログラム。

請求項4

前記UIオブジェクトを表示するステップは、前記仮想空間に配置される複数の選択肢オブジェクトの各々に対応する前記複数の第1UIオブジェクトを表示し、前記ゲームプログラムは、前記プロセッサに、前記動作情報を受信するステップを実行する前に、前記複数の第1UIオブジェクトから一部を選択する前記視聴者の操作を受け付けるステップをさらに実行させ、前記変化させるステップは、前記動作情報が受信されたことに応答して、前記特定した選択肢オブジェクトと、前記視聴者によって選択された第1UIオブジェクトとの組み合わせが第2条件を満たすか否かを判定し、判定結果に基づいて、前記第1UIオブジェクトを含む前記UIオブジェクトの状態を変化させる、請求項2に記載のゲームプログラム。

請求項5

前記配置するステップは、前記アバターオブジェクトの少なくとも一部として前記アバターオブジェクトの手を表す操作オブジェクトを配置し、前記動作情報を受信するステップは、前記仮想空間に配置された前記複数の選択肢オブジェクトの一部に前記操作オブジェクトを接触させる、前記アバターオブジェクトの動作を示す動作情報を受信する、請求項1から4の何れか1項に記載のゲームプログラム。

請求項6

コンピュータがゲームプログラムを実行する方法であって、前記コンピュータは、プロセッサおよびメモリを備え、前記プロセッサが請求項1に記載の各ステップを実行する方法。

請求項7

情報処理装置であって、前記情報処理装置は、請求項1に記載のゲームプログラムを記憶するメモリと、該ゲームプログラムを実行することにより、情報処理装置の動作を制御するプロセッサとを備えている、情報処理装置。

技術分野

0001

本開示はゲームプログラム、ゲームプログラムを実行する方法および情報処理装置に関する。

背景技術

0002

従来、ユーザが選択した選択肢に応じて結末が異なるように物語が進行するゲームが広く知られている。例えば、非特許文献1には、の子のキャラクタ仮想的に親睦を深めることを主たる目的とする恋シミュレーションゲームが開示されている。ユーザは、提示された選択肢の中からキャラクタに対する働きかけとして最適と思うものを選択し、その働きかけに対して該キャラクタが反応することを繰り返すことで物語が進行する。

先行技術

0003

電撃オンライン- ゲーム・アプリ漫画アニメ情報イト”、[online]、KADOKAWA CORPORATION、[2018年5月8日検索]、インターネット(URL:http://dengekionline.com/elem/000/000/279/279193/index-2.html)

発明が解決しようとする課題

0004

非特許文献1に開示されているゲームでは、キャラクタの応答パターンが予め用意されている。そして、ユーザの入力操作に応じて、該キャラクタの応答が、該応答パターンの中から決定されて出力され、ゲームが進行する。したがって、キャラクタの動作のバリエーションは、予め用意されたデータの内容を超えて広がることがない。そのため、ユーザは、キャラクタとの関わり合いに対して、該キャラクタがまるで現実の世界にいるかのような現実感を覚えることができず、いずれ飽きるという問題がある。一般に、ユーザに長くプレイさせることを意図して開発されたゲームにおいては、ユーザがゲームに飽きるという問題に如何に対処するかが重要である。ゲームには、常に、ユーザにプレイを動機付けるような魅力的コンテンツを提供することが求められる。例えば、ゲームに登場するキャラクタが、高い現実感を備えていれば、ユーザは、ゲームの世界に没入しやすくなり、キャラクタとの関わり合いにより興趣性を見出すと考えられる。

0005

本開示の一態様は、ゲームの世界への没入感を高め、該ゲームの興趣性を向上させることを目的とする。

課題を解決するための手段

0006

本開示に係るゲームプログラムは、プロセッサおよびメモリを備えるユーザ端末により実行される。ゲームプログラムは、プロセッサに、配信者リアルタイム配信を行うための配信端末と、視聴端末を含む複数の視聴端末との間で共有される仮想空間に、配信者に対応するアバターオブジェクトと、仮想カメラと、複数の選択肢オブジェクトとを配置するステップと、リアルタイム配信が行われる間、仮想カメラの視野領域を示す視野画像を表示部に表示するステップと、リアルタイム配信が行われる間、視聴者の入力操作を受け付けユーザインタフェース(UI)オブジェクトを、表示部に表示するステップと、配信端末が配信者の操作を検出して生成した、仮想空間に配置された複数の選択肢オブジェクトから一部を選択する、アバターオブジェクトの動作を示す動作情報を受信するステップと、動作情報が受信されたことに応答して、仮想空間に配置された複数の選択肢オブジェクトから一部を選択するアバターオブジェクトの動作を含むよう、視野画像を更新するステップと、動作情報が受信されたことに応答して、アバターオブジェクトにより選択された選択肢オブジェクトを特定するステップと、特定した選択肢オブジェクトに応じて、UIオブジェクトの状態を変化させるステップと、を実行させる。

0007

本開示に係る方法は、プロセッサ及びメモリを備えるコンピュータがゲームプログラムを実行する方法である。方法は、プロセッサが、上述した各ステップを実行することを含む。

0008

本開示に係る情報処理装置は、上述したゲームプログラムを記憶するメモリと、ゲームプログラムを実行することにより、情報処理装置の動作を制御するプロセッサと、を備えている。

発明の効果

0009

本開示の一態様によれば、ゲームの世界への没入感を高め、該ゲームの興趣性を向上させる効果を奏する。

図面の簡単な説明

0010

ある実施の形態に従うHMDシステムの構成の概略を表す図である。
ある実施の形態に従うコンピュータのハードウェア構成の一例を表すブロック図である。
ある実施の形態に従うHMDに設定されるuvw視野座標系概念的に表す図である。
ある実施の形態に従う仮想空間を表現する一態様を概念的に表す図である。
ある実施の形態に従うHMDを装着するユーザの頭部を上から表した図である。
仮想空間において視界領域をX方向から見たYZ断面を表す図である。
仮想空間において視界領域をY方向から見たXZ断面を表す図である。
ある実施の形態に従うコントローラ概略構成を表す図である。
ある実施の形態に従うユーザの右手に対して規定されるヨー、ロールピッチの各方向の一例を示す図である。
ある実施の形態に従うサーバのハードウェア構成の一例を表すブロック図である。
ある実施の形態に従うコンピュータをモジュール構成として表わすブロック図である。
ある実施の形態に従うHMDセットにおいて実行される処理の一部を表すシーケンスチャートである。
ネットワークにおいて、各HMDがユーザに仮想空間を提供する状況を表す模式図である。
図12(A)におけるユーザ5Aの視界画像を示す図である。
ある実施の形態に従うHMDシステムにおいて実行する処理を示すシーケンス図である。
ある実施の形態に従うコンピュータのモジュールの詳細構成を表わすブロック図である。
ある実施の形態に従うゲームシステムの構成の概略を表す図である。
ある実施の形態に従うユーザ端末のハードウェア構成を示す図である。
ある実施の形態に従うゲームシステムに含まれるユーザ端末、サーバおよびキャラクタ制御装置機能的構成を示すブロック図である。
ある実施の形態に従うユーザ端末に含まれる仮想空間制御部の詳細な構成を示す図である。
ある実施の形態に従うキャラクタ制御装置に含まれる仮想空間制御部の詳細な構成を示す図である。
ある実施の形態に従うゲーム進行の概略を示すフローチャートである。
ある実施の形態に従うライブゲーム配信パートにおける処理の流れを表すフローチャートである。
(A)は、ある実施の形態に従うキャラクタ制御装置において実現される第1仮想空間の一例を示す図である。(B)は、当該キャラクタ制御装置において表示される視野画像の一例を示す図である。
(A)は、ある実施の形態に従うユーザ端末において実現される第1仮想空間の一例を示す図である。(B)は、当該ユーザ端末において表示される視野画像の一例を示す図である。
ある実施の形態に従うゲームシステムによって実行される第1ミニゲームにおける処理の流れを表すフローチャートである。
(A)は、ある実施の形態に従うキャラクタ制御装置において第1ミニゲーム進行時に実現される第1仮想空間の一例を示す斜視図である。(B)は、当該第1仮想空間に同期してユーザ端末において実現される第1仮想空間の一例を示す上面図である。
(A)は、ある実施の形態に従うキャラクタ制御装置において第1ミニゲーム進行時に表示される視野画像の一例を示す図である。(B)は、ユーザ端末において第1ミニゲーム進行時に表示されるゲーム画面の一例を示す図である。
(A)は、ある実施の形態に従うキャラクタ制御装置において第1ミニゲーム進行時に表示される視野画像の一例を示す図である。(B)は、ユーザ端末において第1ミニゲーム進行時に表示されるゲーム画面の一例を示す図である。
(A)は、ある実施の形態に従うキャラクタ制御装置において第1ミニゲーム進行時に表示される視野画像の一例を示す図である。(B)は、ユーザ端末において第1ミニゲーム進行時に表示されるゲーム画面の一例を示す図である。
(A)は、ある実施の形態に従うキャラクタ制御装置において第1ミニゲーム進行時に表示される視野画像の一例を示す図である。(B)は、ユーザ端末において第1ミニゲーム進行時に表示されるゲーム画面の一例を示す図である。
ある実施の形態に従うゲームシステムによって実行される第2ミニゲームにおける処理の流れを表すフローチャートである。
(A)は、ある実施の形態に従うキャラクタ制御装置において第2ミニゲーム進行時に実現される第1仮想空間の一例を示す斜視図である。(B)は、当該第1仮想空間に同期してユーザ端末において実現される第1仮想空間の一例を示す上面図である。
(A)は、ある実施の形態に従うキャラクタ制御装置において第2ミニゲーム進行時に表示される視野画像の一例を示す図である。(B)は、ユーザ端末において第2ミニゲーム進行時に表示されるゲーム画面の一例を示す図である。
ユーザ端末において第2ミニゲーム進行時に表示されるゲーム画面の一例を示す図である。
(A)は、ある実施の形態に従うキャラクタ制御装置において第2ミニゲーム進行時に表示される視野画像の一例を示す図である。(B)は、ユーザ端末において第2ミニゲーム進行時に表示されるゲーム画面の一例を示す図である。
ユーザ端末において第2ミニゲーム進行時に表示されるゲーム画面の一例を示す図である。
(A)は、ある実施の形態に従うキャラクタ制御装置において第2ミニゲーム進行時に表示される視野画像の一例を示す図である。(B)は、ユーザ端末において第2ミニゲーム進行時に表示されるゲーム画面の一例を示す図である。
ある実施の形態に従うゲームシステムによって実行されるライブ配信パートにおける処理の流れを表すフローチャートである。
(A)は、ある実施の形態に従うキャラクタ制御装置において第2仮想空間に移動する際に表示される視野画像の一例を示す図である。(B)は、ユーザ端末において第2仮想空間に移動する際に表示されるゲーム画面の一例を示す図である。
(A)は、ある実施の形態に従うアバターオブジェクト退出後の第1仮想空間の一例を示す図である。(B)は、当該アバターオブジェクト登場後の第2仮想空間の一例を示す図である。
ユーザ端末において第2仮想空間参加時に表示されるゲーム画面の一例を示す図である。
ある実施の形態に従うゲームシステムによって実行されるチャットパートにおける処理の流れを表すフローチャートである。
ユーザ端末においてチャットパート進行時に表示されるゲーム画面の一例を示す図である。

実施例

0011

以下、この技術的思想の実施の形態について図面を参照しながら詳細に説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。本開示において示される1以上の実施形態において、各実施形態が含む要素を互いに組み合わせることができ、かつ、当該組み合わせられた結果物も本開示が示す実施形態の一部をなすものとする。

0012

[HMDシステムの構成]
図1を参照して、HMD(Head-Mounted Device)システム100の構成について説明する。図1は、本実施の形態に従うHMDシステム100の構成の概略を表す図である。HMDシステム100は、家庭用のシステムとしてあるいは業務用のシステムとして提供される。

0013

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を含み得る。

0014

ある局面において、コンピュータ200は、インターネットその他のネットワーク2に接続可能であり、ネットワーク2に接続されているサーバ600その他のコンピュータと通信可能である。その他のコンピュータとしては、例えば、他のHMDセット110のコンピュータや外部機器700が挙げられる。別の局面において、HMD120は、HMDセンサ410の代わりに、センサ190を含み得る。

0015

HMD120は、ユーザ5の頭部に装着され、動作中に仮想空間をユーザ5に提供し得る。より具体的には、HMD120は、右目用の画像および左目用の画像をモニタ130にそれぞれ表示する。ユーザ5の各目がそれぞれの画像を視認すると、ユーザ5は、両目視差に基づき当該画像を3次元画像として認識し得る。HMD120は、モニタを備える所謂ヘッドマウントディスプレイと、スマートフォンその他のモニタを有する端末を装着可能なヘッドマウント機器のいずれをも含み得る。

0016

モニタ130は、例えば、非透過型の表示装置として実現される。ある局面において、モニタ130は、ユーザ5の両目の前方に位置するようにHMD120の本体に配置されている。したがって、ユーザ5は、モニタ130に表示される3次元画像を視認すると、仮想空間に没入することができる。ある局面において、仮想空間は、例えば、背景、ユーザ5が操作可能なオブジェクト、ユーザ5が選択可能なメニューの画像を含む。ある局面において、モニタ130は、所謂スマートフォンその他の情報表示端末が備える液晶モニタまたは有機EL(Electro Luminescence)モニタとして実現され得る。

0017

別の局面において、モニタ130は、透過型の表示装置として実現され得る。この場合、HMD120は、図1に示されるようにユーザ5の目を覆う密閉型ではなく、メガネ型のような開放型であり得る。透過型のモニタ130は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。モニタ130は、仮想空間を構成する画像の一部と、現実空間とを同時に表示する構成を含んでいてもよい。例えば、モニタ130は、HMD120に搭載されたカメラで撮影した現実空間の画像を表示してもよいし、一部の透過率を高く設定することにより現実空間を視認可能にしてもよい。

0018

ある局面において、モニタ130は、右目用の画像を表示するためのサブモニタと、左目用の画像を表示するためのサブモニタとを含み得る。別の局面において、モニタ130は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、モニタ130は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。

0019

ある局面において、HMD120は、図示せぬ複数の光源を含む。各光源は例えば、赤外線を発するLED(Light Emitting Diode)により実現される。HMDセンサ410は、HMD120の動きを検出するためのポジショントラッキング機能を有する。より具体的には、HMDセンサ410は、HMD120が発する複数の赤外線を読み取り、現実空間内におけるHMD120の位置および傾きを検出する。

0020

別の局面において、HMDセンサ410は、カメラにより実現されてもよい。この場合、HMDセンサ410は、カメラから出力されるHMD120の画像情報を用いて、画像解析処理を実行することにより、HMD120の位置および傾きを検出することができる。

0021

別の局面において、HMD120は、位置検出器として、HMDセンサ410の代わりに、あるいはHMDセンサ410に加えてセンサ190を備えてもよい。HMD120は、センサ190を用いて、HMD120自身の位置および傾きを検出し得る。例えば、センサ190が角速度センサ地磁気センサ、あるいは加速度センサである場合、HMD120は、HMDセンサ410の代わりに、これらの各センサのいずれかを用いて、自身の位置および傾きを検出し得る。一例として、センサ190が角速度センサである場合、角速度センサは、現実空間におけるHMD120の3軸周りの角速度を経時的に検出する。HMD120は、各角速度に基づいて、HMD120の3軸周りの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、HMD120の傾きを算出する。

0022

注視センサ140は、ユーザ5の右目および左目視線が向けられる方向を検出する。つまり、注視センサ140は、ユーザ5の視線を検出する。視線の方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ140は、当該アイトラッキング機能を有するセンサにより実現される。ある局面において、注視センサ140は、右目用のセンサおよび左目用のセンサを含むことが好ましい。注視センサ140は、例えば、ユーザ5の右目および左目に赤外光照射するとともに、照射光に対する角膜および虹彩からの反射光を受けることにより各眼球回転角を検出するセンサであってもよい。注視センサ140は、検出した各回転角に基づいて、ユーザ5の視線を検知することができる。

0023

第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の顔を撮影するようにしてもよい。

0024

マイク170は、ユーザ5の発話音声信号電気信号)に変換してコンピュータ200に出力する。スピーカ180は、音声信号を音声に変換してユーザ5に出力する。別の局面において、HMD120は、スピーカ180に替えイヤホンを含み得る。

0025

コントローラ300は、有線または無線によりコンピュータ200に接続されている。コントローラ300は、ユーザ5からコンピュータ200への命令の入力を受け付ける。ある局面において、コントローラ300は、ユーザ5によって把持可能に構成される。別の局面において、コントローラ300は、ユーザ5の身体あるいは衣類の一部に装着可能に構成される。さらに別の局面において、コントローラ300は、コンピュータ200から送信される信号に基づいて、振動、音、光のうちの少なくともいずれかを出力するように構成されてもよい。さらに別の局面において、コントローラ300は、ユーザ5から、仮想空間に配置されるオブジェクトの位置や動きを制御するための操作を受け付ける。

0026

ある局面において、コントローラ300は、複数の光源を含む。各光源は例えば、赤外線を発するLEDにより実現される。HMDセンサ410は、ポジショントラッキング機能を有する。この場合、HMDセンサ410は、コントローラ300が発する複数の赤外線を読み取り、現実空間内におけるコントローラ300の位置および傾きを検出する。別の局面において、HMDセンサ410は、カメラにより実現されてもよい。この場合、HMDセンサ410は、カメラから出力されるコントローラ300の画像情報を用いて、画像解析処理を実行することにより、コントローラ300の位置および傾きを検出することができる。

0027

モーションセンサ420は、ある局面において、ユーザ5の手に取り付けられて、ユーザ5の手の動きを検出する。例えば、モーションセンサ420は、手の回転速度、回転数等を検出する。検出された信号は、コンピュータ200に送られる。モーションセンサ420は、例えば、コントローラ300に設けられている。ある局面において、モーションセンサ420は、例えば、ユーザ5に把持可能に構成されたコントローラ300に設けられている。別の局面において、現実空間における安全のため、コントローラ300は、手袋型のようにユーザ5の手に装着されることにより容易に飛んで行かないものに装着される。さらに別の局面において、ユーザ5に装着されないセンサがユーザ5の手の動きを検出してもよい。例えば、ユーザ5を撮影するカメラの信号が、ユーザ5の動作を表わす信号として、コンピュータ200に入力されてもよい。モーションセンサ420とコンピュータ200とは、一例として、無線により互いに接続される。無線の場合、通信形態は特に限られず、例えば、Bluetooth(登録商標)その他の公知の通信手法が用いられる。

0028

ディスプレイ430は、モニタ130に表示されている画像と同様の画像を表示する。これにより、HMD120を装着しているユーザ5以外のユーザにも当該ユーザ5と同様の画像を視聴させることができる。ディスプレイ430に表示される画像は、3次元画像である必要はなく、右目用の画像や左目用の画像であってもよい。ディスプレイ430としては、例えば、液晶ディスプレイ有機ELモニタなどが挙げられる。

0029

サーバ600は、コンピュータ200にプログラムを送信し得る。別の局面において、サーバ600は、他のユーザによって使用されるHMD120に仮想現実を提供するための他のコンピュータ200と通信し得る。例えば、アミューズメント施設において、複数のユーザが参加型のゲームを行なう場合、各コンピュータ200は、各ユーザの動作に基づく信号をサーバ600を介して他のコンピュータ200と通信して、同じ仮想空間において複数のユーザが共通のゲームを楽しむことを可能にする。各コンピュータ200は、各ユーザの動作に基づく信号をサーバ600を介さずに他のコンピュータ200と通信するようにしてもよい。

0030

外部機器700は、コンピュータ200と通信可能な機器であればどのような機器であってもよい。外部機器700は、例えば、ネットワーク2を介してコンピュータ200と通信可能な機器であってもよいし、近距離無線通信有線接続によりコンピュータ200と直接通信可能な機器であってもよい。外部機器700としては、例えば、スマートデバイス、PC(Personal Computer)、及びコンピュータ200の周辺機器などが挙げられるが、これらに限定されるものではない。

0031

[コンピュータのハードウェア構成]
図2を参照して、本実施の形態に係るコンピュータ200について説明する。図2は、本実施の形態に従うコンピュータ200のハードウェア構成の一例を表すブロック図である。コンピュータ200は、主たる構成要素として、プロセッサ210と、メモリ220と、ストレージ230と、入出力インターフェイス240と、通信インターフェイス250とを備える。各構成要素は、それぞれ、バス260に接続されている。

0032

プロセッサ210は、コンピュータ200に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ220またはストレージ230に格納されているプログラムに含まれる一連の命令を実行する。ある局面において、プロセッサ210は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、MPU(Micro Processor Unit)、FPGA(Field-Programma BleGate Array)その他のデバイスとして実現される。

0033

メモリ220は、プログラムおよびデータを一時的に保存する。プログラムは、例えば、ストレージ230からロードされる。データは、コンピュータ200に入力されたデータと、プロセッサ210によって生成されたデータとを含む。ある局面において、メモリ220は、RAM(Random Access Memory)その他の揮発メモリとして実現される。

0034

ストレージ230は、プログラムおよびデータを永続的に保持する。ストレージ230は、例えば、ROM(Read-Only Memory)、ハードディスク装置フラッシュメモリ、その他の不揮発記憶装置として実現される。ストレージ230に格納されるプログラムは、HMDシステム100において仮想空間を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、他のコンピュータ200との通信を実現するためのプログラムを含む。ストレージ230に格納されるデータは、仮想空間を規定するためのデータおよびオブジェクト等を含む。

0035

別の局面において、ストレージ230は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに別の局面において、コンピュータ200に内蔵されたストレージ230の代わりに、外部の記憶装置に保存されているプログラムおよびデータを使用する構成が使用されてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のHMDシステム100が使用される場面において、プログラムやデータの更新を一括して行なうことが可能になる。

0036

入出力インターフェイス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は上述のものに限られない。

0037

ある局面において、入出力インターフェイス240は、さらに、コントローラ300と通信し得る。例えば、入出力インターフェイス240は、コントローラ300およびモーションセンサ420から出力された信号の入力を受ける。別の局面において、入出力インターフェイス240は、プロセッサ210から出力された命令を、コントローラ300に送る。当該命令は、振動、音声出力発光等をコントローラ300に指示する。コントローラ300は、当該命令を受信すると、その命令に応じて、振動、音声出力または発光のいずれかを実行する。

0038

通信インターフェイス250は、ネットワーク2に接続されて、ネットワーク2に接続されている他のコンピュータ(例えば、サーバ600)と通信する。ある局面において、通信インターフェイス250は、例えば、LAN(Local Area Network)その他の有線通信インターフェイス、あるいは、WiFi(Wireless Fidelity)、Bluetooth(登録商標)、NFC(Near Field Communication)その他の無線通信インターフェイスとして実現される。通信インターフェイス250は上述のものに限られない。

0039

ある局面において、プロセッサ210は、ストレージ230にアクセスし、ストレージ230に格納されている1つ以上のプログラムをメモリ220にロードし、当該プログラムに含まれる一連の命令を実行する。当該1つ以上のプログラムは、コンピュータ200のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ210は、入出力インターフェイス240を介して、仮想空間を提供するための信号をHMD120に送る。HMD120は、その信号に基づいてモニタ130に映像を表示する。

0040

図2に示される例では、コンピュータ200は、HMD120の外部に設けられる構成が示されているが、別の局面において、コンピュータ200は、HMD120に内蔵されてもよい。一例として、モニタ130を含む携帯型の情報通信端末(例えば、スマートフォン)がコンピュータ200として機能してもよい。

0041

コンピュータ200は、複数のHMD120に共通して用いられる構成であってもよい。このような構成によれば、例えば、複数のユーザに同一の仮想空間を提供することもできるので、各ユーザは同一の仮想空間で他のユーザと同一のアプリケーションを楽しむことができる。

0042

ある実施の形態において、HMDシステム100では、現実空間における座標系である実座標系が予め設定されている。実座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、並びに、鉛直方向および水平方向の双方に直交する前後方向にそれぞれ平行な、3つの基準方向(軸)を有する。実座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれ、x軸、y軸、z軸と規定される。より具体的には、実座標系において、x軸は現実空間の水平方向に平行である。y軸は、現実空間の鉛直方向に平行である。z軸は現実空間の前後方向に平行である。

0043

ある局面において、HMDセンサ410は、赤外線センサを含む。赤外線センサが、HMD120の各光源から発せられた赤外線をそれぞれ検出すると、HMD120の存在を検出する。HMDセンサ410は、さらに、各点の値(実座標系における各座標値)に基づいて、HMD120を装着したユーザ5の動きに応じた、現実空間内におけるHMD120の位置および傾き(向き)を検出する。より詳しくは、HMDセンサ410は、経時的に検出された各値を用いて、HMD120の位置および傾きの時間的変化を検出できる。

0044

HMDセンサ410によって検出されたHMD120の各傾きは、実座標系におけるHMD120の3軸周りの各傾きに相当する。HMDセンサ410は、実座標系におけるHMD120の傾きに基づき、uvw視野座標系をHMD120に設定する。HMD120に設定されるuvw視野座標系は、HMD120を装着したユーザ5が仮想空間において物体を見る際の視点座標系に対応する。

0045

[uvw視野座標系]
図3を参照して、uvw視野座標系について説明する。図3は、ある実施の形態に従うHMD120に設定されるuvw視野座標系を概念的に表す図である。HMDセンサ410は、HMD120の起動時に、実座標系におけるHMD120の位置および傾きを検出する。プロセッサ210は、検出された値に基づいて、uvw視野座標系をHMD120に設定する。

0046

図3に示されるように、HMD120は、HMD120を装着したユーザ5の頭部を中心(原点)とした3次元のuvw視野座標系を設定する。より具体的には、HMD120は、実座標系を規定する水平方向、鉛直方向、および前後方向(x軸、y軸、z軸)を、実座標系内においてHMD120の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる3つの方向を、HMD120におけるuvw視野座標系のピッチ軸(u軸)、ヨー軸v軸)、およびロール軸(w軸)として設定する。

0047

ある局面において、HMD120を装着したユーザ5が直立し、かつ、正面を視認している場合、プロセッサ210は、実座標系に平行なuvw視野座標系をHMD120に設定する。この場合、実座標系における水平方向(x軸)、鉛直方向(y軸)、および前後方向(z軸)は、HMD120におけるuvw視野座標系のピッチ軸(u軸)、ヨー軸(v軸)、およびロール軸(w軸)に一致する。

0048

uvw視野座標系がHMD120に設定された後、HMDセンサ410は、HMD120の動きに基づいて、設定されたuvw視野座標系におけるHMD120の傾きを検出できる。この場合、HMDセンサ410は、HMD120の傾きとして、uvw視野座標系におけるHMD120のピッチ角(θu)、ヨー角(θv)、およびロール角(θw)をそれぞれ検出する。ピッチ角(θu)は、uvw視野座標系におけるピッチ軸周りのHMD120の傾き角度を表す。ヨー角(θv)は、uvw視野座標系におけるヨー軸周りのHMD120の傾き角度を表す。ロール角(θw)は、uvw視野座標系におけるロール軸周りのHMD120の傾き角度を表す。

0049

HMDセンサ410は、検出されたHMD120の傾きに基づいて、HMD120が動いた後のHMD120におけるuvw視野座標系を、HMD120に設定する。HMD120と、HMD120のuvw視野座標系との関係は、HMD120の位置および傾きに関わらず、常に一定である。HMD120の位置および傾きが変わると、当該位置および傾きの変化連動して、実座標系におけるHMD120のuvw視野座標系の位置および傾きが変化する。

0050

ある局面において、HMDセンサ410は、赤外線センサからの出力に基づいて取得される赤外線の光強度および複数の点間の相対的な位置関係(例えば、各点間の距離など)に基づいて、HMD120の現実空間内における位置を、HMDセンサ410に対する相対位置として特定してもよい。プロセッサ210は、特定された相対位置に基づいて、現実空間内(実座標系)におけるHMD120のuvw視野座標系の原点を決定してもよい。

0051

[仮想空間]
図4を参照して、仮想空間についてさらに説明する。図4は、ある実施の形態に従う仮想空間11を表現する一態様を概念的に表す図である。仮想空間11は、中心12の360度方向の全体を覆う全天球状の構造を有する。図4では、説明を複雑にしないために、仮想空間11のうちの上半分の天球が例示されている。仮想空間11では各メッシュが規定される。各メッシュの位置は、仮想空間11に規定されるグローバル座標系であるXYZ座標系における座標値として予め規定されている。コンピュータ200は、仮想空間11に展開可能なパノラマ画像13(静止画動画等)を構成する各部分画像を、仮想空間11において対応する各メッシュにそれぞれ対応付ける。

0052

ある局面において、仮想空間11では、中心12を原点とするXYZ座標系が規定される。XYZ座標系は、例えば、実座標系に平行である。XYZ座標系における水平方向、鉛直方向(上下方向)、および前後方向は、それぞれX軸、Y軸、Z軸として規定される。したがって、XYZ座標系のX軸(水平方向)が実座標系のx軸と平行であり、XYZ座標系のY軸(鉛直方向)が実座標系のy軸と平行であり、XYZ座標系のZ軸(前後方向)が実座標系のz軸と平行である。

0053

HMD120の起動時、すなわちHMD120の初期状態において、仮想カメラ14が、仮想空間11の中心12に配置される。ある局面において、プロセッサ210は、仮想カメラ14が撮影する画像をHMD120のモニタ130に表示する。仮想カメラ14は、現実空間におけるHMD120の動きに連動して、仮想空間11を同様に移動する。これにより、現実空間におけるHMD120の位置および傾きの変化が、仮想空間11において同様に再現され得る。

0054

仮想カメラ14には、HMD120の場合と同様に、uvw視野座標系が規定される。仮想空間11における仮想カメラ14のuvw視野座標系は、現実空間(実座標系)におけるHMD120のuvw視野座標系に連動するように規定されている。したがって、HMD120の傾きが変化すると、それに応じて、仮想カメラ14の傾きも変化する。仮想カメラ14は、HMD120を装着したユーザ5の現実空間における移動に連動して、仮想空間11において移動することもできる。

0055

コンピュータ200のプロセッサ210は、仮想カメラ14の位置と傾き(基準視線16)とに基づいて、仮想空間11における視界領域15を規定する。視界領域15は、仮想空間11のうち、HMD120を装着したユーザ5が視認する領域に対応する。つまり、仮想カメラ14の位置は、仮想空間11におけるユーザ5の視点と言える。

0056

注視センサ140によって検出されるユーザ5の視線は、ユーザ5が物体を視認する際の視点座標系における方向である。HMD120のuvw視野座標系は、ユーザ5がモニタ130を視認する際の視点座標系に等しい。仮想カメラ14のuvw視野座標系は、HMD120のuvw視野座標系に連動している。したがって、ある局面に従うHMDシステム100は、注視センサ140によって検出されたユーザ5の視線を、仮想カメラ14のuvw視野座標系におけるユーザ5の視線とみなすことができる。

0057

[ユーザの視線]
図5を参照して、ユーザ5の視線の決定について説明する。図5は、ある実施の形態に従うHMD120を装着するユーザ5の頭部を上から表した図である。

0058

ある局面において、注視センサ140は、ユーザ5の右目および左目の各視線を検出する。ある局面において、ユーザ5が近くを見ている場合、注視センサ140は、視線R1およびL1を検出する。別の局面において、ユーザ5が遠くを見ている場合、注視センサ140は、視線R2およびL2を検出する。この場合、ロール軸wに対して視線R2およびL2が成す角度は、ロール軸wに対して視線R1およびL1が成す角度よりも小さい。注視センサ140は、検出結果をコンピュータ200に送信する。

0059

コンピュータ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が実際に視線を向けている方向に相当する。

0060

別の局面において、HMDシステム100は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、HMDシステム100は、仮想空間11においてテレビ番組を表示することができる。

0061

さらに別の局面において、HMDシステム100は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。

0062

[視界領域]
図6および図7を参照して、視界領域15について説明する。図6は、仮想空間11において視界領域15をX方向から見たYZ断面を表す図である。図7は、仮想空間11において視界領域15をY方向から見たXZ断面を表す図である。

0063

図6に示されるように、YZ断面における視界領域15は、領域18を含む。領域18は、仮想カメラ14の位置と基準視線16と仮想空間11のYZ断面とによって定義される。プロセッサ210は、仮想空間における基準視線16を中心として極角αを含む範囲を、領域18として規定する。

0064

図7に示されるように、XZ断面における視界領域15は、領域19を含む。領域19は、仮想カメラ14の位置と基準視線16と仮想空間11のXZ断面とによって定義される。プロセッサ210は、仮想空間11における基準視線16を中心とした方位角βを含む範囲を、領域19として規定する。極角αおよびβは、仮想カメラ14の位置と仮想カメラ14の傾き(向き)とに応じて定まる。

0065

ある局面において、HMDシステム100は、コンピュータ200からの信号に基づいて、視界画像17をモニタ130に表示させることにより、ユーザ5に仮想空間11における視界を提供する。視界画像17は、パノラマ画像13のうち視界領域15に対応する部分に相当する画像である。ユーザ5が、頭に装着したHMD120を動かすと、その動きに連動して仮想カメラ14も動く。その結果、仮想空間11における視界領域15の位置が変化する。これにより、モニタ130に表示される視界画像17は、パノラマ画像13のうち、仮想空間11においてユーザ5が向いた方向の視界領域15に重畳する画像に更新される。ユーザ5は、仮想空間11における所望の方向を視認することができる。

0066

このように、仮想カメラ14の傾きは仮想空間11におけるユーザ5の視線(基準視線16)に相当し、仮想カメラ14が配置される位置は、仮想空間11におけるユーザ5の視点に相当する。したがって、仮想カメラ14の位置または傾きを変更することにより、モニタ130に表示される画像が更新され、ユーザ5の視界が移動される。

0067

ユーザ5は、HMD120を装着している間、現実世界を視認することなく、仮想空間11に展開されるパノラマ画像13のみを視認できる。そのため、HMDシステム100は、仮想空間11への高い没入感覚をユーザ5に与えることができる。

0068

ある局面において、プロセッサ210は、HMD120を装着したユーザ5の現実空間における移動に連動して、仮想空間11において仮想カメラ14を移動し得る。この場合、プロセッサ210は、仮想空間11における仮想カメラ14の位置および傾きに基づいて、HMD120のモニタ130に投影される画像領域(視界領域15)を特定する。

0069

ある局面において、仮想カメラ14は、2つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含み得る。ユーザ5が3次元の仮想空間11を認識できるように、適切な視差が、2つの仮想カメラに設定される。別の局面において、仮想カメラ14を1つの仮想カメラにより実現してもよい。この場合、1つの仮想カメラにより得られた画像から、右目用の画像と左目用の画像とを生成するようにしてもよい。本実施の形態においては、仮想カメラ14が2つの仮想カメラを含み、2つの仮想カメラのロール軸が合成されることによって生成されるロール軸(w)がHMD120のロール軸(w)に適合されるように構成されているものとして、本開示に係る技術思想を例示する。

0070

[コントローラ]
図8を参照して、コントローラ300の一例について説明する。図8は、ある実施の形態に従うコントローラ300の概略構成を表す図である。

0071

図8に示されるように、ある局面において、コントローラ300は、右コントローラ300Rと図示せぬ左コントローラとを含み得る。右コントローラ300Rは、ユーザ5の右手で操作される。左コントローラは、ユーザ5の左手で操作される。ある局面において、右コントローラ300Rと左コントローラとは、別個の装置として対称に構成される。したがって、ユーザ5は、右コントローラ300Rを把持した右手と、左コントローラを把持した左手とをそれぞれ自由に動かすことができる。別の局面において、コントローラ300は両手の操作を受け付ける一体型のコントローラであってもよい。以下、右コントローラ300Rについて説明する。

0072

右コントローラ300Rは、グリップ310と、フレーム320と、天面330とを備える。グリップ310は、ユーザ5の右手によって把持されるように構成されている。たとえば、グリップ310は、ユーザ5の右手のと3本の指(中指薬指小指)とによって保持され得る。

0073

グリップ310は、ボタン340,350と、モーションセンサ420とを含む。ボタン340は、グリップ310の側面に配置され、右手の中指による操作を受け付ける。ボタン350は、グリップ310の前面に配置され、右手の人差し指による操作を受け付ける。ある局面において、ボタン340,350は、トリガー式のボタンとして構成される。モーションセンサ420は、グリップ310の筐体に内蔵されている。ユーザ5の動作がカメラその他の装置によってユーザ5の周りから検出可能である場合には、グリップ310は、モーションセンサ420を備えなくてもよい。

0074

フレーム320は、その円周方向に沿って配置された複数の赤外線LED360を含む。赤外線LED360は、コントローラ300を使用するプログラムの実行中に、当該プログラムの進行に合わせて赤外線を発光する。赤外線LED360から発せられた赤外線は、右コントローラ300Rと左コントローラとの各位置や姿勢(傾き、向き)を検出するために使用され得る。図8に示される例では、二列に配置された赤外線LED360が示されているが、配列の数は図8に示されるものに限られない。一列あるいは3列以上の配列が使用されてもよい。

0075

天面330は、ボタン370,380と、アナログスティック390とを備える。ボタン370,380は、プッシュ式ボタンとして構成される。ボタン370,380は、ユーザ5の右手の親指による操作を受け付ける。アナログスティック390は、ある局面において、初期位置(ニュートラルの位置)から360度任意の方向への操作を受け付ける。当該操作は、たとえば、仮想空11に配置されるオブジェクトを移動するための操作を含む。

0076

ある局面において、右コントローラ300Rおよび左コントローラは、赤外線LED360その他の部材を駆動するための電池を含む。電池は、充電式、ボタン型、乾電池型などを含むが、これらに限定されない。別の局面において、右コントローラ300Rと左コントローラは、たとえば、コンピュータ200のUSBインターフェースに接続され得る。この場合、右コントローラ300Rおよび左コントローラは、電池を必要としない。

0077

[サーバのハードウェア構成]
図9を参照して、本実施の形態に係るサーバ10について説明する。図9は、ある実施の形態に従うサーバ600のハードウェア構成の一例を表すブロック図である。サーバ600は、主たる構成要素として、プロセッサ610と、メモリ620と、ストレージ630と、入出力インターフェイス640と、通信インターフェイス650とを備える。各構成要素は、それぞれ、バス660に接続されている。

0078

プロセッサ610は、サーバ600に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ620またはストレージ630に格納されているプログラムに含まれる一連の命令を実行する。ある局面において、プロセッサ610は、CPU)、GPU、MPU、FPGAその他のデバイスとして実現される。

0079

メモリ620は、プログラムおよびデータを一時的に保存する。プログラムは、例えば、ストレージ630からロードされる。データは、サーバ600に入力されたデータと、プロセッサ610によって生成されたデータとを含む。ある局面において、メモリ620は、RAMその他の揮発メモリとして実現される。

0080

ストレージ630は、プログラムおよびデータを永続的に保持する。ストレージ630は、例えば、ROM、ハードディスク装置、フラッシュメモリ、その他の不揮発記憶装置として実現される。ストレージ630に格納されるプログラムは、HMDシステム100において仮想空間を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、コンピュータ200との通信を実現するためのプログラムを含んでもよい。ストレージ630に格納されるデータは、仮想空間を規定するためのデータおよびオブジェクト等を含んでもよい。

0081

別の局面において、ストレージ630は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに別の局面において、サーバ600に内蔵されたストレージ630の代わりに、外部の記憶装置に保存されているプログラムおよびデータを使用する構成が使用されてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のHMDシステム100が使用される場面において、プログラムやデータの更新を一括して行なうことが可能になる。

0082

入出力インターフェイス640は、入出力機器との間で信号を通信する。ある局面において、入出力インターフェイス640は、USB、DVI、HDMI(登録商標)その他の端子を用いて実現される。入出力インターフェイス640は上述のものに限られない。

0083

通信インターフェイス650は、ネットワーク2に接続されて、ネットワーク2に接続されているコンピュータ200と通信する。ある局面において、通信インターフェイス650は、例えば、LANその他の有線通信インターフェイス、あるいは、WiFi、Bluetooth、NFCその他の無線通信インターフェイスとして実現される。通信インターフェイス650は上述のものに限られない。

0084

ある局面において、プロセッサ610は、ストレージ630にアクセスし、ストレージ630に格納されている1つ以上のプログラムをメモリ620にロードし、当該プログラムに含まれる一連の命令を実行する。当該1つ以上のプログラムは、サーバ610のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ610は、入出力インターフェイス640を介して、仮想空間を提供するための信号をコンピュータ200に送ってもよい。

0085

[HMDの制御装置
図10を参照して、HMD21の制御装置について説明する。ある実施の形態において、制御装置は周知の構成を有するコンピュータ200によって実現される。図10は、ある実施の形態に従うコンピュータ200をモジュール構成として表わすブロック図である。

0086

図10に示されるように、コンピュータ200は、コントロールモジュール510と、レンダリングモジュール520と、メモリモジュール530と、通信制御モジュール540とを備える。ある局面において、コントロールモジュール510とレンダリングモジュール520とは、プロセッサ210によって実現される。別の局面において、複数のプロセッサ210がコントロールモジュール510とレンダリングモジュール520として作動してもよい。メモリモジュール530は、メモリ220またはストレージ230によって実現される。通信制御モジュール540は、通信インターフェイス250によって実現される。

0087

コントロールモジュール510は、ユーザ5に提供される仮想空間11を制御する。コントロールモジュール510は、仮想空間11を表す仮想空間データを用いて、HMDシステム100における仮想空間11を規定する。仮想空間データは、例えば、メモリモジュール530に記憶されている。コントロールモジュール510が、仮想空間データを生成したり、サーバ600などから仮想空間データを取得するようにしたりしてもよい。

0088

コントロールモジュール510は、オブジェクトを表すオブジェクトデータを用いて、仮想空間11にオブジェクトを配置する。オブジェクトデータは、例えば、メモリモジュール530に記憶されている。コントロールモジュール510が、オブジェクトデータを生成したり、サーバ600などからオブジェクトデータを取得するようにしたりしてもよい。オブジェクトは、例えば、ユーザ5の分身であるアバターオブジェクト、キャラクタオブジェクト、コントローラ300によって操作される仮想手などの操作オブジェクト、ゲームのストーリーの進行に従って配置される森、山その他を含む風景街並み動物等を含み得る。

0089

コントロールモジュール510は、ネットワーク2を介して接続される他のコンピュータ200のユーザ5のアバターオブジェクトを仮想空間11に配置する。ある局面において、コントロールモジュール510は、ユーザ5のアバターオブジェクトを仮想空間11に配置する。ある局面において、コントロールモジュール510は、ユーザ5を含む画像に基づいて、ユーザ5を模したアバターオブジェクトを仮想空間11に配置する。別の局面において、コントロールモジュール510は、複数種類のアバターオブジェクト(例えば、動物を模したオブジェクトや、デフォルメされた人のオブジェクト)の中からユーザ5による選択を受け付けたアバターオブジェクトを仮想空間2に配置する。

0090

コントロールモジュール510は、HMDセンサ410の出力に基づいてHMD120の傾きを特定する。別の局面において、コントロールモジュール510は、モーションセンサとして機能するセンサ190の出力に基づいてHMD120の傾きを特定する。コントロールモジュール510は、第1カメラ150および第2カメラ160が生成するユーザ5の顔の画像から、ユーザ5の顔を構成する器官(例えば、口,目,眉)を検出する。コントロールモジュール510は、検出した各器官の動き(形状)を検出する。

0091

コントロールモジュール510は、注視センサ140からの信号に基づいて、ユーザ5の仮想空間11における視線を検出する。コントロールモジュール510は、検出したユーザ5の視線と仮想空間11の天球とが交わる視点位置(XYZ座標系における座標値)を検出する。より具体的には、コントロールモジュール510は、uvw座標系で規定されるユーザ5の視線と、仮想カメラ14の位置および傾きとに基づいて、視点位置を検出する。コントロールモジュール510は、検出した視点位置をサーバ600に送信する。別の局面において、コントロールモジュール510は、ユーザ5の視線を表す視線情報をサーバ600に送信するように構成されてもよい。係る場合、サーバ600が受信した視線情報に基づいて視点位置を算出し得る。

0092

コントロールモジュール510は、HMDセンサ410が検出するHMD120の動きをアバターオブジェクトに反映する。例えば、コントロールモジュール510は、HMD120が傾いたことを検知して、アバターオブジェクトを傾けて配置する。コントロールモジュール510は、検出した顔器官の動作を、仮想空間11に配置されるアバターオブジェクトの顔に反映させる。コントロールモジュール510は、サーバ600から他のユーザ5の視線情報を受信し、当該他のユーザ5のアバターオブジェクトの視線に反映させる。ある局面において、コントロールモジュール510は、コントローラ300の動きをアバターオブジェクトや操作オブジェクトに反映する。この場合、コントローラ300は、コントローラ300の動きを検知するためのモーションセンサ、加速度センサ、または複数の発光素子(例えば、赤外線LED)などを備える。

0093

コントロールモジュール510は、仮想空間11においてユーザ5の操作を受け付けるための操作オブジェクトを仮想空間11に配置する。ユーザ5は、操作オブジェクトを操作することにより、例えば、仮想空間11に配置されるオブジェクトを操作する。ある局面において、操作オブジェクトは、例えば、ユーザ5の手に相当する仮想手である手オブジェクト等を含み得る。ある局面において、コントロールモジュール510は、モーションセンサ420の出力に基づいて現実空間におけるユーザ5の手の動きに連動するように仮想空間11において手オブジェクトを動かす。ある局面において、操作オブジェクトは、アバターオブジェクトの手の部分に相当し得る。

0094

コントロールモジュール510は、仮想空間11に配置されるオブジェクトのそれぞれが、他のオブジェクトと衝突した場合に、当該衝突を検出する。コントロールモジュール510は、例えば、あるオブジェクトのコリジョンエリアと、別のオブジェクトのコリジョンエリアとが触れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行なう。コントロールモジュール510は、オブジェクトとオブジェクトとが触れている状態から離れたタイミングを検出することができ、当該検出がされたときに、予め定められた処理を行なう。コントロールモジュール510は、オブジェクトとオブジェクトとが触れている状態であることを検出することができる。例えば、コントロールモジュール510は、操作オブジェクトと、他のオブジェクトとが触れたときに、これら操作オブジェクトと他のオブジェクトとが触れたことを検出して、予め定められた処理を行なう。

0095

ある局面において、コントロールモジュール510は、HMD120のモニタ130における画像表示を制御する。例えば、コントロールモジュール510は、仮想空間11に仮想カメラ14を配置する。コントロールモジュール510は、仮想空間11における仮想カメラ14の位置と、仮想カメラ14の傾き(向き)を制御する。コントロールモジュール510は、HMD120を装着したユーザ5の頭の傾きと、仮想カメラ14の位置に応じて、視界領域15を規定する。レンダリングモジュール510は、決定された視界領域15に基づいて、モニタ130に表示される視界画像17を生成する。レンダリングモジュール520により生成された視界画像17は、通信制御モジュール540によってHMD120に出力される。

0096

コントロールモジュール510は、HMD120から、ユーザ5のマイク170を用いた発話を検出すると、当該発話に対応する音声データの送信対象のコンピュータ200を特定する。音声データは、コントロールモジュール510によって特定されたコンピュータ200に送信される。コントロールモジュール510は、ネットワーク2を介して他のユーザのコンピュータ200から音声データを受信すると、当該音声データに対応する音声(発話)をスピーカ180から出力する。

0097

メモリモジュール530は、コンピュータ200が仮想空間11をユーザ5に提供するために使用されるデータを保持している。ある局面において、メモリモジュール540は、空間情報と、オブジェクト情報と、ユーザ情報とを保持している。

0098

空間情報は、仮想空間11を提供するために規定された1つ以上のテンプレートを保持している。

0099

オブジェクト情報は、仮想空間11を構成する複数のパノラマ画像13、仮想空間11にオブジェクトを配置するためのオブジェクトデータを含む。パノラマ画像13は、静止画像および動画像を含み得る。パノラマ画像13は、非現実空間の画像と現実空間の画像とを含み得る。非現実空間の画像としては、例えば、コンピュータグラフィックスで生成された画像が挙げられる。

0100

ユーザ情報は、ユーザ5を識別するユーザIDを保持する。ユーザIDは、例えば、ユーザが使用するコンピュータ200に設定されるIP(Internet Protocol)アドレスまたはMAC(Media Access Control)アドレスであり得る。別の局面において、ユーザIDはユーザによって設定され得る。ユーザ情報は、HMDシステム100の制御装置としてコンピュータ200を機能させるためのプログラム等を含む。

0101

メモリモジュール530に格納されているデータおよびプログラムは、HMD120のユーザ5によって入力される。あるいは、プロセッサ210が、当該コンテンツを提供する事業者運営するコンピュータ(例えば、サーバ600)からプログラムあるいはデータをダウンロードして、ダウンロードされたプログラムあるいはデータをメモリモジュール530に格納する。

0102

通信制御モジュール540は、ネットワーク2を介して、サーバ600その他の情報通信装置と通信し得る。

0103

ある局面において、コントロールモジュール510及びレンダリングモジュール520は、例えば、ユニティテクノロジーズ社によって提供されるUnity(登録商標)を用いて実現され得る。別の局面において、コントロールモジュール510及びレンダリングモジュール520は、各処理を実現する回路素子の組み合わせとしても実現され得る。

0104

コンピュータ200における処理は、ハードウェアと、プロセッサ410により実行されるソフトウェアとによって実現される。このようなソフトウェアは、ハードディスクその他のメモリモジュール530に予め格納されている場合がある。ソフトウェアは、CD−ROMその他のコンピュータ読み取り可能な不揮発性データ記録媒体に格納されて、プログラム製品として流通している場合もある。あるいは、当該ソフトウェアは、インターネットその他のネットワークに接続されている情報提供事業者によってダウンロード可能なプログラム製品として提供される場合もある。このようなソフトウェアは、光ディスク駆動装置その他のデータ読取装置によってデータ記録媒体から読み取られて、あるいは、通信制御モジュール540を介してサーバ600その他のコンピュータからダウンロードされた後、記憶モジュールに一旦格納される。そのソフトウェアは、プロセッサ210によって記憶モジュールから読み出され、実行可能なプログラムの形式でRAMに格納される。プロセッサ210は、そのプログラムを実行する。

0105

[HMDシステムの制御構造
図11を参照して、HMDセット110の制御構造について説明する。図11は、ある実施の形態に従うHMDセット110において実行される処理の一部を表すシーケンスチャートである。

0106

図11に示されるように、ステップS1110にて、コンピュータ200のプロセッサ210は、コントロールモジュール510として、仮想空間データを特定し、仮想空間11を定義する。

0107

ステップS1120にて、プロセッサ210は、仮想カメラ14を初期化する。たとえば、プロセッサ210は、メモリのワーク領域において、仮想カメラ14を仮想空間11において予め規定された中心点12に配置し、仮想カメラ14の視線をユーザ5が向いている方向に向ける。

0108

ステップS1130にて、プロセッサ210は、レンダリングモジュール520として、初期の視界画像を表示するための視界画像データを生成する。生成された視界画像データは、通信制御モジュール540によってHMD120に出力される。

0109

ステップS1132にて、HMD120のモニタ130は、コンピュータ200から受信した視界画像データに基づいて、視界画像を表示する。HMD120を装着したユーザ5は、視界画像を視認すると仮想空間11を認識し得る。

0110

ステップS1134にて、HMDセンサ410は、HMD120から発信される複数の赤外線光に基づいて、HMD120の位置と傾きを検知する。検知結果は、動き検知データとして、コンピュータ200に出力される。

0111

ステップS1140にて、プロセッサ210は、HMD120の動き検知データに含まれる位置と傾きとに基づいて、HMD120を装着したユーザ5の視界方向を特定する。

0112

ステップS1150にて、プロセッサ210は、アプリケーションプログラムを実行し、アプリケーションプログラムに含まれる命令に基づいて、仮想空間11にオブジェクトを配置する。

0113

ステップS1160にて、コントローラ300は、モーションセンサ420から出力される信号に基づいて、ユーザ5の操作を検出し、その検出された操作を表す検出データをコンピュータ200に出力する。別の局面において、ユーザ5によるコントローラ300の操作は、ユーザ5の周囲に配置されたカメラからの画像に基づいて検出されてもよい。

0114

ステップS1170にて、プロセッサ210は、コントローラ300から取得した検出データに基づいて、ユーザ5によるコントローラ300の操作を検出する。

0115

ステップS1180にて、プロセッサ210は、ユーザ5によるコントローラ300の操作に基づく視界画像データを生成する。生成された視界画像データは、通信制御モジュール540によってHMD120に出力される。

0116

ステップS1190にて、HMD120は、受信した視界画像データに基づいて視界画像を更新し、更新後の視界画像をモニタ130に表示する。

0117

[アバターオブジェクト]
図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に含まれる。

0118

図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を装着していない。

0119

ある局面において、プロセッサ210Aは、ユーザ5Aの視界画像17Aを撮影する仮想カメラ14Aを、アバターオブジェクト6Aの目の位置に配置し得る。

0120

図12(B)は、図12(A)におけるユーザ5Aの視界画像17Aを示す図である。視界画像17Aは、HMD120Aのモニタ130Aに表示される画像である。この視界画像17Aは、仮想カメラ14Aにより生成された画像である。視界画像17Aには、ユーザ5Bのアバターオブジェクト6Bが表示されている。特に図示はしていないが、ユーザ5Bの視界画像にも同様に、ユーザ5Aのアバターオブジェクト6Aが表示されている。

0121

図12(B)の状態において、ユーザ5Aは仮想空間11Aを介してユーザ5Bと対話による通信(コミュニケーション)を図ることができる。より具体的には、マイク170Aにより取得されたユーザ5Aの音声は、サーバ600を介してユーザ5BのHMD17120Bに送信され、HMD120Bに設けられたスピーカ180Bから出力される。ユーザ5Bの音声は、サーバ600を介してユーザ5AのHMD120Aに送信され、HMD120Aに設けられたスピーカ180Aから出力される。

0122

ユーザ5Bの動作(HMD120Bの動作およびコントローラ300Bの動作)は、プロセッサ210Aにより仮想空間11Aに配置されるアバターオブジェクト6Bに反映される。これにより、ユーザ5Aは、ユーザ5Bの動作を、アバターオブジェクト6Bを通じて認識できる。

0123

図13は、本実施の形態に従うHMDシステム100において実行される処理の一部を表すシーケンスチャートである。図13においては、HMDセット110Dを図示していないが、HMDセット110Dについても、HMDセット110A、110B、110Cと同様に動作する。以下の説明でも、HMDセット110Aに関する各構成要素の参照符号にAが付され、HMDセット110Bに関する各構成要素の参照符号にBが付され、HMDセット110Cに関する各構成要素の参照符号にCが付され、HMDセット110Dに関する各構成要素の参照符号にDが付されるものとする。

0124

ステップ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に送信する。

0125

ステップS1310Bにおいて、HMDセット110Bにおけるプロセッサ210Bは、ステップS1310Aにおける処理と同様に、仮想空間11Bにおけるアバターオブジェクト6Bの動作を決定するためのアバター情報を取得し、サーバ600に送信する。同様に、ステップS1310Cにおいて、HMDセット110Bにおけるプロセッサ210Bは、仮想空間11Cにおけるアバターオブジェクト6Cの動作を決定するためのアバター情報を取得し、サーバ600に送信する。

0126

ステップS1320において、サーバ600は、HMDセット110A、HMDセット110B、およびHMDセット110Cのそれぞれから受信したプレイヤ情報を一旦記憶する。サーバ600は、各アバター情報に含まれるユーザIDおよびルームID等に基づいて、共通の仮想空間11に関連付けられた全ユーザ(この例では、ユーザ5A〜5C)のアバター情報を統合する。そして、サーバ600は、予め定められたタイミングで、統合したアバター情報を当該仮想空間11に関連付けられた全ユーザに送信する。これにより、同期処理が実行される。このような同期処理により、HMDセット110A、HMDセット110B、およびHMD11020Cは、互いのアバター情報をほぼ同じタイミングで共有することができる。

0127

続いて、サーバ600から各HMDセット110A〜110Cに送信されたアバター情報に基づいて、各HMDセット110A〜110Cは、ステップS1330A〜S1330Cの処理を実行する。ステップS1330Aの処理は、図11におけるステップS1180の処理に相当する。

0128

ステップS1330Aにおいて、HMDセット110Aにおけるプロセッサ210Aは、仮想空間11Aにおける他のユーザ5B,5Cのアバターオブジェクト6B、アバターオブジェクト6Cの情報を更新する。具体的には、プロセッサ210Aは、HMDセット110Bから送信されたアバター情報に含まれる動き情報に基づいて、仮想空間11におけるアバターオブジェクト6Bの位置および向き等を更新する。例えば、プロセッサ210Aは、メモリモジュール540に格納されたオブジェクト情報に含まれるアバターオブジェクト6Bの情報(位置および向き等)を更新する。同様に、プロセッサ210Aは、HMDセット110Cから送信されたアバター情報に含まれる動き情報に基づいて、仮想空間11におけるアバターオブジェクト6Cの情報(位置および向き等)を更新する。

0129

ステップS1330Bにおいて、HMDセット110Bにおけるプロセッサ210Bは、ステップS1330Aにおける処理と同様に、仮想空間11Bにおけるユーザ5A,5Cのアバターオブジェクト6A,6Cの情報を更新する。同様に、ステップS1330Cにおいて、HMDセット110Cにおけるプロセッサ210Cは、仮想空間11Cにおけるユーザ5A,5Bのアバターオブジェクト6A,6Bの情報を更新する。

0130

[コンピュータ200のモジュールの詳細構成]
図14を参照して、コンピュータ200のモジュール構成の詳細について説明する。図14は、ある実施の形態に従うコンピュータ200のモジュールの詳細構成を表わすブロック図である。図14に示されるように、コントロールモジュール510は、仮想オブジェクト生成モジュール1421、仮想カメラ制御モジュール1422、操作オブジェクト制御モジュール1423、アバターオブジェクト制御モジュール1424、動き検出モジュール1425、衝突検出モジュール1426、および仮想オブジェクト制御モジュール1427を備えている。

0131

仮想オブジェクト生成モジュール1421は、各種の仮想オブジェクトを仮想空間11に生成する。ある局面において、仮想オブジェクトは、例えば、ゲームのストーリーの進行に従って配置される森、山その他を含む風景、動物等を含み得る。ある局面において、仮想オブジェクトは、アバターオブジェクト、操作オブジェクト、およびステージオブジェクト、UI(User Interface)オブジェクトを含み得る。

0132

仮想カメラ制御モジュール1422は、仮想空間11における仮想カメラ14の挙動を制御する。仮想カメラ制御モジュール1422は、例えば、仮想空間11における仮想カメラ14の配置位置と、仮想カメラ14の向き(傾き)とを制御する。

0133

操作オブジェクト制御モジュール1423は、仮想空間11においてユーザ5の操作を受け付けるための操作オブジェクトを制御する。ユーザ5は、操作オブジェクトを操作することによって、例えば、仮想空間11に配置される仮想オブジェクトを操作する。ある局面において、操作オブジェクトは、例えば、HMD120を装着したユーザ5の手に相当する手オブジェクト(仮想手)等を含み得る。ある局面において、操作オブジェクトは、後述するアバターオブジェクトの手の部分に相当し得る。

0134

アバターオブジェクト制御モジュール1424は、HMDセンサ410が検出するHMD120の動きをアバターオブジェクトに反映する。例えば、アバターオブジェクト制御モジュール1424は、HMD120が傾いたことを検知して、アバターオブジェクトを傾けて配置するためのデータを生成する。ある局面において、アバターオブジェクト制御モジュール1424は、コントローラ300の動きをアバターオブジェクトに反映する。この場合、コントローラ300は、コントローラ300の動きを検知するためのモーションセンサ、加速度センサ、または複数の発光素子(例えば、赤外線LED)などを備える。例えば、アバターオブジェクト制御モジュール1424は、動き検出モジュール1425が検出した手の動きを、仮想空間11に配置される操作オブジェクト(アバターオブジェクトの手の一部である仮想手)の動きに反映させる。アバターオブジェクト制御モジュール1424は、動き検出モジュール1425が検出した顔器官の動作を、仮想空間11に配置されるアバターオブジェクトの顔に反映させる。つまり、アバターオブジェクト制御モジュール1424は、ユーザ5の顔の動作をアバターオブジェクトに反映する。

0135

動き検出モジュール1425は、ユーザ5の動きを検出する。動き検出モジュール1425は、例えば、コントローラ300の出力に応じて、ユーザ5の手の動きを検出する。動き検出モジュール1425は、例えば、ユーザ5の身体に装着されるモーションセンサの出力に応じて、ユーザ5の身体の動きを検出する。動き検出モジュール1425は、ユーザ5の顔器官の動作を検出することもできる。

0136

衝突検出モジュール1426は、仮想空間11に配置される仮想オブジェクトのそれぞれが、他の仮想オブジェクトと衝突した場合に、当該衝突を検出する。衝突検出モジュール1426は、例えば、ある仮想オブジェクトと、別の仮想オブジェクトとが触れたタイミングを検出することができる。衝突検出モジュール1426は、ある仮想オブジェクトと他の仮想オブジェクトとが触れている状態から離れたタイミングを検出することができる。衝突検出モジュール1426は、ある仮想オブジェクトと他の仮想オブジェクトとが触れている状態であることを検出することもできる。衝突検出モジュール1426は、例えば、操作オブジェクトと、他の仮想オブジェクトとが触れたときに、これら操作オブジェクトと他のオブジェクトとが触れたことを検出する。衝突検出モジュール1426は、これらの検出結果に基づいて、予め定められた処理を実行する。

0137

仮想オブジェクト制御モジュール1427は、仮想空間11において、アバターオブジェクトを除く仮想オブジェクトの挙動を制御する。一例として、仮想オブジェクト制御モジュール1427は、仮想オブジェクトを変形させる。別の例として、仮想オブジェクト制御モジュール1427は、仮想オブジェクトの配置位置を変更する。別の例として、仮想オブジェクト制御モジュール1427は、仮想オブジェクトを移動させる。

0138

さらに別の例として、仮想オブジェクト制御モジュール1427は、衝突検出モジュール1426によって仮想オブジェクトと操作オブジェクト(仮想手)とが触れていることが検出された状態において、コントローラ300が有する所定ボタンの押下が検出されると、当該仮想オブジェクトと操作オブジェクトとを関連付ける。このとき、アバターオブジェクト制御モジュール1424は、操作オブジェクト(仮想手)に、仮想オブジェクトを対象とする動作をさせるよう制御してもよい。対象とする動作の一例としては、例えば、持つ、握る、掴む、手の平に乗せる、つまむ等の動作であってもよい。

0139

また、仮想オブジェクト制御モジュール1427は、仮想オブジェクトと操作オブジェクトとが関連付けられた状態において、動き検出モジュール1425によってユーザ5の手の動きが検出されると、操作オブジェクトの移動とともに、当該仮想オブジェクトを移動させるよう制御する。

0140

また、仮想オブジェクト制御モジュール1427は、仮想オブジェクトと操作オブジェクトとが関連付けられた状態において、コントローラ300が有する所定ボタンの押下が検出されると、当該仮想オブジェクトと操作オブジェクトとを関連付けを解除する。このとき、アバターオブジェクト制御モジュール1424は、操作オブジェクト(仮想手)に、仮想オブジェクトを放す動作をさせるよう制御してもよい。

0141

[ゲームシステムの構成]
図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つ以上でもよい。

0142

HMDセット110Bは、本発明におけるキャラクタ制御装置の一実施形態を構成する。以降、HMDセット110Bを、キャラクタ制御装置110Bとも記載する。キャラクタ制御装置110Bは、ゲームシステム1500に少なくとも1台設けられている。キャラクタ制御装置110Bは、サーバ600が提供するサービスを利用するユーザ端末800の数に応じて、複数台設けられていてもよい。1台のユーザ端末800に対して、1台のキャラクタ制御装置110Bが設けられていてもよい。複数台のユーザ端末800に対して、1台のキャラクタ制御装置110Bが設けられていてもよい。

0143

なお、本実施形態では、本発明における第1キャラクタ制御装置及び第2キャラクタ制御装置として、同一のキャラクタ制御装置110Bを適用する例について説明する。

0144

以下、HMDセット110Bのユーザをユーザ5Bと表す。また、ユーザ端末800Aのユーザをユーザ8A、ユーザ端末800Cのユーザをユーザ8C、ユーザ端末800Dのユーザをユーザ8Dと表す。ユーザ8A、8C、8Dを、総称してユーザ8とも記載する。ユーザ端末800Aに関する各構成要素の参照符号にAが付され、HMDセット110Bに関する各構成要素の参照符号にBが付され、ユーザ端末800Cに関する各構成要素の参照符号にCが付され、ユーザ端末800Dに関する各構成要素の参照符号にDが付される。

0145

ゲームシステム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を通じて視聴する。

0146

<ゲームシステム1500を構成する各装置のハードウェア構成>
ゲームシステム1500を構成する各装置のハードウェア構成について説明する。サーバ600(コンピュータ、情報処理装置)は、ワークステーションまたはパーソナルコンピュータ等の汎用コンピュータであってよい。サーバ600のハードウェア構成については、図9を参照して説明した通りである。

0147

キャラクタ制御装置110Bは、サーバ、デスクトップパソコンノートパソコン、または、タブレットなどのコンピュータ、および、これらを組み合わせたコンピュータ群であってもよい。キャラクタ制御装置110Bのハードウェア構成については、図2を参照して説明した通りである。ゲームシステム1500を構成する各装置が接続するネットワーク2は、インターネットおよび図示しない無線基地局によって構築される各種移動通信システム等で構成される。この移動通信システムとしては、例えば、所謂3G、4G移動通信システム、LTE(Long Term Evolution)、および所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が挙げられる。

0148

図16は、ユーザ端末800のハードウェア構成を示す図である。ユーザ端末800(コンピュータ、情報処理装置)は、スマートフォン、フィーチャーフォン、PDA(Personal Digital Assistant)、またはタブレット型コンピュータ等の携帯端末であってよい。ユーザ端末800は、ゲームプレイに適したゲーム装置であってもよい。ユーザ端末800は図示の通り、プロセッサ810と、メモリ820と、ストレージ830と、通信インターフェース(IF)13と、入出力IF840と、タッチスクリーン870(表示部)と、カメラ860と、測距センサ880とを備える。ユーザ端末800が備えるこれらの構成は、通信バスによって互いに電気的に接続される。なお、ユーザ端末800は、タッチスクリーン870に代えて、または、加えて、ユーザ端末800本体とは別に構成されたディスプレイ(表示部)を接続可能な入出力IF840を備えていてもよい。

0149

また、図16に示すように、ユーザ端末800は、1つ以上のコントローラ1020と通信可能に構成されることとしてもよい。コントローラ1020は、例えば、Bluetooth(登録商標)等の通信規格に従って、ユーザ端末800と通信を確立する。コントローラ1020は、1つ以上のボタン等を有していてもよく、該ボタン等に対するユーザ8の入力操作に基づく出力値をユーザ端末800へ送信する。また、コントローラ1020は、加速度センサ、および、角速度センサ等の各種センサを有していてもよく、該各種センサの出力値をユーザ端末800へ送信する。

0150

なお、ユーザ端末800がカメラ860および測距センサ880を備えることに代えて、または、加えて、コントローラ1020がカメラ860および測距センサ880を有していてもよい。

0151

ユーザ端末800は、例えばゲーム開始時に、コントローラ1020を使用するユーザ8に、該ユーザ8の名前またはログインID等のユーザ識別情報を、該コントローラ1020を介して入力させることが望ましい。これにより、ユーザ端末800は、コントローラ1020とユーザ8とを紐付けることが可能となり、受信した出力値の送信元(コントローラ1020)に基づいて、該出力値がどのユーザ8のものであるかを特定することができる。

0152

ユーザ端末800が複数のコントローラ1020と通信する場合、各コントローラ1020を各ユーザ8が把持することで、ネットワーク2を介してサーバ600などの他の装置と通信せずに、該1台のユーザ端末800でマルチプレイを実現することができる。また、各ユーザ端末800が無線LAN(Local Area Network)規格等の無線規格により互いに通信接続する(サーバ600を介さずに通信接続する)ことで、複数台のユーザ端末800によりローカルでマルチプレイを実現することもできる。1台のユーザ端末800によりローカルで上述のマルチプレイを実現する場合、ユーザ端末800は、さらに、サーバ600が備える後述する種々の機能の少なくとも一部を備えていてもよい。また、複数のユーザ端末800によりローカルで上述のマルチプレイを実現する場合、複数のユーザ端末800は、サーバ600が備える後述する種々の機能を分散して備えていてもよい。

0153

なお、ローカルで上述のマルチプレイを実現する場合であっても、ユーザ端末800はサーバ600と通信を行ってもよい。例えば、あるゲームにおける成績または勝敗等のプレイ結果を示す情報と、ユーザ識別情報とを対応付けてサーバ600に送信してもよい。

0154

また、コントローラ1020は、ユーザ端末800に着脱可能な構成であるとしてもよい。この場合、ユーザ端末800の筐体における少なくともいずれかの面に、コントローラ1020との結合部が設けられていてもよい。該結合部を介して有線によりユーザ端末800とコントローラ1020とが結合している場合は、ユーザ端末800とコントローラ1020とは、有線を介して信号を送受信する。

0155

図16に示すように、ユーザ端末800は、外部のメモリカード等の記憶媒体1030の装着を、入出力IF840を介して受け付けてもよい。これにより、ユーザ端末800は、記憶媒体1030に記録されるプログラム及びデータを読み込むことができる。記憶媒体1030に記録されるプログラムは、例えばゲームプログラムである。

0156

ユーザ端末800は、サーバ600等の外部の装置と通信することにより取得したゲームプログラムをユーザ端末800のメモリ820に記憶してもよいし、記憶媒体1030から読み込むことにより取得したゲームプログラムをメモリ820に記憶してもよい。

0157

以上で説明したとおり、ユーザ端末800は、該ユーザ端末800に対して情報を入力する機構の一例として、通信IF850、入出力IF840、タッチスクリーン870、カメラ860、測距センサ880、およびスピーカ890を備える。入力する機構としての上述の各部は、ユーザ8の入力操作を受け付けるように構成された操作部と捉えることができる。

0158

例えば、操作部が、カメラ860および測距センサ880の少なくともいずれか一方で構成される場合、該操作部が、ユーザ端末800の近傍の物体1010を検出し、当該物体の検出結果から入力操作を特定する。一例として、物体1010としてのユーザ8の手、予め定められた形状のマーカーなどが検出され、検出結果として得られた物体1010の色、形状、動き、または、種類などに基づいて入力操作が特定される。より具体的には、ユーザ端末800は、カメラ860の撮影画像からユーザ8の手が検出された場合、該撮影画像に基づき検出されるジェスチャ(ユーザ8の手の一連の動き)を、ユーザ8の入力操作として特定し、受け付ける。なお、撮影画像は静止画であっても動画であってもよい。

0159

あるいは、操作部がタッチスクリーン870で構成される場合、ユーザ端末800は、タッチスクリーン870の入力部8701に対して実施されたユーザ8の操作をユーザ8の入力操作として特定し、受け付ける。あるいは、操作部が通信IF850で構成される場合、ユーザ端末800は、コントローラ1020から送信される信号(例えば、出力値)をユーザ8の入力操作として特定し、受け付ける。あるいは、操作部が入出力IF840で構成される場合、該入出力IF840と接続されるコントローラ1020とは異なる入力装置(図示せず)から出力される信号をユーザ8の入力操作として特定し、受け付ける。

0160

<各装置のハードウェア構成要素
プロセッサ810は、ユーザ端末800全体の動作を制御する。プロセッサ610は、サーバ600全体の動作を制御する。プロセッサ210は、キャラクタ制御装置110B全体の動作を制御する。プロセッサ810、20および30は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、およびGPU(Graphics Processing Unit)を含む。

0161

プロセッサ810はストレージ830からプログラムを読み出し、メモリ820に展開する。プロセッサ610はストレージ630からプログラムを読み出し、メモリ620に展開する。プロセッサ210は後述するストレージ230からプログラムを読み出し、後述するメモリ220に展開する。プロセッサ810、プロセッサ610およびプロセッサ210は展開したプログラムを実行する。

0162

メモリ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がプログラムに従って動作している間に生成した各種データも一時的に記憶する。

0163

本実施形態においてプログラムとは、ゲームをユーザ端末800により実現するためのゲームプログラムであってもよい。あるいは、該プログラムは、該ゲームをユーザ端末800とサーバ600との協働により実現するためのゲームプログラムであってもよい。
あるいは、該プログラムは、該ゲームをユーザ端末800とサーバ600とキャラクタ制御装置110Bとの協働により実現するためのゲームプログラムであってもよい。なお、ユーザ端末800とサーバ600との協働により実現されるゲームおよびユーザ端末800とサーバ600とキャラクタ制御装置110Bとの協働により実現されるゲームは、一例として、ユーザ端末800において起動されたブラウザ上で実行されるゲームであってもよい。あるいは、該プログラムは、該ゲームを複数のユーザ端末800の協働により実現するためのゲームプログラムであってもよい。また、各種データとは、ユーザ情報およびゲーム情報などのゲームに関するデータ、ならびに、ゲームシステム1500の各装置間で送受信する指示または通知を含んでいる。

0164

ストレージ830、630および230は補助記憶装置である。ストレージ830、630および230は、フラッシュメモリまたはHDD(Hard Disk Drive)等の記憶装置で構成される。ストレージ830、630および230には、ゲームに関する各種データが格納される。

0165

通信IF850は、ユーザ端末800における各種データの送受信を制御する。通信IF650は、サーバ600における各種データの送受信を制御する。通信IF250は、キャラクタ制御装置110Bにおける各種データの送受信を制御する。通信IF850、650および250は、例えば、無線LAN(Local Area Network)を介する通信、有線LAN、無線LAN、または携帯電話回線網を介したインターネット通信、ならびに近距離無線通信等を用いた通信を制御する。

0166

入出力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等)との間でデータを送受信するための接続部を含み得る。

0167

ユーザ端末800のタッチスクリーン870は、入力部8701と表示部8702とを組み合わせた電子部品である入力部8701は、例えばタッチセンシティブなデバイスであり、例えばタッチパッドによって構成される。表示部8702は、例えば液晶ディスプレイ、または有機EL(Electro-Luminescence)ディスプレイ等によって構成される。

0168

入力部8701は、入力面に対しユーザ8の操作(主にタッチ操作スライド操作スワイプ操作、およびタップ操作等の物理的接触操作)が入力された位置を検知して、位置を示す情報を入力信号として送信する機能を備える。入力部8701は、図示しないタッチセンシング部を備えていればよい。タッチセンシング部は、静電容量方式または抵抗膜方式等のどのような方式を採用したものであってもよい。

0169

キャラクタ制御装置110Bのディスプレイ430は、ユーザ端末800のタッチスクリーン870と同様に、入力部と表示部とを組み合わせたタッチスクリーンによって構成されていてもよい。

0170

図示していないが、ユーザ端末800は、該ユーザ端末800の保持姿勢を特定するための1以上のセンサを備えていてもよい。このセンサは、例えば、加速度センサ、または、角速度センサ等であってもよい。ユーザ端末800がセンサを備えている場合、プロセッサ810は、センサの出力からユーザ端末800の保持姿勢を特定して、保持姿勢に応じた処理を行うことも可能になる。例えば、プロセッサ810は、ユーザ端末800が縦向きに保持されているときには、縦長の画像を表示部8702に表示させる縦画面表示としてもよい。一方、ユーザ端末800が横向きに保持されているときには、横長の画像を表示部に表示させる横画面表示としてもよい。このように、プロセッサ810は、ユーザ端末800の保持姿勢に応じて縦画面表示と横画面表示とを切り替え可能であってもよい。

0171

スピーカ890は、音声データに基づき音声を出力する。カメラ860は、イメージセンサ等を含み、レンズから入射する入射光を電気信号に変換することで撮影画像を生成する。

0172

測距センサ880は、測定対象物までの距離を測定するセンサである。測距センサ880は、例えば、パルス変換した光を発する光源と、光を受ける受光素子とを含む。測距センサ880は、光源からの発光タイミングと、該光源から発せられた光が測定対象物にあたって反射されて生じる反射光の受光タイミングとにより、測定対象物までの距離を測定する。測距センサ880は、指向性を有する光を発する光源を有することとしてもよい。

0173

ここで、ユーザ端末800が、カメラ860と測距センサ880とを用いて、ユーザ端末800の近傍の物体1010を検出した検出結果を、ユーザ8の入力操作として受け付ける例をさらに説明する。カメラ860および測距センサ880は、例えば、ユーザ端末800の筐体の側面に設けられてもよい。カメラ860の近傍に測距センサ880が設けられてもよい。カメラ860としては、例えば赤外線カメラを用いることができる。この場合、赤外線を照射する照明装置および可視光遮断するフィルタ等が、カメラ860に設けられてもよい。これにより、屋外屋内かにかかわらず、カメラ860の撮影画像に基づく物体の検出精度をいっそう向上させることができる。

0174

プロセッサ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が手をカメラの撮影方向に直交する方向に振っていると認識する。

0175

このように、プロセッサ810は、カメラ860の撮影画像に対する画像認識により、ユーザ8が手を握りこんでいるか否か(「グー」のジェスチャであるか、それ以外のジェスチャ(例えば「パー」)であるか)を検出する。また、プロセッサ810は、ユーザ8の手の形状とともに、ユーザ8がこの手をどのように移動させているかを検出する。また、プロセッサ810は、ユーザ8がこの手をユーザ端末800に対して接近させているのか遠ざけているのかを検出する。このような操作は、例えば、マウスまたはタッチパネルなどのポインティングデバイスを用いた操作に対応させることができる。ユーザ端末800は、例えば、ユーザ8の手の移動に応じて、タッチスクリーン870においてポインタを移動させ、ユーザ8のジェスチャ「グー」を検出する。この場合、ユーザ端末800は、ユーザ8が選択操作を継続中であると認識する。選択操作の継続とは、例えば、マウスがクリックされて押し込まれた状態が維持されること、または、タッチパネルに対してタッチダウン操作がなされた後タッチされた状態が維持されることに対応する。また、ユーザ端末800は、ユーザ8のジェスチャ「グー」が検出されている状態で、さらにユーザ8が手を移動させると、このような一連のジェスチャを、スワイプ操作(またはドラッグ操作)に対応する操作として認識することもできる。また、ユーザ端末800は、カメラ860の撮影画像によるユーザ8の手の検出結果に基づいて、ユーザ8が指をはじくようなジェスチャを検出した場合に、当該ジェスチャを、マウスのクリックまたはタッチパネルへのタップ操作に対応する操作として認識してもよい。

0176

<ゲーム概要
実施形態1に係るゲームシステム1500が実行するゲーム(以下、本ゲーム)は、一例として、1以上のキャラクタを登場させて、そのキャラクタの少なくとも1つを動作させるゲームパートを含む。該ゲームに登場するキャラクタは、プレイヤキャラクタ(以下、PC)であってもよいし、ノンプレイヤキャラクタ(以下、NPC)であってもよい。PCは、ユーザ8が直接操作可能なキャラクタである。NPCは、ゲームプログラムおよび動作指図データにしたがって動作する、すなわち、ユーザ8が直接操作できないキャラクタである。以下では、両者を特に区別する必要がない場合には、総称として、“キャラクタ”を用いる。

0177

本ゲームは、キャラクタ制御装置110B及び複数のユーザ端末800の間で仮想空間11を共有し、キャラクタ制御装置110Bのユーザ5Bの操作に応じてアバターオブジェクト6Bが動作するライブ配信パートを含む。ここで、ユーザ5Bの操作とは、ユーザ5Bの動きに応じてHMD120、HMDセンサ410、モーションセンサ420、コントローラ300を介して入力される情報を含む。また、ユーザ5Bの操作とは、ユーザ5Bによるコントローラ300が有するボタンに対する操作を含む。その他、ユーザ5Bの操作とは、コンピュータ200に接続された各種の入力装置(図示せず)を介して入力される操作を含んでいてもよい。

0178

本ゲームでは、仮想空間11として、第1仮想空間11_1、及び、第1仮想空間11_1とは異なる第2仮想空間11_2が提供される。第1仮想空間11_1及び第2仮想空間11_2の詳細については後述する。

0179

ライブ配信パートでは、例えば、キャラクタの動作を表す動作指図データが、ユーザ5Bの操作に応じてキャラクタ制御装置110Bで生成される。また、当該動作指図データが、本ゲームを実行中のユーザ端末800に対して、該ユーザ端末800以外の他の装置から、任意のタイミングで供給される。当該動作指図データは、例えば、キャラクタ制御装置110Bからサーバ600を介してユーザ端末800に供給されてもよい。ユーザ端末800は、該動作指図データを受信したことをトリガにして、該動作指図データを解析する(レンダリングする)。ライブ配信パートとは、ユーザ端末800が、上述の解析された動作指図データにしたがって動作するキャラクタを、ユーザ8にリアルタイムに提示するパートである。これにより、ユーザ8は、キャラクタが本当に存在するかのような現実感を覚えることができ、より一層ゲームの世界に没入して本ゲームに興じることができる。

0180

本ゲームは、複数のプレイパートで構成されていてもよい。この場合、1つのキャラクタが、あるパートでは、PCであって、別のパートでは、NPCである、というように、パートごとにキャラクタの性質が異なっていてもよい。

0181

ゲームシステム1500において実行されるゲームのジャンルは、特定のジャンルに限られない。ゲームシステム1500は、あらゆるジャンルのゲームを実行し得る。例えば、テニス卓球、ドッジボール野球サッカーおよびホッケーなどのスポーツ題材としたゲーム、パズルゲームクイズゲームRPG(Role-Playing Game)、アドベンチャーゲームシューティングゲーム、シミュレーションゲーム、育成ゲーム、ならびに、アクションゲームなどであってもよい。

0182

また、本ゲームのプレイ形態は、特定のプレイ形態に限られない。ゲームシステム1500は、あらゆるプレイ形態のゲームを実行し得る。例えば、単一のユーザ8によるシングルプレイゲーム、および、複数のユーザ8によるマルチプレイゲーム、また、マルチプレイゲームの中でも、複数のユーザ8が対戦する対戦ゲーム、および、複数のユーザ8が協力する協力プレイゲームなどであってもよい。

0183

なお、以下の説明において、本発明における配信端末、第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オブジェクトとも記載している。

0184

<ゲームシステム1500の機能的構成>
図17は、ゲームシステム1500に含まれるユーザ端末800、サーバ600およびキャラクタ制御装置110Bの機能的構成を示すブロック図である。ユーザ端末800、サーバ600およびキャラクタ制御装置110Bのそれぞれは、図示しない、一般的なコンピュータとして機能する場合に必要な機能的構成、および、ゲームにおける公知の機能を実現するために必要な機能的構成を含み得る。

0185

ユーザ端末800は、ユーザ8の入力操作を受け付ける入力装置としての機能と、ゲームの画像や音声を出力する出力装置としての機能を有する。ユーザ端末800は、プロセッサ810、メモリ820、ストレージ830、通信IF850、および入出力IF840等の協働によって、制御部8100および記憶部8200として機能する。

0186

サーバ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として機能する。

0187

キャラクタ制御装置110Bは、ユーザ端末800におけるキャラクタの動作を指示するための動作指図データを生成し、ユーザ端末800に供給する機能を有する。キャラクタ制御装置110Bは、プロセッサ210、メモリ220、ストレージ230、通信IF250、および入出力IF240等の協働によって、制御部2100(コントロールモジュール510、レンダリングモジュール520)および記憶部2200(メモリモジュール530)として機能する。

0188

記憶部8200は、ゲームプログラム831を格納する。記憶部6200は、ゲームプログラム631を格納する。記憶部2200は、ゲームプログラム231を格納する。ゲームプログラム831は、ユーザ端末800が実行するゲームプログラムである。ゲームプログラム631は、サーバ600が実行するゲームプログラムである。ゲームプログラム231は、キャラクタ制御装置110Bが実行するゲームプログラムである。ゲームプログラム831、631、231に基づいて各装置が協同して動作することにより、ゲームシステム1500に係るゲームが実現される。なお、ゲームプログラム831、231は、記憶部6200に格納され、記憶部8200、2200にそれぞれダウンロードされる構成でもよい。

0189

また、記憶部8200、6200および2200は、それぞれ、ゲーム情報132およびユーザ情報133を格納する。ゲーム情報132は、制御部8100、6100および2100が、ゲームプログラム831、631、231をそれぞれ実行する際に参照するデータである。ユーザ情報133は、ユーザ8のアカウントに関するデータである。記憶部6200および2200において、ゲーム情報132およびユーザ情報133は、ユーザ端末800ごとに格納されている。

0190

(サーバ600の機能的構成)
制御部6100は、記憶部6200に格納されたゲームプログラム631を実行することにより、サーバ600を統括的に制御する。例えば、制御部6100は、ユーザ端末800に各種データおよびプログラム等を送信する。制御部6100は、ゲーム情報もしくはユーザ情報の一部または全部をユーザ端末800から受信する。ゲームがマルチプレイゲームである場合には、制御部6100は、ユーザ端末800からマルチプレイの同期の要求を受信して、同期のためのデータをユーザ端末800に送信してもよい。また、制御部6100は、必要に応じて、ユーザ端末800およびキャラクタ制御装置110Bと通信して、情報の送受信を行う。

0191

制御部6100は、ゲームプログラム631の記述に応じて、進行支援部6101および共有支援部6102として機能する。制御部6100は、実行するゲームの性質に応じて、ユーザ端末800におけるゲームの進行を支援するために、図示しないその他の機能ブロックとしても機能することができる。

0192

進行支援部6101は、ユーザ端末800と通信し、ユーザ端末800が、本ゲームに含まれる各種パートを進行するための支援を行う。例えば、進行支援部6101は、ユーザ端末800が、ゲームを進行させるとき、該ゲームを進行させるために必要な情報をユーザ端末800に提供する。

0193

共有支援部6102は、複数のユーザ端末800及びキャラクタ制御装置110Bと通
信し、これらの装置間でゲームの進行及び仮想空間11を共有するための支援を行う。また、共有支援部6102は、オンラインのユーザ端末800とキャラクタ制御装置110Bとをマッチングする機能を有していてもよい。これにより、ユーザ端末800とキャラクタ制御装置110Bとの間の情報の送受信が円滑に実施される。

0194

(ユーザ端末800の機能的構成)
制御部8100は、記憶部8200に格納されたゲームプログラム831を実行することにより、ユーザ端末800を統括的に制御する。例えば、制御部8100は、ゲームプログラム831およびユーザ8の操作にしたがって、ゲームを進行させる。また、制御部8100は、ゲームを進行させている間、必要に応じて、サーバ600およびキャラクタ制御装置110Bと通信して、情報の送受信を行う。

0195

制御部8100は、ゲームプログラム831の記述に応じて、操作受付部8101、表示制御部8102、ユーザインターフェース(以下、UI)制御部113、アニメーション生成部8104、ゲーム進行部8105、仮想空間制御部8106、および進捗情報生成部8107として機能する。制御部8100は、実行するゲームの性質に応じて、ゲームを進行させるために、図示しないその他の機能ブロックとしても機能することができる。

0196

操作受付部8101は、入力部8701に対するユーザ8の入力操作を検知し受け付ける。操作受付部8101は、タッチスクリーン870およびその他の入出力IF14を介したコンソールに対してユーザ8が及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部8100の各要素に出力する。

0197

例えば、操作受付部8101は、入力部8701に対する入力操作を受け付け、該入力操作の入力位置座標を検出し、該入力操作の種類を特定する。操作受付部8101は、入力操作の種類として、例えばタッチ操作、スライド操作、スワイプ操作、およびタップ操作等を特定する。また、操作受付部8101は、連続して検知されていた入力が途切れると、タッチスクリーン870から接触入力が解除されたことを検知する。

0198

UI制御部8103は、UIを構築するために表示部8702に表示させるUIオブジェクトを制御する。UIオブジェクトは、ユーザ8が、ゲームの進行上必要な入力をユーザ端末800に対して行うためのツール、または、ゲームの進行中に出力される情報をユーザ端末800から得るためのツールである。UIオブジェクトは、これには限定されないが、例えば、アイコン、ボタン、リストメニュー画面などである。

0199

アニメーション生成部8104は、各種オブジェクト制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。例えば、アニメーション生成部8104は、キャラクタがまるでそこにいるかのように動いたり、口を動かしたり、表情を変えたりする様子を表現したアニメーション等を生成してもよい。

0200

表示制御部8102は、タッチスクリーン870の表示部8702に対して、上述の各要素によって実行された処理結果が反映されたゲーム画面を出力する。表示制御部8102は、アニメーション生成部8104によって生成されたアニメーションを含むゲーム画面を表示部8702に表示してもよい。また、表示制御部8102は、UI制御部8103によって制御される上述のUIオブジェクトを、該ゲーム画面に重畳して描画してもよい。

0201

仮想空間制御部8106は、キャラクタ制御装置110Bとの間で仮想空間11を共有するための各種の制御を行う。図18は、仮想空間制御部8106の詳細な構成を示す図である。図18に示すように、仮想空間制御部8106は、仮想オブジェクト生成モジュール8121と、仮想カメラ制御モジュール8122と、アバターオブジェクト制御モジュール8124と、仮想オブジェクト制御モジュール8127とを含む。

0202

仮想オブジェクト生成モジュール8121は、図14を参照して説明した仮想オブジェクト生成モジュール1421と同様に構成される。ここで、ユーザ端末800において生成される仮想オブジェクトは、キャラクタ制御装置110Bにおいて生成される仮想オブジェクトに同期する。ただし、各仮想オブジェクトを同期するか否かは、仮想オブジェクト毎に定められていてもよい。例えば、キャラクタ制御装置110Bで生成された仮想オブジェクトのうち、ユーザ端末800では生成されないものがあってもよい。また、キャラクタ制御装置110Bで生成された仮想オブジェクトのうち、ユーザ端末800において異なる表示形態で生成されるものがあってもよい。表示形態とは、例えば、色、透明度等であってもよいが、これらに限られない。

0203

仮想カメラ制御モジュール8122は、図14を参照して説明した仮想カメラ制御モジュール1422と同様に構成される。ここで、ユーザ端末800A、800C、800Dにおいて実現される仮想空間11A、11C、11Dに配置される仮想カメラ14A、14C、14Dは、キャラクタ制御装置110Bにおいて実現される仮想空間11Bに配置される仮想カメラ14Bとは異なるものである。つまり、キャラクタ制御装置110B及びユーザ端末800間で共有される仮想空間11の視野画像は、キャラクタ制御装置110B及びユーザ端末800間で異なり得る。

0204

ユーザ端末800A、800C、800Dにおいて、仮想カメラ14A、14C、14Dの位置及び方向は、ユーザ8A、8C、8Dによって操作可能であってもよいし、操作不能であってもよい。また、操作不能である場合、仮想カメラ14A、14C、14Dの位置及び方向は、同一であってもよい。この場合、複数のユーザ8は、各ユーザ端末800を通して、共通の視野画像を視聴することになる。つまり、この場合、複数のユーザ8は、共通の仮想カメラで撮影された視野画像(ライブ映像)を視聴することができる。本実施形態では、仮想カメラ14A、14C、14Dの位置及び方向がユーザ8A、8C、8Dによって操作不能であり、複数のユーザ8が共通の視野画像を視聴する例を中心に説明する。

0205

以降、キャラクタ制御装置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と記載する。

0206

アバターオブジェクト制御モジュール8124は、図14を参照して説明したアバターオブジェクト制御モジュール1424に対して、HMD120の動き又はコントローラ300の動きに応じて動作することに替えて、動作指図データに応じて動作する点が異なる他は、同様に構成される。動作指図データは、キャラクタ制御装置110BにおいてHMD120の動き又はコントローラ300の動きに応じて生成され、ユーザ端末800に配信される。

0207

仮想オブジェクト制御モジュール8127は、図14を参照して説明した仮想オブジェクト制御モジュール1427に対して、動作指図データに応じて動作する点が異なる他は、同様に構成される。動作指図データは、キャラクタ制御装置110Bにおける仮想オブジェクトの挙動を表すようキャラクタ制御装置110Bにおいて生成され、ユーザ端末800に配信される。

0208

このように、仮想空間制御部8106は、動作指図データを解析して(レンダリングして)、解析結果に基づいてアバターオブジェクト6B(第1キャラクタ、第2キャラクタ)又は仮想オブジェクトを動作させる。本実施形態では、仮想空間制御部8106は、キャラクタ制御装置110Bによって供給された動作指図データが通信IF33を介して受信されたことをトリガにして、該データに基づいてアバターオブジェクト6B又は仮想オブジェクトを動作させる。これにより、リアルタイムで動作するキャラクタ及び仮想オブジェクトを、ユーザ8に見せることが可能となる。

0209

また、仮想空間制御部8106は、当該ユーザ端末800を含む複数のユーザ端末800及びキャラクタ制御装置110Bの間で共有される第1仮想空間11_1に、アバターオブジェクト6Bと、仮想カメラ14_A1と、複数の選択肢を表す仮想オブジェクトとを配置する。

0210

また、仮想空間制御部8106は、複数のユーザ端末800のうち所定条件が満たされたユーザ端末800及びキャラクタ制御装置110Bの間で共有される第2仮想空間11_2に、アバターオブジェクト6Bと、仮想カメラ14_A2とを配置する。本実施形態では、本発明において第2仮想空間11_2に配置される第2キャラクタの一例として、第1空間に配置される第1キャラクタと同じアバターオブジェクト6Bを適用する例について説明する。なお、当該ユーザ端末800が第2仮想空間11_2を共有するのは、当該ユーザ端末800において所定条件が満たされた場合である。所定条件の詳細については後述する。

0211

また、仮想空間制御部8106は、第1仮想空間11_1に配置された仮想カメラ14_A1の設定に従った視野画像1400_A1(第1視野画像)を、表示部8702に表示する。

0212

また、仮想空間制御部8106は、第2仮想空間11_2に配置された仮想カメラ14_A2の設定に従った視野画像1400_A2(第2視野画像)を、表示部8702に表示する。なお、当該ユーザ端末800において、第2視野画像が表示されるのは、当該ユーザ端末800において所定条件が満たされた場合である。

0213

つまり、第1仮想空間11_1の第1視野画像は、複数のユーザ端末800のユーザ8によって視聴可能であるのに対して、第2仮想空間11_2の第2視野画像は、所定条件が満たされたユーザ端末800のユーザ8によってのみ視聴可能である。

0214

以降、第1仮想空間11_1の第1視野画像を視聴することを、第1仮想空間11_1に参加する、とも記載する。また、第2仮想空間11_2の第2視野画像を視聴することを、第2仮想空間11_2に参加する、とも記載する。

0215

また、仮想空間制御部8106は、キャラクタ制御装置110Bのユーザ5Bの操作に基づいて、複数の選択肢の何れかを選択する動作をアバターオブジェクト6Bに行わせる。

0216

ゲーム進行部8105は、操作受付部8101を介して入力されるユーザ8の入力操作、及び、キャラクタ制御装置110Bのユーザ5Bによる入力操作の何れか又は両方に応じて、ゲームを進行させる。ゲーム進行部8105は、ゲームの進行中、1以上のキャラクタを登場させ、該キャラクタを動作させる。ゲーム進行部8105は、キャラクタを、ゲームプログラム831にしたがって動作させてもよいし、ユーザ8の入力操作にしたがって動作させてもよいし、キャラクタ制御装置110Bのユーザ5Bの操作に応じて生成される動作指図データにしたがって動作させてもよい。

0217

また、ゲーム進行部8105は、キャラクタ制御装置110Bのユーザ5Bの操作に応じて第1仮想空間11_1においてアバターオブジェクト6Bが行う第1動作に基づいて、ゲームを第1状態で進行させる。第1動作及び第1状態の詳細については後述する。

0218

また、ゲーム進行部8105は、ユーザ5Bの操作に応じて第1仮想空間11_1においてアバターオブジェクト6Bが行う所定の動作に基づいて、ゲームの進行を、第1状態から、当該第1状態と異なる第2状態に遷移させる。第2状態の詳細については後述する。

0219

所定の動作とは、例えば、所定の仮想オブジェクトを対象とする動作であってもよい。対象とする動作とは、例えば、押す、持つ、指し示す、回す、足で踏む等の動作であってもよいが、これに限られない。所定の仮想オブジェクトとは、例えば、押す動作の対象となるボタン型オブジェクト、回す動作の対象となるダイヤル型オブジェクト等であってもよいが、これらに限られない。

0220

また、ゲーム進行部8105は、ユーザ5Bの操作に応じて第1仮想空間11_1においてアバターオブジェクト6Bが行う第2動作に基づいて、ゲームを第2状態で進行させる。第2動作の詳細については後述する。

0221

ここで、第1状態及び第2状態とは、例えば、進行しているゲームの種類に応じた状態であってもよい。例えば、第1状態及び第2状態とは、仮想空間11の状態、表示部8702の状態、実行されるべきゲーム処理適用状態等を含んでいてもよい。具体的には、仮想空間11は、ゲームの種類に応じた仮想オブジェクトが配置された状態を有する。また、表示部8702は、ゲームの種類に応じたUIオブジェクトが表示された状態を有する。また、アバターオブジェクト6Bの動作又はUIオブジェクトに対する操作に応じて、ゲームの種類に応じたゲーム処理が適用される状態を有する。また、第1状態及び第2状態は、ゲームの進行に係るその他の状態を含んでいてもよい。

0222

以降、第1状態で進行するゲームを、第1ミニゲームとも記載し、第2状態で進行するゲームを、第2ミニゲームとも記載する。なお、本ゲームを進行させ得る状態の種類は、2つに限らず、3つ以上であってもよい。換言すると、本ゲームには、第1ミニゲーム、第2ミニゲームの他に、ミニゲームが含まれていてもよい。なお、第2ミニゲームは、本発明における第1プレイパートの一例に相当する。また、第1ミニゲームは、本発明における第2プレイパートの一例に相当する。

0223

第1ミニゲームには、ユーザ8のプレイによって満たすことが可能な第1条件が設定される。第1条件は、本発明における第2課題の一例に相当する。第2ミニゲームには、ユーザ8のプレイによって満たすことが可能な第2条件が設定される。第2条件は、本発明における第1課題の一例に相当する。各ミニゲームは、アバターオブジェクト6Bの動作と、ユーザ8の操作とに応じて進行する。

0224

また、第1動作及び第2動作とは、例えば、進行しているゲームの種類に応じたアバターオブジェクト6Bの動作であってもよい。例えば、第1ミニゲームがジャンケンゲームであれば、第1動作は、アバターオブジェクト6Bがグー・チョキ・パーに対応する仮想オブジェクトを選択する動作であってもよい。また、第2ミニゲームがビンゴゲームであれば、第2動作は、アバターオブジェクト6Bがビンゴボールに対応する仮想オブジェクトを選択する動作であってもよい。

0225

また、第1状態において、ゲームの種類に応じた第1動作は、複数種類あってもよい。例えば、第1状態において、仮想オブジェクトを選択するアバターオブジェクト6Bの動作と、勝敗を判定するための仮想ボタンを押すアバターオブジェクト6Bの動作とが、それぞれ第1動作とみなされてもよい。また、第2状態においても、ゲームの種類に応じた第2動作は、複数種類あってもよい。また、第1動作の何れかと、第2動作の何れかとが、同一の動作であってもよいし、異なる動作であってもよい。例えば、第1状態において、ゲームの勝敗を判定するための仮想ボタンを押す第1動作があり、第2状態において、ゲームの勝敗を判定するための仮想ボタンを押す第2動作があってもよい。

0226

また、ゲーム進行部8105は、アバターオブジェクト6Bが複数の選択肢の何れかを選択する動作に応じて、当該選択する動作による選択の結果に応じたゲーム処理を実行する。ここで、仮想空間11には、複数の選択肢を表す仮想オブジェクトが配置されている。

0227

また、ゲーム進行部8105は、上述した所定条件が満たされなかった場合に、当該ユーザ端末800のユーザ8によって入力される情報と、当該所定条件が満たされなかった他のユーザ端末800のユーザ8によって入力された情報とを、第1視野画像と共に表示部8702に表示する。所定条件が満たされなかったユーザ端末800の各ユーザ8によって入力される情報が表示されるパートを、以降、チャットパートとも記載する。

0228

進捗情報生成部8017は、ゲーム進行部8105が実行しているゲームの進捗を示す進捗情報を生成し、適時、サーバ600またはキャラクタ制御装置110Bに送信する。進捗情報は、例えば、現在表示されているゲーム画面を指定する情報を含んでいてもよいし、ゲームの進捗を、時系列で文字および記号等によって示した進行ログを含んでいてもよい。ゲームシステム1500において、サーバ600およびキャラクタ制御装置110Bが進捗情報を必要としない実施形態では、進捗情報生成部8017は省略されてもよい。

0229

(キャラクタ制御装置110Bの機能的構成)
制御部2100は、記憶部2200に格納されたゲームプログラム231を実行することにより、キャラクタ制御装置110Bを統括的に制御する。例えば、制御部2100は、ゲームプログラム231およびユーザ5Bの操作にしたがって、動作指図データを生成し、ユーザ端末800に供給する。制御部2100は、必要に応じて、さらにゲームプログラム231を実行してもよい。また、制御部2100は、サーバ600および本ゲームを実行中のユーザ端末800と通信して、情報の送受信を行う。

0230

制御部2100は、ゲームプログラム231の記述に応じて、操作受付部2101、表示制御部2102、UI制御部2103、アニメーション生成部2104、ゲーム進行部2105、仮想空間制御部2106、および反応処理部2107として機能する。制御部2100は、ゲームシステム1500において実行されるゲームの性質に応じて、該ゲームに登場するキャラクタを制御するために、図示しないその他の機能ブロックとしても機能することができる。

0231

操作受付部2101は、ユーザ5Bの入力操作を検知し受け付ける。入力操作は、例えば、HMD120、モーションセンサ420、ディスプレイ430がタッチスクリーンである場合に表示部と一体に形成された入力部、マウス(図示せず)、キーボード(図示せず)等の各種の入力装置から、入出力IF34を介して入力される。操作受付部2101は、ユーザ5Bが及ぼした作用から、いかなる入力操作がなされたかを判別し、その結果を制御部2100の各要素に出力する。操作受付部2101の機能の詳細は、ユーザ端末800における操作受付部8101のそれとほぼ同様である。

0232

UI制御部2103は、HMD120又はディスプレイ430に表示させるUIオブジェクトを制御する。

0233

アニメーション生成部2104は、各種オブジェクトの制御態様に基づいて、各種オブジェクトのモーションを示すアニメーションを生成する。例えば、アニメーション生成部2104は、通信相手となるユーザ端末800上実際に表示されているゲーム画面を再現したアニメーション等を生成してもよい。

0234

表示制御部2102は、HMD120又はディスプレイ430に対して、上述の各要素によって実行された処理結果が反映された画像を出力する。

0235

ゲーム進行部2105は、ユーザ5Bによる入力操作に応じたアバターオブジェクト6Bと、ユーザ端末800のユーザ8の操作とに基づいて、ゲームを進行する。例えば、ゲーム進行部2105は、アバターオブジェクト6Bが所定の動作を行った場合に、所定のゲーム処理を行う。また、例えば、ゲーム進行部2105は、ユーザ端末800におけるユーザ8の操作を表す情報を受信し、当該ユーザ8の操作に基づいてゲーム処理を行う。

0236

また、ゲーム進行部2105は、ユーザ端末800から受信するゲームの進捗を示す進捗情報に基づいて、ユーザ端末800におけるゲームの進捗を把握する。そして、ゲーム進行部2105は、該ユーザ端末800の挙動をキャラクタ制御装置110Bにおいて模擬的に再現することで、ユーザ5Bに対して、ユーザ端末800の進捗を提示する。

0237

例えば、ゲーム進行部2105は、ユーザ端末800で表示されているゲーム画面を再現したものを自装置の表示部352に表示してもよい。また、ゲーム進行部2105は、ユーザ端末800において、ゲームの進捗を上述の進行ログとして表示部352に表示してもよい。

0238

また、ゲーム進行部2105の機能の一部は、制御部2100がゲームプログラム231を実行することにより実現されてもよい。例えば、まずゲーム進行部2105は、進捗情報に基づいて、ユーザ端末800のゲームの進捗を把握する。そして、ゲーム進行部2105は、ユーザ端末800においてゲームプログラム831に基づき現在表示されている、ゲーム画面を、完全にまたは簡略化して自装置の表示部352に再現してもよい。あるいは、ゲーム進行部2105は、現時点のゲームの進捗を把握し、ゲームプログラム231に基づいて現時点以降のゲーム進行を予測し、予測結果を表示部352に出力してもよい。

0239

仮想空間制御部2106は、図14を参照して説明したコントロールモジュール510のモジュール1421〜1427を含む。これらの詳細については、既に説明した通りである。

0240

仮想空間制御部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は、該コマンドを入力された順に並べてキャラクタの一連の動作を示すモーションコマンド群を生成し、該モーションコマンド群にしたがってキャラクタを動作させることを指示する動作指図データを生成してもよい。このようにして生成された動作指図データには、上述のモーションコマンド群が少なくとも含まれる。

0241

反応処理部2107は、ユーザ端末800からユーザ8の反応についてフィードバックを受け付けて、これをキャラクタ制御装置110Bのユーザ5Bに対して出力する。本実施形態では、例えば、ユーザ端末800は、上述の動作指図データにしたがってキャラクタを動作させている間、該キャラクタに宛てて、ユーザ8がコメントを作成することができる。反応処理部2107は、該コメントのコメントデータを受け付けて、これを、出力する。反応処理部2107は、ユーザ8のコメントに対応するテキストデータを、表示部352に表示してもよいし、ユーザ8のコメントに対応する音声データを、図示しないスピーカから出力してもよい。

0242

なお、図17に示すユーザ端末800、サーバ600およびキャラクタ制御装置110Bの機能は一例にすぎない。ユーザ端末800、サーバ600およびキャラクタ制御装置110Bの各装置は、他の装置が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末800、サーバ600およびキャラクタ制御装置110B以外のさらに別の装置をゲームシステム1500の構成要素とし、該別の装置にゲームシステム1500における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末800、サーバ600、キャラクタ制御装置110Bおよびそれ以外の別の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。

0243

なお、図17に示すサーバ600およびユーザ端末800の機能は一例にすぎない。サーバ600は、ユーザ端末800が備える機能の少なくとも一部を備えていてもよい。また、ユーザ端末800は、サーバ600が備える機能の少なくとも一部を備えていてもよい。さらに、ユーザ端末800およびサーバ600以外の他の装置をゲームシステム1500の構成要素とし、該他の装置にゲームシステム1500における処理の一部を実行させてもよい。すなわち、本実施形態においてゲームプログラムを実行するコンピュータは、ユーザ端末800、サーバ600、および他の装置の何れであってもよいし、これらの複数の装置の組み合わせにより実現されてもよい。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ