unity过场动画组件Timeline

Timeline是Unity2017版本中新加入的功能,可以非常方便的进行场景动画的创建和修改,包括物体、声音、粒子、动画、特效、自定义Playable以及子Timeline等多种资源进行整合,从而能够较方便的生成效果很棒的场景动画,同时可以通过Unity的Recorder资源包录制较为完整的视频并导出。

1.Timeline界面简单介绍

Unity2017中,点击Window->Timeline即可调出Timeline面板。如下图所示:

在该面板中,可以创建多种类型的片段,如果你导入AssetStore中的Default Playables资源包(其中预置了多个官方提供的简单Playable实例),其面板如下所示:

其中常用的主要有

Activation Track(控制物体的显示和隐藏)

Animation Track(为物体加入动画,可以在场景中方便地录制动画,也可以是已经制作好的Animation Clip)

Audio Track(为动画添加音效,并可对音效进行简单的裁剪和操作)

Control Track(在该轨道上可以添加粒子效果,同时也可以添加子Timeline进行嵌套)

Playable Track(在该轨道中用户可以添加自定义的播放功能)

Track Group(将不同的轨道进行分类,相当于文件夹功能)

当我们创建了TimeLine后,会在指定位置生成TimeLine的文件*.playable,当选中该文件后,会在Inspector面板中看到其相应的属性,如下图所示:

其中Frame Rate可以设置该Timeline每秒钟播放多少帧动画。Duration Mode分为Based On Clips和Fixed Length两种模式,Based On Clips模式为按照帧数来播放,当播放到最后一帧时结束播放,Fixed Length模式可以设置总共播放多长时间,当播放到指定时间是停止。Duration设置当前播放的秒数和帧数。

2.Timeline轨道简单介绍

2.1 Activation Track

该轨道首先需要为其赋值一个GameObject,表示该轨道控制该物体的显示与隐藏,当在Timeline播放过程中,如果处于片段内部,则该物体显示,否则该物体隐藏。

当我们点击该轨道时,会在Inspector面板中看到可以设置的属性,如下所示:

Active(当Timeline播放结束时,将该物体激活,设置为显示状态)

Inactive(当Timeline播放结束时,该物体取消激活,设置为隐藏状态)

Revert(当Timeline播放结束时,该物体还原Timeline在第1帧时的激活状态)

Leave As Is(当Timeline播放结束时,该物体保持在Timeline最后一帧的激活状态)

2.2 Animation Track

Animation Track主要控制动画的播放,包括动画片段、帧动画等。当我们点击Animation Track时,可以设置其属性,如下图所示:

2.2.1 Animation Track 属性

Apply Avatar Mask(启用“阿凡达遮罩”,当启用后将根据选择的遮罩应用在整个轨道中)

Avatar Mask(选择需要的遮罩,并将其应用在当前Animation轨道中)

最终效果如下:

Apply Track Offsets(启用轨道偏移效果,将所有动画的起始位置都设置为指定的偏移角度和位置上,与动画片段中的Clip Root Motion Offsets功能类似)

Clip Offset Match Fields(该选项可以设置不同动画之间偏移可匹配的变换)

2.2.2 动画轨道使用简介

1.添加Animation Clip

右击Animation Clip的空白处,选择Add From Animation Clip即可从已有的动画片段中选择。

可以拖拽动画片段调整播放的时间,同时也可以将多个动画片段进行叠加来完成动画过渡效果。

2.录制动画

可以在Animation Clip中点击红色按钮进行录制,通过设置不同的属性来为物体设置关键帧,从而完成不同类型的动画制作。

3.设置曲线

录制的动画可以在动画窗口中打开,在动画窗口中可以通过关键帧点的方式进行控制,也可以通过曲线的方式进行控制。

2.3 Audio Track

Audio Track主要控制动画中的音效,可以设置声音的起始时间、结束时间、淡入时间、淡出时间、播放速度、不同音效间的混合效果、是否循环播放等。其属性如下所示:

2.4 Control Track

Control Track主要控制与时间有关的元素,如粒子效果、Timeline等。

该轨道可以在指定的父物体下实例化一个Prefab,并对该Prefab中与时间有关的元素进行播放操作。

2.5 Playable Track

Playable Track允许用户自定义相关动画效果,在Default Playables资源包中包含了一部分自定义的功能轨道,包括文字、时间、灯光、位置、寻路、淡入淡出等效果,用户也可以根据自己的需要进行定制化开发,以实现更加复杂的效果。

以下为运行后的调用顺序

以下为该Timeline设置的状态,主要部分为PlayableTrack。

最终运行效果如下:

该方法也可通过继承BasicPlayableBehaviour类完成,但是在未来的版本中该类可能会被PlayableBehaviour和PlayableAsset类取代。

遇到的问题

在使用TimeLine功能的过程中,如果对物体使用了录制功能进行位置的调整,很多情况下物体的默认位置会发生偏移,最好在使用TimeLine的Animation Track录制功能前先备份场景,以免在设置动画过程中对场景造成破坏。

本人对TimeLine很多功能还不够熟悉,这些只是在使用过程中用到的功能,将Timeline和CineMachine以及Post Processing等功能进行结合可以做出相当炫酷的效果,可参考Unity官方的Adam&Neon动画短片

