diff --git a/openpype/hosts/blender/api/__init__.py b/openpype/hosts/blender/api/__init__.py index c5b0a44072..66102a2ae1 100644 --- a/openpype/hosts/blender/api/__init__.py +++ b/openpype/hosts/blender/api/__init__.py @@ -51,18 +51,38 @@ def set_start_end_frames(): "name": asset_name }) - # Default frame start/end - frameStart = 0 - frameEnd = 100 + scene = bpy.context.scene - # Check if frameStart/frameEnd are set - if asset_doc["data"]["frameStart"]: - frameStart = asset_doc["data"]["frameStart"] - if asset_doc["data"]["frameEnd"]: - frameEnd = asset_doc["data"]["frameEnd"] + # Default scene settings + frameStart = scene.frame_start + frameEnd = scene.frame_end + fps = scene.render.fps + resolution_x = scene.render.resolution_x + resolution_y = scene.render.resolution_y + + # Check if settings are set + data = asset_doc.get("data") + + if not data: + return + + if data.get("frameStart"): + frameStart = data.get("frameStart") + if data.get("frameEnd"): + frameEnd = data.get("frameEnd") + if data.get("fps"): + fps = data.get("fps") + if data.get("resolutionWidth"): + resolution_x = data.get("resolutionWidth") + if data.get("resolutionHeight"): + resolution_y = data.get("resolutionHeight") + + scene.frame_start = frameStart + scene.frame_end = frameEnd + scene.render.fps = fps + scene.render.resolution_x = resolution_x + scene.render.resolution_y = resolution_y - bpy.context.scene.frame_start = frameStart - bpy.context.scene.frame_end = frameEnd def on_new(arg1, arg2): set_start_end_frames()