AI 数字人,结合了 3D 建模技术与人工智能,是一种高度逼真的虚拟人类。他们不仅能够模仿真人的动作、表情和语音,而且展现出精致的视觉效果和丰富的表现力。这种技术的潜力在 2021 年英伟达的 GTC 大会上得到了展示。那时,英伟达 CEO 黄仁勋介绍了他们的平台级产品——Omniverse,它被视为 Metaverse 的一部分。黄仁勋强调,Metaverse 不仅仅是游戏的世界,而是一个模拟未来的空间。更让人惊叹的是,大会上的一段 14 秒画面展示了这项技术的巅峰:老黄的标志性皮衣、甚至他的形象,都是通过 Omniverse 合成渲染的,但几乎无人察觉。
这个展示不仅展现了 AI 数字人的技术成熟度,也预示着虚拟世界与现实世界的界限越来越模糊。通过这样的技术,我们可以创造出无限的可能性,无论是在游戏、电影制作,还是在日常生活中的虚拟交互。这不仅是技术的一大飞跃,也是人类对未来生活方式的一种全新想象。如此,英伟达的演示不只是一个产品展示,而是对未来世界的一种大胆预测和实践。
MetaHuman Creator,人人都可创作的数字人
MetaHuman 是 Epic Games 开发的一种 3D 建模 AI 数字人平台。它使用人工智能技术来生成逼真的人脸,可以用于游戏、电影、电视和其他应用程序。
与英伟达需要大量昂贵扫描设备和复杂技术算法的制作流程相比,MetaHuman Creator 可以更轻松、便捷地创作出高保真的数字人。
由于 MetaHuman Creator 部署于云端,通过 Pixel Streaming 技术做到可以在网页端交互使用。扫描真实人类并提取面部特征后,会将其记录在后台数据库中,并以此帮助之后Creator创建真实可信的角色。
同时 MetaHuman Creator 还提供多种预设体型、服饰、皮肤和毛发,目前已有超过50个预设角色可以直接下载。用户也可对其进行高度自定义的细节雕刻,甚至连模型的牙齿、骨骼等均可进行修改,有助于提高数字人的真实感。
也就意味着,MetaHuman Creator 大大简化了整个 3D 模型创作过程,创作者可以先跳过数据采集这一繁琐且昂贵的步骤,只需几分钟就可以捏出差异性很大的数字人模型。

不过从英伟达与 Epic 的演示视频对比来看,MetaHuman Creator 数字人虽然头发、眼睛、皮肤、皱纹等质量并不低。不过相比足以欺骗世界的英伟达数字人,保真度上还是稍显逊色。
毕竟有些部分是 MetaHuman Creator 很难实现的,比如衣服和毛发、以及独特的胡须和面部纹理等细节,这些往往需要更多的处理过程。不过 Epic 的数字人技术,定位更像是帮助中小创作者减负的工具,适用范围更大。
曾参与《魔法门之英雄无敌》和《幽灵行动:断点》的前育碧制作人和创意总监Broche就提到过,这项技术最适合像他工作室一样的开发商使用:“对于小团队而言,能够用 MetaHuman 得到高于大多数角色美术师所创造的角色,是一个非常不错的机会”。
今天给大家带来一个硬核的 MetaHuman 数字人系列教程,通过阅读该系列的文章,大家都能够从 0 到 1 生成一个 3D 的数字人,使用它来代替自己在各个平台直播。无需编程,跟着教程一步一步操作即可实现。文末附工程文件。
使用 MetaHuman 对硬件要求比较高,大家按需,没有条件的做了解即可。
流程概览
1、前期准备工作
2、创建 UE 项目
3、生成 MetaHuman 数字人
4、将 MetaHuman 数字人导入项目
5、绘制关卡蓝图
一、前期准备工作

一)安装虚幻引擎客户端
1、打开虚幻引擎官方网站:https://www.epicgames.com/site/zh-CN/home,点击下载

2、下载完成之后会得到一个 .msi 后缀的文件,直接双击运行这个程序进行安装。然后系统会弹出这个界面,点击安装,安装过程中所有的配置选择默认即可。

