Commit Graph

987 Commits

Author SHA1 Message Date
Joshua Leung
87494c0ad8 == Action Editor - Keyframe Selection (Added tools) ==
* Ctrl-I now swaps the selection status of keyframes/channels depending on where the mouse cursor is located. Ctrl-Shift-I does so for markers.

* (De)selecting channels now clears the 'active' flags too, so there will be no more 'selected' items lingering around even after pressing AKEY
2008-02-15 06:06:08 +00:00
Joshua Leung
3f03fff557 == Shift-G - Select Grouped menu in PoseMode ==
In PoseMode, the Shift-G menu now presents options for selecting bones in the same layer or the same bone-group.
2008-02-14 06:31:40 +00:00
Joshua Leung
5beaeb9f4b == Custom Bone Colours - Per Group Colour-Sets ==
Now it is possible to define a custom colour set per bone group. This allows rigs to look consistent across different computers with different themes. As such, the bone-groups buttons have been reshuffled to present the settings in a better way.

Colour sets are now selected from a menu with descriptive names, instead of using a slider. Choose the 'Custom Set' entry to use a custom set of colours for the active group. The sets of theme colours have been retained, and can be used directly, or as the basis for a new custom colour set (when any one of the colour controls is touched). 

For bone-groups that haven't had any custom colour set used yet, a default 'test' set is used. This uses bright versions of the RGB colours.
2008-02-14 05:00:23 +00:00
Joshua Leung
0f68741217 == Action Editor - Insert Key+ "Active Group" ==
"Insert Key" menu in Action Editor (IKEY) now has a new option: "In Active Group". This only inserts keyframes in the active action group (if available).
2008-02-13 06:43:31 +00:00
Campbell Barton
3974a0a3c1 Added python access for baking
http://www.blender.org/documentation/246PythonDoc/
http://www.blender.org/documentation/246PythonDoc/Render.RenderData-class.html
http://www.blender.org/documentation/246PythonDoc/bpy_api_2_46.zip
2008-02-12 14:47:55 +00:00
Ton Roosendaal
217b3647b1 When iserting rotations in poses, the quaternion sometimes rotates exactly
the opposite way as you want. Or even worse, you can never really define
which way it rotates (officially it should do shortest path).

This hotkey flips the quaternion (which means it rotates to same position
exactly via the other way). Hotkey ALT+F (flip) in 3d window posemode.
2008-02-05 18:11:16 +00:00
Hamed Zaghaghi
47b53510a5 merging game_engine branch changes into trunk, 2d-filters and opengl speedup 2008-02-04 02:33:27 +00:00
Campbell Barton
9276a6f9fa Added single user ipos option - useful when you make linked duplicates with many objects and want them a unique ipo. 2008-02-03 21:24:48 +00:00
Peter Schlaile
7e7f5628c3 == Sequencer ==
This adds low resolution proxy support to the blender sequencer, so
that even HD editing should be possible on slower machines.

The proxies are stored as directories of JPEG-files and are only
activated, if you use preview-resolution rendering.

For your final render, just switch back to full resolution and
the original files are used again.

It enables even proxying of whole effect pipelines and scene-strips
(but you have to your own custom directory for file storage then, 
since blender has no filename, which could be taken as a sensible
default directory reference)
2008-02-03 18:58:46 +00:00
Ton Roosendaal
90f8fb733b Fix: render could crash when you enable 'do composite' without having
nodes in scene.

Feature: SHIFT+R in compositor reloads all full sample buffers, composites
and merges with filter. (ALso in Node menu).
2008-01-31 15:35:24 +00:00
Peter Schlaile
134fdd6d5a == Sequencer ==
Updated image preview a lot:
* Added a histogram-scope
* Added optional title-safe margins
* Re-arranged header, so that only usefull buttons are shown in image
  preview mode
* Added zebra-mode for visual feedback of over-exposure regions
  (helps in before and especially after color correction :)
