도시 샘플 퀵스타트 - Houdini를 사용해 도시와 고속도로 만들기

도시 샘플 소스 파일과 Houdini를 사용해 언리얼 엔진에서 고유한 프로시저럴 도시를 만들기 위한 가이드입니다.

Choose your operating system:

Windows

macOS

Linux

도시 샘플(City Sample)은 사이드FX(SideFX)의 Houdini Engine으로 생성한 프로시저럴 데이터를 사용해 언리얼 엔진에서 효과적인 시뮬레이션 월드를 만들어내는 방법을 기술적으로 설명한 데모 프로젝트입니다. 도시 샘플은 Houdini에서 생성한 데이터를 사용해 에셋을 채우고 인공 지능, 교통, 오디오 등의 시뮬레이션을 구현합니다.

이 가이드는 에픽에서 개발한 툴을 사용해 Houdini 엔진의 도로망 및 고속도로망으로 고유한 도시를 만드는 과정을 안내하는 2부 시리즈 중 1부입니다.

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

  • Houdini 소스 파일에 액세스하고 고유한 도시 만들기

  • 제공된 소스 파일로 Houdini를 구성 및 환경설정하기

  • 도시 형태, 크기, 레이아웃의 기초 구성하기

  • 도시의 구역을 지정하고 실루엣 정의하기

  • 고속도로망을 뒷받침하는 도로망 만들기

  • 익스포트하여 언리얼 엔진 5로 임포트할 수 있는 모든 필수 데이터 생성하기

이 가이드의 전제조건

  • 사이드FX Houdini

    • 도시 샘플 프로젝트 개발에 사용된 18.5.532 버전 사용을 권장합니다.

    • 필수 Houdini 프로젝트 구성에 필요한 시작 파일을 생성하려면 Houdini를 한 번 실행해야 합니다.

  • 데이터를 추출하고 소도시를 생성하려면 최소 2GB의 하드디스크 여유 공간이 필요합니다. 대도시의 경우 5~10GB의 공간이 필요할 것으로 예상됩니다.

  • 도시 샘플 권장 시스템 사양을 참조하세요.

  • 에픽게임즈 런처에서 City Sample 언리얼 엔진 5 프로젝트를 다운로드합니다.

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

  • 이 가이드는 Houdini와 Houdini 툴 사용법에 대해 실무적인 지식을 갖춘 사용자를 대상으로 작성되었습니다.

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

1단계 - 필수 Houdini 프로젝트 구성

Houdini를 효과적으로 활용해 도시를 만들기에 앞서, 이 가이드를 끝까지 완료하는 데 필요한 소스 파일을 추출하는 등 컴퓨터에서 몇 가지 사항을 구성해야 합니다. 또한, 도시 데이터를 저장할 수 있도록 이 가이드 후반부에서 사용할 일부 디렉터리를 지정하고 생성해야 합니다.

  1. 도시 샘플 프로젝트가 저장된 루트 디렉터리에서 CitySample_HoudiniFiles.zip 파일을 찾습니다. 이 파일에 이 가이드를 끝까지 따라가는 데 필요한 Houdini 소스 파일이 들어 있습니다.

    Windows 폴더 Houdini 소스 파일

  2. 소스 파일을 저장할 새 폴더를 생성합니다. 이 가이드의 목적에 맞게 D:\CitySampleSource 라는 저장 위치를 사용합니다. 지금부터 여러분도 이름과 위치가 유사한 폴더 경로를 사용하고 있다고 가정하겠습니다.

  3. CitySample_HoudiniFiles.zip 파일의 콘텐츠를 새 폴더로 추출합니다. 추출이 끝나면 Small_City 라는 폴더가 추가됩니다. 파일 경로는 D:\CitySampleSource\Small_City 같은 형식이어야 합니다.

    Windows 폴더에서 Small_City 폴더가 포함된 소스 파일 압축 해제

  4. Windows 운영체제 내 문서(Documents) 폴더의 C:\Users{컴퓨터_사용자_이름}\Documents\houdini18.5 경로에서 houdini.env 라는 파일을 찾아 텍스트 편집기로 엽니다.

    Windows 폴더에서 Houdini 환경 파일 열기

  5. houdini.env 파일 하단에 다음과 같은 새 줄을 추가합니다.

    HOUDINI_PATH = D:/CitySampleSource/Small_City/houdini;&

    편집 결과는 다음과 같습니다.

    Houdini 환경 파일 편집

    Houdini 소스 파일을 추출하는 동안에는 파일 경로를 사용한 경로로 대체해야 합니다. 또한, 위 예시처럼 폴더 경로에 포워드 슬래시(/)를 사용하는 것이 중요합니다. Windows에서는 디폴트로 백슬래시()를 사용합니다.

  6. houdini.env 파일을 저장 합니다.

  7. Houdini 를 시작합니다.