作者:壹米玖坤
链接:https://www.jianshu.com/p/99202037e902
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

原文地址:https://www.cnblogs.com/xiaoahui/p/10345517.html

时间: 2024-10-27 21:09:14

unity过场动画组件Timeline的相关文章

【Unity3D API的学习与使用】Unity实现GUI组件的位移、缩放和旋转

在使用Unity中GUI组件时,我们可以像处理一个实体一样,对其进行位移.缩放和旋转的操作. 其中,位移和缩放都只需要改变其Rect的内容即可,前者改变x.y参数,后者改变width和height参数,而旋转则有所不同,它需要使用GUI.matrix的一个函数: GUIUtility.RotateAroundPivot (rotAngle, pivotPoint) 参数说明: rotAngle:旋转的角度: pivotPoint:旋转时围绕的中心点. JavaScript示例: #pragma

过场动画

简单的动画: Core Animation是SDK四层结构中的第二层Media层中的重要组成部分,Quartz在这一层,而Core Animation位于Quartz之上,与Quartz的C语言函数库不同,它是基于Quartz的Objective-C封装. 所有的视图UIView 都有一个layer属性,即是CALayer对象,CALayer是Core Animation的基础.所有的Core Animation 动画都是基于CALayer的.CALayer的属性有(anchorPoint,ba

扩展 Unity 内置类型 (组件)

Unity 内置组件基本没有可以继承的.某些比较常用但现有 API 没有定义的功能,我们可以通过C# 的扩展类方法来实现.下面是一些比较实用的扩展方法. 扩展 Transform 每一个 GameObject 都含有一个 Transform 组件(在 UGUI 里新引入的 RectTransform 继承 Transform),GameObject 的层级也是由 Transform 负责的.以下扩展方法使用了 C# 的委托,关于委托可以参考这里:C# 中的 delegate 和 event. /

vue的动画组件(transition)

当插入或删除包含在 transition 组件中的元素时,Vue 将会做以下处理: 自动嗅探目标元素是否应用了 CSS 过渡或动画,如果是,在恰当的时机添加/删除 CSS 类名. v-enter: 定义进入过渡的开始状态.在元素被插入时生效,在下一个帧移除.v-enter-active: 定义过渡的状态.在元素整个过渡过程中作用,在元素被插入时生效,在 transition/animation 完成之后移除. 这个类可以被用来定义过渡的过程时间,延迟和曲线函数.v-enter-to: 2.1.8

iOS过场动画调研笔记

前言 因项目需要,最近一段时间都在调研iOS的过场动画.对于我来说这是一个之前没有太涉及的领域,所以有必要把调研的过程和自己的一些理解纪录下来 为什么要自定义过场动画? 如果大家有关注Material Design和最近一些知名App(如快的.一号专车等)的界面设计和交互的变化,就会发现一种新的趋势:平滑的页面过渡.目的旨在于让用户尽量少地感觉到页面之间生硬的切换,从而使App的体验更加流畅.而iOS原生的两种常用过场:Push/Pop和Present,和目前流行的趋势显然是不太符合的,所以自定

XamarinAndroid组件教程RecylerView动画组件使用动画(2)

XamarinAndroid组件教程RecylerView动画组件使用动画(2) 如果开发者要为RecylerView的子元素添加动画效果,需要使用RecyclerView类中的SetItemAnimator()方法,其语法形式如下: public virtual void SetItemAnimator(Android.Support.V7.Widget.RecyclerView.ItemAnimator animator) 其中,animator参数指定一个动画,这个动画就是表1-1中列出的

视图属性+对象动画组件ViewPropertyObjectAnimator

视图属性+对象动画组件ViewPropertyObjectAnimator ViewPropertyObjectAnmator组件是一款对象动画(ObjectAnimator)封装组件.它将视图属性动画(ViewPropertyAnimator)的易用性和对象动画(ObejctAnimator)的强大功能结合在一起.同时,该组件还支持额外的动画属性,如视图的尺寸.外边距.内边距.滚动等. 原文地址:https://www.cnblogs.com/daxueba-ITdaren/p/9076796

unity 在代码中创建spine动画组件

项目中用到了spine动画,使用Assetbundle打包后,在手机上运行会出现丢材质的情况.如果不进行打包,直接放到Resources目录下是可以正常加载的,但是,这样包就会很大,而且也不能进行热更新.进过测试,发现在代码中创建spine组件是可以解决这个问题,于是就有了下面的方案. 我们先说方案,再说问题. 方案: spine动画制作人员提供的spine动画三个文件分别是.json,.atlas,.png,把这三个文件放到unity(我用的unity版本是5.3.4f1)中,会自动生成atl

Unity Animator动画状态机 深入理解(一)

接触Unity以来就已经有了Animator,Animation用的少,不过也大概理解他俩之间的一个区别于联系. 图中其实就是Animator和Animation之间的区别于联系了,啊!你肯定会告诉我这就不是Animator么. 对啊,Animator其实是由Animation组成的.比如在Animator没有出现的时候有些公司写的动画状态机其实就是代码版的Animator. Animator其实就是把Animation统一管理和逻辑状态管理的组件,而Animation就是每一个动画. 动画状态