UE5-《Interaction System Starter Pack》交互系統(tǒng)入門包

本教程為UE5 2023年6月份免費(fèi)資產(chǎn),個(gè)人制作的簡單教程,。。。

目錄
第一章 常見問題
1.1 名字過長
1.2 虛擬陰影
第二章 大致結(jié)構(gòu)瀏覽
2.1?Content目錄
2.2 Blueprint 文件夾
2.3 Core文件夾
2.4 藍(lán)圖接口
2.5 枚舉
2.7?Blueprint --> Connection文件夾
2.7?Blueprint --> Connection文件夾
2.8?Blueprint --> Objects文件夾
2.9?UI?文件夾
2.6 Blueprint -->?Input文件夾
第三章?快速上手--展臺示例
Some Doors展臺
第四章 藍(lán)圖簡易分析
技術(shù)細(xì)節(jié)
特點(diǎn):
Buttons?按鈕?
Pressure Plates?壓力板
Input Item Slots?輸入物品槽
Multiple types of doors?多種類型的門?(regular, sliding, and double sliding doors 普通門、滑動門和雙向滑動門)
Physics-based items 基于物理的item
Breakable items?可破壞的item
Mineable and interactable foliage?可開采和可交互的植被?(trees and rocks 樹木和巖石)
Guns?槍械
Pickaxes?鎬
Synced Inputs 狀態(tài)同步輸入
藍(lán)圖數(shù)量:
????33
輸入方式:
????鍵盤和鼠標(biāo)(其他輸入方式可以輕松添加)
網(wǎng)絡(luò)復(fù)制:
????(目前不支持)。省流,如果玩家1拿著杯子,則玩家2是看不見的(悲)。
支持的開發(fā)平臺:
????Windows:(支持) Mac:(支持) Linux:沒有,誰特么會用Linux玩游戲啊。

fragment 碎片
第一章 常見問題
1.1?名字過長
?一般而言,如果你是ue5.1/5.2的編輯器一般打開都會彈出兩個(gè)彈窗

????會看見什么項(xiàng)目名字過長什么什么的,這沒關(guān)系,本事就是用來給我們參考的工程project,最終我們還是會把功能移植到自己的項(xiàng)目中,所以直接無視即可,你要實(shí)在是看著不舒服那自己去修改下好了。
1.2 缺失項(xiàng)目設(shè)置

????這個(gè)也莫得關(guān)系,并不是什么對渲染和畫面有要求的項(xiàng)目,所以可以不用去管它。會出現(xiàn)這種情況一般是你默認(rèn)啟用的是Dx12,也就是你是Nvidia的RTX卡

如果要開啟虛影陰影,那我們就啟動SM6即可,但我不建議在學(xué)習(xí)工程中搞這些,因?yàn)樘馁M(fèi)算力和時(shí)間。虛擬陰影一般會在lumens中使用。

2,E鍵控制actor對象的 拾取and丟棄
3,YouTube搜索它
4,壓力板對象
5,E鍵交互,他寫了個(gè)門的例子
第二章 大致結(jié)構(gòu)瀏覽
2.1 content目錄

可以看見該工程,是常見的標(biāo)準(zhǔn)文件分類排版,貼圖/mesh等靜態(tài)資產(chǎn),藍(lán)圖,ui。
2.2 Blueprint 文件夾

connection目錄:
????是存放被連接對象,一般不做主動激活操作
input目錄:
????目前存著,開關(guān)等輸入裝置
Items目錄:
????一般可交互物品
Objects目錄:
? ? 可掉落物品目錄
Player目錄:
????主角類
Projectile目錄:
????子彈類
2.3 core文件夾

core文件夾內(nèi),放了個(gè)藍(lán)圖接口,枚舉類型,和一個(gè)游戲模式。
2.4 藍(lán)圖接口
????藍(lán)圖接口

Sync Input State:
????同步狀態(tài)時(shí)觸發(fā)
Break item:
????物體破裂時(shí)觸發(fā)
Remove Update:
? ? 釋放檢測時(shí)觸發(fā)
Equip Item:
????裝備item時(shí)觸發(fā)
Un Slot Item:
? ? 不曉得
Slot Item:
????吸附item時(shí)觸發(fā)
Drop Item:
? ? 目前不曉得
Pick Up Item:
????撿起物品時(shí)觸發(fā)
Interact With:
????用來檢測是否為,可交互物品時(shí),調(diào)用
2.5 枚舉

枚舉可以更清晰邏輯內(nèi)容。
作者告訴我們,如果后期要添加新類型的物品,需要在此處填寫上新的枚舉值邏輯。例如:消耗性物品。

2.6 Blueprint -->?Input文件夾

input文件夾以輸入信號為主,如按鈕,壓力板,slot。
2.7?Blueprint --> Connection文件夾

一般接受信號接受對象,如門什么的這種。
2.8?Blueprint --> Objects文件夾

這文件夾作者寫了幾個(gè)破壞物,具體意義不明。。。
2.9 UI?文件夾

UI就是UI。
門
connection對象是最基本的interact對象,例如
門是一個(gè)connection,燈條是一個(gè)connection,他們都能響應(yīng)input文件夾內(nèi)的3個(gè)輸入對象


