特許法第30条第2項適用 令和3年3月31日 https://www.youtube.com/watch?v=YhX7xJ0MkxI、https://speakerdeck.com/clusterinc/cluster-lodを通じて発表
以下、アバター出力装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、仮想的な三次元空間(以下、適宜、単に「三次元空間」と言う。)の中に滞在する2以上の各アバターの属性値に応じて、スコアを取得し、当該スコアに基づいて、アバターに関する処理を異なる処理とする情報システムについて説明する。なお、三次元空間は、例えば、VRであるが、AR等でも良い。
また、異なる処理とは、例えば、各アバターの表示に用いるデータの取得方法が異なること、各アバターの挙動を異なる挙動とすること、出力される音声の取得方法が異なること、出力される音声の属性値を異なる属性値とすること等である。
本実施の形態における情報システムは、例えば、三次元空間の中において、各ユーザの分身である2以上のアバターが集まり、ユーザ間において、コミュニケーションをすることを支援するシステムである。本情報システムは、ゲーム等にも応用可能である。本情報システムは、アバターを出力する機能を有すれば良く、応用範囲は問わない。
なお、以下、2以上のユーザのうちの一人のユーザに対応するアバターを自アバターと表現し、それ以外のユーザを他アバターと表現する。
さらに、本実施の形態において、三次元空間の中のアバター表示に関する処理を、アバター出力装置と端末装置とで、適切に分担する情報システムについて説明する。
図1は、本実施の形態における情報システムAの概念図である。情報システムAは、アバター出力装置1、および1または2以上の端末装置2を備える。
アバター出力装置1は、アバターの出力のための処理を行う装置である。アバター出力装置1は、ここでは、通常、いわゆるサーバであるが、スタンドアロンで動作する装置でも良い。アバター出力装置1は、例えば、クラウドサーバ、ASPサーバ等である。なお、アバター出力装置1の種類は問わない。また、アバター出力装置1がスタンドアロンの装置である場合、端末装置2は不要であり、後述する端末装置2の機能の一部は、アバター出力装置1が実行する。
端末装置2は、ユーザが使用する端末である。端末装置2は、自分に対応する自アバターと1以上の他アバターとを出力する端末である。一のアバターは、例えば、一の端末装置2に対応付く。また、一のアバターは、例えば、一のユーザに対応付く。他アバターは、他の端末装置2を使用する他のユーザに対応するアバターである。なお、一のユーザに対して2以上のアバターが対応付いていても良い。つまり、一のユーザが、2以上のアバターを切り替えて、2以上のアバターの中の一つのアバターを使用しても良い。端末装置2は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン等であり、その種類は問わない。なお、出力とは、通常、表示であるが、表示デバイスへの送信でも良い。
図2は、本実施の形態における情報システムAのブロック図である。情報システムAを構成するアバター出力装置1は、格納部11、受付部12、処理部13、および出力部14を備える。格納部11は、ワールド格納部111、およびアバター格納部112を備える。受付部12は、アバター受信部121を備える。処理部13は、スコア取得部131、およびアバター処理部132を備える。出力部14は、位置情報送信部141、および音声出力部142を備える。
端末装置2は、端末格納部21、端末受付部22、端末処理部23、端末送信部24、端末受信部25、および端末出力部26を備える。
アバター出力装置1を構成する格納部11には、各種の情報が格納される。各種の情報とは、例えば、後述するワールド情報、後述するアバター情報である。
ワールド格納部111には、ワールド情報が格納される。ワールド情報は、ワールドを構成するための情報である。ワールド情報の構造は問わない。ワールドは、通常、仮想的な三次元空間である。なお、ワールドは、場と言っても良い。
アバター格納部112には、1または2以上のアバター情報が格納される。アバター情報は、出力されるアバターを構成するための情報を含む。アバター情報は、アバターごとの情報である。アバター情報は、アバター識別子に対応付いている。アバター識別子に対応付いていることは、アバター識別子を有することでも良い。アバター識別子は、例えば、アバターのIDであるが、アバターに対応するユーザのID、端末装置2のID等でも良い。
アバター情報は、モデル情報を有する。モデル情報は、アバターの表示を構成するための情報である。モデル情報は、例えば、メッシュ情報、ボーン情報、マテリアル情報を有する。モデル情報は、例えば、glTF ?(GL Transmission Format)?のデータ構造を有する。ただし、モデル情報のデータ構造は、VRM、OBJ、FBX、STL、GLB、COLLADA、等でも良く、種類を問わない。
ここでの各アバター情報は、データサイズの異なる2種類以上のモデル情報を有することは好適である。アバター情報は、例えば、第一モデル情報と第二モデル情報とを有する。ここで、「第一モデル情報のデータサイズ>第二モデル情報のデータサイズ」である。第二モデル情報は、例えば、第一モデル情報のデータサイズを圧縮したモデル情報である。なお、圧縮のアルゴリズムは問わない。第二モデル情報は、例えば、第一モデル情報が有するメッシュ情報のうち、2以上のメッシュ情報から一のメッシュ情報を構成し(メッシュを統合し)、メッシュ情報を削減したモデル情報である。また、第二モデル情報は、例えば、第一モデル情報が有する色情報の階調を小さくすることにより、データサイズを削減したモデル情報である。第二モデル情報は、例えば、第一モデル情報が有するテクスチャのアトラス化により、データサイズを小さくしたモデル情報である。
なお、第一モデル情報は、例えば、アバター識別子に対応付けて、端末装置2から送信された情報である。なお、アバター識別子は、端末識別子でも良い。また、第一モデル情報は、例えば、端末装置2から送信された元情報を用いて取得された情報でも良い。元情報は、モデル情報でも良いし、モデル情報を特定する識別子でも良い。
また、アバター情報は、モデル情報の他、音声情報や1以上の属性値を有することは好適である。
音声情報は、アバターが発する音声の情報である。音声情報のデータ構造やデータ形式は問わない。アバター情報は、データサイズまたは属性値が異なる2種類以上の音声情報を有することは好適である。アバター情報は、例えば、第一音声情報と第二音声情報とを有する。例えば、「第一音声情報のデータサイズ>第二音声情報のデータサイズ」である。また、例えば、「第一音声情報の属性値であるボリューム>第二音声情報の属性値であるボリューム」である。また、例えば、「第一音声情報の属性値であるサンプリング周波数>第二音声情報の属性値であるサンプリング周波数」である。また、例えば、「第一音声情報の属性値である高さ(周波数)>第二音声情報の属性値である高さ(周波数)」である。
1以上の各属性値は、アバターの属性値である。属性値は、例えば、動的属性値、または静的属性値である。
動的属性値は、動的に変化し得る属性値である。動的属性値は、例えば、位置情報、向き情報である。
位置情報は、アバターの場における位置を特定する情報である。位置情報は、例えば、ユーザが入力した位置情報である。ユーザが入力した位置情報は、通常、アバターを動作させるユーザの操作により決定される情報である。位置情報は、場(ワールドと言っても良い)の中での絶対的な位置を特定する情報であり、例えば、三次元座標(x、y、z)または二次元座標(x、y)である。
向き情報は、アバターの場における向きを特定する情報である。向き情報は、例えば、基準となる方向に対する角度である。基準となる方向は、場の中での絶対的な向きを特定する情報である。向き情報は、例えば、場の中の正面を向いているか否かを示す情報である。
静的属性値は、動的には変化しない属性値である。静的属性値は、例えば、役割属性値、由来属性値、端末属性値である。
役割属性値は、アバターの役割に関する情報である。役割属性値は、例えば、「主催者」「司会者」「観客」である。なお、「主催者」は、仮想的な三次元空間上で、アバターを用いたイベントを開催する場合の主催者である。「司会者」は、仮想的な三次元空間上で、アバターを用いたイベントを開催する場合の司会者である。「観客」は、仮想的な三次元空間上で、アバターを用いたイベントを開催する場合の観客である。
由来属性値は、アバターの由来に関する情報である。由来属性値は、例えば、ユーザが作成したアバター(UGC)か否かを示す情報である。
端末属性値は、アバターに対応する端末装置2に関する情報である。端末属性値は、例えば、端末装置2の種類を特定する端末種類識別子(例えば、「PC」「スマートフォン」「タブレット」)、端末装置2のプロセッサの能力を特定する情報(例えば、能力のレベル、動作周波数(GHz))、端末装置2の画面サイズ、アスペクト比である。
受付部12は、各種の情報や指示を受け付ける。なお、ここでの受け付けは、通常、端末装置2からの受信であるが、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付け等でも良い。
また、各種の情報や指示は、例えば、アバター情報、音声情報、リクエストである。受け付けられるアバター情報は、アバター格納部112のアバター情報と同じ構造でなくても良い。受け付けられるアバター情報は、例えば、第一モデル情報と位置情報とを有する。
リクエストは、アバターの送信の要求である。リクエストは、例えば、他アバターの表示に関するリクエストであり、他アバターを示すアバター識別子とモデル情報の組を、1組以上、有する。リクエストは、例えば、ワールド情報の送信指示を有しても良い。
アバター受信部121は、ユーザが使用する2以上の各端末装置2から第一モデル情報または元情報を受信する。元情報は、第一モデル情報の元になる情報である。元情報は、例えば、モデル情報であるが、第一モデル情報の識別子でも良い。
アバター受信部121は、2以上の各端末装置2から、各端末装置2に対応するアバターの位置を特定する位置情報をも受信することは好適である。なお、アバター受信部121は、2以上の各端末装置2から第一モデル情報または元情報、位置情報、およびアバター識別子を対応付けて受信することは好適である。ただし、第一モデル情報または元情報、および位置情報は対応付けば良く、別々に受信されても良い。なお、アバター識別子は、アバターを識別する情報であり、例えば、ID、ユーザ名である。また、アバター受信部121が端末装置2から第一モデル情報または元情報を受信したことに応じて、ユニークなアバター識別子が取得されても良い。
アバター受信部121は、音声情報、位置情報をも受信することは好適である。アバター受信部121は、音声情報を、アバター識別子を対応付けて受信することは好適である。
アバター受信部121は、2以上の各端末装置2から、第一モデル情報と第二モデル情報とを有するアバター情報を受信しても良い。かかる場合、端末装置2が、第一モデル情報に基づいて、第二モデル情報を取得する処理を行っても良い。
アバター受信部121は、2以上の各端末装置2から、各端末装置2で取得された1以上の他アバターのスコアまたは判定結果を、アバター識別子に対応付けて受信することは好適である。アバター受信部121は、各端末装置2ごとに、自アバターのスコアまたは判定結果をも受信しても良い。なお、判定結果とは、アバターのモデル情報の種類を決定するための情報である。判定結果は、例えば、スコアに基づいて決定された情報である。判定結果は、例えば、モデル情報の種類を特定する種類識別子である。判定結果は、例えば、第一モデル情報に対応する「第一」、第二モデル情報に対応する「第二」である。
なお、他アバターは、自アバターでは無いアバターである。自アバターは、端末装置2に対応するアバターである。アバター受信部121が自アバターのスコアを受信しない場合、自アバターのスコアは、通常、デフォルト値(例えば、最高点)である。なお、端末装置2にとっての他アバターのスコアは、端末装置2にとっての他アバターの重要度を特定する情報である。スコアは、例えば、0~100、10段階評価等であるが、その範囲等は問わない。また、判定結果は、スコアに基づく情報であるので、スコアである、と考えても良い。
処理部13は、各種の処理を行う。各種の処理は、例えば、スコア取得部131、アバター処理部132が行う処理である。
スコア取得部131は、2以上の各アバターのスコアを取得する。スコアは、アバターに対応する1以上の属性値を用いて得られる情報である。スコア取得部131は、通常、2以上の各端末装置2ごとに、2以上の各アバターのスコアを取得する。つまり、端末装置2によって、同じ他アバターに対するスコアが異なることは好適である。
スコア取得部131は、例えば、2以上の各アバターに対応する1以上の属性値を用いて、2以上の各アバターのスコアを取得する。
スコア取得部131は、例えば、演算式、対応表、または機械学習により、スコアを取得する。つまり、スコア取得部131は、例えば、1以上の各属性値を演算式に代入し、当該演算式を実行し、スコアを取得する。スコア取得部131は、例えば、1以上の各属性値を要素とするベクトルまたはスカラーと、最も近似するベクトルまたはスカラーを対応表から検出し、当該最も近似するベクトルまたはスカラーと対になるスコアを対応表から取得する。なお、対応表は、ベクトルまたはスカラーとスコアとの組である2以上の対応情報を有する表である。スコア取得部131は、例えば、学習器と、1以上の各属性値とを、機械学習の予測処理のモジュールに与え、当該モジュールを実行し、スコアを取得する。なお、学習器は、1以上の各属性値とスコアとを有する2以上の教師データを、機械学習の学習処理のモジュールに与え、当該モジュールを実行して、取得された情報である。なお、機械学習のアルゴリズムは、深層学習、ランダムフォレスト、SVR、SVM、決定木等、問わない。機械学習のモジュールとして、TensorFlowのライブラリ、TinySVM、R言語のランダムフォレストのライブラリ等が使用可能である。
スコア取得部131が自らスコアを算出したり、読み出したりしない場合、スコア取得部131は、例えば、端末装置2が取得した2以上の各アバターのスコアを当該端末装置2から受信する。つまり、スコア取得部131は、自らスコアを取得しても良いし、端末装置2が取得したスコアを受信しても良い。アバターのスコアを取得する場合に使用される1以上の属性値は、1以上の動的属性値を含むことは好適である。アバターのスコアを取得する場合に使用される1以上の属性値は、1以上の静的属性値を含んでも良い。アバターのスコアを取得する場合に使用される1以上の属性値は、1以上の動的属性値と1以上の静的属性値とを含むことは好適である。
スコア取得部131は、例えば、以下のようなスコア取得処理を行う。つまり、スコア取得部131は、2以上の各端末装置2から受信された1以上の属性値と、各アバターの位置情報とを用いて、2以上の各端末装置2ごとに、1以上の他アバターのスコアを取得する。なお、各端末装置2から受信された1以上の属性値は、例えば、自アバターの位置情報、自アバターの向き情報を有する。
具体的には、スコア取得部131は、例えば、端末装置2から受信された自アバターの位置情報、端末装置2から受信された自アバターの向き情報、カメラ属性値、1以上の各他アバターの位置情報のうちの2以上の情報を用いて、1以上の他アバターの動的属性値を取得する。なお、カメラ属性値は、例えば、カメラの位置を特定するカメラ位置情報、カメラの向きを特定するカメラ向き情報、カメラの画角を特定する画角情報である。カメラ属性値は、例えば、格納部11に格納されている。また、画角情報は、通常、カメラの水平方向の角度の範囲、カメラの垂直方向の角度の範囲である。なお、ここでのカメラは、仮想的な三次元空間上に設置されたカメラである。
スコア取得部131は、例えば、自アバターの位置情報と他アバターの位置情報とを用いて、自アバターと他アバターとの距離を取得する。また、スコア取得部131は、例えば、自アバターの位置情報と自アバターの向き情報と他アバターの位置情報とを用いて、他アバターが自アバターの視野の中に入っているか否かを示す動的属性値(視野内属性値と言っても良い。)を取得する。また、スコア取得部131は、例えば、カメラ位置情報とカメラ向き情報と画角情報と他アバターの位置情報とを用いて、他アバターがカメラによる撮影の範囲に入っているか否かを示す動的属性値(撮影範囲属性値と言っても良い。)を取得する。
そして、スコア取得部131は、例えば、他アバターに対して、距離が近いほど大きな値のスコアを取得する。また、スコア取得部131は、例えば、視野の中に入っている場合に、視野の中に入っていない場合と比較して、大きな値のスコアを取得する。また、スコア取得部131は、例えば、カメラによる撮影の範囲に入っている場合に、撮影の範囲に入っていない場合と比較して、大きな値のスコアを取得する。
さらに具体的には、スコア取得部131は、例えば、他アバターに対して、距離をパラメータとする減少関数により、スコアを取得する。スコア取得部131は、例えば、視野内属性値および撮影範囲属性値に対応する演算式を格納部11から取得し、当該演算式に距離を代入し、当該演算式を実行し、スコアを取得する。なお、演算式は、例えば、距離をパラメータとする減少関数である。
スコア取得部131は、例えば、距離、視野内属性値、および撮影範囲属性値に対応するスコアを対応表から取得する。かかる場合、対応表は、例えば、距離の範囲、視野内属性値、および撮影範囲属性値の組と、スコアとの対応を示す2以上の対応情報を有する表である。
また、スコア取得部131は、例えば、1以上の静的属性値を用いて、以下のようなスコア取得処理を行っても良い。なお、1以上の静的属性値は、例えば、アバターの役割に関する属性値、アバターの由来に関する属性値のいずれかを含む。
スコア取得部131は、例えば、他アバターの役割が「主催者」または「司会者」である場合、他アバターの役割が「観客」である場合と比較して、高いスコアを取得する。スコア取得部131は、例えば、例えば、他アバターがUGCである場合、UGCでない場合と比較して、高いスコアを取得する。
スコア取得部131は、例えば、視野内属性値または撮影範囲属性値のみに基づいて、スコアを取得しても良い。スコア取得部131がスコアを取得する場合、当該スコア取得のアルゴリズムも問わない。
アバター処理部132は、2以上の各アバターのアバター情報を用いて、スコア取得部131が取得したスコアに応じた2以上の各アバターを出力する。ここで、出力とは、通常、端末装置2への送信であるが、ディスプレイへの表示、プロジェクターを用いた投影、音出力、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念であっても良い。また、アバターの出力とは、モデル情報の送信でも良いし、モデル識別子の送信でも良い。端末装置2でアバターが出力されれば良い。
スコアに応じたアバターを出力することは、例えば、スコアに応じたアバターの表示制御をすること、スコアに応じたアバターの音声出力制御をすることである。
表示制御は、アバターの表示に関する処理である。スコアに応じた表示制御は、例えば、モデル選択処理を含む処理、アバターの変形処理を含む処理、挙動選択処理を含む処理である。
モデル選択処理は、一のアバターの表示に用いるモデル情報として、スコアに応じて異なる種類のモデル情報を選択する処理である。異なる種類のモデル情報は、例えば、2または3以上の種類のモデル情報である。異なる種類のモデル情報は、例えば、データサイズの異なるモデル情報である。異なる種類のモデル情報は、例えば、第一モデル情報、第二モデル情報、・・・、第N二モデル情報(Nは2または3以上の自然数)である。「第一モデル情報のデータサイズ>第二モデル情報のデータサイズ>・・・>第N二モデル情報のデータサイズ」である。第二モデル情報は、例えば、第一モデル情報に対して、データを削減されたモデル情報である。異なる種類のモデル情報は、例えば、データ構造が異なる(例えば、glTF、VRM、OBJ等)モデル情報である。異なる種類のモデル情報は、例えば、色が異なるモデル情報、使用する色数が異なるモデル情報である。
なお、第二モデル情報は、例えば、第一モデル情報が有するN(Nは2以上の自然数)のメッシュ情報を用いて取得された、Nよりも少ないM(Mは1以上の自然数)のメッシュ情報を有するモデル情報である。
アバターの変形処理は、例えば、アバターの形状を変形する処理(例えば、拡大する処理、縮小する処理、痩せさせる処理(横方向の縮小処理)、太らせる処理(横方向の拡大処理)等)である。スコアに応じたアバターの変形処理は、スコアに応じて、変形処理を行ったり、行わなかったりすることでも良い。スコアに応じたアバターの変形処理は、スコアに応じて、異なる変形処理を行うことでも良い。
挙動選択処理は、一のアバターの挙動が、スコアに応じて異なる挙動とする処理である。異なる挙動は、例えば、「動きが有る」または「動きが無い」のいずれかである。異なる挙動は、例えば、アバターの書き換え頻度の差異である。なお、書き換え頻度が少ないアバターは、書き換え頻度が多いアバターと比較して、動きがスムーズではない。異なる挙動は、例えば、「ユーザの指示通り動作する」「ユーザの指示のうちの一部の指示のみに対する動作をする」である。異なる挙動は、例えば、「標準の動作をする」「標準の動作から一部の動作を除いた動作をする」である。
スコアに応じた音声出力制御は、例えば、一のアバターの音声を出力する際に、スコアに応じて音声出力したり、音声出力しなかったりすることである。スコアに応じた音声出力制御は、例えば、スコアに応じて、一のアバターの音声の属性値を異なる属性値として、音声出力することである。異なる属性値とは、例えば、音量、サンプリング周波数、周波数である。
アバター処理部132は、例えば、スコアがスコア条件を満たすアバターとスコアがスコア条件を満たさないアバターとで、アバターの出力方法が異なるように、アバターを出力する。ここでの出力は、通常、端末装置2への送信であるが、表示等でも良い。また、アバターの出力方法とは、通常、アバターの端末装置2での表示や音声出力に関する。
スコア条件は、スコアに関する条件である。スコア条件は、例えば、アバターのモデル情報のデータサイズを小さくする条件である。スコア条件は、例えば、「スコアが閾値以上」「スコアが閾値より大きい」「スコアが上位N(Nは自然数)以内」「スコアが上位N(Nは自然数)より高い」である。スコア条件は、例えば、「スコアが閾値以下」「スコアが閾値より小さい」「スコアが上位N(Nは自然数)以外」「スコアが上位N(Nは自然数)より低い」である。
アバター処理部132は、スコアがスコア条件を満たすアバターに対して、第一モデル情報に対してデータサイズの縮減を行った第二モデル情報を用いて、アバターを出力し、スコアがスコア条件を満たさないアバターに対して、第一モデル情報を用いて、アバターを出力する。なお、アバター処理部132は、例えば、第一モデル情報または元情報を用いて、第二モデル情報を取得する。元情報は、第一モデル情報の元になる情報である。元情報は、例えば、モデル情報であるが、第一モデル情報の識別子でも良い。
アバター処理部132は、例えば、スコアがスコア条件を満たすアバターとスコアがスコア条件を満たさないアバターとで、アバターの動作の制御方法が異なるように、アバターを動作させる。動作の制御方法が異なることは、上述した異なる挙動である。
アバター処理部132は、スコアがスコア条件を満たすアバターとスコアがスコア条件を満たさないアバターとで、アバターの音声出力方法が異なるように、音声情報を用いて、アバターの音声を出力する。音声出力方法が異なることは、上述したスコアに応じた音声出力制御である。
アバター処理部132がアバターを出力する場合、例えば、2以上の各端末装置2ごとに、2以上のアバターを、2以上の各端末装置2に送信する。
アバター処理部132がアバターは、端末装置2で表示されるアバターの情報と完全に同一でなくても良い。アバター処理部132が出力するアバターは、端末装置2で表示されるアバターを構成するための情報でも良い。アバターを出力することは、アバターを含む画像を出力することでも良い。
アバター処理部132は、例えば、第一モデル情報または元情報を用いて、第二モデル情報を取得する。かかる処理は圧縮処理という。アバター処理部132は、例えば、第一モデル情報または元情報が有する2以上のメッシュ情報から一のメッシュ情報を構成し、メッシュ情報の数を削減した第二モデル情報を取得する。
また、アバター処理部132は、例えば、第一モデル情報または元情報が有する色情報の階調を小さくすることにより、データサイズを削減した第二モデル情報を取得する。アバター処理部132は、例えば、第一モデル情報または元情報が有するテクスチャのアトラス化により、データサイズを小さくした第二モデル情報を取得する。
アバター処理部132は、第一モデル情報が有するアバターの一部の箇所(例えば、ボディー部、顔部以外の箇所)の情報のみを圧縮し、第二モデル情報を取得することは好適である。
出力部14は、各種の情報を出力する。各種の情報は、例えば、位置情報、音声情報である。また、ここで、出力とは、通常、端末装置2への送信であるが、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念であっても良い。
出力部14は、例えば、ワールド格納部111のワールド情報を2以上の各端末装置2に送信する。
出力部14は、受信されたリクエストがワールド情報の送信指示を含む場合、ワールド情報を、リクエストを送信してきた端末装置2に送信する。
なお、出力部14が行う上記の処理は、アバター処理部132が行っても良い。
位置情報送信部141は、2以上の各端末装置2に対応する2以上の各アバターの位置情報のうち、1以上の他アバターの位置情報を、アバターを識別するアバター識別子に対応付けて、2以上の各端末装置に送信する。1以上の他アバターの位置情報は、例えば、各他アバターに対応する端末装置2が送信した情報である。1以上の他アバターの位置情報は、各端末装置2における自アバターの位置情報を含まなくても良い。位置情報送信部141は、2以上の各端末装置2に、当該端末装置2に対応する自アバターの位置情報を送信しなくても良いし、自アバターの位置情報も送信しても良い。
音声出力部142は、一の端末装置2に対応するアバターのスコアに応じた異なる音声情報を、少なくとも一の端末装置2以外の1以上の端末装置2に送信する。
音声出力部142は、例えば、第一音声情報、および第二音声情報を出力する。第一音声情報および第二音声情報の出力とは、第一音声情報を識別する識別子および第二音声情報を識別する識別子の出力でも良い。
音声出力部142は、アバターのスコアに応じた種類の音声情報を出力することは好適である。ここで、出力とは、通常、端末装置2への送信であるが、音出力、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念であっても良い。
音声出力部142が出力する第一音声情報、および第二音声情報は、端末装置2で出力される音声と同じ情報でなくても良い。
端末装置2を構成する端末格納部21には、1以上の端末属性値が格納される。端末属性値は、端末装置2の属性値である。端末装置2の属性値は、例えば、端末装置2の端末種類識別子、端末装置2の画面サイズ、アスペクト比である。端末格納部21には、位置情報、第一モデル情報または元情報が格納されても良い。
端末格納部21には、通常、端末装置2に対応するアバターの位置情報を含む1以上の端末属性値が格納される。
端末受付部22は、各種の指示や情報を受け付ける。各種の指示や情報は、例えば、位置情報、第一モデル情報、第一モデル情報を識別する識別子、アバター識別子、1以上の属性値、初期入力である。1以上の属性値は、例えば、役割属性値、由来属性値、端末属性値である。
なお、初期入力は、2以上のアバターを含む三次元空間を端末装置2に出力する前の入力であり、アバターの位置情報を含む。初期入力は、1または2以上のスコア取得元属性値を含む。初期入力は、アバターのモデル情報または元情報を含むことは好適である。初期入力は、アバター識別子を含んでも良い。初期入力に含まれるモデル情報は、第一モデル情報であることは好適である。スコア取得元属性値は、スコアを取得する元になる属性値であり、位置情報を含む。スコア取得元属性値は、通常、向き情報を含む。
ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
端末処理部23は、各種の処理を行う。各種の処理は、例えば、後述するスコア取得処理、後述するアバター構成処理である。なお、スコアの取得をアバター出力装置1が行う場合、端末処理部23は、スコア取得処理を行わない。
端末処理部23は、例えば、1以上の他アバターの位置情報と1以上の端末属性値とを用いて、1以上の他アバターのスコアを取得する。
端末処理部23は、例えば、1以上の他の端末装置2における1以上の他アバターの位置情報と、自アバターの位置情報とを用いて、1以上の他アバターのスコアを取得する。端末処理部23が行うスコア取得処理は、上述したスコア取得部131が行うスコア取得処理と同じでも良い。
具体的には、端末処理部23は、例えば、自アバターの位置情報、自アバターの向き情報、カメラ位置情報、カメラ向き情報、カメラの画角情報、1以上の各他アバターの位置情報のうちの2以上の情報を用いて、1以上の他アバターの動的属性値を取得する。
端末処理部23は、例えば、自アバターの位置情報と他アバターの位置情報とを用いて、自アバターと他アバターとの距離を取得する。また、端末処理部23は、例えば、自アバターの位置情報と自アバターの向き情報と他アバターの位置情報とを用いて、他アバターが自アバターの視野の中に入っているか否かを示す動的属性値(視野内属性値と言っても良い。)を取得する。
端末処理部23は、属性値を取得する対象の他アバターの位置情報と属性値を取得する対象ではない他の他アバターの位置情報と自アバターの位置情報と自アバターの向き情報とを用いて、属性値を取得する対象の他アバターが自アバターの視野の中に入っているか否かを示す動的属性値を取得しても良い。つまり、例えば、自アバターの位置情報と自アバターの向き情報を用いて、属性値を取得する対象の他アバターの位置情報が、自アバターの視野の中に入る位置を示す情報であっても、属性値を取得する対象ではない他の他アバターの位置情報が、自アバターと属性値を取得する対象の他アバターとの間に入る位置を示す情報である場合(自アバターと属性値を取得する対象の他アバターとの間に属性値を取得する対象ではない他の他アバターが存在し、自アバターから属性値を取得する対象の他アバターが見えない場合)には、視野内属性値が「他アバターが自アバターの視野の中に入っていないことを示す情報」となる。
なお、端末処理部23は、属性値を取得する対象の他アバターや属性値を取得する対象ではない他の他アバターのサイズ情報と、自アバターの視野角の情報をも用いて、属性値を取得する対象の他アバターが自アバターの視野の中に入っているか否かを示す動的属性値を取得しても良い。
端末処理部23は、属性値を取得する対象である他アバターの位置情報とワールドを構成するオブジェクトの位置情報と自アバターの位置情報と自アバターの向き情報とを用いて、属性値を取得する対象の他アバターが自アバターの視野の中に入っているか否かを示す動的属性値を取得しても良い。つまり、例えば、自アバターの位置情報と自アバターの向き情報を用いて、属性値を取得する対象である他アバターの位置情報が、自アバターの視野の中に入る位置を示す情報であっても、ワールドを構成するオブジェクトの位置情報が、自アバターと属性値を取得する対象の他アバターとの間に入る位置を示す情報である場合(自アバターと属性値を取得する対象の他アバターとの間にワールドを構成するオブジェクトが存在し、自アバターから属性値を取得する対象の他アバターが見えない場合)には、視野内属性値が「他アバターが自アバターの視野の中に入っていないことを示す情報」となる。
なお、端末処理部23は、属性値を取得する対象の他アバターやワールドを構成するオブジェクトのサイズ情報と、自アバターの視野角の情報をも用いて、属性値を取得する対象の他アバターが自アバターの視野の中に入っているか否かを示す動的属性値を取得しても良い。
また、端末処理部23は、属性値を取得する対象の他アバターやワールドを構成するオブジェクトのサイズ情報と、自アバターの視野角の情報をも用いて、属性値を取得する対象の他アバターが自アバターの視野の中に入っている割合に対応する視野内属性値、または全部が視野の中に入っているか一部のみ視野の中に入っているか全く視野の中に入っていないかを特定する視野内属性値を取得しても良い。つまり、視野内属性値は、視野の中に入っているか否かの2値のうちのいずれかでも良いし、3以上のうちの一の値でも良い。
また、端末処理部23は、例えば、カメラ位置情報とカメラ向き情報と画角情報他アバターの位置情報とを用いて、他アバターがカメラによる撮影の範囲に入っているか否かを示す動的属性値(撮影範囲属性値と言っても良い。)を取得する。
そして、端末処理部23は、例えば、他アバターに対して、三次元空間内における自アバターとの距離が近いほど大きな値のスコアを取得する。また、端末処理部23は、例えば、他アバターが自アバターの視野の中に入っている場合に、視野の中に入っていない場合と比較して、大きな値のスコアを取得する。また、端末処理部23は、例えば、カメラによる撮影の範囲に入っている場合に、撮影の範囲に入っていない場合と比較して、大きな値のスコアを取得する。
端末処理部23は、例えば、他アバターに対して、カメラとの距離が近いほど、大きな値のスコアを取得する。
さらに具体的には、端末処理部23は、例えば、他アバターに対して、距離をパラメータとする減少関数により、スコアを取得する。スコア取得部131は、例えば、視野内属性値および撮影範囲属性値に対応する演算式を格納部11から取得し、当該演算式に距離を代入し、当該演算式を実行し、スコアを取得する。なお、演算式は、例えば、距離をパラメータとする減少関数である。
端末処理部23は、例えば、距離、視野内属性値、および撮影範囲属性値に対応するスコアを対応表から取得する。かかる場合、対応表は、例えば、距離の範囲、視野内属性値、および撮影範囲属性値の組と、スコアとの対応を示す2以上の対応情報を有する表である。
なお、端末処理部23は、通常、視野内属性値が自アバターの視野の中に入っている他アバターのスコアは、視野の中に入っている他アバターのスコアより大きなスコアを取得する。また、端末処理部23は、通常、視野内属性値が示す視野の中に入っている割合が大きいほど、大きなスコアを取得する。
また、端末処理部23は、例えば、他アバターの1以上の静的属性値を用いて、以下のような他アバターのスコア取得処理を行っても良い。
1以上の静的属性値は、例えば、他アバターの役割に関する属性値、他アバターの由来に関する属性値のいずれかを含む。端末処理部23は、例えば、他アバターの役割が「主催者」または「司会者」である場合、他アバターの役割が「観客」である場合と比較して、高いスコアを取得する。端末処理部23は、例えば、例えば、他アバターがUGCである場合、UGCでない場合と比較して、高いスコアを取得する。
また、端末処理部23は、例えば、1以上の各他アバターのスコアを用いて、各他アバターに対応する判定結果を取得しても良い。端末処理部23は、スコアの幅と判定結果との対応を示す2以上の対応情報を有する対応表を参照し、スコアと対になる判定結果を、他アバターごとに取得する。端末処理部23は、例えば、スコアをパラメータとする演算式にスコアを代入し、当該演算式を実行し、判定結果を取得する。なお、判定結果は、他アバターを出力する際に使用するアバターを、2以上のアバター(例えば、第一アバターと第二アバター)のうちのいずれのアバターとするかの判定の結果である。
また、端末処理部23は、例えば、アバター出力装置1から、1以上の他アバターに対するモデル情報を取得し、当該モデル情報を用いて、表示されるアバターを構成するアバター構成処理を行う。なお、アバター構成処理は、公知技術である。
また、端末処理部23は、受信されたワールド情報を用いて、ワールドを構成し、当該ワールドの中に2以上のアバターを配置し、アバターが配置された三次元空間を構成する。なお、端末処理部23は、2以上の各アバターを、対応する位置情報で特定される位置に配置する。
端末送信部24は、各種の情報をアバター出力装置1に送信する。端末送信部24は、例えば、端末装置2に対応する自アバターの位置情報をアバター出力装置1に送信する。端末送信部24は、例えば、端末格納部21の1以上の属性値をアバター出力装置1に送信する。1以上の属性値は、例えば、自アバターの位置情報、自アバターの向き情報、端末属性値である。
端末送信部24は、端末装置2の端末識別子に対応付けて、1以上の他アバターのスコアまたは判定結果をアバター出力装置1に送信する。なお、ここで送信されるスコアまたは判定結果は、端末処理部23が取得した情報である。また、スコアまたは判定結果は、他アバターのアバター識別子に対応付いている。なお、スコアまの取得をアバター出力装置1が行う場合、端末送信部24は、スコアをアバター出力装置1に送信しない。判定結果の取得をアバター出力装置1が行う場合、端末送信部24は、判定結果をアバター出力装置1に送信しない。
端末受信部25は、アバター出力装置1から1以上の他の端末装置2に対応する他アバターの位置情報を受信する。端末受信部25は、例えば、他アバターの1以上の属性値をアバター出力装置1から受信する。
端末受信部25は、アバター出力装置1から他アバターのモデル情報であり、スコアまたは判定結果に応じた異なるモデル情報を受信する。
端末受信部25は、各アバターに対して、2種類以上のモデル情報を受信しても良い。かかる場合、端末処理部23は、他アバターのスコアまたは判定結果に応じて、他アバターを表示する際に使用するモデル情報を決定する。
端末受信部25は、アバター出力装置1からワールド情報をも受信することは好適である。
端末出力部26は、1以上の各モデル情報を用いて構成された1以上の他アバターを表示する。なお、表示は、他の表示媒体への送信でも良い。また、モデル情報は、2種類以上のモデル情報のうちの一のモデル情報である。
端末出力部26は、自アバターをも表示することは好適である。
端末出力部26は、ワールド情報をも用いて、ワールドを表示することは好適である。
端末出力部26は、アバターに対応する音声情報を出力することは好適である。出力される音声情報は、アバターのスコアまたは判定結果に応じた種類の音声情報(例えば、第一、または第二音声情報)であることは好適である。
格納部11、ワールド格納部111、アバター格納部112、および端末格納部21は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11等で記憶されるようになってもよい。
受付部12、アバター受信部121、スコア取得部131、および端末受信部25は、通常、無線または有線の通信手段で実現され得る。
処理部13、スコア取得部131、アバター処理部132、および端末処理部23は、通常、プロセッサやメモリ等から実現され得る。処理部13等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、MPU、CPU、GPU等であり、その種類は問わない。
出力部14、位置情報送信部141、アバター処理部132、および音声出力部142は、通常、無線または有線の通信手段で実現され得る。
端末受付部22は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
端末出力部26は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末出力部26は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報システムAの動作例について説明する。まず、アバター出力装置1の動作例について、図3のフローチャートを用いて説明する。
(ステップS301)アバター受信部121は、端末装置2からモデル情報等を受信したか否かを判断する。モデル情報等を受信した場合はステップS302に行き、モデル情報等を受信しなかった場合はステップS303に行く。なお、モデル情報等は、端末装置2に対応するアバターの第一モデル情報または元情報を含む情報である。モデル情報等は、例えば、端末装置2に対応するアバターの位置情報を含むことは好適である。モデル情報等は、アバター識別子を含んでも良い。なお、アバター識別子は、モデル情報等の受信に応じて、処理部13がユニークなアバター識別子を取得しても良い。ユニークなアバター識別子を取得する方法は問わない。また、ステップS301では、2以上の各端末装置2から、モデル情報等が受信される。
(ステップS302)処理部13は、受信されたモデル情報等をアバター識別子に対応付けて蓄積する。ステップS301に戻る。
(ステップS303)アバター処理部132は、圧縮処理等を開始するか否かを判断する。圧縮処理等を開始する場合はステップS304に行き、圧縮処理等を開始しない場合はステップS312に行く。なお、圧縮処理等は、ステップS304からS311の処理である。また、圧縮処理等を開始するための条件は問わない。かかる条件は、例えば、予め決められた時刻になったこと、処理部13が参加予定のすべての端末装置2からモデル情報等が受信された、と判断したことである。また、かかる条件は、例えば、受付部12が圧縮処理等のリクエストを、端末装置2から受信したことである。
(ステップS304)アバター処理部132は、カウンタiに1を代入する。
(ステップS305)アバター処理部132は、圧縮処理等の対象のi番目のアバターのアバター識別子が存在するか否かを判断する。i番目のアバター識別子が存在する場合はステップS306に行き、存在しない場合はステップS310に行く。
(ステップS306)アバター処理部132は、i番目のアバター識別子の第一モデル情報を取得する。
アバター処理部132は、受信された第一モデル情報を取得しても良いし、受信された元情報に対応する第一モデル情報を取得しても良い。つまり、アバター処理部132は、例えば、i番目のアバター識別子と対になる第一モデル情報をアバター格納部112から取得する。アバター処理部132は、例えば、i番目のアバター識別子と対になる元情報をアバター格納部112から取得し、当該元情報を用いて、第一モデル情報を取得する。かかる場合、元情報は、例えば、第一モデル情報の識別子、または第一モデル情報を構成する元になるモデル情報である。
(ステップS307)アバター処理部132は、ステップS306で取得した第一モデル情報より小さいデータサイズの1または2種類以上のモデル情報を取得する。1種類以上のモデル情報は、第二モデル情報を含む。
(ステップS308)アバター処理部132は、i番目のアバター識別子に対応付けて、第一モデル情報と第二モデル情報とを含むアバター情報をアバター格納部112に蓄積する。なお、アバター情報を蓄積することは、アバター情報が蓄積された状態にすることであり、元々、アバター格納部112に格納されていた情報は、ここで、蓄積する必要はない。
(ステップS309)アバター処理部132は、カウンタiを1、インクリメントする。ステップS305に戻る。
(ステップS310)アバター処理部132は、全アバターの1以上のスコア取得元属性値を、アバター識別子に対応付けて取得する。なお、スコア取得元属性値は、スコアを取得する元になる属性値であり、位置情報を含む。スコア取得元属性値は、通常、向き情報を含む。
(ステップS311)位置情報送信部141は、ステップS310で取得された各アバターの1以上のスコア取得元属性値をアバター識別子に対応付けて、2以上の全端末装置2に送信する。ステップS301に戻る。
(ステップS312)スコア取得部131は、端末装置2からリクエストを受信したか否かを判断する。リクエストを受信した場合はステップS313に行き、リクエストを受信しなかった場合はステップS315に行く。なお、ステップS312において、2以上の全端末装置2からリクエストを受信する。なお、リクエストは、アバター識別子に対応付けられた1以上の他アバターの判定結果またはスコアを含む。
(ステップS313)アバター処理部132は、アバター情報取得処理を行う。アバター情報取得処理とは、アバターを表示するためのモデル情報等を取得する処理である。また、アバター情報取得処理は、ワールド情報を取得しても良い。アバター情報取得処理の例について、図4のフローチャートを用いて説明する。
(ステップS314)アバター処理部132は、ステップS313で取得された情報を、リクエストを送信してきた端末装置2に送信する。ステップS301に戻る。なお、送信される情報は、通常、アバターのモデル情報を含む。
(ステップS315)受付部12は、アバター識別子に対応付いた音声情報を受信したか否かを判断する。音声情報を受信した場合はステップS316に行き、音声情報を受信しなかった場合はステップS301に戻る。なお、アバター識別子に対応付いた音声情報は、通常、アバター識別子に対応付いた端末装置2のユーザが入力した音声の情報である。
(ステップS316)アバター処理部132は、ステップS315で受信された音声情報に対する処理を行う。かかる音声情報処理の例について、図5のフローチャートを用いて説明する。
なお、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS313のアバター情報取得処理の例について、図4のフローチャートを用いて説明する。
(ステップS401)アバター処理部132は、カウンタiに1を代入する。
(ステップS402)アバター処理部132は、アバター情報取得処理に対応するi番目のアバター識別子が存在するか否かを判断する。i番目のアバター識別子が存在する場合はステップS403に行き、i番目のアバター識別子が存在しない場合はステップS406に行く。なお、i番目のアバター識別子は、通常、受信されたリクエストに含まれるi番目のアバター識別子である。
(ステップS403)アバター処理部132は、i番目のアバター識別子に対応する判定結果またはスコアを取得する。また、アバター処理部132は、スコアが取得された場合、当該スコアに対応する判定結果を取得する。なお、判定結果は、通常、取得するモデル情報の種類を特定する種類識別子である。種類識別子は、例えば、第一モデル情報に対応する「第一」、第二モデル情報に対応する「第二」である。また、アバター処理部132は、i番目のアバター識別子に対応する判定結果またはスコアを、リクエストを送信してきた端末装置2に対応付けて、図示しないバッファに一時蓄積する。
(ステップS404)アバター処理部132は、i番目のアバター識別子と判定結果に対応するモデル情報を、i番目のアバター識別子に対応付けて取得する。なお、判定結果に対応するモデル情報は、スコアに対応するモデル情報である、と言える。
アバター処理部132は、例えば、当該モデル情報をアバター格納部112から取得する。アバター処理部132は、例えば、当該モデル情報を第一モデル情報から生成する。
(ステップS405)アバター処理部132は、カウンタiを1、インクリメントする。ステップS402に戻る。
(ステップS406)アバター処理部132は、ワールド情報を送信するか否かを判断する。ワールド情報を送信する場合はステップS407に行き、送信しない場合はステップS408に行く。なお、ワールド情報を送信する場合は、通常、動作開始から、一度も当該端末装置2にワールド情報を送信していない場合である。
(ステップS407)アバター処理部132は、ワールド情報をワールド格納部111から取得する。
(ステップS408)アバター処理部132は、1以上の各アバター識別子に対応付けられているモデル情報を含む情報を構成する。上位処理にリターンする。なお、かかる情報は、ワールド情報を含んでも良い。かかる情報は、端末装置2に送信される情報である。
次に、ステップS316の音声情報処理の例について、図5のフローチャートを用いて説明する。
(ステップS501)アバター処理部132は、受信された音声情報に対応するアバター識別子を取得する。
(ステップS502)アバター処理部132は、受信された音声情報を取得する。
(ステップS503)アバター処理部132は、カウンタiに1を代入する。
(ステップS504)アバター処理部132は、i番目の他の端末装置2が存在するか否かを判断する。なお、他の端末装置2とは、音声情報を送信した端末装置2以外の端末装置2である。
(ステップS505)アバター処理部132は、i番目の他の端末装置2に対応するスコアまたは判定結果であり、ステップS501で取得したアバター識別子で識別されるアバターのスコアまたは判定結果を図示しないバッファから取得する。
(ステップS506)アバター処理部132は、ステップS505で取得したスコアまたは判定結果から、i番目の他の端末装置2に、ステップS501で取得したアバター識別子で識別されるアバターの音声情報を送信するか否かを判断する。音声情報を送信する場合はステップS507に行き、音声情報を送信しない場合はステップS509に行く。
なお、音声情報を送信すると判断した場合はi番目の他の端末装置2でステップS501で取得したアバター識別子で識別されるアバターの音声が出力される場合であり、音声情報を送信しないと判断した場合はi番目の他の端末装置2でステップS501で取得したアバター識別子で識別されるアバターの音声が出力されない場合である。
(ステップS507)アバター処理部132は、ステップS505で取得したスコアまたは判定結果に従って、ステップS502で取得した音声情報を用いて、i番目の他の端末装置2に送信する音声情報を取得する。なお、取得された音声情報は、ステップS502で取得した音声情報でも良いし、ステップS502で取得した音声情報から取得された音声情報でも良い。
(ステップS508)アバター処理部132は、ステップS507で取得した音声情報をi番目の他の端末装置2に送信する。
(ステップS509)アバター処理部132は、カウンタiを1、インクリメントする。ステップS504に戻る。
次に、端末装置2の動作例について、図6のフローチャートを用いて説明する。
(ステップS601)端末受付部22は、動作開始前の入力である初期入力を受け付けたか否かを判断する。初期入力を受け付けた場合はステップS602に行き、初期入力を受け付けなかった場合はステップS612に行く。なお、初期入力は、1以上のスコア取得元属性値を含む。
(ステップS602)端末処理部23は、ステップS601で受け付けられた初期入力を用いて、送信する情報を構成する。端末送信部24は、当該情報をアバター出力装置1に送信する。なお、当該情報は、例えば、モデル情報、位置情報、向き情報等を含む。
(ステップS603)端末受信部25は、ステップS602における送信に応じて、全アバターのスコア取得元属性値を受信したか否かを判断する。スコア取得元属性値を受信した場合はステップS604に行き、スコア取得元属性値を受信しなかった場合はステップS603に戻る。なお、端末受信部25は、各アバターのアバター識別子に対応付けて、アバターごとに、1以上のスコア取得元属性値を受信する。
(ステップS604)端末処理部23は、各アバターの1以上のスコア取得元属性値を用いて、各アバターのスコアを取得する。かかるスコア取得処理の例について、図6のフローチャートを用いて説明する。なお、スコア取得処理において、端末処理部23は、スコアを取得し、かつ当該スコアを用いて、判定結果を取得しても良い。スコア取得処理において、端末処理部23は、スコアを取得し、判定結果を取得しなくても良い。かかる場合、アバター出力装置1が判定結果を取得する。
(ステップS605)端末処理部23は、ステップS604で取得したスコアまたは判定結果を用いて、リクエストを構成する。なお、リクエストは、各アバターのアバター識別子に対応付くスコアまたは判定結果を有する。
(ステップS606)端末送信部24は、ステップS605で構成されたリクエストをアバター出力装置1に送信する。リクエストには、例えば、他アバターごとに取得したスコアと対応するアバター識別子を含めてもよいし、端末処理部23で判定結果を取得する場合は他アバターごとの判定結果と対応するアバター識別子を含めてもよい。
(ステップS607)端末受信部25は、ステップS606におけるリクエストの送信に応じて、情報を受信したか否かを判断する。情報を受信した場合はステップS608に行き、情報を受信しなかった場合はステップS607に戻る。なお、情報は、通常、リクエストに応じてアバター出力装置1が出力した1以上の各アバターのモデル情報を含む。また、情報は、ワールド情報を含むことは好適である。また、情報は、1以上の各アバター識別子に対応付いた音声情報を含んでも良い。さらに、受信された情報は、端末格納部21に、少なくとも一時蓄積される。
(ステップS608)端末処理部23は、ステップS607で受信された情報を用いて、表示情報構成処理を行う。表示情報構成処理とは、端末装置2に表示する情報を構成する処理である。表示情報構成処理の例について、図7のフローチャートを用いて説明する。
(ステップS609)端末出力部26は、ステップS608で構成された情報を出力する。なお、出力される情報は、通常、ワールドと1または2以上のアバターとを含む。
(ステップS610)端末処理部23は、ステップS607で受信された情報が音声情報を有するか否かを判断する。音声情報を有する場合はステップS611に行き、音声情報を有しない場合はステップS601に戻る。
(ステップS611)処理部13等は、音声出力処理を行う。ステップS601に戻る。音声出力処理の例について、図8のフローチャートを用いて説明する。
(ステップS612)端末受付部22は、ユーザからの入力を受け付けたか否かを判断する。入力を受け付けた場合はステップS613に行き、入力を受け付けなかった場合はステップS619に行く。ユーザからの入力は、例えば、自アバターの位置情報の変更の入力、自アバターの向き情報の変更の入力、自アバターの音声情報である。
(ステップS613)端末処理部23は、ステップS612における入力に基づいて、属性値(例えば、変化した自アバターの位置情報、変化した自アバターの向き情報など)を取得する。端末処理部23は、当該入力に基づいて、変更されるスコアを取得する。また、ステップS619で、情報が受信された場合、端末処理部23は、受信された情報に基づいて、変更されるスコアを取得する。かかるスコア取得処理について、図6のフローチャートを用いて説明する。
(ステップS614)端末処理部23は、ステップS604で取得したスコアまたは判定結果を用いて、リクエストを構成する。なお、リクエストは、各アバターのアバター識別子に対応付くスコアまたは判定結果を有する。
また、2回目以降のリクエストの送付の場合、端末処理部23は、前回のスコアまたは判定結果と、異なったスコアまたは判定結果が得られたアバターに関するリクエストを構成することは好適である。かかるリクエストは、スコアまたは判定結果に変化のないアバターのスコアまたは判定結果を含まない。かかるリクエストは、異なったスコアまたは判定結果が得られたアバターのアバター識別子と、スコアまたは判定結果を含む。
また、各アバターのスコアまたは判定結果に変化がない等の場合には、ステップS614において、リクエストが構成されない場合もあり得る。
(ステップS615)端末処理部23は、ステップS614において、リクエストが構成されたか否かを判断する。リクエストが構成された場合はステップS606に行き、リクエストが構成されなかった場合はステップS616に行く。
(ステップS616)端末処理部23は、ステップS612における入力に対応する情報を送信するか否かを判断する。情報を送信する場合はステップS617に行き、情報を送信しない場合はステップS608に行く。なお、入力に対応する情報は、例えば、ユーザが入力した音声情報、入力後の新しい自アバターの位置や向きに関する情報である。
(ステップS617)端末処理部23は、ステップS612における入力に対応する送信情報を構成する。
(ステップS618)端末送信部24は、ステップS617で構成された送信情報を、自分のアバター識別子と対にして、アバター出力装置1に送信する。ステップS608に行く。
(ステップS619)端末受信部は、アバター出力装置1から情報を受信したか否かを判断する。情報を受信した場合はステップS613に行き、情報を受信しなかった場合はステップS601に戻る。なお、情報とは、例えば、音声情報、他アバターの変更された位置情報、他アバターの変更された向き情報である。また、音声情報が受信された場合、通常、端末出力部26は、当該音声情報を出力する。
なお、図5のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS604のスコア取得処理の例について、図7のフローチャートを用いて説明する。
(ステップS701)端末処理部23は、スコアを取得するための1以上の属性値を取得する。ここでの1以上の属性値は、自アバターの位置情報を含む。ここでの1以上の属性値は、例えば、自アバターの向き情報、カメラ位置情報、カメラ向き情報、カメラの画角情報を含む。
(ステップS702)端末処理部23は、カウンタiに1を代入する。
(ステップS703)端末処理部23は、スコアを取得する対象のi番目のアバターのアバター識別子が存在するか否かを判断する。i番目のアバター識別子が存在する場合はステップS704に行き、存在しない場合は上位処理にリターンする。
(ステップS704)端末処理部23は、i番目のアバター識別子と対になる1以上のスコア取得元属性値を取得する。なお、1以上のスコア取得元属性値は、例えば、i番目のアバターの位置情報、向き情報、役割属性値、由来属性値である。
(ステップS705)端末処理部23は、自アバターの位置情報と自アバターの向き情報とi番目のアバターの位置情報とを用いて、ユーザ視野属性値を取得する。なお、ユーザ視野属性値は、自アバターの視野の中にi番目のアバターが存在するか否かを示す情報である。
(ステップS706)端末処理部23は、カメラ位置情報とカメラ向き情報とカメラの画角情報とi番目のアバターの位置情報とを用いて、カメラ視野属性値を取得する。なお、カメラ視野属性値は、i番目のアバターがカメラの撮影範囲であるか否かを示す情報である。
(ステップS707)端末処理部23は、自アバターの位置情報とi番目のアバターの位置情報とを用いて、ユーザ距離属性値を取得する。なお、ユーザ距離属性値は、自アバターとi番目のアバターとの距離を特定する情報である。
(ステップS708)端末処理部23は、自アバターの向き情報とi番目のアバターの向き情報とを用いて、ユーザ向き属性値を取得する。なお、ユーザ向き属性値は、自アバターとi番目のアバターとの相対的な向きに関する情報であり、例えば、自アバターとi番目のアバターとの角度に関する情報、自アバターとi番目のアバターとが向き合っているか否かを示す情報である。
(ステップS709)端末処理部23は、カメラ位置情報とi番目のアバターの位置情報とを用いて、カメラ距離属性値を取得する。なお、カメラ距離属性値は、カメラとi番目のアバターとの距離を特定する情報である。
(ステップS710)端末処理部23は、ステップS705からステップS709で取得した動的属性値のうち、1または2以上の動的属性値を用いて、i番目のアバターのスコアを取得する。
(ステップS711)端末処理部23は、i番目のアバターのスコアを用いて、i番目のアバターの判定結果を取得する。なお、判定結果は、ここでは、例えば、種類識別子である。なお、端末処理部23は、通常、スコアが高いほど、大きなデータサイズに対応する判定結果を取得する。
(ステップS712)端末処理部23は、i番目のアバター識別子に対応付けて、判定結果を一時蓄積する。なお、端末処理部23は、i番目のアバター識別子に対応付けて、スコアを一時蓄積しても良い。
(ステップS713)端末処理部23は、カウンタiを1、インクリメントする。ステップS703に戻る。
なお、図6のフローチャートにおいて、端末処理部23は、判定結果を取得しなくても良い。かかる場合、端末処理部23は、i番目のアバター識別子に対応付けて、スコアを一時蓄積する。
次に、ステップS608の表示情報構成処理の例について、図8のフローチャートを用いて説明する。
(ステップS801)端末処理部23は、ワールド情報を取得する。なお、ワールド情報は、アバター出力装置1から受信された情報、または端末格納部21に格納されている情報である。
(ステップS802)端末処理部23は、カウンタiに1を代入する。
(ステップS803)端末処理部23は、構成する対象のi番目のアバターのアバター識別子が存在するか否かを判断する。i番目のアバター識別子が存在する場合はステップS804に行き、i番目のアバター識別子が存在しない場合は上位処理にリターンする。
(ステップS804)端末処理部23は、i番目のアバター識別子と対になる1以上の属性値等を端末格納部21から取得する。なお、1以上の属性値等をは、スコアまたは判定結果を含む、と考えても良い。
(ステップS805)端末処理部23は、ステップS804で取得した1以上の属性値等を用いて、i番目のアバターを出力するか否かを判断する。i番目のアバターを出力する場合はステップS806に行き、i番目のアバターを出力しない場合はステップS80に行く。端末処理部23は、例えば、カメラに視野に入っていない他アバター、またはユーザの自アバターの視野に入っていない他アバターは、出力しないと判断する。端末処理部23は、例えば、スコアが閾値以上または閾値より大きいアバターのみ、出力すると判断しても良い。
(ステップS806)端末処理部23は、i番目のアバター識別子と対になるモデル情報を取得する。なお、モデル情報は、例えば、各アバターの判定結果に基づいて決定された第一モデル情報または第二モデル情報である。
(ステップS807)端末処理部23は、ステップS806で取得したモデル情報を用いて表示するアバターを構成する。
(ステップS808)端末処理部23は、i番目のアバター識別子と対になる位置情報を用いて、ステップS807で構成したアバターを、ステップS801で取得したワールド情報により構成されるワールドの中に配置する。
(ステップS809)端末処理部23は、カウンタiを1、インクリメントする。ステップS803に戻る。
次に、ステップS611の音声出力処理の例について、図9のフローチャートを用いて説明する。
(ステップS901)端末処理部23は、カウンタiに1を代入する。
(ステップS902)端末処理部23は、i番目のアバターのアバター識別子が存在するか否かを判断する。i番目のアバター識別子が存在する場合はステップS903に行き、i番目のアバター識別子が存在しない場合は上位処理にリターンする。
(ステップS903)端末処理部23は、i番目のアバター識別子と対になる音声情報が存在するか否かを判断する。当該音声情報が存在する場合はステップS904に行き、存在しない場合はステップS907に行く。なお、i番目のアバター識別子と対になる音声情報は、例えば、アバター出力装置1から受信された情報である。
(ステップS904)端末処理部23は、i番目のアバター識別子と対になるスコアまたは判定結果を取得する。
(ステップS905)端末処理部23は、ステップS904におけるスコアまたは判定結果に応じた種類の音声情報を取得する。
ここで、i番目のアバター識別子と対にして2以上の種類の音声情報が格納されている場合、例えば、端末処理部23は、i番目のアバター識別子と対になる音声情報(例えば、第一音声情報、第二音声情報)のうちの、スコアまたは判定結果に応じた種類の音声情報を取得する。i番目のアバター識別子と対にして一の音声情報が格納されている場合、例えば、端末処理部23は、スコアまたは判定結果に応じて、当該一の音声情報の属性値(例えば、音量、周波数)を変更し、出力する音声情報を取得する。
(ステップS906)端末出力部26は、ステップS905で取得された音声情報を出力する。
(ステップS907)端末処理部23は、カウンタiを1、インクリメントする。ステップS902に戻る。
なお、図9のフローチャートにおいて、端末出力部26は、1以上の各アバター識別子と対になる音声情報を出力するだけでも良い。かかる場合、アバター出力装置1が、通常、アバター識別子と対になるスコアに応じた音声情報を取得している。
以下、本実施の形態における情報システムAの具体的な動作例について、図10を用いて説明する。情報システムAは、アバター出力装置1と2以上の端末装置2を有する。ここで、2以上の端末装置2を、端末装置2(1)、・・・、端末装置2(N)とする。
端末装置2(1)の端末受付部22は、ユーザからモデル情報等を受け付けた、とする。そして、端末処理部23は、受け付けられたモデル情報等を用いて、送信するモデル情報等を構成する。端末送信部24は、当該モデル情報をアバター出力装置1に送信する(1001参照)。なお、モデル情報等は、ここで、第一モデル情報、1以上の属性値を有する。1以上の属性値は、ここでは、位置情報、役割属性値、由来属性値、端末属性値を含む、とする。
また、同様に、端末装置2(N)も、ユーザから受け付けたモデル情報等をアバター出力装置1に送信する(1002参照)。
次に、アバター出力装置1のアバター受信部121は、端末装置2(1)や端末装置2(N)等からモデル情報等を受信する(1001、1002参照)。そして、処理部13は、各モデル情報等に対して、ユニークなアバター識別子を生成する。次に、処理部13は、受信されたモデル情報等を、アバター識別子に対応付けて、アバター格納部112の図11の構造を有するアバター管理表に蓄積した、とする。
アバター管理表は、「ID」「アバター識別子」「第一モデル情報」「第二モデル情報」「属性値」を有する。また、「属性値」は、「位置情報」「役割属性値」「由来属性値」「端末属性値」を有する。「端末属性値」は、ここでは「画面サイズ」「動作周波数」を有する。「ID」は、レコードを識別する情報である。「第一モデル情報」は、第一モデル情報のファイル名である。「第二モデル情報」は、第二モデル情報のファイル名である。なお、各ファイルも、アバター格納部112に格納されている。「位置情報」は、三次元空間におけるアバターの位置を特定する情報である。また、ここでは、「役割属性値」は、「主催者」「司会者」「観客」のいずれかを採り得る。「由来属性値」は、「UGC」「デフォルト」のいずれかを採り得る。「UGC」は、ユーザが作成したアバターであることを示す。「デフォルト」は、デフォルトのアバターであることを示す。デフォルトのアバターは、例えば、アバター出力装置1の管理者が予め用意しているアバターである。なお、現段階では、表の「第二モデル情報」には、情報が存在しない。
次に、アバター出力装置1のアバター処理部132は、予め決められた条件を満たした(例えば、予め決められた時刻になった)ことを検知し、端末装置2(1)や端末装置2(N)等の第一モデル情報に対して、上述した圧縮処理を行い、第二モデル情報を取得する(1003参照)。次に、アバター処理部132は、2以上の各第二モデル情報をアバター格納部112に蓄積し、2以上の各第二モデル情報のファイル名を、アバター識別子と対にして、アバター管理表に蓄積する。以上の処理により、図11のアバター管理表が構成された。なお、図11のアバター管理表において、「D1.json」はデフォルトのアバターの第一モデル情報であり、「D2.json」はデフォルトのアバターの第二モデル情報である。
次に、処理部13は、全アバターのスコア取得元属性値を、アバター識別子に対応付けて、図11のアバター管理表、または格納部11から取得する。スコア取得元属性値は、ここでは、図11の5つの属性値、およびカメラ属性値(カメラ位置情報、カメラ向き情報、画角情報)である、とする。なお、カメラ属性値は、格納部11に格納されている、とする。
次に、位置情報送信部141は、全アバターのスコア取得元属性値を、アバター識別子に対応付けて、端末装置2(1)や端末装置2(N)を含む全ての端末装置2に送信する(1004、1005参照)。
次に、端末装置2(1)の端末受信部25は、全アバターのスコア取得元属性値を受信する(1004参照)。また、端末装置2(N)等の端末受信部25も、全アバターのスコア取得元属性値を受信する(1004参照)。
次に、端末装置2(1)等の端末処理部23は、受信されたスコア取得元属性値が有する各他アバターの位置情報と、カメラ位置情報とカメラ向き情報と画角情報とを用いて、各他アバターの撮影範囲属性値、カメラからの距離を、他アバターごとに、取得する。また、端末装置2(1)等のすべての端末処理部23は、各々の自アバターの位置情報と各他アバターの位置情報とを用いて、自アバターと他アバターとの距離を、他アバターごとに取得する。
次に、端末装置2(1)等の端末処理部23は、各他アバターごとに、他アバターに対応する撮影範囲属性値、カメラからの距離、自アバターと他アバターとの距離、役割属性値、由来属性値等を用いて、スコアを取得する。次に、端末装置2(1)等の端末処理部23は、各他アバターごとに、判定結果「第一」または「第二」を取得する。なお、端末処理部23は、ここでは、スコアが閾値以上の他アバターに対しては、「第一」の判定結果を取得し、スコアが閾値未満の他アバターに対しては、「第二」の判定結果を取得する、とする(1006、1007参照)。
また、ここでの判定結果の概念は、例えば、図12である。図12において、グレーで示された領域1201がカメラの撮影範囲である場合に、カメラの撮影範囲に含まれ、かつ、カメラから近い9つのアバターの判定結果は「第一」であり、他のアバターの判定結果は「第二」である。図11において、判定結果「第一」のアバターは黒く塗りつぶされており、判定結果「第二」のアバターは黒く塗りつぶされていない。また、端末装置2(1)、・・・、端末装置2(N)のうちの各端末装置2によって、判定結果は異なることは好適である。なお、判定結果「第一」に対応する9つのアバターは、図11のA01、A02、A03、A04、A05、A06、A07、A08、A09である。
同様に、図12において、グレーで示された領域1201が特定の端末装置(N)から見た視野とすれば、自アバターの視野を考慮した判定が可能となる。
次に、端末装置2(1)等のすべての端末処理部23は、他アバターのアバター識別子と判定結果との組を、他アバターの数だけ有するリクエストとを構成する。次に、端末装置2(1)、・・・、端末装置2(N)の各端末送信部24は、リクエストをアバター出力装置1に送信する(1008、1009参照)。
次に、アバター出力装置1のスコア取得部131は、2以上の各端末装置2からリクエストを受信する(1008、1009参照)。
次に、アバター出力装置1のスコア取得部131は、各端末装置2からのリクエストに含まれる各アバター識別子に対応する判定結果を取得する。なお、判定結果は、スコアの一例である、と考えても良い。次に、アバター処理部132は、アバター識別子ごとに、判定結果に応じて、属性値「第一モデル情報」または属性値「第二モデル情報」のファイル名をアバター管理表(図11)から取得し、当該ファイル名で識別される第一モデル情報または第二モデル情報を、アバター識別子に対応付けて、アバター格納部112から取得する。なお、判定結果「第一」に対応するアバター識別子に対して第一モデル情報が取得され、判定結果「第二」に対応するアバター識別子に対して第二モデル情報が取得される。
次に、アバター処理部132は、ワールド情報を送付したか否かを示すフラグワールド情報送付フラグがOFF(未送付)であることを検知し、ワールド情報を送信する、と判断する。そして、アバター処理部132は、ワールド情報をワールド格納部111から取得する。アバター処理部132は、端末装置2ごとに、上記の処理を行い、アバター識別子に対応付けられた第一モデル情報または第二モデル情報、およびワールド情報を取得する(1010、1011参照)。
次に、アバター処理部132は、取得した情報を、リクエストを送信してきた2以上の各端末装置2に送信する(1012、1013参照)。なお、アバター処理部132は、ワールド情報の送付により、ワールド情報送付フラグをON(送付済み)とする。
次に、2以上の各端末装置2の端末受信部25は、リクエストの送信に応じて、情報を受信する(1012、1013参照)。ここでの情報は、ワールド情報と、アバター識別子とモデル情報との2以上の組を含む。
次に、2以上の各端末装置2の端末処理部23は、受信された情報を用いて、上述した表示情報構成処理を行う(1014、1015参照)。端末出力部26は、表示情報構成処理により構成された情報を出力する(1016、1017参照)。出力される情報は、仮想的な三次元空間の中に多数のアバターを有する。なお、かかる出力例は、図13である。図13において、2以上の端末装置2の各ユーザに対応するアバターが、ワールドと共に表示されている。また、端末装置2によって、同じアバターでも、第一モデル情報が使用されたり、第二モデル情報が使用されたりすることは好適である。
また、図13の1301の仮想的なスクリーンにおいて、ワールド内のカメラで取得された映像が表示されることは好適である。かかる場合、例えば、アバター出力装置1は、ワールド内のカメラで取得される映像を構成し、各端末装置2に送信する。そして、各端末装置2の端末受信部25は、カメラで取得される映像を受信する。そして、端末処理部23は、受信された映像をワールド内の仮想的なスクリーンに貼り付ける、次に、端末出力部26は、かかる映像が貼り付けられたスクリーンを含むワールドを、各ユーザに対応するアバターと共に出力する。
さらに、時間が経過し、ユーザが端末装置2(1)に、自アバターの位置情報を変更する入力を行った、とする(1018参照)。
次に、端末装置2(1)の端末処理部23は、自アバターの位置情報の変更に応じて、1以上の各他アバターのスコアを、再度、算出する。なお、端末処理部23は、自アバターの位置情報以外の情報(他アバターの情報、カメラ属性値等)は、既に受信し、蓄積されている情報を用いて、1以上の各他アバターのスコアを算出する、とする。
次に、端末装置2(1)の端末処理部23は、1以上の各他アバターのスコアに応じた判定結果を取得する(1019参照)。
次に、端末処理部23は、前回の判定結果と比較して、判定結果に変化があった他アバターのアバター識別子と判定結果との1組以上の組、および変更された自アバターの位置情報を有するリクエストを構成する。
次に、端末装置2(1)の端末送信部24は、当該リクエストをアバター出力装置1に送信する(1020参照)。
次に、アバター出力装置1のスコア取得部131は、端末装置2(1)からリクエストを受信する(1020参照)。
次に、アバター出力装置1のアバター処理部132は、端末装置2(1)からのリクエストに含まれる1以上の各アバター識別子に対応する判定結果を取得する。次に、アバター処理部132は、アバター識別子ごとに、判定結果に応じて、属性値「第一モデル情報」または属性値「第二モデル情報」のファイル名をアバター管理表(図11)から取得し、当該ファイル名で識別される第一モデル情報または第二モデル情報を、アバター識別子に対応付けて、アバター格納部112から取得する。
次に、端末装置2(1)に既にワールド情報を送信しているので、アバター処理部132は、ワールド情報を送信しない、と判断する。
次に、アバター処理部132は、取得した情報を、リクエストを送信してきた端末装置2(1)に送信する(1021参照)。
また、端末装置2(1)の端末処理部23は、自アバターの位置情報の更新に応じて、受信された他アバターのモデル情報をも用いて、変更される表示情報を構成する(1022参照)。次に、端末装置2(1)の端末出力部26は、新たに構成された表示情報を出力する(1023参照)。なお、端末処理部23は、自アバターの位置情報の更新に応じて、他アバターの位置情報(相対的な位置情報)も変更する。
また、アバター処理部132は、端末装置2(1)のアバターの変更された位置情報と端末装置2(1)のアバターのアバター識別子とを含む他アバターの情報を、端末装置2(N)を含む1以上の端末装置2に送信する(1024参照)。
次に、端末装置2(N)等の端末受信部25は、端末装置2(1)の他アバターの情報を受信する。
次に、端末装置2(N)等の端末処理部23は、端末装置2(1)のアバターの位置情報の変更による、端末装置2(1)のアバターに対する新たなスコアを取得する。次に、端末装置2(N)等の端末処理部23は、端末装置2(1)のアバターに対する判定結果を取得する(1025参照)。
そして、端末装置2(N)における端末装置2(1)のアバターの判定結果が、前回の判定結果とは異なる判定結果になった、とする。
次に、端末装置2(N)の端末送信部24は、端末装置2(1)の他アバターのアバター識別子と新たな判定結果とを含むリクエストをアバター出力装置1に送信する(1026参照)。なお、端末装置2(1)のアバターの判定結果が、前回の判定結果と同じ端末装置(2)は、リクエストをアバター出力装置1に送信しない、とする。
次に、アバター出力装置1のスコア取得部131は、端末装置2(N)からリクエストを受信する(1026参照)。
次に、アバター出力装置1のアバター処理部132は、端末装置2(N)からのリクエストに含まれるアバター識別子に対応する判定結果を取得する。次に、アバター処理部132は、当該アバター識別子の判定結果に応じて、属性値「第一モデル情報」または属性値「第二モデル情報」のファイル名であり、当該アバター識別子と対になるファイル名を、アバター管理表(図11)から取得し、当該ファイル名で識別される第一モデル情報または第二モデル情報を、アバター識別子に対応付けて、アバター格納部112から取得する。
次に、アバター処理部132は、取得した情報を、リクエストを送信してきた端末装置2(N)に送信する(1027参照)。
次に、端末装置2(N)の端末受信部25は、リクエストの送信に応じて、情報を受信する(1027参照)。
次に、端末装置2(N)の端末処理部23は、受信された情報を用いて、表示情報構成処理を行う(1028参照)。端末装置2(N)の端末出力部26は、表示情報構成処理により構成された情報を出力する(1029参照)。なお、かかる表示情報構成処理により、端末装置2(N)において、例えば、端末装置2(1)のアバターの位置が移動し、かつ当該アバターの表示に利用されるモデル情報が、第二モデル情報から第一モデル情報に変更される。
なお、端末装置2(1)のアバターの位置情報の変更により、端末装置2(N)以外の端末装置2も、アバター出力装置1にリクエストを送信し、端末装置2(N)と同様に、変更された情報を出力しても良い。
以上、本実施の形態によれば、多数のアバターを出力する場合に、各アバターのスコアに応じた適切な処理ができる。
また、本実施の形態によれば、多数のアバターを表示する場合に、各アバターのスコアに応じて、ユーザにとって適切に各アバターの表示制御ができる。
また、本実施の形態によれば、多数のアバターを表示する場合に、処理の負荷を抑制しつつ、ユーザにとって適切に各アバターを表示できる。
また、本実施の形態によれば、多数のアバターを表示する場合に、各アバターのスコアに応じて、ユーザにとって適切な各アバターの挙動を得ることができる。
また、本実施の形態によれば、多数のアバターの音声出力を行う場合に、各アバターのスコアに応じて、ユーザにとって適切な各アバターの音声出力が得られる。
また、本実施の形態によれば、アバターの動的属性値または静的属性値に基づいた、アバターの適切なスコアを取得できる。
さらに、本実施の形態によれば、2以上の各端末装置2とアバター出力装置1とで処理を分担できる。
なお、本実施の形態において、アバターが端末装置2に表示されるまでの処理において、2以上の各端末装置2とアバター出力装置1とで、如何様に処理を分担しても良い。上記の具体例において、例えば、各アバターのスコアの取得と判定は、端末装置2が行ったが、例えば、各アバターのスコアの取得は端末装置2が行い、スコアを用いた判定はアバター出力装置1が行っても良い。また、各アバターのスコアの取得と判定は、アバター出力装置1が行っても良い。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態におけるアバター出力装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、2以上の各アバターごとに、アバターを表示するための第一モデル情報と1以上の属性値とを有するアバター情報が格納されるアバター格納部にアクセス可能なコンピュータを、前記2以上の各アバターに対応する前記1以上の属性値を用いた、前記2以上の各アバターのスコアを取得するスコア取得部と、前記2以上の各アバターの前記アバター情報を用いて、前記スコア取得部が取得したスコアに応じた前記2以上の各アバターを出力するアバター処理部として機能させるためのプログラムである。
また、本実施の形態における端末装置2を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、アバターの位置情報を含む1以上の端末属性値が格納される端末格納部にアクセス可能なコンピュータを、前記位置情報をアバター出力装置に送信する端末送信部と、前記アバター出力装置から1以上の他の端末装置に対応する他アバターの位置情報を受信する端末受信部と、前記1以上の他アバターの位置情報と前記位置情報とを用いて、前記1以上の他アバターのスコアを取得する端末処理部として機能させるためのプログラムであって、前記端末送信部は、当該端末装置の端末識別子に対応付けて、前記1以上の他アバターのスコアまたは当該スコアに基づく判定結果を前記アバター出力装置に送信し、前記端末受信部は、前記スコアまたは前記判定結果の送信に応じて、前記アバター出力装置から前記他アバターのモデル情報であり、前記スコアまたは前記判定結果に応じた異なるモデル情報または異なる音声情報を受信するものとして、前記コンピュータを機能させるためのプログラムであって、前記モデル情報または前記音声情報を用いて、前記1以上の他アバターを出力する端末出力部として、さらに前記コンピュータを機能させるためのプログラムである。
また、図14は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態のアバター出力装置1等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図14は、このコンピュータシステム300の概観図であり、図15は、システム300のブロック図である。
図14において、コンピュータシステム300は、CD-ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
図15において、コンピュータ301は、CD-ROMドライブ3012に加えて、MPU3013と、CD-ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態のアバター出力装置1等の機能を実行させるプログラムは、CD-ROM3101に記憶されて、CD-ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD-ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態のアバター出力装置1等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。