首页 > 其他分享 >在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手

时间:2024-01-05 17:34:34浏览次数:29  
标签:插件 骨骼 采集 动捕 易上 设置 UE DS

在虚拟现实、游戏开发、影视制作等领域中,动作捕捉技术与实时渲染引擎的结合已经越来越紧密。UE作为业界领先的3D创作平台,受到了众多开发者的青睐,DS FUN-UE插件能够帮助开发者更便捷地在UE平台中利用动捕数据进行高效创作,提升项目效率。

*准备事项*

1、软件

DS FUN-采集端软件、DS FUN-UE插件、UE(4.26及以上)

DS FUN相关软件请到动石科技官网的开发者界面中下载

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_虚幻引擎

2、硬件

摄像头电脑

普通家用RGB摄像头即可,电脑推荐配置如下

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_02

3、动捕环境

室内9平⽅⽶以上明亮无遮挡的活动空间,演员请着修身衣物。

一、插件放入当前项目或引擎目录下

A. 如果不需要打包,插件直接放入项目文件中的plugins文件夹下就可以使用。

B. 如果需要打包,请放入引擎插件目录中的Marketplace文件夹下。(跳转目录“八、打包设置”查看详情)

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_虚幻引擎_03

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_数字人_04

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_虚幻引擎_05

二、引擎导入数字人(已有数字人可以忽略)

1、打开Bridge

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_虚幻引擎_06

2、在MetaHumans界面,下载自己喜欢的数字人,点击Add,导入引擎

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_07

三、数字人设置

1、打开导入引擎的数字人蓝图,添加组件DSActor:

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_08

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_09

2、Body骨骼动画蓝图设置为DS_ABP_Body_DM_C

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_10

3、Face骨骼动画蓝图设置为DS_ABP_Face_C

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_虚幻引擎_11

四、项目设置

1、打开项目设置面板,找到DS_UserSettings

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_12

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_13

2、设置以下链接动捕参数

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_14

IP:为DS FUN采集端IP;

Port:端口,默认8899;

Use FixedFrameRate、FrameRate:勾选Use FixedFrameRate可以锁定帧率,保证DS FUN采集端不被占用。由于UE默认会占据所有线程,所以锁定帧率越高,其他程序能使用的线程就越少,这样容易导致采集端运行卡帧,因此FrameRate(帧率)建议设置在25左右;

App ID,App Secret:使用DS FUN-UE插件需要开发人员提供App ID和App Secret。申请地址可到动石官网注册账号后到官网-控制台中申请。

动石官网注册账号

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_数字人_15

动石官网跳转到控制台界面

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_数字人_16

创建应用

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_17

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_数字人_18

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_19


五、开始运行

数字人蓝图拖入场景,确保采集端已经启用,点击开始运行。

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_20

提示1:如果需要展示切换IP效果,请在世界大纲视图找到BP_Cooper勾选“是否动态切换IP”;

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_虚幻引擎_21

提示2:如果需要展示切换角色效果,请在世界大纲视图找到Bp_ChangeHuman_01勾选“是否动态切换角色”;

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_22

六、自定义设置(高级用法)

1、每个数字人的DSActor组件独立存在

可以在组件细节面板设置不同位置偏移和端口识别索引接收采集端的不同人物数据。

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_23

DSC(基础设置):

(1)Face Link Options(面捕方案),面部捕捉方案选择,有三个选项视觉解算、Livelink解算、混合解算:

DSLink:动石自研面部解算方案,默认选项,默认启用,无需额外配置。

Livelink:支持UE支持的所有LiveLink面捕设备。

Both解算:当检测到LiveLink软件时自动应用Livelink解算,否则使用视觉解算。

(2)Offest(位置偏移),场景中角色的最终位置将会是采集端的数据+位置偏移。

(3)iPersonIndex(使用采集端识别到的第几位角色),根据填入的数字选择使用采集端识别到的第几位人物的数据。

Dev(高级设置):

(1)Use Actor Location(使用Actor位置作为原点),默认原点位置为采集端的数据,勾选后以场景角色的位置为起点,模拟运行支持 手动拖放改变角色位置;

(2)Print Log(打印日志),勾选后显示细节日志消息;

(3)Change LowerBody(是否驱动下半身),取消勾选后下半身保持不动;

(4)Skeleton Index(骨骼模型的匹配方案索引),根据项目设置界面的骨骼匹配方案库的索引来选择使用对应骨骼的数据;

