unityloverz 发表于 2023-3-13 12:35

Unity BlendShape脸部表情

效果展示


表情实现机制
一般都是三种中选一种
1、换模型面部贴图,UV动画实现
优点:换贴图的话,如果做得精细,可以表现得内容特别多,表情丰富,2D、3D都可以使用
缺点:贴图内存占用是个问题,美术制作麻烦,还需要代码逻辑实现
2、 面部骨骼动画
缺点:动作美术工作量问题,权重分配受限,可能没啥突出优点,都没在网上找到过类似例子......
3、 BlendShape表情
优点:美术控制Morphing参数,每个表情额外只占用一个动画信息,10-20K,表情也可以很精细,导出表情动画不需要代码,动画状态机控制
缺点:2D不能用
这里说下BlendShape实现。
BlendShape表情

BlendShape表情,主要工作量在美术,美术制作好表情动画之后,导入Unity中按照下面设置播放即可
表情动画制作

美术方面:美术额外导出一个FBX,带有蒙皮信息、骨骼动画只保留一个造型、单独面部的动画信息(Morphing)
经过测试,只有美术网格、骨骼、蒙皮、Morphing动画一起导出来的Fbx才能保留表情动画信息
表情动画导入

导入到Unity中,基础模型要开启Import BlendShape 如下图
对应的面部SkinnedMeshRenderer上会多出BlendShape的配置(调整这些值就可以看到表情变化了)


示例中选择face后在SkinnedMeshRenderer中展开BlendShapes,如下图:修改属性值则播放对应表情。值的范围 0-100


最后代码控制

SkinnedMeshRenderer.SetBlendShapeWeight 方法设置权重修改表情
示例下载

zifa2003293 发表于 2023-3-13 12:42

有没有什么快速做BlendShape表情的方法?试了一下感觉不好弄

yukamu 发表于 2023-3-13 12:44

这个工作量基本上是做美术上。
页: [1]
查看完整版本: Unity BlendShape脸部表情