Моддинг

Как преобразовать карту 1.3.1 в 1.4.1

  • Во время операции преобразования неплохо запустить игру с параметром -unlimitedlog, чтобы вы могли видеть все сообщения об ошибках
  • Если вы добавили новую страну, убедитесь, что значения country_id не конфликтуют со странами, которые мы добавили. В противном случае назначьте им новые идентификаторы (см. Изменения в странах ).
  • Обновите company.sii в новом формате или, по крайней мере, замените оригинальные карьеры на одну карьерную компанию (см. « Изменения в карьерах» и « Изменения в файлах, содержащих списки объектов» ).
  • Создайте определения отношений между компаниями и префафами (см. Изменения в определении компании )
  • Загрузите карту в редактор. Если сбой нагрузки, проверьте журнал и исправьте ошибки.
  • Обновите идентификаторы страны для пограничных узлов, если это необходимо.
  • Используйте кнопку Recompute (F8) для восстановления карты.
  • Сохраните карту.
  • Создайте наложенные текстуры для новых городов в / material / overlay. (см. Изменения в наложениях знаков города )
  • Преобразовать дорогу в новый формат (см. Изменения в road.sii )
  • Преобразование определений частоты ИИ в новый формат (см. Изменения в определении ai )
  • Преобразование определений входов / выходов компании в новый формат (см. Изменения в определении компании )

изменения

Изменения в физике.

Изменена интерпретация thrust_characteristic_viscosity в физических данных. Теперь он масштабируется крутящим моментом двигателя. При загрузке версии 0 значение делится на 1875 для приближения нового значения.

Изменения в внутренних принадлежностях

Интенсивность подсветки панели инструментов настраивается с использованием атрибутов panel_intensity_min и panel_intensity_max.

Изменения в первоначальном сохранении

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

Изменения в файлах, содержащих списки объектов (например, /def/city.sii).

В некоторых случаях игра загружает список объектов для одной категории (например, транспортные средства, грузы, города, страны, модели, сборные знаки, знаки, ...). Раньше был только один файл с этим списком для каждой категории, и это вызывало ненужные конфликты между модами даже в случаях, когда мода только хотел добавить в категорию новые объекты.

Для патча 1.4 мы расширили поддержку, чтобы предоставить более одного файла для наиболее важных категорий, где это имело смысл. В этом случае игра объединяет списки, найденные во всех этих файлах. Дополнительные файлы должны быть названы следующим образом: «<base_file>. <Idofyourmod> .sii», где <base_name> - это имя базового файла без расширения (например, «city» для «/def/city.sii») и <idofyourmod> - это некоторая строка, которая вряд ли будет конфликтовать с другим модом. Обратите внимание, что по-прежнему необходимо следить за тем, чтобы имя единиц в этих файлах не конфликтует между файлами путем добавления префиксов или суффиксов.

Только следующие файлы поддерживают это новое поведение.

  • /def/cargo.sii
  • /def/city.sii
  • /def/company.sii
  • /def/country.sii
  • /def/ferry.sii
  • /def/camera/camera_storage.sii
  • /def/camera/cutscene.sii
  • /def/vehicle/addon_hookup_storage.sii
  • /def/vehicle/traffic_storage.sii
  • /def/vehicle/trailer_storage.sii
  • /def/vehicle/trailer_traffic_storage.sii
  • /def/vehicle/truck_traffic_storage.sii
  • /def/world/building_model.sii
  • /def/world/building_scheme.sii
  • /def/world/detail_vegetation_def.sii
  • /def/world/hinge.sii
  • /def/world/model.sii
  • /def/world/mover.sii
  • /def/world/overlay.sii
  • /def/world/prefab.sii
  • /def/world/railing.sii
  • /def/world/sign.sii
  • /def/world/terrain_profile.sii
  • /def/world/trigger_action.sii
  • /def/world/tr_lights.sii
  • /def/world/vegetation.sii
  • /def/world/vegetation_model.sii
  • /def/world/road_look.sii

Изменения в road.sii

Раньше дорожные взгляды определялись в road.sii. Это создало ненужные конфликты между модами, пытающимися добавить разные взгляды.

Для 1.4. patch мы извлекли определение дороги, чтобы разделить файл road_look.sii, который поддерживает описанное выше поведение добавления. Обратите внимание, что в настоящее время такой поддержки для определения материала нет

Чтобы поддерживать частичную обратную совместимость, если массив road_look найден в road.sii, он используется вместо содержимого файла road_look.sii. Дополнительные файлы списка все еще добавляются.

Изменения в странах

Поскольку мы добавили больше стран, возможно, что если вы используете слишком низкое значение id страны, будет конфликт (сообщается в журнале). В этом случае вам нужно назначить новый идентификатор страны в вашей стране (рекомендуется использовать значение из списка, найденного в комментариях внутри страны. Sii), загрузить карту, зафиксировать присвоения страны на пограничных сборных знаках и перепроверить (F8) карта.

