【虚幻引擎】设置双人分屏

Friday, Aug 11, 2023 | 1 minute read | Updated at Friday, Aug 11, 2023

@

本文记录了在项目中实现本地分屏联机功能的过程,包括在项目设置中启用分屏模式、配置游戏模式,并详细解析了用于动态生成玩家角色的蓝图核心逻辑与关键节点。

在开发项目的时候想添加一个本地联机功能,使用分屏功能实现,查了一些资料做此记录博客.

项目设置

在项目设置中Local Multiplayer目录下打开使用分屏功能,可以选择垂直/水平分屏,一般像双人成行那样选择垂直模式.

image-20250425120633628
image-20250425120633628

⚠Warning !

注意此处要跳过将手柄指定到玩家1选项.,因为我们想实现一个玩家1使用键鼠操作,后续玩家使用手柄操作的模式

img
img

游戏模式设置

打开项目设置后就可以修改我们的游戏模式.

img
img

蓝图核心逻辑解析

  1. 触发入口
  • Event BeginPlay 节点作为起点(游戏开始时触发),启动后续流程。
  1. 数据准备与循环处理
    • 使用 For Each Loop 节点遍历一个数组(数组为使用get_all_actor_of_class得到的玩家出生点对象数组)。
    • 通过 Length 节点获取数组长度,控制循环次数。
    • 在循环中,通过 Array ElementGet 节点提取当前处理的数组元素(如生成位置、对象类型等)。
  2. 动态生成与位置控制
    • 生成阶段:

      • 使用 Spawn Actor 或类似节点( Spawn Transform)在指定位置生成玩家对象,并设置玩家的Player_index为玩家打上标记。
      • 生成时传入 变换信息(位置、旋转、缩放)。
    • 位置调整:

      • 通过 Get Player Location 获取玩家当前位置,结合 Shift 或其他运算节点计算偏移量(例如生成物体围绕玩家分布)。
    • 最终用 Set Actor Location 节点设置生成对象的位置(可能直接使用数组中的坐标,或基于玩家位置动态计算)。


关键节点与功能

节点名称作用
For Each Loop遍历数组,逐个处理元素(如生成点或对象)。
Length获取数组长度,控制循环次数或生成数量。
Spawn Transform在指定位置生成对象,可能包含动态参数(如振动频率)。
Get Player Location获取玩家当前位置,用于相对生成或偏移计算。
Set Actor Location最终将生成的对象定位到目标位置。

Caution

由于使用的是虚幻引擎的中文版本,有一些翻译问题:

Create Player(创建播放器)翻译问题 应该是创建玩家(控制器)

后续创建的玩家对象蓝图被此处的控制器所控制

在世界场景设置中选定游戏模式(GameMode)为我们新写好的游戏模式

img
img

如果想要两个玩家使用的角色不一样,可以修改我们之前的GameMode蓝图,基于playercontrollerindex为两个玩家创建不一样的角色对象.

Tip

虽然我们的游戏是本地双人的,但是可以提一嘴

get_player_controller会默认获取本地的的所有玩家控制器生成一个对象列表(数组)返回

玩家的操作逻辑写在玩家一的角色蓝图中

Warning

操作蓝图分别写在两个蓝图中会导致玩家2无法操控(不知道为什么)

本地双人模式的用户控件

实现一个血条和蓝条的UI

在一个用户控件中获取当前控件所有者的Pawn,将玩家控制的角色Pawn类提示为变量传入

img
img

实现血条和蓝条的简单计算:

img
img

img
img

将该函数绑定到设计界面的相应值

添加UI到视口

还是回到我们写的游戏模式,基于playercontrollerindex分别为玩家生成用户控件

Tip

注意此处的节点是Add To Player Screen添加到播放器屏幕(多人常用),而不是Add To Viewport 添加到视口(单人常用)

完成后的效果如下:

img
img

© 2021 - 2026 古月月仔的博客

🌱 Powered by Hugo with theme Dream.

关于我
  • 我是古月月仔
  • Ethan Hu
  • 分享技术学习笔记与生活点滴
  • 现居: 上海 中国
  • 家乡: 平遥 山西
在用的学习工具
  • 📝 Typora —— 极致简洁的 Markdown 编辑器,助力沉浸式文档撰写与知识记录。
  • 📓 Notion —— 一站式工作空间,用于搭建个人知识库、项目管理与深度协作。
  • 🔗 N8N —— 强大的基于节点的自动化工作流工具,轻松实现不同应用间的逻辑联动。
  • 🤖 Gemini —— 智能 AI 助手,在代码辅助、创意激发与信息检索中提供强力支撑。
我的爱好
  • 🚀 喜欢折腾各种好玩的技术
  • 📸 业余摄影爱好者
  • 🎮 各类游戏玩家
  • 💻 数码产品折腾爱好者
  • 📚 阅读:赫尔曼·黑塞 & 阿尔贝·加缪
  • 🎞️ 追番中:《电锯人:蕾塞篇》
  • 🎬 经典重温:《命运石之门》
最近正在学