Houdini가 시작되고 Asset Manager 를 열면 샘플 Houdini 연산자 목록이 표시됩니다. 연산자는 메인 메뉴의 Asset > Asset Manager 에서 확인할 수 있습니다. Operator Type Libraries > Scanned Asset Library Directories 를 펼치면, 이 섹션에서 지정한 폴더 경로의 .hda (Houdini 디지털 에셋) 파일 목록 하단에 연산자가 위치해 있습니다.

Houdini 에셋 매니저에서 Houdini 환경 파일 편집 확인

2단계 - 도시 디렉터리 만들기

2단계에서는 새 폴더를 만들어 이 가이드에 따라 생성된 Houdini의 도시 데이터를 저장합니다. 이 폴더에는 ‘CitySample_HoudiniSource.zip'에 포함된 파일의 복제본이 일부 포함되어 있으므로 Houdini를 사용해 추가 도시를 만드는 경우 실수로 파일을 덮어쓰지 않을 수 있습니다.

  1. CitySampleSource 폴더에 도시 데이터를 저장할 새 폴더를 생성합니다. 이 가이드의 목적에 맞게 폴더 이름을 MyCity 로 지정합니다. 위치는 D:\CitySampleSource\MyCity 가 됩니다.

    Windows 폴더에서 이름을 지정한 도시 폴더 생성

  2. D:\CitySampleSource\Small_City\houdini 에 위치한 콘텐츠를 MyCity 폴더로 복사 합니다. 예를 들면, D:\CitySampleSource\MyCity 와 같습니다.

이제 이름을 지정한 도시 폴더로 Houdini 소스 파일을 복사했습니다. 앞으로 이 가이드에서는 도시를 만들어 이 위치에 저장하게 됩니다.

3단계 - 도시 형태를 정의하여 도시 생성 프로세스 시작하기

Houdini에서는 도시 샘플 프로젝트용으로 특별히 만든 City Layout 연산자를 사용해 도시 형태를 만들고 정의하게 됩니다. City Layout 연산자는 도시의 형태, 도시의 주요 도로를 정의하는 데 사용되는 간선도로 스플라인, 도시의 섹션 내 건물 유형과 높이에 따른 지정 구역에 대한 입력을 수신합니다.

이 단계에서는 Houdini Geometry 오브젝트와 Curve를 사용해 도시 형태를 정의합니다.

  1. 네트워크Network 패널에서 우클릭 컨텍스트 메뉴를 사용하여 Geometry 오브젝트를 만듭니다.

    지오메트리 오브젝트 생성

  2. Geometry 오브젝트를 더블클릭하여 그래프를 열고, 우클릭 컨텍스트 메뉴를 사용하여 Curve 노드를 추가합니다.

    커브 오브젝트 생성

    Curve 노드를 선택한 상태로 뷰포트를 클릭 하여 도시 형태를 구성할 포인트를 배치합니다. 크기에 대한 팁을 드리자면 도시 샘플 프로젝트의 소도시 너비는 약 1km, 대도시 너비는 약 5km입니다.

    커브 포인트로 도시 형태 그리기

    도시 형태를 그릴 때에는 Top 뷰와 충분히 큰 영역을 사용하는 것을 권장합니다.

  3. Network 패널에서 우클릭 컨텍스트 메뉴를 사용하여 그래프에 City Layout 노드를 추가합니다. 그래프에서 Curve 노드의 출력을 City Layout 노드의 첫 번째 입력에 연결합니다. 이렇게 하면 그려진 커브 포인트를 바탕으로 도로 레이아웃이 생성됩니다.

    커브와 도시 레이아웃 연결

    컨텍스트 메뉴에 City_Layout 연산자가 없다면 1단계: 필수 Houdini 프로젝트 구성을 참조하여 프로젝트의 파일과 경로를 올바르게 구성해야 합니다.

    입력이 연결되면 그려진 커브 셰이프 내부에 도시 레이아웃이 포함됩니다. 언제든 Curve 노드를 다시 선택하여 원하는 형태의 도시 레이아웃이 만들어질 때까지 포인트를 드래그할 수 있습니다. 출력은 뷰포트에 자동으로 업데이트됩니다.

    커브 포인트로 도시 형태 조정

  4. Network 패널에서 그래프의 City Layout (1) 노드를 선택합니다. City Name (2) 텍스트 필드에 도시 이름을 입력합니다. 이 가이드의 목적에 맞게 이름을 ‘MyCity'로 합니다.

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

  5. 이 가이드 초반에 만든 소스 폴더에 씬을 저장 하고 이름을 지정합니다. 예를 들면, D:/CitySampleSource/MyCity/MyCity.hip 경로에 저장합니다.