(5)Foot Offest(脚步偏移系数),用于调整不同玩家和角色的体型差异导致的滑步问题;

(6)Use FootTracFloor(是否开启脚步贴地),开启后人物站直状态会不断适配角色的脚步位置;

(7)Foot Trac Height(脚步贴地后偏移的高度),用于调整不同玩家和角色的体型差异导致的开启脚步贴地后仍然陷入地面一部分的问题。

RunTime(运行时查看):

(1)APPID is Vail?(APP ID是否生效),运行后查看APP ID是否生效,

(2)DLL Data Index(当前DLL唯一索引),运行后查看当前角色生成的UUID


2、动态切换IP

蓝图中找到DSGameInstanceSubsystem,拖拽CreateSocket函数立即切换IP(延迟时间根据网络动态调整);

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_虚幻引擎_24

3、动态切换骨骼

(延迟时间根据网络动态调整);

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_25

4、动态切换蓝图

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_26

以上节点在参考项目中Bp_ChangeHuman_01和BP_Cooper图表界面可以查看

Blueprint'/Game/Bp_ChangeHuman_01.Bp_ChangeHuman_01'

Blueprint'/Game/MetaHumans/Cooper/BP_Cooper.BP_C

七、骨骼匹配方案库设置

不同骨骼模型需要使用自身对应的骨骼方案库,默认包含四种骨骼的匹配模式(Metahum标准、VRM_UE5标准、VRM_Bip标准、Mixamo标准)。

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_27

通过在DSActor的细节面板指定当前角色所使用的骨骼匹配方案的索引号来使角色正确被识别,比如metahuam骨骼模型的匹配方案索引为0或-1,VRM_UE5标准骨骼模型的匹配方案索引为1,RM_Bip标准骨骼模型的匹配方案索引为2,Mixamo标准骨骼模型的匹配方案索引为3

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_28

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_29

如果需要添加自定义的骨骼模型的骨骼匹配方案:

(1)打开项目设置面板,找到DS_UserSettings->SocketSetting

(2)点击添加新匹配库:

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_虚幻引擎_30

(3)填入当前方案名字,比如“NewElements”:

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_数字人_31

(4)依次点击当前方案身体骨骼名称、当前方案左手骨骼名称、当前方案右手骨骼名称,进行骨骼重定向,左边是标准骨骼名称,右边是对应的你的自定义骨骼的名称:

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_32

八、打包设置

如果项目有打包需求,需要做如下设置才能打包成功并生效:

1、插件不要放到项目Plugins下,而是放入Engine\Plugins\Marketplace

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_虚幻引擎_33

2、打包之前请在项目设置中填写配置信息,然后把DSUserSetings设置为默认,重复点击Yes

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_数字人_34

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_数字人_35

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_36

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_37

九、补充说明

1、依赖插件:

使用数字人资产需要包装UE引擎开启以下插件,默认开启,如果项目运行时失效,请检查这些插件是否开启:

"LiveLink":

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_38

"Live Link Control Rig":

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_39

"Apple ARKit":

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_40

"RigLogic plugin":

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_虚幻引擎_41

2、示例项目打包说明:

示例项目依赖的VRM4U插件是服务于VRM的,所以并没有提供源代码,需要打包项目请禁用VRM4U

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_42

十、常见问题解答

1.、找不到组件DSActor,项目设置面板找不到DS_UserSettings?

        a.检查项目插件面板中,是否存在DSHumanComponent插件;

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_UE_43

2、 采集端闪退?

        a.登录成功后崩溃,检查相机是否能正常运行。

        b.点击开始采集后崩溃。检查显卡是否是NVIDIA 20系列及以上。

3、采集端白屏?

        a.检查显卡驱动版本是否大于520。

        b.检查显卡是否是NVIDIA 20系列及以上。

4、运行后脸部和身体都没有数据?

        a.查看日志面板,可能是网络连接失败:

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_44

        b.检查采集端黄色采集框是否框选住动捕人员。

5、运行后脸部有数据,身体没有数据?

        a.检查采集端是否已经点击开始采集;

        b.查看日志面板,可能是动画蓝图不匹配:

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_虚幻引擎_45

6、 运行后特别卡顿?

        a.项目设置面板->DS_UserSettings->帧率 调小;

        b.采集端不要放到后台运行或者最小化。

