淘先锋技术网

首页 1 2 3 4 5 6 7

动画控制方法:

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 更新方式:

  1. 正常更新
  2. 物理更新
  3. 不受时间缩放影响

Culling Mode 剔除模式(当摄像机看不到的时候)

  1. 始终有动画
  2. 剔除动画, 但是位置旋转等transform还是会更新的
  3. 剔除整个动画

单个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
很详细的文章

关于人形动画IK的API

https://www.cnblogs.com/hont/p/5100472.html
很详细