論文
DBSJ Letters Vol.6, No.2――――――――――――――――――――――――――――――――――――

コンテンツ演出のためのシナリオ
記述言語
ScenarioDescription
Contents Direction

小宮山 哲*
国島 丈生†

Languagefor横田 一正‡

Satoru KOMIYAMA
Takeo KUNISHIMA Kazumasa YOKOTA

近年マルチメディアコンテンツが普及しているが，それらについて様々な意図や魅力を十分に伝えることは難しい．そこで我々は、学芸員による説明やテレビにおける美術館案内のような演出を生成するシステムを開発している．本システ
ムではシナリオ記述言語を用いて意図する演出を記述することにより汎用性の高い Flash による演出を生成する．本稿
ではシナリオ記述言語およびその生成実行システムや再利用性の向上について述べる．
Recently, the multimedia contents are widespread. But
it is difficult to convey the charm of contents enough only
by sentences. Therefore, we have been developing a
scenario description language for contents direction.
And, we implemented the system to interpret andexecute a direction scenario on the Flash. In this paper,
we propose a scenario description language and thesystem of interpreting and executing it.

1. はじめに
1.1

1.2

演出機能の要件

効果的な演出を行うために必要な機能を実行でき、さらにこれらを並行に実行，または同期させることも求められる．
また，より多くの人に利用してもらうため，簡単に記述できることを第一とし，専用のブラウザやプレイヤーを必要としないことを要件として設定した．CDLではこれらの要件を満たす記述ができることを目的としている．

2. 演出モデル
演出は実行単位及びその集合をノード，ノード間の順序関係を有向枝とした非巡回有向グラフ（DAG）としてモデル化できる．実行単位とは発話，ズーム，テロップの表示といった演出機能である．これらの実行単位を制御していくことによって演出が進められていく．ここで集合は並行実行を表す
が，これは 3.2 節で説明する．図 1 に演出モデルを示す．
実行単位

コンテンツ演出

計算機の性能向上やインターネットの普及に伴い，大量の静止画や動画といったマルチメディアコンテンツが蓄積されるようになっている．これにより，美術館や博物館においても，所蔵品をディジタル化してWeb上で広く公開するようになってきている[1]，[2]．これらのコンテンツは，そのコンテンツに対する詳細な説明文と共に提示されていることが多い．コンテンツの閲覧者にとって，文章を読みながらコンテンツの閲覧を行うのは負担のかかる作業だと考えられる．説明文が長くなればなるほど負担も増してくる上に，コンテンツに対する興味や集中力が失われる可能性もある．また，コンテンツの提示は静的であるため，作成者は強調したい箇所などを文章のみで表現しなくてはならない．そのため，作成者の意図を閲覧者に対して正確に伝えることは難しいと考えられる．

* 岡山県立大学大学院情報工学研究科博士前期課程komiyama@c.oka-pu.ac.jp
岡山県立大学情報工学部情報通信工学科
kunishi@c.oka-pu.ac.jp‡ 正会員 岡山県立大学情報工学部情報通信工学科
yokota@c.oka-pu.ac.jp
† 正会員

1

そこで，個々のコンテンツに対して美術館の学芸員が説明するように，あるいはテレビでの美術館案内[3][4]のように，演出・説明を行える必要があると考えた．演出とは，説明文の発話をしながらコンテンツに対してズームをしたり，テロップを表示したりすることである．コンテンツの注目させたい部分にズームインしたり，ポインタを表示させて説明文の発話を行ったりすることで，作成者はコンテンツの魅力を伝えることが容易となる．これをコンテンツ演出と呼ぶ．演出を行うためには，演出のシナリオを作成する必要がある．
関連研究としては，テレビ番組をまるまる1本記述できる言語TVML（TV program Making language）[5]，[6]や，XMLに準拠したマークアップ言語SMIL（Synchronized Maltimedia
Integration Language）[7]が挙げられる．
我々はこれまで，容易にシナリオを作成できる記述言語の研究・開発を行ってきた[8]，[9]．本論文ではその成果として，TVMLやSMILより容易にコンテンツ演出のためのシナリオ記述言語CDL（Contents Direction Language）を提案する．
さらに，CDLで記述されたシナリオを解釈実行するコンテンツ演出システムについて述べる．

