PART 1 · 강의 3/3

기본 노드 활용

Surface Sampler, Static Mesh Spawner, Transform Points 등 가장 빈번하게 사용되는 핵심 노드를 마스터합니다.

01

Surface Sampler

서피스 위에 포인트를 생성하는 가장 기본적인 Sampler

Surface Sampler는 Landscape나 Static Mesh 등의 서피스 위에 규칙적인 그리드 패턴으로 포인트를 생성합니다. PCG에서 가장 자주 사용되는 시작 노드입니다.

주요 파라미터

파라미터 타입 기본값 설명
Points Per Squared Meter float 0.1 제곱미터당 포인트 수. 값이 클수록 밀도가 높아짐
Point Extents FVector (50, 50, 50) 각 포인트의 바운딩 박스 크기. Self Pruning에 영향
Looseness float 1.0 포인트 간 간격의 랜덤 변위 정도 (0=정확한 그리드, 1=최대 변위)
Unbounded bool false true면 Volume 바운드를 무시하고 서피스 전체에 생성
기본 환경 생성 그래프
// 가장 기본적인 PCG 그래프 구성 [Get Landscape Data] (Surface 출력) [Surface Sampler] ← Points Per Sq.Meter: 0.05 (Point 출력) ← Looseness: 1.0 [Density Filter] ← Min: 0.3, Max: 1.0 [Transform Points] ← Random Rotation Z: -180~180 ← Random Scale: 0.8~1.2 [Static Mesh Spawner] ← Mesh: SM_Tree_01
밀도 계산 공식

총 포인트 수 = Area(m^2) x Points Per Squared Meter
예: 1000x1000m Volume에 0.1 ppsm = 약 100,000개 포인트 생성. 대규모에서는 반드시 Density Filter로 간추려야 합니다.

02

Static Mesh Spawner

포인트 위치에 실제 메시를 배치하는 스포너

Static Mesh Spawner는 입력으로 받은 각 포인트 위치에 Static Mesh를 인스턴스로 배치합니다. 여러 메시를 가중치와 함께 설정하여 랜덤 변형을 적용할 수 있습니다.

Mesh Entry 설정

프로퍼티 설명
Static Mesh 배치할 Static Mesh 에셋. 배열로 여러 메시 등록 가능
Weight 해당 메시가 선택될 확률 가중치. 다른 엔트리와의 상대적 비율
Collision Profile 생성된 ISMC(Instanced Static Mesh Component)의 콜리전 프로필
Override Collision 메시별 콜리전 설정 오버라이드 여부
다중 메시 설정 예시
// Static Mesh Spawner - 혼합 숲 구성 Mesh Entries: [0] SM_Oak_Large Weight: 30 // 큰 참나무 30% [1] SM_Oak_Medium Weight: 40 // 중간 참나무 40% [2] SM_Oak_Small Weight: 20 // 작은 참나무 20% [3] SM_Bush_01 Weight: 10 // 관목 10% // 인스턴싱 설정 Instance Packing Mode: PackedISMC // PackedISMC: Instanced Static Mesh Component로 배칭 // 수천 개의 메시도 소수의 드로우콜로 렌더링 가능
HISMC vs ISMC

PCG는 기본적으로 Hierarchical Instanced Static Mesh Component (HISMC)를 사용합니다. HISMC는 거리 기반 LOD와 컬링을 지원하여 대량 인스턴스에 적합합니다.

03

Transform Points와 Point Operations

포인트의 위치, 회전, 스케일을 조작하는 노드들

Transform Points

포인트의 Transform(위치, 회전, 스케일)을 일괄적으로 변경합니다. 절대값 또는 랜덤 범위 지정이 가능합니다.

파라미터 설명 일반적인 용도
Offset Min / Max 위치 오프셋의 최소/최대 랜덤 범위 Z축 미세 조정 (땅에 살짝 묻히기)
Rotation Min / Max 회전의 최소/최대 랜덤 범위 Z축 회전 랜덤화 (-180~180)
Scale Min / Max 스케일의 최소/최대 랜덤 범위 자연스러운 크기 변형 (0.8~1.2)
Uniform Scale X/Y/Z 동일 비율 스케일 여부 나무 등 비율 유지가 필요한 경우
Absolute Offset 월드 좌표 기준 오프셋 (false면 로컬) 지형 법선 기준 배치 시 false

