Repository navigation
Releases
LRCounter v0.3.2
For Beat Saber v1.39.1, v1.40.8, v1.44.1
1.44.1 に対応しました。
不具合修正
- Star 評価の取得が遅いと、序盤の左右の集計が消える問題を修正
- チェーンを逃すとミス音が何回も鳴り、低スコア音が鳴らなくなる問題を修正
- ScoreSaber のスコア一覧が取れなかったとき、PP 取得ラインがずれたままになる問題を修正
- NF でフェイルしたとき、片手ベストに保存される PP がずれる問題を修正
- 片手ベストの記録が消えたり壊れたりすることがある問題を修正
変更
- Slower Song のプレイは片手ベストに保存しないように変更
- MOD を無効にしたら、リザルト画面に表示しないように変更
- 設定ファイルに範囲外の値が入っていたら、正しい範囲に直すように変更
- BeatLeader のリプレイを判定できないとき、ログに警告を出すように変更
Full Changelog: v0.3.1...v0.3.2
LRCounter v0.3.1
For Beat Saber v1.39.1, v1.40.8
不具合修正
- ScoreSaber 3.4.0 以降で他の人のリプレイを再生すると片手ベストが更新されてしまう問題を修正
- リプレイ判定条件が不十分だった点を修正し、リプレイの検出精度を改善
- サウンド差し替え時に再生中の音が途中で切れる問題を修正
Full Changelog: v0.3.0...v0.3.1
LRCounter v0.3.0
For Beat Saber v1.39.1, v1.40.8
低スコア時に音を鳴らす機能は実用には微妙な段階ですが、解放漏れがまずかったので取り急ぎリリースします。
ミスやFail時に音を鳴らす機能はそれなりに使えると思っています。
LRCounter-0.3.0-bs1.39.1-1.40.8-3e0ac92.zip
※「Sound」フォルダにはサンプルサウンドを入れています
※一度起動すると作成される「UserData\LRCounter」に「Sound」フォルダごと入れてください
[変更点概要]
🔸テクスチャやスプライトの解放漏れがあり2時間以上のプレイで影響がでることがありましたので修正しました🙇♂️
Unityのオブジェクトは明示的に開放する必要がありました。
🔸MODの設定のサウンドタブから低スコア時、ミス時、Fail時に音を鳴らせる機能を追加しました。【おまけ機能】
左右それぞれにビープ音かカスタムサウンドを設定でき、低スコアやミスで左右の手に対応した側の音が鳴ります。
デフォルトのサウンドはすべてOFFになっています。
| 種類 | 鳴るタイミング | 左右の区別 | デフォルトの設定 |
|---|---|---|---|
| Drop Sound(低スコア音) | カットスコアがその手の平均より一定以上低いとき | あり | OFF(鳴らない) |
| Miss Sound(ミス音) | ミス・バッドカットのとき | あり | OFF(鳴らない) |
| Fail Sound(フェイル音) | 体力が0になった瞬間に1回だけ | なし | OFF(鳴らない) |
解放漏れ対策
- Texture2D / Sprite のリーク修正 — 以前は
ImageごとにTexture2D+Spriteを生成しており、曲ごとに解放されず積み上がっていました。1枚の共有スプライトにし、HideFlags.HideAndDontSaveを付けてシーン遷移でも壊れないようにしています。 - Canvas とイベントの解除 — 曲終了時に表示用 Canvas を破棄し、
OnPPUpdatedの購読を解除します。リザルト画面のテキスト・区切り線も破棄します。 - 設定タブの後始末 — メニュー終了時に
GameplaySetupから LRCounter タブを削除します。
性能対策
サウンド機能でフレームレートが落ちないよう、次の対策を入れています。
- クリップの事前生成(Prewarm) — 「左右 × 低スコア/ミス」の4枠+フェイル音のクリップを、選曲画面に入った時点で用意します。曲開始時にはすでに準備が終わっており、初回再生でのカクつきがありません。
- static キャッシュ — クリップと
AudioSourceは static に保持し、曲をまたいで使い回します。実際に生成・読み込みが走るのはゲーム起動後の初回と、設定を変更した直後の1回だけで、毎曲のコストにはなりません。設定変更のキーが変わったときだけ作り直します。 - カスタム音の非同期読み込み — 以前はメインスレッドを最大5秒
Thread.Sleepで止めていたため読み込みフレームが確実に飛んでいました。UnityWebRequest+ コルーチンで待つ方式に変更し、フレームを止めません。読み込み中はそのクリップだけ鳴らず、完了後から鳴り始めます。同じキーの読み込みは二重に走りません。 - AudioSource の常駐 —
DontDestroyOnLoadの独立 GameObject に持たせ、曲ごとの生成/破棄をなくしました(Canvas の子にすると環境によっては再生前に破棄される問題もあわせて回避)。 - 4枠を別ソースに分離 — 同じ手でミスと低スコアが同時成立しても、音量・ピッチ・パンが互いに上書きされません。
- 白スプライトの共有 — 表示側の
Imageは 1x1 の白テクスチャを1枚だけ共有します。以前はImageごとに別インスタンスだったため UI のバッチングが効かず、表示要素の数だけドローコールが増えていました。 - ScoreSaber データのキャッシュ — プレイヤーデータと譜面の Star 評価はセッション中キャッシュし、曲ごとの再取得を避けています。
- ビープ生成は軽量 — 約0.12秒・44.1kHz の正弦波を数千サンプル生成するだけです(クリックノイズ防止のフェード付き)。
設定項目
[Drop Sound]
| 項目 | 説明 | 範囲 / 既定 |
|---|---|---|
| On Low Score | 低スコア音のON/OFF | 既定 OFF |
| Score Drop | その手のカットスコア平均よりこの点数以上低いカットで鳴らす(例: 平均110・設定7 なら103未満で鳴る) | 0.5〜15 / 既定 5 |
| Score Escalation Window (notes) | 鳴りすぎ防止。低下がこのノーツ数以内に続くたび、閾値の倍率が x2 → x4 → x8 … と倍増する(上限 x1024) 音が鳴るのは倍率が x1 のときの低下だけ。難易度が高い譜面で鳴らないように調整。 | 1〜20 / 既定 5 |
| Score Recovery (notes) | 倍率を1段階戻すのに必要な「連続で安定したノーツ数」の基準。倍率が高いほど戻りにくい | 1〜20 / 既定 10 |
| Warmup Notes | 序盤は平均点が不安定なため、その手の合計ノーツ数がこの値に達するまで低スコア音を鳴らさない(0=無効)。ミス音には影響しない | 0〜50 / 既定 10 |
| On Miss | ミス音のON/OFF(ミスした手の音が鳴る) | 既定 OFF |
| Stop Miss Sound After Fail | フェイル後はミス音を鳴らさない。NFで走り続けるとき鳴りっぱなしになるのを防ぐ | 既定 ON |
| Stereo Pan (L/R Ear) | 左手の音は左耳だけ、右手の音は右耳だけに鳴らす | 既定 ON |
[Left Hand] / [Right Hand](低スコア音の左右設定)
| 項目 | 説明 | 範囲 / 既定 |
|---|---|---|
| Left / Right Sound | 再生するサウンド(beep またはカスタムファイル) |
既定 beep |
| Left / Right Beep (Hz) | ビープ周波数。beep 選択時のみ有効 |
0〜10000(50刻み)/ 左 850・右 500 |
| Left / Right Pitch | 再生ピッチ | 0.5〜2.0 / 既定 1.0 |
| Left / Right Volume | 音量 | 0〜1 / 既定 1.0 |
[Miss Sound]
低スコア音とは完全に独立した音を左右それぞれに設定できます。項目は Sound / Beep (Hz) / Pitch / Volume で同じ構成です。既定はビープ周波数が左右とも 250Hz(低スコア音と聞き分けられるよう低め)、ピッチは左 1.2・右 1.0 です。
[Fail Sound]
| 項目 | 説明 | 既定 |
|---|---|---|
| Fail Sound | フェイル時に1回だけ鳴るサウンド。UserData/LRCounter/Sound の自前サウンドのみ選択可 |
空欄(鳴らさない) |
テスト再生
タブ下部のボタンから、現在の設定のまま音を確認できます。
Test Left/Test Right— 低スコア音Test Miss L/Test Miss R— ミス音Test Fail— フェイル音
Full Changelog: v0.2.0...v0.3.0
LRCounter v0.2.0
For Beat Saber v1.39.1, v1.40.8
LRCounter-0.2.0-bs1.39.1-1.40.8-3190522.zip
■変更点
・SSまたはBLのリプレイ機能で、他の人のリプレイを再生したときに片手ベストを更新しないように修正しました。
※自分のリプレイを再生したときに片手ベストが更新されるのは残しました。
・精度バーの下に片手ベストの精度を表示するようにしました。
※Hand Best Labelの設定で表示・非表示が切替えられます。

・環境オーバーライドの譜面でも、スケールを固定にするようにしました。
※Fixed Placementの設定でHUD追従に戻せます。
Full Changelog: v0.1.0...v0.2.0
LRCounter v0.1.0
For Beat Saber v1.39.1, v1.40.8
LRCounter-0.1.0-bs1.39.1-1.40.8-aaa1845.zip
初回リリース。
Full Changelog: https://github.com/Buri28/LRCounter/commits/v0.1.0