XaiJu
nalulululuna
nalulululuna

fanbox


カット音 (キー音) (ビートセイバー豆知識)

ビートセイバーでノーツを切ると「しゅぱーん」というカット音が鳴りますよね。音ゲー界隈では「キー音」と呼ばれるようです。今回はこれについて書いてみます。

キー音

音ゲーでは、操作を行ったときに、キー音が鳴るものと、鳴らないものがあります。音が鳴るほうが、自然にリズムに合わせて演奏している雰囲気が得られるはず、と思いがちですが、実際はこのキー音をリズムに合わせるのは難しい部分があります。


というのも、押したら音が鳴るボタンがゲーム内にあったとして、実際に音が聞こえるまでには、様々な処理を経由する必要があり、叩いた瞬間に音が鳴る楽器のようにはいかない部分があります。


1. 人間がボタンを押し始める

2. ボタンの押下量が入力閾値を超える

3. OS(ドライバー)が入力を認識する

4. ゲームが入力を認識して、効果音を流し始める

5. 効果音を他に同時再生されている音とミキシング、エフェクト処理

6. すべて合成された音をOS(ドライバー)が再生デバイスへ送る

7. 再生デバイスで受け取った音を D/A 変換

8. アンプなどを通って、スピーカーやヘッドホンで聞こえる音になる


まず 1, 2 の僅かなタイミングの差で、感覚がずれる可能性があります。また、2, 3 の入力発生までの遅延や、6, 7 の発声処理から実際にアナログ信号が出るまでの遅延は、OS やハードウェアの違いで差が出てくる部分です。


この結果、押した瞬間には音が出ず、効果音が遅れて出てしまうことで、リズム感を損なう結果になる場合もあります。これを嫌ってか、キー音をなしにするリズムゲームも存在する状況です。

ビートセイバーのカット音

それでは、ビートセイバーのカット音はどうなっているのでしょうか?


すぐに答えを書いてしまいますが、ビートセイバーのカット音は切るタイミングに関係なく鳴ります。たとえばノーツが曲開始から 1.0 秒のところに置いてあった場合、早めに 0.9 秒のところで切っても、遅れて 1.1 秒のところで切っても、きっちり 1.0 秒のタイミングで音が鳴ります。


そんなバカな…、1.1 秒のところで切るなら、1.0 秒の時点ではまだノーツが切られるかミスするかわからないんだから、そのタイミングでカット音なんて出せない、と思うかもしれません。そうなんです。ビートセイバーは空振りしても、ミスが確定するまではカット音を流します。


試しに、音楽を無音にした譜面で全部空振りしてみた動画です。ちゃんとカット音鳴ってますよね?


カット音の内部処理

ビートセイバーでは、ノーツが出現した時点で、AudioSource-PlayScheduled という命令で、各ノーツに譜面で設定された切られるべき時間に、グッドカットの音を再生するよう予約がなされます。


ここですこし早めのタイミングでノーツを切った場合でも、切った瞬間には音が鳴らず、予約した時間になって初めて、グッドカットの音が鳴ります。


逆に、まだノーツを切っていないのに、予約した時間が来てしまった場合、とりあえずグッドカット音を流し始めます。この場合、グッドカット音の音量はセイバーの速度に依存します。つまり、セイバーを振っていればノーツに当たらなかったときもグッドカット音は鳴りますが、セイバーをまったく振らなかったり、床に置いたままだったりしたときは、音は聞こえません。


このグッドカット音が流れている最中に、セイバーでノーツを切った場合、グッドカットであれば、以降はグッドカット用の音量固定での音を再生し続けます。一方、バッドカット (セイバーとノーツの色違い) の場合は、その瞬間にグッドカット音の再生は終わり、バッドカット音が再生されるようになります。


たまに、NoodleExtensions 譜面で、切っても音が鳴らないノーツに遭遇することがありますが、これは譜面に設定されているノーツの切られるべき時間と、実際のノーツ位置 (移動の仕方) が一致していない場合に起こります。NoodleExtensions ではノーツの動きを、譜面のノーツ時間とは関係なく動かすことが可能なため、このような現象が発生する場合もあります。


あとは、ノーツが同時に 65 個以上出現しているときは、(ノーツ時間が一番若い) ノーツのカット音の再生や再生予約が停止されます。ポールノーツ (プードル) 譜面で、カット音が鳴ったり鳴らなかったりするのは、この制限のためでしょう。

もっと厳密には

上ではわかりやすくするため「各ノーツに譜面で設定された切られるべき時間」に再生予約される、と書きましたが、実際は、音声処理の遅延分とカット音のイントロの長さを考慮して、ノーツ時間より約 0.2 秒早くに再生が始まります。また、音のレイテンシ設定をしていれば、さらにその分の調整も入ります。


どういうことかというと、カット音は「しゅぱーん」という音が鳴りますが、この「ぱ」のところでノーツが切れるよう、「しゅ」の部分 (0.185 秒) を先に再生を始めておこう、という意図の処理になってます。


もし HitSoundChanger mod でカスタムのグッドカット音を作るときは、0.185 秒のところがカット音になるよう作ると良いと思います。なお、バッドカット音は、普通に切った瞬間から再生を始めるので、開始の 0 秒がカット時の音になります。

カット音をカットしたときに鳴らす

上の行、なんだか当たり前のことを書いているようですが、現状はカットしたときと関係なく鳴っているので…。普通の?音ゲーと同じように、カットした瞬間に音を再生する仕様に変える mod を作ってみました。



ううーん…、カット音がリズムと合っておらず、わたしのリズム感のなさを露呈しています。わたし、他のキー音がある音ゲーやってもこんな感じで、いつもなんか合わなくて、もやもやしてしまいます。


前述したように、この仕様の場合、カット前から音を鳴らし始めることはできず、「しゅぱーん」の前半 0.2 秒「しゅぷ」あたりの音がなくなるので、若干、オリジナルのカット音と変わってしまうのは、仕方のない部分です。


みなさんも試せるようにこの mod を置いておきます。ビートセイバーのデフォルト仕様とくらべてどう思います?


(追記)

下記の mod の機能は NalulunaCutTimeBar に統合されました。こちらをお使いください。下記は現在動作確認していませんし、今後の更新予定もないため非奨励です。


CutSoundMod 0.0.2 for Beat Saber 1.21.0

CutSoundMod-0.0.2-bs1.21.0

0.0.2

- 正常に鳴らない場合がある不具合を修正

カット音 (キー音) (ビートセイバー豆知識)

Comments

こちらにもコメントありがとうございます。この仕様に気が付かない人も多いと思うので、それだけ自然だってことでしょうね。

なるるるるな / NALULUNA

誰がプレイしても違和感出ないようにしてるんだなぁってすっごい納得しちゃいました。

アノン

空振り動画はなんか謎のダンスしてる人みたいで、はずかしい…。たしかにその状況では気づきやすいかもしれませんね。

なるるるるな / NALULUNA

早速modを試してくださってありがとうございます。動作したようで良かったです。公式の効果音はあらかじめイントロ部分が入っているのでStart Timeの調整が必要かな、と思いました。わたしはリズム感ないので、公式の仕様のほうがやってて気持ちがいいですね。

なるるるるな / NALULUNA

空振り動画かわいい。 ちょうどこの間壁譜面をNFオンにしてしゃがんで鑑賞してたとき、 当たってないのになぜかカット音聞こえたのこれのせいだったんですねー。 録画見返したら確かにそのときセイバー動かしてました、なるほど。

小一時間遊んでみて、リズムはさほど狂わないもののカット音の遅延がスコアに若干響いてる感じです。その遅延も長時間やるのは厳しいかと思いきや、何曲かやれば結構慣れてきますね このmodは左右同時にノーツが来た際に普段はカット音が重なって1つしか鳴らないところで2つ聞こえたり、集中が切れた際にそれを認識し易いのが素敵。正直でよろしい、という感想。上達にはアリかも 豆知識の記事の最後に置いてあるので実験的なmodだろうと思い、元に戻すにはjson編集かいったん削除かな、と思っていたら丁寧にmodのメニューが作られていました。素晴らしい。個人的にPlay Start Timeは遅延があっても0.00にした方が遊びやすかったです そしてもう一度公式の仕様でプレイしましたが、タイミング良く音を出すことでやってる感を演出してプレイヤーが気持ちよく遊べるよう配慮された優れた設計だと思いました

JAN


More Creators