Найти в Дзене
Stronghold of gamedev

Игры изнутри : Анимация

Более десятка статей о анимации, в настоящий момент находящихся на канале, моя рука настучала по клавишам. Время останавливаться? Нет. Рассказав о куче занятных мыслей и сотворив несколько демок, я все вскользь упоминал фундаментальные технические особенности этой области геймдева. Время вернуться к истокам. Что содержит в себе файл с анимацией?
Как их воспринимает движок и что способен с ними делать?
В этой статье. Данные, что несет файл Допустим, сотворив персонажа со скелетом и анимацией, сохраняем его в стандартный fbx формат, что в нем содержится? Варианты визуализации прыгают от пакета к пакету, но движок как правило видит кости пустыми игровыми объектами со спектром настроек. Да, ничто не мешает заставить пятку двигаться за косточкой плеча, но надо ли оно? Раскидав косточки по модели, можно настроить автоматические весы. Ближайшие к косточке вершины окажутся в рабстве со степенью влияния 1, а спорные территории с соседними косточками, поделит справедливая математика. Что видит
Оглавление

Более десятка статей о анимации, в настоящий момент находящихся на канале, моя рука настучала по клавишам. Время останавливаться? Нет.

Рассказав о куче занятных мыслей и сотворив несколько демок, я все вскользь упоминал фундаментальные технические особенности этой области геймдева.

Время вернуться к истокам. Что содержит в себе файл с анимацией?
Как их воспринимает движок и что способен с ними делать?
В этой статье.

Данные, что несет файл

Допустим, сотворив персонажа со скелетом и анимацией, сохраняем его в стандартный fbx формат, что в нем содержится?

  • Модель. Иногда. Ну это можно пропустить, ибо не касается анимации.
  • Косточки. А именно координаты, поворот и возможно длина.
    Длина может быть полезна для визуализации последней косточки в скелете, длина же остальных рассчитывается от начала предыдущей - до начала следующей. Так же длина полезна для автоматической настройки весов.
Разные визуализации одной магии
Разные визуализации одной магии

Варианты визуализации прыгают от пакета к пакету, но движок как правило видит кости пустыми игровыми объектами со спектром настроек.

  • Весы. Подразумевается степень влияния косточки на вершину/вершины. Допустим у косточки плеча под командованием кусок геометрии модели, что визуально идентичен плечу. Вершины замертво прибиты к кости и двигаются за ней.
-3

Да, ничто не мешает заставить пятку двигаться за косточкой плеча, но надо ли оно? Раскидав косточки по модели, можно настроить автоматические весы. Ближайшие к косточке вершины окажутся в рабстве со степенью влияния 1, а спорные территории с соседними косточками, поделит справедливая математика.

  • Координаты, повороты и масштабирование косточек на покадровом таймлайне. Это и есть анимация.

Что видит движок?

Забыл уточнить, что кроме анимации существует стандартная позиция. Например T-образная, в которой очень удобно было расставлять косточки. Они же поворачиваются в нужные позиции когда никакой анимации не проигрывается.

-4

Сама же анимация является последовательностью поворотов, передвижений и масштабирований костей, но не совсем.

Последовательность зафиксирована в ключевых кадрах, в них лежит информация о изменении положений кости, это голые цифры, меж которых алгоритм создает промежуточные положения.

Да, алгоритм в 3D пакете и алгоритм в движке идентичны, ибо это всего лишь математическая формула линейной интерполяции и нагруженность системы зависит от обилия расчетов, например :

Первый ключевой кадр содержит повороты (0,0,0), но рука решила подняться и на шестидесятом кадре повороты (0,60,0). За 60 кадров рука плавно изменит свой поворот и не нагрузит систему, но что если...

Первый ключевой кадр - (0,0,0), второй ключевой кадр (15 кадр) - (0,15,0), третий (30) - (0,30,0), четвертый (45) - (0,45,0) и наконец пятый (60)-(0,60,0)
Анимации получатся абсолютно одинаковыми, однако вычислительная нагрузка будет серьезно отличаться и не в пользу последнего.

И это все дает понимание того, что движок приспособлен работать с голыми цифрами и вполне способен их менять под свои нужды.

Оффтоп
Наконец сделал группу ВКонтакте. Самые интересные и полезные статьи с канала будут и там, а еще там там будут мэмы, анонсы, голосовалки и обсуждения. Почему их пока нет? Потому что я там один :)))
Важным поводом туда подписаться вижу суперпозицию "под рукой" и посты в фидленте, уведомляющие о выходе новых статей.
Дзену до такого далеко. Собстна
группа.

Еще о анимации :
Основы кинематики (обычная записанная анимация)
Основы инверсной кинематики (анимация, созданная движком)
Как движок смешивает анимации (много гифок)