Sidebar

Изменяем размер модели без 3д редактора (под скайбокс например)

  • Рекомендуется задавать вопросы только относительно темы с уроком. Для остальных вопросов существует раздел [url=http://cs-mapping.com.ua/forum/forumdisplay.php?f=12]«Помощь»[/url].

    Темы с просьбами помощи будут удаляться без предупреждения и без объяснения причины.

    Запрещается поднятие старой темы оффтопом. Ваше сообщение будет удалено, а в профиль будет выписано замечание.

Dive

New member
26.08.2008
263
25
Изменяем масштаб модели без 3д редактора (для скайбокса)

Доброго времени суток ! Рад представить мой первый перевод туториала. Оригинальный туториал взят с сайта

www.interlopers.net

Если вы найдете какие-либо ошибки перевода или грамматические, пожалуйста, напишите о них в теме. Начнем.

Хорошо, хорошо, я знаю что вы думаете ... "но все сказали что я не могу изменять масштаб моделей!!". Они правы. Вы не можете. Но вы можете создать копию модели, с другим масштабом.

Этот метод довольно долгий, и поначалу выглядит несколько усложненным, но он существует, так что...

а) Вы не должны волноваться по поводу конфликтов и прочего, потому что у вас будет собственная уникальная копия модели.

б) Вы можете не думать про 3д редакторы !

В основном этот метод используется для переноса нормальных моделей в 3д скайбокс, или использования моделей из скайбокса для основного уровня. Всё что вы можете изменить этим методом - изменить масштаб модели полностью. Вы не можете, например, увеличить только высоту. Вы можете контролировать только основной масштаб, а не для каждой отдельной оси.

Основная идея в том, что бы декомпилировать модель, и снова скомпилировать, но со слегка измененными настройками и другим именем. Так что, во первых вам нужен cannonfodder's MDL decompiler . (прим. переводчика: Этот компилятор также входит в состав revolution sdk). Благослови бог cannonfodderа за создание отличных инструментов для ХЛ2.

Запускаем декомпилятор. Для этого примера, я буду менять масштаб модели models/props_combine/combine_barricade_med02a, чтобы я мог использовать баррикаду комбайнов в 3д скайбоксе.



На скриншоте не видно, но я выбрал для output directory папку c:\program files\Steam\SteamApps\***\sourceSDK_content\hl2\modelsrc\Jesta\.

Теперь одна важная мелочь - если вы делаете это для HL2MP или CS:S, вы должны выбрать директорию modelsrc соответствующего мода. Но всегда делайте отдельную папку с вашим именем, или именем карты, или чем нибудь ещё. Это не только упрощает поиск файлов, это страхует нас от файловых конфликтов с оригинальными моделями.

Теперь жмем "Extract", дайте ему доделать работу и затем закройте. Найдите папку, в которую вы извлекали. Вы увидите что-то вроде этого:



Откройте файл mdldecompiler.qc в блокноте, или любом другом текстовом редакторе. Вы увидите что-то вроде этого :
$cd "C:\Program Files\Steam\SteamApps\***\sourcesdk_content\hl2\modelsrc\Jesta"
$modelname "props_combine\combine_barricade_med02a.mdl"
$model "Body" "combine_barricade_med02a_reference.smd"
$lod 30
{
replacemodel "combine_barricade_med02a_reference" "lod1_combine_barricade_med02a_reference"
}
$lod 40
{
replacemodel "combine_barricade_med02a_reference" "lod2_combine_barricade_med02a_reference"
}
$lod 100
{
replacemodel "combine_barricade_med02a_reference" "lod3_combine_barricade_med02a_reference"
}
$lod 110
{
replacemodel "combine_barricade_med02a_reference" "lod4_combine_barricade_med02a_reference"
}
$cdmaterials "models\props_combine/"
// Model uses material "combine_barricade_tall02b.vmt"
// Model uses material "com_shield001a.vmt"
// Model uses material "combine_grate01a.vmt"
// Model uses material "PHONG_combine.vmt"
$surfaceprop "combine_metal"
$illumposition 0.000 0.000 34.101
$sequence idle "idle" fps 30.00
$collisionmodel "phymodel.smd" {

$concave
$mass 60.0
$inertia 1.00
$damping 0.00
$rotdamping 0.00
}

