BMS Editors

公開 / 更新

BMS Editors' performance comparison
BMSC
BMS Creator 2.0b1
GDAC2
GDA Creator Professional Edition Version 0.24
BMSE
BMx Sequence Editor 1.3.8
iBMSC
iBMS BMS Creator 3.0.5
備考
  • 備考欄にはいくつかの関連項目が列挙されます。
Run-time library
BMSC
不要
GDAC2
Visual Basic 6.0 Service Pack 4+
BMSE
Visual Basic 6.0 Service Pack 6
iBMSC
.NET Framework 2.0+
備考
Minimum OS Requirements
BMSC
Windows 95
GDAC2
Windows 95
BMSE
Windows 95
iBMSC
Windows 2000
備考
  • Windows 95上でBMSEがExternal Viewersを呼び出すには、Internet Explorer 4以上が必要です。「編集中のディレクトリを開く(Open Directory)」も同様。
  • Windows 2000に.NET Framework 2.0を導入するには、Microsoft Windows Installer 3.0以上が必要です。
Language
BMSC
GDAC2
  • Japanese
BMSE
  • English
  • Japanese
  • Korean
iBMSC
  • English
  • Japanese
  • Korean
  • Simplified Chinese
備考
  • BMSCは英語版からlangage.iniを持ってくれば、2.0b1版も英語化できます。
  • GDAC2配布siteにあるdtx_dtxv.zipは英語版Lane script filesを含みます。
  • GDAC2配布siteの掲示板には、Hex Editorによって英語化された非公式改造版の痕跡がありますが、もう入手できないようです。
  • GDAC2以外はUser Interfaceのtranslationが可能です。
妥当でないBMS code
BMSC
部分的に検知して知らせる
GDAC2
対応できるなら適宜解釈する
BMSE
対応できるなら適宜解釈する
iBMSC
部分的に検知してmarkする
備考
  • BMSCは図表読み込み時に36進数番号などを見つけた場合、それを著者に知らせます。検知・対応できる範囲次第では有用に見えます。
  • iBMSCは主に「同一の縦座標に重なっているobjects」を検知し、それらをError markによって目立たせます。これは図表のdebugのために役立ちます。
  • iBMSCは拡張子が厳密に“*.bms, *.bme, *.bml, *.pms, *.txt”のいずれかである図表fileしか開きません。図表拡張子がすべて小文字でなければなりません。
動作の軽快さ
BMSC
良好
GDAC2
鈍重
BMSE
良好
iBMSC
起動・保存が低速
備考
  • 2000–XP時代の私のGDAC2/iBMSCは、操作に対する反応が明白に遅れました。
  • 私の現在の環境において、その遅れはもはや問題ではなくなりました。
  • iBMSCを起動すると、iBMSCと他のapplicationsとの間で行き来するfocusが、私を困惑させます。私以外の環境でこの現象が発生するかは知りません。
Preview可能な音声形式
BMSC
  • WAV
  • (MP3)
  • (MID)
GDAC2
  • WAV
  • XA
BMSE
  • WAV
  • MP3
  • (MID)
  • (OGG)
iBMSC
  • WAV
  • OGG
  • MP3
  • (MID)
備考
  • BMSC/BMSE/iBMSCの場合、“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI Extensions”に拡張子が記載されている形式は、previewできるかもしれません。たとえばMIDIの一種*.rmiなど。
  • BMSE/iBMSCは、対象形式のDirectShow Filtersが導入されれば、様々な音声を鳴らせるようになる可能性があります。たとえばOgg DirectShow Filtersによって、BMSEはOGGを鳴らせるかもしれません。
Preview可能な画像形式
BMSC
  • BMP
  • JPEG
GDAC2
  • BMP
  • JPEG
  • GIF
BMSE
iBMSC
不可
備考
  • BMSCはRLE圧縮BMPを表示できません。
  • Alpha Channel transparencyを伴う16-bit/32-bit BMP、JPEG圧縮BMP、PNG圧縮BMPを表示しようとすると、GDAC2は強制終了します。
  • BMSEは前述の特殊なBMPを表示できません。
  • Visual Basic 6がPNGをsupportしないので、BMSE/GDAC2もPNGを描きません。
