(特殊記事)ΔMAXのBPM変化


本ページではDDRにおけるΔMAXのBPM変化が実際には1拍ごとに1上昇となっていないことについて説明する。


前提知識

ΔMAXのBPM変化が1拍ごとに1上昇でないことの根拠としてグルーヴレーダーのCHAOS値を使用するため、CHAOS値についての計算式を掲載する。
また、グルーヴレーダーの各値の計算式において「曲の長さ」や「譜面の長さ」という指定があった場合、1人でその譜面をプレーをした場合のHERE WE GOと表示されてからCLEAREDと表示されるまでの時間を指す。
(MAX360など、譜面によって表示タイミングが異なることがあるため)


CHAOS値の計算式について

CHAOS基本値について

BPM変化や曲の長さによらない、純粋な矢印の配置データのみから得られる数値。
最初にノートごとにNOTEを使用した際に何色で表示されるか、直前の矢印との距離、その行に置かれている矢印の数からノート別基本値を計算する。
ノート別基本値をすべて足したものがCHAOS基本値となる。

ノート別基本値の計算方法は以下の通り。

ノート別基本値 = 直前矢印との距離 * NOTE使用時の矢印の色 * その行での矢印の配置数

直前矢印との距離

k分音符がn個分の距離の時、k/n。
4分音符1個分の距離なら4、8分音符1個分の距離なら8といった具合。
距離が短いほど数値が大きくなる。

NOTE使用時の矢印の色

0倍 1/2倍 1倍 5/4倍

その行での矢印の配置数

見た目通りの矢印が横に何個並んでいるか。
同時押しなら2個、ショックアローなら4個または5個*1または8個。


計算例

←___ 赤
___→ 黄 …… 直前の矢印との間隔は16分1個なので 16 / 1 = 16
____
___→ 黄 …… 直前の矢印との間隔は16分2個なので 16 / 2 = 8
_↓__ 赤 
____
← ↑_ 青 …… 直前の矢印との間隔は8分1個なので (8 / 1) * (1 / 2) = 4 ですが、
           同時踏みであるため 4 * 2 = 8


BPM変化補正について

まずは譜面のBPM変化量の合計値を計算する。
BPM変化がある場合、直前のBPMとの差の絶対値を加算し、停止がある場合は停止後のBPMを加算する。

停止なしでBPM変化のみの例
『PARANOiA ~HADES~』のBPM推移300-75-150-300を例にすると、
( 300 - 75 ) + (150 - 75) + (300 - 150) = 450となる。

BPM変化なしで停止のみの例
『SUPER SAMURAI』停止が6回あるので
170 + 170 + 170 + 170 + 170 + 170 = 1020となる。

停止前後でBPMが異なる場合の例
『Trim』のBPM推移 170-85-(停止)-340-170を例にすると、
(170 - 85) + 340 + (340 - 170) = 595となる。


BPM変化量の合計が分かったら、次は分間BPM変化量を計算する。
BPM変化量の合計値 * ( 60 / 曲の長さ[秒] )

最後に、ようやくBPM変化補正を計算する。
BPM変化補正 = 1 + ( 分間BPM変化量 / 1500 )


CHAOS値の計算式

まずはCHAOS要素値を計算する。
CHAOS要素値 = CHAOS基本値 * BPM変化補正
曲の長さによる有利不利をなくすため100秒当たりの値にする。
100秒当たりのCHAOS要素値 = 「CHAOS要素値 * ( 100 / 曲の長さ[秒] ) 」の小数点以下切り捨て

この100秒あたりのCHAOS要素値が
2000以下のとき:CHAOS値 = 100秒あたりのCHAOS要素値 / 20
2000以上のとき:CHAOS値 = (100秒あたりのCHAOS要素値 - 2000) / ( 25413 - 2000 ) * 100 + 100
※2000以上の計算式で登場する25413というマジックナンバーはCHAOSのSP-CHALLENGE譜面の100秒あたりのCHAOS要素値の近似値。


ここまでが前提知識である。



本題

ΔMAXの譜面のCHAOS値を計算してみよう。
SP-DIFFICULT譜面はNOTE使用時には赤色と青色のノートしかなく、青色のノートも86個あるだけなのでCHAOS基本値を手作業で数えやすい。
実際に数えてみるとCHAOS基本値は255.333……となる。

もしもΔMAXのBPM変化が1拍ごとに1ずつ上昇しているだけであるならば、BPM変化量は473になるはずである。
(101-100)+(102-101)……(572-571)+(573-572) = 573-100 = 473
ΔMAXはおおよそ2分であるため、分間BPM変化量は
473 * ( 60 / 120 ) = 236.5
となる。
BPM変化補正値は
1 + ( 236.5 / 1500 ) = 1.157……
となる。

CHAOS要素値を計算すると
255.33 * 1.16 = 220.1121
となり100秒当たりのCHAOS要素値は
FLOOR( 220.1121 * ( 100 / 120[秒] ) ) = 183
となる。
2000以下なので20で割った値がCHAOS値となる。
よって多少の誤差はあれど9.15程度になるはずである。

