Как сделать модель для half life 2

Добавил пользователь Валентин П.
Обновлено: 02.09.2024

Игровые модели имеют формат mdl. Для декомпиляции оных используем MDL Decompiler. Настроек у программы очень мало: в Choose Model File выбрал файл в формате .mdl, в Choose Output Directory – папку, куда нужно сохранить декомпилированную модель, нажать кнопку Extract для декомпиляции.

На выходе получаем файл (чаще — кучку файлов) в формате .smd. Один из них (обычно самый большой и имеет слово reference в названии) — сама модель, остальные — отдельные анимации модели.

Чтобы всё это добро импортировать в Blender, нужно прикрутить к нему аддон Blender Source Tools.

Текстуры имеют формат VTF (Valve Texture File). Не путаем с VMT – это текстовые файлы с описанием свойств материала).

Открываем их прогой VTF Edit, потом сохраняем в формат BMP. Доступны также JPG и PNG, но с экспортом в них у этой программы могут возникать проблемы, так что я обычно сохраняю в BMP с последующим преобразованием в PNG (GIMP в помощь). Сохраняем всё куда-нибудь на жёстком диске.

Модель в Blender импортируется через File -> Import -> Source Engine (.smd, .vta, .vmx, .qc). Для простоты сортируем smd-файлы по размеру и выбираем самый здоровый (и со словом reference в названии — см. выше).


Материалы накладываются точно так же, как на любую другую модель:


Кстати, если выделить скелет и импортировать smd-файл с анимацией, то в Blender можно будет прокрутить и анимацию:

Собственно процесс: Для начала создаём папки: создаём папку My NPC(например), в ней создаём папки lua, models, materials и файл info.txt.Начнём с lua: создаём в ней папку autorun, а в ней файл с расширением lua, например Freeman.lua. Пишем в этом файле:

local Category = "Humans+Resistance"

local NPC = < Name = "Gordon Freeman",
,
Model = "models/katharsmodels/gordon_freeman/gordon_freeman.mdl",
Health = "100",

KeyValues=,
Category = Category >

list.Set( "NPC", "npc_freeman", NPC )

Разберём этот lua файл :

local Category = "Humans+Resistance"- категория NPC, в которой окажется наш Фримен

Class = "npc_citizen",- класс NPC

Model = "models/katharsmodels/gordon_freeman/gordon_freeman.mdl",- путь к модели

Health = "100",-здоровье NPC, от 1 до бесконечности

Category = Category >-обязательная строка

list.Set( "NPC", "npc_freeman", NPC )-команда для вызова NPC через консоль

Закончили. Теперь кидаем модели в папку models(Путь должен соответствовать указанному в lua. Слэш в lua должен быть /, а не \. Это важно. )и текстуры в папку materials. Нельзя создать NPC из любого рэгдолла. Модель должна содержать все необходимые анимации, иначе NPC просто будет стоять столбом.

Теперь нашему NPC понадобится иконка для спавнменю. А нам для этого понадобится фотошоп или пэйнт.нет(я бы посоветовал последний) с установленным vtf-плагином.
Включаем игру, вызываем нашего NPC, делаем скриншот, открываем редактор, загружаем скриншот, обрезаем-обжимаем до размера 150x150 сохраняем в vtf(называем freeman . vtf к примеру). В папке materials создаём папку VGUI, а в ней папку entities, туда и кидаем нашу иконку. Создаём рядом с ней файл расширения vmt Имя файла должно соответствовать имени lua. Вписываем туда:


Прикрепленная картинка

Часть первая: Создание/аминирование модели

Для начала открываем наш редактор моделей (для урока я не использовал его, но для простоты возьмите Blender, это ваше дело какой выбирать)
Но пока отложим редактор на потом. Откройте Crowbar.

Видим перед собой не знакомое окно.
Но знания английского , и примерно по логике должны помочь.
Но я объясню, ведь я не зря тут?

Прикрепленная картинка

Эта программа нужна чтобы декомпилировать (Произвести производить процедуру восстановления программы или файла, т.е перевести его
в исходное состояние) нашу модель (в данном случае mdl в smd)
Теперь жмем на вкладу "Decompile (Декомпиляция)":

Отмечу главные галочки, которые нам будут нужны (если вы не знаете , то не делайте)

И так, указываем путь к нашей модельки в MDL file or Folder. . которую хотим анимировать (я возьму модель повстанца из Half-Life 2)
Затем в разделе "Output Folder" указываем тип куда мы будет уже готовый результат декомпиляции, если выбрать SubFolder (файл smd
будет перемещен в подпапку каталога программы, в подпапку расположенную рядом с моделью), если выбрать Full Patch (свой , кастомный путь куда переместится файл).

Прикрепленная картинка

Дальше настроив путь, нажимаем "Decompile":

Значит мы успешно декомпилировали модель! Теперь.
а теперь не бежим в Blender. такие радостные они.
Еще один момент, в Blender/Других редакторах не поддерживается smd!

Поэтому нужно качать дополнительный плагин (требование к версии: 2.74+)

А добавляется плагин в Blender:

Прикрепленная картинка

Дальше нажимаем Import - дальше чтобы добавить модель.

Дальше занимаемся анимацией.

