Choose your operating system:
Windows
macOS
Linux
选择实现方法:
Blueprints
C++
课程:蓝图基本概念|蓝图 - 基本概念|https://cdn2.unrealengine.com/Unreal+Engine%2Fonlinelearning-courses%2Fblueprints---essential-concepts%2FBPEssentialsThumbnail_1920x1080-1920x1080-2fcdde875f1d79ade1c295fe4fef53c4b8c5ecde.PNG?resize=1&w=1400|https://cdn2.unrealengine.com/Unreal+Engine%2Fonlinelearning-courses%2Fblueprints---essential-concepts%2FBlueprint--Essential-Concepts-1000x1000-9f372ce55de42ce9596dffd6c931839e44fcc873.png?resize=1&w=300 课程:使用蓝图进行交互式材质交换|使用蓝图进行交互式材质交换|https://cdn2.unrealengine.com/Unreal+Engine%2Fonlinelearning-courses%2Finteractive-material-swaps-using-blueprints%2F406---Hero2-1920x1080-ce26b6199cf620364149d2d934c73ae30e983110.png?resize=1&w=1400|https://cdn2.unrealengine.com/Unreal+Engine%2Fonlinelearning-courses%2Finteractive-material-swaps-using-blueprints%2FInteractive-Material-Swaps-Using-Blueprints-1000x1000-21158a5fe67365e3bf5db49712b52482382f15ac.png?resize=1&w=300 课程:制作蓝图产品配置器|企业级蓝图|https://cdn2.unrealengine.com/Unreal+Engine%2Fonlinelearning-courses%2Fblueprint-for-enterprise%2F301-Blueprints-%281200X675%29-1200x675-d140b8a0b13b05c0619e35e1076b4c82e4a4b855.png?resize=1&w=1400|https://cdn2.unrealengine.com/Unreal+Engine%2Fonlinelearning-courses%2Fblueprint-for-enterprise%2FBlueprint-for-Enterprise-1000x1000-13caa11b8e5c5e91506a8dd63b39d247318c3208.png?resize=1&w=300
本教程演示如何凭借
创建门Actor
首先,点击 新建(New) > 游戏(Games) > 空白(Blank) > 蓝图(Blueprint) 创建名为 TimelineDoorActor 的项目,并启用 初学者内容包(Starter Content)。
点击 添加/导入(Add/Import) 按钮新建蓝图 Actor 类,将其命名为 BP_DoorActor。
从内容浏览器中双击该BP_Door Actor在蓝图编辑器中打开,然后打开 类默认值(Class Defaults)。
下一步,在 组件(Components) 选项卡中点击 添加组件(Add Component) 按钮,选择 静态网格体(Static Mesh) 添加新的 静态网格体组件(Static Mesh Component)。
右键点击你的静态网格体组件,选择 重命名(Rename),将其重命名为 DoorFrame。
下一步,在 组件(Components) 选项卡中点击 添加组件(Add Component) 按钮,选择 静态网格体(Static Mesh) 添加新的 静态网格体组件(Static Mesh Component)。(重复步骤3)
右键点击你的静态网格体组件,选择重命名(Rename),将其重命名为 Door。
点击添加组件(Add Component),从下拉菜单中选择 盒体碰撞(Box Collision),将其重命名为 Box。
下一步,打开事件图表,右键点击 图表,从 蓝图上下文菜单(Blueprint Context Menu) 中选择 添加时间轴(Add Timeline)。将你的时间轴命名为 DoorTimelineComponent。
此时,BP_DoorActor的类默认值应如下例中所示:
设置门静态网格体
接下来,你需要设置 组件(Components) 选项卡的附件层级。
你还需要设置静态网格体资产,直观地表示你的 DoorFrame 和 Door 静态网格体组件。
从 BP_DoorActor 的组件(Components)选项卡中,选择 DoorFrame 静态网格体并将其拖动到 DefaultSceneRoot组件 上,使其成为新的 根组件。
接下来,在组件(Components)选项卡中选择 DoorFrame 静态网格体,从 细节面板(Details panel) 中将静态网格体更改为 SM_DoorFrame。
接下来,从组件(Components)面板中选择DoorMesh组件。导航至细节面板,将静态网格体更改为 SM_Door。
然后导航至 变换(Transform) 类别,将 Y位置(Y Location) 值更改为 45.0。
点击 保存(Save) 和 编译(Compile),将这些更改保存到Bp_DoorActor。
创建时间轴浮点轨道
时间轴组件需要时间轴曲线来描述其移动动画。每个轨道都可以包含多个键,用于定义时间和值。曲线内插这些键,以计算时间轴中任何点的值。
首先,在事件图表中双击DoorTimelineComponent,打开时间轴编辑器。
点击 添加浮点曲线(Add Float Curve) 向该轨道添加新曲线,将该曲线命名为 DoorRotationZ。
右键点击,向浮点曲线轨道添加两个键。两个键的值分别为(0,0)和(5,90)。
按住Shift键并选中这两个键,点击右键,从 键插值(Key Interpolation) 下拉菜单中选择 自动(Auto) 插值。
保存你的浮点轨道。
更新事件轨道逻辑
现在你需要创建更新逻辑,以旋转你的门静态网格体。
导航至BP_DoorActor的组件(Components)选项卡,将门静态网格体拖动到事件图表上
拖移门引脚,从操作上下文菜单中选择 SetRelativeRotation。
右键点击事件图表,从上下文菜单中选择 制作旋转体(Make Rotator)。
在 DoorTimelineComponent 节点上,拖动 Door Rotation Z 浮点引脚,将其连接至 Make Rotator 节点的 Z(Yaw) 引脚。
在 DoorTimelineComponent 节点上,拖移 更新(Update) 引脚,将其连接至 SetRelativeRotation 节点的输入执行引脚。
在 Make Rotator 节点上,将 返回值(Return Value) 引脚连接至SetRelativeRotation节点的 新旋转(New Rotation) 引脚。
编译 并 保存。
创建绑定盒体碰撞重叠事件
盒体组件需要拥有在Actor进入或离开碰撞边界时做出反应的能力。
导航至BP_DoorActor的组件(Components)选项卡,选择盒体组件。
从细节面板中,向下滚动到事件类别,点击 在组件开始重叠时(On Component Begin Overlap) 事件旁的 + 图标。
在 On Component Begin Overlap(Box) 节点上,拖移执行引脚,将其连接至DoorTimelineComponent节点的播放(Play)引脚。
导航至BP_DoorActor的组件(Components)选项卡,选择盒体组件。然后,在细节面板向下滚动到事件类别,点击 在组件结束重叠时(On Component End Overlap) 事件旁的 + 图标。
在 On Component End Overlap(Box) 节点上,拖移执行引脚,将其连接至TimelineComponent节点的 反向(Reverse) 引脚。
编译 并 保存。
将Actor放到关卡中
从内容浏览器中,选择你的BP_DoorActor并将其拖动到视口中。
按PIE
完成后的蓝图
BP_DoorActor