Реклама
реклама в интернете, поисковая оптимизация сайтов - https://seo-matik.ru/
VIKO - типография - https://viko.info/


TBN.ru - https://www.tbn.ru/

TBN.ru - https://www.tbn.ru/
Друзья

Adobe  Photoshop  Corel  Draw  3d
Flash Графика
Newprog.com - https://newprog.com/
WMaster.ru - https://www.wmaster.ru/
Web-support.ru - https://web-support.ru/
Animac.ru - https://animac.ru/
WebZ - https://webz.ru/
Иконки - https://ico.brush.ru/
Stormarts.ru - https://www.stormarts.ru/
Vebius.com.ru - https://www.vebius.com.ru/
Футбол - https://extrascore.com/ , новости - https://extrascore.com/ , UEFA - https://extrascore.com/ , Лига Чемпионов - https://extrascore.com/
WebInfo.com.ru - https://webinfo.com.ru/
DWorld.com.ru - https://dworld.com.ru/

Adobe Photoshop   Corel Draw   3d Flash Графика

TBN.ru - сети, живущие по правилам - https://www.tbn.ru/

3D Studio Max - Программирование в 3D Studio Max

Использование контроллеров и выражений

Рейтинг статьи: 0.000.000.000.000.00
Проголосовало 0 человек.
Оцените статью:

ГЛАВА 24

Table of Contents

ГЛАВА 24

Использование контроллеров и выражений

Каждый раз при выполнении анимации объекта на сцене 3D Studio MAX сохраняет все данные, необходимые для репродуцирования анимации. Поскольку вы не указываете, как объект будет оживляться в каждом кадре, 3DS МАХ должна рассчитать (интерполировать) данные анимации для кадров, данные анимации которых не заданы. В предыдущих версиях 3D Studio способ сохранения этих данных не был доступен пользователю. Более того, существовал только один тип интерполяции.

Все данные анимации в 3D Studio MAX обрабатываются элементами, которые называются контроллерами и хранят значения анимации, а также управляют интерполяцией от одного значения к другому. 3DS МАХ распространяется со множеством контроллеров. Понимание различий между контроллерами, того, как они работают, умение выбрать контроллер для работы в определенных обстоятельствах и умение настроить поведение контроллера является важным для получения желаемой анимации.

В данной главе разъясняется использование контроллеров в 3DS МАХ и освещаются следующие темы:

  • Выбор типов контроллеров
  • Одиночный параметр против сложных контроллеров
  • Параметрические контроллеры против ключ-базированных контроллеров
  • Типы данных контроллеров
  • Типы интерполяции ключ-базированных контроллеров
  • Контроллеры выражений
  • Копирование и вставка контроллеров
  • Преобразование вывода параметрического контроллера в ключ-базированную анимацию

При создании объекта в 3DS МАХ особое подключаемое приложение, ассоциируемое с объектом, определяет список параметров, поддающихся анимации. С целью экономии памяти данным параметрам контроллер обычно не присваивается. Если пользователь выполняет анимацию параметра, последнему присваивается контроллер по умолчанию.

В дополнение к списку параметров, возвращаемого из подключаемого к объекту приложения, 3DS МАХ присваивает объекту контроллер трансформации. Контроллер трансформации отслеживает положение объекта в мировом пространстве, любые данные вращения, ассоциированные с объектом и примененные к объекту факторы масштабирования. При создании объекта контроллеры по умолчанию присваиваются контроллеру трансформации и его входным контроллерам.

Рисунок 24.1 демонстрирует параметры и контроллеры по умолчанию, ассоциированные с коробкой, которая еще не была оживлена, но ей был присвоен материал- Оживляемые параметры обозначаются зеленым треугольником. Для каждого параметра отображается имя параметра и в случае назначения контроллера за именем параметра следуют контроллер интерполяции и типы данных.

Выбор различных типов контроллеров

Хотя 3DS МАХ и назначает типы контроллеров по умолчанию, можно изменить тип контроллера параметра на другой тип. Кроме того, можно изменить типы по умолчанию, которые 3DS МАХ присваивает параметрам. Типы контроллеров для всех параметров изменяются в Track View. Типы контроллеров уровня трансформации на объектном уровне имеется возможность изменить из панели Motion.

Для изменения контроллера параметра объекта в Track View выполните следующие шаги:

  1. Откройте Track View и расширьте дорожки объекта до уровня параметра.
  2. Выберите параметр и щелкните на Assign Controller.
  3. Выберите желаемый контроллер в диалоге Replace Position Controller и нажмите на ОК (см. рис. 24-2).

Для изменения контроллера параметра объекта на панели Motion выполните следующие шаги;

  1. Выберите объект и откройте панель Motion.
  2. Нажмите на Parameters и откройте свиток Assign Controller (см, рис. 24.3).
  3. Выберите параметр и нажмите на Assign Controller.
  4. Выберите желаемый контроллер в диалоге Replace Controller и затем щелкните на ОК.

Обратите внимание на то, что после выбора контроллера в диалоге Replace Controller кнопка Make Default становится активной. После выполнения на ней щелчка будет задан вопрос, уверены ли вы в том, что хотите, чтобы данный контроллер стал контроллером по умолчанию для всех параметров с одним и тем же типом данных. Если ответить утвердительно, то всегда, когда 3DS МАХ будет присваивать контроллер параметру с определенным типом данных, будет использоваться выбранный контроллер.

ПРЕДУПРЕЖДЕНИЕ

В случае выбора параметрического контроллера (подобного Path или Noise) в качестве контроллера по умолчанию для типа данных, исчезает возможность интерактивной установки или изменения значения параметра, использующего этот тип данных. Например, если установлен контроллер Position Expression в качестве контроллера позиции по умолчанию, все новые объекты создаются в исходной точке World и не могут перемещаться интерактивно. При изменении типа контроллера для параметра 3DS МАХ по возможности превращает любые существующие данные анимации в формат, требуемый для нового контроллера. Если один ключ-базированный контроллер изменяется на другой кпюч-базированный контроллер, данные анимации сохраняются. Однако, если конвертируется параметрический контроллер, то данные анимации будут потеряны.

3D Studio MAX не предоставляет возможности изменить контроллер для некоторых параметров. Такими параметрами являются Ease Curves, Morph, управляющие точки деформации лофтинга и модификатор Gizmo Center Positions.

Что такое контроллеры

Контроллеры можно классифицировать несколькими способами: по одному параметру против нескольких, по тому, является ли контроллер параметрическим или ключ-базированным, по типу данных контроллера и по типу интерполяции контроллера. В данном разделе представлен взгляд на различия между контроллерами для каждого классификационного типа.

Контроллеры с одним и с несколькими параметрами

Контроллеры с единственным параметром размещены на самом нижнем уровне иерархии контроллеров. Данные контроллеры хранят значения анимации, указанные пользователем для параметра объекта и для выводных значений во времени. Возвращаемые значения могут иметь как единственный компонент (такой как высота коробки) или несколько компонентов (подобные позициям X, Y и Z объекта). Контроллер с единственным параметром может быть как параметрическим, так и ключ-базированным.

Сложные контроллеры в качестве своего ввода берут вывод других контроллеров. Затем они объединяют полученные данные с любыми данными параметров, ассоциированными со сложным контроллером, манипулируют данными и выводят результаты (см рис. 24.4). Сложными являются контроллеры трансформации Position/Rotation/Scale (PRS) и LookAt, контроллер вращения Эйлера XYZ, контроллер позиции Path и контроллер List. Каждый из сложных контроллеров детально описывается в данной главе позже.

