Niagara官方示例笔记 - 盘点自带重要模块

2023-11-13

  • Emitter State -life cycle生命周期控制

    • 发射器选择system, 所有发射器都在system的state里设置生命周期
    • 选择self, 发射器独立控制
  • 可以给发射器创建不同类型变量,使用set parameter模块计算

    • 系统自带一些默认属性如浮点变量Age(粒子年龄),particle position(粒子位置)等,参数面板右边上锁表示自带属性,数字显示引用次数
    • 按User , System, Emitter,Particle划分变量可见性级别
    • 只有User.parameters才能暴露给蓝图
  • uniform恒定值,random随机取值, curve按曲线取值

    • vector from float + float from curve - 高维降维, 用一维float曲线控制2D或3D数据
  • 变量计算节点:multiply, sin等
    在这里插入图片描述

  • Emitter update - spawn模块

    • spawn rate持续发射,
    • spawn burst爆炸式发射(瞬发, ribbon默认)
  • Particle spawn - initial particle模块

    • 控制初始粒子大小,颜色,生命周期等
  • Particle spawn - sephere location模块

    • 初始球形散开
    • +搜索,location下各种初始形状
  • Particle update - add velocity模块

    • 细节面板可以添加角速度rotate vector
  • Particle update - add velocity xx 模块

    • add velocity from clone,添加锥形速度
    • +搜索velocity,add velocity ifrom point, 从点给一个初速度
    • vortex velocity模块,漩涡力场
  • Particle update- gravity Force模块

    • 施加重力
    • 可以设置加速度,其实可以定义各个方向上的加速力
  • Emitter Properties: GPU/CPU粒子

    • GPU粒子必须开fixed bounds,边界设置不好会导致边缘粒子看不到效果

在这里插入图片描述

  • light render和ribbon render目前只能用cpu粒子

  • Determinism控制真随机/伪随机

  • Particle Update - Curl noise force模块

    • 随机噪声力场,可能是最常用和最好用的随机力场
  • Particle Update - Drag模块

    • 施加阻力,常常和 Curl noise force模块
  • Particle Update - Attraction Force模块

    • 粒子吸引力场,粒子按强度和半径向力场中心靠拢,给负值反向聚拢(向外喷发)
    • 可以动态改变力场中心位置实现粒子动态聚集效果
  • Particle Spawn/Update - Color模块

    • 粒子颜色,可以设置color from curve根据Age变化
  • Particle Spawn/Update - Size模块

    • scale粒子大小, 可以根据曲线设置
  • 粒子朝向中心

    • 新建一个vector变量FacingCenter,为particle position(粒子位置) - simulation position(发射器中心)

    • spirate render的face mode设置为custom

    • Set SpirateFacing变量(自带)vector rotate to FacingCenter

在这里插入图片描述

  • mesh rotate控制

    • 方式1 - 直接设置旋转及速度(没有力参与,无需解算器更cheap), Particle spawn - initial mesh orientation, Particle update - update mesh orientation
    • 方式2 - 施加力或力场控制旋转(与mesh的质量体积有关,需要解算器),Particle spawn - caculate size and rotational by mass计算mesh初始量, Particle update - mesh rotation force模块施加旋转力场
  • Particle Spawn - spawn beam

    • Ribboon render生成带状粒子(根据linkOrder连成带状的粒子群,ribbon render目前只支持cpu)
    • 系统自动添加一个对应的beam setup,用于设置ribbon的初始起点位置和终点位置,朝向等
    • 系统自动添加一个对应spawn burst控制模拟beam的粒子个数,越多越好看,性能开销也越大
  • Particle Update - beam width模块

    • 设置ribbon宽度

    • 根据linkOrder设置宽度,头粗尾细效果

在这里插入图片描述

  • Particle Update - update beam 模块

    • 每帧更新beam,动态ribbon必备,让beam实时跟着发射位置
  • Ribbon带状颜色渐变:color from curve的跟随变量(CurveIndex)不能是NormalizedAge(默认),应改为RibbonLinkOrder

  • 连续生成多个Ribbon

    • Emitter设置生命周期循环,控制发射器循环时间和粒子的生命周期,保证粒子时间比循环时间长

    • 设置beam setup end的Evaluation type为every frame

在这里插入图片描述

  • 循环时间越短发射越快,循环时间足够短时模拟同时发射多个ribbon(可以避免做多个ribbon render)

  • Particle Update - rotate around point模块

    • 绕中心点旋转,核心参数rotation center(常用simulationposition 或 Particle.position)
      在这里插入图片描述

    • 和vortex velocity效果类似

  • Particle Update - particle state模块

    • kill到达生命周期的粒子
  • 一个发射器可以同时渲染多个render

    • 如spirate+mesh+ribbon, 通过将自定义变量和render的自带属性变量bind, set parameter设置自定义变量从而调整和覆盖各自render的属性

在这里插入图片描述

  • 多render的可视性

    • 每个render的render visibility(render细节面板)属性分组(如0-3),通过set parameter模块设置属性Particle.VisibilityTag控制可见性
    • 如随机设置0-3则4个render随机显示,分组时全部设0此变量也设0则同时显示,如过link user变量则可以通过蓝图设置
  • 粒子event

    • **只能是cpu粒子,需要勾选Emitter properties中的ID(**为粒子生成ID便于通信)
    • 创建自带事件类型: gen death event/gen location event/gen collision event
    • 接收事件:Event Handler - handler properties选择事件名和事件处理逻辑Excution Mode(固定几种类型,如spawn rate接收事件后生成粒子), receive death event/ receive location event/ receive collision event接收事件。
  • 粒子collision

    • Particle Update - Collsion模块,cpu和gpu都支持,但是cpu开销更大,gpu碰撞更常用,但是如果要用到事件(如碰撞事件产生后生成新粒子),必须cpu做碰撞(事件只支持cpu)

    • 碰撞模块三类核心参数: 半径Radius,弹力Bounce,摩擦力Friction

在这里插入图片描述

  • CPU碰撞类型只有光影追踪(自动计算碰撞)和plane(指定一个碰撞平面),GPU粒子会多两种类型及相关参数:distance fields(距离场)/depth(场景深度)

  • 碰撞bool变量Particles.HasCollided,用于碰撞后改属性或kill

在这里插入图片描述

  • 采样static mesh作为发射粒子(跟随场景mesh动态变化效果):

    • Particle spawn - sample static mesh模块指定采样对象(可以通过user变量暴露给蓝图)

    • Particle spawn - static mesh location模块设置法线或位置信息为采样mesh的法线和位置(SampleStaticMesh.meshNormal/SampleStaticMesh.meshLocation)

    • 实现从粒子生成位置到采样mesh的过渡:自定义vector变量先记录粒子初始位置(要在static mesh location之上,Niagara模板从上往下计算,如果先采样位置则初始位置已经更改),Particle Update时设置Particles.Position,从初始位置lerp到mesh position,alpha为sine是为了循环往复

