[Туториал]Импорт/Экспорт моделей и мини-FAQ
Добавлено: 28.06.2010, 09:35
Подробный туториал по импорту source моделей и обратной процедуре - экспорту в игру.
Нам потребуется :
MDL Decompiler (версия 0.5)
MDL Decompiler (версия 0.4 для декомпила персов из л4д/л4д2)
Notepad++ или любой Hex редактор.
GUI StudioMDL
Настоятельно не рекомендуется использовать якобы проагрейденные декомпиляторы.
Итак, для начала, с помощью программы GCFScape достанем какую-нибудь модель, например сэндвич.
Открываем team fortress 2 content.gcf и находим сэндвич, вот здесь - tf\models\weapons\c_models\c_sandwich
Здесь 6 файлов, они все нам нужны. Экспортируем их куда-нибудь.
Теперь необходимо поправить mdl файл, чтобы декомпилятор смог разложить сэндвич по полочкам.
Открываем c_sandwich.mdl при помощи Notepad++
Меняем "IDST0" (или другие вариации, например IDST1 и т.д.) на "IDST,"
Сохраняем. Теперь декомпилируем модель при помощи MdlDecompiler.
MdlDecompiler ставится в steamapps\username\sourcesdk\bin\ep1\bin
Мини FAQ по декомпилу:
Q: Анимации выглядят странно, например оружие развёрнуто на 180 градусов.
A: Выберете галочку Do not fix rotations on animations. Затем в qc добавьте строчку $origin 0 0 0 -90
Q: Я не могу выбрать модель, пишет Extra App ID set to ...
A: Проверьте, снята ли галочка с Use Steam File Acces.
Q: В TF2 и L4D, анимации безумно бьются, находятся на немыслимых координатах, некоторые кости вылезают за пределы сцены и т.д.
A: Возрадуйтесь новому формату mdl, джентельмены! В случае с TF2, можно найти старую версию TF2 и декомпилировать нужные анимации оттуда, в случае с остальными играми, можно лишь писать гневные письма в Valve с требованием дать исходники. Но если вы лишь хотите заменить модельку оружия, можно воспользоваться этим решением.
Для импорта в 3ds max нам потребуются плагины с поддержкой smd файлов (смотрим здесь для 6-8 и здесь для версий выше).
Всё. После того как над моделью проделаны нужные операции, сохраняем смд. Теперь нам портебуется GUIStudioMdl.
Указываем пути до sdk, загружаем qc и жмём Compile.
Мини FAQ по компилу:
Q: Появляется ошибка error path <...>.
A: Необходимо создать папку, в которую вы компилите модель.
Q: Когда я запускаю компиляцию, ничего не происходит.
A: Steam должен быть запущен, иначе studiomdl не будет работать.
Q: При компиляции персонажей выходит ошибка unknow rule for.
A: Рядом в кавычках написан номер проблемной строки. Декомпиляция несовершенна, поэтому в полученных файлах есть несостыковки. Просто удалите эту строку (Правка->Перейти).
Q: При компиляции персонажей выходит ошибка Short conversion out of range.
A: Проблема в том, что модель содержит более, чем 32767 вершины. Это больше, чем поддерживает движок Source. 10000 полигонов — что-то вроде неформального максимума числа полигонов для движка Source. Обойти данную проблему можно, разрезав модель на несколько smd.
Пример qc для физ. предмета:
$modelname "weapons/c_models/c_sledgehammer/c_sledgehammer.mdl" //Путь компилируемой модели
$model "c_sledgehammer_reference" "c_lead_pipe.smd" //Название smd
$cdmaterials "models/weapons/c_items" //Путь до текстур
$hboxset "default" //Генерация хитбоксов
$surfaceprop "metal" //Физ. свойства объекта (плавучесть и т.д.) Больше здесь
$illumposition 2.497 0.125 11.305 //Точка освещения
$sequence idle "idle" fps 30.00 //Анимация ничегониделания. Обязательна
$collisionmodel "c_lead_pipe.smd" { //Физическая модель, генерируется из меша, и её параметры
$mass 5.1
$inertia 1.00
$damping 0.00
$rotdamping 4.00
}
Нам потребуется :
MDL Decompiler (версия 0.5)
MDL Decompiler (версия 0.4 для декомпила персов из л4д/л4д2)
Notepad++ или любой Hex редактор.
GUI StudioMDL
Настоятельно не рекомендуется использовать якобы проагрейденные декомпиляторы.
Итак, для начала, с помощью программы GCFScape достанем какую-нибудь модель, например сэндвич.
Открываем team fortress 2 content.gcf и находим сэндвич, вот здесь - tf\models\weapons\c_models\c_sandwich
Здесь 6 файлов, они все нам нужны. Экспортируем их куда-нибудь.
Теперь необходимо поправить mdl файл, чтобы декомпилятор смог разложить сэндвич по полочкам.
Открываем c_sandwich.mdl при помощи Notepad++
Меняем "IDST0" (или другие вариации, например IDST1 и т.д.) на "IDST,"
Сохраняем. Теперь декомпилируем модель при помощи MdlDecompiler.
MdlDecompiler ставится в steamapps\username\sourcesdk\bin\ep1\bin
Мини FAQ по декомпилу:
Q: Анимации выглядят странно, например оружие развёрнуто на 180 градусов.
A: Выберете галочку Do not fix rotations on animations. Затем в qc добавьте строчку $origin 0 0 0 -90
Q: Я не могу выбрать модель, пишет Extra App ID set to ...
A: Проверьте, снята ли галочка с Use Steam File Acces.
Q: В TF2 и L4D, анимации безумно бьются, находятся на немыслимых координатах, некоторые кости вылезают за пределы сцены и т.д.
A: Возрадуйтесь новому формату mdl, джентельмены! В случае с TF2, можно найти старую версию TF2 и декомпилировать нужные анимации оттуда, в случае с остальными играми, можно лишь писать гневные письма в Valve с требованием дать исходники. Но если вы лишь хотите заменить модельку оружия, можно воспользоваться этим решением.
Для импорта в 3ds max нам потребуются плагины с поддержкой smd файлов (смотрим здесь для 6-8 и здесь для версий выше).
Всё. После того как над моделью проделаны нужные операции, сохраняем смд. Теперь нам портебуется GUIStudioMdl.
Указываем пути до sdk, загружаем qc и жмём Compile.
Мини FAQ по компилу:
Q: Появляется ошибка error path <...>.
A: Необходимо создать папку, в которую вы компилите модель.
Q: Когда я запускаю компиляцию, ничего не происходит.
A: Steam должен быть запущен, иначе studiomdl не будет работать.
Q: При компиляции персонажей выходит ошибка unknow rule for.
A: Рядом в кавычках написан номер проблемной строки. Декомпиляция несовершенна, поэтому в полученных файлах есть несостыковки. Просто удалите эту строку (Правка->Перейти).
Q: При компиляции персонажей выходит ошибка Short conversion out of range.
A: Проблема в том, что модель содержит более, чем 32767 вершины. Это больше, чем поддерживает движок Source. 10000 полигонов — что-то вроде неформального максимума числа полигонов для движка Source. Обойти данную проблему можно, разрезав модель на несколько smd.
Пример qc для физ. предмета:
$modelname "weapons/c_models/c_sledgehammer/c_sledgehammer.mdl" //Путь компилируемой модели
$model "c_sledgehammer_reference" "c_lead_pipe.smd" //Название smd
$cdmaterials "models/weapons/c_items" //Путь до текстур
$hboxset "default" //Генерация хитбоксов
$surfaceprop "metal" //Физ. свойства объекта (плавучесть и т.д.) Больше здесь
$illumposition 2.497 0.125 11.305 //Точка освещения
$sequence idle "idle" fps 30.00 //Анимация ничегониделания. Обязательна
$collisionmodel "c_lead_pipe.smd" { //Физическая модель, генерируется из меша, и её параметры
$mass 5.1
$inertia 1.00
$damping 0.00
$rotdamping 4.00
}