(57)【要約】【課題】少ないデータでバーチャルアクターなどの制御対象を自然で滑らかに動かし、そのためのデータ設定を効率よくできること。【解決手段】基本フレームのノードデータと、ノード間の遷移方向、フレームレート等のエッジデータを保存し、一のノードから他のノードへ遷移する際、エッジデータによって定まるモーフィング処理によって他のノードへ遷移する実行手段を備える。またデータ入力の際、ノードアイコン同士をエッジアイコンで接続することによって効率的なデータ入力を可能とし、モーフィング処理のデータ登録においては画像ペアの一の画像対して特徴線データをマニュアル入力した後、当該特徴線両端近傍の特徴点を探索して、特徴線データを自動補正する。
2008023819.tif 000002
【特許請求の範囲】
【請求項１】
基本状態（ノード）に関するノードデータと、任意の一のノードから他のノードへ状態が遷移するときの動きを指定するためのエッジデータとを用いて制御対象を動作させるコンピュータシステムであって、
前記エッジデータは、ノード間の遷移方向、および遷移時間もしくはフレームレートを含み、
当該エッジデータに基づいて前記一のノードから前記他のノードへ状態を遷移させる際、該エッジデータによって定まる中間状態を経て他のノードへ遷移させる実行手段を備えたことを特徴とするコンピュータシステム。
【請求項２】
入力された基本フレームとなる画像を用いてノードアイコンを生成すると共に当該ノードアイコンをコンピュータ画面上に表示する処理と、ノードアイコン同士の接続関係を表すアイコンであって方向性を識別可能なエッジアイコンにより前記ノードアイコン同士が接続されることによって該エッジアイコンに対応するエッジデータと前記接続されたノードアイコンに対応するノードデータとの接続情報を登録する処理とを実行する基本データ入力手段を備えたことを特徴とする請求項１記載のコンピュータシステム。
【請求項３】
前記接続情報は、ノードに関連付けられた画像の移動情報を含み、
選択された２つの画像からなる画像ペアのうち、一の画像対して特徴線データを入力する処理と、当該特徴線両端近傍の特徴点を探索して、前記入力された特徴線データを自動補正する処理と、自動補正された特徴線データを用いて順次他の画像ペアの特徴線データを演算する処理と、特徴線データの動きから各画像間のピクセル単位の前記移動情報を演算する処理とを実行する編集手段を備えたことを特徴とする請求項２記載のコンピュータシステム。
【請求項４】
前記実行手段は、各ノードに関連付けられた画像の前記移動情報をもとにモーフィング処理によって前記画像間の中間画像を生成することを特徴とする請求項３記載のコンピュータシステム。
【請求項５】
前記エッジデータは、外部入力とジャンプ先のノードとの対応関係を含み、前記実行手段は、エッジデータに基づいてノードを遷移する際、外部入力があったときは当該外部入力に対応するジャンプ先のノードに対応する状態遷移を実行することを特徴とする請求項１に記載のコンピュータシステム。
【請求項６】
外部入力があった場合は、トリガフラグをセットする手段を備え、
前記実行手段は、該トリガフラグがセットされているか否かを判定し、セットされている場合は、該トリガフラグがセットされていないときよりも短い遷移時間もしくはフレームレートを用いることを特徴とする請求項５に記載のコンピュータシステム。
【請求項７】
前記ノードデータは、外部入力があった場合に、当該ノードにジャンプ先が無い場合に接続するための高速用エッジデータと関連付けられており、
前記実行手段は、外部入力があった場合は、該ノードと関連付けられている他のエッジデータに優先して前記高速用エッジデータに基づいて状態遷移を実行することを特徴とする請求項５に記載のコンピュータシステム。
【請求項８】
前記基本フレームは発話状態を示すフレームを含み、
前記エッジデータは、音声データおよび遷移時間を含み、
前記実行手段は、前記基本フレームに該当する画像を表示する一方で前記エッジデータをもとに対応する音声データを出力すると共に当該画像を当該遷移時間でモーフィング処理を実行することによって変化させることを特徴とする請求項２に記載のコンピュータシステム。
【請求項９】
前記コンピュータシステムは、通信ネットワークを介して繋がるサーバ装置と端末装置からなり、
前記サーバ装置は、前記通信ネットワークを介して前記実行手段を前記端末装置へ送信し、
前記実行手段は前記端末装置上でノードデータを読み込み当該ノードに関連付けられた画像を前記端末装置の画面に表示すると共にエッジデータに基づく遷移を実行することを特徴とする請求項１に記載のコンピュータシステム。
【請求項１０】
コンピュータを用いて動作を制御する方法であって、
制御対象の基本状態のデータをノードデータとして保存する処理と、
任意の一のノードから他のノードへ状態が移行するときの動きを指定するデータであってノード間の遷移方向、およびフレームレートもしくは遷移時間を含むデータをエッジデータとして保存する処理と、
前記ノードデータおよび前記エッジデータを用いて作成される中間状態を経て、一のノードから前記フレームレートでもしくは前記遷移時間をかけて他のノードへ遷移させる実行処理と、
を含むことを特徴とする動作制御方法。
【請求項１１】
前記実行処理は、前記エッジデータの終端が複数のノードに関連付けられている場合は、該複数のノードから直前のノードを除いてランダムに一のノードを選択し、前記一のノードへ状態を遷移させることを特徴とする請求項１０記載の動作制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータによって自然で滑らかな動作を実現する技術に係り、たとえばロボットやコンピュータ上の仮想人物、仮想動物（以下、バーチャルアクターという）などのリアルタイム制御を実行するコンピュータシステムおよび動作制御方法に関する。
【背景技術】
【０００２】
従来、コンピュータ上でバーチャルアクターを動かす場合は、再生される全フレームを予め計算し、Flash（登録商標）ムービーなどの動画制作アプリケーションに内蔵しておくという手法が採られている。これは、フィルムやVTRと同様に離散的フレームを全部、メモリやハードディスク上に存在させておく方法である。【０００３】
しかし、この手法によると、たとえば、１秒の動画を作成するのに、通常２０〜３０フレームを要し、画質については、ビデオで動画を内蔵する場合ビデオエンコーディングの際に画質が損なわれる。１フレームのサイズが多くなればなるほど、この差は大きくなる。また、バーチャルアクターが発話するような機能を設ける場合、全ての口の動きを予め撮影しておかなければならず、新しい言葉を喋らせる場合は、新たに撮影しなければならないという問題がある。【０００４】
一方、近年リアルタイムモーフィング技術が発達し、全てのフレームを準備しなくてもある画像から他の画像へ滑らかに変化させることが可能になった。【０００５】
しかしながら、リアルタイムモーフィング技術は、PCにグラフィックアクセラレータや大きなメモリが実装されていることが前提としていて、大部分の人が使っているPCにはまだグラフィックアクセラレータが実装されていない現状では一般的な方法ではない。また、リアルタイムモーフィングを用いて複雑で自然なバーチャルアクターの動きを作る場合、プログラムで書き下すという非効率的な行動デザイン手法しかなく、プログラムの熟練や動画作成アプリケーションなどの熟練を要するため、多くの需要に応えられないという問題があった。【０００６】
また、従来、バーチャルアクターに動作をさせるためのトリガーポイントであるホットスポットを設定することが面倒であった。たとえば、バーチャルアクターの頭をなでると喜ぶとういうような設計にしたい場合、頭が動いていたらその動きに合わせてホットスポットも動かさなければならない。さらに、各パーツの独立した動作をいかに自然に見せるか、あるいは、首をかしげながら笑う、怒る等、いかに少ないデータで複雑な表情を表現するかということも問題となる。このような問題は、コンピュータ上のバーチャルアクターに限らず、一般的なロボットの制御などにも関係するものである。
【特許文献１】特開２００５−１３５０４６号公報
【特許文献２】特開２００３−２０４５３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、上述のかかる事情に鑑みてなされたものであり、単純なグラフィカルな要素の視覚的配置でロボットやバーチャルアクターなどの制御対象を自然で滑らかに動かし、そのためのデータ設定を効率よく行うことのできるコンピュータシステムおよび動作制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明では、非離散的オートマトン技術を提案し、当該技術とモーフィング技術との融合を図ることによって上記目的を達成するものである。【０００９】
以下、非離散的オートマトンによるバーチャルアクターのリアルタイム制御について概要を説明する。【００１０】
非離散的オートマトン：従来のオートマトンは正規表現のマッチングやライフゲームなどのセルオートマトンのように状態遷移は離散的であり、連続的でない。この隣り合う離散的な状態遷移をモーフィングや補間によって連続化したものをここでは非離散的（連続）オートマトンと呼ぶ。【００１１】
本発明はオートマトンの動作を表す有向グラフをアイコンによって視覚的に設計し、その非離散的オートマトンによってリアルタイムバーチャルアクターに自然で滑らかな動きをさせるものである。従来のアニメーションは時間軸（タイムライン上）に画像などの要素を配置し、スクリプティングによって再生順序を制御するというものが主流であった。【００１２】
しかし、このような方法では、一定の流れの動きを作る場合には有効であるが、リアルタイムなバーチャルアクターを作成する上では、有効な方法ではない。これに対してタイムラインではなく、キーフレームをグラフィカルなアイコンでネットワーキング構造を構築し、そのネットワークを非離散的なオートマトンとして連続的な状態遷移を起こさせる本発明はリアルタイムバーチャルアクターを制作するという目的に適合している。【００１３】
「オートマトン」は本来「機械」を抽象化した概念であるので、オートマトンによって"自然"な動き作り出すというのは矛盾した意図のように考えられるが、状態遷移の過程にある程度の(1)ランダムネス、(2)反応の遅延、(3)外部トリガ（外部入力）、(4)強制ルーティングの概念を導入することにより、そのオートマトンに制御されたバーチャルアクターが自然な振舞いをしているように見せることが可能となる。【００１４】
以下、これらの概念の個々について説明する。
(1)ランダムネス：状態遷移の過程にランダムネスを導入することにより、より機械的な運動でないように見せることができる。ある状態が複数の状態と結びついている場合はランダムにその状態を選ぶことによって観察者の予測を裏切ることで自然な動きを作り出す。
(2)反応の遅延：直前のルートにすぐに戻らないようにするために、直前のルートを短時間不活性化することにより、同じ動きの反復を抑え機械的な動きを抑制できる。
(3)外部トリガ：有向グラフのネットワーキングに、外部からのトリガ（マウス、キーボード、音声レベル、音声認識の結果、時間データ、カメラの映像等画像認識の結果）を導入することで、状態遷移をリアルタイムに変化させ、バーチャルアクターの自然な動きを実現する。【００１５】
(4)強制ルーティング：ある条件下（あるノードに達した場合やトリガなどの組み合わせ）で強制ルーティングを行わせ、一見高度な知的振舞いに見える反応を作り出すことができる。例えば、ルーティングのリストに従って口を動かせば、滑らかなリップシンキングを表現できる。【００１６】
非離散的なオートマトンではないシステムでもすべての離散的フレームをメモリなどに持つことにより、リアルタイムの反応をするバーチャルアクターを作ることができる。例えば、フィルムやVTRも離散的フレームのリニアな連結である。しかし、この場合は、膨大なフレームを持たなければならないという欠点があり、また新しいリップシンキングデータで新たな動きを作り出したいというニーズには対応できないという問題がある。これに対し、非離散的オートマトンでは、キーフレームデータしか持っていないのでリアルタイムに任意のフレームレートと順番で生成することで、このような場合に対応することができる。【００１７】
次に、モーフィング技術について説明する。
あるイメージを変形させることを一般にワーピング（warping）というが、二つのイメージがあるとき、一番目のイメージのピクセルが二番目のイメージの別の位置のピクセルと対応していると仮定して、その位置にピクセルが移動する際の画像の変形（ワーピング）をしながら、一番目の画像と二番目の画像をクロスリゾルブすることをモーフィングという。【００１８】
従来のモーフィング技術はいわゆる非リアルタイムモーフィングであった。すなわち、モーフィングの過程の各フレームが計算され出力された後、フィルムやVTRに動画として書き出すことで、動きのある映像として認識された。近年、ワークステーションやPCのグラフィックアクセラレータの能力の向上によって、リアルタイムのモーフィングが可能になった。【００１９】
リアルタイムモーフィングは二つのメッシュを用意し、それらに画像をマッピングし、メッシュを変形させながら透明度を変化させその二つのテクスチャーマップをクロスリゾルブさせて実現している。しかし、最近の動画制作アプリケーション（Flash８<登録商標>）は、Displacement Filterという手法によって、メッシュ変形に拠らないリアルタイムモーフィングを可能にした。【００２０】
Displacement Filterでは、Filter用の画像データのRGBAチャンネルの任意の二つのチャンネルをｘ、ｙチャンネルと指定し、＋−128ドットの移動範囲を指定できる（カラー情報は256であるので、その半分の128に正負の符号をつけられるので）このピクセル移動用の画像データを使って、メッシュ変形に拠らずピクセルの移動を可能にしている。この方法では、画像のすべてのピクセルに対応する移動データが存在することになる。【００２１】
メッシュ変形によるモーフィングでは、メッシュの各頂点の位置の移動による変形を行うので、このメッシュの切り方によってモーフィングの精度とマッピングのデータの大きさが決まる。画像の内容に拠らない均等メッシュでは、メッシュの目を細かくとらなければ画像の質が良くならない。しかし、細かくするとデータ量が大きくなるという問題が生じる。データ量を小さくし、かつ変形の際の画質を良くするためには、画像の内容を考慮したメッシュの切り方とさらには、メッシュのデータ圧縮が必要になる。【００２２】
Feature based morphing はメッシュ変形ではなく、特徴線を画像の中に配置し、この特徴線の影響力を考慮したピクセルの移動をすべてのピクセルで計算し、画像データとして書き出すというものである。ピクセルの移動を計算するため、グラフッックアクセラレータを活用できず、従来はFeature based morphingによるリアルタイムモーフィングはみられなかった。しかし、上述の動画制作アプリケーションのDisplacement Filterにより、リアルタイムのモーフィングが可能になった。この方法はグラフィックアクセラレータを使えないので、フルスクリーンなどの大きな画像では、機種の差によって低速になってしまうが、ブラウザ内で表示される一般的な画像の大きさでは充分実用的である。【００２３】
グラフィックアクセラレータを使ったメッシュ変形によるモーフィングは、グラフィックアクセラレータを搭載していない機種もまだ多い現状ででは、機種間の差を吸収できず、ネット上の一般的なサービスとして普及させることができない。【００２４】
一方、Displacement FilterによるFeature based morphingは、すでに上記の動画制作アプリケーションが90％以上普及している現状を背景に最も実際的なリアルタイムモーフィングの手法といえる。Feature based morphingは各ピクセル毎に移動データを持つため、メッシュ変形法よりもマッピングデータは大きくなるが、最終的なデータを出力する前の、特徴線のデータとしては、メッシュ変形法のデータよりも小さなデータとなるので、オーサリング時やマッピングデータをネット経由で送る際には扱いやすくなるというメリットがある。【００２５】
また、伝送時に制御線データを送り、ローカル側で、ピクセル毎の移動データを生成することで、従来のメッシュデータより比較的小さなマッピングデータを送ることができ、実質的な圧縮効果を期待できる。【００２６】
イメージベースのバーチャルアクターを作成する場合、連続画像をモーフィングする必要があるが、連続画像のモーフィングを手動で行うことは非常に困難である。たとえば人間がトラになるという変形では手動でも容易であるが、同じ顔が少し動くというような場合は、手動で行うと、画像がぶれたようになって画質が落ちたりする場合が多い。したがって、連続画像のモーフィングは自動モーフィングを用いないと実用的ではない。自動モーフィングはアルゴリズムにもよるが、どのアルゴリズムも結局はヒューリスティックなものであるため、誤対応の問題を避けることができず、修正は不可避となる。従来法では、自動モーフィングの結果を各フレームペア毎にチェックし、修正しなければならなかった。その問題点は、各フレームペア毎の修正の結果が他のフレームペアとの間に影響を与えない（継承されない）ということになる。本発明の手順をとることにより、この誤対応と修正の手間を最小限に減らすことができる。【００２７】
具体的には、本発明に係るコンピュータシステムは、基本状態（ノード）に関するノードデータと、任意の一のノードから他のノードへ状態が遷移するときの動きを指定するためのエッジデータとを用いて制御対象を動作させるコンピュータシステムであって、前記エッジデータは、ノード間の遷移方向、および遷移時間もしくはフレームレートを含み、当該エッジデータに基づいて前記一のノードから前記他のノードへ状態を遷移させる際、該エッジデータによって定まる中間状態を経て他のノードへ遷移させる実行手段を備えたことを特徴とする。【００２８】
上記エッジデータは、外部入力とジャンプ先のノードとの対応関係を含み、前記実行手段は、エッジデータに基づいてノードを遷移する際、外部入力があったときは当該外部入力に対応するジャンプ先のエッジデータに対応する状態遷移を実行する。ここで、制御対象とは、コンピュータによって制御可能なものを意味し、汎用コンピュータ上で動作するバーチャルアクターのほか専用コンピュータによるロボット等も含む趣旨である。【００２９】
本発明では、あるノードから複数の状態を経て他のノードへ状態を遷移させる際に、予め複数の状態データを作成しておくのではなく、まず基本となる状態のみをノードデータによって指定し、ノード間の遷移、即ち制御対象の動きについては、エッジデータによって規定する。そして、実行手段は、このエッジデータに基づいて、ノード間の中間状態を作成しつつ他のノードへと遷移させる。【００３０】
好ましくは、外部入力があった場合は、トリガフラグをセットする手段を備え、前記実行手段は、該トリガフラグがセットされているか否かを判定し、セットされている場合は、該トリガフラグがセットされていないときよりも短い遷移時間もしくはフレームレートを用いるようにするのが良い。【００３１】
また、前記ノードデータは、外部入力があった場合に、当該ノードにジャンプ先が無い場合に接続するための高速用エッジデータと関連付けられており、前記実行手段は、外部入力があった場合は、該ノードと関連付けられている他のエッジデータに優先して前記高速用エッジデータに基づいて状態遷移を実行するようにするのが望ましい。【００３２】
すなわち、間接的に目的とする表情への接続がある場合は、その間接的なルートを辿るようにするのである。【００３３】
ある表情から他の表情へ変化させたい場合、ノード間の接続として直接的なエッジの接続を行うと、ノード間の接続情報であるエッジデータが増加しその結果、データ量が増え、視覚的にはエッジデータが錯綜して接続関係が見にくくなる虞があるが、上記のように目的のルートに早く到達させるために、高速ルートを設け、通常は他のルートと同様に所定の遷移時間でモーフィング処理を行い、外部トリガがあって、ある目的のノードに到達させる場合は、高速ルート以外のルートを閉じ、かつ／または、移動速度を上げるようにすることによって、あるノードから他のノードへの直接的な結合を増やすことなく目的のノードへ自然な形で状態遷移を行うことができる。【００３４】
本発明に係るコンピュータシステムがコンピュータ画面上に表示される人物画像に適用される場合は、ノードに関連付けて人物画像の基本フレームを保存する手段を備え、ノードデータとしては、基本フレームにおける特徴箇所に設定された特徴線の位置情報、回転情報、および変形情報を含み、実行手段は各ノードに関連付けられた基本フレームの前記特徴線の対応関係をもとにモーフィング処理によってノード間の中間状態を生成するようにする。【００３５】
このとき、基本フレームとして発音状態を示すフレームを含み、エッジデータは、音声データおよび遷移時間情報を含み、実行手段は、基本フレームに該当する画像を表示する一方でエッジデータをもとに対応する音声データを出力すると共に当該画像を当該遷移時間でモーフィング処理によって変化させるようにする。これによって、画像と音声との同期を自然な形でとることができる。【００３６】
また、本発明に係るコンピュータシステムは、入力された基本フレームとなる画像を用いてノードアイコンを生成すると共に当該ノードアイコンをコンピュータ画面上に表示する処理と、ノードアイコン同士の接続関係を表すアイコンであって方向性を識別可能なエッジアイコンにより前記ノードアイコン同士が接続されることによって該エッジアイコンに対応するエッジデータと前記接続されたノードアイコンに対応するノードデータとの接続情報を登録する処理とを実行する基本データ入力手段を備えたことを特徴とする。【００３７】
たとえばエッジアイコンが矢印で表示される場合、ノード１のアイコンからノード２のアイコンに向けて矢印アイコンが引かれた場合、接続情報は、起点にノード１、終点にノード２を対応付けるものである。【００３８】
本発明では、キーフレームとなる画像をもとにノードアイコンを生成し、方向性を有するエッジアイコンによってノードアイコンを順に接続していくことによって、ノードデータやエッジデータの入力の効率化、入力ミスの削減を図る。【００３９】
また、本発明に係るコンピュータシステムでは、さらに、前記接続情報は、ノードに関連付けられた画像の移動情報を含み、選択された２つの画像からなる画像ペアのうち、一の画像対して特徴線データを入力する処理と、当該特徴線両端近傍の特徴点を探索して、前記入力された特徴線データを自動補正する処理と、自動補正された特徴線データを用いて順次他の画像ペアの特徴線データを演算する処理と、特徴線データの動きから各画像間のピクセル単位の前記移動情報を演算する処理とを実行する編集手段を備えたことを特徴とする。【００４０】
本発明では、最初の画像ペアによって、バーチャルアクターの口、目等の特徴部分に手動で特徴線を引く。その後、これを自動補正して得られた特徴線データを用いて順次他の画像ペアに対しても適用していく。この画像ペアによる手動設定と、その後の自動補正との組み合わせにより、効率のよいマッチング処理が可能となる。【００４１】
また、feature based morphingを採用し、特徴線によってモーフィングに必要なデータを持つため、手動による入力が従来主流であったメッシュ変形法の点による入力よりも手数が少なく、特徴線データはメッシュの頂点データよりも圧倒的に小さいので、データの伝送、処理の点においても優れている。【００４２】
また、本発明に係るコンピュータシステムは、通信ネットワークを介して繋がるサーバ装置と端末装置からなり、前記サーバ装置は、前記通信ネットワークを介して前記実行手段を前記端末へ送信し、前記実行手段は、ノードデータを読み込み該ノードに関連付けられた画像を表示すると共にエッジデータに基づく遷移を実行することを特徴とする。【００４３】
本発明では、実行手段を端末装置側で動作させることによって、外部トリガを端末装置や音声、映像データから入力するようにし、これに伴って必要なデータのみをサーバ装置に要求して受信するようにする。これにより、ネットワークのトラフィックを抑え各端末装置で夫々バーチャルアクターを動作させることができる。【００４４】
本発明に係る動作制御方法は、コンピュータを用いて動作を制御する方法であって、制御対象の基本状態のデータをノードデータとして保存する処理と、任意の一のノードから他のノードへ状態が移行するときの動きを指定するデータであってノード間の遷移方向、およびフレームレートもしくは遷移時間を含むデータをエッジデータとして保存する処理と、前記ノードデータおよび前記エッジデータを用いて作成される中間状態を経て、一のノードから前記フレームレートでもしくは前記遷移時間をかけて他のノードへ遷移させる実行処理と、を含むことを特徴とする。【００４５】
また、本発明に係る動作制御方法では、さらに、前記実行処理は、前記エッジデータの終端が複数のノードに関連付けられている場合は、該複数のノードに直前のノードが含まれていないときは該複数からランダムに一のノードを選択し、該複数のノードに直前のノードが含まれているときは該複数のノードから直前のノードを除いてランダムに一のノードを選択し、前記一のノードへ状態を遷移させることを特徴とする。
【発明の効果】
【００４６】
以上の如く、本発明によれば、少ないデータでロボットやバーチャルアクターなどの制御対象を自然で滑らかに動かし、このためのデータ設定を効率よく行うことが可能となる。特にデータ設定においては、エッジとノードをグラフィカルに結ぶことによってその行動を定義できるのでプログラミングやアプリケーションの未熟練者も作成することができ量産の要求に応えることができる。
【発明を実施するための最良の形態】
【００４７】
以下、本発明の実施の形態を説明する。
図１は第１の実施の形態によるコンピュータシステムの機能ブロック図である。【００４８】
ここで、コンピュータシステム１は、データを入力するキーボードやマウス等の入力部１０、入力されたデータをもとに演算処理を実行する処理部３０、処理されたデータを表示する表示部２０、およびデータを記憶する記憶部５０から構成されている。【００４９】
また、処理部３０は、画像データ、ノードデータ、エッジデータなどの基本データを入力する基本データ入力手段３１、画像データ間の移動情報を設定する編集手段３２、入力されたデータをもとにバーチャルアクターを動作させる実行手段３３を備えている。【００５０】
図２に基本データ入力手段３１と編集手段３２の機能と、入出力データの関連を示す。基本データ入力手段３１は、入力部１０からの数値、文字データのほか、キーフレーム画像を入力し、これらのデータを用いてグラフィカルに編集して、ノードとエッジの接続情報などのデータを記憶部５０へ保存する。【００５１】
また、編集手段３２は、画像データやマウスによる特徴線データを入力して、画像間のマッチング処理を行って、その結果を各エッジの特徴線データとして記憶部５０へ保存すると共にこのデータを用いて生成した各エッジの画像と画像間のピクセルの対応データを記憶部５０へ保存する。そして、マッチング結果のプレビュー機能として、これら生成したデータを用いてモーフィングアニメーション処理を実行する。【００５２】
次に処理部３０の有する各手段の動作を詳述する。
［基本データ入力処理］
基本データ入力手段３１は、ノードアイコンとエッジアイコンを視覚的に配置し、直感的にオートマトンをデザインできる機能を有する。【００５３】
（Ａ）ノードアイコンの配置処理
基本データ入力手段３１は、所定のフォルダに存在する複数のビットマップイメージの画像データ５１を読み込み、アイコン化しアイコンデータ５２として保存すると共に表示部２０へ表示出力する。【００５４】
たとえば、３次元コンピュータグラフィック（以下、３ＤＣＧという）空間上の四角形に縮小したビットマップイメージをテクスチャーマッピングして表示することによりアイコン化する。このアイコンは各ノード（セル、キーフレームあるいは基本フレームともいう。）を表す。【００５５】
なお、アイコンの視認性や作業性を向上させるため、ノードアイコンのスケール機能（アイコンの縮小拡大）、ノードアイコンの移動機能（アイコンを任意の位置に配置する機能）、ノードアイコンの整列機能（見やすく整列させる機能）、ノードアイコンと対応するノードオブジェクトを選択的に削除する機能などを設けるようにするとよい。【００５６】
このノードアイコンに対応付けられたノードデータ５３は、データメンバーと処理動作のめのルールや手順等が保存されるメソッドで構成される。図３にノードデータの例を示す。メンバーには、ノードに対応する画像イメージのファイル名、順方向マップ（結合した順方向のエッジ）、順、逆マップ（結合した順、逆方向のエッジ）、ジャンプのテーブル（ジャンプは、トリガによって決まる次のエッジ）などが入り、メソッドには、どのエッジを選択するかのルールが格納されている。【００５７】
（Ｂ）エッジアイコンの配置処理
オペレータの一のノードアイコンと他のノードアイコンの指示入力により、両アイコンを繋ぐ矢印上のエッジアイコンを生成する（エッジオブジェクトの生成機能）。そして、複数のアイコンとエッジをたどって再帰的にすべてのルートを求めひとつのルートを表示する。オペレータは、表示されたルート上のエッジを選択して、このエッジのラベルに文字をタイプして入力し、選択したエッジのデュレーション（何段階で変化するかとい情報）を数値で設定する。また、選択したエッジの休眠時間を数値で設定する。【００５８】
なお、必要によりエッジアイコンとそれに対応するエッジデータを削除したり、アイコンの移動によってエッジを表す矢印を変形し再表示する機能を設けたりしてもよい。【００５９】
以下に上記の処理によって入力されたエッジデータの一例を図４に示す。
エッジデータのメンバーとしては、エッジの両端のイメージ名（二つ以上に拡張可）、マップデータ名、デュレーション、休眠時間、外部トリガ（ホットスポット）のラベル名などが保存され、メソッドとしては、エッジの両端の画像からカレントフレームの中間画像の生成機能のルール（たとえばモーフィングの手順）が保存されている。ここで、マップデータとは、二つのイメージのピクセルの対応表を意味する。【００６０】
図５に、表示部２０に表示出力されるノードアイコンとエッジアイコンの例を示す。
ここで、オペレータは、まずノードアイコン８１を画面上に配置し、次にエッジアイコン８２によって、各ノードアイコン８１を接続する。エッジアイコンは方向が視認できるようになっており、これによりノードアイコン８１が順方向で接続されているのか、逆方向で接続されているのかを指定することができる。【００６１】
たとえば、図５において、符号Ａ，Ｂ，Ｃを付したアイコンにおいて、エッジアイコンＡの始端はノードアイコンＢと接続し、終端はノードアイコンＣと接続されているため、エッジアイコンＡに対応するエッジデータには、始端情報としてノードアイコンＢの識別情報、終端情報としてはノードアイコンＣの識別情報を格納する。これらのアイコンの識別情報によって互いに関連付けられたノードデータ、基本フレーム画像を抽出する。【００６２】
また、ノードアイコンとエッジアイコンの組み合わせは、表情単位や動作（発話を含む）単位などで作成する。たとえば、図５の例では、最初に実行される所期グループ、発話時の表情を作るための発話グループ、そして、表情Ａ（たとえば笑っている表情）を実行するグループで構成している。図中、初期グループのノードアイコンとして、画像データをもとにこれを縮小して作成したアイコン例を示している。発話グループのノードアイコンは、簡略化して示すが、次の（Ｃ）項で説明する発音時の口の形のキーフレームを登録し、互いに関連付けたエッジデータで発音データとリンクさせて遷移させる。なお、表情Ａグループのノードアイコン、エッジアイコンの記載は省略しているが、その表情のキーフレームとなるノードアイコンを配置し、各ノード間をエッジアイコンで接続していく。このとき、基本データ入力手段３１はノードデータ、エッジデータに夫々の接続関係を保存する。【００６３】
（Ｃ）発話リストのノードの登録処理
ノードの登録とは、当該ノードに関する画像、この画像をもとに作成したノードアイコン、および画像やアイコンとの関連付け情報の登録、および、エッジデータと関連付けられたノードデータの登録をいう。【００６４】
発話リストには、発話のときの口の形のアニメーションとして、母音と口を閉じたときのＭ音、Ｖ音、Ｌ音、ｔｈ音を表す口の形のキーフレーム（画像）をノードとして保存し、それらの発話用のノードを相互に結合することで、音声が採取された発音データとその間の時間情報（デュレーション）によって、ノード間のルートを決定する。
具体的には、a,i,u,e,o,m,v,l,th等の発音に対応するノード番号をn1〜n9(整数)とするとaiueo(アイウエオ)の場合は[n1,dur1,n2,dur2,n3,dur3,n4,dur4,n5,dur5]（ただしdur1〜dur5は継続時間を表す数値）というリスト構造を与えることで、リップシンクの口の動きの遷移を表示させる。【００６５】
（Ｄ）プロジェクトのセーブとロード
基本データ入力手段３１は、さらにノードアイコンと、矢印で表されるエッジアイコンの配置（位置データ）と結合状態（関連付け）をプロジェクトとしてファイルにセーブしたり、ノードアイコンとエッジアイコンの配置と結合状態をプロジェクトとしてファイルからロードしたりする機能を有する。【００６６】
［編集処理］
次に編集手段３２の編集処理動作について説明する。
オペレータは、編集手段３２によって入力した画像間の対応付けを特徴線（制御線、制御ラインともいう。）を用いて行う。
以下編集処理の手順について図６を用いて詳述する。【００６７】
まず、オペレータは最初の画像ペアを選択する（Ｓ１）。そして、一番目の画像（イメージ）上に手動で特徴線を入力する（Ｓ２）。具体的には、画像の口、目、鼻、眉、顔輪郭、頭輪郭の特徴的な部分の各二点間を線分で指定する。編集手段３２は、その特徴線の両端の点近傍の特徴点（good feature point）を演算し、自動補正する。この自動補正された特徴線をオプティカルフローにより二番目の画像上での特徴線を自動演算する（Ｓ３）。【００６８】
その後、次の画像ペアを表示して（Ｓ４）、ステップ３で得られた特徴線を次の画像ペアの最初の特徴線とし、オプティカルフローにより次のイメージ上の特徴線を自動演算する（Ｓ５）。そして、特徴線からピクセルの移動を求め、そのデータをそのエッジのマッピングデータとしてファイルに保存する。このとき、feature based morphingによってすべてのピクセルの移動情報を求める。【００６９】
ステップＳ４、Ｓ５について再帰的に求められたすべての連続したルート上で自動的なマッチングを繰り返し、すべてのエッジの特徴線を配置する（Ｓ６）。【００７０】
従来の手順は、すべてを自動マッチングし、それぞれの画像間の修正を手動で行うため、人間に眼による修正の結果が他のイメージ間に継承されないため、同様の修正をすべての画像ペア間で行う必要があった。しかし、本アルゴリズムによれば、最初の画像ペアで人間による特徴線の入力してgood feature pointによる両端の点の自動補正し、次にオプティカルフローによる次の画像上の特徴線を求めることにより、最初の画像ペア以降の連続する画像ペアの自動マッチングの良好なマッチング結果が得られる。【００７１】
これにより、マッチングするポイントデータを従来法に比べて大幅に減らすことができるので計算時間を減らすことができ、人間の眼から見た特徴線とプログラムから見た特徴点の折衷した良好な特徴線を元に画像変形が行われるため、比較的自然な変形が実現できる。【００７２】
［実行処理］
次に上述の処理によって入力したデータを用いてバーチャルアクターを動作させる実行手段３５について図７を用いて説明する。【００７３】
まず、スタートノードから最初のエッジを抽出する（Ｓ１０１）。そして、フレームの範囲外か否かを判定して（Ｓ１０２）、フレームの範囲外の場合は、次に新ノードを求める処理として、エッジデータにより順行か逆行かを判定する（Ｓ１０３）。そして、フレームの進行が順行方向ならば（Ｓ１０３で「YES」）、エッジの始まりのノードを抽出する（Ｓ１０４）。一方、フレームの進行が逆行方向ならば（Ｓ１０３で「NO」）、エッジの終わりのノードを抽出する（Ｓ１０５）。【００７４】
次に発話か否かを当該ノードのノードデータのtalkフラグによって判定し（Ｓ１０６）、「YES」すなわちtalkフラグがＯＮならば、発話リストにあるノードから画像データを抽出すると共に次のエッジとデュレーションを求める（Ｓ１０８）。そして、編集手段３２で生成した移動情報をもとに現在エッジの画像変形を実行し、フレームを一つ進める（Ｓ１０９）。
一方、ステップＳ１０６で「NO」、即ち、発話でない場合は、新エッジ選択処理ルーチンによって、そのノードのメソッドから次のエッジを求める（Ｓ１１０）。【００７５】
以下、この新エッジ選択処理ルーチンの手順を図８を用いて説明する。    
まず、ジャンプか否かを判定して（Ｓ２０１）、「YES」ならば、ジャンプの種類はどれかを判定して、ジャンプの種類と一致するエッジを返す。発話ならtalkフラグをonにする（Ｓ２０２、Ｓ２０３）。【００７６】
一方、ステップＳ２０１で「NO」ならば、そのノードにマップされているエッジ数が二つ以上あるか否かを判定し（Ｓ２０４）、二つ以上であれば、直前のエッジをタイマーで不活性にする（Ｓ２０５）。また、直前がジャンプであるか否かを判定して（Ｓ２０６）、直前がジャンプであれば、順方向のエッジのみを選択の対象とする（Ｓ２０７）。ジャンプでなければ、順方向、逆方向のエッジを含めて選択対象とする（Ｓ２０８）。そして、選択可能なエッジからランダムに選ぶ（Ｓ２０９）。【００７７】
以上の処理によって、カレントノードから新エッジを求める。
上述した実行手段３５の一連の処理によってバーチャルアクターを動作させる。【００７８】
以上、本実施の形態によれば、基本データ入力処理において、アイコンの接続によってノードデータとエッジデータを効率的に、かつ高度な知識を必要とせずにデータを入力することが可能となる。【００７９】
また、編集処理では、マニュアル設定された特徴線の両端近傍の特徴点を抽出して、この特徴点に特徴線を合わせ込むように自動修正することにより、最初の画像ペアで得た特徴線をその後の画像ペアでもほとんどマニュアル修正の必要がなくマッチングできるので、作業効率を向上させることができる。また、マッチングの誤対応を削減することができる。【００８０】
さらに、実行処理では、エッジデータによって画像ペア間のモーフィング処理を実行すると共に、ノードのエッジ選択処理（メソッド）によってホットスポットに連動した自然な動きを実現することができる。なお、連続している画像をモーフィングした場合は、フレーム間に連続した内挿フレームを生成するのでスローモーションなどの効果を作り出すことができる。画像をベースにバーチャルリアリティを作り出すイメージベースドバーチャルリアリティに応用でき、保持する静止画のデータ量を減らすという効果もある。
発話処理については特定の画像データのみで、多様かつ自然な発話状態を実現することができる。【００８１】
（高速ルート処理）
次に、応用例として、状態遷移をより効率的に行うための高速ルート処理について説明する。【００８２】
図１０は、他の実施例によるノードデータの構成図である。図３との主な違いは、外部トリガが発生した場合、そのときのノードにジャンプ先が存在しない場合に接続するエッジＩＤ（高速用エッジデータの識別情報）を格納する最小マップデータを持たせたことである。【００８３】
以下、図１１の遷移図を用いて動作を説明する。この図において、実線のエッジが高速ルートであり、通常１〜４と表示されているノードは通常状態の顔の変化（表情）である。【００８４】
外部トリガ（マウスやキーボード）が無いときは、この通常ノードを行ったり来たりしているが、外部トリガが発生すると、波線のエッジを通って喜怒哀楽などの表情に遷移するようになっている。【００８５】
いま、通常１に遷移状態があって、「哀」を指令する外部トリガがあった場合、高速ルートが無い場合は、通常２、通常３の遷移か、または通常４へ寄り道をしてしまい、反応が遅くなってしまう。ここで、通常1から「哀」を結ぶ一点鎖線のエッジを設定することもできるが、ノードが増えるとエッジが増え錯綜して煩雑になり、データも増加する。【００８６】
このため、高速ルート処理として、外部トリガがあった場合に、実行手段３３はそのトリガフラグを記憶部５０に保存すると共に、実線ルートのエッジデータの遷移時間（図４のデュレーション）の値を小さくし、トリガフラグがセットされている場合はノードデータの最小マップによって遷移するようにして、それ以外のルート（通常２→通常４などのルート）を遮断する。これをその外部トリガの目的ノードである「哀」に到達するまで繰り返すことによって、短時間に目的の反応へ到達することができる。なお、トリガフラグは目的ノードへ到達した時点でリセットするようにする。【００８７】
以上、高速ルート処理によって、高速ルート以外のルートを閉じ、移動速度を上げるようにするため、あるノードから他のノードへの直接的な結合を増やすことなく目的のノードへ滑らかに自然な形で状態遷移を行うことができる。
また、各ノードからエッジの接続情報を、予め<前進>、<後進>、<ジャンプ>（外部トリガが発生した場合のラベルがあるエッジ）、<優先（最小）>（外部トリガが発生した場合、優先的なエッジ）に分けておくことによって、処理を高速化し、アルゴリズムを簡略化できる。【００８８】
次に、本発明の第２の実施の形態を説明する。
第１の実施の形態は、コンピュータシステムをスタンドアロンで構成したが、本実施の形態は、サーバ・クライアント型で構成し、インターネット等の通信ネットワークを介して、サーバ上の画像データ、ノードデータ、エッジデータを端末装置へ送信して、端末装置上でバーチャルアクターを動作させるものである。【００８９】
以下、図９を用いて第１の実施の形態との違いを中心に説明する。本実施の形態においては、サーバ装置２において、実行手段のプログラム（以後、実行プログラムという。）５５は、記憶部５０に保存しておき、端末装置７からアクセスがあると送受信処理手段３５を介して、この実行プログラム５５を端末装置側へ送信する。端末装置７では、受信した実行プログラムを起動して、必要なデータをサーバ装置２から随時読み込んで、表示部７２へバーチャルアクターを表示させる。【００９０】
以下、本実施の形態におけるコンピュータシステム１の動作を詳述する。
基本データ登録処理、編集処理については第１の実施の形態と同様であるため説明を割愛する。【００９１】
［実行処理］
ユーザは、端末装置７から所定のＵＲＬを指定して、サーバ装置２にアクセスすると、サーバ装置２は、記憶部５０に格納されている実行プログラム５５を端末装置側へ送信する。【００９２】
実行プログラム５５は、端末装置７の処理部７４にロードされ、実行手段７６として起動されると、スタートノードの画像とノードデータをサーバ装置２から読み込む。そして、読み込んだ画像を表示すると共にノードデータのメソッドによって選択されたエッジデータをサーバ装置２から読み込む。【００９３】
また、エッジデータをもとに他端のノードの画像データを読み込み、図７の処理を実行する。【００９４】
そして、発話処理、モーフィングによる画像変形、カレントノードからのジャンプ処理などを実行してバーチャルアクターを端末装置上で動作させる。【００９５】
本実施の形態によれば、サーバ装置から端末装置へ送信するデータは、最初に実行プログラムを送信した後は、キーフレームとなる画像データとノードデータ、エッジデータであるため、従来のフレームごとの画像データを送信して動画を作成する手法に比べて、通信ネットワークのトラフィックの軽減を図ることができる。【００９６】
なお、端末装置上で画像ＩＤ、ノードＩＤ、エッジＩＤを保存しておき、端末装置に保存されていないデータが必要になったときのみサーバへアクセスするようにすれば、よりトラフィックを軽くすることができる。
【産業上の利用可能性】
【００９７】
本発明は、コンピュータ上でバーチャルアクターを動作させるといったコンテンツ産業に適用できるのみならず、コンピュータ制御によって動作するロボット等にも適用することができる。
【図面の簡単な説明】
【００９８】
【図１】本発明の第１の実施の形態によるコンピュータシステムの機能ブロック図である。
【図２】図１の基本データ入力手段３１と編集手段３２の機能と入出力データの関係図である。
【図３】図１のノードデータ５３のデータ構成図である。
【図４】図１のエッジデータ５４のデータ構成図である。
【図５】図１の基本データ入力手段３１による表示例の説明図である。
【図６】本発明の実施の形態における編集処理の流れの説明図である。
【図７】図１の実行手段３５の処理手順を示すフローチャートである。
【図８】図７における新エッジ抽出処理の手順を示すフローチャートである。
【図９】本発明の第２の実施の形態によるコンピュータシステムの機能ブロック図である。
【図１０】本発明の他の実施例によるノードデータ５３のデータ構成図である。
【図１１】本発明の他の実施例による高速ルート処理を説明するための状態遷移図である。
【符号の説明】
【００９９】
１  コンピュータシステム
２  サーバ装置
４  通信ネットワーク
７  端末装置
１０、７１  入力部
２０、７２  表示部
３０、７４  処理部
３１  基本データ入力手段
３２  編集手段
３３、７６  実行手段
３４、７７  入出力処理部
３５、７５  送受信処理手段
５０  記憶部
５１  画像データ
５２  アイコンデータ
５３  ノードデータ
５４  エッジデータ
５５  実行プログラム
６０、７３  伝送部
８１  ノードアイコン
８２  エッジアイコン
【図１】
2008023819.tif 000003
【図２】
2008023819.tif 000004
【図３】
2008023819.tif 000005
【図４】
2008023819.tif 000006
【図６】
2008023819.tif 000007
【図７】
2008023819.tif 000008
【図８】
2008023819.tif 000009
【図９】
2008023819.tif 000010
【図１０】
2008023819.tif 000011
【図１１】
2008023819.tif 000012
【図５】
2008023819.tif 000013
【国際調査報告】
2008023819.tif 000014
2008023819.tif 000015