(57)【要約】【課題】スクリプト生成方法およびプログラムを提供する。【解決手段】あるカットにおける動作主体の候補のリストと、当該動作主体に関連する１つ又は複数の動作の候補のリストを提供するインターフェースを提供するステップを備える。また、選択された動作主体に選択された動作を与える１つまたは複数のコマンドを含むコマンドセットおよび各コマンドに対応する１つまたは複数の待機コマンドを含む待機コマンドセットが所定の位置に含まれたスクリプトを出力するステップを備える。【選択図】図１３
2007272375.tif 000002
【特許請求の範囲】
【請求項１】
再生エンジンで動画を再生するために逐次実行される複数のコマンドを含むスクリプトの生成方法であって、
動画に含まれる複数の動作主体に設定されたラベル名を含むリソースデータ、および前記動作主体に動作を与えるコマンドに設定されたラベル名を含むマクロデータを記憶するステップと、
前記動画に含まれる第１のカットにおける複数の動作主体および前記複数の動作主体の各々に関連する１つ又は複数の動作を決定するためのインターフェースを提供するステップとを含み、
前記インターフェースは、
前記第１のカットにおける複数の動作主体の候補として、前記リソースデータに含まれた前記複数の動作主体に設定された前記ラベル名のリストを提供し、
前記複数の動作主体の各々に関連する前記１つ又は複数の動作の候補として、前記マクロデータに含まれた前記コマンドに設定された前記ラベル名のリストを提供する
ことを特徴とするスクリプト生成方法。
【請求項２】
前記複数の動作主体は、キャラクタを含み、
前記動作主体の各々に関連する１つ又は複数の動作は、前記キャラクタの発話を含み、
前記インターフェースは、前記キャラクタの発話内容を入力する発話フィールを有することを特徴とする請求項１に記載のスクリプト生成方法。
【請求項３】
再生エンジンで動画を再生するために逐次実行される複数のコマンドを含むスクリプトの生成方法であって、
動画に含まれる第１のカットにおける複数の動作主体を決定する動作主体決定ステップと、
前記複数の動作主体の各々に関連する１つ又は複数の動作を決定する動作決定ステップと、
前記１つ又は複数の動作に対応する複数のコマンドを含む第１のコマンドセット、および前記複数のコマンドの各々に対応し、前記コマンドが終了するまで次のコマンドの実行を待機させる複数の待機コマンドを含む第１の待機コマンドセットを含むスクリプトを出力するスクリプト出力ステップとを含み、
前記第１のコマンドセットは、前記第１の待機コマンドセットより前に実行されるように前記スクリプトに含まれることを特徴とするスクリプト生成方法。
【請求項４】
前記動画に含まれる第２のカットにおける複数の動作主体の動作を決定する第２のカット決定ステップと、
前記第１のカットに対する前記第２のカットの開始位置を決定する開始位置決定ステップとをさらに含み、
前記スクリプト出力ステップは、
前記第２のカットにおける複数の動作主体の動作に各々対応する複数のコマンドを含む第２のコマンドセット、および前記第２のコマンドセットに含まれるコマンドの各々に対応し、前記コマンドが終了するまで次のコマンドの実行を待機させる複数の待機コマンドを含む第２の待機コマンドセットをさらに含む前記スクリプトを出力し、
前記第２のコマンドセットおよび前記第２の待機コマンドセットは、前記第２のカットの開始位置で実行されるように前記スクリプトに含まれることを特徴とする請求項３に記載のスクリプト生成方法。
【請求項５】
前記第２のカットの開始位置が前記第１のカットの開始位置である場合に、前記スクリプト出力ステップは、前記第１のコマンドセットの実行と前記第１の待機コマンドセットの実行の間で前記第２のコマンドセットが実行され、前記第２のコマンドセットの実行後に前記第２の待機コマンドセットが実行される前記スクリプトを出力することを特徴とする請求項４に記載のスクリプト生成方法。
【請求項６】
前記第２のカットの開始位置が前記第１のカットの終了位置である場合に、前記スクリプト出力ステップは、前記第１の待機コマンドセットの実行後に前記第２のコマンドセットが実行される前記スクリプトを出力することを特徴とする請求項４に記載のスクリプト生成方法。
【請求項７】
前記第２のカットの開始位置が前記第１のカットの終了位置から所定時間経の過後である場合に、
前記スクリプト出力ステップは、前記第１および第２の待機コマンドの実行後に実行される、前記所定時間が経過するまで次のコマンドの実行を待機させる所定時間待機コマンドをさらに含む前記スクリプトを出力することを特徴とする請求項４に記載のスクリプト生成方法。
【請求項８】
前記動画に含まれる第１のカットにおける複数の動作主体の動作は、第１の動作主体の動作およびカメラの動作を含み、
前記第１のコマンドセットは、第１の動作主体の動作に対応する第１のコマンド、および前記カメラの動作に対応するカメラコマンドを含み、
前記方法は、前記第１の動作主体の座標に基づいて、前記カメラの座標および方向を含むカメラパラメータを計算するカメラパラメータ計算ステップをさらに含み、
前記スクリプト出力ステップは、計算された前記カメラの座標および方向を含むカメラパラメータ、ならびに前記カメラコマンドを含む前記スクリプトを出力することを特徴とする請求項３に記載のスクリプト生成方法。
【請求項９】
前記カメラパラメータ計算ステップは、前記カメラの座標および方向としてそれぞれ、前記第１の動作主体の座標から所定の距離離れた座標、および当該座標から前記第１の動作主体の座標への方向となる方向を計算することを特徴とする請求項８に記載のスクリプト生成方法。
【請求項１０】
前記動画に含まれる第１のカットは、さらに被写体を含み、
前記カメラパラメータ計算ステップは、前記第１の動作主体の座標および前記被写体の座標に基づいて、前記カメラの座標および方向を含む前記カメラパラメータを計算することを特徴とする請求項８に記載のスクリプト生成方法。
【請求項１１】
前記カメラパラメータ計算ステップは、前記カメラの座標および方向としてそれぞれ、前記第１の動作主体の座標と前記被写体の座標との中点から所定の距離だけ座標、および当該座から前記中点への方向となる方向を計算することを特徴とする請求項１０に記載のスクリプト生成方法。
【請求項１２】
前記動画に含まれる第１のカットは、さらに２つ以上被写体を含み、
前記カメラパラメータ計算ステップは、前記第１の動作主体の座標および前記２以上の被写体の座標に基づいて、前記カメラの座標および方向を含む前記カメラパラメータを計算することを特徴とする請求項８に記載のスクリプト生成方法。
【請求項１３】
前記カメラパラメータ計算ステップは、前記カメラの座標および方向としてそれぞれ、前記第１の動作主体の座標および前記２以上の被写体の座標を辺に含む四角形の中心から所定の距離だけ座標、および当該座から前記中点への方向となる方向を計算することを特徴とする請求項１２に記載のスクリプト生成方法。
【請求項１４】
請求項１乃至１３のいずれかに記載の方法をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スクリプト生成方法およびプログラムに関し、より詳細には、再生エンジンで動画を再生するために逐次実行される複数のコマンドを含むスクリプト生成方法およびプログラムに関する。
【背景技術】
【０００２】
コンピュータを使って画像を処理/生成するＣＧ（コンピュータグラフィックス）技術を利用したコンテンツ作りが盛んに行われている。また、あらかじめ用意されたセット、小道具、キャラクタ、カメラなどの配置や動作を決定するコマンドを記述する言語が知られている（例えば、非特許文献１参照）。
【０００３】
例えば、非特許文献１のＴＶＭＬ（TV Program Making Language）は、キャラクタ、セット、小道具、カメラの配置や動作のコマンドを記述する言語であって、テキストベースのスクリプト（以下、ＴＶＭＬを用いて記述されたスクリプトをＴＶＭＬスクリプトという。）である。
【０００４】
図１に示すように、ＴＶＭＬスクリプト１００は、再生エンジン１０２（以下、ＴＶＭＬスクリプトに含まれるコマンドを逐次実行して動画を再生するエンジンをＴＶＭＬエンジンという。）により、ＴＶＭＬスクリプト内のコマンドが逐次実行される。その結果、ＴＶＭＬエンジン１０２は、その記述の通りに小道具が配置されたセット内を記述の通りにキャラクタが動作する様子を、記述通りのカメラ動作で描画した動画１０４を再生する。
【０００５】
図２に、一般的なＴＶＭＬスクリプトの例を示す。図２（ａ）は、動画に登場するメインのキャラクタ（ｃｈａｒ＿ｍａｉｎ）が「おじぎ」をしながら「寒いですね」と言う様子をカメラＢで撮影したカットを記述し、図２（ｂ）は、別のキャラクタ（ｃｈａｒ＿ｓｕｂ）が「おじぎ」をしながら「いやあ本当に寒い」と言う様子をカメラＢで撮影したカットを記述するＴＶＭＬスクリプトである。
【０００６】
より詳細には、図２（ａ）の１行目は、カメラをカメラＢ（ＣａｍＢ）に切り換えるコマンドである。２行目は、ＣａｍＢを「移動」するコマンドであり、移動すべき座標（ｘ，ｙ，ｚ）、パン（横振り）（ｐａｎ）、チルト（縦振り）（ｔｉｌｔ）、ロール（光軸回り回転）の角度（ｒｏｌｌ）、およびレンズの垂直画角（ｖａｎｇｌｅ）を指定するパラメータを含む。なお、座標は、仮想的な空間であるセット内における座標である。
【０００７】
図２（ａ）の３行目は、メインのキャラクタ（ｃｈａｒ＿ｍａｉｎ）に「おじぎ」をするという動作を与えるコマンドである。４行目は、メインのキャラクタ（ｃｈａｒ＿ｍａｉｎ）に「寒いですね」という発話の動作を与えるとともに、「寒いですね」というキャプションを表示させるコマンドである。
【０００８】
したがって、図２（ａ）のスクリプトは、２つの動作主体（カメラＢ（ＣａｍＢ）、およびメインのキャラクタ（ｃｈａｒ＿ｍａｉｎ））を含み、２つの動作主体の各々についての動作（カメラ（ＣａｍＢ）の移動の動作、およびメインのキャラクタ（ｃｈａｒ＿ｍａｉｎ）のおじぎと発話の動作）を含むカットが記述されたスクリプトである。
【０００９】
また、図２（ｂ）の１および２行目は、それぞれ図２（ａ）の１および２行目に対応するコマンドである。また、図２（ｂ）の３および４行目はそれぞれ、図２（ａ）の３および４行目に対応し、別のキャラクタ（ｃｈａｒ＿ｓｕｂ）に「おじぎ」の動作および「本当に寒いですね」という発話の動作を与えるコマンドである。
【００１０】
図２に示すように、ＴＶＭＬスクリプトは、ＴＶＭＬの定義にしたがってあらかじめ用意された比較的簡単なコマンドセットを用いて記述できるという利点がある。また、ＴＶＭＬスクリプトはテキストベースである故、テキストエディタなどを用いて生成することができる利点を有する。
【００１１】
【非特許文献１】http://www.nhk.or.jp/strl/tvml/japanese/what/index.html
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、ＴＶＭＬにおけるコマンドは、動作を与えるコマンド毎にキャラクタやカメラなどの動作主体をパラメータとして指定して記述する必要があり、動画に登場する動作主体や動作主体に動作を与えるコマンドの種類が多くなると、人間がこれらを記憶し、識別してコマンドをＴＶＭＬスクリプトに記述することが困難となる。
【００１３】
また、上述したように、ＴＶＭＬエンジンは、ＴＶＭＬスクリプトの記述に通りにキャラクタやカメラを動作させる、すなわち、ＴＶＭＬスクリプト内に記述された互いに実行時間の異なる複数のコマンドを逐次実行するため、キャラクタやカメラなどの複数の動作のタイミングを意識してコマンドを記述する必要があるという問題があった。
【００１４】
すなわち図３に示すように、２つのカットにそれぞれ対応する図２（ａ）および（ｂ）のスクリプトをＴＶＭＬスクリプト内に単に並べて記述し、ＴＶＭＬエンジンで再生させた場合、そのように意図されたか否かにかかわらず複数の動作主体の動作のタイミングは画一的となり、それぞれのＴＶＭＬスクリプトに含まれる複数の動作主体の動作が同時に起こるように再生される。さらに、これに続くコマンドを考慮するとさらに複雑になる。
【００１５】
また、カメラの動作は、多数のパラメータを設定したコマンドを記述する必要があり、動作するキャラクタがフレーム内に収まるようにカメラを動作させるためのパラメータを設定することが困難であるという問題があった。
【００１６】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、文章を作成する要領で主語、動詞、目的語を選択または入力することにより、当該主語、目的語に対応したパラメータが設定された当該動詞に対応したコマンドを含むＴＶＭＬスクリプトを生成する方法およびプログラムを提供することにある。
【００１７】
また、キャラクタやカメラなどの複数の動作のタイミングを自動的に設定することができるスクリプト生成方法およびプログラムを提供することにある。
【００１８】
また、動作するキャラクタがフレーム内に収まるパラメータをカメラの動作のコマンドに自動的に設定することができるスクリプト生成方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１９】
本発明は、このような目的を達成するために、請求項１に記載の発明は、再生エンジンで動画を再生するために逐次実行される複数のコマンドを含むスクリプトの生成方法であって、動画に含まれる複数の動作主体に設定されたラベル名を含むリソースデータ、および前記動作主体に動作を与えるコマンドに設定されたラベル名を含むマクロデータを記憶するステップと、前記動画に含まれる第１のカットにおける複数の動作主体および前記複数の動作主体の各々に関連する１つ又は複数の動作を決定するためのインターフェースを提供するステップとを含み、前記インターフェースは、前記第１のカットにおける複数の動作主体の候補として、前記リソースデータに含まれた前記複数の動作主体に設定された前記ラベル名のリストを提供し、前記複数の動作主体の各々に関連する前記１つ又は複数の動作の候補として、前記マクロデータに含まれた前記コマンドに設定された前記ラベル名のリストを提供することを特徴とする。
【００２０】
請求項２に記載の発明は、請求項１に記載のスクリプト生成方法であって、前記複数の動作主体は、キャラクタを含み、前記動作主体の各々に関連する１つ又は複数の動作は、前記キャラクタの発話を含み、前記インターフェースは、前記キャラクタの発話内容を入力する発話フィールを有することを特徴とする。
【００２１】
請求項３に記載の発明は、再生エンジンで動画を再生するために逐次実行される複数のコマンドを含むスクリプトの生成方法であって、動画に含まれる第１のカットにおける複数の動作主体を決定する動作主体決定ステップと、前記複数の動作主体の各々に関連する１つ又は複数の動作を決定する動作決定ステップと、前記１つ又は複数の動作に対応する複数のコマンドを含む第１のコマンドセット、および前記複数のコマンドの各々に対応し、前記コマンドが終了するまで次のコマンドの実行を待機させる複数の待機コマンドを含む第１の待機コマンドセットを含むスクリプトを出力するスクリプト出力ステップとを含み、前記第１のコマンドセットは、前記第１の待機コマンドセットより前に実行されるように前記スクリプトに含まれることを特徴とする。
【００２２】
請求項４に記載の発明は、請求項３に記載のスクリプト生成方法であって、前記動画に含まれる第２のカットにおける複数の動作主体の動作を決定する第２のカット決定ステップと、前記第１のカットに対する前記第２のカットの開始位置を決定する開始位置決定ステップとをさらに含み、前記スクリプト出力ステップは、前記第２のカットにおける複数の動作主体の動作に各々対応する複数のコマンドを含む第２のコマンドセット、および前記第２のコマンドセットに含まれるコマンドの各々に対応し、前記コマンドが終了するまで次のコマンドの実行を待機させる複数の待機コマンドを含む第２の待機コマンドセットをさらに含む前記スクリプトを出力し、前記第２のコマンドセットおよび前記第２の待機コマンドセットは、前記第２のカットの開始位置で実行されるように前記スクリプトに含まれることを特徴とする。
【００２３】
請求項５に記載の発明は、請求項４に記載のスクリプト生成方法であって、前記第２のカットの開始位置が前記第１のカットの開始位置である場合に、前記スクリプト出力ステップは、前記第１のコマンドセットの実行と前記第１の待機コマンドセットの実行の間で前記第２のコマンドセットが実行され、前記第２のコマンドセットの実行後に前記第２の待機コマンドセットが実行される前記スクリプトを出力することを特徴とする。
【００２４】
請求項６に記載の発明は、請求項４に記載のスクリプト生成方法であって、前記第２のカットの開始位置が前記第１のカットの終了位置である場合に、前記スクリプト出力ステップは、前記第１の待機コマンドセットの実行後に前記第２のコマンドセットが実行される前記スクリプトを出力することを特徴とする。
【００２５】
請求項７に記載の発明は、請求項４に記載のスクリプト生成方法であって、前記第２のカットの開始位置が前記第１のカットの終了位置から所定時間経の過後である場合に、前記スクリプト出力ステップは、前記第１および第２の待機コマンドの実行後に実行される、前記所定時間が経過するまで次のコマンドの実行を待機させる所定時間待機コマンドをさらに含む前記スクリプトを出力することを特徴とする。
【００２６】
請求項８に記載の発明は、請求項３に記載のスクリプト生成方法であって、前記動画に含まれる第１のカットにおける複数の動作主体の動作は、第１の動作主体の動作およびカメラの動作を含み、前記第１のコマンドセットは、第１の動作主体の動作に対応する第１のコマンド、および前記カメラの動作に対応するカメラコマンドを含み、前記方法は、前記第１の動作主体の座標に基づいて、前記カメラの座標および方向を含むカメラパラメータを計算するカメラパラメータ計算ステップをさらに含み、前記スクリプト出力ステップは、計算された前記カメラの座標および方向を含むカメラパラメータ、ならびに前記カメラコマンドを含む前記スクリプトを出力することを特徴とする。
【００２７】
請求項９に記載の発明は、請求項８に記載のスクリプト生成方法であって、前記カメラパラメータ計算ステップは、前記カメラの座標および方向としてそれぞれ、前記第１の動作主体の座標から所定の距離離れた座標、および当該座標から前記第１の動作主体の座標への方向となる方向を計算することを特徴とする。
【００２８】
請求項１０に記載の発明は、請求項８に記載のスクリプト生成方法であって、前記動画に含まれる第１のカットは、さらに被写体を含み、
前記カメラパラメータ計算ステップは、前記第１の動作主体の座標および前記被写体の座標に基づいて、前記カメラの座標および方向を含む前記カメラパラメータを計算することを特徴とする。
【００２９】
請求項１１に記載の発明は、請求項１０に記載のスクリプト生成方法であって、前記カメラパラメータ計算ステップは、前記カメラの座標および方向としてそれぞれ、前記第１の動作主体の座標と前記被写体の座標との中点から所定の距離だけ座標、および当該座から前記中点への方向となる方向を計算することを特徴とする。
【００３０】
請求項１２に記載の発明は、請求項８に記載のスクリプト生成方法であって、前記動画に含まれる第１のカットは、さらに２つ以上被写体を含み、
前記カメラパラメータ計算ステップは、前記第１の動作主体の座標および前記２以上の被写体の座標に基づいて、前記カメラの座標および方向を含む前記カメラパラメータを計算することを特徴とする。
【００３１】
請求項１３に記載の発明は、請求項１２に記載のスクリプト生成方法であって、前記カメラパラメータ計算ステップは、前記カメラの座標および方向としてそれぞれ、前記第１の動作主体の座標および前記２以上の被写体の座標を辺に含む四角形の中心から所定の距離だけ座標、および当該座から前記中点への方向となる方向を計算することを特徴とする。
【００３２】
なお、請求項１ないし１３のいずれかに記載の発明が、請求項１４に記載のコンピュータプログラムに適用できることは言うまでもない。
【発明の効果】
【００３３】
以上説明したように、本発明によれば、文章を作成する要領で主語、動詞、目的語を選択または入力することにより、当該主語、目的語に対応したパラメータが設定された当該動詞に対応したコマンドを含むＴＶＭＬスクリプトを生成する方法およびプログラムを提供することができる。
【００３４】
また、本発明によれば、キャラクタやカメラなどの複数の動作のタイミングを自動的に設定することができるスクリプト生成方法およびプログラムを提供することができる。
【００３５】
また、動作するキャラクタがフレーム内に収まるパラメータをカメラの動作のコマンドに自動的に設定することができるスクリプト生成方法およびプログラムを提供することができる。
【発明を実施するための最良の形態】
【００３６】
以下、図面を参照しながら本発明の実施形態について詳細に説明する。以下の詳細な説明ではＴＶＭＬを例に本発明を説明するが、本発明は、ＴＶＭＬに限定されるものではなく、動画を再生する再生エンジン（例えば、ＴＶＭＬエンジン）によって逐次実行されるキャラクタやカメラなどの複数の動作のコマンドを記述するスクリプト（例えば、ＴＶＭＬスクリプト）に、各コマンドの実行タイミングを自動的に設定することができるスクリプト生成方法およびプログラムを提供する。なお、本明細書中、カメラに関連するコマンドをカメラコマンドといい、カメラコマンドのパラメータをカメラパラメータということもある。また、キャラクタに関連するコマンドをキャラクタコマンドということもある。
【００３７】
図４に示すように、本発明のスクリプト生成方法またはプログラムを実施するＴＶＭＬスクリプト生成装置４００（例えば、コンピュータ）によって、キャラクタやカメラなどの複数の動作主体の各々に動作を与える１つまたは複数のコマンドのセット（以下、コマンドセットという。）、および各動作主体の動作の実行タイミングを規定するための待機コマンド（コマンドに対応し、当該コマンドが終了するまで次に実行されるコマンドを待機させるコマンド）のセット（以下、待機コマンドセットという。）が自動的に設定されたＴＶＭＬスクリプト１００が生成される。また、ＴＶＭＬスクリプト生成装置４００によって、カメラコマンドに含まれるカメラパラメータが自動的に設定される。ＴＶＭＬスクリプト１００はＴＶＭＬエンジン１０２によって実行され動画１０４が再生される。
【００３８】
＜ＴＶＭＬスクリプト生成装置例＞
図１１に、本発明を実施するＴＶＭＬスクリプト生成装置４００の構成を示す。ＴＶＭＬスクリプト生成装置４００は、リソースデータ１１４２、シーン設定データ１１４４、マクロデータ１１４６、読替辞書データ１１５０、およびシナリオデータ１１５２を解析してＴＶＭＬスクリプト１００を生成するＴＶＭＬスクリプト生成部１１２０を備える。また、ＴＶＭＬスクリプト生成装置４００は、シナリオデータ１１５２を作成または編集するシナリオ設定部１１０２を含むシナリオ作成インターフェース１１００を含む。
【００３９】
シナリオ作成インターフェース１１００は、リソースデータ１１４２、シーン設定データ１１４４、マクロ設定データ１１４６、および読替辞書データ１１５０をそれぞれ作成または編集するリソース設定部１１０６、シーン設定部１１０５、マクロ設定部１１０４、および読替辞書設定部１１０３を備えてもよい。
【００４０】
また、ＴＶＭＬスクリプト生成部１１２０は、コマンドセット生成部１１２２と、待機コマンドセット生成部１１２４と、コマンド合成部１２２６とを備える。
【００４１】
リソースデータ１１４２は、シナリオ内で用いることができるカメラ、キャラクタ、セット、ライト、および小道具などを特定する情報と共にラベル名などの初期設定情報を含む。例えば、男子生徒というキャラクタをシナリオ内で用いる場合、リソースデータ１１４２内において、そのキャラクタに関連するファイルのファイル名がパス名とともに特定され、そのキャラクタに男子学生というラベルが設定される。
【００４２】
図１４に、リソースデータ１１４２の例を示す。３から１６行目はカメラについての初期設定情報であり、使用できるカメラＡ，Ｂ，およびＣのそれぞれに、「メインカメラ」、「移動カメラ」、および「全体カメラ」のラベル名が設定されている。
【００４３】
また、図１４の１８から３４行目はキャラクタについての初期設定情報であり、ラベル名（男子生徒、女子生徒）、モデル名（ｃｈａｒ＿ｍａｉｎ、ｃｈａｒ＿ｓｕｂ）、およびキャラクタに関連するファイルであってキャラクタを構成するパーツに関連する情報を含むファイルのファイル名（ｃｈａｒ＿ｍａｉｎ．ｂｍ、ｃｈａｒ＿ｓｕｂ．ｂｍ）が関連づけられている。
【００４４】
また、図１４の３５から４１行目はセットについての初期設定情報であり、ラベル名（学校）、セット名（ｓｃｈｏｏｌ）、セットのオブジェクトデータを含むファイル名（ｓｃｈｏｏｌ．ｏｂｊ）が関連づけられている。
【００４５】
シーン設定データ１１４４は、リソースデータ１１４２で特定されたカメラ、キャラクタ、小道具、セット、およびライトの座標などの初期値に関する情報を含む。例えば、後述するシナリオデータ内で、座標などのカメラパラメータが特に指定されていない場合、シーン設定データ１１４４に含まれる情報が参照される。
【００４６】
図１５にシーン設定データ１１４４の例を示す。８〜１７行目はキャラクタについての初期値である。例えば、９〜１２行目および１３〜１６行はそれぞれ、モデル名ｃｈａｒ＿ｍａｉｎおよびモデル名ｃｈａｒ＿ｓｕｂの座標の初期値を設定している。各モデルについて、シーン内で使用するか否か、初期において可視表示するか否かを初期値としてシーン設定データ内に設定することもできる。
【００４７】
また、図１５の１８〜３４行目は、カメラＡ、Ｂ、およびＣの初期座標およびその他の初期パラメータを設定している。各カメラについて、シーン内で使用するか否かを初期値としてシーン設定データ内に設定することもできる。
【００４８】
マクロデータ１１４６は、リソースに対する動作を規定する追加のコマンドを含む。すなわち、ＴＶＭＬでは、リソースに対する動作を規定するあらかじめ用意されたコマンドを用いてＴＶＭＬスクリプトを記述することができるが、マクロデータ１１４６にさらにこれらのコマンドおよびパラメータを組み合わせて追加のコマンドを規定することができる。
【００４９】
また、マクロデータ１１４６は、あらかじめ用意されたコマンドおよび追加のコマンドに対するラベル設定情報を含むことができる。
【００５０】
また、マクロデータ１１４６は、リソースに動作を与えるコマンドのパラメータを決定するサブプログラムあるいはサブルーチンを含む。例えば、カメラの座標や方向を決定するサブプログラムが含まれる。
【００５１】
図１６に、マクロデータ１１４６の例を示す。２１から２５行目は、あらかじめ用意されたコマンドｂｏｗにラベル名「おじぎする」を設定するものである。また、２６から３０行目は、追加のコマンドｂｏｗ１を規定するともに、ｂｏｗ１にラベル名「礼をする」を設定するものである。ｂｏｗ１は、あらかじめ用意されたコマンドｂｏｗのパラメータ（ｓｐｅｅｄ、ｌｅｖｅｌ）を変更するものである。コマンドｂｏｗのパラメータｓｐｅｅｄおよびｌｅｖｅｌはそれぞれ、動作のスピードおよび角度を規定するもので、デフォルトはそれぞれ、１．０および３０度である。したがって、追加のコマンドｂｏｗ１は、より速くより深くおじぎするコマンドに相当する。
【００５２】
図１６の３から１８行目は、追加のコマンドｆｒｏｎｔ＿ｃｌｏｓｅｕｐを規定するとともに、ｆｒｏｎｔ＿ｃｌｏｓｅｕｐにラベル名「前面クローズアップ」を設定するものである。追加のコマンドｆｒｏｎｔ＿ｃｌｏｓｅｕｐは、あるカットにおけるカメラをＣａｍＢに切り換えるカメラコマンドｓｗｉｔｃｈ（８行目）とカメラを移動するカメラコマンドｍｏｖｅｍｅｎｔ（１６行目）とを組み合わせて構成されている。図１６の９から１５行目は、カメラの座標や方向を決定するためのサブプログラムである。９から１５行目で決定したカメラの座標や方向は、１６行目のカメラコマンドｍｏｖｅｍｅｎｔのパラメータとして設定される。
【００５３】
図１６の９から１５行目をより詳細に説明する。＄ＡｕｔｏＣＡＭ（）は、カメラコマンドｍｏｖｅｍｅｎｔに設定するカメラパラメータｘ、ｙ、ｚ、Ｐａｎ、Ｔｉｌｔ、Ｒｏｌｌ、およびＶＡｎｇｌｅの値を決定するために呼び出されるサブプログラムであり、ｖａｒ、Ｔａｒｇｅｔ、Ｐｏｓ、およびＲａｎｇｅをパラメータとする。
【００５４】
Ｔａｒｇｅｔは、カメラが撮影しようとするキャラクタまたは小道具などの名前を指定するパラメータである。したがって、カメラパラメータは、Ｔａｒｇｅｔを基準に決定される。
【００５５】
Ｐｏｓは、カメラをＴａｒｇｅｔに対してどの方向に配置するかを指定するパラメータである。本実施形態では、Ｐｏｓとして、Ｆｒｏｍｔ（正面方向）、ＦｒｏｎｔＬｅｆｔ（正面左方向）、Ｌｅｆｔ（左方向）、ＢａｃｋＬｅｆｔ（背面左方向）、Ｂａｃｋ（背面）、ＢａｃｋＲｉｇｈｔ（背面右方向）、Ｒｉｇｈｔ（右方向）、ＦｒｏｎｔＲｉｇｈｔ（正面右方向）を選択可能としている。しかし、これに限られるものではなく、Ｐｏｓとして、Ｔａｒｇｅｔの任意の方向を選択可能としてもよい。
【００５６】
Ｒａｎｇｅは、カメラをＴａｒｇｅｔからどのくらい離れた位置に配置するかを指定するパラメータである。本実施形態では、Ｐｏｓとして、Ｓｈｏｒｔ（１．０）、Ｍｉｄｄｌｅ（２．０）、Ｌｏｎｇ（３．０）を選択可能としている。しかし、これに限定されるものではなく、Ｒａｎｇｅとして選択可能な所定の距離は自由に設定できる。
【００５７】
ｖａｒは、＄ＡｕｔｏＣＡＭ（）が返す値を指定するパラメータである。ｖａｒとして、カメラパラメータに含まれるｘ、ｙ、ｚ、Ｐａｎ、Ｔｉｌｔ、Ｒｏｌｌ、およびＶＡｎｇｌｅのいずれかを指定することができる。
【００５８】
このように、＄ＡｕｔｏＣＡＭ（）は、ＴａｒｇｅｔからＰｏｓで指定した方向にＲａｎｇｅで指定した距離だけ離れた点の座標ｘ、ｙ、およびｚを計算して、いずれかの値（のポインタ）をｖａｒ（ｘ、ｙ、およびｚ）にしたがって返すように構成されている。
【００５９】
さらに、＄ＡｕｔｏＣＡＭ（）は、カメラの方向がＴａｒｇｅｔとなるようなＰａｎ、Ｔｉｌｔ、Ｒｏｌｌ、およびＶＡｎｇｌｅの値を計算して、いずれかの値をｖａｒにしたがって返すように構成されている。最も単純な例では、＄ＡｕｔｏＣＡＭ（）は、Ｔｉｌｔ、Ｒｏｌｌ、およびＶＡｎｇｌｅのデフォルト値を返し、Ｐａｎ（横振り）の値のみをＴａｒｇｅｔと計算された座標から計算するように構成することができる。
【００６０】
読替辞書データ１１５０は、テキスト−音声変換部（図示しない）が指定されたテキストを正しい音声で出力するための辞書データである。
【００６１】
シナリオデータ１１５２は、キャラクタおよびカメラの動作を規定する情報を含む。例えば、キャラクタの動作を規定する情報は、動作の主体に関する属性と属性値（例えば、ｃｈａｒ＿ｍａｉｎ）、動作の対象に関する属性と属性値（例えば、ｃｈａｒ＿ｓｕｂなどのキャラクタ、セットの一部、セット内の小物など）、動作に関する属性と属性値（例えば、ｂｏｗ，ｂｏｗ１）、発話内容（例えば、「寒いですね」などの台詞）を属性値とする発話動作に関する属性、およびカット間のタイミングに関する属性と属性値などのデータ構造を有する。すなわち、キャラクタおよびカメラの動作を規定する情報は、誰（何）が、何に、何を、どうするにそれぞれ対応する属性情報と、属性情報に対応するコマンドおよび／またはパラメータなどの属性値を含む。
【００６２】
また、シナリオデータ１１５２は、制作者情報や登場するキャラクタの紹介などのオープニング情報やエンディング情報に関する情報を含むことができる。
【００６３】
なお、本明細書では、１つまたは複数のカットの集合をページといい、１つまたは複数のページの集合をシナリオ本体といい、シナリオ本体とそれ以外のオープニング情報やエンディング情報に関する情報をシナリオという。より詳細には、シナリオデータ１１５２は、一つカット内における複数の動作主体の動作を規定する情報（複数の属性と属性値の集合）を一つのカット属性の属性値とすることで、一つのカットを規定する。同様に、シナリオデータ１１５２は、１つまたは複数のカット属性値の集合を一つのページ属性の属性値とすることで、一つのページを規定する。さらに、シナリオデータ１１５２は、１つまたは複数のページ属性値の集合を一つのシナリオ本体属性の属性値とすることで、一つのシナリオ本体を規定する。
【００６４】
図１７にシナリオデータ１１５２の例を示す。シナリオデータ１１５２は、シナリオ本体のみを示し、シナリオ属性＜ｓｅｎａｒｉｏ＞の属性値として１つのページを含む。また、このページ属性＜ｐａｇｅ＞の属性値は、３つのカットを含む。各カット属性＜ｃｕｔ＞の属性値は、カット内における複数の動作主体の動作を規定する情報（複数の属性と属性値の集合）を含む。
【００６５】
図１７の９から１１行目は、カメラの動作を規定する情報であって、カメラに関する属性＜ｃａｍｅｒａ＞とその属性値を含む。属性＜ｃａｍｅｒａ＞は、カメラの動作に関する属性＜ｎａｍｅ＞と属性値「ｆｒｏｎｔ＿ｃｌｏｓｅｕｐ」とを属性値とする。属性＜ｃａｍｅｒａ＞は、ラベル名に関する属性＜ｌａｂｅｌ＞とその属性値「前面クローズアップ」をさらに含む。
【００６６】
また、図１７の１２から２２行目は、キャラクタの動作を規定する情報であて、キャラクタに関する属性＜ｗｈｏ＞とその属性値、表情に関する属性＜ｅｘｐｒｅｓｓｉｏｎ＞とその属性値、発話動作に関する属性＜ｓｐｅｅｃｈ＞とその属性値、動作の対象に関する属性＜ｔａｒｇｅｔ＞、＜ｔａｒｇｅｔ２＞とその属性値、および動作に関する属性＜ａｃｔｉｏｎ＞と属性値を含む。
【００６７】
属性＜ｗｈｏ＞は、キャラクタのモデル名に関する属性＜ｎａｍｅ＞およびその属性値「ｃｈａｒ＿ｍａｉｎ」と、キャラクタのラベル名に関する属性＜ｌａｂｅｌ＞およびその属性値「男子学生」とを属性値とする。属性＜ｓｐｅｅｃｈ＞は、「寒いですね」を属性値とする。属性＜ａｃｔｉｏｎ＞は、キャラクタの動作に関する属性＜ｎａｍｅ＞と属性値「ｂｏｗ」を属性値とする。また、属性＜ｓｐｅｅｃｈ＞は、ラベル名に関する属性＜ｌａｂｅｌ＞とその属性値「おじぎする」をさらに含む。
【００６８】
図１７の２４行目は、カット間のタイミングを規定する情報であって、カット間のタイミングに関する属性＜ｗａｉｔ＞とその属性値「Ｗａｉｔ」を含む。
【００６９】
図１１に示す、リソースデータ１１４２、シーン設定データ１１４４、マクロデータ１１４６、読替辞書データ１１５０、およびシナリオデータ１１５２は、後述するシナリオ作成インターフェース１１００を用いて生成することができる。
【００７０】
リソースデータ１１４２、シーン設定データ１１４４、マクロデータ１１４６、読替辞書データ１１５０、およびシナリオデータ１１５２は、ＴＶＭＬスクリプト生成部１１２０によってアクセス可能なメモリ上に記憶される。
【００７１】
コマンドセット生成部１１２２は、シナリオデータ１１５２を解析し、ＴＶＭＬにしたがったコマンドセットを生成する。
【００７２】
待機コマンドセット生成部１１２４は、シナリオデータ１１５２を解析し、コマンドセットに対応するＴＶＭＬにしたがった待機コマンドセットを生成する。
【００７３】
コマンド合成部１２２６は、コマンドセット生成部１１２２によって生成されたコマンドセットおよび待機コマンドセット生成部によって生成された待機コマンドセットのＴＶＭＬスクリプト１００における記述位置を決定して、ＴＶＭＬスクリプト１００に出力する。
【００７４】
＜シナリオ作成インターフェース＞
図１２に、シナリオデータを作成するために用いることができる、シナリオ作成インターフェース１１００の例を示す。シナリオ作成インターフェース１１００は、一つの行を用いて一つのカット内のキャラクタおよびカメラの動作を規定することができる。また、一つの行を用いて一つのカット内の効果音を規定することもできる。各行には、カット番号１２００が付与されている。
【００７５】
一つの行は、動作を規定するキャラクタを決定するための「誰」フィールド１２０１、キャラクタの発話および発話内容を規定する「台詞」フィールド１２０２、キャラクタの表情を規定する「表情」フィールド１２０４、キャラクタの動作が何に対して行われるのかを規定する「何に」フィールド１２０５、キャラクタの動作が何をするかを規定する「何を」フィールド１２０６、およびキャラクタの動作を規定する「どうする」フィールド１２０７を含む。
【００７６】
また、一つの行は、カットにおけるカメラの動作を規定する「カメラ」フィールド１２０３を含む。さらに、一つの行は、効果音を規定する「効果音」フィールド１２０９を含むことができる。
【００７７】
さらにまた、一つの行は、次の行（カット）の開始位置を規定する「同期」フィールド１２０３を含む。
【００７８】
「誰」フィールド１２０１、「表情」フィールド１２０４、「何に」フィールド１２０５、「何を」フィールド１２０６、および「どうする」フィールド１２０７は、それぞれプルダウンメニューから選択できるように構成されている。
【００７９】
シナリオ設定部１１０２は、各フィールドの選択値または入力値からシナリオデータ１１５２を生成する。
【００８０】
例えば、シナリオ作成インターフェース１１００は、リソースデータ１１４２やマクロデータ１１４６に含まれるキャラクタのラベル名を含むリストを生成し、このリストをプルダウンメニューとして表示する。これにより、シナリオ作成インターフェース１１００は、図１４に例示したリソースデータ１１４２に初期設定された男子学生および女子学生が、シナリオに登場するキャラクタとして、「誰」フィールド１２０１のプルダウンメニューのリストから選択されるようにすることができる。さらに、シナリオ設定部１１０２は、プルダウンメニューのリストからの選択値により、一つのカットの動作主体の一つであるキャラクタを決定することができる。すなわち、シナリオ設定部１１０２は、図１７に例示したシナリオデータ１１５２の各カットにおけるキャラクタに関する属性＜ｗｈｏ＞に対応する属性値を決定することができる。
【００８１】
同様に「表情」フィールド１２０４、「何に」フィールド１２０５、「何を」フィールド１２０６、および「どうする」フィールド１２０７についても、シナリオ設定部１１０２は、プルダウンメニュー（例えば、１２２１，１２２２）からの選択値により、シナリオデータ１１５２の各カットにおける属性（＜ｅｘｐｒｅｓｓｉｏｎ＞、＜ｔａｒｇｅｔ＞、＜ｔａｒｇｅｔ２＞、＜ａｃｔｉｏｎ＞）に対する属性値を決定することができる。
【００８２】
また、台詞フィールド１２０２は、発話の内容（動作内容）をテキスト入力できるように構成されている。台詞フィールド１２０２への入力値の有無により、シナリオ設定部１１０２は、「誰」フィールド１２０１で決定されたキャラクタに、台詞フィールド１２０２にテキストを発話させると決定することができる。すなわち、台詞フィールド１２０２にテキストが入力された場合、シナリオ設定部１１０２は、動作が発話であると決定し、発話動作に関する属性＜ｓｐｅｅｃｈ＞についての属性値が台詞フィールド１２０２に入力されたテキストであると決定することができる。
【００８３】
同様に、シナリオ設定部１１０２は、「カメラ」フィールド１２０３のプルダウンメニューからの選択値により、動作主体がカメラであることを示す属性、すなわちカメラに関する属性＜ｃａｍｅｒａ＞に対する属性値（カメラの動作に関する属性＜ｎａｍｅ＞と属性値）を決定できるように構成されている。「効果音」フィールド１２０９についても同様である。
【００８４】
さらに、「同期」フィールド１２０８もプルダウンメニューから選択できるように構成されている。より詳細には、「同期」フィールド１２０８のプルダウンメニュー（１２２３）のリストは、次の行（カット）の開始位置を１つ前の行（カット）の開始位置に同期させるｎｏ ｗａｉｔ、次の行（カット）開始位置を１つ前の行（カット）の終了位置に同期させるｗａｉｔ、次の行（カット）開始位置を１つ前の行（カット）の終了位置から少しだけ遅らせた位置（例えば、１．６秒後）に同期させるｗａｉｔ  ｌｉｔｔｌｅ、および次の行（カット）開始位置を１つ前の行（カット）の終了位置から遅らせた位置（例えば、３秒後）に同期させるｗａｉｔ  ｌｏｎｇを含む。「同期」フィールド１２０８のプルダウンメニューからの選択値により、シナリオ設定部１１０２は、カット間のタイミングに関する属性＜ｗａｉｔ＞に対する属性値を決定することができる。
【００８５】
また、シナリオ作成インターフェース１１００は、シナリオデータ１１５２を読み込み、ユーザが再編集する機能を提供する。これにより、ユーザは、シナリオ作成インターフェース１１００の各フィールドの値を追加または変更すること、あるいはカットまたはページの追加または削除が容易にでき、より多くのシナリオを作成することができる。
【００８６】
さらに、シナリオ作成インターフェース１１００は、各フィールドの値を追加または変更の履歴を収集することができ、変更の履歴を用いてプルダウンメニューとして表示するリストの順位を変更することができる。たとえば、ユーザが異なるカットで異なるカメラの動作を選択する傾向があることを追加または変更の履歴が示す場合に、あるカットの「カメラ」フィールド１２０３で選択された選択値が、その次のカットの「カメラ」フィールド１２０３のプルダウンメニューにおけるリストの下位に表示されるように変更することができる。あるいは、ユーザが特定のカメラの動作を選択する傾向があることを追加または変更の履歴が示した場合に、特定のカメラ動作をが「カメラ」フィールド１２０３のプルダウンメニューにおけるリストの上位に表示されるように変更することができる。
【００８７】
＜カメラパラメータ＞
図１６を参照して説明したように、マクロデータ１１４６は、カメラの座標や方向などのカメラパラメータを決定するサブプログラムあるいはサブルーチンを含む。
【００８８】
サブプログラムあるいはサブルーチンは、カットにおける動作主体であるキャラクタの座標に基づいて、カット内におけるカメラの座標および方向を含むカメラパラメータを計算する。カット内におけるカメラの座標として、当該カット内における動作主体（例えば、キャラクタの男子学生）の座標から所定の距離だけ離れ、動作主体の向きに対して所定の方向となる座標を計算することができる。また、サブプログラムあるいはサブルーチンは、カット内におけるカメラの方向として、計算された座標から動作主体の座標への方向、動作主体の正面に対向する方向を計算することができる。
【００８９】
例えば、サブプログラムあるいはサブルーチンは、男子学生の胸の座標から所定の距離だけ離れ、（男子学生の顔の向きに対する所望の方向として）男子学生の顔の向きとなる座標を計算し、カメラの座標として決定するとともに、決定されたカメラの座標から男子学生の胸の座標へ向く方向を計算しカメラの方向として決定する。さらに、サブプログラムあるいはサブルーチンは、これらの決定された座標および方向を、カメラコマンド（例えば、ｃａｍｅｒａ：ｍｏｖｅｍｅｎｔ）のカメラパラメータとして設定する。このようなサブプログラムあるいはサブルーチンを用いることにより、男子学生の正面から男子学生の様子を撮らえた動画が再生されるようなカットを設定可能になる。
【００９０】
さらに、動作主体からの座標から所定の距離を近距離、中距離、および遠距離としたサブプログラムあるいはサブルーチンを作成し、それぞれに「正面クローズ」、「正面」、および「正面ロング」などのラベルを設定することにより、シナリオ作成インターフェース１１００から簡単に選択可能となる。
【００９１】
同様に、カメラパラメータを計算する基準、所定の距離、所望の方向をそれぞれ変化させたサブプログラムあるいはサブルーチンを作成し、それぞれに異なるラベルを設定してもよい。
【００９２】
別の例では、サブプログラムあるいはサブルーチンは、カット内の動作主体の一つである男子学生の胸の座標と、男子学生以外の別の被写体の座標（例えば、女子学生の胸の座標）との中心点から所定の距離だけ離れ、中心点へ向かう方向と男子学生の正面の方向とが平行に対向する座標を計算しカメラの座標として決定する。また、サブプログラムあるいはサブルーチンは、計算された座標から中心点へ向かう方向をカメラの方向として決定するように構成することができる。さらに、サブプログラムあるいはサブルーチンは、これらの決定された座標および方向をカメラコマンド（例えば、ｃａｍｅｒａ：ｍｏｖｅｍｅｎｔ）のカメラパラメータとして設定する。このようなサブプログラムあるいはサブルーチンを用いることにより、男子学生の正面方向から男子学生と別の被写体を撮らえた動画が再生されるようなカットを設定可能になる。このようなサブプログラムあるいはサブルーチンをマクロデータ１１４６に規定して「正面ツーショット」とラベル名を設定すれば、シナリオ作成インターフェース１１００から簡単に選択可能となる。この例では、被写体をキャラクタである女子学生として説明したが、被写体は、別のカットにおける動作主体である必要はなく、例えば、セット内の所定の座標あるいはセット内に配置された小道具の座標としてもよい。また、この例では、動作主体の座標と、別の被写体の座標との中心点に関して説明を行ったが、これに限定されるものではなく、中心点の代わりに、動作主体の座標と別の被写体の座標とを結ぶ直線上の任意の点を用いてもよい。
【００９３】
さらに別の例として、サブプログラムあるいはサブルーチンは、カット内の動作主体の一つであるキャラクタ（男子学生）の座標と、シナリオ本体で動作主体となり得る男子学生以外の別の２つ以上の被写体（女子学生とその他）の座標と基づいて、カメラの座標および方向を計算するように構成されてもよい。
【００９４】
たとえば、サブプログラムあるいはサブルーチンは、カットにおける動作主体である男子学生、女子学生および教師の座標を用いて、これらの座標が内接する四角形の中心から所定の距離だけ離れ、中心点へ向かう方向と男子学生の正面の方向とが平行に対向する座標を計算しカメラの座標として決定する。また、サブプログラムあるいはサブルーチンは、計算された座標から中心点へ向かう方向をカメラの方向として決定するように構成することができる。さらに、サブプログラムあるいはサブルーチンは、これらの決定された座標および方向をカメラコマンド（例えば、ｃａｍｅｒａ：ｍｏｖｅｍｅｎｔ）のカメラパラメータとして設定する。このようなサブプログラムあるいはサブルーチンを用いることにより、男子学生の正面方向から男子学生と別の被写体を撮らえた動画が再生されるようなカットを設定可能になる。このようなサブプログラムあるいはサブルーチンをマクロデータ１１４６に規定して「前面グループショット」とラベル名を設定すれば、シナリオ作成インターフェース１１００から簡単に選択可能となる。
【００９５】
＜ＴＶＭＬスクリプト生成方法＞
図１３を参照して、ＴＶＭＬスクリプト生成装置４００によるＴＶＭＬスクリプト生成方法を説明する。なお、以下の説明ではシナリオ本体について着目してＴＶＭＬスクリプト生成方法を説明する。また、リソースデータ１１４２、シーン設定データ１１４４、マクロデータ１１４６、読替辞書データ１１５０は既に生成されＴＶＭＬスクリプト生成部１１２０によってアクセス可能なメモリ上に記憶されているものとする。
【００９６】
ステップ１３０１において、より詳細には、ＴＶＭＬスクリプト生成装置４００は、ＴＶＭＬスクリプト生成インターフェース１１００を提示する。
【００９７】
ステップ１３０２において、ユーザは、各行のフィールドの値を選択または入力することにより、動画のシナリオに含まれる一つのカットにおける複数の動作主体の動作を決定する。
【００９８】
ユーザは、他のカットを決定する場合（ステップ１３０４）には、各行毎に次の行（カット）の開始位置を決定し（ステップ１３０３）、ステップ１３０２を繰り返す。ステップ１３０４においてユーザが他のカットを決定しないとすると、ステップ１３０５へ進む。  ステップ１３０５において、シナリオ設定部１１０２は、カット（行）毎にフィールドの入力値または選択値に対応する属性値を含むシナリオデータ１１５２を出力する。
【００９９】
ステップ１３０６において、ＴＶＭＬスクリプト生成部１１２０は、シナリオデータ１１５２の解析、リソースデータ１１４２、マクロデータ１１４６およびシーン設定データ１１４４の参照（ステップ１３０８）、またはマクロデータ１１４６のサブプログラムの実行（Ｓ１３１０）によりコマンドセットを生成する。より詳細には、コマンドセット生成部１１２２は、シナリオデータ１１５２に含まれるページ属性の属性値の各々について、すなわちカット属性の属性値の各々について、動作の主体に関する属性（＜ｃａｍｅｒａ＞、＜ｗｈｏ＞）の属性値（例えば、ｆｒｏｎｔ＿ｃｌｏｓｅｕｐ、ｃｈａｒ＿ｍａｉｎ、ｃｈａｒ＿ｓｕｂ）と、表情に関する属性＜ｅｘｐｒｅｓｓｉｏｎ＞に対する属性値、発話動作に関する属性＜ｓｐｅｅｃｈ＞とその属性値、動作の対象に関する属性＜ｔａｒｇｅｔ＞、＜ｔａｒｇｅｔ２＞とその属性値と属性値、および動作に関する属性＜ａｃｔｉｏｎ＞と属性値の一部または全部とを組み合わせて１つまたは複数のコマンドからなるコマンドセットを生成する。コマンドセットは一時的にメモリに記憶される。
【０１００】
さらに、シーン設定データ１１４４の初期値を用いて、コマンドのパラメータを設定する場合がある。例えば、シナリオ本体の最初のカットに含まれるキャラクタの座標はシーン設定データ１１４４の初期値を用いて設定される。また、あるカットにおけるカメラのカメラパラメータが、マクロデータ１１４６のサブプログラムあるいはサブルーチンを実行して決定される場合がある。
【０１０１】
ステップ１３１２において、待機コマンドセット生成部１１２２は、コマンドセット生成部１１２２によって生成されたコマンドセットに含まれるコマンドの各々に対応する待機コマンドからなる待機コマンドセットを生成する。待機コマンドセットは一時的にメモリに記憶される。
【０１０２】
ステップ１３１３において、他のカット属性がある場合には、ステップ１３０６から１３１２を繰り返す。
【０１０３】
ステップ１３１４において、コマンド合成部１２２６は、カット間のタイミングに関する属性の属性値に応じて、コマンドセット生成部１１２２によって生成されたコマンドセットおよび待機コマンドセット生成部１１２２によって生成された待機コマンドセットのＴＶＭＬスクリプト１００における記述位置を決定して、ＴＶＭＬスクリプト１００に出力する。
【０１０４】
他のページ属性がある場合（ステップ１３１６）には、次のカット属性に対しステップ１３０６から１３１４を繰り返す。
【０１０５】
＜ＴＶＭＬスクリプト例１＞
図５に、ＴＶＭＬスクリプト生成装置によって生成されたＴＶＭＬスクリプトの例を示す。図５に示すＴＶＭＬスクリプトの１から４行目および８から１１行目は、図２（ａ）に関連して説明したコマンドセットである。図５に示すＴＶＭＬスクリプトの５から７行目および１２から１４行目は、それぞれ１から４行目および８から１１行目のコマンドセットに対応する待機コマンドセットであって、ＴＶＭＬスクリプト生成装置によって自動的に挿入されたものある。
【０１０６】
図６に、図５のＴＶＭＬスクリプトに含まれるコマンドの実行タイミングの関係を示す。図５に示すＴＶＭＬスクリプトがＴＶＭＬエンジンによって実行されると、メインのキャラクタ（ｃｈａｒ＿ｍａｉｎ）が「おじぎ」をしながら「寒いですね」と言うカットの再生が終了した時点で、別のキャラクタ（ｃｈａｒ＿ｓｕｂ）が「おじぎ」をしながら「いやあ本当に寒いですね」と言うカットが再生される。
【０１０７】
＜ＴＶＭＬスクリプト例２＞
図７に、ＴＶＭＬスクリプト生成装置によって生成されたＴＶＭＬスクリプトの別の例を示す。図７に示すＴＶＭＬスクリプトの１から４行目および９から１２行目は、図２（ａ）および（ｂ）に関連して説明したコマンドセットである。図７に示すＴＶＭＬスクリプトの５から７行目および１３から１５行目は、それぞれ１から４行目および８から１１行目のコマンドセットに対応する待機コマンドセットであって、ＴＶＭＬスクリプト生成装置によって自動的に挿入されたものある。８行目は、７行目のコマンドの実行が終了後、所定時間（１．６秒）だけ次のコマンド（８行目のコマンド）の実行を遅らせるコマンドであって、ＴＶＭＬスクリプト生成装置によって自動的に挿入されたものある。
【０１０８】
図８に、図７のＴＶＭＬスクリプトに含まれるコマンドの実行タイミングの関係を示す。図７に示すＴＶＭＬスクリプトがＴＶＭＬエンジンによって実行されると、メインのキャラクタ（ｃｈａｒ＿ｍａｉｎ）が「おじぎ」をしながら「寒いですね」と言うカットの再生が終了した後の所定時間（１．６秒）経過後に、別のキャラクタ（ｃｈａｒ＿ｓｕｂ）が「おじぎ」をしながら「いやあ本当に寒いですね」と言うカットが再生される。
【０１０９】
＜ＴＶＭＬスクリプト例３＞
図９に、ＴＶＭＬスクリプト生成装置によって生成されたＴＶＭＬスクリプトのさらに別の例を示す。図９に示すＴＶＭＬスクリプトの１から４行目および５から８行目は、図２（ａ）および（ｂ）に関連して説明したコマンドセットである。図９に示すＴＶＭＬスクリプトの９から１４行目は、それぞれ１から８行目のコマンドセットに対応する待機コマンドセットであって、ＴＶＭＬスクリプト生成装置によって自動的に挿入されたものある。
【０１１０】
図１０に、図９のＴＶＭＬスクリプトに含まれるコマンドの実行タイミングの関係を示す。図９に示すＴＶＭＬスクリプトがＴＶＭＬエンジンによって実行されると、メインのキャラクタ（ｃｈａｒ＿ｍａｉｎ）が「おじぎ」をしながら「寒いですね」と言うカットの再生と、別のキャラクタ（ｃｈａｒ＿ｓｕｂ）が「おじぎ」をしながら「いやあ本当に寒いですね」と言うカットの再生とが同時に開始する。これにより、図９に示すＴＶＭＬスクリプト内の最も実行時間の長いコマンド（男子学生の発話３０４）の実行終了時が、次に続くカットまたはページの開始位置となる。
【図面の簡単な説明】
【０１１１】
【図１】ＴＶＭＬエンジンによる動画再生の概念を示す図である。
【図２】一般的なＴＶＭＬスクリプトを示す図である。
【図３】図２に示す例示的なＴＶＭＬスクリプトに含まれるコマンドが実行された場合における各動作のタイミングを説明するための図である。
【図４】本発明によって生成されるＴＶＭＬスクリプトとＴＶＭＬエンジンの関係を説明するための図である。
【図５】本発明によって生成されるＴＶＭＬスクリプト例を示す図である。
【図６】図５に示すＴＶＭＬスクリプトに含まれるコマンドが実行された場合における各動作のタイミングを説明するための図である。
【図７】本発明によって生成されるＴＶＭＬスクリプト例を示す図である。
【図８】図７に示すＴＶＭＬスクリプトに含まれるコマンドが実行された場合における各動作のタイミングを説明するための図である。
【図９】本発明によって生成されるＴＶＭＬスクリプト例を示す図である。
【図１０】図９に示すＴＶＭＬスクリプトに含まれるコマンドが実行された場合における各動作のタイミングを説明するための図である。
【図１１】本発明のＴＶＭＬスクリプト生成装置の機能ブロック図である。
【図１２】本発明のＴＶＭＬスクリプト生成装置によって提供されるＧＵＩを説明するための図である。
【図１３】本発明のＴＶＭＬスクリプト生成方法を説明するためのフローチャートである。
【図１４】本発明の一実施形態におけるリソースデータを示す図である。
【図１５】本発明の一実施形態におけるシーン設定データを示す図である。
【図１６】本発明の一実施形態におけるマクロデータを示す図である。
【図１７】本発明の一実施形態におけるシナリオデータを示す図である。
【符号の説明】
【０１１２】
１００  ＴＶＭＬスクリプト
１０２  ＴＶＭＬエンジン
４００  ＴＶＭＬスクリプト生成装置
１１００  シナリオ作成インターフェース
１１５２  シナリオデータ
１１２０  ＴＶＭＬスクリプト生成部
【図１】
2007272375.tif 000003
【図２】
2007272375.tif 000004
【図３】
2007272375.tif 000005
【図４】
2007272375.tif 000006
【図５】
2007272375.tif 000007
【図６】
2007272375.tif 000008
【図７】
2007272375.tif 000009
【図８】
2007272375.tif 000010
【図９】
2007272375.tif 000011
【図１０】
2007272375.tif 000012
【図１１】
2007272375.tif 000013
【図１２】
2007272375.tif 000014
【図１３】
2007272375.tif 000015
【図１４】
2007272375.tif 000016
【図１５】
2007272375.tif 000017
【図１６】
2007272375.tif 000018
【図１７】
2007272375.tif 000019