2019.11.30更新
一些人私聊我说重新构建生成sln都没法进都编译不了。。。。。。 我还是录个视频好了。
插件正式开始
先来上个图和视频吧。
最近抽空做了个截图插件,这个思路是最近看一些3A大作都有那种游戏内摄影的工具,比如最喜欢的GTA5,里面就可以掏出手机,然后各种修改滤镜修改各种后期效果。
所以我做了一个精简的版本,初步实现的有LUT修改色调,3个常用的后期参数(可以自行增加更多),相框,然后一个高清截图,其他所需的功能很方便拓展。
插件中自定义一个BPLibrary,继承UE本身FScreenshotRequest类下的RequestScreenshot,很方便就可以调用,然后做了2个结构体,一个返回路径一个返回名字,如下所示:
USTRUCT(BlueprintType)
struct FES_SaveName
{
GENERATED_USTRUCT_BODY()
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "ES_Shot")
FDateTime esTime = FDateTime();
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "ES_Shot")
FString esNowTime = FDateTime::Now().ToString();
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "ES_Shot")
FString esUser = FPlatformProcess::UserName();
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "ES_Shot")
FString esPC = FPlatformProcess::ComputerName();
};
USTRUCT(BlueprintType)
struct FES_SavePath
{
GENERATED_USTRUCT_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ES_Shot")
FString Documents = FPaths::ConvertRelativePathToFull(FPlatformProcess::UserDir());
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ES_Shot")
FString Saved = FPaths::ConvertRelativePathToFull(FPaths::GameSavedDir());
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ES_Shot")
FString Content = FPaths::ConvertRelativePathToFull(FPaths::GameContentDir());
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "ES_Shot")
FString GameDir = FPaths::ConvertRelativePathToFull(FPaths::GameDir());
};
默认结构体中包含了几个路径,还可以自己直接使用“D:/”等这种本地路径或者结构体中的Game目录再Append一个新的路径下。
使用方法就是把插件目录的Content下BP_DefaultPP拖D入需要场景,然后按5呼出UMG,其他逻辑都在UMG_PhotoMode的UMG中编写的。
最后放上源码和示例工程:
4.23开发,请手动生成编译下解决方案。
链接:https://pan.baidu.com/s/1ihFJkD4Vz8R1PjVW_Wo3MQ
提取码:s800