p45,多个角色控制权切换
- p45,多个角色控制权切换
- 创建新玩家
- 方法1
- 方法2
- 控制权切换
- MultiGate按顺序指向一系列的蓝图引脚
- possess(控制)
- 切换时摄像机过渡效果
- Set View Target with Blend(使用混合设置视图目标)
- 折叠到宏,折叠节点
p45,多个角色控制权切换
创建新玩家
方法1和方法2冲突,只能用一种
方法1
从内容浏览器的蓝图拖拽一个角色到视口中,点击一次(不要两次,两次为选中),在右边细节面板搜索详情搜索prossess
单人游戏时,选择玩家0
多人游戏时,可以选则玩家1……
这样就可以开始操控角色
方法2
在窗口,打开世界场景设置
在世界场景设置找到game mode(游戏模式),在游戏模式重载找到ThirdPersonGameMode
在选择模式-》基础-》玩家出生点(场景中只能有一个)
可以在游戏模式重载右边加号创建新蓝图,创建新角色,当自己有角色蓝图时,可以在,游戏模式-》选中游戏模式-》默认pawn类,找到自建角色蓝图
控制权切换
在操作当前玩家时,其他玩家都在随机的做设定好的各种运动
如gta5的几名主角
本节目的实现此功能
场景中放几个ThirdPersonCharacter
在世界大纲选中所有小白人(按ctrl选中第一个,按shift选中最后一个,即可快速选中此区间)
打开关卡蓝图,缩小关卡蓝图,拖拽世界大纲内的小白人到关卡蓝图内
MultiGate按顺序指向一系列的蓝图引脚
按顺序指向一系列的蓝图引脚
是Gate的加强版
添加引脚可以添加Out 引脚的数量,可以执行更多的功能
Reset(重置),下方会出现一个bug,在按顺序切换完全部角色后,按1会无法再次切换角色,可以用此节点连接2或自定义事件,使玩家按2或触发自定义事件后可再次开始切换
Is Random(随机),勾选后会随机选则引脚触发事件(但是还是次数有限,没解决上述bug),没勾选会按顺序出发引脚事件
Loop(循环),勾选后会继续走,解决了bug
Start Index(开始指数),下标索引,可以选择从哪个引脚开始执行
如果Reset同时勾选Is Random,会随机选择,甚至会连续数次选择同一个玩家,使用Reset(重置)的原因是只使用Is Random(随机)会使走过的角色不会再走了
possess(控制)
创建蓝图“获取玩家控制器”,拉出引线搜索possess(控制)
possess(控制)可以实现改变玩家控制角色的功能
如图连接蓝图
想要实现按键盘1实现控制切换
创建键盘1,连接MulitGate,如此即可初步切换角色
按1按顺序切换到最后一个人时会出现bug按1不会再切换了
但是现在会出现,当切换控制权后,其他角色会立即停止运动,会造成如滞空等bug
切换时摄像机过渡效果
Set View Target with Blend(使用混合设置视图目标)
使用“获取玩家控制器”拉出引线搜索Set View Target with Blend(使用混合设置视图目标)
New View Target:当前摄像机(画面)去一个新的摄像机(画面)
Blend Time:摄像机转换的过程所花费的时间
Blend Func:转换画面的设置(由快而慢、由慢而快、匀速等)
创建一个“延迟”,如图连接蓝图
因为想生成的效果为切换摄像机画面要2秒,2秒之后再获得角色控制权,所以使用了延迟,并按上图顺序连接蓝图,如此,摄像机的切换就不会很生硬了
现在如果在切换摄像机的时候按1切换,就会出bug
所以,在按1的时候需要添加一个判断,判断摄像机切换完了与否
创建一个bool变量重命名为“摄像机切换是否完成?”
如图连接蓝图,注意bool变量“摄像机切换是否完成?”初始时不要勾选
全部蓝图如下
折叠到宏,折叠节点
为什么不可以优化蓝图,使其变为一个函数,因为存在延迟节点,函数里不能存在与时间相关的节点,不能有流程控制的节点(如MultiGate)
也可以优化,选中如图这些固定的节点,右键,折叠到宏或者折叠节点
节点中的蓝图节点一般是不同的
函数和宏里面的蓝图节点一般都是相同的