Параметрические контроллеры против ключ-базированных

Контроллеры с одним параметром можно классифицировать по признаку, является ли контроллер параметрическим или ключ-баз иро ванным. Параметрический контроллер принимает в качестве ввода значения данных, указанные пользователем, и затем выводит значения на основании уравнения, реализуемого контроллером, и на значениях Вводных данных. Ключ-базированный контроллер воспринимает в качестве ввода значения данных, указанные пользователем в определенных временных точках и затем обеспечивает в качестве вывода интерполированные во времени значения для любой точки.

Примером параметрического контроллера является Noise Rotation. Ввод для данного контроллера указывается в диалоге свойств контроллера и включает частоту и силу помех (см, рис. 24.5). Эти данные задаются однажды и не изменяются на протяжении всей анимации. С параметрическим контроллером не связываются ключи, и присутствие контроллера обозначается линией диапазона на дорожке параметра в Track View. Вывод контроллера в заданное время основывается на вводных данных, времени и уравнении, реализуемом функцией помех.

Примером ключ-базированного контроллера является Tension/Continuity/Bias (TCB) Rotation. Вводом в данный контроллер является вращение объекта в заданных временных точках. Эти данные обычно обеспечиваются установкой кадра анимации, включением кнопки Animation и вращением объекта. Каждый раз, когда объект вращается в различных кадрах, генерируются новые данные. Эти данные носят название ключей, а данные, указывающие на величину поворота, называются значениями ключей. Наличие ключа отображается точкой на дорожке параметра в Track View.

Вывод ключ-базированного контроллера основывается на значениях ключей, времени и уравнении, использованном для интерполяции между ключами. Для некоторых контроллеров уравнение, применяемое для интерполяции между ключами, может принимать дополнительный пользовательский ввод. Например, в случае контроллера TCB пользователь может настроить напряжение, непрерывность и смещение каждого ключа (см. рис. 24.6). Другие контроллеры, подобные Linear, всегда интерполируют одинаково и не настраиваются.

Типы данных контроллера

Контроллеры можно также классифицировать по типу возвращаемых данных. Типы данных контроллера должны соответствовать типу данных параметра объекта для того, чтобы контроллер мог применяться с данным параметром. Например, контроллер типа данных Scale нс может использоваться для параметра позиции объекта ввиду различий в типах данных. В таблице 24.1 показаны доступные типы данных и примеры параметров, с которыми они могут использоваться.

Таблица 24.1. Типы данных, связанные с параметрами
Тип данных контроллера Действительные параметры
Position Объект или позиция гизмо модификатора, позиция центра гизмо
Scale Масштаб объекта или гизмо модификатора
Rotation Вращение объекта или гизмо модификатора
Float Любой парметр с единственным значением компонента (высота, число сегментов, угол вращения, непрозрачность и т. д.)
Point3 Любой параметр с тремя значениями компонента, отличных от Position и Scale (в настоящее время используется только для цветов материала)
Color Любой цвет материала (рассеянный, фоновый и пр.)
Morph Используется только для параметра морфинга

Типы данных 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.

Теперь, когда вы познакомились с разницей между классами контроллеров, в следующих разделах будет представлен материал, более детально исследующий основные типы контроллеров.

Ключ-базированные контроллеры

Ключ-базированные контроллеры используются для определения значений между ключами. Для всех контроллеров кривая функции всегда проходит через ключевые значения в момент времени, связанный с ключом. Различные контроллеры оказывают влияние только на интерполяцию между ключами, но не на сами ключи.

Таблица 24.2 показывает доступные типы интерполяции и типы данных, с которыми они могут использоваться.

Таблица 24.2. Типы данных, доступные для каждого типа интерполяции.
Тип интерполяции Действительные типы данных
Linear Position, Rotation, Scale, Float
Smooth Rotation
Bezier Position, Scale, Float, Points, Color
ТСВ Position, Rotation, Scale, Float, Point3, Morph

Каждая комбинация типов интерполяции и типов данных реализуется посредством уникального контроллера. Метод для варьирования значений ключей и значений интерполяционных параметров для ключей является одним и тем же внутри группы контроллеров заданного типа интерполяции.

Контроллеры, использующие тип интерполяции Linear, разделяют изменение в значениях ключей между данным ключом и следующим на количество времени между ключами. Значения, возвращаемые из контроллера, следуют прямой линии между ключами и равномерно распределяются во времени, т.е. значения между ключами изменяются с постоянной скоростью. Никакой настройки интерполяции значений выполнить нельзя.

Контроллеры, использующие тип интерполяции Smooth, настраивают касательную кривой, проходящей через значение ключа, и обеспечивают гладкую интерполяцию в ключе. Никакой настройки интерполяции значений выполнить нельзя.

Контроллеры, использующие тип интерполяции Безье, применяют настраиваемый сплайн Безье, проходящий по ключам, и вычисляют значения между ключами. Форма кривой сплайна основывается на значениях ключа и тангенса в ключах. Параметры интерполяции, а также их влияние на кривую, описаны в разделе "Контроллеры Безье".

Контроллеры, использующие тип интерполяции ТСВ, интерполируют между ключами на основе пяти параметров: Tension, Continuity, Bias, Ease to и Ease from. Форма кривой функции базируется на ключе и значениях параметров в ключе. Влияние параметров интерполяции на кривую описано в разделе "Контроллеры ТСВ".

Для всех контроллеров можно установить или настроить значения ключа, включая кнопку Animate, устанавливая соответствующее время и затем устанавливая новое значение для варьируемого параметра. Для всех контроллеров, кроме контроллеров вращения, также можно создавать ключи или настраивать значения, связанные с ключом. Для этого применяются инструменты Function Curve в Track View. Как описывалось ранее, ключи вращения нельзя отобразить как Function Curve, следовательно их нельзя настроить описанным способом.

Для типов контроллеров Безье и ТСВ значения ключей можно также настроить, щелкая правой кнопкой на ключе и задав при этом режим Edit Key или Function Curve. В результате такого действия отображается диалог Key Info, в котором можно изменять значения. Рисунок 24.7 показывает примеры диалогов Key Info для контроллеров Bczier Float, Scale и Color. Рисунок 24.8 демонстрирует диалоги Key Info для контроллеров ТСВ Rotation, Scale и Float. Как видно из диалогов, внутри интерполяционного типа изменяется только количество полей со значениями ключей. Элементы управления остаются одинаковыми. Исключение составляет контроллер Безье Color. Он используется только с параметрами света, что и отражает диалог. В диалоге Key Info данного контроллера пользователь может задавать цвета с использованием как модели RGB, так и модели HSV. Обеспечивается цветовая отметка, отображающая указанный значениями цвет. После щелчка на цветовой отметке будет отображен стандартный диалог Color Selector.

Для контроллеров, связанных с трансформацией на объектном уровне, ключевые значения можно настроить в свитке Key Info в панели команд Motion.

Контроллеры Безье

Интерполяция Безье между двумя ключами основана на ключе и значении тангенса ключа. Значения тангенсов можно настроить, щелкая правой кнопкой мыши на ключе, находясь в Track View в режимах Edit Key или Function Curve. Такое действие отобразит диалог Key Info, где можно изменять значения. Для контроллеров, связанных с трансформацией на объектном уровне, значения тангенсов можно настроить в свитке Key Info на панели команд Motion.

3DS МАХ .обеспечивает пять предварительно определенных тангенциальных типов и один пользовательский тангенциальный тип. Тангенциальный тип выполняется с использованием подменю Key Tangent в диалоге Key Info. Рисунок 24.9 показывает диалог Key Info с раскрытым подменю Key Tangent.

В следующем примере вы увидите влияние каждого из тангенциальных типов на движение объекта. Сцена состоит из сферы, которая перемещается по круговому пути. Две сплайновые формы показывают, каким мог бы оказаться путь, если бы путь следования был круговым или линейным. Обратите внимание на то, что повсюду в примере положение сферы в ключе всегда является положением, определенным ключом и время, ассоциированное с ключом, никогда не изменяется.

Влияние тангенциальных типов Безье на движение объекта

  1. Загрузите файл ch24_l.max из папки Chapter 24 сопровождающего CD-ROM.
  2. Выберите сферу и нажмите в кнопку Trajectories на панели команд Motion.
    Голубая линия отобразит траекторию сферы, желтые точки будут обозначать возрастание кадров и белые квадраты - ключи.
  3. В Track View расширьте дорожки так, чтобы отображать дорожку позиции для SphereOl. Нажмите Function Curves. Щелкните на кривой для отображения ключей.
  4. Выполните выбор области с целью выбора всех ключей. Для отображения диалога Key Info щелкните правой кнопкой мыши (см. рис. 24.10). Перепозиционируйте диалог Key Info так, чтобы можно было видеть кривые функций в Track View и траекторию SphereOl в видовом окне Тор.
    Диалог Key Info показывает, что все ключи используют гладкий тангенциальный тип. Траектория, отраженная в видовом окне, и кривые функций, показанные в Track View, представляют гладкую интерполяцию.
  5. Щелкните в Track View на точке ключа Y (зеленая кривая) в кадре 25. Теперь диалог Key Info будет показывать параметры только для данного ключа.
  6. Щелкните и удержите кнопку мыши на подменю Out Key Tangent и выберите тип касательной Linear. Траектория между вторым и третьим ключом по прежнему кривая, но спрямляется при выходе из второго ключа.
  7. Щелкните на правой стрелке рядом с внешним тангенциальным подменю и установите тангенс следующего ключа в тангенциальный тип Linear.
    Как видно из рисунка 24.11, траектория между вторым и третьим ключами является прямой. Интерполированное значение между двумя ключами 3DS МАХ вычисляет, основываясь как на выходном тангенсе первого ключа, так и на входном тангенсе второго ключа. Эффект тангенса для ключа уменьшается по мере приближения к другому ключу.
  8. Установите выводной тангенс в тангенциальный тип Step. Транспортируйте ползунок времени по диапазону от 25 до 50. Если выводной тангенс для одного ключа является тангенциальным типом Step, то входной тангенс следующего ключа автоматически изменяется на тангенциальный тип Step. Тангенциальный тип Step поддерживает выводное значение постоянным до времени следующего ключа. После этого значение прыгает до значения нового ключа.
  9. Установите выходной тангенс в тангенциальный тип Fast. Щелкните на правой стрелке рядом с выводным тангенциальным подменю и установите входной тангенс следующего ключа в тангенциальный тип Fast. Транспортируйте ползунок времени по диапазону 25-50.
    Как видно из рисунка 24.12, сфера, покинув ключ номер 2, двигается быстро, замедляется и затем вновь ускоряется по мере приближения к ключу номер 3. Приращения кадров на кривой траектории разрежены рядом с обеими ключами и сжаты в середине.
  10. Установите выходной тангенс в тангенциальный тип Slow. Щелкните на правой стрелке рядом с выходным тангенциальным подменю и установите входной тангенс следующего ключа в тангенциальный тип Slow. Транспортируйте ползунок времени через диапазон 25-50.
    Как видно из рисунка 24.13, сфера двигается медленно после покидания ключа номер 2, ускоряется и затем, подходя к ключу номер 3, замедляется вновь. Приращение кадров на кривой траектории сжато рядом с обеими ключами и разрежено в середине.
  11. Установите выходной тангенс в тангенциальный тип Custom. Входной тангенс автоматически изменится на тангенциальный тип Custom. В Track View выберите все точки ключей для данного ключа (кадр 25).
    На каждой точке ключа показаны входная и выходная ручки. Тангенсы для данного ключа можно настроить, перемещая тангенциальные ручки вниз и вверх или настраивая их значения в разделе Advanced диалога Key Info.
  12. Щелкните и транспортируйте ручку.
    По мере движения ручки, ручка с другой стороны ключа будет передвигаться в противоположном направлении. Форма кривой, проходящей через ключ, изменяется по мере перемещения ручки. Пример настройки тангенциальной ручки и результирующей траектории показан на рисунке 24.14.
  13. Щелкните на кнопке Advanced в диалоге Key Info и настройте входное или выходное значение. Вновь будут изменяться обе ручки.
  14. Разблокируйте ручки, щелкнув на пиктограмме замка между входным и выходным полями значения. Настройте входное или выходное значение. Будет передвигаться только одна ручка.
    Разблокировать ручки можно также путем нажатия Shift и щелкнув. После разблокирования ручек настройка одной ручки не заставляет передвигаться другую. Можно вновь заблокировать ручки, щелкнув на пиктограмме замка между входным и выходным полем значения. Перед транспортированием ручек для настройки их можно временно заблокировать путем щелчка на Lock Tangents в линейке инструментов Track View.

Контроллеры ТСВ

Контроллеры, использующие тип интерполяции ТСВ, выполняют интерполяцию между ключами на основе параметров ТСВ для каждого ключа. Параметры ТСВ можно настраивать, находясь в режимах Edit Key или Function Curve в Track View и щелкнув правой кнопкой мыши. Такое действие приводит к появлению диалога Key Info, в котором можно изменять значения. Для контроллеров, связанных с трансформацией, параметры ТСВ можно также настраивать в свитке Key Info панели команд Motion.

Следующее упражнение демонстрируют влияние, оказываемое параметрами ТСВ на движение объекта. Сцена состоит из сферы, двигающейся по круговому пути. Две сплайновых формы показывают, как выглядел бы путь, если бы путь следования был круговым или линейным. Обратите внимание на то, что везде в примере положение сферы в ключе всегда является положением, задаваемым ключом, и время, асоцииро-ванное с ключом, никогда не изменяется.

