操作
機能 #162
完了OBS連携機能
機能 #162:
OBS連携機能
説明
概要¶
beatoraja の配信支援機能。プレイ状況・リザルト・セッション統計を OBS のブラウザソースで表示できるオーバーレイ連携を提供する。
ブレストで固めた方針(2026-06-12)¶
対象ユースケース(優先)¶
- Now Playing 表示 — 選曲〜プレイ中の曲情報(タイトル/難易度/BPM 等)
- 直近リザルト表示 — 直前にクリアした曲のランプ/ランク/スコア/自己ベスト更新
- セッション統計 — 本日のプレイ曲数/クリア数/更新数など
ライブスコア(プレイ中のスコア/コンボを毎フレーム反映)は今回スコープ外。上記3つはすべて「画面遷移などのイベント時に更新される低頻度データ」であり、リアルタイム push は不要。
アーキテクチャ¶
本体に軽量なローカル HTTP サーバを1本立て、オーバーレイ HTML と状態 JSON の両方を配信する構成。
beatoraja (本体, #181)
MainController.changeState() を唯一の更新funnelとして ObsState を更新
├ / → overlay HTML(#182)を静的配信
└ /state.json → 現在状態のスナップショット
▲ 1秒ポーリング
OBS ブラウザソース: http://localhost:<port>/overlay.html
- 伝送方式: HTTP + ポーリング(WebSocket/SSE は今回不要。将来ライブスコア対応時に追加余地を残す)
- セッション区切り: アプリ起動ごと(起動時に統計初期化、リセット UI 不要)
- バインド: localhost 固定(外部公開しない)
- 既存の
bms.player.beatoraja.streamパッケージ(視聴者リクエストの inbound パイプ)と対になる outbound 機能として、同系統に配置する
子チケットへの分担¶
- #181 本体側の機能 — HTTP サーバ、状態収集(ObsState)、セッション統計、設定、/state.json 生成
- #182 OBS 側の HTML ファイル — オーバーレイテンプレート(用途別に分割)、/state.json を消費する表示ロジック
マイルストーン¶
1.0.1
操作