Coordinates
坐标
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 ]
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 ° ]
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).
这个值表示对象与世界坐标系的角度,如果对象位于层次结构中,则表示父坐标系。
秩序
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:
另一个选项,有助于确定旋转顺序是正确的是框架旋转选项。启用此选项并激活旋转工具:
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 ° 或接近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
四元数旋转
Tip: 提示:常规
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: 提示:例子
Take a look at the following example:
看看下面的例子:
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
冻结转换
全部冻结
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 main coordinates will be offset with the frozen coordinates. Subsequently all frozen coordinates will be reset to 0.
主坐标将被冻结的坐标所偏移。随后所有冻结的坐标将被重置为0。
Tip: 提示:P [ XYZ m ] s [ XYZ ] r [ HPB ° ]
These are the frozen coordinates that are taken over from the parent hierarchy.
这些是从父层次结构中接管的冻结坐标。
Tip: 提示:冻结 PFreeze s Freeze r
These buttons can each be used to individually freeze the three primary coordinates:
这些按钮可以单独用来冻结三个主要坐标: