> 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/animacii-smerti.md).

# Выбор анимации смерти

Логика выбора анимаций смерти для юнита типа human хранится в файле `\properties\animation_selector\`**`human_death.inc`**

Селектор обрабатывает запросы, имена которых соответствуют обстоятельствам смерти.

**Варианты запросов для выбора анимаций смерти:**

* `stand_dying` - смерть стоя;
* `squat_dying` - смерть сидя;
* `lie_dying` - смерть лежа;
* `swim_dying` - смерть во время плавания;
* `corpse_drop` и `corpse_drag` - падение и протаскивание трупа во время смерти;
* `default_dying` - специальный запрос, который делается 1 раз и запоминает, что вернулось. По этому запросу должна быть анимация смерти, которая будет проигрываться, если ничего другого не нашлось. Она нужна, чтобы не было мертвых стоящих солдат после загрузки.

### Выбор анимаций смерти

После выбора **запроса на анимацию** (перечислены выше) в условных конструкциях блока `if` проверяются разные варианты обстоятельств смерти.

**Варианты проверок:**

* [флаги обстоятельства смерти](/gem-rts-v1-ru/animacii/anymatsyonnaia_systema_yunytov/animation_selector/usloviya-dlya-aktera-human.md#spravka-po-flagam-obstoyatelstv-smerti-aktera-human) - `human_kill_flags`;
* тип территории - `terrain_pp`;
* проверка на предметы экипировки во время смерти - `human_stuff`.

Одной из проверок по **флагам обстоятельств смерти** является проверка направления: `front` или `back`.\
Если проигрыванию анимации мешает препятствие, то дальше выбор анимации идёт по списку:

1. Берется правильное направление, которое указано в значении параметра `human_kill_flags` .
2. Флаги направления (`front` и `back`) меняются местами.
3. Используется вариант без флагов направления - предполагается, что в этом варианте выберется анимация, где солдат падает на месте и влетит в препятствие.

Основным способом указания анимации является [случайный выбор анимации](https://docs.bestway.com.ua/gem-rts-v1-ru/animacii/anymatsyonnaia_systema_yunytov/animation_selector/pages/wZsGv2KVqKOWehZQ6D2N#id-2.-sluchainyi-vybor-animacii) смерти по ее весу из указанного списка анимаций.

<details>

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

```
{stand_dying
...
	{if human_kill_flags "cover_in_trench"
		{random_select
			{weight 1 "stand_die_trench_1"}
			{weight 1 "stand_die_trench_2"}
			{weight 1 "stand_die_trench_3"}
		}
	}
	[...]
	
}
```

</details>

<details>

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

```
{squat_dying 
    {if human_kill_flags "front" 
        {if human_kill_flags "blast" 
            {random_select 
                {weight 1 "death_from_explosion_front"} 
                {weight 1 "death_from_explosion_front02"}
                {weight 0.5 "stand_die_back_5_blast"} 
                {weight 1 "stand_die-force_back_1"} 
                {weight 1 "stand_die-force_back_2_far"} 
                {weight 1 "stand_die-force_back_3_far"} 
            } 
        } 
        {random_select 
            {weight 1 "squat_die"} 
            {weight 1 "squat_die_back_1"} 
            {weight 1 "squat_die_back_2"} 
            {weight 1 "squat_die_force-back"} 
        }
    } 
    {if human_kill_flags "back" 
        {if human_kill_flags "blast" 
            {random_select 
                {weight 1 "death_from_explosion_back"} 
                {weight 1 "death_from_explosion_back02"} 
                {weight 0.5 "stand_die_front_1_blast"} 
                {weight 1 "stand_die-force_front_1"} 
                {weight 1 "stand_die-force_front_2"} 
                {weight 1 "stand_die-force_front_3_far"} 
                {weight 1 "stand_die-force_front_4_far"} 
            } 
        }
    }
    [...]
}
```

</details>

### Поведение объекта human после смерти

После смерти движок располагает труп по поверхности.\
Чтобы после завершения анимации смерти положение тела юнита сохранялось без изменений (например, при смерти в окопе), в настройках анимации используется свойство\
`{props "dont_update_placement_after_death"}`.\
Его можно указать в файле `properties\animation\human\human_anm.ext` или в любом списке настроек анимаций.

<details>

<summary>Пример настройки анимации смерти в human_anm.ext</summary>

```
{sequence "stand_die_trench_1" {speed 0.9} {props "dont_update_placement_after_death"} [...]}
{sequence "stand_die_trench_2" {speed 0.9} {props "dont_update_placement_after_death"} [...]}
{sequence "stand_die_trench_3" {speed 1.2} {props "dont_update_placement_after_death"} [...]}
```

</details>
