Animation View动画的编辑

动画的编辑的打开方式:一是可以通过Ctrl+6来完成,二是可以通过在project窗口鼠标右键里面的Create里面的Animation创建,三是可以通过Window窗口菜单里面的Animation里面的Animation进行创建。
其次就是在Animation View里面可以使用Animation Event,这个Animation Event的可执行函数的要求就是:函数的修饰符必须是public,函数的返回值是void,函数只有一个输入参数,输入参数的类型可以包括int,string,float,object。

Animator Translation动画的设置

在Animation State下面的设置:
LoopTime:动画的循环播放
Loop Pose :循环播放的姿势,使得动画循环播放更加自然
Cycle Offset:动画循环的偏移量
Root Translation Rotation:动画的旋转是否切合
Bake into Pose当前动画的播放是否会影响动画人物本身的位置
Base Upon:一个参照点
Root Transform Position(Y):动画的Y轴是否切合,也是动画、根动画在Y轴上的一个旋转
Root Transform Position(X,Z):动画的X和Z轴上的一个切合,根动画X,Z轴上的旋转

Animator Controller动画控制器的窗口

layers:动画的分层
Paramenters:存放条件参数用来进行动画状态的切换
Weight:一个层的权重,权重越高,层里面的动画就是越明显
Mask:放置动画人物骨骼的地方,也是放avatar Mask
Blending:混合,有两种属性,Override(覆盖)和Additive(添加),第一个就是可以使用Avatar Mask 做动画的部分肢体覆盖,第二个就是将不同的动画进行一定的融合
Sync:复制一个层的动画
Timing: 当打开Sync时,才可以打开该选项。这时同步层可以取得被同步层的控制权
IK Pass:使用反向动力学的时候需要将这个点击上
AnyState:满足条件可以将任意状态切换为连接的状态
State:单个动画
Sub State Mechine:动画组
Blend Tree:动画混合树
可创建条件参数:float, int, bool, Trigger

Animator Controller动画控制器组件(Component)

Update Mode:动画的更新方式,包含Normal(普通状态下与Update进行每一帧的调用),Animate Physical(根据物理状态下的动画更新,与FixUpdate进行配合),Unscaled Time(常用于UI组件动画的使用)
Culling Mode:用于场景优化,包含Always Animate(指动画在视角看不见的地方仍会进行动画的播放),Cull Update Transform(只会播放根动画,节省资源得配置,在视角看不见的地方,不会进行动画的播放),Cull Completely(当渲染器不见得时候则会完全的禁用动画。但是动画仍然在场景中,不受动画剔除的影响)

AnimatorIK

只能在OnAnimatorIK函数中使用
代码示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
​
public class Test_IK : MonoBehaviour
{public Transform look_obj;//看向的位置点public Transform left_Hand;public Transform right_Hand;public Transform left_Foot;public Transform right_Foot;private Animator my_Animator;//动画控制器public bool active=true;// Start is called before the first frame updatevoid Start(){my_Animator = transform.GetComponent<Animator>();}
​// Update is called once per framevoid Update(){}private void OnAnimatorIK(int layerIndex){if (my_Animator == null){return;}if (active){//设置各个的权重my_Animator.SetIKPositionWeight(AvatarIKGoal.LeftFoot, 1f);my_Animator.SetIKRotationWeight(AvatarIKGoal.LeftFoot, 1f);my_Animator.SetIKPositionWeight(AvatarIKGoal.LeftHand, 1f);my_Animator.SetIKRotationWeight(AvatarIKGoal.LeftHand, 1f);my_Animator.SetIKPositionWeight(AvatarIKGoal.RightFoot, 1f);my_Animator.SetIKRotationWeight(AvatarIKGoal.RightFoot, 1f);my_Animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1f);my_Animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1f);
​if (left_Foot != null){my_Animator.SetIKPosition(AvatarIKGoal.LeftFoot, left_Foot.position);my_Animator.SetIKRotation(AvatarIKGoal.LeftFoot, left_Foot.rotation);}if (left_Hand != null){my_Animator.SetIKPosition(AvatarIKGoal.LeftHand, left_Hand.position);my_Animator.SetIKRotation(AvatarIKGoal.LeftHand, left_Hand.rotation);}if (right_Foot != null){my_Animator.SetIKPosition(AvatarIKGoal.RightFoot, right_Foot.position);my_Animator.SetIKRotation(AvatarIKGoal.RightFoot, right_Foot.rotation);}if (right_Hand != null){my_Animator.SetIKPosition(AvatarIKGoal.RightHand, right_Hand.position);my_Animator.SetIKRotation(AvatarIKGoal.RightHand, right_Hand.rotation);}if (look_obj != null){my_Animator.SetLookAtPosition(look_obj.position);my_Animator.SetLookAtWeight(1f, 1f, 1f, 1f);}}else{​}}
}

