-- AddPRSKeys v.1 (2011.10.6) by Anubis (http://project3d.narod.ru) ( if classOf ::roAddPRSKeys == RolloutClass do DestroyDialog roAddPRSKeys rollout roAddPRSKeys "Add PRS Keys" ( group "Tracks" ( radioButtons rbtTrack labels:#("Transform", "Position", "Rotation", "Scale") ) Group "Keys" ( spinner spnStrFrm "Start:" range:[-2000, 20000, animationRange.start] type:#integer fieldWidth:42 --across:2 spinner spnEndFrm "End:" range:[-1999, 20001, animationRange.end] type:#integer fieldWidth:42 spinner spnNthFrm "Every Nth Frame:" range:[1,1000,1] type:#integer fieldWidth:42 ) button btnGo "Done" width:90 on btnGo pressed do ( if selection.count == 0 then (messageBox "Nothing selected!" title:"Help" beep:off) else ( local sTime = spnStrFrm.value local eTime = spnEndFrm.value local step = spnNthFrm.value local sAnim, csAnim, supported = false for obj in selection do ( sAnim = case rbtTrack.state of ( 2: ( csAnim = obj[3][1] if not IsKindOf csAnim SubAnim then (0) else (if IsKindOf csAnim.track PositionController then csAnim else getSubAnim csAnim 1) ) 3: ( csAnim = obj[3][2] if csAnim == undefined do csAnim = obj[3][1] if not IsKindOf csAnim SubAnim then (0) else (if IsKindOf csAnim.track RotationController then csAnim else getSubAnim csAnim 2) ) 4: ( csAnim = obj[3][3] if csAnim == undefined do csAnim = obj[3][1] if not IsKindOf csAnim SubAnim then (0) else (if IsKindOf csAnim.track ScaleController then csAnim else getSubAnim csAnim 3) ) default: (obj[3]) ) supported = if sAnim == 0 then false else case rbtTrack.state of ( 2: IsKindOf sAnim.track PositionController 3: IsKindOf sAnim.track RotationController 4: IsKindOf sAnim.track ScaleController default: true ) if supported do (for t = sTime to eTime by step do (addNewKey sAnim t)) ) ) ) ) CreateDialog roAddPRSKeys 160 210 ) --//EOF