> 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/animation_selector/vybor-pozy.md).

# Выбор позы актера human

Логика выбора позы описана в файле `\properties\animation_selector\`**`human_pose_selector.set`**

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

**Типы поз:**

* `snipe` - выглядывая через забор или из окопа;
* `squat` - сидя;
* `stand` - стоя;
* `lie` - лежа.

Для каждого из четырех **запросов** с помощью условных конструкций блока `if` описывается логика выбора конкретной позы.

## Набор анимаций позы

Каждой позе юнита human соответствует три набора анимаций:

* `aim` - прицеливание;
* `fire` - анимация отдачи от выстрела;
* `idle` - положение, из которой стартуют idle-анимации

В каждом из наборов `aim`, `fire`, `idle` может быть указана либо одна анимация для всего тела целиком, либо две анимации (одна для нижней части тела и одна для верхней).

## Конфигурация Селектора поз

Для указания конкретного набора анимаций, соответствующего выбранной позе используется блок `{pose}`.\
Так же можно использовать выбор набора анимаций по FSM-счетчику `pose` .

> **Шаблон файла Селектора поз**
>
> ```
> {stand
>     {if <condition>
>         {pose
>             {aim ["<anm_aim" | "<anm_aim_down>" "<anm_aim_up>"]}
>             {fire ["<anm_fire" | "<anm_fire_down>" "<anm_fire_up>"]}
>             {idle ["<anm_idle" | "<anm_idle_down>" "<anm_idle_up>"]}
>         }
>     }
>     [...]
>     {pose [...]}
> }
> {snipe [...]}
> {squat [...]}
> {lie [...]}
> ```

Указывать анимации для набора `fire` не обязательно. В этом случае стрельба будет происходить без анимаций тела юнита.

Если указать только анимации для набора `aim`, тогда анимации `idle` будут браться из набора `aim`**.**

Можно указать только анимации для набора `idle`, если поза не предполагает возможности прицеливания и стрельбы.

<details>

<summary>Пример выбора позы с указанием конкретного набора анимаций</summary>

```
{pose
    {aim "pose_stand_fire_mgun_down" "pose_stand_fire_mgun_up"}
    {fire "stand_fire_mgun_down_1" "pose_stand_fire_mgun_up_1"}
    {idle }
}
```

</details>

<details>

<summary>Пример выбора позы по FSM-счетчику <code>pose</code></summary>

```
{switch_by_counter "pose"
	{common
		{aim "pose_stand_fire_mgun_down" "pose_stand_fire_mgun_up"}
		{fire "stand_fire_mgun_down" "stand_fire_mgun_up"}
	}
	{pick 1}
	{pick 1
		{aim "pose_stand_fire_mgun_down_1" "pose_stand_fire_mgun_up_1"}
		{fire "stand_fire_mgun_down_1" "pose_stand_fire_mgun_up_1"}
	}
	{pick 1
		{idle "pose_stand_look_around_gun_1"}
	}
	{pick 1
		{idle "pose_stand_gun_aside_2"}
	}
}
```

</details>