3、安装好之后桌面会有一个 Epic Games Launcher 的快捷方式,双击打开进入以下界面。然后点击左侧的“虚幻引擎”按钮,再点击上侧的“库”按钮,就会显示你的 EPIC 客户端当前已安装的UE编辑器。

二)安装 UE 编辑器
1、点击引擎版本后边的+号,下边就会多出来一个待安装的 UE 引擎,这里选择 5.1.1 版本安装。因为我这里安装过了,所以版本选择里边没有 5.1.1。
2、这里需要注意一点,不要选 4 开头的低版本,也不要选择 5.2 这种太高的版本,因为有些插件不兼容高版本或者低版本,建议选择 5.1.1 最好。

三)安装 AZSpeech 插件
1、点击上侧的“虚幻商城”按钮,在搜索栏中搜索 azspeech ,选择 AZSpeech- Voice and Text

2、点击 「安装到引擎」 按钮


四)安装 MetaHuman SDK 插件
1、和上边一样,在虚幻商城中搜索 MetaHuman SDK ,然后安装到引擎。这里需要注意,是 MetaHuman SDK ,而不是 MetaHuman ,不要搞错了。

2、点击「安装到引擎」按钮,将它安装到咱们的 UE5.1.1 版本的引擎中

3、当咱们把 AZSpeech 和 MetaHuman SDK 插件安装好之后,点击「已安装的插件」,能看到已安装到此引擎上的插件。Quixel Bridge 这个插件不需要手动安装,等后续在 UE 引擎中使用它的时候会自动安装。


五)在微软云上创建语音服务
1、登录微软云:https://portal.azure.com/ ,这里如果没有微软云账号的就注册一个。微软云的语音服务每个月都有免费的使用额度
2、点击「语音服务」按钮,创建一个语音服务

3、点击「创建」按钮

4、然后接下来会跳转到输入要创建的语音服务的相关信息页面
1)资源组:如果是第一次创建资源,就需要点击「新建」按钮,创建一个资源组
2)区域:默认选择 East US 即可
3)名称:这个随便输入一个自定义名称即可
4)最后点击「审阅并创建」

5、创建成功之后,会在语音服务里面看到刚刚创建的资源,它的状态是 Successed

六)获取 OpenAI的API 调用 key

七)下载 OpenAIAPI 插件
1、插件地址:https://github.com/KellanM/OpenAI-Api-Unreal,点击这个「here」

2、选中 5.1.1 版本,点击下载按钮,下载到本地备用

二、创建 UE 项目
一)启动 UE 引擎
1、点击启动按钮,启动 UE 引擎

2、第一次启动会有点慢,等待它启动完即可

二)填写项目信息
1、选择空白项目;选择项目位置,注意这里要选择一个纯英文的路径,如果路径中有中文会很容易导致引擎崩溃。输入项目名称,项目名称也要输入纯英文的;最后点击「创建」按钮。

2、加载完成之后会出现以下界面,项目创建成功。

三)启用插件
1、启用 OpenAIAPI 插件
1)将咱们在前期准备工作中下载好的 OpenAIAPI 插件解压缩
2)然后在项目路径下创建一个 plugins 的文件夹

3)将解压缩的 OpenAIAPI 直接拖拽到 plugins 文件夹中

2、启用 MetaHuman SDK 、 AZSpeech 插件
1)再回到已经启动后的项目,点击「编辑」按钮,然后点击「插件」

2)点击「已安装」,然后把两个插件的复选框都勾选上,点击「立即重启」

3)项目重新启动之后,会发现刚才拖拽到项目中 plugins 文件夹中的 OpenAIAPI 插件也已经自动启用了

四)MetaHuman SDK 插件设置
1、打开项目设置界面

2、找到 MetaHuman SDK 插件设置

3、点击「Personal Account」,会弹出登录界面,登录 MetaHuman 账号即可

4、先注册,再登录

5、如果之前没有账号,现在是注册的话,点击注册 MetaHuman 会发送到邮箱里边一封邮件,点击「Confirm Email」

6、点击确认之后,会自动弹出登录界面,使用刚才注册的账号登录

7、点击「Generate new token」,创建一个新的 token ,备用

8、点击「copy」,复制保存到本地

9、将 MetaHuman SDK 的 Api Token 粘贴过来

五)ASpeech 插件设置
1、订阅设置
1)点击展开「Default Options」,然后展开 Subscription Optinons

