Решили: размер осколка смерти задаётся ДОЛЕЙ РОСТА тела (CombatFeelConfig.ShatterShardSize, в ассете 0.10), а не числом исходных пикселей спрайта. Мера — длина, и в локальные единицы каждой части её переводит DeathShatter по её же lossyScale. Мерой роста для ВСЕХ частей служит габарит тела целиком, а не своей части.

Почему: пиксель исходника не является мерой длины. У покадрового бестиария весь юнит занимает 48 px, у частей скелетного «сторибука» одна кисть — 112 px, клинок — 585 px при PPU 1000. Один и тот же «чанк в 6 px» давал у первого кусок в восьмую часть тела, у второго — крошку в 0.006 мировых единиц при росте юнита 0.694. Замер по живому префабу BoneUnit_Storybook: 15 147 осколков на одну смерть (по 20 частям; у клинка и волос сетка упиралась в потолок 48×64), после перевода на долю роста — 54 при 0.12 и около сотни при 0.10. Отвергнутая альтернатива — «уменьшить потолок сетки»: потолок уже однажды тихо съедал настройку, и вернуть его значило бы сделать ручку снова мёртвой, не тронув причину.

Рост берётся у тела целиком намеренно: считать долю от собственной части значит дробить кисть на столько же кусков, на сколько торс, то есть получать куски несопоставимого размера при общем параметре.

Сказано: «Поскольку щас у юнита стало много деталей - у нас стало СЛИШКОМ много частиц при смерти. И они слишком, слишком мелкие.» (2026-08-04, сессия 06e45474).

Грабли: минимум ячеек по оси опущен с 3 до 1 — часть мельче осколка обязана улететь ЦЕЛЫМ куском. Прежний минимум насильно резал кисть на девять частей, из-за чего мелкие детали крошились мельче торса при одном и том же размере чанка. Снап границ на пиксель-сетку исходника при этом сохранён: он даёт куски пиксель-персонажа, а не вектор-слайсы, и на не-пиксельном арте просто не мешает.

Владелец правды: ShatterMesh.Build, DeathShatter.Play, SkeletalBodyVisual.PlayShatter, тест ShatterMeshTests.SameWorldSize_DifferentArtResolution_GivesSameShardCount.