当前位置:   article > 正文

1. 蓝图_自动门_有意思制作自动开关门的蓝图

有意思制作自动开关门的蓝图

1. 蓝图制作自动开关门

当小白人靠近,则打开门,离开则自动关上门。

  1. 事先准备好门和小白人在关卡中

image-20230325132559961

  1. 对门进行碰撞设置----双击并添加盒体碰撞;门改为可移动性。

  2. 对门添加感应装置----盒体触发器

image-20230325133535355 4. 选中盒体触发器----打开关卡蓝图----右键----触发盒子的两个事件(OnActorBeginOverlap和OnActorEndOverlap)
  1. 选中门-----在蓝图里面右键为其创建一个引用(为的是让这个门进行旋转,门就是这个事件的目标)

  2. 此时当这个小白人靠近门时,门就是进行一瞬间的旋转,没有一个工作的过程。

image-20230325140128273
  1. 添加时间轴----右键搜索时间轴(汉化版本不用英文搜索)

    • 双击时间轴对其进行设置

    -image-20230325141210453

    • 添加帧点。看下图第4步,假设设置为4,当我们反向开门时,1.5~4这个过程是没有变化的,到了第4秒的时候才开始反向开门,相当于具有周期性。
    image-20230325141842917
    • 进行编译,会发现当小白人会靠进门会出现一瞬间的转动,没有门转动的过程,为此添加弧线。
image-20230325142323079
  1. 蓝图总设计如图所示

image-20230325143213007


2. 创建门的蓝图类

  • 首先了解一下蓝图类

image-20230325145608337

  • 创建一个Actor

  • 添加一个门框和门组件都是静态网格体组件----右边的Static Mesh进行搜索相应的部件。

  • image-20230325150455120

  • 旋转门的时绕着右下的端点进行开关门的操作,因此该部件的坐标轴就不能是在中心,而是在右下角 — 解决办法—就是把在3D建模软件进行移动坐标轴到右下角。

  • 触发盒子和门必须是同级,如果不同级的话,门旋转,触发盒子也会旋转,但是实际上要转的只是门。

    image-20230325151807939

  • 看下面这个图的区别:设置Actor相对旋转是类里面的全部组件都要进行旋转,其余两个是类里面某些组件进行旋转,不同的是相对位置和绝对位置的区别。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传image-20230325153417258

  • 其余设计与上面一样,这样做的好处是我们很容易的做出上千扇门,不用一个一个进行设计。

  • image-20230325220521219
  • image-20230325220555960
  • 由此就得到上面Door_BP的一个蓝图类了,直接拖动即可。


3. 用按键实现开关类

首先了解Gate节点,以我们的开关门的例子来说,当靠近门时,说明它是可以打开这门条件,实际上是没有打开门,需要我们按下E并且靠近门才能打开,E相当于是个钥匙,而Gate相当于if条件判断。通俗一点,靠近门拥有打开门的条件,离开是拥有关上门的条件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Jxp4Aw1-1683040024808)(null)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vr9DtV5m-1683040018521)(C:/Users/王川/AppData/Roaming/Typora/typora-user-images/image-20230325222621912.png)]

还需要让系统能够识别到按键的操作,添加了启用输入禁用输入两个节点,从这两个节点可以看出Player Controller是谁?让这个控制器告诉我们是否开启了这个键盘的输入----获取玩家控制器节点

也就是说开启角色输入,按键的输入才能够有效。

image-20230325223911712

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-siTS1kB7-1683040024828)(null)]

Flip Flop节点的意思是第一次走A,第二次走B,第三次走A,以此类推。相当于第一次按E开门,第二次按E,就是关门。

image-20230325224416694


4. 鼠标点击开关门

首先将点击时节点替换掉上面的按键E,打开世界场景设置,点击+,进入并勾选;目的是为了设置鼠标能够门上显示鼠标这个标记。

image-20230325225237580

image-20230325225015091

连成下面这个类型,记得把上面的显示鼠标光标取消掉。

image-20230325231201396 ----

5.实现鼠标双开门

image-20230328124728370 image-20230328124742339 image-20230328124843620

前面部分与鼠标点击开关门是一样的蓝图,仅仅是最后部分不一样,旋转门的大小设置也就是插值节点进行手动插值。这个门的还有做法就是人在门的那个方向,开门的时候往反方向开门,需要对其进行判别。

6.实现按键电梯

image-20230328125807669

image-20230328125856419 image-20230328125907051

看一看时间轴的相关功能

image-20230328130206116 ---

7.实现按键绝地求生双开门


8.拾取钥匙开关门(蓝图类直接的通信)

首先建立一个用按键实现的开关的蓝图类,如图所示。

image-20230325224416694

image-20230330080942013

image-20230330081012088

我们要做的是拾取钥匙开门,意思我们要有钥匙在,才能开启门,因此在按下键盘e时,还要判断是否有钥匙,有钥匙判断为能开门,没有钥匙则不能。

新建一个变量门是否能开门,并设置布尔变量:

image-20230330081454193

image-20230330081530562

分支这个节点相当于if条件判断,为True进行开门操作,为false 提示尼没有钥匙。接下来就是当我们拾取到这个钥匙,想办法让这个门是否能开门节点打勾,一定是拾取了钥匙这个操作,才能打勾,千万不能直接设置为默认值打勾,如果直接设置默认值打勾,就不需要拾取钥匙这个操作了,按下e直接就能开门了。

image-20230330081919607

设置钥匙蓝图类,仅仅演示操作,钥匙用的立方体进行代替,并且添加球体碰撞体。

image-20230330082215606

按下e进行拾取操作,与前面一致。

image-20230330082335597ll)]

与开关门蓝图类建立通信,out Actors指的是场景中的所有蓝图类实例化,假设场景中有一百扇门,这个指的就是100扇门的数组。

image-20230330082510964

Get 这个这个节点是获取这个数组中某一个元素的引用,

image-20230330082854909

image-20230330083903733

目的是为了门是否能打开这个节点为是这个操作,即为set节点打上勾,两个蓝图类就建立了通信。销毁Actor节点是在我们拾取钥匙这个操作之后,地面上的钥匙就应该消失,也就是c++的销毁释放操作。

image-20230330082740167 钥匙蓝图类: image-20230330085220425

门蓝图类:

是否能打开**这个节点为是这个操作,即为set节点打上勾,两个蓝图类就建立了通信。销毁Actor节点是在我们拾取钥匙这个操作之后,地面上的钥匙就应该消失,也就是c++的销毁释放操作。

image-20230330082740167

钥匙蓝图类:

image-20230330085220425

门蓝图类:

image-20230330085304712
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/501476
推荐阅读
相关标签
  

闽ICP备14008679号