Skip to content

Batch anim import from folder #21

Description

@rt974

I hate blender addon system API. I hate it.

batch *.anim import script. by DeepSeek.

Because importing anims overwrite the same action.

`
import os
import bpy

Function to find the armature in the scene

def find_armature():
for obj in bpy.context.scene.objects:
if obj.type == 'ARMATURE':
return obj
return None

Function to clone and rename the current action

def clone_and_rename_action(new_name):
armature = find_armature()
if not armature or not armature.animation_data or not armature.animation_data.action:
print("No armature or active action found.")
return

# Get the current action
current_action = armature.animation_data.action

# Clone the action
new_action = current_action.copy()
new_action.name = new_name

# Assign the new action to the armature
armature.animation_data.action = new_action

print(f"Cloned and renamed action to '{new_name}'.")

Function to process all .motion files in a folder

def process_motion_folder(folder_path):
if not os.path.isdir(folder_path):
print(f"Directory does not exist: {folder_path}")
return

motion_files = [f for f in os.listdir(folder_path) if f.endswith('.motion')]
if not motion_files:
    print("No .motion files found in the directory.")
    return

for motion_file in motion_files:
    file_path = os.path.join(folder_path, motion_file)
    print(f"Processing: {file_path}")

    # Use the existing operator to import the motion file
    bpy.ops.haydee_importer.motion(filepath=file_path)

    # Clone and rename the resulting action
    action_name = os.path.splitext(motion_file)[0]
    clone_and_rename_action(action_name)

    # Clear the current action to prepare for the next file
    armature = find_armature()
    if armature and armature.animation_data:
        armature.animation_data.action = None

print("Finished processing all .motion files.")

Main script execution

if name == "main":
folder_path = "C:/path/to/your/motion/files" # Replace with your folder path
process_motion_folder(folder_path)
`

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions