プロジェクト

全般

プロフィール

機能 #186

完了

機能 #162: OBS連携機能

PLAYステート中にノーツレーダー出す

機能 #186: PLAYステート中にノーツレーダー出す

いづ さん さんが22日前に追加. 22日前に更新.

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

100%

予定工数:

説明

Beatoraja画面の右下あたりなら被ってても影響ない。(紫ボックスのあたり)
ノーツレーダーのデザインはゲーム内と同じ感じでいいが、既存OBS用パーツに寄せたほうがより良い。

また、各軸の値も表示できるとよい



ファイル

clipboard-202606141017-nurj6.png (60.2 KB) clipboard-202606141017-nurj6.png いづ さん, 2026/06/14 10:17
design.jpg (148 KB) design.jpg いづ さん, 2026/06/14 10:19
clipboard-202606141017-nurj6.png
design.jpg

関連するチケット 1 (1件未完了0件完了)

関連している Ferrhythm - 機能 #369: 【OBS連携】Beatoraja本体側の機能の移植未着手いづ さん2026/06/21

操作

いづ さん さんが22日前に更新 操作 #1

いづ さん さんが22日前に更新 操作 #2

いづ さん さんが22日前に更新 操作 #3

  • ファイル design.jpg を追加
  • 説明 を更新 (差分)

いづ さん さんが22日前に更新 操作 #4

  • ファイル を削除 (design.jpg)

いづ さん さんが22日前に更新 操作 #5

design.jpg

エージェント ちゃん さんが22日前に更新 操作 #6

  • ステータス未着手 から 実装中 に変更
  • 進捗率0 から 10 に変更

エージェント ちゃん さんが22日前に更新 操作 #7

Started. branch=feature/186-notes-radar

エージェント ちゃん さんが22日前に更新 操作 #8

Done, review PASS. commit 78b224c9. Backend radar in state.json + OBS hexagon overlay.

エージェント ちゃん さんが22日前に更新 操作 #9

実装完了(レビュー PASS): ノーツレーダー表示

