지오메트리 스크립팅 라이브러리(Geometry Script Library)는 트라이앵글별 메시 빌드, 버텍스 세기 등 낮은 수준의 메시 생성 및 쿼리부터 메시 부울, 교차점 테스트 등 높은 수준의 작업에 이르기까지 폭넓은 함수 기능을 포함하고 있습니다.
지오메트리 스크립팅 라이브러리 사용에 대한 자세한 내용은 지오메트리 스크립트 사용자 가이드를 참고하세요.
대부분의 함수는 에디터에서 작업 중일 때나 런타임에서 사용할 수 있습니다. 하지만 아래 표에 나와 있는 일부 함수는 에디터에서 작업 중일 때만 사용할 수 있습니다.
에셋 및 컴포넌트 읽기/쓰기
다음과 같은 함수는 기존 에셋 또는 컴포넌트에서 읽고 쓰기 등 다이내믹 메시 인스턴스를 읽고 쓸 때 사용할 수 있습니다.
| 노드 이름 | 설명 |
|---|---|
| Copy Mesh From Static Mesh | 스태틱 메시 에셋에서 다이내믹 메시를 추출합니다. |
| Copy Mesh To Static Mesh | 다이내믹 메시에서 변환된 새 지오메트리로 스태틱 메시 에셋을 업데이트합니다. |
| Copy Mesh From Component | 지원되는 컴포넌트 타입에서 다이내믹 메시 액터를 월드 또는 로컬 스페이스로 추출합니다. |
| Create New Volume From Mesh | 다이내믹 메시 액터에서 블로킹 볼륨 같은 새 볼륨 액터를 생성합니다. 이 노드는 에디터에서만 작동합니다. |
| Create New Static Mesh Asset From Mesh | 다이내믹 메시 액터에서 스태틱 메시 에셋을 생성합니다. 이 노드는 에디터에서만 작동합니다. |
| Set Static Mesh Collision From Mesh | 입력 메시를 기반으로 스태틱 메시 에셋을 위한 단순 콜리전 셰이프를 생성합니다. |
| Set Dynamic Mesh Collision From Mesh | 입력 메시를 기반으로 다이내믹 메시 컴포넌트를 위한 단순 콜리전 셰이프를 생성합니다. |
| Copy Collision Meshes From Object | From Object에서 콜리전 지오메트리를 추출하여 To Dynamic Mesh에 저장된 메시와 함께 복사합니다.
|
| 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 Mesh에 각 트랜스폼을 적용한 후 해당 지오메트리를 타깃 메시에 추가합니다. |
| Append Sweep Polygon | 2D 폴리곤을 스윕 패스에 따라 스윕 및 회전하여 제공된 메시에 덧붙이는 3D 메시를 생성합니다. |
| Append Voronoi Diagram 2D | 제공된 보로노이 사이트에서 트라이앵글화된 보로노이 셀을 생성하여 각각을 폴리그룹으로 식별하고, 제공된 메시에 덧붙입니다. |
| Append Sweep Polyline | FTransform 세트로 지정된 스윕 패스와 함께 지정된 2D 폴리라인 버텍스를 스윕합니다. 2D 버텍스가 (U,V)이면 FTransform의 좌표 공간에서 X는 경로를 '따라', Y는 '오른쪽'(U), Z는 '위쪽'(V)을 가리킵니다. |
트랜스폼 및 디포메이션
다음과 같은 함수를 사용하여 다이내믹 메시의 버텍스 위치를 조작할 수 있습니다. 이러한 조작은 메시 토폴로지 또는 연결성은 변경하지 않습니다.
| 노드 이름 | 설명 |
|---|---|
| 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 펄린 노이즈 디스플레이스먼트를 메시 전체 또는 선택적 선택으로 정의된 리전에 적용합니다. |
| Apply Iterative Smoothing To Mesh | 메시 스무딩 반복작업을 메시 전체 또는 선택적 선택으로 정의된 서브셋에 적용합니다. |
| Apply Displace From Texture Map | 텍스처 2D 및 UV 채널을 기반으로 다이내믹 메시에 디스플레이스먼트를 적용합니다. |
| Rotate Mesh | 지정된 원점을 기준으로 메시를 회전시킵니다. |
| Translate Pivot To Location | 메시의 피벗 위치를 설정합니다. 메시 오브젝트의 피벗은 항상 (0,0,0) 포인트이므로 이 함수는 -PivotLocation만큼 메시를 이동합니다. |
| Make Transform From Z Axis | Z축 벡터를 트랜스폼의 Z축으로 사용하고, bTangentIsX 파라미터를 기준으로 X축 또는 Y축 방향이 탄젠트 벡터인 상태로 지정된 위치에 트랜스폼을 생성합니다. |
| Make Transform From Axes | Z축 벡터를 트랜스폼의 Z축으로 사용하고, bTangentISX 파라미터를 기준으로 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 | 메시를 다이내믹 MeshPool에서 드로된 각 연결 컴포넌트마다 하나씩 부분별로 분할합니다. |
| Split Mesh By Material IDs | 메시를 다이내믹 MeshPool에서 드로된 각 머티리얼 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 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 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 | 최소 및 최대 치수 모두에 확장 기준 파라미터를 추가하여 확장된 입력 박스를 구합니다. 확장 기준 파라미터가 박스 크기의 절반보다 크면 치수가 중앙 포인트로 범위제한됩니다. |
| 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 | 박스가 스피어 중앙 및 스피어 반경으로 정의된 스피어와 교차하는지 확인합니다. |
노멀
다음과 같은 함수는 메시의 노멀을 재계산합니다.
| 노드 이름 | 설명 |
|---|---|
| Flip Normals | 각 페이스의 오리엔테이션을 뒤집어서 메시 노멀을 플립합니다. |
| Set Per Vertex Normals | 메시 노멀을 버텍스별 노멀로 설정합니다. 예를 들어 버텍스에서 노멀을 분할하지 않습니다. |
| Set Per Face Normals | 메시 노멀을 페이스/트라이앵글별 노멀로 설정합니다. 예를 들어 메시의 모든 에지를 따라 노멀을 분할합니다. |
| Compute Split Normals | 각 한계치 및/또는 폴리그룹 토폴로지 등 기타 인수를 기반으로 메시를 위한 분할 노멀을 계산합니다. |
| Recompute Normals | 기존 메시 노멀을 재계산합니다. 기존 분할 노멀은 보존합니다. 예를 들어 메시 디포메이션 이후 사용합니다. |
| Compute Tangents | 다양한 방법을 통해 메시의 탄젠트를 재계산합니다. |
| Set Mesh Per Vertex Normals | 타깃 메시 노멀 오버레이의 모든 노멀을 지정된 버텍스별 노멀에 설정합니다. |
| Get Mesh Has Tangents | 타깃 메시에 탄젠트 어트리뷰트 레이어가 활성화되어 있는지 확인합니다. |
| Discard Tangents | 타깃 메시에서 기존 탄젠트 어트리뷰트 레이어를 제거합니다. |
| Compute Tangents | 지정된 메서드를 사용하여 타깃 메시의 탄젠트를 재계산합니다. |
| Set Mesh Per Vertex Tangents | 타깃 메시 탄젠트 오버레이의 모든 탄젠트를 지정된 버텍스별 탄젠트에 설정합니다. |
| Get Mesh Per Vertex Tangents | 보간된 위치 A * Vertex1 + B * Vertex2 + C * Vertex3 을 계산합니다. 여기에서 (A,B,C)는 BarycentricCoords이고, 버텍스 위치는 타깃 메시의 지정된 TriangleID에서 취합니다. |
| Update Vertex Normal | 타깃 메시의 VertexD에서 노멀 및 탄젠트를 업데이트합니다. |
정리 및 복구
다음과 같은 함수는 메시의 문제를 해결하거나 다른 표준 복구를 적용하는 데 사용할 수 있습니다.
| 노드 이름 | 설명 |
|---|---|
| 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 범위 내의 간격은 메시 단순화 함수를 사용하여 정리됩니다.
| 노드 이름 | 설명 |
|---|---|
| Get Vertex Count | 메시의 버텍스 수를 구합니다. |
| Get Num Vertex IDs | 메시의 버텍스 ID 수를 구합니다. 메시의 밀도가 낮으면 버텍스 수보다 클 수 있습니다. 예를 들어 버텍스를 지운 후 이렇게 될 수 있습니다. |
| Is Valid Vertex ID | 버텍스 ID가 유효한 버텍스를 레퍼런스하면 true를 반환합니다. |
| Get All Vertex IDs | 메시에 있는 모든 버텍스 ID의 인덱스 목록을 반환합니다. |
| Get Vertex Position | 메시 버텍스의 3D 위치를 버텍스 ID로 구합니다. |
| 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 | 트라이앵글에 대한 3개의 코너 위치를 반환합니다. |
| Get Triangle Face Normal | 트라이앵글의 페이스/패싯 노멀을 반환합니다. |
| Get Triangle UVs | 트라이앵글에 대한 3개의 코너 UV 위치를 반환합니다. |
| Get Triangle Material ID | 트라이앵글에 대한 현재 머티리얼 ID를 반환합니다. |
| Get All Triangle Material IDs | 모든 트라이앵글 머티리얼 ID의 인덱스 목록을 반환합니다. |
| Get Triangle PolyGroup ID | 지정된 폴리그룹 레이어에서 트라이앵글에 대한 현재 폴리그룹 ID를 반환합니다. |
| Get Has Vertex ID Gaps | 버텍스 ID 목록에 간격이 있는 경우 true를 반환합니다. 예를 들어 버텍스 ID 수 구하기 값이 버텍스 수 구하기 값보다 큰 경우입니다. |
| Get Has Triangle ID Gaps | 트라이앵글 ID 목록에 간격이 있는 경우 true를 반환합니다. 예를 들어 트라이앵글 ID 수 구하기 값이 트라이앵글 수 구하기 값보다 큰 경우입니다. |
| 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)는 BarycentricCoords이고, 버텍스 위치는 타깃 메시의 지정된 TriangleID에서 취합니다. |
| Compute Triangle Barycentric Coords | 타깃 메시의 지정된 TriangleID를 기준으로 하는 포인트의 중심 좌표 (A,B,C)를 계산합니다. |
| Get Interpolated Triangle UV | 보간된 UV A * UV1 + B * UV2 + C * UV3 을 계산합니다. 여기에서 (A,B,C)는 BarycentricCoords이고, UV 위치는 타깃 메시의 지정된 UV 채널에 있는 지정된 TriangleID에서 취합니다. |
| Get Triangle Normals | 타깃 메시의 지정된 TriangleID에 대해 트라이앵글의 각 버텍스에서 노멀 및 탄젠트 벡터를 구합니다. 이러한 노멀 및 탄젠트는 노멀 및 탄젠트 오버레이에서 취합니다. |
| Get Interpolated Triangle Normal | 보간된 노멀 A * Normal1 + B * Normal2 + C * Normal3 을 계산합니다. 여기에서 (A,B,C)는 BarycentricCoords이고, 노멀은 타깃 메시의 노멀 레이어에 있는 지정된 TriangleID에서 취합니다. |
| Get Triangle Normal Tangents | 타깃 메시의 지정된 TriangleID에 대해 트라이앵글의 각 버텍스에서 노멀 및 탄젠트 벡터를 구합니다. 이러한 노멀 및 탄젠트는 노멀 및 탄젠트 오버레이에서 취합니다. |
| Get Interpolated Triangle Normal Tangents | 타깃 메시의 노멀 및 탄젠트 어트리뷰트에서 지정된 TriangleID에 대해 보간된 노멀 및 탄젠트를 계산합니다. |
| Get Has Vertex Colors | 타깃 메시에서 버텍스 컬러 어트리뷰트가 활성화되어 있으면 true를 반환합니다. |
| Get Triangle Vertex Colors | 타깃 메시의 지정된 TriangleID에 대해 트라이앵글의 각 버텍스에서 버텍스 컬러를 구합니다. 이러한 컬러는 버텍스 컬러 어트리뷰트에서 취합니다. |
| Get Interpolated Triangle Vertex Color | 보간된 버텍스 컬러 A * Color1 + B * Color2 + C * Color3 을 계산합니다. 여기에서 (A,B,C)는 BarycentricCoords이고, 컬러는 타깃 메시의 버텍스 컬러에 있는 지정된 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 같은 어트리뷰트와 함께 추가합니다. 프로시저럴 메시 컴포넌트의 메시 섹션 생성과 비슷합니다. |
| 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 | 지정된 위치의 스칼라 목록에 저장된 스칼라(더블)를 반환합니다. |
| Set Scalar List Item | 지정된 위치의 스칼라 목록에 저장된 스칼라 값을 업데이트합니다. |
| Convert Scalar List To Array | 스칼라 목록을 더블 배열로 변환합니다. |
| Convert Array To Scalar List | 더블 배열을 스칼라 목록으로 변환합니다. |
| 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 Dot와 같이 여러 목록을 취하는 함수의 경우 목록의 엘리먼트 수가 동일해야 합니다.
| 노드 이름 | 설명 |
|---|---|
| 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 를 계산하여 새 벡터 목록에 해당 값을 반환합니다. 기본적으로 이것은 (컨스트레인트 = 1) 두 개의 벡터를 추가합니다. 또한 |
| Vector Blend In Place | 벡터 목록 A 및 벡터 목록 B의 각 벡터 쌍에 대해 ConstantA * A + ConstantB * B 를 계산하여 새 벡터 목록에 해당 값을 저장합니다. 기본적으로 이것은 (컨스트레인트 = 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 를 계산하여 새 스칼라 목록에 해당 값을 반환합니다. 기본적으로 이것은 (컨스트레인트 = 1) 두 개의 값을 추가합니다. 이 함수는 |
| Scalar Blend In Place | 스칼라 목록 A 및 스칼라 목록 B의 각 값 쌍에 대해 ConstantA * A + ConstantB * B 를 계산하여 스칼라 목록 B에 반환합니다. 기본적으로 이것은 (컨스트레인트 = 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 | 지정된 트랜스폼을 지정된 레이에 적용하거나 선택적으로 트랜스폼 반전에 적용하고, 트랜스폼된 새 레이를 반환합니다. |
| 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 | 레이가 스피어 중앙 및 스피어 반경으로 정의된 스피어와 교차하는지 확인합니다. 이 함수는 2개의 교차 거리(레이 파라미터)를 반환합니다. 레이가 스피어와 한 점에서 접하는 경우 두 거리가 동일합니다. 접하지 않으면 MAX_FLOAT가 됩니다. Get Ray Point 함수를 사용하여 거리를 레이 및 스피어의 포인트로 변환합니다. |
| Get Ray Box Intersection | 레이가 스피어 중앙 및 스피어 반경으로 정의된 스피어와 교차하는지 확인합니다. |
| Get Ray Plane Intersection | 레이와 평면의 교차를 찾습니다. |
| Get Ray Line Closest Point | 3D 레이 및 선에서 가장 가까운 포인트 쌍을 계산합니다. 선은 원점과 방향으로 정의되지만 양 방향으로 무한하게 확장됩니다. |
| Get Ray Segment Closest Point | 3D 레이 및 선 세그먼트에서 가장 가까운 포인트 쌍을 계산합니다. 선 세그먼트는 2개의 엔드포인트로 정의됩니다. |
머티리얼 ID
메시의 머티리얼 ID를 조작하는 함수입니다. 머티리얼 ID는 트라이앵글별 인티저이며 특정 머티리얼과 직접 연결되지 않습니다. 각 머티리얼 ID는 스태틱 메시로 변환하거나 메시에서 변환할 때 메시 섹션 과 연결됩니다.
| 노드 이름 | 설명 |
|---|---|
| Get Has Material IDs | 메시에서 머티리얼 ID를 사용할 수 있거나 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로 설정합니다. |
버텍스 값
이러한 함수를 사용하여 버텍스 컬러 와 같이 버텍스에 저장된 메시 값을 구하여 조작할 수 있습니다.
지정된 버텍스에 노멀과 같은 여러 값을 저장할 수는 있지만, 다음과 같은 메서드는 하나만 반환합니다.
| 노드 이름 | 설명 |
|---|---|
| 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 to Linear 컬러 트랜스포메이션을 적용합니다. |
| Convert Mesh Vertex Colors Linear To SRGB | 모든 버텍스 컬러에 Linear to 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 에셋을 생성합니다. |
| 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 | 패치 빌더 메서드를 사용하여 UV를 자동 계산하고 선택에 따라 패킹합니다. |
| Auto Generate X Atlas Mesh UVs | XATlas를 자동 계산하고 선택에 따라 패킹합니다. |
| Get Mesh UVSize Info | 선택적 메시 선택으로 메시 UV 채널에 대한 치수 및 영역에 대한 정보를 계산합니다. |
| Get Mesh Per Vertex UVs | 지정된 UV 오버레이에서 파생된 타깃 메시 내 각 메시 버텍스에 대해 단일 버텍스 UV 목록을 구합니다. |
| Copy Mesh UV Channel To Mesh | Copy From Mesh의 지정된 UV 채널 인덱스에서 Copy To UV Mesh에 있는 3D 버텍스 위치로 2D UV를 복사합니다. 폴리그룹 ID 및 머티리얼 ID는 UV 메시에 보존됩니다. |
| Copy Mesh To Mesh UV Channel | Copy From UVMesh의 3D 버텍스 위치 및 트라이앵글을 Copy To Mesh의 To UV 채널 인덱스로 식별되는 지정된 UV 채널로 전송합니다. 3D 위치(X,Y,Z)는 UV 위치(X,Y)로 복사됩니다. |
폴리그룹
메시의 폴리그룹을 조작하는 함수입니다. 폴리그룹은 트라이앵글별 인티저이며, 모델링 툴과 일부 지오메트리 스크립트 작업에서 묵시적으로 리전을 정의하고 트라이앵글을 패치합니다. 하지만 폴리그룹 레이어는 궁극적으로는 트라이앵글별 숫자이므로 어떤 목적으로도 사용될 수 있습니다.
| 노드 이름 | 설명 |
|---|---|
| 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를 할당합니다. |
본 웨이트
이러한 함수는 스킨 웨이트로도 알려진 본 웨이트를 계산 및 조작합니다. 본 웨이트는 버텍스 세트에서 본의 트랜스포메이션 인플루언스를 결정합니다.
| 노드 | 설명 |
|---|---|
| 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 | 제공된 스켈레톤에 대해 지정된 메시의 스무드 스킨 바인딩을 계산합니다. |
메시 지오메트릭 쿼리
메시의 고레벨 지오메트릭 쿼리에 사용되는 함수입니다.
| 노드 이름 | 설명 |
|---|---|
| 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 좌표는 0이 됩니다. |
| 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 및 공간 쿼리
다음과 같은 함수는 메시의 바운딩 볼륨 계층구조(Bounding Volume Hierarchy, 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 | 메시/BVH와 가장 가까운 3D 레이의 교차점을 찾습니다. |
| Is Point Inside Mesh | 빠른 와인딩 수 쿼리를 사용하여 포인트가 메시/BVH 내에 있는지 테스트합니다. |
유틸리티
다음과 같은 헬퍼 함수는 지오메트리 스크립트 메시 프로세스 및 프로시저럴 제너레이터에 유용합니다.
| 노드 이름 | 설명 |
|---|---|
| Create Dynamic Mesh Pool | 새 다이내믹 메시 풀 오브젝트를 생성합니다. |
| Create Unique New Asset Path Name | 베이스 패스 및 베이스 에셋 이름을 고려하여 새 고유 에셋 이름을 생성합니다. 메시에서 새 스태틱 메시 에셋 생성 등의 함수에 유용합니다. 이 노드는 에디터에서만 작동합니다. |
| Get Mesh Info String | 메시 통계 및 기타 정보가 포함된 디버그 스트링을 반환합니다. |
| Sample Spline To Transforms | 지정된 샘플링 옵션을 기반으로 USplineComponent를 FTransforms 목록으로 샘플링합니다. |
용어집
| 용어 | 정의 |
|---|---|
| 오버레이(Overlay) | 메시에 적용된 버텍스 데이터 타입을 나타내는 데이터 구조입니다. 이러한 타입에는 버텍스 컬러, 노멀, 탄젠트 및 UV가 포함됩니다. 지정된 타입의 여러 값을 단일 버텍스에 저장할 수도 있습니다. 이 경우 해당 타입에 따라서 마지막 값이 사용되거나, 값의 평균을 내거나 임의 값을 사용합니다. |
| 원링(One-ring) | 선택된 버텍스와 에지로 연결되어 있는 인접 버텍스입니다.
버텍스 M의 원링입니다. |
| UV 세트(UV Set) | 메시의 UV 좌표를 포함하며, UV 채널이라고도 합니다. 여러 UV 채널을 사용하여 서로 다른 UV 맵을 표현할 수도 있습니다. |
| 크기(Extents) | 3개 축을 따라 측정된 박스의 절반 치수입니다. 중심점으로부터 얼마나 멀리 있는지 결정하기 위해 사용됩니다. 중앙 포인트 C와 크기 E는 |