【UE】绘制抛物线并投射物体

效果

步骤

1. 先新建父类为Actor的蓝图,这里命名为“BP_发射物”

打开“BP_发射物”,添加一个球形的静态网格体和一个发射物移动组件

2. 新建一个父类为角色的蓝图,这里命名为“BP_绘制抛物线”

打开“BP_绘制抛物线”

我们希望可以通过控制鼠标滚轮来控制发射距离的远近,因此先在事件图表中添加“鼠标滚轮轴”节点,如果我们将鼠标向前滚,该节点的引脚“Axis Value”输出的值就是正的,反之则是负的。

添加一个浮点类型的变量,这里命名为“发射距离”,默认值为400(cm)

将滚轮值乘100再加上初始的发射距离就得到抛物线的终点

因为不可能抛无限远,这里再添加一个限制范围,然后更新“发射距离”

接下来开始绘制抛物线

先添加两个自定义事件,分别命名为“开启抛物线”和“关闭抛物线”,当按下空格键的时候就执行“开启抛物线”,当松开空格键的时候就执行“关闭抛物线”事件。

在Tick后添加一个“Gate”门节点,当执行“开启抛物线”时就打开Tick事件的执行,反之则关闭

接下里添加一个本功能最重要的节点“按照对象类型预测发射物路径”,该节点可以根据传入的发射起始位置和发射速度来预测出抛物线上所有点的位置。引脚“Parojectile Radius”表示抛物线路径上绿色小球的半径,这里设置为35;引脚“Sim Frequency”表示绿色小球的密集程度,该值越大,输出引脚“Out Path Position”输出的点迹就越多;引脚“Max Sim Time”表示最大的预测时长,该值越大能够预测的抛物线的轨迹就越远。输出引脚“Out Path Position”输出的是预测出的抛物线上所有的点迹;输出引脚“Out Last Trace Destination”是最后一个点的位置。

为了能够编译通过,先将“按照对象类型预测发射物路径”节点的输入引脚“Object Types”提升为变量,默认值设置为“静态场景”

为了方便观察从哪一个位置发射出物体,这里先给“BP_绘制抛物线”添加一个球形的静态网格体,然后设置该网格体的无碰撞。

给球体一个初始的抛射方向

传入球体的初始位置和发射速度,其中发射速度由球体向前的方向*发射距离

添加一个样条组件

循环遍历所有的抛物线点,然后在每一个抛物线点位置处添加样条点

添加样条点后,继续添加样条网格体

样条网格体使用圆柱,向前轴设置为Z轴

设置样条网格体的起始和结束缩放

设置每个样条网格体的起始位置和结束位置

为了能够实时更新绘制抛物线,这里需要将每一个样条网格体添加到数组中

然后在开始绘制的时候先清空所有的样条点、样条网格体、抛物线路径点

折叠到函数,这里命名为“F_清除抛物线”

在事件“关闭抛物线”执行后再次调用“F_清除抛物线”

再添加一个摄像机组件,设置一下位置

3. 将“BP_绘制抛物线”拖入视口,然后设置自动控制玩家为玩家0

此时运行效果如下所示,可以通过空格控制抛物线的轨迹的绘制与清除,通过鼠标滑轮控制抛物线的抛掷距离

我们发现样条网格体(圆柱)太大了,将网格体缩放改小一点

再将摄像机位置和旋转改一下:

 此时效果如下:

如果还觉得抛物线绘制距离太短,我们可以将“Max Sim Time”的值改大一点

如果不想显示绿色的小圆球,可以将“Draw Debug Type”设置为无

此时效果如下:

如果希望能够沿着抛物线的方向抛射物体,我们可以在“关闭抛物线”事件执行后生成Actor,并设置发射物移动组件的速度。

此时效果如下所示:

参考视频:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/198580.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023.11.28-电商平台建设03 - 大数据调优手段

1.优化手段 1.1分桶表 HIVE的分桶本质上就是MR的分区操作 建表语句: create table 表名(字段 类型,.... ) clustered by(分桶字段) [sorted by (字段 [asc | desc])] into N buckets --- 定义分桶表核心语句 row format...... 分桶的作用 1) 进行数据采样工作 1.1) …

【古月居《ros入门21讲》学习笔记】14_参数的使用与编程方法

目录 说明: 1. 参数模型(全局字典) 2. 实现过程(C) 创建功能包 参数命令行的使用 YAML参数文件 rosparam命令 使用示例 编程方法(C) 配置代码编译规则 编译并运行 编译 运行 3. 实…

五丶openlayer之LOD和分辨率

LOD是Levels of Detail的简写,用于根据当前的环境,渲染不同的图像,用于降低非重要的细节度,从而提高渲染效率,在电子游戏中经常运用,对于需要显示全球地图的GIS系统而言,更需要应用这项技术。 …

Docker+Anaconda+CUDA+cuDNN

一、导语 因为要复现文献的需求和实验室里师兄想要给我提升能力的多方面因素在一起,所以学习并实现了相关安装。在这里做一个记录,方便日后查看,如果能给其他同学带来便捷就更好了。 在这篇文章中,我的目标是搭建一个可以使用Py…

VSCode Vue 开发环境配置

Vue是前端开发中的重要工具与框架,可以保住开发者高效构建用户界面。 Vue2官方文档:https://v2.cn.vuejs.org/ Vue3官方文档:https://cn.vuejs.org/ Vue的安装和引用 Vue2的官方安装指南:https://v2.cn.vuejs.org/v2/guide/ins…

github新建项目

参考链接:Github上建立新项目超详细方法过程 在这里新建一个repositories 接下来就选择相关的信息: 然后create a new就行了 接下来需要创建文件:(同时通过upload上传文件) 每次最多上传100个文件,然后保…

WEB渗透—反序列化(八)

Web渗透—反序列化 课程学习分享(课程非本人制作,仅提供学习分享) 靶场下载地址:GitHub - mcc0624/php_ser_Class: php反序列化靶场课程,基于课程制作的靶场 课程地址:PHP反序列化漏洞学习_哔哩哔_…

11.27二叉查找树,遍历二叉树,层序(判断是不是完全二叉树),根据遍历序列重构二叉树,递归输入建树(树的定义,结构体细节,typedef)

如果left<right&#xff0c;就表明其之间还有元素&#xff0c;即左右指针重合&#xff0c;区间只有一个元素也被包含其中&#xff1b; left<right,就表明递归过程中&#xff0c;只允许区间有两个及以上的元素&#xff0c;不允许区间只有一个元素&#xff0c;那么对应地&…

【前端】浅谈async/await异步传染性

文章目录 概述观点无法解决可以解决 来源 概述 "异步传染性"问题通常是指&#xff0c;当一个函数使用了async和await&#xff0c;其调用者也需要使用async和await处理异步操作&#xff0c;导致整个调用链都变成异步的。这种情况可能导致代码变得更复杂&#xff0c;不…

基于若依的ruoyi-nbcio流程管理系统增加流程节点配置(三)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 这一节主要是对每个流程节点的字段规则设置与操作规则设置&#xff0c;目前也是只针对自定义业务表单。 1、…

基于SSM的社区团购系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

python基于YOLOv8全系列模型【n/s/m/l/x】开发构建不同参数量级的钢铁产业产品智能自动化检测识别系统

在前文的项目开发实践中&#xff0c;我们已经以钢铁产业产品缺陷检测数据场景为基准&#xff0c;陆续开发构建了多款目标检测模型&#xff0c;感兴趣的话可以自行阅读即可。 《YOLOv3老矣尚能战否&#xff1f;基于YOLOv3开发构建建钢铁产业产品智能自动化检测识别系统&#xf…

智能优化算法应用:基于人工蜂群算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于人工蜂群算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于人工蜂群算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工蜂群算法4.实验参数设定5.算法结果6.参考…

中伟视界:AI智能分析盒子的人数统计AI算法通过什么算法模型可以解决重复统计的问题?

在AI盒子的人数统计中&#xff0c;常常会遇到重复统计的问题。当有多人同时出入视野范围时&#xff0c;传统的算法模型很难准确识别和计算人数&#xff0c;容易导致重复统计。为解决这一难题&#xff0c;AI算法模型可以采用多种方法来提高准确性并避免重复统计。 一种常用的解决…

【沐风老师】3DMAX拼图建模工具MaxPuzzle2D插件使用方法详解

MaxPuzzle2D拼图建模工具使用帮助 MaxPuzzle2D拼图建模工具&#xff0c;拼图建模“彩虹系列”插件&#xff0c;是一款用MAXScript脚本语言开发的3dMax拼图建模小工具&#xff0c;可以创建2D或3D的拼图图形阵列。这让需要拼图建模的设计师大大节省了时间。 MaxPuzzle2D工具界面&…

移动应用开发介绍及iOS方向学习路线(HUT移动组版)

移动应用开发介绍及iOS方向学习路线&#xff08;HUT移动组版&#xff09; 前言 ​ 作为一个HUT移动组待了一坤年&#xff08;两年半&#xff09;多的老人&#xff0c;在这里为还在考虑进哪个组的萌新们以及将来进组的新朋友提供一份关于移动应用开发介绍以及学习路线的白话文…

中间件安全:JBoss 反序列化命令执行漏洞.(CVE-2017-12149)

中间件安全&#xff1a;JBoss 反序列化命令执行漏洞.&#xff08;CVE-2017-12149&#xff09; JBoss 反序列化漏洞&#xff0c;该漏洞位于 JBoss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中&#xff0c;其 doFilter 方法在没有进行任何安全检查和限制的情况下尝试…

神奇植物在哪里?文心大模型助力一秒读懂花草的“前世今生”

本期文心开发者说邀请到飞桨开发者技术专家谢杰航老师&#xff0c;分享如何利用AI技术构建风景园林行业的植物知识科普系统&#xff0c;接着还介绍了大模型应用的基本技术流程框架&#xff0c;多模态特征提取以及使用向量数据库的优势&#xff0c;使用飞桨星河社区运行向量数据…

SAP VL01N Error VL 367

在VL01N 创建交货单的时候&#xff0c;报错&#xff1a;An item with no delivery quantity is not permitted. Item will be deleted. 第一种情况&#xff1a; 1.首先MMBEcheck 可用库存&#xff0c;非限制使用库存是否充足 注意&#xff1a;这里框出来的交货库存也是非限制…

Python超级详细的变量命名规则

Python 需要使用标识符给变量命名&#xff0c;其实标识符就是用于给程序中变量、类、方法命名的符号&#xff08;简单来说&#xff0c;标识符就是合法的名字&#xff09;。 Python 语言的标识符必须以字母、下画线&#xff08;_&#xff09;开头&#xff0c;后面可以跟任意数目…
最新文章