粒子系统:火焰效果
“火焰效果”教程说明了您如何使用 Qt 设计 Studio 粒子系统将火焰效果添加到场景中。
在这个教程中,您将从头创建一个项目。您可以从这里下载完成的项目。
本教程需要您了解 Qt 设计 Studio 的基础知识,请参阅入门。
教程资产
要完成此教程,您需要以下资产
- fire-sprites.png
- fire-color-table.png
从这里下载资产。
创建火焰效果
创建项目
要创建新项目
- 打开 Qt 设计 Studio。
- 在“欢迎使用”屏幕上,选择创建项目。
- 在“预设”部分,选择 通用 > 3D。
- 在“详细信息”部分,将名称设置为 FireParticles,并选择您想保存项目的文件夹。
- 选择 创建。
接下来,删除项目中不需要的默认组件
- 在“导航器”视图中,选择 Text 然后按 Delete 键。
- 以相同的方式删除 cubeModel。
为了更好的视觉效果,设置背景颜色为黑色
- 在“导航器”视图中,选择 Rectangle 并在 属性 中,将 填充颜色 设置为 #000000。
向场景添加粒子系统
要添加粒子系统,您首先需要将 QtQuick3D.Particles3D 模块导入到项目中
- 在“组件”视图中,选择 。
- 查找 QtQuick3D.Particles3D,并选择它将其添加到您的项目中。
在这个项目中,您使用一个动态精灵来模拟火焰。为此,请使用 Animated Sprite 粒子系统模板
- 从 组件 > Qt Quick 3D 粒子系统模板 中,拖拽一个 Animated Sprite 组件 [1] 到 场景 的 导航器 中。
现在您已经设置了粒子系统。要预览它,请选择 Alt + P。您也可以通过使用 粒子编辑器 工具在 3D 视图中预览粒子系统。
添加精灵和精灵动画
在这个项目中,您使用一张包含 3 个精灵的精灵表。精灵表是一个包含多个精灵且按网格排列的单个图像文件。您使用这些精灵创建一个循环动画,以增加火焰运动的多样性。
首先,导入您在这个教程开头下载的精灵表(fire-sprites.png)并用于火焰。
- 在 资产 视图中,选择 。
- 在 添加资产 对话框中,找到并选择 fire-sprites.png。
接下来,将精灵表添加到粒子系统中,并创建动画
- 从 资产 视图中,将 fire-sprites.png 拖拽到 导航器 视图中的 animatedTexture。
- 在 导航器 视图中,选择 animatedSequence,然后在 属性 视图中设置:
- 帧数 为 3。在 fire-sprites.png 中有三个精灵,因此您希望将这张图像分为 3 个不同的精灵用于此动画。
- 插值 设置为 true。这使得精灵之间的动画平滑。
- 随机起始 设置为 true。这使得每个粒子的动画从 3 个精灵中的任何一个开始,增加了效果的随机性。
要为精灵添加颜色,使用 颜色表。使用颜色表,您在精灵的生命周期中改变其颜色。在这个项目中,您使用从黄色到深橙色的渐变色表。结果是精灵在发射时是黄色,在其生命周期结束时是深橙色。
要设置颜色表
- 转到 资产 视图并导入 fire-color-table.png 到您的项目中。
- 从 组件 视图中,将一个 Texture [1] 拖拽到 导航器 中的 animatedSpriteParticle。
- 将纹理重命名为 fireColorTable。
- 在 导航器 视图中,选择 fireColorTable,然后在 属性 视图中设置:
- 在 导航器 视图中,选择 animatedSpriteParticle,然后在 属性 视图中
- 确保 精灵 设置为 animatedTexture。这设置从粒子发射器发射哪种图像,在这个例子中是早先添加的精灵表。
- 将 粒子缩放 设置为 5 以调整火焰的大小。
- 将 颜色表 设置为 fireColorTable。
调整粒子发射器
下一步是调整粒子发射器属性
- 首先,在 导航器 视图中选择 animatedSpriteEmitter,然后,在 属性 视图中设置:
- 发射率 设置为 300 以每秒发射 300 个粒子。
- 生命周期 设置为 2500 以将每个粒子的生命周期设置为 2500 毫秒(2.5 秒)。
- 生命周期变化 设置为 100 以设置粒子生命周期的变化。现在每个粒子的生命周期在 2.4 至 2.6 秒之间,使火焰看起来更逼真。
- 粒子结束尺寸设置为1.50。当粒子发射时,其默认尺寸为1.00。在其生命周期的结束阶段,它会增长到1.50。
- 首先,在导航器视图中选择animatedSpriteParticle,然后在属性视图中进行设置:
- 混合模式设置为屏幕以优雅地合并火焰与背景。
- 最大数量设置为1000来定义一次在同一时间可见的最大粒子数量。设置更高的数字会分配更多的内存。
- 颜色变化 W > 0.50。这将增加精灵的不透明度的随机性。
- 《i>animatedSpriteDirection组件定义了从粒子发射器发射的粒子的方向和速度。在本教程中,您想让粒子垂直向上(有小的变化)。
在导航器视图中选择animatedSpriteDirection,然后在其属性视图中进行设置:
- 方向 > X 设置为0和 方向 > Y 设置为20。这会使粒子以20的速度垂直向上(沿Y轴)移动。
- 方向变化 > X 设置为3。这增加了X轴上的小变化,使得火焰稍微宽一些。
- 方向变化 > Y 设置为10。这沿Y轴增加了粒子的速度变化的范围。因为这让一些粒子速度减慢,因此火焰在下半部分看起来更粗。
运行项目
现在,火焰效果已经准备好了。在运行之前,将摄像机位置调整到从合适的视角展示效果。
- 在导航器视图中选择sceneCamera,然后在属性视图中进行设置:
- 视野 设置为20。
- 位置 > Y 设置为35。
- 位置 > Z 设置为350。
现在,通过选择Ctrl + R或在顶部工具栏中的按钮来运行项目。
另请参阅粒子。
适用于某些Qt许可证。
了解更多信息。