ネイティブ C++ デリゲート
Blueprint で割り当て可能なすべての OBS イベント(FOBSOn*)には、Native サフィックスを持つネイティブ C++ 対応版(FOBSOn*Native)があります。ネイティブデリゲートは動的バリアントの代わりに DECLARE_MULTICAST_DELEGATE_* を使用するため、C++ ラムダ、メンバー関数、および AddSP/AddUObject バインディングを受け付けます。これらは Blueprint のみの動的デリゲートでは実現できないものです。
ネイティブデリゲートは Blueprint 対応版と同じパラメーターを持ちます(パラメーター名は イベント に記載されています)。これらはプラグインが内部でハンドラーキャッシュを同期させ、イベントピラミッドにイベントを転送するために使用するものであり、非 UObject の C++ コード(例えば、動的デリゲートに AddSP できないエディタの詳細パネルのカスタマイズ)における正しいバインディングポイントです。
使用方法
任意のネイティブデリゲートにラムダをバインドします。独立したライフタイムを持つオブジェクトからバインドする場合は、必ず弱い参照をキャプチャし、ラムダ内で有効性を確認してください。
// Connection
OBS->OnConnectedNative.AddLambda([]() { /* ... */ });
OBS->OnDisconnectedNative.AddLambda([](const FString& Reason) { /* ... */ });
// A handler-level event (lambda)
Client->GetScenes()->OnCurrentSceneChangedNative.AddLambda(
[](const FString& SceneName, const FString& SceneUuid)
{
UE_LOG(LogTemp, Log, TEXT("Now on scene: %s"), *SceneName);
});
// Member-function binding from a UObject
Client->GetOutputs()->OnRecordStateChangedNative.AddUObject(
this, &UMyClass::HandleRecordStateChanged);
AddSP(シェアードポインター)バインディングも同様の方法で追加できます。後で Remove() する必要がある場合は返される FDelegateHandle を保持し、バインドされたオブジェクトが破棄される前にアンバインドしてください。
接続と再接続
| ネイティブデリゲート | シグネチャ |
|---|
FOBSOnConnectedNative | () |
FOBSOnDisconnectedNative | (const FString& Reason) |
FOBSOnConnectionErrorNative | (const FString& Error) |
FOBSOnReconnectingNative | (int32 AttemptNumber) |
FOBSOnReconnectFailedNative | () |
FOBSOnRequestFailedNative | (const FString& RequestType, int32 StatusCode, const FString& Comment) |
出力(録画 / 配信 / 仮想カメラ / リプレイバッファ)
| ネイティブデリゲート | シグネチャ |
|---|
FOBSOnStreamStateChangedNative | (bool bActive, EOBSOutputState State) |
FOBSOnRecordStateChangedNative | (bool bActive, EOBSOutputState State) |
FOBSOnRecordingStoppedNative | (bool bActive, EOBSOutputState State, const FString& OutputPath) |
FOBSOnVirtualCamStateChangedNative | (bool bActive, EOBSOutputState State) |
FOBSOnReplayBufferStateChangedNative | (bool bActive, EOBSOutputState State) |
FOBSOnReplayBufferSavedNative | (const FString& SavedReplayPath) |
FOBSOnRecordFileChangedNative | (const FString& NewOutputPath) |
FOBSOnRecordDirectoryReceivedNative | (const FString& RecordDirectory) |
FOBSOnOutputListReceivedNative | (const TArray<FOBSOutput>& Outputs) |
FOBSOnOutputStatusReceivedNative | (const FOBSOutputStatus& Status) |
シーンとシーンアイテム
| ネイティブデリゲート | シグネチャ |
|---|
FOBSOnCurrentSceneChangedNative | (const FString& SceneName, const FString& SceneUuid) |
FOBSOnSceneListUpdatedNative | () |
FOBSOnSceneItemTransformChangedNative | (const FString& SceneName, int32 SceneItemId, const FOBSSceneItemTransform& Transform) |
FOBSOnSceneItemCreatedNative | (const FString& SceneName, const FString& SourceName, int32 SceneItemId, int32 SceneItemIndex) |
FOBSOnSceneItemRemovedNative | (const FString& SceneName, const FString& SourceName, int32 SceneItemId) |
FOBSOnSceneItemLockStateChangedNative | (const FString& SceneName, int32 SceneItemId, bool bLocked) |
FOBSOnSceneItemEnableStateChangedNative | (const FString& SceneName, int32 SceneItemId, bool bEnabled) |
FOBSOnSceneItemListReindexedNative | (const FString& SceneName) |
FOBSOnSceneCreatedNative | (const FString& SceneName, const FString& SceneUuid, bool bIsGroup) |
FOBSOnSceneRemovedNative | (const FString& SceneName, const FString& SceneUuid, bool bIsGroup) |
FOBSOnSceneNameChangedNative | (const FString& SceneUuid, const FString& OldSceneName, const FString& NewSceneName) |
FOBSOnTransitionOverrideReceivedNative | (const FString& SceneName, const FOBSSceneTransitionOverride& Override) |
音声
| ネイティブデリゲート | シグネチャ |
|---|
FOBSOnInputListUpdatedNative | () |
FOBSOnInputMuteStateChangedNative | (const FString& InputName, bool bMuted) |
FOBSOnInputVolumeChangedNative | (const FString& InputName, float VolumeDb, float VolumeMul) |
FOBSOnInputVolumeMetersNative | (const TArray<FOBSInputVolumeMeter>& Meters) |
FOBSOnInputActiveStateChangedNative | (const FString& InputName, bool bVideoActive) |
FOBSOnMicActivityChangedNative | (const FString& InputName, bool bActive) |
FOBSOnInputCreatedNative | (const FString& InputName, const FString& InputUuid, const FString& InputKind, const FString& UnversionedInputKind) |
FOBSOnInputRemovedNative | (const FString& InputName, const FString& InputUuid) |
FOBSOnInputNameChangedNative | (const FString& InputUuid, const FString& OldInputName, const FString& NewInputName) |
FOBSOnInputKindListReceivedNative | (const TArray<FString>& InputKinds) |
FOBSOnInputAudioBalanceChangedNative | (const FString& InputName, const FString& InputUuid, float AudioBalance) |
FOBSOnInputAudioSyncOffsetChangedNative | (const FString& InputName, const FString& InputUuid, int32 SyncOffsetMs) |
FOBSOnInputAudioTracksChangedNative | (const FString& InputName, const FString& InputUuid, const FOBSAudioTracks& AudioTracks) |
FOBSOnInputAudioMonitorTypeChangedNative | (const FString& InputName, const FString& InputUuid, EOBSMonitorType MonitorType) |
FOBSOnSpecialInputsReceivedNative | (const FOBSSpecialInputs& SpecialInputs) |
OnInputVolumeMetersNative、OnInputActiveStateChangedNative、および OnMicActivityChangedNative は高頻度のオプトイン型ストリームです。音声アクティビティ検出 を参照してください。
入力設定
| ネイティブデリゲート | シグネチャ |
|---|
FOBSOnInputSettingsChangedNative | (const FString& InputName, const FString& InputUuid) |
FOBSOnInputSettingsReceivedNative | (const FString& InputName, const FString& InputKind, TSharedPtr<FJsonObject> Settings) |
FOBSOnInputPropertyItemsReceivedNative | (const FString& InputName, const FString& PropertyName, const TArray<FOBSPropertyItem>& Items) |
OnInputSettingsReceivedNative はネイティブ専用であり、生の TSharedPtr<FJsonObject> 設定オブジェクトを公開します(Blueprint イベントは代わりに文字列を返します)。
メディア入力
| ネイティブデリゲート | シグネチャ |
|---|
FOBSOnMediaInputPlaybackStartedNative | (const FString& InputName) |
FOBSOnMediaInputPlaybackEndedNative | (const FString& InputName) |
FOBSOnMediaInputActionTriggeredNative | (const FString& InputName, EOBSMediaInputAction Action) |
FOBSOnMediaInputStatusReceivedNative | (const FOBSMediaInputStatus& Status) |
トランジション
| ネイティブデリゲート | シグネチャ |
|---|
FOBSOnCurrentTransitionChangedNative | (const FString& TransitionName) |
FOBSOnTransitionDurationChangedNative | (int32 DurationMs) |
FOBSOnTransitionStartedNative | (const FString& TransitionName) |
FOBSOnTransitionEndedNative | (const FString& TransitionName) |
FOBSOnTransitionVideoEndedNative | (const FString& TransitionName) |
FOBSOnTransitionListUpdatedNative | () |
スタジオモード
| ネイティブデリゲート | シグネチャ |
|---|
FOBSOnStudioModeStateChangedNative | (bool bStudioModeEnabled) |
FOBSOnCurrentPreviewSceneChangedNative | (const FString& SceneName, const FString& SceneUuid) |
フィルター
| ネイティブデリゲート | シグネチャ |
|---|
FOBSOnSourceFilterCreatedNative | (const FString& SourceName, const FString& FilterName, const FString& FilterKind, int32 FilterIndex, bool bFilterEnabled) |
FOBSOnSourceFilterRemovedNative | (const FString& SourceName, const FString& FilterName) |
FOBSOnSourceFilterNameChangedNative | (const FString& SourceName, const FString& OldFilterName, const FString& FilterName) |
FOBSOnSourceFilterSettingsChangedNative | (const FString& SourceName, const FString& FilterName) |
FOBSOnSourceFilterEnableStateChangedNative | (const FString& SourceName, const FString& FilterName, bool bFilterEnabled) |
FOBSOnSourceFilterListReindexedNative | (const FString& SourceName) |
FOBSOnSourceFilterListReceivedNative | (const FString& SourceName) |
OnSourceFilterListReceivedNative はネイティブ専用です。GetSourceFilterList レスポンスの解析後に発火します(対応する OBS プッシュイベントはありません)。これにより、エディタ UI がそのソースのフィルタードロップダウンを更新できます。
スクリーンショット
| ネイティブデリゲート | シグネチャ |
|---|
FOBSOnScreenshotCapturedNative | (const FOBSScreenshotResult& Result) |
FOBSOnScreenshotSavedNative | (const FString& SourceName, const FString& FilePath) |
スクリーンショットイベントはハンドラーレベル専用です。Client->GetScreenshots() を通じてアクセスしてください(サブシステムでは再ブロードキャストされません)。
設定(シーンコレクション / プロファイル / 映像 / 配信サービス / 永続データ)
| ネイティブデリゲート | シグネチャ |
|---|
FOBSOnCurrentSceneCollectionChangingNative | (const FString& SceneCollectionName) |
FOBSOnCurrentSceneCollectionChangedNative | (const FString& SceneCollectionName) |
FOBSOnSceneCollectionListChangedNative | () |
FOBSOnCurrentProfileChangingNative | (const FString& ProfileName) |
FOBSOnCurrentProfileChangedNative | (const FString& ProfileName) |
FOBSOnProfileListChangedNative | () |
FOBSOnVideoSettingsReceivedNative | (const FOBSVideoSettings& Settings) |
FOBSOnStreamServiceSettingsReceivedNative | (const FOBSStreamServiceSettings& Settings) |
FOBSOnPersistentDataReceivedNative | (EOBSDataRealm Realm, const FString& SlotName, const FString& SlotValueJson) |
一般(パフォーマンス統計 / ホットキー / ベンダー / カスタムイベント)
| ネイティブデリゲート | シグネチャ |
|---|
FOBSOnStatsReceivedNative | (const FOBSStats& Stats) |
FOBSOnHotkeyListReceivedNative | (const TArray<FString>& HotkeyNames) |
FOBSOnExitStartedNative | () |
FOBSOnVendorEventNative | (const FString& VendorName, const FString& EventType, const FString& EventDataJson) |
FOBSOnCustomEventNative | (const FString& EventDataJson) |
FOBSOnVendorResponseReceivedNative | (const FString& VendorName, const FString& RequestType, const FString& ResponseDataJson) |
関連項目: イベント - Blueprint イベント名と、各イベントが利用可能なレベル(ハンドラー / サブシステム / コンポーネント)の一覧。