* Added color-seperation-mode for waveform-display
* Show 10%, 70% and 90% hints in waveform-display
2008-01-31 15:28:16 +00:00
Joshua Leung
abec067761 == Bone Groups - Outliner Support ==
Bone groups are now drawn in the Outliner. The active group can be set from there, and groups can be renamed. 

(Hah... that was easy)
2008-01-31 09:59:05 +00:00
Joshua Leung
e8fbaaf071 Forgot to commit changes in header for previous Action Editor commit 2008-01-31 09:36:59 +00:00
Roland Hess
a12602e51f Small outliner enhancement: With items selected in the outliner, pressing the V, S or R key will toggle, respectively, the Visibility, Selectability or Renderability locks. Note that this functions independently of what is selected in the SCENE -- this is based on the RMB selection in the outliner. The options are also available from the RMB popup menu.
There are enough items in that popup now that this space should probably have its own header with a menu.
2008-01-30 17:58:13 +00:00
Brecht Van Lommel
6601cef1d0 Further fix for bug #8124: now depsgraph relation was added correct,
but depsgraph didn't get updated immediately yet.
2008-01-30 15:28:31 +00:00
Joshua Leung
bace7e5788 * Bone Groups - changed some of the options in the Ctrl-G menu so that it is more useful
* Tweaked one of the colours in the colour sets so that it is less similar to a colour in another set representing another state.
2008-01-30 11:09:18 +00:00
Daniel Genrich
77685023ca Initial commit of cloth modifier from branch rev 13453 2008-01-29 21:01:12 +00:00
Martin Poirier
14d1c736b8 === Mirror Tool ===
Fix calls to new mirror in UV window (it would segfault with invalid arguments).

