The Source object can be seen as the input object. It's the object you're going
to be using to influence the Destination object, which, in turn, can be seen as the output object. In Puppeteer,
the source and destination objects can actually be the same object!
You can, for example, use Puppeteer to make an object rotate in
P by 90 degrees for every 100m it moves in Z.
You define the source and destination object in the upper-left and upper-right area of the Puppeteer window. There you can choose various methods of definition. With the exception of Custom, these are all relative methods, which take the object the Puppeteer tag is attached to into account.
The method This object refers to the object the Puppeteer tag is attached to, plain
and simple. The other options: Parent object, Child object, Previous object and Next object, all work relative to the object the tag is attached to. So Parent object will, for example, use the immediate parent of the object as
the source object. With all these four options, you can also set
a Level, with which you can broaden the scope of the option. For example, if you set the source object to Next object, and the Level to 4, Puppeteer will use the fourth direct neighbour of the object the Puppeteer tag is attached to. Keep in mind, that Previous and Next will regard neighbouring objects as if they are folded in the Object Manager. They will look for objects in the same level of the hierarchy, not to their parent or childs. Likewise, Child will look only for the first child of an object, or the first child of that if the level has been set. It will disregard other childs of the object completely. Parent will take the direct parent, or the parent of that if the level has been set. It will disregard the neighbours of the parent object.
There are three other object types: Selected object, Custom, and
Custom in parent space. Selected object is more of a function than an object type. It will simply look which object is selected in the Object Manager, fill in it's name into Puppeteer's name field, and set the object type to Custom. Custom, then, is the mode you are most used to in Cinema4D. It simply
allows you to fill in a specific object name, and Puppeteer will
search all objects to find the first object with that exact name.
Custom in parent space is similar to Custom, in that it searches for an object with
a certain name. The difference with this type of search is that
the search can be limited to just the objects that are at the
same level, or deeper than, the object the tag is attached to.
So it will search all objects that are a child of the same parent
as the tag's object, and all their child objects. On top of this,
you can also set the Level parameter here. Setting it to two for example will search all
child objects (and their child objects, etc.) of the parent of
the parent (thus: two) of the tag's object, broadening the search
with one level in the hierarchy. The main use of this type of
object definition will become clear if you want to create a Puppeteer
driven structure, and use it multiple times in the same scene.
With Custom, each structure will find the first object in the
whole scene that has the desired name, so all structures will
use the control-object of the topmost structure! If set to Custom
in parent space, with the Level set correctly, you can limit the
search of each structure to just the objects within it's own hierarchy.
Another thing to keep in mind with Custom in parent space is that this search method uses a coffee-driven search algorithm, and thus can be a bit slower than the other object definition methods. In other words: only use if you really need to.
Next to the name field is an extra button: Set Custom. Like the Selected object option in the popup-menu, this will
fill in the name of the currently defined object (like the Parent,
or This object) and set the object type to Custom.
|
Between the two object definition areas are two extra settings:
Strength and Active.
Strength defines how strong the overall influence of the Puppeteer tag
is in relation to previous expression tags. Cinema4D calculates
all expressions on an object from left to right (that is, expression
tags that are on the left in the Object Manager's tag display
area are calculated first). Also, it calculates a document's timeline
first, and any expressions after that. Suppose you have an object
that is animated to rotate in H, and add a Puppeteer somewhere
that makes the same object rotate in H as well. The strength value
is then used to decide to what extent the Puppeteer tag influences
the object's H rotation. If it's set to 100%, Puppeteer will have
full influence. If it is set to 50%, the object's H rotation will
be a mix between the animated rotation and the rotation caused
by the Puppeteer tag. Similarly, adding another Puppeteer tag
to the right of the last tag, also affecting H rotation and set
to 50%, will mix the result of the last mix (50% animation, 50%
first Puppeteer tag) once again. Effectively this will result
in the animation having 25% influence, the first Puppeteer tag
also having 25% influence, and the second Puppeteer tag having
50% influence.
The Active checkbox allows you to completely turn off the Puppeteer tag.
It is advisable to turn Puppeteer off when doing the first settings,
like linking the correct data together and setting the curve (more
on both further below), and only turning it on when doing the
final tweaks. Since the Puppeteer interface is completely non-modal
and works in real-time, any mistake you make accutely changes
the destination object, and a mistake might mean inadvertedly
sending your object into infinity!
|