요약 — 언리얼에서 돌을 자연스럽게 배치하려면 PCG로 자동화하세요. Create Points Grid → Projection(← Get Landscape Data) → Transform Points → Static Mesh Spawner만 연결하면, 지형의 높이와 경사에 맞춘 돌 배치가 즉시 완성됩니다.
왜 이 방법이 필요한가
- 돌을 하나하나 클릭해서 놓으면 시간이 많이 듭니다.
- 지형을 바꾸면 다시 배치/정렬해야 합니다.
- 높이·경사에 맞추지 않으면 튀거나 파묻힘이 발생합니다.
PCG로 배치 규칙을 만들면 지형이 바뀌어도 자동으로 재생성되어 속도와 일관성을 동시에 얻을 수 있습니다.
핵심 아이디어 한 줄
Grid로 포인트 생성 → Landcape 데이터로 투영 → Transform으로 랜덤성 추가 → Static Mesh Spawner로 돌 메쉬 배치.
준비물 & 권장 세팅
- Unreal Engine 5.x (메뉴 Edit → Plugins에서 Procedural Content Generation 활성화)
- 지형(Landscape)과 돌 Static Mesh 여러 종
- PCG Graph 새로 만들기: 이름 예)
PCG_Stone
단계별 튜토리얼
1) 포인트 만들기: Create Points Grid
- 그래프에 Create Points Grid를 추가합니다.
- Cell Size로 밀도를 조절합니다(예: 200~400).
2) 지형 정보를 읽고 투영
- Get Landscape Data 노드를 추가해 현재 레벨의 Landscape를 참조합니다.
- Projection 노드를 배치하고, Surface 입력에 Get Landscape Data를 연결합니다.
- Projection의 Mode는 기본(Z축 투영)으로 두면 지형 높이에 맞게 내려앉습니다.
3) 자연스러움 추가: Transform Points
- Transform Points를 Projection 뒤에 넣습니다.
- Uniform Scale을 끄고 Scale 범위를 (예: 0.8~1.3)로 랜덤화합니다.
- Rotation에서 Align to Surface Normal 또는 Align to Tangent 옵션을 활용합니다.
- Translate에 소량의 Jitter(예: X/Y ±30)로 규칙성 완화.
4) 배치: Static Mesh Spawner
- Static Mesh Spawner에 돌 메쉬를 할당합니다(여러 종 가능).
- 여러 메쉬를 넣었다면 Probability로 비율을 조정해 다양성을 확보합니다.
Create Points Grid └─> Projection (Surface ⟵ Get Landscape Data) └─> Transform Points (scale/rotation/jitter) └─> Static Mesh Spawner (Rocks)
결과 확인 & 디버깅 체크리스트
- 돌이 지형 표면을 따라 자연스럽게 배치되는가?
- 메쉬가 떠 있거나 파묻히지 않는가(Projection 연결 확인)?
- 밀도/규칙이 바뀔 때 Regenerate로 즉시 갱신되는가?
문제가 생긴다면 — Projection의 Surface에 Get Landscape Data가 연결됐는지, Landscape 레벨이 맞는지, Transform 순서가 Spawner 앞인지 확인하세요.
품질을 높이는 실전 팁
- 경사 제한: 가파른 경사에선 배치를 줄이려면 Filter로 Slope <= N° 규칙을 추가.
- 높이 마스크: 고도 범위(예: 해발 200~800)만 배치하도록 Height 필터를 넣으면 씬 테마가 선명해집니다.
- 충돌 간격: Transform의 랜덤 스케일이 크면 겹칠 수 있으니 Grid 간격 또는 Collision Half-Extent를 보정하세요.
- 머티리얼: World Aligned 텍스처를 쓰면 스케일 변화에도 패턴 늘어짐이 적습니다.
UMG와의 연결: 클라이언트 프레젠테이션
UMG 슬라이더로 Cell Size/밀도, Scale Range, 확률(Probability)을 노출하면 회의 중에도 돌 배치의 분위기를 즉시 바꿔볼 수 있습니다.
자주 묻는 질문
Q1. Projection을 연결했는데도 돌이 떠 있어요.
A. Projection의 Ray Distance/Direction을 확인하고, Surface에 정확한 Landscape가 연결되어 있는지 점검하세요.
Q2. 너무 격자로 보여요.
A. Grid Cell을 키우고 Transform에서 Jitter/Rotation/Scale 랜덤을 늘리세요. 필요하면 Noise 마스크로 일부 포인트를 제거합니다.
Q3. 성능이 걱정됩니다.
A. LOD/나노이트 활용, 원거리 밀도 감소 규칙, 영역별 PCG 분할로 드로우콜을 관리하세요.
마무리
“그리드 → 투영 → 변형 → 스포너.” 이 네 단계면 돌이 지형을 따라 자연스럽게 깔립니다. 다음엔 이 돌 사이 틈에 잔디를 심어 생생한 바닥을 완성해 보세요.
더 많은 언리얼 엔진 튜토리얼을 원하시나요?
우리 유튜브 채널에서 무료로 제공되는 언리얼 엔진 배경 제작 강의를 확인해보세요. 실무에서 바로 활용할 수 있는 실전 노하우와 최신 기법들을 영상으로 만나보실 수 있습니다.