Commit Graph

609 Commits

Author SHA1 Message Date
2bd22ec559 Animation Editors: Name-based filtering
I'm finally yielding to months of feature requesting, and adding
support for filtering F-Curves by name, where the "name" here is the
text which is displayed for each F-Curve in the Animation Editor
channel lists.

To use, just enable the magnifying-glass toggle on the DopeSheet
filtering settings, and enter a snippet of text to find within the
names of channels you wish to filter. This is case insensitive, and
currently doesn't support any wildcard/regrex fanciness.

Some examples:
loc  <--- location curves only
x loc <--- x location curves only
x eul <--- x rotation curves only
rot <--- rotation curves only
etc.
2011-04-01 12:21:41 +00:00
a73c3fe5c9 subsurf, derived mesh and other misc files: floats were being implicitly promoted to doubles, adjust to use floats. 2011-03-27 17:22:04 +00:00
617e6a83bc object/paint/misc-files: floats were being implicitly promoted to doubles, adjust to use floats.
- also UV angle stretching was using radians->deg which wasn't needed.
2011-03-27 14:59:55 +00:00
7beca3d142 Bugfixes due to recent RNA renaming:
* Driver F-Curves were not getting fixed by the "FCurve/Driver Version
Fix" tool. This was causing problems such as shapekey drivers from
older (2.56 compatible rigs) failing to run. As well as renaming the
paths for these Driver F-Curves, the "disabled" flags also get cleared
from these drivers so that they can be run again

* "Revive Disabled F-Curves"  operator in Animation Editors can now be
used to revive disabled drivers too.
2011-03-26 23:42:51 +00:00
422f1674bb fix for using uiItemIntO for an enum, added uiItemEnumO_value function. 2011-03-24 12:36:12 +00:00
3ebb9676c1 fix for incorrect array use when freeing fcurve modifier envelope points, array also wasnt NULL'd on freeing which gave memory errors later on. 2011-03-24 09:59:02 +00:00
3b0a42f898 Reshuffled utility function to keyframe drawing API, removing some
duplicate code
2011-03-24 03:19:30 +00:00
eef811a095 Animation Tool: Propagate Pose
This tool automates the process of copying a pose to successive
keyframes, making it easier for animators to go back and change the
pose for some controls which remain "static" for periods of time.
Previously, animators would need to do a "{Ctrl-Pageup Ctrl-V} *
number_of_static_keyframes" dance for each set of controls that this
happened on, which is not too good ergonomically speaking.

There are two modes exposed via the menu (Pose->Propagate):
- "Pose Propagate" - also known as the 'WHILE_HELD' mode, which
propagates to all keyframes that are holding the same value
- "To Next Keyframe" - which only propagates the pose to the closest
keyframe in the occurring after (but not including) the current frame

Additionally, there are a few other modes that can be used, though
they are less useful for direct use from the UI, though they can be
used via the PyAPI as need be.

---

