【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.pswp.cn/web/11512.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11512.shtml
英文地址,請注明出處:http://en.pswp.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. 同一頁面展示…

pat乙1033-舊鍵盤打字

1測試點2: 輸入的字符串如果為空,要用getline(cin,s),而不是cin>>s,否則程序做不了 2題目說的如果上鍵壞了那大寫字母打印不了,不是大寫轉小寫打印啦,認真讀題 3兩個for循環長這樣,break…

基于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…

牛客Linux高并發服務器開發學習第六天

目錄相關函數 學習進度: Linux系統編程入門 06:59:42

Apollo9.0 Control模塊算法源碼學習

參考資料 Apollo控制算法_嗶哩嗶哩_bilibili

Python自動化測試 | 如何使用Robot Framework進行自動化測試?

你還在手動測試?不妨了解一下更高效、準確且簡單的測試方法——使用Python的Robot Framework進行自動化測試。 什么是Robot Framework? Robot Framework是一款開源的Python自動化測試框架,它基于關鍵字驅動的思想,具有易讀、易擴…

每日一題 城市群的數量

題目解析 城市群數量_牛客題霸_牛客網 當解決這個問題時,首先需要理解題目要求。題目中給出了一個城市之間的鄰接矩陣,矩陣中的元素表示城市之間是否直接相連。如果兩個城市直接相連,或者通過其他城市間接相連,它們就屬于同一個城…

算法學習筆記(匈牙利算法)

匈牙利算法可以求解二分圖的最大匹配問題(二分圖:如果無向圖 G ( V , E ) G (V, E) G(V,E)的所有點可以分為兩個集合 V 1 、 V 2 V_1、V_2 V1?、V2?,所有的邊都在 V 1 V_1 V1?和 V 2 V_2 V2?之間,而 V 1 V_1 V1?或 V 2 V_2…

深入理解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…

使用ORM快速獲取業務對象列表

通常在實際開發中,業務對象的信息是需要來自多個數據表的。 我們如果想要獲取這個業務對象,就要先查詢數據表,再把查詢到的數據依次循環,組合轉換封裝成業務要使用的對象類型列表。 如果使用了ORM,那么這個過程就可以簡…

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…

mysql group by使用方法實例講解

MySQL中GROUP BY語句用于對某個或某些字段查詢分組,并返回重復記錄的第一條,本文章通過實例向大家介紹mysql group by使用方法和需要注意的地方,感興趣的朋友可以參考一下。 現在有這樣一個數據表book idfirst_namelast_namecityage1JasonM…

知乎知+廣告推廣該如何做?怎么收費?

知乎作為一個匯聚高質量用戶群體的知識分享平臺,成為了眾多品牌和產品推廣的優選之地。特別是知乎的“知”廣告推廣服務,以其精準定向、內容原生的特點,深受廣告主青睞。 一、知乎知廣告推廣基礎 1. 什么是知乎知? 知是知乎官方…

C++初階學習第七彈——探索STL奧秘(二)——string的模擬實現

標準庫中的string:C初階學習第六彈——string(1)——標準庫中的string類-CSDN博客 前言: 在前面我們已經學習了如何使用標準庫中的string類,但作為一個合格的程序員,我們不僅要會用,還要知道如…

C++類和對象下——實現日期類

前言 在學習了類和對象的六大成員函數后,為了鞏固我們學習的知識可以手寫一個日期類來幫助我們理解類和對象,加深對于其的了解。 默認函數 構造函數 既然是寫類和對象,我們首先就要定義一個類,然后根據實際需要來加入類的數據與函…

AI編程工具為什么選github copilot?

Github Copilot 是一個奇跡 它的競爭對手(Amazon, Google, Meta, 騰訊)都是免費的,但每月10-20美元的Github Copilot市場占有率最高。 1、2021年6月上線,比ChatGPT早近一年半 2、GitHub統計: 88%的用戶獲得效率提升平…

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…