도시 샘플 퀵스타트 - 언리얼 엔진 5에서 도시와 고속도로 생성하기

언리얼 엔진 5에서 Houdini의 프로시저럴 데이터 생성을 활용하여 도시를 제작합니다.

Choose your operating system:

Windows

macOS

Linux

도시 샘플(City Sample) 프로젝트는 언리얼 엔진에서 SideFX의 Houdini 엔진에서 절차적으로 생성된 데이터를 사용하여 시뮬레이션된 도시를 제작하는 방법을 보여주는 테크 데모입니다. 도시 샘플은 Houdini에서 생성된 데이터를 사용하여 에셋을 채우고, 인공 지능 시뮬레이션과 오디오 시뮬레이션을 주도하는 등 다양한 작업을 수행합니다.

이 가이드는 Houdini 엔진에서 생성된 데이터를 언리얼 엔진 5로 임포트하는 2부작의 두 번째 편입니다.

이 가이드를 완료하려면 우선 도시 샘플 - Houdini를 사용하여 도시와 고속도로 생성하기를 진행한 상태여야 합니다.

이 가이드에서 학습하는 내용은 다음과 같습니다.

  • Houdini 엔진에서 생성한 데이터를 언리얼 엔진 5로 임포트합니다.

  • 도시를 지원할 오픈 월드 환경을 준비합니다.

  • 규칙 프로세서로 Houdini 프로시저럴 데이터를 임포트하여 도시를 생성합니다.

  • 교통 시뮬레이션을 위해 포인트 클라우드 데이터를 존 그래프와 함께 사용합니다.

  • 월드 파티션을 위해 계층형 레벨 오브 디테일 메시를 생성합니다.

이 가이드의 전제조건

이 가이드에 대한 추가 참고사항

  • 이 가이드에 사용된 워크플로와 파일은 Windows 10 운영체제와 호환됩니다. 언리얼 엔진과 Houdini는 Mac 및 Linux를 지원하지만 두 운영체제에서는 워크플로와 소스 파일을 테스트하지 않았으므로 올바른 작동을 보장할 수 없습니다.

  • 또한 이 가이드는 명령 프롬프트 등을 사용할 때 Windows 운영체제에 대한 지식이 있다고 간주합니다.

1단계 - 프로젝트 구성 및 환경설정

도시 샘플: Houdini를 사용하여 도시와 고속도로 생성하기를 따라하면서 생성한 도시 데이터를 사용하기에 앞서 언리얼 엔진 5에서 몇 가지를 열고 구성해야 합니다.

  1. 언리얼 엔진 5에서 도시 샘플(City Sample) 프로젝트를 엽니다.

    도시 샘플 처음으로 열기

  2. 콘텐츠 브라우저(Content Browser) 에서 콘텐츠 > City 폴더 아래에 Houdini에서 생성한 도시와 동일한 이름의 폴더를 생성합니다. 예를 들어 1부에서 제작한 샘플 Houdini 도시 파일의 이름은 'MyCity'인 경우 콘텐츠 브라우저에서 생성하는 폴더를 MyCity 로 명명합니다.

    도시와 이름이 동일한 폴더 생성

  3. 명명된 도시 폴더를 열고 두 개의 새 폴더 GeometryPBC 를 생성합니다.

    두 폴더 PBC와 Geometry 생성

  4. 도시 샘플 프로젝트에는 이미 활성화된 Houdini 엔진 플러그인(Houdini Engine Plugin) 이 포함됩니다. 메인 메뉴에서 Houdini 엔진(Houdini Engine) 드롭다운 메뉴를 열고 세션 생성(Create Session) 을 선택합니다.

    언리얼 엔진에서 Houdini 세션 생성

    세션을 생성할 수 없다면 출력 로그(Output Log) 를 확인하여 실패한 원인에 대한 추가 컨텍스트를 확인합니다.