주요 Point Operation 노드

Bounds Modifier

포인트 바운드 크기를 조절합니다. Self Pruning 전에 바운드를 키워 겹침 방지 간격을 늘릴 수 있습니다.

Copy Points

Source 포인트를 Target 포인트 위치에 복제합니다. 패턴 반복에 유용합니다.

Duplicate Point

각 포인트를 지정된 축 방향으로 복제합니다. 벽체나 기둥 반복에 사용됩니다.

Split Points

각 포인트를 특정 위치에서 두 개로 분할합니다. 벽과 지붕 경계 생성 등에 활용됩니다.

자연스러운 식물 배치 Transform 설정
// Transform Points - 자연스러운 나무 배치 [Transform Points] Offset Min: (0, 0, -15) // Z축 약간 아래로 (지면에 묻히기) Offset Max: (0, 0, 0) Rotation Min: (-5, -5, -180) // X/Y축 미세 기울임 + Z축 완전 랜덤 Rotation Max: (5, 5, 180) Scale Min: (0.7, 0.7, 0.7) // 70~130% 크기 변형 Scale Max: (1.3, 1.3, 1.3) Uniform Scale: true // 비율 유지
04

디버깅과 시각화

PCG 그래프 실행 결과를 확인하고 문제를 진단하는 방법

Debug 노드

그래프 중간에 Debug 노드를 삽입하면 해당 지점의 데이터를 뷰포트에 시각화합니다. 포인트는 색상 코딩된 점으로 표시되며, 밀도나 Attribute 값에 따라 색상이 변합니다.

디버그 도구 단축키/위치 기능
Debug 노드 그래프 내 배치 연결된 핀의 데이터를 뷰포트에 포인트/바운드로 표시
노드 Inspection 노드 선택 시 출력 데이터의 포인트 수, Attribute 목록, 실행 시간 표시
Print String 그래프 내 배치 로그에 데이터 정보 출력. 복잡한 그래프 추적에 유용
Sanity Check 그래프 내 배치 포인트가 지정 범위 내에 있는지 검증. 이상값 탐지
디버깅 워크플로우

1. 각 주요 노드 뒤에 Debug 노드를 배치하여 중간 결과를 확인합니다.
2. 문제가 발견되면 해당 노드의 파라미터를 조정합니다.
3. 최종 결과가 올바르면 Debug 노드를 비활성화(D 키)하여 성능을 복구합니다.

Debug 노드 성능

Debug 노드는 실행 시 포인트 데이터를 시각화하기 위해 추가 비용이 발생합니다. 최종 배포 전에는 반드시 모든 Debug 노드를 비활성화하거나 제거하세요.

SUMMARY

핵심 요약

  • Surface Sampler는 서피스 위에 그리드 기반으로 포인트를 생성하며, Points Per Squared Meter로 밀도를 제어한다
  • Static Mesh Spawner는 포인트 위치에 메시를 배치하며, 여러 메시를 가중치로 혼합할 수 있다
  • Transform Points로 위치/회전/스케일에 랜덤 범위를 적용하여 자연스러운 배치를 만든다
  • Copy Points, Bounds Modifier, Duplicate Point 등으로 포인트를 추가 조작한다
  • Debug 노드Print String으로 중간 결과를 시각화하고 문제를 진단할 수 있다
  • 기본 그래프 패턴: Get Landscape Data → Surface Sampler → Filter → Transform → Static Mesh Spawner
PRACTICE

도전 과제

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

실습 1: 주요 노드 실습

Surface Sampler, Transform Points, Density Filter, Copy Points, Merge 노드를 각각 사용하는 미니 그래프 5개를 만드세요. 각 노드의 입출력과 파라미터 영향을 이해하세요.

실습 2: Density Filter 활용

Density Noise와 Density Filter를 조합하여 Perlin Noise 기반의 자연스러운 식생 분포를 만드세요. Density Remap으로 특정 구간만 선택하여 결과의 자연스러움을 향상시키세요.

심화 과제: 노드 조합으로 복합 환경 생성

10개 이상의 노드를 조합하여 숲 속 오솔길을 자동 생성하는 PCG 그래프를 만드세요. 경로 양옆에 나무, 바위, 풀을 배치하고, 거리에 따라 밀도가 변하도록 구성하세요.