発話
発話

テロップ
ズーム

図1
Fig.1

2.1

演出モデル
Direction Model

実行単位

実行単位は演出の最小単位となるものである．実行単位としては表 1 に示した 14 種類を考えている．これらの実行単位を本論文ではアクションと呼ぶ．
表 1 演出の種類
Table 1 Kind of Production Action
アクション
アクションの効果
Move
瞬時の移動
View
パン，チルト
Zoom
ズーム
Speak
発話
Telop
テロップの表示
Balloon
吹き出しの表示日本データベース学会 Letters Vol.6, No.2

論文
DBSJ Letters Vol.6, No.2――――――――――――――――――――――――――――――――――――
PointerComparison
Link
Movie
Replace
Insert
BGM
Wait

2.2

注目させたい部分の強調
コンテンツの比較，参照
関連コンテンツへのリンク
動画の再生
画像の入れ替え画像の挿入
BGM の再生アクション間の待ち時間

3.1

CDL の概略

図 4 に示すように演出シナリオを CDL を用いて記述する
ことで，コンピュータで解析することができ，演出を実行することができる．
演出シナリオ
ズームをする
発話をする
・・・
・・・
・・・

実行制御

実行制御とは，各アクションを実行するにあたっての制御手法である．実行制御として逐次実行，並行実行，同期制御の３つが挙げられる．図 2 にアクション実行の流れを示す．
図２では，まず発話が行われる(①)．発話が終了したらズー
ムと発話が行われ(②)，View により視点を移動させる(③)．
最後に発話とテロップの表示が行われる(④)といった流れである．
①②

③

④Zoom

Speak

Speak

View
Speak

図2
Fig.2

Telop

アクション実行の流れ
Executing an Action Flow

逐次実行 ①，②，③，④と順次アクションを実行していくのが逐次実行である．
並行実行 複数のアクションを同時に実行させる制御手法である．図 2 において②ではズームと発話が同時に実行されることを表しており，ズームをしながら発話が行われる．同様に④では発話中にテロップが表示される．また，並列実行の単位が構造体であることも考えられる．これは例えば逐次実行とアクションを並行実行するものである．しかし，それらの同期が保証できないので単純な実行順としている。
同期制御 並行実行により，独立した複数のアクションを同時に実行させることができる．しかし，アクションの実行は同時に開始されるので，並行実行のみではアクション開始時の同期しかとることができない．そのためアクション終了時の同期をとることや，アクションの開始時間をずらして実行することができない．これらを実現するためには，各アクションを実行するタイミングを細かく指定して，正確にコントロールできる必要がある．これが同期制御である．同期制御により，図 3 において②のようにズームと発話の終了時点をそろえることができる．あるいは，④のように発話が開始されてから 5 秒後にテロップを表示し，その 5 秒後に消去するといったことができる．
②①アクション

③④

Telop
View
Zoom
Speak

02

3. コンテンツ演出記述言語 CDL

510152025303540 時間（秒）図3

時系列グラフによるアクション実行の流れ

Fig.3

Time Chart of Executing an Action flow

CDL

演出の実行

Zoom
Speak
・・・・・・・・・

図4

CDL の位置づけ

Fig.4

Position of CDL

演出シナリオはいくつかの演出単位に分割することができる．演出単位は入れ子にすることが可能で他の演出単位から参照できる．そのために，各演出単位には演出 ID が必要となる．演出 ID は 1 つの演出シナリオ内で一意である．まず“演出 ID(title = ＜タイトル＞) = [ ]”を記述する．“[ ]”の中にアクションの列を記述する．
title 属性の属性値には演出のタイトルを記述する．title
属性は記述しなくてもよい．また，“演出 ID() = [ ]”は入れ子にすることができる．
アクションは表 1 で挙げた 14 種類である．
また，マクロ定義およびインクルードを使用することができる．マクロは文字列の置換を定義する．“演出 ID() = [ ]”の外部で冒頭に記述しておくと，それ以降の該当文字列が置換される．インクルードは外部ファイルを指定することで，そのファイルの内容をそのまま挿入することができる．

3.2

実行制御

2.2 節で述べた実行制御のうち，逐次実行は“;”で，並行実行は“,”で各アクションを区切って記述することにより実現できる．また，start 属性でアクションの開始時間を，duration 属性でアクションの継続時間を指定することで同期制御を実現する．これにより，各アクションの実行を正確にコントロールすることができる．
また Comparison 使用時にはコンテンツの提示は 2 つになるため，id 属性に提示させるコンテンツの id を記述することでアクションの対象の区別を可能にしている．

3.3 インデックス
Index を用いて記述することにより，記述箇所から演出を実行することが可能となる．また，閲覧時にどのような演出が行われるかを知ることもできる．

3.4

再利用性の向上

Replace を使用することで，現在提示しているコンテンツを別コンテンツへと切り替えられる．これにより関連のあるコンテンツを連続して説明することができる．また，CDL
では“演出 ID() = [ ]”を入れ子にすることができる．これにより，複数の別コンテンツに対するそれぞれの演出をはっきりと区別することができる．また，個々の演出を別ファイルに記述しておき，インクルードを用いて利用することができる．これにより，それぞれの演出を単体で扱うことも可能となり再利用性の向上にもつながる．図 5 及び図 6 にインクルードの記述例を示す．

日本データベース学会 Letters Vol.6, No.2

論文DBSJ Letters Vol.6, No.2――――――――――――――――――――――――――――――――――――
1 #define CENTER [320,240];
23 Sample(title = "サンプル") = [4 BGM(condition = "start", src = "bgm.wav");
5 Zoom(coordinates = [0.2,0.5], magnification = 3, velocity = 2), Speak(text = "レオナルド・ダ・ヴィンチは・・・");
6 View(coordinates = CENTER，velocity = 2), Speak(src = "setumei.txt");
7 Movie(src = "movie.avi");
8
9 #include "xyz.txt"
1011 BGM(condition = "stop"，src = "bgm.wav");
12 ]図5Fig.5

1 Sample("サンプル") = [2 BGM("start", "bgm.mp3", _);3 Zoom([128,240], 3, 2, _, _, _), Speak("explain1.mp3", _, _, _);4 View([320,240], 2, _, _, _), Speak("setumei.mp3", _, _, _);5 Movie("movie.flv");
6 Pointer("round", "large", [235,90], _, _, _), Speak("sample.mp3", _, _, _);7 BGM("stop", "bgm.mp3", _);8]

CDL による演出シナリオの記述例

Example of a Direction Production Scenario in
CDL

1 Pointer(type = "round", pointersize = "large", coordinates = [235,90]), Speak(src = "sample.mp3");

図6

インクルードファイルの内容

Fig.6

Content of an Include File

4. CDL を用いたコンテンツ演出システムの実現
4.1

こで，ActionScript で読み込める実行可能な形式へ変換した演出シナリオを中間言語と呼んでいる．
図 5 及び図 6 に CDL による演出シナリオの記述例と指定したインクルードファイルの内容を示した．これらを CDL から中間言語へ変換した形を図 8 に示す．

システムの概要

コンテンツの演出は，演出シナリオを演出エンジンに読み込ませることによって実行することができる．演出エンジンの実装には Flash の ActionScript を用いている．Flash を用いた理由は，普及率の高さと動作の軽さからである．
システムの実行の際には，CDL で記述された演出シナリオをコンパイルにより中間言語にする必要がある．
ActionScript では，音声ファイルは mp3 形式でしか読み込めないなどといった制約があるからである．中間言語については次節で詳細を述べる．図 7 にコンテンツ演出システムのモデルを示す．

図8
Fig.8中間言語による演出シナリオの記述例

Example of a Direction Scenario in Intermediate
Language

他にも CDL から中間言語への変換の過程で，マクロ，インクルードの処理や，記述された発話内容からの音声ファイル生成，相対座標から絶対座標への変換，属性値のみの記述へ変換といった処理も行う．

4.3 実装CDL から中間言語への変換コンパイラを Visual C++
2005 を用いて作成した．コンパイラの使用画面を図 9 に示
す．
コンパイル
ボタン

コンテンツのサイズ入力

図9

コンパイラ

Fig.9

Compiler

WebサーバWebブラウザ演出を実行するためのインタフェースを図 10 に示す．

コンパイル

アクセス

①
⑤
取得

メタファイル ④
（XML）

