Alex

Документация к моду Sub-Buildings Enabler

1 сообщение в этой теме

Перевод большого гайда по использованию мода Sub-Building Enabler, сделанный SonOfNitrous, за что ему огромное спасибо!
 
 
 
Введение
Этот туториал объяснит как создавать здания в Cities Skylines с модульной системой. Модули здания это отдельные ассеты одного здания, которые позволят создавать с ассеты, которые больше чем 16х8 (Прим. от SonOfNitrous: и назначать им даже отдельные функции с помощью RICO мода).
Чтобы разместить такие здания потребуется сам мод Sub Buildings Enabler Mod, пока CO не придумает ничего лучше.
Но есть и другие способы применения данного мода.
·        Используйте один и тот же модуль-часть здания несколько раз. Это позволит сохранить больше количество памяти и ускорит рендеринг объекта.
·        Можно создавать ассеты с нестандартным занимаемым пространством – составленное из кругов или квадратов
·        Здания с разным функционалом – к примеру и пожарная станция и больница ( или еще добавить туда еще 1 модуль, которому с помощью РИКО назначить функцию офиса, завода ит.д.)
·        Можно создавать здания с модулями друг над другом или даже перекрывающими друг друга и использующих разные шейдеры – основной который следует/ориентируется на ландшафт, и другие которым это дело уже до лампочки
·        Создавайте пропы, которые являются зданиями, которые не исчезнут когда вы сильно отдаляетесь. Это особенно полезно для больших пропов
 
 
О моде
·        Официальная поддержка кода игрой, никаких хитросплетений и хаков
·        Все что вам нужно это построить здание. Если мод вдруг сломается/слетит – здание останется. Также сам мод не требуется для создания здания. Все что вам потребуется это текстовый редактор
·        Производительный, совсем небольшой код, который активируется только во время загрузки
·        Основное здание и модули могут быть опубликованы и как одно целое здание, так и по частям
·        Можно по большому счету использовать любое здание из Воркшопа как модуль
 
 
Подготовка вашей модели
Обязательно имейте ввиду, что вам необходимо создать полностью отдельные модели с их собственной сеткой (mesh) и их собственной UV картой / текстурами
·        Основная модель (та часть которая должна крепиться к дороге, если вы не используете за основу исходник которых может располагаться как угодно без привязки)
·        Один или несколько модулей расширений (“sub-buildings”). Mesh таких модулей могут использоваться много раз (как пример аэропорт с большим количеством одинаковых Гейтов)
Каждое здание должно быть импортировано в РедакторАссетов как обычное здание. Это означает что центр каждой модели должен быть 0|0|0. Максимальный размер каждой части 16x8, 15x9, 14x11 or 13x12 клеток.
Еще раз напоминаю, что у каждого модуля должны быть свои текстуры! Помните об этом!
В этом туториале я сделаю простой аэропорт без текстур, состоящий из центрального здания-терминала и 2 Гейта как модули (“sub-buildings”)
Я сделал 2 независимых Меша для этого:

 

 

post-1-0-53840400-1458737645_thumb.png

post-1-0-19055900-1458737650_thumb.png


Сохраните модель в формате .fbx и текстуры к ней (в формате .jpg или .png) и поместите всё это в папку Import игры.
 
 
Импорт основного здания
В редакторе Ассетов выберите желаемую заготовку-темплейт (к примеру аэропорт, стадион, причал). Импортируйте свой объект добавьте пропы, цветовые вариации и укажите правильный занимаемый размер.
Основное здание должно содержать в себе все основные составляющие транспортных сетей. В случае аэропорта это подразумевает взлетно-посадочные полосы, полосы для руления, пешеходные дорожки и, если требуется - обычные дороги.
В этом туториале не объясняется как это делать. Если что свяжитесь со мной (boformer-ом) через стим (я JustAlex – вк, SonOfNitrous – на steam могу помочь перевести или связаться с ним).
Если ваш ассет реально большой, есть смысл сделать «соединенную/объединенную» модель, которая включает в себя все Меши ваших модулей, чтобы вы могли посмотреть куда и как надо расположить транспортные дороги. Сохраните это как Темплейт-заготовку и импортируйте только основное здание. (не забудьте поставить галочку “ИмпортПропов”)
Категория вашего сохраненного ассета будет определять Воркшоп Категорию ассета с вашими доп.модулями (если вы публикуете как единое целое)
Теперь открываем окно сохранения. Слева вводим название Файла и справа название уже самого ассета. Имя ассета будет отображаться в игре. Также не забудьте про иконку.
Выпишите отдельно себе имя файла и ассета, которые вы указали. Внутреннее название ассета, которое позже потребуется, будет в формате filename.assetname
В данном примере это будет
SBE_airport_terminal.Super-Awesome Airport

 

post-1-0-68361200-1458737662_thumb.png
 

Сохраните ассет
 
 
 
Импорт модулей (sub buildings)
Теперь проимпортируем наши модули. Основное отличие, что мы будем использовать специальную заготовку, которая не требует подсоединения к дороге, а также не генерит отдельную иконку в меню.
Единственный темплейт, который подходит под оба наших критерия это модульные темплейты Международного Аэропрта («LargeAirport L1/L2/R1/R2”, требуется After Dark DLC). Если у вас нет данного DLCб используйте данный темплейт-заготовку)
Выберите модельку вашего модуля здания и импортируйте ассет. Я рекомендую вам изменить ItemClass и UICategory вашего модуля с помощью  asset editor mods released by Snow_Cat.
Теперь сохраните ваш ассет. Не забудьте выписать также имя файла и ассета, которые вы указали. К примеру, в нашем случае я использовал SBE_airport_gate.Gate
Подготовка к размещению здания и зданий-модулей и написание управляющего модулями файла.
Переключитесь обратно на ваше 3D приложение и проимпортируйте все Меши на 0|0|0. Теперь копируйте, двигайте, крутите ваши Меши модулей как вам необходимо. Выпишите себе значения поворота и позиции для каждого модуля.Откройте проводник и откройте папку Assets. (На Windows путь выглядит так - %AppData%\..\Local\Colossal Order\Cities_Skylines\Addons\Assets\) Создайте новую папку с названием по выбору и переместите туда файлы с расширением .crp вашего основного здания и всех модулей.
Теперь откройте текстовый редактор и скопируйте туда данный код. Он будет определять позиции отображения ваших модулей по отношению к основному зданию.

xml version="1.0" encoding="utf-8"?>
<SubBuildingsDefinition>
  <Buildings>
    <Building name="SBE_airport_terminal.Super-Awesome Airport">
      <SubBuildings>
        <SubBuilding name="SBE_airport_gate.Gate" pos-x="-100" pos-y="0" pos-z="-67" angle="-45" fixed-height="true" />
        <SubBuilding name="SBE_airport_gate.Gate" pos-x="100" pos-y="0" pos-z="-67" angle="45" fixed-height="true" />
      </SubBuildings>
    </Building>
  </Buildings>
</SubBuildingsDefinition>
 

Замените значения позиций теми, что вы указали у себя в редакторе. В графе <Building> замените название на внутреннее название вашего основного здания.
Графы <SubBuilding> для модулей. Введите названия и значения, которые вы использовали в вашем приложении для моделлинга (позиция и углы поворота). Имейте ввиду, что CS использует другую координатную сетку в отличии от программы Blender (Y – верх, + иногда там – )
Атрибут fixed-height указывает на то, на какой высоте будет рендериться модуль относительно основного здания.
Сохраните файл с названием SubBuildingsDefinition.xml в той же папке, куда вы поместили .crp .

 

post-1-0-97675400-1458737646_thumb.png

 
 
Финальная настройка
Теперь вы можете разместить ваше здание в игре. Убедитесь что вы включили мод SubBuildingsEnabler. Если вы где-то накосячили, мод выдаст предупреждение. Разместите ассет и посмотрите, все ли в порядке.
Чтобы быстро внести изменения, поправьте значения в xml файле, затем загрузите снова карту через меню загрузки по ESC, и попробуйте снова разместить здание. Мод обновляет/проверяет настройки каждый раз когда вы загружаете город.

 

post-1-0-50040200-1458737644_thumb.jpg
 
 
 
Публикация на Воркшопе
Рекомендуется публиковать основное здание и здания-модули в качестве единого объекта-ассета. Чтобы это сделать отправляемся в менеджер объектов и жмем опубликовать на вашем основном здании-ассете.
Нажимаем на маленький значек папки на окне изображения-превьюшки (если требуется делаем нужный скрин/фото предпросмотра) и открываем папку Content.
Теперь требуется создать еще один .xml который будет слегка отличаться и размещаем его в данной папке. Когда вы что-либо загружаете на Воркшоп, «package id” меняется. Вместо имени файла которое вы ввели, должен быть id ассета в Воркшопе. (к примеру 14897257635). Нет возможности узнать? что же это будет за id до того как вы опубликуете свою работу.
Но мод не дурачье какое-то – он автоматически попробует дополнить имя ассета, если все ассеты используют один и тот же id (если ассет единым объектом). Просто измените .xml файл, который вы создали ранее чтобы он соответствовал этому. (удалите все в названиях до “.”):
 


<?xml version="1.0" encoding="utf-8"?>
<SubBuildingsDefinition>
<Buildings>
<Building name="Super-Awesome Airport">
<SubBuildings>
<SubBuilding name="Gate" pos-x="-100" pos-y="0" pos-z="-67" angle="-45" fixed-height="true" />
<SubBuilding name="Gate" pos-x="100" pos-y="0" pos-z="-67" angle="45" fixed-height="true" />
</SubBuildings>
</Building>
</Buildings>
</SubBuildingsDefinition>

Сохраните измененный SubBuildingsDefintion.xml в папке Content.
Теперь скопируйте .crp файлы ваших модулей в папку Content. Это означает что все ассеты будут единым ассетом на Воркшопе. Папка должна выглядеть следующим образом:

 

post-1-0-19221600-1458737638_thumb.png

Жмакаем «Опубликовать». Сделайте резервную копию ваших файлов из этой папки и удаляйте их из нее. После этого подписываемся на свой ассет в Воркшопе, проверяем все ли в порядке.
ОБЯЗАТЕЛЬНО укажите мод как необходимый! Также указываем, что мод необходим только для того чтобы установить здание, и может быть отключен в любое время, ничего не сломается и не побьет ваши сейвы.
 
 
Ну и финалочка для продвинутых мемберов.
Вы также можете использовать здания с функциями в качестве модулей (т.е. сделать совмещенные здания типа пожарка+крематорий (+госпиталь в оригинале :D ). Просто имейте ввиду что подобным модулям необходим доступ к дороге. Чтобы спрятать ассет в меню строительства необходимо правильно выставить значения ToolController.m_editPrefabInfo.m_placementStyle в Procedural разделе с помощью Mod Tools.
Вы также можете использовать Mod Tools чтобы найти внутреннее имя ассетов Воршшопа. (<workshopId>.какойта_текст_вот_тут) Просто разместите во время игры здание и откройте окно информации. Название будет на самом верху. Используйте это название в файле SubBuildingsDefintion.xml.
 
Переведено для сообщества SonOfNitrous

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу