omniverse与blender交互

omniverse和blender结合有两种方式,一种是blender中的模型导入到omniverse中产生形态键动画,然后再导回blender,这种方式可以直接参见nvidia的视频guide,另一种方式是omniverse直接产生动画,在blender中利用插件完成绑定,我们这里介绍后面这种。

这篇博客主要介绍利用Omniverse驱动人体模型面部表情映射的大致基本流程,主要介绍两套工具之间的桥梁,不会具体到每个参数,如果需要系统学习,可以单独找omniverse或者blender的课程,它们会介绍的更详细。开始之前,需要有blender操作基础,以及对Riggfy,ARP(Auto Rig Pro)和Faceit 动画绑定插件有一些基本了解。

一、audio2gesture in omniverse

从这里开始:

右侧如果没有Audio2Gesture菜单,可以从Animation菜单中打开

如果我们需要实时从麦克风或者流媒体输入音频,那么就用streaming pipeline,如果输入时音频文件,那么就用offline pipeline, base skeleton是添加骨架,涉及到骨架相关的调试可能会用到,我们暂时先用offline pipeline继续。

选择音频,然后殿军Run A2G可以看到结果

点击Record,会保存一个后缀未*.usda的描述文件

我们在Sequncer时间轴上新建一个动画序列,把动画骨骼拖到时间轴

再把之前产生的usda文件放到刚创建的时间轴上就有动画了

然后我们导出动画,格式选择fbx

导出选项可以参照下面的选择

二、audio2gesture in blender

接下来我们在blender中导入fbx文件

导入之后我们发现有异常,我们删掉mesh只保留骨骼

删掉mesh只保留骨骼后是这个样子

我们在ARP中设置骨骼驱动的源头是刚导入的骨骼动画

Target是我们要驱动的目标控制器

我们直接build bone list,骨骼的映射关系应该是不对的

我们导入预设的骨骼匹配关系

骨骼匹配映射关系文件可以在本站的文件托管服务器上下载,new对应较新版本的omniverse,new和old只是骨骼名字有区别

导入好之后我们retarget开始骨骼映射

插帧方式我们选择贝塞尔插值,然后点击确定,就完成了姿态骨骼的动画映射

如果我们对某部分的姿态位置不满意,可以通过interative tweaks来调整

更多细节的调整可以参阅ARP或者Rigfy教程

三、audio2face in omniverse

我们在audio2face工具中找到solved_arkit的几个工程,这几个工程是可以直接输出arkit blendshape的,这是为了方便我们后面导入faceit驱动面部表情

同样,我们在audio2face标签栏选择音频

然后点击选择blendshapeSolve求解器,之后点击export weights就可以导出blendshape权重了

json convertion if needed

如果我们需要把audio2face导出的json转化成 livelinkface保存的csv格式,可以通过博主提供的脚本来转换,如果后面json文件也能成功导入就不需要做转换(faceit和blender有的版本在arkit模式下只能导入livelinkface的数据,有的版本则都可以导入)

四、audio2face in blender

我们先在设置中设置头部骨骼和控制器

我们在audio2face中,选择live link face导入csv,或者audio2face导入json

导入广成中记得创建Shapes Action

然后点击确定

我们打开动画时间轴/非线性动画,就可以看到动画导入了

资源、脚本、插件地址:https://oss.p-chao.com/software/addon/blender/

发表评论