Key Baker

Key baker

Key baker

sel = hou.selectedNodes()
parms = sel[0].parms()
keyedParmList = []
parmNames = []
for i in parms:
    if i.isTimeDependent() == 1:
        keyedParmList.append(i)
        parmNames.append(i.description() + "(" + i.name() + ")")
bakes = hou.ui.selectFromList(parmNames, message='Select Parms to bake key')
framerange = range(int(hou.expandString('$RFSTART')), int(hou.expandString('$RFEND')) + 1 )
for i in bakes:
    keyVals = {}
    for kf in framerange:
        keyVals[kf] = keyedParmList[i].evalAtFrame(kf)
   
    keyedParmList[i].deleteAllKeyframes()
   
    for kf in framerange:
        setKey = hou.Keyframe()
        setKey.setFrame(kf)
        setKey.setValue( keyVals[kf] )
       
        keyedParmList[i].setKeyframe(setKey)