Blender Marker Renamer

import bpy

# Store the initial positions of markers
initial_marker_positions = {}

# Function to rename markers based on their frame number
def rename_markers():
    for marker in bpy.context.scene.timeline_markers:
        if marker.name.startswith("F_") and marker.name[2:].isdigit():
            marker.name = f"F_{marker.frame}"
        elif not marker.name.startswith("F_"):
            continue

# Function to check if markers have moved
def check_marker_movement():
    global initial_marker_positions
    moved = False

    for marker in bpy.context.scene.timeline_markers:
        if marker.name not in initial_marker_positions:
            initial_marker_positions[marker.name] = marker.frame
        elif initial_marker_positions[marker.name] != marker.frame:
            moved = True
            initial_marker_positions[marker.name] = marker.frame

    return moved

# Function to update marker names
def update_markers():
    if check_marker_movement():
        rename_markers()

# Function to add marker with automatic naming
def add_marker(frame):
    marker_name = f"F_{frame}"
    bpy.context.scene.timeline_markers.new(name=marker_name, frame=frame)
    initial_marker_positions[marker_name] = frame

# Timer function to periodically check for marker movement
def marker_movement_timer():
    update_markers()
    return 0.1  # Check every 0.1 seconds

# Register the frame change handler
bpy.app.handlers.frame_change_pre.append(lambda scene: update_markers())
# Register the timer
bpy.app.timers.register(marker_movement_timer)

Features

  • Automatically renames markers in the format F_X, where X is the current frame number.

  • Provides real-time updates as markers are moved in the timeline.

  • If markers are renamed with a custom name, they will not be automatically renamed.

  • Easy to integrate into your Blender projects.

[bl-marker-renamer] (https://github.com/biroMann/bl-marker-renamer)

1 Like