查看: 1374|回复: 0

[粒子] 分布数据(Distribution_s)

[复制链接]

903

主题

951

帖子

3935

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3935

最佳新人

发表于 2019-3-29 16:15:02 | 显示全部楼层 |阅读模式
本页面的内容:
分布数据的烘培
分布类型
Float Distribution_s (浮点型分布)
DistributionFloatCon_stant (浮点常量分布)
DistributionFloatUniform(浮点型均匀分布)
DistributionFloatCon_stantCurve (浮点常量曲线分布)
DistributionFloatUniformCurve (浮点型均匀曲线分布)
DistributionFloatParticleParam(浮点型粒子参数分布)
DistributionFloatSoundParameter(浮点型声效参数分布)
Vector Distribution_s (向量分布)
DistributionVectorCon_stant (向量常量分布)
DistributionVectorUniform (向量均匀分布)
DistributionVectorCon_stantCurve (向量常量曲线分布)
DistributionVectorUniformCurve (向量均匀曲线分布)
DistributionVectorParticleParam (向量粒子参数分布)

分布 是一组数据类型,这些数据类型可以是常量值、某个范围内的随机值、沿着曲线上的插值及由参数驱动的值,从而提供了很好的灵活性。 这些数据类型一般用于粒子系统属性和SoundCues节点中。

尽管在编辑器中,按照字母排序的话 region_s 也列着,但文档这里我们根据复杂度来整理。这么做只是为了帮助刚刚接触的同学更容易理解这些概念。

分布数据的烘培

无论使用哪种分布类型,总是能够在下方看到 是否能被烘培(Can be Baked) 的选项。它决定分布数据的数值结果是否要被烘培到一个查找表中。 相对于运行时实时计算随机数值或者曲线插值而言,预先将数值烘培到查找表中将会极大的提高效率。因此这个选项默认是勾选状态。

如果遇到查找表结果丢失关键信息的边缘情况,可以取消选中此选项,以便系统检查每个标记的实际值。当然,这会降低效率,但在极少数情况下,如果需要实现关键的外观,并且查找表出现故障,则值得考虑该选项。

CanBeBaked.png

分布类型

当创建粒子系统时,为了获得最大的灵活性,大多数粒子属性都使用 DistributionFloat (浮点分布)DistributionVector (向量分布)类型。 当使用分布类型时有很多种可用的选项,在以下部分将会对各种类型进行详细解释。

注意实际使用的值是根据使用它的属性进行变化的。比如,粒子的 Initial Size (初始大小) 是在粒子产生的时间确定的。 如果把这个属性的分布类型设置为常量曲线,那么将会使用粒子产生时的发射器时间来从曲线中计算获得所期望的值。

Float Distribution_s (浮点型分布)

当有需要美术人员控制的标量属性时,使用浮点型分布。一个实例便是粒子的生命周期或发射器的产生速率。

DistributionFloatCon_stant (浮点常量分布)

这种类型用于为常量属性提供一个值。下图显示了在数轴上的该数值

FloatC哔~tant_Graph.png

1 常量浮点值不会改变。

当选中这个类型时,将会提供以下对话框来编辑值:

FloatC哔~tant.png

DistributionFloatCon_stant 属性

单项 描述
常量 为给定的属性设置静态且不变的数值


DistributionFloatUniform(浮点型均匀分布)

这个类型用于为属性提供一定范围内的值。当计算时,在选中的范围随机地设置返回的值。

FloatUniform_Graph.png

1 最小值。
2 最大值。
3 随机值的取值范围。

当选中这个类型时,将会提供以下对话框来编辑值:

FloatUniform.png

DistributionFloatUniform 属性

单项 描述
最小 随机计算的最小值
最大 随机计算的最大值


DistributionFloatCon_stantCurve (浮点常量曲线分布)

这种类型用于为分布在曲线编辑器上的随着时间变化属性提供值。时间是绝对的(随着发射器的生命周期)或相对的(随着单个粒子的生命周期)取决于使用这个分布的模块。

floatC哔~tantCurve_Graph.png

1 关键帧点
2 插值曲线。最终数值是根据这条曲线在给定时间来得出。
3 切线句柄 - 它们定义了曲线在进入/离开关键帧的行为。

当选中这个类型时,将会提供以下对话框来编辑值:

FloatC哔~tantCurve.png

注意所有文本域都可以进行手动编辑,但是使用曲线编辑器来编辑这些值是我们推荐的方法。

