Look AT + Animation Delta поверх для сохранения аннимации
Всем привет это небольшое дополнение к прошлй статье про LooK AT.
Допустим у нас есть вот такой Look для головы:
Мой телеграмм канал где я выкладываю стать и стримы пр оанимацию и не только
https://t.me/Unreal_and_Animation
Вроде хорошо работает -однако , наш Look AT полностью перезаписывает анимацию головы. Снимем нашу анимационную дельту.
Для это выделим кость головы и возьмем с нее трансформы.
Нам понадобятся 2 ноды (Get Transform Bone) , одна с включенной галочкой Initial , вторая без нее:
Когда галочка СТОИТ
Нода возвращает начальную, стандартную трансформацию кости. Это её поза по умолчанию из ассета скелета (T-поза или A-поза).
Это значение статично и не меняется, какая бы анимация ни проигрывалась. Оно служит "точкой отсчёта".
Дальше
Используем ноду Make Relative
С помощью ноды Make Relative мы находим разницу между изначальной позой (Т-позой) и текущей анимированной позой. Этот результат и есть "чистое" изменение, добавленное анимацией.
И сохраним даные в переменную Animation Delta.
Важный аспект я беру Get Transform и у меня там стоит LocaL Space
Что это значит ? это означает что данные берутся в пространстве той кости к которой голова дочерния ( сразу скажу можно использовать и Global Space - однако результат будет чуть другим)
Global Space в данном случаем это позиция головы относительно 000 координат рига
Идем дальше , после ноды AIM
Берём ноду Get Transform - Bone. Она получает данные с нашей кости головы уже после того, как к ней применилась логика Aim.
Берём нашу переменную AnimationDelta и комбинируем (умножаем) эти два трансформа. Тем самым мы получаем итоговый результат: поза от Aim + вращение от нашей анимации.
Дальше мы это ставим в Set Rotation Bone
Так же здесь хочу обратить ваше внимание что Space в 2 нодах : у меня стоит в Global Space - - такой сетап позволил получить результат какой мне нужен