Polygon Object 多边形对象Basic 基础Coord.

Coordinates

坐标

P[XYZ m]

P [ XYZ m ]

This value represents the position of the object in relation to the world coordinate system, or the parent coordinate system if the object lies within a hierarchy (see also Coordinate Manager).

这个值表示对象相对于世界坐标系的位置,如果对象位于层次结构中,则表示父坐标系。

Note also the Expanded Formula Entry by Multiple Selections section (you can enter forumulas in ANY value field, e.g., to position multiple objects accordingly).

还要注意多重选择的扩展公式输入部分(你可以在 ANY 值字段中输入 forumulas,例如,相应地放置多个对象)。

S[XYZ ]

S [ XYZ ]

This value represents the scale of the object in relation to the world coordinate system, or the parent coordinate system if the object lies within a hierarchy (see also Coordinate Manager).

这个值表示物体相对于世界坐标系的比例,如果物体位于层次结构中,则表示父坐标系。

Modifying the scale of the object using this value equates to scaling in Use Object Axis mode, i.e., the object’s axis system will be modified (see also The difference between the Use Object Tool and Use Model Tool modes).

使用此值修改对象的缩放等同于使用对象轴模式中的缩放,也就是说,对象的轴系统将被修改(参见使用对象工具和使用模型工具模式之间的区别)。

R[HPB °]

R [ HPB ° ]

This value represents the angle of the object in relation to the world coordinate system, or the parent coordinate system if the object lies within a hierarchy (see also Coordinate Manager).

这个值表示对象与世界坐标系的角度,如果对象位于层次结构中,则表示父坐标系。

Order

秩序

This selection menu is only relevant for animators. The options in this menu can minimize the feared "gimbal locks".

这个选择菜单只适用于动画师。这个菜单中的选项可以最小化令人恐惧的“框架锁”。

Take a look at the following example problem:

看看下面这个问题:

We have a character set up for animation with complex hierarchies. Let’s say you want to animate the shoulder joint of the right arm in the front view with a presumably simple downward rotation. So we create keyframes for the fingertips in the up position and in the down position. If we now play the animation back and view it from the top, we will see that, instead of the expected downward movement only, the arm swerves slightly as well (at the top right of the image above). This is an example of the "gimbal lock" effect. Here it is relatively weak; but in extreme cases it can result in completely abnormal, corkscrew-type movements.

我们为动画设置了一个具有复杂层次结构的角色。假设你想在前视图中用一个简单的向下旋转动画右臂的肩关节。所以我们为指尖创建关键帧在上面的位置和在下面的位置。如果我们现在回放动画并从顶部观看,我们将看到,手臂轻微转向(在上面图像的右上角) ,而不是预期的向下运动。这是“万向节锁”效果的一个例子。在这里,它相对较弱,但在极端情况下,它可能导致完全不正常的,螺旋形运动。

How can the proper rotation order help reduce this effect? All you have to do is have a look at the joint axes PRIOR to animating to determine which of the axes will rotate the least during the planned animation. In our example it’s the X axis marked on the left. Now select one of the Order options in which the X axis is on 2nd place. A very minimal and barely noticeable swerve still takes place but the result is far better than before.

正确的旋转顺序如何帮助减少这种影响?你所要做的就是在动画之前看一下关节轴,以确定在计划的动画期间哪个轴旋转得最少。在我们的例子中,它是左边标记的 x 轴。现在选择一个 Order 选项,其中 x 轴位于第二位。一个非常微小的,几乎看不出来的转向仍然在发生,但结果比以前好多了。

Another option that helps determine which rotation order is correct is the Gimballing Rotation option. Enable this option and activate the Rotate tool:

另一个选项,有助于确定旋转顺序是正确的是框架旋转选项。启用此选项并激活旋转工具:

Sequence 顺序 set to 开始HPB at left and to 在左边XYZ at right. 在右边

Using the rotation bands you can see directly (PRIOR to animating) whether or not the planned animation will work in a given direction. At the left of the image above you can see red, green and blue rotation bands arranged in a manner that appears to make a rotation (red arrow) impossible (none of the bands lies on the rotation plane). This animation will have problems with gimbal lock.

使用旋转带你可以直接看到(优先于动画)是否计划的动画将工作在一个给定的方向。在上面图像的左边,你可以看到红色、绿色和蓝色的旋转带排列方式似乎使得旋转(红色箭头)不可能(没有一个带位于旋转平面上)。这个动画将有问题万向节锁定。

Simply flip through the various Order options until one of the bands lies on or near the rotational plane (in the image above: blue). When you create the animation now you will have very few problems with gimbal lock.

