俺に解るように説明する "Godot Engine 3.x" 入門+

ゲームエンジン Godot Engine に関すること。入門とか使い方とかチュートリアルとか、あれとかこれとか。日本語解説。

Godot 音シュー03「テンポを調べてカウントダウン」

BPM とは「beat(s) per minute」の略。1分間にどんだけビート(拍子)があるかって事。こんな用語があるなんて、今回初めて知ったぜ。で、なんでコレが必要かと言うと、方向キューブをビートに合わせて飛ばすためなんだけど、それだけじゃなくて曲をかける前段階でも必要になってくるんだぜ。

f:id:ore2wakaru:20180525193247p:plain


カウントダウンだって BPM が必要

まーあれだ、ゲームする時いきなり曲がかかったら、あせるだろ。だから曲がかかる前に、「3・・・、2・・・、1・・・」みたいなカウントダウンがあってから曲を再生したいじゃん。

だけど、ここで使うカウントダウンを、例えば「秒」単位で行うと、普通、曲のテンポは「秒」間隔と一致してないから、カウントダウンのテンポと直後にかかる曲のテンポが違って、変な違和感が生じるハズ。

そんな事にならないよう、このカウントダウンの段階でも曲のテンポに合ったカウントダウンをしないといけないワケだ。つまり、BPM に則したカウントダウンが必要って事な。


BPM を調べる

Godot にそんな便利な API はないので、フリーソフトのお世話になろう。でも、「曲 テンポ 調べる」などでググって好きなの使えばいいダケ。簡単。

ちなみに俺は、

の2つを使ってみた。また、WaveTone で BPM の調べ方は、「WaveToneで曲のテンポを調べる」でググればいい。

先に DL した「なんでしょう? by KK https://dova-s.jp/bgm/play710.html」は WaveTone だと 226 と出るんだけど、これだとテンポが早すぎるので 2 で割って 113 と思っておく事にする。BeatCounter だと、112.8 ~ 113.6 くらいの幅で出て来る感じ。だから、113 でイイよきっと。

BPM: 113

出たな。


カウントダウンで効果音

とりあえず、8 ビード待ってから曲をかけるようにスクリプトする。最初の 4 ビートは何もしないで、後の 4 ビートは「3、2、1」と画面表示させる。と思って、スクリプトしていったんだけど、音なしのカウントダウンだとなんとも味気ない。

のでので、最初の 4 ビートで「タン、タン」と音を鳴らして、次の 4 ビートで「タン,タン,タン」と鳴らしてみたらなんかイイ感じっぽかったので、「カウントダウン画面表示 + 効果音」で行くことにした。

「タン、タン、(3)タン(2)タン(1)タン」 > 曲

って事ね。で、効果音は、こっから DL させていただいた。

の「物音13 https://maoudamashii.jokersounds.com/list/se5b.html」 (カン♪)

すばらしいことに、mp3、ogg、wav から選べる。ありがとう! もちろん商用フリー。サンキュー!

で、大抵効果音は wav、 BGM は ogg を選ぶ。なんでかって言うと、ogg は圧縮されているから容量は小さくなるが、音が出るまでに時間が掛かる。展開してから鳴らすからな。一方、wav はそんなことしてないから、すぐに音が鳴る。でもファイルサイズはでかい。こういう違いがある。

今回「カン♪」という効果音は、すぐに鳴ってほしいから wav を選んだ。別に微妙な音のズレなんか気にしな~い、という場合やファイルがデカすぎていやや、という場合は ogg にすればいい。


ノード変更・追加

f:id:ore2wakaru:20180525183416p:plain

  1. 変更: 前回、曲を入れたノード。リネームしただけ。
  2. 追加: カウントダウンを表示する用のラベル
  3. 追加: 効果音を鳴らすために追加

[2] のラベルの表示位置は、適当に画面の真ん中らへんに持ってくればいいよ。UI 系のノードはカメラを明示的に置かなくても [シーン再生] で画面表示してくれる。ただ、文字が小さいので、適当に Rect Scale で拡大だ。

f:id:ore2wakaru:20180525191737p:plain

標準のフォントが気に入らなければ、外部フォントを使えばいい。(外部フォントのやり方は、エアホッケーの03参照。なんか、フォントはエクスプローラから D&D でインポートできないのかね?)

[3] は効果音用の「AudioStreamPlayer」ノード。曲と効果音の音量を別々に操作できるように分ける。なので、当然 Bus を追加して設定しておくこと。

f:id:ore2wakaru:20180525191722p:plain

それから、プロパティは、こんな感じで整える。

f:id:ore2wakaru:20180525192121p:plain

  1. 前回同様、エクスプローラからファイルシステムに D&D してインポートしたら、ココにセットするだけ。ファイルシステムからここに D&D すればいい。楽勝。
  2. 音量を下げてる。 "-20"。曲よりも小さめにしたけど好み。最終的にはゲーム中のオプションから音量を変えられたらいいなと思ってる。
  3. 当たり前だけど、追加した "NEW Bus 2" に。


スクリプト

あとはスクリプトなんだけど、これは次回。

なんか、フリーソフトと素材サイトの紹介になっちまってるなー。