请选择 进入手机版 | 继续访问电脑版

[相关技巧] Unity通过BlendShape实现面部表情过渡切换Animation教程

[复制链接]
查看39 | 回复5 | 2021-9-13 15:39:22 | 显示全部楼层 |阅读模式
目次

一、媒介

点关注不迷路,持续输出

  1. Unity
复制代码
干货文章。
嗨,大家好,我是新发。
  1. Unity
复制代码
项目中,我们大概 必要 实现
  1. 3D
复制代码
脚色 表情的过渡切换,比如像如许 子:

在这里插入图片形貌

在这里插入图片形貌

  1. Unity
复制代码
中怎样 做这个功能呢?本日 就来跟大家讲一下。

二、BlendShape(动画师、MAYA)

  1. Maya
复制代码
中,动画师可以利用
  1. BlendShape
复制代码
绑定好表情,动画师只必要 制作好
  1. A表情
复制代码
  1. B表情
复制代码
  1. C表情
复制代码
等,通过
  1. BlendShape
复制代码
就可以很方便地举行 表情之间的插值过渡了。
留意
  1. BlendShape
复制代码
与骨骼动画不同,骨骼动画必要 先将网格绑定骨骼,由骨骼来驱动网格;而
  1. BlendShape
复制代码
不必要 骨骼,
  1. BlendShape
复制代码
很得当 用作面部表情的实现。
动画师做好
  1. BlendShape
复制代码
后,
  1. Unity
复制代码
客户端程序员将模子 导入
  1. Unity
复制代码
工程中,在
  1. Unity
复制代码
中勾选模子 的
  1. Import BlendShapes
复制代码

在这里插入图片形貌

如许 ,在

  1. Unity
复制代码
中我们就可以通过
  1. BlendShape
复制代码
滑块来调节表情的过渡啦。

在这里插入图片形貌

效果 如下:

在这里插入图片形貌

三、Unity控制BlendShapes

上面我们是手动调节

  1. BlendShape
复制代码
的滑块,我们怎样 通过代码来控制
  1. BlendShape
复制代码
呢?
有两种方式:

  • 1、直接通过
    1. SkinnedMeshRenderer
    复制代码
    组件访问
    1. BlendShape
    复制代码

  • 2、制作成
    1. Animation
    复制代码
    ,在
    1. Animation
    复制代码
    中控制
    1. BlendShape
    复制代码
    ,然后由代码来控制
    1. Animation
    复制代码

1、SkinnedMeshRenderer控制BlendShape

接口:

  1. // SkinnedMeshRenderer.cs
  2. public void SetBlendShapeWeight(int index, float value);
复制代码

参数

  1. index
复制代码
就是
  1. BlendShape
复制代码
的索引,从0开始,参数
  1. value
复制代码
是滑块的值,范围:
  1. 0~100
复制代码

在这里插入图片形貌

2、Animation控制BlendShape

动画师将表情制作成

  1. Animation
复制代码
,特定组合的
  1. BlendShape
复制代码
实在 就是一个表情,比如眉毛上抬,眼睛睁大,嘴巴伸开 这三个组合起来是一个表情,如许 做成
  1. n
复制代码
  1. Animation
复制代码
动画。

在这里插入图片形貌

把这些动画构造 到

  1. Animator
复制代码
状态机中。

在这里插入图片形貌

关于

  1. Animator
复制代码
的利用 ,可以参见我之前写的这篇文章:关于Unity动画状态机Animator利用 教程

接着,我们就可以通过播放动画来实现表情的过渡了。

  1. // Animator.cs
  2. public void CrossFade(string stateName, float normalizedTransitionDuration);
复制代码

参数

  1. stateName
复制代码
是动画状态名称,比如
  1. smile
复制代码
,参数
  1. normalizedTransitionDuration
复制代码
是动画融合归一化时间。
我们可以测试下
  1. normalizedTransitionDuration
复制代码
分别为
  1. 0
复制代码
  1. 0.3f
复制代码
  1. 1
复制代码
三种环境 的融合效果 :
为0的环境 :

在这里插入图片形貌

为0.3f的环境 :

在这里插入图片形貌

为1的环境 :

在这里插入图片形貌

四、竣事 语

好了。
喜欢

  1. Unity
复制代码
的同砚 ,不要忘记点击关注,假如 有什么
  1. Unity
复制代码
干系 的技术困难 ,也欢迎留言或私信~
感谢阅读,我们下次再见。

在这里插入图片形貌

以上就是Unity通过BlendShape实现面部表情过渡切换Animation教程的具体 内容,更多关于Unity通过BlendShape实现面部表情过渡切换Animation的资料请关注脚本之家别的 干系 文章!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 下沙消掉 | 2021-9-19 01:56:14 | 显示全部楼层
楼上的说的很多!
回复

使用道具 举报

avatar 123456914 | 2021-9-21 05:21:06 | 显示全部楼层
知识就是力量啊!
回复

使用道具 举报

avatar 阿阳937 | 2021-9-24 18:22:51 | 显示全部楼层
收藏了,怕admin楼主删了!
回复

使用道具 举报

avatar 无将大车 | 2021-10-9 14:34:01 | 显示全部楼层
写得实在太好了,我唯一能做的就是默默顶贴!
回复

使用道具 举报

admin楼主的头像能辟邪啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则