以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
[第1の実施形態]
<画像生成システムの全体構成>
はじめに、画像生成システムについて説明する。図1は、画像生成システムの全体構成の一例を示す図である。図1に示すように、画像生成システム100は、サーバソフトウェアが配置される画像生成装置110と、クライアントアプリケーションソフトウェアが配置される情報処理装置121、131をそれぞれ含むクライアント側システム120、130とを有する。画像生成装置110と、クライアント側システム120、130とは、インターネットやLAN(Local Area Network)等に代表されるネットワーク160を介して接続される。
画像生成システム100は、画像生成装置110と、クライアント側システム120、130とが、全体の処理を分割して実行する。これにより、画像生成システム100は、アバタ(ユーザと対応付けた状態の画像)を介してユーザ同士のコミュニケーションを実現するコミュニケーションサービスを提供する。
ユーザ140(ユーザID=“userA”)、ユーザ150(ユーザID=“userB”)は、互いに離間した場所にて、画像生成システム100が提供するコミュニケーションサービスを利用する。コミュニケーションサービスを利用することで、ユーザ140とユーザ150とは同じ仮想空間においてアバタを介してコミュニケーションを行うことができる。
画像生成装置110は、ユーザ140、150の動作をセンシングした結果得られたセンサデータを収集し、各種処理を行うサーバ装置である。
画像生成装置110には、サーバソフトウェアとしての画像生成プログラムがインストールされており、当該画像生成プログラムが実行されることで、画像生成装置110は、基本機能部及びリアクティブ処理部115として機能する。
基本機能部には、情報収集処理管理部111、情報表示処理部112、登録データ管理部113、表示履歴管理部114が含まれ、コミュニケーションサービスを提供するための基本的な機能を実現する。
情報収集処理管理部111は、ユーザ140、150の動作をセンシングした結果得られたセンサデータを収集してセンサデータ用データベース(以下、DB(Database)と略す)116bに格納する。
情報表示処理部112は、センサデータ用DB116bに格納されたセンサデータに基づいて、仮想空間におけるアバタの画像を生成する。情報表示処理部112は、例えば、コンテンツ用DB116aに格納されたアバタ骨格モデルを用いてアバタの画像を生成する。
アバタ骨格モデルとは、人型の画像であって、複数のアバタ骨格を用いて、ユーザの各部位の動作を表現する画像である。なお、アバタ骨格とは、アバタの頭や肢体を動かす基点となるオブジェクトであり、1のアバタ骨格モデル内には、複数のアバタ骨格が含まれる。
情報表示処理部112は、各アバタ骨格について、センサデータに基づいて仮想空間における位置座標及び回転角度を算出し、算出した位置座標及び回転角度をアバタ骨格モデルに反映させることでアバタの画像を生成する。
また、情報表示処理部112は、コンテンツ用DB116aに格納された仮想空間の画像(背景画像)に、アバタの画像を組み込みこむことで仮想空間用情報を生成し、クライアント側システム120、130に送信する。
なお、情報表示処理部112は、リアクティブ処理部115からの指示に基づいて、仮想空間の画像に組み込むアバタの画像を変更するものとする。例えば、リアクティブ処理部115から、リアクティブ処理部115にて生成したアバタの画像を表示するよう指示があった場合、情報表示処理部112は、リアクティブ処理部115にて生成したアバタの画像を組み込むことで仮想空間用情報を生成する。
登録データ管理部113は、情報収集処理管理部111がセンサデータを収集し、情報表示処理部112が仮想空間用情報を生成して送信するまでの間に用いられる各種情報をコンテンツ用DB116a、定義データ用DB118等に登録する。
表示履歴管理部114は、情報表示処理部112が送信した仮想空間用情報に含まれるアバタの画像の生成に用いられたデータを、ログデータとして、ログ用DB117に格納された“表示情報に関するログテーブル”に記録する。なお、アバタの画像の生成に用いられたデータとは、具体的には、各アバタ骨格の位置座標及び回転角度のデータである。
リアクティブ処理部115は、第1のユーザに対してリアクティブな振る舞いを行うことが望ましい場面において、第2のユーザのリアクティブな振る舞いを示すアバタの画像を生成する。また、リアクティブ処理部115は、生成したアバタの画像を表示するよう、情報表示処理部112に指示する。
これは、リアクティブな振る舞いを行うことが望ましい場面においては、第2のユーザの実際の動作をセンシングしたセンサデータに基づいてアバタの画像を生成したのでは、第1のユーザに対してリアクティブな振る舞いを提示することはできないからである。
そこで、リアクティブ処理部115では、第1のユーザに対して第2のユーザが行うであろうリアクティブな振る舞いに基づいてアバタの画像を生成する。これにより、リアクティブ処理部115によれば、第2のユーザによる実際の動作をセンシングしたセンサデータを待つことなく、第1のユーザに対して、第2のユーザのリアクティブな振る舞いを提示する提示制御処理を実現することができる。
なお、以下では、第1のユーザがユーザ140(ユーザID=“userA”)、第2のユーザがユーザ150(ユーザID=“userB”)であるとして説明を行う。また、以下では、リアクティブな振る舞いを行う相手(ユーザ)を、「対話相手」と称する。
続いて、クライアント側システムについて説明する。図1に示すように、画像生成システム100において、クライアント側システム120とクライアント側システム130とは同様の構成を有している。このため、ここでは、クライアント側システム120について説明する。
クライアント側システム120は、情報処理装置121、情報提示装置123、情報収集装置124〜126を有する。
情報処理装置121には、クライアントアプリケーションソフトウェアとしての情報処理プログラムがインストールされており、当該情報処理プログラムが実行されることで、情報処理装置121は、情報処理部122として機能する。情報処理部122は、情報収集装置124〜126から出力されるセンサデータを画像生成装置110に送信するとともに、画像生成装置110から送信される仮想空間用情報を受信し、情報提示装置123に出力する。
なお、第1の実施形態において、情報処理装置121は、HMD(Head-Mounted Display)に搭載されているものとして説明するが、情報処理装置121は、HMDに搭載されていなくてもよい。例えば、情報処理装置121は、ユーザ140を取り囲む環境埋め込み型端末に搭載されていてもよい。あるいは、情報処理装置121は、コンタクトレンズ、眼鏡のような装着型モバイル端末や、据え置き型のサーバ装置等に搭載されていてもよい。
情報提示装置123は、画像生成装置110より送信された仮想空間用情報を、ユーザ140に対して表示する。なお、第1の実施形態において、情報提示装置123は、HMDの表示部により実現される。
情報収集装置124〜126は、ユーザ140の現実空間における非言語動作をセンシングし、センサデータを出力する。
第1の実施形態において、情報収集装置124は頭部姿勢センサであり、HMDに搭載される。頭部姿勢センサ124は、ユーザ140の現実空間における非言語動作に含まれる“頭の位置・向き”をセンシングして頭部姿勢データを出力する。
また、第1の実施形態において、情報収集装置125は深度センサである。深度センサ125は、ユーザ140の前方に設置され、設置位置からユーザ140までの三次元の距離をセンシングすることで、現実空間におけるユーザ140の非言語動作に応じて変化する深度データ及び二次元の距離画像等を出力する。深度データとは、深度(奥行き)を示すデータ(例えば、3cm等)である。また、距離画像とは、深度センサ125から得られた深度データをXY平面にプロットして得られる画像をいう。距離画像上の各画素には、深度センサ125から得た各XY座標位置にある物体(深度センサ125から見て一番手前にある物体)までの距離の値が格納される。なお、深度センサ125から得られるデータ(深度データ、距離画像のほか、カラー画像等も含む)を総称して、深度センサデータと称する。
また、第1の実施形態において、情報収集装置126は筋電位センサである。筋電位センサ126は、現実空間におけるユーザ140の非言語動作に含まれる“表情の変化”をセンシングして筋電位データを出力する。
なお、以下では、クライアントアプリケーションソフトウェアが配置された1つの装置(情報処理装置)上に、1人のユーザが割り当てられるものとして説明するが、1つの装置上に複数のユーザが割り当てられていてもよい。
また、以下では、サーバソフトウェアもクライアントアプリケーションソフトウェアも、それぞれ1つの装置(画像生成装置、情報処理装置)上に配置されるものとして説明するが、1つの装置上に、複数のソフトウェアが配置されていてもよい。
あるいは、サーバソフトウェアとクライアントアプリケーションソフトウェアは、1つの装置上に配置されていてもよい。例えば、各情報処理装置121、131それぞれに画像処理プログラムと情報処理プログラムとがインストールされていてもよい。
あるいは、サーバソフトウェアもクライアントアプリケーションソフトウェアも、それぞれのソフトウェアにおいて実現される機能が、複数の装置に分散されて配置されていてもよい。
また、以下では、クライアントアプリケーションソフトウェアがユーザ140を識別し、画像生成装置110から送信される仮想空間用情報を、当該識別したユーザ140に応じた仮想空間用情報に変換して表示するものとする。また、以下では、ユーザ140の非言語動作をセンシングした結果得られるセンサデータが、ユーザ140と紐づけて画像生成装置110に送信されるものとして説明する。
なお、クライアントアプリケーションソフトウェアが配置される情報処理装置121は、クライアントアプリケーションソフトウェアまたはサーバソフトウェアによってアクセス制御されるものとする。つまり、以下では、クライアントアプリケーションソフトウェアは、クライアントアプリケーションソフトウェアが配置される情報処理装置121にて、本人確認(ユーザ認証)が事前に行われたうえで起動されるものとする。
また、以下では、クライアントアプリケーションソフトウェアが情報提示装置123の仕様を確認し、画像生成装置110から送信される仮想空間用情報を、当該確認した仕様に応じた仮想空間用情報に変換して表示するものとする。
また、以下では、クライアントアプリケーションソフトウェアが情報処理装置121を確認し、ユーザ140の非言語動作をセンシングした結果得られたセンサデータを、情報処理装置121と紐づけて画像生成装置110に送信するものとする。
また、以下では、ユーザ140を識別する識別子を、ユーザ140が1種類有しているものとして説明するが、画像生成システム100が複数のサービスを提供する場合にあっては、ユーザ140は、サービスごとに異なる識別子を有していてもよい。ただし、その場合、画像生成システム100により、ユーザ140が有している複数の識別子間の対応付けが管理されているものとする。
また、以下では、情報収集装置124〜126として、頭部姿勢センサ、深度センサ、筋電位センサがユーザ140の非言語動作をセンシングするものとして説明するが、それ以外のセンサが、ユーザ140の非言語動作をセンシングしてもよい。それ以外のセンサには、例えば、動画像撮像装置、静止画像(カラー画像)撮像装置、音声取得装置(マイク等)、生体センサ、脳波センサ等が含まれる。
なお、非接触のセンサにおいては、例えば、ユーザ140を撮影している静止画像にユーザ140が映っていない場合などのように、センサデータ中にユーザ140のデータが存在しない場合もある。また、例えば、ユーザ140を撮影している静止画像に複数のユーザが撮影され、どのユーザをセンシングしたのか判別できない場合もある。本実施形態においては、このような事象については、別途対策がなされているものとし、センサデータは画像生成装置110においてユーザ140と正しく紐付けがなされるものとする。
また、以下では、情報収集装置124〜126にてセンシングされたセンサデータ自体が画像生成装置110に送信されるものとして説明するが、センシングされたセンサデータから導出可能な中間的な情報が送信されてもよい。例えば、ユーザ140の顔画像データをセンシングする場合にあっては、ユーザ140の顔パーツに着目することで導出される笑顔の変化の大小を表す情報が、画像生成装置110に送信されてもよい。あるいは、ユーザ140の顔の大きさに着目することで導出される姿勢変化を表す情報が、画像生成装置110に送信されてもよい。
また、以下では、情報処理装置121、131から送信されるセンサデータには、タイムスタンプが付加されているものとする。また、このとき付加されるタイムスタンプについては、クライアント側システム120とクライアント側システム130との間で、時刻合わせがなされているものとする。
更に、以下では、情報提示装置123として、表示部を例に説明するが、HMDがそれ以外の情報提示装置を有していてもよい。表示部以外の情報提示装置には、例えば、音声出力装置(スピーカ等)が含まれる。
<仮想空間の画像>
次に、ユーザ140、150のアバタの画像を含む仮想空間の画像について説明する。図2は、仮想空間の画像の一例を示す図である。
図2に示すように、コミュニケーションサービスを利用するユーザ140は、現実空間において、HMD(頭部姿勢センサ124及び表示部123が搭載されたHMD)と、筋電位センサ126とを装着して、例えば、椅子200に着座する。また、ユーザ140の前方には深度センサ125が設置され、ユーザ140をセンシングする。
頭部姿勢センサ124、深度センサ125、筋電位センサ126がセンシングにより得た頭部姿勢データ、深度センサデータ、筋電位データは、画像生成装置110に送信され、画像生成装置110において、ユーザ140のアバタの画像が生成される。同様の処理がユーザ150に対しても行われ、画像生成装置110において、ユーザ150のアバタの画像が生成される。
更に、画像生成装置110において生成されたアバタの画像は、仮想空間の画像に組み込まれ、仮想空間用情報として情報処理装置121及び131にそれぞれ送信される。
図2に示す画像210は、情報処理装置121に送信された仮想空間用情報に含まれる仮想空間の画像の一例であり、当該画像210には、ユーザ140のアバタの画像220とユーザ150のアバタの画像230とが組み込まれている。図2に示すように、画像210は、ユーザ140が、自身のアバタの画像220を後から見ているように表示される。この状態で、ユーザ140が非言語動作を行うと、画像210内のアバタの画像220も変化する。画像210によれば、ユーザ140は、自身の非言語動作に伴って仮想空間内で変化するアバタの画像220を、アバタの画像220の後ろ側から確認することができる。なお、画像210におけるアバタの画像220の表示態様はこれに限定されるものではなく、例えば、ユーザ140が現実空間で見るのと同様、自身の目の位置から見るように、アバタの画像220を表示してもよい。この場合、ユーザ140は、アバタの画像220の一部(腕や足等)を視認することになる。
<アバタの画像の表現方法>
次に仮想空間におけるアバタの画像の表現方法について説明する。仮想空間におけるアバタの画像は、現実空間におけるユーザの非言語動作を反映させるために、部位ごとに異なる表現方法を用いて表現することができる。ただし、以下では、いずれの部位もアバタ骨格モデルを用いて表現するものとして説明する。
上述したように、アバタ骨格は1のアバタ骨格モデル内に複数含まれている。例えば、アバタ骨格モデルの頭部には、頭部のアバタ骨格が含まれている。頭部のアバタ骨格の位置座標及び回転角度は、頭部姿勢データに基づいて算出される。また、アバタ骨格モデルの頭部以外の肢体には、頭部以外の肢体のアバタ骨格が含まれている。これらのアバタ骨格の位置座標及び回転角度は、深度データに基づいて算出される。
ここでは、一例として、アバタの上半身の画像についてアバタ骨格モデルを用いて表現する表現方法について説明する。図3は、アバタの画像の表現方法の一例を示す図であり、ユーザの上半身が前傾または後傾する動作、ユーザが左右を見回すように上半身の向きを変える動作、及び上半身全体で左側面や右側面に揺れる動作をアバタの画像として表現したものである。アバタ骨格モデルを用いた表現方法の場合、これらの動作はアバタの腰の位置を原点とする3軸方向に対するアバタ骨格(“Bone_Chest”)の回転角度の変化として表現することができる。
なお、図3では、仮想空間で一意に定まる座標系のX軸、Y軸、Z軸を、それぞれアバタの左右方向、上下方向、前後方向としている。
画像301は、X軸に対してアバタ骨格が+α[度]回転した場合のアバタの画像を示しており、画像302は、X軸に対してアバタ骨格が−α[度]回転した場合のアバタの画像を示している。また、画像311は、Y軸に対してアバタ骨格が+α[度]回転した場合のアバタの画像を示しており、画像312は、Y軸に対してアバタ骨格が−α[度]回転した場合のアバタの画像を示している。
更に、画像321は、Z軸に対してアバタ骨格が+α[度]回転した場合のアバタの画像を示しており、画像322は、Z軸に対してアバタ骨格が−α[度]回転した場合のアバタの画像を示している。
<社会的振る舞いの基礎情報>
次に、社会的振る舞いと、社会的振る舞いの判定に用いられる基礎情報とについて説明する。社会的振る舞い(Social Behavior)とは、現実空間における所定の人の非言語動作のうち、社会的な存在に対して行われる非言語動作を指す。
例えば、所定の人の非言語動作が、前進する非言語動作であったとした時に、前進した先に他の人がいる場合には、当該所定の人の非言語動作は、他の人に近づくという社会的振る舞い(接近傾向を示す社会的振る舞い)であるということができる。反対に、他の人が近くにいる状態で、前進する非言語動作を行った結果、当該他の人から遠ざかる場合には、当該所定の人の非言語動作は、他の人から遠ざかる社会的振る舞い(回避傾向を示す社会的振る舞い)であるということができる。
同様に、例えば、所定の人の非言語動作が、頭の位置・向きを右方向に向ける非言語動作であったとした時に、右側に他の人がいる場合には、当該所定の人の非言語動作は、他の人に顔を向ける社会的振る舞いであるということができる。つまり、接近傾向を示す社会的振る舞いであるということができる。反対に、当該所定の人の左側に他の人がいる状態で、頭の位置・向きを右方向に向ける非言語動作を行った場合、当該所定の人の非言語動作は、他の人から顔をそむける社会的振る舞いであるということができる。つまり、回避傾向を示す社会的振る舞いであるということができる。
このため、仮想空間において社会的振る舞いを判定する場合には、仮想空間における所定の人のアバタと他の人のアバタとの物理的な距離や回転角度等の基礎情報を算出することが必要となる。
図4は、社会的振る舞いの基礎情報を説明するための図である。図4に示す画像210おいて、ユーザ140のアバタの画像220(アバタID=“AV1”)の仮想空間における位置座標が(0,0,0)であるとする。また、ユーザ150のアバタの画像230(アバタID=“AV2”)の仮想空間における位置座標が(10,0,17.32)であるとする。この場合、基礎情報として、ユーザ140のアバタの画像220と、ユーザ150のアバタの画像230との物理的な距離を、“20(=0.2[m])”と算出することができる。
また、図4において、ユーザ140のアバタの画像220の仮想空間における回転角度が(0,0,0)であり、ユーザ150のアバタの画像230の仮想空間における回転角度が(0,−90,0)であるとする。この場合、基礎情報として、ユーザ150のアバタの画像230の前後方向から、ユーザ140のアバタの画像220へのXZ平面上での回転角度を“−90[度]”と算出することができる。また、基礎情報として、ユーザ140のアバタの画像220の前後方向から、ユーザ150のアバタの画像230へのXZ平面上での回転角度を“+90[度]”と算出することができる。
なお、図4の例では、ユーザ140のアバタの画像220と、ユーザ150のアバタの画像230に加えて、オブジェクトの画像410が仮想空間内に配されている。オブジェクトの画像410の仮想空間における位置座標は(−6,21,17)であり、仮想空間における回転角度は(90,140,0)である。したがって、オブジェクトの画像410に対しても、同様に、基礎情報を算出することができる。
<画像生成装置のハードウェア構成>
次に、画像生成システム100に含まれる画像生成装置110のハードウェア構成について説明する。図5は、画像生成装置のハードウェア構成の一例を示す図である。図5に示すように、画像生成装置110は、CPU(Central Processing Unit)501、ROM(Read Only Memory)502、RAM(Random Access Memory)503を備える。CPU501、ROM502、RAM503は、いわゆるコンピュータを形成する。また、画像生成装置110は、補助記憶部504、通信部505、表示部506、操作部507、ドライブ部508を備える。なお、画像生成装置110の各部は、バス509を介して相互に接続されている。
CPU501は、補助記憶部504にインストールされた各種プログラム(例えば、サーバソフトウェアとしても画像生成プログラム)を実行する。ROM502は、不揮発性メモリである。ROM502は、補助記憶部504に格納された各種プログラムをCPU501が実行するために必要な各種プログラム、データ等を格納する主記憶部である。具体的には、ROM502はBIOS(Basic Input/Output System)やEFI(Extensible Firmware Interface)等のブートプログラム等を格納する。
RAM503は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の揮発性メモリであり、主記憶部として機能する。RAM503は、補助記憶部504に格納された各種プログラムがCPU501によって実行される際に展開される、作業領域を提供する。
補助記憶部504は、画像生成装置110にインストールされた各種プログラムや、各種プログラムが実行される際に用いられる情報(各種コンテンツ、各種定義情報等)を格納する。また、補助記憶部504は、各種プログラムを実行することで取得される情報(センサデータ、ログテーブル等)を格納する。なお、上述したコンテンツ用DB116a、センサデータ用DB116b、ログ用DB117、定義データ用DB118、評価情報DB119は、補助記憶部504において実現される。
通信部505は、画像生成装置110に接続されるクライアント側システム120、130の情報処理装置121、131と通信するためのデバイスである。表示部506は、画像生成装置110の処理結果や処理状態を表示するデバイスである。操作部507は、画像生成装置110に対して各種指示を入力するためのデバイスである。
ドライブ部508は記録媒体510をセットするためのデバイスである。ここでいう記録媒体510には、CD−ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体510には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
なお、補助記憶部504にインストールされる各種プログラムは、例えば、配布された記録媒体510がドライブ部508にセットされ、記録媒体510に記録された各種プログラムがドライブ部508により読み出されることでインストールされるものとする。あるいは、補助記憶部504にインストールされる各種プログラムは、通信部505を介してネットワーク160よりダウンロードすることでインストールされてもよい。
<情報処理装置が搭載されたHMDのハードウェア構成>
次に、情報処理装置121が搭載されたHMDのハードウェア構成について説明する。図6は、情報処理装置が搭載されたHMDのハードウェア構成の一例を示す図である。図6に示すように、HMDに搭載された情報処理装置121は、CPU601、ROM602、RAM603を備える。また、HMDに搭載された情報処理装置121は、補助記憶部604、通信部605を備える。HMDは、更に、操作部606、表示部123、頭部姿勢センサ124、I/F(Interface)部607を備え、これらの各部は、バス608を介して相互に接続されている。なお、HMDには、更に、他のセンサとして音声出力装置(スピーカ等)や、他の情報提示装置として音声取得装置(マイク等)が配されているが、ここでは、省略している。
CPU601は、補助記憶部604にインストールされた各種プログラム(例えば、クライアントアプリケーションソフトウェアとしての情報処理プログラム)を実行する。ROM602は、不揮発性メモリである。ROM602は、補助記憶部604に格納された各種プログラムをCPU601が実行するために必要な各種プログラム、データ等を格納する主記憶部である。具体的には、ROM602はBIOSやEFI等のブートプログラム等を格納する。
RAM603は、DRAMやSRAM等の揮発性メモリであり、主記憶部として機能する。RAM603は、補助記憶部604に格納された各種プログラムがCPU601によって実行される際に展開される、作業領域を提供する。
補助記憶部604は、インストールされた各種プログラムや、各種プログラムが実行される際に用いられる情報を格納する。通信部605は、画像生成装置110と通信するためのデバイスである。
操作部606は、HMDに対して各種指示を入力するためのデバイスである。表示部123は、画像生成装置110から送信された仮想空間用情報に含まれる仮想空間の画像を表示するデバイスである。
頭部姿勢センサ124は、現実空間におけるユーザ140の非言語動作に含まれる“頭の位置・向き”をセンシングし頭部姿勢データを出力する。
I/F部607は、深度センサ125、筋電位センサ126と接続し、深度センサ125より出力された深度センサデータ、筋電位センサ126より出力された筋電位データをそれぞれ取得する。
取得した頭部姿勢データ、深度センサデータ、筋電位データ等のセンサデータは、通信部605により画像生成装置110に送信される。なお、図6の例では、HMDが一体の装置として形成された場合を示したが、HMDは一体により形成されていても、別体の複数のデバイスにより形成されていてもよい。
<リアクティブ処理部の提示制御処理の概要>
次に、画像生成装置110のリアクティブ処理部115により実現される提示制御処理の概要について説明する。図7は、画像生成装置のリアクティブ処理部の提示制御処理の概要を示す図である。
図7において、画像生成装置110から延びる3本の実線のうち、1本目の実線は、リアクティブ処理部115が、ユーザ140に対してリアクティブな社会的振る舞いを提示すべくユーザ150のアバタの画像を生成するタイミングを示すための線である。また、2本目の実線は、ユーザ140及びユーザ150の動作をそれぞれセンシングすることで得られるセンサデータに基づいて、基本機能部が、アバタの画像を生成し、仮想空間用情報を生成するタイミングを示すための線である。更に、3本目の実線は、ユーザ140及びユーザ150の動作をそれぞれセンシングすることで得られるセンサデータを、基本機能部が受信するタイミングを示すための線である。
また、図7において、クライアント側システム120、130からそれぞれ延びる2本の実線のうち、1本目の実線は、クライアント側システム120、130が、仮想空間用情報を受信するタイミングを示すための線である。また、2本目の実線は、クライアント側システム120、130が、センサデータを収集するタイミングを示すための線である。
なお、図7において、各タイミングを示すために実線上に配置された矩形図形には、縦方向の高さが高い図形と、縦方向の高さが低い図形とが含まれる。前者は、画像群に関するデータを示しており、後者は、画像群以外のデータを示している。
図7に示すように、ユーザ140のユーザ150に対する社会的振る舞いに対応するセンサデータ710を、クライアント側システム120が収集すると、クライアント側システム120は、収集したセンサデータ710を画像生成装置110に送信する。
画像生成装置110の基本機能部は、クライアント側システム120より受信したセンサデータ710に基づいて、ユーザ140のアバタの画像を生成し、生成したアバタの画像を組み込むことで、仮想空間の画像710Iを生成する。また、画像生成装置110の基本機能部は、生成した仮想空間の画像710Iを、クライアント側システム120、130に送信する。
このとき、画像生成装置110のリアクティブ処理部115は、ユーザ140の社会的振る舞いに対するユーザ150のリアクティブな社会的振る舞いをユーザ140に提示するために、アバタの画像720を生成し、基本機能部に対して通知する。
これにより、画像生成装置110の基本機能部では、アバタの画像720を組み込んだ仮想空間の画像720Iを生成し、クライアント側システム120に送信する。
これにより、クライアント側システム120は、仮想空間の画像710Iを受信して表示した後、すぐに、仮想空間の画像720Iを受信して表示することができる。上述したとおり、仮想空間の画像710Iには、ユーザ140の社会的振る舞いに対応するアバタの画像が含まれ、仮想空間の画像720Iには、ユーザ150のリアクティブな社会的振る舞いを示すアバタの画像720が含まれる。このため、クライアント側システム120では、ユーザ140に対して、ユーザ150のリアクティブな社会的振る舞いを提示することができる(ユーザ150のリアクティブな社会的振る舞いの提示を、矢印2510に示すタイムラグに抑えることができる)。
一方、クライアント側システム130は、仮想空間の画像710Iを受信し表示する。これにより、ユーザ150は、何らかの社会的振る舞いを行い、クライアント側システム130では、対応するセンサデータ730を収集し、画像生成装置110に送信する。
画像生成装置110の基本機能部は、クライアント側システム130より受信したセンサデータ730に基づいて、ユーザ150のアバタの画像を生成し、生成したアバタの画像を組み込むことで、仮想空間の画像730Iを生成する。また、画像生成装置110の基本機能部は、生成した仮想空間の画像730Iを、クライアント側システム130に送信する。
このとき、従来のコミュニケーションシステムのように、仮想空間の画像730Iをクライアント側システム120にも送信したとする。この場合、クライアント側システム120では、仮想空間の画像710Iを受信してから、矢印2520のタイムラグをもって、仮想空間の画像730Iを表示することになる。
上述したとおり、仮想空間の画像710Iには、ユーザ140の社会的振る舞いに対応するアバタの画像が含まれ、仮想空間の画像730Iには、ユーザ150の社会的振る舞いに対応するアバタの画像が含まれる。このため、従来のコミュニケーションシステムでは、ユーザ140に対して、ユーザ150の社会的振る舞いを、矢印2520のタイムラグをもって提示することとなっており、リアクティブな提示を行うことができなかった。
これに対して、リアクティブ処理部115によれば、上述したとおり、矢印2510のタイムラグに抑えることができ、矢印2530に示す時間分、タイムラグを短縮することができる。つまり、従来よりもよりリアクティブな社会的振る舞いをユーザ140に提示することができる。
<画像生成装置のリアクティブ処理部の機能構成>
次に、画像生成装置110のリアクティブ処理部115の機能構成について説明する。図8は、画像生成装置のリアクティブ処理部の機能構成を説明するための第1の図である。図8に示すように、リアクティブ処理部115は、社会的振る舞いログ記録部801、社会的振る舞い値算出部802、接近及び回避傾向特定部803、対話戦略決定部804、提示制御部805を有する。
社会的振る舞いログ記録部801は、ログ用DB117に格納された“アバタ表示情報に関するログテーブル”を監視する。なお、上述したとおり、“アバタ表示情報に関するログテーブル”は、センサデータ用DB116bに格納された各テーブルに基づいて、画像生成装置110の基本機能部がアバタの画像を生成する際に用いたデータを、ログデータとして記録したテーブルである。
“アバタ表示情報に関するログテーブル”の監視に際して、社会的振る舞いログ記録部801は、定義データ用DB118に格納された“監視対象データログ定義データテーブル”を参照し、監視対象とする部位のアバタ骨格と更新閾値とを特定する。
また、社会的振る舞いログ記録部801は、“アバタ表示情報に関するログテーブル”に含まれるログデータのうち、監視対象とする部位のアバタ骨格の位置座標または回転角度の変化が、更新閾値を超えているログデータを特定する。また、社会的振る舞いログ記録部801は、特定したログデータを、評価情報DB119の“振る舞いログ更新記録テーブル”に記録する。
なお、社会的振る舞いログ記録部801は、ログ用DB117に格納された“アバタ表示情報に関するログテーブル”に加えて、評価情報DB119に格納された“振る舞いログ更新記録テーブル”を参照してもよい。“振る舞いログ更新記録テーブル”には、監視対象とする部位のアバタ骨格の、前の時点の位置座標または回転角度がログデータとして記録されているからである。
更に、社会的振る舞いログ記録部801は、特定したログデータが社会的振る舞いに相当するか否かを判定し、社会的振る舞いに相当すると判定した場合に、特定したログデータを、“社会的振る舞いログ記録テーブル”に記録する。
なお、社会的振る舞いに相当するか否かの判定に際して、社会的振る舞いログ記録部801は、定義データ用DB118の社会的振る舞い判定API定義データテーブルに規定されたAPIを使用する。APIとは、Application Programming Interfaceの略称であり、社会的振る舞いを判定するライブラリとして機能する。
社会的振る舞い値算出部802は、“社会的振る舞いログ記録テーブル”に記録された各ログデータについて、社会的振る舞いに関する各種情報を算出または特定する。社会的振る舞いに関する各種情報には、例えば、
・社会的振る舞いの強度、
・社会的振る舞いの属性値、
・社会的振る舞いの接近傾向及び回避傾向を示す情報、
・社会的振る舞いによる身体パーツの接触の有無、
・社会的振る舞いによる表情の提示の有無、
・社会的振る舞いを受けたことによる身体パーツの接触の有無、
・社会的振る舞いを受けたことによる表情の提示の有無、
等が含まれる。このうち、第1の実施形態では、対話戦略(実行可能な振る舞いまたは実行を回避すべき振る舞いを特定するための情報)を決定するにあたり、社会的振る舞いの接近傾向及び回避傾向を示す情報が用いられるものとする。社会的振る舞いの接近傾向及び回避傾向を示す情報とは、各ログデータが、接近傾向の社会的振る舞いを示しているのか、回避傾向の社会的振る舞いを示しているのかを示す情報である。社会的振る舞い値算出部802は、例えば、“社会的振る舞いの接近及び回避傾向定義データテーブル”を参照することで、社会的振る舞いの傾向を特定する。
また、社会的振る舞い値算出部802は、社会的振る舞いに関する各種情報を、評価情報DB119の“社会的振る舞い値算出記録テーブル”に記録する。
なお、社会的振る舞い値算出部802が算出または特定する、社会的振る舞いに関する各種情報のうち、社会的振る舞いの接近傾向及び回避傾向を示す情報以外の情報については、第2の実施形態において対話戦略を決定する際に用いられるものとする。
接近及び回避傾向特定部803は特定部の一例である。接近及び回避傾向特定部803は、“社会的振る舞い値算出記録テーブル”に基づいて、所定の時間区間における対話相手に対する社会的振る舞いの傾向を特定する。具体的には、“社会的振る舞い値算出記録テーブル”に記録された、所定の時間区間における“社会的振る舞いの接近傾向及び回避傾向”を示す情報を参照することで、対話相手に対する社会的振る舞いの傾向を特定する。
対話戦略決定部804は決定部の一例である。対話戦略決定部804は、接近及び回避傾向特定部803において特定された、対話相手に対する社会的振る舞いの傾向に基づいて、対話相手に対する、コミュニケーションの戦略の一例である対話戦略を決定する。
提示制御部805は制御部の一例である。提示制御部805は、例えば、ユーザ140がユーザ150に対して社会的振る舞いを行ったと判定された場合に、決定された対話戦略(ユーザ150のユーザ140に対する対話戦略)について、リアクティブな社会的振る舞いが許可されているかを判定する。なお、リアクティブな社会的振る舞いが許可されているか否かの判定に際して、提示制御部805は、定義データ用DB118の“対話戦略に対するリアクティブな社会的振る舞いが許可されているかの制御定義データテーブル”を参照する。
また、提示制御部805は、リアクティブな社会的振る舞いが許可されていると判定した場合に、決定された対話戦略に対応付けられた、ユーザ150のリアクティブな社会的振る舞いを示すアバタの画像を生成し、情報表示処理部112に送信する。また、情報表示処理部112に対して、ユーザ150のリアクティブな社会的振る舞いを示すアバタの画像を表示するよう指示する。更に、提示制御部805は、このときの対話戦略を、評価情報DB119の“対話戦略決定記録テーブル”に記録する。
<リアクティブ処理部の各部の処理に関連するテーブルの説明>
次に、リアクティブ処理部115の各部(社会的振る舞いログ記録部801〜提示制御部805)の処理に関連する各テーブルについて説明する。
(1)センサデータ用DB116bの各テーブル
図9は、センサデータ用DBに格納される各テーブルの一例を示す図である。このうち、図9(a)は、筋電位データが格納される筋電位データテーブル900を示している。図9(a)に示すように、筋電位データが格納される筋電位データテーブル900には、情報の項目として、“DB記録時刻”、“センサ記録時刻”、“ユーザID”、“情報収集装置ID”、“筋電位活動値”が含まれる。
“DB記録時刻”には、クライアント側システム120、130から送信された筋電位データが、センサデータ用DB116bに格納された時点で付加されるタイムスタンプが記録される。
“センサ記録時刻”には、筋電位センサ126、136がユーザ140、150をセンシングした時点で付加されたタイムスタンプが記録される。
“ユーザID”には、筋電位センサ126、136によりセンシングされたユーザ140、150を識別する識別子が記録される。
“情報収集装置ID”には、筋電位センサを識別する識別子が記録される。筋電位センサは、センシングする場所によって異なる識別子を有している。図9(a)のデータ行のうちの1行目の“TcA_c3_zygomaticus(cheek)”は、頬をセンシングする筋電位センサの識別子である。また、図9(a)のデータ行のうちの2行目の“TcA_c3_orbicularis(under eye)”は、目の下をセンシングする筋電位センサの識別子である。更に、図9(a)のデータ行のうちの3行目の“TcA_c3_corrugator(blow)”は、眉をセンシングする筋電位センサの識別子である。
“筋電位活動値”には、それぞれの筋電位センサでセンシングされた筋電位データの値が記録される。
図9(b)は、頭部姿勢データが格納される頭部姿勢データテーブル910を示している。図9(b)に示すように、頭部姿勢データテーブル910に含まれる情報の項目は、筋電位データテーブル900に含まれる情報の項目と概ね同じである。
なお、頭部姿勢データテーブル910の“情報収集装置ID”において、“TcA_c1”とは、情報処理装置IDが“TcA”の情報処理装置に、情報収集装置の種類が“c1”である情報収集装置が対応付けられていることを示している。具体的には、“TcA_c1”は、情報処理装置121に対応付けられた頭部姿勢センサ124である。
また、“頭部姿勢データ”には、頭部の位置座標を示すデータと、頭部の回転角度を示すデータとが記録される。
図9(c)は、深度センサデータが格納される深度センサデータファイルテーブル920を示している。図9(c)に示すように、“深度センサデータファイルテーブル”920には、情報の項目として、他のセンサデータテーブル同様、“DB記録時刻”、“ユーザID”、“情報収集装置ID”が含まれる。加えて、“深度センサデータファイルテーブル”920には、情報の項目として、“センサ記録開始時刻”、“センサ記録終了時刻”、“深度センサデータ記録ファイルURI”が含まれる。
“センサ記録開始時刻”には、深度センサ125、135によりセンシングが開始された時刻が記録される。深度センサ125、135の場合、所定の記録長のファイルとしてセンサデータを出力する。このため、“センサ記録開始時刻”には、それぞれのファイルに含まれる最初の深度センサデータをセンシングした時点で付加されたタイムスタンプが記録される。
“センサ記録終了時刻”には、深度センサ125、135によりセンシングが終了した時刻が記録される。具体的には、所定の記録長のファイルに含まれる最後の深度センサデータをセンシングした時点で付加されたタイムスタンプが記録される。
“深度センサデータ記録ファイルURI”には、所定の記録長を有するファイルの格納場所を示すURIが記録される。
なお、“深度センサデータファイルテーブル”920の“情報収集装置ID”において、“TcA_c2”とは、情報処理装置IDが“TcA”の情報処理装置に、情報収集装置の種類が“c2”である情報収集装置が対応付けられていることを示している。具体的には、“TcA_c2”は、情報処理装置121に対応付けられた深度センサ125を示している。
(2)ログ用DB117のテーブル
図10は、ログ用DBに格納されたアバタ表示情報に関するログテーブルの一例を示す図である。“アバタ表示情報に関するログテーブル”1000は、アバタの画像を生成する際に用いたデータ(各アバタ骨格の位置座標及び回転角度のデータ)をログデータとして記録する。
図10に示すように、“アバタ表示情報に関するログテーブル”1000には、情報の項目として、“DB記録時刻”、“ユーザの現在時刻”、“ユーザID”、“情報処理装置ID”、“ログタイプラベル”、“アバタ表示情報のログデータ”が含まれる。
“DB記録時刻”には、アバタの画像を生成する際に用いたデータを、ログデータとして、“アバタ表示情報に関するログテーブル”1000に記録した時刻が記録される。
“ユーザの現在時刻”には、ログデータに対応する非言語動作をユーザが行った時刻が記録される。“ユーザID”には、非言語動作を行ったユーザを識別する識別子が記録される。
“情報処理装置ID”には、非言語動作を行ったユーザを管理する情報処理装置を識別する識別子が記録される。
“ログタイプラベル”には、アバタの画像を生成する際の表現方法を示す情報が記録される。図10の例では、アバタ骨格モデルを用いて非言語動作が表現されたことを示す“bone”と、メッシュを用いて非言語動作が表現されたことを示す“mesh”とが記録されている。
“アバタ表示情報のログデータ”には、アバタの画像を生成する際に用いたデータが、構造化されたリストとして記録される。
図10のデータ行のうち1行目の例は、“2015年7月27日11時00分00秒000”に、ユーザID=“userA”のユーザ140が非言語動作を行ったことで、頭部のアバタ骨格の位置座標が(0,18,−10)になったことを示している。また、頭部のアバタ骨格の回転角度が(0,1,0)になったことを示している。また、当該位置座標及び回転角度を含む、アバタ表示情報のログデータが、ログ用DB117に“2015年7月27日11時00分00秒020”に記録されたことを示している。
(3)定義データ用DB118の各テーブル
次に、定義データ用DB118に格納された各テーブルについて説明する。
(3−1)監視対象データログ定義データテーブル
図11は、定義データ用DBに格納された監視対象データログ定義データテーブルの一例を示す図である。図11に示すように、“監視対象データログ定義データテーブル”1100には、情報の項目として、“振る舞いログタイプラベル”、“更新閾値”、“更新監視対象”、“センサ入力情報”、“情報収集装置ID”が含まれる。
“振る舞いログタイプラベル”には、社会的振る舞いログ記録部801が、“アバタ表示情報に関するログテーブル”1000及び後述する“振る舞いログ更新記録テーブル”1600を監視する際に監視対象とする部位の、振る舞いの種類が規定される。
“更新閾値”には、“アバタ表示情報に関するログテーブル”1000等に格納されたログデータを、“振る舞いログ更新記録テーブル”に記録するか否かを、社会的振る舞いログ記録部801が判定する際に用いる閾値が規定される。
“更新監視対象”には、“振る舞いログタイプラベル”に規定された部位の振る舞いの種類を監視するための具体的なアバタ骨格が規定される。
“センサ入力情報”には、“更新監視対象”に規定された部位のアバタ骨格の位置座標、回転角度を特定するためのセンサデータの種類が規定される。“情報収集装置ID”には、“センサ入力情報”に規定されたセンサデータの収集に使用されたセンサを識別するための識別子が規定される。
図11のデータ行のうちの1行目の例では、識別子=“TcA_c2”により識別される深度センサによりセンシングされた深度センサデータに基づいて算出される、アバタ骨格を監視対象としている。具体的には、頭部または右腕または左腕のアバタ骨格(Bone_Head、Bone_Righthand、Bone_Lefthand)を監視対象としている。
社会的振る舞いログ記録部801は、“アバタ表示情報に関するログテーブル”1000及び後述する“振る舞いログ更新記録テーブル”1600を参照する。そして、社会的振る舞いログ記録部801は、これらのアバタ骨格のうちのいずれかのアバタ骨格の位置座標(X座標、Y座標、Z座標)の変化が、|1|より大きいか否かを判定する。これにより、社会的振る舞いログ記録部801は、ユーザ140のアバタの画像220と、ユーザ150のアバタの画像230の仮想空間における身体パーツの物理的距離(Distance_Bodyparts)が変化する振る舞いを監視することができる。ここでは、社会的振る舞いログ記録部801は、頭部、右腕、左腕の物理的距離が変化する振る舞いを監視することができる。
(3−2)社会的振る舞い判定APIデータテーブル
図12は、定義データ用DBに格納された社会的振る舞い判定API定義データテーブルの一例を示す図である。“社会的振る舞い判定API定義データテーブル”1200は、社会的振る舞いログ記録部801によって“振る舞いログ更新記録テーブル”に記録されたログデータが、社会的振る舞いに相当するか否かを判定する際に用いられるテーブルである。
図12に示すように、社会的振る舞い判定API定義データテーブル1200には、情報の項目として、“社会的振る舞いタイプラベル”、“社会的振る舞い判定API”、“振る舞いログタイプラベル”が含まれる。
“社会的振る舞いタイプラベル”には、社会的振る舞い判定APIにより判定される社会的振る舞いの種類が規定される。“社会的振る舞い判定API”には、社会的振る舞いを判定する際に用いるAPIが規定される。社会的振る舞いを判定する際に用いるAPIは、“監視対象データログ定義データテーブル”1100の“振る舞いログタイプラベル”に応じて規定される。
このため、“社会的振る舞い判定API”は、“振る舞いログタイプラベル”と対応付けて規定される。“振る舞いログタイプラベル”には、“監視対象データログ定義データテーブル”1100の“振る舞いログタイプラベル”に規定された振る舞いの種類が規定される。
図12のデータ行のうちの5行目の例は、身体パーツの物理的距離(Distance_Bodyparts)の変化が更新閾値以上となったログデータについて、社会的振る舞いログ記録部801が、社会的振る舞いの種類を判定することを示している。当該例によれば、社会的振る舞いログ記録部801は、移動確認APIを用いて当該ログデータが、社会的振る舞い(Distance_Bodyparts_Closeto)に相当するか否かを判定する。
(3−3)社会的振る舞い接近及び回避傾向定義データテーブル
図13は、定義データ用DBに格納された社会的振る舞いの接近及び回避傾向定義データテーブルの一例を示す図である。“社会的振る舞いの接近及び回避傾向定義データテーブル”1300は、社会的振る舞いログ記録部801により判定された社会的振る舞いについて、社会的振る舞い値算出部802が、接近傾向か回避傾向かを判定する際に用いられる。
図13に示すように、“社会的振る舞いの接近及び回避傾向定義データテーブル”1300には、情報の項目として、“社会的振る舞いログタイプラベル”、“接近回避傾向”が含まれる。
“社会的振る舞いログタイプラベル”には、社会的振る舞いの種類が規定される(“社会的振る舞い判定API定義データテーブル”1200において規定された社会的振る舞いの種類全てが規定される)。“接近回避傾向”には、それぞれの社会的振る舞いの種類について、接近傾向または回避傾向のいずれかが規定される。
図13のデータ行のうちの5行目の例は、社会的振る舞いの種類が“Distance_Bodyparts_Closeto”の場合、社会的振る舞い値算出部802は、当該社会的振る舞いが、接近傾向の社会的振る舞いであると判定することを示している。
なお、“社会的振る舞い接近及び回避傾向定義データテーブル”1300の“社会的振る舞いログタイプラベル”に格納される各レコードは、以下のような動作を意味する。
例えば、“Distance_Upperbody_Closeto”は、上体を相手に近づける動作を意味し、“Distance_Upperbody_Farfrom”は、上体を相手から遠ざける動作を意味する。また、“Distance_Face_Closeto”は、顔を相手に近づける動作を意味し、“Distance_Face_Farfrom”は、顔を相手から遠ざける動作を意味する。
また、“Distance_Bodyparts_Closeto”は、身体パーツを相手に近づける動作を意味し、“Distance_Bodyparts_Farfrom”は、身体パーツを相手から遠ざける動作を意味する。“Attention_Mutual”は、互いに注意を向ける動作を意味し、“Attention_Averted”は、注意をそらす動作を意味する。
また、“Attention_Joint”は、相手と同じものに注意を向ける動作を意味し、“Attention_Following”は、相手が注意を向けたことに続いて注意を向ける動作を意味する。“Orientation_Face_Directto”は、相手のいる方に顔を向ける動作を意味し、“Orientation_Face_Indirectto”は、相手のいる方とは逆側へ顔を向ける動作を意味する。
また、“Orientation_Upperbody_Directto”は、相手のいる方に上体を向ける動作を意味し、“Orientation_Upperbody_Indirectto”は、相手のいる方とは逆側へ上体を向ける動作を意味する。“Lean_Upperbody_Forward”は、上体を前方にかがめる動作を意味し、“Lean_Upperbody_Backward”は、上体を後方にそらす動作を意味する。
また、“Gesture_Smileto”は、微笑む動作を意味する。更に、“Gesture_Positivemeaninggestureto”は、肯定的なしぐさをする動作を意味し、“Gesture_Negativemeaninggestureto”は、否定的なしぐさをする動作を意味する。
(3−4)対話戦略に対するリアクティブな社会的振る舞いが許可されているかの制御定義データテーブル
図14は、定義データ用DBに格納された、対話戦略に対するリアクティブな社会的振る舞いが許可されているかの制御定義データテーブルの一例を示す図である。“対話戦略に対するリアクティブな社会的振る舞いが許可されているかの制御定義データテーブル”1400は、決定された対話戦略について、提示制御部805が、リアクティブな社会的振る舞いが許可されているか否かを判定する際に用いられる。
図14に示すように、“対話戦略に対するリアクティブな社会的振る舞いが許可されているかの制御定義データテーブル”1400には、情報の項目として、“許可制御条件ID”、“許可制御条件”、“実施フラグ”が含まれる。
“許可制御条件ID”には、許可制御条件を識別するための識別子が規定される。“許可制御条件”には、対話戦略に対するリアクティブな社会的振る舞いを、対話相手に対して提示することを許可するための条件が規定される。“実施フラグ”には、対応する“許可制御条件”に基づく許否を実施するか否かを示す情報が規定される。
図14の例では、“許可制御条件”として2つの条件が規定されている。許可制御条件ID=“1”により識別される許可制御条件の場合、いずれの対話戦略の時にもリアクティブな社会的振る舞いを、対話相手に対して提示することを許可しない。ただし、“Shortly”ではじまる対話戦略の時のリアクティブな社会的振る舞いについては、対話相手に対して提示することを許可する。
また、許可制御条件ID=“2”により識別される許可制御条件の場合、いずれの対話戦略の時にもリアクティブな社会的振る舞いを、対話相手に対して提示することを許可する。ただし、“Enforcing_Totally”ではじまる対話戦略の時のリアクティブな社会的振る舞いについては、対話相手に対して提示することを許可しない。
なお、図14の例では、許可制御条件ID=“1”の“実施フラグ”が“TRUE”となっており、許可制御条件ID=“2”の“実施フラグ”が“FALSE”となっている。このため、図14の例の場合、提示制御部805は、許可制御条件ID=“1”の許可制御条件に基づいて、リアクティブな社会的振る舞いを対話相手に対して提示するか否かの制御を行う。
<リアクティブ処理部の提示制御処理の詳細>
次に、リアクティブ処理部115の提示制御処理の詳細について説明する。図15は、リアクティブ処理部の提示制御処理の詳細を示す第1のフローチャートである。ユーザ140及びユーザ150が、コミュニケーションサービスの利用を開始し、“アバタ表示情報に関するログテーブル”1000にログデータが格納されると、図15に示す提示制御処理が開始される。なお、以下では、提示制御処理が実行されるたびに、対話戦略を決定するものとして説明するが、所定の時間ごとに、あるいは、一定量の社会的振る舞いが記録されるごとに、対話戦略を決定するようにしてもよい。
ステップS1501において、社会的振る舞いログ記録部801は、“アバタ表示情報に関するログテーブル”1000及び後述する“振る舞いログ更新記録テーブル”1600を読み出す。
ステップS1502において、社会的振る舞いログ記録部801は、“監視対象データログ定義データテーブル”1100等に基づいて、“アバタ表示情報に関するログテーブル”1000のログデータを監視する。また、社会的振る舞いログ記録部801は、更新閾値を超えるログデータが検出された場合、評価情報DB119の“振る舞いログ更新記録テーブル”に当該ログデータを記録する。図16は、評価情報DBに記録された振る舞いログ更新記録テーブルの一例を示す図である。なお、図16に示す“振る舞いログ更新記録テーブル”1600の詳細は後述する。
更に、社会的振る舞いログ記録部801は、“振る舞いログ更新記録テーブル”1600に記録したログデータが、社会的振る舞いに相当するか否か及び社会的振る舞いに相当する場合にあってはその種類を、社会的振る舞い判定APIを用いて判定する。なお、社会的振る舞いログ記録部801は、いずれの社会的振る舞い判定APIを用いるかを、“社会的振る舞い判定API定義データテーブル”1200を参照することで決定する。
更に、社会的振る舞いログ記録部801は、社会的振る舞いに相当すると判定したログデータを、判定した社会的振る舞いの種類とともに評価情報DBの“社会的振る舞いログ記録テーブル”に記録する。図17は、評価情報DBに記録された社会的振る舞いログ記録テーブルの一例を示す図である。なお、図17に示す、“社会的振る舞いログ記録テーブル”1700の詳細は後述する。
ステップS1503において、社会的振る舞い値算出部802は、社会的振る舞いログ記録部801により判定された社会的振る舞いに関する各種情報を算出または特定する。
具体的には、社会的振る舞い値算出部802は、社会的振る舞いに関する各種情報として、社会的振る舞いの強度、社会的振る舞いの属性値、社会的振る舞いの継続秒数、社会的振る舞いの接近及び回避傾向、を算出または特定する。なお、社会的振る舞い値算出部802は、社会的振る舞いの接近及び回避傾向を特定するにあたり、“社会的振る舞いの接近及び回避傾向定義データテーブル”1300を参照する。
更に、社会的振る舞い値算出部802は、社会的振る舞いに関する各種情報として、非言語動作による情報開示(身体接触の有無)、非言語動作による情報開示(意思及び態度(表情等)の提示の有無)を算出する。
更に、社会的振る舞い値算出部802は、社会的振る舞いに関する各種情報として、非言語動作による被情報開示(身体接触の有無)、非言語動作による被情報開示(意思及び態度(表情等)の提示の有無)を算出する。
社会的振る舞い値算出部802は、算出したまたは特定した社会的振る舞いに関する各種情報を、“社会的振る舞い値算出記録テーブル”に記録する。図18は、評価情報DBに記録された社会的振る舞い値算出記録テーブルの一例を示す図である。なお、図18に示す、“社会的振る舞い値算出記録テーブル”1800の詳細は後述する。
ステップS1504において、接近及び回避傾向特定部803は、“社会的振る舞い値算出記録テーブル”1800を参照する。上述したとおり、第1の実施形態では、“社会的振る舞い値算出記録テーブル”1800に記録された各種情報のうち、“社会的振る舞いの接近及び回避傾向”に基づいて、対話戦略を決定する。
そこで、接近及び回避傾向特定部803は、“社会的振る舞い値算出記録テーブル”1800において、所定の時間区間のログデータであって、振る舞いアバタID=“AV2”、被振る舞いアバタID=“AV1”とするログデータを参照する。そして、接近及び回避傾向特定部803は、所定の時間区間におけるユーザ140に対するユーザ150の社会的振る舞いの傾向が、接近傾向であるのか、回避傾向であるのかを特定する。
ステップS1505において、対話戦略決定部804は、対話戦略を決定する。具体的には、対話戦略決定部804は、特定された傾向に基づいて、ユーザ150のユーザ140に対する対話戦略を決定する。
ステップS1506において、提示制御部805は、“対話戦略に対するリアクティブな社会的振る舞いが許可されているかの制御定義データテーブル”1400を参照する。これにより、提示制御部805は、決定された対話戦略に対するリアクティブな社会的振る舞いを、ユーザ140に提示することが許可されているか否かを判定する。
提示することが許可されていると判定した場合、提示制御部805は、決定された対話戦略に対応付けられたリアクティブな社会的振る舞いに基づいてアバタの画像を生成し、ユーザ140に提示するよう制御する。なお、第1の実施形態においては、対話戦略に対応付けられたリアクティブな社会的振る舞いが、予め規定されているものとする。
更に、提示制御部805は、評価情報DB119の“対話戦略決定記録テーブル”に、決定された対話戦略を記録する。図19は、評価情報DBに記録された対話戦略決定記録テーブルの一例を示す図である。なお、図19に示す、“対話戦略決定記録テーブル”1900の詳細は後述する。
<リアクティブ処理部により記録されたテーブルの説明>
次に、リアクティブ処理部115により提示制御処理(図15)が実行されたことで、評価情報DB119に記録された各テーブルについて説明する。
(1)振る舞いログ更新記録テーブル1600
はじめに、図16の“振る舞いログ更新記録テーブル”1600について説明する。図16に示すように、“振る舞いログ更新記録テーブル”1600には、情報の項目として、“DB記録時刻”、“記録開始時刻”、“記録更新時刻”、“振る舞いアバタID”、“振る舞いログタイプラベル”、“更新監視対象”が含まれる。また、“振る舞いログ更新記録テーブル”1600には、情報の項目として、“更新ステータス”、“記録開始時データ”、“記録更新時データ”、“社会的振る舞いログ記録ID参照値”が含まれる。
“DB記録時刻”には、更新閾値を超えるログデータがあったことを、社会的振る舞いログ記録部801が“振る舞いログ更新記録テーブル”1600に記録した時刻が記録される。
“記録開始時刻”には、更新閾値を超えるログデータに対応する非言語動作をユーザが開始したことを記録し始めた時刻が記録される。
“記録更新時刻”には、更新閾値を超えた時点でのログデータに対応する非言語動作を、ユーザが行った時刻が記録される。
“振る舞いアバタID”には、更新閾値を超えるログデータに対応する非言語動作を行ったユーザのアバタの識別子が記録される。
“振る舞いログタイプラベル”には、社会的振る舞いログ記録部801が、“アバタ表示情報に関するログテーブル”1000等を監視する際に、監視対象とした部位の振る舞いの種類が記録される。
“更新監視対象”には、“振る舞いログタイプラベル”に記録された部位の振る舞いの種類を監視するために用いられた具体的なアバタ骨格が記録される。
“更新ステータス”には、更新閾値との比較結果が記録される。前の時点と現在時点とのログデータの差異が、更新閾値を超えた場合、“更新ステータス”には“変化記録中”が記録される。一方、前の時点と現在時点とのログデータの差異が、更新閾値を超えなかった場合、“更新ステータス”には、“変化記録なし”が記録される。なお、監視対象の部位のアバタ骨格について、“変化記録中”が連続している間は、“記録開始時刻”には同じ時刻が記録される。
“記録開始時データ”には、更新閾値を超えるログデータが、監視対象の部位のアバタ骨格の位置座標または回転角度が変化記録中のログデータであった場合、変化記録が開始する時点での位置座標及び回転角度が記録される。
“記録更新時データ”には、更新閾値を超えるログデータが、監視対象の部位のアバタ骨格の位置座標または回転角度が変化記録中のログデータであった場合、記録更新時点での位置座標及び回転角度が記録される。
“社会的振る舞いログ記録ID参照値”には、更新閾値を超えるログデータが、社会的振る舞いログ記録部801によって社会的振る舞いに相当すると判定された場合に、当該社会的振る舞いのログデータのデータベース上の記録を参照する識別子が記録される。
(2)社会的振る舞いログ記録テーブル1700
次に、図17の“社会的振る舞いログ記録テーブル”1700について説明する。図17に示すように、“社会的振る舞いログ記録テーブル”1700には、情報の項目として、“DB記録時刻”、“記録開始時刻”、“記録終了時刻”、“振る舞いアバタID”、“被振る舞いアバタID”が含まれる。また、“社会的振る舞いログ記録テーブル”1700には、情報の項目として、“社会的振る舞いログ記録ID”、“社会的振る舞いタイプラベル”、“振る舞いログタイプラベル”が含まれる。
“DB記録時刻”には、“振る舞いログ更新記録テーブル”1600に記録されたログデータが、社会的振る舞いに相当すると判定され、“社会的振る舞いログ記録テーブル”1700に記録された時刻が記録される。
“記録開始時刻”には、社会的振る舞いに相当すると判定されたログデータに対応する非言語動作をユーザが開始した時刻が記録される。
“記録終了時刻”には、社会的振る舞いに相当すると判定されたログデータに対応する非言語動作をユーザが終了した時刻が記録される。
“振る舞いアバタID”には、社会的振る舞いを行ったユーザのアバタを識別する識別子が記録される。
“被振る舞いアバタID”には、社会的振る舞いを受けたユーザのアバタを識別する識別子が記録される。
“社会的振る舞いログ記録ID”には、判定された社会的振る舞いのログデータを識別するための識別子が記録される。
“社会的振る舞いタイプラベル”には、判定された社会的振る舞いの種類が記録される。“振る舞いログタイプラベル”には、社会的振る舞いに相当すると判定されたログデータが示す振る舞いの種類が記録される。
(3)社会的振る舞い値算出記録テーブル1800
次に、図18の“社会的振る舞い値算出記録テーブル1800について説明する。図18に示すように、“社会的振る舞い値算出記録テーブル”1800には、情報の項目として、“DB記録時刻”、“記録開始時刻”、“記録終了時刻”、“振る舞いアバタID”、“被振る舞いアバタID”、“社会的振る舞いログ記録ID”が含まれる。
また、“社会的振る舞い値算出記録テーブル”1800には、情報の項目として、“社会的振る舞いタイプラベル”、“社会的振る舞いの強度”、“社会的振る舞いの属性値”が含まれる。
また、“社会的振る舞い値算出記録テーブル”1800には、情報の項目として、“社会的振る舞いの継続秒数”、“社会的振る舞いの接近及び回避傾向”が含まれる。
また、“社会的振る舞い値算出記録テーブル”1800には、情報の項目として、“非言語動作による情報開示(身体接触の有無)”、“非言語動作による情報開示(意思及び態度(表情等)の提示有無)”が含まれる。
更に、“社会的振る舞い値算出記録テーブル”1800には、情報の項目として、“非言語動作による被情報開示(身体接触の有無)”、“非言語動作による被情報開示(意思及び態度(表情等)の提示有無)”が含まれる。
このうち、図18の左から右へ向かう方向に各情報の項目を見た場合の“DB記録時刻”から“社会的振る舞いタイプラベル”までの各情報の項目は、“社会的振る舞いログ記録テーブル”1700に含まれる各情報の項目と同様であるため、ここでは説明を省略する。ここでは、図18の左から右へ向かう方向に各情報の項目を見た場合の社会的振る舞いに関する各種情報について説明する。つまり、“社会的振る舞いの強度”から“非言語動作による被情報開示(意思及び態度(表情等)の提示有無)”までの各情報の項目に記録される情報について説明する。
“社会的振る舞いの強度”には、社会的振る舞いの強さを示す数値が記録される。“社会的振る舞いの属性値”には、社会的振る舞いに相当するか否かを判定する際に算出した、物理的距離の変化量や回転角度の変化量が記録される。
“社会的振る舞いの継続秒数”には、社会的振る舞いに相当すると判定されたログデータの継続時間(秒)が記録される。
“社会的振る舞いの接近及び回避傾向”には、接近傾向の社会的振る舞いであるのか、回避傾向の社会的振る舞いであるのかを判定した判定結果が記録される。
“非言語動作による情報開示(身体接触の有無)”には、非言語動作を行ったことで、社会的振る舞いを行ったユーザのアバタが、社会的振る舞いを受けたユーザのアバタに接触したか否かを示す情報が記録される。
“非言語動作による情報開示(意思及び態度(表情等)の提示有無)”には、非言語動作を行ったことで、社会的振る舞いを行ったユーザのアバタの表情等が、社会的振る舞いを受けたユーザに対して提示されたか否かを示す情報が記録される。
“非言語動作による被情報開示(身体接触の有無)”には、社会的振る舞いを受けたユーザのアバタが、非言語動作を行ったことで社会的振る舞いを行ったユーザのアバタからの接触を受けたか否かを示す情報が記録される。
“非言語動作による被情報開示(意思及び態度(表情等)の提示有無)”には、社会的振る舞いを受けたユーザが、非言語動作を行ったことで社会的振る舞いを行ったユーザのアバタの表情等について提示を受けたか否かを示す情報が記録される。
(4)対話戦略決定記録テーブル1900
次に、図19の“対話戦略決定記録テーブル”1900について説明する。図19に示すように、“対話戦略決定記録テーブル”1900には、情報の項目として、“DB記録時刻”、“振る舞いアバタID”、“被振る舞いアバタID”、“対話戦略”が含まれる。
“DB記録時刻”には、提示制御部805が、対話相手に対してリアクティブな社会的振る舞いを提示するよう制御する際に用いる対話戦略を、“対話戦略決定記録テーブル”1900に記録した時刻が記録される。
“振る舞いアバタID”及び“被振る舞いアバタID”には、それぞれ、ユーザのアバタIDが記録される。“対話戦略”には、“被振る舞いアバタID”に記録されたアバタIDのユーザに対する、“振る舞いアバタID”に記録されたアバタIDのユーザによる対話戦略が記録される。
以上の説明から明らかなように、第1の実施形態に係る画像生成装置110は、リアクティブ処理部115を有し、基本機能部により生成される“アバタ表示情報に関するログテーブル”及び“振る舞いログ更新記録テーブル”のログデータを監視する。また、リアクティブ処理部115は、第1のユーザ(ユーザ140)が第2のユーザ(ユーザ150)に対して社会的振る舞いを行った場合に、第2のユーザが第1のユーザに対して行う所定の時間区間における社会的振る舞いの傾向を特定する。また、リアクティブ処理部115は、特定した傾向に基づいて、第1のユーザに対する第2のユーザの対話戦略を決定する。
更に、リアクティブ処理部115は、対話戦略を決定した後で、第1のユーザが第2のユーザに対して社会的振る舞いを行った場合に、決定した対話戦略に基づく第2のユーザによるリアクティブな社会的振る舞いを、第1のユーザに対して提示するよう制御する。
これにより、第1の実施形態に係る画像生成装置110によれば、第1のユーザが第2のユーザに対して社会的振る舞いを行った場合に、第2のユーザによる実際の社会的振る舞いを待つことなく、リアクティブな社会的振る舞いを提示することが可能となる。
つまり、第1の実施形態に係る画像生成装置110によれば、互いに離間した位置にいるユーザがアバタを介して対話を行う場合において、対話相手に対してリアクティブな振る舞いを提示することが可能となる。
[第2の実施形態]
上記第1の実施形態では、ユーザ140に対するユーザ150の社会的振る舞いの傾向に基づいて、ユーザ150の対話戦略を決定するものとして説明した。これに対して、第2の実施形態では、所定の時間区間におけるユーザ140に対するユーザ150の社会的振る舞いの傾向に基づいて、ユーザ150の社会的振る舞いの許容性を判定し、判定した許容性に基づいてユーザ150の対話戦略を決定する。なお、ユーザ150の社会的振る舞いの許容性とは、ユーザ140がユーザ150に対して社会的振る舞いを行った場合に、社会的振る舞いを受けたことをユーザ150が認識する可能性をいう。以下、第2の実施形態について、第1の実施形態との相違点を中心に説明する。
<画像生成装置のリアクティブ処理部の機能構成>
はじめに、画像生成装置110のリアクティブ処理部115の機能構成について説明する。図20は、画像生成装置のリアクティブ処理部の機能構成を説明するための第2の図である。
図8との相違点は、対話戦略決定部2000と、定義データ用DB118及び評価情報DB119に、新たなテーブルが格納されている点である。なお、図20の定義データ用DB118及び評価情報DB119に示すテーブルのうち、黒丸が付されたテーブルは、新たなテーブルであることを表している。
図20に示すように、対話戦略決定部2000は、行動傾向特定部2001、行動可能性判定部2002、許容性判定部2003、決定部2004を有する。
行動傾向特定部2001は、“社会的振る舞いログ記録テーブル”1700を参照し、ユーザ150がユーザ140に対して行った社会的振る舞いを解析する。また、行動傾向特定部2001は、所定の時間区間における接近傾向の回数(もしくは時間量)と回避傾向の回数(もしくは時間量)を算出する。
また、行動傾向特定部2001は、算出した接近傾向の回数(もしくは時間量)と回避傾向の回数(もしくは時間量)とを、評価情報DB119の“時間区間社会的振る舞い行動傾向量記録テーブル”に記録する。
また、行動傾向特定部2001は、定義データ用DB118に格納された“時間区間社会的振る舞い行動傾向量閾値定義データテーブル”を参照し、算出した接近傾向の回数(もしくは時間量)及び回避傾向の回数(もしくは時間量)と比較する。これにより、行動傾向特定部2001は、ユーザ150がユーザ140に対して行った社会的振る舞いの行動傾向が、接近行動傾向、回避行動傾向、中間行動傾向のいずれに該当するかを特定する。
更に、行動傾向特定部2001は、特定した行動傾向を、評価情報DB119の“時間区間社会的振る舞い行動傾向記録テーブル”に記録する。
行動可能性判定部2002は、ユーザ150がユーザ140に対して協調的な行動をとることが可能か否か(協調的行動可能性)を判定し、判定結果を、評価情報DB119の“協調的行動可能性判定記録テーブル”に記録する。
許容性判定部2003は、ユーザ140がユーザ150に対して社会的振る舞いを行った場合に、社会的振る舞いを受けたことをユーザ150が認識する可能性(社会的振る舞い許容性)を判定する。許容性判定部2003は、ユーザ150のユーザ140に対する社会的振る舞いの行動傾向と、ユーザ150のユーザ140に対する協調的行動可能性についての判定結果とに基づいて、社会的振る舞い許容性の判定を行う。
決定部2004は、ユーザ150の社会的振る舞い許容性についての判定結果に基づいて、対話戦略を決定し、決定した対話戦略を提示制御部805に通知する。
なお、提示制御部805は、決定された対話戦略について、リアクティブな社会的振る舞いが許可されているか否かを判定する。また、提示制御部805は、リアクティブな社会的振る舞いが許可されていると判定した場合に、決定された対話戦略に対応付けられた、ユーザ150のリアクティブな社会的振る舞いを示すアバタの画像を、情報表示処理部112に送信する。また、提示制御部805は、情報表示処理部112に対して、ユーザ150のリアクティブな社会的振る舞いを示すアバタの画像を表示するよう指示する。更に、提示制御部805は、このときの対話戦略を、評価情報DB119の“社会的振る舞い許容性に応じた対話戦略決定記録テーブル”に記録する。
<リアクティブ処理部の各部の処理に関連するテーブルの説明>
次に、リアクティブ処理部115の各部(ここでは、対話戦略決定部2000)の処理に関連するテーブル(ここでは、定義データ用DB118に格納される、“時間区間社会的振る舞い行動傾向量閾値定義データテーブル”)について説明する。
図21は、定義データ用DBに格納された、時間区間社会的振る舞い行動傾向量閾値定義データテーブルの一例を示す図である。図21に示すように、“時間区間社会的振る舞い行動傾向量閾値定義データテーブル”2100には、情報の項目として、“カテゴリID”、“行動傾向”、“閾値(回数の割合)”、“閾値(時間[秒]の割合)”が含まれる。
“カテゴリID”には、行動傾向特定部2001が特定する行動傾向を識別するための識別子が規定される。“行動傾向”には、行動傾向特定部2001が特定する行動傾向が規定される。
“閾値(回数の割合)”には、“行動傾向”において規定された行動傾向であると特定するための条件として、行動傾向量(回数)の閾値が規定される。“閾値(時間[秒]の割合)”には、“行動傾向”において規定された行動傾向であると特定するための条件として、行動傾向量(時間)の閾値が規定される。
図21の例によれば、接近行動傾向量(回数)が0.55以上であった場合、かつ、接近行動傾向量(時間)が0.20以上であった場合、行動傾向特定部2001は、処理対象の社会的振る舞いが、接近行動傾向であると特定する。なお、行動傾向特定部2001は、接近行動傾向量(回数)が0.55以上であった場合、または、接近行動傾向量(時間)が0.20以上であった場合に、処理対象の社会的振る舞いが、接近行動傾向であると特定してもよい。
また、図21の例によれば、回避行動傾向量(回数)が0.55以上であった場合、かつ、回避行動傾向量(時間)が0.10以上であった場合、行動傾向特定部2001は、処理対象の社会的振る舞いが、回避行動傾向であると特定する。なお、行動傾向特定部2001は、回避行動傾向量(回数)が0.55以上であった場合、または、回避行動傾向量(時間)が0.10以上であった場合に、処理対象の社会的振る舞いが、回避行動傾向であると特定してもよい。
更に、図21の例によれば、接近行動傾向であるとも回避行動傾向であるとも特定されなかった場合、行動傾向特定部2001は、処理対象の社会的振る舞いが、中間行動傾向であると特定する。もしくは、接近行動傾向であるとも回避行動傾向であるとも特定された場合、行動傾向特定部2001は、処理対象の社会的振る舞いが、中間行動傾向であると特定する。
<リアクティブ処理部の提示制御処理の詳細>
次に、リアクティブ処理部115の提示制御処理の詳細について説明する。なお、第2の実施形態において、リアクティブ処理部115の提示制御処理は、第1の実施形態において図15を用いて説明した提示制御処理と同様であり、ステップS1505の対話戦略決定処理のみが異なる。
このため、ここでは、リアクティブ処理部115の提示制御処理のうち、対話戦略決定処理の詳細について説明する。図22は、リアクティブ処理部の対話戦略決定処理の詳細を示す第1のフローチャートである。
ステップS2201において、行動傾向特定部2001は、時間区間社会的振る舞い行動傾向量算出処理を実行する。
具体的には、行動傾向特定部2001は、所定の時間区間(時刻tk−1から時刻tkの間)の“社会的振る舞いログ記録テーブル”1700を参照する。そして、行動傾向特定部2001は、ユーザ150がユーザ140に対して行った(あるいはユーザ140がユーザ150に対して行った)社会的振る舞いを判別する。
また、行動傾向特定部2001は、判別した社会的振る舞いについて、各種行動傾向量を算出し、評価情報DB119の“時間区間社会的振る舞い行動傾向量記録テーブル”に記録する。
具体的には、行動傾向特定部2001は、接近傾向の回数(もしくは時間量)と、回避傾向の回数(もしくは時間量)とを算出し、評価情報DB119の“時間区間社会的振る舞い行動傾向量記録テーブル”に記録する。
また、行動傾向特定部2001は、接近傾向の回数(もしくは時間量)の割合、回避傾向の回数(もしくは時間量)の割合を算出し、評価情報DB119の“時間区間社会的振る舞い行動傾向量記録テーブル”に記録する。
図23は、評価情報DBに記録された、時間区間社会的振る舞い行動傾向量記録テーブルの一例を示す図である。図23に示すように、“時間区間社会的振る舞い行動傾向量記録テーブル”2300には、“振る舞いアバタID”に記録されたアバタIDのユーザが行った社会的振る舞いについての、各種行動傾向量が記録される。
図23の例は、行動傾向量として、“接近行動傾向量(回数)”、“回避行動傾向量(回数)”、“接近行動傾向量(時間[秒])”、“回避行動傾向量(時間[秒])”が記録されたことを示している。また、図23の例は、行動傾向量として、更に“接近行動傾向量(回数の割合)”、“回避行動傾向量(回数の割合)”、“接近行動傾向量(時間[秒]の割合)”、“回避行動傾向量(時間[秒]の割合)”が記録されたことを示している。
図22に戻る。ステップS2202において、行動傾向特定部2001は、時間区間社会的振る舞い行動傾向特定処理を実行する。
具体的には、行動傾向特定部2001は、算出した接近行動傾向量、回避行動傾向量を、“時間区間社会的振る舞い行動傾向量閾値定義データテーブル”2100と比較する。これにより、行動傾向特定部2001は、“被振る舞いアバタID”に記録されたアバタIDのユーザに対して行われた、“振る舞いアバタID”に記録されたアバタIDのユーザの社会的振る舞いの行動傾向を特定する。本実施形態において、行動傾向特定部2001は、接近行動傾向、回避行動傾向、中間行動傾向のいずれかを特定する。
また、行動傾向特定部2001は、行動傾向についての特定結果を、評価情報DB119の“時間区間社会的振る舞い行動傾向記録テーブル”に記録する。
図24は、評価情報DBに記録された、時間区間社会的振る舞い行動傾向記録テーブルの一例を示す図である。図24に示すように、“時間区間社会的振る舞い行動傾向記録テーブル”2400には、“振る舞いアバタID”と“被振る舞いアバタID”とが含まれ、社会的振る舞いを行ったユーザのアバタIDと、社会的振る舞いを受けたユーザのアバタIDとが記録される。また、“時間区間社会的振る舞い行動傾向記録テーブル”2400には、“社会的振る舞い行動傾向”が含まれ、行動傾向特定部2001により特定された行動傾向についての特定結果が記録される。
図22に戻る。ステップS2203において、行動可能性判定部2002は、協調的行動可能性判定処理を実行する。
具体的には、行動可能性判定部2002は、“時間区間社会的振る舞い行動傾向記録テーブル”2400において、所定の時間区間(時刻tk−1から時刻tkまでの間)の“社会的振る舞い行動傾向”を参照する。これにより、行動可能性判定部2002は、“振る舞いアバタID”に記録されたアバタIDのユーザが、“被振る舞いアバタID”に記録されたアバタIDのユーザに対して行った社会的振る舞いの行動傾向を判別する。
また、行動可能性判定部2002は、“被振る舞いアバタID”に記録されたアバタIDのユーザの属性情報を判別する。“被振る舞いアバタID”に記録されたアバタIDのユーザの属性情報には、例えば、当該ユーザの年齢、性別等が含まれる。
また、行動可能性判定部2002は、“振る舞いアバタID”に記録されたアバタIDのユーザと“被振る舞いアバタID”に記録されたアバタIDのユーザとがはじめて対話をするようになってからの経過時間を判別する。
更に、行動可能性判定部2002は、判別結果(行動傾向、属性情報、経過時間等)に基づき、“被振る舞いアバタID”に記録されたアバタIDのユーザが“振る舞いアバタID”に記録されたアバタIDのユーザに協調的な行動をとる可能性を判定する。行動可能性判定部2002は、協調的行動可能性についての判定結果を、評価情報DB119の“協調的行動可能性判定記録テーブル”に記録する。
図25は、評価情報DBに記録された協調的行動可能性判定記録テーブルの一例を示す図である。図25に示すように、“協調的行動可能性判定記録テーブル”2500には、“振る舞いアバタID”と“被振る舞いアバタID”と“協調的行動可能性”が含まれる。“協調的行動可能性判定記録テーブル”2500には、“振る舞いアバタID”に記録されたアバタIDのユーザが、“被振る舞いアバタID”に記録されたアバタIDのユーザに対して、協調的な行動をとる可能性についての判定結果が記録される。
協調的行動可能性が“High”とは、行動可能性判定部2002により、協調的な行動をとる可能性が高いと判定されたことを示している。一方、協調的行動可能性が“Low”とは、協調的な行動をとることが可能でないと判定されたことを示している。
行動可能性判定部2002は、例えば、社会的振る舞いを受けたユーザが、回避行動傾向の社会的振る舞いを5分以上継続して行っている場合には、協調的な行動をとる可能性が低いと判定し、“Low”を記録する。
また、行動可能性判定部2002は、例えば、社会的振る舞いを受けたユーザが小学生以下の場合、当該ユーザは、協調的な行動をとる可能性が低いと判定し、“Low”を記録する。
更に、行動可能性判定部2002は、例えば、社会的振る舞いを受けたユーザが、社会的振る舞いを行ったユーザとはじめて対話を開始してからの経過時間が10分以内の場合には、協調的な行動をとる可能性が低いと判定し、“Low”を記録する。
なお、図25の1行目のデータ行の例は、アバタID=“AV1”のユーザ140がアバタID=“AV2”のユーザ150に対して、協調的な行動をとる可能性が高いと判定されたことを示している。
また、図25の2行目のデータ行の例は、アバタID=“AV2”のユーザ150がアバタID=“AV1”のユーザ140に対して、協調的な行動をとる可能性が高いと判定されたことを示している。
図22に戻る。ステップS2204において、許容性判定部2003は、社会的振る舞い許容性判定処理を実行する。
具体的には、許容性判定部2003は、“時間区間社会的振る舞い行動傾向記録テーブル”2400において、所定の時間区間(時刻tk−1から時刻tkの間)の“社会的振る舞い行動傾向”を参照する。これにより、許容性判定部2003は、“振る舞いアバタID”に記録されたアバタIDのユーザが“被振る舞いアバタID” に記録されたアバタIDのユーザに対して行った社会的振る舞いの行動傾向を判別する。
また、許容性判定部2003は、“協調的行動可能性判定記録テーブル”2500において、所定の時間区間(時刻tk−1から時刻tkの間)の“協調的行動可能性”を参照する。これにより、許容性判定部2003は、“振る舞いアバタID”に記録されたアバタIDのユーザが、“被振る舞いアバタID”に記録されたアバタIDのユーザに対して、協調的な行動をとる可能性について判定結果を判別する。
また、許容性判定部2003は、判別した行動傾向と、判別した協調的行動可能性の判定結果とに基づいて、時刻tkにおける、社会的振る舞い許容性を判定する。つまり、“被振る舞いアバタID”に記録されたアバタIDのユーザに対して“振る舞いアバタID” に記録されたアバタIDのユーザが、社会的振る舞いを受けたと判別する可能性を判定する。
許容性判定部2003は、例えば、以下の条件が両方成立したか否かを判定することで社会的振る舞いを受けたと判別する可能性を判定する。
・判別した行動傾向が接近行動傾向もしくは中間行動傾向である。
・協調的行動可能性の判定結果がHighである。
許容性判定部2003は、上記の条件が両方成立した場合、“被振る舞いアバタID”に記録されたアバタIDのユーザに対して、“振る舞いアバタID”に記録されたアバタIDのユーザが、社会的振る舞いを受けたと判別する可能性が高いと判定する。つまり、許容性判定部2003は、“Acceptable”と判定する。
一方、許容性判定部2003は、上記の条件のいずれかが成立しなかった場合または両方成立しなかった場合、“被振る舞いアバタID”に記録されたアバタIDのユーザに対して、社会的振る舞いを受けたと判別する可能性が低いと判定する。つまり、許容性判定部2003は、“Not Acceptable”と判定する。
更に、許容性判定部2003は、社会的振る舞い許容性判定処理の結果を、評価情報DB119の“社会的振る舞い許容性判定記録テーブル”に記録する。
図26は、評価情報DBに記録された社会的振る舞い許容性判定記録テーブルの一例を示す図である。図26に示すように、“社会的振る舞い許容性判定記録テーブル”2600には、“振る舞いアバタID”と“被振る舞いアバタID”とが含まれ、それぞれアバタIDが記録される。
また、“社会的振る舞い許容性判定記録テーブル”2600には、“社会的振る舞い許容性”が含まれる。“社会的振る舞い許容性”には、“振る舞いアバタID”に記録されたアバタIDのユーザについての、“被振る舞いアバタID”に記録されたアバタIDのユーザに対する社会的振る舞い許容性が記録される。
図26の1行目のデータ行の例は、アバタID=“AV2”のユーザ150に対して、アバタID=“AV1”のユーザ140が、社会的振る舞いを受けたと判別する可能性が高いことを示している(“Acceptable”)。ユーザ150に対してユーザ140が行った社会的振る舞いの行動傾向が中間行動傾向であり、ユーザ150の協調的行動可能性が“High”となっているからである。
一方、図26の2行目のデータ行の例は、ユーザ140に対してユーザ150が、社会的振る舞いを受けたと判別する可能性が低いことを示している(“Not Acceptable”)。ユーザ140に対してユーザ150が行った社会的振る舞いの行動傾向が回避行動傾向となっているためである。
図22に戻る。ステップS2205において、決定部2004は、社会的振る舞い許容性判定に基づく対話戦略決定処理を実行する。
具体的には、決定部2004は、“社会的振る舞い許容性判定記録テーブル”2600を参照する。そして、決定部2004は、“社会的振る舞い許容性”に記録された社会的振る舞い許容性の判定結果に基づいて、“被振る舞いアバタID”に記録されたアバタIDのユーザに対する対話戦略を決定する。
例えば、“社会的振る舞い許容性判定記録テーブル”2600のデータ行のうちの1行目の場合、社会的振る舞い許容性が“Acceptable”である。振る舞いアバタID=“AV1”のユーザ140から見た、被振る舞いアバタID=“AV2”のユーザ150に対する社会的振る舞い許容性が判定されると、決定部2004では対話戦略を決定する(“positive”戦略)。
また、“社会的振る舞い許容性判定記録テーブル”2600のデータ行のうちの2行目の場合、社会的振る舞い許容性が“Not Acceptable”である。振る舞いアバタID=“AV2”のユーザ150から見た、被振る舞いアバタID=“AV1”のユーザ140に対する社会的振る舞い許容性が判定されると、決定部2004では対話戦略を決定する(“negative”戦略)。
なお、決定部2004による対話戦略の決定方法はこれに限定されず、例えば、“社会的振る舞い行動傾向”と、“協調的行動可能性”と、“社会的振る舞い許容性”とを組み合わせて決定してもよい。
例えば、
・“社会的振る舞い許容性”=“Acceptable”、
・“社会的振る舞い行動傾向”=“接近行動傾向”または“中間行動傾向”
・“協調的行動可能性”=“Low”、
の場合、対話戦略を、“Dynamically_positive”戦略に決定するようにしてもよい。
あるいは、
・“社会的振る舞い許容性”=“Acceptable”、
・“社会的振る舞い行動傾向”=“回避行動傾向”、
・“協調的行動可能性”=“Low”、
の場合、対話戦略を、“Minimally_positive”戦略に決定するようにしてもよい。
あるいは、
・“社会的振る舞い許容性”=“Not Acceptable”、
・“社会的振る舞い行動傾向”=“回避行動傾向”、
・“協調的行動可能性”=“High”、
の場合、対話戦略を、“Shortly_negative”戦略に決定するようにしてもよい。
なお、決定部2004により決定された対話戦略は、提示制御部805によって、評価情報DB119の“社会的振る舞い許容性に応じた対話戦略決定記録テーブル”に記録される。図27は、評価情報DBに記録された、社会的振る舞い許容性に応じた対話戦略決定記録テーブルの一例を示す図である。
図27に示すように、“社会的振る舞い許容性に応じた対話戦略決定記録テーブル”2700には、情報の項目として、“振る舞いアバタID”と“被振る舞いアバタID”とが含まれる。そして、これらの情報の項目には、ユーザのアバタIDが記録される。また、“社会的振る舞い許容性に応じた対話戦略決定記録テーブル”2700には、情報の項目として“対話戦略”が含まれる。“対話戦略”には、“被振る舞いアバタID”に記録されたアバタIDのユーザに対する、“振る舞いアバタID”に記録されたアバタIDのユーザによる対話戦略であって、決定部2004により決定された対話戦略が記録される。
図27の1行目のデータ行の例によれば、ユーザ150がユーザ140に対して社会的振る舞いを行った際の、ユーザ140のユーザ150に対する対話戦略として、“positive”戦略が決定されている。
また、図27の2行目のデータ行の例によれば、ユーザ140がユーザ150に対して社会的振る舞いを行った際の、ユーザ150のユーザ140に対する対話戦略として、“Shortly_positive”戦略が決定されている。
以上の説明から明らかなように、第2の実施形態における画像生成装置110は、社会的振る舞いの傾向に基づいて、対話戦略を決定するにあたり、
・社会的振る舞いの傾向を、所定の時間区間における回数または時間に基づいて定量化し、閾値と比較することで行動傾向を特定する。
・行動傾向と協調的行動可能性とに基づいて、社会的振る舞い許容性を判定する。
・社会的振る舞い許容性の判定結果に基づいて対話戦略を決定する。
これにより、第2の実施形態における画像生成装置110によれば、社会的振る舞い許容性の観点から決定した対話戦略に基づくリアクティブな振る舞いを、対話相手に提示することができる。
[第3の実施形態]
上記第2の実施形態では、社会的振る舞い許容性を判定することで、対話戦略を決定する場合について説明した。これに対して、第3の実施形態では、更に、対話相手との関係性レベルを判定し、関係性レベルを調整するように、対話戦略を決定する。なお、関係性レベルとは、対話相手に対する親しみのレベルを示した情報である。以下、第3の実施形態について、上記第2の実施形態との相違点を中心に説明する。
<画像生成装置のリアクティブ処理部の機能構成>
はじめに、第3の実施形態における画像生成装置110のリアクティブ処理部115の機能構成について説明する。図28は、画像生成装置のリアクティブ処理部の機能構成を説明するための第3の図である。
図20との相違点は、対話戦略決定部2800と、定義データ用DB118及び評価情報DB119に、新たなテーブルが格納されている点である。なお、図28の定義データ用DB118及び評価情報DB119に示すテーブルのうち、黒丸が付されたテーブルは、新たなテーブルであることを表している。
図28に示すように、対話戦略決定部2800は、行動傾向特定部2001、行動可能性判定部2002、許容性判定部2003、関係性レベル処理部2801、被関係性レベル処理部2802、関係性調整部2803、決定部2804を有する。
関係性レベル処理部2801は、例えば、ユーザ150が発話や社会的振る舞いを行ったことをトリガとして、ユーザ150がユーザ140に対して行った、発話や社会的振る舞いに含まれる情報量(情報開示量)を算出する。なお、関係性レベル処理部2801は、情報開示量を算出するにあたり、“社会的振る舞い値算出記録テーブル”及び“発話値算出記録テーブル”を参照する。また、関係性レベル処理部2801は、算出した情報開示量を、“対話相手に対する情報開示量記録テーブル”に記録する。
また、関係性レベル処理部2801は、算出した情報開示量に基づいて、ユーザ140に対してユーザ150が適切と見なしている関係性レベルを判定し、判定結果を“対話相手に対して適切と見なしている関係性レベル判定記録テーブル”に記録する。
更に、関係性レベル処理部2801は、判定した関係性レベルと、関係性進展の次の目標となる関係性レベルとの間で、関係性の進展の度合いを算出し、“関係性の進展の度合い記録テーブル”に記録する。なお、本実施形態では、関係性レベルの判定を、情報開示量に基づいて行う場合について説明するが、関係性レベルの判定方法は、これに限定されず、関係性レベル処理部2801は、他の判定方法により、関係性レベルの判定を行ってもよい。
被関係性レベル処理部2802は、ユーザ140からの発話や社会的振る舞いが記録されたことをトリガとして、ユーザ150がユーザ140から受けた、発話や社会的振る舞いに含まれる情報量(被情報開示量)を算出する。被関係性レベル処理部2802は、算出した被情報開示量を、“対話相手からの被情報開示量記録テーブル”に記録する。
また、被関係性レベル処理部2802は、算出した被情報開示量に基づき、ユーザ150に対してユーザ140が適切と見なしている被関係性レベルを推定する。被関係性レベル処理部2802は、推定した被関係性レベルを、“対話相手からの被情報開示量に基づき対話相手が適切と見なしている被関係性レベル推定記録テーブル”に記録する。
関係性調整部2803は、許容性判定部2003により社会的振る舞い許容性が“Acceptable”の場合に、関係性レベルの調整の方向を制御する。具体的には、関係性調整部2803は、ユーザ150について算出した、対話相手に対する関係性レベルと、対話相手からの被関係性レベルとを比較し、両者の大小関係に基づき、ユーザ150のユーザ140に対する関係性レベルの調整の方向を制御する。
決定部2804は、定義データ用DB118の“関係性レベルごとの対話戦略定義データテーブル”を参照し、関係性レベルの調整の方向に応じて、ユーザ150のユーザ140に対する対話戦略を決定する。
なお、提示制御部805は、決定された対話戦略について、リアクティブな社会的振る舞いが許可されているか否かを判定する。また、提示制御部805は、リアクティブな社会的振る舞いが許可されていると判定した場合に、決定された対話戦略に対応付けられた、ユーザ150のリアクティブな社会的振る舞いを示すアバタの画像を、情報表示処理部112に送信する。また、提示制御部805は、情報表示処理部112に対して、ユーザ150のリアクティブな社会的振る舞いを示すアバタの画像を表示するよう指示する。更に、提示制御部805は、このときの対話戦略を、評価情報DB119の“関係性レベルに応じた対話戦略決定記録テーブル”に記録する。
<リアクティブ処理部の各部の処理に関連するテーブルの説明>
次に、リアクティブ処理部115の各部(ここでは、対話戦略決定部2800)の処理に関連するデータを含むテーブル(ここでは、定義データ用DB118に格納された、“関係性レベルごとの対話戦略定義データテーブル”)について説明する。
図29は、定義データ用DBに格納された、関係性レベルごとの対話戦略定義データテーブルの一例を示す図である。図29に示すように、“関係性レベルごとの対話戦略定義データテーブル”2900には、情報の項目として、“関係性レベル”、“デフォルトの戦略からの距離”、“対話戦略”が含まれる。
“関係性レベル”には、一方のユーザから見た場合の他方のユーザの関係性のレベルが規定される。図29の例は、関係性のレベルが3段階に分かれていることを示している。このうち“0_superficial”は、一方のユーザから見た場合の他方のユーザの関係性が、表面的なレベルであることを示している。“1-intimate”は、一方のユーザから見た場合の他方のユーザの関係性が、親しいレベルであることを示している。“2-personal”は、一方のユーザから見た場合の他方のユーザの関係性が、更に親しいレベルであることを示している。
“デフォルトの戦略からの距離”には、それぞれの関係性レベルにおけるデフォルトの戦略からの距離が規定される。
“対話戦略”には、それぞれの関係性レベルにおけるデフォルトの対話戦略からの距離に応じた対話戦略が規定される。
図29によれば、関係性レベルが“0_superficial”の場合、デフォルトの対話戦略(つまり、“デフォルトの戦略からの距離”が0の対話戦略)は、“Shortly_positive”戦略である。また、デフォルトの対話戦略に対して、プラス方向の対話戦略は、“Sunnily_positive”戦略や“Sunnily_Shortly_positive”戦略である。更に、デフォルトの対話戦略に対して、マイナス方向の対話戦略は、“Minimally_positive”戦略や“Minimally_Shortly_positive”戦略である。
同様に、“関係性レベルごとの対話戦略定義データテーブル”2900には、関係性レベルが“1_intimate”の場合について、デフォルトの対話戦略と、デフォルトの対話戦略に対してプラス方向の対話戦略とマイナス方向の対話戦略とが規定されている。
同様に、“関係性レベルごとの対話戦略定義データテーブル”2900には、関係性レベルが“2_personal”の場合について、デフォルトの対話戦略と、デフォルトの対話戦略に対してプラス方向の対話戦略とマイナス方向の対話戦略とが規定されている。
<リアクティブ処理部の提示制御処理の詳細>
次に、リアクティブ処理部115の提示制御処理の詳細について説明する。なお、第3の実施形態において、リアクティブ処理部115の提示制御処理は、第1の実施形態において図15を用いて説明した提示制御処理と同様であり、ステップS1505の対話戦略決定処理のみが異なる。
このため、ここでは、リアクティブ処理部115の提示制御処理のうち、対話戦略決定処理の詳細について説明する。図30は、リアクティブ処理部の対話戦略決定処理の詳細を示す第2のフローチャートである。
図30に示すように、第3の実施形態におけるリアクティブ処理部115の対話戦略決定処理は、第2の実施形態において説明した、ステップS2201からステップS2204の工程に加え、ステップS3001からステップS3004の工程を有する。
ステップS3001は、関係性レベル処理部2801による関係性レベル処理であり、ステップS3002は、被関係性レベル処理部2802による被関係性レベル処理である。また、ステップS3003は、関係性調整部2803による関係性調整制御処理であり、ステップS3004は、決定部2804による関係性調整制御に基づく対話戦略決定処理である。以下、ステップS3001からステップS3004の各工程の詳細について説明する。
なお、ステップS3001からステップS3004の各工程では、社会的振る舞いに関する各種情報(非言語動作に関する各種情報)に加え、発話に関する各種情報(言語動作に関する各種情報)も用いる。このため、ここでは、まず、発話に関する各種情報が記録された発話値算出記録テーブルについて説明する。
図31は、評価情報DBに記録された発話値算出記録テーブルの一例を示す図である。上述したとおり、社会的振る舞いに関する各種情報(非言語動作に関する各種情報)は、社会的振る舞い値算出部802によって算出または特定され、“社会的振る舞い値算出記録テーブル”1800に記録される。
一方で、発話に関する各種情報(言語動作に関する各種情報)は、不図示の発話値算出部によって算出され、“発話値算出記録テーブル”3100に記録されるものとする。
図31に示すように、発話値算出記録テーブル3100には、情報の項目として、“DB記録時刻”、“記録開始時刻”、“記録終了時刻”、“振る舞いアバタID”、“被振る舞いアバタID”が含まれる。また、“発話値算出記録テーブル”3100には、情報の項目として、“発話音声”、“受話音声”、“発話テキスト”、“受話テキスト”、“個人情報による情報開示回数”、“一般的トピックによる情報開示回数”が含まれる。更に、“発話値算出記録テーブル”3100には、情報の項目として、“個人情報による被情報開示回数”、“一般的トピックによる被情報開示回数”が含まれる。
このうち、図31の左から右へ向かう方向に各情報の項目を見た場合の、“DB記録時刻”から“被振る舞いアバタID”までの各情報の項目は、“社会的振る舞い値算出記録テーブル”1800に含まれる情報の項目と同様であるため、ここでは、説明を省略する。
“発話音声”には、“振る舞いアバタID”に記録されたアバタIDのユーザが発話した音声データの格納先ファイル名が記録される。
“受話音声”には、“被振る舞いアバタID”に記録されたアバタIDのユーザが受話した音声データの格納先ファイル名が記録される。
“発話テキスト”には、“発話音声”に格納先ファイル名が記録されたファイルのテキストデータが記録される。
“受話テキスト”には、“受話音声”に格納先ファイル名が記録されたファイルのテキストデータが記録される。
“個人情報による情報開示回数”には、“振る舞いアバタID”に記録されたアバタIDのユーザが発話により個人情報を開示した回数が記録される。“一般的トピックによる情報開示回数”には、“振る舞いアバタID”に記録されたアバタIDのユーザが発話により一般的トピックを開示した回数が記録される。
“個人情報による被情報開示回数”には、“被振る舞いアバタID”に記録されたアバタIDのユーザが受話により個人情報の開示を受けた回数が記録される。“一般的トピックによる被情報開示回数”には、“被振る舞いアバタID”に記録されたアバタIDのユーザが受話により一般的トピックの開示を受けた回数が記録される。
(1)関係性レベル処理(ステップS3001)の詳細
図32は、関係性レベル処理の詳細を示すフローチャートである。関係性レベル処理部2801は、“社会的振る舞い値算出記録テーブル”1800及び“発話値算出記録テーブル”3100の各データ行について、関係性レベル処理を実行する。
ステップS3201において、関係性レベル処理部2801は、“社会的振る舞い値算出記録テーブル”1800または“発話値算出記録テーブル”3100について、未処理のデータ行があるか否かを判定する。ステップS3201において、未処理のデータ行があると判定した場合、ステップS3202に進む。
ステップS3202において、関係性レベル処理部2801は、非言語動作による情報開示スコアを算出する。
具体的には、関係性レベル処理部2801は、“社会的振る舞い値算出記録テーブル”1800を参照し、未処理のデータ行を抽出する。関係性レベル処理部2801は、ユーザ150(振る舞いアバタID=“AV2”)のデータ行であって、前回処理したデータ行の“記録終了時刻”に記録された時刻以降に記録されたデータ行を、未処理のデータ行として抽出する。
また、関係性レベル処理部2801は、抽出した未処理のデータ行から、“非言語動作による情報開示(身体接触の有無)”に記録された情報、“非言語動作による情報開示(意思及び態度(表情等)の提示有無)”に記録された情報を抽出する。更に、関係性レベル処理部2801は、抽出した情報に基づいて、非言語動作による情報開示スコアを算出する。
例えば、抽出した未処理のデータ行において、“非言語動作による情報開示(身体接触の有無)”に記録された情報が“有”の場合、関係性レベル処理部2801は、非言語動作による情報開示スコアに5点を加点する。同様に、“非言語動作による情報開示(意思及び態度(表情等)の提示有無)”に記録された情報が“有”の場合、関係性レベル処理部2801は、非言語動作による情報開示スコアに5点を加点する。
ステップS3203において、関係性レベル処理部2801は、言語動作による情報開示スコアを算出する。
具体的には、関係性レベル処理部2801は、“発話値算出記録テーブル”3100を参照し、未処理のデータ行を抽出する。関係性レベル処理部2801は、ユーザ150(振る舞いアバタID=“AV2”)のデータ行であって、前回処理したデータ行の“記録終了時刻”に記録された時刻以降に記録されたデータ行を、未処理のデータ行として抽出する。
また、関係性レベル処理部2801は、抽出した未処理のデータ行から、“個人情報による情報開示回数”に記録された情報、“一般的トピックによる情報開示回数”に記録された情報を抽出し、言語動作による情報開示スコアを算出する。
例えば、抽出した未処理のデータ行において、“個人情報による情報開示回数”に記録された情報が“1”の場合、関係性レベル処理部2801は、言語動作による情報開示スコアに5点を加点する。同様に、“一般的トピックによる情報開示回数”に記録された情報が“1”の場合、関係性レベル処理部2801は、言語動作による情報開示スコアに1点を加点する。
ステップS3204において、関係性レベル処理部2801は、対話相手に対する情報開示量を算出し、“情報開示量記録テーブル”に記録する。
具体的には、関係性レベル処理部2801は、非言語動作による情報開示スコアと、言語動作による情報開示スコアとに基づいて、情報開示量を算出する。なお、関係性レベル処理部2801は、非言語動作による情報開示スコアと、言語動作による情報開示スコアとを単純加算して情報開示量を算出してもよいし、重み付け加算して情報開示量を算出してもよい。
関係性レベル処理部2801は、算出した情報開示量を、非言語動作による情報開示スコア及び言語動作による情報開示スコアとともに、評価情報DB119の“対話相手に対する情報開示量記録テーブル”に記録する。
図33は、評価情報DBに記録された、対話相手に対する情報開示量記録テーブルの一例を示す図である。図33に示すように、“対話相手に対する情報開示量記録テーブル”3300には、“振る舞いアバタID”と“被振る舞いアバタID”とが含まれる。“振る舞いアバタID”及び“被振る舞いアバタID”には、言語動作・非言語動作を行ったユーザのアバタIDと、当該ユーザが言語動作・非言語動作を行ったことで社会的振る舞いを受けたユーザのアバタIDとが記録される。
また、“対話相手に対する情報開示量記録テーブル”3300には、情報の項目として、“非言語動作による情報開示スコア”、“言語動作による情報開示スコア”が含まれる。そして、それぞれの情報の項目には、関係性レベル処理部2801により算出された、非言語動作による情報開示スコア、言語動作による情報開示スコアが記録される。
更に、“対話相手に対する情報開示量記録テーブル”3300には、情報の項目として、“情報開示量”が含まれ、関係性レベル処理部2801により算出された情報開示量が記録される。なお、図33の例は、非言語動作による情報開示スコアと言語動作による情報開示スコアとを単純加算することで、情報開示量が算出された場合を示している。
図32に戻る。ステップS3205において、関係性レベル処理部2801は、対話相手に対する関係性レベル判定処理を実行する。
具体的には、関係性レベル処理部2801は、“対話相手に対して適切と見なしている関係性レベル判定記録テーブル”を参照し、“累積情報開示量”に記録された最新の値を抽出する。なお、図34は、評価情報DBに記録された、対話相手に対して適切と見なしている関係性レベル判定記録テーブルの一例を示す図である。
また、関係性レベル処理部2801は、“対話相手に対する情報開示量記録テーブル”3300の“情報開示量”に記録した最新の値を抽出する。
そして、関係性レベル処理部2801は、“累積情報開示量”に記録された最新の値と、“情報開示量”に記録した最新の値とに基づいて、新たに累積情報開示量を算出する。
また、関係性レベル処理部2801は、新たに算出した累積情報開示量が所定の閾値を超えているか否かを判定する。
関係性レベル処理部2801は、所定の閾値を超えていると判定した場合、“対話相手に対して適切と見なしている関係性レベル判定記録テーブル”3400を参照する。関係性レベル処理部2801は、“対話相手に対して適切と見なしている関係性レベル”に記録された最新の関係性レベルを抽出する。また、関係性レベル処理部2801は、抽出した関係性レベルを次の関係性レベルに進める。
次の関係性レベルに進めるとは、抽出した関係性レベルが、“0_superficial”であった場合には、“1_intimate”にすることを指す。あるいは、抽出した関係性レベルが、“1_intimate”であった場合には、“2_personal”にすることを指す。
関係性レベル処理部2801は、抽出した関係性レベルまたは次の関係性レベルを、新たに算出した累積情報開示量と対応付けて、“対話相手に対して適切と見なしている関係性レベル判定記録テーブル”3400に記録する。なお、関係性レベル処理部2801は、次の関係性レベルを記録する場合には、累積情報開示量を0にリセットする。
ステップS3206において、関係性レベル処理部2801は、対話相手に対する関係性レベル進展度算出処理を実行する。
具体的には、関係性レベル処理部2801は、“対話相手に対して適切と見なしている関係性レベル判定記録テーブル”3400を参照し、“累積情報開示量”に新たに記録された値を抽出する。また、関係性レベル処理部2801は、“対話相手に対して適切と見なしている関係性レベル判定記録テーブル”3400の“対話相手に対して適切と見なしている関係性レベル”を算出する際に用いた閾値を抽出する。
更に、関係性レベル処理部2801は、抽出した“累積情報開示量”と、抽出した閾値とに基づいて、関係性の進展の度合いを算出する。関係性の進展の度合いとは、それぞれの関係性レベル(0_superficial、1_intimate、2_personal)において、累積情報開示量がどの程度増えたかを示す指標である。上記のとおり、累積情報開示量は、次の関係性レベルに進むための所定の閾値まで増え、所定の閾値を超えると、リセットされる。このため、関係性の進展の度合いは、次の関係性レベルに進むための閾値に対する、新たに算出した累積情報開示量の比率に基づいて算出される。
関係性レベル処理部2801は、算出した、関係性の進展の度合いを、評価情報DB119の“関係性の進展の度合い記録テーブル”に記録する。
図35は、評価情報DBに記録された、関係性の進展の度合い記録テーブルの一例を示す図である。図35に示すように、“関係性の進展の度合い記録テーブル”3500には、情報の項目として、“対話相手に対して適切と見なしている関係性レベル”、“関係性の進展の度合い”が含まれる。それぞれの情報の項目には、関係性レベル処理部2801において算出された算出結果が記録される。
(2)被関係性レベル処理(ステップS3002)の詳細
図36は、被関係性レベル処理の詳細を示すフローチャートである。被関係性レベル処理部2802は、“社会的振る舞い値算出記録テーブル”1800及び“発話値算出記録テーブル”3100の各データ行について、関係性レベル処理を実行する。
ステップS3601において、被関係性レベル処理部2802は、“社会的振る舞い値算出記録テーブル”1800または“発話値算出記録テーブル”3100について、当該関係性レベル処理について未処理のデータ行があるか否かを判定する。ステップS3601において、未処理のデータ行があると判定した場合、ステップS3602に進む。
ステップS3602において、被関係性レベル処理部2802は、非言語動作による被情報開示スコアを算出する。
具体的には、被関係性レベル処理部2802は、“社会的振る舞い値算出記録テーブル”1800を参照し、未処理のデータ行を抽出する。被関係性レベル処理部2802は、ユーザ140(振る舞いアバタID=“AV1”)のデータ行であって、前回処理したデータ行の“記録終了時刻”に記録された時刻以降に記録されたデータ行を、未処理のデータ行として抽出する。
また、被関係性レベル処理部2802は、抽出した未処理のデータ行から、“非言語動作による被情報開示(身体接触の有無)”に記録された情報、“非言語動作による被情報開示(意思及び態度(表情等)の提示有無)”に記録された情報を抽出する。更に、被関係性レベル処理部2802は、抽出した情報に基づいて、非言語動作による被情報開示スコアを算出する。
例えば、抽出した未処理のデータ行において、“非言語動作による被情報開示(身体接触の有無)”に記録された情報が“有”の場合、被関係性レベル処理部2802は、非言語動作による被情報開示スコアに5点を加点する。同様に、“非言語動作による被情報開示(意思及び態度(表情等)の提示有無)”に記録された情報が“有”の場合、被関係性レベル処理部2802は、非言語動作による被情報開示スコアに5点を加点する。
ステップS3603において、被関係性レベル処理部2802は、言語動作による被情報開示スコアを算出する。
具体的には、被関係性レベル処理部2802は、“発話値算出記録テーブル”3100を参照し、未処理のデータ行を抽出する。被関係性レベル処理部2802は、ユーザ140(振る舞いアバタID=“AV1”)のデータ行であって、前回処理したデータ行の“記録終了時刻”に記録された時刻以降に記録されたデータ行を、未処理のデータ行として抽出する。
また、被関係性レベル処理部2802は、抽出した未処理のデータ行から、“個人情報による被情報開示回数”に記録された情報、“一般的トピックによる被情報開示回数”に記録された情報を抽出する。更に、被関係性レベル処理部2802は、抽出した情報に基づいて、言語動作による被情報開示スコアを算出する。
例えば、抽出した未処理のデータ行において、“個人情報により被情報開示回数”に記録された情報が“1”の場合、被関係性レベル処理部2802は、言語動作による被情報開示スコアに5点を加点する。同様に、“一般的トピックによる被情報開示回数”に記録された情報が“1”の場合、被関係性レベル処理部2802は、言語動作による被情報開示スコアに1点を加点する。
ステップS3604において、被関係性レベル処理部2802は、対話相手からの被情報開示量を算出する。
具体的には、被関係性レベル処理部2802は、非言語動作による被情報開示スコアと、言語動作による被情報開示スコアとに基づいて、ユーザ150がユーザ140から受けた情報の情報開示量である、被情報開示量を算出する。なお、被関係性レベル処理部2802は、非言語動作による被情報開示スコアと、言語動作による被情報開示スコアとを単純加算して被情報開示量を算出してもよいし、重み付け加算して被情報開示量を算出してもよい。
更に、被関係性レベル処理部2802は、算出した被情報開示量を、非言語動作による被情報開示スコア及び言語動作による被情報開示スコアとともに、評価情報DB119の“対話相手からの被情報開示量記録テーブル”に記録する。
図37は、評価情報DBに記録された、対話相手からの被情報開示量記録テーブルの一例を示す図である。図37に示すように、“対話相手からの被情報開示量記録テーブル”3700には、情報の項目として、“振る舞いアバタID”と“被振る舞いアバタID”とが含まれる。これらの情報の項目には、社会的振る舞いを行ったユーザのアバタIDと、社会的振る舞いを受けたユーザのアバタIDとが記録される。
また、“対話相手からの被情報開示量記録テーブル”3700には、情報の項目として、“非言語動作による被情報開示スコア”、“言語動作による被情報開示スコア”が含まれる。これらの情報の項目には、被関係性レベル処理部2802により算出された、非言語動作による被情報開示スコア、言語動作による被情報開示スコアが記録される。
更に、“対話相手からの被情報開示量記録テーブル”3700には、情報の項目として、“被情報開示量”が含まれ、被関係性レベル処理部2802により算出された被情報開示量が記録される。なお、図37の例は、非言語動作による被情報開示スコアと言語動作による被情報開示スコアとを単純加算することで、被情報開示量が算出された場合を示している。
続いて、図36のステップS3605において、被関係性レベル処理部2802は、対話相手からの被関係性レベル推定処理を実行する。
具体的には、被関係性レベル処理部2802は、評価情報DB119の“対話相手からの被情報開示量に基づき対話相手が適切と見なしている被関係性レベル推定記録テーブル”を参照し、“累積被情報開示量”に記録された最新の値を抽出する。なお、図38は、評価情報DBに記録された、対話相手からの被情報開示量に基づき対話相手が適切と見なしている被関係性レベル推定記録テーブルの一例を示す図である。
また、被関係性レベル処理部2802は、“対話相手からの被情報開示量記録テーブル”3700を参照し、“被情報開示量”に記録した最新の値を抽出する。
そして、被関係性レベル処理部2802は、“累積被情報開示量”に記録された最新の値と、“被情報開示量”に記録した最新の値とに基づいて、新たに累積被情報開示量を算出する。
また、被関係性レベル処理部2802は、新たに算出した累積被情報開示量が所定の閾値を超えているか否かを判定する。
被関係性レベル処理部2802は、所定の閾値を超えていると判定した場合、“対話相手からの被情報開示量に基づき対話相手が適切と見なしている被関係性レベル推定記録テーブル”3800を参照する。そして、被関係性レベル処理部2802は、“対話相手が適切と見なしている被関係性レベル”に記録された最新の被関係性レベルを抽出し、抽出した被関係性レベルを次の被関係性レベルに進める。
被関係性レベル処理部2802は、抽出した最新の被関係性レベルまたは次の被関係性レベルを、“対話相手からの被情報開示量に基づき対話相手が適切と見なしている被関係性レベル推定記録テーブル”3800に記録する。このとき、被関係性レベル処理部2802は、新たに算出した累積情報開示量と対応付けて記録する。なお、被関係性レベル処理部2802は、次の被関係性レベルを記録する場合には、累積被情報開示量を0にリセットする。
(3)関係性調整制御処理(ステップS3003)の詳細
図39は、関係性調整制御処理の詳細を示すフローチャートである。ステップS3901において、関係性調整部2803は、“社会的振る舞い許容性判定記録テーブル”2600を参照し、社会的振る舞い許容性が“Acceptable”であるか否かを判定する。ステップS3901において、“Acceptable”であると判定した場合には、ステップS3902に進む。
ステップS3902において、関係性調整部2803は、関係性レベルの調整方向制御処理を実行する。
具体的には、関係性調整部2803は、“対話相手に対して適切と見なしている関係性レベル判定記録テーブル”3400を参照し、“対話相手に対して適切と見なしている関係性レベル”に新たに記録された関係性レベルを抽出する。
また、関係性調整部2803は、“対話相手からの被情報開示量に基づき対話相手が適切と見なしている被関係性レベル推定記録テーブル”3800を参照し、“対話相手が適切と見なしている被関係性レベル”に新たに記録された被関係性レベルを抽出する。
また、関係性調整部2803は、抽出した関係性レベルと、抽出した被関係性レベルとが同一であるか否かを判定する。
同一であると判定した場合、関係性調整部2803は、ユーザ140とユーザ150とは同程度の情報開示によって、同程度のスピードで関係構築を行っているものと推定する。この場合、関係性調整部2803は、関係性調整の方向制御の必要はなく、また、対話戦略を更新する必要もないと判定する。
一方、同一でないと判定した場合、関係性調整部2803は、両者の大小関係を判定する。抽出した関係性レベルの方が、抽出した被関係性レベルよりも大きい場合、関係性調整部2803は、関係性レベルを近づけすぎないような方向(マイナス方向)へ制御すると判定する。
例えば、ユーザ150がユーザ140に対して適切と見なしている関係性レベルが、“1_intimate”であったとする。一方、ユーザ140がユーザ150に対して適切と見なしていると推定される被関係性レベルが、“0_superficial”であったとする。この場合、関係性調整部2803は、マイナス方向へ制御すると判定する。
また、抽出した関係性レベルよりも、抽出した被関係性レベルの方が大きい場合、関係性調整部2803は、関係性レベルを近づける方向(プラス方向)へ制御すると判定する。
例えば、ユーザ150がユーザ140に対して適切と見なしている関係性レベルが、“0_superficial”であったとする。一方、ユーザ140がユーザ150に対して適切と見なしていると推定される被関係性レベルが、“1_intimate”であったとする。この場合、関係性調整部2803は、プラス方向へ制御すると判定する。
(4)関係性調整制御に基づく対話戦略決定処理(ステップS3004)の詳細
図40は、関係性調整制御に基づく対話戦略決定処理の詳細を示すフローチャートである。ステップS4001において、決定部2804は、関係性調整部2803による関係性調整制御処理(ステップS3003)の処理結果を参照し、関係性調整の方向制御が必要か否かを判定する。
関係性レベルと被関係性レベルとが同一でない場合、ステップS4001において、決定部2804は、関係性調整の方向制御が必要であると判定し、ステップS4002に進む。
ステップS4002において、決定部2804は、現在の対話戦略を把握するとともに、関係性調整部2803により判定された方向を識別する。
関係性調整部2803により判定された関係性レベルの調整の方向がマイナス方向であった場合、決定部2804は、現在の対話戦略よりも、マイナス方向の対話戦略を決定する。
一方、関係性調整部2803により判定された関係性レベルの調整の方向がプラス方向であった場合、決定部2804は、現在の対話戦略よりも、プラス方向の対話戦略を決定する。なお、関係性調整部2803は、対話戦略を決定するにあたり、“関係性レベルごとの対話戦略定義データテーブル”2900を参照する。
提示制御部805は、関係性調整部2803が決定した対話戦略を、評価情報DB119の“関係性レベルに応じた対話戦略決定記録テーブル”に記録する。
図41は、評価情報DBに記録された、関係性レベルに応じた対話戦略決定記録テーブルの一例を示す図である。図41に示すように、“関係性レベルに応じた対話戦略決定記録テーブル”4100には、情報の項目として、“振る舞いアバタID”と“被振る舞いアバタID”とが含まれる。これらの情報の項目には、対話戦略に基づいて振る舞うユーザのアバタIDと、当該対話戦略に基づく振る舞いを受けるユーザのアバタIDとが記録される。
また、“関係性レベルに応じた対話戦略決定記録テーブル”4100には、情報の項目として、“関係性調整の方向制御”、“対話戦略”が含まれる。これらの情報の項目には、関係性調整部2803により判定された方向と、決定部2804により決定された対話戦略とが記録される。
例えば、現在の対話戦略が、関係性レベルが“0_superficial”のデフォルトの対話戦略(“デフォルトの戦略からの距離”が0である対話戦略)である、“Shortly_positive”戦略であったとする。この場合、“関係性調整の方向制御”がマイナス方向であるならば、図29より、マイナス方向の対話戦略は、“Minimally_positive”戦略となる。したがって、決定部2804では、関係性レベルに応じた対話戦略として、“Minimally_positive”戦略を決定する。また、提示制御部805は、“関係性レベルに応じた対話戦略決定記録テーブル”4100の“対話戦略”に、“Minimally_positive”戦略を記録する。
以上の説明から明らかなように、第3の実施形態における画像生成装置110は、社会的振る舞いの傾向に基づいて、対話戦略を決定するにあたり、
・対話相手との間で、関係性レベルと被関係性レベルとを判定または推定する。
・社会的振る舞い許容性が“Acceptable”の場合に、関係性レベルと被関係性レベルとのバランスを調整するように、対話戦略を決定する。
これにより、第3の実施形態における画像生成装置110によれば、対話相手との関係性レベルを調整する観点から決定した対話戦略に基づくリアクティブな振る舞いを、対話相手に提示することができる。
[第4の実施形態]
上記第1乃至第3の実施形態では、対話戦略に対応するリアクティブな社会的振る舞いが予め定められているものとして説明した。これに対して、第4の実施形態では、ユーザが実際に行った社会的振る舞いに基づいて、対話戦略に対応するリアクティブな社会的振る舞いを変更する場合について説明する。以下、第4の実施形態について、第1の実施形態との相違点を中心に説明する。
<画像生成装置のリアクティブ処理部の機能構成>
はじめに、画像生成装置110のリアクティブ処理部115の機能構成について説明する。図42は、画像生成装置のリアクティブ処理部の機能構成を説明するための第4の図である。
図8との相違点は、提示制御部4200と、定義データ用DB118及び評価情報DB119に、新たなテーブルが格納されている点である。なお、図42の定義データ用DB118及び評価情報DB119に示すテーブルのうち、黒丸が付されたテーブルは、新たなテーブルであることを表している。
図42に示すように、提示制御部4200は、実行スタック登録部4201、合成部4202、制御部4203を有する。
実行スタック登録部4201は、評価情報DB119の“対話戦略決定記録テーブル”1900の“対話戦略”を参照し、現状の対話戦略について識別する。なお、第4の実施形態において、実行スタック登録部4201は、“対話戦略決定記録テーブル”1900の“対話戦略”に記録された対話戦略のうち、ユーザ150のユーザ140に対する対話戦略を参照するものとする。
また、実行スタック登録部4201は、定義データ用DB118に格納された“対話戦略ごとのリアクティブな社会的振る舞い定義データテーブル”を参照し、現状の対話戦略について、リアクティブな社会的振る舞いが許可されているか否かを判定する。
また、実行スタック登録部4201は、リアクティブな社会的振る舞いが許可されていると判定した場合に、“対話戦略ごとのリアクティブな社会的振る舞い定義データテーブル”を再度参照し、対応する社会的振る舞いを抽出する。
また、実行スタック登録部4201は、抽出した社会的振る舞いを、リアクティブな社会的振る舞いとして、実行スタックに登録する。実行スタックは、リアクティブな社会的振る舞いとして実行すべき社会的振る舞いを格納するメモリ上の領域であり、社会的振る舞い評価情報DB119の“実行スタック中の社会的振る舞い記録テーブル”とは別に設けられているものとする。なお、抽出した社会的振る舞いが複数であった場合、実行スタック登録部4201は、定義データ用DB118に格納された“社会的振る舞い群の定義データテーブル”を参照し、リアクティブな社会的振る舞い群として、実行スタックに登録する。
更に、実行スタック登録部4201は、実行スタックに登録した社会的振る舞いまたは社会的振る舞い群を、評価情報DB119の“実行スタック中の社会的振る舞い記録テーブル”に記録する。
合成部4202は、ユーザ150により社会的振る舞いが行われた場合に、ユーザ150により行われた社会的振る舞いを実行スタックに新たに登録することで、当該社会的振る舞いを、実行スタックに登録済みの社会的振る舞いに合成する。
なお、合成部4202は、当該社会的振る舞いを合成するにあたり、定義データ用DB118に格納された“社会的振る舞い及び社会的振る舞い群の接近及び回避傾向評価値定義データテーブル”を参照する。そして、合成部4202は、当該社会的振る舞いを合成した場合の影響を考慮したうえで、当該社会的振る舞いを実行スタックに登録済みの社会的振る舞いに合成する。
制御部4203は、ユーザ140により社会的振る舞いが行われた場合に、実行スタックに登録された社会的振る舞い(または社会的振る舞い群)に基づいて、リアクティブな社会的振る舞いを、ユーザ140に提示するよう制御する。
また、制御部4203は、ユーザ140に提示したリアクティブな社会的振る舞いを、評価情報DB119の“社会的振る舞い制御ログテーブル”に記録する。
<リアクティブ処理部の各部の処理に関連するテーブルの説明>
次に、リアクティブ処理部115の各部(ここでは、提示制御部4200)の処理に関連するデータを含むテーブルについて説明する。
(1)対話戦略ごとのリアクティブな社会的振る舞い定義データテーブル
図43は、定義データ用DBに格納された、対話戦略ごとのリアクティブな社会的振る舞い定義データテーブルの一例を示す図である。図43に示すように、“対話戦略ごとのリアクティブな社会的振る舞い定義データテーブル”4300には、情報の項目として、“対話戦略”、“リアクティブな社会的振る舞いの許可制御条件”、“推奨される社会的振る舞い、社会的振る舞い群”が含まれる。
“対話戦略”には、予め定められた複数の対話戦略が規定される。“リアクティブな社会的振る舞いの許可制御条件”には、“対話戦略”に規定されたそれぞれの対話戦略について、リアクティブな社会的振る舞いを許可するための条件が規定される。
“推奨される社会的振る舞い、社会的振る舞い群”には、“対話戦略”に規定されたそれぞれの対話戦略が決定された場合に行われる、社会的振る舞いまたは社会的振る舞い群が規定される。
図43のデータ行の最下行に示すように、例えば、対話戦略として“Totally_positive戦略”が決定されたとする。この場合、“Gesture_NegativemeaningGesture”以外の社会的振る舞いについて、リアクティブな社会的振る舞いが許可される。このため、実行スタック登録部4201は、リアクティブな社会的振る舞いとして、“Approaching_seqStandard”を実行スタックに登録する。
(2)社会的振る舞い群の定義データテーブル
図44は、定義データ用DBに格納された、社会的振る舞い群の定義データテーブルの一例を示す図である。図44に示すように、“社会的振る舞い群の定義データテーブル”4400には、情報の項目として、“社会的振る舞い群”、“構成要素”が含まれる。
“社会的振る舞い群”には、社会的振る舞い群を識別するための名称が規定される。“構成要素”には、“社会的振る舞い群”に規定された社会的振る舞い群に含まれる、複数の社会的振る舞いが規定される。
図44のデータ行のうち1行目の例は、“Approaching_seqStandard”により識別される社会的振る舞い群には、以下の3種類の社会的振る舞いまたは社会的振る舞いの組み合わせが含まれることを示している。なお、社会的振る舞いまたは社会的振る舞いの組み合わせを要素にもつ集合として定義されているものであって、2つ以上の要素を定義したものを、「社会的振る舞い群」と称す。
・“Gesture_Positivemeaninggestureto,type=nod”、“Avoiding_seqKeepaway”
・“Approaching_seqMutualtry”、“Lean_Backward”、“Gesture_Positivemeaninggestureto”
・“Approaching_seqMutualtry”
図44の例によれば、実行スタック登録部4201は、“Approaching_seqStandard”を実行スタックに登録する場合、上記社会的振る舞い群のいずれかを登録する。
(3)社会的振る舞い及び社会的振る舞い群の接近及び回避傾向評価値定義データテーブル
図45は、定義データ用DBに格納された、社会的振る舞い及び社会的振る舞い群の接近及び回避傾向評価値定義データテーブルの一例を示す図である。図45に示すように、“社会的振る舞い及び社会的振る舞い群の接近及び回避傾向評価値定義データテーブル”4500には、情報の項目として、“接近・回避傾向評価値”、“接近・回避傾向評価値の決定条件”が含まれる。
“接近・回避傾向評価値”には、合成部4202が社会的振る舞いを合成する場合に参照する評価値が規定される。“接近・回避傾向評価値の決定条件”には、“接近・回避傾向評価値”に規定された評価値を出力するための条件が規定される。
図45のデータ行のうち、例えば、4行目のデータ行の場合、接近傾向評価値として“4”を出力するためには、
・社会的振る舞い群を実行した際のdurationの長さ(記録開始時刻から記録終了時刻までの時間)が3[秒]以上であること、
が条件となる。
また、4行目のデータ行の場合、回避傾向評価値として“4”を出力するためには、
・社会的振る舞い群を実行した際のdurationの長さが3[秒]以上であること、または、
・実行された社会的振る舞い群が回避傾向の社会的振る舞い群であること、
が条件となる。
<リアクティブ処理部の提示制御処理の詳細>
次に、リアクティブ処理部115の提示制御処理の詳細について説明する。なお、第4の実施形態におけるリアクティブ処理部115の提示制御処理は、第1の実施形態において図15を用いて説明した提示制御処理と同様の工程(ステップS1501〜S1504)を有する。
このため、ここでは、リアクティブ処理部115の提示制御処理のうち、ステップS1501〜S1504以外の工程について説明する。図46は、リアクティブ処理部の提示制御処理の詳細を示す第2のフローチャートである。
図46に示すように、第4の実施形態におけるリアクティブ処理部115の提示制御処理には、ステップS1501〜S1504以外の工程として、ステップS4601からS4603が含まれる。
このうち、ステップS4601では、実行スタック登録部4201が、実行スタック登録処理を実行し、ステップS4602では、合成部4202が合成処理を実行し、ステップS4603では、制御部4203が実行スタックに基づく提示制御処理を実行する。以下、ステップS4601〜S4603の詳細について説明する。
(1)実行スタック登録処理(ステップS4601)の詳細
図47は、実行スタック登録処理の詳細を示すフローチャートである。ステップS4701において、実行スタック登録部4201は、ユーザ140が社会的振る舞いを行ったか否かを判定する。
ステップS4701において、ユーザ140が社会的振る舞いを行ったと判定した場合にはステップS4702に進む。ステップS4702において、実行スタック登録部4201は、評価情報DB119の“対話戦略決定記録テーブル”1900を参照し、ユーザ150のユーザ140に対する現状の対話戦略を識別する。ここでは、実行スタック登録部4201は、ユーザ150のユーザ140に対する現状の対話戦略が、“Totally_positive戦略”であると識別するものとする。
続いて、実行スタック登録部4201は、“対話戦略ごとのリアクティブな社会的振る舞い定義データテーブル”4300を参照し、識別した現状の対話戦略について、リアクティブな社会的振る舞いが許可されているかを判定する。“対話戦略ごとのリアクティブな社会的振る舞い定義データテーブル”4300によれば、“Totally_positive戦略”の場合、リアクティブな社会的振る舞いが許可されている。
このため、実行スタック登録部4201は、リアクティブな社会的振る舞いが許可されていると判定する。
続いて、実行スタック登録部4201は、実行するリアクティブな社会的振る舞いを決定し、実行スタックに登録する。“対話戦略ごとのリアクティブな社会的振る舞い定義データテーブル”4300によれば、“Totally_positive戦略”の場合、推奨される社会的振る舞い群として、“Approaching_seqStandard”が規定されている。このため、実行スタック登録部4201は当該社会的振る舞い群を実行スタックに登録する。
なお、“社会的振る舞い群の定義データテーブル”4400によれば、“Approaching_seqStandard”には3種類の社会的振る舞い群が含まれている。実行スタック登録部4201は、3種類のうちのいずれかの社会的振る舞い群を実行スタックに登録する。いずれの社会的振る舞い群を登録するかは、例えば、ランダムに選択してもよいし、過去に実行している回数の少ないものを選択してもよい。つまり、実行スタック登録部4201が実行スタックに登録する社会的振る舞い群を選択する際の選択基準は任意である。
ここでは、実行スタック登録部4201は、“Approaching_seqStandard”に含まれる1番目の社会的振る舞い群を登録したとする。具体的には、“Gesture_Positivemeaninggestureto,type=nod”、“Avoiding_seqKeepaway”を実行スタックに登録したとする。
なお、“Avoiding_seqKeepaway”は、社会的振る舞い群であるため、実行スタック登録部4201は、“Avoiding_seqKeepaway”に含まれる複数の社会的振る舞いも合わせて実行スタックに登録する。
続いて、実行スタック登録部4201は、実行スタックに登録した社会的振る舞い群を、評価情報DB119の“実行スタック中の社会的振る舞い記録テーブル”に記録する。図48は、評価情報DBに記録された、実行スタック中の社会的振る舞い記録テーブルの一例を示す第1の図である。
図48に示すように、“実行スタック中の社会的振る舞い記録テーブル1”4800のデータ行の1行目と2行目には、“Approaching_seqStandard”を構成する要素が記録される。具体的には、図44で1つのシーケンスとして定義されている、すべての社会的振る舞い(または社会的振る舞い群)が記録される。なお、データ行の2行目に記録された要素は、社会的振る舞い群であり、実際に実行する社会的振る舞いを実行スタックに登録する。このため、データ行の3行目には、社会的振る舞い群(“Avoiding_seqKeepaway”)に含まれる複数の社会的振る舞いが記録される。具体的には、図44で定義されているシーケンスを参照して、“Orientation_Face_Indirectto”、“Orientation_Upperbody_Indirectto”が記録される。
(2)合成処理(ステップS4602)の詳細
図49は、合成処理の詳細を示すフローチャートである。ステップS4901において、合成部4202は、ユーザ150が社会的振る舞いを行ったか否かを判定する。
合成部4202は、アバタが実行している振る舞いに、当該アバタに対応するユーザが実行している社会的振る舞いの合成を行うか否かを判定し、合成を行うと判定した場合に、当該アバタに対応するユーザが実行している社会的振る舞いの合成を行う。
ステップS4901において、ユーザ150が過去に社会的振る舞いを行ったと判定した場合にはステップS4902に進む。
ステップS4902において、合成部4202は、“実行スタック中の社会的振る舞い記録テーブル1”4800を参照する。そして、合成部4202は、判定した社会的振る舞いが、実行スタックに既に登録されているか(あるいは既に実行済みであるか)否かを判定する。合成部4202は、既に登録されているか(あるいは既に実行済みであるか)否かの判定結果に応じた処理を行う。ここでは、合成部4202が、
・既に実行済みであると判定した場合の処理の具体例(具体例1)、
・既に登録されているが実行前であると判定した場合の処理の具体例(具体例2)、
・まだ、登録されていないと判定した場合の処理の具体例(具体例3−1〜具体例4−3)、について説明する。
(a)具体例1
例えば、ユーザ150が社会的振る舞いとして、“Gesture_Positivemeaninggestureto,type=nod”を行ったとする。そして、“実行スタック中の社会的振る舞い記録テーブル1”4800の実行プランID=“106”の行までを実行した状態であったとする。この場合、当該社会的振る舞い(“Gesture_Positivemeaninggestureto,type=nod”)は、既に実行スタックに登録されており、実行済みである。
このため、合成部4202では、当該社会的振る舞い(“Gesture_Positivemeaninggestureto,type=nod”)を実行スタックに登録しない(既に実行スタックに登録されている社会的振る舞いとの合成は行わない)。
ただし、合成部4202では、“実行スタック中の社会的振る舞い記録テーブル1”4800の“schedule強度”を変更する。なお、“schedule強度”とは、対応する社会的振る舞いを実行すべき強度を意味し、初期値として“1”が記録されている。合成部4202では、社会的振る舞い=“Gesture_Positivemeaninggestureto,type=nod”が記載された実行プランIDの“schedule強度”を“2”に変更する。
図50は、評価情報DBに記録された、実行スタック中の社会的振る舞い記録テーブルの一例を示す第2の図である。このうち、図50(a)の“実行スタック中の社会的振る舞い記録テーブル2−1”5001は、実行プランID(=“106”)の“schedule強度”が“2”に変更された様子を示している。
(b)具体例2
例えば、ユーザ150が社会的振る舞いとして、“Orientation_Face_Indirectto”を行ったとする。そして、“実行スタック中の社会的振る舞い記録テーブル1”4800の実行プランID=“108)の行までを実行した状態であったとする。この場合、当該社会的振る舞い(“Orientation_Face_Indirectto”)は、既に実行スタックに登録されている。このため、合成部4202では、当該社会的振る舞い(“Orientation_Face_Indirectto”)を実行スタックに登録しない(既に実行スタックに登録されている社会的振る舞いとの合成は行わない)。
ただし、合成部4202では、“実行スタック中の社会的振る舞い記録テーブル1”4800の“schedule強度”を変更する。具体的には、合成部4202では、社会的振る舞い=“Orientation_Face_Indirectto”が記載された実行プランIDの“schedule強度”を“2”に変更する。
図50(b)の“実行スタック中の社会的振る舞い記録テーブル2−2”5002は、実行プランID(=“108”)の“schedule強度”が“2”に変更された様子を示している。
(c)具体例3−1
例えば、ユーザ150が社会的振る舞いとして、“Attention_joint”を行ったとする。そして、“実行スタック中の社会的振る舞い記録テーブル1”4800の実行プランID=“108”の行までを実行した状態であったとする。この場合、当該社会的振る舞い(“Attention_joint”)は、まだ、実行スタックに登録されていない。このため、合成部4202では、当該社会的振る舞い(“Attention_joint”)を実行スタックに登録する。
なお、実行スタックには、他の社会的振る舞い(または社会的振る舞い群)として、実行プランID=“106”〜“108”が登録されている。このため、合成部4202では、既に登録されている他の社会的振る舞い(または社会的振る舞い群)の後に、当該社会的振る舞い(“Attention_joint”)を登録する。
また、合成部4202は、当該社会的振る舞いを実行スタックに登録したことを、“実行スタック中の社会的振る舞い記録テーブル”に記録する。図51は、評価情報DBに記録された、実行スタック中の社会的振る舞い記録テーブルの一例を示す第3の図である。
図51に示すように、“実行スタック中の社会的振る舞い記録テーブル2−3”5100の実行プランID=“109”には、社会的振る舞いとして、
・“Attention_joint,intention=5,attributescore=5,duration9”
が記録されている。なお、新たに社会的振る舞いが記録された場合、対応する“schedule強度”には、初期値(“1”)が記録される。
(d)具体例3−2
例えば、ユーザ150が社会的振る舞いとして、“Attention_joint”を行ったとする。具体例3−1で説明したとおり、“実行スタック中の社会的振る舞い記録テーブル1”4800によれば、当該社会的振る舞い(“Attention_joint”)は、まだ、実行スタックに登録されていない。このため、合成部4202では、当該社会的振る舞い(“Attention_joint”)を実行スタックに登録する。
このとき、合成部4202は、“社会的振る舞い値算出記録テーブル”1800を参照し、当該社会的振る舞いを実行した際のdurationの長さ(記録開始時刻から記録終了時刻までの時間)や強度等の社会的振る舞いの属性を示す値を算出する。
続いて、合成部4202は、算出したdurationの長さ及び当該社会的振る舞いの接近・回避傾向に基づいて、“社会的振る舞い及び社会的振る舞い群の接近及び回避傾向評価値定義データテーブル”4500を参照し、“接近・回避傾向評価値”を出力する。
ユーザ150が行った社会的振る舞い(“Attention_joint”)は、接近傾向の社会的振る舞いであり、3秒以上のdurationであるため、合成部4202は、接近傾向評価値=“4”を得る。
合成部4202は、ユーザ150が行った社会的振る舞い(“Attention_joint”)を実行スタックに登録するにあたり、実行スタックへの初期の登録状態から、大きく接近・回避傾向を変えてしまうことを避ける。このため、合成部4202は、当該社会的振る舞いと同程度の逆傾向の社会的振る舞いも合わせて実行スタックに登録する。社会的振る舞い=“Attention_joint”の場合、接近傾向評価値=“4”であることから、合成部4202では、回避傾向評価値=“4”の社会的振る舞いを合わせて実行スタックに登録する。
具体的には、合成部4202は、逆傾向の社会的振る舞い(“Lean_Upperbody_Backward”,duration=3)を実行スタックに登録する。同程度の逆傾向の社会的振る舞いは、ここでは、同じ接近・回避傾向評価値をもつ、社会的振る舞いもしくは社会的振る舞い群から選択する。図45の接近・回避傾向評価値が“4”であるものの中から、ここでは、Avoiding_*if(duration>=3)の条件に合致する社会的振る舞いを探索した。このように実行スタックへ登録する、条件に合致する逆傾向の社会的振る舞いもしくは社会的振る舞い群の選択は、過去の社会的振る舞い値算出記録テーブルを参照して決定するものでもよいし、デフォルト値が決まっているものでもよい。
また、合成部4202は、ユーザ150が行った社会的振る舞いと、当該社会的振る舞いと同程度の逆傾向の社会的振る舞いとを実行スタックに登録したことを、“実行スタック中の社会的振る舞い記録テーブル”に記録する。図52は、評価情報DBに記録された、実行スタック中の社会的振る舞い記録テーブルの一例を示す第4の図である。
図52に示すように、“実行スタック中の社会的振る舞い記録テーブル2−4”5200には、実行プランID=“109”として、ユーザ150が行った社会的振る舞い(“Attention_joint”)が記録されている。
更に、実行プランID=“109”として、逆傾向の社会的振る舞い(“Lean_Upperbody_Backward,duration=3”)が記録されている。なお、新たに社会的振る舞いが記録された場合、対応する“schedule強度”には、初期値(“1”)が記録される。
(e)具体例4−1
例えば、ユーザ150が社会的振る舞いとして、“Attention_joint”を行ったとする。“実行スタック中の社会的振る舞い記録テーブル1”4800の実行プランID=“106”の行までを実行した状態であるとともに、当該社会的振る舞いは、まだ、実行スタックに登録されていない。このため、合成部4202では、当該社会的振る舞い(“Attention_joint”)を実行スタックに登録する。このとき、合成部4202は、既に実行スタックに登録されている社会的振る舞い(または社会的振る舞い群)の中から実行前の社会的振る舞い(または社会的振る舞い群)を削除したうえで登録する。
具体的には、合成部4202は、“実行スタック中の社会的振る舞い記録テーブル1”4800を参照し、“社会的振る舞い・社会的振る舞い群の実行スタック”に記録されている未実行の社会的振る舞い及び社会的振る舞い群を識別する。そして、合成部4202は、識別した未実行の社会的振る舞い及び社会的振る舞い群を、実行スタックから削除する。具体的には、実行プランID=“107”、“108”に対応する社会的振る舞い(または社会的振る舞い群)を実行スタックから削除する。
続いて、合成部4202は、“Attention_joint,intention=5,attributescore=5,duration9”を実行スタックに登録する。
また、合成部4202は、既に実行スタックに登録されている社会的振る舞いを削除したこと、及び、新たにユーザ150が行った社会的振る舞いを実行スタックに登録したことを、“実行スタック中の社会的振る舞い記録テーブル”に記録する。
図53は、評価情報DBに記録された、実行スタック中の社会的振る舞い記録テーブルの一例を示す第5の図である。
図53に示すように、“実行スタック中の社会的振る舞い記録テーブル2−5”5300においては、実行済みの実行プランID=“106”に続く実行プラン=“107”、“108”が削除されている。そして、新たに、“実行プランID=“107”として、ユーザ150が行った社会的振る舞い(Attention_joint,intention=5,attributescore=5,duration9)が記録されている。
(f)具体例4−2
上記具体例4−1では、既に実行スタックに登録されている未実行の社会的振る舞い(または社会的振る舞い群)を削除したうえで、新たに、ユーザ150が行った社会的振る舞いを実行スタックに登録した。これに対して、具体例4−2では、社会的振る舞い(または社会的振る舞い群)を削除したことの影響を最小化して、新たに当該社会的振る舞いを登録する第1の例について説明する。
“実行スタック中の社会的振る舞い記録テーブル1”4800に示すように、実行スタックには、実行プランID=“107”、“108”に示す未実行の社会的振る舞い(または社会的振る舞い群)が登録されている。
合成部4202は、実行プランID=“107”、“108”に示す未実行の社会的振る舞い(または社会的振る舞い群)を削除する。続いて、合成部4202は、“Attention_joint,intention=5,attributescore=5,duration9”を実行スタックに登録する。
更に、合成部4202は、既に実行スタックに登録されている社会的振る舞いを削除したこと、及び、新たにユーザ150が行った社会的振る舞いを実行スタックに登録したことを、“実行スタック中の社会的振る舞い記録テーブル”に記録する。ここまでは、上記具体例4−1と同じであり、この時点では、“実行スタック中の社会的振る舞い記録テーブル”は、図53に示す“実行スタック中の社会的振る舞い記録テーブル2−5”5300と同じである。
ここで、合成部4202は、社会的振る舞い(または社会的振る舞い群)を削除したことの影響を最小化するために、社会的振る舞い(または社会的振る舞い群)を追加登録する。
具体的には、合成部4202は、まず、この時点での“実行中のリアクティブな社会的振る舞い群”を参照する(ここでは、“実行中のリアクティブな社会的振る舞い群”が存在するケースを説明する)。なお、この時点では、“実行中のリアクティブな社会的振る舞い群”には、“Approaching_seqStandard”が記録されている。
続いて、合成部4202は、“実行中のリアクティブな社会的振る舞い群”に記録されている“Approaching_seqStandard”に含まれる構成要素を確認する。また、合成部4202は、確認した構成要素と、この時点で“社会的振る舞い・社会的振る舞い群の実行スタック”に記録されている、社会的振る舞い(または社会的振る舞い群)とを比較する。
比較結果に基づいて、合成部4202は、“Approaching_seqStandard”の構成要素が、“社会的振る舞い・社会的振る舞い群の実行スタック”に記録されている、社会的振る舞い(または社会的振る舞い群)を含むかを判定する。
この時点では、“社会的振る舞い・社会的振る舞い群の実行スタック”には、社会的振る舞いとして
・“Gesture_Positivemeaninggestureto,type=nod”
・“Attention_joint,intention=5,attributescore=5,duration9”、
が記録されている。そして、この2つの社会的振る舞いのシーケンスは、“Approaching_seqStandard”には含まれない。
このため、合成部4202は、“社会的振る舞い・社会的振る舞い群の実行スタック”に記録されている、すべての社会的振る舞いもしくは社会的振る舞い群が、“Approaching_seqStandard”の構成要素として含まれていないと判定する。この場合、合成部4202は、“対話戦略ごとのリアクティブな社会的振る舞い定義データテーブル”4300を参照する。
そして、合成部4202は、現在の対話戦略に対応付けて“推奨される社会的振る舞い及び社会的振る舞い群”として登録された社会的振る舞い(または社会的振る舞い群)を対象に、上記比較と同様の比較を行う。ここで、“社会的振る舞い・社会的振る舞い群の実行スタック”に記録されている、全ての社会的振る舞いもしくは社会的振る舞い群が、“推奨される社会的振る舞い及び社会的振る舞い群”の構成要素として含まれているとする。この場合、合成部4202は、“推奨される社会的振る舞い及び社会的振る舞い群”の構成要素のうち、実行スタックに含まれていない社会的振る舞い及び社会的振る舞い群を実行スタックに追加登録する。
一方、合成部4202が、“Approaching_seqStandard”に含まれる構成要素が、“社会的振る舞い・社会的振る舞い群の実行スタック”に記録されている、社会的振る舞い(または社会的振る舞い群)を含んでいると判定したとする。
この場合、合成部4202は、“Approaching_seqStandard”に含まれる構成要素であって、既に含んでいると判定した構成要素以外の構成要素を、実行スタックに登録する。具体的には、
・社会的振る舞い群(“Avoiding_seqKeepaway”)、
・その構成要素(“Orientation_Face_Indirectto”、“Orientation_Upperbody_Indirectto”)、
を追加登録する。
続いて、合成部4202は、社会的振る舞いの削除、ユーザ150が行った社会的振る舞いの登録、社会的振る舞いの追加登録を、“実行スタック中の社会的振る舞い記録テーブル”に記録する。
図54は、評価情報DBに記録された、実行スタック中の社会的振る舞い記録テーブルの一例を示す第6の図である。
図54に示すように、“実行スタック中の社会的振る舞い記録テーブル2−6”5400には、実行済みの実行プランID=“106”に続く実行プラン=“107”、“108”が削除されている。そして、新たに、実行プランID=“107”として、ユーザ150が行った社会的振る舞い(Attention_joint,intention=5,attributescore=5,duration9)が記録されている。
更に、実行プランID=“108”、“109”には、追加登録された社会的振る舞いとして、
・“Avoiding_seqKeepaway”、
・“Orientation_Face_Indirectto”、
・“Orientation_Upperbody_Indirectto”)、
が記録されている。
(g)具体例4−3
上記具体例4−1では、既に実行スタックに登録されている未実行の社会的振る舞い(または社会的振る舞い群)を削除したうえで、新たに、ユーザ150が行った社会的振る舞いを実行スタックに登録した。一方、具体例4−2では、実行中のリアクティブな社会的振る舞い群の構成要素、もしくは、推奨される社会的振る舞い及び社会的振る舞い群の構成要素に、以下のシーケンスが合致する場合について説明した。
・“Gesture_Positivemeaninggestureto, type=nod”
・“Attention_joint, intention=5, attributescore=5, duration9”
なお、上記シーケンスは、“社会的振る舞い・社会的振る舞い群の実行スタック”に登録されているシーケンスである。
これに対して、具体例4−3では、いずれにも合致しないケースについて説明する。具体的には、当該“社会的振る舞い・社会的振る舞い群の実行スタック”に登録されている社会的振る舞いと同程度の評価値を有する逆方向の社会的振る舞いを対にして実行スタックへ登録するケースについて説明する。
“実行スタック中の社会的振る舞い記録テーブル1”4800の実行プランID=“106”の行までを実行した状態で、実行スタックには、実行プランID=“107”、“108”に示す未実行の社会的振る舞い(または社会的振る舞い群)が登録されている。
合成部4202は、実行プランID=“107”、“108”に示す未実行の社会的振る舞い(または社会的振る舞い群)を削除する。続いて、合成部4202は、“Attention_joint,intention=5,attributescore=5,duration9”を実行スタックに登録する。
更に、合成部4202は、既に実行スタックに登録されている社会的振る舞いを削除したこと、及び、新たにユーザ150が行った社会的振る舞いを実行スタックに登録したことを、“実行スタック中の社会的振る舞い記録テーブル”に記録する。ここまでは、上記具体例4−1と同じであり、この時点では、“実行スタック中の社会的振る舞い記録テーブル”は、図53に示す“実行スタック中の社会的振る舞い記録テーブル2−5”5300と同じである。
ここで、合成部4202は、社会的振る舞い(または社会的振る舞い群)を削除したことの影響を最小化するために、逆方向の社会的振る舞い(または社会的振る舞い群)を対にして追加登録する。
具体的には、合成部4202は、まず、この時点での“社会的振る舞い・社会的振る舞い群の実行スタック”を参照する。なお、この時点では、“社会的振る舞い・社会的振る舞い群の実行スタック”には、社会的振る舞いとして、
・“Gesture_Positivemeaninggestureto,type=nod”、
・“Attention_joint,intention=5,attributescore=5,duration9”、
が記録されている。
続いて、合成部4202は、“社会的振る舞い及び社会的振る舞い群の接近及び回避傾向評価値定義データテーブル”4500を参照する。そして、合成部4202は、この時点で“社会的振る舞い・社会的振る舞い群の実行スタック”に記録されている社会的振る舞い(または社会的振る舞い群)と同程度の評価値を有し、逆方向の社会的振る舞い(または社会的振る舞い群)を抽出する。
具体的には、合成部4202は、社会的振る舞い=“Gesture_Positivemeaninggestureto,type=nod”と同程度の評価値を有し、逆方向の社会的振る舞いを抽出する。これにより、合成部4202は、“Lean_Upperbody_Backward,intention=2”を抽出する。
また、合成部4202は、社会的振る舞い=“Attention_joint,intention=5,attributescore=5,duration9” と同程度の評価値を有し、逆方向の社会的振る舞いを抽出する。これにより、合成部4202は、“Avoiding_seqKeepaway”を抽出する。
続いて、合成部4202は、社会的振る舞いの削除、ユーザ150が行った社会的振る舞いの登録、社会的振る舞いの追加登録を、“実行スタック中の社会的振る舞い記録テーブル”に記録する。
図55は、評価情報DBに記録された、実行スタック中の社会的振る舞い記録テーブルの一例を示す第7の図である。
図55に示すように、“実行スタック中の社会的振る舞い記録テーブル2−7”5500には、実行済みの実行プランID=“106”に続く実行プラン=“107”、“108”が削除されている。そして、新たに、実行プランID=“107”として、ユーザ150が行った社会的振る舞い(Attention_joint,intention=5,attributescore=5,duration9)が記録されている。
また、実行プランID=“108”には、追加登録された社会的振る舞い(“Lean_Upperbody_Backward,intention=2”)が記録されている。更に、実行プランID=“109”、“110”には、追加登録された社会的振る舞いとして、
・“Avoiding_seqKeepaway”、
・“Orientation_Face_Indirectto”、
“Orientation_Upperbody_Indirectto”、
が記録されている。
(3)実行スタックに基づく提示制御処理(ステップS4603)の詳細
図56は、実行スタックに基づく提示制御処理の詳細を示すフローチャートである。ステップS5601において、制御部4203は、実行スタックに登録されている社会的振る舞いを、実行プランIDの順に実行する。また、制御部4203は、実行スタックに登録されている社会的振る舞いに基づくアバタの画像を順次生成し、情報表示処理部112に送信する。更に、制御部4203は、情報表示処理部112に対して、仮想空間の画像に組み込むアバタの画像を変更するよう指示する。
これにより、情報表示処理部112では、ユーザ150の実際の振る舞いをセンシングすることで得られたセンサデータに基づいて生成されたアバタの画像を組み込むことができる。
ステップS5602において、制御部4203は、ユーザ140に提示したリアクティブな社会的振る舞いを、評価情報DB119の社会的振る舞い制御ログテーブルに記録する。
図57は、評価情報DBに記録された、社会的振る舞い制御ログテーブルの一例を示す図である。図57に示すように、“社会的振る舞い制御ログテーブル”5700には、情報の項目として、“振る舞いアバタID”と“被振る舞いアバタID”とが含まれる。これらの情報の項目には、それぞれ、リアクティブな社会的振る舞いを行ったユーザのアバタIDと、リアクティブな社会的振る舞いを受けたユーザのアバタIDとが記録される。
また、“社会的振る舞い制御ログテーブル”5700には、情報の項目として、“実行スタックから実行された社会的振る舞いの実行プランID”が含まれる。当該情報の項目には、実行スタックに登録され、リアクティブな社会的振る舞いとして実行された社会的振る舞いの実行プランIDが記録される。
以上の説明から明らかなように、第4の実施形態における画像生成装置110は、対話戦略ごとのリアクティブな社会的振る舞いを、ユーザが実際に行った社会的振る舞いに基づいて変更する。これにより、第4の実施形態における画像生成装置110によれば、ユーザの実際の社会的振る舞いに則したリアクティブな社会的振る舞いを、対話相手に提示することが可能となる。
[その他の実施形態]
上記第1乃至第4の実施形態の画像生成システム100では、画像生成装置110が基本機能部を有するものとして説明した。つまり、画像生成装置110が、クライアント側システム120、130より受信したセンサデータに基づいて、ユーザ140、150のアバタの画像を生成し、仮想空間用情報をクライアント側システム120、130にするものとして説明した。
しかしながら、画像生成システムのシステム構成はこれに限定されず、クライアント側システム120、130がそれぞれ基本機能部を有し、仮想空間用情報を生成するようにしてもよい。この場合、クライアント側システム120は、ユーザ140のアバタの画像のコピーを、クライアント側システム130に送信し、クライアント側システム130は、生成した仮想空間用情報に、ユーザ140のアバタの画像のコピーを組み込む。
同様に、クライアント側システム130は、ユーザ150のアバタの画像のコピーを、クライアント側システム120に送信し、クライアント側システム120は、生成した仮想空間用情報に、ユーザ150のアバタの画像のコピーを組み込む。
かかるシステム構成のもとでは、リアクティブ処理部115も、クライアント側システム120、130それぞれに配されることになる。また、クライアント側システム120に配されたリアクティブ処理部115により生成された、ユーザ140によるユーザ150に対する対話戦略決定記録テーブルは、事前にクライアント側システム130に送信される。これにより、クライアント側システム130では、ユーザ140によるリアクティブな社会的振る舞いを、ユーザ150に提示することができる。
同様に、クライアント側システム130に配されたリアクティブ処理部115により生成された、ユーザ150によるユーザ140に対する対話戦略決定記録テーブルは、クライアント側システム120に送信される。これにより、クライアント側システム120では、ユーザ150によるリアクティブな社会的振る舞いを、画像生成装置110に問い合わせることなくユーザ140に提示することができる。
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
アバタを介してコミュニケーションを行うユーザのうち、第1のユーザが第2のユーザに対して社会的振る舞いを行った場合に、該第2のユーザが該第1のユーザに対して行う社会的振る舞いの、所定の時間区間における傾向を特定し、
前記第1のユーザが前記第2のユーザに対して社会的振る舞いを行った場合、特定した前記傾向に基づいて選択した社会的振る舞いを、前記第2のユーザのアバタを介して前記第1のユーザに対して提示するよう制御する、
処理をコンピュータに実行させる画像生成プログラム。
(付記2)
前記第2のユーザが前記第1のユーザに対して行う社会的振る舞いの、前記所定の時間区間における傾向が、接近行動傾向、回避行動傾向、中間行動傾向のいずれに該当するかを、前記所定の時間区間において、前記第2のユーザが前記第1のユーザに対して行う、接近行動傾向の社会的振る舞いの回数または時間、及び、回避行動傾向の社会的振る舞いの回数または時間に基づいて特定することを特徴とする付記1に記載の画像生成プログラム。
(付記3)
前記第2のユーザが前記第1のユーザに対して協調的な行動をとることが可能か否かを判定した判定結果と、特定した前記傾向と、に基づいて、前記第1のユーザが前記第2のユーザに対して行った社会的振る舞いを、前記第2のユーザが認識する可能性を判定し、
判定した可能性に基づいて選択した社会的振る舞いを、前記第2のユーザのアバタを介して前記第1のユーザに対して提示するよう制御することを特徴とする付記2に記載の画像生成プログラム。
(付記4)
前記第2のユーザが前記第1のユーザに対して開示した情報量である情報開示量に基づいて、前記第2のユーザが前記第1のユーザに対して見なしている関係性レベルを判定し、
前記第2のユーザが前記第1のユーザから開示された情報を示す被情報開示量に基づいて、前記第1のユーザが前記第2のユーザに対して見なしていると推定した被関係性レベルを判定し、
前記第1のユーザが前記第2のユーザに対して行った社会的振る舞いを、前記第2のユーザが認識する可能性があると判定した場合に、前記関係性レベルと前記被関係性レベルとに基づいて選択した社会的振る舞いを、前記第2のユーザのアバタを介して前記第1のユーザに対して提示するよう制御することを特徴とする付記3に記載の画像生成プログラム。
(付記5)
前記第2のユーザが前記第1のユーザに対して過去に行った社会的振る舞いの中から選択した社会的振る舞いを、前記第2のユーザのアバタを介して前記第1のユーザに対して提示するよう制御することを特徴とする付記4に記載の画像生成プログラム。
(付記6)
前記第2のユーザが前記第1のユーザに対して過去に行った社会的振る舞いの中から、特定した前記傾向に基づいて選択した社会的振る舞い以外の社会的振る舞いを選択し、特定した前記傾向に基づいて選択した社会的振る舞いに合成し、前記第2のユーザのアバタを介して前記第1のユーザに対して提示するよう制御することを特徴とする付記5に記載の画像生成プログラム。
(付記7)
アバタを介してコミュニケーションを行うユーザのうち、第1のユーザが第2のユーザに対して社会的振る舞いを行った場合に、該第2のユーザが該第1のユーザに対して行う社会的振る舞いの、所定の時間区間における傾向を特定する特定部と、
前記第1のユーザが前記第2のユーザに対して社会的振る舞いを行った場合、特定した前記傾向に基づいて選択した社会的振る舞いを、前記第2のユーザのアバタを介して前記第1のユーザに対して提示するよう制御する制御部と
を有することを特徴とする画像生成装置。
(付記8)
アバタを介してコミュニケーションを行うユーザのうち、第1のユーザが第2のユーザに対して社会的振る舞いを行った場合に、該第2のユーザが該第1のユーザに対して行う社会的振る舞いの、所定の時間区間における傾向を特定し、
前記第1のユーザが前記第2のユーザに対して社会的振る舞いを行った場合、特定した前記傾向に基づいて選択した社会的振る舞いを、前記第2のユーザのアバタを介して前記第1のユーザに対して提示するよう制御する、
処理をコンピュータが実行する画像生成方法。
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。