Certain time and keyframe functions on controllers can be called on any 3ds Max object or collection of 3ds Max objects.
If called in this way, they apply recursively to all the nested controllers within that object and on any sub-objects and sub-controllers within those objects.
In this way, they work in a manner similar to the object-level tracks in the 3ds Max Track View that allow you to manipulate keys and time for all the sub-objects and sub-controllers within them.
The time and controller functions that work in this way are:
deleteTime reverseTime scaleTime insertTime setTimeRange addNewKey deleteKeys selectKeys deselectKeys moveKeys mapKeys sortKeys reduceKeys addEaseCurve deleteEaseCurve setBeforeORT setAfterORT enableORTs
The above functions can be called on any 3ds Max object collection (such as, a wild-card pathname, object set, or array of objects ) and will recursively apply to all animation within those objects.
For more information, see Time and Key Functions on Object Hierarchies and Controller Time Functions.
FOR EXAMPLE,
for i = 1 to 3 do ( b = box() addmodifier b (XForm()) ) insertTime $box001.xform 0f 10f -- all keys after0fin all controllers in theXFormmodifier are moved by10f insertTime $box001 0f 10f -- all keys after0finbox01are moved (transform, creation, modifiers) selectKeys $box002.xform.gizmo.rotation.controller 0f 100f -- selects keys in0-100f. If controller is Euler, will select x, y and z keys deleteTime $box* 10f 20f -- deletetime fromframe10to frame20in all keys in all objects named$box*(works with—any pathname or array of objects) insertTime $box003.children 0f 10f -- inserts time in all controllers of all children of$box03 reduceKeys $box001.modifiers 0.5 1f -- applies key reductions to all controllers in all modifiers in$box01(leaves—transform and creation parameters alone)