TV program Making language

TVML（）は、テレビ番組を記述する特別な言語である。この言語で記述されたテレビ番組台本をTVMLプレイヤーと呼ばれるソフトウェアで再生すると、リアルタイムCGや音声合成などにより作られた映像音声を即座に見ることができる。

TVMLはNHK放送技術研究所が1996年に提案し、以降、当所を中心に言語仕様のアップデートおよびTVMLプレイヤーの開発が進められていた。その後、2006年よりセガサミーメディア㈱、㈱インターネット総合研究所で開発を引き継いだが終了し、2011年より開発者が個人にてTVMLホームページでソフトウェアを公開している。TVMLプレイヤーおよびTVMLエンジンはフリーウェアで配布されており、大学、教育機関などでの利用が多い。また、NHK番組制作での利用のほか、いくらかの商用利用もされている。

 言語記述 
TVMLの書式は、やらせたいことを書き並べるだけの単純なものである。

 camera: closeup ( what = Bob )
 character: bow ( name = Bob )
 character: talk ( name = Bob, text = "これ見てよ" ) 
 title: display ( type=imagefile, filename = "neta.jpg" )

このように書いてTVMLプレイヤーで再生すると

 カメラがBobにクローズアップして
 Bobがおじぎしてから
 「これ見てよ」と 合成音声でしゃべった後
 neta.jpgという画像が表示される

という映像が得られる。このように、TVMLは上から一行一行実行して行くだけのシンプルな動作をするので、かなり簡単に映像を作ることができる。

TVMLは次に上げるようなテレビ番組を制作するのに十分な機能をサポートしている。

 CGキャラクタのしゃべりと動作 (character) 
 カメラワーク  (camera)
 小道具の配置  (prop)
 スタジオセット (set)
 照明  (light)
 2Dタイトル表示  (drawing)
 スーパーインポーズ  (super)
 ムービーファイル再生  (movie)
 オーディオファイル再生  (sound)
 ナレーション入れ  (narration)

 TVMLプレイヤー 
TVMLプレイヤーはTVMLスクリプトを再生するソフトウェアで、現在、WindowsのPCで動くものがTVMLホームページでフリーウェアとして配布されている。

 その他の話題 
 言語仕様は2022年時点でVersion3.1である。
 2022年現在のTVMLはゲームエンジンのUnity Game Engineベースで実装されている。
 TVMLプレイヤーのほか、英語の教材を台本を書くだけで作れる「vizclass」や、2ちゃんねる掲示板をタークショー化する「2ちゃんねるコンバーター」などもフリーウェア配布している。
 2021年よりUnity版TVMLエンジンをフリーソフトとして公開しており、TVホームページからダウンロードして自由に利用できる。 
 TVMLを考案した林正樹林正樹ホームページ（当時NHK技研在籍）は、2006年よりセガサミーメディア㈱、㈱インターネット総合研究所で引き続きTVMLの開発を進めた。そこではTVMLと平書き台本が再生できる「T2Vプレイヤー」をフリーウェアで配布した。
 Apple Inc.、米Microsoft Corp.と米WebTV Networks, Inc.が開発した言語に同じ名前のTVMLというものがあるが、これとは異なる言語である。
 TVMLの言語仕様はプロトタイプベースオブジェクト指向言語に近い。character, cameraなどの「イベント」がオブジェクトに相当し walk(), talk()などの「コマンド」がメソッドやメンバ関数に相当する。ただし、characterやcameraなどのイベントタイプは自作することができず、あらかじめ用意されたものを使う。TVMLの上位レイヤーとしてこれらオブジェクト指向型の言語を策定しようとする動きもある。
「台本」のようなコードを記述するコンピューター言語には他にも、「Shakespeare言語」や「Mana言語」がある（TVMLはデータ記述言語の一種であるが、これらの言語はプログラミング言語である）。

 脚注 

 関連項目 
 Mana (プログラミング言語)
 Shakespeare (プログラミング言語)
 コンピュータ言語
 データ記述言語

 外部リンク 
 TVMLホームページ

Category:コンピュータ言語
Category:テレビ番組
Category:放送文化基金賞・放送技術