12.

UE5のTake High Res Screenshotノードの使い方|高解像度スクショの撮り方

編集

Take High Res Screenshotは、ゲームやレベルの実行中に、画面解像度を超える高解像度のスクリーンショットを撮るためのノードです。通常のスクリーンショットよりも大きなピクセル数で書き出せるため、宣伝用の素材やポートフォリオ、ストアページのキービジュアルなど、印刷や拡大に耐える画像が必要な場面で利用されます。

この記事の要点
  • Take High Res Screenshotは、Blueprintから高解像度スクリーンショットの撮影を呼び出すノードです。
  • 解像度はピクセル数(Res X / Res Y)で直接指定します。
  • 画像の保存先は、既定でプロジェクトのSaved/Screenshotsフォルダ配下です。
  • 挙動はコンソールコマンドHighResShotと共通する部分が多く、ランタイム(パッケージ後のゲーム)ではHighResShotをコマンド実行する方法が確実とされています。
  • 巨大な解像度はメモリやGPUへの負荷が大きく、ドライバが応答しなくなる場合があると公式に注意喚起されています。

Take High Res Screenshotノードとは

Take High Res Screenshotは、UE5のAutomation Blueprint Function Libraryに含まれる関数ノードです。Blueprintのイベントグラフ上に配置し、任意のタイミングで実行することで、その瞬間のシーンを指定した解像度でキャプチャします。

「高解像度(High Res)」という名前のとおり、ディスプレイの解像度に縛られず、たとえば4K・8K相当といった大きなピクセル数で書き出せる点が、通常のスクリーンショット機能との大きな違いです。エンジンは内部的に画面を分割(タイル)してレンダリングし、それらをつなぎ合わせて1枚の大きな画像を生成します。この方式により、実際のディスプレイがフルHDであっても、それを大きく上回る解像度の画像を1枚として出力できます。

キャプチャされるのは、その時点でビューポートに描画されているフレームです。したがって、ライティングのビルド状況やポストプロセスの設定、表示中のエフェクトなど、画面に映っている内容がそのまま反映されます。狙ったルックで撮りたい場合は、撮影前にシーンの状態を整えておくことが大切です。

なお、公式ドキュメントではこのノードの説明が「エディタ上で高解像度スクリーンショットを撮る」と記載されています。エディタのPlay In Editorなど開発中の用途では扱いやすい一方、パッケージ化したゲーム内での確実な撮影には、後述するHighResShotコマンドの実行が選択肢になります。実際の挙動は使用するエンジンのバージョンによって異なる場合があるため、ランタイムでの利用を前提とする場合は、対象バージョンでの動作確認をおすすめします。

主な用途

  • ストアページや宣伝素材向けの、高精細なキービジュアルの書き出し。
  • ゲームプレイ中の特定シーンを、イベントをトリガーに自動でキャプチャ。
  • レベルデザインやライティングの記録・比較用スクリーンショットの取得。
  • ディスプレイより大きな解像度での、拡大・トリミングに耐える画像の作成。

Take High Res Screenshotノードの引数(ピン)

このノードには複数の入力ピンがあります。公式ドキュメントに記載されている主な入力ピンは次のとおりです。各ピンの細かな挙動や既定値はエンジンのバージョンによって異なる場合があるため、エディタ上で実際のピン構成を確認することをおすすめします。

ピン名 概要
Res XInteger書き出す画像の横方向のピクセル数。
Res YInteger書き出す画像の縦方向のピクセル数。
FilenameString保存するファイル名。空の場合は既定の名前が使われます。
CameraObject撮影に使うカメラを指定するためのピン。
Mask EnabledBooleanカスタム深度などを利用したマスク処理を有効にするかどうか。
Capture HDRBooleanHDR形式(.exr など)での書き出しを行うかどうか。
Delay / Force Game View などBoolean / Real ほか撮影までの待機時間や、ゲームビュー表示の強制など、撮影条件を補助するピン。

