Вторая часть из серии уроков по анимированию и риггингу FPS рук для игровых движков. В этой части мы будем настраивать IK и контроллеры. Первая часть статьи: devgam.com. Оригинал статьи на английском смотрите в источнике: Item_42.com.

Настройка системы IK и контроллеров.

Сейчас на сцене находится готовый скелет наших рук. Теперь мы будем использовать IK контроллеры для создания ограничителей на вращение костей.

27. Выберите кончик указательного пальца и перейдите к панели Animation. Выберите IK Solvers и нажмите HI Solver.

28. Соедините его с нижней костью указательного пальца. Этим вы создадите IK chain. Проверьте цепь, перемещая IK Goal (синяя крестообразная ручка)

IK в 3ds Max, игровые руки для создания игры

29. Добавьте HI Solvers к остальным пальцам. Исправьте положение IK Goals с глобальной системы координат на локальную, используя Align Tool на "_high" кости так, чтобы Z ось была направлена вправо, ось X - вверх, Y - вниз. Это позволит вам передвигать IK Goals красиво и в правильной системе координат.

IK контроллеры 3ds Max - Анимация и риггинг

30. Используйте инструмент Link Tool для соединения всех IK пальцев к кости "arm_wrist".

Unity 5 - уроки: создание FPS рук

31. Протестируйте вашу IK цепь, выбрав её и передвинув вперед по оси Y.

Unity 5 уроки - создание FPS игры Изображение 1

32. Настройте другую IK цепь, соединив "arm_shoulder" с "arm_wrist".

33. Теперь мы сделаем контроллер для этой цепи и запястья. В правой верхней панели Create перейдите во вкладку Shape. Не переключая вкладку Spline, выберите Circle. Нарисуйте произвольный сплайн круг.

34. Нажмите правую клавишу мышки в Modifier box и преобразуйте в Editable Spline.

35. Расширьте окно Editable Spline. Нажмите CTRL + A в окне Viewport. Зажмите SHIFT и поверните на 90 градусов для того, чтобы создать новый сплайн, и ещё один, пока вы не получите готовый контроллер.

Unity 5 уроки, Unreal Engine 4 уроки, 3ds Max уроки

36. Нажмите "Enable in Viewport" под Rendering на панели справа. Теперь у нас есть рендер версия нашего контроллера в окне Viewport. Отрегулируйте радиальные параметры по своему вкусу. Я предпочитаю 4 стороны и толщину = 0,4. Если вам необходимо масштабировать ваш контроллер, не делайте этого с нормальным Select и Scale Tool, перейдите в Editable Spline > Modifier List > Spline > Select и Scale

IK Controller 3ds Max

37. Вы также можете нарисовать линию между вершинами сплайна, используя Grid и Snap Settings. Выберите Grid Points и End Points в квадратном окне, нажмите Create Line под панелью Geometry и после нарисуйте линию между двумя точками вашего контроллера. Это пригодится для того, чтобы видеть вращения нашего IK контроллера.

3ds Max controller IK - Unity 5 уроки

38. Сделайте выравнивание вашего контроллера с костью "arm_wrist" по всем осям.

Unity 5 уроки - изображение 2

39. Переименуйте ваш новый IK контроллер в "arm_wrist_ik_controller" с соответствующим Left или Right префиксом. Теперь выберите IK, выберите Link Tool, чтобы связать его с "arm_wrist_ik_controller". Теперь вы можете перемещать IK контроллер, а wrist IK будет следовать за первым.

Unity 5 уроки - создание FPS шутера с 3ds MAX

40. Выберите кость "arn_wrist". Перейдите в панель Animation. Выберите "Constaints" и "Orientation Constaints". Свяжите Orientation Constaints с "arm_wrist_ik_controller". Теперь запястье и остальная часть руки не будет зависеть от контроллера IK. Это очень полезно для аниматоров, так что они не должны корректировать вращение руки.

41. Чтобы упростить процесс анимирования, мы добавим пользовательский атрибут под названием "Elbow Swivel", в случае, если IK контроллер для запястья движется некорректно. Выберите "arm_wrist_ik_controller". Перейдите к списку модификаторов и добавьте модификатор Attribute Holder.

42. С выделенным модификатором Attribute Holder, нажмите ALT+1 в окне Viewport. Появится окно параметров. Под UI Type, назовите параметр "ElbowSwivel". Под Float UI Options поставьте ширину = 100. Установите диапазон от -10 до +10. Установите выравнивание на "Right" (или "Left", если вы это делаете с левой рукой). Нажмите "Add", чтобы добавить кастомный атрибут к модификатору "Attribute Holder". Он появится на правой панели.

43. Перейдите во вкладку "Animation" и окройте окно "Reactions Manager". С выбранным "arm_wrist_ik_controller", нажмите на зеленую кнопку PLUS сверху. Потом выберите "arm_wrist_ik_controller". Перейдите в Modified Object > Custom_Attributes > ElbowSwivel. Этим вы добавили "Master". Теперь выберите IK запястья (синий крестик). Нажмите белую кнопку PLUS, находящуюся слева на панели Reaction Manager. Свяжите со значением Swivel Angle. Нажмите на стрелку с оранжевой точкой, чтобы добавить два новых состояния.

44. Переименуйте Attribute Holder в "Elbow Swivel Right" (или Elbow Swivel Left). Попробуйте этот атрибут. Он должен качаться назад и вперед. Теперь мы сделали пользовательский атрибут для учета потенциального неверного движения IK. 

45. Создайте новый сплайн контроллер, на этот раз только с одной остью. Используйте инструмент Align, чтобы выровнять его кости Wrist Rotator, "arm_wrist_rotator_controller".

3ds Max Fps hands

46. Есть несколько способов, чтобы ограничить контроллер. Вы можете сделать это самостоятельно или следовать моим шагам. Если вы отклонились от материала урока или сделали что-то не так, то вы можете самостоятельно выяснить, подключены ли кости и котроллер. Во-первых, свяжите кость Wrist Rotator с локтем, поместите его под локоть в панели иерархии на Layer Explorer. Добавьте Orientation Constraint с кости wrist rotator к wrist rotator controller.

Unity / Unreal Engine 4 Fps hands

47. Выберите контроллер wrist rotator и перейдите в Hierarchy Panel справа. Выберите Link Info Tab. Зафиксируйте по каждой оси, кроме Z. Теперь вы не можете случайно переместить контроллер в любом направлении, кроме той оси, которую мы выбрали выше.

Unity 5 уроки - создания FPS шутера (Часть 2)

48. Теперь мы создадим куб, который будет контролировать обе руки скелета, не затрагивая остальные кости в иерархии. Перейдите в Create панель и создайте Point Helper. Измените параметр Display коробки. Отрегулируйте её размер. Совместите Point Helper с верхней частью руки. С выбранной костью руки, используйте Position Constraint между "upper_arm" и Point Helper. Переименуйте Point Helper в "shoulder_controller", прибавьте префикс "left" или "right".

49. Насколько я знаю, нет способа, который бы отразил все, что мы сделали, на другую руку. Поэтому следуйте за установкой ещё раз, чтобы создать контроллер для другой руки. Это не займет много времени теперь, когда вы знаете, что делать.

Unity 5 уроки - создание FPS шутера в Unity3d - Изображение 3

На этом мы закончим вторую часть урока "Анимирование и риггинг FPS рук". В заключительной части вы научитесь распределять вес по костям и экспортировать риг с анимациями в игровые движки Unreal Engine и Unity.

Часть 3 - devgam.com.