Notesの移動
BMSC
移動先をGridに合わせる
GDAC2
移動先をGridに合わせない
BMSE
Shift押下中、垂直移動を禁止できる
iBMSC
常に垂直移動を禁止できる
備考
  • BMSCはdragged targets’ rhythmをquantizeします。これは、murmurous stream”などのdelicate rhythmの編集を困難にします。以下は忘れ去られるべきTips:

    1. 小節の先頭にdummy noteをsetしてください。
    2. dummy note以外のnotesには絶対に直接触らないでください。
    3. Notesを移動する場合は常に、dummyと一緒に範囲選択してください。
    4. 著者が直接dragしてよいnoteは小節線上のdummyのみです。
  • GDAC2はdragged targets’ rhythmをquantizeしません。これは編集上の安全性に関するBMSCの問題を解決します。これは多くの場合に安全ですが、ときには不便です。
  • BMSE/iBMSCは「Gridに合わせる・合わせない」を選択できます。BMSEのそれはsimulated BMSC/GDAC2です。これは完璧です。
  • iBMSCのそれは“quantize or Grid-FREE”です。「Gridに合わせる」が無効のとき、垂直方向へは「現在位置 ± 現在のGrid間隔」の位置に移動してほしいのですが、そうなりません。以前はそうなった気がしますが、私の記憶は常に曖昧です。 (“完全に自由なGrid”とGDAC2方式の相性が悪いのかもしれません。)
  • iBMSCの縦移動禁止設定は、二重の意味で推奨されます。第一に、編集上の誤操作による、著者が意図しない「歌の改竄」をほぼ完全に予防できます。第二に、「Gridに合わせる」が無効の場合における、操作感の非互換性を隠蔽できます。
