【Godot】サウンドの区間リピート再生をする方法

この記事では、”イントロ” と “ループ区間” のあるBGMを再生する方法について紹介します。

区間リピート設定について

設定方法

サウンドファイルを取り込み、対象のサウンドファイルを選択します。そして「インポート」タブをクリックします。

するとサウンドのインポート設定が表示されるので「Loop Offset」に区間リピートの開始位置(秒)を設定します。

今回使用するサウンドファイルは以下のものです。

このサウンドデータは以下の構成となっており、ループ開始位置が “3.636秒“となっています。

上記画像は Audacity というフリーソフトでの表示です。こういったツールで位置を確認しても良いですが、正確な位置を取りたい場合は、以下の計算式を使用するのが良いです。

  • ループ開始位置(秒) = 曲全体の長さ(秒) x イントロの小節数 ÷ 曲全体の小節数

曲全体の長さ(秒)は、サウンドファイルをダブルクリックすると右下に秒数が表示されます。

このサウンドファイルであれば、10.91s と表示されているので、おおよそ “10.91秒” のサウンドファイルであることがわかります。

そして小節数ですが、これは作曲ソフトで確認するのが楽です。

今回の曲はループ区間が “2小節” で、曲全体が “6小節” となっています。

よって、

  • 10.91秒 x 2小節 ÷ 6小節 = 3.636666…秒

がループ開始位置の秒数となります。

ということで “Loop Offset” に “3.637” を指定します。

そうすると「再インポート」が黄色の文字となるので、これをクリックすると区間リポートの設定が完了です。

再生して、正しく区間リピートができてることを確認します。

完成プロジェクトファイル

今回の記事で作成したプロジェクトファイルを添付しておきます。

補足:インスペクターからは区間リピートの設定はできない

注意点として、区間リピートは必ず「インポート」の設定から行います

というのもサウンドファイルをダブルクリックすると、インスペクターに以下の表示がされますが……

ここから設定ができそうに思えますが、ここで数値を変更しても実際の挙動には反映されないので注意が必要です。

おまけ: Audacityでの書き出し設定について

今回のおまけ記事として Audacity での書き出し設定についての紹介です。

Audacity は MP3 と OGG の書き出しに対応しているので、特にBGMのようなサイズの大きい音声ファイルはMP3やOGGといった形式で書き出しを行うとデータサイズを大幅に減らすことができます。

書き出しは、メニューの「ファイル > 書き出し」から行えます。

ちなみに今回使用したサウンドデータは、

  • WAV: 2.9MB
  • MP3: 0.17MB
  • OGG: 0.11MB

となっており、MP3やOGGの場合、10分の1以下にサイズを減らせます。

なおMP3はコーデックを使用するために料金が発生していたので「使うべきでない音声フォーマット」だったのですが、2017年に特許権が消滅したので今は問題なく使用できます

個人的には、MP3の場合はモノラル音声にしてもファイルサイズが変わらないので、どちらかといえばOGGがおすすめです。(ただMP3は汎用性があり扱いやすく、エクスプローラーやFinderなどから直接音声を確認できるメリットがあります)

MP3 / OGG の品質設定について

MP3はビットレートという単位で音質を設定できます。MP3の場合は、個人的に 128kbps が通常のゲームとしては標準的な音質だと思っています。

ただ 128kbps は音声が鮮明に聞ける環境だと劣化がわかりやすいため、音質にこだわるゲーム(リズムゲームなど)の場合は 192kbps としたほうが良いかもしれません。

OGG の場合はビットレートの指定はなく「音質」を指定します。

標準的な音質は「5 (128kbps相当)」です。音質にこだわる場合は「7 (192kbps相当)」以上にするのが良さそうです。

モノラル音声への変換

Audacityでステレオ音声をモノラル音声に変換する場合は、メニューから「トラック > ミックス > ステレオからモノラルへ」を選びます。

MP3の場合はモノラルにしてもファイルサイズは変わりませんが、OGGの場合はモノラル音声にすることで 3分の2くらいにサイズを減らすことができます。