Использование решателя твердого тела  Maya

Если  динамическое  моделирование  работает  неправильно  или   воспроизведение  не­ удовлетворительное,   в    Майя   можно  настроить  процесс  вычислений   моделирования твердого тела. Настройка параметров  наиболее полезна для сцен, в  которых необходима точная  проверка столкновений  и   взаимодействий.   Окно  атрибутов  решателя  твердого тела, rigi d  Body Solver, можно открыть, выбрав  в  наборе меню Dynamic s  (Динамика) пункты Solvers => rigi d Body Solver (Решатели  => Решатель твердого тела) или  выделив твердое тело, открыть редактор  атрибутов  (комбинация  клавиш <Ctrl+A> ) и  перейти  на вкладку rigidSolver.  Элементы управления этого окна позволяют настроить процесс вы­ числений  моделирования для достижения лучшей скорости  или  точности.

Рассмотрим, как  работает решатель на практике. Создайте пустую  сцену,  добавьте плоскость и  сферу (расположите  ее чуть выше над плоскостью), а затем  сделайте плос­ кость пассивным твердым телом.

Прежде чем преобразовать сферу в  твердое тело, немного усложним  ее форму.  Сна­ чала  увеличьте  количество  секций или   промежутков  между  изопараметрическими  ли­ ниями  до  16 или  более (на узле makeNURBSpherel) .  Затем  сформируйте  из  сферы не­ много причудливую,  угловатую форму (чем больше  углов,  тем лучше), наподобие изо­ браженной  на  рис. 18.3.  Эту  форму  можно  создать  очень  легко  с  помощью  утилиты Artisan  (выберите   пункт  меню  Edit NURBS => Sculpt  Geometr y  Tool •   (Редактировать NURBS-noBepxHOCTH => Инструмент рельефа •)) . Но можно и непосредственно вытянуть из  сферы отдельные контрольные вершины  (CV).

Выделив сферу, выберите пункт меню Fields => Gravity (Поля => Гравитация) для автомати­ ческого создания активного твердого тела из сферы и соединения его с полем гравитации.

Если  запустить анимацию  сейчас, то  Майя, возможно, будет работать немного  мед­ леннее —  ведь теперь необходимо отслеживать  много больше поверхностей!  Если  вос­ производить по одному кадру (и  смотреть вдоль плоскости), то можно  заметить, как не­ которые из поверхностей сферы проходят сквозь плоскость (рис.  18.4).

При  воспроизведении  на полной скорости  эти  ошибки  можно не заметить, но иногда необходимо их   исправить,   или,   возможно, ускорить  воспроизведение   для  особенно сложных случаев. Однако в  данном случае можно использовать меню rigi d Bod y Solver (Решатель твердого тела) для настройки  процесса вычислений  моделирования  твердого тела. По существу, решатель твердого тела позволяет управлять способом,  которым про­ цессор динамики  Майя  обрабатывает математику движения   и  взаимодействия твердых тел.  Как было продемонстрировано  выше, сложные формы  взаимодействуют сложными способами, и  настройка параметров  вычислений с  помощью  решателя полезно, когда ре­ зультат с настройками  по умолчанию не  точный или  слишком быстрый для реалистич­ ного отображения.

Рис. 183. Видоизмененная сфера над поверх-                 Рис. 18.4. Видоизмененная сфера про- ностью плоскости                                                              ходит сквозь поверхность плоскости

Открыв   окно  rigi d  Body  Solver  (Решатель  твердого тела)  любым  из   способов (рис. 18.5), можно выполнить все необходимые  настройки решателя.

Puc. 18.5. Окно rigid Body Solver

Обратите  внимание на разделы окна rigi d Solver States (Состояния твердого тела) и rigi d  Solver Display Options (Параметры представления  твердого тела).  В  них  можно включить или   отключить большинство  основных функций. Для  примера  попробуйте выполнить  следующее.

•          Установите флажок Display Velocity (Отображение  скорости) и  запустите воспроиз­ ведение  анимации.  На экране появится стрелка, которая указывает  направление ско­ рости сферы. Ее длина символизирует скорость сферы.

•          Сбросьте флажок State (Состояние). Теперь анимация не выполняется, поскольку при сбрасывании  этого флажка выключается решатель. (Это хороший  способ быстро от­ ключить динамику, чтобы уделить  основное  внимание другим элементам анимации.)

•          Сбросьте флажок Contac t Motion (Контактное движение). Теперь сфера ударяется о плоскость, но больше не отскакивает  от нее, поскольку  динамическое   движение не рассчитывается после контакта.

Попробуйте сбрасывать каждый из  флажков  по очереди  в  разделе rigi d Solver States (Состояния твердого тела) и  посмотрите, какой эффект это будет иметь при  воспроизве­ дении.  После завершения  верните  флажки  в   их  исходное состояние,  чтобы  в  будущем моделирование выполнялось  так, как ожидается.

В разделе rigi d  Solver Method s (Методы твердого  тела) предлагаются три  варианта

