Commit Graph

184 Commits

Author SHA1 Message Date
ea4a987fd4 == Massive Keying Sets Recode ==
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-03-16 06:18:49 +00:00
6028470a9c Motion Paths + Auto-Keying:
Revised the conditions under which motion paths get recalculated after transforms (when auto-keying is enabled). Now, the type of path display does not matter, but rather that the object/bone in question has any paths at all. This makes animating with these a much smoother experience.
2010-03-11 11:15:25 +00:00
6a4b39ed2c Bugfix #21508: Hidden bones remain "selected" and are affected by transforms
Made hidden bones get ignored by transform code. This should be quite an old bug...
2010-03-09 08:31:41 +00:00
3b105657d5 option to transform markers in the dope sheet, needed for re-timing animation. currently supports translate and extend.
TODO:
- select markers in dope sheet.
- transform time scale.
2010-03-08 09:06:58 +00:00
ca7b6e2cd0 fix for more crashes with baked fcurves 2010-03-03 13:20:18 +00:00
be44ac7490 * Renaming some Keying Sets API functions to make the terminology more 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-27 02:03:33 +00:00
de574490d2 [#21338] B-Bone display size crash [27127]
EditBones pretending to be pose bone when doing bone resize need a valid object pointer.

Tsk, who thought this was a good idea...
2010-02-26 02:33:04 +00:00
ddc0c68a5c Bugfix #21234: Autokey "insert only available" userpref inserts keys for all bones in an armature
-- 

Bugfix: When autokey is enabled, notifiers to refresh the animation editors *after* transforms finished for objects were missing.
While I understand the need to limit these to not doing this during transform, after transform, this lead to lag/inconsistent UI problems.

-- 

* Added 'Damped Track' Option to 'Make Track' Operator
* Improved the code of the 'Clear Track' operator to include other types of tracking constraint too
2010-02-21 11:42:32 +00:00
cff0110d08 experemental code got mixed up in a patch. removing. 2010-02-18 09:32:24 +00:00
c72ab0a39e topology based mirror, (from apricot branch)
- correct errors with non-mirrored meshes
- mirror weight paint on asymmetrical meshes
2010-02-17 19:50:42 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
9827a3e9ea 2.5 Audio:
- recode of the whole sequencer audio handling
- encode audio flag removed, instead you choose None as audio codec, added None for video codec too
- ffmpeg formats/codecs: enabled: theora, ogg, vorbis; added: matroska, flac (not working, who can fix?), mp3, wav
- sequencer wave drawing
- volume animation (now also working when mixing down to a file!)
- made sequencer strip position and length values unanimatable
2010-02-07 23:41:17 +00:00
66aa2e0127 PET Connectivity calculation. Adding threshold to take care of possible imprecisions. 2010-02-02 19:51:56 +00:00
26cfe812f8 Proportional Edit Connected: Use connectivity distance for falloff (connectivity distance now also calculated across inner face edges). 2010-02-01 21:31:32 +00:00
0e1eca2d08 Finishing off the Transform code changes for Degrees/Radians:
Added flags for the mapping function offering more control over what values were affected and when. In the WIP code, the values for unselected verts were getting the restoration conversion being repeatedly applied, resulting in the values tending to zero.
2010-01-26 09:25:32 +00:00
07a4986be7 WIP commit - degree conversions for transform fcurve editing - grabbing a point works fine, but still
issues with grabbing a single handle.

Using the Radians unit setting still goes fine though so you can use that for now.
2010-01-26 05:58:03 +00:00
cbb23d96bb Added simplification back for quicker preview renders with less subdivision
levels, child particles, and shadow/SSS/AO quality.. Now also works on what
is displayed in the 3d view instead of only rendering, see panel in the scene
properties.

Most file changes were to make scene available in the isDisabled modifier
callback function.
2010-01-25 11:39:56 +00:00
a8855e2caf Drivers UI: Debug Info
Feature request for ZanQdo, which shows the intermediate values used in driver calculations (i.e. current value of driver, and current value of variables), allowing drivers expressions to be debugged. This is a per-driver setting...
2010-01-19 23:38:26 +00:00
7165008b35 Motion Paths are now recalculated again after transforms (with autokeying and around-current frame displays enabled) 2010-01-19 21:44:22 +00:00
39ff5d7eb9 Reverting changes made in r25940 with the NLA unmapping.
The reverted code was just blindly restoring the old state of the keyframes; changes to selection state, value changes, handle type, etc. were overridden, and the cases where keyframes were deliberately retimed or otherwise were also ignored.  

I'm not sure what problems these changes were meant to be solving, but will reassess the situation when I get more info on this.
2010-01-15 10:34:39 +00:00
b39be60075 NLA: fix keyframes getting messed up when making strips longer. For drawing
and other operations the nla mapping would be applied to the curves, but not
restored correctly. The unmap function was not the inverse of the map function,
and it's not clear to me it's even possible to make it so due to repeat, so
now the old coordinates are backed up in a list and then restored afterwards.
2010-01-12 21:20:09 +00:00
63e80e271d Bugfix: drivers on constraint properties could get set to invalid when
transforming, due to the evaluation of the object transform without
constraints, and the driver not finding the property.

Constraints are now disabled in a way that should avoid this problem
2010-01-12 19:51:26 +00:00
000dcc7ad7 [#19960] When Loop Cutting, no Edge Sliding in Face Select Mode, but works in other Select Modes
Force edge select (internally) when running edge slide.
2010-01-12 19:44:23 +00:00
f7f98f3b05 Proxy Protection Fixes
* 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-12 17:08:28 +00:00
a9aea7e6bf Edge Crease Transform is back. Now in edge menu (Ctrl-E) with Edge Slide and the rest. 2010-01-09 20:42:35 +00:00
9c82e1efc3 Bugfix 20469: Graph Editor Keyframes jumping around with NLA strips
NLA corrections for Graph Editor transforms was wrong way around, causing jumping issues when trying to transform the keyframes.
2009-12-27 01:28:13 +00:00
1f8cd19d4b removing sequence strip overlap didnt adjust the animation key time
single images were not having their animation data transformed correctly
made sequence strip opacity 0-1 rather then 0-100 in RNA
2009-12-21 16:57:39 +00:00
509c2e9614 Bugfix: [#20403] transform manipulation widgets with normal coordinates
Disable manipulator drawing during transform
2009-12-17 17:50:55 +00:00
8aa8efb327 * rna attributes for sequence strips - seq.start_frame_final & seq.end_frame_final
these expose the final start and end after offsets are applied. when set this is like grabbing the handle and moving it.
* made swapping strips shuffle effects and check for overlap.
2009-12-15 11:27:46 +00:00
b1a39375e5 Keyframing Bugfixes and Feature Requests:
* Added a User-Pref option for the "XYZ to RGB" colour-mode setting for new F-Curves to compliment the one used for Keying Sets. With this option enabled, the builtin Keying Sets also can obey this option.

* Made all places that were previously manually checking the flags for keyframing to use a standard API function to do this now.

* Fixed bug introduced earlier today in commit 25353 by reverting the changes to keyingsets.c. Forgot that delete_keyframe doesn't handle do the "entire array" hack with array_index = -1

* Fixed bug with the insert-keyframe code for the array_index = -1 case, where too many channels were being keyed (i.e. an imaginary channel was often keyed in addition to the valid ones)
2009-12-14 12:09:20 +00:00
2c3eb59f0f A few KeyingSet + Transform Tweaks:
Autokeying for transform functions now gets context-info, allowing for bone paths to be recalculated. 

However, the main purpose of this is to allow KeyingSets to eventually have poll functions.
2009-12-14 03:20:17 +00:00
abe8c09b8a * renamed BKE_sequence.h and sequence.c --> sequencer
* renamed util.c --> path_util.c since there are more then 1 of these files which makes setting breakpoints annoying.
2009-12-13 14:56:45 +00:00
00b8e65f0a very very bad hack to have sequencer strips fcurve data transform with them.
ifdef'd so its not kept in by accident.
Committing because without this animating with the sequencer isnt really usable and am not interensted in having many patches applied on artists systems.
2009-12-09 16:46:41 +00:00
2ef0ee76a0 Fix for [#20249] duplicating a mesh in edit mode with a lattice modifier
Removed lattice and curve modifiers from being correctable for crazy space - it didn't work and was giving weird results.
2009-12-09 01:53:04 +00:00
7f580d0734 transforming metastrips didnt move effects within them & remove warning 2009-12-08 19:27:19 +00:00
ba0981031a Assorted warning and comment fixes 2009-12-06 09:37:31 +00:00
42970d81fc Bugfix #20190: Scaling Bone Joints in envelope drawmode
Made scaling selected joints using SKEY work in the same way as in 2.4x 

However, it'd probably be nice to be able to have separate hotkeys for this at a later stage.
2009-12-03 10:18:47 +00:00
d86a27f7b6 Bugfix: crash when no active object
Misc fixes.
2009-12-02 00:53:33 +00:00
2b121e6599 Pose Bone Local Location: now also works for non-connected bones with parents. 2009-11-25 18:48:29 +00:00
b129ccf000 Pose Bone "Local Location" option. This is enabled by default, disabling it
puts the bone location in pose space rather than local bone space.
2009-11-25 14:59:02 +00:00
99f8809b1a auto IK constraint was added twice, creating a circular list (HANG!) 2009-11-17 15:51:28 +00:00
53250f85db object.constraints.add()/remove()/active, same for PoseChannel
modified internal api for minimal rna wrapper functions.

TODO
- missing updates for pose channels
- typecheck for pose/object constraints
2009-11-11 19:58:30 +00:00
37e4a311b0 Math Lib
* 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-11-10 20:43:45 +00:00
bd88c3e944 moving nodes would crash because it ran object update functions 2009-11-02 16:55:06 +00:00
39021ac4ea after transform update didn't run because of stupid typo 2009-11-01 20:09:03 +00:00
69feedf139 Object PET works with autokey.
Reordering some function calls in transform cleanup to make it simpler (that means other fixes are possible too, sequencer probably don't need it's own freeing function anymore).
2009-11-01 02:52:38 +00:00
d5921a274f Proportional edit for object mode.
Limitations:

1) Parents and children of selected objects are excluded from the pool (siblings are ok) Making it work with that would required unparenting and reparenting after transform, that would turn nasty really quick.

2) Does not support Connected (this could be done through parent links, but see 3 first).

3) Parent relationships in affected objects aren't taken into account. When parent and children in the area of effect, remember that the children will also take the motion of the parents (with additive results). This could perhaps be fixed, but it could be nasty.


Other stuff:
New BASE_EDITABLE macro that checks if base is editable (like TESTBASELIB except it doesn't check for selection)
Add scene parameter to TESTBASELIB_BGMODE macro (using it from current scope is nasty)
2009-10-30 17:48:50 +00:00
49d7a2c51a Fixes for AutoKeying + File Loading Prints:
* AutoKeying was broken after the fix to get automerge working again in 3D view. The 3D-View check was swallowing the processing before autokeying could be done. Separated these out again.

* The error print when some external data couldn't be found for objects was missing a newline.
2009-10-27 23:21:26 +00:00
3266e10456 Proper cast to silence warning and comment to explain WTH is happening here. 2009-10-27 18:50:26 +00:00
e76ce369bb Compiler warning fixes for mingw:
* There's an unresolved error in transform_conversions.c which I've flagged in this commit. I'm not quite sure what the exact intentions of that code were (i.e. was the "void_pointer = 1" really intended)
2009-10-27 09:38:15 +00:00