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
, whereX
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)