在之前的虚幻引擎版本中,要更改关卡中的一个或多个Actor,必须从源控制中检出文件。在你完成工作之前,其他团队成员访问不了该文件;这样会导致开发流程速度变慢,因为一次只有一个人员可以处理该文件。
一Actor一文件(One File Per Actor,简称OFPA) 可以将Actor实例的数据保存到外部文件中,更改Actor时不再需要保存主关卡文件,从而减少用户之间的重叠。
"一Actor一文件"功能仅在编辑器中可用。在烘焙时,所有Actor都嵌入到各自的关卡文件。
使用世界分区时,默认启用"一Actor一文件"。在世界分区关卡外部使用OFPA目前被视为试验性的,默认启用。要在世界分区外部启用OFPA,请执行以下操作:
- 在主菜单中,前往 编辑(Edit)> 编辑器偏好设置(Editor Preferences) 。
- 从侧边栏,选择 试验性(Experimental) 。
- 找到 工具(Tools) 分段并勾选 一Actor一文件(One File Per Actor) 的复选框。
启用"一Actor一文件"
"一Actor一文件"功能设计为具有精细粒度,可以通过两种不同方式使用。
第一种方法是从 细节(Details) 面板在单独的Actor上手动启用OFPA。
有时你可能需要一次为一个Actor启用OFPA。为此,搜索 细节(Details) 面板中的 打包模式(Packaging Mode) 选项,并从下拉菜单选择 外部(External) 。
为单个Actor启用OFPA。
选择此选项后,系统将询问你是否要为关卡中的所有Actor启用该功能。选择 是(Yes) 会将关卡中的所有Actor转换为OFPA,选择 否(No) 将仅为所选Actor启用该功能。
你需要为Actor和关卡保存新创建的外部数据包。此后,你不需要在修改Actor后再次保存关卡。
第二种方法是为整个关卡启用"一Actor一文件"。
为关卡启用OFPA。
为此,请按照以下步骤操作:
- 打开 世界设置(World Settings) 面板。在主菜单中,前往 窗口(Window)> 世界设置(World Settings) 。
- 找到面板的 世界(World) 分段并勾选 使用外部Actor(Use External Actors) 旁边的复选框。
- 启用此选项后,保存关卡。
-
系统将询问你是否要将所有Actor转换为外部打包。选择 是(Yes) ,完成OFPA的转换。
点击"是(Yes)"以转换关卡中的所有Actor。
转换子关卡
务必要注意,当你为关卡激活 使用外部Actor(Use External Actors) 选项时,只有当前关卡会转换为OFPA。要转换子关卡,你必须将其加载并为其启用 使用外部Actor(Use External Actors) ,如上所述。如果你的关卡包含多个子关卡,这样做可能会出现问题,你可以使用Commandlet自动转换关卡及其子关卡。
Commandlet的详细讲解。
请按照下面的步骤使用此Commandlet:
-
打开命令提示符窗口。
-
在提示符处,找到 UnrealEditor.exe 文件的位置。例如:
C:\Builds\Home_UE5_Engine\Engine\Binaries\Win64
。 - 接下来,开始输入命令。先键入将运行该Commandlet的
.exe
文件的名称,即UnrealEditor.exe
。 -
添加Commandlet的名称和以下参数:
-run="ConvertLevelsToExternalActorsCommandlet"
是Commandlet的名称。-nosourcecontrol
将告知Commandlet不使用源码控制。-convertsublevels
将告知Commandlet转换贴图可能拥有的所有子关卡。
-
使用关卡位置完成命令:
"/Game/Maps/TestMaps/ExternalActors/MasterMap"
在此示例中, Game 是项目名称, MainMap 是你希望转换的贴图的名称。 - 按 Enter 键运行Commandlet。它会将关卡和所有子关卡转换为OFPA。
将OFPA用于源码控制
在你的源控制应用程序中工作时,你会注意到外部Actor文件名称已编码。要解决此问题,你可以在提交之前使用 查看变更列表(View Changelist) 窗口查看和验证变更列表的内容。
使用OFPA的关卡的现有变更列表。
此窗口将显示现有更改列表以及列表包含的文件。对于外部Actor,你可以看到Actor名称、关卡路径和资产类型,而不是编码的文件名。
在编辑器中内置变更列表支持的情况下,你可以先验证变更列表的内容,然后再将其提交到源码控制。这是必须执行的操作,因为OFPA给项目带来了更多的复杂性。例如,用户可能检出多个文件,但只提交了其中的一部分,可能会导致出现悬空的引用。
如需详细了解如何在虚幻引擎中使用源码控制,请参阅"编辑器中的源码控制"。
使用OFPA时,内容和Actor文件应该从编辑器中提交到源码控制。
仅当使用Perforce作为源码控制提供程序时,才会提供变更列表支持。