Unreal 5 实现场景

news2024/11/24 5:06:59

如果你拿到了一个新的场景,想将此场景应用到游戏当中,首先需要给敌人增加ai移动路径,需要添加导航体积

添加导航模型包围体积

在这里插入图片描述
添加了体积以后,设置包围盒的大小,将敌人可以行进的区域给区分出来,然后按键盘上的p键,会发现可以行进的区域会现实绿色。
在这里插入图片描述
然后你还会发现有些区域它包围计算是无法行进的,比如屋前的楼梯。
在这里插入图片描述

在这里插入图片描述
我们就需要修改导航网格体的包围盒了,你会发现你在场景中添加了导航网格,它会生成一个配置,用来重写设置导航网格的配置,你可以在场景中添加无数个导航网格体包围盒体积,这个重写的配置只会生成一个。
在这里插入图片描述
选择它,会在下面发现一个配置项,我们可以通过修改配置项,来设置这些相关的内容,精度可以通过调整代理半径提高,有的斜面无法上去,则可以调整代理最大斜面
在这里插入图片描述
如果不小心将其删除,也可以在构建菜单里面找到构建路径,重新生成。

在这里插入图片描述
记得将门的模型碰撞下面的能够影响导航关闭,这样丧尸就可以进入屋内了。
在这里插入图片描述
ue里面的视觉感知是通过可视性实现的,如果房屋这种对可视性阻挡的话,那么,丧尸就无法发现藏在屋内的玩家,我们需要将房屋的包围盒,设置为忽略。比如玩家的武器,也需要这样设置。
在这里插入图片描述

随机生成车辆蓝图

创建一个函数,然后将函数设置为公共
在这里插入图片描述
这样可以将蓝图拖入到场景中以后,可以发现一个可以点击的函数按钮,点击此按钮可以重新触发函数运行。
在这里插入图片描述
函数会判断是否全随机变量是否开启,如果开启将设置所有内容全随机
在这里插入图片描述
然后就是根据车辆内容随机车辆网格体的类型,选择定好的数组
在这里插入图片描述
根据数组设置静态模型的静态网格体
在这里插入图片描述
根据类型选择材质,然后创建一个材质实例,这里创建材质实例是为了防止修改颜色影响其它的模型上显示的颜色,所以直接就创建了一个新的。
在这里插入图片描述
然后就是随机车辆车漆颜色,也可以自己手动设置
在这里插入图片描述
最后是是否添加破碎车辆旁边的杂草
在这里插入图片描述

房屋的搭建

场景里的房屋的搭建是比较对地编要求比较高的工作,因为他们需要先在蓝图里面搭建出来,然后需要制作蓝图,实现一些修改。
这里看一下场景里面的房屋的搭建。
蓝图的父类里面实现了房屋的结构,分好了结构,分好了底部,外墙,地板,还有屋顶,屋内光源以及碰撞体。
在这里插入图片描述
这些内容当然需要在子类里面去拼装,添加相应的静态模型,拼装出效果
在这里插入图片描述
接着看一下蓝图,构造函数是对房屋的颜色进行调整,这个构造函数绘制蓝图实例有内容变动的时候,都会重新运行。构造函数内的内容主要分为四大块,前三大块就是对颜色调整,最后一块是修改材质。
在这里插入图片描述
需要修改的内容都在Walls组件下面,这样修改起来比较方便,那么如何找到需要修改的模型呢,这里则是通过给材质的插槽命名,然后通过材质插槽的命名找到对应需要修改的材质,这样也是一个思路,就是网格体上面虽然有多个材质,材质也会混用,比如同一个材质会多个网格体上面使用,那么我们可以将其定义为相同的插槽名称
在这里插入图片描述
这样再去看就明白了,外墙的部分大家使用的是同一个材质,这样,我可以基于父材质实例化一个新的材质,然后将其的颜色修改掉,然后for循环所有的子组件,在静态网格体组件上面找到命名相同的材质,将其替换掉,就实现了对静态网格体的材质颜色的修改。
在这里插入图片描述
而屋顶部分还是有一些区别,但是区别不大,因为屋顶不需要修改颜色,只是通过类型修改材质,来表现屋顶不同的类型的,比如铁皮的屋顶,瓦片的屋顶的效果。
在这里插入图片描述
接着看一下房屋的事件,事件开始运行时,根据类获取到环境控制实例,这个主要是为了实现玩家在屋内和屋外时,表现的效果不同
在这里插入图片描述