7、运行后角色有很明显的滑步?

        DSActor细节面板->脚步偏移系数,调整。

8、运行后身体部分有数据,部分不会动?

        修改数字人蓝图的函数EnableMasterPose:

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_虚幻引擎_46

9、 运行后没有头发,身体抽搐?

        角色lod组件细节面板,LOD强制为0:

在UE中利用动捕数据实时驱动3D数字人,提升项目效率,无穿戴高精度易上手_动作捕捉_47

10、运行后角色脚悬空?

        a.相机需要水平放置;

        b.采集端需要显示完整的脚;

        c.细节面板->填写“位置偏移”,叠加改变位置。

11、运行后角色位置不在初始位置?

        细节面板->勾选“使用Actor位置作为原点”,默认不勾选为读取到的采集端位置。

12、如何把数据导出为UE动画序列?

        点击连接保存动画序列。

13、 其它问题或建议?

欢迎评论区留言,或者私信讨论哦


标签:插件,骨骼,采集,动捕,易上,设置,UE,DS
From: https://blog.51cto.com/u_16469608/9116130

相关文章

  • CF817F MEX Queries
    题意一个集合,初始为空。请你维护以下\(3\)种操作。把\([l,r]\)中在集合中没有出现过的数添加到集合中。把\([l,r]\)中在集合中出现过的数从集合中删掉。把\([l,r]\)中在集合中没有出现过的数添加到集合中,并把\([l,r]\)中在集合中出现过的数从集合中删掉。每......
  • VUE3新建项目
     npminitvite-apparcher240105 //进入目录cd项目目录//安装依赖npminstall//运行npmrundev    ......
  • Python+Requests+PyTest+Excel+Allure 接口自动化测试实战
    本文主要介绍了Python+Requess+PyTest+Excel+Allure接口自动化测试实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit......
  • 09--requests-02
    三requests请求库--021处理cookie相关的请求学习目标:掌握requests处理cookie的三种方法1.1爬虫中使用cookie为了能够通过爬虫获取到登录后的页面,或者是解决通过cookie的反扒,需要使用request来处理cookie相关的请求1.1.1使用cookie的利弊带上cookie的好处​......
  • requests库和requests模块使用详解
    一、requests简介#简介:使用requests可以模拟浏览器的请求,比起之前用的urllib,requests模块的api更加便捷(本质就是封装了urllib3)#注意:requests库发送请求将网页内容下载下来以后,并不会执行js代码,这需要我们自己分析目标站点然后发起新的request请求#安装:pip3installrequest......
  • Largest Subsequence
    操作:选取词性最大的子序列,向右循环一次问你进行多少次这样的操作能使数组有序,如果不能就输出-1思路:首先要知道的是一个词性最大的序列整个右移过后,数组的新词性最大的序列就是之前的词性最大序列去了最后一个字母.找出词性最大的子序列intn; strings......
  • vue&webpack - vue2版本webpack脚手架配置梳理
    vue&webpack-vue2版本webpack脚手架配置梳理资源链接VueCLIwebpackwebpack5和webpack4的区别webpackWebpack4于2018年2月发布。(2020-10-10)webpack5.0.0发布VUECLI配置configureWebpackvue.config.js中的configureWebpack选项提供一个对象://vue.con......
  • vue---v-modle实现字符组件通信
    子父组件在做数据传值和通信中,通常都是父组件通过【:props】进行数据的传递,通常用于父组件通过传递不同的参数,改变子组件。但是经常会遇到这样的场景:需要父子组件进行数据通信,实现双向数据绑定,可以利用v-modle实现父子组件数据交互通信。父组件:<template><div>......
  • # Vue3 使用路由 Router
    Vue3使用路由Router之前几篇博文说了一下vue的基本语法和vue的传参,今天这篇博文稍微说一下vue3里面使用路由。介绍众所周知,vue是用来构建单页面应用的前端框架,大于大多数此类型应用来讲,都推荐使用官方支持的vueRouter,在单页面应用,客户端的JavaScript可以连接页面......
  • Vue中使用API内容渲染的弹出列表的打开方式
    要在Vue中实现点击链接打开一个弹出窗口,你可以按照以下步骤进行操作:首先,为每个链接添加一个点击事件处理程序。你可以使用@click指令来做到这一点。在你的模板中的链接元素上添加该指令,如下所示:<av-for="iinitems"v-bind:key="i.id"class="biblio__item"@click=......