HVMLとは
HVML(Hyper Void Markup Language)とはXML1.0をベースとしたマークアップ言語である。
ロボホンとの対話(ロボホンの発話、音声認識の操作)を実現する為に必要となる。
ロボホンに発話させるには
発話内容は<speech>タグに記載する。
サンプルコードの場合は「お話ししてく、ありがとう!・・・」の発話をする。
<action index="1">
<speech>お話してくれて、ありがとう!これから、僕にいろんなことを教えてね!!</speech>
<behavior id="assign" type="normal" />
</action>
<speech>タグ
項目 | 説明 |
---|---|
書式 | <speech>~</speech> |
親要素 | <action> |
子要素 | <emotion>,<wait> |
属性 | なし |
注意点
- 体感的に
、
は1拍、。
は2拍ほどの間が空く - 現実的に発音不可の言葉は問題箇所の発話がおかしくなる。(例:「んん」)
- 「んん」の場合は音が途切れるような感じになります
- 一つのspeechタグの上限は明確に決まっていないが、60秒を目安にしゃべれるように文章を区切る
- speechタグ内の改行はエラーになる
- ドキュメントによると問題ないとの記載があるのですが、検証環境ではエラーになったので…
連続した発話の設定
同じtopic id内の会話は<action>タグのindexで管理する。
サンプルコードの場合は、「今日の晩ご飯は・・・」の次に「楽しみだね」を発話する。
indexは整数で欠番なし
に設定していく。
<action index="1">
<speech>今日の晩ご飯は、カレーみたいだよ。</speech>
<behavior id="assign" type="normal" />
</action>
<action index="2">
<speech>楽しみだね。</speech>
<behavior id="assign" type="normal" />
</action>
<action>タグ
項目 | 説明 |
---|---|
書式 | <action index="・・・">~</action> |
親要素 | <topic>,<case> |
子要素 | <speech>,<behavior>,<control>,<memory> |
属性 | index(必須) |
感情の変更
ロボホンの感情の調整は<emotion>タグで行う。
typeで設定する感情は以下の3つ。
- happiness
- sadness
- anger
- ロボホンデフォルトの感情は
happiness,level 1
- ロボホンデフォルトの感情は
levelは1~4で設定する。(デフォルトは1
)
<action index="1">
<speech><emotion type="happiness" level="2">今日の晩ご飯はカレーみたいだよ。</emotion></speech>
<behavior id="assign" type="normal" />
</action>
<emotion>タグ
項目 | 説明 |
---|---|
書式 | <emotion type="・・・">~</emotion> |
親要素 | <speech> |
子要素 | なし |
属性 | type(必須),level |
モーションの追加
発話中のモーションを明示的に指定する場合は、<behavior>タグのidを設定する。
<action index="1">
<speech><emotion type="happiness" level="2">全ての人たちに、</emotion></speech>
<behavior id="0x060027" type="normal" />
</action>
<action index="2">
<speech>愛される可愛さ、ロボホンです。</speech>
<behavior id="assign" type="normal" />
</action>
<behavior>タグ
項目 | 説明 |
---|---|
書式 | <behavior type="・・・" id="・・・"/> |
親要素 | <action> |
子要素 | なし |
属性 | type(必須),id(必須) |
注意点
- 設定のコツとして、speechタグを短く設定すると調整がしやすくなる
長い文書と短いモーションが組み合わさると、少し動いた後にspeechタグが終わるまで動作がないため、不自然になる - デフォルトidの
assign
は首を動かす仕草や特定の単語で動作をするようになる
(例:「サッカー」でボールを蹴る仕草)
明示的に指定した場合、このような動作を一切しなくなる