이 시점에서 도시 샘플 프로젝트를 열고 도시를 위해 Houdini에서 생성한 데이터를 임포트할 폴더 위치를 생성했을 것입니다. 도시와 이름이 같은 새 폴더를 생성하고 그 안에 두 폴더 GeometryPBC 를 생성했을 것입니다.

2단계 - 도시 데이터를 언리얼 엔진 5로 임포트하기

이전 단계에서 도시 폴더를 생성하고 Houdini 엔진 세션을 시작했다면 이제 데이터를 언리얼 엔진 5로 임포트할 수 있습니다.

  1. Windows에서 Houdini 도시 데이터를 저장한 파일 위치를 엽니다. 퀵스타트 가이드 1부 Houdini를 사용하여 도시와 고속도로 생성하기에서 폴더 경로를 `D:/CitySampleSource/MyCity`로 설정했습니다.

    Windows 폴더 도시 데이터를 언리얼 엔진으로 임포트

  2. Windows의 MyCity 폴더에서 PBC 폴더를 엽니다. 언리얼 엔진에서 콘텐츠 브라우저 를 사용하여 City > MyCity > PBC 폴더를 엽니다. Windows에서 PBC 폴더의 모든 파일을 선택하고 언리얼 엔진의 PBC 폴더로 드래그합니다.

    임포트 프로세스가 완료되면 PBC 폴더에 Houdini에서 생성된 포인트 클라우드 데이터가 임포트되어 아래와 같은 모습일 것입니다.

    언리얼 엔진 콘텐츠 브라우저로 임포트된 포인트 클라우드

  3. Windows의 MyCity 폴더에서 EXPORT 폴더를 엽니다. 언리얼 엔진에서 콘텐츠 브라우저 를 사용하여 City > MyCity > Geometry 폴더를 엽니다. Windows에서 EXPORT 폴더의 모든 파일을 선택하고 언리얼 엔진의 Geometry 폴더로 드래그합니다.

    이 비디오는 Houdini에서 생성된 소도시가 임포트되는 전체 임포트 프로세스를 보여드리기 위해 빠르게 재생됐습니다. 임포트 프로세스에는 도시의 규모에 따라 시간이 꽤 걸릴 수 있습니다. 예를 들어 도시 샘플 프로젝트에 포함된 도시의 경우 Small_City는 임포트에 10분도 안 걸리지만, Big_City는 임포트에 40분 넘게 걸립니다.

  4. 파일(File) 메뉴에서 모두 저장(Save All) 을 선택합니다.

이 시점에서 모든 지오메트리와 포인트 클라우드 데이터 파일이 이 가이드의 1단계에서 생성한 폴더에 임포트되어 에셋으로 저장된 것을 볼 수 있습니다. 이 에셋들은 이후 단계에서 도시 생성을 시작하는 데 사용됩니다.

3단계 - 오픈 월드 레벨 준비하기

이 단계에서는 템플릿 도시 오픈 월드 레벨로 새 레벨을 생성합니다. 이 템플릿 레벨에는 자체 라이팅, 스카이박스, 데이터를 채우기 위한 블루프린트 스포너가 있으며 도시 샘플에 나온 것 같은 도시를 생성할 시작점을 제공합니다.

  1. 파일 메뉴에서 새 레벨(New Level) 을 선택(1)합니다. 사용 가능한 템플릿 중에서 빈 도시 오픈 월드(City Open World Empty) 를 선택(2)하고 생성(Create) 을 클릭(3)합니다.

    새 도시 오픈 월드 빈 템플릿 레벨 생성

  2. 새 레벨이 생성되면 파일 메뉴에서 현재 레벨을 다른 이름으로 저장(Save Current Level As) 을 선택(1)합니다. 콘텐츠 > Maps 폴더에 맵을 저장(2)하고 도시의 이름(Name) 을 텍스트 필드에 입력(3)합니다. 예를 들어 이 가이드에서는 MyCity 를 레벨 이름으로 사용합니다.

    레벨을 저장하고 도시와 같은 이름으로 명명

  3. 레벨 다른 이름으로 저장(Save Level As) 창에서 저장(Save) 을 클릭합니다.

    레벨 저장

