Fix T63031: Keyframing Annotations doesn't work
authorAntonioya <blendergit@gmail.com>
Thu, 28 Mar 2019 10:43:17 +0000 (11:43 +0100)
committerAntonioya <blendergit@gmail.com>
Thu, 28 Mar 2019 10:43:32 +0000 (11:43 +0100)
By design the annotation parameters must not be animatable.

Annotations are designed to take notes, not to create animations, so any animatable parameters have been flagged as non-animatable.

Note: As some properties are shared with grease pencil, I had to duplicate one property (adviced by @mont29) to keep grease pencil animatable but annotations don't.

release/scripts/startup/bl_ui/properties_grease_pencil_common.py
source/blender/makesrna/intern/rna_gpencil.c

index bb059d6..6e1253d 100644 (file)
@@ -650,8 +650,7 @@ class GPENCIL_UL_annotation_layer(UIList):
             split.prop(gpl, "info", text="", emboss=False)
 
             row = layout.row(align=True)
-            # row.prop(gpl, "lock", text="", emboss=False)
-            row.prop(gpl, "hide", text="", emboss=False)
+            row.prop(gpl, "annotation_hide", text="", emboss=False)
         elif self.layout_type == 'GRID':
             layout.alignment = 'CENTER'
             layout.label(text="", icon_value=icon)
index dcdad5c..eefac81 100644 (file)
@@ -1150,6 +1150,7 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
        prop = RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR_GAMMA);
        RNA_def_property_array(prop, 3);
        RNA_def_property_range(prop, 0.0f, 1.0f);
+       RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_ui_text(prop, "Color", "Color for all strokes in this layer");
        RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
 
@@ -1157,10 +1158,10 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
        prop = RNA_def_property(srna, "thickness", PROP_INT, PROP_PIXEL);
        RNA_def_property_int_sdna(prop, NULL, "thickness");
        RNA_def_property_range(prop, 1, 10);
+       RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_ui_text(prop, "Thickness", "Thickness of annotation strokes");
        RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
-
-
+       
        /* Tint Color */
        prop = RNA_def_property(srna, "tint_color", PROP_FLOAT, PROP_COLOR_GAMMA);
        RNA_def_property_float_sdna(prop, NULL, "tintcolor");
@@ -1193,6 +1194,7 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
 
        prop = RNA_def_property(srna, "use_annotation_onion_skinning", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "onion_flag", GP_LAYER_ONIONSKIN);
+       RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_ui_text(
                prop, "Onion Skinning",
                "Display annotation onion skins before and after the current frame");
@@ -1201,6 +1203,7 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
        prop = RNA_def_property(srna, "annotation_onion_before_range", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "gstep");
        RNA_def_property_range(prop, -1, 120);
+       RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_ui_text(
                prop, "Frames Before",
                "Maximum number of frames to show before current frame");
@@ -1209,6 +1212,7 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
        prop = RNA_def_property(srna, "annotation_onion_after_range", PROP_INT, PROP_NONE);
        RNA_def_property_int_sdna(prop, NULL, "gstep_next");
        RNA_def_property_range(prop, -1, 120);
+       RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_ui_text(
                prop, "Frames After",
                "Maximum number of frames to show after current frame");
@@ -1219,6 +1223,7 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
        RNA_def_property_array(prop, 3);
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_float_array_default(prop, default_onion_color_b);
+       RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_ui_text(prop, "Before Color", "Base color for ghosts before the active frame");
        RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
 
@@ -1227,6 +1232,7 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
        RNA_def_property_array(prop, 3);
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_float_array_default(prop, default_onion_color_a);
+       RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_ui_text(prop, "After Color", "Base color for ghosts after the active frame");
        RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
 
@@ -1256,6 +1262,13 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Hide", "Set layer Visibility");
        RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
 
+       prop = RNA_def_property(srna, "annotation_hide", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_HIDE);
+       RNA_def_property_ui_icon(prop, ICON_HIDE_OFF, -1);
+       RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
+       RNA_def_property_ui_text(prop, "Hide", "Set annotation Visibility");
+       RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");
+
        prop = RNA_def_property(srna, "lock", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_LOCKED);
        RNA_def_property_ui_icon(prop, ICON_UNLOCKED, 1);
@@ -1265,6 +1278,7 @@ static void rna_def_gpencil_layer(BlenderRNA *brna)
        prop = RNA_def_property(srna, "lock_frame", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_LAYER_FRAMELOCK);
        RNA_def_property_ui_icon(prop, ICON_UNLOCKED, 1);
+       RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_ui_text(prop, "Frame Locked", "Lock current frame displayed by layer");
        RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, "rna_GPencil_update");