Language:
Page Info
Engine Version:
Share

数据分布

Distribution 是提供灵活性的一组数据类型,它们允许常量值、在某个范围内的随机值、沿某个曲线的插值以及由参数驱动的数值。这些数据类型通常在粒子系统的属性和Sound Cue中的节点中使用。

尽管这些区域在编辑器中按字母顺序排列,但在此处我们按照复杂程度列出它们。这样做是为了帮助不熟悉此概念的人员理解它。

Distribution烘焙

无论使用哪种类型的Distribution,你始终会在其下面看到 可被烘焙(Can be Baked) 选项。此选项会确定Distribution的数值结果是否可被烘焙到查找表中。相较于动态计算随机值或曲线插值,将数值烘焙到查找表中要高效得多。因此,默认启用此选项。

假如你碰到查找表会导致关键信息丢失的极端情况,可以取消选中此选项,以使系统在每次更新时检查实际值。当然,这种方法不是很高效,但是在你需要实现重要查找而查找表行不通的极少数情况下,此选项非常值得考虑。

CanBeBaked.png

Distribution类型

大部分粒子属性使用 DistributionFloatDistributionVector 类型,以在创建粒子系统时实现最大的灵活性。使用Distribution类型时的可用选项有多个,我们将在下面的部分中详细介绍它们。

请注意,值的实际使用情况会因使用它的属性而异。例如,粒子的初始大小(Initial Size)在粒子生成时确定。如果针对该属性,Distribution类型设置为常量曲线,那么,将使用生成时的发射器时间从曲线检索所需数值。

浮点Distribution

当存在美工控制的标量属性时,使用浮点Distribution。示例包括粒子的生命周期或发射器的生成速率。

DistributionFloatConstant

此类型用于为常量属性提供值。下面是该值在数轴上的图形表示。

FloatConstant_Graph.png

  1. 不会变化的常量浮点值。

选择它作为类型时,你将看到以下对话框,可使用它编辑数值:

FloatConstant.png

DistributionFloatConstant属性

项目

说明

常量(Constant)

给定属性的静态和不变数量。

DistributionFloatUniform

此Distribution类型用于为属性提供值的范围。求值时,返回值将在所选择的范围内随机设定。

FloatUniform_Graph.png

  1. 最小数值。

  2. 最大数值。

  3. 从中选择随机值的范围。

选择它作为类型时,你将看到以下对话框,可使用它编辑数值:

FloatUniform.png

DistributionFloatUniform属性

项目

说明

最小值(Min)

随机计算的最小数值。

最大值(Max)

随机计算的最大数值。

DistributionFloatConstantCurve

此类型用于为随时间推移在图表编辑器上绘制的属性提供值。时间是绝对的(在发射器生命周期期间)还是相对的(在单个粒子的生命周期期间)取决于使用该Distribution的模块。

floatConstantCurve_Graph.png

  1. 关键帧点。

  2. 插值曲线。最终值将基于此曲线上给定时间的数值拉取。

  3. 切线图柄——它们定义曲线流入和流出关键帧的方式。

选择它作为类型时,你将看到以下对话框,可使用它编辑数值:

FloatConstantCurve.png

请注意,虽然所有这些字段都可手动编辑,但是我们建议你使用曲线编辑器窗口编辑这些数值。

DistributionFloatConstantCurve属性

项目

说明

点(Points)

包含曲线上所有点的数组属性。你可以使用 AddPoint_button.png 按钮在此处创建点。但是,在图表编辑器中添加点通常更简单更直观。

点属性

InVal

点在图表横轴上的位置,通常作为时间计算。

OutVal

点在图表纵轴上的位置,通常作为属性值计算。

到达切线(ArriveTangent)

规定点的传入切线的角度。有用值范围大约介于-150到150之间。

离开切线(LeaveTangent)

规定点的传出切线的角度。有用值范围大约介于-150到150之间。

插值模式(InterpMode)

允许用户在各种适用于曲线的插值模式间进行选择。请参阅曲线编辑器用户指南 页面,以获取更多详细信息。

DistributionFloatUniformCurve

此类型用于为随时间推移在图表编辑器上绘制的属性提供值的范围。在每个时间点上,选择最小值曲线和最大值曲线范围内的随机值。

FloatUniformCurve_graph.png

  1. 最小值曲线——它定义随时间推移变化的最小数值。

  2. 最大值曲线——它定义随时间推移变化的最大数值。

  3. 产生的范围——在每个时间点上,从中选择最终值的图表区域。

选择它作为类型时,你将看到以下对话框,可使用它编辑数值:

FloatUniformCurve.png

与ConstantCurve类型一样,建议通过曲线编辑器编辑此Distribution类型。

DistributionFloatUniformCurve属性

项目

说明

点(Points)

包含曲线上所有点的数组属性。你可以使用 AddPoint_button.png 按钮在此处创建点。但是,在图表编辑器中添加点通常更简单更直观。

点属性

InVal

点在图表横轴上的位置,通常作为时间计算。

OutVal

点在图表纵轴上的位置,通常作为属性值计算。对于均匀曲线(Uniform Curve),此属性将包含X和Y值,分别代表输出的最小值和最大值。

到达切线(ArriveTangent)

规定点的传入切线的角度(X和Y(最小值和最大值))。有用值范围大约介于-150到150之间。

离开切线(LeaveTangent)

规定点的传出切线的角度(X和Y(最小值和最大值))。有用值范围大约介于-150到150之间。

插值模式(InterpMode)

允许用户在各种适用于曲线的插值模式间进行选择。请参阅曲线编辑器用户指南 页面,以获取更多详细信息。

DistributionFloatParticleParam

此类型用于允许对发射器参数进行简单的游戏代码设置,以便能够通过代码、蓝图或Matinee操纵它们。它提供将输入值从一个范围映射到另一个范围的功能,允许你在“级联-空间”中调整参数,而无需更新游戏性代码。在游戏性编程人员确定既定的输入(Input)范围之后,美工便可以通过输出(Output)映射自由调整属性了。

选择它作为类型时,你将看到以下对话框,可使用它编辑数值:

FloatParticleParam.png

输入(Input)到输出(Output)将被线性重新映射,因此:MinInput为0时MaxInput为5,MinOutput为0时MaxOutput为100,这意味着如果你传递2作为输入,则输出将为40。

如果设置映射到多个输出的简单0-1输入,它非常有用,因为你可以通过名称共享粒子参数变量。例如,你可以将SpawnRate设置为由粒子参数Foo(Particle Parameter Foo)驱动,并从0-1范围中设置输入,从20-200范围中设置输出,并且,你也可以在InitialSize中使用Foo并将输入设置为相同的数值,但从10-20范围中设置输出。

编程人员将编写与以下类似的代码:

ParticleComponent->SetFloatParameter('MyParameter', CurrentParameter);

DistributionFloatParticleParameter属性

项目

说明

参数名称(Parameter Name)

在代码或蓝图脚本中引用参数时使用的名称。

最小输入(Min Input)

可以传入(通常通过游戏代码)Distribution的最小数值。

最大输入(Max Input)

可以传入(通常通过游戏代码)Distribution的最大数值。

最小输出(Min Output)

可以输出到(通过从输入范围映射)级联的最小数值。

最大输出(Max Output)

可以输出到(通过从输入范围映射)级联的最大数值。

参数模式(Param Mode)

它控制使用输入值的方式。请参阅下面的“参数模式(Param Mode)标记”表。

常量(Constant)

为系统规定不存在输入时的默认值。

参数模式(Param Mode)标记

说明

DPM_Normal

不对输入值产生影响。

DPM_Abs

使用重新映射前输入值的绝对值。

DPM_Direct

直接使用输入值(不重新映射)。

矢量Distribution

当存在美术控制的基于矢量的属性时,使用矢量Distribution。例如,粒子的大小或速度。

DistributionVectorConstant

此类型用于为常量属性提供值。

VectorConstant_Graph.png

  1. X轴数值

  2. Y轴数值

  3. Z轴数值

选择它作为类型时,你将看到以下对话框,可使用它编辑数值:

VectorConstant.png

锁定轴(LockedAxes)标记允许用户将一个轴的数值锁定到另一个轴的数值。支持以下标记:

DistributionVectorConstant属性

项目

说明

常量(Constant)

给定属性的静态和不变数量。矢量值,包含X、Y和Z的数值。

锁定轴(Locked Axes)

它将3个轴中的一个轴锁定到另一个轴,从而简化Distribution。请参阅下面的“锁定轴(Locked Axes)标记”表。

锁定轴(Locked Axes)标记

说明

EDVLF_None

不将任何一个轴锁定到另一个轴。

