0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UE5】動的にスクリーンショットを撮影し、指定したファイルを差し替え保存する方法

Last updated at Posted at 2024-11-29

はじめに

通称「極め本」完了後に躓いたので記録。
イベント内でスクリーンショットを撮影し既存のファイルに上書き保存しようとしたところ、ブループリントでは無理そうだったので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を変更することで保存するファイル名を変えられる。
func.png

func.png

結果

セーブデータのプレビュー画像を表示するなど、スクリーンショットをゲーム内で活用できる!!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?