Глава 4.5: Рабочий процесс DayZ Tools
Главная | << Предыдущая: Аудио | DayZ Tools | Следующая: Упаковка PBO >>
Введение
DayZ Tools — это бесплатный набор приложений для разработки, распространяемый через Steam и предоставленный Bohemia Interactive для моддеров. Он содержит всё необходимое для создания, конвертации и упаковки игровых ассетов: 3D-редактор моделей, просмотрщик текстур, редактор рельефа, отладчик скриптов и конвейер бинаризации, который преобразует человекочитаемые исходные файлы в оптимизированные форматы, готовые для игры. Ни один мод DayZ не может быть собран без хотя бы некоторого взаимодействия с этими инструментами.
Эта глава даёт обзор каждого инструмента в наборе, объясняет систему диска P: (workdrive), которая лежит в основе всего рабочего процесса, описывает патчинг файлов для быстрой итерации при разработке и проводит через полный конвейер от исходных файлов до играбельного мода.
Содержание
- Обзор набора DayZ Tools
- Установка и настройка
- Диск P: (Workdrive)
- Object Builder
- TexView2
- Terrain Builder
- Binarize
- AddonBuilder
- Workbench
- Режим патчинга файлов
- Полный рабочий процесс: от исходников до игры
- Распространённые ошибки
- Лучшие практики
Обзор набора 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
- Откройте библиотеку Steam.
- Включите фильтр Tools в выпадающем меню.
- Найдите "DayZ Tools".
- Установите (бесплатно, примерно 2 ГБ).
Шаг 2: Запуск DayZ Tools
- Запустите "DayZ Tools" из Steam.
- Откроется DayZ Tools Launcher — центральное приложение-хаб.
- Отсюда вы можете запустить любой отдельный инструмент и настроить параметры.
Шаг 3: Настройка диска P:
Лаунчер предоставляет кнопку для создания и подключения диска P: (workdrive). Это виртуальный диск, который все инструменты DayZ используют в качестве корневого пути.
- Нажмите Setup Workdrive (или кнопку настройки диска P:).
- Инструмент создаёт подключённый через subst диск P:, указывающий на директорию на вашем реальном диске.
- Извлеките или создайте символическую ссылку на ванильные данные 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-ссылок. Типичный скрипт:
@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:
- File --> Open --> выберите ваш TGA-файл.
- Убедитесь, что изображение выглядит корректно.
- File --> Save As --> выберите формат PAA.
- Выберите сжатие (DXT1 для непрозрачных, DXT5 для альфа).
- Сохраните.
Инспекция ванильной PAA-текстуры:
- File --> Open --> перейдите к
P:\DZ\...и выберите PAA-файл. - Просмотрите изображение. Нажмите кнопки каналов (R, G, B, A) для инспекции отдельных каналов.
- Обратите внимание на размеры и тип сжатия, показанные в строке состояния.
Конвертация через командную строку:
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 .p3d | ODOL .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) | Нет | Загружаются как есть |
Прямой вызов
Binarize.exe -targetPath="P:\build\MyMod" -sourcePath="P:\MyMod" -noLogsНа практике вы редко вызываете Binarize напрямую — AddonBuilder оборачивает его как часть процесса упаковки PBO.
AddonBuilder
AddonBuilder — это инструмент упаковки PBO. Он принимает исходную директорию и создаёт архив .pbo, опционально запуская Binarize для контента. Это подробно описано в Главе 4.6: Упаковка PBO.
Краткая справка
# Упаковка с бинаризацией (для модов предметов/оружия с конфигами, моделями, текстурами)
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.exeAddonBuilder имеет как GUI-режим, так и режим командной строки. GUI предоставляет визуальный обозреватель файлов и чекбоксы опций. Режим командной строки используется автоматизированными скриптами сборки.
Workbench
Workbench — это среда разработки скриптов, входящая в состав DayZ Tools. Она предоставляет возможности редактирования, отладки и профилирования скриптов.
Ключевые возможности
- Редактирование скриптов с подсветкой синтаксиса для Enforce Script.
- Отладка с точками останова, пошаговым выполнением и инспекцией переменных.
- Профилирование для выявления узких мест производительности в скриптах.
- Консоль для вычисления выражений и тестирования фрагментов кода.
- Обозреватель ресурсов для инспекции игровых данных.
Запуск
DayZ Tools Launcher --> WorkbenchИли напрямую: P:\DayZ Tools\Bin\Workbench\workbenchApp.exe
Рабочий процесс отладки
- Откройте Workbench.
- Настройте проект, указав на скрипты вашего мода.
- Установите точки останова в ваших
.cфайлах. - Запустите игру через Workbench (он запускает DayZ в режиме отладки).
- Когда выполнение достигает точки останова, Workbench приостанавливает игру и показывает стек вызовов, локальные переменные и позволяет пошаговое выполнение.
Ограничения
- Поддержка Enforce Script в Workbench имеет некоторые пробелы — не все API движка полностью документированы в его автодополнении.
- Некоторые моддеры предпочитают внешние редакторы (VS Code с расширениями для Enforce Script от сообщества) для написания кода и используют Workbench только для отладки.
- Workbench может быть нестабилен с большими модами или сложными конфигурациями точек останова.
Режим патчинга файлов
Патчинг файлов — это ускоренный метод разработки, который позволяет игре загружать свободные файлы с диска вместо того, чтобы требовать их упаковки в PBO. Это кардинально ускоряет итерацию при разработке.
Как работает патчинг файлов
Когда DayZ запускается с параметром -filePatching, движок проверяет диск P: на наличие файлов перед тем, как искать в PBO. Если файл существует на P:, загружается свободная версия вместо версии из PBO.
Обычный режим: Игра загружает --> PBO --> файлы
Патчинг файлов: Игра загружает --> Диск P: (если файл существует) --> PBO (запасной вариант)Включение патчинга файлов
Добавьте параметр запуска -filePatching к DayZ:
# Клиент
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) | Да | Замена звуков без пересборки |
Рабочий процесс с патчингом файлов
- Настройте диск P: с исходными файлами вашего мода.
- Запустите сервер и клиент с
-filePatching. - Отредактируйте файл скрипта в вашем редакторе.
- Перезапустите игру (или переподключитесь) для подхвата изменений.
- Пересборка 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:.
Лучшие практики
Всегда используйте диск P:. Не поддавайтесь соблазну использовать абсолютные пути. P: — это стандарт, и все инструменты его ожидают.
Используйте патчинг файлов при разработке. Это сокращает время итерации с минут (пересборка PBO) до секунд (перезапуск игры). Собирайте PBO только для тестирования релиза и распространения.
Автоматизируйте ваш конвейер сборки. Используйте скрипты (
build_pbos.bat,dev.py) для автоматизации вызова AddonBuilder. Ручная упаковка через GUI подвержена ошибкам и медленна для модов с несколькими PBO.Разделяйте исходники и результаты. Исходные файлы живут на P:. Собранные PBO идут в отдельную директорию. Никогда не смешивайте их.
Изучите горячие клавиши. Object Builder и TexView2 имеют обширный набор горячих клавиш, которые значительно ускоряют работу. Инвестируйте время в их изучение.
Извлекайте и изучайте ванильные данные. Лучший способ узнать, как структурированы ассеты DayZ — это изучить существующие. Извлеките ванильные PBO и откройте модели, материалы и текстуры в соответствующих инструментах.
Используйте Workbench для отладки, внешние редакторы для написания. VS Code с расширениями Enforce Script обеспечивает лучшее редактирование. Workbench обеспечивает лучшую отладку. Используйте оба.
Навигация
| Предыдущая | Вверх | Следующая |
|---|---|---|
| 4.4 Аудио | Часть 4: Форматы файлов и DayZ Tools | 4.6 Упаковка PBO |
