BGM拡張のヘルプ

BGM拡張のヘルプ

BGM拡張を使ってできること

  • より細かい条件(マップID、月、日、時間帯)によるサウンドファイル演奏。
  • 上記の条件で、複数のファイルを指定することでそれらを候補としたランダム再生。
  • ループ再生。
  • BASS.dll, BASSMIDI.dll による演奏。
    • mid形式のファイルの演奏で、サウンドフォントの利用。
    • ogg/flac形式のファイルの演奏。
    • BASSプラグインによる他形式ファイルの演奏。(別途設定を要するものは使用できません。)
  • BGM拡張のマスターボリューム設定、演奏ファイルごとのボリューム設定。

サウンドフォント

通常の音声ファイルは録音して作成されているので、そのまま流すことができます。

一方、MIDIファイルは楽譜のようなもので音源(≒楽器の音色)が含まれていません。そのため、MIDIファイルを演奏するときは音源が必要になります。
音源は

  • OSに付属
  • 演奏ソフトやドライバに内蔵
  • 音源ファイル(サウンドフォントはこのタイプ)
  • ケーブルで接続する外部音源

などの形態があり、そのうち何が利用できるかは演奏ソフトによって異なります。
Elona Extenderの場合はMCI(Windows Media Player相当)またはBASS(サウンドフォント)を利用できます。

サウンドフォントには高音質を狙ったものや、過去のゲーム機に似せたもの等が存在します。

設定方法

内蔵musiclist.txtを使用しない

Elona ExtenderのBGM拡張機能は、Elona標準のBGM設定ファイルであるmusiclist.txtの影響を受けます。

例えば、BGM拡張機能でヴェルニースの曲を変更したい場合、
「pop01.midが演奏されようとしたときに、別の曲を演奏する」といった指定を行います。

pop01.midは標準状態におけるヴェルニースの曲なのですが、musiclist.txtを編集したり、mp3パックを導入したりすると
「ヴェルニースでpop01.midが演奏されないため、BGM拡張機能で設定した通りにならない」
という現象が発生します。

内蔵musiclist.txtはそれを防ぐための機能で、user/musicフォルダに置いたmusiclist.txtとは関係なく、固定のmusiclist.txt(中身はElonaの初期状態と同じ)を読み込ませるものです。

この設定がオフの場合、Elona Extenderに内蔵されたmusiclist.txtを読み込みます。
これにより、musiclist.txtを差し替えているかどうかに関係なく、設定画面で「場面」を基準に設定することができます。

この設定がオンの場合、Elona Extender (2017) 相当の動作になります。サウンドフォントを使いたいが、演奏ファイル自体は musiclist.txt の設定をそのまま使いたい場合などに有効です。ただし、こちらの設定の場合は、musiclist.txtの変更にあわせてBGM拡張の設定(BGMEx.kcsv)も変更しなければならない場合があります。また、後からmusiclist.txtを変更した場合もそれに合わせてBGMEx.kcsvを編集する必要があります。

MIDI演奏方法

MIDIファイルの演奏方法を設定します。
MIDI以外のファイルはこの設定にかかわらずBASSで演奏されます。

MCIMCIを使用します。
外部MIDI音源などを使用する場合に選択します。
特にその手のものが無くても音は出ますが、曲の切り替えでもたつくことがあります。
Direct MusicDirect Musicを使用します。
サウンドフォントも外部音源も使用しない場合はこれがおすすめ。
※Elona本体のDirect Musicとは演奏が若干異なります。(ヴェルニース等)
BASSMIDIBASSMIDI.dllを使用して演奏します。
サウンドフォントを使用できます。

※MIDIファイルによってはバンクセレクトを使用して音色を指定しているものがあります。しかし、拡張された音色はDirectMusicには収録されていないので鳴りません。ただし、演奏エンジンによってはバンク指定を無視することで「標準の」音を鳴らすようになっています。

元のファイル

BGM拡張は、Elonaが音楽を演奏しようとしたときに、別のファイルを演奏させるという動作をします。そのため、演奏条件としてどのファイルが演奏されようとしたかを指定します。街の音楽を変更するのであれば、その街で演奏されるファイル名を指定することになります。

Elonaでは、同じ音楽が流れる場所 (例:ダルフィと店と博物館) があります。そのような場所で別々の設定を行うには、コロンに続けてマップIDを指定します。
(例:ダルフィの設定をしたい場合は、マップIDが14なので happymarch.mid:14 と指定する)

マップIDは実際にそのマップにいるときに、音楽コントロールパネルで確認できます。
音楽コントロールパネルはBGM拡張機能がオンの時に、タスクトレイアイコンのメニューから表示できます。

月・日・時間帯

元のファイルの条件を満たしたときに、時刻に応じて演奏ファイルを指定できます。

演奏ファイル

元のファイルと月・日・時間帯を満たしたときに演奏するファイルを指定します。
複数指定することも可能です。この場合はランダム再生となります。

複数の項目が条件を満たしたとき

まずマップID付きの条件を探します。演奏候補が無かった場合は、マップID無しの条件を探します。複数の演奏候補がある場合はその中からランダムで再生します。

同じ曲が複数回候補になったときは、その分だけ選曲率が上がります。

マップID指定に対応したバージョン(200215)から、演奏候補になる条件が変わりました。
これまでは条件を満たしたすべての行が候補になっていましたが、これからはまずマップID付きの条件を探し、演奏候補が無い場合にマップID無しの条件を探します。
(注:ダルフィはMapID:14、博物館はMapID:101、店はMapID:102)

happymarch.mid:14,*,*,夜,file1.mp3 # ダルフィ(夜)
happymarch.mid:101,*,*,*,file2.mp3 # 博物館
happymarch.mid,*,*,*,file3.mp3     # ダルフィ・博物館・店

◆200215以前のルール

  • ダルフィ(夜)ではfile1.mp3またはfile3.mp3が演奏されます。
  • ダルフィ(夜以外)ではfile3.mp3が演奏されます。
  • 博物館ではfile2.mp3またはfile3.mp3が演奏されます。
  • 店ではfile3.mp3が演奏されます。

◆現行ルール

  • ダルフィ(夜)ではfile1.mp3が演奏されます。
    (ダルフィはマップID付きの条件が設定されていて演奏候補があるので、3行目を無視)
  • ダルフィ(夜以外)ではfile3.mp3が演奏されます。
    (ダルフィはマップID付きの条件が設定されていますが、時間帯指定によって演奏候補が無いので、マップID無しの条件を探します…3行目が有効)
  • 博物館ではfile2.mp3が演奏されます。
  • 店ではfile3.mp3が演奏されます。

マップIDは実際にそのマップに行くことで音楽コントロールパネルに表示されます。また、設定画面でもある程度は対応しています。

mcEExBattleについて

グローバルマップで敵の襲撃に遭ったときの音楽を指定できます。「元のファイル」での説明と矛盾していますが、元のファイルに頼らない動作については現在実験の段階にあり、これもその一つとなります(他に3つあるmcEEx***も同様)。なので将来的には「元のファイル」ではなく、ネフィアのタイプ(洞窟とか森とか)、階層の深さなどを条件として指定できるようになるかもしれません。

音楽コントロールパネル

BGM拡張が有効な環境でElonaを実行しているとき、音楽コントロールパネルを表示できます。ここでは演奏候補を確認できますので、ランダム選曲にしたファイルが演奏されない曲がある場合に、それがたまたまのことなのか、設定ミスやエラー(設定したファイルが存在しない等)で候補にすら上がっていないのかを確認することができます。