【UE 材质】力场护盾和冲击波效果

目录

效果

步骤

一、制作力场护盾材质

二、制作冲击波材质效果 

三、制作冲击波粒子效果

四、制作震动效果


效果

步骤

一、制作力场护盾材质

1. 首先新建一个第一人称角色游戏模板

2. 新建一个材质,用于作为力场护盾的材质,这里命名为“Mat_forcefield”

打开“Mat_forcefield”,设置混合模式为“半透明”,着色模型为“无光照”,勾选双面(因为希望在力场护盾里面也能看见材质效果)

在该材质中添加“Fresnel”节点,通过该节点我们可以得到边缘为1、相机观察的中心为0的输出结果

我们可以通过给“ExponentIn”引脚传值来控制“Fresnel”的边缘效果,该值越小边缘效果越明显

我们继续通过“Lerp”节点来混合两种颜色

("Lerp" 节点用来混合两种颜色,这对于实现颜色渐变、混合效果或过渡效果非常有用。通常,我们会将两种颜色连接到 "A" 和 "B" 输入,然后使用 "Alpha" 输入来指定混合的权重。)

为了显示被赋予材质的物体与其他物体交叉时产生边界线的效果,我们可以使用“DepthFade”节点,如果此时我们做如下连接:

可以看到被赋予材质的物体在于其他物体相交时会有消隐的效果

并且如果输入的“FadeDistance”值越大,消隐的距离就越多

如下,此时我们就可以看到交叉的部分有一个边缘效果

调整透明度:

 

如果觉得边缘效果太明显,可以给“FadeDistance”输入一个值

3. 下面我们想把纹理也结合到材质上

首先找到模板工程自带的纹理“T_Tech_Hex_Tile_M”

将该纹理应用到材质中

如果我们希望纹理UV平铺次数增加,可以添加如下节点,这里我们设置平铺次数为10,可以看到纹理密度增加了10倍

如果我们认为纹理太清晰,我们可以通过乘上一个0~1之间的数来调整纹理的不透明度

二、制作冲击波材质效果 

1. 新建一个actor蓝图类,用于表示力场护盾蓝图,命名为“BP_ForceField”

打开“BP_ForceField”,先添加一个球形碰撞组件

将该组件指定为新的根组件

再添加一个球形的静态网格体,调整缩放使其正好能够被球形碰撞组件包裹

给球形静态网格体赋予我们步骤一创建的材质

在事件图表中添加一个球形组件命中时的事件

我们可以先测试一下当子弹击中actor时会不会有打印信息:

可以看到是有打印信息的

2. 这里额外提一句,如果想要类似于曳光弹的效果,最简单的方法是将子弹的材质换成自发光材质,然后拉伸一下:

3. 回到材质“Mat_forcefield”,添加如下节点,我们给主要给“SphereMask”节点传入两个位置(一个是本材质的世界位置,另一个是自定义的参数位置)和一个半径参数,表示在本材质基础上创建一个圆心是“pos”,半径是“半径”的球体,球体和材质相交的圆形部分会被新的材质代替

4. 打开蓝图“BP_ForceField”,添加如下节点,表示在子弹命中立场护盾(本acotr)时,我们创建了一个动态材质实例来替换命中区域的材质,并且设置材质“Mat_forcefield”中的参数“pos”和“半径”

,其中参数“pos”的值由检测到的碰撞点的位置决定,参数“半径”由用户自己设置

此时当子弹碰到力场护盾后就会在命中区域替换新材质

 

如果我们想让新加在力场护盾上的材质有一个渐变的效果,如下:

 为了实现如上效果,我们需要在蓝图“BP_ForceField”中继续添加一个时间轴节点

时间轴内容如下:

5. 回到材质“Mat_forcefield” 中,添加一个“Sine”节点

此时效果如下:

如果我们将“Sine”节点的句号键设置为0.5

此时击中的效果如下: 

如果我们希望击中时叠加一个效果,我们可以继续在材质“Mat_forcefield” 添加如下节点 

 

此时击中力场护盾的效果如下:

再添加一个“Max”节点

再将限制范围改到0~15

此时击中效果如下

 三、制作冲击波粒子效果

1. 新建一个级联粒子系统,这里命名为“P_Debri”

2. 再新建一个材质,这里命名为“Mat_dot”

打开材质“Mat_dot”,设置混合模式为“半透明”,着色模型为“无光照”

