Cinema 4D Cinema 4D Prime Character Menu Character Tags Constraint
Function available in CINEMA 4D Prime, Visualize, Broadcast, Studio & BodyPaint 3D
Constraint

Basic PSR Aim Up-Vector Parent Clamp Spring Mirror

Parent

This constraint makes the object behave as if the target were its parent. If you change the target's coordinates, the object will behave as if it were a child of the target in the Object Manager.

This Constraint is well suited for the creation of production or assembly line animations in which an object is passed on to another location:

By defining rotating robot arms as targets (with animated weighting) for the Parent object Constraint, the object will be passed as a quasi Child object from one arm to the next. This function is also know as "space switching" or "dynamic parenting".

RELEASE 18

In Cinema 4D R18, constraints have been improved for Parent objects. The workflow has been optimized and several less desirable aspects have been removed (e.g., you can not easily jump back-and-forth in the Timeline). This is particularly relevant for animated Constraint tags that are assigned to a Child object. In previous releases, this would produce faulty results. This is no longer the case if the procedure described below is followed.

Let’s assume that several robot arms were created that have to take a sphere and pass it on to the next arm. The Constraint tag is assigned to a sphere:

  • There is a total of 3 robot arms, i.e., 3 targets. One already exists, so 2 more have to be created. In the Attribute Manager, assign the 3 robot arms to the respective 3 Target fields.
  • Move the Timeslider to the start of the animation and position the sphere on the first arm.
  • Click on the downward arrow at the right of the Update Local Offsets button and Ctrl/Cmd+click on Set 1.
  • Drag the Timeslider to a point in the animation at which the sphere can be passed on to the second arm. Ctrl/Cmd+click on Set 2 in the Update Local Offsets drop-down menu.
  • Drag the Timeslider to a point in the animation at which the sphere can be passed on to the third arm. Ctrl/Cmd+click on Set 3 in the Update Local Offsets drop-down menu.

Done. Keyframes have be set for all necessary weighting and coordinates.

The final scene can be opened here:


Note that even though the sphere moves with the robot arms via the Constraint tag, it can still be animated in a normal fashion relative to this movement.

A few more tips for working with Child object constraints:

  • In the course of an animation it is often so that the object to be constrained should only temporarily belong to a Parent object and otherwise not belong to any other object (imagine a robot arm that releases the object to be constrained and returns to its original position: the released object is then "abandoned" until it is taken up by a new target. In such an instance, a Null object can be defined as a target, in whose "custody" the object to be constrained will remain).
  • If you made a mistake in the middle of the animation (keyframes exist later in the animation), e.g., by defining a false target, it can be necessary to delete subsequent keyframes and re-create the animation from the current location. Changing previous targets will affect subsequent local offsets. If they already have keyframes set, no adjustments will be made.

Strength [-∞..+∞%]

Defines the overall strength of the constraint's influence on the object taking all targets in the Targets group into account.

Use Frozen

If enabled (recommended), the Freeze Transformations coordinates of the constrained object (when it is affected by a target) will be used instead of the local coordinates, allowing you to keep clean local coordinates (Coord tab) for keyframing or to set up Expressions.

When the target is moved, the frozen coordinates (in the respective constrained object’s Coord tab) will change accordingly. If this option is disabled, the object coordinates would change accordingly. Modifying this option at a later point will result in faulty animations. Only change this option’s state at the start of the Child object animation - if at all.

Note also, when baking the constrained object that only the "normal" coordinates can be baked (this option should be disabled before baking).

Auto Reset (Legacy)

Tip:
This option is only available for reasons of compatability.

Will record internally and automatically the object's initial state, to which it can be returned. Disabling this option can cause your object to lose its initial orientation, position and scale if a frame is skipped or if you scrub the animation backward. It can be deactivated if you wish to work the old way, by recording keyframes before any parent switch.

Note that changing the object's initial state when this option is enabled can only be done at frame 0. Any other frame will not take into account the changes.

Interactive Transform

If the Use Frozen option is disabled, the constrained object cannot be moved in the Viewport. This is where Interactive Transform comes into play, which, if enabled, lets you move the constrained object. The Local Offset coordinates will be adjusted accordingly.

 Offset

In this group you can enter an offset to the coordinates defined by the Child Object.

Maintain Original

Deactivate this option if you want to move, scale or rotate an object freely using the Constraint tag. If this option is active, the object will be bound to its Parent Object(with regard to the editable offset values).

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

Use these values to define the amount of offset an object should have to the coordinates of its Parent Object. The Maintain Original option must be active.

 Targets

Here you can add targets that should act as the object's parent.

Add

Adds a new target including all appropriate settings.

Remove

Deletes the last target you added.

P
S
R

Here you can control whether the target affects position, scale, rotation or any combination of the three.

Weight [-∞..+∞%]

Controls the strength of the target's influence. This parameter is only available if two or more targets are defined. This is because if only one target is defined, its strength is controlled by the Weight value at the top of the tab. If more than one target is defined, lowering this value means the other targets will have more influence.

This setting is primarily used to switch Child objects via (rapid) animation between 0% and 100%. The active object has 100% and all others 0%.

RELEASE 18

 Local Offset

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

These local coordinates define the offset to the target object. This offset is defined here when a target has been defined. These local coordinates will automatically be assigned keyframes (normally you will not have to take any action yourself) if you Ctrl/Cmd+click on a target in the Update Local Offsets drop-down menu, as described above.

More information about the various coordinates:

Generally speaking, you can work in either frozen (Use Frozen option enabled) or relative (Use Frozen option disabled) mode. Frozen coordinates can be seen as a virtual, superordinate Null object.

  • In frozen mode, the frozen coordinates will be calculated based on the target coordinates and the local offset (these cannot be modified manually). The relative coordinates of the constrained object (Coord tab) can, if necessary, be used for subsequent animation.
  • In relative mode, the opposite is true. The frozen coordinates of the constrained object can be used for subsequent animation and the relative coordinates (Coord tab) cannot be modified manually.

This might sound somewhat complicated, which is why we added the buttons at the bottom of the menu. Simply follow the procedure described above and ignore the various coordinates for the most part.

These settings are, by the way, only accessible/visible if the Auto Reset (Legacy) option is disabled.

Target

Drag & drop the object you want to use as the target into this field.

RELEASE 18

Update Local Offsets

This drop-down menu contains the following options:

  • Update Local Offsets: Local offsets of all targets for constrained objects will be ascertained at the current point in the animation and recorded (but no keyframes will be added; this is what the Record Optimized button is for). This command should, for example, be used if you want to move a target (with the constrained object) in the Viewport. The local offsets of the other targets for the constrained object will no longer be correct.
  • A list of all defined targets will be displayed. Selecting a target will set the corresponding weighting to 100% and all other weighting to 0% (the local offset for the selected target will also be calculated and defined). You can switch back-and-forth between targets (this is explained in the Dynamic Parenting section), whereby only the currently selected target will exercise its effect.
  • Note also the special function Ctrl/Cmd key in the following.

    It’s practical application is described above.

Record Optimized

This drop-down menu offers two options:

  • Record Optimized: In contrast to Record All, only necessary keyframes (with Step key interpolation for an abrupt, clean transition from Parent to Child object) will be generated. What are necessary keyframes? If values change, a keyframe will be required. Keyframes between which no values change are mostly irrelevant.
  • Record All: A keyframe (with the pre-defined spline interpolation) will be generated for all weighting and local offset settings.

Note that Record Optimized will automatically be used if you Ctrl/Cmd+click on the Update Local Offsets button.