A use case for HOLD_FORWARD is you make a pose, go back and keyframe a pose from the lower-layer animation, then you go forward animating without the previous animation overriding it for not inserting keyframes ahead.
Finally, you can go to the start of the animation, play the old animation then see it transition into the new animation.
This is more like intentional change rather than "regression". Clipping the main action like the strips doesn't make sense, because you can't control the extents of the raw action; more importantly, it also makes the extrapolation setting of the curves largely pointless, and means that action evaluation changes just because some NLA tracks exist. If you actually check, even 'Hold' works differently - try cyclic or linear extrapolation on the action curves. 'Nothing' is preserved because it could be useful for baking out the combined result of the NLA stack, but I don't see any real use case for 'Hold Forward'.
Tue, Jul 9
Considering ideas for redesign of the API, this use of dist_sq to impose a distance limit is unclear (feels like a hack) and possibly should be replaced with a separate explicit parameter to find_nearest, so that the 'nearest' structure always represents a valid result. With a new BVH_NEAREST_REUSE_RESULT flag to control it, this whole bit of code at the start of this function could then potentially be folded into BLI_bvhtree_find_nearest_ex.
Perhaps BVH_NEAREST_OPTIMAL_ORDER should be the default behavior instead (and also ignore the previous result), while the heuristic behavior should be invoked through BVH_NEAREST_REUSE_RESULT or something like that. I did it the way it is currently to avoid changing old code all over the place.
Keeping the previous search result when doing multiple nearest searches is a very important heuristic optimization. Not doing that in shrinkwrap for instance will absolutely butcher performance.
Wed, Jun 19
It seems to me the option wasn't documented in the first place, so nothing to do here?..
Mon, Jun 17
This is an unreported dependency cycle: the IK controller cannot depend on the IK chain bones for obvious reasons. The real bug here is that the cycle isn't reported.
This happens because ui_context_rna_button_active within operators and poll functions invoked for the popover UI elements can't find the actual UI control in the popover, and instead returns the property UI control through the context menu of which the popover was invoked. It seems there is a big issue with context and region management in some popovers, and may require a fix in the UI core rather than a specific operator.
Jun 16 2019
Jun 15 2019
I strongly suspect this may have fixed itself automatically when @Campbell Barton (campbellbarton) removed loading script datablocks as modules.
Jun 12 2019
Jun 5 2019
Until recently PoseBone.bone didn't change id_data to point at the Armature ID, so keyframing or adding drivers via "bones.bone" would insert keys into AnimData of the armature Object. For backward compatibility reasons it probably should work though - for drivers at least I made sure that depsgraph etc is correct for such misplaced cases.
Jun 3 2019
I'm not sure mesh editing operations that are not in any way related to shading should suddenly start setting edges to sharp (there are arguments both way, especially for remove doubles; could be an option, or maybe differ per operator?), so I let it assign 'incorrect' normals and rely on that code to average them out, but in a sensible way.
Jun 2 2019
May 29 2019
@Damien Picard (pioverfour) This should fix the issue with deleting the last feature set.
@Damien Picard (pioverfour) Since feature sets is your contribution, maybe you can test if I broke something for your usage? Feature sets that only use relative import paths for their modules should work without any change, as the only difference should be the full module name.
May 27 2019
Well, the root cause is that ANIM_animchannel_keyframes_loop can only work with BezTriple keyframes. I think a proper fix requires somehow generalizing it to support the other types - maybe by adding more callbacks for each type, or some other way. Of course a simpler fix could be to hack it in the selection operator - currently it seems all selection of GP and Mask keyframes is hacks instead of using generic code, so it won't become much worse than it is.
May 22 2019
May 20 2019
May 19 2019
May 16 2019
To be honest, I'm not familiar with the transform operator code at all. Searching through it I found a comment mentioning a similar 'one handle stuck' problem (seemingly with curve objects), and some kind of hack to avoid that in that case.
May 15 2019
May 14 2019
May 13 2019
This could work with a separate ReportList for 'current dependency issues' that is wiped clean every time depsgraph is recalculated, and if reports could be enhanced to support multiple text lines, and ideally with each one optionally annotated with an object or bone reference for convenient jumping to it.
May 12 2019
@Luciano Muñoz Sessarego (looch) As a test suggested by @Ivan Cappiello (icappiello), I hacked the use of the new parenting utility into the old spine and arm/leg rigs, and here is the result of generating the 'Basic Human' metarig: http://pasteall.org/blend/index.php?id=51732
Drivers are stored in the same place as NLA tracks and other animation data. They are basically special animation curves that use custom input instead of current frame for the horizontal axis - you can even actually use that curve to tune the driver result.
@Luciano Muñoz Sessarego (looch): I implemented a dropdown-like button in Rig Main Properties panel to switch spaces without changing the control position in my system, and added more tentacles to the file so there is a rig hierarchy.
May 11 2019
It seems all mentioned crashes are resolved, so closing.
This crashes in code added by D4733.
I'm pretty sure no drivers are ever removed just because you delete something they drive - the only exception being objects themselves, because drivers are attached to objects and disappear with the owner automatically. Thus this might be entering the domain of feature requests.
Rebased and added filtering of uninteresting lines to reduce noise
(i.e. sequences of jumps between operations inside the same bone)
Rebased, fixed conflicts, and tested that it still works.
May 9 2019
An obvious fix.
May 8 2019
As a quick test I went and implemented a class for managing parents based on my API, following the first 'rigs register' approach, and used it in my demo rig.
Usually for space switching the best way not to have blending but a snap tool similar to the one for ik and fk, but it's much simpler to do, an other is a "space switching" tool that enables animators to do it with ease, with no such thing existing in blender i usually constrain the controllers to be switched to empties, switch spaces in the frames needed or across the entire animation (what i usually preffer), and then bake back to the controllers so that allows me to keep the animation while having that space changed.
May 7 2019
I can only reproduce it with the described steps if I disable the fix for T63332, so unless somebody can confirm this still exists, this bug would be closed.