(57)【要約】【課題】簡単に表現力の高いＣＧ映像を生成する。【解決手段】入力される文字列に対応した応答を、ＣＧキャラクタを用いて出力するＣＧキャラクタ対話装置において、前記文字列を用いて予め設定された応答データベースを検索し、前記文字列に対応する応答情報と、前記応答情報に対応する表情又は動作を前記ＣＧキャラクタに実行させるマクロデータを抽出するためのマクロ抽出キーワードとを抽出する応答抽出手段と、マクロ抽出キーワードを用いて、予め記憶手段に記憶された複数のマクロデータから対応するマクロデータを抽出する対象マクロ抽出手段と、マクロデータに含まれるパラメータに前記応答情報の内容を挿入してスクリプトを生成するスクリプト生成手段と、スクリプトに対応するＣＧ映像を再生する再生手段とを有することにより、上記課題を解決する。【選択図】図１
2016038601.tif 000002
【特許請求の範囲】
【請求項１】
入力される文字列に対応した応答を、ＣＧキャラクタを用いて出力するＣＧキャラクタ対話装置において、
前記文字列を用いて予め設定された応答データベースを検索し、前記文字列に対応する応答情報と、前記応答情報に対応する表情又は動作を前記ＣＧキャラクタに実行させるマクロデータを抽出するためのマクロ抽出キーワードとを抽出する応答抽出手段と、
前記応答抽出手段により抽出されたマクロ抽出キーワードを用いて、予め記憶手段に記憶された複数のマクロデータから対応するマクロデータを抽出する対象マクロ抽出手段と、
前記対象マクロ抽出手段により得られるマクロデータに含まれるパラメータに前記応答情報の内容を挿入してスクリプトを生成するスクリプト生成手段と、
前記スクリプト生成手段により得られたスクリプトに対応するＣＧ映像を再生する再生手段とを有することを特徴とするＣＧキャラクタ対話装置。
【請求項２】
前記応答データベースは、前記応答情報に対応する表情又は動作を前記ＣＧキャラクタに実行させるためのスクリプトを含むことを特徴とする請求項１に記載のＣＧキャラクタ対話装置。
【請求項３】
前記応答データベースは、前記マクロ抽出キーワード又は前記スクリプトの開始及び終了を示す識別情報を含むことを特徴とする請求項２に記載のＣＧキャラクタ対話装置。
【請求項４】
前記応答抽出手段は、
前記文字列と予め設定された入力条件とに対応する前記応答情報又は前記マクロ抽出キーワードを抽出することを特徴とする請求項１乃至３の何れか１項に記載のＣＧキャラクタ対話装置。
【請求項５】
前記入力条件は、前記文字列の入力回数又は前記文字列が入力された時点における前記ＣＧキャラクタの感情状態であることを特徴とする請求項４に記載のＣＧキャラクタ対話装置。
【請求項６】
コンピュータを、請求項１乃至５の何れか１項に記載のＣＧキャラクタ対話装置として機能させるためのＣＧキャラクタ対話プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＧキャラクタ対話装置及びＣＧキャラクタ対話プログラムに関し、特に、簡単に表現力の高いＣＧ映像を生成するためのＣＧキャラクタ対話装置及びＣＧキャラクタ対話プログラムに関する。
【背景技術】
【０００２】
従来では、コンピュータ内で生成された三次元仮想空間上のＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）キャラクタを使った自然言語対話システムが多く存在している。例えば、使用者（ユーザ）が、キーボードやマイク等を使って日本語を入力し、ＣＧキャラクタが入力された日本語に対応する内容（応答）を出力するシステムである。
【０００３】
このようなシステムでは、既存の自然言語対話エンジン等をベースにして、ユーザが入力した情報を認識し、予め設定された応答文から対応する日本語テキストを抽出し、抽出した日本語テキストを音声等で出力している。なお、自然言語対話エンジンでは、Ｑ＆Ａ（質問／応答）の例を数多く用意し、入力された日本語に近い質問文を検索し、対応する応答文を出力している。
【０００４】
なお、上述したようにＣＧキャラクタ等を使ったアニメーション等の制作は、高い専門性と多くの制作時間を必要とする。例えば、人物のＣＧキャラクタを実際の人のように動かすには、関節等を基準にして人の動きを細かくデータ化する必要がある。したがって、対応する日本語テキストの内容を使って実際の対話システムを構築するには、多くの知識やプログラム開発に関する熟練した技術が必要となる。そこで、ＣＧキャラクタの柔軟で高機能な制御方法として、スクリプトによる制御が実現されている（例えば、特許文献１参照）。特許文献１では、複数のスクリプトを纏めて指定できるマクロ機能を用いることで、スクリプトによるＣＧ映像を実現している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１０９９８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したＣＧキャラクタを利用した対話システムでは、ＣＧキャラクタの振る舞いについての効果的な演出を行うシステムがない。特許文献１に示す手法では、マクロを用いることで、スクリプトを書くだけで、カメラワークやＣＧキャラクタの動きを指定して映像をリアルタイムに出力することができるが、入力文に対応する映像制御処理が自然言語対話エンジンと一体化したモジュール内で行われているため、この部分を設計するには、言語処理の知識とＣＧキャラクタ制御の知識、更にはプログラム開発の知識が必要となる。また、特許文献１の手法は、個々のアプリケーションに応じて、設計、開発されるため、利用対象を変更する場合だけでなく、動作の変更や追加を行うにも、プログラムを再度構築する必要があり、そのための手間と労力が必要となる。
【０００７】
本発明は、上述した問題点に鑑みなされたものであり、簡単に表現力の高いＣＧ映像を生成するためのＣＧキャラクタ対話装置及びＣＧキャラクタ対話プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本件発明は、以下の特徴を有する課題を解決するための手段を採用している。
【０００９】
一つの態様として、本発明は、入力される文字列に対応した応答を、ＣＧキャラクタを用いて出力するＣＧキャラクタ対話装置において、前記文字列を用いて予め設定された応答データベースを検索し、前記文字列に対応する応答情報と、前記応答情報に対応する表情又は動作を前記ＣＧキャラクタに実行させるマクロデータを抽出するためのマクロ抽出キーワードとを抽出する応答抽出手段と、前記応答抽出手段により抽出されたマクロ抽出キーワードを用いて、予め記憶手段に記憶された複数のマクロデータから対応するマクロデータを抽出する対象マクロ抽出手段と、前記対象マクロ抽出手段により得られるマクロデータに含まれるパラメータに前記応答情報の内容を挿入してスクリプトを生成するスクリプト生成手段と、前記スクリプト生成手段により得られたスクリプトに対応するＣＧ映像を再生する再生手段とを有する。
【００１０】
また、一つの態様として、本発明は、コンピュータを、上述したＣＧキャラクタ対話装置が有する各手段として機能させるためのＣＧキャラクタ対話プログラムである。
【発明の効果】
【００１１】
本発明によれば、簡単に表現力の高いＣＧ映像を生成することができる。
【図面の簡単な説明】
【００１２】
【図１】ＣＧキャラクタ対話装置の機能構成の一例を示す図である。
【図２】ＣＧキャラクタ対話処理の一例を示すフローチャートである。
【図３】ＣＧキャラクタ対話処理の第１実施例を示す図である。
【図４】ＴＶＭＬスクリプトの一例を示す図である。
【図５】ＣＧキャラクタ対話処理の第２実施例を示す図である。
【図６】第３実施例におけるＣＧキャラクタ対話処理の一例を示すフローチャートである。
【図７】第３実施例における応答データベース例を示す図である。
【図８】本実施形態におけるＣＧ映像の画面表示例を示す図である。
【発明を実施するための形態】
【００１３】
＜本発明について＞
本発明は、例えばＣＧキャラクタを用いた自然言語形式の対話装置等において、Ｑ＆Ａ等の応対例の中に、ＣＧキャラクタ及びシーン生成用のスクリプトを挿入しておくことで、視覚的なＣＧキャラクタの応答を豊かにした表現力の高いＣＧ映像の生成を可能とする。
【００１４】
なお、以下に示す実施形態では、例えばスクリプト等によるＣＧ映像（ＣＧアニメーション等）を実現し、更に複数のスクリプトを纏めて簡単に指定するマクロ機能を用いる。これにより、ＣＧ映像の生成に関する専門的な知識を必要とせず、高品質なＣＧ映像の生成を実現する。
【００１５】
以下に、上述したような特徴を有する本発明におけるＣＧキャラクタ対話装置及びＣＧキャラクタ対話プログラムを好適に実施した形態について、図面を用いて詳細に説明する。なお、本実施形態において生成されたＣＧキャラクタの一例として、例えば人（人体）を用いるがこれに限定されるものではなく、例えば動物等の他のＣＧキャラクタであってもよい。
【００１６】
また、本実施形態におけるＣＧ映像を生成するためのスクリプトの一例として、例えばＴＶＭＬ（ＴＶ  ｐｒｏｇｒａｍ  Ｍａｋｉｎｇ  Ｌａｎｇｕａｇｅ）スクリプトを用いるが、これに限定されるものではなく、他のスクリプトを用いてもよい。
【００１７】
＜ＣＧキャラクタ対話装置：機能構成例＞
本実施形態におけるＣＧキャラクタ対話装置の機能構成例について図を用いて説明する。図１は、ＣＧキャラクタ対話装置の機能構成の一例を示す図である。図１に示すＣＧキャラクタ対話装置１０は、入力手段１１と、出力手段１２と、記憶手段１３と、音声認識手段１４と、応答抽出手段１５と、対象マクロ抽出手段１６と、スクリプト生成手段１７と、再生手段１８と、画面生成手段１９と、送受信手段２０と、制御手段２１とを有する。
【００１８】
入力手段１１は、ＣＧキャラクタ対話装置１０を使用するユーザ等からの各種指示の開始や終了、設定の入力等の各種入力を受け付ける。具体的には、入力手段１１は、例えば本実施形態における音声認識指示、応答抽出指示、対象マクロ抽出指示、スクリプト生成指示、再生指示、画面生成指示、送受信指示等の各指示を受け付ける。
【００１９】
入力手段１１により取得される情報の入力は、例えばキーボードやマウス等の入力インタフェース等による入力でもよく、また画面を用いたタッチパネル形式の入力等でもよい。また、予め設定された複数の操作ボタンの所定位置を所定回数押下することによる入力等でもよい。更に、入力手段１１は、例えばマイクロフォン等により音声を入力する音声入力手段を有していてもよい。
【００２０】
出力手段１２は、入力手段１１により入力された内容や、入力内容に基づいて実行された内容等の出力を行う。なお、出力手段１２は、例えば画面表示により出力する場合には、ディスプレイモニタ等の表示手段を有する。また、入力手段１１と出力手段１２とは、例えばタッチパネル等のように入出力が一体型であってもよい。
【００２１】
また、出力手段１２は、例えばＣＧキャラクタによるＣＧ映像の生成に関するテキストデータをＴＶＭＬスクリプトに記述し、そのＴＶＭＬスクリプトを、例えばＴＶＭＬプレイヤー等で構成される再生手段１８にて再生させる。ＴＶＭＬプレイヤーとは、ＴＶＭＬスクリプトで記述された内容を解析し、そこに記載された素材データ（例えば、画像や映像、音声、文字データ）や番組制作エンジン（例えば、スタジオセット、照明、小道具等が予め設定されたツール）等を用いて、対応するスタジオセットにＣＧキャラクタ等を登場させてセリフをしゃべらせたり、動作させたり、表情を変える等の演出がされた映像を生成し、生成した映像を再生して出力手段１２等に出力するものである。
【００２２】
また、出力手段１２は、必要に応じてＣＧキャラクタの動作に対応した音声を出力する。そのため、出力手段１２は、ディスプレイ等による画面表示デバイスやスピーカ等による音声出力デバイス等を有する。出力手段１２は、再生手段１８により再生されたＴＶＭＬスクリプトに対応する映像又は音声を上述の表示デバイスや音声出力デバイスを用いて出力する。
【００２３】
記憶手段１３は、本実施形態において必要となる各種情報を記憶する。具体的には、記憶手段１３は、例えば入力手段１１から入力される入力情報（例えば、質問情報等）、入力情報に対応する応答データベース（例えば、Ｑ＆Ａ情報（例えば、応対例等）、マクロ抽出情報（キーワード）等）、予め登録された単語毎のモーションデータ（ＢＶＨデータ）、ＣＧキャラクタ（各種のキャラクタデータ）、ＴＶＭＬスクリプト、番組制作エンジン、素材データ等を記憶する。また、記憶手段１３は、例えばマクロデータ（マクロ定義）、各種パラメータデータ、本実施形態において生成されるＣＧ映像等を記憶する。なお、記憶手段１３に記憶される情報は、上述した情報に限定されるものではない。
【００２４】
また、記憶手段１３は、記憶された各種情報を必要に応じて所定のタイミングで読み出したり、書き込んだりすることができる。記憶手段１３は、上述したような多種の情報の集合物であり、それらの情報を、例えばキーワード等を用いて検索し、抽出することができるように体系的に構成されているデータベースとしての機能を有していてもよい。記憶手段１３は、例えばハードディスクやメモリ等からなる。また、上述した記憶手段１３に記憶される各情報は、ＣＧキャラクタ対話装置１０の外部に接続されるデータベース等に記憶しておき、必要に応じて読み出しや書き込みを行ってもよい。
【００２５】
音声認識手段１４は、入力手段１１から音声入力された場合に、その音声を認識して文字情報を取得する。音声認識手段１４は、例えば入力された音声を文章に変換し、変換した文章を形態素解析等を行うことで、質問等に対応する文字列（例えば、単語、句、節、文章）等を抽出するが、音声認識の内容はこれに限定されるものではない。なお、本実施形態のような対話型の装置構成では、音声による入力が好ましいが、本実施形態では、これに限定されるものではなく、文字入力であってもよい。この場合には、ＣＧキャラクタ対話装置１０は、音声認識手段１４を有していなくてもよい。
【００２６】
応答抽出手段１５は、音声認識手段等により認識された文字列、又は、入力手段１１や送受信手段２０により入力された文字列等に基づいて、記憶手段１３に記憶された応答情報を検索し、対応する応答等を抽出する。応答抽出手段１５は、例えば自然言語対話エンジンとしての機能を有する。
【００２７】
ここで、本実施形態における応答情報には、質問（Ｑ：Ｑｕｅｓｔｉｏｎ）に対応する回答（Ａ：Ａｎｓｗｅｒ）の他に、ＣＧキャラクタの表情や動作を変化させるためのマクロを抽出するためのマクロ抽出キーワードが設定されている。したがって、応答抽出手段１５は、質問に対応する回答を抽出すると共に、回答に付加された１又は複数のマクロ抽出キーワードを抽出することができる。
【００２８】
なお、応答抽出手段１５は、入力される文字列と、予め設定された入力条件とに対応する応答情報又はマクロ抽出キーワードを抽出してもよい。
【００２９】
対象マクロ抽出手段１６は、応答抽出手段１５により抽出された１又は複数のマクロ抽出キーワード（文字列等）に基づいて、記憶手段１３に記憶された複数のマクロデータ（マクロ定義）を参照し、対応するＴＶＭＬスクリプトを抽出する。マクロデータとは、分かりやすい日本語等のキーワードに対応付けられた１又は複数のＴＶＭＬスクリプトである。
【００３０】
なお、対象マクロ抽出手段１６は、入力されたマクロ抽出キーワードに対応するマクロが抽出できなかった場合には、その旨を示すエラーメッセージを出力手段１２の画面に表示して、ユーザに通知してもよい。これにより、ユーザは、例えば音声や文字列等による質問を再度入力することができる。
【００３１】
また、対象マクロ抽出手段１６は、マクロ抽出キーワードに対して、例えば完全一致や前方一致、部分一致等により該当するマクロを抽出してもよく、類似度の高い（例えば、類似度が所定の閾値以上）のマクロを抽出してもよい。抽出されたマクロが複数ある場合には、抽出された複数のマクロに対応する回答リストを表示し、その中からユーザに選択させてもよく、類似度又は過去の使用頻度が最も高いマクロを抽出することができるが、これに限定されるものではない。
【００３２】
スクリプト生成手段１７は、ＣＧキャラクタに回答（応答情報）の出力や、その回答にあった表情や動作等をさせるためのスクリプト生成を行う。例えば、スクリプト生成手段１７は、テキスト形式の番組台本（ＴＶＭＬスクリプト）を記述するだけで、背景セットの読み込みやカメラ視点の設定、モーションキャプチャデータの標準的なフォーマットであるＢＶＨ形式のモーション、音楽（ＢＧＭ）の再生、更に音声合成（ＳＡＰＩ：Ｓｐｅｅｃｈ  ＡＰＩ）との連携により、発話に応じた口形の変形を行うことができる。
【００３３】
例えば、スクリプト生成手段１７は、対象マクロ抽出手段１６により得られるマクロデータ（スクリプト）に含まれる変数（パラメータ）部分に応答情報の内容を挿入して、入力される質問に回答したり、ＣＧキャラクタの表情や動作を変更したＣＧ映像を生成するためのスクリプトを生成する。
【００３４】
また、スクリプト生成手段１７は、予め設定されたマクロに対応するＣＧ動作（モーション）に対し、各動作の前後のつなぎが滑らかになるように補正等を行うスクリプトを生成することで、自然な動作のＣＧ映像を生成することができる。
【００３５】
再生手段１８は、スクリプト生成手段１７により生成されたスクリプトからＣＧ映像を再生する。具体的には、再生手段１８は、例えばＣＧキャラクタの表情や動作を生成する１又は複数のマクロのそれぞれに対応するＴＶＭＬスクリプトを連結して一連のＣＧ映像を再生する。例えば、再生手段１８の一例であるＴＶＭＬプレイヤーが、ＴＶＭＬスクリプトと素材データ等を読み込み、順次スクリプトを解釈しながらＣＧ映像を生成し、リアルタイムに出力手段１２に出力する。
【００３６】
画面生成手段１９は、本実施形態におけるＣＧ映像を生成する処理において必要となる各種設定情報や対話用の質問等を入力するための画面を生成する。生成した画面は、出力手段１２等の画面に表示される。また、画面生成手段１９は、ユーザ等が入力手段１１により入力された情報や、生成されたＣＧ映像等を表示するための画面レイアウト等を生成することができるが、これに限定されるものではない。
【００３７】
送受信手段２０は、例えばインターネットやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等に代表される通信ネットワークを介して外部装置と各種情報の送受信を行うための通信手段である。送受信手段２０は、外部装置等にすでに記憶されている各種情報等を受信することができ、またＣＧキャラクタ対話装置１０で処理された結果を、通信ネットワーク等を介して外部装置等に送信することもできる。
【００３８】
制御手段２１は、ＣＧキャラクタ対話装置１０の各構成部全体の制御を行う。具体的には、制御手段２１は、例えばユーザ等による入力手段１１からの指示等に基づいて、ＣＧキャラクタ対話処理に関する各制御を行う。ここで、各制御とは、例えば上述した音声認識手段１４による入力された音声の認識や、対象マクロ抽出手段１６によるマクロデータの抽出、スクリプト生成手段１７によるスクリプトの生成、再生手段１８によるスクリプトの再生、画面生成手段１９による表示画面の生成等があるが、これに限定されるものではない。
【００３９】
上述したＣＧキャラクタ対話装置１０の例としては、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やサーバ等であるが、これに限定されるものではなく、例えばスマートフォンやタブレット端末等の通信端末、携帯電話、ゲーム機器等にも適用することができる。
【００４０】
上述した本実施形態によれば、言語処理やＣＧ映像の生成、コンピュータプログラムに関する専門知識や技術等を持っていなくても、簡単に表現力の高いＣＧキャラクタによる対話装置を構築することができる。また、本実施形態では、応答情報（データベース）に対してマクロを抽出する情報を設定しておくだけでよいため、修正や追加等を容易に行うことができる。
【００４１】
＜ＣＧキャラクタ対話処理について＞
ここで、上述したＣＧキャラクタ対話装置１０で処理されるＣＧキャラクタ対話処理の一例について、フローチャートを用いて説明する。図２は、ＣＧキャラクタ対話処理の一例を示すフローチャートである。
【００４２】
図２の例に示すＣＧキャラクタ対話処理は、質問情報の一例として入力された音声情報を認識し、音声に対応する文字情報を取得する（Ｓ０１）。なお、Ｓ０１の処理において、音声ではなく文字情報が入力された場合には、Ｓ０１の処理を行わなくてもよい。
【００４３】
次に、ＣＧキャラクタ対話処理は、Ｓ０１の処理で得られた文字情報を用いて記憶手段１３等に記憶された応答データベースを参照し、文字情報に対応するる応答情報とマクロ抽出キーワードとを取得する（Ｓ０２）。次に、マクロ抽出キーワードを用いて、記憶手段１３からマクロ定義（マクロデータ）を参照し、キーワードに対応する対象マクロを検索し（Ｓ０３）、抽出された応答情報（回答）と対象マクロとに対応するスクリプト（ＴＶＭＬスクリプト）を生成する（Ｓ０４）。Ｓ０４の処理では、例えば、対象マクロに対応するスクリプトの変数部分に、応答情報やＣＧキャラクタの表情、動作を変更させるための情報を挿入することで、ＴＶＭＬスクリプトを生成する。なお、スクリプトの生成内容については、これに限定されるものではなく、例えばカメラワークの設定、スタジオセットの照明の変更、小道具（例えば、ＣＧキャラクタが着用する帽子や眼鏡、鞄、靴、洋服、机、椅子等）の変更、ＢＧＭ等の変更等を行ってもよい。
【００４４】
次に、ＣＧキャラクタ対話処理は、生成されたＴＶＭＬスクリプト等に対応するＣＧ映像を、出力手段１２等により再生する（Ｓ０５）。次に、ＣＧキャラクタ対話処理は、処理を終了するか否かを判断し（Ｓ０６）、処理を終了しない場合（Ｓ０６において、ＮＯ）、Ｓ０１に戻る。また、ユーザからの終了指示や、所望するＣＧ映像の生成が終了した場合等により、処理を終了する場合（Ｓ０６において、ＹＥＳ）、ＣＧキャラクタ対話処理を終了する。
【００４５】
＜ＣＧキャラクタ対話処理の第１実施例＞
次に、本実施形態におけるＣＧキャラクタ対話処理の第１実施例について図を用いて説明する。図３は、ＣＧキャラクタ対話処理の第１実施例を示す図である。図３の例では、上述したＣＧキャラクタ対話装置１０における音声認識手段１４と、応答抽出手段１５と、スクリプト生成手段１７と、再生手段１８が示されている。図３に示す第１実施例では、ＣＧ映像生成スクリプトとしてＴＶＭＬスクリプトを用いると共に、ＴＶＭＬスクリプトを解釈してリアルタイムにＣＧ映像を生成するツールとして、再生手段１８の一例であるＴＶＭＬプレイヤーを用いている。
【００４６】
第１実施例では、ＣＧ映像の制御処理を行うための設定を外部ファイル化すると共に、制作者側がＣＧ映像の生成の専門家ではなくても、簡単にＣＧ映像の設計や変更等が行えるように、簡易な日本語又はスクリプト（テキスト）を記述する方式とする。これにより、Ｑ＆Ａ等の応答データベースに容易に統合することができる。また、記述された日本語又はスクリプトは、ＣＧ映像の生成用スクリプトに簡単に変更できるものとし、ＣＧ映像生成用スクリプトを利用することにより、ＣＧキャラクタの表情変更や動作（振る舞い）の変更だけでなく、小道具（小物等）や音楽の変更、カメラワークの変更等、多彩なシーンの変更を可能とする。
【００４７】
そこで、第１実施例では、自然言語対話エンジンで利用するＱ＆Ａの応答文に付随してＣＧキャラクタやシーン制御のためのテキスト記述を追加する。また、自然言語対話エンジンで応答文が決定され、追記したテキスト記述が読み出された後、応答文及びこのテキスト記述を用いてＣＧ映像生成スクリプトを生成し、生成したスクリプトを用いてＣＧ映像を生成する。
【００４８】
第１実施例では、例えば図３に示すような音声情報（例えば、「名前は何ですか」）が入力された場合、音声認識手段１４による音声認識により文字列情報を取得する。次に、応答抽出手段１５により記憶手段１３に記憶された応答データベース（図３の（ａ））を参照し、認識した文字列情報に対応する応答情報を抽出する。図３の例では、「名前は何ですか」の文字列に対応した質問情報（Ｑ）として類似度が最も高い「名前は？」が抽出され、その回答（Ａ）である「花子です。」が応答情報として抽出される。このとき、応答データベースには、単に応答情報だけでなく、ＣＧキャラクタに表情や動作等の表現を行わせるマクロを抽出するためのマクロ抽出キーワードも含まれている。なお、マクロ抽出キーワードは、例えば括弧書きのように予め設定された記述フォーマットで他の情報と識別可能に記述されている。
【００４９】
したがって、第１実施例では、このマクロ抽出キーワード（図３の例では、「（笑顔）」）も合わせて抽出し、スクリプト生成手段１７により、抽出したマクロ抽出キーワードを用いて、記憶手段１３等に記憶されたキーワード毎に対応付けられたマクロデータ（図３の（ｂ））の中から、マクロ抽出キーワードに対応するスクリプト（マクロ）を抽出する。
【００５０】
第１実施例では、Ｑ＆Ａ情報だけでなく、回答部分にＣＧ映像を生成するためのテキスト記述を含んでいる。したがって、スクリプト生成手段１７は、図３（ｃ）の１行目に示すような応答文に対応したＴＶＭＬスクリプト、及び、映像生成用のテキスト記述からマクロデータを抽出して、図３（ｃ）の２行目に示すようなＴＶＭＬスクリプトを生成する。
【００５１】
生成されたＴＶＭＬスクリプトは、ＴＶＭＬプレイヤーによって解釈され、映像及び音声等が出力画面３０に出力される。図３の例では、対話処理として、例えば音声出力（発話、セリフ出力）やＣＧ映像のスーパーインポーズ表示として、応答情報である「花子です」が出力される。更に、第１実施例では、ＣＧキャラクタ３１の表情が笑顔になる。なお、第１実施例では、ＣＧキャラクタ３１に応答情報に対応する手話動作等を行わせてもよい。
【００５２】
なお、ＴＶＭＬスクリプトは、キャラクタの表情に限らず、キャラクタの動作や、カメラワーク、音楽の再生、小道具（小物）の表示、動き等、映像生成に関する種々の要素を制御することができる。
【００５３】
＜ＴＶＭＬスクリプト例＞
図４は、ＴＶＭＬスクリプトの一例を示す図である。図４の例では、背景をセットするスクリプト（スタジオセット用スクリプト）、ＣＧキャラクタを表示するスクリプト、ＣＧキャラクタの表情を設定するスクリプト、ＣＧキャラクタの発話とスーパーインポーズとを画面に表示するスクリプト、カメラワークを設定するスクリプトが示されているが、スクリプトの種類については、これに限定されるものではない。
【００５４】
第１実施例では、例えば図４に示すようなＴＶＭＬスクリプトによる背景のセット、ＣＧキャラクタ表示、ＣＧキャラクタの表情の変更、発話とスーパーインポーズの表示、及びカメラワーク、照明の変更等のうち、少なくとも１つを応答データベースやマクロデータ等を用いて自由に設定することができる。これにより、簡単に種々の状況に応じたＣＧキャラクタによる対話装置を構築することができる。
【００５５】
なお、それぞれの設定は、例えば上述したように応答データベースにおけるテキスト（マクロ抽出キーワード）の編集を行うだけでよく、言語処理やＣＧに関する専門的な知識は必要ない。更に、コンピュータプログラムに関する専門知識や技術も不要であるため、制作者側は、応答を出力する際に、ＣＧキャラクタに適切な表情や動作を踏まえた処理を行うことができる。
【００５６】
＜第２実施例＞
次に、本実施形態におけるＣＧキャラクタ対話処理の第２実施例について説明する。図５は、ＣＧキャラクタ対話処理の第２実施例を示す図である。
【００５７】
上述した第１実施例では、応答データベース内にマクロ抽出キーワードを記述し、そのマクロ抽出キーワードを用いて対象マクロを抽出する構成にしていたが、これに限定されるものではなく、例えば応答データベース内にマクロそのものを入力してもよい。言い換えると、第１実施例では、Ｑ＆Ａの応答文の中に映像制御用の簡単な日本語テキストを入れ、マクロ機能によりＴＶＭＬスクリプトに変換したが、第２実施例では、応答文の中にＣＧ映像の生成に関するＴＶＭＬスクリプトを直接記述する。
【００５８】
また、第２実施例では、上述した第１実施例と組み合わせてマクロ抽出キーワードとＴＶＭＬスクリプトとを記述してもよい。この場合、マクロ抽出キーワードやＴＶＭＬスクリプトの記述は、１行でもよく複数行でもよい。例えば、第２実施例では、応答データベースがリスト形式で記述される場合に、ＴＶＭＬスクリプトがリスト中のどの部分であるかを明確にするため、ＴＶＭＬスクリプトの開始及び終了を示す識別情報を付けて記述してもよい。
【００５９】
図５の例では、スクリプトの開始を示す識別情報として「＃ｂｅｇｉｎ」が記述され、またスクリプトの終了を示す識別情報として「＃ｅｎｄ」が記述されているが、これに限定されるものではなく、他の識別情報でもよい。
【００６０】
図５の例では、ＴＶＭＬスクリプトを含んだＱ＆Ａ情報を示しており、＃ｂｅｇｉｎから＃ｅｎｄまでに１又は複数行のＴＶＭＬスクリプトを記述することができる。また、第２実施例では、図５の例のように、マクロ抽出キーワード「（怒り）」と、ＴＶＭＬスクリプト「ｓｏｕｎｄ：ｐｌａｙ（ｎａｍｅ＝ｍｕｓｉｃ１）」とを両方記述してもよい。
【００６１】
図５の例において、小道具の一例である小物「ｂｏｏｋ」、「ｐｅｎ」や音楽「ｍｕｓｉｃ１」等の情報（素材データ）は、事前に読み込んでおいてもよく、その応答を出力するタイミングで読み込んでもよい。
【００６２】
＜第３実施例＞
次に、本実施形態におけるＣＧキャラクタ対話処理の第３実施例について説明する。本実施形態では、応答情報に対応してＣＧキャラクタの表情等を変えるが、例えば同じ質問を何度もされたり、応答内容等に応じて感情状態が変化したり、誹謗中傷的な文章が入力してきた場合には、笑顔の表情のままだと不自然になる。そのため、第３実施例では、応答抽出手段１５が、例えばマクロ抽出キーワード等を入力条件等に応じて変更する。なお、入力条件に応じてマクロ抽出キーワードを変更する場合には、例えばｉｆ文等のようなスクリプトを記述してもよい。更に、第３実施例では、マクロ抽出キーワードと共に、応答情報を変更してもよい。
【００６３】
図６は、第３実施例におけるＣＧキャラクタ対話処理の一例を示すフローチャートである。なお、以下の説明では、マクロ抽出キーワードの変更を行う例を示すが、これに限定されるものではなく、ＴＶＭＬスクリプトの変更を行ってもよい。
【００６４】
図６の例に示す第３実施例では、入力された音声情報を認識して文字情報を取得する（Ｓ１１）。なお、Ｓ１１の処理において、音声ではなく文字情報が入力された場合には、Ｓ１１の処理を行わなくてもよい。
【００６５】
次に、第３実施例では、Ｓ１１の処理で得られた文字情報を用いて応答データベースを参照し、対応する応答情報とマクロ抽出キーワードとを取得する（Ｓ１２）。
【００６６】
次に、第３実施例では、応答抽出手段１５において、マクロ抽出キーワードの変更が必要か否かを判断する（Ｓ１３）。変更が必要な否かの判断は、例えば同じ質問を所定回数（例えば、３回）以上連続してしてきた場合や感情状態の変化、誹謗中傷的な発言等の予め設定されたＮＧワード等が入力された場合に、マクロ抽出キーワードを変更する処理を行う。
【００６７】
ここで、マクロ抽出キーワードの変更が必要である場合（Ｓ１３において、ＹＥＳ）、マクロ抽出キーワードを変更する（Ｓ１４）。なお、変更内容としては、例えば予め設定された入力条件に応じて、（笑顔）→（悲しみ）、（笑顔）→（怒り）等のように変更する等があるが、これに限定されるものではなく、例えば、（笑顔）→（スタジオセットが真っ暗になる）のように、ＣＧキャラクタの表情とは違う演出内容のマクロを抽出するキーワードに変更してもよい。また、（笑顔）→（ズームアップ）、（怒り）等のように１つのキーワードから複数のキーワードに変更してもよい。また逆に、複数のキーワードから１つのキーワードに変更してもよい。
【００６８】
Ｓ１４の処理後、又はＳ１３の処理において、マクロ抽出キーワードの変更が必要ない場合（Ｓ１３において、ＮＯ）、変更されたマクロ抽出キーワードを用いて記憶手段１３からマクロ定義（マクロデータ）を参照して、キーワードに対応する対象マクロを検索し（Ｓ１５）、抽出された応答情報（回答）と対象マクロとに対応するスクリプト（ＴＶＭＬスクリプト）を生成して（Ｓ１６）、ＣＧ映像を生成し、生成されたＣＧ映像を出力手段１２等により再生表示する（Ｓ１７）。
【００６９】
次に、第３実施例では、処理を終了するか否かを判断し（Ｓ１８）、処理を終了しない場合（Ｓ１８において、ＮＯ）、Ｓ１１に戻る。また、ユーザからの終了指示や、所望するＣＧ映像の生成が終了した場合等により、処理を終了する場合（Ｓ１８において、ＹＥＳ）、第３実施例におけるＣＧキャラクタ対話処理を終了する。
【００７０】
第３実施例によれば、入力される音声情報や文字情報の内容に応じてＣＧキャラクタの表情や動作、スタジオセットの演出等を簡単な設定で、容易に制御することができる。
【００７１】
なお、第３実施例における上述したマクロ抽出キーワードや応答情報の変更は、例えば応答データベース内にｉｆ文等の条件判断処理を記述しておくことで、簡単に変更をすることができる。
【００７２】
＜第３実施例における応答データベース例＞
図７は、第３実施例における応答データベース例を示す図である。図７（ａ）は、質問回数（例えば、同一文字列（同一質問）の入力回数）に応じて応答情報及びマクロ抽出キーワードを変更する応答データベース例を示し、図７（ｂ）は、質問の文字列が入力された時点におけるＣＧキャラクタの感情状態に応じて応答情報及びマクロ抽出キーワードを変更する応答データベース例を示している。
【００７３】
質問回数に応じて応答やＣＧキャラクタの表情等を変更する場合、応答抽出手段１５は、ユーザ（使用者）からの同一又は類似する質問の回数をカウントしておく。また、応答抽出手段１５は、質問の文字列情報及び質問回数に応じて、記憶手段１３に予め記憶された図７（ａ）に示すような応答データベースを参照して、回数に応じた応答情報及びマクロ抽出キーワードを取得する。
【００７４】
例えば、「名前は？」という質問が１回された場合には、「花子です。」という応答情報（ＣＧキャラクタのセリフ）と、ＣＧキャラクタの表情を笑顔にするマクロを抽出するためのキーワード「（笑顔）」とが取得される。また、所定時間内の対話において、「名前は？」という質問が２回された場合には、「またー、花子ですよ。」という応答情報と、ＣＧキャラクタの表情を不満顔にするマクロを抽出するためのキーワード「（不満）」とが取得される。また、所定時間内の対話において、「名前は？」という質問が３回以上された場合には、「何度きくの、花子だってば。」という応答情報と、ＣＧキャラクタの表情を怒り顔にするマクロを抽出するためのキーワード「（怒り）」とが取得される。
【００７５】
これにより、質問回数に応じた応答やＣＧキャラクタの表情の変更を行うことができる。
【００７６】
また、第３実施例では、ＣＧキャラクタの感情状態に応じて応答やＣＧキャラクタの表情等を変更する場合、応答抽出手段１５は、ＣＧキャラクタとユーザ（使用者）との対話の内容から、現時点（質問が入力された時点）でのＣＧキャラクタの感情を管理しておく。例えば、応答抽出手段１５は、感情状態として、笑顔（ＨＡＰＰＹ）、怒り（ＡＮＧＲＹ）、悲しみ（ＳＡＤ）、恐れ（ＦＥＡＲ）等のような情報を予め設定しておき、最近（例えば、１〜１０日間程度）の対話履歴の中で、楽しい内容の対話をした場合には、「笑顔（ＨＡＰＰＹ）」の値をカウントし、悲しい内容の対話をした場合には、「悲しみ（ＳＡＤ）」の値をカウントし、これらのカウント値の最大値に応じて、質問に対する応答やＣＧキャラクタの表情の変更を行う。
【００７７】
応答抽出手段１５は、入力される文字列情報（質問）及び感情状態に応じて、記憶手段１３に予め記憶された図７（ｂ）に示すような応答データベースを参照して、回数に応じた応答情報及びマクロ抽出キーワードを取得する。
【００７８】
例えば、「かわいいね」という質問がされた場合に、そのときの感情状態（値が最大である感情）が「笑顔（ＨＡＰＰＹ）」であれば、「ありがとう。」という応答情報（ＣＧキャラクタのセリフ）と、ＣＧキャラクタの表情を笑顔にするマクロを抽出するためのキーワード「（笑顔）」とが取得される。また、感情状態が「怒り（ＡＮＧＲＹ）」であれば、「そう。」という応答情報と、ＣＧキャラクタの表情を怒り顔にするマクロを抽出するためのキーワード「（怒り）」とが取得される。
【００７９】
なお、図７（ｂ）の例では、応答データベース内に感情状態の値をカウントさせるパラメータ（図７（ｂ）の例ではＨＡＰＰＹ＋＝１）を付加してもよい。これにより、対話を続けていくうちに、ＣＧキャラクタの感情を変化させることができ、対話内容に対応させた自然な表情や動作に変更することができる。
【００８０】
なお、図７（ａ）、図７（ｂ）の例では、質問及び入力条件に対応させて応答情報及びマクロ抽出キーワードの両方を変更しているが、これに限定されるものではなく、応答情報又はマクロ抽出キーワードのみを変更してもよい。
【００８１】
更に、第３実施例では、上述した手法を応用して、予め設定された複数の応答情報やマクロ抽出キーワード、ＴＶＭＬスクリプト等を、ランダムに選択してもよい。
【００８２】
＜画面表示例＞
図８は、本実施形態におけるＣＧ映像の画面表示例を示す図である。本実施形態では、出力画面３０に表示されるＣＧ映像中のＣＧキャラクタ３１の表情や動作等を応答に応じて変更して表示することができる。
【００８３】
例えば、図８（ａ）に示す出力画面３０−１のように、「そんな言葉は使わないでください。」といった応答情報を出力する場合、上述した手法を用いて簡単にＣＧキャラクタ３１の表情を怒り顔にして表示させることができる。
【００８４】
また、図８（ｂ）に示す出力画面３０−２のように、「あなたは技研について詳しいのですね。」といった応答情報を出力する場合、応答情報に対応する画像３２をＣＧ映像に挿入するといった演出等を行うこともできる。更に、本実施形態では、映像等を追加して表示させる等の演出効果やカメラワークの変更等も行うことができる。
【００８５】
なお、本実施形態に対応する表示例については、これに限定されるものではなく、例えばＣＧキャラクタ３１に応答情報に対応する手話動作をさせたり、手を振る、お辞儀をする、走り回る等の所定の動作を行わせることができる。また、ＣＧキャラクタ３１に帽子や眼鏡を着用させたり、本やペン等の小道具（小物）を持たせることもできる。
【００８６】
＜実行プログラム＞
ここで、上述したＣＧキャラクタ対話装置１０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性の記憶媒体、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性の記憶媒体、マウスやキーボード、ポインティングデバイス等の入力装置、画像やデータを表示する表示部、並びに外部と通信するためのインタフェースを備えたコンピュータによって構成することができる。
【００８７】
したがって、ＣＧキャラクタ対話装置１０が有する各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現可能となる。また、これらのプログラムは、磁気ディスク（フロッピィーディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記録媒体に格納して頒布することもできる。
【００８８】
つまり、上述した各構成における処理をコンピュータに実行させるための実行プログラム（ＣＧキャラクタ対話プログラム）を生成し、例えば、汎用のパーソナルコンピュータやサーバ等にそのプログラムをインストールすることにより、ＣＧキャラクタ対話処理を実現することができる。
【００８９】
上述したように本発明によれば、簡単に表現力の高いＣＧ映像を生成することができる。具体的には、例えばＣＧ映像の生成に詳しくない一般ユーザが、簡単な日本語入力で、自然なアニメーション映像を得ることができる。また、煩雑なＣＧアニメーション用スクリプトを予めマクロ定義しておくことにより、セットや出演者の変更、スーパーインポーズ表示、画像や映像等との合成表示等の出力映像の変更や高機能化を容易に実現することができる。
【００９０】
また、本発明は、例えばテレビ番組のような映像コンテンツを、ＣＧ、音声合成等を用いて制作する分野に適用することができる。また、本発明は、映像を生成するビューアーにスクリプトやパラメータを送ることによってビューアーを制御し、映像を再生する分野に適用することができる。また、本発明は、ＣＧキャラクタの動作を変化させて動画映像を作成するアニメーション分野等に適用することができる。
【００９１】
以上本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。また、上述した各実施例の一部又は全部を組み合わせることも可能である。
【符号の説明】
【００９２】
１０  ＣＧキャラクタ対話装置
１１  入力手段
１２  出力手段
１３  記憶手段
１４  音声認識手段
１５  応答抽出手段
１６  対象マクロ抽出手段
１７  スクリプト生成手段
１８  再生手段
１９  画面生成手段
２０  送受信手段
２１  制御手段
３０  出力画面
３１  ＣＧキャラクタ
３２  画像
【図１】
2016038601.tif 000003
【図２】
2016038601.tif 000004
【図３】
2016038601.tif 000005
【図４】
2016038601.tif 000006
【図５】
2016038601.tif 000007
【図６】
2016038601.tif 000008
【図７】
2016038601.tif 000009
【図８】
2016038601.tif 000010