(Animator详解二)Unity Animator的基本属性

2023-11-03

在Inspector下

Animator的第一项为状态机的名称(注意:这里的名称不是动画名称)


Tag 当前动画的Tag标签,可以通过Tag值来处理一些逻辑


Motion:动画片段的名称


Speed:动画的播放速度:1表示正常播放,   

                                        speed >1 表示加速   0< speed<1,表示减速

                                        speed < 0 表示倒放  

动画的speed一般是不可更改的,如果需要更改需要勾选下方Parameter 


Multiplier  会被激活,此时动画的速度会是与multiplier变量的乘积 是float变量


Motion Time :表示播放动画片段的特定时间点 0~1  0代表动画片段的开始,1表示结束,也是需要关联一个float变量   比如0.5 表示从动画的中间播放  (和Cycle Offset有一定区别)


Mirror:表示将动画镜像(只对人形动画管用),需要关联一个bool类型的变量


Cycle Offset :动画偏移,范围是0~1 需要关联一个float变量 值为0.5f 表示从动画的中间播放,(只是更改了一下播放的位置,并不是分割,播放的动画还是完整的)


Foot IK: :IK的动画矫正机制  

这个属性需要特殊说明一下,在我们使用了Avatar替身系统之后,我们角色的骨骼会出现一些手和脚偏移的情况,unity 为了保证骨骼的正确性,提前骨骼系统下正确的手脚位置记录下来,放在了4个IK Goal上,如下图所示,手部和脚部红色的球,unity认为使用原来的骨骼系统时,角色的手应该放在这个位置,   手肘处是IK Hint 可以通过它来防止肘部关节在运动时出现的一些奇怪的扭曲,

Foot IK的作用就是把我们脚部的实际位置向这里的IK Goal的位置拉近一点,只是略微调整手脚动画的位置,它可以一定程度上改善手脚部动画的不自然,但不一定能满足高质量的动画需求

为了使用IK ,在动画层级这里需要勾选IK Pass,这样我们就可以在脚本里调用相关的IK方法了。

   
    //IK goal的权重范围是0~1  数值越大 脚部的位置越靠近IK goal
    [Range(0,1)] public float weight = 0;

    private void OnAnimatorIK(int layerIndex)
    {
        //设置右脚的值为零点位置
        animator.SetIKPosition(AvatarIKGoal.RightFoot, Vector3.zero);
        //设置右脚的权重
        animator.SetIKPositionWeight(AvatarIKGoal.RightFoot, weight);
    }

如果加上一些射线检测 我们可以根据它开发出脚步适应地形的效果


Write Defaults:写入默认值,unity官方API解释为  AnimatorStates 是否为其运动执行未动画化的属性写入默认值    (???看不懂,跟没说一样???)

在查了一些资料后,这里解释一下unity 的生命周期OnEnable 在运行开始时,unity会执行一次OnEnable 此时unity会遍历角色对象下所有的脚本,以及animator里所有的动画片段 ,我们知道AnimationClip(动画片段)是描述了物体的位移、旋转以及缩放属性(当然 动画也可以描述物体的材质变化 以及脚本属性) 这里举个例子,比如我们做一个简单的开门关门动画,在开始运行时,unity 会遍历OpenDoor和CloseDoor的动画属性,如果更改了某些参数,就把这个参数记录下来,未更改的参数写入默认值,有兴趣的小伙伴参考一下这篇文章,写的很详细

[Unity] AnimatorStates中的write defaults详解_Rickshao1993的博客-CSDN博客


这里在额外说一下一些脚本API

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

public class NewBehaviourScript : MonoBehaviour
{
    public Animator animator;
   
    public AnimatorStateInfo currentStateInfo;
    // Start is called before the first frame update
    void Start()
    {
        animator = character.GetComponent<Animator>();
//通过层索引值获取当前状态机的动画状态
        currentStateInfo = animator.GetCurrentAnimatorStateInfo(0);
//通过层名称获取当前状态机的动画状态

        currentStateInfo = animator.GetCurrentAnimatorStateInfo(animator.GetLayerIndex("Base Layer"));
     
    }

