【UE】仿原神实现无限道路延伸的开场效果

目录

效果

步骤

一、无限生成砖块 

二、制作门

三、停止移动并生成门

四、进入门


效果

步骤

一、无限生成砖块 

1. 新建一个Basic关卡,再新建一个Pawn类,这里命名为“BP_MyPawn”

打开“BP_MyPawn”,添加一个胶囊体碰撞组件和一个摄像机组件

在事件图表中先添加一个布尔变量,用于表示玩家是否点击,当该布尔为false时摄像机就一直往前走,为true时就停下并生成一道门。这里变量命名为“IsStop”

在事件图表中添加如下节点,表示当“IsStop”为false时就让Pawn每帧沿着X轴负方向走1cm。当按下1键后设置IsStop为True

让摄像机旋转180°

2. 在世界大纲中设置注意一下天空的可移动性要为“可移动”,位置为世界中心。不然当Pawn一直移动就会走出这个天空球体区域

向场景中拖入两个立方体,位置分别为(0,50,0)、(0,-50,0)

设置立方体也是可移动的

再拖入一个玩家出生点放置在两个方块的正上方

多复制一些立方体用于表示道路,这里一共放了14个立方体

我们可以将这些立方体都放置到同一个文件夹中

3. 新建一个actor蓝图,这里命名为“BP_MenuRoad”

打开“BP_MenuRoad”,添加两个立方体静态网格体组件,这里分别命名为“Cube_L”和“Cube_R”

设置“Cube_R”和“Cube_L”的位置也分别为(-600,-50,-400)和(-600,50,-400)

继续添加一个公告板组价和一个盒体碰撞区域组件

设置一下盒体碰撞区域组件的位置和盒体范围

为了方便观察我们可以让盒体碰撞区域组件显示

4. 将“BP_MenuRoad”拖入场景中,设置一下位置为(-100,0,50)

此时在左视图中可以看到在“BP_MenuRoad”中两个方块如果提升高度的话正好可以补充后续的道路

5. 回到“BP_MenuRoad”,在事件图表中添加盒体碰撞组件重叠时的触发逻辑:

首先当pawn进入到盒体碰撞区域后判断一下玩家是否停止移动。

如果停止移动就生成门,没有停止的话就继续生成道路砖块

 

添加道路砖块:

 生成砖块之后用一个随机布尔来控制左右哪个砖块先上升,

布尔为true就左边砖块先上升,然后约0.1~0.3s后让右边砖块上升。布尔为false就右边先上升然后再左边上升。

时间轴曲线如下,三个关键帧分别为(0,-400),(2,20),(3,0)

最后延迟10s,若玩家没有停止就删除砖块。

合并上面的节点,这里命名为合并后的图表为“EndlessRoad”

此时运行效果如下:

二、制作门

6. 这里准备用Niagara制作一个传送门,具体参考:【UE Niagara】制作传送门_Part1_ue

效果如下:

注意每一个发射器都需要勾选“本地空间”

三、停止移动并生成门

7. 新建一个Actor蓝图用于表示门,这里命名为“BP_Door”。该蓝图中添加了一个Niagara组件。

Niagara系统资产使用“NS_Portal”

在事件图表中添加如下节点,表示当“BP_Door”创建后就按照时间轴曲线修改粒子的Z轴上的位置

时间轴曲线如下,三个关键帧分别为(0,-500)、(2,300)、(3,200)

8. 在“BP_MyPawn”中设置停止后创建“BP_Door”

此时当我们按下1键后,效果如下:

9. 我们希望Pawn停止的时候有一个惯性来慢慢停止移动,可以用时间轴来慢慢减少Pawn的偏移量

时间轴曲线如下,两个关键帧分别为(0,-1)、(2,0)

此时运行游戏可以观察到当我们按下1键停止时会有一种惯性的效果让视角继续向前移动一点距离,然后生成门。

四、进入门

接下来我们希望点击按钮进入门,然后进入新关卡

10. 可以先创建一个控件蓝图,这里命名为“WBP_StartGame”,该控件主要包含一个覆盖全屏的按钮和一个文本

当控件蓝图创建后,将“点击进入”字样的文本弹出,然后显示鼠标

当按下按钮后让pawn快速向前移动,然后逐渐开始白屏,最终进入新的关卡

11. 在“BP_MyPawn”中设置当创建了门后就创建控件

最终效果如下:

参考视频:

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

https://www.bilibili.com/video/BV1yT4y1D7wA/?spm_id_from=333.788.recommend_more_video.5&vd_source=36a3e35639c44bb339f59760641390a8

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

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

相关文章

工器具管理(基于若依)

文章目录 前言一、工器具管理项目总览 二、入库功能1. 前端1.1 界面展示1.2 具体操作实现1.3 js文件 2. 后端2.1 工器具信息回显2.2 工器具入库 三、领用功能1. 前端1.1 界面展示1.2 具体实现操作1.3 js文件 2. 后端2.1 工器具信息回显2.2 工器具领用 遇到的问题1. 同一页面展示…

基于springboot+vue的自习室管理和预约系统(全套)

