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
2010-12-29Consistency cleanups for AnimData stuff:Joshua Leung
Some AnimData looping functions were not updated to take into account the addition of AnimData for some additional datatypes (i.e. meshes and lattices) as well as the changes to make nested nodetrees (i.e. for Material and Texture nodes).
2010-12-13Lattices now have AnimDataJoshua Leung
This allows manual (point by point) animation of their control verts, although many other settings cannot really be animated with any visible effects yet. Interestingly, lattices also had IPO block pointers, though they were never really used (AFAIK). Todo: - Animation Editor support has yet to be added. I've got a few other things to add to, so will group those changes together.
2010-12-03Enabled GCC -Wwrite-strings warning for CMake and replaced many 'char's for ↵Campbell Barton
'const char's,. Only one functional change where Transform orientations passed "" to BIF_createTransformOrientation() which could then have the value written into.
2010-11-25Spline IK Bugfix:Joshua Leung
Binding code had off-by-1 error, which meant that when "Even Divisions" was disabled the length of the wrong bone would get used. This error was most noticeable when the lengths of the bones were quite different - for example, a chain with 3 bones of increasing length. Thanks to "Julius" on BlenderArtists for catching this. Cheers! --- Also, simplified the binding code loop a bit to prevent this sort of error in future.
2010-11-23use zero initializers instead of memset(), also change PointerRNA_NULL from ↵Campbell Barton
an extern into a define.
2010-11-23Partial fix for #24773: Material Nodes - there isn't able to set keys on ↵Joshua Leung
Mapping coordinates Playback now works. The problem was that material/texture nodetrees were getting ignored completely, as I was assuming that all of these existed in the main->nodetree collection when in fact only the "group" nodetrees lived there. I don't really agree with this, but that's the way it is... TODO: animation editor support still to come
2010-11-09bugfix [#24403] Object.copy() duplicates armature actionCampbell Barton
now duplicating ID data wont duplicate actions by default and the user preference is used with duplicate operators.
2010-11-05tedious string copying changesCampbell Barton
- use sizeof() in more places. - fixed some off by 1 bugs copying strings. setting curve font family for instance was 1 char too short. - replace strncpy and strcpy with BLI_strncpy
2010-11-05Bugfix #24535: File saved with NLA Strip in Tweakmode crashes on reloadJoshua Leung
Now the active strip doesn't just get cleared on fileload, but is relinked properly. I had originally intended that files shouldn't be able to be saved with NLA data still in Tweakmode, but this turns out to be a bit more troublesome to get working as that would make undo keep popping out of this mode too. Also reverting 32743 (bugfix for 24418), which was a hack around this.
2010-10-27bugfix [#24418] NLA Crashes blender on UndoCampbell Barton
2010-10-21Changes to "evaluation time" for Curves:Joshua Leung
After discussions with Campbell regarding #24336 and #24309, we've decided to make this property for curves to only get set when an F-Curve explicitly animates it. As a consequence... - ALL OLD FILES using follow-path constraints that depended on this changed behaviour will currently need manual patching to add an appropriate F-Curve - Ctrl-P (Parenting to Curves -> Follow Path option) will now automatically create such F-Curves mimicking the old behaviour so that creating camera-following-path setups still works smoothly. - Directly adding a Follow Path constraint bypasses this, so you'll need to manually add such F-Curves if you need them. The main problem with the old approach was that there were many cases in which curve data could get added but the ctime would be incorrect until a frame change (i.e. on render) flushed this.
2010-10-16editors/space_* build without unused args warningsCampbell Barton
2010-10-16Bugfix #24143: Edit NLA StripsJoshua Leung
When editing an action used by a NLA strip and editing it 'in place' (controlled by pin icon on green 'tweaking' channel), the animation would only get played back in the action's original frame range while the keyframes were still displayed in the strip-altered positions.
2010-05-17Drivers Bugfix:Joshua Leung
Renaming bones now correctly fixes drivers referencing those bones. This includes driver paths and driver variables.
2010-05-13use ID_REAL_USERS macroCampbell Barton
2010-03-23Keying Sets: BuiltIn vs Absolute TweaksJoshua Leung
This commit clarifies the somewhat "murky" separation between "builtin" and "absolute" KeyingSets as a result of discussions with Cessen. * "Builtin" Keying Sets are now just the Keying Sets which in the past have been known as PyKeyingSets or Relative KeyingSets. These are registered from Py Scripts at startup, and will use the context info to determine what data they should be keyframing. These are stored per Blender session, independent of files, since usually these will be coded specific to sets of rigs used at a studio. * "Absolute" Keying Sets are the ones that you can create from the Scene buttons and/or KKEY or RMB over any property. They specify the exact set of properties which should always get keyframed together. These are stored in the scene. In relation to this, I've made it possible to now set one of the builtin Keying Set types as the active Keying Set. * For now, this can only be done via the box beside the insert/delete key operator buttons on the TimeLine header (now complete with an recycled icon - HINT TO ICON DESIGNERS, to make this a bit more obvious). Later on I'll commit an operator to set this via a hotkey. * The "IKEY" menu will only show up when there is no active Keying Set. When there is one, keying will happen silently (with info notice at the top of the screen). Later on, I'll hook this menu up to a hotkey, so that that active Keying Set can be changed without inserting keyframes or clearing active Keying Set... * By default, there isn't any default Keying Set enabled. IMO, this is probably a good default, though some might like to have LocRotScale instead. * I'm not terribly impressed with the search menu for the items being SORTED (and of all things, alphabetically!) currently, since this does break muscle-memory with the menu (and jumbles up order of closely related vs not closely related). * The Scene buttons for KeyingSets still need some changes to fully cope with users setting builtin KeyingSets as active sometimes. Controls which are useless or shouldn't be used when a builtin set is shown are being shown. Builtin set registrations have been tweaked a bit: * Renamed "bl_idname" to "bl_label" for consistency with rest of API. Note that this is the identifier used by Blender internally when searching for the KeyingSet, and is also what the user sees.
2010-03-22spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text)Campbell Barton
2010-03-21removed unused includes, except for physics and particle related filesCampbell Barton
2010-03-20merge own commits into render branch into trunk since 27560Campbell Barton
27562, 27570, 27571, 27574, 27576, 27577, 27579, 27590, 27591, 27594, 27595, 27596, 27599, 27605, 27611, 27612, 27613, 27614, 27623
2010-03-17PyKeyingSet Bugfixes:Joshua Leung
* With multiple objects selected, only one of the objects got keyframed. The code which was checking for duplicate paths was wrongly assuming to ignore the ID-block used still. * Not registering a Keying Set as 'builtin' would crash on startup. I've made all Keying Sets fallback to adding as if they were local for now, but a better solution is coming soon. * Fixed a typo in RNA function wrappers for the generator callback, since it was looking for the iterator only. This doesn't seem to have caused any problems (thankfully).
2010-03-16Fix [#21165] Moved textures don't move the animation curvesMatt Ebb
2010-03-16== Massive Keying Sets Recode ==Joshua Leung
After a few days of wrong turns and learning the finer points of RNA-type-subclassing the hard way, this commit finally presents a refactored version of the Keying Sets system (now version 2) based on some requirements from Cessen. For a more thorough discussion of this commit, see http://sites.google.com/site/aligorith/keyingsets_2.pdf?attredirects=0&d=1 ------ The main highlight of this refactor is that relative Keying Sets have now been recoded so that Python callbacks are run to generate the Keying Set's list of paths everytime the Keying Set is used (to insert or delete keyframes), allowing complex heuristics to be used to determine whether a property gets keyframed based on the current context. These checks may include checking on selection status of related entities, or transform locks. Built-In KeyingSets have also been recoded, and moved from C and out into Python. These are now coded as Relative Keying Sets, and can to some extent serve as basis for adding new relative Keying Sets. However, these have mostly been coded in a slightly 'modular' way which may be confusing for those not so familiar with Python in general. A usable template will be added soon for more general usage. Keyframing settings (i.e. 'visual', 'needed') can now be specified on a per-path basis now, which is especially useful for Absolute Keying Sets, where control over this is often beneficial. Most of the places where Auto-Keyframing is performed have been tidied up for consistency. I'm sure quite a few issues still exist there, but these I'll clean up over the next few days.
2010-02-27* Renaming some Keying Sets API functions to make the terminology more ↵Joshua Leung
consistent in the UI * Fixed bug with hotkeys for adding properties to Keying Sets using the KKEY over the relevant buttons. Was calling the remove callback instead.
2010-02-18constraints unique name length was set too long (could overrun the buffer), ↵Campbell Barton
use sizeof() with other instances of BLI_uniquename too
2010-02-12correct fsf addressCampbell Barton
2010-01-30A few minor code cleanup tweaks for recent commits in animation code, to ↵Joshua Leung
better follow conventions elsewhere here :)
2010-01-30deleting objects which were driver targets would crash blender.Campbell Barton
added a utility function BKE_animdata_main_cb which loops over all AnimData's of all ID's
2010-01-27Bugfix #20752: Background Image Panel Properties Keyframing?Joshua Leung
Added a check in RNA_property_animateable() which checks if the base ID-block can have animation data or not. Screen data currently cannot have animation data, so this solves that problem (where there were non-functional entries there in the menu).
2010-01-26Radians vs Degrees: The Second AttemptJoshua Leung
F-Curves now internally store radians again instead of degrees. - This solves problems with inconsistencies when working with drivers. - No need to version patch old files, potentially screwing them up. As such, removed the version patching for F-Curves. - Is better suited to optionally showing radians throughout the UI instead or degrees. As a result, values are now converted on the fly in the Graph Editor for display and operators that operate on values. I've made the conversion system for this rather general, so that other unit type conversions can also be hooked up with the type conversion backend. Also, made some tweaks to F-Curve RNA wrapping to make it represent the data better. TODO: - Transform code currently still needs to be corrected to work with these changes. Currently moving keyframes for rotation curves will make them change too rapidly vertically when using degrees.
2010-01-25Radians -> Degrees (in UI)Matt Ebb
Rotations are now stored internally as radians, while exposing degrees in the UI - in the graph editor and UI controls. This is done in two areas: 1) Using the unit system to convert RNA data to display as degrees in the UI controls 2) FCurves now use degrees for rotation, so you can edit in the graph editor what you see in the UI. All rotation data is consistently accessible in DNA and RNA as radians, degrees are only used for the UI controls and graph editor. This commit includes conversions will convert old files (stored data and also fcurve data) to the new units, hopefully everything should go smoothly! Part of this also changes a few properties that were hard-coded as degrees before (such as IK pole angle and brush texture rotation) to also use the same consistent system of radians (dna/rna) and degrees (ui). Thanks to Joshua for hints and review here too.
2010-01-12Proxy Protection FixesBrecht Van Lommel
* Mostly revert #24880: Transform Locks affecting animation system. This was implemented as a feature request from Nathan but was not the intended functionality, and actually gives problems instead. The transform locks should really only affect what the user can do, not if the property can be animated internally. * Revert #25868: fix for lib linked scenes not animating. This was needed due to the above feature, but meant that all lib linked properties were editable in the UI. * Make bone properties of on proxy-protected layers not editable. They will be overriden on reload/redo like lib linked data, so should not be edited.
2010-01-10Make linked animdata working again, copies NLA too, as well as ObData ↵Campbell Barton
animdata where types match
2010-01-05More Driver Fixes:Joshua Leung
* Fixed Driver version-patching code to work correctly again with the new system. * Fix for bug #20484, by adding a new driver variable type ('Transform Channel') which makes it easier to use object/bone transforms as in the past. The main differences with using this (compared with the 'Single Prop' type) are that this allows for 'final' transforms to get used instead (i.e. constraints are also taken into account), and also that this variable type can only be used for transforms (more limited scope -> less flexibility -> point-n-click goodies can follow). Mancandy now loads correctly again. * Added toggle for local vs worldspace transforms when working with Rot/Loc Diff variable types, and also for the newly added Transform Channel * Removed some dead code from sequencer...
2010-01-05Durian Request: Drivers RecodeJoshua Leung
Highlights: * Support for Multi-Target Variables This was the main reason for this recode. Previously, variables could only be used to give some RNA property used as an input source to the driver a name. However, this meant that effects such as Rotational Difference couldn't be used in conjunction with other effects and/or settings to achieve the powerful results. Now, a variable can take several input targets, perform some interesting operations on them, and spit out a representative value based on that. * New Variable Types With the introduction of multi-target variables, there are now 3 types of variable that can be used: single property (i.e. the only type previously), Rotational Difference (angle between two bones), and Distance (distance between two objects or bones). * New Driver Types In addition to the existing 'Average', 'Sum', and 'Expression' types, there is now the additional options of 'Minimum' and 'Maximum'. These take the smallest/largest value that one of the variables evaluates to. * Fix for Driver F-Curve colouring bug Newly added drivers did not get automatically coloured in the Graph Editor properly. Was caused by inappropriate notifiers being used. Notes: * This commit breaks existing 2.5 files with drivers (in other words, they are lost forever). * Rigify has been corrected to work with the new system. The PyAPI for accessing targets used for the variables could still be made nicer (using subclassing to directly access?), but that is left for later. * Version patching for 2.49 files still needs to be put back in place.
2009-12-28Mesh Animation + Depsgraph Tweaks:Joshua Leung
* Mesh data/settings can now be animated. It is not recommended that geometry be animated directly, but other settings such as autosmooth, etc. can be... * Code cleanups for depsgraph, making sure that drivers get included for all object data types.
2009-11-25AnimSys - Transform Locks + RNA:Joshua Leung
The Animation System now respects the Transform Locks too (i.e. lock x-location, etc.) when writing settings. This means that it is no longer necessary to set up "constant drivers" to make sure some values don't get accidentally animated. Internally, added a new callback for properties in RNA, which is responsible for checking if the item at some array-index is editable. This needs to be manually called for each place which uses rna to set settings for arrays (see the code changes in anim_sys.c for changes how to do this; the same thing needs to be done in the UI code too, and probably in py-api too)
2009-11-18rename pose_channels to bonesCampbell Barton
was: object.pose.pose_channels["Bone"] now: object.pose.bones["Bone"]
2009-11-10Math LibBrecht Van Lommel
* Convert all code to use new functions. * Branch maintainers may want to skip this commit, and run this conversion script instead, if they use a lot of math functions in new code: http://www.pasteall.org/9052/python
2009-10-22Two fixes:Joshua Leung
* RNA Path fixing when renaming data now checks if a path in question cannot be resolved before trying to fix it. This should reduce the number of misindentified cases I hope. * Silenced compiler warnings for EdgeSlide stuff that mingw was making about unused variables.
2009-10-20Fixes for Path-Renaming Fix:Joshua Leung
* Now the old/new names get tagged with [" "] before the search and replace operation, which should alleviate problems with searching for 'bone' and ending up with all instances of 'boney' 'boney.r' etc. also getting renamed. * Cleaned up some compiler warnings, and removed an unused function from an earlier attempt at this work.
2009-10-20Bugfix #19663: Renaming named data doesn't fix F-CurvesJoshua Leung
RNA Paths used in F-Curve, Drivers, etc. now get renamed when some data that they use gets renamed. This only works when things like Bones, Constraints, Shape Keys, and Modifiers get renamed, but other cases can get added easily. The code here only performs simple string replacements, so there is the potential for problems when several sets of data with the same names are present. For example, if there are multiple armatures with bones that have the same names, renaming a bone on one armature (with a bone on another armature having the same name) will break all the drivers on the other one, even though they aren't really connected. However, I don't expect the aforementioned scenario to really be a problem in most production scenarios.
2009-10-03Keying Sets UI:Joshua Leung
Added a way to view and edit Keying Sets via the Scene Buttons. These are still some tweaks needed to make this really workable, but should still work well enough for simply viewing and tweaking existing Keying Sets created using other means. Additional bugfixes: * Adjusted the size of labels on properties that had a 'label' for their name. Now it uses 1/3 of the total width instead, which looks much better for most cases. * Added missing entries for adding Force Fields from the Info-header 'Add' menu. At some point we should unify this menu with the popup operator's one, since this is exactly the kind of situation we had hoped in avoid with new UI architectures. * Moved all the operator defines for keyframing stuff to the 'intern' anim header instead
2009-09-30Animato: BugfixesJoshua Leung
* #19501: Only the first user of multi-user IPO's were getting converted to AnimData. Now, this AnimData gets converted multiple times - once for each user. This will mean that multi-user actions will no longer be multi-user after conversion though, although this could be fixed manually if there really is such a need. * #19503: Nasty memory leaks when duplicating objects with AnimData Fixed a few little oversights made when coding the copying code for NLA-data (which resulted in exponential copying-loops of doom), and sanitised the AnimData copying code for ID-blocks to be simpler to manage.
2009-09-272.5 - Assorted Animation UI/Editing TweaksJoshua Leung
Main Feature: * It is now possible to choose which AnimData block is the 'active' one for editing, and/or select them too. AnimData blocks are generally the dark blue and lighter-blue expanders (i.e. Scene, Object, Camera, Lamp, Curve, Armature, etc.) * Objects are no longer selected/deselected when AKEY is used to toggle selection of channels. This was getting a bit annoying. * Following on from selection of AnimData blocks, it is now possible to select/make active an AnimData block in the animation editors, and change the active action for that block via the 'Animation Data' panel in NLA Editor's properties region. --> Be aware that user-counts are not totally handled correctly there yet, so some funky behaviour might be seen... --> It is possible to assign a new action, or to assign an existing one, allowing to switch between actions as in the past with Actions/IPO Editors... Other tweaks: * Some code tweaks towards making the 'Euler Filter' feature for Graph Editor working sometime soon * Added some backend code for snapping the values of keyframes to a single value. Still need to work out some UI for it though. * Shuffled the code for ACT_OT_new() around, and removed the poll() callback so that it worked in NLA too. * Fixed some more notifier bugs with deleting bones and a few other editmode operations for Armatures.
2009-09-222.5 - Animation TweaksJoshua Leung
* delta-transforms for objects should work again. These were basically extra transforms that could get added on top of the values calculated from animation values. * Added some skeleton code for fixing paths when some data needs to be renamed.
2009-09-21* Added AnimData for Armature data, for animating armature/bone settings.Matt Ebb
This allows you to do funky things like animating the number of segments in a b-bone.
2009-09-192.5 - More Animation BugfixesJoshua Leung
* Updating Preview Range settings results in correct updates for Animation Editors * Compositing nodes now correctly animate when the values were set by IKEY/RMB on suitable node parameters. Beware that these nodes are not relinkable node-trees, hence the standard code not working. * Ctrl-P to parent objects to bones now works in Pose Mode too. I needed to add a special keymap entry for this, though I thought this would have been better to be automatically inherited/present from Object keymap already? * Ctrl-P -> Parent to Bone option now works correctly again. 1.5 lines of code missing here... * Breakdowns tool now shows custom cursor during 'modal' phase so that it's not that confusing what's going on.
2009-09-172.5 - Animation Utility FunctionJoshua Leung
Added a utility function to check which transforms for an object or bone are animated, returning these as bitflags and/or optionally retrieving the relevant F-Curves too. Beware that this method may not be working correctly yet, but it shouldn't hurt anyone in the meantime :) Also, split RNA-path building function up into a version which only creates the path up to the given struct, with the other parts being added later.
2009-09-14use static functions where possible for some local functions.Campbell Barton
2009-09-112.5 - Bugfix for curve-following animation not workingJoshua Leung
Optimisation for not working with AnimData when there were no actions meant that the special hack to set this value didn't get set.