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

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

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

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

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

{% hint style="info" %}
В гусеничной технике в зависимости от вида подвески используется механизм типа Каток-Рычаг (`roller+roller_joint`) или Каток-Качели (`roller`+`align`)
{% 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="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FmMgXOmho84rKOVKZEOBz%2Froller.png?alt=media&amp;token=892d47f7-019d-4da3-8d0d-752322d96f03" 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="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2Fku5dJK2w5mDTeGs35Up9%2Falign.png?alt=media&amp;token=c1a0a82a-d446-4e34-82a1-aea3c5578fac" alt=""><figcaption></figcaption></figure>

### Колесо

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

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

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

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

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FrUBlJ3bLdljgcS8C5w3Q%2F9.jpeg?alt=media" 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></td></tr></tbody></table>

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FSAKuonGzJrYT2dlIv81v%2FTrack%20and%20suspension%20wheels.png?alt=media&amp;token=7fcf2415-dbc2-4418-a95d-3f24354927e5" alt=""><figcaption></figcaption></figure>

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

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

### Steer

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

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

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

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

* IKType=revolute,
* IKSpeed=<значение>,
* IKMin=<значение>,
* 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 %}
