AvatarMask(骨骼遮罩)

在前面角色动画的基础上,角色在奔跑过程中捡起一块木头,双手要抱着这块木头。如果使用前面的方法,直接切换动画,那么就只剩下抱木头的动画,其它动画就没了。这时我们要使用下面的方法。

在这里创建新的一层,在这个新的层上控制抱木头的动画。

这里层属性设置中,Weight表示占有权重,Mask表示骨骼遮罩,Blending表示混合类型(Override表示重写,Additive表示在此基础上添加)。其中,Additive适用于,每个层控制不同部位的动画。当混合类型为Override且权重为1时,角色的所有动画都将是本层的。

在上面的例子中,我们需要用这一层来控制角色抱木头的动画,用到的只有双手,而其它动画和原先一样。所以,我们需要在本层的Mask中添加一个骨骼遮罩。直接右键--Avator Mask可以创建

创建好后,在Humanoid中,点击各个部位,变红表示重写时不重写这部分,还是用以前的动画。这里双手是绿色的,表示在抱着木头后,双手的动画由本层控制,其它部位的动画还是和以前一样。

IK动画

在上面,我们虽然设置好了角色抱木头的动画,但是可能角色和木头之间位置是不匹配的,我们需要把角色的双手设置到木头上的两个位置点。这个时候就需要用到IK动画了。首先要打开IK Pass,会自动执行函数OnAnimatorIK,在这个函数中我们设置角色的手和位置点匹配。

    private void OnAnimatorIK(int layerIndex)
{
// 说明当前是被Hold Log这一层调用
if (layerIndex == 1)
{
// 权重,只有在抱着木头的时候才为1
int weight = anim.GetBool(isHoldLogID) ? 1 : 0; // 左手位置匹配
anim.SetIKPosition(AvatarIKGoal.LeftHand, leftHand.position);
// 左手旋转匹配
anim.SetIKRotation(AvatarIKGoal.LeftHand, leftHand.rotation);
// 设置权重
anim.SetIKPositionWeight(AvatarIKGoal.LeftHand, weight);
anim.SetIKRotationWeight(AvatarIKGoal.LeftHand, weight); anim.SetIKPosition(AvatarIKGoal.RightHand, rightHand.position);
anim.SetIKRotation(AvatarIKGoal.RightHand, rightHand.rotation);
anim.SetIKPositionWeight(AvatarIKGoal.RightHand, weight);
anim.SetIKRotationWeight(AvatarIKGoal.RightHand, weight);
}
}

最新文章

  1. (function($){...}) (jQuery)
  2. IOS 消息机制(NSNotificationCenter)
  3. java字节流与字符流的区别
  4. 关于Split方法
  5. 关于J-LINK升级最新固件后无法连上的一点分析
  6. Android——AnimationDrawable 实现动画
  7. IntelliJ IDEA 15 创建maven项目
  8. php开发中的页面跳转方法总结
  9. Android应用程序进程启动过程的源代码分析
  10. Silk Mobile – 缩短移动应用的测试周期
  11. Intent用法
  12. jQuery动态生成不规则表格前后端
  13. RedHat Enterprise Linu…
  14. JavaEE介绍
  15. [Swift]LeetCode103. 二叉树的锯齿形层次遍历 | Binary Tree Zigzag Level Order Traversal
  16. JavaScript编程基础2
  17. cad2008 参照面板 在位编辑后无法使用
  18. android加密DESede/CBC/PKCS5Padding
  19. kail linux 系统下利用metaspolit工具渗透win7电脑
  20. python基础6--目录结构

热门文章

  1. 一个微信小程序跳转到另一个微信小程序
  2. 重写 equals() 和 hashcode()
  3. C# 各个版本特性总结
  4. 【BZOJ1049】【Luogu P2501】 [HAOI2006]数字序列 DP,结论,LIS
  5. MyEclipse使用教程:添加和更新插件(一)
  6. JAVA笔记11-Final关键字
  7. Redis常见面试问题及答案
  8. UVA 11178 Morley's Theorem 计算几何模板
  9. ZJOI2010 诸神眷顾的幻想乡
  10. iptables中DNAT和SNAT转发的配置方法