×
Menu

Controller chains

Выделенное примечание о создании цепочки контроллеров.
В которой, последовательно, можно прописать все известные и доступные контроллеры.
Что в теории, может принести некоторою пользу.
Либо наоборот, создать не нужные проблемы.
 
Как оказалось, любой контроллер может находится на одном объекте, но воздействует на совсем иной!
Обычно такого не происходит, т.к. при экспорте из 3д МАХ контроллеры всегда имеют целью тот объект, которому они были назначены.  Т.е. если контроллер назначен материалу, то и будет он лежать в составе материала.
А если был использован КейФрейм, то поместится он на отдельную ноду, в детях которой будут, как сам объект, так и контроллер.
 
Но был найден один случай, где такое работало!
Т.е. контроллер был указан в слоте Controllers простого шейпа, но имел своей целью совсем иной объект!
Что в свою очередь воздействовало на всю сцену в целом!
Скрывая, как сам шейп, так и прочие объекты находившиеся в составе иерархии.
 
Повторные тесты подтвердили такую возможность!
Т.е. слот Controller шейпа, или ноды, является местом для размещения контроллера в файле, но не является контролирующим для объекта!
Для воздействия на целевой объект, главное правильно указать его номер в Target контроллера.
Было проверено для Юв, Флип и Кейфрейм и прочих доступных контроллеров!
Т.е. была создана длинная цепочка, в которой последовательно были указаны все находящиеся в файле контроллеры.
И это сработало!
Анимация сохранилась в полном объеме.
НО:
- нифскоп перестал показывать ее корректно.
- стартовые позиции объектов сместились, впрочем это никак не сказалось на самой анимации в игре.
 
Например.
Создать в файле пустую ноду, где, в слоте Controllers указать любой из уже имеющихся в сцене контроллеров.
Затем, уже в слоте Next controller этого контроллера указать следующий контроллер.
И так далее.
Получится длинная цепочка вложений из различных контроллеров.
 
Теперь, следует очистить слоты Controllers Нод, Шейпов, материалов и прочего.
И наконец, переназначить детей в корневой ноде.
Т.е. вместо нод, указать их шейпы.
Финальный штрих, удалить все оказавшееся вне корневой ноды.
 
Насколько это полезно, или нужно делать вообще - вопрос открытый.
Но если так можно сделать, то отчего бы и нет?
Хотя нет, практическая польза в этом точно есть!
Так можно сократить кол-во анимационных нод в файле, равно как и кол-во нод в целом!
Это может быть полезно в целях оптимизации быстродействия игры.
Если бы получилось изменить скрипт экспорта из Маха, или Блендера, то все означенные действия могли бы проходить в автоматическом режиме.
Исходный файл.
Контроллеры находятся в своих родных местах.
"поправленный" файл.
Все контроллеры убраны в одну ноду.
Однако, переназначать все это вручную - очень не удобно.
Кроме контроллеров, приходится менять и дочерние объекты в корневой ноде. И везде могут подстерегать ошЫбки! ^-^