【文献】
杉森健, 外3名,“物体とのインタラクション時に体の硬さが自在に変えられるVTuberアバター”,インタラクション2019論文集,2019年 2月27日,p.843-845
(58)【調査した分野】(Int.Cl.,DB名)
第1、第2のユーザがそれぞれ使用する第1、第2の表示制御装置を備え、ヘッドマウントディスプレイを装着した前記第1、第2のユーザのそれぞれが操作する第1、第2のアバターを介して仮想空間においてコミュニケーションをとる表示システムであって、
前記第1の表示制御装置は、
第1のユーザの動きに応じた第1のアバターの制御データを生成する第1のアバター制御部と、
前記第1のユーザの装着するヘッドマウントディスプレイに供給する映像として、前記仮想空間をレンダリングする第1の描画部と、を備え、
前記第2の表示制御装置は、
第2のユーザの動きに応じた第2のアバターの制御データを生成する第2のアバター制御部と、
前記第2のユーザの装着するヘッドマウントディスプレイに供給する映像として、前記仮想空間をレンダリングする第2の描画部と、を備え、
少なくとも前記第1の表示制御装置または前記第2の表示制御装置のいずれか一方は、アバターとオブジェクトが衝突したときに、当該衝突に応じた前記アバターと前記オブジェクトの物理的な挙動を計算する演算部を備え、
前記第1、第2の表示制御装置の間で前記演算部の計算結果を適用した前記仮想空間が同期され、
前記第1の描画部は、前記計算結果を適用した前記第1のアバターの姿勢と前記第1のユーザの操作に基づく前記第1のアバターの姿勢とが所定以上乖離するときに、衝突に応じた物理的な挙動が所定内に抑えられた前記第1のアバターをレンダリングし、
前記第2の描画部は、前記計算結果を適用した前記第2のアバターの姿勢と前記第2のユーザの操作に基づく前記第2のアバターの姿勢とが所定以上乖離するときに、衝突に応じた物理的な挙動が所定内に抑えられた前記第2のアバターをレンダリングする
表示システム。
【発明を実施するための形態】
【0011】
[第1の実施形態]
以下、第1の実施形態の表示制御端末を含む表示システムについて図面を用いて説明する。
【0012】
第1の実施形態の表示制御端末を含む表示システムは、ユーザのそれぞれが仮想空間内のアバターを操作し、アバターを介して仮想空間でチャットを行い、ネットワーク上で互いにコミュニケーションを取ることができるシステムである。
【0013】
図1の表示システムは、ネットワークを介して通信可能に接続された複数の端末10を備える。端末10のそれぞれが第1の実施形態の表示制御端末である。
図1では、端末10を2台のみ図示しているが、3人以上のユーザがチャットに参加してもよく、端末10の台数は任意である。
【0014】
各端末10には、コントローラ20とヘッドマウントディスプレイ(HMD)30が接続される。ユーザは、コントローラ20によりアバターを操作でき、HMD30を装着してアバターの視点から仮想空間を見ることができる。HMD30は、マイクとスピーカーを備える。マイクで集音されたユーザの音声は、他のユーザの端末10へ送信される。また、他のユーザの端末10から受信した他のユーザの音声は、スピーカーから出力される。
【0015】
各ユーザの操作するアバターは同一の仮想空間内に存在する。端末10間で仮想空間のデータを同期させてもよいし、いずれかの端末10が仮想空間のデータを管理してもよい。
【0016】
図2を参照し、端末10の構成について説明する。
図2には、各ユーザの用いる端末10を示している。端末10は、アバター制御部11、VR空間管理部12、演算部13、描画部14、および通信部15を備える。端末10には、例えば、中央演算処理装置(CPU)、メモリ、ストレージ、通信装置、および入出力装置とを備える汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、CPUがメモリ上にロードされた所定のプログラムを実行することにより、端末10の各部が実現される。このプログラムは磁気ディスク、光ディスク、半導体メモリ等のコンピュータ読み取り可能な記録媒体に記録することも、ネットワークを介して配信することもできる。
【0017】
アバター制御部11は、コントローラ20などの機器からユーザの姿勢、位置、および操作情報を受信し、ユーザ自身のアバターの姿勢および動きを制御するための制御データを生成する。制御データは、ユーザの動きをモーションキャプチャしたモーションデータである。以下、ユーザ自身が操作するアバターと他のユーザが操作するアバターとを区別する際、ユーザ自身のアバターを「ユーザアバター」と称し、他のユーザのアバターを「他者アバター」と称することもある。
【0018】
VR空間管理部12は、仮想空間内に存在するオブジェクトのデータを管理する。オブジェクトのデータとしては、オブジェクトのモデルデータおよび位置データがある。アバターは、仮想空間内に存在するオブジェクトのひとつである。アバターに関連したデータとしては、例えばモデルデータと制御データがある。仮想空間のデータは、各端末10が事前に取得しておく。例えば、各端末10は、仮想空間のデータをデータサーバ(図示せず)から取得してもよいし、他の端末10から取得してもよい。
【0019】
VR空間管理部12は、アバター制御部11の生成した制御データをユーザアバターに適用してユーザアバターの姿勢と位置を更新するとともに、他のユーザの端末10から受信した制御データを他者アバターに適用する。また、VR空間管理部12は、仮想空間内で動くオブジェクトがあれば、その動きに応じてオブジェクトの姿勢と位置を更新する。仮想空間のデータは、端末10間で同期して管理されて、各端末10の管理する仮想空間は同一の仮想空間となる。いずれかの端末10が仮想空間を管理してもよいし、サーバ(図示せず)が仮想空間を管理してもよい。特定の装置で仮想空間を管理する場合、各端末10は、仮想空間のデータを当該装置から取得する。
【0020】
演算部13は、仮想空間内でオブジェクト(アバターを含む)同士が衝突したときに、衝突に応じた各オブジェクトの物理的な挙動を計算する。演算部13には、周知の物理演算エンジンを利用できる。
【0021】
VR空間管理部12は、計算結果に基づき、各オブジェクトの姿勢と位置を更新する。VR空間管理部12は、ユーザアバターについては、計算結果を適用後のユーザアバターの姿勢と位置の情報に加えて、計算結果を適用してない状態のユーザアバターの姿勢と位置の情報を管理しておく。もしくは、VR空間管理部12は、パラメータを変えて計算した計算結果を適用した状態のユーザアバターの姿勢と位置の情報を管理してもよいし、適用度合いを変えて計算結果を適用した状態のユーザアバターの姿勢と位置の情報を管理してもよい。
【0022】
描画部14は、仮想空間をユーザアバターの視点でレンダリングし、レンダリングした映像をHMD30に供給する。このとき、描画部14は、ユーザアバターについては、ユーザアバターの反応動作が所定内に抑えられるように、別に管理したユーザアバターの姿勢と位置の情報に差し替えて、ユーザアバターをレンダリングする。所定内とは、ユーザが違和感を抱かない程度内である。例えば、所定内であるか否かは、ユーザアバターの反応動作による姿勢とユーザの操作による姿勢との乖離度合いおよび反応動作の長さに基づいて決めることができる。
【0023】
HMD30に供給する映像においてユーザアバターの反応動作を所定内に抑える方法として、描画部14は、計算結果を適用していない状態のユーザアバターをレンダリングする。
【0024】
あるいは、演算部13は、描画部14がユーザアバターに適用する計算結果として、ユーザアバターに衝突したオブジェクトの重さなどのパラメータを変えたときのユーザアバターの挙動も計算しておき、描画部14は、パラメータを変えた計算結果を適用したユーザアバターをレンダリングしてもよい。ユーザアバターに衝突したオブジェクトを軽いものとして扱うことで、ユーザアバターの反応動作が抑えられるのでユーザが違和感を抱きにくくなる。
【0025】
あるいは、描画部14は、適用度合いを変えて計算結果を適用したユーザアバターをレンダリングしてもよい。例えば、重いオブジェクトがユーザアバターに衝突した場合、演算部13の計算結果を適用するとユーザアバターは大きくよろめく。この場合、描画部14は、ユーザアバターをレンダリングする際、ユーザアバターの反応動作がユーザが違和感を抱かない程度の小さな反応動作となるように計算結果の適用度合いを抑えて計算結果をユーザアバターに適用する。
【0026】
いずれの場合も、ユーザ以外の他人は、演算部13の通常の計算結果が適用されて大きく反応するユーザアバターを見る。HMD30に供給される映像では、演算部13の計算結果によるユーザアバターの反応動作が差し替えられてレンダリングされるので、他人が見るユーザアバターの反応動作とユーザ自身の見るまたは感じるユーザアバターの反応動作は異なる。
【0027】
なお、オブジェクトの衝突によってユーザアバターが所定以上の反応動作する場合に、ユーザアバターに計算結果を適用しなかったり、計算結果の適用度合いを抑えたり、パラメータを変えて計算した計算結果を適用したりしてもよい。つまり、描画部14は、計算結果を適用したユーザアバターの姿勢とユーザの操作に基づくユーザアバターの姿勢とが所定以上乖離するときに、ユーザアバターに適用する計算結果を異ならせてもよい。
【0028】
通信部15は、ユーザアバターの制御データおよびユーザの音声データを他のユーザの端末10との間で送受信する。より具体的には、通信部15は、アバター制御部11が生成したユーザアバターの制御データを他のユーザの端末10へ送信するとともに、他のユーザの端末10から他者アバターの制御データを受信する。また、通信部15は、HMD30のマイクで集音したユーザの音声データを他のユーザの端末10へ送信するとともに、他のユーザの端末10から他のユーザの音声データを受信する。
【0029】
なお、端末10のいずれかは演算部13を備えずに、他の端末10から演算部13の計算結果や計算結果を適用後の仮想空間のデータを受信してもよい。例えば、
図2の左側の端末10(以下、端末10Aとする)が演算部13を備え、右側の端末10(以下、端末10Bとする)は演算部13を備えない場合、端末10Bは、端末10Aから計算結果を適用後の仮想空間のデータを受信する。このとき、端末10Bの描画部14は、端末10BのユーザBのユーザアバターBについては、計算結果が適用されたユーザアバターBの姿勢および位置を計算結果が適用されていないユーザアバターBの姿勢および位置に差し替えて、仮想空間をレンダリングする。
【0030】
システム全体で上記の機能を実現できるならば、端末10の備える各部の処理を実行する装置は問わない。例えば、サーバ(図示せず)がVR空間管理部12と演算部13を備えてもよい。サーバは、各端末10からアバターの制御データを受信する。VR空間管理部12が仮想空間内のアバターに制御データを適用するとともに、演算部13が衝突処理を実行し、計算結果を仮想空間に適用する。各端末10は、サーバから計算結果を適用後の仮想空間のデータを受信する。このとき、各端末10の描画部14は、当該端末10を使用するユーザのユーザアバターについては、計算結果が適用されたユーザアバターの姿勢および位置を計算結果が適用されていないユーザアバターの姿勢および位置に差し替えて、仮想空間をレンダリングする。
【0031】
また、サーバが描画部14を備えてもよい。サーバは、端末10A,10Bのそれぞれからユーザの視線情報を受信する。描画部14は、端末10Aに対しては、ユーザアバターAに計算結果が適用されていない仮想空間をレンダリングした映像を送信し、端末10Bに対しては、ユーザアバターBに計算結果が適用されていない仮想空間をレンダリングした映像を提供する。この場合、端末10A,10Bは、ユーザA,Bのモーションをキャプチャする機能および受信した映像を表示する機能を有していればよい。
【0032】
図3のフローチャートを参照して、端末10の動作について説明する。以下では、ユーザアバターに計算結果を適用しない場合について説明するが、計算結果の適用度合いを抑えたり、パラメータを変えて計算した計算結果を適用したりする場合も同様である。
【0033】
ステップS11にて、アバター制御部11は、コントローラ20からユーザの姿勢などの情報を受信し、ユーザアバターの制御データを生成する。通信部15は、アバター制御部11の生成した制御データを他の端末10へ送信する。
【0034】
ステップS12にて、通信部15は、他の端末10から他者アバターの制御データを受信する。
【0035】
ステップS13にて、VR空間管理部12は、アバターに制御データを適用するとともに、動いているオブジェクトの姿勢と位置を更新する。
【0036】
ステップS14にて、演算部13は、オブジェクト同士の衝突処理を行う。例えば、演算部13は、衝突しているオブジェクトが存在するか否か判定し、衝突しているオブジェクトについて、衝突位置、衝突方向、および重なっている深度などの情報を求め、オブジェクトの質量、速度、および反発係数などの情報に基づき、衝突に応じた各オブジェクトの挙動を計算する。
【0037】
ステップS15にて、VR空間管理部12は、演算部13の計算結果を仮想空間に反映し、オブジェクトの姿勢と位置を更新する。例えば、アバター100Aがアバター100Bの頭部を叩く動作をしたとき、
図4に示すように、アバター100Aの腕とアバター100Bの頭部が衝突する。演算部13の計算結果をアバター100A,100Bのそれぞれに反映すると、
図5に示すように、アバター100Aの腕とアバター100Bの頭部がめり込まない状態となる。
【0038】
なお、VR空間管理部12は、計算結果を適用しない状態のユーザアバターの姿勢と位置を別に管理しておく。例えば、
図4のアバター100Aの姿勢と位置を別に管理しておく。VR空間管理部12は、計算結果の適用度合いを変えて適用したユーザアバターの姿勢と位置を別に管理してもよいし、パラメータを変えて計算した計算結果を適用したユーザアバターの姿勢と位置を別に管理してもよい。
【0039】
ステップS16にて、描画部14は、ユーザアバターに計算結果を適用しないで仮想空間をレンダリングし、レンダリングした映像をHMD30に供給する。
【0040】
例えば、アバター100Aに計算結果を適用するとアバター100Aの腕の位置は
図5に示した位置になる。ところが、ユーザはアバター100Aの腕を
図4に示した位置まで下げた操作をしているので、ユーザの操作とアバター100Aの姿勢が一致せずに、ユーザは違和感を抱いてしまう。
【0041】
そこで、本実施形態では、計算結果を適用しないユーザアバターの姿勢と位置も管理しておき、描画部14は、計算結果を適用したユーザアバターを計算結果を適用しないユーザアバターに差し替えて、仮想空間をレンダリングする。例えば、アバター100Aを操作するユーザには、
図6に示すように、アバター100Aを計算結果を適用していないアバター100A(
図4のアバター100A)に差し替えてレンダリングした映像を提示する。
図6では、アバター100Bには計算結果を適用している。他方、アバター100Bを操作するユーザには、
図7に示すように、アバター100Bを計算結果を適用していないアバター100B(
図4のアバター100B)に差し替えてレンダリングした映像を提示する。
図7では、アバター100Aには計算結果を適用している。なお、アバター100A,100Bを操作するユーザ以外のユーザには、
図5に示した、計算結果を適用したアバター100A,100Bをレンダリングした映像を提示する。
【0042】
アバターとアバター以外のオブジェクトとの衝突についても同様に処理する。例えば、
図8に示すように、アバター100にオブジェクト110が衝突したとする。演算部13の計算結果をアバター100とオブジェクト110のそれぞれに反映すると、
図9に示すように、アバター100の姿勢が大きく崩れた状態となる。
【0043】
アバター100を操作するユーザには、
図8に示した、計算結果を適用しないアバター100をレンダリングした映像を提供する。それ以外のユーザには、
図9に示した、計算結果を適用したアバター100をレンダリングした映像を提供する。
【0044】
以上説明したように、本実施形態によれば、演算部13がオブジェクトの衝突処理を行って各オブジェクトの物理的な挙動を計算し、VR空間管理部12が演算部13の計算結果を各オブジェクトに適用し、描画部14がユーザの装着するHMD30に供給する映像をレンダリングする際、ユーザの操作するユーザアバターについては、ユーザアバターの反応動作が所定の範囲内に抑えられるようにユーザアバターをレンダリングする。これにより、ユーザ以外の他者に対してはオブジェクトとの衝突に応じて反応動作をするユーザアバターを提示できるとともに、ユーザに対しては反応動作が抑えられたユーザアバターを提示できるので、ユーザにユーザアバターの動きに対する違和感を抱かせることなく、ユーザアバターへのオブジェクトの衝突にリアリティを持たせることができる。
【0045】
[第2の実施形態]
以下、第2の実施形態の表示制御端末を含む映像配信システムについて図面を用いて説明する。
【0046】
第2の実施形態の表示制御端末を含む映像配信システムは、配信者が仮想空間内の配信者アバターを操作し、仮想空間内の映像を視聴者に配信するシステムである。視聴者は映像を見るだけでなく、視聴者の操作する視聴者アバターを配信者アバターと同一の仮想空間内に参加させることもできる。
【0047】
図10の映像配信システムは、第2の実施形態の表示制御端末である配信者端末40と配信サーバ50を備える。配信者端末40と配信サーバ50は、ネットワークを介して通信可能に接続される。
【0048】
配信サーバ50は、配信者端末40から仮想空間をレンダリングした映像を受信し、受信した映像を視聴者端末60へ配信する。配信サーバ50は、受信した映像をリアルタイムで配信するライブ映像配信を行ってもよいし、受信した映像を記憶しておき、視聴者端末60からの求めに応じて映像を配信してもよい。
【0049】
視聴者端末60は、視聴者が映像を見るための端末である。配信される映像を見ることができる機器であれば、携帯端末、パーソナルコンピュータなどの機器を視聴者端末60として利用できる。視聴者端末60が仮想空間のデータを受信して仮想空間をレンダリングしてもよい。また、視聴者がライブ映像配信に参加する場合、視聴者端末60は、HMDおよびコントローラなどを接続し、VR機能を有する機器を利用する。例えば、視聴者端末60として第1の実施形態の端末10を利用し、配信者端末40との間で仮想空間のデータを同期させる。
【0050】
図11を参照し、配信者端末40の構成について説明する。配信者端末40は、アバター制御部11、VR空間管理部12、演算部13、描画部14、通信部15、配信映像描画部16、および配信部17を備える。配信者端末40は、第1の実施形態の端末10に、配信用の映像をレンダリングする配信映像描画部16と映像を配信する配信部17を備えたものである。
【0051】
アバター制御部11は、コントローラ20などの機器から配信者の姿勢、位置、および操作情報を受信し、配信者アバターの姿勢および動きを制御するための制御データを生成する。
【0052】
VR空間管理部12は、仮想空間内に存在するオブジェクトのデータを管理する。VR空間管理部12は、アバター制御部11の生成した制御データを配信者アバターに適用して配信者アバターの姿勢と位置を更新する。視聴者が参加している場合、VR空間管理部12は、参加している視聴者の視聴者端末60から受信した制御データを視聴者アバターのモデルデータに適用する。
【0053】
演算部13は、仮想空間内でオブジェクト同士が衝突したときに、衝突に応じたオブジェクトの物理的な挙動を計算する。VR空間管理部12は、配信者アバターについては、計算結果を適用後の配信者アバターの姿勢と位置の情報に加えて、計算結果を適用してない状態の配信者アバターの姿勢と位置の情報を管理しておく。第1の実施形態と同様に、VR空間管理部12は、パラメータを変えて計算した計算結果を適用した状態の配信者アバターの姿勢と位置の情報を管理してもよいし、適用度合いを変えて計算結果を適用した状態の配信者アバターの姿勢と位置の情報を管理してもよい。
【0054】
描画部14は、配信者アバターには計算結果を適用しないで、仮想空間を配信者アバターの視点でレンダリングし、レンダリングした映像をHMD30に供給する。描画部14は、第1の実施形態と同様に、配信者アバターについては、配信者アバターの反応動作が所定内に抑えられるように配信者アバターをレンダリングする。
【0055】
通信部15は、アバターの制御データおよび音声データを参加している視聴者の視聴者端末60との間で送受信する。また、通信部15は、視聴者端末60からコメント(文字情報)を受信してもよいし、ギフトやアイテムなどの情報を受信してもよい。配信者端末40は、視聴者端末60から受信したコメントについて、仮想空間内にコメントの内容を表示したオブジェクトを表示させてもよい。配信者端末40は、視聴者端末60から受信したギフトやアイテムに対応するオブジェクトを仮想空間内に出現させてもよい。これらのコメント、ギフト、およびアイテムに対応するオブジェクトが配信者アバターに衝突すると、配信者アバターは、演算部13の計算結果に基づいた反応動作をする。
【0056】
配信映像描画部16は、配信者アバターにも演算部13の計算結果を適用した仮想空間をレンダリングし、配信用の映像を生成する。配信映像描画部16は、配信者アバターの視点で仮想空間をレンダリングしてもよいし、仮想空間に配置した仮想カメラの視点で仮想空間をレンダリングしてもよい。配信用の映像に、配信者および参加者の音声データを付加してもよい。
【0057】
配信部17は、配信映像描画部16のレンダリングした配信用の映像を配信サーバ50へ送信する。配信サーバ50は、受信した映像を視聴者端末60のそれぞれに配信する。
【0058】
なお、配信映像描画部16および配信部17を配信サーバ50が備えてもよい。この場合、配信サーバ50は仮想空間のデータを保持し、配信者端末40との間で仮想空間のデータを同期する。配信サーバ50が仮想空間をレンダリングして視聴者端末60に配信する。配信サーバ50がVR空間管理部12と演算部13を備えて仮想空間のデータを管理し、配信者端末40が配信サーバ50から仮想空間のデータを取得してもよい。配信者端末40の描画部14は、配信者アバターを演算部13の計算結果が適用されていない配信者アバターに差し替えて仮想空間をレンダリングする。配信サーバ50が描画部14を備えて配信者のHMD30に供給する映像をレンダリングしてもよい。
【0059】
図12のフローチャートを参照して、配信者端末40の動作について説明する。以下では、配信者アバターに計算結果を適用しない場合について説明するが、計算結果の適用度合いを抑えたり、パラメータを変えて計算した計算結果を適用したりする場合も同様である。
【0060】
ステップS21にて、アバター制御部11は、コントローラ20から配信者の姿勢などの情報を受信し、配信者アバターの制御データを生成する。視聴者が参加している場合、通信部15は、アバター制御部11の生成した制御データを参加している視聴者の視聴者端末60へ送信する。
【0061】
ステップS22にて、VR空間管理部12は、アバターに制御データを適用するとともに、動いているオブジェクトの姿勢と位置を更新する。また、VR空間管理部12は、参加している視聴者の視聴者端末60から受信した制御データを視聴者アバターに適用する。
【0062】
ステップS23にて、演算部13は、オブジェクト同士の衝突処理を行う。
【0063】
ステップS24にて、VR空間管理部12は、演算部13の計算結果を仮想空間に反映し、オブジェクトの姿勢と位置を更新する。このとき、VR空間管理部12は、計算結果を適用しない状態の配信者アバターの姿勢と位置を別に管理しておく。
【0064】
ステップS25にて、配信映像描画部16は、演算部13の計算結果が適用された仮想空間をレンダリングし、配信映像を生成する。配信映像描画部16は、例えば
図9に示したように、アバターに計算結果が適用された仮想空間をレンダリングする。
【0065】
ステップS26にて、配信部17は、配信映像を送信する。
【0066】
ステップS27にて、描画部14は、配信者アバターに計算結果を適用しないで仮想空間をレンダリングし、レンダリングした映像をHMD30に供給する。描画部14は、例えば
図8に示したように、アバターに計算結果を適用していない仮想空間をレンダリングする。つまり、描画部14は、配信者アバターを計算結果を適用していないアバターに差し替えた仮想空間をレンダリングする。
【0067】
なお、配信者アバターに計算結果を適用しない場合、配信者は、配信者アバターにオブジェクトが衝突したことに気付かない可能性がある。そこで、配信者端末40は、配信者アバターとオブジェクトとの衝突を配信者に通知する機能を備えてもよい。
【0068】
例えば、配信者端末40は、配信者アバターとオブジェクトとが衝突したときに、配信者に音で通知する。配信者アバターとオブジェクトが衝突したインパクトの瞬間は、衝突に応じた音を配信者と視聴者の双方に聞こえるようにする。配信者アバターとオブジェクトが接触している間、配信者に対してのみ接触していることを通知する音を聞かせる。
図8,9で示したように、オブジェクト110がアバター100の頭に衝突した場合、衝突した瞬間では、オブジェクト110がアバター100に衝突した効果音を配信者と視聴者に聞かせる。その後、オブジェクト110がアバター100にくの頭に乗った状態の間、配信者のみにオブジェクト110がアバター100に衝突していることを示す音を聞かせ続ける。
【0069】
あるいは、配信者端末40は、視聴者の見ている映像を配信者に見せる。配信者端末40は、視聴者の見ている映像を仮想空間内のモニタに表示する。例えば、配信者アバターの視線の先にモニタを配置しておく。
【0070】
あるいは、描画部14は、反応動作を所定の範囲内に抑えたユーザアバターに加えて、計算結果を適用したユーザアバターもレンダリングする。このとき、描画部14は、計算結果を適用したユーザアバターを半透明にするなど、表示態様を変えて描画する。
【0071】
アバターとオブジェクトとの衝突を通知する構成を第1の実施形態に適用してもよい。
【0072】
以上説明したように、本実施形態によれば、演算部13がオブジェクトの衝突処理を行って各オブジェクトの物理的な挙動を計算し、VR空間管理部12が演算部13の計算結果を各オブジェクトに適用し、描画部14がユーザの装着するHMD30に供給する映像をレンダリングする際、配信者の操作する配信者アバターについては、配信者アバターの反応動作が所定内に抑えられるように配信者アバターをレンダリングする。これにより、視聴者に対してはオブジェクトとの衝突に応じて反応動作をする配信者アバターを提示できるとともに、配信者に対しては反応動作が抑えられた配信者アバターを提示できるので、配信者に配信者アバターの動きに対する違和感を抱かせることなく、配信者アバターへのオブジェクトの衝突にリアリティを持たせることができる。
本実施形態の端末10は、ヘッドマウントディスプレイを装着したユーザが操作するアバターを含む仮想空間を表示するための表示制御装置であり、ユーザの動きに応じたアバターの制御データを生成するアバター制御部11と、アバターとオブジェクトが衝突したときに、当該衝突に応じたアバターとオブジェクトの挙動を計算する演算部13と、演算部13の計算結果を仮想空間に適用するVR空間管理部12と、ヘッドマウントディスプレイに供給する映像として、衝突に応じた挙動が所定内に抑えられたアバターをレンダリングする描画部14を備える。