この頁でやること

  1. Visual Basic 6.0 SP6 ランタイムのバージョン確認と導入
  2. BMSE を展開して適当な場所に置く
  3. 必要ならツールバーを修正 (bmse.iniResolution キーを True に)
  4. 必要ならヘルプ導入 (bmse.iniHelp キーに相対パスを指定)
  5. 必要なら DirectShow フィルタ導入 (BMSE 上で *.ogg を鳴らせるように)

Visual Basic 6.0 SP6 ランタイム のバージョン確認と導入

  1. 【スタート → コントロールパネル → プログラムの追加と削除】を左クリックします。
  2. Visual Basic 6.0 Service Pack 6 以前のバージョンの Visual Basic ランタイムパッケージが既に導入されていたら、それらをすべてアンインストールしてください
  3. VB6 SP6 ランタイムの最新バージョンのみをインストールしてください [https://hitkey.nekokan.dyndns.info/bmse_help/a.htm] (外部リンク)。もし最新版導入済みであれば「BMSE のインストール」に進みます。
  • バージョンや内容が異なる Visual Basic ランタイムを複数導入すると、競合して不具合が発生する場合があります (DLL Hell [https://ja.wikipedia.org/wiki/DLL地獄] (外部リンク))。必要なものだけを導入してください。

BMSE のインストール

BMSE 自体にはインストーラはありません。レジストリも使いません。

http://ucn.tokonats.net/ (外部リンク) から bmse_138.zip をダウンロードして、任意の場所に展開すればインストール完了です。

bmse フォルダ内の BMSE.exe を左ダブルクリックすると、BMSE が起動します。

【Options → Select Language → 】 から、使用する言語を選択できます。

初期状態では英語・日本語・韓国語を選択できます。

何もかも初めてという方におすすめする設定:
  • 「Windows 10 April 2018 Update (バージョン 1803)」またはそれ以降のバージョンの Windows 環境で、使用する BMSE の言語を 【English】 以外に変更すると、文字化けする場合があります。

    その場合、デスクトップ左下隅の Windows マークを左クリックし、スタートメニューの 【設定 (歯車マーク)】 から、以下を確認してください。

    【時刻と言語】 → 【地域と言語】 → 【管理用の言語の設定】 → 【システム ロケールの変更】 [https://twitter.com/Nekokan_Server/status/996733130571563008] (外部リンク)

    【ワールドワイド言語サポートで Unicode UTF-8 を使用】 がチェックされていた場合は、この項目のチェックを外してから 【OK】 を左クリックしてください。 Windows 再起動後に文字化けが解消されるはずです。

    この方法でも文字化けが解消されない場合は、 BMSE を再度ダウンロードし、language フォルダの中身を新品のもので上書きしてみてください。

    そこまでやっても文字化けが直らない場合、またはシステムロケールを UTF-8 のまま運用したい場合は、 BMSE の言語を 【English】 のまま変更せずに使用してください。

    システムロケールが UTF-8 のとき、英数字以外の文字は BMSE を経由するとほぼ確実に文字化けします。 BMS ファイルから参照される音声や映像などのファイル名には非英数字を使わず、タイトルなどに非英数字文字が必要な譜面は UTF-8 対応テキストエディタで編集するのが無難です。

初期ファイル構成

[フォルダ]bmse
\lang
\english.ini
言語設定ファイル (英語)
\japanese.ini
言語設定ファイル (日本語)
\korean.ini
言語設定ファイル (韓国語)
\theme
\default.ini
外観設定ファイル (bms)
\default_oct.ini
外観設定ファイル (otc/fp)
\default_pms.ini
外観設定ファイル (pms)
\BMSE.exe
実行ファイル
\readme.txt
BMSE 説明書

[註 1] bmse.inibmse_viewer.ini は、存在しない場合は BMSE 起動時に自動生成されます。たとえば、BMSE インストール直後の初回起動時などに BMSE.exe の同位に生成されます。

  • BMSE 本体の設定を初期化する場合は、bmse.ini を削除してください。
  • 外部ビューワの設定を初期化する場合は、bmse_viewer.ini を削除してください。

[註 2] error.txt は、BMSE が異常終了した場合に BMSE.exe の同位に生成されます。既に存在する場合は最新のエラー内容が追記されます。一部のエラーは記録されません。詳細は以下の項目を参照してください。

必要なら VScroll ドロップダウンリストの表示位置を修正

おもに Microsoft Office 関連製品が導入されている環境で、Microsoft Update などによって Visual Basic 6 ランタイムが最新の状態に更新されている場合は、BMSE 初回起動時から ツールバーの行頭に VScroll ドロップダウンリストが表示されているかもしれません。

これはランタイムの脆弱性が修正済みである証拠なので、ご心配には及びません。この状態ではツールバーの行頭側アイコンをクリックできず不便ですから、以下の手順で VScroll の表示位置を修正してください。

  1. BMSE が起動中なら閉じてください。
  2. bmse フォルダ内に生成されているであろう bmse.ini を、メモ帳などのテキストエディタで開いてください。開き方はヘルプのインストールを参照してください。
  3. [Toolbar] セクション内に “Gird”、Size”、および “Resolution” キーを探し、これら 3 つの値を True に変更してください。

    “Gird” キーは既定で誤字が生成されます。バグが気になる場合は “Grid” に変更してください。

  4. bmse.ini を上書き保存して、メモ帳を閉じてください。

ツールバー崩壊現象に関する詳細

この現象は [CVE-2012-0158] に対する [MS12-027 [https://docs.microsoft.com/ja-jp/security-updates/securitybulletins/2012/ms12-027#mscomctlocx-の-rce-の脆弱性---cve-2012-0158] (外部リンク)] (2012年4月11日) のセキュリティフィックスに起因するもので、MSCOMCTL.OCX のバージョンが 6.1.98.33 以降なら必ず発生します。

bmse.ini[Toolbar] セクション内 “Grid”、Size”、および “Resolution” キーの値が False のとき、本来なら非表示にされるべきこれらのドロップダウンリストはツールバーの行頭に重なって表示されます。これらのキーの値をすべて True に変更すれば、問題は解決されます。

BMSE を使用していながら、この現象を手元で再現できない環境は、脆弱性を放置している可能性があります。この脆弱性は「過去10年間最も悪用例の多い『Microsoft Office』のバグ [https://news.mynavi.jp/article/20160707-a480/] (外部リンク)」と呼ばれることもあり、Microsoft Office 製品などの当該バージョン使用者には Windows Update から更新プログラムが確実に配信されるはずです。しかし Microsoft Office 製品などを導入しておらず Visual Basic ランタイムを単独で導入した環境では、更新プログラムが必要であることが検知されません (Windows Update や MBSA などに看過されます)。古いランタイムを導入しているユーザーは手動で自衛しなければなりません [https://hitkey.nekokan.dyndns.info/bmse_help/a.htm] (外部リンク)


BMSE のアンインストール

bmse フォルダを中身ごと削除すればアンインストール完了です。

サードパーティ製の Visual Basic ランタイムパッケージをインストールしていた場合、ものによっては【プログラムの追加と削除】からランタイムパッケージを削除することもできます。

ただし、uBMplay [http://ucn.tokonats.net/software/ubmplay/] (外部リンク)nazobmplay [http://manbow.nothing.sh/nazobmplay/download.html] (外部リンク)WAview [https://web.archive.org/web/*/http://nickle.ath.cx/~softlab/in_bm/] (外部リンク) は BMSE と同様に Visual Basic ランタイムを必要とするので、通常はランタイムパッケージまでわざわざアンインストールする必要はないでしょう。


ヘルプのインストール

ヘルプが必要な場合は任意で導入できます。導入しなくても構いません。

BMSE が起動中であればいったん閉じたうえで、ヘルプとして BMSE から呼び出したいファイルを、BMSE.exe があるフォルダに移動またはコピーします。

BMSE.exe がある場所 (BMSE のアイコンが見える場所) に、ヘルプを並べて置いてください。

次に bmse.ini を、メモ帳などのテキストエディタで開きます。

11 行目あたりの Help="" という箇所の引用符の間に、移動させたファイルの名前を記述します。

たとえば Help="bmse_help.chm" は軽量版ヘルプを指定しています。(https://hitkey.nekokan.dyndns.info/bmse_help.zip)

Help キーを書き換えたら bmse.ini を保存して、BMSE を起動します。

メニューの【ヘルプ】 か [F1] キーから、指定したファイルを開くことができます。

呼んでも何も起こらない場合はファイル名の記述の正誤を確認してください。

初期状態では Help キーが空なので、ヘルプ呼び出し機能は無効になっています。Help キーを設定すると機能が有効になります。


bmse.ini の Help キー補足

BMSE.exe からのパス (経路) を指定できます。

例 1) BMSE.exe の下位に置いた BMSC オフラインマニュアル [http://www.doits.jp/mediamaximum/contents/bm98/index.html] (外部リンク)を呼ぶ例:

たとえば BMSE.exe と同じ場所に help フォルダを作り、その中に BMSC ヘルプのフォルダを置きます。

前述のディレクトリ構成なら、Help キーは以下のように指定できます。

Help="help\bmscreator_help_8\help.html"

経由するフォルダの名前を『 \ 』で区切って記述してください。

階層の分離符バックスラッシュ『 \ (U+005C REVERSE SOLIDUS) 』は、日本語版 Windows 上などで『 円記号 』に置き換えて表示される場合があります。しかしこれは表示上そのように見えているだけであり、文字としての円記号 “¥” (U+00A5) [https://www.fileformat.info/info/unicode/char/00a5/index.htm] (外部リンク)」や「全角の円記号 “” (U+FFE5) [https://www.fileformat.info/info/unicode/char/ffe5/index.htm] (外部リンク)」とは明白に異なる文字です。自分の環境で表示される区切り文字を使用してください。

日本語 Windows 上で、106/109 日本語キーボードを用いている場合:

右手側 Shift キーの左隣にあるキーを、半角英数モードで入力すれば、その文字がパス区切り文字です。

英語 Windows 上で、106/109 日本語キーボードを用いている場合:

右手側 Shift キーの左上にあるキーを入力すれば、その文字がおそらくはパス区切り文字です。

  • 分離符をスラッシュ『 / 』で代用すると正常に動作しない場合があります。

    スラッシュ区切りが原因で正常に動作しない可能性がある例:
    Help="help/bmscreator_help_8/help.html"

    BMSC ヘルプを正常に呼べなかったこの例は、たしか Windows XP SP3 + Firefox 3 での結果だったような記憶があります。

    2017年に 64-bit Windows 10 + Firefox 50 で試したところ、スラッシュ区切りでも問題なく Firefox が起動しました。Microsoft EdgeHTML 14 を既定のブラウザにした場合も同様に、スラッシュ区切りが通用しました。

例 2) BMSE.exe の上位を辿ってナナシグルーヴマニュアル [http://d11x.sakura.ne.jp/asdf/?p=13] (外部リンク)を呼ぶ例:

例として以下のディレクトリ構成を仮定します。BMSE.exe からみたとき、ナナシグルーヴマニュアルまでの道順 (パス) が、「1 階層上へ」 → 「1 階層上へ」 → 「player フォルダ」 → 「nanasi フォルダ」 → 「nanasi_manual.chm」 となっている。

このディレクトリ構成のとき、Help キーは以下の通りです。

Help="..\..\player\nanasi\nanasi_manual.chm"

.. 』 (ピリオド 2 個) は「1 階層上位のディレクトリ」を意味します。

ファイル参照ダイアログでの「1 つ上のフォルダへ」クリックと同義です。

  • BMSE の readme.txt には、bmse.exe と同位、もしくは下位のディレクトリに置かないと正常に実行できません” と明記されています。上位ディレクトリを経由するヘルプのパス指定は正常に動作しない可能性があることを、あらかじめご了承ください。(関連項目)
  • . 』 (ピリオド 1 個) は「同位のディレクトリ」を意味します。

    Help="bmse_help.chm"
    Help=".\bmse_help.chm"

    どちらも「BMSE.exe と同じフォルダにある bmse_help.chm」を参照します。.. 』 (ピリオド 2 個) と間違わないようご注意ください。

  • "D:\bms\player\nanasi\nanasi_manual.chm"

    のような、コンピュータの最上位階層からの完全なパス名は Help キーには指定できません。必ず BMSE.exe からのパス を指定してください。

パスについて補足:

Help キーに指定するパスが適切であれば、どんなファイルでも呼び出せます。ショートカットを経由すればコマンドライン引数も渡せます。

BMSE で F1 キーを押すと、uBMplay が特定の譜面を再生する例:
「リンク先」として「D:\ubmplay\uBMplay.exe -sp D:\nspr\nspr.bms」が設定されたショートカット「それ自体」が、bmse.ini の Help キーとして指定されています。
  1. uBMplay のショートカットを作り、そのプロパティを開く
  2. “リンク先” のパス末尾から、半角スペース区切りで任意の引数を設定する
  3. そのショートカットを任意の場所に置き、Help キーから参照する

    (ショートカットは Help="ubm_nspr.lnk" のような指定も可)

つまり Help キーは外部ツール枠のひとつとしても利用できるという話でした。


DirectShow フィルタのインストール

BMSE には音声プレビューという便利な機能があります。オブジェクトに WAV ファイルが定義されていれば ( #WAV** example.wav )、そのオブジェクトをメインパネルや定義リストから選択した時に音を鳴らすことができます。

ここで鳴らせる音声形式は、DirectShow のフィルタを追加すれば増やすことができます。ただし、これは BMSE の管轄外の話です (Windows の APIMCI の仕事)。

BMSE の readme.txt には “サポート対象外” と明記されていますので、以下は自己責任でお試しください。

Ogg Vorbis を BMSE 上で鳴らせるようにする

  1. もし古いバージョンの RadLight Ogg Media DirectShow filter [http://www.oggmedia.info/] (外部リンク)Open Codecs (Ogg Codecs) [https://www.xiph.org/dshow/] (外部リンク)OggDS [http://hp.vector.co.jp/authors/VA022257/ogm] (外部リンク)、あるいはそれらに類する Ogg DirectShow フィルタが既に導入されていた場合、それらをすべてアンインストールします

  2. RadLight Ogg Media DirectShow filter 1.0.0.2 [http://www.free-codecs.com/radlight_ogg_media_directshow_filter_download.htm] (外部リンク) をダウンロードします。(公式サイト [http://www.oggmedia.info/] (外部リンク)消滅につき、二次配布サイトを参照しています。二次配布先も消えている場合は、DuckDuckGo [https://duckduckgo.com/] (外部リンク) などから各自検索してください。)

  3. Windows Media Player や BMSE、その他 DirectShow フィルタを利用するアプリケーションをいったんすべて閉じます。

  4. ダウンロードしたアーカイブを展開し、インストーラを実行します。

  5. BMSE 上で Ogg Vorbis を鳴らすには、#WAV** example.ogg と定義します。拡張子が異なると音を鳴らせません。

鳴らせるようになるかどうかは環境にもよります。古いバージョンの OggDS や Open Codecs (Ogg Codecs) ではエラーが出た・BMSE が強制終了した・どころか RadLight でも強制終了したという報告例 [http://ucn.tokonats.net/bbs/20070611164536.html] (外部リンク)もあります。

筆者環境 (64-bit Windows 10) では、oggcodecs_0.82.16930-win32.exe [https://ftp.osuosl.org/pub/xiph/releases/oggdsf/] (外部リンク) で問題なく Ogg を再生できており、RadLight よりも Ogg Codecs のほうが安定して再生できています。

動画やその他の codec との相性もあります。たとえば 0.83.17220 以降の Open Codecs (Ogg Codecs) [https://www.xiph.org/dshow/] (外部リンク) は VP6 と競合し、Ogg 再生時に BMSE や Windows Media Player を強制終了させる場合があります。競合は Ogg Codecs 0.82.16930 [https://ftp.osuosl.org/pub/xiph/releases/oggdsf/] (外部リンク) を入れ直すか、または以下の手順で解消します。

  1. 【スタート → すべてのプログラム → アクセサリ → コマンドプロンプト】を右クリック → “管理者として実行”
  2. 32-bit Windows なら、以下のコマンドを実行:
    regsvr32 /u vp6dec.ax
    64-bit Windows なら、以下のコマンドを実行:
    cd C:\Windows\SysWOW64
    
    regsvr32 /u vp6dec.ax
  3. コマンドプロンプトを閉じる

BMSE 上で ogg を鳴らせなくてもデメリットはほとんどないので、いろいろ試してもだめなら潔く諦めることをおすすめします。


RadLight Ogg Media DirectShow filters [http://www.free-codecs.com/radlight_ogg_media_directshow_filter_download.htm] (外部リンク)Open Codecs (Ogg Codecs) [https://www.xiph.org/dshow/] (外部リンク) のアンインストールは、“プログラムの追加と削除” から行えます。

OggDS [http://hp.vector.co.jp/authors/VA022257/ogm/] (外部リンク) のアンインストールは、C:\WINDOWS\system もしくは C:\WINDOWS\system32あたりにある OggDSUninst.exe を実行します。

その他の形式を BMSE 上で鳴らせるようにする

Windows 98 以降の場合、MP3 は最初から鳴らすことができます。#WAV** example.mp3” のように定義します。

Direct Show Filterについて [ FINALSTREAM ] [http://codec.finalstream.net/dsf/] (外部リンク) あたりも参考にどうぞ。

注意点は以下の通りです。

  • DirectShow フィルタはむやみに入れると環境を破壊する恐れがあります。対象形式に対して必要な一種類だけを導入してください。

    うまく鳴らない場合、動画方面と競合している可能性もありえます。行儀が悪いソフトもあるし、コーデックパックなど下手に導入していると、不具合の原因切り分けが困難になります (アンインストールすると余計ひどくなるなんて話もあるくらい)。余計な導入は極力控えるべきです。

  • BMSE 上で鳴らせたとしても、BMS 再生ソフト側がその音声形式に対応しているとは限りません。全ソフトで鳴らせる形式は WAV のみです。
  • 比較的新しい BMS 再生ソフトの場合、定義名とファイル名で拡張子部分が異なっていても、名前部分が同じであればそれを自動的に読み込んでくれます。たとえば “#WAVxx Eg.wav” という定義があったとき、実際のファイルは Eg.mp3Eg.ogg であっても構わないわけです。

    しかし BMSE にその機能は無いため、「定義名と同名かつ別拡張子」のファイルは単音プレビューを行いません。譜面作成時にそれをやられても逆に困る気もしますし、素直に諦めてください。

「譜面には *.wav として定義されているが、対応する同名ファイル群の拡張子は *.ogg となっており、かつそれが実際に Ogg Vorbis 形式の音声ファイル」である場合、以下のいずれかの方法で BMSE 上でも鳴らせるようになります。

古い形式や珍しい形式でエンコードされた音源は、DirectShow フィルタ適用済みの BMSE でも鳴らせない場合があります。

DirectShow フィルタは必ずしも万能ではないため、テキスト置換よりは直接 WAV 化したほうが確実です。ただしもちろん、相応に容量は嵩みます。

oggdec について補足

最近の BMS シーンでは、Ogg Vorbis 使用作品に oggdec.exe [http://www.rarewares.org/ogg-oggdec.php] (外部リンク) を同梱する例も見かけます。これはバッチファイル経由で ogg → wav の変換を実行するものです。たとえば以下の内容のテキストファイルを用意し、拡張子を *.txt から *.bat に変更したとします。慣例名は _decode.bat です。

oggdec *.ogg
EXIT

この *.batoggdec.exe を共に対象作品フォルダに置いたうえで、*.bat を左ダブルクリックなどで実行すれば、ogg → wav のデコードが完了します。これらを作品に同梱しておけば、ユーザ側はデコーダを用意する手間が省けます。

Ogg ファイル群の同位に _decode.bat および oggdec.exe を同梱しておき、ユーザ側に実行してもらいます。

デコード完了後に変換後の wav ファイルだけを残したい場合は、*.bat に以下のように記述します。(ただし元の ogg を消すと何かと不便です。)

oggdec *.ogg
del *.ogg
EXIT

バッチファイルは書き方次第では悪意ある内容も実行させることができてしまうので、ユーザ側は実行前に中身を一応確認するべきです。

  • Windows 95/98/ME では、古い oggdec しか動作しません。期待通りに動作する保証もありません。