頁内目次

  1. uBMplay 動作環境
  2. uBMplay の導入 (簡単に済ませたい場合)
  3. BMSE と uBMplay を別々のフォルダに置く場合
  4. 『実行ファイルのパス』の補足
  5. コマンドライン引数ひきすう
  6. uBMplay のコマンドライン引数一覧
  7. uBMplay スイッチング
  8. iBMSC/μBMSC の注意点
  9. ビューワが起動しない、または正常に動作しない場合

uBMplay 動作環境

[uBMplay 1.5.2 - 1.5.0] 対応 OS:
Windows 10/8.1/8/7/Vista/XP
[uBMplay 1.4.6 - 1.4.5] 対応 OS:
Windows 10/8.1/8/7/Vista/XP/2000
[uBMplay 1.4.4 - 1.4.0] 対応 OS:
Windows 10/8.1/8/7/Vista/XP/2000/ME/98
[uBMplay 1.3.13 - 1.3.6] 対応 OS:
Windows 10/8.1/8/7/Vista/XP/2000/ME/98/95
[BMSE 動作環境と共通] 別途必要なファイル:

Visual Basic 6.0 SP6 ランタイム (MSVBVM60.DLL)

COMDLG32.OCX

[Windows 98SE/98/95] 別途必要なファイル:

