PART 2 · 강의 1/3

PCG 데이터 타입

Point, Spline, Surface, Volume, Polygon2D, Attribute Set 등 PCG 프레임워크의 핵심 데이터 구조를 학습합니다.

01

PCG 데이터 타입 체계

UPCGData를 기반으로 한 데이터 타입 계층 구조

PCG 프레임워크의 모든 데이터는 UPCGData를 기본 클래스로 합니다. 데이터는 Spatial(공간) 데이터와 Non-Spatial 데이터로 나뉘며, 각각 다른 노드에서 처리됩니다.

PCG 데이터 타입 계층
UPCGData // 최상위 기본 클래스 ├── UPCGSpatialData // 공간 데이터 기본 │ ├── UPCGPointData // 포인트 배열 │ ├── UPCGSurfaceData // 서피스 (Landscape 등) │ ├── UPCGSplineData // 스플라인 경로 │ ├── UPCGVolumeData // 3D 볼륨 │ ├── UPCGPolygon2DData // 2D 폴리곤 (5.7+) │ ├── UPCGPrimitiveData // 프리미티브 (메시) │ ├── UPCGTextureData // 텍스처 데이터 │ └── UPCGCompositeData // 복합 데이터 └── UPCGParamData // 파라미터 (Attribute Set)
Spatial vs Non-Spatial

Spatial 데이터는 3D 공간에서 위치를 가지는 데이터로, 포인트, 서피스, 스플라인 등이 해당합니다. Non-Spatial 데이터(Attribute Set)는 공간 정보 없이 속성값만 담은 테이블 형태의 데이터입니다.

02

Point Data 심화

PCG의 가장 핵심적인 데이터 타입

Point Data(UPCGPointData)는 PCG에서 가장 많이 사용되는 데이터 타입입니다. 각 포인트는 3D 공간의 위치와 함께 다양한 속성을 담고 있습니다.

포인트의 기본 속성 (Static Attributes)

Attribute 이름 타입 접두사 설명
$Position FVector $ 월드 공간 위치
$Rotation FQuat $ 포인트 회전 (쿼터니언)
$Scale FVector $ 포인트 스케일
$BoundsMin / $BoundsMax FVector $ 포인트 바운딩 박스의 최소/최대 범위
$Color FVector4 $ 포인트 색상 (R, G, B, A)
$Density float $ 0~1 범위의 밀도 값. 포인트 존재 확률
$Steepness float $ 서피스 경사도 (0=평탄, 1=수직)
$Seed int32 $ 포인트별 랜덤 시드. 결정적 랜덤에 사용
$ 접두사의 의미

$ 접두사가 붙은 속성은 Static Attribute로, 포인트의 고정된 구조적 속성입니다. Attribute 연산 노드에서 이 이름으로 직접 참조할 수 있습니다. 예: $Density를 기반으로 필터링.

03

Spatial 데이터 타입

Surface, Spline, Volume, Polygon2D 데이터의 특성과 활용

Surface Data

UPCGSurfaceData

Landscape나 Static Mesh의 표면을 나타냅니다. Surface Sampler의 입력으로 사용되며, 포인트가 서피스 위에 정확히 배치되도록 합니다.

입력: Get Landscape Data, Get Primitive Data

Spline Data

UPCGSplineData

스플라인 경로를 나타냅니다. 도로, 강, 울타리 등 경로 기반 생성에 핵심적입니다. Spline Sampler의 입력으로 사용됩니다.

입력: Get Spline Data, Create Spline

Volume Data

UPCGVolumeData

3D 볼륨 공간을 나타냅니다. Volume Sampler로 3D 공간에 포인트를 생성하거나, Intersection으로 영역 제한에 사용됩니다.

입력: Get Volume Data

Polygon2D Data

UPCGPolygon2DData (UE 5.7+)

2D 폴리곤 영역을 정의합니다. 닫힌 영역을 Surface나 Spline으로 변환할 수 있어 유연한 영역 정의가 가능합니다.

입력: Create Polygon 2D

데이터 변환 흐름

데이터 타입 변환 관계
Surface ──→ Surface Sampler ──→ Points Spline ──→ Spline Sampler ──→ Points Volume ──→ Volume Sampler ──→ Points Mesh ──→ Mesh Sampler ──→ Points Points ──→ Create Spline ──→ Spline Points ──→ Create Polygon2D ──→ Polygon2D Polygon2DCreate Surface ──→ Surface Spline ──→ Create Surface ──→ Surface (닫힌 스플라인) // 범용 변환 Any SpatialTo Point ──→ Points Any SpatialMake Concrete ──→ Points
04

Attribute Set (Param Data)

공간 정보 없이 속성값만 담는 테이블 데이터

Attribute Set(UPCGParamData)은 공간적 위치 없이 순수한 키-값 쌍의 데이터를 담습니다. DataTable 로드, 파라미터 전달, 설정값 관리 등에 사용됩니다.

Attribute Set 생성 노드

노드 입력 설명
Create Attribute 수동 입력 단일 Attribute를 가진 Attribute Set을 생성
Load Data Table DataTable 에셋 DataTable의 행을 Attribute Set으로 변환
Get Actor Property Actor 프로퍼티 Actor의 프로퍼티 값을 Attribute Set으로 추출
Point To Attribute Set Point Data 포인트 속성을 Attribute Set으로 변환

메타데이터 도메인

Attribute는 세 가지 도메인 중 하나에 속합니다.

@Data

데이터 전체에 대한 단일 값. 데이터셋 레벨의 메타정보를 담습니다.

@Points

각 포인트마다 개별 값. $Position, $Density 등 포인트별 속성입니다.

@Elements

Attribute Set의 각 엔트리에 대한 값. DataTable 행 데이터 등에 사용됩니다.

SUMMARY

핵심 요약

  • PCG 데이터는 Spatial(Point, Surface, Spline, Volume, Polygon2D)과 Non-Spatial(Attribute Set)로 나뉜다
  • Point Data는 가장 핵심적인 타입으로, $Position, $Density, $Seed 등의 Static Attribute를 가진다
  • Polygon2D는 UE 5.7에서 추가된 2D 폴리곤 타입으로, Surface나 Spline으로 변환이 가능하다
  • 모든 Spatial 데이터는 Sampler 노드를 통해 Point Data로 변환할 수 있다
  • Attribute Set은 공간 정보 없이 키-값 쌍만 담으며, 파라미터 전달이나 DataTable 연동에 사용된다
  • 메타데이터 도메인은 @Data(데이터 전체), @Points(포인트별), @Elements(엔트리별) 세 가지이다
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: PCG 데이터 타입 비교

Point Data, Spline Data, Volume Data를 각각 생성하고 Debug 노드로 시각화하세요. 각 타입을 Spawner에 연결했을 때의 차이를 관찰하세요.

실습 2: 데이터 변환 실습

Spline Data를 Spline Sampler로 Point Data로 변환하고, 스플라인을 따라 가로등이나 울타리를 배치하세요. Points Per Segment로 배치 간격을 제어하세요.

심화 과제: 커스텀 데이터 파이프라인

Landscape Data → Point Data → Volume Data → 최종 Mesh Spawn까지 여러 데이터 변환을 거치는 복합 파이프라인을 구축하세요. 지형 높이에 따라 바이옴을 분류하세요.