Reported by Matt in the tracker (#8176)
2008-01-29 02:38:26 +00:00
Joshua Leung
b9842ec247 == Action Editor - Overlapping Keyframes Bugfix ==
Now when moving keyframes in the Action Editor, any existing keyframes on the frames where a selected keyframe lands (after the transform) will be removed. This is to prevent stacks of keyframes which cause blips and headaches for animators (especially stressed animators with a looming deadline).

I've added an option to the Action Editor's View menu to turn this behaviour on/off (by default, it's on). This shouldn't need to be used too much, and may be removed in due course. If it stays, it'll need a better name...
2008-01-28 11:38:12 +00:00
Joshua Leung
354e6b9c18 == Automatic Bone Extension Adder ==
Added three new tools to the WKEY menu for Armatures in EditMode/PoseMode. These add .* extensions to the names of selected bones based on their position in 3d-space on the axis considered by that tool.

The current naming schemes are based upon the extensions I normally apply. Some people may have slightly different preferences though.

There is one for:
* Left-Right names (along x-axis)
* Front-Back names (along y-axis)
* Top-Bottom names (along z-axis)
2008-01-28 00:53:54 +00:00
Martin Poirier
ef1295e723 === Custom Transform Orientation ===
Adding the possibility to use 2 or 3 vertice to define an edge or face-like orientation.
Adding the possibility to use 2 connected edges to define a face-like orientation.
2008-01-27 19:26:17 +00:00
Joshua Leung
ef74d56f66 VertexGroup Editing:
Added a new option to the "Vertex Groups" menu: "Remove Selected from All Groups". This menu can be accessed using Ctrl-G in EditMode for Meshes and Lattices.
2008-01-27 10:34:35 +00:00
Joshua Leung
8c59520060 == Action Editor Drawing - Optimisations (Part 2 out of ?) ==
Keyframes are now checked for whether they are visible or not before they are prepared for drawing. This should provide some improvements for large data-sets... 

In general there don't appear to be any major issues, although in a few situations, long-keyframes may end up appearing/disappearing.
2008-01-27 03:21:24 +00:00
Joshua Leung
264c8d94f9 == Limit Distance Constraint ==
Added a new constraint, "Limit Distance". This constraint defines a 'virtual sphere' around the target which the owner can be made to stay inside, outside, or on the surface of it. 

This constraint is best used when applied using the Ctrl-Alt-C hotkey, as the radius is set correctly that way. 
One usage, is to prevent the target of an IK-chain from straying away from the chain. Care should be taken to not use a member of the IK-chain as the target though.

Description of Variables:
* 'Dist' - Radius of virtual sphere
* 'R' - Click on this to recalculate the 'Dist' value (note: like the 'R' button in the StretchTo constraint, this is currently buggy)
' Mode' - This menu gives different options for how the limiting sphere should act. The mode names are self explanatory.
* 'Soft' and 'SoftDistance' - currently not functional (so settings are hidden). These are used to define a smaller radius around the sphere of influence where a non-linear relationship between input and resulting locations occurs to prevent the owner 'crashing' into the sphere.
2008-01-25 11:23:36 +00:00
Nicholas Bishop
7d157e2cd0 == Sculpt ==
Cleaned up some old parts of sculpt. Got rid of the old EditData struct in favor of two new "brush action" structures, which split the symmetry data out from everything else. Cleaned up various names and such as well. There should be no user-visible changes.
2008-01-25 04:17:38 +00:00
Martin Poirier
450b3664e1 === Mirror Tool ===
Making the mirror tool axis selection interactive instead of using a popmenu.

Mirror is now just a constant -1 scaling transform, which enables you to choose the mirror axis through hotkeys (x,y,z) and with MMB. It also means it's easier to select the correct axis if you're not sure which is which and gives access to all the orientation supported in transform (including custom user orientations).

Mesh and Object header menus still have the individual axis as options but have an added "Interactive Mirror" which just enters transform and lets user pick the axis there. Ctrl-M enters "Interactive Mirror" too.

In a nutshell, this changes adds more possible mirroring axis and unifies the mirror axis selection process with transform constraint axis selection.
2008-01-24 20:11:54 +00:00
Joshua Leung
d2d6719586 * Menus for Bone-Groups
* Added missing #include in poseobject.c
2008-01-22 03:35:14 +00:00
Joshua Leung
d23bcd8b7f == Action/Bone Groups - Ctrl-G Hotkey + Bugfixes ==
New Stuff:
* When in PoseMode, the Ctrl-G hotkey now presents a menu with options for manipulating Bone Groups. There are options to add/remove all selected bones from a certain group. 
 TODO - add appropriate entries to menus

Bugfixes:
* Renaming Bone-Groups in the buttons panel could cause segfaults or memory corruption. Wrong maximum-length for button used here (it's far too easy to miss).

* In the Action Editor, (re)grouping channels didn't take into account whether a group was expanded or not. This meant that selected channels from inside a collapsed group got added to the new group too.
2008-01-22 03:16:48 +00:00
Campbell Barton
0b2a6e38e4 Added view2d_getscale function for getting the opengl x/y scale for 2d windows.
Display/Edit TimeOffset accounting for its added parent offset.
removed Extension button by mistake.
2008-01-21 23:06:23 +00:00
Campbell Barton
9f5a0deca9 Added object mode select random (use for changing the group instances of many objects to vary them without selecting manually - leaves/sticks etc) 2008-01-21 18:09:05 +00:00
Joshua Leung
173830a7fa == Action/Pose Groups - Keyframing Integration ==
Now, when inserting keyframes (either IKEY or AutoKeying), if an ActionChannel has been newly created, it will get assigned to an Action-Group with the same name as the Bone-Group that the bone it represents belongs to.
2008-01-21 11:26:24 +00:00
Martin Poirier
3d7271f059 === Transform Snap ===
Snapping Mode: Active

With this mode, the active element (at this time, object or vertice) is used as snapping target. If there is no active element in the selection, it reverts back to median mode.


Edit Mode snapping, other meshes no longer have to be selected to act as snapping point.


Fix a potential bug with snapping point from other meshes.
2008-01-20 22:43:48 +00:00
Campbell Barton
c11fce1a9f draw muted strips faded. hkey added alt+hkey to mute and un-mute strips, Mkey is used for metastrips. would be nice to make this similar to object mode restrict render option. 2008-01-20 20:09:06 +00:00
Campbell Barton
f417989871 Made it so locked strips inside metastrips are transformed.
Removed FTYPE from render output panel - was some old format that did index colors, and wasn't even used anywhere.

Added 2 options to the render output panel that can be used for a really basic local renderfarm (even artists can use it!),
"NoOverwrite" and "Touch"
When both are enabled, rendering 1 scene between many pc's on a fast network will populate the directory with frames.
Also useful to delete frames that have errors and re-render (without manually re-rendering each frame)
2008-01-20 17:53:58 +00:00
Campbell Barton
8ded57d236 Cant use WHILE_SEQ when drawing,
drawing strips was setting the depth that would then incorrectly overlap when used with metastrips. - so metastrisp would grow when moved - showed up in peach animatic.

Now metastrips draw display differently- only immediate children are shown on the strip.

Also disabled overlap checking during transform for non zero depth strips since its not needed.
2008-01-20 13:52:54 +00:00
Joshua Leung
cd137f2898 == Bone Groups ==
I'm committing some work-in-progress code for "bone groups" now, as I there have been are some major bugs caused by the timeoffset stuff (some of my test files were not loading, and other files were showing all sorts of weird problems). 

Anyway, in this commit, the following things for "bone groups" have been done:
* Bone groups are stored per armature (internally, this is per bPose block)
* Added controls for editing bone-groups per armature - "add", "remove", "rename". These can be found in the "Links and Materials" panel in PoseMode, beside the settings for PoseLib.
* Reorganised buttons for editing selected bones in PoseMode. I've replaced the "dist" and "weight" buttons (they existed in EditMode anyway) with a menu to choose the bone-group and the custom-shape-ob field. In the place of the old custom-shape-ob field, I've restored the "Hide" button. This might break muscle-memory a bit, but there isn't a lot of space to play with there.

Some stuff I'd been originally planning to do before committing:
* When adding keyframes for bones, an action-group with the same name as the bone's group will be added to the action, and the action-channel will be made a member of that. 
* New action/bone groups have unique names (renaming/adding new should check if name exists before assigning it)
* There's a setting under Bone-Groups stuff which sets which custom-colour set is used to colour that group's bones. Currently, this is non-functional, as the necessary drawing code for armatures is not in place yet.
2008-01-20 02:55:35 +00:00
Campbell Barton
9afc417bed 2 new timeoffset buttons in the animation panel "Ofs" and "Rand"
Useful when animating many objects falling at different times (for instance).
2008-01-18 12:20:28 +00:00
Joshua Leung
44c31bb045 == Action Editor - Groups for Action Channels (Peach Request) ==
Now, you can assign Action Channels to named (folder-like) groups, which help to organise the channels (important for more complex rigs). These are collapsible, can be "protected", and show a "summary" of the keyframes in the channels the Group contains. They are drawn as bright-green (active) or a darker shade of green (not active) channels.

* Each Action has its own set of Groups. 
* An Action-Channel can only occur in one Group at a time. It can also not occur in any group.
* Action-Channels can be moved between Groups
* Groups + grouped-channels always occur BEFORE un-grouped channels

Important Hotkeys:
* Shift-G  :  Adds the selected Action-Channels to the Active Group. This will create a new group if need be
* Ctrl-Shift-G : Always adds a new group, and adds the selected Action-Channels to it
* Alt-G : Removes selected Action-Channels from their groups
* Ctrl-Shift-Alt-G : (Note: this will be removed soon) This is a simple debugging-hotkey I added, which just prints a list of the groups, channels, and their addresses...
* NKey / Ctrl-LMB: While hovering over the name of a group, this shows a popup like for other channels, which allows the editing of the channel's name, etc.


Assorted Notes:
* Some tools may not work yet with this (Ctrl Numpad+/- for example)
* Fixed some bugs in various places in Action Editor code
* Added theme colours for group channels
* The nomenclature of these tools may change in future when a better alternative is found
* The ability to auto-assign action-channels to groups when they are keyframed will be coming up shortly
2008-01-17 23:02:11 +00:00
Nicholas Bishop
c6118036bc == Radial Control ==
* Generalized the interactive brush property control from sculpt mode into a simple API
* Modified sculpt mode to take advantage of this (even fixes some minor bugs!)
* Added shortcuts in particle edit to set brush size/strength (FKEY/shift+FKEY)

Still todo are the other modes that have brushes...
2008-01-16 07:19:21 +00:00
Campbell Barton
d75a940828 sequence transform buttons didnt correct for overlap, also made them account for color generator and single image types. 2008-01-15 21:44:09 +00:00
Ton Roosendaal
28667a314e Feature + Fix:
- while sampling color in image window, you now get the sampled color as a line
drawn in the node editor Curve nodes, allowing quicker view of what values you
actually change.

- reverted temporary the patch [#6779] by Matthew Plough
  He replaced image drawing of backdrop-node-editor with our Texture drawing
  function. That call is extremely slow, and should be by definition slower
  than glDrawPixels (unless you don't upload the image each time to gfx mem).

  Drawing large frames (2k, 4k) in node editor became unacceptable slow, even 
  with the neatest hardware around. (tested nvidia, ati) 

  Probably (Campbell thinks) this is a bypass for Linux ATI cards? 
  Anyhoo, this should be investigated further before applying. It better then
  becomes a user pref, or even much better: part of the OpenGL profiler we need.
2008-01-14 19:03:27 +00:00
Martin Poirier
e4e66c9aa4 === Transform Snap ===
Snapping for object mode

Changes:
- Transform snap now working in object mode and not just mesh edit mode
- Shift-Tab can be used to toggle snap on/off inside transform too (no more Esc,toggle,restart)
- Object mode snap: Closest uses the bounding box corners of all selected objects, Median uses object center and Center uses transform center (same as edit mode).
- Object mode snap: all visible meshes can be used to get the snapping point (unlike edit mode snap which is limited to selected mesh: this might be adjusted to make edit mode snap use all visible too).

To Do:
- Add "Active" snap target method: use active object (or mesh element) as snap target
- Add snapping capabilities to Scale
- (Maybe) Add "Near pointer" snap target method: use selected element that is closest to mouse pointer as snap target. Active could probably accomplish that already in a less confusing manner, so I might skip this.
2008-01-13 22:20:18 +00:00
Martin Poirier
d660e29365 === Custom Transform Orientation ===
Custom Orientations can be added with Ctrl-Shift-C (hotkey suggestions are welcomed), this adds and select the new alignment. Custom Orientations can also be added, deleted, selected from the Transform Orientations panel (View -> Transform Orientations). Standard orientations (global, local, normal, view) can also be selected from this panel.

If you plan on using only a single custom orientation and don't really need a list, I suggest you use the hotkey as it adds and selects at the same time.

Custom Orientations are save in the scene and are selected per 3D view (like normal orientation).

Adding from an object, the orientation is a normalized version of the object's orientation.
Adding from mesh data, a single element (vertex, edge, face) must be selected in its respective selection mode. Vertex orientation Z-axis is based on the normal, edge Z-axis on the edge itself (X-axis is on the XoY plane when possible, Y-axis is perpendicular to the rest). Face orientation Z-axis is the face normal, X-axis is perpendicular to the first edge, Y-axis is perpendicular to the rest.
(More logical orientations can be suggested).

I plan to add: 2 vertice (connected or not) => edge orientation , 3 vertice = face orientation

Differences from the patch:
- orientations no longer link back to the object they came from, everything is copy on creation.
- orientations are overwritten based on name (if you add an orientation with the same name as one that already exists, it overwrites the old one)
2008-01-13 18:24:09 +00:00
Joshua Leung
38a33eb7da == Auto-Keyframing Refactor (Peach Request) ==
Refactored Auto-Keyframing to make it easier to add more options. There are now three "states" for auto-keying: off, add/replace keys, replace keys.

Description of modes:
1) No auto-keying is done
2) Add new keyframes or replace existing ones if possible (old behaviour)
3) Only modify existing keys, but not insert new ones. 

Internally, I've moved the auto-keying settings out of G.flag and U.uiflag and moved them into their own variables in Userdef, and provided some macros to access those easily. As a result, old auto-keying settings are currently lost.

Also, removed the manual calls to insertkey done in pose-relax. The reason auto-keying didn't work before was because the bones didn't have the BONE_TRANSFORM flag applied. Now, these are set temporarily.


Todo(s):
* Make icons for the TimeLine header menu (currently just a text menu)
* Add version-patches for old files
* Double-check code for all places that use auto-keying (i.e. PoseLib)
2008-01-10 01:36:22 +00:00
Joshua Leung
8b78a5cf35 == Action Editor - Editing Goodies ==
* Peach Request - Added Ctrl-PageUp/Down to jump to next/previous keyframe (respectively), just like elsewhere in Blender.

* As a result, Action Channel rearranging has been remapped so that:
  - Ctrl-Shift-PageUp/Down is move to top/bottom
  - Shift-PageUp/Down is move up/down

* Added a hotkey ("accentgravekey", i.e. ~/`) to toggle whether all Action Channel levels are expanded or not. This affects all visible Action Channels.

* Added Ctrl-Numpad+ and Ctrl-Numpad- to expand and collapse all Action Channel levels by one level (as appropriate). This only affect selected Action Channels.
2008-01-09 12:07:38 +00:00
Joshua Leung
5b6f977970 == Action Editor - Sample Keys ==
Cessen Request - Added a tool which inserts keyframes on every frame between two selected keyframes. This is useful for adding overlapping motion (apparently). 

Use Alt-O to run this tool. The name of this tool is also open to suggestions ;)

Note:
There is currently a bug with this. When there are 4 consecutive keyframes, it won't add keyframes between keyframes 2 and 3.
2008-01-08 11:51:44 +00:00
Juho Vepsalainen
aa1c0281c6 Custom Names for Nodes
This commit makes it possible to add a custom name to a node. The feature can be
accessed either by using a menu or shortcut ctrl-r. It currently works only when
a single node is selected. Invoking the feature gives a popup menu in which a new
name can be entered. If the given name is not empty, it will be shown like
"(myCustomName) NodeName" in the node header.

This feature is particularly useful when documenting complex node setups.

I also fixed the size of blur node. It was too short before due to my previous
commit.

Thanks to David Millan Escriva for contribution!
2008-01-07 19:38:01 +00:00
Juho Vepsalainen
e895b7a36a Conversion of "Toggle Link" tool to "Make Link"
This commit alters the behaviour of "Toggle Link" tool found in the node
editor so that it only makes link between selected sockets. Links cannot
be deleted by using the tool again as before. Instead deleting links can
be done by using the old method (drag with lmb).

The delete functionality may require further investigation to see if it
should be improved.
2008-01-07 12:55:37 +00:00
Joshua Leung
8e54dc2579 == Constraints - Code Cleanups ==
* Tidied up coding style of code in editconstraint.c 
- removed blank lines, made whitespace-use more consistent

* Shuffled code in editconstraint.c and BIF_editconstraint.h so that it was in a more orderly fashion

* Reduced code redundancy in test_constraints 
- tests which can apply to general constraints (target existance, and clashes with the owner) are not copied out for each constraint that needs it
- ChildOf constraint now gets validated too (before it was missing such checks)

* Recoded the way PyConstraints build the menu for displaying scripts available for use. It now uses dynstr instead of guessing how much memory to allocate for each entry
2008-01-05 09:31:43 +00:00
Campbell Barton
9ac2817fef some changes needed to get blender compiling with 64bit libs, use the systems Mesa now. 2008-01-04 11:55:37 +00:00