TVMLについて


TVML (TV program Making language)はテレビ番組をまるまる1本記述できるテキストベースの言語です。このTVMLで書いた番組台本は、TVMLプレイヤーで即座にテレビ番組的なCGアニメーションとして再生することができます。ユーザーはワープロなどを使ってTVMLで台本を書くだけで、自分だけのCGアニメーションをコンピュータ上で簡単に制作することができます。TVMLプレイヤーにはCGアニメーションを作るのに必要な次のような機能があります。

  • スタジオショットはリアルタイムCG。CGスタジオセットCG小道具を配置し、CGキャラクタが登場し、台本どおりに音声合成でしゃべり、動く。 カメラワークも自在に可能。
  • テキストや画像をスーパーインポーズ。
  • 画像をタイトルとして表示。
  • 動画ファイルの再生。
  • オーディオファイルを再生し、BGM、効果音として使える

TVMLプレイヤー

TVMLプレイヤーは、TVMLで書いた番組台本を読み込み、リアルタイムでCGアニメーションを作り出すアプリケーションです。現在、ゲームエンジンUnity5をベースに作られており、限定公開中です(お問い合わせください)

TVMLによるシーン作りの例

TVML台本は、テレビ番組の台本と同じように、時間の流れに従って、どんなイベントがどのように行われるかを列挙することでアニメーションを記述します。ここではTVMLの概要を分かって頂くため、例をあげながら簡単に紹介しましょう(TVML言語の詳細についてはTVML言語仕様をご覧下さい)

TVML台本は、1行があるひとつのイベントに対応しています。TVMLプレイヤーは1行分のイベントを実行し、そのイベントが終了したら次の行に記述されたイベントを実行する、というように動作します。TVMLのイベントとは次のようなものです。

スタジオショットでCGキャラクタSatoに「こんにちは、佐藤です」としゃべらせたかったら、

character: talk( name = Sato, text = “こんにちは、佐藤です”)

と書きます。この1行で、画面にCGキャラクタ佐藤が登場し、合成音声で「こんにちは、佐藤です」としゃべります。上の例において、character:の部分をイベント名、talkの部分をそのイベントに用意されたコマンド名、カッコ内をそのコマンドに与える各種パラメータといいます。イベントの種類は次の通りです。

character CGキャラクタ関係
set CGスタジオセット関係
prop CG小道具関係
camera CGカメラワーク関係
light CG照明関係
movie 動画ファイル再生
super スーパーインポーズ関係
sound オーディオファイル再生、オーディオミキサー
drawing 2Dドローイング

 

これらのイベントを記述し、これを書き並べていくことでアニメーションを作ることができます。例えば、CGキャスタにクローズアップして、おじぎをさせ、「みなさんこんにちは」としゃべらせるときは、

camera: closeup( target = Sakata )
character: bow( name = Sakata)
character: talk( name = Sakata, text = “みなさんこんにちは”)

となります。

次に、ふたつのイベントを同時に行いたいときの方法について説明します。このときは、イベントのコマンド引数にwait = noというパラメータをつけ加えることで行います。wait = noをつけ加えると、そのイベントは起動のトリガーをかけるだけですぐにリターンするようになります(デフォルトではwait=yesになっています)。
例えばBOBとMARYを同時におじぎさせたいときは次のように書きます。

character: bow( name=BOB, wait=no )
character: bow( name=MARY )

ちなみに、上記でwait = noをつけ加えないと、BOBがおじぎして、おじぎし終わったらMARYがおじぎして、MARYがおじぎし終わったらスーパーする、という動作になります。

また、タイトルやスーパーにおけるテキストレイアウトには2D画像を扱うdrawingイベントが用意されており、種々のフォントや画像を自由に、ピクセル単位で画面上に配置することができます。

以上がTVMLの概要です。非常にシンプルな言語なので、ちょっと慣れてしまえばコンピュータ言語に特別な知識がなくても番組台本を書くことができます。