--- 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 ## 本人插件 ![](https://cdn.jsdelivr.net/gh/blueroseslol/ImageBag@latest/ImageBag/Images/MultiDraw_MarketPlace.png) 想制作backface outline、Fur(没在插件中实现)等需要多Pass的功能的效果可以考虑使用我的插件: https://www.unrealengine.com/marketplace/en-US/product/multidraw