uVersion
Русский
Скачать →

Wiki

Правила валидации

Проверки валидации ассетов, выполняемые при check-in из редактора Unreal : 9 встроенных правил, уровни серьёзности error / warning / info, конфигурация JSON, экспорт / импорт / сброс, и ограничение, которое нужно знать.

Введение

Правила валидации представляют собой проверки ассетов Unreal, выполняемые в момент check-in из редактора Unreal : именование, размер текстуры, отсутствующие зависимости и т. д. Они служат для автоматического соблюдения соглашений студии до того, как контент попадёт в репозиторий (проект, версионируемый на сервере). Они настраиваются для каждого репозитория.

Где правила действительно применяются

Валидацию выполняет редактор Unreal, а не сервер Настроенные здесь правила загружаются и выполняются плагином uVersion для Unreal Engine в момент, когда вы отправляете из редактора. Сам же сервер никогда не обращается к правилам при записи коммита. Последствие, которое нужно знать, прежде чем на них полагаться : отправка, сделанная из настольного клиента, из командной строки (uversion checkin) или из плагина Rider, полностью обходит политику валидации, без ошибки и не оставляя следа.

Это не ошибка настройки с вашей стороны : это текущее поведение. Правила касаются ассетов Unreal (.uasset, .umap), и их проверка требует открытого редактора с загруженным проектом. Поэтому относитесь к ним как к подстраховке для художников, работающих в редакторе, а не как к барьеру, который никто не может преодолеть.

Два практических следствия :

  • Если соглашение должно быть гарантировано, а не только поощряться, предусмотрите дополнительный контроль (ревью, проверку на стороне сборки) : одни лишь правила его не обеспечивают.
  • Если у кого-то правило «никогда не срабатывает», сначала проверьте, откуда он отправляет. Художник, отправляющий из настольного клиента, не увидит никакой валидации, какой бы ни была конфигурация.

Доступ и роли

Вкладка Правила доступна суперадмину и project_admin в репозиториях, которые он администрирует.

Автоматическое заполнение, но все отключены 9 правил по умолчанию создаются автоматически при создании репозитория (а если нет, то при первом открытии вкладки Rules репозитория, в котором их нет). Они заполняются отключёнными : в новом репозитории не выполняется никакая валидация, пока администратор не включит нужные ему правила. Вы начинаете с полного набора, который нужно включить и настроить.

Уровни серьёзности

Уровень серьёзности определяет, что происходит в редакторе Unreal, когда включённое правило не проходит.

СерьёзностьЭффект при check-in из редактора Unreal
errorБлокирует check-in : открывается окно валидации, кнопка Proceed становится неактивной, и кликабельной остаётся только OK. Нужно исправить ассет.
warningНе мешает отправке, но не проходит незаметно : окно валидации всё равно открывается, перечисляет предупреждения, и пользователь должен нажать Proceed, чтобы продолжить.
infoЧисто информационный : сам по себе не открывает окно и ничего не прерывает.
Окно Pre-Checkin Validation в редакторе Unreal, со списком найденного и кнопкой Proceed.

9 встроенных правил

ПравилоПо умолчаниюЧто оно проверяет
blueprint_compilationerrorBlueprint компилируются без ошибок перед check-in.
naming_conventionwarningПрефиксы именования (стиль Allar UE5) : T_ текстуры, M_ материалы, BP_ blueprints, SM_ статические меши, WBP_ виджеты и т. д.
max_texture_sizewarningМаксимальный размер текстур : по умолчанию 4096 × 4096, требуется степень 2.
material_complexitywarningСложность материалов : по умолчанию не более 256 инструкций, 16 сэмплов текстур.
import_settingswarningСоответствующие настройки импорта (текстуры, меши).
missing_dependencyerrorНет отсутствующих зависимостей (по умолчанию игнорирует контент движка).
circular_dependencyerrorНет циклических зависимостей (глубина поиска 20 по умолчанию).
unreferenced_assetinfoОтмечает ассеты без ссылок (по умолчанию исключает карты и виджеты).
duplicate_assetwarningОбнаруживает дублирующиеся ассеты (по умолчанию игнорирует .umap).

Включение и настройка

1. Открыть вкладку Rules

В панели администрирования сначала выберите репозиторий в селекторе строки PROJECT, затем откройте вкладку Rules той же строки : правила касаются только одного репозитория за раз. 9 правил отображаются по одному в строке, с шевроном для разворачивания, переключателем, названием правила, его серьёзностью и описанием.

Список из 9 правил валидации : в каждой строке шеврон, переключатель активации, название правила, его серьёзность и выпадающее меню Error / Warning / Info справа.

2. Включить правило

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

3. Выбрать серьёзность

Выпадающее меню справа от строки предлагает Error, Warning и Info, с немедленным сохранением и здесь. По-настоящему блокирует check-in только error : см. Уровни серьёзности.

4. Настроить параметры (JSON)

Нажмите на шеврон в начале строки, чтобы развернуть правило. Поле Configuration (JSON) содержит его параметры ; измените их, затем нажмите Save Config. Недопустимый JSON блокирует сохранение и показывает подробности ошибки под полем (Invalid JSON: ...), и правило тогда остаётся в своём предыдущем состоянии.

Развёрнутое правило в его редакторе Configuration (JSON) : текст параметров в поле ввода и кнопка Save Config в правом нижнем углу.

Пример : снизить max_texture_size до 2048 для мобильного проекта или перевести naming_convention в error, чтобы применять его строго.

Экспорт, импорт, сброс

Три кнопки занимают панель инструментов в правом верхнем углу вкладки Rules :

  • Export : скачивает файл rules.json, содержащий состояние всех правил (активация, серьёзность, конфигурация).
  • Import : перезагружает rules.json и применяет каждую запись к соответствующим правилам (неизвестные ключи игнорируются).
  • Reset to Defaults : возвращает все правила к их значениям по умолчанию. Пользовательские конфигурации теряются (запрашивается подтверждение).

Экспорт / импорт служит для копирования политики валидации из одного репозитория в другой или для её версионирования в офлайне.

rules.json в репозитории

Закоммиченный rules.json применяется не кем угодно Закоммиченный файл .uversion/rules.json применяется к политике репозитория только если автор коммита обладает разрешением с именем manage_rules («возможность», то есть разрешение, привязанное к роли и действующее на всём сервере). Иначе файл сохраняется, но правила не меняются. Это защита : участник с правом записи по этому пути не может отключить валидацию, закоммитив файл.

Частые ошибки

Check-in заблокирован в редакторе Unreal

Правило с уровнем error не прошло : окно валидации перечисляет найденное, а кнопка Proceed остаётся неактивной. Исправьте ассет или (если правило слишком строгое для вашего контекста) понизьте его серьёзность до warning, либо отключите его.

Сброс стирает мои настройки

Reset to Defaults разрушителен для ваших пользовательских конфигураций. Сделайте Export заранее, если хотите иметь возможность вернуться назад.

Кажется, что правило ничего не делает

Три проверки, в таком порядке :

  1. Откуда человек отправляет? Из настольного клиента, командной строки или плагина Rider никакое правило не оценивается (см. Где правила действительно применяются).
  2. Включено ли правило? В новом репозитории вначале все они отключены.
  3. Верна ли его серьёзность? Check-in блокирует только error ; info ничего не прерывает.