Skip to content

Глава 4.5: Рабочий процесс DayZ Tools

Главная | << Предыдущая: Аудио | DayZ Tools | Следующая: Упаковка PBO >>


Введение

DayZ Tools — это бесплатный набор приложений для разработки, распространяемый через Steam и предоставленный Bohemia Interactive для моддеров. Он содержит всё необходимое для создания, конвертации и упаковки игровых ассетов: 3D-редактор моделей, просмотрщик текстур, редактор рельефа, отладчик скриптов и конвейер бинаризации, который преобразует человекочитаемые исходные файлы в оптимизированные форматы, готовые для игры. Ни один мод DayZ не может быть собран без хотя бы некоторого взаимодействия с этими инструментами.

Эта глава даёт обзор каждого инструмента в наборе, объясняет систему диска P: (workdrive), которая лежит в основе всего рабочего процесса, описывает патчинг файлов для быстрой итерации при разработке и проводит через полный конвейер от исходных файлов до играбельного мода.


Содержание


Обзор набора DayZ Tools

DayZ Tools доступен для бесплатной загрузки в Steam в категории Tools. Он устанавливает набор приложений, каждое из которых выполняет определённую роль в конвейере моддинга.

ИнструментНазначениеОсновные пользователи
Object BuilderСоздание и редактирование 3D-моделей (.p3d)3D-художники, моделлеры
TexView2Просмотр и конвертация текстур (.paa, .tga, .png)Художники по текстурам, все моддеры
Terrain BuilderСоздание и редактирование рельефа/картСоздатели карт
BinarizeКонвертация исходных форматов в игровыеКонвейер сборки (обычно автоматизирован)
AddonBuilderУпаковка PBO с опциональной бинаризациейВсе моддеры
WorkbenchОтладка скриптов, тестирование, профилированиеСкриптеры
DayZ Tools LauncherЦентральный хаб для запуска инструментов и настройки диска P:Все моддеры

Расположение на диске

После установки через Steam инструменты обычно находятся по пути:

C:\Program Files (x86)\Steam\steamapps\common\DayZ Tools\
  Bin\
    AddonBuilder\
      AddonBuilder.exe          <-- Упаковщик PBO
    Binarize\
      Binarize.exe              <-- Конвертер ассетов
    TexView2\
      TexView2.exe              <-- Инструмент для текстур
    ObjectBuilder\
      ObjectBuilder.exe         <-- 3D-редактор моделей
    Workbench\
      workbenchApp.exe          <-- Отладчик скриптов
  TerrainBuilder\
    TerrainBuilder.exe          <-- Редактор рельефа

Установка и настройка

Шаг 1: Установка DayZ Tools из Steam

  1. Откройте библиотеку Steam.
  2. Включите фильтр Tools в выпадающем меню.
  3. Найдите "DayZ Tools".
  4. Установите (бесплатно, примерно 2 ГБ).

Шаг 2: Запуск DayZ Tools

  1. Запустите "DayZ Tools" из Steam.
  2. Откроется DayZ Tools Launcher — центральное приложение-хаб.
  3. Отсюда вы можете запустить любой отдельный инструмент и настроить параметры.

Шаг 3: Настройка диска P:

Лаунчер предоставляет кнопку для создания и подключения диска P: (workdrive). Это виртуальный диск, который все инструменты DayZ используют в качестве корневого пути.

  1. Нажмите Setup Workdrive (или кнопку настройки диска P:).
  2. Инструмент создаёт подключённый через subst диск P:, указывающий на директорию на вашем реальном диске.
  3. Извлеките или создайте символическую ссылку на ванильные данные DayZ на P:, чтобы инструменты могли ссылаться на игровые ассеты.

Диск P: (Workdrive)

Диск P: — это виртуальный диск Windows (созданный через subst или junction), который служит единым корневым путём для всего моддинга DayZ. Каждый путь в моделях P3D, материалах RVMAT, ссылках config.cpp и скриптах сборки указывается относительно P:.

Зачем нужен диск P:

Конвейер ассетов DayZ был спроектирован вокруг фиксированного корневого пути. Когда материал ссылается на MyMod\data\texture_co.paa, движок ищет P:\MyMod\data\texture_co.paa. Это соглашение обеспечивает:

  • Все инструменты согласованы относительно расположения файлов.
  • Пути в упакованных PBO совпадают с путями при разработке.
  • Несколько модов могут сосуществовать под одним корнем.

