Начнем с теории.
Для начала, разберемся с "терминологией" игр Half-Life, Counter Strike и различных модификаций.
Оружие.
Если в начале названия модели присутствует префикс w_, например "w_gun.mdl", то это та модель, которая будет статичным обїектом в креаторе, который мы должны подобрать для получения оружия.
Префикс V_ (v_gun.mdl) превратится для креатора в hud.x в папку Gamecore- это само оружие с его анимацией.
Модели с префиксом P_ (p_gun.mdl) стоит игнорировать- они содержат координаты расположения оружия на экране, понятных только самой игре.
Остальные модели.
Если в названии модели присутствует слово gibbs (computergibbs.mdl), то это обломки чего либл.
Debris означает руины.
Префиксы buzz_, geo_, gib_ и obj_ обычно называют различную статику- интерьер и дизайн, использующийся для "украшения" уровня.
Теперь поговорим о структуре модели.
Формат mdl- это архив, содержащий текстуру, анимацию, саму модель и информационный файл qc. Главная проблема в том, что у анимация идет отдельным SMD файлом, в котором указывается координаты каждой кости в каждом фрейме. Таким образом начальная поза (Default pose) модели отличается от первого фрейма анимации. А файл x требует, что бы начальная поза совпадала с первым фреймом (кадром). То ли по недосмотру разработчиков, то ли по недоработке, но FragMotion при конвертации такой модели с несовпадающим первым фреймом и позой, он создает пустой файл с размером нормального файла. Именно ето и являлось камнем преткновения при конверте моделей из игр от Valve. Я же нашел способ обойти это и научился конвертировать модели с родной анимацией.
На самом деле, так же можно конвертить и модели от второй Half-Life, но они получаются высокополигональными, что вызывает тормоза на старых компах.
Теперь начнем конвертить.
Итак, что нам понадобится?
1) FragMotion
2) Milkshape
3) Image Converter
4) Сама модель
Приступим. Для начала, выносим эту модель в отдельную папку. Открываем Милкшейп: Tools -> Half-Life -> Decompile Normal HL File.
В открывшимся окне выбираем папку с нужной нам моделью и выбираем эту модель. В открывшимся окошке ставим все галочки (Reference, sequence, textures, qc file). QC file нам не очень-то и нужен, но без него иногда Милкшейп не декомпилирует.
Теперь в папке с моделью лежат куча SMD, BMP и один QC файл.
Открываем FragMotion и импортируем smd файл с именем Reference, либо имеющий в своем названии фразу "Biped". Если это персонаж, то вам надо через File -> Merge обїединять файлы частей тела- голову, ноги и тело. В своем названии они имеют фразу соответственно "Leg, foot, body, head, arm".
Что значит обїединять? Это поочередно открывать через File -> Merge файлы частей тела. В случае с оружием эти файлы- оружие и руки. Думаю, вы сами разберетесь "на месте". На данном моменте, если вы импортируете в креатор статику, то можете остановится. Для персонажей и оружия идем дальше.
Далее импортируем анимацию. Здесь есть своя хитрость. Если вы знаете английский, то импортируем только нужные нам файлы анимации, если нет, то делается "методом тыка"- импортируем файл, в листе анимаций выбираем появившуюся строку анимации, и просматриваем ее.
Если она нам не нужна, то удаляем ее (выделив ее, жмем Del или Правая Кнопка Мыши -> Delete). Какая же анимация нам нужна? Для оружия это анимации стрельбы (fire), ожидания (idle), доставания (draw), убирания (holster) и перезарядки (reaload). Для персонажа это смерть (death), ожидание (idle), атака (attack), принятие ранения (flinch), ходьба (walk), бег (run). Для нашего же удобства следует расположить их в таком порядке: для оружия draw-idle-fire-reload-holster, для персонажа idle-walk-run-attack-flinch-death. Далее нам в таком порядке будет удобнее прописывать строки анимации в FPE\Gunspec.
Перемещаем нужный файл анимации, зажав его левой кнопкой мыши для получения нужной нам последовательности в окне анимации. Теперь обїеденим их все в одну- дважды щелкнем по любому из пунктов левой кнопкой мыши. Далее в открывшемся окне выбираем edit -> Append animation.
Ставим галочки и жмем ОК.
Теперь мы можем удалить все пункты анимации, кроме нового- "animation".
Теперь у нас есть модель, почти готовая к экспорту. Но экспортируем мы ее в формат *.ms3d -формат Милкшейпа.
В открывшимся окне меняем значение "Frames per sec" на 24.
Открываем ее Милкшейпом и жмем на Export -> DirectX (JT).
ВАЖНО!!! В Милкшейпе вы не должны нажимать на кнопку "anim" в правом нижнем углу. Если вы ее нажали, то перед экспортом отожмите эту кнопку.
Теперь у нас есть полноценный файл х, который бесспорно будет работать на креаторе (Креатор- зверь DX9, и файл восьмерки он с удовольствием примет за свой). В окне конверта ставим галочки так, как показано на картинке.
Теперь осталось в окне Transform -> Transform Options сделать так, что "низ модели" находился на уровне нулей координат. И еще- и персонаж, и оружие должно быть направлено лицом/дулом по направления к оси Х.
Теперь через Image Converter конвертируем текстуры из BMP в TGA или DDS. И, через FM переназначаем текстуры (окно текстур, для каждого пути к файлу конец с .bmp переименовать в .tga или .dds, в зависимости от того, во что вы переделали текстуру.
Далее- для персонажа- прописываем в FPE файле кадры анимации (выглядит оно так- animation999 = 5,563 означает, что анимация номер 999 начинается с пятого кадра и заканчивается 563им.), и указываем имя модели и одну из текстур. Замечу, что указав одну из текстур, креатор сам добавит остальные, если они лежат там же, где и указанная. Для оружия- в gunspec.txt пишем кадры анимации (строчка reload = 58, 965 означает, что анимация перезарядки начинается 58 кадром и заканчивается 965). Еще замечу, что я беру чей-нибудь уже готовый ганспек того оружия, которое по мощи должно быть похоже на наше оружие, и его редактирую (прописываю нужные кадры).
Теперь- последний шаг- для персонажа- просим Никиту написать скрипт поведения персонажа (я не буду рассказывать это в этом уроке), для оружия- откалибрировать его положение на экране. могу сказать, что оно должно по оси У находится чуть ниже нуля, по оси Z примерно на -2, для Х примерно на +5. Опять же, для каждого оружия эти значения меняются. Решаются они только тестами.
Для второй халфы меняется только метод распаковки модели - я это делаю с помощью Cannonfodders MDL Decompiler, а текстуры лежат в папке "Materials".
А, и последнее- наша модель мультитекстура, включите шейдеры!