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

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

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

<figure><img src="/files/s9PGPTAGNGqO7pVtr4Hy" alt="Окно редактора сплайнов"><figcaption></figcaption></figure>

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

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

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

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

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

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

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

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

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

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

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

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

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

<figure><img src="/files/kfsxZeKo6xt4iCSb5atA" alt=""><figcaption><p>Иллюстрация условных обозначений для елементов сплайна</p></figcaption></figure>

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

<figure><img src="/files/0hi4Sw3QQwIloItjPok7" alt=""><figcaption><p>Окно редактора дорог</p></figcaption></figure>

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

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

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

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

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

<figure><img src="/files/xfWOiTklMGgZANXBI1aL" 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="/files/EwHSYxuyXbETlfW7nHyb" 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="/files/A033pWGzU5JfdeuyYNnl" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/hbOYAqUpwR4mZyTWqjRo" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

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

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

<figure><img src="/files/eTMommCXV856YTFArwYh" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/yKSmT6XKZ6ASpHGFcDaW" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

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

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

<figure><img src="/files/kfsxZeKo6xt4iCSb5atA" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/mVlQlzM1bJvlLA9al9ve" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

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

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

<figure><img src="/files/zs6TchdB1kjiqZ6qbb20" 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>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bestway-1.gitbook.io/documentation/gem-rts-v1-ru/redaktor/redaktor-kart/4-redaktor-splainov.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
