zoukankan      html  css  js  c++  java
  • UE4-Blueprint Class-Actor-开关门-盒子触发体

    蓝图学习

    1.开关门案例-Actor类

    1. 新建蓝图继承Actor类的BP_Door蓝图类
    2. 打开BP_Door在VIewport中添加门所需要的元件(窗口左上角Add Component)
      • 添加静态网格体(Static Mesh)--DoorFrame(门框)
      • 选中新建的DoorFrame在细节面板(Details)中更改属性Static Mesh的None为SM_DoorFrame
      • 添加静态网格体(Static Mesh)--Door(门)
      • 选中新建的Door在细节面板(Details)中更改属性Static Mesh的None为SM_Door
      • 添加盒子触发体(Box Collision)-Box;Box必须与要旋转的门Door在统一层级目录下。
      • 适当调节门框、门、盒子触发体的位置角度
      • 事件图(Event Graph)中添加事件触发:
        • 选中Box在Details--Events中添加On Component Begin/End Overlap(组件 开始/结束 重叠时)
        • 组件开始重叠时触发按照时间轴设定轨迹执行
        • 组件结束重叠时触发时间轴设定逆向轨迹执行
        • 添加时间轴(Timeline),并且双击时间轴为其添加浮点型轨迹
          • 添加开始和结束关键帧(设置起始时间和开始旋转角度)与(结束时间和停止旋转角度)
          • 设置关键帧差值为Auto(平滑轨迹开关门,否则按均值开关门比较生硬)
        • 设置相对旋转(SetRelativeRotation--参考2.拓展-旋转方法),目标为Door,由于门围绕Z轴旋转,所以分割结构体引脚,单独为Z周添加运行轨迹。
        • 将上面新建的时间轴新轨迹与Z轴连接。
      • 在需要开关门的地方拖拽上面编辑好的BP_Door蓝图,调整位置角度。
      • 大功告成
    3. BP_Door截图

    拓展-旋转方法

    • SetActorRotation: 整个Actor类的旋转
    • SetRelativeRotation: Actor类中的组件相对Actor自身坐标的旋转
    • SetWorldRotation: Actor类中的组件相对世界坐标的旋转

    2. 开关门案例-按键控制开关门

    对蓝图做了部分修改,直接看截图

    3.电梯升降

    1. 新建蓝图-->Blueprint Class-->Actor ==>BP_DianTi
    2. 创建电梯元件(构建电梯外观)
    3. 创建盒子触发体(Box Collision),调整大小与电梯底部差不多,以防人上电梯但是没有进入 盒子触发体范围内
    4. Event Graph
      • On Component Begin/End Overlop: 组件重叠 开始/结束时
      • 获取Player Controller
      • 允许输入/输出: Enable / Disable input
      • 设置键盘E键 触发时间: E keyboard
      • 设置门的关闭与打开:Gate
        • 获取到 键盘E键的输入
          • Enable input: Gate执行open
          • Disable input: Gate执行close
          • 默认是Close
      • 交替执行open与close:Flip Flop
      • 新建时间轴:Timeline
        • 参数open: 执行play
        • 参数close: 执行reverse
        • 添加浮点型轨迹:0~3秒内 生成0~1的浮点数
      • lerp:Alpha的值:
        • 0~1的浮点数
        • 返回值:1000 * Alpha
      • 设置电梯元件z轴的坐标位置
        • 参数作为Z轴的值
        • 根据Timeline时间轴的变化不断更新z轴的值
    5. 大功告成
    6. 截图

    4. 双向自动开门

    1. 新建蓝图-->Blueprint Class-->Actor ==>BP_ShuangKaiMen
    2. 创建双开门元件(构建双开门外观,左右两扇门)
    3. 创建盒子触发体(Box Collision)
    4. Event Graph
      • On Component Begin/End Overlop: 组件重叠 开始/结束
      • 时间轴:TImeline
      • 2个线性插值(左右门各1各):Lerp
      • 分别设置两个门的相对位置: SetRelativeLocation
    5. 大功告成
    6. 蓝图截图
  • 相关阅读:
    常量池 栈 堆
    函数的调用
    字符、数组
    整理
    JavaScript深入之——原型与原型链
    虚拟机(VMware)中文破解版,及创建虚拟机
    小程序之mpvue使用
    报错整理及解决办法
    js 关于时间方面的通用函数
    iview Cascader级联选择省市区问题
  • 原文地址:https://www.cnblogs.com/yblackd/p/14533376.html
Copyright © 2011-2022 走看看