用Audio2Face导出Unity面部动画

开始之前说句话,新年前最后一篇文章了
一定别轻易保存任何内容,尤其是程序员不要轻易Ctrl + S

在A2F去往Unity的路上,还要经历特殊Blender,自己电脑中已下载好的可能不是很好使。

如果想查看UE相关的可以跳转到下边这两篇链接

1. 用Audio2Face驱动UE - MetaHuman

2. 用Audio2Face导出驱动MetaHuman的面部动画

如果在操作的时候导致模板usd文件损坏,可以加QQ群(点击不能进群后,右键复制链接,在新页面复制进去就行)QQ群,获得一个新的模板

前期安装

  1. 先检查自身电脑配置看是否满足,按最小配置再带个UE可能会随时崩,按推荐来带个UE可能会略有小卡(亲身体会)。用Audio2Face导出Unity面部动画_第1张图片
  2. 下载 Omniverse Develop on NVIDIA Omniverse Platform | NVIDIA Developer
  3. 之后下载Audio2Face,如果在第三步找不到该应用,则到第四步搜索用Audio2Face导出Unity面部动画_第2张图片
  4. 接着下载Bleder Alpha USD Branch用Audio2Face导出Unity面部动画_第3张图片
  5. 打开OmniverseNUCLEUS面板,在Omniverse一栏下选择Add Server,并且增加一个Local Nucleus Server(按照自己所需配置就好)用Audio2Face导出Unity面部动画_第4张图片
  6. 安装完成后,部分机器可能需要重启,然后启动你刚下载好的Local Nucleus Server 用Audio2Face导出Unity面部动画_第5张图片

先导出一份记录面部动画的.USD文件

这一步骤和给UE的动画一样,不过到最后一步之后还有步骤,所以中间会的可以跳过

英语好的话可以直接看这个视频:Unity and Audio2Face FBX animation transfer workflow

  1. 打开Audio2Face,找到Al Models面板,然后选择亚洲人Claire面孔,当然因项目而异啊。用Audio2Face导出Unity面部动画_第6张图片
  2. 导入claire_bs_46.usd文件,选择后拖入到Stage面板下就行,记得把两个文件分开,不然叠在一起,后面看的不明显。用Audio2Face导出Unity面部动画_第7张图片
  3. 打开A2F Data Conversion面板,设置绑定BS的相关转换,选择BLENDSHAPE & JOINT CONVERSION模块,分别设置输入的动画网格和输出的BS网格,最后点击SET UP BLENDSHAPE SOLVE(处理),得到处理结果。用Audio2Face导出Unity面部动画_第8张图片
  4. 回到Audio2Face Tool面板,选择自己的音轨,设置表情之类后进行播放,可以看出二者相同了,这时候证明我们的绑定是没有任何问题的,如果有问题则返回上边重新过一遍。用Audio2Face导出Unity面部动画_第9张图片
  5. 重新回到A2F Data Conversion面板,设置导出路径,文件名字,以及想要的帧率,以及导出格式设置为USD,接着导出用Audio2Face导出Unity面部动画_第10张图片
    1. 如果报错[ Export ] No solver selected,或者弹出以下窗口,则先选择所要导出的解算器,再导出。
      用Audio2Face导出Unity面部动画_第11张图片用Audio2Face导出Unity面部动画_第12张图片
  6. 至此,导出USD文件完成,切记不要保存任何内容,除非你复制一份新的usd文件出来,不然你之后所用到的文件就都是你所保存的内容了。再或者加QQ群(点击不能进群后,右键复制链接,在新页面复制进去就行),群文件中有备份,你下载后替换即可。

接着保存真正的USD动画文件

  1. 此时,我们要删除场景内多余的内容,只保留我们接下来需要用到的部分,只保留transfer_dataclaire_bs_46用Audio2Face导出Unity面部动画_第13张图片
  2. 然后设置保存路径、文件名后另存到一份新文件中:File > Save Flattened As...  用Audio2Face导出Unity面部动画_第14张图片
  3. 接着我们打开新存好的这份文件:File > Open > File Path (你文件的路径),然后Window > Animation > TimeLine,然后点击播放 ( 空格也行 ), 看你的动画是否正常播放,正常则接着往下看,没有动画播放则退回之前的步骤重来。用Audio2Face导出Unity面部动画_第15张图片
  4. 接着在Stage面板下的joint1中,删除不需要的节点,只保留joint1你自己命名的动画文件用Audio2Face导出Unity面部动画_第16张图片
  5. Stage面板下选中joint1节点,接着在Property面板中的Skeletal Animation下,把Animation Source对象替换为在Stage面板下选中你自己命名的动画文件节点(也就是红框所选),接着Ctrl + S保存这份USD文件用Audio2Face导出Unity面部动画_第17张图片

通过Blender中转动画

  1. 通过Omniverse打开我们下载好的Blender,删除场景中原有内容然后导入刚才保存好的USD文件用Audio2Face导出Unity面部动画_第18张图片
  2. 接着打开动画视窗,然后点选导入进来的人物模型,接着播放面部动画,看是否成功,成功跳到下一步,不成功则返回之前重来用Audio2Face导出Unity面部动画_第19张图片
  3. 接着打开动作编辑器新建一个动画,在开头帧结尾帧增加两个相同的任意关键帧(我这里增加了缩放)。(因为BS动画无法被Blender导出,所以我们得添加动画,附带着BS动画导出)用Audio2Face导出Unity面部动画_第20张图片
  4. 导出FBX用Audio2Face导出Unity面部动画_第21张图片用Audio2Face导出Unity面部动画_第22张图片

Unity中使用BS动画

  1. 打开一个Unity工程,导入保存好的FBX文件,有的Unity可能需要手动勾选导入面部动画:选中导入后的物体 > Inspector面板下 > 勾选Import BlendShapes用Audio2Face导出Unity面部动画_第23张图片
  2. 接着用TimeLine,把音频和导进来的动画文件关联起来进行播放用Audio2Face导出Unity面部动画_第24张图片
  3. 然后和Blender中的效果对比用Audio2Face导出Unity面部动画_第25张图片
  4. 至此,Audio2Face中通过语音生成的面部动画,以及成功的在Unity中运行了起来,因为带有音频,所以就没给大家放GIF文件,有什么问题随时加QQ问我就行,或者QQ群也可以

  • ​​​​​​博客杂货铺
  • GoF23 种设计模式的分类和功能
  • QQ841298494

你可能感兴趣的:(Unity,unity,游戏引擎,Blender,Audio2Face,BlendShape)