    void Update()
    {
     
        
    }
    
}

AnimatorStateInfo动画状态信息,可以根据索引值和名字来获取当前层播放的动画,当然这里只是演示,正确的用法应放在Update() 里实时检测当前的动画

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(Animator详解二)Unity Animator的基本属性 的相关文章

  • Unity-AR 简介

    Unity AR 简介 现有Unity AR Sdk ARKit 苹果推出的AR开发平台 ARCore Google 推出的增强现实 SDK ARFoundation ARFoundation是ARKit XR插件和ARCore XR插件
  • Unity动画控制器animator.CrossFade

    需要特别注意 1 CrossFade虽然可以不用任何逻辑来链接而直接跳转 但是CrossFade只能覆盖其他动画 当当前动画播放完毕而没有跳出这个动画时再次调用CrossFade将会失败 造成动画依旧停在原位 参数animator Cros
  • UnityVR--组件3--Line Renderer--线性渲染

    目录 线性渲染组件简介 绘制线条Line Renderer组件介绍 绘制拖尾Trail Renderer组件介绍 应用1 使用Line Renderer绘制线段 应用1实现 使用系统工具或自定义工具绘制线段 应用2 Trail Render
  • Unity之获取游戏物体对象或组件的几个方法

    文章目录 前言 通过物体名称获取对象 GameObject Find Transform Find 通过物体标签获取对象 GameObject FindWithTag GameObject FindGameObjectWithTag Gam
  • Unity与Android的Back键冲突解决

    Unity与Android的Back键冲突解决 上一篇的最后留下了两个问题 Unity视图下横屏闪退 Unity视图下Android无法响应back返回上一activity 对于第一个问题 应该是Unity横屏下视图的某些设置跟Androi
  • Unity打开工程时卡住的问题

    自从Unity升级了一个版本后 Unity打开工程卡住的问题越来越严重了 具体表现为 选择工程后 Unity窗口消失 但进程还在 有时候等个几分钟能出来 有时候等10分钟都不见得能出来 直观感受上看 似乎是Unity加载工程的时候某一步卡了
  • unity: C#的Action Event Delegate的异同

    目录 一 Action 二 Event 三 Action和Event区别 四 Delegate 总结 Action Event Delegate的异同 前言 Action Event和Delegate都是C 语言中的重要概念 分别用于管理函
  • Unity保存图片到相册

    Unity保存图片到Android相册 Java 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
  • Unity打包WebGL的优化常用操作?

    1 贴图部分优化 如果贴图格式时2048 在不影响画面效果的情况下 改成1024或者5 12 还可以缩小包体 2 压缩和解压缩问题 WebGL打包的时候分三种压缩情况 gzip 比Brotli文件打 但打包快 http和https都支持 B
  • Unity旋转以及万向锁问题

    我之前研读了一些关于unity旋转相关的博客 一直想抽个时间写个总结 但是由于实习太忙一直没有写 趁着今天请了假晚上有时间把这段时间一些学习心得写出来 Unity inspector面板中的Rotation 在unity中 想必大家最先接触
  • Unity2D:缩放游戏对象而不缩放其子对象

    我有一个敌人 里面有孩子 敌人也有死亡动画 在死亡动画中 使用动画师 我将敌人缩放到适当的大小 然而 敌人内部的孩子也被缩小 即使我在孩子上有一个动画 我已经调整了它的大小 我还在这个孩子上添加了锚点位置 有没有办法既能缩小敌人的规模 又能
  • Unity万向节死锁解决方案(2023/12/4)

    1 万向节死锁无法解决 这是因为它的特性就是如此 就像玻璃杯就是玻璃 这不可否认 别钻牛角尖昂 2 大多数情况下欧拉角足够用 例如 CF 摄像机不可能绕z轴旋转 x轴旋转也不会超过九十度 因为那样人物的腰子会被扭断 塔防游戏 保卫萝卜 吃鸡
  • unity3d 自定义的图片无法放入source image中

    须将图片的texture type改为 sprite
  • Unity学习笔记

    一 旋转欧拉角 四元数 Vector3 rotate new Vector3 0 30 0 Quaternion quaternion Quaternion identity quaternion Quaternion Euler rota
  • 使 ObjectAnimator 动画持续时间独立于开发人员选项中的全局动画师持续时间比例设置

    当恒定且不可修改的速度至关重要时 如何使 ObjectAnimator 独立于 Animator 持续时间比例 开发人员选项设置 我注意到对此没有明确的答案 您可以通过反射调用隐藏的 API 来完成此操作 Get duration scal
  • VS2022 | 显示Unreal Engine日志

    VS2022 显示Unreal Engine日志 视图 gt 其他窗口 gt Unreal Engine日志 视图 gt 其他窗口 gt Unreal Engine日志
  • U3D游戏开发中摇杆的制作(UGUI版)

    在PC端模拟摇杆 实现玩家通过控制摇杆让玩家移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine using Unity
  • U3D游戏开发中摇杆的制作(NGUI版)

    在PC端模拟摇杆 实现控制摇杆让玩家或者物体移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine public clas
  • 游戏开发常见操作梳理之NPC药品商店系统(NGUI版)

    后续会出UGUI Json的版本 敬请期待 游戏开发中经常会出现药品商店 实际操作与武器商店类似 甚至根据实际情况可以简化设置 废话不多说 直接上代码 药品商店的源码 using System Collections using Syste
  • 游戏开发常见操作梳理之角色选择一

    进入游戏后 我们经常会进入角色选择的界面 通常是左右两个按钮可以更改角色供玩家选择 对于这种界面我们通常使用数据持久化将角色信息存储起来 接下来的笔记中 我将使用自带的数据持久化系统对其进行操作 实现角色的选择页面 后续会更新xml系列的文

