NiBSParticleNode и обычные шейпы
Т.е. что бывает, если в эту ноду упаковать шейп, или "кость" (объект указанный в skinData шейпа).
Это, было протестировано в модели оружия, куда были добавлены различные элементы, так, или иначе использовавшие ноду такого типа.
Если обычный шейп просто упакован в эту ноду, то:
- он появится в мире и так и застынет на том месте где появился, при этом, будет реагировать на движение оружия, где бы игрок не находился.
- когда оружие убирается, объект исчезает, чтобы появится в новом месте, где игрок достанет оружие.
- шейп реагирует на анимацию движения оружием, но при этом, висит в воздухе сам по себе.
- флаг ноды критичен. Т.е. если флаг имеет значение follow = false (32, 96, 170 и пр). Если флаг follow = true, то поведение объекта стандартно.
Если шейп содержит скининиг и только одна, или несколько "костей" являются nibsparticleNode с флагом =false.
- шейп будет вести себя подобно багу с потерянными костями, т.е. начнет растягиваться от древка оружия к точке, где "застыла" кость.
(либо в никуда, т.е. растягивание идет в одну точку за границей мира. Вероятно в нулевые координаты локации)
- т.е. "кость" поведет себя подобно описанному выше, застынет в координатах появления оружия в мире.
- но поскольку она используется в скининге, то объект содержащий оный будет растягиваться!
- если все "кости" являются nibsparticleNod-ами, то объект целиком зависнет в координатах появления и растягивания не произойдет.
- если упаковать цепочку костей в NiBSAnimationManager, то, это позволит перемещаться видимому объекту "более компактно". (недостоверно!)
Т.е. растягивание все также будет происходить, но оно сможет перемещаться вместе с игроком.
Если используется обычная NiBSAnimationNode, или NiNode, то объект будет растягиваться к точке появления, которая будет оставаться статичной.
Примечание.
Насчет NiBSAnimationManager, данные похоже не совсем точны.
Т.е. прямого влияния этого объекта не было зафиксировано. Аналогичный результат мог возникать и при других условиях.
Как с обычными NiNode, так и с NiBSAnimationNode.
Т.е. заскиненный шейп может, как:
- фиксировать точку растягивания в позицию появления оружия.
- так и растягиваться (вероятно) в нулевые координаты мира.
Т.е. "луч" сохраняет ориентацию в одну точку вне зависимости от точки появления в игре.
Как можно видеть, NiBSParticleNode фактически позволяет отвязать объект от его... файла?
Однако, влияние локальных анимаций будет оказывать на него воздействие.
Объект вращается согласно повороту руки в момент замаха, но не смещается от точки появления в сцене.
Примечание.
Если такая конструкция использовалась в стрелах, то да... можно было видеть растягивания (скинненого шейпа) от точки выстрела к стреле.
Но получить правильную веревку, таким образом, без МВСЕ, вряд ли получится.
Примечание.
Если оружие было извлечено в интерьере, то при выходе в экстерьер, объект останется в помещении.
Т.е. придется убрать, достать, оружие, чтобы обновить рендеринг объекта. При этом может произойти вылет игры. ^-^
Вылеты и графические артефакты - происходят очевидно чаще!
Т.е. движок явно не в восторге от таких танцев с бубнами.
Примечание.
В отмеченных тестах, как "кости", так и шейпы, имели
кейфрейм контроллеры анимации (флаги 8,12 и пр), а также
ЛукАт контроллер.
Цель была проверить вероятность динамического обновлении координат объекта, так чтобы он оставался рядом с "древком" оружия.
Не сработало)))
Хотя ЛукАт отрабатывал правильно, смещая поворот шейпа относительно камеры.
В целом, все это выглядит неопределенно полезным.
Если конечно МВСЕ не сможет найти правильные пути обхода, или подхода, чтобы получить что-то более осмысленное, чем просто ловля забавных глюков.
Впрочем, если использовать эти моменты в качестве эмиттеров для частиц (т.е. видимые сетки скрыты), то, наверное, можно получить что-то более разумное!
И да, все это было в целях поиска возможностей (дешевого) способа получения у оружия шлейфа при ударе (движении).
См. здесь, что и как возможно в целом и общем.
|
|
Простейший случай.
Шейп упакованный в NiBSParticleNode просто висит в точке своего появления. При взмахе оружием, он начнет "вращаться" (относительно своей точки опоры).
|
Более "сложный" случай.
Шейп со скинингом, где только последняя в цепочке кость является NiBSParticleNode.
Направление растягивания, сохраняется всегда в одну сторону!
Т.е. что при повороте камеры, что при ином ракурсе извлечения оружия, линия растягивается всегда в одну сторону (вероятно в 0.0 координаты мира).
Либо, растягивание, может быть ограничено локально.
Точкой появления оружия.
|
|
|
Собственно, второй случай.
Когда, "растягивание" идет всегда к точке появления оружия в сцене и не фиксируется относительно игрока.
Т.е. смещения при переходе между локациями - не происходит.
|
Стрела...
Оставляет после себя такой вот шлейф, привязанный к точке выстрела оной.
В других случаях, растягивание улетает вместе со стрелой.
Т.е. точка появления начинает "уезжать" в сторону нулевых координат мира (ака в сторону).
|
|
|
Bone05 флаг 96, остальные 128.
niCollisionSwitch (а) это шейп со скином, который растягивается...
|
|