(57)【特許請求の範囲】
【請求項１】
接続可能なロボットもしくは映像装置に表示されるロボット用ソフトキャラクタに、動作コマンドと発話コマンドが並べられたシナリオ情報に従って、対応する動作信号の出力、あるいは対応する音声信号の出力を行う動作制御装置であって、
ロボットの接続有無を判定する手段と、
ロボットが接続されていない場合に、動作コマンドを処理しロボット用ソフトキャラクタに対して対応する動作信号を出力する手段と、
ロボットが接続されている場合に、動作コマンドを処理しロボットに対して対応する動作信号を出力する手段と、
ロボットが接続されていても接続されていなくても、パソコンで発話コマンドを処理しスピーカに対して対応する音声信号の出力を行う手段と
を具備することを特徴とする動作制御装置。
【請求項２】
接続可能なロボットもしくは映像装置に表示されるロボット用ソフトキャラクタに、動作コマンドと発話コマンドが並べられたシナリオ情報に従って、対応する動作信号の出力、あるいは対応する音声信号の出力を行う動作制御方法であって、
ロボットの接続有無を判定するステップと、
ロボットが接続されていない場合に、動作コマンドを処理しロボット用ソフトキャラクタに対して対応する動作信号を出力するステップと、
ロボットが接続されている場合に、動作コマンドを処理しロボットに対して対応する動作信号を出力するステップと、
ロボットが接続されていても接続されていなくても、パソコンで発話コマンドを処理しスピーカに対して対応する音声信号の出力を行うステップと
を有することを特徴とする動作制御方法。
【請求項３】
接続可能なロボットもしくは映像装置に表示されるロボット用ソフトキャラクタに、動作コマンドと発話コマンドが並べられたシナリオ情報に従って、対応する動作信号の出力、あるいは対応する音声信号の出力を行う動作制御プログラムであって、
ロボットの接続有無を判定する手順、
ロボットが接続されていない場合に、動作コマンドを処理しロボット用ソフトキャラクタに対して対応する動作信号を出力する手順、
ロボットが接続されている場合に、動作コマンドを処理しロボットに対して対応する動作信号を出力する手順、
ロボットが接続されていても接続されていなくても、パソコンで発話コマンドを処理しスピーカに対して対応する音声信号の出力を行う手順
をコンピュータに実行させるための動作制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータに接続された映像装置に表示されるソフトウェアキャラクタ（以下ソフトキャラクタという）と、コンピュータで制御されるロボット（以下リアルキャラクタという）を用いたユーザフレンドリな動作制御装置、方法及びプログラムに関するものである。
【０００２】
【従来の技術】
パソコン画面上でシナリオにあわせた発話やジェスチャをするソフトキャラクタが盛んに提案されている（ＭｉｃｒｏｓｏｆｔＡｇｅｎｔ，  Ａｃｔｉｖｅマスコットなど）。ユーザのマウス操作等に反応するシナリオを用意することにより、ＡＰの操作方法やトラブル対処方法をユーザに親しみやすく提示することが可能である。また、パソコンを操作していないときでも、自律的に発話やジェスチャをするようなシナリオを用意することによりパソコン上にペットを飼っているような娯楽向けＡＰを提供することが可能である。
【０００３】
一方、例えば富士通製たっちおじさんなどパソコンからの動作信号に合わせて動作するロボット玩具も従来から存在する（リアルキャラクタ）。メールの到着を知らせるために頭や腕を動かしたり、ロボットに搭載のセンサからの入力にあわせてＡＰを起動したりすることが可能でユーザフレンドリな入出力インタフェースである。
【０００４】
さらに、ソフトキャラクタとリアルキャラクタを連動させることにより各々の一長一短を補間したユーザフレンドリなロボットシステムも提案されている（特願２０００−３３０８１８）。提案システムではソフトキャラクタとリアルキャラクタの物理的な違いを意識する事なくそれぞれの動作シナリオを記述できるというメリットがある。
【０００５】
【発明が解決しようとする課題】
ソフトキャラクタは画像上のキャラクタであるため、
・実体がなく人間に働きかけるインパクトが薄い
・パソコンを起動しないと表出しない
・画面上に表示されるために操作中のＡＰが隠れてしまう
という問題がある。
【０００６】
一方、リアルキャラクタは、上記ソフトキャラクタの問題点は存在しない。しかしながらソフトキャラクタに比べると大きさや動きの自由度に制限があるため表現力が十分ではないという問題がある。
【０００７】
ソフトキャラクタとリアルキャラクタを連動させるロボットシステムは、ソフトキャラクタ、リアルキャラクタ各々の一長一短を補間したユーザフレンドリなロボットシステムであるが、このシステムで使用するシナリオはソフトキャラクタとリアルキャラクタの組み合わせが既知であることが前提である（例えば、ソフトキャラクタ２体とリアルキャラクタ１体に対応したシナリオなど）。従って、リアルキャラクタを持っていないユーザは、リアルキャラクタが接続されていることが前提のシナリオを実行することができないという問題があった。また、シナリオで使うリアルキャラクタのジェスチャは、予め作成登録してある動作のみであるため、リアルキャラクタの表現力が乏しくなるという問題があった。表現力を上げるために新たに動作を登録する場合は、その都度動作の作りこみが必要となる、という問題があった。
【０００８】
本発明は上記の事情に鑑みてなされたもので、リアルキャラクタの接続有無に関わらずシナリオが再生できるため、シナリオの流通が促進され、且つ有限個の動作データの組み合わせや演算処理が可能なためリアルキャラクタの表現力を向上させることが可能で、ソフトキャラクタとリアルキャラクタの両者が連動して、よりユーザフレンドリに働きかける動作制御装置、方法及びプログラムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するために本発明は、接続可能なロボットもしくは映像装置に表示されるロボット用ソフトキャラクタに、動作コマンドと発話コマンドが並べられたシナリオ情報に従って、対応する動作信号の出力、あるいは対応する音声信号の出力を行う動作制御装置であって、ロボットの接続有無を判定する手段と、ロボットが接続されていない場合に、動作コマンドを処理しロボット用ソフトキャラクタに対して対応する動作信号を出力する手段と、ロボットが接続されている場合に、動作コマンドを処理しロボットに対して対応する動作信号を出力する手段と、ロボットが接続されていても接続されていなくても、パソコンで発話コマンドを処理しスピーカに対して対応する音声信号の出力を行う手段とを具備することを特徴とするものである。
【００１１】
また本発明は、接続可能なロボットもしくは映像装置に表示されるロボット用ソフトキャラクタに、動作コマンドと発話コマンドが並べられたシナリオ情報に従って、対応する動作信号の出力、あるいは対応する音声信号の出力を行う動作制御方法であって、ロボットの接続有無を判定するステップと、ロボットが接続されていない場合に、動作コマンドを処理しロボット用ソフトキャラクタに対して対応する動作信号を出力するステップと、ロボットが接続されている場合に、動作コマンドを処理しロボットに対して対応する動作信号を出力するステップと、ロボットが接続されていても接続されていなくても、パソコンで発話コマンドを処理しスピーカに対して対応する音声信号の出力を行うステップとを有することを特徴とする。
【００１３】
また本発明は、接続可能なロボットもしくは映像装置に表示されるロボット用ソフトキャラクタに、動作コマンドと発話コマンドが並べられたシナリオ情報に従って、対応する動作信号の出力、あるいは対応する音声信号の出力を行う動作制御プログラムであって、ロボットの接続有無を判定する手順、ロボットが接続されていない場合に、動作コマンドを処理しロボット用ソフトキャラクタに対して対応する動作信号を出力する手順、ロボットが接続されている場合に、動作コマンドを処理しロボットに対して対応する動作信号を出力する手順、ロボットが接続されていても接続されていなくても、パソコンで発話コマンドを処理しスピーカに対して対応する音声信号の出力を行う手順をコンピュータに実行させるためのものである。
【００１５】
【発明の実施の形態】
以下図面を参照して本発明の実施形態例を詳細に説明する。
【００１６】
図１は本発明の実施形態例を示すフローチャートである。すなわち、ステップＳ１でソフトキャラクタの初期化（キャラクタのロード、言語，合成エンジンの選択、キャラクタの画面位置設定）を行う。ステップＳ２でロボットの選択を行う。ステップＳ３でロボットの初期化（Ｒｏｂｏｔ．Ｓｈｏｗの実行）を行い、ダミーキャラクタ（ロボット用ソフトキャラクタ）のロード、言語，合成エンジンの選択、ダミーキャラクタのディスプレイ外退避、ダミーキャラクタの登場、制御ドライバの初期化を行う。ステップＳ４でロボット姿勢のリセットを行うため、Ｒｏｂｏｔ．Ｐｌａｙ（Ｒｅｓｅｔ）の実行を行う。ステップＳ５で動作終了イベントが有る場合、ステップＳ６でロボット接続フラグ＝Ｔｒｕｅすなわちロボットが接続されていることを確認し、ステップＳ７でシナリオを読み込む。ステップＳ５で動作終了イベントが無い場合、ステップＳ８でダミーキャラクタのディスプレイ内登場を行い、ステップＳ９でロボット接続フラグ＝Ｆａｌｓｅすなわちロボットが接続されていないことを確認し、ステップＳ７でシナリオを読み込む。ロボットが接続されていない（ロボット接続フラグ＝Ｆａｌｓｅ）と判断した後は、ロボット動作用のコマンドをダミーのソフトキャラクタ用コマンドと解釈し、これをソフトキャラクタコマンド実行部で処理する。なお、シナリオのスクリプト自身は単なるテキストで、ロボット用もソフトキャラクタ用も同じ記述方式をとる。ステップＳ１０でシナリオ実行（Ｒｏｂｏｔ．Ｐｌａｙ、Ｒｏｂｏｔ．Ｓｐｅａｋ、Ｓｏｆｔ．Ｐｌａｙ、Ｓｏｆｔ．Ｓｐｅａｋの実行）を行う。ステップＳ１１で継続シナリオが有る場合はステップＳ７に戻ってシナリオ読み込みを行う。
【００１７】
図２は図１のシナリオ実行の一例を示すフローチャートである。すなわち、ステップＳ２１でシナリオ情報のコマンドを解釈してソフトキャラクタ用コマンドの場合は、ステップＳ２２でソフトキャラクタコマンド実行部へ送信する。ステップＳ２１でシナリオ情報のコマンドを解釈してロボット用コマンドの場合は、ステップＳ２３でリアルキャラクタコマンド実行部へ送信する。ステップＳ２４でコマンドを解釈してＰｌａｙコマンドの場合はステップＳ２５でＰｌａｙコマンドの実行を行い、ロボットにジェスチャーを行わせる。ステップＳ２４でコマンドを解釈してＳｐｅａｋコマンドの場合はステップＳ２６でダミーキャラクタへＳｐｅａｋコマンドの転送（発話コマンド実行部へ送信）を行う。ステップＳ２４でコマンドを解釈してＨｉｄｅコマンドの場合はロボット終了手続（ダミーキャラクタの消去、制御ドライバの停止）を行う。ステップＳ２４でコマンドを解釈してＳｈｏｗコマンドの場合はステップＳ２８でロボットの初期化を行う。ステップＳ２９で終了イベントが有り、かつステップＳ３０で次のコマンドが有るときはステップＳ２１のコマンドの解釈に戻る。
【００１８】
このようにすることにより、映像装置に表示されたソフトキャラクタと、接続可能なロボットもしくは映像装置に表示されるロボット用ソフトキャラクタに、ジェスチャとセリフの組で構成されるアクションコマンドが並べられたシナリオ情報に従って、それぞれ対応するジェスチャを行わせると同時にそれぞれ対応するセリフをスピーカから発音させる動作制御が行なえる。この場合、ロボットの接続有無を判定し、ロボットが接続されていない場合、ロボット用コマンド実行をソフト用コマンド実行に切り替え、シナリオ情報のコマンドを解釈してロボット用ソフトキャラクタにジェスチャを行わせると同時にスピーカから発音させることができる。
【００１９】
図３は図２のＰｌａｙコマンド実行の一例を示すフローチャートを示す。すなわち、ステップＳ３１でロボット接続が無い場合はステップＳ３２でダミーキャラクタへＰｌａｙコマンドの転送（動作コマンド実行部へ送信）を行う。ステップＳ３１でロボット接続が有る（ロボット接続＝Ｔｒｕｅ）の場合、ステップＳ３３で動作解釈演算記号が無いときはステップＳ３４でジェスチャＤＢ（データベース）からの動作データ読み込みを行い、ステップＳ３５で動作データの時間軸展開を行う。ステップＳ３３で動作解釈演算記号が有るときはステップＳ３６でジェスチャＤＢ（データベース）からの動作データ読み込みを行い、ステップＳ３７で動作データの時間軸展開を行う。ステップＳ３８で演算対象動作の読み込み終了によりステップＳ３９で動作データの演算を行う。ステップＳ４０で動作時刻であればステップＳ４１でモータコントローラへの信号送信を行い、ステップＳ４２で動作が終了しなければステップＳ４０の動作時刻の有無に戻る。  図４は図３の動作データの演算の一例を示す説明図である。図４（ａ）はジェスチャＡにおけるモータ１の角度変移を示し、図４（ｂ）はジェスチャＢにおけるモータ１の角度変移を示し、図４（ｃ）はジェスチャ（Ａ＋Ｂ）におけるモータ１の角度変移を示す。
【００２０】
すなわち、ジェスチャＡとジェスチャＢの加算処理について説明すると、モータ番号ｍにおける各ジェスチャの指令角度をそれぞれＡ（ｍ），Ｂ（ｍ）とし、モータ番号ｍのニュートラル角度をＮ（ｍ）とすると、ジェスチャＡ（ｍ）とＢ（ｍ）の加算（Ａ（ｍ）<＋>Ｂ（ｍ）と表記）は、
Ａ（ｍ）<＋>Ｂ（ｍ）＝Ｎ（ｍ）＋（Ａ（ｍ）−Ｎ（ｍ））＋（Ｂ（ｍ）−Ｎ（ｍ））
のようにニュートラルからの差分で演算する（図４参照）、同じく減算、乗算は
Ａ（ｍ）<−>Ｂ（ｍ）＝Ｎ（ｍ）＋（Ａ（ｍ）−Ｎ（ｍ））−（Ｂ（ｍ）−Ｎ（ｍ））
Ｃ（ｍ）<＊>Ａ（ｍ）＝Ｎ（ｍ）＋Ｃ（ｍ）＊（Ａ（ｍ）−Ｎ（ｍ））
とする。また、演算結果がモータ可動最大値を越える場合は最大値を、モータ可動最小値を下回る場合は最小値を演算結果とする。これらの演算を、各モータごとに行なう。
【００２１】
このようにすることにより、シナリオ情報のアクションコマンド記述内容を識別し、ロボットもしくはロボット用ソフトキャラクタの動作を解釈し、ロボットのジェスチャに関する動作データが格納されたジェスチャデータベースから動作データを読み込み、動作データの時間に対応したジェスチャにおけるモータの角度変移である時間軸展開を行い、動作データの値をコマンドに応じて変更することによりデータの組み合わせや演算処理結果としてコマンド記述を可能とすることができる。
【００２２】
次に、本発明の具体的な実施例について説明する。
【００２３】
［実施例１］
図５，６は本発明の具体的な実施例を示す。図７，８，９，１０，１１は、図５，６における構成要素の内部の１例を示す機能ブロック図である。
【００２４】
まず図５で、熊の姿をしたリアルキャラクタがコンピュータ例えばパソコンに接続されている例を示す。図５において、１はパソコン画面のディスプレイ、２はパソコン（ＰＣ）、３はソフトキャラクタ、４はリアルキャラクタ、５はスピーカ、６はリアルキャラクタのスピーカ、７はリアルキャラクタのモータコントローラ、８はディスプレイケーブル、９はオーディオケーブル、１０はリアルキャラクタコントロール信号用ケーブルである。本例では、リアルキャラクタ４は、駆動体１が右手、駆動体２が左手に対応し、それぞれ上下動作が可能な自由度を有するロボットである。また、ソフトキャラクタ３がパソコン画面のディスプレイ１内でソフトウエア的に変化可能な表現映像として存在している。また、パソコン２内のステレオオーディオ出力装置のスピーカ５のＬチャネル（Ｌｃｈ）はソフトキャラクタ専用として独占的に割り当てられ、Ｒチャネル（Ｒｃｈ）は、リアルエージェント内に存在するＲチャネル用スピーカ６に独占的に割り当てられている。
【００２５】
リアルキャラクタ４とソフトキャラクタ３はそれぞれ下記のようなシナリオ情報に基づいて制御される。
【００２６】
シナリオ例１：
ＳｏｆｔＣｈａｒａｃｔｅｒ．ｓｐｅａｋ（“おはよう”）
ＳｏｆｔＣｈａｒａｃｔｅｒ．ｐｌａｙ（“ＲｉｇｈｔＨａｎｄＵｐ”）
ＲｅａｌＣｈａｒａｃｔｅｒ．ｓｐｅａｋ（“おはよう”）
ＲｅａｌＣｈａｒａｃｔｅｒ．Ｐｌａｙ（“ＬｅｆｔＨａｎｄＵｐ”）
この例では、各アクションコマンドは、
動作に対しては
キャラクタオブジェクト名．Ｐｌａｙ（“ジェスチャ名”）
発話に対しては
キャラクタオブジェクト名．ｓｐｅａｋ（“発話内容”）
という形式で記述されている。本例においてキャラクタオブジェクト名は
リアルキャラクタ→ＲｅａｌＣｈａｒａｃｔｅｒ
ソフトキャラクタ→ＳｏｆｔＣｈａｒａｃｔｅｒ
としている。
【００２７】
このシナリオ情報は、パソコン内で実行可能なスクリプトファイルとして存在している。なお、シナリオ例１はリアルキャラクタ発話／動作とソフトキャラクタ発話／動作が交互に記述されているが、リアルキャラクタの発話や動作またはソフトキャラクタの発話や動作が連続していてもかまわない。
【００２８】
シナリオの実行例を以下に示す。
【００２９】
まずＰＣ２側では、図９に示すようにシナリオＤＢ２２に上記シナリオ例１が蓄積されているとする。制御部２１ではシナリオスクリプトを読み込み、ソフトキャラクタへのコマンドかリアルキャラクタへのコマンドかを判別してそれぞれソフトキャラクタコマンド実行部２３、リアルキャラクタコマンド実行部２５へコマンドを送る。ソフトキャラクタコマンド実行部２３は、例えば、ＭＳ−Ａｇｅｎｔと呼ばれるソフトウエアにより実現可能である。この際、ソフトキャラクタ用のセリフは、Ｌチャネルのスピーカに対して、セリフの合成音をオーディオ出力部２７により出力することにより発話される。図９において、２４は音声信号生成部、２６は映像出力部、２８は動作信号送受信部、２９はジェスチャＤＢである。
【００３０】
一方、リアルキャラクタに対するアクションコマンドは図１０に示すようにコマンド制御部３０で発話コマンドか動作コマンドかを識別し、発話コマンドは発話コマンド実行部３２へ、動作コマンドはリアルキャラクタ動作コマンド実行部３４に送られる（コマンド制御部３０の動作は、リアルキャラクタが接続していない例（後述）にて詳細に説明する。ここでは、コマンド制御部３０でリアルキャラクタが接続されていると識別した場合を説明する）。発話コマンドはＲチャネルのスピーカに対して、セリフの合成音をオーディオ出力装置に出力することにより発話される。動作コマンドはリアルキャラクタ動作コマンド実行部３４において図１１に示すように、動作データ読み込み部３５でコマンドで指定されたジェスチャに該当する動作データをジェスチャＤＢ２９から読み込み、各モータへの時系列動作データとして動作信号送受信部２８に送る（各モータへの時系列動作データへの変換に関しては実施例２にて説明する）。図１０において、３３はソフトキャラクタ動作コマンド実行部、図１１において、３６はコマンド受信部、３７はコマンド処理部である。
【００３１】
リアルキャラクタ側では、図７に示すようにＰＣ２からの動作信号がＲＳ２３２Ｃ等の通信手段によりリアルエージェントの通信装置１１に送られ、この通信装置１１からモータコントローラ７へ送られる。このモータコントローラ７内では、図８に示すように動作信号を動作信号解釈処理部１８で解釈し各モータへの目標値（例えば角度）と目標速度をパラメータとしてＰＷＭ波発生部１９に送る。ＰＷＭ波発生部１９からのＰＷＭ信号はサーボモータに送られ、最終的にリアルキャラクタ内の駆動体が動作する。図７において、１２はサーボモータ１、１３はサーボモータ２、１４は駆動体１、１５は駆動体２、１６はオーディオ入力端子、図８において、２０はイベント送信部である。
【００３２】
上記シナリオ例１でさらに具体的に説明する。
【００３３】
アクションコマンドＲｅａｌＣｈａｒａｃｔｅｒ．Ｐｌａｙ（“ＬｅｆｔＨａｎｄＵｐ”）の“ＬｅｆｔＨａｎｄＵｐ”というジェスチャに対しては、例えば「左手を上げる」というジェスチャが定義されているとすると、ジェスチャＤＢ内ではモータ１が最下位角度を保持し、モータ２が最上位角度に移動しその角度を保持するような時系列動作データが保存されている。
【００３４】
以上の構成と処理を行うことにより、シナリオ例１を実行すると、
１．ＳｏｆｔＣｈａｒａｃｔｅｒが「おはよう」と言いながら右手を上げる
２．ＲｅａｌＣｈａｒａｃｔｅｒが「おはよう」と言いながら左手を上げる
というようなソフトキャラクタとリアルキャラクタの一連の対話的な寸劇を実演することが可能となる。
【００３５】
なお本例ではＬとＲチャネルを、それぞれソフトエージェント、リアルエージェントに割り当てたが、逆の場合もあり得ることは言うまでもない。
【００３６】
次に、図６でリアルキャラクタがパソコンに接続されていない例を示す。
【００３７】
重複する点が多いため、既に説明したリアルキャラクタが接続されている場合との差分のみ説明する。
【００３８】
リアルキャラクタが接続されていないＰＣ２上でシナリオ例１が実行されると、図６に示すように、リアルキャラクタの代わりに代理のソフトキャラクタ３８がパソコン画面のディスプレイ１内でソフトウエア的に変化可能なグラフィクスとして登場し、シナリオを実行する。
【００３９】
シナリオを実行する際、ＰＣ２側では図９に示すように、制御部２１でシナリオスクリプトを読み込んだ後、まず初期化処理としてリアルキャラクタの位置姿勢を初期化する動作コマンドをリアルキャラクタコマンド実行部２５に送る。リアルキャラクタコマンド実行部２５の内部において、図１０に示すように、コマンド制御部３０は初期化用の動作コマンドをリアルキャラクタ動作コマンド実行部３４に送信し、リアルキャラクタからの初期化動作終了イベントを待つ。リアルキャラクタ動作コマンド実行部３４では初期化動作コマンドも一つのジェスチャとみなし、初期化用ジェスチャとしてジェスチャＤＢ２９に保存されている初期化用動作データを読み込んで、各モータへの時系例動作データとして動作信号送受信部２８に送る。
【００４０】
リアルキャラクタが接続されている場合は、図８に示すように、リアルキャラクタ内の動作信号解釈処理部１８にてモータ制御用のＰＷＭ波パラメータに変換し、ＰＷＭ波発生部１９を介して初期化位置にモータを制御する。動作信号解釈処理部１８では、同時にＰＷＭ波パラメータの送信終了を持って動作終了イベントをイベント送信部２０を介してＰＣ２に送信する。
【００４１】
例えば初期化用動作データが、０．５秒でモータ１を角度０（例えば右手最下位置）、同じく０．５秒でモータ２にを角度０（例えば左手最下位置）に動作させるデータだとすれば、動作開始後０．５秒にイベント情報がＰＣ２に送られる。
【００４２】
リアルキャラクタが接続されていない場合は、当然イベント情報はＰＣに送られない。
【００４３】
図１０のコマンド制御部３０では、一定時間以内に初期化動作終了イベントが帰ってきた場合、それ以降の動作コマンドはリアルキャラクタ動作コマンド実行部３４に送られる（前述の説明に相当する）。一方、一定時間以内に初期化終了イベントが帰ってこなかった場合、リアルキャラクタが接続されていないと判断して、それ以降の動作コマンドは、ソフトキャラクタ動作コマンド実行部３３に送られる。
【００４４】
以上の構成と処理を行うことにより、リアルキャラクタが接続されていない状態でシナリオ例１を実行すると、
１．ＳｏｆｔＣｈａｒａｃｔｅｒが「おはよう」と音声を発生して右手を上げる映像を表示
２．ＤａｍｍｙＳｏｆｔＣｈａｒａｃｔｅｒが「おはよう」と音声を発生して左手を上げる映像を表示
というようなソフトキャラクタと代理のソフトキャラクタの一連の対話的な寸劇を実演することが可能となる。
【００４５】
［実施例２］
図１１のリアルキャラクタ動作コマンド実行部３４の説明をする。ジェスチャＤＢ２９に保存されている動作データの例を図１２に示す。データ構造は図１２に示す通り、木構造になっているのでデータの形式はＸＭＬテキストでも、構造体に取り込みやすいバイナリの形でも対応可能である。この例は、動作名がＲｉｇｈｔＨａｎｄＷａｖｅで、右手用モータが速度１０で１秒おきに上下を繰り返す（０度〜９０度）動作である。動作データ読み込み部３５ではこのデータを読み込み、ＸＭＬ記述のデータであればそのタグ付テキストを構文解析するパース処理を行い、バイナリ形式であればそのまま構造体（例えばＣ言語であれば構造体変数）に取り込む処理を行なう。コマンド処理部３７では、動作データを時間軸情報に展開し、実行時間に基づいて動作信号送受信部２８に目標値と目標速度を送信する。図１２の例では、動作開始１秒後にモータ１に対して目標値９０、目標速度１０かつモータ２に対して目標角度０、目標速度１０を送信する。同じく開始後２秒後にモータ１に対して目標値０、目標速度１０を送信する。この例では、この後モータ１に対して５秒後まで順次データが送信される。
【００４６】
上記の説明は、アクションコマンド
ＲｅａｌＣｈａｒａｃｔｅｒ．Ｐｌａｙ（“ＲｉｇｈｔＨａｎｄＷａｖｅ”）
の実行に相当する。
【００４７】
一方、アクションコマンドとして、
ＲｅａｌＣｈａｒａｃｔｅｒ．Ｐｌａｙ（“ＲｉｇｈｔＨａｎｄＷａｖｅ＋“ＬｅｆｔＨａｎｄＷａｖｅ”）
と言う形式のものがコマンド制御部３０から送られてきた場合は、ジェスチャＤＢ２９から“ＲｉｇｈｔＨａｎｄＷａｖｅ”用動作データと“ＬｅｆｔＨａｎｄＷａｖｅ”用動作データを読み込みコマンド処理部３７にて時間軸展開する上で加算処理を行なう。
【００４８】
その結果、右手と左手の両方を上下する動作を実現することが可能となる。
【００４９】
同じくコマンド処理部３７にて動作データの時間に対応したジェスチャにおけるモータの角度変移である時間軸展開する段階で複数の動作データを図４に示すような加算処理等の四則演算処理することにより
ＲｅａｌＣｈａｒａｃｔｅｒ．Ｐｌａｙ（２×“ＲｉｇｈｔＨａｎｄＷａｖｅ”）
→動作範囲を２倍にして右手上下動作
ＲｅａｌＣｈａｒａｃｔｅｒ．Ｐｌａｙ（“ＲｉｇｈｔＨａｎｄＷａｖｅ”／２）
→動作範囲を１／２にして上下動作
ＲｅａｌＣｈａｒａｃｔｅｒ．Ｐｌａｙ（“ＲｉｇｈｔＨａｎｄＷａｖｅ”／２＋２×ＬｅｆｔＨａｎｄＷａｖｅ”）
→右手は動作範囲を１／２にして上下動作、左手は動作範囲を２倍にして上下動作というアクションコマンドの記述と動作が実現可能となる。
【００５０】
尚、前記動作制御方法は、具体的にはパソコンのＣＰＵ等に予め所定の動作制御プログラムを通信回線もしくはＣＤ等の記録媒体からインストールし実行する。
【００５１】
すなわち、映像装置に表示されたソフトキャラクタと、接続可能なロボットもしくは映像装置に表示されるロボット用ソフトキャラクタに、ジェスチャとセリフの組で構成されるアクションコマンドが並べられたシナリオ情報に従って、それぞれ対応するジェスチャを行わせると同時にそれぞれ対応するセリフをスピーカから発音させる動作制御プログラムであって、ロボットの接続有無を判定する手順、ロボットが接続されていない場合、ロボット用コマンド実行をソフト用コマンド実行に切り替える手順、シナリオ情報のコマンドを解釈してロボット用ソフトキャラクタジェスチャを行わせると同時にスピーカから発音させる手順をコンピュータに実行させるための動作制御プログラムである。
【００５２】
また、映像装置に表示されたソフトキャラクタと、接続可能なロボットもしくは映像装置に表示されるロボット用ソフトキャラクタに、ジェスチャとセリフの組で構成されるアクションコマンドが並べられたシナリオ情報に従って、それぞれ対応する動作制御信号を生成すると同時にそれぞれ対応するセリフに相当する音声を合成してスピーカから発音させる動作制御プログラムであって、シナリオ情報のアクションコマンド記述内容を識別し、ロボットもしくはロボット用ソフトキャラクタの動作を解釈する手順、ロボットのジェスチャに関する動作データが格納されたジェスチャデータベースから動作データを読み込む手順、動作データの時間軸展開を行う手順、動作データの値をコマンドに応じて変更することによりデータの組み合わせや演算処理結果としてコマンド記述を可能とする動作データの演算手順をコンピュータに実行させるための動作制御プログラムである。
【００５３】
【発明の効果】
以上述べたように本発明によれば、リアルキャラクタの接続有無に関わらずシナリオが再生できるため、リアルキャラクタを持っていないユーザもシナリオを楽しむことができる。リアルキャラクタを持つ持たないに限らずシナリオを楽しむことができることは、ジェスチャＤＢやシナリオＤＢがインターネット上のコンテンツサーバ上にあるとより効果的である。
【００５４】
また、有限個の動作データの組み合わせや演算処理が可能なため、リアルキャラクタの表現力を向上させることが可能である。
【図面の簡単な説明】
【図１】本発明の実施形態例を示すフローチャートである。
【図２】図１のシナリオ実行の一例を示すフローチャートである。
【図３】図２のＰｌａｙコマンド実行の一例を示すフローチャートである。
【図４】図３の動作データの演算の一例を示す説明図である。
【図５】本発明の実施例に係るリアルキャラクタが接続されている場合の動作制御システムを示す構成説明図である。
【図６】本発明の実施例に係るリアルキャラクタが接続されていない場合の動作制御システムを示す構成説明図である。
【図７】図５におけるリアルキャラクタの内部の一例を示す機能ブロック図である。
【図８】図７におけるモータコントローラの内部の一例を示す機能ブロック図である。
【図９】図５、６におけるＰＣの内部の一例を示す機能ブロック図である。
【図１０】図９におけるリアルキャラクタコマンド実行部の内部の一例を示す機能ブロック図である。
【図１１】図１０におけるリアルキャラクタ動作コマンド実行部の内部の一例を示す機能ブロック図である。
【図１２】本発明の実施例に係るジェスチャＤＢに保存される動作データの例を示す説明図である。
【符号の説明】
１…ディスプレイ、２…ＰＣ、３…ソフトキャラクタ、４…リアルキャラクタ、５…スピーカ、６…スピーカ、７…モータコントローラ、８…ディスプレイケーブル、９…オーディオケーブル、１０…リアルキャラクタコントロール信号用ケーブル、１１…通信装置、１２…サーボモータ１、１３…サーボモータ２、１４…駆動体１、１５…駆動体２、１６…オーディオ入力端子、１８…動作信号解釈処理部、１９…ＰＷＭ波発生部、２０…イベント送信部、２１…制御部、２２…シナリオＤＢ、２３…ソフトキャラクタコマンド実行部、２４…音声信号生成部、２５…リアルキャラクタコマンド実行部、２６…映像出力部、２７…オーディオ出力部、２８…動作信号送受信部、２９…ジェスチャＤＢ、３０…コマンド制御部、３２…発話コマンド実行部、３３…ソフトキャラクタ動作コマンド実行部、３４…リアルキャラクタ動作コマンド実行部、３５…動作データ読み込み部、３６…コマンド受信部、３７…コマンド処理部。
【図１】
0003955756.tif 000002
【図２】
0003955756.tif 000003
【図３】
0003955756.tif 000004
【図４】
0003955756.tif 000005
【図５】
0003955756.tif 000006
【図６】
0003955756.tif 000007
【図７】
0003955756.tif 000008
【図８】
0003955756.tif 000009
【図９】
0003955756.tif 000010
【図１０】
0003955756.tif 000011
【図１１】
0003955756.tif 000012
【図１２】
0003955756.tif 000013