ue3d了解UE5.1蓝图命名空间

了解UE5.1蓝图命名空间

分类:

虚幻UE5引擎中的蓝图命名空间可以防止加载不必要的资产,从而加快蓝图资产的打开时间。就像在现有的编程语言中一样,因此它们可以被视为与另一个空间中的命名空间不同的分组。

ue3d - 了解UE5.1蓝图命名空间

对于蓝图,仅加载存在于同一命名空间中的 BP 资产,当按蓝图命名空间分离时,则加载有前后关系。如果命名空间不同,则不会加载不必要的项目,因此也会进行不必要的显示。

这个功能在使用全局函数或宏库时非常有用,当编辑器启动时,函数和宏库被加载到内存中,往往会显示很多不必要的信息,这是因为它从启动时就识别出该库是全局存在的。

因此…蓝图命名空间对此进行过滤,以便只能看到同一命名空间中的内容。

本文使用 5.1 进行讲解,大家可以在 Epic Games Launcher 中下载 5.1 最新版本,因为我对比了 5.0.3 中的命名空间还是有点区别的。

ue3d - 了解UE5.1蓝图命名空间

…如果你还没安装虚幻UE5引擎,可以阅读3D天堂站内详细文章如何安装它。

设置蓝图命名空间

要设置命名,首先需要去虚幻引擎编辑器偏好设置下,检查一下是否启用了命名空间编辑器功能。

该功能我在 5.0.3 中对比了下,5.0.3 默认是没启用,并且存在于实验性选项卡下,因为蓝图命名空间被列为工作流选项中,因此可视为 5.1 正式引入命名空间。

ue3d - 了解UE5.1蓝图命名空间

此时在内容管理面板,双击一个蓝图。

ue3d - 了解UE5.1蓝图命名空间

打开之后会注意到在顶部有个类设置按钮。

ue3d - 了解UE5.1蓝图命名空间

在详细信息中有一个蓝图命名空间项,可以使用图命名空间显式添加命名,这里我将其设置为 testBlueprintnamespace,添加后一定要编译并点击保存否则不能正常工作。

ue3d - 了解UE5.1蓝图命名空间

那么以上是简单的蓝图命名空间的流程,接下来我们试试蓝图命名空间的过滤分组。

按命名空间过滤函数库

接着在内容中创建一个 BP 函数库,新建一个名称为 My_Blueprint 的蓝图,在该函数库上创建一个名为 My Func 的函数。

ue3d - 了解UE5.1蓝图命名空间

现在直接添加命名空间,命名为 i3dttBlueNamespace。

ue3d - 了解UE5.1蓝图命名空间

添加后一定要点击保存和编译,否则不能正常工作。

ue3d - 了解UE5.1蓝图命名空间

此时可以在内容库中将鼠标悬停在蓝图上,在弹出的对话框底部有标记命名空间为刚才设置的。

ue3d - 了解UE5.1蓝图命名空间

接着我们尝试从另一个 BP 资产中搜索新命名空间下的 My Func,此时你会发现,搜索不到。

ue3d - 了解UE5.1蓝图命名空间

通常情况下自定义函数库可以在其他类型中使用的,那么它的巧妙之处就在这里了。此时你需要重复上面那个操作,在类设置中并将命名空间设置为 i3dttBlueNamespace。

设置后,导航到事件图表,现在 My Func 显示为可搜索到的上下文中,这是因为有着相同的命名空间都可见。

当设置为相同蓝图命名空间,那么在事件图表中该组下的函数都可以找到并使用,反之则不显示
当设置为相同蓝图命名空间,那么在事件图表中该组下的函数都可以找到并使用,反之则不显示

不可见导入命名空间

通常命名空间会自动不可见地导入命名,例如,一个 My_Blueprint_02 继承了 My_Blueprint 的资产 ,并且将 My_Blueprint_02 添加了一个名为 i3dttcom_Blue 的命名空间。

例如我打开该资产添加一个需要的变量,更改变量类型以切换到 My_Blueprint 中的对象引用类型,这时候如果勾选了隐藏未导入的类型,则命名空间没有被导入,所以在搜索中不会显示。

当使用相同资产时,在类设置已导入命名空间将显示引入的命名空间
当使用相同资产时,在类设置已导入命名空间将显示引入的命名空间

如果存在 i3dttcom_Blue 命名空间,即刚刚通过按类设置的 My_Blueprint 命名空间,此时它将被直接导入至已导入选项下。

全局导入命名空间

这个功能可以在编辑器偏好设置和项目设置中定义全局导入的命名空间。

编辑器偏好设置是从蓝图编辑器设置类别中添加全局命名空间导入,括号中提示仅本地用户,也就是说本地项目内所有 BP 中的命名空间。

蓝图编辑器设置全局命名空间导入,仅本地项目内所有 BP 中的命名空间
蓝图编辑器设置全局命名空间导入,仅本地项目内所有 BP 中的命名空间

项目设置是从蓝图项目设置分类中的全局命名空间导入,是共享的整个项目中的 BP 包含命名空间。

蓝图项目设置 全局命名空间导入,该处是共享的整个项目中的BP资产
蓝图项目设置 全局命名空间导入,该处是共享的整个项目中的BP资产

本文总结

以前需要添加与平台相关的代码,而现在不需要再这些之上添加更多的层,由于在命名空间中对 BP 资产进行分组,相同命名空间之间的 BP 就不会发生无用的读取,从而加快蓝图资产的打开时间。

这个对于有大量蓝图函数库和宏库资产的项目非常有用,虚幻引擎通常会在初始化时全部加载,那么蓝图命名空间的引入在一定程序上优化了加载 BP 资产的读取。

这个功能看上去是不是感觉有点绕来绕去,其实理解它也非常简单,将 BP 资产当成一个组,在组里各干各的活,与世隔绝,一旦需要牵根线引用一下,这根线就是蓝图命名空间。

相关信息

  • 类型:知识
  • 字数:1320
  • 字符:3096
  • 适用软件:虚幻引擎5
  • 说明:无
  • 编号:87545

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!