PART 1 · 강의 1/3

PCG 프레임워크 개요

Unreal Engine의 Procedural Content Generation 프레임워크의 역사, 아키텍처, 핵심 설계 철학을 학습합니다.

01

PCG란 무엇인가

Procedural Content Generation의 개념과 게임 개발에서의 역할

PCG(Procedural Content Generation)는 알고리즘을 사용하여 게임 콘텐츠를 자동으로 생성하는 기법입니다. UE5의 PCG 프레임워크는 노드 기반 그래프 시스템으로, 아티스트와 레벨 디자이너가 코드 작성 없이도 대규모 프로시저럴 월드를 구축할 수 있도록 설계되었습니다.

PCG의 핵심 가치

수작업으로 수천 개의 나무를 배치하는 대신, PCG 그래프 하나로 지형에 맞춰 자연스러운 숲을 생성할 수 있습니다. 변경이 필요하면 파라미터만 조정하면 전체가 자동으로 재생성됩니다.

PCG가 해결하는 문제들

반복 작업 제거

수천~수만 개의 에셋을 수동 배치하는 대신 규칙 기반으로 자동 생성합니다.

일관성 유지

동일한 규칙 세트로 레벨 전체에 걸쳐 일관된 환경 품질을 보장합니다.

빠른 이터레이션

파라미터 변경만으로 즉시 결과를 확인하고 다양한 변형을 테스트할 수 있습니다.

확장성

소규모 정원부터 오픈 월드까지, 규모에 관계없이 동일한 워크플로우를 적용합니다.

02

PCG 프레임워크 버전 역사

UE 5.2 실험적 도입부터 5.7 Production-Ready까지

UE 버전 상태 주요 변경사항
5.2 Experimental PCG 프레임워크 최초 도입. 기본 노드, Surface Sampler, Static Mesh Spawner
5.3 Experimental 서브그래프, Graph Instance, 추가 필터 노드, 성능 개선
5.4 Beta Hierarchical Generation, World Partition 기본 통합, Attribute 시스템 강화
5.5 Production-Ready 안정화, Runtime Generation, GPU Processing 지원, Shape Grammar
5.6 Production-Ready PCG Biome, 향상된 디버깅, Data Asset 지원
5.7 Production-Ready PCG Editor Mode, Polygon2D, Spline Intersection, PVE(실험적), 약 2배 성능 향상
UE 5.7의 핵심 개선

UE 5.7에서 PCG 성능이 약 2배 향상되었으며, PCG Editor Mode가 도입되어 스플라인 그리기, 포인트 페인팅, 볼륨 생성 등을 에디터에서 직접 수행할 수 있습니다. 각 도구는 PCG 그래프에 연결되어 실시간 파라미터 제어가 가능합니다.

03

아키텍처 개요

PCG 프레임워크의 핵심 구성 요소와 데이터 흐름

핵심 구성 요소

구성 요소 C++ 클래스 역할
PCG Graph UPCGGraph 노드 기반 프로시저럴 로직을 정의하는 에셋. 노드를 연결하여 데이터 파이프라인 구성
PCG Component UPCGComponent Actor에 부착되어 그래프 실행을 관리. 에디터/런타임 생성 트리거 담당
PCG Volume APCGVolume PCGComponent가 내장된 간편 Actor. 볼륨 영역 내에서 즉시 PCG 실행
PCG Data UPCGData 노드 간 전달되는 데이터. Point, Spline, Surface 등 다양한 타입
PCG Settings UPCGSettings 각 노드의 설정과 동작을 정의. 커스텀 노드 제작의 기반 클래스

데이터 흐름

PCG 파이프라인 흐름
// PCG 데이터 흐름 개요 [Input] Landscape, Spline, Volume, Actor Data [Sampler] Surface Sampler → 포인트 생성 [Filter] Density Filter, Attribute Filter → 포인트 선별 [Transform] Transform Points → 위치/회전/스케일 조정 [Metadata] Add Attribute, Attribute Noise → 속성 부여 [Spawner] Static Mesh Spawner → 최종 메시 배치 [Output] 레벨에 생성된 Actor/Component들
Material Editor와의 유사성

PCG 그래프는 머티리얼 에디터와 매우 유사한 노드 기반 시스템입니다. 데이터가 왼쪽에서 오른쪽으로 흐르며, 각 노드가 데이터를 변환하여 다음 노드로 전달합니다.

04

플러그인 설정과 첫 실행

PCG 프레임워크 활성화 및 기본 환경 구성

필수 플러그인

플러그인 필수 여부 설명
Procedural Content Generation Framework 필수 PCG 핵심 프레임워크. 그래프 에디터, 기본 노드, 컴포넌트 포함
PCG Geometry Script Interop 선택 Mesh Sampler를 위한 Geometry Script 연동
PCG Biome 선택 Biome 기반 환경 생성 (UE 5.6+)

프로젝트 설정 (C++)

MyProject.Build.cs
// PCG 모듈 의존성 추가 public MyProject(ReadOnlyTargetRules Target) : base(Target) { PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "PCG", // PCG 핵심 모듈 }); }

첫 PCG Volume 배치

  1. 플러그인 활성화: Edit > Plugins > "Procedural Content Generation Framework" 검색 후 활성화
  2. PCG Volume 배치: Place Actors 패널에서 "PCG Volume" 검색 후 레벨에 드래그
  3. PCG Graph 생성: Content Browser에서 우클릭 > PCG > PCG Graph
  4. 그래프 할당: PCG Volume 선택 > Details > Graph 슬롯에 생성한 그래프 할당
  5. 그래프 편집: PCG Graph 에셋을 더블클릭하여 그래프 에디터에서 노드 배치
주의: 에디터 재시작

PCG 플러그인을 처음 활성화한 후에는 에디터를 재시작해야 합니다. 재시작하지 않으면 PCG Volume이나 PCG 관련 에셋이 목록에 나타나지 않을 수 있습니다.

05

PCG vs 기존 프로시저럴 도구

Foliage Tool, Houdini와의 비교

기능 UE5 Foliage Tool Houdini + HDA UE5 PCG
워크플로우 페인팅 기반 외부 DCC + 플러그인 엔진 내장 그래프
비결정적/결정적 비결정적 (수동) 결정적 결정적 (Seed 기반)
런타임 생성 불가 제한적 완전 지원
World Partition 수동 관리 수동 관리 자동 통합
C++ 확장 불가 VEX/Python C++/BP 커스텀 노드
라이선스 비용 무료 (엔진 내장) 유료 무료 (엔진 내장)
Houdini와의 공존

PCG는 Houdini를 대체하는 것이 아닙니다. 복잡한 지오메트리 생성은 여전히 Houdini가 강력하지만, 레벨 내 에셋 배치와 분포에는 PCG가 더 효율적입니다. 두 도구를 함께 사용하는 것이 이상적입니다.

SUMMARY

핵심 요약

  • PCG 프레임워크는 UE5 내장 노드 기반 프로시저럴 콘텐츠 생성 시스템으로, UE 5.2에서 도입되어 5.5에서 Production-Ready가 되었다
  • UE 5.7에서 약 2배 성능 향상, PCG Editor Mode, Polygon2D, PVE(실험적) 등이 추가되었다
  • 핵심 구성 요소는 PCG Graph(로직), PCG Component(실행 관리), PCG Volume(간편 Actor)이다
  • 데이터는 Input → Sampler → Filter → Transform → Spawner → Output 순서로 파이프라인을 따라 흐른다
  • PCG는 결정적(Deterministic) 시스템으로, Seed 기반으로 동일 입력에 항상 동일 결과를 보장한다
  • 런타임 생성과 World Partition 자동 통합을 네이티브로 지원하여 오픈 월드에 적합하다
PRACTICE

도전 과제

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

실습 1: 첫 PCG Volume 배치

UE5에서 PCG 플러그인을 활성화하고, 레벨에 PCG Volume을 배치하세요. PCG Graph를 생성하여 Surface Sampler → Static Mesh Spawner를 연결하고, 볼륨 내에 나무 메시가 자동 배치되는 것을 확인하세요.

실습 2: PCG 파라미터 실험

Surface Sampler의 Points Per Squared Meter를 0.1, 0.5, 1.0, 5.0으로 변경하며 밀도 차이를 관찰하세요. Seed 값을 변경하여 동일 설정에서 다른 분포가 나오는 것을 확인하세요.

심화 과제: PCG와 Foliage Tool 비교 분석

동일한 영역에 PCG와 Foliage Tool로 각각 동일 밀도의 나무를 배치하세요. 배치 시간, 수정 용이성, 일관성, 메모리 사용량을 비교하고 각 도구의 장단점을 정리하세요.