Автор урока: AdeLana
Автор иллюстраций: AdeLana

Добавление нового компонента - сабсета (Subset), к мешу предмета. Делаем сабсет перекрашивающимся.

http://i6.imageban.ru/out/2015/06/22/d097572a856b52f8848b36aefc210bf1.jpg

Необходимая информация для этого урока была взята из этой темы с MTS и урока от IgnorantBliss
Для чего нужно добавлять сабсеты, спросите вы? Допустим вам понадобилось сделать объект, в котором части имеют не только разные цвета, но и разные свойства материалов (Например штора в которой есть портьера и тюль). А в клонированном вами объекте всего один сабсет. Тут-то вам и понадобится этот урок.

Вам понадобятся:

- SimPE (последняя версия)
- CEP, последняя версия (если добавлять перекрашиваемый сабсет на объект, который первоначально не имел перекрасок)
- Базовые знания SimPE и создания пользовательского объекта

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

Введение.

Мы не будем тут рассматривать, как создаётся меш объекта. У вас уже должен быть готов в 3D редакторе, меш предмета с необходимым вам количеством сабсетов.
Я буду делать декоративный архитектурный элемент – СТЕНА.

http://i5.imageban.ru/out/2015/06/22/3bf0b29b7404a19c98da05faf658ccce.jpg

Я подготовила меш с четырьмя частями (сабсетами)

http://i1.imageban.ru/out/2015/06/22/cbe8bf6868a03125d12a00b15bd33264.jpg

-glass – стекло, будет безтекстурным материалом
-window – оконная рама, будет всегда белой
-floor – пол, будет перекрашиваемая часть
-base – стена, будет перекрашиваемая часть

Запускаем SimPe -> Workshop -> Начать
Так как мой объект будет декором, выбираю из раздела  Украшения -> Скульптуры
такую вазу (потому, что у вазы ест LOD, а мне нужно чтоб мой объект было видно с карты города)

Отступление! У некоторых предметов - как у нашего - есть дополнительная версия LOD90 - это упрощенная версия предмета, показывающаяся на экране соседства (Neighborhood View). У таких объектов, каждому TXMT "полноценного" объекта должен соответствовать TXMT "упрощенного" объекта, иначе объект будет показываться мерцающим синим на экране соседства. Обычно упрощенные TXMT не содержат никаких спец-свойств (как рельеф, или отражаемость, да и текстура там есть не всегда). Имя упрощенного TXMT обязательно должно быть точно таким же, как для полноценного TXMT, только в части "название части меша" должно быть добавлено lod90.

http://i1.imageban.ru/out/2015/06/22/417d0fd8ae624ddb285fd9e7759418db.jpg

Клонируем. Меняем Гуид.

1 Редактируем Geometric Data Container

Открываем ресурс Geometric Data Container, тень можно удалить. У нас остался один сабсет – base

http://i5.imageban.ru/out/2015/06/22/1beadc9173c392040f5c0a2ed0c65471.jpg

Импортируем новый меш ->

http://i6.imageban.ru/out/2015/07/02/f101e1669b48dd558bcc7d9d5a61a29e.jpg

Заменяем только base, остальное импортируем не меняя

http://i2.imageban.ru/out/2015/06/22/286f946431a535862f51a05db3f2525c.jpg

Видим, что наши сабсеты добавлены. Меш заменился.

http://i4.imageban.ru/out/2015/06/22/b96e477ec64923c53275430f9b531d69.jpg

2 Добавляем Texture Image для новых сабсетов

Для стекла нам текстура не нужна, для остальных частей клонируем имеющуюся текстуру. Если у вас несколько сабсетов будут использовать одну и туже текстуру, не нужно клонировать её несколько раз, достаточно прописать в сабсетах использование нужной текстуры.
Лишние текстуры от старого объекта можно удалить – бамп карту и тень.
Мне нужно три текстуры для стены, пола и рамы
- Самый простой способ добавления новой текстуры - клонировать ресурс текстуры (не тень).
- Чтобы клонировать, щелкните правой кнопкой мыши на существующем Texture Image и выберите Клонировать. Новый файл появится в списке.

http://i2.imageban.ru/out/2015/06/22/c194f2599f2e1a1bd17941c206d678b2.jpg

Теперь нам нужно заменить текстуру (картинку) на свою, новым текстурам дать новое имя и тоже заменить картинку.
Переименовать файл текстуры изображения, но оставить TXTR-расширение нетронутым. Не изменяйте первые несколько прочерков с названиями сабсета (fabric, frame, surface), только конец файла (в выделенную на скриншоте). Или через тире допишите новое название несли нужно, например wood, fiolet и т.п.

http://i2.imageban.ru/out/2015/06/22/4d8a9a3693d76153d1ee8b938f9029a1.jpg

3 Добавляем Material Definition для новых сабсетов

Клонируем для каждого сабсета ресурс Material Definition, таким же методом, как в предыдущем шаге.
Новый материал нужно переименовать соответственно сабсету к которому он будет относиться. Не забываем, что мы не трогаем и не удаляем:
- расширение txmt в конце
- приставку, обозначающую имя сабсета
- нижние прочерки разделения

Ещё нужно прописать в нашем материале текстуру которую он будет использовать, можете скопировать имя вашей текстуры из TXTR (без окончания _txtr) и вставить его после приставки ##0x1C050000!

http://i2.imageban.ru/out/2015/06/22/4308c57a0966c2c3fd78220fc0e7a399.jpg

Примечание! Если нехотите или не знаете как прописывать вручную свойства материалов, можно экспортировать их из подходящего по свойствам ресурса, из любого пакаджа.


Я импортировала свойства стекла из максис окон. Остальное оставила как было.

4 Редактирование ресурса SHAPE

Откроем SHAPE, и в Plugin View вкладку Content
Нужно добавить новые записи для наших сабсетов, чтоб они указывали к свойствам материалов (Material Definition)
Чтобы сделать это, нажмите кнопку Добавить (add), а затем нажмите на новой линии, которая появляется в списке (только с двоеточия: в этой точке), чтобы сделать его активным.
В строке под названием Subset Name введите имя вашего сабсета. В строке под названием Material Definition file  введите название материала созданного в предыдущем шаге,
НО! без суффикса (_txmt) и с префиксом (## 0x1C050000!)

ВАЖНО! Выполните "Fix Integrity" (Сервис -> Инструменты объекта -> Fix Integrity -> update -> ok), сохраните пакадж.

http://i2.imageban.ru/out/2015/06/22/d3baba5573a26dbfeebd40e5d79e8198.jpg

Если вы не хотите делать перекрашиваемые сабсеты, то шаг 5 можете пропустит!

5 Редактирование Geometric Node

Откройте Geometric Node, на выпадающем списке Blocklist, выберите строку под названием "tsDesignModeEnabled".

http://i6.imageban.ru/out/2015/06/22/f5a56c28c0da9b92f0a07c863b2ad46b.jpg

На вкладке cExtension, в списке Items перечислены перекрашиваемые сабсеты объекта. (Если уже есть два, вы не можете добавить третий). Чтобы добавить еще один, нажмите кнопку Добавить (add), а затем нажмите на новой линии в списке, чтобы сделать её активной, и напишите название вашего нового сабсета в поле Name, и нажмите Commit.

http://i6.imageban.ru/out/2015/06/22/48f8abe2b3aa78e815a04369f2eb85b2.jpg

6 Добавляем Material Override для новых сабсетов

Клонируем ресурс Material Override для новых сабсетов как в предыдущих шагах.
Нажмите на линии под названием "family" и открыть Сервис -> Инструменты объекта -> Hash Generator (under Tools -> Object Tools -> Hash Generator). Проверьте опцию GUID, а затем скопировать и вставить хэш-значения в поле Значение (Value) для "family". Нажмите кнопку Commit.

http://i1.imageban.ru/out/2015/06/22/1882e346a71364c32b05e13046e3328b.jpg

Нажмите на линию под названием "name" в списке, и измените значение в поле справа, чтобы соответствовало материал Definition имя вашего нового сабсета (плюс ## префикс 0x1C050000 и минус _txmt суффикс!). Нажмите кнопку Commit.

http://i4.imageban.ru/out/2015/06/22/f6d2a111d59e86b637d439b87931d7e4.jpg

Нажмите на линии под названием "subsetName" в списке, и переименуйте его на имя вашего нового сабсета. Нажмите кнопку Commit.

http://i6.imageban.ru/out/2015/06/22/23ee3d23806db287287dc224b70ed8d2.jpg

ВАЖНО! Выполните "Fix Integrity" (Сервис -> Инструменты объекта -> Fix Integrity -> update -> ok), сохраните пакадж.
Повторить для каждого Material Override.

Смотрим результат в игре.

http://i6.imageban.ru/out/2015/06/22/35e8f41aa5b78260195fc9c0b6135416.jpg