|
Контроллеры можно классифицировать
несколькими способами: по одному
параметру против нескольких, по тому,
является ли контроллер параметрическим
или ключ-базированным, по типу данных
контроллера и по типу интерполяции
контроллера. В данном разделе
представлен взгляд на различия между
контроллерами для каждого
классификационного типа.
Контроллеры с одним и с несколькими
параметрами
Контроллеры с единственным параметром
размещены на самом нижнем уровне
иерархии контроллеров. Данные
контроллеры хранят значения анимации,
указанные пользователем для параметра
объекта и для выводных значений во
времени. Возвращаемые значения могут
иметь как единственный компонент (такой
как высота коробки) или несколько
компонентов (подобные позициям X, Y и Z
объекта). Контроллер с единственным
параметром может быть как
параметрическим, так и ключ-базированным.
Сложные контроллеры в качестве своего
ввода берут вывод других контроллеров.
Затем они объединяют полученные данные с
любыми данными параметров,
ассоциированными со сложным
контроллером, манипулируют данными и
выводят результаты . Сложными являются
контроллеры трансформации Position/Rotation/Scale
(PRS) и LookAt, контроллер вращения
Эйлера XYZ, контроллер позиции Path и
контроллер List. Каждый из сложных
контроллеров детально описывается в
данной главе позже.
Параметрические контроллеры против
ключ-базированных
Контроллеры с одним параметром можно
классифицировать по признаку, является
ли контроллер параметрическим или
ключ-баз иро ванным. Параметрический
контроллер принимает в качестве ввода
значения данных, указанные
пользователем, и затем выводит значения
на основании уравнения, реализуемого
контроллером, и на значениях Вводных
данных. Ключ базированный контроллер
воспринимает в качестве ввода значения
данных, указанные пользователем в
определенных временных точках и затем
обеспечивает в качестве вывода
интерполированные во времени значения
для любой точки.
Примером параметрического контроллера
является Noise Rotation. Ввод для
данного контроллера указывается в
диалоге свойств контроллера и включает
частоту и силу помех. Эти данные
задаются однажды и не изменяются на
протяжении всей анимации. С
параметрическим контроллером не
связываются ключи, и присутствие
контроллера обозначается линией
диапазона на дорожке параметра в Track
View. Вывод контроллера в заданное время
основывается на вводных данных, времени
и уравнении, реализуемом функцией помех.
Примером ключ-базированного контроллера
является Tension/Continuity/Bias (TCB)
Rotation. Вводом в данный контроллер
является вращение объекта в заданных
временных точках. Эти данные обычно
обеспечиваются установкой кадра
анимации, включением кнопки Animation и
вращением объекта. Каждый раз, когда
объект вращается в различных кадрах,
генерируются новые данные. Эти данные
носят название ключей, а данные,
указывающие на величину поворота,
называются значениями ключей. Наличие
ключа отображается точкой на дорожке
параметра в Track View.
Вывод ключ-базированного контроллера
основывается на значениях ключей,
времени и уравнении, использованном для
интерполяции между ключами. Для
некоторых контроллеров уравнение,
применяемое для интерполяции между
ключами, может принимать дополнительный
пользовательский ввод. Например, в
случае контроллера TCB пользователь
может настроить напряжение,
непрерывность и смещение каждого ключа.
Другие контроллеры, подобные Linear,
всегда интерполируют одинаково и не
настраиваются.
Типы данных контроллера
Контроллеры можно также классифицировать
по типу возвращаемых данных. Типы данных
контроллера должны соответствовать типу
данных параметра объекта для того, чтобы
контроллер мог применяться с данным
параметром. Например, контроллер типа
данных Scale нс может использоваться для
параметра позиции объекта ввиду различий
в типах данных. В таблице показаны
доступные типы данных и примеры
параметров, с которыми они могут
использоваться.
Типы данных Position и Scale - это
выделенные версии типа данных Pomt3 и
могут считаться одним и тем же типом, за
исключением случая, когда они
назначаются контроллерам. Единственное
заметное различие между данными
контроллерами заключается в том, что тип
интерполяции Linear доступен для типов
данных Position и Scale, но не доступен
для Pomt3.
Для управления вращением 3DS МАХ
внутренне использует кватернионовскую
математику. Кватврнио-новская математика
(используемая практически всеми
системами анимации для вещей, подобных
камерам и вращению объектов) является
полюс-базированной (polar-based)
(использующей трехкомпонентный вектор и
угол/скаляр). Данная математика
первоначально разрабатывалась в начале
XVIII века для решения задачи
предохранения от блокировки кардановых
подвесок на огромных парусных кораблях.
Кватерн ионовская математика
результируется в гладкие значения
интерполяции для вращения, в то время
как матричные решения (отдельные
вращения X, Y и Z) приводят к негладким
результатам.
Тип данных Rotation состоит из четырех
значений компонентов, требуемых для
кватернионовской математики: значения X,
Y и Z вектора и угла вращения вокруг
вектора.
СОВЕТ
Поскольку тип данных Rotation возвращает
четыре значения, нет возможности
отобразить кривую функции для
контроллера вращения. Если требуется
отобразить кривые функции вращения,
следует использовать сложный контроллер
Эйлера XYZ. Ввод в контроллер Эйлера XYZ
- это три контроллера типа данных Float,
определяющих значения вращении X, Y и Z.
Затем можно отобразить кривые функций
для каждого из этих контроллеров типа
данных Float.
Тип данных Color является особым случаем
типа данных Pomt3. Вывод из контроллеров
Pomt3 имеет любой диапазон значений.
Вывод из контроллеров Color ограничен
диапазоном 0-255.
Теперь, когда вы познакомились с
разницей между классами контроллеров, в
следующих разделах будет представлен
материал, более детально исследующий
основные типы контроллеров.
|