이제 도시를 생성 및 빌드하는 데 사용할 레벨이 생겼습니다.

빈 도시 레벨

4단계 - 규칙 프로세서 생성 실행하기

도시 생성을 시작하는 데 필요한 데이터가 모두 엔진으로 임포트되었으며 이를 로드하고 저장할 맵을 준비했습니다. 이 단계에서는 엔진으로 임포트한 도시 및 고속도로 포인트 클라우드를 위해 규칙 프로세서를 사용할 것입니다. 규칙 프로세서는 Houdini 엔진에서 생성된 포인트 클라우드 데이터를 규칙에 매핑함으로써 언리얼 엔진에 데이터를 어떻게 사용하여 월드를 채울지 전달합니다.

  1. 메인 메뉴에서 창(Window) > 규칙 프로세서(Rule Processor) 를 사용하여 RuleProcessor_City 를 엽니다. 그러면 Houdini에서 생성한 파일로 언리얼 엔진에서 도시를 생성하는 데 사용될 창이 열립니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  2. RuleProcessor_City 창에서 포인트 클라우드(Point Cloud) 열의 할당된 에셋을 City > [본인도시이름] > PBC 폴더의 이름이 동일한 에셋으로 대체합니다. 예를 들어 이 가이드에서는 2단계에서 임포트하여 City > MyCity > PBC 폴더에 있는 파일을 사용합니다.

  3. RuleProcessor_City 창에서 규칙 실행(Run Rules) 을 클릭하여 임포트된 도시 파일을 프로세스합니다.

    도시 PBC 파일을 위해 규칙 프로세서 실행

  4. 프로세싱을 확인하라는 팝업 창이 표시됩니다. 준비가 되면 확인(OK) 을 클릭합니다.

    규칙 프로세서 실행 확인

    도시 생성에 걸리는 시간은 도시 규모에 따라 다릅니다. 프로세싱이 완료되기까지 15분에서 1시간이 걸릴 수 있습니다.

  5. PBC 폴더에 있는 고속도로(Freeway) PBC 파일에 대해 이 프로세스를 반복합니다. 메인 메뉴에서 창(Window) > 규칙 프로세서(Rule Processor) 를 사용하여 Rule Processor_Freeway 를 엽니다. 포인트 클라우드(Point Cloud) 열의 에셋을 City > [본인도시이름] > PBC 폴더의 이름이 동일한 에셋으로 대체합니다. 예를 들어 이 가이드에서는 2단계에서 임포트하여 City > MyCity > PBC 폴더에 있는 파일을 사용합니다.

  6. Rule Processor_Freeway 창에서 규칙 실행(Run Rules) 을 클릭하여 임포트된 고속도로 파일을 프로세스합니다.

    고속도로 규칙 프로세서 실행

  7. 프로세싱을 확인하라는 팝업 창이 표시됩니다. 준비가 되면 확인(OK) 을 클릭합니다.

    규칙 프로세서 실행 확인

    도시 생성에 걸리는 시간은 도시 규모에 따라 다릅니다. 프로세싱이 완료되기까지 15분에서 1시간이 걸릴 수 있습니다.

  8. 월드 파티션(World Partition) 패널에서 좌클릭 드래그 하여 월드 파티션 맵의 모든 셀을 선택합니다. 우클릭 하고 선택된 셀 로드(Load Selected Cells) 를 선택합니다.

도시 및 고속도로 포인트 클라우드 데이터에 규칙 프로세서를 사용하면 규칙 세트를 바탕으로 도시를 생성할 정보를 언리얼 엔진에 제공합니다. 이를 통해 엔진이 에셋을 배치하여 도시를 빌드할 수 있습니다.