随机推荐

  • Java学习笔记33——特殊操作流

    特殊操作流 特殊操作流 标准输入输出流 打印流 字节打印流 字符打印流 用字符打印流改进复制Java文件 对象序列化流 对象序列化流 对象反序列化流 对象序列化流的三个问题 Properties Properties作为Map集合的使用 P
  • 全连接神经网络、卷积神经网络

    全连接神经网络 卷积神经网络 前言 全连接神经网络 介绍 结构 损失函数 梯度下降 链式法则 反向传播 总结 卷积神经网络 背景 结构 卷积 Convolution 池化 Max Pooling 激活机制 Example 风格迁移 前言 刚
  • 【华为OD机试c++】We are a team(C++ Python Java)2023 B卷

    题目描述 总共有 n 个人在机房 每个人有一个标号 1 lt 标号 lt n 他们分成了多个团队 需要你根据收到的 m 条消息判定指定的两个人是否在一个团队中 具体的 消息构成为 a b c 整数 a b 分别代表两个人的标号 整数 c 代
  • java整合spark迁移hive数据到mongo

    1 SparkSession配置 SparkSession sparkSession SparkSession builder appName hive mongo master local enableHiveSupport config
  • IDEA创建SpringBoot项目并整合SSM+Redis

    1 创建SpringBoot项目 1 File gt New gt Project 选择Spring Initiatilizr 2 点击下一步 填入相应的GroupId 选择Java Version等 在选择下一步 3 选择包依赖 如果只是
  • 【Linux入门之密码登陆】centOS密码输入正确却登陆不上,原来是我误会了

    搜索Linux修改密码 出来的基本都是修改root用户的密码 而我的GUI界面一打开显示的用户列表里是普通用户 每次登陆我都使用我刚改好的root密码 自然密码错误 无法登陆 我还跑到百度搜 centOS密码输入正确却登陆不上 等等相似的描
  • springboot项目热部署

    快捷键Ctrl Alt Shift 选Registry 勾选下面这个 然后 apply一下 pom xml
  • sc不是内部命令也不是外部命令处理方法

    sc不是内部命令也不是外部命令 用户环境变量里path里加上 SystemRoot system32
  • 【小沐学写作】程序员必备技能:在线协作文档汇总

    文章目录 1 简介 2 微软Office在线文档 2 1 功能简介 2 2 使用费用 2 3 用户体验 3 石墨文档 3 1 功能简介 3 2 使用费用 4 腾讯文档 4 1 功能简介 4 2 使用费用 5 语雀 5 1 功能简介 5 2
  • SQL grouping sets 子句

    grouping sets子句允许你指定多个group by 选项 增强了group by 的功能 可以通过一条select 语句实现复杂繁琐的多条select 语句的查询 并且更加的 高效 解析存储一条SQL于语句 下面通过使用 grou
  • 图像分割高铁扣件

    图像分割 针对高铁扣件 在对图像的研究和应用中 人们往往仅对图像中的某些部分感兴趣 这些部分通常被称为前景或目标 其余部分则称为背景 目标一般对应于图像中特定的 具有独特性质的区域 独特性质可以是像素的灰度值 物体轮廓曲线 颜色和纹理等 为
  • GBDT(GBM)调参方法

    GBM参数 总的来说GBM的参数可以被归为三类 树参数 调节模型中每个决定树的性质 Boosting参数 调节模型中boosting的操作 其他模型参数 调节模型总体的各项运作 GBDT类库弱学习器参数 即定义一个决定树所需要的参数 由于G
  • 【源码分析】zeebe actor模型源码解读

    zeebe actor 模型 如果有阅读过zeebe 源码的朋友一定能够经常看到actor run 之类的语法 那么这篇文章就围绕actor run 方法 说说zeebe actor 的模型 环境 zeebe release 8 1 14
  • Java统一返回结果自动封装组件【Response-boxing】

    0 需求 统一封装返回结果 包括code message data数据 不用手动封装 通过自定义注解标记即实现封装 如果controller结果已经手动封装 则不重复封装 1 项目结构 2 创建自定义注解 import java lang
  • Paxos算法的java实现demo(只是为了简单的测试)

    Paxos 的概念我就不在这里啰嗦了 网上有很多优秀的博客 下面是我推荐的一个写的比较好的 https www cnblogs com linbingdong p 6253479 html 我们直接上代码吧 代码里面都有注释 先看一下项目结
  • 基于mulitisim14仿真的数字电子称

    参考了下面的文章做了一个数字电子称 https www renrendoc com paper 119413660 html 仿真如下 需要仿真文件的私聊
  • 中国工程院院士郑纬民:元宇宙是一个赋能实体经济的重要新赛道

    2022年3月31日 元宇宙产业委共同主席郑纬民院士在第三届元宇宙产业论坛发表了题为 元宇宙创新应用全面启航 算力是基础 的演讲 以下为郑纬民院士的演讲全文 今年全国两会中一些代表和委员提出了关于元宇宙的建议和提案 说明元宇宙已经得到了大家
  • 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验04 数组及其在程序设计中的应用(2021级)(1)

    1 索引数组排序 题目编号 Exp04 Enhance04 GJBook3 06 21 题目名称 索引数组排序 题目描述 已知n n 100 个元素的整型数组 A 未排序 一个索引数组 B 保存 A 的下标 编写程序 在不改变数组A的情况下
  • Unikernels 解读

    转载于https zhuanlan zhihu com p 29053035 Unikernels Beyond Containers to the Next Generation of Cloud是 Russ Pavlicek的一本动物书
  • (Animator详解二)Unity Animator的基本属性

    在Inspector下 Animator的第一项为状态机的名称 注意 这里的名称不是动画名称 Tag 当前动画的Tag标签 可以通过Tag值来处理一些逻辑 Motion 动画片段的名称 Speed 动画的播放速度 1表示正常播放 speed