Export CHOP - sends the value of the chop to that parameter you’re exporting to, and if your chop value changes, that’s reflected in the parameter
Current CHOP value - takes the chops current value, it’s like copying and pasting a value, no changes get updated later
Relative CHOP reference - similar to exporting, reference operator from the location of your current operator, so if you want an operator up a network you’d get “…/blah”, if you wanted one up 2 networks, then inside of another network “…/…/otherNetwork/blah”
CHOP reference - will give you a reference to the operator from the root of your project, likely something like “/project1/blah/blah/blah”
The real differences depend on use.
When doing 3d rigging it’s nice to use exports, because you can highlight all of you Null CHOPs you’re exporting from, and turn their export flags off instantly, without having to fuss with the operators receiving the values. Doing all the Python scripting, I almost always use references because then you can perform more complex operations on that value at the parameter that is referenced, i.e. op(‘blah’)[0] + op(‘blah2’)[0] can be inside of a parameter, meaning I dont have to do that actual adding in my network.
Difference between relative and non relative referencing matters if you plan on moving operators around to new places eventually. Hard paths made (non relative), will all break because their hard path has changed, where as relative paths between operators is a bit easier to move around.
It seems to be less of a difference now in the latest builds of 088 with the ability to change a parameters between constant, expression, and export mode.
When I asked this question a while ago (Export Chop vs Relative reference) it seemed like speed was one of the advantages of ExportCHOP.
However I have to say it has become harder and harder to use for me. It seems to be very finicky and you often end up with export tables that don’t clear, and when you delete them and turn off the export flag, you still get a warning etc…not to mention copy/pasting nodes with exports.
Until Derivative cleans all that up, I prefer to reference the channel. As Elburz was saying, it also allows you to do stuff to the incoming channel, such as some math operations or concatenations etc…
Hi Rurik.
If you have examples of messy exporting behaviour, send us an example.
We’ve cleaned up a couple rough spots a few months ago with the Conflict reporting, as well as fully deleting rows when removing an export.
Cheers,
Rob.