Unreal Engine 5(UE5)のHighResShotコマンドを使ってスクリーンショットをキャプチャすると、画像ファイルが自動的に指定されたフォルダに保存されますが、保存された画像のファイル名を取得する方法は少し工夫が必要です。この記事では、HighResShotで保存した画像のファイル名を取得する方法について、詳細に解説します。

HighResShotの基本的な動作

まず、HighResShotコマンドの基本的な動作についておさらいします。通常、HighResShotコマンドを使用すると、現在の画面を高解像度でキャプチャし、プロジェクトのSaved\Screenshotsフォルダ内に画像ファイルが保存されます。この画像は、デフォルトで「スクリーンショット」という名前で保存され、日付と時間がファイル名に含まれます。

例えば、コマンドを実行すると、次のようなファイル名の画像が保存されます:

Saved\Screenshots\Windows\HighResShot_2025.02.28_15.25.45.png

このファイル名には、日付(年-月-日)と時刻(時-分-秒)が組み合わさった形で画像ファイルが保存されます。

ファイル名を動的に取得する方法

UE5でHighResShotを使ってスクリーンショットを保存した後、そのファイル名を動的に取得したい場合、いくつかの方法を試すことができます。しかし、直接的にコマンドからファイル名を取得する機能は存在しないため、画像を保存する際にファイル名をカスタマイズし、後でその名前を取得するアプローチが必要になります。

以下では、Blueprintを使用して、HighResShotで保存した画像のファイル名を動的に取得する方法を紹介します。

Blueprintでの実装方法

Blueprintを使用すると、HighResShotを実行する際に、ファイル名をカスタマイズして保存することができます。これを活用して、保存された画像のファイル名を取得することが可能です。

Blueprint内で、Execute Console Commandノードを使い、HighResShotコマンドを実行する際に、ファイル名を指定します。その後、指定した名前を保存するためにファイルパスを取得することができます。具体的には、以下の手順に従います:

  • Execute Console Commandノードを追加
  • コマンドとして「HighResShot」を入力し、ファイル名を指定(例:HighResShot D:/MyScreenshots/CustomScreenshot.png)
  • ファイル名を取得するために、Save GameやFile I/Oノードを使用してファイルのパスを保存
  • 保存されたパスを利用して、後でファイル名を表示または利用する

これにより、スクリーンショットのファイル名をカスタマイズし、その情報を動的に扱うことができます。

ファイル名のカスタマイズと取得の詳細な例

以下は、Blueprintを使って画像を保存した後、保存したファイル名を取得する手順の詳細な例です:

  • Execute Console Commandノードを使って、スクリーンショットを「D:/MyScreenshots/CustomScreenshot.png」として保存する。
  • ファイル保存後、Get File Pathノードを使って、保存された画像のパスを取得。
  • 取得したパスを表示するために、Print Stringノードを使ってコンソールに出力。

これにより、HighResShotで保存した画像の正確なパスとファイル名をBlueprint内で取得できます。

// Execute Console Commandノード Execute Console Command Command: "HighResShot D:/MyScreenshots/CustomScreenshot.png" // Get File Pathノードで画像パスを取得 Get File Path Path: "D:/MyScreenshots/CustomScreenshot.png" // Print Stringノードでファイル名をコンソールに表示 Print String String: "D:/MyScreenshots/CustomScreenshot.png"

保存先のフォルダパスをカスタマイズする方法

UE5では、スクリーンショットの保存先のフォルダパスをカスタマイズすることもできます。これにより、特定のフォルダに画像を保存することができ、後でそのフォルダ内のファイル名を取得することが可能です。

保存先のフォルダをカスタマイズする場合、HighResShotコマンドにフルパスを指定することで実現できます。例えば、以下のように指定します:

HighResShot D:/MyCustomFolder/Screenshot_1.png

このコマンドを実行すると、画像は指定した「D:/MyCustomFolder/」に保存され、ファイル名として「Screenshot_1.png」が使われます。

注意点

ファイル名を動的に取得する際には、いくつかの注意点があります。まず、HighResShotコマンドを実行するタイミングによっては、保存処理が完了する前にファイル名を取得しようとすることがあります。これにより、ファイルが存在しない場合がありますので、処理が完了するまで待機するように注意しましょう。

また、複数のスクリーンショットを連続して撮影する場合、それぞれの画像が異なるファイル名で保存されるため、ファイル名が重複しないように注意が必要です。日付や時刻をファイル名に組み込むことで、同じ名前のファイルが保存されないようにすることが一般的です。

まとめ

HighResShotコマンドを使用して保存した画像のファイル名を取得するためには、ファイル名をカスタマイズして保存し、その後その情報を取得する手段を取ることが必要です。Blueprintを活用することで、保存された画像のパスを動的に取得し、ゲーム内でそのファイルを利用することができます。これにより、HighResShotをさらに柔軟に活用できるようになります。