Эта тема может быть неактуальна по причине того, что вышел новый движок Source 2.
В этой статье я расскажу об извлечении моделей из Доты 2, декомпиляции (преобразованию моделей в формат понятный 3д редакторам), импорту в 3ds Max для привязки к костям оригинальной модели (без этого модель не будет видно в игре) и импорту вашей модели в Доту 2, используя 3ds Max, на примере оружия Свена. Для создания моделей вам необходимо знать или начать изучать программы по 3д моделированию, в интернете масса бесплатных уроков.Вам потребуются:GCFScape - для извлечение файлов Доты 2 StudioCompiler - для декомпиляции моделей
Спойлер: 'установка StudioCompiler'
1) Установите со стима Sourse SDK 2) ЗАПУСТИТЕ И ВЫЙДИТЕ С НЕГО ! ! ! 3) StudioCompiler установите в .....\Steam\steamapps\имя_пользователя\sourcesdk\bin\ep1\bin 4) В настройках StudioCompiler укажите путь ......\Steam\steamapps\имя_пользователя\sourcesdk\bin\orangebox\bin (указывать вручную, кнопку пути нажимать нельзя иначе вылетит, просто зайдите в эту папку, скопируйте путь и вставьте в нижнюю строчку)
VTFEdit - конверетация текстур.Скачать: for_Dota2 (Возможно уже есть более новые версии этих программ, советую погуглить) 3ds Max качайте с инета или своей сети.
После установки необходимых программ, запускаем gcfscape и открываем D:\Program Files (x86)\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk
Спойлер: 'Изображение'
"+" открываем models >> items, выбираем папку sven и правой кн. мыши жмем Extract, указываем папку для извлечения (я на рабочий стол распаковал).
Спойлер: 'Изображение'
открываем папку и меняем имя файла sven_sword.dx90.vtx на sven_sword.dx80.vtx
Спойлер: 'Изображение'
StudioCompiler-ом на вкладке Model Decompile в верхней строчке открываем sven_sword.mdl нажав кнопку справа, а вот в нижней строчке аналогичную кнопку нажимать нельзя (баг программы), нужно указать путь извлечения вручную (я создал папку decom, открыл её, скопировал путь и вставил в нижнюю строчку), и жмем Extract. (папка должна быть уже создана, программа не сможет ее создать). Если бы мы не поменяли имя файла sven_sword.dx90.vtx на sven_sword.dx80.vtx относящийся к sven_sword.mdl, то при декомпиляции возникла бы ошибка.
Спойлер: 'Изображение'
Вот что получилось в папке, нам нужен только нижний файл выделенный на скрине.
Спойлер: 'Изображение'
Импортируем sven_sword_LOD0_model.dmx.smd в Макс, если нет соответствующего формата для импорта, то скачайте плагин в инете, например тут http://www.maxplugins.de/ (укажите год вашего Макса, далее слева выберете раздел Import / Export, и найдите Half-Life 2 SMD Exporter, установите). Импортировав стандартный меч Свина мы теперь знаем его размер и местоположение, также обратите внимание в разделе Modifer в вкладке Bones показана кость weapon_root привязанная к оригинальному мечу, ее нужно будет привязать к созданной вами модели (об этом позже).
Спойлер: 'Изображение'
Создайте вашу модель (создавать можно в любом удобном для вас 3д моделере и пользуясь экспортом-импортом засунуть ее в Макс) и переместите ее на место оригинала. Я создал два примитива-цилиндра просто для примера, стоит оно под углом т.к. меч Свина как вы знаете двуручный и расположение рук держащий этот меч именно такое.
Спойлер: 'Изображение'
Подогнав размер вашей модели и поставив ее на место оригинала, нам нужно удалить оригинальный меч, НО ОСТАВИТЬ КОСТЬ от него для привязки к нашей модели. Для этого кликаем по оригиналу и в разделе Modifer выбераем Editable Mesh, вылезет окно, жмем "Yes" и после удаляем меч (кн. Delete на клаве).
Спойлер: 'Изображение'
В моем случае (модель из двух цилиндров) выделяю оба и правой кн. мыши конвертирую в Editable Poly (лучше в Editable Mesh и на всех дальнейших скриншотах, считайте что вместо Poly стоит Mesh... *подробнее в самом конце поста ) .
Спойлер: 'Изображение'
Далее для удобства можно сделать из двух разделенных цилиндров один объект.
Спойлер: 'Изображение'
Добавляем кость от оригинала к нашей модели: Вкладка Modifer, выделена наша модель, жмем на стрелочку как на скрине и в всплывающем списке выбираем Skin.
Спойлер: 'Изображение'
Жмем Add, выбираем кость Weapon_root и кнопку Select.
Спойлер: 'Изображение'
в вкладке Bones появилась кость.
Спойлер: 'Изображение'
Экспортируем нашу модель в формат .FBX (это для Доты самый стабильный вариант).
Спойлер: 'Изображение'
Создаю вкратце текстуры, для примера однотонные сойдут размер 256 х 256 px. формат .tga, но размер этот для Свина оружия, для других может отличатся, посмотреть нужный можно в Доте. (qwer_mask1.tga взял от оригинала, т.к. в отличии от остальных оригинальных с нарисованными текстурами, на нем их не было, подробнее о текстурах для Доты ищите инфу на сайте Valve) Должно быть четыре текстуры: имя_color.tga , имя_mask1.tga , имя_mask2.tga , имя_normal.tga (ниже объясню как делать развертку текстур для моделей, а по маскам и нормалям пока что не разбирался, почитайте тут, мб поймете что нибудь ссылка).
Спойлер: 'Изображение'
Смотрим как будет выглядеть модель в Доте:
Спойлер: 'Изображение'
текстуру указываем только _color.tga, но остальные должны лежать с ней в одной папке. Вот такое уг получилось, но суть поста не в создании моделей, а их импорта в Доту.
после просмотра или неудачной попытки отправить, вы исправляете свою модель и нужно ОБЯЗАТЕЛЬНО перезайти в "отправить предмет", например зайдите в "мои предметы" и обратно, заполнить все заного, т.к. просмотрщик новое не воспринимает, пока не перезайдеш в "отправить предмет"
Итак, делаем развертку текстуры... Выделяем модель (раздел Modifer >> Editable Poly), открываем список выбираем UVW Map.
Спойлер: 'Изображение'
Ставим Box и выбираем из списка Unwrap UVW
Спойлер: 'Изображение'
Открываем UV Editor и видим что развертка у нас скажем так не очень, жмем на кнопицу как на скрине, чтоб разделить карту модели на части
Спойлер: 'Изображение'
выбрав кнопкой отображение полигонов, мы можем смотреть какая часть на карте текстур отвечает за части модели кликая либо по модели либо по карте, это полезно при расскраски текстур для модели например в Фотошопе.
Спойлер: 'Изображение'
правой кн. мыши по пустому месту на карте вызываем меню и жмем как на скрине. (1024 х 1024 для удобства раскрашивания, потом измените размер на нужный в том же Фотошопе)
Спойлер: 'Изображение'
сохраняем карту в .tga
Спойлер: 'Изображение'
Вот что получилось (чёрным я залил чтоб было видно границы модели), разукрашиваем, сохраняем в имя_color.tga и ищите информацию о том как делать маски и нормали (мб я позже выложу).
Спойлер: 'Изображение'
Так же можно использовать плагины для развертки текстур, например UV layout, или другими... (в инете можно найти + урок по ним)
Просмотр оригинальных текстур: gcfscape-ом так же открываем D:\Program Files (x86)\Steam\steamapps\common\dota 2 beta\dota\pak01_dir.vpk , извлекаем текстуры ("+" materials >> models >> items >> sven) и открываем их (*.vtf) VTFEdit-ом. В архиве лежит две разных версии, но у меня на 7-ке новая не хочет работать, поэтому я юзаю старую, предварительно приходится *.vtf файлы редактировать, т.к. вылазиет такая ошибка: " File version 7.5 does not match 7.0 to 7.4 " подробнее тут: ссылка После открытия .vtf текстуры можно ее экспортировать в один из привычных форматов:
Кстати, обратите внимание на количество полигонов в созданной вами модели и допустимое в доте, если ваша модель будет хоть на 1 полигон больше чем позволено, то в доте вылезет ошибка и модель не отобразится. Для точного отображения полигонов, конвертируйте вашу модель в Editable Mesh, т.к. в Mesh, в отличии от Poly, есть кнопка отображения "Face" - *треугольников, которых в Доте ограничено допустимое количество для ваших моделей. Дота их называет полигонами, что не совсем правильно, т.к. полигон может иметь форму например квадрата, а треугольников в нём два, именно их она и считает... Выделите модель, на вкладке Editable Mesh (нажав "+") выберите соответствующий параметр (Face) и обведите модель снова (мышкой пунктирной линией, чтоб выделить все треугольники) и справа смотрите кол-во "полигонов доты" вашей модели.
автор сам писал или копипастил? Хотя похоже что сам, да если и не сам, то все равно вроде разбираешься. А я блин учусь на физмате ВУЗА и лентяй все себя не заставлю этим заняться
Арт, проверь орфографию и подправь еще разик, чтоб красиво было, и ты получишь много плюсиков =)
Krack сказал(а):↑
автор сам писал или копипастил? Хотя похоже что сам, да если и не сам, то все равно вроде разбираешься. А я блин учусь на физмате ВУЗА и лентяй все себя не заставлю этим заняться
А может кто-то знает все тоже, про привязку костей, но для blendera? Просто уже долго пытаюсь, даже как-то смог привязать, но коряво, в результате чего в просмотре в доте уже самой часть модели в руке персонажа, а другая часть растянута по всему экрану... Как ни пытаюсь-ничего...уже в отчаянии, неужели придется качать макс, только ради привязки костей.
А может кто-то знает все тоже, про привязку костей, но для blendera? Просто уже долго пытаюсь, даже как-то смог привязать, но коряво, в результате чего в просмотре в доте уже самой часть модели в руке персонажа, а другая часть растянута по всему экрану... Как ни пытаюсь-ничего...уже в отчаянии, неужели придется качать макс, только ради привязки костей.
Нажмите, чтобы раскрыть...
Ты обрати внимание в каком порядке кости привязаны в оригенале, например там 1,2,3 , а у тебя 2,1,3 из за этого может быть такой косяк...
Импортируем sven_sword_LOD0_model.dmx.smd в Макс, если нет соответствующего формата для импорта, то скачайте плагин в инете, например тут http://www.maxplugins.de/ (укажите год вашего Макса, далее слева выберете раздел Import / Export, и найдите Half-Life 2 SMD Exporter, установите). народ подскажите этот плагин есть токо для версии макса 2010 и 2012? или какаето из них подходит для 2011? http://www.chaosincarnate.net/cannonfodder/cftools.htm тут ненашёл на 2011
вот оно на том сайте который я порекомендовал, правда аж на 7-й странице списка нашел... перейдеш по линку и у тя в самом верху будет он: " 3D Studio Max SMD Export Plug-in - Export Source SMD model and animation files " -называется
Кстати, обратите внимание на количество полигонов в созданной вами модели и допустимое в доте, если ваша модель будет хоть на 1 полигон больше чем позволено, то в доте вылезет ошибка и модель не отобразится. Чтобы посмотреть кол-во полигонов, выделите модель, на вкладке Editable Poly (нажав "+") выберите соответствующий параметр (Polygons) и обведите модель снова (мышкой пунктирной линией, чтоб выделить все полигоны) и справа смотрите кол-во полигонов вашей модели.
народ помогите плиз с прогой studio complier когда нажимаю extract прога закрывается
Нажмите, чтобы раскрыть...
я вот не помню крякал ли я его или Source SDK со стима устанавливал для его работы, отпишитесь кто нить по этому поводу... дай на всякий случай скрин c заполнеными полями до нажатия кнопки Extract...