Skip to content

Desuq Cafe

ドキュメントメニュー

この翻訳は最新の英語版より遅れている場合があります。 英語版を表示

シーンとソース

このガイドでは、シーンの切り替えと管理、シーンごとのトランジションの上書き、シーンアイテム(シーン内のソースインスタンス)の操作(トランスフォーム、並び順、ロック、ブレンドモードを含む)について説明します。

シーン管理

関数説明
SetCurrentScene(Name)シーンを切り替える
GetSceneList()OBS からシーンリストを更新する
GetGroupList()すべてのシーングループを取得する
GetCachedScenes()ローカルにキャッシュされたシーンリストを取得する
GetCachedScenesWithItems()ソースアイテムを含むシーンを取得する
SetSceneItemEnabled(Scene, ItemId, Enabled)ソースを表示/非表示にする

シーン CRUD

関数説明
CreateScene(Name)新しい空のシーンを作成する
RemoveScene(Name)シーンを削除する(現在のシーンの場合は失敗)
SetSceneName(Name, NewName)シーンの名前を変更する

イベント:

  • OnSceneCreated(SceneName, SceneUuid, bIsGroup): シーンが作成された
  • OnSceneRemoved(SceneName, SceneUuid, bIsGroup): シーンが削除された
  • OnSceneNameChanged(SceneUuid, OldName, NewName): シーンの名前が変更された

注意: 現在アクティブなシーンは削除できません。先に別のシーンへ切り替えてください。

シーントランジションの上書き

シーンごとのトランジションの上書きを使用すると、特定のシーンへ切り替える際に異なるトランジションを適用できます。

関数説明
GetSceneTransitionOverride(SceneName)シーンの上書き設定を取得する(非同期)
SetSceneTransitionOverride(SceneName, TransitionName, DurationMs)上書きを設定する(-1 の時間 = 現在の設定を維持)
ClearSceneTransitionOverride(SceneName)上書きを削除し、デフォルトのトランジションを使用する
GetCachedTransitionOverride(SceneName, OutOverride)ローカルにキャッシュされた上書きデータを取得する
FetchAllTransitionOverrides()キャッシュ済みの全シーンの上書きを取得する

イベント:

  • OnTransitionOverrideReceived(SceneName, Override): 上書きデータが取得された

上書き構造体 (FOBSSceneTransitionOverride):

フィールド説明
TransitionNameFString上書きトランジションの名前(空 = 上書きなし)
TransitionDurationint32時間(ミリ秒)(-1 = 上書きなし)
bHasOverridebool上書きが設定されている場合は True

シーンアイテムのトランスフォーム

関数説明
GetSceneItemTransform(Scene, ItemId)OBS からトランスフォームのプロパティを取得する
SetSceneItemTransform(Scene, ItemId, Transform)すべてのトランスフォームプロパティを設定する
SetSceneItemPosition(Scene, ItemId, X, Y)位置のみを設定する
SetSceneItemScale(Scene, ItemId, ScaleX, ScaleY)スケールのみを設定する
SetSceneItemRotation(Scene, ItemId, Rotation)回転を度単位で設定する
SetSceneItemCrop(Scene, ItemId, L, T, R, B)クロップをピクセル単位で設定する
SetSceneItemBounds(Scene, ItemId, Type, W, H, Align)バウンディングボックスを設定する
GetSceneItemId(Scene, SourceName)ソース名をシーンアイテム ID に変換する
GetCachedSceneItemTransform(Scene, ItemId, OutTransform)キャッシュされたトランスフォームデータを取得する

トランスフォームのプロパティ:

  • 位置: ピクセル単位の X/Y 座標
  • スケール: X/Y の倍率(1.0 = 100%)
  • 回転: 度数(0 〜 360)
  • クロップ: 各辺から削除するピクセル数
  • バウンド: バウンディングボックスの種類、サイズ、アラインメント
  • アラインメント: ビットフラグ(0=中央、1=左、2=右、4=上、8=下)

バウンドの種類:

種類説明
Noneバウンディングボックスなし
Stretchフィットするよう引き伸ばす(アスペクト比を無視)
ScaleInnerバウンド内に収める(レターボックス)
ScaleOuterバウンドを埋める(クロップされる場合あり)
ScaleToWidth幅に合わせてスケーリングする
ScaleToHeight高さに合わせてスケーリングする
MaxOnly最大サイズのみ(アップスケーリングなし)

重要: シーンアイテムはソース名ではなく SceneItemId で識別されます。同じソースが異なる ID で同一シーン内に複数回登場することがあります。ソース名を ID に変換するには GetSceneItemId() を使用してください。

シーンアイテム管理(CRUD)

関数説明
CreateSceneItem(Scene, SourceName, Enabled)既存のソースをシーンに追加する
RemoveSceneItem(Scene, ItemId)シーンからアイテムを削除する(ソースは削除されない)
DuplicateSceneItem(Scene, ItemId, DestScene)アイテムをクローンする(宛先が空の場合は同じシーン)
GetSceneItemLocked(Scene, ItemId)アイテムがロックされているか確認する
SetSceneItemLocked(Scene, ItemId, Locked)OBS UI でアイテムをロック/アンロックする
GetGroupSceneItemList(GroupName)グループ内のすべてのアイテムを取得する
GetSceneItemSource(Scene, ItemId)シーンアイテムのソース情報を取得する
GetSceneItemIndex(Scene, ItemId)Z オーダーの位置を確認する
SetSceneItemIndex(Scene, ItemId, Index)Z オーダーを設定する(0 = 背面、値が大きいほど前面)
GetSceneItemBlendMode(Scene, ItemId)ブレンドモードを確認する
SetSceneItemBlendMode(Scene, ItemId, Mode)合成ブレンドモードを設定する

ブレンドモード:

モード説明
Normalデフォルトのブレンド
Additive明るくする(色を加算)
Subtract暗くする(色を減算)
Screenスクリーンブレンド
Multiply乗算ブレンド
Lighten明るいピクセルを維持
Darken暗いピクセルを維持

注意事項:

  • CreateSceneItem は既存のソースが必要であり、新しいソースを作成することはできません。
  • DuplicateSceneItem は参照を作成するものであり、コピーではありません。ソースへの変更は両方に影響します。
  • RemoveSceneItem は参照を削除するのみです。元のソースは引き続き利用可能です。
  • インデックス 0 はシーンの背面(最初にレンダリング)で、値が大きいほど前面になります。
  • ブレンドモードの変更は OBS イベントを発火しないため、必要であればローカルで追跡してください。

イベント

シーン

  • OnCurrentSceneChanged(SceneName, SceneUuid): アクティブなシーンが変更された
  • OnSceneListUpdated: シーンリストが更新された
  • OnSceneCreated(SceneName, SceneUuid, bIsGroup): 新しいシーンが作成された
  • OnSceneRemoved(SceneName, SceneUuid, bIsGroup): シーンが削除された
  • OnSceneNameChanged(SceneUuid, OldSceneName, NewSceneName): シーンの名前が変更された
  • OnTransitionOverrideReceived(SceneName, Override): シーントランジションの上書きデータが取得された

シーンアイテム

  • OnSceneItemTransformChanged(SceneName, SceneItemId, Transform): シーンアイテムのトランスフォームが変更された
  • OnSceneItemCreated(SceneName, SourceName, SceneItemId, SceneItemIndex): アイテムがシーンに追加された
  • OnSceneItemRemoved(SceneName, SourceName, SceneItemId): アイテムがシーンから削除された
  • OnSceneItemEnableStateChanged(SceneName, SceneItemId, bEnabled): アイテムの表示状態が変更された
  • OnSceneItemLockStateChanged(SceneName, SceneItemId, bLocked): アイテムのロック状態が切り替わった
  • OnSceneItemListReindexed(SceneName): シーン内のアイテムが並べ替えられた(Z オーダーが変更された)

OBS のすべてのドメインにわたるイベントの完全なカタログは、イベントリファレンスを参照してください。