요약 — 스플라인으로 꽃길을 그릴 때, 아래 깔린 돌·잔디를 일일이 지우지 마세요. Bound Modifier로 길 영역을 정의하고 Difference로 “지울 포인트”만 깔끔히 제외하면, 길을 수정해도 바닥이 자동 정리됩니다. 건축시각화(ArchViz)에서 정확한 경계 · 빠른 수정 · 재사용성을 동시에 잡는 UE5 PCG 워크플로우를 단계별로 안내합니다.
왜 이 방법이 필요한가
- 꽃길을 조금만 수정해도, 아래 돌/잔디를 다시 정리해야 한다.
- 피드백으로 길 너비·곡선이 자주 바뀌어 매번 수작업이 반복된다.
- 경계가 울퉁불퉁하거나 겹침/튀어나옴 때문에 품질이 떨어진다.
이 글의 목표는 위 문제를 절차적 규칙으로 해결하는 것입니다. 길을 그리거나 수정하면, 바닥 자산이 자동으로 비켜나가도록 만듭니다.
핵심 아이디어 한 줄
Bound Modifier = 영역 정의 · Difference = 지울 포인트 제외
꽃길 스플라인으로 “지울 영역”을 만들고, 돌/잔디 포인트 집합에서 그 영역을 빼기만 하면 끝.
준비물 & 권장 세팅
- Unreal Engine 5.x (PCG 활성화)
- 꽃길: 스플라인 기반(블루프린트 또는 레벨 스플라인 컴포넌트)
- 바닥: 돌 타일/잔디를 PCG Graph로 배치할 준비
- 식별 태그 권장: 예) 스플라인에
Tag=road
단계별 튜토리얼
1) 꽃길 스플라인에 Bound Modifier 추가
- 꽃길 스플라인(또는 관련 블루프린트)에서 Bound Modifier 노드를 추가합니다.
- 너비/두께를 의도한 길 폭에 맞게 설정합니다. 사람이 걸을 폭 + 소폭 여유가 자연스럽습니다.
- 스플라인이 여러 개인 경우 Multiple 옵션으로 한 번에 처리할 수 있게 설계합니다.
Tip — 시각 디버그를 켜서 Bound가 곡선부까지 안정적으로 감싸는지 즉시 확인하세요.
2) 돌/잔디 PCG에도 Bound Modifier 적용
- 돌 타일용 PCG Graph, 잔디용 PCG Graph 각각에 Bound Modifier를 추가합니다.
- 해당 자산의 포인트 분포(그리드/산포) 특성에 맞게 Bound 크기를 조정합니다.
- 결과적으로 “돌/잔디가 깔릴 수 있는 범위”가 안정적으로 정의되어야, 이후 Difference가 깨끗하게 작동합니다.
3) Difference로 “지울 포인트” 빼기
- Get Spline Data 노드로 꽃길 스플라인 포인트(또는 영역)를 가져옵니다. 태그는 예)
Tag=road
, 여러 스플라인이면 Multiple을 ON. - Difference 노드를 배치합니다.
- Source — 돌/잔디의 원본 포인트 집합
- Difference — 꽃길 스플라인이 만든 “지울 영역” 포인트
- Difference의 출력을 Static Mesh Spawner로 연결합니다. Binary 모드를 쓰면 포함/제외가 명확합니다.
/* Source(돌/잔디) */ Create Points / Scatter / Grid/* Difference(꽃길) */ Get Spline Data (Tag=road, Multiple=ON)Source ─┐ ├─> Difference ──> Static Mesh SpawnerDiff ──┘
결과 확인 & 디버깅 체크리스트
- 꽃길을 늘이거나 구부려도, 아래 돌/잔디가 자동으로 비켜나는지 확인
- 경계에서 겹치거나 잘리는 메쉬 없음
- 스플라인 태그(
road
) 교체 시 다른 길에도 즉시 재사용 가능 - 레벨에서 Refresh/Regenerate 시 즉각 재배치되는지
문제가 생긴다면 — 태그 오타/공백, Multiple 설정, Bound 크기(특히 곡선부), Source/Difference 입력 뒤바뀜, 그래프 실행 순서/리프레시를 점검하세요.
품질을 높이는 실전 팁
1) 경계 품질(클린 컷)
- 꽃길 Bound는 살짝 넓게, 돌/잔디 Bound는 정확하게.
- 곡률이 큰 구간은 샘플 간격을 촘촘히 해 톱니 현상을 줄입니다.
2) 최적화
- 큰 지형은 전역 산포 대신 영역 기반(Volume/Tag) 분할로 연산 범위를 줄입니다.
- 스캐터 밀도는 카메라 거리/LOD 전략과 함께 조절해 성능-품질 균형을 맞춥니다.
3) 아트 디렉션
- 경계에 미세 잔디를 일부 남기는 룰을 추가하면 현실감 상승.
- Difference 뒤 Noise/Mask 한 번 더로 ‘너무 기계적인 절단’ 방지.
- Static Mesh Spawner에 Scale/Rotation 랜덤을 주어 반복 패턴 최소화.
UMG와의 연결: 클라이언트 프레젠테이션
이 PCG 그래프의 길 너비, 곡률, 소재를 UMG 슬라이더·드롭다운으로 노출하면, 클라이언트가 UI로 직접 조정하고 즉시 결과를 확인할 수 있습니다. “길 종류: 화단/자갈/목재 데크”와 같은 옵션 버튼을 제공하면 제안 미팅 중 실시간 변경 → 의사결정 속도를 압도적으로 끌어올릴 수 있습니다.
자주 묻는 질문
Q1. Difference가 일부 구간에서만 동작합니다.
스플라인 태그 일치 여부, Multiple 설정, 곡선부 Bound 여유부터 확인하세요. 필요하면 Difference 앞에 Buffer/Expand 개념의 보정(여유 폭)을 추가하세요.
Q2. 경계가 들쭉날쭉합니다.
포인트 간격을 촘촘하게, Bound를 5~15% 넓혀 보세요. 메쉬의 Collision/Scale 설정도 경계를 밀어낼 수 있습니다.
Q3. 성능이 떨어집니다.
그래프를 구역별로 나누고 필요시에만 리프레시하세요. PCG Volume, LOD/밀도 규칙을 적극 활용하세요.
마무리
“처음 한 번 제대로 세팅하면, 이후는 스플라인만 그리면 끝.” 피드백으로 길이 바뀌어도 재작업이 아니라 재생성이며, 컨셉 변경에도 규칙만 바꾸면 전역으로 반영됩니다. 복잡한 수작업 대신 테크니컬 아티스트 방식으로 시간과 품질을 동시에 잡아보세요.
더 많은 예제와 무료 튜토리얼은 유튜브 채널 샘플에서 확인하세요. 포트폴리오·의뢰는 unrealenv.com.
더 많은 언리얼 엔진 튜토리얼을 원하시나요?
우리 유튜브 채널에서 무료로 제공되는 언리얼 엔진 배경 제작 강의를 확인해보세요. 실무에서 바로 활용할 수 있는 실전 노하우와 최신 기법들을 영상으로 만나보실 수 있습니다.