×
Menu

NiBSAnimationNode - notes

 
Примечание.
NiBSAnimationNode - уникальное творение Беседки, т.е. по справкам к движку нигде не значится.
Используется только в коде Морровинда, в коде прочих игр на NetImmerse\Gamebryo  замечен не был.
Анимационная нода, оказывает эффект на всех своих потомков!
Т.е. на все объекты (ноды и шейпы) вложенные в ее состав.
 
Примечание.
NiBSAnimationNode - Имеет ряд дополнительных полей воздействующих на вложенные в нее объекты.
Однако, управление значениями в оных, полностью возложено на флаг ноды.
Т.е. как таковых отдельных строк с настройками, эта нода, не имеет!
По флагам NiBSAnimationNode см. здесь.
 
Примечание.
SceneImmerseViewer не открывает файлы содержащие эту ноду!
Для просмотра таких файлов, следует ее переименовать в обычную NiNode.
После просмотра, переименовать обратно.
 
Примечание.
NiBSAnimationNode - необходимый элемент для любых объектов не использующих KF файла, но имеющих постоянную анимацию!
Например; фонтаны, гейзеры, бьющиеся сердца даэдр и пр.
Для таких случаев, оптимально переменить тип корневой ноды, на NiBSAnimationNode.
При этом, все вложенные ноды можно преобразовать в обычные niNode.
Кроме нод частиц, которым требуется создание хвоста за ними.
Но можно использовать и вложенные, одна в другую, NiBSAnimationNode.
Если анимация, после создания NiBSAnimationNode, так и не запустилась то, следует проверить флаг этой ноды.
Должен быть, либо 32, либо 42.
 
Примечание.
Особенно актуально, паковать корень в NiBSAnimationNode, для систем частиц, у которых нода разнесена с эмиттером.
Упаковка эмиттера и ноды частиц в одну AnimationNode, может быть эффективным решением некоторых проблем.
Например, если эмиттер содержит контроллеры анимаций, требующих постоянной работы.
 
Примечание.
В ряде случаев, вместо NiBSAnimationNode, можно использовать NiBSParticleNode.
Это актуально для моделей использующих частицы в первую очередь.
Но, подойдет и для других случаев.
Однако, не стоит паковать корень файла в  NiBSParticleNode!
Это может повлечь проблемы с перемещением объекта в редакторе.
Обратное также верно, если частицам не нужно создавать эффект "хвоста" (trailing), их можно помещать в  NiBSAnimationNode.
При этом, Анимационная нода, может быть и корнем файла.
 
Примечание.
Анимированная нода имеет проблемы с контроллерами завязанными на время.
В основном это актуально для существ и активаторов.
Где управление анимациями привязано ко времени и задается из КФ файла.
Например, контроллер невидимости, назначенный непосредственно на эту ноду, не будет работать как следует!
Т.е. он будет постоянно менять состояние объекта, отображая его, а затем снова скрывая.
Для управлением временем работы объектов находящихся в Анимированной ноде, их следует помещать в обычную Ноду!
Которой и назначать контроллеры управления анимациями относительно времени.
Т.е. анимационная нода должна быть потомком обычной ноды.
 
Т.е. в случае, если некоторой поверхности нужна (например) постоянная анимация движения текстуры, но в какой-то момент оная поверхность должна исчезнуть.
Следует разнести контроллеры по разным нодам.
- анимация текстуры находится на объектах вложенных в анимационную ноду.
- контроллер невидимости, размещен на ноде верхнего уровня, в которую и помещена анимационная нода.
 
NiBSAnimationNode
НЕ поддерживает контроллеры невидимости и не может быть использована напрямую в группах ЛОДов!
Обязательно убирайте NiBSAnimationNode во внутрь обычных НОД (NiNode).
правильно.
НЕ правильно!
 
 
В типовых случаях, создания постоянной анимации, достаточно использовать только одну NiBSAnimationNode .
Либо в качестве корня файла, либо - второй нодой в иерархии.
Т.е. все прочие объекты находятся внутри этой ноды.
Например; модель огненной соль с частицами огня, или эктоплазма испускающая пузырьки газа и пр.
 
Несколько анимационных нод, для разных деталей использовать можно, но следует учитывать их влияние на анимации вложенных объектов.
Если флаг 42 (no random = true) анимации объектов будут проигрываться асинхронно!
Т.е. у каждой ноды будет "свое" время запуска.
Если флаг 106 (no random = false) анимации объектов будут синхронны.
Т.е. все объекты будут стартовать одновременно.
См. примечание о флагах.
 
Примечание.
Если использовано в существах, позволяет обходить «дерганье» (отдельных деталей) при смене групп анимаций!
Т.е. деталь в этой группе, продолжит свое движение без сброса к начальной позиции, что непременно произошло бы, если была использована обычная нода.
См. Электрического атронаха в Симфонии, к примеру.
Молнии, вокруг тела, игнорируют смену групп анимаций, сохраняя плавность своей работы.
 
Даже, после кончины существа, эта анимация будет продолжать проигрываться!
Если этого не требуется, можно использовать контроллер невидимости на родительской ноде.
Т.е. при кончине существа можно скрыть анимированную ноду.
 
Тоже самое с объектами использующими синхронизацию с Базовой - следует назначать контроллер невидимости на родительскую ноду и скрывать ее содержимое когда оно не нужно.
 
Примечание.
Можно использовать для создания анимации после кончины существа.
Т.е. существо, сможет проигрывать некоторую анимацию в "позе" кончины.
 
Примечание.
Анимационная нода может иметь некоторые проблемы с анимациями, если ее имя указано в КФ файле.
Т.е. если некоторый объект имеющий анимации (например) движения попал в список КФ файла, то он будет проигрывать анимации согласно группам анимаций.
И не сможет полностью обходить эти приделы за счет помещения (или преобразования) его в анимационную ноду.
См. скриншот Атронаха ниже.
Оптимально разносить объекты требующие постоянной анимации, от объектов управляемых группами анимаций.
 
Примечание.
Если в файлах брони (одежды) не работают анимации, стоит проверить корень файла.
Превратить в анимационную ноду.
Также следует проверить флаги контроллеров.
 

Стоит заметить, что контроллер невидимости на этой ноде не будет работать!
Здесь ошибка, которую было сложно исправить, т.к. сама нода (Wind BoneSteаm) прописана в КФ файле, поскольку имеет некоторую анимацию.
Также, контроллер невидимости размещенный в "детских" нодах - не будет работать!
 
ходячий труп с червиями под шкурой.
Т.е. червия сделаны анимированной текстурой и для их "жизни"  нужна анимационная нода.
И здесь правильное размещение контроллеров.
Анимационная нода в составе обычной, на которою и помещен контроллер невидимости.
Классический пример статичного объекта постоянно проигрывающего анимацию в игре.
 
Здесь, фонарик постоянно летает по некоторой траектории.
Ингредиент, сердца Даэдры.
Здесь Анимационная нода используется, как корень файла.