UE5笔记【十】第一个蓝图项目:bluePrint。

news2025/2/28 21:26:52

我们将上升的斜坡或者楼梯隐藏,往下移动,使其隐藏在地面以下。然后将方块也向下移动,漏出一点来。我们要模拟的场景是:当人移动到蓝色方块上时,踩在方块上,上升的楼梯升起来。然后人可以上楼。

将蓝色方块右键【浏览至资产】

 物体是一个静态网格。为此,为了实现操作。我们选择到【蓝图类】中,选择将其转换为蓝图类。

 并将其命名为BP_GroundTriggerCube。点击【选择】。打开蓝图编辑界面,才是方块,已经成为了一个蓝图。

 我们在盒体上面添加一个Box,如果这个Box被碰撞,那么代表有东西在盒体上。此时,触发楼梯上升事件。 

 我们给这个Box绑定事件:

 进入到事件图表中:

 事件图表

 首先我们需要等待,直到我们的玩家踩到立方体上。我们需要一个第三者作为观察者。当事件发生时,触发响应通知接受者。

 Cast to遵循【里氏转换法】。用第三人称的角色观察重叠的发生。

在这个例子中,我们就是检测是否有东西返回值为真True。

相当于甲方找来了一个监视者,这个监视者为甲方观察是否有第三人发生某件事,如果发生了,监视者返回一个True,否则返回False。这么做是为了确保与立方体交互的物体是第三个。

 如果事件发生了,需要做什么呢,我们希望盒体可以下降:从某一个高度值,降低到另外一个高度值。我们需要一个叫做:移动组件的节点:Move Component to。

他可以随着时间的推移,而发生某些改变。盒体可以慢慢下落,而不是直接跳闪。这样有个动画的过程。

 要使用这个节点,首先我们需要知道盒体当前的位置。然后将其位置值减去20个单位。从-80,减到-100作为盒体新的位置。

 为了做到这点(获取当前盒体的位置),我们把盒体拖入到编辑区,作为一个节点,获取其Z轴高度值。

有个操作细节:如果我们直接右键输入:Get relative location是搜不到这个节点的,这个节点,必须是先从节点中引连接线出来,然后再输入。否则搜不到。、

操作:鼠标按住左键选中引出节点,松开手,然后输入。

因为我们实际操作的是Z轴,所以我们需要将这个向量值分解成X,Y,Z。鼠标右键:如下图:【分解结构体引脚】

 基于此向量,我们要新建一个向量。作为新位置。

我们搜索结点: 【make vector】。

 这个新节点代表的位置:X和Y值,可以直接连接,但是Z值,需要做减法。所以我们需要在两个节点之间增加一个减法节点。搜索【subs】

 此时新位置产生了,需要将位置给移动组件MoveComponent to节点。连接到其Target Relative Location上,然后将监视者结果反馈给移动组件。最后,需要选择移动组件需要移动的对象。我们将我们的盒体重新拖出来。移动的就是这个盒体。

此时点击编译,保存,进入游戏中尝试一下。

 如果你的没有下降,请查看:你是否将其设置为【可移动】

 当你实际成功之后,你会发现一个新问题:盒体,接触下沉之后,当人离开之后,盒体没有再升起来。我们需要盒体升起来。此时需要对盒体引入一个新的事件。【组件结束重叠时】

 我们查看移动组件的返回值:

 我们需要把这个节点复制到下面,这样他就会寻找另一个actor对象。

让我们重新触发事件,再次引入一个第三者角色,然后将这个第三者角色返回值给移动组件的返回值。意思为:当重叠事件结束时,触发移动组件返回原位(停在原位)。

让我们再次编辑,然后保存,进入游戏尝试。

有一个新问题,我们每次过去踩一下,盒体都要下降,所以,我们需要设置一个阈值。如果盒体到达之后,就不要无限下降。

