
Эта статья не является полным гайдом по моддингу SpinTires. К сожалению, таковой гайд просто бы не уместился на одной странице. Но вы всегда сможете найти недостающую информацию в сообществе SpinTires.
Создание грузовика для SpinTires
Шаг первый:
Скачайте и установите Spintires Editor при помощи сервиса Steam. Вы сможете скачать Spintires Editor только если у вас уже куплена сама игра.
При первом запуске Spintires Editor вы должны увидеть примерно вот это:

В открывшемся окне следуйте следующему алгоритму действий (как указанно на картинке):

- Выберите папку с установленной игрой.
- Нажмите кнопку "Install Game Media" - это запустит копирование игровых файлов в папку Spintires Editor, что позволит программе использовать игровые текстуры. Поэтому не удаляйте игру, если собираетесь использовать Editor. После этого у вас появится доступ ко всем игровым ресурсам и вы сможете использовать их для создания собственного мода. После каждого обновления игры вам нужно будет повторять этот пункт, для того, чтобы Spintires Editor имел доступ к обновлённым игровым файлам.
- Также, весьма желательно иметь в распоряжении NotePad++ для редактирования XML файлов. Если у вас еще не установлен этот текстовый редактор, то смело жмите "“Get Notepad++".
- После установки NotePad++, нажмите "Install Notepad++ plugins", для того чтобы установить специальные плагины для Spintires Editor, и следуйте инструкциям на экране. Эти плагины содержат множество полезных функций, в том числе:
- Быстрый запуск любого игрового файла (ALT-SHIFT-O)
- Переход к любой XML ветви (ALT-SHIFT-D)
И многие другие.
Нажмите правой кнопкой на "_mods" в окне File View и выберите пункт "Create new mod" (как показано на картинке). Это создаст новый мод Steam Workshop, он будет оставаться невидимым для всех кроме вас, пока вы сами не опубликуете его.

Основные понятия моддинга:
Модом для Spintires называется множество файлов, объединённых в директории, имеющей мод ID в качестве имени и, в свою очередь, находящейся в директории "_mods".
При каждом запуске Spintires Editor папки всех модов, которые вы создали, будут автоматически перенесены в папку "_mods". Все что вам нужно будет сделать перед публикацией, это заполнить папки файлами. Когда вы захотите опубликовать мод, эти файлы будут автоматически конвертированы в удобный для игры формат, переименованы и заархивированы, после чего отосланы в Steam Workshop. Таким образом никто кроме автора мода не сможет увидеть оригинальных файлов мода.
Шаг второй:
Создание ".X" файла грузовика
Вам не всегда нужно будет создавать новый файл с полигональной сеткой. К примеру, вам может понадобится отредактировать полигоны, грани и свойства уже существующего грузовика, но в нашем примере мы будем создавать новый грузовик с нуля.
Spintires использует формат ".x" для файлов полигональной сетки, что является старым форматом DirectX.
Следовательно, вам нужен будет конвертер для используемых вами моделей. Мы пользовались 3Ds Max 2012 и рекомендуем конвертер kW X-port.


Убедитесь, что положение модели относительно осей установлено в стандартное положение. В 3D Max установить стандартное значение можно при помощи Hierarchy tab -> Reset Pivot.
Убедитесь, что корневой объект и сама текстура грузовика имеют одинаковую ротацию (X: 0.0, Y:0.0; Z:0.0) В 3D Max можно установить таковое при помощи Utilities tab -> Reset XForm modifier.
Полигональная модель грузовика должна быть выровнена по оси "X".
По крайней мере один объект (или субъобъект) модели должен быть физическим. Физические объекты, это объекты имеющие модель столкновения. Spintires автоматически создает модель столкновения для всех объектов, имеющих окончание "_cdt" в названии. Таким образом, эти объекты (или хитбоксы) не будут видимы в игре, то есть являются прозрачными, но могут иметь физическое тело как таковое. В тоже самое время, если объект имеет родственные субъобъекты с названием "cdt" - он будет использовать их геометрию в качестве собственной модели столкновения. Объекты с названием "cdt" не доступны в игре как таковые.
После того как установка полигональной модели завершена, переместите ".X" файл модели в "Media\_mods\[название мода]\meshes\trucks"

Шаг третий:
Создание XML-mesh файла грузовика
Каждый ".X" файл в Spintires имеет пару в виде текстурного файла ".XML", который описывает текстуры и специфические свойства полигональной модели в игре.
Найдите ваш новый ".X" файл в поле File View и дважды кликайте на него:

Откройте ваш новый XML в Spintires Editor. Кликните правой кнопкой мыши по окошку с моделью и выберите пункт "Open XML File" в выпадающем меню.

Мы крайне рекомендуем вам использовать NotePad++ для редактирования XML файлов. Если вы последовали нашему совету и установили все необходимые плагины для NotePad++, то нажатие на кнопку "Open XML File" автоматически откроет NotePad++.



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

После того как вы добавили DiffuseMap и другие атрибуты, переместите курсор к параметрам атрибута (между кавычек). Должно появиться диалоговое окно настройки атрибутов.

Выберите файл текстур при помощи проводника SpinTires.



В конце ваш XML-mesh файл должен выглядеть примерно вот так:

Шаг четвертый:
Создание файла грузовика.
Нажмите правой кнопкой мыши по папке, которую мы создали в самом начале и выберете "New truck" в выпадающем меню.


После того как вы выбрали имя, новый XML файл должен быть создан в [имя мода]\classes\trucks.
Выберите этот файл и нажмите "Show in explorer" на панели инструментов.

Прежде всего, выберите mesh-файл грузовика в качестве значения атрибута для "Truck/PhysicsModel/Mesh". Используйте инструменты Spintires для выбора файла, вместо "[truck mesh]" у вас должно быть что-то вроде "trucks/kamaz65115".
Далее выберите тип колес (некоторые стандартные типы колес находятся в папке "Media/classes/wheels") и замените "[rear wheel class]" и "[front wheel class]". Обратите внимание, что эти файлы являются XML classes, а не meshes.
После этого, проверьте, что атрибуты "ParentFrame" направлены к правильны mesh-файлам (субъобъектам).
Когда эти манипуляции будут закончены, вы можете открыть XML-файл грузовика в Spintires Editor. Он должен выглядеть примерно вот так:

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

1. Обзор Wireframe mesh.
2. Отключить редактирование. Полезно, когда вы хотите просто просмотреть файлы и текстуры модели, но не хотите изменять их.
3. Lighting mode: точечное или объемное освещение (полезно при редактировании текстур и моделей затенения).
4. Включение и отключение тумана. Не используется непосредственно при создании мода.
5. Включение и отключение сетки.
6. Системная статистика.
7. Системные таймеры.
8. Перезагрузить ресурсы (текстуры и полигоны).
9. Открыть медиа-файл.
10. Скопировать объект. Не используется непосредственно при создании мода.
11. Начать и остановить физическую симуляцию. Используется для проверки физики грузовика в Spintires Editor.
Вы, также, можете использовать Havok Visual Debugger, для теста ваших настроек физики. Что бы сделать это откройте XML-файл грузовика в Spintires Editor и начните симуляцию (кнопка 11 на тулбаре).

После этого запустите Havok Visual Debugger (файл hkVisualDebugger.exe) и подключитесь к Spintires Editor (если это не происходит автоматически, то воспользуйтесь Network > Connect > localhost). После этого вы можете использовать View > User Cameras > Spintires Camera чтобы выровнять камеру Visual Debugger и камеру Spintires Editor.

Spintires Editor, по сути, это браузер грузовиков.