После всего, мы должны её скомпилировать.
После нужно нашу анимированную модель переместить в папку anim (главное чтобы вы при декомпиляции не убрали галочку, иначе папка не появится). Т.к мы должны как-бы добавить анимация для модели, а не заменять её.

Дальше делаем также, но уже не mdl,а с QC. Этот файл содержит данные о модели для компиляции.
Но его нужно изменить сперва.

Видим разные строчки начинающиеся с
дальше следует название. Нужно добавить этот текст:

Заменив название $Sequence в ковычках на название созданной анимации (например: test_sequence)
В итоге вот:
Дальше во второй строчке, пишем путь к нашей анимации (правда папка anim, может начинаться с названия модели)
Дальше если нужно измените другие строчки.
Можно изменить кол-во кадров в секунду (fps) также.

- После настроек сохраняем этот файл, и открываем его в программе Crowbar, перейдя уже во вкладу Compile.
Там примерно также, указываем путь куда компилировать модель. Указываем игру для какой модели (для Steam) и другие пункты.
Дальше просто жмем Compile и все.
Мы успешно скомпилировали нашу модель!

Часть вторая:

После создания модели, мы должны добавить ее на вашу карту и сделать играбельной.
Закрываем Blender, и вместе с ним Crowbar.
Открываем Hammer Editor.

Теперь переходим к важной, и той части, с которой и будем делать анимации.
Нужно выбрать место откуда и где вы будете видеть анимацию.

Прикрепленная картинка

Ставим саму модель.

Ставим point_viewcontrol

Прикрепленная картинка

Ставим logic_auto

Прикрепленная картинка

Обращаемся к ентити point_viewcontrol
и указываем ей любое имя и модель которая должна быть в Parent:

Теперь указываем название самой модели.
Все.

Дальше мы заходим в Outputs ентити logic_auto.
Там добавляем новый.

Указываем всё как в данном тексте:

Теперь снова жмем на "Add" и указываем все также:

Если камера не включается по каким-то причинами, добавьте еще одну функцию:

Но это еще не все. Нужно настроить саму камеру:
Открываем свойства камеры и открываем вкладку "Flags"
Включаем/отключаем все флаги как на скриншоте:

Прикрепленная картинка


УБЕРИТЕ ГАЛОЧКУ START AT PLAYER (иначе камера будет начинать не от модели, а от глаз игрока)

Прикрепленная картинка

В общем все, дальше просто жмем F9/или на значок вашего Hammer.

Заключение

После компиляции мы увидим сразу нашу анимацию.. Можно сделать так , чтобы она проигрывалась через триггер например.
В итоге у нас получилось вот так:

Всем доброго времени суток. Пишу я сюда, в надежде встретить знающих людей, которые подскажут мне по интересующим меня вопросам.
Итак, довольно длительное время назад (Примерно год) я впервые прошел Half-Life 2. Да, знаю, что запоздал с ней, но, что есть - то есть. Так вот, тогда она мне жутчайше понравилась, я прошел все эпизоды и остался под большим впечатлением, в частности свое играла атмосфера. Месяца два назад, я вновь установил ее и решил перепройти. Как вдруг, мне пришла в голову одна мысль: А что если попытаться воссоздать Метро 2033, в качестве мода для HL? И я откровенно загорелся этой мыслью. Хорошая физика, нормальная, как мне показалось оптимизация, добротные анимации, а также возможность кардинально переделать отдельные геймплейные моменты (Как пример тот же Insurgency, который изначально появился как мод для ХЛ). При всем при этом, у меня остается ряд вопросов, на которые я не могу найти ответ на просторах необъятного, либо информация не о том, что нужно, либо она слишком расплывчатая.
Так вот, вопросы у меня следующего характера:
1) Возможно ли создать систему диалогов, как в том же Свалкере, Фоллыче и в других играх, где можно подойти и поговорить с кем угодно?
2) Можно ли создать полноценную торговлю? Торговлю, по типу той же Ссалкеровской?
3) Можно ли сделать необходимость принятия пищи и питья, а также использования противогаза и тд?
4) Можно ли создать полноценную политику, в которой проход на какие-то станции был бы затруднителен, требовал бы пропуска, документы и прочий мусор?
5) Есть ли возможность внедрить систему лута всякого доброго и не очень дерьма, крафта всякой ненужной (Или напротив) параши?
6) Самое примитивное, на мой взгляд: Можно ли как-то сделать, чтобы персонаж мог приобретать одежду, шапки, каски, маски и прочее?
Пока все. Если что-то придет на ум дополнительно, дополню. Тема слишком объемная и вопросов у меня уйма.
Вот такая вот у меня идея. Если вам моя задумка показалась интересной, вы захотели подсобить словом или делом, то я категорически рад любой помощи.
А теперь небольшая просьба. Я знаю, что опоздал с этой идеей лет на 10. Однако я хотел бы услышать именно конструктивные мысли, конкретно по тому, о чем я изложил выше. Иными словами, я бы хотел избежать полемик на тему: "Сурс устарел, Анрил / Юнити (Нужное подставить) лучше" или "Сейчас ностальгией никого не удивить" или "Ничего у вас не получится, утята. " и тд.
Заранее спасибо!

Читайте также: