动画控制方法:
SetFloat(“Run”, 1f);适合做过渡切换, 比如
anim.SetFloat(“Run”, moveSpeed);
当moveSpeed小于10时执行走,大于10则执行跑;
SetIntgger(“Run”, 1);适合几个状态切换,
anim.SetIntgger(“Jump”, 1);
anim.SetIntgger(“Walk”, 2);
anim.SetIntgger(“Run”, 3);
SetBool(“Run”, true);
如果再执行走需要先false掉:
anim.SetBool(“Run”, false);
再Walk设为true;
anim.SetBool(“Walk”, true);
SetTrigger(“Run”);
是个简化版的SetBool(“Run”,true), 执行过一次后就设为false;
有时候会有Bug需要先ReSetTrigger, 再SetTrigger;
CrossFade(“Run”, 0.03f);
不需要连线, 0.03f 的意思是拿3%的动画时间作为过渡动画;
Animator组件
Controller 这里放AnimatorController;
Avatar 这里放骨骼;
Apply Root motion 用动画中的位移, 不用代码
Update Mode 更新方式:
- 正常更新
- 物理更新
- 不受时间缩放影响
Culling Mode 剔除模式(当摄像机看不到的时候)
- 始终有动画
- 剔除动画, 但是位置旋转等transform还是会更新的
- 剔除整个动画
单个State的设置:
什么是State?
打开Animator面板, 里面每个小块都是State;
Tag 标签
Motion 这里面放动画片段
Speed 默认1, 如果是-1就是倒放
Multiplier 倍数? 暂时不知道
Normalized Time 动画的播放进度(0-1)
Mirror 镜像?
Cycle Offset 设置动画的开始时间偏移量
Foot IK 脚贴地IK
Write Defaults 无视别的动画作出的修改, 从物体的原始状态开始本动画
Parameter 使用动画自带的参数
如果有连线, 就有以下2个选项:
Solo 只能播放我一个, 不能变到其他动画
Mute 我不能播放了, 别播放我 (若2个都选中, 以我为主)
连线:
连线: Run----->Idle(默认状态), 并勾选Has Exit Time;
当Run执行一次后自动过渡到Idle状态;
Interrption Source 打断连线(用于正在动画中却突然挨揍的情况, 打断当前动画, 播放受击动画)
https://www.sohu.com/a/281834443_667928
很详细的文章
从FBX导入动画的设置
https://blog.csdn.net/dengshunhao/article/details/82428329
很详细的文章
动画层(做融合动画的, 比如一边跑一边打电话)
https://blog.csdn.net/Fenglele_Fans/article/details/80519925
很详细的文章
动画混合树(做过渡动画, 由走到跑超级流畅)
https://blog.csdn.net/weixin_38239050/article/details/79795966
很详细的文章