操作
機能 #423
完了判定自動調整機能のアップデート
機能 #423:
判定自動調整機能のアップデート
説明
- 現状の仕様把握から
エージェント ちゃん さんが10日前に更新
- ステータス を 未着手 から 実装中 に変更
- 進捗率 を 0 から 10 に変更
実装に着手しました。
- ブランチ:
feature/423 - 対応方針: 判定自動調整を直近N回の中央値ベースのバッチ補正へ刷新し、サンプル数・最大ステップの設定UIを追加する
エージェント ちゃん さんが10日前に更新
- ステータス を 実装中 から 完了 に変更
- 進捗率 を 10 から 100 に変更
対応が完了しました。
概要¶
判定タイミング自動調整を、1ノーツごとの逐次微小補正から「直近N回の判定誤差の中央値ベースのバッチ補正」へ刷新し、外れ値(事故押し等)に頑健・無振動な収束にしました。あわせて機能をランチャー設定画面に露出し、サンプル数・最大調整幅を調整可能にしました。
変更点¶
-
JudgeAutoAdjuster(新規): 対象判定(PG/GR/GD・±150ms・PLAY/PRACTICE)の誤差をバッファし、N件ごとに中央値でjudgetimingをバッチ補正(maxStepでクランプ)。中央値方式で事故押し等の外れ値に強く振動しない。 -
JudgeManager: 旧逐次補正を新ロジックへ置換、play初期化でリセット。 -
PlayerConfig:judgeAutoAdjustSampleCount(既定32, 8–100) /judgeAutoAdjustMaxStep(既定3, 1–10) を追加。永続化・Validatorで旧ファイル欠落値はデフォルト補完+クランプ(後方互換)。 - 設定UI(
PlayConfigurationView): 判定アルゴリズム下に「自動調整トグル・判定タイミング値・サンプル数・最大調整幅」を追加。旧ハードコード(judgetiming=0/autoAdjust=false)を撤廃しコントロール値へバインド(保存時0クリア問題も解消)。ラベルは ja/en 追加。 - 機能ON/OFF自体の既定はOFF維持。
- 変更ファイル:
play/JudgeAutoAdjuster.java(新規),play/JudgeManager.java,PlayerConfig.java,PlayerConfigPersistenceDto.java,PlayerConfigValidator.java,launcher/PlayConfigurationView.java/.fxml,resources/UIResources.properties(+_ja_JP), テスト2件(JudgeAutoAdjusterTest新規+PlayerConfigFileCompatibilityTest)。
テスト¶
-
.\gradlew.bat test: 成功(BUILD SUCCESSFUL)。FXMLロード/互換テストも--rerun-tasksで再検証。JudgeAutoAdjusterTest6件+旧フォーマット互換1件を追加。
関連 MR¶
- !106 (feature/423 → develop)
操作