(2016/6/21追記あり)
BMS製作について Advent Calendar 2015 の 8日目の記事になります。飛び入り参加です。
昨日は佐久間まゆさんで、「Future Teknology (insane)」でした。
今日は、譜面を作る際の配置ミスについて話したいと思います。
譜面を作っていると、誤ってオブジェをずらしてしまったり、うっかりオブジェを消してしまったりすることがあります。曲が意図せず変わってしまうのは、あまり好ましいことではありません。
そこで、まず考えられる対策として、BMSEであればShiftを押しっぱなしにしてオブジェを移動する、iBMSCであれば「オブジェを縦移動させない」にチェックを入れておく、というものもあります。これを活用することで、配置ミスの多くを防ぐことが出来ます。
しかし、人間は完璧ではありません。ですから、最後に配置ミスが無いかどうか、チェックしたいと思うかもしれません。
さて、配置ミスをチェックする方法の一つとして、bmx2wavを使った方法があります。bmx2wavを使ってwavファイルに変換し、音声編集ソフトで差分を取る方法です。
確かにこの方法は万能であり、多くの場合で間違いがありません。しかし、この方法では少々時間が掛かってしまいます。というのも、キー音を全て読み込んで合成しなければならないためです。
というわけで、という訳では別にありませんが、Windowsユーザー向けにBMSの配置ミスを検出するソフトをうっかり作ってしまいましたので、公開しようと思います。(そこ車輪の再発明とか言わない)
使い方
BMSファイルをドラッグ&ドロップしてください。複数のBMSファイルを同時に選択することができます。(もしドラッグ&ドロップが出来ない場合は、Add BMSボタンをクリックしても構いません。)その後、Diff Checkボタンを押すとチェックが開始されます。配置ミスが多い場合は時間がかかりますので少し待機してください。
下図のように配置抜けがあるファイルを例に取ってみます。
このファイルの場合、次のように警告が出ます。
また、下図のように配置ズレがあるファイルの場合は、
配置ズレ1つにつき、このように2つの警告が出るようになっています。「一方が他方と同じタイミングで音が鳴っていない」ということを両者が検出するためです。
不可視ノーツ、BGA、LN (TYPE 1)、#LNOBJ、ソフラン、ストップシーケンス、「原音に対して鳴りすぎている音の検出」に対応しています。
一方、「無音オブジェのdiff」「BGMに配置された無音ノーツや未定義画像の検出」「参照しているwavファイルは同じだが定義番号の異なるオブジェの検出」「許容誤差の指定」「#RANDOM」には対応していません。ゆっくり更新していきたいと思います。
2016/6/21追記
類似ツールのbms diff toolへのリンクも貼っておきます。こちらの方がダウンロードなしで使えるため、気軽に試せて便利だと思います。細かい違いもありますので困ったときは両方使ってみるといいかもしれません。 http://stairway.sakura.ne.jp/smalltools/minibmsplay/diff.htm