(126)原生化蓝图

这是一个实验性 beta 功能。所有虚幻引擎 4 游戏实例和部分中等大小的 demo 均已成功原生化,但我们仍在努力,力求在大型项目中使用此功能。

全新的蓝图原生化工具可从项目蓝图生成本地 C++ 代码。完成项目后在编辑器外进行测试或进行发布时,将使用生成的代码对项目进行编译。所有蓝图类将被新生成的本地类替代。蓝图原生化的主要目的是降低项目运行时版本中的虚拟机(VM)开销。因此,生成的代码并未设计为“友好”或可重复使用。

此页面将助您上手项目蓝图的原生化。对纯蓝图项目而言,这应该是透明度最高的一个流程。如项目中也使用了 C++,或需要对原生化代码进行调试,请查阅 高级蓝图原生化 中的更多内容。

启用蓝图原生化

如需启用蓝图原生化,使用 Edit 菜单 打开 Project Settings。在 Packaging 下启用 Nativize Blueprint Assets 复选框。

之后打包项目时,以下蓝图资源将被原生化:

  • 蓝图类

  • 蓝图函数库

  • 蓝图接口

  • 动画蓝图

  • 控件蓝图

  • 用户定义结构

  • 用户定义枚举

当前 关卡蓝图 将不会被转换。原生化代码保存的路径为 [项目目录]\Intermediate[制作平台]\NativizedAssets\Source\NativizedAssets\

从转换中排除蓝图

也可从转换中排除特定 蓝图。在项目的 DefaultEditor.ini 文件中创建一个 [BlueprintNativizationSettings] 标题。

  • 如需排除特定类型的资源,设置 ExcludedBlueprintTypes。例如,+ExcludedBlueprintTypes=/Script/UMGEditor.WidgetBlueprint 不会转换 控件蓝图

  • 如需排除单个资源,设置 ExcludedAssets。例如,+ExcludedAssets=/Engine/Tutorial/SubEditors/TutorialAssets/Character/TutorialCharacter 不会转换 教程角色

资源只有在被制成后才可进行原生化。如果未指定制作器制作资源/地图,它将对项目 Content 目录下的所有内容进行制作。如发现部分未使用的蓝图正被原生化,也可使用地图列表进行打包,排除资源。

使用虚幻自动化工具进行构建

如要在使用虚幻自动化工具进行构建时原生化蓝图,须在 BuildCookRun 命令行中添加 -nativizeAssets 开关。

C++ 协作

原生化蓝图保存在单独的新模块中,意味着游戏性模块的头文件现在模块之外使用。 须进行检查,确定所有头文件已将使用的所有类和结构体作为内含头文件或前置声明进行声明。

一些规则/限制有助于使手写代码和原生化代码之间的协作更加高效可靠。

不支持以下实现:

  • 带 BlueprintVisible 或 Editable 标记的私有/受保护变量

  • 标记为 BlueprintPure 或 BlueprintCallable 的私有/受保护函数

  • noexport 结构/类

  • 带 BlueprintVisible 或 Editable 标记的位域变量

  • 私有位域变量

  • UBlueprintGeneratedClassUUserDefinedStructUUserDefinedEnum 变量,或基于它们的任意类型

技术细节

原生化蓝图兼容 Visual Studio 2013 和 Visual Studio 2015,但强烈推荐使用 2015,因为它的大项目处理能力更强。 如出现奇怪的编译器/连接器错误(如 LNK1000、LNK1248),可尝试将部分类型或特定蓝图排除,削减原生化蓝图的量。

BlueprintCompilerCppBackend 模块(此路径中:Engine\Source\Developer\BlueprintCompilerCppBackend\)将把蓝图语法树转入 C++。 BlueprintNativeCodeGen 模块(此路径中:Engine\Source\Developer\BlueprintNativeCodeGen\)在烘焙和打包时可大展身手。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值