UE5 - 制作《塞爾達傳說》中林克的技能 - 18 - 磁力抓取器

讓我們繼續《塞爾達傳說》中林克技能的制作!!!
UE版本:5.6.0
VS版本:2022
本章節的核心目標:磁力抓取器
先讓我們看一下完成后的效果:

18_磁力抓取器


大綱如下:

  1. 引言
  2. 功能架構與核心邏輯
  3. 物理材質與場景配置
  4. 代碼實現:從識別到操控
  5. 操作說明

1.引言

??在《塞爾達傳說》中,林克的磁力抓取器( magnesis )是極具特色的交互技能,可識別并操控金屬物體。本文基于 UE5,從代碼實現角度,詳細拆解磁力抓取器核心邏輯,一起來復刻該玩法。


2.功能架構與核心邏輯

??磁力抓取器需實現金屬物體識別狀態可視化交互操控 三大核心能力,整體流程如下:

在這里插入圖片描述


3.物理材質與場景配置

3.1 物理表面定義

??在 UE5 項目設置(Project Settings)→ 物理(Physics)中,將 SurfaceType1 命名為 Metal,作為金屬材質的專屬標識,為代碼識別提供依據。
在這里插入圖片描述

3.2 物理材質資產

??創建 PM_Metal 物理材質,配置摩擦力、恢復力等物理屬性,并關聯 SurfaceType1。同時,準備三類可視化材質(基于 M_Bomb 實例化 ):

材質名稱作用BP_Player中藍圖配置
MI_MagHover磁力瞄準高亮顯示MagHoveredMat
MI_MagNormal技能開啟后默認顯示MagNormalMat
M_Metal技能關閉 / 未激活時原始顯示MagDeactivateMat

在藍圖細節面板 “Rune - Magnet” 中完成材質綁定,讓不同交互狀態自動切換對應材質。
在這里插入圖片描述
在這里插入圖片描述

3.3 場景應用

??完成 PM_Metal、PM_Foliage 等物理材質資產創建與屬性設置后,還需將材質配置到場景物體上。
??以場景中的 Cube 為例,在關卡編輯器右側細節面板中,找到 “材質” 模塊下的 “元素 0”,點擊材質選擇框,將 M_Metal 材質配置給 Cube 。通過這樣的操作,讓 Cube 等場景物體具備對應的物理材質屬性,成為磁力抓取器技能可識別與交互的目標對象,為后續代碼中篩選金屬材質 Actor 提供基礎,使場景內物體能響應磁力抓取器的功能邏輯 。
請添加圖片描述


4.代碼實現:從識別到操控

4.1 角色類核心定義(ZSCharBase.h)

