当前位置: 首页 > news >正文

Unity(第二十一部)动画的基础了解(感觉不了解其实也行)

1、动画组件老的是Animations

在这里插入图片描述

  1. 动画视频
  2. Play Automatically 是否自动播放
  3. Animate Physics 驱动方式,勾选后是物理驱动
  4. Culling Type 剔除方式 默认总是动画化就会一直执行下去,第二个是基于渲染播放(离开镜头后不执行),

如果没有动画的话,可以自己做,点击窗口动画进入动画面板

  1. 选中物体,创建动画 动画就是属性的改变
  2. 添加属性,属性是物体的组件
  3. 先择帧数,修改属性,就会形成动画

可以通过代码播放

 // Update is called once per frame@Unity 消息10 个引用void Update()
if (input.GetMouseButtonDown(0)){
GetComponent<Animation>().Play("right");
}

2、新版的Animator

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 创建一个物体
  2. 挂在组件
  3. 创建动画控制器,并拖入组件
  4. 做动画,如老版本,窗口创建动画,新版动画参数与老版本不同
  5. 新建动画不在动画控制器中,如果设置默认的话需要点开控制器选择;

代码示例和老版本一样

 // Update is called once per frame@Unity 消息10 个引用void Update()
if (input.GetMouseButtonDown(0)){
GetComponent<Animation>().Play("right");
}

3、角色动画

下载的模型,一般都有FBX模型文件,一般在Animations或者Animator文件夹中,模型文件中有动画效果

  1. 创建一个物体
  2. 挂在组件
  3. 创建动画控制器,并拖入组件
  4. 打开控制器页面后,把模型文件拖入控制器页面

多个动作切换
控制器页面选择动画a创建过渡链接动画b,会自动切换动作,过度可以是双向的

控制过度
控制器页面选择参数,
trigger 触发设置
bool 布尔设置
int 数值设置
Foloatt 浮点设置

创建脚本
在这里插入图片描述

 
if (input.GetKeyDown(KeyCode.F)){//触发pickup参数GetComponent<Animator>0.SetTrigger("pickup");
}

有延迟的话,取消退出时间就好了,还有过度时间settings

4、按键让角色动起来

动画+位移+旋转朝向
这里描述一下位移等

void Start(){animator = GetComponent<Animator>();
}
void Update(){//水平轴float horizontal = Input.GetAxis("Horizontal”);//垂直轴float vertical = Input.GetAxis("Vertical");//朝向的向量Vector3 dir = new Vector3(horizontal, 0, vertical)//当用户按下了方向键if (dir != Vector3.zero){//面向向量transform.rotation = Quaternion.LookRotation(dir);//播放跑步动画animator.SetBool("lsRun", true);//朝向前方移动transform.Translate(Vector3.forward * 2* Time.deltaTime);} else{//播放站立动画animator.SetBool("lsRun", false);}}

5、如果动画不理想的话

**Rig:**动画类型:当然人性的动画可以通用,可以导入其他人形动画;
Animation:
剪辑可以创建新的动画
时间轴是动画长度
修改后需要点击应用
循环不用解释吧
变换旋转:选择烘焙就会把动画中旋转的动画取消掉
变换位置y轴:选择烘焙就会把动画中上下的动画取消掉
变换位置其他的同理
曲线:根据动画时间变换曲线的数值,火焰大小特效等使用,代码获取需要添加动画参数;下面是示例

			animator.GetFloat("lsRun");

事件:可以设置动画的某个时刻发生,如:射击等
在这里插入图片描述

void letFoot(){Debug.Log("时间1时执行");
} 
void rightFoot(){Debug.Log("时间二时执行");
}

6、混合动画

  1. 创建状态,混合在这里插入图片描述
  2. 双击可以进入混合页面
  3. 创建一个float 参数,根据这个参数执行混合在这里插入图片描述
  4. 混合类型选择1d,就会根据一个参数执行 在这里插入图片描述
  5. 添加动画: 第 一 个 选 项 就 是 添 加 动 画 , 第 二 个 是 嵌 套 其 他 混 合 器 在这里插入图片描述 在这里插入图片描述

7、动画太多,可以分层

下图用他创建过度后,然和状态都能执行他过度的动画
在这里插入图片描述
下图创建子的混合器,点击进去后,可以编辑子的混合器,新的混合器会多一个图层
i在这里插入图片描述
子图层为了分类动画,可以点加号创建新的图层、图层有权重;

在这里插入图片描述

但是添加图层会遮住权重小的图层,解决方案就是遮罩,那么创建遮罩
创建后可以设置人形遮罩,绿色表示需要遮罩部分,红色是不遮罩

在这里插入图片描述

http://www.lryc.cn/news/310207.html

相关文章:

  • 写时复制简介
  • 运行Python文件时出现‘utf-8’code can‘t decode byte 如何解决?(如图)
  • 行为树入门:BehaviorTree.CPP Groot2练习(叶子节点)(2)
  • leetcode-字符串中的单词数
  • 一些C语言题目
  • JVM相关问题
  • 32单片机基础:旋转编码器计次
  • 【C++】vector的使用和模拟实现(超级详解!!!!)
  • GO学习记录
  • 迭代器模式(Iterator Pattern)
  • KL divergence(KL 散度)详解
  • AzerothCore@FreeBSD安装记录
  • vue .env配置环境变量
  • ThreadLocal介绍
  • 【Linux系统化学习】线程概念
  • Redis集群模式
  • 执行go get xxx报错
  • MATLAB基础语法与实践
  • 智能边缘小站 CloudPond(低延迟、高带宽和更好的数据隐私保护)
  • 回归预测 | Matlab实现RIME-BP霜冰算法优化BP神经网络多变量回归预测
  • LeetCode15:三数之和
  • 【详识JAVA语言】面向对象程序三大特性之三:多态
  • nginx(三)实现反向代理客户端 IP透传
  • 深入Java日志框架及其最佳实践
  • threejs显示本地硬盘上的ply文件,通过webapi
  • 代码随想录day10(2)字符串:反转字符串Ⅱ (leetcode541)
  • 【MySQL】_联合查询基础表
  • InnoDB存储引擎对MVCC的实现
  • 【精选】Java项目介绍和界面搭建——拼图小游戏 中
  • C++ //练习 10.16 使用lambda编写你自己版本的biggies。