Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-05-12Depsgraph: Add evaluation callbacks for granular nodes updateSergey Sharybin
This commit only adds callbacks which then later be used with major dependency graph commit, keeping the upcoming commit more clean to follow. Should be no functional changes so far still.
2015-04-04Cleanup: use BKE_animdata_* prefixCampbell Barton
2015-03-28Fix for earlier commit - Turning off "animated" influence/time didn't workJoshua Leung
Reshuffled order that in which NLA Strip's F-Curves vs its automatic settings are evaluated so that the automatic settings can always override the custom settings, since it's not that easy to get things working correctly the other way around.
2015-03-28Fix T36385: Animated Strip-Time doesnt updateJoshua Leung
This commit implements proper evaluation + keyframing support for animating influence and time on NLA Strips (among other properties) by resolving a few long standing issues which prevented the original design for this from working. The original design for animating these properties (and/or some of the other settings on NLA Strips) is that NLA Strips actually have some of their own F-Curves that are used for animating settings which will affect how they are evaluated. As seen in this bug report, the alternative of having these animated as part of the stack (which the strips work above/outside/on-top of) means that glitches can occur. Although one of the original considerations for why this wasn't implemented earlier was that introducing keyframes there isn't so clean cut, and causes UI design issues for how we expose these via the animation editors for editing (NOTE: support for that is still to come). Another concern is that this sets a precedent for how FModifiers might get evaluated.
2015-02-28Fix for NLA Solo/Mute behaviourJoshua Leung
The Solo and Mute functionality for the NLA system should really be mutually exclusive features. They both affect whether a given track applies or not. The only difference is that the Solo option mutes all the others, while the Mute only does this on a per track basis. Before this fix, muting a strip and then making it solo meant that the solo'd track would not play at all, which isn't really what we want.
2015-01-26Cleanup: strcmp/strncmp -> STREQ/STREQLEN (in boolean usage).Bastien Montagne
Makes usage of those funcs much more clear, we even had mixed '!strcmp(foo, bar)' and 'strcmp(foo, bar) == 0' in several places...
2015-01-26Fix T38619: Confusing logic for Keying Set keyframing SettingsJoshua Leung
The logic used for determining whether certain keyframing settings (i.e. visual, only needed, xyz -> rgb) got applied was wonky. The original intention here was that the Keying Set settings would override the global settings, and the path settings would override what was used for the Keying Set. However, that was not happening in all cases previously, as it was only possible to add flags and not to turn them off. This commit fixes that by introducing separate toggles to control whether the Keying Set/Path's settings override the settings inherited from its parent (i.e. the Keying Set for the Path, and the User Prefs for the Keying Set). The icons used for these toggles could get revised a bit (we need something which communicates "override this"; the current one is the closest I could find) WARNING: If you have old keying sets, this may cause some breakage!
2015-01-22Fix: Joining armatures fixes up the drivers accordinglyJoshua Leung
Finally! At long last, I've gotten this working! This ended up being far trickier to get right than anticipated; the normal remapping API's cannot be used as-is as they will just clobber over subtleties whenever datablock changes are involved. So, for now, we have to duplicate the logic a bit.
2015-01-21Fix: Joining armatures loses driversJoshua Leung
Currently, when joining two armatures, the drivers of the armatures being merged in are lost. This commit introduces a new AnimData API function for merging animation data into another AnimData block. NOTE: * For now, this only copies the drivers over. As a result, manual effort will still be needed to go through and fix the drivers. I am working on automating that process, but it's more important that the drivers don't have to be created from scratch for now (since this is needed for the Goosberry rigging work).
2014-12-01Cleanup: more int->bool.Bastien Montagne
2014-11-30Grease Pencil - Storyboarding Features (merge from GPencil_EditStrokes branch)Joshua Leung
This merge-commit brings in a number of new features and workflow/UI improvements for working with Grease Pencil. While these were originally targetted at improving the workflow for creating 3D storyboards in Blender using the Grease Pencil, many of these changes should also prove useful in other workflows too. The main highlights here are: 1) It is now possible to edit Grease Pencil strokes - Use D Tab, or toggle the "Enable Editing" toggles in the Toolbar/Properties regions to enter "Stroke Edit Mode". In this mode, many common editing tools will operate on Grease Pencil stroke points instead. - Tools implemented include Select, Select All/Border/Circle/Linked/More/Less, Grab, Rotate, Scale, Bend, Shear, To Sphere, Mirror, Duplicate, Delete. - Proportional Editing works when using the transform tools 2) Grease Pencil stroke settings can now be animated NOTE: Currently drivers don't work, but if time allows, this may still be added before the release. 3) Strokes can be drawn with "filled" interiors, using a separate set of colour/opacity settings to the ones used for the lines themselves. This makes use of OpenGL filled polys, which has the limitation of only being able to fill convex shapes. Some artifacts may be visible on concave shapes (e.g. pacman's mouth will be overdrawn) 4) "Volumetric Strokes" - An alternative drawing technique for stroke drawing has been added which draws strokes as a series of screen-aligned discs. While this was originally a partial experimental technique at getting better quality 3D lines, the effects possible using this technique were interesting enough to warrant making this a dedicated feature. Best results when partial opacity and large stroke widths are used. 5) Improved Onion Skinning Support - Different colours can be selected for the before/after ghosts. To do so, enable the "colour wheel" toggle beside the Onion Skinning toggle, and set the colours accordingly. - Different numbers of ghosts can be shown before/after the current frame 6) Grease Pencil datablocks are now attached to the scene by default instead of the active object. - For a long time, the object-attachment has proved to be quite problematic for users to keep track of. Now that this is done at scene level, it is easier for most users to use. - An exception for old files (and for any addons which may benefit from object attachment instead), is that if the active object has a Grease Pencil datablock, that will be used instead. - It is not currently possible to choose object-attachment from the UI, but it is simple to do this from the console instead, by doing: context.active_object.grease_pencil = bpy.data.grease_pencil["blah"] 7) Various UI Cleanups - The layers UI has been cleaned up to use a list instead of the nested-panels design. Apart from saving space, this is also much nicer to look at now. - The UI code is now all defined in Python. To support this, it has been necessary to add some new context properties to make it easier to access these settings. e.g. "gpencil_data" for the datablock "active_gpencil_layer" and "active_gpencil_frame" for active data, "editable_gpencil_strokes" for the strokes that can be edited - The "stroke placement/alignment" settings (previously "Drawing Settings" at the bottom of the Grease Pencil panel in the Properties Region) is now located in the toolbar. These were more toolsettings than properties for how GPencil got drawn. - "Use Sketching Sessions" has been renamed "Continuous Drawing", as per a suggestion for an earlier discussion on developer.blender.org - By default, the painting operator will wait for a mouse button to be pressed before it starts creating the stroke. This is to make it easier to include this operator in various toolbars/menus/etc. To get it immediately starting (as when you hold down DKEy to draw), set "wait_for_input" to False. - GPencil Layers can be rearranged in the "Grease Pencil" mode of the Action Editor - Toolbar panels have been added to all the other editors which support these. 8) Pie menus for quick-access to tools A set of experimental pie menus has been included for quick access to many tools and settings. It is not necessary to use these to get things done, but they have been designed to help make certain common tasks easier. - Ctrl-D = The main pie menu. Reveals tools in a context sensitive and spatially stable manner. - D Q = "Quick Settings" pie. This allows quick access to the active layer's settings. Notably, colours, thickness, and turning onion skinning on/off.
2014-11-21Cleanup: typoCampbell Barton
2014-10-06Fix T40350: Some texture prop did not have visual feedback they were driven.Bastien Montagne
This is only a (hacky) partial fix, actually, since `RNA_property_animated()` will still not work in those cases... Better that than nothing, though. Thanks to Campbell for review.
2014-08-05SpellingCampbell Barton
2014-08-02SpellingCampbell Barton
2014-07-31Fix T41236: Rendered viewport doesn't update with material actionsSergey Sharybin
The issue was caused by NLA evaluation without actions not setting id's flag as updated (as that's happening when action writes data to the ID datablock). Added the same flag set for the NLA evaluation as what's happening for actions.
2014-07-19Defines: replace ELEM3-16 with ELEM(...), that can take varargsCampbell Barton
2014-07-06Code cleanupJoshua Leung
- Fixed incorrect section heading - Missed one place where short was still used when the specific enum type would be more appropriate
2014-06-21Fix T40727: Renaming nodes did not correctly fix animation paths.Lukas Tönne
2014-06-13Code cleanup: BLI_strdupn -> BLI_strdupCampbell Barton
2014-05-29Comments: Note direction in doxy argsCampbell Barton
2014-05-29Cleanup: Use doxy for more structured commentsCampbell Barton
2014-05-10Replace inefficient use of strstr with STRPREFIX macroCampbell Barton
2014-05-09Fix for random crashes when grabbing (rmb-drag) NLA stripsJoshua Leung
Although these crashes were quite sporadic, they seemed to happen most when rmb-dragging strips randomly in quick succession. The most likely cause seems to be a null check I accidentally took out during one of my commits yesterday.
2014-05-08Bugfix T40082: NLA Meta strips were no longer evaluating correctlyJoshua Leung
It seems that since the changes to how new NLA strips are handled, accumulating these in a temporary buffer and then trying to combine the results didn't work that great anymore.
2014-05-06Cleanup: redundant NULL checksCampbell Barton
2014-05-04NLA Eval Bugfix: Influence settings on active action didn't workJoshua Leung
* The automatically calculated influence was overriding the value we were passing into the dummy strip, making this seem like it doesn't work * Made some tweaks to prevent some potential memory-related bugs - nlastrips_ctime_get_strip() actually saves off references to the list of strips it gets, so declaring dummy_strip in an inner scope like this could potentially be quite dangerous - Prevented a potential memory leak for the early abort when there are no strips for whatever reason (it shouldn't occur though)
2014-04-26Code cleanup: use 'const' for arrays (blenkernel)Campbell Barton
2014-04-11Code cleanup: use boolCampbell Barton
2014-04-07Fix T39623: deleting an object crashesCampbell Barton
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-03Fix T36496: unwanted behavior with NLA strip blend mode Replace.Brecht Van Lommel
If you have two overlapping NLA strips it automatically blends between them. However it was also blending between the first strip and the rest pose (e.g. 0,0,0 for locations and 1,1,1 for scale). This is ok if the blend mode is Add or Multiply since then you are adding onto the rest pose, but for Replace you want to be able to mix between two poses and not take the rest pose into account at all. What this does is that to not do any blending for the first strip if it has blend mode Replace. If someone wants the old behavior (from bugfix commit 27d792fa9ca1) they can still make an action with the rest pose and use that as the first strip.
2014-02-22Code cleanup: styleCampbell Barton
2014-02-07ListBase API: add utility api funcs for clearing and checking emptyCampbell Barton
2014-01-27Code cleanup: use booleans where appropriateCampbell Barton
2014-01-22Fix T38306: dupliframes causing viewport render to continually restart.Brecht Van Lommel
Evaluating the animation is causing the object to get tagged as changed, but in this case it's not a permanent change so no one should be notified. Also found a case where the persistent ID for duplis wasn't unique, fixed that as well.
2014-01-01Fix crash happening in Cycles fcurve modifierSergey Sharybin
Summary: Crash was happening because of fcurve modifier stack used modifier's DNA to store temporary data. Now made it so storage for such a thing is being allocated locally per object update so multiple objects which shares the same animation wouldn't run into threading conflict anymore. This storage might be a part of EvaluationContext, but that'd mean passing this context all over in object_where_is which will clutter API for now without actual benefit for this. Optimization notes: storage is only being allocated if there're Cycles modifier in the stack, so there're no extra allocations happening in all other cases. To make code a bit less cluttered with this storage passing all over the place added extra callbacks to the FModifier storage which runs evaluation with the given storage. Reviewers: brecht, campbellbarton, aligorith CC: plasmasolutions Differential Revision: https://developer.blender.org/D147
2013-11-10replace IS_EQ -> IS_EQF for use with floats.Campbell Barton
2013-11-05Correcting a few typosJoshua Leung
2013-11-02Quick test commit - fixing what looks like a typo in a commentJoshua Leung
2013-10-22Bugfix: Renaming bones now renames the corresponding F-Curves in actions used byJoshua Leung
Action Constraints
2013-10-01style edits and use macro for prefix checkCampbell Barton
2013-10-01bugfix [#32346] Node animation, removing nodes keeps FCurves.Dalai Felinto
The same bug happens for modifiers, but better to address it separately. Contribution and review by Lukas Toenne and Brecht van Lommel
2013-09-16replace RNA_property_array_length with RNA_property_array_check where the ↵Campbell Barton
length of the array is only used to check if the property is an array or not. (this isnt reliable since arrays can be zero length).
2013-07-28move alloca define into its own header since its not related to BLI_arrayCampbell Barton
2013-07-01Bugfix [#35856] Bones gets scaled chaotically when during NLA Strip Blend In/OutJoshua Leung
This was one of the consequences of r.57333 (i.e. influence shouldn't be ignored on the first strip that animates a channel), as scale should really default to a base value of 1 (instead of things being blended against 0 as per all other properties). The end result was that bones were getting scaled to zero here when the influence of their strip fell to zero. Now, we use the RNA default values of properties to initialise their initial values. This may/may not work well in all cases: 1) For properties which don't have the appropriate RNA defaults set, this will be problematic. But, most properties people are likely to animate here I think are already set up correctly. 2) It may not always be nice to have values "snapping back" to default values. In this case, you should still be defining a strip at the bottom of your NLA stack which defines what the appropriate rest poses *should* be for your shot.
2013-06-10Bugfix [#35382] NLA "Multiply" Blend Mode calculated incorrectlyJoshua Leung
The "Multiply" blending mode for NLA strips worked incorrectly. Instead of modulating the influence of the current strip, it was in fact scaling the result of the entire stack (with the strip applied). This caused problems when influence = 0, as it was in fact muting everything instead of just controlling the strip we are interested in.
2013-06-10Made blender compilable with strict flags again.Sergey Sharybin
Maybe Joshua would want to check on arguments for nlaevalchan_verify.
2013-06-10Bugfixes [#35263], [#35382] NLA Animated Influence is ignored if strips belowJoshua Leung
have zero total influence Previously, when evaluating the NLA stack at a particular point in time, if a channel hadn't been encountered before, influence values were simply ignored when accumulating the values contributed by each strip to the overall stack. This behaviour simplified the handling of the problem of what "baseline" to blend relative to (i.e. influence basically scales the magnitude of a scalar around 0, but we may not exactly want a property to get it's value set to 0 as baseline). However, the problem was that this meant that you'd get popping artifacts when the a lower strip finally reaches influence=0 but your upper strips haven't fully reached maximum yet ([#35382]). Another problem was that you'd end up with less ability to scale the influence of all strips (as in [#35263]). So, as a stop-gap fix now, we will allow influence scaling to work on these strips too. This still doesn't fix some of the other problems regarding baselines/rest-poses and deterministic behaviour when some channels are only keyed in one strip which isn't set to extend it's influence... Fixing those issues is a bit more involved, and would require a bit of refactoring of how we keep track of accumulation channels.
2013-05-26code cleanup: typosCampbell Barton