選曲中/プレイ中に、選択譜面の 6 軸ノーツレーダーを OBS オーバーレイ右下へ表示する機能を実装しました。

  • ブランチ: feature/186-notes-radar(commit 78b224c9
  • 本体側: ObsStateSongData.getNotesRadarFeature() の 6 軸(NOTES/PEAK/SCRATCH/SOF-LAN/CHARGE/CHORD)を /state.jsonradar に出力。各軸 0〜200 を小数点 2 桁・[0,200] クランプ、曲なし/全軸 0 のときは null。ロケール非依存で出力。
  • OBS 側: obs/overlay.{html,css,js}#notesradar ブロックを追加。六角形レーダー(軸配置はゲーム内 SkinRadarChart と一致、NOTES が上で時計回り)+各軸数値を表示。リザルトでは非表示、配色は既存 OBS パーツに準拠。README.md / state.sample.json も更新。
  • テスト: xvfb-run -a ./gradlew test --tests "*ObsState*" 成功(ObsStateRadarTest 5 件 + ObsStateHeartRateTest 4 件)。overlay.js 構文 OK、state.sample.json 妥当な JSON。

MR 作成はご指示待ちです(許可いただければ feature/186-notes-radar → develop で作成します)。

エージェント ちゃん さんが22日前に更新 操作 #10

修正: 配置調整と MUSIC SELECT 中のレーダー更新

レビュー指摘 2 点を対応(commit 2501604a)。

  • 配置: ノーツレーダーブロックの右下を #stage(ゲーム画面フレーム)の右下に揃えた(従来はフレーム下にはみ出していた)。bottom: calc(98.5vh - 46.125vw) でステージ枠の寸法に追従。
  • MUSIC SELECT 中の更新: 選曲カーソルが曲に移るたびに MusicSelector.render() から ObsController.onSongSelected() でハイライト曲を ObsState に反映。約 1 秒のポーリングで OBS 側に反映され、選曲中もカーソル中の譜面のレーダーが表示される(変化時のみ push、フォルダ上では直前曲を維持)。これに伴い nowplaying バーも選曲中にカーソル追従する(#182「選曲〜プレイ中の曲情報」の意図に沿う)。

xvfb-run -a ./gradlew compileJava test --tests "*ObsState*" 成功。

いづ さん さんが22日前に更新 操作 #11

  • 対象バージョン1.0.1 にセット

エージェント ちゃん さんが22日前に更新 操作 #12

不具合修正: RESULT 中のレーダー残留・中央フラッシュ

レビュー指摘 2 点を修正(commit 01b4ceb0)。両症状は同一原因でした。

原因: リザルト遷移時、MusicResult.create() 内の onResultScore() が phase="result" を設定したに、changeStatecase RESULT -> onResult()setNowPlaying()(phase="select" を強制)を呼び、result フェーズを select に上書きしていた。このため /state.json の phase が "select" のままになり、(1) ノーツレーダー/nowplaying がリザルト中も残る、(2) 中央の result ブロックが一瞬出て消える(フラッシュ)が発生(#182 以来 result オーバーレイが実質機能していなかった)。

修正(本体側のみ・Codex 実装→Claude レビュー):

  • ObsState.enterResult() を追加(phase を result にするだけで nowPlaying/lastResult/radar/heartRate/session/history は保持)。
  • ObsController.onResult()setNowPlaying(...) から enterResult() に変更。onResultScore がセットした result フェーズが維持され、レーダー/nowplaying は body.phase-result で非表示、result ブロックは正しく表示され続ける。
  • 回帰防止テストを ObsStateRadarTest に追加。

テスト: xvfb-run -a ./gradlew compileJava test --tests "*ObsState*" 成功。

エージェント ちゃん さんが22日前に更新 操作 #13

MR 作成

実装完了。MR を作成しました(レビュー待ち)。

承認・マージ後にステータスを 完了 へ移します。

エージェント ちゃん さんが22日前に更新 操作 #14

  • ステータス実装中 から 完了 に変更
  • 進捗率10 から 100 に変更

対応が完了しました。

概要

OBS 連携オーバーレイに、選曲中/プレイ中の譜面のノーツレーダー(6 軸)と各軸数値を画面右下に表示する機能を追加。あわせてリザルト周りの表示不具合を修正し、本体リザルト画面と重複する result ブロックを撤去した。

変更点

  • ノーツレーダー(本体 + OBS): ObsState が 6 軸(NOTES/PEAK/SCRATCH/SOF-LAN/CHARGE/CHORD・各 0〜200 小数 2 桁)を /state.jsonradar に出力。OBS 側 #notesradar に六角形チャート(ゲーム内 SkinRadarChart と同軸配置)+数値を表示。
  • 表示フェーズ: 選曲・プレイ中は表示、リザルトは非表示。
  • 配置: レーダー右下をゲーム画面フレーム右下に整列。
  • 選曲カーソル追従: MusicSelector.render()ObsController.onSongSelected() でハイライト曲を反映(変化時のみ push)。
  • リザルト不具合修正: onResult() が phase=result を select に上書きしていた問題を ObsState.enterResult() で解消(レーダー残留・中央フラッシュを修正)。
  • result ブロック撤去(本体リザルト画面で十分なため)。

テスト

  • xvfb-run -a ./gradlew test : 成功(ObsStateRadarTest 追加分含む全緑)

関連 MR

  • !28 (feature/186-notes-radardevelop) マージ済み(merge commit a76036f3)

補足

  • backend は lastResult を引き続き /state.json に出力(OBS 側未使用のデッドデータ)。撤去要否は別途判断。

いづ さん さんが15日前に更新 操作 #15

  • 関連している 機能 #369: 【OBS連携】Beatoraja本体側の機能の移植 を追加

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