Додаток: редагування моделей ТЧ
На жаль, описаний вище спосіб не спрацює під час редагування моделей ТЧ – з двох причин:
- у Milkshape якщо просто додати кістки за допомогою інструменту Joint – під час перегляду анімацій модель зав'яжеться у вузол;
- при імпорті анімацій SDK видасть щось на зразок « не можу знайти кістку <bone_name> в анімації <animation_name> » і, відповідно, відмовиться імпортувати.
Доведеться діяти інакше. З інструментів, крім перерахованого вище, знадобиться Ms3d Hierarchy Editor .
Порядок дій:
1. Створюємо копію вихідної моделі.
2. У копії додаємо потрібні кістки. 3. Додані кістки повертаємо на -90 градусів по осі Х щодо батьківської кістки (далі стане видно для чого). На жаль, поворот кісток у Milkshape працює якось дивно – тому доведеться вручну розмістити кістки так, ніби всю сукупність кісток повернули. 4. За допомогою Hierarchy Editor'а в копії від'єднуємо старшу зі створених кісток від її батька. 5. Всю початкову геометрію і весь початковий скелет у копії видаляємо (таким чином повинні залишитися тільки створені кістки). 6. Відкриваємо оригінал і підвантажуємо ( Merge ) копію. 7. В оригіналі моделі за допомогою Hierarchy Editor'а прив'язуємо створені кістки до потрібних батьків. Як бачимо, сукупність створених кісток повернулася на +90 градусів і була розташована там, де потрібно. Зберігаємо (+ експортуємо до .object ). 8. Почергово імпортуємо та перезберігаємо зі зміненим скелетом усі анімації.
Після цього з отриманих .object і .skl файлів SDK як зазвичай збираємо модель. Тепер до створених кісток можна спокійно приєднувати аддони – анімації будуть коректні, аддони будуть одягатися/зніматися.
Пояснення: процес «створення кісток – від'єднання – видалення вихідної геометрії та скелета – об'єднання моделей – приєднання кісток» необхідний для вирішення першої із зазначених проблем – зав'язування моделі у вузол. Друга проблема вирішується перезбереження всіх анімацій.
Важливе зауваження: щоб знімні аддони працювали коректно, створеним кісткам потрібно дати стандартні імена:
- wpn_silencer – для глушника;
- wpn_scope - для оптичного прицілу;
- wpn_grenade_launcher та wpn_grenade – для підствольного гранатомета (можливо знадобляться ще кістки – для прицілу та спускового гачка).