kyoto306’s diary

おもにBMSのギミックについて書いてるはず。

【BMS】エディタと192分ズレと小節長【基本講座】

 
新宿の反省会書かないとなのに、モチベの割り振りができてない今日この頃です。
 
↓譜面確認動画(宣伝)★11~★22
 
小節長と譜面容量削減が最近のテーマなので、今回は楽して良いものを作る話です。
G2Rは誰かのアーカイブを見るだけで終わりそうですが、192分ズレやソフランが目に付くので、そのあたりを淡々と。
 
 
1.BMSEとiBMSCの長所と短所
 
譜面エディタ(BMSE,iBMSC他)がありますが、変な差分を散々作ってきた身としてはBMSEは譜面保存に関しては信用できる。
iBMSCは変な事ができるけど保存は信用してないって考えです。一長一短。
 
 
[BMSEの長所]
 
・右クリックで小節線が挿入できる(ギミック作りに非常に便利)
イメージ 1
 
 
・上部の↓ココが手軽に変更できる(基本はGrid32、時折24,48,FREEなど)
イメージ 2
 
・ランダム分岐命令が正しく保存できる(詳しくは長くなるので書かない)
ちなみに限界もあって、テールストーリー物語Ⅱとかは行数が多すぎてダメらしい。
 
・譜面がズレないで保存できる(iBMSCとは違って確実に)
元がズレてたらズレたまま正しく保存されます。
 
 
[BMSEの短所]
 
・地雷ノーツが表示されない&保存できない
なので、いつも不可視ノーツ(Ctrl押しながらノーツ配置)で代用して、後々あれこれして地雷ノーツに置き換えるのが基本(詳しくは略)
 
不可視ノーツについてはもっとBMSEの基本に立ち返った記事を読むべき
でも地雷ノーツと組み合わせるとLR2では音が鳴らないというか挙動がおかしいので、いつか検証すると思います。
↓一応01が実ノーツ、02が不可視ノーツ
イメージ 9
 
・192分以上に細分化された全てのオブジェクトが正しく開けない
Gridの関係で無理やり192分間隔に直される)
 
・おおよそ小節線が1/64のn倍上にしか引けない
(これも無理やり直される。1/3、1/128とかダメ。65/64なども対応してない)
 
・BPM10000000(1000万)を超えると指数表記(E+07など)に変換されて表示されて、ついでに値も微妙にズレる
イメージ 10
 
3rd Avenue [Five Dimension]とかはこの指数表記を採用してる
末端が0ならそこまで影響しないね。
上画像はBPM1300万(=1.3E+07)のワープギミックです。
この辺、深くいじった事ないな。LR2IRでは1.3=1(小数点切り捨て)表記。
LR2本体で再生する際は指数表記はちゃんと変換されて処理されます。
なのでFIXをスルーできたりはしないです。少しコアな話。

 
BPM、STOPレーンにオブジェ(クト)を置きすぎるとエラーを吐いてバグる
#STOP01~ZZ=1295個以上になるとパンクする(対処法はランダム分岐に避難させることですが、関係ある人は個人で何とかできるでしょう
イメージ 11
 
↑がSTOPを1296個以上置いた場合のエラー。たまによくある。
No.9というのはおそらくSTOPの事ですね。#XXX09:01みたいに使われるので。
 
 
短所の方は関係ない人の方が多いので、気にしなくていいです。
あとShiftキー押しっぱなしじゃないとオブジェ横移動時に縦ズレしやすいのは短所ですね、慣れたけど
 
 
 
[iBMSCの長所]
 
・変な事ができる(が、保存に難あり)
 
↓の時間選択モードで
イメージ 3
 
 
↓が表示されるので、範囲を選択していろいろできる(詳しくは~)
イメージ 4
 
・特殊な小節線を引ける(が、保存に難あり)
 
イメージ 5
 
左画像の縦スクロールバーの右横あたりに
カーソルを持っていくと
 
 
真左のアイコンに変わって
色々と幅を変えられます
 
 
 
 
 
 
・ノーツ配置そのままで小節線だけをアレコレできる
 
イメージ 6
 
 
ここらへんの↑の下矢印を押すと
 
イメージ 7
 