Влияние изменений значений параметров ТСВ на движение объекта

  1. Загрузите файл ch24_2.max из папки Chapter 24 сопровождающего CD-ROM.
  2. Выберите сферу и щелкните на Trajectories в панели команд Motion.
  3. В Track View расширьте дорожки для отображения дорожки положения для SphereOl. Щелкните на Function Curves. Щелкните на кривой для отображения ключей.
  4. Выполните выбор области для выбора всех ключей. Щелкните правой кнопкой мыши с целью отображения диалога Key Info. Перепозиционируйте диалог Key Info так, чтобы были видны кривые функций в Track View и траектория SphereOl в видовом окне Тор. Все ключи используют параметры ТСВ по умолчанию.
    Как видно из рисунка 24.15, приращение кадров на кривой траектории несколько более сжимается при подходе или уходе с ключа, нежели в середине между ключами. При проигрывании анимации сфера перемещается рядом с ключами медленнее, чем между ними.
  5. Постепенно увеличивайте значение Ease To.
    Как видно из рисунка 24.16, по мере увеличения значения приращение кадров на траектории становится теснее при подходе к ключу и разреживается при уходе из ключа. Если проиграть анимацию, сфера быстрее двигается при уходе из ключа и замедляется при подходе к нему.
  6. Установите значение Ease То в 0 и постепенно увеличивайте значение Ease From. Эффект будет противоположным наблюдаемому при увеличении значения Ease To.
  7. Установите и Ease To и Ease From в 50.
    Как видно из рисунка 24.17, приращение кадров на траектории становится теснее по мере подхода к ключу или ухода с него, чем приращение посредине между двумя ключами. В полученной анимации сфера замедляется рядом с ключами.
  8. Установите и Ease To и Ease From в 0. Постепенно увеличивайте значение Tension.
    Как видно из рисунка 24.18, кривизна траектории уменьшается, пока она не становится прямой линией между ключами. Приращение кадров теснее рядом с ключами и реже между ними.
  9. Постепенно уменьшайте значение Tension.
    Как видно на рисунке 24.19, кривизна траектории между ключами увеличивается. Приращение кадров равномерно распределяется по траектории.
  10. Установите значение Tension в 25. Постепенно увеличивайте значение Continuity.
    Из рисунка 24.20, видно, что угол между входной и выходной касательными и кривой функции возрастает, заставляя интерполированные значения перекрывать значения ключей по обе стороны ключей.
  11. Постепенно уменьшайте значение Continuity.
    Как видно из рисунка 24.21, угол между входными и выходными касательными к траектории и кривой функции уменьшается, заставляя кривизну траектории и кривые функций превращаться в прямые линии между ключами. Приращение кадров равномерно распределяется по траектории.
  12. Установите значение Continuity в 25. Постепенно увеличивайте значение Bias.
    Рисунок 24.22, показывает, что входная и выходная касательные траектории и кривые функции поворачиваются, заставляя значения интерполяции перекрывать значения ключей при уходе с ключей.
  13. Постепенно увеличивайте значение Bias.
    Как видно из рисунка 24.23, входная и выходная касательные к траектории и кривые функции поворачиваются, заставляя интерполированные значения перекрывать значения ключей при подходе к ключам.

Параметрические контроллеры

3DS МАХ распространяется с двумя типами параметрических контроллеров - Noise и Expression. Таблица 24,3 показывает типы параметрических контроллеров и типы данных, с которыми их можно использовать.

Таблица 24.3. Типы данных, доступные для каждого типа параметрического контроллера
Тип параметрического контроллера Допустимые типы данных
Noise Position, Rotation, Scale, Float, Point3
Expression Position, Scale, Float, Point3

Каждая комбинация параметрического типа и типа данных реализуется уникальным контроллером. Внутри группы контроллеров заданного параметрического типа способ, по которому задаются параметры контроллера, является одним и тем же.

Контроллеры Noise

Параметры для контроллера помех указываются в диалоге Properties контроллера. Для всех типов данных диалог Properties доступен в Track View через выбор параметра, которому назначен контроллер, щелчке на свободной области окна редактирования, чтобы убедиться, что никаких ключей не выделено, затем щелчке правой кнопкой мыши на названии параметра и щелчке правой кнопкой на линейке диапазона в дорожке параметра или щелчке на Properties в линейке инструментов Track View.

Для контроллеров, связанных с трансформацией на объектном уровне, параметры контроллера можно также настроить из панели команд Motion, выбрав параметр в свитке Assign Controller, щелкнув правой кнопкой на параметре и выполнив из всплывающего меню команду Properties.

Рисунок 24.24 показывает пример диалога Property для контроллеров Noise Float и Position. Легко заметить, что единственное различие заключается в количестве полей Strength. Во всем остальном контроллеры одинаковы.

Characteristic Graph в диалоге Noise Properties грубо отражает эффект, который окажут на вывод контроллера изменения в параметрах помех. Во многих случаях лучше видеть точный эффект этих изменений. Это можно сделать, щелкнув на Function Curves на линейке инструментов Track View для показа кривой функции параметра. Данная кривая изменяется при изменении параметров помех.

СОВЕТ

Поскольку контроллеры вращения не отображают кривых функции, вы не увидите эффекта изменений параметров помех посредством таких контроллеров. В этом случае следует использовать сложный контроллер Эйлера XY2 и применить контроллер помех к каждой оси. Значения в каждом контроллере будут в основном теми же, за исключением исходного инициирующего, которое для каждого контроллера должно быть различным.

Поля Strength указывают диапазон выводных значений контроллера помех. Диапазон меняется от Strength/2 до "Strength/2, если опция >0 отключена, или от 0 до Strength в противном случае. Здесь существует два исключения. Прежде всего для типа данных масштаба значение 100 автоматически прибавляется к каждому из выводных значений помех. Это означает, что вы применяете, помехи к 100% фактору масштаба. Во-вторых, если включены фрактальные помехи, выводной диапазон увеличивается, а центральная точка не изменяется. Таким образом могут быть значения меньшие нуля даже тогда, когда включена опция >0. Для Roughness 0.0 диапазон увеличивается приблизительно на 10%, для Roughness 1.0 на 100%.

СОВЕТ

Для управления точкой центра результата с контроллером Noise можно'использовать контроллер List и кпюч-базированный контроллер как ввод. Отключите опции >0 в Noise и затем создайте ключ для ключ-базированного контроллера, значение которого желательно для центральной точки.

Поля Ramp In и Ramp Out уменьшают количество помех в начале и в конце диапазона. Данное изменение нелинейно, однако эквивалентно кривой Безье. Для Ramp In кривая определяется вершиной Безье, находящейся в нулевой отметке времени и во времени, указанном в поле Ramp In, с вершиной, имеющей нулевую скорость интерполяции. Рисунок 24.25 показывает кривую для значения Ramp In, равного 10. Форма кривой не настраивается.

Поля Ramp In и Ramp Out ведут себя сходно с Multiplier Curve, примененной к контроллеру Noise. Интересное последствие подобного сходства состоит в том, что если опция >0 включена и указано значение Ramp In, выводное значение контроллера подходит к нулю при нулевом времени, а не к средней точке Strength/2.

СОВЕТ

Если требуется использовать Ramp In или Ramp Out и необходим уклон к значению средней точки, следует отключить опцию >0, поместить контроллер Noise под контроллер List и добавить к контроллеру List ключ-базированный контроллер. Создайте ключ для ключ-базированного контроллера м установите его значение в Strength/2.

Основные сведения о контроллерах выражений

Контроллеры выражений (Expression controllers) уникальны в том, что они оценивают определенные пользователем выражения и таким образом определяют свои выводные значения. Из-за своей относительной сложности контроллеры выражений детально описываются в этой главе позже. Для сравнения их с другими параметрическими контроллерами рассмотрите следующее основное упражнение, посвященное контроллерам выражений.

