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

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

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

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

<figure><img src="/files/1Wz2EiMNSsKkf8UZ0kwL" 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="/files/1XS5KfLD7PhmmWWXdEd9" alt=""><figcaption></figcaption></figure>

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

</details>

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

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

<figure><img src="/files/buP4hncUb6iTOCwWyZLc" alt="Результат консольной команды v_boarder 1 в редакторе Gem RTS"><figcaption></figcaption></figure>


---

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