Function available in CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D

Coordinate System

Here you decide in which coordinate system an operation will take place - in the object or world coordinate system.

Not all options work with both systems. Scaling of object axes for example can occur only within the object coordinate system.

The object coordinate system is the local system of an object, shown in the viewports by the colored axes: X (red), Y (green) and Z (blue). Each object has its own object coordinate system.

For each type of operation, Cinema 4D remembers the state of the coordinate system. For example, if you have used the Move tool while in the world coordinate system, and then changed to the Rotate tool, the setting switches from world to local. When you change back to Move, the program remembers that the world coordinate system was selected and changes from local to world.

The World Coordinate System is the parent coordinate system for all objects. It is displyed in the Viewport via the global axis and the global grid (lies on the World Coordinate System’s XZ plane). The Y axis always lies vertically. The World Coordinate System cannot be modified.

Internally, Cinema 4D works primarily in the HPB system. HPB is an abbreviation for Heading, Pitch and Bank. However, any rotation system can be defined (see Order).

You may have come across the terms heading, pitch and bank in connection with aircraft. An airplane rotates left or right to change its heading; up or down to changes its pitch; and rolls to change its bank.

When modeling, only the settings of the modeling axis will apply, independent of which coordinate system you have applied.

When you are changing angles you may find it helpful to think of an airplane.

Unlike HPB, XYZ rotations are non-commutative. In other words, the order in which you rotate the axes matters. For example, rotating by the X value then the Y value may produce a different result to rotating Y first. This makes the XYZ system unsuitable for animation.

On the other hand, in the HPB system the angles are disassociated. You can first change the heading and then the pitch, or the other way round, and you will still get the same result.

Moreover, the HPB angles create naturally interpolated movements that are particularly useful for airplanes, cars or cameras. When you rotate around a particular axis in the XYZ system this may cause all three HPB components to change. The result is a tumbling animation. With the HPB system this cannot happen.

Although the HPB system is excellent for animation, it is useless when it comes to constructing objects. HPB angles are specified relative to the parent system, which demands a high level of abstraction.

Note

If this part of the chapter has seemed complicated, you are right — it is! Angle systems are not easy to understand. However, Cinema 4D is one of the few programs to fully integrate both object hierarchies and local coordinates.

Other programs tend to compromise on functionality; either they do not have real object hierarchies, or they have a separate modeler and animator with limited integration, or they have difficulty in creating complex, hierarchical animation.

Cinema 4D is a fully integrated product, providing you with a multitude of fascinating possibilities and features that simply are not possible in many other packages. Let your imagination take over!

Why use HPB?

In this section you will learn more about why Cinema 4D uses the HPB system. However, if you are the kind of artist who hates math, you will want to skip these optional details.

Some people do not understand why rotations around the Z-axis (the bank angle) are performed in the object system whereas rotations around Y and X axes (heading and pitch) are always made in the world system. With animation, even switching to XYZ rotations does not help since Cinema 4D is using the HPB system internally.

The HPB system is a Euler system where the HPB angles do not refer in principle to the axes of the object itself.

Consider this example

Take an object whose angle system is initially 0/0/0.

First make a rotation of 30° around heading, so that the X and Z axes of the object system are now rotated compared to the X and Z axes of the world system. Call these new axes X and Z (Y is identical to Y).

A pitch of 20° now causes the object system to be rotated upward around the object system’s X axis. Z becomes Z and Y becomes Y (now X and X are identical).

Lastly, we rotate around a bank angle of -45°. This rotation causes the rotated object system to be tilted around the Z axis. X becomes X and Y becomes Y (this time Z and Z are identical).

The object has now achieved an angle system of 30/20/-45 by consecutive rotations around H, P and B on a system in each case already rotated. Thus, HPB rotates neither around object nor around world axes. That bank is identical to a rotation around an object axis is purely coincidental. There are several different Euler systems, each one with a particular rotation order.

While this all seems rather impractical, the Euler system has a major advantage: Rotations of objects are decoupled from one another as much as possible, which is not the case with rotations around object axes. Heading does not affect bank, bank does not affect pitch. Imagine if the X position of an object always affected the Y and Z positions…

A further example clarifies the decoupling problem

Suppose for a moment that Cinema 4D does not use Euler angles. Imagine a point on the X axis in position 100/0/0.

- Rotate the point 90° around the Y axis. It then lies exactly on the Z axis at 0/0/100. Now keep rotating, this time for 30° around the X axis. The point now lies in the ZY plane at 0/87/50.
- So far, so good. Now, however, you reverse the rotation order. The point at 100/0/0 is still at the position 100/0/0 after a rotation of 30° around the X axis. Subsequently, you rotate again around the Y axis for 90°. The point is now at 0/0/100, a completely different position.

So, due to the mathematical properties of rotations, the sequence of rotations around the object axes is not commutative (i.e. rotation A plus rotation B does not equal rotation B plus rotation A). This leads to unexpected results with animation.

And finally …

This example should clarify why Cinema 4D uses the Euler system. You will find this system easy to use once you are familiar with it.