ビートセイバー 1.20.0で新しく追加されたチェインとアーク。今回はこれについていろいろと調べてみましょう。
ちなみにチェインというのは、ノーツが短冊状になって連なる形。
アークというのは、ノーツ間をつなぐ紐のようなものをさします。
まず、いちばん気になるスコアについてです。
チェイン
先頭ノーツ: 中心点0~15、カット前角度点0~70、カット後角度点0
短冊ノーツ: 中心点なし、角度点なし、固定20
チェインの先頭、上半分になったノーツにはカット後角度がありません。つまり単体での最大スコアは85、ということになります。また残りの短冊部分のスコアは1つあたり20、当たれば常に20で、中心点や角度点はありません。例えば、先頭+短冊4のセットを切った場合は、最大で85+20+20+20+20=165ということになります。
アーク
先頭ノーツ: 中心点0~15、カット前角度点0~70、カット後角度点30固定
末尾ノーツ: 中心点0~15、カット前角度点70固定、カット後角度点0~30
アークの紐自体には点数はありませんが、アークがくっついているノーツの点数計算が通常とは異なります。アークが始まる先頭ノーツでは、カット後の角度点が満額の70入ります。またアークの末尾ノーツでは、カット前の角度点が満額の30入ります。アークの場合、振り切ることよりもゆっくり弧を描いて欲しい、という調整でしょうか。
ノーツを切ったときに回復するエネルギー(体力)や、ノーツを空振りしてミス(通過)したり、違う色、角度で切ってバッドカットになったときの減少についてです。Fail(ゲーム失敗)になるときの値を0、これ以上増えない最大値を1として、以下のようになっています。
通常ノーツ、チェインの先頭ノーツ
グッドカット: +0.01
バッドカット: -0.1
ミス: -0.15
チェインの短冊ノーツ
グッドカット: +0.002
バッドカット: -0.025
ミス: -0.03
ボム
バッドカット: -0.1
ウォール
接触中、1秒あたり-1.3
アーク
とくに関係なし
チェインの短冊部分に関しては、扱いが1/5?と思いきや、バッドカットのときだけ1/4?とにかく、普通のノーツよりは軽い扱いになっています。これはちょっと助かりますね。通常のランク譜面によくあるスライダーをまとめて空振りしてしまうと一気に-0.45食らうのは厳しいと思ってました。
それでは当たり判定はどうなっているでしょうか。詳細は下記記事にありますが、ノーツの当たり判定は、グッドカット用とバッドカット用の2種類あります。
これはNalulunaHitboxで可視化されたノーツの当たり判定。
通常ノーツ
大判定: 縦 50cm 横 80cm 奥行き 100cm (判定中心は、ノーツ中心の25cm手前)
小判定: 縦 36cm 横 36cm 奥行き 36cm
チェインの先頭ノーツ
大判定: 縦 50cm 横 80cm 奥行き 100cm (判定中心は、ノーツ中心の25cm手前)
小判定: 縦 36cm 横 36cm 奥行き 36cm
チェインの短冊ノーツ
大判定: 縦 20cm 横 80cm 奥行き 116cm (判定中心は、ノーツ中心の33cm手前)
小判定: 縦 10cm 横 36cm 奥行き 36cm
チェインの先頭ノーツは見た目は縦半分になっていますが、当たり判定は通常ノーツと同じ大きさのようです。一方、短冊のほうは、通常ノーツより奥行きの判定が大きくなっていますね。チェイン部分の振りが速くても遅くても全部取れるように、という配慮なんでしょう。
最後に、内部ではこのチェインとアークがどのようなデータで表現されているかみてみましょう。譜面データをエクスポートするmodを作って「Final-Boss-Chan (Expert+)」の中身をのぞいてみました。
この図の7行目が、Final-Boss-Chan (Expert+) の冒頭 3.35 秒から始まるアークです。ここから以下のようなことがわかります。
- 3.35 秒にはNoteData(ノーツ)とSliderData-Normal(アーク)がある
- このSliderDataには、次の同色(ColorB)NoteDataの 4.84 秒が終わりと指定
- 開始位置と終了位置も、それぞれ対応するNoteDataと一致するよう指定
どうやらアークは、つながっているノーツに情報がついているわけではなく、アーク自体が単体の要素として存在しているようです。譜面では、ノーツ位置とは関係なしに配置することも可能かもしれません(実際にそういう譜面データを作成して、ゲーム内でアークが表示されるかどうかはまた別の問題ですが)。
この図の88行目が、Final-Boss-Chan (Expert+) の 17.8 秒から始まるチェインです。上記のチェイン画像をもう一度貼りますが、この行はこの画像の部分に該当します。
ここから以下のようなことがわかります。
- 17.79 秒にはNoteData(ノーツ)とSliderData-Burst(チェイン)がある
- このNoteDataはBurstSliderHead、チェインの頭になるよう指定されている
- このSliderData-Burstは要素数が5つ
- SliderData-Burstに開始時間、位置と終了時間、位置が指定されている
チェインの場合、NoteDataとSliderData-Burstの2行だけで一連のセットを表しており、短冊状のひとつひとつを表す行は存在しないようです。要素数と時間、開始位置と終了位置が入っているので、短冊はこれをもとに生成、配置されるようですね。
NoteDataには、これがチェインの頭(BurstSliderHead)、という指定がされており、これによって、上半分だけの形をしたノーツが出てくるようになっています。
コードを追っていくと、譜面上でBurstSliderHeadの指定を忘れていた場合も、SliderData-Burstの開始と同時間、同位置にNoteDataがあった場合は、自動でBurstSliderHead(上半分ノーツ)化するようになっていました。
今回のビートセイバーのアップデートでは、ゲームシステム自体に新要素が入ったため、modも対応もけっこう大変になりました。ひとつひとつ、譜面データの項に書いたようなことを調べて、対応していくような作業になります。そんなわけで、毎月お届けしている記事も遅れに遅れて月末になってしまいました。もし待っておられた方がいらっしゃったらごめんなさい!楽しんでいただけたら幸いです!