Отлично. Теперь мы должны сделать 2 вещи. Во первых, нам нужно изменить имя модели и её местоположение. Так что вторую строчку

$modelname "props_combine\combine_barricade_med02a.mdl"
Меняем на что то вроде этого
$modelname "Jesta\combine_barricade_med02a_skyboxscale.mdl"

Это говорит компилятору компилировать модель в C:\Program Files\Steam\SteamApps\***\half-life 2\hl2\models\Jesta\ и назвать скомпилированный файл combine_barricade_med02a_skyboxscale.mdl

Я меняю папку назначения И имя файла. Вообще то, вам достаточно изменить что-нибудь одно, но изменение 2х значений гарантирует 100% безопасность, упрощает поиск, а также позволяет получить хорошую практику, так как файловая система стима иногда бывает весьма запутанной.

У некоторых моделей уже есть строчка $scale 1.0 где нибудь. Если такая строчка есть, вы уже можете менять масштаб на любой другой, если нет - мы начнем через секунду.

Если вы не можете найти строчку $scale 1.0, создайте её, но она должна быть сразу под строчкой $modelname, которую мы только-что меняли. Теперь меняем масштаб. Это должно быть очевидным... Если вы хотите поместить нормальную модель в скайбокс, вы должны изменить масштаб на 0.0625. Если вы хотите поместить на карту модель из скайбокса, поменяйте значение на 16. Или на любое другое, реально... кто-нибудь может попробовать сделать карту с увеличенными вдвое бочками с бензином или ещё чем-нибудь .

Для моих целей, я использовал значение 0.0625. Так что макушка моего qc файла выглядит так :

$cd "C:\Program Files\Steam\SteamApps\***\sourcesdk_content\hl2\modelsrc\Jesta"
$modelname "Jesta\combine_barricade_med02a_skyboxscale.mdl"
$scale 0.0625
.
.
.
.
Теперь сохраните свой .qc файл. Пора компилировать ! Самый простой способ это сделать это создать на рабочем столе ярлык к "C:\Program Files\Steam\SteamApps\***\sourcesdk\bin\studiomdl.exe". Затем перетащите мышкой файл mdldecompiler.qc на этот ярлык. Вылезит окошко и начнет работать над моделью. Как только компиляция завершится, окошко закроется.

Готово ! Если вы откроете папку, указанную вами в .qc файле, в моем случае C:\Program Files\Steam\SteamApps\***\half-life 2\hl2\models\Jesta\, вы увидите следующее :



Прекрасно ! Теперь мы можем открыть модель в modelvieverе, или засунуть на карту. Я сделал небольшую карту - сравнение между оригинальной моделью и измененной под скайбокс. Оранжевая зона это сама карта, а серая - 3д скайбокс.



Несколько подсказок

Вам часто понадобится добавит строку $staticprop в qc чтобы заставить модель работать, особенно если вы используете модели, изначально задуманные как физические объекты. Как вы можете догадатся, это превратит модели в статичные пропы, это означает , что вы должны будете использовать prop_static для них

Мне показалось хорошей идеей установить bat файл для studio mdl на рабочий стол, в основном потому, что я могу создать команду pause в конце, которая позволяет мне посмотреть, что сделал компилятор. Так что у меня этот файл выглядит так :
"C:\Program Files\Steam\SteamApps\***\sourcesdk\bin\studiomdl.exe" "C:\Program

Files\Steam\SteamApps\***\sourcesdk_content\hl2\modelsrc\Jesta\mdldecompiler.qc"

pause

Иногда модели получаются направленными лицом не туда, куда надо... я думаю это из-за декомпилятора. Это не очень важная проблема, но знайте о ней.

