Contents
OBS のシーンとトランジション基礎知識
配信画面は「シーン」単位で構成され、シーンごとに映像ソースや音声ソースを自由に組み合わせられます。視聴者へ見せるレイアウトを瞬時に切り替えるためには、シーン名とトランジションの管理が鍵となります。本節では「シーン命名規則」と「トランジション統一」の2点に絞って解説します。
シーンの構成と命名規則
シーンはプラグインやスクリプトから文字列で参照されるため、名前が一定のルールに従っていると自動化が格段に楽になります。
- 英数字+アンダースコア(例:
Scene_01_Intro) - 先頭にカテゴリを付与(
Intro_,Live_,BRB_など) - 連番で順序付け(
Scene_01_Intro,Scene_02_Game,Scene_99_End)
このように統一した命名規則を採用すると、Python の変数名や OBS のホットキー設定と自然に対応でき、誤切替えリスクが低減します。
トランジションの統一管理
トランジションはシーン間の演出であり、手動・自動どちらでも同じ演出を使いたい場合があります。Transition Table プラグイン(Advanced Scene Switcher の「Transition」タブから有効化)を利用すれば、シーンごとにデフォルトトランジションを設定でき、手動切替でも自動切替でも同一演出が適用されます。
- Fade:柔らかいフェードイン/アウト
- Cut:瞬時のカット(デフォルト)
- Slide:横方向スライド
トランジションは「シーン名」と対にして管理すると、スクリプト側でも SetCurrentSceneTransition を呼び出すだけで統一できます。
標準ホットキーでできるシンプル自動化
OBS の標準機能だけでも十分にシーン切替が可能です。ここではホットキー設定手順と、外部ツールとの組み合わせ例を紹介します。
ホットキー設定手順
以下の操作で任意のキーコンビネーションにシーン切替を割り当てられます。
- [ファイル] → [設定] → [ホットキー] を開く。
- 「シーン切替」一覧から対象シーン(例:
BRB_01_Pause)を選択し、希望のキーを入力する。 - [適用] → [OK] で設定を保存しウィンドウを閉じる。
この手順だけで「Ctrl + Alt + B」でブレイク画面へ即座に遷移できます。
外部ツールとの連携例
ホットキーは外部アプリからキーボード入力をシミュレートするだけでも利用可能です。代表的な組み合わせは次のとおりです。
- Windows タスクスケジューラ:
nircmd sendkeypress ctrl+alt+bを配信開始 5 分後に実行 - AutoHotkey:以下のスクリプトで 10 分ごとに
BRB_01_Pauseを表示
|
1 2 3 4 5 |
SetTimer, ShowBRB, 600000 ; 10 分 (ms) ShowBRB: Send ^!b ; Ctrl+Alt+B return |
外部ツールはキー送信だけを行うため、OBS 側の追加設定は不要です。手軽に始められる点が大きなメリットとなります。
Advanced Scene Switcher プラグインの活用
複数条件で自動切替えしたい場合は Advanced Scene Switcher が便利です。本節ではインストール方法と主要設定項目を解説し、参考情報にも触れます。
インストールと有効化(フォルダー指定付き)
- 公式サイトから zip ファイルをダウンロードする。
- Windows:
C:\Users\<ユーザー名>\AppData\Roaming\obs-studio\pluginsに解凍 → フォルダー構成はobs-plugins/64bit/の下にAdvancedSceneSwitcher.dllがあることを確認。
macOS:/Library/Application Support/obs-studio/pluginsに同様に配置。
Linux:$HOME/.config/obs-studio/pluginsに解凍。 - OBS を完全に終了し、再起動する(プラグインのロードが必要)。
- メニュー [ツール] → [Advanced Scene Switcher] が表示されたら有効化完了です。
参考:kurocha.jp の解説(閲覧日 2026‑04‑30)では「シーン名と条件を分かりやすく管理できる」点が評価されています。
主な設定項目
General タブ
- 配信時間、ウィンドウタイトル、音声レベルなど複数条件の組み合わせでルール作成が可能です。例:ゲームプロセスが起動したら
Live_Gameに切替。
Transition タブ
- 自動切替時に使用するトランジションをシーン単位で指定できます。手動切替はデフォルト設定が適用されるため、Transition Table を併用すると統一感が保てます。
Schedule タブ(時刻ベース)
- 「10:00 AM に
Intro→ 10:05 AM にLive_Game」といったスケジュールを設定できます。
参考:dev.classmethod.jp の実装例(閲覧日 2026‑04‑28)では、obs‑websocket と組み合わせた自動配信フローが紹介されており、スケジューラと同時に WebSocket 呼び出しを行う方法が示されています。
obs-websocket と Python で高度な自動切替
プラグインだけでは実現できない柔軟なロジックは、obs‑websocket とスクリプトで構築します。ここではインストール手順と実用的なサンプルコードを提示します。
インストール手順(OS 別詳細)
- OBS 28 以降 は標準搭載ですが、古いバージョンの場合は以下の手順で追加します。
- Windows:
C:\Program Files\obs-studio\bin\64bitにobs-websocket.dllが無ければ、公式 GitHub の Release から zip をダウンロードしobs-plugins/64bit/に配置。 - macOS:
/Applications/OBS.app/Contents/Resources/obs-plugins/64bitに同様にコピー。 - Linux (Ubuntu):
sudo apt install obs-websocketでパッケージをインストール、もしくは手動で/usr/lib/obs-plugins/配下へ配置。 - OBS を再起動し、メニュー [ツール] → [obs‑websocket] から設定画面を開く。ポート(デフォルト 4455)と任意の認証トークンを入力し [OK]。
※プラグイン配置先は「OBS のプラグインフォルダー」を直接開くことで確認できます(メニュー → ツール → プラグインフォルダーを開く)。
Python サンプルコードと使い方
以下のスクリプトは obs-websocket-py ライブラリでシーン切替とトランジション指定を行います。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# switch_scene.py import sys import asyncio from obswebsocket import obsws, requests HOST = "127.0.0.1" PORT = 4455 PASSWORD = "YOUR_TOKEN_HERE" # 設定した認証トークンを記入 async def main(): if len(sys.argv) < 2: print("Usage: python switch_scene.py <SceneName> [Transition]") return scene_name = sys.argv[1] transition = sys.argv[2] if len(sys.argv) > 2 else None ws = obsws(HOST, PORT, PASSWORD) try: ws.connect() if transition: ws.call(requests.SetCurrentSceneTransition(transition)) ws.call(requests.SetCurrentProgramScene(scene_name)) print(f"✅ {scene_name} に切替えました (Transition: {transition or 'default'})") except Exception as e: print(f"❌ エラー : {e}") finally: ws.disconnect() if __name__ == "__main__": asyncio.run(main()) |
実行例
|
1 2 |
python switch_scene.py Live_Game Fade |
Live_Gameシーンへ Fade 演出で遷移- トランジションを省略するとデフォルト(Cut)が適用されます
このスクリプトはバッチや cron と組み合わせて、配信開始直後に自動的にイントロシーンを表示したり、一定時間ごとにブレイク画面へ切替えるといった高度な制御が可能です。
実運用のベストプラクティス
本番環境で安定して自動化を走らせるためには、ジョブ管理・エラーハンドリング・命名規則の徹底が不可欠です。以下に具体的な手順とチェックポイントをまとめます。
ジョブ管理(タスクスケジューラ / cron)
Windows タスクスケジューラ
- 「タスクの作成」 → 名前
OBS Auto Switchを入力。 - トリガーで「毎日」+開始時刻を設定。
- 操作に
python "C:\scripts\switch_scene.py" Live_Game Fadeを登録。 - 「条件」タブの「ネットワークが利用可能なときのみ実行」のチェックを外し、OBS が起動していなくてもスクリプトが待機できるようにする。
Linux cron
|
1 2 3 |
0 18 * * * /usr/bin/python3 /home/user/switch_scene.py Live_Game Fade \ >> /var/log/obs_switch.log 2>&1 |
上記は毎日 18:00 に Live_Game シーンへフェード遷移し、ログを残します。
よくあるエラーと対処法
| エラー | 主な原因 | 推奨対策 |
|---|---|---|
| 接続失敗 (404) | obs‑websocket が無効、またはポート番号が不一致 | OBS の [ツール] → [obs‑websocket] でプラグイン有効化とポート確認 |
| 認証エラー | トークン未設定または誤入力 | 設定画面のトークンをコピーし、スクリプトの PASSWORD に正確に貼り付け |
| プラグイン競合 | 複数のシーン切替系プラグインが同時に動作 | 使わないプラグインは無効化し、ログで重複ルールを削除 |
| Transition が無視される | Advanced Scene Switcher の「Transition」タブで自動専用設定になっている | Transition Table を有効化して手動切替でも同一演出を適用 |
命名規則と Transition Table の活用
- 命名例:
Scene_01_Intro,Scene_02_Live,Scene_99_End(数字で順序付け) - Transition Table 設定手順
- Advanced Scene Switcher → Transition タブを開く。
- 「Enable Transition Table」にチェックし、シーンごとにデフォルトトランジションを割り当てる。
この設定により、ホットキーやスクリプトからシーン切替えを行った際、常に意図した演出が適用されます。
参考情報(閲覧日・要点)
| URL | 閲覧日 | 要点 |
|---|---|---|
| https://kurocha.jp/obs-advanced-ss | 2026‑04‑30 | Advanced Scene Switcher の導入手順と、シーン条件の組み合わせ例を解説。特に「ウィンドウタイトル」や「音声レベル」ベースの自動切替が実務で有用と評価。 |
| https://dev.classmethod.jp/articles/obs-studio-automated-streaming/ | 2026‑04‑28 | obs‑websocket と Python を組み合わせた完全自動配信フローを紹介。スケジュール管理と WebSocket 呼び出しのベストプラクティスが掲載。 |
以上で、シーン命名・トランジション統一 → 標準ホットキー → Advanced Scene Switcher → obs‑websocket+Python の高度自動化 → 本番運用のポイント という流れを網羅しました。これらを順に導入すれば、配信中の手作業を最小限に抑えた安定したライブ配信環境が構築できます。ぜひ実践し、プロフェッショナルな配信品質を体感してください。