City Layout 연산자로 도시 형태를 만드는 첫 단계를 마쳤습니다. Curve 노드를 연결했으니 이제 도시 블록 크기의 오버레이로 도시 속 도로의 흐름을 파악할 수 있습니다.

4단계 - 도시 간선도로 만들기

도시의 형태를 정의했으니 이제 도시를 통과하는 주요 도로를 살펴볼 차례입니다. 이러한 도로를 간선도로라 하며, 간선 로를 여러 개 만들면 도시 구획을 나눌 수 있습니다.

이 단계에서는 도시를 통과하는 주요 도로를 정의할 하나 이상의 스플라인을 만들고, 깔끔한 결과물을 위해 City Layout 연산자의 Road Network Options을 살펴보겠습니다.

  1. Network 패널에서 우클릭 컨텍스트 메뉴를 사용해 Curve 를 그래프에 추가합니다. Curve 를 선택한 상태로 뷰포트 내부를 클릭해 포인트 두 개를 찍습니다.

    도시 간선도로용 커브 추가

  2. Curve (1)를 City Layout (2) 노드의 두 번째 입력 Arterial Splines 에 연결합니다.

    간선도로 커브를 도시 레이아웃에 연결

    두 번째 Curve 노드를 다시 선택하고 두 개의 포인트 중 하나를 이동시키면 자동으로 도시 레이아웃이 조정됩니다.

  3. [선택사항] 커브를 추가하여 간선도로를 더 만들 수 있습니다. 두 개의 Curve 노드를 Merge 노드에 연결하고, Merge 노드를 City Layout 노드의 두 번째 입력 에 연결합니다. 아래 예시에는 두 개의 커브가 사용되었으며 앞으로 이 가이드에서 사용할 노드가 나와 있습니다.

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

  4. [선택사항] 도시 형태를 정의하는 데 사용한 Curve 노드를 선택하여 도시 형태를 수정할 수 있습니다. 포인트를 선택하고 원하는 대로 옮기면 됩니다.

스플라인으로 주요 도로를 정의하고 도시를 보다 자연스러운 모습과 흐름으로 만들 수 있습니다. 스플라인을 추가하거나 배치를 바꿔 도시를 통과하는 도로의 배열을 변경해 보세요. City Layout 프로퍼티를 사용해 정의한 도시 형태 내에서 도로 레이아웃을 탐구해 보세요.

도시 레이아웃 프로퍼티

density 를 조정하면 도로 라인을 만드는 기준이 되는 서브디비전 그리드를 변경할 수 있습니다. angle 프로퍼티를 조정하면 보다 자연스럽고 일관적인 흐름의 도시 도로를 만들 수 있습니다.

다음 단계로 넘어가기 전에 레이아웃과 도로망이 오류 없이 표시되어야 합니다. 여러 개의 간선도로를 추가하거나 독특한 도시 형태를 만들면 문제가 발생할 수 있습니다. 문제가 있는지 살펴보고 그에 따라 수정하세요.

5단계 - Road Network Options 조정하기

이 단계에서는 City Layout 프로퍼티에 있는 Road Network Options 으로 도로를 수정하여 도시를 계속 가다듬어 보겠습니다. 전체 프리뷰 모드 사용법을 알아보고, 사소한 변경을 통해 도시 블록을 병합하거나 교차로 근처의 도로를 합쳐 원활한 교통 흐름을 만드는 법을 살펴봅니다.

  1. Network 패널에서 City Layout (1) 노드를 선택합니다. Network 패널 위의 패널 (2)에서 노드의 상세 정보와 프로퍼티를 수정할 수 있습니다.

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

  2. City Layout 프로퍼티 패널의 preview_options 섹션에서 full preview 체크 박스를 활성화합니다. 이 프로퍼티를 체크하면 그래프를 따라 발생하는 모든 정리 과정과 함께 보다 정확한 도로망 프리뷰가 가능하지만, 더 많은 연산 능력이 필요해지므로 상호작용성이 감소합니다.

    도시 레이아웃의 전체 프리뷰 옵션 활성화

    전체 프리뷰 비활성화

    전체 프리뷰 활성화

  3. Road Network Options 탭을 클릭해 생성한 도로망의 프로퍼티를 조정합니다. 프로퍼티를 조정할 때는 가려진 교차로나 너무 짧은 도로, 서로 지나치게 가까운 도로를 수정하여 도시 내 교통 흐름이 원활한 도로망을 만들어야 합니다.

    도시 레이아웃 도로망 옵션

    일방통행로를 만들지 않도록 주의하세요. 우선 도로가 있어서는 안 되며, 원활한 교통 흐름을 위해 최저 도로 길이를 설정해야 합니다.

아래 예시에서는 여러 개의 간선도로를 사용해 주요 도로를 정의했으며, 도시를 효과적인 네 구획으로 나누었습니다. 각 사분면마다 다른 방향으로 향하는 도로가 있으며, 교차로에서 여러 도로가 만나는 영역도 형성되어 있습니다. Road Network Properties를 사용해 주요 도로를 따라 도시 블록과 도로를 병합하세요.

도로망: 디폴트 세팅

도로망: 조정된 블록 퍼센트 및 병합 인수

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

6단계 - 도시 구역 그리기 및 경관 수정하기

이제 도시가 여러 간선도로들로 형태를 갖추어 가고 있습니다. 이때 구역을 정하면 더 나은 도시 경관을 만들 수 있습니다. 이 단계에서는 City Zone 연산자를 City Layout 노드에 연결해 커브로 단일 구역을 정의하는 방법을 알아봅니다. City Zone 연산자 프로퍼티를 사용하면 그래프에 여러 포인트를 찍어 높이를 정의하고 커브 형태를 설정할 수 있습니다.

  1. Network 패널에서 우클릭 컨텍스트 메뉴로 Curve 를 그래프에 추가해 도시의 특정 영역에 있는 건물과 구조물의 종류를 정의할 구역을 만듭니다. Viewport 에서 구역으로 정의하고 싶은 도시 형태 주변을 따라 영역을 그립니다.

    도시 구역 형태 그리기

  2. Network 패널의 우클릭 컨텍스트 메뉴에서 City_Zone 연산자를 추가합니다. Curve (1)을 Zone (2) 노드에 연결합니다. Zone (2) 노드를 City Layout 노드의 세 번째 City Zones (3) 입력에 연결합니다.

    도시 구역을 도시 레이아웃에 연결

  3. Network 패널에서 City Zone 노드를 선택합니다. 노드의 프로퍼티가 그래프 위 패널에 표시됩니다.

    도시 구역 프로퍼티

    1. Height 는 정의된 구역의 최대 높이를 정의합니다.

    2. Point No. 는 그래프에 있는 사용 가능한 포인트를 선택합니다. 기본적으로 0과 1에 하나씩 총 두 개의 포인트만 존재합니다. 그래프를 클릭하면 자동으로 포인트가 추가됩니다.

    3. PositionValue 는 선택한 포인트를 그래프의 X축 및 Y축을 따라 움직여 구역 형태의 최대 높이와 감쇠를 정의합니다.

    4. **Interpolation**은 Position과 Value를 기준으로 형태에 적용되는 커브 유형을 정의합니다.

  4. City Zone 프로퍼티 를 사용해 구역의 어트리뷰트를 조정합니다.

    도시 구역 높이 조정

  5. [선택사항] 이전 단계를 반복해 구역을 추가하고 Merge 노드로 구역을 City Layout 노드에 연결합니다.

    다수의 도시 구역 정의

    City Layout 노드를 선택한 상태로 preview_options 섹션에 있는 preview_zones 을 활성화해 정의된 도시 구역을 표시합니다.

