From 3e9405e26dfb02f1aa05c530cce3ca6f9d1c84c7 Mon Sep 17 00:00:00 2001 From: Antonioya Date: Tue, 23 Oct 2018 16:44:31 +0200 Subject: GP: Add new frame scale parameter to Time modifier This new parameter allows to increase or decrease the animation speed to break animation patterns when reuse data blocks. --- source/blender/gpencil_modifiers/intern/MOD_gpenciltime.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'source/blender/gpencil_modifiers') diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpenciltime.c b/source/blender/gpencil_modifiers/intern/MOD_gpenciltime.c index 521a398ee29..c72a20cc0e9 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpenciltime.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpenciltime.c @@ -55,6 +55,7 @@ static void initData(GpencilModifierData *md) TimeGpencilModifierData *gpmd = (TimeGpencilModifierData *)md; gpmd->layername[0] = '\0'; gpmd->offset = 1; + gpmd->frame_scale = 1.0f; gpmd->flag |= GP_TIME_KEEP_LOOP; } @@ -88,6 +89,12 @@ static int remapTime( } } + /* apply frame scale */ + cfra *= mmd->frame_scale; + if (cfra > efra) { + cfra = sfra + (cfra - ((cfra / efra) * efra)); + } + if (mmd->flag & GP_TIME_KEEP_LOOP) { /* if the sum of the cfra is out scene frame range, recalc */ if (cfra + mmd->offset < sfra) { -- cgit v1.2.3