규칙 프로세서가 데이터 프로세싱을 완료하면 월드 파티션 에디터를 사용하여 도시를 레벨 뷰포트로 로드할 수 있습니다. 로드가 끝나면 날아다니면서 도시를 조사할 수 있습니다.

언리얼 에디터에서 로드된 도시

5단계 - 교통용 존 그래프에 대한 포인트 클라우드 데이터 구성하기

이제 작업할 도시가 생겼으며, 도시를 환경설정하고 구성할 두 개의 블루프린트 스포너가 레벨에 포함되어 있습니다. 소도시에 사용된 데이터 에셋을 작업 중인 도시를 위해 복제해야 한다는 뜻입니다. 이 데이터 에셋들은 임포트한 포인트 클라우드 데이터에 의존합니다.

  1. 레벨 뷰포트에서 표시(Show) 드롭다운 메뉴를 사용하여 내비게이션(Navigation) 이 활성화됐는지 확인합니다.

    레벨 뷰포트 표시 메뉴 내비게이션 활성화

  2. 콘텐츠 브라우저 에서 콘텐츠 > AI > Traffic 폴더로 이동합니다.

    콘텐츠 브라우저에서 AI > Traffic 폴더 열기

  3. ParkingSpaces 폴더에서 CitySampleSmallCityParkingSpaces 데이터 에셋의 사본을 생성합니다. 'SmallCity'를 작업 중인 도시 이름으로 변경합니다. 예를 들어 이 가이드에서는 CitySampleMyCityParkingSpaces 를 사용합니다.

    Parking Spaces 폴더를 열고 에셋 사본 생성

  4. CitySampleMyCityParkingSpace 데이터 에셋을 엽니다. 주차장 포인트 클라우드(Parking Spaces Point Cloud) 할당 슬롯에서 City_cars_parked 를 작업 중인 도시의 *콘텐츠 > City > [본인도시이름] > PBC** 폴더에 있는 동일한 이름의 파일로 대체합니다. 이 가이드에서는 `Content/City/MyCity/PBC` 를 사용합니다.

    데이터 에셋을 PBC 슬롯에 할당

  5. 콘텐츠 > AI > Traffic 폴더로 돌아갑니다.

  6. TrafficLights 폴더에서 CitySampleSmallCityTrafficLights 데이터 에셋의 사본을 생성합니다. 'SmallCity'를 작업 중인 도시 이름으로 변경합니다. 예를 들어 이 가이드에서는 CitySampleMyCityTrafficLights 를 사용합니다.

    TrafficLights 폴더를 열고 에셋 사본 생성

  7. CitySampleMyCityTrafficLights 데이터 에셋을 엽니다. 신호등 포인트 클라우드(Traffic Lights Point Cloud) 할당 슬롯에서 City_traffic 을 작업 중인 도시의 *콘텐츠 > City > [본인도시이름] > PBC** 폴더에 있는 동일한 이름의 파일로 대체합니다.

    데이터 에셋을 PBC 슬롯에 할당

  8. 월드 아웃라이너(World Outliner) 에서 검색(Search) 텍스트 필드에 'Builder'를 입력(1)합니다. 그러면 CityTrafficBuilder_BPFreewayTrafficBuilder_BP 블루프린트가 반환됩니다. 각 줄 항목 옆에서 마우스 커서를 위로 가져가 이름 옆의 핀(Pin) 아이콘을 클릭(2)하여 편집을 위해 레벨에 강제로 로드합니다.

    월드 아웃라이너에서 빌더 블루프린트 검색

  9. CityTrafficBuilder_BP 를 로드한 뒤 월드 아웃라이너 에서 선택합니다. 디테일 패널을 사용하여 기존 포인트 클라우드 데이터를 도시를 위해 임포트한 것으로 대체합니다. Mantle 이라는 이름의 섹션에서 City_traffic 포인트 클라우드 데이터를 에픽 교차점 맨틀 포인트 클라우드(Epic Intersections Mantle Point Cloud) 할당 슬롯에 할당(2)합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  10. FreewayTrafficBuilder_BP 를 로드한 뒤 월드 아웃라이너 에서 선택(1)합니다. 디테일 패널을 사용하여 기존 포인트 클라우드 데이터를 도시를 위해 임포트한 것으로 대체합니다. Mantle 이라는 이름의 섹션에서 Freeway_traffic_data 포인트 클라우드 데이터를 에픽 고속도로 맨틀 포인트 클라우드(Epic Freeway Mantle Point Cloud) 할당 슬롯에 할당(2)합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  11. 월드 아웃라이너 에서 BP_MassTrafficIntersectionSpawner 를 검색하여 선택(1)합니다. 디테일(Details) 패널을 사용하여 신호등 인스턴스 데이터(Traffic Light Instance Data) 할당 슬롯을 매스(Mass) > 스폰 데이터 생성기(Spawn Data Generators) > 인덱스(Index) [0] > 생성기 인스턴스(Generator Instance) > 신호등(Traffic Lights) 에서 찾습니다. 데이터 에셋을 이 가이드 앞부분에서 생성한 CitySampleMyCityTrafficLights 로 대체합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  12. 월드 아웃라이너 에서 BP_MassTrafficParkedVehicleSpawner 를 검색하여 선택(1)합니다. 디테일(Details) 패널을 사용하여 매스(Mass) > 스폰 데이터 생성기(Spawn Data Generators) > 인덱스(Index) [0] > 생성기 인스턴스(Generator Instance) > 엔티티 유형을 주차장 유형으로(Entity Type to Parking Space Type) 에서 주차장(Parking Spaces) 할당 슬롯을 찾습니다. 데이터 에셋을 이 가이드 앞부분에서 생성한 CitySampleMyCityParkingSpaces 로 대체합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

