×
Меню
Индекс

Использование Blob и FLTnode

 
Выделенное примечание по быстрому созданию анимаций из сложных объектов.
Основной плюс данного метода, это создание анимаций из объектов содержащих разное кол-во полигонов.
Что не позволяет загружать их в морфинг, или ограничивает применение скининга.
Т.е. принципиально различные объекты могут быть загружены в анимацию с помощью этого метода!
 
Примечание.
Помимо использования сложных объектов, можно использовать и примитивы.
Например создавая спрайты пламени.
С применением монотектсуры содержащей все фреймы анимации огня.
Метод выглядит весьма перспективным, т.к. позволяет сократить нагрузку на диск и кол-во файлов текстур.
 
Примечание.
БлобМеш доступен только в старших версиях МАХа!
В ранних можно использовать симклот, реактор, или что-то другое, что создаст анимированный объект согласно целям.
НО!
Экспорт ФЛТ ноды не поддерживает ни один экспортер.
 
Собственно, в качестве примера, BlobMesh.
https://www.youtube.com/watch?v=N93Cgm-pnzU
Которым можно создавать всякие сложные объекты, например растекающуюся кашу, или что-то в этом роде.
Конечно на прямую это не получится экспортировать в игру, но есть пути которые это позволят сделать!
О чем и пойдет речь.
 
Т.е. создаем частицы, настраиваем их анимации.
В настройках оных задаем тот тип который они будут использовать, здесь были сферы.
А затем накидываем на них BlobMesh.
Create panel   (Geometry)  Compound Objects  Object Type rollout  BlobMesh
или
Create menu  Compound  BlobMesh
The BlobMesh compound object creates a set of spheres from geometry or particles, and connects the spheres together as if they were made of a soft, liquid substance. When the spheres move within a certain distance of one another, they connect together. When they move apart, they take on a spherical form again.
Т.е. поместив в сцену оный Blob, указываем ему в качестве целей частицы.
Дополнительно просматриваем анимации, корректируем и можно идит дальше.
Применяя Snapshot.
 
Т.е. сам принцип прост:
Сперва создаем саму анимацию объекта, выполнив все просчеты (реактором, блоб мешем или еще чем).
А затем, на полученный анимированный объект, применяем Snapshot!
Которым быстренько делаем кучу клонов по времени.
Tools / Snapshot / range 0 - XXX / copies 2-4, т.е. через каждые 2 4 кадра.
Это не количество копий объекта, это номера пропущенных кадров!
Конечно можно сделать копию и в каждом кадре.
Пропуск пары кадров не сильно ухудшат анимацию, но вот размер файла уменьшат прилично!
- все полученные копии, превращаем все в editable mesh или poly (не важно), если вдруг этого не произошло автоматически.
и...
Теперь, все что остается сделать, это прописать каждому объекту когда ему отображаться!
Т.е. создать контроллер невидимости, для каждого объекта... ^-^ авторов заметок хватило на 15 штук от силы :D
Но это будет долго и нудно, хотя результаты и будут вдохновлять... но вот размер файла и трудозатраты окажут обратный результат.
Что же!
Теперь (05 2020) по прошествии почти 20 лет с выхода МВ, у нас появился еще один путь!
А именно, свеже выкопанная niFLTanimationNode.
Которую и используем с полной отдачей!
Для этого, внесем лишь незначительные оптимизации в сцену! Не более того!
- созданную кучу клонов помещаем в одну группу.
Если планируется создавать постоянную анимацию смене объектов, то Экспортируем сразу !
Одной группы будет вполне достаточно.
 
Если же требуется скрыть объекты в какой-то момент, то:
- создаем любой примитив и применяем к нему анимацию невидимости. Только к одному объекту, да.
- здесь же можно добавить текстовые ключи. Если не нужно, идем дальше!
- выделяем группу и примитив и, снова группируем.
Экспортируем!
- в результате в файле будет несколько групп, переключить видимость которых можно через состояние невидимости.
- либо одна группа, но с дополнительным контроллером невидимости + кф файл, который можно использовать вместе со скриптами.
 
Далее!
 
