Интеграция грузовиков и аддонов. Часть 3

Источник: гайд сообщества mod.io
Автор: SnowRunner_Support
Просмотров: 3,375

This guide describes the integration of Trucks and Addons. Part #3 of this guide covers particular tags and attributes used for description of Meshes and Trucks (Chapters 7-8).

Гайд сообщества, переведённый на русский с mod.io.

Upd: ===========================================================

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

На платформе ПК те же руководства доступны в папке *установленной игры* в каталоге «...\en_us\Sources\BinEditor\Guides».

Или вы можете открыть папку с пакетом документации прямо из редактора SnowRunner™, выбрав «Справка» > «Руководства» в его главном меню.

Please refer to:

  • Часть №1 этого руководства — общая информация о файлах моддинга (главы 1–4).
  • Часть №2, посвященная общим аспектам структуры XML (главы 5–6).

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

ПРИМЕЧАНИЕ. При описании атрибутов мы будем отмечать обязательные атрибуты знаком *.

Если вам нужна автономная копия, вы можете скачать это полное руководство в формате PDF отсюда (на английском или русском языке).

7.

Корневой тег XML-файла Mesh.

В общем, этот тег является корневым тегом во всех XML-файлах сеток (т. е. модели, завода, грузовика и т. д.). Однако в этом документе описаны только теги, относящиеся к грузовым автомобилям.

7.1.

Раздел, описывающий точки крепления валов.

Подробное описание вала см. в разделе «8.1.11.1. <Вал>» ниже.

7.1.1.

Точка крепления вала.

  • Name="Shaft1a" Имя, используемое для описания вала в классе грузовика.
  • Pos="(1,595; 1,172; -0,004)" Позиция.

7.2.

Чем материалы в SnowRunner отличаются от материалов MudRunner

  • В отличие от MudRunner, этот тег описывает именно материал, назначенный в файле Fbx, а не материал, назначенный конкретной MeshPart. Поэтому материал, который был указан в теге, будет применен ко всем сеткам, которым он был назначен в файле Fbx.
  • Оттенок изменился. Раньше использовалось «диффузно-бликовое» затенение моделей. Сейчас используются материалы PBR.
  • Добавлены эффекты снежного покрова на поверхностях.

Material Maps

Все файлы карт должны быть в формате tga. Именование файлов карт строго определено, постфиксы в именах файлов указывают на тип данных внутри них. Имя файла формируется по следующему шаблону: name__postfix.tga где:

  • имя — любое имя, не содержащее двух символов подчеркивания подряд (без «__» внутри него).
  • постфикс — определяет тип данных.

__postfix Тип параметра текстуры в XML __d Карта альбедо AlbedoMap __d_a Карта альбедо + Alpha AlbedoMap __n_d Карта нормалей NormalMap __sh_d Карта затенения ShadingMap __em_d Карта эмиссии EmissiveMap

ВНИМАНИЕ: Схема именования текстур, описанная выше, является обязательной. Эта схема именования необходима для включения потоковой передачи текстур мода, что может быть важно. В частности, моды с неправильным названием текстур приводят к утечкам памяти на консолях и не получают одобрения.

ПРИМЕЧАНИЕ. В большинстве случаев альфа-канал карты альбедо используется для прозрачности или «жесткой прозрачности» (с использованием AlphaKill="true", см. описание атрибутов ниже). Однако для колес грузовика альфа-канал карты альбедо связан с поведением кусков грязи или снега, которые могут прилипать к колесам. В этом случае низкие значения (например, черный цвет) в альфа-канале приводят к тому, что снег или комья грязи прилипают к поверхности колеса.

Обратите внимание на параметры эффекта снежного покрова в SnowRunner:

В SnowRunner эффект снежного покрова фактически состоит из двух независимых эффектов:

  • слой снега — этот эффект соответствует белому слою снега поверх поверхности (т.е. скопившемуся падающему снегу). Параметры этого эффекта имеют SnowUp.. . префикс (см. список атрибутов ниже).
  • снежная пудра - этот эффект соответствует снежинкам, которые цепляются за поверхность со многих сторон: например, по бокам, под днищем и т. д. Параметры этого эффекта имеют префикс Snowify... (см. список атрибутов ниже).
  • Name="mod_scout_mat" Имя, соответствующее названию материала в файле Fbx.
  • AlbedoMap="trucks/mod_scout__d.tga" Текстура с основным цветом поверхности (RGB). Дополнительную альфу (A) можно использовать либо как жесткую маску непрозрачности для альфа-теста (см. AlphaKill ниже), либо как маску прозрачности (см. Смешивание ниже).
  • AlphaKill="true" Режим жесткой прозрачности, использующий черно-белую маску из альфа-канала текстуры AlbedoMap. Значение по умолчанию: ложь. Например, этот параметр нужен для изготовления защитной сетки радиатора.
  • Blending="alpha" Режим смешивания материалов поверхности при их рендеринге. Возможные значения: «нет», «альфа» и «аддитивный». Значение «альфа» обеспечивает постоянную прозрачность материала. «Аддитивное» значение не используется для грузовых автомобилей. По умолчанию используется значение «нет».
  • NormalMap="trucks/mod_scout__n_d.tga" Карта нормалей в касательном пространстве (RGB). Зеленый цвет соответствует нижней части рельефов.
  • NormalScale="1" Коэффициент влияния текстуры NormalMap. Значение по умолчанию: 1,0.
  • ShadingMap="trucks/mod_scout__sh_d.tga" Определяет карту для данных затенения PBR: R - металличность: металличность поверхности (0 = диэлектрик, 1 = металл).
  • G – шероховатость: шероховатость поверхности (0 = идеально гладкая поверхность, 1 = чрезвычайно шероховатая поверхность).
  • B — маска фонового освещения: маска затенения для окружающего света (0 = полностью закрыто, 1 = не закрыто вообще).
  • MetalnessScale="1" Множитель значения металличности из текстуры ShadingMap. То есть металличность = металличность * MetalnessScale Диапазон значений: [0,0–1,0] Значение по умолчанию: 1,0
  • MetalnessВias="0" Сдвиг значения металличности из текстуры ShadingMap. То есть металличность = металличность + MetalnessBias Диапазон значений: [0,0–1,0] Значение по умолчанию: 0,0
  • RoughnessScale="1" Множитель значения шероховатости текстуры ShadingMap. То есть шероховатость = шероховатость * RoughnessScale Диапазон значений: [0,0–1,0] Значение по умолчанию: 1,0
  • RoughnessВias="0" Сдвиг значения шероховатости из текстуры ShadingMap. То есть шероховатость = шероховатость + RoughnessBias Диапазон значений: [0,0–1,0] Значение по умолчанию: 0,0
  • AmbientOcclusionIntensity="1" Коэффициент влияния маски затенения окружающего света из текстуры ShadingMap. Значение по умолчанию: 1,0.
  • ReflectivityMultiplier="1" Множитель, увеличивающий интенсивность отражений от материала. Значение по умолчанию: 1,0.
  • SnowUpIntensity="10" Интенсивность снежного покрова на поверхности. Значение по умолчанию: 10,0
  • SnowUpNormalsSpace="object" Режим наложения снега. Для перемещения динамических объектов используйте режим «объект». Возможные значения: «мир», «объект», «листва». Значение по умолчанию: «мир».
  • SnowUpNoiseIntensity="0" Интенсивность рисунка шума, используемого при создании слоя снега. Значение по умолчанию: 0,0
  • SnowUpNoiseScale="0.5" Частота шума слоя снега. Значение по умолчанию: 0,5
  • SnowUpAngleRange="45" Максимальный угол отклонения нормали поверхности от вектора, направленного вверх, при котором будет наложен слой снега. Значение по умолчанию: 45.
  • SnowUpFlatten="0" Коэффициент выравнивания исходной карты нормалей (в области поверхности, на которую был нанесен слой снега). Диапазон значений: [0,0–1,0] Значение по умолчанию: 0,0
  • SnowifyNoiseIntensity="40" Интенсивность воздействия снежной пудры на поверхность. Значение по умолчанию: 0,0
  • SnowifyNoiseIntensityShift="40" Коэффициент, увеличивающий влияние маски затенения окружающего освещения на интенсивность снежного покрова. Значение по умолчанию: 0,0
  • SnowifyNoiseTilingMult="1" Множитель эффекта мозаики для снежного порошка. Значение по умолчанию: 1,0.
  • ForceSnowUnderwater="true" Если этот параметр включен, этот параметр принудительно накладывает снег даже после того, как поверхность погружена в воду. По умолчанию в этих случаях очищается наложение снега.
  • DOFOrder="DistanceBased" В настоящее время не используется в игре.