выбора, хотя  обычно  используется метод  по   умолчанию —   rung e   Kutta   Adaptive  (Адаптивный  метод Рунге-Кутта). Однако бывают случаи, когда  выполняется сложное моделирование  и  при  этом необходимо быстрее просмотреть его  результат при  интерак­  тивном  воспроизведении, либо когда точностью моделирования  при  окончательной ви­ зуализации  можно  пренебречь.  В  таких случаях  можно   (временно) установить  метод rung e  Kutta (Рунге-Кутта)  или  Midpoint (Средняя  точка). Метод Midpoint (Средняя точ­ ка) является наименее точным, но самым быстрым. Метод rung e Kutta (Рунге-Кутта) яв­ ляется компромиссом между скоростью и точностью. В случае трансформированного шара

в примере, вероятно, большой разницы между тремя методами видно не будет.

Методы runge Kutta (Рунге-Кутта) и   runge Kutta Adaptive (Адаптивный  метод  Рунге-Кутта) названы в   честь решения Рунге-Кутта  (runge  Kutta),  математического  метода решения свя­ занной  системы дифференциальных  уравнений с   использованием   производных первого порядка.  В  Maya  время разбито на  дискретные   части   (определяемые  в   поле  Step Size (Величина  шага) раздела rigid  Solver Attributes (Атрибуты твердого тела)), и  интеграл  урав­ нений аппроксимируется  при  каждом  шаге.  Хотя  методика математически  сложная,  она достаточно быстрая  и точная для большинства случаев применения.

Верхний и  наиболее полезный раздел окна rigi d Body Solver (Решатель твердого те­ ла) называется  rigi d Solver Attributes  (Атрибуты твердого тела). С  помощью полей Start Tim e (Время начала), Scale Velocity (Масштаб скорости),  Ste p Size (Величина  шага) и Collision Toleranc e  (Точность взаимодействия)  можно изменять скорость и/ил и  точ­ ность моделирования твердого  тела. Рассмотрим каждое из его текстовых полей.

Start Tim e (Время начала). Находящееся здесь значение определяет, когда начнет ра­ ботать  решатель  твердого тела.  Например, если  установить  значение  параметра  Start Tim e (Время начала) равным 50, решатель твердого тела не начнет работать до 50 кадра.

Current Tim e  (Текущее  время). Это  поле  предназначено только  для  справки  (его нельзя изменять) и  указывает текущий кадр анимации.

Scal e  Velocit y  (Масштаб  скорости). Находящееся  здесь  значение  используется, только если  установлен флажок  Displa y  Velocit y (Отображение  скорости) в   разделе rigi d   Solve r   Displa y  Option s  (Параметры представления   твердого тела).  Параметр Scale Velocit y (Масштаб скорости) позволяет  масштабировать  стрелку, торчащую из твердого тела, подгоняя ее размер для  лучшего обзора сцены. Этот параметр не влияет

на  способ  моделирования   анимации,  он  лишь предоставляет художнику больше  ин­ формации  о сцене.

Step Size (Величина шага). Находящееся здесь значение определяет отрезки времени (измеряемые  в  долях секунды), на которые решатель разбивает  временную шкалу.  При меньшем значении  этого параметра производится  больше  вычислений   в секунду, но это может означать и  более точное моделирование.  Если  возникают ошибки  взаимопроник­ новения  (т.е. два  тела проникают друг в  друга,  как  в  данном примере), можно сначала попробовать уменьшить значение параметра Ste p Size (Величина шага).

Collision Toleranc e (Точность взаимодействия).  Находящееся здесь значение указы­ вает Maya, как тщательно необходимо  рассчитывать кадры, в  которых  происходят столк­ новения. Большое  значение ускорит воспроизведение,  но  взаимодействия  могут  стать менее точными.

Попробуйте установить  значение параметра Collision Toleranc e (Точность  взаимо­ действия)  равным 0.8 и  запустите  воспроизведение анимации. Станет заметно, что сфе­ ра неправильно отскакивает  от плоскости. Теперь установите  значение этого параметра равным 0.001 (наименьшая возможная величина).  Если  раньше сфера проваливалась сквозь плоскость, то теперь этого больше не должно происходить (в худшем случае сфе­ ра будет проваливаться лишь немного).

Опробуйте  разные  значения параметров   Ste p  Size  (Величина шага)  и   Collision  Toleranc e (Точность взаимодействия) и понаблюдайте за изменениями полученной в ре­ зультате анимации. Нахождение  компромисса   между скоростью и  точностью при  слож­ ном моделировании  зачастую является ключевым для  эффективного   использования  ди­ намики  твердого тела.

Источник: Кундерт-Гиббс, Джон,  Ларкинс, Майк,  Деракшани, Дариус, Кунзендорф, Эрик,  и др., Освоение Maya  8.5.:  Пер.  с англ.  – М.:  ООО  «И.Д.  Вильямс», 2007.  – 928  с.:  ил.

По теме:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий