はじめに
通称「極め本」完了後に躓いたので記録。
イベント内でスクリーンショットを撮影し既存のファイルに上書き保存しようとしたところ、ブループリントでは無理そうだったのでC++でファイルを削除して差し替えるよう実装した。
UEのバージョンは5.5.0
前提知識・技能
C++クラスの作成
手順
差し替え対象ファイルの削除
C++でブループリント関数ライブラリを作成し、指定したファイルを削除する以下のような関数を作成した。
MyBlueprintFunctionLibrary.h
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "MyBlueprintFunctionLibrary.generated.h"
/**
*
*/
UCLASS()
class MYCITYBUILDER_API UMyBlueprintFunctionLibrary : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
//新たに追加した部分
UFUNCTION(BlueprintCallable, Category = "MyBlueprintFunctionLibrary")
static void DeleteFile(FString A);
};
MyBlueprintFunctionLibrary.cpp
#include "MyBlueprintFunctionLibrary.h"
#include "stdio.h"
//新たに追加した部分
using namespace std;
void UMyBlueprintFunctionLibrary::DeleteFile(FString ImageFileName)
{
string strImageFileName = TCHAR_TO_ANSI(*ImageFileName);
remove(strImageFileName.c_str());
}
スクリーンショットの撮影
スクリーンショットはExecute Console Command
関数でコンソールコマンドShotをオプション引数でファイル名を指定して実行し保存する。
古いファイル削除後にスクリーンショットを保存することでファイルを差し替えるよう実装した。
カスタムイベントの引数Slot
を変更することで保存するファイル名を変えられる。
結果
セーブデータのプレビュー画像を表示するなど、スクリーンショットをゲーム内で活用できる!!!