返回首页 >> Maya文档 >> maya在对象的局部空间中应用力

在对象的局部空间中应用力


动力可影响世界空间坐标系中的 NURBS 和多边形对象。无论您如何旋转圆锥体,例如,使用默认选项设置的重力场沿世界空间的 Y 轴向下移动圆锥体。

默认情况下,场还会影响世界空间中的粒子对象。但是,您可以促使场影响粒子对象局部空间中的粒子对象。例如,可以使重力场向粒子对象的局部 Y 轴下方(而不是世界空间的 Y 轴下方)拉动粒子对象。

请参见世界中的力。

获取世界位置、速度和质心

粒子对象的位置、速度和质心属性包含局部空间值。(粒子对象的质心是其粒子的平均位置。)有时,您需要了解粒子对象的世界空间值。

例如,假定您对粒子对象应用重力以使其穿过玻璃地板。您还可以为粒子对象的“旋转 Y”(Rotate Y)属性设置关键帧,使粒子对象在下落时围绕原点的 Y 轴进行旋转。假设您需要知道粒子的确切世界空间位置,这样才能在粒子通过地板时更改它们的颜色。无法通过位置属性获取该信息,原因是该属性包含局部空间位置。

可以从与位置、速度和质心对应的三个世界空间属性获取该信息:

worldPosition
worldVelocity
worldCentroid
“centroid”属性是一个复合属性,由“centroidX”、“centroidY”和“centroidZ”属性组成。“worldCentroid”属性是一个复合属性,由“worldCentroidX”、“worldCentroidY”和“worldCentroidZ”属性组成。

可以在“连接编辑器”(Connection Editor)中将“worldPosition”、“worldVelocity”和“worldCentroid”的值作为输入读取。可以在表达式中读取“worldCentroidX”、“worldCentroidY”和“worldCentroidZ”的值。您不能设置这些属性的值。

“worldVelocity”包含当前帧与上一帧的“worldPosition”之间的差。worldVelocity 受对象(和对象父级)的“平移”(Scale)、“旋转”(Rotate)和“缩放”(Scale)值的影响,因此它包括所应用的关键帧的效果。

如果需要将粒子对象的世界空间速度转换为局部空间速度,请注意,您可以使用粒子对象的“worldVelocityInObjectSpace”属性。

没有 worldAcceleration 属性。

通过属性连接设置输入力

连接到粒子对象的每个场或弹簧将其向量力的值写入到对象中的“输入力”(Input Force)[]”属性中。该属性是向量数组。连接到对象的每个场都有一个“输入力”(Input Force)数组。例如,连接到三个场的对象具有“输入力 [0]”(Input Force [0])、“输入力 [1]”(Input Force [1])和“输入力 [2]”(Input Force [2])。数组中的每个向量代表一个粒子的力。

您可以使用“连接编辑器”(Connection Editor)或 API 将一个粒子形状属性传送到另一个“输入力”(Input Force)[]”属性。属性必须是一个向量数组,例如速度。

将属性连接到“输入力”(Input Force)[0] 时,如果两个粒子对象具有相同数量的粒子,则输入到“输入力”(Input Force)[0] 的值将一一匹配。如果包含“输入力”(Input Force)[0]”的对象的粒子少于提供输入的对象的粒子,则其余的值将被忽略。如果比提供输入的对象的粒子多,则重复最后一个。

“输入力”(Input Force)[]”也存在于刚体的形状节点中。和粒子一样,它也适用于 CV 或顶点。

请将您关于此页内容的评论发送给我们