이제 소도시에서 사용된 주차장과 신호등의 복제품인 데이터 에셋 두 개가 있을 것입니다. 해당 에셋에는 다음 섹션의 존 그래프 생성에서 사용하기 위한 도시의 포인트 클라우드 데이터가 할당되어 있습니다.

6단계 - 교통용 존 그래프 생성 실행하기

지금까지 도시 레벨에 있는 여러 블루프린트 스포너와 함께 사용할 데이터 에셋 몇 개를 생성했습니다. 또한 Houdini 엔진에서 생성된 포인트 클라우드 데이터 일부를 데이터 에셋을 통해 이러한 스포너로 할당했습니다.

이 단계에서는 이전 섹션에서 데이터 에셋과 블루프린트 스포너에 할당한 포인트 클라우드 데이터를 사용하여 차선과 교통 생성을 위한 작업을 수행하기 위해 특별히 제작된 에디터 유틸리티 위젯을 사용합니다.

  1. 콘텐츠 브라우저 에서 콘텐츠 > AI > ZoneGraphBuilder 폴더로 이동합니다. WBP_CitySampleZoneGraphBuilder 라는 이름의 에디터 유틸리티 위젯(Editor Utility Widget) 을 우클릭하고 에디터 유틸리티 위젯 실행(Run Editor Utility Widget) 을 실행합니다.

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  2. 에디터 유틸리티 위젯 창에서 도시 교통 빌더(City Traffic Builder) 옆의 존 셰이프 빌드(Build Zone Shapes) 버튼(1)과 고속도로 교통 빌더(Freeway Traffic Builder) 버튼(2)을 클릭한 다음 모두 수행(Do All The Things!) 을 클릭(3)합니다.

    존 그래프 에디터 유틸리티 위젯 인터페이스

  3. 콘텐츠 브라우저 에서 콘텐츠 > AI > Traffic > ParkingSpaces 폴더로 이동합니다. CitySampleMyCityParkingSpaces 데이터 에셋을 엽니다.

    콘텐츠 브라우저 Traffic / Parking Spaces 폴더 데이터 에셋

  4. 주차장 포인트 클라우드(Parking Spaces Point Cloud) 할당 슬롯에서 City_cars_parked 를 작업 중인 도시의 콘텐츠 > City > [본인도시이름] > PBC 폴더에 있는 동일한 이름의 파일로 대체(1)한 다음 포인트 클라우드로부터 주차장 채우기(Populate Parking Spaces from Point Cloud) 버튼을 클릭(2)합니다.

    데이터 에셋 주차장 포인트 클라우드 데이터 할당 슬롯

  5. 콘텐츠 브라우저 에서 콘텐츠 > AI > Traffic > TrafficLights 폴더로 이동합니다. CitySampleMyCityTrafficLights 데이터 에셋을 엽니다.

    콘텐츠 브라우저 Traffic / TrafficLights 폴더 데이터 에셋

  6. 신호등 포인트 클라우드(Traffic Lights Point Cloud) 할당 슬롯에서 City_traffic 을 작업 중인 도시의 콘텐츠 > City > [본인도시이름] > PBC 폴더에 있는 동일한 이름의 파일로 대체(1)한 다음 포인트 클라우드로부터 신호등 채우기(Populate Traffic Lights from Point Cloud) 버튼을 클릭(2)합니다.

    데이터 에셋 신호등 포인트 클라우드 데이터 할당 슬롯

