diff --git a/synfig-studio/plugins/lottie-exporter/layers/shape_solid.py b/synfig-studio/plugins/lottie-exporter/layers/shape_solid.py index 6757b5f..3ab160d 100644 --- a/synfig-studio/plugins/lottie-exporter/layers/shape_solid.py +++ b/synfig-studio/plugins/lottie-exporter/layers/shape_solid.py @@ -10,7 +10,7 @@ from helpers.blendMode import get_blend from helpers.mask import gen_mask from misc import Count, get_color_hex, is_animated from effects.fill import gen_effects_fill -from synfig.group import update_precomp +from synfig.group import update_precomp, get_additional_width, get_additional_height sys.path.append("..") @@ -26,6 +26,8 @@ def gen_layer_shape_solid(lottie, layer, idx): Returns: (None) """ + if settings.INSIDE_PRECOMP: + update_precomp(layer) # Setting the solid layer which will be masked index = Count() @@ -37,7 +39,8 @@ def gen_layer_shape_solid(lottie, layer, idx): lottie["ks"] = {} # Transform properties to be filled lottie["ef"] = [] # Stores the effects - pos = [settings.lottie_format["w"]/2, settings.lottie_format["h"]/2] + pos = [settings.lottie_format["w"]/2 + get_additional_width()/2, + settings.lottie_format["h"]/2 + get_additional_height()/2] anchor = pos gen_helpers_transform(lottie["ks"], layer, pos, anchor) @@ -45,8 +48,8 @@ def gen_layer_shape_solid(lottie, layer, idx): gen_effects_fill(lottie["ef"][-1], layer, index.inc()) lottie["ao"] = settings.LAYER_DEFAULT_AUTO_ORIENT - lottie["sw"] = settings.lottie_format["w"] # Solid Width - lottie["sh"] = settings.lottie_format["h"] # Solid Height + lottie["sw"] = settings.lottie_format["w"] + get_additional_width() # Solid Width + lottie["sh"] = settings.lottie_format["h"] + get_additional_height() # Solid Height invert = False for chld in layer: diff --git a/synfig-studio/plugins/lottie-exporter/synfig/group.py b/synfig-studio/plugins/lottie-exporter/synfig/group.py index 94305e2..798a9e2 100644 --- a/synfig-studio/plugins/lottie-exporter/synfig/group.py +++ b/synfig-studio/plugins/lottie-exporter/synfig/group.py @@ -19,7 +19,6 @@ def update_precomp(node): """ x = settings.ADDITIONAL_PRECOMP_WIDTH / 2 y = settings.ADDITIONAL_PRECOMP_HEIGHT / 2 - print(x, y) offset = Vector(x, -y) offset /= settings.PIX_PER_UNIT @@ -45,4 +44,16 @@ def add(vector, offset): vector[0].text = str(float(vector[0].text) + offset[0]) vector[1].text = str(float(vector[1].text) + offset[1]) + +def get_additional_width(): + if settings.INSIDE_PRECOMP: + return settings.ADDITIONAL_PRECOMP_WIDTH + return 0 + + +def get_additional_height(): + if settings.INSIDE_PRECOMP: + return settings.ADDITIONAL_PRECOMP_HEIGHT + return 0 + # Should be -x, +y -> the offset