Keyframes fast selection

Forum Archive Keyframes fast selection

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #19356
    Nathi Tappan
    Participant

      Hi there!

      Following this video from Wayne: https://www.youtube.com/watch?v=nmg21jX9IpE

      I finished my blocking but when I key every second frame to get the animation down to twos (roughly at the 5 minute mark from his video), the keys don’t remain selected. I think it’s actually from the recent updates to Blender 4.2 or 4.3… 

      Any suggestions to make the selection of every other keyframe less painful?

      #91798
      Dwayne Savage
      Participant

        One more time, I swear I am human. 

        Try selecting the a few keyframes then use shift+r to repeat the pattern of selection. I don’t know if blender will detect that pattern but that’s all I’ve got.

        #91799
        Nathi Tappan
        Participant

          Lol… I’ll take your word for it Dwayne.

          That was a great idea, but unfortunately it didn’t pan out. I did it manually, it was only 8 seconds of animation. But if anyone knows the way, let me know… cause I definitely don’t want to do it again if I can avoid it.

          #91800
          Dwayne Savage
          Participant

            Sorry about that, but Everytime I tried to post it kept telling me I wasn’t human. 

            #91801
            Dwayne Savage
            Participant

              Found a solution: https://blender.stackexchange.com/questions/264754/how-to-deselect-one-keyframe-every-nth-on-a-multiple-objects-selection

              You have to enable Developer extra and then use F3 to search for Deselect. It has every 2, every 3, and every 4. I’ve tested on 4.2 and 4.4 and seems to work fine. If I find the time I’ll see if I can link the operations to a menu. 

              #91802
              Dwayne Savage
              Participant

                ***Edit*** Forgot to mention I added to the select menu on the dopesheet editor.

                Well, that was surprisingly easy. I just added an append to the register and a remove in the unregister.

                bpy.types.DOPESHEET_MT_select.append(menu_func)
                bpy.types.DOPESHEET_MT_select.remove(menu_func)

                So the whole script is:

                bl_info = {
                    "name": "Partial Deselect",
                    "blender": (3, 0, 0),
                    "category": "Object",
                }
                
                import bpy
                def main(context, nthkey=2):         for action in bpy.data.actions:             for channel in action.fcurves:                 for key in channel.keyframe_points.values()[0::nthkey]:                     key.select_control_point = False                     key.select_left_handle = False                     key.select_right_handle = False
                class ChannelSelect4Key(bpy.types.Operator):     """Partial deSelect""" # Use this as a tooltip for menu items and buttons.     bl_idname = "anim.channel_select_4th"     bl_label = "DeSelect 1 keyframe every 4 keys"     bl_options = {'REGISTER', 'UNDO'} # Enable undo for the operator.     def execute(self, context):         main(context, 4)         return {'FINISHED'}
                class ChannelSelect3Key(bpy.types.Operator):     """Partial deSelect""" # Use this as a tooltip for menu items and buttons.     bl_idname = "anim.channel_select_3th"     bl_label = "DeSelect 1 keyframe every 3 keys"     bl_options = {'REGISTER', 'UNDO'} # Enable undo for the operator.     def execute(self, context):         main(context, 3)         return {'FINISHED'}
                class ChannelSelect2Key(bpy.types.Operator):     '''Select odd keys for selected channels in the dopesheet'''     bl_idname = "anim.channel_select_2nd"     bl_label = "DeSelect 1 keyframe every 2 keys (even)"     bl_options = {'REGISTER', 'UNDO'} # Enable undo for the operator.     def execute(self, context):         main(context, 2)         return {'FINISHED'}
                def menu_func(self, context):     self.layout.operator(ChannelSelect4Key.bl_idname)     self.layout.operator(ChannelSelect3Key.bl_idname)     self.layout.operator(ChannelSelect2Key.bl_idname)
                def register():     bpy.utils.register_class(ChannelSelect4Key)     bpy.utils.register_class(ChannelSelect3Key)     bpy.utils.register_class(ChannelSelect2Key)     bpy.types.DOPESHEET_MT_select.append(menu_func)
                def unregister():     bpy.utils.unregister_class(ChannelSelect4Key)     bpy.utils.unregister_class(ChannelSelect3Key)     bpy.utils.unregister_class(ChannelSelect2Key)     bpy.types.DOPESHEET_MT_select.remove(menu_func)
                if __name__ == "__main__":     register()

                Or you can download and install as an addon.

                https://drive.google.com/drive/folders/0B5x4OjbuDbY5fmxRWXprNTItWEVFMmhhTFRCSkFlZ2RuS2YwcW4wMHhQQW04ekdPV25aVms?resourcekey=0-PQxdYmfIoaVYZ96YbJtmnw&usp=sharing

                #91803
                Nathi Tappan
                Participant

                  Wow! Incredible! Thank you Dwayne, I’ll test it out right away!!

                  #91804
                  Dwayne Savage
                  Participant

                    No problem. I didn’t really do anything other than added the append to menu. They already had everything else. I’d give credit, but I can’t figure out where the posters name/ID is on stack exchange. 

                  Viewing 8 posts - 1 through 8 (of 8 total)
                  • The topic ‘Keyframes fast selection’ is closed to new replies.