Решили: экранный размер юнита задаётся масштабом узла визуала (Visual Sprites/BoneVisual),
а не spritePixelsToUnits в импорте частей и не правкой клипов. Фигура тира 128 при единичном
масштабе занимает 1.248 мировых единицы; старый визуал давал 1.610, поэтому BoneVisual получает
1.290 и новая фигура встаёт в те же 1.609, под которые писались клипы.
Почему именно там:
- Импорт трогать нельзя: кости рига заданы в мировых единицах под текущие спрайты, и смена
spritePixelsToUnitsразведёт кости со спрайтами — фигура развалится тем же способом, что и от неснятой позы покоя, только уже необратимо для всех клипов. - Клипы трогать не нужно: повороты масштабонезависимы, а позиционные кривые (
Hipsm_LocalPosition, размах 0.028 вSprint) — локальные, поэтому едут вместе с масштабом родителя. Просадка таза остаётся в той же пропорции к фигуре, и это ровно то, чего хотелось. - Масштаб на узле визуала — уже существующее место: старый вид держал там 2.481.
Грабли:
Transform.Findищет только прямых детей и на составном пути молча возвращает null. Первый замер масштаба дал 1.000 вместо 2.481 (BoneVisualлежит вVisual Sprites/), и число ушло бы в расчёт. Искать рекурсивно или считатьlossyScale.- Сокеты
Hit / Head / Feet / Shot Pointживут в префабе ВИДА, а не в риге —RigSweepругается «SOCKET MISSING», потому что смотрит риг. Это не дефект сборки, я приняла это за дефект и записала в отчёт зря. - Список частей в
SkeletalBodyVisualне обновляется сам. У новой фигуры 20 рендереров против 16 у болванки (появились шея, глаза и две кисти), и список нужно пересобрать — иначе силуэт, осколки смерти и вспышка работают по старому набору.
Владелец правды: Assets/_Project/Prefabs/Units/UnitView_Human128.prefab (масштаб визуала и
список частей), Assets/_Project/Prefabs/Bones/BoneUnit_Human128.prefab (риг),
Assets/_Project/Scripts/Presentation/Body/SkeletalBodyVisual.cs (порядок и список частей).