A callback is something you can setup to watch a specific behaviour, and when that behaviour is performed you do something special which is out of the normal behaviour or functionality of MotionBuilder (or Maya).
Here is my everyday English example of a callbacks :)
You assign me to watch a front door, and when people come in the door I hand them a visitor pass, without me watching the front door people would just come through the door and never get a visitors pass.
- Kristine = callback
- front door = MotionBuilder
- visitor pass = is the something special behaviour
So in MotionBuilder (or Maya), let’s say I want everyone to follow a special naming convention for their scene files, then I would set up a callback to watch anytime someone creates a new file. Then when this happens MotionBuilder calls a function in my code to save the file with a special name.
A very important thing to point out is that callbacks are efficient in MotionBuilder and Maya, so you do not need to be concerned, that they will slow down the application even though a callback is always watching what you told it to watch.
Callbacks allow you to add an personal level of customization to your production, studio or project. Since we cannot anticipate all the different usages of callbacks we just keep it very open where you can monitor most things in MotionBuilder and Maya. But having said this, this also means you must set the callbacks up yourself, since the combination of things to watch and things to do could be endless.
Another example is when someone changes a property, you maybe want to give them a warning…but how will you know when the user changes the property? They could do it at any time during their session usage, and you want the warning to be triggered right after they change it, not at a hard coded point of time... so here is where you want to setup a callback on property values, that will output a warning when this occurs.