Unity 中使用 Animator 控制 BlendShape 的 AnimationClip 播放

在 Animato Controller 中分成 3 层

(1) FaceLayer 表情基本层,主要是各种基本表情

(2) FaceBlinkLayer 表情眨眼,这个一般是在一个基本表情播放完成后,然后间隔眨眼

(3) FaceMouthLayer 口型

表情制作可能分

(1)

精细表情,这个就是整个表情和口型都是在 Animation 或者 Max 中 Key 帧中制作出来。在 FaceLayer 播放,播放完成后,在 FaceBlinkLayer 播放眨眼

(2)

基本元件,制作几种基本元件,类似哭、笑、生气等几种,然后使用这几种播放,在 FaceLayer  播放,播放完成,在 FaceBlinkLayer 间隔播放眨眼

animator controller 中遇到的问题

(1)

播放一个 blendshape 的 animationclip ,如果当前的 animationclip 没有播放完,直接播放下一个 animationclip ,会导致 blendshape 权重设置错误,口型卡主之类的

解决方法

将 blendshape 权重值全部重置初始值,然后再进行下一个 animationclip 的播放

animator controller 中多层遇到的问题

(1)

FaceLayer 中没有设置 MouthA 这个 blendshape 权重,FaceMouthLayer 设置 MouthA 这个权重,但是多层混合后,MouthA 却不是 FaceMouthLayer 设置的 MouthA 权重

解决方法

将 FaceMouthLayer 的混合方式从 Addition 改成 Override

其它层

(2)

问题

(2.1)

动画是播放了部分,例如眼睛转动没有播放,可能是 mask 不对的问题

 

只要添加对应的骨骼就可以了

(2.2)

blendshape 突然不起作用了,可能是 blendshape 动画导出的时候没有了

应该是

只要重新导出就可以了

(2.3)

(6)

Animator Controller 配置

(6.1)

这三层必须要有,名字必须是对应的名字

(6.2)

每一层的 Layer 名字,状态名字,动画名字必须是这个,程序要使用这些名字去替换资源

(6.3)

每一层 Mask 设置

 

(6.4)

新建对应的 AvatarMask

AvatarMask 设置

Humanoid 设置

Transform 目前只设置这几个

 

(6.5)

Prefab 上挂组件,Blink List 是随机从数组中挑选眨眼动画播放, Interval 是播放眨眼间隔, AvatarName 对应的是 Assets\AsbRes\Emotion\Mei 目录下的名字,不同 Avatar 配置不同名字,根据这个去查找资源

 

 

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值