> 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/animacii/anymatsyonnaia_systema_yunytov/otladka-animacii-v-redaktore.md).

# Отладка анимаций в редакторе

В отладочной версии Gem RTS предусмотрены инструменты для анализа состояния FSM, анимаций и параметров анимируемых объектов. Это позволяет быстро диагностировать ошибки и проверить корректность логики поведения юнита.

## Включение режима отладки

1. Запустите редактор и нажмите **F10** для настройки режима отладки.
2. В списке **Render Layer List Window** отметьте галочками:
   * `entity`
   * `fsm`
   * `animation`
3. Выделите рамкой тестируемого юнита.
4. Слева от объекта появятся отладочные поля FSM.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2F0EwYEOKQOp9G6lNjKbRt%2F%D0%9E%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0%20%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D0%B8%CC%86%20%D0%B2%20%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B5.jpeg?alt=media&amp;token=a0d4fc32-d1bb-409c-be01-ccbba8ffa42d" alt="Отладка анимаций актера human в редакторе Gem RTS"><figcaption><p>Отладочный режим редактора для тестирования анимаций и FSM актера human</p></figcaption></figure>

### Секция `fsm` (Finite State Machine)

<figure><img src="https://lh7-us.googleusercontent.com/pkG34urx14qgbEhEXi_IQe-6hzXhs1szDKXwxskJP9YWKShZN8FZ-LQ974QP3ZvcwKodp9hLM823bJv-8bzQce_dmgtLw_HvK8iZBA7M3fbQKZXW_owe4Q2LFgkzGyqfs_4ooSFjdUno2vqa22rSPF4" alt="Пример отображения отладочной информации для настройки FSM в редакторе Gem RTS"><figcaption></figcaption></figure>

Параметры, отображаемые для выбранного юнита:

<table><thead><tr><th width="183.5234375">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td>subset</td><td>Текущее подмножество FSM</td></tr><tr><td><code>state</code></td><td>Текущее FSM-состояние юнита.</td></tr><tr><td><code>currentStuff</code></td><td>Тип объекта, находящегося в руках.</td></tr><tr><td><code>pickingStuff</code></td><td>Тип объекта, который юнит поднимает с земли.</td></tr><tr><td><code>mountingStuff</code></td><td>Тип объекта, который юнит берёт в руки.</td></tr><tr><td><code>counter.*</code></td><td>Состояния внутренних счётчиков FSM.</td></tr><tr><td><code>idleState</code></td><td>Текущее выбранное состояние в блоке <code>idle</code>.</td></tr><tr><td><code>idleSemaphore</code></td><td>Состояние семафоров, влияющих на выбор idle-анимаций.</td></tr><tr><td><code>pose*</code><br><code>aimer*</code><br><code>fire*</code></td><td>Анимации, выбранные для текущей позы юнита (в т.ч. прицеливания и стрельбы).</td></tr></tbody></table>

### Секция `animation`

<figure><img src="https://lh7-us.googleusercontent.com/O3I6fdyrr_D-ZSwOuYFS-PfwEUoN353qqODC22Og2dCQvPImK3G8vnIATSWco60GMbv6oo0erJXwrf8_UZG40yjIBhzVsZ_5-Cko_2b-6HWj7xQEKBMy6NQ1Xa1YofHozbwxFkczcH0oKK03iicE83c" alt=""><figcaption></figcaption></figure>

В этой секции отображается информация о текущих и последних анимациях юнита.

<table><thead><tr><th width="216.95703125">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td>Список анимаций</td><td>Названия проигрываемых анимаций.<br>Анимации, которые уже проиграны, отмечены <code>*</code>.</td></tr><tr><td><code>frame</code></td><td>Текущий кадр анимации.</td></tr><tr><td><code>of</code></td><td>Общее количество кадров в анимации.</td></tr><tr><td><code>speed</code></td><td>Скорость воспроизведения анимации.</td></tr><tr><td><code>smoothFrames</code></td><td>Количество кадров, на которые выполнялся blend-переход между анимациями.</td></tr></tbody></table>

{% hint style="info" %}
В отладочной версии игры в `game.log` выводятся ошибки, связанные с отсутствием нужных анимаций. Такие строки помечаются тегом `[ANM]`.\
Работает только для юнитов типа `human`.
{% endhint %}

### Секция `entity`

<figure><img src="https://lh7-us.googleusercontent.com/uxQFz0jCE_3w9hh5bF6F3mloEw8inIqJxyPHgeRCxQI7MfAhB2cO-fG8tBVMAwfnsSrA6Q_qsHfeceiqLLqeFIjI985P7SYtRy7MXjwbcGfDWDYlb_bn9lfjZWa3NHQGGxDlhMaRI-yYd4T3kFEEpN0" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="234.60546875">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><code>kill_flags</code></td><td>Флаги, определяющие способ убийства юнита.</td></tr><tr><td><code>last_dying_animation</code></td><td>Анимация смерти, сохранённая движком. Используется для корректной позы после загрузки.</td></tr></tbody></table>

***

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

### **Отображение костей скелета**

* Включить отображение костей скелета - консольная команда `v_bones 1`
* Быстрое включение/выключение - комбинация клавиш `ALT + S`.
* Цветовая маркировка осей:
  * X — красный
  * Y — зелёный
  * Z — синий

### **Фильтрация костей по имени**

Для отображения только части костей по имени используется консольная команда `v_bonesNames "<name>"`

<details>

<summary>Пример использования консольной команды v_bonesNames</summary>

```
v_bonesNames "body"
v_bones 1
```

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FoBxjd0eHuvAjRBVtiF53%2Fv_bones.jpeg?alt=media&amp;token=9792dc80-4de8-4cbf-9d10-20b8f13358b5" alt=""><figcaption></figcaption></figure>

Отобразятся только кости c именем `body` (туловища\корпуса)

</details>

### **Отображение точек привязки на модели**

Для отображения именованных точек привязки (например, для FX или объектов в руках), используется консольная команда `v_boarder 1`

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FBAGQ3WkhxdS5mTfnIwOA%2Fv_boarder.JPG?alt=media&amp;token=b3daf951-83f7-418c-ad0b-bbafd1f8bb75" alt="Результат консольной команды v_boarder 1 в редакторе Gem RTS"><figcaption></figcaption></figure>
