> For the complete documentation index, see [llms.txt](https://docs.bestway.com.ua/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bestway.com.ua/gem-rts-v1-ru/redaktor/redaktor-kart/4-redaktor-splainov.md).

# \[4] Редактор сплайнов

**Редактор сплайнов** \[`Spline`] — это группа инструментов для создания и редактирования линейных объектов на карте: дорог, заборов, линий электропередач, береговых линий, а также для задания деформации ландшафта.

**Сплайн** — это кривая, по которой строятся линейные объекты. При размещении сплайн автоматически подстраивается под рельеф, что обеспечивает точное соответствие кривизне поверхности и её перепадам.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2F5t6pn4oM3u6KJFzyDgib%2FSpline%20editor.jpg?alt=media&amp;token=f47e06c8-9eba-42e9-87b5-689b0425e470" alt="Окно редактора сплайнов"><figcaption></figcaption></figure>

{% hint style="info" %}
В Gem RTS доступна для использования только вкладка `Road` , предназначенная для создания дорог
{% endhint %}

## Редактор дорог

Инструмент создания дорог является частью редактора сплайнов и используется для построения дорожной сети на карте. Он позволяет создавать дороги любой формы, автоматически подстраивающиеся под рельеф и управлять их внешним видом через параметры материала дорожного полотна.

Редактор дорог находится на вкладке `Road` в окне редактора сплайнов `spline [4]`.

**Инструмент предназначен для:**

* построения дорог различной ширины и формы;
* гибкой настройки материалов и текстур дорог;
* управления приоритетом отрисовки дорог на ландшафте при их пересечении;
* интеграции сети дорог в общую структуру сцены.

### Общие сведения

В редакторе дорог работа организована через **контейнеры дорог**. Контейнер хранит данные о конкретной дороге и может быть пустым — в таком случае дорога не отображается на карте. Дорога визуально появляется только после добавления в контейнер узлов сплайна.

**Сплайн** — это кривая, строящаяся по заданным узлам. Она может включать любое количество узлов и точно повторяет кривизну рельефа, определяя форму дорожного полотна.

**Узлы сплайна** — контрольные точки, по которым строится дорога. Каждый узел отображается в виде сетчатой сферы и имеет два рычага для регулировки кривизны.

**Рычаги кривизны** — манипуляторы вокруг выбранного узла, позволяющие управлять плавностью изгиба дороги. Длину плеч рычагов можно изменять, перетаскивая ЛКМ за поинты.

**Условные обозначения:**

* Сферой с желтой сеткой отображаются узлы сплайна.
* Сферой с синей сеткой отображается **активный узел**: последний добавленный или выбранный (текущий).
* Жёлтые линии с маленькими красными сферами на концах — рычаги регулировки кривизны дорожного полотна.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FVfqJ6SeucEUmaI4SEzn8%2F%D0%98%D0%BB%D0%BB%D1%8E%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F%20%D1%83%D0%B7%D0%BB%D0%BE%D0%B2%20%D1%81%D0%BF%D0%BB%D0%B0%D0%B8%CC%86%D0%BD%D0%B0%20%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%B8.png?alt=media&amp;token=8dcd10b6-0933-44cf-9836-fdf8acb539fc" alt=""><figcaption><p>Иллюстрация условных обозначений для елементов сплайна</p></figcaption></figure>

### Интерфейс редактора дорог

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2F6M3SyZgN910Ei2Czo20M%2F20250917132124_1.jpg?alt=media&amp;token=d6bcfd61-1f04-4a98-a8cf-9c8a265321cb" alt=""><figcaption><p>Окно редактора дорог</p></figcaption></figure>

Окно редактора дорог `Road` находится во вкладке `spline [4]` и содержит следующие элементы:

1. Набор флажков **Display settings** — набор чекбоксов для настройки отображения узлов и линий сплайнов дорог.
2. Окно **Spline list** — список всех контейнеров дорог на карте. Каждый контейнер хранит информацию об одном дорожном полотне.
3. Панель **Properties** — список параметров для настройки внешнего вида дороги выбранного контейнера (ширина, плотность текстуры, материал и др.).
4. **Окно подсказок** — расположено под панелью **Properties**, отображает описание выбранного параметра в окне **Properties**.
5. **Рабочая область**

### Контекстное меню списка контейнеров дорог

Список всех контейнеров дорог находится в окне `Spline list`. Для управления контейнерами используется контекстное меню.\
Контекстное меню вызывается **ПКМ** двумя способами в зависимости от контекста действия:

* на пустом месте списка — для добавление нового контейнера или очистки списка контейнеров;
* на имени существующего контейнера — для вызова меню управления выбранным объектом.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2F3fXj9c7tzEl1dS0w0xxn%2F%D0%92%D1%8B%D0%B7%D0%BE%D0%B2%20%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BC%D0%B5%D0%BD%D1%8E%20%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B8%CC%86%D0%BD%D0%B5%D1%80%D0%B0%D0%BC%D0%B8%20%D0%B4%D0%BE%D1%80%D0%BE%D0%B3.jpg?alt=media&amp;token=1ae05629-2d39-4237-af39-a302dc2e6ed3" alt="Вызов контекстного меню для управления контейнерами дорог"><figcaption><p>Иллюстрация вызова контекстного меню для управления контейнерами дорог</p></figcaption></figure>

#### Описание команд контекстного меню списка контейнеров:

<table data-header-hidden><thead><tr><th width="207.55859375" valign="top">Команда</th><th>Описание</th></tr></thead><tbody><tr><td valign="top"><code>Add..</code></td><td>Добавляет <strong>новый контейнер дороги</strong> в список.<br>Чтобы появилась сама дорога, необходимо выбрать контейнер и добавить узлы сплайна (контрольные точки выбранного контейнера).</td></tr><tr><td valign="top"><code>Rename..</code></td><td>Изменяет название выбранного контейнера дороги.</td></tr><tr><td valign="top"><code>Copy..</code></td><td>Создаёт копию выбранного контейнера дороги.</td></tr><tr><td valign="top"><code>Delete</code></td><td>Удаляет выбранный контейнер вместе со всеми точками.</td></tr><tr><td valign="top"><code>Up</code></td><td>Перемещает выбранный контейнер вверх по списку.</td></tr><tr><td valign="top"><code>Down</code></td><td>Перемещает выбранный контейнер вниз по списку.</td></tr><tr><td valign="top"><code>Select control points</code></td><td>Выделяет все узлы сплайна выбранной дороги, позволяя перемещать их одновременно.</td></tr><tr><td valign="top"><code>Clean points</code></td><td>Удаляет все узлы из выбранного контейнера дороги.<br>После удаления дорогу можно построить заново.</td></tr><tr><td valign="top"><code>Clean a road list</code></td><td>Удаляет все созданные контейнеры с карты и из списка.</td></tr></tbody></table>

Выделенный узел можно перемещать по поверхности карты.\
Также можно перемещать все дорожное полотно целиком, для этого необходимо выбрать все узлы сплайна с помощью команды `Select control points` в контекстном меню выбранного контейнера.

#### Описание горячих клавиш для работы с узлами сплайна:

<table data-header-hidden><thead><tr><th width="183.3984375" valign="top">Управление</th><th>Описание</th></tr></thead><tbody><tr><td valign="top"><strong>ЛКМ</strong></td><td>Выбор узла на карте.<br>Движение мышью при удерживании ЛКМ на выбранном узле — перемещение узла по поверхности карты.</td></tr><tr><td valign="top"><strong>Ctrl + ЛКМ</strong></td><td><p>Добавление нового узла.</p><p>Если выбран крайний узел — добавляется новый узел в указанном месте карты.</p><p>Если клик выполнен по линии между узлами — новый узел вставляется внутрь сплайна.</p></td></tr><tr><td valign="top"><strong>ПКМ</strong></td><td>Открывается контекстное меню</td></tr></tbody></table>

#### Описание команд контекстного меню узла сплайна

Контекстное меню открывается по ПКМ на сфере узла.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FzG3t6saJFa2GGdW4wDto%2F%D0%9A%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BD%D0%BE%D0%B5%20%D0%BC%D0%B5%D0%BD%D1%8E%20%D1%83%D0%B7%D0%BB%D0%B0%20%D1%81%D0%BF%D0%BB%D0%B0%D0%B8%CC%86%D0%BD%D0%B0.png?alt=media&amp;token=0982faa3-e393-420b-b500-e288ae2e137e" alt=""><figcaption></figcaption></figure>

<table data-header-hidden><thead><tr><th width="139.60546875" valign="top">Команда</th><th>Описание</th></tr></thead><tbody><tr><td valign="top"><code>Join nodes</code></td><td>Удалить выбранную точку и соединить соседние.</td></tr><tr><td valign="top"><code>Split road</code></td><td>Разделить сплайн на две части.</td></tr><tr><td valign="top"><code>Cancel</code></td><td>Отменить действие.</td></tr></tbody></table>

### Создание дороги

{% stepper %}
{% step %}

#### Создать контейнер дороги

1. **ПКМ** на пустом месте окна списка сплайнов (`-Spline list-`) вызвать контекстное меню и выбрать команду `Add..` .

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FRIFfBpsdwXxrUcFLL3lv%2F%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE%20%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B8%CC%86%D0%BD%D0%B5%D1%80%D0%B0%20%D0%B4%D0%BB%D1%8F%20%D1%81%D0%BF%D0%BB%D0%B0%D0%B8%CC%86%D0%BD%D0%B0%20%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%B8.png?alt=media&amp;token=4bc5678d-f175-4016-b5a0-b3bbf3386a64" alt=""><figcaption></figcaption></figure>

2. В диалоге `Input` ввести имя контейнера и подтвердить ввод - название контейнера появится в окне `-Spline list-`.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FYvWLdGGL2M2vouff4hYT%2F%D0%92%D0%B2%D0%BE%D0%B4%20%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8%20%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B8%CC%86%D0%BD%D0%B5%D1%80%D0%B0%20%D1%81%D0%BF%D0%BB%D0%B0%D0%B8%CC%86%D0%BD%D0%B0%20%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%B8%20%D0%B2%20%D0%B4%D0%B8%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D0%B5%20%D0%BE%D0%BA%D0%BD%D0%BE%20Imput.png?alt=media&amp;token=6dd857cd-31de-436f-a91d-7a506fc725eb" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Добавить узлы дороги в контейнер

1. Выбрать в списке имя созданного контейнера.
2. В рабочей зоне редактора в нужном месте карты при помощи комбинации клавиш **Ctrl + ЛКМ** добавить первую контрольную точку на ландшафте - на карте появится синяя сфера первого узла сплайна дороги.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FziKnhFQaBgd3xWTs3zR9%2F%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%83%D0%B7%D0%BB%D0%BE%D0%B2%20%D1%81%D0%BF%D0%BB%D0%B0%D0%B8%CC%86%D0%BD%D0%B0%20%D0%B2%20%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B8%CC%86%D0%BD%D0%B5%D1%80.png?alt=media&amp;token=09ff63b1-8cb8-48f6-9f88-4a7db5758f60" alt=""><figcaption></figcaption></figure>

3. Удерживая клавишу Ctrl добавлять ЛКМ новые узлы, выстраивая линию дороги нужной конфигурции. Выделенная точка отображается синей сферой, все остальные желтой.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2Fgd0RO6oUatTjfgxWARWv%2F%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%83%D0%B7%D0%BB%D0%BE%D0%B2.png?alt=media&amp;token=b87e6b26-1352-482c-91b4-203e87431a5f" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Настроить кривизну дороги и добавить детализацию на поворотах

1. Добавить, удалить или переместить узлы сплайна для корректировки формы дороги.
2. С помощью **рычагов** отрегулируйте плавность кривизны дороги на поворотах.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FVfqJ6SeucEUmaI4SEzn8%2F%D0%98%D0%BB%D0%BB%D1%8E%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F%20%D1%83%D0%B7%D0%BB%D0%BE%D0%B2%20%D1%81%D0%BF%D0%BB%D0%B0%D0%B8%CC%86%D0%BD%D0%B0%20%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%B8.png?alt=media&amp;token=8dcd10b6-0933-44cf-9836-fdf8acb539fc" alt=""><figcaption></figcaption></figure>

3. Для корректного отображения дороги на резких поворотах необходимо увеличить плотность сетки ландшафта. Для этого перейти на вкладку `land [3]` и выбрать инструмент `Polygons`. Настроить параметр `Level` и кистью добить дополнительные полигоны в области поворота дороги, тем самым повысив точность отрисовки дороги.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2F3HGbU7GxeBz2EBVlkkST%2F%D0%94%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D0%BE%D0%B2%20%D0%BD%D0%B0%20%D0%BF%D0%BE%D0%B2%D0%BE%D1%80%D0%BE%D1%82%D0%B0%D1%85%20%D1%81%D0%BF%D0%BB%D0%B0%D0%B8%CC%86%D0%BD%D0%B0.jpg?alt=media&amp;token=08c72f31-ebc2-4a19-ad0e-4a6ced1861e1" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Настройка внешнего вида дорожного полотна

1. Выбрать материал для визуализации дорожного полотна.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FOfM5oIrROVDaO33t1Y9j%2F%D0%92%D1%8B%D0%B1%D0%BE%D1%80%20%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%B0%20%D1%81%D0%BF%D0%BB%D0%B0%D0%B8%CC%86%D0%BD%D0%B0%20%D0%B4%D0%BE%D1%80%D0%BE%D0%B3%D0%B8.jpg?alt=media&amp;token=e00927e4-3b33-4aa0-9a40-b788e88585e3" alt=""><figcaption></figcaption></figure>

2. Настроить другие параметры сплайна
   {% endstep %}
   {% endstepper %}

### Настройка параметров дорожного полотна

Панель `Properties` отображает параметры дорожного полотна для выбранного контейнера.\
Под панелью находится окно подсказок с кратким описанием выбранного параметра.

{% hint style="warning" %}
Некоторые параметры станут доступны для настройки в редакторе дорог с ближайшим обновлением игры **Men of War II**.
{% endhint %}

<table><thead><tr><th width="237.921875">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><code>Road Width</code> (<code>Half Width</code>)</td><td>Ширина дороги, отображается сплошными линиями. Зависит от размеров выбранной текстуры.<br>При изменении текстуры или Pixel Density ширина пересчитывается автоматически. Измеряется в метрах.</td></tr><tr><td><code>Pixel Density</code></td><td>Плотность пикселей текстуры на метр. При изменении текстуры или параметра Road Width значение автоматически пересчитывается.</td></tr><tr><td><code>Alpha Distance</code></td><td>Дистанция от края дороги до точки затухания (Falloff).<br>Измеряется в метрах.<br>Не работает в ground-материалах (отсутствует альфа-канал).</td></tr><tr><td><code>Order</code></td><td>Определяет приоритет отрисовки дороги по отношению к другим дорогам и декалям на ландшафте.</td></tr><tr><td><code>Materials</code></td><td>Материал дорожного полотна. Поддерживаются PBR и устаревший Phong (для обратной совместимости). Список параметров для тонкой настройки материала зависит от выбранного материала.</td></tr><tr><td><code>Diffuse Texture</code></td><td>Имя файла диффузной текстуры поверхности дороги.</td></tr><tr><td><code>Diffuse Color</code></td><td>Диффузный цвет текстуры, задаётся вручную.</td></tr><tr><td><code>Opacity</code></td><td>Коэффициент прозрачности от 0.0 до 1.0. 0.0 — полностью прозрачная поверхность, 1.0 — полностью непрозрачная.</td></tr><tr><td><code>AO Rate</code></td><td>Влияние карты Ambient Occlusion (затенения).</td></tr><tr><td><code>Metallic</code></td><td>Степень металлического отражения материала дороги.</td></tr><tr><td><code>Roughness</code></td><td>Параметр шероховатости поверхности.</td></tr><tr><td><code>Name</code></td><td>Имя дороги, отображаемое в списке сплайнов.</td></tr><tr><td><code>Falloff</code> (папка)</td><td>Дополнительные свойства плавного затухания.<br>Находятся в стадии разработки и не подлежат настройкам в редакторе текущей версии движка.</td></tr></tbody></table>

{% hint style="warning" %}
Список параметров сплайна зависит от выбранного материала.
{% endhint %}

### Особенности работы в редакторе дорог

{% embed url="<https://youtu.be/jxXq2UUWL9k?autoplay=1&_loop=1>" %}
