(57)【特許請求の範囲】
【請求項１】
ヘッドマウントディスプレイを装着したユーザが操作するアバターを含む仮想空間を表示するための表示制御装置であって、
前記ユーザの動きに応じた前記アバターの制御データを生成するアバター制御部と、
前記アバターとオブジェクトが衝突したときに、当該衝突に応じた前記アバターと前記オブジェクトの物理的な挙動を計算する演算部と、
前記演算部の計算結果を前記仮想空間に適用する仮想空間管理部と、
前記計算結果を適用した前記アバターの姿勢と前記ユーザの操作に基づく前記アバターの姿勢とが所定以上乖離するときに、前記ヘッドマウントディスプレイに供給する映像として、衝突に応じた物理的な挙動が所定内に抑えられた前記アバターをレンダリングする描画部とを備える
表示制御装置。
【請求項２】
請求項１に記載の表示制御装置であって、
前記描画部は、前記計算結果を前記ユーザの操作するアバターに適用しない、適用度合いを変更して前記計算結果を前記ユーザの操作するアバターに適用する、またはパラメータを変えて計算した別の計算結果を前記ユーザの操作するアバターに適用することで、前記アバターの挙動が所定内に抑えられた映像をレンダリングする
表示制御装置。
【請求項３】
請求項１または２に記載の表示制御装置であって、
前記アバターとオブジェクトが衝突したことを前記ユーザに通知する通知部を備える
表示制御装置。
【請求項４】
請求項１ないし３のいずれかに記載の表示制御装置であって、
前記演算部の計算結果を適用した前記仮想空間をレンダリングした映像を配信する配信部を備える
表示制御装置。
【請求項５】
ヘッドマウントディスプレイを装着したユーザが操作するアバターを含む仮想空間を表示するための表示制御装置が実行する表示制御方法であって、
前記ユーザの動きに応じた前記アバターの制御データを生成するステップと、
前記アバターとオブジェクトが衝突したときに、当該衝突に応じた前記アバターと前記オブジェクトの物理的な挙動を計算するステップと、
計算するステップで求めた計算結果を前記仮想空間に適用するステップと、
前記計算結果を適用した前記アバターの姿勢と前記ユーザの操作に基づく前記アバターの姿勢とが所定以上乖離するときに、前記ヘッドマウントディスプレイに供給する映像として、衝突に応じた物理的な挙動が所定内に抑えられた前記アバターをレンダリングするステップとを有する
表示制御方法。
【請求項６】
第１、第２のユーザがそれぞれ使用する第１、第２の表示制御装置を備え、ヘッドマウントディスプレイを装着した前記第１、第２のユーザのそれぞれが操作する第１、第２のアバターを介して仮想空間においてコミュニケーションをとる表示システムであって、
前記第１の表示制御装置は、
第１のユーザの動きに応じた第１のアバターの制御データを生成する第１のアバター制御部と、
前記第１のユーザの装着するヘッドマウントディスプレイに供給する映像として、前記仮想空間をレンダリングする第１の描画部と、を備え、
前記第２の表示制御装置は、
第２のユーザの動きに応じた第２のアバターの制御データを生成する第２のアバター制御部と、
前記第２のユーザの装着するヘッドマウントディスプレイに供給する映像として、前記仮想空間をレンダリングする第２の描画部と、を備え、
少なくとも前記第１の表示制御装置または前記第２の表示制御装置のいずれか一方は、アバターとオブジェクトが衝突したときに、当該衝突に応じた前記アバターと前記オブジェクトの物理的な挙動を計算する演算部を備え、
前記第１、第２の表示制御装置の間で前記演算部の計算結果を適用した前記仮想空間が同期され、
前記第１の描画部は、前記計算結果を適用した前記第１のアバターの姿勢と前記第１のユーザの操作に基づく前記第１のアバターの姿勢とが所定以上乖離するときに、衝突に応じた物理的な挙動が所定内に抑えられた前記第１のアバターをレンダリングし、
前記第２の描画部は、前記計算結果を適用した前記第２のアバターの姿勢と前記第２のユーザの操作に基づく前記第２のアバターの姿勢とが所定以上乖離するときに、衝突に応じた物理的な挙動が所定内に抑えられた前記第２のアバターをレンダリングする
表示システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示制御装置、表示制御方法、および表示システムに関する。
【背景技術】
【０００２】
近年、仮想現実（ＶＲ）空間においてユーザがアバターを操作して番組を配信したり、アバターを介してユーザ同士でコミュニケーションを取ったりできるサービスが広まっている。
【０００３】
視聴者がＶＲ空間に投げ入れたオブジェクトがアバターに衝突したとき、またはアバター同士が接触したときなど、ユーザの操作するアバターにオブジェクトが衝突したときに、アバターがオブジェクトの衝突タイミングに合わせて反応動作しなければ、視聴者はアバターにオブジェクトが衝突したことをリアルに感じることができない。
【０００４】
非特許文献１では、アバターとオブジェクトが衝突したときに、アバターの反応動作を物理エンジンにより自動生成する技術が提案されている。非特許文献１では、オブジェクトの衝突に応じた反応が自動的に行われるので、ユーザはオブジェクトの衝突タイミングに合わせて動作する必要がない。また、アバターが他のアバターやオブジェクトに接触した場合も、アバターの腕がオブジェクトを突き抜けることがなくなるので、よりリアリティを感じることができる映像を配信できる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】杉森健、外４名、「演技サポート！ギフトが当たると勝手に動くＶＴｕｂｅｒアバター」、ＣＥＤＥＣ２０１９、一般社団法人コンピュータエンターテインメント協会、２０１９年９月４日
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１では、アバターとオブジェクトが衝突したときにアバターを操作するユーザの意思とは関係なくアバターが自動的に反応するため、ユーザの思うアバターの状態とユーザの見るアバターの状態が一致せずに、ユーザが違和感を抱くという問題があった。
【０００７】
本発明は、上記に鑑みてなされたものであり、アバターとオブジェクトとの衝突にリアリティを持たせつつ、アバターを操作するユーザに違和感を抱かせにくくすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様の表示制御装置は、ヘッドマウントディスプレイを装着したユーザが操作するアバターを含む仮想空間を表示するための表示制御装置であって、前記ユーザの動きに応じた前記アバターの制御データを生成するアバター制御部と、前記アバターとオブジェクトが衝突したときに、当該衝突に応じた前記アバターと前記オブジェクトの物理的な挙動を計算する演算部と、前記演算部の計算結果を前記仮想空間に適用する仮想空間管理部と、前記計算結果を適用した前記アバターの姿勢と前記ユーザの操作に基づく前記アバターの姿勢とが所定以上乖離するときに、前記ヘッドマウントディスプレイに供給する映像として、衝突に応じた物理的な挙動が所定内に抑えられた前記アバターをレンダリングする描画部とを備える。
【発明の効果】
【０００９】
本発明によれば、アバターとオブジェクトとの衝突にリアリティを持たせつつ、アバターを操作するユーザに違和感を抱かせにくくすることができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態の表示制御端末を含む表示システムの構成例を示す図である。
【図２】第１の実施形態の表示制御端末の構成例を示す機能ブロック図である。
【図３】第１の実施形態の表示制御端末の処理の流れを示すフローチャートである。
【図４】衝突処理をしないときのアバターの一例を示す図である。
【図５】衝突処理をしたときのアバターの一例を示す図である。
【図６】一方のアバターのみに衝突処理をしたときの一例を示す図である。
【図７】他方のアバターのみに衝突処理をしたときの一例を示す図である。
【図８】衝突処理をしないときのアバターの一例を示す図である。
【図９】衝突処理をしたときのアバターの一例を示す図である。
【図１０】第２の実施形態の表示制御端末を含む映像配信システムの構成例を示す図である。
【図１１】第２の実施形態の表示制御端末の構成例を示す機能ブロック図である。
【図１２】第２の実施形態の表示制御端末の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１１】
［第１の実施形態］
以下、第１の実施形態の表示制御端末を含む表示システムについて図面を用いて説明する。
【００１２】
第１の実施形態の表示制御端末を含む表示システムは、ユーザのそれぞれが仮想空間内のアバターを操作し、アバターを介して仮想空間でチャットを行い、ネットワーク上で互いにコミュニケーションを取ることができるシステムである。
【００１３】
図１の表示システムは、ネットワークを介して通信可能に接続された複数の端末１０を備える。端末１０のそれぞれが第１の実施形態の表示制御端末である。図１では、端末１０を２台のみ図示しているが、３人以上のユーザがチャットに参加してもよく、端末１０の台数は任意である。
【００１４】
各端末１０には、コントローラ２０とヘッドマウントディスプレイ（ＨＭＤ）３０が接続される。ユーザは、コントローラ２０によりアバターを操作でき、ＨＭＤ３０を装着してアバターの視点から仮想空間を見ることができる。ＨＭＤ３０は、マイクとスピーカーを備える。マイクで集音されたユーザの音声は、他のユーザの端末１０へ送信される。また、他のユーザの端末１０から受信した他のユーザの音声は、スピーカーから出力される。
【００１５】
各ユーザの操作するアバターは同一の仮想空間内に存在する。端末１０間で仮想空間のデータを同期させてもよいし、いずれかの端末１０が仮想空間のデータを管理してもよい。
【００１６】
図２を参照し、端末１０の構成について説明する。図２には、各ユーザの用いる端末１０を示している。端末１０は、アバター制御部１１、ＶＲ空間管理部１２、演算部１３、描画部１４、および通信部１５を備える。端末１０には、例えば、中央演算処理装置（ＣＰＵ）、メモリ、ストレージ、通信装置、および入出力装置とを備える汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされた所定のプログラムを実行することにより、端末１０の各部が実現される。このプログラムは磁気ディスク、光ディスク、半導体メモリ等のコンピュータ読み取り可能な記録媒体に記録することも、ネットワークを介して配信することもできる。
【００１７】
アバター制御部１１は、コントローラ２０などの機器からユーザの姿勢、位置、および操作情報を受信し、ユーザ自身のアバターの姿勢および動きを制御するための制御データを生成する。制御データは、ユーザの動きをモーションキャプチャしたモーションデータである。以下、ユーザ自身が操作するアバターと他のユーザが操作するアバターとを区別する際、ユーザ自身のアバターを「ユーザアバター」と称し、他のユーザのアバターを「他者アバター」と称することもある。
【００１８】
ＶＲ空間管理部１２は、仮想空間内に存在するオブジェクトのデータを管理する。オブジェクトのデータとしては、オブジェクトのモデルデータおよび位置データがある。アバターは、仮想空間内に存在するオブジェクトのひとつである。アバターに関連したデータとしては、例えばモデルデータと制御データがある。仮想空間のデータは、各端末１０が事前に取得しておく。例えば、各端末１０は、仮想空間のデータをデータサーバ（図示せず）から取得してもよいし、他の端末１０から取得してもよい。
【００１９】
ＶＲ空間管理部１２は、アバター制御部１１の生成した制御データをユーザアバターに適用してユーザアバターの姿勢と位置を更新するとともに、他のユーザの端末１０から受信した制御データを他者アバターに適用する。また、ＶＲ空間管理部１２は、仮想空間内で動くオブジェクトがあれば、その動きに応じてオブジェクトの姿勢と位置を更新する。仮想空間のデータは、端末１０間で同期して管理されて、各端末１０の管理する仮想空間は同一の仮想空間となる。いずれかの端末１０が仮想空間を管理してもよいし、サーバ（図示せず）が仮想空間を管理してもよい。特定の装置で仮想空間を管理する場合、各端末１０は、仮想空間のデータを当該装置から取得する。
【００２０】
演算部１３は、仮想空間内でオブジェクト（アバターを含む）同士が衝突したときに、衝突に応じた各オブジェクトの物理的な挙動を計算する。演算部１３には、周知の物理演算エンジンを利用できる。
【００２１】
ＶＲ空間管理部１２は、計算結果に基づき、各オブジェクトの姿勢と位置を更新する。ＶＲ空間管理部１２は、ユーザアバターについては、計算結果を適用後のユーザアバターの姿勢と位置の情報に加えて、計算結果を適用してない状態のユーザアバターの姿勢と位置の情報を管理しておく。もしくは、ＶＲ空間管理部１２は、パラメータを変えて計算した計算結果を適用した状態のユーザアバターの姿勢と位置の情報を管理してもよいし、適用度合いを変えて計算結果を適用した状態のユーザアバターの姿勢と位置の情報を管理してもよい。
【００２２】
描画部１４は、仮想空間をユーザアバターの視点でレンダリングし、レンダリングした映像をＨＭＤ３０に供給する。このとき、描画部１４は、ユーザアバターについては、ユーザアバターの反応動作が所定内に抑えられるように、別に管理したユーザアバターの姿勢と位置の情報に差し替えて、ユーザアバターをレンダリングする。所定内とは、ユーザが違和感を抱かない程度内である。例えば、所定内であるか否かは、ユーザアバターの反応動作による姿勢とユーザの操作による姿勢との乖離度合いおよび反応動作の長さに基づいて決めることができる。
【００２３】
ＨＭＤ３０に供給する映像においてユーザアバターの反応動作を所定内に抑える方法として、描画部１４は、計算結果を適用していない状態のユーザアバターをレンダリングする。
【００２４】
あるいは、演算部１３は、描画部１４がユーザアバターに適用する計算結果として、ユーザアバターに衝突したオブジェクトの重さなどのパラメータを変えたときのユーザアバターの挙動も計算しておき、描画部１４は、パラメータを変えた計算結果を適用したユーザアバターをレンダリングしてもよい。ユーザアバターに衝突したオブジェクトを軽いものとして扱うことで、ユーザアバターの反応動作が抑えられるのでユーザが違和感を抱きにくくなる。
【００２５】
あるいは、描画部１４は、適用度合いを変えて計算結果を適用したユーザアバターをレンダリングしてもよい。例えば、重いオブジェクトがユーザアバターに衝突した場合、演算部１３の計算結果を適用するとユーザアバターは大きくよろめく。この場合、描画部１４は、ユーザアバターをレンダリングする際、ユーザアバターの反応動作がユーザが違和感を抱かない程度の小さな反応動作となるように計算結果の適用度合いを抑えて計算結果をユーザアバターに適用する。
【００２６】
いずれの場合も、ユーザ以外の他人は、演算部１３の通常の計算結果が適用されて大きく反応するユーザアバターを見る。ＨＭＤ３０に供給される映像では、演算部１３の計算結果によるユーザアバターの反応動作が差し替えられてレンダリングされるので、他人が見るユーザアバターの反応動作とユーザ自身の見るまたは感じるユーザアバターの反応動作は異なる。
【００２７】
なお、オブジェクトの衝突によってユーザアバターが所定以上の反応動作する場合に、ユーザアバターに計算結果を適用しなかったり、計算結果の適用度合いを抑えたり、パラメータを変えて計算した計算結果を適用したりしてもよい。つまり、描画部１４は、計算結果を適用したユーザアバターの姿勢とユーザの操作に基づくユーザアバターの姿勢とが所定以上乖離するときに、ユーザアバターに適用する計算結果を異ならせてもよい。
【００２８】
通信部１５は、ユーザアバターの制御データおよびユーザの音声データを他のユーザの端末１０との間で送受信する。より具体的には、通信部１５は、アバター制御部１１が生成したユーザアバターの制御データを他のユーザの端末１０へ送信するとともに、他のユーザの端末１０から他者アバターの制御データを受信する。また、通信部１５は、ＨＭＤ３０のマイクで集音したユーザの音声データを他のユーザの端末１０へ送信するとともに、他のユーザの端末１０から他のユーザの音声データを受信する。
【００２９】
なお、端末１０のいずれかは演算部１３を備えずに、他の端末１０から演算部１３の計算結果や計算結果を適用後の仮想空間のデータを受信してもよい。例えば、図２の左側の端末１０（以下、端末１０Ａとする）が演算部１３を備え、右側の端末１０（以下、端末１０Ｂとする）は演算部１３を備えない場合、端末１０Ｂは、端末１０Ａから計算結果を適用後の仮想空間のデータを受信する。このとき、端末１０Ｂの描画部１４は、端末１０ＢのユーザＢのユーザアバターＢについては、計算結果が適用されたユーザアバターＢの姿勢および位置を計算結果が適用されていないユーザアバターＢの姿勢および位置に差し替えて、仮想空間をレンダリングする。
【００３０】
システム全体で上記の機能を実現できるならば、端末１０の備える各部の処理を実行する装置は問わない。例えば、サーバ（図示せず）がＶＲ空間管理部１２と演算部１３を備えてもよい。サーバは、各端末１０からアバターの制御データを受信する。ＶＲ空間管理部１２が仮想空間内のアバターに制御データを適用するとともに、演算部１３が衝突処理を実行し、計算結果を仮想空間に適用する。各端末１０は、サーバから計算結果を適用後の仮想空間のデータを受信する。このとき、各端末１０の描画部１４は、当該端末１０を使用するユーザのユーザアバターについては、計算結果が適用されたユーザアバターの姿勢および位置を計算結果が適用されていないユーザアバターの姿勢および位置に差し替えて、仮想空間をレンダリングする。
【００３１】
また、サーバが描画部１４を備えてもよい。サーバは、端末１０Ａ，１０Ｂのそれぞれからユーザの視線情報を受信する。描画部１４は、端末１０Ａに対しては、ユーザアバターＡに計算結果が適用されていない仮想空間をレンダリングした映像を送信し、端末１０Ｂに対しては、ユーザアバターＢに計算結果が適用されていない仮想空間をレンダリングした映像を提供する。この場合、端末１０Ａ，１０Ｂは、ユーザＡ，Ｂのモーションをキャプチャする機能および受信した映像を表示する機能を有していればよい。
【００３２】
図３のフローチャートを参照して、端末１０の動作について説明する。以下では、ユーザアバターに計算結果を適用しない場合について説明するが、計算結果の適用度合いを抑えたり、パラメータを変えて計算した計算結果を適用したりする場合も同様である。
【００３３】
ステップＳ１１にて、アバター制御部１１は、コントローラ２０からユーザの姿勢などの情報を受信し、ユーザアバターの制御データを生成する。通信部１５は、アバター制御部１１の生成した制御データを他の端末１０へ送信する。
【００３４】
ステップＳ１２にて、通信部１５は、他の端末１０から他者アバターの制御データを受信する。
【００３５】
ステップＳ１３にて、ＶＲ空間管理部１２は、アバターに制御データを適用するとともに、動いているオブジェクトの姿勢と位置を更新する。
【００３６】
ステップＳ１４にて、演算部１３は、オブジェクト同士の衝突処理を行う。例えば、演算部１３は、衝突しているオブジェクトが存在するか否か判定し、衝突しているオブジェクトについて、衝突位置、衝突方向、および重なっている深度などの情報を求め、オブジェクトの質量、速度、および反発係数などの情報に基づき、衝突に応じた各オブジェクトの挙動を計算する。
【００３７】
ステップＳ１５にて、ＶＲ空間管理部１２は、演算部１３の計算結果を仮想空間に反映し、オブジェクトの姿勢と位置を更新する。例えば、アバター１００Ａがアバター１００Ｂの頭部を叩く動作をしたとき、図４に示すように、アバター１００Ａの腕とアバター１００Ｂの頭部が衝突する。演算部１３の計算結果をアバター１００Ａ，１００Ｂのそれぞれに反映すると、図５に示すように、アバター１００Ａの腕とアバター１００Ｂの頭部がめり込まない状態となる。
【００３８】
なお、ＶＲ空間管理部１２は、計算結果を適用しない状態のユーザアバターの姿勢と位置を別に管理しておく。例えば、図４のアバター１００Ａの姿勢と位置を別に管理しておく。ＶＲ空間管理部１２は、計算結果の適用度合いを変えて適用したユーザアバターの姿勢と位置を別に管理してもよいし、パラメータを変えて計算した計算結果を適用したユーザアバターの姿勢と位置を別に管理してもよい。
【００３９】
ステップＳ１６にて、描画部１４は、ユーザアバターに計算結果を適用しないで仮想空間をレンダリングし、レンダリングした映像をＨＭＤ３０に供給する。
【００４０】
例えば、アバター１００Ａに計算結果を適用するとアバター１００Ａの腕の位置は図５に示した位置になる。ところが、ユーザはアバター１００Ａの腕を図４に示した位置まで下げた操作をしているので、ユーザの操作とアバター１００Ａの姿勢が一致せずに、ユーザは違和感を抱いてしまう。
【００４１】
そこで、本実施形態では、計算結果を適用しないユーザアバターの姿勢と位置も管理しておき、描画部１４は、計算結果を適用したユーザアバターを計算結果を適用しないユーザアバターに差し替えて、仮想空間をレンダリングする。例えば、アバター１００Ａを操作するユーザには、図６に示すように、アバター１００Ａを計算結果を適用していないアバター１００Ａ（図４のアバター１００Ａ）に差し替えてレンダリングした映像を提示する。図６では、アバター１００Ｂには計算結果を適用している。他方、アバター１００Ｂを操作するユーザには、図７に示すように、アバター１００Ｂを計算結果を適用していないアバター１００Ｂ（図４のアバター１００Ｂ）に差し替えてレンダリングした映像を提示する。図７では、アバター１００Ａには計算結果を適用している。なお、アバター１００Ａ，１００Ｂを操作するユーザ以外のユーザには、図５に示した、計算結果を適用したアバター１００Ａ，１００Ｂをレンダリングした映像を提示する。
【００４２】
アバターとアバター以外のオブジェクトとの衝突についても同様に処理する。例えば、図８に示すように、アバター１００にオブジェクト１１０が衝突したとする。演算部１３の計算結果をアバター１００とオブジェクト１１０のそれぞれに反映すると、図９に示すように、アバター１００の姿勢が大きく崩れた状態となる。
【００４３】
アバター１００を操作するユーザには、図８に示した、計算結果を適用しないアバター１００をレンダリングした映像を提供する。それ以外のユーザには、図９に示した、計算結果を適用したアバター１００をレンダリングした映像を提供する。
【００４４】
以上説明したように、本実施形態によれば、演算部１３がオブジェクトの衝突処理を行って各オブジェクトの物理的な挙動を計算し、ＶＲ空間管理部１２が演算部１３の計算結果を各オブジェクトに適用し、描画部１４がユーザの装着するＨＭＤ３０に供給する映像をレンダリングする際、ユーザの操作するユーザアバターについては、ユーザアバターの反応動作が所定の範囲内に抑えられるようにユーザアバターをレンダリングする。これにより、ユーザ以外の他者に対してはオブジェクトとの衝突に応じて反応動作をするユーザアバターを提示できるとともに、ユーザに対しては反応動作が抑えられたユーザアバターを提示できるので、ユーザにユーザアバターの動きに対する違和感を抱かせることなく、ユーザアバターへのオブジェクトの衝突にリアリティを持たせることができる。
【００４５】
［第２の実施形態］
以下、第２の実施形態の表示制御端末を含む映像配信システムについて図面を用いて説明する。
【００４６】
第２の実施形態の表示制御端末を含む映像配信システムは、配信者が仮想空間内の配信者アバターを操作し、仮想空間内の映像を視聴者に配信するシステムである。視聴者は映像を見るだけでなく、視聴者の操作する視聴者アバターを配信者アバターと同一の仮想空間内に参加させることもできる。
【００４７】
図１０の映像配信システムは、第２の実施形態の表示制御端末である配信者端末４０と配信サーバ５０を備える。配信者端末４０と配信サーバ５０は、ネットワークを介して通信可能に接続される。
【００４８】
配信サーバ５０は、配信者端末４０から仮想空間をレンダリングした映像を受信し、受信した映像を視聴者端末６０へ配信する。配信サーバ５０は、受信した映像をリアルタイムで配信するライブ映像配信を行ってもよいし、受信した映像を記憶しておき、視聴者端末６０からの求めに応じて映像を配信してもよい。
【００４９】
視聴者端末６０は、視聴者が映像を見るための端末である。配信される映像を見ることができる機器であれば、携帯端末、パーソナルコンピュータなどの機器を視聴者端末６０として利用できる。視聴者端末６０が仮想空間のデータを受信して仮想空間をレンダリングしてもよい。また、視聴者がライブ映像配信に参加する場合、視聴者端末６０は、ＨＭＤおよびコントローラなどを接続し、ＶＲ機能を有する機器を利用する。例えば、視聴者端末６０として第１の実施形態の端末１０を利用し、配信者端末４０との間で仮想空間のデータを同期させる。
【００５０】
図１１を参照し、配信者端末４０の構成について説明する。配信者端末４０は、アバター制御部１１、ＶＲ空間管理部１２、演算部１３、描画部１４、通信部１５、配信映像描画部１６、および配信部１７を備える。配信者端末４０は、第１の実施形態の端末１０に、配信用の映像をレンダリングする配信映像描画部１６と映像を配信する配信部１７を備えたものである。
【００５１】
アバター制御部１１は、コントローラ２０などの機器から配信者の姿勢、位置、および操作情報を受信し、配信者アバターの姿勢および動きを制御するための制御データを生成する。
【００５２】
ＶＲ空間管理部１２は、仮想空間内に存在するオブジェクトのデータを管理する。ＶＲ空間管理部１２は、アバター制御部１１の生成した制御データを配信者アバターに適用して配信者アバターの姿勢と位置を更新する。視聴者が参加している場合、ＶＲ空間管理部１２は、参加している視聴者の視聴者端末６０から受信した制御データを視聴者アバターのモデルデータに適用する。
【００５３】
演算部１３は、仮想空間内でオブジェクト同士が衝突したときに、衝突に応じたオブジェクトの物理的な挙動を計算する。ＶＲ空間管理部１２は、配信者アバターについては、計算結果を適用後の配信者アバターの姿勢と位置の情報に加えて、計算結果を適用してない状態の配信者アバターの姿勢と位置の情報を管理しておく。第１の実施形態と同様に、ＶＲ空間管理部１２は、パラメータを変えて計算した計算結果を適用した状態の配信者アバターの姿勢と位置の情報を管理してもよいし、適用度合いを変えて計算結果を適用した状態の配信者アバターの姿勢と位置の情報を管理してもよい。
【００５４】
描画部１４は、配信者アバターには計算結果を適用しないで、仮想空間を配信者アバターの視点でレンダリングし、レンダリングした映像をＨＭＤ３０に供給する。描画部１４は、第１の実施形態と同様に、配信者アバターについては、配信者アバターの反応動作が所定内に抑えられるように配信者アバターをレンダリングする。
【００５５】
通信部１５は、アバターの制御データおよび音声データを参加している視聴者の視聴者端末６０との間で送受信する。また、通信部１５は、視聴者端末６０からコメント（文字情報）を受信してもよいし、ギフトやアイテムなどの情報を受信してもよい。配信者端末４０は、視聴者端末６０から受信したコメントについて、仮想空間内にコメントの内容を表示したオブジェクトを表示させてもよい。配信者端末４０は、視聴者端末６０から受信したギフトやアイテムに対応するオブジェクトを仮想空間内に出現させてもよい。これらのコメント、ギフト、およびアイテムに対応するオブジェクトが配信者アバターに衝突すると、配信者アバターは、演算部１３の計算結果に基づいた反応動作をする。
【００５６】
配信映像描画部１６は、配信者アバターにも演算部１３の計算結果を適用した仮想空間をレンダリングし、配信用の映像を生成する。配信映像描画部１６は、配信者アバターの視点で仮想空間をレンダリングしてもよいし、仮想空間に配置した仮想カメラの視点で仮想空間をレンダリングしてもよい。配信用の映像に、配信者および参加者の音声データを付加してもよい。
【００５７】
配信部１７は、配信映像描画部１６のレンダリングした配信用の映像を配信サーバ５０へ送信する。配信サーバ５０は、受信した映像を視聴者端末６０のそれぞれに配信する。
【００５８】
なお、配信映像描画部１６および配信部１７を配信サーバ５０が備えてもよい。この場合、配信サーバ５０は仮想空間のデータを保持し、配信者端末４０との間で仮想空間のデータを同期する。配信サーバ５０が仮想空間をレンダリングして視聴者端末６０に配信する。配信サーバ５０がＶＲ空間管理部１２と演算部１３を備えて仮想空間のデータを管理し、配信者端末４０が配信サーバ５０から仮想空間のデータを取得してもよい。配信者端末４０の描画部１４は、配信者アバターを演算部１３の計算結果が適用されていない配信者アバターに差し替えて仮想空間をレンダリングする。配信サーバ５０が描画部１４を備えて配信者のＨＭＤ３０に供給する映像をレンダリングしてもよい。
【００５９】
図１２のフローチャートを参照して、配信者端末４０の動作について説明する。以下では、配信者アバターに計算結果を適用しない場合について説明するが、計算結果の適用度合いを抑えたり、パラメータを変えて計算した計算結果を適用したりする場合も同様である。
【００６０】
ステップＳ２１にて、アバター制御部１１は、コントローラ２０から配信者の姿勢などの情報を受信し、配信者アバターの制御データを生成する。視聴者が参加している場合、通信部１５は、アバター制御部１１の生成した制御データを参加している視聴者の視聴者端末６０へ送信する。
【００６１】
ステップＳ２２にて、ＶＲ空間管理部１２は、アバターに制御データを適用するとともに、動いているオブジェクトの姿勢と位置を更新する。また、ＶＲ空間管理部１２は、参加している視聴者の視聴者端末６０から受信した制御データを視聴者アバターに適用する。
【００６２】
ステップＳ２３にて、演算部１３は、オブジェクト同士の衝突処理を行う。
【００６３】
ステップＳ２４にて、ＶＲ空間管理部１２は、演算部１３の計算結果を仮想空間に反映し、オブジェクトの姿勢と位置を更新する。このとき、ＶＲ空間管理部１２は、計算結果を適用しない状態の配信者アバターの姿勢と位置を別に管理しておく。
【００６４】
ステップＳ２５にて、配信映像描画部１６は、演算部１３の計算結果が適用された仮想空間をレンダリングし、配信映像を生成する。配信映像描画部１６は、例えば図９に示したように、アバターに計算結果が適用された仮想空間をレンダリングする。
【００６５】
ステップＳ２６にて、配信部１７は、配信映像を送信する。
【００６６】
ステップＳ２７にて、描画部１４は、配信者アバターに計算結果を適用しないで仮想空間をレンダリングし、レンダリングした映像をＨＭＤ３０に供給する。描画部１４は、例えば図８に示したように、アバターに計算結果を適用していない仮想空間をレンダリングする。つまり、描画部１４は、配信者アバターを計算結果を適用していないアバターに差し替えた仮想空間をレンダリングする。
【００６７】
なお、配信者アバターに計算結果を適用しない場合、配信者は、配信者アバターにオブジェクトが衝突したことに気付かない可能性がある。そこで、配信者端末４０は、配信者アバターとオブジェクトとの衝突を配信者に通知する機能を備えてもよい。
【００６８】
例えば、配信者端末４０は、配信者アバターとオブジェクトとが衝突したときに、配信者に音で通知する。配信者アバターとオブジェクトが衝突したインパクトの瞬間は、衝突に応じた音を配信者と視聴者の双方に聞こえるようにする。配信者アバターとオブジェクトが接触している間、配信者に対してのみ接触していることを通知する音を聞かせる。図８，９で示したように、オブジェクト１１０がアバター１００の頭に衝突した場合、衝突した瞬間では、オブジェクト１１０がアバター１００に衝突した効果音を配信者と視聴者に聞かせる。その後、オブジェクト１１０がアバター１００にくの頭に乗った状態の間、配信者のみにオブジェクト１１０がアバター１００に衝突していることを示す音を聞かせ続ける。
【００６９】
あるいは、配信者端末４０は、視聴者の見ている映像を配信者に見せる。配信者端末４０は、視聴者の見ている映像を仮想空間内のモニタに表示する。例えば、配信者アバターの視線の先にモニタを配置しておく。
【００７０】
あるいは、描画部１４は、反応動作を所定の範囲内に抑えたユーザアバターに加えて、計算結果を適用したユーザアバターもレンダリングする。このとき、描画部１４は、計算結果を適用したユーザアバターを半透明にするなど、表示態様を変えて描画する。
【００７１】
アバターとオブジェクトとの衝突を通知する構成を第１の実施形態に適用してもよい。
【００７２】
以上説明したように、本実施形態によれば、演算部１３がオブジェクトの衝突処理を行って各オブジェクトの物理的な挙動を計算し、ＶＲ空間管理部１２が演算部１３の計算結果を各オブジェクトに適用し、描画部１４がユーザの装着するＨＭＤ３０に供給する映像をレンダリングする際、配信者の操作する配信者アバターについては、配信者アバターの反応動作が所定内に抑えられるように配信者アバターをレンダリングする。これにより、視聴者に対してはオブジェクトとの衝突に応じて反応動作をする配信者アバターを提示できるとともに、配信者に対しては反応動作が抑えられた配信者アバターを提示できるので、配信者に配信者アバターの動きに対する違和感を抱かせることなく、配信者アバターへのオブジェクトの衝突にリアリティを持たせることができる。
【符号の説明】
【００７３】
１０…端末  １１…アバター制御部  １２…ＶＲ空間管理部  １３…演算部  １４…描画部  １５…通信部  １６…配信映像描画部  １７…配信部  ２０…コントローラ  ３０…ＨＭＤ  ４０…配信者端末  ５０…配信サーバ  ６０…視聴者端末
【要約】
【課題】アバターとオブジェクトとの衝突にリアリティを持たせつつ、アバターを操作するユーザに違和感を抱かせにくくする。
【解決手段】
本実施形態の端末１０は、ヘッドマウントディスプレイを装着したユーザが操作するアバターを含む仮想空間を表示するための表示制御装置であり、ユーザの動きに応じたアバターの制御データを生成するアバター制御部１１と、アバターとオブジェクトが衝突したときに、当該衝突に応じたアバターとオブジェクトの挙動を計算する演算部１３と、演算部１３の計算結果を仮想空間に適用するＶＲ空間管理部１２と、ヘッドマウントディスプレイに供給する映像として、衝突に応じた挙動が所定内に抑えられたアバターをレンダリングする描画部１４を備える。
【選択図】図２【図１】
0006761888.tif 000002
【図２】
0006761888.tif 000003
【図３】
0006761888.tif 000004
【図４】
0006761888.tif 000005
【図５】
0006761888.tif 000006
【図６】
0006761888.tif 000007
【図７】
0006761888.tif 000008
【図８】
0006761888.tif 000009
【図９】
0006761888.tif 000010
【図１０】
0006761888.tif 000011
【図１１】
0006761888.tif 000012
【図１２】
0006761888.tif 000013