PART 5 · 강의 3/3

외부 데이터 통합

DataTable, Alembic, PCG Data Asset, Texture 등 외부 데이터 소스를 PCG 파이프라인에 통합합니다.

01

DataTable 연동

스프레드시트 데이터를 PCG에서 활용하기

Load Data Table 노드는 UE5의 DataTable 에셋을 PCG의 Point Data 또는 Attribute Set으로 변환합니다. 에셋 목록, 배치 규칙, 가중치 등을 외부 테이블로 관리할 수 있습니다.

노드 입력 출력 용도
Load Data Table DataTable 에셋 Point 또는 Attribute Set 전체 테이블 로드
Data Table Row to Attribute Set DataTable + Row Name Attribute Set (단일 행) 특정 행만 로드
DataTable 기반 식생 에셋 관리
// DataTable: DT_VegetationAssets // Row Struct: FVegetationEntry // // | RowName | MeshPath | Weight | MinScale | MaxScale | BiomeID | // | Oak_Large | SM_Oak_Large | 30 | 0.9 | 1.3 | 0 | // | Oak_Small | SM_Oak_Small | 50 | 0.7 | 1.0 | 0 | // | Pine_01 | SM_Pine_01 | 40 | 0.8 | 1.2 | 1 | // | Bush_01 | SM_Bush_Flowering | 60 | 0.5 | 0.8 | 0 | [Load Data Table] Data Table: DT_VegetationAssets Output Type: Attribute Set [Match And Set Attributes] // 포인트의 BiomeType과 테이블의 BiomeID 매칭 Match: BiomeType → BiomeID // → 각 포인트에 MeshPath, Weight, Scale 범위 할당
CSV 워크플로우

DataTable은 CSV 파일에서 직접 임포트할 수 있습니다. 레벨 디자이너나 테크 아티스트가 스프레드시트에서 에셋 목록과 가중치를 편집하고, CSV를 UE5에 다시 임포트하면 PCG 결과가 자동으로 업데이트됩니다.

02

Alembic 파일 임포트

외부 DCC 도구의 지오메트리 데이터 활용

Load Alembic File 노드는 Alembic(.abc) 파일의 지오메트리를 PCG Point Data로 변환합니다. Houdini, Maya, Blender 등 외부 DCC에서 생성한 포인트 클라우드를 PCG에서 활용할 수 있습니다.

Alembic 기반 배치 워크플로우
// Houdini에서 생성한 포인트 클라우드를 PCG에서 활용 // Houdini 측: // 1. Scatter SOP으로 지형에 포인트 분포 // 2. Attribute 추가 (TreeType, Scale 등) // 3. Alembic ROP으로 .abc 파일 출력 // PCG 그래프: [Load Alembic File] File Path: "Content/Data/ForestScatter.abc" (Point Data + Attributes) [Projection] // UE5 Landscape에 재투영 [Attribute Partition] ("TreeType") [각 타입별 Static Mesh Spawner]
Houdini ↔ PCG 하이브리드

복잡한 시뮬레이션(물 흐름, 침식, 생태계 시뮬레이션)은 Houdini에서 처리하고, 결과 포인트 데이터를 Alembic으로 PCG에 전달하는 하이브리드 워크플로우가 효율적입니다. PCG는 런타임 스폰과 World Partition 통합을 담당합니다.

03

PCG Data Asset

PCG 데이터를 에셋으로 저장하고 재활용하기

PCG Data Asset은 PCG의 Point Data, Attribute Set 등을 독립 에셋으로 저장합니다. 사전 계산된 배치 데이터를 저장하여 실행 시간을 줄이거나, 여러 그래프에서 공통 데이터를 공유할 수 있습니다.