简单地翻阅各种 Order 选项,直到其中一个带位于旋转平面上或靠近旋转平面(如上图: 蓝色)。当你创建动画现在你将有很少的问题与万向节锁定。

A few additional comments regarding gimbal lock:

还有一些关于万向节锁的评论:

It’s always risky if you set the 2nd (center value in marked range below) value to approx. 90° (or 270°) in correlation with the rotation order:

如果你将第二个值(下面标记范围内的中心值)设置为大约90 ° (或270 °)与旋转顺序相关,那么总是有风险的:

It’s best to always set the corresponding value at or near .

最好始终将相应的值设置为0 ° 或接近0 ° 。

Traditionally, this problem can also be circumvented by animating a Parent Null Object.

传统上,也可以通过动画一个父 Null 对象来规避这个问题。

Frozen selections, which can be found farther down in the dialog window, can also be helpful.

冻结的选择,可以在对话框窗口的下方找到,也是有帮助的。

Quaternion

Quaternion Rotation

四元数旋转

Tip: 提示:
The functionality of the Quaternion tag (which now only appears when older scenes are loaded (prior to R18) and can no longer be generated as a new tag) has not been integrated as an object property. Quaternion 标记的功能(现在只有在加载旧的场景时才会出现(在 R18之前) ,不能再作为新标记生成)没有作为对象属性集成

General

常规

Surely you’ve heard of the feared Gimbal Lock in conjunction with character animation, for example - or have even experienced it personally!

你肯定听说过令人恐惧的万向节锁结合人物动画,例如,或者甚至亲身经历过它!

Gimbal lock occurs when the rotational value has P +/- 90°, at which point heading H and banking B have the same effect. The result is that one of these dimensions is lost altogether and large rotational jumps occur even with the smallest of rotations.

当旋转角度为 p +/-90 ° 时发生万向节锁定,在这一点上标题 h 和倾斜 b 具有相同的效果。结果就是其中一个维度完全消失了,即使是最小的旋转,也会发生大的旋转跳跃。

The Quaternion function, which works only on rotation animations, can help.

仅对旋转动画有效的四元数函数可以提供帮助。

By default, Cinema 4D uses the Euler Rotation to interpolate objects’ rotations (Euler: gyro-system for decoupled rotation (HPB), interpolation in Euclidian (right-angle) 3D space).

默认情况下,Cinema 4D 使用欧拉旋转来插值物体的旋转(欧拉: 用于解耦旋转的陀螺系统(HPB) ,欧几里德(直角)3D 空间的插值)。

The Euler rotation’s individual components are interpolated individually, which means that the mean value from HPB (0, 0, 0) and HPB (60, 60, 60) would, for example, be HPB (30, 30, 30). The fact that a swing from 0, 0, 0 over 30, 30, 30 to 60, 60, 60 is not necessarily the shortest path can be tested in the Viewport.

欧拉旋转的各个分量被单独插值,这意味着来自 HPB (0,0,0)和 HPB (60,60,60)的平均值将是 HPB (30,30,30)。事实上,从0,0,0/30,30,30到60,60,60的波动并不一定是最短的路径,可以在 Viewport 中测试。

What is needed is an interpolation that takes the shortest path from A to B, which is also what the user would do if the path had to be animated manually.

我们需要的是一种插值方法,它采用从 a 到 b 的最短路径,如果路径必须手动动画,用户也会这样做。

This is exactly what Quaternions do. A Quaternion will take the path from 0, 0, 0 to 60, 60, 60 via 35.104 °, 22.83 °, 35.104 °.

这正是四元数所做的。一个四元数可以从0,0,0到60,60,60经过35.104 ° ,22.83 ° ,35.104 ° 。

The Quaternion creates no unnecessary motion and thus avoids Gimbal Lock.

四元数没有创建不必要的运动,从而避免万向节锁。

You might wonder why a Quaternion animation is not in principle applied to all objects. The reason is that Quaternion interpolation also bears disadvantages. The Quaternion works fine as long as the change in rotation is less than 180°. Beyond this, problems can occur due to the fact that the Quaternion will always look for the shortest possible path.

您可能想知道为什么四元数动画原则上不适用于所有对象。原因是四元数插值也存在缺点。只要旋转角度小于180 ° ,四元数就可以很好地工作。除此之外,由于四元数总是寻找最短的可能路径,因此可能会出现问题。

