- •Введение в реактор
- •Rigid Bodies (Жесткие тела)
- •Получение коллекции
- •Основы имитации
- •Типы геометрии
- •Геометрия имитации
- •Построение жесткого тела
- •Создание покачивания
- •Другой подход
- •Точность имитации
- •Сборка имитации
- •Использование тел с анимацией
- •Подготовка вывода
- •Уменьшение размера файла
- •Тряпичная кукла
- •Настройка сцены с куклой
- •Придание объектам физических свойств
- •Соединение конечностей
- •Использование ограничителей Hinge
- •Настройка суставов (Knees, Elbows, Ankles, Wrists)
- •Применение ограничителейRagDoll
- •1. Предок
- •2. Потомок
- •1. Twist Min.
- •Создание анимации
Применение ограничителейRagDoll
В предыдущем уроке было закончено соединение простейших костей тела. Теперь следует подумать о соединении плеч и бедер. Суставы плеч и бедер сложнее колен и локтей, поскольку кроме поворота они должны двигаться с большей свободой, чем может дать шарнир. Для суставов этого типа будут использованы ограничители Rag Doll.
Они довольно сложны, так что этот урок служит кратким их обзором.
На следующем рисунке два объекта соединены ограничителем Rag Doll.
A. Оси кручения
B. Плоские оси
C. Twist x Plane Axis (outward)
1. Предок
2. Потомок
Ограничитель Rag Doll дает три оси по важности: Twist Axis, Plane Axis, Twist x Plane Axis. Ось кручения является, вероятно, простейшей для понимания. Поворот вытянутой руки смещает большой палец сверху вниз. Это движение является рядом поворотов вокруг осей кручения плеча и локтя. Обычно ось кручения должна иметь длину дочернего тела сустава. В реакторе можно указать, как далеко с каждой стороны от начала можно крутить. Симметрия не обязательна.
A. Twist Axis
B. Plane Axis
C. Twist x Plane Axis (outward)
1. Twist Min.
2. Twist Max.
3. Twist Range
A. Twist Axis
B. Plane Axis
C. Twist x Plane Axis (outward)
1. Twist Range
Две другие оси взаимосвязаны и вместе определяют, какой объем позволено занимать дочернему телу. Так что сначала будут показаны конические углы, внутри которых дочернему телу позволено двигаться:
A. Twist Axis
B. Plane Axis
C. Twist x Plane Axis (outward)
1. Cone Min.
2. Cone Max.
A. Twist Axis
B. Plane Axis
C. Twist x Plane Axis (outward)
На рисунке ограничителя для плеча зеленый конус дает возможные положения кости плеча в суставе. Однако придется уточнить разрешенный объем с учетом plane axis и заданием plane limits. В этих пределах лежат два соседних конуса:
A. Twist Axis
B. Plane Axis
C. Twist x Plane Axis (outward)
1. Plane
2. Plane Min. Cone
3. Plane Max. Cone
4. Plane Min.
5. Plane Max.
A. Twist Axis
B. Plane Axis
C. Twist x Plane Axis (outward)
1. Plane
2. Plane Min. Cone
3. Plane Max. Cone
Это позволяет создать два разных сценария; в одном конусы, созданные плоскими ограничениями, пересекаются с конусом, созданным коническими углами, а в другом нет:
A. Twist Axis
C. Twist x Plane Axis
1. Plane Min. Cone
2. Plane Max. Cone
A. Twist Axis
C. Twist x Plane Axis
1. Plane Min. Cone
2. Plane Max. Cone
Если объемы не пересекаются, плоские пределы (plane limits) в ограничителе не дают эффекта; однако допущение пересечения и с разумным объемом перекрытия требует ограничить положение дочернего тела.
A. Twist Axis
B. Plane Axis
C. Twist x Plane Axis
Эти параметры следует настроить для правильного движения персонажа в реакторе.
Настройка бедер, спины, шеи и плеч (Hips, Back, Neck and Shoulders)
Продолжение или загрузка файла character02.max из папки \tutorials\reactor\ragdoll.
Поскольку создание и настройка ограничителей Rag Doll выполняется одинаково, будет настроен только один для плеч, и дана таблица для остальных суставов.
Создание ограничителей Rag Doll для плеч:
Панель Create > Helpers > reactor > Object Type > Ragdoll.
Создание щелчком в окне вспомогательного объекта Ragdoll.
Теперь следует указать связанные ограничителем объекты.
В свитке Properties на панели Modify щелчок кнопки None возле Child.
Клавишей H вызов диалога Object Select и выбор RThigh.
На кнопке возле Child теперь значится RThigh.
Включение Parent. Это указывает реактору на связывание ограничителем двух тел.
Щелчок кнопки None рядом с Parent.
Клавишей H вызов диалога Pick Object, выделение Pelvis и щелчок Pick.
На кнопке возле Parent теперь должно стоять Pelvis (таз), а сцена должна быть такова:
Теперь требуется подобрать пределы ограничителя Rag Doll для поведения, как в реальном суставе бедра:
В группе Limits свитка Properties на панели Modify ввод Twist Min = –5.0 и Twist Max = 5.0.
Ввод Cone Min = –25.0 и Cone Max = 55.0.
Ввод Plane Min = –45.0 и Plane Max = 2.5.
Первый ограничитель Rag Doll настроен. Теперь после успешного окончания настройки первого ограничителя можно тем же способом настроить остальные суставы.
Создание ограничителей Ragdoll для спины, шеи и плеч:
В таблице приведен список связываемых костей, ограничителей с именами и параметрами. Можно использовать эти данные для оставшихся в сцене ограничителей Rag Doll.
-
Constraint Name
Child
Parent
Twist Min
Twist Max
Cone Min
Cone Max
Plane Min
Plane Max
RHipJoint
RThigh
Pelvis
-5.0
5.0
-25.0
55.0
-45.0
2.5
LHipJoint
LThigh
Pelvis
-5.0
5.0
-55.0
25.0
-45.0
2.5
BackJoint1
Spine1
Pelvis
-1.0
1.0
-30.0
30.0
-50.0
5.0
BackJoint2
Spine2
Spine1
-1.0
1.0
-8.0
8.0
-6.0
3.0
BackJoint3
Spine3
Spine2
-1.0
1.0
-8.0
8.0
-6.0
3.0
RShoulderJoint
RUpperArm
Spine3
-5.0
5.0
-75.0
85.0
-5.0
65.0
LShoulderJoint
LUpperArm
Spine3
-5.0
5.0
-85.0
75.0
-5.0
65.0
NeckJoint
Head
Spine3
-5.0
5.0
-45.0
45.0
-15.0
15.0
После создания всех этих ограничителей Rag Doll сцена должна выглядеть так:
Остается добавить эти новые ограничители Rag Doll в решатель Constraint Solver.
Добавление ограничителей Rag Doll в Constraint Solver:
Клавишей H вызов диалога и выбор объекта CSolver01.
в свитке Properties на панели Modify щелчок Add.
Выбор всех ограничителей Rag Doll и щелчок Select.
Теперь Constraint Solver содержит все ограничители, и сцена подготовлена к просмотру.
Сохранение сцены: File > Save As my_character03.max.
Preview your character:
Панель Utility > reactor > Preview & Animation > Preview In Window.
Теперь персонаж должен скатываться по лестницам правильно.