UE4 Particle Instance Parameters Tutorial
2015-12-02 19:48
531 查看
Contents
[hide] Overview
Controlling
Color Through Parameters
Setting
up the Instance Parameter
Controlling
Particle Parameters via Blueprint
Setting
Up the Particle Parameter
Overview
Instance Parameters are a very powerful part of the effects pipeline in UE4. Particle Parameters can be used to control a multitude of values, on a per instance basis. ParticleParameters are often used on placed level effects, though they can also be called by game code to control various modules.
Controlling Color Through Parameters
For this demonstration we will control the color of a fire particle system using the ScaleColorLife module, setup with aParticleParameter. We have set up a simplelevel with a basic flickering torch (used in the Epic Citadel map) in the middle of a large test stage.
First open your effect in Cascade, and make certain you have an initialColor or ColorOverLife module in your particle system.
Next right-click on the flame emitter add the Color > ScaleColor/Life module to your system. In the case of ScaleColor/Life the parameter gets utilized very often so setup
is as easy as right-clicking and choosing Set up particle parameter. Note: this is not the case with all particleParameters.
If you select the module and view it's properties you can see vector and constant values have been defined for this module. The Parameters have been automatically named InstanceColorScaleOverLife and InstanceAlphaScaleOverLife,
though it is possible to modify these names and have multiple Parameter names in any particle system, placed on unique emitter stacks.
Setting up the Instance Parameter
The next step involves the individual EmitterActor placed in the scene. Select the EmitterActor and look in the Details Pane. Locate the Instance Parameters section, located underthe Particles.
Press the +' button. This will add a new parameter slot into the emitter. You *could* do this twice if you wanted to control alpha, but for this example we are only going
to use color.
Make sure the parameter name within the new parameter matches the parameter name given to the parameter in Cascade. If you left it at its default value, it will be InstanceColorScaleOverLife.
Also set the Param Type property to Color. Your particle system will likely turn black. This is normal.
Set the color property to any color that you like. Experiment with different colors and see what you get!
It is possible to use the color parameter to customize one particle effect as needed without having to copy/paste multiple effects into your packages for basic color variation across
different levels. In the following image, the particle actor was duplicated and the color parameter was changed. Notice that the change does not affect the originally changed copy. This means you can use the same parameter to have different colors on each
instance.
ParticleParameters can make organizing and finding effects much simpler, reduce memory, level load times, and reduce the amount of files required to be stored on disk.
Controlling Particle Parameters via Blueprint
Although parameters are useful in that they allow you to make alterations to an existing particle system without having to create an entirely new asset, one of the more useful aspectsis that they expose particle control to external sources such as scripts, Matinee, and Blueprints. In this example, we're going to take the color-changing fire from above and drive its color change by way of a simple Blueprint script.
For simplicity's sake, we will use Level Scripting in this setup, though such systems would generally be more useful if set up with a Blueprint, which could then be easily deployed
into other levels.
We will begin with a flame effect that has a parameter set up for color, as was done in the previous example.
Click the Level Script button to open the Level Blueprint window. To prevent this document from becoming a Blueprint tutorial, here is the network used:
Click for larger view.**
1. Every frame we get the distance from the player to the particle system. 1. We need to lerp, so normalize min and max ranges, clamp to 0-1. 1. Log the value out to the screen
for good measure. 1. Set that color parameter using the results of our lerp.
The final result is that the flame will change color as the player moves toward and away from it.
1. When viewed at a range of 100 units, the flame has a blue tint added to it, causing it to be a faint purple. 2. When the player moves 512 units away and beyond, the flame has
shifted over to a green color.
Setting Up the Particle Parameter
Using a single emitter we will move the position of our effect with a particle parameter. For this example, the system has but one emitter.Right Click and add an Initial Position module to your Emitter in Cascade.
Select the Initial Location module and in the Distribution List choose DistributionVectorParticleParameter.
Change the Parameter Name to InitialPosition_1 or any parameter name you choose, just make it unique for this emitter, unless you wish to share position values across multiple
emitters using a shared particle parameter.
Open the Param Modes section and change the drop downs to DPM_Direct
In the level, select the Emitter actor and look at the Properties Window. Expand the Instance Parameters section and click the Plusbutton and add a new
entry into the list. Set the Parameter Name to InitialPosition_1 (or whatever name you selected earlier). Also set the Param Type property to PSPT_Vector.
Change the Vector values to match whatever the desired position.
Before using a particle parameter to control position:
After using a particle parameter to control position:
This demonstration is a simplified example of using particle parameters, there are many uses for this feature which may prove to be a savings for your project.
Using one EmitterActor to place 3 fires using a particle parameter with a unique name on 3 unique emitters in Cascade:
It is essential when working with complex effects to name your particle parameters clearly, returning to an older effect with poorly name parameters can be a confusing process which
may waste time deducing how the parameters work. It is possible to use multiple particle parameters to control behavior across several modules in a single emitter or multiple emitters. Try editing color, position, scale, lifetime etc. It can prove beneficial
to experiment with different settings to achieve the desired result.
In this particular case a particle parameter can be used to move the position of effect elements around in a scene, reducing emitterActor counts which in turn can help performance
and load times. It is also possible to control particle parameters through matinee and game code.
Categories:
Tutorials
Particle
Epic Created Content
Contents
[hide] Overview
Controlling
Color Through Parameters
Setting
up the Instance Parameter
Controlling
Particle Parameters via Blueprint
Setting
Up the Particle Parameter
Overview
Instance Parameters are a very powerful part of the effects pipeline in UE4. Particle Parameters can be used to control a multitude of values, on a per instance basis. ParticleParameters are often used on placed level effects, though they can also be called by game code to control various modules.
Controlling Color Through Parameters
For this demonstration we will control the color of a fire particle system using the ScaleColorLife module, setup with aParticleParameter. We have set up a simplelevel with a basic flickering torch (used in the Epic Citadel map) in the middle of a large test stage.
First open your effect in Cascade, and make certain you have an initialColor or ColorOverLife module in your particle system.
Next right-click on the flame emitter add the Color > ScaleColor/Life module to your system. In the case of ScaleColor/Life the parameter gets utilized very often so setup
is as easy as right-clicking and choosing Set up particle parameter. Note: this is not the case with all particleParameters.
If you select the module and view it's properties you can see vector and constant values have been defined for this module. The Parameters have been automatically named InstanceColorScaleOverLife and InstanceAlphaScaleOverLife,
though it is possible to modify these names and have multiple Parameter names in any particle system, placed on unique emitter stacks.
Setting up the Instance Parameter
The next step involves the individual EmitterActor placed in the scene. Select the EmitterActor and look in the Details Pane. Locate the Instance Parameters section, located underthe Particles.
Press the +' button. This will add a new parameter slot into the emitter. You *could* do this twice if you wanted to control alpha, but for this example we are only going
to use color.
Make sure the parameter name within the new parameter matches the parameter name given to the parameter in Cascade. If you left it at its default value, it will be InstanceColorScaleOverLife.
Also set the Param Type property to Color. Your particle system will likely turn black. This is normal.
Set the color property to any color that you like. Experiment with different colors and see what you get!
It is possible to use the color parameter to customize one particle effect as needed without having to copy/paste multiple effects into your packages for basic color variation across
different levels. In the following image, the particle actor was duplicated and the color parameter was changed. Notice that the change does not affect the originally changed copy. This means you can use the same parameter to have different colors on each
instance.
ParticleParameters can make organizing and finding effects much simpler, reduce memory, level load times, and reduce the amount of files required to be stored on disk.
Controlling Particle Parameters via Blueprint
Although parameters are useful in that they allow you to make alterations to an existing particle system without having to create an entirely new asset, one of the more useful aspectsis that they expose particle control to external sources such as scripts, Matinee, and Blueprints. In this example, we're going to take the color-changing fire from above and drive its color change by way of a simple Blueprint script.
For simplicity's sake, we will use Level Scripting in this setup, though such systems would generally be more useful if set up with a Blueprint, which could then be easily deployed
into other levels.
We will begin with a flame effect that has a parameter set up for color, as was done in the previous example.
Click the Level Script button to open the Level Blueprint window. To prevent this document from becoming a Blueprint tutorial, here is the network used:
Click for larger view.**
1. Every frame we get the distance from the player to the particle system. 1. We need to lerp, so normalize min and max ranges, clamp to 0-1. 1. Log the value out to the screen
for good measure. 1. Set that color parameter using the results of our lerp.
The final result is that the flame will change color as the player moves toward and away from it.
1. When viewed at a range of 100 units, the flame has a blue tint added to it, causing it to be a faint purple. 2. When the player moves 512 units away and beyond, the flame has
shifted over to a green color.
Setting Up the Particle Parameter
Using a single emitter we will move the position of our effect with a particle parameter. For this example, the system has but one emitter.Right Click and add an Initial Position module to your Emitter in Cascade.
Select the Initial Location module and in the Distribution List choose DistributionVectorParticleParameter.
Change the Parameter Name to InitialPosition_1 or any parameter name you choose, just make it unique for this emitter, unless you wish to share position values across multiple
emitters using a shared particle parameter.
Open the Param Modes section and change the drop downs to DPM_Direct
In the level, select the Emitter actor and look at the Properties Window. Expand the Instance Parameters section and click the Plusbutton and add a new
entry into the list. Set the Parameter Name to InitialPosition_1 (or whatever name you selected earlier). Also set the Param Type property to PSPT_Vector.
Change the Vector values to match whatever the desired position.
Before using a particle parameter to control position:
After using a particle parameter to control position:
This demonstration is a simplified example of using particle parameters, there are many uses for this feature which may prove to be a savings for your project.
Using one EmitterActor to place 3 fires using a particle parameter with a unique name on 3 unique emitters in Cascade:
It is essential when working with complex effects to name your particle parameters clearly, returning to an older effect with poorly name parameters can be a confusing process which
may waste time deducing how the parameters work. It is possible to use multiple particle parameters to control behavior across several modules in a single emitter or multiple emitters. Try editing color, position, scale, lifetime etc. It can prove beneficial
to experiment with different settings to achieve the desired result.
In this particular case a particle parameter can be used to move the position of effect elements around in a scene, reducing emitterActor counts which in turn can help performance
and load times. It is also possible to control particle parameters through matinee and game code.
Categories:
Tutorials
Particle
Epic Created Content
相关文章推荐
- Android进程和线程 --消息队列模型 (Looper, MessageQueue, Handler) (1)
- view 中的 opaque , alpha , 和 alpha 的区别
- POJ2299 Ultra-QuickSort 归并排序和逆序数,树状数组
- 【HDU 1005】Number Sequence
- serialVersionUID的作用
- CF235C Cyclical Quest
- iOS-UIButton-文字位置,字体大小,边角样式,button种类,点击事件,内容位置
- js easyui messager.confirm 界面弹出框 焦点的修改
- iOS-UIView-设置背景图片4种方式
- java中String.valueOf()和toString()方法的区别
- elasticsearch java query API
- UI-2-UILabel&UIImageView-补充
- 在C#中对于null/DBNull.Value值进行类型转换时,除了Convert.ToString()之外,其他的转换都会报空引用异常;
- iOS NSOperationQueue与GCD
- Kendo UI
- java(6)--GUI学习
- 生成UUID
- return, break and continue
- easyui datagrid 可过滤行的数据表格 导出
- 取得当前页面的value值问题