3D Engineering

...Лучшее из общего.

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Каждый раз когда вы анимируете объекты сцены программа 3ds Max ...

Каждый раз, когда вы анимируете объекты сцены, программа 3ds Max сохраняет параметры анимации в контроллерах. Контроллерами называются элементы, хранящие значения анимации и управляющие интерполяцией от одного значения анимации к другому. Существует две категории контроллеров.

Базирующиеся на ключах — контроллеры, основанные на ключах анимации. Такие контроллеры воспринимают в качестве ввода значений данные из ключевых кадров, а затем рассчитывают интерполированные значения между ключами анимации. Для этих контроллеров является характерным то, что кривая функции всегда проходит через ключи анимации. Контроллеры могут оказывать влияние на интерполяцию между ключами, но не на сами ключи. Контроллеры, описывающие трансформации на объектном уровне, можно также редактировать в свитке Key Info (Справка о ключах) вкладки Motion (Движение) командной панели.

Параметрические – рассчитывают анимацию на основе уравнения, реализуемого контроллером, и значений, которые указаны пользователем. К параметрическим можно отнести контроллеры, ограничивающие движение объектов в пространстве (Constraints (Ограничения)). C помощью контроллеров-ограничителей можно заставить объект следовать по пути или оставаться повернутым к другому объекту.

Программа 3ds Max поддерживает большое количество контроллеров различных типов. Контроллеры одного типа могут иметь несколько разновидностей. Контроллеры можно условно классифицировать по типу возвращаемого ими значения, при этом тип данных контроллера должен соответствовать типу данных параметра объекта. Например, контроллер типа данных Position (Положение) нельзя использовать для параметра поворота или масштаба объекта. Рассмотрим семь типов данных контроллера.

  • Transform Controller (Контроллер преобразования) — управляет трансформациями перемещения, поворота и масштаба.
  • Position Controller (Контроллер положения) — влияет на положение объекта, позицию габаритного контейнера модификатора или его центра.
  • Rotation Controller (Контроллер поворота) — управляет преобразованием поворота объекта или габаритного контейнера модификатора.
  • Scale Controller (Контроллер масштаба) — влияет на преобразование масштаба объекта или габаритного контейнера модификатора.
  • Point3 Controller (Трехкомпонентный контроллер) — управляет любым параметром с тремя значениями компонента, такими как цвет материала или координаты точки.
  • Float Controller (Контроллер с плавающей точкой) — влияет на любой параметр с единственным значением компонента, например такой как угол поворота, ширина объекта, уровень собственного свечения материала и т. п.
  • Color Controller (Контроллер цвета) — управляет цветом материала.

Контроллеры анимации можно назначать, используя три различных источника: команды главного меню Animation (Анимация), окно Track View (Просмотр треков) или вкладку Motion (Движение) командной панели.

Рассмотрим некоторые контроллеры, которыми оперирует 3ds Max.

  • Position/Rotation/Scale (PRS) (Положение/поворот/масштаб) — используется по умолчанию для большинства объектов сцены и габаритных контейнеров модификаторов. Его рекомендуется применять для всех универсальных трансформаций.
  • Audio (Звук) — контроллер управления по звуковой дорожке. Он позволяет анимировать почти любой параметр сцены, конвертируя амплитуду записанного звука в значения анимируемого параметра объекта. Данный контроллер совместим с большинством параметров окна Track View (Просмотр треков), в том числе и с Transform Controller (Контроллер преобразования), Float Controller (Контроллер с плавающей точкой) и Point3 Controller (Трехкомпонентный контроллер).
  • Bezier (Управление по Безье) — один из самых универсальных контроллеров, доступных в 3ds Max. Он выполняет интерполяцию между ключами анимации, регулируя изменения кривой, проходящей через ключевые точки. Контроллер Bezier (Управление по Безье) используется по умолчанию для большинства параметров. Его рекомендуется применять, когда необходимо иметь полный контроль над интерполяцией функциональной кривой в промежутках между ключами анимации.
  • Color RGB (Цвет RGB) — разделяет составляющую цвета RGB на три независимых трека. Этот контроллер можно применять для анимации цветовых составляющих материалов либо других компонентов, использующих цвет. После разделения по умолчанию каждому треку назначается контроллер Bezier Float (Управление по Безье с плавающей точкой).
  • Euler XYZ Rotation (XYZ-поворот по Эйлеру) — составной контроллер, объединяющий отдельные контроллеры, которые имеют значение с плавающей точкой и описывают поворот относительно одной из осей (X, Y или Z). Использование данного контроллера не дает такого сглаженного результата, как применение TCB Rotation (TCB-поворот), который использует для управления вращением кватернионовскую математику. Однако, в отличие от последнего, Euler XYZ Rotation (XYZ-поворот по Эйлеру) позволяет редактировать функциональные кривые.
  • Expression (Выражение) — контроллер по алгоритмическому выражению. Он строит функциональную кривую на основе математических выражений, заданных пользователем в окне Expression Controller (Контроллер управления по алгоритмическому выражению) (рис. 4.16). C помощью этого контроллера можно получать данные из других контроллеров, оперировать встроенными функциями и создавать собственные переменные. Контроллер Expression (Выражение) можно применять практически ко всем параметрам 3ds Max, для которых есть возможность анимации.

