Решили: в потоке (AttackPhase.Channel) границы взмаха ставит ФАЗА СИМА, а не разметка клипа: пока идёт поток, взмах идёт. След дуги ограничен последними SwingArcMaxSpanDeg градусами пути (270) — начало сектора едет за клинком, когда сектор перерос свою длину.

Почему: клип канала крутится оборотами, и окно StrikeStart..StrikeEnd внутри него кончается на каждом обороте. Дуга гасла между ударами вращения — хотя клинок не останавливался ни на кадр, — и заново не заказывалась, потому что номер взмаха не менялся (сим шлёт начало атаки один раз на вход в поток). То есть у «Вихря» дуга существовала ровно один оборот. Отвергнуто: заказывать новую дугу на каждый тик канала — тогда непрерывное вращение распалось бы на отдельные росчерки, а Макс просит обратного: «от начала комбо и до конца непрерывная линия».

Ограничение угла нужно не для красоты: сектор длиннее полного оборота перекрывает сам себя, а шейдер считает долю «от начала дуги до текущего клинка» — на таком секторе доля перестаёт быть монотонной, и хвост рисуется кусками.

Сказано: «Я хочу чтобы у Вихря, например, если будет несколько разных атак - это был бы едины рисунок. От начала комбо и до конца непрерывная линия, например. Щас так и будет?» (2026-08-04, сессия 06e45474).

Грабли: для серии из РАЗНЫХ атак (комбо) единого следа пока не будет и сделать его нечем: механики комбо в симе не существует — ни счётчика, ни события, ни поля в снимке (проверено грепом 04.08.2026). Соединять две соседние атаки можно было бы только догадкой по времени, а это ровно тот класс решений, который в этот же день был снят как костыль. Появится комбо в симе — дуга получит тот же приём, что получил поток: владельцем непрерывности станет серия, а не отдельный взмах.

Владелец правды: UnitView.TryGetSwingProgress (ветка канала), SwingArcVfx (окно следа), CombatFeelConfig.SwingArcMaxSpanDeg.