LNの編集 (#LNOBJ含)
BMSC
#LNOBJ限定
GDAC2
Lane script次第
BMSE
dttvb版は長さを視覚化する
iBMSC
長さを視覚化する
備考
  • BMSC/GDAC2はnotesの長さを視覚化できません。
  • iBMSCの入力modeがNT (NoteTool)のとき、可視noteをShift + dragで伸縮すると、#LNTYPE 1型のLNになります。たとえそれが#LNOBJであってもです。
  • 私の記憶が確かなら、poor PCの上で、小節長さ700に匹敵する長いnotesの描画が壊れました。それは現在の私の環境で再現されません。
Selected notesの属性変更
BMSC
不可
GDAC2
「一括編集」から、表(Front)・裏(Back)・Openを変更可能
BMSE
不可
iBMSC
可視・不可視・LNを自在に変更可能
備考
  • BMSCで不可視notesをBGM列などに移動し、再び選択してKEY列に戻すと、それは可視notesに変化します。
  • GDAC2の裏オブジェ(Back Object)は、lane script次第で不可視や地雷のaliasになります(内容を自由に定義できます)。可視notesと地雷を相互に変換するような操作も可能です。
  • BMSEでLNをBGM列に移動すると強制終了します。ご注意ください。
  • iBMSCはBGM列にあるnotesの属性も変更できてしまいます。ご注意ください。
Selected notesの整頓
BMSC
左右反転
GDAC2
「一括編集」から任意列を指定
BMSE
不可
iBMSC
  • 1–8 keyで各S1234567へ
  • 0 keyでBGMへ
  • Menuから左右反転
備考
  • 主題からは外れますが、BMSCで「保存の際に編集情報を記録する」を無効にすると、保存時にBGM全列が左詰めになります。図表のfile sizeが数KiB減ります。試行前に図表fileをbackupしておくことを強く推奨します。
  • BMSEは外部helpに指定されたbMoLをF1 keyで呼ぶことができます。その結果、

    1. BMSEがSelected notesをBGM列へ移動させる特徴を得ます。
    2. BMSEがSelected notesを定義番号毎に整列させる特徴を得ます。

    定義番号毎整列はきわめて有用です。類似原理の応用であるBGM lane sorterや、その発展形としてのBMS to BGM Converterなども知られています。

  • GDAC2/iBMSCの「任意列への移動」は、bMoLとは用途が異なります。
Notes count
BMSC
不可
GDAC2
表示 -> ノート数計算
BMSE
不可
iBMSC
編集 -> 統計
備考
  • Editorは図表の文脈を考慮しません。iBMSCは、図表がPMSであれ何であれ、#xxx16を1P側として計上し、#xxx2[2-5]を2P側として計上します。
  • 別の文脈としては、LN終端の数え方や、Tick Objectsなどがあります。
  • Main pane上にあるnotesの総数が10000を超えると、BMSCは死にます。
最大分解能
BMSC
長さを問わず、小節の192等分
GDAC2
長さを問わず、小節の192等分
BMSE
192分音符 (⁶⁴⁄₄拍子小節なら3072等分、¹⁄₆₄拍子小節なら3等分)
iBMSC
1–10000分音符 (可変)
備考
  • BMSCの小節192等分rhythmは、“Grid: FREE”。
  • GDAC2の小節192等分rhythmは、“Grid: 無制限”。
  • BMSEの192分音符は、“Grid: FREE”。
  • iBMSCはrhythmに関して最も自由なeditorですが、制限に注意してください
Rhythmに関する制限
BMSC

192分で表せないrhythmを丸める,

192分の過剰連続を保存できない

GDAC2
192分で表せないrhythmを丸める
BMSE

64分音符で割り切れない長さを丸める,

小節長さ16以上は16に丸める

iBMSC
最大分解能で表せないrhythmを丸める
備考
  • BMSC/GDAC2で、たとえば小節を5等分するrhythmは、192等分表現における近似値に丸められます。
  • BMSEは「⁴⁄₄拍子小節の¹⁄₆₄」を長さの基準とします。小節長さは「0.015625の倍数」に丸められます。たとえば小節長さ0.01は0.015625に改竄されます。
  • iBMSCはrhythmに関して最も正確なeditorですが、制限に注意してください
Scrolling制御
BMSC
  • 標準BPM変更
GDAC2
Lane script次第
BMSE
  • 標準BPM変更
  • 拡張BPM変更 (±65535)
  • STOP sequence (1–65535)
iBMSC
  • 標準BPM変更
  • 拡張BPM変更 (0.0001–65535.9999)
  • STOP sequence (0.0001–65535.9999)
備考
  • GDAC2のLane scriptで#TMPCを省いても、標準BPM変更列は表示され、BPMを変更できるように見えます。しかし、そのBPM変更指定は保存されません。
  • BMSEのexBPM/STOPは、図表あたり各1295回まで指定できます。指定回数が各255回以内なら、自動的に16進数定義として保存されます。
  • iBMSCのexBPM/STOPは、図表あたり各1295種類までの値を無限に指定できます。値を255種類以内に制限する、O2mania用の制限を課す選択肢もあります。
BGM列数
BMSC
28
GDAC2
Lane script次第
BMSE
32
iBMSC
1–999 (可変)
備考
  • iBMSCのBGM列は初期値15本です。
  • BM­IIDX­View2015用Lane scriptのBGM列は17本です。昔は5本だった気がします。
  • iBMSCのBGM999列設定が前提のBGM lane sorter 999版は必見。
BGM列数が足りない図表
BMSC
超過分が消滅
GDAC2
強制終了
BMSE
超過分が消滅
iBMSC
超過分を保持
備考
  • BMSC/BMSEは図表を開いた時点で内容を改竄する可能性があります。
  • 新しいEditorによって作成された図表が、古いEditorで開かれるとき、この現象が発生しえます。ある種の著者は「BGMの右端」をことのほか好むからです。
main pane数
BMSC
1
GDAC2
1 * n (Multiple Document Interface)
BMSE
1
iBMSC
1–3 (可変)
備考
  • iBMSCの分割paneはDiff用UIに見えましたが、実際は全く違いました。おそらくは、広い画面で役立つことでしょう。
  • 私の画面は狭うございます。私はMiddle-click Scrollbarを好みます。
非音声列を隠す
BMSC
不可
GDAC2
Lane script次第
BMSE
不可
iBMSC
BPM, STOP, BGA
備考
  • iBMSCはmain pane右上のiconから表示状態を変更することができます。
  • この特徴は、非音声列を、誤操作による改竄から保護します。
Theme
BMSC
Edit -> Color settings
GDAC2
Lane script
BMSE
theme\xxx.ini
iBMSC
Options -> Visual options
備考
  • BMSC/iBMSCは外観変更用UIを持ちます。私はBMSEmdkが好きです。
  • GDAC2は外観どころか対応規格自体を変更できます。
  • bmscreator.iniが用いる色指定値は、たとえば白(255,255,255)なら、255 + (255*256) + (255*256*256) = 16777215になります。
backup
BMSC
不可
GDAC2
不可
BMSE
異常終了時にbmse_temp.bms生成
iBMSC
作業履歴を専用形式で定期保存可能
備考
  • BMSEのbackupが生成されない状況もいくつか知られています。
  • iBMSC\AutoSave_xxx.IBMSCは拍子変更を記録しません。
  • backupを過信せず、手動で別名保存しておくことを推奨します。
拍子編集の挙動
BMSC
小節の長さに合わせて位置を変化させる
GDAC2
小節の長さに合わせて位置を変化させる
BMSE
以降の小節を保つ
iBMSC
後述の4種類から選択可能
備考
  1. 絶対的な位置を保つ……曲を変えずに小節線だけ移動します。
  2. 以降の小節を保つ……BMSE型です。⁴⁄₄拍子を³⁄₄拍子に変えたなら、「元の4拍目」の上に「次小節の1拍目」が重なります。
  3. 以降の小節を保ち、余りは切り捨てる……BMSE型です。ただし前述の例なら「元の4拍目」が完全に消えます (真上にnoteが重ならなくても)。
  4. 小節の長さに合わせて位置を変化させる……BMSC型です。小節を等分するrhythmは、小節長さを変えた後も、小節を等分するrhythmであり続けます。
小節の追加・削除
BMSC
GDAC2
BMSE
iBMSC
不可
備考
  • 「test用のdummy小節」を使えないiBMSCは、少々使い辛うございます。undo/redoできない拍子変更は、砂場を代替できないからです。
  • 私の記憶が確かなら、古いiBMSCはContext menuから小節の追加・削除「だけ」を実行できました。
配置伸縮(ソフラン)
BMSC
Arrange -> Change object span
GDAC2
不可
BMSE
不可
iBMSC
Time Selection Tool
備考
  • BMSCは「アレンジ -> オブジェ間隔の変更」から曲全体を伸縮できます。
  • iBMSCは「時間編集モード」から、選択範囲を伸縮できます。
  • 両者とも「選択範囲の図表の左右反転」が可能です。
Headers (Basic)
BMSC
  • #PLAYER
  • #GENRE
  • #TITLE
  • #ARTIST
  • #PLAYLEVEL
  • #BPM
  • #MIDIFILE
GDAC2
Lane script次第
BMSE
  • #PLAYER
  • #GENRE
  • #TITLE
  • #ARTIST
  • #PLAYLEVEL
  • #BPM
iBMSC
  • #PLAYER
  • #GENRE
  • #TITLE
  • #ARTIST
  • #PLAYLEVEL
  • #BPM
  • #RANK
  • #LNTYPE 1
備考
  • #PLAYLEVELに関して、BMSCは0–7、BMSEは0–8または任意の数値、iBMSCは文字列値を解釈・指定できます。
  • BMSCは拡張#BPMxx定義を初期値#BPMとみなしてしまいます。BMSCに図表を誤解釈させないためのalias #EXBPMxxが存在しますが、使われていません。
  • iBMSCの#RANK 0–4は必須headerです。LR2は値4 (Very Easy)を知りません。
  • iBMSCは暗黙の必須headerとして#LNTYPE 1を付加します。O2maniaがLNを解釈するためにこれを要求するからです。これによる不都合があるかもしれませんが、知られていません。LR2で#xxx5n#LNOBJが競合したとき、#LNTYPEの有無で図表の解釈が変わる場合がありますが、私は具体的な作例を知りません。
Headers (Expand)
BMSC
  • #RANK
  • #TOTAL
  • #VOLWAV
  • #STAGEFILE
  • %EMAIL
  • %URL
GDAC2
Lane script次第
BMSE
  • #RANK
  • #TOTAL
  • #VOLWAV
  • #STAGEFILE
  • #BMP00
iBMSC
  • #SUBTITLE
  • #SUBARTIST
  • #STAGEFILE
  • #BANNER
  • #BACKBMP
  • #DIFFICULTY
  • #EXRANK
  • #TOTAL
  • #COMMENT
  • #LNOBJ
備考
  • BMSCは#RANKを省略する選択肢— Default —を持ちます。これは互換性を低下させます。LR2では「表示上はVery Hard, 実際はNormal」になります。
  • BMSE/iBMSCは#RANKが無い図表に対して既定値3を適用します。
  • #STAGEFILEは省略可能なはずですが、BMSC/BMSEで保存すると「空の値を持つ#STAGEFILE」が付加されます。#STAGEFILEを必須headerとみなす実装が存在するのかもしれません。私はそれについてまだ調べていません。
  • BMSE/iBMSCは、“#”で開始されない行をcommentとして無視します。iBMSCはindentを許容しますが、いずれにせよ%EMAILや%URLは捨てられます。
  • iBMSCは#LNOBJを指定でき、視覚化できます。未知の命令#DIFFICULTは撲滅されるでしょう。#EXRANKは正しくは#DEFEXRANKです。保存後の図表をText Editorで開いて“DEF”を足す必要があります。
Definition Lists
BMSC
  • #WAV01–FF
  • #BMP00–FF
GDAC2
  • #WAV01–
  • #BMP01–
BMSE
  • #WAV01–
  • #BMP01–
  • #BGA01–
iBMSC
#WAV01–ZZ
備考
  • BMSCは16進数番号を使用できます。#WAVは最大で255項目、#BMPは最大で256項目を持つことができます。
  • GDAC2はLane scriptから定義制限を選択できます。FF型は最大で255項目、FZ型は最大で575項目、ZZ型は最大で1295項目を持つことができます。
  • BMSEはOptionから2種類の定義制限を選択できます。FF, ZZです。
  • iBMSCは現在#BMPを定義できません。それらは拡張命令枠に格納されます。
拡張命令ほか
BMSC

Comments,

未知の命令

GDAC2

Comments,

未知の命令

BMSE

#RANDOM分岐,

未知の命令の一部

(0–65535 bytes)

iBMSC

分岐,

未知の命令

備考
  • BMSE/iBMSCは、“#”で開始されない行を無視します。
  • BMSEは#RANDOM分岐を構文解析し、main paneから隔離します。これは非常に優れた特徴です。ただし隔離された範囲が変換Wizardなどの影響を受けない点に注意してください。また、拡張命令枠から溢れた行は単に捨てられます。
  • BMSEは一部のchannel文を無視します。BMSCのFREE ZONEや、nanasigrooveの地雷などがこの影響を受けます。dummyの#RANDOMによってこれらを囲むTipsがありますが、この方法でも#WAV00などは保護できません。
表示高さ・表示幅
BMSC

0.50–3.78?

Sliders

GDAC2

高さのみx1–10

Listbox

BMSE

0.01–16.00

Listbox

iBMSC

0.25–99.00

Sliders & Numbox

備考
  • Formの場所は、BMSCは右上の環境tabに、GDAC2は子window内の左上に、BMSEは上部ToolBarに、iBMSCは右部にあります。
Grid / Guide
BMSC
既定値から選択
GDAC2

既定値から選択,

補助線は固定

BMSE
既定値から選択
iBMSC
自然数すべて
備考
  • BMSCのGridの既定値に⅟₄₈や¹⁄₆₄はありません。
  • GDAC2のGridの既定値に3分や6分はありません。「カスタム(Custom)」には1–192の自然数を指定できますが、192の約数だけが安全にrhythmを記述できます。
  • iBMSC可変Gridの上限は、別途設定した最大分解能までです。
Notes検索機能
BMSC
定義番号の範囲指定やBPM検索ができない
GDAC2
裏オブジェ(Back Object)を検索可
BMSE
「反転」が便利
iBMSC
属性で絞り込み検索可能
備考
  • 裏オブジェ(Back Object)はLane script次第で不可視や地雷のaliasになります。
  • BMSEの検索窓が非activeなとき、“Find” dialog's “Close” buttonがclickされるとBMSEが強制終了します。
External Viewers
BMSC
複数可
GDAC2
Lane script毎にViewerひとつ
BMSE
複数可
iBMSC
複数可
備考
  • BMSC/BMSEは複数のviewersと連携することができます。
  • すくなくとも私の64-bit Windows 10/8.1において、BMSCのExApps.cfgには、「BMCreate.exeの同位のExecutable file」または「Executable fileのfull path」しか指定できません。Windows XPでは相対pathも指定できたのですが。
  • GDAC2はMDIなので、「Viewer-Aを呼べるScript-Aによる子窓A」と「Viewer-Bを呼べるScript-Bによる子窓B」を切り替えることはできます。
  • iBMSCで複数のviewersを使い分けたい著者は、viewersを選ぶ度にPlayer Options Dialogを開く必要があります。またiBMSCは、図表のfilename引数に対して引用符を要求します。例: -P -N0 "<filename>"
External Tools
BMSC

おそらく可

(ただし私は対応機種を知らない)

GDAC2
おそらく不可
BMSE
iBMSC
部分的に可
備考
  • External toolsとは、BmWh, woslicerIII, BMHelper, Mid2Bmsなどを指します。
  • BMSC ClipBoard Object Data Formatに対応する応用はありうるでしょう。
  • iBMSCはBMSEのClipBoard情報を読み込めますが、複数行BGM列の読み込みに難があります。BMHelper + woslicerIII + iBMSCなどの連携はうまくいかないかもしれません。
  • BMSEの外部Helpは、実質的にもうひとつの外部Tools枠です。
複数filesを一括定義
BMSC
Drag-and-Drop
GDAC2
一括読み込みdialog
BMSE
Drag-and-Drop
iBMSC
Drag-and-Drop
備考

GDAC2はD&Dができないかわりに、Explorer操作による一括定義が可能です。

  1. 定義listのcontext menuから「一括読み込み」を選んでください。
  2. 対象folderを選んでください。
  3. 対象音声・画像filesを選んでください。Shift/Ctrlなどで複数選択できます。
  4. 選択されたfilesを一括挿入するための開始番号を指定してください。
  5. sorted by filename / old list-items are overwritten
Direct Input
BMSC
GDAC2
BMSE
iBMSC
備考
  • あるほうが便利ですが、ないほうが安全です。
  • BMSCのSource code edit (ソースのダイレクト編集)は、今の時代ならcode入力がmain paneに即時反映される形になりそうです。IntellisenseやEmmet級の入力支援まで行けるなら面白そうですが、そんな著者はText editorsを使うでしょう。
定義を一括整理
BMSC

未使用定義消去,

定義の整列

GDAC2

未使用定義消去,

定義の整列

BMSE

未使用定義消去,

定義の整列,

未使用files消去,

filenames匿名化

iBMSC
不可
備考
  • BMSEの変換Wizardが図抜けています。弱点も運用で(カバー)える範囲。
  • BMSEで図表を別名として保存し、それを旧名の図表と比較してください。BMSEがrhythmを改竄しなかった場合、その図表はBMSEによって編集されることができ、変換Wizardによって仕上げられることができます。
  • iBMSCは定義listを複数行選択して一括移動や一括削除を行うことができます。ただし、それはまだBMS List Sorterのような安定性を持ちません。
Easter Egg
BMSC
私は知りません
GDAC2
私は知りません
BMSE
本気すぎてふく
iBMSC
私は知りません
備考

素晴らしいreferenceをHTML化してくださったumt_ki氏に感謝します。