特許第6526879号(P6526879)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社バーチャルキャストの特許一覧

<>
  • 特許6526879-データ送信装置、およびプログラム 図000002
  • 特許6526879-データ送信装置、およびプログラム 図000003
  • 特許6526879-データ送信装置、およびプログラム 図000004
  • 特許6526879-データ送信装置、およびプログラム 図000005
  • 特許6526879-データ送信装置、およびプログラム 図000006
  • 特許6526879-データ送信装置、およびプログラム 図000007
  • 特許6526879-データ送信装置、およびプログラム 図000008
  • 特許6526879-データ送信装置、およびプログラム 図000009
  • 特許6526879-データ送信装置、およびプログラム 図000010
  • 特許6526879-データ送信装置、およびプログラム 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6526879
(24)【登録日】2019年5月17日
(45)【発行日】2019年6月5日
(54)【発明の名称】データ送信装置、およびプログラム
(51)【国際特許分類】
   G06F 13/00 20060101AFI20190527BHJP
   G06F 3/16 20060101ALI20190527BHJP
【FI】
   G06F13/00 510G
   G06F13/00 650R
   G06F3/16 530
【請求項の数】10
【全頁数】21
(21)【出願番号】特願2018-120104(P2018-120104)
(22)【出願日】2018年6月25日
【審査請求日】2018年7月19日
【早期審査対象出願】
(73)【特許権者】
【識別番号】518412081
【氏名又は名称】株式会社バーチャルキャスト
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100199565
【弁理士】
【氏名又は名称】飯野 茂
(72)【発明者】
【氏名】川上 量生
(72)【発明者】
【氏名】松井 健太郎
(72)【発明者】
【氏名】岩城 進之介
(72)【発明者】
【氏名】小嶋 尚
(72)【発明者】
【氏名】山口 直樹
【審査官】 安藤 一道
(56)【参考文献】
【文献】 特開平10−055261(JP,A)
【文献】 特開2016−187063(JP,A)
【文献】 特開2018−067157(JP,A)
【文献】 特開2003−108506(JP,A)
【文献】 特表2010−520539(JP,A)
【文献】 特開2003−304350(JP,A)
【文献】 国際公開第2017/098772(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
G06F 3/16
(57)【特許請求の範囲】
【請求項1】
第1のアバターの仮想空間における第1の位置を示す第1の位置データと、前記第1のアバターの音声データとを取得する取得部と、
前記第1の位置に関する既定の条件が満足するか否かを判定する判定部と、
前記既定の条件が満足すると判定された場合に前記音声データを宛先端末へ向けて送信することを決定し、前記既定の条件が満足しないと判定された場合に前記音声データを前記宛先端末へ向けて送信しないことを決定する送信制御部と
を具備し、
前記既定の条件は、前記第1の位置が前記仮想空間における既定のゾーン内にあることであ
前記判定部は、前記第1のアバターが前記仮想空間における既定のオブジェクトを装着しているか否かを判定し、前記第1のアバターが前記既定のオブジェクトを装着していると判定した場合には前記既定の条件が満足するか否かの判定を省略し、
前記送信制御部は、前記第1のアバターが前記既定のオブジェクトを装着していると判定された場合に、前記音声データを前記宛先端末へ向けて送信することを決定する、
データ送信装置。
【請求項2】
前記送信制御部は、前記既定の条件が満足すると判定された場合にピア・ツー・ピア型のネットワーク経由で前記音声データを前記宛先端末へ向けて送信することを決定する、請求項1に記載のデータ送信装置。
【請求項3】
前記既定のゾーンは、前記仮想空間における既定の地点からの距離に基づいて定められる、請求項1に記載のデータ送信装置。
【請求項4】
前記取得部は、前記第1のアバターの姿勢を決定づける制御データをさらに取得し、
前記送信制御部は、前記既定の条件が満足すると判定された場合に前記音声データと、前記制御データおよび前記第1の位置データの少なくとも一方とを宛先端末へ向けて送信することを決定し、前記既定の条件が満足しないと判定された場合に前記音声データを前記宛先端末へ向けて送信せず前記制御データおよび前記第1の位置データの少なくとも一方を前記宛先端末へ向けて送信することを決定する、
請求項1乃至請求項3のいずれか1項に記載のデータ送信装置。
【請求項5】
コンピュータを、
第1のアバターの仮想空間における第1の位置を示す第1の位置データと、前記第1のアバターの音声データとを取得する手段、
前記第1の位置に関する既定の条件が満足するか否かを判定する手段、
前記既定の条件が満足すると判定された場合に前記音声データを宛先端末へ向けて送信することを決定し、前記既定の条件が満足しないと判定された場合に前記音声データを前記宛先端末へ向けて送信しないことを決定する手段
として機能させるプログラムであって、
前記既定の条件は、前記第1の位置が前記仮想空間における既定のゾーン内にあることであ
前記判定する手段は、前記第1のアバターが前記仮想空間における既定のオブジェクトを装着しているか否かを判定し、前記第1のアバターが前記既定のオブジェクトを装着していると判定した場合には前記既定の条件が満足するか否かの判定を省略し、
前記決定する手段は、前記第1のアバターが前記既定のオブジェクトを装着していると判定された場合に、前記音声データを前記宛先端末へ向けて送信することを決定する、
プログラム。
【請求項6】
第1のアバターの仮想空間における第1の位置を示す第1の位置データと、前記第1のアバターの音声データとを取得する取得部と、
前記第1の位置に関する既定の条件が満足するか否かを判定する判定部と、
前記既定の条件が満足すると判定された場合に前記音声データを宛先端末へ向けて送信することを決定し、前記既定の条件が満足しないと判定された場合に前記音声データを前記宛先端末へ向けて送信しないことを決定する送信制御部と
を具備し、
前記取得部は、前記仮想空間に存在する前記第1のアバターを含む複数のアバターの前記仮想空間における位置を示す位置データを取得し、
前記既定の条件は、前記複数のアバターの前記仮想空間における位置を前記仮想空間における既定の地点から近い順にソートした場合に前記第1の位置が既定の順位以上となることである、
データ送信装置。
【請求項7】
前記送信制御部は、前記既定の条件が満足すると判定された場合にピア・ツー・ピア型のネットワーク経由で前記音声データを前記宛先端末へ向けて送信することを決定する、請求項6に記載のデータ送信装置。
【請求項8】
前記判定部は、前記第1のアバターが前記仮想空間における既定のオブジェクトを装着しているか否かを判定し、前記第1のアバターが前記既定のオブジェクトを装着していると判定した場合には前記既定の条件が満足するか否かの判定を省略し、
前記送信制御部は、前記第1のアバターが前記既定のオブジェクトを装着していると判定された場合に、前記音声データを前記宛先端末へ向けて送信することを決定する、
請求項6または請求項7に記載のデータ送信装置。
【請求項9】
前記取得部は、前記第1のアバターの姿勢を決定づける制御データをさらに取得し、
前記送信制御部は、前記既定の条件が満足すると判定された場合に前記音声データと、前記制御データおよび前記第1の位置データの少なくとも一方とを宛先端末へ向けて送信することを決定し、前記既定の条件が満足しないと判定された場合に前記音声データを前記宛先端末へ向けて送信せず前記制御データおよび前記第1の位置データの少なくとも一方を前記宛先端末へ向けて送信することを決定する、
請求項6乃至請求項8のいずれか1項に記載のデータ送信装置。
【請求項10】
コンピュータを、
第1のアバターの仮想空間における第1の位置を示す第1の位置データと、前記第1のアバターの音声データとを取得する手段、
前記第1の位置に関する既定の条件が満足するか否かを判定する手段、
前記既定の条件が満足すると判定された場合に前記音声データを宛先端末へ向けて送信することを決定し、前記既定の条件が満足しないと判定された場合に前記音声データを前記宛先端末へ向けて送信しないことを決定する手段
として機能させるプログラムであって、
前記取得する手段は、前記仮想空間に存在する前記第1のアバターを含む複数のアバターの前記仮想空間における位置を示す位置データを取得し、
前記既定の条件は、前記複数のアバターの前記仮想空間における位置を前記仮想空間における既定の地点から近い順にソートした場合に前記第1の位置が既定の順位以上となることである、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、VR(Virtual Reality)、AR(Augmented Reality)、またはMR(Mixed Reality)技術に関する。
【背景技術】
【0002】
従来、HMD(Head Mounted Display)を装着した複数のユーザ間でネットワークを介して仮想体験、すなわちVR体験を共有することが知られている。具体的には、仮想空間上においてユーザ間(アバター間)の音声チャット(VRチャット)を実現することが知られている(特許文献1の[0081])。
【0003】
特許文献1には、「ユーザAの音声を示す音声データ(ユーザAの音声データ)をサーバ2に送信する」こと([0076])、「サーバ2の制御部23は、ユーザ端末1Aから受信したユーザAの音声データに関連する音量パラメータLを設定する(ステップS15)。ここで、音量パラメータLはユーザ端末1Bのヘッドフォン116(音声出力部)に出力されるユーザAの音声の音量(音圧レベル)を規定するパラメータである」こと([0078])、「アバター4Bが仮想空間における高伝達領域に位置している場合には、音量パラメータLを音量パラメータL1に設定する」および「アバター4Bが仮想空間における高伝達領域に位置していない場合には、音量パラメータLを音量パラメータL2に設定する」こと(要約書)、「ユーザAの音声データと、音量パラメータLをユーザ端末1Bに送信する」こと([0079])、「ユーザ端末1Bの制御部121は、ユーザAの音声データと、音量パラメータLとに基づいて、ユーザAの音声をヘッドフォン116に出力する」こと([0081])、などが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第6289703号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
仮想空間において複数のユーザ間で例えば音声チャットのような聴覚的な仮想体験の共有を実現するために、各ユーザの端末から他の端末へ向けて音声データを送信することがある。このように端末間で音声データをやり取りすると、仮想体験を共有するユーザ数が増えるほど、音声データのトラフィック量が増大することになる。換言すれば、音声データのトラフィック量が、仮想空間に収容可能なユーザの最大数を制限する一要因となる可能性がある。これは、VR体験のみならず、ARまたはMRといった仮想的な要素を含む体験(以降、仮想的体験と称する)全般において生じ得る。
【0006】
また、仮想的体験を共有するユーザ数が多すぎると、例えばあるユーザのアバターの音声が、同時に発話した他のユーザのアバターの音声に埋もれてしまい、聞き取ることが困難となるおそれもある。これは、例えば仮想空間においてライブなどのイベントを開催する場合により深刻である。すなわち、多くのユーザが注目している、出演者などの主要なアバターのトークや歌声が、観客などの他のアバターの笑い声、歓声、拍手、やじ、などのリアクションに埋もれてしまい、ユーザの仮想的体験を損なうおそれがある。
【0007】
本発明は、複数のユーザ間で仮想的体験を共有する場合に、音声データのトラフィック量を抑制し、またはユーザの仮想的体験の毀損を防止することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様に係るデータ送信装置は、取得部と、判定部と、送信制御部とを含む。取得部は、第1のアバターの仮想空間における第1の位置を示す第1の位置データと、第1のアバターの音声データとを取得する。判定部は、第1の位置に関する既定の条件が満足するか否かを判定する。送信制御部は、既定の条件が満足すると判定された場合に音声データを宛先端末へ向けて送信することを決定し、既定の条件が満足しないと判定された場合に音声データを宛先端末へ向けて送信しないことを決定する。
【0009】
本発明の別の態様に係る端末は、取得部と、判定部と、送信制御部とを含む。取得部は、第1のアバターの仮想空間における第1の位置を示す第1の位置データと、第1のアバターの音声データとを取得する。判定部は、第1の位置に関する既定の条件が満足するか否かを判定する。送信制御部は、既定の条件が満足すると判定された場合にピア・ツー・ピア型のネットワーク経由で音声データを宛先端末へ向けて送信することを決定し、既定の条件が満足しないと判定された場合にクライアント/サーバ型のネットワーク経由で音声データを宛先端末へ向けて送信することを決定する。
【発明の効果】
【0010】
本発明によれば、複数のユーザ間で仮想的体験を共有する場合に、音声データのトラフィック量を抑制し、またはユーザの仮想的体験の毀損を防止することができる。
【図面の簡単な説明】
【0011】
図1】実施形態に係る端末を例示するブロック図。
図2図1の端末を含む仮想的体験共有システムを例示するブロック図。
図3】既定の条件(1)の説明図。
図4】既定の条件(2)の説明図。
図5】既定の条件(3)の説明図。
図6】既定の条件(4)の説明図。
図7図1の端末の動作を例示するフローチャート。
図8】変形例1に係る端末を含む仮想的体験共有システムを例示するブロック図。
図9】変形例1に係る端末の動作を例示するフローチャート。
図10】変形例2に係るサーバを例示するブロック図。
【発明を実施するための形態】
【0012】
以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。例えば、複数の同一または類似の要素が存在する場合に、各要素を区別せずに説明するために共通の符号を用いることがあるし、各要素を区別して説明するために当該共通の符号に加えて枝番号を用いることもある。
【0013】
(実施形態)
実施形態に係る端末は、仮想的体験共有システムを構成することができる。かかるシステムは、図2に例示される。このシステムでは、端末100は互いに、例えばインターネットなどのネットワーク経由で接続されており、データを送受信できる。
【0014】
なお、図2のシステムでは、端末100同士がサーバを介してデータを送受信するC/S(Client / Server)型のネットワークではなく、端末100同士がデータを直接送受信するP2P(Peer to Peer)型のネットワークが採用されている。しかしながら、P2P型のネットワークに代えて、またはP2P型のネットワークに追加して、C/S型のネットワークを採用したとしても、本実施形態に係る端末100およびサーバを用いて仮想的体験共有システムを構築することは可能である。
【0015】
ここで、P2P型のネットワークは、C/S型のネットワークに比べて種々のメリットがある。具体的には、かかるメリットとして、データ伝送に伴う遅延が低減するのでリアルタイム性の高い仮想的体験の共有に適していること、サーバが存在しないためC/S型のネットワークではサーバに集中していたトラフィックおよび負荷を分散することができること、単一障害点が存在しないこと、などを挙げることができる。
【0016】
反面、P2P型のネットワークを採用すると、リンク数はユーザ数nに対してn×(n−1)/2個となり、非線形に増加することになる。故に、P2P型のネットワークでは通常はユーザ数が増えると音声データのトラフィック量は爆発的に増大するため、C/S型のネットワークを採用した場合に比べて音声データのトラフィック量の問題がより深刻となり得る。
【0017】
端末100は、ユーザの頭部に装着可能なHMD10(第1のデバイス)に表示されるVR/AR/MR画像、およびスピーカ(これは、HMD10に内蔵されていてもよいし、HMD10とは別体であってもよい。)によって出力されるVR/AR/MR音声を制御するように構成されたコンピュータであり、当該HMD10とユーザが把持可能なコントローラ20(第2のデバイス)とにそれぞれ接続されている。なお、コントローラ20は、ユーザ毎に、2つ(両手用)用意されてもよいし、1つ(片手用)用意されてもよい。また、コントローラ20は、手以外の部位に装着されてもよい。さらに、図2には示されていないものの、HMD10および/またはコントローラ20の位置を検出するための位置センサシステムに含まれる要素の1つであるベースステーションがさらに端末100に接続されてもよい。
【0018】
端末100は、HMD10、コントローラ20、および/またはベースステーションと、例えばUSB(Universal Serial Bus)ケーブル、HDMI(登録商標)(High―Definition Multimedia Interface)ケーブル、などの有線通信手段により接続されてもよいし、例えばBluetooth(登録商標)、WirelessHD、WHDI(Wireless Home Digital Interface)、などの無線通信手段により接続されてもよい。
【0019】
端末100は、後述されるように、マイクロホンによって生成された音声データを他の端末100(宛先端末)へ既定の条件付きで送信する。他の端末100は、この音声データを再生して出力する。これにより、音声データのトラフィック量を抑制しながらも、ユーザ間の音声チャット、またはライブなどの臨場感のあるイベントをVR/AR/MR空間において実現することが可能となる。
【0020】
また、アバターの姿勢を動的に制御するために、端末100は、後述されるようにHMD10の位置およびコントローラ20の位置に基づく値を持つ制御データを取得し、当該制御データを他の端末100(宛先端末)へ向けて送信してもよい。制御データは、アバターの姿勢を決定づける。
【0021】
制御データを受信した他の端末100は、受信した制御データに基づいてユーザのアバター画像を生成する。すなわち、ユーザは、HMD10を装着した頭やコントローラ20を把持した手を動かすことで自らの分身であるアバターに自由な姿勢を取らせることができる。
【0022】
具体的には、他の端末100は、受信した制御データの示すHMD10の位置に応じてアバター画像の頭部の位置を決定し、当該制御データの示すコントローラ20の位置に応じてアバター画像の手の位置を決定する。アバターの姿勢の制御には、例えばIK(Inverse Kinematics)技術を利用することができる。
【0023】
HMD10は、アバター画像を含むVR/AR/MR画像を表示するための表示装置に加え、種々のセンサ、スピーカ、マイクロホン、などを含み得る。種々のセンサは、動きセンサ、装着センサ、または位置センサシステムに含まれる要素の一部(後述されるマーカーまたはカメラ)を含み得る。HMD10は、端末100から画像データおよび音声データを受け取って、これらを出力したり、各種センサのセンサデータを端末100へ向けて送信したりする。
【0024】
表示装置は、透過型ディスプレイであってもよいし、非透過型ディスプレイであってもよい。例えば、HMD10を装着したユーザの視界の少なくとも一部を覆うように表示装置のサイズおよび配置が定められる。表示装置は、左目用表示装置と右目用表示装置とで構成されてもよいし、両者が一体化されていてもよい。
【0025】
動きセンサは、例えば、加速度センサ、ジャイロスコープ、磁気センサ、などであり得る。動きセンサによって検出されたセンサデータは、ユーザの頭部の姿勢(例えば傾き)の推定に利用することができる。具体的には、このセンサデータに基づいて、ユーザの頭部の3次元的な回転角であるYaw角、Roll角、およびPitch角が推定され、これに応じてユーザの視界を決定する仮想カメラの視軸および/またはアバターの頭部の姿勢が制御され得る。
【0026】
装着センサは、ユーザがHMD10を装着/取り外したことを示すセンサデータ(イベントデータ)を発生する。装着センサの仕組みは任意であるが、例えば、HMD10に設けられたバネの弾性力の変化、HMD10の装着時にユーザの鼻などの身体の一部に接触するパッド間を流れる電流の変化、などに応じてイベントデータを発生することが可能である。
【0027】
スピーカは、端末100から音声データを受け取り、これに基づいて音声を出力する。スピーカは、典型的にはヘッドホン型であるが、これ以外のスピーカシステムとして構成されてもよい。マイクロホンは、音声(主にユーザの発話であるが、周囲の環境音を含み得る)を収集する。マイクロホンは、収集した音声に基づいて音声データを生成し、端末100へ送る。
【0028】
コントローラ20は、ユーザ入力を受け付けるボタンに加え、例えば、HMD10と同様の動きセンサ、位置センサシステムに含まれる要素の一部、などを含み得る。さらに、コントローラ20は、ユーザがコントローラ20を把持/手放したことを示すセンサデータ(イベントデータ)を発生する把持センサを含んでもよい。把持センサの仕組みは任意であるが、例えば、ユーザの把持力によりコントローラ20に加わる圧力の変化、コントローラ20の表面に設けられたセンサ電極と人体との間の静電容量の変化、などに応じてイベントデータを発生することが可能である。コントローラ20は、ユーザ入力データ、各種センサのセンサデータ、などを端末100へ向けて送信する。
【0029】
位置センサシステムは、例えばカメラ(ポジション・トラッキング・カメラ)とマーカー(トラッカーとも呼ばれる)との組み合わせにより実現される。マーカーは、赤外光または可視光のエミッタ(例えばLED(Light Emitting Diode))であってもよいし、カメラの撮影時にエミッタから発せられる赤外光または可視光を反射するための反射材であってもよい。カメラは、マーカーが赤外光を照射または反射する場合には赤外線センサであり得るし、マーカーが可視光を照射または反射する場合には可視光カメラであり得る。
【0030】
典型的には、HMD10/コントローラ20に複数のマーカーが取り付けられ、カメラがHMD10/コントローラ20から離れた位置に設置された装置(ベースステーション)に取り付けられる。カメラの撮影画像に基づいて、HMD10/コントローラ20の位置を推定することができる。具体的には、ベースステーションは、撮影画像に基づいて検知点の位置、傾き、発光強度などを検出することができる。ベースステーションは、かかる検知点のデータに基づいてHMD10/コントローラ20の位置(座標)データを計算してもよいし、かかる計算は端末100に委ねられてもよい。
【0031】
なお、変形例として、カメラをHMD10/コントローラ20側に設け、マーカーをベースステーション側に設けることも可能である。また、HMD10およびコントローラ20に取り付けられるマーカーに加えて、ユーザの関節、抹消部などにさらなるマーカーが取り付けられてもよい。これにより、ユーザの姿勢をより正確に推定することが可能となる。
【0032】
以下、端末100のハードウェア構成について説明する。端末100は、HMD10の制御装置となり得る種々の電子デバイス、例えば、PC(Personal Computer)、モバイル端末(例えば、タブレット、ファブレット、スマートフォン、ラップトップ、フィーチャーフォン、ウェアラブルデバイス、ポータブルゲーム機、など)、据え置き型ゲーム機、などであり得るが、これらに限られない。
【0033】
なお、端末100は、HMD10または他のデバイス(コントローラ20、ベースステーション、など)と必ずしも別体でなくてもよい。例えば、端末100がHMD10またはベースステーションに内蔵されていてもよいし、端末100をコントローラ20として扱うこともあり得る。
【0034】
端末100は、例えば、入出力制御、通信制御(特に、音声データの送信制御)、画像/音声処理、既定の条件判定、などを行うプロセッサを含む。ここで、プロセッサは、典型的にはCPU(Central Processing Unit)および/またはGPU(Graphics Processing Unit)であるが、マイコン、FPGA(Field Programmable Gate Array)、DSP(Digital Signal Processor)、またはその他の汎用または専用のプロセッサなどであってもよい。
【0035】
また、端末100は、かかる処理を実現するためにプロセッサによって実行されるプログラムおよび当該プロセッサによって使用されるデータ、例えば、アバター、背景、などのVR/AR/MR体験を演出するための各種オブジェクトの基となる画像データを一時的に格納するメモリを含んでいる。メモリは、かかるプログラム/データが展開されるワークエリアを有するRAM(Random Access Memory)を含み得る。
【0036】
なお、端末100は、全てのデータをオンメモリの状態で扱ってもよいし、一部のデータが補助記憶装置に退避されていてもよい。補助記憶装置は、例えば、端末100に内蔵または外付けされたHDD(Hard Disc Drive)、SSD(Solid State Drive)、フラッシュメモリなどであってもよいし、端末100からアクセス可能なデータベースサーバであってもよい。
【0037】
端末100は、さらに、ネットワークに接続するための通信I/F(インタフェース)を利用可能である。通信I/Fは、端末100に内蔵されてもよいし、端末100に外付けされてもよい。通信I/Fは、他の端末100、および/または、外部装置、例えば、HMD10、コントローラ20、ベースステーション、などと通信をするためのモジュールであって、送受信のための信号処理回路、アンテナ、LAN(Local Area Network)端子などを含み得る。通信I/Fは、例えば移動通信などの広域通信用のモジュール、無線/有線LAN用のモジュール、Bluetooth用のモジュール、などであり得る。
【0038】
端末100は、さらに、外部装置、例えば、HMD10、コントローラ20、ベースステーション、などにケーブル接続するための入出力I/Fを利用可能である。入出力I/Fは、USB端子、DVI(Digital Visual Interface)端子、HDMI端子、またはその他のデータ転送用ケーブルのための端子、などである。
【0039】
端末100は、さらに、各要素、例えば、プロセッサ、メモリ、補助記憶装置、通信I/F、入出力I/Fなどの間でデータを転送するためのバスを含み得る。
【0040】
図1には、端末100の機能構成が例示される。端末100は、入力部101と、受信部102と、送信部103と、出力部104と、データ取得部111と、距離算出部112と、条件判定部113と、送信制御部114と、画像生成部115と、音声生成部116とを含む。
【0041】
入力部101は、前述の入出力I/Fにより実現され得る。入力部101は、外部装置、例えば、HMD10、コントローラ20、ベースステーション、マイクロホン(HMD10に内蔵されていてもよいし、別体であってもよい)、などから種々のデータを受け付ける。入力部101は、受け付けたデータをデータ取得部111へ送る。
【0042】
具体的には、入力部101は、アバター(端末100のユーザに関連付けられるアバターであり、以降は第1のアバターと称する)仮想空間における位置を示す位置データ、マイクロホンによって生成された第1のアバターの音声データ、第1のアバターの姿勢を制御するための制御データ(これは、位置データと統合されてもよいし、別個のデータであってもよい)、などを受け付け得る。
【0043】
ここで、位置データは、例えば、HMD10および/またはコントローラ20の位置を示すデータであってもよいし、これらに基づいて生成されたデータであってもよい。制御データについても同様である。なお、外部装置と端末100との関係次第で、これらのデータの一部または全部が、入力部101ではなく受信部102によって受信されることもあり得る。
【0044】
受信部102は、前述の通信I/Fにより実現され得る。受信部102は、ネットワーク経由で、他の端末100から、アバター(他の端末100のユーザに関連付けられるアバターであり、以降は他アバターと称する)の仮想空間における位置を示す位置データ、他アバターの制御データおよび/または音声データを受信し得る。受信部102は、受信したデータをデータ取得部111へ送る。
【0045】
送信部103は、前述の通信I/Fにより実現され得る。送信部103は、送信制御部114によって制御され、第1のアバターの音声データ、位置データおよび/または制御データを宛先端末へ向けて送信する。
【0046】
出力部104は、前述の入出力I/Fにより実現され得る。出力部104は、外部装置、例えば、HMD10、スピーカへ出力データ、具体的には、出力部104は、VR/AR/MR画像データをHMD10へ出力したり、VR/AR/MR音声データをスピーカへ出力したりする。さらに、出力部104は、HMD10および/またはコントローラ20へ、触覚フィードバック用のバイブレータ(図示されない)を振動させるための振動データを出力してもよい。
【0047】
データ取得部111は、前述のプロセッサにより実現され得る。データ取得部111は、入力部101および受信部102から種々のデータを取得する。データ取得部111は、取得したデータを、距離算出部112、条件判定部113、画像生成部115および/または音声生成部116へ送る。
【0048】
具体的には、データ取得部111は、第1のアバターの音声データ、位置データ、および制御データ、などに加えて、他アバターの音声データ、位置データ、および制御データ、などを取得し得る。
【0049】
例えば、データ取得部111は、第1のアバターの位置データを距離算出部112および条件判定部113へ送り、第1のアバターの音声データおよび制御データを条件判定部113へ送り、他アバターの位置データを距離算出部112へ送り、他アバターの制御データを画像生成部115へ送り、他アバターの音声データを音声生成部116へ送り得る。
【0050】
なお、外部装置、例えば、HMD10、コントローラ20および/またはベースステーションがHMD10/コントローラ20の位置を推定して第1のアバターの位置データ/制御データを生成する場合には、データ取得部111は入力部101または受信部102から位置データ/制御データを直接取得することができる。他方、端末100(の図示されない位置/姿勢推定部)が位置センサシステムの出力データ(例えば、検知点の位置、傾き、発光強度などを示すデータ)に基づいてHMD10/コントローラ20の位置を推定して第1のアバターの位置データ/制御データを生成する必要がある場合には、データ取得部111はこの位置/姿勢推定部へ位置センサシステムの出力データを送り、位置データ/制御データの生成を依頼してもよい。
【0051】
距離算出部112は、前述のプロセッサにより実現され得る。距離算出部112は、仮想空間における2地点間の距離を算出する。具体的には、距離算出部112は、仮想空間における基準地点から第1のアバターまたは他アバターの居る地点までの距離を算出し得る。基準地点は、第1のアバターまたは他アバターの居る地点に定められてもよいし、いずれのアバターも居ない地点に定められてもよい。距離算出部112は、距離データを条件判定部113へ送る。なお、後述される既定の条件が、仮想空間における2地点間の距離と無関係のものである場合には、距離算出部112は不要となり得る。
【0052】
条件判定部113は、前述のプロセッサにより実現され得る。条件判定部113は、データ取得部111から第1のアバターの音声データと、第1のアバターの制御データおよび/または位置データとを受け取り、さらに、距離算出部112から距離データを受け取り得る。条件判定部113は、第1のアバターの仮想空間における位置に関する既定の条件が満足するか否かを、第1のアバターの位置データおよび/または距離データに基づいて判定する。条件判定部113は、判定結果を示すデータとともに、第1のアバターの音声データ、位置データおよび/または制御データを送信制御部114へ送る。既定の条件は、ユーザの仮想的体験の毀損を防止しながら、同時に、共有対象となる音声データを間引くことを目的に定められ得る。
【0053】
具体的には、既定の条件は、(1)第1のアバターの仮想空間における位置(以降、第1の位置と称する)が既定のゾーン内にあること、(2)仮想空間に存在する第1のアバターを含む複数のアバター(仮想空間に存在する全アバターであってもよいし、そうでなくてもよい)の仮想空間における位置を仮想空間における既定の地点から近い順にソートした場合に、第1の位置が既定の順位以上となること、(3)宛先端末としての他の端末100に関連付けられる他アバターの仮想空間における位置と第1の位置との間の距離が閾値未満で在ること、または(4)仮想空間に存在する第1のアバターを除く複数のアバター(仮想空間に存在する第1のアバターを除く全アバターであってもよいし、そうでなくてもよい)の仮想空間における位置と第1の位置との間の距離を昇順にソートした場合に、宛先端末としての他の端末100に関連付けられる他アバターの仮想空間における位置と第1の位置との間の距離が既定の順位以上となること、を含み得る。ただし、既定の条件は、これら(1)〜(4)に限定されない。
【0054】
既定の条件(1)について、図3を用いて説明する。既定のゾーンは、仮想空間における既定の地点からの距離に基づいて定められてよい。ただし、既定のゾーンは、これに限らず例えばゾーン内外の境界の座標を指定するなどして任意に定義されてよい。図3および図4乃至図6は、仮想空間を見下ろした俯瞰図であり、丸数字のマークはアバターの(頭部の)位置を表しており、便宜的にその数字をアバターの符号としても用いることとする。また、図3において、既定のゾーンは、×印で表される既定の地点から半径○○メートル以内、と定められている。図3の例では、アバター1の位置は既定のゾーン内になく、アバター2の位置は既定のゾーン内にある。故に、アバター1に関連付けられるユーザの端末100において、条件判定部113は既定の条件が満足しないと判定する。他方、アバター2に関連付けられるユーザの端末100において、条件判定部113は既定の条件が満足すると判定する。なお、既定の条件(1)において、宛先端末の区別はなく、判定結果は全ての宛先端末との関係で適用される。すなわち、アバター1に関連付けられるユーザの端末100はいずれの他の端末100にも音声データを送信せず、アバター2に関連付けられるユーザの端末100は全ての他の端末100へ音声データを送信する。
【0055】
図3の例は、仮想空間において開催されるライブなどのイベントのように、各ユーザが特定のアバターの挙動に注目する場面に適している。図3の例によれば、既定のゾーンは仮想的なステージとみなすことができる。仮想ステージに登壇していないアバターの音声データは他の端末100へ送信されないため、仮想ステージに登壇しているアバターの音声が他のアバターの音声に埋もれにくくなる。すなわち、各ユーザは目的のアバターのトークや歌声に集中することができ、同時にシステム全体での音声データのトラフィック量を抑制することができる。また、仮想ステージを視覚的にも表現するために、VR/MR/AR画像データにおいて、既定のゾーンに仮想ステージを表すオブジェクトが配置されてもよい。さらに、既定のゾーン外の場所に仮想観客席を表すオブジェクトが配置されてもよい。なお、既定のゾーンは仮想ステージと一致させる必要はなく、例えば仮想観客席の最前列を含むようにしてもよい。これにより、仮想ステージに加えて仮想観客席に居るアバターの一部によるリアクションの音声データも共有されるので、臨場感を演出することが可能となる。
【0056】
或いは、見方を変えれば、既定の地点は仮想マイクロホンの設置ポイントとみなすこともできる。仮想マイクロホンから遠くに居るアバターの音声データは他の端末100へ送信されないため、仮想マイクロホンに近くに居るアバターの音声が他のアバターの音声に埋もれにくくなる。すなわち、各ユーザは目的のアバターのトークや歌声に集中することができ、同時にシステム全体での音声データのトラフィック量を抑制することができる。仮想マイクロホンを視覚的にも表現するために、VR/MR/AR画像データにおいて、既定のゾーンの基準位置となる既定の地点に仮想マイクロホンを表すオブジェクトが配置されてもよい。
【0057】
既定の条件(2)について、図4を用いて説明する。図4において、×印は既定の地点を表しており、当該地点とアバター1との距離はd10、当該地点とアバター2との距離はd20、当該地点とアバター3との距離はd30で表される。d20<d10<d30であり、既定の順位が2位であったとする。かかる既定の条件の下では、アバター1およびアバター2に関連付けられるユーザの端末100において、条件判定部113は既定の条件が満足すると判定する。他方、アバター3に関連付けられるユーザの端末100において、条件判定部113は既定の条件が満足しないと判定する。なお、既定の条件(2)においても、宛先端末の区別はなく、判定結果は全ての宛先端末との関係で適用される。すなわち、アバター3に関連付けられるユーザの端末100はいずれの他の端末100にも音声データを送信せず、アバター1およびアバター2に関連付けられるユーザの端末100は全ての他の端末100へ音声データを送信する。
【0058】
図4の例でも、図3の例と同様に既定の地点は仮想マイクロホンの設置ポイントとみなすことができる。ただし、図4の例では、音声データの共有されるアバターの数は限られる。故に、仮想空間に存在するアバターの数の規模の増大に伴って音声データの共有されるアバターの数が増加し、ひいては音声データのトラフィック量が増大する、という事態を防ぐことができる。例えば、仮想空間に存在するアバターの数が5人であろうと500人であろうと、音声データの共有されるアバターの数は2名に制限することができる。なお、既定の条件(2)は既定の条件(1)と組み合わせられてもよい。例えば、仮想空間に存在する第1のアバターを含む複数のアバターは、既定のゾーン内に居る者に限られてもよい。
【0059】
なお、既定の条件(2)について判定をするためには、第1のアバターの位置データに加えて複数のアバターの位置データを取得する必要がある。故に、位置データを伝送し合うことによるトラフィック量の増加は避けられない。しかしながら、位置データのサイズは一般的に音声データに比べて小さいし、位置データは常時送信する必要がない(例えば、変化が検知されたときに限って送信されてもよい)。故に、端末100同士が位置データを送信し合うことによるトラフィック量の増分は限定的である。
【0060】
既定の条件(3)について、図5を用いて説明する。図5において、アバター1とアバター2の距離はd21、アバター1とアバター3との距離はd31で表される。d21<閾値<d31であったとする。かかる既定の条件の下では、アバター1に関連付けられるユーザの端末100において、条件判定部113は、アバター2に関連付けられるユーザの端末100との関係では既定の条件が満足すると判定し、アバター3に関連付けられるユーザの端末100との関係では既定の条件が満足しないと判定する。このように、既定の条件(3)および(4)では、条件判定部113は、宛先端末毎に、既定の条件が満足するか否かを判定する。換言すれば、端末100は、ある端末100へは音声データを送信するが、別の端末100へは音声データを送信しない可能性がある。
【0061】
図5の例は、仮想空間においてアバター同士の会話(音声チャット)を楽しむ場面に適している。すなわち、端末100は、第1のアバターから遠くに居る他のアバターの音声データを受信しないため、第1のアバターに近くに居るアバターの音声が遠くに居るアバターの音声に埋もれにくくなる。すなわち、各ユーザは近くに居るアバターの話し声に集中することができ、同時にシステム全体での音声データのトラフィック量を抑制することができる。音声データの共有が可能なアバターを視覚的にも表現するために、VR/MR/AR画像データにおいて、音声データの共有ができる位置に居るか否かにより他のアバターの視覚的表現を異ならせてもよい。例えば、音声データの共有ができる位置に居ないアバターは通常よりも暗く描かれてもよいし、音声データの共有ができる位置に居るアバターには音声チャットが可能であることを示すアイコンが付加されてもよい。
【0062】
既定の条件(4)について、図6を用いて説明する。図6において、アバター1とアバター2の距離はd21、アバター1とアバター3との距離はd31、アバター1とアバター4との距離はd41で表される。d21<d31<d41であり、既定の順位が2位であったとする。かかる既定の条件の下では、アバター1に関連付けられるユーザの端末100において、条件判定部113は、アバター2およびアバター4に関連付けられるユーザの端末100との関係では既定の条件が満足すると判定し、アバター3に関連付けられるユーザの端末100との関係では既定の条件が満足しないと判定する。
【0063】
図6の例も、図5の例と同様に仮想空間においてアバター同士の会話(音声チャット)を楽しむ場面に適している。ただし、図6の例では、音声データの共有されるアバターの数は限られる。故に、仮想空間に存在するアバターの数の規模の増大に音声データの共有されるアバターの数が増加し、ひいては音声データのトラフィック量が増大する、という事態を防ぐことができる。例えば、仮想空間に存在するアバターの数が5人であろうと500人であろうと、音声データの共有されるアバターの数は2名に制限することができる。なお、既定の条件(4)は既定の条件(3)と組み合わせられてもよい。例えば、あるアバターと第1のアバターとの間の距離が既定の順位以上であっても、閾値を超える場合には当該アバターに関連付けられるユーザの端末100との関係で既定の条件が満足しないと判定されてよい。
【0064】
ところで、条件判定部113による判定を免れるためのオブジェクト、例えば仮想ヘッドセット、仮想ピンマイク、などが定義されてもよい。これらのオブジェクトは、VR/MR/AR画像データ上で視覚的に表現され、ユーザは例えばコントローラ20を操作してアバターにこのオブジェクトを装着させることができる。なお、かかるオブジェクトの視覚的表現は、ヘッドセットまたはピンマイクに似せてもよいし、似せなくてもよい。また、かかるオブジェクトはどのアバターも装着可能としてもよいし、課金に応じるなどの何らかの既定の条件を満足したアバターに限って装着できるようにしてもよい。いずれにせよ、アバターがこのオブジェクトを装着している間は、当該アバターの音声データは当該アバターの位置に関わらず共有され得る。
【0065】
具体的には、条件判定部113は、まず第1のアバターが仮想空間における既定のオブジェクト(これは、上記仮想ヘッドセットまたは仮想ピンマイクに相当する)を装着しているか否かを判定する。ここで、第1のアバターによる既定のオブジェクトの装着/取り外しイベントは、例えばコントローラ20からのユーザ入力データに基づいて検知され得る。条件判定部113は、第1のアバターが既定のオブジェクトを装着していると判定した場合には既定の条件が満足するか否かの判定を省略する。
【0066】
そして、後述される送信制御部114は、条件判定部113によって第1のアバターが既定のオブジェクトを装着していると判定された場合には、全ての宛先端末との関係で既定の条件が満足すると判定された場合と同様に動作する。すなわち、送信制御部114は、第1のアバターの音声データを全ての宛先端末へ向けて送信することを決定する。
【0067】
例えば、仮想空間において開催されるイベントの出演者のアバターがかかるオブジェクトを装着しておけば、当該アバターが仮想空間を広範に動き回ったとしても、各ユーザは当該アバターのトークや歌声を途切れることなく聞くことができる。また、前述の既定の条件(3)または(4)と組み合わせれば、例えば目的のアバターの音声が途切れることなく聞こえ、しかも付近のアバターのユーザと音声のやり取りが可能な、臨場感のある仮想的体験をユーザに提供することができる。
【0068】
同様に、条件判定部113による判定を免れることのできるアバターが定義されてもよい。すなわち、このアバターの音声データは、当該アバターの位置に関わらず共有されてよい。例えば、仮想空間のホストとなるユーザのアバターの音声データが、当該アバターの位置に関わらず共有されてよい。
【0069】
送信制御部114は、前述のプロセッサにより実現され得る。送信制御部114は、条件判定部113から第1のアバターの音声データと、第1のアバターの制御データおよび/または位置データとを、判定結果を示すデータとともに受け取る。送信制御部114は、判定結果に応じて、第1のアバターの少なくとも音声データを宛先端末へ向けて送信するか否かを決定する。送信制御部114は、宛先端末を示すデータ(例えば、アドレスデータ)と、当該宛先端末へ送るデータ(例えば、音声データ、位置データおよび/または制御データ)とを送信部103へ送る。
【0070】
具体的には、送信制御部114は、宛先端末との関係で既定の条件が満足すると判定された場合には、第1のアバターの音声データを当該宛先端末へ向けて送信することを決定する。ここで、前述の種々のメリットを目当てに、送信制御部114は、ピア・ツー・ピア型のネットワーク経由で音声データを宛先端末へ向けて送信することを決定してもよい。他方、送信制御部114は、宛先端末との関係で既定の条件が満足しないと判定された場合には、第1のアバターの音声データを当該宛先端末へ向けて送信しないことを決定する。
【0071】
なお、制御データおよび位置データのサイズは、一般的に音声データに比べて小さい。さらに、制御データおよび位置データのどちらも宛先端末へ向けて送信しなかったとすると、当該宛先端末に接続されたHMD10に表示される第1のアバターは静止したままとなり、当該宛先端末のユーザの仮想的体験を損ねかねない。そこで、制御データおよび/または位置データは判定結果に関わらず全ての宛先端末へ向けて送信されてよい。
【0072】
すなわち、送信制御部114は、宛先端末との関係で既定の条件が満足すると判定された場合には、第1のアバターの音声データと、第1のアバターの制御データおよび/または位置データとを当該宛先端末へ向けて送信することを決定する。他方、送信制御部114は、宛先端末との関係で既定の条件が満足しないと判定された場合には、第1のアバターの音声データを当該宛先端末へ向けて送信せず第1のアバターの制御データおよび/または位置データを当該宛先端末へ向けて送信することを決定する。
【0073】
画像生成部115は、前述のプロセッサにより実現され得る。画像生成部115は、例えば端末100のメモリまたは補助記憶装置に保存されているオブジェクト(アバターを含む)の画像データと、データ取得部111からの他アバターの制御データとに基づいて、VR/AR/MR画像データの生成(更新)を行う。VR/AR/MR画像データの生成には、制御データに対応する他アバターの姿勢の制御が含まれ得る。画像生成部115は、生成した画像データを出力部104経由でHMD10へ送る。
【0074】
画像生成部115は、前述のように、制御データの示すHMD10/コントローラ20の位置に応じて他アバターの頭部/手の位置を決定し、例えばIK(Inverse Kinematics)技術を利用してアバターの姿勢を制御してもよい。
【0075】
音声生成部116は、前述のプロセッサにより実現され得る。音声生成部116は、例えばデータ取得部111からの他アバターの音声データに基づいて、VR/AR/MR音声データの生成を行う。例えば、音声生成部116は、複数の他アバターの音声データを合成することで、音声データを生成してもよい。音声生成部116は、生成した音声データを出力部104経由でスピーカへ送る。
【0076】
なお、音声生成部116は、データ取得部111から他アバターの位置データをさらに取得してもよい。そして、音声生成部116は、音像定位技術を利用して、他アバターの位置から音声が生じているとユーザに知覚されるように、当該他アバターの音声データを加工してもよい。これにより、視覚的に知覚されるアバターの位置と聴覚的に知覚されるアバターの位置とをマッチさせて、臨場感を演出することが可能となる。
【0077】
以下、図7を用いて、端末100の動作を説明する。図7の動作は、定期的に行われてもよいし、第1のアバターまたは他アバターの位置データに変化があったことが検知されたタイミングで行われてもよい。
【0078】
まず、データ取得部111は、第1のアバターの音声データおよび位置データを取得する(ステップS201)。次のステップS202において判定される既定の条件次第で、データ取得部111は、他アバターの位置データをさらに取得し得る。さらに、ステップS202へ進む前に、距離算出部112がステップS201において取得された位置データに基づいて、仮想空間における2地点間の距離を算出してもよい。
【0079】
次に、条件判定部113は第1のアバターの位置に関する既定の条件が満足するか否かを判定する(ステップS202)。少なくとも1つの宛先端末との関係で既定の条件が満足すると判定された場合には、処理はステップS203へ進む。他方、全ての宛先端末との関係で既定の条件が満足しないと判定された場合には、図7の動作は終了する。なお、ステップS202の判定結果に関わらず、送信制御部114は、第1のアバターの制御データおよび/または位置データを各宛先端末へ向けて送信すると決定してもよい。
【0080】
ステップS203において、送信制御部114は、既定の条件が満足すると判定された宛先端末へ向けて、ステップS201において取得された音声データを送信することを決定し、図7の動作は終了する。
【0081】
以上説明したように、実施形態に係る端末は、当該端末のユーザに関連付けられる第1のアバターの仮想空間における位置が既定の条件を満足するか否かを判定し、当該既定の条件が満足しないと判定された場合に第1のアバターの音声データを宛先端末へ向けて送信しない。故に、この端末によれば、既定の条件が満足しないと判定された場合には、当該端末から宛先端末への音声データのトラフィックが生じない。他方、この端末は、限られたアバターの音声データに限って受信することになるので、例えば、仮想マイクロホンまたは第1のアバターの近くに居るアバターの音声が他のアバターの音声に埋もれにくくなる。従って、この端末によれば、ユーザは目的のアバターのトークや音声、または近くに居るアバターの話し声に集中することができ、同時にシステム全体での音声データのトラフィック量を抑制することができる。
【0082】
(変形例1)
前述のように、図2のシステムではP2P型のネットワークが採用されているが、これに追加してC/S型のネットワークを採用したとしても、仮想的体験共有システムを構築することは可能である。この変形例1において、各端末100は、P2P型のネットワークおよびC/S型のネットワークのどちらかを選択して、データを宛先端末へ向けて送信する。
【0083】
この変形例1によれば、図8に例示されるように、図2の仮想的体験共有システムにサーバ300を追加することが可能である。サーバ300は、送信元となる端末100からデータを受信し、これを宛先となる端末100へ送信する。
【0084】
この変形例1において、端末100における送信制御部114は、宛先端末との関係で既定の条件が満足すると判定された場合には、P2P型のネットワーク経由で第1のアバターの音声データを当該宛先端末へ向けて送信することを決定する。他方、送信制御部114は、宛先端末との関係で既定の条件が満足しないと判定された場合には、C/S型のネットワーク経由で第1のアバターの音声データを当該宛先端末へ向けて送信することを決定してもよい。なお、第1のアバターの制御データおよび/または位置データは、第1のアバターの音声データと同じネットワーク経由で送信されてよい。
【0085】
このように送信制御部114がP2P型のネットワークまたはC/S型のネットワークを選択して第1のアバターの音声データを送信すれば、当該音声データに関してP2P型のネットワークの種々のメリット(例えば遅延低減)を享受することはできないものの、全てのユーザが全てのアバターの音声データを共有することが可能となる。すなわち、ユーザは、より多くのアバターの音声を同時に聞くことができるので、賑やかさ、盛り上がり、一体感などを感じやすくなる。
【0086】
以下、図9を用いて、変形例1に係る端末100の動作を説明する。図9の動作は、定期的に行われてもよいし、第1のアバターまたは他アバターの位置データに変化があったことが検知されたタイミングで行われてもよい。
【0087】
まず、データ取得部111は、第1のアバターの音声データおよび位置データを取得する(ステップS401)。次のステップS402において判定される既定の条件次第で、データ取得部111は、他アバターの位置データをさらに取得し得る。さらに、ステップS402へ進む前に、距離算出部112がステップS401において取得された位置データに基づいて、仮想空間における2地点間の距離を算出してもよい。
【0088】
次に、条件判定部113は第1のアバターの位置に関する既定の条件が満足するか否かを判定する(ステップS402)。既定の条件が満足すると判定された場合には、処理はステップS403へ進む。他方、既定の条件が満足しないと判定された場合には、処理はステップS404へ進む。なお、前述の既定の条件(3)または(4)のように、宛先端末間で判定結果が異なり得る場合には、宛先端末毎にステップS402と、ステップS403またはステップS404とを繰り返せばよい。
【0089】
ステップS403において、送信制御部114は、既定の条件が満足すると判定された宛先端末へ向けて、P2P型のネットワーク経由で、ステップS401において取得された音声データを送信することを決定し、図9の動作は終了する。
【0090】
ステップS404において、送信制御部114は、既定の条件が満足しないと判定された宛先端末へ向けて、C/S型のネットワーク経由で、ステップS401において取得された音声データを送信することを決定し、図9の動作は終了する。
【0091】
(変形例2)
前述のように、図2のシステムではP2P型のネットワークが採用されているが、これに代えてC/S型のネットワークを採用したとしても、仮想的体験共有システムを構築することは可能である。さらに、この変形例2に係るサーバ500は、送信元端末から宛先端末へのデータの中継に留まらず、第1の実施形態において説明した端末100の機能の一部をも担う。
【0092】
具体的には、この変形例2において、端末は、前述の既定の条件判定および送信制御を行う必要はない。すなわち、端末は、アバターの音声データ、制御データおよび位置データをサーバ500へ送信する。なお、後述するように、アバターの位置データ/制御データは、端末から受信したデータに基づいてサーバ500において生成されてもよい。
【0093】
以下、サーバ500のハードウェア構成について説明する。サーバ500は、コンピュータであって、例えば、通信制御(特に、音声データの送信制御)、既定の条件判定、などを行うプロセッサを含む。
【0094】
また、サーバ500は、かかる処理を実現するためにプロセッサによって実行されるプログラムおよび当該プロセッサによって使用されるデータを一時的に格納するメモリを含んでいる。
【0095】
なお、サーバ500は、全てのデータをオンメモリの状態で扱ってもよいし、一部のデータが補助記憶装置に退避されていてもよい。補助記憶装置は、例えば、サーバ500に内蔵または外付けされたHDD、SSD、フラッシュメモリなどであってもよいし、サーバ500からアクセス可能なデータベースサーバであってもよい。
【0096】
サーバ500は、さらに、ネットワークに接続するための通信I/Fを利用可能である。通信I/Fは、サーバ500に内蔵されてもよいし、サーバ500に外付けされてもよい。通信I/Fは、端末などと通信をするためのモジュールであって、送受信のための信号処理回路、アンテナ、LAN端子などを含み得る。
【0097】
サーバ500は、さらに、各要素、例えば、プロセッサ、メモリ、補助記憶装置、通信I/F、などの間でデータを転送するためのバスを含み得る。
【0098】
図10には、サーバ500の機能構成が例示される。サーバ500は、受信部501と、送信部502と、データ取得部511と、距離算出部512と、条件判定部513と、送信制御部514とを含む。ただし、距離算出部512、条件判定部513および送信制御部514は、図1における同名の要素と同一または類似であってよく、それぞれ前述のプロセッサにより実現され得る。
【0099】
受信部501は、前述の通信I/Fにより実現され得る。受信部501は、ネットワーク経由で、送信元端末から、当該送信元端末のユーザに関連付けられるアバター(これは、第1の実施形態において説明した第1のアバターに相当する)の音声データ、位置データおよび制御データを受信し得る。受信部501は、受信したデータをデータ取得部511へ送る。
【0100】
送信部502は、前述の通信I/Fにより実現され得る。送信部502は、送信制御部514によって制御され、アバターの音声データ、位置データおよび/または制御データを宛先端末へ向けて送信する。
【0101】
データ取得部511は、前述のプロセッサにより実現され得る。データ取得部511は、受信部501から種々のデータを取得する。データ取得部511は、取得したデータを、距離算出部512および条件判定部513へ送る。
【0102】
具体的には、データ取得部511は、アバターの音声データ、位置データおよび制御データを取得し、位置データを距離算出部512および条件判定部513へ送り、音声データおよび制御データを条件判定部513へ送り得る。
【0103】
なお、端末が位置データ/制御データを送信する場合には、データ取得部511は受信部501から位置データ/制御データを直接取得することができる。他方、サーバ500(の図示されない位置/姿勢推定部)が位置センサシステムの出力データに基づいてHMD10/コントローラ20の位置を推定して位置データ/制御データを生成する必要がある場合には、データ取得部511はこの位置/姿勢推定部へ位置センサシステムの出力データを送り、位置データ/制御データの生成を依頼してもよい。
【0104】
以上説明したように、変形例2に係るサーバは、第1の実施形態に係る端末と同様に、音声データの送信元端末のユーザに関連付けられる第1のアバターの仮想空間における位置が既定の条件を満足するか否かを判定し、当該既定の条件が満足しないと判定された場合に第1のアバターの音声データを宛先端末へ向けて送信しない。故に、このサーバによれば、第1の実施形態に係る端末と同様に、ユーザは目的のアバターのトークや音声、または近くに居るアバターの話し声に集中することができ、同時にシステム全体での音声データのトラフィック量を抑制することができる。なお、本変形例に係るサーバと第1の実施形態および変形例1に係る端末とを、「データ送信装置」と総称することも可能である。
【0105】
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
【0106】
上述の実施形態では、いくつかの機能部を説明したが、これらは各機能部の実装の一例に過ぎない。例えば、1つの装置に実装されると説明された複数の機能部が複数の別々の装置に亘って実装されることもあり得るし、逆に複数の別々の装置に亘って実装されると説明された機能部が1つの装置に実装されることもあり得る。
【0107】
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
【0108】
上記各実施形態の処理の少なくとも一部は、例えば汎用のコンピュータに搭載されたプロセッサを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク(CD−ROM、CD−R、DVD等)、光磁気ディスク(MO等)、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ(サーバ)上に格納し、ネットワーク経由でコンピュータ(クライアント)にダウンロードさせてもよい。
【符号の説明】
【0109】
10・・・HMD
20・・・コントローラ
100・・・端末
101・・・入力部
102,501・・・受信部
103,502・・・送信部
104・・・出力部
111,511・・・データ取得部
112,512・・・距離算出部
113,513・・・条件判定部
114,514・・・送信制御部
115・・・画像生成部
116・・・音声生成部
300,500・・・サーバ
【要約】      (修正有)
【課題】複数のユーザ間で仮想的体験を共有する場合に、音声データのトラフィック量を抑制し、またはユーザの仮想的体験の毀損を防止する。
【解決手段】データ送信装置100は、データ取得部と、条件判定部と、送信制御部とを含む。データ取得部は、第1のアバターの仮想空間における第1の位置を示す第1の位置データと、第1のアバターの音声データとを取得する。条件判定部は、第1の位置に関する既定の条件が満足するか否かを判定する。送信制御部は、既定の条件が満足すると判定された場合に音声データを宛先端末へ向けて送信することを決定し、既定の条件が満足しないと判定された場合に音声データを宛先端末へ向けて送信しないことを決定する。
【選択図】図1
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10