Skip to content

Desuq Cafe

ドキュメントメニュー

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

スクリーンショット

任意の OBS ソース(シーンまたは入力)のスクリーンショットを、メモリ上の base64 画像データ(Unreal で使用するために UTexture2D に変換可能)として、あるいは OBS マシンのファイルシステム上のファイルとして直接キャプチャします。

関数

関数説明
GetSourceScreenshot(Name, Format)スクリーンショットを base64 メモリにキャプチャ
GetSourceScreenshotByUuid(Uuid, Format)ソースの UUID によりキャプチャ
GetSourceScreenshotScaled(Name, Format, W, H, Quality)スケーリングオプションを指定してキャプチャ
GetSourceScreenshotWithOptions(Request)リクエスト構造体による完全な制御
SaveSourceScreenshot(Name, Path, Format)スクリーンショットを OBS マシンのファイルシステムに直接保存
SaveSourceScreenshotByUuid(Uuid, Path, Format)ソースの UUID により保存
SaveSourceScreenshotScaled(Name, Path, Format, W, H, Quality)スケーリングオプションを指定して保存
SaveSourceScreenshotWithOptions(Request)リクエスト構造体による完全な制御
GetLastScreenshotResult()最後にキャプチャしたスクリーンショット結果を取得
GetLastSavedResult()最後に保存したスクリーンショット結果を取得
IsCapturePending()キャプチャが進行中かどうかを確認

静的テクスチャユーティリティ

キャプチャした base64 画像データをエンジン内で表示するための Unreal テクスチャに変換します。

関数説明
CreateTextureFromBase64(Base64Data)base64 画像を UTexture2D に変換
CreateTextureFromScreenshotResult(Result)スクリーンショット結果をテクスチャに変換
DecodeBase64ImageData(Base64, OutBytes, OutFormat)base64 を生のバイトデータにデコード
CreateTextureFromBytes(ImageBytes)生の画像データからテクスチャを生成

画像フォーマット

フォーマット種類品質設定
pngロスレス無視される
jpgロッシー0 〜 100
webpロッシー0 〜 100
bmpロスレス無視される

シーケンサーとの統合

アクション説明
SaveSourceScreenshotタイムライン上の特定の時点でスクリーンショットを保存(TargetName と FilePath が必要)

タイムライン駆動の OBS アクションについては シーケンサー を参照してください。

イベント

スクリーンショットのイベントはハンドラーレベルです。OBS Component が直接バインドします。Subsystem のみを使用している場合は、GetClient()->GetScreenshots() からアクセスしてください。

  • OnScreenshotCaptured(Result): スクリーンショットがメモリにキャプチャされた(base64 データを含む)
  • OnScreenshotSaved(SourceName, FilePath): スクリーンショットが OBS マシン上のファイルに保存された

注意事項

  • スクリーンショットはシーンと入力(あらゆる OBS ソース)の両方で動作します。
  • SaveSourceScreenshot は UE クライアントではなく、OBS マシンのファイルシステムに保存されます。
  • UE マシン上にファイルが必要な場合は、GetSourceScreenshot を使用してローカルに保存してください。
  • 高解像度の画像では base64 データが非常に大きくなる可能性があるため、プレビューにはスケーリングキャプチャの使用を検討してください。
  • WebP フォーマットは OBS でサポートされていますが、テクスチャ変換がサポートするのは PNG、JPEG、BMP のみです。

使用例

// Capture the current program scene and turn it into a texture.
Subsystem->GetSourceScreenshotScaled(TEXT("Gameplay"), TEXT("png"), 640, 360, -1);

// In your OnScreenshotCaptured handler:
UTexture2D* Texture =
    UInhyeongOBSSubsystem::CreateTextureFromScreenshotResult(Result);

関連項目