Всем привет,сегодняшняя тема урока - костная анимация.Ранее в этом же разделе был урок по FBF (Frame By Frame) анимации - что означало по кадровая анимация.Сегодня мы разберем новый вид анимаций -более распространенный и более удобный в использовании и совместимый с кодом и скриптами - скелетный.В чем же превосходство скелетной анимации и недостаток FBF анимации ,сегодня мы это и узнаем. Так как наша тема непосредственно связанна с игровым двигателем 3d Rad все недостатки и преимущества мы будем рассматривать именно на двигателе.Начнем с FBF:
По кадровая анимация имеет ряд крупных недостатков в списке которых значится : оптимизация , лаги , низкий параметр FPS , отрицательное влияние на другие объекты , большой вес.При использовании такой анимации ваш проект будет много - очень много весить,анимация требует хирургической точности и плотного подхода иначе как результат мы увидим за место анимации некачественное слайд шоу , ибо анимация не переходит в положение следующего кадра а лишь "перескакивает" на него и следующим кадром анимации требуется создавать каждое движение в плоть до миллиметра , а значит что количество кадров на стандартную небольшую анимацию будет не менее 30-40 , каждый кадр имеет вес в округе 1-3 и выше мб , что значит что на стандартную небольшую анимацию например бега придется затратить большое количество времени что уходит не только на обработку каждого кадра но и на процесс конвертирования общий вес уже будет составлять до сотниа то и больше мб . Вес непременно сильно скажется и на качестве и на оптимизации проекта так как двигателю придется считывать буквально каждый кадр , а в нашем случае каждый кадр это отдельная модель , 3d rad придется просчитывать буквально сотни и тысячи кадров , что значит что проект будет тормозить даже на самых топовых и мощных машинах . У FBF анимации есть еще тонны минусов и один из единственных плюсов это простота в использовании и эксплуатации.Не требуя огромных затрат такая анимация может создаваться в небольших проектах с малым количеством объектов и низкополигонными моделями.
Теперь перейдем непосредственно к разбору костной (скелетной) анимации,в первые костная анимация использовалась в 1998 году на модернизированном двигателе игры Quake от iD Software что использовался во время создания первой игры Half life , новая технология позволила создавать невозможное особенно на тот промежуток времени когда технологии были не столь развиты . Фактически Джон Кармак дал компьютерным технологиям большой скачек в развитии , именно после ошеломительного успеха Half Life технология стала активно использоваться во всех отраслях промышленности и не только игровой , фильмы , мультипликации , современная индустрия требовала этого скачка . Сейчас на дворе 2013 год и данная технология до сих пор используется во всех отраслях и весьма успешно . Суть скелетной анимации заключается в создании связанных между собой точек образующих в месте некое подобие скелета который непосредственно связан с высотами модели , а если быть более точным то с каждой отдельной группой высот . При изменении положения определенных точек скелета изменяется и положение привязанной к этой точке группе высот модели , все вместе образует плавную и качественную анимацию , с правильной настройкой привязки скелета еще и бесшовную .
Двигатель 3d rad успешно оптимизирован и приспособлен для эксплуатации обоих подвидов анимации , плюсы и минусы которых мы разобрали выше . Теперь перейдем непосредственно к теме урока , самый удобный способ , через Fragmotion . Наша цель создание качественной анимации и наш урок будет разбит на несколько пунктов и начнем мы по порядку.
0) Основы программы: Открывая интерфейс Fragmotion нужно учитывать мелкие нюансы управления программой , их всего несколько и запомнить их легко : Управление камерой осуществляется на правую кнопку мыши . За действие и выделение отвечает левая кнопка мыши . Нижний правый угол располагает по умолчанию в себе вкладку с Tools (инструменты).Инструменты управления камерой: - Rotate Camera (Повернуть камеру) отвечает за поворот камеры вокруг модели. - Zoom Camera (Приблизить камеру) отвечает за приближение и отдаление камеры от модели. - Movie Camera (Двигать камеру) отвечает за движение камеры по сцене по отношению к модели.
Чуть правее есть дополнительные вкладки , они отвечают за костюмизацию панели : - Restore Tools (Перезапустить инструменты), отвечает за упорядочивание инструментов. - Show Tree (Показать древо) , отвечает за вид показа инструментов , в виде стандартного древа таблицы или же в виде списка . - Customize Toolbox (Костюмизировать панель инструментов) , это меню настроек в котором мы можем настроить порядок инструментов в древе инструментов . - Select ToolList (Выбрать панель инструментов) , это меню создания нового , выбора старых если нужно порядков расположений инструментов в панели инструментов . - Select PreviosTool (Выбрать предыдущий инструмент)/Select Next Tool (Выбрать следующий инструмент) , это быстрый выбор предыдущего или следующего инструмента выбора .
Таким образом мы разобрались с основной панелью которую мы будем использовать во Fragmotion,теперь приступим?
1) Создание скелета: Открывая нашу модель в Fragmotion находим в нижнем правом углу панель с различными вкладками , такими как Tools и другие - Tools (инструменты) нам и нужен . Находим в нем подпункт Create (создать) а в нем пункт Bone (кость).
Выбираем этот инструмент и на нашей модели ставим точки кости , для более точного прицеливания к правильным точкам на модели используйте инструмент на верхней панели задач интерфейса Fragmotion подпункт (View Front - показать спереди) это поставит положение камеры ровно на лицевой стороне модели и позиции точек соприкосновения кости и модели будут более точными . После расстановки точек соприкосновения костей приступим к следующему шагу.
2) Анимация А теперь началась самая сложная часть - Анимация . Для этого нам понадобятся новые инструменты работы - такие как : Keyframe Editor Keyframe Sliders Нажимаем на клавиатуре комбинации клавиш : Alt + 0 Alt + -
На экране Fragmotion в интерфейсе появились 2 заметных окна :
Это Keyframe Editor (Редактор кадровых ключей) который отвечает за редактирования позиции положения и количества кадров на шкалу времени. Фактически это и есть наша анимация , ну почти , тут мы будем фиксировать абсолютно каждое наше движение и действие по отношению к костям модели.
Эта панель называется Keyframe Sliders и отвечает за все движения производимые моделью во время анимации , во время создания анимации мы будем использовать именно этот инструмент . Он поворачивает (rotate) кость по координатам x ; y ; z , а так же передвигает (move) кость по тем же координатам через слайдеры (sliders) от того и название инструмента (Слайдеры кадровых ключей) .
Открываем вкладку Bone в верхнем углу интерфейса Fragmotion И выбираем подпункт Auto Assigin Vertices (Автоматическое присоединение высот) и в следующем окне жмем OK оставляя все пункты без измениений, данная функция присоединяет все высоты к костям автоматически при сканировании модели. Это начальный этап который является самым удобным но и не самым правильным . В последующих действиях мы поймем почему же. Для начала создадим анимацию , в верхнем правом углу есть панель Animations , по клику правой кнопкой мыши вызовем меню выбора в котором выбираем подпункт меню New -> Animation . После в древе появится пункт Animation который мы должны выбрать кликом левой кнопки мыши , после сего действа на Keyframe Editor появится шкала времени и дополнительные линии а так же откроется боковое окошко обозначающее выделенные кости и список а так же и их изменения . Находим значек (Create Frame - Создать Кадр) и используя этот инструмент выберем нужный промежуток на шкале времени и создадим первый кадр (шкала времени это синяя полоса в виде линейки с делениями , в Fragmotion эти деления обозначают время и шкалу времени) Создав первый кадр и выделив его на шкале времени кликом правой кнопки мыши выходим на основной интерфейс Fragmotion и используя инструмент в подменю Tools , Select -> Bone (Выделить -> Кость) выделяем нужные нам кости и с помощью Keyframe Sliders двигаем или крутим кость в нужном нам направлении , затем в Keyframe Editor через несколько делений (секунд) создадим новый кадр и добавим через Keyframe Sliders дополнительные изменения и так до тех пор пока не получим нужной анимации. Выглядит просто если ваша модель не высокополигональна и не имеет близких друг к другу граней , иначе ошибка наша заключится в том что при движении определенной части кости будут двигаться и другие высоты и части модели которые не должны быть , например при повороте руки будет двигаться и например кусок тела что вообще ни в какие рамки не катит , по сему мы должны перед созданием анимации всегда проверять модель на то правильно ли инструмент автоматического присоединения высот (Auto Assigin Vertices) присоеденил именно нужные нам высоты именно к нужной части модели и именно правильным образом . Итак что же делать в такой ситуации - вот тут то нам и придется поработать ручками. используем инструмент выделения высот (Select Vertex) который находится в панели инструментов (Tools) во вкладке выделения (Select) , используя этот инструмент мы можем выделять нужные нам высоты . Итак самая трудная часть , нам нужно правильно распределить высоты по нужным видам костей (Bone) и исправить нашу ошибку , выделяем неправильные высоты на модели (их может быть очень много но придется) через клавишу Shift . После того как мы выделили нужную нам неправильную группу высот пользуясь инструментом Assigin Selected Verices to Bone (Присоеденить выделенные высоты к кости) открываем окно в котором есть куча пунктов и шкала .
Шкала эта называется шкалой присоединения , она отвечает за дистанцию присоединения высот к кости - эту шкалу мы всегда ставим на красный уровень (максимальное присоединение) иначе присоединение будет частичным и неправильным - высоты будут вылезать . Выше шкалы есть пункт Bone (Кость) и подменю в котором мы должны выбрать кость нейтральную к которой можно присоеденить высоты , то есть мы переводим ненужные здесь высоты на другую кость при движении которой должны двигаться эти высоты. После нахождения такой кости жмем на правое окошко,на пункт с другой костью (это та кость к которой на данный момент присоединена высота) . И теперь жмем Set (Применить) . Старая кость заменилась на новую а неправильные высоты встали на место. Мы скорректировали неправильное положение высот из за автоматического присоединения высот . Эту же процедуру корректировки придется провести со всеми костями - процедура долгая и может занять много времени . После создания анимации выбираем File -> Export Выбираем формат DirectX и скидываем в папку с нашей моделью , настройки не меняем =0 Спасибо за внимание,удачи всем !
Сообщение отредактировал: _Лопатин_Сергей_ - Суббота, 23.03.2013, 12:10
_Лопатин_Сергей_, потом я не понял почему тогда тот чел по кускам разорвался! =D HotSoft24 Все таки я понял кто я по звериному стилю^^ ЕНОТ XD коварный вор, врунишка, зато ЛАПОЧКА^^
разобрался! спасибо! =) но вот с текстурами проблема, и ещё, не знаешь ли ты как из нескольких текстур сделать 1? HotSoft24 Все таки я понял кто я по звериному стилю^^ ЕНОТ XD коварный вор, врунишка, зато ЛАПОЧКА^^
_Лопатин_Сергей_, не обязательно в ScethUp и FragMotion, а вообще (кроме 3DS Max) HotSoft24 Все таки я понял кто я по звериному стилю^^ ЕНОТ XD коварный вор, врунишка, зато ЛАПОЧКА^^