LoginSignup
2
1

More than 5 years have passed since last update.

はじめてのMMDAgent

Last updated at Posted at 2015-04-22

スクリプトきほんのき

MMDAgentのスクリプトは、
1 31 RECOG_EVENT_STOP|こんにちは SYNTH_START|mei|mei_voice_normal|こんにちは。
のように、
数字1 数字2 ほげほげ1(イベント) ほげほげ2(アクション) 
となっています。ざっくり言うと、
数字1の状態のときにほげほげ1というイベントが起こったら、数字2と同じ数字のところに遷移してね!
んでもってほげほげ2も実行しといてちょーだいな。
って感じです。

メイちゃんとおしゃべり(きほん)

1 31 RECOG_EVENT_STOP|こんにちは SYNTH_START|mei|mei_voice_normal|こんにちは。
31 2 SYNTH_EVENT_STOP|mei     <eps>

きほんのおしゃべりはこんな感じ。

まず、1行目と2行目の最初の1という数字
これは、音声認識待機状態みたいなものです(たぶん)

メイちゃんが待機している状態の時に、「こんにちは(わ)」を認識すると、認識が終了します。
RECOG_EVENT_STOP|こんにちは(わ)
というイベントが起こったら、31に遷移してね。
SYNTH_START|mei|mei_voice_normal|こんにちは。
をやってね!と書いてあるわけです。

さて、31に遷移しました。
SYNTH_EVENT_STOP|mei
合成が終了したら、2に遷移してね。
4項目目(ほげほげ2に当たる部分)の<eps>は、何もしないということです。
2に遷移すると、fstの上の部分に書かれているのですが、
音声認識、タイマーイベントなどがスタートし(つまるところ待機状態が再開)
状態1に遷移、喋りかけられるの待つことになります。

メイちゃんとおしゃべり(モーションがついたよ!)

fstにサンプルとして書かれている「こんにちは」を例にします。

1 31 RECOG_EVENT_STOP|こんにちは SYNTH_START|mei|mei_voice_normal|こんにちは。
1 31 RECOG_EVENT_STOP|こんにちわ SYNTH_START|mei|mei_voice_normal|こんにちは。
31 32 <eps>             MOTION_ADD|mei|action|モーションファイル|PART|ONCE
32 2 SYNTH_EVENT_STOP|mei    <eps>

音声を認識が終了し、31に遷移するところまではさっきと一緒。
31に遷移すると、おや、3項目目(ほげほげ1)には<eps>と書かれています。
遷移条件を指定したくない場合は3項目目を<eps>にします。
そうすると

SYNTH_START|mei|mei_voice_normal|こんにちは。
MOTION_ADD|mei|action|モーションファイル|PART|ONCE

の2つのアクションが同時に起こります。
そこからはさっきと同じ。
こんにちはを認識し、認識終了したところで、32に遷移することになるので、
音声合成が終了したら、2に遷移、待機状態に戻ります。

Tips

1 31 イベント アクション
という行が二行ありますよね。
これは、「こんにちは」か「こんにちわ」を認識したら、31に遷移してね。ということです。

1 31 RECOG_EVENT_STOP|こんにちは SYNTH_START|mei|mei_voice_normal|こんにちは。
31 32 <eps>                     MOTION_ADD|mei|action|モーションファイル|PART|ONCE
1 41 RECOG_EVENT_STOP|こんにちわ SYNTH_START|mei|mei_voice_normal|こんにちは。
41 42 <eps>               MOTION_ADD|mei|action|モーションファイル|PART|ONCE

の様にわけて書いてもいいんだろうけど、
どうせ遷移先で同じアクションを行うんだから、まとめたほうがスマートだよね。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1