しかし、DDR A以降に確認してみると22となっている。
このように計算が合わないため「1拍ごとに1上昇しているわけではない」とわかる。



実際のBPM変化

実際には次のように増えたり減ったりしているとされている。
要するにBPMを上げたり下げたりして位置を調整していることだけ把握していればよく、ちゃんと読む必要はない。
100-101.124-102.273-104.651-105.882-107.143-108.434-109.756-111.111-112.5-113.924-115.385-116.883-118.421-120-121.622-123.288-125-126.761-128.571-130.435-132.353-134.328-136.364-138.462-140.625-142.857-145.161-147.541-150-152.542-155.172-157.895-160.714-163.636-166.667-163.636-169.811-166.667-169.811-173.077-176.471-180-183.673-187.5-183.673-191.489-187.5-191.489-187.5-195.652-191.489-195.652-191.489-195.652-200-195.652-200-204.545-200-204.545-209.302-204.545-209.302-214.286-219.512-214.286-219.512-225-219.512-225-230.769-225-230.769-236.842-230.769-236.842-243.243-236.842-243.243-250-243.243-250-243.243-250-257.143-250-257.143-250-257.143-264.706-257.143-264.706-257.143-264.706-272.727-264.706-272.727-281.25-272.727-281.25-272.727-281.25-290.323-281.25-290.323-281.25-290.323-300-290.323-300-290.323-300-310.345-300-310.345-300-310.345-321.429-310.345-321.429-310.345-321.429-310.345-333.333-321.429-333.333-321.429-333.333-321.429-333.333-346.154-333.333-346.154-333.333-346.154-360-346.154-360-346.154-360-346.154-360-375-360-375-360-375-360-375-391.304-375-391.304-375-391.304-375-391.304-409.091-391.304-409.091-391.304-409.091-391.304-409.091-391.304-409.091-428.571-409.091-428.571-409.091-428.571-409.091-428.571-409.091-428.571-450-428.571-450-428.571-450-428.571-450-428.571-450-428.571-450-473.684-450-473.684-450-473.684-450-473.684-450-473.684-450-473.684-450-473.684-500-473.684-500-473.684-500-473.684-500-473.684-500-473.684-500-473.684-500-529.412-500-529.412-500-529.412-500-529.412-500-529.412-500-529.412-500-529.412-500-529.412-562.5-529.412-562.5-529.412-562.5-529.412-562.5-529.412-562.5-529.412-562.5-529.412-562.5-529.412-562.5-529.412-562.5-600-562.5-573.451

※あまりにも上の1行にまとめたやつだと読みづらすぎるので表にしました。
+ ここをクリックして表示
何回目のBPM変化かと、そのタイミングでのムービー上での表示も併記しました。
赤文字だと表示より大きく、青文字だと表示より小さいです。
完全に同じなのは100と300のときだけです。

