Конвертация объектов из The Sims 2 в The Sims 3
Оговорюсь сразу: начинать рекомендую с декора, поскольку большинство других предметов подразумевает привязку анимации и написание соответствующих скриптов на языке C#. Дело это непростое - единого шаблона не существует. Другими словами, нужно неплохо разбираться в синтаксисе C++, чтобы добиться удовлетворительных результатов.
Сам процесс конвертации можно разбить на несколько шагов:
1. Извлечение меша предмета Sims 2
2. Создание меша предмета Sims 3 (клонирование стандартного меша при помощи s3oc)
3. Замена меша предмета Sims 3 мешем предмета Sims 2 в Milkshape
4. Перекройка текстур в графическом редакторе
Итак, нам потребуется:
-
s3oc - последняя версия
-
s3pe - последняя версия
-
Milkshape на примере (1.8.5 Beta)
-
Графический редактор, поддерживающий загрузку .dds файлов. Покажу на примере Photoshop.
-
Плагины .dds для Photoshop (внимание, с CS4 они не работают - нужна версия ниже)
Шаг 1: Выбираем предмет (декора, как вы догадались) для конвертации из старой, доброй TS2.
Я остановилась на зонтике производства Razer94:
Качаем файл, распаковываем архив и находим меш:
Открываем данный файл в SimPe и в окошке Resource Tree находим строчку Geometric Data Container (GMDC) - кликаем по ней, а затем по файлу в соседнем окошке. В Plugin View должна получиться следующая картина:
Жмём "Export" и сохраняем файл в формате .obj в любое удобное место - я для удобства всегда в таких случаях создаю рабочую папку, куда помещаются все временные файлы.
Еще не всё. Помимо меша, из этого же package нужно извлечь файлы текстур. Находим в Resource Tree строчку Texture Image (TXTR) и тем же образом извлекаем содержимое -> клик по Export, и сохраняем файлы в формате .png в рабочую папку:
SimPe можно закрыть.
Шаг 2. Клонируем меш Sims 3, который послужит основой для нашего предмета.
Запускаем s3oc и щелкаем по File -> New (Clone) (legacy)...
Поскольку создаём предмет декора, клонировать можно любой из объектов - функции предмета нам не важны. Если же вы решили конвертировать что-то функциональное, подберите для основы предмет с теми же функциями: для стола - стол, для дивана - диван, для телевизора - телевизор и так далее. У меня это - зонтик, поэтому я не стала ходить далеко и выбрала для основы такой же предмет декора - садового гнома (советую выбирать для создания декора именно его - во многих других предметах отсутствуют тени\текстуры). После выбора объекта жмём Clone or Fix... А затем Start, сохраняем файл под любым именем и ждём завершения операции. Если всё прошло удачно, появится небольшое окошко с буквой I.
S3oc можно свернуть или временно закрыть.
Шаг 3. Извлекаем из меша Sims 3 необходимые файлы для работы в Milkshape.
Запускаем s3pe и открываем в ней то, что только что клонировали в s3oc: File -> Open. Появился список файлов. Для работы нам потребуются те, что с тегом _IMG, 3 MLOD и один MODL. Их-то мы и будем извлекать.
Выделяем эти файлы и жмём Resource -> Export -> To File -> Выбираем свою рабочую папку.
Сворачиваем s3pe. Не закрывать! Запутаетесь!
Шаг 4. Млоды и Модлы.
Собственно, меши и тени предмета из TS3 мы достали - это те самые 3 файла MLOD и один MODL, но пока они существуют в совершенно непригодном для редактирования виде. В Milkshape их пока еще загрузить нельзя. Чтобы это стало возможным, пропускаем эти файлы через Object Tool. Для начала очень рекомендую создать в своей рабочей папке четыре подпапки, иначе после данного шага в ней образуется безумное количество файлов, в которых очень легко потеряться. Это делается всякий раз, когда мы имеем дело с мешингом в Sims 3, так что лучше сразу приучить себя сортировать файлы таким образом. Назовём эти подпапки "1", "2", "3", "4" и разложим в них 3 MLOD и 1 MODL - по одному файлу на каждую подпапку.
Открываем папку "1", щёлкаем правой кнопкой по файлу и выбираем "Открыть с помощью..". Находим в списке S3ObjTool:
В открывшейся программе кликаем по MODL/MLOD Info и находим в папке "1" один единственный файл. Его и открываем:
После этого щёлкаем по Decompile, снова указываем путь к файлу в папке "1". При удачном исходе вы увидите справа сообщение: "No errors":
Проделываем те же операции с файлами в папках "2", "3", "4".
Проверяем - в каждой из этих папок количество файлов должно увеличиться.
Шаг 5. Milkshape и компания.
Распаковываем архив (ObjMSPlugins.rar) с плагинами к Milkshape в папку с данной программой.
Запускаем Milkshape и импортируем туда файл из папки "1": File -> Import -> Sims3Object Import V1.00:
Сразу обратите внимание на вкладку Groups. Групп в ней две: меш и тень. Теперь главное не запутаться при импорте меша из TS2:
-
group00 - тень
-
group01 - меш
При замене стандартного меша собственным, порядок должен остаться тем же: тень первая в списке, меш - сразу за ней. Названия групп также следует оставить теми же самыми.
Итак, File -> Import -> Wavefront OBJ -> меш TS2, извлечённый в 1-м шаге. Получилось что-то страшное:
Что делаем дальше:
-
удаляем group00 и group01 -> Delete (гном должен пропасть)
-
выбираем по одной остальные группы: в моём случае это sculpture, fabric, groundshadow -> Select.
Здесь из названия понятно, что groundshadow - это тень. Остальное - части меша. Однако, зачастую определить, чем является та или иная группа, можно лишь выбрав её, что мы и сделали. Свои группы в исходный меш, к сожалению, добавлять нельзя, поэтому, если у вас получилось несколько частей меша (несколько групп), как у меня (sculpture и fabric), нужно объединить их в одно целое -> Regroup.
Если вы не хотите, чтобы ваш предмет отбрасывал тень, не удаляйте эту группу - просто спрячьте её внутри меша. Выберите только тень и установите параметры Scale (например, 0.5 по каждой оси) -> Scale. Эта операция уменьшит тень в 2 раза. Если же этого не достаточно, чтобы спрятать её внутри меша, повторите scale, пока тень не уменьшится в размерах. Затем -> move и перемещаем тень под меш\внутрь меша (в зависимости от объекта и вашей находчивости).
И, наконец, последний этап этого шага - текстурирование и задание текстурных координат. Всё это достаточно просто, но всё же.
Выбираем группу с мешем (или несколько групп - зависит от исходного меша и его количества текстур) -> Select, переходим на вкладку Materials: New. Чуть ниже видим две кнопки, гласящие <none>. Кликаем по первой из них и выбираем текстуру, извлечённую из SimPe в шаге 1.
Жмём Assign. Внимательно осматриваем меш в 3D. Если текстура на месте - не поплыла, не уползла, то оставляем всё, как есть. Если вы не изменяли размеры меша из TS2, то в 95 %-х случаев текстура останется на месте. Однако, если что-то пошло не так - Window -> Texture Coordinate Editor.
Развернув появившееся окно, вы увидите примерно следующее:
Сетка есть не что иное, как развертка вашего меша. Именно эта сетка и задаёт расположение материала на объекте. Если этот материал и сетка у вас не совпадают или совпадают неверно, нужно перерисовать это дело на свой лад: кнопки Select - Move вам в помощь. Выделяя и перемещая нужные области, расположите сетку на материале таким образом, чтобы он верно отображался в режиме 3D. Это не изменение модели - то, что вы делаете сейчас, затронет лишь расположение текстуры на предмете, так что не бойтесь экспериментировать с перемещениями.
Когда же вас, наконец, устроил внешний вид вашего объекта, экспортируем его обратно, в папку "1" - File -> Export -> Sims3 Object Export V1.00 -> сохраняем файл под тем же именем - то есть попросту заменяем тот, что есть в папке, своим. Возможно, выскочит сообщение: "Bone assigments missing. Proceed?" - игнорируем его, жмём "ОК".
Теперь нужно проделать то же самое с файлами из папок "2", "3", "4". Если вы решили не использовать тень, то чтобы не импортировать всякий раз файлы, проще это сделать следующим образом:
-
удалить тень (group00)
-
переименовать меш в group00
-
проэкспортировать полученный файл поочерёдно в папки "2", "3", "4", каждый раз заменяя исходный файл тем, с которым мы работали.
Однако, всё же рекомендую проделывать все операции заново. То есть, импортируем файл из папки "2", импортируем туда же .obj (он же - гном), смотрим на количество групп - если у гнома она одна, то удаляем тень своего меша, а сам меш переименовываем "с закосом под тень", т.е. не в group01, как в первый раз, а в group00. Далее удаляем группу (группы) гнома, задаём текстуру (как - см. выше) и экспортируем файл в папку "2", заменяя тот, что лежит там. То же самое для "3" и "4".
Готово? Открываем папку "1", жмём правой кнопкой на файл с иконкой (он такой в папке один) и выбираем "Открыть с помощью..." - снова находим в списке S3ObjTool.
Снова жмём MODL/MLOD Info и открываем файл с иконкой (работаем в папке "1"). Однако в этот раз кликаем по Recompile и указываем путь к всё тому же файлу из папки "1". - эта операция преобразует наш меш в файл, читаемый игрой.
Проделываем эти операции с файлами из папок "2", "3", "4".
Шаг 6. Текстуры.
Направляемся в Photoshop. В одном окне открываем текстуру, извлеченную в SimPe, а в соседнем - файл .dds, извлечённый в s3pe, в названии которого есть слово "mask".
Если размеры этих текстур не совпадают, как у меня, подгоняем по той, которую мы извлекли в SimPe.
Переходим в окно "mask" и в палитре слоёв создаём над фоновым слоем новый. Заливаем его 50% серым: редактирование -> Выполнить заливку -> Серый 50%. Далее щелкаем на этом слое правой кнопкой и выбираем "Выполнить сведение" - фон и слой с серой заливкой должны слиться в единое целое.
Переходим на текстуру из SimPe. Выделяем на ней детали, которые будут перекрашиваемыми и заливаем\закрашиваем их соответствующими цветами: красным (ff0000), зелёным (00ff00) и синим (0000ff). Каждый цвет отвечает за одну перекрашиваемую деталь.
Далее копируем полученное изображение в текстуру, залитую серым.
Склеим слои - Shift + Ctrl + E. Переходим в каналы и создаём новый канал. По умолчанию он назовётся Alpha 1 и будет абсолютно чёрным.
Готово! Сохраняем текстуру в формате D3D/DDS под тем же именем. Соглашаемся на замену.
Осталось проработать еще 3 текстуры и можно запаковывать файл в package.
Открываем поочерёдно .dds с названиями следующего формата: имя файла_m, имя файла_s, имя файла_о и проделываем следующее:
-
меняем размер (если это необходимо), чтобы он соответствовал размеру текстуры из SimPe.
-
создаём новый слой над фоновым
-
заливаем новый слой 50% серым
-
сводим слои
-
переходим в каналы - создаём новый канал Alpha 1.
Если альфа уже имеется, но не является полностью чёрным, закрашиваем его кисточкой:
Сохраняем под тем же именем в DDS -> DXT5.
После того, как 4 текстуры готовы, запаковываем всё обратно, в package.
Разворачиваем s3pe и кликаем Resource -> Import -> From file -> выбираем в папке "1" файл с иконкой.
Выпрыгнет такое окно:
Ничего не трогаем, жмём "ОК". Если всё получилось, один из файлов в списке будет зачёркнут:
Таким же образом добавляем все MLOD и MODL (всего их должно быть 4 - по одному в каждой из папок "1", "2", "3", "4") и все файлы .dds.
Крепитесь! Их много, но мы почти закончили.
После того, как всё-всё заменили, жмём File -> Save. Закрываем s3pe, но открываем s3oc: File -> Open (Fix)... -> ранее сохранённый package с заменёнными текстурами.
Clone or Fix...
Теперь можно изменить наименование предмета в каталоге - Catalog Name, его описание - Catalog Desc, стоимость - price и иконку (её я подготовила заранее):
-
размер иконки не должен превышать 128х128 px;
-
её фон должен быть прозрачным;
-
формат - .png.
Готово? Жмём Start и ждём, пока программа соберёт результат всех наших трудов в компактный package.
Кладём его в папку The Sims 3\Mods\Packages (для владельцев "Мира Приключений" - в The Sims 3 World Adventures\Mods\Packages) и идём проверять в игре.
И вот он, отыскался в категории декора:
Скачать его можно здесь. Как и обещала, 3 перекрашиваемые детали.
P.S.: Кстати, у зонтика остались функции гнома: его можно пнуть.
Обсудить урок на форуме.