此外,我们还可以在蓝图中,设置:如果位置达到一定阈值。启动某个动作。需要Branch节点。类似于编程语言中的If-else。操作。

 我们假定,只有当盒体位置大于-80时,盒体才下降,所以,我们还需要一个比较运算符(节点。)。

连线如下;

 为了实现斜坡或者楼梯的升高。我们需要在组件中,新建一个新的网格体。 我们返回【视口】中。【添加】【静态网格体组件】

 这个网格实例我们起名为:Stairs。然后找到Stairs或者Linear_stairs。 

最后将这个实例,添加到游戏中。

此时需要两个界面互动,我们在视口中变换这个Stairs组件,在游戏界面中,其也相应改变。

此时我们留意,楼梯最后的位置高度是80。我们将其移动到地面以下,然后等事件触发,然后升起。此时高度为-30.上升110高度。此时,转入到蓝图【事件图表】中。

此时需要一个新的【移动组件结点2】【move componet to】

 然后我们拖动Stair,作为移动组件结点中的组件。

然后获取组件的位置。并将其分解为xyz。然后传递给移动组件结点2。

 此时目标位置:高度80.

 搞定了。

 

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

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

相关文章

HTML静态网页作业——电影介绍-你的名字 5页 无js 带音乐

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

基于双层优化的微电网系统规划设计方法matlab程序(yalmip+cplex)

基于双层优化的微电网系统规划设计方法matlab程序(yalmipcplex) 参考文献:基于双层优化的微电网系统规划设计方法 摘要:规划设计是微电网系统核心技术体系之一。从分布式电源的综合优化(组合优化、容量优化)和分布式电源间的调度…

【虚幻引擎UE】UE5 两种球体绘制方法

一、网格球体绘制 center 中心点向量 segments参数越大,线条越多 radius是球体半径 thickness 厚度可以不用管 Depth Priority 是渲染深度可以不用管 F Life Time 是持续时间 C代码如下—— .cpp #include "drawBallFunc.h" #include "Components…

机器学习中的数学基础(二)

