首页 > 其他分享 >UE4学习笔记9——蓝图 开关门的实现

UE4学习笔记9——蓝图 开关门的实现

时间:2022-10-20 20:13:15浏览次数:50  
标签:蓝图 旋转 开关门 添加 时间轴 组件 UE4 右键

  • P27. 【蓝图】开关门互动实现
  • P28. 【蓝图】按键+鼠标点击实现开关门
  • P27
  • 1. 首先 给门添加碰撞;双击“内容浏览器”中门的模型,进入门的编辑界面

  

在新界面的菜单栏中,“碰撞——添加盒体简化碰撞”;然后通过缩放按钮把盒体碰撞调整到和门刚刚合适的尺寸(如果每单元缩放尺寸太大,调小缩放尺寸的单元数值)

  

  • 2. 添加盒体触发器(相当于感应装置)

拖拽一个盒体触发器 在门的下方(盒体触发器在左侧“放置actor——基础——盒体触发器”)

  

  • 3. 开关门互动实现

选中门,把门的“细节——移动性”改成“可移动”

选中盒体触发器,在工具栏(编辑场景的上面)选“蓝图——打开关卡蓝图”

我们要为玩家添加两个事件,一个是进入触发器的事件,一个是离开触发器的事件

右键添加这两个事件(一个开始重叠时,一个结束重叠时):

  

回到之前的编辑器中单击门,然后再去蓝图编辑器中右键,添加一个对门的引用:

  

从新添加的引用,拖拽出来一个(东西),搜索“set actor rotation”,添加一个“设置Actor旋转”:

  

把begin的“执行”按钮和设置actor的“执行”按钮相连;再把“设置actor旋转——New Rotation”的 Z值改成一个合适的角度(开门的角度,这里改成了85)(因为开门之后的门是按Z轴转的,所以改Z值):

  

 

(此时运行,人物靠近会瞬间开门,非常生硬)

在蓝图编辑器中,右键 搜索“时间轴”,然后点“添加时间轴”

双击点开时间轴,点击编辑界面上方的“f+”(添加浮点型轨道):

  

然后在界面中右键,添加关键帧;把时间和数值都设置为0(因为门没有旋转时,时间和数值都是0):

    

然后右键再添加一个关键帧,时间设为2、数值设为85

如果关键帧们的显示不合适(距离过近或过远),可以按下图这两个按钮调整缩放尺寸(这两个按钮在设置时间和值得旁边)(弹幕:直接按“F”键比较方便)

  

然后右键第一个添加的关键帧,选自动,目的是让门的变化不要那么生硬(由慢变快);蓝色的点我们可以手动调节:

  

最后,把编辑界面上方的“长度”改为2(和关键帧2的时间一样的时间)(如果超过2,比如是5,那么你要连续开门和关门的时候,必须经过5秒后才能关门,但是开门的动作其实2秒就已经做完了,还要空等3秒;所以长度改为2):

  

回到事件图表,把begin的执行连到时间轴的“play”,把end的执行连到时间轴的“reverse”(反向播放);时间轴的update连到设置旋转的执行;

右键“设置Actor旋转”的“New Rotation”,选“分割结构体和变量”,然后把时间轴的“新建轨道”和“设置Actor旋转”的“New Rotation Z”连起来(Z是时时变化的了,并不是0和85的突变了):

    

OK 完成了

 

  • 时间轴各个点的作用:

Play:正向播放时间轴

Play from Start:从时间轴的第一个关键帧播放

Stop:停止

Reverse:反向播放

Reverse from End:从最后一个关键帧开始反向播放

Set New Time:设置新的开始播放时间(自定义的)

Update:每帧每秒的更新(设置作用的对象)

Finished:时间轴跑完了要触发什么

Direction:方向的判定(判定时间轴是正向的还是反向的)(不太清楚)

 

  • P28. 按键+鼠标点击实现开关门
  • 1.  创建门的蓝图类(Actor和组件的区别、门的轴心点修改)

右键“内容浏览器”的空白处,选择“蓝图类”;然后在弹出的新界面选择“Actor”

  

双击打开“内容浏览器”中新建的Actor

在新的界面中,左上角“添加组件——静态网格体组件”;然后在右侧 “细节——静态网格体——静态网格体”中选择“SM_DoorFrame”(添加一个门框;可以搜索)

  

然后再新建一个门的网格体(和门框的操作一样,添加组件——静态网格体组件,细节——静态网格体——SM_Door)(在组件中,门要放到门框的下一级)

 

//******插播一点东西

门的坐标轴在远离把手的一侧的边上,所以开关门的动作很好实现(在远离把手的轴上旋转):

  

 

但是如果一个我们自己添加的物体,我们想改变它的“基准”坐标轴怎么办

  

(在刚才添加门和门框的那个界面)“组件——添加组件”,搜索 “场景”,添加“场景组件”:

  

然后把“StaticMesh” (添加的物体)挪到 “Scene”(场景组件)下一层级

  

移动物体,使“Scene”到物体的一个角落(你想要把坐标轴改变到的那个点),这时候旋转“Scene”就能对物体进行相应位置的旋转了(蓝图中直接对这个Scene进行编辑?)

  

不推荐这么做,推荐直接在建模软件(如3dmax)中进行修改

//******插播结束

 

继续上面的,添加门之后,“添加组件”,搜索box,添加“Box Collision”,适当调整盒子的大小(box collision添加到门框的下一级、和门同一级;如果在门的下级,那么门旋转时,box collision 也会跟着转,不符合实际情况)

  

 

切换到“事件图表”

  

单击左侧添加的“Box”,然后在右侧“细节——事件”,添加“组件开始重叠时”和“组件结束重叠时”

