虚幻4蓝图入门实例1:自动开关门
一.准备阶段
1.场景准备
1)首先我们先创建好一扇简单的门(这里的模型是从创建项目开始的初学者包中自带的):
如图,而此时第一次创建的我们可能会发现玩家角色是可以进行对门的穿模操作的,所以我们此时只需要对门进行碰撞设置
双击模型包进入模型修改界面
由于门的模型相对于比较规则的几何形状,所以我们只需在窗口工具栏中选择“碰撞”并添加“盒体简化碰撞”稍加调整即可
2)添加“事件盒子触发器”
我们可以在左窗口栏的“放置actor”中直接搜索“盒体触发器”(Box Trigger)或在基础菜单项中找到它
之后我们拖进放置我们所想要的位置并调整大小(触发器可以抽象为触发区域:进入此区域才可以进行相应触发)
2.蓝图准备
1)进入关卡蓝图设置界面
我们选中好“盒子触发器”(Box Trigger)点击视图工具栏的“蓝图”选择关卡蓝图进入设置蓝图界面
2)准备所需蓝图材料
我们右键为触发器盒子添加两个事件如图begin overlap 和 end overlap(这两个分别表示为“开始重叠”和“结束重叠”),这也就意味着此时会产生两个事件监听,即进入此区域和退出此区域
我们再用同样的点击选取门(SM_Door)后进入蓝图编辑事件并右键给门创建引用
3)添加门 的最终引用结果
右键点击拖动引用门的蓝色小按钮然后将其分开便得到引用动作结果的选择提示,我们搜索“设置actor相对旋转”然后点击添加该动作结果
二、构思蓝图和实现
1.简单构思和实现
首先我们要清楚门是如何旋转的,将门正常放置在一个 三维空间并依据习惯给门分出x、y、z轴,不难看出门是绕着z轴进行旋转的,所以我们在门的引用动作结果图中将z轴设置成我们所想旋转的角度即可这里以87°为例子,之后再进行出入口的简单连接,之后保存查看效果
我们的门确实被打开了,但是门却是很唐突的打开的,没有一种动态效果,这显然看着很不舒服,那有没有改进方法呢?以下我们可以进行蓝图的改善和优化来达到更好的效果。
2.蓝图优化和完善
1)时间轴(timeline)的引入
首先我们先清楚什么是时间轴,简而言之时间轴类似一个过度的缓存,我们都知道1到10中之间不是直接从1跳到10,而是1、2、3.....10的一种递进。再举个例子:我们做一个简单的90°旋转,无论是向左或者是向右,我们都可以看到一个很完整的过程,而这一演变过程就可以是我们所谓的时间轴,这里我们如果把门旋转87°为结果的话,那时间轴便是从0°到87°到的一个过程,当过程少了我们就只能看到0°和结果87°,而加上后我们便可清楚的查看整个演变。明白时间轴的概念后我们就可以再继续优化实例蓝图了。
2)时间轴的创建
我们右键空白处搜索timeline(时间轴)然后添加时间轴
3)时间轴的定义和设置
我们双击时间轴表后,进入时间轴设置界面,这里我们选择时间轴窗口视图的添加浮点轨道(f*)
进入轨道设置后如图所示,我们右键开始添加关键帧1:时间为0,值为0(这里表示初态)当然,如果你开始就想让门有半开的状态也可以将值调为你想要的半开值,之后我们再用同样的方法添加关键帧2:时间设置为1,值为87(这里表示终态)。在添加完关键帧2后我们可能在轨迹中找不到了关键帧2,这里并非是添加失败而是关键帧2跑到了一个很高的位置,我们点击世间左边的“缩放进行垂直匹配”便可以找到它。顺便一提,关键帧2这里的时间是可以自我定义的,如果你想让门开得慢一点那就可以将时间改为比1更大的数值,87就是我们所期望将门旋转的角度也可以进行自行更改。而长度呢我们设置为终态的时间,不然这就显得这门关上的时候有一种延迟效应,我们可以利用这种延迟效应去做一些其他效果,但是在此我们先让门实现一个简单的自动开关,因此我们先将其设置为状态的时间1
我们可以美化我们的时间轴浮点轨迹曲线,这样来就可以达到一个门从慢到快的一个开门,如上图,我们右键点击初态点之后选取自动线来美化我们的轨迹线使其成为上图所示,这样我们的事件轴就设置好了
4)蓝图的最后实现
之后我们回到事件蓝图,将begin overlap连接到时间轴的play(播放)再将end overlap时间轴连接到时间轴的reverse(回放),接着我们将时间轴的update(更新:更新到最新状态)连接到门的最终动作结果,然后再右键点击门的结果动作旋转轴(x,y,z)进行下一步操作
我们将我们新建的轨道连接到门最终结果动作的Z轴上去,这里就表示了我们在不断的给门相对旋转 的Z轴不断的从0到1传值从而让门展现出旋转的整个过程,这就是我们最终完善好的蓝图我们编译保存,然后到游戏视图窗口进行测试
我们这样就可以看到门丝滑的打卡和自动关闭了,实现一个自动门的任务也就此完成了
三、总结
具体整个自动开关门的蓝图便制作好了,而就从本次制作过程而言,如果我们要有100设置1000扇这样的自动门呢?要给这个关卡蓝图塞满吗?这显然行不通,那我们之后便可以进行一个开门蓝图的绘制,就类似建造一个可以一劳永逸的方法,我们仅需拖动使用到厂仅中即可。而开门关门的方式有多种,例如我们经常完游戏碰到过的按键开门,这些则需要我们继续往后学习其他的事件蓝图了。
以上便为个人在初步学习蓝图的所得,文中如有不对和不足的地方还望请各位能不吝赐教,本人感激不尽!