在使用UE4制作游戏时,为网格创建细节级别(LOD)是提高游戏性能和帧速率而不牺牲视觉质量的好方法。那么你知道怎么使用UE4蓝图设置自动细节级别呢?


创建新的细节层次


在“编辑器脚本”>“静态网格物体”类别下,找到管理LOD所需的节点。要使用这些节点,Blueprint类必须从仅编辑器的类(例如PlacedEditorUtilityBase类)派生。


UE4如何使用蓝图设置自动细节级别


   ● 关键节点是Set Lods,它会为传入的静态网格物体资产自动创建详细程度。要使用此节点,需要为其提供一组缩小设置,这些设置定义屏幕尺寸阈值和相对三角形百分比您要创建的每个细节级别。


传递到EditorScriptingMeshReductionOptions节点的“缩减设置”输入的第一个

EditorScriptingMeshReductionSettings项无效。LOD 0始终包含网格中的所有三角形。


   ● 可以使用“获取目标计数”和“获取目标屏幕尺寸”来获取有关当前为静态网格物体设置的详细程度的信息。


   ● 还可以使用“删除 LOD”来删除所有现有的LOD(LOD 0除外,它始终包含网格中的所有三角形)。


   ● 设置LOD会修改静态网格物体资产。假设您要保留所做的更改,则以后还需要使用诸如Save Asset或Save Loaded Asset的节点。


下面的示例依次在输入路径中加载每个静态网格物体资产。每当找到顶点的数量超过最小阈值的对象时,它将为“静态网格物体”设置三个附加的LOD,然后将其保存。


UE4如何使用蓝图设置自动细节级别


重用另一个静态网格物体的LOD


作为使用上述过程自动为静态网格物体生成LOD的替代方法,可以采用静态网格物体(称为源 静态网格物体)中已经存在的LOD,并将其用作另一个静态网格物体(称为静态网格物体)的LOD。目标静态网格物体)。


要在蓝图脚本中重用现有的LOD,使用“编辑器脚本”>“静态网格物体”>“从静态网格物体设置Lod”节点。


UE4如何使用蓝图设置自动细节级别


该节点需要以下输入:


   ● 对目标静态网格物体的引用,要为其创建新LOD的静态网格物体。首先需要使用编辑器脚本>资产>加载资产节点来加载此资产。


   ● 要为目标“静态网格物体”创建的LOD的索引。如果目标静态网格物体已经具有具有相同索引的LOD,则它将被覆盖。


   ● 对源静态网格物体的引用。这是静态网格物体,具有要从目标静态网格物体指向的现有LOD。如上所述,需要首先使用编辑器脚本>资产>加载资产节点来加载此资产。


   ● 要用于目标静态网格物体的源静态网格物体中的LOD索引。


   ● 一个布尔参数,用于确定是否要尝试将源LOD中的“材质”插槽与目标“静态网格物体”中已经存在的插槽合并。如果启用此设置,则该函数将在源几何图形中查找被分配与目标网格中的剖面相同的“材质”的任何剖面。如果找到任何内容,它将尝试重新映射LOD中的截面以匹配目标静态网格物体中的现有截面。如果两个静态网格物体使用相同的材质,则可以节省一些内存。如果禁用此设置,则来自源LOD的所有网格截面都将附加到目标“静态网格”。


设置LOD将修改目标静态网格物体资产。假设您要保留所做的更改,则以后还需要使用诸如Save Asset 或 Save Loaded Asset的节点。


例如,以下脚本从源静态网格物体获取指定的LOD,并在目标静态网格物体中以不同的指定LOD索引重用该几何图形:


UE4如何使用蓝图设置自动细节级别


当“从静态网格物体设置视点”节点运行时,来自源静态网格物体的LOD副本将添加到目标静态网格物体中。静态网格物体资产之间没有持续的连接,所以源静态网格物体所做的任何更改都不会自动影响目标静态网格物体。

,Unreal Engine技巧,Unreal Engine教程