×
Меню
Индекс

NiStringExtraData список команд

 
Собственно список системных команд, которые можно использовать в НИФ файлах.
В МВ он довольно скромен.
Запись в ниф файле
расшифровка
значения
Описание, что сие делает.
NC
no collision
Ноу Колижен, т.е. нету преград!
 
Объект в котором не просчитываются коллизии и через видимые поверхности которого можно проходить в игре. Работает как для игрока, так и для всех прочих. Нпс, существа.
Однако!
- метательные снаряды не будут проходить.
- магия пролетает.
- оказывает влияние на АИ.
 
Обращайте внимание!
Если нужна полнейшая неосязаемость объекта, то следует использовать
CollisionSwitch!
Однако, это сделает объект не осязаемым и для выделения в редакторе.
Т.е. в некоторых случаях удобнее использовать NC, а не колиженСвитч.
 
NCO
no collision
object
В принципе тоже самое, что выше.
Хотя, в теории, должен позволять делать проходимыми только отдельные части объектов.
 
Это основной стринг для проходимых моделей.
Если требуется создать полностью проходимую для игрока и существ модель, следует прописывать именно этот стринг. NCO.
 
На практике, проще создавать РутКолижен сложной формы, это также позволит создавать проходимые участки в приделах одного Ниф файла.
 
NCC
no collision camera
Блокировка прохождение камеры.
 
Фактически, камера ГГ, с видом от 3-его лица, будет быстрее соскальзывать с такого объекта.
Объект полностью проходим, как для игрока так и для существ.
Кроме слегка отличного поведения камеры, никакой разницы против NCO.
 
MRK
маркер
Применяется для создания Маркеров.
Объектов видимых только в редакторе, но не в игре.
Маркер может быть в составе любого ниф файла.
В т.ч. существ!
 
Шейп маркера требует обязательного префикса TRI.
Это важно, если маркер планируется создавать в Нифскопе.
 
RCN
использование
вложенной
в состав другой ноды
Применяется для получения вложенных, в состав анимированных нод, РК.
Фактически, создается только при соблюдении особых условий организации связей в файле.
 
Предохраняет от автогенерации коллизий для всех прочих шейпов.
Т.е. если в файле есть запись RCN и РК вложеная в состав некой ноды, то коллизии будут работать только для этой РК!
Подробнее см. в разделе о РК.
 
Метод вложения РК в состав другой ноды, используется для анимированных активаторов\статиков. Где РК меняет свое положение в зависимости от состояния анимации.
 
В Ванили, применяется в in_dagoth_bridge00.nif.
 
Не вполне работоспособно.
SgoKeep
 
По идее, должно предотвращать удаление движком вложенных объектов.
На практике, как показали тесты от 2022 уважаемого Greatness7, не вполне выполняя возложенные функции, фактически не срабатывая из локальных ниф файлов.
 
По идее, воздействует на вложенные, в ноду с этой записью, объекты.
 
В отличие от команд описанных выше, которые работают только на весь файл целиком,
может находиться на любом объекте!
 
Т.е. если некоторая нода содержит этот стринг, то динамически появляющиеся в ней объекты не будут удаляться, как этого требуют низкоуровневые настройки движка игры.
 
Всегда применяется для частиц!
Поскольку сами частицы являются динамическими объектами, движок может посчитать, что после проигрывания анимации они больше не нужны и, удалить их из сцены.
 
Тоже самое для слотов Щита и Оружия.
Если sgokeep не прописано, оружие может застревать в руках.
Т.е. если убрать оружие в инвентарь, оно может продолжать рендериться в руках.
В данном случае просто примечание - моделям оружия ничего не требуется прописывать, т.к. нужный стринг уже указан в BaseAnim файле.
Но возможно, это будет актуально для существ использующих WeaponBone.
 
Впрочем, дальнейшие тесты показали не так чтоб большое влияние наличие этого стринга на оружие и прочее. Выглядит так, что добавлять его следует только в особые условие, которые используются через МВСЕ.
Т.е. в какие-то особые модели, где требуется заменять вложенные объекты посредством МВСЕ.
 
prevents NetImmerse from removing a childless node
 
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.
 
KeyPerFrame
каждому кадру времени свой ключ анимации!
Работоспособность под вопросом.
Хрчамд писал, мол нет в коде игры ничего об этом...
 
Однако эта экстра дата встречается у ряда существ.
- У всех пепельных монстров, кроме Спящего.
- атронахи Огненный и Электрический.
- Ягрум Багарн.
- Даэдрот.
- двемерский призрак.
- Никс Гончая.
- крылатый сумрак.
 
По идее, "one key per frame per bone" не должен создавать экстра дату, но только улучшать экспорт скелетной анимации.
Т.е. при экспорте моделей из МАХ с флагом:
 "Use existing Biped keyframes instead of sampled keyframes:"
Однако выше указанные модели содержат эти свойства.
 
...If this box is unchecked, the Gamebryo 3ds max Plug-in will sample the Biped animation at a rate of one key per frame per bone.  Redundant keyframes are removed, but this process can generate a large number of keyframes.  In general, you should check this option, because it's more efficient, unless you can notice poor animation conversion quality, in which case you should uncheck this option.  Usually, Footstep animation looks incorrect if you check this option, but Freeform animation looks fine.
 

Команды в 3д МАХ для ТЕС экспортера.
Назвать объект (или группу) - noCollisionObject  = NCO.
Назвать объект (или группу) - noCollision = NCO.
Назвать объект (или группу) - noCollisionСamera  = NCС.
На выходе, в ниф файле, получится NCO(NCC). Именованный объект, или группа, не будут добавлены в ниф файл!
Т.е. названия объектов дадут лишь стринг в экстра дате файла.
 
Назвать объект (или группу) - Root Collision Node = RCN. Также создаст РК.
Важно! Такой объект должен быть связан с другим объектом, одного названия недостаточно! Подробно см. здесь.
 
Назвать объект - Tri EditorMarker = MRK.
Обязательно добавить префикс TRI!
Именно объект, а не группу!
Объект будет добавлен в ниф файл, равно и создана Экстра дата MRK.
 
Добавить в User Defined объекта - SgoKeep = SgoKeep
Либо установить через MAXproperties.
SgoKeep - создается автоматически для всех типов частиц.
 
KeyPerFrame - можно прописать руками в свойства объекта, но какой-то особой команды, или системного названия для автоматического создания этих свойств - не известно. Хотя они и присутствуют в ряде ванильных моделей, т.е. вероятно, какой-то ключ для этого имелся.
 
Greatness7 писал:
NC = No Colliding, period
NCC = No Colliding, except for Camera
the NC part is just a simple startswith() check, so it will apply to any string like NCO, NCWTF, etc.
It first checks the initial two characters, then after (if it was NC) checks if the third character is C, and if so uses NCC behavior.