在这里插入图片描述

  • texture sample(采样贴图实现粒子效果)

    • Emitter update - spawn particle in grid模块设置grid大小

    • Particle spawn - grid location模块设置grid位置(一般就是Particles.Position)

    • Particle spawn - sample texture模块指定采样对象,并且设置贴图uv为GridUV

    • Particle spawn - initial particles模块设置color为贴图颜色(SampleTexture.sampledColor), 并且设置position mode为unset, spirate size为1

    • 然后可以配合力场等其他模块做贴图动画效果(如noise力场模拟贴图消散效果)

    在这里插入图片描述

  • 单粒子触发播放声音,Particle update - play audio模块

    • 只支持cpu粒子,通过bool变量控制播放

    • 如死亡时播放可以link inverse bool- DataInstance.Alive ,播放位置为Particle.position

    • 又如碰撞时播放可以link bool - Particle.HasCollided变量

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Niagara官方示例笔记 - 盘点自带重要模块 的相关文章

  • [UE4笔记] 3DUI空间交互

    在Actor中使用widget的时候制作3DUI 如果直接选择World模式 鼠标和UI是无法产生交互的 只要勾选了红框里的选项 就可以正常交互了 老是忘记 所以写个笔记记录一下 效果 注意 如果你还是点击不到 输入控制台命令showfla
  • UE4-DeltaTime(时间增量)

    UE4 DeltaTime 时间增量 Time 2020年10月14日13 33 52 Author Yblackd UE4 DeltaTime 1 结论 2 deltaTime 增量时间 3 为什么乘以 时间增量 4 注意误区 5 参考
  • UE4 技能系统(GAS插件的使用) 01--Build Basic Classes 创建基础类

    翻译自Udemy的视频课程introduction to unreal engine 4 ability system Build Basic Classes 创建基础类 1 创建工程和人物设置 01 创建Git仓库 使用UE4 22 VS
  • 11月8日 改良射线,蓝图 UE4斯坦福 学习笔记

    修改射线类型 更改了昨天的射线类型 void USInteractionComponent PrimaryInteract 射线 FHitResult FHit 碰撞体 FCollisionObjectQueryParams ObjectQ
  • UE4修改splitScreen layout方式

    UE4自身提供了分屏显示的方法 可以分成两个屏幕 也可以分成三个屏幕 但提供的分屏布局方式有限 包括两个玩家分屏布局 Vertical Horizontal 三个玩家分屏布局 Favor Top Favor Bottom 这里提供给大家一种
  • Unity 游戏入门 九、 精灵动画 Sprite Animation

    1 Animator 为了在游戏对象上有动画 需要添加一个组件Animator 在工程窗口中 双击Robot 预制体 如图所示 添加Animator组件 2 Creating a New Controller 在工程窗口Animator文件
  • UE4_积分相同排名显示问题

    找了一下ue4 rank 函数相关 没找到合适的 自己简单写了个 解决积分相同时名次要一样 之后顺位排序 中国式排名 蓝图实现 c 原理一样 1 2 3 4 5
  • Adroid游戏开发实例讲解(四)-电子白板附源码

    Adroid游戏开发实例讲解 四 电子白板附源码 程序之美 电子白板 在很多Android设备中经常会用到 比如说Android电视 触摸屏用上手写笔 轻松在上面写字 比如视频教学Android设备 有很多培训教学机构 都放有Android
  • 【UE4 像素流 WEBUI插件】部署像素流

    目录 一 单实例本地像素流送 步骤 1 勾选插件 2 打包工程并启动信令服务器 3 创建快捷方式并启动游戏 二 单实例局域网像素流送 步骤 1 编辑cirrus js 2 编辑快捷方式属性 3 启动 三 集成WEBUI插件 一 单实例本地像
  • ue4 蓝图通信的几种方式

    一 设置公有变量 完成通信 1 蓝图类Door bp中声明变量NewVar 1 为公有 确定好变量类型 编译 2 关卡视口中选中这个蓝图类Door bp的实例 世界大纲视图下的细节面板中 默认下出现公有变量名称NewVar 1 用吸管吸取关
  • 2022年4月3日-4月15日(方案A,ogremain源码抄写+ue4视频学习,共22小时,合计1270小时,剩8730小时)

    截至2022年4月1日 ogreMain剩下4533行 含注释 纯代码2646行 周二时学完了ue第五套视频教程编辑器1 good 接下来 UE4视频教程进行到了mysql 1 1 tf1 2 1 oss 4 2 simpleThread
  • ue4_timeline时间轴

    1 给一个cube添加蓝图 需要修改的是z轴方向移动位置 将z轴传入时间轴 时间轴蓝图如下 z轴时间轴修改为 第一个节点 time 0 value 300 物体的z轴初始位置 第二个节点 time 1 value 600 z轴移动300个单
  • 【Unity3d】Animator和Animation组件使用注意事项

    一 Animator一般用于人物动画控制 特点是动画是持续的 可能有动作切换 Animation一般用于间断性的动画的控制 比如一个场景特效的播放 只播放一次就完了 二 实测Animation速度比Animator快10 左右 内存占用没测
  • 【unity3D】创建TextMeshPro(TMP)中文字体(解决输入中文乱码问题)

    未来的游戏开发程序媛 现在的努力学习菜鸡 本专栏是我关于游戏开发的学习笔记 本篇是unity的TMP中文输入显示乱码的解决方式 创建 TextMeshPro 中文字体 遇到的问题描述 解决方式 Font Asset Creator 面板扩展
  • Unity 使用Photon Server 联网开发(二)游戏同步+房间列表

    photon联机的配置 直接去官网下载Pun的资源包导入项目 设置PhotonServerSettings配置文件 配置appid 通讯协议 服务器地址 端口号 服务器地址可以配置成自己本地服务器 云服务器 直接使用photon服务器 也可
  • UE4 射线检测案例(C++)

    UE4 射线检测 C 开发场景 玩家 C 开发的 武器 C 射线检测函数 蓝图 C 效果 制作流程 添加开火按键映射 新建一个继承ACharacter的C 用蓝图继承刚刚新建的C 然后设置好游戏模式 我 这是是 用了一个枚举 其实你直接调用
  • UE4文字显示乱码“字字字字字字字字”的解决办法

    键盘win R 搜索fonts 2 滑到最底下右键复制 宋体常规简体字 3 复制到ue4项目的字体文件夹中 如下 注意在外部文件处复制 4 回到项目界面 此时右下角会有个弹窗提示是否确认导入 点击导入 然后会弹一个 字体样式导入选项 弹框
  • 【UE 材质】角色触碰空气墙效果

    效果 步骤 1 新建一个工程 创建一个Basic关卡 添加一个第三人称游戏资源到内容浏览器 2 新建一个材质参数集 这里命名为 MPC Vector 打开 MPC Vector 添加一个向量参数 3 新建一个材质 这里命名为 M Wall
  • 【UE 材质】任务目标点效果

    效果 步骤 1 新建一个工程 创建一个Basic关卡 2 新建一个材质 这里命名为 M GoalPoint 打开 M GoalPoint 设置混合模式为 半透明 勾选 双面 在材质图表中添加如下节点 此时预览效果如下 继续添加如下节点 此时
  • 微信游戏如何开发

    中懿游游戏软件开发 微信游戏开发通常涉及使用微信小游戏平台进行开发 微信小游戏是一种在微信平台上运行的轻量级游戏 用户可以在微信中直接体验 无需下载安装 以下是在微信平台上开发小游戏的一般步骤 1 注册微信开发者账号 访问 微信开放平台 注

