几何体脚本库包含非常广泛的功能,从低级别的网格体构造和查询(例如逐三角形构建网格体或计算其顶点数量),到高级别运算,如网格体布尔运算和相交测试,不一而足。
如需详细了解如何使用几何体脚本库,请参阅几何体脚本用户指南。
大部分函数在编辑器中以及在运行时可用。但是,一些函数仅在编辑器中可用,下面的表中已注明。
资产和组件读写
这些函数用于读写动态网格体实例,例如读写现有或新的资产或组件。
| 节点名称 | 说明 |
|---|---|
| Copy Mesh From Static Mesh | 从静态网格体资产提取动态网格体资产。 |
| Copy Mesh To Static Mesh | 使用从动态网格体资产转换的新几何体更新静态网格体资产。 |
| Copy Mesh From Component | 从世界或本地空间中受支持的组件类型提取动态网格体Actor。 |
| Create New Volume From Mesh | 从动态网格体Actor创建新的体积Actor,例如阻挡体积。 此节点仅适用于编辑器。 |
| Create New Static Mesh Asset From Mesh | 从动态网格体Actor创建新的静态网格体资产。 此节点仅适用于编辑器。 |
| Set Static Mesh Collision From Mesh | 基于输入网格体为静态网格体资产生成简单碰撞形状。 |
| Set Dynamic Mesh Collision From Mesh | 基于输入网格体为动态网格体组件生成简单碰撞形状。 |
| Copy Collision Meshes From Object | 从源对象提取碰撞几何体,并随目标动态网格体中存储的网格体一起复制它。
|
| Reset Dynamic Mesh Collision | 从动态网格体组件清除简单碰撞。 |
| Copy Mesh From Skeletal Mesh | 将骨骼网格体复制到目标动态网格体。 |
| Copy Mesh To Skeletal Mesh | 将给定动态网格体复制到骨骼网格体。 |
图元生成
这些函数用于生成图元网格体并附加到输入动态网格体
| 节点名称 | 说明 |
|---|---|
| Append Box | 将3D盒体附加到指定的动态网格体。 |
| Append Sphere Lat Long | 将使用纬度/经度拓扑进行三角剖分的3D球体附加到动态网格体。 |
| Append Sphere Box | 将使用盒体拓扑进行三角剖分的3D球体附加到动态网格体。 |
| Append Capsule | 将3D胶囊体附加到动态网格体。 |
| Append Cylinder | 将3D圆柱体(带可选的端盖)附加到动态网格体。 |
| Append Cone | 将3D椎体附加到动态网格体。 |
| Append Torus | 将3D圆环面或部分圆环面附加到动态网格体。 |
| Append Rectangle | 将平面矩形附加到动态网格体。 |
| Append Round Rectangle | 将带圆角的平面矩形(RoundRect)附加到动态网格体。 |
| Append Disc | 将平面圆盘形附加到动态网格体。 |
| Append Triangulated Polygon | 将平面2D多边形的德洛内三角剖分附加到动态网格体。 |
| Append Revolve Polygon | 将2D多边形的旋转表面(完全旋转或可选限制的部分旋转)附加到动态网格体。 |
| Append Spiral Revolve Polygon | 沿螺旋路径旋转2D多边形,就像用于创建垂直螺旋的那种路径。 |
| Append Revolve Path | 旋转开放式2D路径,带可选的顶部和底部端盖。 |
| Append Simple Extrude Polygon | 使用所选动态网格体沿垂直路径挤压2D多边形。 |
| Append Simple Swept Polygon | 使用所选动态网格体沿任意3D路径扫描2D多边形。 |
| Append Linear Stairs | 使用所选动态网格体附加线性楼梯。 |
| Append Curved Stairs | 使用所选动态网格体附加环形楼梯。 |
| Append Mesh Transformed | 将每次变换应用于附加网格体,然后将其几何体添加到目标网格体。 |
| Append Sweep Polygon | 沿扫描路径扫描并旋转2D多边形,创建附加到提供的网格体的3D网格体。 |
| Append Voronoi Diagram 2D | 从提供的Voronoi站点生成三角剖分的Voronoi单元格,识别带有多边形组的每一项,并附加到提供的网格体。 |
变换和变形
这些函数用于操控动态网格体的 顶点位置(Vertex Positions) 。它们不会改变网格体拓扑或连接。
| 节点名称 | 说明 |
|---|---|
| Translate Mesh | 将平移应用于网格体的顶点。 |
| Scale Mesh | 将缩放变换应用于网格体的顶点。 |
| Transform Mesh | 将任意FTransform应用于网格体的顶点。 |
| Apply Bend Warp To Mesh | 围绕变换定义的轴应用弯曲扭曲。 |
| Apply Twist Warp To Mesh | 围绕变换定义的轴应用扭转扭曲。 |
| Apply Flare Warp To Mesh | 应用迸发/膨胀扭曲。 |
| Apply Math Warp To Mesh | 应用各种基于简单数学函数的扭曲,目前为带有任意方向的1D或2D正弦波。 |
| Apply Perlin Noise To Mesh | 将3D Perlin噪点置换应用于整个网格体或可选的选择所定义的网格体区域。 |
| Apply Iterative Smoothing To Mesh | 将多次网格体平滑迭代应用于整个网格体或可选的选择所定义的子集 |
| Apply Displace From Texture Map | 基于Texture2D和UV信道将置换应用于动态网格体。 |
| Rotate Mesh | 相对于指定原点旋转网格体。 |
复合 / 分解
这些函数用于将网格体组合在一起或分割开。
| 节点名称 | 说明 |
|---|---|
| Copy Mesh To Mesh | 在不同动态网格体之间复制网格体。 |
| Get Sub Mesh From Mesh | 在不同动态网格体之间复制三角形列表。 |
| Split Mesh By Components | 将网格体分成多个部分,每个连接的组件对应一个部分,从动态网格体池绘制。 |
| Split Mesh By Materials | 将网格体分成多个部分,每个连接的组件对应一个部分,从动态网格体池绘制。 |
| Append Mesh | 将几何体从一个网格体附加到另一个网格体,带可选的变换。 |
| Append Mesh Repeated | 基于应重复的次数将几何体从一个网格体附加到另一个网格体,每次累积变换。该运算很适合用于创建图案。 |
网格体建模
这些函数提供标准高级别建模运算,但通常会调用建模模式中类似名称的工具会调用的低级别网格体处理代码。
| 节点名称 | 说明 |
|---|---|
| Apply Mesh Boolean | 基于第二个网格体将布尔值运算(例如,并集、交集和差集)应用于动态网格体。 |
| Apply Mesh Plane Cut | 将平面切割应用于网格体,可选择填充创建的所有孔洞。 |
| Apply Mesh Plane Slice | 将网格体切成两半,带可选的孔洞填充。 |
| Apply Mesh Mirror | 在整个平面中镜像网格体,带可选的三角形切割和结合。 |
| Apply Mesh Offset | 将网格体的顶点移至偏移表面。 |
| Apply Mesh Shell | 将网格体的三角形副本移至偏移表面,并将其拼接到原始三角形。例如,用于创建加厚外壳。 |
| Apply Mesh Extrude | 沿恒定方向挤压网格体的三角形。例如,从开放式三角剖分的多边形创建固体。 |
| Apply Mesh Solidify | 将网格体替换为体素化、网格化的近似对象(VoxWrap运算)。 |
| Apply Mesh Morphology | 将网格体替换为基于SDF的偏移网格体近似对象。 |
| Apply Mesh Self Union | 对象对自身执行布尔并集运算,计算修复自相交和删除浮动几何体等操作。 |
| Apply Mesh Polygroup Bevel | 将网格体斜边运算应用于所有多边形组边缘。 |
网格体选择
这些函数将向不同的工具识别网格体的区域,以便它们可以在局部操作。多个函数可以在整个网格体或选择所定义的子集上工作。选择类型包括:三角形、顶点和多边形组。
| 节点名称 | 说明 |
|---|---|
| Invert Mesh Selection | 反转目标网格体上的选择。 |
| Create Select All Mesh Selection | 创建给定选择类型的选择,其中包含目标网格体的所有元素 |
| Convert Mesh Selection | 将网格体选择转换为不同的类型。 默认情况下,顶点映射到单环附近区域中的三角形,并且三角形映射到所有包含的顶点。 |
| Combine Mesh Selections | 将两个网格体选择合并为一个新的网格体选择。选择A和选择B,这两个输入必须为相同的类型。 |
| Convert Index Array To Mesh Selection | 从索引数组创建网格体选择。 |
| Convert Index Set To Mesh Selection | 从索引集创建网格体选择。 |
| Convert Mesh Selection To Index Array | 将网格体选择转换为索引数组。 |
| Convert Index List To Mesh Selection | 从索引列表创建网格体选择。对于索引列表类型不匹配选择类型的情况,将使用 bAllowPartialInclusion=true 的Convert Mesh Selection进行转换。 |
| Convert Mesh Selection To Index List | 将网格体选择转换为索引列表。 |
| Select Mesh Elements In Box | 通过查找盒体中包含的所有元素,为目标网格体创建选择类型的新网格体选择。 |
| Select Mesh Elements In Sphere | 通过查找球体中包含的所有元素,为目标网格体创建选择类型的新网格体选择。 |
| Select Mesh Elements With Plane | 通过查找平面一侧的所有元素,尤其是平面的表面法线指向的一侧,为目标网格体创建选择类型的新网格体选择。 |
| Select Mesh Elements By Normal Angle | 若法线向量与给定法线之间的距离在角偏差阈值之内,则通过查找所有此等法线向量的具有元素,为目标网格体创建选择类型的新网格体选择。 对于三角形和多边形组选择,会使用三角形面片法线;对于顶点选择,会使用逐个顶点的平均法线。 |
| Select Mesh Elements Inside Mesh | 通过查找第二个选择网格体中的所有元素,为目标网格体创建选择类型的新网格体选择。 |
| Expand Mesh Selection To Connected | 将目标网格体上的选择展开到连接的区域,并返回新选择。 |
| Get Mesh Selection Bounding Box | 获取网格体选择的3D边界框。 |
| Get Mesh Selection Boundary Loops | 计算网格体选择边界的顶点循环集。针对每个循环都会返回3D多线段和顶点索引列表。 对于顶点选择,此函数将返回顶点选择的单环附近区域的边界循环。 |
| Get Mesh Selection Info | 查询有关网格体选择的信息。 |
| Debug Print Mesh Selection | 将有关网格体选择的信息打印到输出日志。 |
按选择修改网格体
用于从给定选择编辑几何体的函数。
变换网格体
| 节点名称 | 说明 |
|---|---|
| Transform Mesh Selection | 将给定变换应用于网格体的所选部分。 |
| Translate Mesh Selection | 将给定平移应用于网格体的所选部分。 |
| Rotate Mesh Selection | 相对于指定原点旋转网格体的所选部分。 |
| Scale Mesh Selection | 将给定缩放应用于网格体的所选部分。 |
材质和多边形组
| 节点名称 | 说明 |
|---|---|
| Set Material ID For Mesh Selection | 在给定选择的所有三角形上设置新的材质ID。 |
| Set Polygroup For Mesh Selection | 对于给定的组层,在给定选择的所有三角形上设置新的多边形组。 |
网格体建模
| 节点名称 | 说明 |
|---|---|
| Apply Mesh Disconnect Faces | 选择识别目标网格体后,将目标网格体的三角形断开连接。 |
| Apply Mesh Duplicate Faces | 选择输入识别目标网格体后,复制目标网格体的三角形。 |
| Apply Mesh Linear Extrude Faces | 选择识别目标网格体后,将线性挤压应用于目标网格体的三角形。 |
| Apply Mesh Offset Faces | 选择识别的目标网格体后,则将偏移应用于目标网格体的面,如果选择为空,则应用于所有面。 |
| Apply Mesh Inset Outset Faces | 选择识别目标网格体后,将内嵌或外嵌应用于目标网格体的面,如果选择为空,则应用于所有面。 |
| Apply Mesh Bevel Selection | 将网格体斜边运算应用于目标网格体中使用斜边选项设置的部分。 |
细分函数
这些函数将各种网格体细分策略应用于动态网格体资产。
| 节点名称 | 说明 |
|---|---|
| Apply Polygroup Catmull Clark SubD | 将Catmull Clark细分应用于网格体的多边形组拓扑(丢弃输入三角剖分)。 此节点仅适用于编辑器。 |
| Apply Triangle Loop SubD | 将循环细分应用于输入网格体。 此节点仅适用于编辑器。 |
| Apply Selective Tessellation | 使用指示的模式类型,对指定网格体选择进行曲面细分。 |
| Apply PNTesselation | 将PN曲面细分应用于输入网格体。 |
| Apply Uniform Tessellation | 将均匀曲面细分应用于输入网格体。 |
简化函数
这些函数使用各种策略来简化网格体。
| 节点名称 | 说明 |
|---|---|
| Apply Simplify To Triangle Count | 简化网格体,直至达到目标三角形计数。 |
| Apply Simplify To Vertex Count | 简化网格体,直至达到目标顶点计数。 |
| Apply Simplify To Tolerance | 将网格体简化至目标几何公差。例如,进一步的简化会导致与输入网格体的偏差大于公差。 |
| Apply Simplify To Planar | 简化网格体中三角形超过必要数量的平面区域。请注意,这不会改变网格体的3D形状。 这不会改变网格体的3D形状。 |
| Apply Simplify To Polygroup Topology | 将网格体简化至多边形组拓扑。例如,网格体多边形组的高级别面。另一个例子是在默认盒体球体上,简化至多边形组拓扑会生成盒体。 |
法线函数
这些函数重新计算网格体的法线。
| 节点名称 | 说明 |
|---|---|
| Flip Normals | 反转每个面的方向来翻转网格体法线。 |
| Set Per Vertex Normals | 将网格体法线设置为每个顶点的法线。例如,所有顶点都没有分割法线。 |
| Set Per Face Normals | 将网格体法线设置为每个面/三角形的法线。例如,沿网格体每个边缘的分割法线。 |
| Compute Split Normals | 基于角度公差和/或诸如多边形组拓扑之类的其他因素,计算网格体的分割法线。 |
| Recompute Normals | 重新计算现有网格体法线。保留现有分割法线。例如,在网格体变形之后使用。 |
| Compute Tangents | 重新计算网格体的切线(各种方法)。 |
清理/修复函数
这些函数用于修复网格体中的问题,或应用其他标准修复。
| 节点名称 | 说明 |
|---|---|
| Compact Mesh | 压缩网格体的顶点和三角形,以删除顶点ID或三角形ID列表中的所有"孔洞"(请参阅"低级别网格体查询"小节中的讨论)。 |
| Discard Mesh Attributes | 从动态网格体删除属性集,例如所有UV、法线、材质ID、顶点颜色和扩展多边形组层。请注意,这可能会导致许多函数无法正常运行。 |
| Auto Repair Normals | 该函数尝试自动调整网格体法线的方向,使其保持一致,例如修复翻转的法线。 |
| Weld Mesh Edges | 在可能的情况下,将网格体的所有开放式边界边缘结合在一起,以便删除"裂缝"。 |
| Fill All Mesh Holes | 尝试填充网格体的所有开放式边界循环(例如几何体表面中的孔洞)。 |
| Remove Small Components | 删除网格体中体积、面积或三角形计数低于阈值的连接组件。 |
| Remove Hidden Triangles | 删除网格体中按照"可见"和"外部"的各种定义从外部视图不可见的所有三角形。 |
| Resolve Mesh TJunctions | 尝试解决目标网格体中的T形连接。 |
| Split Mesh Bowties | 拆分目标网格体中的顶点,否则这些顶点会生成领结,其中仅单个顶点连接网格体的各个区域。 |
| Repair Mesh Degenerate Geometry | 删除小三角形或合并三角形,直到所有边缘大于指定最小长度为止,从而修改目标网格体。 |
低级别网格体查询
这些函数提供有关网格体元素的低级别信息。在此上下文中, VertexID 和 TriangleID 是整数。
在动态网格体中,删除顶点/三角形之后,VertexID或TriangleID范围中可能存在空缺,一些运算(如简化)可能返回存在空缺的网格体。ID范围中的空缺是使用 Compact Mesh 函数清理的。
| 节点名称 | 说明 |
|---|---|
| Get Vertex Count | 获取网格体中的顶点数量。 |
| Get Num Vertex IDs | 获取网格体中的顶点ID数量,如果网格体不密集,这可能大于顶点计数。例如,在删除顶点之后。 |
| Is Valid Vertex ID | 如果顶点ID引用的是有效顶点,则返回true。 |
| Get All Vertex IDs | 返回网格体中所有顶点ID的索引列表。 |
| Get Vertex Position | 按顶点ID获取网格体顶点的3D位置。 |
| Get All Vertex Positions | 返回所有网格体顶点位置的向量列表(可能很大!)。 |
| Get Triangle Count ()** | 返回网格体中的三角形数量。请注意,这是直接作用于动态网格体的函数。 |
| Get Num Triangle IDs | 获取网格体中三角形ID的数量。如果网格体不密集,即使在删除三角形之后,这也可能大于三角形计数。 |
| Is Valid Triangle ID | 如果三角形ID引用的是有效三角形,则返回true。 |
| Get All Triangle IDs | 返回网格体中所有三角形ID的索引列表。 |
| Get Triangle Indices | 返回三角形的三顶点索引组。 |
| Get All Triangle Indices | 返回网格体中所有三角形三索引组的三角形列表。 |
| Get TrianglePositions | 返回三角形的三个角位置。 |
| Get TriangleFace Normal | 返回三角形的面/面片法线。 |
| Get TriangleUVs | 返回三角形的三个角UV。 |
| Get Triangle Material ID | 返回三角形的当前材质ID。 |
| Get All Triangle Material IDs | 返回所有三角形材质ID的索引列表。 |
| Get Triangle Polygroup ID | 返回给定多边形组层中三角形的当前多边形组ID。 |
| Get Has Vertex ID Gaps | 如果顶点ID列表中有空缺,则返回true。例如,"Get Number of Vertex IDs"大于"Get Vertex Count"。 |
| Get Has Triangle ID Gaps | 如果三角形ID列表中有空缺,使得"Get Num Triangle IDs"大于"Get Triangle Count",则返回true。 |
| Get Is Dense Mesh | 如果网格体密集,则返回true。例如,顶点ID或三角形ID中没有空缺。 |
| Get Mesh Has Attribute Set | 如果网格体启用了属性集来存储UV、法线、材质ID和顶点颜色(通常默认启用),则返回true。 |
低级别网格体构建
这些函数用于逐个三角形构造网格体,以及执行其他低级别网格体编辑运算。
若网格体元素有成千上万个三角形,那么在涉及到循环的情况中使用这些函数,可能会在蓝图或Python脚本编写中运行相当缓慢。
| 节点名称 | 说明 |
|---|---|
| Set Vertex Position | 设置网格体顶点的3D位置。 |
| Add Vertex To Mesh | 将新顶点添加到网格体并返回新的顶点ID。 |
| Add Vertices To Mesh | 将顶点列表添加到网格体。 |
| Delete Vertex From Mesh | 从网格体删除顶点。 |
| Delete Vertices From Mesh | 从网格体删除顶点列表。 |
| Add Triangle To Mesh | 将一个三角形(3元素顶点ID元组)添加到网格体。 |
| Add Triangles To Mesh | 将三角形列表添加到网格体。 |
| Delete Triangle From Mesh | 从网格体删除一个三角形。 |
| Delete Triangles From Mesh | 从网格体删除三角形列表。 |
| Delete Triangles In Polygroup | 从网格体删除特定多边形组层中有特定多边形组的所有三角形。 |
| Append Buffers To Mesh | 将一组顶点/三角形添加到网格体,带有法线、UV等。类似于流程性网格体(Proc Mesh)组件中的创建网格体(Create Mesh)分段。 |
| Set Mesh Triangle Normals | 设置网格体三角形的法线。 |
| Set Mesh Triangle UVs | 设置网格体三角形的UV。 |
| Set Triangle Material ID | 设置网格体三角形的材质ID。 |
低级别列表管理
这些函数覆盖了以下各项的列表管理:索引列表、标量列表、向量列表、UV列表和颜色列表。
| 节点名称 | 说明 |
|---|---|
| Get Index List Length | 返回索引列表中的项目数量。 |
| Get Index List Last Index | 返回索引列表中最后一个项目的索引。 |
| Get Index List Item | 返回索引列表中指定位置存储的项目。 |
| Set Index List Item | 更新索引列表中指定位置存储的项目的值。 |
| Convert Index List To Array | 将索引列表转换为整数数组。 |
| Convert Array To Index List | 将整数数组转换为索引列表。 |
| Duplicate Index List | 将索引列表的内容到复制列表中。 |
| Clear Index List | 将索引列表中的所有项目重置为清空值。 |
| Get Scalar List Length | 返回标量列表中的项目数量。 |
| Get Scalar List Last Index | 返回标量列表中最后一个项目的索引。 |
| Get Scalar List Item | 返回标量列表中指定位置存储的标量(double)。 |
| Set Scalar List Item | 更新标量列表中指定位置存储的标量的值。 |
| Convert Scalar List To Array | 将标量列表转换为double数组。 |
| Convert Array To Scalar List | 将double数组转换为标量列表。 |
| Duplicate Scalar List | 将标量列表的内容复制到复制列表中。 |
| Clear Scalar List | 将标量列表中的所有项目重置为清空值。 |
| Get Vector List Length | 返回向量列表中的项目数量。 |
| Get Vector Last Index | 返回向量列表中最后一个项目的索引。 |
| Get Vector List Item | 返回向量列表中指定位置存储的FVector。 |
| Set Vector List Item | 更新向量列表中指定位置存储的FVector的值。 |
| Convert Vector List To Array | 将向量列表转换为FVector数组。 |
| Convert Array To Vector List | 将FVector数组转换为向量列表。 |
| Duplicate Vector List | 将向量列表的内容复制到复制向量列表中。 |
| Clear Vector List | 将向量列表中的所有项目重置为清空值。 |
| Get UV List Length | 返回UV列表中的项目数量。 |
| Get UV List Last Index | 返回UV列表中最后一个项目的索引。 |
| Get UV List Item | 返回UV列表中指定位置存储的FVector2D。 |
| Set UV List Item | 更新UV列表中指定位置存储的FVector2D的值。 |
| Convert UV List To Array | 将UV列表转换为FVector2D数组。 |
| Convert Array To UV List | 将FVector2D数组转换为UV列表。 |
| Duplicate UV List | 将UV列表的内容复制到复制列表中。 |
| Get Color List Length | 返回颜色列表中的项目数量。 |
| Get Color List Last Index | 返回颜色列表中最后一个项目的索引。 |
| Get Color List Item | 返回颜色列表中指定位置存储的FLinearColor。 |
| Set Color List Item | 更新颜色列表中指定位置存储的FLinearColor的值。 |
| Convert Color List To Array | 将颜色列表转换为FLinearColor数组。 |
| Convert Array To Color List | 将FLinearColor数组转换为颜色列表。 |
| Extract Color List Channel | 创建对应于颜色列表的0、1或2通道的标量列表。 |
| Extract Color List Channels | 通过颜色列表创建向量列表。 颜色列表的通道通过X通道索引、Y通道索引和Z通道索引映射到向量组件。 |
低级别数学运算
以组件方式对向量列表和标量列表进行运算的函数。采用向量点等多个列表的函数需要这些列表包含相同数量的元素。
| 节点名称 | 说明 |
|---|---|
| Vector Length | 计算向量列表A中每个向量的长度,并在标量列表中返回值。 |
| Vector Dot | 计算向量列表A和向量列表B中每对向量之间的点积,并在新标量列表中返回值。 |
| Vector Cross | 计算向量列表A和向量列表B中每对向量之间的交叉积,并在新向量列表中返回值。 |
| Vector Normalize In Place | 规格化向量列表中的每个向量,并将值存储在向量列表中。如果某个向量是退化的,请将法线设置为Set On Failure向量。 |
| Vector Blend | 为向量列表A和向量列表B中每对向量计算 ConstantA * A + ConstantB * B ,并在新向量列表中返回值。 默认情况下,此(constants = 1)会添加两个向量。设置 你还可以设置 |
| Vector Blend In Place | 为向量列表A和向量列表B中每对向量计算 ConstantA * A + ConstantB * B ,并将值存储在向量列表B中。默认情况下,此(constants = 1)会添加两个向量。设置 你还可以设置 |
| Scalar Vector Multiply | 为两个输入列表中的每个标量/向量对计算 Scalar Multiplier * Scalar * Vector ,并在新向量列表中返回值。 |
| Scalar Vector Multiply In Place | 为两个输入列表中的每个标量/向量对计算 Scalar Multiplier * Scalar * Vector ,并将值存储在输入向量列表中。 |
| Constant Vector Multiply | 为向量列表中的每个元素计算 Constant * Vector ,并在新列表中返回值。 |
| Constant Vector Multiply In Place | 为向量列表中的每个元素计算 Constant * Vector ,并将值存储在向量列表中。 |
| Vector To Scalar | 计算 ConstantX * Vector.X + ConstantY * Vector.Y + ConstantZ * Vector.Z ,将向量列表中的每个向量转换为标量,并在新标量列表中返回值。 你可以使用它从向量提取X、Y和Z值,或执行其他组件方式的数学运算。 |
| Scalar Invert | 为标量列表中的每个元素计算 Numerator / Scalar ,并在新标量列表中返回值。 如果Abs(Scalar) < Epsilon,设置为Set On Failure值。 |
| Scalar Invert In Place | 为标量列表中的每个元素计算 Numerator / Scalar ,并将值存储在输入标量列表中。 如果Abs(Scalar) < Epsilon,设置为Set On Failure值。 |
| Scalar Blend | 为标量列表A和标量列表B中每对值计算 ConstantA * A + ConstantB * B 并在新标量列表中返回值。 默认情况下,此(constants = 1)仅添加两个值。设置 你还可以设置 |
| Scalar Blend In Place | 为标量列表A和标量列表B中每对值计算 ConstantA * A + ConstantB * B ,并在标量列表B中返回。 默认情况下,此(constants = 1)仅添加两个值。设置 你还可以设置 |
| Scalar Multiply | 为标量列表A和标量列表B中每对值计算 Scalar Multiplier * A * B ,并在新标量列表中返回值。 |
| Scalar Multiply In Place | 为标量列表A和标量列表B中每对值计算 Scalar Multiplier * A * B ,并在标量列表B中返回值。 |
| Constant Scalar Multiply | 为标量列表中的每个值计算 Constant * Scalar ,并在新标量列表中返回值。 |
| Constant Scalar Multiply In Place | 为标量列表A和标量列表B中每对值计算 Scalar Multiplier A * B ,并在当前标量列表中返回值。 |
材质ID函数
这些函数用于操控网格体的材质ID。材质ID是每个三角形的整数,并不直接关联到特定材质。在与静态网格体之间转换时,每个材质ID与一个 网格体分段(Mesh Section) 相关联。
| 节点名称 | 说明 |
|---|---|
| Get Has Material IDs | 如果网格体提供/启用了材质ID,则返回true。 |
| Enable Material IDs | 启用网格体上的材质ID,初始化为0。 |
| Clear Material IDs | 将网格体上的所有材质ID重置为0。 |
| Get Max Material ID | 返回网格体上当前设置的最大材质ID。 |
| Remap Material IDs | 对于带有匹配给定值的材质ID的所有三角形,将材质ID设置为新值。 |
| Set All Triangle Material IDs | 将网格体中的所有三角形的材质ID设置为输入索引列表中的值。 |
| Set Polygroup Material ID | 将网格体中有指定多边形组ID(在给定多边形组层中)的所有三角形的材质ID设置为指定材质ID。 |
顶点值
使用这些值可获取和操控顶点中存储的网格体值,包括 顶点颜色(Vertex Colors)
法线等多个值可以存储在给定顶点中,但这些方法仅返回一个值。
| 节点名称 | 说明 |
|---|---|
| Set Mesh Constant Vertex Color | 将所有顶点颜色设置为特定颜色。 |
| Set Mesh Per Vertex Colors | 使用颜色列表设置每个顶点的颜色。 |
| Get Mesh Per Vertex Colors | 获取目标网格体中每个网格体顶点的单顶点颜色的列表,从顶点颜色覆层派生。 |
| Set Mesh Selection Vertex Color | 将目标网格体的顶点颜色覆层(通过选择识别)中的颜色设置为常量值。
|
| Convert Mesh Vertex Colors SRGB To Linear | 在所有顶点颜色上应用SRGB到线性的颜色变换。 |
| Convert Mesh Vertex Colors Linear To SRGB | 在所有顶点颜色上应用线性到SRGB的颜色变换。 |
| Get Mesh Per Vertex Normals | 获取目标网格体中每个网格体顶点的单法线向量的列表,从法线覆层派生。 |
| Get Mesh Per Vertex UVs | 获取目标网格体中每个网格体顶点的单顶点UV的列表,从指定UV覆层派生。 |
纹理取样和创建
用于读取和创建纹理数据的函数。
| 节点名称 | 说明 |
|---|---|
| Sample Texture 2D At UV Positions | 对UV位置列表中的给定纹理贴图取样,并在颜色列表输出中返回每个位置的颜色。 |
| Create New Texture 2D Asset | 从临时UTexture2D创建序列化纹理2D资产。 |
烘焙
这些函数将源网格体和目标网格体之间的数据烘焙到纹理或顶点颜色数据。你可以烘焙各种网格体数据,例如法线、曲率和环境光遮蔽。
| 节点名称 | 说明 |
|---|---|
| Bake Texture | 根据源网格体中取样的数据,为目标网格体创建纹理。 |
| Bake Vertex | 使用给定源网格体的烘焙属性的结果,填充目标网格体中的顶点颜色。 |
UV函数
你可使用这些函数操控网格体的UV。
| 节点名称 | 说明 |
|---|---|
| Get Num UV Sets | 获取网格体上的UV层数量。 |
| Set Num UV Sets | 设置网格体上的UV层数量。 |
| Get UV Set Bounding Box | 获取UV集内所有UV的2D边界框。 |
| CopyUVSet | 将目标UV集替换为源UV集内的值。 |
| Translate Mesh UVs | 将2D平移应用于UVSet索引中的所有UV,或者如果你提供了选择,则应用于UV子集。 |
| Scale Mesh UVs | 将2D缩放应用于UVSet索引中的所有UV,或者如果你提供了选择,则应用于UV子集。 |
| Rotate Mesh UVs | 将2D旋转应用于UVSet索引中的所有UV,或者如果你提供了选择,则应用于UV子集。 |
| Recompute Mesh UVs | 基于不同类型的定义明确的UV岛状区,例如现有UV岛状区、多边形组或选择输入,重新计算网格体的UV。 |
| Repack Mesh UVs | 将现有UV岛状区打包到标准UV空间中。 |
| Set Mesh UVs From Planar Projection | 使用平面投影,为整个网格体或你通过选择输入所定义的子集设置UV。 |
| Set Mesh UVs From Box Projection | 使用盒体投影,为整个网格体或你通过选择输入所定义的子集设置UV。 |
| Set Mesh UVs From Cylinder Projection | 使用圆柱体投影,为整个网格体或你通过选择输入所定义的子集设置UV。 |
| Auto Generate Patch Builder Mesh UVs | 使用PatchBuilder方法计算新UV,并可选择打包。 |
| Auto Generate XAtlas Mesh UVs | 使用XAtlas计算新UV,并可选择打包。 |
| Get Mesh UVSize Info | 计算有关网格体(带有可选的网格体选择)的UVSet的维度和面积的信息。 |
| Get Mesh Per Vertex UVs | 获取目标网格体中每个网格体顶点的单顶点UV的列表,从指定UV覆层派生。 |
| Copy Mesh UV Layer To Mesh | 将Copy From Mesh中的给定UVSet索引中的2D UV复制到Copy To UV Mesh中的3D顶点位置。多边形组ID和材质ID保留在UV网格体中。 |
| Copy Mesh To Mesh UV Layer | 将Copy From UVMesh的3D顶点位置和三角形传输到通过Copy To Mesh的目标UV集索引识别的给定UV层。3D位置(X,Y,Z)将复制为UV位置(X,Y)。 |
多边形组函数
用于操控网格体的多边形组的函数。多边形组是逐个三角形的整数,用于在建模工具和一些几何体脚本运算中隐式定义三角形的区域和块。但是,多边形组层最终是逐个三角形的数字,并且你可以将其用于其他任意用途。
| 节点名称 | 说明 |
|---|---|
| Get Has Polygroups | 如果网格体有标准多边形组层,则返回true。 |
| Enable Polygroups | 启用网格体上的标准多边形组层。 |
| GetNum Extended Polygroup Layers | 返回扩展多边形组层的计数。请注意,扩展多边形组层尚未受到所有运算或建模工具的完全支持。 请注意,扩展多边形组层尚未受到所有运算或建模工具的完全支持。 |
| Set Num Extended Polygroup Layers | 设置网格体上扩展多边形组层的数量。 |
| Clear Polygroups | 将三角形多边形组分配重置为给定多边形组层的常量值。 |
| Copy Polygroups Layer | 在不同层之间复制多边形组。 |
| Convert UV Islands To Polygroups | 为网格体的每个断开连接的UV岛状区创建并分配新多边形组。 |
| Convert Components To Polygroups | 为网格体的每个断开连接的组件创建并分配新多边形组。 |
| Compute Polygroups From Angle Threshold | 基于边缘皱褶/开度角分隔网格体来设置多边形组。 |
| Compute Polygroups From Polygon Detection | 识别多边形并分配多边形组ID。 |
网格体几何查询
这些函数允许对网格体进行高级别几何查询。
| 节点名称 | 说明 |
|---|---|
| Get Mesh Bounding Box | 计算网格体顶点的边界框。 |
| Get Mesh Volume Area | 计算网格体的体积和面积。 |
| Get Is Closed Mesh | 如果网格体是封闭的,例如没有拓扑边界边缘,则返回true。 |
| Get Num Open Border Loops | 返回开放边界循环的数量,例如网格体中的"孔洞"数量。 |
| Get Num Open Border Edges | 返回网格体中拓扑边界边缘的数量。 |
| Get Num Connected Components | 返回网格体中单独的连接组件数量,例如通过共同边缘连接的"三角形区块"。 |
| Compute Mesh Convex Hull | 计算给定网格体的凸包外壳,或你通过选择输入定义的网格体部分,并在单独的网格体中返回。 |
| Compute Mesh Swept Hull | 计算输入网格体的2D扫描外壳,并在单独的网格体中返回。 |
| Compute Mesh Convex Decomposition | 计算给定目标网格体的凸包外壳分解。假定请求了多个外壳,将返回尝试近似表示网格体的多个外壳。不能保证整个网格体会包含在外壳中。 |
多路径
这些函数将执行多路径操控。多路径是通过顶点排序定义的路径。
| 节点名称 | 说明 |
|---|---|
| Get Poly Path Num Vertices | 返回多路径中的顶点数量 |
| Get Poly Path Last Index | 返回多路径中最后一个顶点的索引。 |
| Get Poly Path Vertex | 返回指定顶点的3D位置。 |
| Get Poly Path Tangent | 返回多路径中指定顶点索引处的本地切线向量。 |
| Get PolyPath Arc Length | 返回多路径的长度。 |
| Get NearestVertexIndex | 返回3D中最接近指定点的多路径顶点的索引。 |
| Flatten To 2D On Axis | 废弃给定轴并使用其他两个坐标作为新的X、Y坐标,从而创建路径的2D展平副本。 |
| Convert Spline To PolyPath | 基于给定取样选项,将USplineComponent中的位置取样为多路径。 |
| Convert PolyPath To Array | 使用多路径顶点位置填充3D向量数组。 |
| Convert Array To PolyPath | 根据3D位置向量数组创建多路径。 |
| Convert PolyPath To Array Of Vector 2D | 使用投影到XY平面的多路径顶点位置创建2D向量数组。 |
| Convert Array Of Vector 2D To PolyPath | 根据2D位置向量数组创建多路径。对应多路径顶点的Z坐标将为零。 |
| Create Circle Path 3D | 在XY平面上的原点附近创建闭合圆周,然后通过变换输入重新定位。 |
| Create Circle Path 2D | 在XY平面上的给定中心附近创建闭合圆周。 对于闭合路径,结束顶点不是开始顶点的重复内容。 |
| Create Arc Path 3D | 在XY平面上的原点附近创建开放弧形,然后通过变换输入重新定位。 |
| Create Arc Path 2D | 在XY平面上的给定中心附近创建开放弧形。 |
网格体比较
这些函数可用来比较两个网格体。使用这些节点时不会修改任一网格体。
| 节点名称 | 说明 |
|---|---|
| Is Same Mesh As | 如果两个输入网格体按照输入选项定义的比较条件等同,则返回true。 |
| Measure Distances Between Meshes | 测量两个网格体之间的最小/最大和平均最近点距离。 |
| Is Intersecting Mesh | 如果两个输入网格体(带可选的变换)在几何上相交,则返回true。 |
BVH/AABBTree和空间查询
这些函数将为网格体创建和查询包围体层级(BVH)对象。
| 节点名称 | 说明 |
|---|---|
| Build BVH For Mesh | 为网格体构建一个可以由Is BVH Valid For Mesh、Rebuild BVH for Mesh、Find Nearest Point On Mesh、Find Nearest Ray Intersection With Mesh和Is Point Inside Mesh节点使用的BVH对象。该函数将返回几何体脚本动态网格体BVH结构体。 |
| Is BVH Valid For Mesh | 检查BVH对象是否仍可以用于网格体,如果网格体已更改,通常会返回false。 |
| Rebuild BVH For Mesh | 为网格体就地重新构建BVH对象,相较于构建新的BVH,这可以减少内存分配。 |
| Find Nearest Point On Mesh | 查找网格体/BVH上到给定3D点的最近点。 |
| Find Nearest Ray Intersection With Mesh | 查找3D光线与网格体/BVH的最近相交。 |
| Is Point Inside Mesh | 使用Fast Winding Number查询来测试某个点是否在网格体/BVH内。 |
工具
这些辅助函数很适合几何体脚本网格体处理和流程性生成器。
| 节点名称 | 说明 |
|---|---|
| Create Dynamic Mesh Pool | 创建新的动态网格体池对象。 |
| Create Unique New Asset Path Name | 给定基础路径和基础资产名称,创建新的唯一资产名称,这很适合Create New Static Mesh Asset From Mesh等函数。 此节点仅适用于编辑器。 |
| Get Mesh Info String | 返回包含网格体统计数据和其他信息的调试字符串。 |
| Sample Spline To Transforms | 基于给定取样选项,将USplineComponent取样为FTransforms列表。 |