Added sequence reversing functionality for timeline markers
This commit is contained in:
@@ -80,8 +80,11 @@ def update_actions_and_timeline_markers(context: Context, armature: Armature):
|
|||||||
continue
|
continue
|
||||||
if marker_name.startswith('#'):
|
if marker_name.startswith('#'):
|
||||||
continue
|
continue
|
||||||
|
frame_start, frame_end = sequence_frame_ranges[marker_name]
|
||||||
|
sequences = get_sequences_from_name_and_frame_range(marker_name, frame_start, frame_end)
|
||||||
|
for (sequence_name, frame_start, frame_end) in sequences:
|
||||||
item = pg.marker_list.add()
|
item = pg.marker_list.add()
|
||||||
item.name = marker_name
|
item.name = sequence_name
|
||||||
item.is_selected = False
|
item.is_selected = False
|
||||||
frame_start, frame_end = sequence_frame_ranges[marker_name]
|
frame_start, frame_end = sequence_frame_ranges[marker_name]
|
||||||
item.frame_start = frame_start
|
item.frame_start = frame_start
|
||||||
@@ -174,11 +177,9 @@ def get_timeline_marker_sequence_frame_ranges(animation_data: AnimData, context:
|
|||||||
return sequence_frame_ranges
|
return sequence_frame_ranges
|
||||||
|
|
||||||
|
|
||||||
def get_sequences_from_action(action: Action) -> List[Tuple[str, int, int]]:
|
def get_sequences_from_name_and_frame_range(name: str, frame_start: int, frame_end: int) -> List[Tuple[str, int, int]]:
|
||||||
frame_start = int(action.frame_range[0])
|
|
||||||
frame_end = int(action.frame_range[1])
|
|
||||||
reversed_pattern = r'(.+)/(.+)'
|
reversed_pattern = r'(.+)/(.+)'
|
||||||
reversed_match = re.match(reversed_pattern, action.name)
|
reversed_match = re.match(reversed_pattern, name)
|
||||||
if reversed_match:
|
if reversed_match:
|
||||||
forward_name = reversed_match.group(1)
|
forward_name = reversed_match.group(1)
|
||||||
backwards_name = reversed_match.group(2)
|
backwards_name = reversed_match.group(2)
|
||||||
@@ -187,7 +188,13 @@ def get_sequences_from_action(action: Action) -> List[Tuple[str, int, int]]:
|
|||||||
(backwards_name, frame_end, frame_start)
|
(backwards_name, frame_end, frame_start)
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
return [(action.name, frame_start, frame_end)]
|
return [(name, frame_start, frame_end)]
|
||||||
|
|
||||||
|
|
||||||
|
def get_sequences_from_action(action: Action) -> List[Tuple[str, int, int]]:
|
||||||
|
frame_start = int(action.frame_range[0])
|
||||||
|
frame_end = int(action.frame_range[1])
|
||||||
|
return get_sequences_from_name_and_frame_range(action.name, frame_start, frame_end)
|
||||||
|
|
||||||
|
|
||||||
def get_sequences_from_action_pose_marker(action: Action, pose_markers: List[TimelineMarker], pose_marker: TimelineMarker, pose_marker_index: int) -> List[Tuple[str, int, int]]:
|
def get_sequences_from_action_pose_marker(action: Action, pose_markers: List[TimelineMarker], pose_marker: TimelineMarker, pose_marker_index: int) -> List[Tuple[str, int, int]]:
|
||||||
@@ -196,17 +203,7 @@ def get_sequences_from_action_pose_marker(action: Action, pose_markers: List[Tim
|
|||||||
frame_end = pose_markers[pose_marker_index + 1].frame
|
frame_end = pose_markers[pose_marker_index + 1].frame
|
||||||
else:
|
else:
|
||||||
frame_end = int(action.frame_range[1])
|
frame_end = int(action.frame_range[1])
|
||||||
reversed_pattern = r'(.+)/(.+)'
|
return get_sequences_from_name_and_frame_range(pose_marker.name, frame_start, frame_end)
|
||||||
reversed_match = re.match(reversed_pattern, pose_marker.name)
|
|
||||||
if reversed_match:
|
|
||||||
forward_name = reversed_match.group(1)
|
|
||||||
backwards_name = reversed_match.group(2)
|
|
||||||
return [
|
|
||||||
(forward_name, frame_start, frame_end),
|
|
||||||
(backwards_name, frame_end, frame_start)
|
|
||||||
]
|
|
||||||
else:
|
|
||||||
return [(pose_marker.name, frame_start, frame_end)]
|
|
||||||
|
|
||||||
|
|
||||||
def get_visible_sequences(pg: PSA_PG_export, sequences) -> List[PSA_PG_export_action_list_item]:
|
def get_visible_sequences(pg: PSA_PG_export, sequences) -> List[PSA_PG_export_action_list_item]:
|
||||||
|
|||||||
Reference in New Issue
Block a user