Failed to paste keys into Elfenliedtopfan5: time ranges not valid with given option

Failed to paste keys into Elfenliedtopfan5: time ranges not valid with given option

elfenliedtopfan5
Participant Participant
784 Views
2 Replies
Message 1 of 3

Failed to paste keys into Elfenliedtopfan5: time ranges not valid with given option

elfenliedtopfan5
Participant
Participant

Good evening all i have this error that is driving me totally insane works fine when i manually try to do this but trying to get this to work with python is driving me crazy 

 

below is a video of what i am doing, 

 

for the life of me cant figure out why this is doing this here below is what i have 

def load_idle_and_create_anim_layer(idle_anim_file, min_time_sprint, max_time_sprint):
    # Load the idle animation
    import_se_anim_file(idle_anim_file)
    # Allow a brief pause for the scene to update and for the idle animation to be fully loaded
    time.sleep(0.5)
    cmds.refresh()

    # Set the playback range
    set_playback_range(min_time_sprint, max_time_sprint)

    # Select 'Joints' and its hierarchy to ensure they are included in the animation layer
    cmds.select("Joints", hi=True)

    # Create the animation layer from selected joints
    anim_layer_name = create_idle_anim_layer()

    # Now that the layer is created with the selected joints, add the joints to the layer
    cmds.animLayer(anim_layer_name, edit=True, addSelectedObjects=True)

    # Attempt to paste keys to the newly created animation layer
    paste_keys_to_anim_layer(anim_layer_name, min_time_sprint, max_time_sprint)

    # Final UI refresh to ensure everything is updated
    cmds.refresh()

def create_idle_anim_layer():
    anim_layer_name = "Elfenliedtopfan5"
    
    # Check if the animation layer already exists
    if not cmds.animLayer(anim_layer_name, query=True, exists=True):
        # If it doesn't exist, create the animation layer directly with the name
        anim_layer_name = cmds.animLayer(anim_layer_name)
    else:
        # If it exists, ensure it's unlocked for editing
        cmds.animLayer(anim_layer_name, edit=True, lock=False)

    # The direct approach to make an anim layer current via script might be limited.
    # Therefore, focus on ensuring the layer is available and unlocked for the operations you need to perform.
    
    # Set the necessary attributes for the animation layer
    cmds.setAttr(f"{anim_layer_name}.rotationAccumulationMode", 1)
    cmds.setAttr(f"{anim_layer_name}.scaleAccumulationMode", 1)

    return anim_layer_name
    
def paste_keys_to_anim_layer(anim_layer_name, min_time, max_time):
    # Ensure the animation layer exists and is unlocked
    if cmds.animLayer(anim_layer_name, q=True, ex=True):
        cmds.animLayer(anim_layer_name, e=True, lock=False)
    else:
        print(f"Animation layer '{anim_layer_name}' does not exist.")
        return

    # Attempting to paste keys
    print(f"Attempting to paste keys into {anim_layer_name} from {min_time} to {max_time}")

    # Refresh and ensure UI updates have settled
    cmds.refresh()

    # The actual paste operation
    try:
        # Ensure the animation layer is targeted by making it the only selected object
        cmds.select(anim_layer_name)
        
        # Paste keys with the specified option
        cmds.pasteKey(animLayer=anim_layer_name, time=(min_time, max_time), option="merge")
        
        # Additional refresh after operation to ensure UI reflects changes
        cmds.refresh()
        
        print(f"Successfully pasted keys into {anim_layer_name}.")
    except Exception as e:
        print(f"Failed to paste keys into {anim_layer_name}: {e}")

 
i have tried to comment the parts best i can i not advanced with python only know little bit 

but what i am doing here should be work but its failing with the error code 
time ranges not valid with given option

have checked maya createanimlayer documentation that is why i said about the script has limitations but not to this extent should still be able to copy keyframes 

0 Likes
785 Views
2 Replies
Replies (2)
Message 2 of 3

elfenliedtopfan5
Participant
Participant

Update it wont copy them to the timeline however it does copy the frames if i select the animlayer named elfenliedtopfan5 go to select objects and paste them in it does have the frames but it wont copy them via script for some reason. 

0 Likes
Message 3 of 3

urszula.lawecka6P3SY
Community Visitor
Community Visitor

I have the same problem and still haven't figured it out.

0 Likes