然后,里面用一个盒子碰撞体包围了建筑,增加了碰撞检测事件,这个则是主要在运行时,检测是否和玩家产生了碰撞,如果产生了碰撞,则调用环境控制器里面的函数,实现玩家在屋内和屋外不同的效果。
在这里插入图片描述
关于场景内的环境控制器的内容,我打算单开一篇去讲,里面牵扯了一些其它组件的内容。

通过样条实现拖拽生成物件

场景里面的这种护栏,如果一个个自己摆,肯定很费劲,而且间距也设置的不好,所以,我们看一下场景里面基于样条曲线制作的自动生成蓝图工具。
在这里插入图片描述
组件结构这里,只是单纯的增加了一个样条组件
在这里插入图片描述
在构造函数这里,首先设置了一个变量,如果为false,则不会生成模型,用于快速调节,等你调节好样条形状以后,再开启即可。
在这里插入图片描述
然后将样条组件拖入蓝图,获取样条的长度,整除设置的生成物体的间隔,使用for循环,是处理逻辑。
加粗样式
这里就是获取当前样条点位置和方向,我们需要获取当前点的位置和方向,以及下一个点的位置和方向。
在这里插入图片描述
对于方向,还有一个切线缩放的值,经过我的测试,默认方向会模型渲染就是正常的渲染,如果这个值越大,过渡会越圆滑
在这里插入图片描述

那四个值分别设置开始和结束,我们只需要一个目标了,这个目标需要传入一个样条网格体组件,它会根据你的需求,对模型进行拉伸,保证能够达到需求。
在这里插入图片描述
它这里先给自身添加了一个样条网格体组件,并开启了碰撞。
在这里插入图片描述
然后根据提供的静态模型数组,从第一个开始依次获取下标。如果数组长度为3,那么将 123123的循环获取下标。
在这里插入图片描述
后面就是将这个值减去一,因为数组的索引是从0开始的,数组长度为3,那么每个静态网格体的下标则是 012。从数组获取到静态网格体,然后通过设置静态网格体节点,将模型设置到样条静态网格体组件上面。
在这里插入图片描述
最后就是拿着这些实现的内容,设置起始位置和结束位置,样条网格体组件就会按照你的设置生成静态网格体。
在这里插入图片描述

设置物理材质

地形会使用多段地形混合,
在这里插入图片描述
打开一个文件,如果找不到的话,可以点搜索文件图标,在里面设置物理材质即可。
在这里插入图片描述
那些植物,可以选择植物模式,选择下面的植物,可以选择网格体,双击网格体,可以找到使用的材质,设置即可
在这里插入图片描述
在这里插入图片描述
如果蓝图使用的材质设置物理材质,一般蓝图里面会重新创建材质
在这里插入图片描述
我们可以找到创建动态材质实例的原材质
在这里插入图片描述
打开材质设置即可
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PyCharm2023开发工具activice教程(包含工具link)

PyCharm2023 前言1. 下载工具2. 选择安装方法33. 填入active code4. 效果如下 前言 PyCharm是一款由JetBrains开发的强大的Python集成开发环境(IDE)。它提供了丰富的功能和工具,旨在提高Python开发者的生产力和效率。 以下是PyCharm的一些主…

Linux操作系统体系结构 ( 3 ) -【Linux通信架构系列 】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦!!! 现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the…

FTP服务器

文章目录 FTP服务器FTP的数据传输原理FTP的功能简介不同等级的用户身份命令记录与日志文件记录限制用户活动的目录 FTP的工作流程与使用到的端口FTP主动式连接FTP被动式连接 vsftpd服务器基础设置为什么使用vsftpd所需要的软件以及软件结构vsftpd.conf 配置值说明与服务器环境比…

【入门向】CV 小白如何入门?人脸识别教程带你学习计算机视觉

导言 计算机视觉作为人工智能领域的一个重要分支,旨在让计算机能够理解和解释图像和视频数据。而OpenCV作为一款开源的计算机视觉库,为开发者提供了丰富的工具和函数,用于处理图像、视频、对象检测、特征提取等任务。对于初学者来说&#xf…

chatgpt赋能python:如何在Python中捕获kill信号

如何在Python中捕获kill信号 在编写Python代码时,我们可能需要处理一些长时间运行的进程。有时候,我们会在运行这些进程时使用kill命令杀死它们。然而,Python进程是否可以捕获kill信号呢?答案是肯定的。 在本文中,我…

基于pyqt5、mysql、yolov7、chatgpt的小麦病害检测系统v1.0

基于pyqt5、mysql、yolov7、chatgpt的小麦病害检测系统设计与实现 一、界面设计1.1安装pyqt51.2创建用户子窗体1.3创建管理员主窗体1.4创建管理员子窗体1.5创建系统登陆界面 二、环境搭建2.1pyqt5工具配置2.2mysql5.7安装 三、编程实现3.1初始化数据库3.2创建用户数据库sdk文件…

chatgpt赋能python:Python如何快速提取指定行和列的数据?

Python如何快速提取指定行和列的数据? 在进行数据分析和处理时,常常需要从海量数据中筛选出所需的数据。这时,Python是一款非常强大的工具,可以方便地进行大规模数据清洗和筛选。本文将介绍如何使用Python快速提取指定行和列的数…

【JVM篇】手撸上万字带你吃透“垃圾回收”

前言:大家好,我是TwosJel,一名21级的本科生(*^▽^*),最近二刷了《深入理解Java虚拟机》,因此想写一篇关于垃圾回收的随笔,于是便有了这篇文章❥(^_-)。 个人主页:TwosJel 个人介绍&#xff1a…

JWT --- 入门学习

1.常见的认证机制 basic auth : 每次请求都会携带用户的username,password,易被黑客拦截。 Cookie auth : 我们请求服务器,创建一个session对象,客户端创建cookie对象。客户端每次访问,携带cookie对象。 (在当今&…

chatgpt赋能python:Python排队:提高效率、优化流程的神器

Python排队:提高效率、优化流程的神器 随着科技的不断进步,排队已经成为了现代生活中不可避免的一部分。在各个行业中,排队都是必须考虑的问题,包括餐馆、医院、机场和银行等等。针对排队问题,我们可以使用Python编程…

使用Vue + FormData + axios实现图片上传功能实战

前言 上节回顾 上一小节中,我们添加了Vue-router的路有数据,这些数据都将是后续实战课程中的真实路由数据了。同时引入了ElementUI的el-menu做为左侧菜单的组件,但本专栏的特点就是遇到第三方功能和组件,自己尽量也要实现一遍&a…

蓝牙ATT协议介绍

介绍 ATT,Attribute Protocol,用于发现、读、写对端设备的协议(针对BLE设备) ATT允许蓝牙远程设备(比如遥控器)作为服务端提供拥有关联值的属性集,让作为客户端的设备(比如手机、电视)来发现、…

【软件工程】软件工程期末考试试卷

瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( C)。 A、详细计划 B、可行性分析 C、 运行阶段 D、 测试与排…

JavaScript中的CRUD操作指南示例 - 用DHTMLX创建医院管理系统!

创建、读取、更新和删除(CRUD)是现代web和移动应用程序执行的四个基本功能。然而这些函数是如何产生的,它们到底是做什么的? 在本文中,我们将简要介绍CRUD的含义以及它何时被引入编程的。文中我们还将使用用于医院管理的JavaScript演示应用程…

图文并茂spring-boot3 热部署配置(IntelliJ IDEA 2023.1)

文章目录 🥚 版本情况🧂 前言(踩坑)🍗 四步完成spring-boot热部署🥗 1、下载热部署模块🥗 2、application.yml 或者application.properties添加dev-tools配置🥗 3、settings中勾选条…

设计服务要考虑的7个维度

我在《软件设计的核心方法及实例解析》里提到软件设计的核心方法是分解和组合。分解粒度上,不同的架构师想法不一样,但是却有一点共性:设计一定要把不稳定的部分做封装,对外暴露稳定的部分,这也是有接口隔离这一原则的…

VS code 可以做什么?

编写 markdown VS code 真的是非常好用的Markdown编写工具,我用他来编写Markdown的时间甚至比写代码还要多。比如,我每周写的公众号文章。 相关插件: MarkdownMarkdown Preview EnhancedMarkdown All in One 编写python 大多数同学写pyth…

LLM - 基于 ChatGLM-6B 的工程配置搭建私有 ChatGPT 中文在线聊天

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/131104546 Paper:GLM: General Language Model Pretraining with Autoregressive Blank Infilling 一篇于2022年发表在ACL会…

脑机接口科普0021——黑门01

本文禁止转载!!!! 我会在接下来的一段时间内,花一些章节,专门科普介绍一下《黑门》这部国产动漫。 科普《黑门》,源自网友看了我的脑机接口科普文章后,介绍我看黑门这个脑机接口科…

盘点那些 IT 技术面试官常用的 10 个挂人套路

最近几个朋友找我聊天,给我讲述了面试过程中遇到的一些不太理解的事情。作为一个技术面试官,今天来分享 10 个面试相关的套路。 1.自我介绍 自我介绍是一个重要的开始,好的开始是成功的一半。不需要太多花里胡哨的东西,简单、清…