Обратите внимание, что, поскольку мы добавим больше стран в будущем dlc, рекомендуется использовать значение country_id из списка или, по крайней мере, использовать более высокие значения. Они не обязательно должны быть непрерывными, и значения действительны до 255.

Добавлены дополнительные вспомогательные команды:

  • g_next_border_node - Циклы между отдельными пограничными узлами, которые определяют страны
  • mark_country id - указывает, что элементы, относящиеся к указанной стране, отображаются на карте ui. Если карта отображается при выдаче команды, вам необходимо скрыть ее или изменить уровень масштабирования для регенерируемой геометрии.

Изменения в определении ai

Раньше частота отдельных типов транспортных средств AI в конкретной стране определялась в списке, хранящемся в файле sii для соответствующей страны. Тип транспортного средства, который не был включен в список, не был создан в этой стране. Это создало ненужные конфликты между модами, пытающимися добавить ai-транспортные средства и даже с самой базовой игрой (например, отсутствующая автобус Opalin).

Для 1.4. patch мы извлекли информацию для разделения файлов с именем «/def/country/<country_name>/ai/<vehicle_type>.sii», где <country_name> - название страны, для которой указана эта информация, и <vehicle_type> - тип транспортного средства. Файл указывает частоту (см. Данные игры для получения дополнительной информации), с которой появится указанное транспортное средство (например, частота 3 приведет к тому, что автомобиль будет в три раза более вероятным, чем обычно). Частота представлена ??как число с плавающей запятой из диапазона <0; 10> с точностью до 0,1. Если частота равна нулю, автомобиль не генерируется в этой стране. Если файл для указанной комбинации страны и транспортного средства не существует, будет использоваться частота по умолчанию 1.

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

Изменения в определении компании

Ранее типы грузов, сгенерированных и потребляемых компанией, были определены в списках, хранящихся в файле sii для соответствующей компании. Это создало ненужные конфликты между модами, пытающимися добавить разные грузы.

Для 1.4. патч мы извлекли информацию для разделения файлов, хранящихся в «/ def / company / <company_name> / in /» и «/ def / company / <company_name> / out /». Хотя точные имена файлов не важны, настоятельно рекомендуется использовать то же имя, что и соответствующий груз (например, «digger500.sii» для «cargo.digger500»). Каждый файл указывает имя одного груза (см. Данные игры для получения дополнительной информации), которое должно быть использовано (в) или сгенерировано (выведено). Если имя груза пуст, соответствующий файл игнорируется. Это можно использовать для отключения нежелательного груза.

Чтобы поддерживать обратную совместимость, если файл компании содержит старые списки in_cargo / out_cargo, игра добавит их в список, сгенерированный из файлов.

Чтобы редактор правильно поддерживал компании, для каждой существующей комбинации компаний и городов необходимо определить файл определения / def / company / <company_name> / editor /, который указывает комбинацию имени города и имени сборника (например, 67 для prefab.67), который используется компанией в этом городе. Имя самого файла не имеет значения. Если оба имени не заданы, файл молча игнорируется. Обратите внимание, что если более одного файла (в том числе в других моделях, присутствующих в каталоге мод), указывает ту же комбинацию города и сборника, редактор будет молча использовать один из них, казалось бы, произвольно.

Если вы видите сообщение об ошибке «Непредставление компании для товара ...», нет файла определения для комбинации соответствующих сборных и городских

Изменения в карьерах

Для упрощения обработки мы объединили все карьеры в одну компанию. При загрузке более старых сохранений журнал может содержать сообщения об ошибках в отношении пропавших компаний карьера. Это ожидаемое поведение. Если ваш мод изменяет файл /def/company.sii, возможно, что он не будет загружаться, так как определения для старых компаний-карьеров не являются частью базового файла def.scs.

Изменения в / пользовательский каталог

Пользовательские включенные файлы .sii (например, signs.sii, models.sii ...), хранящиеся в этом каталоге, устарели и должны быть заменены описанным выше механизмом списка. Для обратной совместимости они по-прежнему поддерживаются в 1.4. однако они могут быть удалены в будущем патче.

Изменения в формате карты

Мы изменили формат карты, чтобы разрешить одновременное редактирование более чем одним пользователем. Это также должно допускать одновременное расширение карты более чем одним модулем при условии, что они работают в разных частях карты, и берется достаточная осторожность. Старый формат карты может быть загружен редактором, чтобы его преобразование в новое.

секторов

В новом формате карта разделяется на сетку секторов фиксированного размера. Файл .mbd теперь содержит только базовые данные метаданных. Вся другая информация хранится в виде набора файлов в соответствующем подкаталоге (например, «/ map / europe /» для «/map/europe.mbd»). Результирующая карта, видимая в игре или редакторе, представляет собой комбинацию всех секторов, найденных в этой подкаталоге, независимо от того, из какого пакета .scs они происходят (обычно применяется перегрузка файлов).