随机推荐

  • echarts图表鼠标悬停时 图例错位

    1 问题 当页面body拥有zoom属性之后 鼠标划过echarts图表时 触发位置就不正常 2 原因分析 这都是因为设置了zoom 如果你在你的项目中设置了zoom以达到缩放比例的适配 在使用echarts图表时就会出现错位的问题 3 解
  • cmake(二十八)Cmake工具链

    一 选择编译器及设置编译器选项 1 应用场景 1 在 实际的项目平台中 可能安装有 多个版本 的 编译器 2 同时由于 不同的功能 可能会需要设置 不同的编译参数 2 初始状态 3 IDE工具CLion配置 4 CMAKE C COMPIL
  • pycharm查看全部tensor数据,取消省略

    方法一
  • 【深度学习——点云】DGCNN(EdgeConv)

    这篇文章提出一种边卷积 EdgeConv 操作 来完成点云中点与点之间关系的建模 使得网络能够更好地学习局部和全局特征 论文地址 Dynamic Graph CNN For Learning On Point Clouds 1 Motiva
  • rustup 慢_Rust 慢更贴[持续更新Rust学习的点点滴滴]

    入门篇 Rust入门系列 这个帖子会一直更新 欢迎大家回复 首先从安装来写把 rust安装 在写这篇文章的时候 rust最新版本是1 35 安装的步骤大家可以直接上rust官网 https www rust lang org curl ht
  • 招银网络科技电话面试

    1 关于项目的负责内容 还是非常有必要熟悉应急 天基的基础传输模块的 基本面试中都会觉得只界面模块很单薄 应急 基础传输模块 无人机网络协议 速率控制模块 界面模块 天基 基础传输模块 MRUDP 界面模块 2 TCP长连接 问 如何在TC
  • 每日一面系列之volatile 的理解

    volatile 是 Java 虚拟机提供的轻量级的同步机制 有三大特点 保证可见性 不保证原子性 禁止指令重排 保证可见性 当多个线程操作共享数据时 彼此是不可见的 由此提出 JMM java 内存模型 JMM java 内存模型 是一种
  • Words Seven

    2019独角兽企业重金招聘Python工程师标准 gt gt gt bar 棍子 酒吧 栅栏stick lip stickbarrier bar r er 障碍 hurdlebarrel bar rel 木桶barren bar ren 贫
  • 数二考纲新增内容-比较审敛法

    总的来说 为了避免出现2010年数一数二选择题的超纲嫌疑 命题组明确了会考察反常积分的比较审敛法 其实之前在做题中都已经涉及 主要多了一个反常积分的极限形式 这里给出一个总结 关于反常积分敛散性的原理 还有一个解题技巧就是利用对数 指数 幂
  • java数据类型转换,基本数据类型和String数据类型之间的转换

    6月16日学习打卡 自动类型转换 强制转换 基本数据类型和String转换 3 8类型转换 3 8 1自动类型转换 1 低精度向高精度赋值可以自动转换类型 char gt int gt long gt float gt double byt
  • 探索TiDB数据库

    一 TiDB介绍 TiDB是一款定位于在线事务处理 在线分析处理的融合型数据库产品 实现了一键水平伸缩 分布式事务与基于Raft协议保证强一致的多副本数据安全 具有实时OLAP等重要特性 同时兼容MYSQL协议和生态 迁移便捷 运维成本低
  • 老表,教你一招啊!!!如何用python实现将csv文件快速导入数据库,建议收藏!!!

    直接上代码 import pandas as pd from sqlalchemy import create engine MySQL的用户 root 密码 147369 端口 3306 数据库 date engine create en
  • 一行代码下载优酷、腾讯、B站等公开视屏

    安装you get工具包 pip install you get 下载命令解析 you get o e 123 o后面接本地地址 https v youku com v show id XOTQ3NjI1ODc2 html 为视屏页地址
  • RabbitMQ MQTT集群方案官方说明

    RabbitMQ MQTT 官方网说明 官方地址 https www rabbitmq com mqtt html 从3 8开始 该MQTT插件要求存在一定数量的群集节点 这意味着三分之二 五分之三 依此类推 该插件也可以在单个节点上使用
  • mysql除法函数_理解MySQL运算符和常用内置函数_MySQL

    一 MySQL中的运算符 注意事项 1 在除法运算和模数运算中 如果除数是0 将是非法除数 结果返回NULL 取模运算中 也可以用MOD a b 函数或者a b mysql gt select 1 0 100 0 1 0 100 0 NUL
  • 码上行动:利用Python与ChatGPT高效搞定Excel数据分析

    AI时代Excel数据分析提升之道 知识精进 学习答疑 上机实训 综合实战 ChatGPT应用 零基础入门 极速提升数据分析效率 亮点 1 零基础入门宝典 由浅入深讲解 无须额外的背景知识即可学习掌握 2 内容系统全面 可帮助读者快速了解使
  • C0177 [2004普及组-A]不高兴的津津(C语言写)

    题目描述 津津上初中了 妈妈认为津津应该更加用功学习 所以津津除了上学之外 还要参加妈妈为她报名的各科复习班 另外每周妈妈还会送她去学习朗诵 舞蹈和钢琴 但是津津如果一天上课超过八个小时就会不高兴 而且上得越久就会越不高兴 假设津津不会因为
  • 音频PCM数据的单声道、双声道之间的转换

    在使用tinyalsa处理PCM音频数据时发现该设备只能以双声道形式打开设备 tinypcminfo工具可以查看设备信息 out和in里面channels 最大和最小值都是2 但是实际使用中有时候又需要声卡采集和播放单声道数据怎么办 那就只
  • 入门级题解3. 无重复字符的最长子串

    题目 给定一个字符串 s 请你找出其中不含有重复字符的最长子串的长度 思路 这样一来 我们就可以使用 滑动窗口 来解决这个问题了 我们使用两个指针表示字符串中的某个子串 或窗口 的左右边界 其中左指针代表着上文中 枚举子串的起始位置 而右指
  • Niagara官方示例笔记 - 盘点自带重要模块

    Emitter State life cycle生命周期控制 发射器选择system 所有发射器都在system的state里设置生命周期 选择self 发射器独立控制 可以给发射器创建不同类型变量 使用set parameter模块计算