Создать игру, создание игр, конструктора игр, игровые движки, разработка игр, сделать игру
Приветствую Вас Гость · Вход · Регистрация  ·  Новые сообщения · Участники · Правила · Поиск · RSS
  • Страница 1 из 1
  • 1
Форум разработчиков игр » Полезные статьи, Примеры и Исходники » 3D Rad » (Урок) Скелетная анимация (Сложно)
(Урок) Скелетная анимация
_¿_ Дата: Пятница, 22.03.2013, 12:20 | Сообщение # 1
Просмотр профиля: _¿_

Сообщений: [1192]
Всем привет,сегодняшняя тема урока - костная анимация.Ранее в этом же разделе был урок по 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
Dr@gN(ScorpyZ) Дата: Пятница, 22.03.2013, 19:32 | Сообщение # 2
Просмотр профиля: Dr@gN(ScorpyZ)

Сообщений: [397]
Молодец, СПАСИБО! многим понадобится!

HotSoft24
Все таки я понял кто я по звериному стилю^^
ЕНОТ XD коварный вор, врунишка, зато ЛАПОЧКА^^


Сообщение отредактировал: Scorpion24® - Пятница, 22.03.2013, 19:35
SkorpyX Дата: Пятница, 22.03.2013, 20:33 | Сообщение # 3
( Let's rock! )
Просмотр профиля: SkorpyX

Сообщений: [251]
Спасибо за урок)

Dr@gN(ScorpyZ) Дата: Пятница, 22.03.2013, 20:56 | Сообщение # 4
Просмотр профиля: Dr@gN(ScorpyZ)

Сообщений: [397]
а текстуры? ты про текстуры не объяснил!

HotSoft24
Все таки я понял кто я по звериному стилю^^
ЕНОТ XD коварный вор, врунишка, зато ЛАПОЧКА^^
_¿_ Дата: Пятница, 22.03.2013, 23:12 | Сообщение # 5
Просмотр профиля: _¿_

Сообщений: [1192]
Scorpion24®, завтра напишу урок по текстурированию
Dr@gN(ScorpyZ) Дата: Пятница, 22.03.2013, 23:14 | Сообщение # 6
Просмотр профиля: Dr@gN(ScorpyZ)

Сообщений: [397]
_Лопатин_Сергей_, потом я не понял почему тогда тот чел по кускам разорвался! =D

HotSoft24
Все таки я понял кто я по звериному стилю^^
ЕНОТ XD коварный вор, врунишка, зато ЛАПОЧКА^^
_¿_ Дата: Суббота, 23.03.2013, 09:05 | Сообщение # 7
Просмотр профиля: _¿_

Сообщений: [1192]
Scorpion24®, в каком смысле ? если у тебя вершины вылезают то присоедини их к другой кости,или сделай одолжение дочитать урок до конца
Dr@gN(ScorpyZ) Дата: Суббота, 23.03.2013, 09:07 | Сообщение # 8
Просмотр профиля: Dr@gN(ScorpyZ)

Сообщений: [397]
разобрался! спасибо! =) но вот с текстурами проблема, и ещё, не знаешь ли ты как из нескольких текстур сделать 1?

HotSoft24
Все таки я понял кто я по звериному стилю^^
ЕНОТ XD коварный вор, врунишка, зато ЛАПОЧКА^^
_¿_ Дата: Суббота, 23.03.2013, 09:08 | Сообщение # 9
Просмотр профиля: _¿_

Сообщений: [1192]
Scorpion24®, никак
Dr@gN(ScorpyZ) Дата: Суббота, 23.03.2013, 09:14 | Сообщение # 10
Просмотр профиля: Dr@gN(ScorpyZ)

Сообщений: [397]
_Лопатин_Сергей_, не обязательно в ScethUp и FragMotion, а вообще (кроме 3DS Max)

HotSoft24
Все таки я понял кто я по звериному стилю^^
ЕНОТ XD коварный вор, врунишка, зато ЛАПОЧКА^^
_¿_ Дата: Суббота, 23.03.2013, 09:23 | Сообщение # 11
Просмотр профиля: _¿_

Сообщений: [1192]
Scorpion24®, никак
Форум разработчиков игр » Полезные статьи, Примеры и Исходники » 3D Rad » (Урок) Скелетная анимация (Сложно)
  • Страница 1 из 1
  • 1
Поиск:

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2024 Хостинг от uCoz
Топ Разработка игр