2. Ресурсы TXTR, TXMT, MMAT.
Пакадж перекраски содержит ресурсы трех типов - TXTR, TXMT, MMAT.
В ресурсе
Texture Image (TXTR) хранится картинка текстуры.
В ресурсе
Material Definition (TXMT) хранятся различные параметры текстуры - именно их мы будем менять в этом туториале.
Ресурс
Material Override (MMAT) связывает текстуру и объект - без него ваша текстура видна не будет.
В дальнейшем я буду пользоваться только сокращенными названиями типов ресурсов.
На следующих скриншотах я отметила всё, с чем мы будем работать.
Поле "1" предназначено для изменения имени текстуры (это имя ресурса в пакадже, а не имя загружаемого файла).
Желательно, чтобы имена текстур соответствовали виду
<имя объекта>-<имя части меша>-<имя текстуры>_txtr, где:
-
<имя объекта> - это общая часть начала названий всех ресурсов в пакадже
-
<имя части меша> - название части меша, для которой будет использована эта текстура
-
<имя текстуры> - любая уникальная строчка
На самом деле, для объектов это соответствие необязательно (кажется), но удобно. Обратите внимание - в качестве разделителей используются минусы, только в конце подчеркивание.
После каждого изменения имени обязательно нужно сделать Fix TGI - это ссылка "2". Fix TGI меняет Instance для ресурсов, а для того, чтобы игра различала ресурсы, требуется уникальность инстансов (которая обеспечивается уникальностью имен - инстансы вычисляются по именам.
Выпадающий список "3" позволяет выбрать формат, в котором текстура хранится в пакадже. Если формат выбран неправильно, текстура может отображаться в игре неправильно.
Форматы, которые мы будем использовать:
- Raw8Bit - для текстур рельефа
- DXT1Format - для непрозрачных текстур
- DXT3Format - для частично прозрачных текстур с резкими границами между областями с различной прозрачностью
- DXT5Format - для частично прозрачных текстур с размытыми границами между областями с различной прозрачностью
Для форматов DXT1, DXT3 допустимо использовать формат с бОльшим номером (например DXT5 вместо DXT1) - глюков не будет, но текстура - и, соответственно, пакадж - будет "весить" больше, поэтому выбирайте формат правильно. С меньшим номером (DXT1 вместо DXT3) - нельзя, потеряется прозрачность.
После любых изменений в текстуре, не забудьте нажать Commit - отмечен стрелкой "4".
При изменении ресурса TXMT мы будем работать с тремя подзакладками - Properties, File List и Categorized Properties. На этом скриншоте показана закладка Properties.
Верхняя часть одинаковая для всех закладкок - поскольку относится к закладке Content. Как и в TXTR, "1" - имя ресурса, "2" - Fix TGI, которое надо сделать после изменения имени. Имена строятся по тому же принципу, что и для TXTR , только все разделители - подчеркивания.
Отступление.
Раз уж нам попался такой предмет, скажу пару слов о LOD90-версиях предметов.
У некоторых предметов - как у нашего - есть дополнительная версия LOD90 - это упрощенная версия предмета, показывающаяся на экране соседства (Neighborhood View). У таких объектов, каждому TXMT "полноценного" объекта должен соответствовать TXMT "упрощенного" объекта, иначе объект будет показываться мерцающим синим на экране соседства. Обычно упрощенные TXMT не содержат никаких спец-свойств (как рельеф, или отражаемость, да и текстура там есть не всегда). Имя упрощенного TXMT обязательно должно быть точно таким же, как для полноценного TXMT, только в части "название части меша" должно быть добавлено lod90 - как мы видим на скриншоте.
Вернемся к закладке Properties.
Список "3" - список существующих параметров. Добавить параметры в список можно только с этой закладки.
Когда какой-то параметр выделен в списке, его имя и значение появляются в полях "4". Имя и значение можно менять

add и delete - отмечены стрелкой "5" - используются при добавлении и удалении параметров.
Чтобы удалить параметр, надо выделить его в списке и нажать delete.
Чтобы добавить параметр, надо нажать add - в конец списка добавится строчка, содержащая только двоеточие - эту строчку надо выделить и ввести имя и значение для нового параметра.
Внимание - параметры читаются игрой в алфавитном порядке, и добавленный параметр не будет виден, если забыть сделать sort List - отмечен стрелкой "6".
На закладке File List перечислены текстуры (ресурсы TXTR), использующиеся в данном TXMT. Обратите внимание - названия используемых текстур есть (и нужно будет менять) и на закладке Properties (в соответствующих параметрах), и на закладке File List.
"1" - список используемых текстур, название выделенной текстуры показывается в поле "2", ссылки add и delete ("3") позволяют добавить и удалить строчку.
Закладка Categorized Properties дублирует закладку Properties - все изменения параметров на любой из этих двух закладок сразу же обновляются на другой - но на текущей закладке более удобно менять некоторые значения, в особенности цвета.
На закладке Properties цвета отображаются как три числа (красная, зеленая, синяя составляющие) в интервале от 0 до 1. на закладке Categorized Properties числа цветовых составляющих отображаются в интервале 0-255, как это делается во всех графических программах; кроме того, здесь есть маленький прямоугольник с цветом, соответствующим текущему (обновляется при переходе фокуса на другое поле); кроме того, когда фокус стоит на цветовом поле, есть возможность выбирать цвет из выпадающего списка со стандартныит цветами.
Естественно, после любых изменений в TXMT надо не забыть сделать Commit
"1" - список параметров, "2" - поле, в котором отображается (и меняется) выделенный параметр; "3" - кнопка Commit. "4" - кнопка Unique Instances, она есть только если добавлена панель Resource Actions; подробнее о ней я расскажу позже.
Мы будем менять следующие поля:
- family - уникальная строка, генератор встроен в SimPe
- name - имя
TXMT ресурса, который будет использоваться этим MMATом
Следующие поля мы менять не будем, но на их значения стОит обращать внимание при "играх" с более сложноустроенными объектами:
- modelName - имя CRES ресурса - он указывает на меш объекта
- objectGUID - уникальный номер (GUID) объекта - если объект занимает несколько клеток, то это поле должно содержать GUID клетки-мастера (master tile)
- objectStateIndex - для объектов, имеющих состояния чистое-грязное, этот параметр может отличаться, для остальных он не важен
- subsetName - имя части (subset) меша, к которой будет применяться данный материал
- defaultMaterial - это поле может иметь значение 1 (true) ровно для одного из материалов для части меша, указанной в subsetName - для всех добавочных перекрасок значение должно быть 0 (false), но если вы делаете новый объект - проследите, чтобы хотя бы один материал был назначен материалом по умолчанию
Пара слов о кнопке Preview (слева от Commit) - она позволяет посмотреть, как текстура "ляжет" на объект, не запуская игру. Правда, у нее есть несколько ограничений - она не совсем корректно применяет прозрачные текстуры (точнее, не показывает то, что в игре будет видно в прозрачные "дыры"), вообще не применяет текстуры рельефа и отражения, и не всегда работает в пакаджах перекрасок - но в целом это очень полезная кнопка.
Перейдем к изменению параметров.
Имеющийся материал достаточно сложный - он имеет и текстуру, и рельеф, и металлический блеск - поэтому мы сделаем немного лишней работы - сначала удалим всё лишнее для получения простейшего материала, потом будем добавлять то, что удалили.
Я изменю уникальную добавку в названии ресурсов с
[Jasana-27.9.2006-82910] на tutorialTXMToptionsJasana - ну не нравятся мне эти стандартные циферки :-< Это делать не обязательно, но и не запрещается.
Сделаем резервную копию текущего материала, чтобы иметь возможность проверять названия полей - только переименуем его, так чтоб на него не ссылался ни один MMAT - тогда игра этот ресурс видеть не будет. Нажимаем правой кнопкой мыши на "полноценном" TXMT ресурсе, выбираем Clone. Меняем имя ресурса - заменяем то, что между
base_и
_txmt - у меня это
marble - на что угодно другое, например
unused, после чего делаем Fix TGI и Commit. В дальнейшем, если я буду говорить "меняем имя TXMT" - я буду говорить о замене именно этой части.
Материал с baselod90 в названии можно удалить - он нам не понадобится.