Настройка числа сегментов высоты цилиндра на основе угла изгиба.

  1. Создайте в видовом окне Тор цилиндр с Radius = 50, Height = 200, пятью Height Segments, одним Cap Segment и 24 Sides. Убедитесь, что опция Smooth включена.
  2. В диалоге Time Configuration установите Animation End Time в 50.
  3. Включите Animate и примените модификатор Bend. На кадре 50 установите Bend Angle (Угол изгиба) в 180 и Bend Axis - в Z (см. рис. 24.26).
  4. Отключите Animate, активизируйте вид Perspective, щелкните на Zoom Extents, увеличьте окно для лучшего обозрения и проиграйте анимацию (зрелище довольно отвратительное).
  5. Откройте вид Track и расширьте дорожки так, чтобы видеть контроллеры, служащие вводом в модификатор Bend и в Object (Cylinder).
  6. Щелкните на Height Segment для его выбора, щелкните на Replace Controller, выберите Float Expression и нажмите на ОК. Рисунок 24.27 отражает иерархию Track View и диалог Replace Controller в этой точке.
  7. Щелкните правой кнопкой мыши на Height Segments и выполните Pproperties из всплывающего меню. После этого происходит переход в диалог Expression Controller.
  8. Прежде всего требуется создать скалярную переменную, определяющую минимальное количество сегментов, которые должен иметь цилиндр. В поле Name в разделе Create Variables (переменные создания) напечатайте HSMin, убедитесь, что выбрана опция Scalar, и нажмите Create. Щелкните на Assign to Constant (присвоить константу), установите значение в 2 и нажмите на ОК.
  9. Далее требуется создать скалярную переменную, определяющую максимальное количество сегментов, которое может быть в цилиндре. В поле Name в разделе Create Variables напечатайте HSMax, убедитесь, что выбрана опция Scalar, и нажмите на Create. Щелкните на Assign to Constant, установите значение в 14 и нажмите на ОК.
  10. Теперь необходимо создать скалярную переменную, указывающую угол изгиба для цилиндра. В поле Name раздела Create Variables напечатайте BendAngle, убедитесь, что опция Scalar включена, и щелкните на Create. Щелкните на Assign to Controller и в появившемся диалоге Track View Pick выберите параметр Angle под Bend. Нажмите на ОК. Рисунок 24.28 показывает диалог Expression Controller и диалог Track View Pick в данный момент.
  11. Наконец, следует ввести уравнение для оценки. В окне Expression напечатайте HSMin+(BendAngle/ 180)*(HSMax-HSMin) и щелкните на Evaluate. Рисунок 24.29 отражает диалог Expression Controller в данной точке.
  12. Переместите или измените размеры диалогов Track View и Expression Controller так, чтобы можно было видеть вид Perspective, после чего проиграйте анимацию. Количество сегментов высоты цилиндра изменяется при изменении угла.

СОВЕТ

Можно опуститься по стеку модификаторе^ до Cylinder и наблюдать за изменением количества Height Segments при воспроизведении анимации. Кроме того, можно изменить значения, присвоенные HSMin и HSMax в выражении, и наблюдать за производимым эффектом.

Составные контроллеры

Как описывалось ранее, составные контроллеры принимают в качестве ввода вывод подчиненных контроллеров и объединяют полученные данные с любыми параметрами, ассоциированными с контроллером, манипулируют данными и выводят результаты.

3DS МАХ распространяется с двумя составными контроллерами уровня трансформации (контроллеры Position/Rotation/Scale и LookAt), контроллером, который объединяет вращение вокруг отдельных осей (контроллер вращения Euler XYZ), контроллером для перемещения объекта вдоль сплайна (контроллер Path position) и контроллером, который производит сложение результатов своих вводных контроллеров (контроллер List).

Способ, в соответствие с которым значения, выходящие из подчиненных контроллеров, используются в контроллере уровня трансформации, зависит от того, присвоен ли контроллеру объект, гизмо модификатора или центр модификатора. Для контроллера трансформации на уровне объекта возвращаемое положение является положением точки вращения объекта относительно начальной точки мировых координат. Возвращаемые значения поворота и масштаба относительны положению точки вращения объекта.

Для контроллера трансформации уровня гизмо модификатора или уровня центра, возвращаемое значение положения является относительным точке вращения объекта, т.е. центр модификатора, позиционированный в [О, О, 0] располагается в точке вращения объекта. Если точка вращения объекта после применения модификатора изменяется, гизмо модификатора и центр будут оставаться в своем начальном положении. Возвращаемые значения вращения и масштаба относительны положению центральной точки гизмо.

Контроллер Position/Rotation/Scale

Контроллер трансформации Position/Rotation/Scale (PRS) объединяет ввод из контроллеров положения, вращения и масштаба (см. рис. 24.30). Вывод из контроллера PRS является матрицей трансформации, которая используется 3DS МАХ внутренним образом. Контроллер PRS можно применять только на дорожках трансформации объектов и гизмо модификаторов.

Никаких настраиваемых пользователем свойств с контроллером PRS не связано.

Контроллер LookAt

Контроллер трансформации LookAt объединяет вывод из контроллеров положения, вращения (тип данных Float) и масштаба (см. рис. 24.31). Вывод контроллера LookAt является матрицей трансформации, используемой 3DS МАХ внутренним образом- Контроллер LookAt можно применять только в качестве контроллеров трансформации для объектов, но не для модификаторов.

Контроллер LookAt вращает объект так, чтобы негативная локальная ось Z всегда указывала на точку вращения другого объекта. Параметр вращения задает угол поворота объекта вокруг локальной оси Z.

Целевой объект, за которым необходимо следить, определяется в качестве параметра контроллера LookAt. Целевой объект контроллера LookAt можно увидеть и отобразить только в разделе Parameters панели команд Motion. Свиток LookAt Parameters в панели команд Motion показан на рисунке 24.32.

Использование контроллера LookAt с объектом

  1. Создайте в окне Тор два конуса. Увеличьте окно на указанную высоту конуса.
  2. Выберите Local из выпадающего списка Transform Coordinate System в линейке инструментов. Это покажет локальные оси выбранных объектов.
  3. В Motion Parameters присвойте контроллеру LookAt параметр трансформации для Сопе02. Сопе02 вращается так, чтобы его отрицательная ось Z указывала на исходную точку мира.
  4. Щелкните на Pick Target и выберите ConeOl. Сопе02 поворачивается так, чтобы его отрицательная ось Z указывала на ConeOl. Точка вращения для конуса расположена в центре его дна. Это будет именно та точка, куда указывает Сопе02.
  5. Перемещайте любой конус в окне Тор. При движении конуса база Сопе02 всегда указывает на ConeOl. Не забудьте изменить Transform Coordinate System или ограничения осей, прежде чем пытаться переместить конус в другое видовое окно.
  6. Вращайте Сопе02. Конус всегда вращается относительно своей локальной оси 2.

Контроллер LookAt используется камерами Target, а также источниками света Target. При создании одного из этих объектов ему присваивается контроллер LookAt, затем создается фиктивный объект, играющий роль цели, и фиктивный объект определяется как цель LookAt.

Контроллер Path

Контроллер Path позиционирует объект так, чтобы точка вращения объекта располагалась на сплайне. Кроме того, создается параметр, подчиняющийся контроллеру Path. Параметр называется Percent (см. рис. 24.33). Параметр Percent задает положение на сплайне для использования в конкретный момент времени. Значение Percent автоматически устанавливается в 0 в начале активного отрезка времени и в 100 в конце активного отрезка времени,

Сплайн для использования в качестве пути указывается как параметр контроллера Path. Сплайн пути контроллера Path может устанавливаться и отображаться только в разделе Parameters панели команд Motion. Свиток Path Parameters на панели команд Motion показан на рисунке 24.34. Если выбранная форма содержит более одного сплайна, то в качестве сплайна пути используется первый из них.

Использование контроллера Path с объектом

  1. Создайте конус в окне Left. Расширьте окно на указанную высоту конуса. Это создаст конус, вершина которого смотрит в направлении положительной оси Х мира. Включите опцию Slice On и установите Slice То в 180.
  2. В окне Тор создайте эллипс. На рисунке 24.35 показаны относительные размеры конуса и эллипса.
  3. Выберите Local из выпадающего списка Transform Coordinate System в линейке инструментов. В результате будут показаны локальные оси выбранных объектов.
  4. Выберите конус и в Motioni-^Parameters присвойте контроллер Path позиционному параметру конуса.
  5. Убедитесь, что в Path Options опция Follow отключена, нажмите Pick Path и выберите эллипс. Конус изменит свою позицию так, чтобы его точка вращения (расположенная в середине дна конуса) разместилась на первой вершине эллипса. Обратите внимание на то, что ориентация конуса не изменяется (см. рис. 24.36).
  6. Переместите эллипс. Во время движения эллипса также будет передвигаться и конус.
  7. Проиграйте анимацию. За активный сегмент времени конус проходит длину эллипса.
  8. Выберите Editr^Hold. С этого момента начинается следующее упражнение.

Хотя контроллер Path классифицируется как позиционный, он также может изменять вращение объекта, к которому применен. Опции Follow и Bank в Path Options заставляют объект вращаться на основе кривизны сплайна пути. Вращение от контроллера Path дополняет любое вращение, определенное пользователем.

Когда опция Follow отключена, ориентация объекта не изменяется. При включенной опции Follow объект вращается так, чтобы "передняя часть" объекта всегда указывала вдоль касательной сплайна. "Передняя часть" объекта определяется как направление, указывающее вдоль положительной оси Х мира в начале активного диапазона. Таким образом правая сторона объекта в окне Тор является "передней частью" объекта.

Опция Bank указывает, куда смотрит верх объекта ("верх" определяется как направление вдоль положительной оси Z мира). Если Bank выключена или Bank Amount равно нулю, верх объекта пытается указывать в направлении положительной оси Z мира. (Две степени свободы используются опцией Follow, следовательно для опции Bank осталась только одна степень свободы. Таким образом верх указывает в направлении положительной оси Z мира только в той степени, в которой это возможно.)

При включенной опции Bank объект будет вращаться на основе локальной кривизны сплайна. Для низких и умеренных значений верх объекта имеет тенденцию указывать внутрь сплайна. Для высоких значений верх объекта вращается вокруг сплайна.

Smoothness (гладкость) определяет скорость, с которой разрешено меняться вращению при указании опции Bank. Высокие значения смягчают результирующее вращение. Эффекты параметров Bank Amount и Smoothness взаимодействуют друг с другом, поэтому для достижения желаемого движения обычно требуется небольшая интерактивная настройка значений. Как правило, для достижения гладкого движения следует использовать предельно низкие значения указанных параметров.

Влияние значений Bank Amount и Smoothness на контроллеры Path

  1. Выполните Editi-Fetch для получения сцены предыдущего упражнения.
  2. Выберите конус.
  3. Щелкните правой кнопкой в видовом окне Perspective, щелкните на Play Animation и продолжите проигрывание анимации до завершения упражнения.
  4. В Motion^ Parameters включите Follow. Конус повернется так, что его верх будет указывать на сплайн (см. рис. 24.37).
  5. Включите Bank. Конус, двигаясь вдоль эллипса, будет наклоняться. Величина наклона варьируется в зависимости от кривизны сплайна.
  6. Установите Smoothness в 2. Конус будет меньше наклоняться в концах эллипса, но больше по его сторонам.
  7. Установите Smoothness в 0.5 и Bank Amount в 0. Постепенно увеличивайте значение Bank Amount. Рисунок 24.38 показывает конус со значением наклона, равным 1.5.
    По мере возрастания значения градус наклона увеличивается до точки, когда конус начинает вращаться, следуя по пути.

Во время проигрывания анимации можно было заметить, что конус двигается быстрее у концов эллипса и медленнее по сторонам. При использовании контроллера Path важно принимать во внимание взаимосвязь между положением вершин сплайна, служащего в качестве пути, и временем. 3DS МАХ позиционирует объект на сплайне во времени на основе количества вершин сплайна - а не длины сплайна или расстояния между вершинами. Каждая вершина преобразуется в равномерно распределенный во времени ключ положения. Например, если в качестве пути объекта используется линия с 11 вершинами, создается 11 ключей. Если активный диапазон времени находится между 0 и 100 кадрами, объект размещается на вершине 0 в кадре О, на вершине 1 в кадре 10 и на вершине 2 в кадре 20. В зависимости от расстояния между вершинами скорость объекта во времени может существенно изменяться.

В некоторых ситуациях требуется постоянная скорость вдоль всего пути. 3DS МАХ обеспечивает возможность модификации пути Безье так, чтобы по траектории объекта поддерживалась постоянная скорость. Модификация пути Безье для поддержки постоянной скорости выполняется в диалоге Advanced Key Info.

В следующем упражнении траектория эмиттера системы частиц настраивается на деформацию-дофт объекта. На сцене лофт-объект (Fuse) использует анимацию деформации масштаба для сокращения длины фитиля во времени. Деформация шкалы была определена так, чтобы длина фитиля сокращалась во времени с постоянной скоростью. Эмиттер системы частиц (Sparks) назначается контроллеру пути там, где путь является тем же сплайном, что и путь лофта (FusePath). Поскольку вершины для FusePath распределены неравномерно, Sparks предшествует деформации шкалы.

Создание горяшего фитиля с использованием анимированного масштаба лофт-объекта^ системы частиц и контроллера Path

  1. Загрузите файл ch24_3.max из папки Chapter 24 сопровождающего CD-ROM и проиграйте анимацию.
  2. Выберите объект Dummy.
  3. Выберите Motioned TrajectoriesOConvert From, установите Samples в 11 и выберите Fuse Path как сплайн.
  4. Выберите в Track View контроллер позиции для Dummy, затем на Function Curves и щелкните на одной из кривых функций, показанных в Track View для позиции Dummy.
    Рисунок 24.39 показывает видовое окно Тор и кривые функций позиции Dummy в Track View. Траектория для Dummy отображается в окне Тор голубым цветом с 11 ключами позиций на расстоянии 10 кадров друг от друга. Точки на траектории показывают приращение кадров. Количество кадров приращения между ключами позиций постоянно, однако приращение кадров не распределено равномерно между ключами. Хотя это не тот путь, которому должны следовать Sparks (искры), его можно использовать для демонстрации эффекта модификации траектории для случая постоянной скорости.
  5. На панели команд Motion щелкните на Sub-Object и в видовом окне Тор выберите все ключи позиций на траектории.
  6. Щелкните правой кнопкой мыши на любом ключе позиции, выберите Key Info и щелкните на Advanced (см. рис. 24.40).
  7. Включите Constant Velocity (постоянная скорость).
    Приращение кадров между смежными ключами позиции распределено равномерно. Ключи позиций по прежнему размещены через каждые 10 кадров и находятся на прежних местах. Можно заметить, что в Track View изменилась только кривизна между ключами.
  8. Отключите Constant Velocity и щелкните на Normalize Time.
    Положения ключей остались прежними, но время, связанное с каждой позицией, изменилось на основе расстояния между ключами. В больших сегментах приращений кадров больше, чем в коротких. Между ключами позиций скорость непостоянна.
  9. Включите Constant Velocity.
    Приращение кадров равномерно распределяется на всей траектории. Теперь, посмотрев на эффекты, которые оказывают на траекторию Constant Velocity и Normalize Time, можно завершить анимацию.
  10. В Motionc^Trajectories увеличьте Samples до 101, выберите Convert From и FusePath в качестве сплайна.
  11. Выберите на траектории все ключи позиций, а в Key Info отметьте Constant Velocity. Щелкните на Normalize Time. Рисунок 24.41 показывает траекторию Dummy и положение кривых функций с Samples, равным 101.
  12. Закройте Key Info и щелкните на Convert To. Convert To генерирует из траектории форму под названием ShapeOl.
  13. Выберите Sparks и в Motion"-^ Parameters щелкните на Pick Path и выберите в качестве пути ShapeOl.
  14. Проиграйте анимацию.
    Теперь Sparks на протяжении всей анимации находится в том же самом положении, что и деформация шкалы.

Контроллер Euler XYZ

По умолчанию для дорожек вращения используется контроллер ТСВ Rotation. Хотя данный контроллер и обеспечивает гладкое вращение, однако кривые функций, связанных с данным контроллером, в Track View недоступны из-за того, что контроллер ТСВ для управления вращением применяет кватернионовскую математику. Кватернионовская математика имеет четыре значения - X, Y и Z единичного вектора (unit vector) и угол вращения вокруг единичного вектора (см- раздел "Типы данных контроллеров" ранее в этой главе, где приведены более подробные сведения о кватернионовской математике). Другие контроллеры вращения, также использующие кватернионовскую математику - это Linear и Smooth.

Помимо невозможности отображения кривых функций вращения для данных контроллеров, иногда требуется большее управление вращением, нежели обеспечиваемое данными контроллерами. 3DS МАХ обеспечивает дополнительный контроллер вращения Euler XYZ, для которого можно отобразить кривые функций и отдельно управлять вращением относительно каждой локальной оси объекта.

Рассмотрим случай, когда вращается объект вокруг осей Х и Y и необходимо настроить интерполяцию на один из ключей для вращения вокруг Х-оси. Значения контроллера ТСВ для данного ключа можно настроить либо в панели Motion, либо в Track View, но также будет настраиваться и интерполяция вращения вокруг оси Y в данном ключе. Используя контроллер ТСВ нельзя настроить значения интерполяции для одной оси, не затрагивая значения для всех остальных осей. Если используется контроллер вращения Euler XYZ, интерполяция для ключей, связанных с вращением вокруг оси X, может выполняться без влияния на вращение вокруг оси Y.

Дополнительные преимущества применения контроллера вращения Euler XYZ для объекта заключаются в том, что для каждой из осей вращения можно использовать свой контроллер выражения, а другие контроллеры выражения могут ссылаться на вращение объекта.

Использование контроллера Euler ЛУ7лля настройки параметров интерполяции для отдельных осей врашения

  1. Загрузите файл ch24_4.max из папки Chapter 24 сопровождающего CD-ROM и проиграйте анимацию.
    Коробка анимируется таким образом, чтобы поворачиваться на 180° вокруг своей локальной оси Z в кадрах с 0 по 100. Кроме того, коробка поворачивается на 45° вокруг оси Y в кадрах с 25 по 75. Как можно заметить в видовом окне, вращение вокруг оси Y имеет место и до 25 кадра, и после 75. Можно было бы попытаться настроить параметры ТСВ для ключей в кадрах 25 и 75, но в данных кадрах это повлияло бы на вращение коробки вокруг оси Z.
  2. Откройте Track View и расширьте дорожки так, чтобы отобразить параметр вращения для BoxOl.
  3. Выберите параметр вращения и присвойте ему контроллер Euler XYZ.
  4. Расширьте дорожки для параметра вращения.
  5. Выберите параметр Y Rotation и щелкните на Function Curves. Щелкните на кривой для отображения ключей.
    Кривые функций показаны на рисунке 24.42. Кривые функций показывают, что значение вращения Y варьируется между первым и вторым и между третьим и четвертым ключами.
  6. Щелкните правой кнопкой мыши на первом ключе и отобразите диалог Key Info.
  7. Установите для первого ключа выходную касательную в тангенциальный тип Step.
  8. Установите для четвертого ключа входную касательную в тангенциальный тип Step.
  9. Проиграйте анимацию.
    Теперь нет вращения вокруг оси Y до кадра 25 и после кадра 75. Вращение вокруг оси Z по-прежнему является гладким.

Контроллеры List

Контроллеры List применяются для объединения результатов нескольких контроллеров. Например, можно добавить помехи в предварительно определенное движение, назначив контроллер List желаемому параметру и добавив контроллер Noise в качестве ввода для контроллера List. Кроме того, контроллер List предоставляет возможность интерактивно добавлять дополнительное движение в параметр, управляемый параметрическим контроллером, подобным Path.

В следующем упражнении для части анимации используется контроллер Path, а затем для завершения анимации происходит переключение на контроллер Безье. Сцена состоит из мяча, движение которого управляется контроллером пути. Путь является кругом. Необходимо, чтобы в анимации мяч был неподвижен в начале, а впоследствии, передвигаясь по кругу, ускорился в три раза и улетел туда, где размещен фиктивный объект.

Объединение контроллеров Path, Bezier и List для ограничения контроллера Path временным диапазоном

  1. Загрузите файл ch24_5.max из папки Chapter 24 сопровождающего CD-ROM.
  2. Откройте Track View, щелкните на Filters и включите Show Controller Types.
  3. Расширьте дорожки для SphereOl так, чтобы был виден контроллер Percent под контроллером Position: Path.
  4. Щелкните правой кнопкой мыши на позиции ключа в кадре 100 и вызовите диалог Key Info.
  5. Измените значение кадра ключа на 300 и покиньте диалог.
  6. Проиграйте анимацию. Мяч трижды проходит по кругу с постоянной скоростью.
  7. В Track View щелкните на Function Curves и затем на Add Keys.
  8. Добавьте три ключа к кривой функции Path Percent и щелкните на Move Keys.
  9. Настройте три ключа на получение кривой, подобной показанной на рисунке 24.43.
    Обратите внимание на то, что имеется возможность проигрывать анимацию во время настройки кривых и видеть соответствующее движение в реальном времени. Теперь мяч стартует с последней позиции и ускоряется в три раза, проходя круг за 100 кадров.
    Теперь необходимо выполнить данное движение за 80 кадров и затем улететь в позицию фиктивного объекта.
  10. Щелкните на Edit Keys и выберите PositioniPath controller.
  11. Щелкните и транспортируйте маркер конца диапазона контроллера позиции в кадр 80.
  12. Щелкните на Assign Controller и выберите Position List.
  13. Расширьте дорожки для Position List, выделите Available и присвойте дорожке контроллер Bezier Position.
  14. Щелкните на Add Keys, щелкните на кадре 80 в дорожке Bezier Position для создания ключа и щелкните на Move Keys.
  15. Щелкните на свободной области Track View для отмены только что созданного выбора ключа.
  16. Щелкните на контроллере Position List для его выбора, щелкните на нем правой кнопкой мыши и выберите из всплывающего диалога Properties. Появившийся диалог List Controller покажет контроллер Path как активный. Вы же хотите добиться активности контроллера Bezier Position, чтобы можно было интерактивно настраивать позицию мяча.
  17. Выберите Bezier Position, щелкните на Set Active и выйдите из диалога List Controller.
  18. Включите Animate и перейдите к кадру 100.
  19. В окне Тор переместите SphereOl в положение фиктивного объекта.
  20. Отключите Animate и проиграйте анимацию.
    Теперь мяч ускоряется по кругу в три раза и улетает в новую позицию. Обратите внимание на заметное небольшое изменение скорости мяча, когда он проходит кадр 80.
  21. Выберите все ключи для контроллера Percent и ключ в кадре 80 для контроллеров Bezier Position. Щелкните на Scale Keys и настройте выбранные ключи за счет транспортировки ключа в кадре 80 с целью Bezier Position для получения гладкого перехода скорости.

