几何体脚本库(Geometry Scripting Library)包含非常广泛的功能,从低级别的网格体构造和查询(例如逐三角形构建网格体或计算其顶点数量),到高级别运算,如网格体布尔运算和相交测试,不一而足。
如需详细了解如何使用几何体脚本库,请参阅几何体脚本用户指南。
大部分函数在编辑器中以及在运行时可用。但是,一些函数仅在编辑器中可用,下面的表中已注明。
资产和组件读写
这些函数用于读写动态网格体实例,例如读写现有或新的资产或组件。
| 节点名称 | 描述 |
|---|---|
| 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 | 将给定动态网格体复制到骨骼网格体。 |
| Create New Skeletal Mesh Asset From 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 XY | 将平面矩形附加到动态网格体。 |
| Append Round Rectangle XY | 将带圆角的平面矩形(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单元格,识别带有多边形组的每一项,并附加到提供的网格体。 |
| Append Sweep Polyline | 沿指定为一组FTransform的扫描路径扫描给定的2D多线段顶点。 如果2D顶点为(U,V),则在FTransform的坐标空间中,X指向路径方向,Y向右(U),Z向上(V)。 |
| Append Bounding Box | 使用取自输入盒体的维度和原点,将3D盒体添加到目标网格体。 |
| Append Delaunay Triangulation 2D | 生成提供的顶点的德洛内三角剖分,并将其附加到目标网格体。 |
| Append Polygon List Triangulation | 生成提供的多边形列表的德洛内三角剖分,并将其附加到目标网格体。 |
变换和变形
这些函数用于操控动态网格体的 顶点位置(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 | 相对于指定原点旋转网格体。 |
| Translate Pivot To Location | 设置网格体的枢轴点位置。 由于网格体对象的枢轴点始终是位于(0,0,0)的点,因此该函数只是将网格体平移-PivotLocation。 |
| Make Transform From Z Axis | 根据bTangentIsX参数在给定位置创建一个变换,以ZAxis向量作为变换的Z轴,且X轴或Y轴面向切线向量。 |
| Make Transform From Axes | 根据 bTangentISX 参数在给定位置创建一个变换,以ZAxis向量作为变换的Z轴,且X轴或Y轴面向切线向量。 |
| Get Transform Axis Vector | 获取变换的X、Y和Z轴方向的向量。 |
| Get Transform Axis Ray | 获取变换位置处与变换的X、Y和Z轴方向对齐的光线。 |
| Get Transform Axis Plane | 获取变换位置处的平面;该平面的法线与变换的X、Y和Z轴方向对齐。 |
复合 / 分解
这些函数用于将网格体组合在一起或分割开。
| 节点名称 | 描述 |
|---|---|
| Copy Mesh To Mesh | 在不同动态网格体之间复制网格体。 |
| Get Sub Mesh From Mesh | 在不同动态网格体之间复制三角形列表。 |
| Split Mesh By Components | 将网格体分成多个部分,每个连接的组件对应一个部分,从动态网格体池绘制。 |
| Split Mesh By Material IDs | 将网格体分成多个部分,每个材质ID对应一个部分,从动态网格体池绘制。 |
| 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 Box With BVH | 找到盒体中包含的所有元素,为目标网格体创建选择类型的新网格体选择。类似于 Select Mesh Elements In Box ,但采用BVH,使其运行速度更快。 |
| 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 | 将有关网格体选择的信息打印到输出日志。 |
| Expand Contract Mesh Selection | 将目标网格体上的选择增长到或收缩到连接的相邻值。 对于顶点选择,Expand会将顶点包括在所选顶点的单环中,Contract会删除有未选择的单环相邻值的所有顶点。 对于三角形选择,添加或删除连接到所选三角形的三角形。 * 对于多边形组选择,添加或删除连接到所选多边形组的多边形组。 |
按选择修改网格体
用于从给定选择编辑几何体的函数。
变换网格体
| 节点名称 | 描述 |
|---|---|
| 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 PN Tessellation | 将点-法线曲面细分应用于输入网格体。 |
| Apply Uniform Tessellation | 将均匀曲面细分应用于输入网格体。 |
简化
这些函数使用各种策略来简化网格体。
| 节点名称 | 描述 |
|---|---|
| Apply Simplify To Triangle Count | 简化网格体,直至达到目标三角形计数。 |
| Apply Simplify To Vertex Count | 简化网格体,直至达到目标顶点计数。 |
| Apply Simplify To Tolerance | 将网格体简化至目标几何公差。 例如,进一步的简化会导致与输入网格体的偏差大于公差。 |
| Apply Simplify To Planar | 简化网格体中三角形超过必要数量的平面区域。 这不会改变网格体的3D形状。 |
| Apply Simplify To PolyGroup Topology | 将网格体简化至多边形组拓扑。 例如,网格体多边形组的高级别面。 另一个例子是在默认盒体球体上,简化至多边形组拓扑会生成盒体。 |
盒体
这些辅助函数用于计算盒体对象的基本数学函数。
| 节点 | 描述 |
|---|---|
| Make Box From Center Size | 从中心点以及X、Y和Z尺寸创建盒体。 |
| Make Box From Center Extents | 从中心点以及X、Y和Z范围创建盒体。 范围是半尺寸。 |
| Get Box Center Size | 获取盒体的中心点以及X、Y和Z尺寸。 |
| Get Box Corner | 获取盒体某个角的位置。 角的索引编号从0到7,使用某种排序,其中:
|
| Get Box Face Center | 获取盒体某个面的中心位置。 面的索引编号从0到5,使用某种排序,其中:
|
| Get Box Volume Area | 获取盒体的体积和表面积。 |
| Get Expanded Box | 通过将"扩展依据(Expand By)"参数添加到"最小值(Min)"和"最大值(Max)"来扩展输入盒体。如果任何"扩展依据(Expand By)"参数大于盒体尺寸的一半,则会将尺寸限制到中心点。 |
| Get Transformed Box | 将输入变换应用于输入盒体的角,并返回包含这些点的新盒体。 |
| Test Box Box Intersection | 测试盒体1和盒体2是否相交。 |
| Find Box Box Intersection | 查找由盒体1和盒体2相交形成的盒体。 |
| Get Box Box Distance | 计算盒体1和盒体2之间的最短距离。 |
| Test Point Inside Box | 测试一个点是否在盒体内;如果是,则返回true,否则返回false。 |
| Find Closest Point On Box | 查找盒体面上最接近输入点的点。 如果该点在盒体内,则返回该点。 |
| Get Box Point Distance | 计算盒体和点之间的最短距离。 |
| Test Box Sphere Intersection | 检查盒体是否与由"球体中心(Sphere Center)"和"球体半径(Sphere Radius)"定义的球体相交。 |
法线
这些函数重新计算网格体的法线。
| 节点名称 | 描述 | ||
|---|---|---|---|
| Flip Normals | 反转每个面的方向来翻转网格体法线。 | ||
| Set Per Vertex Normals | 将网格体法线设置为每个顶点的法线。 例如,所有顶点都没有分割法线。 | ||
| Set Per Face Normals | 将网格体法线设置为每个面/三角形的法线。 例如,沿网格体每个边缘的分割法线。 | ||
| Compute Split Normals | 基于角度公差和/或诸如多边形组拓扑之类的其他因素,计算网格体的分割法线。 | ||
| Recompute Normals | 重新计算现有网格体法线。 保留现有分割法线。 例如,在网格体变形之后使用。 | ||
| Compute Tangents | Compute Tangents | 重新计算网格体的切线(各种方法)。 | |
| Set Mesh Per Vertex Normals | 将目标网格体法线覆层中的所有法线设置为指定的每个顶点法线。 | ||
| Get Mesh Has Tangents | 检查目标网格体是否启用了"切线属性层(Tangents Attribute Layer)"。 | ||
| Discard Tangents | 从目标网格体删除任何现有的切线属性层。 | ||
| Compute Tangents | 使用指定的方法重新计算目标网格体的切线。 | ||
| Set Mesh Per Vertex Tangents | 将目标网格体切线覆层中的所有切线设置为指定的每个顶点切线。 | ||
| Get Mesh Per Vertex Tangents | 计算插值的位置 A * Vertex1 + B * Vertex2 + C * Vertex3,其中(A,B,C) = 重心坐标,顶点位置取自目标网格体的指定TriangleID。 |
||
| Update Vertex Normal | 更新目标网格体VertexD处的法线和切线。 | ||
| Recompute Normals For Mesh Selection | 使用给定计算选项在给定选择的所有三角形/顶点上重新计算目标网格体的法线。此方法将保留所有现有硬边缘,即,每条共享三角形-顶点法线通过对引用该共享三角形-顶点法线的三角形的面部法线取平均值来重新计算。 |
清理和修复
这些函数用于修复网格体中的问题,或应用其他标准修复。
| 节点名称 | 描述 |
|---|---|
| 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 Triangle Positions | 返回三角形的三个角位置。 |
| Get Triangle Face Normal | 返回三角形的面/面片法线。 |
| Get Triangle UVs | 返回三角形的三个角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。 |
| Get Interpolated Triangle Position | 计算插值的位置 A * Vertex1 + B * Vertex2 + C * Vertex3,其中(A,B,C) = 重心坐标,顶点位置取自目标网格体的指定TriangleID。 |
| Compute Triangle Barycentric Coords | 计算点相对于目标网格体的指定TriangleID的重心坐标(A,B,C)。 |
| Get Interpolated Triangle UV | 计算插值的UV A * UV1 + B * UV2 + C * UV3,其中(A,B,C) = 重心坐标,UV位置取自目标网格体的指定UV通道中的指定TriangleID。 |
| Get Triangle Normals | 对于目标网格体的指定TriangleID,获取三角形每个顶点处的法线和切线向量。这些法线和切线将取自法线和切线覆层。 |
| Get Interpolated Triangle Normal | 计算插值的法线 A * Normal1 + B * Normal2 + C * Normal3,其中(A,B,C) = 重心坐标,法线取自目标网格体的法线层中的指定TriangleID。 |
| Get Triangle Normal Tangents | 对于目标网格体的指定TriangleID,获取三角形每个顶点处的法线和切线向量。这些法线和切线将取自法线和切线覆层。 |
| Get Interpolated Triangle Normal Tangents | 对于目标网格体的法线和切线属性中的指定TriangleID,计算插值的法线和切线。 |
| Get Has Vertex Colors | 如果目标网格体启用了"顶点颜色(Vertex Colors)"属性,则返回true。 |
| Get Triangle Vertex Colors | 对于目标网格体的指定TriangleID,获取三角形每个顶点处的顶点颜色。 这些颜色将取自顶点颜色属性。 |
| Get Interpolated Triangle Vertex Color | 计算插值的顶点颜色 A * Color1 + B * Color2 + C * Color3,其中(A,B,C) = 重心坐标,颜色取自目标网格体的顶点颜色层中的指定TriangleID。 |
低级别网格体构建
这些函数用于逐个三角形构造网格体,以及执行其他低级别网格体编辑运算。
若网格体元素有成千上万个三角形,那么在涉及到循环的情况中使用这些函数,可能会在蓝图或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。 |
| Set All Mesh Vertex Positions | 将目标网格体中的所有顶点位置设置为指定位置。 |
低级别列表管理
这些函数覆盖了以下各项的列表管理:索引列表、标量列表、向量列表、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 List 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,并在当前标量列表中返回值。 |
网格体取样
这些函数计算点并沿网格体表面放置点。
| 节点 | 描述 |
|---|---|
| Compute Point Sampling | 根据提供的取样选项计算位于目标网格体表面上的一组样本点。样本大致均匀分布,并且相对于提供的选项不重叠。 |
| Compute NonUniform Point Sampling | 根据提供的取样选项和非均匀选项计算位于目标网格体表面上的一组样本点。 |
| Compute Vertex Weighted Point Sampling | 根据提供的取样选项和非均匀选项计算位于目标网格体表面上的一组样本点。 |
光线
这些辅助函数用于创建和查询光线。光线是一条可用于确定对象相交的线。这些对于在蓝图中构建交互式用户界面特别有用。
| 节点 | 描述 |
|---|---|
| Make Ray From Points | 从两个点创建一条光线,将原点置于A处,方向设置为规格化(B-A)。 |
| Make Ray From Point Direction | 从原点和方向创建光线,可选择使用非规格化方向。 |
| Get Transformed Ray | 将给定变换应用于给定光线,或选择性地反转变换(Transform Inverse),并返回变换的新光线。 |
| Get Ray Point | 在沿光线的给定距离处获取一个点(Origin + Distance * Direction)。 |
| Get Ray Start End | 沿光线获取两个点。 |
| Get Ray Parameter | 将给定点投影到沿光线的最近点上,并返回该点的光线参数和距离。 |
| Get Ray Point Distance | 获取从给定点到光线上最近点的距离。 |
| Get Ray Closest Point | 获取光线上离给定点最近的点。 |
| Get Ray Sphere Intersection | 检查光线是否与由"球体中心(Sphere Center)"和"球体半径(Sphere Radius)"定义的球体相交。 此函数返回两个相交距离(光线参数)。 如果光线掠过球体,则两个距离将相同。 如果未命中,这两个距离将是MAX_FLOAT。 使用"获取光线点(Get Ray Point)"函数将距离转换为光线和球体上的点。 |
| Get Ray Box Intersection | 检查光线是否与由"球体中心(Sphere Center)"和"球体半径(Sphere Radius)"定义的球体相交。 |
| Get Ray Plane Intersection | 查找光线与平面相交。 |
| Get Ray Line Closest Point | 计算3D光线和线上的一对最近点。 这条线由原点和方向定义,但在两个方向上无限延伸。 |
| Get Ray Segment Closest Point | 计算3D光线和线段上的一对最近点。 线段由其两个端点定义。 |
材质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覆层派生。 |
| Blur Mesh Vertex Colors | 模糊网格体的颜色属性。如果网格体没有颜色属性,函数返回未加改动的网格体。 |
纹理取样和创建
用于读取和创建纹理数据的函数。
| 节点名称 | 描述 |
|---|---|
| Sample Texture 2D At UV Positions | 对UV位置列表中的给定纹理贴图取样,并在颜色列表输出中返回每个位置的颜色。 |
| Create New Texture 2D Asset | 从临时UTexture2D创建序列化的纹理2D资产。 |
| Sample Texture Render Target 2D At UV Positions | 对UV位置列表中的给定纹理贴图取样,并在颜色列表输出中返回每个位置的颜色。此函数在取样之前获取GPU数据,因此,根据具体应用程序,函数可能效率低下且速度缓慢。 |
烘焙
这些函数将源网格体和目标网格体之间的数据烘焙到纹理或顶点颜色数据。你可以烘焙各种网格体数据,例如法线、曲率、环境光遮蔽、不透明度贴图和次表面颜色贴图。你还可以指定要应用的滤波类型。
| 节点名称 | 描述 |
|---|---|
| Bake Texture | 根据源网格体中取样的数据,为目标网格体创建纹理。 |
| Bake Vertex | 使用给定源网格体的烘焙属性的结果,填充目标网格体中的顶点颜色。 |
| Bake Texture From Render Captures | 从渲染捕获中烘焙目标网格体的纹理。 |
UV
这些函数用于操控网格体的UV。
| 节点名称 | 描述 |
|---|---|
| Get Num UV Channels | 获取网格体上的UV通道数量。 |
| Set Num UV Channels | 设置网格体上的UV层数量。 |
| Get UV Set Bounding Box | 获取UV通道内所有UV的2D边界框。 |
| Copy UV Channel | 将目标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 X Atlas Mesh UVs | 使用XAtlas计算新UV,并可选择打包。 |
| Get Mesh UVSize Info | 计算有关网格体(包括可选的网格体选择)UV通道的尺寸和面积的信息。 |
| Get Mesh Per Vertex UVs | 获取目标网格体中每个网格体顶点的单顶点UV的列表,从指定UV覆层派生。 |
| Copy Mesh UV Channel To Mesh | 将Copy From Mesh中的给定UVSet索引中的2D UV复制到Copy To UV Mesh中的3D顶点位置。 多边形组ID和材质ID保留在UV网格体中。 |
| Copy Mesh To Mesh UV Channel | 将"从UV网格体复制(Copy From UVMesh)"的3D顶点位置和三角形传输到通过"复制到网格体(Copy To Mesh)"的"目标UV集索引(To UV Channel Index)"识别的给定UV通道。 3D位置(X,Y,Z)将复制为UV位置(X,Y)。 |
| Compute Mesh Local UV Param | 围绕给定中心点/三角形在目标网格体顶点上计算本地UV参数化。此方法使用离散指数贴图参数化,这会基于测地线距离和角度在本地将网格体展开。中心点的UV值将是(0,0),计算的顶点UV将使得 ` Length(UV) == 测地线距离` 。 |
多边形组
用于操控网格体的多边形组的函数。多边形组是逐个三角形的整数,隐式定义建模工具和一些几何体脚本操作中三角形的区域和区块。但是,多边形组层最终是逐个三角形的数字,并且你可以将其用于其他任意用途。如需详细了解多边形组,请参阅了解多边形组。
| 节点名称 | 描述 |
|---|---|
| Get Has PolyGroups | 如果网格体有标准多边形组层,则返回true。 |
| Enable PolyGroups | 启用网格体上的标准多边形组层。 |
| Get Num 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。 |
骨骼权重
这些函数将计算和操控骨骼权重,也称为皮肤权重。骨骼权重将确定骨骼的变换对一组顶点的影响。你还可以获取有关动态网格体中存储的骨架的信息。在你通过 Copy Mesh From Skeletal Mesh 节点转换为动态网格体后,此信息会与骨骼网格体骨架一一对应。
| 节点 | 描述 |
|---|---|
| Mesh Has Bone Weights | 检查目标网格体是否具有每个顶点的骨骼权重属性集。 |
| Mesh Create Bone Weights | 在目标网格体上创建新的骨骼权重属性(如果尚不存在)。如果已存在该属性,并且传递的 bReplaceExistingProfile 为true,则该属性将被删除并重新添加,以便重置该属性。 |
| Get Max Bone Weight Index | 确定网格体上存在的最大骨骼权重指数。 |
| Get Vertex Bone Weights | 返回目标网格体给定顶点处的骨骼权重的数组。 |
| Get Largest Vertex Bone Weight | 返回目标网格体给定顶点处的最大骨骼权重。 |
| Set Vertex Bone Weights | 设置目标网格体给定顶点处的骨骼权重。 |
| Set All Vertex Bone Weights | 将目标网格体的所有顶点设置为给定的骨骼权重。 |
| Compute Smooth Bone Weights | 计算给定网格体与提供的骨架的平滑皮肤绑定。 |
| Transfer Bone Weights From Mesh | 将骨骼权重从源网格体传输到目标网格体。假定网格体已对齐。否则,使用Transform Mesh几何体脚本函数进行对齐。 |
| Copy Bones From Mesh | 将骨骼属性(骨架)从源网格体复制到目标网格体。 |
| Discard Bones From Mesh | 废弃目标网格体中的骨骼属性(骨架)。 |
| Get Bone Index | 获取给定名称的骨骼的索引。 |
| Get Root Bone Name | 获取根骨骼的名称。 |
| Get Bone Children | 获取有关骨骼子项的信息。 |
| Get All Bones Info | 获取表示骨架的骨骼数组。每个条目包含有关相应骨骼的信息。 |
| Get Bone Info | 获取给定名称的骨骼的索引。 |
网格体几何查询
这些函数用于对网格体进行高级别几何查询。
| 节点名称 | 描述 |
|---|---|
| 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 Mesh Volume Area Center | 计算网格体的体积、面积和质心。 |
网格体测地线
这些函数可计算网格体表面上的最短给定路径。
| 节点 | 说明 |
|---|---|
| Get Shortest Vertex Path | 计算一个顶点列表,表示约束为沿规定开始顶点和结束顶点之间的网格体三角形边缘行进的最短路径。如果开始点和结束点在网格体的单独连接组件中,这可能会失败。 |
| Get Shortest Surface Path | 计算一个多边形路径,表示提供的网格体上两个规定点之间的最短网格体表面路径。如果开始点和结束点在网格体的单独连接组件中,这可能会失败。
|
| Create Surface Path | 计算一个多边形路径,表示一条"直"的表面路径,从网格体上的规定点开始,沿指示方向继续,直至到达请求的路径长度或遇到网格体边界,以先到者为准。
|
简单多边形
简单2D多边形是没有孔洞的闭合多边形。你可以使用这些函数调用和操控简单多边形。
| 节点 | 说明 |
|---|---|
| Get Polygon Vertex Count | 返回简单多边形中的顶点数量。 |
| Get Polygon Vertex | 返回简单多边形的指定顶点。顶点索引将循环,即,-1表示多边形中的最后一个顶点。如果多边形没有顶点,则返回零向量。 |
| Set Polygon Vertex | 设置简单多边形的指定顶点。顶点索引将循环,即,-1表示多边形中的最后一个顶点。如果多边形没有顶点,则不执行任何操作。 |
| Add Polygon Vertex | 设置简单多边形的指定顶点。返回添加的顶点的索引。 |
| Get Polygon Tangent | 返回简单多边形的顶点切线。顶点索引将循环,即,-1表示多边形中的最后一个顶点的切线。如果多边形没有顶点,则返回零向量。 |
| Get Polygon Arc Length | 返回简单多边形的弧长。 |
| Get Polygon Area | 返回简单多边形所围的面积。 |
| Get Polygon Bounds | 返回简单多边形的边界框。 |
| Convert Spline To Polygon | 基于给定取样选项,将 USplineComponent 中的位置取样构成简单多边形。 |
| Simple Polygon To Array Of Vector | 返回带有多边形顶点位置的3D向量数组,其中Z坐标设置为0。 |
| Simple Polygon To Array Of Vector2D | 返回带有多边形顶点位置的2D向量数组。 |
| Array Of Vector To Simple Polygon | 返回根据3D位置向量数组创建的多边形,忽略Z坐标。 |
| Array Of Vector2D To Simple Polygon | 返回根据2D位置向量数组创建的多边形。 |
多边形列表
多边形列表包括一般多边形的列表,这些多边形可能有孔洞。你可以使用这些函数调用和编辑多边形列表中的多边形。
| 节点 | 说明 |
|---|---|
| Get Polygon Vertex Count | 如果孔洞索引为-1,或在指定内孔洞中,返回多边形的外形状中的顶点数量。对于无效多边形或孔洞索引,返回0。 |
| Get Polygon Vertex | 返回多边形的指定顶点,在孔洞索引为-1时为外多边形,否则为指定内孔洞。对于无效多边形或孔洞索引,或者如果多边形为空,顶点为零向量。顶点索引将循环。 |
| Get Polygon Count | 返回多边形列表中的多边形数量。 |
| Get Polygon Hole Count | 返回多边形中的孔洞数量。对于无效的多边形索引,返回0。 |
| Get Polygon Vertices | 返回多边形的顶点,孔洞索引为-1时为外多边形,否则为指定内孔洞。对于无效的多边形或孔洞索引,输出顶点为空。 |
| Get Polygon Area | 返回多边形所围的面积。对于无效的多边形索引,返回0。 |
| Get Polygon Bounds | 返回多边形的边界框。对于无效的多边形索引,返回空的无效框。 |
| Get Simple Polygon | 返回多边形列表中的指定简单多边形,孔洞索引为-1时为外多边形,否则为指定内孔洞。对于无效的多边形或孔洞索引,多边形为空。 |
| Get Polygon List Area | 返回多边形所围的面积。 |
| Get Polygon List Bounds | 返回多边形的边界框。 |
| Create Polygon List From Single Polygon | 创建单个多边形的多边形列表,带有可选的孔洞。 |
| Add Polygon To List | 将多边形添加到多边形列表,带有可选的孔洞。返回添加的多边形的索引。 |
| Create Polygon List From Simple Polygons | 根据简单多边形的数组创建多边形列表。 |
| Append Polygon List | 添加"要附加到多边形列表的多边形"中的多边形。 |
| Polygons Union | 计算多边形列表中的所有多边形的并集。还要解决每个多边形中的自相交。 |
| Polygons Difference | 计算多边形列表与要减去的多边形的差集。 |
| Polygons Intersection | 计算多边形列表与要相交的多边形的交集。 |
| Polygons Exclusive Or | 计算多边形列表与要异或的多边形的异或集。 |
| Polygons Offset | 将单个偏移应用于闭合多边形列表。 |
| Polygons Offsets | 将两个偏移按顺序应用于闭合多边形列表。 |
| Polygons Morphology Open | 将形态学开运算符应用于闭合多边形列表,首先按-Offset偏移,然后按+Offset偏移。如果Offset为负数,这会转而按闭运算执行。 |
| Polygons Morphology Close | 将形态学闭运算符应用于闭合多边形列表,首先按+ffset偏移,然后按-Offset偏移。如果Offset为负数,这会转而按开运算执行。 |
| Create Polygons From Path Offset | 将偏移应用于单个开放2D路径,生成闭合多边形作为结果。 |
多路径
这些函数将执行多路径操控。 多路径是通过顶点排序定义的路径。
| 节点名称 | 描述 |
|---|---|
| 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和空间查询
这些函数将为网格体创建和查询包围体层级(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取样为FTransform列表。 |
术语表
| 术语 | 定义 |
|---|---|
| 覆层(Overlay) | 该数据结构表示应用于网格体的顶点数据的类型。这些类型包括:顶点颜色、法线、切线和UV。 指定类型的多个值可以存储在单个顶点中。 在这种情况下,根据类型,会发生以下某个情况:使用最后一个值,对这些值取平均值,或使用任意值。 |
| 单环(One-ring) | 所选顶点的相邻顶点,通过边缘连接。
顶点M的单环。 |
| UV集(UV Set) | 包含网格体的UV坐标,也称为UV通道。 你可以使用多个UV通道表示不同的UV贴图。 |
| 范围(Extents) | 盒体的半尺寸(沿三个轴测量),用于确定从中心点延伸多少。 中心点C和范围E将生成一个盒体,该盒体最近的左下角位于 |