노드 동작 용도
Load PCG Data Asset 에셋에서 데이터 로드 사전 계산 데이터 재활용, 비동기 로드 지원
PCG Data Asset 활용 패턴
// 사전 계산된 포인트 데이터를 에셋으로 저장하고 재활용 // 방법 1: 무거운 계산 결과 캐싱 // → Surface Sampler + 복잡한 필터링 결과를 Data Asset으로 저장 // → 여러 PCG Graph에서 Load PCG Data Asset으로 빠르게 로드 [Load PCG Data Asset] Asset: DA_ForestBasePoints // 사전 계산된 숲 포인트 Synchronous Load: false // 비동기 로드 [Transform Points] // 경량 후처리만 적용 [Static Mesh Spawner] // 방법 2: 공통 배치 패턴 공유 // → 건물 내부 가구 배치 포인트를 Data Asset으로 저장 // → 각 건물 PCG에서 Copy Points의 Source로 활용
04

Mesh Sampler와 Texture 입력

메시 표면 샘플링과 텍스처 데이터 활용

Mesh Sampler

Mesh Sampler는 Static Mesh의 표면에 포인트를 생성합니다. 건물 외벽에 담쟁이 배치, 바위 표면에 이끼 생성 등에 활용됩니다.

파라미터 설명
Static Mesh 샘플링할 메시 에셋
Sampling Method Uniform: 균일 분포, Vertex: 버텍스 위치
Num Samples 생성할 포인트 수

Get Texture Data

Get Texture Data는 텍스처를 Surface Data로 변환합니다. 높이 맵 텍스처를 서피스로 변환하거나, 커스텀 마스크를 입력 데이터로 사용할 수 있습니다.

Mesh Sampler 활용 예시
// 바위 표면에 이끼와 식물 배치 [Mesh Sampler] Static Mesh: SM_LargeRock Num Samples: 200 Sampling Method: Uniform [Normal to Density] // 위를 향하는 면에만 Normal: (0, 0, 1) [Density Filter] (0.5~1.0) // 윗면만 통과 [Transform Points] Scale: (0.1, 0.1, 0.1) // 작은 식물 [Spawner: SM_Moss / SM_SmallPlant]
Geometry Script Interop 필요

Mesh Sampler를 사용하려면 PCG Framework Geometry Script Interop 플러그인이 필요합니다. Edit > Plugins에서 해당 플러그인을 활성화해야 Mesh Sampler 노드가 나타납니다.

SUMMARY

핵심 요약

  • Load Data Table로 CSV/DataTable의 에셋 목록과 가중치를 PCG에 연동한다
  • Load Alembic File로 Houdini 등 외부 DCC의 포인트 클라우드를 PCG에서 활용한다
  • PCG Data Asset으로 사전 계산된 데이터를 저장하고 비동기 로드할 수 있다
  • Mesh Sampler는 메시 표면에 포인트를 생성하며, Geometry Script Interop 플러그인이 필요하다
  • Get Texture Data로 텍스처를 Surface Data로 변환하여 마스크 기반 제어가 가능하다
  • 복잡한 시뮬레이션은 외부 도구에서 처리하고, PCG는 스폰/통합/런타임을 담당하는 하이브리드가 효율적이다
PRACTICE

도전 과제

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

실습 1: Data Table에서 데이터 읽기

에셋 배치 정보(메시 경로, 밀도, 스케일 범위)를 Data Table로 정의하고, PCG 그래프에서 이 데이터를 읽어 동적으로 에셋을 배치하세요.

실습 2: 텍스처 맵 기반 배치

외부 소프트웨어에서 생성한 분포 맵 텍스처(Height Map, Moisture Map)를 PCG에서 읽어 에셋 배치에 활용하세요. R/G/B 채널을 각각 다른 에셋 밀도에 매핑하세요.

심화 과제: GIS 데이터 통합 파이프라인

실제 GIS 데이터(위성 이미지 수목 분포, 도로 네트워크)를 PCG에 입력하여 현실 기반 환경을 생성하는 파이프라인을 구축하세요. CSV/JSON 파싱과 좌표 변환을 커스텀 노드로 구현하세요.