UE4游戏Package记录(Windows)

最近对UE4的Package功能进行了使用,整体而言打包功能比想象中复杂一些,限于设备原因只做了Windows和Android的打包。

当前使用的UE4版本为4.10.1。

面向Windows的打包相对简单,基本只要直接使用即可。

视频设定

主要的问题之一是,当前无法在引擎中对游戏的目标分辨率进行设置,在某些情况下会导致打包的效果和PIE的效果相差很大。不过引擎在C++中有提供接口来进行相关的控制,一般在GameMode的BeginPlay中直接调用就可以设置成功了。

 

上面的ScalabilityQuality是可以在编辑器中进行设定的,对应关系如下

UE4游戏Package记录(Windows)UE4游戏Package记录(Windows)

另外名为Screen Percentage的属性是在PostProcess的属性中进行设置的。以及,如果要修改抗锯齿的方式,也需要在PostProcess中进行。

运行黑屏

打包之后运行直接黑屏的话可能是由很多原因引起的,不过如果是在打包测试的过程中直接使用新项目,或者之前没有进行过设置变更的话,还是可能遇到。原因是没有对默认地图进行设置,主要表现是,完全的黑屏,但是调试输出却可以显示在屏幕上。

在【项目设置>>项目>>地图&模式】中进行修改即可。

UE4游戏Package记录(Windows)

莫名的链接错误

这个错误的出现几率比较低,而且链接错误有很大的可能性是其他原因引起的,所以排查起来很麻烦。如果之前都是正常的却突然出现类似这样的情况:

MainFrameActions: 打包 (Windows (64位)): UnrealBuildTool: [1/1] Link Test_mp.exe

MainFrameActions: 打包 (Windows (64位)): UnrealBuildTool:      ڴ      F:\Unreal\Test_mp 4.10\Binaries\Win64\Test_mp.lib  Ͷ    F:\Unreal\Test_mp 4.10\Binaries\Win64\Test_mp.exp

MainFrameActions: 打包 (Windows (64位)): UnrealBuildTool: UELinkerFixups.cpp.obj : error LNK2019:  ޷        ⲿ     “void __cdecl EmptyLinkFunctionForGeneratedCodeOnlineSubsystemSteam(void)” (?EmptyLinkFunctionForGeneratedCodeOnlineSubsystemSteam@@YAXXZ)   ÷    ں    “void __cdecl UELinkerFixups(void)” (?UELinkerFixups@@YAXXZ)  б

MainFrameActions: 打包 (Windows (64位)): UnrealBuildTool: UELinkerFixups.cpp.obj : error LNK2019:  ޷        ⲿ     “void __cdecl EmptyLinkFunctionForStaticInitializationUE4Game(void)” (?EmptyLinkFunctionForStaticInitializationUE4Game@@YAXXZ)   ÷    ں    “void __cdecl UELinkerFixups(void)” (?UELinkerFixups@@YAXXZ)  б

MainFrameActions: 打包 (Windows (64位)): UnrealBuildTool: UELinkerFixups.cpp.obj : error LNK2019:  ޷        ⲿ     “void __cdecl EmptyLinkFunctionForStaticInitializationOnlineSubsystemNull(void)” (?EmptyLinkFunctionForStaticInitializationOnlineSubsystemNull@@YAXXZ)   ÷    ں    “void __cdecl UELinkerFixups(void)” (?UELinkerFixups@@YAXXZ)  б

MainFrameActions: 打包 (Windows (64位)): UnrealBuildTool: UELinkerFixups.cpp.obj : error LNK2019:  ޷        ⲿ     “void __cdecl EmptyLinkFunctionForStaticInitializationOnlineSubsystemSteam(void)” (?EmptyLinkFunctionForStaticInitializationOnlineSubsystemSteam@@YAXXZ)   ÷    ں    “void __cdecl UELinkerFixups(void)” (?UELinkerFixups@@YAXXZ)  б

MainFrameActions: 打包 (Windows (64位)): UnrealBuildTool: F:\Unreal\Test_mp 4.10\Binaries\Win64\Test_mp.exe : fatal error LNK1120: 4    ޷        ⲿ

可以尝试在打包设定中勾选Full Rebuild

UE4游戏Package记录(Windows)

不过需要注意的是,如果使用的是源码版的引擎的话,会消耗大量的时间。

杂项记录

打包的过程中还遇到了一些其他的错误,这里姑且记录一下。

在打包完成之后运行游戏始终出现这样的错误:

Windows 无法访问指定设备、路径或文件。您可能没有合适的权限访问这个项目。

最后解决办法是把安全软件给关掉,有的安全软件会在没有任何提示的情况下将文件给隔离/删除掉。

还有一个错误是在Ship打包的时候,运行游戏出现错误:

Failed to open descriptor file ‘../../../Blank-Win64-Shipping/Blank-Win64-Shipping.uproject’

这个似乎是打包功能的Bug引起的,又或者就是这样的设定。总之将对应的文件名进行修改就可以了,修改运行文件本身的文件名也是可以的。

本博客所有内容遵循CC BY-NC-SA 4.0协议, 如有转载,请注明出处。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">