プロジェクト

全般

プロフィール

機能 #162

完了

OBS連携機能

機能 #162: OBS連携機能

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

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

100%

予定工数:
(合計: 0:00時間)

説明

概要

beatoraja の配信支援機能。プレイ状況・リザルト・セッション統計を OBS のブラウザソースで表示できるオーバーレイ連携を提供する。

ブレストで固めた方針(2026-06-12)

対象ユースケース(優先)

  1. Now Playing 表示 — 選曲〜プレイ中の曲情報(タイトル/難易度/BPM 等)
  2. 直近リザルト表示 — 直前にクリアした曲のランプ/ランク/スコア/自己ベスト更新
  3. セッション統計 — 本日のプレイ曲数/クリア数/更新数など

ライブスコア(プレイ中のスコア/コンボを毎フレーム反映)は今回スコープ外。上記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


子チケット 4 (0件未完了4件完了)

機能 #181: 【OBS連携】Beatoraja本体側の機能完了いづ さん2026/06/12

操作
機能 #182: 【OBS連携】OBS側のHTMLファイル完了いづ さん2026/06/12

操作
機能 #185: 【OBS連携】心拍数表示完了いづ さん2026/06/13

操作
機能 #186: PLAYステート中にノーツレーダー出す完了いづ さん2026/06/14

操作

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