EDVLF_XY

将Y轴锁定到X轴数值。

EDVLF_XZ

将Z轴锁定到X轴数值。

EDVLF_YZ

将Z轴锁定到Y轴数值。

EDVLF_XYZ

将Y和Z轴锁定到X轴数值。

注意:当锁定标记处于激活状态时,值在属性窗口设置中不反映。即,当LockedAxes标记设置为EDVLF_XY时,Y值不显示X内容。仅当从Distribution(在代码中)检索数值时,才会应用锁定轴数值。

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)

随机计算的最小数值。使用“矢量均匀(Vector Uniform)”时,它将包含X、Y和Z值。

最大值(Max)

随机计算的最大数值。使用“矢量均匀(Vector Uniform)”时,它将包含X、Y和Z值。

使用极值(Use Extremes)

指示也应使用“最小值(Min)”和“最大值(Max)”数值,而非仅使用它们之间的数值。

锁定轴(Locked Axes)标记

说明

EDVLF_None

不将任何一个轴锁定到另一个轴。

EDVLF_XY

将Y轴锁定到X轴数值。

EDVLF_XZ

将Z轴锁定到X轴数值。

EDVLF_YZ

将Z轴锁定到Y轴数值。

EDVLF_XYZ

将Y和Z轴锁定到X轴数值。

镜像标记允许将最小值(Min)/最大值(Max)数值镜像给该值的每个组件。支持以下镜像标记:

镜像标记(MirrorFlags)

说明

EDVMF_Same

也将最大值(Max)数值应用给最小值(Min)。

EDVMF_Different

按照设置使用每个值。

EDVMF_Mirror

最小值(Min)数值为最大值(Max)的负值(最大值(Max) * -1)。

紧挨在“镜像标记(Mirror Flags)”属性下面的0、1和2分别代表X、Y和Z轴。

DistributionVectorConstantCurve

此类型用于为随时间推移在图表编辑器上绘制的属性提供值。时间是绝对的(在发射器生命周期期间)还是相对的(在单个粒子的生命周期期间)取决于使用该Distribution的模块。

VectorConstantCurve_Graph.png

  1. X轴曲线点0

  2. X轴曲线点1

  3. X轴插值曲线

  4. Y轴曲线点0

  5. Y轴曲线点1

  6. Y轴插值曲线

  7. Z轴曲线点0

  8. Z轴曲线点1

  9. Z轴插值曲线

选择它作为类型时,你将看到以下对话框,可使用它编辑数值:

VectorConstantCurve.png

与FloatConstantCurve类型一样,建议通过曲线编辑器编辑此Distribution类型。

注意:当在使用ConstantCurve Distribution时将LockedAxes标记设置为 EDVLF_None 以外的值时,曲线编辑器将不显示锁定的轴,以避免混淆。例如,如果将标记设置为 EDVLF_XY,曲线编辑器将仅包含X和Z曲线。

DistributionFloatConstantCurve属性

项目

说明

点(Points)

包含曲线上所有点的数组属性。你可以使用 AddPoint_button.png 按钮在此处创建点。但是,在图表编辑器中添加点通常更简单更直观。

点属性

InVal

点在图表横轴上的位置,通常作为时间计算。

OutVal

点在图表纵轴上的位置,通常作为属性值计算。

到达切线(ArriveTangent)

规定点的传入切线的角度。有用值范围大约介于-150到150之间。

离开切线(LeaveTangent)

规定点的传出切线的角度。有用值范围大约介于-150到150之间。

插值模式(InterpMode)

允许用户在各种适用于曲线的插值模式间进行选择。请参阅曲线编辑器用户指南 页面,以获取更多详细信息。

锁定轴(Locked Axes)标记

说明

EDVLF_None

不将任何一个轴锁定到另一个轴。

EDVLF_XY

将Y轴锁定到X轴数值。

EDVLF_XZ

将Z轴锁定到X轴数值。

EDVLF_YZ

将Z轴锁定到Y轴数值。

EDVLF_XYZ

将Y和Z轴锁定到X轴数值。

DistributionVectorUniformCurve

此类型用于为随时间推移在图表编辑器上绘制的属性提供值的范围。将从最小值(Min)和最大值(Max)曲线之间随机选择每个轴的最终值。

