タイトル: カメラに映った画面をスクリーンショットとして保存する方法
SEOタイトル: UE5でカメラに映った画面をスクリーンショットとして保存する方法
Unreal Engine 5(UE5)では、カメラの映像をスクリーンショットとして保存する方法がいくつかあります。本記事では、ブループリントを使用して簡単にスクリーンショットを取得し、保存する方法を詳しく解説します。
1. UE5でスクリーンショットを取得する方法
UE5では、スクリーンショットを取得する方法として以下の方法があります。
- コンソールコマンドまたはブループリントを使用する方法
- Render Targetを活用する方法
それぞれの方法について詳しく見ていきましょう。
2. コンソールコマンドまたはブループリントを使用する方法
UE5では、コンソールコマンドを使用することで、簡単にスクリーンショットを撮ることができます。また、ブループリントを使えば、特定のタイミングでスクリーンショットを撮影することも可能です。
例えば、以下のコマンドを実行すると、スクリーンショットを撮影できます。
HighResShot 1920x1080
このコマンドをブループリントで実行する場合は、「Execute Console Command」ノードを使用し、Command入力に HighResShot 1920x1080 を設定すれば、同じ結果を得ることができます。
3. Render Targetを使用したスクリーンショット保存
高品質なスクリーンショットを取得する方法として、Render Targetを使用する方法があります。
この方法では、Scene Capture 2Dを使用し、Render Targetに描画された映像をテクスチャとして取得し、それを画像ファイルとして保存します。
4. スクリーンショットのファイル名を取得する方法
UE5でスクリーンショットを保存する際に、ファイル名を取得する方法は使用するスクリーンショットの取得手段によって異なります。
4.1 コンソールコマンド (`HighResShot`) の場合
`HighResShot 1920x1080` を実行すると、スクリーンショットは `Saved/Screenshots/{プラットフォーム名}/` に保存されます。
ただし、この方法では **ファイル名が自動生成** され、直接取得することはできません。スクリーンショットの命名規則は以下のようになります:
`HighresScreenshot00000.png`
`HighresScreenshot00001.png`
番号は連番で増えていきます。
4.2 ブループリントでスクリーンショットを保存
ブループリントを使用すると、スクリーンショットの保存時にファイル名を指定できます。
例として、`HighResShot 1920x1080 filename=MyScreenshot` をコンソールコマンドで実行すれば、`Saved/Screenshots/{Platform}/MyScreenshot.png` に保存されます。
4.3 C++ でスクリーンショットのファイル名を取得
C++では `FScreenshotRequest::CreateViewportScreenShotFilename()` を使うことで、スクリーンショットの保存予定パスを取得できます。
以下のコードを使うことで、保存されるファイル名を事前に確認できます:
FString ScreenshotPath = FScreenshotRequest::CreateViewportScreenShotFilename(); UE_LOG(LogTemp, Log, TEXT("Screenshot will be saved as: %s"), *ScreenshotPath);
4.4 ファイル名取得方法の比較
| 方法 | ファイル名の取得可否 | メリット | デメリット |
|---|---|---|---|
| コンソール (`HighResShot`) | ❌ 直接取得不可 | すぐに撮影できる | 自動生成されるため不明 |
| ブループリント (`HighResShot filename=`) | ✅ 取得可能 | 任意の名前を指定できる | コマンド入力が必要 |
| C++ (`FScreenshotRequest`) | ✅ 取得可能 | 事前に保存パスがわかる | C++の知識が必要 |
「ファイル名を指定して保存」できる方法を選べば、確実に取得できます!
5. まとめ
UE5でスクリーンショットを保存するには、用途に応じて最適な方法を選択することが重要です。
- 手軽に撮影する場合:コンソールコマンドまたはブループリントのノードを使用
- 高品質なスクリーンショットが必要な場合:Render Targetを使用
また、スクリーンショットのファイル名を取得したい場合は、**ブループリントまたはC++の手法を活用** するのが最適です。