Рис.01
Меню PhysX (Рис.01)
Когда плагин PhysX загружен, он добавляет меню “PhysX”
в строку меню для Maya. Команды в этом меню являются
основным механизмом добавления объектов симуляции. Некоторые
команды меню также обеспечивают удобный доступ
к настройкам PhysX. Например, опция “Edit” в меню APEX Clothing
выбирает ноду “apexClothing” для выбранного предмета одежды,
выводя его настройки на передний план в Attribute Editor.
Рис.02
После добавления параметров PhysX к объекту
с помощью меню Settings for the Object, доступны
в виде ноды, прикрепленного к объекту, видимого
в Attribute Editor. Например на Рис.02 показаны настройки
для “Rigid Body”, примененного к кубу.
В дополнение к меню PhysX, плагин также устанавливает Shelf PhysX. (Рис.03) Действия на Shelf PhysX
предоставляют удобный обзор определенных глобальных настроек симуляции и возможность запуска
симуляции PhysX с анимацией временной шкалы или без нее.
Рис.03
Disable/Enable Animation
Когда точка в левом верхнем углу значка видна, анимация, созданная в Maya, включена: во время симуляции
текущий кадр в Time Slider будет обновляться для каждого кадра симуляции. Любой кинематический
Rigid Body, который вы создали и анимировали, будет двигаться как часть симуляции.
Когда точка в левом верхнем углу значка не видна, анимация, созданная в Maya, отключена: текущий кадр
не будет перемещаться в Time Slider во время симуляции, и, следовательно, кинематический Rigid Body
не будут перемещаться в рамках симуляции.
Обычно вам захочется отключить анимацию во время симуляции, когда у вас есть Dynamic Rigid Body,
которые вам нужно “установить” на место с их текущих позиций. Запустите симуляцию с отключенной
анимацией (и, возможно, Momentum; см. Ниже); когда объекты расположатся в разумных положениях покоя,
используйте кнопку “Capture Initial Transforms” (см. Ниже), чтобы обновить начальную точку симуляции
с помощью текущих преобразований Rigid Body.
Disable/Enable Momentum
Когда точка в левом верхнем углу значка видна, включается имитационный импульс: во время симуляции
движущиеся Dynamic Rigid Body будет продолжать перемещаться из кадра в кадр.
Когда точка в левом верхнем углу значка не видна, имитационный импульс отключен: любой Dynamic
Rigid Body, полученный с одной скоростью, не будут перенесены в следующий кадр. Вы можете себе
представить, что в конце каждого кадра все Dynamic Rigid Body замораживаются во льду, а затем оттаивают.
Обычно вам захочется отключить импульс во время симуляции, когда у вас есть стена или башня из
Dynamic Rigid Body, которые вам нужно “установить” на место с их текущих позиций. Если вы запустите
симуляцию с импульсом, падающие объекты в верхней части стека могут получить достаточный импульс при
падении, чтобы опрокинуть стек, когда вы вместо этого захотите, чтобы они встали на место. Отключение
импульса и запуск симуляции позволяют объектам плавно опускаться на место. Когда они установятся
в точку покоя, используйте кнопку “Capture Initial Transforms”, чтобы обновить начальную точку симуляции с
учетом стабильного положения вашей башни в положении покоя.
Capture Initial Transforms
При нажатии, текущие преобразования для всех Dynamic Rigid Body используются в качестве их
“initial transforms” (начальных преобразований). Сброс симуляции приведет к тому, что Dynamic Rigid Body
вернётся в эти положения/вращения. Эта кнопка отключена, когда симуляция находится в состоянии
reset state (это не будет иметь никакого эффекта).
Эта кнопка в основном используется для создания нереалистичной начальной установки (куча мусора,
висящего в воздухе, или башня из кирпичей с небольшими разделениями между каждым кирпичом),
запускайте её до тех пор, пока сцена не достигнет хорошей стабильной начальной точки (мусор реалистично
свален на землю, а башня из кирпичей заняла безопасное начальное место), а затем сделайте снимок
установки как лучшей отправной точки для начала симуляции.
Первая кнопка на полке PhysX выбирает ноду nxRigidSolver и показывает его вкладку в редакторе атрибутов.
В отличие от вкладок с несколькими атрибутами для нод, применяемых к объектам в сцене, которые
позволяют управлять настройками PhysX для отдельных объектов, нода nxRigidSolver позволяет управлять
глобальными настройками, для всей симуляции. Это включает в себя простые настройки, такие как
включение или отсутствие плоскости земли, а также более подробные настройки, используемые для
настройки поведения симуляции.
Time Attributes (Рис. 04)
Enable Native Time Controls - Эта опция позволяет пользователю использовать элементы управления
Time Slider Maya в дополнение к предоставленным элементам управления Time Slider PhysX. Элементы
управления Time Slider подключаются к Time Slider Maya. Включите его, если вы хотите, чтобы симуляция
работала в следующих случаях: Воспроизведение/Перемотка в Time Slider, Playblast, Bake Simulation.
Loop Simulation - Установите этот флажок, чтобы зациклить воспроизведение цикла симуляции PhysX,
по достижении последнего кадра, симуляция заного начнёт просчёт.
Steps - Количество шагов симуляции, выполняемых между каждым обновлением кадра. Например,
значение 0 выполнит один проход симуляции для каждого кадра, в то время как значение 3 приведет
к четырем проходам симуляции для каждого кадра. Более высокий Steps даёт более точные результаты
симуляции: движущиеся объекты будут перемещаться на меньшие расстояния между кадрами, что приведет
к более точным столкновениям для быстро движущихся объектов; цепочки ограничений будут иметь больше
шансов достичь равновесия до того, как будет отрисован кадр. Конечно, более высокий Steps для выполнения
также требуют большей вычислительной мощности, что приводит к снижению производительности.
Step Method - Определите образец и интерполируйте
Рис.04
Scene Attributes (Рис. 04)
Ground Plane - Этот параметр добавит (невидимый) бесконечный Static Rigid Body в нулевые мировые
координаты. Это тело имеет значения по умолчанию для трения и упругости, которые нельзя изменить.
Ground Height - Переместить землю выше или ниже.
Gravity - Если этот флажок установлен, все Rigid Body будут испытывать гравитацию.
Gravity Amount - Сила притяжения, указанная в единицах измерения в секунду. Для справки,
сила притяжения Земли составляет приблизительно
980,67 см/с2 = 386,09 дюйма/с2 = 32,17 фута/с2 = 9,81 м/с2
Gravity Direction - Мировой Axis, вдоль которого будет применяться гравитация. Чтобы заставить
гравитацию двигаться сверху вниз вдоль выбранной оси, укажите значение со знаком минус.
Use Multithreading - Разрешите API-интерфейсам PhysX/APEX использовать многопоточность. Это может
повлиять на детерминизм, который не является проблемой для разработки игр, но может быть проблемой
для производства фильмов.
Hardware Acceleration - Используйте свою видеокарту Nvidia для ускорения симуляции физики.
Contact Defaults (Рис.05)
Auto Calculate(*s) - Чтобы минимальная скорость отскока автоматически рассчитывалась
на основе настроек в сцене.
Bounce Minimum Velocity - Объекты, отскакивающие ниже этой скорости, перестанут отскакивать.
Contact Shell Invert - Инвертирует значения направления Contact.
Contact Shell Offset Default - Точка, в которой 2 физические фигуры начинают регистрировать,
что они находятся в Contact. После Contact они могут либо отскочить, либо остановиться на нижнем
rest depth (глубина покоя). Требование: Contact Offset >= rest depth
Contact Shell Depth Default - Глубина, на которой 2 физические фигуры при контакте будут располагаться
друг на друге или рядом друг с другом . Требование: Contact Offset >= rest depth
High Velocity Contact Algorithm - Представьте себе быстро движущееся Rigid Body
(например, мяч для гольфа), перемещающееся по тонкому Rigid Body (например, листу фанеры). В 10 кадре
он на одной стороне доски, в 11 кадре он на другой стороне. Без CCD никакого столкновения не произойдет.
Чтобы исправить это, вам нужно будет установить атрибут Steps достаточно высоко, чтобы мяч для гольфа
успевал взаимодействовать с доской в нужных кадрах симуляции. Включение CCD настраивает упрощенный
объем столкновений для быстро движущихся объектов, соединяя положение от одного кадра к другому.
Низкое пороговое значение CCDMotionThreshold устанавливает минимальную скорость,
выше которой включается CCD.
High Velocity Contact Distance - Минимальная скорость (в секундах) для вступления в силу CCD.
Rigid Body, движущиеся ниже этой скорости, не будут использовать CCD, даже если указано выше.
Рис.05
Sleep Defaults (Рис.06)
AutoCalculate(*s) - Если установлено значение “Automatic”, эвристический алгоритм будет использоваться
для расчета разумных пороговых значений Sleep как для скорости linear (перемещение), так и для
скорости angular (поворота), выше которых будет применяться режим Sleep. Чтобы переопределить эти
эвристические значения скорости перемещения и поворота, деактивируйте AutoCalculate(*s) и укажите
значения Energy Threshhold (Рис.06).
Energy Threshhold - это совокупная linear и angular кинематическая энергия, связанная с массой и скоростью
объектов. Если общая энергия объекта упадет ниже этого порога, он остановится, перейдёт в режим Sleep.
Рис.06
Authoring Visualization (Рис. 07)
Display Rigid Bodies - Установите этот флажок, чтобы отображать Wireframe Physical Meshes
в окне просмотра для каждого объекта с модификатором Rigid Body.
...Only Selected - тоже самое что и Display Rigid Bodies только для выбранных объектов.
Display Constraints - Установите этот флажок, чтобы отображать в окне просмотра
линию подключения для всех Constraints (Ограничения).
...Show Limits - Если установлен флажок Display Constraints, установите этот флажок,
чтобы отобразить helper по Constraints (Ограничениям) в окне просмотра Maya.
Display Ragdoll Helpers - Установите этот флажок, чтобы показывать в окне просмотра
вспомогательные локаторы для каждого RagDoll.
Обратите внимание, что приведенные выше настройки будут отображать визуализацию только во время
редактирования. Вы можете использовать визуализацию симуляции для просмотра в режиме Wireframe всех
Physical Meshes во время симуляции, независимо от приведенных выше настроек.
Рис.07
Во время моделирования вам может потребоваться визуализировать сцену PhysX в том виде, в каком она
воспринимается базовым движком PhysX. Чтобы увидеть физические сетки, столкновения, скорости и многое
другое, включите “Simulation Visualization”.
Визуализатор PhysX предоставляет визуальную информацию о моделировании непосредственно из SDK,
отображаемую в Z-buffer вьюпорта Maya.
Чтобы включить его нажмите “Enable” в разделе Simulation Visualization, Чтобы изменить размер
отображения визуализаторов, увеличьте значение в поле “Scale”, так же вы можете настроить что именно отобразить, с помощью разделов:
Object Properties
Constrain Properties
Contact Markers
PhysX Clothing Visualization
Simulation Type - Rigid Body может быть: Dynamic, Kinematic, Static.
Switch to Dynamic (Рис.08)
Если тип Rigid Body является Kinematic, то включение этого элемента управления позволяет пользователю
изменить его тип на Dynamic в заданном кадре.
At Frame - Управляет тем, в каком кадре, объект превращается из кинематического в динамический.
Рис.08
Enable Gravity (Рис.08) - Контролирует, действует ли гравитация на это твердое тело
Force to Sleep (Рис.08) - При старте симуляции Rigid Body перейдет в спящий режим (Sleep).
После погружения в сон Rigid Body не будет двигаться до тех пор, пока его не ударит другой Rigid Body,
который не спит. Например, если у вас есть дорожка из домино, вам, вероятно, следует установить на все
домино Force to Sleep, кроме первого, и затем толкнуть первую доминошку.
Physical Material
Override Mass or Density (Рис.09) - Переопределение массы и плотности. При установке значения Массы
автоматически изменится и плотность (Density) Rigid Body. Масса и Плотность (Density) это два
взаимосвязанных параметра, изменяя один из них, он будет влиять и на второй, вы не сможете изменять
массу и плотность одновременно. Масса Rigid Body тела измеряется в килограммах.
Плотность (Density) Rigid Body измеряется в кг/см3 (килограммах на сантиметр кубический)
Обновление этого значения позволит рассчитать правильную массу объекта на основе его объема.
Рис.09
Bounciness
Как легко и высоко отскакивает предмет, когда он ударяется о другой Rigid Body. Технически это известно
как "коэффициент реституции"...но само слово “Bounciness” проще и короче. Значение 0,0 указывает на
отсутствие отскока (пример: кусок арахисового масла, упавший на ковер); значение 1,0 указывает на то,
что объект отскочит примерно так же сильно, как и ударился. Эффективная упругость между двумя
Rigid Body является результатом их упругости: супер-упругий резиновый мяч, подпрыгивающий,
и приземляющийся на мягкое арахисовое масло, не отскочит.
Static Friction (статическое трение)
На сколько трудно двум Rigid Body начать скользить друг по другу. Значение 0,0 указывает на отсутствие
трения (более скользкое, чем тефлон); значение 1,0 указывает на полное трение (резина по наждачной бумаге)
Эффективное статическое трение между двумя Rigid Body является произведением их значений статического
трения: если один Rigid Body имеет статическое трение 0,0, то не важно, каково значение другого.
(Всё скользит по мокрому льду, даже наждачная бумага.) Как только два объекта начинают скользить,
вместо этого применяется динамическое трение (Dynamic Friction).
Dynamic Friction (динамическое трение)
Как трудно двум Rigid Body продолжать скользить друг по другу, как только они это начали. Это технически
известно как “коэффициент кинематического трения”. Значение 0,0 указывает на отсутствие трения
(более скользкое, чем тефлон); значение 1,0 указывает на полное трение (резина на наждачной бумаге).
В реальном мире это значение должно быть меньше коэффициента Static Friction. (Труднее начать толкать
диван по полу, чем заставить его продолжить двигаться.) Как и в случае Static Friction, эффективное значение
между двумя Rigid Body является произведением их соответствующих значений.
Shapes
Отдельно от графического представления Rigid Body, представленного в Maya, каждый Rigid Body
представлен в симуляции PhysX одной или несколькими “Shapes” (формами). Этот раздел позволяет
управлять “Shapes”, представляющими Rigid Body.
Add
При нажатии на эту кнопку Add отображается меню вариантов, (Рис.10). Для каждого предустановленного
типа “Shapes” вы можете создать “Shapes”, подходящий для вашего Graphical Mesh, если Graphical Mesh
состоит из нескольких подобъектов, то вы можете обернуть каждый из них отдельным “Shapes”
и сделать их дочерними по отношению к элементу Rigid Body.
Рис.10
Around Self - Новая форма изначально будет иметь размер, соответствующий размеру Graphical объекта
Rigid Body. Это не “Live” привязка: изменения размера или формы Graphical объекта не приведут к тому,
что Physical Shape обновит свой размер или преобразование.
Around Object... - Выберите это, а затем выберите другой объект в сцене, чтобы новый Physical Shape был
определён по его размеру и помещён вокруг этого дургого объекта. Это не “Live” привязка: изменения
размера или формы этого дургого объекта не приведут к тому, что Physical Shape обновит свой размер или
преобразование. Если хотите вы даже можете удалить этот другой объект.
Attached to Child... - Выберите это, а затем выберите другой Physical Shape, который должен быть родителем
для этого нового Physical Shape, тем самым создаётся иерархия Physical Shape и в этом случаи будет работать
“Live” привязка: при перемещение или изменение размера родительского Physical Shape, будет изменятся
и дочерний Physical Shape.
Select - Выбрав элемент в списке Physical Shape, выберите объект для этой формы. Объект не будет
сфокусирован в редакторе атрибутов, но он будет доступен в списке вкладок.
Rename - Позволяет переименовать форму.
Delete - удаляет выбранную форму. Примечание: Rigid Body без формы не могут повлиять на симуляцию.
Copy - копирует выбранную форму.
Cut - вырезает выбранную форму.
Paste - вставить ранее скопированную форму.
Hide All - скрывает все формы для текущего Rigid Body
Show All - отображает все формы для текущего Rigid Body
Simulation Sets - это диалоговое окно позволяет пользователю организовать Set Shape (наборы форм) Рис.11
Default - Список Set Shape, частью которых является этот объект.
Setup Simulation Sets - Запускает “Simulation Sets Manager” (Диспетчер Set Shape).
Рис.11
Advanced (Рис.12)
Position Iteration Count
Количество итераций, выполняемых с помощью Solver (решателя) симуляции, при применении столкновений
и ограничений, связанных с этим Rigid Body. Более высокие значения, чем значения по умолчанию, могут
потребоваться, когда существует множество Constrain (ограничений), допуск ошибок Constrain очень низок
или когда Rigid Body испытывает “дрожание” при симуляции.
Velocity Iteration Count - определяет Количество итераций Скорости
Contact Shell Override - Если этот флажок установлен, Глубина Shell (оболочки) контакта и Смещение
Shell контакта переопределяют глобальные значения по умолчанию для этого объекта.
Sleep Thresholds Override - Если флажок установлен, параметр “Sleep Energy Threshold” переопределяет
глобальные значения по умолчанию для этого объекта.
Linear/Angular Damping - Damping (затухание) замедляет движение объекта. Помимо прочего, вы можете
использовать Damping для уменьшения колебаний, возникающих в ваших сценах.
Linear Damping это величина силы, приложенной для замедления скорости движущихся объектов.
Angular Damping - это величина силы, приложенной для замедления скорости вращения вращающихся
объектов. Для обоих атрибутов значение 0,0 выключает Damping.
Center of Mass Mode - Это точка, вокруг которой вращаются реальные физические объекты, если они
каким - либо образом не ограничены. Доступно два режима:
Manual Override - Для центра массы объекта использует вектор, указанный в “Center of Mass Override”.
Calculate from Shapes - Автоматическое определение соответствующего центра масс для объекта,
на основе Physical Shape.
Initial Velocity - Начальная скорость движения (в единицах измерения в секунду), в которых этот Rigid Body
начнет двигаться, когда начнется симуляция. Представлен в виде вектора направления вдоль осей X,Y,Z.
Initial Spin - Начальная скорость вращения (в градусах в секунду), вокруг которых начнёт вращаться этот
Rigid Body, когда начнется симуляция. Представлен в виде вектора направления вокруг осей X,Y,Z.
Initial Position/Orientation - При перемотки в первый кадр, Rigid Body (если он динамический)
вернется к этим значениям перемещения и вращения. Обратите внимание, что преобразование Rigid Body
на первом кадре автоматически изменяет эти значения.
High Velocity Contact Enhancement
Enable Locally - Представьте себе быстро движущееся Rigid Body (например, мяч для гольфа),
перемещающееся по тонкому Rigid Body (например, листу фанеры). В 10 кадре он на одной стороне доски,
в 11 кадре он на другой стороне. Без CCD никакого столкновения не произойдет. Чтобы исправить это,
вам нужно будет установить атрибут Steps достаточно высоко, чтобы мяч для гольфа успевал
взаимодействовать с доской в нужных кадрах симуляции. Включение CCD настраивает упрощенный объем
столкновений для быстро движущихся объектов, соединяя положение от одного кадра к другому. Низкое
пороговое значение CCDMotionThreshold устанавливает минимальную скорость,
выше которой включается CCD.
Dynamic Dynamic CCD - При включении влияет на все динамические CCD для всех Dynamic Rigid Body
в сцене. Выключение этого параметра позволит включить Dynamic CCD только для Kinematic и
Static Rigid Body. Поскольку CCD является ресурсоемкой операцией, включение этой операции может
снизить производительность системы.
Velocity Threshold - Минимальная скорость (в секундах) для вступления в силу CCD.
Rigid Body, движущиеся ниже этой скорости, не будут использовать CCD.
Рис.12
Рис.13
Кнопки Selection (Рис.13)
Select Shape Mesh - Выберите узел Graphical Mesh для Rigid Body.
Select Transform - Выберите узел преобразования для Shape.
Select RigidBody - Выберите узел для Rigid Body, с которым связан этот Shape.
Рис.14
Physics Shape Attributes (Рис.14)
Shape Type - Установите объём столкновения, используются следующие формы:
Box - Это примитив, размер которого можно изменять и поворачивать. Не обязательно выравнивать Pivot
по центру примитива
Sphere - Самый быстрый примитив из всех, сферу можно делать с произвольным радиусом и центром Pivot.
Capsule - Подобно цилиндру с закругленными крышками или лекарственной таблетке, примитив капсула
может быть ориентирована и иметь желаемый размер.
Convex Hull - Более сильно влияет на производительность, чем предыдущие примитивы, Convex Hull
представляет собой автоматически получаемую collision (столкновений) сетку столкновений, обернутую вокруг Graphical Mesh для Rigid Body.
Triangle Mesh - Делает более детальную форму collision. Используется только для Static Rigid Body
в качестве формы столкновения. Используйте это для неподвижных вогнутых и выпуклых объектов,
таких как ландшафт.
ClothSpheres - Специализированная обтекаемая форма для одежды. ClothSpheres это сферы, которые могут
быть соединены с другими формами одежды (сферами). Это создает систему конических капсул, которые
затем можно использовать для столкновения с одеждой.
Рис.15
Size - Для Box shape, локальные размеры X, Y, Z.
Это не будут иметь никакого эффекта, если установлен флажок “Best Fit” (см. Ниже).
Radius - Для Sphere или Capsule, изменяет радиус сфер(ы).
Это не будут иметь никакого эффекта, если установлен флажок “Best Fit” (см. Ниже).
Height - Необходим для того что бы изменять длину Capsule.
Это не будут иметь никакого эффекта, если установлен флажок “Best Fit” (см. Ниже).
Best Fit - Для Box, Sphere, Capsule, автоматически отрегулирует размер и положение shape, чтобы обернуть
его вокруг Graphical Mesh для Rigid Body. Если эта опция включена, изменения атрибутов
Size, Radius, Height не влияют на shape.
Refit - Переподгоняет форму к Graphical Mesh или Skin Mesh.
Connect to Rigid Body - (рассчитан только для одежды) Соедините эту сферу одежды с формой (ниже)
на этом Rigid Body. Rigid Body должен быть частью RagDoll.
Connect to Shape - (рассчитан только для одежды) Соедините эту сферу одежды с этой формой
на выбранном Rigid Body (поверх).
Inflate - Если вы хотите иметь меньшее проникновение между Physics Shape, вы можете немного увеличить
это число, чтобы Physics Shape был больше, чем Graphical Mesh.
Physical Materials (Рис.16)
Use Mass Or Density
Хотите ли вы указать общий вес shape напрямую (независимо от того, насколько большим вы его сделаете),
или укажите вес shape, или же установить плотность
(объект становится легче по мере его сжатия, тяжелее по мере увеличения).
Mass - Указывает на сколько тяжёлый shape, (в килограммах). Это значение будет использовано для
симуляции независимо от того, насколько большой или маленькой у вас объект (см. ниже Disabled).
При включении симуляции, изменит Density согласно выставленным значениям Mass.
Density - Изменяет плотность shape. Независим от единиц измерения, установленных для вашей сцены,
это значение всегда указывается в килограммах на метр кубический.
При включении симуляции, изменит Mass согласно выставленным значениям Density.
Disabled - Перед симуляцией будет рассчитана фактическая масса формы (shape) на основе его размера.
Рис.16
General Attributes (Рис.17)
Add/Remove Rigid Constraint Child - Добавление/Удаление дочернего жёсткого ограничения. Если у
объекта есть Constrain то будет активна кнопка “Remove Rigid Constraint Child” если нажать то Constrain
удалится, и кнопка изменится на “Add Rigid Constraint Child” нажмите эту кнопку и выберите объект
во вьюпорте, тем самым он добавится в качестве дочернего элемента этого Constrain (Ограничителя).
Enabled - Снимите этот флажок, чтобы отключить ограничение в симуляции.
Interpenetrate (Проникать) - При проверке двух Rigid Body, соединенных ограничителем, не будут
сталкиваться друг с другом. Это желательно, когда два Rigid Body пересекаются друг другом, это может
произойти в капсулах, используемых для частей RagDoll. Снимите этот флажок, чтобы связанные Rigid Body
относились друг к другу так же, как к любому другому Rigid Body.
Translate - Локальное перемещение Constrain (ограничителя) относительно оси родительского Constrain.
В Maya можно использовать инструмент Перемещения (клавиша W) для перемещения ограничителя.
Если ограничитель допускает разблокированной swing (качание) или twist (поворот), они происходят
в этом месте Constrain.
Rotate - Локальное вращение ограничения относительно оси родительского Constrain.
В Maya можно использовать инструмент вращения (клавиша E) что бы развернуть ограничитель.
Если ограничение имеет ограниченное swing (качание) или twist (поворот), то это влияет на то, где
ограничения вступают в силу.
Orientation Mode - Режим ориентации
Centered (Центрированный) - Несмотря на появление в окне просмотра, приводит к тому, что пределы swing
(качание) или twist (поворота) фактически центрируются вокруг текущего Angular Offset между локальной
осью X ограничения и дочерним Rigid Body. (Или, проще говоря, это примерно эквивалентно
автоматическому перенаправлению локальной оси x ограничений на ось вращения дочернего Rigid Body.)
Этот режим сохраняется в основном для обеспечения обратной совместимости; в большинстве случаев мы
рекомендуем использовать режимы Target Origin.
Target Origin (Начало координат цели) - Установите взаимосвязь между ограничением и поворотной осью
дочернего Rigid Body. Этот режим, как правило, обеспечивает наиболее понятные результаты. Позволяет
поворачивать ось таким образом, чтобы дочерней Rigid Body не обязательно начинал симуляцию
в центре Constrain (ограничения).
Рис.17
Limits - Предел (Рис.18)
Атрибуты в этом разделе управляют движением Constrain (ограничения). Различные комбинации
ограничений создают различные эквиваленты в реальном мире. Например:
Locking swing, вращение и перемещение склеит два Rigid Body вместе. В отличие от составного
Rigid Body, это “жесткое” соединение может быть настроено на разрыв выше определенных
пороговых значений силы. (См. ниже раздел Breakable “Хрупкость” .)
Разблокировка только одной из осей swing/twist имитирует hinge (шарнир).
Разблокировка обоих “swing”, но не “twist”, имитирует универсальный шарнир.
Разблокировка обоих “swing”, а также “twist” имитируют шаровой шарнир.
Разблокировка одной оси “translation” позволяет объекту скользить
(например, вешалка для одежды на штанге шкафа).
Разблокировка всех осей “translation” с помощью соответствующего привода имитирует “Spring” (пружину).
(см. ниже раздел Springs “Spring”).
Рис.18
Swing - Качать (Рис.19)
Swing Y/Z Freedom Mode - Режим свободы качания по осям Y/Z
locked - Предотвращает качание родительского и дочернего Rigid Body.
limited - Родительские и дочерние Rigid Body могут качаться вокруг определенной оси ограничения в
ограниченном диапазоне угла. Ограничение угла отображается визуально в окне просмотра. См. Следующие
атрибуты в этом разделе для управления ограниченным качанием.
free (свободно) - Между родительским и дочерним Rigid Body, разрешается неограниченное качание.
Swing Y/Z Limit Angle - Предельный угол поворота по осям Y/Z
Разрешенная величина поворота, указанная в градусах от центра (локальной оси x) ограничения. Например,
предельный угол 45 градусов приводит к общему разрешенному повороту на 90 градусов
(45 градусов выше оси x и 45 градусов ниже). Если локальная ось X ограничения не указывает на центр
дочернего Rigid Body, вы, вероятно, захотите использовать настройки “Target Origin” для режима ориентации.
Swing Y/Z Limit Bounciness - Раскачивание по осям Y/Z с пределом отскока
Когда два объекта качаются таким образом, что они врезаются в указанное выше предельное значение,
это определяет, насколько сильно они будут “отскакивать” от этого предела. Значение 0,0 не приведет
к отскоку (захлопывание двери приводит к тому, что она остается закрытой), в то время как значение 1,0
приведет к очень жесткому пределу (захлопывание двери приводит к тому, что она снова
полностью открывается).
Swing Y/Z Limit Springiness - Раскачивание по осям Y/Z с пределом упругости
Если вы укажете значение Предельной упругости (отличное от 0,0), ограничению будет разрешено превышать
указанное выше предельное значение. Как только он превысит предел, значение этого атрибута указывает,
насколько сильно он возвращается к пределу. Малые значения приводят к очень легкому откату к пределу,
в то время как большие значения вызывают очень сильное притяжение. Значение 0.0 (по умолчанию)
запрещает объекту превышать ограничение.
Swing Y/Z Limit Damping - Раскачивание по осям Y/Z с пределом затухания
Если ограничению разрешено превышать предел (см. выше Limit Springiness), это определяет количество
mud (грязи), через которую проходит Rigid Body, как только предел превышен. Малые значения не вызывают
замедления объектов; большие значения действуют как амортизаторы, затухание. Используйте это затухание,
чтобы предотвратить колебания на краю предела.
Рис.19
Twist - Закручивание (Рис.20)
Пределы Закручивания влияют на вращение родительского и дочернего Rigid Body вокруг локальной оси X
ограничения. В отличие от Swing, который использует отдельные значения упругости, упругости и затухание
как для верхнего, так и для нижнего пределов, twist позволяет указывать уникальные значения
для каждого края пределов.
В дополнение к обеспечению дополнительной мощности ограничения, использующие одну ось вращения,
обычно работают лучше при использовании twist вместо swing. Если вы испытываете трудности
с ограничением Hinge (шарнира) или локтя с помощью swing, вы можете получить лучшие результаты,
используя вместо swing, twist.
Смотрите выше описания режимов “Swing Y/Z Freedom Mode”, Limit Angle, Bounciness, Springiness
и Damping для получения подробной информации об эквивалентных атрибутах для twist.
Рис.20
Translate - Перемещение (Рис.21)
Translate X/Y/Z Freedom Mode - Перемещение по осям X/Y/Z в свободном режиме
locked - Заблокировать скольжение родительского и дочернего Rigid Body вдоль
определенной оси ограничения.
limited - Родительский и дочерний Rigid Body может скользить вокруг определенной оси ограничения
на ограниченное расстояние.
free - Допускайте неограниченное перемещение родительских и дочерних Rigid Body вдоль определенной
оси ограничения.
Translate Limit Distance
Для осей, у которых установлен “Limit” движение, расстояние, на которое объекты могут перемещаться
от начальных смещений. Если для двух осей установлено значение Limit, это радиус плоского диска,
в котором им разрешено перемещаться. Если для всех трех осей установлено значение Limit, это радиус
сферы, в которой им разрешено перемещаться.
Translate Limit Bounciness
Когда два объекта скользят таким образом, что они врезаются в указанное выше предельное значение,
это определяет, насколько сильно они будут “отскакивать” от этого предела. Значение 0.0 не приведет
к отскоку, в то время как значение 1.0 приведет к очень жесткому limit (пределу).
Translate Limit Springiness
Если вы укажете значение предельной упругости (Limit Springiness) отличное от 0,0, ограничению будет
разрешено превышать указанное выше предельное значение преобразования. Как только он превысит предел,
значение этого атрибута указывает, насколько сильно он возвращается к пределу. Малые значения приводят к
очень легкому откату к пределу, в то время как большие значения вызывают очень сильное притяжение.
Значение 0.0 (по умолчанию) запрещает объекту превышать ограничение.
Translate Limit Damping
Если ограничению разрешено превышать предел (см. выше Translate Limit Springiness), это определяет
количество mud (грязи), через которую проходят Rigid Body, как только предел превышен. Малые значения не
вызывают замедления объектов; большие значения действуют как амортизаторы, затухание. Используйте это
затухание, чтобы предотвратить колебания на краю предела.
Рис.21
Breakable - Хрупкий (Рис.22)
Breakable Force/Torque - Хрупкий, усилие/Крутящий момент
Проверьте эти параметры, чтобы разрешить ограничению “разрываться” (становиться неактивным),
если применяется слишком большая сила. Опция “force” применяется к линейным
(растягивающим “stretching”, сжимающим “compressing”, сдвигающим “shearing”) силам, в то время
как опция “Torque” применяется к Angular (Twist) силам. Однако различие между силой и крутящим
моментом зависит от того, как ограничение реализовано внутри, что может быть неочевидным. Например,
то, что кажется Angular степенью свободы, может быть косвенно ограничено линейным ограничением.
Поэтому в большинстве практических применений вы должны установить как Максимальное усилие, так и
Максимальный крутящий момент на одинаковые значения.
Maximum
Минимальное force/torque, необходимое для снятия ограничения.
Рис.22
Springs - Пружины (упругость) Рис.23
Position Drive
Local Space - Вектор положения цели описывает положение в локальных координатах
родительского Rigid Body.
World Space - Вектор положения цели описывает положение в глобальном пространстве.
Goal Position - Позиция, позволяющая направить ограничение в сторону.
Goal Orientation - Кватернион, представляющий ориентацию относительно координатного
пространства родительского Rigid Body.
Spring X/Y/Z - Величина силы, необходимой для перемещения ограничения в целевое
положение (по оси), пропорциональная расстоянию от цели.
Spring Swing/Twist - Для привода “Swing and Twist” величина силы, приложенной для
приведения ограничения в движение к цели вращения, пропорциональна отклонению от цели.
Spring SLERP - Для привода “Spherical Linear Interpolation” величина силы, приложенной
для приведения ограничения к цели кватерниона, пропорциональна отклонению от цели.
Рис.23
Damping - Затухание (Рис.24)
Damping X/Y/Z - усилие для затухания, приложенное к spring (пружине).
Используйте это для сглаживания колебаний вокруг цели привода.
Damping Swing/Twist - Для привода “Swing and Twist” величина прилагаемой силы затухания.
Используйте это для сглаживания колебаний вокруг цели привода.
Damping SLERP - Для привода “Spherical Linear Interpolation” величина прилагаемой
силы демпфирования. Используйте это для сглаживания колебаний вокруг цели привода.
Рис.24
Advanced (Рис.25)
Reverse Parent/Child
Проверьте это, чтобы поменять местами, какой Rigid Body рассматривается как “Родительское” ограничение
(помечено как "1" в окне просмотра), а какой Rigid Body является "Дочерним" (помечено как "2" в окне
просмотра). Обратите внимание, что этот флажок не изменяет родительский элемент ограничения в иерархии
сцен; если вы хотите такого поведения, вы должны сами изменить родительский элемент ограничения.
Projection Mode
Проекция обеспечивает возможность исправления больших ошибок ограничений путем “проецирования”
ограничения обратно в допустимую конфигурацию. Вы можете проецировать только ошибки перемещения
(разделение ограничений или превышение ограничений) или ошибки перемещения и поворота. В некоторых
случаях проекция может негативно повлиять на поведение системы, в зависимости от того, как система
настроена. Это особенно верно для небольших расстояний проецирования, когда solver борется с тем, как
проецируется ограничение. Получение наилучшей конфигурации, как правило,
является вопросом экспериментов.
Disabled - Не используйте проекцию
DistanceIfApplicable - Только правильные проблемы с перемещением (быстрее).
AngleAndDistanceIfApplicable - Исправьте проблемы как перемещения так и поворота.
Projection Distance
Минимальная ошибка перемещения, за пределами которой проекция вступает в силу. Как правило,
вы должны установить для этого ненулевое значение; использование проекции даже для малейшей ошибки
ограничения может привести к проблемам с производительностью и стабильностью.
Projection Angle
Минимальная ошибка поворота в градусах, при превышении которой проекция вступает в силу. Как правило,
вы должны установить для этого ненулевое значение; использование проекции даже для малейшей ошибки
ограничения может привести к проблемам с производительностью и стабильностью.
Angular Drive Mode
Swing and Twist - Более интуитивный режим во многих ситуациях; однако существует особенность
при повороте на 180 градусов. Кроме того, привод не всегда будет следовать по кратчайшей дуге
между двумя ориентациями.
Spherical Linear Interpolation - Привод "SLERP" будет следовать по кратчайшей дуге между
парой angular конфигураций, но может вызвать неинтуитивные изменения в twist и swing ограничения.
Рис.25
Rig Type (Рис.26)
Dynamic - Вновь созданные Rigid Body будут настроены как динамические.
Kinematic - Вновь созданные Rigid Body будут настроены как кинематические.
Until Frame - До какого кадра Kinematic будет активным, после этого кадра переключится на Dynamic.
Рис.26
Display (Рис.27)
Display Icon - Показать/Скрыть значок RagDoll во вьюпорте Maya.
Icon Size - Настроить размер значка RagDoll во вьюпорте Maya.
Display Bones - Показать/Скрыть все формы (Shape) RagDoll.
Display Constrain - Показать/Скрыть ограничители (Constrain) RagDoll.
Рис.27
Template (Рис.28)
Save - Сохраните в файл на диск Rigid Body (их настройки и Physics Shape) для всех суставов в этом RagDoll.
Этот формат только для разработки, не используемый средой выполнения. Rigid Body сохраняются
на основе названия суставов; вы можете загрузить сохранённый RagDoll на другую иерархию суставов,
но они должны быть с теми же именами.
Load - Загрузите Rigid Body для суставов в RagDoll из ранее сохраненного файла, заменив все Rigid Body,
уже присутствующие на RagDoll. Rigid Body назначаются суставам на основе их имён. Любые суставы,
указанные в файле, но отсутствующие в текущем RagDoll, будут игнорироваться во время загрузки; для этого
вам не обязательно иметь идентификационную иерархию суставов в RagDoll и файле.
Рис.28
Joint Setup (Рис.29)
Pick - Выделяет суставы в Outliner, согласно выбранных суставов в списке выше.
Тем самым изменения будут применяться только к выбранным суставам в Outliner.
Add - Добавьте суставы в RagDoll. Новые суставы сразу будут с Rigid Body и Constrain
Remove - Удалите сустав(ы), выбранные в списке выше, из RagDoll. Любые Rigid Body и Constrain для
выбранного сустава(ов) также будут удалены.
Name (Ascending) - Переопределяет список суставов согласно алфавиту от A до Z или от Z до A
Search By name ... - Поиск суставов по имени. (находится под списком суставов)
Рис.29
Shape Setup (Рис.30)
Если выбрать сустав из списка в разделе “Joint Setup” то вам будут доступны следующие параметры,
для настройки его формы (Shape)
Add - При нажатии на эту кнопку отображается меню вариантов. Для каждого предустановленного
типа “Shapes” вы можете создать “Shapes”, подходящий для вашего Graphical Mesh, если Graphical Mesh
состоит из нескольких подобъектов, то вы можете обернуть каждый из них отдельным “Shapes”
и сделать их дочерними по отношению к элементу Rigid Body.
Around Self - Новая форма изначально будет иметь размер, соответствующий размеру Graphical объекта
Rigid Body. Это не “Live” привязка: изменения размера или формы Graphical объекта не приведут к тому,
что Physical Shape обновит свой размер или преобразование.
Around Object... - Выберите это, а затем выберите другой объект в сцене, чтобы новый Physical Shape был
определён по его размеру и помещён вокруг этого другого объекта. Это не “Live” привязка: изменения
размера или формы этого другого объекта не приведут к тому, что Physical Shape обновит свой размер или
преобразование. Если хотите вы даже можете удалить этот другой объект.
Attached to Child... - Выберите это, а затем выберите другой Physical Shape, который должен быть родителем
для этого нового Physical Shape, тем самым создаётся иерархия Physical Shape и в этом случаи будет работать
“Live” привязка: при перемещение или изменение размера родительского Physical Shape, будет изменятся
и дочерний Physical Shape.
Select - Перенесёт вас на вкладку атрибутов формы
Delete - удаляет выбранную форму. Примечание: Rigid Body без формы не могут повлиять на симуляцию.
Rename - Позволяет переименовать форму.
Рис.30
Shape Type - При создании или регенерации Rigid Body для суставов в RagDoll размер и форма каждого
Rigid Body определяются на основе вершин в исходных сетках, наилучшим образом связанных с каждым
суставом. Тип формы, который обертывает эти вершины, зависит от этой настройки.
Capsule - Поместите капсулу PhysX такого размера, чтобы она помещалась вокруг исходных вершин,
связанных с суставом. Капсулы менее точны, чем Convex Hull, но часто намного быстрее
во время симуляции.
Convex Hull - Создайте пользовательскую выпуклую оболочку вокруг вершин, связанных с суставом. Хотя
это соответствует форме лучше, чем капсула, обратите внимание, что одна выпуклая оболочка может
нагружать систему во время симуляции так же сильно как 20 капсул.
TriangleMesh - Создаёт самую подробную форму, которая максимально точно обёртывает Graphical Mesh.
Clothing - Поместите Clothing shape, размер которой соответствует размеру исходных вершин, связанных
с суставом. Типы Clothing shape являются единственным типом формы, поддерживаемым Clothing 3x,
и также выполняются очень быстро.
Size - Изменяет размер примитива согласно осям XYZ. Доступен для Box.
Radius - Изменяет радиус примитива. Доступен для Box, Capsule.
Height - Изменяет высоту примитива. Доступен для Capsule.
Inflate - Доступен для Convex Hull. При создании форм для Rigid Body значения инфляции,
превышающие 0,0, отодвигают форму от вершин исходной сетки. Раздувание Physics Shape обеспечивает
дополнительный буфер между Graphical Mesh и физическими объектами.
Небольшое силовое поле, если хотите.
Source Meshes (Рис.31)
Add - Добавьте дополнительный Graphical Mesh в RagDoll для использования при расчете shape Rigid Body.
Не проводится проверка, чтобы убедиться, что добавленный вами shape нанесён на стыки RagDoll;
однако только сетки, нанесенные на стыки, окажут какое-либо влияние на результат.
Remove - Удалите из RagDoll одну или несколько исходных сеток, выбранных в списке выше.
Эти Graphical Mesh больше не будут использоваться для расчета shape Rigid Body для соединений в RagDoll.
Рис.31
Mirror - Эта кнопка открывает диалоговое окно “Mirror Rigid Body RagDoll”, позволяющее копировать
выполненную работу с Rigid Body из одних суставов в другие. (Обычно это происходит с одной стороны
двуногого персонажа на другую, но поскольку копирование выполняется на основе имён суставов, вы можете
использовать это как для различных персонажей так и неодушевленных предметов). Rigid Body копируются
на основе названия суставов, а не положения их в иерархии суставов.
Mirror Ragdoll Rigid Bodies - Для правильного поиска, имена суставов должны быть разделены нижним пробелом, (пример: R_Arm или Right_Arm)
“Find bones named with” - Поиск суставов с которых будет взят Rigid Body для замены (неизменный).
“Mirror to bones replacing with” - Поиск суставов у которых надо заменить Rigid Body R (изменница).
Введите в окно “Find bones named with” префикс имени сустава, например: L_ затем
нажмите кнопку Tab что бы применить поиск. Введите в окно “Mirror to bones replacing with”
префикс имени сустава, например: R_ затем нажмите кнопку Tab. Далее в окне “Find bones named with”
из списке найденных суставов выделите те которые хотите изменить, в окне “Mirror to bones replacing with”
автоматически выделяться суставы противоположной стороны. С помощью “Flip across local axes” можно
установить согласно какой оси будет произведён “Mirror”, если ось не выбрана, то “Mirror” будет сделан на
противоположную сторону, согласно персонажа. Когда всё готово нажмите кнопку “Mirror Selected”,
появится окно с подтверждением действия, если всё в порядке то нажмите “yes”, тем самым вы примените
“Mirror” на выбранные суставы.
Rigid Body суставов с префиксом “R_” изменится согласно Rigid Body суставов с префиксом “L_”.