Unrea Engine Graphic/PCG

Unreal Engine PCG Detail (5) - Mesh Sampler, Subgraph

DB51 2025. 3. 17. 15:19

 

 

 

 

Mesh Sampler

사용할 Asset들의 Nanite를 활성화한다

Mesh 위에 올릴 Asset들을 선택하여 Asset Actions - Edit Selection in Property Matrix

 

 

Nanite 활성화 확인

 

 

PCG 새로 생성, 스케일 조절

 

 

Static Mesh의 위치값을 가져오기 위해 Get Actor Data 노드 생성

 

Actor의 정보를 알기 위해 Actor Filter을 Self로, Data Retrieval Settings - Mode를 Get Single Point로 설정

 

Get Actor Data Debug 모드 전환

 

 

 

Static Mesh Spawner 생성

 

 

Static Mesh 추가 후, Get Actor Data Debug 끄기

 

 

 

 

Bounds Modifier 추가

 

Mode : Set

Bounds Modifier 디버깅 상태에서 레벨에서 Static Mesh와의 크기를 직접 비교하며 Bounds Min, Bounds Max 값을 조절

(Z축은 보기 편하게 하기 위함일 뿐 조절할 필요성은 없다)

 

 

영역이 Static Mesh와 비슷하게 나오도록 한다(같을 필요 없음)

 

 

Transform Points 추가, Debug

Bounds Modifier Debuging 종료

 

Setting 값 변경

PCG 위치 이동에 따라 Point의 Rotaion, Scale 값이 변경될 수 있다.

 

 

 

PCG 자체 스케일 조절에 따라 Point의 Scale이 변경되지 않도록 하기 위해 ✓ Absolute Scale

 

 

 

 

Mesh Sampler

 

동일한 Static Mesh 적용

 

 

Mesh Sampler를 Debug 했을 때, 포인트 스폰 위치를 설정하지 않은 경우, Directional light 액터 위치에 스폰된다.

 

 

 

 Copy Points

 

Copy Points의 Target에 배치한 Static Mesh의 노드를 연결하고, Copy Points를 Debug 한다.

 

 

 

Static Mesh Spawner 생성, Static Mesh 추가, Collision 끄기

 

 

 

Point Density

0.5 < 위쪽을 향하는 점 =< 1

0 =< 아래쪽을 향하는 점 < 0.5

 

 

 

 

 

Normal to Density

 

Normal 0, 0, 1

-> 이 벡터가 위쪽을 향하고 있음을 의미

Density Mode : Set

Copy Points의 Debug를 종료하고, Normal To Density를 Debug한다.

 

위쪽을 향한 점은 밀도가 1에 가깝기 때문에 White로, 아래쪽을 향한 점은 밀도가 0에 가깝기 때문에 Black으로 표시된다.

 

 

 

 

 

 

 

Density Filter

 

Lower Bound의 값을 0.9로 설정하고, Debug를 Density Filter로 변경한다.

 

Black 포인트들이 필터링 된 결과값

 

 

 

 

Transform Points 노드 추가

 

 

 

 

 

 

 

Random 60%를 제외한 포인트를 제거하기 위해 Select Points 노드 추가

 

Ratio : 0.6

 

 

 

 

 

 

 

 

Subgraph

기존에 제작한 Landscape 기반 PCG에 Mesh 기반 PCG 추가하기

 

생성 절차에 맞춰 노드 위치 조정

우선순위에 따른 노드 위치 (아래일수록 우선)

Spline > Tree > TreeLog > Stone > Foliage

 

Surface Sampler 추가, Debug

 

 

 

만들어둔 pcg를 복제하여 사용한다.

 

복제한 PCG 파일을 열어 ✓ Expose to Library

 

 

상위 그래프에서 검색하여 하위 그래프 노드를 불러온다

 

하위 그래프로 돌아간다

 

 

Input

 

Label : InputPoint

Allowed Types : Point

 

Get Actor Data를 Input으로 대체한다

 

 

 

Output

 

Label : TreeLogPoint

Allowed Types : Point

 

Tree Log의 결과인 TransformPoints에 Output 연결

 

 

 

 

상위 그래프로 돌아가 Surface Sampler과 PCG sub 그래프 연결

 

 

생성 확인

 

 

 

Debug

: Debug 노드. 각 노드에 대해 디버그를 활성화할 필요 없다. 각각의 특정 출력을 디버깅할 수 있다.

 

 

Surface Sampler - Looseness로 생성 개수 조절, Debug - Disable

 

 

생성한 하위 그래프를 Difference를 통해 겹치지 않도록 배

 

 

Tree Log(하위 그래프)와 높은 우선 순위의 노드들의 Difference를 사용하기 위해 하위 그래프로 돌아가 Difference를 생성

 

 

Input의 Pins에서 새 Parameter을 생성

Label : DifferenceMask

Allowed Types : Spatial

 

생성한 Parameter를 Differences에 연결

 

 

 

상위 그래프로 돌아가 Difference Mask에 해당 노드들을 연결