2.3.2 兩個(gè)關(guān)鍵數(shù)組
????我們有兩個(gè)關(guān)鍵的數(shù)組,它決定了物體與物體之間的交互聯(lián)系。

1,connection 連接數(shù)組
????它用來存儲我們需要激活的對象
2,同步狀態(tài)數(shù)組
? ? 用于共享當(dāng)前自身的狀態(tài)給對方。
我們可以先看
Synced Inputs展臺

左按鈕input synchronize 數(shù)組存著右邊的,右邊的存著左邊的

connecting對象為我們展臺上的燈條

未激活時(shí)的狀態(tài)

激活其中任何一個(gè)按鈕,我們可以看見都被賦予了相同狀態(tài)

可以看見,我無論是激活A(yù)還是B按鈕,他們都會被賦予一個(gè)相同的狀態(tài)。按下,或者彈起。這就是input sync數(shù)組的作用。
所以我們可以得知

數(shù)組內(nèi)的對象都會記錄同一個(gè)狀態(tài)。
請注意,如果你啟用intercat with事件,那么將會為對象開啟按E鍵的交互操作

2.4 item對象

在items文件夾中,有兩個(gè)重要的actor類,“BP_Item”And"BP_Item_Breakable(可被破壞對象)"。他們在items》master文件夾內(nèi),作為父類。
BP_Item_Breakable:
????它的作用是,用來給物體執(zhí)行可被破壞這么一個(gè)邏輯。
在他的構(gòu)造腳本中,我們有一個(gè)fragment數(shù)組,用來存儲碎片
第三章?快速上手--展臺示例
Some Doors展臺

雙開滑動門

我還以為是什么呢,就是整了兩瓣門,各自一邊移動。

驅(qū)動方式,時(shí)間軸控制插值,賦值給對象位置屬性。
單開側(cè)門

這個(gè)就更簡單了,直接繞Z軸旋轉(zhuǎn)就ok了

0-90°
滑動門

直接復(fù)制一份BP_Connection_SlidingDoor,然后替換模型。

注意觀察,兩個(gè)插槽在世界中的位置,距離自己設(shè)置

把自身引用給壓力板,就完成了對象之間的連接

效果如下

如果想控制開關(guān)快慢

可以通過設(shè)置timeline的播放速度
Input Slot展臺

方塊吸附插槽


將填入數(shù)組的類生成的對象,拖動至亮光處,插槽會自動吸附。

自動吸附,再次按E鍵,可以取出。

connect the pipes也同理

吸附和物體大小無關(guān),哪怕是顆樹也照樣能吸附上去

Items和Breakable展臺

杯子例子

可以看見,在他的fragment數(shù)組中已經(jīng)提前存好了碎片,這樣破裂的時(shí)候,就會銷毀掉原本的actor,然后在世界中生成這些碎片
Destructible Foliage展臺

展示了可被破壞的物體,和破壞完后掉落額外的物體。

自身碎片和額外掉落都是你自己定義的

drops數(shù)組額外的掉落物,可以是可破壞的,也可以是item類的
fragment,自身碎片數(shù)組。
第四章 藍(lán)圖簡易分析
如果你想要改變觀測距離

你可以自己修改holding distance的距離,比如使用鼠標(biāo)滾輪,或者UI添加修改數(shù)組。
沙漠之鷹-手槍

繼承了item,寫了個(gè)開火邏輯。

由主角調(diào)用
稿子藍(lán)圖

稿子多了個(gè)碰撞和,和破壞接口,手槍那個(gè)也一樣,不過是寫在子彈里的。
2.2?主角藍(lán)圖

進(jìn)來先看下我們的主角被寫了什么
2.2.1?PhysicalHandle(物理抓取件)
????說實(shí)話我真的不喜歡handle這個(gè)詞

該組件需要自己去額外研究,我沒有怎么用過,但他是整個(gè)project中演示物品的重要一環(huán)。會讓其被抓取的物件,具備物理特征,比如帶有速度,沖擊力等。
2.2.2 right hand組件

它用來干么呢?

當(dāng)然是,用來裝備武器時(shí)的卡槽。告訴稿子應(yīng)該附加在這個(gè)地方
2.2.3?事件開始運(yùn)行時(shí)
????2.2.3.1??hud上加了個(gè)widget控件,然后添加到了屏幕上,就是你看到的圓形準(zhǔn)星。

????2.2.3.2??事件tick(幀更新)
Cast Ray Function(射線追蹤)

????射線追蹤不多bb了,基操,我們看后面兩個(gè)
hand world location?

用于right hand組件當(dāng)前在世界中的位置
Interact Distance 與物品的交互距離,也即是射線的末端位置

End Ray Rotation

通過相機(jī)的向前向量+1000距離,在通過find lookat rotation來將射線末端的物體,旋轉(zhuǎn)至我們面前。

這塊作用主要是控制著,手里拿著的物品一直朝著主角的一個(gè)方向的旋轉(zhuǎn)
Right Hand Rotation

主要控制物體離我們的遠(yuǎn)近距離的一個(gè)旋轉(zhuǎn)
2,Holding Distance

用來設(shè)置相機(jī)和物體之間的距離


最終位置= world postin +?(forward vector *?Holding Distance)
