関連ブログ
- [UE4][UE5]開発環境の容量を少しでも減らす 2024.08.14UE
- [UE5] PushModel型のReplicationを使い、ネットワーク最適化を図る 2024.05.29UE
- [UE5]マテリアルでメッシュをスケールする方法 2024.01.17UE
CATEGORY
2016.12.27UE4UE/ 建築向け
みなさん、こんにちは!
本日は、建築プレゼン用等でUE4を用いた時に、
BPでHUD込みのスクリーンショットを取る方法のお話です。
□スクリーンショットを取る方法
スクリーンショットを取る方法はいくつかあり、
公式ドキュメントや、弊社ブログにも載っています。
○公式ドキュメント
https://docs.unrealengine.com/latest/JPN/Engine/Basics/Screenshots/index.html
○弊社ブログ
https://historia.co.jp/archives/3478
今回は、スクリーンショットをさらにBPを用いて使ってみます。
□BPでスクリーンショットをとってみる
今回は、例として建築ビジュアライゼーションで、
ウォークスルー用に作成したマップを想定して進めてみます。
同じマップは、UE4サンプルのRealisticRendering内にありますので、ダウンロードできます。
さらに、プロジェクトの中で、プレゼン資料に用いるHUDを作ってみます。
準備ができましたので、スクリーンショットを取ってみます。
公式ドキュメントに、コンソールコマンドを用いてスクリーンショットをとる方法がのっていますので、
こちらをBPのExecute Console Commandを用いて、実行してみます。
今回はTボタンを押すと、スクリーンショットが取られます。
すると、HUDが無視されて、ビューポート内の映像がそのまま保存されてしまいます。
どうやら、Execute Console Commandノードを用いてスクリーンショットを取ると、
HUDが無視されてしまうようです。
せっかく作成したHUDを取れなくては、苦労のかいがありません。
この問題はC++を用いて作成したBPノードで、解決することができます。
□C++で関数を作成する
C++で、適当なクラスを作成し、スクリーンショットをHUD込みでとる関数を作成します。
記述は下記の通りになります。
1 2 |
UFUNCTION(BlueprintCallable, Category = "ScreenShot") void Screenshot(const FString & InFilename, bool bInShowUI); |
1 2 3 4 5 6 7 |
void AScreenShot::Screenshot(const FString & InFilename, bool bInShowUI) { FScreenshotRequest SR = FScreenshotRequest(); FString savelocation = FPaths::ConvertRelativePathToFull(FPaths::GameDir()); FString filename = savelocation + FString(TEXT("/Saved/Screenshots/")) + InFilename + FString(TEXT(".png")); SR.RequestScreenshot(filename, bInShowUI, false); } |
実装部5行目の、FString filename内で指定している /Saved/Screenshots/
で指定したプロジェクト内のパスへ、スクリーンショットが保存されます。
□ScreenShotノードを使ってみる
今回はActorクラスを用いて作成したので、まずマップ上にScreenShotクラスをドラッグします。
すると、作成したScreenShotクラスを使えるようになります。
次に、作成したScreenShotノードを、先程のExecute Console Commandを用いた処理に
置き換えます。
FileNameに、保存時の名称を記入し、
Show UIにチェックをいれて、Tボタンを押してみます。
無事にスクリーンショットが保存されました。
また、C++でのプロジェクトの作成方法も、公式ドキュメントや、
弊社ブログでも紹介されています。
○公式ドキュメント
https://docs.unrealengine.com/latest/JPN/Programming/Introduction/index.html
○弊社ブログ
https://historia.co.jp/archives/282
スクリーンショット機能を使って、建築プレゼン等で、
動画、ウォークスルーだけでなく、UE4をフル活用してみましょう!
追記(12/28)
今回のブログで扱った内容を、プラグインとして公開しました。
下記アドレスに置いてありますので、ご活用ください!