Inhyeong OBS WebSocket Client
FabUnreal Engine プラグイン • OBS Studio
OBS Studio を WebSocket v5 プロトコル経由で、Unreal Editor から、そしてランタイムから直接制御します。操作は Blueprint または C++ で行えます。エンジン内のイベント、ゲームプレイ、シーケンサーのタイムラインから OBS を駆動したい配信者、VTuber、バーチャルプロダクションのワークフロー向けに作られており、外部スクリプトは不要です。
必要要件
- Unreal Engine 5.4 以降
- obs-websocket 5.x を有効にした OBS Studio
- 一部の機能(録画チャプターなど)には OBS 30.2 以降が必要です
OBS を完全に制御
OBS のほぼすべての要素をエンジンから駆動できます。状態のキャッシュとライブイベントにより、ゲームから OBS に指示を出すことも、OBS に反応することもできます。
- シーンとシーンアイテム
- シーンアイテムのトランスフォーム(位置、スケール、回転、クロップ、バウンド)
- 録画、配信、仮想カメラ
- リプレイバッファとインスタントリプレイ
- 音声:ミュート、音量、バランス、同期オフセット、モニタリング、トラックルーティング
- トランジションとスタジオモード
- ソースフィルター(追加、削除、並べ替え、有効化)
- メモリまたはファイルへのスクリーンショット
- 入力とソース、メディア再生、入力設定
マイク / 音声アクティビティ検出
マイクから OBS を駆動します。話せばアニメーションし、黙れば待機するという VTuber の定番ループを、すべてエンジン内で実現します。プラグインは入力の音声レベルを監視し、アタックとリリースのタイミングを備えたデバウンス検出器に通すため、わずかな言葉の切れ目で状態がちらつくことはありません。そして入力が発話中とアイドルの境界を越えたときにイベントを発火します。
ノーコードの Trigger Volume
アクタがエリアに出入りしたときに OBS アクションを発火する、配置可能なアクタです。コードは不要です。アクションは条件でゲートできます:録画または配信の状態、必須または除外するシーン、音声アクティビティ(指定した入力が発話中かアイドルか)、ソースの表示状態(シーン内でソースが表示されているか非表示か)。シーンの切り替え、リプレイの保存、音声のミュート、フィルターの切り替えなどが行えます。
OBS へのアウトバウンドゲームイベント
エンジンから OBS へ、名前空間付きのカスタムイベントとして構造化されたイベントを送信します。OBS 側のプラグインやスクリプト、ブラウザソースのオーバーレイ、その他の接続済み WebSocket クライアントがそれを受信して反応できるため、ゲームプレイでオーバーレイや OBS 側の自動化を駆動できます。
シーケンサー統合
Unreal のシーケンサーから OBS を直接制御します。フレーム単位の精度で、4 つのトラックパラダイムに対応します:
Event Trigger
タイムライン上の特定のポイントで発火する 40 以上の個別アクション(録画、配信、シーン切り替え、リプレイ保存など)
Keyframeable
カーブエディタによる滑らかな補間。音量、バランス、トランスフォーム、色、フィルター設定、トランジション時間、メディアカーソルに対応します。
Continuous State
再生ヘッドがセクション内にある間、状態を保持します(ミュート、表示状態、ロック、ブレンドモード、フィルター、スタジオモード、トランジション)。
Media Sync
OBS のメディアカーソルがシーケンサーのタイムラインに追従し、ドリフトを補正します。
アクションのスロットリング、重複排除、バッチ化されたリクエスト、事前アニメーション状態の復元により、再生は滑らかで元に戻せる状態に保たれます。
プロダクションワークフロー
Take Recorder Sync
Take Recorder に合わせて OBS の録画を自動で開始・停止し、マークしたフレームをチャプターに変換、テイクと録画の間のファイル対応をログに記録します。
Request Batching
複数の OBS コマンドを 1 回のネットワークリクエストで送信します。実行モードは設定可能です。
Persistent Data
OBS 内に小さなキー/バリューのデータを保存し、再起動後も保持します。グローバルまたはプロファイルごとにスコープを設定できます。
In-Editor Details Panel
ライブのステータスインジケーター、シーンブラウザ、音声コントロール、テストコントロールを、プレイモードに入らずに利用できます。
複数のエントリーポイント
ユースケースに合った統合方法を選べます。どの経路も内部では同じ OBS クライアントと通信します。
OBS Component
任意の Actor に追加し、詳細パネルで設定します。コード不要で完全に制御できます。
Game Subsystem
ランタイムに、ゲームコードのどこからでもグローバルにアクセスできます。Blueprint または C++ で利用可能です。
Editor Subsystem
プレイモードに入らずに、エディタから OBS を駆動します。
Trigger Volume
アクタがエリアに出入りしたときに OBS アクションを発火する、ノーコードのアクタです。
Sequencer Track
レベルシーケンスに同期した、タイムラインベースの制御。フレーム単位の精度で動作します。