В программе Майя представлено два типа динамических тел. Они делятся на твердые и мягкие. Твердые выглядят как цельные объекты, которые могут перемещаться в полном соответствии с назначенной им движущей силой. Мягкие тела представляют собой поверхности, которые можно без труда деформироваться. Это может быть ткань, которая колышется под действием ветра, или подпрыгнувший резиновый мяч. Такой эффект может достигаться не благодаря трансформированию всего объекта в тело динамического типа. Гораздо рациональнее изменить действие его управляющих точек или вершин. Сталкиваясь с каким-то предметом или находясь под действием силовых полей, точка оказывается смещена. Соответственно и поверхность оказывается деформированной. Мы же в этом уроке рассмотрим динамические особенности тел исключительно твердого типа.
В твердое тело можно превратить абсолютно любой объект. После того, как преобразовать поверхность тела, она начнет подпадать под действие силовых полей и уже сама сможет принимать активное участие в столкновениях. Поведение объектов в данном процессе зависит от их массы, скорости передвижения и подобных физических нюансов. Твердые тела бывают активными и пассивными. Активные тела могут отреагировать на иные объекты. Пассивные тела не двигаются, чаще всего они представлены в виде какой-то поверхности.
Открываем файл.
Превращаем NURBS объект в Polygons. Выбираем в меню Modify>Convert>NURBS to Polygons и кликаем на квадрат рядом.
Выбираем в меню Edit>Reset Settings. Устанавливаем в настройках тип преобразования на треугольные полигоны. Tessellation method>General,Initial tessellation controls поставим Per span # of IsoParams. Все остальные опции оставляем такими, какими они являются по умолчанию.
Отправляем только что созданный объект в сторонку. Тот, что мы сделали перед этим, попросту удаляем.
Теперь очищаем историю его разработки.
В Channel Box устанавливаем новому рисунку наименование glass. Перетаскиваем этот предмет на начало координатной прямой, устанавливая все координаты на нулевую отметку. Разрабатываем плоскость, в которой будет разбит наш стакан и увеличим ее до нужного размера.
Каждому объекту присваиваем материал.
Меняем цвет объекта. Выделяем нашу плоскость и открываем редактор атрибутов. Обратите внимание на закладку blinn1 и устанавливаем ему синий цвет. Ту же процедуру производим со стаканом, однако его цвет будет уже белым.
Переходим в режим редактора по клавише F4.
Переходим в меню. Выполняем опцию Effects>Crate Shatter. Так нам удается создать осколки. Жмем на соседний квадратик.
Теперь заходим в меню последних настроек и выбираем нужный нам тип обломков. Для этого меняем такие операции: Post Operation на rigid bodies with collisions off, Original Surface на Link to Shards. Таким образом, мы превратили рюмку в активный объект.
Устанавливаем скорость по оси У. В данном параметре у нас указывается скорость, с которой будет двигаться тело в первую секунду процесса анимации. В параметр вставлено три ячейки, в которую впишется движение относительно отдельных осей. Прокручиваем анимацию и смотрим на то, что наш стакан пролетел через плоскость.
Выделяем опорную поверхность. Теперь нам нужно сделать такое действие: Soft rigid Bodies>Crate Passive Rigid Body. Так, плоскость станет пассивным телом, и стакан уже будет с ним сталкиваться. Просматриваем анимацию. Стакан отпрыгнул прямо во время столкновения.
Теперь мы можем трансформировать объект в твердое тело, установив для него определенное количество атрибутов, которые будут руководить его работой при динамических действиях. Смотрим на самые значимые параметры. Масса указывает вес твердых объектов. Она считается самым важным фактором для определения количества энергии при столкновении тел. Чем больше масса, тем выше окажется уровень требуемого усиления. Масса считается относительной величиной. Если у всех участвующих объектов масса одинакова, то и динамика будет выглядеть соответствующе. В целом же каждому объекту нужно установить некоторые параметры, а именно: упругость, торможение и массу. В нашем случае мы ставим их на Mass=150, Bounciness=0,1, а Damping=0.
Теперь поворачиваем стакан на тридцать или пятьдесят градусов. Крутим нашу анимацию.
Вот, теперь наша рюмка летит более естественно. Но мы все еще не смогли сделать так, чтобы она разбивалась при падении. Заходим на коробку каналов и включаем опцию Shatter. Запускаем заново анимацию. Так, она начинает затормаживаться. Стакан уже летит расколотым, а обломки падают вниз. Меняем вышеуказанный параметр на деактивированный. Так нам удастся сделать стакан разбитым уже после падения. С этой целью мы проматываем анимацию ровно до момента соприкосновения плоскости и стакана. Делаем паузу в анимации. Теперь параметр Shatter нужно снова активировать. Кликаем правой кнопкой мышки. Мы устанавливаем анимирование для осколков. Однако и до этого момента Shatter оказывается активированным. Теперь возвращаем анимацию на кадр назад и деактивируем указанный параметр. Устанавливаем анимационный ключ. Теперь мы просмотрим анимацию.
Рюмка пролетела через плоскость. Исправляем баг. Заходим в редактор атрибутов и в рубрике rigid Body в атрибуте Perfomance Attributes изменим параметр Collision Layer на -1.
Крутим анимацию. Теперь наша рюмка смогла разбиться. Однако осколки летят вверх. Исправляем. Выделяем в меню полей осколки и устанавливаем гравитацию.
Смотрим анимацию. Все логично, кроме того, что осколки стали пересекаться. Исправляем.
Для этого нам понадобится поиграться с опциями Collisions, установив их параметры так, как показано на скрине ниже.