Структура

P:\
  DZ\                          <-- Извлечённые ванильные данные DayZ
    characters\
    weapons\
    data\
    ...
  DayZ Tools\                  <-- Установка инструментов (или символическая ссылка)
  MyMod\                       <-- Исходники вашего мода
    config.cpp
    Scripts\
    data\
  AnotherMod\                  <-- Исходники другого мода
    ...

SetupWorkdrive.bat

Многие проекты модов включают скрипт SetupWorkdrive.bat, который автоматизирует создание диска P: и настройку junction-ссылок. Типичный скрипт:

batch
@echo off
REM Create P: drive pointing to the workspace
subst P: "D:\DayZModding"

REM Create junctions for vanilla game data
mklink /J "P:\DZ" "C:\Program Files (x86)\Steam\steamapps\common\DayZ\dta"

REM Create junction for tools
mklink /J "P:\DayZ Tools" "C:\Program Files (x86)\Steam\steamapps\common\DayZ Tools"

echo Workdrive P: configured.
pause

Совет: Рабочий диск должен быть подключён перед запуском любого инструмента DayZ. Если Object Builder или Binarize не могут найти файлы, первое, что нужно проверить — подключён ли P:.


Object Builder

Object Builder — это 3D-редактор моделей для файлов P3D. Он подробно описан в Главе 4.2: 3D-модели. Вот краткое описание его роли в инструментарии.

Ключевые возможности

  • Создание и редактирование файлов моделей P3D.
  • Определение LOD (уровней детализации) для визуальных, коллизионных и теневых мешей.
  • Назначение материалов (RVMAT) и текстур (PAA) на грани модели.
  • Создание именованных выделений для анимаций и замены текстур.
  • Размещение точек памяти и прокси-объектов.
  • Импорт геометрии из форматов FBX, OBJ и 3DS.
  • Валидация моделей на совместимость с движком.

Запуск

DayZ Tools Launcher --> Object Builder

Или напрямую: P:\DayZ Tools\Bin\ObjectBuilder\ObjectBuilder.exe

Интеграция с другими инструментами

  • Ссылается на TexView2 для предпросмотра текстур (двойной клик по текстуре в свойствах граней).
  • Создаёт файлы P3D, потребляемые Binarize и AddonBuilder.
  • Читает файлы P3D из ванильных данных на диске P: для справки.

TexView2

TexView2 — это утилита для просмотра и конвертации текстур. Она обрабатывает все конвертации форматов текстур, необходимые для моддинга DayZ.

Ключевые возможности

  • Открытие и предпросмотр файлов PAA, TGA, PNG, EDDS и DDS.
  • Конвертация между форматами (TGA/PNG в PAA, PAA в TGA и т.д.).
  • Просмотр отдельных каналов (R, G, B, A) по отдельности.
  • Отображение уровней mipmap.
  • Показ размеров текстуры и типа сжатия.
  • Пакетная конвертация через командную строку.

Запуск

DayZ Tools Launcher --> TexView2

Или напрямую: P:\DayZ Tools\Bin\TexView2\TexView2.exe

Типичные операции

Конвертация TGA в PAA:

  1. File --> Open --> выберите ваш TGA-файл.
  2. Убедитесь, что изображение выглядит корректно.
  3. File --> Save As --> выберите формат PAA.
  4. Выберите сжатие (DXT1 для непрозрачных, DXT5 для альфа).
  5. Сохраните.

Инспекция ванильной PAA-текстуры:

  1. File --> Open --> перейдите к P:\DZ\... и выберите PAA-файл.
  2. Просмотрите изображение. Нажмите кнопки каналов (R, G, B, A) для инспекции отдельных каналов.
  3. Обратите внимание на размеры и тип сжатия, показанные в строке состояния.

Конвертация через командную строку:

bash
TexView2.exe -i "P:\MyMod\data\texture_co.tga" -o "P:\MyMod\data\texture_co.paa"

Terrain Builder

Terrain Builder — это специализированный инструмент для создания пользовательских карт (рельефа). Создание карт — одна из самых сложных задач моддинга DayZ, включающая спутниковые снимки, карты высот, маски поверхностей и размещение объектов.

