# Unreal Modeling Meshops

> GeometryScript 网格处理操作。当用户要求修复、简化、Remesh、布尔运算、体素化、分解、基础编辑或细分网格时使用。

- Skill: `italink/unreal-modeling-meshops` (Agent Skill)
- Install (CLI): `npx skillmds@latest add italink/unreal-modeling-meshops`
- Raw SKILL.md: https://api.skillmd.com/api/skills/italink/unreal-modeling-meshops/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Italink (https://skillmd.com/u/italink)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/italink/unreal-modeling-meshops

---


# 建模 — 网格操作

前置条件：先阅读 `unreal-modeling`。

## 库

| 库 | CDO |
|----|-----|
| 修复 | `/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshRepairFunctions` |
| 简化 | `/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshSimplifyFunctions` |
| Remesh | `/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_RemeshingFunctions` |
| 布尔 | `/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshBooleanFunctions` |
| 体素 | `/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshVoxelFunctions` |
| 分解 | `/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshDecompositionFunctions` |
| 基础编辑 | `/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshBasicEditFunctions` |
| 细分 | `/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshSubdivideFunctions` |
| OpenSubdiv | `/Script/GeometryScriptingEditor.Default__GeometryScriptLibrary_OpenSubdivFunctions` |

## 修复函数

| 函数 | 关键参数 | 说明 |
|------|----------|------|
| `CompactMesh` | `TargetMesh` | 压缩顶点/三角形 ID 空间，移除间隙 |
| `RemoveUnusedVertices` | `TargetMesh` | 删除未被三角形引用的顶点 |
| `WeldMeshEdges` | `TargetMesh`, `WeldOptions` | 焊接开放边界（修复裂缝） |
| `ResolveMeshTJunctions` | `TargetMesh`, `ResolveOptions` | 解决 T 形交叉 |
| `SnapMeshOpenBoundaries` | `TargetMesh`, `SnapOptions` | 吸附开放边界到最近的兼容边界 |
| `FillAllMeshHoles` | `TargetMesh`, `FillOptions` | 填充所有孔洞。out：`NumFilledHoles`、`NumFailedHoleFills` |
| `RemoveSmallComponents` | `TargetMesh`, `Options` | 删除体积/面积/三角形数低于阈值的孤立组件 |
| `RemoveHiddenTriangles` | `TargetMesh`, `Options` | 删除从外部不可见的三角形 |
| `SplitMeshBowties` | `TargetMesh`, `bMeshBowties`, `bAttributeBowties` | 拆分蝴蝶结拓扑 |
| `RepairMeshDegenerateGeometry` | `TargetMesh`, `Options` | 删除退化三角形（面积/边长过小） |

### 修复结构体

**`FGeometryScriptWeldEdgesOptions`**：`Tolerance`(float, 1e-6)、`bOnlyUniquePairs`(bool, true)

**`FGeometryScriptFillHolesOptions`**：`FillMethod`(枚举)、`bDeleteIsolatedTriangles`(bool, true)

**`EGeometryScriptFillHolesMethod`**：`Automatic`、`MinimalFill`、`PolygonTriangulation`、`TriangleFan`、`PlanarProjection`

**`FGeometryScriptRemoveSmallComponentOptions`**：`MinVolume`(0.0001)、`MinArea`(0.0001)、`MinTriangleCount`(1)

**`FGeometryScriptDegenerateTriangleOptions`**：`Mode`(枚举)、`MinTriangleArea`(0.001)、`MinEdgeLength`(0.0001)、`bCompactOnCompletion`(true)

**`EGeometryScriptRepairMeshMode`**：`DeleteOnly`、`RepairOrDelete`、`RepairOrSkip`

## 简化函数

| 函数 | 关键参数 | 说明 |
|------|----------|------|
| `ApplySimplifyToTriangleCount` | `TargetMesh`, `TriangleCount`, `Options` | 简化到目标三角形数 |
| `ApplySimplifyToVertexCount` | `TargetMesh`, `VertexCount`, `Options` | 简化到目标顶点数 |
| `ApplySimplifyToTolerance` | `TargetMesh`, `Tolerance`, `Options` | 简化到几何容差 |
| `ApplySimplifyToEdgeLength` | `TargetMesh`, `EdgeLength`, `Options` | 简化到目标边长 |
| `ApplySimplifyToPlanar` | `TargetMesh`, `Options` | 简化平面区域（不改变 3D 形状） |
| `ApplySimplifyToPolygroupTopology` | `TargetMesh`, `Options`, `GroupLayer` | 简化到 Polygroup 拓扑 |
| `ApplyClusterSimplifyToEdgeLength` | `TargetMesh`, `EdgeLength`, `Options` | 基于聚类的快速简化 |

### 简化结构体

**`FGeometryScriptSimplifyMeshOptions`**

| 字段 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `Method` | `EGeometryScriptRemoveMeshSimplificationType` | `AttributeAware` | 简化算法 |
| `bAllowSeamCollapse` | bool | `true` | 允许接缝折叠 |
| `bAllowSeamSmoothing` | bool | `true` | 允许接缝平滑 |
| `bAllowSeamSplits` | bool | `true` | 允许接缝分裂 |
| `bPreserveVertexPositions` | bool | `false` | 保留顶点位置 |
| `bAutoCompact` | bool | `true` | 自动压缩 ID 空间 |

**`EGeometryScriptRemoveMeshSimplificationType`**：`StandardQEM`、`VolumePreserving`、`AttributeAware`

## Remesh 函数

| 函数 | 关键参数 | 说明 |
|------|----------|------|
| `ApplyUniformRemesh` | `TargetMesh`, `RemeshOptions`, `UniformOptions` | 均匀重新网格化 |

**`FGeometryScriptRemeshOptions`**：`bDiscardAttributes`(false)、`bReprojectToInput`(true)

**`FGeometryScriptUniformRemeshOptions`**：`TargetType`(枚举)、`TargetEdgeLength`(3.0)、`TargetTriangleCount`(1000)、`SmoothingRate`(0.25)、`Iterations`(20)

## 布尔函数

| 函数 | 关键参数 | 说明 |
|------|----------|------|
| `ApplyMeshBoolean` | `TargetMesh`, `TargetTransform`, `ToolMesh`, `ToolTransform`, `BooleanOperation`, `Options` | 布尔运算（并/差/交） |
| `ApplyMeshSelfUnion` | `TargetMesh`, `Options` | 自合并（消除自相交） |
| `ApplyMeshPlaneCut` | `TargetMesh`, `CutFrame`, `Options` | 平面切割 |
| `ApplyMeshPlaneSlice` | `TargetMesh`, `CutFrame`, `Options` | 平面切片（保留两侧） |
| `ApplyMeshMirror` | `TargetMesh`, `MirrorFrame`, `Options` | 镜像 |

**布尔操作枚举**（`BooleanOperation` 参数）：`Union`、`Subtract`、`Intersect`

## 体素函数

| 函数 | 关键参数 | 说明 |
|------|----------|------|
| `ApplyMeshSolidify` | `TargetMesh`, `Options` | 体素化实体化 |
| `ApplyMeshMorphology` | `TargetMesh`, `Options` | 体素形态学操作（膨胀/腐蚀/开/闭） |

**`EGeometryScriptMorphologicalOpType`**：`Dilate`、`Contract`、`Close`、`Open`

## 基础编辑函数

| 函数 | 关键参数 | 说明 |
|------|----------|------|
| `AppendMesh` | `TargetMesh`, `AppendMesh` | 追加另一个 mesh |
| `AppendMeshTransformed` | `TargetMesh`, `AppendMesh`, `AppendTransform` | 带变换追加 |
| `AppendMeshRepeated` | `TargetMesh`, `AppendMesh`, `AppendTransform`, `RepeatCount` | 重复追加 |
| `SetVertexPosition` | `TargetMesh`, `VertexID`, `NewPosition`, `bDeferChangeNotifications` | 设置单个顶点位置 |
| `AddVertexToMesh` | `TargetMesh`, `NewPosition` | 添加顶点。out：`NewVertexIndex` |
| `AddVerticesToMesh` | `TargetMesh`, `NewPositionList` | 批量添加顶点。out：`NewIndicesList` |
| `AddTriangleToMesh` | `TargetMesh`, `NewTriangle` | 添加三角形。out：`NewTriangleIndex` |
| `AddTrianglesToMesh` | `TargetMesh`, `NewTrianglesList` | 批量添加三角形 |
| `DeleteTrianglesFromMesh` | `TargetMesh`, `TriangleList` | 删除三角形 |
| `DeleteSelectedTrianglesFromMesh` | `TargetMesh`, `Selection` | 删除选中三角形 |
| `DiscardMeshAttributes` | `TargetMesh` | 丢弃所有属性（法线/UV/颜色等） |
| `SetAllMeshVertexPositions` | `TargetMesh`, `PositionList` | 批量设置所有顶点位置 |

## 细分函数

| 函数 | 关键参数 | 说明 |
|------|----------|------|
| `ApplySelectiveTessellation` | `TargetMesh`, `Selection`, `Options` | 选择性细分 |
| `ApplyUniformTessellation` | `TargetMesh`, `TessellationLevel` | 均匀细分 |
| `ApplyPNTessellation` | `TargetMesh`, `Options`, `TessellationLevel` | PN 三角形细分 |
| `ApplyPolygroupCatmullClarkSubD` | `TargetMesh`, `Subdivisions`, `GroupLayer` | Catmull-Clark 细分（Editor 库） |
| `ApplyTriangleLoopSubD` | `TargetMesh`, `Subdivisions` | Loop 细分（Editor 库） |

## JSON 示例

**填充孔洞**：

```json
{"object":"/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshRepairFunctions","function":"FillAllMeshHoles","params":{"TargetMesh":"/Engine/Transient.DynamicMesh_0","FillOptions":{"FillMethod":"Automatic","bDeleteIsolatedTriangles":true}}}
```

**简化到目标三角形数**：

```json
{"object":"/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshSimplifyFunctions","function":"ApplySimplifyToTriangleCount","params":{"TargetMesh":"/Engine/Transient.DynamicMesh_0","TriangleCount":5000,"Options":{"Method":"AttributeAware","bAllowSeamCollapse":true,"bAutoCompact":true}}}
```

**布尔差集**：

```json
{"object":"/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_MeshBooleanFunctions","function":"ApplyMeshBoolean","params":{"TargetMesh":"/Engine/Transient.DynamicMesh_0","TargetTransform":{"Rotation":{"X":0,"Y":0,"Z":0,"W":1},"Translation":{"X":0,"Y":0,"Z":0},"Scale3D":{"X":1,"Y":1,"Z":1}},"ToolMesh":"/Engine/Transient.DynamicMesh_1","ToolTransform":{"Rotation":{"X":0,"Y":0,"Z":0,"W":1},"Translation":{"X":0,"Y":0,"Z":0},"Scale3D":{"X":1,"Y":1,"Z":1}},"BooleanOperation":"Subtract","Options":{}}}
```

**均匀 Remesh**：

```json
{"object":"/Script/GeometryScriptingCore.Default__GeometryScriptLibrary_RemeshingFunctions","function":"ApplyUniformRemesh","params":{"TargetMesh":"/Engine/Transient.DynamicMesh_0","RemeshOptions":{"bDiscardAttributes":false,"bReprojectToInput":true},"UniformOptions":{"TargetEdgeLength":3.0,"SmoothingRate":0.25,"Iterations":20}}}
```

## 发现

对上述任意 CDO 路径调用 `DescribeObject` 可查看完整函数列表和参数签名。

