What is the process to add a new driver to an already driven parameter. Can't link a new driver without overwriting the old one. Does it need expressions to work?
How to add more drivers to a multilinked object later?
-
Caveman
- Posts: 211
- Joined: 12 Feb 2011, 11:38
How to add more drivers to a multilinked object later?
Hi, there everyone.
What is the process to add a new driver to an already driven parameter. Can't link a new driver without overwriting the old one. Does it need expressions to work?
What is the process to add a new driver to an already driven parameter. Can't link a new driver without overwriting the old one. Does it need expressions to work?
-
caledonian_tartan
- Posts: 253
- Joined: 17 Feb 2010, 14:13
Re: How to add more drivers to a multilinked object later?
you could drive custom parameters and then link them to your parameter with a expression
SI 2015 @ WIN7-64
-
Caveman
- Posts: 211
- Joined: 12 Feb 2011, 11:38
Re: How to add more drivers to a multilinked object later?
Let's say, with a custom parameter I have translated a null, then later again, I want to translate the null's already linked or multilinked translate parameters, with a different custom parameter. How do I go about it 
-
Draise
- Posts: 894
- Joined: 09 Oct 2012, 18:48
- Skype: ondraise
- Location: Colombia
Re: How to add more drivers to a multilinked object later?
Well.. from the get go you'd need multi-expression links in the parameter editor. Instead of adding just a expression "Link" do the other option of multiple ones.
Or ICE. You can use drivers into multiply nodes - multiplying the original value nodes of any attribute - then combine them all with add nodes. It's faster too and less click setting, adding values and the like - much more intuitive. If you want to modify the Fcurve of the driver, just add an Fcurve node between the multipliers.
Or ICE. You can use drivers into multiply nodes - multiplying the original value nodes of any attribute - then combine them all with add nodes. It's faster too and less click setting, adding values and the like - much more intuitive. If you want to modify the Fcurve of the driver, just add an Fcurve node between the multipliers.
-
Caveman
- Posts: 211
- Joined: 12 Feb 2011, 11:38
Re: How to add more drivers to a multilinked object later?
@Draise
Hey, thanks for the suggestions. Even with multilinking, I need to make sure I link all the drivers, right at the beginning. If not, I can't add new ones at a later stage, without overwriting my old link/links (along with all the works)
ICE seems nice, but I lack the required knowledge to work with it, in this situation. Maybe an example would be nice, but only if you have the time to spare
Hey, thanks for the suggestions. Even with multilinking, I need to make sure I link all the drivers, right at the beginning. If not, I can't add new ones at a later stage, without overwriting my old link/links (along with all the works)
ICE seems nice, but I lack the required knowledge to work with it, in this situation. Maybe an example would be nice, but only if you have the time to spare
-
Draise
- Posts: 894
- Joined: 09 Oct 2012, 18:48
- Skype: ondraise
- Location: Colombia
Re: How to add more drivers to a multilinked object later?
Here you go, a quick example. Actually.. I only knew how to do it with shapes, but found it's easy enough with TRS's, RTS, STR's.. whatever.Caveman wrote:@Draise
Hey, thanks for the suggestions. Even with multilinking, I need to make sure I link all the drivers, right at the beginning. If not, I can't add new ones at a later stage, without overwriting my old link/links (along with all the works)![]()
ICE seems nice, but I lack the required knowledge to work with it, in this situation. Maybe an example would be nice, but only if you have the time to spare
Yes and yes.... I don't like using the parameter connection editor... it's linear and destructive (unlike a lot of... other softwares) better to use something flexible and faster. ICE!
In the ICE menu, go to the Deform panel > Create > Transform Mesh on the root object you want to house your ICE tree.
Then, get the original matrix value you want (drag from explorer), then a Scalar to 3D Vector node.
Plug it into an Add node.
Plug the Add node into the correct input for the Transform Mesh node.
NOW, you add the control driver attribute (anything)
Here you put your fcurve nodes, min/max nodes and whatever interpolation setups you want.
Plug the resulting green scalar value into another Scalar to 3D Vector node (same value as the attribute you want to drive)
Plug that Scalar to 3D Vector node into the add node.
Viola! You have just created a driver to the original value. Now, if you move the driven object, the driver will push it or control it by X attribute you chose! Now.. go on, repeat the last 4 steps to add more drivers to the exact same driven X attribute.
The idea is you get the original value from the driven parameter. Then you set it (Transform Mesh compound) or a Set Data node (with the right attribute)
Then you add or multiply extra values from different drivers. Like.. say you want a slider to push the Y axis, then you choose the parameter to multiply or add onto the current Y axis. It sets that now modified data in a multithreaded fashion, and all good! You have a lovely flexible and visual way of programming/setting your attributes and drivers, and multiple ones to single attributes also! Sucks nothing else has anything like ICE yet.. maybe Blender soon, or Houdini.
Here is a picture to illustrate (without any interpolation, fcurve or min/max nodes).

Same goes for shapes, minus the Transform Mesh compound node. Instead you'd use a "Set Data" node.
I am no expert on ICE I just figured it out, so.. um.. I'm sure it can be improved.. but you get the jist I hope.
EDIT: The Rescale node will be VERY handy.
-
Caveman
- Posts: 211
- Joined: 12 Feb 2011, 11:38
Re: How to add more drivers to a multilinked object later?
Awesome guide with the screenshot. Thank you very much. I will try this out. So, if I wish to control points on an enveloped geometry, which attribute do I get PointLocation,PointPosition or something else?
-
Draise
- Posts: 894
- Joined: 09 Oct 2012, 18:48
- Skype: ondraise
- Location: Colombia
Re: How to add more drivers to a multilinked object later?
PointPosition I'd assume?
-
Caveman
- Posts: 211
- Joined: 12 Feb 2011, 11:38
-
luceric
- Posts: 1252
- Joined: 21 Jun 2009, 22:08
Re: How to add more drivers to a multilinked object later?
doesn't the multi-link parameter UI just create an expression you could edit by hand to add a new parameter?
-
Caveman
- Posts: 211
- Joined: 12 Feb 2011, 11:38
Re: How to add more drivers to a multilinked object later?
@luceric
I will be glad to know the expression to append new drivers, if you are willing to show me how
I will be glad to know the expression to append new drivers, if you are willing to show me how
-
luceric
- Posts: 1252
- Joined: 21 Jun 2009, 22:08
Re: How to add more drivers to a multilinked object later?
isn't this the feature that simply creates an expression of the form l_interp( param1, param1, param3... ) and you'd just have to add another parameter to the function? (l_interp is an expression that takes any number of parameters you need)
Appologies if I'm confused with something else.
Appologies if I'm confused with something else.
-
Caveman
- Posts: 211
- Joined: 12 Feb 2011, 11:38
Re: How to add more drivers to a multilinked object later?
Hi, it does work, though it's acting a bit wonky. When I add the new parameter and set relative values, the driven object tries to move in reverse.
For example, I added the new parameter at the end of the l_interp expression, then I set relative values, after that I move the driven object and change the new parameter, and set relative values again.
When the Driver is 1, Driven should be 10, and when Driver is 0 Driven should be 0 too. But the results are unpredictable. When the Driver is at 1 the Driven is 6 and when the Driver is at 0 the Driven is at 10
For example, I added the new parameter at the end of the l_interp expression, then I set relative values, after that I move the driven object and change the new parameter, and set relative values again.
When the Driver is 1, Driven should be 10, and when Driver is 0 Driven should be 0 too. But the results are unpredictable. When the Driver is at 1 the Driven is 6 and when the Driver is at 0 the Driven is at 10