Ключевые возможности

  • Импорт спутниковых снимков и карт высот.
  • Определение слоёв рельефа (трава, грязь, камень, песок и т.д.).
  • Размещение объектов (зданий, деревьев, камней) на карте.
  • Настройка текстур и материалов поверхностей.
  • Экспорт данных рельефа для Binarize.

Когда нужен Terrain Builder

  • Создание новой карты с нуля.
  • Модификация существующего рельефа (добавление/удаление объектов, изменение формы рельефа).
  • Terrain Builder НЕ нужен для модов предметов, оружия, UI или скриптовых модов.

Запуск

DayZ Tools Launcher --> Terrain Builder

Примечание: Создание рельефа — это продвинутая тема, заслуживающая отдельного руководства. Эта глава охватывает Terrain Builder только в рамках обзора инструментов.


Binarize

Binarize — это основной движок конвертации, который преобразует человекочитаемые исходные файлы в оптимизированные бинарные форматы, готовые для игры. Он работает за кулисами при упаковке PBO (через AddonBuilder), но может быть вызван и напрямую.

Что конвертирует Binarize

Исходный форматВыходной форматОписание
MLOD .p3dODOL .p3dОптимизированная 3D-модель
.tga / .png / .edds.paaСжатая текстура
.cpp (config).binБинаризированный конфиг (быстрый парсинг)
.rvmat.rvmat (обработанный)Материал с разрешёнными путями
.wrp.wrp (оптимизированный)Мир рельефа

Когда нужна бинаризация

Тип контентаБинаризировать?Причина
Config.cpp с CfgVehiclesДаДвижок требует бинаризированных конфигов для определений предметов
Config.cpp (только скрипты)ОпциональноСкриптовые конфиги работают без бинаризации
Модели P3DДаODOL быстрее загружается, меньше по размеру, оптимизирован для движка
Текстуры (TGA/PNG)ДаPAA требуется во время выполнения
Скрипты (.c файлы)НетСкрипты загружаются как есть (текст)
Аудио (.ogg)НетOGG уже готов для игры
Макеты (.layout)НетЗагружаются как есть

Прямой вызов

bash
Binarize.exe -targetPath="P:\build\MyMod" -sourcePath="P:\MyMod" -noLogs

На практике вы редко вызываете Binarize напрямую — AddonBuilder оборачивает его как часть процесса упаковки PBO.


AddonBuilder

AddonBuilder — это инструмент упаковки PBO. Он принимает исходную директорию и создаёт архив .pbo, опционально запуская Binarize для контента. Это подробно описано в Главе 4.6: Упаковка PBO.

Краткая справка

bash
# Упаковка с бинаризацией (для модов предметов/оружия с конфигами, моделями, текстурами)
AddonBuilder.exe "P:\MyMod" "P:\output" -prefix="MyMod" -sign="MyKey"

# Упаковка без бинаризации (для скриптовых модов)
AddonBuilder.exe "P:\MyMod" "P:\output" -prefix="MyMod" -packonly

Запуск

Из DayZ Tools Launcher или напрямую:

P:\DayZ Tools\Bin\AddonBuilder\AddonBuilder.exe

AddonBuilder имеет как GUI-режим, так и режим командной строки. GUI предоставляет визуальный обозреватель файлов и чекбоксы опций. Режим командной строки используется автоматизированными скриптами сборки.


Workbench

Workbench — это среда разработки скриптов, входящая в состав DayZ Tools. Она предоставляет возможности редактирования, отладки и профилирования скриптов.

Ключевые возможности

  • Редактирование скриптов с подсветкой синтаксиса для Enforce Script.
  • Отладка с точками останова, пошаговым выполнением и инспекцией переменных.
  • Профилирование для выявления узких мест производительности в скриптах.
  • Консоль для вычисления выражений и тестирования фрагментов кода.
  • Обозреватель ресурсов для инспекции игровых данных.

Запуск

DayZ Tools Launcher --> Workbench

Или напрямую: P:\DayZ Tools\Bin\Workbench\workbenchApp.exe

Рабочий процесс отладки

  1. Откройте Workbench.
  2. Настройте проект, указав на скрипты вашего мода.
  3. Установите точки останова в ваших .c файлах.
  4. Запустите игру через Workbench (он запускает DayZ в режиме отладки).
  5. Когда выполнение достигает точки останова, Workbench приостанавливает игру и показывает стек вызовов, локальные переменные и позволяет пошаговое выполнение.