BPM変化回数 ムービーの表示 実際のBPM
0 100 100
1 101 101.124
2 102 102.273
3 104 104.651
4 106 105.882
5 107 107.143
6 108 108.434
7 110 109.756
8 111 111.111
9 112 112.5
10 114 113.924
11 115 115.385
12 117 116.883
13 118 118.421
14 119 120
15 122 121.622
16 123 123.288
17 124 125
18 127 126.761
19 128 128.571
20 130 130.435
21 132 132.353
22 133 134.328
23 136 136.364
24 138 138.462
25 140 140.625
26 143 142.857
27 144 145.161
28 147 147.541
29 149 150
30 152 152.542
31 154 155.172
32 157 157.895
33 160 160.714
34 163 163.636
35 165 166.667
36 166 163.636
37 167 169.811
38 168 166.667
39 169 169.811
40 172 173.077
41 175 176.471
42 179 180
43 182 183.673
44 186 187.5
45 187 183.673
46 188 191.489
47 189 187.5
48 190 191.489
49 191 187.5
50 192 195.652
51 193 191.489
52 194 195.652
53 195 191.489
54 196 195.652
55 197 200
56 198 195.652
57 199 200
58 202 204.545
59 203 200
60 204 204.545
61 206 209.302
62 207 204.545
63 208 209.302
64 212 214.286
65 217 219.512
66 218 214.286
67 219 219.512
68 221 225
69 222 219.512
70 223 225
71 228 230.769
72 229 225
73 230 230.769
74 233 236.842
75 234 230.769
76 235 236.842
77 240 243.243
78 242 236.842
79 243 243.243
80 244 250
81 245 243.243
82 247 250
83 248 243.243
84 249 250
85 252 257.143
86 253 250
87 254 257.143
88 255 250
89 256 257.143
90 259 264.706
91 260 257.143
92 261 264.706
93 262 257.143
94 263 264.706
95 268 272.727
96 269 264.706
97 270 272.727
98 276 281.25
99 277 272.727
100 278 281.25
101 279 272.727
102 280 281.25
103 283 290.323
104 284 281.25
105 286 290.323
106 287 281.25
107 288 290.323
108 293 300
109 294 290.323
110 296 300
111 299 290.323
112 300 300
113 301 310.345
114 302 300
115 305 310.345
116 306 300
117 307 310.345
118 314 321.429
119 315 310.345
120 316 321.429
121 317 310.345
122 318 321.429
123 321 310.345
124 322 333.333
125 323 321.429
126 326 333.333
127 327 321.429
128 328 333.333
129 329 321.429
130 330 333.333
131 338 346.154
132 339 333.333
133 340 346.154
134 341 333.333
135 342 346.154
136 351 360
137 352 346.154
138 353 360
139 354 346.154
140 355 360
141 356 346.154
142 357 360
143 364 375
144 365 360
145 367 375
146 368 360
147 369 375
148 372 360
149 373 375
150 378 391.304
151 379 375
152 382 391.304
153 383 375
154 384 391.304
155 386 375
156 387 391.304
157 397 409.091
158 398 391.304
159 399 409.091
160 400 391.304
161 401 409.091
162 402 391.304
163 403 409.091
164 405 391.304
165 406 409.091
166 413 428.571
167 414 409.091
168 417 428.571
169 418 409.091
170 419 428.571
171 420 409.091
172 421 428.571
173 423 409.091
174 424 428.571
175 434 450
176 435 428.571
177 437 450
178 438 428.571
179 439 450
180 440 428.571
181 441 450
182 442 428.571
183 443 450
184 447 428.571
185 448 450
186 453 473.684
187 454 450
188 458 473.684
189 459 450
190 460 473.684
191 461 450
192 462 473.684
193 463 450
194 464 473.684
195 465 450
196 466 473.684
197 469 450
198 470 473.684
199 478 500
200 479 473.684
201 482 500
202 483 473.684
203 485 500
204 486 473.684
205 487 500
206 488 473.684
207 489 500
208 491 473.684
209 492 500
210 495 473.684
211 496 500
212 505 529.412
213 506 500
214 509 529.412
215 510 500
216 512 529.412
217 513 500
218 514 529.412
219 515 500
220 516 529.412
221 517 500
222 518 529.412
223 520 500
224 521 529.412
225 524 500
226 525 529.412
227 535 562.5
228 536 529.412
229 539 562.5
230 540 529.412
231 542 562.5
232 543 529.412
233 544 562.5
234 545 529.412
235 546 562.5
236 547 529.412
237 548 562.5
238 549 529.412
239 550 562.5
240 552 529.412
241 553 562.5
242 556 529.412
243 557 562.5
244 569 600
245 570 562.5
246 573 573.451

この場合のBPM変化量の合計値は3452.357となり、BPM変化補正値は2.150……となる。
この値を使ってCHAOS値を計算すると22.85となるため、これが本当のBPM変化であると考えられている。
CHAOS要素値:255.33 * 2.15 = 548.9595
100秒当たりのCHAOS要素値:FLOOR( 548.9595 * ( 100 / 120[秒] ) ) = 457
CHAOS値:457 / 20 = 22.85



どうして本来と異なる形となっているのかは不明であるが、一応考察をしてみる。
上記のBPM変化回数は(最初の100は0回目としてカウントすると)246回である。
なんとなく8ビットの最大値である255に近い数だとは思われる。
もしかすると、DDRの譜面データではギミックに関するデータは固定長で持っており、255個または256個までしかBPM変化情報を持てなかったのこのような形になったのではないだろうか。

信じるか信じないかはあなた次第です。



近似がどれくらいあってるのか

1歩目からの経過時間を「ムービーに表示されている通りにBPM推移していた場合」と「正しいとされているBPM変化の場合」をExcelで計算し、
同一の拍での「正しいとされているBPM変化の場合」から「ムービー通り」の値を引くことで誤差を計算した。
その結果を図にしたものが以下。(クリックで拡大)

BPM150~180地帯はヤバいということと、220以降は基本的に「遅れていた分を取り戻すような形で近似している」ということが分かる。
(おそらく)制限があった中でBPM調整を行ったスタッフの苦労が偲ばれる。



補足

オリジナルのStepManiaバージョンではちゃんと1拍ごとにBPMが1上昇するようになっている。
なので、元からこのような奇妙なBPM変化はしていたわけではない。
また、オリジナル版での背景のBPMはLuaで行っている。


2024年06月12日より稼働したDDR WORLDではプレー中にスクロール速度が表示されるようになった。
その結果、BPMが1拍ごとに1上昇とはなっていないことの証明が為された。

つまり、本記事のアイデンティティが消失した。




最終更新:(2024/06/13)

タグ:

特殊記事 DDR
最終更新:2024年06月13日 16:41
添付ファイル

*1 DPには片側ショックアローでもう一方に通常矢印が置かれているパターンがあるため