虚幻4 汽车行驶如何产生扬尘和溅水的效果

关键词:unreal4、虚幻4、汽车、扬尘、溅水、粒子效果

实现思路:通过在四个车轮的底部添加四个ParticleSystem,并通过blueprint控制粒子系统的施放逻辑。

 

一、虚幻4汽车在沙地上行驶时,如何扬起尘土?

 

A.首先,需要先把粒子效果制作出来,可以参考官方学习教程的”赛车游戏”里开车时的粒子效果。

将赛车游戏下载下来后,创建工程。

创建后可试玩,看一下效果。

B.在World Settings找到GameMode模块,点击右边的查找图标,查找默认的PawnClass并打开。

打开该蓝图,发现并没有粒子component在上面。

重新运行,并在World Outliner,点击Type标头排序,快速找到VH_Buggy。

点击查看该蓝图的细节,可看到有四个粒子component,应该是动态生成的。

点击其中一个粒子component,运行时不可对其进行查找操作,可在Content Browser窗口中点击content文件夹,并在右边的搜索框中搜索Particle(粒子的英文),可找到扬沙子的Particle System。

C.此时可停止运行游戏,此处需要用到的是扬沙的效果和溅水的效果。

选中两个粒子,在其中一个目标上鼠标右键->点击AssetActions->点击Migrate。

弹出AssetReport窗口,点击Ok。

弹出选择储存路径,最好是选择自己工程的根目录Content文件夹下,如果选择的不是根目录会弹出提示并且材质会丢失。

如果自己的content文件夹下已经有同名文件夹但是不想同步到里面,也可以储存在别的地方,但是会丢失材质,需要重新去绑定。

导出后右下角会弹出成功提示,并可在自己的工程中看到一个新的文件夹Effects,这个是赛车游戏储存的文件夹,导过来后,可自己再对里面的东西进行移动。

打开自己的工程,应在Content/.../Effects/Effects/VehicleEffects/下找到两个particle system,打开查看一下,是否有材质丢失,如果丢失对比两个工程的粒子系统重新绑定材质。

此处有几点要说明一下

1.Migrate选项导出,会把相关联的Material、Texture等等一起导出来,导出的是一个文件夹。

2.赛车游戏的创建时的虚幻版本要选跟你工程的虚幻版本一致,否则有可能导过去后,某些文件查不到(Windows文件夹看到了文件,但是虚幻里面的文件系统看不到)。

3.一般丢失了的话,粒子会丢失material,而material会丢失texture,要从material开始重新绑定比较麻烦,所以建议还是直接导出到根目录content。

D.找到自己车子的蓝图,打开并在Components标签页添加粒子component,此处建议先添加一个,调好位置后再复制,改一下坐标。

 

可以改变不同的视角和调整移动幅度,来调整,更方便准确。

根据喜好放置,此处本人放在轮胎底部的中心处。

完成第一个后,选中第一个粒子component,按下CTRL+W,创建剩下的,只需在top视角移动即可保证四个在同一水平面,并且同一水平线的component的Y坐标应该一致,同一竖直线的component的X坐标应该一致。

在Details面板的Particles模块的Template为四个粒子component绑定P_dirt_wheel_kickup粒子,可同时选中四个一次性绑定上去。

E.保存并运行游戏,可看到有一些黑点类似石子的粒子效果,下面会介绍如何去掉这个效果,希望使用默认效果可跳过这一步骤。

打开P_dirt_wheel_kickup,粒子编辑器的界面介绍和使用请参考

https://docs.unrealengine.com/latest/INT/Engine/Rendering/ParticleSystems/Cascade/index.html

此处禁用掉Grit和Tire Track两个发射器,即可去掉石子的效果。

以下将说明一些会微调到的参数的作用,参数的说明可参考

https://docs.unrealengine.com/latest/INT/Engine/Rendering/ParticleSystems/Reference/index.html

1.Required模块主要是修改粒子发射器发射的Material。

2.Spawn模块主要是修改Rate下的Distribution下的Constant,来调节喷出的粒子的速率,并在预览窗口查看到,此处因为用到Spawn PerUnit所以constant值设置为0。

3.Spawn PerUnit模块会根据行进的距离进行发射粒子,这样车子停止时不会有粒子产生,但移动时会产生粒子。主要会修改到的是Unit Scalar和Spawn Per Unit下的constant两个值,可以理解为每移动Unit Scalar个单位发射constant次粒子。其他参数参考官方文档。

4.Lift Time模块的两个值Min和Max应该很好理解,粒子的最小存在和最大存在时间。

5.Initial Size模块的Min值和Max值分别是修改粒子的最小体积和最大体积。

6.Initial Velocity模块会修改到的是Min值、Max值和In World Space选框,不同方向的最大和最小速度矢量以及是否是以世界坐标系为标准。

7.Initial Rotation模块Min和Max同上面意思一样就是粒子出生时的最小和最大值,此处注意一个就是1表示旋转360°。

8.Size By Life模块有需要请参考官方文档,主要是粒子的生命周期内按设置的不同的比例缩放体积大小(在之前Initial Size的基础上),例如此处设置(5,1,1)和(1,1,1),粒子会以(5,1,1)的比例产生,然后会缩小到(1,1,1)的比例。

9.Acceleration模块是设置加速度的,constant值和In World Space选框很好理解,就是沿着哪个轴的方向施加加速度以及是否是世界坐标为准。

10.Sphere模块是设置粒子产生位置的,Initial Color模块是设置产生时粒子的颜色,Scale Color/Life模块是设置粒子生命周期过程中的颜色变化,这几个此处略过不提,有需要参考文档。

F.此处是较快的得到扬尘的效果的做法,套用别人的粒子发射器,有条件深入学习粒子系统是最好的,此处调整完后,车子已经具备了扬尘的功能了,但是还有一些地方需要处理,因为SpawnPerUnit使用的是运动增量,会有可能出现,车子明明在移动但是粒子发射器没有发挥作用。

在车子的蓝图里写或者创建一个SceneComponent然后添加到车子的component列表里面。

先创建一个Particle System Component(粒子系统组件)的数组,用于存放四个粒子发射器,好做批量处理。

再创建一个Wheel Vehicle Movement Component 4W的变量,根据你车子的车轮类型即可,用于获取车子前进后退状态。

再创建一个存放车子当前状态的int变量。

在游戏开始时储存四个粒子发射器和一个车轮移动组件到对应的变量中。

车子前进时沙子应朝后面飞起,后退时沙子应向前面飞起,停止时应把粒子清除掉,不然刹车停止时,粒子还会再飞一会。每个tick获取一次车子状态。

Sequence第一个出口判断车子当前的forward方向的速度是否大于零并且车子速度的标志位CarVelocityFlag如果不是1说明之前的状态不是前进状态现在是前进状态,就调用改变粒子发射器方向的方法。

Sequence第二、三个出口,同理,不做赘述。

以下是ChangeParticleDirection方法,前进时沿Y轴转动45°,粒子发射器们斜朝车后,后退时沿Y轴转动-45°,发射器们斜朝车前,此处的粒子效果是朝上喷射的,转动Y轴角度即可斜向喷出。

以下是ClearParticle方法,将粒子系统的Particles的Template设置为None即可。

车子扬尘的效果到这里就完成了。

二、虚幻4汽车在浅水上行驶时,如何溅起水花?

A.操作步骤跟车子扬尘的操作步骤差不多,打开P_water_wheel_kickup粒子系统

添加一个Spawn PerUnit来根据移动量来决定Spawn的量,把Spawn的Rate改成0。

启用另一个Initial Velocity,或者在原先启用的Initial Velocity上修改,水花向X轴的负方向喷射,向上或者向斜向上根据需要修改。

