ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Unity-Animator 动画控制器和动画融合树

2022-07-29 16:02:21  阅读:219  来源: 互联网

标签:动画 控制器 cc 动画片 Unity 添加 Animator


动画控制器

1:创建一个新的动画控制器(右键 → Create → Animator Controller)
2:在动画控制器中添加动画片段(将需要的动画片段拖入)
3:添加动画间的流转(在动画片段上右键 → Make Transition)
4:添加动画流转触发条件(动画控制器左上角的Parameters → 加号)一共有四种触发条件,根据需求进行添加
5:将动画流转触发条件和动画流转关联(点击动画流转第三步在动画之间连的线 → 选中详情面板中的Conditions,对其添加第四步添加的触发条件)
6:代码控制
public Animator cc;获得游戏物体上的Animator组件
cc.SetBool("IsRun", Input.GetKey(KeyCode.Q)); 触发状态跳转条件。

动画是否循环播放是调整动画片段上的Loop Time,和动画控制器没有太大的关系
动画是否立刻跳转要调整动画流转右侧的详情面板中has Exit Time,当前动画是否要播放玩(勾上的话要等当前动画播放完毕才能跳转到下一个动画)。

动画融合树

1:创建一个动画控制器
2:在动画控制器中添加动画片段
3:右键选中Create New BlendTree In State,这时会自动创建一个Blend。
4:双击进入,更改动画跳转名称,在右侧的详情面板中点击加号选中Add Motion Field,并将要融合的动画片段拖入。
5:代码控制
cc.SetFloat("Speed", new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")).magnitude);
动画融合可以将待机,移动,跑步,全力跑等多个类型的动画进行融合

2D融合树

1:创建一个动画控制器
2:在动画控制器中添加动画片段
3:将右侧详情面板的Blend Type 更改成2D Freeform Directional,创建两个Float的变量,将右侧面板的Parameters的对应参数进行更改,点击加号添加动画片段和将PosX和PosY对应的数值进行更改。
4:代码控制

public Animator cc;
void Update()
{
    Vector3 dir = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
    cc.SetFloat("X", dir.x);
    cc.SetFloat("Y", dir.y);
}

2D融合,可以在拥有前进,后退,左移,右移,待机五个动画片段的情况下,对其进行融合使其更加的顺滑,且能够实现右前方斜向移动等。

标签:动画,控制器,cc,动画片,Unity,添加,Animator
来源: https://www.cnblogs.com/wuzhongke/p/16529519.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有