↑が出てきて色々機能はあるけど、自分は使い分けてないです
「絶対的な位置を保つ」がiBMSCのデフォだと思って、BMSEと差別化してます
結構有用らしい? いろいろ試してみるのが吉
 
 
・↓の「オブシェを縦移動させない」は便利かもしれない(けど使ったことない)
イメージ 8
 
ギミック作りはオブジェの縦移動が日常茶飯事なのです
 
 
BPM、STOPを一纏めにしてくれる
BMSEは
#STOP01 1
#STOP02 1
#STOP03 1
#STOP04 2
#STOP05 2
 
をiBMSCは
#STOP01 1
#STOP02 2
程度には一纏めにしてくれる(容量削減に繋がる)
 
 
[iBMSCの短所]
 
・過度に変な事をすると保存した時にバグる(詳しくは長い話
この現象はよくわかってないです。普通にしていても勝手に01に変換とかあるので
 
・ランダム分岐を使っていると譜面表示や保存がおかしくなる
(対処法はtxtで開いてランダム分岐の列を抜き出してからiBMSCで開く)
余談だけど、ランダム分岐をいじるのは最後の最後にした方が吉。
 
BPM及びSTOPの値が65536を超えると65535.9999になる
イメージ 12
uBMSCだと改善されてるらしい
 
指数表記も漏れなくこの表示
 
なので複数の超高速BPMを使い分ける場合
これを見越した数値設定する必要あり。
のちにtxtで開いてごにょごにょしましょう
 
 
 
・地雷ノーツは表示されない、が保存は裏でされてる
uBMSCだと地雷周りが便利になってるらしい(けど一度使ってバグったのが最後)
 
・小節線の挿入がBMSE程ほど楽ではない、というか出来ない気がするけどもしかしたら出来るのかもしれない
 
 
他にも色々ある気がしますが、ざっと思い付くのはこのくらい。
保存される範囲とか小節線周りの仕様が結構違うのは、把握できれば役に立ちます。
変な事ばかりしてる人達はuBMSCを使ったり薦めてきますが、
一般的にはBMSEでいいです。
txt編集を覚えれば、ある程度同じような事はできるので。
(あと同梱N,H,A譜面なら無茶な――192分以上に細かいノーツと1/64に乗らない小節線を配置するべきではないような、というかやめてね。BOF2012の宮子はまともに開けないという噂を聞いたような。それとBGMレーンを32を超えて使うのもやめてね。BMSEでは正しく開けないので)
 
 
 
2.bmsファイルをメモ帳で読んだり、容量削減する話
 
譜面のオブジェが意図せずズレやすい。ならそれを見つけようではないか、という話

とりあえず思い付きで配置しま
イメージ 13
 
 
これは1小節目です
↑は4/4ではなく2/4小節です
細いGridは32
少し太いGridは4
 
これを実際にプレイするならkuso
 
 
 
bmsファイルはメモ帳で開けます。開くと、この範囲だけだと↓
イメージ 14
#BPM01 65535
#BPM02 150.01

#STOP01 1
#STOP02 1
#STOP03 1
#STOP04 1
#STOP05 2
#STOP06 2
↑おまけ
 
上から一行一行説明します。カラフルで目に悪かったらゴメンナサイ。
 
#00102:0.5
 
共通項ですが#001は1小節目を指します。
次の02は小節長の長さを表しています。コロン挟んで0.5は「1=4/4」に対する長さです。つまり0.5は2/4小節です。0.25だと1/4。重要です。詳しくは後々。
01は後で出てきますがBGMレーンに使われます。

#00103:964B0000000000000000000000000000
 
うっかり32分間隔に置いたのでこうなった。
03は16進数でFFまでに収まる数値のBPMが書いてある欄ですが、1回もBPM変化しない場合お目に掛かれません。
96=1504B=75ということです。上の思い付き配置も15075です。
で、BPM150.0165535は16進数では表せないので
 
#00108:00000002000000010000000000000000
#BPM01 65535
#BPM02 150.01
 
こんな感じで表されます。#WAV01とかとは別枠です。
BMSEだと配置した順番に追加されていくので、必ずしも01→02になるわけではないので、全部65535にしていると、後で困るかも? 下三桁は使い分けておくべき。
でも自分はさっさと完成時のBPM(9900150等)にメモ帳で該当部分を書き換えて再度使う場合は「Ctrl+左クリック」や「範囲選択+コピペ」したりしてます。
 
 
#00109:0102030405000600
#STOP01 1
#STOP02 1
#STOP03 1
#STOP04 1
#STOP05 2
#STOP06 2
 
09STOPです。
16分間隔だと00が減って少し短くなりますね。
BMSEだと010203……と全部分けられてしまいます。
ちなみにiBMSCとかで保存した場合、下のようにまとめられます。
 
#00109:0101010102000200
#STOP01 1
#STOP02 2
 
再生時の挙動も同じ。
こっちの方が容量削減になりますが、注意点も多いです。
 
 
#00111:01
 
111鍵を示してます。この01は#WAV01です。
小節頭にオブジェ1つが一番短い文字列になります。
 
#00112:0002

4分配置が2つで2/4小節。
122鍵を示してます。この02はWAV02です。
 
#00113:00030000
#00114:0404
 
#00115:000505050505
 
5鍵は12分間隔で配置してます。1/12分×6つ=1/2=2/4小節ということです。
 
 
#00116:06
16というかクラッチ
 
#00136:0006000000000000
あと不可視ノーツも扱いが独立してます。13なだけ。
Dが地雷ノーツです。#001D6:~~
 
 
#00118:08000000080000000000000000000000000000000000000008~~
 
186鍵。五鍵時代の名残りでズレてるのかなと。
24分32分を1小節内に配置した場合でも長くなる。
 
 
#00119:000900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
 
↑が192分ズレしてる場合。2/4でコレなので、4/4だとコレの2倍になります。
197鍵です。
 
ということは、メモ帳で譜面を開いて異様に長い一文があればズレてるわけです。
 
イメージ 15
 
BGMレーン
 
#00101:0A0A0000
#00101:000A000A000000000000000000000000
#00101:000A000000000000
#00101:00
#00101:0A0A0A00
 
こう表記されます。#XXX01をずらーっと並べ放題ですね。
差分作者向けなんですが、左詰めにすると容量削減になります。
 
 
大切な事は伝わりましたでしょうか。
とりあえずメモ帳でbms(譜面)ファイルを開いてみましょうという話です。
あとtxt形式で譜面が読めると強い。
 
 
 
3.小節長の話
 
上の方のとりあえず配置した譜面をメモ帳で開いて#00102:0.5を消して保存。
 
すると見切れてますが、配置間隔そのままで2/4→4/4になります。
#00102:1はbmsファイルには表示されないけど、基本設定だということ。
 
 
イメージ 16
ということは逆に4/4に
#XXX02:0.5を付けて保存すれば
楽に半速が作れる。
#XXX02:2だと倍速になります。
その後BMSE等で開いてBPMレーンに元が150なら半分の75のように配置しておきましょう。
 
部分的に半速にするならそこだけを小節線で挟んで、0.5(=2/4)→0.25(=1/4)のようにしましょう。
 
でも192分配置は384に圧縮されるので、次はBMSEでは正しく開けなくなります。
小節長をいじって悪いことするなら色々試行錯誤してみると何か掴めるかもです。
 
4/4→1/4はまだしも、4/4→3/4や
5/4→4/4なんてことをすると異常にズレる恐れがあります。
 
 
 
計算しましょう。用法容量は程々に守りましょう。
しかしながらiBMSCの時間選択モードで楽に作れます。
保存に関して信用してないので、BPM変化の部分を作ったら別に保存して、BMSEを2つ使ってコピペで適応させたりしますが。
 
 
 
4.おわりに
 
ギミックについてまとめておきたい話が多いけど、面倒。誰かタノミマス。
HS-FIXから逃れるBPMの置き方、STOPとの複合やBPM150はHS-FIX MAX→OFFにしてもスクロール速度に影響ないとかその辺の話。
LR2の曲選択画面時のBPM表示の細工とか、小節長をいじることとギミック作りの関係性とか、Excelを使って小節線を挿入したり#XXX01:01を吹き飛ばして容量削減したり、不可視→地雷に置き換えなどの便利ツールとしての使い方講座とか。
 
前回の記事から8か月経ってますが、楽してギミックを作る技術力は大分身に付いてきたのかなぁと思います。あとは応用していくだけですが、結局のところ曲に対してギミックは左右されるので、新しい曲、ジャンルが出てくれば新しいギミックは思い付くものなので、まぁ時代に流されつつ、まったり譜面を作っていきたいですね。