An IpoDriver is like an IpoCurve in that it controls properties of objects (locations, values, etc.), but instead of using a Bezier curve like standard Ipos, it allows you
to connect it to the properties of other Objects as input for the IpoDriver "channel". For example, IpoDrivers can be used to have a Shape Key be "driven" by the rotation of a Bone. Or the RGB colors of a Material are driven by the XYZ location of an Object.
Editing of Drivers happens in the IpoWindow. Here you will notice that the
channels (the right-hand portion of the window) now have an "active" channel indicator. To add a Driver, you have to use the "Transform Properties" Panel (Nkey). Using this panel, you can add or remove a Driver to the active channel, and use the buttons to fill in what kind of relationship you want to establish.
Note that any Ipo Channel can be driven by an Ipo Driver now, but that only Object transformation or Pose Bone transformations can be used as the driver itself. At this stage of Ipo Driver development, only the local transformation is taken into account. For Objects, that means the location/rotation/scale value as shown in "Transform Properties" Panel (without Parent or cnostraint transform).
For Pose Bones it means that only the Pose transform (change from rest position) is used as Driver information (alos as shown in Transform Property Panel in Pose Mode).
Mapping of Drivers
When an Ipo Channel is "driven", the mapping is by default one-to-one. It is only restricted by the already built-in limits for Channels; eg. for Material the "R" value maintains its original range of 0.0 to 1.0.
Alos note that when mapping rotations, the actual rotation values in Ipos are scaled down by a factor 10.0, i.e 180 degrees actually has a value of 18.0 in the Ipo Curve system. This is an ancient and somewhat arcane convention in Blender. It is a bit hidden, because the ruler (vertical as well as horizontal) displays the virtual values correctly. Only the Properties panel shows the actual value.
When you draw an IpoCurve in a Driven channel, this curve will define the mapping between the Driver output (horizontal) and Driven input (vertical, as usual), instead of the original IpoCurve behavior of directly representing the values. A nice new option to use is "Insert one-to-one curve" (press I-key, or in pulldown menu). This will alos zoom the display in exactly to fill the window, allowing easy edit. If you use this option with degrees, it will map a 180 degree rotation to a range of 1.0 unit.
Since the Drivers are integrated into the Ipo system, they will always be updated whenever their associated Ipo is evaluated. This happens, at the very least, on frame changes.
For interactive feedback, updates while transforming objects were added in these cases:
- Driven Object Ipos, by other Objects or Pose Bones
- Driven Shape Key Ipos, by other Objects or Pose Bones
You can alos insert Drivers on Action Ipos, but for now they are only evaluated on frame change.
- Drivers will alos get a text button, allowing a 1 line Python script to be executed.
- Make UI a bit less hidden... maybe with visualization in 3D?
- Allow global transform coordinates as Driver too.
- renaming Bones doesn't rename drivers
- (file) appending the Ipo won't append the linked driver Objects