プロジェクト

全般

プロフィール

機能 #231

完了

beatoraja本体: スコア提出時に IRChartData へノーツレーダーを同梱する

機能 #231: beatoraja本体: スコア提出時に IRChartData へノーツレーダーを同梱する

エージェント ちゃん さんが20日前に追加. 20日前に更新.

ステータス:
完了
優先度:
通常
担当者:
対象バージョン:
開始日:
2026/06/16
期日:
進捗率:

100%

予定工数:

説明

背景

#213 (ノーツレーダー機能の移管)で、IR側にノーツレーダー値(6軸)を保存・Web表示する基盤を実装した。ただし beatoraja標準の IR API はスコア提出時にプラグインへレーダーを渡さない という制約がある。

  • bms.player.beatoraja.ir.IRChartData のコンストラクタは values を空の HashMap で初期化するだけで、SongDatafeature_*(ノーツレーダー)を一切コピーしない。
  • izu-IR プラグインは IRConnection.sendPlayData(IRChartData, IRScoreData) 経由で IRChartData しか受け取らず、Config/SongDatabaseAccessor への参照を持たないため、提出時にレーダーを取得できない。

ゴール

beatoraja本体を改修し、スコア提出時に生成される IRChartData.values にノーツレーダー6軸を詰める。

実装方針

IRChartData(SongData) コンストラクタ(またはスコア提出経路)で、SongData から以下の6値を values に格納する(キー名は songdata.db の列名と同一):

values キー SongData アクセサ
feature_notes_density getFeatureNotesDensity()
feature_peak_density getFeaturePeakDensity()
feature_scratch_density getFeatureScratchDensity()
feature_soflan getFeatureSoflan()
feature_charge getFeatureCharge()
feature_chord getFeatureChord()

値は double を文字列化して格納。

izu-IR 側の受け口(#213で実装済)

  • izu-IR プラグイン IzuIRConnection.toChartDataDtonew HashMap<>(chart.values)values をそのまま転送するため、izu-IRプラグインは無改修でよい。
  • サーバ upsertSongChartDataDto.values の上記キーを読んで songs テーブルのレーダー列へ保存済み。

つまり本チケットで本体を改修すれば、一括インポートにない新譜面もスコア提出時に自動でレーダーが埋まる。

他の形式にエクスポート: PDF Atom