1 слайд Добрый день, Уважаемые члены комиссии. Меня зовут Загарских Александр Сергеевич. Я хочу представить вашему вниманию проделанную мною работу по разработке системы скелетной анимации. 2 слайд На данном слайде вы можете видеть цели моей работы 3 слайд Скелетная анимация может применяться в таких областях как тренажеры и симуляторы, игры и интерактивные галереи. Причем время расчета каждого кадра не должно превышать 50мс, иначе изображение генерируемое программой будет некомфортным для восприятия пользователем 4 слайд Все модели в трехмерном пространстве задаются в виде треугольников вершины которых аппроксимируют поверхности данных моделей. И тут то и встает вопрос, как анимировать все это большое количество вершин? 5 слайд Существует два способа задания анимации это повершинная при которой отдельно для каждой вершины задается своя позиция и скелетная при которой все вершины модели привязываются к определенным сочленениям скелета и вращения и позиции сочленений будут задавать новые позиции вершин. анимацию также можно разделить на два вида, это анимация по ключевым кадрам при которой вся анимация представляется в виде последовательности кадров хранящих позиции и вращения сочленений, расположенных в хронологическом порядке. И второй вид это процедурная анимация при которой новые позиции и вращения сочленений рассчитываются с помощью процессора, к примеру рэг долл. 6 слайд Саму скелетную анимацию можно разделить на три части. Это скелет, который представляет собой дерево сочленений. Скининг т е определение позиций вершин модели относительно сочленений в зависимости от веса сочленения на данную вершину. И способ задания конечной позиции и вращения сочленения. прямая кинематика это способ, при котором глобальные координаты сочленения высчитываются с помощью локальных координат, а при инверсной кинематике соответственно локальные координаты высчитываются из глобальных. В данной работе реализован только способ прямой кинематики. 7 слайд В данной работе сочленения представляются в виде глобальных позиции и ращения, локальных позиции и вращения относительно родительского сочленения и родительского сочленения. А вершины в виде позиции, нормали и индексов сочленений которые влияют на данную вершину и веса этих сочленений. Смысл формулы скининга в том что вначале позиция вершины в момент связывания переводится в пространство сочленения также в момент связывания, после чего позиция вершины переводится обратно в пространство объекта, но уже относительно нового положения и вращения сочленения, полученный таким образом вектор домнажается на вес данного сочленения и сумма всех полученных таким образом векторов даст новую позицию вершины. 8 слайд Система виртуальной реальности для которой разрабатывалась система скелетной анимации состоит из следующих систем, при этом только первые четыре системы участвуют в скелетной анимации. 9 слайд Для создания анимации по ключевым кадрам решено было использовать продукт компании Autodesk Maya 2008 из за ее открытости с помощью которой можно легко подстраивать ее под свои нужды. Благодаря этому был написан плагин, который позволяет экспортировать модели и анимацию созданные в Maya в наш проект. 10 слайд На этом слайде вы можете увидеть структуру формата файла ESX в который записывается вся необходимая информация о модели и анимации. 11 слайд На данном слайде вы можете видеть диаграмму потока данных созданной мной системы анимации. Из Maya все модели и анимация посредством плагина экспортируются в файлы формата ESX и попадают в геометрическую систему. В игровой системе находятся объекты персонажей. Каждый объект хранит все анимации и в зависимости от состояния персонажа объект определяет, какую анимацию необходимо проигрывать. Из системы ввода в игровую систему поступают сигналы о нажатии пользователем клавиш клавиатуры или мыши и в зависимости от того какая клавиша была нажата объект персонажа изменяет состояние. Из игровой системы в геометрическую поступает информация о текущем положении и вращении сочленений персонажа, на основе которых геометрическая система создает массив вершин, который подается на вход графической системы, где он соответствующим образом обрабатывается и выводится на экран. В особом случае, когда появляется необходимость в физике тряпичной куклы, объект персонажа посылает соответствующий сигнал в геометрическую систему, которая создает массивы вершин и передает их на вход физической системы. В физической системе на основе этих массивов строятся лимбы, которые соединяются физическими сочленениями. Физическая система рассчитывает новые позиции и вращения лимбов и посылает их на вход игровой системы. Игровая система передает их на вход геометрической системы и тд 12 слайд персонаж может находится в нескольких состояниях, плавный переход из одного состояния в другое осуществляется за счет того что у каждой анимации есть свой вес и при переходе вес текущей анимации уменьшается с единицы до нуля, а вес новой анимации с нуля до единицы. 13 слайд В данной работе была также реализована физика тряпичной куклы. Расчет столкновений лимбов осуществляется в PhysX. Для генерации лимбов выбираются те вершины у которых вес сочленения, для которого создаётся лимб больше определенного параметра. Далее все лимбы соединяются сочленениями PhysXа и для каждого сочленения выставляются ограничения, выставленные еще в Maya. В итоге получается такая вот тряпичная кукла. 14 слайд на данном слайде вы можете видеть результаты моей работы и дальнейшие пути развития. и на последок хотелось бы показать сам результат. ALT+TAB на этом у меня всё, благодарю за внимание.