UE5 在骨骼动画模型上绘制贴图

参考:Unreal 5.1 - How to paint damage textures and other effects on skeletal meshes
针对模型,在运行状态下通过射线指定一定范围,添加材质效果。
在这里插入图片描述

核心思路

  • 通过射线获取命中点,作为材质参数
  • 材质中,命中的世界坐标与像素点所在的世界坐标做SphereMask,产生一张表示命中范围的贴图。该范围与世界坐标相关
    • 材质根据UV平铺在水平面上在这里插入图片描述
    • 设置仅拍摄该对象的相机进行拍摄
  • 把产生的贴图作为参数传到附加效果的材质上

弊端

视频的方法制作无法应对模型UV重复的情况,如左右腿公用一批素材,此时原版素材绘制的内容会镜像到另一侧。绘制另一侧时会无法生效,因为原版UV位置与命中点检测不匹配。

主要操作

  • 创建动态材质和Render Texture
  • 专用平铺材质
  • 专用淡出材质
  • 截图相机
  • 设置参数并获取截图

创建动态材质

  • 创建RenderTarget1用于记录射线打中过的位置
  • 创建RenderTarget2用于相对于RT1的用法上做淡出
  • 使用当前材质创建新的动态材质实例
    • 设置RT1和RT2到响应参数
  • 使用淡出材质创建动态材质实例,M_Fadeout
    • RT2作为M_Fadeout的参数
    • 通过DrawCanvasToRenderTarget函数将M_Fadeout绘制到RT2上,每帧减弱

平铺材质

  • Shading Model:Unlit
  • World Position Offset
    • 居中:UV 减 0.5
    • 乘以贴图大小(如1024)
    • 成为三维向量:Append(0)
    • 减去像素点在模型位置的影响:减 Absolute World Position
      • 参考视频用了CaptureLocation参数接受模型的起点
      • 个人认为用Actor Position替代也可以
  • Emissive Color
    • SphereMask(像素的世界坐标,命中点世界坐标,半径,边缘硬度)

Unilit模式使色彩仅取决于材质自身。
World Position Offset指定像素点在空间中相对于模型起点的位置。World Position Offset

Emissive Color给命中点周围半径范围内上色。
Emissive Color

淡出材质

M_Fadeout
接受一个贴图对象参数,乘以0.95作为当前的材质。
会作为材质,绘制到上文的RenderTarget2中。那一帧的RenderTarget2又作为改材质的参数,产生一个亮度减弱5%的效果。

截图相机

用于拍摄平铺材质。
在可绘制对象中增加SceneCaptureComponent2D,调整成垂直向下的角度。旋转看具体情况。
Composite Mode:Additive。增量拍摄,数值约拍越高,越来越亮。
Primitive Render Mode:Use Show Only List。为了只拍平铺材质本身,避免排到场景。
CaptureEveryFrame:false
CaptureOnMovement:false
上面两项False表示拍摄时机蓝图/代码控制。

设置参数并截图

绘制函数,参数(命中位置,半径)

  1. 获得当前材质,保存为OldMaterial
  2. 使用平铺材质
  3. 设置模型的材质参数CaptureLocation:Vector(也可以不用)
  4. 设置模型的材质参数HitLocation:Vector
  5. 设置模型的材质参数ImpactRadius:Scalar命中半径
  6. 将SceneCapture2D的TexutureTarget设为RT1,拍摄
  7. 将SceneCapture2D的TexutureTarget设为RT2,拍摄
  8. 最后把OldMaterial材质还给模型

当调用绘制函数时,会先将模型的材质替换成平铺材质,拍摄表示命中信息的贴图RT1和RT2。最后复原保证模型显示。
RT1可以用于记录已经命中过的区域。
RT2可以用于逐渐淡出的表现。

淡出

M_Fadeout的值是RT2的95%,通过把M_Fadeout作为参数绘制到RT2上,可以降低RT2的亮度打到淡出效果。操作如下。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

护眼台灯品牌哪个好?2024五大护眼台灯排行榜分享

​护眼台灯作为家庭中常见的照明工具,其存在几乎成为了现代生活的标配。家长们往往会为孩子购置一台,供学习和阅读使用;同时,它也是学生和办公人员在夜晚工作学习的必备之物。然而,市面上的一些普通台灯可能存在着种种…

【XR806开发板试用】使用硬件SPI驱动TFT液晶屏显示图片

【开发背景】 在完成开发板呼吸灯效果后(【XR806开发板试用】使用PWM模块模拟手机呼吸灯提示功能),考虑到显示界面过于单一,如果想要呈现更多的信息就很困难了,刚好之前买过一个TFT液晶屏,正在某个角落吃灰…

OV证书——提升企业在线身份信誉

简介 在当今的数字化时代,网络安全与用户信任成为企业线上运营的基石,而SSL/TLS证书则是确保网站数据传输安全、提升网站信誉度的关键工具之一。其中,组织验证(OV)证书作为一种特殊类型的SSL证书,通过深入…

Vivado抓信号——提高效率的工具化生成XDC(Python脚本)

操作目录 一、要抓取信号的txt列表二、操作流程 通常情况下,Vivado上板抓取信号的方法主要有两类: (1)通过在信号前添加(mark_debug“true”),综合完之后点击Set Up Debug,将需要抓取的信号添加进去&#x…

linux学习:文件类型、文件操作、系统IO、内存映射

