|
TVML台本は、番組の台本と同じように、時間の流れに従って、どんなイベントがどのように行われるかを列挙することで番組を記述します。ここではTVMLの概要を分かって頂くため、例をあげながら簡単に紹介しましょう(TVML言語の詳細についてはTVML言語仕様の章をご覧下さい)。
TVML台本は、1行があるひとつのイベントに対応しています。TVMLプレイヤーは1行分のイベントを実行し、そのイベントが終了したら次の行に記述されたイベントを実行する、というように動作します。TVMLのイベントとは次のようなものです。
スタジオショットでCGキャラクタ佐藤に「こんにちは、佐藤です」としゃべらせたかったら、
character: talk( name = 佐藤, text = "こんにちは、佐藤です")
と書きます。この1行で、画面にCGキャラクタ佐藤が登場し、合成音声で「こんにちは、佐藤です」としゃべります。上の例において、character:の部分をイベント名、talkの部分をそのイベントに用意されたコマンド名、カッコ内をそのコマンドに与える各種パラメータといいます。イベントの種類は次の13種類あります。
| character |
 |
CGキャラクタ関係 |
| set |
 |
CGスタジオセット関係 |
| prop |
 |
CG小道具関係 |
| camera |
 |
CGカメラワーク関係 |
| light |
 |
CG照明関係 |
| movie |
 |
動画ファイル再生 |
| super |
 |
スーパーインポーズ関係 |
| title |
 |
静止タイトル関係 |
| sound |
 |
オーディオファイル再生、オーディオミキサー |
| narration |
 |
ナレーション |
| video |
 |
ビデオエフェクト |
| cgenv |
 |
CG環境の設定(背景・フォグなど) |
| drawing |
 |
2Dドローイング |
もういくつか例をあげましょう。
camera: closeup( what=坂田 )
(CGキャスター坂田にクローズアップする)
movie: playfile( filename=test.mov, from=100, to=200
)
(test.movというムービーファイルを100フレーム目から200フレームまで再生する)
super: on( type=text, text="これがスーパーです" )
(「これがスーパーです」という文字をスーパーする)
以上のようにイベントを記述し、これを書き並べていくことで番組を作ることができます。例えば、CGキャスタにクローズアップして、「坂田」という文字をスーパーし、おじぎをさせ、「みなさんこんにちは」としゃべらせるときは、
camera: closeup( what = 坂田 )
super: on( type = text, text= "坂田" )
character: bow( name = 坂田)
character: talk( name = 坂田, text = "みなさんこんにちは")
となります。
次に、ふたつのイベントを同時に行いたいときの方法について説明します。このときは、イベントのコマンド引数にwait = noというパラメータをつけ加えることで行います。wait
= noをつけ加えると、そのイベントは起動のトリガーをかけるだけですぐにリターンするようになります(デフォルトではwait=yesになっています)。
例えばBOBとMARYを同時におじぎさせ、おじぎが終わってからスーパーしたいときは次のように書きます。
character: bow( name=BOB, wait=no )
character: bow( name=MARY )
super: on( type=text, text = "MARY & BOB" )
ちなみに、上記でwait = noをつけ加えないと、BOBがおじぎして、おじぎし終わったらMARYがおじぎして、MARYがおじぎし終わったらスーパーする、という動作になります。
またタイトルやスーパーにおけるテキストレイアウトには2D画像を扱うdrawingイベントが用意されており、種々のフォントや画像を自由に、ピクセル単位で画面上に配置することができます。
|