Вам понадобится засунуть новые модели в карту, лучше всего использовать BSPZIP. Читайте документацию к СДК, но не забудьте засунуть ВСЕ новые модели (показанные в третьем скриншоте - они
все важны !).

[email protected]
 
Последнее редактирование:

SuhariGG

КМС по КСМ
28.02.2010
1 369
28
6
0
Напиши в названии не "под скайбокс например", а "только под скайбокс"
 

Dive

New member
26.08.2008
263
25
2 SuhariGG:
не согласен, тутор годится и для обратного переноса, и ещё для много чего. :)
 
Последнее редактирование:

Pommity

Member
06.04.2009
656
0
16
Туториал для нубов. Я это прошёл, когда ещё про моделирование не знал совершенно ничего.
А зачем менять параметр $modelname? Чтобы сделать копию модели? Можно его не менять, и никаких копий. Кстати, параметр $scale означает не размер, а значение, во сколько раз оригинальный размер модели увеличится (надо умножать на это значение). Например, $scale 2.0 значит, что размер модели увеличится в 2 раза, а $scale 0.5 - уменьшится в 2 раза.
 

SuhariGG

КМС по КСМ
28.02.2010
1 369
28
6
0
2 Dive: к сожалению, не годиться. Ты его сам-то пробывал? Думаю нет.
А есть маленькая проблема: после декомпиляции создается неверный файл коллизии, не соответствующий первоначальному. После обратной компиляции мы получим внешне такую-же модель, но с неверной (чаще всего соединеющий самые крайние вертексы) коллизией.

Для первого двигла этот тутор годен, но на соурс - только создание моделей для скайбокса.
 

Dive

New member
26.08.2008
263
25
2 Pommity:
Параметр modelname менять нужно, чтоб сделать копию модели, конечно, это не обязательно, при желании можно заменить оригинальную модель.
2 SuhariGG: я этот туториал выполнил, у меня получилась маленькая модель истребителя для скайбокса. Коллизию да , не проверял, однако припарентить модельку к функ трак трейну получилось.
Ну раз колизия левая получается, название темы поменяю. Всё таки в скайбоксе коллизия не так важна.
 

Pommity

Member
06.04.2009
656
0
16
SuhariGG сказал(а):
2 Dive: к сожалению, не годиться. Ты его сам-то пробывал? Думаю нет.
А есть маленькая проблема: после декомпиляции создается неверный файл коллизии, не соответствующий первоначальному. После обратной компиляции мы получим внешне такую-же модель, но с неверной (чаще всего соединеющий самые крайние вертексы) коллизией.
Не совсем правильно. Просто это проблема декомпилятора. Без скейла то же самое. Декомпилятор убирает из модели физбокса информацию о сглаживании (smooth).
Немного подредактировать её и всё ОК
 

Z-O-M-B-I-E

Школоло
29.06.2009
8 622
Во 1, нафига коллизия для ская?
З.Ы.
Коллизия и вправду бъётся при декомпиле, и исправляется тока в 3Д редакторе.
 

Dimex

Well-known member
27.03.2008
2 206
27
72
48
Belarus
  • Бронзовая медаль 115
  • Золотая медаль 115
SuhariGG сказал(а):
2 Dive: Для первого двигла этот тутор годен, но на соурс - только создание моделей для скайбокса.
На первом двигле через model viewer можно это сделать, без всяких декомпилов.
 

Pommity

Member
06.04.2009
656
0
16
Dimex сказал(а):
На первом двигле через model viewer можно это сделать, без всяких декомпилов.
Если в модели присутствует анимация - не поможет. Тогда только $scale
 

Outlaw

New member
16.07.2016
26
29
1
3
Привет. Так проблему с колизией профиксили? А то я переделал ворота (увеличил в 1.443 раза), если они закрыты - все прекрасно, но для открытых появился баг.
Вот скрин было-стало.
 
Последнее редактирование:

Новые сообщения

Донат - Хостинг

Итого
200.00 $
Цель
600.00 $

Доноры Красавчики

Пользователи онлайн

Нет пользователей онлайн.