Обычно при сохранении карты обновляются только секторы, содержащие реальные изменения. Однако возможно, что различные неточности во время пересчета могут привести к изменению некоторых других секторов. До тех пор, пока вы знаете, что вы никоим образом не изменили этот сектор, вы можете игнорировать изменение его файлов. Другой способ - использовать функцию блокировки команды edit_mark для блокировки всех секторов, которые вы не собираетесь редактировать, прежде чем приступать к изменениям. Блокирование сектора предотвратит его изменение, а сектора, которые заблокированы во время сохранения, не будут сохранены.

UID

Объекты идентифицируются с использованием 64-битного идентификатора (UID), который должен быть уникальным на всей карте. Часть UID основана на времени создания, а отдых основан на случайных и последовательных компонентах. Хотя конфликт вряд ли произойдет случайно, это может произойти, когда в тот же момент создается огромное количество объектов двумя редакторами. Если многие редакторы работают одновременно на карте, вы можете использовать новый gvartist_id cvar для установки фиксированной части UID (0-15), чтобы гарантировать, что такой конфликт не может произойти между ними. Более вероятная причина конфликта заключается в том, что два сектора карты содержат один и тот же объект. Например, когда объект перемещался между секторами, и изменения в исходном секторе были потеряны по какой-либо причине или если исходный сектор перегружен каким-либо моду по варианту, который все еще содержит объект.

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

Изменения в файлах PMG

Чтобы повысить производительность загрузки, мы изменили формат файла в соответствии с макетом буферов, используемых в игре. Игра может по-прежнему загружать более старый формат, хотя и медленнее.

Новый формат 0x506d6713 сохраняет атрибуты вершин как чередующиеся:

  • Если модель не анимируется (bone_count == 0), атрибуты для одной вершины хранятся вместе в статическом пуле, а шаг - sizeof (все атрибуты вершин
  • Если модель анимативна (bone_count!= 0) атрибуты для одной вершины делятся на статическую и динамическую часть, каждая из которых имеет свой конкретный шаг
    • static: sizeof (цвета (u32) + colors2 (u32, если присутствует) + texcoords (float2 * coord_count))
    • dynamic: sizeof (position (float3) + normals (float3) + касательные (float4, если есть))


Поля смещения в заголовке указывают на соответствующий атрибут внутри первой вершины.

Изменения в вспышках

Атрибут model модуля flare_traffic_light теперь содержит прямой путь к файлу pmd модели вместо имени объекта шаблона. В результате невозможно указать вариант и посмотреть. Будет использоваться первый вариант и внешний вид, найденный в модели.

Изменения в накладках

Чтобы улучшить расширяемость, надписи на знаках города больше не являются частью одной модели. Каждый город имеет свой отдельный файл материала в / material / overlay, имя которого соответствует названию, указанному в /def/world/overlay.sii (см. Раздел « Изменения в файлах, содержащих списки объектов» ).

дополнения

команда edit_mark

Мы добавили команду консоли edit_mark, которую можно использовать из редактора, чтобы выделить набор секторов (в редакторе) или защитить их от случайной модификации при редактировании карты. Изменения, применяемые этой командой, выполняются только во время выполнения и не будут сохраняться при сохранении.

Выполнение команды без параметра будет отображать все варианты. Доступны следующие варианты:

  • edit_mark set sector_file [hexadecimalcolor]
    Отмечает все сектора из файла с указанным цветом. Зеленый цвет используется, если цвет не предоставляется. Секторы, не упомянутые в файле, имеют свою маркировку без изменений.
  • edit_mark set_all hexadecimalcolor
    Помечает все сектора с использованием указанного цвета.
  • edit_mark intersect first_file second_file [hexadecimalcolor]
    Маркирует все сектора, найденные в обоих файлах с указанным цветом. Зеленый цвет используется, если цвет не предоставляется. Секторы вне пересечения имеют свои значения без изменений.
  • edit_mark clear_all hexadecimalcolor
    Удаляет маркировку из всех секторов.
  • edit_mark lock [сектор_файл]
    Блокирует все сектора из указанного файла или всех секторов, если файл не предоставляется
  • edit_mark unlock [сектор_файл]
    Разблокирует все сектора из указанного файла или всех секторов, если файл не предоставляется

В некоторых вариантах команды используется файл, определяющий набор секторов с использованием FULL-пути в файловой системе. В качестве разделителя каталогов следует использовать только '/'. Файл сектора имеет по каждой строке пару чисел, разделенных точкой с запятой. Цифры представляют собой координаты сектора в сетке. например

-06; +07 -07; -01

команда mark_country

Маркирует дороги и сборные материалы, принадлежащие стране с указанным country_id на карте игры. После выдачи команды UI-карту необходимо восстановить, спрятав ее или изменив уровень масштабирования.

Команда g_next_border_node

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