HTML

演出シナリオ（中間言語）

コンパイラ②
演出エンジン（SWF）③

マルチメディア
コンテンツ

図7

システムモデル

Fig.7

System Model

演出シナリオ（CDL）

演出実行までの流れをまとめると次のようになる．URIの末尾に“?”とメタファイル名を付与して Web ブラウザによりアクセスする．メタファイルを変更することにより，異なるコンテンツの演出を実行できる．次に演出エンジンを読み込む．続いて演出エンジンにより，メタファイルが読み込まれる．メタファイルの形式は XML で direction 要素をルート要素とし，その子要素である img 要素と cdl 要素を持つ．
それぞれの子要素の src 属性に演出の対象となるコンテンツの URI と，演出シナリオのファイルの URI をそれぞれ記述する．次に演出シナリオを読み込み，必要なマルチメディアコンテンツを取得する．そしてブラウザ上に演出を表示する．

4.2 中間言語
演出エンジンは Flash の ActionScript で作成されている．
ActionScript では音声ファイルは mp3 形式で，動画ファイルは flv 形式でしか読み込めないといった制約がある．そ3

図 10

インタフェース

Fig.10Interface

演出の再生ボタンを押すことで演出が実行される．停止ボ
タンを押すと演出が停止し初期状態に戻る．巻戻しボタンで巻戻し，早送りボタンで早送りができる．インデックスリス
トに表示されているインデックスを選択して選択再生ボタンを押すことで，インデックスを付与した箇所から再生することができる．また，拡大，縮小ボタンにより，手動でコンテンツを拡大したり縮小したりすることができる．

4.4 システムの応用
システムの応用として，我々が開発している D-Cubis [11]，[12]，PasQ [13]での利用，また，Internet Explorer などのWeb ブラウザでの利用を考えている．
D-Cubis 我々が開発したディジタルミュージアム提示システムである．ミュージアム作成者は，簡易的な 3D 空間を作成し，そこに様々なマルチメディアコンテンツを貼り付けていくことでミュージアムを作成する．閲覧者は Web ブラウ

日本データベース学会 Letters Vol.6, No.2

論文
DBSJ Letters Vol.6, No.2――――――――――――――――――――――――――――――――――――
ザで閲覧することができ，快適にウォークスルーしながら展示してあるマルチメディアコンテンツを閲覧することができる．
PasQ 我々が開発した複数のパノラマ画像を組み合わせて仮想空間を構築するシステムである．PasQ ではパノラマ画像に対してズーミングを行い，パノラマ画像を自動的に切り替えることで仮想空間のウォークスルーを表現する．
演出は独立に記述されているので，HTML ファイルへのリンクを設定することで様々なシステムから呼び出し可能である．D-Cubis や PasQ のように動的に仮想空間を構築するアプリケーションの場合でも，元のシステムを拡張することなく利用することができる．

5. 結論
本論文では，テレビでの美術館案内のような演出を容易に作成するためのシナリオ記述言語として CDL を提案した．
そして，CDL で記述された演出シナリオを解釈実行するコンテンツ演出システムを実現し，効果的な演出を行うことができることを示した．今後の課題や発展の方向性として以下のことが挙げられる．
サーバ側での中間言語への変換 現在のところ CDL から中間言語への変換はクライアント側で手動で行い，その後サーバ上に配置しなければならない．その手間を軽減するため，サーバ側で自動変換を行える必要がある．
CDL オーサリングツールの実現 CDL で演出シナリオを作成するにあたって，座標の指定のためにコンテンツのサイズを，同期制御のために発話の時間を把握しておかなければならない．そこで，演出シナリオの作成を補助するためのオーサリングツールを実現する必要がある．これにより，より多くの利用者が期待できる．また，タイムラインを用いて演出の作成を視覚的に行うことも考えられる。サーバ側で変換を行うことを考えると，Web アプリケーションを用いたオーサリングを実現するのが妥当だと考えられる。
CDL の記述の再考察，演出機能の洗い出しと質の向上 容
易な記述性，柔軟性のある言語を目指して記述の再考察を進めていく．また，本論文で挙げた演出機能だけではまだまだ十分だとは言い難いため，さらに効果的な演出を行う演出機
能を考えていく．また今ある演出機能についても，実装の変更等により質を向上を行う必要がある．
発話音声の多様化・質の向上 現在発話のための音声は，男声と女声の 2 種類でしかできないため，さらに多くの種類の音声を扱える必要がある．しかし，コンパイラの音声合成に用いている Microsoft Speech SDK 5.1 等では 2 種類の日本語音声しか扱えない．また，質の向上を図るために，より良い他の音声合成ソフトを利用することを検討しなければな
らない．
キャラクタの必要 TVML のようにキャラクタを登場させ説明を行わせることで，閲覧者の注目を引くことが期待できる．
ユーザインタフェースの充実 各演出の実行時間などを基にして，タイムラインバーを作成することでユーザインタフ
ェースの充実を目指す．
共有機能を用いた双方向システム 本システムをクライアントとして，多数のクライアント間で同期をとることにより双方向システムとすることが考えられる。例えば，問題を解く時間を予め定めておき，全員が同時に問題に取り組むことなどが考えられる．

