Решили: позу клипа в редакторном стенде раскладываем ПО КРИВЫМ вручную
(AnimationUtility.GetCurveBindings → GetEditorCurve → локальные позиция/поворот/масштаб), а
корень путей ищем по самим костям — проверкой первого пути клипа на каждом кандидате.
Почему: оба очевидных способа не работают, и оба молча.
clip.SampleAnimation(go, time)вне play-mode генерик-клип по костям не раскладывает вовсе.AnimationMode.SampleAnimationClipраскладывает, но не видит объекты сHideFlags.HideAndDontSave— а стенд состоит именно из таких, чтобы не мусорить в сцене. Плюс режим глобальный: он перекрасил бы инспектор и мешал бы обычной работе с анимацией.
В обоих случаях поза просто остаётся префабной, ошибки нет нигде, и выглядит это как «анимация не играет». Ручное чтение кривых от этого свободно и ничего не включает глобально.
Корень путей ищется по костям, а не по носителю Animator, потому что у сторибук-вида аниматор
висит на Body, а скелет лежит под BoneVisual: от аниматора пути клипа (Hips/Torso/…) не
разрешаются. Имена узлов у юнитов свои, а совпадение пути не врёт — поэтому признак именно такой.
Сказано: «В эффект дуга за клинком реальной анимации для просмотра на юните (возьме атаку 1), целиком от начала атаки до конца, а не время лишь дуги» (2026-08-06, сессия d760c178).
Грабли: цепочка из трёх молчаливых промахов подряд — сэмплирование не туда, сэмплирование не тем, и снимок кадра, не применявший фазу вовсе (её ставили только тик проигрывания и отрисовка окна). Каждый по отдельности выглядел как «эффект сломан», хотя ломался инструмент вокруг него. Признак, по которому это ловится быстрее всего: замерить не картинку, а ЧИСЛО — положение острия при разных фазах. Три одинаковых значения подряд сразу говорят, что поза не меняется, и снимают вопрос с самого эффекта.
Владелец правды: Assets/_Project/Scripts/Presentation/Editor/PostFxLabWindow.cs
(ClipSampler, FindClipRoot).