프로시저럴 콘텐츠 생성(Procedural Content Generation, PCG) 프레임워크 는
언리얼 엔진 내에서 고유 프로시저럴 콘텐츠를 생성하기 위한 툴세트이다.
이 프레임워크는 확장성과 상호작용성을 향상시키기 위해 만들어졌으며,
기존 월드 제작 파이프라인에 손쉽게 통합되어 프로시저럴 워크플로와 기존 워크플로 간의 경계를 효과적으로 허뭅니다.
레벨과 컨텐츠를 제작 하는데 있어서 반복적인 작업을 PCG를 통해 절차적으로 자동 생성해주는 툴을 제작할수있다.
언리얼에서는 해당 기능을 활용한 샘플 프로젝트를 제공하는데
일단 pcg툴을 잘 제작해놓기만하면 매우 빠른속도로 매우 넓고 밀도높은 레벨을 절차적으로 생성할수있다.
반복적인 작업을 절차적으로 자동생성해 아티스트와 레벨디자이너의 작업효율을 높이고
소규모 인원의 인디 게임에서도 넓고 밀도있으면서 퀄리티높은 레벨을 제작할수있다.
PCG graph blueprint를 생성하고 내 레벨 표면에 PCG를 디버깅 할수 있다.

PCG 볼륨을 내 레벨에 생성하고 surface sampler에 alt+d를 누르면 level 표면에 랜덤한 포인트에 디버깅 오브젝트를 생성한다.

surface sampler에 a를 누르면 각 오브젝트의 location, rotation등 생성 정보를 확인할 수 있다.

이렇게 생성한 pcg 오브젝트는 레벨에 다른 오브젝트와 상호작용 할수 있다.
예를들면 지금상태로는 디버그 오브젝트가 물 오브젝트안에도 생성되고있다.

물 오브젝트와 상호작용해 물이있는곳에는 pcg가 오브젝트를 생성하지 않도록 할수있다.

static mesh spawner로 디버그 오브젝트 자리에 static mesh를 스폰해주면
강 밖에 나무를 자동으로 생성해주는 pcg 완성이다.
