Subsystem API
UInhyeongOBSSubsystem は UGameInstanceSubsystem であり、OBS WebSocket 接続を管理し、100 以上の Blueprint 呼び出し可能メソッドを公開します。レベルをまたいで永続し、OBS 制御の主要なファサードとして機能します。
C++ からのアクセス:
UInhyeongOBSSubsystem* OBS = GetGameInstance()->GetSubsystem<UInhyeongOBSSubsystem>();
Blueprint から: Get Game Instance → Get Subsystem (InhyeongOBSSubsystem)。
注意: OBS Component(UInhyeongOBSComponent)はこれらのメソッドのほぼすべてをアクタ単位で使用できるようにミラーリングしており、シーン監視機能も追加されています(OBS Component を参照)。ここに公開されていないハンドラーレベルのメソッドには GetClient()->GetXxx() を通じてアクセスします(Handlers API を参照)。
このページ全体を通じて、BlueprintPure なゲッター(GetCached* / Is* / 状態リーダー)は (Pure) と表示されます。それ以外はすべて BlueprintCallable です。Pure でないゲッターのほとんどは非同期で、OBS にリクエストを送信し、結果はデリゲートイベント経由で届きます(Events を参照)。
Connection
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
Connect | (FString Host = "localhost", int32 Port = 4455, FString Password = "", bool bAutoReconnect = true) | OBS WebSocket サーバーへ接続して認証します。 |
SetAutoReconnect | (bool bAutoReconnect) | 自動再接続を有効化/無効化します。 |
Disconnect | () | 接続を閉じ、保留中のリクエストをクリアします。 |
IsConnected | () → bool | (Pure) 完全に接続・識別済みの場合に true。 |
GetConnectionState | () → EOBSConnectionState | (Pure) 現在の接続状態(Disconnected / Connecting / Authenticating / Connected)。 |
GetClient | () → UInhyeongOBSWebSocketClient* | (Pure) 高度な用途やハンドラーへのアクセスのための直接クライアントアクセス。 |
Scene Collections
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
GetSceneCollectionList | () | シーンコレクションの一覧を取得します。 |
SetCurrentSceneCollection | (FString SceneCollectionName) | アクティブなシーンコレクションを切り替えます。 |
CreateSceneCollection | (FString SceneCollectionName) | 新しいシーンコレクションを作成します。 |
GetCachedSceneCollections | () → TArray<FString> | (Pure) キャッシュされたシーンコレクション名。 |
GetCurrentSceneCollectionName | () → FString | (Pure) キャッシュされたアクティブなシーンコレクション。 |
Profiles
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
GetProfileList | () | プロファイルの一覧を取得します。 |
SetCurrentProfile | (FString ProfileName) | アクティブなプロファイルを切り替えます。 |
CreateProfile | (FString ProfileName) | 新しいプロファイルを作成します。 |
RemoveProfile | (FString ProfileName) | プロファイルを削除します。 |
GetCachedProfiles | () → TArray<FString> | (Pure) キャッシュされたプロファイル名。 |
GetCurrentProfileName | () → FString | (Pure) キャッシュされたアクティブなプロファイル。 |
Video Settings
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
GetVideoSettings | () | 現在の映像設定を取得します。 |
SetVideoSettings | (FOBSVideoSettings Settings) | 映像設定をすべて設定します。 |
SetBaseResolution | (int32 Width, int32 Height) | ベース(キャンバス)解像度を設定します。 |
SetOutputResolution | (int32 Width, int32 Height) | スケーリングされた出力解像度を設定します。 |
SetFPS | (int32 FpsNumerator, int32 FpsDenominator = 1) | 出力フレームレートを設定します。 |
GetCachedVideoSettings | () → FOBSVideoSettings | (Pure) キャッシュされた映像設定。 |
Stream Service Settings
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
GetStreamServiceSettings | () | 現在の配信サービス設定を取得します。 |
SetStreamServiceSettings | (FOBSStreamServiceSettings Settings) | 配信サービス設定を設定します。 |
SetSimpleRTMPSettings | (FString Server, FString StreamKey) | カスタム RTMP サーバーとストリームキーを設定します。 |
GetCachedStreamServiceSettings | () → FOBSStreamServiceSettings | (Pure) キャッシュされた配信サービス設定。 |
Scenes
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
GetSceneList | () | シーンの一覧を取得します。 |
SetCurrentScene | (FString SceneName) | アクティブなプログラムシーンを切り替えます。 |
GetCurrentSceneName | () → FString | (Pure) キャッシュされたアクティブなシーン名。 |
GetCachedScenes | () → TArray<FOBSScene> | (Pure) キャッシュされたシーン一覧。 |
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
GetSceneItemTransform | (FString SceneName, int32 SceneItemId) | シーンアイテムのトランスフォームを取得します。 |
SetSceneItemTransform | (FString SceneName, int32 SceneItemId, FOBSSceneItemTransform Transform) | シーンアイテムのトランスフォームを完全に設定します。 |
SetSceneItemPosition | (FString SceneName, int32 SceneItemId, float X, float Y) | 位置のみを設定します。 |
SetSceneItemRotation | (FString SceneName, int32 SceneItemId, float Rotation) | 回転(度)のみを設定します。 |
SetSceneItemScale | (FString SceneName, int32 SceneItemId, float ScaleX, float ScaleY) | スケールのみを設定します。 |
SetSceneItemCrop | (FString SceneName, int32 SceneItemId, int32 Left, int32 Top, int32 Right, int32 Bottom) | クロップの各辺を設定します。 |
SetSceneItemBounds | (FString SceneName, int32 SceneItemId, EOBSBoundsType BoundsType, float BoundsWidth, float BoundsHeight, int32 BoundsAlignment = 0) | バウンディングボックスの動作を設定します。 |
GetSceneItemId | (FString SceneName, FString SourceName) | ソース名を対応する数値のシーンアイテム ID に解決します。 |
Scene Item CRUD
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
CreateSceneItem | (FString SceneName, FString SourceName, bool bEnabled = true) | 既存のソースをシーンに追加します。 |
RemoveSceneItem | (FString SceneName, int32 SceneItemId) | シーンからアイテムを削除します。 |
DuplicateSceneItem | (FString SceneName, int32 SceneItemId, FString DestinationSceneName = "") | アイテムを複製します(別のシーンへの複製も可能)。 |
Scene Item Lock / Z-Order / Blend
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
GetSceneItemLocked | (FString SceneName, int32 SceneItemId) | ロック状態を取得します。 |
SetSceneItemLocked | (FString SceneName, int32 SceneItemId, bool bLocked) | ロック状態を設定します。 |
GetSceneItemIndex | (FString SceneName, int32 SceneItemId) | Z オーダーインデックスを取得します(0 = 背面)。 |
SetSceneItemIndex | (FString SceneName, int32 SceneItemId, int32 ItemIndex) | Z オーダーインデックスを設定します(0 = 背面)。 |
GetSceneItemBlendMode | (FString SceneName, int32 SceneItemId) | ブレンドモードを取得します。 |
SetSceneItemBlendMode | (FString SceneName, int32 SceneItemId, EOBSBlendMode BlendMode) | ブレンドモードを設定します。 |
Recording
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
StartRecord | () | 録画を開始します。 |
StopRecord | () | 録画を停止します。 |
ToggleRecord | () | 録画のオン/オフを切り替えます。 |
PauseRecord | () | アクティブな録画を一時停止します。 |
ResumeRecord | () | 一時停止中の録画を再開します。 |
ToggleRecordPause | () | 一時停止/再開を切り替えます。 |
GetRecordStatus | () | 録画ステータスを取得します。 |
GetRecordDirectory | () | 録画の保存先ディレクトリを取得します(OnRecordDirectoryReceived を発火します)。 |
SetRecordDirectory | (FString Directory) | 録画の保存先ディレクトリを設定します(次回録画から有効)。 |
GetCachedRecordDirectory | () → FString | (Pure) キャッシュされた録画の保存先ディレクトリ。 |
SplitRecordFile | () | アクティブな録画を新しいファイルに分割します。 |
CreateRecordChapter | (FString ChapterName = "") | チャプターマーカーを追加します(Hybrid MP4、OBS 30.2.0 以降のみ)。 |
Streaming
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
StartStream | () | 配信を開始します。 |
StopStream | () | 配信を停止します。 |
ToggleStream | () | 配信のオン/オフを切り替えます。 |
GetStreamStatus | () | 配信ステータスを取得します。 |
SendStreamCaption | (FString CaptionText) | CEA-608 キャプションテキストを送信します(配信中のみ有効)。 |
Virtual Camera
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
StartVirtualCam | () | 仮想カメラを開始します。 |
StopVirtualCam | () | 仮想カメラを停止します。 |
ToggleVirtualCam | () | 仮想カメラを切り替えます。 |
GetVirtualCamStatus | () | 仮想カメラのステータスを取得します。 |
IsVirtualCamActive | () → bool | (Pure) キャッシュされた仮想カメラのアクティブ状態。 |
Replay Buffer
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
StartReplayBuffer | () | リプレイバッファを開始します。 |
StopReplayBuffer | () | リプレイバッファを停止します。 |
ToggleReplayBuffer | () | リプレイバッファを切り替えます。 |
SaveReplayBuffer | () | 現在のリプレイバッファの内容をディスクに保存します。 |
GetReplayBufferStatus | () | リプレイバッファのステータスを取得します。 |
IsReplayBufferActive | () → bool | (Pure) キャッシュされたリプレイバッファのアクティブ状態。 |
Generic Outputs
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
GetOutputList | () | すべての出力の一覧を取得します。 |
GetOutputStatus | (FString OutputName) | 特定の出力のステータスを取得します。 |
GetOutputSettings | (FString OutputName) | 特定の出力の設定を取得します。 |
SetOutputSettings | (FString OutputName, FString JsonSettings) | JSON から出力の設定を行います。 |
StartOutput | (FString OutputName) | 特定の出力を開始します。 |
StopOutput | (FString OutputName) | 特定の出力を停止します。 |
ToggleOutput | (FString OutputName) | 特定の出力を切り替えます。 |
GetCachedOutputs | () → TArray<FOBSOutput> | (Pure) キャッシュされた出力一覧。 |
Audio
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
GetInputList | (FString InputKind = "") | 入力の一覧を取得します。入力の種類でフィルタリング可能です。 |
SetInputMute | (FString InputName, bool bMuted) | 入力のミュート状態を設定します。 |
ToggleInputMute | (FString InputName) | 入力のミュートを切り替えます。 |
SetInputVolume | (FString InputName, float VolumeDb) | 入力の音量を dB で設定します。 |
SetVolumeMetersEnabled | (bool bEnable) | 高頻度の InputVolumeMeters イベントを有効化します(デフォルトでは無効)。 |
SetInputActiveStateEventsEnabled | (bool bEnable) | InputActiveStateChanged イベントを有効化します(デフォルトでは無効)。 |
Advanced Audio
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
GetInputAudioBalance | (FString InputName) | ステレオバランスを取得します(0=L、0.5=C、1=R)。 |
SetInputAudioBalance | (FString InputName, float Balance) | ステレオバランスを設定します。 |
GetInputAudioSyncOffset | (FString InputName) | 同期オフセット(ms 単位)を取得します。 |
SetInputAudioSyncOffset | (FString InputName, int32 OffsetMs) | 同期オフセットを設定します(-950 〜 20000 ms)。 |
GetInputAudioMonitorType | (FString InputName) | 音声モニタリング種別を取得します。 |
SetInputAudioMonitorType | (FString InputName, EOBSMonitorType MonitorType) | 音声モニタリング種別を設定します。 |
GetInputAudioTracks | (FString InputName) | 各音声トラックの有効状態を取得します。 |
SetInputAudioTracks | (FString InputName, FOBSAudioTracks Tracks) | すべての音声トラックの有効状態を設定します。 |
SetInputAudioTrack | (FString InputName, int32 TrackNumber, bool bEnabled) | 単一の音声トラック(1 〜 6)の有効状態を設定します。 |
GetSpecialInputs | () | デフォルトのデスクトップ/マイク音声デバイスを取得します。 |
GetCachedSpecialInputs | () → FOBSSpecialInputs | (Pure) キャッシュされた特殊な入力。 |
Mic / Voice-Activity Detection
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
EnableMicActivityDetection | (FString InputName, float ThresholdDb = -40, float AttackSeconds = 0.05, float ReleaseSeconds = 0.5) | デバウンスされた発話中/アイドル検出を開始します(音量メーターを自動で有効化します)。 |
DisableMicActivityDetection | (FString InputName) | 入力の検出を停止します(メーターのサブスクリプションは維持されます)。 |
IsMicActive | (FString InputName) → bool | (Pure) 現在のデバウンスされた発話状態(未登録の場合は false)。 |
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
CreateInput | (FString SceneName, FString InputName, FString InputKind, FString InputSettingsJson = "", bool bSceneItemEnabled = true) | 新しい入力を作成してシーンに追加します。 |
RemoveInput | (FString InputName) | 入力を削除します(使用中でないことが必要です)。 |
SetInputName | (FString InputName, FString NewInputName) | 入力の名前を変更します。 |
GetInputKindList | (bool bUnversioned = false) | 利用可能な入力の種類を取得します。 |
GetCachedInputKinds | () → TArray<FString> | (Pure) キャッシュされた入力の種類の一覧。 |
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
FetchInputSettings | (FString InputName) | 入力の現在の設定を取得します(ハンドラーイベントを発火します)。 |
SetInputSettings | (FString InputName, FString SettingsJson, bool bOverlay = true) | JSON から入力の設定を行います。 |
SetTextSourceText | (FString InputName, FString NewText) | 便利関数: テキストソースのテキストを設定します。 |
SetBrowserSourceUrl | (FString InputName, FString NewUrl) | 便利関数: ブラウザソースの URL を設定します。 |
SetImageSourceFile | (FString InputName, FString NewFilePath) | 便利関数: 画像ソースのファイルパスを設定します。 |
SetMediaSourceFile | (FString InputName, FString NewFilePath, bool bLooping = false) | 便利関数: メディアソースのファイルパスを設定します。 |
SetColorSourceColor | (FString InputName, int64 Color) | 便利関数: カラーソースのカラーを設定します(ABGR を int64 で指定)。 |
Subsystem はメディア再生の操作を直接公開していません。メディア入力の再生制御(play/pause/stop/restart、シーク、ステータス)にはメディア入力ハンドラーを使用してください:
OBS->GetMediaInputs()->...
UInhyeongOBSMediaInputs については Handlers API を参照してください。
Studio Mode
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
GetStudioModeEnabled | () | Studio Mode の有効状態を取得します。 |
SetStudioModeEnabled | (bool bEnabled) | Studio Mode を有効化/無効化します。 |
IsStudioModeEnabled | () → bool | (Pure) キャッシュされた Studio Mode の状態。 |
GetCurrentPreviewScene | () | プレビューシーンを取得します。 |
SetCurrentPreviewScene | (FString SceneName) | プレビューシーンを設定します。 |
TriggerStudioModeTransition | () | プレビューシーンをプログラムに送出します。 |
GetPreviewSceneName | () → FString | (Pure) キャッシュされたプレビューシーン名。 |
Transitions
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
GetSceneTransitionList | () | トランジションの一覧を取得します。 |
GetCurrentSceneTransition | () | アクティブなトランジションを取得します。 |
SetCurrentSceneTransition | (FString TransitionName) | アクティブなトランジションを設定します。 |
SetCurrentSceneTransitionDuration | (int32 DurationMs) | トランジション時間を設定します。 |
GetCurrentTransitionName | () → FString | (Pure) キャッシュされたアクティブなトランジション名。 |
GetCurrentTransitionDuration | () → int32 | (Pure) キャッシュされたトランジション時間(ms)。 |
IsTransitionActive | () → bool | (Pure) キャッシュされた「トランジション進行中」の状態。 |
Filters
Subsystem はフィルターの CRUD を直接公開していません。ソースフィルターの管理(作成/削除/リネーム/並べ替え、有効化、設定)にはフィルターハンドラーを使用してください:
OBS->GetFilters()->...
フィルターのイベントは Subsystem 上で再ブロードキャストされます(Events を参照)。UInhyeongOBSFilters については Handlers API を参照してください。
Screenshots
Subsystem はスクリーンショットのキャプチャメソッドを直接公開していません。スクリーンショットハンドラーを通じてアクセスしてください:
OBS->GetScreenshots()->...
スクリーンショット結果のデリゲートは Subsystem 上で再ブロードキャストされます(OnScreenshotCaptured / OnScreenshotSaved)が、キャプチャメソッド自体はハンドラーに存在します。UInhyeongOBSScreenshots については Handlers API を参照してください。
Game Events(エンジン → OBS)
| 関数 | シグネチャ / パラメーター | 説明 |
|---|
EmitGameEvent | (FString EventName, FString PayloadJson, FString Realm = "inhyeongobs") → bool | 名前空間付きの CustomEvent を OBS に送信します。未接続またはペイロードが有効な JSON でない場合は false を返します。 |
EmitGameEventMap | (FString EventName, TMap<FString,FString> Payload, FString Realm = "inhyeongobs") | マップ便利関数: 各キー/バリューがペイロード内の JSON 文字列フィールドになります。 |
Handler Accessors
これらの BlueprintPure ゲッターはクライアントが所有するドメインハンドラーを返します。Subsystem に直接公開されていないハンドラーレベルのメソッドにアクセスするために使用します(Handlers API を参照)。
| 関数 | 戻り値 | ドメイン |
|---|
GetOutputs | UInhyeongOBSOutputs* | Stream、Record、VirtualCam、ReplayBuffer。 |
GetScenes | UInhyeongOBSScenes* | シーンの切り替え、シーンアイテム。 |
GetAudio | UInhyeongOBSAudio* | 入力一覧、音量、ミュート、音量メーター。 |
GetInputSettings | UInhyeongOBSInputSettings* | テキスト/ブラウザ/画像/メディアソースの設定。 |
GetMediaInputs | UInhyeongOBSMediaInputs* | メディアソースの再生制御。 |
GetStudioMode | UInhyeongOBSStudioMode* | プレビューシーン、スタジオトランジション、T バー。 |
GetTransitions | UInhyeongOBSTransitions* | シーントランジション、トランジション時間、設定。 |
GetFilters | UInhyeongOBSFilters* | ソースフィルターの管理。 |
GetScreenshots | UInhyeongOBSScreenshots* | スクリーンショットの base64 またはファイルへのキャプチャ。 |
GetConfig | UInhyeongOBSConfig* | シーンコレクション、プロファイル、映像設定、永続データ。 |
UInhyeongOBSGeneral ハンドラー(パフォーマンス統計、ホットキー、ベンダーリクエスト)は Subsystem 上に GetGeneral() アクセサーがないため、GetClient()->GetGeneral() を通じてアクセスしてください。
Events
Subsystem のすべてのイベントデリゲート(OnConnected、OnCurrentSceneChanged、OnRecordStateChanged、OnMicActivityChanged など)は Events に記載されています。すべての Blueprint イベントにはラムダバインディング用の Native サフィックス付きネイティブ C++ 対応版があります(Native Delegates を参照)。