【UE5】监控摄像头效果(下)

news/2024/10/18 18:28:13/

目录

效果

步骤

一、多摄像机视角切换

二、摄像头自动旋转巡视

三、摄像头跟踪拍摄


效果

步骤

一、多摄像机视角切换

1. 打开玩家控制器“MyPlayerController”,添加一个变量,命名为“BP_SecurityCameraArray”,类型为“BP_SecurityCamera”的对象引用且是数组类型

添加一个新函数,这里命名为“HasCamera”

该函数判断数组“BP_SecurityCameraArray”是否为空

添加一个整型变量,命名为“BP_SecurityCameraIndex”

添加两个新函数,分别命名为“NextCamera”和“PriviousCamera”,表示用于获取下一个/上一个的相机索引

函数“NextCamera”逻辑如下,判断当前的相机索引是否超过相机总数,如果超过了就返回第一个相机,没有就加1

函数“PriviousCamera”逻辑如下

添加一个新函数,命名为“SetViewTargetAsActiveCamera”,设置当前视图目标为当前相机索引对应的摄像机视角

2. 打开“BP_ThirdPersonCharacter”,新建一个宏,用来获取玩家控制器“MyPlayerControlller”的引用

在事件开始后就调用该宏

在按下F键后先调用函数“HasCamera”来获取场景中的“BP_SecurityCamera”对象,将其存储进数组。在按F键后设置“BP_SecurityCameraIndex”为0

通过Q键、E键切换视角为上一个/下一个相机

3. 在场景复制3个“BP_SecurityCamera”

此时效果如下,我们可以通过Q、E键来切换这三个摄像机的视角,通过F键让视角返回玩家

二、摄像头自动旋转巡视

为了实现摄像头在没有检测到目标时能够自动旋转巡视的功能,打开“BP_SecurityCamera”,在事件图表中添加如下节点

时间轴曲线如下,关键点分别为(0,0),(5,-45),(15,45),(20,0)

此时可以看到摄像头可以自动旋转巡视周围

三、摄像头跟踪拍摄

在“BP_SecurityCamera”中添加如下节点,先判断玩家和摄像头距离是否小于1000cm,如果是的话就让摄像机一直朝向玩家

当玩家没有处于1000cm范围内就启动自动旋转巡视

参考视频:

https://www.bilibili.com/video/BV1ZX4y1Y74y/?spm_id_from=333.999.0.0&vd_source=36a3e35639c44bb339f59760641390a8


http://www.ppmy.cn/news/1266189.html

相关文章

后端开发面试题

这是一波今年7月份的大厂面试题,分享下~~ Mybatis三级缓存 Mybatis懒加载 分布式事务 transaction gradle和maven区别 抽象类、多态 Springboot启动 ConcurrentHashMap 乐观锁、悲观锁 docker k8s常用命令 电商业务从什么维度分库分…

vue零基础

vue 与其他框架的对比 框架设计模式数据绑定灵活度文件模式复杂性学习曲线生态VueMVVM双向灵活单文件小缓完善ReactMVC单向较灵活all in js大陡丰富AngularMVC双向固定多文件较大较陡(Typescript)独立 更多对比细节:vue 官网:ht…

深度学习 Day14——P3天气识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 文章目录 前言1 我的环境2 代码实现与执行结果2.1 前期准备2.1.1 引入库2.1.2 设置GPU(如果设备上支持GPU就使用GPU,否则使用C…

西南科技大学数字电子技术实验四(基本触发器逻辑功能测试及FPGA的实现)预习报告

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入法完成相关公式内容,不得贴手写图片。(注意:从抽象公式直接得出结果,不得分,页数可根据内容调整) (1)D触发器 特征方程: Q…

Redis对象——内存回收,对象共享和空转时长

一. 内存回收 因为C语言不具备内存回收功能,所以Redis在自己的对象系统中构建了一个引用计数技术实现内存回收机制。通过这一机制,程序可以通过跟踪对象的引用计数信息,在适当的时候自动释放对象并进行内存回收。 内每一个对象的引用计数信息…

WPF仿网易云搭建笔记(5):信息流控制之IOC容器

文章目录 专栏和Gitee仓库前言IOC容器Prism IOC使用声明两个测试的服务类MainWindow IOC 注入[单例]MainWindow里面获取UserController无法使用官方解决方案 使用自定义IOC容器,完美解决既然Prism不好用,直接上微软的IOC解决方案App.xaml.csViewModel里面…

虹科技术 | IO-Link Wireless如何赋能工厂车间迈向无线自动化?

大规模定制、卓越运营和商业智能正在从根本上改变制造业,为了在竞争中立于不败之地,制造商需要更加灵活、通用、可扩展和具有成本效益的机器和生产线。随着制造商向工业 4.0 迈进,更好的适应性、更高的吞吐量和更短的停机时间是他们的共同要求…

Lua字符串(包含任意字符,如中文)任意位置截取

常规的截取只需要lua自带的api就可以解决问题:如 string.sub 但是当字符串之中含有中文或者符号的时候,这些接口就麻爪了,当然lua后续更新有可能支持,至少本少当前的Lua版本是不支持的。 废话少说,直接上代码和测试用…