IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Niagara真菌运动仿真实现【UE4】 -> 正文阅读

[游戏开发]Niagara真菌运动仿真实现【UE4】

黏菌是一种真菌,可以智能地生长以收集尽可能多的食物。当使用基于代理的粒子模拟来模拟他们的运动时,它会生成有趣的动画。几位艺术家已经在不同的平台上实现了这个算法,但在这个教程里,我们将使用虚幻引擎 4的 Niagara 来实现黏菌的运动模拟。

1、概述

黏菌模拟需要粒子本身的密度和食物来源。我希望有一种方法可以获取某些区域的粒子密度,但是 Niagara 目前不支持这一点。因此,我找到了通过在同一坐标系中捕获整个粒子来找到密度值的方法,因此它可以用作位置纹理。此捕获纹理的分辨率设置为低,以模仿原始论文中讨论的模糊效果。

2、启用Niagara

我们从启用 Niagara 插件开始。转到插件菜单Menu > Edit > Plugins并启用Niagara和Niagara Extras。

在这里插入图片描述

3、场景设置

首先,让我们通过选择New Project >Blueprint Blank创建一个新的空白项目。删除所有不必要的对象,默认灯光除外。
在这里插入图片描述

添加新的Niagara System和Niagara Emitter ,方法是右键单击 Content BrowserFX > Niagara System > Create an empty system with no emitters然后FX > Niagara Emitter > Directional Burst. 将Niagara System拖放到场景中Location(0,0,0)。

现在,我们创建一个捕捉相机和背景。

将一个平面对象添加到场景中并设置Location(1000, 1000, 10) Scale(80, 80, 1). 创建一个黑色材质并将其分配给平面。

从内容浏览器中添加渲染目标。Materials & Textures > Render Target

使用“模型”选项卡中的搜索栏添加Scene Capture 2D对象。设置Location(1000, 1000, 100) Rotation(90, -90, 180)为让捕捉相机面朝下。改变Projection Type > Orthographic和Ortho Width > 2000。在Texture Target中,选择刚刚制作的Render Target 。更改Primitive Render Mode > Use ShowOnly List并Capture Source > Final Color (LDR) in RGB.最后,通过单击+按钮并选择每个对象,将Plane and Niagara System添加到Show Only Actors列表。

在这里插入图片描述

4、添加发射器

为了将Niagara Emitter添加到Niagara System,首先,women 需要双击Niagara System打开Niagara 编辑器,然后将Niagara Emitter从 Content Brower拖放到Niagara Editor中 Timeline Tab 中的播放按钮的正上方。

在这里插入图片描述

现在,在Niagara Editor中也打开Niagara Emitter。然后,在参数选项卡中单击发射器旁边的 + 按钮,添加一个浮点参数,并将其命名为Emitter.CanvasSize。

在这里插入图片描述

5、创建 Niagara 脚本

Niagara 不需要硬编码,只需要添加和连接节点。Niagara 模块脚本用于在粒子生命周期的任何阶段修改粒子的行为。Niagara 函数脚本被定义为在Niagara 模块脚本中用作节点。让我们添加控制粒子所需的 1 个函数脚本和 3 个模块脚本。

Rotate2dVector

这个函数旋转一个二维向量,给定一个旋转度数。将其定义为供以后使用的函数很有用。从FX > Niagara Function Script. _ _ 命名这个脚本Rotate2dVector。在 Script Details 面板中,添加两个新的 type 输入参数,Vector 2D并将float它们命名为Vector2D和Degrees。您可以删除图表视图上的默认输入。现在,添加节点并连接它们,如下面的屏幕截图所示。要添加任何节点,请将每个节点右侧的圆圈拖放到图表中的任意位置并搜索相应的类型。
在这里插入图片描述

FitToView

该模块将任何离开画布的粒子传输回画布。从FX > Niagara Module Script. _ _ 命名这个脚本FitToView。在Map Get节点中添加Particle.Position和。如下图所示添加节点并连接它们(希望你能看到它们),并连接到Map Set节点Emitter.CanvasSizeParticle.Position。

在这里插入图片描述

MyColor

该模块控制粒子的颜色和不透明度。我们只需要添加 2 个 Vector3 和 float 类型的模块参数并将它们连接到Particle.Color.
在这里插入图片描述

ChangeDirections

该模块实现了 Slime Mold 的主要算法。它将首先从粒子的当前位置定义 3 个候选位置,然后它将在数据和沉积纹理的组合中采样相应的像素。最后,它将比较这些并移动到具有最高强度值的方向。
在这里插入图片描述

首先,添加Particles.Position和Emitter.CanvasSize到Particle.VelocityMap Get。此外,创建 4 个浮点模块参数并将它们命名如下。
在这里插入图片描述

添加节点并连接它们,如下图所示。在这里,我们根据Sensor Angle和Sensor Distance确定 3 个候选采样位置。对于每个方向,根据传感器角度和移动距离给出下一步位置。

在这里插入图片描述

接下来,从Input Map节点创建另一个Map Get节点,并添加 4 个模块参数,如下图所示。对于每个候选采样位置,Sample Texture 2D节点将在相应像素处对纹理的强度值进行采样。这是针对数据纹理和捕获的纹理完成的,并分别根据数据权重和沉积权重进行加权
在这里插入图片描述

最后,将这些采样值Particle.Velosity设置为具有最高强度值的方向进行比较。

在这里插入图片描述

修改发射器参数

该项目的最后阶段是修改发射器参数。双击Niagara Emitter并打开 Niagara Editor。按照以下屏幕截图更改参数并添加我们创建的模块。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、运行

现在,你应该可以看到基于代理的粘液霉菌粒子模拟的炫酷动画了,可以更改颜色并尝试不同的参数!


原文链接:Niagara真菌运动模拟 — BimAnt

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 22:31:30  更:2022-03-17 22:34:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 18:42:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码