Ограничения

  • Поддержка Enforce Script в Workbench имеет некоторые пробелы — не все API движка полностью документированы в его автодополнении.
  • Некоторые моддеры предпочитают внешние редакторы (VS Code с расширениями для Enforce Script от сообщества) для написания кода и используют Workbench только для отладки.
  • Workbench может быть нестабилен с большими модами или сложными конфигурациями точек останова.

Режим патчинга файлов

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

Как работает патчинг файлов

Когда DayZ запускается с параметром -filePatching, движок проверяет диск P: на наличие файлов перед тем, как искать в PBO. Если файл существует на P:, загружается свободная версия вместо версии из PBO.

Обычный режим:  Игра загружает --> PBO --> файлы
Патчинг файлов: Игра загружает --> Диск P: (если файл существует) --> PBO (запасной вариант)

Включение патчинга файлов

Добавьте параметр запуска -filePatching к DayZ:

bash
# Клиент
DayZDiag_x64.exe -filePatching -mod="MyMod" -connect=127.0.0.1

# Сервер
DayZDiag_x64.exe -filePatching -server -mod="MyMod" -config=serverDZ.cfg

Важно: Патчинг файлов требует Diag (диагностического) исполняемого файла (DayZDiag_x64.exe), а не розничного. Розничная сборка игнорирует -filePatching по соображениям безопасности.

Что может патчинг файлов

Тип ассетаРаботает патчинг?Примечания
Скрипты (.c)ДаБыстрейшая итерация — редактируй, перезапускай, тестируй
Макеты (.layout)ДаИзменения UI без пересборки
Текстуры (.paa)ДаЗамена текстур без пересборки
Config.cppЧастичноТолько небинаризированные конфиги
Модели (.p3d)ДаТолько небинаризированные MLOD P3D
Аудио (.ogg)ДаЗамена звуков без пересборки

Рабочий процесс с патчингом файлов

  1. Настройте диск P: с исходными файлами вашего мода.
  2. Запустите сервер и клиент с -filePatching.
  3. Отредактируйте файл скрипта в вашем редакторе.
  4. Перезапустите игру (или переподключитесь) для подхвата изменений.
  5. Пересборка PBO не нужна.

Совет: Для изменений только в скриптах патчинг файлов полностью устраняет этап сборки. Вы редактируете .c файлы, перезапускаете и тестируете. Это самый быстрый доступный цикл разработки.

Ограничения

  • Нет бинаризированного контента. Config.cpp с записями CfgVehicles может работать некорректно без бинаризации. Скриптовые конфиги работают нормально.
  • Нет подписи ключами. Контент с патчингом файлов не подписан, поэтому работает только при разработке (не на публичных серверах).
  • Только Diag-сборка. Розничный исполняемый файл игнорирует патчинг файлов.
  • Диск P: должен быть подключён. Если рабочий диск не подключён, патчингу файлов нечего читать.

Полный рабочий процесс: от исходников до игры

Вот полный конвейер превращения исходных ассетов в играбельный мод:

Фаза 1: Создание исходных ассетов

3D-программа (Blender/3dsMax)   -->  Экспорт FBX
Графический редактор (Photoshop/GIMP) -->  Экспорт TGA/PNG
Аудиоредактор (Audacity)        -->  Экспорт OGG
Текстовый редактор (VS Code)    -->  Скрипты .c, config.cpp, файлы .layout

Фаза 2: Импорт и конвертация

FBX  -->  Object Builder  -->  P3D (с LOD, выделениями, материалами)
TGA  -->  TexView2         -->  PAA (сжатая текстура)
PNG  -->  TexView2         -->  PAA (сжатая текстура)
OGG  -->  (конвертация не нужна, готов для игры)

Фаза 3: Организация на диске P:

P:\MyMod\
  config.cpp                    <-- Конфигурация мода
  Scripts\
    3_Game\                     <-- Скрипты ранней загрузки
    4_World\                    <-- Скрипты сущностей/менеджеров
    5_Mission\                  <-- Скрипты UI/миссий
  data\
    models\
      my_item.p3d               <-- 3D-модель
    textures\
      my_item_co.paa            <-- Диффузная текстура
      my_item_nohq.paa          <-- Карта нормалей
      my_item_smdi.paa          <-- Карта отражений
    materials\
      my_item.rvmat             <-- Определение материала
  sound\
    my_sound.ogg                <-- Аудиофайл
  GUI\
    layouts\
      my_panel.layout           <-- Макет UI