존 그래프 에디터 유틸리티 위젯을 실행하고 주차장과 신호등 데이터 에셋의 데이터를 채웠다면, 이제 레벨 뷰포트 내에서 생성된 내비게이션을 시각화할 수 있습니다. 아래와 같은 내비게이션 데이터가 보이지 않는다면 레벨 뷰포트의 표시(Show) 메뉴를 사용하여 내비게이션(Navigation) 이 활성화되어 있는지 확인하거나 단축키 P 를 눌러 토글합니다.

교통 및 보행자를 위한 내비게이션 경로

7단계 - 도시를 위한 월드 파티션 HLOD 생성하기

규모와 상관 없이 도시를 빌드할 때 중요한 점은 멀리서도 보여야 하는 부분이 있다는 것입니다. 월드 파티션 시스템은 다수의 오브젝트를 다이내믹하게 스트리밍 가능한 단일 대형 액터로 결합할 수 있는 계층형 레벨 오브 디테일(HLOD)을 통해 먼 거리를 처리합니다. 자세한 내용은 월드 파티션 - 계층형 레벨 오브 디테일을 참조하세요.

다음 단계는 월드 파티션을 사용하여 다이내믹하게 스트리밍 가능한 HLOD를 생성하는 것입니다. 도시의 크기에 따라 레벨에 HLOD를 생성하는 데 걸리는 시간이 달라집니다. 빌드 메뉴를 통해 에디터 내 툴을 사용하거나 프로젝트를 닫고 Windows 명령 프롬프트를 사용하여 이 작업을 수행할 수 있으며, 후자가 시간이 덜 걸립니다.

Windows 명령 프롬프트와 명령줄 인수 사용하기

  1. Windows에서 명령 프롬프트(Command Prompt) 창을 엽니다.

  2. 다음 명령에서 프로젝트의 폴더 위치를 알맞게 수정한 다음 창에 입력합니다.

    "D:\Builds\UE_5.0\Engine\Binaries\Win64\UnrealEditor-Win64-DebugGame-Cmd.exe" D:\UE5 Test Projects\CitySample MyCity.umap -run=WorldPartitionBuilderCommandlet -AllowCommandletRendering -Builder=WorldPartitionHLODsBuilder -D3D11
  3. Enter 를 눌러서 프로세스를 시작합니다.

    명령줄 인수는 다음과 같이 구성됩니다.

    "[본인엔진빌드의파일경로]" [본인도시샘플프로젝트의파일경로] [본인맵이름].umap -run=WorldPartitionBuilderCommandlet -AllowCommandletRendering -Builder=WorldPartitionHLODsBuilder -D3D11
  • UnrealEditor-Win64-DebugGame-Cmd.exe 엔진 파일 경로

  • CitySample 프로젝트 파일 경로 프로젝트가 Engine 디렉터리에 위치한 경우 프로젝트 이름을 사용하면 됩니다.

  • 열고자 하는 맵 파일

  • 월드 파티션을 실행하고 HLOD를 빌드하기 위한 나머지 명령줄 인수

