ウディタでエフェクトを音楽に合わせてみよう!【midi編その1】

※その1と書いてしまいましたがその2以降は未定です。てへぺろ

演出が音楽に合わせてバシっと決まるとかっこいいですよね!
というわけで今回は、エフェクトを音楽に同期させてみましょう(簡易的に)。
(本当にがっつり合わせようと思うなら並列実行で「音楽がいま何秒流れているか」を監視しないとだめなんですが、ここはまず入門編ということで)

やること:「XXフレームごとに主人公をシェイクさせる」
必要なのは主人公の画像とイベントひとつだけです。ね、簡単でしょ?
問題は、「XXフレーム」の方をどう算出するかです。

用意するもの:最初から最後までテンポが変わらないmidi音楽ファイル
素材屋さんのmidiの中には、途中で曲の速さが変わるものもあります。メリハリのついた、凝った曲ですね。
今回は、そういった曲は使いません。ウディタに最初から入っている「Battle02_Kagamiyomi.mid」あたりが適任でしょう。

確認すること:ウディタのフレームレート
フレームレートというのは1秒に何フレームあるか、という値で、
FPSという単位で表されています。
「ゲームの基本設定」を開くと、確認できます。
今回は60FPSを基準にして計算します。

さて、いきましょう。
1.曲のテンポを確認する
Dominoか何かを使って、midiファイルを開いてみましょう。
2小節目にカーソルを合わせて、テンポ欄を見てみます。
2013-05-18説明用_テンポ

この曲の場合はテンポが180ですね。
これは、「1分あたり180拍」ということです。(180BPMとも言います)
逆に言えば、1拍あたり1/180分ですね。
1分は60秒ですので、1拍あたり 60/180秒 になります。
さらにさらに、フレームレートは1秒あたり60フレームなので、1拍が3600/180=20フレームになります。
まとめると、1拍あたりにかかるフレーム数は3600/BPMになります。(30FPSのときは1800/BPM)

2.セットアップ時間の分だけウェイトする
midiファイルには、楽器をセッティングするために少なくとも1小節が用意されています。
その時間は音楽が鳴らないので、ウェイトをかける必要があります。
このセットアップの時間は曲を作る人によってまちまちですので、これも確認しましょう。
2013-05-18説明用_セットアッ

この曲の場合、4拍ぶんを180BPMで取っているので、ウェイト時間は3600/180*4=80フレームとなります。

これでぴったり曲のはじまりからシェイクが始まるはずです。

こんな感じに組んで動かしてみれば、同期しているのがわかります。

■サウンド:BGM ファイル[BGM/Battle02_Kagamiyomi.mid] 音 100% 周 100% ル 0ms 再生 / 処理時間:0フレーム
■ウェイト:80 フレーム
■キャラエフェクト:主人公[シェイク] Xシェイク 0 / Yシェイク 20 / 999回 (20)フレーム


速すぎると感じる場合は、シェイク間隔を2倍や4倍にしてみるのもいいかもしれません。
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。