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

news2024/11/27 3:41:44

参考: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的亮度打到淡出效果。操作如下。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧矿山视频智能监控与安全监管方案

一、行业背景 随着全球能源需求的日益增长,矿业行业作为国民经济的重要支柱,其发展日益受到广泛关注。然而,传统矿山管理模式的局限性逐渐显现,如生产安全、人员监管、风险预警等方面的问题日益突出。因此,智慧矿山智…

LabVIEW无线快速存取记录器(WQAR)测试平台

LabVIEW无线快速存取记录器(WQAR)测试平台 随着民用航空业的迅速发展,航空安全的保障日益成为公众和专业领域的关注焦点。无线快速存取记录器(WirelessQuick Access Recorder, WQAR)作为记录飞行数据、监控飞行品质的…

个人博客系统项目(SpringBoot+Linux部署上线)

在学完SpringBoot框架、MyBatis后,直接开始做第一个项目:博客系统 首先,该博客系统包含核心功能有: 一、登录、注册、退出登录功能。 二、没有登陆前可以查看博客首页以及博客展示的分页处理,以及点击查看博客可以…

10个大型语言模型(LLM)常见面试问题和答案解析

今天我们来总结以下大型语言模型面试中常问的问题 1、哪种技术有助于减轻基于提示的学习中的偏见? A.微调 Fine-tuning B.数据增强 Data augmentation C.提示校准 Prompt calibration D.梯度裁剪 Gradient clipping 答案:C 提示校准包括调整提示,尽量减少产生…

g4f姊妹篇:g4l gpt4local面世拉!

众所周知g4f很强,安装具体见:gpt4free带来了更好的chatgpt体验!-CSDN博客 可喜的是,现在它的姊妹篇,gpt4local也面世拉!g4l 是一个高级 Python 库,允许您使用 llama.cpp 绑定运行语言模型。它是…

服务器挖矿病毒解决ponscan,定时任务解决

服务器挖矿病毒解决ponscan,定时任务解决 挖矿病毒会隐藏chattr的操作权限,让我们无法删除病毒文件,杀掉病毒进程。所以要去下载chattr.c的文件,编译成a.out。然后再对原来的chattr文件的权限进行修改。然后覆盖掉它。 chattr.c …

http请求头导致了dial tcp:lookup xxxx on 10.43.0.10:53 no sunch host

事实证明人有的时候也不能太偷懒,太偷懒容易给自己埋坑。 问题的背景: web端调用服务A,服务A异步调用服务B。服务A有四个场景需要调用服务B,所以,服务A中封装了一个公用的方法,唯一的区别是,场…

【how2j练习题】HTML DOM部分阶段练习

练习1 <!-- 验证账号是否已经存在 那么就在js使用简单的验证规则&#xff1a; 如果账号是以a或者A开头的&#xff0c;那么就提示已经存在了。 --> <!-- 1.需要一个输入框和一个按钮 2.按钮上绑上一个事件。 3.编写事件&#xff0c;并输出答案 --><html><…

模拟移动端美团案例(react版)

文章目录 目录 概述 项目搭建 1.启动项目&#xff08;mock服务前端服务&#xff09; 2.使用Redux ToolTik(RTK)编写store(异步action) 3.组件触发action并渲染数据 一、渲染列表 ​编辑 二、tab切换类交互 三、添加购物车 四、统计区域功能实现 五、购物车列表功能实现 六、控制…

软考高级架构师:数据库模式概念和例题

一、AI 讲解 数据库模式分为三个层次&#xff1a;外模式、概念模式和内模式。这三个层次分别对应不同的抽象级别&#xff0c;帮助数据库管理员和用户以不同的视角理解数据库结构。 外模式&#xff08;用户级&#xff09;&#xff1a;是数据库用户的视图。每个用户可以通过外模…

VMware导出虚拟机vmkd格式转换qcow2