이 가이드의 목적에 맞게 도시에 두 개의 구역을 정의했습니다. 하나는 고층 빌딩이 많고 주로 도시의 한 사분면을 차지하는 구역이고, 다른 하나는 높이가 비교적 낮으며 두 개의 사분면에 걸쳐 있는 구역입니다. 이 가이드 후반부에서는 건물 볼륨을 만들어 도시를 채워 보겠습니다. 구역은 도시의 외관을 결정하는 데 도움이 됩니다.

7단계 - 도시를 통과하는 고속도로 경로 그리기

대부분의 도시에서는 보행자, 횡단보도, 신호등이 있는 교차로를 거치지 않고 다차선의 고속도로로 다닐 수 있는 길이 있습니다. 도시 샘플 프로젝트는 출입 지점이 포함된 고속도로 경로나 루프를 직접 설정할 수 있는 툴과 연산자를 제공합니다.

이 단계에서는 Curve 및 Freeway Util Curve Attribute 연산자를 사용해 여러분의 도시에 간선도로(빨간색)로 연결되는 출입 지점이 있는 고속도로 경로를 추가하는 방법을 알아봅니다.

  1. Network 패널에서 우클릭 컨텍스트 메뉴를 사용해 Curve 노드를 추가합니다. Viewport 에서 고속도로 경로를 만들려는 포인트를 클릭합니다.

    고속도로 경로 커브

    원하는 경우 PolywireMerge 노드를 사용해 도시 레이아웃 위에 고속도로 경로를 더 효과적으로 시각화할 수 있습니다. Polywire 노드를 선택한 상태에서 프로퍼티를 사용해 Wire Radius 을 경로가 쉽게 보이도록 충분히 높은 값으로 설정합니다.

    고속도로 경로에 폴리와이어 결합

  2. 우클릭 컨텍스트 메뉴로 Freeway Util Curve Attribute 연산자를 그래프에 추가합니다.

    고속도로 경로 어트리뷰트 노드 선택

    Freeway Util Curve Attribute 노드를 선택하면 두 가지 프로퍼티를 수정할 수 있습니다.

    고속도로 경로 노드 어트리뷰트

    1. Number of Lanes: 4차선 또는 6차선으로 설정할 수 있습니다.

    2. Closed: 닫힌 루프로 설정하려는 고속도로 경로에 이 체크 박스를 활성화합니다.

    자체 순환하지 않는 고속도로 경로를 선택할 때에는 고속도로가 간선도로(빨간색)와 연결되어야 하며 도로의 연속성 내에서 이어져야 합니다.

고속도로 경로나 루프 설정을 마쳤다면 시각화를 위해 추가했던 MergePolywire 노드가 더 이상 필요하지 않으므로 그래프에서 둘을 삭제해도 됩니다. Curve 노드를 Freeway Util Curve Attributes 노드에 연결하면 구성이 완료됩니다.

고속도로 커브를 고속도로 유틸리티 커브 어트리뷰트에 연결

Freeway Util Curve Attributes 연산자로 여러 고속도로 경로를 만들 수 있으며, 닫힌 루프를 사용할 것인지 아니면 아래의 시내 도로로 연결되는 자체 출입구가 있는 경로를 만들 것인지를 결정할 수 있습니다. 고유한 도시를 만들 때에는 도시의 여러 부분으로 이어지는 고속도로 연결 포인트와 다양한 수의 차선을 사용해 보는 것이 좋습니다.

8단계 - 도시 프로세서에서 입력 조합하기

지금까지 도시 기초 작업을 충분히 진행하고, 형태를 정의하고, 도로망과 고속도로망을 구성했습니다. 이제 City Processor 연산자를 사용해 작업물을 조합할 시간입니다. 8단계는 이 가이드의 이전 단계에서 컴파일하고 구성한 모든 데이터를 다양한 구역, 고속도로, 간선도로 등과 조합하는 단계입니다.

