(57)【要約】【課題】テンプレートを利用することなく、しかも、アニメーションシナリオにオブジェクトの位置関係が明記されていない場合でも、オブジェクトの配置情報を得ること。【解決手段】配置制約条件決定部４２４は、配置制約条件データベース４１０に格納された配置制約条件テーブルを参照して、シナリオ情報取得部４２２によって取得されたシナリオ情報（狭義）に適用する配置制約条件を決定する。次に、配置情報決定部４２６は、配置制約条件データベース４１０に格納されたポテンシャル関数テーブルを参照して、配置制約条件決定部４２４によって決定された配置制約条件に対応するポテンシャル関数を取得し、取得したポテンシャル関数を用いて、各演技の開始直前および終了直後におけるオブジェクトのアニメーション空間上の位置を決定し、オブジェクト配置情報として出力する。【選択図】図２
2007316864.tif 000002
【特許請求の範囲】
【請求項１】
アニメーションの内容を表すアニメーションシナリオ情報であって少なくともオブジェクトの行為を示す行為情報を含むものを取得するシナリオ情報取得部と、
前記アニメーションを構成するオブジェクトの各行為に対してあらかじめ設定されたオブジェクトの配置制約条件を記憶する配置制約条件記憶部と、
前記配置制約条件記憶部を参照して、前記シナリオ情報取得部によって取得されたアニメーションシナリオ情報に含まれる行為情報に適用する配置制約条件を決定する配置制約条件決定部と、
前記配置制約条件決定部によって決定された配置制約条件を適用して、オブジェクトのアニメーション空間上の位置を示す配置情報を決定する配置情報決定部と、
を有するアニメーション構成装置。
【請求項２】
前記配置制約条件は、オブジェクトの演技開始直前の位置制約条件を示す演技前位置制約条件、オブジェクトの演技終了直後の位置制約条件を示す演技後位置制約条件、オブジェクトの演技の動作タイプの制約条件を示す動作制約条件、オブジェクトの演技時間の制約条件を示す時間制約条件、およびオブジェクトの演技で対象との距離の制約条件を示す距離制約条件のうち、少なくとも一の制約条件によって構成されている、
請求項１記載のアニメーション構成装置。
【請求項３】
前記アニメーションシナリオ情報は、少なくとも場所、主体、および行為に関する情報を含み、各主体の一連の行為を時系列で表しており、
前記配置制約条件決定部は、
主体別に、各主体の一連の行為を時間的に最後尾から遡って、各行為に適用する配置制約条件を決定する、
請求項１記載のアニメーション構成装置。
【請求項４】
前記配置制約条件は、少なくとも、オブジェクトの演技開始直前の位置制約条件を示す演技前位置制約条件と、オブジェクトの演技終了直後の位置制約条件を示す演技後位置制約条件とによって構成されており、
前記配置制約条件決定部は、
各行為に適用する配置制約条件を決定する際に、当該行為の直前の行為に適用する演技後位置制約条件を当該行為の演技前位置制約条件として用いる、
請求項３記載のアニメーション構成装置。
【請求項５】
前記配置情報決定部は、
前記配置制約条件決定部によって決定された配置制約条件を、オブジェクトのアニメーション空間内における配置の受け入れ度合いを示す評価関数で表現し、前記評価関数を用いて、オブジェクトの配置情報を決定する、
請求項１記載のアニメーション構成装置。
【請求項６】
前記評価関数は、オブジェクトのポテンシャル値のアニメーション空間上の分布を示すポテンシャル関数であり、
前記配置情報決定部は、
前記配置制約条件決定部によって決定された配置制約条件に対応するポテンシャル関数においてポテンシャル値が最小になる位置を、オブジェクトの配置情報として決定する、
請求項５記載のアニメーション構成装置。
【請求項７】
あらかじめ設定されたオブジェクトの素材情報を記憶する素材情報記憶部と、
前記素材情報記憶部を参照して、前記シナリオ情報取得部によって取得されたアニメーションシナリオ情報から、オブジェクトの素材情報を決定する素材決定部と、
あらかじめ設定されたオブジェクトのモーション情報を記憶するモーション情報記憶部と、
前記モーション情報記憶部を参照して、前記シナリオ情報取得部によって取得されたアニメーションシナリオ情報から、オブジェクトのモーション情報を決定するモーション決定部と、
あらかじめ設定されたオブジェクトの演出情報を記憶する演出情報記憶部と、
前記演出情報記憶部を参照して、前記シナリオ情報取得部によって取得されたアニメーションシナリオ情報から、オブジェクトの演出情報を決定する演出決定部と、
をさらに有する請求項１記載のアニメーション構成装置。
【請求項８】
前記アニメーションシナリオ情報は、少なくとも場所、主体、および行為に関する情報を含み、
前記配置制約条件は、主体別または主体のカテゴリ別にあらかじめ設定されており、
前記配置制約条件決定部は、
前記配置制約条件記憶部を参照して、前記シナリオ情報取得部によって取得されたアニメーションシナリオ情報に含まれる行為情報に適用する配置制約条件を主体別または主体のカテゴリ別に決定する、
請求項１記載のアニメーション構成装置。
【請求項９】
前記アニメーションシナリオ情報は、場所、主体、および行為に関する情報に加えて所定の付加的情報を含み、
前記配置制約条件は、前記付加的情報の内容別にあらかじめ設定されており、
前記配置制約条件決定部は、
前記配置制約条件記憶部を参照して、前記シナリオ情報取得部によって取得されたアニメーションシナリオ情報に含まれる行為情報に適用する配置制約条件を前記付加的情報の内容別に決定する、
請求項１記載のアニメーション構成装置。
【請求項１０】
アニメーションの内容を表すアニメーションシナリオ情報であって少なくともアニメーションを構成するオブジェクトの行為を示す行為情報を含むものを取得するシナリオ情報取得ステップと、
オブジェクトの各行為に対してあらかじめ設定されたオブジェクトの配置制約条件を記憶する配置制約条件記憶部を参照して、前記シナリオ情報取得ステップで取得したアニメーションシナリオ情報に含まれる行為情報に適用する配置制約条件を決定する配置制約条件決定ステップと、
前記配置制約条件決定ステップで決定した配置制約条件を適用して、オブジェクトのアニメーション空間上の位置を示す配置情報を決定する配置情報決定ステップと、
を有するアニメーション構成方法。
【請求項１１】
コンピュータに、
アニメーションの内容を表すアニメーションシナリオ情報であって少なくともアニメーションを構成するオブジェクトの行為を示す行為情報を含むものを取得するシナリオ情報取得ステップと、
オブジェクトの各行為に対してあらかじめ設定されたオブジェクトの配置制約条件を記憶する配置制約条件記憶部を参照して、前記シナリオ情報取得ステップで取得したアニメーションシナリオ情報に含まれる行為情報に適用する配置制約条件を決定する配置制約条件決定ステップと、
前記配置制約条件決定ステップで決定した配置制約条件を適用して、オブジェクトのアニメーション空間上の位置を示す配置情報を決定する配置情報決定ステップと、
を実行させるアニメーション構成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アニメーション構成装置およびアニメーション構成方法に関する。
【背景技術】
【０００２】
近年、コンピュータグラフィックス（ＣＧ：Computer Graphics）技術と通信技術の発展に伴い、従来は一般的にテキストの送受信のみであった電子メールやチャットなどのコミュニケーション用ソフトウェアにおいて、アニメーションを文章の装飾として付加する技術が実用化されている。この技術は、たとえば、テキストのみでは表しにくい雰囲気やユーザの感情を視覚に訴えかける形で直接表現できるというメリットがあるため、この技術を適用した上記コミュニケーション用ソフトウェアが普及しつつある。
【０００３】
特に携帯電話機のように操作部が小さい装置の場合、できるだけ簡単に所望のアニメーションを自己または相手の装置に表示できることが望ましい。これを実現するために、ユーザが入力しまたは受信したテキストから文章の内容に合致したアニメーションを自動的に生成する技術がある。
【０００４】
たとえば、特許文献１には、あらかじめアニメーションの定型パターン（テンプレート）を用意しておき、電子メールの本文などのテキストのうち特定の文字列をキーとして、対応するテンプレートを選択する技術が記載されている。この技術によれば、特定の文字列を入力することによって、簡単に、文章に合った所望のアニメーションを表示することができる。
【０００５】
また、特許文献２には、たとえば、「アクター１の前にアクター２がいる。」など、アニメーションに登場するオブジェクトの位置関係が明記された自然言語文に基づいて、アニメーションを生成する技術が記載されている。この技術では、入力された自然言語文から、オブジェクトの行為ごとに、画像の空間的関係や向きといった情報を抽出し、抽出した情報に基づいて、オブジェクトをアニメーション空間に配置して、アニメーションを生成する。これにより、ユーザの意図に、より即した内容のアニメーションを、簡単に表示することができる。
【特許文献１】特開２００２−３６６９６４号公報
【特許文献２】特開平６−２５９５２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１記載の技術においては、あらかじめ多数のテンプレートを用意する必要があるため、実際問題として、短時間のかつ単純なアニメーションしか表示することができないという問題がある。しかも、後述するようにアニメーションシナリオにオブジェクトの位置関係が明記されていない場合にも対応するべく、背景ごとに行為と位置の関係を記述したテンプレートを用いてオブジェクトの配置情報を決定しようとすると、背景、行為、および行為対象物の組み合わせパターンごとに、定義された膨大な数のテンプレートを用意する必要があり、その運用は現実的ではない。
【０００７】
また、特許文献２記載の技術においては、オブジェクトの位置関係が明記された自然言語文に基づいてアニメーションを生成するため、アニメーションシナリオにオブジェクトの位置関係が明記されていない場合には、アニメーションの生成に必要なオブジェクトの配置情報を得ることができないという問題がある。たとえば、電子メールやチャットの文章など、実際のコミュニケーション用途で入力されるテキストを想定した場合、オブジェクトの位置関係が明記されていないことが多いため、オブジェクトを配置することができない場合が多い。すなわち、実際のコミュニケーション用途で入力されるテキストをそのままアニメーションシナリオとして使用する場合、「アクターＡが店に入る。」とは書かれても、「アクターＡが店の入口に立つ。アクターＡが店に入る。」とは通常わざわざ書かれないため、オブジェクトの位置関係が明記されていない文章をアニメーションシナリオとして使用することが多くなる。これは、コミュニケーション用途の文章では、一般的に、各行為がどの場所で実行されるかなど、容易に想像がつく事項は、通常、省略されるためである。
【０００８】
本発明は、かかる点に鑑みてなされたものであり、テンプレートを利用することなく、しかも、アニメーションシナリオにオブジェクトの位置関係が明記されていない場合でも、オブジェクトの配置情報を得ることができるアニメーション構成装置およびアニメーション構成方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のアニメーション構成装置は、アニメーションの内容を表すアニメーションシナリオ情報であって少なくともオブジェクトの行為を示す行為情報を含むものを取得するシナリオ情報取得部と、前記アニメーションを構成するオブジェクトの各行為に対してあらかじめ設定されたオブジェクトの配置制約条件を記憶する配置制約条件記憶部と、前記配置制約条件記憶部を参照して、前記シナリオ情報取得部によって取得されたアニメーションシナリオ情報に含まれる行為情報に適用する配置制約条件を決定する配置制約条件決定部と、前記配置制約条件決定部によって決定された配置制約条件を適用して、オブジェクトのアニメーション空間上の位置を示す配置情報を決定する配置情報決定部と、を有する構成を採る。
【００１０】
本発明のアニメーション構成方法は、アニメーションの内容を表すアニメーションシナリオ情報であって少なくともアニメーションを構成するオブジェクトの行為を示す行為情報を含むものを取得するシナリオ情報取得ステップと、オブジェクトの各行為に対してあらかじめ設定されたオブジェクトの配置制約条件を記憶する配置制約条件記憶部を参照して、前記シナリオ情報取得ステップで取得したアニメーションシナリオ情報に含まれる行為情報に適用する配置制約条件を決定する配置制約条件決定ステップと、前記配置制約条件決定ステップで決定した配置制約条件を適用して、オブジェクトのアニメーション空間上の位置を示す配置情報を決定する配置情報決定ステップと、を有するようにした。
【００１１】
また、本発明のアニメーション構成プログラムは、コンピュータに、アニメーションの内容を表すアニメーションシナリオ情報であって少なくともアニメーションを構成するオブジェクトの行為を示す行為情報を含むものを取得するシナリオ情報取得ステップと、オブジェクトの各行為に対してあらかじめ設定されたオブジェクトの配置制約条件を記憶する配置制約条件記憶部を参照して、前記シナリオ情報取得ステップで取得したアニメーションシナリオ情報に含まれる行為情報に適用する配置制約条件を決定する配置制約条件決定ステップと、前記配置制約条件決定ステップで決定した配置制約条件を適用して、オブジェクトのアニメーション空間上の位置を示す配置情報を決定する配置情報決定ステップと、を実行させるようにした。
【発明の効果】
【００１２】
本発明によれば、テンプレートを利用することなく、しかも、アニメーションシナリオにオブジェクトの位置関係が明記されていない場合でも、オブジェクトの配置情報を得ることができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。なお、本実施の形態では、アニメーション構成装置を携帯端末装置に適用した場合を例にとって説明する。
【００１４】
図１は、本発明の一実施の形態に係るアニメーション構成装置を搭載した携帯端末装置の構成を示すブロック図である。
【００１５】
図１において、携帯端末装置１００は、入力部２００、シナリオ情報生成部３００、アニメーション構成装置４００、表示部５００、および通信部６００を有する。
【００１６】
入力部２００は、たとえば、図示しない複数のキースイッチを備えており、ユーザのキー操作によってシナリオ文（アニメーションシナリオを構成する文章）を入力することが可能である。
【００１７】
シナリオ情報生成部３００は、入力部２００によって入力されたシナリオ文に基づいて、アニメーションの内容を表すアニメーションシナリオ情報（以下単に「シナリオ情報」という）を生成する。後で詳述するように、シナリオ情報は、広義では、オブジェクトの有無を問わず、広くアニメーションの内容を表す情報を意味し（つまり、背景のみの場合を含む）、狭義では、オブジェクトを含むアニメーションの内容を表す情報を意味する（つまり、背景のみの場合を除く）。狭義のシナリオ情報は、たとえば、少なくとも場所、主体、および行為に関する情報を含み、各主体の一連の行為を時系列で表して構成されている。以下では、特に明示しない限り、広義の意味で使用する。
【００１８】
アニメーション構成装置４００は、シナリオ情報生成部３００によって生成されたシナリオ情報を入力して、シナリオ情報に応じたアニメーションを生成するためのアニメーション情報を出力する。後で詳述するように、アニメーション情報は、たとえば、オブジェクト配置情報、素材情報、モーション情報、および演出情報を含んでいる。換言すれば、アニメーション構成装置４００は、入力したシナリオ情報に基づいて、たとえば、３次元ＣＧアニメーション（単に「ＣＧアニメ」、「３Ｄグラフィックス」とも呼ばれる）を生成するための構成情報を作成する。
【００１９】
表示部５００は、たとえば、図示しない小型の液晶ディスプレイを備えている。表示部５００は、アニメーション構成装置４００から出力されたアニメーション情報を用いて、たとえば、３次元ＣＧアニメーションを生成し、液晶ディスプレイに表示する。
【００２０】
通信部６００は、たとえば、携帯電話網を介して、携帯電話機やパーソナルコンピュータなど、他の装置と通信を行うことにより、アニメーション構成装置４００から出力されたアニメーション情報を通信相手に送信可能である。したがって、通信相手の装置が表示部５００に相当する装置を有する場合には、自己が入力したシナリオ文に対応する３次元ＣＧアニメーションを通信相手のユーザに見せることができる。また、通信部６００は、入力部２００によって入力されたシナリオ文や、シナリオ情報生成部３００によって生成されたシナリオ情報を、通信相手に送信することも可能である。また、通信部６００は、携帯電話網を介して、他の装置から送信されたシナリオ文やシナリオ情報、アニメーション情報を受信することも可能である。
【００２１】
なお、３次元ＣＧアニメーションは、コンピュータグラフィックス技術により描画される動画である。３次元ＣＧアニメーションにおいて、物体（主体）が、あたかも３次元空間に存在するかのように描画するためには、物体の配置や光線の加減、物体の材質などを考慮し、設定された視点から物体がどのように見えるかを演算しなければならない。このような３次元ＣＧアニメーションの生成に用いる代表的なグラフィックス関数としては、たとえば、ＯｐｅｎＧＬ（登録商標）やＤｉｒｅｃｔＸ（登録商標）などがある。
【００２２】
図２は、アニメーション構成装置４００の構成を示すブロック図である。
【００２３】
図２において、アニメーション構成装置４００は、配置制約条件データベース４１０、オブジェクト配置決定部４２０、素材情報データベース４３０、素材決定部４４０、モーション情報データベース４５０、モーション決定部４６０、演出情報データベース４７０、および演出決定部４８０を有する。オブジェクト配置決定部４２０は、シナリオ情報取得部４２２、配置制約条件決定部４２４、および配置情報決定部４２６を有する。
【００２４】
配置制約条件データベース４１０は、配置制約条件テーブルおよびポテンシャル関数テーブルを、あらかじめ格納している。配置制約条件テーブルは、アニメーション空間（アニメーションを構築する仮想的な空間）におけるオブジェクトの行為と配置制約条件との対応関係を示すテーブルである。ポテンシャル関数テーブルは、配置制約条件とポテンシャル関数との対応関係を示すテーブルである。
【００２５】
ここで、「配置制約条件」とは、オブジェクトのアニメーション空間における配置位置を制約する条件である。また、「ポテンシャル関数」とは、オブジェクトのアニメーション空間における配置の受け入れ度合いを示すために用いられる評価関数である。なお、アニメーション空間は、立体的な３次元空間に限定されるわけではなく、たとえば、平面的な２次元空間であってもよい。また、オブジェクトは、動きの有無を問わず、配置の対象となる物体を広く意味するが、ここでは、キャラクタなど、動きのある物体を中心に考えることとする。
【００２６】
オブジェクト配置決定部４２０は、配置制約条件データベース４１０を参照して、シナリオ情報（狭義）に含まれるキャラクタなどのオブジェクトの、アニメーション空間上の配置位置を決定する。すなわち、オブジェクト配置決定部４２０は、配置制約条件データベース４１０を参照して、どのオブジェクトをどのアニメーション時刻（アニメーション映像における時刻）でアニメーション空間上のどの位置に配置するかを決定する。
【００２７】
より具体的には、オブジェクト配置決定部４２０のシナリオ情報取得部４２２ は、生成または受信されたシナリオ情報（広義）の中から、オブジェクトに関するシナリオ情報（狭義）のみを取得する。また、オブジェクト配置決定部４２０の配置制約条件決定部４２４は、配置制約条件データベース４１０に格納された配置制約条件テーブルを参照して、シナリオ情報取得部４２２によって取得されたシナリオ情報（狭義）に適用する配置制約条件を決定する。また、オブジェクト配置決定部４２０の配置情報決定部４２６は、配置制約条件データベース４１０に格納されたポテンシャル関数テーブルを参照して、配置制約条件決定部４２４によって決定された配置制約条件に対応するポテンシャル関数を取得し、取得したポテンシャル関数を用いて、各演技の開始直前および終了直後におけるオブジェクトのアニメーション空間上の位置を決定し、オブジェクト配置情報として出力する。なお、オブジェクト配置情報は、どのオブジェクト（主体）がどの時点でどの座標に存在するかを示す情報で構成されている。
【００２８】
素材情報データベース４３０は、少なくともコンテンツ情報と画像情報を含む素材情報を、あらかじめ格納している。ここで、「コンテンツ情報」とは、アニメーション空間に配置される各種素材（たとえば、背景やオブジェクトなど）の内容（位置や大きさを含む）に関する情報である。また、「画像情報」とは、各素材を映像化するための情報である。
【００２９】
素材決定部４４０は、素材情報データベース４３０を参照して、シナリオ文に記述された素材のコンテンツ情報および画像情報を決定する。
【００３０】
モーション情報データベース４５０は、モーション情報をあらかじめ格納している。ここで、「モーション情報」とは、オブジェクトの動き方を示す情報である。
【００３１】
モーション決定部４６０は、モーション情報データベース４５０を参照して、シナリオ文に登場するオブジェクトのモーション情報を決定する。
【００３２】
演出情報データベース４７０は、カメラ情報、ライト情報、タイミング情報、効果音情報、およびエフェクト情報を含む、オブジェクトの演出情報を、あらかじめ格納している。ここで、「カメラ情報」とは、アニメーション空間を映像化する際にその視点や範囲を設定するための情報である。また、「ライト情報」とは、アニメーション空間に配置する光源の位置や出力する光の方向および強さを設定するための情報である。また、「タイミング情報」とは、アニメーション映像の各種タイミングを設定するための情報である。また、「効果音情報」とは、アニメーション映像に付加する効果音を設定するための情報である。なお、演出情報としては、カメラ情報、ライト情報、タイミング情報、効果音情報、およびエフェクト情報の少なくとも１つを含んでいればよい。
【００３３】
演出決定部４８０は、演出情報データベース４７０を参照して、オブジェクトの演出に用いられる演出情報を決定する。
【００３４】
なお、携帯端末装置１００は、図示しないが、ＣＰＵ（Central Processing Unit）と、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などのメモリとを有する。たとえば、ＲＯＭには制御プログラムが記憶されており、ＲＡＭは作業用のメモリである。図１および図２に示す各部の機能は、ＣＰＵが制御プログラムを実行することによって実現される。
【００３５】
次いで、上記の構成を有する携帯端末装置１００のアニメーション表示機能について、アニメーション構成装置４００の動作を中心に説明する。
【００３６】
携帯端末装置１００において、シナリオ文は、入力部２００によって入力され、または、通信部６００によって受信される。入力または受信されたシナリオ文は、シナリオ情報生成部３００に与えられる。シナリオ情報生成部３００は、シナリオ情報生成処理を実行して、与えられたシナリオ文に基づいて、シナリオ情報を生成する。具体的には、シナリオ情報生成部３００は、単語辞書、文法辞書、およびシナリオルールをあらかじめ格納しており、これらを用いてシナリオ文の解析を行う。ここで、「シナリオルール」とは、構文の種類ごとに、シナリオ情報を生成する際の規則を定義したものである。以下、具体的なシナリオ文を例にとって説明する。
【００３７】
図３は、シナリオ文の一例を示す図である。このシナリオ文３１０は、シナリオ情報の原文となるものである。この例において、シナリオ文３１０の内容は、「代官山を歩いていたら、感じのいい本屋を見つけたので、早速その本屋に入ってみました。」となっている。
【００３８】
図４は、シナリオ情報生成処理の手順の一例を示すフローチャートである。このシナリオ情報生成処理は、シナリオ情報生成部３００によって実行される。
【００３９】
まず、ステップＳ９００では、シナリオ文を入力したか否かを判断する。上記のように、シナリオ文は、入力部２００または通信部６００から与えられる。この判断の結果として、シナリオ文を入力した場合は（Ｓ９００：ＹＥＳ）、ステップＳ９１０に進み、シナリオ文を入力していない場合は（Ｓ９００：ＮＯ）、シナリオ文を入力するまで待機する。
【００４０】
ステップＳ９１０では、単語辞書および文法辞書を用いて形態素解析処理を実行する。この処理の結果、シナリオ文は、文の最小単位である形態素に分割される。
【００４１】
そして、ステップＳ９２０では、文法辞書を用いて構文解析処理を実行する。この処理の結果、シナリオ文に含まれる構文が判別される。
【００４２】
なお、形態素解析および構文解析については、たとえば、Ｒ. Ｃ. シャンク、Ｃ. Ｋ. リーズベック、石崎俊（訳）、「自然言語理解入門」、総研出版、ｐｐ２２４〜２５８に詳細に記載されているため、その説明を省略する。
【００４３】
そして、ステップＳ９３０では、ステップＳ９１０の形態素解析処理およびステップＳ９２０の構文解析処理の結果に基づいて、シナリオ情報を生成する。特に、狭義のシナリオ情報は、たとえば、少なくとも場所、主体、および行為に関する情報を含み、各主体の一連の行為を時系列で表して構成されている（後述する図５参照）。
【００４４】
具体的には、このシナリオ情報生成処理において、シナリオ情報生成部３００は、形態素解析処理および構文解析処理の結果に基づいて、オブジェクトの有無を判別し、オブジェクトが存在する場合は、さらに、オブジェクトの行為と、行為に関連する各種情報とを取得し、これらを組み合わせてシナリオ情報（狭義）を生成する。入力したシナリオ文に複数の行為が含まれている場合は、複数の組み合わせによってシナリオ情報（狭義）が生成される。このとき、複数の組み合わせの前後関係は、各行為の時間的な前後関係に従う。
【００４５】
そして、ステップＳ９４０では、ステップＳ９３０で生成したシナリオ情報を出力した後、上記一連の処理を終了する。なお、生成されたシナリオ情報は、アニメーション構成装置４００に提供され、または、通信部６００によって外部の装置に提供される。
【００４６】
たとえば、図３に示すシナリオ文３１０に上記シナリオ情報生成処理を施すことによって、図５に示すシナリオ情報（狭義）３２０が得られる。すなわち、図３に示すシナリオ文３１０には、行為を表す形態素として、「歩」、「見つけ」、「入」が記述されているため、「歩く」、「見つける」、「入る」といった行為に対応して狭義のシナリオ情報３２０が生成されることになる。
【００４７】
図５は、図３のシナリオ文３１０に基づいて生成されるシナリオ情報（狭義）の一例を示す図である。
【００４８】
図５に示すように、シナリオ情報（狭義）３２０は、場所情報３２２、主体情報３２３、行為情報３２４、および対象情報３２５で構成されている。ここでは、場所情報３２２、主体情報３２３、行為情報３２４、および対象情報３２５の組み合わせとして、シナリオ文３１０から得られた「歩く」、「見つける」、「入る」の各行為に対応して、３つの組み合わせ３２１−１、３２１−２、３２１−３が生成される。第１の組み合わせ３２１−１は、「代官山（街）」、「アクターＡ」、「歩く」であり、第２の組み合わせ３２１−２は、「代官山（街）」、「アクターＡ」、「見つける」、「本屋」であり、第３の組み合わせ３２１−３は、「代官山（街）」、「アクターＡ」、「入る」、「本屋」である。第１から第３の組み合わせ３２１−１〜３２１−３は、時系列の並びであり、アニメーションは、この順序で実行される。
【００４９】
すなわち、シナリオ文３１０には、「見つける」および「入る」という行為の対象として、「本屋」が記述されている。したがって、第２および第３の組み合わせ３２１−２、３２１−３の対象情報３２５には、「本屋」が設定される。また、シナリオ文３１０には、各行為が行われる場所として「代官山（街）」が記述されている。したがって、第１から第３の組み合わせ３２１−１〜３２１−３の場所情報３２２には、「代官山（街）」が設定される。また、シナリオ文３１０には、各行為の主体は明記されていないものの、各行為の主体は同一である。したがって、第１から第３の組み合わせ３２１−１〜３２１−３の主体情報３２３には、任意に指定または選択された「アクターＡ」が設定される。さらに、シナリオ文３１０において、各行為の時間的な前後関係は、「歩く」→「見つける」→「入る」の順序である。したがって、シナリオ情報（狭義）３２０において、第１から第３の組み合わせ３２１−１〜３２１−３は、時系列の並びとなるように、この順序で、上から順に配列されている。
【００５０】
なお、アニメーションの時間は、演技の種類や数、間合いなどによって異なる。また、狭義のシナリオ情報は、場所情報３２２、主体情報３２３、行為情報３２４、および対象情報３２５に加えて、アニメーションの同期やタイミングに関する情報、演出指示情報、映像編集用情報などを含んでもよい。また、シナリオ情報の元となる文章（シナリオ文）は、どのような形態の文章でもよく、たとえば、ＷＥＢの掲示板記事、ブログ記事、メール文、チャット内容、ネットワークゲームでの会話、説明文、体験記、または日記文でもよい。
【００５１】
次いで、アニメーション構成装置４００の動作について、図６に示すフローチャートを用いて説明する。なお、図６に示すフローチャートは、携帯端末装置１００のＲＯＭに制御プログラムとして記憶されており、ＣＰＵによって実行される。
【００５２】
まず、ステップＳ１０００では、シナリオ情報（たとえば、図５のシナリオ情報３２０）を入力したか否かを判断する。シナリオ情報は、上記のように、シナリオ情報生成部３００または通信部６００から入力される。この判断の結果として、シナリオ情報を入力した場合は（Ｓ１０００：ＹＥＳ）、ステップＳ２０００に進み、シナリオ情報を入力していない場合は（Ｓ１０００：ＮＯ）、シナリオ情報を入力するまで待機する。
【００５３】
ステップＳ２０００では、オブジェクト配置決定部４２０で、オブジェクト配置情報決定処理を実行する。具体的には、配置制約条件データベース４１０を参照して、シナリオ情報（狭義）に含まれる各オブジェクト（主体）の、アニメーション空間上の配置位置を決定する。このオブジェクト配置情報決定処理については、後で詳細に説明する。
【００５４】
そして、ステップＳ３０００では、素材決定部４４０で、素材情報決定処理を実行する。具体的には、素材情報データベース４３０を参照して、シナリオ文に記述された素材のコンテンツ情報および画像情報を素材情報として決定する。
【００５５】
そして、ステップＳ４０００では、モーション決定部４６０で、モーション決定処理を実行する。具体的には、モーション情報データベース４５０を参照して、シナリオ文に登場するオブジェクトのモーション情報を決定する。
【００５６】
そして、ステップＳ５０００では、演出決定部４８０で、演出情報決定処理を実行する。具体的には、演出情報データベース４７０を参照して、オブジェクトの演出に用いられる演出情報を決定する。
【００５７】
そして、ステップＳ６０００では、ステップＳ２０００で得られたオブジェクト配置情報、ステップＳ３０００で得られた素材情報、ステップＳ４０００で得られたモーション情報、およびステップＳ５０００で得られた演出情報を、アニメーション情報として出力した後、上記一連の処理を終了する。このアニメーション情報は、上記のように、アニメーションの生成に必要な情報である。ここでは、アニメーション情報は、表示部５００もしくは通信部６００に出力され、または、一旦所定のメモリに格納される。出力されたアニメーション情報は、対応するアニメーション再生装置を用いることで、ＣＧアニメーションとして表示することができる。
【００５８】
なお、ステップＳ２０００からステップＳ５０００の各処理の順序は、図６に示す例に限定されるわけではなく、任意に設定することができる。
【００５９】
以下、ステップＳ２０００のオブジェクト配置決定処理について詳細に説明する。なお、ステップＳ３０００からステップＳ６０００の各処理については、たとえば、特開２００５−４４１８１号公報に詳細に記載されているため、その説明を省略する。
【００６０】
図７は、図６のオブジェクト配置情報決定処理の内容を示すフローチャートである。このオブジェクト配置情報決定処理は、アニメーション構成装置４００のオブジェクト配置決定部４２０によって実行される。
【００６１】
まず、ステップＳ２１００では、シナリオ情報取得部４２２で、アニメーション構成装置４００に入力されたシナリオ情報に、主体情報と行為情報を含む組み合わせが１つ以上存在するか否か、つまり、アニメーション構成装置４００に入力されたシナリオ情報が狭義のシナリオ情報であるか否かを判断する。この判断の結果として、上記組み合わせが１つ以上存在する場合は（Ｓ２１００：ＹＥＳ）、狭義のシナリオ情報であると判断して、ステップＳ２２００に進み、上記組み合わせが１つも存在しない場合は（Ｓ２１００：ＮＯ）、狭義のシナリオ情報ではないと判断し、後続の処理を行う必要がないため、ただちに図６のフローチャートにリターンする。
【００６２】
ステップＳ２２００では、シナリオ情報取得部４２２で、図６のステップＳ１０００で入力されたシナリオ情報（狭義）を、配置制約条件決定部４２４に転送する。
【００６３】
このようにシナリオ情報取得部４２２がシナリオ情報取得処理（ステップＳ２１００とステップＳ２２００の各処理で構成される）を実行することにより、オブジェクト配置決定部４２０は、オブジェクトの配置位置を決定する必要がある狭義のシナリオ情報に対してのみ、必要な処理を実行することができる。換言すれば、オブジェクトの配置位置を決定する必要がないシナリオ情報に対する無駄な処理をなくすことができる。
【００６４】
そして、ステップＳ２３００では、配置制約条件決定部４２４で、配置制約条件決定処理を実行する。具体的には、配置制約条件データベース４１０に格納された配置制約条件テーブルを参照して、ステップＳ２２００で転送されたシナリオ情報（狭義）に適用する配置制約条件を決定する。この配置制約条件決定処理については、後で詳細に説明する。
【００６５】
そして、ステップＳ２４００では、配置情報決定部４２６で、配置情報決定処理を実行した後、図６のフローチャートにリターンする。具体的には、配置制約条件データベース４１０に格納されたポテンシャル関数テーブルを参照して、ステップＳ２３００で決定した配置制約条件に対応するポテンシャル関数を取得し、取得したポテンシャル関数を用いて、各演技の開始直前および終了直後におけるオブジェクトのアニメーション空間上の位置を決定し、オブジェクト配置情報として出力する。この配置情報決定処理についても、後で詳細に説明する。
【００６６】
たとえば、図５に示すシナリオ情報３２０が入力された場合は、主体情報３２３と行為情報３２４を含む組み合わせが３つ存在するため（Ｓ２１００：ＹＥＳ）、狭義のシナリオ情報であると判断され、ステップＳ２３００の配置制約条件決定処理およびステップＳ２４００の配置情報決定処理が実行される。
【００６７】
図８は、図７の配置制約条件決定処理の内容を示すフローチャートである。この配置制約条件決定処理は、オブジェクト配置決定部４２０の配置制約条件決定部４２４によって実行される。
【００６８】
まず、ステップＳ２３１０では、図７のステップＳ２２００でシナリオ情報取得部４２２から転送されたシナリオ情報（狭義）を入力したか否かを判断する。この判断の結果として、シナリオ情報取得部４２２からのシナリオ情報（狭義）を入力した場合は（Ｓ２３１０：ＹＥＳ）、ステップＳ２３２０に進み、シナリオ情報取得部４２２からのシナリオ情報（狭義）を入力していない場合は（Ｓ２３１０：ＮＯ）、シナリオ情報取得部４２２からのシナリオ情報（狭義）を入力するまで待機する。
【００６９】
ステップＳ２３２０では、入力したシナリオ情報（狭義）に含まれる行為情報（図５の行為情報３２４参照）から、未選択の行為を１つ選択する。
【００７０】
そして、ステップＳ２３３０では、ステップＳ２３２０で選択した行為をキーとして、配置制約条件データベース４１０に格納された配置制約条件テーブル（後述する図９参照）を参照して、当該行為に対応する配置制約条件を検索する。
【００７１】
そして、ステップＳ２３４０では、ステップＳ２３３０の検索結果として、該当する配置制約条件が存在するか否かを判断する。この判断の結果として、該当する配置制約条件が存在する場合は（Ｓ２３４０：ＹＥＳ）、ステップＳ２３５０に進み、該当する配置制約条件が存在しない場合は（Ｓ２３４０：ＮＯ）、ただちにステップＳ２３８０に進む。
【００７２】
ステップＳ２３５０では、該当する配置制約条件に、後述する予約語「ＯＢＪＥＣＴ」が記述されているか否かを判断する。この判断の結果として、該当する配置制約条件に予約語「ＯＢＪＥＣＴ」が記述されている場合は（Ｓ２３５０：ＹＥＳ）、ステップＳ２３６０に進み、該当する配置制約条件に予約語「ＯＢＪＥＣＴ」が記述されていない場合は（Ｓ２３５０：ＮＯ）、ただちにステップＳ２３７０に進む。
【００７３】
ステップＳ２３６０では、入力したシナリオ情報（狭義）における当該行為に対応する対象情報（図５の対象情報３２５参照）の値を、該当する配置制約条件の予約語「ＯＢＪＥＣＴ」に代入した後、ステップＳ２３７０に進む。
【００７４】
ステップＳ２３７０では、該当する配置制約条件（ステップＳ２３６０で代入処理されたものを含む）を、該当する配置制約条件の集合（以下「配置制約条件情報」という）に追加した後、ステップＳ２３８０に進む。
【００７５】
ステップＳ２３８０では、入力したシナリオ情報（狭義）に含まれる行為情報の中に、未選択の行為が存在するか否かを判断する。この判断の結果として、未選択の行為が存在する場合は（Ｓ２３８０：ＹＥＳ）、ステップＳ２３２０に戻り、未選択の行為が存在しない場合は（Ｓ２３８０：ＮＯ）、入力したシナリオ情報（狭義）に含まれるすべての行為についてステップＳ２３３０〜ステップＳ２３７０の処理が終了したものと判断して、ステップＳ２３９０に進む。すなわち、入力したシナリオ情報（狭義）に含まれる行為の数だけ、ステップＳ２３３０〜ステップＳ２３７０の処理が繰り返される。
【００７６】
ステップＳ２３９０では、上記一連の処理後の配置制約条件情報（後述する図１０参照）を、入力したシナリオ情報（狭義）に適用する配置制約条件として出力した後、図７のフローチャートにリターンする。出力された配置制約条件情報は、配置情報決定部４２６に与えられる。
【００７７】
たとえば、図５に示すシナリオ情報３２０の場合は、行為情報３２４として３つの行為（「歩く」、「見つける」、「入る」）が含まれているため、ステップＳ２３３０〜ステップＳ２３７０の処理は、３回繰り返されることになる。
【００７８】
図９は、配置制約条件データベース４１０に格納された配置制約条件テーブルの一例を示す図である。
【００７９】
配置制約条件テーブルは、上記のように、アニメーション空間におけるオブジェクトの行為と配置制約条件との対応関係を示すテーブルである。図９に示す配置制約条件テーブル４１１には、キー４１２となる行為情報（たとえば、「歩く」、「見つける」、「入る」など）に対応付けて、配置制約条件が記述されている。ここでは、配置制約条件は、たとえば、演技前位置制約条件４１３、演技後位置制約条件４１４、動作制約条件４１５、時間制約条件４１６、および距離制約条件４１７で構成されている。演技前位置制約条件４１３は、オブジェクトの演技開始直前の位置制約条件を示す。演技後位置制約条件４１４は、オブジェクトの演技終了直後の位置制約条件を示す。動作制約条件４１５は、オブジェクトの演技の動作タイプの制約条件を示す。時間制約条件４１６は、オブジェクトの演技時間の制約条件を示す。距離制約条件４１７は、オブジェクトの演技で対象との距離の制約条件を示す。
【００８０】
なお、配置制約条件は、演技前位置制約条件４１３、演技後位置制約条件４１４、動作制約条件４１５、時間制約条件４１６、および距離制約条件４１７のうち、少なくとも１つの制約条件で構成してもよい。
【００８１】
特に、演技前位置制約条件４１３および演技後位置制約条件４１４は、オブジェクトのアニメーション空間内における配置の受け入れ度合いを示す評価関数（たとえば、オブジェクトのポテンシャル値のアニメーション空間上の分布を示すポテンシャル関数）で表現可能である。そのため、上記のように、配置制約条件データベース４１０には、配置制約条件テーブルに加えて、ポテンシャル関数テーブルが格納されている。ポテンシャル関数テーブルは、配置制約条件とポテンシャル関数との対応関係を示すテーブルである。
【００８２】
ここでは、演技前位置制約条件４１３および演技後位置制約条件４１４は、位置関係を指定する予約語によって表記される。位置関係を指定する予約語には、括弧（「（）」）内に、その対象が記述される。
【００８３】
位置関係を指定する予約語としては、たとえば、「ａｔ」、「ａｌｏｎｇ」、「ｉｎ」、「ｎｅａｒ」、「ｏｕｔｓｉｄｅ＿ｏｆ」などがある。「ａｔ」は、オブジェクトの位置を１点で指定する。「ａｌｏｎｇ」は、オブジェクトの位置を直線上の範囲で指定する。「ｉｎ」は、オブジェクトの位置を内側の領域で指定する。「ｎｅａｒ」は、オブジェクトの位置を他のオブジェクトからの距離で指定する。「ｏｕｔｓｉｄｅ＿ｏｆ」は、オブジェクトの位置を外側の領域で指定する。また、位置関係を指定する予約語の括弧内に記述される対象としては、たとえば、「歩行領域」、「ＬＡＳＴ＿ＳＥＬＦ」、「ＯＢＪＥＣＴ」などがある。「歩行領域」は、歩行可能領域を示す。「ＬＡＳＴ＿ＳＥＬＦ」は、演技直前の主体を指定する予約語である。「ＯＢＪＥＣＴ」は、任意の対象を指定する予約語である。
【００８４】
たとえば、図９に示す配置制約条件テーブル４１１において、「歩く」という行為をキー４１２とした場合、「歩く」というキー４１２に対応する演技前位置制約条件４１３として、「ｉｎ（歩行領域）」と「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」が記述されている。これは、「歩く」という演技の開始直前の位置は、歩行可能領域の中にあり、かつ、演技直前の主体の座標の近くである、という制約条件を示している。
【００８５】
また、図９に示す配置制約条件テーブル４１１において、「歩く」というキー４１２に対応する演技後位置制約条件４１４として、「ｉｎ（歩行領域）」が記述されている。これは、「歩く」という演技の終了直後の位置も、歩行可能領域の中にある、ということを示している。
【００８６】
また、図９に示す配置制約条件テーブル４１１において、「歩く」というキー４１２に対応する動作制約条件４１５として、「ＴＹＰＥ＿ＷＡＬＫ」が記述されている。ここでは、動作制約条件４１５は、動作タイプの定数によって表記される。「ＴＹＰＥ＿ＷＡＬＫ」は、オブジェクトの移動速度が、ある一定速度である、という制約条件を示している。すなわち、これは、「歩く」という行為は、「ＴＹＰＥ＿ＷＡＬＫ」という動作タイプに限定される、ということを示している。なお、人間が歩く速度は、オブジェクトによって変わるものであるが、ここでは説明を簡便にするため、歩く速度は、オブジェクトで共通であるとして、たとえば、大人の平均的な歩行速度である毎秒１ｍとする。
【００８７】
また、図９に示す配置制約条件テーブル４１１において、「歩く」というキー４１２に対応する時間制約条件４１６として、「４.０」が記述されている。これは、「歩く」という行為の時間が、４.０秒という制約を持つことを示している。
【００８８】
また、図９に示す配置制約条件テーブル４１１において、「見つける」という行為をキー４１２とした場合、「見つける」というキー４１２に対応する演技前位置制約条件４１３として、「ｎｅａｒ（ＯＢＪＥＣＴ）」が記述されている。これは、「見つける」という演技の開始直前の位置は、「ＯＢＪＥＣＴ」（対象）の座標の近くである、という制約条件を示している。上記のように、「ＯＢＪＥＣＴ」には、行為の対象情報（たとえば、図５のシナリオ情報３２０では「本屋」）が代入される。また、「見つける」というキー４１２に対応する演技後位置制約条件４１４としては、何も記述されていないが、これは、演技の終了直後の位置には特に制約がないことを示している。
【００８９】
また、図９に示す配置制約条件テーブル４１１において、「見つける」というキー４１２に対応する動作制約条件４１５として、「ＴＹＰＥ＿ＦＩＮＤ」という、動作タイプの定数が記述されている。「ＴＹＰＥ＿ＦＩＮＤ」は、見つける動作を示している。また、「見つける」というキー４１２に対応する時間制約条件４１６として、「２.０」が記述されている。これは、「見つける」という行為の時間が、２.０秒という制約を持つことを示している。さらに、「見つける」というキー４１２に対応する距離制約条件４１７として、「５.０」が記述されている。これは、何かを見つける距離が、５.０ｍという制約を持つことを示している。なお、距離制約条件４１７は、動作制約条件４１５の種類にあらかじめ対応付けしておくことも可能である。
【００９０】
また、図９に示す配置制約条件テーブル４１１において、「入る」という行為をキー４１２とした場合、「入る」というキー４１２に対応する演技前位置制約条件４１３として、「ｏｕｔｓｉｄｅ＿ｏｆ（ＯＢＪＥＣＴ）」と「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」が記述されている。これは、「入る」という演技の開始直前の位置は、「ＯＢＪＥＣＴ」（対象）の外側にあり、かつ、演技直前の主体の座標の近くである、という制約条件を示している。
【００９１】
また、図９に示す配置制約条件テーブル４１１において、「入る」というキー４１２に対応する演技後位置制約条件４１４として、「ｉｎ（ＯＢＪＥＣＴ）」が記述されている。これは、「入る」という演技の終了直後の位置は、「ＯＢＪＥＣＴ」（対象）の内側にある、という制約条件を示している。
【００９２】
また、図９に示す配置制約条件テーブル４１１において、「入る」というキー４１２にに対応する動作制約条件４１５として、「ＴＹＰＥ＿ＷＡＬＫ」が記述されている。これは、「入る」という行為は、「ＴＹＰＥ＿ＷＡＬＫ」という動作タイプに限定される、ということを示している。また、「入る」というキー４１２に対応する時間制約条件４１６として、「３.０」が記述されている。これは、「入る」という行為の時間が、３.０秒という制約を持つことを示している。
【００９３】
図１０は、図５のシナリオ情報３２０に対応する配置制約条件情報の一例を示す図である。
【００９４】
図１０に示す配置制約条件情報４２５は、図９の配置制約条件テーブル４１１を用いて、図５のシナリオ情報３２０に、図８の配置制約条件決定処理を施すことによって得られる。すなわち、配置制約条件決定部４２４は、図５のシナリオ情報３２０を入力すると、シナリオ情報３２０に含まれる３つの行為（「歩く」、「見つける」、「入る」）のそれぞれに対して、図９の配置制約条件テーブル４１１を参照して、対応する配置制約条件を検索する。そして、該当する配置制約条件に予約語「ＯＢＪＥＣＴ」が記述されている場合は、その配置制約条件の「ＯＢＪＥＣＴ」に、当該行為に対応する対象情報３２５を代入する。ここでは、「見つける」の「ｎｅａｒ（ＯＢＪＥＣＴ）」ならびに「入る」の「ｏｕｔｓｉｄｅ＿ｏｆ（ＯＢＪＥＣＴ）」および「ｉｎ（ＯＢＪＥＣＴ）」の各「ＯＢＪＥＣＴ」に、両行為の対象情報３２５である「本屋」を代入する。このようにして得られた配置制約条件の集合が、配置制約条件情報４２５となる。
【００９５】
配置制約条件情報４２５は、上記のように、行為をキー４１２として図９の配置制約条件テーブル４１１から検索した各種配置制約条件（演技前位置制約条件４１３、演技後位置制約条件４１４、動作制約条件４１５、時間制約条件４１６、および距離制約条件４１７）で構成されている。また、配置制約条件情報４２５は、好ましくは、主体ごとに構成されている。また、配置制約条件情報４２５は、図５のシナリオ情報３２０に対応しているが、キー４１２となる行為は、左から右に向かって時系列の並びとなっている。
【００９６】
図１１は、図７の配置情報決定処理の内容を示すフローチャートである。この配置情報決定処理は、オブジェクト配置決定部４２０の配置情報決定部４２６によって実行される。
【００９７】
この配置情報決定処理では、主体別に、各主体の一連の行為を最後尾から順に、つまり、最後の演技から時間を遡って先頭の演技に至るまで順に、配置制約条件（特に演技前位置制約条件４１３および演技後位置制約条件４１４）を処理する。このように逆順で（最後尾から順に）処理を行う理由は、最後の演技のつじつまが合うように前の演技の配置を決定する必要があるためである。
【００９８】
まず、ステップＳ２４１０では、図８のステップＳ２３９０で配置制約条件決定部４２４から出力された配置制約条件情報を入力したか否かを判断する。この判断の結果として、配置制約条件決定部４２４からの配置制約条件情報を入力した場合は（Ｓ２４１０：ＹＥＳ）、ステップＳ２４２０に進み、配置制約条件決定部４２４からの配置制約条件情報を入力していない場合は（Ｓ２４１０：ＮＯ）、配置制約条件決定部４２４からの配置制約条件情報を入力するまで待機する。
【００９９】
ステップＳ２４２０では、入力した配置制約条件情報に対応する主体情報から、未選択の主体を１つ選択する。
【０１００】
そして、ステップＳ２４３０では、ステップＳ２４２０で選択した主体における配置制約条件の中から、未処理の配置制約条件を１つ取得する。ここで取得する配置制約条件は、入力した配置制約条件情報における演技前位置制約条件４１３および演技後位置制約条件４１４である。また、本処理では、その時点で未処理の配置制約条件の中から、最後尾の行為に対応する配置制約条件を１つ取得する。このとき、最後尾の行為に対応する配置制約条件として演技前位置制約条件４１３と演技後位置制約条件４１４の両方が存在する場合は、好ましくは、時間的に後ろにある演技後位置制約条件４１４のほうから、優先して取得する。たとえば、図１０に示す配置制約条件情報４２５の場合、「入る」というキー４１２に対応する「ｉｎ（本屋）」（演技後位置制約条件４１４）を最初に取得する。そして、次に、「入る」というキー４１２に対応する「ｏｕｔｓｉｄｅ＿ｏｆ（本屋）」と「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」（いずれも演技前位置制約条件４１３）を、任意の順序で、それぞれ取得する。
【０１０１】
そして、ステップＳ２４４０では、ポテンシャル関数決定処理を実行する。具体的には、配置制約条件データベース４１０のポテンシャル関数テーブルを参照して、ステップＳ２４３０で取得した配置制約条件に対応するポテンシャル関数を決定する。ポテンシャル関数は、上記のように、オブジェクトのアニメーション空間における配置の受け入れ度合いを示すために用いられる評価関数である。ポテンシャル関数テーブルおよびポテンシャル関数決定処理については、後で詳細に説明する。
【０１０２】
そして、ステップＳ２４５０では、ステップＳ２４４０で演技前位置制約条件のポテンシャル関数を決定した場合、この演技前位置制約条件のポテンシャル関数を、逆順で見て直後の演技の演技後位置制約条件のポテンシャル関数にコピーする。換言すれば、逆順で見て直前の演技の演技前位置制約条件のポテンシャル関数を、次の演技の演技後位置制約条件のポテンシャル関数にコピーする。これは、演技の間で突然位置が変わることはないため、このようなコピー処理を行うことにより、位置の制約条件を保つことができるからである。たとえば、図１０に示す配置制約条件情報４２５の場合、「入る」というキー４１２に対応する「ｏｕｔｓｉｄｅ＿ｏｆ（本屋）」および「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」（いずれも演技前位置制約条件４１３）の各ポテンシャル関数を、「見つける」というキー４１２に対応する演技後位置制約条件４１４のポテンシャル関数にコピーする。また、「見つける」というキー４１２に対応する「ｎｅａｒ（本屋）」（演技前位置制約条件４１３）のポテンシャル関数を、「歩く」というキー４１２に対応する演技後位置制約条件４１４のポテンシャル関数にコピーする。なお、コピー処理が施された演技後位置制約条件は、図１１の配置情報決定処理において「処理済」の配置制約条件とみなされる。
【０１０３】
そして、ステップＳ２４６０では、位置情報決定処理を実行する。具体的には、ステップＳ２４４０で決定したポテンシャル関数を用いて、オブジェクトの当該行為の位置を決定する。この位置情報決定処理については、後で詳細に説明する。
【０１０４】
そして、ステップＳ２４７０では、未処理の配置制約条件（演技前位置制約条件４１３および演技後位置制約条件４１４）が存在するか否かを判断する。この判断の結果として、未処理の配置制約条件が存在する場合は（Ｓ２４７０：ＹＥＳ）、ステップＳ２４３０に戻り、未処理の配置制約条件が存在しない場合は（Ｓ２４７０：ＮＯ）、ステップＳ２４８０に進む。
【０１０５】
ステップＳ２４８０では、未選択の主体が存在するか否かを判断する。この判断の結果として、未選択の主体が存在する場合は（Ｓ２４８０：ＹＥＳ）、ステップＳ２４２０に戻り、未選択の主体が存在しない場合は（Ｓ２４８０：ＮＯ）、ステップＳ２４９０に進む。
【０１０６】
ステップＳ２４９０では、すべての主体について各主体の一連の行為の位置情報が得られたことになるため、ここで得られたすべての情報をオブジェクト配置情報として出力した後、図７のフローチャートにリターンする。オブジェクト配置情報は、上記のように、どのオブジェクト（主体）がどの時点でどの座標に存在するかを示す情報で構成されている。
【０１０７】
たとえば、図５のシナリオ情報３２０を処理して得られた図１０の配置制約条件情報４２５を入力した場合、主体の数は「アクターＡ」の１つであり、たとえば、次の順序でポテンシャル関数決定処理および位置情報決定処理が実行される。まず、「入る」というキー４１２に対応する「ｉｎ（本屋）」（演技後位置制約条件４１４）、「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」（演技前位置制約条件４１３）、および「ｏｕｔｓｉｄｅ＿ｏｆ（本屋）」（演技前位置制約条件４１３）を、この順序で処理する。次に、「見つける」というキー４１２に対応する「ｎｅａｒ（本屋）」（演技前位置制約条件４１３）を処理する。最後に、「歩く」というキー４１２に対応する「ｉｎ（歩行領域）」（演技後位置制約条件４１４）、「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」（演技前位置制約条件４１３）、「ｉｎ（歩行領域）」（演技前位置制約条件４１３）を、この順序で処理する。
【０１０８】
図１２は、図１１のポテンシャル関数決定処理の内容を示すフローチャートである。このポテンシャル関数決定処理では、複数の配置制約条件を演算処理することを可能にするために、各配置制約条件に対応するポテンシャル関数を決定する。
【０１０９】
ステップＳ２４４１では、配置制約条件データベース４１０に格納されたポテンシャル関数テーブルを参照して、図１１のステップＳ２４３０で取得した配置制約条件（演技前位置制約条件４１３または演技後位置制約条件４１４）に対応するポテンシャル関数を取得する。上記のように、演技前位置制約条件４１３および演技後位置制約条件４１４は、位置関係を指定する予約語（たとえば、「ａｔ」、「ａｌｏｎｇ」、「ｉｎ」、「ｎｅａｒ」、「ｏｕｔｓｉｄｅ＿ｏｆ」など）によって表記され、位置関係を指定する予約語には、括弧内にその対象が記述されている。
【０１１０】
図１３は、配置制約条件データベース４１０に格納されたポテンシャル関数テーブルの一例を示す図である。
【０１１１】
ポテンシャル関数テーブルは、上記のように、配置制約条件とポテンシャル関数との対応関係を示すテーブルである。図１３に示すポテンシャル関数テーブル４１８は、配置制約条件（演技前位置制約条件４１３または演技後位置制約条件４１４）を表記するための位置関係を指定する予約語と、ポテンシャル関数との対応関係を示している。
【０１１２】
ポテンシャル関数は、上記のように、オブジェクトのアニメーション空間における配置の受け入れ度合いを示すために用いられる評価関数である。ここで、「ポテンシャル」とは、そのオブジェクトがアニメーション空間（たとえば、３次元空間）内で存在するために必要な位置エネルギーのことである。ポテンシャルの値（以下「ポテンシャル値」という）が小さいほど、そのオブジェクトを安定して配置できることを意味する。すなわち、ポテンシャル関数は、オブジェクトのポテンシャル値のアニメーション空間上での分布を示す関数であり、このポテンシャル関数を利用すれば、ポテンシャル関数の値（ポテンシャル値）が最小になる座標を、オブジェクトの最適な配置の位置（座標）とみなすことができる。このとき、複数のポテンシャル関数を加算して重ね合わせて、最もポテンシャル値が小さい座標を、最適な配置の位置（座標）とみなすこともできる。
【０１１３】
図１３に示すポテンシャル関数テーブル４１８では、位置関係を指定する予約語として、「ａｔ」、「ａｌｏｎｇ」、「ｉｎ」、「ｎｅａｒ」、「ｏｕｔｓｉｄｅ＿ｏｆ」があり、それぞれに対して、対応するポテンシャル関数が設定されている。具体的には、位置関係を指定する予約語「ａｔ」には、ポテンシャル関数Ｐpoint（ｘ０，ｚ０）が、「ａｌｏｎｇ」には、Ｐline（ｘ０，ｚ０，θ）が、「ｉｎ」には、Ｐarea（ｘ０，ｘ１，ｚ０，ｚ１）が、「ｎｅａｒ」には、Ｐcir（ｘ０，ｚ０，Ｌ）またはＰcir（ｘ０，ｚ０，ｖ，ｔ）が、「ｏｕｔｓｉｄｅ＿ｏｆ」には、Ｐextarea（ｘ０，ｘ１，ｚ０，ｚ１）が、それぞれ対応付けられている。ここでは、簡単化のため、３次元のアニメーション空間において、オブジェクトのＹ座標（高さ方向）の値を０に固定し、Ｘ座標とＺ座標における存在確率をポテンシャル関数で示すこととする。ただし、図１３のポテンシャル関数において、変数「ｘ０」、「ｘ１」は、Ｘ座標を示し、変数「ｚ０」、「ｚ１」は、Ｚ座標を示す。また、変数「θ」は、角度を示し、変数「Ｌ」は、距離を示し、変数「ｖ」は、移動速度を示し、変数「ｔ」は、移動時間を示す。
【０１１４】
ポテンシャル関数は、オブジェクトの存在確率分布によって形状が異なる。
【０１１５】
たとえば、点（ｘ０，ｚ０）の近傍にオブジェクトが存在する確率が高いことを示すポテンシャル関数は、位置関係を指定する予約語「ａｔ」に対応するＰpoint（ｘ０，ｚ０）であって、たとえば、次の式（１）で表される。ここで、ｅは、自然対数の底である。
【０１１６】
【数１】
2007316864.tif 000003
【０１１７】
図１４は、たとえば、ポテンシャル関数Ｐpoint（０，０）の外形を示す図である。図１４に示すように、ポテンシャル関数Ｐpoint（０，０）は、座標点（０，０）の近傍でポテンシャル値が小さくなっている、つまり、座標点（０，０）の近傍で存在確率が高くなっている。
【０１１８】
また、点（ｘ０，ｚ０）から距離Ｌだけ離れた円周上の地点で存在確率が高いことを示すポテンシャル関数は、位置関係を指定する予約語「ｎｅａｒ」に対応するＰcir（ｘ０，ｚ０，Ｌ）であって、たとえば、次の式（２）で表される。
【０１１９】
【数２】
2007316864.tif 000004
【０１２０】
また、式（２）は、距離Ｌに代えて移動速度ｖと移動時間ｔを用いることにより、次の式（３）で表すこともできる（ポテンシャル関数Ｐcir（ｘ０，ｚ０，ｖ，ｔ））。
【０１２１】
【数３】
2007316864.tif 000005
【０１２２】
また、座標（ｘ０，ｚ０）を通り、角度θの無限遠線状領域に沿った地点で存在確率が高いことを示すポテンシャル関数は、位置関係を指定する予約語「ａｌｏｎｇ」に対応するＰline（ｘ０，ｚ０，θ）であって、たとえば、次の式（４）で表される。
【０１２３】
【数４】
2007316864.tif 000006
【０１２４】
また、矩形領域（ｘ０＜ｘ＜ｘ１，ｚ０＜ｚ＜ｚ１）の範囲内で等しい存在確率を持ち、その領域の範囲外では存在しないことを示すポテンシャル関数は、位置関係を指定する予約語「ｉｎ」に対応するＰarea（ｘ０，ｘ１，ｚ０，ｚ１）であって、たとえば、次の式（５）で表される。
【０１２５】
【数５】
2007316864.tif 000007
【０１２６】
逆に、矩形領域（ｘ０＜ｘ＜ｘ１，ｚ０＜ｚ＜ｚ１）の範囲外で等しい存在確率を持ち、その領域の範囲内では存在しないことを示すポテンシャル関数は、位置関係を指定する予約語「ｏｕｔｓｉｄｅ＿ｏｆ」に対応するＰextarea（ｘ０，ｘ１，ｚ０，ｚ１）であって、たとえば、次の（６）で表される。
【０１２７】
【数６】
2007316864.tif 000008
【０１２８】
なお、式（５）および式（６）の関数は、領域の境界で不連続であるため、領域の境界で微分不可能な関数である。ただし、これが問題になる場合は、たとえば、ハニング窓など微分可能な窓関数を利用することができる。
【０１２９】
そして、ステップＳ２４４２では、図１１のステップＳ２４３０で取得した配置制約条件（演技前位置制約条件４１３または演技後位置制約条件４１４）に、対象の記述があるか否かを判断する。たとえば、図１０に示す配置制約条件情報４２５の場合、「ｉｎ（歩行領域）」における「歩行領域」、「ｎｅａｒ（本屋）」における「本屋」、「ｏｕｔｓｉｄｅ＿ｏｆ（本屋）」における「本屋」、「ｉｎ（本屋）」における「本屋」が、それぞれ、ここでいう対象である。この判断の結果として、対象の記述がある場合は（Ｓ２４４２：ＹＥＳ）、ステップＳ２４４３に進み、対象の記述がない場合は（Ｓ２４４２：ＮＯ）、ただちにステップＳ２４４５に進む。
【０１３０】
ステップＳ２４４３では、対象の領域の座標を取得する。具体的には、オブジェクト配置決定部４２０（配置情報決定部４２６）は、素材決定部４４０に対して、当該配置制約条件の場所情報（元となるシナリオ情報３２０の場所情報３２２）および対象（後述する素材名称４３２）をキーとして、当該配置制約条件の対象に対応する領域の座標を要求し、取得する。このとき、素材決定部４４０は、オブジェクト配置決定部４２０（配置情報決定部４２６）から与えられた上記情報を用いて、素材情報データベース４３０に格納されたコンテンツ情報を検索し、該当する領域座標を取得して、オブジェクト配置決定部４２０（配置情報決定部４２６）に送る。
【０１３１】
図１５は、コンテンツ情報の要部の一例を示す図である。図１５に示すコンテンツ情報４３１は、素材情報の一部として、素材情報データベース４３０に格納されている。 コンテンツ情報４３１は、コンテンツを構成する素材（たとえば、背景やオブジェクトなど）の名称（以下「素材名称」という）４３２と、それに対応する領域の座標（以下「領域座標」という）４３３とを含んでいる。コンテンツ情報４３１は、素材が存在する場所情報（たとえば、シナリオ情報３２０の場所情報３２２参照）とも対応付けられている。素材決定部４４０は、オブジェクト配置決定部４２０（配置情報決定部４２６）からコンテンツ情報の検索を要求されると、指定された領域情報（元となるシナリオ情報３２０の場所情報３２２）および素材名称４３２（当該配置制約条件の対象）に対応する領域座標４３３を素材情報データベース４３０から読み出し、オブジェクト配置決定部４２０（配置情報決定部４２６）に出力する。
【０１３２】
図１５は、図１０の配置制約条件情報４２５を入力した場合において、図５のシナリオ情報３２０の場所情報３２２（「代官山（街）」）に対応して素材決定部４４０により検索されるコンテンツ情報４３１の一例を示している。ここでは、３次元のアニメーション空間を右手座標系 で表す。具体的には、画面の右方向をＸ軸、高さ方向をＹ軸、手前方向をＺ軸とする。また、領域座標４３３は、右手座標系で表される３次元空間の座標点（ｘ，ｙ，ｚ）を１組とし、各方向の座標値の最小値と最大値の組を記号「−」でつなぐことによって表記する。
【０１３３】
たとえば、図１５において、「代官山（街）」という場所情報３２２における「歩行領域」という素材名称４３２に対応する領域座標４３３は、「（−１５，０，０）−（１５，０，３）」である。これは、当該「歩行領域」の領域が、Ｘ座標が−１５から＋１５まで、Ｙ座標が０、Ｚ座標が０から３までの矩形領域であることを示している。
【０１３４】
また、図１５において、「代官山（街）」という場所情報３２２における「本屋」という素材名称４３２に対応する領域座標４３３は、「（−４，０，−５）−（０，１０，０）」である。これは、当該「本屋」の領域が、Ｘ座標が−４から０まで、Ｙ座標が０から１０まで、Ｚ座標が−５から０までの矩形領域であることを示している。
【０１３５】
そして、ステップＳ２４４４では、ステップＳ２４４３で取得した領域座標を、ステップＳ２４４１で取得したポテンシャル関数に代入した後、ステップＳ２４４５に進む。具体的な処理例については、後で詳述する。
【０１３６】
そして、ステップＳ２４４５では、当該配置制約条件に、予約語「ＬＡＳＴ＿ＳＥＬＦ」があるか否かを判断する。上記のように、「ＬＡＳＴ＿ＳＥＬＦ」は、演技直前の主体を指定する予約語である。この判断の結果として、予約語「ＬＡＳＴ＿ＳＥＬＦ」がある場合は（Ｓ２４４５：ＹＥＳ）、ステップＳ２４４６に進み、予約語「ＬＡＳＴ＿ＳＥＬＦ」がない場合は（Ｓ２４４５：ＮＯ）、ただちにステップＳ２４４７に進む。
【０１３７】
ステップＳ２４４６では、予約語「ＬＡＳＴ＿ＳＥＬＦ」を含む当該配置制約条件に対応する、ステップＳ２４４１で取得したポテンシャル関数に、演技直前の主体の座標を示す変数（ｘlast，ｙlast，ｚlast）を代入した後、ステップＳ２４４７に進む。具体的な処理例については、後で詳述する。
【０１３８】
ステップＳ２４４７では、ステップＳ２４４１で取得したポテンシャル関数に、距離、速度、または時間に関する変数があるか否かを判断する。この判断の結果として、距離、速度、または時間に関する変数がある場合は（Ｓ２４４７：ＹＥＳ）、ステップＳ２４４８に進み、いずれの変数もない場合は（ステップＳ２４４７：ＮＯ）、ただちにステップＳ２４４９に進む。
【０１３９】
ステップＳ２４４８では、ステップＳ２４４１で取得したポテンシャル関数に、該当する距離、速度、または時間の値を代入した後、ステップＳ２４４９に進む。具体的には、たとえば、図１０に示す配置制約条件情報４２５の場合、距離の変数には、該当する距離制約条件４１７の値を、速度の変数には、該当する動作制約条件４１５で設定された値を、時間の変数には、該当する時間制約条件４１６の値を、それぞれ代入する。具体的な処理例については、後で詳述する。
【０１４０】
ステップＳ２４４９では、ステップＳ２４４１〜ステップＳ２４４８の処理結果であるポテンシャル関数を出力した後、図１１のフローチャートにリターンする。
【０１４１】
ここで、たとえば、図５のシナリオ情報３２０に対応する図１０の配置制約条件情報４２５を入力した場合を例にとって、図１１のポテンシャル関数決定処理（ステップＳ２４４０）、つまり、配置制約条件からポテンシャル関数を決定する処理の具体例を説明する。
【０１４２】
図１０の配置制約条件情報４２５を入力した場合、たとえば、上記のように、「入る」というキー４１２に対応する「ｉｎ（本屋）」（演技後位置制約条件４１４）→「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」（演技前位置制約条件４１３）→「ｏｕｔｓｉｄｅ＿ｏｆ（本屋）」（演技前位置制約条件４１３）、次に、「見つける」というキー４１２に対応する「ｎｅａｒ（本屋）」（演技前位置制約条件４１３）、最後に、「歩く」というキー４１２に対応する「ｉｎ（歩行領域）」（演技後位置制約条件４１４）→「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」（演技前位置制約条件４１３）→「ｉｎ（歩行領域）」（演技前位置制約条件４１３）、という順序で処理が行われる。
【０１４３】
まず、「入る」というキー４１２に対応する「ｉｎ（本屋）」（演技後位置制約条件４１４）を取得すると、「ｉｎ」に対応するポテンシャル関数Ｐarea（ｘ０，ｘ１，ｚ０，ｚ１）を取得する。そして、「ｉｎ」には「本屋」という対象が記述されているため、素材決定部４４０に要求して、シナリオ情報３２０の「代官山（街）」（場所情報３２２）に対応するコンテンツ情報４３１を検索し、「本屋」という素材名称４３２に対応する領域座標４３３を取得する。「本屋」に対応する領域座標４３３は、「（−４，０，−５）−（０，１０，０）」である。したがって、ポテンシャル関数Ｐarea（ｘ０，ｘ１，ｚ０，ｚ１）に、「本屋」の矩形領域（ｘ０＝−４，ｘ１＝０，ｚ０＝−５，ｚ１＝０）を代入する。これにより、「ｉｎ（本屋）」に対応するポテンシャル関数は、Ｐarea（−４，０，−５，０）となる。
【０１４４】
また、「入る」というキー４１２に対応する「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」（演技前位置制約条件４１３）を取得すると、「ｎｅａｒ」に対応するポテンシャル関数Ｐcir（ｘ０，ｚ０，ｖ，ｔ）を取得する。そして、「ｎｅａｒ」には「ＬＡＳＴ＿ＳＥＬＦ」という予約語があるため、ポテンシャル関数Ｐcir（ｘ０，ｚ０，ｖ，ｔ）に、変数（ｘlast，ｙlast，ｚlast）を代入する。これにより、ポテンシャル関数は、Ｐcir（ｘlast，ｚlast，ｖ，ｔ）となる。そして、このポテンシャル関数Ｐcir（ｘlast，ｚlast，ｖ，ｔ）には速度ｖと時間ｔがあるため、このポテンシャル関数Ｐcir（ｘlast，ｚlast，ｖ，ｔ）に、「ＴＹＰＥ＿ＷＡＬＫ」という動作制約条件４１５に対応する速度（上記の例では、毎秒１ｍ）と、時間制約条件４１６に記述された「３.０」という時間（３秒）を、それぞれ代入する。これにより、「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」に対応するポテンシャル関数は、Ｐcir（ｘlast，ｚlast，３，１）となる。
【０１４５】
また、「入る」というキー４１２に対応する「ｏｕｔｓｉｄｅ＿ｏｆ（本屋）」（演技前位置制約条件４１３）を取得すると、「ｏｕｔｓｉｄｅ＿ｏｆ」に対応するポテンシャルＰextarea（ｘ０，ｘ１，ｚ０，ｚ１）を取得する。そして、「ｏｕｔｓｉｄｅ＿ｏｆ」には「本屋」という対象が記述されているため、上記と同様の処理を行って、「本屋」に対応する領域座標４３３を取得する。そして、ポテンシャル関数Ｐextarea（ｘ０，ｘ１，ｚ０，ｚ１）に、「本屋」の矩形領域（ｘ０＝−４，ｘ１＝０，ｚ０＝−５，ｚ１＝０）を代入する。これにより、「ｏｕｔｓｉｄｅ＿ｏｆ（本屋）」に対応するポテンシャル関数は、Ｐextarea（−４，０，−５，０）となる。
【０１４６】
次に、「見つける」というキー４１２に対応する「ｎｅａｒ（本屋）」（演技前位置制約条件４１３）を取得すると、「ｎｅａｒ」に対応するポテンシャル関数Ｐcir（ｘ０，ｚ０，Ｌ）を取得する。そして、「ｎｅａｒ」には「本屋」という対象が記述されているため、上記と同様の処理を行って、「本屋」に対応する領域座標４３３を取得する。ここで、領域を点として扱う必要がある場合は、その領域の中心点の座標（以下「中心座標」という）を、素材の位置として採用するものとする。「本屋」の矩形領域の中心座標は、（−２，５，−２.５）である。したがって、Ｐcir（ｘ０，ｚ０，Ｌ）に、「本屋」の矩形領域の中心座標（ｘ０＝−２，ｚ０＝−２.５）を代入する。これにより、ポテンシャル関数は、Ｐcir（−２，−２.５，Ｌ）となる。そして、動作制約条件４１５が「ＴＹＰＥ＿ＦＩＮＤ」であり、かつ、このポテンシャル関数Ｐcir（−２，−２.５，Ｌ）には距離Ｌがあるため、このポテンシャル関数Ｐcir（−２，−２.５，Ｌ）に、距離制約条件４１７に記述された「５.０」という視認距離（５ｍ）を代入する。これにより、「ｎｅａｒ（本屋）」に対応するポテンシャル関数は、Ｐcir（−２，−２.５，５）となる。
【０１４７】
次に、「歩く」というキー４１２に対応する「ｉｎ（歩行領域）」（演技後位置制約条件４１４）を取得すると、「ｉｎ」に対応するポテンシャル関数Ｐarea（ｘ０，ｘ１，ｚ０，ｚ１）を取得する。そして、「ｉｎ」には「歩行領域」という対象が記述されているため、素材決定部４４０に要求して、シナリオ情報３２０の「代官山（街）」（場所情報３２２）に対応するコンテンツ情報４３１を検索し、「歩行領域」という素材名称４３２に対応する領域座標４３３を取得する。「歩行領域」に対応する領域座標４３３は、「（−１５，０，０）−（１５，０，３）」である。したがって、ポテンシャル関数Ｐarea（ｘ０，ｘ１，ｚ０，ｚ１）に、「歩行領域」の矩形領域（ｘ０＝−１５，ｘ１＝１５，ｚ０＝０，ｚ１＝３）を代入する。これにより、「ｉｎ（歩行領域）」に対応するポテンシャル関数は、Ｐarea（−１５，１５，０，３）となる。
【０１４８】
また、「歩く」というキー４１２に対応する「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」（演技前位置制約条件４１３）を取得すると、「ｎｅａｒ」に対応するポテンシャル関数Ｐcir（ｘ０，ｚ０，ｖ，ｔ）を取得する。そして、「ｎｅａｒ」には「ＬＡＳＴ＿ＳＥＬＦ」という予約語があるため、ポテンシャル関数Ｐcir（ｘ０，ｚ０，ｖ，ｔ）に、変数（ｘlast，ｙlast，ｚlast）を代入する。これにより、ポテンシャル関数は、Ｐcir（ｘlast，ｚlast，ｖ，ｔ）となる。そして、このポテンシャル関数Ｐcir（ｘlast，ｚlast，ｖ，ｔ）には速度ｖと時間ｔがあるため、このポテンシャル関数Ｐcir（ｘlast，ｚlast，ｖ，ｔ）に、「ＴＹＰＥ＿ＷＡＬＫ」という動作制約条件４１５に対応する速度（上記の例では、毎秒１ｍ）と、時間制約条件４１６に記述された「４.０」という時間（４秒）を、それぞれ代入する。これにより、「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」に対応するポテンシャル関数は、Ｐcir（ｘlast，ｚlast，４，１）となる。
【０１４９】
また、「歩く」というキー４１２に対応する「ｉｎ（歩行領域）」（演技前位置制約条件４１３）を取得すると、「ｉｎ」に対応するポテンシャル関数Ｐarea（ｘ０，ｘ１，ｚ０，ｚ１）を取得する。そして、「ｉｎ」には「歩行領域」という対象が記述されているため、上記と同様の処理を行って、「歩行領域」に対応する領域座標４３３を取得する。そして、ポテンシャル関数Ｐarea（ｘ０，ｘ１，ｚ０，ｚ１）に、「歩行領域」の矩形領域（ｘ０＝−１５，ｘ１＝１５，ｚ０＝０，ｚ１＝３）を代入する。これにより、「ｉｎ（歩行領域）」に対応するポテンシャル関数は、Ｐarea（−１５，１５，０，３）となる。
【０１５０】
図１６は、図１１のポテンシャル関数決定処理（ステップＳ２４４０）の結果として出力されるポテンシャル関数の一例を示す図である。図１６に示す例は、図５のシナリオ情報３２０に対応する図１０の配置制約条件情報４２５を入力した場合に出力されるポテンシャル関数を示している。すなわち、図１６は、図１０の配置制約条件情報４２５における演技前位置制約条件４１３および演技後位置制約条件４１４を、具体的にポテンシャル関数で表現した形をしている。ただし、上記のように、図１１の配置情報決定処理では、演技前位置制約条件４１３のポテンシャル関数を、逆順で見て直後の演技の演技後位置制約条件４１４のポテンシャル関数にコピーするため（ステップＳ２４５０）、ポテンシャル関数の数は、配置制約条件情報４２５における演技前位置制約条件４１３および演技後位置制約条件４１４の数よりも増加している。具体的には、上記のように、「入る」というキー４１２に対応する「ｏｕｔｓｉｄｅ＿ｏｆ（本屋）」および「ｎｅａｒ（ＬＡＳＴ＿ＳＥＬＦ）」の各ポテンシャル関数Ｐextarea（−４，０，−５，０）、Ｐcir（ｘlast，ｚlast，３，１）は、「見つける」というキー４１２に対応する演技後位置制約条件４１４のポテンシャル関数にコピーされている。また、「見つける」というキー４１２に対応する「ｎｅａｒ（本屋）」のポテンシャル関数Ｐcir（−２，−２.５，５）は、「歩く」というキー４１２に対応する演技後位置制約条件４１４のポテンシャル関数にコピーされている。
【０１５１】
図１７は、図１１の位置情報決定処理の内容を示すフローチャートである。この位置情報決定処理では、ポテンシャル関数からオブジェクトの位置情報を決定する。
【０１５２】
ステップＳ２４５１では、ステップＳ２４４０で得られたポテンシャル関数に、変数「ｘlast」、「ｙlast」、または「ｚlast」があるか否かを判断する。この判断の結果として、当該ポテンシャル関数に変数「ｘlast」、「ｙlast」、または「ｚlast」がある場合は（Ｓ２４５１：ＹＥＳ）、ステップＳ２４５２に進み、当該ポテンシャル関数にいずれの変数「ｘlast」、「ｙlast」、「ｚlast」もない場合は（ステップＳ２４５１：ＮＯ）、ただちにステップＳ２４５３に進む。
【０１５３】
ステップＳ２４５２では、直前に決定された位置情報、つまり、１ループ前の位置決定処理で得られた座標（ｘ，ｙ，ｚ）の値を、対応する変数「ｘlast」、「ｙlast」、「ｚlast」にそれぞれ代入した後、ステップＳ２４５３に進む。
【０１５４】
ステップＳ２４５３では、ステップＳ２４４０で得られたポテンシャル関数が属する、同一のキー４１２に対応する配置制約条件に、ポテンシャル関数が複数存在するか否かを判断する。これは、同一のキー４１２に対応する演技前位置制約条件４１３および演技後位置制約条件４１４は、図１０および図１６に示すように、複数の配置制約条件を含む場合があるためである。すなわち、同一キーの同一種類の配置制約条件として、ポテンシャル関数が複数ある場合は、複数の配置制約条件があることを示している。このような場合には、複数のポテンシャル関数を加算して得られた新しいポテンシャル関数の値（ポテンシャル値）が最小になる座標を、オブジェクトの最適な位置（座標）とみなすことができる。この判断の結果として、ポテンシャル関数が複数存在する場合は（Ｓ２４５３：ＹＥＳ）、ステップＳ２４５４に進み、ポテンシャル関数が１つだけの場合は（Ｓ２４５３：ＮＯ）、ただちにステップＳ２４５５に進む。
【０１５５】
ステップＳ２４５４では、ステップＳ２４５３で複数存在すると判断されたポテンシャル関数を加算した後、ステップＳ２４５５に進む。具体的には、たとえば、図１６に示す例の場合、「歩く」というキー４１２に対応する演技前位置制約条件４１３には、Ｐarea（−１５，１５，０，３）とＰcir（ｘlast，ｚlast，４，１）という２つのポテンシャル関数が存在するため、この２つのポテンシャル関数を加算する。この加算の結果は、Ｐarea（−１５，１５，０，３）＋Ｐcir（ｘlast，ｚlast，４，１）となる。
【０１５６】
ステップＳ２４５５では、ポテンシャル関数の値（ポテンシャル値）が最小になる座標（ｘ，ｙ，ｚ）を算出する（最小値判定処理）。ただし、ステップＳ２４５４で複数のポテンシャル関数が加算された場合は、加算後のポテンシャル関数について、ポテンシャル値が最小になる座標（ｘ，ｙ，ｚ）を算出する。具体的な算出方法としては、たとえば、微分計算による最小値判定法や、全探索、ポテンシャル場から受ける「力」に比例した分だけ摂動をかけて探索する摂動法など、各種の方法を用いることができる。どの算出方法を用いるかは、あらかじめ設定されている。ポテンシャル関数が最小値をとる座標は、オブジェクトの最適な位置（座標）とみなすことができ、最適な位置情報となる。
【０１５７】
そして、ステップＳ２４５６では、ステップＳ２４５５で算出した座標が複数存在するか否かを判断する。この判断の結果として、ポテンシャル値が最小になる座標が複数存在する場合は（Ｓ２４５６：ＹＥＳ）、ステップＳ２４５７に進み、ポテンシャル値が最小になる座標が１つしかない場合は（ステップＳ２４５６：ＮＯ）、ただちにステップＳ２４５８に進む。
【０１５８】
ステップＳ２４５７では、ステップＳ２４５５で算出した複数の座標の中から、１つの座標を選択した後、ステップＳ２４５８に進む。具体的な選択方法としては、たとえば、乱数によって１つを選択する方法や、所定の座標（Ｘ座標、Ｙ座標、Ｚ座標）の値が最も大きい（または小さい）ものを選択する方法、すべての候補の平均座標に最も近い座標を選択する方法など、各種の方法を用いることができる。どの選択方法を用いるかは、あらかじめ設定されている。
【０１５９】
ステップＳ２４５８では、ポテンシャル値が最小になる座標（ｘ，ｙ，ｚ）を、最適な位置情報として出力した後、図１１のフローチャートにリターンする。ただし、ポテンシャル値が最小になる座標が複数存在する場合は、ステップＳ２４５７で選択した１つの座標を、最適な位置情報として出力する。
【０１６０】
なお、図１１のステップＳ２４９０で出力されるオブジェクト配置情報は、図１７のステップＳ２４５８で出力される位置情報に、たとえば、対応する動作制約条件４１５、場所情報３２２、および主体情報３２３を付加して構成されている。
【０１６１】
ここで、図１６のポテンシャル関数が得られた場合を例にとって、図１１の位置情報決定処理（ステップＳ２４６０）、つまり、ポテンシャル関数から位置情報を決定する処理の具体例を説明する。
【０１６２】
まず、「入る」というキー４１２に対応する演技後位置制約条件４１４として、ポテンシャル関数「Ｐarea（−４，０，−５，０）」が得られた場合は、−４≦ｘ≦０、かつ、−５≦ｚ≦０を満たす無数の点が、当該配置制約条件に適合する。そこで、ここでは、たとえば、一例として、Ｘ座標とＺ座標において０.５刻みの各点の中から、平均座標に最も近い座標を選択するという方法を採用する。これにより、出力する位置情報（ｘ，ｙ，ｚ）は、（−２，０，−２.５）となる。なお、出力する位置情報は、この例に限定されるわけではなく、当該配置制約条件に適合する範囲内であれば、どのような座標値であってもよい（他の配置制約条件の場合についても同様）。
【０１６３】
また、「入る」というキー４１２に対応する演技前位置制約条件４１３として、ポテンシャル関数「Ｐextarea（−４，０，−５，０）」と「Ｐcir（ｘlast，ｚlast，３，１）」が得られた場合は、変数「ｘlast」と「ｚlast」に、直前の位置情報（ｘ＝−２，ｚ＝−２.５）をそれぞれ代入した後（ステップＳ２４５２）、加算処理（ステップＳ２４５４）と最小値判定処理（ステップＳ２４５５）を行うことにより、座標点（−２，０，−２.５）を中心として半径３の同心円上の各点が、当該配置制約条件に適合する。そこで、ここでは、たとえば、一例として、Ｚ座標の値が最も大きい座標点を選択するという方法を採用する。これにより、出力する位置情報（ｘ，ｙ，ｚ）は、（−２，０，０.５）となる。
【０１６４】
なお、「見つける」というキー４１２の演技後位置制約条件４１４については、ポテンシャル関数のコピー処理により上記と同じポテンシャル関数が得られるため、出力する位置情報（ｘ，ｙ，ｚ）は、（−２，０，０.５）となる。
【０１６５】
また、「見つける」というキー４１２の演技前位置制約条件４１３として、ポテンシャル関数「Ｐcir（−２，−２.５，５）」が得られた場合は、座標点（−２，０，−２.５）を中心として半径５の同心円上の各点が、当該配置制約条件に適合する。ここでは、当該配置制約条件に適合する範囲内の座標点として、たとえば、（１，０，１.５）を選択する。これにより、出力する位置情報（ｘ，ｙ，ｚ）は、（１，０，１.５）となる。
【０１６６】
なお、「歩く」というキー４１２の演技後位置制約条件４１４として、ポテンシャル関数「Ｐarea（−１５，１５，０，３）」と「Ｐcir（−２，−２.５，５）」が得られた場合は、座標点（−２，０，−２.５）を中心として半径５の同心円上の各点のうち、−１５≦ｘ≦１５、かつ、０≦ｚ≦３を満たす点が、当該配置制約条件に適合する。ここでは、当該配置制約条件に適合する範囲内の座標点として、「見つける」というキー４１２の演技前位置制約条件４１３に対応する位置情報と同じ位置情報（１，０，１.５）を選択する。これにより、出力する位置情報（ｘ，ｙ，ｚ）は、（１，０，１.５）となる。
【０１６７】
また、「歩く」というキー４１２の演技前位置制約条件４１３として、ポテンシャル関数「Ｐarea（−１５，１５，０，３）」と「Ｐcir（ｘlast，ｚlast，４，１）」が得られた場合は、変数「ｘlast」と「ｚlast」に、直前の位置情報（ｘ＝１，ｚ＝１.５）をそれぞれ代入した後（ステップＳ２４５２）、加算処理（ステップＳ２４５４）と最小値判定処理（ステップＳ２４５５）を行うことにより、座標点（１，０，１.５）を中心として半径４の同心円上の各点のうち、−１５≦ｘ≦１５、かつ、０≦ｚ≦３を満たす点が、当該配置制約条件に適合する。そこで、ここでは、たとえば、Ｘ座標の値が最も大きい座標点を選択するという方法を採用する。これにより、出力する位置情報（ｘ，ｙ，ｚ）は、（５ ，０，１.５）となる。
【０１６８】
図１８は、図５のシナリオ情報３２０が入力された場合におけるオブジェクト（アクターＡ）の移動経路の一例を示す図である。ここで、オブジェクト（アクターＡ）７１１の移動経路は、白抜き矢印７１２で示し、３次元のアニメーション空間は、右手座標系で表している。すなわち、ここでは、画面の右方向をＸ軸、高さ方向をＹ軸、手前方向をＺ軸とする。なお、図１８に示すアニメーションは、図５のシナリオ情報３２０を入力したときにアニメーション構成装置４００から出力されるアニメーション情報に基づいている。特に、オブジェクト（アクターＡ）７１１の移動経路は、オブジェクト配置決定部４２０から出力されるオブジェクト配置情報に基づいている。
【０１６９】
まず、アクターＡ（オブジェクト７１１）は、右側の座標点（５，０，１.５）から歩き出し、座標点（１，０，１.５）において立ち止まって本屋７１３を見つける行為（演技）を行う。そして、アクターＡ（オブジェクト７１１）は、本屋７１３の近くとして、座標点（−２，０，０.５）まで移動し、その後、座標点（−２，０，−２.５）まで本屋７１３の中に入る。
【０１７０】
なお、上記のように、オブジェクト７１１の移動経路を示す座標値は、この例に限定されるわけではなく、配置制約条件に適合する限り、どのような座標値であってもよい。
【０１７１】
また、オブジェクト配置情報に含まれる位置情報は、上記のように、各行為に対応する演技前位置制約条件４１３を満たす座標値と演技後位置制約条件４１４を満たす座標値のみで構成されている。したがって、演技開始直前の位置から演技終了直後の位置へのオブジェクト７１１の移動は、その間の位置（座標）を補間（たとえば、直線補間）することによって行われる。
【０１７２】
このように、本実施の形態によれば、あらかじめ配置制約条件データベース４１０を設けておき、この配置制約条件データベース４１０を参照して、シナリオ情報３２０に含まれる行為情報３２４に適用する配置制約条件を決定し、得られた配置制約条件を適用してオブジェクトの配置情報を決定するため、テンプレートを利用することなく、しかも、アニメーションシナリオにオブジェクトの位置関係が明記されていない場合でも、オブジェクトの配置情報を得ることができる。
【０１７３】
また、各行為に適用する配置制約条件を決定する際に、主体別に、各主体の一連の複数の行為を時間的に最後尾から遡って処理を行うため、一連の複数の行為において、各行為の前後でつながったオブジェクトの配置を実現することができる。すなわち、相前後する演技の間でつじつまが合うようにオブジェクトの位置を決定することができる。
【０１７４】
特に、本実施の形態によれば、オブジェクトの配置情報を決定するのに必要な配置制約条件は、行為の数のみに比例するため、テンプレートを用いる手法に比べてパターンの数を大幅に少なくすることができる。また、上記のように、一般的に、メールやニュース記事などのテキスト文からアニメーションのシナリオを生成する場合、そのシナリオにオブジェクトの配置情報が記述されることはほとんどない。また、映画のシナリオなどでも、オブジェクトの配置情報は自明であるため、省略されることが多い。本実施の形態によれば、このようなシナリオからでも、オブジェクトの配置情報を決定することができ、アニメーションの自動生成を可能にする。
【０１７５】
なお、本実施の形態では、各主体の一連の複数の行為を時間的に最後尾から遡って処理するようにしているが、このように時間的に後ろの行為から前の行為に向けて逆向きに配置制約条件の処理を行うのみならず、時間の流れに従って前の行為から後ろの行為に向けても配置制約条件の処理を行う、つまり、時間的に前後の行為について両方向から配置制約条件の処理を行うことによって、より一層場面に適切な位置情報を出力することができる。
【０１７６】
また、本実施の形態では、図９に示すように、行為ごとに配置制約条件を設定しているが、これに限定されない。
【０１７７】
たとえば、行為のみでなくオブジェクト（主体）ごとまたはオブジェクト（主体）のカテゴリごとに配置制約条件を設定しておき、行為とオブジェクトまたはオブジェクトのカテゴリとをキーとして、必要な配置制約条件を決定するようにしてもよい。これにより、オブジェクトの個性や特徴に応じた配置制約条件を決定することができ、個性や特徴に基づいたアニメーションを生成することができる。
【０１７８】
具体的には、たとえば、キーとして、単に「歩く」だけでなく、「太郎・歩く」や、「幼児・歩く」、「犬・歩く」など、オブジェクトごとまたはオブジェクトのカテゴリごとに配置制約条件を設定する。このとき、たとえば、「幼児・歩く」に対して、毎秒０.５ｍの速度を設定する動作制約条件を設定しておけば、単に「歩く」とした場合に比べて、より遅く移動する様子を表現することができる。また、単なる「寝る」に対して、オブジェクトの座標がベッドの中にあることを示す演技後位置制約条件を設定し、「犬・寝る」に対して、オブジェクトの座標が犬小屋の中にあることを示す演技後位置制約条件を設定しておけば、オブジェクトが犬の場合は、ベッドではなく犬小屋に寝る様子を表現することができる。
【０１７９】
また、行為のみでなく他の付加情報（たとえば、シナリオに記述されるシーンの状況を示すＩＤ）ごとに配置制約条件を設定しておき、行為と付加情報（シーンの状況を示すＩＤ）とをキーとして、必要な配置制約条件を決定するようにしてもよい。これにより、付加情報の内容に応じた配置制約条件を決定することができ、付加情報の内容に基づいたアニメーションを生成することができる。
【０１８０】
具体的には、たとえば、キーとして、単なる「入る」、「歩く」、「話す」だけでなく、「緊迫・入る」、「雨・歩く」、「雑踏・話す」など、付加情報ごとに配置制約条件を設定する。このとき、たとえば、「緊迫・入る」に対して、毎秒０.１ｍの速度を設定する動作制約条件を設定しておけば、単に「入る」とした場合に比べて、より慎重にゆっくり移動する様子を表現することができる。また、「雨・歩く」に対して、オブジェクトの座標が軒のある歩行領域であることを示す配置制約条件を設定しておけば、雨のシーンの場合は、オブジェクトに軒下を歩かせることができる。また、「雑踏・話す」に対して、オブジェクトの座標がその話す行為の対象の至近距離であることを示す配置制約条件を設定しておけば、雑踏のシーンの場合は、オブジェクトをその話し相手の近くに配置することができる。
【０１８１】
また、本実施の形態では、本発明に係るアニメーション構成装置を携帯端末装置（たとえば、携帯電話機）に搭載した場合について説明したが、本発明は、これに限定されるわけではなく、アニメーションを生成する各種のハードウェア、アプリケーションソフトウェア、およびサービスに適用することができる。
【産業上の利用可能性】
【０１８２】
本発明に係るアニメーション構成装置およびアニメーション構成方法は、テンプレートを利用することなく、しかも、アニメーションシナリオにオブジェクトの位置関係が明記されていない場合でも、オブジェクトの配置情報を得ることができるものであって、携帯電話機をはじめとする携帯端末装置や、パソコン、ゲーム機などとして有用である。
【図面の簡単な説明】
【０１８３】
【図１】本発明の一実施の形態に係るアニメーション構成装置を搭載した携帯端末装置の構成を示すブロック図
【図２】図１のアニメーション構成装置の構成を示すブロック図
【図３】シナリオ文の一例を示す図
【図４】シナリオ情報生成処理の手順の一例を示すフローチャート
【図５】図３のシナリオ文に基づいて生成されるシナリオ情報の一例を示す図
【図６】図１のアニメーション構成装置の動作を示すフローチャート
【図７】図６のオブジェクト配置決定処理の内容を示すフローチャート
【図８】図７の配置制約条件決定処理の内容を示すフローチャート
【図９】図２の配置制約条件データベースに格納された配置制約条件テーブルの一例を示す図
【図１０】図５のシナリオ情報に対応する配置制約条件情報の一例を示す図
【図１１】図７の配置情報決定処理の内容を示すフローチャート
【図１２】図１１のポテンシャル関数決定処理の内容を示すフローチャート
【図１３】図２の配置制約条件データベースに格納されたポテンシャル関数テーブルの一例を示す図
【図１４】ポテンシャル関数Ｐpoint（０，０）の外形を示す図
【図１５】コンテンツ情報の要部の一例を示す図
【図１６】図１１のポテンシャル関数決定処理の結果として出力されるポテンシャル関数の一例を示す図
【図１７】図１１の位置情報決定処理の内容を示すフローチャート
【図１８】図５のシナリオ情報が入力された場合におけるオブジェクト（アクターＡ）の移動経路の一例を示す図
【符号の説明】
【０１８４】
１００  携帯端末装置
２００  入力部
３００  シナリオ情報生成部
４００  アニメーション構成装置
５００  表示部
６００  通信部
４１０  配置制約条件データベース
４２０  オブジェクト配置決定部
４２２  シナリオ情報取得部
４２４  配置制約条件決定部
４２６  配置情報決定部
４３０  素材情報データベース
４４０  素材決定部
４５０  モーション情報データベース
４６０  モーション決定部
４７０  演出情報データベース
４８０  演出決定部
【図１】
2007316864.tif 000009
【図２】
2007316864.tif 000010
【図３】
2007316864.tif 000011
【図４】
2007316864.tif 000012
【図５】
2007316864.tif 000013
【図６】
2007316864.tif 000014
【図７】
2007316864.tif 000015
【図８】
2007316864.tif 000016
【図９】
2007316864.tif 000017
【図１０】
2007316864.tif 000018
【図１１】
2007316864.tif 000019
【図１２】
2007316864.tif 000020
【図１３】
2007316864.tif 000021
【図１４】
2007316864.tif 000022
【図１５】
2007316864.tif 000023
【図１６】
2007316864.tif 000024
【図１７】
2007316864.tif 000025
【図１８】
2007316864.tif 000026