在“事件图表”的编辑界面中 右键“添加时间轴”;然后 双击 新添加的时间轴,添加两个关键帧、改长度、右键第一个关键帧 插值改成自动...(最后点一下上面左侧的“编译”按钮)

 

  • 2. 相对位置和世界位置(设置actor旋转、设置世界旋转、设置相对旋转的区别)

Door的引用直接用鼠标从左侧拉出来:

  

拉出来上图的蓝圈,添加“设置相对旋转”(为什么设相对旋转不设绝对的旋转:因为我们要做的是一类门,不同的门的朝向是不同的,如果门从关到开都转90度,有的门可能是从0~90,有的可能是从-45~45,所以设相对旋转)

时间轴的“Update”的执行连接“设置相对旋转”左侧的执行(如果连错线了,双击线 然后delete)

之后再连剩下的一些线,和P27差不多;连完后如图:(连完后点一下左上角的编译)

  

然后就可以把“内容浏览器”中我们新建的“门(蓝图类)”拖拽到 视口界面了

  • 3. 键盘 E 键实现开关门

(人物走进触发盒子,不直接执行开关门的操作;而是判断)

在“事件图表”中添加“Gate”:

  

“事件图表”中添加“E”键(搜索“键盘”,下拉找到“E”),长这样:

  

“事件图表”添加“启用输入”、“禁用输入”、“获取玩家控制器”、“FlipFlop”

      

连完线的“事件图表”:

  

FlipFlop:触发器;执行第一次的时候,走A;执行第二次的时候,走B;第三次走A...

  • 4. 鼠标点击实现开关门

在 蓝图编辑器中,点击一次左侧“组件”中的“Door”,右侧“细节——事件——点击时”,添加这个“点击时”

用“点击时”替换掉“E键”

回到有“视口界面”的那个界面,右下角“世界场景设置——游戏模式”,“游戏模式重载”选“ThirdPersonGameMode”,“玩家控制器类”点右边的“+”号,创建完成之后会自动打开一个新窗口

新界面右侧“细节——鼠标接口——启动电击事件”勾选(“显示鼠标光标”也勾选上),完成之后点左上角编译。然后就完成了

 

如果想 人物靠近门才会出现鼠标,人物远离门就隐藏鼠标;首先在“事件图表”中添加“设置 Show Mouse Cursor”(搜索“set show mouse”就会出现,但是要把“情境关联”取消勾选)

    

连完线之后: 

 

记得要把添加的新的玩家控制器类的“鼠标接口——显示鼠标光标”取消勾选

  

上面这一切记得编译

 

OK完成了

标签:蓝图,旋转,开关门,添加,时间轴,组件,UE4,右键
From: https://www.cnblogs.com/wjjgame/p/16809821.html

相关文章

  • ue4 vlc ue5 vlc插件,方便接入rtsp、rtmp、http、m3u8视频流等,支持gpu解码、支持播放声
    和商城插件的区别本插件和商城的Multi-channelplaynetworkvideostreamsByOpenCVhighperformanceWebCamera(基于opencv开发)相比,增强了很多功能,1.添加了播放声......
  • UE4学习笔记8——获得角色控制,打包
    P25.获得角色控制权的两种方法P26.打包游戏、游戏模式、默认关卡P25第一种方法:在“内容浏览器”(下面),选择内容——ThirdPersonBP——Blueprints中,拖拽一个“Third......
  • UE4技能系统GameplayAbilitySystem
    注:本分享主要面向策划,重点介绍GAS框架的思想,以期拓展技能机制的设计思路,其中设计技术实现的部分,可参见:在文中如果出现UE4中实现的注意事项,会用(UE_Note)标记。ht......
  • UE4学习笔记6——地形,植被
    P19.地形工具的使用P20.灰度图生成地形P21.植被工具的使用P19地形工具位置地形——管理——新建材质:可以把材质拖进去分段大小:一个中格子里有多少小格子......
  • UE4学习笔记5——画刷;合并BSP;合并Actor
    P15.BSP画刷的概述和使用方法P16.房子搭建全流程P17.静态网格模型碰撞设置P18.合并Actor(合并静态网格体)P15画刷在哪?放置actor->几何体,这些就是所谓的画刷......
  • UE4插件小纪
    从资源网下载的ue4商城插件可以手动安装至编辑器插件目录下。例如:C:\ProgramFiles\EpicGames\UE_4.26\Engine\Plugins\Marketplace比较好用的插件:butterfly:EventSyste......
  • 【UE4】GameplayTag的妙用(ActorTag)
    我不会抛下这个残破的世界在现代游戏引擎中,有一个“Tag”的概念,无论是在Unreal还是Unity中,他们都有大同小异的tag实现。此篇随笔以ActorTag举例,简单讲解一些常见情况......
  • 如何在 UE4 中制作一扇自动开启的大门
    前言相信很多玩过游戏的朋友都知道,在玩游戏的过程中,如果我们被一道门给挡住了去路,只要按下某一个按键,门就会自动的开启。于是,今天我就带大家来制作一道会自动开启的大门吧!场......
  • 在UE4中创建蓝图类,点开蓝图类没有编辑界面
    UE4系列文章目录文章目录​​UE4系列文章目录​​​​前言​​​​一、解决办法​​​​总结​​前言当我们在UE4的内容浏览器中新建了蓝图类,例如AKM_Bullet_BP,第一次点开这......
  • Ue4_通用化交互组件设计(待续)
    简述需求:在游戏场景中,碰到可交互物品,显示不同的Widget(提示不同的文字提示),碰到物品时显示,远离有效距离关闭显示,并按某一个按键触发该item交互,默认F常规解决方案:一ItemT......