Анімація в Milkshape 3D
Вибираємо модель яку необхідно анімувати. В даному прикладі я вибрав стандартну AWP з CS 1.6. Розпакував її за допомогою плагіна Kratisto's Half-Life MDL Decompiler v1.2, який йде в стандартному наборі Milkshape 3D 1.7.0 (Tools -> Kratisto's Half-Life MDL Decompiler v1.2). Якщо ви аніміруете свою власну модель, а не переробляєте анімацію вже існуючої моделі, то зрозуміло розпаковувати вам нічого не потрібно. Хоча вам всерівно доведеться десь дістати стандартні анімації для вашої моделі. Коротше розпакували, дивимося що всередині, всередині стандартної v_ моделі awp з CS 1.6 (v_awp.mdl) ми бачимо 23 файлу. 13 текстур, 1 скрипт компіляції (v_awp.qc), 1 модель зброї + скелети зброї і рук (f_awm_template.smd), 2 моделі рук - це нововедення в CS 1.6 моделі рук знаходяться тепер в різних файлах і в окремо від основної моделі зброї, причому на цих моделях немає скелета, скелет знаходиться у файлі моделі зброї см. вище (lhand.smd і rhand.smd) і 6 файлів анімацій, вони то нам сьогодні і знадобляться, а зокрема для прикладу знадобиться 1 файл, анімація перезарядки (reload .smd). Імпортуємо модель зі скелетом в мілкшейп, також імпортуємо моделі рук (File -> Import -> Half-Life SMD. Або File -> Open. Залежить від того в якому форматі ви зберегли модель). У вікні "SMD import" прибираємо останню галочку "Rename Bones", щоб зберегти стандартні назви кісток
Імпортуємо файл стандартної анімації до нашої моделі (File -> Import -> Half-Life SMD.). У вікні вам запропонують дописати поточну анімацію до вже існуючої анімації "Do you want to append the animation at the end of current animation?". Так як анімації до цього не було вибираємо НЕМАЄ, це видалить вже існуючі 30 порожніх кадрів.
Далі на кіфреймере натискаємо кнопку [Anim],
кіфреймер включається \ відключається з меню (Window -> Show Keyframer),
і приступаємо власне до анімації. Можете подивитися стандартну анімацію, рухаючи повзун кіфреймера або за допомогою кнопки [>] (Play Forward).
Але для початку напевно слід пояснити сам принцип роботи анімації в Мілкшейпе і в форматі SMD зокрема. Анімація в мілкшейпе складається з кадрів і кіфреймов. Число кадрів визначає довжину анімації. Для збільшення \ зменшення кадрів в анімації просто пишемо потрібне число фреймів у вікні Total Frames.
У CS за одну секунду ми бачимо 30 кадрів, тобто анімація в 88 кадрів (перезарядка AWP) триває 2,9 сек. Ну з кадрами думаю зрозуміло. І що тепер, потрібно анімувати кожен кадр перезарядки? Всі 88 штук! НІ! І допоможуть нам полегшити роботу - кіфрейми. Кіфрейм - це ключовий кадр в анімації, тобто кадр в якому знаходиться пікове становище, певна поза моделі. Для прикладу розглянемо всі ту ж перезарядку AWP, в анімації яку ми зробимо буде всього 14 кіфреймов. Увага: в SMD файлі всі кадри є кіфреймамі. При створенні анімації необхідно набагато менше кіфреймов ніж міститься в SMD. Тобто сам рух скажімо руки з одного положення в інше (від низу до верху), може містити всього 2 кіфрейма, 1 - рука внизу, 2 - рука вгорі. Між ними будуть звичайні кадри які самі заповняться проміжними фазами руху. Чим більше простих кадрів, тим довше буде рухатися рука. У SMD ж все кадри між двома цими кіфреймамі після компіляції так само стануть кіфреймамі.
Для того щоб створити нову анімацію нам потрібно видалити всі кіфрейми крім першого. Для цього ставимо повзун кіфреймера на другий кадр анімації. І використовуємо наступний пункт меню Animate -> Delete Keyframe (видалити кіфрейм), переходимо на третій кадр і повторюємо операцію, потім на четвертий і так далі до 88го. Залишається тільки перший кіфрейм. Після видалення у нас виходить болванка для нової анімації - руки стискають рушницю.
Далі нам знадобиться 2 найголовніших інструменту для роботи - мозок і уяву. Необхідно уявити рух рук під час перезарядки. Після того як рух готовий, починаємо його матеріалізувати через Мілкшейп.
Якщо Ви дотримувалися порад даного туторіал, то кнопка [Anim] на кіфреймере у Вас вже натиснута. Тепер рухаємо повзун кіфреймера на 13 кадр, або пишемо в лівому віконці кіфреймера (Current Frame) номер кадру - 13.0. Ми перейшли на порожній кадр номер 13, тобто перший рух буде довгою в 13 кадрів.
Переходимо на закладку "Model", натискаємо кнопку [Select], в опціях натискаємо кнопку [Joint].
Цим ми вказуємо програмі на те, що ми будемо виробляти якісь дії з суглобами. Вибираємо суглоб (Joint), який ми будемо крутити / рухати. Суглоб - це основна одиниця скелета моделі. Позначаються на видах синіми сферами, з'єднаними між собою жовтими пірамідами. Їх можна заховати \ показати на закладці "Joints" -> "Show Skeleton". Так само на закладці "Joints" можна вибрати суглоб зі списку, що дозволяє швидко знайти певний джоінт на моделі.
Для зручності можна зменшити розмір суглобів. Розмір Джоінт встановлюється в меню File -> Preferences. -> Misc -> Joint Size (за умовчанням має значення 1.000000, в прикладі я використовую розмір 0.250000)
Але повернемося на закладку "Model". Вибираємо мишею на одному з видів перший суглоб правої руки (у списку Джоінт він називається Bone04). Якщо все зробили правильно, то обраний суглоб стає червоного кольору, всі суглоби йдуть за ним стають зеленого кольору. Далі натискаємо кнопку [Move] і рухаємо руку так щоб кисть виявилася під магазином гвинтівки, створюємо першу фазу руху.
Боєць посунув руку до магазину, тепер необхідно стиснених йому пальці, щоб взяти магазин. Але спочатку необхідно зафіксувати цю позу. Важливо. Перед збереженням необхідно відключити пункт меню Animate -> Operate On Selected Joints Only, для того щоб зберегти всю позу цілком, а не тільки рух пальця обраного останнім. Відкриваємо меню Animate і вибираємо пункт Set Keyframe, або натискаємо Alt + K. Все перший рух готове. Можете посувати повзуном від першого кадру до тринадцятого, щоб подивитися що вийшло. Якщо не подобається, видаляємо кіфрейм номер 13 (Animate-> Delete Keyframe) і начіаем анімувати заново. Як дізнатися що кіфрейм поставився? Дуже просто, якщо посувати повзуном в режимі анімації, при проходженні кіфрейма, на видах, все кістки задіяння в цьому кіфрейме виділяються жовтим кольором. Не забувайте ставити кіфрейм, це дуже важливо, тому що ви можете втратити створену вами фазу руху, якщо забудь поставити кіфрейм і почнете робити наступну фазу. Ок перший кіфрейм є.
Далі рухаємо повзун кіфреймера ще на один кадр. І продовжуємо розпочате рух. Суглоби пальців правої руки розташовуються в списку c Bone28 по Bone45. Точно також Select'ом вибираємо один суглоб, Rotate'ом повертаємо його так, щоб палець зігнувся, для цього головне точно визначити осі за якими потрібно гнути пальці), інші можна відключити (кнопки [X], [Y] і [Z] відповідно ), потім наступний палець, і т.д. поки боєць не візьме рукою магазин. Причому щоб отримати нормальну людську позу, пальці доведеться гнути на всіх трьох видах. Будемо вважати що з першим серйозним завданням Ви впоралися і у Вас вийшла нормальна поза, рука живу людину, що тримає магазин гвинтівки (хоча з першого разу навряд чи у кого то вийде, у мене принаймні не вийшло, ну да ладно, практика практика і ще раз практика), а не клешня трупа замученого нелюдськими тортурами.
Ставимо другий кіфрейм і фіксуємо тим самим другу фазу руху.
Рухаємо повзун на 17 кадр. Вибираємо перший суглоб лівої руки (Bone01) і трохи нахиляє руку з гвинтівкою вниз використовуємо для цього кнопку [Rotate]. На стільки ж опускаємо праву руку.
Ставимо кіфрейм.
Переходимо на 19 кадр. Повертаємо руку з гвинтівкою на колишнє місце, рука і магазин залишаються на місці.
Ставимо кіфрейм. Дивимося вийшла анімацію. Боєць від'єднав магазин від гвинтівки, гвинтівка трохи здригнулася від прикладеного зусилля.
Переходимо на 38 кадр. Переміщаємо праву руку вниз (Bone04). Вставляємо в неї магазин (Bone48).
Ставимо кіфрейм. Боєць вийняв і викинув порожній магазин.
Переходимо на 41 кадр. Повертаємо руку з гвинтівкою проти годинникової стрілки (Bone01) Знову вставляємо магазин в руку, так як він повернувся разом з гвинтівкою (Bone48).
Ставимо кіфрейм. Боєць узяв гвинтівку зручніше і приготувався для вставки магазину.
Переходимо на 47 кадр. Піднімаємо руку разом з магазином на рівень гвинтівки, але так щоб вона була трохи в стороні і повертаємо її так щоб кисть виявилася зверху магазину (Bone04, Bone48). Можна трохи відігнути кисть з магазином назад (Bone_Righthand).
Ставимо кіфрейм. Боєць приготувався вставити в гвинтівку новий магазин.
Переходимо на 64 кадр. Вставляємо магазин (Bone48) в гвинтівку і рухаємо праву руку так, щоб вона розташувалася на магазині (Bone04).
Ставимо кіфрейм. Боєць готовий дослати магазин в гвинтівку.
Переходимо на 67 кадр. Повертаємо руку з гвинтівкою трохи в сторону (Bone01) рухаємо руку з розкритою долонею так щоб вона стосувалася магазину (Bone04).
Ставимо кіфрейм. Боєць дослав магазин в гвинтівку і рука з гвинтівкою трохи похитнулася в бік від прикладеного зусилля.
Переходимо на кадр 68. Трохи повертаємо обидві руки в протилежну сторону (Bone01, Bone04).
Ставимо кіфрейм. Руки повернулися в стан спокою.
Переходимо на 77 кадр. Повертаємо руку з гвинтівкою за годинниковою стрілкою, але не перпендикулярно землі, а залишаємо її всерівно трохи нахиленим (Bone01). Праву руку (Bone04) відводимо в праву сторону і випрямляє кисть (Bone_Righthand).
Ставимо кіфрейм. Боєць майже повернув руку на ложе та випрямив гвинтівку.