虚幻引擎 Make Vector / Break Vector 节点

在蓝图里处理向量时,Make Vector(合成)和 Break Vector(拆分)就像一把“瑞士军刀”,当你需要读取或修改向量的某个坐标分量时,就离不开它们。

💡 什么是 Vector,以及为什么要用它?

在 UE5 的 3D 世界里,一个 Vector 由 (X, Y, Z) 三个浮点数分量构成,简洁地描述了我们需要的各种信息。它主要有三种用途:

  • 位置 (Location)(X, Y, Z) 代表物体在3D世界中的坐标

  • 方向 (Direction):向量也能表示方向,比如角色移动的方向

  • 速度/缩放 (Velocity / Scale):用于表示速度或大小,向量加法就是速度的叠加。

正是因为 Vector 简单又强大,所以 Make Vector 和 Break Vector 才如此重要。Make Vector 用于将三个独立的数值“打包”成一个向量,而 Break Vector 则是从一个完整向量中提取出它的 XYZ 数值


🛠️ 案例:随机移动的弹跳球 (平台跳跃游戏)

我们将创建一个会在地面上随机弹跳的小球,这个案例能很好地展示这两个节点的核心用法。

1. 创建蓝图类

  • 在 内容浏览器 (Content Browser) 中,右键点击空白区域,选择 蓝图类 (Blueprint Class) -> Actor

  • 命名为 BP_BouncingBall,双击打开编辑器。

2. 添加视觉组件

  • 添加一个 静态网格体 (Static Mesh) 组件。

  • 点击“静态网格体”右侧的“无”下拉菜单,选择 Shape_Sphere

  • 同样地,添加一个 球形碰撞 (Sphere Collision) 组件,并调整它的大小,使其稍微比球体大一圈即可。

3. 创建逻辑变量

  • 变量名Move Direction类型Vector

  • 变量名Move Speed类型Float默认值500.0

  • 变量名Bounce Z类型Float默认值100.0

记得在细节面板中,把 Move Direction 和 Move Speed 的 Instance Editable 勾选上,方便在场景中调试。

4. 核心逻辑实现 (事件图)

在 BP_BouncingBall 的事件图表中,按以下方式连接节点:

🎉 播放时随机初始化

  1. 从 Event BeginPlay 节点引出白色执行线。

  2. 拖出 Random Float in Range (From 0 to 360),得到 RandYawAngle

  3. 新建 Make Vector 节点,将 X 设为 cos(RandYawAngle)Y 设为 sin(RandYawAngle)Z 设为 0

  4. 将这个向量 归一化 (Normalize),然后 设置 (Set) 给 Move Direction 变量。

    节点速览:这段逻辑会用你的随机角度算出一个2D方向(例如:右前方),并保存为移动方向。

⚡ 持续更新位置

  1. 从 Event Tick 节点引出白色执行线。

  2. 获取 Move Direction 和 Move Speed 变量。

  3. 将它们 相乘 (Multiply),得到当前帧的位移增量 Delta Movement

  4. 然后连接到 Add Actor World Offset 节点(步长类型选 World)。

🪄 边界反弹 (重点案例逻辑)

  1. 使用 序列 (Sequence) 节点,从 Event Tick 分支出一条新线。

  2. 获取 Move Direction,连接到 Break Vector 节点,得到 Old XOld YOld Z

  3. 同时创建 Get Actor Location 节点,连到另一个 Break Vector 节点,获得 Loc XLoc Y 等。

  4. 判断边界条件 (用“>” 和 “<” 节点)

    • Loc X > 1800 (或你的区域边界),则新 X = -Old X

    • Loc Y > 1800,则新 Y = -Old Y

  5. 接缝处弹跳逻辑

    • 如果 Loc Z <= 100.0 (刚落到地面),新 Z = Bounce Z (注意是正值,向上)。

  6. 新建一个 Make Vector 节点,把可能改变后的 XYZ 值重新打包成一个新向量。

  7. 最后,将这个新向量 设置 (Set) 给 Move Direction 变量,就完成了方向的改变。

节点速览:当你需要单独修改一个向量的某一部分时(比如在碰撞后将X分量取反),Break Vector 和 Make Vector 的配合就是最清晰、最直接的方案

💎 案例总结

通过这个弹跳球案例,我们可以清晰地看到这两个节点的分工与协作,也正是它们在UE5蓝图开发中的核心价值:

  • Break Vector (拆分):当你需要读取或修改一个向量的某个特定部分(比如只获取Z轴高度,或反转X轴方向)时,使用它来提取分量。

  • Make Vector (合成):当你修改了分量,需要将其重新“打包” 送回给需要它的地方时,使用它来合成新向量

⚡️ 更高效的方式

除了使用这两个节点,UE5还提供了一个更快捷和直观的方法,特别适合简单的单独修改:

  • 右键拆解:在引出一个向量引脚后,直接右键选择 Split Struct Pin(拆分结构体引脚),它会直接在节点上分解出 XYZ

  • 一键重组:完成修改后,在其中一个分量引脚上右键,选择 Recombine Struct Pin(重组结构体引脚),分量会立刻变回原本的向量

  • 适用场景:这个方法非常适合在单个节点上快速连接分量,省去了额外添加 Break / Make 节点的步骤,让蓝图看起来更简洁。

感谢您的来访,获取更多精彩文章请收藏本站。

THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容