Unrea Engine Graphic/PCG

Unreal Engine PCG Detail (1) - PCG Node

DB51 2025. 3. 14. 14:48

 

 

 

Plugins



Create PCG



PCG 노드는 좌측 창이나 Tab을 통해 가져올 수 있다

 

 

 PCG 배치 시, Landscape에 닿게 배치해야만 사용가능

 

 

 

Node Shortcut (노드 선택 상태 단축키)

[D] - Debug

[A] - Inspect

[E] - Enable / Disable

[Q] - Straighten Connection(s)

레벨에 배치된 PCG 선택 - ctrl + [E]  -  PCG Editor 창 단축키

 

 

 

 

 

Get Landscape Data

 : 랜드스케이프의 정보를 가져온다

 

 

 

 

 

Surface Sampler

 : 임의로 위치를 생성해준다. Debug 상태에서만 확인 가능. Inspect를 켜서 만든 각 포인트들의 모든 정보(Postion, Location, Scale 등)를 Attribute 창을 통해 표시한다.

 

 

Debug 상태

 

 

 

Inspect 상태의 Attribute 창

 

 

 

Density의 값

0 == White

0 < n <1, n == Grey

1 == Black



 

 

 

 

Surface Sampler Settings

 

Seed

 : 수치 변경을 통해 랜덤으로 변경 가능 (랜덤 배치)

 

Points Per Squared Meter

 : 정해진 영역 내의 배치 양 조절

 

Looseness

 : 각 점과의 거리 조절

 

Point Extents

 : 포인트의 크기 (포인트의 수에 영향을 준다)

 

Unbounded

 : PCG 경계 여부. 없을 경우 Landscape 전체에 적용

 

 

 

 

 

 

Static Mesh Spawner

 : Static Mesh를 적용하고, 값을 조절

 

 

 

Single Static Mesh

Mesh Selector - Mesh Entries - Add Element - Index - Descriptor - Static Mesh

*Static Mesh - Nanite 활성화

 

 

 

Multi Static Mesh

Static Mesh를 검색한 상태로 적용하면 편리

 

 

 

Mesh Entries - Index - Weight

 : 해당 Static Mesh가 차지하는 비중. (입력 값 / 합산한 값)



 

 

 

Transform Points

 : 포인트의 위치, 방향, 크기 등의 변형을 조절, 최소값, 최대값을 통해 적용 범위 조절 가능능 (Debug 상태에서 사용)

 

 




Transform Points - Debug, Static Mesh Spawner - Disabled 상태

 

 

Transform Points - Debug, Static Mesh Spawner - Enable 상태

* Surface Sampler과 동시에 디버그 하는 경우, 원래 위치와 비교할 수 있다.



* Transform Points Enable / Disable로 적용 전 / 후 비교 가능

 

Disable (Before)

 

Enable (After)



 

 

 

PCG 생성 이후 Landscape 변경 시

 

Force Regen (강제 재생)을 통해 Landscape 정보 업데이트




 

 

 

경사진 Landscape에 적용된 PCG 조절

 

Transform Points - ✓ Absolute Rotation 

 : 랜드 스케이프의 경계면과 상관 없이 생성 (자연스럽게 생성되지 않음)

 

해당 영역에 포인트가 생성되지 않도록 하여 자연스럽게 연출

 

 

 

 

 

Adding Other Static Mesh

 

 

Self Pruning

 : 겹치는 Mesh 제거

 

 

Pruning Type

 

Large to Small

 : 큰 포인트를 우선순위로 정하고 작은 포인트를 삭제

 

Small to Large

 : 작은 포인트를 우선순위로 정하고 큰 포인트를 삭제

 

All Equal

 : 비율을 동등하게 설정



Mesh와 Point의 크기를 동일하게 설정하기

결과값이 더 정확하게 나오기 위함

 

 

 

 

 

Bounds Modifier

 : Points 설정값의 배율 조절

 

 

Bounds Min / Bounds Max

 : 한 축의 각 끝의 값

ex) Bounds Min X == X축의 오른쪽 값, Bounds Max X == X축의 왼쪽 값

 



Result







특정 포인터 제거하기

 

Difference

 : Difference의 매개 변수는 포인트 데이터가 아닌 공간 데이터(Spatial Data).

 

* Difference를 사용할 때, Density Function은 Binary로 설정해야한다.

 

Node에 Binary를 적용시키기 위해 Disable - Enable을 한다.

 

겹치지 않도록 할 Static Mesh의 Transform Points를 Difference에 연결

 

Result

 

 

 

Difference Node 순서 배치

 - Differences로 사용할 노드는 Static Mesh Spawner 이전의 노드를 사용

 - Self Pruning 이전에 사용된다

 

 

 

 

Final Result