Главная > Урок Симс 2 / Уроки по SimPE / Создание объектов в Симс 2 / Создание перекрасок в Симс 2 > Заимствование текстур из другого объекта

Заимствование текстур из другого объекта


23-04-2010, 07:13. Разместил: Dara_Savelly

Заимствование текстур из другого объекта Бывает такое, что вы сделали несколько предметов, и хотите, чтобы они использовали одинаковые текстуры (например, комнатный сет в одном стиле). Но загружать кучу текстур в каждый пакадж отдельно (тем более что они одинаковые) - это не экономно по отношению к размеру каждого пакаджа. Можно пойти другим путем - залить все текстуры в один пакадж, а для предметов задать ссылку на использование текстур из этого пакаджа. Как это сделать? Вы узнаете в этом туториале!

1. Подготовка пакаджа с перекрасками.

Перед тем, как начать прописывать ссылки на текстуры в предмете, мы должны подготовить сам пакадж, с которого будем заимствовать данные текстуры. Я возьму для примера сидушку со своего пуфика, именно ее текстуру и будет заимствовать наш предмет.
Заимствование текстур из другого объекта


Откроем наш пакадж с пуфиком и найдем в нем ресурс MMAT с именем того сабсета, откуда мы будем заимствовать текстуру (у меня с концовкой fabric_floral). Откроем список опций и скопируем оттуда в блокнот значение строк name и modelName (подпишите их соответственно, чтобы не перепутать, что к чему относится).
Заимствование текстур из другого объекта


Теперь можно закрыть пакадж.

2. Исправление ресурса Geometric Node (GMND).

Открываем наш пакадж с рабочим предметом и заходим в ресурс Geometric Node. Во вкладке Content из выпадающего списка Blocklist выберите название сабсета, который будет заимствовать текстуру (у меня это опять же fabric). В рабочем поле Items вы увидите одну или более строк - это ссылки на MMAT-ресурсы. Нам нужно добавить свою ссылку. Для этого убедитесь, что выбрано значение Array и нажмите кнопку Add. У нас появится пустая строка ниже, выделяем ее и вставляем туда скопированное ранее значение строки name из прошлого пакаджа. Делаем Commit.
Заимствование текстур из другого объекта


Теперь зайдите в этом же ресурсе во вкладку Edit Blocks. Справа в выпадающем списке выберите значение (cDataListExtension) и нажмите кнопку Add - в конце списка добавиться строка.
Заимствование текстур из другого объекта


Снова перейдите во вкладку Content и из выпадающего списка Blocklist выберите эту последнюю строчку. Слева в поле Name впишите - tsMaterialsMeshName. Не перепутайте с правым полем! Левое находится в окне Settings.
Теперь смотрим на правую часть. В рабочем окна пока пусто. Убедимся, что значение выпадающего списка стоит на String, и нажмем Add. В окне Items появится пока что пустая строка. Теперь, в поле Name вписываем имя нашего сабсета, который заимствует текстуру (у меня это fabric), а в поле String вставляем скопированное из прошлого пакаджа значение строки modelName.
Заимствование текстур из другого объекта


Снова вернемся в закладку Edit Blocks, выберем в списке нашу последнюю строчку и справа нажмем на кнопку Up так, чтобы наша строка поднялась на 8-ю позицию. Сделаем Commit и сохраним пакадж (File - Save).

3. Наслаждаемся результатом.

Проверьте ваш предмет в игре, и, если вы все сделали правильно, должно получится.
Заимствование текстур из другого объекта


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

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