공부/Unreal Engine

[Unreal5] density를 z 좌표로 나타내는 PCG Custom 노드 만들기

굴러다니다니 2023. 11. 28. 17:36
728x90

콘텐츠 브라우저 > 추가 > 블루프린트 > PCGBlueprintElement 추가

 

변수로 MaxHeight를 만들어서 눈표시로 켜주고 클래스 디폴트 버튼 눌러서 클래스 세팅을 위에처럼 해주자

이름은 다 마음대로 해도 된다.

잊지말고 디폴트 입력 핀, 출력 핀 끄자!

 

왼쪽에 Execute With Context 함수를 오버라이드하고 아래처럼 설정해주자.

여기서 Point Loop In Context는 Execute with Context의 In Context와 연결하면 된다! (빼먹음!)

 

이렇게 생긴 애가 나올텐데 (연결은 무시좀 귀찮아서 안지움) 이제 얘를 연결해주자.

InPoint 친구랑 Break PCG Point 노드를 연결하자.

 

Break PCG Point는 PCG Point를 Transform, Density 값으로 분해해준다.

이렇게 분해된 Transform을 다시 Break Transform 으로 Location을 얻기위해 다시 분해해준다.

 

요로코롬 나온 친구한테서 Break Vector로 다시 x, y, z값을 쪼개주고 아래처럼 Max Height 받은 값에 앞에서 Break PCG Point에서 나온 Density 값을 곱해서 -100을 해주고 (선택사항 안해도 됨 + 오른쪽 아래 make vector 없어도됨) 위에 Make Vector의 Z값이랑 연결하자.

 

쪼갠 과정 역으로 만들어서 Return Node 해주고 컴파일 후 저장!

 

이제 본인이 하던 원래 PCG Graph로 돌아오자

이렇게 하고 디버그찍으면 이런식으로 보일테고

 

내가 만든 노드 옆에서 꺼내서 연결하고 Max Height 잘 조정하면 오른쪽처럼 보일테고 (Max Height: 3000, Volume Scale 500 500 1이었나)

 

Spawner랑 연결하면 아주 이쁘게 떨어지는 의자들을 볼 수 있다.

결론적으로 나온 삼단 변화

 

끝!

728x90