구역, 간선도로, 고속도로가 갖춰진 도시

  1. 에디터 창 우측 하단의 선택 박스를 사용해 Houdini를 Manual 모드로 변경합니다. Houdini는 기본적으로 콘텐츠를 자동 쿠킹하도록 설정되어 있습니다. 이 경우에는 모든 입력을 연결할 때까지 콘텐츠 쿠킹을 지연시키는 것이 좋습니다.

    수동 업데이트 모드 활성화

  2. Network 패널의 우클릭 컨텍스트 메뉴를 사용해 City Processor 연산자를 추가합니다.

  3. City Layout 노드 (1)의 두 번째 출력을 City Processor 노드 (2)의 첫 번째 입력에 연결합니다.

    그래프의 도시 레이아웃을 도시 프로세서에 연결

    City Processor 노드의 경고는 다음 단계에서 해결될 것이므로 무시해도 좋습니다.

  4. Freeway Util Curve Attributes* 노드 (1)를 City Processor** 노드 (2)의 두 번째 입력과 연결합니다.

    그래프의 고속도로 경로를 도시 프로세서에 연결

  5. Houdini를 다시 Auto Update 모드로 설정하면 City Processor 노드가 입력 데이터를 쿠킹하기 시작합니다.

    자동 업데이트 모드 활성화

    Auto Update 모드를 재활성화하면 도시 프로세서 처리가 시작되며, 완료하기까지 몇 분이 걸릴 수 있습니다.

처리가 종료되면 이전 단계의 입력 데이터를 바탕으로 생성된 도시를 미리 볼 수 있습니다.

아래 예시에서는 도시 일부를 통과하도록 배치된 고속도로, 도시를 가로질러 뻗어나가는 두 개의 간선도로, 서로 다른 방향으로 흐르는 시내 도로가 있는 여러 사분면, 고층 건물이 많은 구역과 크기가 점차 늘어나지만 비교적 높이가 낮은 구역으로 이루어진 두 곳의 정의된 구역을 확인할 수 있습니다.

처리된 도시

9단계 - 고속도로를 도시와 연결하기

지금까지 도시의 데이터 처리를 완료하고 도시 연산자의 다양한 데이터를 적용했습니다. 이제 고속도로 경로를 아래에 있는 시내 도로와 연결할 차례입니다.

  1. Network 패널에서 City Processor 노드를 더블클릭하여 네트워크 그래프를 연 다음, 그래프의 Freeway 부분에 액세스합니다.

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

  2. 그래프의 파란색 FREEWAY OUTPUT 섹션에서 FREEWAY 노드를 찾습니다. 노드를 우클릭하고 컨텍스트 메뉴에서 Allow Editing of Contents 를 선택합니다.

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

  3. FREEWAY 노드를 더블클릭으로 열면 노드 네트워크가 표시됩니다. 왼쪽의 파란색 Process Freeway, Connections and Ramp 메모 아래에 있는 connections_blank 노드를 찾습니다.

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

  4. connections_blank 노드를 더블클릭하여 노드 네트워크에 액세스합니다. all_connections 노드를 찾아 더블클릭하여 그래프를 엽니다.

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

  5. ROAD_REFERENCE 노드에서 Display 를 클릭합니다.

    도로 레퍼런스 템플릿 표시

  6. Ctrl 을 누른 채로 ROAD_REFERENCEmerge_freeway 노드를 선택합니다. 노드의 분홍색 Display Template 을 클릭합니다.

    고속도로 경로의 템플릿 표시 활성화

  7. 편집 시 빠른 피드백을 위해 그래프에서 connection_set_1 노드를 선택하고 프로퍼티 창에서 Preview Mode 를 활성화합니다.

    프리뷰 모드 연결 설정 1

  8. 프로퍼티 창에서 Connections 프로퍼티 옆의 더하기(+) 버튼을 클릭합니다. 그러면 고속도로 경로를 시내 도로와 연결하는 커브가 추가됩니다.

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

  9. Edit Curve 0 을 클릭합니다.

    고속도로 빌드 연결에서 커브 편집

  10. Handle 툴을 활성화한 상태로 고속도로 경로와 가까운 포인트, 연결하고 싶은 도로의 포인트, 이렇게 두 포인트를 클릭합니다. 두 포인트를 수정하려면 시내 도로의 경우 Ctrl + 클릭 을, 고속도로의 경우 Shift + 클릭 을 사용합니다.

    고속도로 경로와 시내 도로 연결

    시내 도로와 연결 지점은 차선 수가 같아야 합니다. 차선은 추가한 연결 커브의 Number of Lanes 슬라이더를 사용해 변경할 수 있습니다.

    마지막 포인트를 클릭해 배치하면 아래 이미지와 비슷한 결과를 확인할 수 있습니다.

    고속도로를 시내 도로와 연결

  11. 필요에 따라 위 단계를 반복 하여 고속도로 입구와 출구를 추가합니다.

  12. 고속도로 연결을 완료했다면 그래프에서 connection_set_1 노드를 선택하고 프로퍼티 창의 Preview Mode 를 비활성화합니다.