VMware虚拟机导出qcow2格式可以上传至云服务 1、需要导出的虚拟机 2、克隆虚拟机 3、选择克隆源 4、创建完整克隆 5、完成 6、找到VMware安装路径 7、找到vmware-vdiskmanager所在路径使用cmd或Windows PowerShell进入目录 进入vmware-vdiskmanager目录 cd F:\软件\VMware Wo…

路由器如何端口映射到外网?

随着互联网的发展和普及&#xff0c;远程访问已经成为了现代社会的一个重要需求。在复杂的网络环境下&#xff0c;特别是涉及异地组网的情况下&#xff0c;实现远程访问变得更加困难。本文将介绍一种名为【天联】的组网产品&#xff0c;它可以解决复杂网络环境下的远程连接问题…

【漏洞复现】潍微科技-水务信息管理平台 ChangePwd SQL注入漏洞

0x01 产品简介 潍微科技-水务信息管理平台主要帮助水务企业实现水质状态监测、管网运行监控、水厂安全保障、用水实时监控以及排放有效监管,确保居民安全稳定用水、环境有效保护,全面提升水务管理效率。 0x02 漏洞概述 潍微科技-水务信息管理平台 ChangePwd 接口存在SQL注…

回顾C语言基础:九九乘法表

题目要求:LintCode 先把基本的写出来&#xff0c;为了看起来有个大概有个样子&#xff08;1&#xff09;每行换行&#xff1b;&#xff08;2&#xff09;输出结果4个空格&#xff0c;左对齐(%-5d)&#xff1a; 关于%-d的知识&#xff1a;是右对齐&#xff0c;-是左对齐&…

【域适应】基于深度域适应MMD损失的典型四分类任务实现

关于 MMD &#xff08;maximum mean discrepancy&#xff09;是用来衡量两组数据分布之间相似度的度量。一般地&#xff0c;如果两组数据分布相似&#xff0c;那么MMD 损失就相对较小&#xff0c;说明两组数据/特征处于相似的特征空间中。基于这个想法&#xff0c;对于源域和目…

实况窗助力美团打造鸿蒙原生外卖新体验,用户可实时掌握外卖进展

自2023年华为宣布全新HarmonyOS NEXT蓄势待发&#xff0c;鸿蒙原生应用全面启动以来&#xff0c;已有金融、旅行、社交等多个领域的企业和开发者陆续宣布加入鸿蒙生态。其中&#xff0c;美团作为国内头部的科技零售企业&#xff0c;是首批加入鸿蒙生态的伙伴&#xff0c;其下的…

华为ensp中PPPOE (点对点协议)原理和配置命令

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月12日6点30分 PPPoE&#xff08;PPP over Ethernet&#xff09;是一种将PPP协议封装到以太网帧中的链路层协议。它可以使以太网网络中的多台主机连接到远端的宽带接…

【应用】SpringBoot-自动配置原理

前言 本文简要介绍SpringBoot的自动配置原理。 本文讲述的SpringBoot版本为&#xff1a;3.1.2。 前置知识 在看原理介绍之前&#xff0c;需要知道Import注解的作用&#xff1a; 可以导入Configuration注解的配置类、声明Bean注解的bean方法&#xff1b;可以导入ImportSele…

AtCoder Beginner Contest 141 F. Xor Sum 3(异或性质+异或线性基求最大异或值)

题目 n(2<n<1e5)个数&#xff0c;第i个数ai(0<ai<2^60) 将n个数分成两堆&#xff0c;对每一堆求异或和&#xff0c;再将得到的两个数求和&#xff0c; 现在希望这个和最大&#xff0c;输出这个最大的值 思路来源 ABC141F - 洛谷专栏 题解 感觉思路来源说的很…

再说vue响应式数据

请说一下你对响应式数据的理解 如何实现响应式数据据 对象 vue2 响应式核心代码 数组 vue2 处理缺陷Vue3则采用 proxy - vue3 响应式核心代码 请说一下你对响应式数据的理解 如何实现响应式数据据 数组和对象类型当值变化时如何劫持到。 对象 对象内部通过defineReactive方…