Bret Ware и Regan Ware опубликовали урок о создании и анимировании FPS рук для шутера с помощью 3ds Max, Unity 5 и Unreal Engine 4. В этой серии уроков вы узнаете об одном из способов создания пары First Person Shooter рук со скелетом, их анимировании и настройке в игровых движках. Также вы научитесь правильно экспортировать rig рук, оружия и связанные с ними анимации для использования в Unreal Engine и Unity. Эта статья - первая часть из серии уроков по Unity/UE4, ссылки на следующие части будут находиться в конце статьи. Оригинал смотрите в источнике: Item_42.com.

Риггинг рук в 3DS MAX

Подготовка Lowpoly mesh

Первая вещь, над которой стоит подумать - это поза по умолчанию. Вы можете создавать их в прямой нейтральной позе (T-Pose) или в той позе, в которой они, скорее всего, проводят большую часть времени (как на рисунке ниже). В первой случае нам будет просто создать риг рук, но сложнее смоделировать, а во втором - немного сложнее сделать аккуратный риг pre-posed рук. Я выбрал второй вариант. 
Перед тем, как вы начнете риггинг рук, убедитесь, что вы создали UV-map и текстуры для Lowpoly. Diffuse текстура будет очень полезна в 3ds Max, когда мы будем бороться с UV-растяжениями. Оно происходит, когда костям дается очень большой вес для выделенных полигонов или наборов вершин. Вы должны избегать этого для получения хорошего рига.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры)

Создание кастомного скелета в 3DS Max для FPS рук

1. Убедитесь, что центр ваших рук находится в 0,0,0. Есть простой способ сделать это. Первым делом выделите все элементы меша рук.

2. Перейдите во вкладку Hierarchy на правой боковой панели.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 2

3. Выберите Affect Pivot Only под Adjust Pivot и под Alignment, выберите Center of Object.

4. Снимите флажок с Affect Pivot Only и передвиньте ваш риг в 0,0,0.
В качестве альтернативы, если этот способ передвинул риг ваших рук слишком далеко назад от центральной точки, то переместите риг вперед, используя элементы трансформации, снова выберите Affect Pivot Only и поставьте центр к нулю с помощью панели, которая была в последнем изображении выше.
Мы начнем создавать скелет. Нажмите сочетание клавиш ALT+X на меше рук для перехода в режим Xray, так, что вы сможете видеть через сетку.

5. Нажмите правую клавишу мыши и выберите Freeze Selection, чтобы при работе со скелетом вы случайно не выделили меш рук.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 3

6. Перейдите в панель Animation и выберите Bone Tools.

7. Убедитесь, что вы находитесь в соответствующем окне просмотра. Нажмите T, чтобы перейти к ортогональному виду сверху. Нажмите F4, если вы хотите увидеть Wireframe при работе. Переключите Layer Explorer, выберите правую или левую руку, над которой вы хотите работать, создайте слой и назовите "bones_left" или "bones_right". Убедитесь, что это активный слой, переключив серую иконку слоя на синию. В отличие от моей картинки, сейчас вы будете иметь только один слой (bones_right) и, может быть, отдельный слой для зафиксированного меша.

8. Включите Bone Edit Mode и нажмите Create Bones. Создайте свою первую кость в окне Viewport. Когда вы это сделаете, следующая кость будет автоматически создаваться в позиции вашего курсора, поэтому вы с легкостью можете создать следующую кость. Создайте верхнюю часть руки, нижнюю часть и запястье. Двойной щелчок правой кнопки мыши, чтобы выйти из Create Bones Mode. Удалите Nub кость в конце руки, которую вы только что создали; в ней нет необходимости.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 4

9. Оставайтесь в режиме Bone Edit Mode. Измените размер ваших костей с помощью Fin Adjustment Tools. Измените ширину, высоту и сузьте под Bone Objects, чтобы удовлетворить размерам рук, с которыми вы работаете. Добавьте fins в панели Fin Panel, если вы захотите.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 5

10. Войдите в режим Perspective Mode нажатием P и отрегулируйте положение костей так, чтобы они соответствовали рукам. Постарайтесь сделать это настолько аккуратно, насколько это возможно. Никогда не крутите кость, которая опирается на другую кость, используя инструмент Rotate. Если вы поворачиваете кость, то убедитесь, что все остальные кости имеют аналогичную относительную трансформацию.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 6

11. Оставайтесь в Bone Edit Mode. Вы можете иногда (но не всегда) выравнивать кости, используя Align Tool. Выберите кость, которую вы будете выравнивать, нажмите Align Tool и выделите в  окне Viewport.

12. Появится панель Align Selection. Не используйте Align Position в случае, если кости уже связаны, например: lower arm и wrist/hand кости. Используйте опорную точку выбранной кости и нажмите Align Orientation для выпрямления кости. Если это не работает, используйте Select и Rotate, чтобы приблизить их выравнивание.

13. Снова перейдите в Create Bones. Создайте список костей для пальцев в Bone Edit Mode. На этот раз, держите Nub кость в конце иерархии. Выйдите из режима Bone Edit Mode и выберите все 4 кости пальцев. Удерживая SHIFT, перетащите вдоль оси. Это создаст копию. Сделайте 3 копии для 4 пальцев.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 7

14. Очень важно, чтобы кости не отклонялись от их осей. Они должны быть прямыми для нормальной работы. Вам, возможно, придется вращать кости пальцев в иерархии, чтобы подогнать их внутри меша, но убедитесь, что вращаете их ВНЕ режима Bone Edit Mode. Посмотрите на картинку. Чтобы сделать это проще, работайте в режиме Local Transformation Mode.

15. Отрегулируйте соединяющиеся опорные точки костей, войдя в Bone Edit Mode, используя инструменты Select и Move под Local Transformation. Опять же, не меняйте ориентацию костей в режиме Bone Edit Mode.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 7

16. Когда вам удалось разобраться с положением костей, нажмите Select и Link Tool.

17. Перетащите нижнюю часть каждой иерархии пальцев и используйте Select и Link Tool, тем самым кости будут дочерними кости руки, что означает, если вы повернете кость руки, то кости пальцев будут также двигаться вместе с ней.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 8

18. Повторите те же шаги для костей выше.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 9

19. Войдите в Bone Edit Mode. Создайте кость возле запястья, но не присваивайте к кости руки. Это будет ваш "Wrist Rotator", то есть вращатель для запястья. Эта кость будет очень важна для нас. Есть множество способов создать Wrist Rotator, но этот дает нам огромный контроль.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 10

20. Удалите кость Nub, выйдите из режима Create Bone Mode, но оставайтеь в Bone Edit Mode. Выберите Wrist Rotator. Выберите Align Tool, который вы использовали ранее, и кликните на кость lower arm, которая соединяется с костью запястья. Установите в панели Align Selection > Align Position и Align Orientation на все оси, как показано на картинке. Нажмите OK.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 11

21. В режиме Local Transformation используйте Move Tool для перетаскивания кости Wrist Rotator туда, где вы считаете она должна располагаться. Используйте Rotate Tool для вращения кости на 90 градусов по своей локальной оси. Убедитесь, что кость указывает в том же направлении, что и ладонь, как показано на картинке. Используйте Link Tool для связывания Wrist Rotator с костью lower arm, на котором она сейчас находится. Теперь у вас есть Wrist Rotator, который присоединен к нижней части руки и отцентрован по опорной точке. 

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 12

22. Создайте новую кость и поставьте в 0,0,0 - это ваша Root кость. Вам она нужна для последующего импорта в Unity и Unreal Engine 4. Существует куча способов сделать это, но мы будет использовать самый простой из них.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 13

23. Наступило время придумывать названия для наших костей. Убедитесь, что у вас до сих пор включен Layer Explorer. Существует prefix/suffix инструмент, который с этой задачей легко справится, но мы будем делать все вручную, чтобы избежать каких-либо глупых ошибок. В Layer Explorer нажмите Hierarchy View рядом с кнопкой Layer View. Теперь вы можете видеть, как каждая дочерняя кость относится к своему родителю.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 14

24. Посмотрите на мою иерархию на картинке. Корневая кость на вершине иерархии. Назовите ваши кости так: 
Корневая кость - "root_bone".
Плечевая кость - "r_arm_shoulder" (или "l_arm_shoulder", если вы начали создавать свои кости на левой стороне).
Нижняя кость руки - "r_arm_elbow" (потому что вертится на локтевом суставе),
Запястье - "r_arm_wrist".
Wrist Rotator - "r_arm_wrist_rotator".
Пальцы - "r_fingers" (Следуйте тем названиям, что приводятся на картинке)
Выберите все кости КРОМЕ "root_bone". Используя Layer Explorer в режиме Hierarchy, перетащите все кости в "root_bone". Теперь корневая кость делает свою работу.

25. Теперь у вас есть полный скелет руки. Гордитесь собой! Пришло время, чтобы отразить руку. Есть простой способ сделать это без работы неаккуратного Offset Dialogue.
Перейдите в режим Bone Edit Mode. Нажмите CTRL+A, чтобы выделить все кости (убедитесь, что ничего больше за костями на сцене не выделено). Нажмите "Mirror". Отраженные кости должны заполнить пространство, где находятся другие кости. Переименуйте кости, поменяв префикс "R" на "L" и удалите "(mirrored)". В Максе есть инструмент для этой работы, но он неудобен. Удалите "root_bone" "(mirrored)". Переместите вашу новую "I_am_shoulder" иерархию под "root_bone". "r_arm_wrist_rotator" может быть отображен некорректно. Если это случилось, удалите деформированные зеркальные кости и вручную сделайте отражение костей, повторяя предыдущие шаги, убедитесь, что координаты левой и правой кости совпадают.

Unity 5 уроки - анимация и риггинг FPS рук (Создание игры) Изображение 16

26. Теперь у вас есть две одинаковые руки!
На этом мы закончим первую часть серии уроков по риггингу и анимации FPS рук. В следующей части мы разберемся с IK-system и контроллерами, научимся работать с весами и, конечно же, экспортировать все это добро в игровые движки Unity и Unreal Engine.

Вторая часть урока - devgam.
Последняя часть урока - devgam.