Timeline是蓝图中处理简单“时间动画”的利器,当你需要物体平滑移动、属性渐变动画或响应时间触发事件时,它会是你最好的帮手。
我把它的核心知识整理成了一张图,可以先从整体上建立一个印象:
![图片[1]-虚幻引擎 Timeline 节点-虚幻引擎](https://test.xuhuanyinqing.com/wp-content/uploads/2026/06/Timeline-scaled.png)
📍 启动你的第一个Timeline
1. 创建蓝图与添加Timeline节点
-
步骤一:创建Actor蓝图。在UE5的内容浏览器中,右键点击空白处,选择 蓝图类(Blueprint Class) > Actor,并命名为
BP_TimelineDemo。 -
步骤二:添加Timeline节点。在
BP_TimelineDemo蓝图的事件图表中,右键点击空白处,搜索并选择Add Timeline节点。命名后,你会发现一个黄色的小钟表图标出现在节点上方,这便是Timeline。
注意:虽然你在图表中看到的是个“节点”,但Timeline在底层实际上是一个组件(Component),这也意味着你可以获得一个引用,并在运行时精确控制它。
2. 配置曲线:定义动画的“灵魂”
创建好Timeline节点后,双击它进入 Timeline编辑器。在这里,我们需要为动画添加“轨道”。
-
添加轨道:Timeline共有四种轨道,你最常用的是浮点轨道(Float Track)。
-
浮点 (Float Track):处理单个数值,如不透明度、亮度、移动距离。
-
向量 (Vector Track):同时处理X, Y, Z三个值,用于位置、缩放、旋转RGB颜色。
-
事件 (Event Track):在特定时间点触发执行线,可用来播放声音或生成特效。
-
颜色 (Color Track):处理带Alpha通道的颜色,效果与向量轨道类似。
-
-
添加关键帧:在编辑器的灰色区域,
Shift + 鼠标左键或右键即可添加关键帧。 -
编辑曲线:点击关键帧上的圆点,可以拖动它的横坐标(时间) 和纵坐标(数值)。在关键帧上右键,还可选择插值模式,比如
Auto可以实现丝滑的缓动效果。 -
设置播放属性:下方的细节面板可设置动画总时长(Length) 和 循环(Loop) 等属性。
⚙️ 理解Timeline的核心接口
回到事件图表,了解Timeline节点的各个引脚,这是连接蓝图逻辑的关键。
| 类型 | 引脚名 | 功能描述 |
|---|---|---|
| 输入引脚 | Play | 正向播放,从当前位置开始(除非首次播放)。 |
| Play from Start | 总是从头开始播放,无论上次暂停在哪里。 | |
| Reverse | 从当前位置反向播放(倒放)。 | |
| Reverse from End | 总是从末尾开始反向播放。 | |
| Stop | 暂停动画,保留当前进度。 | |
| Set New Time | 跳转到指定的时间点。 | |
| 输出引脚 | Update | 在动画播放的每一帧都会触发,是驱动效果的核心。 |
| Finished | 动画正常播放完一遍后触发(Stop不会触发)。 | |
| Direction | 输出当前的播放方向(向前/向后)。 | |
| [Track Name] | 你创建的每个轨道,都会产生同名输出,返回当前时间点对应的数值。 |
💡 从零到一:三个实用案例精讲
✨ 案例一:开启自动门基础(最简单的Timeline动画)
-
目标:当玩家走进触发盒时,一扇门会在1.5秒内平滑地向上滑动打开。
-
准备:按照自动门教程创建一个
BP_AutomaticDoor蓝图,内含门框、门板和触发盒。 -
步骤:
-
添加变量:在
BP_AutomaticDoor中创建bIsDoorOpen(布尔)、OpenHeight(浮点,默认200)和AnimationDuration(浮点,默认1.5)变量。 -
构建Timeline:添加Timeline,双击打开,添加浮点轨道并重命名。设置曲线:在0秒时值为0,1.5秒时值为1。
-
蓝图连线:在事件图表中,连接
OnBeginOverlap->Play->Set bIsDoorOpen(设为True)。将Timeline的Update输出连到SetActorLocation。通过Lerp(Vector)节点计算新位置:A点=初始位置,B点=A点+(0, 0, OpenHeight),Alpha则接入Timeline的轨道输出。 -
实现关门:同样利用
OnEndOverlap事件触发Reverse播放Timeline,实现门的下降。
-
🎡 案例二:制作一个旋转漂浮平台(循环动画与Lerp)
-
目标:让一个平台持续地上下轻微起伏,并缓慢自旋,营造魔幻氛围。
-
步骤:
-
创建平台蓝图:新建
BP_FloatingPlatform蓝图,添加一个立方体或球体作为视觉组件。 -
构建漂浮动画:添加Timeline,双击编辑,添加浮点轨道。设置三个关键帧模拟起伏:时间0秒/值0 -> 时间1秒/值1 -> 时间2秒/值0。在细节面板勾选“Loop”,实现无限循环。
-
设置运动:在事件图表的
BeginPlay调用Play。将Timeline的Update引脚连接SetActorLocation。同样用Lerp(Vector)计算高度变化。 -
添加旋转:在事件图表中,使用
Event Tick节点,执行AddActorWorldRotation,Delta Rotation的Z轴设置为10度/秒。
-
✨ 案例三:动态材质特效(在UI或物体上创造光晕)
-
目标:让一盏点光源的强度或一个材质的自发光颜色在5秒内从柔和变到明亮。
-
步骤:
-
创建基础材质:新建一个材质,在材质图表中添加一个
Scalar Parameter(比如名为 “Brightness”)和一个Vector Parameter,连接到自发光颜色Emissive Color。 -
创建材质实例:右键刚才的材质,选择
创建材质实例(Create Material Instance),命名为MI_GlowEffect,后续将在蓝图中控制其参数。 -
构建Timeline动画:新建Actor蓝图中添加Timeline,双击进入编辑器,添加一个浮点轨道,设置关键帧:时间0秒/值0.2(暗) -> 时间5秒/值2.0(亮)。
-
蓝图连线:在
BeginPlay触发Timeline的Play。将Timeline的Update连到Create Dynamic Material Instance节点创建动态材质实例。最后调用Set Scalar Parameter Value节点,设置参数名为”Brightness”,数值为Timeline的输出,将此动态材质应用到物体上。
-
📌 经验与技巧
-
播放按钮有区别:
Play从当前进度播放,Play from Start则总会重置并从头开始,务必根据逻辑正确选择。 -
别忘了Finished事件:动画结束后在此处执行收尾逻辑,如开门后允许玩家进入。
-
善用Lerp节点:
Lerp(线性插值)是连接Timeline数值与目标属性变化的最佳桥梁。 -
记得创建动态材质实例:在蓝图里直接修改材质会改变所有使用该材质的物体。只有通过
Create Dynamic Material Instance并应用到特定组件,才能实现单个实例的动画,而不影响其他物体。
感谢您的来访,获取更多精彩文章请收藏本站。







暂无评论内容