DistributionFloatCon_stantCurve 属性
单项 描述
点(points) 这个是数组属性,包含了曲线上所有的点。可以使用  按钮创建新的点。然而,通常在图形编辑器窗口中新增点更加容易。
点(Point)的属性
InVal 这个是图形里水平轴的点,通常作为时间计算。
OutVal 这是图形里垂直轴的点,通常作为属性数值计算。
ArriveTangent 提供点的切线进入角。有意义的数值通常在 -150 到 150。
LeaveTangent 提供点的切线离去角。有意义的数值通常在 -150 到 150。
InterpMode 让用户选择不同的曲线差值模式。查看 曲线编辑器用户手册 的页面来了解更多。

DistributionFloatUniformCurve (浮点型均匀曲线分布)

这个类型用于为分布在曲线编辑器上随着时间变化的属性提供一定范围的值。在特定的时间点上

FloatUniformCurve_graph.png

1 最小值曲线 - 定义了随着时间变化的最小值。
2 最大值曲线 - 定义了随着时间变化的最大值。
3 值范围 - 定义了特定时间下最终值得取值范围。

当选中这个类型时,将会提供以下对话框来编辑值:

FloatUniformCurve.png

和使用 Con_stantCurve(常量曲线) 类型一样,我们推荐使用曲线编辑器来编辑这个分布类型。

DistributionFloatCon_stantCurve 属性
单项 描述
点(points) 这个是数组属性,包含了曲线上所有的点。可以使用  按钮创建新的点。然而,通常在图形编辑器窗口中新增点更加容易。
点(Point)的属性
InVal 这个是图形里水平轴的点,通常作为时间计算。
OutVal 这是图形里垂直轴的点,通常作为属性数值计算。
ArriveTangent 提供点的切线进入角。有意义的数值通常在 -150 到 150。
LeaveTangent 提供点的切线离去角。有意义的数值通常在 -150 到 150。
InterpMode 让用户选择不同的曲线差值模式。查看 曲线编辑器用户手册 的页面来了解更多。


DistributionFloatParticleParam(浮点型粒子参数分布)

这种类型用于为发射器的参数进行简单的游戏代码设置。它提供了把输入值从一个范围映射到另一个范围的功能, 允许您在 "Cascade-空间" 中调整参数而不需要更新游戏形代码。一旦游戏性编程人员定义了一个可靠的输入范围, 美术工作人员便可以通过 Output(输出) 映射自由地调整属性了。

FloatParticleParam.png

输入到输出是线性映射,也就是说,最小输入为 0 最大输入为 5,最小输出为 0 最大输出为 100 时,如果用 2 作为输入,那么输出就是 40。

简单地设置输入值 0-1 映射到多个输入处值是非常有用的,因为您可以通过名称来共享粒子参数变量。比如,您可以设置通过粒子参数Foo来驱动SpawnRate, 并设置输入值为 0-1、输出端为 20-200,同时在 InitialSize(初始大小) 中也是使用 Foo,使其它们具有相同的输入值,但输出值为 10-20。

在代码中,程序员将会书写类似于以下的代码:

  1. ParticleComponent->SetFloatParameter('MyParameter', CurrentParameter);
复制代码


DistributionFloatParticleParameter 属性
单项 描述
参数名称 ParameterName 脚本代码通过该参数名称来访问参数。
最小输入 Min Input 可以传递给分布数据的最小值,通常通过游戏代码设置
最大输入 Max Input 可以传递给分布数据的最大值,通常通过游戏代码设置。
最小输出 Min Output 根据输入的范围,获得的最小输出值。
最大输出 Max Output 根据输入的范围,获得的最大输出值。
参数模式 Param Mode 决定了如何使用输入值。详见下面的参数模式标记表格。
常量 Con_stant 当没有输入时,这里提供一个默认值。

参数模式标识ParamMode Flag 描述
DPM_Normal 保持输入值不变。
DPM_Abs 在进行重新映射之前,使用输入值的绝对值。
DPM_Direct 直接使用输入值(没有重新映射)。


Vector Distribution_s (向量分布)

向量分布用于美术人员控制的基于向量的属性。比如粒子的大小或者速度。

DistributionVectorCon_stant (向量常量分布)

这种类型用于为常量属性提供一个值。

VectorC哔~tant_Graph.png

1 X-轴数值

2 Y-轴数值

3 Z-轴数值

当选中这个类型时,将会提供以下对话框来编辑值:  

VectorC哔~tant.png

LockedAxes(锁定坐标轴)标志允许用户锁定一个坐标轴的值为另一个坐标轴的值。支持以下标志:

DistributionVectorCon_stant 属性
单项 描述
Con_stant 常量 这是给定属性的静态且不变的数值。作为向量,包含 X,Y,Z 三个值。
Locked Axes 锁定轴 这里定义了将某个轴固定到其他三个轴的方式来简化分布。查看下面的锁定坐标轴标志表格。


LockedAxes(锁定坐标轴) 标志 描述
EDVLF_None 不把坐标轴锁定为另一个坐标轴上的值
EDVLF_XY 锁定Y-轴的值为X-轴的值。
EDVLF_XZ 锁定Z-轴的值为X-轴的值。
EDVLF_YZ 锁定Z-轴的值为Y-轴的值。
EDVLF_XYZ 锁定Y-轴和Z-轴的值为X-轴的值。


注意:当激活锁定标志时,值将不能反映在属性窗口的设置中。也就是,当设置 LockedAxes 标志为 EDVLF_XY 时,Y 值将不会显示 X 的内容。 仅当从分布(代码中)计算出那个值时,才应用被锁定的坐标轴的值。

DistributionVectorUniform (向量均匀分布)

这个类型用于为属性提供一定范围内的值。当计算时,在选中的范围随机地设置返回的值。

VectorUniform_Graph.png

1 X-轴最小值
2 X-轴最大值
3 X-轴随机值
4 Y-轴最小值
5 Y-轴最大值
6 Y-轴随机值
7 Z-轴最小值
8 Z-轴最大值
9 Z-轴随机值

当选中这个类型时,将会提供以下对话框来编辑值:

VectorUniform.png

DistributionVectorUniform 属性
单项 描述
Min 最小值 用于随机计算的最小值。鉴于向量的规格,这包含了 X,Y,Z 三个值。
Max 最大值 用于随机计算的最大值。鉴于向量的规格,这包含了 X,Y,Z 三个值。
Use Extremes 使用极端值 意味选择的值应该作为 Min(最小值)或者 Max(最大值),把这些值限定为这两个极端值其中的一个。

LockedAxes(锁定坐标轴) 标志 描述
EDVLF_None 不把坐标轴锁定为另一个坐标轴上的值。
EDVLF_XY 锁定Y-轴的值为X-轴的值。
EDVLF_XZ 锁定Z-轴的值为X-轴的值。
EDVLF_YZ 锁定Z-轴的值为Y-轴的值。
EDVLF_XYZ 锁定Y-轴和Z-轴的值为X-轴的值。


Mirror 标志下的 0,1,2 属性相应的对应了 X,Y,Z 轴。

DistributionVectorCon_stantCurve (向量常量曲线分布)

这种类型用于为分布在曲线编辑器上的随着时间变化属性提供值。时间是绝对的(随着发射器的生命周期)或相对的(随着单个粒子的生命周期)取决于使用这个分布的模块。

VectorC哔~tantCurve_Graph.png

1 根据时间变化的曲线上 Point 0 的 X 轴
2 根据时间变化的曲线上 Point 1 的 X 轴
3 根据时间变化的曲线上插值后的 X 轴
4 根据时间变化的曲线上 Point 0 的 Y 轴
5 根据时间变化的曲线上 Point 1 的 Y 轴
6 根据时间变化的曲线上插值后的 Y 轴
7 根据时间变化的曲线上 Point 0 的 Z 轴
8 根据时间变化的曲线上 Point 1 的 Z 轴
9 根据时间变化的曲线上插值后的 Z 轴

当选中这个类型时,将会提供以下对话框来编辑值:

VectorC哔~tantCurve.png

DistributionFloatCon_stantCurve 属性
单项
描述
点(points)
这个是数组属性,包含了曲线上所有的点。可以使用  按钮创建新的点。然而,通常在图形编辑器窗口中新增点更加容易。
点(Point)的属性
InVal
这个是图形里水平轴的点,通常作为时间计算。
OutVal
这是图形里垂直轴的点,通常作为属性数值计算。
ArriveTangent
提供点的切线进入角。有意义的数值通常在 -150 到 150。
LeaveTangent
提供点的切线离去角。有意义的数值通常在 -150 到 150。
InterpMode
让用户选择不同的曲线差值模式。查看 曲线编辑器用户手册 的页面来了解更多。

LockedAxes(锁定坐标轴) 标志
描述
EDVLF_None 不把坐标轴锁定为另一个坐标轴上的值。
EDVLF_XY 锁定Y-轴的值为X-轴的值。
EDVLF_XZ 锁定Z-轴的值为X-轴的值。
EDVLF_YZ 锁定Z-轴的值为Y-轴的值。
EDVLF_XYZ 锁定Y-轴和Z-轴的值为X-轴的值。

DistributionVectorUniformCurve (向量均匀曲线分布)


这个类型用于为分布在曲线编辑器上随着时间变化的属性提供一定范围的值。

VectorUniformCurve_graph.jpg

1 最小 X 轴曲线
2 最大 X 轴曲线
3 X 轴的随即插值范围
4 最小 Y 轴曲线
5 最大 Y 轴曲线
6 Y 轴的随即插值范围
7 最小 Z 轴曲线
8 最大 Z 轴曲线
9 Z 轴的随即插值范围

当选中这个类型时,将会提供以下对话框来编辑值:

VectorUniformCurve.png

DistributionVectorUniformCurve 属性
单项
描述
点(points)
这个是数组属性,包含了曲线上所有的点。可以使用  按钮创建新的点。然而,通常在图形编辑器窗口中新增点更加容易。
点(Point)的属性
InVal
这个是图形里水平轴的点,通常作为时间计算。
OutVal 这是图形里垂直轴的点,通常作为属性数值计算。
ArriveTangent 提供点的切线进入角。有意义的数值通常在 -150 到 150。
LeaveTangent 提供点的切线离去角。有意义的数值通常在 -150 到 150。
InterpMode 让用户选择不同的曲线差值模式。查看 曲线编辑器用户手册 的页面来了解更多。
Use Extremes 使用极端值 意味选择的值应该作为 Min(最小值)或者 Max(最大值),把这些值限定为这两个极端值其中的一个。

LockedAxes(锁定坐标轴) 标志
描述
EDVLF_None 不把坐标轴锁定为另一个坐标轴上的值。
EDVLF_XY 锁定Y-轴的值为X-轴的值。
EDVLF_XZ 锁定Z-轴的值为X-轴的值。
EDVLF_YZ 锁定Z-轴的值为Y-轴的值。
EDVLF_XYZ 锁定Y-轴和Z-轴的值为X-轴的值。

MirrorFlags(镜像标志)用于镜像值的每个分量的Min/Max(最小/最大)值。镜像支持以下标志:

MirrorFlags(镜像标志)
描述
EDVMF_Same(相同) 在Min(最小值)处使用Max (最大值)。
EDVMF_Different(不同) 按照最初设置使用每个值。
EDVMF_Mirror 在Min(最小值)处使用Max(最大值)的负值。


和其它曲线类型一样,我们推荐通过曲线编辑器来编辑这种分布类型。

DistributionVectorParticleParam (向量粒子参数分布)

这个类型是上面讨论的FloatParticleParam类型的向量类型等价物。

当选中这个类型时,将会提供以下对话框来编辑值:

VectorParticleParam.png

DistributionFloatParticleParameter 属性
单项
描述
参数名称 ParameterName
脚本代码通过该参数名称来访问参数。
最小输入 Min Input
可以传递给分布数据的最小值,通常通过游戏代码设置。
最大输入 Max Input
可以传递给分布数据的最大值,通常通过游戏代码设置。
最小输出 Min Output
根据输入的范围,获得的最小输出值。
最大输出 Max Output
根据输入的范围,获得的最大输出值。
参数模式 Param Mode
决定了如何使用输入值。详见下面的参数模式标记表格。
常量 Con_stant 当没有输入时,这里提供一个默认值。
LockedAxes(锁定坐标轴) 标志
描述
EDVLF_None 不把坐标轴锁定为另一个坐标轴上的值。
EDVLF_XY 锁定Y-轴的值为X-轴的值。
EDVLF_XZ 锁定Z-轴的值为X-轴的值。
EDVLF_YZ 锁定Z-轴的值为Y-轴的值。
EDVLF_XYZ 锁定Y-轴和Z-轴的值为X-轴的值。

参数模式标识ParamMode Flag
描述
DPM_Normal 保持输入值不变。
DPM_Abs 在进行重新映射之前,使用输入值的绝对值。
DPM_Direct 直接使用输入值(没有重新映射)。


关注galaxixv,官方微信公众号。
GALAXIX UE4 讨论学习群 140439020
UE4精英学习群  12762592
UNITY学习群   194092348
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


快速回复 返回顶部 返回列表