第四篇:UE4视角切换节点,Possess和Set View Target With Blend的区别

UE4中视角切换有好几种方法可以实现。第一种就是使用多个摄像机摆好位置,摄像机之间互相切换,缺陷是镜头直接跳转。今天要说得是一个摄像机实现镜头的切换,镜头切换主要是Possess和Set View Target With Blend两个节点,接下来说说他们的区别。 首先,我们需要了解UE4中的两种相机,一种是普通相机。

一种是新建一个Pawn蓝图类,添加Capsule组件,SpringArm组件,Camera组件,他们的父子关系如图
在这里插入图片描述
Capsule,代表相机远点,SpringArm是相机臂,可以通过调节Target Arm Lengthad的数值来改变Camera到Capsule的距离。
下面来说说两个节点的区别了
1、普通Camera只能使用Set View Target with Blend,无法使用Possess,Possess只能是继承自Pawn类的相机才能连接
在这里插入图片描述
在这里插入图片描述

2、如何在切换视角时,改变位置和角度以及相机臂
比如普通Camera只能改变位置与角度,如图,Set View Target with Blend写在SetActorLocationAndRotation前面或者后面都可以。
在这里插入图片描述

如果想实现位置或者角度的缓慢变化,就需要用到Lerp节点做插值变化,如图
在这里插入图片描述

Pawn类的相机既可以使用Set View Target with Blend也可以使用Possess,这里说一下使用Possess切换时的蓝图写法,因为带有相机臂,所以移动时还会带有相机臂的变化,直接变化这边就不说了,重点说一下插值的写法
在这里插入图片描述

这里要注意,Posssess节点一定要写在变化的后面,不然镜头无法切换,各个节点的目标也不要忘记连上。
使用Possess的缺陷是什么,就是在Matinee中,使用Possess的镜头,移动时镜头角度不会随着K好的帧而变化,她的镜头是保持不变的。优点是,可以在Pawn类中写蓝图,后面在说漫游时会更详细说明。
通常情况下,Set View Target with Blend和Possess都可以达到镜头切换的效果,具体的使用看你的实际需要

### UE5 中实现玩家控制权切换的方法 在 Unreal Engine 5 (UE5) 中,要实现场景中多个玩家之间的控制权切换,可以采用多种方法技术组合。以下是具体实现方式: #### 使用 Possess 节点进行基本控制权转移 对于基础的控制权切换操作,仅需利用 `Possess` 节点即可完成。当希望某个控制器接管特定的角色时,在蓝图逻辑里调用此节点并指定目标Pawn对象作为参数传递过去[^1]。 ```cpp // C++ 示例代码片段展示如何通过AIController类中的函数来占有一个新的Pawn void AMyAIController::SwitchToNewPawn(APawn* NewTarget) { if(NewTarget != nullptr){ UnPossess(); // 解除当前占有的Pawn Possess(NewTarget); // 占有新的Pawn } } ``` #### 添加 IsControl 检查防止频繁切换 为了避免在玩家间快速来回转换而导致体验不佳的情况发生,可以在执行实际切换动作前加入条件判断语句——即检查是否正处于不可控状态(`IsControl`)下;只有当返回false时才允许继续后续流程,从而确保每次切换都平滑流畅。 #### 利用车辆碰撞检测触发权限交接 针对特殊需求如车辆驾驶模拟器内的乘客上车/下车场景,则建议为交通工具添加Box Collision组件,并配置相应的Overlap事件响应机制。一旦监测到有符合条件的小白人模型进入该区域范围内,便立即启动授权过程:先暂停原有视角更新,接着逐步淡入新位置的画面显示效果,最后正式变更操控主体[^2]。 ```blueprint Event BeginPlay() |-- Delay(0.5s) |-- Set View Target With Blend(TargetActor, Duration=0.7f) |-- Possess(TargetCharacter) |-- Enable Input(PlayerController) ``` #### 批量选取多个人物以便统一管理 如果项目涉及众多可交互NPC或敌人单位的话,那么可以通过World Outliner窗口批量选定它们来进行集中处理。这一步骤可通过按下Shift键拖动鼠标框选范围较大区域内所有待选项,或是借助Ctrl键逐个累加单体至列表之中[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值