Скелетная анимация автор: Загарских Александр Сергеевич Научный руководитель: Безгодов Алексей Алексеевич Цель работы • Изучить существующие методы создания, задания и воспроизведения анимации • Спроектировать систему анимации человекоподобного персонажа для системы виртуальной реальности • Реализовать систему анимации • Наметить дальнейшие пути развития системы 2 Предметная область • Тренажеры и симуляторы • Игры • Интерактивные галереи • Особенности: – Время расчета кадра < 30-50 мс 3 Способы задания трёхмерных моделей 4 Анимация • Анимация – последовательность визуальных изображений, воспроизведенных с определенной частотой. • Способы задания анимации: – Повершинная – Скелетная • Виды анимации: – Анимация по ключевым кадрам – Процедурная анимация 5 Скелетная анимация • Скелет • Скининг • FK – IK FK – forward kinematic IK – inverse kinematic 6 Математические основы скелетной анимации Математическое представление сочленения jx ( P, q, dP, dq, j); Математическое представление вершины •V P, n, j1 , j2 , j3 , j4 , w1 , w2 , w3 , w4 ; Скининг 4 P orient ( ji ) bind _ orient ( ji ) (bind _ position(V ) bind _ position( ji )) position( ji ) wi ; i 1 Скининг для GPU P bind _ position(V ) M; M T1 R1 T2 R 2 ; 7 Программная реализация • Состоит из следующих систем: – – – – – – Графической Физической Геометрической Игровой Звуковой Скриптовой • Middleware: – – – – – – – Direct3D 9 HLSL PhysX rapid_xml OpenMaya FMOD Lua • 2.6 Mb code • 150 Mb art 8 Инструмент для создания анимации • Autodesk Maya 2008 – Легко расширяемый интерфейс • Собственноручно разработанный plug-in для экспорта геометрии и анимации 9 ESX – формат файла для хранения моделей и анимации <scene> <scene_node name="world" class="" affector="" position="0 0 0 1" orient="0 0 0 1"> <scene_node name="pPyramid1" class="mesh" affector="" position="0 0 0 1" orient="0 0 0 1"> <mesh> <vertices> <vertex p="x y z" n="x y z" c0="1 0 0 1" uv0="u v" jw="w1 w2 w3 w4" ji="j1 j2 j3 j4"/> ... </vertices> <triangles> <triangle inds="0 1 2"/> ... </triangles> <joints> <joint name="joint1" parent="-1" p="x y z" orient="w x y z" def_p="x y z" bind_pos="x y z" cons_min="α β γ" cons_max=" α β γ "/> ... </joints> </mesh> </scene_node> </scene_node> </scene> 10 DFD в системе анимации Maya Plug-in Input System Geometry Engine Game Rendering Engine PhysX 11 Объект персонажа • Объект персонажа – часть игровой системы • Состояния объекта: – – – – – – – Бег Бездействие Стрельба Прыжок Падение Ранение Смерть Анимация бездействия Анимация бега 12 Физика тряпичной куклы (RagDoll) • Физика • Генерация лимбов • Настройка сочленений 13 Результаты и выводы • Изучены существующие методы создания, задания и воспроизведения анимации • Спроектирована и реализована система анимации человекоподобного персонажа для системы виртуальной реальности • Дальнейшие пути развития системы – Инверсная кинематика (IK) – Полностью процедурная анимация персонажа на базе IK – Перенос вычислений на GPU 14