注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

About DEPT 有关部门

UDK&CryEngine3开发经验&教训分享

 
 
 

日志

 
 

【UDK】简单的粒子发射器  

2011-01-12 13:57:27|  分类: 基础问题 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

简介

虚幻引擎的粒子系统提供了一个发射器TypeDataModule(类型数据模块)允许您从源贴图中选择显示在它的粒子上的子图像。它是通过允许您为一个特定的粒子选择要显示的子图像并作为粒子生命周期的一个函数的方式来工作的。请查看UnrealCascade参考?来获得关于Cascade粒子编辑器的概要信息。

这个文档假设您已经熟悉了Generic Browser(通用浏览器)、创建包及在这些包中创建对象。

简单的子UV发射器

创建一个简单的子UV粒子发射器
创建一个新的粒子系统

启动编辑器,在通用浏览器(Generic Browser)中右击,然后选择“New Particle System(新建粒子系统)”。将会弹出一个新的窗口,提示您输入包的名称、对象的名称以及工厂,如下所示:

PS_SubUV_01_New.jpg

输入以下信息:

Package(包)
MyEmitters

Group(组)

Name(名称)
SubUV_Emitter

Factory(工厂)
<应该在ParticleSystem中>

[注意:如果您已经学习了其它的粒子系统指南,或许包MyEmitters已经存在了。在这种情况下,如果您不想丢失以前的工作并且那个包没有打开,那么您需要打开MyEmitters包,并右击浏览窗口来查找MyEmitters。]

这将会导致以下内容插入到您的MyEmitters包内:

PS_SubUV_02_InitialBrowser.jpg

导入贴图

在这个例子中,我们将会使用一个简单名称为ColorQuarters的‘细分贴图’。贴图由简单的四分的不同颜色的四方形组成,从左到右从上到下在每个子四方形中设置内嵌的alpha通道的数值为1、2、3、4。这个图像是子图像系统如何工作的简单验证。

当导出贴图后,在浏览器中的MyEmitters应该和以下的截图类似:

PS_SubUV_03_AddTexture.jpg

创建一个ParticleSubUV(粒子子UV)材质

下一步是创建一个应用于由粒子发射器产生的平面粒子的材质。在MyEmitters浏览窗口中右击鼠标并选择"New Material(新建材质)"。命名材质为"SubUV_Mat"并在材质编辑器中打开它。

在子UV发射器情况下,必须使用一个专用的材质表达式ParticleSubUV。通过在材质编辑器窗口中右击鼠标并从列表按照以下显示的内容进行选择:

PS_SubUV_04_Mtrl_NewExp.jpg

以下材质表达式控件将会出现在编辑器中:

PS_SubUV_05_Mtrl_ExpPic.jpg

属性视图允许您选择应用于这个SubUV取样器的贴图。首先使用通用浏览器来选择要插入的ColorQuarters贴图。一旦这个步骤完成,您应该可以在属性面板中看到以下信息:

PS_SubUV_06_Mtrl_ExpTextureSelect.jpg

下一步是将SubUV表达式和材质的输出相连接。在这个简单的例子中,只要将RGB的输出端连接到Diffuse的输入端、将Alpha输出端连接到Opacity输入端,如下所示:

PS_SubUV_07_Mtrl_HookUp.jpg

如果需要,材质的混合模式可以根据您希望粒子如何进行描画来设置。在这个实例中,我们将使用"BLEND_Translucent"模式,所以选择它,如下面的屏幕截图所示:

PS_SubUV_08_Mtrl_Translucent.jpg

到目前为止的视图

假设这个指南是从没有MyEmitters包开始的,浏览器窗口看上去应该和以下类似:

PS_SubUV_09_ReadyToEdit.jpg

创建粒子SubUV发射器

为了打开粒子编辑器Cascade,可以右击ParticleSystem(粒子系统)并从菜单中按照以下显示的图片进行选择:

PS_SubUV_10_OpenEditor.jpg

一旦打开了Cascade,右击`emitter bar(发射器条)'并选择"New ParticleSpriteEmitter(新建ParticleSpriteEmitter),如下所示:"

PS_SubUV_11_CreateNew.jpg

在这时,您应该在Cascade中看到以下信息,在预览窗口中显示了新创建的粒子发射器:

PS_SubUV_12_CascadeView.jpg

基础发射器类包含了子UV相关的设置 :InterpolationMethod(插值方法)、贴图的水平方向及垂直方向上子图像的数量。这个信息包含在发射器属性窗口的"SubUV"部分,如下所示:

Emitter_SubUV.jpg

应用材质并设置发射器的参数

通过在Cascade中点击"0: Sprite Emitter"方框来选择发射器。在编辑器面板的左下角将会出现发射器的属性。在给定的区域内输入以下信息:

ScreenAlignment (屏幕对齐方式)
PSA_Square

Material (材质)
SubUV_Mat (choose with the browser)

UseLocalSpace(使用本地坐标)
(不选择)

EmitterDuration(发射器持续时间)
1.000000

EmitterLoops (发射器循环)
0

在这时,您将会在编辑器预览窗口中看到以下图片:

PS_SubUV_15_EmitterProperyView.jpg

设置SubUV参数

在Cascade中通过点击"SubUV Data"方盒来选择SubUV数据类型的属性。这将会在编辑器的左下角显示SubUV的属性。在给定文本域内输入以下信息:

SubImages_Horizontal(水平方向的子图像数量)
2

SubImages_Vertical (垂直方向的子图像数量)
2

InterpolationMethod (插值方法)
PSSUV_Linear

这将会告知发射器将会布局一个2x2格子,并且在子图像间以线性的方式来插值。

Emitter_Running.jpg

正如您所看到的,发射器正在从提供的贴图中选择‘第一个’子图像,因为默认的子图像索引是常量0。

设置子图像选择情况

通过在发射器窗口中点击SubUV发射器的"SubImage Index"模块来选中它。这个模块的属性将会显示在Cascade面板的左下角。在SubImageIndex模块中仅包含了一条信息,即一个称为"SubImageIndex"的标量分布。

默认情况下,索引分布将会被设置为DistributionFloatConstant。展开SubImageIndex属性项并显示"Constant(常量)"的子文本域。尝试将常量的值改为1.0, 2.0, 3.0,然后最后在回到0.0。您将会看到发射器在四张提供的子图像间切换。

通过点击SubImageIndex项的绿色箭头,把分布改为统一缩放的一个。如下所示:

PS_SubUV_17_SIIUniform.jpg

设置最大值为3.1,最小值为0.0。 注意:子图像系统是基于0的,也就是它从0开始然后定位到<#子图像> -1。在这个例子中使用了3.1来确保第四张子图像的出现几率和其它的图像一致。

您将会看到每个粒子会在每一帧改变它所使用的子图像。[这个行为在以后可能会被改变,从而使美术工作人员可以控制在子图像交换时的时间间隔。]

最后,将分布类型改为一个常量型曲线。点击在发射器的SubImage Index模块上的绿色“按钮”来将曲线添加到曲线编辑器中。

添加一条使用以下增量的数据点的曲线:

时间

0.00
0.00

0.75
3.01

这将会产生一个可以在所有的存在的子图像间进行平滑转换的发射器,给予每个子图片大约粒子生命周期的25%的时间。以下是屏幕截图:

PS_SubUV_18_SIIConstCurve.jpg

  评论这张
 
阅读(2463)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017