Фаза 4: Тестирование с патчингом файлов (разработка)

Запуск DayZDiag с -filePatching
  |
  |--> Движок читает свободные файлы из P:\MyMod\
  |--> Тестирование в игре
  |--> Редактирование файлов прямо на P:
  |--> Перезапуск для подхвата изменений
  |--> Быстрая итерация

Фаза 5: Упаковка PBO (релиз)

AddonBuilder / скрипт сборки
  |
  |--> Читает исходники из P:\MyMod\
  |--> Binarize конвертирует: P3D-->ODOL, TGA-->PAA, config.cpp-->.bin
  |--> Упаковывает всё в MyMod.pbo
  |--> Подписывает ключом: MyMod.pbo.MyKey.bisign
  |--> Результат: @MyMod\addons\MyMod.pbo

Фаза 6: Распространение

@MyMod\
  addons\
    MyMod.pbo                   <-- Упакованный мод
    MyMod.pbo.MyKey.bisign      <-- Подпись для проверки сервером
  keys\
    MyKey.bikey                 <-- Открытый ключ для администраторов серверов
  mod.cpp                       <-- Метаданные мода (имя, автор и т.д.)

Игроки подписываются на мод в Steam Workshop, или администраторы серверов устанавливают его вручную.


Распространённые ошибки

1. Диск P: не подключён

Симптом: Все инструменты сообщают об ошибках "файл не найден". Object Builder показывает пустые текстуры. Решение: Запустите ваш SetupWorkdrive.bat или подключите P: через DayZ Tools Launcher перед запуском любого инструмента.

2. Неправильный инструмент для задачи

Симптом: Попытка редактировать PAA-файл в текстовом редакторе или открытие P3D в Блокноте. Решение: PAA — бинарный формат, используйте TexView2. P3D — бинарный формат, используйте Object Builder. Config.cpp — текстовый файл, используйте любой текстовый редактор.

3. Забыли извлечь ванильные данные

Симптом: Object Builder не может отобразить ванильные текстуры на ссылочных моделях. Материалы показываются розовым/пурпурным. Решение: Извлеките ванильные данные DayZ в P:\DZ\, чтобы инструменты могли разрешать перекрёстные ссылки на игровой контент.

4. Патчинг файлов с розничным исполняемым файлом

Симптом: Изменения файлов на диске P: не отражаются в игре. Решение: Используйте DayZDiag_x64.exe, а не DayZ_x64.exe. Только Diag-сборка поддерживает -filePatching.

5. Сборка без диска P:

Симптом: AddonBuilder или Binarize завершается с ошибками разрешения путей. Решение: Подключите диск P: перед запуском любого инструмента сборки. Все пути в моделях и материалах указаны относительно P:.


Лучшие практики

  1. Всегда используйте диск P:. Не поддавайтесь соблазну использовать абсолютные пути. P: — это стандарт, и все инструменты его ожидают.

  2. Используйте патчинг файлов при разработке. Это сокращает время итерации с минут (пересборка PBO) до секунд (перезапуск игры). Собирайте PBO только для тестирования релиза и распространения.

  3. Автоматизируйте ваш конвейер сборки. Используйте скрипты (build_pbos.bat, dev.py) для автоматизации вызова AddonBuilder. Ручная упаковка через GUI подвержена ошибкам и медленна для модов с несколькими PBO.

  4. Разделяйте исходники и результаты. Исходные файлы живут на P:. Собранные PBO идут в отдельную директорию. Никогда не смешивайте их.

  5. Изучите горячие клавиши. Object Builder и TexView2 имеют обширный набор горячих клавиш, которые значительно ускоряют работу. Инвестируйте время в их изучение.

  6. Извлекайте и изучайте ванильные данные. Лучший способ узнать, как структурированы ассеты DayZ — это изучить существующие. Извлеките ванильные PBO и откройте модели, материалы и текстуры в соответствующих инструментах.

  7. Используйте Workbench для отладки, внешние редакторы для написания. VS Code с расширениями Enforce Script обеспечивает лучшее редактирование. Workbench обеспечивает лучшую отладку. Используйте оба.


Навигация

ПредыдущаяВверхСледующая
4.4 АудиоЧасть 4: Форматы файлов и DayZ Tools4.6 Упаковка PBO

Released under CC BY-SA 4.0 | Code examples under MIT License