【必読】太鼓さん次郎(無印)でギミック譜面を作る前に知っておきたいこと

2024年1月29日月曜日

t f B! P L

「#BPMCHANGE」による判定位置のズレ

譜面に「#BPMCHANGE」を置くと、音符の判定が左にズレます。

「BPMを変化させるとズレる」のではなく、「#BPMCHANGEを置くとズレる」点に注意。

譜面にBPMCHANGEを入れると判定位置が早ズレします。
1回につき0ms~2ms判定位置が早くなります。
これは、太鼓さん次郎が命令付近の小節の長さを計算するときに、ミリ秒未満を無視しているために起こっています。
BPM220の1小節の長さは1.090909…秒、ミリ秒にすると1090.91msなのですが、ミリ秒未満を切り捨てるため1090msとして計算されます。
残りも全て計算すると合計は8724msとなります。正しい楽曲の長さは8727.27msなので、約3.27ms早くなってしまっている、という計算です(要確認)


次郎でガチガチなギミック譜面を作ろうとすると、BPMCHANGEの記述回数が数百~数千以上まで到達します。

1回の記述で1msズレるとして、1,000回記述すると全体で1秒ものズレが発生。

500回でも0.5秒とかなりズレます。

次郎のギミックはズレると見え方が悪くなるので、見栄えのいい譜面を作るためにも対策が必要です。

判定位置のズレを修正するツールで対処しよう

「BPMCHANGEの使用回数・適用範囲からどれぐらいズレているかを計算し、導き出された数値をDELAYで修正して、それを随所で行って…」

と、判定位置のズレを手作業で修正するのは途方もないです。

なので、ツールを使って修正しましょう。

かれーどらい{きつね}氏が、BPMCHANGEによるズレ調整器を公開しています。

tjaの中身をツールで読み取らせ、モードを選択したら実行するだけでOK。

ツールがBPMCHANGEのズレを全部修正してくれるので、手作業で修正するより何千倍も楽です。

「#BPMCHANGE」による描画位置のズレは現状対策不可

BPMCHANGEは、音符の判定位置だけでなく描画位置もズラします。

譜面にBPMCHANGEを入れると描画位置もズレます。
命令がかかったタイミングでサブピクセル単位でノーツが「戻る」ような挙動をします。


描画位置がズレると起きる最大の問題が、「逆走式ダミーノーツの位置ズレ」です。

BPMCHANGEが多用されており、かつ個々のダミーノーツに違うSCROLL値が掛かっていると調節がマジで地獄です。

しかもズレ方に規則性がないので、1打ずつ地道に調節するなんてこともザラ。

ギミック譜面はBPMCHANGEを乱用しがちなので、避けられない宿命でもあります。

逆に、BPMCHANGEがあまり使われていないなら描画ズレは目立たず、ダミーノーツの速度がバラバラでも調節は楽です。

ギミック譜面を作る際におすすめのテキストエディター

私は「Mery」を推します。見た目はこんな感じ。


Meryのおすすめポイントは以下の通り。

  • 何行記述してもテキストエディターが重くならない ←素晴らしい!
  • 画面上部に行数の目盛りが表示されるので音符間隔のミスを防げる
  • 「戻る/進む」ボタンがある
  • 設定で指定文字に色を付けられる
  • 形式を認識するので設定した上でtjaを開けば文字に色が付く
  • 置き換え機能が使いやすい
  • 自分の好きな画像を背景に設定できる
  • カスタムの幅がとても広い

重くならないのが一番デカいです。

1,000行を超えると重くなるテキストエディターは多く、1,000~10,000行以上の記述が珍しくないギミック譜面との相性は悪いです。

Meryなら何行書いてもスムーズ。搭載機能も次郎向きなので超おすすめ。

そもそもテキストエディターとして優秀なので、次郎以外の普段使いにもうってつけです。

「CLCL」も一緒に使うと作業効率アップ

CLCLは、コピーした履歴の表示や指定の文字列の登録が可能なクリップボードソフト。

ホットキーでクリップボードをいつでも呼び出せたりと、使い勝手も非常にいいです。

私はこんな感じで、次郎の命令文を登録して使ってます


ギミック譜面は作業の半分以上が命令文の記述みたいなところもあるので、好きな命令文をいつでもペーストできるようになるCLCLは超便利です。

ギミック作譜を楽にするツールを作りたいけど知識がないときの対処法

ChatGPTに作ってもらいましょう。

私のようにプログラミングのpの字もない人間でも、要望を細かく伝えればいい感じに作ってくれます


ただ、一発で理想的なプログラムを作ってもらうのはまず無理です。実際、上記画像のあと30回ぐらいやりとりしてます。

最終的に完成したツールがこちら。

最初は「作ってもらうプログラムの概要」を伝え、そこからは機能を追加してもらったり変なところは直してもらったりするのが主な流れ。

いきなり「これして!それして!あれもして!」と欲張ると、ChatGPTでも対処しきれません。

また、ChatGPTは伝えた要望に対して間違った理解をすることも多いので、「誰でも分かるように伝える」のがコツです。

公開されているギミック作譜支援ツールのおすすめ

先ほども紹介した、かれーどらい{きつね}氏のツールが非常に便利。

使いやすい!分かりやすい!こういうのが欲しかった!の三拍子です。

私も「BPMCHANGEによるズレ調整器」と「慣性ギミック生成器」は、ギミック作譜の際に使わせてもらってます。今では欠かせません。

太鼓さん次郎のギミックについてよくある(かもしれない)質問

「これ知りたい人いるかも」というのがあったら追記するかもしれないです。

ギミック入れても止まったりしないんだけど

太鼓さん次郎のギミックは、tjaの#STARTの上に以下いずれかを置くのが前提。

  • #BMSCROLL
  • #HBSCROLL

上記の記述がないと、ギミックは作動しません

ちなみに、#BMSCROLLは#SCROLLを無視してギミックを認識するタイプ。

#HBSCROLLは、#SCROLLとギミックの両方を認識します。

特に理由がなければ、#HBSCROLLを使うのが無難です。

毎回同じ場所で次郎が落ちるんだけどこれ何?

画面上に「mob.png」が表示されている状態で、以下の命令を作動させるとフリーズします。

  • #BPMCHANGE -値
  • #BPMCHANGEに極端に大きい数値を指定(#BPMCHANGE 120000 など)

「#BPMCHANGE -値」は確定でフリーズ、「大きい数値の#BPMCHANGE」は確率でフリーズします。

imgフォルダからmob.pngを削除するのが一番の解決策です。

マイナス方向に譜面をズラせるのって「#DELAY -」だけ?

「#BPMCHANGE」と「#MEASURE -」の併用でも可能です。

以下は記述例。

BPM=128
1111, #BPMCHANGE 128 //BPMは正の値 #MEASURE -1/1 //MEASUREは負の値 0, #MEASURE 1/1 2222,

上記はマイナス方向に1小節ズラし、ドンとカッを重ねる例。

DELAYは秒数を指定しズラしますが、上記は小節を指定してズラすのが特徴です。

また、赤い部分は瞬間的な小節でもあります。

#DELAY -値の数値を求めるのが難しい、もしくは面倒な場合に有効です。

ズラす効果を持った小節そのものを作る仕組みなので、何回も使うと小節数が増えるのがネックです。

QooQ