求教unity 使用Animator 控制spine动画

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教unity 使用Animator 控制spine动画相关的知识,希望对你有一定的参考价值。

卡拉部分收集有瑕疵的spine动画教程sj百度网盘免费资源在线学习   

 链接: https://pan.baidu.com/s/1oEgF4BettT8fvoRjp_bWsg

提取码: stec    

卡拉部分收集有瑕疵的spine动画教程sj 可换装练习的官方切片 9、技能动作与特效讲解.mp4 8、死亡动作.wmv 7、攻击动作.mp4 6、跑步动作.wmv 5B、受击制作.mp4

 4、待机制作.flv 4B、待机补充.mp4 

3、骨骼创建、蒙皮与IK运用.mp4 2、原画导出及spine导入.mp4 1、软件入门与动画导出.mp4 12、皮肤教程.wmv 11、官方换肤.flv 10、路径与变换约束.flv    


参考技术A 1、对于解决图片已经动画模糊问题,我们一般都是选择查看我们的资源图片是否超过了我们的最大值以及图片的格式化是否为压缩,这些都有可能导致我们的图片模糊以至于播放发动画也会模糊。

2、另一个解决办法是对unity项目进行设置,打开你的项目工程,在菜单栏选择编辑之后会看到一个项目设置,选择项目设置的质量如图接着就会看到右边的属性面板设置,这个时候你左键选择Default下的下三角箭头就可以进行设置,可以看到有你需要发布对应平台的一些图片质量的设置,根据自己的项目需求进行设置。

3、还有一个种设置方法是进行build设置本回答被提问者采纳

Unity Animator简单使用

在Unity中有两个动画系统,Animation和Animator,它们两个虽然都是关于动画播放的组件,但它们之间有很多的不同点。Animation是老版本就存在的动画系统组件,但Animator是unity4.6版本之后才拥有的组件;控制一个动画的播放一般都使用Animation,控制多个动画播放一般使用Animator,因为Animator 有一个动画控制器,俗称动画状态机,用于切换动画非常的方便;Animator 缺点就是占用内存比Animation大。

动画系统的常用类:

Animator:动画控制器,控制动画的接口,用来管理多个动画;
  Animation:用于播放动画,老版中单独的一个Animation也可以完成动画的播放和切换,不过状态切换之类的需要代码控制。在新版中,状态管理部分交给了Animator;
  AnimationClip:动画剪辑片段,储存基于关键帧的动画,是用于Animation的播放动画;
  AnimationState:动画状态,用来改变单一动画的播放速度、权重、时间、层级、播放Mode,以及混合模式;
  AnimationEvent:动画事件,用于某种条件下触发自定义函数;
  StateMachineBehaviour: 动画状态机管理器拓展类,脚本继承了该类之后,绑定到Animator上某State上面。当状态发生变化,可以重载响应函数。类似触发器的响应函数。

实践

本篇主要是了解Animator的简单使用,从创建工程开始。
(1)创建一个图片对象,选中图片按下Ctrl+6打开Animation动画编辑器制作单个动画。

(2)制作简单移动动画
我希望按下实现左右移动,在Animation编辑器中点击Add Property,选择Anchored Position,选择x坐标,选中时间线为零时候的帧,输入一个起点坐标值

将帧拖至相应的时间点,输入终点的坐标值

然后保存起来,一个简单的从左到右移动动画和动画控制器就做好了。

接下来要制作一个从右到左移动的动画,使用A键控制从右向左移动动画的播放,使用D键控制从左到右。
(3)为了方便,直接复制下图所示playfor这一动画,然后将被复制出来的动画文件命名为playback,双击playback改变x坐标点的起点终点



选中playfor和playback将循环播放关闭

(4)打开player动画控制器

创建一个新的state并设置为默认播放的空状态动画,使playfor不是自动播放

将playback拖进控制器

右键选中NewState ->Make Transition,然后连线到playfor,这是从左到右移动
重复上一步将playfor与playback相连如图:

点击NewState与playfor的连线,选择Parameters,并点击+号,选择想用的触发类型,这里选择的是int值,设置当play的值为1时动画由NewState过渡到playfor,play的值为2时由playfor过渡到playback,播放完playback自动返回到NewState状态



(5)使用代码控制动画播放

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AnimatorController : MonoBehaviour


    Animator ani;
    // Start is called before the first frame update
    void Start()
    
        ani = transform.GetComponent<Animator>();
    

    // Update is called once per frame
    void Update()
    
        if (Input.GetKeyDown(KeyCode.D))
        
            ani.SetInteger("play",1);
            Debug.Log("从左到右");
        
        else if (Input.GetKeyDown(KeyCode.A))
        
            ani.SetInteger("play",2);
            Debug.Log("从右到左");
        
    


(6)效果展示

以上是关于求教unity 使用Animator 控制spine动画的主要内容,如果未能解决你的问题,请参考以下文章

100个 Unity实用技能☀️ | Unity 复用动画控制器 Animator Override Controller 的简单使用

100个 Unity实用技能☀️ | Unity 复用动画控制器 Animator Override Controller 的简单使用

Unity动画☀️通过 StringToHash ,控制Animator

Unity3D Animator控制参数和添加事件

Unity 复用动画控制器animator override controller的使用

Unity 复用动画控制器animator override controller的使用