第三十六章 Unity动画编辑器

news2024/11/16 6:22:35

本章节我们简单介绍一下Animation动画编辑窗口,请大家区别之前的Animation组件哦。首先,我们创建一个新的场景“SampleScene4.unity”,然后创建一个Plane和Cube,

给上图中的Cube添加一个木质材质最快的办法,就是将一张木质贴图直接拖拽到Cube上面即可。Unity会自动帮我们创建一个材质,如下所示 

这个名称为“mu”的材质被保存到了“Assets/Materials”目录下,

我点击这个材质,查看它的Inspector检视面板

其实就是将纹理贴图“mu.png”拖拽到“Albedo”左边的方框内。

接下来,我们就给这个立方体添加一个旋转的动画。我们选中立方体,然后菜单栏“Window”->“Animation”->“Animation”打开Animation动画编辑窗口,如下:

在上述窗口中,我们发现了时间帧轴,说明这是一个制作动画的窗口。动画的本质就是一系列的关键帧组成。每一个关键帧中包含了游戏对象的移动,旋转和缩放三大变换信息。关键帧与关键帧之间的帧则是有系统按照一定方式(例如线性差值等)来补全的。

同样,在该窗口中,还提示我们需要创建一个动画片段文件,我们点击“Create”按钮。在弹出的保存窗口中输入文件名称,例如:CubeAnimation.anim,然后点击保存即可。我们暂且将其保存到“Assets”根目录下,如下所示

我们回到Animation窗口中,一定要保证Cube是被选中状态哦。

在整个窗口的右半部分就是时间帧轴,我们可以点击某一个帧数位置,将其做成关键帧。每一个关键帧都经过保存游戏对象(立方体)的一些变换(移动,旋转或缩放)。这里,我们简单做一个立方体旋转的动画。游戏对象的旋转是通过修改Transform的Rotation属性来实现的,这里我们让立方体在Y轴上进行一个旋转就行啦。那么,接下来,我们就需要在每个关键帧上面,设置立方体Transform的Rotation.Y轴的旋转数值来实现动画。我们点击“Add Property”来将立方体的Transform的Rotation添加进来,表示我们的动画是修改它的Rotation属性。

点击“+”添加按钮

点击“Cube:Rotation”展开,我们就能看到x,y,z三个轴向的数值啦,默认是0。同时,我们也发现在右半部分的时间帧轴上面出现了两个首尾关键帧,并且这两个关键帧对应的Rotation的x,y,z数值都是哦。接下来,我们在时间轴上面,点击中间的30帧位置,同时修改“Rotation.y”的数值为180,如下所示:

移动线的时候,一定要把鼠标放置到时间轴上面,才可以移动那条线。移动完毕后,还需要点击红色线框圈住的“Add keyframe”按钮,才能真正的添加“关键帧”。如下所示

这样,我们就在30帧的位置添加了一个关键帧,让立方体在Y轴旋转180度。

在Animcation动画编辑器窗口中,Samples是采样率,默认是60,表示1秒钟播放60帧。当然,这个数值可以修改,比如改成30帧。在Samples的右边是添加关键帧按钮,在右边是添加动画事件按钮“Add event”。动画事件允许在动画播放过程中的某一帧位置执行一个事件(一段代码)。我们在时间帧(上面的白线)移动到指定时间帧出,然后点击“Add event”,就会在该时间帧出现一个蓝色标识,点击这个蓝色标识,查看检视面板。在检视面板中有一个Funcation,就是需要执行的方法。我们需要给当前动画模型添加一个C#脚本,然后在其中添加一个方法。最后回到刚才的检视面板Funcation处选择刚刚的方法。这样,当动画播放到该帧的位置时候,就会调用刚刚的方法啦。

我们回到立方体的Inspector检视面板,发现它增加了“Animator”组件,并且该组件的Controller中默认生成了一个Cube的控制器,如下:

在我们的资源文件中,我们能也发现Unity自动帮我们创建的“Cube”动画控制器。

接下来,我们双击“Cube”的控制器文件,打开“Animator”动画状态机窗口,如下:

因为我们只做了一个动画片段,所以它就是默认的动画片段。接下来,我们运行项目,就会发现立方体就不停的来回旋转了。

之所以动画不停的播放,是因为动画片段的“Loop Time”选项是默认勾选的。我们点击动画片段文件,查看Inspector检视面板,就能看见该选项。关于动画编辑器Animation窗口我们就介绍这些。需要补充一点的就是,我们可以将多个属性添加到动画中,例如,可以同时旋转和缩放,而且还可以制作纹理贴图动画。总之,使用Unity动画编辑器做一些简单的动画,还是不错的。

本课程涉及的内容已经共享到百度网盘:https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

易基因:2023年植物表观转录组研究的最新进展(m6A+m5C)|深度综述

大家好这里是专注表观组学十余年,领跑多组学科研服务的易基因。 被称为表观转录组(epitranscriptome)的RNA修饰正成为基因调控的广泛调控机制。由于绘制转录组范围RNA修饰测序策略的改进,以及分别对沉积、去除和识别RNA修饰的wri…

谈谈HMI 的自动化生成技术

人机界面(HMI)是自动化领域不可或缺重要组成部分。尽管人机界面系统的设计看上去并没有太大的技术门槛,但是设计一个HMI系统的工作量是巨大的。如果你没有足够的耐心便完成不了一个通用的HMI系统。构建UI控件库是一个似乎永远完不成的事情&am…

【SWAT水文模型】SwatWeather软件使用教程

SwatWeather软件使用教程 1 SwatWeather天气模型发生器1.1 数据输入 2 各功能介绍2.1 计算降水2.2 计算气温2.3 计算辐射2.4 计算风速2.5 计算露点 参考 1 SwatWeather天气模型发生器 SwatWeather.exe 软件只要输入一定格式要求的文件,就可以根据提示进行所需 数据…

