FOnline Engine
Current master GitHub
Документация Docs/ru/reference/particle-format/runtime.md

Runtime-контракт частиц

Сгенерированный справочник. Не редактируйте эту страницу напрямую. Обновите BuildTools/ParticleFormatInterface.json, затем выполните python BuildTools/docs_particle_format.py --write.

Индекс справочника Правила исходников Форматы и backend-ы Отрисовка Инструменты Runtime Интеграция Проверка Каноническая JSON-модель Руководство Инструменты авторинга
Стабильный ID Правило Требование Причина Источник
particle-format.runtime.backend-composition Компоновка подсистем Собирайте только подсистемы частиц, выбранные FO_SPARK_PARTICLES и FO_EFFEKSEER_PARTICLES. CreateParticleRuntimeBackends — единая точка компоновки, учитывающая включённые возможности. Source/Client/ParticleRuntime.cpp
particle-format.runtime.extension-routing Маршрутизация по расширению Ссылайтесь на пути запечённых .spk или .efk; ParticleManager выбирает подсистему по объявленному ею расширению. Расширения исходных авторских файлов не являются runtime-форматами спрайтов. Source/Client/VisualParticles.cpp
particle-format.runtime.seed Повторное создание с seed Используйте явный seed, когда требуется детерминированное воспроизведение или сравнение. Нейтральный фасад передаёт seed выбранной подсистеме. Source/Client/VisualParticles.cpp
particle-format.runtime.scale Runtime-масштаб Применяйте конечный положительный масштаб через ParticleSystem и повторно проверяйте границы, глубину и размещение привязок. Масштаб входит в независимую от подсистемы runtime-настройку и принудительно обновляет трансформацию. Source/Client/VisualParticles.cpp
particle-format.runtime.baked-bounds Обязательные запечённые границы Запекайте для каждой системы частиц смоделированный параллелепипед позиций и максимальный радиус billboard в runtime-ресурс. SPARK отклоняет систему, которая ни разу не показала частицу; Effekseer добавляет и проверяет обязательный trailer границ. Статически измеренные границы заменяют ручные размеры отрисовки и не требуют пересчитывать AABB частиц каждый кадр. Source/Tools/ParticleBaker.cpp
Source/Client/EffekseerExtension.cpp
particle-format.runtime.bounds-semantics Параллелепипед позиций и радиус billboard Считайте ParticleBounds3D.PositionMin/PositionMax мировыми позициями, преобразованными полной матрицей размещения, а BillboardRadius — ориентированным к камере запасом, преобразованным только масштабом размещения. Вращение или перемещение радиуса billboard как мировой точки завышает кадр и всё равно может неверно описывать его экранный размер. Source/Client/ParticleRuntime.h
particle-format.runtime.live-bounds Активные границы GetLiveBounds возвращает преобразованные запечённые границы, только пока в подсистеме есть активные частицы или экземпляры; неактивные и завершённые системы не резервируют пространство кадра модели. Периодические прикреплённые эффекты должны расширять содержащую их модель только во время видимости. Source/Client/SparkExtension.cpp
Source/Client/EffekseerExtension.cpp
Source/Client/ModelInstance.cpp
particle-format.runtime.sprite-frame Автоматический кадр спрайта частиц ParticleSystem проецирует запечённые границы с учётом наклона камеры карты, добавляет запасы billboard и сглаживания и автоматически вычисляет размер атласа, смещение эмиттера и мировую трансформацию. При недопустимых или недоступных границах используются Render.DefaultParticleDrawWidth/Height. Выделение ParticleSprite следует измеренному содержимому эффекта без авторского поля размера отрисовки. Source/Client/VisualParticles.cpp
Source/Client/ParticleSprites.cpp
particle-format.runtime.prewarm Prewarm Используйте prewarm, только когда эффект должен появиться уже смоделированным, и учитывайте его стоимость в проектном пороге производительности. Runtime продвигает выбранную подсистему и сбрасывает время фасада к сообщённому прошедшему времени. Source/Client/VisualParticles.cpp
particle-format.runtime.update-cadence Частота обновления Render.Animation3dFPS задаёт порог обновления частиц в миллисекундах; ноль оставляет нулевой порог и тем самым допускает обновление каждый кадр. Симуляция частиц использует общую настройку 3D-анимации, а не отдельный FPS частиц. Source/Client/VisualParticles.cpp
Source/Common/Settings.inc
particle-format.runtime.atlas-path Стандартный маршрут через внеэкранный атлас При выключенном draw in scene обновления рисуют систему SPARK в промежуточную render target и копируют её в атлас спрайтов; обычный пакетный рендеринг спрайтов рисует полученный четырёхугольник. Стандартный маршрут сохраняет обычный порядок и пакетирование спрайтов ценой уплощения глубины частиц. Source/Client/ParticleSprites.cpp
particle-format.runtime.scene-path Прямой маршрут сцены карты При включённом draw in scene ParticleSprite рисуется напрямую и выводит геометрию SPARK в проекции карты с общей целью глубины вместо обновления своей области атласа. Частицы мирового пространства могут перекрываться стоящими спрайтами и моделями согласно состоянию глубины выбранного .fofx. Source/Client/ParticleSprites.h
Source/Client/ParticleSprites.cpp
particle-format.runtime.sprite-semantics Семантика анимации ParticleSprite ParticleSprite нельзя копировать и он никогда не участвует в hit test; Play пересоздаёт систему, Stop ничего не делает, SetTime и SetDir игнорируются, а IsPlaying отражает активное состояние SPARK. Универсальные элементы управления анимацией Sprite не соответствуют временной шкале SPARK или выбору направления. Source/Client/ParticleSprites.h
Source/Client/ParticleSprites.cpp
particle-format.runtime.world-scale Общий масштаб моделей и частиц Render.ModelProjFactor задаёт число экранных пикселей на единицу трёхмерного мира для моделей и частиц в сцене. Значение движка по умолчанию — 40.0; встраивающий проект может согласованно его переопределить. ParticleSprite и проекция модели используют одну настройку масштаба, поэтому проектные переопределения влияют на оба типа. Source/Common/Settings.inc
Source/Client/ParticleSprites.cpp
Введите запрос.