# Механизмы в шасси

## Типы механизмов

**Механизмы шасси для техники**:

* Каток (roller)
* Рычаг (roller\_joint)
* Качели (align)
* Колесо (wheel)
* Гусеница (track)
* Руль (steer)
* Прицеп (trailer)
* Паровой поршень (steam piston)

{% hint style="info" %}
В гусеничной технике в зависимости от вида подвески используется механизм типа Каток-Рычаг (`roller+roller_joint`) или Каток-Качели (`roller`+`align`)&#x20;
{% endhint %}

**Механизмы шасси для самолетов**:

* flap
* rudder
* aileron
* elevator

### Каток-Рычаг

**Принцип работы**\
При движении юнита в игре каждый его каток ставится на землю путем поворота ИК кости так, чтобы у катка (колеса)  была сцепка с поверхностью земли.

**Правила именования костей**\
Имена костей катков должны начинаться с префикса “roller”

**Описание элементов шасси:**

<table><thead><tr><th width="199">Название кости</th><th width="273">Описание</th><th>Object Properties</th></tr></thead><tbody><tr><td><code>rollerN_joint</code></td><td>Кость, содержащая меш подвески.<br>Работает по правилам инверсной кинематики.</td><td><p>poly</p><p>IKType=revolute, </p><p>IKMin=&#x3C;значение></p><p>IKMax=&#x3C;значение></p></td></tr><tr><td><code>rollerN</code></td><td>Опорная кость катка/колеса</td><td>poly<br>radius=&#x3C;значение></td></tr></tbody></table>

**Особенности костей**

* Кость `rollerN_joint` располагается в позиции оси вращения рычага, к которому крепится кость катка `roller` . Ось Z кости должна совпадать с осью вращения рычага.
* Радиус катка: значение параметра `radius`  задается в метрах

{% hint style="warning" %}
Радиус катка нужно задавать немного больше видимого радиуса модели катка, чтобы учесть толщину гусеницы. Иначе, визуально каток будет погружаться внутрь гусеницы
{% endhint %}

<figure><img src="/files/TLJN17qJzLoCdQT1OQqF" alt=""><figcaption><p>Пример костей типа roller</p></figcaption></figure>

### Качели

**Принцип работы**\
Работает по принципу качелей. Шасси пытается выставить две кости с заданными радиусами на землю, поворачивая кость по правилам инверсной кинематики.

**Правила именования костей**\
Имена костей должны начинаться с префикса `align`

<table><thead><tr><th width="163">Название кости</th><th width="279">Описание</th><th>Object Properties</th></tr></thead><tbody><tr><td><code>align</code></td><td>Кость, содержащая меш подвески.<br>Работает по правилам инверсной кинематики.</td><td><p>poly</p><p>IKType=revolute</p><p>IKSpeed=&#x3C;значение> </p><p>IKMin=&#x3C;значение></p><p>IKMax=&#x3C;значение></p></td></tr></tbody></table>

**Особенности костей**\
Две кости-потомка считаются опорными, которые должны в итоге выровняться относительно земли.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcaMyFZf1V8N8hVNgPPTUsEVqXA_6DqxGCqdYkILpcm-O70jZcIzubdai6oX1MUmf03vts5sbB2Z1Ob3mQ2MGp41pN9kpi4U7GykHzj3uMjseWMgz46-WUZUwJo5OX9nWf7jJrCF9zOAey4S46dSGWasaCm?key=lL_zWhi9OpK0iXcLXfnQFw" alt=""><figcaption></figcaption></figure>

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

### Колесо

**Принцип работы**\
Вращает кости, согласно движению колёс относительно земли.

**Правила наименования костей**\
Имена всех колёс должны начинаться с префикса `wheel`

**Внутренние параметры**\
Параметр `radius` задаёт радиус колеса в метрах

**Особенности костей**\
Если колеса одинаковые, то радиус колёс по умолчанию может быть задан в кости `basis` через параметр `wheelradius`**.**

<figure><img src="/files/0bhVUAgWwPWoaZXNpTR7" alt=""><figcaption></figcaption></figure>

### Гусеница

**Принцип работы**\
Имитация вращения траков осуществляется за счет изменения координаты V в текстуре трака, согласно движению объекта.

<table><thead><tr><th width="163">Название кости</th><th width="218">Описание</th><th>Object Properties</th></tr></thead><tbody><tr><td><code>trackN</code></td><td>Кость, содержащая меш  гусеницы. <br>N - идентификатор стороны (left, right)</td><td><p>poly<br>ID=trackleft or trackright</p><p>IKType=revolute</p><p></p></td></tr></tbody></table>

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

Настройки гусениц задаются в .def файле модели:&#x20;

* bone - имя кости с гусеницей
* length - длина гусеницы в метрах

### Steer

**Принцип работы**\
Поворот руля работает через выставление значения угла поворота в ИК кости.

**Правила именования костей**\
Имена ИК костей должны начинаться с префикса `steer`

**Внутренние параметры**

Параметры инверсной кинематики:

* IKType=revolute,&#x20;
* IKSpeed=<значение>,&#x20;
* IKMin=<значение>,&#x20;
* IKMaх=<значение>.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdOnWT5D_lzi2xyawVZWikJHjANMTX7yfnz_QRd5aDOz9vZyWdkQRLjhKqBcgbRx697cdycFIPgSselcK-HIfmFZHZCDbU_p6m2Cy8bpqaJKvyfWTrMFmFT3e75_U0mwyi3J8EmdjXNUJiFfMJx_bg86J5F?key=lL_zWhi9OpK0iXcLXfnQFw" alt=""><figcaption></figcaption></figure>

### Trailer

**Принцип работы**\
Механизм "прицеп" (`trailer`) функционирует аналогично пушкам, прицепленным к тягачу. \
Его задача — поворачивать поворотную кость так, чтобы опорная кость оставалась на месте. Это обеспечивает стабильность и корректную работу сцепки в процессе движения.

**Правила наименования костей**

<table><thead><tr><th width="241">Название кости</th><th>Описание</th><th> Внутренние параметры</th></tr></thead><tbody><tr><td><code>trailer</code></td><td>Опорная кость. <br>В иерархии костей опорная кость линкуется к поворотной кости.</td><td>poly</td></tr><tr><td><code>&#x3C;trailername>_joint</code></td><td>Поворотная кость.<br>Используется для задания точки вращения сцепки.<br>В иерархии костей позиционируется в точке вращения сцепки.</td><td><p>poly</p><p>IKType=revolute,</p><p>IKMin=&#x3C;значение></p><p>IKMax=&#x3C;значение></p></td></tr></tbody></table>

**Особенности костей**

* **Расположение поворотной кости**\
  **Поворотная кость** `<trailername>_joint` должна быть в позиции оси вращения спецки, к которой по иерархии костей крепится прицеп.
* **Ориентация осей пивота поворотной кости**:
  * Ось Z должна совпадать с осью вращения сцепки.
  * Ось X должна быть направлена на опорную кость, чтобы исключить смещение в плоскости вращения. Допускаются смещения вне этой плоскости.

### Steam piston

**Принцип работы**\
Сделан специально для паровозов, чтобы выставлять поршень согласно вращению колёс.

### Дополнительные рекомендации

{% hint style="warning" %}
Все наименования костей и связанные с ними параметры необходимо проверять на соответствие внутренним стандартам. Это гарантирует правильную работу механизма в игровом движке.
{% endhint %}


---

# 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/modeli/plan-nastroiki-modelei-tekhniki/sozdanie-ierarkhii-vspomogatelnykh-kostei-i-volyumov-modeli/transmissiya/mekhanizmy-v-shassi.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.
