PCG 바이옴 코어(PCG Biome Core) 플러그인과 PCG 바이옴 샘플(PCG Biome Sample) 플러그인은 어트리뷰트 세트 테이블, 피드백 루프, 재귀 서브그래프 및 런타임 계층형 생성 등의 PCG 프레임워크 기능 사용법에 대한 예시입니다.
기본 요건
이 섹션에서는 월드에서 PCG 바이옴 코어를 작동하는 데 필요한 기본 요건과 모든 단계를 다룹니다.
플러그인 활성화하기
PCG 바이옴 코어 및 샘플 플러그인은 두 개의 상이한 플러그인입니다. PCG 바이옴 코어 플러그인은 독립형 플러그인으로, 바이옴 생성 툴 작동에 필요한 콘텐츠만 포함되어 있으며 PCG 프레임워크 및 PCG 지오메트리 스크립트 상호 운용(PCG Geometry Script Interop) 플러그인에 종속됩니다. PCG 바이옴 샘플 플러그인은 바이옴 생성 툴을 보여주는 콘텐츠 예시로, 모든 프로젝트에서 활성화할 수 있으며 PCG 바이옴 코어 플러그인에 종속됩니다.
플러그인을 활성화하려면 플러그인 세팅을 열고 PCG 바이옴 코어가 툴에 액세스할 수 있도록 활성화하거나, PCG 바이옴 샘플이 툴과 콘텐츠 예제에 모두 액세스할 수 있도록 활성화합니다. 플러그인 활성화에 대한 자세한 내용은 플러그인 작업하기를 참조하세요.
리소스
PCG 바이옴 코어 및 샘플 두 플러그인에 관련된 모든 콘텐츠에 액세스하려면 엔진 콘텐츠 표시(Show Engine Content) 및 플러그인 콘텐츠 표시(Show Plugin Content) 콘텐츠 브라우저 세팅을 활성화해야 합니다. 콘텐츠 브라우저 에서 세팅 메뉴를 열고 두 옵션에 모두 체크합니다.


