本文介绍在内容浏览器中执行搜索时的高级搜索语法,并制作保存自定义过滤器。 高级搜索语法支持复杂的搜索查询,能够根据资产元数据的"键-值"对进行搜索,并允许访问特殊键值。
包括 内容浏览器 在内的 搜索框 允许你使用高级语法搜索内容。 默认情况下,在搜索框中输入文本字符串将立即产生结果。这些结果将基于资产的名称或其类别。
- 注意:这些结果仅来自 选中的当前目录和下面的所偶子目录。
例如,键入 将产生包含字符串 BP_Example 的名称的所有资产。如下所示 - 如果在搜索字段中键入 ,内容浏览器将生成名称中包含 Widget 的所有资产以及所有 Widget 蓝图- 左为Widget类型资产 ,右为Widget名称资产
😋这是我们日常的用法 😩虽然这种方法很有用,但如果结果有数百个,甚至数千个,它并不能帮助我们。这就是 搜索语法 的用处所在。
例如,将加号操作符作为前缀添加到 BP_Example 将产生全匹配该字符串的结果。 (会在稍后讲解 “操作符” ) 然后,将否定操作符作为前缀附加到 BP_Example 将只产生不匹配该字符串的资产。
搜索语法是由键 (Key) 、操作符 (Operator) 和值 (Values) 组成的参数。
例如,查找所有 名称 为 BP_Example 的资产的搜索参数如下所示 - 其组成是:
名称 操作符 值 Name = BP_Example
接下来我们分别介绍 Key,Operator,Values
Keys
Keys(键)是参数的指导。
这里需要着重说明一下 资产元数据
资产元数据搜索(Asset MetaData)
大多数可用于搜索的键来自于从资产注册表提取的资产元数据
不过,有几个特殊键适用于所有资产类型。这些特殊键仅支持 或 比较运算符。
元数据是驻留在资产内部的键值对,每种资产类型都有自己特定的元数据集。
提示:在空白搜索字段中添加一个空格以查看所有可用的键。
例如:
- 输入搜索参数 将搜索所有具有超过 10,000 个三角形的静态网格资产。
- 输入搜索参数 将搜索所有混合模式设置为 Masked 的材质。
- 输入 将搜索所有禁用 sRGB 的纹理资产。
Operators
Operators(操作符)是参数的逻辑。
Values
Values(值)是参数的目标。
字符串
使用 无引号 和 带引号 字符串的主要差异在于带引号字符串允许在搜索词中使用空格和特殊字符。
默认情况下,它们将执行部分字符串匹配,除非使用了或 运算符来修改此行为。
一些特殊情况可能必须使用引号 标注为字符串 ,例如:
字符串可以带引号(单引号或双引号),也可以不带引号。 带引号的字符串可以包含嵌套引号;但是,必须使用反斜杠表示嵌套引号结束。
以下是使用单引号和双引号以及反斜杠的部分示例:
必须使用反斜杠来转义对另一个反斜杠的使用。
将搜索参数链接在一起是,是搜索需要真正掌握的地方。通过使用特定的操作符,可以连续链接多个搜索参数。
🤔注意:如之前列表所示,许多运算符都有替代字符。例如 运算符由 字符表示, 运算符由 字符表示等。接下来可能会出现这种写法,不要迷茫
高级搜索简介
通过使用 、 和 运算符,你可以同时测试多个搜索运算。 例如,搜索任何使用半透明材质且该材质使用默认光照着色模型的资产,应使用以下句法:
通过使用 运算符,混合模式和着色模型的运算都必须求值为True的资产才会显示在结果。
如果换成 运算符,任一运算单独求值为True即可显示在结果。 比如,并非每个使用半透明混合模式的材质都将使用默认照明。 对于复杂的高级搜索,同类型运算符必须始终合并起来。如果开始使用不同的运算符类型,括号可以消除不明确性。 例如,我们可以执行两个搜索,然后求值来显示结果。 第一个运算对半透明和默认光照的任何材质求值:
第二个运算会对所有属于延迟贴花类型并且不使用场景颜色的材质进行求值:
可以使用括号对上述两个搜索的结果求值。
通过在两个括号括起的表达式之间使用 运算符,结果将单独对每个括号中的表达式求值,然后显示任意一个为 的结果。如果使用 运算符,则所有四个运算都必须返回 才会显示结果。
实例
输入 搜索:名字包含Rocks的资产
输入 搜索:名字包含Rocks,且 面数超过10000的资产
我们继续 增加 搜索参数
输入
我们搜索到的是:
- 名字包含 Rocks
- 超过 10000 面数
- 仅具有基本的LOD
- Nanite 已禁用(仅限 UE5+)
通过上面的例子,我们通过使用 运算符将越来越多的搜索参数 链接 在一起,搜索变得更加优化,对目标的搜索范围逐渐 缩小 。
但为了使搜索参数更具包容性,我们还可以使用 运算符,增加搜索范围的另一种可能性,将范围 扩大。
例如输入
搜索Name的范围 扩大 到了含Rocks,Gate,Chunk的资产
回到之前的例子,让我们继续使用搜索参数
当我们输入: 😕嘿,不对!我们搜索到的是:
- 名字包含Rocks或Gate的资产
- 名字包含Chunk的资产中超过 10000 面数、仅具有基本的LOD、Nanite 已禁用的资产
🤔发生了什么? 这段搜索参数 仅 连接在了
实际上,这里就应该使用来修复这个参数 通过用包含参数,对参数之间进行隔离 这样我们搜索到的是:
- 名字包含Rocks或Gate或Chunk的资产
- 超过 10000 面数,仅具有基本的LOD ,Nanite 已禁用
自定义过滤器
😟虽然目前我们已经学会了如何编写自己的搜索语法,但是每次搜索都要写这么长一串参数链接,还是太麻烦了! 😮 ……等一下,这个是?
UE4中为💾硬盘图标,UE5为➕加号图标
EPICの怜悯!😇 这样,过滤器中,就可以保存我们的自定义过滤器啦! 完~ 你已经是过滤器大师啦!✌
附: