×
Меню
Индекс

TSEXP sgoKeep

 
Настройки оптимизации частиц и анимаций, не вполне выполняющие возложенные на них функции.
Для всех типов частиц добавляться автоматически.
 
sgoKeep =
TYPE=FLAG
Don't optimize object away no matter what.
Keep this object even if optimization wants to remove it.
Запрещает движку удалять дочерние ноды указанного объекта.
 
В справке от разработчиков движка:
prevents NetImmerse from removing a childless node
 
Т.е. блокирует удаление из сцены пустых niNodes.
Рекомендуется используется для "слотов".
Т.е. для Nodes в которые что-то динамически добавляется, или удаляется при использовании анимации, или работой движка.
Например, Weapon Bone которая используется как слот для добавления модели оружия в игре.
 
Hrnchamd писал:
- It prevents the scene graph from removing empty NiNode hierachies.
 
Greatness7 писал:
sgoKeep -> Scene Graph Optimizer: Keep
Tells scene graph optimizers that they should never discard this object.
Unless you are using an external optimizer tool to postprocess your file, you don't need this.
Note: When attaching objects to a RootCollisionNode at runtime (via lua scripts) some extraneous data will be automatically removed, you can use `sgoKeep` to prevent that.
 
Примечание.
По обновленным данным от декабря 2022, опция может не иметь смысла в локальных ниф файлах.
Т.е. фактически не считывается и не выполняет своих прямых функций.
Однако, может быть использованная в скриптах МВСЕ 2.2, где, может быть динамически создана в сеансе игры и добавлена в те или иные объекты.
Откуда она будет срабатывать выполняя некоторые функции оптимизации.
В основном касается сохранения объектов в составе РутКоллизий.
 
Примечание.
Greatness7 писал:
sgoKeep -> Scene Graph Optimizer: Keep
Tells scene graph optimizers that they should never discard this object.
Unless you are using an external optimizer tool to postprocess your file, you don't need this.
Note: When attaching objects to a RootCollisionNode at runtime (via lua scripts) some extraneous data will be automatically removed, you can use `sgoKeep` to prevent that.
 
Note: btw I confirmed it with a test case.
Doing rcn:attachChild(animatedNode) via mwse, the animations on animatedNode are autocleared unless you tag it with sgoKeep
so in the very specific case that you have some mesh with animations, and you want to attach that mesh to another meshes' RootCollisionNode at runtime via mwse lua, then you might want to use sgoKeep. In all other scenarios it's useless (unless you have the NiOptimize library installed, which is lost to history afaik
 
Примечание.
Не было замечено пользы от этого флага для коллизий при экспорте моделей из МАХа.
Т.е. попытки сохранить анимированные объекты в составе РК посредством этого флага не дали пользы.