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
2017-11-02Merge branch 'master' into blender2.8Campbell Barton
2017-11-01Implement a new automatic handle algorithm to produce smooth F-Curves.Alexander Gavrilov
The legacy algorithm only considers two adjacent points when computing the bezier handles, which cannot produce satisfactory results. Animators are often forced to manually adjust all curves. The new approach instead solves a system of equations to trace a cubic spline with continuous second derivative through the whole segment of auto points, delimited at ends by keyframes with handles set by other requirements. This algorithm also adjusts Vector handles that face ordinary bezier keyframes to achieve zero acceleration at the Vector keyframe, instead of simply pointing it at the adjacent point. Original idea and implementation by Benoit Bolsee <benoit.bolsee@online.be>; code mostly rewritten to improve code clarity and extensibility. Reviewers: aligorith Differential Revision: https://developer.blender.org/D2884
2017-10-18Merge branch 'master' into blender2.8Campbell Barton
2017-10-18Merge branch 'master' into blender2.8Campbell Barton
2017-10-18Cleanup: Use const for RNA EnumPropertyItem argsCampbell Barton
Practically all access to enum data is read-only.
2017-10-17Make auto handle placement aware of cyclic extrapolation.Alexander Gavrilov
Cyclic extrapolation is implemented as an f-curve modifier, so this technically violates abstraction separation and is something of a hack. However without such behavior achieving smooth looping with cyclic extrapolation is extremely cumbersome. The new behavior is applied when the first modifier is Cyclic extrapolation in Repeat or Repeat with Offset mode without using influence, repeat count or range restrictions. This change in behavior means that curve handles have to be updated when the modifier is added, removed or its options change. Due to the way code is structured, it seems it requires a helper link to the containing curve from the modifier object. Reviewers: aligorith Differential Revision: https://developer.blender.org/D2783
2017-07-11Merge branch 'master' into blender2.8Sybren A. Stüvel
2017-07-11Fix: Accidentally left debug print in last commitJoshua Leung
2017-07-11Fix T52009: F-Curve "Stepped interpolation" modifier "restrict frame-range" ↵Joshua Leung
IN and OUT parameters cannot be edited The problem here was that the "frame_start" and "frame_end" RNA properties of the Stepped FModifier were shadowing/overriding "frame_start" and "frame_end" properties of the base FModifier. As a result, when the range() callback for the In/Out parameters (defined as part of the base FModifier) checked it's start/end properties, they were always still zero, meaning that the acceptable range for the In/Out parameters was 0 -> 0 = 0. Note: If you've got old files with this problem, you'll need to manually click on the frame_start/end properties to flush out the old values. It's probably not worth the effort of applying a version patch for this (given that this modifier is not one of the most often used ones AFAIK).
2017-06-08Replace all old DAG calls with direct calls to new DEG and remove ↵Luca Rood
BKE_depsgraph.h This removes BKE_depsgraph.h and depsgraph.c
2017-03-24Fix various i18n ambiguous issues reported in T43295.Bastien Montagne
2016-12-12Refactor RNA property: split flags in property flags, parameter flags, and ↵Bastien Montagne
internal flags. This gives us 9 flags available again for properties (we had none anymore), and also makes things slightly cleaner. To simplify (and make more clear the differences between mere properties and function parameters), also added RNA_def_parameter_flags function (and its clear counterpart), to be used instead of RNA_def_property_flag for function parameters. This patch is also a big cleanup (some RNA function definitions were still using 'prop' PropertyRNA pointer, etc.). And yes, am aware this will be annoying for all branches, but we really need to get new flags available for properties (will need at least one for override, etc.). Reviewers: sergey, Severin Subscribers: dfelinto, brecht Differential Revision: https://developer.blender.org/D2400
2016-09-22RNA/UI: Allow displaying in tooltip why RNA property isn't editableJulian Eisel
This commit allows RNA properties to return additional info on their editable state which may then be displayed in tooltips. To show how it works, it also adds some info for the editable check of proxies. For generally un-editable properties or properties of a linked data-block, RNA returns default strings. | {F362785} | {F362786} | {F362787} | Reviewed by brecht, thanks! Differential Revision: https://developer.blender.org/D2243
2016-07-31Improve description for use_self py-driver optionCampbell Barton
2016-07-30Py-Driver: add 'self' optionCampbell Barton
Drivers can use this to refer to the data which the driver is applied to, useful for objects, bones, to avoid having to create a variable pointing to its self.
2016-07-07Dopesheet: Added "Moving Hold" as a keyframe typeJoshua Leung
Currently "long keyframes" are only useful for indicating where stationary holds occur. If however you try to create a "moving hold" (where the values are slightly different, but in terms of overall effect, it's still a hold) then it could get tricky to keep track of where these occur. Now it's possible to tag such keyframes (using the keyframe types - RKEY) as being part of a moving hold. These will not only be drawn differently from normal keyframes, but they will also result in a "long keyframe" being drawn between each pair of them, just like if they had been completely stationary instead. Currently the theming/styling of these is a bit rough. They reuse the existing theme colours for long keyframes.
2016-06-27FCurve Auto Colours: "XYZ to RGB" works for Quaternions too nowJoshua Leung
The "W" channel will get a yellowish colour (i.e. a blend between the X/R and Y/G axis colours), while the XYZ will behave as they do for other transforms.
2016-04-26Fix T48211: Modifying an F-Curve modifier property is not updating the 3D windowSergey Sharybin
2016-04-16Assorted enum tweaksJoshua Leung
* Knock out "Python" FModifier entry - It really hasn't been coded yet! * Add icon for "Match Indices" driver eyedropper mode. It should help provide a bit more of a hint of what it does, but it also doesn't look quite as nice now.
2016-04-16Experimental Drivers UI Tweak: Use icons for variable typesJoshua Leung
This commit aims to streamline the driver variables layout a bit * Each variable type now has an icon. (The loc diff and rot diff ones are placeholders, which could deserve something better/dedicated if we continue to use this) * Instead of taking up an entire row, the variable type dropdown now only shows an icon, and is located before the variable name field. Feedback wanted: Is this more/less confusing than it was?
2016-04-15Drivers Editing: Added "Copy/Paste" buttons beside "Add Variable" for ↵Joshua Leung
copying all variables from one driver to another This was a feature request from a few years back (IIRC from ZanQdo?) to make it easier to reuse one set of driver variables across several different drivers. Dev Notes: * Finally it's done! All that trouble for two little buttons. * Grr... cmake... grrr!
2016-04-05Fix T48054: Blender 2.77 doesn't import blenders fbx, due to recent changes ↵Bastien Montagne
in anim RNA API. Please do not break API when not absolutely needed, here it was a mere parameter order issue...
2016-03-24Drivers UI: Added name validation/linting for Driver VariablesJoshua Leung
When attempting to change a driver variable name to an "invalid" name, an indicator will now be shown beside the offending variable name. Clicking on this icon will show a popup which provides more information about why the variable name cannot be used. Reasons that it knows about are: 1) Starts with number 2) Has a dot 3) Has a space 4) Starts with or contains a special character 5) Starts with an underscore (Python does allow this, but it's bad practice, and makes checking security of drivers harder) 6) Is a reserved Python keyword
2016-03-13Fancy procedural icons for Keyframe TypesJoshua Leung
The new "default keyframe type" dropdown on the timeline header (and also the "Keyframe Type" operator/properties in other places) now has procedurally generated icons which reflect what that keyframe type will look like when rendered in the Dope Sheet. This was achieved using the ancient "VICON" (vector icon) stuff that's lurking around in the dark parts of UI code. From memory, the only other things that use (or used to use) this stuff included some of the triangle icons for some dropdown buttons, or something like that. Notes: * Theme colour changes are reflected immediately by these icons. This is possible because they are all drawn procedurally * These icons scale with the DPI setting. I manually guessed the size of these icons. They can be adjusted further if needed. * I've documented the steps for adding voodoo icons like this on the wiki (http://wiki.blender.org/index.php/Dev:2.7/Source/Checklists/Vector_Icon) * It's true that the rendering of these keyframes doesn't quite fit the rest of the icons in the UI. However, since we're just leveraging the standard keyframe drawing methods (to avoid discreptancies between the two), we'll leave it as such for now. Maybe later we can consider blending in a bit of the glossy keyframe icons in the Icon Sheet?
2016-03-13Compile fix for LinuxJoshua Leung
2016-03-13Keyframing: Added ToolSetting for choosing default keyframe typeJoshua Leung
To make it easier for animators working in a multipass pose-to-pose workflow when inserting breakdown keyframes and so forth, it is now possible to specify the "type" of keyframe being created (i.e. the colour of the keyframe, when drawn in the Dope Sheet). Usage: 1) Choose the type of keyframe ("Keyframe", "Breakdown", "Extreme", etc.) from the new dropdown located between the AutoKeying and KeyingSet widgets on the timeline header. 2) Insert keyframes 3) Rejoyce that your newly created keyframes have now been coloured for you already in the DopeSheet. Todo: * Look into a way of using the actual keyframe colours (from the theme) for the icons of these types.
2015-11-23Cleanup: use `rna_enum_` prefix for RNA enumsCampbell Barton
Definitions could shadow local vars.
2015-03-30Cleanup: use const for typeinfoCampbell Barton
2015-01-16FCurve RNA API: add funcs to convert to samples/to keyframes.Bastien Montagne
So far, we had an operator to 'bake' keyframe curves into samples, but no way to make the fcurve editable again (i.e. to convert it back into a keyframes one). Needed to fix mocap addon (see T43259). Also, fixed a glitch in `fcurve_store_samples()`, since given end frame is included in range, it is valid to give same start and end frame (in case you want a single point in samples, not much practical cases, but...).
2014-08-13RNA: use static declarationsCampbell Barton
2014-05-14FCurve: move add modifiers logic from menu into dynamic enumCampbell Barton
2014-05-14FCurve: stop generic rna update from changing curve handle typeCampbell Barton
2014-05-08Drivers: When editing expressions from UI buttons, "invalid" flags now get ↵Joshua Leung
cleared from the drivers With this change, there should hopefully be less need to hit "Update Dependencies" on drivers so often.
2014-04-29Code cleanup: simplify reallocs using MEM_recallocCampbell Barton
2014-04-29Ignore user-preferences when inserting keys from PythonCampbell Barton
2014-04-28"Auto" option for Keyframe.easingJoshua Leung
This option (alongside the Ease In/Out/InOut options already available) aims to make it easier to get an initial curve that looks closer to the one you were expecting, by automatically picking whether Ease In or Ease Out should be used based on the type of interpolation being used for the curve segment in question. Notes: * The types chosen may need some adjustments (e.g. using ease in-out instead of just ease in) * This does break compatability with files saved in previous dev builds, but only if you were using Bounce/Elastic/Back with "Ease In"
2014-04-28Patch T39855: Icons for Interpolation Types (and Robert Penner easing)Joshua Leung
This patch adds icons for each of the keyframe interpolation types (including the easing equations), as well as icons for the easing type options. Icons made by: Paulo José Oliveira Amaro (pauloup) Reviewed by: Joshua Leung, Thomas Beck
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-03-31Fix T39405: Make "amplitude" for elastic easing more intuitive to useJoshua Leung
Previously, amplitude was more of an "absolute" value in the sense that whatever value you set it to became a sort of "maximum bounce" height. However, it turns out that this approach isn't so nice when dealing with large gaps between the values of two keyframes, as the elastic easing equations expect that "amplitude > |change|" (where change is the difference in values from key1 to key2). Now, the "amplitude" value we pass to the easing functions are "|change| + amplitude". This is easier to control, as now, as soon as you start changing that value, there are immediately visible effects.
2014-03-24Code cleanup: styleCampbell Barton
2014-03-21Patch T22084: Robert Penner Easing Equations for FCurvesJoshua Leung
This commit introduces support for a number of new interpolation types which are useful for motion-graphics work. These define a number of "easing equations" (basically, equations which define some preset ways that one keyframe transitions to another) which reduce the amount of manual work (inserting and tweaking keyframes) to achieve certain common effects. For example, snappy movements, and fake-physics such as bouncing/springing effects. The additional interpolation types introduced in this commit can be found in many packages and toolkits (notably Qt and all modern web browsers). For more info and a few live demos, see [1] and [2]. Credits: * Dan Eicher (dna) - Original patch * Thomas Beck (plasmasolutions) - Porting/updating patch to 2.70 codebase * Joshua Leung (aligorith) - Code review and a few polishing tweaks Additional Resources: [1] http://easings.net [2] http://www.robertpenner.com/easing/
2014-03-19Usual UI messages fixes...Bastien Montagne
2014-03-07Some initial tooltips for FModifiersJoshua Leung
These are quite rough and could use some more attention to read better
2014-03-07Added tooltips for various F-Curve RNA definesJoshua Leung
2014-03-07Fix T38774: Changing extrapolation type via RNA doesn't update FCurveJoshua Leung
- Added update callback to perform on-update validation when changing the extrapolation mode on F-Curves - There was a patch in the tracker for adding an "update()" method to F-Curves which does a similar thing when manually called by scripts. Since we've added a function for this in RNA anyways, we might as well add this too while we're at it. (NOTE: upon closer inspection, the original patch by Tom Edwards had a number of issues, so I ended up reimplementing here)
2014-03-07Fix T38774: Added missing notifier flags for updating F-Curve after changing ↵Joshua Leung
extrapolation from RNA
2014-03-07Code cleanup - Extra comments + Reshuffling a few methodsJoshua Leung
2014-02-10Patch T38282/D295: Add a time offset to the FCurve Noise ModifierBassam Kurdali
FCurve Noise Modifer now has an extra float property which offsets the noise in time. This is useful for creating follow through in procedurally animated noise. For example, if you've used a noise modifier on a parent bone to add additional movement, a quick and easy way to add overlapping motion is to create copies of that modifier on its children, and then offset the time those curves play at. See this in action at: http://youtu.be/Ph6fk_z_k3k Reviewed By: Joshua Leung
2013-12-19Fix missing F-Curve Generator modifier updates from the Python API.Peter Staples
The poly_order and mode properties were missing update and range, now they match the UI code. Reviewed By: brecht Differential Revision: http://developer.blender.org/D116
2013-12-17Fix T37103: Keyframing custom properties issue (FCurve would not reflect ↵Bastien Montagne
Custom props type changes). Add an helper func to re-compute integer-only fcurve flags, and call it when editing custom props. Reviewed by aligorith, thanks! Summary: Proposal fix for "keyframing custom properties issue" (T37103). Reviewers: aligorith Maniphest Tasks: T37103 Differential Revision: http://developer.blender.org/D111