VectorUniformCurve_graph.png

  1. X轴最小值(Min)曲线

  2. X轴最大值(Max)曲线

  3. X轴随机插值范围

  4. Y轴最小值(Min)曲线

  5. Y轴最大值(Max)曲线

  6. Y轴随机插值范围

  7. Z轴最小值(Min)曲线

  8. Z轴最大值(Max)曲线

  9. Z轴随机插值范围

选择它作为类型时,你将看到以下对话框,可使用它编辑数值:

VectorUniformCurve.png

DistributionVectorUniformCurve属性

项目

说明

点(Points)

包含曲线上所有点的数组属性。你可以使用 AddPoint_button.png 按钮在此处创建点。但是,在图表编辑器中添加点通常更简单更直观。

点属性

InVal

点在图表横轴上的位置,通常作为时间计算。

OutVal

点在图表纵轴上的位置,通常作为属性值计算。对于浮点均匀曲线(Vector Uniform Curve),此属性将包含V1和V2数值,分别代表输出的最小值和最大值。每一个值都包含X、Y和Z轴数值。

到达曲线(ArriveTangent)

为V1和V2(最小值和最大值)的点提供传入切线的角度,每个都包含X、Y和Z数值。有用数值大约介于-150到150之间。对于浮点均匀曲线(Vector Uniform Curve),此属性将包含V1和V2数值,分别代表输出的最小值和最大值。每一个值都包含X、Y和Z轴数值。

离开切线(LeaveTangent)

规定点的传出切线的角度(X和Y(最小值和最大值))。有用值范围大约介于-150到150之间。对于浮点均匀曲线(Vector Uniform Curve),此属性将包含V1和V2数值,分别代表输出的最小值和最大值。每一个值都包含X、Y和Z轴数值。

插值模式(InterpMode)

允许用户在各种适用于曲线的插值模式间进行选择。请参阅曲线编辑器用户指南 页面,以获取更多详细信息。

使用极值(Use Extremes)

指示也应使用“最小值(Min)”和“最大值(Max)”数值,而非仅使用它们之间的数值。

锁定轴(Locked Axes)标记

说明

EDVLF_None

不将任何一个轴锁定到另一个轴。

EDVLF_XY

将Y轴锁定到X轴数值。

EDVLF_XZ

将Z轴锁定到X轴数值。

EDVLF_YZ

将Z轴锁定到Y轴数值。

EDVLF_XYZ

将Y和Z轴锁定到X轴数值。

镜像标记允许将最小值(Min)/最大值(Max)数值镜像给该值的每个组件。支持以下镜像标记:

镜像标记(MirrorFlags)

说明

EDVMF_Same

也将最大值(Max)数值应用给最小值(Min)。

EDVMF_Different

按照设置使用每个值。

EDVMF_Mirror

最小值(Min)数值为最大值(Max)的负值(最大值(Max) * -1)。

与其它曲线类型一样,建议通过曲线编辑器编辑此Distribution类型。

DistributionVectorParticleParam

此类型是上面说明的FloatParticleParam类型的等效矢量类型。它允许通过代码、蓝图或Matinee操纵数值。

选择它作为类型时,你将看到以下对话框,可使用它编辑数值:

VectorParticleParam.png

DistributionFloatParticleParameter属性

项目

说明

参数名称(Parameter Name)

在代码或蓝图脚本中引用参数时使用的名称。

最小输入(Min Input)

可以传入(通常通过游戏代码)Distribution的最小数值。

最大输入(Max Input)

可以传入(通常通过游戏代码)Distribution的最大数值。

最小输出(Min Output)

可以输出到(通过从输入范围映射)级联的最小数值。

最大输出(Max Output)

可以输出到(通过从输入范围映射)级联的最大数值。

参数模式(Param Mode)

它控制使用输入值的方式。请参阅下面的“参数模式(Param Mode)标记”表。

常量(Constant)

为系统规定不存在输入时的默认值。

锁定轴(Locked Axes)标记

说明

EDVLF_None

不将任何一个轴锁定到另一个轴。

EDVLF_XY

将Y轴锁定到X轴数值。

EDVLF_XZ

将Z轴锁定到X轴数值。

EDVLF_YZ

将Z轴锁定到Y轴数值。

EDVLF_XYZ

将Y和Z轴锁定到X轴数值。

参数模式(Param Mode)标记

说明

DPM_Normal

不对输入值产生影响。

DPM_Abs

使用重新映射前输入值的绝对值。

DPM_Direct

直接使用输入值(不重新映射)。