DirectX (7.0 以上) ランタイム

  • 【ファイル名を指定して実行】に dxdiag と入力してエンターを押してください。診断結果が「DirectX バージョン: 7.0 (4.07.00.0700)よりも古い場合は、DirectX 7.0 以上を別途導入してください。

    未導入なら DirectX 8.0a [English [https://web.archive.org/web/20010413111948/http://www.microsoft.com/downloads/release.asp?ReleaseID=27741] (外部リンク) または 日本語版 [https://web.archive.org/web/20010413120508/http://www.microsoft.com/japan/directx/homeuser/downloads/default.asp] (外部リンク)] が無難。

  • Windows 2000/ME 以降は、古い DirectX の導入は不要です。Windows 2000 には DirectX 7.0 が、Windows ME 以降には DirectX 7.1 以上が標準搭載されています。
  • 「自分の環境にインストール済みの DirectX」よりも古いバージョンの DirectX をインストールしないでください。

[Windows 10/8.1/8/7/Vista] 別途必要なファイル:

dx7vb.dll (およびその登録。必ず自己責任の上で試すこと。) [https://hitkey.nekokan.dyndns.info/bmse_help/a.htm] (外部リンク)

  • Windows 2000 や Windows XP などの古い環境からコピーします。もしくはダウンロードした DX81NTjpn.exe [https://www.microsoft.com/ja-jp/download/details.aspx?id=10968] (外部リンク) を「実行せずに」拡張子を cab に変更して取り出します。unofficial nazobmplay [http://manbow.nothing.sh/nazobmplay/download.html] (外部リンク) などに興味がある方は、dx8vb.dll も確保しましょう。
  • 「ブロックの解除」が可能な場合は、登録前に解除しておきます。
  • 登録手順がよくわからない場合は、じゃんぱず [http://www016.upp.so-net.ne.jp/garger-studio/janpazu/win7.html] (外部リンク)の解説を参考に。
[uBMplay 1.5.2 - 1.5.0] 別途必要なファイル:

Visual C++ 2010 ランタイム (x86) [https://www.microsoft.com/ja-jp/download/details.aspx?id=8328] (外部リンク) (msvcr100.dll)

  • これがないと音声が鳴りません。
[uBMplay 1.5.2 - 1.5.0] 2017年9月18日以前に導入済みの場合:

公式サイトから image.dll 20170913 版を確保し、古い image.dll を最新版のそれに差し替えてください。

  • これが古いと透過 PNG が正しく描画されないうえ、減色された透過 PNG によって uBMplay が強制終了する可能性があります。

uBMplay の導入 (簡単に済ませたい場合)

UCN-Soft [http://ucn.tokonats.net/] (外部リンク) からダウンロードした ubmplay_152.zip を展開し、ubmplay フォルダ内のファイルをすべて bmse フォルダに入れます。以上。

そのまま移動させると BMSE 側の readme.txt が上書きされてしまいます。上書きを避けたい場合はあらかじめ readme.txt のファイル名を適当に変更しておいてください。

  • 画像は uBMplay_146b.zip のファイル構成ですが、他のバージョンでも同じ方法が使えます。
  • BMSE 側の readme.txt を上書きしたくない場合は、BMSE/uBMplay のどちらかの readme.txt を適当にリネームしてからファイルを移動してください。

BMSE から uBMplay が呼び出せるかどうか確認しておきましょう。BMSE を開き、ツールバーのビューワ選択枠から uBMplay を選択します。

ビューワ選択枠は、ツールバーにおける最初のドロップダウンリストです。

最初から再生 (緑の矩形と右向き矢印のアイコン)、現在位置から再生 (緑の右向き矢印アイコン)、再生を停止 (青い正方形アイコン) のどれかを左クリックして uBMplay が起動すれば大丈夫です。

  • 呼び出せても、環境によっては正常に再生できないケースもあるようです。動作が思わしくない場合は本頁末尾を参照してみてください。

BMS Viewer・BMEV・nBMplay も同じ手順で導入できます。(WAview は除く)

とりあえず使えればいいという方は、この先を読み進む必要はありません。


BMSE と uBMplay を別々のフォルダに置く場合

展開した ubmplay フォルダを任意の場所に置き、BMSE を起動します。

ビューワの設定を行います。

【外部ビューワ → ビューワの設定】を左クリックして設定ウィンドウを開きます。

実行ファイルのパスが分からない場合は「参照」をクリックしてください。

1) リストから uBMplay を選択します。

2) 実行ファイルのパス の欄に、uBMplay.exe がある場所を指定。

3) 【OK】を左クリックして、このウィンドウを閉じます。
【OK】から閉じたときのみ、変更した設定が bmse_viewer.ini に反映されます。

【引数】は通常は特に変更する必要はありません。


【参照】はパスが分からない、もしくは入力が面倒な場合に左クリックします。

ファイル参照ダイアログが開かれます。左側のアイコン群からは、よく使う場所にすぐ移動できます。右上のアイコン群からは、直前の場所に戻ったり、上の階層に移動したりできます。上部プルダウンメニューからは、階層をツリー状に展開して移動することができます。

ファイル参照ダイアログから、フォルダなどをダブルクリックして階層を移動します。どこかに置いた uBMplay.exe を見つけてダブルクリックすると、実行ファイルのパス欄に適切なパスが挿入されます。

BMS Viewer・BMEV・nBMplay も同じ手順で導入できます。


『実行ファイルのパス』の補足

【参照】から入力される「コンピュータの先頭からのパス」以外に、BMSE.exe からのパス も指定できます。

下位に置いた実行ファイルを参照する例:

「BMSE.exe と同位にある ubmplay フォルダ」 → 「その中にある uBMplay.exe」

この場合、実行ファイルのパスは【ubmplay\uBMplay.exe】。

上位の階層を経由する例:

「BMSE.exe の1階層上位のフォルダ」 → 「その中にある ubmplay フォルダ」 → 「その中にある uBMplay.exe」

この場合、実行ファイルのパスは【..\ubmplay\uBMplay.exe】。

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


コマンドライン引数ひきすう

引数によって uBMplay の起動オプションを指定できます。

BMSE の特殊引数 <measure>任意の小節番号に変更すると、現在の小節位置ではなく、指定した小節から譜面を再生します。

BMSE の特殊引数 <filename>任意の譜面のパス名に変更すると、現在編集中の譜面ではなく、指定した譜面を再生します。

スペースを含むパスは全体をダブルクオートで括る必要があります。例:

-P -N<measure> "..\Sound Square\SS_yuki_usagi.bms"

uBMplay の再生引数 -P-SP に変更すると単曲再生モードになり、譜面再生を完了すると同時に uBMplay が終了します。

uBMplay の停止引数 -S-Q に変更すると、 「再生を停止」したとき uBMplay が即座に終了します。


uBMplay の再生引数に -FR を追加すると、uBMplay が再生されるつど全リソースが読み込まれます。挙動の違いは以下の手順で検証できます。

  1. BMSE 上で編集中の譜面を「再生」する。
  2. 「再生を停止」する (引数は -S)。
  3. uBMplay を待機させたまま、編集中の譜面の定義済み音声を別のファイルに差し替える
  4. 待機状態の uBMplay に対して再び譜面を「再生」させる。
引数が “-P -N0 <filename>” の場合:
メモリに読み込み済みの「差し替え前の旧音声」が再生されます。
引数が “-FR -P -N0 <filename>” の場合:
「差し替え後の新音声」が新たにメモリに読み込まれ再生されます。

-FR オプションを付加すると、通常は不必要に読み込み時間がかかります。しかし音周りの調整中など、再読み込みされるほうが便利な状況もあります。心当たりがある方は用途に応じて適宜 -FR オプションを付け外しするとよいでしょう。

uBMplay への起動オプション設定の一例

最初から再生: -SP -N1 <filename>
#000 を無視して #001 から再生
現在位置から再生: -SP -N999 <filename>
譜面の最終小節のみ再生 (註)
停止: -Q
-SP と組み合わせることにより、「再生時以外は必ず閉じる」
  • 再生開始位置に指定した小節から以降にオブジェクトが存在しなかった場合、uBMplay はオブジェクトが存在するうち最後尾の小節のみを再生します。
  • ちなみに BMS Viewer に対して同じ引数 “-SP -N999 <filename>” を指定すると、「現在位置から再生」時に、譜面を最初から再生します。
  • 「停止」の引数を “-P -N1 <filename>” などと指定しても、再生時間が変な表示になるだけで他には特に何も起こりません。

uBMplay のコマンドライン引数一覧

コマンド 内容
-N[0-999] 指定した小節から再生開始
-P 再生を開始 (GDAC2 では省略不可能)
-S 停止
-Q 終了
-SP 再生終了と同時に uBMplay を終了 (v1.4.3 以降)
-FR 常に再読み込みを行う (v1.5.0 以降)
これら以外 無視されます

uBMplay スイッチング

  1. uBMplay のショートカットを作成し、そのプロパティを開く
  2. “リンク先” のパス末尾から、半角スペース区切りで引数を記述 (指定例)
  3. このショートカットにドロップした譜面には、このオプションが適用される

起動オプションを変更したショートカットを何種類か [送る] やランチャなどに登録しておけば、ドロップ先によって挙動を選ぶことができます。通常モードと単曲再生モードと特定譜面再生モードを使い分ける、などの用途に利用できます。

iBMSC [https://hitkey.nekokan.dyndns.info/ibmsc_ja/] (外部リンク)/μBMSC [https://github.com/zardoru/iBMSC/releases] (外部リンク) の注意点

iBMSC または μBMSC でビューワを設定する場合、特殊引数 <filename>二重引用符で括る必要があります。たとえば uBMplay であれば、以下のように引数が指定されなければなりません。

uBMplay on iBMSC/μBMSC
Items Ar­gu­ments
Play from be­gin­ning -P -N0 "<filename>"
Play from cur­rent mea­sure -P -N<measure> "<filename>"
Stop -S

<filename> を二重引用符で括らなかった場合、「パスに半角空白が含まれる譜面」は正常に再生されません。ご注意ください。


ビューワが起動しない、または正常に動作しない場合

主な原因としては以下などが考えられます。

必要な動作環境を満たしていない:

正しいバージョンの Visual Basic 6 Service Pack 6 ランタイム、Visual C++ 2010 ランタイム (x86)、dx7vb.dll が揃っているかどうか確認してください。CPU、ビデオカード、メモリのスペックもそれなりに必要です。

オーディオドライバが存在しない、もしくは正しく認識されていない状態で uBMplay を起動すると、ランタイムエラーが発生します。

【画面の色】が 4-bit (16 色) またはそれ以下に設定された環境で uBMplay を起動すると、応答しません。

ASUS 社のサウンドカードを使っていると音声が鳴らない場合もあるそうです [https://www9.atwiki.jp/coolnaurl/pages/12.html#id_4af167db] (外部リンク)

uBMplay のディレクトリ構成が正しくない:

たとえば uBMplay は、実行ファイル単独では正常に動作しません。

だめな例: uBMplay 用の dll やスキンフォルダが同じ階層に存在しない。 (よい例1よい例2)

uBMplay.exe と付随ファイル群は同じ階層に置く必要があります。uBMplay 配布時のディレクトリ構成を変えないでください。

BMS のディレクトリ構成が正しくない:

一般的な BMS は、譜面ファイル単独では正常に再生されません

uBMplay で普通にプレビューできる BMS があるとします。このフォルダから譜面以外のファイルを削除するとuBMplay も含むあらゆる BMS 関連ソフトウェアで音声や映像が再生されません

譜面ファイルをメモ帳で開くと見つかる “#WAV01 Awav01.wav” などの記述は、譜面と同じフォルダにある “Awav01.wav” を、音声として参照する宣言」です。#WAV01 .\Awav01.wav” と等価です。

音声や映像が譜面からの相対的なパスとして定義される例もいくつかあります。Brrrreeed Cicadididi [http://manbow.nothing.sh/event/event.cgi?action=More_def&num=136&event=96] (外部リンク)” のダウンロードは非公式パッケージ [https://teracoya.nekokan.dyndns.info/g2r2014uop/] (外部リンク)から行えます。

何らかの原因でファイルが破損している:

HDD/SSD の寿命、ウィルス感染、ダウンロード時の事故、アンチウィルスソフトの誤診によるファイル隔離などが考えられます。疑わしい場合は、各症状を対策してから再度ダウンロードしてみてください。

uBMplay 1.3.7 から 1.5.0 までは実行ファイルが UPX 圧縮されており、これが原因で一部のアンチウィルスソフトに誤検出される事例もあったようです。可能なら uBMplay 1.5.1 以降をお使いください。

DLL hell [https://ja.wikipedia.org/wiki/DLL地獄] (外部リンク) に陥っている:

「バージョンもリリース時期もまちまち」な「Visual Basic ランタイムパッケージ」を「複数」導入すると、競合して不具合が発生しがちです。疑わしい場合は、導入したランタイムパッケージをいったんすべてアンインストールし、必要最小限のなるべく新しいランタイムのみを入れ直してみてください。

  • readme.txt に記載されていたランタイムパッケージをすべて同時にインストールし、挙句「ウィンドウに何も描画されない!!」などと喚いても、それは自業自得というものです。(ヘルプ筆者の体験談)

実行ファイルのパスを正しく指定していない:

パスを設定した後で、BMSE やビューワの置き場所・フォルダ名・ファイル名を変更しませんでしたか?

ディレクトリ構成を変更した場合は、【外部ビューワ → ビューワの設定】から『実行ファイルのパス』を確認し、必要なら再度指定し直してください。

誰かにひねくれたパス [https://www.ipa.go.jp/security/awareness/vendor/programmingv1/b08_01.html] (外部リンク)を設定された可能性もありうるので、一応ご確認を。

ビューワの引数を正しく指定していない:

通常は引数を初期設定から変更する必要はありません。

初期設定値を忘れて元に戻せなくなった場合は、BMSE をいったん閉じ、bmse_viewer.ini を削除してください。ビューワ設定が初期化されます。

引数の詳細は各ビューワのドキュメントなどを参照してください。

  • iBMSC または μBMSC の場合、<filename> は二重引用符で括って "<filename>" と指定しなければなりません。

【Internet Explorer 8】 “制限付きサイト” に登録アイテムが多すぎる:

IE8 RC 版から IE8 正式版に更新されたタイミングで、BMSE からのビューワ呼び出し速度が極端に低下する事例が報告されるようになりました。BMSE に限らず、Windows の API を利用するアプリケーション全般で呼び出し速度が低下します (エクスプローラ、Windows Media Player 等)。

IE8 のメニュー【ツール → インターネット オプション → “セキュリティ” タブ → 制限付きサイト】に膨大な登録がある場合に、この現象が発生するようです。

Spybot [https://www.safer-networking.org/] (外部リンク)SpywareBlaster [https://www.brightfort.com/spywareblaster.html] (外部リンク)ZonedOut & IE-SPYAD [http://www.higaitaisaku.com/zonedout.html] (外部リンク) などの免疫ソフトを利用している場合、登録が数万から数十万件に達することもあるので、IE8 の使用者はこれらの設定を見直してください。

免疫を正しい手順で解除するなり、レジストリをいじるなりして再設定すれば解決できます (参考 [https://oshiete.goo.ne.jp/qa/4825239.html] (外部リンク))。

uBMplay 上では音割れしない BMS が、LR2 などで再生すると割れる:

BMS の音量が大きすぎる可能性があります。(ただし、BMS における音割れの良し悪しはまた別の問題です)

uBMplay が DirectX によって音声を再生する一方で、LR2 は ASIO という「Windows のソフトウェアミキサーを経由しない発音方式」を選択できます。これにより聴こえ方が変わる場合があります。

Windows Vista 以降の uBMplay には、Windows のソフトウェアミキサーを介してピークリミッターが適用されます。

LR2 の WASAPI は共有モードなので、Windows Vista 以降の DirectSound と同様に、Windows のリミッターが適用されます。

これらの場合、たとえ BMS がもともと音割れするように組まれていたとしても、割れないように Windows によって加工された音」が出力される可能性があります。uBMplay や non-ASIO LR2 を音声のモニターとして信頼しないでください。

おそらくこの問題を抑制するために、uBMplay は v1.5.0 において「デフォルトボリュームを 50% に変更」しました。ubm.iniVolume キーがそれです (1.4.6 以前の既定値は 100 でした)。

charatbeatHDX VIOLET [http://www.charatsoft.com/software/charatbeatHDX/index.html] (外部リンク) (v1.00 以降) や BMIIDXView2015 [http://www.charatsoft.com/software/bmview/index.html] (外部リンク) (v3.00 以降) では、「Windows のソフトウェアミキサーを経由しない発音方式」である WASAPI 排他モードを選択できます。ただし、いくつかのエフェクトも適用されます。

ASIOWASAPI 排他モードで波形が破綻しないように音量調整された BMS は、一般的な BMS に比べるとかなり控えめに鳴るでしょう。BMS の音量問題に関する素晴らしい研究があります [https://qiita.com/dtinth/items/1200681c517a3fb26357] (外部リンク)