zoukankan      html  css  js  c++  java
  • Spine学习五- spine动画融合

    在许多地方,都需要用到动画融合,unity的新版动画系统已经能够很方便的进行动画融合,那么使用spine的动画状态机的情况下,如何来进行动画融合呢?

    官方有两种方案,一种是使用混合动作实现,另一种是使用spine的动画状态机实现,这里讲解一下状态机的实现:

     1 public class cartoonCombine : MonoBehaviour {
     2 
     3     SkeletonAnimation skeletonAnimation;
     4     AnimationStateData stateData;
     5     Spine.AnimationState state;
     6     public float mixTime = 0.5f;
     7     public float mixTime2 = 0.5f;
     8     void Start () {
     9         
    10         skeletonAnimation = GetComponent<SkeletonAnimation>();
    11         state = skeletonAnimation.AnimationState;
    12         //获取状态机动画数据
    13         stateData = skeletonAnimation.SkeletonDataAsset.GetAnimationStateData();
    14 
    15         //设置动画混合,第一个参数是 当前动画,第二参数是下一个动画,第三个参数是从当前动画过度到下一个动画所需时间
    16         stateData.SetMix("walk", "run", mixTime);
    17         stateData.SetMix("run", "walk", mixTime2);
    18 
    19         skeletonAnimation.AnimationState.SetAnimation(0, "walk", true);
    20 
    21     }    
    22     
    23     void Update () {
    24 
    25         if (Input.GetKeyDown(KeyCode.A))
    26         {
    27             skeletonAnimation.AnimationState.SetAnimation(0, "run", true);
    28         }
    29 
    30         if (Input.GetKeyDown(KeyCode.D))
    31         {
    32 
    33             skeletonAnimation.AnimationState.SetAnimation(0, "walk", true);
    34         }
    35     }

    将该脚本挂到一个挂有 SkeletonAnimation 组件的物体上,需要确保 SkeletonAnimation的Spine资源里面有"walk" 和"run"这两个动画,否则会出错,然后在运行状态下查看动画融合的效果。

  • 相关阅读:
    Robotframework自动化6-基础关键字介绍(3)
    Robotframework自动化5-基础关键字介绍(2)
    Robotframework自动化4-基础关键字介绍(1)
    Robotframework自动化3-APP启动
    Robotframework自动化2-Windows环境搭建
    Robotframework自动化1-Windows环境搭建
    python2与python3同时安装
    Fiddler的基本界面介绍
    Fiddler的安装和APP抓包
    正则表达式
  • 原文地址:https://www.cnblogs.com/leiGameDesigner/p/9114000.html
Copyright © 2011-2022 走看看