콘텐츠 브라우저 경로:
/All/EngineData/Plugins/PCGBiomeCore
/All/EngineData/Plugins/PCGBiomeSample
디스크 경로:
..\Engine\Plugins\Experimental\PCGBiomeCore\
..\Engine\Plugins\Experimental\PCGBiomeSample\
PCG 바이옴 코어 콘텐츠
모든 베이스 블루프린트 클래스는 /All/EngineData/Plugins/PCGBiomeCore/Blueprints
에 있습니다.
BP_PCGBiomeCore 는 BiomeCore PCG 그래프를 참조하고 박스 콜리전(Box Collision) 컴포넌트를 볼륨으로 보유하고 있는 PCG 컴포넌트로 미리 환경설정된 메인 블루프린트 클래스입니다.
플러그인의 루트에 있는 BiomeCore PCG 그래프는 바이옴 코어 작동을 위한 모든 로직을 실행하는 소스이자 메인 그래프입니다. 여기에는 자체 중첩 서브그래프가 포함된 서브그래프가 여러 개 포함되어 있습니다. 이러한 개별 서브그래프는 모두 'Core' 폴더에 저장됩니다.
BiomeCore 그래프: /Script/PCG.PCGGraph'/PCGBiomeCore/BiomeCore.BiomeCore'
이 툴은 특정 구조체로 사전 제작된 여러 데이터 에셋(Data Assets) 클래스를 사용하여 콘텐츠를 생성합니다. 이러한 데이터 에셋은 BiomeDefinitions, BiomeAssets 및 BiomeGenerators 이며, 모두 각각의 해당 폴더와 ../Setup
서브 폴더에 있습니다. 각 타입의 디폴트 에셋도 테스트와 디버깅에 사용할 수 있습니다.
PCG 바이옴 샘플 콘텐츠
BiomeSampleLevel 월드는 /All/EngineData/Plugins/PCGBiomeSample/Maps
에 있습니다.
이 월드에는 BP_PCGBiomeCore, 바이옴 구성(Biome Setup), 볼륨(Volume) 및 스플라인(Spline) 액터가 미리 환경설정되어 있어 툴을 이해하고 설정하는 방법을 배우기 시작할 때 사용하면 매우 좋습니다.
이 샘플에는 여러 바이옴과 제너레이터, 에셋은 물론 커스텀 구조체와 베이스 바이옴 코어 클래스에서 상속된 데이터 클래스가 포함되어 있습니다. 모두 해당 BiomeSample 폴더와 ../Setup
서브 폴더에 있습니다.
또한 PCG 바이옴 샘플 플러그인에는 Tiles 폴더에 있는 BiomeMap 텍스처, 타일 흐름 및 SunExposure texture2Darray를 비롯한 추가 데이터와 예시 PCG 어셈블리, 메시 및 필터 그래프 인스턴스가 포함되어 있습니다.
월드 구성
바이옴 생성 툴을 처음부터 사용하는 방법에 대한 단계별 퀵스타트 가이드와 새 바이옴 및 에셋 추가 방법에 대한 지침입니다.
-
새 레벨을 생성하거나 기존 월드를 엽니다. PCG 바이옴 코어는 파티션되거나 파티션되지 않은 레벨을 사용하여 월드 파티션(World Partitioned)에서 작동합니다.
-
랜드스케이프 에디터(Landscape Editor) 모드를 통해 원하는 월드 스케일의 새 랜드스케이프를 추가합니다. 오픈 월드 템플릿에서 시작하거나 기존 랜드스케이프가 포함된 기존 레벨에서 시작하는 경우, 별도로 해야 할 작업이 없습니다.
랜드스케이프의 존재는 PCG 바이옴 코어 작업 시 옵션 입니다.
-
레벨에 BP_PCGBiomeCore 액터를 드래그 앤 드롭하거나 추가합니다. 제공된 BP_PCGBiomeCore 블루프린트 클래스는
/Script/Engine.Blueprint'/PCGBiomeCore/Blueprints/BP_PCGBiomeCore.BP_PCGBiomeCore'
에 있습니다. -
BP_PCGBiomeCore 액터의 볼륨 컴포넌트 스케일을 원하는 월드 범위에 맞춰 조정합니다. 툴에서는 이 볼륨을 사용하여 생성 및 출력을 제한합니다. 최상의 퍼포먼스를 얻으려면 높이를 포함한 환경 또는 랜드스케이프에 맞춰 볼륨을 신중하게 조정해야 합니다. 디폴트 스케일은 1024x1024x256m입니다.
-
레벨에서 BP_PCGBiomeCore 액터의 'BiomeCore' PCG 컴포넌트를 선택하고 생성(Generate) 을 클릭하여 라이브 업데이트를 위해 생성된 상태를 초기화합니다. 이 단계에서는 레벨에 아무것도 표시되지 않는 것이 정상입니다.
바이옴, 제너레이터 및 에셋을 구성하기 전에 다음 작업을 통해 이전 단계의 유효성을 검사합니다.
-
BP_BiomeCore 볼륨 내에 DefaultBiomeVolume/Spline 액터 를 드래그 앤 드롭하거나 추가합니다.
예상 결과: 자동으로 새로고침이 진행되고 디버그 큐브 메시가 DefaultBiomeVolume/Spline 및 BiomeCore 볼륨 내에 제약된 랜드스케이프 표면에 스폰됩니다.
새로고침이 진행되지 않거나 디버그 큐브가 스폰되지 않으면, 앞서 5단계의 생성(Generate) 버튼을 사용하여 BiomeCore PCG 컴포넌트가 한 번 트리거되었는지, 그리고 DefaultBiomeVolume/Spline 액터가 BiomeCore 볼륨 안에 있고 랜드스케이프 표면을 오버랩하는지 확인합니다.
-
DefaultBiomeVolume/Spline을 추가한 다음에는 바이옴 캐시 디버그 디스플레이를 활성화하여 바이옴 범위 및 생성 유효성을 검사할 수 있습니다. BiomeCore PCG 컴포넌트에는 모든 글로벌 파라미터가 포함되어 있습니다. 바이옴 캐시를 확인하려면 '디버그 - 바이옴 캐시 디스플레이(Debug - Display Biome Cache)' 옵션을 오버라이드하고 활성화합니다. 바이옴 캐시에 대한 자세한 내용은 바이옴 캐시 Cache에서 확인할 수 있습니다.
예상 결과: 자동 새로고침이 진행되어 캐시 복셀이 표시됩니다. 정의되지 않은 바이옴의 디폴트 컬러는 검은색이며 미리 환경설정된 DefaultBiomeVolume/Spline 액터 바이옴 컬러는 흰색입니다. 흰색 캐시 복셀이 DefaultBiomeVolume/Spline이 배치된 곳에 나타나야 합니다.
해당 바이옴 캐시가 표시되지 않으면 앞서 5단계의 생성(Generate) 버튼을 사용하여 BiomeCore PCG 컴포넌트가 한 번 트리거되었는지, 그리고 해당 옵션이 BiomeCore PCG 컴포넌트에서 오버라이드되고 활성화되어 있는지 확인합니다. 전체 캐시의 컬러가 검은색이면 BiomeCore 볼륨 안으로 DefaultBiomeVolume/Splin 액터를 이동합니다.
-
BiomeCore가 예상대로 작동하는지 유효성을 검사한 다음에는 월드에서 DefaultBiomeVolume/Spline을 제거합니다.
바이옴, 제너레이터 및 에셋 구성
원본 월드 구성을 완료하고 유효성을 검사한 뒤에는 다음 단계를 진행하여 해당 정의와 에셋으로 새 바이옴을 생성합니다.
-
월드의 바이옴 코어 액터 볼륨 내에 새 BP_PCGBiomeVolume 또는 BP_PCGBiomeSpline 액터를 드래그 앤 드롭하거나 추가하여 랜드스케이프 표면을 오버랩합니다. 블루프린트 클래스의 위치는 다음과 같습니다.
BP_PCGBiomeVolume:
/Script/Engine.Blueprint'/PCGBiomeCore/Blueprints/BP_PCGBiomeVolume.BP_PCGBiomeVolume'
BP_PCGBiomeSpline:
/Script/Engine.Blueprint'/PCGBiomeCore/Blueprints/BP_PCGBiomeSpline.BP_PCGBiomeSpline'
-
바이옴 정의, 제너레이터 및 에셋에 대한 새 데이터 에셋 세트를 생성합니다. 데이터 에셋은 콘텐츠 브라우저의 추가 버튼이나 우클릭 메뉴의 데이터 에셋을 사용하여 추가할 수도 있고, 같은 클래스의 기존 에셋에서 복제할 수도 있습니다.
-
바이옴 정의(Biome Definition): 프로젝트 콘텐츠 폴더의 class BiomeDefinitionTemplate 에 새 데이터 에셋을 추가하고 BiomeName, BiomeColor 및 BiomePriority 프로퍼티를 설정합니다.
이러한 프로퍼티는 바이옴을 정의하며, 해당 정의 에셋은 여러 바이옴 볼륨 및 스플라인, 월드 또는 여러 월드에서 공유하고 재사용할 수 있지만, 그 세팅은 다른 바이옴 정의 에셋과 비교해서 고유해야 합니다. 바이옴 캐시에 대한 디버그 디스플레이를 활성화하면 BiomeColor가 표시됩니다.
바이옴 정의에 대한 자세한 내용은 바이옴 정의에서 확인할 수 있습니다.
-
바이옴 제너레이터(Biome Generator): 프로젝트 콘텐츠 폴더의 class BiomeGeneratorTemplate 에 새 데이터 에셋을 추가하고 GeneratorType, GeneratorPriority 및 GeneratorGraph 프로퍼티를 설정합니다.
이러한 프로퍼티는 제너레이터를 정의하며, 해당 제너레이터 에셋은 여러 에셋에서 공유하고 재사용할 수 있고 공유하고 재사용해야 하며, 에셋을 할당하고 스폰할 링크된 GeneratorGraph PCG 그래프로부터 초기 포인트 데이터를 제공합니다.
GeneratorGraph 는 PCG 그래프 또는 PCG 그래프 인스턴스로, 해당 월드나 랜드스케이프 또는 원하는 로직을 샘플링하여 생성된 포인트 데이터를 출력합니다. 시작하려면 다음 위치에서 BiomeGenerator_Template 그래프를 복사합니다.
/Script/PCG.PCGGraph'/PCGBiomeCore/BiomeGenerators/Graphs/BiomeGenerator_Template.BiomeGenerator_Template'
바이옴 제너레이터에 대한 자세한 내용은 제너레이터에서 확인할 수 있습니다.
-
바이옴 에셋(Biome Asset): 프로젝트 콘텐츠 폴더의 class BiomeAssetTemplate 에 새 데이터 에셋을 추가한 다음 새 바이옴 에셋 배열 항목을 추가하고 위에서 생성한 바이옴 제너레이터 데이터 에셋에 대한 필수 레퍼런스인 제너레이터 와 스폰할 비주얼인 메시를 설정합니다.
바이옴 에셋 배열은 처리하고 스폰할 에셋 컬렉션입니다. 각 항목에는 환경설정할 여러 프로퍼티가 포함되어 있으며, 생성된 포인트에 같은 제너레이터 레퍼런스를 공유하는 에셋이 무작위로 배포됩니다. 원하는 경우 바이옴 에셋 목록을 여러 바이옴에서 공유하고 재사용할 수 있습니다.
바이옴 에셋에 대한 자세한 내용은 바이옴 에셋 및 구조에서 확인할 수 있습니다.
-
1단계에서 월드에 추가한 BP_PCGBiomeVolume에 대한 바이옴 정의 및 에셋을 할당합니다.
이러한 단계를 수행하면 자동으로 새로고침이 진행되고 BP_PCGBiomeVolume 및 Biome Core Volume 내에 제약된 새 바이옴이 정의된 에셋을 스폰합니다.
이 초기 환경설정이 완료되면 더 많은 제너레이터와 에셋을 사용하여 바이옴을 확장할 수 있습니다. 같은 프로세스를 통해 원하는 수의 바이옴을 생성할 수 있으며, 이러한 바이옴은 같은 월드 안이나 여러 월드에 걸쳐 공존할 수 있습니다. 전체 구성은 PCGBiomeSample 플러그인 내에 있는 BiomeSampleLevel을 참조하세요.
이 이미지에서 바이옴은 나무와 바위에 하나씩 2개의 커스텀 제너레이터만 참조하고 공유하는 여러 에셋으로 환경설정되었습니다.
해당 에셋에 BP_PCGBiomeSpline 액터와 64m 바이옴 블렌딩 범위를 오버랩하여 우선순위가 높은 여러 바이옴을 더 추가한 후의 모습입니다.