ビヘイビアマークアップ
ビヘイビアマークアップを使用すると、音声ファイルのスクリプトにビヘイビアコントロールを挿入できます。演技についてライターがディレクションできるようになるため、台本を準備するときに便利です。
ただし、ビヘイビアマークアップはかなり手間のかかる作業です。基本的には、バッチ処理でバッチ全体にビヘイビアコントロールを適用し、アニメーションのプレビューを確認しながらメタデータを編集するほうが効率的です(「SGXのインタラクティブな処理」参照)。
ローカルのビヘイビアマークアップは、処理の際にグローバルマークアップよりも優先されます。
マークアップの形式
マークアップを使用するには、「sgx」というXMLタグをスクリプトに追加します。以下のように、タグを適用するテキストの前後をタグで囲みます。
<sgx mode="friendly" speech_magnitude="1.2">
これからお話しするのは、あの戦争に出征した祖父のことです。</sgx>
えーと、出征する前は登山家でした。えー、いろんな山に登っていましたね。Kツーに最初のころに登頂した登山隊のメンバーだったんです。
青色のテキスト部分の音声は、モードは「friendly」に、スピーチの強さモディファイアは1.2になります。
タグの中に別のタグを入れることもできます。
<sgx mode="friendly" nonverbal_magnitude="1.2">
これからお話しするのは、あの戦争に出征した祖父のことです。<sgx mode="excited">
えーと、出征する前は登山家でした。</sgx>
えー、いろんな山に登っていましたね。Kツーに最初のころに登頂した登山隊のメンバーだったんです。</sgx>
内側のタグのアトリビュート(属性)は、外側のタグのアトリビュートよりも優先されます。上記の場合、赤色のテキスト部分の音声モードは、「friendly」ではなく「excited」になります。
ビヘイビアモードのマークアップアトリビュート
ビヘイビアモードの変更やオートモードの設定に使用するアトリビュートは以下のとおりです。
アトリビュート | 説明 |
---|---|
| オートモードが検出されない場合にアクティブになる、デフォルトのビヘイビアモード。 |
| ポジティブオートモードがトリガーされるビヘイビアモード。 |
| ネガティブオートモードがトリガーされるビヘイビアモード。 |
| エフォートオートモードがトリガーされるビヘイビアモード。 |
| 笑いオートモードがトリガーされるビヘイビアモード。 |
| アクティブにするオートモード。「none」、「all」のいずれかと、「positive」、「negative」、「effort」、「laugh」をカンマ区切りで指定できます。 |
以下に例を示します。
<sgx mode="Neutral" auto_modes="positive,negative" positive_mode="Happy" negative_mode="Sad">
これからお話しするのは、あの戦争に出征した祖父のことです。<sgx mode="Excited" auto_modes="none">
えーと、出征する前は登山家でした。</sgx>
えー、いろんな山に登っていましたね。Kツーに最初のころに登頂した登山隊のメンバーだったんです。</sgx>
各タグを詳しく見ていきましょう。まず、外側のテキスト(青色)のタグの意味は以下のとおりです。
デフォルトのビヘイビアモードは「Neutral」。
オートモードで有効なのはポジティブとアクティブ。エフォートは検出されない。
ポジティブオートモードの場合は「Happy」がトリガーされ、ネガティブオートモードの場合は「Sad」がトリガーされる。
内側のテキスト(赤色)のタグの意味は以下のとおりです。
デフォルトのビヘイビアモードは「Excited」。
オートモードは無効。デフォルトのモードしか発生しない。
ビヘイビアモディファイアのマークアップアトリビュート
ビヘイビアモディファイアの設定に使用するアトリビュートは以下のとおりです。
アトリビュート | モディファイア |
---|---|
| |
| |
| |
| |
| |
| |
| |
|
以下に例を示します。
<sgx speech_magnitude="0.9" nonverbal_magnitude="0.9">
これからお話しするのは、あの戦争に出征した祖父のことです。<sgx speech_magnitude="1.2" nonverbal_magnitude="1.4">
えーと、出征する前は登山家でした。</sgx>
えー、いろんな山に登っていましたね。Kツーに最初のころに登頂した登山隊のメンバーだったんです。</sgx>
この例の場合、外側のテキスト(青色)では、スピーチの強さとノンバーバルの強さがどちらも0.9に設定されているのに対して、内側のテキスト(赤色)では、スピーチの強さが1.2、ノンバーバルの強さが1.4になっています。
マークアップのtimeアトリビュート
通常、マークアップのタグの位置は、タグに囲まれているテキストの位置を基準とした音声の位置に設定されます。以下の例を見てみましょう。
<sgx mode="friendly">
これからお話しするのは、あの戦争に出征した祖父のことです。</sgx>
<sgx mode="serious">
えーと、出征する前は登山家でした。</sgx>
この場合、各モードの位置合わせは以下のようになります。

「friendly」モードと「serious」モードの境界は、「これからお話しするのは、あの戦争に出征した祖父のことです」が終わって、「えーと、出征する前は登山家でした」が始まる5,390msの位置です。
ところが、タグのタイミングを明示的に設定するオプションのtime
アトリビュートを使用すると、位置を基準としたタイミング設定を無視できます。
アトリビュート | 説明 |
---|---|
| タグの開始時間(ミリ秒単位)。スクリプトのタグの位置を基準とした開始時間を無視します。 |
たとえば、以下のようにマークアップしたとします。
<sgx mode="friendly" time="0"/> <sgx mode="serious" time="4000"/>
これからお話しするのは、あの戦争に出征した祖父のことです。えーと、出征する前は登山家でした。
この場合、各モードの位置合わせは以下のようになります。

「serious」モードの開始位置は、タグで指定されている4,000msになっています。なお、time
アトリビュートは、タグの開始時間を決定するものです。タグの終了時間は、次の時系列タグの開始時間か音声の終了時間のいずれか早いほうに自動的に設定されます。したがって、終了のタグは必要ありません。
SGXでは、可能な場合、スピーチの句解析で隣接する境界にタイミングを移すため、指定した時間値と実際の開始時間でわずかなズレが生じる場合があります。
スクリプトを作成しない場合のマークアップ
マークアップのタグは、以下のようにスクリプトを作成しない場合でも使用できます。
<sgx mode="friendly" time="0"/> <sgx mode="serious" time="2000"/>
このスクリプトにはマークアップしかなく、音声のスクリプトはありません。タグのタイミングを定義する単語もありませんが、time
アトリビュートを使用すれば開始時間を明示的に設定できます。time
アトリビュートを使用しない場合、タグの開始時間は音声ファイルの開始時点になります。