Age | Commit message (Collapse) | Author |
|
adding new windowmanager module, and the first bits of new editors
module.
|
|
This option (found in the View menu) shows all Action Channels, regardless of whether the data they represent is visible or not.
It's better than having to have multiple pinned Action Editors open to be able to move all keyframes of all bones at once (when blocking for example).
Also, fixed some compile errors caused by previous commit...
|
|
This little feature snaps the current frame marker to the average frame of all the selected keyframes. Use the hotkey Ctrl-Shift-S to use it.
|
|
Alt-RMB in the key area selects all keys on that side of the current frame line. Shift-Alt-RMB builds selection. Commands are also in the headers.
|
|
Peach Request:
Now the Action and NLA editors have the "Extend" transform mode first seen in the Sequence Editor. Just use the EKEY to start transforming.
It works like Grab, except it only moves the keyframes/side of NLA-strip that was on the same side of the current-frame marker as the mouse was when transform started.
|
|
Added a new auto-snapping mode: snap to nearest marker.
This mode can be toggled using the ALTKEY.
|
|
- added a new redraw type - REDRAWMARKER, at the moment this draws the same windows as REDRAWANIM, but this may not always be true, and it is more explicit whats
happening, This replaced 5 or so draw calls in quite a few places.
|
|
I've refactored the Action and NLA Editor Transform tools to use the Transform System instead of setting up their own transform loops. This should have happened ages ago, but no-one got around to doing so.
* There are still a few bugs left to iron out of a few features, but on the whole it should work as well as it used to. These are: the values which get displayed when working with NLA-scaled actions may not all be correct yet; and the Time-Slide tool in the Action Editor is currently kindof broken.
* One of the main benefits of this work, is that it is now possible to use Numeric Input during Transforms.
* Also, a bug that meant that it was not possible to negatively scale keyframes in the Action Editor has been resolved.
|
|
Now it is possible to do Copy+Paste in the Action Editor, like in the IPO Editor. There are two new buttons in the Action Editor header for this, using the familiar icons.
* To copy...
Select the keyframes you wish to copy, and the channels that they occur in (except for ShapeKey mode, where it is not possible to select channels). Click copy button.
* To paste...
Place the current frame where you want the first of the keyframes from the buffer is to be pasted. Select all channels you wish the keyframes to be pasted into. Click paste button.
Currently, keyframes are only pasted into 'compatible' curves (i.e. LocX keyframes can only go to LocX, and so on). This may change after user feedback, if this is found to be too restrictive.
== Code Changes ==
I've made a few changes which allow this code to be nicer.
* renamed insert_vert_ipo to insert_vert_icu, as that represents its actual purpose better (and changed all occurrences I could find)
* created a new function, insert_bezt_icu, which does the actual inserting of provided BezTriple data to a given IpoCurve
* recoded insert_vert_icu to use this new function, and also the IPO-Editor keyframe pasting (i.e. pasting in Editmode)
|
|
The menu entries for changing Interpolation and Extrapolation modes in the Action Editor weren't working properly (at all).
|
|
* I've replaced the long lists of #defines in header_action.c with enums, which should make that easier to maintain/add new items as needed.
* Added a few comments also
|
|
Part 2 of work from yesterday. Now tools in Action Editor are aware of (work well) with time display in seconds as well.
|
|
The Action Editor can now display timing in seconds too. By default, it still displays timing in frames, but it is possible to switch the time display to seconds.
The hotkey to toggle this is Ctrl T.
Notes:
- Many of the Action Editor's tools have yet to be made aware of this. Therefore, they will still work as though frames are used. Only Transform, Snap, and Mirror should really be affected. This will be fixed when I wake up.
- Nothing *should* be broken, but I might have missed something.
|
|
Resolved Issues:
* My drawing cleanup commit the other day broke shapekey keyframe selection - was using wrong filter for Action Editor data
* Removed the old hack to limit vertical scrolling so that shapekeys were visible. It wasn't really needed anymore, and was causing problems with HomeKey.
Unresolved Issues:
* Vertical placement of sliders is slightly off
* In a test file I obtained, shapekey sliders don't work immediately after the file is loaded.
|
|
I've just spent two days rewriting the Action Editor to unify its code and bring it under control again (it was 107kb, now it is around 73 kb).
* This means that there are no longer separate functions for each tool for Actions and Shapekeys in the Action Editor, and also no more missing tools for either.
* Also, I've gotten rid of the need for those complicated, hierarchial loops used for action channels, as they were a pain to keep consistent with each other.
* Baking functions have been removed. See user-level-changes for more details.
* Reorganised and completely rewrote code in editaction.c, thus the lengthy diff.
User Level Changes:
* For the meantime, border-selecting Action Channels has been disabled
* Baking functions have been removed. As far as I have been able to find out, these were really non-functional anyway. Besides, I don't think they really belonged in editaction.c
* Editing Shapekey keyframes now yields the same feature set as for those in Action Channels.
* There shouldn't be any major bugs left, but I might have missed something.
Further Work:
* Do a cleanup like this to the Action Editor drawing code in drawaction.c
* Baking??? (harkyman seems to be doing something about this)
|
|
Now Action/IPO-Curve/Constraint Channels draw so that they open downwards. The only noticeable differences are that when expanding/collapsing channels, all the channels above won't get shunted out of the way again. Also, on loading some older files, all the channels may be out of view (TODO: make version patch for this...)
|
|
Action Editor: editing of action-channel keys is impossible if shapekeys are present
for that object.
Also, after toggling the 'swimmer' icon in the IPO editor header,on and then off again, then trying to expand/collapse/select/deselect the 'Shape' action channel, Blender would crash.
Not really a showstopper, but still nice to fix. ;-)
|
|
longer asked whether you want to delete the selected markers or keys.
Instead, it more 'logically' deletes anything that is selected.
|
|
Nothing ever called that part of code, and that code was
'not implemented' anyway.
|
|
Blender crashed when selecting column-select options in Action Editor
if there was no action active at the time.
|
|
Final tweaks to Snapping and Mirroring tools:
* Snap To Nearest Marker
* Mirror Values of Horizontal Axis
* Mirror Over Selected Marker
|
|
There's a new selection-box on the header of the action editor, which
sets the mode of auto-snapping for transforms. By default auto-snapping
is off.
There are 3 modes of auto-snap:
* Off - transforms per normal
* Frame Step - grid-step transform (may have errors with scaled actions)
* Nearest Frame - true snap-to-frame (takes into account nla-scaling)
These translate to the following hotkeys when transforming:
* Off - no keys press/held (as it's always been)
* Frame Step - Ctrl (as it's always been)
* Nearest Frame - Shift (replaces old shift-key behaviour which was not useful)
|
|
|
|
* Now it is possible to invert the selection status of keyframes and markers.
These options can only be found in the Select menu in the header.
* It is also possible to select the keyframes that occur within the 2
'extreme' selected markers. Hotkey for this is Ctrl K
|
|
Now it is possible to column select keyframes that occur on the
same frame as selected markers with the hotkey: SHIFT K
More selection goodies to come :-)
|
|
Now it is possible to mirror selected keyframes in the action editor;
either over the current frame or the vertical axis.
Hotkey is: SHIFT M (like in ipo editor).
|
|
Check the menu headers for the correct set of hotkeys to use.
|
|
Now time-markers work in all time-related spaces (i.e. Ipo,
Action Editor, NLA editor, TimeLine, Sound). The hotkeys and
functionality set should be the same for each of these modes
(with a few exceptions still). I've had to change a few hotkeys
here and there, so hopefully they aren't too bad.
Marker Operations:
MKEY - Add Marker
SHIFT MKEY - Rename marker (was CTRL MKEY)
XKEY - Delete Marker
PAGE UP - Jump to next marker
PAGE DOWN - Jump to previous marker
CTRL A - Select all markers
SHIFT G - Transform markers (NLA, IPO, Action)
G - Transform markers (Sound, Timeline)
CTRL SHIFT D - Duplicate markers (NLA, IPO, Action)
SHIFT D - Duplicate markers (Sound, Timeline)
BKEY - select markers and other keyframes (if any)
I've also made a few little tool additions to NLA and Action editors:
* NLA editor - Snap To Frame.
Now with the option to offset strip so that it starts at the current frame.
Added menus for this.
* Action editor - Snap To Frame
A few new menus for this too
|
|
display in action editor header when there was a set of markers +
an action.
|
|
- now draws on correct height
- selection is clipped correctly (did entire height)
- made showing scene markers default
Actually this implementation should have been a patch review... it was
done with entirely duplicating the code from timeline.c, whilst re-use
and generalizing markers has a preference. That way markers can become
supported in any time-based editor.
Will send an extensive review to Joshua Leung :)
|
|
and also fixes some further segfaults.
Now it is possible to 'surf' (jump) to different markers. This is only
possible through the hotkeys for this:
* Page Up - Next Marker
* Page Down - Previous Marker
These hotkeys match the ones in the timeline. In order to do so,
I've had to reassign two (rarely used/obscure) hotkeys:
* 'Ctrl Page Up' is now move selected action channel up (was Page Up)
* 'Ctrl Page Down' is no move selected action channel down (was Page Down)
I should also mention here that
* 'Shift Page Up' is move action channel to top
* 'Shift Page Down' is move action channel to bottom
|
|
* (De)select all markers now works normally
* RMB click-drag in action editor when no markers caused segfault
|
|
* There is now a feature to (de)select all markers. Can be found in menu or
via the hotkey Ctrl A
* The 'Markers' menu is now not drawn when marker set is 'None'
* Some other minor code cleanups
Additional Notes:
* I'm still trying to track down the cause of a bug which means that you can't
select more than one marker (with RMB clicks) at once. For now, just use
borderselect
|
|
A Plumiferos wishlist item: Markers working in the Action Editor too.
* The user can choose between displaying the scene markers (i.e. the
markers shown in the timeline) or the markers specific to each action,
by using the next list box on the action editor header. This is specific
to each instance of the action editor.
* The display of the markers currently still needs improvement. At the
moment, the triangle icons + text are drawn below all the last row of
keyframes. As such, I've made it draw yellow vertical lines which
span the height of the action editor, to also indicate markers.
Comments on this and also help getting the triangle thingies to 'float'
above the bottom scroll bar are warmly appreciated.
* There are a few minor update issues with editing a marker in the
timeline and the markers in the action editor which will be fixed soon.
* There are also a few hotkeys to still add.
Enjoy!
|
|
#5061 - Ipo/Action 'Cleaning'
#5071 - 'Only Needed' Keyframing Option
====================
* IPO/Action 'Cleaning':
It removes un-necessary keyframes from individual ipo curves.
- In both editors, the hotkey is currently the OKEY. Also accesable from menus of each editor.
- There is currently a 'threshold' popup. This sets the value that the cleaner uses to determine if two keys have same time/value
There are a few improvements that could still be made, such as:
- There are a few cases that it still doesn't handle yet, such as when un-needed keyframes lie on a linear line (and similiar cases). This shall be improved soon.
- Also, for some reason, after running cleaning while in ipo editor editmode, all but the active curve are hidden.
====================
* 'Only Needed' Keyframing Option:
This patch adds a new keyframing option for objects and bones. It only adds keyframes where they are needed, judging from the surrounding points on that curve.
Notes about this keyframing option:
- Works like the existing 'Avail' option, except it checks if the keyframe
is needed.
- Currently uses hardcoded threshold for determining if same value.
[quote]
/* Cases where keyframes should not be added:
* 1. Keyframe to be added bewteen two keyframes with similar values
* 2. Keyframe to be added between two keyframes with similar times
* 3. Keyframe lies at point that intersects the linear line between two
keyframes
*/
[/unquote]
|
|
Key snapping in Action Window, cleanup and added option to snap to
current frame.
|
|
|
|
New option: "Select Collumn" in Action editor. This selects all 'keys' on
the same time, based on already existing selection. Works for Actions as
well as Shape Keys. Hotkey K.
|
|
locked length should not skip hidden channels.
|
|
First note; this is a WIP project, some commits might change things that
make formerly saved situations not to work identically... like now!
------ New Material integration ------
Until now, the Node system worked on top of the 'current' Material, just
like how the Material Layers worked. That's quite confusing in practice,
especially to see what Material is a Node, or what is the "base material"
Best solution is to completely separate the two. This has been implemented
as follows now;
- The confusing "Input" node has been removed.
- When choosing a Material in Blender, you can define this Material to be
either 'normal' (default) or be the root of a Node tree.
- If a Material is a Node tree, you have to add Nodes in the tree to see
something happen. An empty Node tree doesn't do anything (black).
- If a Material is a Node Tree, the 'data browse' menus show it with an
'N' mark before the name. The 'data block' buttons display it with the
suffix 'NT' (instead of 'MA').
- In a Node Tree, any Material can be inserted, including itself. Only in
that case the Material is being used itself for shading.
UI changes:
Added a new Panel "Links", which shows:
- where the Material is linked to (Object, Mesh, etc)
- if the Material is a NodeTree or not
- the actual active Material in the Tree
The "Node" Panel itself now only shows buttons from the other nodes, when
they are active.
Further the Material Nodes themselves allow browsing and renaming or adding
new Materials now too.
Second half of today's work was cleaning up selection when the Nodes
overlap... it was possible to drag links from invisible sockets, or click
headers for invisible nodes, etc. This because the mouse input code was
not checking for visibility yet.
Works now even for buttons. :)
|
|
|
|
selected actions in the action editor (to the menu - code to handle hotkey (to rise a popup) is there too but unused & untested now).
|
|
Usage: press Tkey, and you can proportionally squeeze or stretch the
selected keys, with current mouse position as reference. Only works with
more than 3 keys selected horizontally.
I've remapped the old Tkey (ipo type) to SHIFT+T... might be temporal, I
have an idea for a cool 2D manipulator system that makes it much friendlier
to grab/scale/slide keys all in once.
Also: fix for HOME key in action editor (didn't do Pin), and removed gcc
warnings from jiri's commit in editmesh_add.c
|
|
|
|
|
|
- Action Editor: hotkeys V and H for handles were invisible, added menus
- NLA strips: when current frame is exactly on the strip end, it didn't
include that action... needs a rounding correction for it.
- Action/NLA: deleting keys in Action, which results in only 1 key left,
resulted in zero sized strip length. Now the strips are defaulted to be
1 frame in size minimal.
- NLA editor: ALT+C "Convert to strip" didn't increment Action user count
- 3D Window: CTRL+P make parent to Bone still gave the insane menu with all
bone names. With unified PoseMode select it can just parent to the
active Bone. Note; this now requires the Armature to be in PoseMode to
work.
- Rotation Constraint; the new options to only map to X,Y,Z rotation, did
set the not mapped rotation axes to zero. These should remain unchanged.
- AutoKey optionn for Actions; should not insert action keys on ESC
And added a fix myself:
- When SHIFT+selecting a Bone in PoseMode, and the Armature was not selected
or active yet, it doesn't extend-select/deselect the Bone anymore.
This case is only useful when you try to add IK or Constraint, so the
shift+selection should only activate the clicked Bone.
|
|
- NLA: Hotkey ALT+S resets (synchs) action start/end in selected Strips
- NLA: Panel for Strips allow setting negative "Action start"
- NLA: When transforming strips, the selected keys for that action don't
get included (caused weird errors)
- Action: cleanup of drawing horizontal bars.
- Action: Pulldown menu option "Lock time" was in different location than
for the other pulldowns
|
|
windows. If set (in View pulldown), it synchronizes the horizontal scale of
the current window with the other Windows with this option set. That way
you always have these windows showing an identical part of the time you
work on.
Also added because Action Window now displays its content relative to
NLA strips.
|
|
-> Note; added 2 new c files (split editipo.c). MSVC needs upgrade.
Impatient people can check the goodies in CMS:
http://www.blender3d.org/cms/Action_and_NLA_editor.706.0.html
Most work was on trying to unwind the spaghetti for editing ipos. Too much
history and bad design got added here. Most evident changes:
- made generic 'context' for detecting which Ipo is being edited, or to
assign ipos or to retrieve ipo curves.
- made generic insertkey() for all ipo types, including actions
- shuffled a lot of code around to make things more logical. Also made
sure local functions are not exported
It is far from ready... when action/nla was added in Blender, a lot of
duplicate code was generated. That's for another time.
Now the goodies;
- made Actions to allow any Ipo type
- made NLA to define active actions, for Action window too
- corrected timing for active action, so it shows the 'real time', as
defined in NLA editor.
I did update python code, but that would require testing. Testing is
needed for this commit in general, too many changes happened on all
levels of the animation system. :)
Will keep track of all reports this evening, hopefully it doesnt break
the pre-release schedule!
|
|
Since clicking on outliner items activates/selects, and not all outliner
elements allow selection (like scene, mesh, material, etc) there's another
selection method needed.
It works by leftclicking (click-drag works too) outside of the outliner
icons or texts. This allows rapid selecting, without any change in the
other windows.
Then press Wkey or RightMouse for an operations menu. Based on the
selection you get a menu with options. Currently available;
- Objects: Select/Deselect/Delete
- Materials: Unlink
- Textures: Unlink
- Bones: Select/Deselect/Hide/Unhide
Notes:
- mixed selections give an error.
- selection doesn't flush down into closed outliner items.
- selection state is persistant (saved in files), and unique per
Outliner window, so can be used as sortof temporal grouping.
Hotkey SHIFT+A: select/deselect all open outliner items
The system can be easily expanded with a lot of interesting options, of
course.
|