Рисунок 4.16 - Окно диалога Expression Controller (Контроллер управления по алгоритмическому выражению)

  • Linear (Линейное управление) — контроллер линейного управления. Строит функциональную кривую между двумя соседними ключами по прямой линии. Этот контроллер не имеет настроек и использует для интерполяции значения ключевых кадров. Его следует применять, когда необходимо передать движение механизмов или изменение цвета.
  • Noise (Шум) — генерирует хаотичную анимацию в пределах диапазона кадров. Является параметрическим и не использует ключи анимации. Как только вы назначаете анимированному параметру этот контроллер, он сразу применяется ко всему диапазону текущего временного сегмента. Данный контроллер можно использовать для создания неравномерного движения, пульсирующего фонтана, вибрации объектов и т. п., а также применять к другим контроллерам для изменения функциональной кривой с учетом среднего значения (рис. 4.17).

Рисунок 4.17 - Окно диалога контроллера Noise (Зашумление)

  • List (Управление по списку) — объединяет несколько самостоятельных контроллеров для создания общей анимации. Контроллеры, добавленные в список, выполняются последовательно и по умолчанию имеют вес (значение параметра Weight (Вес)), равный 100. Изменение этого значения влияет на удельный вес данного контроллера в общей анимации. Применяется для создания сложных анимаций.
  • Script (Управление по коду) — подобно контроллеру Expression (Выражение), основанному на алгоритмическом выражении, открывает окно для ввода кода на языке MAXScript с последующим расчетом значения и передачи его контроллеру. С помощью контроллера Script (Управление по коду) можно анимировать практически все параметры объекта, даже те, которые не анимируются контроллером Expression (Выражение) (например, вершины полигонального объекта) (рис. 4.18).
  • Path Constraint (Ограничение по пути) — ограничивает движение объекта по пути, которым является указанный сплайн или усредненное расстояние между несколькими сплайнами. В качестве пути можно использовать сплайн любого типа, при этом сам сплайн может иметь собственную анимацию. Данный контроллер применяется для анимации объектов по сложным траекториям (например, движение автомобиля по дороге).

Рисунок 4.18 - Окно диалога Script Controller (Контроллер управления по коду)

  • Position Constraint (Ограничение по положению) — изменяет положение исходного объекта (то есть объекта, к которому применен контроллер) относительно целевого. При этом значение параметра Weight (Вес), равное по умолчанию 100, означает, что исходный объект займет положение целевого, а значение 0 — то, что исходный объект останется на месте. Все значения, отличные от 0, заставят объект переместиться в положение, которое равно процентному отношению расстояния между исходным и целевым объектами.
  • Link Constrain (Ограничение по связи) — применяется для анимации передачи связи от одного целевого объекта другому. Например, при использовании контроллера Link Constrain (Ограничение по связи) анимированный персонаж может взять рукой чемодан и переместить его в другую руку.
  • LookAt Constraint (Ограничение по линии взгляда) — используется для ориентации одного объекта относительно другого с таким расчетом, чтобы исходный объект постоянно смотрел на целевой. Действие данного контроллера подобно камере Target Camera (Нацеленная камера), когда она поворачивается вслед за перемещаемой целью.

Итак, мы рассмотрели основные контроллеры анимации, применяемые в 3ds Max. Более подробную информацию о них можно найти в справочной литературе или файле справки приложения.

Продолжим анимировать мяч. Используя контроллер Expression (Выражение), создадим для него поступательное движение и постепенное затухание отскоков.