目录 文件类别 文件操作 系统 IO 头文件 打开文件 关闭文件 文件描述符 读写 例子 拷贝文件 偏移量 其他接口 mmap()映射 文件类别 普通文件(regular):存在于外部存储器中,用于存储普通数据。目录文件(d…

蓝桥杯,,,,,,

辗转相除求最大公约数 #include<iostream> using namespace std;int gcd(int a, int b)//求最大公约数&#xff0c;如果返回值为1&#xff0c;最大公约数只有1&#xff0c;为所求 {return b ? gcd(b, a % b) : a; } int main() {int count 0;for(int i1;i<2020;i)f…

进口PFA容量瓶高纯透明聚四氟乙烯材质耐强酸碱PFA定容瓶

PFA容量瓶&#xff0c;也叫特氟龙容量瓶&#xff0c;是用于配制标准浓度溶液的实验室器皿&#xff0c;是有着细长颈、梨形肚的耐强腐蚀平底塑料瓶&#xff0c;颈上有标线&#xff0c;可直接配置标准溶液和准确稀释溶液以及制备样品溶液。 因其有着不易碎、材质纯净、化学稳定性…

Unity Android后处理AO报错

整体流程&#xff1a; 1.添加AO效果 2.Mode 选择 Multi-scale Volumetric Occlusion 3.保证Project Settings - Player - Other Settings - Rendering - Graphic API 内包含 Vulkan 原因&#xff1a; 1.Post Processing文档&#xff1a;https://docs.unity3d.com/Packages/…

探索点云与KD-Tree配对的方法

比较点云是处理和分析点云数据的关键步骤。然而,由于各个扫描之间固有的差异,无法进行逐点比较。因此,点云分析的第一步也是主要步骤是将点配对以进行有意义的比较。 配对点是区分表面变形和运动分析的关键任务。这个过程不仅为变形分析提供了见解,还使我们能够通过比较不…

如何用 Readwise Reader 定制提示词 AI 自动辅助处理信息?

抵御「信息过载」&#xff0c;你需要这样的利器。 痛点 知识工作者的痛点是非常明显的——如果你是一名老师、学生&#xff0c;或是平时需要跟许多资料打交道的人&#xff0c;想必你会经历过信息过载。 信息过载有时候不仅是数量问题&#xff0c;还是一个类型问题。很多不同的信…

【话题】AI技术创业有那些机会,简单探讨下

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读小5的系列文章&#xff0c;这是《话题》系列文章 目录 背景机会一、引言二、AI技术的创业机遇1.智能服务行业的兴起2.数据驱动的业务模式创新3.AI与产业融合的创新发展 三、AI技术创业的挑战1.技术门槛高2.法规政策的不确定性…

奎芯科技:智能时代的芯片上游企业如何突破?

半导体IP&#xff08;Intellectual Property&#xff0c;知识产权&#xff09;&#xff0c;通常也称作IP核&#xff08;IP core&#xff09;&#xff0c;指芯片设计中预先设计、验证好的功能模块&#xff0c;主要服务于芯片设计&#xff0c;因部分通用功能模块在芯片中被反复使…

03-JAVA设计模式-享元模式

享元模式 什么是享元模式 享元模式&#xff08;Flyweight Pattern&#xff09;是一种对象结构型设计模式&#xff0c;用于减少创建对象的数量&#xff0c;以减少内存占用和提高系统性能。它通过共享已经存在的对象来避免创建大量相似的对象&#xff0c;从而降低内存消耗。 在…

SAP 计划策略82简介

前面的文章中我们已经测试了很多才策略,10、11、40、50、70、60、63 80策略。 本文将重点说明ATO模式下82策略的使用场景,计划策略82是SAP提供的另一种基于按单生产思想的计划策略,由客户的需求来直接驱动直接生产,是一个按单生产的场景。 1、首先我们先看下系统后台82策略…

为什么都在做白银投资?略谈现货白银的投资优势

在各种主要的投资产品中&#xff0c;现货白银可以说是比较具有优势的一种。近期现货白银价格不断攀升&#xff0c;已经突破了28.00大关&#xff0c;这更是引起了很多朋友对现货白银投资的兴趣。下面我们就来讨论一下&#xff0c;现货白银的投资优势有哪些。 交易灵活。投资现货…

嵌入式岗位“面试失败”的宝贵经验分享

面试失败&#xff0c;在所难免。从中汲取教训和经验才最关键。面试并不只是用人单位挑选应聘者&#xff0c;同样也是应聘者从面试中获取相关工作信息的好渠道。 1.每面完一次试&#xff0c;认真回顾整个面试 很多人面试一出来&#xff0c;就像考完一场试一样&#xff0c;把…

专访安霸CEO王奉民:怎么帮助OEM在智驾上和特斯拉竞争

采访| 德新 撰文| 苗岭 整个2023年&#xff0c;安霸CEO王奉民两次到访中国&#xff0c;一次是参加上海车展&#xff1b;另一次&#xff0c;他拜访了所有能约上的主机厂及Tier 1客户。 王奉民积极地出现在国内&#xff0c;跟安霸当前押注汽车领域有关。 这家成立于2004年的芯…

鸿蒙内核源码分析 (物理内存篇) | 怎么管理物理内存

如何初始化物理内存&#xff1f; 鸿蒙内核物理内存采用了段页式管理&#xff0c;先看两个主要结构体。结构体的每个成员变量的含义都已经注解出来&#xff0c;请结合源码理解. #define VM_LIST_ORDER_MAX 9 //伙伴算法分组数量&#xff0c;从 2^0&#xff0c;2^1&#…

我的小程序接口被刷爆了

自然流量的惊喜 书接上文&#xff0c;凭着短视频的好奇&#xff0c;搭了个小程序&#xff0c;做了文案提取&#xff0c;配音等功能&#xff0c;也顺带写了两篇口水文章&#xff0c;不曾想居然收获历史最高的点赞与收藏。有兴趣的朋友可以点这里一看究尽&#xff1a;《短视频配音…