%Description%
曲线(Curve) 明确要在给定范围内求值的内插点的轨道。曲线可以是 矢量、浮点 和 颜色。每个轨道都可以有任意数量的 键,用于定义时间或值。数据可以内插到这些键之间,以计算时间轴中任何点的值。
使用键和曲线
本例中将创建曲线浮点,它明确要在给定范围内求值的内插浮点的曲线。
-
在编辑器中,新建包含 时间轴组件 的 Actor 蓝图。
-
双击你的时间轴组件,打开 时间轴编辑器。
-
点击 添加浮点轨道(Add Float Track) 按钮,向时间轴组件添加CurveFloat。
添加键
若要添加键,按住 Shift 键并点击灰色条,或右键点击灰色条并从下拉菜单中选择向CurveFloat添加键(Add Key To CurveFloat)操作。
编辑键
要设置键的时间和值,可点击该键,在靠近轨道顶部的时间和值字段中输入值。
删除键
按键盘上的 删除(Delete) 键即可删除选定的键。
移动键
要将键沿着时间轴移动,选择该键并拖动它。要选择多个键,可以使用 Ctrl 键。水平方向拖动可以更新该键的 时间(Time) 值,垂直拖动则更新 值(Value)。
键插值
右键点击键,将显示下拉菜单,供你选择该键的插值类型。
键插值仅影响内插的目标键与其下一个键之间的曲线。例如,所有其他键设为 线性(Linear),中央键设为 立方体-自动(Cubic-Auto),则轨道类似下图。
可用插值类型有:
-
自动(Auto)
-
用户(User)
-
断裂(Break)
-
线性(Linear)
-
常量(Constant)
外部曲线
主键区域左侧有一个字段,可在其中从 内容浏览器 向该轨道添加外部曲线资产。
| 外部曲线图标 | 说明 |
|---|---|
| 对于此轨道,使用 内容浏览器 中选定的曲线。 | |
| 在 内容浏览器 中浏览,为此轨道选择曲线。 | |
| 将导入的外部曲线转换为内部曲线,以便编辑键和曲线。 |
也可 右键点击 任意曲线(至少已选中了一个键),选择 创建外部曲线(Create External Curve)。此时将弹出上下文窗口,可在其中编辑该曲线资产的保存路径。之后你就可以在其他时间轴上再次使用该曲线。

曲线(Curve) (UCurveBase)明确要在给定范围内求值的内插点的轨道。曲线可以是 矢量、浮点 和 颜色。每个轨道都可以有任意数量的 键,用于定义时间或值。数据可以内插到这些键之间,以计算时间轴中任何点的值。
使用键和曲线
本例中将创个 UCurveFloat,它明确要在给定范围内求值的内插浮点的曲线。
要创建 UCurveFloat 并将其实例化至 时间轴组件,请执行以下步骤:
- 创建包含 UTimelineComponent 的 Actor 类。
// 版权所有 1998-2021 Epic Games, Inc。保留所有权利。 #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "Components/TimelineComponent.h" #include "MyActor.generated.h" UCLASS() class UTIMELINEKEYSCURVESEXAMPLE_API AMyActor : public AActor { GENERATED_BODY() public: // 为此Actor的属性设置默认值 AMyActor(); protected: // 当游戏开始或重生(Spawn)时被调用 virtual void BeginPlay() override; UPROPERTY(EditAnywhere, BlueprintReadWrite) UTimelineComponent* ExampleTimelineComp; public: // 每一帧都被调用 virtual void Tick(float DeltaTime) override; };欲了解如何创建
UTimelineComponent,请参阅创建时间轴。 - 从你的
TimelineActor.h文件的类定义中,声明以下内容:public: UPROPERTY(EditAnywhere) UCurveFloat* ExampleTimelineCurve; -
在 虚幻编辑器 中 编译 你的代码。**。
-
从 内容浏览器 中选择 添加/导入(Add/Import) > 杂项(Miscellaneous) > 曲线(Curve) > CurveFloat,然后将你的CurveFloat资产命名为 ExampleFloatTrack。
-
基于包含
UTimelineComponent的Actor,创建 蓝图 类。 -
打开类默认值,并使用你的ExampleFloat轨道分配时间轴曲线示例。
- 从内容浏览器中双击你的 浮点轨道示例,打开 时间轴编辑器。
添加键
若要添加键,按住 Shift 键并点击灰色条,或右键点击灰色条并从下拉菜单中选择向CurveFloat添加键(Add Key To CurveFloat)操作。
编辑键
要设置键的时间和值,可点击该键,在靠近轨道顶部的时间和值字段中输入值。
删除键
按键盘上的 删除(Delete) 键即可删除选定的键。
移动键
要将键沿着时间轴移动,选择该键并拖动它。要选择多个键,可以使用 Ctrl 键。水平方向拖动可以更新该键的 时间(Time) 值,垂直拖动则更新 值(Value)。
键插值
右键点击键,将显示下拉菜单,供你选择该键的插值类型。
键插值仅影响内插的目标键与其下一个键之间的曲线。例如,所有其他键设为 线性(Linear),中央键设为 立方体-自动(Cubic-Auto),则轨道类似下图。
可用插值类型有:
-
自动(Auto)
-
用户(User)
-
断裂(Break)
-
线性(Linear)
-
常量(Constant)
外部曲线
主键区域左侧有一个字段,可在其中从 内容浏览器 向该轨道添加外部曲线资产。
| 外部曲线图标 | 说明 |
|---|---|
| 对于此轨道,使用 内容浏览器 中选定的曲线。 | |
| 在 内容浏览器 中浏览,为此轨道选择曲线。 | |
| 将导入的外部曲线转换为内部曲线,以便编辑键和曲线。 |
也可 右键点击 任意曲线(至少已选中了一个键),选择 创建外部曲线(Create External Curve)。此时将弹出上下文窗口,可在其中编辑该曲线资产的保存路径。之后你就可以在其他时间轴上再次使用该曲线。
// 版权所有 1998-2021 Epic Games, Inc。保留所有权利。
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Components/TimelineComponent.h"
#include "MyActor.generated.h"
UCLASS()
class UTIMELINEKEYSCURVESEXAMPLE_API AMyActor : public AActor
{
GENERATED_BODY()
public:
// 为此Actor的属性设置默认值
AMyActor();
protected:
// 当游戏开始或重生(Spawn)时被调用
virtual void BeginPlay() override;
UPROPERTY(EditAnywhere, BlueprintReadWrite)
UTimelineComponent* ExampleTimelineComp;
public:
// 每一帧都被调用
virtual void Tick(float DeltaTime) override;
};
欲了解如何创建 UTimelineComponent,请参阅创建时间轴。
public:
UPROPERTY(EditAnywhere)
UCurveFloat* ExampleTimelineCurve;