Продолжите выполнение собственной анимации или загрузите с прилагаемого DVD файл ball01.max, находящийся в папке Examples\Глава 04.

Для увеличения общего времени анимации щелкните на кнопке Time Configuration (Настройка временных интервалов) и в области Animation (Анимация) открывшегося окна задайте параметру End Time (Время окончания) значение, равное 180 (рис. 4.19).

Рисунок 4.19 - Окно диалога Time Configuration (Настройка временных интервалов)

В одном из окон проекций выделите мяч — объект Sphere01.

Перейдите на вкладку Motion (Движение) командной панели и в свитке Assign Controller (Назначить контроллер) вы-берите строку с именем Position: Position XYZ (Положение: положение по XYZ) (рис. 4.20).

Рисунок 4.20 - Свиток Assign Controller (Назначить контроллер) объекта Sphere01

В свитке Assign Controller (Назначить контроллер) щелкните на одноименной кнопке, в результате чего откроется окно диалога Assign Position Controler (Назначить контроллер положения). В данном окне выберите из списка контроллер Position List (Контроллер положения по списку). После применения этого контроллера в списке контроллеров появится строка Available (Доступный) (рис. 4.21), позволяющий добавлять к списку новые контроллеры.

Рисунок 4.21 - Свиток Assign Controller (Назначить контроллер) после назначения контроллера Position List (Контроллер положения по списку)

Выделите строку Available (Доступный) и щелкните на кнопке Assign Controller (Назначить контроллер)

В открывшемся окне Assign Position Controller (Назначить контроллер положения) выберите строку Position Expression (Контроллер положения по выражению). В результате откроется окно Expression Controller (Контроллер управления по алгоритмическому выражению) (см. рис. 4.16).

Создайте переменную, которая будет принимать значение положения объекта Sphere01 по оси Z следующим образом:

  • в поле Name (Имя) области Create Variables (Создать переменную) наберите имя создаваемой переменной (например, Zpoz);
  • установите переключатель в положение Scalar (Скалярный) и щелкните на кнопке Create (Создать);
  • в нижней части окна нажмите кнопку Assign to Controller (Назначить контроллеру);
  • в появившемся окне Track View Pick (Выбрать трек) выберите из иерархического списка строку Z Position: Bezier Float (Z-положение: управление по Безье с плавающей точкой), относящуюся к объекту Sphere01 (рис. 4.22).

Рисунок 4.22 - Выбор строки Z Position: Bezier Float (Z-положение: управление по Безье с плавающей точкой) в окне Track View Pick (Выбрать трек)

В поле Expression (Выражение) окна Expression Controller (Контроллер управления по алгоритмическому выражению) вместо [0, 0, 0] наберите следующее выражение: [F, 0, -Zpoz/180*F], где F — текущий кадр (функция по умолчанию), 180 — общее количество кадров, а Zpoz — созданная нами переменная.

Щелкните на кнопке Evaluate (Оценить) для расчета созданного выражения.

Запустите воспроизведение созданной анимации в активном окне проекции, нажав кнопку Play Animation (Воспроизвести анимацию). Если все было сделано правильно, то вы увидите как мячик смещается в сторону с уменьшением высоты отскоков.

Вернемся к созданному выражению и разберем его более подробно. По умолчанию выражение в поле Expression (Выражение) представляло собой [0, 0, 0], что означало изменение параметров X, Y и Z на 0, то есть положение объекта не менялось. Вместо значения 0 по оси X мы задали F, указав, что в каждом последующем кадре анимации это значение будет увеличиваться на 1 и соответствовать номеру текущего кадра. Значение по оси Y не должно меняться, поэтому мы оставили его равным 0. Для оси Z выражение имеет более сложную структуру. В каждом кадре анимации из положения объекта по оси Z вычитается его текущее значение (Zpoz), деленное на общее количество кадров. Эта разность умножается на значение текущего кадра для создания динамики уменьшения параметра Z.

 

Архив статей

 июл   Август 2019   сен

ВПВСЧПС
   1  2  3
  4  5  6  7  8  910
11121314151617
18192021222324
25262728293031
Julianna Willis Technology

Случайная новость

Кузнецов Дмитрий

Моделирование гусеницы танка с последующей анимацией в 3dsmax 2.5
Создание гусеницы не простое дело. За два года ползания в интернете я не встречал туториалов по этому поводу. Видел, помню в FAQ предлагали, просто наложить avi на модель, это всё туфта смотрится ничего, но только из далека и не так эффектно. Этот способ я придумал сам, когда предстояла работа над рекламным роликом системы высокоточной ракетно-бомбовой стрельбы "Краснополь" по движущимся целям. Цели предстояло сделать танками. Долго я ломал голову с этими гусеницами и, наконец, придумал. Идея не идеальная и есть места, где нужно подгонять на глаз, но это не значительная помеха. Кто не знаком с таким способом может делать крутые вещи, просто немного фантазии. Этот урок не для профессионалов. Я не стану много выпендриваться, и постараюсь подробно пояснить, как всё делать.

Шаг 1: Создание модуля гусеницы.
Включите кнопки 3d Snap Toggle и Use Selection Center,
3d Snap Toggle
Use Selection Center
последняя должна стоять в меню постоянно, иначе может, не получится. Зайдите в меню Create/Standard Primitives/. Нажмите кнопку Box. Создайте box с параметрами: lenght (90,0), width (30,0), height (5). Box готов. Конечно, можно смоделировать навороченный модуль гусеницы, с шарнирами, шипами, текстурой чтобы всё выглядело как в жизни. Не будем тратить время, главное принцип один и тот же.
Не забывайте сохранять ваш файл после каждого шага!

Шаг 2: Клонирование.
Перейдите в окно проекции Top и выделите готовый box. Перетащите этот box при помощи Select and Move вправо или влево примерно на одну клетку в сетке (grid), удерживая кнопку Shift на клавиатуре. Отпустите кнопку мыши и Shift на клавиатуре. У вас должен клонироваться второй box. Повторите так пять раз пока у вас не будет 5 объектов. Выделите эти пять объектов, и повторите клонирование, соблюдая одинаковую дистанцию между модулями (боксами).
Затем шансы на клонирование большего числа модулей увеличится. Так клонируйте дальше пока не получится 60 модулей. Может быть или больше или меньше. Я не знаю, сколько должно быть у танков. Просто создайте группу из модулей, которая и будет будущей гусеницей:


Шаг 3: Присоединение (Attach).
Выделите первый box из всей группы. Зайдите в меню Modify и нажмите кнопку Edit Mesh. В этом меню отключите активную жёлтую кнопку Sub-Object. Отключив ее, появится кнопка Attach (присоединение). Нажмите Attach и наведите курсором на соседний от первого модуль, появится крестик. Нажмите кнопку мыши и присоедините второй модуль к первому. Проделайте это с остальными модулями, пока у вас не получится один целый объект. Назовите его "track", гусеницей:


Шаг 4: Создание профиля гусеницы при помощи сплайна.
Снова переходим в меню Create/Shapes/Splines. Нажмаем кнопку Rectangle (прямоугольник). Создайте Rectangle с параметрами: lenght (85,0), width (390,0), Corner Radius (0). Длина прямоугольника должна получится примерно в 6 раз меньше чем длина гусеницы.

Шаг 5: Закручивание гусеницы по периметру прямоугольника с применением Path Deform Binding.
Для начала нужно выровнять гусеницу с прямоугольником. Выделите прямоугольник, нажмите кнопку Align,
3d Snap Toggle
наведите курсор на прямоугольник и нажмите кнопку мыши. Появится окно Align Selection (Rectangle). В самом верху поставьте галочки на всех осях X, Y, Z. Всё, гусеница и прямоугольник выровнены. Выделите гусеницу и зайдите в меню Modify/More... (в случае если модификатор не установлен). В списке Modifiers установите Path Deform, не перепутайте с Patch Deform. В меню Path Deform Binding нажмите кнопку Pick Path и, наведя курсор, щёлкните левой кнопкой мыши на прямоугольнике. Гусеница примет причудливую форму, но нам надо, чтобы она располагалась по всему периметру прямоугольника. Сделайте такие настройки:


Шаг 6: Редактируем профиль гусеницы.
Получилось подобие конвеера. Выделите прямоугольник, в меню Modify нажмите кнопку Edit Spline. Отредактируйте профиль гусеницы примерно так, как должно быть у танков, тракторов и т.д:


По-моему результат эффектный, тем более эту гусеницу можно редактировать и естественно анимировать! Назначите текстуру по вкусу. Предупреждаю, текстуру назначайте на первый модуль сразу, пока не клонируете остальные!!! Вставьте колёса, присоедините к соответствующему корпусу танка или трактора и наслаждайтесь. Далее мы сделаем анимацию гусеницы, и движение танка в примере с простым корпусом.




Шаг 7: Настройка движения траков.
У нас должен сохранится сплайн, кривая профиля, по которой расположились траки. На картинке справа показан белым. Не торопитесь с клонированием гусениц. Выделите готовую гусеницу. Если кто уже догадался, в свитке Path Deform Binding, есть параметр Percent (процент). Прокрутив ползунком вверх или вниз, гусеницы должны пошевелиться. В этом и состоит суть работы траков. Включаем большую кнопку Animate, и переводим ползунок анимации в положение кадра 100. Параметр Percent ставим на 100. Отключим кнопку Animate. Проверим итог, нажав кнопку Play animation, гусеница должна работать самостоятельно. Если она крутится не в нужном направлении, измените Percent на -100. Отключите Animate, и переведите ползунок анимации в положение кадра 0, т. е в начало.
Path Deform Binding

Шаг 8: Клонирование второй гусеницы.
Если вы внимательно смотрели первую консультацию, то запомнили, как клонировать объекты. Просто создайте копию второй гусеницы. Так как это должно быть у танка, или возьмите расстояние на ваш вкус. Я расположил, так как на картинке.


Шаг 9: Движение в пространстве.
Гусеницы движутся, но нам нужно, что бы они ещё перемещались по горизонтальной плоскости. Для начала, положим, на них сверху нечто похожее на модель корпуса танка.
Начнём связывать все части танка в одно целое. Основой связки будет корпус танка. Нажмите кнопку Select and Link,
Select and Link
наведите на ствол и щёлкните по нему мышкой, не отпуская, подведите к башне. Когда серый кубик станет белым, отпустите кнопку. Теперь ствол стал, привязан к башне. Проверить это можно, потаскав башню в разных направлениях, ствол будет перемещаться вместе с башней. То же самое проделайте с остальными частями танка, учитывая связь к основе танка т. е корпус. Придерживайтесь схеме на картинке снизу. Башня связываются с корпусом, гусеницы со сплайном, сплайн с корпусом. При перетаскивании одного корпуса все части должны перемещаться вместе с ним.
Схема

Шаг 10: Настройка движения гусениц в пространстве.
Нарисуйте в проекции Top кривую (spline), будущую траекторию движения танка. Постарайтесь нарисовать ее, так что бы вершины находились на равном расстоянии.
Выделите корпус танка и зайдите в меню Motion.
Motion
Там будет настройка Assign Controller.

Выделяете Position: нажимаете зелёную кнопку вверху, в появившемся окне выбираете Path и жмите o'k. Затем, опускаемся ниже и видим настройки Path Parameters. Теперь самое важное. Перед тем как настроить эти параметры нужно нажать кнопку Animate и перевести ползунок кадров в конец на 100-й кадр. После этого перейдем к настройкам.

Выделите корпус, если он ещё не выделен, нажмите кнопку Pick Path, и наведите крестик курсора на сплайн. Корпус и всё остальное должно встать на путь вашего сплайна. Сделайте настройки как у меня на картинке. Поскольку танк это наземное средство передвижения внизу поставьте координату X, тогда танк будет двигаться параллельно горизонтальной плоскости. Поставьте Follow, обязательно (следование), тогда ваш танк будет точно двигаться по заданному сплайну. Bank (можно не ставить), эта функция отвечает за заносы танка на крутых поворотах, а если поставите, сделайте Bank Amount на 8. Если при установке Follow танк встал задом, поставьте галочку в окошке Flip. Отключите Animate. Нажмите Play animation, и посмотрите что получилось. Если всё готово можно отсчитывать анимацию.

Траекторию сплайна можно изменять на ваше усмотрение, самое главное, что бы расстояние между вершинами сплайна по возможности было одинаковое, иначе, танк будет двигаться не равномерно рывками. Скорость передвижения танка зависит от количества кадров анимации. Если хотите сделать медленное движение, перед началом всех настроек поставьте, больше кадров от 200 и выше..." Не бойтесь экспериментировать. Следующую консультацию я посвящу анимации данного танка со стрельбой из орудия в движении. А так же в будущем я сделаю консультацию по простым, но эффектным наземным взрывам.

далее