UCLASS()
class ZELDARSKILLS_API AZSCharBase : public ACharacter
{GENERATED_BODY()
public:// 磁力抓取器配置UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Rune - Magnet")TSubclassOf<AActor> StaticMeshClass; // 篩選目標Actor類型UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Rune - Magnet")UMaterialInterface* MagHoveredMat = nullptr; // 高亮材質UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Rune - Magnet")UMaterialInterface* MagNormalMat = nullptr; // 技能開啟材質UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Rune - Magnet")UMaterialInterface* MagDeactivateMat = nullptr; // 技能關閉材質UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Rune - Magnet")UParticleSystem* MagDraggingVFX; // 拖拽特效// 運行時數據TArray<AStaticMeshActor*> AllMagSMs; // 存儲金屬ActorTObjectPtr<UPrimitiveComponent> MagnesisObj; // 當前抓取物體TObjectPtr<UPrimitiveComponent> TempMagHitComp; // 射線檢測臨時對象TObjectPtr<UParticleSystemComponent> BeamParticleComp; // 拖拽粒子特效// 核心方法#pragma region Magnetvoid FilterOutAllMagSMs(); // 篩選金屬Actorvoid UpdateMagHintMats(TArray<AStaticMeshActor*> array, UPrimitiveComponent* hoverObj); // 材質切換void SelectOrReleaseMagObject(); // 抓取/釋放邏輯void GrabMagObj()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87138.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87138.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87138.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于ApachePOI實現百度POI分類快速導入PostgreSQL數據庫實戰

目錄 前言 一、百度POI分類簡介 1、數據表格 2、分類結構 二、從Excel導入到PG數據庫 1、Excel解析流程 2、數據入庫 3、入庫成果及檢索 三、總結 前言 在上一篇博文中&#xff0c;我們對高德POI分類進行了深入剖析 并對Excel 中 POI 分類數據的存儲結構特點進行了詳細介…

學習經驗分享【41】YOLOv13:基于超圖增強自適應視覺感知的實時目標檢測

YOLO算法更新速度很快&#xff0c;已經出到V13版本&#xff0c;后續大家有想發論文或者搞項目可更新自己的baseline了。 摘要&#xff1a;YOLO 系列模型憑借其卓越的精度和計算效率&#xff0c;在實時目標檢測領域占據主導地位。然而&#xff0c;YOLOv11 及早期版本的卷積架構&…

Handling outliers in non-blind image deconvolution論文閱讀

Handling outliers in non-blind image deconvolution 1. 研究目標與實際意義2. 創新方法:基于EM的異常值建模2.1 新模糊模型2.1.1 目標函數2.2 EM框架:迭代優化二元掩碼2.2.1 E步:計算后驗權重 E [ m x ] E[m_x] E[mx?]2.2.2 M步:加權正則化反卷積2.3 優化加速技術2.3.1…

Redis 功能擴展:Lua 腳本對 Redis 的擴展

Redis 是一個高性能的內存數據庫&#xff0c;支持多種數據結構&#xff0c;如字符串、哈希、列表、集合和有序集合。為了增強其功能&#xff0c;Redis 引入了 Lua 腳本支持&#xff0c;使開發者可以編寫自定義的腳本&#xff0c;確保操作的原子性并提高復雜操作的性能。本文將詳…

七天學完十大機器學習經典算法-06.支持向量機(SVM):分類邊界的藝術——深入淺出指南

接上一篇《七天學完十大機器學習經典算法-05.從投票到分類&#xff1a;K近鄰(KNN)算法完全指南》 想象你要在操場上為兩個班級劃活動區域&#xff0c;如何畫出一條最公平的分界線&#xff1f;這條線不僅要分開兩班學生&#xff0c;還要讓兩個班都離分界線盡可能遠——這就是支持…

python如何安裝PyQt6-stubs依賴包

PyQt6-stubs 是為 PyQt6 提供類型提示&#xff08;Type Hints&#xff09;和 IDE 智能補全支持的第三方補丁包&#xff0c;特別適用于 PyCharm、VS Code 等現代 IDE。它對開發者在編碼時幫助極大。 一、安裝方法 需要提前安裝好git&#xff0c;然后克隆PyQt6-stubs源碼&#xf…

創宇智腦 MCP 賦能 AiPy,IP 風險調查效率實現 10 倍飛躍,威脅分析一鍵生成

還記得上個月那個焦頭爛額的凌晨三點嗎&#xff1f;監控大屏突然瘋狂閃爍&#xff0c;500 多個 IP 地址同時出現異常訪問&#xff0c;密密麻麻的數據流在屏幕上跳動&#xff0c;像極了一張讓人窒息的大網。我和團隊成員瞪著布滿血絲的眼睛&#xff0c;手動排查每一個 IP&#x…

使用SRS+ffmpeg實現https推流flv

1修改SRS的live.conf配置如下&#xff1a; # Live streaming config for SRS. # see full.conf for detail config.listen 1935; max_connections 1000; srs_log_tank console; daemon off;http_api {enabled on;listen …

力扣網編程題:合并兩個有序數組(雙指針解法)

一. 簡介 上一篇文章對"合并兩個有序數組"題目&#xff0c;使用了暴力解法&#xff0c;算法時間復雜度比較高。文章如下&#xff1a; 力扣網編程題&#xff1a;合并兩個有序數組&#xff08;直接解法&#xff09;-CSDN博客 本文滿足進階要求&#xff0c;算法時間復…

數據結構之 【樹的簡介】(樹的(相關)概念、二叉樹的概念、部分性質、滿二叉樹、完全二叉樹)

目錄 1.樹的概念及結構 1.1樹的概念 1.2樹的相關概念 1.3樹的表示 1.4樹在實際中的應用 2.二叉樹概念及結構 2.1二叉樹的概念 2.2特殊的二叉樹 2.3二叉樹的性質 2.4應用題 1.樹的概念及結構 1.1樹的概念 樹是一種非線性的數據結構&#xff0c;由 n&#xff08;n…

Redis-7.4.3-Windows-x64下載安裝使用

Redis軟件包下載地址鏈接&#xff1a;https://github.com/redis-windows/redis-windows/releases 檢查或者修改配置文件redis.conf&#xff1a; #如果允許外部其他主機訪問本機redis&#xff0c;設置成&#xff1a;bind 0.0.0.0 bind 127.0.0.1 protected-mode yes #設置端口…

Educational Codeforces Round 180 (Rated for Div. 2)

AB 略 C 對于axayaz>max(2*az,an)&#xff0c;枚舉y z 二分x D 首先&#xff0c;長度為1的邊的已經有n-1條&#xff0c;那么構造的圖中只能存在一條長度為2的好邊。我們先構造出一個圖只存在n-1條好邊&#xff0c;我們發現對于一個點所有連接它的邊要不均指向它要不均背…

CAD文件處理控件Aspose.CAD教程:在 Python 中將 DGN 文件轉換為 PDF

概述 將DGN文件轉換為PDF對許多行業至關重要&#xff0c;包括工程和建筑行業。能夠輕松地以 PDF 格式共享設計&#xff0c;增強協作和可訪問性。通過使用Aspose.CAD for Python via .NET的強大功能&#xff0c;開發人員可以高效地自動化此過程。這款 CAD 轉換器 SDK 簡化了轉換…

寧德時代攜手問界,以“廠中廠”模式加速擴產

6月30日&#xff0c;寧德時代在賽力斯超級工廠的兩條CTP2.0高端電池包產線正式投產。這是寧德時代在重慶布局的首個基地&#xff0c;并首次采用“廠中廠”合作模式&#xff0c;為問界系列車型本地化生產供應動力電池系統。重慶市、四川省廣安市有關負責人&#xff0c;賽力斯集團…

工作中常用的Git操作命令(一)

說明 時間過得真快&#xff0c;一轉眼嗎嘍也是好歹工作幾年了&#xff0c;把這些年平時用的git命令整理記錄一下&#xff0c;分幾個文章&#xff0c;囊括了常用的命令&#xff0c;工作日常很多時候都是使用svn&#xff0c;回到宿舍自己的項目才是git&#xff0c;就問你離不離譜…

2.2.5 Windows系統日志管理

文章目錄 一、試題及考試說明二、操作步驟1. 在計算機策略中&#xff0c;啟用安裝程序的日志記錄&#xff0c;并且配置日志大小最大10M&#xff0c;日志存儲位置為D:\kaoshi_3\2.2.5\&#xff1b;2. 查詢安全日志中登錄失敗的日志信息&#xff0c;并導出保存在D:\kaoshi_3\2.2.…

AiPy實戰(7):一鍵生成天氣組件,解放UI設計的雙手

在傳統 UI 開發流程中&#xff0c;界面設計與實現往往是一項高度依賴人工投入的系統性工作。從頁面布局架構搭建、圖標元素精確定位&#xff0c;到響應式設計適配&#xff0c;僅基礎樣式表&#xff08;CSS&#xff09;的編寫就可能涉及數十行甚至上百行代碼。? 隨著智能開發工…

解讀32頁大數據中心運營管理整體規劃方案【附全文閱讀】

該文檔為大數據中心運營管理整體規劃方案&#xff0c;聚焦于構建高效規范的運營管理體系。方案提出以 “敏前臺、穩中臺、強后臺” 為框架&#xff0c;構建覆蓋全角色、全過程、全周期、全要素的一體化 IT 運營管控體系&#xff0c;采用 “11N” 運營模式&#xff0c;明確業主、…

Pyhton-EXCEL與Mysql數據對比

該段代碼主要實現從數據庫和 Excel 文件中讀取數據&#xff0c;并對兩者進行字段匹配&#xff0c;最終找出 Excel 中未匹配到的數據庫記錄。功能如下&#xff1a; [sqlSelect()]&#xff1a;連接 MySQL 數據庫并查詢比價單及其商品信息。[BiJiaDaoChu()]&#xff1a;調用外部 …

InnoDB索引

1、索引的建立 / 數據的存儲 一條條數據存儲到頁中后&#xff0c;各個數據頁組成了一個雙向鏈表&#xff0c;而每個數據頁中的記錄會按照主鍵值從小到大的順序組成一個單向鏈表。此時&#xff0c;如果我想根據主鍵值查詢一條記錄&#xff0c;只能從第一個數據頁開始一個頁一個頁…