2)在浏览器中打开 Microsoft Azure ,找到在准备工作中创建好的语音资源,点击进去

3)将Azure的「密钥」复制到插件设置中的 Subscription Ke y中(密钥 1 或者密钥 2 均可)。然后将 Azure 中的「位置/区域」复制到插件设置中的 Region ID 中。


2、语音识别设置
1)点击展开「Recognition Options」

2)打开 Azure 的语音服务文档:https://learn.microsoft.com/zh-cn/azure/cognitive-services/speech-service/language-support?tabs=stt,往下翻,找到这个语音转文本

3)找到中文简体普通话的选项,将 zh-CH 复制到插件设置中

4)进行如下设置
- Use Language Identification :表示启用语音识别
- Language Identification Mode :表示在什么时机识别语音,这里设置为 Continuous ,让它持续的识别语音
- Candidate Languages :表示识别的语音语音,这里默认 zh-CN
- Recongnition Output Format :表示识别语音的复杂程度,这里选择 Detailed (详细的)
- Profanity Filter :表示脏话过滤,默认选择 Raw 即可
- Segmentation Silence Timeout in Miliseconds :表示分割沉默超时,就是咱们在说话的时候断句的时间间隔超时时间。这个数值的单位是毫秒,1000 毫秒表示 1 秒,使用它给出来的默认值即可。
- Initial Silence Timeout in Miliseconds :表示初始静默超时时间,同样的这个单位也是毫秒,这里使用它给出了的默认值即可。

3、语音合成设置
1)点击展开 「Synthesis Options」

2)在 Azure 云文档中,找到「文本转语音」

3)找到中文简体普通话(这里也可以使用河南话、东北话等,看自己的喜好)

4)进行如下图设置
a、Locale :表示使用哪个国家区域的语音,这里填写zh-CN
b、Voice :表示合成语音之后声音模型,从 Azure 文档中粘贴过来一个即可
c、Enable Viseme :表示启用发音嘴型,它能用来驱动 MetaHuman 发音的时候嘴型动作,这里默认选中
d、Use Language Identification :表示启用语音合成,这里勾选上
e、Language Identification :表示语音合成的时机,选择 Continuous
f、Profanity Filter :表示脏话过滤,默认选择 Raw

三、生成 MetaHuman 数字人
一)登录虚幻引擎
1、打开虚幻引擎的网站:https://www.unrealengine.com/zh-CN,点击「登录」按钮

2、如果没有 EPIC 的账号的话就注册一个

二)启动 MetaHuman
1、点击上方菜单栏的「产品」,然后点击 MetaHuman

2、第一次使用 MetaHuman 需要先点击「申请抢先体验」,然后再点击「启动应用」

3、版本选择 5.1 ,然后点击「启动MetaHuman Creator」

4、第一次启动有点慢,需要稍等片刻


三)捏数字人
1、启动成功之后,在这里有两个按钮选项,「创建」指的是创建一个新的 MetaHuman,「我的MetaHuman」指的是已经捏好的数字人

2、第一次进来的话「我的MetaHuman」是空的,所以点击「创建」按钮,开始创建一个 MetaHuman 数字人

3、MetaHuman 是老外搞出来的,所以这里都是老外的面孔,选择一个和咱们比较相似作为底子来捏数字人

4、创建成功之后,会出现以下界面
1)界面左侧是第一部分,是关于数字人身体部位的选项,点进去每一个选项就是对这个部位进行设置
2)界面右侧是第二部分,是关于快捷键的介绍,可以学习一下
3)界面的下方是第三部分,是控制当前数字人的动作的,大家可以用鼠标都分别点点体验一下效果

5、设置头发,给咱们的数字人设置一个简单的头发,我这里给她设置一个简单的中端发

6、然后我把她的头发颜色设置的鲜艳一点

7、设置皮肤,这里给她把皮肤调的白亮一点(毕竟一白遮百丑嘛)

8、然后就是设置一下衣服,这里大家可以随意设置,自己怎么喜欢怎么来

9、在这里给捏出来的数字人设置一个名字

10、然后再点击左侧的「我的MetaHuman」,就能看到刚刚捏好的数字人了

