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

Runtime эффектов и скриптовый API

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

Индекс Синтаксис Состояние рендеринга Ресурсы Запекание Runtime Проверка Канонический JSON Руководство
Стабильный ID Правило Требование Причина Источник
effect-format.runtime.state-and-metadata Пара runtime-артефактов RenderEffect загружает запечённый исходник .fofx для состояния проходов/рендеринга и один артефакт .fofx-N-info на проход для отражённых позиций ресурсов. Изменение только бинарного файла шейдера не может изменить число проходов или состояние смешивания/глубины. Source/Frontend/Rendering.cpp
effect-format.runtime.cache-key Кеш эффекта только по пути EffectManager кеширует один изменяемый объект RenderEffect для каждого пути ресурса. Повторная загрузка того же пути возвращает существующий объект. ScriptValueBuf и необязательные buffer-ы кадра принадлежат кешированному объекту, а не слоту эффекта. Source/Client/EffectManager.cpp
effect-format.runtime.first-usage EffectUsage первой загрузки Первая загрузка пути фиксирует EffectUsage объекта RenderEffect. Не используйте один путь для несовместимых категорий ImGui, QuadSprite, Primitive или Model. Ключ кеша не включает EffectUsage, поэтому последующие загрузки возвращают первый объект без перестройки его вершинного layout или допущений pipeline. Source/Client/EffectManager.cpp, Source/Frontend/Rendering.h
effect-format.runtime.script-value-lifetime Сохранение ScriptValue При первой загрузке эффект, объявляющий ScriptValueBuf, получает обнулённый buffer. Значения сохраняются у кешированного пути до перезаписи или явной очистки; SetEffect их не очищает. Переход на другой путь выбирает buffer другого объекта, а возврат к ранее загруженному пути восстанавливает прежние значения этого объекта. Source/Client/EffectManager.cpp, Source/Client/Client.cpp
effect-format.runtime.script-value-target Разрешение цели script value Скриптовая запись разрешает выбранный сейчас эффект для одного EffectType/subtype, требует его загрузки и объявления ScriptValueBuf. Запись слота в passthrough/эффект по умолчанию без ScriptValueBuf является скриптовой ошибкой. Source/Client/Client.cpp
effect-format.runtime.per-frame-update Обновления buffer-ов кадра Каждый загруженный эффект посещается в каждом кадре; TimeBuf и RandomValueBuf создаются/обновляются только тогда, когда reflection помечает их необходимыми. Объявление встроенного buffer-а подключает эффект к его producer-у Engine. Source/Client/EffectManager.cpp
effect-format.runtime.default-selection Разрешение эффекта по умолчанию Пустой путь SetEffect возвращает эффект слота по умолчанию; непустой путь загружается с EffectUsage эффекта по умолчанию. Проекты могут временно переопределить слот и восстановить значение Engine/проекта по умолчанию, не указывая его путь. Source/Client/EffectManager.cpp

Скриптовые методы

Стабильный ID Сигнатура Стороны Поведение Ошибки Источник
effect-format.script.set-effect void Game.SetEffect(EffectType effectType, int64 effectSubtype, string effectPath) client, mapper Выбирает путь для запрошенного слота эффекта или восстанавливает значение по умолчанию при пустом effectPath. Некорректные subtype и отсутствующие/повреждённые эффекты вызывают исключение. Выбранный путь должен быть совместим с EffectUsage слота. Source/Scripting/ClientGlobalScriptMethods.cpp
effect-format.script.set-value void Game.SetEffectScriptValue(EffectType effectType, int64 effectSubtype, int valueIndex, float value) client, mapper Записывает один float в ScriptValueBuf выбранного кешированного объекта эффекта. Индекс должен находиться в диапазоне, а выбранный эффект должен быть загружен и объявлять ScriptValueBuf. Source/Scripting/ClientGlobalScriptMethods.cpp, Source/Client/EffectManager.cpp
effect-format.script.set-values void Game.SetEffectScriptValues(EffectType effectType, int64 effectSubtype, int valueStartIndex, float[] values, int valuesOffset = 0, int valuesCount = -1) client, mapper Записывает непрерывный срез значений одним нативным вызовом; valuesCount -1 выбирает оставшуюся часть входного диапазона. Входные offset/count и целевой диапазон проверяются до разрешения и записи эффекта. Source/Scripting/ClientGlobalScriptMethods.cpp, Source/Client/Client.cpp
effect-format.script.clear-values void Game.ClearEffectScriptValues(EffectType effectType, int64 effectSubtype) client, mapper Обнуляет весь ScriptValueBuf выбранного кешированного объекта эффекта. Выбранный эффект должен быть загружен и объявлять ScriptValueBuf. Source/Scripting/ClientGlobalScriptMethods.cpp, Source/Client/EffectManager.cpp
Введите запрос.