(57)【要約】【課題】アバター画像によるユーザの仮想的体験の劣化を防止する【解決手段】本発明の一態様に係るデータ差し替え装置は、取得部と、判定部と、差し替え部とを含む。取得部は、ユーザの頭部に装着可能な第１のデバイスの位置と、ユーザが把持可能な第２のデバイスの位置とに基づく値を持つ第１の制御データを取得する。判定部は、既定の条件が満足するか否かを判定する。差し替え部は、条件が満足すると判定された場合に、第１の制御データを第２の制御データに差し替える。第２の制御データは、第１のデバイスおよび第２のデバイスの少なくとも一方の位置に基づかない値を持つ。【選択図】      図１
2019220147.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの頭部に装着可能な第１のデバイスの位置と、前記ユーザが把持可能な第２のデバイスの位置とに基づく値を持つ第１の制御データを取得する取得部と、
既定の条件が満足するか否かを判定する判定部と、
前記条件が満足すると判定された場合に、前記第１の制御データを第２の制御データに差し替える差し替え部と
を具備し、
前記第２の制御データは、前記第１のデバイスおよび前記第２のデバイスの少なくとも一方の位置に基づかない値を持つ、
データ差し替え装置。
【請求項２】
前記判定部は、前記第１のデバイスが前記ユーザの頭部に装着されているか否かを判定し、
前記差し替え部は、前記第１のデバイスが前記ユーザの頭部に装着されていないと判定された場合に、前記第１の制御データを前記第１のデバイスの高さに基づかない値を持つ第２の制御データに差し替える、
請求項１に記載のデータ差し替え装置。
【請求項３】
前記判定部は、前記第１の制御データが前記第１のデバイスの高さが既定の高さ未満であることを示す値を持つか否かを判定し、
前記差し替え部は、前記第１の制御データが前記第１のデバイスの高さが前記既定の高さ未満であることを示す値を持つと判定された場合に、前記第１の制御データを前記第１のデバイスの高さに基づかない値を持つ第２の制御データに差し替える、
請求項１に記載のデータ差し替え装置。
【請求項４】
前記第２の制御データは、前記第１のデバイスの高さが前記既定の高さ以上であることを示す値を持つ、請求項２に記載のデータ差し替え装置。
【請求項５】
前記判定部は、前記第１の制御データが前記第１のデバイスの高さが既定の第１の高さ以上または既定の第２の高さ未満であることを示す値を持つか否かを判定し、
前記差し替え部は、前記第１の制御データが前記第１のデバイスの高さが前記第１の高さ以上または前記第２の高さ未満であることを示す値を持つと判定された場合に、前記第１の制御データを前記第１のデバイスの高さに基づかない値を持つ第２の制御データに差し替え、
前記第２の高さは、前記第１の高さよりも低い、
請求項１に記載のデータ差し替え装置。
【請求項６】
前記判定部は、前記第１の制御データが、前記第１のデバイスの高さが既定の第１の高さ以上または既定の第２の高さ未満であることを示し、かつ、前記第２のデバイスが静止していることを示す値を持つか否かを判定し、
前記差し替え部は、前記第１の制御データが、前記第１のデバイスの高さが前記第１の高さ以上または前記第２の高さ未満であることを示し、かつ、前記第２のデバイスが静止していることを示す値を持つと判定された場合に、前記第１の制御データを前記第１のデバイスの高さに基づかない値を持つ第２の制御データに差し替え、
前記第２の高さは、前記第１の高さよりも低い、
請求項１に記載のデータ差し替え装置。
【請求項７】
前記判定部は、前記第１の制御データが、前記第１のデバイスの高さが前記第１の高さ以上または前記第２の高さ未満であることを示し、かつ、前記第２のデバイスが静止していることを示す値を持つと判定した後、さらに、前記第１の制御データが、前記第１のデバイスの高さが前記第１の高さ未満かつ前記第２の高さ以上であることを示し、かつ、前記第２のデバイスが静止していないことを示す値を持つか否かを判定し、
前記差し替え部は、前記第１の制御データが、前記第１のデバイスの高さが前記第１の高さ以上または前記第２の高さ未満であることを示し、かつ、前記第２のデバイスが静止していることを示す値を持つと判定されてから、前記第１の制御データが、前記第１のデバイスの高さが前記第１の高さ未満かつ前記第２の高さ以上であることを示し、かつ、前記第２のデバイスが静止していないことを示す値を持つと判定されるまで、前記第１の制御データを前記第２の制御データに差し替え続ける、
請求項６に記載のデータ差し替え装置。
【請求項８】
前記第２の制御データは、前記第１のデバイスの高さが前記第１の高さ未満かつ前記第２の高さ以上であることを示す値を持つ、請求項５乃至請求項７のいずれか１項に記載のデータ差し替え装置。
【請求項９】
前記第１の高さは、前記ユーザの頭部の高さ以上である、請求項５乃至請求項８のいずれか１項に記載のデータ差し替え装置。
【請求項１０】
前記判定部は、前記第１の制御データが、前記第１のデバイスと前記第２のデバイスとの間の距離が既定の距離以上であることを示す値を持つか否かを判定し、
前記差し替え部は、前記第１の制御データが前記第１のデバイスと前記第２のデバイスとの間の距離が既定の距離以上であることを示す値を持つと判定された場合に、前記第１の制御データを前記第１のデバイスおよび前記第２のデバイスの少なくとも一方の位置に基づかない値を持つ第２の制御データに差し替える、
請求項１に記載のデータ差し替え装置。
【請求項１１】
前記第２の制御データは、前記第１の制御データが前記第１のデバイスが静止していることを示す値を持つ場合には前記第１のデバイスの位置に基づかない値を持ち、当該第１の制御データが前記第２のデバイスが静止していることを示す値を持つ場合には前記第２のデバイスの位置に基づかない値を持つ、請求項１０に記載のデータ差し替え装置。
【請求項１２】
前記第２の制御データは、前記第１のデバイスと前記第２のデバイスとの間の距離が前記既定の距離未満であることを示す値を持つ、請求項１０または請求項１１に記載のデータ差し替え装置。
【請求項１３】
請求項１乃至請求項１２のいずれか１項に記載のデータ差し替え装置と、
前記第１の制御データが前記第２の制御データによって差し替えられている場合に前記第２の制御データに基づいて前記ユーザのアバター画像を生成する画像生成部と
を具備する、端末。
【請求項１４】
コンピュータを、
ユーザの頭部に装着可能な第１のデバイスの位置と、前記ユーザが把持可能な第２のデバイスの位置とに基づく値を持つ第１の制御データを取得する手段、
既定の条件が満足するか否かを判定する手段、
前記条件が満足すると判定された場合に、前記第１の制御データを第２の制御データに差し替える手段
として機能させ、
前記第２の制御データは、前記第１のデバイスおよび前記第２のデバイスの少なくとも一方の位置に基づかない値を持つ、
データ差し替えプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）、ＡＲ（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）、またはＭＲ（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）技術に関する。
【背景技術】
【０００２】
従来、ＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ）を装着した複数のユーザ間でネットワークを介して仮想体験、すなわちＶＲ体験を共有することが知られている。具体的には、ユーザの姿勢（例えば、視線、頭の向き、など）に応じて、仮想空間における当該ユーザの分身であるアバターの姿勢を制御することが知られている。
【０００３】
特許文献１は、第１ユーザがＨＭＤを取り外した場合、第２ユーザは、第１ユーザがＨＭＤを装着していないことを把握していないため、第１アバター（第１ユーザ）が反応しないことに対して違和感を抱く（［０００４］）、といった問題を改善し、ユーザにリッチな仮想体験を提供することを目的としている（［０００５］）。具体的には、特許文献１には、ＨＭＤ１１０の傾き情報に基づいて、ユーザＡがＨＭＤ１１０を取り外したかどうかを判定し［００９５］、ユーザＡがＨＭＤ１１０を取り外したと判定した場合に非装着情報を生成し［０１００］、ユーザ端末１Ｂは、非装着情報を受信した後に、アバター４Ａの顔の表情をデフォルトの顔の表情に設定する［０１０１］こと、が記載されている。また、ユーザＡが再びＨＭＤ１１０を装着したかどうかを判定し［０１１３］、装着された場合にはアバター４Ａの顔の表情を更新すること［０１１５］も記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６２１２６６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザの姿勢に応じて仮想空間における当該ユーザのアバターの姿勢を制御する場合に、アバターがユーザの意図しない姿勢、例えば不自然な姿勢を取るおそれがある。特に、ＨＭＤが一人称視点の仮想空間画像を表示する場合には、ユーザは自己のアバターの姿を直接的に見ることができないので、異変を察知して修正を試みることが困難である。
【０００６】
ユーザのアバターが不自然な姿勢を取っていると、当該ユーザ自身がその事実に気づいた時に恥ずかしい思いや不快感を抱いたりするだけでなく、他のユーザもアバターを含む仮想空間の完成度が低いなどとして興醒めさせてしまう可能性がある。これは、ＶＲ体験のみならず、ＡＲまたはＭＲといった仮想的な要素を含む体験（以降、仮想的体験と称する）全般において生じ得る。
【０００７】
本発明は、アバター画像によるユーザの仮想的体験の劣化を防止することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係るデータ差し替え装置は、取得部と、判定部と、差し替え部とを含む。取得部は、ユーザの頭部に装着可能な第１のデバイスの位置と、ユーザが把持可能な第２のデバイスの位置とに基づく値を持つ第１の制御データを取得する。判定部は、既定の条件が満足するか否かを判定する。差し替え部は、条件が満足すると判定された場合に、第１の制御データを第２の制御データに差し替える。第２の制御データは、第１のデバイスおよび第２のデバイスの少なくとも一方の位置に基づかない値を持つ。
【発明の効果】
【０００９】
本発明によれば、アバター画像によるユーザの仮想的体験の劣化を防止することを目的とする。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係るデータ差し替え装置を例示するブロック図。
【図２】実施形態に係るデータ差し替え装置を組み込んだ端末を含む仮想的体験共有システムを例示するブロック図。
【図３】実施形態に係るデータ差し替え装置を組み込んだ端末の一例を示すブロック図。
【図４】ＨＭＤ、コントローラおよびユーザの様子の一例を示す図。
【図５】図４のＨＭＤおよびコントローラの位置に基づく第１の制御データを用いて生成されるユーザのアバター画像を例示する図。
【図６】ＨＭＤ、コントローラおよびユーザの様子の別の例を示す図。
【図７】図６のＨＭＤおよびコントローラの位置に基づく第１の制御データを差し替えた第２の制御データを用いて生成されるユーザのアバター画像を例示する図。
【図８】ＨＭＤ、コントローラおよびユーザの様子の別の例を示す図。
【図９】図３の端末の動作を例示するフローチャート。
【図１０】図３の変形例を示すブロック図。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。例えば、複数の同一または類似の要素が存在する場合に、各要素を区別せずに説明するために共通の符号を用いることがあるし、各要素を区別して説明するために当該共通の符号に加えて枝番号を用いることもある。
【００１２】
（実施形態）  
実施形態に係るデータ差し替え装置は、仮想的体験共有システムを構成する端末に組み込むことができる。かかるシステムは、図２に例示される。このシステムでは、端末２００は互いに、例えばインターネットなどのネットワーク経由で接続されており、データを送受信できる。
【００１３】
なお、図２のシステムでは、データ伝送に伴う遅延を低減してリアルタイム性の高い仮想的体験を共有することなどを目的に、端末２００同士がサーバを介してデータを送受信するＣ／Ｓ（Ｃｌｉｅｎｔ  ／  Ｓｅｒｖｅｒ）型のネットワークではなく、端末２００同士がデータを直接送受信するＰ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）型のネットワークが採用されている。しかしながら、Ｃ／Ｓ型のネットワークを採用したとしても、本実施形態に係るデータ差し替え装置を組み込んだ端末２００を用いて仮想的体験共有システムを構築することは可能である。
【００１４】
端末２００は、ユーザの頭部に装着可能なＨＭＤ（第１のデバイス）１０に表示されるＶＲ／ＡＲ／ＭＲ画像を制御するように構成されたコンピュータであり、当該ＨＭＤ１０とユーザが把持可能なコントローラ（第２のデバイス）２０とにそれぞれ接続されている。なお、コントローラ２０は、ユーザ毎に、２つ（両手用）用意されてもよいし、１つ（片手用）用意されてもよい。また、コントローラ２０は、手以外の部位に装着されてもよい。さらに、図２には示されていないものの、ＨＭＤ１０および／またはコントローラ２０の位置を検出するための位置センサシステムに含まれる要素の１つであるベースステーションがさらに端末２００に接続されてもよい。
【００１５】
端末２００は、ＨＭＤ１０、コントローラ２０、および／またはベースステーションと、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ケーブル、ＨＤＭＩ（登録商標）（Ｈｉｇｈ―Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）ケーブル、などの有線通信手段により接続されてもよいし、例えばＢｌｕｔｏｏｔｈ、ＷｉｒｅｌｅｓｓＨＤ、ＷＨＤＩ（Ｗｉｒｅｌｅｓｓ  Ｈｏｍｅ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）、などの無線通信手段により接続されてもよい。
【００１６】
端末２００は、後述されるようにＨＭＤ１０の位置およびコントローラ２０の位置に基づく値を持つ第１の制御データを取得し、当該第１の制御データを条件付きで第２の制御データに差し替える。後述するように、第２の制御データは、ＨＭＤ１０およびコントローラ２０の少なくとも一方の位置に基づかない値を持つ。そして、端末２００は、差し替えを行った場合には第２の制御データを他の端末２００へ送信し、そうでない場合には第１の制御データを他の端末２００へ送信する。
【００１７】
第１の制御データまたは第２の制御データを受信した他の端末２００は、受信した制御データに基づいてユーザのアバター画像を生成する。すなわち、ユーザは、ＨＭＤ１０を装着した頭やコントローラ２０を把持した手を動かすことで自らの分身であるアバターに自由な姿勢を取らせることができる。
【００１８】
さらに、端末２００は、後述されるマイクロホンによって生成された音声データを他の端末２００へ送信してもよい。他の端末２００は、この音声データを再生して出力する。これにより、ユーザ間の音声チャット、またはライブなどの臨場感のあるイベントをＶＲ／ＡＲ／ＭＲ空間において実現することが可能となる。
【００１９】
具体的には、他の端末２００は、受信した制御データの示すＨＭＤ１０の位置に応じてアバター画像の頭部の位置を決定し、当該制御データの示すコントローラ２０の位置に応じてアバター画像の手の位置を決定する。例えばユーザがＨＭＤ１０を頭部に装着し、かつ（右手用）コントローラ２１および（左手用）コントローラ２２（これらはいずれも前述のコントローラ２０と同様であり得る）を両手に把持した状態で、図４に例示される姿勢を取ったとする。この場合に、ユーザのアバターは、図５に例示される姿勢を取ることになる。アバターの姿勢の制御には、例えばＩＫ（Ｉｎｖｅｒｓｅ  Ｋｉｎｅｍａｔｉｃｓ）技術を利用することができる。
【００２０】
ＨＭＤ１０は、アバター画像を含むＶＲ／ＡＲ／ＭＲ画像を表示するための表示装置に加え、種々のセンサ、スピーカ、マイクロホン、などを含み得る。種々のセンサは、動きセンサ、装着センサ、または位置センサシステムに含まれる要素の一部（後述されるマーカーまたはカメラ）を含み得る。ＨＭＤ１０は、端末２００から画像データおよび音声データを受け取って、これらを出力したり、各種センサのセンサデータを端末２００へ送信したりする。
【００２１】
表示装置は、透過型ディスプレイであってもよいし、非透過型ディスプレイであってもよい。例えば、ＨＭＤ１０を装着したユーザの視界の少なくとも一部を覆うように表示装置のサイズおよび配置が定められる。表示装置は、左目用表示装置と右目用表示装置とで構成されてもよいし、両者が一体化されていてもよい。
【００２２】
動きセンサは、例えば、加速度センサ、ジャイロスコープ、磁気センサ、などであり得る。動きセンサによって検出されたセンサデータは、ユーザの頭部の姿勢（例えば傾き）の推定に利用することができる。具体的には、このセンサデータに基づいて、ユーザの頭部の３次元的な回転角であるＹａｗ角、Ｒｏｌｌ角、およびＰｉｔｃｈ角が推定され、これに応じてユーザの視界を決定する仮想カメラの視軸およびアバターの頭部の姿勢が制御され得る。
【００２３】
装着センサは、ユーザがＨＭＤ１０を装着／取り外したことを示すセンサデータ（イベントデータ）を発生する。装着センサの仕組みは任意であるが、例えば、ＨＭＤ１０に設けられたバネの弾性力の変化、ＨＭＤ１０の装着時にユーザの鼻などの身体の一部に接触するパッド間を流れる電流の変化、などに応じてイベントデータを発生することが可能である。
【００２４】
スピーカは、端末２００から音声データを受け取り、これに基づいて音声を出力する。スピーカは、典型的にはヘッドホン型であるが、これ以外のスピーカシステムとして構成されてもよい。また、スピーカは、ＨＭＤ１０とは別体であってもよい。マイクロホンは、音声（主にユーザの発話）を収集する。マイクロホンは、収集した音声に基づいて音声データを生成し、端末２００へ送る。
【００２５】
コントローラ２０は、ユーザ入力を受け付けるボタンに加え、例えば、ＨＭＤ１０と同様の動きセンサ、位置センサシステムに含まれる要素の一部、などを含み得る。さらに、コントローラ２０は、ユーザがコントローラ２０を把持／手放したことを示すセンサデータ（イベントデータ）を発生する把持センサを含んでもよい。把持センサの仕組みは任意であるが、例えば、ユーザの把持力によりコントローラ２０に加わる圧力の変化、コントローラ２０の表面に設けられたセンサ電極と人体との間の静電容量の変化、などに応じてイベントデータを発生することが可能である。コントローラ２０は、ユーザ入力データ、各種センサのセンサデータ、などを端末２００へ送信したりする。
【００２６】
位置センサシステムは、例えばカメラ（ポジション・トラッキング・カメラ）とマーカー（トラッカーとも呼ばれる）との組み合わせにより実現される。マーカーは、赤外光または可視光のエミッタ（例えばＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ））であってもよいし、カメラの撮影時にエミッタから発せられる赤外光または可視光を反射するための反射材であってもよい。カメラは、マーカーが赤外光を照射または反射する場合には赤外線センサであり得るし、マーカーが可視光を照射または反射する場合には可視光カメラであり得る。
【００２７】
典型的には、ＨＭＤ１０／コントローラ２０に複数のマーカーが取り付けられ、カメラがＨＭＤ１０／コントローラ２０から離れた位置に設置された装置（ベースステーション）に取り付けられる。カメラの撮影画像に基づいて、ＨＭＤ１０／コントローラ２０の位置を推定することができる。具体的には、ベースステーションは、撮影画像に基づいて検知点の位置、傾き、発光強度などを検出することができる。ベースステーションは、かかる検知点のデータに基づいてＨＭＤ１０／コントローラ２０の位置（座標）データを計算してもよいし、かかる計算は端末２００に委ねられてもよい。なお、変形例として、カメラをＨＭＤ１０／コントローラ２０側に設け、マーカーをベースステーション側に設けることも可能である。また、ＨＭＤ１０およびコントローラ２０に取り付けられるマーカーに加えて、ユーザの関節、抹消部などにさらなるマーカーが取り付けられてもよい。これにより、ユーザの姿勢をより正確に推定することが可能となる。
【００２８】
以下、端末２００のハードウェア構成について説明する。端末２００は、ＨＭＤ１０の制御装置となり得る種々の電子デバイス、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、モバイル端末（例えば、タブレット、ファブレット、スマートフォン、ラップトップ、フィーチャーフォン、ウェアラブルデバイス、ポータブルゲーム機、など）、据え置き型ゲーム機、などであり得るが、これらに限られない。
【００２９】
なお、端末２００は、ＨＭＤ１０または他のデバイス（コントローラ２０、ベースステーション、など）と必ずしも別体でなくてもよい。例えば、端末２００がＨＭＤ１０またはベースステーションに内蔵されていてもよいし、端末２００をコントローラ２０として扱うこともあり得る。
【００３０】
端末２００は、実施形態に係るデータ差し替え装置としての処理、入出力制御、通信制御、画像／音声処理、などを行うプロセッサを含む。ここで、プロセッサは、典型的にはＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）および／またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であるが、マイコン、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、またはその他の汎用または専用のプロセッサなどであってもよい。
【００３１】
また、端末２００は、かかる処理を実現するためにプロセッサによって実行されるプログラムおよび当該プロセッサによって使用されるデータ、例えば、アバター、背景、などのＶＲ／ＡＲ／ＭＲ体験を演出するための各種オブジェクトの基となる画像データを一時的に格納するメモリを含んでいる。メモリは、かかるプログラム／データが展開されるワークエリアを有するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含み得る。
【００３２】
なお、端末２００は、全てのデータをオンメモリの状態で扱ってもよいし、一部のデータが補助記憶装置に退避されていてもよい。補助記憶装置は、例えば、端末２００に内蔵または外付けされたＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、フラッシュメモリなどであってもよいし、端末２００からアクセス可能なデータベースサーバであってもよい。
【００３３】
端末２００は、さらに、ネットワークに接続するための通信Ｉ／Ｆ（インタフェース）を利用可能である。通信Ｉ／Ｆは、端末２００に内蔵されてもよいし、端末２００に外付けされてもよい。通信Ｉ／Ｆは、他の端末２００、および／または、外部装置、例えば、ＨＭＤ１０、コントローラ２０、ベースステーション、などと通信をするためのモジュールであって、送受信のための信号処理回路、アンテナ、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）端子などを含み得る。通信Ｉ／Ｆは、例えば移動通信などの広域通信用のモジュール、無線／有線ＬＡＮ用のモジュール、Ｂｌｕｅｔｏｏｔｈ（登録商標）用のモジュール、などであり得る。
【００３４】
端末２００は、さらに、外部装置、例えば、ＨＭＤ１０、コントローラ２０、ベースステーション、などにケーブル接続するための入出力Ｉ／Ｆを利用可能である。入出力Ｉ／Ｆは、ＵＳＢ端子、ＤＶＩ（Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）端子、ＨＤＭＩ端子、またはその他のデータ転送用ケーブルのための端子、などである。
【００３５】
端末２００は、さらに、各要素、例えば、プロセッサ、メモリ、補助記憶装置、通信Ｉ／Ｆ、入出力Ｉ／Ｆなどの間でデータを転送するためのバスを含み得る。
【００３６】
続いて、実施形態に係るデータ差し替え装置を説明する。図１には、実施形態に係るデータ差し替え装置１００の機能構成が例示される。データ差し替え装置１００は、データ取得部１０１と、状態判定部１０２と、データ差し替え部１０３とを含む。
【００３７】
データ取得部１０１は、例えば前述の通信Ｉ／Ｆ、入出力Ｉ／Ｆ、またはプロセッサにより実現され得る。データ取得部１０１は、第１の制御データを取得し、これを状態判定部１０２へ送る。ここで、第１の制御データは、ＨＭＤ１０の位置とコントローラ２０の位置とに基づく値を持つ。前述のように、ＨＭＤ１０／コントローラ２０の位置は、位置センサシステムを用いて推定することができる。
【００３８】
外部装置、例えば、ＨＭＤ１０、コントローラ２０および／またはベースステーションがＨＭＤ１０／コントローラ２０の位置を推定して第１の制御データを生成する場合には、データ取得部１０１はこの外部装置から第１の制御データを取得すればよい。他方、端末２００（の図示されない位置推定部）が位置センサシステムの出力データ（例えば、検知点の位置、傾き、発光強度などを示すデータ）に基づいてＨＭＤ１０／コントローラ２０の位置を推定して第１の制御データを生成する場合には、データ取得部１０１は端末２００のメモリまたは補助記憶装置から第１の制御データを取得すればよい。
【００３９】
上記説明では、データ差し替え装置１００が第１の制御データを他の端末２００へ送信する前に条件付きで差し替えを行うことが前提とされている。しかしながら、後述の変形例１において説明するように、端末２００は自らの第１の制御データを差し替えずに他の端末２００へ送信し、当該他の端末２００に組み込まれたデータ差し替え装置１００が受信した第１の制御データに対して条件付きで差し替えを行うようにすることも可能である。後者の構成を前提とすると、データ取得部１０１は、ネットワーク経由で受信された第１の制御データを取得することになる。
【００４０】
なお、ＨＭＤ１０／コントローラ２０が前述の装着センサ／把持センサを含む場合には、データ取得部１０１はこの装着センサ／把持センサからのイベントデータをさらに取得し、状態判定部１０２へ送ってもよい。
【００４１】
状態判定部１０２は、例えば前述のプロセッサにより実現され得る。状態判定部１０２は、データ取得部１０１から第１の制御データ（およびイベントデータ）を受け取る。状態判定部１０２は、第１の制御データに関して既定の差し替え開始条件が満足するか否かを判定する。そして、状態判定部１０２は、判定結果を示すデータとともに第１の制御データをデータ差し替え部１０３へ送る。
【００４２】
ここで、状態判定部１０２は、第１の制御データに基づいて差し替え開始条件が満足するか否かを判定してもよいし、イベントデータに基づいて差し替え開始条件が満足するか否かを判定してもよい。差し替え開始条件は、例えば第１の制御データに忠実にアバターを制御すると当該アバターが不自然な姿勢を取ると予想される場合に満足するように定義され得る。
【００４３】
具体的には、状態判定部１０２は、差し替え開始条件の一例として、ＨＭＤ１０がユーザの頭部に装着されているか否かを判定してもよい。ＨＭＤ１０がユーザの頭から取り外されると、ＨＭＤ１０の位置は最早ユーザの頭部の位置に連動せず、極端に低い位置もしくは高い位置、またはユーザの手（より正確にはコントローラ２０）の位置から極端に離れた位置に動かされる可能性がある。かかる場合に、ＨＭＤ１０の位置に合わせてアバターの頭部の位置を決定すると、アバターの姿勢が不自然なものとなる可能性がある。
【００４４】
状態判定部１０２は、例えば、ＨＭＤ１０の装着／取り外しイベント発生時に装着センサからの出力されるイベントデータに基づいて、ＨＭＤ１０がユーザの頭部に装着されているか否かを判定し得る。
【００４５】
また、ユーザは、頭部からＨＭＤ１０を取り外す時にＨＭＤ１０を頭よりも大幅に高い位置に持ち上げる可能性がある。そこで、状態判定部１０２は、差し替え開始条件の一例として、第１の制御データがＨＭＤ１０の高さが既定の第１の高さ以上であることを示す値を持つか否かを判定してもよい。
【００４６】
第１の高さは、アバターの姿勢が不自然であると定義されないために要求される頭部の高さの上限値を意味し得る。第１の高さは、ユーザ単位で定められてもよいし、仮想的体験共有システム単位で定められてもよい。一例として、第１の高さは、ユーザ個人または平均的なユーザの頭部の高さにオフセットを加えた高さ、などであり得る。
【００４７】
また、ユーザは、頭部からＨＭＤ１０を取り外した後、例えば床などの低地に置くことがあり得る。かかる場合に、ＨＭＤ１０の位置に合わせてアバターの頭部の位置を決定すると、アバターは例えば低地に頭部を付けて倒れ込んだような姿勢を取る可能性がある。
【００４８】
そこで、状態判定部１０２は、差し替え開始条件の一例として、第１の制御データがＨＭＤ１０の高さが既定の第２の高さ未満であることを示す値を持つか否かを判定してもよい。図６の例では、第２の高さはＨ０に定められており、かつＨＭＤ１０の高さはＨ０よりも低いので、状態判定部１０２は差し替え開始条件が満足すると判定する。
【００４９】
第２の高さは、アバターの姿勢が不自然であると定義されないために要求される頭部の高さの下限値を意味し得る。第２の高さは、ユーザ単位で定められてもよいし、仮想的体験共有システム単位で定められてもよい。一例として、第２の高さは、ユーザ個人または平均的なユーザの腰の高さ、膝の高さ、前屈時の頭部の高さ、などであり得る。
【００５０】
また、差し替え開始条件は、第１の制御データがＨＭＤ１０の高さが上記第１の高さ以上または上記第２の高さ未満であることを示す値を持つこと、であってもよい。図８の例では、第１の高さおよび第２の高さはそれぞれＨ１およびＨ２に定められており、かつＨＭＤ１０の高さはＨ１以上であるので、状態判定部１０２は差し替え開始条件が満足すると判定する。これにより、ＨＭＤ１０の高さが、前述の下限値から上限値までの範囲に入らない場合に、データの差し替えを行って、アバターの姿勢が崩壊するのを防止することができる。
【００５１】
また、ユーザは、頭部からＨＭＤ１０を取り外す前に、手を自由にするためにコントローラ２０を手放している可能性がある。そこで、状態判定部１０２は、差し替え開始条件の一例として、前述のＨＭＤ１０の高さに関する条件のいずれかに加えて、第１の制御データがコントローラ２０が静止していることを示す値を持つか否かを判定してもよい。コントローラ２０が静止しているか否かは、例えば、第１の制御データにおけるコントローラ２０の位置の履歴、コントローラ２０の動きセンサまたは把持センサの出力データ、などに基づいて判定され得る。
【００５２】
さらに、ユーザがＨＭＤ１０を頭部に装着し、かつ、コントローラ２０を把持している限りは、両者の距離が極端に離れることはない。換言すれば、ＨＭＤ１０とコントローラ２０との間の距離が極端に大きい場合には、ＨＭＤ１０およびコントローラ２０の少なくとも一方はユーザに身に着けられていない可能性がある。故に、かかる場合に、ＨＭＤ１０／コントローラ２０の位置データに忠実にアバターを制御すると、アバターが不自然な姿勢を取る可能性がある。そこで、状態判定部１０２は、差し替え開始条件の一例として、第１の制御データがＨＭＤ１０とコントローラ２０との間の距離が既定の距離以上であることを示す値を持つか否かを判定してもよい。
【００５３】
既定の距離は、アバターの姿勢が不自然であると定義されないために要求される頭と手との間の距離の上限値を意味し得る。既定の距離は、ユーザ単位で定められてもよいし、仮想的体験共有システム単位で定められてもよい。一例として、既定の距離は、ユーザ個人または平均的なユーザの頭部から手までの距離に基づいて定められ得る。具体的には、既定の距離は、頭部から手までの距離が最も大きくなる姿勢、例えば気をつけの姿勢を取った時のユーザの頭部から手までの距離にオフセットを加えた距離、などであり得る。
【００５４】
なお、状態判定部１０２は、一旦差し替え開始条件が満足すると判定した後は、既定の差し替え終了条件が満足するか否かを判定する。そして、状態判定部１０２は、一旦差し替え終了条件が満足すると判定した後は、再び差し替え開始条件が満足するか否かを判定する。差し替え終了条件は、例えば第１の制御データに忠実にアバターを制御したとしても当該アバターが不自然な姿勢を取らないと予想される場合に満足するように定義され得る。このように差し替え終了条件を定義することで、アバターを自然な姿勢（例えば直立）からダミーの姿勢（例えば屈む）に移行させた後に、不自然な姿勢を挟むことなく再び同一または異なる自然な姿勢（例えば立ち上がって手を振る）に復帰させることが可能となる。
【００５５】
差し替え終了条件は、典型的には差し替え開始条件の否定、すなわち差し替え開始条件が満足しないこと、に相当し得る。例えば、差し替え開始条件が「ＨＭＤ１０がユーザの頭部に装着されていること」である場合には、差し替え終了条件は「ＨＭＤ１０がユーザの頭部に装着されていないこと」に定められ得る。
【００５６】
しかしながら、差し替え終了条件は、差し替え開始条件の否定に相当しないこともあり得る。具体的には、差し替え開始条件が「第１の制御データが、ＨＭＤ１０の高さが第１の高さ以上であることを示し、かつ、コントローラ２０が静止していることを示す値を持つこと」である場合に、差し替え終了条件は「第１の制御データが、ＨＭＤ１０の高さが第１の高さ未満（かつ第２の高さ以上）であることを示し、かつ、コントローラ２０が静止していないことを示す値を持つこと」であってよい。
【００５７】
データ差し替え部１０３は、前述のプロセッサにより実現され得る。データ差し替え部１０３は、差し替え開始条件が満足すると判定された場合には第１の制御データを第２の制御データに差し替え、当該第２の制御データをデータ差し替え装置１００の外部へ出力する。他方、データ差し替え部１０３は、差し替え開始条件が満足すると判定されなかった場合には第１の制御データをそのままデータ差し替え装置１００の外部へ出力する。なお、データ差し替え部１０３は、データの差し替えを一旦開始すると、状態判定部１０２によって差し替え終了条件が満足すると判定されるまでデータの差し替えを継続する。ここで、第２の制御データは、アバターが不自然な姿勢を取らないようにするためのダミーデータであり、その具体例について以下に説明する。
【００５８】
例えば、差し替え開始条件が、ＨＭＤ１０がユーザの頭部に装着されていること、またはＨＭＤ１０の高さに関するものである場合には、第２の制御データは、ＨＭＤ１０の高さに基づかない値を持ち得る。具体的には、第２の制御データは、ＨＭＤ１０の高さが、前述の第１の高さ未満の高さ、前述の第２の高さ以上の高さ、または第１の高さ未満かつ第２の高さ以上の高さであることを示す値を持ち得る。これにより、例えば、図６の例のようにＨＭＤ１０の高さが第２の高さＨ０未満の場合にも、アバターの頭が不自然に下がることはなく、例えば図７のように屈んでいるような姿勢をアバターに取らせることができる。屈む姿勢以外にも、アバターの姿勢を制御するアルゴリズムおよび第２の制御データの示すＨＭＤ１０の高さ次第で、アバターを座らせる、跪かせる、直立させる、など様々な姿勢を取らせることがあり得る。
【００５９】
また、差し替え開始条件が、ＨＭＤ１０とコントローラ２０との間の距離に関するものである場合には、第２の制御データはＨＭＤ１０およびコントローラ２０の少なくとも一方の位置に基づかない値を持ち得る。具体的には、第２の制御データは、ＨＭＤ１０とコントローラ２０との間の距離が既定の距離未満であることを示す値を持ち得る。
【００６０】
ユーザがＨＭＤ１０を装着していない場合にはＨＭＤ１０は静止していると予想できるし、ユーザがコントローラ２０を把持していない場合にはコントローラ２０は静止していると予想できる。そこで、第２の制御データは、ＨＭＤ１０およびコントローラ２０のうち静止している一方または両方の位置に基づかない値を持っていてもよい。換言すれば、第２の制御データにおいて、第１の制御データにおけるＨＭＤ１０およびコントローラ２０のうち静止していないデバイス（非静止デバイス）の位置は維持され、そうでないデバイスの位置が非静止デバイスの位置から上記既定の距離未満にある位置に書き換えられ得る。ＨＭＤ１０／コントローラ２０が静止しているか否かは、例えば第１の制御データにおけるＨＭＤ１０／コントローラ２０の位置の履歴、またはＨＭＤ１０／コントローラ２０の動きセンサまたは装着センサ／把持センサの出力データ、などに基づいて判定可能である。
【００６１】
続いて、このデータ差し替え装置１００を組み込んだ端末２００を説明する。図３には、データ差し替え装置１００を組み込んだ端末２００の機能構成が例示される。端末２００は、データ差し替え装置１００と、送信部２０１と、受信部２１１と、画像生成部２１２とを含む。
【００６２】
送信部２０１は、前述の通信Ｉ／Ｆにより実現され得る。送信部２０１は、データ差し替え装置１００の出力データを受け取り、これをネットワーク経由で、通信相手となる他の端末２００へ送信する。ここで、データ差し替え装置１００の出力データは、前述のように、データの差し替えが行われた場合には第２の制御データであり、そうでない場合には第１の制御データである。
【００６３】
なお、送信部２０１は、第１または第２の制御データに加えて、マイクロホンによって生成された音声データを受け取り、これをネットワーク経由で通信相手となる他の端末２００へ送信してもよい。
【００６４】
受信部２１１は、前述の通信Ｉ／Ｆにより実現され得る。受信部２１１は、通信相手となる他の端末２００からネットワーク経由で、当該他の端末２００のユーザのアバターを制御するための制御データを受信する。受信する制御データは、第１の制御データである可能性もあるし第２の制御データである可能性もあるが、いずれであろうとも後段の処理に影響はない。受信部２１１は、制御データを画像生成部２１２へ送る。
【００６５】
なお、受信部２１１は、制御データに加えて音声データを受信し得る。受信部２１１は、音声データを図示されない音声処理部へ送ってもよい。この音声処理部は、音声データを再生し、前述のスピーカに音声を出力させる。
【００６６】
画像生成部２１２は、前述のプロセッサにより実現され得る。画像生成部２１２は、例えば端末２００のメモリまたは補助記憶装置に保存されているオブジェクトの画像データと、受信部２１１からの制御データとに基づいて、当該制御データに対応するユーザのアバター画像の制御を含む、ＶＲ／ＡＲ／ＭＲ画像の生成（更新）を行う。ここでの制御データは、データの差し替えが行われた場合には第２の制御データに相当し、そうでない場合には第１の制御データに相当する。画像生成部２１２は、生成した画像データをＨＭＤ１０へ送る。
【００６７】
画像生成部２１２は、前述のように、制御データの示すＨＭＤ１０／コントローラ２０の位置に応じてアバター画像の頭部／手の位置を決定し、例えばＩＫ技術を利用してアバターの姿勢を制御してもよい。
【００６８】
以下、図９を用いて、端末２００の動作を説明する。図９の動作は、第１の制御データが生成される毎に行われる。
【００６９】
まず、データ差し替え装置１００内のデータ取得部１０１は、第１の制御データを取得する（ステップＳ３０１）。それから、データ差し替え装置１００内の状態判定部１０２は、既定の条件が満足するか否かを判定する（ステップＳ３０２）。既定の条件が満足する場合には処理はステップＳ３０３へ進み、そうでなければ処理はステップＳ３０３をスキップしてステップＳ３０４へ進む。
【００７０】
なお、ステップＳ３０２において既定の条件とは、差し替え開始条件が１度も満足していない場合には差し替え開始条件を意味し、差し替え開始条件が満足してから差し替え終了条件が満足するまでの間は差し替え終了条件の否定に相当する条件を意味し、差し変え終了条件が満足してから再び差し替え開始条件が満足するまでの間は差し替え開始条件を意味し得る。
【００７１】
ステップＳ３０３において、データ差し替え装置１００内のデータ差し替え部１０３は、第１の制御データをＨＭＤ１０およびコントローラ２０の少なくとも一方の位置に基づかない値を持つ第２の制御データに差し替える。
【００７２】
次に、送信部２０１は制御データを送信し（ステップＳ３０４）、図９の動作は終了する。なお、ステップＳ３０４の前にステップＳ３０３が実行された場合には、送信部２０１は第２の制御データを送信する。他方、ステップＳ３０４の前にステップＳ３０３がスキップされた場合には、送信部２０１は第１の制御データを送信する。
【００７３】
以上説明したように、実施形態に係るデータ差し替え装置は、既定の差し替え開始条件が満足される場合に、ＨＭＤおよびコントローラの位置に基づく値を持つ第１の制御データをＨＭＤおよびコントローラの少なくとも一方の位置に基づかない値を持つ第２の制御データへ差し替える。故に、このデータ差し替え装置によれば、例えば第１の制御データに忠実にアバターを制御すると当該アバターが不自然な姿勢を取るおそれがある場合に、当該第１の制御データの代わりにダミーの第２の制御データを用いて当該アバターを制御することができる。すなわち、ＨＭＤおよびコントローラの実際の位置とは無関係に、アバターの姿勢を不自然とならないように維持されるので、少なくともアバター画像の不自然さによるユーザの仮想的体験の劣化を防止することができる。
【００７４】
（変形例１）  
前述の実施形態では、第１の制御データの送信元である端末において第１の制御データに対するデータの差し替えが条件付きで行われる。しかしながら、第１の制御データの送信元ではなく宛先である端末において、当該第１の制御データに対するデータの差し替えが行われてもよい。かかる変形例の端末４００が図１０に例示される。
【００７５】
端末４００は、データ取得部４０２と、送信部２０１と、受信部２１１と、データ差し替え装置１００と、画像生成部２１２とを含む。ここで、送信部２０１、受信部２１１、データ差し替え装置１００および画像生成部２１２は、図３における同名の要素と同一または類似であるので、以降の説明では両者の相違点およびデータ取得部４０２を中心にて説明する。
【００７６】
データ取得部４０２は、例えば前述の通信Ｉ／Ｆ、入出力Ｉ／Ｆ、またはプロセッサにより実現され得る。データ取得部４０２は、第１の制御データを取得し、これを送信部２０１へ送る。前述のように、ＨＭＤ１０／コントローラ２０の位置は、位置センサシステムを用いて推定することができる。
【００７７】
外部装置、例えば、ＨＭＤ１０、コントローラ２０またはベースステーションがＨＭＤ１０／コントローラ２０の位置を推定して第１の制御データを生成する場合には、データ取得部４０２はこの外部装置から第１の制御データを取得すればよい。他方、端末２００（の図示されない位置推定部）が位置センサシステムの出力データ（例えば、検知点の位置、傾き、発光強度などを示すデータ）に基づいてＨＭＤ１０／コントローラ２０の位置を推定して第１の制御データを生成する場合には、データ取得部４０２は端末２００のメモリまたは補助記憶装置から第１の制御データを取得すればよい。
【００７８】
なお、ＨＭＤ１０／コントローラ２０が前述の装着センサ／把持センサを含む場合には、データ取得部４０２はこの装着センサ／把持センサからのイベントデータをさらに取得し、送信部２０１へ送ってもよい。また、この場合に、送信部２０１は、宛先である端末４００における既定の条件の判定のために、第１の制御データに加えてイベントデータを当該端末４００へ送信し得る。さらに、受信部２１１も、他の端末４００から送信された第１の制御データに加えて、イベントデータを受信し、データ差し替え装置１００へ送り得る。
【００７９】
以上説明したように、この変形例では、第１の制御データの送信元ではなく宛先である端末においてデータ差し替え処理を分散的に行う。故に、この変形例によれば、送信元における負荷を削減することができる。
【００８０】
（変形例２）  
前述の実施形態では、各端末はＰ２Ｐ型のネットワーク経由でデータを互いに伝送し合う。他方、各端末は、Ｃ／Ｓ型のネットワーク経由でデータを互いに伝送し合うことも可能である。そして、この場合に、データ差し替え装置１００がサーバに組み込まれてもよい。そして、サーバは、第１の制御データを端末間で単純に中継するのではなく、送信元である端末から受信した第１の制御データに対して条件付きでデータの差し替えを行ってから第１または第２の制御データを宛先である端末へ送信してもよい。
【００８１】
この変形例のようにＣ／Ｓ型のネットワークを採用することで、Ｐ２Ｐ型のネットワークを採用した場合に比べて制御データの伝送遅延は大きくなる可能性があるが、サーバにおいてデータ差し替え処理を集中的に行うので、各端末における負荷を削減することができる。
【００８２】
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
【００８３】
上述の実施形態では、いくつかの機能部を説明したが、これらは各機能部の実装の一例に過ぎない。例えば、１つの装置に実装されると説明された複数の機能部が複数の別々の装置に亘って実装されることもあり得るし、逆に複数の別々の装置に亘って実装されると説明された機能部が１つの装置に実装されることもあり得る。
【００８４】
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
【００８５】
上記各実施形態の処理の少なくとも一部は、例えば汎用のコンピュータに搭載されたプロセッサを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ（サーバ）上に格納し、ネットワーク経由でコンピュータ（クライアント）にダウンロードさせてもよい。
【符号の説明】
【００８６】
１０・・・ＨＭＤ
２０，２１，２２・・・コントローラ
１００・・・データ差し替え装置
１０１，４０２・・・データ取得部
１０２・・・状態判定部
１０３・・・データ差し替え部
２００・・・端末
２０１・・・送信部
２１１・・・受信部
２１２・・・画像生成部
【図１】
2019220147.tif 000003
【図２】
2019220147.tif 000004
【図３】
2019220147.tif 000005
【図４】
2019220147.tif 000006
【図５】
2019220147.tif 000007
【図６】
2019220147.tif 000008
【図７】
2019220147.tif 000009
【図８】
2019220147.tif 000010
【図９】
2019220147.tif 000011
【図１０】
2019220147.tif 000012