MMDAgentにプレゼンテーション代行してもらう

MMDAgentには特定ウィンドウにキー入力を送る「KEY_POST」コマンドが用意されていますが、あまり凝ったことはできません。

Windowsの強力なスクリプティング環境であるAutoHotkeyを使用すると、より複雑な操作が可能になります。

今回は簡単な例としてMMDAgentにHTMLベースのプレゼンテーションを代行してもらう方法を紹介します。

MMDAgentのシナリオ設定

「.fst」の設定は以下のとおりです。プレゼンテーション用のHTMLファイルを開き、その後AutoHotkeyでページを進めるようになっています。

1 161 RECOG_EVENT_STOP|プレゼンテーション SYNTH_START|mei|mei_voice_normal|プレゼンテーションを開始します。
161 162 SYNTH_EVENT_STOP|mei EXECUTE|C:\path\to\presentation.html
162 163 <eps> TIMER_START|pwait|2
163 164 TIMER_EVENT_STOP|pwait SYNTH_START|mei|mei_voice_normal|それでは、説明させて頂きます。
164 165 SYNTH_EVENT_STOP|mei TIMER_START|pwait|2
165 166 TIMER_EVENT_STOP|pwait EXECUTE|C:\path\to\send_return_to_chrome.ahk
166 167 <eps> TIMER_START|pwait|2
167 168 TIMER_EVENT_STOP|pwait SYNTH_START|mei|mei_voice_normal|目次はこのようになっています。
168 169 SYNTH_EVENT_STOP|mei TIMER_START|pwait|2
169 170 TIMER_EVENT_STOP|pwait EXECUTE|C:\path\to\send_return_to_chrome.ahk
170 171 <eps> TIMER_START|pwait|2
171 172 TIMER_EVENT_STOP|pwait SYNTH_START|mei|mei_voice_normal|一枚目のスライドです。
172 2 SYNTH_EVENT_STOP|mei <eps>

なお、スライドはhtml5slidesからDemoページを保存して動作確認しています。

send_return_to_chrome.ahk

Chromeのウィンドウにリターン・キーを送信するためのスクリプトです。(html5slidesはリターン・キーでページが進みます)

SetTitleMatchMode,RegEx
WinActivate, .* - Google Chrome$
WinWaitActive, .* - Google Chrome$, , 2
Send, {Return}

本来これだけならば、わざわざAutoHotkeyを使うまでも無いかもしれませんが、どうも「KEY_POST」コマンドではうまく動作しなかったので確実な方法として選択しました。

おわりに

準備はかなり面倒ですが、モーションなどを活用すれば、それなりに表現力のあるプレゼンテーションが実現できるかもしれません。

なお、MMDAgentのウィンドウはブラウザの裏に隠れてしまわないように、常に前面に表示させておく必要があります。

WindowsVista以降の環境であれば、下記ページで配布されているウィンドウ透過プラグインで、MMDAgentの背景およびウィンドウ枠を透過させることができるようです。

blog comments powered by Disqus