Что означают два режима 2VFX
Native Semantic сопоставляет поддерживаемые поля открытого документа с модулями Unity ParticleSystem. В префабе можно проверить время жизни, эмиссию, формы, кривые и другие переносимые настройки. Браузерный шейдер при этом не превращается в нативную Unity-симуляцию инструкция в инструкцию.
Baked Visual использует PNG-атлас для дополнительного префаба на флипбуке. Изображение проходит через более простой рендер-контракт. В текущем прототипе атлас генерируется из процедурного пресета или загружается вами; это не автоматическое запекание всех изменений в Modules.
| Вопрос | Native Semantic | Baked Visual |
|---|---|---|
| Можно настраивать движение в Unity? | Да, поддерживаемые поля ParticleSystem редактируются. | Последовательность изображений фиксирована; для её изменения нужен новый атлас. |
| Сохраняются произвольные 3D-ракурсы? | Нативные частицы видны в сцене, но их вид зависит от движка. | Эффект представлен изображением, направленным к камере. |
| Будут одинаковые пиксели? | Равенство параметров и seed этого не обещает. | Ограниченный тест атласа, камеры и blending позволяет измерить сходство. |
Зафиксируйте условия сравнения
Для полезного визуального сравнения недостаточно двух скриншотов. Зафиксируйте transform модели и эффекта, камеру, размер кадра, фон, время, цветовое пространство и смешивание. На диагностическом этапе отключите постобработку, затем отдельно верните реальные настройки игры.
Используйте последовательность моментов, например 0, 0,25, 0,5 и 1 секунду, а также непрерывное воспроизведение. Такой протокол выявляет ошибки старта и цикла, скрытые пиковым кадром. Изменение расстояния камеры или экспозиции нарушает сравнение даже при неизменном эффекте.
Измеряйте и прозрачность, и цвет
Alpha intersection-over-union оценивает пересечение силуэтов при указанном пороге. Средняя абсолютная ошибка альфы показывает различия прозрачности. Ошибку цвета нужно считать в общем представлении: PNG браузера может хранить straight RGB, а прозрачный render target — premultiplied RGB.
В проекте 2VFX есть проверка одного эталонного случая огня 4×4/12 FPS: браузер → новый TGZ → настоящий Unity Baked prefab. Это подтверждение конкретного контракта, а не сертификат для всех импортированных атласов, камер и рендер-пайплайнов. Сохраняйте условия теста вместе с результатом, а не только число без контекста.
Нативному экспорту нужны семантические тесты
До оценки картинки проверьте значения импортированных модулей: enabled, режимы констант и кривых, группы XYZ, время burst и связи sub-emitter. Unity требует совместимых mode внутри группы осей; численные значения при этом могут различаться.
Затем проверяйте runtime. Для child на событии Death убедитесь, что он не испускает частицы самостоятельно до смерти родителя. Повторите builder для поиска дублирующихся объектов и связей. Успешная компиляция C# сама по себе не проверяет такое поведение.
Выбирайте под задачу игры
Native подходит, когда важна настройка поведения в движке. Baked — когда предсказуемая анимированная форма важнее объёмной свободы. В обоих случаях сохраняйте исходный .2vfx для возврата к авторингу.
Успешная проверка Built-in не подтверждает URP, HDRP, VFX Graph или Niagara. Версия движка и рендер-пайплайна — часть контракта ресурса. При их изменении нужен отдельный этап проверки.