たまには
こんにちは。企画のかわぬです。
たまには技術的なお話でも。
ゲームのBGMって、曲の終わりで止まらずにループして鳴り続けていることが多いですよね。
「どういう仕組みだろう?」と疑問に感じたことがある人もいらっしゃると思います。

RPGの戦闘曲とか、ループしてるので無限に聴き入っちゃったりしますよね!
ゲームクリエイターの日常【BGMループ編】
今回は、そんな「BGMのループ」について紹介していきたいと思います。
BGMのループはプログラムで仕込むこともできますが、波形編集ソフトを使って音源側に設定することも可能です。
この「BGMのループ」の仕組みを端的に言うと、
「ループさせたい範囲の始点と終点の”サンプル数”を指定」しているだけなのですが、
正確な値を指定しないと、ループのタイミングがズレてしまったりと微妙な感じになってしまいます。
そこで、正確な値を導き出すために筆者が編み出した手法を紹介していきたいと思います。
楽曲の構成を調べる
まずはフリーの波形編集ソフト「Audacity」を使用して、音源の構成を探っていきます。

自分で作った曲を開いてみました。ファイル名に「136」とあるのはBPMですね。

ざっくり、選択した範囲をループさせる設定にしていきましょう。
リズムトラックを作成
以下の手順でリズムトラックを作成します。
・ツールバーの トラック>新規追加>モノラルトラック でトラックを追加
・追加したトラックを選択し、ツールバーの 生成>リズムトラック を実行
・リズムトラックウィンドウで、「テンポ(BPM)」と「小節あたりの拍数」、「小節数」を入力して「生成」を実行
・できたリズムトラックをコピペし、楽曲の長さ分つなげる

リズムトラックの「小節あたりのビート数」は楽曲に寄りますが、この楽曲は4/4拍子なので「4」と入力し、「小節数」は「1」で入力します。
ループの範囲を調べる
楽曲を聴いてループさせたい範囲を探し、以下の手順で始点・終点を調べます。

・ループの始点を選択(小節の頭でスナップする箇所をクリック)し、右クリックメニューのクリップを分割(Ctrl+I)で印をつける
・同様の手順でループの終点も「クリップを分割(Ctrl+I)」で印をつける
・「クリップを分割(Ctrl+I)」で出来た範囲をダブルクリックして選択状態にする

⇒時間表示にある「選択範囲」がループポイントです。※図はミリ秒表示
⇒「選択範囲」横の「▼」でプルダウンメニューを表示し、「サンプル」を選ぶとサンプル数表示に切り替わります。
これで”サンプル数”の正確な数値が割り出せました!
音源にループポイントを設定する
今度は別の波形編集ソフト「Wavosaur」を使用します。
※ループポイントが設定できる波形編集ソフトは稀なので重宝します。

楽曲を開いたら、
・ツールバーの ツール>ループ>ループポイントを作成 を実行(楽曲の始まりと終わりにループポイントが作られる)
・ツールバーの ツール>ループ>プロパティ を開く

・「一般」の「始点」「終点」に、「Audacity」で調べた”サンプル数”を入力して「OK」
これで音源にループポイントが設定できました!

この状態でゲームに組み込めば、BGMがループで鳴り続けるんですね!
というわけで
というわけで、「BGMのループ」について紹介していきました。
自作ゲームを作る方にも活かせるのではないでしょうか。
折を見て、他のサウンド関連のウルテクも紹介してみたいですね。
それでは次回もお楽しみに!