其他参数根据上方的E.中的参数简述或者参考官方文档进行修改。

B.接下来在车子的蓝图中或者是在上面创建的SceneComponent里,创建一个bool变量来标志当前地面类型和创建一个方法用来切换不同粒子系统。

在之前改变粒子朝向的方法里再添加一个判断来修改水喷射的朝向,此处像粒子初始的发射方向以及车子前进后退时粒子发射器的旋转可根据实际调整。

创建一个新蓝图,并在在Component面板添加一个Box Collision。

切换到Event Graph窗口,如果之前使用的是SceneComponent蓝图,游戏开始时需要获取一下车子Component面板中挂载的SceneComponent。此处本人的车子名字是BP_XM_CarCar4_Child,SceneComponent蓝图名字是ControlCarParticles_SceneComponent。

为Component面板中的BoxCollision添加进入和离开时的事件,判断是否是这辆车,是就设置标志位并调用方法。进入时就修改粒子为水的,出去就修改为沙子的。

将这个水域检测的蓝图拖到场景中,并调整大小,具体形状、大小根据需要调整。

到此溅水的功能就完成了,此处换用另一台车,效果如下。

有条件FQ可参阅这个粒子视频

https://docs.unrealengine.com/latest/INT/Videos/PLZlv_N0_O1gYDLyB3LVfjYIcbBe8NqR8t/OXK2Xbd7D9w/index.html

或者国内B站

https://www.bilibili.com/video/av11697692/

原文地址:https://www.cnblogs.com/JinT-Hwang/p/8370742.html

时间: 2024-10-01 04:29:33

虚幻4 汽车行驶如何产生扬尘和溅水的效果的相关文章

Simulink混合仿真系统实例练习——汽车行驶控制系统

今天学习了Simulinl混合仿真系统,实际的系统常常是混合系统(即系统中有连续信号也有离散信号).在对这类系统进行仿真时必须考虑连续信号和离散信号采样时间之间的匹配问题.Simulink中的变步长连续求解器充分考虑了上述问题.所以在对混合系统进行仿真分析时,应该使用变步长连续求解器.现在通过一个实例来进行系统的总结一下.下面的例子来自教材<基于MATLAB7.x+SIMULINK_STATEFLOW系统仿真.分析及设计>. 例:汽车行驶控制系统是应用很广的控制系统之一,控制的目的是对汽车速度

华为数模D题–汽车行驶工况构建

原文链接:https://blog.xxcxw.cn/2019/09/22/2019%e5%b9%b4%e5%8d%8e%e4%b8%ba%e6%9d%af%e7%a0%94%e7%a9%b6%e7%94%9f%e6%95%b0%e5%ad%a6%e5%bb%ba%e6%a8%a1%e7%ab%9e%e8%b5%9bd%e9%a2%98-%e6%b1%bd%e8%bd%a6%e8%a1%8c%e9%a9%b6%e5%b7%a5%e5%86%b5/ 目标的提出 在上述背景下, 请根据附件(3 个数

手动挡汽车行驶中踩刹车必须踩离合器吗?

记录别人的经验: 当汽车速度比较快时(高于20公里/小时),手动档汽车若需要减速(不需停住时),只踩刹车就行. 当速度很慢时,在踩住刹车的同时还要踩下离合器才不会熄火. 需要停车时,也是一样,先踩刹车减速,待速度降低后,就踩下离合器和刹车停住. 还有一种减速方法(是不考试需要的),就是先松开油门(不踩刹车),手动档汽车就会因发动机的限制而减速(带档滑行),只要留足跟车距离,就完全可以不用刹车减速,靠油门就可以控制速度快慢.这样驾驶就会比较省油(也是节油驾驶的方法之一),同时,刹车片也因为使用较少

系新能源汽车电路讲10年取代现代化汽车航业