解像度を「倍率」ではなくピクセル数(Res X / Res Y)で指定する点に注意してください。たとえば現在の画面が1920×1080で、その2倍に相当する画像が欲しい場合は、Res X=3840、Res Y=2160 のように具体的なピクセル数を入力します。元の画面とアスペクト比(縦横比)が大きく異なる値を指定すると、画角が変わって見える場合があるため、用途に合わせて縦横比を意識して設定すると扱いやすくなります。

Cameraピンに撮影用のカメラを指定すると、そのカメラから見た映像を書き出せる場合があります。プレイヤーの視点とは別のアングルから決まった構図でキャプチャしたいときに役立ちます。Mask EnabledやCapture HDRといったピンは、合成用に被写体を切り抜きたい場合や、後段で広いダイナミックレンジを保持したまま編集したい場合に利用します。これらの細かな挙動はバージョンによって差があるため、まずは少数の設定から試すと把握しやすくなります。

保存先(Saved/Screenshots)

撮影された画像は、既定ではプロジェクトのSaved/Screenshotsフォルダ配下に保存されます。さらに実行中のプラットフォーム名のサブフォルダ(WindowsであればSaved/Screenshots/Windows)に出力されるのが一般的です。

Filenameピンにディレクトリ区切りを含むパスを指定すると、サブフォルダを切って保存できる場合があります。書き出し先が見つからないときは、まずこのSavedフォルダ配下を確認してください。なお、保存先のパスや命名規則はエンジンのバージョンや設定によって差異が出ることがあるため、最初の数枚は実際の出力先を確かめると確実です。

コンソールコマンド HighResShot との関係

UE5には、同じく高解像度スクリーンショットを撮るためのコンソールコマンドHighResShotがあります。BlueprintのTake High Res Screenshotノードと、内部の仕組みや出力結果は共通する部分が多く、用途に応じて使い分けます。

BlueprintからHighResShotを使いたい場合は、Execute Console Commandノードでコマンド文字列を渡します。パッケージ化したゲーム内での確実な撮影には、こちらの方法がよく使われます。

HighResShot 2

HighResShot 3840x2160

HighResShot filename=Shot01 3840x2160 bCaptureHDR=1

1つ目のように数値だけを渡すと、現在の画面解像度に対する「倍率」として解釈されます(HighResShot 2なら2倍、1920×1080なら3840×2160相当)。2つ目のように幅x高さの形式で渡すと、解像度をピクセル数で直接指定できます。3つ目のように、ファイル名やHDR出力などのオプションを併記することも可能です。

主な引数には次のようなものがあります(バージョンにより異なる場合があります)。

引数 意味
数値(例: 2)現在解像度に対する倍率を指定。
幅x高さ(例: 3840x2160)出力解像度をピクセル数で直接指定。
filename=名前保存するファイル名を指定。
bMaskUsingCustomDepth=1カスタム深度をマスクとして利用。
bCaptureHDR=1HDR(.exr)形式で書き出し。

基本的な使い方の流れ

Blueprintでの基本的な手順は次のとおりです。撮影のきっかけや前後処理は、作りたい演出に合わせて調整してください。

  • 撮影のきっかけとなるイベント(キー入力やゲーム内イベントなど)を用意する。
  • 必要に応じてHUDやWidgetを非表示にし、撮りたいルックに画面を整える。
  • Take High Res Screenshotノードを実行し、Res X / Res Y に目的のピクセル数を指定する(保存名が必要ならFilenameも設定)。
  • 撮影後、非表示にしたUIを元の状態へ戻す。
  • 出力された画像をSaved/Screenshots配下で確認する。

ランタイムでの確実性を重視する場合は、ノードの代わりにExecute Console CommandからHighResShotを呼び出し、同様の前後処理を組み合わせる構成も検討できます。どちらの方法でも、撮影前に画面の状態を安定させておくことが、狙いどおりの結果を得る近道です。

