最近突然吹起一阵虚拟人直播风潮,大概就是找一个虚拟人物,用主播的面部动作来驱动虚拟人来完成头部和表情动作,但我看大部分都是下载的UE5Unreal Eigine 5(Epic公司出品的一款强大的3D创作平台,很多大型3A大作都是用其开发的),比如我们熟悉的绝地求生、黑神话:悟空等。
我最近研究了下,这里面主要的模块主要包括:
1、UE5里的Metahuman提供了丰富的虚拟人库,可以下载作一个独立的蓝图(Blueprint)在UE5的场景中使用
2、苹果手机前置深度传感器,可以实时捕捉人脸的三维数据,这需要Iphone X以上的型号才支持。【You’ll need to have a model of iPhone that has both a depth camera and ARKit. These capabilities are typically included in iPhone X and later.】
3、Epic公司开发的IOS APP: Live Link Face通过Lidar传感器实时捕捉人脸三维数据并识别关键部位,主要包括整体头部、眼睛和嘴巴。
但是,以上三个模块,只能完成非写实的虚拟人驱动,如果说要完成写实虚拟人驱动,则我们还需要加两个模块:
4、通过手机视频/拍照的方式采集人脸的数据,再使用摄影测量软件进行人脸的三维重建
5、使用UE5的Metahuman插件进行写实虚拟人制作
最终我们的成品如下:
面部捕捉
小板凳准备好,我下面来说一下详细步骤:
里面有很多细节的操作,有直接可跳转的链接我会尽量贴链接,不然此篇教程会非常庞大(我就是有点懒不想再写一份)
文章目录
- 0 准备工作
- 1 采集人脸数据并重建三维模型
- 2 Metahuman捏脸
- 3 Metahuman资产导入UE5
- 4 使用Live Link Face面部驱动虚拟人
0 准备工作
1、下载安装一款摄影测量软件,如DJI Terra、Reality Capture、Metashape、ContextCapture等,如果你不是英伟达显卡,则你可能只能使用Metashape
2、下载安装三维模型处理软件Meshlab
2、IPhone X以上型号苹果手机一部,并下载APP Live Link Face
3、下载安装Unreal Engine 5
4、电脑一台,显存>=4G、内存>=8G
1 采集人脸数据并重建三维模型
1、保持人脸静止不动,找其他人帮忙或自拍人脸一圈,拍摄的过程中人脸需要静止,否则无法完成建模,比如我自拍的视频:(自拍的有点随意,但是大概表达一个拍法),拍摄视频和图片都可以,图片的拍法是差不多每隔半秒按一次快门,同时尽量在拍摄的时候距离保持一致,不要忽近忽远,容易触发自动对焦,这对建模来说是不利的。
2023-04-22 231932
2、将图片/视频导入摄影测量软件,这里有个问题是大部分摄影测量软件都只支持图片,只有ContextCapture支持视频,我们通过ContextCapture来对视频抽帧,再把抽出来的图片导入其他软件来建模(其实也可以全程使用ContextCapture,但这个软件试用版模型结果有水印很蛋疼),我比较习惯用DJI Terra。(如果你不是英伟达显卡,则你可能只能使用Metashape)
视频抽帧的教程为:ContextCapture视频抽帧
抽帧完成后,在输出目录里找到图片,打开DJI Terra软件,新建可见光重建任务,导入图片,打开三维开关,并在输出格式中将ply格式勾上,注意下面图中红圈位置就是一些关键步骤提示。
点击开始重建,等待重建完成,完成后如下图:
打开软件输出目录,找到obj模型文件,目录路径是models/pc/0/terra_obj/Block/Block.obj
用Meshlab打开该obj文件,打开软件后,把obj文件直接往软件窗口里拖动,打开后如下:
我们用Meshlab做一些编辑,只保留模型的人脸部分,其他全部删除掉,完成后如下:(怎么删除我就不在此介绍了,不然过于繁琐,这步是一个比较简单的操作,大家上网搜索自己鼓捣鼓捣就能搞定)
保存结果到另一个文件夹,在保存选项中把存储纹理图选项勾上
就此,第一步人脸模型重建完成,接下来是使用UE5的Metahuman插件导入重建的人脸模型进行写实虚拟人制作。
2 Metahuman捏脸
打开UE5软件,新建一个空白项目,
在编辑菜单中点击插件,搜索Metahuman并安装,安装完重启UE5生效。
然后在左下角打开内容侧滑菜单,点击导入,找到obj文件并导入:
导入后在窗口中可以看到我们的人脸模型:
接下来点击在内容侧滑窗口右上角的添加按钮,找到Metahuman菜单,点击Metahuman本体。
这时内容窗口内会出现一个Metahuman本体,可以修改一下它的名字,比如MyFace(不改也可以),
然后双击打开,这时需要登录Epic账号,可以即时注册一个。
打开后,在新的窗口中,点击网格体中的组件,选择我们重建的人脸三维模型,
窗口中会出现一个人脸模型,点击它按F可以自动调整到窗口中间来,再调整下模型的位置和缩放,使脸部正面位于窗口中心
可以调整这里的摄像机摄影使得人脸缩放到合适的尺度,以及关掉光照使得追踪更成功。
然后选中左侧的Neutral Pose,依次点击 提升帧-追踪活动帧,自动追踪眼睛嘴巴和关键线条,
完成后可以点击窗口正上方的B,查看配对的虚拟人体,
然后点击Metahuman本体解算,解算完成后在右侧面板中点击身体,选中一款中意的,
然后点击网格体转Metahuman,等待完成。
完成后,打开浏览器,输入网址 https://metahuman.unrealengine.com/,在打开的界面中,点击运行最新版本的Metahuman Creator
稍作等待后,即可进入Metahuman捏脸页面,可以看到我们刚才制作的人脸模型已经出现在列表中(服务器在国外,网络链接不舒畅的话,画面有时候会比较模糊),可以看到此时模型还只是一个底模,没有皮肤毛发,所以我们选中后,点击编辑已选项进入编辑页面。
编辑页面里可以添加不同类型的头发、设定皮肤颜色、眼球颜色、睫毛类型等,总之可以按照你的想法DIY你的虚拟人,但样貌会一直保持神似。
详细的编辑方法,我这里不再详细说明了,大家可以查看Metahuman的官方文档:https://docs.metahuman.unrealengine.com/zh-CN/creating-a-metahuman-in-metahuman-creator/
我这个视频可以参考下
Metahuman虚拟人体验
3 Metahuman资产导入UE5
用Metahuman制作完虚拟人后,下一步是导入UE5,我们打开UE5软件,还是载入前面的空白项目,点击主菜单中的窗口-Quixel Bridge,
在打开的Bridge主窗口右上角点击登录前面注册的Epic账号,
然后在左侧的侧边栏中点击MetaHumans,里面有两类资产,一类是MetaHuman Presets,是MetaHuman官方的虚拟人资产;一类是My MetaHumans,是我们自己捏的虚拟人,也就是我们前面制作的虚拟人会出现这一栏中。
选中My MetaHumans后,在右侧的资产窗口中,找到我们前面制作的虚拟人并鼠标点击,这里我就选一个我之前做好的,这里会有4步操作1、点击选中要导入UE的虚拟人资产
2、在右下角选项中切换质量类型,推荐Highest Quality
3、下载资产到Bridge
4、导入资产到UE
如下图所示,
在点击导入后,等待进度条执行完毕,会出现缺失插件的提示,全部选择启用缺失即可,然后会让你重启UE,按照提示重启。
重启后切换到UE主界面,在下方侧滑菜单的内容窗口中新出现了一个MetaHumans的文件夹,里面就有刚才导入的虚拟人资产,名字是你在MetaHumans创作平台中的命名,我这里是自己改成了Yingsong,选中它后右侧内容窗口中有一个BP_Yingsong的蓝图类,这表明你已经导入成功了。
4 使用Live Link Face面部驱动虚拟人
要用手机驱动电脑上的虚拟人,必须让手机和电脑产生连接,首先让手机电脑连接到同一个局域网(有/无线连接同一个路由器即可),然后手机打开Live Link Face,点击左上角的齿轮样工具,再点击LiveLink,在目标栏点击添加目标,输入电脑的IP地址。
查找电脑IP地址的方法:
在Windows中,执行以下步骤:
1、右键点击 任务栏中的 连接图标。然后,在弹出的菜单中,选择 打开网络和互联网设置。
2、向下滚动到 属性(Properties) 部分(或者点击 属性(Properties) 按钮,取决于操作系统版本)。然后记下或者复制 IPv4地址 数值。
在macOS中,执行以下步骤:
1、打开 网络偏好。
2、双击 网络 图标。
3、选择你当前连接的 网络。
4、点击 高级 按钮。
5、在打开的窗口中,点击 TC/ICP 选项卡,然后记下或者复制 IPv4地址 数值。
然后回到UE5主界面,在主菜单找到 编辑(Edit) > 插件(Plugins) 并确保为项目启用了以下插件:
- Live Link Live
- Link Control Rig
- Apple ARKit
- Apple ARKit Face Support
向项目中导入至少一个MetaHuman后,这些插件应该默认自动启用。如果没有则手段启动一下。
然后在窗口菜单中点击虚拟制片-Live Link
在弹出窗口中看到一个Apple AR面部追踪的选项,选中它。
然后我们打开下方的内容侧滑菜单,找到前面导入的虚拟人资产:BP_Yingsong蓝图类,双击它,在弹出的窗口右侧细节栏中找到LiveLink设置栏,按照下图所示进行设置,设置完依次点击左上角的编译和保存,然后退出此窗口。
回到UE主界面,在内容侧滑窗口中,找到BP_Yingsong蓝图类,用鼠标拖进关卡窗口中,调整模型的位置和视角,使其面朝屏幕前方,能够清晰地看到虚拟人的面部。
然后在你的iOS设备上,打开LiveLink Face app并将前置摄像头对准你的面部。你应该能够看到追踪网格覆盖在你的脸上,并且会根据你的表情和头部移动做出反应。这一步就完成了。
到这里全部步骤就基本结束了,后面的就自己探索啦,包括灯光控制啥的,自己搜搜教程,也比较简单了。最终效果如下视频所示:
面部捕捉