1, 2, 3, 4 (HeadLight, Igniting, ReverseSignals, StopSignals) - позволяют вам просматривать и запускать действие частей Truck/ModelAttachments и TruckAddon/ModelAttachments XML.
5 (IK) - отображает настройки IK для TruckAddon/ControlledIK и TruckAddon/AutomaticIK.
6 (DamageSensation) - отображает область и части грузовика, на которые воздействует система повреждений в игре. Также, по этим областям можно оценить обтекаемость модели жидкостями.
7 (Shafts) - положение приводных валов грузовика.
8 (OcclusionMap) - текстура помещаемая на поверхность под грузовиком для симуляции окклюзии освещения.
9 (OcclusionVolume) - зона, закрытая моделью грузовика.
10 (OcclusionVolume/FullOcclusion) - используется вместо OcclusionVolume если установлен аддон с атрибутом "IsChassisFullOcclusion" с параметром "true".
Работа Spintires Editor в паре с плагинами Notepad++ Spintires:
Пример первый: регулирование положения приводных валов.
- Откройте XML-mesh файл грузовика, к которому вы хотите добавить приводные валы (используйте ALT-SHIFT-O).
- В контекстном меню выберите "Open XML File".
- В Notepad++ добавьте ветвь "SocketPoints/SocketPoint", если её нет, после этого переместите курсор между скобок в поле значений атрибута "Pos" и нажмите кнопку "Pos".

- Окно Spintires Editor должно появиться и показать глобальное положение выбранной ветви приводного вала

- Используйте 3D контроль для чтобы изменять положение ветви приводного вала или кликните по полигону для привязки к точке пересечения. Нажмите "OK", чтобы сохранить координаты в Notepad++, "Cancel", чтобы отменить изменения и "Reset", чтобы вернуться к оригинальным значениям.
Пример второй: регулировка карты затенения.
- Откройте XML-mesh файл грузовика, к которому вы хотите добавить приводные валы (используйте ALT-SHIFT-O).
- В контекстном меню выберите "Open XML File".
- В Notepad++ добавьте ветвь "Truck/OcclusionMap", если её нет, после этого переместите курсор между скобок в поле значений атрибута "HalfSizeZ" и нажмите клавишу "Z".

- Используйте 3D контроль для изменения ширины карты затенения.
Вы, также, можете редактировать локальные направления и позиции. Чтобы сделать это сперва выберите субъобъект в Spintires Editor, после чего нажмите "Pos Local/Offset" или "Dir/Axis Local" в диалоговом окне плагинов Notepad++ Spintires.
Шаг шестой:
Тестирование грузовика в игре.
После тестирования вашего грузовика в Spintires Editor, лучше всего протестировать его еще и в самой игре.
Запустите Spintires и убедитесь что у вас запущен и работает Steam.
В главном меню выберите "Proving ground", чтобы запустить игру на полигоне.


Используйте кнопку "Spawn" для того, чтобы добавить новый грузовик.


Шаг седьмой:
Публикация мода.
Ваш грузовик или аддон должен иметь приличное название. Чтобы отредактирвоать его добавьте ветвь примерно такого вида:
В специальном файле, с именем "strings.xml", который расположен в корневом каталоге вашего мода. Замените "kamaz65111" именем вашего грузовика или аддона и добавьте это имя в атрибуте "Value". Локализация модов пока еще не реализована, так что весьма рекомендуется использовать английский язык во всех названиях.
После того как вы дали имя всем своим творениям и протестировали их и в Spintires Editor, и в игре, запустите Spintires Editor и нажмите правой кнопкой мыши по вашему моду в "File View" и нажмите "Publish mod".


Если это первый раз, когда вы добавляете новый предмет в Steam Workshop, вы должны будете согласиться с условиями обслуживания, при помощи клика по ссылке "workshop terms of service".
Опционально, добавьте change note и нажмите кнопку "Publish". Должно будет появиться окно загрузки. После того как загрузка будет окончена мод станет видимым на странице https://steamcommunity.com/app/263280/workshop/