让我们继续《塞尔达传说》中林克技能的制作!!!
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;只能从第一个数据页开始一个页一个页…