Решили: переименование узлов и перестройка иерархии — два РАЗНЫХ прохода RigMigrate, а не один. Хват называется Weapon_R / Weapon_L, а не по содержимому. Легаси-риги едут вместе с базой.

Почему: переименование не двигает fileID, поэтому 112 подгонок арта в варианте Storybook переживают его нетронутыми, а в префабах меняются только строки m_Name — вид не может поехать по построению, и это проверяется одной командой. Перестройка же удаляет и перевешивает узлы, а значит теряет override-ы и требует их пересчёта. Слитые в один проход, они дали бы один диффов ком, в котором «арт уехал» не отличить от «имя не то». Цена разделения — между проходами инструменты рига слепы (RigNaming узнаёт сустав по префиксу Rotation Point (), и код правится один раз, после второго прохода: учить его читать оба состояния значило бы завести второго владельца конвенции.

Сказано: «Погнали? 128 и spear - это легаси, но пока НЕ удаляем. Пусть живет временно. Есть вопросы?» (04.08.2026, сессия ca4f0e10).

Грабли:

  • Human128 — самостоятельный риг, но сидит на ОБЩИХ клипах, контроллере и аватаре. Переименование одной базы увело бы клипы на новые пути, а он остался бы со старыми именами — анимация умерла бы молча. Переименован тем же списком; двух запястий у него нет, и RigMigrate честно печатает «rename skipped».
  • BoneUnit_Spear оказался вариантом Standart, а не третьего префаба, как считалось вчера, и ходит по тем же путям — исключать его клип из миграции было бы ошибкой.
  • Шесть stale у Spear — врождённые, не от миграции. Он удаляет Sword и Shield как override, а маски базы на них ссылаются; запись маски в никуда Unity игнорирует.
  • Имя узла по содержимому (Shield_L) — ловушка на будущее: кит с двумя мечами потребовал бы переименования узла, то есть ещё одной миграции клипов. У Spear под Weapon_R уже висит Spear.

Владелец правды: BoneUnit_Standart.prefab (имена суставов), RigMigrate.cs (перенос путей), RigNaming.cs (конвенция — правится после второго прохода).