驱动电机系统是新能源车三大核心部件之一.电机驱动控制系统是新能源汽车车辆行使中的主要执行结构,其驱动特性决定了汽车行驶的主要性能指标,它是电动汽车的重要部件.电动汽车的整个驱动系统包括电动机驱动系统与其机械传动机构两个部分.电机驱动系统主要由电动机.功率转换器.控制器.各种检测传感器以及电源等部分构成. 简单来讲,电机驱动系统主要由驱动电机和电机控制器两部分构成.从电机驱动系统的产业价值链来看,驱动电机和电机控制器所占的成本之比大致相同. 1)调速范围宽:新能源汽车有两类工况场景,在启动.加速.

汽车结构件疲劳耐久开发

0. 汽车结构件疲劳耐久开发 汽车在行驶时不断受到由于路面不平而引起的路面冲击载荷,同时还受到转向侧向力.驱动力和制动力等的作用.这些力一般都随着时间发生变化.另外,汽车发动机本身也是一个振动源.因此汽车在行驶中处于一个相当复杂的振动环境中,其各个零部件都会受到随着时间发生变化的应力.应变的作用.经过一定的工作时间,一些零部件便会发生疲劳损坏,出现裂纹或断裂.据统计,汽车90%以上的零部件损坏都属于疲劳损坏.从汽车诞生的那一天起,疲劳耐久就是整车的重要性能.早期的汽车厂家甚至经常采用长距离耐力赛

1:虚幻引擎网络架构:Actors

终于有时间了,打算在这个周末认认真真的研究虚幻引擎网络架构,同时我在Safaribooksonline上面发现了一本能让我的生活变得轻松的书Multiplayer Game Programming by Rough Cuts,这个周末好好享用哟.  好了,承接上一次的内容:为什么虚幻引擎的网络架构这么的高效? 1.从他的架构模式继续广义的客户端-服务器模型(Generalized Client-Server model): 在这个模型中服务器还是控制着游戏状态的变化,客户端运行着和服务器一样的代

智语言语法说明

智语言 智语言是一款完全中文的解释编程语言,运行时被翻译成Javascript. 所有Javascript 的语法与组件可以直接使用.智语言精心设计了中文语法部分. 在讲智语言的语法之前我先介绍一下智语言的设计理念.智语言的设计理念,智语言可以表达任何需要电脑(机器人)完成的逻辑. 智语言是一种解释语言可以支持任何的高级语法,让使用者更加舒服, 让使用者感觉像在使用自然语言. 因为解释语言拥有高级特征,所以性能会比其他编译语言性能更低. 庆幸的是现在电脑的计算速度飞快, 解释语言有很大的使用空间

自动档11个禁忌动作 再好的变速箱开一年也报废!

自动档11个禁忌动作 再好的变速箱开一年也报废! http://auto.sohu.com/20170119/n479150536.shtml 自动挡车型因其自动化程度高,驾驶操作简单,车不容易熄火等优点,更适合走走停停的城市驾车生活,也因此成为越来越多城市消费者的首选.但在驾驶自动挡车型中也要注意很多问题.有些人开很久没什么大事,而有些人开了不到半年毛病甚多,和个人开车习惯也是大有关系,今天就来谈谈什么样的行为最伤变速箱. 1.长时间不换变速箱油 汽车行驶一定里程之后,变速箱里面的油需要更换.

超声波

手机超声波通信技术介绍: 手机超声波通信,指利用超声波技术在手机间传递信息,比如大家熟知的支付宝的声波支付就是典型的超声波通信技术.其原理很简单,一句话就是把一段时长的频率作为一种信号,发送方把信号编码成很多段等长的频率,通过播音设备发射出去:接收方通过录音设备录制声音,然后将等长的频率识别出来,最后还原成对应的信号.这样就做到了声波传输,比如现在我们的编码是32进制的(0-31),对应的频率我们设定为1k-4.1k,每个信号对应的时长为100ms,如果我们发射信号3,2,10,30则对应的频率