84 lines
5.1 KiB
Markdown
84 lines
5.1 KiB
Markdown
|
---
|
|||
|
title: 虚幻商城发布插件指南
|
|||
|
date: 2022-11-04 10:17:18
|
|||
|
excerpt: 摘要
|
|||
|
tags:
|
|||
|
rating: ⭐
|
|||
|
---
|
|||
|
## 前言
|
|||
|
前段时间本人尝试发布自己写的插件到Market Place,因为每次审核会需要1~3天时间不等,所以在这里分享一下我的经验:
|
|||
|
|
|||
|
## 添加插件描述
|
|||
|
- CreatedByURL:一般填写作者介绍的网址,github仓库与主页、blog、小蓝鸟都可以的。
|
|||
|
- Description:对插件的简单描述。
|
|||
|
- DocsURL:文档网址,这里我链接到自己的blog里的文章。也可以使用Github建的主页。
|
|||
|
- MarketplaceURL:在点击Add Product后就会生成一个产品ID,之后将ID替换下面的URL即可。(比如我的产品地址为:https://publish.unrealengine.com/v3/edit-product/657c763ab2e244edbcca955eb81d8377)
|
|||
|
- SupportURL:支持网址,一般会使用discord。
|
|||
|
额外需要注意的就是模块白名单(黑名单),这个需要与发布页面的**Supported Target Platforms**对应。EPIC会在审查时进行构建测试,所以最好是对应平台编译测试通过添加此平台。
|
|||
|
|
|||
|
以下是我的插件描述仅供参考:
|
|||
|
```
|
|||
|
"CreatedByURL": "http://www.blueroses.top/",
|
|||
|
"Description": "This plugin uses UnrealEngine's MeshDraw framework to achieve a multi-Pass effect looks like Unity's, with no post-processing required to achieve strokes and cutoff.",
|
|||
|
"DocsURL": "http://www.blueroses.top/2022/05/02/multidraw-document/",
|
|||
|
"MarketplaceURL": "com.epicgames.launcher://ue/marketplace/content/657c763ab2e244edbcca955eb81d8377",
|
|||
|
"SupportURL": "https://discord.gg/y4fWqYsf4U",
|
|||
|
"Modules": [
|
|||
|
{
|
|||
|
"Name": "MultiDraw",
|
|||
|
"Type": "Runtime",
|
|||
|
"LoadingPhase": "Default",
|
|||
|
"WhitelistPlatforms": [ "Win64" ]
|
|||
|
}
|
|||
|
]
|
|||
|
```
|
|||
|
|
|||
|
## Code
|
|||
|
给所有的代码文件都加上版权声明(模块cs、h、cpp文件都需要),例如我这里填写了:
|
|||
|
>// Copyright 2022 BlueRose, Inc. All Rights Reserved.
|
|||
|
有一个技巧:在项目创建时,可以在Project-Description-Legal-CopyrightNotice里填写,之后创建新类都会自动加上版权信息。
|
|||
|
|
|||
|
## Content
|
|||
|
所有会被引用的二进制Asset都必须放置到插件的Content里,最后还需要使用Fix Up Redirectors In Folder对Redirector进行清理。
|
|||
|
如果你有使用UE的ContentExample项目中的DemoRoom或者其他EPIC项目的资源,那就需要注意排查,将带有UnrealEngine、EPIC、UE4等Logo(标志、符号)的Texture与Materials都删除,不然系统检查会无法通过。
|
|||
|
案例关卡的可以放在插件的Content里,但建议还是将其分离,前期可能会修改2~3次,再加上还需要构建其他版本的插件,如果将案例关卡内容放在插件里就会占用可观的网盘空间。
|
|||
|
|
|||
|
## 打包与构建测试
|
|||
|
使用构建Bat来快速构建多个版本的插件压缩包文件。
|
|||
|
>"D:\UnrealEngine\UE_5.0\Engine\Build\BatchFiles\RunUAT.bat" BuildPlugin -Plugin="D:\UnrealEngine\Project\MarketPlaceProject\Plugins\MultiDraw\MultiDraw.uplugin" -Package="D:\UnrealEngine\Project\Plugins\MultiDraw\" -Rocket -VS2019
|
|||
|
|
|||
|
为了能看到Log我们可以使用:
|
|||
|
>cmd /k "xxxx.bat"
|
|||
|
|
|||
|
打包插件完成之后,上传之前把Binaries与Intermediate删除,压缩成zip格式上传到google或者onedriver之类的就可以了。
|
|||
|
|
|||
|
## 截图
|
|||
|
画廊一般会放置截图,而且这些图片必须为1080p分辨率,所以本人这里使用了UE内置的截图功能:
|
|||
|
https://docs.unrealengine.com/4.27/zh-CN/WorkingWithMedia/CapturingMedia/TakingScreenshots/
|
|||
|
|
|||
|
>HighResShot filename=PATH (XxY OR Multiplier) CaptureX CaptureY CaptureW CaptureH bMaskUsingCustomDepth bDumpBufferVisualizationTargets bCaptureHDR bDateTimeAsFilename
|
|||
|
|
|||
|
- XxY:指定截图的尺寸(宽度x高度)。
|
|||
|
- 乘数(Multiplier):根据指定的值放大截图尺寸。
|
|||
|
- CaptureX CaptureY CaptureW CaptureH:用整数定义视口中要用于截图的区域。
|
|||
|
- bMaskUsingCustomDepth:用一个布尔值(0或1)来控制是否要用自定义深度(Custom Depth)缓冲作为捕获的遮罩。详情请参见自定义深度遮罩。
|
|||
|
- bDumpBufferVisualizationTargets:用一个布尔值(0或1)来控制是否要将GBuffer中的每一个通道都捕获为一张图片并将其导出。
|
|||
|
- bCaptureHDR:用一个布尔值(0或1)来控制是否要使用.EXR文件格式来捕获HDR图片。
|
|||
|
- bDateTimeAsFilename:用一个布尔值(0或1)来控制是否要在生成的文件名中加入时间戳。
|
|||
|
因为展示需要1080p,所以我们只需要使用这个命令即可。
|
|||
|
|
|||
|
>HighResShot 1920x1080
|
|||
|
|
|||
|
## 视频推荐
|
|||
|
我推荐查看以下这3个视频:
|
|||
|
Unreal Engine How To Sell Plugins #1: "Create Plugin"
|
|||
|
https://www.youtube.com/watch?v=v3_HkAU_rls
|
|||
|
Unreal Engine How To Sell Plugins #3: "PackagePlugin"
|
|||
|
https://www.youtube.com/watch?v=SKArLiShb9c
|
|||
|
Unreal Engine How To Sell Plugins #4: "Submitting Plugin for Approval"
|
|||
|
https://www.youtube.com/watch?v=-6QYlGVRIkI
|
|||
|
|
|||
|
## 本人插件
|
|||
|

|
|||
|
想制作backface outline、Fur(没在插件中实现)等需要多Pass的功能的效果可以考虑使用我的插件:
|
|||
|
https://www.unrealengine.com/marketplace/en-US/product/multidraw
|