UE4中分屏游戏制作(本地多人游戏 SplitScreen)
引子
很多人问过我蓝图中节点GetPlayerController中的PlayerIndex是什么,我的解释是本地玩家索引。但是大家好像并不知道什么是本地玩家索引,因为大部分人觉得本地只有一个玩家,还需要什么索引?其实不然!一些游戏本地可是会出现多个玩家的!不信可以往下看!
前言
大家有没有玩过 《铁拳》《实况足球》《NBA》《FIFA足球》 呢?这些游戏有个共同特点,就是可以多个玩家一起玩。并且,在出现多个个玩家时,他们共用一个屏幕视野,我们称这样的游戏叫本地多人同屏游戏。
当然有同屏多人游戏,那有没有本地多人分屏游戏呢?当然有!像《真三国无双7》《无主之地》,PS上的《我的世界》,《超神集结》等。这些可都是典型的本地多人游戏,并且使用同一块屏幕进行了分视野设计。
那在虚幻引擎中,是否可以实现本地多人游戏设计呢?当然是可以的!与Unity引擎不同的是,虚幻并不需要使用者自己摆放摄像机来完成分屏或是同屏设计。基于引擎框架,虚幻提供了完整的解决方案,我们只需要使用少量的代码即可完成操作!
操作
添加新的玩家
虚幻引擎框架对于主角(玩家)的构建有个严格的把控流程。设计人员如果希望自己构建的角色被应用为控制角色。则需要将角色添加到GameMode的默认玩家中(这是最好的方案)。或是手动获取玩家控制器,进行Possess控制。当设置了玩家角色后,引擎启动会构建第一个角色,给一号玩家控制器(我们暂时这么称呼)使用。这就是单人单机游戏。
如果你想添加本地玩家,则需要使用CreatePlayer节点。这个节点会在本地添加新的玩家,并使用标准流程构建被控制的角色,添加到场景中。
- Controller Id 指定新加入的玩家的ID索引值,-1则按照递增的方式自动生成索引。
- Spawn Pawn 是否生成默认角色。如果不勾选,则在本关卡不会生成玩家控制器和角色(Return返回为空),当进入到下一个关卡才会生成。
- Return 返回生成的新的玩家控制器PlayerController
执行节点后你将获得下面的屏幕效果(使用第三人称模板测试工程)
修改分屏模式
虚幻引擎的本地多人模式,默认是分屏的。当然,如果你希望修改则可以在项目设置地图中完成。
通过去掉图5中的勾选,则可以把分屏模式修改为同屏模式。如图6
不仅如此,你还可以通过调整图5中的参数,修改分屏的排版。在这里就不一一赘述了,大家可以自己试试。
如何控制另外一个角色?
当添加了一个玩家后,对应的玩家角色我们应该如何控制呢?这点也不需要担心,虚幻引擎会默认搜索终端硬件控制器(手柄,键盘),然后默认匹配。对于输入事件处理,按照正常开发来处理即可。二号玩家的硬件控制器与PlayerController的对应关系,引擎已经处理完成。我们直接使用即可。
不过在此之后,包括获得角色,获得控制器,都需要注意玩家索引关系。
本地多人,最多几人?
虚幻引擎目前支持最多4个本地玩家一起游戏,当超过4个玩家时,生成会失败,并有错误提示。
虚幻引擎版本:4.21.2