四、将数字人导入到 UE 项目中
一)回到项目界面,点击这个 Auixel Bridge

二)登录账号,这个账号就是刚才在 MetaHuman 官网登录的那个账号

三)登录成功之后,需要注意,点击「Prreferences」修改一下这个路径。

四)这个路径是将云端的数字人保存到本地的本地路径,大家根据自己的习惯来进行设置。

五)点击这个小人图标,然后再点击「My MetaHumans」,就能看到咱们在 MetaHuman 刚刚捏好的数字人了


六)然后选中她,点击 Download ,将她下载到本地。下载成功之后,再点击 Add 按钮,将她添加到咱们的项目中。下载速度会有点慢,需要稍等片刻。

七)下载完成之后点击 Add ,然后界面会弹出好多缺失插件,全部都点「启用缺失」即可

八)然后右下角点击「立即重启」

九)然后在项目的下侧菜单栏点击「内容侧滑菜单」,就能看到刚刚导入进来的数字人

五、绘制关卡蓝图
一)创建关卡
1、点击「文件」菜单,然后点击「新建关卡」

2、选择 Basic ,点击「创建」按钮

3、在下侧内容侧滑菜单栏中,选中咱们的 MetaHuman ,然后鼠标将她拖动到上边的界面中

4、点击上方的旋转菜单,然后鼠标拖动下方的旋转图标,将数字人旋转到咱们的正对面

5、然后鼠标滚轮,向前向后滚动滚轮可以放大和缩小视角。当把距离拉近,她的头发就显示出来了

二)接入 AZSpeech
1、流程图拆解

2、打开关卡蓝图

3、选中已有的两个节点,按删除键,将他们直接删除

4、点击鼠标右键,在搜索栏里面搜索 speech to text,然后选中「Speech to Text With Custom Options」


5、从 Speech to Text 节点的 Recognition Completed(识别完成)事件,拖出来一个打印字符串节点。这个动作表示将咱们说话的语音转换成文本的内容输出出来。

6、将 Speech to Text 节点中的 Final String 连接到打印字符串的 In String ,表示将识别语音得到的文本结果作为参数传输给打印字符串节点,然后打印字符串节点会将这个参数打印到屏幕上。

7、这个时候,需要一个事件来触发语音识别。点击鼠标右键,然后在搜索栏输入 6 这个数字,选中「数字键6」,表示咱们按电脑上的数字 6 键盘的时候触发语音识别


8、在屏幕输出一段话,用来提示自己可以开始说话了。最后将组件都连接起来

10、启动项目,按数字 6 键,然后说一句话,可以看到 AZSpeech 会将咱们说话的内容转为文本打印出来

三)接入 ChatGPT
1、流程图拆解

2、打印字符串结束事件,拖拽出来一个 Set Open AIApi Key 的节点

3、将 OpenAI 官方的 key 粘贴进去

4、从 Set Open AIApi Key 的结束事件,拖拽出来一个 Open AICall Chat 节点

5、从 Open AICall Chat的Chat Settings 事件,拖拽出来一个 Chat Setting 节点,用来设置调用 OpenAI 接口的参数

6、我这里设置模型为 GPT 3.5 TURBO ,如果自己的账号有 GPT4 的话可以直接设置为 GPT4 ,这样对话的效果会更好。然后 Max Tokens 咱们这里设置为 3000

7、从 ChatSettings 的 Messages 参数拖拽出来一个 ChatLog ,这个是用来设置请求 OpenAI 接口的时候的请求参数体

8、这里设置为 USER

9、然后将转换完成的语音文本,拖拽到 Content 上,用来作为请求 OpenAI 接口的内容

10、然后从 Open AICall Chat 节点的 Finshed 结束事件拖拽出来一个新的分支

11、将 Open AICall Chat 的 Success 事件连接到新的分支上的 Condition 条件上

12、然后将 Open AICall Chat 的 Error Message 内容,拖拽出来到一个打印字符串节点中。这个步骤的作用就是如果调用 OpenAI 的接口返回错误消息,就打印到控制台日志中。

13、Open AICall Chat 的 Message 拖拽出来一个中断 ChatCompletion


14、从新分支拖拽出来一个 ADD 数组

15、将中断 ChatCompletion 节点的 Message 连接到 ADD 数组

