diff --git a/src/engines/blender/blender_engine.py b/src/engines/blender/blender_engine.py index 15828e8..187fec7 100644 --- a/src/engines/blender/blender_engine.py +++ b/src/engines/blender/blender_engine.py @@ -117,7 +117,7 @@ class Blender(BaseRenderEngine): # report any missing textures not_found = re.findall("(Unable to pack file, source path .*)\n", result_text) for err in not_found: - logger.error(err) + raise ChildProcessError(err) p = re.compile('Saved to: (.*)\n') match = p.search(result_text) @@ -125,6 +125,7 @@ class Blender(BaseRenderEngine): new_path = os.path.join(dir_name, match.group(1).strip()) logger.info(f'Blender file packed successfully to {new_path}') return new_path + return project_path except Exception as e: msg = f'Error packing .blend file: {e}' logger.error(msg) diff --git a/src/engines/blender/blender_worker.py b/src/engines/blender/blender_worker.py index 2903541..7f0067c 100644 --- a/src/engines/blender/blender_worker.py +++ b/src/engines/blender/blender_worker.py @@ -18,14 +18,13 @@ class BlenderRenderWorker(BaseRenderWorker): self.__frame_percent_complete = 0.0 # Scene Info - self.scene_info = Blender(engine_path).get_project_info(input_path) - self.start_frame = int(self.scene_info.get('start_frame', 1)) - self.end_frame = int(self.scene_info.get('end_frame', self.start_frame)) - self.project_length = (self.end_frame - self.start_frame) + 1 + self.scene_info = {} self.current_frame = -1 def generate_worker_subprocess(self): + self.scene_info = Blender(self.engine_path).get_project_info(self.input_path) + cmd = [self.engine_path] if self.args.get('background', True): # optionally run render not in background cmd.append('-b') @@ -85,11 +84,15 @@ class BlenderRenderWorker(BaseRenderWorker): def _parse_stdout(self, line): - pattern = re.compile( + cycles_pattern = re.compile( r'Fra:(?P\d*).*Mem:(?P\S+).*Time:(?P