标题 | 详情 |
---|---|
作者简介 | 愚公搬代码 |
头衔 | 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。 |
近期荣誉 | 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。 |
博客内容 | .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。 |
欢迎 | 👍点赞、✍评论、⭐收藏 |
文章目录
🚀前言
随着数字化时代的到来,虚拟角色和数字人逐渐成为各个行业中不可或缺的元素。从游戏开发到影视制作,再到虚拟现实和增强现实应用,数字人不仅丰富了用户体验,也为品牌传播和互动提供了新的可能性。而在这其中,虚幻引擎(Unreal Engine,简称UE)以其强大的实时渲染能力和灵活的开发环境,成为创建数字人的首选工具。
本文将深入探讨如何利用UE进行高阶产品应用开发,特别是创建逼真的数字人。我们将详细介绍数字人的设计流程,包括角色建模、动画制作、表情捕捉以及与用户的交互实现。通过具体的案例分析,我们希望能够揭示数字人在各个领域的应用潜力,以及如何通过技术创新提升用户的沉浸感与参与度。
无论你是游戏开发者、影视制作人,还是对数字人技术感兴趣的爱好者,这篇文章都将为你提供实用的见解与灵感。让我们一起探索数字人技术的前沿,开启创造虚拟世界的新旅程!
🚀一、利用UE创建数字人
程序员在工作和学习中积累了大量宝贵的知识与经验,但有些优秀的程序员在表达能力上可能存在短板。在这种情况下,数字人的出现提供了理想的解决方案,可以有效弥补这一不足。
通过与数字人互动,程序员能够将专业知识和经验传递给更广泛的受众,而无需担心沟通障碍。数字人具备逼真的外貌、流畅的语言表达能力和交互功能,能够以更具吸引力和易于理解的方式呈现复杂的技术概念。这使得程序员能够更好地与其他开发者、学习者和潜在客户交流,建立个人影响力。
随着语音识别和 TTS(文字转语音)等技术的不断发展,创建数字人不仅能显著减轻程序员在镜头前的压力,使他们能够专注于内容创作本身,而不必担心形象和表达,还能迅速输出内容,大大提高创作效率。
使用 UE 的 MetaHuman 制作数字人非常简单,任何人都能免费使用,并通过深度学习制作出效果逼真、动作流畅的人物形象。
🔎1.准备工作
🦋1.1 硬件要求
要使用 Unreal Engine(UE)进行数字人建模,一般需要 NVIDIA 的 GTX 系列显卡。GTX 1060 为入门级配置,推荐使用 GTX 2060 及以上显卡,以及 32GB 内存。这个配置基本能确保软件稳定运行。
🦋1.2 软件安装
UE 是由 Epic Games 开发的游戏引擎。请访问 Epic Games 官网 https://store.epicgames.com/zh-CN/,点击页面右上角的“获取 Epic Games”按钮下载并安装安装包。
🦋1.3 创建账号
安装完成后,打开 Epic Games Launcher 并创建 Epic Games 账号。
🦋1.4 安装引擎
进入软件后,点击左侧菜单中的“虚幻引擎”,然后依次点击“库”和引擎版本后的“+”按钮,此处选择 5.1.x 版本进行安装。
🦋1.5 安装 MetaHuman
在虚幻商城中搜索 MetaHuman 插件和 MetaHuman SDK,购买(免费)并安装到引擎中。
🔎2.使用 MetaHuman 自带的人物
🦋2.1 创建工程
-
新建项目
- 依次选择“游戏” → “空白” → “蓝图”,目标平台选择“桌面”。
- 注意:路径和项目名称中不得含有中文或空格。MetaHuman产品界面见图。
- 新建项目时,引擎需要编译着色器,可能需要数分钟或更长时间,请耐心等待编译完成。
-
添加 MetaHuman 插件
- 在工程中,依次选择“编辑” → “插件”选项,查找“MetaHuman”,勾选“MetaHuman”和“MetaHumanSDK”,然后重新启动工程。
-
引入 MetaHuman 人物
- 第一步:选择“文件”选项,新建关卡,选择“Basic”,并保存。
- 第二步:选择“窗口”选项,单击“Quixel Bridge”,在右上角登录。选择一个 MetaHuman,单击“Download”按钮下载,下载完成后单击“+”将其添加到工程中。点击所有弹出框的“启用缺失”按钮,然后重启工程。
- 第三步:重启后,打开之前创建的关卡,在内容浏览器的“MetaHumans”目录下找到刚才下载的 MetaHuman(BP_***),并将其拖入关卡中。图展示了引入 MetaHuman 人物后的效果。
🦋2.2 接受文字输入并显示
我们用一个带按钮的文本框模拟与数字人交互的界面。首先打开关卡蓝图,图所示为模拟与数字人交互的界面。
从“事件开始运行”开始,添加节点“创建控件”,选择类为“WBPDemo Chat”。在绑定事件时,添加节点“分配 onSend”。注意,有三个同名选项,通常选择第三个。如果类型不匹配,可以尝试选择其他选项。绑定事件后,直接将内容输出到屏幕上。
-
图展示了接受文字输入后的结果页面。
-
图展示了编译后的运行界面。
🦋2.3 数字人连接 ChatGPT 对话
连接 ChatGPT 时我们要用到插件 OpenAI的API。图所示为接人 OpenAI的API的界面。
这样,数字人就具备了对话的能力。图所示为数据人具备对话能力后的界面。
🦋2.4 让数字人开口说话
要让数字人开口说话,首先要将ChatGPT返回的内容变成声音。在UE中我们要用到speech 这个插件。图所示为 AZSpeecch 插件的界面。
另外,AZSpeech 的 “Speech to Text With Default Options” 组件可以进行语音识别,使数字人具备“耳朵”功能。
-
有了声音后,我们可以利用 MetaHumanSDK 根据声音自动生成嘴型动画。图展示了 MetaHumanSDK 的产品界面。
-
将嘴型动画与头部网格体绑定,并同时播放音频,即可实现人物说话的效果。图展示了动画与音频的合成界面。
🔎3.进阶实战
本节先来了解几种人物建模方式,之后我们可以按自己的形象创建特定的数字人。
🦋3.1 创建自己的数字人形象
下面介绍几种常用的建模方式:
-
FaceGen Modeller 建模
- 导入左、中、右三张头像照片即可生成头部模型。图展示了生成头部模型的界面。生成后,将输出为 .obi 文件,以便导入 UE。
- 导入左、中、右三张头像照片即可生成头部模型。图展示了生成头部模型的界面。生成后,将输出为 .obi 文件,以便导入 UE。
-
Blender 建模
-
Blender 是一款免费的建模软件,能够精确控制模型的细节。访问 Blender 官网下载该软件,安装成功后,需要安装 FaceBuilder 插件。图展示了 Blender 界面。
-
在主窗口右侧选择 FaceBuilder,然后单击“新建人头”按钮。图展示了 Blender 新建人头的界面。
-
单击“添加图像”,至少需要一张正面头像。添加左前方、右前方、正左侧、正右侧和背面的照片,可以更准确、方便地调整模型。添加完成后,确保“拓扑”选项设置为 “bighpoly”。
-
选中照片后,单击“对齐面部”按钮,之后可以拖动网格进行精细调整。图分别展示了网格精调界面和精调效果。
-
在网格调整完成后,单击“创建纹理”按钮,选择需要生成纹理的照片,然后单击“确认”按钮。纹理图片可以在 Photoshop 中进行优化处理。在导出前,请将位置和旋转归零。接着,单击“导出为 FBX”按钮导出模型。在弹出的导出窗口中进行如下设置:
- 将“路径模式”设置为“复制”,并选中路径模式下拉框右侧的“内嵌纹理”选项;
- 在“物体类型”选项中,按住 键,同时选中“骨架”和“网格”选项;
- 在“几何数据”设置中,将“平滑”选项设置为“面”;
- 取消勾选“烘焙动画”选项。
最后确认导出。
使用 Blender,同样可以导入 FaceGen Modeller 创建的 .obj 类型模型进行进一步的调整优化。
- MetaHuman Animation 建模
MetaHuman Animation 是 UE 于 2023 年 6 月发布的功能,允许用户通过手机快速创建模型。具体步骤如下:
- 在一台 iPhone 13 以上型号的手机上安装 Live Link Face;
- 打开 Live Link Face,选择模式为 Metahuman Animator,拍摄头部视频;
- 单击左下角的镜头试拍浏览器,选择拍摄的视频,然后单击右上角的“导出”按钮,将视频发送到计算机进行保存。
对于没有 iPhone 13 以上型号手机的读者,可以安装 Polycam 进行建模。建模完成后,将其导入 Blender 进行后期处理。在处理过程中,请注意只保留脸部和脖子裸露皮肤的部分,其余部分全部删除。
🦋3.2 导入模型到 UE,创建 MetaHuman
☀️3.2.1 由 .obj 和 .fbx 文件创建 MetaHuman
-
打开之前创建的工程,在内容目录下新建一个文件夹 ImportedModels,再在 ImportedModels 下新建一个 人物 文件夹。
-
将 .fbx 文件拖入这个 人物 文件夹中,在弹出的窗口中单击“导入”按钮。
-
在 人物 文件夹的文件列表空白处右击鼠标,依次选择 Metahuman → Metahuman 本体文件,为文件命名后将其打开。
-
点击网格体中的组件,选择刚才导入的网格体。此时模型应正对屏幕,如未正对,请手动调整视角,确保头部居中并占据屏幕大部分空间。
-
依次单击 提升帧 → 追踪活动帧 → MetaHuman 本体解算。
-
建议增加左前和右前两个角度的帧,角度不宜过大,可以进行微调。
-
选择合适的身体。
-
单击“网格体转 MetaHuman”,成功后关闭本体窗口。
-
单击“窗口”菜单,打开 Quixel Bridge。在 My Metahumans 中选中第一个,在右下角选择 Highest Quality 选项,并单击 Start MHC 选项。
-
在 MetaHuman Creator 主页选择 UE 5.1 引擎,单击自定义网格体,启用编辑,调整区域影响。图显示了 MetaHuman Creator 自定义网格体界面。
-
单击“雕刻”图标,拖动面部的点以调整面部形态。图显示了面部雕刻界面。
-
设置人物的皮肤、外貌和衣着。图显示了相关设置界面。
☀️3.2.2 由 MetaHuman Animation 创建 MetaHuman
- 配置 MetaHuman Animator:在计算机上配置 MetaHuman Animator。新建一个 5.2 引擎的空白工程,在“内容”目录下右击“MetaHuman 动画器”,再单击“捕捉源”。
- 设置捕捉源:打开捕捉源类型的配置文件,在 CaptureSource Type 选项下选择 LiveLinkFace Archives,并将 Storage Path 设置为手机捕捉的面部视频保存目录。
- 管理捕捉视频:单击“工具”菜单,打开捕捉管理器,可以看到保存的面部视频。单击“添加到队列”按钮,将视频加入工程中。
- 创建 MetaHuman 本体:在内容浏览器中右击“MetaHuman 动画器”,选择“MetaHuman 本体”。
- 导入捕获数据:打开本体文件,创建组件时选择“从镜头中”选项,选择从 iPhone 中导入的捕获数据。图 11-23 显示了导入捕获数据的界面。
- 设置活动帧:拖动镜头时间轴选择画面,依次创建正面、左前、右前三个角度的活动帧。然后进行网格体追踪网格标记、本体解算和网格体转 MetaHuman。