×
Меню
Индекс

Controllers of  Animation

Краткое описание свойств контроллеров.
Контроллеры анимации, то, что дает моделям Жизнь!
 
NiAlphaController  - управление прозрачностью.
NiFlipController  - анимированные текстуры.
NiGeomMorpherController  - изменение позиций вертексов поверхностей.
NiKeyframeController  - перемещение объекта в сцене. Время, позиция, размер.
NiLightColorController  - цвет освещения.
NiLookAtController  - управление направлением взгляда объекта.
NiMaterialColorController  - цвет материала.
NiParticleColorModifier  - продвинутое управление цветом частиц.
NiPathController - движение по пути.
NiRollController - постоянное вращение.
NiSkinInstance - контроллер связи костей с сетчатой оболочкой.
NiUVController - смещение текстуры.
NiVisController - мгновенная невидимость объектов.
 

— создает плавное регулирование прозрачностью объекта.
 
*Как правило, требует наличие NiAlphaProperty.
*Исключение, карты декалей, в этом случае не следует добавлять альфа свойства.
 
— отвечает за управление частицами
 
В настройках это полный аналог NiParticleSystemController.
Однако, является и системным именем, которое сообщает ряд интересных возможностей!
 
Например, отвечает за создание копий системы частиц по цепочке объектов.
Т.е. если есть некоторая иерархия (цепочка) объектов, то все объекты начиная от второго и до предпоследнего, получат копию исходной системы частиц!
Также, позволяет использовать поверхности шейпов в качестве эмиттеров.
Т.е. создает не только клоны частиц по иерархии, но и может включать использование вертексов модели в качестве эмиттеров!
 
— контроллер потока текстур.
 
Воздействует на Текстурные Свойства.
 
— контроллер активного воздействия на сетчатую поверхность объекта.
 
Меняет позиции вертексов целевой поверхности согласно одному, или нескольким шаблонов.
 
— отвечает за фактическую анимацию движения объектов.
Это самый ходовой контроллер.
 
Время, позиция, размер, поворот.
В иных случаях, этот контроллер может быть «паразитным» и потребует его удаление, для правильной работы модели.
 
Важно!
Все контроллеры этого типа в файле, должны содержать
KeyFrameData с одним и тем же типом ключей!
Если ключи отличны друг от друга, это приведет к разного рода нарушениям анимаций!
 
— контроллер изменения цвета у фонарика.
Т.е. позволяет управлять цветом динамического эффекта вертексного освещения модели.
 
— позволяет управлять цветом материала.
Воздействует на материал объектов.
 
— позволяет менять цвет и прозрачность частицам на разных стадиях их жизни.
Логично, вешается на частицы.
 
— контроллер управляющий частицами.
 
— Это тоже в своем роде контроллер.
Содержит пассивные настройки воздействия на поверхность шейпа.
 
Не имеет настроек времени.
Т.к.  является связующим звеном между физическими объектами и их "костями", которые уже и смещают вертексы поверхности (что вполне можно назвать анимацией).
 
— передвижение текстуры по объекту.
 
Обязательно требует наличие текстурной развертки).
 
— контроллер мгновенной невидимости.
 
В отличие от альфа контроллера работает без переходов.
И не требует наличие альфы в свойствах объекта.
Вкл — объект видно.
Выкл — мгновенно исчез.
 
Отдельная группа, так называемых пофреймовых контроллеров.
Контроллеры работа которых зависит от частоты кадров игры, а не настроек времени в их свойствах!
Эти анимации НЕ проигрывается Нифскопом! Но может быть показана SceneImmerseViewerом.
 
— контроллер опосредованной анимации.
Фиксирующий направление "взгляда" одного объекта на другой.
 
Позволяет сокращать кол-во кей-фрейм контроллеров в сцене.
Можно добавлять прямо в Нифскопе.
 
— контроллер пути.
 
Указывается некую сложную траекторию по которому будет перемещаться целевой объект.
В принципе, можно добавлять в Нифскопе, но это несколько сложнее, чем ЛукАт и Ролл.
 
— контроллер вращения (покачивания).
 
Позволяет создавать вращающиеся, или качающиеся объекты, прямо в нифскопе.
Экономит размер файлов, время на создание анимации в МАХе, повышает ФПС в целом - т.к. работает с привязкой на ФПС.
Также может работать в связке с ЛукАтКонтроллером позволяя с ориентировать целевой объект относительно другого.
 
 
Полный джентльменский набор для создания достаточно сложных анимаций и эффектов.
... Покрытый меняющимися картинками медленно ползущими по колеблющейся, испускающей частиц поверхности, блестящий, Чайник - всегда повернутый носиком в определенную сторону неспешно плывущий по сложной траектории трансформирующийся во вращающийся кувшин, который сменяет свой цвет постепенно становясь прозрачным, чтобы мгновенно исчезнуть и, через секунду, появится в виде куба освещенного разноцветными пятнами прожекторов, а затем рассыпаться на множество летящих бабочек играющих своим цветом по мере удаления от точки появления...
Какой-то так пример можно привести для полной иллюстрации всех возможностей поддерживаемых движком анимаций.
 
Обращайте внимание, что время завершения у всех контроллеров в сцене, должно быть равным!
Иначе это может приводить к разного рода ошибкам в анимациях для контроллеров Stop Time которых меньше!
Т.е. если в сцене есть NiKeyframeController, NiMaterialColorController, NiParticleSystemController и пр.
Stop Time должен быть одинаков!
Исключение, разве что Roll и LookAt.
Подобного рода проблема возникает при копировании контроллеров анимации из разных ниф файлов.
Особенно, это касается частиц, которые всегда содержат NiParticleSystemController .
 
Примечание.
Как правило, по умолчанию, контроллеры размещаются в слот Controller своего же целевого объекта.
Т.е. все типы нод и шейпов в свойствах имеют строку именуемую Controller.
Куда и размещаются контроллеры анимации отвечающие за анимацию этого объекта.
Однако, по факту, контроллер может быть прописан совершенно в другом месте ниф файла!
 
В слоте Controller, нельзя указывать ничего другого кроме контроллеров анимации!
Т.е. если случайно указать номер шейпа, вместо номера контроллера, игра улетит в Краш.
Такая "конструкция" приведет к КТД!
Это правильная запись.
В слоте Controller указан КейфреймКонтроллера анимации.
 
 
Примечание.
Копирование контроллеров между файлами и в файлах см. здесь.
Общий список примечаний по возможности создания контроллеров только через нифскоп - здесь.

Примерная схема размещения контроллеров.
Т.е. что обычно можно найти в слотах controller того, или иного типа объекта.
По обновленным данным, все контроллеры можно вешать последовательно на корень сцены, или на отдельную ноду.
Главное правильно указать целевые объекты в слоте Target самого контроллера.
*Актуально при работе в Нифскопе.
*Т.к. 3д МАХ всегда назначит контроллер тому объекту, которому он и предназначен.
     -NiVisController
     -NiPathController
     -niRollController
     -niLookAtController
     -NiUVController
     -NiGeomMorpherController
     -NiKeyframeController
          -NiSkinInstance
 
     -NiVisController
     -NiKeyframeController
     -NiPathController
     -niRollController
     -niLookAtController
 
ВАЖНО!
- всегда проверяйте кол-во эффектов в свойствах Ноды.
Если ТекстурЭффект был удален, есть вероятность, что запись о нем осталась в списке эффектов.
Если это не подчистить, игра улетит в краш!
Это напоминание, на всякий случай, т.к. текстурные эффекты это не контроллеры и прописываются совершенно в другой слот.
 
     -NiVisController (но лучше вешать на эмиттер!)
     -NiKeyframeController
     -NiPathController
     -niRollController
     -niLookAtController
 
     -NiParticleSystemController
     -NiBSPArrayController
     -NiParticleGrowFade
     -NiParticleColorModifier
     -niParticleRotation
     -NiVisController  (но лучше вешать на эмиттер)
 
Лучше ничего не прописывать!
 
Если прописать контроллеры анимации, то они, перестанут работать как задумано, либо будут работать постоянно.
Анимационная нода действует на всех своих детей!
Т.е. на все вложенные в нее объекты!
Т.е. все контроллеры тоже будут работать постоянно, без учета анимационных групп и иных факторов останавливающих анимации!
 
     -NiAlphaController
*требует наличие NiAlphaProperty иначе не будет работать.
     -NiMaterialColorController
 
     -NiFlipController
 
ВАЖНО!
–     если случайно в настройках NiFlipController окажется пустая запись, без имени текстуры, игра улетит в краш!
–     Если подобная пустая запись окажется в нифе, даже за приделами основного блока, игра улетит в краш!
 
     -NiLightColorController