Unity动画系统基础总结相关推荐

  1. Unity动画系统详解10:子状态机是什么?

    摘要:除了使用Layer还有没有更好的组织状态的方式呢?感觉一个Layer里面状态多的时候,还是很显得很乱. 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这是复(yu)习( ...

  2. Unity动画系统学习

    Unity动画系统学习 文章目录 Unity动画系统学习 AnimationState 动画状态 Animation Transitions 动画过渡 动画分层和遮罩 动画混合 1D混合 2D混合 动 ...

  3. VR开发——Unity动画系统(V客it学院技术分享)

    在我们进行VR开发的过程中,免不了需要各种各样的模型动画.那么面对这样的简单动画,我们大可以使用Unity的动画系统来完成整个事情. 前段时间我在博客看见了一篇非常不错的动画系统讲解,今天我就借花献佛 ...

  4. Unity动画系统简单介绍

    Unity动画系统知识点简单介绍(简易) 本文是学习文,其中转载某些文章,如有侵权,联系删除. 学习要点: 1.动画的分类 游戏物体的基础动画设置,UGUI设置的按钮状态,2D游戏Sprite动画,R ...

  5. Unity动画系统详解9:Target Matching是什么?

    摘要:在游戏中,经常有这种情况:角色的手或者脚需要在特定时间放在特定的位置.比如角色需要用手撑着跳过一个石头或一堵墙,或者跳起抓住房梁.Target Match就是让动画的特定片段去匹配特定的位置. ...

  6. Unity动画系统详解5:BlendTree混合树是什么?

    摘要:"Animator中有一个功能,用来解决多个动画之间的混合,经常用于移动动画之间的混合,这个功能叫做BlendTree,混合树." 洪流学堂,让你快人几步.你好,我是跟着大智 ...

  7. Unity动画系统详解4:如何用代码控制动画?

    摘要:通过上一篇咱们知道了播放动画需要使用Animator,那么如何用代码控制动画呢? 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这几周一起来复(yu)习(xi)动画系统 ...

  8. Unity动画系统常用知识总结

    Unity动画系统常用知识总结 资源导入需要注意的地方 常用的组件 Animator 组件 Avatar Mask 骨骼遮罩 Animator Controller 动画切换 Any State Ha ...

  9. Unity动画系统详解8:IK是什么?

    摘要:IK是Inverse Kinematic的缩写,也就是反向动力学.是根据骨骼的终节点来推算其他父节点的位置的一种方法.比如通过手的位置推算手腕.胳膊肘的骨骼的位置. 洪流学堂,让你快人几步.你好 ...

最新文章

  1. PHP遍历用blade标签表示,php-Laravel Blade {{$variable或’Default Text’}}无法使用网址
  2. java inner class,C# Inner Class vs. java 的inner class比较-JSP教程,Java技巧及代码
  3. Android -- 贝塞尔二阶实现饿了么加入购物车效果
  4. 特征不同取值/区间下 label 的均值曲线
  5. CoreMotion 框架
  6. rabbitMQ第四篇:远程调用
  7. AAAI 2020上的NLP有哪些研究风向?
  8. 2019/12/9 K60单片机学习
  9. 如何用流程图描述算法?
  10. init: wait for '/dev/block/bootdevice/by-name/cache' timed out and took 5007ms【学习笔记】
  11. 如何量化炒股中的上升下降趋势及k线形态_如何量化炒股之代码思维
  12. 巧用 import.meta 实现热更新
  13. Uipath Try Catch 妙用
  14. stm32---ADXL345
  15. 37. Hard Disk Drives
  16. keras简单的实际入门教程
  17. android画机器人,cdr怎么绘制安卓小人?cdr安卓机器人制作教程
  18. 产品负责人(Product Owner)的主要职责和技能
  19. Vue2.0 饿了么报错: Unexpected side effect in lis tShow computed property
  20. 全连接层替换为卷积层

热门文章

  1. python绘制星空(菜鸟级)
  2. WPF DataGrid后台添加绑定
  3. 第四次网页前端培训(CSS常用属性和盒子模型)
  4. 3Dmax怎么切换成中文模式?
  5. LibVLC+Qt调用libvlc_new在Debug下正确运行Release下崩溃(VS2008)
  6. 荣耀魔法手机magic2Android,荣耀magic2为何被称为魔法手机? 一起上手感受一下就有答案!...
  7. 怎样在Mac上剪切和粘贴文件和文件夹?
  8. 164页5万字轨道交通BIM方案建议书
  9. js vue 字符串转数字 并执行算数计算
  10. 192.168.8.1手机登陆_192.168.8.1登录入口官网地址设置手册