Контроллер List можно использовать для объединения контроллеров Path и Bezier и для того, чтобы заставить камеру следовать за объектом вдоль пути. Памятуйте об одном ограничении: если контроллер Path подчиняется контроллеру List, он должен быть первым контроллером в списке. Если это не так, то любые значения из контроллеров, предшествующих Path, будут игнорироваться.

В следующем упражнении сцена состоит из тора, катящегося между препятствиями. В данной сцене необходимо, чтобы камера всегда смотрела на тор и следовала позади него.

Создание преследующей (с отставанием) камеры за объектом, использующим Path Controller

  1. Загрузите файл ch24_6.max из папки Chapter 24 сопровожцающего CD-ROM.
  2. Выберите камеру и откройте панель команд Motion. Откройте свиток Assign Controller и щелкните на Transform: Position/Rotation/Scale. Щелкните на Assign Controller, выберите из диалога Replace Transform Controller контроллер LookAt и щелкните на ОК.
  3. В разделе LookAt Target свитка LookAt Parameters щелкните па Pick Target и в качестве цели выберите DummyO 1.
  4. В свитке Assign Controller щелкните на Position: Bezier Float. Щелкните на Assign Controller, выберите в диалоге Replace Position Controller контроллер Path и нажмите на ОК.
  5. В разделе Current Path Object свитка Path Parameters щелкните на Pick Path и в качестве пути выберите TorusPath. Включите опцию Follow Path.
  6. В свитке Assign Controller щелкните на Position:Path. Щелкните на Assign Controller, выберите в диалоге Replace Position Controller контроллер Position List и нажмите на ОК.
  7. Расширьте список позиций, выберите Available и назначьте ему контроллер Bezier Position.
  8. В свитке Position List выберите Bezier Position и щелкните на Set Active.
  9. В окне Front переместите камеру вверх на 200 единиц.
  10. Откройте Track View и расширьте дорожки трансформации для камеры.
  11. Выберите дорожку Percent под контроллером Path.
  12. Щелкните на Position Curves и щелкните на кривой.
  13. Щелкните и удержите кнопку Move Keys и выберите в подменю нижнюю пиктограмму. Это ограничит перемещение точек ключей только вертикальным направлением.
  14. Выберите обе точки ключей и переместите ключи вниз на 5 единиц.
  15. Закройте Track View и проиграйте анимацию.
    Для достижения интересных вариаций в движении камеры выберите контроллер Path в свитке Position List панели команд Motion и щелкните на Set Active. В свитке Path Parameters включите опцию Bank Path и установите Bank Amount в -0.5. Теперь на повороте камера "свернет" с пути.

Контроллеры Expression

Контроллеры Bxpression оценивают определенные пользователем математические выражения и определяют выводные значения контроллеров. Контроллеры Expression можно применять практически ко всем параметрам 3DS МАХ, которые поддаются анимации. Контроллер Expression может получать вывод из других контроллеров и использовать в выражении полученные значения. Момент времени, для которого оценивается выражение, также доступен в нескольких формах. Для использования в выражениях определено множество встроенных функций. Параметры для контроллера Expression задаются в диалоге Properties. Для всех типов данных доступ к диалогу Properties осуществляется в Track View путем выбора параметра, которому назначается контроллер Expression, последующего щелчка в свободной области окна редактирования с целью убедиться, что никаких ключей не выбрано, и затем выполнения одного из следующих действий: щелчка правой кнопкой мыши на имени параметра, щелчка правой кнопкой мыши на линейке диапазона дорожки параметра или щелчка на Properties в линейке инструментов Track View.

Для контроллеров, связанных с трансформацией на объектном уровне, параметры контроллера можно настроить также из панели команд Motion, выбрав параметр в свитке Assign Controller, щелкнув правой кнопкой на параметре и выполнив Properties из всплывающего меню.

Типы данных контроллера Expression

На рисунке 24.45 показан пример диалога контроллера Expression. При первом назначении контроллера Expression параметру, который уже имеет контроллер, окно уравнения показывает значение параметра в кадре 0. Если параметр не имеет контроллера, значение будет установлено в 0. Значение отображается в одном из двух форматов. Первый формат применяется в случае, когда назначаемый контроллер Expression имеет тип данных Position, Scale или Point3. Эти типы данных требуют, чтобы контроллер Expression вернул трехкомпонентный вектор. Формат выражения следующий: [eqnl, eqn2, eqn3]. Второй формат применяется в случае, когда параметр, которому назначается контроллер Expression, имеет тип данных Float. Последний требует, чтобы контроллер Expression возвращал скалярное значение с плавающей точкой. Формат выражения будет выглядеть как eqni. Если формат выражения некорректен или во время оценки выражения возникает ошибка, на экране отображается сообщение об ошибке.

Переменные контроллера Expression

В уравнении можно использовать два типа переменных. Первый тип. Scalar, применяется для ссылок на единичное значение данного с плавающей точкой. Второй тип, Vector, используется для ссылки на трехкомпонентные векторы. Для создания переменной сначала вводится имя переменной в поле имени в окне Create Variables, уточняется, является ли переменная скалярной или векторной, и нажимается на Create. После этого переменная создается и ее имя появляется в колонке Scalars или Vectors.

При создании переменной ей присваивается значение константы 0 для скаляра и [О, О, 0] для вектора. Переменным могут назначаться константные значения во время анимации или присваиваться вводные значения другого контроллера. Для назначения переменной константного значения следуе

Разместил: Vulko
Опубликовано: 24.07.2004
Статья "3D Studio Max - Программирование в 3D Studio Max - Использование контроллеров и выражений" прочтена 1568 раз.

Оставьте ваше мнение о статье

Имя:
E-mail:
Сайт:
Комментарий:

Последние новости
Последние темы на форуме
Кассовые аппараты и чековая лента. - https://detalk.ru/index.php?showtopic=2606
Что лучше? СМС Богу или деду морозу? :) - https://detalk.ru/index.php?showtopic=2634
нужен совет - https://detalk.ru/index.php?showtopic=2648
песики - https://detalk.ru/index.php?showtopic=2650
Полиграфия для DVD (лицензия) - https://detalk.ru/index.php?showtopic=2651

TBN.ru - сети, живущие по правилам - https://www.tbn.ru/
Adobe Photoshop Corel Draw 3d Flash Графика
Реклама

TBN.ru - https://www.tbn.ru/

TBN.ru - https://www.tbn.ru/
Яндекс.Метрика