Also, I did some cleanups in the "Pose" menu to bring it more into
line with the Object mode one. There are some more tweaks that could
still be done here, such as bringing the keyframing operator entries
under a submenu too (as in the Object mode version) to get the length
of this under control.
2011-03-24 03:02:34 +00:00
7609370d50 Bugfixes:
- Sync Markers option works for local markers (or any other list of
markers in future) too now.
- Apply Pose to Restpose operator now displays a warning if an action
was found (warning about the action now being invalid)
2011-03-14 10:45:42 +00:00
0c734577f4 Bugfix [#26484] delete keyframe in pose mode --> segmentation fault 2011-03-13 09:27:28 +00:00
80de27914d Bugfix [#26222] Alt-O (smooth) in Graph editor destroys fcurve handle
type and data

Recoded Keyframe Smoothing operator to work better for continuous
curves (i.e. ones with monotonically increasing slopes in sections) as
opposed to hypothetically jagged ones.

The old method assumed that handles should be flat as otherwise, you'd
often get unsmooth curves just because you went and tilted some of the
handles for local extrema, causing some unkeyframed overshoots, which
also leads to changes in timing, which in turn often means unsmooth
motion. Hence, the code took advantage of this to do things with less
extra data.

However, now we have a proper "flatten handles" tool (under snap ->
horizontal) so this functionality is not needed in the general case
where it will lead to stair-stepping artifacts.
2011-03-12 01:09:40 +00:00
cda0460c89 Bugfix [#26438] : While grabing a marker with G, cancelling with Esc
does exit cancelling the translation (as expected), while RMB doesn't,
it works same as LMB

This should fix the remaining issues with marker tweak-grab mappings
(hardcoded for right-mouse for now)
2011-03-11 00:18:10 +00:00
aa6c975fa8 Bugfix #26394
Using Marker menu (dopesheet) didn't work, the operators themselves
were checking Y coordinate of event.
Handlers also support boundbox checks. For this case it needed a bit
special handling. But works :)
2011-03-07 18:05:41 +00:00
5e75835524 Shrinking the marker mouse-y tolerance again. It was a bit too high,
making normal transforms get caught too often. I've got a few more
methods that I'll be trialling in the near future
2011-03-02 23:40:32 +00:00
Nathan Letwory
95100afc12 doxygen: blender/editors tagged. 2011-02-27 20:29:51 +00:00
4ed5cd6cef == UI icons ==
* Change ICON_NULL --> ICON_NONE to avoid two #defines with the same meaning.
2011-02-27 18:03:19 +00:00
2e5eb41522 pedantic warning cleanup, also remove texspace_edit() since its been added using a different method. 2011-02-27 08:31:10 +00:00
1cbdc6c4d4 Small animation tweaks:
- Fixed problem where just trying to replace existing keyframes would
result in the intepolation set on that keyframe to get lost. This was
mostly an issue if trying to re-block some animation in the middle of
a shot, with the rest of the keys set to Bezier, but the first
keyframe in this new segment needing to be Constant so that we don't
get sloppy automatic interpolation in the way

- Hooked up Media-Play/Stop/Next/Prev controls to animation playback
and keyframe jumping functionality in default keymap in addition the
existing controls. I'm also considering whether to migrate Next/Prev
Keyframe key mappings off the Ctrl-PageUp/Down keys for a more
ergonomic option (i.e. shift <, shift >)
2011-02-27 01:53:05 +00:00
7a55884b62 Added operator which makes selected scene markers into local 'pose'
markers.

This is useful for when working with lipsync shots, where you've used
markers for noting down key syllables and want to separate these out
into chunks to manage things better.
2011-02-26 06:28:24 +00:00
Nathan Letwory
5b607701a7 doxygen: prevent GPL license block from being parsed as doxygen comment. 2011-02-23 10:52:22 +00:00
Nathan Letwory
322ff7dfe4 I swear, it was just an innocence change in guardedalloc!
The butterfly wing flap, causing a nice storm in the rest of blender.

Now all dependencies should point ok again. CMakers, do double-test.
2011-02-21 12:35:04 +00:00
38e7084179 Bugfixes:
- Fix for crash with Keying Sets when a Keying Set path has no ID-
block to target
- Info window now indicates the types of the reports shown by
colouring their entries if the entries are not selected.
2011-02-20 21:32:21 +00:00
27e812d697 Clear some compiler warnings by commenting some functions, adding others to headers.
left in warnings where functions obviously need to get ported to 2.5x still.

Also, render stamp seq strip works again.
2011-02-17 22:34:41 +00:00
1c32356b4f Marker Drawing Bugfix:
Removed superfluous blend-mode change which was causing some weird
white lines to appear, especially when using some markers that don't
have any names.
2011-02-16 12:00:53 +00:00
8b7482892b made most variables which are only used in a single file and not defined in header static for blenlib, blenkernel and editors. 2011-02-14 17:55:27 +00:00
8ea0b4685c misc small changes:
- rename rna collection structs Main prefix to BlendData: eg, MainObjects --> BlendDataObjects
- printing python collection now prints its type (when available)
- renamed shadowed vars in bpy_rna.c.
- when making functions static I also made debugging/test functions static, reverse and add definitions to headers instead.
2011-02-14 03:15:55 +00:00
4124804b4e many functions in blender are not marked static but should be.
most local modifier,GPU,ImBuf and Interface functions are now static.

also fixed an error were the fluid modifier definition and the header didnt have the same number of args.
2011-02-13 14:16:36 +00:00
0955c664aa fix for warnings from Sparse static source code checker, mostly BKE/BLI and python functions.
- use NULL rather then 0 where possible (makes code & function calls more readable IMHO).
- set static variables and functions (exposed some unused vars/funcs).
- use func(void) rather then func() for definitions.
2011-02-13 10:52:18 +00:00
55f68c3657 fix for more warnings.
- modifier code was using sizeof() without knowing the sizeof the array when clearing the modifier type array.
- use BLI_snprintf rather then sprintf where the size of the string is known.
- particle drawing code kept a reference to stack float values (not a problem at the moment but would crash if accessed later).
2011-02-12 16:54:24 +00:00
fc3b29b637 Small consistency fixups 2011-02-10 09:39:55 +00:00
c397e8b4e0 Bugfix [#25831] Sorting channels broken
Recoded animation channel sorting code. In particular, the old code
didn't handle "islands" of selected items well (i.e. a chain of
several connected items in a row), with some of these cases having
unpredictable results.

There were also some bugs in the way some of the rearranging methods
worked, allowing some invalid operations to be performed. Some of
these probably triggered errors such as some channels getting stuck,
and so on.
2011-02-10 05:15:05 +00:00
99c1a9a427 Bugfix [#25987] Duplicated markers naming issue
One-liner fix - a missing "OPERATOR_FINISHED" on the select operator
was causing problems renaming markers and potentially with other
operations too!

To find this bug, I added debug method to dump the list of markers to
console. This has revealed some troublesome things about the way
markers are organised, which IMO need to be addressed.
2011-02-09 01:05:40 +00:00
3fab280c61 Argh! This code is haunted... (line 666) compiler here isn't barfing
on these errors tonight :/
2011-02-07 12:37:14 +00:00
a399e8c7bb Compiling commit for previous commit... 2011-02-07 11:51:28 +00:00
fd422e58a8 Visual Keying Code Tweaks:
Moving this code to the same method as is used for Apply Visual
Transform (for bones case), which uses standardised decomposition
methods instead of the improvised ones used here before. This was in
an attempt to get IK chains Visual Keyed correctly, though this
doesn't seem to have improved the situation much.

Also, the decompositon for objects here now takes care of euler
rotation modes.
TODO: other rotation modes should get included here too...
2011-02-07 11:38:57 +00:00
a155d8895d Moved Auto-Keying "Insert for KeyingSet only" option from UserPrefs to
Scene (Toolsettings, i.e. alongside "layered" option for using NLA
while doing auto-keying)

This option makes all Auto-Keying operations use the active Keying Set
to carry out keyframing operations instead of picking and choosing
their own Keying Sets to use, thus cutting down on the number of
unwanted keys.

Warning: if the older userpref option was enabled in an old
startup.blend, it may be difficult to turn this option off.
2011-02-04 08:33:07 +00:00
b04bccd44e Bugfix [#25907] Impossible to "select all" on narrow action editors
Marker selection operators now use a special poll() callback which
checks that there are some markers before trying to run them. This
means that when there are no markers, the full screen range is
available, instead of just those areas above the region masked off for
markers which can be quite slim when trying to save space by only
showing the summary channel.
2011-02-02 03:12:39 +00:00
501703020a "Batch-Edit" Code cleanup: Renaming ED_operator_ipo_active to
ED_operator_graphedit_active
2011-02-01 23:51:52 +00:00
efd1d0f901 Bugfix [#25902] alt+a over 3D view don't up date dropesheet editor
Migrating "redraws" settings from TimeLine view data to per Screen.
The options are now still shown in the TimeLine "Playback" menu
though.

This means that whatever redraw settings you set in a TimeLine editor
will be used throughout a screen (i.e. editor layout) to determine
which editors will get updated during playback, instead of only
certain editors doing certain things at vague times.

---

Also, I moved some version patches pre 2.56 version bump into a
version-check for 2.56. These must've been missed when doing the
release...
2011-02-01 23:41:01 +00:00
b8d9d10a65 Action Editor UI Tweaks:
While animating, I realised that actually the 'only selected' and
'include hidden' DopeSheet filtering options are also useful in the
Action Editor, especially while tweaking the animation for some
characters, where you'd like to focus only on some of the character's
control (i.e. eyelid tweaks, hand tweaks, etc.).

The other DopeSheet filtering options aren't so relevant here, so I've
excluded them from this.
2011-02-01 22:21:43 +00:00
1b371fd28d New Keyframe Type: "Jitter"
While doing some animation work over the past few days, I found that
it would be useful to be able to tag keyframes as a another type yet:
"jitter" for fill-in secondary motion (i.e. blinks/hand-keyed camera
shake). Of course, what you really use these for is up to you, but
this is one more option when you need it :)
2011-02-01 11:35:27 +00:00
89c617a116 remove nan-makefiles 2011-01-30 15:29:22 +00:00
8cf1184c04 bad spelling; 'indicies' --> 'indices' 2011-01-18 01:58:19 +00:00
86bbab7de5 remove/comment unused defines. 2011-01-15 16:14:57 +00:00
423fbcfa5c Driver creation hack:
Drivers created from the Properties Editor for Materials and Textures
will now be created on Object-level instead of on their owner
Material/Texture as for their keyframes.

The intention of this hack is to allow users to be able to easily set
up drivers for materials and textures. Without this hack, users would
have had to do this manually via the Datablocks editor (I've described
this method a few times in detail, though this still attracts
complaints), as the way the depsgraph works does not allow ID blocks
other than Objects and directly-linked Object data to be driven. As a
result, although this hack can be done for these two cases, there are
no workarounds possible for Scene and Scene-linked settings.

There are 2 issues that will be noticed with this approach:
1) There may be confusion over why the drivers are found under Object
level and not Material/Texture level.
2) Driver status will not be shown in the buttons, leading to attempts
to try to keyframe the properties directly later and subsequent
confusion when finding that that won't work.

However, these are the sacrifices we'll need to make to get easy-setup
working in the meantime until the proper fixes can be done.
2011-01-14 02:06:35 +00:00
4b922c0bf3 Bugfix [#25597] Grease Pencil crash when undoing during a Sketching
Session

As the key combination for undo was unhandled by Grease Pencil
operator and allowed to execute, some of the lingering Grease Pencil
data would get corrupted by undo as some flags may still have been
set.

This commit attempts to fix.workaround this problem by catching undo
events, using the internal "delete last stroke" functionality to
emulate undo-like behaviour as expected but without the associated
risks. The underlying functionality used was already part of the
original 2.4 implementation, but was exposed via the GUI instead there
where it was less useful.

---

Other tweaks related to Grease Pencil:
1) Spacebar can be used to end Sketching Sessions too now
2) Grease Pencil animation editor now displays GP datablocks in light
blue (i.e. "sub-id") colours as per dopesheet instead of them being
presented like groups. This better reflects their true nature.
2011-01-13 06:14:14 +00:00
8d385404ab bugfix [#25542] do not work? "Bind camera to Markers" 2011-01-11 10:00:21 +00:00
37420b2cf2 use size clamped string copying,
also some compilers complain of using sprintf(val, str) so replace with BLI_strncpy().
2011-01-11 05:58:47 +00:00
571ad40e48 tag unused vars. 2011-01-11 00:21:43 +00:00
ac4eb52abf - Local Markers are now taken into account correctly for operators
that used markers. I might've missed a few still, but at least a few
more cases will work now
- Accidentally broke keyframe selection on group channels in gpencil
commit, after misreading a call name.
2011-01-10 22:31:34 +00:00