UIを含めずに撮りたい場合

HUDなどのUIを含めずにスクリーンショットを撮りたい場合は、撮影の直前にUIを非表示にする運用が確実です。Blueprint側でHUDやWidgetの表示を切り替えてから撮影し、撮影後に元へ戻す、といった流れにすると、意図しないUIの写り込みを避けられます。コンソール側では、デバッグ表示などをまとめて消す目的でShowFlag系のコマンドや、ゲームビュー表示を併用する方法もあります。

SceneCapture2Dとの違い

似た目的のしくみにSceneCapture2Dがありますが、これは「プレイヤーが見ている画面」をそのまま大きく書き出すものではなく、シーン内に配置した専用カメラの映像をテクスチャ(Render Target)へ描き込むためのコンポーネントです。鏡やセキュリティモニタ、ミニマップなど、ゲーム内のサーフェスに映像を映す用途に向いています。一方、Take High Res Screenshotはプレイヤー視点のフレームを高解像度の画像ファイルとして保存することが目的であり、両者は役割が異なります。

落とし穴と注意点

注意したいポイント
  • 巨大解像度はメモリ・GPU負荷が高い:公式ドキュメントでは、非常に大きな倍率を指定するとグラフィックドライバが応答しなくなり、クラッシュする可能性があると注意されています。その場合は解像度を下げて試すことが推奨されています。
  • シェーダや描画の準備待ち:レベルを開いた直後など、シェーダのコンパイルやストリーミングが完了していない状態で撮ると、本来の見た目と異なる画像になることがあります。描画が安定してから撮影してください(関連記事もあわせて参照してください)。
  • 保存先パスの確認:書き出した画像が見当たらないときは、まずプロジェクトのSaved/Screenshots配下を確認します。パスや命名はバージョン・設定で変わる場合があります。
  • ランタイムでの動作差:ノードはエディタ用途として説明されています。パッケージ後のゲーム内で撮りたい場合は、HighResShotコマンドの実行を含め、対象バージョンで動作を確認すると安心です。

よくある質問(FAQ)

Q. 撮影した画像はどこに保存されますか?

A. 既定では、プロジェクトのSaved/Screenshotsフォルダ配下(WindowsではSaved/Screenshots/Windows)に保存されます。Filenameやコマンドのオプションで保存名を変えられる場合があります。

Q. 解像度は倍率とピクセル数のどちらで指定しますか?

A. Take High Res ScreenshotノードはRes X / Res Yでピクセル数を直接指定します。コンソールコマンドHighResShotでは、数値だけを渡すと倍率、幅x高さ形式で渡すとピクセル数指定になります。

Q. パッケージ化したゲーム内でも高解像度スクリーンショットを撮れますか?

A. ランタイムでの確実な方法としては、Execute Console CommandノードからHighResShotを実行する方法がよく使われます。ノード単体での挙動はエンジンのバージョンによって異なる場合があるため、対象バージョンでの動作確認をおすすめします。

Q. UIを含めずに撮るにはどうすればよいですか?

A. 撮影の直前にHUDやWidgetを非表示にし、撮影後に戻す運用が確実です。ゲームビュー表示やShowFlag系コマンドを併用する方法もあります。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. Event BeginPlay
  2. Event ActorBeginOverlap
  3. Event Tick
  4. on component begin overlap
  5. On Component Hit
  6. CameraBoom(Spring Arm)
  7. Get Player Character
  8. Nav Mesh Bounds Volume
  9. AI MoveTo
  10. Pawn
  11. Create Render Target 2D
  12. Take High Res Screenshotノード
  13. Sphere Reflection Capture
  14. Event Tickノード
  15. ウィジェットのキャンバスパネル
  16. DefaultSceneRoot
  17. FloatingPawnMovement
  18. Set World Rotation
  19. Event Any Damage
  20. Set World Rotation
  21. VInterp To
  22. Get Socket Transform

最近更新/作成されたページ