doubledepth

君の名はペイジ

私が常用しているapplicationの新しいversionをinstallしようとしたところ、証明書の更新に失敗したらしく、installerを実行しても砂時計状態が永遠に続く。Task Managerによると「管理アプリケーションの承認UI」なる見慣れないprocessが砂時計の発生源であるようだ。このtaskを終了させると「ファンクションが間違っています。」なるerror messageが表示される。Installerを実行してもapplicationを更新できないので様子見で古い版のinstallerを実行しようとしたところ、なんとそちらまでinstallできなくなってしまっていた。

「ユーザーアカウント制御設定の変更」から通知を一切行わないガバガバ設定に一時的に変更することによって、強引にinstallすることができた。Applicationの設定は案の定吹き飛んだが、最悪の事態は避けられたのでよかった。

BMSONに関するいくつかの小技

Pulsusの自動演奏

settings.json"gameplay" key配下"assistMode"の値"Disabled""Autoplay"に変更すると、Pulsusは図表を常に自動演奏する。BMSONのViewerとして最適だと思う。

自動演奏せずに長尺曲を任意の小節から遊ぶのも楽しい。BMSONのTesterとして最適だと思う。

"D:\Pulsus\Pulsus.exe" "D:\BTS_Package\readme.bmson" --measure 1136

Keyconfigや既定のBMS folderの設定なども、settings.jsonから行える。

BmsONEのあんまり参考になりそうにない小技

BTS差分の旧全曲版をBmsONEで普通に開くと、私の環境では起動に8分を要するMaster CacheだかBuffer Cacheだかが残っているらしい状態でも、起動に4分を要する。起動直後にMemory使用量は11000 MiB程度まで膨れ上がり、やがて4060 MiB前後に収束する。あらゆる編集操作に重石が乗せられたかのように遅延が生じる。

このようなBMSONも、音声を参照できない場所に隔離して開くと、BmsONEが瞬時に起動する。BTS差分の規模になると、無音声状態で編集しても私の環境では操作に遅延が挟まるのであんまり快適にはならないが、全音声を一度に読み込むよりは確実に楽。

無音声を基本状態として、必要な音声だけを部分的に参照させる方法も有効(BTS差分しくじりメドレーのような構成なら尚更)。たとえばD:\BOFooxXV\missから、misses.bmsonおよび030” folderをDesktopにcopyし、Desktop上で030地帯をBmsONEして、元の場所に上書きする、とか。

あとあれ、LongNotesをBmsONE上でCtrl + Left-Clickや範囲選択で複数選択してから、既定では左側の一番下あたりにある「選択オブジェクト」欄の「拡張情報」入力枠に

"t": 3

とか入力すると、選択していたLongNotesが一括でHELL CHARGE NOTEに化けて気持ちいい(beatoraja拡張、いまのところbeatoraja専用)。Notesの長さも複数一括変更できたりする。

さらにさらに、BMSでは禁じ手だった「KEY音を多重定義して音量倍増」、BMSONではLayered Notesという神仕様があるのでがんがん使っていける。tudadadanだけ妙に控えめだなあ……ヨシ!みたいな

Bemuseでlocal BMS/BMSONを遊ぶ

Google ChromeやVivaldiなどのBlink系web browsersの場合:

遊びたいBMSをfolderごとBemuse選曲画面に直接dropすればよい。

たとえば(^^)を遊びたい場合は、yamajet_is_sugoi” folderを選曲画面にdropする。

Firefoxの場合:

「図表群およびそれらが参照するresources全部」を選択して、選曲画面に直接dropする。

たとえばWanted Beatを遊びたい場合、haleit_wanted” folderの中身を全部選択してまるっと選曲画面にdropする

DropしたBMSONに有効な"title_image"が定義されていれば、その画像が背景に描画される。

https://bemuse.ninja/?archive=https://www.dropbox.com/s/mhzxcmnzg9eciw1/BOFoonXV_koushien.zip?dl=1のようなURL直貼りさえ可能な現在、BMS/BMSONがBemuse上で著者の期待通りに動作するかどうかを作品公開前に検証しておくことは決して無駄にはならない、と私は思う。

beatorajaのheapを増やす

BTS差分readme.htmlにも書いたが、「beatorajaが使うことができるmemory」の割り当て量は増やすことができる。大量のresourcesを読み込んでも滑らかに遊べるようになったり多くの恩恵があるが、物理Memoryに相応の余裕が必要。試すなら自分の環境と相談して適当に指定されたい。

beatoraja-config.batbeatoraja-config.commandからbeatorajaを起動している場合は、それらをメモ帳で開き、以下の部分を適宜書き換えて保存する。-Xms8g -Xmx8gも確保できれば大安定。

