数据分布

提供灵活性的数据类型,允许常量值、在某个范围内的随机值、沿某个曲线的插值以及由参数驱动的数值。

Windows
MacOS
Linux

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

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

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback