barrel_jt - сустав на конце дула пушки сделать дочерним по отношению к
barrel_pivot_jt - сустав в месте вращения пушки
barrel_pivot_jt сделать дочерним по отношению к turret_jt - сустав башни
turret_jt
┗ barrel_pivot_jt
┗ barrel_jt
Настроить карту весов башни:
Windows > General Editor > Component Editor - переключится на вкладку Smooth Skins
Выбрать ту часть дула которая будет двигаться при выстреле, затем:
выделить все вертексы дула, далее:
на вкладке Smooth Skins - в столбце barrel_jt выставить значение 1
(после привязки, можно спрятать привязанные вертексычтоб не путаться HotKey “H”).
Выделить вертексы маски орудия, она находится между башней и пушкой,
небольшая часть которая держит пушку
(эта часть будет вращаться по оси X вместе с пушкой)
на вкладке Smooth Skins - в столбце barrel_pivot_jt выставить значение 1
(после привязки, можно спрятать привязанные вертексы чтоб не путаться HotKey “H”).
Выделить оставшиеся вертексы башни
на вкладке Smooth Skins - в столбце turret_jt выставить значение 1
Ctrl+Shift+H - Отобразить ранее спрятанные объекты, либо
Display > Show > All - отобразить все спрятанные объекты
в Outliner отобразятся ортогональные камеры, их надо спрятать HotKey “H”.
Проверить карту весов: повращать суставы башни, геометрия башни танка не должна сминаться
в случаи деформации геометрии башни, можно исправить с помощью:
Component Editor или Skin > Paint Skin Weights
в Outliner переместить turret_mesh (башня) - в группу geometry (Рис. 38)
turret_jt сделать дочерним по отношению к hull_jt (Рис. 38)
выделить turret_ctrl - контроллер пушки, в Channel Box выделить:
Rotate X-Y-Z;
Scale X-Y-Z;
Visibility
RMB > Lock and Hide Selected
barrel_aim_pt сделать дочерним по отношению к turret_aim_pt
Выделить turret_ctrl + barrel_aim_pt далее:
HotBox > Constrain > Aim - выставить в поле Aim vector:
X 0.000
Y 0.000
Z 1.000
Переключить выпадающее меню на Object up
вписать в строку World up object: turret_up_object (Рис. 41) нажать Apply
Выделить turret_aim_target_pt + turret_aim_pt далее:
HotBox > Constrain > Aim - выставить в поле Aim vector:
X 0.000
Y 0.000
Z 1.000
Переключить выпадающее меню World up object > Object up
вписать в строку World up object: turret_up_object (Рис. 41) затем нажать Apply
Выделить turret_ctrl + turret_aim_target_pt далее:
HotBox > Constrain > Point - сделать настройки как на Рис. 42 затем нажать Apply
Windows > Node Editor - добавить следующие суставы и локаторы:
turret_jt + barrel_pivot_jt + barrel_jt + turret_aim_pt + barrel_aim_pt
и нажать Add Selected nodes to graph (кнопка вверху окна Node Editor)
turret_aim_pt - с пр.вывода: Rotate > Rotate Y
соединить с лев. вводом - turret_jt > Rotate > Rotate Y
barrel_aim_pt - с пр.вывода: Rotate > Rotate Х
соединить с лев. вводом - barrel_pivot_jt > Rotate > Rotate Х
Проверка: при перемещении turret_ctrl - контроллер пушки,
дуло должно следовать за контроллером
(после проверки возвратить значения в исходное состояние)
Выделить turret_aim_target_pt + turret_aim_pt + turret_up_object далее:
сгруппировать (Ctrl+G) переименовать в turret_aim_grp переместить в группу rig
Выделить drive_ctrl + группу turret_aim_grp далее:
HotBox > Constrein > Parent - проверить настройки Рис.43 затем нажать Apply
Выделить локаторы turret_aim_pt + hull_range_pt далее:
HotBox > Constrein > Parent - проверить настройки Рис.43 затем нажать Apply
Windows > Node Editor выделить hull_recoil_pt + hull_range_pt
и нажать Add Selected nodes to graph (кнопка вверху окна Node Editor)
в Node Editor клик по пустому месту RMB - выбрать Create Node
в открывшимся окне Utilities > multiply Divide - переименовать в hull_multiplyDivide1
hull_range_pt - с пр.вывода: Translate > Translate
соединить с лев. вводом - hull_multiplyDivide1 > Input 1
дабл клик по ноде hull_multiplyDivide1 откроются атрибуты Multiply-Divide
(выпадающие меню Operation переключить на: Divide)
во вкладке Multiply-Divide Attributes > input 2 (значения примерные)
по оси X 50.000
по оси Y 1.000
по оси Z -50.000 (минус)
hull_multiplyDivide1 - с пр.вывода: Output > Output X
соединить с лев. вводом - hull_recoil_pt > Rotate > Rotate Z
hull_multiplyDivide1 - с пр.вывода: Output > Output Z
соединить с лев. вводом - hull_recoil_pt > Rotate > Rotate X
(во вьюпорте изменится наклон локатора hull_recoil_pt это угол отдачи при выстреле)
Выделить в Outliner локатор hull_recoil_pt + сустав hull_jt далее:
HotBox > Constrain > Orient - сверить с настройками рис.7 и нажать Apply
если необходимо то можно настроить наклон отдачи для этого:
выделить hull_jt перейти в Channel box > SHAPES
Hull Ctrl W0 значение по умолчанию 1
Hull Recoil W1 значение по умолчанию 1
(после настройки должен быть крен танка, именно на столько танк будет крениться от выстрела)
Windows > Node Editor выделить в Outliner - hull_jt и нажать input connections
turret_ctrl - с пр.вывода: Recoil
соединить с лев. вводом - hull_jt_orientConstrain1 > Hull Recoil Pt W1 (буквы курсивом)
в Node Editor клик по пустому месту RMB выбрать Create Node
в открывшимся окне Utilities > Reverse - переименовать в recoil_reverse
turret_ctrl - с пр.вывода: Recoil
соединить с лев. вводом - recoil_reverse > Input > Input X
recoil_reverse - с пр.вывода: Output > Output X
соединить с лев. вводом - hull_jt_orientConstrain1 > Hull Ctrl W0 (буквы курсивом)
Проверка: выделить turret_ctrl затем в Channel Box выбрать “Recoil”
зажать RMB и перемещать мышку, корпус двигается по направлению пушки
повернуть пушку с помощью turret_ctrl в Channel Box выбрать “Recoil”
зажать RMB и перемещать мышку, корпус кренится по направлению пушки
(после проверки возвратить значения в исходное состояние)
Выделить локаторы hull_recoil_pt + hull_range_pt переместить в группу turret_aim_grp
Выделить barrel_jt + Translate Z (Channel Box)
далее: Channel Box > Edit > Set Driven Key (Рис.44)
выделить turret_ctrl и нажать Load Driver и выбрать Fire (Рис.45)
выделить turret_ctrl затем в Channel Box > Fire выставить 0 (ноль)
и нажать в окне Set Driven Key > кнопку Key
далее: выделить turret_ctrl затем в Channel Box > Fire выставить 50
и нажать в окне Set Driven Key > кнопку Key
далее: выделить turret_ctrl нажать Load Driven затем, выбрать Recoil (Рис.46) и нажать кнопку Key
выделить turret_ctrl затем в Channel Box > Fire выставить 0 (ноль)
и нажать кнопку Key в окне Set Driven Key (Рис.46) после, можно закрыть Set Driven Key
Выделить barrel_jt + turret_ctrl нажать input connections
в Node Editor выделить turret_ctrl_recoil + barrel_jt_translate затем:
HotBox > Create > Sets > Set - зайти в настройки (Add to a partition: две галочки должны быть сняты)
вписать в поле Name: Set_Driven_keys и нажать Apply
это действие добавит в Outliner (вниз) - ссылку Set_Driven_keys
можно использовать для быстрого доступа (Рис. 47)
Открыть Windows > Animation > Graph Editor - выделить turret_ctrl (появится в Graph Editor)
Перейти в Channel Box > Fire 0 (ноль) > RMB > Key Selected
переместиться на ~ 50 кадров (Time Line)
Изменить значение в Channel Box > Fire 50 > RMB > Key Selected
Настроить анимацию отдачи дула
выделить в Outliner: Set_Driven_keys > barrel_jt_translateZ
добавить ключи в Graph Editor и изменить согласно Рис.49
что бы поставить ключ в Graph Editor
выделить кривую анимации, Keys > Insert Key Tool
зажать LBM и перенести вертикальную линию на место где надо сделать ключ.
Включать Play (Alt+V - Play; Shift+Alt+V - перемотать в начало Time Line)
и настраивать отдачу выстрела изменяя кривую анимации в Graph Editor
Выделить: Outliner > Set_Driven_keys > turret_ctrl_recoil
добавить ключи в Graph Editor и изменить согласно Рис. 50
Переместить root_jt + drive_ctrl в группу tank и сверить финальную структуру рига Рис. 51 - Рис. 52
что бы не запутаться:
обязательно схороните готовый риг отдельно от других сохранений рига (File > Save As).
Поздравляю!
пункт 20.7 это завершающее действие по ригу танка,
далее создание анимации ♪♫ ㋛ ♪
Create > Polygon Primitives > Plane - растянуть в виде дороги,
подразделить Plane - Channel Box > INPUTS
(если история выключена то параметр Subdivisions не доступен)
клик RMB по Plane > Vertex - использовать Soft Select
(HotKey “B” если зажать MMB + B - можно менять радиус воздействия)
деформировать поверхность “Plane” на пути гусениц танка (Рис. 53)
Открыть Constrain > Geometry - зайти в настройки
выбрать плоскость Plane + r_wheel_01_ctrl и нажать Apply (сделать для всех отбойников)
Проверка: во вьюпорте при перемещении, вращении контроллера “drive_ctrl”
гусеницы и колёса учитывают неровности поверхности (Plane)
Выделить drive_ctrl поставить ключ (HotKey “S”) когда танк находится в точке А,
переместить танк в точку Б и поставить второй ключ
так же анимировать пушку с помощью turret_ctrl
что-б анимировать выстрелы - выделить turret_ctrl - перейти в Channel Box > Fire
корректировать анимацию корпуса с помощью hull_ctrl
для удобства можно включить Auto Key (кнопка с плюсом рядом с Time Line)
Auto Key - автоматически будет создавать ключи при изменении объектов.
Выделить всю иерархию суставов root_jt далее:
Edit > Keys > Bake Simulation - зайти в настройки Рис.54 и нажать Apply
выделить группы geometry + root_jt разгруппировать их из группы tank,
затем можно удалить группу tank
после этого можно экспортировать анимацию танка:
File > Export All - выбрать формат который может экспортировать анимацию, например формат .FBX
Конец.