Modular Rig в UnrealEngine, проблемы и их решения
Хочу заметить сразу, что модулярный риг пока очень сырой, и нужно прям знать все моменты, чтобы смочь его использовать в продакшене, и то на свой страх и риск)
Первая и основная проблема - это неправильная ориентация костей, для исправления этого вам нужно активировать плагин Skeletal Mesh Editing Tools
Я буду разбирать процесс на примере создания рига для вот такого дракоши
Переходим в скелет персонажа и делаем авто ориентацию всех костей, со следующими параметрами. Анимации если были на этом скелете все слетят, поэтому лучше сделать копию скелета, чтобы потом переретаргетить анимации, при необходимости.
Сперва наперво добавляем сокеты для плеч, если названия костей отличаются от стандартного скелета UE5, так ключицы подхватятся верно. Назовем их как у скелета UE5. Можно добавить также сокеты и для бёдер, если они не будут верно подхватываться.
После добавляем модуль спины - Spine и два модуля Shoulder, для правой и левой ключицы. Размеры и положение контроллов можно менять в Details модуля
Дальше добавляем модули ног.
Скорее всего при переключении IKFk колени у вас будут гулять или вообще выворачиваться. Это потому что анриал не знает как ему правильно простроить пол вектор. Чтобы изменить эту ситуацию, делаем двойной клик на модуле Arm и в открывшемся блюпринте в поиске вбиваем Compute и жмем Enter. Выбираем 2 ноды ComputePoleVector и ставим в них галочку у Draw Transform, после нажимаем сейв. Эти функции одинаковые в руках и ногах, поэтому эти изменения отразятся на ногах так же. После этого ноги скорее всего заработают верно, если нет, то нужно вручную поиграть с изменением ориентации в Edit Skeleton у цепочек для конкретной ноги, которую крутит.
Расстояние пол вектора от ноги и размер контроллера изменяется в Details соответствующего модуля.
Далее в иерархию Leg добавляем модуль Foot, тут в зависимости от конструкции ноги можно по разному поиграть с назначением костей на Ball Foot Bone. В моем случае я выбрал, что за ИК я кручу всей ногой, за квадратный контрол ниже я управляю сгибом в этом суставе и суставом выше, с фиксацией стопы, а за контрол стрелочки я могу крутить стопой отдельно.
Для добавления пальцев, необходимо добавить соккеты к концевым костям пальцев. Выбрать необходимый парент и увеличить размер контроллов. Если возникают трудности с определением парента и пальцы ведут себя неверно при смещении какого либо из контролов ноги, можно считерить и добавить контрол на конкретную кость через Rig Hierarchy и потом её сделать парентом. Собственно я так и поступил, те модули пальцев не нужно добавлять в иерархию ноги.
Тоже самое проделываем для противоположной стороны. В результате ноги IKFK с когтями готовы.
Теперь заригаем хвост, с возможностью включения динамики на нем. Добавляем сокет в первую кость хвоста, добавляем модуль хвоста в спину. Динамика активируется галочкой в настройках модуля.
Переходим к рукам. Плечи - ключицы мы уже настроили, теперь добавляем в них модуль Arm. В принципе тут все по аналогии с ногами. Если возникают проблемы со скручиванием при IKFK свитче, нужно поиграть с ориентацией костей рук в скелете. Например в моем случае предплечье на правой руке никак не хотело вставать правильно и ориентация вот с такими параметрами исправила ситуацию.
Пальцы набрасываем на соответствующие сокеты, паренты тут подхватываются автоматом, ничего дополнительного делать не нужно. Только поменять размер контролов. Если ориентация какаих нибудь пальцев не верная, это будет видно по созданным контролам - лучше пройтись по пальцам этой руки и сделать авто ориентацию или выставить желаемую ориентацию вручную.
Следующий модуль - Neck. Перемещаем его в Spine.
Для того чтобы заригать челюсть, добавляем к кости челюсти сокет и тянем на этот сокет модуль AddControl. переносим его в иерархии под модуль Neck, чтобы выбрать парентом Head.
Итак у нас остались только крылья. Я их заригаю с помощью модулей Arm и Finger. По аналогии как мы делали с руками. Добавляем необходимые сокеты, перетаскиваем в них модули, корректируем ориентацию при необходимости, проверяя на свитче IKFK, добавляем пальцы. Настройки IKFK свитча лучше вынести в хип контрол или контрол груди, чтобы не путаться с ними в глобальном контролле, если не переименовывать модуль и поставить его в глобальный контрол то один свитч будет одновременно переключать и руку и крыло.
Казалось бы риг готов.
Но есть одно большое НО, прям огромное. ХЗ как ЭПИКИ выпустили систему в таком виде. Если вы будете запекать анимацию со скелета на свой модульный риг, даже если он на скелете UE5, у вас расползутся плечи, а если это нестандартный скелет с разными конечностями, то скорее всего много что расползется. Будем ждать обновлений и исправлений, а пока есть костыльные способы исправления в ручном режиме этих моментов.