Tip: 提示:
The shortest path for a Quaternion Expression is always on a 3D sphere. This can be imagined as a rotation by the Quaternion interpolation around a fixed axis - the axis around which it can rotate with the smallest possible rotation. As a rule, this has nothing to do with the object axes and is different for each rotation. 四元数表达式的最短路径总是在3D 球体上。这可以被想象成一个旋转,由四元数插值围绕一个固定的轴-轴周围的轴可以旋转与最小可能的旋转。通常,这与物体轴无关,并且每次旋转都不同

Example

例子

Take a look at the following example:

看看下面的例子:

  1. An object needs to be rotated more than 180° around a given axis. 一个物体需要围绕给定的轴旋转180 ° 以上
  2. A keyframe is set for the initial state, the Timeslider is moved to the frame at which the rotation will end and the object is rotated and the motion is set with keyframes. So far so good. 为初始状态设置一个关键帧,将 Timeslider 移动到旋转将结束的帧,对象进行旋转,并用关键帧设置运动。到目前为止一切顺利
    Regardless of whether or not the Quaternion function is used, nothing will change for the initial and final states. The Quaternion interpolation will only use a different method for reaching the same goal. 无论是否使用了四元数函数,初始状态和最终状态都不会发生任何变化。四元数插值只会使用不同的方法来达到相同的目标
  3. First, let’s look at the traditional Euler rotation method in Cinema 4D: 首先,让我们看看 Cinema 4D 中传统的欧拉旋转方法:
    An object was rotated using keyframes (e.g., 使用关键帧来旋转物体(例如,B (bank) rotated 220°, which rotates the objects clockwise by 220°): 旋转220 ° ,物体顺时针旋转220 ° :
  4. Now for the Quaternion method. As was already stated, this interpolation method will always look for the shortest possible path to the final state. The shortest path in this example, however, is not (from the viewer’s angle of view) the clockwise rotation of 220° but a rotation of 140° in the exact opposite direction. 现在介绍四元数方法。如前所述,此插值方法将始终寻找到最终状态的最短可能路径。然而,在这个例子中,最短的路径不是(从观察者的视角来看)顺时针旋转220 ° ,而是在完全相反的方向上旋转140 °

Enabling the Quaternion Rotation option activates the Quaternion animation for that object (the keyframe values will be identical Euler values and only the interpolation between the values will change accordingly). If this option is disabled, the Euler animation method will be used.

启用四元数旋转选项将激活该对象的四元数动画(关键帧值将是相同的欧拉值,只有值之间的插值将相应改变)。如果禁用此选项,则将使用欧拉动画方法。

Note that Quaternion interpolation only works on local rotation tracks and not on frozen coordinates (see Freeze All).

注意,四元数插值只能在局部旋转轨道上工作,而不能在冻结的坐标上工作(请参阅冻结全部)。

A separate Quaternion Interpolation option is available in the keyframe properties that can be used to affect the interpolation temporally.

关键帧属性中有一个单独的四元数插值选项,可用于影响临时插值。

The following differences to Euler animations will result:

以下是欧拉动画的不同之处:

When should Quaternion animations be used, and when not?

什么时候应该使用四元数动画,什么时候不使用?

Quaternion animations should be used if:

应该使用四元数动画如果:

Quaternion animations should not be used if:

如果以下情况不应使用四元数动画:

Freeze Transformation

冻结转换

Freeze All

全部冻结

This function will primarily be used for animations only.

这个函数将主要用于动画。

In 3D, the freezing of objects is also referred to as "zeroing out" (or also "dual transformation") because the local coordinates Position and Rotation will each be set to 0 and Scale to 1 without changing the object’s position or orientation (in the following we will only refer to Position and Rotation). The same is achieved when you create a Null Object, position and orient it exactly as the object and make the object a Child object of the Null Object. This is the method that was used prior to R12 as a workaround.

在3D 中,物体的冻结也称为“归零”(或者也称为“双变换”) ,因为局部坐标 Position 和 Rotation 将分别设置为0和 Scale 为1,而不改变物体的位置或方向(在下文中我们只提及 Position 和 Rotation)。当你创建一个 Null 对象,定位它并将它定位为对象,并使对象成为 Null 对象的子对象时,也可以实现同样的效果。这就是在 R12之前作为变通方法使用的方法。

You can picture the freezing of objects as follows: Internally, a Null Object with the coordinates of the selected object will be created. These coordinates will be copied to the Freeze Transformation tab and will function as an offset to the null coordinates, i.e., any modifications made to the primary coordinates will be taken into account by the frozen coordinates.

您可以如下描绘对象的冻结: 在内部,将创建一个带有所选对象坐标的 Null 对象。这些坐标将被复制到“冻结变换”选项卡中,并作为空坐标的偏移量发挥作用,也就是说,对主坐标的任何修改都将被冻结的坐标所考虑。

So what can this be used for? To explain we have to begin with the basics:

那么,这个方法有什么用呢? 为了解释这个问题,我们必须从基础开始:

This scene contains two objects: Arm 2 has the local coodinates shown in the image above and is a Child object of Arm 1. The coordinates shown in the Attribute Manager are always local coordinates (they reflect the coordinate system of the Parent object in the hierarchy). So far so good.

这个场景包含两个对象: Arm 2具有上图所示的局部坐标,是 Arm 1的子对象。属性管理器中显示的坐标始终是本地坐标(它们反映了层次结构中父对象的坐标系)。到目前为止一切顺利。

We now want to animate Arm 2 so it rotates 45° around the X axis. Normally we would rotate the object using the rotation bands and set two keyframes:

我们现在要动画 Arm 2,使它围绕 x 轴旋转45 ° 。通常我们会使用旋转带旋转物体,并设置两个关键帧:

The result can be seen at the center of the image above. Even though the rotation took place around a single axis all three axes were modified. This is due to the fact that the Parent object’s coordinate system (Arm 1) has a different orientation from the local coordinates. Often, this behavior cannot be avoided. And in the Timeline, three F-Curves, that may have to be modified, don’t make things any easier. In addition, our example also suffers from animation Gimbal lock (see Quaternion Rotation), which results in a subsequent rotation of the arm.

结果可以在上面图像的中心看到。即使旋转发生在一个单一的轴上,所有三个轴都被修改。这是因为父对象的坐标系(Arm 1)与本地坐标有不同的方向。通常,这种行为是无法避免的。在时间轴里,三条 f 型曲线,可能需要修改,并没有让事情变得更简单。此外,我们的示例还受到动画框架锁定(请参阅四元数旋转)的影响,这会导致随后的手臂旋转。

All of these adverse effects can be avoided by freezing the transformation PRIOR to animating. This will copy the Position, Scale and Rotation values to the subordinate values of the same name and set the initial values back to 0 and 1, respectively.

所有这些不利影响可以避免冻结转化之前动画。这将把 Position、 Scale 和 Rotation 值复制到相同名称的从属值,并将初始值分别设置为0和1。

This bears the following advantages:

这具有以下优点:

The Freeze All command will freeze all coordinates (Position, Scale, Rotation), i.e., all primary coordinates will be set to 0.

冻结所有命令将冻结所有坐标(位置,比例尺,旋转) ,也就是说,所有主坐标将设置为0。

Tip: 提示:
The 这个Freeze Transformation 冻结转换 command ( 命令(Modes / Coordinates 模式/坐标 menu) does the same for all selected objects. 菜单)对所有选定的对象执行相同的操作

Unfreeze All

全部解冻

The main coordinates will be offset with the frozen coordinates. Subsequently all frozen coordinates will be reset to 0.

主坐标将被冻结的坐标所偏移。随后所有冻结的坐标将被重置为0。

Tip: 提示:
This can be done for all objects using a separate command (main menu: Modes / Coordinates / Unfreeze Transformation). 可以使用单独的命令(主菜单: Modes/Coordinates/Unfreeze Transformation)对所有对象执行此操作

P[XYZ m]
S[XYZ ]
R[HPB °]

P [ XYZ m ] s [ XYZ ] r [ HPB ° ]

These are the frozen coordinates that are taken over from the parent hierarchy.

这些是从父层次结构中接管的冻结坐标。

Tip: 提示:
The values for these frozen coordinates can be found in the XPresso Editor (Coordinates / Frozen Transformation) in the Input and Output Port menus. These coordinates can be modified here after being frozen, whereby the primary coordinates will remain set to 这些冻结坐标的值可以在 Input 和 Output Port 菜单中的 XPresso Editor (Coordinates/Frozen Transformation)中找到。这些坐标在被冻结后可以在这里修改,因此主坐标将保持设置为0.

Freeze P
Freeze S
Freeze R

冻结 PFreeze s Freeze r

These buttons can each be used to individually freeze the three primary coordinates:

这些按钮可以单独用来冻结三个主要坐标:

Tip: 提示:
Note that the frozen position coordinates can be modified as a result of freezing the rotation values, which is a normal effect. For example, if a Child object is rotated (comparable to freezing), the position of the Child object must change accordingly if it is to stay in the same relative position. 注意,冻结的位置坐标可以通过冻结旋转值来修改,这是一种正常的效果。例如,如果旋转子对象(类似于冻结) ,则子对象的位置必须相应地改变,否则它将保持相对位置不变