多个角色控制权切换
控制权切换
首先进入地图中,确保该地图中没有 玩家出生点 ,并且添加多个玩家蓝图类

选中所有添加的 玩家蓝图类 ,并将其拖入到 关卡蓝图 中

在 关卡蓝图 中新建 MultiGate 节点

在空白处添加 获取玩家控制器 节点,并从该节点输出处拖线到空白处添加 控制节点 ,连接 玩家蓝图类 的引用,并连接到 MultiGate 节点

将所有的 玩家蓝图类 连接

最后,将 键盘1 节点连接到 MultiGate 输入节点

编译后运行

键入 1 后可更改角色

切换过渡
添加 使用混合设置视图目标 节点

将 目标 连接至 玩家控制器 ,将 New View Target 连接至要切换到的 角色蓝图类 ,Blend Time 设置切换所需时间,Blend Func 为切换的过度动画

编译后运行发现角色可以切换,但是没有转场过度动画,检查后发现,控制 和 使用混合设置视图目标 的顺序错误,调整后

编译后运行

因为在播放过渡动画时,控制权依旧在切换前的角色上,所以会出现切换时控制角色依然会行动

所以在过度动画节点和控制节点间添加 延迟 和 启用输入 节点,在 键入1 节点后添加 禁用输入 节点


因为相同功能节点太多,可以直接提升为 节点 或 宏

将其封装为 节点 或 宏 后整理节点和连线

将 禁用输入 节点封装进去之后

编译后运行发现角色在转移时依旧可以控制。检查之后发现,默认角色是 角色4 ,当第一次切换时,Out1 引脚处的禁用是禁用了 角色1 而当时玩家的控制角色是 角色4 ,第二次执行时,因为已经执行到 Out2 ,所以禁用的角色是 角色2 ,但是玩家操控的是 角色1 ,所以才会造成玩家切换角色时一直可以移动。因为每次禁用的角色都不是玩家当前操控的角色
重新修改代码后

编译后运行

正常切换,并且切换之后角色无法移动,切换完成后才能重新获得切换后角色的控制权
在切换时多次键入 1 后会直接跳过角色过度,所以可以直接添加判断

并且在每个节点的结尾添加 SET 节点

在判断中添加一个输出

编译后运行

注意
-
如果遇见当切换角色过渡时,角色依然能动的情况,请检查禁用的角色是否时当前控制的角色
-
如果遇见按 2 次才能切换角色的情况,请检查默认控制的角色是否和第一个切换的角色相同