以下、本発明の実施の形態について、添付図面を用いて詳細に説明する。
(実施の形態1)
本発明の実施の形態1に係る場面修飾表現生成装置を含むコンピュータ・グラフィックス・アニメーション作成システムについて図1を用いて説明する。図1は、本発明の実施の形態1に係る場面修飾表現生成装置を含むコンピュータ・グラフィックス・アニメーション作成システムの構成の一例を示す図である。
本実施の形態に係るコンピュータ・グラフィックス・アニメーション作成システム100は、利用者が入力するテキスト文のシナリオから動作主とその動作に関する情報を抽出するアニメーションシナリオ生成装置101と、アニメーションに加えるべき場面に関する修飾表現(以下「場面修飾表現」という)を生成する場面修飾表現生成装置102と、最終的なコンピュータ・グラフィックス・アニメーションを生成するアニメーション生成装置111とで構成される。
アニメーションシナリオ生成装置101は、入力されたテキスト文のシナリオ(以下単に「シナリオ」という)から動作主やその動作、動作の対象物、場所、時刻などに関する情報を抽出し、抽出したこれらの情報と、これらの情報から導かれるアニメーション用のシナリオ(以下「アニメーションシナリオ」という)を出力する。
例えば、入力されたシナリオが、「太郎は急いで走った。」であれば、動作主の情報として「太郎」、動作主の動作の情報として「走る」、「走る」の修飾情報として「急ぎ」をそれぞれ抽出するとともに、これらの情報から「太郎は急いで走った」というアニメーションシナリオを生成する。ここで、「急いで」は、後述する特徴パラメータ抽出部104で、シナリオの特徴パラメータとして抽出される。
また、入力されたシナリオが、「花子はひらめいた。」であれば、動作主の情報として「花子」、動作主の動作の情報として「手を叩く」をそれぞれ抽出するとともに、これらの情報から「花子は手を叩いた」というアニメーションシナリオを生成する。なお、ここでは、シナリオ中の「ひらめき」を「手を叩く」という動作で表現したが、これに限られない。例えば、「手を叩く」以外にも、「目が大きくなる」や「指をはじく」など、様々な表現方法が考えられる。
場面修飾表現生成装置102には、アニメーションシナリオ生成装置101やアニメーション生成装置111などの他の装置とのデータ入出力装置として、入力データ取得部103と、データ出力部110とが設けられている。
入力データ取得部103は、アニメーションシナリオ生成装置101の出力、つまり、本実施の形態では、シナリオに含まれる動作主およびその動作、ならびにシナリオそのものを入力データとして取得する。また、入力データ取得部103は、アニメーション生成装置111から送られてくる場面情報をも取得する。入力データ取得部103は、取得したシナリオを特徴パラメータ抽出部104と、場面情報を場面修飾表現選択部109にそれぞれ送る。
また、データ出力部110は、アニメーション生成装置111に対して場面修飾表現を出力する。
また、場面修飾表現生成装置102には、単語特徴辞書105が設けられている。単語特徴辞書105は、単語と単語に対する特徴パラメータとを対応付けたものであり、特徴パラメータ抽出部104が使用する。単語特徴辞書105について、図2を用いて詳細に説明する。図2は、本実施の形態における単語特徴辞書の一例を示す図である。
図2に示すように、単語特徴辞書105には、識別番号201と、単語(単語の組み合わせを含む)202と、単語202に対する作用の特徴を表す特徴パラメータ203と、の組が複数格納されている。
例えば、“急いで”という単語202に対しては、急ぎを示す$(急ぎ)という特徴パラメータ203が対応付けられている。また、“すごく”+$$(特徴パラメータ)という単語の組み合わせ202は、Add(+、$$特徴パラメータ)、つまり、特徴パラメータに+を付与することを示している。記号“+”は強調することを意味するので、Add(+、$$特徴パラメータ)は特徴パラメータを強調することを示している。
また、“力の限り”という単語202に対しては、その後ろに移動動作を表す単語が連接している場合には、すごく急いでいることを示す$(急ぎ++)という特徴パラメータ203が、感情動作を表す単語202が連接している場合には、ものすごく大げさな動作であることを示す$(大げさ++)という特徴パラメータ203がそれぞれ対応付けられる。なお、記号“++”は、記号“+”よりも強調度合いが大きいことを示すものである。
このように、単語の組み合わせ202に対しても、対応する特徴パラメータ203が付与されている。
また、“号泣”という単語202に対しては、すごく大げさなことを示す$(大げさ+)という特徴パラメータ203が付与される。このように、副詞でなく、副詞的な意味を内包する単語202にも特徴パラメータ203が対応付けられている。
また、“すごく”@$$(動作動詞)という単語の組み合わせ202に対しては、大げさなこと示す$(大げさ)という特徴パラメータ203が付与される。
また、“わんわん”@$(泣く)という単語の組み合わせ202に対しては、大げさを示す$(大げさ)、または、「わんわん」や「ドキドキ」、「どぎまぎ」などの擬音語や擬態語を付与することを示す$$(オノマトペ)という特徴パラメータ203が付与される。
また、“悲鳴を上げる”という単語202には、恐怖を示す$(恐怖)という特徴パラメータ203が付与され、“ひらめく”という単語202には、ひらめきを示す$(ひらめき)という特徴パラメータ203が付与される。
また、“唖然と”や“目が点になる”という単語202の場合には、どちらも唖然を示す$(唖然)という特徴パラメータ203が対応付けられる。
また、No.10の例は、他のものと違い、シナリオ入力時の記述フォントの大きさによって特徴パラメータ203の強調度合いを決める記述となっている。このように、文字の意味だけでなく、文字のフォントに対しても特徴パラメータ203が対応付けられている。
このように単語特徴辞書105は構成されている。
次に、特徴パラメータ抽出部104について説明する。特徴パラメータ抽出部104は、送られてきたシナリオから特徴パラメータ203を抽出し、場面修飾表現選択部109に送る。具体的には、特徴パラメータ抽出部104は、単語特徴辞書105を参照し、シナリオに含まれる単語202に対応する特徴パラメータ203を抽出する。言い換えると、特徴パラメータ抽出部104は、シナリオから、当該シナリオの特徴を示す特徴パラメータ203を抽出する。
特徴パラメータ抽出部104への入力と特徴パラメータ抽出部104からの出力について、図3を用いて説明する。図3は、本実施の形態におけるテキスト文のシナリオ301ならびにこれに対応して得られる動作主302、動作303、および特徴パラメータ203の例を示す図である。
図3のNo.1〜No.8の例で用いた単語特徴辞書105は、図2のNo.1〜No.8に対応する。同様に、図3のNo.9の例で用いた単語特徴辞書105は図2のNo.9、No.10に、図3のNo.10の例で用いた単語特徴辞書105は図2のNo.11に、図3のNo.11、No.12の例で用いた単語特徴辞書105は、図2のNo.12にそれぞれ対応する。
なお、図3のシナリオ301に下線を施した部分は、図2の単語特徴辞書105に適用された部分である。
図2と図3の例からわかるとおり、シナリオ301上では同じ表現の単語であっても、異なる特徴パラメータが得られる例(“力の限り”)と、逆に、シナリオ301上では異なる表現であっても、同一の特徴パラメータが得られる例(“すごく泣く”と“わんわん泣く”、“目が点になる”と“唖然”)とがある。
このように、特徴パラメータ抽出部104は、単語特徴辞書105を用いることにより、単語または単語の組み合わせ202に対応する特徴パラメータ203を容易に抽出することができる。また、単語特徴辞書105には、単語または単語の組み合わせ202が内包する意味に対する特徴パラメータ203も対応付けられているので、特徴パラメータ抽出部104は、シナリオ301に内包する意味に対応する特徴パラメータ203を抽出することができる。
また、場面修飾表現生成装置102には、場面修飾表現選択部109が使用する情報を格納する場面修飾表現辞書106と、場面修飾表現最適化知識108とが設けられている。
場面修飾表現辞書106について、図4を用いて説明する。図4は、本実施の形態における場面修飾表現辞書の一例を示す図である。
場面修飾表現辞書106は、識別番号である辞書ID401と、辞書項目の適合条件402と、その条件402に適合した場合に得られる場面修飾表現403と、の組からなる。
適合条件402は、アニメーションシナリオ生成装置101で生成されたアニメーションシナリオにおける図3の動作主302および動作303、ならびに特徴パラメータ抽出部104で抽出された図3の特徴パラメータ203からなる。
動作主302は、動作主302が人間であるか、動物であるか、また、非生物であるかなどを示す。動作303は、走る、泣くなどの具体的な動作を示す場合と、喜ぶ、悲しむなどの、何らかの動作、何らかの状態にあるといったメタな型、つまり、具体的な動作以外の包括的な動作を示す場合とがある。特徴パラメータ203の内容は図2で示したとおりであるが、場面修飾表現辞書106の適合条件402においては、特徴パラメータ203の大きさごとに辞書を分ける必要がない場合には、辞書ID001や辞書ID002のように、複数の特徴パラメータの大きさを記号“|”でつないで条件として記述することもできる。ここで、記号“|”はor条件を示す。なお、この例では3つの特徴パラメータをつないでいるが、特徴パラメータの数はこれに限定されず、いくつの特徴パラメータをつないで条件としてもよい。
また、場面修飾表現403は、辞書ID401によっては、複数対応付けられているものもある。例えば、辞書ID401が“001”や“004”、“008”などの場合には、複数の場面修飾表現403が対応付けられている。
このような場面修飾表現辞書106を用いることにより、例えば、適合条件402が、“動作主@$$(人間)、動作@$(走る)、特徴パラメータ=$(急ぎ)、$(急ぎ+)、または$(急ぎ++)”、つまり、「人間が、急いで走っている」ということを示す場合(辞書ID401=001)、場面修飾表現403が、“場面全体に走る線($(線種))を引く”、“動作主空間の後ろに線($(量)、$(線種))を引く”、または“動作主の顔が歯を食いしばった顔”であることがわかる。なお、線($(線種)、$線(量))は、後述する場面修飾表現最適化知識108により、使用する線種や線の量が決定されることを示す。
ここで、動作主空間とは、動作主体を取り巻く近傍空間であり、表現を与える際に、動作主302を示すオブジェクトに重ねずに、その近傍に表現を加えることを意図した空間である。
また、適合条件402が、“動作主@$$(人間)、動作@$(泣く)、特徴パラメータ=$(大げさ)、$(大げさ+)、または$(大げさ++)”、つまり、「人間が、大げさに泣く」ということを示す場合(辞書ID401=002)、場面修飾表現403は、“動作主の顔に涙($(量))を流す”ということを示す。なお、涙($(量))は、後述する場面修飾表現最適化知識108により、動作主の顔に流れる涙の量が決定されることを示す。
また、適合条件402が、“動作主@$$(人間)、動作@$$(動作)、特徴パラメータ=$$(オノマトペ)”、つまり、「人間がオノマトペ(擬音語、擬声語)を発している」ということを示す場合(辞書ID401=003)、場面修飾表現403は、“動作主空間の上方に$$(オノマトペ)($(大きさ))を表示する”、つまり、人間の上方にオノマトペを表示するということを示す。なお、($(大きさ))は、後述する場面修飾表現最適化知識108により、オノマトペを表示する大きさが決定されることを示している。
また、適合条件402が、“動作主@$$(人間)、動作@$$(動作)、特徴パラメータ=$(恐怖)、$(恐怖+)、または$恐怖(++)”、つまり、「人間が恐怖感を感じながら動作する」ということを示す場合(辞書ID401=004)、場面修飾表現403は、“動作主(人間)の髪の毛を逆立てる”、または、“動作主(人間)空間の上方に“こわいっ”という文字($(フォント)、$(大きさ))を表示する”ということを示す。なお、文字($(フォント)、$(大きさ))は、後述する場面修飾表現最適化知識108により、表示する文字のフォントおよび大きさが決まることを示している。
また、適合条件402が、“動作主@$$(人間)、動作@$(手を叩く)、特徴パラメータ=$(ひらめき)”、つまり、「人間が、何かをひらめいて手を叩く」ということを示す場合(辞書ID401=005)、場面修飾表現403は、“動作主(人間)の$(手を叩く)の音を出し($(大きさ))、かつ、大きい音が出る線($(量))を書く”ということを示す。なお、音を出し$(大きさ)は、後述する場面修飾表現最適化知識108により、音の大きさが決まることを示している。
また、適合条件402が、“動作主@$$(人間)、動作@$$(動作)、特徴パラメータ=$(ひらめき)”、つまり、「人間が、何かをひらめいて何らかの動作をした」ということを示す場合(辞書ID401=006)、場面修飾表現403は、“動作主(人間)空間の上方に“!”という文字($(フォント)、$(大きさ))を表示する”ということを示す。
また、適合条件402が、“動作主@$$(人間)、動作@$(食べる)、特徴パラメータ=$(唖然)”、つまり、「人間が唖然として何かを食べる」ということを示す場合(辞書ID401=007)、場面修飾表現403は、“動作主(人間)が手に持っている$(食事用の小物)または$(食べ物)を落とす”ということを示す。なお、$(食事用の小物)または$(食べ物)は、後述する場面修飾表現最適化知識108により決定される。
また、適合条件402が、“動作主@$$(人間)、動作@$$(動作)、特徴パラメータ=$(唖然)”、つまり、「人間が、唖然として何らかの動作をした」ということを示す場合(辞書ID401=008)、場面修飾表現403は、“動作主(人間)の動きが止まり($(長さ))、顔に線を書く($(量))”、または、“動作主以外の動作主体の動きが止まり($(長さ))、顔に線を書く($(量))”ということを示す。なお、止まり($(長さ))は、後述する場面修飾表現最適化知識108により、動作主または動作主以外の動作主体の動作が止まる時間の長さが決まることを示し、線を書く($(量))は、後述する場面修飾表現最適化知識108により、顔に書かれた線の量が決まることを示す。
このように構成された場面修飾表現辞書106を用いることにより、適合条件402から場面修飾表現403を決定することができる。すなわち、シナリオに対応した場面修飾表現を決定することができる。
なお、場面修飾表現403としては、図4に示す以外であっても、場面全体に与えるものや、動作主空間に与えるもの、動作主に与えるものなど、様々な表現を適用することができる。すなわち、図4に示す場面修飾表現403は、考え得る場面修飾表現のバリエーションの単なる一例であり、図4に示す以外でも、様々な場面修飾表現を用いることができる。以下、場面修飾表現の他のバリエーションについて、さらに説明する。
例えば、場面全体に与える場面修飾表現としては、場面全体を変形するもの(例えば、全体が水墨画風になる、油絵風になる、セピア色になるなど)、場面に対して追加表現を与えるもの(例えば、場面背景にスピードを表す線や「愕然」とした感じを与える線を引く、朝を表現するために鶏の鳴き声を加えるなど)、場面の一部の構成要素を他の構成要素と取り替えるもの(例えば、彼女が走ってくるといきなり風景のバックが砂浜になるなど)がある。
また、動作主302の背景、つまり、動作主空間に場面修飾表現を与えることが考えられる。上記のように、動作主空間とは、動作主体を取り巻く近傍空間であり、表現を与える際に、動作主302を示すオブジェクトに重ねずに、その近傍に表現を加えることを意図した空間である。この動作主空間に対して与える場面修飾表現としては、動作主空間全体に対するもの(例えば、動作主が走る姿の後ろにスピードを表す線を引く、動作主302にスポットライトを当てる、急に止まった時に「キキーッ」という効果音を与えるなど)、動作主302の背景に文字を置くもの(例えば、「アーンアーン」などのオノマトペを直接描きいれるもの、“!”(エクスクラメーションマーク)や“♪”(音符記号)などの記号を描きいれるもの、それ以外に何らかの文字を直接背景に描きいれるものなど)、動作主空間の背景に別オブジェクトを置くもの(例えば、背景に薔薇の花を描く、“豚に真珠”という表層表現が使われた場合に“豚”や“真珠”を描く、“鬼のように忙しい”という表現が使われた場合に“鬼”を出す、吹き出しに疑問符やハートを出すなど)がある。
また、動作主302の顔や身体に与える場面修飾表現としては、顔や身体のパーツを変形するもの(例えば、顔を丸くする、目尻を下げる、目の位置を下げる、鼻の下を伸ばす、手が伸びる、髪が逆立つなど)、顔や身体のパーツの数を変更するもの(例えば、腕や足がたくさん出ているなど)、顔や身体のパーツに追加表現を加えるもの(例えば、顔の一部に「愕然」とした感じを加えるための縦線を引く、目の中にハートや星を描く、派手な量の涙が流れる、ほっぺたを赤くするなど)、顔や身体のパーツを他のものと取り替えるもの(例えば、動作主の顔を他人の顔に取り替えるなど)がある。
また、動作主302の動作に与える場面修飾表現としては、動作主の一部のパーツの動きを変化させる(例えば、手をぐるぐる回すなど)、動作主の動き全体に影響を与えるもの(例えば、動作主体の動きが止まってしまう、スローになる、速く動くなど)がある。
また、動作主302の持ち物や服装に与える場面修飾表現としては、動作主の持ち物や服装の形状を変化させるもの(例えば、腕時計や帽子を大きく/小さくするなど)、動作主に新たなものを持たせたり、着せたりするもの(例えば、文字を書いたプラカードを持たせる、スキーウェアを着せるなど)がある。
また、生成するアニメーションが3D(Dimension)の場合、つまり、場面修飾が3次元グラフィックスにより実現されている場合においては、シナリオに対応した場面修飾表現は、その投影手法を変化させることにより実現することができる。3Dアニメーションの投影手法を変化させて場面修飾を与える例としては、変形した投影領域を用いるもの(例えば、顔だけをアップにする、ものすごく遠くから撮影するなど)、投影領域を動かすもの(例えば、被写体を中心に画面がぐるぐる回る、遠くから急激にズームインするなど)、撮影時の光源を変えるもの(例えば、光源を地面に置くなど)がある。
これらの場面修飾表現には、場面修飾表現の内容に応じて、$(量)や$(大きさ)などの種々の変数が埋め込まれている場合がある。例えば、上記の例において、場面背景や動作主の顔に線を引く場合は、線の位置や数、太さ、トーンが変数となる。また、動作主の顔や身体のパーツを変形する場合は、その変形量が変数となる。さらに、場面修飾表現が音を伴う場合は、音質や音量が変数となる。これらの変数は、後述するが、場面修飾表現選択部109の処理において確定される。
このように場面修飾表現辞書106は構成されている。
次に、場面修飾表現選択部109について説明する。場面修飾表現選択部109は、場面修飾表現辞書106の適用条件402に適合する場面修飾表現403を選択する。また、場面修飾表現選択部109は、適用条件402に適合する場面修飾表現403が複数ある場合、コンピュータ・グラフィックス・アニメーションの場面情報を場面修飾表現最適化知識108に適用して場面修飾表現の最適化を行う。また、場面修飾表現選択部109は、場面修飾表現403に変数がある場合、場面情報や特徴パラメータを場面修飾表現最適化知識108に適用して場面修飾表現403の最適化を行う。
場面修飾表現選択部109は、場面情報を、アニメーション生成装置111が管理する場面情報格納部112から取得する。具体的には、アニメーション生成装置111は、どのような場面を実際のアニメーションとして生成したかを、場面情報として場面情報格納部112に保存する。すなわち、場面情報は、アニメーションを生成するための場面の構成要素に関する情報である。場面修飾表現選択部109は、場面情報格納部112で保存された場面情報データを、入力データ取得部103を介して取得する。
なお、本実施の形態では、アニメーション生成装置111が場面情報格納部112を持っているが、これに限定されるわけではなく、場面修飾表現生成装置102が場面情報格納部112を持つ形態であってもよい。
次に、場面情報について説明する。
アニメーションなどの視覚的な表現を用いる場合には、注目している文章に記述されていないものも具体的に表現する必要がある。例えば、主人公がどのような服装であるかといった情報は、その情報がさほど重要でない場合には、特に言及されることはない場合が多いが、アニメーションとして表現する場合には何らかの服装で表現する必要がある。また、主人公と副主人公が話をしている場面などでは、アニメーション表現として、主人公のみを表現するのか、話し相手の副主人公も同一の画面に表現するのかなど、様々な表現が考えられる。さらに、主人公が笑っている場面などでは、主人公が実際にはどこにいるのか、また、立っているのか座っているのかといったこともシナリオには書かれないことがあり、実際に表現する場合には表現のバリエーションがある。場面修飾表現は、このような様々なアニメーションの場面修飾表現そのものに対して適用されるものであるため、アニメーションシナリオ生成部111において、どのような場面が表現されたかの情報が必要である。この情報が場面情報である。
場面情報の具体例について、図5(A)〜図5(C)を用いて説明する。図5(A)〜図5(C)は、それぞれ、本実施の形態における場面情報の一例を示す図である。図5(A)〜図5(C)に示すように、場面情報500a〜500cは、例えば、主体(動作主)、場所、小物、および時刻という情報から構成される。場面情報500aは、場面に現れている動作可能な主体物が太郎と花子、場所が公園、場面に表現されている小物が滑り台と鉄棒、時刻が夜であることを示している。また、場面情報500bは、動作可能な主体は花子のみ、場所と小物は場面1と同じ、時刻は昼であることを示しており、場面情報500cは、動作可能な主体は花子と太郎、場所はレストラン、小物はフォーク、時刻は夜であることを示している。
なお、場面情報を構成する情報として、上述した以外の情報を加えてもよい。
次に、場面修飾表現選択部109が使用する場面修飾表現最適化知識108について、図6を用いて説明する。図6は、本実施の形態における場面修飾表現最適化知識の一例を示す図である。
場面修飾表現最適化知識108には、場面情報の内容に応じて使うべき場面修飾表現を選択するための知識、および、場面情報または特徴パラメータに応じて場面修飾表現に埋め込まれている変数の値をどのようにするか決定するための知識が記述されている。
具体的には、場面修飾表現最適化知識108は、知識の識別番号である知識ID601と、知識の適用条件である知識適用条件602と、知識適用条件602に適合した場合に有効な場面修飾表現最適化内容603と、の組からなる。
知識適用条件602は、場面情報や、既に得られている特徴パラメータ203、選択される可能性のある場面修飾表現に対する条件である。図6に記載されている“$(場面)”とは場面情報を、“$(特徴パラメータ)”とは既に得られている特徴パラメータ203を、“$(場面修飾表現)”とは選択される可能性のある場面修飾表現の組をそれぞれ示す。
場面修飾表現最適化内容603は、複数の場面修飾表現の組からどれを優先的に選択すべきであるか、場面修飾表現の中に埋め込まれている変数の値をどのように設定するかという最適化の手法を示したものである。なお、優先的に選択する手法については、複数の内容が記載されている場合、原則的には上に記載されているものほど優先的に適用される。ただし、例外的に必ず適用される手法もある。具体的な動作については、場面修飾表現選択部109の動作の説明において詳細に説明する。
知識ID601が001〜003の知識は、複数の場面修飾表現の組からどれを優先的に選択すべきであるかを示す知識である。知識ID601が004〜006の知識は、場面修飾表現の中に埋め込まれている変数の値をどのように設定するかを示す知識である。知識ID601が007の知識は、複数の場面修飾表現の組からどれを優先的に選択すべきであるかを示す知識と、場面修飾表現の中に埋め込まれている変数の値をどのように設定するかを示す知識との両方を含んでいる。
具体的には、知識適用条件602が“$(場面)の構成主体が1人”、つまり、「場面情報に記述されている主体が1人」の場合(知識ID=001)には、場面修飾表現最適化内容603は、“場面全体に対する表現を優先する”、それができなければ、“動作主または動作主空間に対する表現を優先する”になっている。
また、知識適用条件602が“$(場面)の構成主体が複数”、つまり、「場面情報に記述されている主体が複数」の場合(知識ID=002)には、場面修飾表現最適化内容603は、“動作主以外の動作主体に関する表現があれば優先する”、それができなければ、“動作主または動作主空間に対する表現を優先する”となっている。
また、知識適用条件602が“$(場面修飾表現)に文字適用条件がある”、つまり、「場面修飾表現に文字($フォント)、($大きさ)がある」場合(知識ID=003)には、“◎”が付与された手法は例外的に必ず適用される手法を示しているため、この例では場面修飾表現最適化内容603は、“文字適用を優先する”を例外的に必ず適用することとなっている。
また、知識適用条件602が“$(場面)の時刻が$(昼)”、つまり、「場面情報の時刻が昼」を示す場合(知識ID=004)には、場面修飾表現最適化内容603は、“線の色を濃い色にする”、つまり、「場面修飾表現の線($線種)の部分に濃い色を使用する」となっている。
また、知識適用条件602が“$(場面)の時刻が$(夜)”、つまり、「場面情報の時刻が夜」を示す場合(知識ID=005)には、場面修飾表現最適化内容603は、“線の色を白色にする”、つまり、「場面修飾表現の線($線種)の部分に白い色を使用する」となっている。
また、知識適用条件602が“$(特徴パラメータ)に+がある”場合(知識ID=006)には、場面修飾表現最適化内容603は、“表現するものの$(量)、$(大きさ)、$(長さ)の値を30%増しにする”、つまり、「場面修飾表現の中に$(量)、$(大きさ)、$(長さ)の変数が埋め込まれている場合には、その値を30%増しにする」となっている。
また、知識適用条件602が“$(特徴パラメータ)に++がある”場合(知識ID=007)には、場面修飾表現最適化内容603は、“表現するものの$(量)、$(大きさ)、$(長さ)の値を60%増しにする”、そして、“◎”が付与された手法は例外的に必ず適用される手法を示しているため、この例ではさらに、“適用可能な場面修飾表現が複数あるときには複数選択する”となっている。
場面修飾表現選択部109は、場面修飾表現辞書106を参照して、動作主302、動作303、および特徴パラメータ203に合致する適合条件402を選択する。そして、選択した適合条件402、場面修飾表現最適化知識108、場面情報500、および特徴パラメータ203に対応する場面修飾表現403を最適化して出力する。
このように場面修飾表現生成装置102は構成されている。
次に、アニメーション生成装置111について説明する。
アニメーション生成装置111は、場面修飾表現生成装置102から、動作主、動作、および場面修飾表現をそれぞれ入力し、入力した動作主に対する動作主データと、入力した動作に対する動作データと、入力した場面修飾表現に対する場面修飾表現データとを用いて、アニメーションを生成する。
動作主データは動作主データ記憶装置113に、動作データは動作データ記憶装置114に、場面修飾表現データは場面修飾データ記憶装置115にそれぞれ記憶されている。動作主データは、動作主を示す座標データやテクスチャーデータであり、動作データは動作主を動かすためのマトリクスデータである。また、場面修飾表現データは、場面修飾表現を実現するための、画像データやテキストデータ、音声データなどである。
なお、動作主データ記憶装置113、動作データ記憶装置114、および場面修飾データ記憶装置115は、それぞれコンピュータ・グラフィックス・アニメーション作成システム100の外部にあっても、内部にあってもよい。
以上のようにコンピュータ・グラフィックス・アニメーション作成システム100は構成されている。
次に、コンピュータ・グラフィックス・アニメーション作成システム100の動作について説明する。
まず、アニメーションシナリオ生成装置101の動作について、図7を用いて説明する。図7は、図1に示すアニメーションシナリオ生成装置の動作の一例を示すフローチャートである。
まず、アニメーションシナリオ生成装置101に、コンピュータ・グラフィックス・アニメーション作成システム100に対して入力された、利用者がアニメーション化したいシナリオ、例えば、「花子は力の限り走った。」を入力する(ST701)。
次に、S701で入力したシナリオ301から、動作主302および動作303に関する情報を抽出する。例えば、「花子は力の限り走った。」というシナリオ301に対しては、動作主として$(花子)を、動作として$(走る)をそれぞれ抽出する(ST702)。
そして、S702で抽出した動作主302および動作303に関する情報を、ST701で入力したシナリオ301とあわせて場面修飾表現生成装置102に出力する(ST703)。
なお、アニメーションシナリオ生成装置101が用いる自然言語解析の手法や、語彙辞書の内容については、一般的に行われているものを流用すればよいため、その説明を省略する。
また、「花子は力の限り走った。」の動作は自動詞であって、目的格を取らないが、動作が目的格を取る他動詞の場合、例えば、シナリオ301が、「花子はたくさんケーキを食べた。」の場合には、動作主として$(花子)を、動作として$(食べる)を、$(食べる)の対象物として$(ケーキ)をそれぞれST701で入力したシナリオ301とともに場面修飾表現生成装置102に出力する。
以上のように、アニメーションシナリオ生成装置101は、シナリオ301から生成した動作主302および動作303の情報ならびにシナリオ301を場面修飾表現生成装置102に出力する。
次に、場面修飾表現生成装置102の動作について、図8のフローチャートを用いて説明する。図8は、図1に示す場面修飾表現生成装置の動作の一例を示すフローチャートである。
まず、入力データ取得部103で、アニメーションシナリオ生成装置101から送られてきた、動作主および動作の情報ならびに利用者が入力したシナリオをそれぞれ入力する。入力されたシナリオは、特徴パラメータ抽出部104に送られる(ST801)。
次に、入力データ取得部103で、場面情報格納部112に格納された場面情報を入力する(ST802)。
次に、特徴パラメータ抽出部104で、単語特徴辞書105を参照し、ST801で入力した動作主および動作の情報ならびにシナリオについて順に単語202に当てはめ、当てはまる単語202に対応する特徴パラメータ203をそれぞれ抽出する。抽出された各単語202に対応する特徴パラメータ203は、場面修飾表現選択部109に出力される(ST803)。
次に、場面修飾表現選択部109で、ST801で入力した動作主および動作の情報ならびにST803で抽出した特徴パラメータ203をそれぞれ入力し、場面修飾表現辞書106を参照して、入力した動作主および動作の情報ならびに特徴パラメータ203に合致する適合条件402を選択し、選択した適応条件402に対応する場面修飾表現403を選択する(ST804)。
また、場面修飾表現選択部109で、場面修飾表現最適化知識108を参照し、ST802で取得した直前の場面の場面情報、複数選択された場面修飾表現、およびST803で抽出した特徴パラメータに適合するすべての知識適用条件602を抽出し、抽出した知識適用条件602に対応する場面修飾表現最適化内容603をすべて参照し、適用可能な場面修飾表現最適化内容の集合をそろえておく。
次に、ST804で選択した場面修飾表現403が複数存在する場合には(ST805:YES)、場面修飾表現選択部109で、そろえておいた適用可能な場面修飾表現最適化内容のうち、複数の場面修飾表現の組からどれを優先的に選択すべきであるかを示す知識を用いて、S804で選択した複数の場面修飾表現403のうちどれを適用すべきか決定し(ST806)、ST807の処理に移行する。
一方、ST804で選択した場面修飾表現403が複数存在しない場合には(ST805:NO)、ST806の処理を行わずにST807の処理に移行する。
次に、場面修飾表現選択部109で、ST804で選択した場面修飾表現403に変数が含まれているかどうかを判断する(ST807)。この判断の結果として、変数が含まれていると判断した場合には(ST807:YES)、場面修飾表現選択部109で、そろえておいた適用可能な場面修飾表現最適化内容のうち、場面修飾表現の中に埋め込まれている変数の値をどのように設定するかを示す知識を用いて、選択した場面修飾表現403の中に含まれている変数を何にするかを決定し(ST808)、ST809の処理に移行する。
一方、ST804で選択した場面修飾表現403に変数が含まれていない場合には(ST807:NO)、ST808の処理を行わずにST809の処理に移行する。
最後に、データ出力部110から、場面修飾表現選択部109で選択した場面修飾表現を出力する(ST809)。
次に、場面修飾表現生成装置102が場面修飾表現を生成する処理の具体例について、図9を用いて説明する。図9は、本実施の形態において図3に示すシナリオに場面情報を付与した際に最終的に得られる場面修飾表現の例を示す図である。
例えば、シナリオ301が「花子は急いで走った。」、場面情報が500bの場合を考える。
この場合には、入力データ取得部103は、動作主302として$(花子)、動作303として$(走る)、シナリオ301、および場面情報500bを入力する(ST801、ST802)。ここで、シナリオ301中の「急いで」は、単語特徴辞書105のNo.1のエントリの単語202「急いで」に当てはまり、特徴パラメータ抽出部104は、特徴パラメータ203として$(急ぎ)を抽出する(ST803)。次に、場面修飾表現選択部109は、場面修飾表現辞書106を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(走る)というデータ、および特徴パラメータ203としての$(急ぎ)に合致する適合条件402(辞書ID401=001)を抽出し、適合条件402に対応する場面修飾表現403として「場面全体に走る線($(線種))を引く」、「動作主空間の後ろに線($(量)、$(線種))を引く」、および「動作主の顔が歯を食いしばった顔」の3つを選択する(ST804)。
そして、場面修飾表現選択部109は、場面修飾表現最適化知識108を参照し、場面情報500b、複数選択された場面修飾表現403、および特徴パラメータ203としての$(急ぎ)に適合する知識IDを探す。この場合、場面情報500bを構成する主体は花子1人であるため、知識ID601が001のケースが適合する。また、場面情報500bでは時刻が$(昼)であるため、知識ID601が004のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「場面全体に対する表現を優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を濃い色にする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
次に、場面修飾表現選択部109は、場面修飾表現403が複数選択されたので(ST805:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識(「場面全体に対する表現を優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」)を用いて、場面修飾表現403のうち1つを選択する。まず、場面修飾表現選択部109は、「場面全体に対する表現を優先する」という知識を適用できるかどうかを調べる。複数選択された場面修飾表現403は、「場面全体に走る線($(線種))を引く」、「動作主空間の後ろに線($(量)、$(線種))を引く」、および「動作主の顔が歯を食いしばった顔」の3つであるが、この中には、「場面全体に走る線($(線種))を引く」という「場面全体に対する表現」が存在する。このため、場面修飾表現403としては、「場面全体に対する表現を優先する」を適用した結果として、「場面全体に走る線($(線種))を引く」を選択する(ST806)。なお、複数選択された場面修飾表現403の中に、「場面全体に対する表現」がない場合には、その次の「動作主または動作主空間に対する表現を優先する」という条件を適用して、複数選択された場面修飾表現403の中から1つを選択することになる。
次に、場面修飾表現選択部109は、場面修飾表現403に変数があるので(ST807:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識(「$(線種)を濃い色にする」)を用いて、「場面全体に走る線(黒)を引く」という場面修飾表現403を生成し(ST808)、出力(ST809)する。
次に、シナリオ301が「花子はすごく急いで走った。」、場面情報が500aの場合を考える。
この場合、入力データ取得部103は、動作主302として$(花子)、動作303として$(走る)、シナリオ301、および場面情報500aを入力する(ST801、ST802)。ここで、シナリオ301中の「すごく急いで」は、単語特徴辞書105のNo.1およびNo.2のエントリの単語202に当てはまるので、特徴パラメータ抽出部104は、特徴パラメータ203として$(急ぎ+)を抽出する(ST803)。次に、場面修飾表現選択部109は、場面修飾表現辞書106を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(走る)というデータ、および特徴パラメータ203としての$(急ぎ)に合致する適合条件402(辞書ID401=001)を抽出し、適合条件402に対応する場面修飾表現403として、「場面全体に走る線($(線種))を引く」、「動作主空間の後ろに線($(量)、$(線種))を引く」、および「動作主の顔が歯を食いしばった顔」の3つを選択する(ST804)。
場面修飾表現選択部109は、場面修飾表現最適化知識108を参照し、場面情報500a、複数選択された場面修飾表現403、および特徴パラメータ203としての$(急ぎ+)に適合する知識IDを探す。この場合、場面情報500aを構成する主体は太郎と花子の2人であるため、知識ID601が002のケースが適合する。また、場面情報500aでは時刻が$(夜)であるため、知識ID601が005のケースが適合する。また、特徴パラメータ203としての$(急ぎ+)に記号“+”が含まれているため、知識ID601が006のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」、という複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を30%増しにする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
次に、場面修飾表現選択部109は、場面修飾表現403が複数選択されたので(ST805:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識(「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」)を用いて、場面修飾表現403のうち1つを選択する。まず、場面修飾表現選択部109は、「動作主以外の動作主体に関する表現があれば優先する」という知識を適用できるかどうかを調べる。複数選択された場面修飾表現403は、「場面全体に走る線($(線種))を引く」、「動作主空間の後ろに線($(量)、$(線種))を引く」、「動作主の顔が歯を食いしばった顔」の3つであるが、この中には、動作主以外の動作主体、この場合には太郎に関する表現がないため、適用できない。次に、「動作主または動作主空間に対する表現を優先する」という知識を適用できるかどうかを調べる。すると、「動作主空間の後ろに線($(量)、$(線種))を引く」という「動作主空間に対する表現」が存在する。このため、場面修飾表現403としては、「動作主または動作主空間に対する表現を優先する」を適用した結果として、「動作主空間の後ろに線($(量)、$(線種))を引く」を選択する(ST806)。
次に、場面修飾表現選択部109は、場面修飾表現403に変数があるので(ST807:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識(「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を30%増しにする」)を用いて、「動作主空間の後ろに線($(量)、$(線種))を引く」という場面修飾表現403のうち、$(線種)の内容を白色に、また、$(量)を30%増しに決定する。この結果、「$(花子)の動作主空間に走る線(白)を30%増しで引く」という場面修飾表現403を生成し(ST808)、出力(ST809)する。
このように、場面修飾表現403に含まれる種別を示す変数(線($(線種)))を、場面情報に基づいて最適化することが可能となる。また、場面修飾表現403に含まれる値を示す変数(例えば、$(量)、$(大きさ)、$(長さ))を、特徴パラメータ203に含まれる強調度を示す値(+)に基づいて最適化することが可能となる。この結果、特徴パラメータ203に適切な表現を与えることができる。
次に、シナリオ301が「花子は力の限り走った。」、場面情報が500aの場合を考える。
この場合には、入力データ取得部103は、動作主302として$(花子)、動作303として$(走る)、シナリオ301、および場面情報500aを入力する(ST801、ST802)。ここで、シナリオ301中の動作303である$(走る)は、移動動作であるため、単語特徴辞書105のNo.3のエントリの単語202「力の限り@$$(移動動作)」に当てはまり、特徴パラメータ抽出部104は、特徴パラメータ203として$(急ぎ++)を抽出する(ST803)。次に、場面修飾表現選択部109は、場面修飾表現辞書106を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(走る)というデータ、および特徴パラメータ203としての$(急ぎ++)に合致する適合条件402(辞書ID401=001)を抽出し、適合条件402に対応する場面修飾表現403として、「場面全体に走る線($(線種))を引く」、「動作主空間の後ろに線($(量)、$(線種))を引く」、および「動作主の顔が歯を食いしばった顔」の3つを選択する(ST804)。
場面修飾表現選択部109は、場面修飾表現最適化知識108を参照し、場面情報500a、複数選択された場面修飾表現403、および特徴パラメータ203としての$(急ぎ++)に適合する知識IDを探す。この場合、場面情報500aを構成する主体は太郎と花子の2人であるため、知識ID601が002のケースが適合する。また、場面情報500aでは時刻が$(夜)であるため、知識ID601が005のケースが適合する。また、特徴パラメータ203としての$(急ぎ++)に記号“++”が含まれているため、知識ID601が007のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」に加え、例外的に優先される「適用可能な場面修飾表現403が複数あるときには複数選択する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を60%増しにする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
次に、場面修飾表現選択部109は、場面修飾表現403が複数選択されたので(ST805:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識(「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」、また、例外的に優先される「適用可能な場面修飾表現403が複数あるときには複数選択する」)を用いて、場面修飾表現403のうち利用するものを選択する。まず、場面修飾表現選択部109は、まずは例外的に優先される「適用可能な場面修飾表現403が複数あるときには複数選択する」という知識を適用できるかどうかを調べる。すると、「場面全体に走る線($(線種))を引く」、「動作主空間の後ろに線($(量)、$(線種))を引く」、および「動作主の顔が歯を食いしばった顔」のすべてを一度には適用できないため、複数選択してもよいという条件のもとに、次に、「動作主以外の動作主体に関する表現があれば優先する」という知識を適用できるかどうかを調べる。複数選択された場面修飾表現403は、「場面全体に走る線($(線種))を引く」、「動作主空間の後ろに線($(量)、$(線種))を引く」、および「動作主の顔が歯を食いしばった顔」の3つであるが、この中には、動作主302である$(花子)以外の動作主体、場面情報500aの場合には$(太郎)に関する表現はないため、「動作主以外の動作主体に関する表現があれば優先する」という知識は適用できないことがわかる。次に、場面修飾表現選択部109は、「動作主または動作主空間に対する表現を優先する」という知識を適用できるかどうかを調べる。複数選択された場面修飾表現403の中には、「動作主空間の後ろに線($(量)、$(線種))を引く」、「動作主の顔が歯を食いしばった顔」という「動作主または動作主空間に対する表現」がある。これら2つは一度に適用できるため、場面修飾表現403としては、「動作主または動作主空間に対する表現を優先する」、「適用可能な場面修飾表現403が複数あるときには複数選択する」を適用した結果として、「動作主空間の後ろに線($(量)、$(線種))を引く」、「動作主の顔が歯を食いしばった顔」の2つを選択する(ST806)。
次に、場面修飾表現選択部109は、場面修飾表現403に変数があるので(ST807:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識(「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を60%増しにする」)を用いて、「動作主空間の後ろに線($(量)、$(線種))を引く」という場面修飾表現403のうち、$(線種)の内容を白色に、また、$(量)を60%増しに決定する。この結果、「$(花子)の動作主空間に走る線(白)を60%増しで引く」、「$(花子)が歯を食いしばる」の2つの場面修飾表現403を生成する。
よって、場面修飾表現選択部109は、「$(花子)の動作主空間に走る線(白)を60%増しで引く」、「$(花子)が歯を食いしばる」の2つを決定し(ST808)、出力する(ST809)。
このように、副詞である「力の限り」と動作を示す「走った」との組み合わせに対しても、適切な特徴パラメータ203を選択でき、この特徴パラメータ203を用いて適切な場面修飾表現403を生成することができる。
次に、シナリオ301が「花子は力の限り泣いた。」、場面情報が500aの場合を考える。
この場合、入力データ取得部103は、動作主302として$(花子)、動作303として$(泣く)、シナリオ301、および場面情報500aを入力する(ST801、ST802)。ここで、シナリオ301中の動作である$「泣く」は感情動作であるため、単語特徴辞書105のNo.4のエントリの単語202「力の限り@$$(感情動作)」に当てはまり、特徴パラメータ抽出部104は、特徴パラメータ203として$(大げさ++)を抽出する(ST803)。次に、場面修飾表現選択部109は、場面修飾表現辞書106を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(泣く)というデータ、および特徴パラメータ203としての$(大げさ++)に合致する適合条件402(辞書ID401=002)を抽出し、適合条件402に対応する場面修飾表現403として、「動作主の顔に涙($(量))を流す」を選択する(ST804)。
場面修飾表現選択部109は、場面修飾表現最適化知識108を参照し、場面情報500a、選択された場面修飾表現403、および特徴パラメータ203としての$(大げさ++)に適合する知識IDを探す。この場合、場面情報500aを構成する主体は太郎と花子の2人であるため、知識ID601が002のケースが適合する。また、場面情報500aでは時刻が$(夜)であるため、知識ID601が005のケースが適合する。また、特徴パラメータ203としての$(大げさ++)に記号“++”が含まれているため、知識ID601が007のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」に加え、例外的に優先される「適用可能な場面修飾表現403が複数あるときには複数選択する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を60%増しにする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
場面修飾表現選択部109は、場面修飾表現403が複数選択されないので(ST805:NO)、ST804で選択した場面修飾表現403に変数があるかどうかを調べ、場面修飾表現403に変数があるので(ST807:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識(「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を60%増しにする」)を用いて、「動作主の顔に涙($(量))を流す」という場面修飾表現403のうち、$(量)を60%増しに決定する。この結果、「$(花子)の涙を60%増しで出す」という場面修飾表現403を生成し(ST808)、出力(ST809)する。
次に、シナリオ301が「花子は号泣した。」、場面情報が500bの場合を考える。
この場合、入力データ取得部103は、動作主302として$(花子)、動作303として$(泣く)、シナリオ301、および場面情報500bを入力する(ST801、ST802)。ここで、シナリオ301中の「号泣」は、単語特徴辞書105のNo.5のエントリの単語202に当てはまるので、特徴パラメータ抽出部104は、特徴パラメータ203として$(大げさ+)を抽出する(ST803)。次に、場面修飾表現選択部109は、場面修飾表現辞書106を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(泣く)というデータ、および特徴パラメータ203としての$(大げさ+)に合致する適合条件402(辞書ID401=002)を抽出し、適合条件402に対応する場面修飾表現403として、「動作主の顔に涙($(量))を流す」を選択する(ST804)。
場面修飾表現選択部109は、場面修飾表現最適化知識108を参照し、場面情報500b、選択された場面修飾表現403、および特徴パラメータ203としての$(大げさ+)に適合する知識IDを探す。この場合、場面情報500bを構成する主体は花子1人であるため、知識ID601が001のケースが適合する。また、場面情報500bでは時刻が$(昼)であるため、知識ID601が004のケースが適合する。また、特徴パラメータ203としての$(大げさ+)に記号“+”が含まれているため、知識ID601が006のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「場面全体に対する表現を優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を濃い色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を30%増しにする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
場面修飾表現選択部109は、場面修飾表現403が複数選択されないので(ST805:NO)、ST804で選択した場面修飾表現403に変数があるかどうかを調べ、場面修飾表現403に変数があるので(ST807:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識(「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を30%増しにする」)を用いて、「動作主の顔に涙($(量))を流す」という場面修飾表現403のうち、$(量)を30%増しに決定する。この結果、「$(花子)の涙を30%増しで出す」という場面修飾表現403を生成し(ST808)、出力(ST809)する。
このように、副詞でなく、「号泣」という副詞的な意味を内包する単語からも、その意味に適した特徴パラメータ203を抽出し、抽出した特徴パラメータ203を用いて場面修飾表現403を生成することができる。
次に、シナリオ301が「花子はすごく泣いた。」、場面情報が500bの場合を考える。
この場合には、入力データ取得部103は、動作主302としての$(花子)、動作303としての$(泣く)、シナリオ301、および場面情報500bを入力する(ST801、ST802)。ここで、シナリオ301中の動作303である$(泣く)は、動作動詞であるため、単語特徴辞書105のNo.6のエントリの単語202「すごく@$$(動作動詞)」に当てはまり、特徴パラメータ抽出部104は、特徴パラメータ203として$(大げさ)を抽出する(ST803)。次に、場面修飾表現選択部109は、場面修飾表現辞書106を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(泣く)というデータ、および特徴パラメータ203としての$(大げさ)に合致する適合条件402(辞書ID401=002)を抽出し、適合条件402に対応する場面修飾表現403「動作主の顔に涙($(量))を流す」を選択する(ST804)。
場面修飾表現選択部109は、場面修飾表現最適化知識108を参照し、場面情報500b、選択された場面修飾表現403、および特徴パラメータとしての203$(大げさ)に適合する知識IDを探す。この場合、場面情報500bを構成する主体は花子1人であるため、知識ID601が001のケースが適合する。また、場面情報500bでは時刻が$(昼)であるため、知識ID601が004のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「場面全体に対する表現を優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を濃い色にする」という場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
場面修飾表現選択部109は、場面修飾表現403が複数選択されないので(ST805:NO)、ST804で選択した場面修飾表現403に変数があるかどうかを調べ、場面修飾表現403に変数があるので(ST807:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識を参照するが、適合するものがないので、場面修飾表現選択部109は、「$(花子)の涙を出す」という場面修飾表現403を生成し(ST808)、出力(ST809)する。
次に、シナリオ301が「花子はわんわん泣いた。」、場面情報が500aの場合について考える。
この場合、入力データ取得部103は、動作主302として$(花子)、動作303として$(泣く)、シナリオ301、および場面情報500aを入力する(ST801、ST802)。ここで、シナリオ中301の「わんわん泣いて」は、単語特徴辞書105のNo.7のエントリの単語202に当てはまるので、特徴パラメータ抽出部104は、特徴パラメータ203として$(大げさ)と$$(オノマトペ)との2つを抽出する(ST803)。次に、場面修飾表現選択部109は、場面修飾表現辞書106を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(泣く)というデータ、特徴パラメータ203($(大げさ)または$$(オノマトペ))に合致する適合条件402(辞書ID401=002、003)を抽出し、適合条件402に対応する場面修飾表現403として、「動作主の顔に涙($(量))を流す」、「動作主空間の上方に$$(オノマトペ)($(大きさ))を表示」を選択する(ST804)。
場面修飾表現選択部109は、場面修飾表現最適化知識108を参照し、場面情報500a、選択された場面修飾表現403、および特徴パラメータ203としての$(大げさ)に適合する知識IDを探す。この場合、場面情報500aを構成する主体は太郎と花子の2人であるため、知識ID601が002のケースが適合する。また、選択された場面修飾表現403の中に文字適用条件があるため、知識ID601が003のケースが適合する。また、場面情報500aでは時刻が$(夜)であるため、知識ID601が005のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」に加え、例外的に優先される「文字適用を優先する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を白色にする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
次に、場面修飾表現選択部109は、場面修飾表現403が複数選択されたので(ST805:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識(「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」に加え、例外的に優先される「文字適用を優先する」)を用いて、場面修飾表現403のうち利用するものを選択する。場面修飾表現選択部109は、まずは例外的に優先される「文字適用を優先する」という知識を適用できるかどうかを調べる。すると、「動作主空間の上方に$$(オノマトペ)($(大きさ))を表示」という「文字適用」に対する表現が存在する。このため、場面修飾表現403としては、「文字適用を優先する」を適用した結果として、「動作主空間の上方に$$(オノマトペ)($(大きさ))を表示」を選択する(ST806)。
次に、場面修飾表現選択部109は、場面修飾表現403に変数があるので(ST807:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識を参照するが、適合するものがないので、「$(花子)の動作主空間の上方に“わんわん”という文字を表示」という場面修飾表現403を生成し(ST808)、出力(ST809)する。
このように、「わんわん」というオノマトペが入力された際にも、このオノマトペを表示することにより、入力されたオノマトペを適切に、かつ強く示す場面修飾表現403を生成することができる。
次に、シナリオ301が「花子は悲鳴を上げた。」、場面情報が500aの場合を考える。
この場合には、入力データ取得部103は、動作主302として$(花子)、動作303として$(叫ぶ)、シナリオ301、および場面情報500aを入力する(ST801、ST802)。ここで、シナリオ301中の「悲鳴を上げる」は、単語特徴辞書105のNo.8のエントリの単語202に当てはまるので、特徴パラメータ抽出部104は、特徴パラメータ203として$(恐怖++)を抽出する(ST803)。次に、場面修飾表現選択部109は、場面修飾表現辞書106を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(叫ぶ)というデータ、および特徴パラメータ203としての$(恐怖++)に合致する適合条件402(辞書ID401=004)を抽出し、適合条件402に対応する場面修飾表現403として、「動作主の髪の毛を逆立てる」、「動作主空間の上方に“こわいっ”という文字($(フォント)、$(大きさ))を表示する」を選択する(ST804)。
場面修飾表現選択部109は、場面修飾表現最適化知識108を参照し、場面情報500a、複数選択された場面修飾表現403、および特徴パラメータ203としての$(恐怖++)に適合する知識IDを探す。この場合、場面情報500aを構成する主体は太郎と花子の2人であるため、知識ID601が002のケースが適合する。また、選択された場面修飾表現403の中に文字適用条件があるため、知識ID601が003のケースが適合する。また、場面情報500aでは時刻が$(夜)であるため、知識ID601が005のケースが適合する。また、特徴パラメータ203としての$(恐怖++)に記号“++”が含まれているため、知識ID601が007のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」に加え、例外的に優先される「文字適用を優先する」および「適用可能な場面修飾表現403が複数あるときには複数選択する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を60%増しにする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
次に、場面修飾表現選択部109は、場面修飾表現403が複数選択されたので(ST805:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識(「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」に加え、例外的に優先される「文字適用を優先する」、および、「適用可能な場面修飾表現403が複数あるときには複数選択する」)を用いて、場面修飾表現403のうち利用するものを選択する。場面修飾表現選択部109は、まずは例外的に優先される「適用可能な場面修飾表現403が複数あるときには複数選択する」という知識を適用できるかどうかを調べる。すると、「動作主の髪の毛を逆立てる」、「動作主空間の上方に“こわいっ”という文字($(フォント)、$(大きさ))を表示する」は同時に適用できるため、両方を場面修飾表現403として選択する。
次に、場面修飾表現選択部109は、場面修飾表現403に変数があるので(ST807:YES)、上述した処理において抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識(「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を60%増しにする」)を用いて、「動作主空間の上方に“こわいっ”という文字($(フォント)、$(大きさ))を表示する」という場面修飾表現403のうち、$(大きさ)を60%増しに決定する。$(フォント)については知識がないため適用しない。この結果、「動作主の髪の毛を逆立てる」、「$(花子)の動作主空間の上方に“こわいっ”という文字を60%増しの大きさで表示する」という場面修飾表現403を生成し(ST808)、出力(ST809)する。
次に、シナリオ301が「花子はひらめいた(「ひらめいた」のフォントが他の文字のフォントが大きい)。」、場面情報が500cの場合を考える。
この場合には、入力データ取得部103は、動作主302として$(花子)、動作303として$(手を叩く)、シナリオ301、および場面情報500cを入力する(ST801、ST802)。ここで、シナリオ301中に「ひらめいた」があり、かつ「ひらめいた」のフォントが他の文字のフォントより大きいため、このことは、単語特徴辞書105のNo.9、10のエントリの単語202にあてはまるので、特徴パラメータ抽出部104は、特徴パラメータ203として、$(ひらめき+)および“Add(+、$$特徴パラメータ)”を抽出する(ST803)。次に、場面修飾表現選択部109は、場面修飾表現辞書106を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(手を叩く)というデータ、および特徴パラメータ203としての$(ひらめき+)に合致する適合条件402(辞書ID401=005、006)を抽出し、適合条件402に対応する場面修飾表現403として、「動作主の$(手を叩く)の音を出し($(大きさ))、大きい音が出る線($(量))を書く」、「動作主空間の上方に“!”という文字($(フォント)、$(大きさ))を表示する」を選択する(ST804)。
場面修飾表現選択部109は、場面修飾表現最適化知識108を参照し、場面情報500c、複数選択された場面修飾表現403、および特徴パラメータ203としての$(ひらめき+)に適合する知識IDを探す。この場合、場面情報500cを構成する主体は太郎と花子の2人であるため、知識ID601が002のケースが適合する。また、選択された場面修飾表現403の中に文字適用条件があるため、知識ID601が003のケースが適合する。また、場面情報500cでは時刻が$(夜)であるため、知識ID601が005のケースが適合する。また、特徴パラメータ203としての$(ひらめき+)に記号“+”が含まれているため、知識ID601が006のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」に加え、例外的に優先される「文字適用を優先する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を30%増しにする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
次に、場面修飾表現選択部109は、場面修飾表現403が複数選択されたので(ST805:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識(「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」に加え、例外的に優先される「文字適用を優先する」)を用いて、場面修飾表現403のうち利用するものを選択する。場面修飾表現選択部109は、まずは例外的に優先される「文字適用を優先する」という知識を適用できるかどうかを調べる。すると、「動作主空間の上方に“!”という文字($(フォント)、$(大きさ))を表示する」という「文字適用」に関する表現があるため、これを選択する。
次に、場面修飾表現選択部109は、場面修飾表現403に変数があるので(ST807:YES)、上述した処理において抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識(「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を30%増しにする」)を用いて、「動作主空間の上方に“!”という文字($(フォント)、$(大きさ))を表示する」という場面修飾表現403のうち、$(大きさ)を30%増しに決定する。この結果、「$(花子)の動作主空間の上方に“!” という文字を30%増しの大きさで表示する」という場面修飾表現403を生成し(ST808)、出力(ST809)する。
このように、シナリオ301の文字のフォントを変えることにより、フォントの大きさが変えられた文字に対応する特徴パラメータ203を強調することができる。
次に、シナリオ301が「花子は目が点になった。」、場面情報が500bの場合を考える。
この場合、入力データ取得部103は、動作主302として$(花子)、動作303として$(立つ)、シナリオ301、および場面情報500bを入力する(ST801、ST802)。ここで、シナリオ301中に「目が点になる」があるため、特徴パラメータ抽出部104は、特徴パラメータ203として単語特徴辞書105のNo.11のエントリの$(唖然)を抽出する(ST803)。次に、場面修飾表現選択部109は、場面修飾表現辞書106を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(立つ)というデータ、および特徴パラメータ203としての$(唖然)に合致する適合条件402(辞書ID401=008)を抽出し、適合条件402に対応する場面修飾表現403として、「動作主の動きが止まり($(長さ))、顔に線を書く($(量))」、「動作主以外の動作主体の動きと動作主の動きが止まり($(長さ))、顔に線を書く($(量))」を選択する(ST804)。
場面修飾表現選択部109は、場面修飾表現最適化知識108を参照し、場面情報500b、複数選択された場面修飾表現403、および特徴パラメータ203としての$(唖然)に適合する知識IDを探す。この場合、場面情報500bを構成する主体は花子1人であるため、知識ID601が001のケースが適合する。また、場面情報500bでは時刻が$(昼)であるため、知識ID601が005のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を濃い色にする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
次に、場面修飾表現選択部109は、場面修飾表現403が複数選択されたので(ST805:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識(「場面全体に対する表現を優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」)を用いて、場面修飾表現403のうち利用するものを選択する。まず、場面修飾表現選択部109は、「場面全体に対する表現を優先する」という知識を適用できるかどうかを調べる。複数選択された場面修飾表現403は、「動作主の動きが止まり($(長さ))、顔に線を書く($(量))」、「動作主以外の動作主体の動きと動作主の動きが止まり($(長さ))、顔に線を書く($(量))」の2つであり、場面全体に対する表現がないので、適用できない。次に、「動作主または動作主空間に対する表現を優先する」という知識を適用できるかどうかを調べる。すると、「動作主の動きが止まり($(長さ))、顔に線を書く($(量))」という「動作主」に関する表現があるので、これを選択する。
次に、場面修飾表現選択部109は、場面修飾表現403に変数があるので(ST807:YES)、上述した処理において抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識を参照するが、適合するものがないので、場面修飾表現選択部109は、「$(花子)の動きが止まり、顔に線を書く」という場面修飾表現403を生成し(ST808)、出力(ST809)する。
次に、シナリオ301が「花子は唖然とした。」、場面情報が500cの場合を考える。
この場合には、入力データ取得部103は、動作主302として$(花子)、動作303として$(立つ)、シナリオ301、および場面情報500cを入力する(ST801、ST802)。ここで、シナリオ301中に「唖然」があるため、特徴パラメータ抽出部104は、特徴パラメータとして単語特徴辞書105のNo.12のエントリの$(唖然)を抽出する(ST803)。次に、場面修飾表現選択部109は、場面修飾表現辞書106を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(立つ)というデータ、および特徴パラメータ203としての$(唖然)に合致する適合条件402(辞書ID=008)を抽出し、適合条件402に対応する場面修飾表現403として、「動作主の動きが止まり($(長さ))、顔に線を書く($(量))」、「動作主以外の動作主体の動きが止まり($(長さ))、顔に線を書く($(量))」を選択する(ST804)。
場面修飾表現選択部109は、場面修飾表現最適化知識108を参照し、場面情報500c、複数選択された場面修飾表現403、および特徴パラメータ203としての$(唖然)に適合する知識IDを探す。この場合、場面情報500cを構成する主体は太郎と花子の2人であるため、知識ID601が002のケースが適合する。また、場面情報500cでは時刻が$(夜)であるため、知識ID601が005のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を白色にする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
次に、場面修飾表現選択部109は、場面修飾表現403が複数選択されたので(ST805:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識(「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」)を用いて、場面修飾表現403のうち利用するものを選択する。まず、場面修飾表現選択部109は、「動作主以外の動作主体に関する表現があれば優先する」という知識を適用できるかどうかを調べる。複数選択された場面修飾表現403は、「動作主の動きが止まり($(長さ))、顔に線を書く($(量))」、「動作主以外の動作主体の動きと動作主の動きが止まり($(長さ))、顔に線を書く($(量))」の2つであるが、後者の「動作主以外の動作主体の動きと動作主の動きが止まり($(長さ))、顔に線を書く($(量))」には、動作主以外の動作主体、この場合は太郎に関する表現があるので、これを選択する。
次に、場面修飾表現選択部109は、場面修飾表現403に変数があるので(ST807:YES)、上述した処理において抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識を参照するが、適合するものがないので、場面修飾表現選択部109は、「$(花子)と$(太郎)の動きが止まり、顔に線を書く」という場面修飾表現403を生成し(ST808)、出力(ST809)する。
次に、シナリオ301が「花子は唖然とした。」、場面情報が500cの別の場合を考える。
この場合には、入力データ取得部103は、動作主302として$(花子)、動作303として$(食事をする)、シナリオ301、および場面情報500cを入力する(ST801、ST802)。ここで、シナリオ301中に「唖然」があるため、特徴パラメータ抽出部104は、特徴パラメータ203として単語特徴辞書105のNo.12のエントリの$(唖然)を抽出する(ST803)。次に、場面修飾表現選択部109は、場面修飾表現辞書106を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(食べる)というデータ、および特徴パラメータ203としての$(唖然)に合致する適合条件402(辞書ID401=007)を抽出し、適合条件402に対応する場面修飾表現403として、「動作主が手に持っている$(食事用の小物)または$(食べ物)を落とす」を選択する(ST804)。
場面修飾表現選択部109は、場面修飾表現最適化知識108を参照し、場面情報500c、複数選択された場面修飾表現403、および特徴パラメータ203としての$(唖然)に適合する知識IDを探す。この場合、場面情報500cを構成する主体は太郎と花子の2人であるため、知識ID601が002のケースが適合する。また、場面情報500cでは時刻が$(夜)であるため、知識ID601が005のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を白色にする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
次に、場面修飾表現選択部109は、場面修飾表現403が複数選択されないので(ST805:NO)、変数があるかどうかを調べる(ST807)。場面修飾表現選択部109は、場面修飾表現403に変数があるので(ST807:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識を参照するが、適合するものがない。しかし、場面情報500cより、$(食事用の小物)として$(フォーク)を用いることができることがわかるので、場面修飾表現選択部109は、「$(花子)が$(フォーク)を落とす」という場面修飾表現403を生成し(ST808)、出力(ST809)する。
このようにして、場面修飾表現生成装置102は、入力されたシナリオ301に対して、単語特徴辞書105、場面修飾表現辞書106、および場面修飾表現最適化知識108を用いて、最適な場面修飾表現403を生成し、出力する。
次に、アニメーション生成装置111の動作について、図10を用いて説明する。図10は、図1に示すアニメーション生成装置の動作の一例を示すフローチャートである。
まず、場面修飾表現生成装置102によって得られた場面修飾表現403を入力する(ST901)。次に、アニメーションシナリオ生成装置101で得られた動作主302および動作303に関する情報などを入力する(ST902)。
次に、入力した動作主302に対する動作主データを動作主データ記憶装置113から取得し(ST903)、入力した動作303に対する動作データを動作データ記憶装置114から取得し(ST904)、入力した場面修飾表現403に対する場面修飾表現データを場面修飾表現データ記憶装置115から取得する(ST905)。
次に、ST903〜ST905で取得した、動作主データ、動作データ、および場面修飾表現403を用いて、コンピュータ・グラフィックス・アニメーションを生成し(ST906)、出力する(ST907)。
また、どのような場面を実際のアニメーションとして生成したかの場面情報を場面情報格納部112に出力し、保存する(ST908)。
このように、アニメーション生成装置111は、場面修飾表現403を用いて、アニメーションを生成する。
以上説明したように、本実施の形態によれば、入力されるシナリオの表層表現に含まれている、動作主や動作に対する特徴パラメータを抽出し、それを用いた動作場面の修飾を行うことで、動作主や動作主の動作だけではなく、場面全体までを含む広い範囲に対する場面修飾表現を実現することができる。これにより、シナリオからコンピュータ・グラフィックス・アニメーションを生成する際に、いろいろ入力指示することなく、より豊かな表現力を与えることができるようになる。このように、コンテンツの表現力を容易に向上することができるので、表現技術に乏しいコンテンツ制作初心者でも、表現力豊かなコンピュータ・グラフィックス・アニメーションを生成することができる。
また、本実施の形態によれば、入力されるシナリオに含まれる副詞に限らず、動作主体や動作の内包する意味までを場面修飾的な成分とみなして特徴パラメータを抽出する構成とすることができる。これにより、利用者は、生成後のコンピュータ・グラフィックスによって具体的に行われる表現そのものを指定するのではなく、その表現の与える効果の大きさを企図して文章化を行えばよいので、コンテンツ制作の際に、まずは文章化に集中した作業を行うことができるという利点がある。また、表層表現に含まれるオノマトペを直接場面修飾表現として用いるなど、適用可能な場面修飾表現の種類が増え、コンピュータ・グラフィックスの表現力をより一層向上することができる。
また、本実施の形態によれば、場面修飾表現を直前の場面つまり表現済みの場面の情報である場面情報に基づいて選択することができる。これにより、場面情報に応じた場面修飾表現が得られ、適切な表現により表現力を向上させることができるので、コンピュータ・グラフィックスがちぐはぐな感じを与えないようにすることができる。また、これにより、異なる場面情報が与えられても、同様の効果を持つ他の場面修飾表現を選択できるため、コンテンツ制作の自由度を向上することができる。
(実施の形態2)
実施の形態2は、動作主の性質に関する情報を用いて、場面修飾表現を選択したり最適化する場合である。
図11は、本発明の実施の形態2に係る場面修飾表現生成装置を含むコンピュータ・グラフィックス・アニメーション作成システムの構成の一例を示す図である。なお、図1に示す実施の形態1のコンピュータ・グラフィックス・アニメーション作成システムと同じ構成要素については同一の符号を付し、その説明を省略する。
図11において、コンピュータ・グラフィックス・アニメーション作成システム200は、図1の場面修飾表現生成装置102に代えて場面修飾表現生成装置210を有する。図11の場面修飾表現生成装置210は、図1の場面修飾表現生成装置102の構成において、動作主性質データベース(図11では、「動作主性質DB」と略記する)204をさらに有し、場面修飾表現辞書106に代えて場面修飾表現辞書205を有し、場面修飾表現選択部109に代えて場面修飾表現選択部206を有する。
動作主性質データベース204は、動作主と、動作主の持つ性質(例えば、性格や体格、運動神経など)に関する情報とを対応付けて格納する。シナリオ301に登場する動作主が、動作主性質データベース204に格納されている場合には、この動作主に対応する動作主の性質を用いて、特徴パラメータ203を変化させ、または、場面修飾表現に変数がある場合にその変数の値の強弱を変化させることにより、場面修飾表現の選択および場面修飾表現の最適化が行われる。
動作主性質データベース204に格納された動作主と、動作主の性質との関係について、図12を用いて説明する。図12は、図11に示す動作主性質データベースに格納された動作主302とその性質304の例を示す図である。
図12において、動作主302としての$(花子)に性質304として$(冷静)が対応付けられていることは、花子が冷静であることを示している。また、動作主302としての$(太郎)に性質304として$(泣き虫)が対応付けられていることは、太郎が泣き虫であることを示している。同様に、動作主302としての$(一郎)に性質304として$(笑い上戸)が対応付けられていることは、一郎が笑い上戸であることを示し、動作主302としての$(二郎)に性質304として$(足が速い)が対応付けられていることは、二郎の足が速いことを示している。
次に、場面修飾表現辞書205について、図13を用いて説明する。図13は、本実施の形態における場面修飾表現辞書の一例を示す図である。
場面修飾表現辞書205は、図1の場面修飾表現辞書106が格納する情報に加え、識別番号である辞書ID1301と、辞書項目の適合条件1302と、その条件1302に適合した場合に得られる場面修飾表現1303と、の組を格納する。
適合条件1302は、特徴パラメータ抽出部104が抽出した特徴パラメータ203、動作主302とその性質304および動作303からなる。なお、この例では、動作主302とその性質304とが対応付けられて動作主性質データベース204に格納されているものとして説明する。ここで、動作主302が動作主性質データベース204に格納されていない場合、適合条件1302は、特徴パラメータ203、動作主302、および動作303からなり、図4の適合条件402と同じものとなり、本実施の形態の場面修飾表現生成処理は、実施の形態1の場面修飾表現生成処理と同様のものとなる。
動作主302は、動作主302が人間であるか、動物であるか、また、非生物であるかなどを示す。動作主302の性質304は、上記のように、動作主302の持つ性格や体格、運動神経などの性質に関する情報である。動作303は、走る、泣くなどの具体的な動作を示す場合と、喜ぶ、悲しむなどの、何らかの動作、何らかの状態にあるといったメタな型、つまり、具体的な動作以外の包括的な動作を示す場合がある。特徴パラメータの内容は、場面修飾表現辞書205の適合条件1302においては、特徴パラメータの大きさごとに辞書を分ける必要がない場合には、辞書ID001、辞書ID002および辞書ID004のように、複数のパラメータの大きさを記号“|”でつないで条件として記述することもできる。なお、図中の記号“|”はor条件を示す。
このような場面修飾表現辞書205を用いることにより、例えば、適合条件1302が、“動作主@$$(人間)&動作主has_a_property$(冷静)、動作@$(泣く)、特徴パラメータ=$(大げさ)、$(大げさ+)、または$(大げさ++)”つまり、「冷静な人間が、大げさに泣いている」ということを示す場合、場面修飾表現1303が、“動作主の顔に涙($(量)の20%減)を流す”であることがわかる。
また、適合条件1302が、“動作主@$$(人間)&動作主has_a_property$(泣き虫)、動作@$(泣く)、特徴パラメータ=$(大げさ)、$(大げさ+)、または$(大げさ++)”つまり、「泣き虫な人間が、大げさに泣いている」ということを示す場合、場面修飾表現1303が、“動作主の顔に涙($(量)の20%増)を流す”であることがわかる。
また、適合条件1302が、“動作主@$$(人間)&動作主has_a_property$(笑い上戸)、動作@$(笑う)、特徴パラメータ=$(愉快)”つまり、「笑い上戸な人間が、愉快に笑っている」ということを示す場合、場面修飾表現1303が、“動作主空間の上方に“アハハハ”という文字($(フォント)、$(大きさ))を表示する”であることがわかる。
また、適合条件1302が、“動作主@$$(人間)&動作主has_a_property$(足が速い)、動作@$(走る)、特徴パラメータ=$(煙)”つまり、「足が速い人間が、煙をたてて走っている」ということを示す場合、場面修飾表現1303が、“動作主の足元に煙がたつ”であることがわかる。
このように構成された場面修飾表現辞書205を用いることにより、シナリオに登場する動作主302の性質を反映させた上で、適合条件1302から場面修飾表現1303を決定することができる。
場面修飾表現選択部206は、図1の場面修飾表現選択部109の有する機能に加えて、場面修飾表現辞書205を参照して、特徴パラメータ、ならびに動作主ならびにその性質、および動作の情報に相当する適合条件1302を選択する機能を有する。また、場面修飾表現選択部206は、選択した適合条件1302、場面修飾表現最適化知識108、場面情報500、および特徴パラメータ203に対応する場面修飾表現1303を最適化して出力する。
次に、場面修飾表現生成装置210の動作について説明する。なお、場面修飾表現生成装置210の動作の特徴は、場面修飾表現生成装置102の動作を示す図8のフローチャートのST804にあり、その他の部分の動作は場面修飾表現生成装置102と同様であるため、ST804についてのみ説明し、残りの部分の説明を省略する。
ST804では、場面修飾表現選択部206で、特徴パラメータ抽出部104が抽出した特徴パラメータ203、ならびに動作主302ならびにその性質304、および動作303を入力し、場面修飾表現辞書205を参照して、入力した特徴パラメータ203、ならびに動作主302ならびにその性質304、および動作303に相当する適合条件1302を選択する。そして、選択した適応条件1302、場面修飾表現最適化知識108、場面情報500、および特徴パラメータ203に対応する場面修飾表現1303を選択する。
また、場面修飾表現選択部206で、場面修飾表現最適化知識108を参照し、ST802で取得した直前の場面の場面情報、複数選択された場面修飾表現、ST803で抽出した特徴パラメータに適合するすべての知識適用条件602を抽出し、抽出した知識適用条件602に対応する場面修飾表現最適化内容603をすべて参照し、適用可能な場面修飾表現最適化内容の集合をそろえておく。
次に、場面修飾表現生成装置210が場面修飾表現を生成する処理の具体例について、図14を用いて説明する。図14は、本実施の形態においてテキスト文のシナリオに場面情報を付与した際に最終的に得られる場面修飾表現の例を示す図である。
例えば、シナリオ301が「太郎は力の限り泣いた。」、場面情報が500aの場合を考える。
この場合には、入力データ取得部103は、動作主302として$(太郎)、動作303として$(泣く)、シナリオ301、および場面情報500aを入力する(ST801、ST802)。ここで、シナリオ301中の動作302としての$「泣く」は感情動作であるため、単語特徴辞書105のNo.4のエントリの単語202「力の限り@$$(感情動作)」に当てはまり、特徴パラメータ抽出部104は、特徴パラメータ203として$(大げさ++)を抽出する(ST803)。次に、場面修飾表現選択部206は、場面修飾表現辞書205を参照し、動作主302としての$(太郎)という人間型のデータ、動作主302$(太郎)の性質304としての$(泣き虫)というデータ、動作303としての$(泣く)というデータ、および特徴パラメータ203としての$(大げさ++)に合致する適合条件1302(辞書ID=1301)を抽出し、適合条件1302に対応する場面修飾表現1303として、「動作主の顔に涙($(量)の20%増)を流す」を選択する(ST804)。
場面修飾表現選択部206は、場面修飾表現最適化知識108を参照し、場面情報500a、選択された場面修飾表現403、特徴パラメータ203としての$(大げさ++)に適合する知識IDを探す。この場合、場面情報500aを構成する主体は太郎と花子の2人であるため、知識ID601が002のケースが適合する。また、場面情報500aでは時刻が$(夜)であるため、知識ID601が005のケースが適合する。また、特徴パラメータ203としての$(大げさ++)に記号“++”が含まれているため、知識ID601が007のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」に加え、例外的に優先される「適用可能な場面修飾表現403が複数あるときには複数選択する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を60%増しにする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
場面修飾表現選択部109は、場面修飾表現403が複数選択されないので(ST805:NO)、ST804で選択した場面修飾表現403に変数があるかどうかを調べ、場面修飾表現403に変数があるので(ST807:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現1303の中に埋め込まれている変数の値をどのように設定するかを示す知識(「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を60%増しにする」)を用いて、「動作主の顔に涙($(量))を流す」という場面修飾表現403のうち、$(量)を60%増しに決定する。そして、この場面修飾表現403と、動作主302の性質304により決定された場面修飾表現1303である「動作主の顔に涙($(量)の20%増)を流す」とを組み合わせることにより、「$(花子)の涙を92%増しで出す」という場面修飾表現1303を生成し(ST808)、出力(ST809)する。
次に、シナリオ301が「花子はすごく急いで走った。」、場面情報が500aの場合を考える。
この場合には、入力データ取得部103は、動作主302として$(花子)、動作303として$(走る)、シナリオ301、および場面情報500aを入力する(ST801、ST802)。ここで、シナリオ301中の「すごく急いで」は、単語特徴辞書105のNo.1およびNo.2のエントリの単語202に当てはまるので、特徴パラメータ抽出部104は、特徴パラメータ203として$(急ぎ+)を抽出する(ST803)。次に、場面修飾表現選択部206は、場面修飾表現辞書205を参照し、動作主302としての$(花子)という人間型のデータ、動作303としての$(走る)というデータ、および特徴パラメータ203としての$(急ぎ)に合致する適合条件402(辞書ID401=001)を抽出し、適合条件402に対応する場面修飾表現403として、「場面全体に走る線($(線種))を引く」、「動作主空間の後ろに線($(量)、$(線種))を引く」、「動作主の顔が歯を食いしばった顔」の3つを選択する。また、これと同時に、場面修飾表現選択部206は、動作主302としての$(花子)という人間型のデータ、動作主302$(花子)の性質304としての$(足が速い)というデータ、動作303としての$(走る)というデータ、および特徴パラメータ203としての$(煙)に合致する適合条件1302(辞書ID1301=004)を抽出し、適合条件1302に対応する場面修飾表現1303として、「動作主の足元に煙がたつ」を選択する(ST804)。
場面修飾表現選択部206は、場面修飾表現最適化知識108を参照し、場面情報500a、複数選択された場面修飾表現403、および特徴パラメータ203としての$(急ぎ+)に適合する知識IDを探す。この場合、場面情報を構成する主体は太郎と花子の2人であるため、知識ID601が002のケースが適合する。また、場面情報500aでは時刻が$(夜)であるため、知識ID601が005のケースが適合する。また、特徴パラメータ203としての$(急ぎ+)に記号“+”が含まれているため、知識ID601が006のケースが適合する。その他の知識は適合しない。これらの知識を合わせると、適用可能な場面修飾表現最適化内容は、「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」という、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識と、「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を30%増しにする」という、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識になる。
次に、場面修飾表現選択部206は、場面修飾表現403が複数選択されたので(ST805:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、複数の場面修飾表現403の組からどれを優先的に選択すべきであるかを示す知識(「動作主以外の動作主体に関する表現があれば優先する」、それができなければ、「動作主または動作主空間に対する表現を優先する」)を用いて、場面修飾表現403のうち1つを選択する。まず、場面修飾表現選択部206は、「動作主以外の動作主体に関する表現があれば優先する」という知識を適用できるかどうかを調べる。複数選択された場面修飾表現403は、「場面全体に走る線($(線種))を引く」、「動作主空間の後ろに線($(量)、$(線種))を引く」、「動作主の顔が歯を食いしばった顔」の3つであるが、この中には、動作主以外の動作主体、この場合は太郎に関する表現がないため、適用できない。次に、「動作主または動作主空間に対する表現を優先する」という知識を適用できるかどうかを調べる。すると、「動作主空間の後ろに線($(量)、$(線種))を引く」という「動作主空間に対する表現」が存在する。このため、場面修飾表現403として、「動作主または動作主空間に対する表現を優先する」を適用し、「動作主空間の後ろに線($(量)、$(線種))を引く」を選択する(ST806)。
次に、場面修飾表現選択部206は、場面修飾表現403に変数があるので(ST807:YES)、上述した処理で抽出した適用可能な場面修飾表現最適化内容のうち、場面修飾表現403の中に埋め込まれている変数の値をどのように設定するかを示す知識(「$(線種)を白色にする」、「表現するものの$(量)、$(大きさ)、$(長さ)の値を30%増しにする」)を用いて、「動作主空間の後ろに線($(量)、$(線種))を引く」という場面修飾表現403のうち、$(線種)の内容を白色に、また、$(量)を30%増しに決定する。また、この結果、「$(花子)の動作主空間に走る線(白)を30%増しで引く」という場面修飾表現403を生成し(ST808)、場面修飾表現1303「動作主の足元に煙がたつ」とともに出力(ST809)する。
このようにして、場面修飾表現生成装置210は、入力されたシナリオ301に対して、単語特徴辞書105、場面修飾表現最適化知識108、動作主性質データベース204、場面修飾表現辞書205、および場面修飾表現選択部206を用いて、最適な場面修飾表現403,1303を生成し、出力する。
なお、本実施の形態では、動作主と動作主の性質に関する情報とを対応付けて格納する動作主性質データベース204を設けるようにしたが、これに限定されるものではない。例えば、シナリオ(入力されたテキスト文)の入力情報として動作主および動作主の性質を与え、動作主の性質を反映した場面修飾表現を行うようにしてもよい。この場合、動作主の性質を示す情報を用いた場面修飾表現として、様々な形態が考えられる。
例えば、単語特徴辞書105に含まれる単語の組み合わせとして動作主と動作主の性質とを組み合わせることができる。例えば、“太郎”という動作主を示す単語202に対して、その後ろに移動動作を表す単語が連接している場合には、すごく急いでいることを示す$(急ぎ++)という特徴パラメータ203が対応付けられる。この場合、動作主である太郎の「せっかち」という性質を場面修飾表現に反映することができる。
また、場面修飾表現最適化知識108の知識適用条件602として動作主の性質を用いることもできる。例えば、知識適用条件602が、“動作主$(場面)の構成主体が泣き虫”の場合には、場面修飾表現最適化内容603は、“動作主の動作に「泣く」があればその動作主が流す涙$(量)を30%増しにする”、つまり、「場面修飾表現の中の動作主の動作に“泣く”があり、涙($(量)の変数が含まれている場合には、その値を30%増しにする」となる。このように、動作主の「泣き虫」という性質を場面修飾表現に反映することができる。
なお、本実施の形態では、動作主の性質に関する情報により選択・最適化された場面修飾表現を必ず反映させるようにしたが、本発明はこれに限定されない。例えば、動作主の性質に関する情報を場面修飾表現に反映させるかどうかの判断を、場面修飾表現最適化知識108の知識適用条件602に組み込むようにしてもよい。
なお、本実施の形態では、動作主性質データベース204に格納された動作主の性質を、場面修飾表現選択部109に入力するようにしたが、本実施の形態はこれに限定されない。例えば、動作主性質データベース204を場面修飾表現装置102の外側、さらには、コンピュータ・グラフィックス・アニメーション作成システム200の外側に配置し、動作主性質データベース204に格納された動作主の性質をアニメーションシナリオ生成装置101に入力するようにしてもよい。
このように、本実施の形態では、動作主と動作主の性質に関する情報とを対応付けて格納しておき、格納された動作主がシナリオに登場したときに、その性質を反映した場面修飾を行うことができるため、その場面の構成にとってより適切な表現を与えることができる。
なお、上記各実施の形態では、場面修飾表現生成装置102,210が、場面情報を用いる場合について説明したが、これに限定されるわけではなく、シナリオから得られる動作主および動作の情報、ならびにユーザが入力したテキスト文のシナリオだけを用いて動作場面の修飾を行うようにしてもよい。
また、条件が適合する場面修飾表現が存在しない場合には、適合条件を緩和して場面修飾表現を得るという手法も考えられる。例えば、「花子はわんわん泣いた。」の「花子」が「ゾウ」であった場合、図4の辞書ID002は厳密には適合しないが、あえて面白い表現を行うために、ゾウの表現を擬人化し、ゾウの目から涙をたくさん出すような修飾を行ってもよい。
また、上記各実施の形態では、特徴パラメータを、図2に示すように離散的なキーワードで示したが、複数のキーワードの組み合わせであったり、また、正規化されたベクトルで表現したりする方法も考えられる。
また、上記各実施の形態では、動作主や動作、特徴パラメータ、場面修飾表現、場面修飾表現最適化知識、場面情報などを説明するにあたって、可読性を重視した表現を採用したが、この表現によって、実装時の内部表現を制限するものではない。
また、上記各実施の形態では、特徴パラメータ抽出部104を場面修飾表現生成装置102,210の内部に設けたが、特徴パラメータを抽出する機能を場面修飾表現生成装置102の外部に置くという構成も考えられる。
また、上記各実施の形態では、場面修飾表現選択部109,206において場面修飾表現最適化知識108を用いたが、場面修飾表現辞書106,206の各エントリに複数の場面修飾表現を対応させず、また、変数も含めないように構成する場合には、場面修飾表現最適化知識108を設けずに場面修飾表現を選択することも可能である。
また、上記各実施の形態では、単語特徴辞書105、場面修飾表現辞書106,205、および場面修飾表現最適化知識108は場面修飾表現生成装置102,210の内部に設けたが、外部に置き、必要に応じてネットワークダウンロードするといった構成も可能である。
また、上記各実施の形態では、単語特徴辞書105、場面修飾表現辞書106,205、場面修飾表現および最適化知識108をそれぞれ宣言的に記述しておくようにすることにより、辞書や知識の拡充や訂正が容易であるとともに、他者が用いている場面修飾表現を組み入れるといった構成変更も容易に行うことができるという利点がある。
また、上記各実施の形態では、場面情報をアニメーション生成装置111の出力として場面修飾表現生成装置102,210の入力データ取得部103において取得すると説明したが、場面情報が別途定められうる場合には、そちらを用いてもよい。例えば、入力シナリオに演劇シナリオのト書きのような文章があらかじめ記述されているような場合には、アニメーションシナリオ生成装置101において場面情報を生成し、場面が転換するまでそれを用いるといったような場合が考えられる。
また、上記各実施の形態では、コンピュータ・グラフィックス・アニメーション作成システムにおける場面修飾表現生成の例を説明したが、アニメーションに限らず、コンピュータ・グラフィックスで静止画を生成する場合にも、場面修飾表現辞書を静止画用に改変することで、同じ手法で場面修飾表現を生成することができる。
また、上記各実施の形態では、場面修飾表現生成装置102,210をハードウェアで構成した場合を例にとって説明したが、場面修飾表現生成装置102,210が行う処理をプログラムにし、汎用のコンピュータに行わせる形態であってもよい。
本発明の場面修飾表現生成装置は、コンピュータ・グラフィックスの場面に関する修飾表現である場面修飾表現を適用条件とともに保持する場面修飾表現辞書と、前記場面修飾表現辞書を用いて、与えられたシナリオから得られる動作主および動作の情報ならびに前記シナリオの特徴を示す特徴パラメータに合致する適用条件に対応する場面修飾表現を選択する場面修飾表現選択部と、選択された場面修飾表現を出力するデータ出力部と、を有する構成を採る。
これにより、動作主の動作だけではなく、場面全体までを含む広い範囲に対する場面修飾表現を、シナリオに含まれる動作と動作主、シナリオの保持する特徴から選択することが可能となる。この結果、コンピュータ・グラフィックスの表現力を向上することが容易になる。
好ましくは、上記の場面修飾表現生成装置は、前記コンピュータ・グラフィックスの場面を構成する要素である場面情報に対して使用すべき場面修飾表現を選択するための知識を含む場面修飾表現最適化知識、をさらに有し、前記場面修飾表現選択部は、複数の場面修飾表現が選択された場合、前記場面情報および前記場面修飾表現最適化知識を用いて、前記複数の場面修飾表現から前記場面情報に対して最適な場面修飾表現を選択する。
これにより、場面修飾表現を、場面情報に基づいて最適化することができる。この結果、コンピュータ・グラフィックスがちぐはぐな感じになることを防ぎ、その場面の構成にとってより適切な表現を与えることができる。
また、好ましくは、上記の場面修飾表現生成装置において、前記場面修飾表現は、前記コンピュータ・グラフィックスの場面を構成する要素である場面情報に応じて値が決定される変数を含み、前記場面情報に応じて前記場面修飾表現に含まれる変数の値を決定するための知識を含む場面修飾表現最適化知識、をさらに有し、前記場面修飾表現選択部は、選択された場面修飾表現に変数が含まれている場合、前記場面情報および前記場面修飾表現最適化知識を用いて、選択された場面修飾表現に含まれる変数の値を決定することにより、出力される場面修飾表現を生成する。
これにより、場面修飾表現に含まれる変数を、場面情報に基づいて最適化することが可能となる。この結果、その場面の構成にとってより適切な表現を与えることができる。
また、好ましくは、上記の場面修飾表現生成装置において、前記場面修飾表現は、前記特徴パラメータに応じて値が決定される変数を含み、前記特徴パラメータに応じて前記場面修飾表現に含まれる変数の値を決定するための知識を含む場面修飾表現最適化知識、をさらに有し、前記場面修飾表現選択部は、選択された場面修飾表現に変数が含まれている場合、前記特徴パラメータおよび前記場面修飾表現最適化知識を用いて、選択された場面修飾表現に含まれる変数の値を決定することにより、出力される場面修飾表現を生成する。
これにより、場面修飾表現に含まれる変数を、特徴パラメータに含まれる強調度を示す値に基づいて最適化することが可能となる。この結果、特徴パラメータに適切な表現を与えることができる。
また、好ましくは、上記の場面修飾表現生成装置において、前記場面情報は、前記コンピュータ・グラフィックスの場面を構成する動作主、場所、小物、および時刻の少なくとも1つを含む。
これにより、動作主、場所、小物、および時刻に適した場面修飾表現を生成することができる。
また、好ましくは、上記の場面修飾表現生成装置は、単語または単語の組み合わせと前記単語または単語の組み合わせに対応する特徴パラメータとの組を格納する単語特徴辞書と、前記単語特徴辞書を用いて、前記シナリオに含まれる単語または単語の組み合わせに対応する特徴パラメータを抽出する特徴パラメータ抽出部と、をさらに有する構成を採る。
これにより、特徴パラメータ抽出部は、単語特徴辞書を用いることにより、単語または単語の組み合わせに対応する特徴パラメータを容易に抽出することができる。また、単語特徴辞書には、単語や単語の組み合わせが内包する意味に対する特徴パラメータも対応付けられているので、特徴パラメータ抽出部は、シナリオに内包する意味に対応する特徴パラメータを抽出することができる。
また、好ましくは、上記の場面修飾表現生成装置において、前記場面修飾表現選択部は、前記シナリオに他の単語とフォントの形態が異なる単語が含まれている場合、前記単語の意味を強める場面修飾表現を選択する。
これにより、シナリオに含まれる文字のフォントの形態を変えることにより、フォントの形態が変えられた文字に対応する特徴パラメータを強調することができる。
また、好ましくは、上記の場面修飾表現生成装置において、前記場面修飾表現選択部は、前記シナリオにオノマトペが含まれている場合、前記オノマトペを表示する場面修飾表現を選択する。
これにより、オノマトペが入力された際にも、このオノマトペを表示することにより、入力されたオノマトペを適切に、かつ強く示す場面修飾表現を生成することができる。
また、好ましくは、上記の場面修飾表現生成装置において、前記場面修飾表現は、動作主の身体を変形させる表現を含む。
これにより、動作主の身体を変形させて、動作主に関する場面修飾表現のバリエーションの幅を広げることができる。
また、好ましくは、上記の場面修飾表現生成装置において、前記場面修飾表現は、動作主の持ち物および/または服装に関する表現を含む。
これにより、動作主の持ち物および/または服装に関する表現を変化させて、動作主に関する場面修飾表現のバリエーションの幅を広げることができる。
また、好ましくは、上記の場面修飾表現生成装置において、前記場面修飾表現は、動作主の動作に関する表現を含む。
これにより、動作主の動作をさせて、動作主に関する場面修飾表現のバリエーションの幅を広げることができる。
また、好ましくは、上記の場面修飾表現生成装置において、前記場面修飾表現は、動作主の背景に関する表現を含む。
これにより、動作主そのものに関する表現には変化を与えずに、動作主の背景に関する表現を変化させて、動作主を含む全体の場面修飾表現を行うことができる。
また、好ましくは、上記の場面修飾表現生成装置において、前記場面修飾表現は、場面全体に関する表現を含む。
これにより、場面全体に関する場面修飾表現を与えて、包括的な場面修飾表現を行うことができる。
また、好ましくは、上記の場面修飾表現生成装置において、場面が3次元グラフィックスで構成される場合、前記3次元グラフィックスの投影手法に関する表現を含む。
これにより、3次元グラフィックスの投影手法を変化させて場面修飾表現を与えて、よりバリエーションに富んだ場面修飾表現を行うことができる。
本発明のコンピュータ・グラフィックス作成システムは、与えられたシナリオから動作主および動作の情報を抽出し、前記シナリオとともに出力するシナリオ生成装置と、前記シナリオ生成装置から前記動作主および動作の情報ならびに前記シナリオを入力し、コンピュータ・グラフィックスの場面に関する修飾表現である場面修飾表現を出力する上記の場面修飾表現生成装置と、前記場面修飾表現生成装置から出力された場面修飾表現を用いて、コンピュータ・グラフィックスを生成するグラフィックス生成装置と、を有する構成を採る。
これにより、動作主の動作だけではなく、場面全体までを含む広い範囲に対する場面修飾表現を、シナリオに含まれる動作主とその動作、およびシナリオの保持する特徴から選択して生成した場面修飾表現を用いてコンピュータ・グラフィックスを生成することができる。
本明細書は、2004年11月30日出願の特願2004−347840に基づく。この内容はすべてここに含めておく。