LiveSplitでゴールドスプリットを検出し、OBS WebSocket API経由でゴールド動画ソースの表示/非表示を自動制御するAutoHotkeyスクリプトです。
- LiveSplitのゴールドスプリット(セグメントベスト)を自動検出
- Best Segments比較を使用し、真のゴールド(区間ベストを超えた場合)のみを検出
- グリーン(マイナスデルタ)との誤検出を防止
- 検出時にOBS WebSocket API経由でゴールド動画ソースを直接表示/非表示
- 10秒後、自動的に非表示(SetSceneItemEnabledで直接制御)
- 10秒以内に次のゴールドが出た場合、自動的にリセット・再表示
- デバッグログ機能
- Windows 10/11
- AutoHotkey v2.0
- LiveSplit 1.8.36 以降
- OBS Studio
- LiveSplitを開く
- 右クリック →
Control→Start TCP Server- デフォルトでポート
16834が使用されます - サーバーが起動すると、メニューに
Stop TCP Serverと表示されます
- デフォルトでポート
- OBSを開く
ツール→obs-websocket設定を開くWebSocketサーバーを有効にするにチェック(ポートはデフォルトの4455)- パスワードを確認・メモする(デフォルトで自動生成されています)
LiveSplitGoldAlert.ini(exeと同じフォルダ)をメモ帳で開き、設定を記入[OBS]セクションのPassword: 手順2で確認したパスワードSceneName: ゴールド動画ソースが配置されているシーン名SourceName: 表示/非表示を切り替えるソース名- UTF-8で保存(日本語のシーン名/ソース名もOK)
LiveSplitGoldAlert.exeまたはLiveSplitGoldAlert.ahkをダブルクリック- 管理者権限での実行を許可
- スクリプトがバックグラウンドで動作開始
スクリプトが起動していれば、LiveSplitでゴールドスプリットが出た時に自動的に:
- OBS WebSocket経由でソースを表示(動画表示)
- ビープ音が鳴る
- 10秒後に自動的に非表示
- 現在の表示を一度非表示
- 再度表示
- 新しい10秒タイマー開始
| ホットキー | 機能 |
|---|---|
Ctrl+Alt+B |
ビープ音のON/OFF切り替え |
Ctrl+Alt+X |
スクリプト終了 |
INIの[General]セクションのDebugModeをtrueに設定すると、以下のテスト用ホットキーが有効になります:
| ホットキー | 機能 |
|---|---|
Ctrl+Alt+T |
手動でゴールド検出テスト |
Ctrl+Alt+V |
TCP接続テスト |
Ctrl+Alt+H |
OBS WebSocket接続・表示/非表示テスト |
Ctrl+Alt+L |
デバッグログをメモ帳で開く |
Ctrl+Alt+C |
デバッグログをクリア |
設定は exe と同じフォルダの LiveSplitGoldAlert.ini で変更できます(無い場合は初期値が使われます):
[LiveSplit]
Host = 127.0.0.1
Port = 16834
[OBS]
Host = 127.0.0.1
Port = 4455
; obs-websocket設定のパスワード
Password = password
; 動画が置かれているシーン名
SceneName = Game
; ゴールド動画ソース名
SourceName = GoldVideo
[General]
; チェック間隔(ミリ秒)
CheckInterval = 2000
; 自動非表示までの時間(ミリ秒)
AutoHideDelay = 10000
; ビープ音を鳴らすか
PlayBeepSound = false
; デバッグモード
DebugMode = false- 設定変更後はスクリプトを再起動してください
- ファイルが無い場合は、リリースに同梱の
LiveSplitGoldAlert.iniをコピーしてください - 注: ビープ音は実行中に
Ctrl+Alt+Bで切り替えることもできます
スクリプトはLiveSplitのBest Segments比較を使用してゴールド検出を行います:
- スプリット完了を検出(最終スプリット時間の変化)
- 現在のセグメントタイムを計算(現在のスプリット時間 - 前回のスプリット時間)
- Best Segmentsから該当セグメントのベストタイムを取得
- 現在のセグメントタイム < ベストセグメントタイムの場合、ゴールドと判定
ゴールドを検出すると、OBS WebSocket API(ポート4455)でゴールド動画ソースを直接表示します:
- WebSocket接続 → パスワード認証(SHA256チャレンジレスポンス)
GetSceneItemIdでソースのIDを取得SetSceneItemEnabledで表示/非表示を直接制御- 10秒後、自動的に非表示
これにより:
- 真のゴールドのみを検出(PBより速いだけのグリーンは検出されない)
- スクリプト再起動後も正確に動作(LiveSplitに保存されたデータを使用)
- ホットキー送信が不要(権限差・フォーカス・ポーリング取りこぼしの問題を回避)
- LiveSplit Serverが起動しているか確認
- INIの
[General]のDebugModeをtrueに設定してCtrl+Alt+Vでテスト可能
- INIの
- ポート番号が
16834になっているか確認 - LiveSplitにBest Segmentsデータが存在するか確認
- 最低1回は完走している必要があります
- デバッグログを確認
- INIの
[General]のDebugModeをtrueに設定してCtrl+Alt+Lでログを開く
- INIの
- OBS 28以上で実行しているか確認(それ以前はWebSocketプラグインの導入が必要)
ツール→obs-websocket設定でサーバーが有効になっているか確認LiveSplitGoldAlert.iniのPassword/SceneName/SourceNameが正しいか確認- WebSocket接続テスト
- INIの
[General]のDebugModeをtrueに設定してCtrl+Alt+Hでテスト可能
- INIの
- OBS WebSocket経由で直接非表示にするため、ホットキー設定は不要です
- 10秒後に自動的に同じソースを非表示にします
MIT License
azumag