Humn, I really wish drivers didn't create anything. The vast majority of drivers do not use mapping other than 1-1 (in my experience). I'd prefer an easy way to add 1-1 curve when the user wants to instead of doing stuff the user never asked for!
cheers Daniel Salazar patazstudio.com On Mon, Sep 2, 2013 at 6:28 PM, Joshua Leung <aligor...@gmail.com> wrote: > Revision: 59757 > > http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59757 > Author: aligorith > Date: 2013-09-03 00:28:23 +0000 (Tue, 03 Sep 2013) > Log Message: > ----------- > Tweaks to New Driver creation behaviour > > * 'Show Debug' now enabled for all newly created drivers. For most users, it > is > useful to be able to see this to help figure out what's going on > > * Removed failed experiment of creating new drivers with Generator > FModifiers. I > had hoped that this would make it easier to create drivers that doubled or > halved the input values, but that has proved to not be the case, and instead > made harder for most users to set things up (as they'd have to remove these > first). > > Now, when adding drivers from the UI, these get created with two keyframes (at > (0,0) and (1,1) for a 1-1 mapping), which can be easily tweaked normally. > > However, for backwards compatability of scripts (notably rigify, and perhaps > some others out there), when creating drivers from scripts, they will still > get > created with Generator FModifiers for now. We can review this situation again > for 2.7, but for now it seems ok. > > Modified Paths: > -------------- > trunk/blender/source/blender/editors/animation/drivers.c > trunk/blender/source/blender/editors/animation/keyframing.c > trunk/blender/source/blender/editors/include/ED_keyframing.h > trunk/blender/source/blender/python/intern/bpy_rna_anim.c > > Modified: trunk/blender/source/blender/editors/animation/drivers.c > =================================================================== > --- trunk/blender/source/blender/editors/animation/drivers.c 2013-09-02 > 23:32:21 UTC (rev 59756) > +++ trunk/blender/source/blender/editors/animation/drivers.c 2013-09-03 > 00:28:23 UTC (rev 59757) > @@ -75,7 +75,8 @@ > * for the given Animation Data block. This assumes that all the > destinations are valid. > * > * - add: 0 - don't add anything if not found, > - * 1 - add new Driver FCurve, > + * 1 - add new Driver FCurve (with keyframes for visual > tweaking), > + * 2 - add new Driver FCurve (with generator, for script > backwards compatability) > * -1 - add new Driver FCurve without driver stuff (for > pasting) > */ > FCurve *verify_driver_fcurve(ID *id, const char rna_path[], const int > array_index, short add) > @@ -114,11 +115,38 @@ > > /* if add is negative, don't init this data yet, since it > will be filled in by the pasted driver */ > if (add > 0) { > + BezTriple *bezt; > + size_t i; > + > /* add some new driver data */ > fcu->driver = MEM_callocN(sizeof(ChannelDriver), > "ChannelDriver"); > + fcu->driver->flag |= DRIVER_FLAG_SHOWDEBUG; > > - /* add simple generator modifier for driver so that > there is some visible representation */ > - add_fmodifier(&fcu->modifiers, > FMODIFIER_TYPE_GENERATOR); > + /* F-Modifier or Keyframes? */ > + // FIXME: replace these magic numbers with defines > + if (add == 2) { > + /* Python API Backwards compatability hack: > + * Create FModifier so that old scripts won't > break > + * for now before 2.7 series -- (September 4, > 2013) > + */ > + add_fmodifier(&fcu->modifiers, > FMODIFIER_TYPE_GENERATOR); > + } > + else { > + /* add 2 keyframes so that user has something > to work with > + * - These are configured to 0,0 and 1,1 to > give a 1-1 mapping > + * which can be easily tweaked from there. > + */ > + insert_vert_fcurve(fcu, 0.0f, 0.0f, > INSERTKEY_FAST); > + insert_vert_fcurve(fcu, 1.0f, 1.0f, > INSERTKEY_FAST); > + > + /* configure this curve to extrapolate */ > + for (i = 0, bezt = fcu->bezt; (i < > fcu->totvert) && bezt; i++, bezt++) { > + bezt->h1 = bezt->h2 = HD_VECT; > + } > + > + fcu->extend = FCURVE_EXTRAPOLATE_LINEAR; > + calchandles_fcurve(fcu); > + } > } > > /* just add F-Curve to end of driver list */ > @@ -166,8 +194,10 @@ > > /* will only loop once unless the array index was -1 */ > for (; array_index < array_index_max; array_index++) { > + short add_mode = (flag & CREATEDRIVER_WITH_FMODIFIER) ? 2 : 1; > + > /* create F-Curve with Driver */ > - fcu = verify_driver_fcurve(id, rna_path, array_index, 1); > + fcu = verify_driver_fcurve(id, rna_path, array_index, > add_mode); > > if (fcu && fcu->driver) { > ChannelDriver *driver = fcu->driver; > > Modified: trunk/blender/source/blender/editors/animation/keyframing.c > =================================================================== > --- trunk/blender/source/blender/editors/animation/keyframing.c 2013-09-02 > 23:32:21 UTC (rev 59756) > +++ trunk/blender/source/blender/editors/animation/keyframing.c 2013-09-03 > 00:28:23 UTC (rev 59757) > @@ -256,7 +256,7 @@ > dst->f1 = bezt->f1; > dst->f2 = bezt->f2; > dst->f3 = bezt->f3; > - > + > /* TODO: perform some other operations? */ > } > } > > Modified: trunk/blender/source/blender/editors/include/ED_keyframing.h > =================================================================== > --- trunk/blender/source/blender/editors/include/ED_keyframing.h > 2013-09-02 23:32:21 UTC (rev 59756) > +++ trunk/blender/source/blender/editors/include/ED_keyframing.h > 2013-09-03 00:28:23 UTC (rev 59757) > @@ -222,6 +222,7 @@ > /* Flags for use by driver creation calls */ > typedef enum eCreateDriverFlags { > CREATEDRIVER_WITH_DEFAULT_DVAR = (1 << 0), /* create drivers with > a default variable for nicer UI */ > + CREATEDRIVER_WITH_FMODIFIER = (1 << 1), /* create drivers with > Generator FModifier (for backwards compat) */ > } eCreateDriverFlags; > > /* -------- */ > > Modified: trunk/blender/source/blender/python/intern/bpy_rna_anim.c > =================================================================== > --- trunk/blender/source/blender/python/intern/bpy_rna_anim.c 2013-09-02 > 23:32:21 UTC (rev 59756) > +++ trunk/blender/source/blender/python/intern/bpy_rna_anim.c 2013-09-03 > 00:28:23 UTC (rev 59757) > @@ -312,7 +312,8 @@ > > BKE_reports_init(&reports, RPT_STORE); > > - result = ANIM_add_driver(&reports, (ID *)self->ptr.id.data, > path_full, index, 0, DRIVER_TYPE_PYTHON); > + result = ANIM_add_driver(&reports, (ID *)self->ptr.id.data, > path_full, index, > + CREATEDRIVER_WITH_FMODIFIER, > DRIVER_TYPE_PYTHON); > > if (BPy_reports_to_error(&reports, PyExc_RuntimeError, true) > == -1) > return NULL; > > _______________________________________________ > Bf-blender-cvs mailing list > bf-blender-...@blender.org > http://lists.blender.org/mailman/listinfo/bf-blender-cvs _______________________________________________ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers