Скачать плагин UE
Ниже приведены ссылки на скачивание. Для разработки исходного кода UE вы можете скомпилировать его самостоятельно. В настоящее время плагин применим только к версии UE5.
Инструкции по использованию UE
-
Создайте новый проект в UE
Подойдут как Blueprint, так и C++ проекты. Если вам нужно дорабатывать плагин, вам необходимо создать проект
C++, импортировать персонажа (поза по умолчанию персонажа должна бытьT-Pose, а неA-Pose, иначе производительность рук будет ненормальной), затем открыть папку проекта, создать новую папкуPlugins, а затем поместитьrebocap_unreal_engine_pluginвPlugins. Например, если вы создаете проектtestV3, общая структура каталогов выглядит следующим образом:
-
Снова откройте UE и он автоматически скомпилируется [исходный код опубликован, поэтому он должен быть совместим со всеми версиями]
При дальнейшей разработке и отладке плагина вы можете использовать Rider, чтобы напрямую открыть
[name].uprojectдля разработки и удобной отладки.Вы можете использовать Rider для компиляции и проверки на ошибки компиляции. Если вы используете UE для автоматической компиляции и возникают ошибки, проверьте
Saved/Logs/[name].Log.Log, выводимыйUE, обычно имеет проблемы с китайской кодировкой, и вам может потребоваться изменить кодировку системы наUTF-8для правильного просмотра. -
Шаги привязки с келета
-
Нажмите на ассет персонажа Skeleton Mesh, щелкните правой кнопкой мыши, чтобы создать новый анимационный блюпринт, и дважды щелкните, чтобы отредактировать анимационный блюпринт. [Если неясно, рекомендуется посмотреть видео]
-
Щелкните правой кнопкой мыши для поиска
Rebocap, выберитеRebocap Body Poseи создайте узел, затем подключите человечка с правой стороны узла кResultвыходной позы. -
В левом нижнем углу страницы редактирования блюпринта нажмите плюсик, чтобы создать новую переменную. Тип переменной необходимо найти: ищите
Rebocap, выберитеRebocapMapData, ссылку на класс, затем перетащите переменную в узелRetargetAsset, только что созданный в блюпринте, и автоматически сгенерируется узел переменной. Затем нажмите кнопку компиляции в левом верхнем углу. -
Нажмите на только что созданный узел переменной, затем в значении по умолчанию справа нажмите плюсик, чтобы создать новый ассет
Map, который автоматически перейдет на новую страницу. На новой странице пользователю необходимо самостоятельно заполнить сопоставление скелета. Обратите внимание, что рекомендуется заполнить все 24 узла, вы можете заполнять в соответствии с именами скелетовAvatar.Имена скелетов можно выбирать автоматически, нажав на первого светло-голубого человечка-скелета на верхней панели страницы блюпринта для просмотра соответствующих точек каждого скелета. 24 узла в
Rebocapявляются стандартными точками скелета человека, а имена скелетов вRebocapназваны по начальной точке кости скелета. Например, вVRMкость с названиемLeftUpperLegначинается на бедре, поэтому вRebocapона называетсяL_Hip, начальной точкойLeftFootявляется лодыжка, поэтому соответствующее имяL_Ankle, аL_FootвRebocapсоответствует области носка. В системе наименования UE это обычно называетсяball.L Collarскелет левого плечаL Shoulderскелет левого предплечьяL Elbowскелет левой нижней части рукиL Wristскелет ладони левой рукиL Handскелет левого среднего пальца [не будет управляться]Если скелетов много, вы можете выбрать подходящие скелеты для маппинга. Например, е сли есть 6 позвоночников, вы можете выбрать три из них поочередно.
-
Вернитесь на ранее открытую страницу блюпринта (выбранный маппинг скелета нужно сохранить и скомпилировать, чтобы он вступил в силу) и установите значение узла переменной на только что созданный ассет
Map. -
Скомпилируйте еще раз и проверьте на наличие
Warnings. Обычно должно быть только 3Warnings. Если есть ошибка вmapскелета,warningукажет, что определенная кость не была найдена. -
Закройте окно редактирования анимационного блюпринта, нажмите в верхнем меню
Window->Virtual Production->Live Link, затем выберитеSource->Rebocap Source->conn[port- это номер порта, если номер порта вещания вRebocapизменен, его нужно изменить здесь]. Если клиентRebocapоткрыт,connectбудет в состоянииok; в противном случае - в состоянииbad. Кроме того, пользователь начнет трансляцию данных только после калибровки движения.
-
-
Описание кода
Основной код, связанный с управлением движением, находится в
Source\rebocap\Private\rebocap_pose_node.cpp, в то время как другой код, связанный с периферией, включает вызовыdllиlivelink. ФункцияInit_Foot_Vertices_And_SkeletalDataиспользуется для получения позиции скелета по умолчанию иvertточек персонажа, рассчитывая шесть точек на подошвах обеих ног для контакта с землей [6 точек для каждой ноги]. Поскольку это рассчитывается автоматически, это может быть недостаточно точно; пользователи могут найти шесть точек на подошвах ног и передать их для потенциально большей точности.PS: Больший размер ног может вызвать подпрыгивание персонажа вверх и вниз. Экстремальный пример: если у персонажа ноги длиной 2 метра, но его рост всего 2 метра, когда он становится на цыпочки и приземляется, если ему нужно касаться пальцами земли, персонаж определенно будет покачиваться вверх и вниз.
-
Инструкции по упаковке (Packaging)
- Разработчики
Для разработчиков, которым нужно упаковать проект, вы можете загрузить последнюю версию плагина (предыдущие версии не могут работать после упаковки). В режиме
runtimeдобавлено управление подключениемLivelink. Вы можете обратиться к методамConnectLiveLinkиDisconnectLiveLinkв файлеPlugins/rebocap_unreal_engine_plugin/Source/rebocap_runtime/Private/RebocapLivelinkManagerDemoWidget.cppдля реализации. Если вам нужно отключить встроенный пользовательский интерфейс плагина, вы можете изменитьPlugins/rebocap_unreal_engine_plugin/Source/rebocap_runtime/rebocap_runtime.Build.cs, закомментировать определение макросаUSE_REBOCAP_LIVELINK_MANAGER_DEMOи скомпилировать его самостоятельно. Разработчикам, которые помещают плагин в свои проекты, рекомендуется самостоятельно добавить управление пользовательским интерфейсом для подключенийlivelink. - Пользователи Blueprint
Добавлены узлы Blueprint для управления
Livelinkс названиями узлов:Connect to Rebocap Livelink Source,Disconnect to Rebocap Livelink Source
- Разработчики
Примечание:
- Если вы используете подключение
livelinkвEditor, это может привести к занятости каналаlivelink, что приведет к неудачному подключению в режимеgame. Рекомендуется перезапуститьEditorи попробовать снова. - Для режима
runtime(т.е.,standaloneилиgame mode, который запускается после упаковки), так как метод получения вершин меша в режимеruntimeеще не найден, автоматическая регистрация скелета не включает подошвы после упаковки, и производительность подошв будет немного хуже, чем в режимеEditor. Эта проблема будет решена в будущем.
Видео-демонстрация работы
Здесь нет звука, так как это временная версия, больше будет добавлено позже.