에디터 내 툴을 사용하여 HLOD 빌드하기

  1. 메인 메뉴에서 빌드(Build) 를 클릭한 다음 HLOD 빌드(Build HLODs) 를 메뉴에서 선택합니다.

    에디터 메인 메뉴에서 HLOD 빌드

  2. 레벨을 저장 합니다.

레벨 에디터에서 작업할 때는 변경 사항이 눈에 띄지 않을 수도 있습니다. 이는 월드 파티션에서 레벨 편집 작업을 할 때 월드 파티션 에디터에 어떤 셀을 로드할지 선택하기 때문입니다. 그러나 HLOD 빌드 전에 에디터에서 플레이(PIE) 또는 시뮬레이션(Simulate) 하면 특정 거리 내에 있는 오브젝트만 로드될 것입니다. 해당 거리를 벗어난 것들은 비어 있으며 퍼포먼스상의 이유로 로드되지 않습니다.

HLOD가 빌드되면 PIE 및 시뮬레이션 모드 도중 월드 파티션에 의해 다이내믹하게 로드 및 언로드됩니다. 아래 예시에서 HLOD가 빌드되지 않은 경우 카메라 근처의 정해진 범위 내에 있는 도시의 부분만 로드됩니다. 그러나 HLOD가 빌드되면 월드 파티션은 정해진 범위 밖에 있는 것들에 대해 HLOD를 로드합니다.

HLOD 빌드 전

HLOD 빌드 후

HLOD 빌드 전

HLOD 빌드 후

Step 8 - 최종 결과

이 마지막 단계에서는 도시 레벨에서 게임 실행 시 스폰하고자 하는 위치에 플레이어 스타트를 배치할 것입니다.

  1. 에디터에서 플레이(PIE)를 사용하여 프로젝트를 시작할 때 시작 위치로 지정할 위치를 도시에서 찾습니다.

  2. 지면 근처의 레벨 뷰포트(Level Viewport) 를 우클릭하고 컨텍스트 메뉴에서 액터 배치(Place Actor) > 플레이어 스타트(Player Start) 를 선택합니다.

    플레이어 스타트 배치

    씬에서 어디를 클릭했는지에 따라 플레이어 스타트가 다른 오브젝트와 교차되거나 지면 위에 떠 있을 수 있습니다. 플레이어 스타트가 '잘못된 크기' 등의 오류 메시지를 표시하지 않도록 옮깁니다.

    플레이어 스타트의 적절한 배치와 잘못된 배치 예시

    좋은 플레이어 스타트 배치(좌), 잘못된 플레이어 스타트 배치(우).

  3. 레벨 뷰포트 컨트롤을 사용하여 에디터에서 플레이 버튼을 누릅니다.

    레벨 에디터 플레이 옵션을 사용하여 에디터에서 플레이

    처음 에디터에서 플레이하거나 시뮬레이션할 때는 로드하는 데 시간이 걸릴 수 있습니다. 다음부터는 더 빠르게 로드됩니다.

이제 언리얼 엔진 5에서 임포트하여 구성하고 프로시저럴 도시를 빌드하도록 Houdini 엔진에서 제공된 소스 파일을 사용하여 도시를 성공적으로 빌드했을 것입니다. 소도시와 대도시의 구성 방식과 유사하게 여러분의 도시를 탐색하고 플레이할 수도 있을 것입니다.