一、系统架构 前端:vue | element-ui | html 后端:springboot | mybatis-plus 环境:jdk1.8 | mysql | maven | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页1 02. web端-首页2 03. web端-注册 04. web端-登录 05. w…

Apollo9.0 Control模块算法源码学习

参考资料 Apollo控制算法_哔哩哔哩_bilibili

Python自动化测试 | 如何使用Robot Framework进行自动化测试?

你还在手动测试?不妨了解一下更高效、准确且简单的测试方法——使用Python的Robot Framework进行自动化测试。 什么是Robot Framework? Robot Framework是一款开源的Python自动化测试框架,它基于关键字驱动的思想,具有易读、易扩…

每日一题 城市群的数量

题目解析 城市群数量_牛客题霸_牛客网 当解决这个问题时,首先需要理解题目要求。题目中给出了一个城市之间的邻接矩阵,矩阵中的元素表示城市之间是否直接相连。如果两个城市直接相连,或者通过其他城市间接相连,它们就属于同一个城…

深入理解Python的类,实例和type函数

问题起源: class t():pass s1 t() s2 type("Student2",(),{}) isinstance(s1, type), isinstance(s2, type)为什么第一个是false,第二个是true呢 根因定位: 在Python中,一切皆对象,类是对象&#xff0c…

nacos在没有指定数据源的情况下默认使用什么数据库?

在没有特别指定数据源的情况下,Nacos 默认使用内嵌的数据库 Derby 来存储其数据。Derby 是一个轻量级的、基于 Java 的数据库管理系统,适合于开发和测试环境,因为它简单易部署且无需额外的数据库服务器。然而,对于生产环境&#x…

Stability AI 推出 Stable Artisan,终于可以在Discord上使用Stable Diffusion了!

Stable Diffusion 社区最常见的要求之一是能够直接在 Discord 上使用他们的模型。近期,Stability AI 推出 Stable Artisan,这个需求终于被实现了。 Stable Artisan 支持在 Discord 上生成媒体,由 Stability AI 的尖端图像和视频模型 Stable D…

基于Springboot的实习生管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的实习生管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&a…

知乎知+广告推广该如何做?怎么收费?

知乎作为一个汇聚高质量用户群体的知识分享平台,成为了众多品牌和产品推广的优选之地。特别是知乎的“知”广告推广服务,以其精准定向、内容原生的特点,深受广告主青睐。 一、知乎知广告推广基础 1. 什么是知乎知? 知是知乎官方…

C++初阶学习第七弹——探索STL奥秘(二)——string的模拟实现

标准库中的string:C初阶学习第六弹——string(1)——标准库中的string类-CSDN博客 前言: 在前面我们已经学习了如何使用标准库中的string类,但作为一个合格的程序员,我们不仅要会用,还要知道如…

C++类和对象下——实现日期类

前言 在学习了类和对象的六大成员函数后,为了巩固我们学习的知识可以手写一个日期类来帮助我们理解类和对象,加深对于其的了解。 默认函数 构造函数 既然是写类和对象,我们首先就要定义一个类,然后根据实际需要来加入类的数据与函…

element ui的确认提示框文字样式修改

修改确认提示框文字样式修改,使用message属性修改: 例: js代码: this.$msgbox({title: 确定要删除吗?,message: this.$createElement(p, null, [this.$createElement(span, { style: color: red }, 该素材一旦删除,…

Spring Boot日志

目录 一、日志概述 1、为什么要学习日志? 2、日志的用途 (1)系统监控 (2)数据采集 (3)日志审计 二、日志使用 1、打印日志 (1)在程序中得到日志对象 &#xf…

CentOs搭建Kubernetes集群

kubeadm minikube 还是太“迷你”了,方便的同时也隐藏了很多细节,离真正生产环境里的计算集群有一些差距,毕竟许多需求、任务只有在多节点的大集群里才能够遇到,相比起来,minikube 真的只能算是一个“玩具”。 Kuber…

物联网五层架构分析

物联网五层架构分析 随着科技的迅速发展,物联网(IoT)作为日常生活中不可或缺的一部分,已融入人们的生活和工作中。物联网五层架构,包括感知层、网络层、数据层、应用层和业务层,扮演着关键的角色。 感知层 …

网络库-libcurl介绍

1.简介 libcurl 是一个功能强大的库,支持多种协议,用于数据传输。它广泛应用于实现网络操作,如HTTP、HTTPS、FTP、FTPS、SCP、SFTP等。libcurl 提供了丰富的 API,可以在多种编程语言中使用。 libcurl 主要特点 支持多种协议&am…

FreeRTOS计数型信号量

目录 一、计数型信号量简介 二、计数型信号量相关API 1、创建计数型信号量 2、释放计数型信号量 3、获取计数型信号量 4、获取计数型信号量的计数值 三、计数型信号量实操 1、实验需求 2、CubeMX配置 3、代码实现 一、计数型信号量简介 ①取值只有0与1两种状态的信号…

基于Springboot的滴答拍摄影

基于SpringbootVue的滴答拍摄影设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页 摄影作品 摄影服务 摄影论坛 后台登录 后台首页 用户管理 摄影师管理 摄影作…