Як відомо, у ЧН система худих моделей зброї зазнала серйозних змін. Якщо в ТЧ зброю і руки були єдиною моделлю з єдиним скелетом, то, починаючи з ЧН, руки стали являти собою одну модель, а зброю - іншу. Загалом цей хід виглядає цілком логічним – можна легко реалізувати заміну костюма, не треба зберігати руки в одному файлі з моделлю зброї, що економить місце на диску і т.д. Однак у результаті виходить несумісність зброї із ТЧ зі зброєю із ЧН.
Бачимо, що, начебто, перенести зброю з ЧНЗП у ТЧ досить просто – треба лише об'єднати скелети рук і зброї, і річ у капелюсі. На практиці це дійсно нескладно – за умови, що ми працюємо в Maya. Але модмейкери, як відомо, здебільшого народ бідний, і Maya їм не по кишені :). Що ж, доведеться діяти народними засобами, тобто. за допомогою Milkshape 3d, благо, необхідні плагіни для нього є.
1. Два в одному або об'єднання скелетів.
Запускаємо Мілкшейп та імпортуємо файли з моделями рук (meshes\dynamics\weapons\wpn_hand\wpn_hand_01.ogf , можна вибрати інший з тієї ж папки) та нашої зброї (припустимо, wpn_ak74_hud.ogf).
Бачимо, що вийшло два незалежні скелети. Непорядок. Шукаємо в меню пункт, що дозволяє приєднати один джоїнт до іншого, і ... нервово б'ємо кулаком по столу, тому що такого пункту там, як не дивно, немає. Зберігаємось.
Далі є два шляхи: вивчити структуру MS3D-файлу і вручну зробити необхідні редагування, або скористатися утилітою MS3D Hierarchy Editor (взяти можна тут ), спеціально написаною мною для таких випадків. Думаю, практично всі погодяться, що другий спосіб зручніший, простіший і швидший.
Поміщаємо файл з утилітою в одну папку зі збереженням, запускаємо утиліту, вводимо назву збереження та бачимо пронумерований список з усіх джоїнтів у збереженні, а також їхніх батьківських елементів. У відповідь на запрошення вводимо <М>, вибираємо режим роботи Relative (хоча, в принципі, можна спробувати і Absolute – тільки не забудьте створити копію збереження), шукаємо у списку джоїнт wpn_body (кореневий джоїнт зброї) і lead_gun. Вводимо поспіль їхні номери.
Запускаємо Мілкшейп і бачимо, що скелети об'єднані.
Тепер, якщо використовувався режим Relative, треба вирівняти зброю щодо її скелета. Для цього вибираємо всі вершини (трикутники, групи – міш, одним словом) зброї та переміщуємо її так, щоб досягти початкового положення джоїнтів у зброї. УВАГА! У жодному разі не рухайте і не обертайте джоїнти! Вб'єте все! Якщо виникла крайня необхідність змінити їхнє положення – перейдіть у режим анімації та працюйте в ньому!
Всі! Експортуємо модель у формат СДК, завантажуємо її в Actor Editor і дивимося, що вийшло.
А у нас на черзі анімації.
2. Неможливе можливе, або перенесення анімацій.
Досить часто мені доводиться чути, що якщо скелети різняться, то, як не танцюй, анімації одного до іншого прикрутити не вдасться. Найчастіше це справді так, але, як відомо, у кожному правилі є свої винятки. Якщо скелети досить схожі, то пристосувати анімації одного з них спробувати можна.
Отже, почнемо. Якщо при роботі зі скелетом ви знаходилися в режимі анімації, спочатку виділіть всі джоїнти і виберіть Animate->Remove All Keyframes. На всякий випадок.
Тепер беремо конвертер Бардака, файли з анімаціями рук (wpn_hand_*_hud_animation.omf) та зброї (тут анімації можуть бути як в окремому OMF'і, так і в одному OGF'і зі зброєю), і витягуємо окремі .skl-файли з анімаціями . Всі необхідні анімації найпростіше подивитися в конфізі.
Тепер імпортуємо анімації зброї та рук для однієї і тієї ж ситуації (припустимо, reload). Тут слід зазначити, що збройових анімацій для будь-якої ситуації може просто не існувати. При цьому використовується анімація зброї idle (при імпорті в таких випадках будьте обережні – можна випадково імпортувати анімацію idle для рук і отримати трохи не те, що очікувалося). Переходимо у режим анімації. Виділяємо ТІЛЬКИ джоінт wpn_body і робимо для нього Animate->Remove All Keyframes.
Тепер змінюємо його становище у першому кадрі так, щоб зброя лежала в руках, а не літала поруч із ними. Тиснемо Ctrl+K. Перевіряємо, чи для всіх джоїнтів перший кадр виставлений ключовим, якщо ні, кейфреймім. Зберігаємось. Дивимося анімацію, виправляємо, якщо щось не влаштовує.
Експортуємо в skl, завантажуємо в ЦДК, перевіряємо. Зазвичай все відбувається нормально, але можуть з'явитися і артефакти. Два найбільш часто зустрічаються їх види це:
1) «Зникнення» - можна побачити, що з частин моделі на якийсь час пропадає. Як не дивно, це пов'язано саме з кейфреймами. Для виправлення слід визначити між якими ключовими кадрами це відбувається. Далі вибираємо всі джоїнти і в режимі анімації акуратно обертаємо їх у проблемних кейфреймах трохи убік, а потім повертаємо у вихідне положення та тиснемо Ctrl+K.
2) «Виверт» – при перегляді з'ясовується, що якась частина руки неприродно обертається навколо своєї осі. Для виправлення кейфреймі всі проміжні кадри вищеописаним способом.
Після отримання та експорту нормальної анімації (зберегтися не забули?) розпочинаємо обробку інших. Для цього копіюємо MS3D-файл, відкриваємо копію, вибираємо джоїнт wpn_body, тиснемо Animate->Copy Keyframes. Вибираємо всі суглоби, Animate->Remove All Keyframes. Імпортуємо нові анімації і видаляємо всі кейфрейми для wpn_body. Після цього в першому кадрі виконуємо Animate->Paste Keyframe та Set Keyframe для wpn_body. Тепер позиція зброї у цій анімації точно відповідає позиції попередньої.
Далі налаштовуємо все в СДК (про те, як це робиться, написано у статті «Створення HUD моделі зброї» ), експортуємо до OGF, налаштовуємо конфіги та перевіряємо все у грі.