java -Xms1g -Xmx4g -cp beatoraja.jar:ir/* bms.player.beatoraja.MainLoader

beatoraja.jarLaunch4jでEXE化する場合も、heapを指定できる。BTS差分のreadme.htmlを参照。

おみくじいっぱい宜候

先日の補足。BMSE Conversion Wizardと定義list複数項目移動の組み合わせは、複数のBMSesをまとめる際に便利だが、分解能制限を見誤るとrhythmが狂う。missでいうと、#IF 16|18|26|2736分音符44分音符は、BMSEやBMS List Sorterを通すと丸められてしまう。これらの分岐を私は初手でBMSONに変換して後から統合した。bmson is sound channel based.とあるように曲をがっちり固めてかかるのがBMSONなので、LEGO Bricksを組み変えるような工程(俗にいうBMSE作曲とか)はBMS形式であるうちに済ませておくほうが楽だなあと私は思った。

「ここでBPMが変わりますよ」という視覚的指標がない状況でBPM変更で翻弄する譜面はであり、ritardando中も#BPMは変えずにnotes間隔のほうを弄る“miss” #IF 70のような譜面が好ましい、と昔の私は感じていた。今はBPM変更地点はBPM Guideで視覚化できるし、見た目上の落下速度も#SCROLLで調整できるようになったのだから、ritardandoは愚直にBPMを変えていくほうがbeat indicatorも同期してよかろうと思うようになった。むしろ革命叙情のような糞譜面こそがこれらの新機能を生んだともいえるからして、糞にまみれる資質持ちは積極的に糞たらん。私にはもう何もわからん。

missしくじりメドレー

全分岐を順番に遊ぶだけの差分。Bemuse以外のBMSON対応機種で遊べるはず。私は曲変更どころか配置変更さえ一切していない(負数BPMを削っただけ)。

iBMSC/μBMSCでは定義list項目を複数選択して動かすことができる。この機能はとても便利だが、一枠動かす度に矢印iconを一回押下する必要があるので、Alt+↕を押しっぱなしにすることで連続入力できるBMS List Sorterのほうが(分解能などが対応している範囲であれば)楽。

𛁛𛂦゙𛀔𛀆𛁈𛀈

Deepesced LinkzBPM変更を#SCROLLに置き換えた差分Anzu BMS Diff Tool_deepesced_linkz_h.bmsと比較して差異が検出されないことを確認済み。元図表はscrollingの辻褄合わせに捏造された128分音符を持つので(#064)、安全に編集するならiBMSC/μBMSCが必要だ。BPM変更を解除した#SCROLL差分は128分音符を持たないので、BMSEでも安全に編集できる。

Notes patternやscrolling結果が同一であるにもかかわらず、original版のほうが#SCROLL版よりも楽しい。視界の端でrhythmicalに蠢くBPM欄もgrooveに寄与していた。私は考えを多少改めた。とはいえ#SCROLL版のほうが便利ではあり、それはBmsONE上でよりはっきりする。

#SCROLL差分のscrolling変動率はBMS版とBMSON版で共通だが、scrolling結果は異なる。beatoraja 0.7.5が"scroll_events"の小数値"rate"を無視するのが原因。これを回避すべく、私はBTS差分の旧全曲版では小数値がなくなるまで"rate"を整数倍した。#1001小節目のscrolling速度は2048 bpm相当まで跳ね上がった。これはこれで面白かったが、現在の短縮版では元の変動率に戻している。

今年もよろしくお願いします

BGAに重なるタイムテーブルが、てっきりそういうBGAなのかと思ってしまいました。

たしかにScreenShottimetable.pngみたいなBGA画像素材にも見えますね〜。"subtitle"の改行は歴としたBMSON仕様のひとつですが(“Multiple line subtitle may be possible by including a newline character \n”)、引用したmayが要請の程度としての「してもよい(may)」であるならば、あくまでも選択肢にとどまる仕様でしょうから、図表著者が確実を期すなら、comment氏が最初に解釈したように複数行textを画像化し、それを"bga"に定義して使うのが無難ではあるでしょう。

実際このtimetable文字列、beatorajadefault skin)とBemuse以外ではまともに表示されません。とはいえ私は選曲画面が崩れる副作用を予め知っていたとしても"subtitle"の画像化はしなかったと思います。可能な限り多くのresourcesを参照することに加え、可能な限り多くの仕様を活用することも今回の拙作差分の目的だったからです。まあ現在の短縮版では使用を中止した要素もありますけれども(小節数1000超え・BGA定義数1300超え・停止時間の加算など)。

日記

BMS関連

拙作BMS
bubble / hitkey
二次配布BMS
ノイズの海と鯨 / moka
PARTY TIME IN MY DREAM / HAIJI
BMSE非公式ヘルプ
Lite
Lite-online
Full
Full-online
buglist
iBMSC
Web (Japanese version)
issues
BMS差分
a­nal­gam
boléro
Ketch­up
quovadis
SELF
yellows
Do not use non-ascii filenames
雑多なメモ
bmsplayer data
bms benchmark
Secrets - Feeling Pomu 2nd
grid2sec
bmx2xxx
BMx Outliner
BMS command memo
BMS command memo (Japanese version)
BMS EVENT LITE
#RANDOM BMS list
BMS #OPTION command
BMS Bitmap test
Extended BPM
STOP Sequence
BMS Edge Cases
BMS extensions proposed by Sonorous (unofficial Japanese version)
BMS 2.0 (unofficial Japanese version)
BMS Editors
Do not use non-ascii filenames
BM98 Kikuchan Version 3.30 Revision #4.2
BMSON Checker
_wsh_bms2bmson.js

その他

HTML関連メモ
Dakuten on HTML
nest1000
EVS
Nervous Cascading
Source Han Sans test
User-Agent String
CSS Logical Properties