机器学习中的数学基础(二)2 线代2.1 矩阵2.2 矩阵的秩2.3 内积与正交2.4 特征值与特征向量2.5 SVD矩阵分解2.5.1 要解决的问题2.5.2 基变换2.5.3 特征值分解2.5.4 奇异值分解(SVD)在看西瓜书的时候有些地方的数学推导(…

使用redis快速实现session共享,springboot

1.引入依赖 <dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redis</artifactId> </dependency> <!-- 引入 redis 依赖 --> <dependency><groupId>org.springframework.b…

8.2 数据结构——插入排序

1、基本思想&#xff1a;每步将一个排序的对象&#xff0c;按其关键码大小插入到前面已经排好序的一组对象的适当位置上&#xff0c;直到对象全部插入为止。即边插入边排序&#xff0c;保证子序列中随时都是有序的。 2、基本操作&#xff1a; &#xff08;1&#xff09;在有序…

嗯哦哎辟 NOIP 2022 游寄

虽然上次不是假的&#xff0c;但这次是真的寄了。 Day 0 虽然是南京本地人&#xff0c;但因疫情原因&#xff0c;晚上决定去住了酒店。 看了一眼考场&#xff0c;感觉位置小得离谱。不愧是 NOI 2022 团体总分第十的“强省”江苏。 刚开始去了 409&#xff0c;发现房间里一股…

非凡社群管理之社群管理如何制定规则

1、加人规则&#xff1a;我们上篇文章里说到了&#xff0c;拉人前也是要进行一个明确定位的&#xff0c;不能什么人都拉&#xff0c;这就是我们常说的“设门槛”&#xff0c;避免占用群资源以及后期花费精力对其进行筛除。常用到的方式有这么几种&#xff1a;邀请式&#xff08…

【C++】类和对象(下)(再谈构造函数 初始化列表 explicit关键字 static成员 特性 友元 友元函数 友元类 内部类 匿名对象)

文章目录再谈构造函数初始化列表explicit关键字static成员特性友元友元函数友元类内部类匿名对象再谈构造函数 我们之前学习构造函数的时候&#xff0c;调用构造之后对象中就已经有了一个初始值&#xff0c;但不能说它是对对象像成员变量的初始化&#xff0c;构造函数体中的语…

windows10不支持Miracast无线投屏(不能进行无线投影)

电脑屏幕小看视频不爽&#xff0c;想把电脑屏幕投屏到电视上&#xff08;单独买一块高质量显示屏太贵&#xff0c;而且没有大尺寸的电视看的爽&#xff09;&#xff0c;但是windows提示不支持Miracast&#xff0c;跟着下面步骤教你解决问题。 当链接电视时出现下图提示不支持Mi…

SpringBoot 3.0 来啦!

SpringBoot 3.0 来啦&#xff01;&#xff01; 大家好&#xff0c;我 是 Ding Jiaxiong。 没赶上热乎的&#xff0c;晚了两天&#xff0c;2022年11月24日&#xff0c;SpringBoot 3.0 正式发布了&#xff01; 文章目录SpringBoot 3.0 来啦&#xff01;&#xff01;1 看看官网2…

ARM 37 个通用寄存器详解

一、简介 1、ARM 总共有 37 个寄存器&#xff0c;但是每种模式下最多只能看到 18 个寄存器&#xff0c;其他寄存器虽然名字相同&#xff0c;但是在当前模式不可见。 2、例如&#xff0c;对 r13 这个名字来说&#xff0c;在 ARM 中共有 6 个名叫 r13&#xff08;又叫 sp&#x…

SpringBoot SpringBoot 原理篇 1 自动配置 1.10 bean 的加载方式【八】

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇1 自动配置1.10 bean 的加载方式【八】1.10.1 BeanDefinitionRegistryPostPro…

ABAP学习笔记之——第五章:内表

内表&#xff1a; 内表是可以在程序内部定义且使用的表&#xff0c;属于本地表。 与C语言比较&#xff1a; C语言的数组和内表比较&#xff1a; 内表是动态数组(Dynamic Data Object) INITIALSIZE 语句并非实际占用内存空间&#xff0c;而只是预约(RESERVE)内存空间。 创建…

Python每日一练 06

Python每日一练 06 文章目录Python每日一练 06while循环实例一、斐波那契数列前n项实例二、Leibniz公式计算圆周率while循环 循环结构表示程序重复执行某个或某些操作&#xff0c;直到某条件为假&#xff08;或为真&#xff09;时才可终止循环。 在问题求解过程中&#xff0c;…

[算法笔记]最长递增子序列和编辑距离

最长递增子序列 例如对于 a[] {2,1,5,3,6,4,8,9,7}其最长递增子序列为{1,3,4,8,9}所以长度&#xff08;或者说是结果&#xff09;为5。 对于a[0...n-1]&#xff0c;用dp[i]表示a[0...i]中以a[i]结尾的最长递增子序列长度 其状态状态方程&#xff1a; dp[i]1 // 0≤i≤…

【无人机通信优化】基于粒子群算法的多跳无线网络部署优化附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

[附源码]SSM计算机毕业设计时事资讯平台JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Date对象

文章目录Date日期对象Date对象的创建格式化日期3.获取Date总的毫秒数(时间戳)&#xff0c;是距离1970年1月1日过了多少毫秒数。二&#xff1a;常用时间获取方法三&#xff1a;日期设置方法四&#xff1a;时间转字符串菜鸟工具&#xff1a;https://www.runoob.com/jsref/jsref-o…

在Express框架使用ORM模型访问关系型数据库

一、ORM模型&#xff1a;设计思想&#xff0c;主要目的是简化计算机程序访问数据库 1、ORM&#xff1a;对象关系模型(对象关系映射) Object Releastion Model,将程序中的对象和数据库中关系(表格)进行映射。可以使开发者在程序中方便的对数据库进行操作(用户在程序操作对对象实…