Решили: в потоке (AttackPhase.Channel) границы взмаха ставит ФАЗА СИМА, а не разметка клипа: пока
идёт поток, взмах идёт. След дуги ограничен последними SwingArcMaxSpanDeg градусами пути (270) —
начало сектора едет за клинком, когда сектор перерос свою длину.
Почему: клип канала крутится оборотами, и окно StrikeStart..StrikeEnd внутри него кончается на
каждом обороте. Дуга гасла между ударами вращения — хотя клинок не останавливался ни на кадр, — и
заново не заказывалась, потому что номер взмаха не менялся (сим шлёт начало атаки один раз на вход в
поток). То есть у «Вихря» дуга существовала ровно один оборот. Отвергнуто: заказывать новую дугу на
каждый тик канала — тогда непрерывное вращение распалось бы на отдельные росчерки, а Макс просит
обратного: «от начала комбо и до конца непрерывная линия».
Ограничение угла нужно не для красоты: сектор длиннее полного оборота перекрывает сам себя, а шейдер считает долю «от начала дуги до текущего клинка» — на таком секторе доля перестаёт быть монотонной, и хвост рисуется кусками.
Сказано: «Я хочу чтобы у Вихря, например, если будет несколько разных атак - это был бы едины рисунок. От начала комбо и до конца непрерывная линия, например. Щас так и будет?» (2026-08-04, сессия 06e45474).
Грабли: для серии из РАЗНЫХ атак (комбо) единого следа пока не будет и сделать его нечем: механики комбо в симе не существует — ни счётчика, ни события, ни поля в снимке (проверено грепом 04.08.2026). Соединять две соседние атаки можно было бы только догадкой по времени, а это ровно тот класс решений, который в этот же день был снят как костыль. Появится комбо в симе — дуга получит тот же приём, что получил поток: владельцем непрерывности станет серия, а не отдельный взмах.
Владелец правды: UnitView.TryGetSwingProgress (ветка канала), SwingArcVfx (окно следа),
CombatFeelConfig.SwingArcMaxSpanDeg.