# 절차적 메시 도구

Dash에는 지오메트리를 생성하는 다양한 도구가 포함되어 있습니다: Road Tool, Terrain Tool, Cable Tool 등...

## 베이킹

이 도구들은 모두 다음 유형의 액터를 생성합니다 `DashPreviewMeshComponent`. 이 커스텀 타입을 통해 메시 생성 성능과 알고리즘을 완전히 제어할 수 있습니다.

메시 기반 도구에 대해 가장 먼저 알아둘 점은 베이킹 아이콘이 <img src="https://3738228828-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYp9tAkqjcwFDufAaviIa%2Fuploads%2F9ANCQGpYmXbpLX6dXgVz%2Fbake_color.png?alt=media&#x26;token=1339c809-31ab-46e8-9bb8-2f1c20b64b6c" alt="" data-size="line"> Tools Panel에서 언제든지 한 번의 클릭으로 사용할 수 있으며, 메시에 연결된 도구를 삭제한 다음 Dash 메시를 일반 UE5 스태틱 메시로 변환한다는 것입니다.

Dash로 생성한 메시를 베이크하려는 이유는 여러 가지가 있습니다:

* Dash가 설치되지 않은 다른 컴퓨터에서도 사용할 수 있고/보이게 만들기 위해서입니다.
* Nanite, 버텍스 페인팅 및 기타 UE 기능을 사용하기 위해서입니다.
* 편집이 끝난 후 더 이상 필요하지 않을 수 있는 도구들을 정리해서 씬을 깔끔하게 만들기 위해서입니다.

<figure><img src="https://3738228828-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYp9tAkqjcwFDufAaviIa%2Fuploads%2FflmoSeFJ5NWWbAtxNh6D%2Fimage.png?alt=media&#x26;token=7f121558-6311-4645-8cc8-e615944fae62" alt=""><figcaption></figcaption></figure>

Tools 패널의 베이킹 기능 외에도, 이 메시의 컴포넌트를 선택하면 다음 버튼이 표시됩니다 **정적 메시 생성** 이를 정적 메시로 변환합니다.

<figure><img src="https://3738228828-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYp9tAkqjcwFDufAaviIa%2Fuploads%2FhO18k76eIgchjbFsdewi%2Fimage.png?alt=media&#x26;token=baeafbbd-db1c-4dae-bc97-b5571bf3da06" alt=""><figcaption></figcaption></figure>

## Terrain Tool

지면으로 사용할 절차적 메시를 생성합니다 - 이 지형은 Terrain Tool 내의 사용하기 쉬운 컨트롤로 원하는 대로 조정할 수 있습니다. 예를 들어 높이, 난류, UV 스케일을 조절할 수 있고, 높이 맵이나 스플라인으로 변형할 수도 있습니다. 지형 도구는 Dash에서 검색하거나 Create 메뉴에서 찾아서 사용할 수 있습니다.&#x20;

{% embed url="<https://streamable.com/0nb3xh>" %}

## Cable Tool

스플라인, 오브젝트 사이 또는 메시 위에 흩뿌려 절차적 케이블을 생성합니다 - 다양한 설정이 함께 제공되어, 그 어느 때보다 쉽게 케이블을 완전히 절차적으로 만들 수 있습니다. Unreal Engine 5의 도시 환경이나 정글 환경에 완벽합니다. 물론 케이블의 개수, 크기, 중력 등을 완전히 제어할 수 있습니다! 케이블 도구는 Dash에서 검색하거나 Create 메뉴에서 찾을 수 있습니다.

{% embed url="<https://streamable.com/e6dnv0>" %}

## Vine Tool

지정한 표면에 덩굴을 생성합니다 - 어떤 숲이나 무성하게 자란 환경에도 완벽합니다. 어떤 표면이나 에셋 위에도 2초 만에 절차적 덩굴을 만들 수 있기 때문입니다. 덩굴에는 잎이 달리는 경우가 많으므로, Dash의 Content Library에서 잎 아틀라스를 CTRL 드래그 앤 드롭으로 표면에 놓기만 하면 1초 만에 잎이 붙은 덩굴이 에셋/표면 전체에 퍼지도록 매우 쉽게 만들 수 있게 했습니다. 그런 다음 성장량, 가지와 잎의 크기 등을 더 많이 제어할 수 있습니다. 이보다 쉬울 수는 없습니다!&#x20;