아래의 connection_set_1 프로퍼티에는 고속도로와 시내 도로의 연결 방식을 조정할 수 있는 다양한 세팅이 있습니다. 배열에 새로운 연결 요소를 추가할 때 사용할 수 있는 프로퍼티를 살펴볼 수 있습니다. Interpolation, Elevation, Banking 프로퍼티로 시내 도로와의 연결 방식을 조정할 수 있습니다.

도시 프로세서 연결 설정 1 프로퍼티

10단계 - 도시 경관 및 건물 볼륨 조정하기

City Processor를 사용하면 도시 생성 방식을 다양한 측면에서 제어하여 이 가이드 후반부에 제시된 방법에 따라 익스포트할 수 있습니다. City_Lot_Processor 연산자는 부지 및 부지 내 건물의 프로퍼티를 제공합니다. 각 프로퍼티를 사용하면 건물의 크기, 인도와의 단차, 스타일, 디폴트 세팅 외의 베리에이션 등과 관련된 다양한 어트리뷰트를 정의할 수 있습니다.

이 단계에서는 세팅이 적용되는 위치를 알아보고 세팅을 적절히 조정해 보겠습니다. 이 프로퍼티에서 다른 세팅을 사용해 다양한 스타일과 베리에이션을 시도해 보아도 좋습니다.

  1. Network 패널에서 City Processor 노드를 엽니다. 네트워크 그래프에서 주황색 3. LOTS 를 찾아 노란색 동그라미로 표시된 City_Lot_Processor 노드를 선택합니다.

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

  2. City_Lot_Processor 노드를 선택하면 프로퍼티 패널에서 LOTSBUILDINGS 탭을 선택할 수 있습니다.

    도시 부지 프로퍼티 탭

City Lot Processor 프로퍼티를 사용하여 생성된 부지와 건물을 수정할 수 있습니다. 부지의 경우 부지 면적, 고속도로를 기준으로 한 제거 거리, 인도와 관련된 고려사항이 포함되어 있습니다. 건물의 경우 건물 스타일, 높이, 크기를 정의할 수 있습니다.

각 패널의 세팅을 살펴보고 여러분의 도시에 다양한 베리에이션을 시도해 보세요.

프로퍼티를 변경하면 도시의 건물 볼륨과 부지가 재생성됩니다. 한 변경사항의 재생성이 완료되어야 다른 변경사항의 재생성이 가능합니다. 대도시의 경우 재생성 프로세스를 완료하는 데 몇 분 이상이 걸릴 수 있습니다.

도시 프로세서 부지 프로퍼티

도시 프로세서 건물 프로퍼티

도시 부지 프로세서 프로퍼티: 부지

도시 부지 프로세서 프로퍼티: 건물

11단계 - 도시 캐시 생성 및 데이터 익스포트

마지막 단계에서는 City Processor 프로퍼티 패널을 사용해 일부 부분에 선택한 처리 옵션으로 프로시저럴 종속성 그래프(Procedural Dependency Graph, PDG)를 사용할 지 여부를 설정합니다. 이렇게 하면 필요한 데이터를 생성하고 익스포트한 뒤 나중에 언리얼 엔진 5로 임포트해 도시를 만들 수 있습니다.

  1. City Processor 노드를 변경할 때 재생성 프로세스를 늦출 수 있도록 Houdini를 Manual 모드로 설정합니다.

    Houdini를 수동 업데이트 모드로 설정

  2. Network 패널에서 City Processor 노드를 선택합니다.

  3. City Processor 프로퍼티 패널에서 use PDG 옆의 체크 박스를 선택하거나 선택 해제하여 도시 캐시를 생성하고 데이터를 익스포트할 때의 PDG 사용 여부를 결정합니다.

    도시 프로세서 PDG 사용 활성화