添加如下节点,其中"RadialGradientExponential" 材质函数节点用于创建径向梯度效果。这个节点通常用于创建径向渐变效果,其中颜色或其他属性从一个中心点向外扩散,呈指数级衰减。

3. 打开粒子系统“P_Debri”,在“必需”模块中设置材质为“Mat_dot”

设置“初始速度”模块中的起始速度如下所示

设置“生成”模块中比率为50

设置“生命内颜色”模块中的颜色为(22,2,0.1)

在“必需”模块中设置“屏幕对齐”为“PSA速度”

在“初始大小”模块中,设置起始大小如下

添加一个“加速度/生命”模块

在该模块中我们添加三个点

 

这样就能使粒子在z轴方向上首先以500大小的加速度发射出去,然后在0.5处时加速度逐渐变为-200,最后,加速度到达-20000,效果如下:

在“生成”模块中,设置生成比率为0

 在“爆发”选项中,添加一个喷发列表,数量设为50

此时效果如下:

再添加一组元素

此时效果如下:

为了让粒子只播放一次,我们需要在“必需”模块中设置“发射器循环”为1。(0表示无限循环)

我们复制一份发射器

在新发射器中,设置“生命内颜色”模块的颜色如下:

在两个发射器的“必需”模块中,设置他们在Y轴方向上的旋转值为90°

4. 为了能够在子弹击中力场护盾时触发粒子,在蓝图“BP_ForceField”的事件图表中添加如下节点

其中,粒子生成时的位置由碰撞点获得:

粒子的生成方向由“Impact Normal”提供

此时效果如下:

可以看出两段粒子效果间隔的比较久

我们这里对两个发射器中的“生成”模块做如下修改,将第二个喷发列表成员的时间由0.5改为0.1

如果觉得粒子发射后下降的太快了,我们需要将两个发射器中的“加速度/生命”模块中的如下值有-20000改为-5000

 

四、制作震动效果

1. 打开材质“Mat_forcefield”,添加如下节点

最终效果如下

参考视频链接:

https://www.youtube.com/watch?v=hQeJETEUzE4&t=503s

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

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

相关文章

cms之wordpress主题安装

WordPress主题安装教程的方法有两种,分为在线安装和上传安装,下面是主题详细安装方法的步骤。 后台在线安装主题 从后台的主题界面在线安装主题是最方便的WordPress主题安装方式。方法如下: 1 在WordPress后台,转到外观→主题 …

本地部署CodeLlama +GTX1080显卡 对接open-interpreter对接wxbot(一)

1.效果展示 开源项目GitHub - oobabooga/text-generation-webui: A Gradio web UI for Large Language Models. Supports transformers, GPTQ, llama.cpp (GGUF), Llama models. "Code Llama" 是一个大型代码语言模型的系列,基于 "Llama 2" 构建,为编程…

进程属性/进程状态

task_struct-PCB的一种 在Linux中描述进程的结构体叫做task_struct。进程也叫任务 task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。 task_ struct内容分类 标示符: 描述本进程的唯一标示符,用来区别其他进程。 …

Mysql高级——索引创建和使用

索引的创建 1. 索引的声明与使用 1.1 索引的分类 MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。 从功能逻辑上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。 按照物理实现方式&#xff…

一文带你走进软件测试的大门

目录 前言 需求 用户需求 软件需求 从测试人员的角度看需求 测试用例 测试环境 测试数据 预期结果 操作步骤 为什么要有测试用例 Bug的概念 世界上的第一个bug bug的定义 开发模型和测试模型 软件的生命周期 开发模型 瀑布模型 螺旋模型 增量、迭代 敏捷 …

C++--简单实现定长内存池

1.什么是定长内存池 在C/C中,动态申请内存都是通过malloc来申请的,但是实际上不是是直接从堆上直接申请的内存,而是通过malloc动态申请一大块内存,malloc就相当于一块内存池,然后分给程序使用,如果申请的内…

ResponseBodyAdvice 获取参数

废话不多说,简练,一针见血,解决问题,才是最好的。 首先肯定是重写了这个beforeBodyWrite方法 重点来了,获取请求参数: request.getBody()返回一个inputStream流,这里你可以 使用很多方法把这个…

《PostgreSQL中的JSON处理:技巧与应用》

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🐅🐾猫头虎建议程序员必备技术栈一览表📖: 🛠️ 全栈技术 Full Stack: &#x1f4da…

驱动开发--day2(内核不同模块的相互访问、字符设备驱动、led控制实验代码及现象)

实现三盏灯的控制,编写应用程序测试 head.h #ifndef __HEAD_H__ #define __HEAD_H__#define LED1_MODER 0X50006000 #define LED1_ODR 0X50006014 #define LED1_RCC 0X50000A28#define LED2_MODER 0X50007000 #define LED2_ODR 0X50007014#endif mychrdev.c #inc…

MyBatisPlus(二)基础Mapperr接口:增删改查

MyBatisPlus:基础Mapper接口:增删改查 插入一条数据 代码 Testpublic void insert() {User user new User();user.setId(6L);user.setName("张三");user.setAge(25);user.setEmail("zhangsanexample.com");userMapper.insert(use…

LeetCode(力扣)406. 根据身高重建队列Python

LeetCode406. 根据身高重建队列 题目链接代码 题目链接 https://leetcode.cn/problems/queue-reconstruction-by-height/ 代码 class Solution:def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:people.sort(key lambda x: (-x[0], x[1]))que […

CSS:实现文字溢出显示省略号且悬浮显示tooltip完整信息

组件&#xff1a; element ui中的tooltip组件 思路&#xff1a;通过ref获取宽度进行判断&#xff0c;当子级宽度大于对应标签/父级宽度显示tooltip组件 <div class"bechmark-wrap"><ul ref"bechmarkUl"><liv-for"(item,index) in comp…

MySQL数据库技术笔记(1)

MySQL是一种关系数据库管理系统. 按照数据结构来组织、存储和管理数据的仓库. 数据库的发展&#xff1a; 1.层次模型存储&#xff1a;归为大类&#xff0c;分小类&#xff0c;也称树形结构 2.网状模型 3.关系模型&#xff1a;1对1的关系&#xff0c;1对多的关系&#xff0…

C++之生成详细汇编代码(二百一十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

留资机器人助你有效提高营销成功率

我们都知道&#xff0c;当客户产生留资行为&#xff0c;就要抓住机会&#xff0c;让工作人员及时地对客户进行回访&#xff0c;然后将留资线索跟踪、维系。而如何准确有效地提高客户保留率和转化率是营销成功的关键。所以对于企业来说&#xff0c;留资机器人正是引导客户留资&a…

Nebula Graph图数据库教程介绍

Nebula Graph图数据库教程介绍 ​ Nebula Graph&#xff08;星云图&#xff09;是一个开源的分布式图数据库系统&#xff0c;最初由中国的石墨烯数据库团队开发。它专门设计用于处理大规模图数据&#xff0c;并提供了高度可扩展性和性能。Nebula Graph支持多种图数据库的核心特…

Android笔记(二十九):利用python自动生成多语言

背景 项目需要支持十几种多语言&#xff0c;而且每个版本的新功能ui都有很多地方需要多语言&#xff0c;如果手动添加非常耗时&#xff0c;于是设计了一个python脚本&#xff0c;通过excel表格转化多语言到项目values/strings文件内 步骤 android工程项目结构 脚本位于langu…

Excel数学、工程和科学计算插件:FORMULADESK Studio

如果 Excel 是您的武器 - 让我们磨砺您的剑&#xff01;为整天使用 Excel 的人们提供创新的 Excel 加载项&#xff0c;你需要这个 FORMULADESK Studio。。。 Excel 插件为任何使用 Excel 执行数学、工程和科学计算的人提供了必备工具。 * 将公式视为真正的数学方程 * 为您的公…

供应商整合对企业有哪些好处?

企业采购总是希望降低成本&#xff0c;赢得更多的利润。实现这目标的其中一种方法就是供应商整合。 究竟什么是供应商整合&#xff1f;整合供应商有哪些好处&#xff1f;本文为你详细解答。 什么是供应商整合&#xff1f; 供应商整合是减少特定产品或服务的供应商数量的过程。…

[当人工智能遇上安全] 9.基于API序列和深度学习的恶意家族分类实例详解

您或许知道&#xff0c;作者后续分享网络安全的文章会越来越少。但如果您想学习人工智能和安全结合的应用&#xff0c;您就有福利了&#xff0c;作者将重新打造一个《当人工智能遇上安全》系列博客&#xff0c;详细介绍人工智能与安全相关的论文、实践&#xff0c;并分享各种案…