基于Nvidia Omniverse Audio2Face利用LLM驱动数字人对话并在UE中关联

前言

最近的课程设计是与数字人有关的项目,这里简短记录一下如何实现一个数字人,希望能帮大家规避一些坑(´▽`ʃ♡ƪ)

主要参考了如下教程:

用Audio2Face导出驱动MetaHuman的面部动画_metahuman audio2face、-CSDN博客
https://blog.csdn.net/Wenhao_China/article/details/135369976
https://github.com/metaiintw/build-an-avatar-with-ASR-TTS-Transformer-Omniverse-Audio2Face
https://blog.csdn.net/ljason1993/article/details/129995288

环境配置

具体的环境配置已经在上述链接中提到,流程如下

  1. 下载Omniverse

  2. 在Omniverse中下载audio2face

  3. 下载如果卡条的话就进入log中找到下载链接,直接从链接下载,然后删除原有的zip包,具体流程可以看相关教程(‾◡◝)

  4. 编程环境,下载一个pyhton3.8以上的虚拟环境吧,稳妥一点,然后就pip install openai(具体的实现代码可以参考我下方的实现)但是api-key可得自己充钱哦✪ ω ✪,教程在这: https://api-docs.deepseek.com/zh-cn/updates/

  5. 如果想自己体验捏脸的乐趣的话,可以在metahuman官网捏一个 https://metahuman.unrealengine.com/mhc ,然后导入ue,或者直接下载现成的 https://www.fab.com/listings/0281d63e-71f7-4e07-a344-5fa721ac4d35 登录自己的epic账号下载即可请添加图片描述

  6. 差点儿忘了,记得下载一个UE5.3(o゜▽゜)o☆,因为要和audio2face的插件适配上,我们首先要在关联Audio2Face的目录中找到适配UE版本的插件请添加图片描述

  7. 然后把插件拷贝到UE对应的插件目录下请添加图片描述

模型关联流

经过上述的操作之后我们终于可以看数字人张嘴啦(bushi,接下来让我们启动audio2face!

请添加图片描述

首先咱们要在AI Model中选择亚洲人面孔(看你项目情况嗷ヾ(•ω•`)o
选择流式输入,然后get started!
导入带有求解器的usd文件(或许你们在example里能下载成功?我不行所以就是自己导入的,加这个群里面有捏 http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=q1-5RLm0FRt75SI2irLx3Lw3A9Ic0gcS&authKey=NKcPb4%2FrUtsuYFmxnxY8kv%2BrY8MT7p4H2KdLnZ%2BIK0MIUmB8QQ0s4mfN%2BcaAAPBP&noverify=0&group_code=547033086)

或者这个 https://forums.developer.nvidia.com/t/mark-solved-arkit-audio2face-2023-1-0-is-not-working/261116

btw USD 文件通常是文本格式(ASCII)或二进制格式,核心组件包括:

  • 几何体描述(如网格、曲线)
  • 材质和着色
  • 动画和变换
  • 场景分层(Layers)
  • 引用和实例
  • 变体(Variants)

导入之后我们在StreamLivelink中选择激活,然后记住端口号,这个后面要和UE中的插件关联起来

请添加图片描述

接着我们打开audio2face组件,加入一个音频流播放模块

请添加图片描述

然后咱们还要记住这个路径,后续进行通讯需要用到(●’◡’●)

请添加图片描述

UE部分

接下来让我们打开UE,把捏好的数字人导入请添加图片描述

通过Quixel插件导入我们创建好的数字人到我们的空白关卡中

请添加图片描述

在插件中添加Audio2face插件,然后重启

请添加图片描述

紧接着打开Livelink源

### 使用Unreal Engine创建数字人 对于希望利用Unreal Engine来创建高度逼真的数字人物,官方提供了专门的MetaHuman Creator工具。该工具允许创作者通过浏览器界面轻松定制角色外观,包括但不限于面部特征、发型、服装等方面的内容[^2]。 #### 访问与设置MetaHuman Creator - 需要先登录至[官方网站](https://metahuman.unrealengine.com/)。 - 登录后按照提示选择合适的版本号完成初始化配置过程。 - 利用内置的各种参数滑杆调整直至获得满意的角色形象为止。 一旦完成了上述步骤,则可以直接导出所设计的人物资产用于后续的游戏开发或其他应用场景之中。 ```cpp // 导入必要的库文件以便于处理导入后的资源 #include "Engine/StaticMesh.h" #include "Components/SkeletalMeshComponent.h" void ImportCharacterAsset(const FString& AssetPath){ UFactory* Factory = nullptr; ObjectInitializer.NoImportText(); Factory = NewObject<UFactory>(GetTransientPackage(), UFactory::StaticClass()); FAssetToolsModule& AssetToolsModule = FModuleManager::LoadModuleChecked<FAssetToolsModule>("AssetTools"); TArray<FString> OutFilenames; AssetToolsModule.Get().ImportAssets(OutFilenames, AssetPath); } ``` --- ### 创建动物模型的方法论 当涉及到更复杂的生物如动物时,虽然没有像人类一样的专用工具链支持即时生成,但仍可以通过以下方式实现: 1. **外部建模软件制作**:借助Maya、Blender等第三方应用程序构建目标物种的身体结构,将其作为FBX格式保存下来准备移植到UE环境中; 2. **骨骼绑定与蒙皮操作**:为静态网格物体添加骨架系统使之能够响应物理法则或动画序列的影响; 3. **行为逻辑编写**:运用蓝图可视化脚本或者C++代码定义AI控制模式让虚拟生物展现出自然的动作反应特性[^3]。 ```blueprint Event BeginPlay() { // 初始化动物的行为状态机 InitializeStateMachine(); // 设置初始位置和朝向 SetActorLocationAndRotation(StartLocation, StartRotation); // 启动巡逻路径跟随机制 PatrolAlongWaypoints(); } Function MoveToNextWaypoint() { // 获取下一个导航点坐标 FVector NextPoint = GetNextPatrolPosition(); // 移动至指定地点 MoveToLocation(NextPoint); } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值