7.3.

Секция, ответственная за настройку материалов.

Информацию о настройке цвета грузовика см. в главе «15. Настройка цвета» (часть №5 данного руководства). Информацию о теге — смотрите там в разделе «15.1.1.».

7.3.1.

The override of the material.

См. раздел «15.1.1.1 » ниже в части №5 данного руководства.

8.

Корневой тег в файлах классов грузовика и прицепа.

  • Type="Trailer" Этот атрибут указывает, описывается ли грузовик или прицеп.

8.1.

Описание большинства свойств самого грузовика (не включая свойства, связанные с поведением костей).

  • BackSteerSpeed="0.015" * После поворота колеса возвращаются в исходное положение. Этот параметр — скорость, с которой они возвращаются в это положение. Значение: [0,0:1,0].
  • DiffLockType="Установлен" Блокировка дифференциала. Ценности: Всегда. Любые другие значения не считываются системой (они используются исключительно для облегчения понимания того, есть ли на грузовике надстройка блокировки дифференциала (установлена, не установлена, нет).
  • EngineIconMesh="env/engine_default" Путь к файлу полупрозрачного движка .../meshes/env/engine_default.fbx
  • EngineIconScale="1.3" Масштаб полупрозрачного движка. Значение: (0,0: 8,0].
  • EngineStartDelay="0.8" Задержка запуска двигателя (после нажатия игроком кнопки, которая его запускает). Значение: [0,0: 8,0].
  • ExhaustStartTime="0.9" Время начала визуализации выхлопа. Здесь нет явного ограничения на значение.
  • FuelCapacity="280" Емкость топливных баков. Только целые значения. Для грузовика: явного ограничения на значение нет.
  • For an addon : [0:64000].
  • Отзывчивость="0,3" * Отзывчивость руля. Значение: [0,0: 1,0].
  • SteerSpeed="0.025" * Скорость поворота рулевого колеса. Значение: [0,0: 1,0].
  • TruckImage="cat_ct680_image" Иконка грузовика для гаража. ПРИМЕЧАНИЕ. Использование этого атрибута для моддинга в настоящее время находится в стадии разработки.
  • Trucktype="heavy_duty" значения: heavy, heavy_duty, highway, offroad, scout, special.

Помимо перечисленных выше атрибутов существует также набор атрибутов для маркеров состояния, отображаемых для различных частей грузовика:

Скриншот из гайда

Эти атрибуты определяют смещения для этих маркеров:

  • EngineMarkerOffset="(0.0;0.0;0.0)" Смещение маркера состояния механизма.
  • FueltankMarkerOffset="(-3.0;0.0;0.0)" Смещение маркера состояния топливного бака.
  • SuspensionMarkerOffset="(-1.0;0.0;-0.5)" Смещение маркера состояния приостановки.
  • GearboxMarkerOffset="(-1.5;0.0;0.0)" Смещение маркера состояния коробки передач.

Если значения этих атрибутов не указаны, то:

  • Маркеры состояния колес будут прикреплены к гнездам колес.
  • Маркер состояния подвески будет прикреплен к геометрическому центру между колесами.
  • Маркер состояния коробки передач будет привязан к 0 (он будет отображаться в районе заднего моста).
  • Маркер состояния двигателя будет прикреплен к центру его DamageArea.
  • Маркер состояния топливного бака будет прикреплен к центру его DamageArea.

8.1.1.

Parameters of the winch.

  • Длина="14" Максимальная длина троса лебедки. Значение: [0.0:100.0], по умолчанию: 14.
  • StrengthMult="1.3" Мощность лебедки. Значение: [0.0:10.0], по умолчанию: 1.

8.1.2.

Раздел, описывающий колеса.

Атрибуты этого тега могут содержать информацию о шине и ободе по умолчанию. Все колеса грузовика описаны в виде дочерних тегов этого тега.

В случае колес как «комплекта шин и дисков»:

  • DefaultRim="rim_1" Имя обода по умолчанию, указанное в файле, на который ссылается DefaultWheelType.
  • DefaultTire="highway_1" Имя шины по умолчанию, указанное в файле, на который ссылается DefaultWheelType.
  • DefaultWheelType="wheels_example" Имя класса колес по умолчанию .../classes/wheels/wheels_example.xml

В случае колес как «единых объектов»:

8.1.2.1.

Описание конкретного колеса.

  • Pos="(-3; 1.2; 1.5)" * Положение левого колеса (Координата Z должна быть положительной).
  • RightSide="true" Этот параметр отделяет правое колесо от левого. (Обод колеса поворачивается, а рисунок протектора остается повернутым в правильном направлении). Положение оси Z будет отрицательным.
  • ParentFrame="BoneCabin_cdt" Кость (из иерархии физической модели), к которой прикреплено колесо. Если параметр не указан, колесо будет прикреплено к корневой кости физической модели.
  • ConnectedToHandbrake="true" Колесо участвует в торможении, когда игрок нажимает ПРОБЕЛ.
  • Location="front" Значения: спереди и сзади. Этот параметр используется для колес смешанного типа (см. 4.2.) для определения, переднее это колесо или заднее. По умолчанию значение этого параметра — front.
  • Torque="default" Сила крутящего момента. Значения: по умолчанию — это колесо всегда является ведущим.
  • полное – это колесо является ведущим, только тогда включается полный привод.
  • нет – это колесо не ведущее.
  • подключаемый – является ли колесо ведущим, определяется параметром AllWheelDriveInstalled аддона, установленного в раздаточную коробку.

8.1.3.

Описание имеющихся подвесок.

Атрибуты тега содержат ссылку на XML-класс подвески, имя подвески по умолчанию (описанное в классе подвески) и параметр для ограничения диаметра колеса для низкой подвески. Подвеска используется только с колесами «в комплекте покрышек и дисков».

  • Type="trailer_sideboard_2" * Имя XML-класса подвески. Вообще типов здесь может быть несколько, разделенных запятыми: «trailer_sideboard_2, example_1, example_2». Однако подвеска очень индивидуальна и этим не пользуются.
  • Default="truck_example_suspension_default" * Имя подвески по умолчанию из XML-класса подвески ( ).
  • MaxWheelRadiusWithoutSuspension="0.3" * Максимальный радиус колеса без подвески. Эту величину логично рассчитать как разницу между радиусом наибольшего колеса для самой низкой подвески и высотой самой нижней подвески. (Например, если у нас есть Высота = 0,1 для подвески, то радиус колеса, который можно установить, будет 0,3+0,1 = 0,4).

8.1.4.

Steering wheel.

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

  • Frame="BoneSteering" * Имя кости, на которой сделан скин рулевого колеса.

8.1.5.

Steering rack.

Скриншот из гайда

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

  • Frame="BoneRack" * Название кости рулевой рейки.
  • FrameSteerLeft="BoneRackL" * Имя кости левой втулки.
  • FrameSteerRight="BoneRackR" * Имя кости правой втулки.
  • RackHalfSizeZ="0,7" * Половина длины рулевой рейки. Этот параметр определяет половину длины, поскольку транспортное средство обычно симметрично (и это просто координата Z).

8.1.6.

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

  • Происхождение="(3,886; 1,856; 0)" * Позиция
  • Масштаб = "0,9" Размер. Значение: [.1:1], по умолчанию: 1.
  • ParentFrame="BoneCabin_cdt" Имя кости из физической модели, к которой прикреплен этот эффект. По умолчанию это корневая кость.

8.1.7.

Раздел, описывающий звуки колес.

8.1.8.

Раздел, описывающий звуки повреждений.

8.1.9.

Раздел, описывающий звуки грузовика.

  • Origin="(2.8; 1.612; 0)" Место, где отрисовывается полупрозрачный движок. В этом положении будет создан излучатель звука. Эмиттер — это позиция, из которой звук будет воспроизводиться как трехмерный звук.
  • MinDist="10" Громкость звуков грузовика уменьшается после прохождения MinDist расстояния (линейно от расстояния). На расстояниях ближе, чем MinDist, громкость звуков не уменьшается.
  • MaxDist="200" После того, как расстояние превышает MinDist, громкость линейно уменьшается. На расстоянии MaxDist громкость уменьшается до нуля. ПРИМЕЧАНИЕ. Помимо этих параметров, громкость звуков грузовика уменьшается (в зависимости от расстояния) при рендеринге через звуковую библиотеку. Например, когда используется библиотека X3DAudio для ПК и Xbox One. Таким образом, параметры MinDist и MaxDist обеспечивают дополнительный эффект уменьшения громкости с увеличением расстояния.
  • DisableReversePitch="false" Этот флаг определяет поведение обратного звука. Если для этого флага установлено значение true, то звук будет воспроизводиться без каких-либо изменений. Если оно ложно, то FrequencyRatio звука будет меняться в зависимости от скорости движения.
  • IsSound2D="true" Флаг, указывающий, что для этого звука нет необходимости создавать излучатель. Звуки без излучателей будут воспроизводиться прямо в динамиках или наушниках в стереорежиме. Для таких звуков нет зависимости громкости от расстояния до грузовика (это логично, ведь к этой категории относятся только звуки двигателя). Эти звуки будут воспроизводиться в 2D-режиме, когда игрок использует вид от первого лица или играет из кабины, если соответствующие звуки указаны в XML. Если соответствующие звуки не указаны в XML, используются звуки по умолчанию. Например, EngineIdle используется вместо EngineIdle_2d.

8.1.10.

Раздел, содержащий шейкеры.

В нем может быть несколько дочерних тегов.

8.1.10.1.

Тег, описывающий нефизическое (независимое от физики Хавока) дребезжание костей в зависимости от используемой в данный момент мощности двигателя. Кость дребезжит в соответствии с шумом, имеющим амплитуду и частоту.

  • Frame="BoneExhaust" * Название шейкерной кости.
  • MinAngle="(0; 0.5; 1)" Максимальные углы поворота кости при работающем двигателе, но автомобиле стоящем (не движущемся).
  • MaxAngle="(0; 2; 4)" Максимальные углы поворота кости при работе двигателя в режиме перенапряжения.
  • MaxOffset="(0.1; 0.1; 0.01)" Максимальные линейные смещения кости при работе двигателя в режиме перенапряжения.
  • MaxFrequency="0.2" Максимальная частота дребезжания. Значения: [0; 1000], по умолчанию: 1.
  • LimitDirectionX="Positive" Используется для остановки отрицательного или положительного вращения в направлении оси X. Значения: Позитивные, Отрицательные. В частности, оно использовалось для обеспечения правильного поведения заглушки выхлопной трубы (она должна быть закрыта при выключенном двигателе; при работающем двигателе заглушка должна двигаться только в одном направлении; заглушка не должна пересекаться с самой выхлопной трубой).
  • LimitDirectionY="Positive" Аналогично LimitDirectionX.
  • LimitDirectionZ="Positive" Аналогично LimitDirectionX.

8.1.11.

Section that includes shafts.

В нем может быть несколько дочерних тегов.

8.1.11.1.

Скриншот из гайда

Валы грузовиков не принадлежат конкретному грузовику. То есть одна сетка и одна установка вала общие для всех автомобилей. Точнее, на данный момент у нас есть две установки: env/shaft для грузовиков и env/minishaft для разведчиков. Внутри самого грузовика задаются только точки, где начинается вал и где он заканчивается. Кости вала автоматически прикрепляются к костям физической модели на основе веса ближайшей вершины сетки грузовика.

  • SocketPointA="ShaftA1" * Имя сокета , которое указано в XML сетки грузовика или аддона раздаточной коробки.
  • SocketPointB="ShaftB1" * Имя сокета , которое указано в XML сетки грузовика или дополнения раздаточной коробки.
  • Mesh="env/example_shaft" Путь к файлу .../meshes/env/example_shaft.fbx. Значение по умолчанию: «окр./вал»
  • PointAConnectedToAddon="true" true, если сокет описан в XML сетки аддона раздаточной коробки. По умолчанию: ложь.
  • PointBConnectedToAddon="true" true, если сокет описан в XML сетки аддона раздаточной коробки. По умолчанию: ложь.

8.1.12.

Fake shadow below the truck.

Скриншот из гайда
  • HalfSizeZ="1.8" * Половина ширины карты окклюзии.
  • MinX="-4.211" * Минимальная координата карты по X
  • MaxX="4.51" * Максимальная координата карты по X
  • ParentFrame="BoneCabin_cdt" Имя кости из физической модели, которая

Оригинал гайда на mod.io →