16、将 ADD 数组的结束事件拖拽出来一个打印字符串节点

17、将中断 ChatCompletion 节点的 Message 拖拽出来一个中断 ChatLog 节点,然后将中断 ChatLog 节点的Content 连接到打印字符串的 In String

18、从 ADD 数组节点拖拽出来一个 ChatLog 节点

19、ROLE 选择 USER

20、效果

四)接入 MetaHuman SDK
1、流程图拆解

2、在空白处,鼠标右键,搜索 MetaHuman SDKAPIManager 。注意这里要获取引擎子系统下面的

3、从 MetaHuman SDKAPIManager 拖拽出来一个 Combo 节点

4、从 MetaHuman SDKAPIManager 节点的 Combo Input 拖拽出来一个 Combo 输入节点

5、Combo Mode 选择 ETTS ATL

6、TTSInput 拖拽出来一个 MetaHumanSDKTTSInput

7、从前边接入 OpenAI 的中断 ChatLog 的 Conternt 连接过来,表示将 OpenAI 返回的内容结果输入到语音合成中,让 Azure 将文本内容合成为语音

8、TTSEngin 填写 azure , Voice ID 填写咱们前边在 AZSpeech 插件设置中合成语音的 Voice:zh-CN-XiaoxiaoNeural

9、从 MetaHumanSDKComboInput 节点的 ATL Input 拖拽出来一个 MetaHumanSDKATLInput

10、这一步表示数字人说话时哪个地方有动作


11、Explicit Emotion 是用来选择说话时的表情的,这里给她设置为 EHappy ,让她说话时面带笑容。最下边的两个复选框是控制说话的时候眨眼表情的,也把它勾选上。

12、设置说话时候的动作

13、Pose Asset 设置为 mh 开头的动作

14、Combo 节点的 Combo Output 拖拽出来一个中断 MetaHumanSDKComboOutput 节点


15、将中断 MetaHumanSDKComboOutput 的分别拖拽出来中断节点

16、从 Sound 拖拽出来一个播放音效 2D 的节点

17、OpenAI 接口返回的结果,打印字符串完成之后,执行 Combo 事件,把他们连接起来

六、结尾
一)使用 UE5 结合 Chat GPT 生成自己的数字人之后,可以用它来进行24小时直播,把它接入到训练好的带货助手的小模型的话,还能直接用它来直播带货,另外也可以用它来录制短视频内容等等。欢迎各行各业的小伙伴在留言自己的想法,咱们在一块探讨一下应用场景和解决方案。
二)本篇文章先实现一个简单的数字人和GPT的交互效果,要实现文章开头数字人在B站的直播效果篇幅非常的长,我会尽快写出来后续的操作步骤教程文章。
三)文章中使用的语音插件是用的 Azure ,需要将数据上传到微软云端转换或者合成。再加上调用GPT返回数据相应速度也慢,所以总体延迟有点高。后续我会找一个合适好用的本地语音合成的插件替换掉Azure的云端语音服务,GPT后续也需要优化为流式读取,总之还有很多的优化空间后续都会一步一步的优化。
四)工程文件详见百度云盘:https://pan.baidu.com/s/1C9siu16FYoYXkHq97lsxjA 提取码: fdv1
想要获取整理了100+项目的教程合集吗?加我微信好友或者进入我的免费星球,即可免费领取!
![图片[2]-如何开始着手建群-副业项目库论坛-副业/创业-李又懂](https://geek.liyoudong.cn/wp-content/uploads/2023/12/%E5%9B%BE%E6%80%AA%E5%85%BD_4568ffb80a0cde51718167b4a3b66ed5_78552-1.jpg)
本文转自下方知识星球内《AI数字人》大航海,现在加入AI破局俱乐部,享受市面上价值数千的专业训练营(比如AI数字人、AI提示词、AI代写、AI视频等等),完全免费。想要踏入AI领域?快来扫码加入吧!
![图片[1]-如何开始着手建群-副业项目库论坛-副业/创业-李又懂](https://liyoudong-1305671160.cos.ap-beijing.myqcloud.com/2024/01/20240101120022299.png)
微信扫码加入后,可免费领取我的价值99/年的副业星球。(联系微信4314991邀请你加入)