(57)【要約】      （修正有）【課題】アバターを用いた複数ユーザ間でのコミュニケーションにおいて、アバターを自然に動作させるように制御するアバター制御システムを提供する。【解決手段】サーバ２は、例えば、クライアント６ａからネットワーク４を介して送信されたアバターＡのアバター位置情報を受信し、受信されたアバター位置情報に基づいて、アバターＡの正面上下左右方向の所定角度内の範囲をアバターＡの動作反応範囲として設定する。次に、設定された動作反応範囲内に存在するアバター、例えば、アバターＢ及びアバターＣの何れかのユーザ、例えば、ユーザＡからのテキスト情報中にアバターＢのアバター名が含まれている場合には、ユーザＢをユーザＡの対話相手に決定する。各クライアントにおいては、例えば、アバターＡは対話相手として決定されたユーザＢのアバターＢに視線を向け、アバターＢ及びアバターＣはアバターＡに視線を向けるように動作を変化させ表示される。【選択図】図１
2005250859.tif 000002
【特許請求の範囲】
【請求項１】
一のユーザから送信されるテキスト情報を受信するテキスト情報受信手段と、
前記一のユーザを含む複数のユーザの各々から送信されるアバター位置情報を受信するアバター位置情報受信手段と、
前記アバター位置情報受信手段により受信されたアバター位置情報に基づいて、アバター毎に動作反応範囲を設定する動作反応範囲設定手段と、
前記動作反応範囲設定手段により設定されたアバターの動作反応範囲に基づいて、前記一のユーザの対話相手となる他のユーザを決定する対話相手決定手段と、
前記テキスト情報受信手段により受信されたテキスト情報を、前記対話相手決定手段により対話相手に決定された他のユーザに送信するテキスト情報送信手段と
を備えることを特徴とするアバター制御システム。
【請求項２】
前記一のユーザが用いる一のアバターの前記動作反応範囲内に、複数の前記他のユーザの各々が用いる他のアバターが存在する場合に、
前記対話相手決定手段は、
前記テキスト情報受信手段により受信されたテキスト情報に他のユーザを示す情報が含まれている場合には、該情報により示される他のユーザを対話相手として決定することを特徴とする請求項１記載のアバター制御システム。
【請求項３】
前記一のユーザが用いる一のアバターの前記動作反応範囲内に、複数の前記他のユーザの各々が用いる他のアバターが存在する場合に、
前記対話相手決定手段は、
前記テキスト情報受信手段により、前記一のユーザからのテキスト情報が受信される前の所定時間内に他のユーザからのテキスト情報が受信されている場合には、該テキスト情報の送信元である他のユーザを対話相手として決定することを特徴とする請求項１記載のアバター制御システム。
【請求項４】
テキスト情報の入力が開始されたことを示す入力開始信号を受信する入力開始信号受信手段を備え、
前記一のユーザが用いる一のアバターの前記動作反応範囲内に、複数の前記他のユーザの各々が用いる他のアバターが存在する場合に、
前記対話相手決定手段は、
前記複数の他のユーザの各々の対話相手を、前記入力開始信号受信手段により受信された入力開始信号に基づいて決定することを特徴とする請求項３記載のアバター制御システム。
【請求項５】
前記動作反応範囲設定手段により設定された前記一のアバターの動作反応範囲内に存在する他のアバターと該一のアバターとの間のアバター間距離を算出するアバター間距離算出手段を備え、
前記一のユーザが用いる一のアバターの前記動作反応範囲内に、複数の前記他のユーザの各々が用いる他のアバターが存在する場合に、
前記対話相手決定手段は、
前記アバター間距離算出手段により算出されたアバター間距離に基づいて対話相手を決定することを特徴とする請求項１記載のアバター制御システム。
【請求項６】
前記動作反応範囲設定手段は、
アバターの正面から上下方向に所定角度内の範囲を上下範囲として設定する上下範囲設定手段と、
アバターの正面から左右方向に所定角度内の範囲を左右範囲として設定する左右範囲設定手段とを備え、
前記上下範囲設定手段により設定された上下範囲と前記左右範囲設定手段により設定された左右範囲により規定される範囲を動作反応範囲として設定することを特徴とする請求項１〜請求項５の何れか一項に記載のアバター制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コンピュータを用いた３次元の仮想空間でのアバター（ユーザの化身）を利用したコミュニケーションにおけるアバターの動作を制御するアバター制御システムに関するものである。
【背景技術】
【０００２】
近年、コンピュータを用いた３次元の仮想空間を利用したコミュニケーションでは、アバター（Ａｖａｔａｒ、サンスクリット語で「分身・化身」を意味する。多くの場合、ネットワーク上におけるユーザの「擬似人格」を意味している。）が多く利用されている。例えば、インターネットを介したチャット（インターネットを利用してリアルタイムで文字による会話を行うものであり、１対１、１対多数、多数対多数で会話を行うことができる）を行う際に、それぞれのユーザがアバターを利用している。
【０００３】
なお、通信回線を介した音声コミュニケーションにおいて擬似人格（アバター）を用いる身体性メディア通信システムが存在する。この身体性メディア通信システムにおいては、ユーザが話し手になっている場合には、話し手であるユーザの音声に従って動作する話し手動作と、ユーザが聞き手になっている場合には、話し手である他のユーザの音声に従って動作する聞き手動作に基づいて擬似人格を動作させている（特許文献１参照）。
【０００４】
また、複数のユーザの各々が用いているアバターが仮想空間内に存在する場合に、各アバターの周囲に所定範囲の固有領域を設定し、アバター間で固有領域が重なった場合にメッセージの交換を成立させる管理装置が存在する（特許文献２参照）。この管理装置においては、アバターの固有領域が重なった場合にメッセージの交換を成立させると共に、メッセージの交換が成立しているアバターから所定の距離に存在する他のアバターのユーザに対してもメッセージを送信している。即ち、メッセージの交換に参加していないユーザに対してもメッセージを送信することにより、現実の世界において、実際に会話には参加していないが、近くにいるため会話の内容を聴取することができる状態と同様の状態を作り出している。また、この管理装置においては、複数のユーザ間でのメッセージの交換が成立している時、その中の一人に対してメッセージを送信する場合は、予め相手のアバターを指定することにより、発言者のアバターを相手のアバターの方に向かせて指定した相手にメッセージの送信を行っている。
【０００５】
【特許文献１】特開２００３−１０８５０２号公報
【特許文献２】特開２００３−６７３１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、従来、チャット等のコミュニケーションにおいてアバターを用いた場合、ユーザの操作又はチャットサービスを提供しているサーバによる制御に基づいてランダムにアバターを動作させていた。また、上述の身体性メディア通信システムように、ユーザの音声に基づいてアバターを動作させる場合にも、ユーザの音声に基づいて個々のアバターを動作させており、アバター同士で相手の動きに合わせて動作させることは行われていなかった。そのため、アバターの動作が現実の対話における人物の動作と比べて著しく不自然であり、ユーザがアバターの動作に違和感を感じる等の問題があった。
【０００７】
また、アバターの制御は、仮想空間内におけるコミュニケーションが１対１で行われている場合を前提として行われており、アバターを用いたコミュニケーションに多数のユーザが同時に参加している場合は考慮されていなかった。従って、アバターを用いたコミュニケーションに多数のユーザが同時に参加している場合に、各々のアバターが自然に動作するようにアバターの動作が制御されていないという問題があった。
【０００８】
また、上述の管理装置においては、複数のユーザ間におけるメッセージ交換に関する管理を行っており、メッセージの交換に伴うアバターの動作は制御していない。即ち、複数のユーザ間でメッセージの交換が成立している時に、その中の一人に対して発言する場合には、相手のアバターを予め指定しなければ発言者のアバターを相手のアバターに向かせることができない。従って、特定の相手に対してメッセージが送信された場合であっても、相手のアバターが指定されていなければ発言内容と発言者のアバターの向きとが不一致となり、アバターの動作が不自然になるため、ユーザが違和感を感じる場合があった。
【０００９】
この発明の課題は、コンピュータを用いた３次元の仮想空間内でのアバターを利用した複数のユーザ間におけるコミュニケーションにおいて、自然な動作を行うようにアバターの動作を制御するアバター制御システムを提供することである。
【課題を解決するための手段】
【００１０】
請求項１記載のアバター制御システムは、一のユーザから送信されるテキスト情報を受信するテキスト情報受信手段と、前記一のユーザを含む複数のユーザの各々から送信されるアバター位置情報を受信するアバター位置情報受信手段と、前記アバター位置情報受信手段により受信されたアバター位置情報に基づいて、アバター毎に動作反応範囲を設定する動作反応範囲設定手段と、前記動作反応範囲設定手段により設定されたアバターの動作反応範囲に基づいて、前記一のユーザの対話相手となる他のユーザを決定する対話相手決定手段と、前記テキスト情報受信手段により受信されたテキスト情報を、前記対話相手決定手段により対話相手に決定された他のユーザに送信するテキスト情報送信手段とを備えることを特徴とする。
【００１１】
この請求項１記載のアバター制御システムによれば、アバター位置情報に基づきアバター毎に設定された動作反応範囲に基づいて、一のユーザの対話相手となる他のユーザを決定している。例えば、複数のユーザ間でチャットを行っている場合に、ユーザＡのアバターＡの動作反応範囲内に存在するアバターＢのユーザＢを対話相手とし、ユーザＡが発言した場合には、アバターＡがアバターＢに視線を向けるようにアバターＡの動作を制御している。従って、複数のユーザ間でチャット等のコミュニケーションが行われている場合に、アバターが自然に動作するように制御することができる。
【００１２】
また、請求項２記載のアバター制御システムは、前記一のユーザが用いる一のアバターの前記動作反応範囲内に、複数の前記他のユーザの各々が用いる他のアバターが存在する場合に、前記対話相手決定手段が、前記テキスト情報受信手段により受信されたテキスト情報に他のユーザを示す情報が含まれている場合には、該情報により示される他のユーザを対話相手として決定することを特徴とする。
【００１３】
この請求項２記載のアバター制御システムによれば、一のアバターの動作反応範囲内に複数の他のアバターが存在する場合に、テキスト情報内に他のユーザを示す情報、例えば、他のユーザが用いているアバターのアバター名が含まれている場合には、該他のユーザを対話相手に決定している。従って、例えば、ユーザＡが「○○さん、げんきですか？」というテキスト情報を送信した場合、ユーザＡのアバターＡが「○○」というアバター名のアバターに視線を向けるように動作を制御することができ、アバターの動作が自然な動作になるように制御することができる。
【００１４】
また、請求項３記載のアバター制御システムは、前記一のユーザが用いる一のアバターの前記動作反応範囲内に、複数の前記他のユーザの各々が用いる他のアバターが存在する場合に、前記対話相手決定手段は、前記テキスト情報受信手段により、前記一のユーザからのテキスト情報が受信される前の所定時間内に他のユーザからのテキスト情報が受信されている場合には、該テキスト情報の送信元である他のユーザを対話相手として決定することを特徴とする。
【００１５】
この請求項３記載のアバター制御システムによれば、一のアバターの動作反応範囲内に複数の他のアバターが存在する場合に、一のユーザが発言する前の所定時間内、例えば、一のユーザが発言する前の２分以内でかつ、一のユーザが発言する時刻から最も近い時刻に発言した他のユーザを一のユーザの対話相手として決定している。従って、３次元の仮想空間内におけるコミュニケーション、例えば、チャットの会話の流れに対応して自然にアバターを動作させることができる。
【００１６】
また、請求項４記載のアバター制御システムは、テキスト情報の入力が開始されたことを示す入力開始信号を受信する入力開始信号受信手段を備え、前記一のユーザが用いる一のアバターの前記動作反応範囲内に、複数の前記他のユーザの各々が用いる他のアバターが存在する場合に、前記対話相手決定手段は、前記複数の他のユーザの各々の対話相手を、前記入力開始信号受信手段により受信された入力開始信号に基づいて決定することを特徴とする。
【００１７】
この請求項４記載のアバター制御システムによれば、一のアバターの動作反応範囲内に複数の他のアバターが存在する場合に、複数の他のユーザの各々の対話相手を入力開始信号に基づいて決定している。例えば、ユーザＡの発言に対して、つまりユーザＡのテキスト情報送信後に、ユーザＢ及びユーザＣが入力を開始した場合、それぞれのユーザがテキスト情報の入力を開始したことを示す入力開始信号が受信される。ここで、ユーザＢの方が早くテキスト情報の入力を終了し、入力し終えたテキスト情報をユーザＢがユーザＣのテキスト情報よりも先に送信して、ユーザＢのテキスト情報が受信されたとする。この場合、ユーザＣが入力し終えたテキスト情報を送信し、ユーザＣのテキスト情報が受信された時点では、ユーザＢから送信されたテキスト情報が既に受信されておりユーザＣの発言する前の所定時間内でかつ、ユーザＣの発言時刻から最も近い時刻に発言したユーザはユーザＢとなる。しかし、ユーザＢのテキスト情報は、ユーザＣの入力開始信号が受信された後に受信されているため、ユーザＣの対話相手は入力開始信号が受信される前に受信されたテキスト情報の送信元であるユーザＡに決定される。そのため、ユーザＣが発言する際にアバターＣは、ユーザＡのアバターＡに視線を向けるように制御され、ユーザがアバターの動作に違和感を感じることを適切に防止することができる。
【００１８】
また、請求項５記載のアバター制御システムは、前記動作反応範囲設定手段により設定された前記一のアバターの動作反応範囲内に存在する他のアバターと該一のアバターとの間のアバター間距離を算出するアバター間距離算出手段を備え、前記一のユーザが用いる一のアバターの前記動作反応範囲内に、複数の前記他のユーザの各々が用いる他のアバターが存在する場合に、前記対話相手決定手段は、前記アバター間距離算出手段により算出されたアバター間距離に基づいて対話相手を決定することを特徴とする。
【００１９】
この請求項５記載のアバター制御システムによれば、一のアバターの動作反応範囲内に存在する複数の他のアバターの中で、例えば、一のアバターの最も近くに存在する他のアバターのユーザを対話相手として決定している。従って、動作反応範囲内に存在する複数の他のアバター中の適切なアバターに対して視線を向けるようにアバターの動作を制御することができる。
【００２０】
また、請求項６記載のアバター制御システムは、前記動作反応範囲設定手段が、アバターの正面から上下方向に所定角度内の範囲を上下範囲として設定する上下範囲設定手段と、アバターの正面から左右方向に所定角度内の範囲を左右範囲として設定する左右範囲設定手段とを備え、前記上下範囲設定手段により設定された上下範囲と前記左右範囲設定手段により設定された左右範囲により規定される範囲を動作反応範囲として設定することを特徴とする。
【００２１】
この請求項６記載のアバター制御システムによれば、アバターの正面から上下左右方向に設定された所定角度内の範囲により規定される範囲を動作反応範囲として設定している。従って、一のアバターの正面方向の所定範囲内に存在するアバターを用いているユーザの中から対話相手を決定することができ、現実の会話における動作と同様に、自然な動作を行うようにアバターの動作を制御することができる。
【発明の効果】
【００２２】
この発明によれば、例えば、複数のユーザ間でチャットを行っている場合に、ユーザＡのアバターＡの動作反応範囲内に存在するユーザＢのアバターＢを対話相手とし、ユーザＡが発言した場合には、アバターＡがアバターＢに視線を向けるようにアバターＡの動作を制御することができる。従って、複数のユーザ間でチャット等のコミュニケーションが行われている場合におけるアバターの動作が自然な動作になるように制御することができる。
【００２３】
また、一のユーザが発言する前の所定時間内、例えば、一のユーザが発言する直前に発言した他のユーザを一のユーザの対話相手として決定している。即ち、現実の会話で自分の前に発言した人に対する返答として発言を行う場合と同様に、新たな発言者のアバターの視線が前の発言者のアバターに向くようにアバターの動作を制御することができる。従って３次元の仮想空間内におけるコミュニケーション、例えば、チャットの会話の流れに沿って自然な動作をするようにアバターの動作を制御することができる。また、アバターに自然な動作をさせることができるため、ユーザがアバターの動作に違和感を覚えることを防ぎ、３次元の仮想空間内におけるコミュニケーションを活性化させることができる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照してこの発明の実施の形態に係るアバター制御システムについて説明する。
【００２５】
図１は、この発明の実施の形態に係るアバター制御システムを含む３次元の仮想空間内におけるコミュニケーションを行うシステム全体のブロック構成図である。３次元の仮想空間内におけるコミュニケーションを行うシステムは、図１に示すように、チャット等のコミュニケーションサービスを提供すると共に、仮想空間内におけるアバターの動作を制御するアバター制御システムとして機能するサーバ２を備えている。このサーバ２は、ネットワーク４を介して複数のユーザの各々が用いるクライアント６ａ、６ｂ、６ｃと接続されている。なお、クライアント６ａを用いるユーザをユーザＡ、クライアント６ｂを用いるユーザをユーザＢ、クライアント６ｃを用いるユーザをユーザＣとする。
【００２６】
図２は、この発明の実施の形態に係るサーバ（アバター制御システム）のブロック構成図である。サーバ（アバター制御システム）２は、図２に示すように、サーバ２におけるデータの処理を制御するデータ制御部１０を備えている。このデータ制御部１０には、クライアント６ａ、６ｂ、６ｃとの間の通信を制御する通信制御部１２及びユーザに関する情報、例えば、各ユーザを識別するためのユーザＩＤ及びパスワード等を記憶するユーザ情報記憶部１４が接続されている。また、データ制御部１０には、ユーザが用いるアバターの画像等、アバターに関する情報を記憶するアバター情報記憶部１６及びアバターを動作させるための動作パラメータや通信制御部１２を介して受信したユーザからのテキスト情報等を記憶するデータ記憶部１８が接続されている。
【００２７】
ユーザ情報記憶部１４には、サーバ２により提供されるコミュニケーションサービス（例えば、チャット）を利用するユーザ、即ち、予めサーバ２にユーザ登録を行っているユーザのユーザ情報が記憶される。このユーザ情報には、例えば、ユーザを識別するためのユーザＩＤ、パスワード、ニックネーム（チャットを行う際に用いられるアバター名等）及びユーザ間における親密度、例えば、ユーザＡとユーザＢの親密度を示す係数（ユーザにより任意に設定される係数）が含まれる。なお、ユーザの氏名や住所等の個人情報もユーザ情報に含めて記憶するようにしてもよい。
【００２８】
また、アバター情報記憶部１６には、サーバ２により提供されるコミュニケーションサービス、例えば、チャットを利用する際に用いられるアバターに関するアバター情報が記憶される。即ち、アバターの画像、各アバターを識別するためのアバターＩＤ、３次元の仮想空間においてチャットが行われている際のアバターの位置を示すアバター位置情報（３次元の仮想空間におけるアバターの位置を示す座標）等がアバター情報としてアバター情報記憶部１６に記憶される。ここで、アバターの位置を示す座標としては、アバターの頭の中心を示す座標が用いられる。なお、アバターの重心（体の中心）を示す座標やアバターの足元を示す座標を、アバターの位置を示す座標として用いるようにしてもよい。
【００２９】
また、データ記憶部１８には、動作パラメータ、即ち、３次元の仮想空間内におけるチャットに用いられるアバターの視線、顔表情及び頷きをそれぞれ示すパラメータや、動作パラメータに基づいて作成されたアバターの動作を示す動作情報が記憶される。また、データ記憶部１８には、テキスト情報、例えば、ユーザＡとユーザＢとがチャットを行っている場合に、ユーザＡからユーザＢに対して送信されたチャットメッセージに基づく文字列を示す情報や、ユーザＢからユーザＡに対して送信されたチャットメッセージに基づく文字列を示す情報が記憶される。更に、データ記憶部１８には、コミュニケーションサービスに関する履歴情報、例えば、チャットを利用したユーザ間の対話履歴、即ち、ユーザＡがユーザＢとチャットをした場合におけるユーザＡとユーザＢとの対話履歴等が記憶される。なお、チャットが行われる３次元の仮想空間、例えば、チャットルームの画像を示すデータもデータ記憶部１８に記憶されている。
【００３０】
また、データ記憶部１８には、３次元の仮想空間内においてチャットを行う際における対話相手候補を示した対話相手候補テーブルが記憶されている。この対話相手候補テーブルは、３次元の仮想空間内においてチャットを行っているユーザ毎にデータ記憶部１８に記憶されている。ここで、対話相手候補とは、例えば、３次元の仮想空間内におけるアバターＡの動作反応範囲に存在する他のアバターであり、対話相手とは、一のユーザの発言に伴って一のアバターが動作を行う際に視線を向ける等の動作を行う対象となる他のアバターである。
【００３１】
図３は、この発明の実施の形態に係る対話相手候補テーブルの一例を示す図であり、アバターＡの対話相手候補テーブルを示している。対話相手候補テーブルには、図３に示すように、アバターＡの動作反応範囲内に存在する他のアバターのアバターＩＤに対応させて、各アバターのアバター名及び最終発言時刻が記録される。即ち、アバターＢのアバターＩＤ「Ｂ」に対応させて、アバターＢのアバター名「ヘンリー」及びアバターＢの最終発言時刻「１２時１２分１２秒」が記録される。また、アバターＣのアバターＩＤ「Ｃ」に対応させて、アバターＣのアバター名「チャーリー」及びアバターＣの最終発言時刻「１２時１２分００秒」が記録される。なお、ユーザがテキスト情報の入力を終了し、入力し終えたテキスト情報がサーバ２に対して送信された場合に、ユーザから送信されたテキスト情報がサーバ２において受信された時刻が最終発言時刻となる。この最終発言時刻は、所定時間以上発言が行われなかった（所定時間以上テキスト情報が受信されなかった）場合、例えば、２分以上発言が行われなかった場合にはリセットされる。
【００３２】
図４は、この発明の実施の形態に係るクライアント６ａのブロック構成図である。クライアント６ａは、図４に示すように、クライアント６ａにおけるデータの処理を制御するデータ制御部２０を備えている。このデータ制御部２０には、サーバ２との間の通信を制御する通信制御部２２及びチャットメッセージとしてのテキスト情報等を入力するキーボード２４が接続されている。また、データ制御部２０には、サーバ２から送信されたテキスト情報やアバターを動作させるための動作情報等を記憶するデータ記憶部２６及び動作情報に基づいて動作するアバター等を表示する表示部２８が接続されている。
【００３３】
データ記憶部２６には、サーバ２から送信されるアバターを動作させるための動作情報、即ち、表示部２８に表示されているアバターを動作させるための情報が記憶される。また、データ記憶部２６には、ユーザがキーボード２４を介して入力したチャットメッセージ（テキスト情報）や、サーバ２を介してチャットの相手が用いるクライアントから送信されたチャットメッセージ等が記憶される。なお、クライアント６ｂ、６ｃの構成は、クライアント６ａの構成と同様の構成であるため説明を省略する。
【００３４】
次に、この発明の実施の形態に係るアバター制御システムによるアバターの制御処理について説明する。なお、以下においては、予めサーバ２にユーザ登録をしている複数のユーザ間で行われるチャットにおけるアバターの動作を制御する場合を例として説明する。
【００３５】
まず、チャットを行うユーザがサーバ２にログインを行う。例えば、クライアント６ａのキーボード２４を介してユーザＡのユーザＩＤ及びパスワードを入力し、入力されたユーザＩＤ及びパスワードを通信制御部２２及びネットワーク４を介してサーバ２に送信する。
【００３６】
サーバ２においては、クライアント６ａから送信されたユーザＡのユーザＩＤ及びパスワードを通信制御部１２を介して受信し、受信したユーザＩＤ及びパスワードと、ユーザ情報記憶部１４に記憶されているユーザＡのユーザＩＤ及びパスワードとの照合を行う。照合不一致となった場合には、「ユーザＩＤ又はパスワードが違います」等の照合不一致となったことを通知するメッセージをクライアント６ａに送信する。一方、照合一致となった場合には、チャットを行う際に用いるアバターを選択する画面、例えば、アバターのサムネイル画像を一覧形式で示したアバター選択画面のデータを通信制御部１２及びネットワーク４を介してクライアント６ａに送信する。
【００３７】
クライアント６ａにおいては、照合不一致となったことを通知するメッセージを受信した場合には、ユーザＩＤ及びパスワードを再度キーボード２４を介して入力しサーバ２に送信する。一方、アバター選択画面のデータを受信した場合には、表示部２８にアバター選択画面を表示する。そして、マウス等のポインティングデバイスを用いてチャットにおいて利用するアバターを指定してクリックすることによりアバターを選択する。ここで、サーバ２がクライアント６ａのユーザＩＤを基に、クライアント６ａが以前に選択していたアバターを自動的に選択してもよい。
【００３８】
サーバ２において、クライアント６ａからアバターを選択したことを示すアバター選択情報を受信した場合には、選択されたアバターのアバターＩＤとユーザＩＤとを対応させてデータ記憶部１８に記憶する。また、選択されたアバターの画像データ、選択されたアバターのアバターＩＤ及びチャットルームの画像を示すデータをクライアント６ａに送信する。即ち、アバター情報記憶部１６に記憶されているアバター画像とデータ記憶部１８に記憶されているチャットルームの画像を示すデータを通信制御部１２を介してクライアント６ａに送信する。なお、チャットルーム内に既に他のアバターが存在する場合には、チャットルーム内に存在する他のアバターの画像及びアバターＩＤも送信する。
【００３９】
クライアント６ａにおいては、サーバ２から送信されたアバターの画像、アバターＩＤ及びチャットルームを示すデータを通信制御部２２を介して受信しデータ記憶部２６に記憶する。次に、データ記憶部２６に記憶されたアバターの画像データ及びチャットルームの画像を示すデータに基づいて、チャットルームにおいてアバターが存在することを示す画面を作成し表示部２８に表示する。ここで、チャットルーム内に他のアバターが存在する場合、例えば、ユーザＢのアバターであるアバターＢ及びユーザＣのアバターであるアバターＣがチャットルームに存在する場合には、アバターＢの画像及びアバターＩＤとアバターＣの画像及びアバターＩＤも通信制御部２２を介して受信されデータ記憶部２６に記憶される。そして、ユーザＡのアバターＡと共にユーザＢのアバターＢ及びユーザＣのアバターＣがチャットルーム内に存在することを示す画面が作成され表示部２８に表示される。
【００４０】
次に、クライアント６ａにおいて、ユーザＢ及びユーザＣに対するチャットメッセージ、即ち、テキスト情報の入力を開始する。ここで、クライアント６ａにおいて、テキスト情報の入力が開始された場合には、テキスト情報の入力が開始されたことを示すと共に、入力が開始された時刻（入力開始時刻）を示す入力開始信号がクライアント６ａから通信制御部２２及びネットワーク４を介してサーバ２に送信される。なお、入力開始信号は、クライアント６ａを用いているユーザＡのユーザＩＤ及びアバターＡのアバターＩＤと共にサーバ２に送信される。また、クライアント６ａが入力を開始したテキスト情報を全て削除して、つまり入力途中のテキスト情報をキャンセルして、再び新規にテキスト情報の入力を開始した場合は、クライアント６ａからサーバ２へ入力開始信号が再度送信される。
【００４１】
サーバ２においては、図５のフローチャートに示すように、クライアント６ａからネットワーク４を介して送信された入力開始信号を通信制御部１２を介して受信する（ステップＳ１０）。即ち、テキスト情報の入力を開始したことを示すと共に入力開始時刻を示す信号を通信制御部１２を介して受信する。なお、受信された入力開始信号は、クライアント６ａを用いているユーザＡのユーザＩＤ及びアバターＡのアバターＩＤに対応させてデータ記憶部１８に記憶される。
【００４２】
また、クライアント６ａにおいてテキスト情報の入力が終了した場合には、入力を終えたテキスト情報（文字列）、即ち、入力部２４を介して入力されたチャットメッセージを通信制御部２２及びネットワーク４を介してサーバ２に送信する。また、テキスト情報と共に、チャットルーム内におけるアバターの位置を示すアバター位置情報、即ち、アバターＡの３次元の仮想空間内における位置を示す座標をサーバ２に送信する。なお、サーバ２に送信されたテキスト情報及びアバター位置情報は、データ記憶部２６に記憶される。
【００４３】
サーバ２においては、図５のフローチャートに示すように、クライアント６ａからネットワーク４を介して送信されたテキスト情報を通信制御部１２を介して受信する（ステップＳ１１）。なお、受信されたテキスト情報は、ユーザＩＤ及びアバターＩＤに対応させてデータ記憶部１８に記憶される。
【００４４】
次に、ステップＳ１１において受信されたテキスト情報の文字数をカウントする（ステップＳ１２）。即ち、データ記憶部１８に記憶されたテキスト情報の文字列を構成する文字数をカウントし、カウントされた文字数をテキスト情報に対応させてデータ記憶部１８に記憶する。
【００４５】
次に、クライアント６ａから送信されたアバター位置情報を通信制御部１２を介して受信する（ステップＳ１３）。即ち、クライアント６ａの表示部２８に表示されているチャットルームにおけるアバターの位置を示す３次元の仮想空間の座標を受信する。なお、受信されたアバター位置情報は、ユーザＩＤ及びアバターＩＤに対応させてデータ記憶部１８に記憶される。
【００４６】
次に、ステップＳ１３において受信されたアバター位置情報に基づいて、アバターの動作反応範囲を設定する（ステップＳ１４）。例えば、３次元の仮想空間内に存在するアバターＡを中心とした所定範囲を囲む円を設定し、設定された円の範囲内でアバターの正面から上下方向に所定角度、例えば、上下方向に１２０度の範囲、即ち、アバターの正面位置から上方向に６０度、下方向に６０度の範囲を上下範囲として設定する。また、設定された円の範囲内でアバターの正面から左右方向に所定角度、例えば、左右方向に１２０度の範囲、即ち、アバターの正面位置から左方向に６０度、右方向に６０度の範囲を左右範囲として設定する。次に、上下範囲と左右範囲とを重ねあわせ、上下範囲と左右範囲とにより規定される範囲をアバターＡの動作反応範囲として設定する。なお、動作反応範囲は、３次元の仮想空間内に存在するアバター毎に設定され、設定された動作反応範囲は、ユーザＩＤ及びアバターＩＤに対応させてデータ記憶部１８に記憶される。
【００４７】
ここで、動作反応範囲が設定された場合、例えば、アバターＡの動作反応範囲が設定された場合には、アバターＡの動作反応範囲内に存在する他のアバターの全てが対話相手候補としてデータ記憶部１８の対話相手候補テーブル（図３参照）に記憶される。
【００４８】
次に、ステップＳ１４において設定された動作反応範囲に基づいて対話相手を決定する（ステップＳ１５）。例えば、複数のユーザ間でチャットが行われている場合に、発言を行うユーザのアバターが視線を向ける相手（対話相手）を決定する。ここで、対話相手を決定する処理は、図６のフローチャートを参照し以下に説明する。なお、以下においては、ユーザＡが発言する際の対話相手、即ち、アバターＡが視線を向ける相手となるアバターを決定する場合を例として説明する。
【００４９】
アバターＡの動作反応範囲内に複数のアバターが存在する場合には（ステップＳ２０）、ステップＳ１１において受信されたテキスト情報中のアバター名を検索する（ステップＳ２１）。即ち、アバターＡの発言としてクライアント６ａから送信されたテキスト情報の中に、他のアバターのアバター名が含まれているか否かを確認すべく、他のアバターのアバター名をキーワードとしたキーワード検索を行う。例えば、テキスト情報の中に、アバターＡの動作反応範囲内に存在するアバターＢのアバター名「ヘンリー」又はアバターＣのアバター名「チャーリー」が含まれているか否かを検索する。なお、アバターＡの動作反応範囲内に複数のアバターが存在しない場合（ステップＳ２０）、例えば、アバターＡの動作反応範囲内に存在するアバターがアバターＢのみである場合には、ステップＳ２６に進む。
【００５０】
テキスト情報中にアバター名が含まれている場合には（ステップＳ２２）、ステップＳ２６に進む。一方、テキスト情報内にアバター名が含まれていない場合には（ステップＳ２２）、対話相手候補テーブルに記録されている最終発言時刻と、入力開始信号により示される入力開始時刻とを比較する（ステップＳ２３）。即ち、アバターＡを用いているユーザＡがテキスト情報の入力を開始する時刻から所定範囲内でかつ、ユーザＡがテキスト情報の入力を開始する時刻から最も近い時刻に発言したユーザのアバターが存在するか否かを確認すべく、データ記憶部１８においてアバターＡの対話相手候補テーブルに記録されている各アバターの最終発言時刻と、データ記憶部１８に記憶されている入力開始信号に基づくアバターＡの入力開始時刻とを比較する。
【００５１】
入力開始時刻よりも前の時刻となっている最終発言時刻が存在する場合には（ステップＳ２４）、ステップＳ２６に進む。一方、入力開始時刻よりも前の時刻となっている最終発言時刻が存在しない場合には（ステップＳ２４）、アバター間の距離を算出する（ステップＳ２５）。即ち、アバターＡの動作反応範囲内に存在する各アバターの最終発言時刻がユーザＡの入力開始時刻以降となっている場合、又は、最終発言時刻が記録されていない場合には、アバターＡとアバターＡの動作反応範囲内に存在する各アバターとの間の距離を算出する。例えば、アバターＡの動作反応範囲内にアバターＢ及びアバターＣが存在する場合には、アバターＡとアバターＢとの間の距離と、アバターＡとアバターＣとの間の距離とをそれぞれ算出する。
【００５２】
次に、ユーザＡの対話相手、即ち、ユーザＡが発言する際にアバターＡが視線等を向ける相手となるアバターのユーザを決定する（ステップＳ２６）。ここで、アバターＡの動作反応範囲内に複数のアバターが存在しない場合（ステップＳ２０）、例えば、アバターＢのみがアバターＡの動作反応範囲内に存在する場合には、アバターＢのユーザＢをユーザＡの対話相手として決定する。また、テキスト情報中からアバター名が検索された場合（ステップＳ２２）、例えば、テキスト情報として「ヘンリーさん、元気ですか？」という文字列が受信されており、アバター名「ヘンリー」が検索された場合には、アバター名「ヘンリー」、即ち、アバターＢ（図３参照）のユーザＢがユーザＡの対話相手として決定される。
【００５３】
更に、最終発言時刻がユーザＡの入力開始時刻より前となっているユーザのアバターが存在する場合には（ステップＳ２４）、入力開始時刻前であって、かつ、入力開始時刻に最も近い時刻に発言したユーザを対話相手として決定する（ステップＳ２６）。例えば、ユーザＡの入力開始時刻が１２時１２分３６秒となっている場合に、図３に示すように、アバターＢの最終発言時刻が１２時１２分１２秒、アバターＣの最終発言時刻が１２時１２分００秒となっているとする。この場合、アバターＢとアバターＣの双方の発言がユーザＡの入力開始時刻より前となっているが、ユーザＡの入力開始時刻により近い時刻はアバターＢの最終発言時刻であるため、アバターＢのユーザＢがユーザＡの対話相手として決定される。
【００５４】
また、ステップＳ２５においてアバター間の距離が算出されている場合には、アバターＡとの間の距離が最も短いアバターのユーザがユーザＡの対話相手として決定される（ステップＳ２６）。即ち、アバターＡの最も近くに存在するアバターのユーザが、ユーザＡの対話相手として決定される。
【００５５】
次に、発言したユーザのアバター及びチャットに参加しているユーザのアバターの動作パラメータを算出する（ステップＳ１６、図５参照）。ここで、例えば、人が対面して行う通常の会話におけるノンバーバル表現、即ち、顔表情、視線及び頷き等の非言語表現には、（１）人物間の非言語表現の関連性、（２）人物内の非言語表現の関連性が存在する。即ち、人物間において対話が行われている場合、人物間の視線、顔表情、頷き、発話の量には一定の関連性があることが知られている。また、人物内の非言語表現はそれぞれの要素が一定の関連性を有していることが知られている。なお、視線は相手を見つめる時間、顔表情は笑顔の強さ、頷きは頷く回数、発話は発話語数（例えば、チャットメッセージの文字数）である。
【００５６】
（１）の人物間の非言語表現の関連性は、非言語表現の表出量には対話者間の親密度に基づく平衡状態が存在するというものである。例えば、ユーザＡとユーザＢとの間で対面により会話が行われている場合、ユーザＡの視線、顔表情（表情）、頷き及び発話と、ユーザＢの視線、顔表情（表情）、頷き及び発話との関係は、図７（ａ）に示すように、線で結ばれた表現間において、一方が高まると他方も高まるという正の相関関係を有している。即ち、図７（ｂ）の表において「○」を付した表現間においては、例えば、ユーザＡの視線が高まることにより、ユーザＢの発話量及び視線が高まり、ユーザＢの笑顔が高まることによりユーザＡの発話量及び笑顔が高まる等の正の相関関係が存在する。
【００５７】
（２）の人物内の非言語表現の関連性とは、人物内の非言語表現は、対話者間の親密度に基づく平衡状態にあり、常に各種の表現の総和を平衡に保とうとするというものである。例えば、ユーザＡの視線、表情、頷き及び発話の中で、視線の値が高くなれば、頷きの値が低くなる等、各種の非言語表現の総和が一定（平衡）になるように保たれる。
【００５８】
ここで、ユーザＡの非言語表現の表出量をｘＡ、ユーザＢの非言語表現の表出量をｘＢとすると、上述の（１）に基づく非言語表現の人物間の関連性に基づいて、ｘＡとｘＢの関係を以下の（数式１）により示すことができる。
ｘＡ＝ｘＢ・・・（数式１）
また、ユーザの意図が働いた非言語表現のそれぞれの要素の表出量をｃｉとすると、上述の（２）に基づく非言語表現の人物内の関連性に基づいて、Σｃｉの値は常に一定となる。また、アバターによって表出される非言語表現の表出量をｅとし、ｅを以下の（数式２）により定義する。なお、「ａ」は、個人差を示す係数であり、ユーザが任意に設定することができる。
ｅ＝ｘ・ｃ・ａ・・・（数式２）
この時、アバターＡの顔表情の表出量を示す動作パラメータをｅＡｆ、視線の表出量を示す動作パラメータをｅＡｅ、頷きの表出量を示す動作パラメータをｅＡｎ、発話の表出量（発言量、ステップＳ１１においてカウントされた文字数）を示す動作パラメータをｅＡｓとし、アバターＢの顔表情の表出量を示す動作パラメータをｅＢｆ、視線の表出量を示す動作パラメータをｅＢｅ、頷きの表出量を示す動作パラメータをｅＢｎ、発話の表出量（発言量）を示す動作パラメータをｅＢｓとする。また、アバターＡの意図に基づく顔表現の表出量をｃＡｆ、意図に基づく視線の表出量をｃＡｅ、意図に基づく頷きの表出量をｃＡｎ、意図に基づく発話の表出量をｃＡｓとし、アバターＢの意図に基づく顔表情の表出量をｃＢｆ、意図に基づく視線の表出量をｃＢｅ、意図に基づく頷きの表出量をｃＢｎ、意図に基づく発話の表出量をｃＢｓとする。更に、アバターＡの顔表現の表出量に関する個人差を示す係数をａＡｆ、視線の表出量に関する個人差を示す係数をａＡｅ、頷きの表出量に関する個人差を示す係数をａＡｎ、発話の表出量に関する個人差を示す係数をａＡｓとし、アバターＢの顔表情の表出量に関する個人差を示す係数をａＢｆ、視線の表出量に関する個人差を示す係数をａＢｅ、頷きの表出量に関する個人差を示す係数をａＢｎ、発話の表出量に関する個人差を示す係数をａＢｓとする。
【００５９】
ここで、（数式１）よりアバターＡとアバターＢの非言語表現の表出量が等しく、また、アバターＡとアバターＢのそれぞれの非言語表現の要素の表出量は（数式２）に基づいて算出することができる。従って、上述の（１）に示す関連性に基づいて、例えば、アバターＡの視線とアバターＢの視線との間には、以下の（数式３）に示す関係が成立する。
ｅＡｅ／（ｃＡｅ・ａＡｅ）＝ｅＢｅ／（ｃＢｅ・ａＢｅ）・・・（数式３）
また、上述の（２）に示す関連性に基づいて、アバターＡの意図に基づく非言語表現の各々の要素とアバターＢの意図に基づく非言語表現の各々の要素と、ユーザＡとユーザＢとの間の親密度（Ｉ）との間には以下の（数式４）に示す関係が成立する。
ｃＡｆ＋ｃＢｆ＋ｃＡｅ＋ｃＢｅ＋ｃＡｎ＋ｃＢｎ＋ｃＡｓ＋ｃＢｓ＝Ｉ・・・（数式４）
以上より、（数式３）及び（数式４）に基づいて、図７（ｂ）に示す正の相関関係を有する非言語表現間の関係を以下の数式（数式５）〜（数式１３）により示すことができる。この時、以下の（数式５）〜（数式１３）においてＥ１〜Ｅ１２の各々の値が「０」となるように、それぞれの要素の表出量「ｅ」の値を算出することにより、上述の関連性（１）及び（２）を満たした非言語表現の表出量を示す動作パラメータの値を算出することができる。
Ｅ１＝｛ｅＡｅ／（ｃＡｅ・ａＡｅ）−ｅＢｅ／（ｃＢｅ・ａＢｅ）｝２・・・（数式５）
Ｅ２＝｛ｅＡｆ／（ｃＡｆ・ａＡｆ）−ｅＢｆ／（ｃＢｆ・ａＢｆ）｝２・・・（数式６）
Ｅ３＝｛ｅＡｓ／（ｃＡｓ・ａＡｓ）−ｅＢｅ／（ｃＢｅ・ａＢｅ）｝２・・・（数式７）
Ｅ４＝｛ｅＡｅ／（ｃＡｅ・ａＡｅ）−ｅＢｓ／（ｃＢｓ・ａＢｓ）｝２・・・（数式８）
Ｅ５＝｛ｅＡｓ／（ｃＡｓ・ａＡｓ）−ｅＢｆ／（ｃＢｆ・ａＢｆ）｝２・・・（数式９）
Ｅ６＝｛ｅＡｆ／（ｃＡｆ・ａＡｆ）−ｅＢｓ／（ｃＢｓ・ａＢｓ）｝２・・・（数式１０）
Ｅ７＝｛ｅＡｓ／（ｃＡｓ・ａＡｓ）−ｅＢｎ／（ｃＢｎ・ａＢｎ）｝２・・・（数式１１）
Ｅ８＝｛ｅＡｎ／（ｃＡｎ・ａＡｎ）−ｅＢｓ／（ｃＢｓ・ａＢｓ）｝２・・・（数式１２）
Ｅ９＝｛Ｉ−（ｃＡｆ＋ｃＢｆ＋ｃＡｅ＋ｃＢｅ＋ｃＡｎ＋ｃＢｎ＋ｃＡｓ＋ｃＢｓ）｝２・・・（数式１３）
なお、親密度Ｉは、予めユーザにより設定され、データ記憶部１８に記憶されている。また、算出されたそれぞれの動作パラメータは、ユーザＩＤ及びアバターＩＤに対応させてデータ記憶部１８に記憶される。また、アバターＡの非言語表現の表出量及びアバターＣの非言語表現の表出量を上述の数式（１）〜数式（１３）に当てはめ、上述のアバターＡとアバターＢの間における動作パラメータを算出する処理と同様の処理によりアバターＡとアバターＣの間における動作パラメータが算出される。また、算出された動作パラメータは、ユーザＩＤ及びアバターＩＤに対応させてデータ記憶部１８に記憶される。
【００６０】
ここで、ユーザＡとユーザＢとの間の親密度と、ユーザＡとユーザＣとの間の親密度とが同一となっている場合、ユーザＢの動作パラメータとユーザＣの動作パラメータとが同一となってしまう。従って、ユーザＢとユーザＣのユーザＡに対する親密度が同一となっている場合には、上述の数式において非言語表現の表出量を算出する際に用いられる初期値を変更して動作パラメータを算出する。即ち、アバターＢの動作パラメータを算出する際に用いた初期値と異なる初期値を用いてアバターＣの動作パラメータを算出し、アバターＢとアバターＣの動作パラメータが同一となることを防止する。
【００６１】
なお、アバターＡの動作パラメータとしては、ステップＳ１５において対話相手として決定されたユーザとの間の動作パラメータが用いられる。即ち、データ記憶部１８には、アバターＡの動作パラメータとしてアバターＢとの間において算出された動作パラメータと、アバターＣとの間において算出された動作パラメータとが記憶されている。従って、データ記憶部１８に記憶されている２つの動作パラメータの中から対話相手として決定されたユーザのアバターとの間において算出された動作パラメータが、アバターＡの動作パラメータとなる。
【００６２】
次に、ステップＳ１６において算出された動作パラメータに基づいて、発言したユーザのアバター及びチャットに参加しているユーザのアバターのそれぞれの動作を示す動作情報を作成する（ステップＳ１７）。即ち、データ記憶部１８に記憶されている動作パラメータに基づいて、例えば、アバターＡがアバターＢに視線を向ける時間、笑顔の程度及び頷く回数と、アバターＢがアバターＡに視線を向ける時間、笑顔の程度及び頷く回数とアバターＣがアバターＡに視線を向ける時間、笑顔の程度及び頷く回数を示す動作情報をそれぞれ作成する。なお、作成された動作情報は、ユーザＩＤ及びアバターＩＤに対応させてデータ記憶部１８に記憶される。
【００６３】
図８は、アバターの動作情報の一例を示す図である。図８においては、ユーザＡがアバターＡを用い、ユーザＢがアバターＢを用いてチャットを行っている場合のアバターＡ、アバターＢの動作情報の一例を示している。ここで、視線は、相手に視線を向ける時間の割合を示し、顔表情は相手に見せる笑顔の強度を示している。また、頷きは相手に返す頷きの回数であり、発話量は、発話語数、即ち、チャットメッセージの文字数である。図８に示すように、例えば、「ｄａｔａ１」において、アバターＡの視線の値は「０．２３」、顔表情の値は「０．２７」、頷きの値は「０」、発話量は「５」であり、アバターＢの視線の値は「０．２６」、顔表情の値は「０．２３」、頷きの値は「０」、発話量は「５」となっている。また、「ｄａｔａ４」において、アバターＡの視線の値は「０．４５」、顔表情の値は「０．５５」、頷きの値は「１．５」、発話量は「３０」であり、アバターＢの視線の値は「０．５１」、顔表情の値は「０．４８」、頷きの値は「１．５」、発話量は「３０」となっている。従って、発話量の増加に伴って視線、笑顔及び頷きの値が増加しており、非言語表現の各要素間において正の相関関係が成立している。また、アバターＡの非言語表現は、発話量の増加に伴い各要素の合計値が増加しており、アバターＡの非言語表現の表出量が平衡状態を保っている。同様に、アバターＢの非言語表現においても、非言語表現の表出量が平衡状態を保っている。なお、図８においては、アバターＣの動作情報を省略しているが、アバターＣの動作情報も、アバターＡとアバターＢの間における場合と同様に、非言語表現の各要素間における相関関係を有していると共に、アバターＡとの間の平衡状態を保っている。
【００６４】
次に、データ記憶部１８に記憶されている動作情報をチャットを行っているクライアントに送信する（ステップＳ１８）。例えば、ユーザＡ、ユーザＢ及びユーザＣの間でチャットを行っている場合には、クライアント６ａ、クライアント６ｂ及びクライアント６ｃのそれぞれに対して、アバターＡの動作情報、アバターＢの動作情報及びアバターＣの動作情報を送信する。ここで、動作情報は、アバターＩＤと共に、例えば、アバターＡの動作情報はアバターＡのアバターＩＤと共に、アバターＢの動作情報はアバターＢのアバターＩＤと共に、アバターＣの動作情報はアバターＣのアバターＩＤと共に送信される。
【００６５】
次に、チャットに参加しているアバターのユーザが用いるクライアントに対して、データ記憶部１８に記憶されているテキスト情報を送信する（ステップＳ１９）。例えば、アバターＡ、アバターＢ及びアバターＣの間でチャットが行われている場合には、アバターＢを用いているユーザＢのクライアント６ｂ及びアバターＣを用いているユーザＣのクライアント６ｃのそれぞれに対してテキスト情報を送信する。
【００６６】
クライアント６ａにおいては、サーバ２からネットワーク４を介して送信されたアバターＡの動作情報、アバターＢの動作情報及びアバターＣの動作情報を通信制御部２２を受信する。そして、アバターＡのアバターＩＤに対応する動作情報に基づいてアバターＡの視線、顔表情及び頷きの動作を変化させて表示部２８に表示すると共に、アバターＢのアバターＩＤに対応する動作情報に基づいてアバターＢの視線、顔表情及び頷きの動作とアバターＣの視線、顔表情及び頷きの動作を変化させて表示部２８に表示する。また、アバターの動作を表示する際に、データ記憶部２６に記憶されているユーザＡのチャットメッセージであるテキスト情報を表示部２８に表示する。
【００６７】
また、クライアント６ｂにおいては、クライアント６ａにおける場合と同様に、アバターＡ、アバターＢ及びアバターＣの動作を変化させて表示すると共に、サーバ２から送信されたテキスト情報を受信し、受信されたテキスト情報に基づいてユーザＡのチャットメッセージを表示する。更に、クライアント６ｃにおいても、クライアント６ａ及びクライアント６ｂにおける場合と同様に、アバターＡ、アバターＢ及びアバターＣの動作を変化させて表示すると共に、サーバ２から送信されたテキスト情報を受信し、受信されたテキスト情報に基づいてユーザＡのチャットメッセージを表示する。
【００６８】
この発明の実施の形態に係るアバター制御装置によれば、複数のユーザ間でチャットを行っており、アバターの視線、顔表情、頷き等の動作を制御している場合に、発言者であるユーザのアバターが視線を向ける相手（対話相手）となるアバターのユーザをアバターの動作反応範囲内に存在するアバターの中から決定している。即ち、現実の会話において、複数人の間で会話が行われている場合、発言する際には複数の相手の中の一人に対して視線を向けるのが一般的であるため、複数のユーザ間でチャットを行っている場合にも、何れかのユーザのアバターに対して視線を向けるように発言者であるユーザのアバターを制御している。従って、アバターを用いたコミュニケーションにおいて、発言者のアバターがコミュニケーションを行っている複数のアバターの中の一のアバターに対して視線を向けるように動作させ、アバターの動作が自然な動作となるように制御することができる。
【００６９】
また、この発明の実施の形態に係るアバター制御装置によれば、テキスト情報の中にアバター名が含まれている場合には、該アバター名に対応するアバターのユーザを対話相手に決定している。従って、現実の会話において、相手の名前を呼ぶ際にはその相手に視線を向けるように、テキスト情報中に含まれるアバターに視線を向けるようにアバターの動作を制御することができる。そのため、アバターを自然に動作させることができ、アバターの動作に対するユーザの違和感を払拭することができる。
【００７０】
また、この発明の実施の形態に係るアバター制御システムは、動作反応範囲内に存在するアバターを用いるユーザの最終発言時刻と、発言するユーザの入力開始時刻に基づいて対話相手を決定している。例えば、ユーザＡがテキスト情報の入力を開始した場合、ユーザＡがテキスト情報の入力を開始する直前に発言したユーザを対話相手として決定している。従って、例えば、ユーザＢの発言に対する返事としてユーザＡが入力を開始した場合、ユーザＡのアバターＡが、ユーザＢのアバターＢに視線を向けるように、アバターＡの動作を制御することができる。
【００７１】
また、最終発言時刻、即ち、ユーザが入力し終えたテキスト情報をサーバが受信した時刻と、入力開始時刻、即ち、ユーザがテキスト情報の入力を開始した時刻とを比較しているため、適切な相手を対話相手として決定することができる。例えば、ユーザＡが発言した後にユーザＢとユーザＣとがそれぞれテキスト情報の入力を開始した場合、それぞれのユーザが入力を開始したことを示す入力開始信号がサーバにおいて受信される。ここで、ユーザＢがユーザＣより先にテキスト情報の入力を終了し、入力し終えたテキスト情報をサーバに送信した場合、ユーザＣのテキスト情報が受信された時点では、既にユーザＢからのテキスト情報が受信されており、ユーザＣが発言する直前に発言したユーザはユーザＢとなる。この場合であっても、最終発言時刻と入力開始時刻を比較することにより、ユーザＢの発言は、ユーザＣが入力を開始した後に受信されたことが確認されるため、アバターＣはアバターＡに視線を向けるように制御される。従って、アバターが自然な動作をするように制御し、ユーザがアバターの動作に対して違和感を感じることがないようにすることができる。
【００７２】
また、この発明の実施の形態に係るアバター制御システムは、動作反応範囲内に存在するアバターの中で、最も近くに存在するアバターのユーザを対話相手に決定している。即ち、現実の会話において、グループで会話を始める際、最初は近くに居る人に視線を向けるのと同様に、例えば、チャットを始める際や、新たなテーマについてチャットを行う場合に、最も近くに存在するアバターに視線を向けるようにアバターの動作を制御することができる。従って、アバターの動作を現実の会話における動作と同様の動作になるように制御することができ、アバターの動作が自然な動作となるように制御することができる。
【００７３】
なお、上述の実施の形態に係るアバター制御システムにおいては、対話相手をテキスト情報内のアバター名、最終発言時刻、距離に基づいて決定しているが、これらに基づいて対話相手の優先順位を決定するようにしてもよい。例えば、優先順位１位をテキスト情報内のアバター名、優先順位２位を最終発言時刻、優先順位３位を距離とし、動作反応範囲内に存在するアバターを順位付けをするようにしてもよい。そして、対話相手の優先順位が決定された場合には、優先順位に基づいて全てのアバターに対して視線を向けるようにしてもよい。例えば、優先順位１〜３位のアバターに対して、優先順位１位のアバターに対しては３秒、優先順位２位のアバターに対しては２秒、優先順位３位のアバターに対しては１秒それぞれ視線を向けるように発言者のアバターを制御するようにしてもよい。
【００７４】
また、上述の実施の形態に係るアバター制御システムにおいては、上下方向に１２０度の範囲を上下範囲とし、左右方向に１２０度の範囲を左右範囲としているが、更に広い（狭い）角度の範囲を上下範囲、左右範囲として設定してもよい。例えば、上下方向に１８０度や９０度の範囲、左右方向に１８０度や９０度の範囲をそれぞれ上下範囲や左右範囲として設定してもよい。また、上下範囲を設定する際の角度と、左右範囲を設定する際の角度とを異なる角度としてもよい。例えば、上下方向に１００度の範囲を上下範囲、左右方向に１８０度の範囲を左右範囲として設定してもよい。更に、上方向に９０度の範囲と下方向に３０度の範囲を上下範囲とし、左方向に９０度の範囲と右方向に６０度の範囲を左右範囲として設定するようにしてもよい。
【００７５】
また、上述の実施の形態に係るアバター制御システムにおいては、チャットの際のアバターの動作を制御する場合を例としているが、チャット以外のコミュニケーションにおけるアバターの動作を制御するようにしてもよい。
【図面の簡単な説明】
【００７６】
【図１】この発明の実施の形態に係るアバター制御システムのブロック構成図である。
【図２】この発明の実施の形態に係るサーバのブロック構成図である。
【図３】この発明の実施の形態に係る対話相手候補テーブルの一例を示す図である。
【図４】この発明の実施の形態に係るクライアントのブロック構成図である。
【図５】この発明の実施の形態に係るアバターの制御処理を説明するためのフローチャートである。
【図６】この発明の実施の形態に係る対話相手の決定処理を説明するためのフローチャートである。
【図７】この発明の実施の形態に係る非言語表現の各要素の関連性を説明するための図である。
【図８】この発明の実施の形態に係る動作情報の一例を示す図である。
【符号の説明】
【００７７】
２・・・サーバ（アバター制御システム）、４・・・ネットワーク、６ａ、６ｂ、６ｃ・・・クライアント、１０・・・データ制御部、１２・・・通信制御部、１４・・・ユーザ情報記憶部、１６・・・アバター情報記憶部、１８・・・データ記憶部、２０・・・データ記憶部、２２・・・通信制御部、２４・・・キーボード、２６・・・データ記憶部、２８・・・表示部。
【図１】
2005250859.tif 000003
【図２】
2005250859.tif 000004
【図３】
2005250859.tif 000005
【図４】
2005250859.tif 000006
【図５】
2005250859.tif 000007
【図６】
2005250859.tif 000008
【図７】
2005250859.tif 000009
【図８】
2005250859.tif 000010