\begin{appendix} %\begin{gt} %\begin{LARGE}付 録 −MPML Version 2.0e仕様書−\end{LARGE} %\end{gt} %\addcontentsline{toc}{chapter}{付 録} \begin{footnotesize} \begin{verbatim} Multimodal Presentation Markup Language (MPML) Ver. 1.030 Specification 著者: 宗 元 東京大学電子情報工学科石塚研究室 最終更新日:2000年2月14日 概要: 本書はマルチモーダル・プレゼンテーション記述言語MPML(Multimodal Presentation Markup Language)バージョン2.0eの仕様書である。 MPMLはエージェントキャラクタを用いたマルチモーダルなプレゼンテーションのスクリプ トを作成するための言語である。 MPMLの目的、特徴に関するドキュメントはMPMLホームページ http://www.miv.t.u-tokyo.ac.jp/mpml.html を参照されたい。 MPML Version 2.0eを用いることによって、ユーザは以下のことが可能になる。 ・エージェントキャラクタの動作を簡単に記述 ・エージェントキャラクタの動作と同期した各メディアオブジェクトの挙動の記述 ・インタラクティブ対話やクリックなどのイベントによるプレゼンテーションの制御 ・エージェントキャラクタの感情表現を簡単に指定できる 本書は以下のような構成になっている。 1章では本仕様についての概略を述べている。 2章では要素"mpml"を、3章ではヘッダ部分に現れる要素、4章ではボディ部分に現れる要素 を定義している。 言語: 本仕様は現段階では日本語のみの公開となっている。 英語等への翻訳は順次行っていく予定である。 目次: 1.仕様について 2.要素"mpml" 3.ドキュメントのヘッダ 3.1 要素"head" 3.2 要素"meta" 3.3 要素"title" 3.4 要素"agent" 3.5 要素"spot" 3.6 要素"region" 3.7 要素"root-layout" 4.ドキュメントのボディ 4.1 要素"body" 4.2 要素"page" 4.2.1 要素"move" 4.2.2 要素"speak" 4.2.3 要素"play" 4.2.4 要素"emotion" 4.2.5 要素"listen" 4.2.5.1 要素"heard" 4.2.6 要素"scene" 4.2.7 要素"link" 4.2.8 要素"par" 4.2.9 要素"seq" 4.2.10 要素"media" 4.2.11 要素"jump" 4.2.12 要素"label" 4.3 MPMLの時間モデル ◆1 仕様について 要素、属性の定義は以下のようになっている: 属性の定義は基本的には初出時に行っており、以降の要素で同種の属性定義を行う場合は、そ の属性が初出した章を参照している。そこで属性の使用方法等が異なる場合にはその旨を記載 している。 MPMLバージョン2.0eには条件によって省略不可になったり、特定の属性との重複が禁じられている属性、 また、どの要素を祖先要素として持つかによって使用方法が異なってくる要素などが存在する 。 排他的な関係をもつ属性が同一要素内で重複した場合などの「MPML文法的に正しくない」 スクリプトについては、パーサは警告は行うが、修正は行わない。この場合、基本的に実行時 の処理はプレイヤに依存する。 ◆2 要素 mpml 要素"mpml"はMPMLドキュメントの最上位要素である。 [要素属性] 要素"mpml"は以下の属性を持つことができる: id この値はXMLの識別値であり、ID型の属性値を持つ。 この属性値によって、要素はドキュメントの中で一意なものに決定されるため、要素 種類が異なっていても同じid属性値を使用することはできない。 [内容モデル] 要素"mpml"は以下の子要素を持つことができる: head 3.1章で定義。 body 4.1章で定義。 ◆3 ドキュメントのヘッダ ◇3.1 要素"head" 要素"head"は、プレゼンテーションに関するメタデータを記載するレコード部と、プレゼンテ ーションのレイアウトなどの出力仕様を記載するレイアウト部にわけられる。 [要素属性] id 2章で定義。 [内容モデル] 要素"head"は以下の子要素を持つことができる: meta 3.2章で定義。 title 3.3章で定義。 agent 3.4章で定義。 spot 3.5章で定義。 region 3.6章で定義。 root-layout 3.7章で定義。 ◇3.2 要素"meta" 要素"meta"にはプレゼンテーションに関するプロパティなどの様々な情報を記述することがで きる。要素"meta"にはそれぞれ一組ずつの「プロパティ」と「その値」を記述する。 [要素属性] 要素"meta"は以下の属性を持つことができる: id 2章で定義。 name この属性によって、"meta"要素の中で定義されるプロパティが特定される。 この属性は省略不可である。 属性"name"の属性値に制限はないが、要素"rec"の子要素としての要素"meta"では、 以下のプロパティが推奨される。 ────────────────────────────────────────── [属性値][解説] [例] titl プレゼンテーションの日本語タイトル タイトル tite プレゼンテーションの英語タイトル title aupk プレゼンテーションの著者の日本語名 著者1 / 著者2 /... aupe プレゼンテーションの著者の英語名 author1 / author2 /... conf 発表会議名 情報処理学会第56回全国大会 cond 会議の行われた日 19981005 host 発表学会 情報処理学会 kywd 日本語キーワード キーワード1 / キーワード2 / ... kywe 英語キーワード key1 / key2 / ... (以上は学術情報センターの論文データベースに準拠したプロパティである) writer スクリプトの著者 著者名 wrid スクリプトのかかれた日 19980926 pred プレゼンテーションの行われた日 19981005 vafd プレゼンテーションの有効期限(from) 19980926 vatd プレゼンテーションの有効期限(to) 19990926 ────────────────────────────────────────── content この属性によって、"meta"要素の中で定義されているプロパティの値が決定される。 属性"content"は省略不可である。 [内容モデル] 要素"meta"は空要素である。 [使用例] ◇3.3 要素"title" 要素"title"にはプレゼンテーションのタイトルを記述する。 [要素属性] 要素"title"は次の属性を持つことができる: id 2章で定義。 [内容モデル] 文字列 タイトルを表すの文字列。 [使用例] Test Title ◇3.4 要素"agent" 要素"agent"には画面上でプレゼンテーションを行うエージェントキャラクタに関する情報を 記載する。要素"agent"で定義したエージェントを、要素"play"や要素"move"、要素"speak"な どで参照する。複数のエージェントを用いてプレゼンテーションを行う場合には複数の要素 "agent"を定義し、それらを参照することでマルチエージェントによるプレゼンテーションが 可能になる。 [要素属性] 要素"agent"は以下の属性を持つことができる: id 2章で定義。 明示する事を強く推奨する。 character プレゼンテーションを行うエージェントキャラクタを指定する。 省略された場合、もしくはプレイヤが指定されたキャラをサポートしていない場合は 適当なキャラクタがロードされる。 [例]character="genie" appear エージェントキャラクタの出現のタイミングを管理する。 デフォルト値は"always"である。 属性値は以下のリストから選択される: always プレゼンテーションの開始時から常に存在している。 now プレイヤが要素agentを実行する際に初めて出現する。 later showなどのplayコードで呼ばれる時まで出現しない。 never 姿は現さない。音声対話のみサポート。 region IDREF型の属性値を持ち、エージェントキャラクタが出現する場所のリージョンを指 定する。この属性値が指定されなかった場合のプレゼンテーション実行はプレイヤに 依存する。 lang 音声合成を用いるエンジンの言語を指定する。 属性値は"japanese"、"english"から選択する。 デフォルト値は"english"である。 voicetype 音声合成の種類を指定する。 属性値はプレイヤの音声合成に依存する。 [内容モデル] 要素"agent"は空要素である。 [使用例] 以下の例では、識別子"taro"と識別子"hanako"というキャラクタを定義し、声のタイプをそれ ぞれ"youngman"、"youngwoman"に設定した: ◇3.5 要素"spot" 本章は属性値が"text/mpml-basic-layout"である場合の表記方法について記す。 要素"spot"はメディアオブジェクトもしくはエージェントの位置 情報を記述する。位置が複数ある場合は複数の要素"spot"を記述する。 位置の指定方法には点での指定をする 属性"location"、属性"left"もしくは属性"top"のいずれも指定されなかった場合 は、属性"left"、"top"の値を"0"として処理される。 [要素属性] 要素"spot"は以下の属性を持つことができる: id 2章で定義。 メディアオブジェクト等の属性"spot"の属性値として、 要素"spot"の属性"id"が参照される。 この属性は要素"spot"中では省略不可である。 location リージョンを設定する位置を点で指定する。 ピクセル数による座標指定だけでなく、ルートウィンドウのサイズから得られるパー セント表記も可能であり、左からの距離と上からの距離という二つのパラメタで記述 される。メディアオブジェクトが参照するリージョンでこの属性が用いられている場 合、メディアオブジェクトの左上隅の点が指定された点にくるように実行される。 書式は以下の通りである: location-value ::= left-x "," top-y ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0,0(0%,0%) [root window] X,0(100%,0%) +----------------------------------------------------------+ | / \ / \ | | | | | | | | | | |top-y | | | | bottom-y| | | | | | | left-x \ / | | |<------------>@1 | | | | | | | | | | | | | | | | | | | | | \ / | | right-x | |<-----------------------------------> @2 | | | | | | | +----------------------------------------------------------+ 0,Y(0%,100%) X,Y(100%,100%) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ left 横方向の位置をウィンドウの左はじからの距離(もしくはパーセント)で指定する。 "left"属性を"location"属性もしくは"box"属性と同時に使用することはできない。 top 縦方向の位置をウィンドウの上はじからの距離(もしくはパーセント)で指定する。 "top"属性を"location"属性と同時に使用することはできない。 title 要素に関する情報を記載する。 要素"spot"での使用方法としては、たとえばカーソルをそのリージョンにあわせた 時に、この属性値をツールチップで表示する等の使い方ができる。 [内容モデル] 要素"spot"は空要素である。 [使用例] 以下の例では、プレゼンテーションが行われるウィンドウの左から80%、上から30%の位 置にロケーションを設定し、"ref"要素でその位置を参照している: ◇3.6 要素"region" 本章は属性値が"text/mpml-basic-layout"である場合の表記方法について記す。 要素"region"はメディアオブジェクトの大きさなどのレイアウト 情報を記述する。リージョンが複数ある場合は複数の要素"region"を記述する。 リージョンの指定方法には、長方形での指定など複数の方法がある。 属性"box"、属性"left"もしくは属性"top"のいずれも指定されなかった場合 は、属性"left"、"top"の値を"0"として処理される。 [要素属性] 要素"region"は以下の属性を持つことができる: id 2章で定義。 メディアオブジェクト等の属性"region"の属性値として、 要素"region"の属性"id"が参照される。 この属性は要素"region"中では省略不可である。 box リージョンを設定する範囲を長方形の左上の点と右下の点で指定する。 ピクセル数による座標指定だけでなく、ルートウィンドウのサイズから得られるパー セント表記も可能である。二つの点をx軸方向の距離とy軸方向の距離というそれぞ れ二つずつのパラメタで指定する方法と、一方の点を二つのパラメタで指定し、もう 一方をその点からの相対距離で指定する方法がある。 書式は以下のいずれかになる: box-value1 ::= left-x "," top-y "," right-x "," bottom-y box-value2 ::= left-x "," top-y "," "+" relative-distance-x "," "+" relative-distance-y box ::= (box-value1 | box-value2) [例] box="50,100,150,200" box="50,100,+100,+100" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0,0(0%,0%) [root window] X,0(100%,0%) +----------------------------------------------------------+ | / \ / \ | | | | | | | | | | |top-y | | | | bottom-y| | | | | | | left-x \ / | | |<------------>@1---------------------| | | | | / / / / / / / / / / /| | | | |/ / / / / / / / / / / | | | | | / / / / / / / / / / /| | | | |/ / / / / / / / / / / | | | | | / / / / / / / / / / /| | | | |/ / / / / / / / / / / | | | | |---------------------@2 \ / | | right-x | |<-----------------------------------> | | | | | | | +----------------------------------------------------------+ 0,Y(0%,100%) X,Y(100%,100%) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ left 横方向の位置をウィンドウの左はじからの距離(もしくはパーセント)で指定する。 "left"属性を"location"属性もしくは"box"属性と同時に使用することはできない。 top 縦方向の位置をウィンドウの上はじからの距離(もしくはパーセント)で指定する。 "top"属性を"location"属性もしくは"box"属性と同時に使用することはできない。 width リージョンの横幅をピクセル数、もしくはルートウィンドウのサイズからのパーセン ト表記で指定する。 height リージョンの縦の高さをピクセル数、もしくはルートウィンドウのサイズからのパー セント表記で指定する。 zindex 占有範囲が重なるリージョン等のレベルを整数値で指定する。 ルートのレベルは"0"であり、数値が大きい方が数値が小さいリージョンをオーバレ イする。 同じレベルのもの同士が重なった場合、基本的には後に処理される方がオーバレイす るが、その実行はプレイヤに依存する。 fit メディアオブジェクト等が固有の大きさを所持していて、 要素"region"で規定された範囲と大きさが異なる場合の処理方法を指定する。 デフォルト値は"hidden"である。 属性値は以下のリストから選ばれる: fill "region"要素で規定された範囲をちょうど満たすように、メディア オブジェクトの縦横のサイズを調整する。オブジェクトの縦横比は 無視される。 hidden メディアオブジェクトの大きさが"region"要素で規定された範囲よ り小さい場合は、 オブジェクトの左上隅をリージョンの左上隅にあわせ、残りの部分 は背景色で塗りつぶす。逆にリージョンからオブジェクトがはみ出 る場合は、はみ出た部分を切り取る。 meet オブジェクトの縦横比を保持したままで、オブジェクトがリージョ ンからはみ出ることのないように、オブジェクトを最大限拡大(も しくは縮小)する。オブジェクトの左上隅とリージョンの左上隅を あわせ、残りの右部分(もしくは下部分)は背景色で塗りつぶす。 scroll スクロールバーなどの機能で、リージョンからはみ出た部分を視覚 できるようにする。 slice オブジェクトの縦横比を保持したままで、オブジェクトをリージョ ンサイズに拡大(もしくは縮小)する。右側(もしくは下側)のは み出た部分は切り取られる。 backgroundcolor 背景色を指定する。 この属性が指定されないときは背景色は透明になる。 title 要素に関する情報を記載する。 要素"region"での使用方法としては、たとえばカーソルをそのリージョンにあわせた 時に、この属性値をツールチップで表示する等の使い方ができる。 [内容モデル] 要素"region"は空要素である。 [使用例] 以下の例では、プレゼンテーションが行われるウィンドウの左から80%、上から30%の位 置にロケーションを設定し、"ref"要素でその位置を参照している: □3.7 要素"root-layout" 要素"root-layuout"はルートのウィンドウ、つまりMPMLプレゼンテーション全体に関する 性質を設定する。MPMLプレゼンテーション全体の表示エリアの大きさなどはこの要素で設 定する。 [要素属性] 要素"root-layout"は以下の属性を持つことができる: id 2章で定義。 title 3.3章で定義。 width 3.6章で定義。但しパーセント表示は使用できない height 3.6章で定義。但しパーセント表示は使用できない box 3.6章で定義。但しパーセント表示は使用できない backgroundcolor 3.6章で定義。 [内容モデル] 要素"root-layout"は空要素である。 ◆4 ドキュメントのボディ ◇4.1 要素"body" 要素"body"の子孫要素には、ページのならびとなっている。プレゼンテーションは ページを順番に実行していく。 [要素属性] 要素"body"は以下の属性を持つことができる: id 2章で定義。 [内容モデル] 要素"body"は以下の子要素を持つことができる: page 4.2章で定義。 ◇4.2 要素"page" 要素"page"の子孫要素には、メディアオブジェクトの動作仕様、エージェントの動作、リンク 、プレゼンテーション制御などに関する情報を持つコンテンツがおかれる。 また要素"page"は暗黙に要素"seq"の定義を含むため、そのコンテンツの実行はシーケンシャ ルに行われる。 [要素属性] 要素"page"は以下の属性を持つことができる: id 2章で定義。 [内容モデル] 要素"page"は以下の子要素を持つことができる: move 4.2.1章で定義。 speak 4.2.2章で定義。 play 4.2.3章で定義。 emotion 4.2.4章で定義。 listen 4.2.5章で定義。 scene 4.2.6章で定義。 link 4.2.7章で定義。 par 4.2.8章で定義。 seq 4.2.9章で定義。 media 4.2.10章で定義。 jump 4.2.11章で定義。 label 4.2.12章で定義。 □4.2.1 要素"move" この要素を用いてエージェントキャラクタを移動させることができる。 移動時にはプレイヤがキャラクタに適当な動きをさせることが望ましい。 [要素属性] 要素"move"は以下の属性を持つことができる: id 2章で定義。 agent IDREF型の属性値を持ち、要素"agent"で定義したエージェントのID値を参照する。 この属性が省略された場合、対象エージェントは一番最後に定義されたエージェント となる。 region IDREF型の属性値を持つ。要素"anchor"等で指定された場所のID値、もしくはメディ アオブジェクトのID値を参照する。属性"region"は属性"location"と排他的関係にあ り、どちらか一方の存在しか許されない。属性"region"と属性"location”が同一要 素中に存在する場合の動作はプレイヤに依存する。 location 3.5章で定義。 stand 移動目標に対するエージェントの立ち位置を指定する。 デフォルト値は"on"である。 属性値は以下のリストの中から選択される: aside できるだけ移動目標に被らないよう、少し離れる。 離れる方向はプレイヤに依存 sideright 目標に向かって右側に少し離れる sideleft 目標に向かって左側に少し離れる over 目標の上側に少し離れる down 目標の下側に少し離れる on 移動目標の真上に移動する。 speed 移動のはやさの度合いを"0"〜"100"の整数値で表す。 属性値が100の時、エージェントの移動速度は最もはやくなる。 デフォルトの値は"50"である。 [内容モデル] 要素"move"は空要素である。 [使用例] 以下の例で"taro"として定義されたエージェントキャラクタはx座標100、y座標200の 位置に移動する: □4.2.2 要素"speak" プレイヤが音声合成をサポートしている場合、エージェントは要素"speak"の要素内容を発話 する。属性"end"、"dur"などで発話時間の指定を行った場合、その指定時間によって発話途中 でも強制的に発話が終了する。 [要素属性] 要素"speak"は以下の属性を持つことができる: id 2章で定義。 agent 4.2.1章で定義。 リップシンク動作を行うエージェントを指定する。 lang 3.4章で定義。 voicetype 3.4章で定義。 speed 発話のはやさの度合いを"0"〜"100"の整数値で表す。 属性値が100の時、エージェントの発話は最もはやくなる。 デフォルトの値は"50"である。 begin 発話開始のタイミングを指定する。 時間指定の方法は4.3章の時間指定の書式に準ずる。 end 発話終了のタイミングを指定する。 時間指定の方法は4.3章の時間指定の書式に準ずる。 dur 発話している時間を指定する。 時間指定の方法は4.3章の時間指定の書式に準ずる。 alt プレイヤが音声合成を実行できない場合に表示するテキストを指定する。 この属性は省略可能だが、使用することを強く推奨する。 [内容モデル] 要素"speak"はコンテンツに以下のものを持つことができる: 文字列 発話させるテキストを記述する。 [使用例] 以下の例では"taro"というキャラクタが"speak"タグで囲まれた文を英語で発話する: Hello, my name is Taro. Nice to meet you. □4.2.3 要素"play" エージェントキャラクタは要素"play"によって、様々な動作を行う。 プレイヤがサポートする動作は有限であるが、ここでは属性値のリストと、それに対応する代 表的なエージェントシステムの動作を記す。 [要素属性] 要素"play"は以下の属性を持つことができる: id 2章で定義。 agent 3.4章で定義。 act 属性"act"は要素"play"中で省略することはできない。 本バージョンの仕様では属性値として以下のリストに挙げたものが採用されている: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [属性値] [動作内容] grad | pleased | happy 喜んだ表情 sad | grieve 悲しい表情 surprise[d] | wow 驚きの表情 anger | angry 怒りの表情 confuse[d] | komatta 困惑の表情 think 考える表情、ポーズ neutral | return | poker 中立の表情、ポーズ alert 目を見開く(軽い驚き) blink まばたき acknowledge うなずき uncertain | dontrecognise よくわからない表情、ポーズ decline | deny 断る、否定 look | watch | see | gaze | grance 対象を見る lookdown 首を向けて下を見る lookleft 首を向けて左を見る lookright 首を向けて右を見る lookup 首を向けて上を見る lookdownleft 首を向けて左下を見る lookdownright 首を向けて右下を見る lookupleft 首を向けて左上を見る lookupright 首を向けて左下を見る listen[ing] 聞く(手を耳へ) hear[ing] 聞く(耳を傾ける) dontlisten 聞かない(耳をふさぐ) random-face ランダムに表情が選ばれる [属性値] [動作内容] point | gesture 対象をさす pointdown 上をさす pointleft 左をさす pointright 右をさす pointup 上をさす pointdownleft 左下をさす pointdownright 右下をさす pointupleft 左上をさす pointupright 右上をさす pointkb キーボードをさす grab 対象をつかむ touch 対象をさわる getit 画面からモノを取る動作 janken | scissors-paper-stone じゃんけん(ランダム) janken_goo | stone じゃんけんのグー janken_choki | scissors じゃんけんのチョキ janken_pa | paper じゃんけんのパー yubiori | count 指を折って数える greet | bow 挨拶(おじぎ) announce お知らせ explain 説明ポーズ wave | bye 手を振る [get]attention 注目を集める suggest 提案する congratulat(e|ion) お祝いの動作 shake 体をふるわす stand[up] 座っているエージェントが立つ sit[down] 立っているエージェントが座る neutral 中立の表情、ポーズ show エージェントが現れる hide エージェントが姿を消す urge2type キーボードを打つよう促す urge2sit 座るよう促す appeal 呼びかける receive 受け取る hand 手渡す domagic 杖を振る busy | processing ビジー動作をする read[ing] 本を読む動作 search[ing] なにかを探す動作 writ(e|ing) なにかを書く動作 idl(e|ing) アイドリング動作 ────────────────────────────────────────── act属性は、以下の構文規則に従って、複数の属性値を指定することができる。 記号 意味 | OR どちらかが選択される & AND 同時に動作が行われる ; AFTER 連続して動作が行われる () 構文解釈優先 記号解釈の優先度を設定する ";"や"|"、"&"などの構文規則を使用した場合、タイミングを記述する属性("begin","end", "dur")は使用することができない。 またその場合、動作対象("object")はただ一つに限定される。 終了時間を明示しないとずっと継続するような動作("look"など)の後に別の動作が続く時の エージェントの挙動はプレイヤ依存であるが、基本的には一つの動作の完了と同時に次の動作 が実行される。 [例] 1. 首を左に向けて何かを見ながら、まばたきをする: 2. 首を左に向けて何かを見た後、まばたきをする。 この場合、左を向いて何かを見ている時間の指定をすることはできない。 3. 首を左に向けて何かを見ながらまばたきをする。その後、驚いた表情をする この場合、左を向いて何かを見ている時間の指定をすることはできない。 4. 動作内容は2.と同じだが、左を見ている時間の指定ができる。 5. 動作内容は1.とほぼ同じだが、まばたきの開始などの時間の指定ができる。 6. "anchor1"として定義した場所を5秒間見る。その後"anchor2"を5秒間指す。 7. "look", "point"の対象は両方とも"anchor1"になる。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ parts エージェントのどの部分を動作させるかを示す。デフォルト値はall。 この属性は以下の属性値をもつことができる。 all 体全体を動作させる face 体は動かさず、顔だけ目的の動作をさせる hand 手だけ目的の動作をさせる eyes 目だけ目的の動作をさせる object 属性"act"の属性値が、"glance"、"look"、"point"等の場合、属性"object"または 属性"objectloc"の指定が必要である。属性"object"はIDREEF型の識別子参照値が 属性値となる。ただし、予約語として"random"(ランダムな座標を目的に定める)、 "front"(画面正面を目標に定める)という属性値が用意されている。 objectloc 属性"act"の属性値が、"glance"、"look"、"point"等の場合、属性"object"または 属性"objectloc"の指定が必要である。属性"objectloc"はCDATA型の属性値を持ち 3.3.1章の属性"location"の書式に準ずる。指定された座標が対象となる。 degree 動作の程度の強さの度合いを"0"〜"100"の整数値で表す。 属性値が100の時、エージェントの動作の程度は最も強くなる。 デフォルト値は"50"である。 speed 動作の素早さの度合いを"0"〜"100"の整数値で表す。 属性値が100の時、エージェントの動作は最も素早くなる。 デフォルト値は"50"である。 begin 一つの要素"play"の動作の明示開始時間を指定する。 時間指定の書式は4.3.4章に定義する。 end 一つの要素"play"の動作の明示終了時間を指定する。 時間指定の書式は4.3.4章に定義する。 dur 一つの要素"play"の動作の明示継続時間を指定する。 時間指定の書式は4.3.4章に定義する。 track 対象オブジェクトの位置が変わったときに、それを追跡するかどうかを指定する。 一部の属性"act"に対応している。属性値は"on"または"off"から選択される。 デフォルト値は"off"である。 pointgesture 属性"act"の属性値が"point"の場合、この属性を用いて手の形を指定することがで きる。デフォルト値は"finger"である。 属性値は以下のリストから選ばれる: finger 人差し指を用いて対象をさす back 手の甲を正面にむけて対象をさす down 手のひらを下にむけて対象をさす up 手のひらを上にむけて対象をさす forward てのひらを正面にむけて対象をさす [内容モデル] 要素"play"は空要素である。 □4.2.4 要素"emotion" 要素"emotion"は、その子要素にある"speak"と"move"の感情修飾に使う。 [要素属性] 要素"emotion"は以下の属性を持つことができる: id 2章で定義。 type 修飾用感情種類を指定する。 属性"type"は要素"emotion"中で省略することはできない。 本バージョンの仕様では属性値として以下のリストに挙げたものが採用されている: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [属性値] [表現する感情] joyful 嬉しい distressed 悲しみ happy-for 嬉しく思う sympathy 同情 jealousy 嫉妬 schadenfreude 嘲笑 hopeful 期待 worried 心配 satisfaction 達成感 fears-confirmed 不安的中 relief 安堵 disappointment がっかり pride 誇り shame 恥じ admiration 賞賛 reproach 非難 thankful 感謝 anger 怒り gratification 自己満足 remorse 後悔 love 好み hate 憎しみ neutral なし dependence 現在状況依存 ────────────────────────────────────────── [内容モデル] 要素"emotion"は以下の子要素を持つことができる: move 4.2.1章で定義。 speak 4.2.2章で定義。 [使用例] hello! □4.2.5 要素"listen" 要素"listen"にユーザの入力に対する対応を記述する。 [要素属性] 要素"listen"は以下の属性を持つことができる: id 2章で定義。 [内容モデル] 要素"listen"は以下の子要素を持つことができる: heard 4.2.5.1章で定義。 □4.2.5.1 要素"heard" 要素"heard"にユーザの個々の入力に対する対応を記述する。 [要素属性] 要素"heard"は以下の属性を持つことができる: id 2章で定義。 key 入力として受け付ける音声を指定する。 key属性は以下の構文規則に従って、複数の属性値を指定するこ とができる。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [記号] [意味] | or どちらか一方にマッチする [] 省略可 発話されなくても良い () 構文優先解釈 構文解釈の優先度を指定 ... 省略記号 省略記号の位置での発話を無視する * くりかえし記号 1回以上の繰り返しをマッチさせる [例] 1. key=''( Hello | Hi )'' ``Hello''もしくは''Hi''を認識したら処理を行う。 2. key=''( [ Say ] Hello | Hi )'' ``Say hello'', ``Hello'', ``hi''を認識したら処理を行う。 3. key=''open the...'' ``open the sesame'' でも ``open the pineapple'' でもマッチ。 4. key=''(hello)* world'' ``hello world'' も ``hello hello world'' もマッチ。 5. 以下のような複雑な構文も可能 key=''([ say ] [ good ] (bye)*... | ...hide... | ...[ go ] away)'' ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [内容モデル] 要素"heard"は以下の子要素を持つことができる: move 4.2.1章で定義。 speak 4.2.2章で定義。 play 4.2.3章で定義。 emotion 4.2.4章で定義。 listen 4.2.5章で定義。 scene 4.2.6章で定義。 link 4.2.7章で定義。 par 4.2.8章で定義。 seq 4.2.9章で定義。 media 4.2.10章で定義。 jump 4.2.11章で定義。 「使用例」 □4.2.6 要素"scene" MPML Version 2.0aのために予約されている。 MPML Version 2.0eでは使用されていない。 □4.2.7 要素"link" MPML Version 2.0aのために予約されている。 MPML Version 2.0eでは使用されていない。 □4.2.8 要素"par" 要素''par''の子要素は、そのドキュメント中の順序に関係なく、並行して実行される。 [要素属性] 要素''par''は以下の属性を持つことができる: id 2章で定義。 begin メディア再生等の明示開始時刻を指定する。 また、そのイベントが、どのイベントに対して「遅れる」のかという指定も出来る。 時間指定の書式は4.3章に定義する。 ────────────────────────────────── [例] 1. の暗黙の開始時刻より、6秒遅れて''audio''が再生される。 2. ``audio''の再生が開始して4秒後に''img''が表示される。 ────────────────────────────────── end メディア再生等の明示終了時刻を指定する。 属性''begin''と同様の指定方法ができる。 時間指定の書式は4.3.4章に定義する。 dur メディア再生等の明示継続時間を指定する。 時間指定の書式は4.3.4章に定義する。 endsync メディア再生、エージェント動作などが並行して行われる場合、それらを終了する タイミングを指定する。デフォルト値は''last''。 属性値は以下の中から選択される: ○last :暗黙終了時間は各メディア再生、エージェント動作などのうち、 すべてが終了するまでとなる。 ○first :最初に動作が終了したメディアの終了時刻に他すべてのメディア を終了させる。 ○idref :この属性値は以下の書式に従う: idref ::= ``id(`` idvalue ``)'' ここでidvalueは参照するメディア等のid属性の識別子である。 参照されたメディア等の終了時刻をもとに暗黙終了時間が計算さ れる。 region IDREF型の属性値を持ち、要素''region''で設定されたリージョンへの参照を行う。 repeat 繰り返し回数を指定。整数値もしくは''indefinite''という指定ができる。 デフォルト値は''1''である。 title 3.3章で定義。 この属性を明示することを強く推奨する。 abstract 要素のコンテンツに関する簡単な説明。 author 要素のコンテンツの作者。 copyright 要素のコンテンツのコピーライト。 [内容モデル] 要素''par''は以下の子要素を持つことができる: move 4.2.1章で定義。 speak 4.2.2章で定義。 play 4.2.3章で定義。 emotion 4.2.4章で定義。 listen 4.2.5章で定義。 scene 4.2.6章で定義。 link 4.2.7章で定義。 par 4.2.8章で定義。 seq 4.2.9章で定義。 media 4.2.10章で定義。 jump 4.2.11章で定義。 label 4.2.12章で定義。 [使用例] hello! 以上のスクリプトの実行は、以下のように行われる。 エージェントは挨拶動作をしはじめてから2秒後に発話を行う。 |---------par----------| <---------play---------> <-2s-><------speak-----> □4.2.9 要素"seq" 要素"seq"の子要素は、そのテキスト内に現れる順番に従って実行される。 [要素属性] 要素"seq"は以下の属性を持つことができる: id 2章で定義。 begin 4.2.8章で定義。 end 4.2.8章で定義。 dur 4.2.8章で定義。 repeat 4.2.8章で定義。 region 4.2.8章で定義。 title 3.2.8章で定義。 この属性を明示することを強く推奨する。 abstract 4.2.8章で定義。 author 4.2.8章で定義。 copyright 4.2.8章で定義。 [内容モデル] 要素"seq"は以下の子要素を持つことができる: move 4.2.1章で定義。 speak 4.2.2章で定義。 play 4.2.3章で定義。 emotion 4.2.4章で定義。 listen 4.2.5章で定義。 scene 4.2.6章で定義。 link 4.2.7章で定義。 par 4.2.8章で定義。 seq 4.2.9章で定義。 media 4.2.10章で定義。 jump 4.2.11章で定義。 label 4.2.12章で定義。 [使用例] hello! 以上のスクリプトの実行は以下のように行われる。 エージェントは挨拶動作を完了してから2秒後に発話を行う。 |-------------seq-------------| <---play---><-2s-><---speak---> □4.2.10 要素"meida" MPML Version 2.0aのために予約されている。 MPML Version 2.0eでは使用されていない。 □4.2.11 要素"jump" 要素"jump"の"ref"属性に飛び先の要素"label"の"id"の値を 指定することで、処理が"label"の存在するところに飛ぶ [要素属性] 要素"jump"は以下の属性を持つことができる: id 2章で定義。 ref "label"の"id"の属性を指定。 [内容モデル] 要素"jump"は空要素である。 [使用例] □4.2.12 要素"label" 要素"label"に要素"jump"の飛び先を指定する。 [要素属性] 要素"label"は以下の属性を持つことができる: id 2章で定義。 [内容モデル] 要素"label"は空要素である。 [使用例]