PDG는 디바이스와 프로세스 수에 따라 처리 속도를 개선하는 데 사용됩니다. 고려해야 할 사항은 다음과 같습니다.

  1. PDG를 사용 하면 세 하위 단계를 처리해야 합니다. process city base, PDG process, process city furniture 프로세스를 클릭합니다. PDG 처리는 건물 생성 단계에서 이루어지며, 연산 능력을 가장 많이 필요로 하는 도시 생성을 병렬화하므로 대도시를 만들 때 특히 유용합니다.

    PDG 사용을 활성화한 도시 프로세서

  2. PDG를 사용하지 않으면 process city without PDG 를 클릭해 다른 캐시를 생성합니다.

    PDG를 사용하지 않는 도시 프로세서

    1. 처리가 완료되면 use PDG 의 상태에 따라 다음 단계를 따릅니다.

  3. 활성화한 경우 EXPORT ALL PBC 를 클릭해 지오메트리와 포인트 클라우드 Alembic(PBC)을 익스포트합니다.

    PBC 익스포트를 사용한 도시 프로세서

  4. 비활성화한 경우 먼저 Caches and Exports 탭을 사용해 표시된 결과를 디스크에서 읽어오도록 설정합니다. 하단의 geometry and pbc export 섹션에서 EXPORT ALL PBC 를 클릭합니다.

    PBC 익스포트를 사용하지 않은 도시 프로세서

마지막 단계에서는 이 가이드 시리즈의 2부를 진행하는 데 필요한 모든 데이터를 처리하고 익스포트했습니다. 2부에서는 도시 샘플 프로젝트를 사용해 도시의 Houdini 데이터를 언리얼 엔진으로 임포트할 수 있습니다.

도시 샘플: 언리얼 엔진 5에서 도시와 고속도로 생성하기를 따라 도시 개발을 완료하고 언리얼 엔진으로 제작을 마무리해 보세요.

UE5로 생성한 도시

12단계 - 직접 해보기

지금까지 언리얼 엔진의 도시 샘플 프로젝트로 자신만의 도시를 완벽하게 구현하는 데 필요한 모든 데이터와 파일을 생성했습니다. 이제 도시 생성을 위해 에픽게임즈에서 Houdini Engine용으로 개발한 프로시저럴 도구를 사용해 계속해서 더 많은 내용을 탐구해 볼 수 있습니다.

다음 추천 작업을 통해 스스로 탐구할 수 있습니다.

  • 3단계를 다시 살펴보고 여러 스플라인 형태를 사용해 다양한 도시 형태와 크기를 만들어 보세요.

  • 4단계를 다시 살펴보고 도시에 여러 간선도로를 추가해 보세요. 간선도로를 활용해 흥미로운 도시 형태와 구역을 만들어 보세요.

  • 5단계를 다시 살펴보고 City Layout 노드에 있는 세팅을 탐구해 보세요. 여러분의 도시에 맞게 도시 레이아웃 옵션(City Layout Options), 도로망 옵션(Road Network Options), 도로망 크기(Road Network Sizes)의 세팅을 변경하여 다양한 실험을 해볼 수 있습니다.

  • 6단계를 다시 살펴보고 도시 곳곳에 다양한 유형의 구역을 구성하고 그려 보세요. 이 기능은 고층 건물이 많은 영역, 중간 크기의 건물이 많은 영역 등을 만들 때 유용합니다. Zone Shape 그래프로 각 구역의 커브 형태를 정의해 보세요.

  • 7단계를 다시 살펴보고 여러 고속도로를 그리거나 닫힌 루프 형태의 고속도로를 만드는 등 여러 유형의 고속도로 레이아웃으로 다양한 시도를 해보세요. 이 가이드에서는 1차선 고속도로만 보여드렸습니다. Freeway Util Curve Attribute 노드로 고속도로의 닫힌 루프 설정 여부를 결정하고, 여러 도로로 연결되는 4차선 또는 6차선 고속도로를 만들어 보세요.

  • 10단계를 다시 살펴보고 City Lot Processor로 다양한 부지와 건물 세팅을 실험해 보세요. 부지의 경우 고속도로와의 거리, 최소 크기를 설정하고 인도에 미치는 영향 등을 제어할 수 있습니다. 건물의 경우 건물 높이, 도로 사이의 부지 크기를 정밀하게 제어할 수 있으며, 노이즈 양을 적용해 6단계에서 지정한 구역을 벗어나는 건물의 크기를 다양하게 설정할 수 있습니다. 다양한 세팅으로 실험해 볼 수 있지만 세팅을 변경하면 Houdini 뷰포트에서 각 변경사항이 자동으로 프로세스되고 업데이트되는 데 몇 분이 걸릴 수 있다는 점에 유의하세요.