|
||
<-previous |
|
|
the objects' coordinates settings |
||
|
||
This is where you define some additional information on what to
do with the object's coordinates, in other words: it's PSR data. First off, you choose here if you want to use local or
global coordinates. Local coordinates are what you see in the Coordinates
Manager when it is set to 'Object' instead of 'World'. It's the
coordinates of the object relative to it's direct parent. Global
coordinates, on the other hand, takes the object's coordinates
in world space, in other words, relative to the world's axes.
They're what you see in the coordinates manager when it's set
to 'World' instead of 'Object'. |
||
the nodes
Each of the objects has two nodes in Puppeteer, which are nothing more than two locations in 3D space. Think of them as special settings of the coordinates manager, each having their own position, scale and rotation. When Puppeteer is linking two objects, these nodes of the two objects are mapped together. In other words, Puppeteer will look at the difference between the source object's current state (it's position, scale and rotation), and the ones set in it's two nodes. It then takes this difference to the destination object, and uses those two nodes to calculate the state the destination object should be in. So when the source object is exactly on the coordinates described in node 2, the destination object will have to be in the exact coordinates described in the destination's node 2. Of course, it only works like this if you choose to directly link both objects position channels to eachother. If you start feeding the source object's position to the destination object's scale, the source nodes' position settings will be mapped onto the destination nodes' scale settings. A quick example to clearify the main use of this: Imagine you have two objects, A and B, and you want object B to move twice as fast as object A on the Y axis. In other words: for each 100m object A moves in Y, you want object B to move 200m in Y. This is exactly what the nodes do. You set the source nodes' Y-positions to 0m and 100m, and the destination nodes' Y positions to 0m and 200m. You could also have set the destination nodes' Y position to 0m and -200m and have object B move downwards twice as fast as object A moves upwards. |
||
|
||
To manually set an object's nodes, simply click on the appropriate
node button in the object's coordinates section (so node1 or node 2). This takes you to a dialog which looks a lot like Cinema4D's
Coordinates Manager, with some extra bells and whistles. First
off, there are four tabs in this window, and it depends on which
button you have clicked which tab is currently in the foreground.
The tabs' names are [S] node 1, [S] node 2, [D] node 1 and [D] node 2, in which [S] stands for Source and [D] stands for Destination. This allows you to quickly compare the
four nodes to eachother. Other than the tabs, the nodes dialog
also allows you to use the current coordinates of the source or
destination object by pressing the button Current. Of course, you can set the coordinates to global if you wish, just like in the main Puppeteer dialog. Also, the
button Defaults sets the nodes back to the default Puppeteer values, which are
more than adequate in a lot of cases. Back in the main Puppeteer interface, you'll see that the Defaults button is found here as well. It does exactly the same as the one in the nodes dialog. The real power of the nodes becomes apparent when you start using the little C buttons next to them, which work the same as the Current buttons in the nodes dialog. They do nothing more than copying the object's current position, scale and rotation to the appropriate node. But this simple action alows you to move both the source and destination object to one 'node' by hand, press C, put the objects on the other node, press the other C, and their relationship is fixed! Imagine you want a slider to rotate a bone. Assuming that you have already set up the correct linking and filter settings (more on these later), and the tag is deactivated: simply move the slider into it's 'bottom' position, rotate the bone like it should be at that slider position, press the C buttons of both the objects' 1st node. Next, you move the slider to it's upper position, rotate the bone to how it should be rotated like in that situation, and press the remaining two C buttons. Next, re-activate the tag. Whallah! Instant slider! There is another way to define nodes though. Directly below the object definition area's, there's a checkbox called Use Timeline for Nodes. With this option turned on, the nodes buttons in the objects' coordinates settings get greyed out. |
||
|
||
What this allows you to do is that, instead of storing the nodes'
data directly inside the Puppeteer tag, you can point the tag
towards a certain point in time, and tell it that the recorded
position, rotation and scale it finds on the defined objects there,
is what should be in the objects' nodes. This has two very flexible
uses. First, it allows you to re-define the objects' nodes simply
by re-recording their position, rotation and scale at the appropriate
times in the timeline, without having to tell the tag that the
data has been changed. Second, this makes it extremely simple
to re-use tags across different objects in the same document.
If you take care that all the object checked and influenced by
Puppeteer have their two appropriate nodes recorded at the same
times in the timeline, simply copying the Puppeteer tag to another
object will automatically update it to the appropriate nodes.
Maybe a quick example will better illustrate the useablilty of
this. feedback
|
||
<-previous |
|