물론 Dash에서 검색하여 Vine 도구를 열 수도 있습니다. 그런 다음 원점(빈 액터나 커브일 수 있음)과 덩굴이 자라길 원하는 표면을 지정할 수 있습니다. 세 번째 방법은 Dash에서 Draw Vines를 검색하는 것입니다. 그러면 Draw Mode가 열리고, 커브를 그리기만 하면 이 커브를 따라 자동으로 덩굴을 생성해 줍니다! ESC 키나 STOP 버튼을 눌러 이 Draw Mode를 종료할 수 있습니다.&#x20;

{% embed url="<https://youtu.be/Y_Ja4n3RSf0>" %}

## Road Tool

입력된 커브/스플라인을 따라 도로/경로 메시를 생성합니다 - UE5에서 절차적 도로가 필요했던 적이 있다면, 이 도구를 매우 유용하게 사용할 수 있을 것입니다! Dash로 스플라인을 그린 다음 Road Tool에 할당하기만 하면, 스플라인의 형태와 완벽하게 일치하는 도로가 생성됩니다. 표면에 더 잘 맞춰 정렬해야 한다면 Geometry 섹션에서 Projection Mask를 찾을 수 있습니다. 그런 다음 스플라인이나 아래쪽 표면을 변경하면 도로가 자동으로 조정됩니다. Road Tool은 Dash에서 검색하여 찾을 수 있습니다.

그리고 언제나처럼 일반적인 슬라이더와 토글로 도로를 커스터마이즈하여 환경에 완벽한 결과를 얻을 수 있습니다. 팁으로, 도로를 만든 뒤에는 Surface Scatter에서 proximity mask로 지정하여 도로 위에 풀 등이 생기지 않도록 할 수 있습니다.

{% embed url="<https://streamable.com/587zqa>" %}

## Quick Pipe

입력된 커브를 따라 메시 파이프를 생성합니다 - 원하는 대로 스플라인을 그려 파이프/케이블을 만드는 것이 쉽다고 생각한다면, Quick Pipe가 적합합니다. 하나 또는 여러 개의 스플라인을 도구에 할당하기만 하면 스플라인을 따라 메시가 즉시 생성됩니다. 물론 이 메시들도 일반적인 슬라이더와 토글로 커스터마이즈할 수 있습니다! Quick Pipe는 Dash에서 검색하여 찾을 수 있습니다.

{% embed url="<https://streamable.com/zqn10t>" %}

## Draw Mesh

커스텀 형태의 메시가 필요하다면, Draw Mesh 도구를 사용해 원하는 어떤 모양이든 그릴 수 있고 그 모양의 기본 메시를 생성해 줍니다. Create 메뉴를 통해서 또는 검색으로 열 수 있습니다. 시작하면 Draw Mode로 들어가며, 원하는 모양을 그리면 그에 맞는 메시를 생성해 줍니다. 계속해서 원하는 만큼 만들 수 있고, ESC 키나 STOP 버튼으로 Draw Mode를 종료한 뒤 마음에 들지 않는 것들은 삭제하면 됩니다.&#x20;

{% embed url="<https://streamable.com/oyz2os>" %}

## Mesh Pattern

Mesh Pattern은 포함된 프리셋을 사용하거나 커스텀 에셋과 패턴으로 자신만의 패턴을 만드는 절차적, 타일형 패턴 생성을 위해 설계된 도구입니다. 단순한 머티리얼보다 더 많은 깊이와 디테일이 필요한 지붕, 벽, 바닥 또는 기타 인공 표면에 완벽합니다.

검색하거나 Dash 바의 Create -> Mesh Tools 카테고리에서 찾을 수 있습니다. 사용을 시작하려면 하나 이상의 표면을 지정하기만 하면 기본적으로 표면에 Tile A 프리셋이 사용됩니다.

{% embed url="<https://streamable.com/3xd1jm>" %}
Mesh Pattern 기본 설정
{% endembed %}

#### 프리셋

Mesh Pattern의 대부분 사용 사례를 커버하기 위해, 서로 다른 에셋과 패턴을 가진 30개 이상의 고품질 프리셋을 포함했습니다. 예를 들어 Broken Floor, HerringBone, Tiles, Bricks용 프리셋이 있습니다. 다른 프리셋으로 전환하려면 Mesh Pattern 상단의 드롭다운 목록을 펼쳐 다른 프리셋을 선택하면 됩니다. 해당 프리셋의 에셋이 아직 레벨에 없으면 자동으로 추가됩니다.&#x20;

{% embed url="<https://streamable.com/u9rfbk>" %}
Mesh Pattern 프리셋 드롭다운
{% endembed %}

#### 커브/스플라인의 Mesh Pattern

Mesh Pattern에서 메시나 평평한 표면을 표면 오브젝트로 지정하는 대신, 커브나 스플라인도 사용할 수 있으며, 이는 울타리나 벽을 만드는 데 완벽합니다. Draw Curves 도구의 커브를 사용할 때는 대부분 직선 커브를 그리면 가장 좋은 결과를 얻을 수 있습니다. 더 둥근 형태를 원한다면 Draw Spline 도구를 사용하는 것이 좋습니다.&#x20;

{% hint style="info" %}
스플라인을 표면 오브젝트로 사용할 때는 암시적 메시가 생성되며, 패턴을 만드는 데 사용된 에셋 오브젝트의 Z 스케일에서 결정된 높이로 스플라인이 익스트루드됩니다.&#x20;
{% endhint %}

{% embed url="<https://streamable.com/8buczm>" %}
Mesh Pattern에서 커브 및 스플라인 사용
{% endembed %}

#### 설정

다른 Dash 도구들과 마찬가지로, 물론 결과를 원하는 대로 정확히 조정할 수 있습니다. 설정을 직접 실험해 보고 마우스를 올려 설명을 읽어보는 것을 권장하지만, 사용 가능한 설정 요약은 다음과 같습니다:

* 기본 속성: 타일 스케일, 각도, 패딩, 싱크를 조정할 수 있습니다.&#x20;
* 노이즈: 포인트나 메시 자체에 노이즈를 추가할 수 있습니다.
* Projection: 패턴을 하나 또는 여러 개의 오브젝트에 투영/밀어넣을 수 있습니다.&#x20;
* Slice Tiles: Boolean 메시를 사용하여 패턴 오브젝트를 특정 모양으로 자를 수 있습니다. 예를 들어 큐브나 구를 사용할 수 있습니다.&#x20;
* Proximity Mask: 오브젝트/커브 주변의 영역을 마스킹하거나, 오브젝트/커브 바로 옆에만 유지할 수 있습니다.&#x20;
* Noise Mask: 제어된 노이즈에 따라 패턴의 무작위 오브젝트를 제거합니다.&#x20;
* Object Masking: 레이캐스팅을 사용하여 오브젝트 주변의 영역을 마스킹하거나 바로 옆에만 유지할 수 있습니다.
* Pattern Details: 패턴 변형을 추가하고 제어합니다. 또한 커스텀 프리셋용 Area 메시를 생성합니다.&#x20;

{% embed url="<https://streamable.com/zd5aww>" %}
Mesh Pattern 설정 예시
{% endembed %}

패턴 반복이 표면과 잘 맞지 않을 수 있는데, 이때는 slice 기능을 사용해 Boolean 메시로 타일을 임의의 모양으로 자를 수 있습니다. 이 기능은 패턴 안에 완벽한 정사각형 또는 원형 패턴을 "자르고" 싶을 때도 유용합니다.&#x20;

{% embed url="<https://streamable.com/z5rr1i>" %}
Mesh Pattern Slice 기능
{% endembed %}

{% hint style="warning" %}
Mesh Pattern의 Slice 기능을 사용하면, 이를 위해 아웃라이어에 새 변형 메시를 생성합니다. 이 메시들은 특별한 Dash 메시이므로 게임을 배포하기 전에 베이크해야 합니다. Slice 메시를 선택하고 Dash에서 Bake Meshes를 검색하여 일반 스태틱 메시로 변환하기만 하면 됩니다. \
\
Slice 기능은 무거운 과정이므로, 필요하지 않을 때는 Enable 옵션을 반드시 해제하여 Mesh Pattern의 최상의 성능을 확보하세요.&#x20;
{% endhint %}

평평한 평면 대신 3D 메시를 사용할 때, 패턴은 로컬 공간에서 가장 큰 평면 표면에 적용됩니다. 패턴이 정확히 어디에 나타날지 제어하고 싶다면, 대신 평평한 평면에서 Mesh Pattern을 사용한 뒤 이를 3D 메시와 특정 표면/면에 투영할 수 있습니다. 최상의 결과를 얻으려면 평면 각도를 표면 각도와 맞춘 다음, Max Distance 값을 실험하여 의도한 위치 외에는 투영되지 않도록 하세요.&#x20;

{% embed url="<https://streamable.com/js2euf>" %}

{% hint style="warning" %}
Mesh Pattern의 Projection 기능을 사용할 때는, 투영 메시가 표면 메시보다 아래에 있는지 위에 있는지에 따라 flip 토글을 사용해야 할 수 있습니다.&#x20;
{% endhint %}

#### 커스텀 프리셋

포함된 프리셋 오브젝트와 패턴이 사용 사례를 충분히 커버하지 않는다면, 어떤 에셋으로든 자신만의 패턴을 만들 수 있습니다. 이렇게 만든 패턴은 프리셋 목록을 통해 쉽게 저장하고 모든 프로젝트에서 사용할 수 있습니다.&#x20;

{% hint style="warning" %}
커스텀 프리셋은 가능한 가장 낮은 Unreal 버전에서 만들어 보세요. 더 낮은 Unreal 버전에서는 사용할 수 없기 때문입니다.&#x20;
{% endhint %}

커스텀 프리셋을 만들려면 씬에서 하나 이상의 오브젝트를 선택한 다음 Pattern Objects로 지정하면 됩니다. 이렇게 하면 이러한 에셋의 배치가 서로에 대해서도, Z 축에 대해서도 중요하다는 점을 알 수 있습니다. 오브젝트를 이동, 회전, 스케일링하면 패턴이 표면에서 어떻게 조정되는지 볼 수 있습니다.&#x20;

{% hint style="warning" %}
커스텀 에셋은 0.0 Z 위치에 배치해야 합니다. 그렇지 않으면 표면 위에 떠 있게 됩니다. 위/아래로 이동시켜 표면 위로 얼마나 떠 보일지 조절할 수 있습니다.&#x20;
{% endhint %}

{% embed url="<https://streamable.com/n4xk9w>" %}
Mesh Pattern 커스텀 프리셋 설정
{% endembed %}

{% hint style="warning" %}
Pattern Objects는 90도 단위로만 회전시키는 것이 가장 좋은 결과를 얻는 방법입니다.&#x20;
{% endhint %}

대부분의 패턴에서는 패턴이 Pattern Objects에 비해 얼마나 큰지를 정의하기 위해 특수한 “area object”가 필요합니다.&#x20;Mesh Pattern 도구 하단의 유틸리티 버튼 "Create Area"로 area actor를 생성하여 추가할 수 있습니다.&#x20;

<figure><img src="https://3738228828-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYp9tAkqjcwFDufAaviIa%2Fuploads%2FO3IM0R6IK2f45x7LKukL%2Fimage%20(17).png?alt=media&#x26;token=ebe31b09-ff3b-427e-bd58-13241d224b0a" alt="" width="563"><figcaption><p>빨간색은 scatter point이며, area actor에서 정의된 녹색 영역을 기준으로 합니다</p></figcaption></figure>

예를 들어, area object의 조정이나 area object와 관련된 에셋 조정이 결과에 어떤 영향을 미치는지 볼 수 있습니다.&#x20;

{% embed url="<https://streamable.com/jiha9c>" %}

이제 올바른 반복으로 패턴을 정의했으니, 여기에 변형을 추가하고 싶을 수 있습니다.&#x20;패턴을 정의하는 오브젝트들에 매우 가까운 곳에 다른 오브젝트를 배치하고 이를 Pattern Objects로 추가하면, Pattern Details 섹션에서 이를 변형으로 처리하도록 도구에 지시할 수 있습니다. Variation Threshold를 0보다 크게 설정하고 변형의 개수와 변형 에셋의 배치를 실험해 보세요.&#x20;

{% embed url="<https://streamable.com/2slctw>" %}
Mesh Pattern 변형 예시
{% endembed %}

Pattern Objects와 그 패턴에 만족하면, 이 패턴을 커스텀 프리셋으로 저장하여 쉽게 재사용할 수 있습니다. 프리셋 드롭다운을 열고 Create Pattern 버튼을 사용해 프리셋을 드롭다운에 추가하기만 하면 됩니다. 다른 프로젝트에서 이 커스텀 프리셋을 불러올 때, 오브젝트가 해당 프로젝트의 일부가 아니라면 자동으로 추가됩니다.&#x20;

{% hint style="warning" %}
선택했을 때 패턴이 표시되지 않는다면, 출력 로그에 LoadAsset 오류가 발생했을 수 있습니다. 이를 수정하려면 아웃라이어에서 새로 추가된 오브젝트들을 삭제한 뒤 커스텀 프리셋을 다시 지정하면 정상적으로 작동합니다.
{% endhint %}

{% embed url="<https://streamable.com/j7hoob>" %}
커스텀 Mesh Pattern 프리셋 불러오기 및 저장
{% endembed %}

#### 패턴 머티리얼 조정

Mesh Pattern에 포함된 프리셋 메시의 머티리얼을 조정하고 싶다면 Material Edit 도구를 통해 가능합니다. 뷰포트에서 Mesh Pattern 출력을 선택한 다음 Tools Panel 왼쪽 상단의 Active Tools 목록에서 Material Edit를 엽니다.&#x20;

여기서 Hue, Saturation, Brightness 등의 기본 설정을 조정할 수 있을 뿐 아니라 Dirt, Snow, Rain 레이어를 추가할 수도 있습니다. 그리고 새롭게 추가된 기능으로 Material Edit 도구에서 직접 색상 변형을 추가할 수 있습니다. 기본적으로 이 기능은 활성화되어 있고 가장 강한 값으로 설정되어 있어 프리셋이 가능한 한 가장 좋은 모습이 되도록 하지만, 끄거나 변형 강도를 바꾸고 싶다면 Mesh Pattern의 Material Edit 내 변형 설정에서 조정할 수 있습니다.&#x20;

{% embed url="<https://streamable.com/5eg5af>" %}

## FAQ

<details>

<summary>프로시저럴 메시 도구를 닫은 후에도 편집할 수 있나요?</summary>

네, 물론 베이크하지 않았거나 도구 연결을 끊지 않았다면 Dash에서 메시 도구 편집을 계속할 수 있습니다. Dash의 Edit 버튼으로 Tools Panel을 연 다음 메시를 선택하기만 하면 됩니다.&#x20;

이렇게 해도 도구가 예상대로 표시되지 않으면, Tools Panel에 다른 도구가 고정되어 있지 않은지 확인하고, Tools Panel 왼쪽 상단 버튼으로 Active Tools List를 열어 도구를 찾을 수 있는지도 확인하세요.

</details>

<details>

<summary>이 메시 도구 위에 다른 Dash 도구를 뿌리거나 사용할 수 있나요?</summary>

예를 들어 Dash로 지형을 만든 뒤, Surface Scatter로 그 위에 잔디를 흩뿌리고 road tool로 도로를 생성하여 투영할 수 있습니다. 이후 Tools Panel에서 지형을 다시 조정하면, 흩뿌린 것과 투영된 도로도 물론 그에 맞게 조정됩니다.&#x20;

</details>
