フィルター
OBS のフィルターは、任意のソース(シーンまたは入力)にアタッチされ、カラーコレクション、クロマキー、ノイズ抑制など、ソースの外観や音声を変更します。このプラグインは OBS フィルター API を完全に公開しており、利用可能なフィルターの種類の一覧取得、ソースごとのフィルターチェーンの読み書き、そしてイベントによるフィルター変更への対応が可能です。
関数
| 関数 | 説明 |
|---|---|
GetSourceFilterKindList() | 利用可能なフィルターの種類の一覧を更新する |
GetCachedFilterKinds() | ローカルにキャッシュされたフィルターの種類の一覧を取得する |
GetSourceFilterList(SourceName) | ソース上のすべてのフィルターを取得する |
GetCachedFiltersForSource(SourceName) | ソースのローカルキャッシュ済みフィルターを取得する |
HasCachedFiltersForSource(SourceName) | ソースのフィルターデータがキャッシュされているか確認する |
CreateSourceFilter(Source, Name, Kind, Settings) | ソースに新しいフィルターを追加する |
RemoveSourceFilter(Source, FilterName) | ソースからフィルターを削除する |
SetSourceFilterEnabled(Source, Filter, Enabled) | フィルターを有効化または無効化する |
SetSourceFilterName(Source, OldName, NewName) | フィルターの名前を変更する |
SetSourceFilterIndex(Source, Filter, Index) | チェーン内のフィルター位置を変更する(0 = 先頭) |
SetSourceFilterSettings(Source, Filter, Settings, Overlay) | フィルターの設定を更新する |
GetSourceFilter(Source, Filter) | 特定のフィルターの詳細を取得する |
GetSourceFilterDefaultSettings(Kind) | フィルターの種類のデフォルト設定を取得する |
注: フィルターは SourceName と FilterName のペアで識別されます(UUID なし)。フィルターインデックス
0は処理チェーンの最上位のフィルターです。
イベント
フィルターの変更に対応するために、以下のイベントをサブスクライブします。
OnSourceFilterCreated(SourceName, FilterName, FilterKind, FilterIndex, bEnabled): ソースにフィルターが追加されたOnSourceFilterRemoved(SourceName, FilterName): ソースからフィルターが削除されたOnSourceFilterNameChanged(SourceName, OldName, NewName): フィルターの名前が変更されたOnSourceFilterSettingsChanged(SourceName, FilterName): フィルターの設定が変更されたOnSourceFilterEnableStateChanged(SourceName, FilterName, bEnabled): フィルターが有効化/無効化されたOnSourceFilterListReindexed(SourceName): ソース上のフィルターの順序が変更された
使用例
// Add a color correction filter to a source, then disable it.
Subsystem->CreateSourceFilter(
TEXT("Webcam"),
TEXT("Warmth"),
TEXT("color_filter_v2"),
Settings);
Subsystem->SetSourceFilterEnabled(TEXT("Webcam"), TEXT("Warmth"), false);
// Move a filter to the top of the chain.
Subsystem->SetSourceFilterIndex(TEXT("Webcam"), TEXT("Warmth"), 0);