Отрыть модель в нифскопе.
- Ноду содержащую целевые объекты превращаем в NiFltAnimationNode.
Флаг 32 (56). Флаг нужен, т.е. менять его обязательно!
Флаг 106 создаст пинг-понг анимацию. Т.е. после завершения цикла, объекты пойдут в обратном направлении.
Флаг 32, от начала и до конца.
 
Устанавливаем period = 1 или по вкусу
Чем длиннее период, тем дольше будет отображаться вложенная деталь.
Рекомендуется сразу зайти в игру и посмотреть, какое значение будет более оптимальным.
Т.к. 1 может оказаться слишком маленьким и объекты будут буквально пролетать перед глазами.
 
- Ноду верхнего уровня, в зависимости от целей, либо оставляем как есть, либо в niBsAnimationNode.
Для постоянной работа ФЛТ анимации, наличие анимационной ноды - обязательно!
 
Далее, при необходимости корректируем флаги и настройки контроллера невидимости, если тот использовался.
И.... А собственно и все. )))
Модель готова к работе!

Примечание!
Моделям в МАХе полезно задать порядковые номера.
Те что должны работать в начале секвенции должны иметь меньшие номера.
Т.е. тем объектам, что находятся в конце блоб анимации, указать меньшие номера, а тем, что в начале большие.
Tools -> Rename tool.
Т.к. порядок детей в ФЛТ ноде и определяет порядок анимации.
Те что выше по списку, идут сначала.
Если переименование не помогло и в игре модель упорно проигрывается с конца...
Т.е. сначала идут объекты предполагавшиеся быть концом анимации.
Тогда придется в ручную менять их порядок в разделе Children ФЛТ ноды.
Что конечно, мало приятное занятие особенно если объектов много, но что не сделаешь ради Науки (Искусства)?))
 
Если все вложенные в ФЛТ ноду объекты имеют одинаковые параметры текстур и материалов.
Можно применить оптимизацию.
Смотрим сюда.
И применяем заклинание удаляющее все лишнее.
Но перед этим - открыть любой другой ниф файл.
И скопировать туда все нужные свойства (текстур материалов и пр) с первого из вложенных в ФЛТ ноду объектов.
Затем применить "заклинание" дабы удалить вообще все лишнее, таким образом оставив все вложенные объекты чистыми.
Только шейп и его шейпдата.
Теперь остается, вставить свойства обратно.
Но не на шейпы, а на ФЛТ ноду, или еще лучше - на ноду верхнего уровня в которую помещена ФЛТ нода.
Это позволит несколько сократить размер файла и оптимизировать его работу.
 
Также, дополнительно, можно упаковать ФЛТноду в CollisionSwithc и в LODnode.
Впрочем это уже зависит от поставленных целей.
Разумеется все это можно полирунуть текстурными эффектами, буферами трафарета и контроллером смены текстур.
Единственное, что придется все же оставить на шейпах, это контроллер смещения текстуры.
Однако и здесь можно "пошаманить" - использовав отдельную ноду куда поместить "цепочку" контороллеров.
 
Но что будет крайне полезно!
Это добавить в такую модель
- маркер.
Теперь в редакторе, в не зависимости от геометрии вложенных шейпов, модель будет хорошо видна.
 
Итого!
Вместо назначения на каждый объект сцены анимации невидимости, теперь, достаточно сменить только тип ноды!
Первоначальный вариант с кучей контроллеров невидимости.
Шейпы подвинуты просто для наглядности, что во что превращается.
И та же модель, но уже с одной только FLT нодой!
Да, в нифскопе будут видны все шейпы, но в игре только один в момент времени!
 
Оптимизированный файл с ФЛТ нодой.
Все свойства с вложенных шейпов удалены и перенесены на ноду верхнего уровня.
 
Для удобства управления в редакторе, в модель был добавлен маркер.
 
Красный круг - это маркер.
А маленькая розовая точка, это и есть первый шейп в списке ФЛТ!
 
Отчего наличие маркера, оказывает крайне положительный эффект на работу с такими моделями!
Т.к. больший маркер видно лучше, чем несколько примитивов.
Тем более!
Если в списке ФЛТ ноды, первым значиться объект вообще не имеющий видимых оболочек.
 
Блоб меш + флт нода = былинный профит!
Быстро, дорого, богато!