本文站在程序的角度介绍了目前对市面上的一些面部骨骼自动绑定方案及算法的一些心得
1.基础知识相关:蒙皮算法
1) 线性混合蒙皮
线性蒙皮公式: 其中Cji代表骨骼变换矩阵(rotation, position,和scale矩阵)。Wi代表第i个顶点的权重,V代表对应的顶点。V`由各个骨骼的累加计算得出。但是线性混合蒙皮会有糖果包装问题,如下图:
2) 四元数蒙皮(会有一些严重的断裂问题,目前unity3d不支持)
四元数蒙皮算法会将位置矩阵和缩放矩阵拆出来计算,而对旋转则采用四元数旋转插值算法来解决(线性插值(向量没有标准化),标准化线性插值(卡顿),球形线性插值(计算量大))。
3) 对偶四元数蒙皮(目前unity3d不支持)
四元数蒙皮算法的升级版,解决了四元数蒙皮的断裂问题。
2.市面的一些面部骨骼绑定插件介绍
tips:一般来说,骨骼越多,对应的骨骼融合插值算法会越复杂,同样出来的效果也会更好。如果由特别好的骨骼融合插值算法另当别论。
1)BonyFace : 3dmax上面的插件,大概由80根骨骼组成
2) ADV:maya上面的插件,看了下应该骨骼数和BonyFace应该没有太大的差别
3)Rig Logic: maya上面的插件,现在unreal的metahuman正是使用的这一套,大概由600多跟骨骼(美术同学说的,没看,可能跟真实有一些差距)。
3.metaHuman的骨骼自动绑定取巧机制(虚幻的超写实数字人插件)
此处不理解的可以跳到下面的BoneFace源码流程解析先了解基础的自动绑定流程
metaHuman的骨骼自动绑定,其实是事先已经由一套完全手工绑定好的骨骼,当生成新的数字人模型时,使用事先的骨骼绑定关系直接映射到现有的新模型上。由于metaHuman的模型都是写实类的模型,所以重定向后对整个面部骨骼的影响很小,可以继续复用原骨骼。这种做法和我现在项目所采用的blendshape重定向方案原理上是一致的。
4.metaHuman 模型技术分析
1 捏脸相关:
目前metahuman提供了三种捏脸方式。1,脸型混合插值;2,五官移动修改; 3,雕刻模式(基因库匹配值,做五官位置匹配)
2 表情驱动维度: 骨骼(大的变形),blendshape(细微的肌肉变化), 面部表情纹理(做表情时皮肤的褶皱)
3 身体:使用了18套预设身体(没有基因库)
4 毛发和皮肤系统
5 Rig Logic 面部绑定求解系统
5.BonyFace源码流程简单分析
市面上的面部自动绑定插件流程基本是统一的,区别是骨骼布局和骨骼之间的分配和约束关系。文章来源:https://www.toymoban.com/news/detail-474977.html
文章来源地址https://www.toymoban.com/news/detail-474977.html
到了这里,关于3d模型面部自动绑定插件及算法相关研究的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!