4

他にも一般ユーザや博物館員による評価を行い，その要求を反映していくことで，対話性の向上等の改善を行っていくことが考えられる．

[謝辞]
本研究室卒業生の辻圭一氏をはじめ，これまでコンテンツ演出の研究・開発に従事してくださった皆様に深謝する．

[文献］[1] 大原美術館 WEB 展示室，
http://www.ohara.or.jp/200606/jp/1_web/menu.html[2] 玉野市 3D ヴァーチャル海洋博物館，
http://media2.city.tamano.okayama.jp/3d¥_kaihaku/[3] 新日曜美術館，http://www.nhk.or.jp/[4] 美の巨人たち，http://www.tv-tokyo.co.jp/kyojin/[5] TV program Making Language,
http://www.nhk.or.jp/strl/tvml/index.html.
[6] 林正樹，”番組記述言語によるテレビ番組自動生成”，第2 回知能情報メディアシンポジウム（1996）.
[7] Synchronized Multimedia Integration Language,
http://www.w3.org/TR/SMIL2/[8] 野田英志，國島丈生，横田一正，“ディジタルミュージアムにおける自動案内のための機能と実現方法の提案”，夏のデータベースワークショップ
DBWS2003，網走，June 16-18，2003.
[9] 辻圭一，國島丈生，横田一正，“ディジタルミュージアムにおけるコンテンツ演出のための記述言語の拡張”，電気・情報関連学会中国支部第 57 回連合大会，pp.261-262，2006.
[10] 灘本明代，服部多栄子，近藤宏行，沢中郁夫，田中克己，”
Web コンテンツの受動的視聴のための自動変換とスクリプト作成マークアップ言語”，情報処理学会論文誌 Vol42
No.SIG1(TOD8)，pp.103-116，2001.
[11] D-Cubis Official Site,
http://alpha.c.oka-pu.ac.jp/D-Cubis/[12] 江本守，石崎勝俊，大河内久貴，国島丈生，横田一正，“利用者指向ディジタルミュージアムの共有化とモジュール化”，日本データベース学会 Letters Vol.3 No.1，
pp.137-140，2004.
[13] 池田隼，国島丈生，横田一正，“パノラマ画像を用いた仮想空間の構築”，日本データベース学会 Letters Vol.5
No.1，pp.97-100，2006.

小宮山 哲

Satoru KOMIYAMA

岡山県立大学大学院情報系工学研究科博士前期課程在学中．
2007 岡山県立大学情報工学部情報通信工学科卒業．ディジ
タルミュージアムや Web コンテンツの有効的な利用法の研究従事．

国島 丈生

Takeo KUNISHIMA

岡山県立大学情報工学部情報通信工学科准教授．XML とその応用，データベースシステムの研究に従事．情報処理学会，電子情報通信学会，人工知能学会，日本ソフトウェア科学会，日本データベース学会，ACM，IEEE 各会員．

横田 一正

Kazumasa YOKOTA

岡山県立大学情報工学部情報通信工学科教授．データベースシステムなどの研究・開発に従事．情報処理学会，電子情報通信学会，人工知能学会，日本データベース学会，日本バーチャルリアリティ学会，ACM，IEEE 等正会員．

日本データベース学会 Letters Vol.6, No.2