diff --git a/src/engines/blender/blender_worker.py b/src/engines/blender/blender_worker.py index dc15639..88258a5 100644 --- a/src/engines/blender/blender_worker.py +++ b/src/engines/blender/blender_worker.py @@ -83,15 +83,22 @@ class BlenderRenderWorker(BaseRenderWorker): elif line.lower().startswith('error'): self.log_error(line) elif 'Saved' in line or 'Saving' in line or 'quit' in line: - match = re.match(r'Time: (.*) \(Saving', line) - if match: - time_completed = match.groups()[0] + render_stats_match = re.match(r'Time: (.*) \(Saving', line) + output_filename_match = re.match(r"Saved: .*_(\d+)\.\w+", line) # try to get frame # from filename + if output_filename_match: + output_file_number = output_filename_match.groups()[0] + try: + self.current_frame = int(output_file_number) + except ValueError: + pass + elif render_stats_match: + time_completed = render_stats_match.groups()[0] frame_count = self.current_frame - self.end_frame + self.total_frames logger.info(f'Frame #{self.current_frame} - ' f'{frame_count} of {self.total_frames} completed in {time_completed} | ' f'Total Elapsed Time: {datetime.now() - self.start_time}') else: - logger.debug(line) + logger.debug(f'DEBUG: {line}') else: pass # if len(line.strip()):