【Unity动画系统】动画状态基本属性与相关API、IK简单概述

 动画状态基本属性与相关API


  

  • Tag:判断是否当前播放着相对应Tag的动画,如果是,那么玩家的输入就是无效的。
    using UnityEngine.InputSystem;public AnimatorStateInfo stateInfo;void State(){//stateInfo = animator.GetCurrentAnimatorStateInfo(animator.GetLayerIndex("op_Rootrint_Stop_Root"));  获取当前正在播放动画的层级
    }void Update(){if(Keyboard.current.wKey.isPressed){stateInfo = animator.GetCurrentAnimatorStateInfo(0);	//获取动画所在的层级if(stateInfo.IsTag("Motion")){Debug.Log("不允许操作");return;}Debug.Log("允许操作");}
    }
  • Speed:正值加速,负值倒放(但是脚本中无法激活),要激活的话要下面的Multiplier。

  • Multiplier:使用这个值时要选择一个参数

    float animationScalar = 0f;void Start(){animator.SetFloat("Scalar" , animationScalar);
    }void Update(){if(Keyboard.current.wKey.isPressed){animationScalar += 0.1f;animator.SetFloat("Scalar" , animationScalar);}
    }

  • Animator哈希赋值
    int scalarHash;void Start(){scalarHash = Animator.StringToHash("Scalar");animator.SetFloat(scalarHash , animationScalar);
    }

  • Motion Time:表示播放当前哪一帧。如下按w就会一直播放

    int process;void Update(){if(Keyboard.current.wKey.isPressed){process += 0.1f;animator.SetFloat(processHash , process);if(process > 1){process = 0f;}}
    }
     

 

  • Mirror:镜像动画
    animator.SetBool("Mirror" , !animator.GetBool("Mirror"));	//取反则会进行镜像变化

Foot IK到简单叙述IK修正动画


反向运动学(Inverse Kinematics):通过部位的位置反向计算它们的各个父节点的旋转位移和缩放

正向运动学(forward kinematices):由屁股到末梢骨骼节点依次计算其旋转位移和缩放来决定每一块骨骼的最终位置来决定每一块骨骼的这种被称为正向动力学。

红球代表IK Goal,Unity人物角色的脚已经放在红球的位置 , 膝盖前面的则是IK Hit,防止部位出现奇怪的弯曲。

Foot IK参照的是初始的位置,调整IK Goal后不会被参考。

要在脚本内使用IK方法,必须在使用IK的层级里激活IK Pass。

public int weight;private void OnAnimatorIK(int layerIndex){	//IK回调方法animator.SetIKPosition(AvatarIKGoal.RightFoot , new Vector3(0 , 0 , 0));	//设置IKGoal的位置animator.SetIKPositionWeight(AvatarIKGoal.RightFoot , weight);	//设置IK Goal的权重,权重越高,对应部位就越跟随IK Goal,范围(0~1)
}

加上射线检测,则可以开发出脚步适应地形的效果

 

Write Defaults


Write Defaults:如果动画文件中没有描述某些属性(动画中可以更改的旋转角、位置、颜色等 )的变化,那么是否需要为这些属性写入默认值。

Animator不处理当前State包含的属性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/652609.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本地体验最强开源模型Llama3+Qnw(支持Windows和Mac)

一键运行大模型本地软件(含模型):点击下载 Meta放出Llama3模型了,也应该是这段时间里的一个科技大新闻了。 Llama一直都是开源大语言模型的领头羊驼。 而Llama3又是所有羊驼中最新的领头羊。 可以简单地来看一下官方的对比数据…

如何安全进行速卖通自养号测评操作?

对于新加入的卖家而言,进行销量测评显得尤为关键。速卖通平台上的新店往往难以获得活动的扶持,且初始流量相当有限。因此,开店的首要任务便是积极展开测评工作,努力积累初始的评论和销售记录。测评的益处颇为显著,它不…

【Linux系统编程】基本指令(一)

目录 1、ls指令 2、pwd指令 3、cd指令 4、touch指令 5、mkdir指令 6、rmdir指令与rm指令 7、man指令 8、cp指令 指令就像刚学windows时学的单击、双击一样,都是操作操作系统 在windows下,文件通常会放在文件夹中,而Linux中同样有文件…

Java设计模式 _创建型模式_原型模式(Cloneable)

一、原型模式 1、原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能比较好。一般对付出较大代价获取到的实体对象进行克隆操作,可以提升性能。 2、实现思路: (1)、需要克隆的…

python中怎么注释多行

多行代码注释 方法一:先选中要注释的段落,然后按下“ctrl/”,即可实现多行代码的注释。效果如下: 再一次按下“ctrl/”就可以取消注释。 方法二:跟注释单行一样在每一行前面输入“shift#”。 #r(i-arr[idx])*rat[idx]…

62、回溯-N皇后

思路: N皇后问题要求在一个nn的棋盘上放置n个皇后,使得它们不能相互攻击。皇后可以攻击同一行、同一列,以及两个对角线方向上的其他皇后。解决这个问题意味着找到所有可能的棋盘配置,每个配置都符合上述条件。 1、初始化数据结构…

【iconv】Linux c++ 中文字符串转十六进制 GBK 编码/内码

文章目录 问题描述c 代码CMakeLists.txt参考链接 问题描述 Linux 系统默认使用的是 UTF-8 编码,并且 c 中没有标准库可以直接将中文字符转为 GBK 编码/内码。因此需要借助 iconv 库来实现。 在实现代码之前,可以在一下在线工具网站进行中文字符到各个编…

【Webgl_glslThreejs】搬运分享shader_飘落心形

来源网站 https://www.shadertoy.com/view/4sccWr效果预览 代码演示 将shadertory上的代码转成了threejs可以直接用的代码,引入文件的material,并在创建mesh或已有物体上使用material即可,使用时请注意uv对齐。 import { DoubleSide, Shad…

【Day 9】Mybatis CURD + XML 映射 + 动态 SQL

1 Mybatis 基础操作 下面进行:增删改查——C(create)U(update)R(retrieve)D(delete) 1.1 删除(删) 根据主键 id 进行删除 注意 占位符 #{ } 返回值是删除的记录条数 测试: 可以在日志中看到 mybatis 具体的语句 预编译 SQL 的优…

项目管理系统(PMS):一文扫盲,再也不用担心质量和延期了。

一、什么是PMS系统 项目管理系统(PMS)是一种软件工具或平台,用于帮助组织和团队有效地规划、执行和监控项目。PMS系统提供了一系列功能和工具,以支持项目管理的各个方面,包括项目计划、进度跟踪、资源管理、任务分配、…

Android Studio 报错:AVD Pixel_3a_API_30_x86 is already running

在我的Android Studio和虚拟机运行时,我的电脑不小心关机了,在启动后再次打开Android Studio并运行虚拟机时发现报错。 Error while waiting for device: AVD Pixel_3a_API_30_x86 is already running. If that is not the case, delete the files at C…

【Docker】Docker 实践(一):在 Docker 中部署第一个应用

Docker 实践(一):在 Docker 中部署第一个应用 1.使用 YUM 方式安装 Docker2.验证 Docker 环境3.在 Docker 中部署第一个应用3.1 小插曲:docker pull 报 missing signature key 错误3.2 重新安装 Nginx 1.使用 YUM 方式安装 Docker…