UE5中实现沿样条线创建网格体

news/2024/7/5 11:09:33

本文是对UE官方教程:https://www.bilibili.com/video/BV1eU4y1c7XL的重现,原教程中通过构造函数实现非运行时执行脚本,并通过UE的样条线组件辅助创建路径网格体。该功能最终实现的效果如下:
在这里插入图片描述

1.创建基础蓝图

首先创建一个Actor蓝图对象,我们使用InstancedStaticMesh组件构建动态网格以提升性能,挂载组件如下:
在这里插入图片描述
UE蓝图中的构造函数一直比较冷门,可能很多时候都不会去用,其实在编辑器状态下,它可以在拖入场景并且修改参数时执行,从而运行一些非运行时下的逻辑

我们增加模板网格变量,添加一个Static Mesh组件,并调用函数初始化到InstancedStaticMesh上:
在这里插入图片描述

2.设置间距并随样条线生成

2.1 得到生成物件的宽度与间隙

第二步,我们需要拿到模板网格的BoundingBox并以此为基础计算间距,计算间距的蓝图逻辑如下:
在这里插入图片描述
但是实际生成的时候也不能紧贴着创建,还需要加一个Offset变量以制造间隙:
在这里插入图片描述
到这一步,我们加了2个变量Offset和Spacing,Offset用于制造生成物的间隙,Spacing储存生成物件宽度。

2.2 得到样条线的长度并计算生成数

然后我们需要拿到样条线的总长度,并以此除以生成物件的宽度,这样就可以得到生成物体的数量了:
在这里插入图片描述
拿到生成物体的数量,可以创建一个For循环节点,调用添加实例函数:
在这里插入图片描述
这时可以把Actor拖到场景里看下效果:
在这里插入图片描述
拖拽一下样条看下效果,已经基本可以生成了,但是没有旋转信息。接下来我们继续更迭,增加旋转的适配。

3.增加生成物件的旋转信息

我们用下一个生成物件的坐标和当前生成物件的坐标相减就可以得到一个矢量作为物体朝向,首先需要将获得位置的蓝图节点封装进函数,便于后续操作:
在这里插入图片描述
然后调用2次这个函数,得到旋转朝向,蓝图节点如下:
在这里插入图片描述

这样我们的蓝图逻辑就全部完成了,看下效果:
在这里插入图片描述


http://lihuaxi.xjx100.cn/news/1087693.html

相关文章

Android开发 我的开源Android Log “日志狗”LogDog

目录 一、简介 二、LogDog的优点 1、打印的格式 2、日志信息 3、LogDog的使用便利 4、参数优化 5、日志文件输出 6、日志文件的内容加密 三、依赖使用LogDog 1、添加仓库 2、添加依赖 四、使用说明 1、初始化 2、配置说明 3、如何使用和参数说明 一、简介 LogDo…

stable diffusion的使用

文章目录 1 文生图1.1 mountains and trees and gree1.2 three dogs1.3 cats1.4 three lovely cats1.5 beautiful girl1.6 机器猫1.7 卡通图像生成 1 文生图 1.1 mountains and trees and gree 1.2 three dogs 1.3 cats 1.4 three lovely cats 1.5 beautiful girl stable diff…

Linux主机信息搜集

1、系统架构 打印系统信息 uname -a 文件 /etc/issue是一个文本文件,其中包含要在登录提示之前打印的消息或系统标识 cat /etc/issue /etc/lsb-release,/etc/redhat-release文件包含一个被解析以获取信息的描述行 cat /etc/*-release /proc/versi…

MLC LLM:将大模型运行在手机端的部署工具

前言 MLC LLM 是一个通用的解决方案 它允许任何语言模型在不同的硬件后端和本地应用程序集上进行本地部署 并为每个人提供一个高效的框架,以进一步优化模型的性能,满足他们自己的用例 其使命是让每个人都能在自己的设备(如手机端&#xf…

大学生学java编程的就业前景怎么样?我来聊聊自己的见解

今天兴哥想跟大家分享一个话题,就是学java到底好不好找工作。因为我发现很多粉丝朋友,之前可能并不是从事IT行业的,然后想转行来做这一行,或者是有些大四即将面临毕业的老哥,可能大学没有好好学习吧,然后专…

CSS媒体查询(@media)全面解析

随着移动设备的快速普及,用户不再只是通过传统的电脑系来浏览 Web 内容,越来越多的用户开始使用各种尺寸的智能手机、平板电脑或者其它设备来浏览 Web 内容,为了确保使用不同设备的用户都能拥有不错的体验就需要用到媒体查询。 媒体查询是 CS…

贪心算法OJ刷题(2)

多机调度问题 题目描述 某工厂有n个独立的作业,由m台相同的机器进行加工处理。作业i所需的加工时间为 t i t_i ti​,任何作业在被处理时不能中断,也不能进行拆分处理。现厂长请你给他写一个程序:算出n个作业由m台机器加工处理的…

PromQL,让你轻松实现监控可视化!快来了解一下吧!

Prometheus 中的一些关键设计,比如注重标准和生态、监控目标动态发现机制、PromQL等。 PromQL 是 Prometheus 的查询语言,使用灵活方便,但很多人不知道如何更好利用它,发挥不出优势。 PromQL主要用于时序数据的查询和二次计算场…