深入浅出循环语句—【C语言】

分支语句博客:http://t.csdn.cn/U2kZF 目录 ​编辑 前言:我们先来了解一下break 、continue在循环中的作用 1. while循环 while循环中的break while循环中的continue 2. for循环 for循环省略出错举例: for循环中的break for循环中的co…

JUC多并发编程 AQS

基础解释: 是用来实现锁或者其他同步器组件的公共基础部分的抽象实现,是重量级基础框架及整个JUC体系的基石,主要用于锁分配给“谁”的问题。整体就是一个抽象的 FIFO 队列来完成资源获取线程的排队工作,并通过一个 int 类变量表示持有锁的状…

编译器的优化问题(构造、拷贝)、linux如何取消优化。

编译器优化问题: 不同编译器优化是不一样的,下面代码我都用的vs2019,并且在Debud模式下。(Release也会进行优化) 下面测试的时候我先采用Debug模式测试。 先写一个简单的类,进行打印测试: c…

从血缘进化论的角度,破解婆媳关系的世纪难题

从血缘进化论的角度,破解婆媳关系的世纪难题 有个粉丝的留言,很长很复杂,是关于他们家的婆媳关系问题。 青木老师,您好,我也有一些问题想咨询您,是关于婆媳关系的,字数有些多,分开…

多线程【线程概念+线程控制】

前置知识 在谈多进程之前,我们在谈一谈页表,在语言中:char* str”hello world”; *str”H”;运行时会报错,原因在于:字符串在已初始化数据区和代码区之间的,需要写的时候,我们需要对str进行虚拟地址和物理…

springboot第17集:Spring我的春天

Spring是一个开源免费的框架和容器,具有轻量级和非侵入式的特点。它支持控制反转(IoC)和面向切面(AOP),同时提供了对事务和其他框架的支持。因此,简单来说,Spring就是一个轻量级的IoC和AOP容器框架。 假设有一个应用程序需要使用数…

【Golang】多线程爬虫的实现

〇、前言 Golang 是一种并发友好的语言,使用 goroutines 和 channels 可以轻松地实现多线程爬虫。具体地说,实现的是多协程。协程是一种比线程更轻量化的最小逻辑可运行单位,它不受操作系统调度,由用户调度。因此对于协程并发的控…

突发!ChatGPT王炸级更新!支持GPT-4联网 Code Interpreter!

4月30日,OpenAI官方悄悄发布了联网版GPT-3.5。虽然名字变了,但使用体验却是换汤不换药,还是那套。 然而,万万没想到的是,刚过去没几天,昨天5月4日,鱼哥发现自己的Plus账号竟然多了一些能力&…

AI 视频编辑革新:GEN-1 / GEN-2 引领新风潮

在早先的一篇文章中《AI 学习心得速览(3月)》,提到过一家AI视频公司RunWay,公司专注于 AI 视频处理,在二月份发布了第一个人工智能视频编辑模型 Gen-1,对视频素材进行转换成相应的风格。 RunwayML 今天来聊…

C#学习系列之throw new ApplicationException

C#学习系列之throw new ApplicationException 啰嗦问题解决总结 啰嗦 在项目的解码过程中使用到throw new ApplicationException语句,之前一致没有意识到这句话会带来很多问题。项目中使用这句话来捕捉解码过程中的解码异常问题。 问题 在使用throw new Applicati…

(二)【平衡小车制作】电机驱动(超详解)

一、硬件设计 1.直流减速电机   直流减速电机,即齿轮减速电机,是在普通直流电机的基础上,加上配套齿轮减速箱。齿轮减速箱的作用是,提供较低的转速,较大的力矩。  简单的来说,STM32分配两个IO口给一个…

LeetCoed 2, 23, 25, 112, 113

文章目录 1. 两数相加2. K 个一组翻转链表3. 合并 K 个升序链表4. 路径总和I5. 路径总和II 1. 两数相加 题目详情见: LeetCode2. 两数相加 题目描述相对来说比较绕, 我们可以直接理解为两个多位的整数相加, 只不过整数的每一位都是通过链表进行存储; 比如, 整数 342, 通过链表…

使用Webpack搭建项目(vue篇)

本篇承接使用Webpack搭建项目(react篇) 由于大部分配置一样,我们从上一篇react项目中,复制webpack.dev.js以及webpack.prod.js 开发模式 1.删除ReactRefreshWebpackPlugin 2.自动补充拓展名修改为.vue文件,同时处理…

每天一道算法练习题--Day21 第一章 --算法专题 --- ----------位运算

我这里总结了几道位运算的题目分享给大家,分别是 136 和 137, 260 和 645, 总共加起来四道题。 四道题全部都是位运算的套路,如果你想练习位运算的话,不要错过哦~~ 前菜 开始之前我们先了解下…

【linux的学习与软件安装】

文章目录 linux的学习一、工具安装与联网?二、Linux软件安装1.安装jdk2.安装MySQL安装redis linux的学习 一、工具安装与联网? 1.1安装好VM后 进入vi /etc/sysconfig/network-scripts/ifcfg-ens33 然后ip addr 查看ip 1.2打开IDEA的tools 二、Linux软…

网络编程 | 多进程多线程并发服务器代码实现

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…

5.5 Mybatis Update标签实战,返回值是什么? 教你通常处理做法

本文目录 前言一、update标签实战① 在UserMapper接口中新增update方法② MybatisX插件生成update标签③ 写update SQL 语句 二、update sql返回值是什么?三、Mybatis update标签返回值是什么?四、实现简易的修改密码API1. dal层2. service层3. web层自测通过 五、Git提交最后…