zoukankan      html  css  js  c++  java
  • 第37天新版动画系统和有限状态机

    Unity标准骨骼系统(Avatar)

    配置Avatar

    1.确保模型的每块骨骼和Unity的Avatar骨骼系统对应

    2.确保模型以T Pose 站立

    .

    实线代表必须一一对应

    虚线代表可以不对应

    根变换

    Unity中的动画展示会产生两套transform

    RootTransform:每帧实时计算出来的。如果我们在建模时加入了根变换,角色就会在播放动画的时候进行一些位移,而不需要我们用代码去控制。(蓝色)

    BodyTransform:根据身体上半身和下半身综合计算出来的朝向。(红色)

    Bake into pose

    烘焙到姿势,如果选中,物体在播放动画的时候会进行位移

    Animator Controller(动画控制器(动画状态机))

    AnyState:任意状态;常用作播放死亡状态,不管当前角色在播放什么状态,都可以被杀死然后播放死亡动作;

    Entry/Exit:进入状态机和退出状态机,进入状态机默认连接默认状态动画;

    Idle:橙色(名字可以改),一般是默认动画,一般播放待机动画;

    Run:(灰色)一般状态(名字可以改)

    动画状态机的层和参数

    Layer:动画状态机中还可以嵌套一个动画状态机;

    Paramters:状态切换参数(int float bool trigger);

    控制动画跳转的条件

    int:大于 小于 等于 不等于

    float:大于 小于

    bool: true false

    Trigge:触发r

    动画切换属性

    Solo:动画切换优先;

    Mute:动画切换禁止;.

    Has Exit time :勾选上会在切换动画时上一动作结束后再播放下一动画

    ExitTime:动作切换上一动作退出时间;

    Fixed Duration/Transtion Duration:动作切换时间长度

    Transtion offset:上一动画切换到下一动画,下一动画从什么地方开始播放

    Interruption sources:打断动画切换来源:

    重要:conditions:这里面的切换动作参数是paramers里面定义的,条件可以使大于、等于、不等于、小于

    Animator组件

    Controller:AnimatorController文件;

    Avatar:放骨骼文件;

    Apply Root motion:如果勾选代表使用动画中的位移,如果不勾选代表不使用动画中的位移;

    如果当前游戏物体上的代码组件中有OnAnimatorMove,内置函数,位移就受代码控制;

    Update Mode:正常更新、物理更新(FixUpdata更新)、不受时间缩放影响;

    Culling Mode:始终有动画;

    当摄像机没有渲染该物体,就会停止部分Transform相关功能;

    当摄像机没有渲染该物体,整个动画都不会被渲染;

    有限状态机:FSM

    确定玩家的有限个状态,通过枚举来表示

    玩家在任意一个时间只可能处于一种状态, 通过state变量来表示当前玩家的状态

    当满足某个切换条件时, 状态间可以相互切换

    检查切换条件是否满足,当满足时 进行切换

    不同的状态下执行不同的行为

  • 相关阅读:
    Building Forest CodeForces
    欢迎使用CSDN-markdown编辑器
    Travelling HDU
    Card Collector HDU
    Doing Homework HDU
    Mirror Number SPOJ
    Palindromic Numbers LightOJ
    Magic Numbers CodeForces
    Xor-sequences CodeForces
    Little Elephant and Elections CodeForces
  • 原文地址:https://www.cnblogs.com/yifengs/p/14237668.html
Copyright © 2011-2022 走看看